diff --git a/.tool-versions b/.tool-versions index 4076189..11848fa 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -nodejs 20.6.1 +nodejs 16.20.1 diff --git a/dist/autogen-readme-list/index.js b/dist/autogen-readme-list/index.js index 1da95c3..0123c9d 100644 --- a/dist/autogen-readme-list/index.js +++ b/dist/autogen-readme-list/index.js @@ -8,11 +8,7 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -275,9 +271,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -295,7 +295,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -335,10 +335,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -371,12 +368,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -505,11 +498,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -528,23 +517,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -575,14 +547,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -594,22 +565,7 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), @@ -630,8 +586,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); +const http_client_1 = __nccwpck_require__(9925); +const auth_1 = __nccwpck_require__(3702); const core_1 = __nccwpck_require__(2186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { @@ -664,7 +620,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -698,361 +654,6 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - /***/ 5278: /***/ ((__unused_webpack_module, exports) => { @@ -1231,7 +832,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); +const httpClient = __importStar(__nccwpck_require__(6341)); function getAuthString(token, options) { if (!token && !options.auth) { throw new Error('Parameter token or opts.auth is required'); @@ -1316,95 +917,7 @@ exports.getOctokitOptions = getOctokitOptions; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: +/***/ 6341: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -1442,7 +955,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; const http = __importStar(__nccwpck_require__(3685)); const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); +const pm = __importStar(__nccwpck_require__(3466)); const tunnel = __importStar(__nccwpck_require__(4294)); var HttpCodes; (function (HttpCodes) { @@ -2016,7 +1529,7 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ }), -/***/ 9835: +/***/ 3466: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -2084,652 +1597,746 @@ exports.checkBypass = checkBypass; /***/ }), -/***/ 334: +/***/ 3702: /***/ ((__unused_webpack_module, exports) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -const REGEX_IS_INSTALLATION = /^ghs_/; -const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token: token, - tokenType - }; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -/** - * Prefix token for usage in the Authorization header - * - * @param token OAuth token or JSON Web Token - */ -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - - return `token ${token}`; +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -const createTokenAuth = function createTokenAuth(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) - }); -}; - -exports.createTokenAuth = createTokenAuth; -//# sourceMappingURL=index.js.map +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; /***/ }), -/***/ 6762: +/***/ 9925: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -var universalUserAgent = __nccwpck_require__(5030); -var beforeAfterHook = __nccwpck_require__(3682); -var request = __nccwpck_require__(6234); -var graphql = __nccwpck_require__(8467); -var authToken = __nccwpck_require__(334); - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; +const http = __nccwpck_require__(3685); +const https = __nccwpck_require__(5687); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; } - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); } - } - - return target; } - -const VERSION = "3.6.0"; - -const _excluded = ["authStrategy"]; -class Octokit { - constructor(options = {}) { - const hook = new beforeAfterHook.Collection(); - const requestDefaults = { - baseUrl: request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; // prepend default user agent with `options.userAgent` if set - - requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); - - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; } - - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); } - - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, 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 = userAgent; + 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; + } + } } - - this.request = request.request.defaults(requestDefaults); - this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign({ - debug: () => {}, - info: () => {}, - warn: console.warn.bind(console), - error: console.error.bind(console) - }, options.log); - this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance - // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. - // (2) If only `options.auth` is set, use the default token authentication strategy. - // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. - // TODO: type `options.auth` based on `options.authStrategy`. - - if (!options.authStrategy) { - if (!options.auth) { - // (1) - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - // (2) - const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { - authStrategy - } = options, - otherOptions = _objectWithoutProperties(options, _excluded); - - const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } // apply plugins - // https://stackoverflow.com/a/16345172 - - - const classConstructor = this.constructor; - classConstructor.plugins.forEach(plugin => { - Object.assign(this, plugin(this, options)); - }); - } - - 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; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - - - static plugin(...newPlugins) { - var _a; - - const currentPlugins = this.plugins; - const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); - return NewOctokit; - } - -} -Octokit.VERSION = VERSION; -Octokit.plugins = []; - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 9440: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var isPlainObject = __nccwpck_require__(3287); -var universalUserAgent = __nccwpck_require__(5030); - -function lowercaseKeys(object) { - if (!object) { - return {}; - } - - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach(key => { - if (isPlainObject.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] - }); + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); } - }); - return result; -} - -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === undefined) { - delete obj[key]; + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); } - } - - 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); - } // lowercase header names before merging with defaults to avoid duplicates - - - options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging - - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten - - 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("+"); + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); } - - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -const urlVariableRegex = /\{[^}]+\}/g; - -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} - -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - - if (!matches) { - return []; - } - - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -function omit(object, keysToOmit) { - return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { - obj[key] = object[key]; - return obj; - }, {}); -} - -// Based on https://github.com/bramstein/url-template, licensed under BSD -// TODO: create separate package. -// -// Copyright (c) 2012-2014, Bram Stein -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/* istanbul ignore file */ -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, "]"); + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); } - - 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 !== undefined && 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 (value) { - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); } - } else { - const tmp = []; - - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - tmp.push(encodeValue(operator, value)); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); } - }); - } - - 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 response; } - } - - return result; -} - -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} - -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - return 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; + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); } - - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); + this._disposed = true; } - }); -} - -function parse(options) { - // https://fetch.spec.whatwg.org/#methods - let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible - - 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"]); // extract variable names from URL to calculate remaining variables later - - 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) { - // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw - headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); } - - if (options.mediaType.previews.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + 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(); + } } - } // for GET/HEAD requests, set URL query parameters from remaining parameters - // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters - - - 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; - } else { - headers["content-length"] = 0; - } + /** + * 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) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); } - } // default content-type for JSON if body is set - + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((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 reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); + } +} +exports.HttpClient = HttpClient; - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. - // fetch does not allow to set `content-length` header, but we can set body to an empty string +/***/ }), - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } // Only return body/request keys if present +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { +"use strict"; - return Object.assign({ - method, - url, - headers - }, typeof body !== "undefined" ? { - body - } : null, options.request ? { - request: options.request - } : null); +Object.defineProperty(exports, "__esModule", ({ value: true })); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; + } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; } +exports.checkBypass = checkBypass; -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); + +/***/ }), + +/***/ 334: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; } -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse - }); +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; } -const VERSION = "6.0.12"; +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} -const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. -// So we use RequestParameters and add method as additional required property. +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } -const DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "", - previews: [] + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); } -}; -const endpoint = withDefaults(null, DEFAULTS); + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; -exports.endpoint = endpoint; +exports.createTokenAuth = createTokenAuth; //# sourceMappingURL=index.js.map /***/ }), -/***/ 8467: +/***/ 6762: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -2737,686 +2344,1268 @@ exports.endpoint = endpoint; Object.defineProperty(exports, "__esModule", ({ value: true })); -var request = __nccwpck_require__(6234); var universalUserAgent = __nccwpck_require__(5030); +var beforeAfterHook = __nccwpck_require__(3682); +var request = __nccwpck_require__(6234); +var graphql = __nccwpck_require__(8467); +var authToken = __nccwpck_require__(334); -const VERSION = "4.8.0"; +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; } -class GraphqlResponseError extends Error { - constructor(request, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; - this.errors = response.errors; - this.data = response.data; // Maintains proper stack trace (only available on V8) + var target = _objectWithoutPropertiesLoose(source, excluded); - /* istanbul ignore next */ + var key, i; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; } } + return target; } -const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; -const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request, 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`)); - } +const VERSION = "3.6.0"; - 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 _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; } - } - 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 (options.previews) { + requestDefaults.mediaType.previews = options.previews; } - if (!result.variables) { - result.variables = {}; + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix - // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. - const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); + + const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); } - return request(requestOptions).then(response => { - if (response.data.errors) { - const headers = {}; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } + if (typeof defaults === "function") { + super(defaults(options)); + return; + } - throw new GraphqlResponseError(requestOptions, headers, response.data); - } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } - return response.data.data; - }); -} + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ -function withDefaults(request$1, newDefaults) { - const newRequest = request$1.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; + static plugin(...newPlugins) { + var _a; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: request.request.endpoint - }); -} + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } -const graphql$1 = withDefaults(request.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); } +Octokit.VERSION = VERSION; +Octokit.plugins = []; -exports.GraphqlResponseError = GraphqlResponseError; -exports.graphql = graphql$1; -exports.withCustomRequest = withCustomRequest; +exports.Octokit = Octokit; //# sourceMappingURL=index.js.map /***/ }), -/***/ 4193: -/***/ ((__unused_webpack_module, exports) => { +/***/ 9440: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -const VERSION = "2.17.0"; +var isPlainObject = __nccwpck_require__(3287); +var universalUserAgent = __nccwpck_require__(5030); -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function lowercaseKeys(object) { + if (!object) { + return {}; + } - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.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; +} - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; } } - return target; + return obj; } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); } else { - obj[key] = value; - } + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates - return obj; -} -/** - * Some “list” response that can be paginated have a different response structure - * - * They have a `total_count` key in the response (search also has `incomplete_results`, - * /installation/repositories also has `repository_selection`), as well as a key with - * the list of the items which name varies from endpoint to endpoint. - * - * Octokit normalizes these responses so that paginated results are always returned following - * the same structure. One challenge is that if the list response has only one page, no Link - * header is provided, so this header alone is not sufficient to check wether a response is - * paginated or not. - * - * We check if a "total_count" key is present in the response data, but also make sure that - * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would - * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref - */ -function normalizePaginatedListResponse(response) { - // endpoints can respond with 204 if repository is empty - if (!response.data) { - return _objectSpread2(_objectSpread2({}, response), {}, { - data: [] - }); + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging + + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way - // to retrieve the same information. + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; + if (names.length === 0) { + return url; } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } - response.data.total_count = totalCount; - return response; + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); } -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); // `response.headers.link` format: - // '; rel="next", ; rel="last"' - // sets `url` to undefined if "next" URL is not present or `link` header is not set - - url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; - return { - value: normalizedResponse - }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } +const urlVariableRegex = /\{[^}]+\}/g; - }) - }; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); } -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = undefined; +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; } - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); } -function gather(octokit, results, iterator, mapFn) { - return iterator.next().then(result => { - if (result.done) { - return results; - } +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} - let earlyExit = false; +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - function done() { - earlyExit = true; +/* istanbul ignore file */ +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, "]"); } - results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); - - if (earlyExit) { - return results; - } + return part; + }).join(""); +} - return gather(octokit, results, iterator, mapFn); +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); }); } -const composePaginateRest = Object.assign(paginate, { - iterator -}); - -const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); + if (key) { + return encodeUnreserved(key) + "=" + value; } else { - return false; + return value; } } -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ +function isDefined(value) { + return value !== undefined && value !== null; +} -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; } -paginateRest.VERSION = VERSION; -exports.composePaginateRest = composePaginateRest; -exports.isPaginatingEndpoint = isPaginatingEndpoint; -exports.paginateRest = paginateRest; -exports.paginatingEndpoints = paginatingEndpoints; -//# sourceMappingURL=index.js.map +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)); + } -/***/ 3044: -/***/ ((__unused_webpack_module, exports) => { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; -"use strict"; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } 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(""); + } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + return result; +} -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; + 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); } + }); +} - keys.push.apply(keys, symbols); +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + 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"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; } - return keys; -} + 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); -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } } - } + } // default content-type for JSON if body is set - return target; + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] } +}; - return obj; +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8467: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var request = __nccwpck_require__(6234); +var universalUserAgent = __nccwpck_require__(5030); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); } -const Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], - addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], - approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], - cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], - createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - 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"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], - getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], - 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}"], - getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], - getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - 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}"], - 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}"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], - 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"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - 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"], - 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}"], - 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"], - setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], - setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] - }, - 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"], - 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}"] +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, 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; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(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 withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` }, - 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"], - 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"], - getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], - getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], - 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"] - }, - 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: { - deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], - 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}"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - 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"] - }], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], - createForAuthenticatedUser: ["POST /user/codespaces"], - 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}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], - exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], - getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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" + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4193: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const VERSION = "2.17.0"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + 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; + 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); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: normalizedResponse + }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } } - }], - listInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], - setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.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, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3044: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], + addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + 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"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], + getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], + 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}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + 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}"], + 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}"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], + 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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + 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"], + 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}"], + 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"], + setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], + setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] }, - 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}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_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"], + 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"], + 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"], + getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], + getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], + 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"] + }, + 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: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + 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}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + 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"] + }], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], + createForAuthenticatedUser: ["POST /user/codespaces"], + 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}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], + exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], + getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], + setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + }, + 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}"], + 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}"], listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], @@ -8155,1429 +8344,783 @@ URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { } else if (c === 0x0) { this.parseError = true; } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); - } - - return true; -}; - -function serializeURL(url, excludeFragment) { - let output = url.scheme + ":"; - if (url.host !== null) { - output += "//"; - - if (url.username !== "" || url.password !== "") { - output += url.username; - if (url.password !== "") { - output += ":" + url.password; - } - output += "@"; - } - - output += serializeHost(url.host); - - if (url.port !== null) { - output += ":" + url.port; - } - } else if (url.host === null && url.scheme === "file") { - output += "//"; - } - - if (url.cannotBeABaseURL) { - output += url.path[0]; - } else { - for (const string of url.path) { - output += "/" + string; - } - } - - if (url.query !== null) { - output += "?" + url.query; - } - - if (!excludeFragment && url.fragment !== null) { - output += "#" + url.fragment; - } - - return output; -} - -function serializeOrigin(tuple) { - let result = tuple.scheme + "://"; - result += serializeHost(tuple.host); - - if (tuple.port !== null) { - result += ":" + tuple.port; - } - - return result; -} - -module.exports.serializeURL = serializeURL; - -module.exports.serializeURLOrigin = function (url) { - // https://url.spec.whatwg.org/#concept-url-origin - switch (url.scheme) { - case "blob": - try { - return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); - } catch (e) { - // serializing an opaque origin returns "null" - return "null"; - } - case "ftp": - case "gopher": - case "http": - case "https": - case "ws": - case "wss": - return serializeOrigin({ - scheme: url.scheme, - host: url.host, - port: url.port - }); - case "file": - // spec says "exercise to the reader", chrome says "file://" - return "file://"; - default: - // serializing an opaque origin returns "null" - return "null"; - } -}; - -module.exports.basicURLParse = function (input, options) { - if (options === undefined) { - options = {}; - } - - const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); - if (usm.failure) { - return "failure"; - } - - return usm.url; -}; - -module.exports.setTheUsername = function (url, username) { - url.username = ""; - const decoded = punycode.ucs2.decode(username); - for (let i = 0; i < decoded.length; ++i) { - url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.setThePassword = function (url, password) { - url.password = ""; - const decoded = punycode.ucs2.decode(password); - for (let i = 0; i < decoded.length; ++i) { - url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.serializeHost = serializeHost; - -module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; - -module.exports.serializeInteger = function (integer) { - return String(integer); -}; - -module.exports.parseURL = function (input, options) { - if (options === undefined) { - options = {}; - } - - // We don't handle blobs, so this just delegates: - return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); -}; - - -/***/ }), - -/***/ 3387: -/***/ ((module) => { - -"use strict"; - - -module.exports.mixin = function mixin(target, source) { - const keys = Object.getOwnPropertyNames(source); - for (let i = 0; i < keys.length; ++i) { - Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); - } -}; - -module.exports.wrapperSymbol = Symbol("wrapper"); -module.exports.implSymbol = Symbol("impl"); - -module.exports.wrapperForImpl = function (impl) { - return impl[module.exports.wrapperSymbol]; -}; - -module.exports.implForWrapper = function (wrapper) { - return wrapper[module.exports.implSymbol]; -}; - - - -/***/ }), - -/***/ 3682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(4670) -var addHook = __nccwpck_require__(5549) -var removeHook = __nccwpck_require__(6819) - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -var bind = Function.bind -var bindable = bind.bind(bind) - -function bindApi (hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) - hook.api = { remove: removeHookRef } - hook.remove = removeHookRef - - ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { - var args = name ? [state, kind, name] : [state, kind] - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) - }) -} - -function HookSingular () { - var singularHookName = 'h' - var singularHookState = { - registry: {} - } - var singularHook = register.bind(null, singularHookState, singularHookName) - bindApi(singularHook, singularHookState, singularHookName) - return singularHook -} - -function HookCollection () { - var state = { - registry: {} - } - - var hook = register.bind(null, state) - bindApi(hook, state) - - return hook -} - -var collectionHookDeprecationMessageDisplayed = false -function Hook () { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') - collectionHookDeprecationMessageDisplayed = true - } - return HookCollection() -} - -Hook.Singular = HookSingular.bind() -Hook.Collection = HookCollection.bind() - -module.exports = Hook -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook -module.exports.Singular = Hook.Singular -module.exports.Collection = Hook.Collection - - -/***/ }), - -/***/ 5549: -/***/ ((module) => { - -module.exports = addHook; - -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - hook = function (method, options) { - var result; - return Promise.resolve() - .then(method.bind(null, options)) - .then(function (result_) { - result = result_; - return orig(result, options); - }) - .then(function () { - return result; - }); - }; - } - - if (kind === "error") { - hook = function (method, options) { - return Promise.resolve() - .then(method.bind(null, options)) - .catch(function (error) { - return orig(error, options); - }); - }; - } - - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} - - -/***/ }), - -/***/ 4670: -/***/ ((module) => { - -module.exports = register; - -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(function (callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - } - - return Promise.resolve().then(function () { - if (!state.registry[name]) { - return method(options); - } - - return state.registry[name].reduce(function (method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); -} - - -/***/ }), - -/***/ 6819: -/***/ ((module) => { - -module.exports = removeHook; - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); -} - - -/***/ }), - -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = 'Deprecation'; - } - -} - -exports.Deprecation = Deprecation; - - -/***/ }), - -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} - -function isPlainObject(o) { - var ctor,prot; - - if (isObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; - - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -} - -exports.isPlainObject = isPlainObject; - - -/***/ }), - -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(2940) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - - -/***/ }), - -/***/ 4294: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(4219); - - -/***/ }), - -/***/ 4219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.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 || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.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) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - - // If we are under maxSockets create a new one. - 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'); - } - - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - debug('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) { - debug('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; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - - function onError(cause) { - connectReq.removeAllListeners(); - - debug('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) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; - -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: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} - - -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} - -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] !== undefined) { - target[k] = overrides[k]; - } - } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = 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 { - debug = function() {}; -} -exports.debug = debug; // for test - - -/***/ }), - -/***/ 5030: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && "version" in process) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } - - return ""; -} - -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; /***/ }), -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 3387: +/***/ ((module) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); +}; -var _version = _interopRequireDefault(__nccwpck_require__(1595)); +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +/***/ 3682: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +var register = __nccwpck_require__(4670) +var addHook = __nccwpck_require__(5549) +var removeHook = __nccwpck_require__(6819) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef - return _crypto.default.createHash('md5').update(bytes).digest(); + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) } -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook } -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; +function HookCollection () { + var state = { + registry: {} + } + var hook = register.bind(null, state) + bindApi(hook, state) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; + return hook +} -/***/ }), +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() -"use strict"; +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; +/***/ }), -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +/***/ 5549: +/***/ ((module) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = addHook; -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } -let poolPtr = rnds8Pool.length; + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } - poolPtr = 0; + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; } - return rnds8Pool.slice(poolPtr, poolPtr += 16); + state.registry[name].push({ + hook: hook, + orig: orig, + }); } -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; +/***/ }), +/***/ 4670: +/***/ ((module) => { -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +module.exports = register; -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (!options) { + options = {}; + } -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); } - return _crypto.default.createHash('sha1').update(bytes).digest(); + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); } -var _default = sha1; -exports["default"] = _default; /***/ }), -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ 6819: +/***/ ((module) => { -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; +module.exports = removeHook; -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); + if (index === -1) { + return; } - return uuid; + state.registry[name].splice(index, 1); } -var _default = stringify; -exports["default"] = _default; /***/ }), -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 8932: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /* istanbul ignore next */ -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } -let _clockseq; // Previous uuid creation time + this.name = 'Deprecation'; + } +} -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details +exports.Deprecation = Deprecation; -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); +/***/ }), - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } +/***/ 3287: +/***/ ((__unused_webpack_module, exports) => { - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. +"use strict"; - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock +Object.defineProperty(exports, "__esModule", ({ value: true })); - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval +function isPlainObject(o) { + var ctor,prot; + if (isObject(o) === false) return false; - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; } - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + // Most likely a plain Object + return true; +} - msecs += 12219292800000; // `time_low` +exports.isPlainObject = isPlainObject; - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` +/***/ }), - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version +/***/ 1223: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) +var wrappy = __nccwpck_require__(2940) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) - b[i++] = clockseq & 0xff; // `node` + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) } + f.called = false + return f +} - return buf || (0, _stringify.default)(b); +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f } -var _default = v1; -exports["default"] = _default; /***/ }), -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); +/***/ 4294: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = __nccwpck_require__(4219); -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; /***/ }), -/***/ 5998: +/***/ 4219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) +var net = __nccwpck_require__(1808); +var tls = __nccwpck_require__(4404); +var http = __nccwpck_require__(3685); +var https = __nccwpck_require__(5687); +var events = __nccwpck_require__(2361); +var assert = __nccwpck_require__(9491); +var util = __nccwpck_require__(3837); - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; } -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -"use strict"; +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); -function v4(options, buf, offset) { - options = options || {}; + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + // If we are under maxSockets create a new one. + 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); + } - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; - if (buf) { - offset = offset || 0; +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port } - - return buf; + }); + 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'); } - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); -"use strict"; + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); -var _v = _interopRequireDefault(__nccwpck_require__(5998)); + if (res.statusCode !== 200) { + debug('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) { + debug('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; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + function onError(cause) { + connectReq.removeAllListeners(); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + debug('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); + } +}; -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; +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) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +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: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); -"use strict"; + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} -var _regex = _interopRequireDefault(__nccwpck_require__(814)); +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] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = 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 { + debug = function() {}; } +exports.debug = debug; // for test -var _default = validate; -exports["default"] = _default; /***/ }), -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 5030: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; } - return parseInt(uuid.substr(14, 1), 16); + return ""; } -var _default = version; -exports["default"] = _default; +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + /***/ }), @@ -9637,14 +9180,6 @@ module.exports = require("assert"); /***/ }), -/***/ 6113: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto"); - -/***/ }), - /***/ 2361: /***/ ((module) => { diff --git a/dist/autogen-readme-list/index.js.map b/dist/autogen-readme-list/index.js.map index a3ef402..dacc560 100644 --- a/dist/autogen-readme-list/index.js.map +++ b/dist/autogen-readme-list/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/autogen-readme-list/autogen-readme-list.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/context.js","../webpack://typescript-action/./node_modules/@actions/github/lib/github.js","../webpack://typescript-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/before-after-hook/index.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/add.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/register.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/remove.js","../webpack://typescript-action/./node_modules/deprecation/dist-node/index.js","../webpack://typescript-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://typescript-action/./node_modules/once/once.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/wrappy/wrappy.js","../webpack://typescript-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"node:fs/promises\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"punycode\"","../webpack://typescript-action/external node-commonjs \"stream\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"url\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"zlib\"","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst promises_1 = __importDefault(require(\"node:fs/promises\"));\nconst util_1 = require(\"util\");\nasync function reWriteMarkdown(token, path) {\n const octokit = github.getOctokit(token);\n const markdown = await promises_1.default.readFile(path, 'ascii');\n console.log(markdown);\n const lines = markdown.split('\\n');\n const tagsMap = {};\n lines.forEach(line => {\n if (line.includes('start-autogen-list')) {\n const tag = (line.match(/tag=(.+)\\s-->/) || [])[1];\n tagsMap[tag] = [];\n }\n });\n const repoTopicResponse = await octokit.graphql(`\n query {\n organization(login: \"KittyCAD\") {\n repositories(first: 50){ \n nodes {\n name\n url\n repositoryTopics(first: 10) {\n\t\t\t\t\t nodes {\n topic {\n name\n }\n }\n }\n }\n }\n }\n }\n `);\n // loop over repositories\n repoTopicResponse.organization.repositories.nodes.forEach(repo => {\n // loop over topics\n repo.repositoryTopics.nodes.forEach(({ topic }) => {\n // check if topic is in tagsMap\n if (topic.name in tagsMap) {\n // add repo to tagsMap\n tagsMap[topic.name].push({\n repo: repo.name,\n url: repo.url\n });\n }\n });\n });\n let newMarkdown = markdown;\n for (const [tag, repos] of Object.entries(tagsMap)) {\n const regExTemplate = `([\\\\S\\\\s])*?`;\n const regEx = RegExp(regExTemplate, 'gim');\n const newLines = repos\n .sort((a, b) => (a.repo > b.repo ? 1 : -1))\n .map(({ url, repo }) => `- [${repo}](${url})`);\n newLines.unshift(``);\n newLines.push('');\n newMarkdown = newMarkdown.replace(regEx, newLines.join('\\n'));\n }\n core.debug(`tagsMap: ${(0, util_1.inspect)(tagsMap)}`);\n core.debug(`markdown: ${(0, util_1.inspect)(newMarkdown)}`);\n promises_1.default.writeFile(path, newMarkdown);\n}\nfunction main() {\n const token = core.getInput('github-token');\n const path = core.getInput('path');\n reWriteMarkdown(token, path);\n}\nmain();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(1442);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":[".././lib/autogen-readme-list/autogen-readme-list.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@octokit/request/node_modules/node-fetch/lib/index.js",".././node_modules/@octokit/request/node_modules/tr46/index.js",".././node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/is-plain-object/dist/is-plain-object.js",".././node_modules/once/once.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/wrappy/wrappy.js",".././node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../external node-commonjs \"assert\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"node:fs/promises\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"punycode\"","../external node-commonjs \"stream\"","../external node-commonjs \"tls\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"zlib\"","../webpack/bootstrap","../webpack/runtime/compat","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst promises_1 = __importDefault(require(\"node:fs/promises\"));\nconst util_1 = require(\"util\");\nasync function reWriteMarkdown(token, path) {\n const octokit = github.getOctokit(token);\n const markdown = await promises_1.default.readFile(path, 'ascii');\n console.log(markdown);\n const lines = markdown.split('\\n');\n const tagsMap = {};\n lines.forEach(line => {\n if (line.includes('start-autogen-list')) {\n const tag = (line.match(/tag=(.+)\\s-->/) || [])[1];\n tagsMap[tag] = [];\n }\n });\n const repoTopicResponse = await octokit.graphql(`\n query {\n organization(login: \"KittyCAD\") {\n repositories(first: 50){ \n nodes {\n name\n url\n repositoryTopics(first: 10) {\n\t\t\t\t\t nodes {\n topic {\n name\n }\n }\n }\n }\n }\n }\n }\n `);\n // loop over repositories\n repoTopicResponse.organization.repositories.nodes.forEach(repo => {\n // loop over topics\n repo.repositoryTopics.nodes.forEach(({ topic }) => {\n // check if topic is in tagsMap\n if (topic.name in tagsMap) {\n // add repo to tagsMap\n tagsMap[topic.name].push({\n repo: repo.name,\n url: repo.url\n });\n }\n });\n });\n let newMarkdown = markdown;\n for (const [tag, repos] of Object.entries(tagsMap)) {\n const regExTemplate = `([\\\\S\\\\s])*?`;\n const regEx = RegExp(regExTemplate, 'gim');\n const newLines = repos\n .sort((a, b) => (a.repo > b.repo ? 1 : -1))\n .map(({ url, repo }) => `- [${repo}](${url})`);\n newLines.unshift(``);\n newLines.push('');\n newMarkdown = newMarkdown.replace(regEx, newLines.join('\\n'));\n }\n core.debug(`tagsMap: ${(0, util_1.inspect)(tagsMap)}`);\n core.debug(`markdown: ${(0, util_1.inspect)(newMarkdown)}`);\n promises_1.default.writeFile(path, newMarkdown);\n}\nfunction main() {\n const token = core.getInput('github-token');\n const path = core.getInput('path');\n reWriteMarkdown(token, path);\n}\nmain();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(1442);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/autogen-readme-list/licenses.txt b/dist/autogen-readme-list/licenses.txt index bac409b..bedd358 100644 --- a/dist/autogen-readme-list/licenses.txt +++ b/dist/autogen-readme-list/licenses.txt @@ -562,19 +562,6 @@ Permission to use, copy, modify, and/or distribute this software for any purpose THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -uuid -MIT -The MIT License (MIT) - -Copyright (c) 2010-2020 Robert Kieffer and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - webidl-conversions BSD-2-Clause # The BSD 2-Clause License diff --git a/dist/check-all-issues/index.js b/dist/check-all-issues/index.js index 2d1bba0..4f933d6 100644 --- a/dist/check-all-issues/index.js +++ b/dist/check-all-issues/index.js @@ -8,11 +8,7 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -383,9 +379,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -403,7 +403,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -443,10 +443,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -479,12 +476,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -613,11 +606,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -636,23 +625,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -683,14 +655,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -702,22 +673,7 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), @@ -738,8 +694,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); +const http_client_1 = __nccwpck_require__(9925); +const auth_1 = __nccwpck_require__(3702); const core_1 = __nccwpck_require__(2186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { @@ -772,7 +728,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -806,361 +762,6 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - /***/ 5278: /***/ ((__unused_webpack_module, exports) => { @@ -1339,7 +940,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); +const httpClient = __importStar(__nccwpck_require__(6341)); function getAuthString(token, options) { if (!token && !options.auth) { throw new Error('Parameter token or opts.auth is required'); @@ -1424,95 +1025,7 @@ exports.getOctokitOptions = getOctokitOptions; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: +/***/ 6341: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -1550,7 +1063,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; const http = __importStar(__nccwpck_require__(3685)); const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); +const pm = __importStar(__nccwpck_require__(3466)); const tunnel = __importStar(__nccwpck_require__(4294)); var HttpCodes; (function (HttpCodes) { @@ -2124,7 +1637,7 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ }), -/***/ 9835: +/***/ 3466: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -2192,7500 +1705,7530 @@ exports.checkBypass = checkBypass; /***/ }), -/***/ 334: +/***/ 3702: /***/ ((__unused_webpack_module, exports) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -const REGEX_IS_INSTALLATION = /^ghs_/; -const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token: token, - tokenType - }; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -/** - * Prefix token for usage in the Authorization header - * - * @param token OAuth token or JSON Web Token - */ -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - - return `token ${token}`; +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -const createTokenAuth = function createTokenAuth(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) - }); -}; - -exports.createTokenAuth = createTokenAuth; -//# sourceMappingURL=index.js.map +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; /***/ }), -/***/ 6762: +/***/ 9925: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -var universalUserAgent = __nccwpck_require__(5030); -var beforeAfterHook = __nccwpck_require__(3682); -var request = __nccwpck_require__(6234); -var graphql = __nccwpck_require__(8467); -var authToken = __nccwpck_require__(334); - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; +const http = __nccwpck_require__(3685); +const https = __nccwpck_require__(5687); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; } - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); } - } - - return target; } - -const VERSION = "3.6.0"; - -const _excluded = ["authStrategy"]; -class Octokit { - constructor(options = {}) { - const hook = new beforeAfterHook.Collection(); - const requestDefaults = { - baseUrl: request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; // prepend default user agent with `options.userAgent` if set - - requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); - - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; } - - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); } - - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, 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 = userAgent; + 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; + } + } } - - this.request = request.request.defaults(requestDefaults); - this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign({ - debug: () => {}, - info: () => {}, - warn: console.warn.bind(console), - error: console.error.bind(console) - }, options.log); - this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance - // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. - // (2) If only `options.auth` is set, use the default token authentication strategy. - // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. - // TODO: type `options.auth` based on `options.authStrategy`. - - if (!options.authStrategy) { - if (!options.auth) { - // (1) - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - // (2) - const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { - authStrategy - } = options, - otherOptions = _objectWithoutProperties(options, _excluded); - - const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } // apply plugins - // https://stackoverflow.com/a/16345172 - - - const classConstructor = this.constructor; - classConstructor.plugins.forEach(plugin => { - Object.assign(this, plugin(this, options)); - }); - } - - 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; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - - - static plugin(...newPlugins) { - var _a; - - const currentPlugins = this.plugins; - const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); - return NewOctokit; - } - -} -Octokit.VERSION = VERSION; -Octokit.plugins = []; - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 9440: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var isPlainObject = __nccwpck_require__(3287); -var universalUserAgent = __nccwpck_require__(5030); - -function lowercaseKeys(object) { - if (!object) { - return {}; - } - - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach(key => { - if (isPlainObject.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] - }); + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); } - }); - return result; -} - -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === undefined) { - delete obj[key]; + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); } - } - - 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); - } // lowercase header names before merging with defaults to avoid duplicates - - - options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging - - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten - - 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("+"); + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); } - - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -const urlVariableRegex = /\{[^}]+\}/g; - -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} - -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - - if (!matches) { - return []; - } - - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -function omit(object, keysToOmit) { - return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { - obj[key] = object[key]; - return obj; - }, {}); -} - -// Based on https://github.com/bramstein/url-template, licensed under BSD -// TODO: create separate package. -// -// Copyright (c) 2012-2014, Bram Stein -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/* istanbul ignore file */ -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, "]"); + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); } - - 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 !== undefined && 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 (value) { - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); } - } else { - const tmp = []; - - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - tmp.push(encodeValue(operator, value)); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); } - }); - } - - 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 response; } - } - - return result; -} - -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} - -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - return 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; + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); } - - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); + this._disposed = true; } - }); -} - -function parse(options) { - // https://fetch.spec.whatwg.org/#methods - let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible - - 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"]); // extract variable names from URL to calculate remaining variables later - - 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) { - // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw - headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); } - - if (options.mediaType.previews.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + 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(); + } } - } // for GET/HEAD requests, set URL query parameters from remaining parameters - // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters - - - 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; - } else { - headers["content-length"] = 0; - } + /** + * 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) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); } - } // default content-type for JSON if body is set - - - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. - // fetch does not allow to set `content-length` header, but we can set body to an empty string + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((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 reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); + } +} +exports.HttpClient = HttpClient; - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } // Only return body/request keys if present +/***/ }), +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { - return Object.assign({ - method, - url, - headers - }, typeof body !== "undefined" ? { - body - } : null, options.request ? { - request: options.request - } : null); -} +"use strict"; -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); +Object.defineProperty(exports, "__esModule", ({ value: true })); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; + } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; } - -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse - }); +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; } - -const VERSION = "6.0.12"; - -const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. -// So we use RequestParameters and add method as additional required property. - -const DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "", - previews: [] - } -}; - -const endpoint = withDefaults(null, DEFAULTS); - -exports.endpoint = endpoint; -//# sourceMappingURL=index.js.map +exports.checkBypass = checkBypass; /***/ }), -/***/ 8467: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 334: +/***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -var request = __nccwpck_require__(6234); -var universalUserAgent = __nccwpck_require__(5030); +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} -const VERSION = "4.8.0"; +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); + return `token ${token}`; } -class GraphqlResponseError extends Error { - constructor(request, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. - - this.errors = response.errors; - this.data = response.data; // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } - +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); } -const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; -const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request, 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 createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); } - 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 (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } - if (!result.variables) { - result.variables = {}; - } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; - result.variables[key] = parsedOptions[key]; - return result; - }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix - // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 +exports.createTokenAuth = createTokenAuth; +//# sourceMappingURL=index.js.map - const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); - } +/***/ }), - return request(requestOptions).then(response => { - if (response.data.errors) { - const headers = {}; +/***/ 6762: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } +"use strict"; - throw new GraphqlResponseError(requestOptions, headers, response.data); - } - return response.data.data; - }); -} +Object.defineProperty(exports, "__esModule", ({ value: true })); -function withDefaults(request$1, newDefaults) { - const newRequest = request$1.defaults(newDefaults); +var universalUserAgent = __nccwpck_require__(5030); +var beforeAfterHook = __nccwpck_require__(3682); +var request = __nccwpck_require__(6234); +var graphql = __nccwpck_require__(8467); +var authToken = __nccwpck_require__(334); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: request.request.endpoint - }); -} + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } -const graphql$1 = withDefaults(request.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); + return target; } -exports.GraphqlResponseError = GraphqlResponseError; -exports.graphql = graphql$1; -exports.withCustomRequest = withCustomRequest; -//# sourceMappingURL=index.js.map +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); -/***/ }), + var key, i; -/***/ 4193: -/***/ ((__unused_webpack_module, exports) => { + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); -"use strict"; + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + return target; +} -Object.defineProperty(exports, "__esModule", ({ value: true })); +const VERSION = "3.6.0"; -const VERSION = "2.17.0"; +const _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; } - keys.push.apply(keys, symbols); - } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } - return keys; -} + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + hook.wrap("request", auth.hook); + this.auth = auth; + } } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); - return target; -} + const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); }); - } else { - obj[key] = value; } - return obj; -} + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; -/** - * Some “list” response that can be paginated have a different response structure - * - * They have a `total_count` key in the response (search also has `incomplete_results`, - * /installation/repositories also has `repository_selection`), as well as a key with - * the list of the items which name varies from endpoint to endpoint. - * - * Octokit normalizes these responses so that paginated results are always returned following - * the same structure. One challenge is that if the list response has only one page, no Link - * header is provided, so this header alone is not sufficient to check wether a response is - * paginated or not. - * - * We check if a "total_count" key is present in the response data, but also make sure that - * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would - * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref - */ -function normalizePaginatedListResponse(response) { - // endpoints can respond with 204 if repository is empty - if (!response.data) { - return _objectSpread2(_objectSpread2({}, response), {}, { - data: [] - }); - } - - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way - // to retrieve the same information. + if (typeof defaults === "function") { + super(defaults(options)); + return; + } - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; + }; + return OctokitWithDefaults; } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; + + static plugin(...newPlugins) { + var _a; + + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; } - response.data.total_count = totalCount; - return response; } +Octokit.VERSION = VERSION; +Octokit.plugins = []; -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 - }; +exports.Octokit = Octokit; +//# sourceMappingURL=index.js.map - try { - const response = await requestMethod({ - method, - url, - headers - }); - const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format: - // '; rel="next", ; rel="last"' - // sets `url` to undefined if "next" URL is not present or `link` header is not set - url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; - return { - value: normalizedResponse - }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } +/***/ }), - }) - }; -} +/***/ 9440: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = undefined; - } +"use strict"; - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); -} -function gather(octokit, results, iterator, mapFn) { - return iterator.next().then(result => { - if (result.done) { - return results; - } +Object.defineProperty(exports, "__esModule", ({ value: true })); - let earlyExit = false; +var isPlainObject = __nccwpck_require__(3287); +var universalUserAgent = __nccwpck_require__(5030); - function done() { - earlyExit = true; - } +function lowercaseKeys(object) { + if (!object) { + return {}; + } - results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} - if (earlyExit) { - return results; +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.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 gather(octokit, results, iterator, mapFn); }); + return result; } -const composePaginateRest = Object.assign(paginate, { - iterator -}); +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } -const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + return obj; +} -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); } else { - return false; - } -} + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; -} -paginateRest.VERSION = VERSION; + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging -exports.composePaginateRest = composePaginateRest; -exports.isPaginatingEndpoint = isPaginatingEndpoint; -exports.paginateRest = paginateRest; -exports.paginatingEndpoints = paginatingEndpoints; -//# sourceMappingURL=index.js.map + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + 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; +} -/***/ 3044: -/***/ ((__unused_webpack_module, exports) => { +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); -"use strict"; + if (names.length === 0) { + return url; + } + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +const urlVariableRegex = /\{[^}]+\}/g; - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); - keys.push.apply(keys, symbols); + if (!matches) { + return []; } - return keys; + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); } -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* istanbul ignore file */ +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; } +} - return target; +function isDefined(value) { + return value !== undefined && value !== null; } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); +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 (value) { + result.push(encodeValue(operator, value, 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 (value) { + tmp.push(encodeValue(operator, value)); + }); + } 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 { - obj[key] = value; + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } } - return obj; + return result; } -const Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], - addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], - approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], - cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], - createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - 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"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], - getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], - 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}"], - getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], - getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - 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}"], - 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}"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], - 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"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - 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"], - 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}"], - 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"], - setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], - setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] - }, - 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"], - 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"], - 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"], - getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], - getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], - 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"] - }, - 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: { - deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], - getAlert: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { - renamedParameters: { - alert_id: "alert_number" +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} + +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return 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); } - }], - getAnalysis: ["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - 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"] - }], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], - createForAuthenticatedUser: ["POST /user/codespaces"], - 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}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], - exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], - getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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" + + 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(","); } - }], - listInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], - setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] - }, - 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}"], - 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}"], - 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"] - }, - dependencyGraph: { - createRepositorySnapshot: ["POST /repos/{owner}/{repo}/dependency-graph/snapshots"], - diffRange: ["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"] - }, - emojis: { - get: ["GET /emojis"] - }, - enterpriseAdmin: { - addCustomLabelsToSelfHostedRunnerForEnterprise: ["POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - disableSelectedOrganizationGithubActionsEnterprise: ["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], - enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], - getAllowedActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/selected-actions"], - getGithubActionsPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions"], - getServerStatistics: ["GET /enterprise-installation/{enterprise_or_org}/server-statistics"], - listLabelsForSelfHostedRunnerForEnterprise: ["GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - listSelectedOrganizationsEnabledGithubActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/organizations"], - removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - removeCustomLabelFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}"], - setAllowedActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"], - setCustomLabelsForSelfHostedRunnerForEnterprise: ["PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - setGithubActionsPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions"], - setSelectedOrganizationsEnabledGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations"] - }, - 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}"] - }, - 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"], - checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/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"], - 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}"], - 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" + } else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + 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"]); // extract variable names from URL to calculate remaining variables later + + 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) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } + + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + 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; + } else { + headers["content-length"] = 0; } - }] - }, - meta: { - get: ["GET /meta"], - getOctocat: ["GET /octocat"], - getZen: ["GET /zen"], - root: ["GET /"] - }, - migrations: { - cancelImport: ["DELETE /repos/{owner}/{repo}/import"], - 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"], - getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], - getImportStatus: ["GET /repos/{owner}/{repo}/import"], - getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], - 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"] - }], - mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], - setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - startImport: ["PUT /repos/{owner}/{repo}/import"], - unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"], - unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"], - updateImport: ["PATCH /repos/{owner}/{repo}/import"] + } + } // default content-type for JSON if body is set + + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + 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 DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent }, - orgs: { - 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"], - createWebhook: ["POST /orgs/{org}/hooks"], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - get: ["GET /orgs/{org}"], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - 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"], - listBlockedUsers: ["GET /orgs/{org}/blocks"], - listCustomRoles: ["GET /organizations/{organization_id}/custom_roles"], - listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], - listForAuthenticatedUser: ["GET /user/orgs"], - listForUser: ["GET /users/{username}/orgs"], - listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], - listMembers: ["GET /orgs/{org}/members"], - listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - listPendingInvitations: ["GET /orgs/{org}/invitations"], - listPublicMembers: ["GET /orgs/{org}/public_members"], - 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"], - 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}"], - setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], - setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], - unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], - update: ["PATCH /orgs/{org}"], - updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], - 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}"], - 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"] - }, - projects: { - addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], - createCard: ["POST /projects/columns/{column_id}/cards"], - createColumn: ["POST /projects/{project_id}/columns"], - createForAuthenticatedUser: ["POST /user/projects"], - createForOrg: ["POST /orgs/{org}/projects"], - createForRepo: ["POST /repos/{owner}/{repo}/projects"], - delete: ["DELETE /projects/{project_id}"], - deleteCard: ["DELETE /projects/columns/cards/{card_id}"], - deleteColumn: ["DELETE /projects/columns/{column_id}"], - get: ["GET /projects/{project_id}"], - getCard: ["GET /projects/columns/cards/{card_id}"], - getColumn: ["GET /projects/columns/{column_id}"], - getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission"], - listCards: ["GET /projects/columns/{column_id}/cards"], - listCollaborators: ["GET /projects/{project_id}/collaborators"], - listColumns: ["GET /projects/{project_id}/columns"], - listForOrg: ["GET /orgs/{org}/projects"], - listForRepo: ["GET /repos/{owner}/{repo}/projects"], - listForUser: ["GET /users/{username}/projects"], - moveCard: ["POST /projects/columns/cards/{card_id}/moves"], - moveColumn: ["POST /projects/columns/{column_id}/moves"], - removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}"], - update: ["PATCH /projects/{project_id}"], - updateCard: ["PATCH /projects/columns/cards/{card_id}"], - updateColumn: ["PATCH /projects/columns/{column_id}"] - }, - 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"] + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8467: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var request = __nccwpck_require__(6234); +var universalUserAgent = __nccwpck_require__(5030); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); +} + +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, 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; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(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 withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` }, - 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" - }], - checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], - 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}"], - 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"], - 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"], - createOrUpdateEnvironment: ["PUT /repos/{owner}/{repo}/environments/{environment_name}"], - createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], - 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}"], - deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], - deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_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}"], - deleteTagProtection: ["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"], - deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], - disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes"], - disableLfsForRepo: ["DELETE /repos/{owner}/{repo}/lfs"], - 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"], - enableLfsForRepo: ["PUT /repos/{owner}/{repo}/lfs"], - 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"], - 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"], - 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"], - getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], - getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_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"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_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}"], - 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}"], - 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"], - listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], - 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"], - listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], - 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}"], - updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], - updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_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}"], - 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"], - labels: ["GET /search/labels"], - repos: ["GET /search/repositories"], - topics: ["GET /search/topics"], - users: ["GET /search/users"] - }, - secretScanning: { - getAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"], - 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}"] - }, - teams: { - addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], - addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"], - addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], - checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"], - 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"], - listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], - listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], - removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], - removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], - 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"], - 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"], - 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}"], - follow: ["PUT /user/following/{username}"], - getAuthenticated: ["GET /user"], - 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}"], - list: ["GET /users"], - 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"], - 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"] - } -}; - -const VERSION = "5.16.2"; - -function endpointsToMethods(octokit, endpointsMap) { - const newMethods = {}; - - for (const [scope, endpoints] of Object.entries(endpointsMap)) { - for (const [methodName, endpoint] of Object.entries(endpoints)) { - const [route, defaults, decorations] = endpoint; - const [method, url] = route.split(/ /); - const endpointDefaults = Object.assign({ - method, - url - }, defaults); - - if (!newMethods[scope]) { - newMethods[scope] = {}; - } - - const scopeMethods = newMethods[scope]; - - if (decorations) { - scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); - continue; - } - - scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); - } - } - - return newMethods; -} - -function decorate(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - /* istanbul ignore next */ - - function withDecorations(...args) { - // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` - - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: undefined - }); - 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) { - // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - const options = requestWithDefaults.endpoint.merge(...args); - - for (const [name, alias] of Object.entries(decorations.renamedParameters)) { - if (name in options) { - octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); - - if (!(alias in options)) { - options[alias] = options[name]; - } - - delete options[name]; - } - } - - return requestWithDefaults(options); - } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - - - return requestWithDefaults(...args); - } - - return Object.assign(withDecorations, requestWithDefaults); -} - -function restEndpointMethods(octokit) { - const api = endpointsToMethods(octokit, Endpoints); - return { - rest: api - }; -} -restEndpointMethods.VERSION = VERSION; -function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit, Endpoints); - return _objectSpread2(_objectSpread2({}, api), {}, { - rest: api - }); -} -legacyRestEndpointMethods.VERSION = VERSION; - -exports.legacyRestEndpointMethods = legacyRestEndpointMethods; -exports.restEndpointMethods = restEndpointMethods; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 537: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var deprecation = __nccwpck_require__(8932); -var once = _interopDefault(__nccwpck_require__(1223)); - -const logOnceCode = once(deprecation => console.warn(deprecation)); -const logOnceHeaders = once(deprecation => console.warn(deprecation)); -/** - * Error with extra properties to help with debugging - */ - -class RequestError extends Error { - constructor(message, statusCode, options) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = "HttpError"; - this.status = statusCode; - let headers; - - if ("headers" in options && typeof options.headers !== "undefined") { - headers = options.headers; - } - - if ("response" in options) { - this.response = options.response; - headers = options.response.headers; - } // redact request credentials without mutating original request options - - - const requestCopy = Object.assign({}, options.request); - - if (options.request.headers.authorization) { - requestCopy.headers = Object.assign({}, options.request.headers, { - authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") - }); - } - - requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit - // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications - .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended - // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header - .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); - this.request = requestCopy; // deprecations - - Object.defineProperty(this, "code", { - get() { - logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); - return statusCode; - } - - }); - Object.defineProperty(this, "headers", { - get() { - logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); - return headers || {}; - } - - }); - } - -} - -exports.RequestError = RequestError; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 6234: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var endpoint = __nccwpck_require__(9440); -var universalUserAgent = __nccwpck_require__(5030); -var isPlainObject = __nccwpck_require__(3287); -var nodeFetch = _interopDefault(__nccwpck_require__(1768)); -var requestError = __nccwpck_require__(537); - -const VERSION = "5.6.3"; - -function getBufferResponse(response) { - return response.arrayBuffer(); -} - -function fetchWrapper(requestOptions) { - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - - if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { - requestOptions.body = JSON.stringify(requestOptions.body); - } - - let headers = {}; - let status; - let url; - const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; - return fetch(requestOptions.url, Object.assign({ - method: requestOptions.method, - body: requestOptions.body, - headers: requestOptions.headers, - redirect: requestOptions.redirect - }, // `requestOptions.request.agent` type is incompatible - // see https://github.com/octokit/types.ts/pull/264 - requestOptions.request)).then(async response => { - url = response.url; - status = response.status; - - for (const keyAndValue of response.headers) { - headers[keyAndValue[0]] = keyAndValue[1]; - } - - if ("deprecation" in headers) { - const matches = headers.link && headers.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 ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); - } - - if (status === 204 || status === 205) { - return; - } // GitHub API returns 200 for HEAD requests - - - if (requestOptions.method === "HEAD") { - if (status < 400) { - return; - } - - throw new requestError.RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: undefined - }, - request: requestOptions - }); - } - - if (status === 304) { - throw new requestError.RequestError("Not modified", status, { - response: { - url, - status, - headers, - data: await getResponseData(response) - }, - request: requestOptions - }); - } - - if (status >= 400) { - const data = await getResponseData(response); - const error = new requestError.RequestError(toErrorMessage(data), status, { - response: { - url, - status, - headers, - data - }, - request: requestOptions - }); - throw error; - } - - return getResponseData(response); - }).then(data => { - return { - status, - url, - headers, - data - }; - }).catch(error => { - if (error instanceof requestError.RequestError) throw error; - throw new requestError.RequestError(error.message, 500, { - request: requestOptions - }); - }); -} - -async function getResponseData(response) { - const contentType = response.headers.get("content-type"); - - if (/application\/json/.test(contentType)) { - return response.json(); - } - - if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { - return response.text(); - } - - return getBufferResponse(response); -} - -function toErrorMessage(data) { - if (typeof data === "string") return data; // istanbul ignore else - just in case - - if ("message" in data) { - if (Array.isArray(data.errors)) { - return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; - } - - return data.message; - } // istanbul ignore next - just in case - - - return `Unknown error: ${JSON.stringify(data)}`; -} - -function withDefaults(oldEndpoint, newDefaults) { - const endpoint = oldEndpoint.defaults(newDefaults); - - const newApi = function (route, parameters) { - const endpointOptions = endpoint.merge(route, parameters); - - if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint.parse(endpointOptions)); - } - - const request = (route, parameters) => { - return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); - }; - - Object.assign(request, { - endpoint, - defaults: withDefaults.bind(null, endpoint) - }); - return endpointOptions.request.hook(request, endpointOptions); - }; - - return Object.assign(newApi, { - endpoint, - defaults: withDefaults.bind(null, endpoint) - }); -} - -const request = withDefaults(endpoint.endpoint, { - headers: { - "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` - } -}); - -exports.request = request; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 1768: -/***/ ((module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var Stream = _interopDefault(__nccwpck_require__(2781)); -var http = _interopDefault(__nccwpck_require__(3685)); -var Url = _interopDefault(__nccwpck_require__(7310)); -var whatwgUrl = _interopDefault(__nccwpck_require__(301)); -var https = _interopDefault(__nccwpck_require__(5687)); -var zlib = _interopDefault(__nccwpck_require__(9796)); - -// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js - -// fix for "Readable" isn't a named export issue -const Readable = Stream.Readable; - -const BUFFER = Symbol('buffer'); -const TYPE = Symbol('type'); - -class Blob { - constructor() { - this[TYPE] = ''; - - const blobParts = arguments[0]; - const options = arguments[1]; - - const buffers = []; - let size = 0; - - if (blobParts) { - const a = blobParts; - const length = Number(a.length); - for (let i = 0; i < length; i++) { - const element = a[i]; - let buffer; - if (element instanceof Buffer) { - buffer = element; - } else if (ArrayBuffer.isView(element)) { - buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); - } else if (element instanceof ArrayBuffer) { - buffer = Buffer.from(element); - } else if (element instanceof Blob) { - buffer = element[BUFFER]; - } else { - buffer = Buffer.from(typeof element === 'string' ? element : String(element)); - } - size += buffer.length; - buffers.push(buffer); - } - } - - this[BUFFER] = Buffer.concat(buffers); - - let type = options && options.type !== undefined && String(options.type).toLowerCase(); - if (type && !/[^\u0020-\u007E]/.test(type)) { - this[TYPE] = type; - } - } - get size() { - return this[BUFFER].length; - } - get type() { - return this[TYPE]; - } - text() { - return Promise.resolve(this[BUFFER].toString()); - } - arrayBuffer() { - const buf = this[BUFFER]; - const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - return Promise.resolve(ab); - } - stream() { - const readable = new Readable(); - readable._read = function () {}; - readable.push(this[BUFFER]); - readable.push(null); - return readable; - } - toString() { - return '[object Blob]'; - } - slice() { - const size = this.size; - - const start = arguments[0]; - const end = arguments[1]; - let relativeStart, relativeEnd; - if (start === undefined) { - relativeStart = 0; - } else if (start < 0) { - relativeStart = Math.max(size + start, 0); - } else { - relativeStart = Math.min(start, size); - } - if (end === undefined) { - relativeEnd = size; - } else if (end < 0) { - relativeEnd = Math.max(size + end, 0); - } else { - relativeEnd = Math.min(end, size); - } - const span = Math.max(relativeEnd - relativeStart, 0); - - const buffer = this[BUFFER]; - const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); - const blob = new Blob([], { type: arguments[2] }); - blob[BUFFER] = slicedBuffer; - return blob; - } -} - -Object.defineProperties(Blob.prototype, { - size: { enumerable: true }, - type: { enumerable: true }, - slice: { enumerable: true } -}); - -Object.defineProperty(Blob.prototype, Symbol.toStringTag, { - value: 'Blob', - writable: false, - enumerable: false, - configurable: true -}); - -/** - * fetch-error.js - * - * FetchError interface for operational errors - */ - -/** - * Create FetchError instance - * - * @param String message Error message for human - * @param String type Error type for machine - * @param String systemError For Node.js system error - * @return FetchError - */ -function FetchError(message, type, systemError) { - Error.call(this, message); - - this.message = message; - this.type = type; - - // when err.type is `system`, err.code contains system error code - if (systemError) { - this.code = this.errno = systemError.code; - } - - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} - -FetchError.prototype = Object.create(Error.prototype); -FetchError.prototype.constructor = FetchError; -FetchError.prototype.name = 'FetchError'; - -let convert; -try { - convert = (__nccwpck_require__(2877).convert); -} catch (e) {} - -const INTERNALS = Symbol('Body internals'); - -// fix an issue where "PassThrough" isn't a named export for node <10 -const PassThrough = Stream.PassThrough; - -/** - * Body mixin - * - * Ref: https://fetch.spec.whatwg.org/#body - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -function Body(body) { - var _this = this; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$size = _ref.size; - - let size = _ref$size === undefined ? 0 : _ref$size; - var _ref$timeout = _ref.timeout; - let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; - - if (body == null) { - // body is undefined or null - body = null; - } else if (isURLSearchParams(body)) { - // body is a URLSearchParams - body = Buffer.from(body.toString()); - } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { - // body is ArrayBuffer - body = Buffer.from(body); - } else if (ArrayBuffer.isView(body)) { - // body is ArrayBufferView - body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); - } else if (body instanceof Stream) ; else { - // none of the above - // coerce to string then buffer - body = Buffer.from(String(body)); - } - this[INTERNALS] = { - body, - disturbed: false, - error: null - }; - this.size = size; - this.timeout = timeout; - - if (body instanceof Stream) { - body.on('error', function (err) { - const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); - _this[INTERNALS].error = error; - }); - } -} - -Body.prototype = { - get body() { - return this[INTERNALS].body; - }, - - get bodyUsed() { - return this[INTERNALS].disturbed; - }, - - /** - * Decode response as ArrayBuffer - * - * @return Promise - */ - arrayBuffer() { - return consumeBody.call(this).then(function (buf) { - return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - }); - }, - - /** - * Return raw response as Blob - * - * @return Promise - */ - blob() { - let ct = this.headers && this.headers.get('content-type') || ''; - return consumeBody.call(this).then(function (buf) { - return Object.assign( - // Prevent copying - new Blob([], { - type: ct.toLowerCase() - }), { - [BUFFER]: buf - }); - }); - }, - - /** - * Decode response as json - * - * @return Promise - */ - json() { - var _this2 = this; - - return consumeBody.call(this).then(function (buffer) { - try { - return JSON.parse(buffer.toString()); - } catch (err) { - return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); - } - }); - }, - - /** - * Decode response as text - * - * @return Promise - */ - text() { - return consumeBody.call(this).then(function (buffer) { - return buffer.toString(); - }); - }, - - /** - * Decode response as buffer (non-spec api) - * - * @return Promise - */ - buffer() { - return consumeBody.call(this); - }, - - /** - * Decode response as text, while automatically detecting the encoding and - * trying to decode to UTF-8 (non-spec api) - * - * @return Promise - */ - textConverted() { - var _this3 = this; - - return consumeBody.call(this).then(function (buffer) { - return convertBody(buffer, _this3.headers); - }); - } -}; - -// In browsers, all properties are enumerable. -Object.defineProperties(Body.prototype, { - body: { enumerable: true }, - bodyUsed: { enumerable: true }, - arrayBuffer: { enumerable: true }, - blob: { enumerable: true }, - json: { enumerable: true }, - text: { enumerable: true } -}); - -Body.mixIn = function (proto) { - for (const name of Object.getOwnPropertyNames(Body.prototype)) { - // istanbul ignore else: future proof - if (!(name in proto)) { - const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); - Object.defineProperty(proto, name, desc); - } - } -}; - -/** - * Consume and convert an entire Body to a Buffer. - * - * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body - * - * @return Promise - */ -function consumeBody() { - var _this4 = this; - - if (this[INTERNALS].disturbed) { - return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); - } - - this[INTERNALS].disturbed = true; - - if (this[INTERNALS].error) { - return Body.Promise.reject(this[INTERNALS].error); - } - - let body = this.body; - - // body is null - if (body === null) { - return Body.Promise.resolve(Buffer.alloc(0)); - } - - // body is blob - if (isBlob(body)) { - body = body.stream(); - } - - // body is buffer - if (Buffer.isBuffer(body)) { - return Body.Promise.resolve(body); - } - - // istanbul ignore if: should never happen - if (!(body instanceof Stream)) { - return Body.Promise.resolve(Buffer.alloc(0)); - } - - // body is stream - // get ready to actually consume the body - let accum = []; - let accumBytes = 0; - let abort = false; - - return new Body.Promise(function (resolve, reject) { - let resTimeout; - - // allow timeout on slow response body - if (_this4.timeout) { - resTimeout = setTimeout(function () { - abort = true; - reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); - }, _this4.timeout); - } - - // handle stream errors - body.on('error', function (err) { - if (err.name === 'AbortError') { - // if the request was aborted, reject with this Error - abort = true; - reject(err); - } else { - // other errors, such as incorrect content-encoding - reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); - } - }); - - body.on('data', function (chunk) { - if (abort || chunk === null) { - return; - } - - if (_this4.size && accumBytes + chunk.length > _this4.size) { - abort = true; - reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); - return; - } - - accumBytes += chunk.length; - accum.push(chunk); - }); - - body.on('end', function () { - if (abort) { - return; - } - - clearTimeout(resTimeout); - - try { - resolve(Buffer.concat(accum, accumBytes)); - } catch (err) { - // handle streams that have accumulated too much data (issue #414) - reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); - } - }); - }); -} - -/** - * Detect buffer encoding and convert to target encoding - * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding - * - * @param Buffer buffer Incoming buffer - * @param String encoding Target encoding - * @return String - */ -function convertBody(buffer, headers) { - if (typeof convert !== 'function') { - throw new Error('The package `encoding` must be installed to use the textConverted() function'); - } - - const ct = headers.get('content-type'); - let charset = 'utf-8'; - let res, str; - - // header - if (ct) { - res = /charset=([^;]*)/i.exec(ct); - } - - // no charset in content type, peek at response body for at most 1024 bytes - str = buffer.slice(0, 1024).toString(); - - // html5 - if (!res && str) { - res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; - - this[MAP] = Object.create(null); - - if (init instanceof Headers) { - const rawHeaders = init.raw(); - const headerNames = Object.keys(rawHeaders); - - for (const headerName of headerNames) { - for (const value of rawHeaders[headerName]) { - this.append(headerName, value); - } - } - - return; - } - - // We don't worry about converting prop to ByteString here as append() - // will handle it. - if (init == null) ; else if (typeof init === 'object') { - const method = init[Symbol.iterator]; - if (method != null) { - if (typeof method !== 'function') { - throw new TypeError('Header pairs must be iterable'); - } - - // sequence> - // Note: per spec we have to first exhaust the lists then process them - const pairs = []; - for (const pair of init) { - if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { - throw new TypeError('Each header pair must be iterable'); - } - pairs.push(Array.from(pair)); - } - - for (const pair of pairs) { - if (pair.length !== 2) { - throw new TypeError('Each header pair must be a name/value tuple'); - } - this.append(pair[0], pair[1]); - } - } else { - // record - for (const key of Object.keys(init)) { - const value = init[key]; - this.append(key, value); - } - } - } else { - throw new TypeError('Provided initializer must be an object'); - } - } - - /** - * Return combined header value given name - * - * @param String name Header name - * @return Mixed - */ - get(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key === undefined) { - return null; - } - - return this[MAP][key].join(', '); - } - - /** - * Iterate over all headers - * - * @param Function callback Executed for each item with parameters (value, name, thisArg) - * @param Boolean thisArg `this` context for callback function - * @return Void - */ - forEach(callback) { - let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; - - let pairs = getHeaders(this); - let i = 0; - while (i < pairs.length) { - var _pairs$i = pairs[i]; - const name = _pairs$i[0], - value = _pairs$i[1]; - - callback.call(thisArg, value, name, this); - pairs = getHeaders(this); - i++; - } - } - - /** - * Overwrite header values given name - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - set(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - this[MAP][key !== undefined ? key : name] = [value]; - } - - /** - * Append a value onto existing header - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - append(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - if (key !== undefined) { - this[MAP][key].push(value); - } else { - this[MAP][name] = [value]; - } - } - - /** - * Check for header name existence - * - * @param String name Header name - * @return Boolean - */ - has(name) { - name = `${name}`; - validateName(name); - return find(this[MAP], name) !== undefined; - } - - /** - * Delete all header values given name - * - * @param String name Header name - * @return Void - */ - delete(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key !== undefined) { - delete this[MAP][key]; - } - } - - /** - * Return raw headers (non-spec api) - * - * @return Object - */ - raw() { - return this[MAP]; - } - - /** - * Get an iterator on keys. - * - * @return Iterator - */ - keys() { - return createHeadersIterator(this, 'key'); - } - - /** - * Get an iterator on values. - * - * @return Iterator - */ - values() { - return createHeadersIterator(this, 'value'); - } - - /** - * Get an iterator on entries. - * - * This is the default iterator of the Headers object. - * - * @return Iterator - */ - [Symbol.iterator]() { - return createHeadersIterator(this, 'key+value'); - } -} -Headers.prototype.entries = Headers.prototype[Symbol.iterator]; - -Object.defineProperty(Headers.prototype, Symbol.toStringTag, { - value: 'Headers', - writable: false, - enumerable: false, - configurable: true -}); - -Object.defineProperties(Headers.prototype, { - get: { enumerable: true }, - forEach: { enumerable: true }, - set: { enumerable: true }, - append: { enumerable: true }, - has: { enumerable: true }, - delete: { enumerable: true }, - keys: { enumerable: true }, - values: { enumerable: true }, - entries: { enumerable: true } -}); - -function getHeaders(headers) { - let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; - - const keys = Object.keys(headers[MAP]).sort(); - return keys.map(kind === 'key' ? function (k) { - return k.toLowerCase(); - } : kind === 'value' ? function (k) { - return headers[MAP][k].join(', '); - } : function (k) { - return [k.toLowerCase(), headers[MAP][k].join(', ')]; - }); -} - -const INTERNAL = Symbol('internal'); - -function createHeadersIterator(target, kind) { - const iterator = Object.create(HeadersIteratorPrototype); - iterator[INTERNAL] = { - target, - kind, - index: 0 - }; - return iterator; -} - -const HeadersIteratorPrototype = Object.setPrototypeOf({ - next() { - // istanbul ignore if - if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { - throw new TypeError('Value of `this` is not a HeadersIterator'); - } - - var _INTERNAL = this[INTERNAL]; - const target = _INTERNAL.target, - kind = _INTERNAL.kind, - index = _INTERNAL.index; - - const values = getHeaders(target, kind); - const len = values.length; - if (index >= len) { - return { - value: undefined, - done: true - }; - } - - this[INTERNAL].index = index + 1; - - return { - value: values[index], - done: false - }; - } -}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); - -Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { - value: 'HeadersIterator', - writable: false, - enumerable: false, - configurable: true -}); - -/** - * Export the Headers object in a form that Node.js can consume. - * - * @param Headers headers - * @return Object - */ -function exportNodeCompatibleHeaders(headers) { - const obj = Object.assign({ __proto__: null }, headers[MAP]); - - // http.request() only supports string as Host header. This hack makes - // specifying custom Host header possible. - const hostHeaderKey = find(headers[MAP], 'Host'); - if (hostHeaderKey !== undefined) { - obj[hostHeaderKey] = obj[hostHeaderKey][0]; - } - - return obj; -} - -/** - * Create a Headers object from an object of headers, ignoring those that do - * not conform to HTTP grammar productions. - * - * @param Object obj Object of headers - * @return Headers - */ -function createHeadersLenient(obj) { - const headers = new Headers(); - for (const name of Object.keys(obj)) { - if (invalidTokenRegex.test(name)) { - continue; - } - if (Array.isArray(obj[name])) { - for (const val of obj[name]) { - if (invalidHeaderCharRegex.test(val)) { - continue; - } - if (headers[MAP][name] === undefined) { - headers[MAP][name] = [val]; - } else { - headers[MAP][name].push(val); - } - } - } else if (!invalidHeaderCharRegex.test(obj[name])) { - headers[MAP][name] = [obj[name]]; - } - } - return headers; -} - -const INTERNALS$1 = Symbol('Response internals'); - -// fix an issue where "STATUS_CODES" aren't a named export for node <10 -const STATUS_CODES = http.STATUS_CODES; - -/** - * Response class - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -class Response { - constructor() { - let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - Body.call(this, body, opts); - - const status = opts.status || 200; - const headers = new Headers(opts.headers); - - if (body != null && !headers.has('Content-Type')) { - const contentType = extractContentType(body); - if (contentType) { - headers.append('Content-Type', contentType); - } - } - - this[INTERNALS$1] = { - url: opts.url, - status, - statusText: opts.statusText || STATUS_CODES[status], - headers, - counter: opts.counter - }; - } - - get url() { - return this[INTERNALS$1].url || ''; - } - - get status() { - return this[INTERNALS$1].status; - } - - /** - * Convenience property representing if the request ended normally - */ - get ok() { - return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; - } - - get redirected() { - return this[INTERNALS$1].counter > 0; - } - - get statusText() { - return this[INTERNALS$1].statusText; - } - - get headers() { - return this[INTERNALS$1].headers; - } - - /** - * Clone this response - * - * @return Response - */ - clone() { - return new Response(clone(this), { - url: this.url, - status: this.status, - statusText: this.statusText, - headers: this.headers, - ok: this.ok, - redirected: this.redirected - }); - } -} - -Body.mixIn(Response.prototype); - -Object.defineProperties(Response.prototype, { - url: { enumerable: true }, - status: { enumerable: true }, - ok: { enumerable: true }, - redirected: { enumerable: true }, - statusText: { enumerable: true }, - headers: { enumerable: true }, - clone: { enumerable: true } -}); - -Object.defineProperty(Response.prototype, Symbol.toStringTag, { - value: 'Response', - writable: false, - enumerable: false, - configurable: true -}); - -const INTERNALS$2 = Symbol('Request internals'); -const URL = Url.URL || whatwgUrl.URL; - -// fix an issue where "format", "parse" aren't a named export for node <10 -const parse_url = Url.parse; -const format_url = Url.format; - -/** - * Wrapper around `new URL` to handle arbitrary URLs - * - * @param {string} urlStr - * @return {void} - */ -function parseURL(urlStr) { - /* - Check whether the URL is absolute or not - Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 - Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 - */ - if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { - urlStr = new URL(urlStr).toString(); - } - - // Fallback to old implementation for arbitrary URLs - return parse_url(urlStr); -} - -const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; - -/** - * Check if a value is an instance of Request. - * - * @param Mixed input - * @return Boolean - */ -function isRequest(input) { - return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; -} - -function isAbortSignal(signal) { - const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); - return !!(proto && proto.constructor.name === 'AbortSignal'); -} - -/** - * Request class - * - * @param Mixed input Url or Request instance - * @param Object init Custom options - * @return Void - */ -class Request { - constructor(input) { - let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - let parsedURL; - - // normalize input - if (!isRequest(input)) { - if (input && input.href) { - // in order to support Node.js' Url objects; though WHATWG's URL objects - // will fall into this branch also (since their `toString()` will return - // `href` property anyway) - parsedURL = parseURL(input.href); - } else { - // coerce input to a string before attempting to parse - parsedURL = parseURL(`${input}`); - } - input = {}; - } else { - parsedURL = parseURL(input.url); - } - - let method = init.method || input.method || 'GET'; - method = method.toUpperCase(); - - if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { - throw new TypeError('Request with GET/HEAD method cannot have body'); - } - - let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; - - Body.call(this, inputBody, { - timeout: init.timeout || input.timeout || 0, - size: init.size || input.size || 0 - }); - - const headers = new Headers(init.headers || input.headers || {}); - - if (inputBody != null && !headers.has('Content-Type')) { - const contentType = extractContentType(inputBody); - if (contentType) { - headers.append('Content-Type', contentType); - } - } - - let signal = isRequest(input) ? input.signal : null; - if ('signal' in init) signal = init.signal; - - if (signal != null && !isAbortSignal(signal)) { - throw new TypeError('Expected signal to be an instanceof AbortSignal'); - } - - this[INTERNALS$2] = { - method, - redirect: init.redirect || input.redirect || 'follow', - headers, - parsedURL, - signal - }; - - // node-fetch-only options - this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; - this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; - this.counter = init.counter || input.counter || 0; - this.agent = init.agent || input.agent; - } - - get method() { - return this[INTERNALS$2].method; - } - - get url() { - return format_url(this[INTERNALS$2].parsedURL); - } - - get headers() { - return this[INTERNALS$2].headers; - } - - get redirect() { - return this[INTERNALS$2].redirect; - } - - get signal() { - return this[INTERNALS$2].signal; - } - - /** - * Clone this request - * - * @return Request - */ - clone() { - return new Request(this); - } -} - -Body.mixIn(Request.prototype); - -Object.defineProperty(Request.prototype, Symbol.toStringTag, { - value: 'Request', - writable: false, - enumerable: false, - configurable: true -}); - -Object.defineProperties(Request.prototype, { - method: { enumerable: true }, - url: { enumerable: true }, - headers: { enumerable: true }, - redirect: { enumerable: true }, - clone: { enumerable: true }, - signal: { enumerable: true } -}); - -/** - * Convert a Request to Node.js http request options. - * - * @param Request A Request instance - * @return Object The options object to be passed to http.request - */ -function getNodeRequestOptions(request) { - const parsedURL = request[INTERNALS$2].parsedURL; - const headers = new Headers(request[INTERNALS$2].headers); - - // fetch step 1.3 - if (!headers.has('Accept')) { - headers.set('Accept', '*/*'); - } - - // Basic fetch - if (!parsedURL.protocol || !parsedURL.hostname) { - throw new TypeError('Only absolute URLs are supported'); - } - - if (!/^https?:$/.test(parsedURL.protocol)) { - throw new TypeError('Only HTTP(S) protocols are supported'); - } - - if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { - throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); - } - - // HTTP-network-or-cache fetch steps 2.4-2.7 - let contentLengthValue = null; - if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { - contentLengthValue = '0'; - } - if (request.body != null) { - const totalBytes = getTotalBytes(request); - if (typeof totalBytes === 'number') { - contentLengthValue = String(totalBytes); - } - } - if (contentLengthValue) { - headers.set('Content-Length', contentLengthValue); - } - - // HTTP-network-or-cache fetch step 2.11 - if (!headers.has('User-Agent')) { - headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); - } - - // HTTP-network-or-cache fetch step 2.15 - if (request.compress && !headers.has('Accept-Encoding')) { - headers.set('Accept-Encoding', 'gzip,deflate'); - } - - let agent = request.agent; - if (typeof agent === 'function') { - agent = agent(parsedURL); - } - - if (!headers.has('Connection') && !agent) { - headers.set('Connection', 'close'); - } - - // HTTP-network fetch step 4.2 - // chunked encoding is handled by Node.js - - return Object.assign({}, parsedURL, { - method: request.method, - headers: exportNodeCompatibleHeaders(headers), - agent - }); -} - -/** - * abort-error.js - * - * AbortError interface for cancelled requests - */ - -/** - * Create AbortError instance - * - * @param String message Error message for human - * @return AbortError - */ -function AbortError(message) { - Error.call(this, message); - - this.type = 'aborted'; - this.message = message; - - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} - -AbortError.prototype = Object.create(Error.prototype); -AbortError.prototype.constructor = AbortError; -AbortError.prototype.name = 'AbortError'; - -const URL$1 = Url.URL || whatwgUrl.URL; - -// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 -const PassThrough$1 = Stream.PassThrough; - -const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { - const orig = new URL$1(original).hostname; - const dest = new URL$1(destination).hostname; - - return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); -}; - -/** - * Fetch function - * - * @param Mixed url Absolute url or Request instance - * @param Object opts Fetch options - * @return Promise - */ -function fetch(url, opts) { - - // allow custom promise - if (!fetch.Promise) { - throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); - } - - Body.Promise = fetch.Promise; - - // wrap http.request into fetch - return new fetch.Promise(function (resolve, reject) { - // build request object - const request = new Request(url, opts); - const options = getNodeRequestOptions(request); - - const send = (options.protocol === 'https:' ? https : http).request; - const signal = request.signal; - - let response = null; - - const abort = function abort() { - let error = new AbortError('The user aborted a request.'); - reject(error); - if (request.body && request.body instanceof Stream.Readable) { - request.body.destroy(error); - } - if (!response || !response.body) return; - response.body.emit('error', error); - }; - - if (signal && signal.aborted) { - abort(); - return; - } - - const abortAndFinalize = function abortAndFinalize() { - abort(); - finalize(); - }; - - // send request - const req = send(options); - let reqTimeout; - - if (signal) { - signal.addEventListener('abort', abortAndFinalize); - } - - function finalize() { - req.abort(); - if (signal) signal.removeEventListener('abort', abortAndFinalize); - clearTimeout(reqTimeout); - } - - if (request.timeout) { - req.once('socket', function (socket) { - reqTimeout = setTimeout(function () { - reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); - finalize(); - }, request.timeout); - }); - } - - req.on('error', function (err) { - reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); - finalize(); - }); - - req.on('response', function (res) { - clearTimeout(reqTimeout); - - const headers = createHeadersLenient(res.headers); - - // HTTP fetch step 5 - if (fetch.isRedirect(res.statusCode)) { - // HTTP fetch step 5.2 - const location = headers.get('Location'); - - // HTTP fetch step 5.3 - let locationURL = null; - try { - locationURL = location === null ? null : new URL$1(location, request.url).toString(); - } catch (err) { - // error here can only be invalid URL in Location: header - // do not throw when options.redirect == manual - // let the user extract the errorneous redirect URL - if (request.redirect !== 'manual') { - reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); - finalize(); - return; - } - } - - // HTTP fetch step 5.5 - switch (request.redirect) { - case 'error': - reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); - finalize(); - return; - case 'manual': - // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. - if (locationURL !== null) { - // handle corrupted header - try { - headers.set('Location', locationURL); - } catch (err) { - // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request - reject(err); - } - } - break; - case 'follow': - // HTTP-redirect fetch step 2 - if (locationURL === null) { - break; - } - - // HTTP-redirect fetch step 5 - if (request.counter >= request.follow) { - reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); - finalize(); - return; - } - - // HTTP-redirect fetch step 6 (counter increment) - // Create a new Request object. - const requestOpts = { - headers: new Headers(request.headers), - follow: request.follow, - counter: request.counter + 1, - agent: request.agent, - compress: request.compress, - method: request.method, - body: request.body, - signal: request.signal, - timeout: request.timeout, - size: request.size - }; - - if (!isDomainOrSubdomain(request.url, locationURL)) { - for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { - requestOpts.headers.delete(name); - } - } - - // HTTP-redirect fetch step 9 - if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { - reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); - finalize(); - return; - } - - // HTTP-redirect fetch step 11 - if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { - requestOpts.method = 'GET'; - requestOpts.body = undefined; - requestOpts.headers.delete('content-length'); - } - - // HTTP-redirect fetch step 15 - resolve(fetch(new Request(locationURL, requestOpts))); - finalize(); - return; - } - } - - // prepare response - res.once('end', function () { - if (signal) signal.removeEventListener('abort', abortAndFinalize); - }); - let body = res.pipe(new PassThrough$1()); - - const response_options = { - url: request.url, - status: res.statusCode, - statusText: res.statusMessage, - headers: headers, - size: request.size, - timeout: request.timeout, - counter: request.counter - }; - - // HTTP-network fetch step 12.1.1.3 - const codings = headers.get('Content-Encoding'); - - // HTTP-network fetch step 12.1.1.4: handle content codings - - // in following scenarios we ignore compression support - // 1. compression support is disabled - // 2. HEAD request - // 3. no Content-Encoding header - // 4. no content response (204) - // 5. content not modified response (304) - if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { - response = new Response(body, response_options); - resolve(response); - return; - } - - // For Node v6+ - // 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. - const zlibOptions = { - flush: zlib.Z_SYNC_FLUSH, - finishFlush: zlib.Z_SYNC_FLUSH - }; - - // for gzip - if (codings == 'gzip' || codings == 'x-gzip') { - body = body.pipe(zlib.createGunzip(zlibOptions)); - response = new Response(body, response_options); - resolve(response); - return; - } - - // for deflate - if (codings == 'deflate' || codings == 'x-deflate') { - // handle the infamous raw deflate response from old servers - // a hack for old IIS and Apache servers - const raw = res.pipe(new PassThrough$1()); - raw.once('data', function (chunk) { - // see http://stackoverflow.com/questions/37519828 - if ((chunk[0] & 0x0F) === 0x08) { - body = body.pipe(zlib.createInflate()); - } else { - body = body.pipe(zlib.createInflateRaw()); - } - response = new Response(body, response_options); - resolve(response); - }); - return; - } - - // for br - if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { - body = body.pipe(zlib.createBrotliDecompress()); - response = new Response(body, response_options); - resolve(response); - return; - } - - // otherwise, use response as-is - response = new Response(body, response_options); - resolve(response); - }); - - writeToStream(req, request); - }); -} -/** - * Redirect code matching - * - * @param Number code Status code - * @return Boolean - */ -fetch.isRedirect = function (code) { - return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; -}; - -// expose Promise -fetch.Promise = global.Promise; - -module.exports = exports = fetch; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports["default"] = exports; -exports.Headers = Headers; -exports.Request = Request; -exports.Response = Response; -exports.FetchError = FetchError; - - -/***/ }), - -/***/ 3039: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -var punycode = __nccwpck_require__(5477); -var mappingTable = __nccwpck_require__(6492); - -var PROCESSING_OPTIONS = { - TRANSITIONAL: 0, - NONTRANSITIONAL: 1 -}; - -function normalize(str) { // fix bug in v8 - return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); -} - -function findStatus(val) { - var start = 0; - var end = mappingTable.length - 1; - - while (start <= end) { - var mid = Math.floor((start + end) / 2); - - var target = mappingTable[mid]; - if (target[0][0] <= val && target[0][1] >= val) { - return target; - } else if (target[0][0] > val) { - end = mid - 1; - } else { - start = mid + 1; - } - } - - return null; -} - -var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - -function countSymbols(string) { - return string - // replace every surrogate pair with a BMP symbol - .replace(regexAstralSymbols, '_') - // then get the length - .length; -} - -function mapChars(domain_name, useSTD3, processing_option) { - var hasError = false; - var processed = ""; - - var len = countSymbols(domain_name); - for (var i = 0; i < len; ++i) { - var codePoint = domain_name.codePointAt(i); - var status = findStatus(codePoint); - - switch (status[1]) { - case "disallowed": - hasError = true; - processed += String.fromCodePoint(codePoint); - break; - case "ignored": - break; - case "mapped": - processed += String.fromCodePoint.apply(String, status[2]); - break; - case "deviation": - if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { - processed += String.fromCodePoint.apply(String, status[2]); - } else { - processed += String.fromCodePoint(codePoint); - } - break; - case "valid": - processed += String.fromCodePoint(codePoint); - break; - case "disallowed_STD3_mapped": - if (useSTD3) { - hasError = true; - processed += String.fromCodePoint(codePoint); - } else { - processed += String.fromCodePoint.apply(String, status[2]); - } - break; - case "disallowed_STD3_valid": - if (useSTD3) { - hasError = true; - } - - processed += String.fromCodePoint(codePoint); - break; - } - } - - return { - string: processed, - error: hasError - }; -} - -var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; - -function validateLabel(label, processing_option) { - if (label.substr(0, 4) === "xn--") { - label = punycode.toUnicode(label); - processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; - } - - var error = false; - - if (normalize(label) !== label || - (label[3] === "-" && label[4] === "-") || - label[0] === "-" || label[label.length - 1] === "-" || - label.indexOf(".") !== -1 || - label.search(combiningMarksRegex) === 0) { - error = true; - } - - var len = countSymbols(label); - for (var i = 0; i < len; ++i) { - var status = findStatus(label.codePointAt(i)); - if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || - (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && - status[1] !== "valid" && status[1] !== "deviation")) { - error = true; - break; - } - } - - return { - label: label, - error: error - }; -} - -function processing(domain_name, useSTD3, processing_option) { - var result = mapChars(domain_name, useSTD3, processing_option); - result.string = normalize(result.string); - - var labels = result.string.split("."); - for (var i = 0; i < labels.length; ++i) { - try { - var validation = validateLabel(labels[i]); - labels[i] = validation.label; - result.error = result.error || validation.error; - } catch(e) { - result.error = true; - } - } - - return { - string: labels.join("."), - error: result.error - }; -} - -module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { - var result = processing(domain_name, useSTD3, processing_option); - var labels = result.string.split("."); - labels = labels.map(function(l) { - try { - return punycode.toASCII(l); - } catch(e) { - result.error = true; - return l; - } - }); - - if (verifyDnsLength) { - var total = labels.slice(0, labels.length - 1).join(".").length; - if (total.length > 253 || total.length === 0) { - result.error = true; - } - - for (var i=0; i < labels.length; ++i) { - if (labels.length > 63 || labels.length === 0) { - result.error = true; - break; - } - } - } - - if (result.error) return null; - return labels.join("."); -}; - -module.exports.toUnicode = function(domain_name, useSTD3) { - var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); - - return { - domain: result.string, - error: result.error - }; -}; - -module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; - - -/***/ }), - -/***/ 6542: -/***/ ((module) => { - -"use strict"; - - -var conversions = {}; -module.exports = conversions; - -function sign(x) { - return x < 0 ? -1 : 1; -} - -function evenRound(x) { - // Round x to the nearest integer, choosing the even integer if it lies halfway between two. - if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) - return Math.floor(x); - } else { - return Math.round(x); - } -} - -function createNumberConversion(bitLength, typeOpts) { - if (!typeOpts.unsigned) { - --bitLength; - } - const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); - const upperBound = Math.pow(2, bitLength) - 1; - - const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); - const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); - - return function(V, opts) { - if (!opts) opts = {}; - - let x = +V; - - if (opts.enforceRange) { - if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite number"); - } - - x = sign(x) * Math.floor(Math.abs(x)); - if (x < lowerBound || x > upperBound) { - throw new TypeError("Argument is not in byte range"); - } - - return x; - } - - if (!isNaN(x) && opts.clamp) { - x = evenRound(x); - - if (x < lowerBound) x = lowerBound; - if (x > upperBound) x = upperBound; - return x; - } - - if (!Number.isFinite(x) || x === 0) { - return 0; - } - - x = sign(x) * Math.floor(Math.abs(x)); - x = x % moduloVal; - - if (!typeOpts.unsigned && x >= moduloBound) { - return x - moduloVal; - } else if (typeOpts.unsigned) { - if (x < 0) { - x += moduloVal; - } else if (x === -0) { // don't return negative zero - return 0; - } - } - - return x; - } -} - -conversions["void"] = function () { - return undefined; -}; - -conversions["boolean"] = function (val) { - return !!val; -}; - -conversions["byte"] = createNumberConversion(8, { unsigned: false }); -conversions["octet"] = createNumberConversion(8, { unsigned: true }); - -conversions["short"] = createNumberConversion(16, { unsigned: false }); -conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); - -conversions["long"] = createNumberConversion(32, { unsigned: false }); -conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); - -conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); -conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); - -conversions["double"] = function (V) { - const x = +V; - - if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite floating-point value"); - } - - return x; -}; - -conversions["unrestricted double"] = function (V) { - const x = +V; - - if (isNaN(x)) { - throw new TypeError("Argument is NaN"); - } - - return x; -}; - -// not quite valid, but good enough for JS -conversions["float"] = conversions["double"]; -conversions["unrestricted float"] = conversions["unrestricted double"]; - -conversions["DOMString"] = function (V, opts) { - if (!opts) opts = {}; - - if (opts.treatNullAsEmptyString && V === null) { - return ""; - } - - return String(V); -}; - -conversions["ByteString"] = function (V, opts) { - const x = String(V); - let c = undefined; - for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { - if (c > 255) { - throw new TypeError("Argument is not a valid bytestring"); - } - } - - return x; -}; - -conversions["USVString"] = function (V) { - const S = String(V); - const n = S.length; - const U = []; - for (let i = 0; i < n; ++i) { - const c = S.charCodeAt(i); - if (c < 0xD800 || c > 0xDFFF) { - U.push(String.fromCodePoint(c)); - } else if (0xDC00 <= c && c <= 0xDFFF) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - if (i === n - 1) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - const d = S.charCodeAt(i + 1); - if (0xDC00 <= d && d <= 0xDFFF) { - const a = c & 0x3FF; - const b = d & 0x3FF; - U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); - ++i; - } else { - U.push(String.fromCodePoint(0xFFFD)); - } - } - } - } - - return U.join(''); -}; - -conversions["Date"] = function (V, opts) { - if (!(V instanceof Date)) { - throw new TypeError("Argument is not a Date object"); - } - if (isNaN(V)) { - return undefined; - } - - return V; -}; - -conversions["RegExp"] = function (V, opts) { - if (!(V instanceof RegExp)) { - V = new RegExp(V); - } - - return V; -}; - - -/***/ }), - -/***/ 394: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -const usm = __nccwpck_require__(1234); - -exports.implementation = class URLImpl { - constructor(constructorArgs) { - const url = constructorArgs[0]; - const base = constructorArgs[1]; - - let parsedBase = null; - if (base !== undefined) { - parsedBase = usm.basicURLParse(base); - if (parsedBase === "failure") { - throw new TypeError("Invalid base URL"); - } - } - - const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - - // TODO: query stuff - } - - get href() { - return usm.serializeURL(this._url); - } - - set href(v) { - const parsedURL = usm.basicURLParse(v); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - } - - get origin() { - return usm.serializeURLOrigin(this._url); - } - - get protocol() { - return this._url.scheme + ":"; - } - - set protocol(v) { - usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); - } - - get username() { - return this._url.username; - } - - set username(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setTheUsername(this._url, v); - } - - get password() { - return this._url.password; - } - - set password(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setThePassword(this._url, v); - } - - get host() { - const url = this._url; - - if (url.host === null) { - return ""; - } - - if (url.port === null) { - return usm.serializeHost(url.host); - } - - return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); - } - - set host(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); - } - - get hostname() { - if (this._url.host === null) { - return ""; - } - - return usm.serializeHost(this._url.host); - } - - set hostname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); - } - - get port() { - if (this._url.port === null) { - return ""; - } - - return usm.serializeInteger(this._url.port); - } - - set port(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - if (v === "") { - this._url.port = null; - } else { - usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); - } - } - - get pathname() { - if (this._url.cannotBeABaseURL) { - return this._url.path[0]; - } - - if (this._url.path.length === 0) { - return ""; - } - - return "/" + this._url.path.join("/"); - } - - set pathname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - this._url.path = []; - usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); - } - - get search() { - if (this._url.query === null || this._url.query === "") { - return ""; - } - - return "?" + this._url.query; - } - - set search(v) { - // TODO: query stuff - - const url = this._url; - - if (v === "") { - url.query = null; - return; - } - - const input = v[0] === "?" ? v.substring(1) : v; - url.query = ""; - usm.basicURLParse(input, { url, stateOverride: "query" }); - } - - get hash() { - if (this._url.fragment === null || this._url.fragment === "") { - return ""; - } - - return "#" + this._url.fragment; - } - - set hash(v) { - if (v === "") { - this._url.fragment = null; - return; - } - - const input = v[0] === "#" ? v.substring(1) : v; - this._url.fragment = ""; - usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); - } - - toJSON() { - return this.href; - } -}; - - -/***/ }), - -/***/ 2047: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const conversions = __nccwpck_require__(6542); -const utils = __nccwpck_require__(3387); -const Impl = __nccwpck_require__(394); - -const impl = utils.implSymbol; - -function URL(url) { - if (!this || this[impl] || !(this instanceof URL)) { - throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); - } - if (arguments.length < 1) { - throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); - } - const args = []; - for (let i = 0; i < arguments.length && i < 2; ++i) { - args[i] = arguments[i]; - } - args[0] = conversions["USVString"](args[0]); - if (args[1] !== undefined) { - args[1] = conversions["USVString"](args[1]); - } - - module.exports.setup(this, args); -} - -URL.prototype.toJSON = function toJSON() { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - const args = []; - for (let i = 0; i < arguments.length && i < 0; ++i) { - args[i] = arguments[i]; - } - return this[impl].toJSON.apply(this[impl], args); -}; -Object.defineProperty(URL.prototype, "href", { - get() { - return this[impl].href; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].href = V; - }, - enumerable: true, - configurable: true -}); - -URL.prototype.toString = function () { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - return this.href; -}; - -Object.defineProperty(URL.prototype, "origin", { - get() { - return this[impl].origin; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "protocol", { - get() { - return this[impl].protocol; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].protocol = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "username", { - get() { - return this[impl].username; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].username = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "password", { - get() { - return this[impl].password; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].password = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "host", { - get() { - return this[impl].host; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].host = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hostname", { - get() { - return this[impl].hostname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hostname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "port", { - get() { - return this[impl].port; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].port = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "pathname", { - get() { - return this[impl].pathname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].pathname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "search", { - get() { - return this[impl].search; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].search = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hash", { - get() { - return this[impl].hash; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hash = V; - }, - enumerable: true, - configurable: true -}); - - -module.exports = { - is(obj) { - return !!obj && obj[impl] instanceof Impl.implementation; - }, - create(constructorArgs, privateData) { - let obj = Object.create(URL.prototype); - this.setup(obj, constructorArgs, privateData); - return obj; - }, - setup(obj, constructorArgs, privateData) { - if (!privateData) privateData = {}; - privateData.wrapper = obj; - - obj[impl] = new Impl.implementation(constructorArgs, privateData); - obj[impl][utils.wrapperSymbol] = obj; - }, - interface: URL, - expose: { - Window: { URL: URL }, - Worker: { URL: URL } - } -}; - - - -/***/ }), - -/***/ 301: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -exports.URL = __nccwpck_require__(2047)["interface"]; -exports.serializeURL = __nccwpck_require__(1234).serializeURL; -exports.serializeURLOrigin = __nccwpck_require__(1234).serializeURLOrigin; -exports.basicURLParse = __nccwpck_require__(1234).basicURLParse; -exports.setTheUsername = __nccwpck_require__(1234).setTheUsername; -exports.setThePassword = __nccwpck_require__(1234).setThePassword; -exports.serializeHost = __nccwpck_require__(1234).serializeHost; -exports.serializeInteger = __nccwpck_require__(1234).serializeInteger; -exports.parseURL = __nccwpck_require__(1234).parseURL; - - -/***/ }), - -/***/ 1234: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -const punycode = __nccwpck_require__(5477); -const tr46 = __nccwpck_require__(3039); - -const specialSchemes = { - ftp: 21, - file: null, - gopher: 70, - http: 80, - https: 443, - ws: 80, - wss: 443 -}; - -const failure = Symbol("failure"); - -function countSymbols(str) { - return punycode.ucs2.decode(str).length; -} - -function at(input, idx) { - const c = input[idx]; - return isNaN(c) ? undefined : String.fromCodePoint(c); -} - -function isASCIIDigit(c) { - return c >= 0x30 && c <= 0x39; -} - -function isASCIIAlpha(c) { - return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); -} - -function isASCIIAlphanumeric(c) { - return isASCIIAlpha(c) || isASCIIDigit(c); -} - -function isASCIIHex(c) { - return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); -} - -function isSingleDot(buffer) { - return buffer === "." || buffer.toLowerCase() === "%2e"; -} - -function isDoubleDot(buffer) { - buffer = buffer.toLowerCase(); - return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; -} - -function isWindowsDriveLetterCodePoints(cp1, cp2) { - return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); -} - -function isWindowsDriveLetterString(string) { - return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); -} - -function isNormalizedWindowsDriveLetterString(string) { - return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; -} - -function containsForbiddenHostCodePoint(string) { - return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; -} - -function containsForbiddenHostCodePointExcludingPercent(string) { - return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; -} - -function isSpecialScheme(scheme) { - return specialSchemes[scheme] !== undefined; -} - -function isSpecial(url) { - return isSpecialScheme(url.scheme); -} - -function defaultPort(scheme) { - return specialSchemes[scheme]; -} - -function percentEncode(c) { - let hex = c.toString(16).toUpperCase(); - if (hex.length === 1) { - hex = "0" + hex; - } - - return "%" + hex; -} - -function utf8PercentEncode(c) { - const buf = new Buffer(c); - - let str = ""; - - for (let i = 0; i < buf.length; ++i) { - str += percentEncode(buf[i]); - } - - return str; -} - -function utf8PercentDecode(str) { - const input = new Buffer(str); - const output = []; - for (let i = 0; i < input.length; ++i) { - if (input[i] !== 37) { - output.push(input[i]); - } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { - output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); - i += 2; - } else { - output.push(input[i]); - } - } - return new Buffer(output).toString(); -} - -function isC0ControlPercentEncode(c) { - return c <= 0x1F || c > 0x7E; -} - -const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); -function isPathPercentEncode(c) { - return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); -} - -const extraUserinfoPercentEncodeSet = - new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); -function isUserinfoPercentEncode(c) { - return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); -} - -function percentEncodeChar(c, encodeSetPredicate) { - const cStr = String.fromCodePoint(c); - - if (encodeSetPredicate(c)) { - return utf8PercentEncode(cStr); - } - - return cStr; -} - -function parseIPv4Number(input) { - let R = 10; - - if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { - input = input.substring(2); - R = 16; - } else if (input.length >= 2 && input.charAt(0) === "0") { - input = input.substring(1); - R = 8; - } - - if (input === "") { - return 0; - } - - const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); - if (regex.test(input)) { - return failure; - } - - return parseInt(input, R); -} - -function parseIPv4(input) { - const parts = input.split("."); - if (parts[parts.length - 1] === "") { - if (parts.length > 1) { - parts.pop(); - } - } - - if (parts.length > 4) { - return input; - } - - const numbers = []; - for (const part of parts) { - if (part === "") { - return input; - } - const n = parseIPv4Number(part); - if (n === failure) { - return input; - } - - numbers.push(n); - } - - for (let i = 0; i < numbers.length - 1; ++i) { - if (numbers[i] > 255) { - return failure; - } - } - if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { - return failure; - } - - let ipv4 = numbers.pop(); - let counter = 0; - - for (const n of numbers) { - ipv4 += n * Math.pow(256, 3 - counter); - ++counter; - } - - return ipv4; -} - -function serializeIPv4(address) { - let output = ""; - let n = address; - - for (let i = 1; i <= 4; ++i) { - output = String(n % 256) + output; - if (i !== 4) { - output = "." + output; - } - n = Math.floor(n / 256); - } - - return output; -} - -function parseIPv6(input) { - const address = [0, 0, 0, 0, 0, 0, 0, 0]; - let pieceIndex = 0; - let compress = null; - let pointer = 0; - - input = punycode.ucs2.decode(input); - - if (input[pointer] === 58) { - if (input[pointer + 1] !== 58) { - return failure; - } - - pointer += 2; - ++pieceIndex; - compress = pieceIndex; - } - - while (pointer < input.length) { - if (pieceIndex === 8) { - return failure; - } - - if (input[pointer] === 58) { - if (compress !== null) { - return failure; - } - ++pointer; - ++pieceIndex; - compress = pieceIndex; - continue; - } - - let value = 0; - let length = 0; - - while (length < 4 && isASCIIHex(input[pointer])) { - value = value * 0x10 + parseInt(at(input, pointer), 16); - ++pointer; - ++length; - } - - if (input[pointer] === 46) { - if (length === 0) { - return failure; - } - - pointer -= length; - - if (pieceIndex > 6) { - return failure; - } - - let numbersSeen = 0; - - while (input[pointer] !== undefined) { - let ipv4Piece = null; - - if (numbersSeen > 0) { - if (input[pointer] === 46 && numbersSeen < 4) { - ++pointer; - } else { - return failure; - } - } - - if (!isASCIIDigit(input[pointer])) { - return failure; - } - - while (isASCIIDigit(input[pointer])) { - const number = parseInt(at(input, pointer)); - if (ipv4Piece === null) { - ipv4Piece = number; - } else if (ipv4Piece === 0) { - return failure; - } else { - ipv4Piece = ipv4Piece * 10 + number; - } - if (ipv4Piece > 255) { - return failure; - } - ++pointer; - } - - address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; - - ++numbersSeen; - - if (numbersSeen === 2 || numbersSeen === 4) { - ++pieceIndex; - } - } - - if (numbersSeen !== 4) { - return failure; - } - - break; - } else if (input[pointer] === 58) { - ++pointer; - if (input[pointer] === undefined) { - return failure; - } - } else if (input[pointer] !== undefined) { - return failure; - } - - address[pieceIndex] = value; - ++pieceIndex; - } - - if (compress !== null) { - let swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex !== 0 && swaps > 0) { - const temp = address[compress + swaps - 1]; - address[compress + swaps - 1] = address[pieceIndex]; - address[pieceIndex] = temp; - --pieceIndex; - --swaps; - } - } else if (compress === null && pieceIndex !== 8) { - return failure; - } - - return address; -} - -function serializeIPv6(address) { - let output = ""; - const seqResult = findLongestZeroSequence(address); - const compress = seqResult.idx; - let ignore0 = false; - - for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { - if (ignore0 && address[pieceIndex] === 0) { - continue; - } else if (ignore0) { - ignore0 = false; - } - - if (compress === pieceIndex) { - const separator = pieceIndex === 0 ? "::" : ":"; - output += separator; - ignore0 = true; - continue; - } - - output += address[pieceIndex].toString(16); - - if (pieceIndex !== 7) { - output += ":"; - } - } - - return output; -} - -function parseHost(input, isSpecialArg) { - if (input[0] === "[") { - if (input[input.length - 1] !== "]") { - return failure; - } - - return parseIPv6(input.substring(1, input.length - 1)); - } - - if (!isSpecialArg) { - return parseOpaqueHost(input); - } - - const domain = utf8PercentDecode(input); - const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); - if (asciiDomain === null) { - return failure; - } - - if (containsForbiddenHostCodePoint(asciiDomain)) { - return failure; - } - - const ipv4Host = parseIPv4(asciiDomain); - if (typeof ipv4Host === "number" || ipv4Host === failure) { - return ipv4Host; - } - - return asciiDomain; -} - -function parseOpaqueHost(input) { - if (containsForbiddenHostCodePointExcludingPercent(input)) { - return failure; - } - - let output = ""; - const decoded = punycode.ucs2.decode(input); - for (let i = 0; i < decoded.length; ++i) { - output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); - } - return output; -} - -function findLongestZeroSequence(arr) { - let maxIdx = null; - let maxLen = 1; // only find elements > 1 - let currStart = null; - let currLen = 0; - - for (let i = 0; i < arr.length; ++i) { - if (arr[i] !== 0) { - if (currLen > maxLen) { - maxIdx = currStart; - maxLen = currLen; - } - - currStart = null; - currLen = 0; - } else { - if (currStart === null) { - currStart = i; - } - ++currLen; - } - } - - // if trailing zeros - if (currLen > maxLen) { - maxIdx = currStart; - maxLen = currLen; - } - - return { - idx: maxIdx, - len: maxLen - }; -} - -function serializeHost(host) { - if (typeof host === "number") { - return serializeIPv4(host); - } - - // IPv6 serializer - if (host instanceof Array) { - return "[" + serializeIPv6(host) + "]"; - } - - return host; -} - -function trimControlChars(url) { - return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); -} - -function trimTabAndNewline(url) { - return url.replace(/\u0009|\u000A|\u000D/g, ""); -} - -function shortenPath(url) { - const path = url.path; - if (path.length === 0) { - return; - } - if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { - return; - } - - path.pop(); -} - -function includesCredentials(url) { - return url.username !== "" || url.password !== ""; -} - -function cannotHaveAUsernamePasswordPort(url) { - return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; -} - -function isNormalizedWindowsDriveLetter(string) { - return /^[A-Za-z]:$/.test(string); -} - -function URLStateMachine(input, base, encodingOverride, url, stateOverride) { - this.pointer = 0; - this.input = input; - this.base = base || null; - this.encodingOverride = encodingOverride || "utf-8"; - this.stateOverride = stateOverride; - this.url = url; - this.failure = false; - this.parseError = false; - - if (!this.url) { - this.url = { - scheme: "", - username: "", - password: "", - host: null, - port: null, - path: [], - query: null, - fragment: null, - - cannotBeABaseURL: false - }; - - const res = trimControlChars(this.input); - if (res !== this.input) { - this.parseError = true; - } - this.input = res; - } - - const res = trimTabAndNewline(this.input); - if (res !== this.input) { - this.parseError = true; - } - this.input = res; - - this.state = stateOverride || "scheme start"; - - this.buffer = ""; - this.atFlag = false; - this.arrFlag = false; - this.passwordTokenSeenFlag = false; - - this.input = punycode.ucs2.decode(this.input); - - for (; this.pointer <= this.input.length; ++this.pointer) { - const c = this.input[this.pointer]; - const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); - - // exec state machine - const ret = this["parse " + this.state](c, cStr); - if (!ret) { - break; // terminate algorithm - } else if (ret === failure) { - this.failure = true; - break; - } - } -} - -URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { - if (isASCIIAlpha(c)) { - this.buffer += cStr.toLowerCase(); - this.state = "scheme"; - } else if (!this.stateOverride) { - this.state = "no scheme"; - --this.pointer; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { - if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { - this.buffer += cStr.toLowerCase(); - } else if (c === 58) { - if (this.stateOverride) { - if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { - return false; - } - - if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { - return false; - } - - if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { - return false; - } - - if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { - return false; - } - } - this.url.scheme = this.buffer; - this.buffer = ""; - if (this.stateOverride) { - return false; - } - if (this.url.scheme === "file") { - if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { - this.parseError = true; - } - this.state = "file"; - } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { - this.state = "special relative or authority"; - } else if (isSpecial(this.url)) { - this.state = "special authority slashes"; - } else if (this.input[this.pointer + 1] === 47) { - this.state = "path or authority"; - ++this.pointer; - } else { - this.url.cannotBeABaseURL = true; - this.url.path.push(""); - this.state = "cannot-be-a-base-URL path"; - } - } else if (!this.stateOverride) { - this.buffer = ""; - this.state = "no scheme"; - this.pointer = -1; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { - if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { - return failure; - } else if (this.base.cannotBeABaseURL && c === 35) { - this.url.scheme = this.base.scheme; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.url.cannotBeABaseURL = true; - this.state = "fragment"; - } else if (this.base.scheme === "file") { - this.state = "file"; - --this.pointer; - } else { - this.state = "relative"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { - if (c === 47 && this.input[this.pointer + 1] === 47) { - this.state = "special authority ignore slashes"; - ++this.pointer; - } else { - this.parseError = true; - this.state = "relative"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { - if (c === 47) { - this.state = "authority"; - } else { - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse relative"] = function parseRelative(c) { - this.url.scheme = this.base.scheme; - if (isNaN(c)) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - } else if (c === 47) { - this.state = "relative slash"; - } else if (c === 63) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.state = "fragment"; - } else if (isSpecial(this.url) && c === 92) { - this.parseError = true; - this.state = "relative slash"; - } else { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(0, this.base.path.length - 1); - - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { - if (isSpecial(this.url) && (c === 47 || c === 92)) { - if (c === 92) { - this.parseError = true; - } - this.state = "special authority ignore slashes"; - } else if (c === 47) { - this.state = "authority"; - } else { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { - if (c === 47 && this.input[this.pointer + 1] === 47) { - this.state = "special authority ignore slashes"; - ++this.pointer; - } else { - this.parseError = true; - this.state = "special authority ignore slashes"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { - if (c !== 47 && c !== 92) { - this.state = "authority"; - --this.pointer; - } else { - this.parseError = true; - } - - return true; -}; - -URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { - if (c === 64) { - this.parseError = true; - if (this.atFlag) { - this.buffer = "%40" + this.buffer; - } - this.atFlag = true; - - // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars - const len = countSymbols(this.buffer); - for (let pointer = 0; pointer < len; ++pointer) { - const codePoint = this.buffer.codePointAt(pointer); - - if (codePoint === 58 && !this.passwordTokenSeenFlag) { - this.passwordTokenSeenFlag = true; - continue; - } - const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); - if (this.passwordTokenSeenFlag) { - this.url.password += encodedCodePoints; - } else { - this.url.username += encodedCodePoints; - } - } - this.buffer = ""; - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92)) { - if (this.atFlag && this.buffer === "") { - this.parseError = true; - return failure; - } - this.pointer -= countSymbols(this.buffer) + 1; - this.buffer = ""; - this.state = "host"; - } else { - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse hostname"] = -URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { - if (this.stateOverride && this.url.scheme === "file") { - --this.pointer; - this.state = "file host"; - } else if (c === 58 && !this.arrFlag) { - if (this.buffer === "") { - this.parseError = true; - return failure; - } - - const host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - - this.url.host = host; - this.buffer = ""; - this.state = "port"; - if (this.stateOverride === "hostname") { - return false; - } - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92)) { - --this.pointer; - if (isSpecial(this.url) && this.buffer === "") { - this.parseError = true; - return failure; - } else if (this.stateOverride && this.buffer === "" && - (includesCredentials(this.url) || this.url.port !== null)) { - this.parseError = true; - return false; - } - - const host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - - this.url.host = host; - this.buffer = ""; - this.state = "path start"; - if (this.stateOverride) { - return false; - } - } else { - if (c === 91) { - this.arrFlag = true; - } else if (c === 93) { - this.arrFlag = false; - } - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { - if (isASCIIDigit(c)) { - this.buffer += cStr; - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92) || - this.stateOverride) { - if (this.buffer !== "") { - const port = parseInt(this.buffer); - if (port > Math.pow(2, 16) - 1) { - this.parseError = true; - return failure; - } - this.url.port = port === defaultPort(this.url.scheme) ? null : port; - this.buffer = ""; - } - if (this.stateOverride) { - return false; - } - this.state = "path start"; - --this.pointer; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); - -URLStateMachine.prototype["parse file"] = function parseFile(c) { - this.url.scheme = "file"; - - if (c === 47 || c === 92) { - if (c === 92) { - this.parseError = true; - } - this.state = "file slash"; - } else if (this.base !== null && this.base.scheme === "file") { - if (isNaN(c)) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - } else if (c === 63) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.state = "fragment"; - } else { - if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points - !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || - (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points - !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - shortenPath(this.url); - } else { - this.parseError = true; - } - - this.state = "path"; - --this.pointer; - } - } else { - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { - if (c === 47 || c === 92) { - if (c === 92) { - this.parseError = true; - } - this.state = "file host"; - } else { - if (this.base !== null && this.base.scheme === "file") { - if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { - this.url.path.push(this.base.path[0]); - } else { - this.url.host = this.base.host; - } - } - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { - if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { - --this.pointer; - if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { - this.parseError = true; - this.state = "path"; - } else if (this.buffer === "") { - this.url.host = ""; - if (this.stateOverride) { - return false; - } - this.state = "path start"; - } else { - let host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - if (host === "localhost") { - host = ""; - } - this.url.host = host; - - if (this.stateOverride) { - return false; - } - - this.buffer = ""; - this.state = "path start"; - } - } else { - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { - if (isSpecial(this.url)) { - if (c === 92) { - this.parseError = true; - } - this.state = "path"; - - if (c !== 47 && c !== 92) { - --this.pointer; - } - } else if (!this.stateOverride && c === 63) { - this.url.query = ""; - this.state = "query"; - } else if (!this.stateOverride && c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } else if (c !== undefined) { - this.state = "path"; - if (c !== 47) { - --this.pointer; - } - } - - return true; -}; - -URLStateMachine.prototype["parse path"] = function parsePath(c) { - if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || - (!this.stateOverride && (c === 63 || c === 35))) { - if (isSpecial(this.url) && c === 92) { - this.parseError = true; - } - - if (isDoubleDot(this.buffer)) { - shortenPath(this.url); - if (c !== 47 && !(isSpecial(this.url) && c === 92)) { - this.url.path.push(""); - } - } else if (isSingleDot(this.buffer) && c !== 47 && - !(isSpecial(this.url) && c === 92)) { - this.url.path.push(""); - } else if (!isSingleDot(this.buffer)) { - if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { - if (this.url.host !== "" && this.url.host !== null) { - this.parseError = true; - this.url.host = ""; - } - this.buffer = this.buffer[0] + ":"; - } - this.url.path.push(this.buffer); - } - this.buffer = ""; - if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { - while (this.url.path.length > 1 && this.url.path[0] === "") { - this.parseError = true; - this.url.path.shift(); - } - } - if (c === 63) { - this.url.query = ""; - this.state = "query"; - } - if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } - } else { - // TODO: If c is not a URL code point and not "%", parse error. - - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.buffer += percentEncodeChar(c, isPathPercentEncode); - } - - return true; -}; - -URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { - if (c === 63) { - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } else { - // TODO: Add: not a URL code point - if (!isNaN(c) && c !== 37) { - this.parseError = true; - } - - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - if (!isNaN(c)) { - this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); - } - } - - return true; -}; - -URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { - if (isNaN(c) || (!this.stateOverride && c === 35)) { - if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { - this.encodingOverride = "utf-8"; - } - - const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead - for (let i = 0; i < buffer.length; ++i) { - if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || - buffer[i] === 0x3C || buffer[i] === 0x3E) { - this.url.query += percentEncode(buffer[i]); - } else { - this.url.query += String.fromCodePoint(buffer[i]); - } - } - - this.buffer = ""; - if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } - } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { - if (isNaN(c)) { // do nothing - } else if (c === 0x0) { - this.parseError = true; - } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); - } - - return true; -}; - -function serializeURL(url, excludeFragment) { - let output = url.scheme + ":"; - if (url.host !== null) { - output += "//"; - - if (url.username !== "" || url.password !== "") { - output += url.username; - if (url.password !== "") { - output += ":" + url.password; - } - output += "@"; - } - - output += serializeHost(url.host); - - if (url.port !== null) { - output += ":" + url.port; - } - } else if (url.host === null && url.scheme === "file") { - output += "//"; - } - - if (url.cannotBeABaseURL) { - output += url.path[0]; - } else { - for (const string of url.path) { - output += "/" + string; - } - } - - if (url.query !== null) { - output += "?" + url.query; - } - - if (!excludeFragment && url.fragment !== null) { - output += "#" + url.fragment; - } - - return output; -} - -function serializeOrigin(tuple) { - let result = tuple.scheme + "://"; - result += serializeHost(tuple.host); - - if (tuple.port !== null) { - result += ":" + tuple.port; - } - - return result; -} - -module.exports.serializeURL = serializeURL; - -module.exports.serializeURLOrigin = function (url) { - // https://url.spec.whatwg.org/#concept-url-origin - switch (url.scheme) { - case "blob": - try { - return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); - } catch (e) { - // serializing an opaque origin returns "null" - return "null"; - } - case "ftp": - case "gopher": - case "http": - case "https": - case "ws": - case "wss": - return serializeOrigin({ - scheme: url.scheme, - host: url.host, - port: url.port - }); - case "file": - // spec says "exercise to the reader", chrome says "file://" - return "file://"; - default: - // serializing an opaque origin returns "null" - return "null"; - } -}; - -module.exports.basicURLParse = function (input, options) { - if (options === undefined) { - options = {}; - } - - const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); - if (usm.failure) { - return "failure"; - } - - return usm.url; -}; - -module.exports.setTheUsername = function (url, username) { - url.username = ""; - const decoded = punycode.ucs2.decode(username); - for (let i = 0; i < decoded.length; ++i) { - url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.setThePassword = function (url, password) { - url.password = ""; - const decoded = punycode.ucs2.decode(password); - for (let i = 0; i < decoded.length; ++i) { - url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.serializeHost = serializeHost; - -module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; - -module.exports.serializeInteger = function (integer) { - return String(integer); -}; - -module.exports.parseURL = function (input, options) { - if (options === undefined) { - options = {}; - } - - // We don't handle blobs, so this just delegates: - return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); -}; + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4193: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const VERSION = "2.17.0"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + 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; + 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); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + 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 = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.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, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3044: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], + addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + 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"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], + getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], + 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}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + 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}"], + 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}"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], + 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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + 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"], + 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}"], + 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"], + setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], + setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] + }, + 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"], + 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"], + 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"], + getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], + getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], + 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"] + }, + 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: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + 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}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + 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"] + }], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], + createForAuthenticatedUser: ["POST /user/codespaces"], + 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}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], + exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], + getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], + setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + }, + 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}"], + 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}"], + 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"] + }, + dependencyGraph: { + createRepositorySnapshot: ["POST /repos/{owner}/{repo}/dependency-graph/snapshots"], + diffRange: ["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"] + }, + emojis: { + get: ["GET /emojis"] + }, + enterpriseAdmin: { + addCustomLabelsToSelfHostedRunnerForEnterprise: ["POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + disableSelectedOrganizationGithubActionsEnterprise: ["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + getAllowedActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/selected-actions"], + getGithubActionsPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions"], + getServerStatistics: ["GET /enterprise-installation/{enterprise_or_org}/server-statistics"], + listLabelsForSelfHostedRunnerForEnterprise: ["GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + listSelectedOrganizationsEnabledGithubActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/organizations"], + removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + removeCustomLabelFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}"], + setAllowedActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"], + setCustomLabelsForSelfHostedRunnerForEnterprise: ["PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + setGithubActionsPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions"], + setSelectedOrganizationsEnabledGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations"] + }, + 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}"] + }, + 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"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/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"], + 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}"], + 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"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + 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"], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + 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"] + }], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"], + unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"], + updateImport: ["PATCH /repos/{owner}/{repo}/import"] + }, + orgs: { + 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"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + 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"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listCustomRoles: ["GET /organizations/{organization_id}/custom_roles"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + 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"], + 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}"], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], + 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}"], + 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"] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], + createCard: ["POST /projects/columns/{column_id}/cards"], + createColumn: ["POST /projects/{project_id}/columns"], + createForAuthenticatedUser: ["POST /user/projects"], + createForOrg: ["POST /orgs/{org}/projects"], + createForRepo: ["POST /repos/{owner}/{repo}/projects"], + delete: ["DELETE /projects/{project_id}"], + deleteCard: ["DELETE /projects/columns/cards/{card_id}"], + deleteColumn: ["DELETE /projects/columns/{column_id}"], + get: ["GET /projects/{project_id}"], + getCard: ["GET /projects/columns/cards/{card_id}"], + getColumn: ["GET /projects/columns/{column_id}"], + getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission"], + listCards: ["GET /projects/columns/{column_id}/cards"], + listCollaborators: ["GET /projects/{project_id}/collaborators"], + listColumns: ["GET /projects/{project_id}/columns"], + listForOrg: ["GET /orgs/{org}/projects"], + listForRepo: ["GET /repos/{owner}/{repo}/projects"], + listForUser: ["GET /users/{username}/projects"], + moveCard: ["POST /projects/columns/cards/{card_id}/moves"], + moveColumn: ["POST /projects/columns/{column_id}/moves"], + removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}"], + update: ["PATCH /projects/{project_id}"], + updateCard: ["PATCH /projects/columns/cards/{card_id}"], + updateColumn: ["PATCH /projects/columns/{column_id}"] + }, + 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" + }], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + 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}"], + 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"], + 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"], + createOrUpdateEnvironment: ["PUT /repos/{owner}/{repo}/environments/{environment_name}"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], + 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}"], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_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}"], + deleteTagProtection: ["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes"], + disableLfsForRepo: ["DELETE /repos/{owner}/{repo}/lfs"], + 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"], + enableLfsForRepo: ["PUT /repos/{owner}/{repo}/lfs"], + 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"], + 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"], + 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"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_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"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_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}"], + 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}"], + 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"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + 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"], + listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], + 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}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_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}"], + 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"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"], + 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}"] + }, + teams: { + addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], + addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + 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"], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], + removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + 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"], + 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"], + 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}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + 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}"], + list: ["GET /users"], + 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"], + 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"] + } +}; + +const VERSION = "5.16.2"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ + method, + url + }, defaults); + + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + + const scopeMethods = newMethods[scope]; + + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + + return newMethods; +} + +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` + + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined + }); + 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) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + + if (!(alias in options)) { + options[alias] = options[name]; + } + + delete options[name]; + } + } + + return requestWithDefaults(options); + } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + + + return requestWithDefaults(...args); + } + + return Object.assign(withDecorations, requestWithDefaults); +} + +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return { + rest: api + }; +} +restEndpointMethods.VERSION = VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return _objectSpread2(_objectSpread2({}, api), {}, { + rest: api + }); +} +legacyRestEndpointMethods.VERSION = VERSION; + +exports.legacyRestEndpointMethods = legacyRestEndpointMethods; +exports.restEndpointMethods = restEndpointMethods; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 537: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var deprecation = __nccwpck_require__(8932); +var once = _interopDefault(__nccwpck_require__(1223)); + +const logOnceCode = once(deprecation => console.warn(deprecation)); +const logOnceHeaders = once(deprecation => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ + +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "HttpError"; + this.status = statusCode; + let headers; + + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } // redact request credentials without mutating original request options + + + const requestCopy = Object.assign({}, options.request); + + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + + requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; // deprecations + + Object.defineProperty(this, "code", { + get() { + logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); + return headers || {}; + } + + }); + } + +} + +exports.RequestError = RequestError; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 6234: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var endpoint = __nccwpck_require__(9440); +var universalUserAgent = __nccwpck_require__(5030); +var isPlainObject = __nccwpck_require__(3287); +var nodeFetch = _interopDefault(__nccwpck_require__(1768)); +var requestError = __nccwpck_require__(537); + +const VERSION = "5.6.3"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + + if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + + let headers = {}; + let status; + let url; + const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, // `requestOptions.request.agent` type is incompatible + // see https://github.com/octokit/types.ts/pull/264 + requestOptions.request)).then(async response => { + url = response.url; + status = response.status; + + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + + if ("deprecation" in headers) { + const matches = headers.link && headers.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 ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + + if (status === 204 || status === 205) { + return; + } // GitHub API returns 200 for HEAD requests + + + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + + throw new requestError.RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: undefined + }, + request: requestOptions + }); + } + + if (status === 304) { + throw new requestError.RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response) + }, + request: requestOptions + }); + } + + if (status >= 400) { + const data = await getResponseData(response); + const error = new requestError.RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + + return getResponseData(response); + }).then(data => { + return { + status, + url, + headers, + data + }; + }).catch(error => { + if (error instanceof requestError.RequestError) throw error; + throw new requestError.RequestError(error.message, 500, { + request: requestOptions + }); + }); +} + +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + + if (/application\/json/.test(contentType)) { + return response.json(); + } + + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + + return getBufferResponse(response); +} + +function toErrorMessage(data) { + if (typeof data === "string") return data; // istanbul ignore else - just in case + + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; + } + + return data.message; + } // istanbul ignore next - just in case + + + return `Unknown error: ${JSON.stringify(data)}`; +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` + } +}); + +exports.request = request; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 1768: +/***/ ((module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Stream = _interopDefault(__nccwpck_require__(2781)); +var http = _interopDefault(__nccwpck_require__(3685)); +var Url = _interopDefault(__nccwpck_require__(7310)); +var whatwgUrl = _interopDefault(__nccwpck_require__(301)); +var https = _interopDefault(__nccwpck_require__(5687)); +var zlib = _interopDefault(__nccwpck_require__(9796)); + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = (__nccwpck_require__(2877).convert); +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // 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. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; /***/ }), -/***/ 3387: -/***/ ((module) => { +/***/ 3039: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; -module.exports.mixin = function mixin(target, source) { - const keys = Object.getOwnPropertyNames(source); - for (let i = 0; i < keys.length; ++i) { - Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); - } -}; - -module.exports.wrapperSymbol = Symbol("wrapper"); -module.exports.implSymbol = Symbol("impl"); +var punycode = __nccwpck_require__(5477); +var mappingTable = __nccwpck_require__(6492); -module.exports.wrapperForImpl = function (impl) { - return impl[module.exports.wrapperSymbol]; +var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 }; -module.exports.implForWrapper = function (wrapper) { - return wrapper[module.exports.implSymbol]; -}; +function normalize(str) { // fix bug in v8 + return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); +} +function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + while (start <= end) { + var mid = Math.floor((start + end) / 2); -/***/ }), + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } -/***/ 3682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + return null; +} -var register = __nccwpck_require__(4670) -var addHook = __nccwpck_require__(5549) -var removeHook = __nccwpck_require__(6819) +var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; -// bind with array of arguments: https://stackoverflow.com/a/21792913 -var bind = Function.bind -var bindable = bind.bind(bind) +function countSymbols(string) { + return string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, '_') + // then get the length + .length; +} -function bindApi (hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) - hook.api = { remove: removeHookRef } - hook.remove = removeHookRef +function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; - ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { - var args = name ? [state, kind, name] : [state, kind] - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) - }) -} + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); -function HookSingular () { - var singularHookName = 'h' - var singularHookState = { - registry: {} - } - var singularHook = register.bind(null, singularHookState, singularHookName) - bindApi(singularHook, singularHookState, singularHookName) - return singularHook -} + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } -function HookCollection () { - var state = { - registry: {} + processed += String.fromCodePoint(codePoint); + break; + } } - var hook = register.bind(null, state) - bindApi(hook, state) - - return hook + return { + string: processed, + error: hasError + }; } -var collectionHookDeprecationMessageDisplayed = false -function Hook () { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') - collectionHookDeprecationMessageDisplayed = true - } - return HookCollection() -} +var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; -Hook.Singular = HookSingular.bind() -Hook.Collection = HookCollection.bind() +function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } -module.exports = Hook -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook -module.exports.Singular = Hook.Singular -module.exports.Collection = Hook.Collection + var error = false; + if (normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0) { + error = true; + } -/***/ }), + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && status[1] !== "deviation")) { + error = true; + break; + } + } -/***/ 5549: -/***/ ((module) => { + return { + label: label, + error: error + }; +} -module.exports = addHook; +function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch(e) { + result.error = true; + } } - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } + return { + string: labels.join("."), + error: result.error + }; +} - if (kind === "after") { - hook = function (method, options) { - var result; - return Promise.resolve() - .then(method.bind(null, options)) - .then(function (result_) { - result = result_; - return orig(result, options); - }) - .then(function () { - return result; - }); - }; - } +module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch(e) { + result.error = true; + return l; + } + }); - if (kind === "error") { - hook = function (method, options) { - return Promise.resolve() - .then(method.bind(null, options)) - .catch(function (error) { - return orig(error, options); - }); - }; + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + + for (var i=0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } } - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} + if (result.error) return null; + return labels.join("."); +}; + +module.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); + + return { + domain: result.string, + error: result.error + }; +}; + +module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; /***/ }), -/***/ 4670: +/***/ 6542: /***/ ((module) => { -module.exports = register; +"use strict"; -function register(state, name, method, options) { - if (typeof method !== "function") { - throw new Error("method for before hook must be a function"); - } - if (!options) { - options = {}; - } +var conversions = {}; +module.exports = conversions; - if (Array.isArray(name)) { - return name.reverse().reduce(function (callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - } +function sign(x) { + return x < 0 ? -1 : 1; +} - return Promise.resolve().then(function () { - if (!state.registry[name]) { - return method(options); +function evenRound(x) { + // Round x to the nearest integer, choosing the even integer if it lies halfway between two. + if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) + return Math.floor(x); + } else { + return Math.round(x); } - - return state.registry[name].reduce(function (method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); } +function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; -/***/ }), + const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); -/***/ 6819: -/***/ ((module) => { + return function(V, opts) { + if (!opts) opts = {}; -module.exports = removeHook; + let x = +V; -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } + if (opts.enforceRange) { + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite number"); + } - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); + x = sign(x) * Math.floor(Math.abs(x)); + if (x < lowerBound || x > upperBound) { + throw new TypeError("Argument is not in byte range"); + } - if (index === -1) { - return; - } + return x; + } - state.registry[name].splice(index, 1); -} + if (!isNaN(x) && opts.clamp) { + x = evenRound(x); + if (x < lowerBound) x = lowerBound; + if (x > upperBound) x = upperBound; + return x; + } -/***/ }), + if (!Number.isFinite(x) || x === 0) { + return 0; + } -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; -"use strict"; + if (!typeOpts.unsigned && x >= moduloBound) { + return x - moduloVal; + } else if (typeOpts.unsigned) { + if (x < 0) { + x += moduloVal; + } else if (x === -0) { // don't return negative zero + return 0; + } + } + return x; + } +} -Object.defineProperty(exports, "__esModule", ({ value: true })); +conversions["void"] = function () { + return undefined; +}; -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) +conversions["boolean"] = function (val) { + return !!val; +}; - /* istanbul ignore next */ +conversions["byte"] = createNumberConversion(8, { unsigned: false }); +conversions["octet"] = createNumberConversion(8, { unsigned: true }); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } +conversions["short"] = createNumberConversion(16, { unsigned: false }); +conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); - this.name = 'Deprecation'; - } +conversions["long"] = createNumberConversion(32, { unsigned: false }); +conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); -} +conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); +conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); -exports.Deprecation = Deprecation; +conversions["double"] = function (V) { + const x = +V; + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); + } -/***/ }), + return x; +}; -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { +conversions["unrestricted double"] = function (V) { + const x = +V; -"use strict"; + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } + return x; +}; -Object.defineProperty(exports, "__esModule", ({ value: true })); +// not quite valid, but good enough for JS +conversions["float"] = conversions["double"]; +conversions["unrestricted float"] = conversions["unrestricted double"]; -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ +conversions["DOMString"] = function (V, opts) { + if (!opts) opts = {}; -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } -function isPlainObject(o) { - var ctor,prot; + return String(V); +}; - if (isObject(o) === false) return false; +conversions["ByteString"] = function (V, opts) { + const x = String(V); + let c = undefined; + for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { + if (c > 255) { + throw new TypeError("Argument is not a valid bytestring"); + } + } - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; + return x; +}; - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; +conversions["USVString"] = function (V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 0xD800 || c > 0xDFFF) { + U.push(String.fromCodePoint(c)); + } else if (0xDC00 <= c && c <= 0xDFFF) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + const d = S.charCodeAt(i + 1); + if (0xDC00 <= d && d <= 0xDFFF) { + const a = c & 0x3FF; + const b = d & 0x3FF; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(0xFFFD)); + } + } + } + } - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } + return U.join(''); +}; - // Most likely a plain Object - return true; -} +conversions["Date"] = function (V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return undefined; + } + + return V; +}; + +conversions["RegExp"] = function (V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } -exports.isPlainObject = isPlainObject; + return V; +}; /***/ }), -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 394: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -var wrappy = __nccwpck_require__(2940) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) +"use strict"; -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) +const usm = __nccwpck_require__(1234); - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) +exports.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) + let parsedBase = null; + if (base !== undefined) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } + + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + + // TODO: query stuff } - f.called = false - return f -} -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) + get href() { + return usm.serializeURL(this._url); } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } -/***/ }), + this._url = parsedURL; + } -/***/ 4294: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + get origin() { + return usm.serializeURLOrigin(this._url); + } -module.exports = __nccwpck_require__(4219); + get protocol() { + return this._url.scheme + ":"; + } + set protocol(v) { + usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); + } -/***/ }), + get username() { + return this._url.username; + } -/***/ 4219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } -"use strict"; + usm.setTheUsername(this._url, v); + } + get password() { + return this._url.password; + } -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + usm.setThePassword(this._url, v); + } -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; + get host() { + const url = this._url; + if (url.host === null) { + return ""; + } -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} + if (url.port === null) { + return usm.serializeHost(url.host); + } -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} + return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); + } -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } + get hostname() { + if (this._url.host === null) { + return ""; + } -function TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; + return usm.serializeHost(this._url.host); + } - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.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) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); } - // If we are under maxSockets create a new one. - 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); + get port() { + if (this._url.port === null) { + return ""; } - function onCloseOrRemove(err) { - self.removeSocket(socket); - socket.removeListener('free', onFree); - socket.removeListener('close', onCloseOrRemove); - socket.removeListener('agentRemove', onCloseOrRemove); - } - }); -}; + return usm.serializeInteger(this._url.port); + } -TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } - var connectOptions = mergeOptions({}, self.proxyOptions, { - method: 'CONNECT', - path: options.host + ':' + options.port, - agent: false, - headers: { - host: options.host + ':' + options.port + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "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'); + + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } + + if (this._url.path.length === 0) { + return ""; + } + + return "/" + this._url.path.join("/"); } - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); } - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } + + return "?" + this._url.query; } - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); + set search(v) { + // TODO: query stuff - if (res.statusCode !== 200) { - debug('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); + const url = this._url; + + if (v === "") { + url.query = null; return; } - if (head.length > 0) { - debug('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; + + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } + + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); + + return "#" + this._url.fragment; } - function onError(cause) { - connectReq.removeAllListeners(); + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } - debug('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); + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); + } + + toJSON() { + return this.href; } }; -TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket) - if (pos === -1) { - return; + +/***/ }), + +/***/ 2047: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const conversions = __nccwpck_require__(6542); +const utils = __nccwpck_require__(3387); +const Impl = __nccwpck_require__(394); + +const impl = utils.implSymbol; + +function URL(url) { + if (!this || this[impl] || !(this instanceof URL)) { + throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); + } + if (arguments.length < 1) { + throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== undefined) { + args[1] = conversions["USVString"](args[1]); } - this.sockets.splice(pos, 1); - var pending = this.requests.shift(); - if (pending) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); + module.exports.setup(this, args); +} + +URL.prototype.toJSON = function toJSON() { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); +}; +Object.defineProperty(URL.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true +}); + +URL.prototype.toString = function () { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); } + return this.href; }; -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: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); +Object.defineProperty(URL.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true +}); - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} +Object.defineProperty(URL.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true +}); -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} +module.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; -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] !== undefined) { - target[k] = overrides[k]; - } - } - } + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils.wrapperSymbol] = obj; + }, + interface: URL, + expose: { + Window: { URL: URL }, + Worker: { URL: URL } } - return target; -} - +}; -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = 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 { - debug = function() {}; -} -exports.debug = debug; // for test /***/ }), -/***/ 5030: -/***/ ((__unused_webpack_module, exports) => { +/***/ 301: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.URL = __nccwpck_require__(2047)["interface"]; +exports.serializeURL = __nccwpck_require__(1234).serializeURL; +exports.serializeURLOrigin = __nccwpck_require__(1234).serializeURLOrigin; +exports.basicURLParse = __nccwpck_require__(1234).basicURLParse; +exports.setTheUsername = __nccwpck_require__(1234).setTheUsername; +exports.setThePassword = __nccwpck_require__(1234).setThePassword; +exports.serializeHost = __nccwpck_require__(1234).serializeHost; +exports.serializeInteger = __nccwpck_require__(1234).serializeInteger; +exports.parseURL = __nccwpck_require__(1234).parseURL; -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - if (typeof process === "object" && "version" in process) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } +/***/ }), - return ""; -} +/***/ 1234: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map +"use strict"; + +const punycode = __nccwpck_require__(5477); +const tr46 = __nccwpck_require__(3039); + +const specialSchemes = { + ftp: 21, + file: null, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +const failure = Symbol("failure"); + +function countSymbols(str) { + return punycode.ucs2.decode(str).length; +} + +function at(input, idx) { + const c = input[idx]; + return isNaN(c) ? undefined : String.fromCodePoint(c); +} + +function isASCIIDigit(c) { + return c >= 0x30 && c <= 0x39; +} + +function isASCIIAlpha(c) { + return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); +} + +function isASCIIAlphanumeric(c) { + return isASCIIAlpha(c) || isASCIIDigit(c); +} + +function isASCIIHex(c) { + return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); +} + +function isSingleDot(buffer) { + return buffer === "." || buffer.toLowerCase() === "%2e"; +} + +function isDoubleDot(buffer) { + buffer = buffer.toLowerCase(); + return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; +} + +function isWindowsDriveLetterCodePoints(cp1, cp2) { + return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); +} + +function isWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); +} + +function isNormalizedWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; +} + +function containsForbiddenHostCodePoint(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function containsForbiddenHostCodePointExcludingPercent(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function isSpecialScheme(scheme) { + return specialSchemes[scheme] !== undefined; +} + +function isSpecial(url) { + return isSpecialScheme(url.scheme); +} + +function defaultPort(scheme) { + return specialSchemes[scheme]; +} + +function percentEncode(c) { + let hex = c.toString(16).toUpperCase(); + if (hex.length === 1) { + hex = "0" + hex; + } + + return "%" + hex; +} + +function utf8PercentEncode(c) { + const buf = new Buffer(c); + + let str = ""; + + for (let i = 0; i < buf.length; ++i) { + str += percentEncode(buf[i]); + } + + return str; +} + +function utf8PercentDecode(str) { + const input = new Buffer(str); + const output = []; + for (let i = 0; i < input.length; ++i) { + if (input[i] !== 37) { + output.push(input[i]); + } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { + output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); + i += 2; + } else { + output.push(input[i]); + } + } + return new Buffer(output).toString(); +} + +function isC0ControlPercentEncode(c) { + return c <= 0x1F || c > 0x7E; +} + +const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); +function isPathPercentEncode(c) { + return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); +} + +const extraUserinfoPercentEncodeSet = + new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); +function isUserinfoPercentEncode(c) { + return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); +} + +function percentEncodeChar(c, encodeSetPredicate) { + const cStr = String.fromCodePoint(c); + + if (encodeSetPredicate(c)) { + return utf8PercentEncode(cStr); + } + + return cStr; +} + +function parseIPv4Number(input) { + let R = 10; + + if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { + input = input.substring(2); + R = 16; + } else if (input.length >= 2 && input.charAt(0) === "0") { + input = input.substring(1); + R = 8; + } + + if (input === "") { + return 0; + } + + const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); + if (regex.test(input)) { + return failure; + } + + return parseInt(input, R); +} + +function parseIPv4(input) { + const parts = input.split("."); + if (parts[parts.length - 1] === "") { + if (parts.length > 1) { + parts.pop(); + } + } + + if (parts.length > 4) { + return input; + } + + const numbers = []; + for (const part of parts) { + if (part === "") { + return input; + } + const n = parseIPv4Number(part); + if (n === failure) { + return input; + } + + numbers.push(n); + } + + for (let i = 0; i < numbers.length - 1; ++i) { + if (numbers[i] > 255) { + return failure; + } + } + if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { + return failure; + } + + let ipv4 = numbers.pop(); + let counter = 0; + + for (const n of numbers) { + ipv4 += n * Math.pow(256, 3 - counter); + ++counter; + } + + return ipv4; +} + +function serializeIPv4(address) { + let output = ""; + let n = address; + + for (let i = 1; i <= 4; ++i) { + output = String(n % 256) + output; + if (i !== 4) { + output = "." + output; + } + n = Math.floor(n / 256); + } + + return output; +} + +function parseIPv6(input) { + const address = [0, 0, 0, 0, 0, 0, 0, 0]; + let pieceIndex = 0; + let compress = null; + let pointer = 0; + + input = punycode.ucs2.decode(input); + + if (input[pointer] === 58) { + if (input[pointer + 1] !== 58) { + return failure; + } + + pointer += 2; + ++pieceIndex; + compress = pieceIndex; + } + + while (pointer < input.length) { + if (pieceIndex === 8) { + return failure; + } + + if (input[pointer] === 58) { + if (compress !== null) { + return failure; + } + ++pointer; + ++pieceIndex; + compress = pieceIndex; + continue; + } + + let value = 0; + let length = 0; + + while (length < 4 && isASCIIHex(input[pointer])) { + value = value * 0x10 + parseInt(at(input, pointer), 16); + ++pointer; + ++length; + } + + if (input[pointer] === 46) { + if (length === 0) { + return failure; + } + + pointer -= length; + + if (pieceIndex > 6) { + return failure; + } + + let numbersSeen = 0; + + while (input[pointer] !== undefined) { + let ipv4Piece = null; + + if (numbersSeen > 0) { + if (input[pointer] === 46 && numbersSeen < 4) { + ++pointer; + } else { + return failure; + } + } + + if (!isASCIIDigit(input[pointer])) { + return failure; + } + + while (isASCIIDigit(input[pointer])) { + const number = parseInt(at(input, pointer)); + if (ipv4Piece === null) { + ipv4Piece = number; + } else if (ipv4Piece === 0) { + return failure; + } else { + ipv4Piece = ipv4Piece * 10 + number; + } + if (ipv4Piece > 255) { + return failure; + } + ++pointer; + } + + address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; + + ++numbersSeen; + + if (numbersSeen === 2 || numbersSeen === 4) { + ++pieceIndex; + } + } + + if (numbersSeen !== 4) { + return failure; + } + + break; + } else if (input[pointer] === 58) { + ++pointer; + if (input[pointer] === undefined) { + return failure; + } + } else if (input[pointer] !== undefined) { + return failure; + } + + address[pieceIndex] = value; + ++pieceIndex; + } + + if (compress !== null) { + let swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + const temp = address[compress + swaps - 1]; + address[compress + swaps - 1] = address[pieceIndex]; + address[pieceIndex] = temp; + --pieceIndex; + --swaps; + } + } else if (compress === null && pieceIndex !== 8) { + return failure; + } + + return address; +} + +function serializeIPv6(address) { + let output = ""; + const seqResult = findLongestZeroSequence(address); + const compress = seqResult.idx; + let ignore0 = false; + + for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { + if (ignore0 && address[pieceIndex] === 0) { + continue; + } else if (ignore0) { + ignore0 = false; + } + + if (compress === pieceIndex) { + const separator = pieceIndex === 0 ? "::" : ":"; + output += separator; + ignore0 = true; + continue; + } + + output += address[pieceIndex].toString(16); + + if (pieceIndex !== 7) { + output += ":"; + } + } + + return output; +} + +function parseHost(input, isSpecialArg) { + if (input[0] === "[") { + if (input[input.length - 1] !== "]") { + return failure; + } + + return parseIPv6(input.substring(1, input.length - 1)); + } + + if (!isSpecialArg) { + return parseOpaqueHost(input); + } + + const domain = utf8PercentDecode(input); + const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); + if (asciiDomain === null) { + return failure; + } + + if (containsForbiddenHostCodePoint(asciiDomain)) { + return failure; + } + + const ipv4Host = parseIPv4(asciiDomain); + if (typeof ipv4Host === "number" || ipv4Host === failure) { + return ipv4Host; + } + + return asciiDomain; +} + +function parseOpaqueHost(input) { + if (containsForbiddenHostCodePointExcludingPercent(input)) { + return failure; + } + + let output = ""; + const decoded = punycode.ucs2.decode(input); + for (let i = 0; i < decoded.length; ++i) { + output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); + } + return output; +} + +function findLongestZeroSequence(arr) { + let maxIdx = null; + let maxLen = 1; // only find elements > 1 + let currStart = null; + let currLen = 0; + + for (let i = 0; i < arr.length; ++i) { + if (arr[i] !== 0) { + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + currStart = null; + currLen = 0; + } else { + if (currStart === null) { + currStart = i; + } + ++currLen; + } + } + + // if trailing zeros + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + return { + idx: maxIdx, + len: maxLen + }; +} + +function serializeHost(host) { + if (typeof host === "number") { + return serializeIPv4(host); + } + + // IPv6 serializer + if (host instanceof Array) { + return "[" + serializeIPv6(host) + "]"; + } + + return host; +} + +function trimControlChars(url) { + return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); +} + +function trimTabAndNewline(url) { + return url.replace(/\u0009|\u000A|\u000D/g, ""); +} + +function shortenPath(url) { + const path = url.path; + if (path.length === 0) { + return; + } + if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { + return; + } + + path.pop(); +} + +function includesCredentials(url) { + return url.username !== "" || url.password !== ""; +} + +function cannotHaveAUsernamePasswordPort(url) { + return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; +} + +function isNormalizedWindowsDriveLetter(string) { + return /^[A-Za-z]:$/.test(string); +} + +function URLStateMachine(input, base, encodingOverride, url, stateOverride) { + this.pointer = 0; + this.input = input; + this.base = base || null; + this.encodingOverride = encodingOverride || "utf-8"; + this.stateOverride = stateOverride; + this.url = url; + this.failure = false; + this.parseError = false; + + if (!this.url) { + this.url = { + scheme: "", + username: "", + password: "", + host: null, + port: null, + path: [], + query: null, + fragment: null, + + cannotBeABaseURL: false + }; + + const res = trimControlChars(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + } + + const res = trimTabAndNewline(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + + this.state = stateOverride || "scheme start"; + + this.buffer = ""; + this.atFlag = false; + this.arrFlag = false; + this.passwordTokenSeenFlag = false; + + this.input = punycode.ucs2.decode(this.input); + + for (; this.pointer <= this.input.length; ++this.pointer) { + const c = this.input[this.pointer]; + const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); + + // exec state machine + const ret = this["parse " + this.state](c, cStr); + if (!ret) { + break; // terminate algorithm + } else if (ret === failure) { + this.failure = true; + break; + } + } +} + +URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { + if (isASCIIAlpha(c)) { + this.buffer += cStr.toLowerCase(); + this.state = "scheme"; + } else if (!this.stateOverride) { + this.state = "no scheme"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { + if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { + this.buffer += cStr.toLowerCase(); + } else if (c === 58) { + if (this.stateOverride) { + if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { + return false; + } + + if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { + return false; + } + + if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { + return false; + } + + if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { + return false; + } + } + this.url.scheme = this.buffer; + this.buffer = ""; + if (this.stateOverride) { + return false; + } + if (this.url.scheme === "file") { + if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { + this.parseError = true; + } + this.state = "file"; + } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { + this.state = "special relative or authority"; + } else if (isSpecial(this.url)) { + this.state = "special authority slashes"; + } else if (this.input[this.pointer + 1] === 47) { + this.state = "path or authority"; + ++this.pointer; + } else { + this.url.cannotBeABaseURL = true; + this.url.path.push(""); + this.state = "cannot-be-a-base-URL path"; + } + } else if (!this.stateOverride) { + this.buffer = ""; + this.state = "no scheme"; + this.pointer = -1; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { + if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { + return failure; + } else if (this.base.cannotBeABaseURL && c === 35) { + this.url.scheme = this.base.scheme; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.url.cannotBeABaseURL = true; + this.state = "fragment"; + } else if (this.base.scheme === "file") { + this.state = "file"; + --this.pointer; + } else { + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { + if (c === 47) { + this.state = "authority"; + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative"] = function parseRelative(c) { + this.url.scheme = this.base.scheme; + if (isNaN(c)) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 47) { + this.state = "relative slash"; + } else if (c === 63) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else if (isSpecial(this.url) && c === 92) { + this.parseError = true; + this.state = "relative slash"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(0, this.base.path.length - 1); + + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { + if (isSpecial(this.url) && (c === 47 || c === 92)) { + if (c === 92) { + this.parseError = true; + } + this.state = "special authority ignore slashes"; + } else if (c === 47) { + this.state = "authority"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "special authority ignore slashes"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { + if (c !== 47 && c !== 92) { + this.state = "authority"; + --this.pointer; + } else { + this.parseError = true; + } + + return true; +}; + +URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { + if (c === 64) { + this.parseError = true; + if (this.atFlag) { + this.buffer = "%40" + this.buffer; + } + this.atFlag = true; + + // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars + const len = countSymbols(this.buffer); + for (let pointer = 0; pointer < len; ++pointer) { + const codePoint = this.buffer.codePointAt(pointer); + + if (codePoint === 58 && !this.passwordTokenSeenFlag) { + this.passwordTokenSeenFlag = true; + continue; + } + const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); + if (this.passwordTokenSeenFlag) { + this.url.password += encodedCodePoints; + } else { + this.url.username += encodedCodePoints; + } + } + this.buffer = ""; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + if (this.atFlag && this.buffer === "") { + this.parseError = true; + return failure; + } + this.pointer -= countSymbols(this.buffer) + 1; + this.buffer = ""; + this.state = "host"; + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse hostname"] = +URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { + if (this.stateOverride && this.url.scheme === "file") { + --this.pointer; + this.state = "file host"; + } else if (c === 58 && !this.arrFlag) { + if (this.buffer === "") { + this.parseError = true; + return failure; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "port"; + if (this.stateOverride === "hostname") { + return false; + } + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + --this.pointer; + if (isSpecial(this.url) && this.buffer === "") { + this.parseError = true; + return failure; + } else if (this.stateOverride && this.buffer === "" && + (includesCredentials(this.url) || this.url.port !== null)) { + this.parseError = true; + return false; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "path start"; + if (this.stateOverride) { + return false; + } + } else { + if (c === 91) { + this.arrFlag = true; + } else if (c === 93) { + this.arrFlag = false; + } + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { + if (isASCIIDigit(c)) { + this.buffer += cStr; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92) || + this.stateOverride) { + if (this.buffer !== "") { + const port = parseInt(this.buffer); + if (port > Math.pow(2, 16) - 1) { + this.parseError = true; + return failure; + } + this.url.port = port === defaultPort(this.url.scheme) ? null : port; + this.buffer = ""; + } + if (this.stateOverride) { + return false; + } + this.state = "path start"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); + +URLStateMachine.prototype["parse file"] = function parseFile(c) { + this.url.scheme = "file"; + + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file slash"; + } else if (this.base !== null && this.base.scheme === "file") { + if (isNaN(c)) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 63) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else { + if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points + !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || + (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points + !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + shortenPath(this.url); + } else { + this.parseError = true; + } + + this.state = "path"; + --this.pointer; + } + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file host"; + } else { + if (this.base !== null && this.base.scheme === "file") { + if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { + this.url.path.push(this.base.path[0]); + } else { + this.url.host = this.base.host; + } + } + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { + if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { + --this.pointer; + if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { + this.parseError = true; + this.state = "path"; + } else if (this.buffer === "") { + this.url.host = ""; + if (this.stateOverride) { + return false; + } + this.state = "path start"; + } else { + let host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + if (host === "localhost") { + host = ""; + } + this.url.host = host; + + if (this.stateOverride) { + return false; + } + + this.buffer = ""; + this.state = "path start"; + } + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { + if (isSpecial(this.url)) { + if (c === 92) { + this.parseError = true; + } + this.state = "path"; + + if (c !== 47 && c !== 92) { + --this.pointer; + } + } else if (!this.stateOverride && c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (!this.stateOverride && c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else if (c !== undefined) { + this.state = "path"; + if (c !== 47) { + --this.pointer; + } + } + + return true; +}; + +URLStateMachine.prototype["parse path"] = function parsePath(c) { + if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || + (!this.stateOverride && (c === 63 || c === 35))) { + if (isSpecial(this.url) && c === 92) { + this.parseError = true; + } + + if (isDoubleDot(this.buffer)) { + shortenPath(this.url); + if (c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } + } else if (isSingleDot(this.buffer) && c !== 47 && + !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } else if (!isSingleDot(this.buffer)) { + if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { + if (this.url.host !== "" && this.url.host !== null) { + this.parseError = true; + this.url.host = ""; + } + this.buffer = this.buffer[0] + ":"; + } + this.url.path.push(this.buffer); + } + this.buffer = ""; + if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { + while (this.url.path.length > 1 && this.url.path[0] === "") { + this.parseError = true; + this.url.path.shift(); + } + } + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += percentEncodeChar(c, isPathPercentEncode); + } + + return true; +}; + +URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else { + // TODO: Add: not a URL code point + if (!isNaN(c) && c !== 37) { + this.parseError = true; + } + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + if (!isNaN(c)) { + this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); + } + } + + return true; +}; + +URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { + if (isNaN(c) || (!this.stateOverride && c === 35)) { + if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { + this.encodingOverride = "utf-8"; + } + + const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead + for (let i = 0; i < buffer.length; ++i) { + if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || + buffer[i] === 0x3C || buffer[i] === 0x3E) { + this.url.query += percentEncode(buffer[i]); + } else { + this.url.query += String.fromCodePoint(buffer[i]); + } + } + + this.buffer = ""; + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { + if (isNaN(c)) { // do nothing + } else if (c === 0x0) { + this.parseError = true; + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; /***/ }), -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 3387: +/***/ ((module) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); +}; -var _version = _interopRequireDefault(__nccwpck_require__(1595)); +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +/***/ 3682: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +var register = __nccwpck_require__(4670) +var addHook = __nccwpck_require__(5549) +var removeHook = __nccwpck_require__(6819) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef - return _crypto.default.createHash('md5').update(bytes).digest(); + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) } -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook } -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; +function HookCollection () { + var state = { + registry: {} + } + var hook = register.bind(null, state) + bindApi(hook, state) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; + return hook +} -/***/ }), +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() -"use strict"; +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; +/***/ }), -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +/***/ 5549: +/***/ ((module) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = addHook; -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } -let poolPtr = rnds8Pool.length; + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } - poolPtr = 0; + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; } - return rnds8Pool.slice(poolPtr, poolPtr += 16); + state.registry[name].push({ + hook: hook, + orig: orig, + }); } -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; +/***/ }), +/***/ 4670: +/***/ ((module) => { -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +module.exports = register; -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (!options) { + options = {}; + } -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); } - return _crypto.default.createHash('sha1').update(bytes).digest(); + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); } -var _default = sha1; -exports["default"] = _default; /***/ }), -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ 6819: +/***/ ((module) => { -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; +module.exports = removeHook; -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); + if (index === -1) { + return; } - return uuid; + state.registry[name].splice(index, 1); } -var _default = stringify; -exports["default"] = _default; /***/ }), -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 8932: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /* istanbul ignore next */ -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } -let _clockseq; // Previous uuid creation time + this.name = 'Deprecation'; + } +} -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details +exports.Deprecation = Deprecation; -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); +/***/ }), - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } +/***/ 3287: +/***/ ((__unused_webpack_module, exports) => { - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. +"use strict"; - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock +Object.defineProperty(exports, "__esModule", ({ value: true })); - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval +function isPlainObject(o) { + var ctor,prot; + if (isObject(o) === false) return false; - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; } - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + // Most likely a plain Object + return true; +} - msecs += 12219292800000; // `time_low` +exports.isPlainObject = isPlainObject; - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` +/***/ }), - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version +/***/ 1223: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) +var wrappy = __nccwpck_require__(2940) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) - b[i++] = clockseq & 0xff; // `node` + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) } + f.called = false + return f +} - return buf || (0, _stringify.default)(b); +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f } -var _default = v1; -exports["default"] = _default; /***/ }), -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); +/***/ 4294: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = __nccwpck_require__(4219); -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; /***/ }), -/***/ 5998: +/***/ 4219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) +var net = __nccwpck_require__(1808); +var tls = __nccwpck_require__(4404); +var http = __nccwpck_require__(3685); +var https = __nccwpck_require__(5687); +var events = __nccwpck_require__(2361); +var assert = __nccwpck_require__(9491); +var util = __nccwpck_require__(3837); - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; } -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -"use strict"; +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); -function v4(options, buf, offset) { - options = options || {}; + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + // If we are under maxSockets create a new one. + 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); + } - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; - if (buf) { - offset = offset || 0; +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port } - - return buf; + }); + 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'); } - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); -"use strict"; + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); -var _v = _interopRequireDefault(__nccwpck_require__(5998)); + if (res.statusCode !== 200) { + debug('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) { + debug('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; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + function onError(cause) { + connectReq.removeAllListeners(); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + debug('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); + } +}; -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; +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) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +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: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); -"use strict"; + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} -var _regex = _interopRequireDefault(__nccwpck_require__(814)); +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] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = 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 { + debug = function() {}; } +exports.debug = debug; // for test -var _default = validate; -exports["default"] = _default; /***/ }), -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 5030: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; } - return parseInt(uuid.substr(14, 1), 16); + return ""; } -var _default = version; -exports["default"] = _default; +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + /***/ }), @@ -9745,14 +9288,6 @@ module.exports = require("assert"); /***/ }), -/***/ 6113: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto"); - -/***/ }), - /***/ 2361: /***/ ((module) => { diff --git a/dist/check-all-issues/index.js.map b/dist/check-all-issues/index.js.map index 6723de9..2802da1 100644 --- a/dist/check-all-issues/index.js.map +++ b/dist/check-all-issues/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/check-all-issues.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/context.js","../webpack://typescript-action/./node_modules/@actions/github/lib/github.js","../webpack://typescript-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/before-after-hook/index.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/add.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/register.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/remove.js","../webpack://typescript-action/./node_modules/deprecation/dist-node/index.js","../webpack://typescript-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://typescript-action/./node_modules/once/once.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/wrappy/wrappy.js","../webpack://typescript-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"fs/promises\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"punycode\"","../webpack://typescript-action/external node-commonjs \"stream\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"url\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"zlib\"","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst promises_1 = __importDefault(require(\"fs/promises\"));\nmain();\nasync function main() {\n console.log('kitting off');\n core.info('kitting off');\n const token = core.getInput('gh-token');\n const backLogProjectNumberStr = core.getInput('project-number');\n const org = core.getInput('gh-org');\n // const [token, backLogProjectNumberStr, org] = await Promise.all(\n // ['GH_TOKEN', 'PROJECT_NUMBER', 'GH_ORG'].map(getValueFromDotEnvOrGithub)\n // )\n console.log('has token?', token.length);\n if (!token) {\n console.log('other env vars', backLogProjectNumberStr, org);\n throw new Error('No token found');\n }\n const backLogProjectNumber = JSON.parse(backLogProjectNumberStr);\n const octoGraph = github.getOctokit(token).graphql;\n const [{ projectId, fieldId, singleSelectOptionIdTodo, singleSelectOptionIdDone }, repos] = await Promise.all([\n getProjectV2ItemStatusInfo(octoGraph, org, backLogProjectNumber),\n getRepos(octoGraph)\n ]);\n console.log(JSON.stringify(repos, null, 2));\n repos.forEach(async (issue) => {\n const issues = await getIssues(octoGraph, issue);\n await Promise.all(issues.map(async ({ id, title, projectsV2, state, url }) => {\n if (projectsV2?.nodes?.length) {\n // already has a project, do nothing\n console.log(`Skipping \"${title}\":\\n .... ${url}`);\n return;\n }\n const singleSelectOptionId = state === 'OPEN' ? singleSelectOptionIdTodo : singleSelectOptionIdDone;\n console.log(`Adding \"${title}\" to backlog:\\n .... ${url}`);\n return addProjectToIssue(octoGraph, {\n projectId,\n issueId: id,\n fieldId,\n singleSelectOptionId\n });\n }));\n });\n}\nasync function getRepos(octoGraph, pageInfo = { hasNextPage: true, endCursor: '' }, previousRepos = []) {\n if (!pageInfo.hasNextPage) {\n return previousRepos;\n }\n const cursorParam = pageInfo.endCursor ? `after: \"${pageInfo.endCursor}\"` : '';\n const response = (await octoGraph(`query {\n organization(login: \"test-org-irevdev\") {\n name\n repositories(first: 1 ${cursorParam}) {\n nodes {\n name\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }`)).organization.repositories;\n const repos = response.nodes\n .filter(({ name }) => !name.startsWith('_'))\n .map(({ name }) => name);\n return getRepos(octoGraph, response.pageInfo, [...previousRepos, ...repos]);\n}\nasync function getIssues(octoGraph, repoName, pageInfo = { hasNextPage: true, endCursor: '' }, previousIssues = []) {\n if (!pageInfo.hasNextPage) {\n return previousIssues;\n }\n const cursorParam = pageInfo.endCursor ? `after: \"${pageInfo.endCursor}\"` : '';\n const response = (await octoGraph(`query {\n repository(name: \"${repoName}\" owner: \"test-org-irevdev\") {\n issues(first: 1 ${cursorParam}) {\n nodes {\n url\n state\n id\n title\n projectsV2(first: 50) {\n nodes {\n id\n number\n title\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }`)).repository.issues;\n return getIssues(octoGraph, repoName, response.pageInfo, [\n ...previousIssues,\n ...response.nodes\n ]);\n}\nasync function addProjectToIssue(octoGraph, { projectId, issueId, fieldId, singleSelectOptionId }) {\n const projectItemAddedToIssue = await octoGraph(`\n mutation {\n addProjectV2ItemById(input: {projectId: \"${projectId}\" contentId: \"${issueId}\"}) {\n item {\n id\n }\n }\n }\n `);\n // console.log(JSON.stringify(projectItemAddedToIssue, null, 2))\n await octoGraph(`\n mutation { \n updateProjectV2ItemFieldValue(input: {\n projectId: \"${projectId}\"\n itemId: \"${projectItemAddedToIssue?.addProjectV2ItemById?.item?.id}\"\n fieldId: \"${fieldId}\"\n value: {singleSelectOptionId: \"${singleSelectOptionId}\"}\n }) {\n clientMutationId\n projectV2Item {\n id\n }\n }\n }`);\n // console.log(JSON.stringify(updatedProjectStatus, null, 2));\n return projectItemAddedToIssue;\n}\nasync function getValueFromDotEnvOrGithub(name) {\n try {\n const lines = (await promises_1.default.readFile('./.env', 'utf-8')).split('\\n');\n const line = lines.find((_line) => _line.startsWith(name)) || '';\n const value = line\n .split('=')[1]\n .trim()\n .replaceAll(\"'\", '')\n .replaceAll('\"', '');\n console.log(`Reading ${name} from .env, got ${value}`);\n return value;\n }\n catch (error) {\n const newName = name.toLocaleLowerCase().replaceAll(/_/g, '-');\n const value = core.getInput(newName);\n // read failed assume we're running in an action\n console.log(`Reading ${newName} from github action input got ${value}`);\n return value;\n }\n}\nasync function getProjectV2ItemStatusInfo(octoGraph, org, backLogProjectNumber) {\n const { organization } = await octoGraph(`query {\n organization(login: \"${org}\") {\n projectV2(number: ${backLogProjectNumber}) {\n id\n field(name: \"Status\") {\n ...on ProjectV2SingleSelectField {\n id\n dataType\n options {\n id\n name\n }\n }\n }\n }\n }\n }`);\n const projectId = organization?.projectV2?.id;\n const fieldId = organization?.projectV2?.field?.id;\n const singleSelectOptionIdTodo = organization?.projectV2?.field?.options?.find(({ name }) => name.toLocaleLowerCase() === 'todo')?.id || '';\n const singleSelectOptionIdDone = organization?.projectV2?.field?.options?.find(({ name }) => name.toLocaleLowerCase() === 'done')?.id || '';\n return {\n projectId,\n fieldId,\n singleSelectOptionIdTodo,\n singleSelectOptionIdDone\n };\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"fs/promises\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(6795);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":[".././lib/check-all-issues.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@octokit/request/node_modules/node-fetch/lib/index.js",".././node_modules/@octokit/request/node_modules/tr46/index.js",".././node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/is-plain-object/dist/is-plain-object.js",".././node_modules/once/once.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/wrappy/wrappy.js",".././node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../external node-commonjs \"assert\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"fs/promises\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"punycode\"","../external node-commonjs \"stream\"","../external node-commonjs \"tls\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"zlib\"","../webpack/bootstrap","../webpack/runtime/compat","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst promises_1 = __importDefault(require(\"fs/promises\"));\nmain();\nasync function main() {\n console.log('kitting off');\n core.info('kitting off');\n const token = core.getInput('gh-token');\n const backLogProjectNumberStr = core.getInput('project-number');\n const org = core.getInput('gh-org');\n // const [token, backLogProjectNumberStr, org] = await Promise.all(\n // ['GH_TOKEN', 'PROJECT_NUMBER', 'GH_ORG'].map(getValueFromDotEnvOrGithub)\n // )\n console.log('has token?', token.length);\n if (!token) {\n console.log('other env vars', backLogProjectNumberStr, org);\n throw new Error('No token found');\n }\n const backLogProjectNumber = JSON.parse(backLogProjectNumberStr);\n const octoGraph = github.getOctokit(token).graphql;\n const [{ projectId, fieldId, singleSelectOptionIdTodo, singleSelectOptionIdDone }, repos] = await Promise.all([\n getProjectV2ItemStatusInfo(octoGraph, org, backLogProjectNumber),\n getRepos(octoGraph)\n ]);\n console.log(JSON.stringify(repos, null, 2));\n repos.forEach(async (issue) => {\n const issues = await getIssues(octoGraph, issue);\n await Promise.all(issues.map(async ({ id, title, projectsV2, state, url }) => {\n if (projectsV2?.nodes?.length) {\n // already has a project, do nothing\n console.log(`Skipping \"${title}\":\\n .... ${url}`);\n return;\n }\n const singleSelectOptionId = state === 'OPEN' ? singleSelectOptionIdTodo : singleSelectOptionIdDone;\n console.log(`Adding \"${title}\" to backlog:\\n .... ${url}`);\n return addProjectToIssue(octoGraph, {\n projectId,\n issueId: id,\n fieldId,\n singleSelectOptionId\n });\n }));\n });\n}\nasync function getRepos(octoGraph, pageInfo = { hasNextPage: true, endCursor: '' }, previousRepos = []) {\n if (!pageInfo.hasNextPage) {\n return previousRepos;\n }\n const cursorParam = pageInfo.endCursor ? `after: \"${pageInfo.endCursor}\"` : '';\n const response = (await octoGraph(`query {\n organization(login: \"test-org-irevdev\") {\n name\n repositories(first: 1 ${cursorParam}) {\n nodes {\n name\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }`)).organization.repositories;\n const repos = response.nodes\n .filter(({ name }) => !name.startsWith('_'))\n .map(({ name }) => name);\n return getRepos(octoGraph, response.pageInfo, [...previousRepos, ...repos]);\n}\nasync function getIssues(octoGraph, repoName, pageInfo = { hasNextPage: true, endCursor: '' }, previousIssues = []) {\n if (!pageInfo.hasNextPage) {\n return previousIssues;\n }\n const cursorParam = pageInfo.endCursor ? `after: \"${pageInfo.endCursor}\"` : '';\n const response = (await octoGraph(`query {\n repository(name: \"${repoName}\" owner: \"test-org-irevdev\") {\n issues(first: 1 ${cursorParam}) {\n nodes {\n url\n state\n id\n title\n projectsV2(first: 50) {\n nodes {\n id\n number\n title\n }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }`)).repository.issues;\n return getIssues(octoGraph, repoName, response.pageInfo, [\n ...previousIssues,\n ...response.nodes\n ]);\n}\nasync function addProjectToIssue(octoGraph, { projectId, issueId, fieldId, singleSelectOptionId }) {\n const projectItemAddedToIssue = await octoGraph(`\n mutation {\n addProjectV2ItemById(input: {projectId: \"${projectId}\" contentId: \"${issueId}\"}) {\n item {\n id\n }\n }\n }\n `);\n // console.log(JSON.stringify(projectItemAddedToIssue, null, 2))\n await octoGraph(`\n mutation { \n updateProjectV2ItemFieldValue(input: {\n projectId: \"${projectId}\"\n itemId: \"${projectItemAddedToIssue?.addProjectV2ItemById?.item?.id}\"\n fieldId: \"${fieldId}\"\n value: {singleSelectOptionId: \"${singleSelectOptionId}\"}\n }) {\n clientMutationId\n projectV2Item {\n id\n }\n }\n }`);\n // console.log(JSON.stringify(updatedProjectStatus, null, 2));\n return projectItemAddedToIssue;\n}\nasync function getValueFromDotEnvOrGithub(name) {\n try {\n const lines = (await promises_1.default.readFile('./.env', 'utf-8')).split('\\n');\n const line = lines.find((_line) => _line.startsWith(name)) || '';\n const value = line\n .split('=')[1]\n .trim()\n .replaceAll(\"'\", '')\n .replaceAll('\"', '');\n console.log(`Reading ${name} from .env, got ${value}`);\n return value;\n }\n catch (error) {\n const newName = name.toLocaleLowerCase().replaceAll(/_/g, '-');\n const value = core.getInput(newName);\n // read failed assume we're running in an action\n console.log(`Reading ${newName} from github action input got ${value}`);\n return value;\n }\n}\nasync function getProjectV2ItemStatusInfo(octoGraph, org, backLogProjectNumber) {\n const { organization } = await octoGraph(`query {\n organization(login: \"${org}\") {\n projectV2(number: ${backLogProjectNumber}) {\n id\n field(name: \"Status\") {\n ...on ProjectV2SingleSelectField {\n id\n dataType\n options {\n id\n name\n }\n }\n }\n }\n }\n }`);\n const projectId = organization?.projectV2?.id;\n const fieldId = organization?.projectV2?.field?.id;\n const singleSelectOptionIdTodo = organization?.projectV2?.field?.options?.find(({ name }) => name.toLocaleLowerCase() === 'todo')?.id || '';\n const singleSelectOptionIdDone = organization?.projectV2?.field?.options?.find(({ name }) => name.toLocaleLowerCase() === 'done')?.id || '';\n return {\n projectId,\n fieldId,\n singleSelectOptionIdTodo,\n singleSelectOptionIdDone\n };\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"fs/promises\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(6795);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/check-all-issues/licenses.txt b/dist/check-all-issues/licenses.txt index bac409b..bedd358 100644 --- a/dist/check-all-issues/licenses.txt +++ b/dist/check-all-issues/licenses.txt @@ -562,19 +562,6 @@ Permission to use, copy, modify, and/or distribute this software for any purpose THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -uuid -MIT -The MIT License (MIT) - -Copyright (c) 2010-2020 Robert Kieffer and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - webidl-conversions BSD-2-Clause # The BSD 2-Clause License diff --git a/dist/create-openapi-types/index.js b/dist/create-openapi-types/index.js index 4242937..04996c8 100644 --- a/dist/create-openapi-types/index.js +++ b/dist/create-openapi-types/index.js @@ -8,11 +8,7 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -241,9 +237,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -261,7 +261,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -301,10 +301,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -337,12 +334,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -471,11 +464,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -494,23 +483,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -541,14 +513,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -560,22 +531,7 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), @@ -596,8 +552,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); +const http_client_1 = __nccwpck_require__(9925); +const auth_1 = __nccwpck_require__(3702); const core_1 = __nccwpck_require__(2186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { @@ -630,7 +586,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -664,361 +620,6 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - /***/ 5278: /***/ ((__unused_webpack_module, exports) => { @@ -1197,7 +798,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); +const httpClient = __importStar(__nccwpck_require__(6341)); function getAuthString(token, options) { if (!token && !options.auth) { throw new Error('Parameter token or opts.auth is required'); @@ -1282,95 +883,7 @@ exports.getOctokitOptions = getOctokitOptions; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: +/***/ 6341: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -1408,7 +921,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; const http = __importStar(__nccwpck_require__(3685)); const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); +const pm = __importStar(__nccwpck_require__(3466)); const tunnel = __importStar(__nccwpck_require__(4294)); var HttpCodes; (function (HttpCodes) { @@ -1982,7 +1495,7 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ }), -/***/ 9835: +/***/ 3466: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -2048,6 +1561,682 @@ function checkBypass(reqUrl) { exports.checkBypass = checkBypass; //# sourceMappingURL=proxy.js.map +/***/ }), + +/***/ 3702: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + + +/***/ }), + +/***/ 9925: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const http = __nccwpck_require__(3685); +const https = __nccwpck_require__(5687); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, 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 = userAgent; + 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 this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + } + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + } + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + } + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + } + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); + } + } + 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(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + 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) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((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 reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); + } +} +exports.HttpClient = HttpClient; + + +/***/ }), + +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; + } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; + + /***/ }), /***/ 334: @@ -74199,652 +74388,6 @@ exports.getUserAgent = getUserAgent; //# sourceMappingURL=index.js.map -/***/ }), - -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); - -var _version = _interopRequireDefault(__nccwpck_require__(1595)); - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('md5').update(bytes).digest(); -} - -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} - -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; - -/***/ }), - -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate - -let poolPtr = rnds8Pool.length; - -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); - - poolPtr = 0; - } - - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} - -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('sha1').update(bytes).digest(); -} - -var _default = sha1; -exports["default"] = _default; - -/***/ }), - -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; -} - -var _default = stringify; -exports["default"] = _default; - -/***/ }), - -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; - -let _clockseq; // Previous uuid creation time - - -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); - - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - - - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) - - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression - - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested - - - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` - - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` - - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - - b[i++] = clockseq & 0xff; // `node` - - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf || (0, _stringify.default)(b); -} - -var _default = v1; -exports["default"] = _default; - -/***/ }), - -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; - -/***/ }), - -/***/ 5998: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} - -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function v4(options, buf, offset) { - options = options || {}; - - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - - - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - - return buf; - } - - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; - -/***/ }), - -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _regex = _interopRequireDefault(__nccwpck_require__(814)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} - -var _default = validate; -exports["default"] = _default; - -/***/ }), - -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - return parseInt(uuid.substr(14, 1), 16); -} - -var _default = version; -exports["default"] = _default; - /***/ }), /***/ 2940: diff --git a/dist/create-openapi-types/index.js.map b/dist/create-openapi-types/index.js.map index 1daf2b4..14f1926 100644 --- a/dist/create-openapi-types/index.js.map +++ b/dist/create-openapi-types/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5oBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;;;;;;;;ACHA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/2CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4xMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4kSA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAw7EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoilBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACp0oCA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA;;;;;;;;;AASA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1QA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChsDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5+DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACt6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9xBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrRA;;;;;;;;ACAA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1wHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;AEDA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/create-openapi-types.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/context.js","../webpack://typescript-action/./node_modules/@actions/github/lib/github.js","../webpack://typescript-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/before-after-hook/index.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/add.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/register.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/remove.js","../webpack://typescript-action/./node_modules/busboy/lib/index.js","../webpack://typescript-action/./node_modules/busboy/lib/types/multipart.js","../webpack://typescript-action/./node_modules/busboy/lib/types/urlencoded.js","../webpack://typescript-action/./node_modules/busboy/lib/utils.js","../webpack://typescript-action/./node_modules/deprecation/dist-node/index.js","../webpack://typescript-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://typescript-action/./node_modules/mime/Mime.js","../webpack://typescript-action/./node_modules/mime/index.js","../webpack://typescript-action/./node_modules/mime/types/other.js","../webpack://typescript-action/./node_modules/mime/types/standard.js","../webpack://typescript-action/./node_modules/once/once.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/doc.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/index.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-angular.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-babel.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-espree.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-flow.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-glimmer.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-graphql.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-html.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-markdown.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-meriyah.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-postcss.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-typescript.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/parser-yaml.js","../webpack://typescript-action/./node_modules/openapi-typescript/node_modules/prettier/third-party.js","../webpack://typescript-action/./node_modules/streamsearch/lib/sbmh.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/undici/index.js","../webpack://typescript-action/./node_modules/undici/lib/agent.js","../webpack://typescript-action/./node_modules/undici/lib/api/abort-signal.js","../webpack://typescript-action/./node_modules/undici/lib/api/api-connect.js","../webpack://typescript-action/./node_modules/undici/lib/api/api-pipeline.js","../webpack://typescript-action/./node_modules/undici/lib/api/api-request.js","../webpack://typescript-action/./node_modules/undici/lib/api/api-stream.js","../webpack://typescript-action/./node_modules/undici/lib/api/api-upgrade.js","../webpack://typescript-action/./node_modules/undici/lib/api/index.js","../webpack://typescript-action/./node_modules/undici/lib/api/readable.js","../webpack://typescript-action/./node_modules/undici/lib/balanced-pool.js","../webpack://typescript-action/./node_modules/undici/lib/client.js","../webpack://typescript-action/./node_modules/undici/lib/compat/dispatcher-weakref.js","../webpack://typescript-action/./node_modules/undici/lib/core/connect.js","../webpack://typescript-action/./node_modules/undici/lib/core/errors.js","../webpack://typescript-action/./node_modules/undici/lib/core/request.js","../webpack://typescript-action/./node_modules/undici/lib/core/symbols.js","../webpack://typescript-action/./node_modules/undici/lib/core/util.js","../webpack://typescript-action/./node_modules/undici/lib/dispatcher-base.js","../webpack://typescript-action/./node_modules/undici/lib/dispatcher.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/body.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/constants.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/dataURL.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/file.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/formdata.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/global.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/headers.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/index.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/request.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/response.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/symbols.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/util.js","../webpack://typescript-action/./node_modules/undici/lib/fetch/webidl.js","../webpack://typescript-action/./node_modules/undici/lib/global.js","../webpack://typescript-action/./node_modules/undici/lib/handler/DecoratorHandler.js","../webpack://typescript-action/./node_modules/undici/lib/handler/RedirectHandler.js","../webpack://typescript-action/./node_modules/undici/lib/interceptor/redirectInterceptor.js","../webpack://typescript-action/./node_modules/undici/lib/llhttp/constants.js","../webpack://typescript-action/./node_modules/undici/lib/llhttp/llhttp.wasm.js","../webpack://typescript-action/./node_modules/undici/lib/llhttp/llhttp_simd.wasm.js","../webpack://typescript-action/./node_modules/undici/lib/llhttp/utils.js","../webpack://typescript-action/./node_modules/undici/lib/mock/mock-agent.js","../webpack://typescript-action/./node_modules/undici/lib/mock/mock-client.js","../webpack://typescript-action/./node_modules/undici/lib/mock/mock-errors.js","../webpack://typescript-action/./node_modules/undici/lib/mock/mock-interceptor.js","../webpack://typescript-action/./node_modules/undici/lib/mock/mock-pool.js","../webpack://typescript-action/./node_modules/undici/lib/mock/mock-symbols.js","../webpack://typescript-action/./node_modules/undici/lib/mock/mock-utils.js","../webpack://typescript-action/./node_modules/undici/lib/mock/pending-interceptors-formatter.js","../webpack://typescript-action/./node_modules/undici/lib/mock/pluralizer.js","../webpack://typescript-action/./node_modules/undici/lib/node/fixed-queue.js","../webpack://typescript-action/./node_modules/undici/lib/pool-base.js","../webpack://typescript-action/./node_modules/undici/lib/pool-stats.js","../webpack://typescript-action/./node_modules/undici/lib/pool.js","../webpack://typescript-action/./node_modules/undici/lib/proxy-agent.js","../webpack://typescript-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/wrappy/wrappy.js","../webpack://typescript-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"async_hooks\"","../webpack://typescript-action/external node-commonjs \"buffer\"","../webpack://typescript-action/external node-commonjs \"console\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"diagnostics_channel\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"module\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"node:fs/promises\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"perf_hooks\"","../webpack://typescript-action/external node-commonjs \"punycode\"","../webpack://typescript-action/external node-commonjs \"querystring\"","../webpack://typescript-action/external node-commonjs \"stream\"","../webpack://typescript-action/external node-commonjs \"stream/web\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"url\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"util/types\"","../webpack://typescript-action/external node-commonjs \"zlib\"","../webpack://typescript-action/./node_modules/js-yaml/dist/js-yaml.mjs","../webpack://typescript-action/./node_modules/openapi-typescript/dist/utils.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/load.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/schema.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/headers.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/parameters.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/request.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/responses.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/operation.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/paths.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/transform/index.js","../webpack://typescript-action/./node_modules/openapi-typescript/dist/index.js","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/define property getters","../webpack://typescript-action/webpack/runtime/hasOwnProperty shorthand","../webpack://typescript-action/webpack/runtime/make namespace object","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst promises_1 = __importDefault(require(\"node:fs/promises\"));\nconst util_1 = require(\"util\");\nconst openapi_typescript_1 = __importDefault(require(\"openapi-typescript\"));\nasync function run() {\n // async function run() {\n const repo = core.getInput('repo') || github.context.repo.repo;\n const path = core.getInput('spec-path');\n const outputPath = core.getInput('def-path');\n const token = core.getInput('github-token');\n // const repo = process.env.REPO || 'api-deux'\n // const path = process.env.SPEC_PATH || 'openapi/api.json'\n // const outputPath = process.env.DEF_PATH || 'openapi-types.ts'\n // const token = process.env.GITHUB_TOKEN\n try {\n const octokit = github.getOctokit(token || '');\n const response = await octokit.rest.repos.getContent({\n owner: 'KittyCAD',\n repo,\n path,\n ref: 'main'\n });\n const specRaw = Buffer.from(response?.data?.content, \n // (response?.data)?.content,\n 'base64').toString('utf8');\n const spec = JSON.parse(specRaw);\n const output = await (0, openapi_typescript_1.default)(spec);\n await promises_1.default.writeFile(outputPath, output);\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n","'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n","'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'), require('./types/other'));\n","module.exports = {\"application/prs.cww\":[\"cww\"],\"application/vnd.1000minds.decision-model+xml\":[\"1km\"],\"application/vnd.3gpp.pic-bw-large\":[\"plb\"],\"application/vnd.3gpp.pic-bw-small\":[\"psb\"],\"application/vnd.3gpp.pic-bw-var\":[\"pvb\"],\"application/vnd.3gpp2.tcap\":[\"tcap\"],\"application/vnd.3m.post-it-notes\":[\"pwn\"],\"application/vnd.accpac.simply.aso\":[\"aso\"],\"application/vnd.accpac.simply.imp\":[\"imp\"],\"application/vnd.acucobol\":[\"acu\"],\"application/vnd.acucorp\":[\"atc\",\"acutc\"],\"application/vnd.adobe.air-application-installer-package+zip\":[\"air\"],\"application/vnd.adobe.formscentral.fcdt\":[\"fcdt\"],\"application/vnd.adobe.fxp\":[\"fxp\",\"fxpl\"],\"application/vnd.adobe.xdp+xml\":[\"xdp\"],\"application/vnd.adobe.xfdf\":[\"xfdf\"],\"application/vnd.ahead.space\":[\"ahead\"],\"application/vnd.airzip.filesecure.azf\":[\"azf\"],\"application/vnd.airzip.filesecure.azs\":[\"azs\"],\"application/vnd.amazon.ebook\":[\"azw\"],\"application/vnd.americandynamics.acc\":[\"acc\"],\"application/vnd.amiga.ami\":[\"ami\"],\"application/vnd.android.package-archive\":[\"apk\"],\"application/vnd.anser-web-certificate-issue-initiation\":[\"cii\"],\"application/vnd.anser-web-funds-transfer-initiation\":[\"fti\"],\"application/vnd.antix.game-component\":[\"atx\"],\"application/vnd.apple.installer+xml\":[\"mpkg\"],\"application/vnd.apple.keynote\":[\"key\"],\"application/vnd.apple.mpegurl\":[\"m3u8\"],\"application/vnd.apple.numbers\":[\"numbers\"],\"application/vnd.apple.pages\":[\"pages\"],\"application/vnd.apple.pkpass\":[\"pkpass\"],\"application/vnd.aristanetworks.swi\":[\"swi\"],\"application/vnd.astraea-software.iota\":[\"iota\"],\"application/vnd.audiograph\":[\"aep\"],\"application/vnd.balsamiq.bmml+xml\":[\"bmml\"],\"application/vnd.blueice.multipass\":[\"mpm\"],\"application/vnd.bmi\":[\"bmi\"],\"application/vnd.businessobjects\":[\"rep\"],\"application/vnd.chemdraw+xml\":[\"cdxml\"],\"application/vnd.chipnuts.karaoke-mmd\":[\"mmd\"],\"application/vnd.cinderella\":[\"cdy\"],\"application/vnd.citationstyles.style+xml\":[\"csl\"],\"application/vnd.claymore\":[\"cla\"],\"application/vnd.cloanto.rp9\":[\"rp9\"],\"application/vnd.clonk.c4group\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"],\"application/vnd.cluetrust.cartomobile-config\":[\"c11amc\"],\"application/vnd.cluetrust.cartomobile-config-pkg\":[\"c11amz\"],\"application/vnd.commonspace\":[\"csp\"],\"application/vnd.contact.cmsg\":[\"cdbcmsg\"],\"application/vnd.cosmocaller\":[\"cmc\"],\"application/vnd.crick.clicker\":[\"clkx\"],\"application/vnd.crick.clicker.keyboard\":[\"clkk\"],\"application/vnd.crick.clicker.palette\":[\"clkp\"],\"application/vnd.crick.clicker.template\":[\"clkt\"],\"application/vnd.crick.clicker.wordbank\":[\"clkw\"],\"application/vnd.criticaltools.wbs+xml\":[\"wbs\"],\"application/vnd.ctc-posml\":[\"pml\"],\"application/vnd.cups-ppd\":[\"ppd\"],\"application/vnd.curl.car\":[\"car\"],\"application/vnd.curl.pcurl\":[\"pcurl\"],\"application/vnd.dart\":[\"dart\"],\"application/vnd.data-vision.rdz\":[\"rdz\"],\"application/vnd.dbf\":[\"dbf\"],\"application/vnd.dece.data\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"],\"application/vnd.dece.ttml+xml\":[\"uvt\",\"uvvt\"],\"application/vnd.dece.unspecified\":[\"uvx\",\"uvvx\"],\"application/vnd.dece.zip\":[\"uvz\",\"uvvz\"],\"application/vnd.denovo.fcselayout-link\":[\"fe_launch\"],\"application/vnd.dna\":[\"dna\"],\"application/vnd.dolby.mlp\":[\"mlp\"],\"application/vnd.dpgraph\":[\"dpg\"],\"application/vnd.dreamfactory\":[\"dfac\"],\"application/vnd.ds-keypoint\":[\"kpxx\"],\"application/vnd.dvb.ait\":[\"ait\"],\"application/vnd.dvb.service\":[\"svc\"],\"application/vnd.dynageo\":[\"geo\"],\"application/vnd.ecowin.chart\":[\"mag\"],\"application/vnd.enliven\":[\"nml\"],\"application/vnd.epson.esf\":[\"esf\"],\"application/vnd.epson.msf\":[\"msf\"],\"application/vnd.epson.quickanime\":[\"qam\"],\"application/vnd.epson.salt\":[\"slt\"],\"application/vnd.epson.ssf\":[\"ssf\"],\"application/vnd.eszigno3+xml\":[\"es3\",\"et3\"],\"application/vnd.ezpix-album\":[\"ez2\"],\"application/vnd.ezpix-package\":[\"ez3\"],\"application/vnd.fdf\":[\"fdf\"],\"application/vnd.fdsn.mseed\":[\"mseed\"],\"application/vnd.fdsn.seed\":[\"seed\",\"dataless\"],\"application/vnd.flographit\":[\"gph\"],\"application/vnd.fluxtime.clip\":[\"ftc\"],\"application/vnd.framemaker\":[\"fm\",\"frame\",\"maker\",\"book\"],\"application/vnd.frogans.fnc\":[\"fnc\"],\"application/vnd.frogans.ltf\":[\"ltf\"],\"application/vnd.fsc.weblaunch\":[\"fsc\"],\"application/vnd.fujitsu.oasys\":[\"oas\"],\"application/vnd.fujitsu.oasys2\":[\"oa2\"],\"application/vnd.fujitsu.oasys3\":[\"oa3\"],\"application/vnd.fujitsu.oasysgp\":[\"fg5\"],\"application/vnd.fujitsu.oasysprs\":[\"bh2\"],\"application/vnd.fujixerox.ddd\":[\"ddd\"],\"application/vnd.fujixerox.docuworks\":[\"xdw\"],\"application/vnd.fujixerox.docuworks.binder\":[\"xbd\"],\"application/vnd.fuzzysheet\":[\"fzs\"],\"application/vnd.genomatix.tuxedo\":[\"txd\"],\"application/vnd.geogebra.file\":[\"ggb\"],\"application/vnd.geogebra.tool\":[\"ggt\"],\"application/vnd.geometry-explorer\":[\"gex\",\"gre\"],\"application/vnd.geonext\":[\"gxt\"],\"application/vnd.geoplan\":[\"g2w\"],\"application/vnd.geospace\":[\"g3w\"],\"application/vnd.gmx\":[\"gmx\"],\"application/vnd.google-apps.document\":[\"gdoc\"],\"application/vnd.google-apps.presentation\":[\"gslides\"],\"application/vnd.google-apps.spreadsheet\":[\"gsheet\"],\"application/vnd.google-earth.kml+xml\":[\"kml\"],\"application/vnd.google-earth.kmz\":[\"kmz\"],\"application/vnd.grafeq\":[\"gqf\",\"gqs\"],\"application/vnd.groove-account\":[\"gac\"],\"application/vnd.groove-help\":[\"ghf\"],\"application/vnd.groove-identity-message\":[\"gim\"],\"application/vnd.groove-injector\":[\"grv\"],\"application/vnd.groove-tool-message\":[\"gtm\"],\"application/vnd.groove-tool-template\":[\"tpl\"],\"application/vnd.groove-vcard\":[\"vcg\"],\"application/vnd.hal+xml\":[\"hal\"],\"application/vnd.handheld-entertainment+xml\":[\"zmm\"],\"application/vnd.hbci\":[\"hbci\"],\"application/vnd.hhe.lesson-player\":[\"les\"],\"application/vnd.hp-hpgl\":[\"hpgl\"],\"application/vnd.hp-hpid\":[\"hpid\"],\"application/vnd.hp-hps\":[\"hps\"],\"application/vnd.hp-jlyt\":[\"jlt\"],\"application/vnd.hp-pcl\":[\"pcl\"],\"application/vnd.hp-pclxl\":[\"pclxl\"],\"application/vnd.hydrostatix.sof-data\":[\"sfd-hdstx\"],\"application/vnd.ibm.minipay\":[\"mpy\"],\"application/vnd.ibm.modcap\":[\"afp\",\"listafp\",\"list3820\"],\"application/vnd.ibm.rights-management\":[\"irm\"],\"application/vnd.ibm.secure-container\":[\"sc\"],\"application/vnd.iccprofile\":[\"icc\",\"icm\"],\"application/vnd.igloader\":[\"igl\"],\"application/vnd.immervision-ivp\":[\"ivp\"],\"application/vnd.immervision-ivu\":[\"ivu\"],\"application/vnd.insors.igm\":[\"igm\"],\"application/vnd.intercon.formnet\":[\"xpw\",\"xpx\"],\"application/vnd.intergeo\":[\"i2g\"],\"application/vnd.intu.qbo\":[\"qbo\"],\"application/vnd.intu.qfx\":[\"qfx\"],\"application/vnd.ipunplugged.rcprofile\":[\"rcprofile\"],\"application/vnd.irepository.package+xml\":[\"irp\"],\"application/vnd.is-xpr\":[\"xpr\"],\"application/vnd.isac.fcs\":[\"fcs\"],\"application/vnd.jam\":[\"jam\"],\"application/vnd.jcp.javame.midlet-rms\":[\"rms\"],\"application/vnd.jisp\":[\"jisp\"],\"application/vnd.joost.joda-archive\":[\"joda\"],\"application/vnd.kahootz\":[\"ktz\",\"ktr\"],\"application/vnd.kde.karbon\":[\"karbon\"],\"application/vnd.kde.kchart\":[\"chrt\"],\"application/vnd.kde.kformula\":[\"kfo\"],\"application/vnd.kde.kivio\":[\"flw\"],\"application/vnd.kde.kontour\":[\"kon\"],\"application/vnd.kde.kpresenter\":[\"kpr\",\"kpt\"],\"application/vnd.kde.kspread\":[\"ksp\"],\"application/vnd.kde.kword\":[\"kwd\",\"kwt\"],\"application/vnd.kenameaapp\":[\"htke\"],\"application/vnd.kidspiration\":[\"kia\"],\"application/vnd.kinar\":[\"kne\",\"knp\"],\"application/vnd.koan\":[\"skp\",\"skd\",\"skt\",\"skm\"],\"application/vnd.kodak-descriptor\":[\"sse\"],\"application/vnd.las.las+xml\":[\"lasxml\"],\"application/vnd.llamagraphics.life-balance.desktop\":[\"lbd\"],\"application/vnd.llamagraphics.life-balance.exchange+xml\":[\"lbe\"],\"application/vnd.lotus-1-2-3\":[\"123\"],\"application/vnd.lotus-approach\":[\"apr\"],\"application/vnd.lotus-freelance\":[\"pre\"],\"application/vnd.lotus-notes\":[\"nsf\"],\"application/vnd.lotus-organizer\":[\"org\"],\"application/vnd.lotus-screencam\":[\"scm\"],\"application/vnd.lotus-wordpro\":[\"lwp\"],\"application/vnd.macports.portpkg\":[\"portpkg\"],\"application/vnd.mapbox-vector-tile\":[\"mvt\"],\"application/vnd.mcd\":[\"mcd\"],\"application/vnd.medcalcdata\":[\"mc1\"],\"application/vnd.mediastation.cdkey\":[\"cdkey\"],\"application/vnd.mfer\":[\"mwf\"],\"application/vnd.mfmp\":[\"mfm\"],\"application/vnd.micrografx.flo\":[\"flo\"],\"application/vnd.micrografx.igx\":[\"igx\"],\"application/vnd.mif\":[\"mif\"],\"application/vnd.mobius.daf\":[\"daf\"],\"application/vnd.mobius.dis\":[\"dis\"],\"application/vnd.mobius.mbk\":[\"mbk\"],\"application/vnd.mobius.mqy\":[\"mqy\"],\"application/vnd.mobius.msl\":[\"msl\"],\"application/vnd.mobius.plc\":[\"plc\"],\"application/vnd.mobius.txf\":[\"txf\"],\"application/vnd.mophun.application\":[\"mpn\"],\"application/vnd.mophun.certificate\":[\"mpc\"],\"application/vnd.mozilla.xul+xml\":[\"xul\"],\"application/vnd.ms-artgalry\":[\"cil\"],\"application/vnd.ms-cab-compressed\":[\"cab\"],\"application/vnd.ms-excel\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"],\"application/vnd.ms-excel.addin.macroenabled.12\":[\"xlam\"],\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":[\"xlsb\"],\"application/vnd.ms-excel.sheet.macroenabled.12\":[\"xlsm\"],\"application/vnd.ms-excel.template.macroenabled.12\":[\"xltm\"],\"application/vnd.ms-fontobject\":[\"eot\"],\"application/vnd.ms-htmlhelp\":[\"chm\"],\"application/vnd.ms-ims\":[\"ims\"],\"application/vnd.ms-lrm\":[\"lrm\"],\"application/vnd.ms-officetheme\":[\"thmx\"],\"application/vnd.ms-outlook\":[\"msg\"],\"application/vnd.ms-pki.seccat\":[\"cat\"],\"application/vnd.ms-pki.stl\":[\"*stl\"],\"application/vnd.ms-powerpoint\":[\"ppt\",\"pps\",\"pot\"],\"application/vnd.ms-powerpoint.addin.macroenabled.12\":[\"ppam\"],\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":[\"pptm\"],\"application/vnd.ms-powerpoint.slide.macroenabled.12\":[\"sldm\"],\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":[\"ppsm\"],\"application/vnd.ms-powerpoint.template.macroenabled.12\":[\"potm\"],\"application/vnd.ms-project\":[\"mpp\",\"mpt\"],\"application/vnd.ms-word.document.macroenabled.12\":[\"docm\"],\"application/vnd.ms-word.template.macroenabled.12\":[\"dotm\"],\"application/vnd.ms-works\":[\"wps\",\"wks\",\"wcm\",\"wdb\"],\"application/vnd.ms-wpl\":[\"wpl\"],\"application/vnd.ms-xpsdocument\":[\"xps\"],\"application/vnd.mseq\":[\"mseq\"],\"application/vnd.musician\":[\"mus\"],\"application/vnd.muvee.style\":[\"msty\"],\"application/vnd.mynfc\":[\"taglet\"],\"application/vnd.neurolanguage.nlu\":[\"nlu\"],\"application/vnd.nitf\":[\"ntf\",\"nitf\"],\"application/vnd.noblenet-directory\":[\"nnd\"],\"application/vnd.noblenet-sealer\":[\"nns\"],\"application/vnd.noblenet-web\":[\"nnw\"],\"application/vnd.nokia.n-gage.ac+xml\":[\"*ac\"],\"application/vnd.nokia.n-gage.data\":[\"ngdat\"],\"application/vnd.nokia.n-gage.symbian.install\":[\"n-gage\"],\"application/vnd.nokia.radio-preset\":[\"rpst\"],\"application/vnd.nokia.radio-presets\":[\"rpss\"],\"application/vnd.novadigm.edm\":[\"edm\"],\"application/vnd.novadigm.edx\":[\"edx\"],\"application/vnd.novadigm.ext\":[\"ext\"],\"application/vnd.oasis.opendocument.chart\":[\"odc\"],\"application/vnd.oasis.opendocument.chart-template\":[\"otc\"],\"application/vnd.oasis.opendocument.database\":[\"odb\"],\"application/vnd.oasis.opendocument.formula\":[\"odf\"],\"application/vnd.oasis.opendocument.formula-template\":[\"odft\"],\"application/vnd.oasis.opendocument.graphics\":[\"odg\"],\"application/vnd.oasis.opendocument.graphics-template\":[\"otg\"],\"application/vnd.oasis.opendocument.image\":[\"odi\"],\"application/vnd.oasis.opendocument.image-template\":[\"oti\"],\"application/vnd.oasis.opendocument.presentation\":[\"odp\"],\"application/vnd.oasis.opendocument.presentation-template\":[\"otp\"],\"application/vnd.oasis.opendocument.spreadsheet\":[\"ods\"],\"application/vnd.oasis.opendocument.spreadsheet-template\":[\"ots\"],\"application/vnd.oasis.opendocument.text\":[\"odt\"],\"application/vnd.oasis.opendocument.text-master\":[\"odm\"],\"application/vnd.oasis.opendocument.text-template\":[\"ott\"],\"application/vnd.oasis.opendocument.text-web\":[\"oth\"],\"application/vnd.olpc-sugar\":[\"xo\"],\"application/vnd.oma.dd2+xml\":[\"dd2\"],\"application/vnd.openblox.game+xml\":[\"obgx\"],\"application/vnd.openofficeorg.extension\":[\"oxt\"],\"application/vnd.openstreetmap.data+xml\":[\"osm\"],\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":[\"pptx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slide\":[\"sldx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":[\"ppsx\"],\"application/vnd.openxmlformats-officedocument.presentationml.template\":[\"potx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":[\"xlsx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":[\"xltx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":[\"docx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":[\"dotx\"],\"application/vnd.osgeo.mapguide.package\":[\"mgp\"],\"application/vnd.osgi.dp\":[\"dp\"],\"application/vnd.osgi.subsystem\":[\"esa\"],\"application/vnd.palm\":[\"pdb\",\"pqa\",\"oprc\"],\"application/vnd.pawaafile\":[\"paw\"],\"application/vnd.pg.format\":[\"str\"],\"application/vnd.pg.osasli\":[\"ei6\"],\"application/vnd.picsel\":[\"efif\"],\"application/vnd.pmi.widget\":[\"wg\"],\"application/vnd.pocketlearn\":[\"plf\"],\"application/vnd.powerbuilder6\":[\"pbd\"],\"application/vnd.previewsystems.box\":[\"box\"],\"application/vnd.proteus.magazine\":[\"mgz\"],\"application/vnd.publishare-delta-tree\":[\"qps\"],\"application/vnd.pvi.ptid1\":[\"ptid\"],\"application/vnd.quark.quarkxpress\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"],\"application/vnd.rar\":[\"rar\"],\"application/vnd.realvnc.bed\":[\"bed\"],\"application/vnd.recordare.musicxml\":[\"mxl\"],\"application/vnd.recordare.musicxml+xml\":[\"musicxml\"],\"application/vnd.rig.cryptonote\":[\"cryptonote\"],\"application/vnd.rim.cod\":[\"cod\"],\"application/vnd.rn-realmedia\":[\"rm\"],\"application/vnd.rn-realmedia-vbr\":[\"rmvb\"],\"application/vnd.route66.link66+xml\":[\"link66\"],\"application/vnd.sailingtracker.track\":[\"st\"],\"application/vnd.seemail\":[\"see\"],\"application/vnd.sema\":[\"sema\"],\"application/vnd.semd\":[\"semd\"],\"application/vnd.semf\":[\"semf\"],\"application/vnd.shana.informed.formdata\":[\"ifm\"],\"application/vnd.shana.informed.formtemplate\":[\"itp\"],\"application/vnd.shana.informed.interchange\":[\"iif\"],\"application/vnd.shana.informed.package\":[\"ipk\"],\"application/vnd.simtech-mindmapper\":[\"twd\",\"twds\"],\"application/vnd.smaf\":[\"mmf\"],\"application/vnd.smart.teacher\":[\"teacher\"],\"application/vnd.software602.filler.form+xml\":[\"fo\"],\"application/vnd.solent.sdkm+xml\":[\"sdkm\",\"sdkd\"],\"application/vnd.spotfire.dxp\":[\"dxp\"],\"application/vnd.spotfire.sfs\":[\"sfs\"],\"application/vnd.stardivision.calc\":[\"sdc\"],\"application/vnd.stardivision.draw\":[\"sda\"],\"application/vnd.stardivision.impress\":[\"sdd\"],\"application/vnd.stardivision.math\":[\"smf\"],\"application/vnd.stardivision.writer\":[\"sdw\",\"vor\"],\"application/vnd.stardivision.writer-global\":[\"sgl\"],\"application/vnd.stepmania.package\":[\"smzip\"],\"application/vnd.stepmania.stepchart\":[\"sm\"],\"application/vnd.sun.wadl+xml\":[\"wadl\"],\"application/vnd.sun.xml.calc\":[\"sxc\"],\"application/vnd.sun.xml.calc.template\":[\"stc\"],\"application/vnd.sun.xml.draw\":[\"sxd\"],\"application/vnd.sun.xml.draw.template\":[\"std\"],\"application/vnd.sun.xml.impress\":[\"sxi\"],\"application/vnd.sun.xml.impress.template\":[\"sti\"],\"application/vnd.sun.xml.math\":[\"sxm\"],\"application/vnd.sun.xml.writer\":[\"sxw\"],\"application/vnd.sun.xml.writer.global\":[\"sxg\"],\"application/vnd.sun.xml.writer.template\":[\"stw\"],\"application/vnd.sus-calendar\":[\"sus\",\"susp\"],\"application/vnd.svd\":[\"svd\"],\"application/vnd.symbian.install\":[\"sis\",\"sisx\"],\"application/vnd.syncml+xml\":[\"xsm\"],\"application/vnd.syncml.dm+wbxml\":[\"bdm\"],\"application/vnd.syncml.dm+xml\":[\"xdm\"],\"application/vnd.syncml.dmddf+xml\":[\"ddf\"],\"application/vnd.tao.intent-module-archive\":[\"tao\"],\"application/vnd.tcpdump.pcap\":[\"pcap\",\"cap\",\"dmp\"],\"application/vnd.tmobile-livetv\":[\"tmo\"],\"application/vnd.trid.tpt\":[\"tpt\"],\"application/vnd.triscape.mxs\":[\"mxs\"],\"application/vnd.trueapp\":[\"tra\"],\"application/vnd.ufdl\":[\"ufd\",\"ufdl\"],\"application/vnd.uiq.theme\":[\"utz\"],\"application/vnd.umajin\":[\"umj\"],\"application/vnd.unity\":[\"unityweb\"],\"application/vnd.uoml+xml\":[\"uoml\"],\"application/vnd.vcx\":[\"vcx\"],\"application/vnd.visio\":[\"vsd\",\"vst\",\"vss\",\"vsw\"],\"application/vnd.visionary\":[\"vis\"],\"application/vnd.vsf\":[\"vsf\"],\"application/vnd.wap.wbxml\":[\"wbxml\"],\"application/vnd.wap.wmlc\":[\"wmlc\"],\"application/vnd.wap.wmlscriptc\":[\"wmlsc\"],\"application/vnd.webturbo\":[\"wtb\"],\"application/vnd.wolfram.player\":[\"nbp\"],\"application/vnd.wordperfect\":[\"wpd\"],\"application/vnd.wqd\":[\"wqd\"],\"application/vnd.wt.stf\":[\"stf\"],\"application/vnd.xara\":[\"xar\"],\"application/vnd.xfdl\":[\"xfdl\"],\"application/vnd.yamaha.hv-dic\":[\"hvd\"],\"application/vnd.yamaha.hv-script\":[\"hvs\"],\"application/vnd.yamaha.hv-voice\":[\"hvp\"],\"application/vnd.yamaha.openscoreformat\":[\"osf\"],\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":[\"osfpvg\"],\"application/vnd.yamaha.smaf-audio\":[\"saf\"],\"application/vnd.yamaha.smaf-phrase\":[\"spf\"],\"application/vnd.yellowriver-custom-menu\":[\"cmp\"],\"application/vnd.zul\":[\"zir\",\"zirz\"],\"application/vnd.zzazz.deck+xml\":[\"zaz\"],\"application/x-7z-compressed\":[\"7z\"],\"application/x-abiword\":[\"abw\"],\"application/x-ace-compressed\":[\"ace\"],\"application/x-apple-diskimage\":[\"*dmg\"],\"application/x-arj\":[\"arj\"],\"application/x-authorware-bin\":[\"aab\",\"x32\",\"u32\",\"vox\"],\"application/x-authorware-map\":[\"aam\"],\"application/x-authorware-seg\":[\"aas\"],\"application/x-bcpio\":[\"bcpio\"],\"application/x-bdoc\":[\"*bdoc\"],\"application/x-bittorrent\":[\"torrent\"],\"application/x-blorb\":[\"blb\",\"blorb\"],\"application/x-bzip\":[\"bz\"],\"application/x-bzip2\":[\"bz2\",\"boz\"],\"application/x-cbr\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"],\"application/x-cdlink\":[\"vcd\"],\"application/x-cfs-compressed\":[\"cfs\"],\"application/x-chat\":[\"chat\"],\"application/x-chess-pgn\":[\"pgn\"],\"application/x-chrome-extension\":[\"crx\"],\"application/x-cocoa\":[\"cco\"],\"application/x-conference\":[\"nsc\"],\"application/x-cpio\":[\"cpio\"],\"application/x-csh\":[\"csh\"],\"application/x-debian-package\":[\"*deb\",\"udeb\"],\"application/x-dgc-compressed\":[\"dgc\"],\"application/x-director\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"],\"application/x-doom\":[\"wad\"],\"application/x-dtbncx+xml\":[\"ncx\"],\"application/x-dtbook+xml\":[\"dtb\"],\"application/x-dtbresource+xml\":[\"res\"],\"application/x-dvi\":[\"dvi\"],\"application/x-envoy\":[\"evy\"],\"application/x-eva\":[\"eva\"],\"application/x-font-bdf\":[\"bdf\"],\"application/x-font-ghostscript\":[\"gsf\"],\"application/x-font-linux-psf\":[\"psf\"],\"application/x-font-pcf\":[\"pcf\"],\"application/x-font-snf\":[\"snf\"],\"application/x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"application/x-freearc\":[\"arc\"],\"application/x-futuresplash\":[\"spl\"],\"application/x-gca-compressed\":[\"gca\"],\"application/x-glulx\":[\"ulx\"],\"application/x-gnumeric\":[\"gnumeric\"],\"application/x-gramps-xml\":[\"gramps\"],\"application/x-gtar\":[\"gtar\"],\"application/x-hdf\":[\"hdf\"],\"application/x-httpd-php\":[\"php\"],\"application/x-install-instructions\":[\"install\"],\"application/x-iso9660-image\":[\"*iso\"],\"application/x-iwork-keynote-sffkey\":[\"*key\"],\"application/x-iwork-numbers-sffnumbers\":[\"*numbers\"],\"application/x-iwork-pages-sffpages\":[\"*pages\"],\"application/x-java-archive-diff\":[\"jardiff\"],\"application/x-java-jnlp-file\":[\"jnlp\"],\"application/x-keepass2\":[\"kdbx\"],\"application/x-latex\":[\"latex\"],\"application/x-lua-bytecode\":[\"luac\"],\"application/x-lzh-compressed\":[\"lzh\",\"lha\"],\"application/x-makeself\":[\"run\"],\"application/x-mie\":[\"mie\"],\"application/x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"application/x-ms-application\":[\"application\"],\"application/x-ms-shortcut\":[\"lnk\"],\"application/x-ms-wmd\":[\"wmd\"],\"application/x-ms-wmz\":[\"wmz\"],\"application/x-ms-xbap\":[\"xbap\"],\"application/x-msaccess\":[\"mdb\"],\"application/x-msbinder\":[\"obd\"],\"application/x-mscardfile\":[\"crd\"],\"application/x-msclip\":[\"clp\"],\"application/x-msdos-program\":[\"*exe\"],\"application/x-msdownload\":[\"*exe\",\"*dll\",\"com\",\"bat\",\"*msi\"],\"application/x-msmediaview\":[\"mvb\",\"m13\",\"m14\"],\"application/x-msmetafile\":[\"*wmf\",\"*wmz\",\"*emf\",\"emz\"],\"application/x-msmoney\":[\"mny\"],\"application/x-mspublisher\":[\"pub\"],\"application/x-msschedule\":[\"scd\"],\"application/x-msterminal\":[\"trm\"],\"application/x-mswrite\":[\"wri\"],\"application/x-netcdf\":[\"nc\",\"cdf\"],\"application/x-ns-proxy-autoconfig\":[\"pac\"],\"application/x-nzb\":[\"nzb\"],\"application/x-perl\":[\"pl\",\"pm\"],\"application/x-pilot\":[\"*prc\",\"*pdb\"],\"application/x-pkcs12\":[\"p12\",\"pfx\"],\"application/x-pkcs7-certificates\":[\"p7b\",\"spc\"],\"application/x-pkcs7-certreqresp\":[\"p7r\"],\"application/x-rar-compressed\":[\"*rar\"],\"application/x-redhat-package-manager\":[\"rpm\"],\"application/x-research-info-systems\":[\"ris\"],\"application/x-sea\":[\"sea\"],\"application/x-sh\":[\"sh\"],\"application/x-shar\":[\"shar\"],\"application/x-shockwave-flash\":[\"swf\"],\"application/x-silverlight-app\":[\"xap\"],\"application/x-sql\":[\"sql\"],\"application/x-stuffit\":[\"sit\"],\"application/x-stuffitx\":[\"sitx\"],\"application/x-subrip\":[\"srt\"],\"application/x-sv4cpio\":[\"sv4cpio\"],\"application/x-sv4crc\":[\"sv4crc\"],\"application/x-t3vm-image\":[\"t3\"],\"application/x-tads\":[\"gam\"],\"application/x-tar\":[\"tar\"],\"application/x-tcl\":[\"tcl\",\"tk\"],\"application/x-tex\":[\"tex\"],\"application/x-tex-tfm\":[\"tfm\"],\"application/x-texinfo\":[\"texinfo\",\"texi\"],\"application/x-tgif\":[\"*obj\"],\"application/x-ustar\":[\"ustar\"],\"application/x-virtualbox-hdd\":[\"hdd\"],\"application/x-virtualbox-ova\":[\"ova\"],\"application/x-virtualbox-ovf\":[\"ovf\"],\"application/x-virtualbox-vbox\":[\"vbox\"],\"application/x-virtualbox-vbox-extpack\":[\"vbox-extpack\"],\"application/x-virtualbox-vdi\":[\"vdi\"],\"application/x-virtualbox-vhd\":[\"vhd\"],\"application/x-virtualbox-vmdk\":[\"vmdk\"],\"application/x-wais-source\":[\"src\"],\"application/x-web-app-manifest+json\":[\"webapp\"],\"application/x-x509-ca-cert\":[\"der\",\"crt\",\"pem\"],\"application/x-xfig\":[\"fig\"],\"application/x-xliff+xml\":[\"*xlf\"],\"application/x-xpinstall\":[\"xpi\"],\"application/x-xz\":[\"xz\"],\"application/x-zmachine\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"],\"audio/vnd.dece.audio\":[\"uva\",\"uvva\"],\"audio/vnd.digital-winds\":[\"eol\"],\"audio/vnd.dra\":[\"dra\"],\"audio/vnd.dts\":[\"dts\"],\"audio/vnd.dts.hd\":[\"dtshd\"],\"audio/vnd.lucent.voice\":[\"lvp\"],\"audio/vnd.ms-playready.media.pya\":[\"pya\"],\"audio/vnd.nuera.ecelp4800\":[\"ecelp4800\"],\"audio/vnd.nuera.ecelp7470\":[\"ecelp7470\"],\"audio/vnd.nuera.ecelp9600\":[\"ecelp9600\"],\"audio/vnd.rip\":[\"rip\"],\"audio/x-aac\":[\"aac\"],\"audio/x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"audio/x-caf\":[\"caf\"],\"audio/x-flac\":[\"flac\"],\"audio/x-m4a\":[\"*m4a\"],\"audio/x-matroska\":[\"mka\"],\"audio/x-mpegurl\":[\"m3u\"],\"audio/x-ms-wax\":[\"wax\"],\"audio/x-ms-wma\":[\"wma\"],\"audio/x-pn-realaudio\":[\"ram\",\"ra\"],\"audio/x-pn-realaudio-plugin\":[\"rmp\"],\"audio/x-realaudio\":[\"*ra\"],\"audio/x-wav\":[\"*wav\"],\"chemical/x-cdx\":[\"cdx\"],\"chemical/x-cif\":[\"cif\"],\"chemical/x-cmdf\":[\"cmdf\"],\"chemical/x-cml\":[\"cml\"],\"chemical/x-csml\":[\"csml\"],\"chemical/x-xyz\":[\"xyz\"],\"image/prs.btif\":[\"btif\"],\"image/prs.pti\":[\"pti\"],\"image/vnd.adobe.photoshop\":[\"psd\"],\"image/vnd.airzip.accelerator.azv\":[\"azv\"],\"image/vnd.dece.graphic\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"],\"image/vnd.djvu\":[\"djvu\",\"djv\"],\"image/vnd.dvb.subtitle\":[\"*sub\"],\"image/vnd.dwg\":[\"dwg\"],\"image/vnd.dxf\":[\"dxf\"],\"image/vnd.fastbidsheet\":[\"fbs\"],\"image/vnd.fpx\":[\"fpx\"],\"image/vnd.fst\":[\"fst\"],\"image/vnd.fujixerox.edmics-mmr\":[\"mmr\"],\"image/vnd.fujixerox.edmics-rlc\":[\"rlc\"],\"image/vnd.microsoft.icon\":[\"ico\"],\"image/vnd.ms-dds\":[\"dds\"],\"image/vnd.ms-modi\":[\"mdi\"],\"image/vnd.ms-photo\":[\"wdp\"],\"image/vnd.net-fpx\":[\"npx\"],\"image/vnd.pco.b16\":[\"b16\"],\"image/vnd.tencent.tap\":[\"tap\"],\"image/vnd.valve.source.texture\":[\"vtf\"],\"image/vnd.wap.wbmp\":[\"wbmp\"],\"image/vnd.xiff\":[\"xif\"],\"image/vnd.zbrush.pcx\":[\"pcx\"],\"image/x-3ds\":[\"3ds\"],\"image/x-cmu-raster\":[\"ras\"],\"image/x-cmx\":[\"cmx\"],\"image/x-freehand\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"],\"image/x-icon\":[\"*ico\"],\"image/x-jng\":[\"jng\"],\"image/x-mrsid-image\":[\"sid\"],\"image/x-ms-bmp\":[\"*bmp\"],\"image/x-pcx\":[\"*pcx\"],\"image/x-pict\":[\"pic\",\"pct\"],\"image/x-portable-anymap\":[\"pnm\"],\"image/x-portable-bitmap\":[\"pbm\"],\"image/x-portable-graymap\":[\"pgm\"],\"image/x-portable-pixmap\":[\"ppm\"],\"image/x-rgb\":[\"rgb\"],\"image/x-tga\":[\"tga\"],\"image/x-xbitmap\":[\"xbm\"],\"image/x-xpixmap\":[\"xpm\"],\"image/x-xwindowdump\":[\"xwd\"],\"message/vnd.wfa.wsc\":[\"wsc\"],\"model/vnd.collada+xml\":[\"dae\"],\"model/vnd.dwf\":[\"dwf\"],\"model/vnd.gdl\":[\"gdl\"],\"model/vnd.gtw\":[\"gtw\"],\"model/vnd.mts\":[\"mts\"],\"model/vnd.opengex\":[\"ogex\"],\"model/vnd.parasolid.transmit.binary\":[\"x_b\"],\"model/vnd.parasolid.transmit.text\":[\"x_t\"],\"model/vnd.sap.vds\":[\"vds\"],\"model/vnd.usdz+zip\":[\"usdz\"],\"model/vnd.valve.source.compiled-map\":[\"bsp\"],\"model/vnd.vtu\":[\"vtu\"],\"text/prs.lines.tag\":[\"dsc\"],\"text/vnd.curl\":[\"curl\"],\"text/vnd.curl.dcurl\":[\"dcurl\"],\"text/vnd.curl.mcurl\":[\"mcurl\"],\"text/vnd.curl.scurl\":[\"scurl\"],\"text/vnd.dvb.subtitle\":[\"sub\"],\"text/vnd.fly\":[\"fly\"],\"text/vnd.fmi.flexstor\":[\"flx\"],\"text/vnd.graphviz\":[\"gv\"],\"text/vnd.in3d.3dml\":[\"3dml\"],\"text/vnd.in3d.spot\":[\"spot\"],\"text/vnd.sun.j2me.app-descriptor\":[\"jad\"],\"text/vnd.wap.wml\":[\"wml\"],\"text/vnd.wap.wmlscript\":[\"wmls\"],\"text/x-asm\":[\"s\",\"asm\"],\"text/x-c\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"],\"text/x-component\":[\"htc\"],\"text/x-fortran\":[\"f\",\"for\",\"f77\",\"f90\"],\"text/x-handlebars-template\":[\"hbs\"],\"text/x-java-source\":[\"java\"],\"text/x-lua\":[\"lua\"],\"text/x-markdown\":[\"mkd\"],\"text/x-nfo\":[\"nfo\"],\"text/x-opml\":[\"opml\"],\"text/x-org\":[\"*org\"],\"text/x-pascal\":[\"p\",\"pas\"],\"text/x-processing\":[\"pde\"],\"text/x-sass\":[\"sass\"],\"text/x-scss\":[\"scss\"],\"text/x-setext\":[\"etx\"],\"text/x-sfv\":[\"sfv\"],\"text/x-suse-ymp\":[\"ymp\"],\"text/x-uuencode\":[\"uu\"],\"text/x-vcalendar\":[\"vcs\"],\"text/x-vcard\":[\"vcf\"],\"video/vnd.dece.hd\":[\"uvh\",\"uvvh\"],\"video/vnd.dece.mobile\":[\"uvm\",\"uvvm\"],\"video/vnd.dece.pd\":[\"uvp\",\"uvvp\"],\"video/vnd.dece.sd\":[\"uvs\",\"uvvs\"],\"video/vnd.dece.video\":[\"uvv\",\"uvvv\"],\"video/vnd.dvb.file\":[\"dvb\"],\"video/vnd.fvt\":[\"fvt\"],\"video/vnd.mpegurl\":[\"mxu\",\"m4u\"],\"video/vnd.ms-playready.media.pyv\":[\"pyv\"],\"video/vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"video/vnd.vivo\":[\"viv\"],\"video/x-f4v\":[\"f4v\"],\"video/x-fli\":[\"fli\"],\"video/x-flv\":[\"flv\"],\"video/x-m4v\":[\"m4v\"],\"video/x-matroska\":[\"mkv\",\"mk3d\",\"mks\"],\"video/x-mng\":[\"mng\"],\"video/x-ms-asf\":[\"asf\",\"asx\"],\"video/x-ms-vob\":[\"vob\"],\"video/x-ms-wm\":[\"wm\"],\"video/x-ms-wmv\":[\"wmv\"],\"video/x-ms-wmx\":[\"wmx\"],\"video/x-ms-wvx\":[\"wvx\"],\"video/x-msvideo\":[\"avi\"],\"video/x-sgi-movie\":[\"movie\"],\"video/x-smv\":[\"smv\"],\"x-conference/x-cooltalk\":[\"ice\"]};","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","(function (factory) {\n if (typeof exports === \"object\" && typeof module === \"object\") {\n module.exports = factory();\n } else if (typeof define === \"function\" && define.amd) {\n define(factory);\n } else {\n var root =\n typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof global !== \"undefined\"\n ? global\n : typeof self !== \"undefined\"\n ? self\n : this || {};\n root.doc = factory();\n }\n})(function() {\n \"use strict\";\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n };\n\n // dist/_doc.js.umd.js\n var require_doc_js_umd = __commonJS({\n \"dist/_doc.js.umd.js\"(exports, module) {\n var __create = Object.create;\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames2 = Object.getOwnPropertyNames;\n var __getProtoOf = Object.getPrototypeOf;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res;\n };\n var __commonJS2 = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = {\n exports: {}\n }).exports, mod), mod.exports;\n };\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames2(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n };\n var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n value: mod,\n enumerable: true\n }) : target, mod));\n var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", {\n value: true\n }), mod);\n var init_define_process = __esm({\n \"\"() {\n }\n });\n var require_doc_builders = __commonJS2({\n \"src/document/doc-builders.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n function concat(parts) {\n if (false) {\n for (const part of parts) {\n assertDoc(part);\n }\n }\n return {\n type: \"concat\",\n parts\n };\n }\n function indent(contents) {\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"indent\",\n contents\n };\n }\n function align(widthOrString, contents) {\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"align\",\n contents,\n n: widthOrString\n };\n }\n function group(contents) {\n let opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"group\",\n id: opts.id,\n contents,\n break: Boolean(opts.shouldBreak),\n expandedStates: opts.expandedStates\n };\n }\n function dedentToRoot(contents) {\n return align(Number.NEGATIVE_INFINITY, contents);\n }\n function markAsRoot(contents) {\n return align({\n type: \"root\"\n }, contents);\n }\n function dedent(contents) {\n return align(-1, contents);\n }\n function conditionalGroup(states, opts) {\n return group(states[0], Object.assign(Object.assign({}, opts), {}, {\n expandedStates: states\n }));\n }\n function fill(parts) {\n if (false) {\n for (const part of parts) {\n assertDoc(part);\n }\n }\n return {\n type: \"fill\",\n parts\n };\n }\n function ifBreak(breakContents, flatContents) {\n let opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n if (false) {\n if (breakContents) {\n assertDoc(breakContents);\n }\n if (flatContents) {\n assertDoc(flatContents);\n }\n }\n return {\n type: \"if-break\",\n breakContents,\n flatContents,\n groupId: opts.groupId\n };\n }\n function indentIfBreak(contents, opts) {\n return {\n type: \"indent-if-break\",\n contents,\n groupId: opts.groupId,\n negate: opts.negate\n };\n }\n function lineSuffix(contents) {\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"line-suffix\",\n contents\n };\n }\n var lineSuffixBoundary = {\n type: \"line-suffix-boundary\"\n };\n var breakParent = {\n type: \"break-parent\"\n };\n var trim = {\n type: \"trim\"\n };\n var hardlineWithoutBreakParent = {\n type: \"line\",\n hard: true\n };\n var literallineWithoutBreakParent = {\n type: \"line\",\n hard: true,\n literal: true\n };\n var line = {\n type: \"line\"\n };\n var softline = {\n type: \"line\",\n soft: true\n };\n var hardline = concat([hardlineWithoutBreakParent, breakParent]);\n var literalline = concat([literallineWithoutBreakParent, breakParent]);\n var cursor = {\n type: \"cursor\",\n placeholder: Symbol(\"cursor\")\n };\n function join(sep, arr) {\n const res = [];\n for (let i = 0; i < arr.length; i++) {\n if (i !== 0) {\n res.push(sep);\n }\n res.push(arr[i]);\n }\n return concat(res);\n }\n function addAlignmentToDoc(doc, size, tabWidth) {\n let aligned = doc;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n }\n function label(label2, contents) {\n return {\n type: \"label\",\n label: label2,\n contents\n };\n }\n module2.exports = {\n concat,\n join,\n line,\n softline,\n hardline,\n literalline,\n group,\n conditionalGroup,\n fill,\n lineSuffix,\n lineSuffixBoundary,\n cursor,\n breakParent,\n ifBreak,\n trim,\n indent,\n indentIfBreak,\n align,\n addAlignmentToDoc,\n markAsRoot,\n dedentToRoot,\n dedent,\n hardlineWithoutBreakParent,\n literallineWithoutBreakParent,\n label\n };\n }\n });\n var require_end_of_line = __commonJS2({\n \"src/common/end-of-line.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n function guessEndOfLine(text) {\n const index = text.indexOf(\"\\r\");\n if (index >= 0) {\n return text.charAt(index + 1) === \"\\n\" ? \"crlf\" : \"cr\";\n }\n return \"lf\";\n }\n function convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\n\";\n }\n }\n function countEndOfLineChars(text, eol) {\n let regex;\n switch (eol) {\n case \"\\n\":\n regex = /\\n/g;\n break;\n case \"\\r\":\n regex = /\\r/g;\n break;\n case \"\\r\\n\":\n regex = /\\r\\n/g;\n break;\n default:\n throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(eol), \".\"));\n }\n const endOfLines = text.match(regex);\n return endOfLines ? endOfLines.length : 0;\n }\n function normalizeEndOfLine(text) {\n return text.replace(/\\r\\n?/g, \"\\n\");\n }\n module2.exports = {\n guessEndOfLine,\n convertEndOfLineToChars,\n countEndOfLineChars,\n normalizeEndOfLine\n };\n }\n });\n var require_get_last = __commonJS2({\n \"src/utils/get-last.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var getLast = (arr) => arr[arr.length - 1];\n module2.exports = getLast;\n }\n });\n function ansiRegex() {\n let {\n onlyFirst = false\n } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n const pattern = [\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\", \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");\n return new RegExp(pattern, onlyFirst ? void 0 : \"g\");\n }\n var init_ansi_regex = __esm({\n \"node_modules/strip-ansi/node_modules/ansi-regex/index.js\"() {\n init_define_process();\n }\n });\n function stripAnsi(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a `string`, got `\".concat(typeof string, \"`\"));\n }\n return string.replace(ansiRegex(), \"\");\n }\n var init_strip_ansi = __esm({\n \"node_modules/strip-ansi/index.js\"() {\n init_define_process();\n init_ansi_regex();\n }\n });\n function isFullwidthCodePoint(codePoint) {\n if (!Number.isInteger(codePoint)) {\n return false;\n }\n return codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141);\n }\n var init_is_fullwidth_code_point = __esm({\n \"node_modules/is-fullwidth-code-point/index.js\"() {\n init_define_process();\n }\n });\n var require_emoji_regex = __commonJS2({\n \"node_modules/emoji-regex/index.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n module2.exports = function() {\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n };\n }\n });\n var string_width_exports = {};\n __export(string_width_exports, {\n default: () => stringWidth\n });\n function stringWidth(string) {\n if (typeof string !== \"string\" || string.length === 0) {\n return 0;\n }\n string = stripAnsi(string);\n if (string.length === 0) {\n return 0;\n }\n string = string.replace((0, import_emoji_regex.default)(), \" \");\n let width = 0;\n for (let index = 0; index < string.length; index++) {\n const codePoint = string.codePointAt(index);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n if (codePoint > 65535) {\n index++;\n }\n width += isFullwidthCodePoint(codePoint) ? 2 : 1;\n }\n return width;\n }\n var import_emoji_regex;\n var init_string_width = __esm({\n \"node_modules/string-width/index.js\"() {\n init_define_process();\n init_strip_ansi();\n init_is_fullwidth_code_point();\n import_emoji_regex = __toESM(require_emoji_regex());\n }\n });\n var require_get_string_width = __commonJS2({\n \"src/utils/get-string-width.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var stringWidth2 = (init_string_width(), __toCommonJS(string_width_exports)).default;\n var notAsciiRegex = /[^\\x20-\\x7F]/;\n function getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n return stringWidth2(text);\n }\n module2.exports = getStringWidth;\n }\n });\n var require_doc_utils = __commonJS2({\n \"src/document/doc-utils.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var getLast = require_get_last();\n var {\n literalline,\n join\n } = require_doc_builders();\n var isConcat = (doc) => Array.isArray(doc) || doc && doc.type === \"concat\";\n var getDocParts = (doc) => {\n if (Array.isArray(doc)) {\n return doc;\n }\n if (doc.type !== \"concat\" && doc.type !== \"fill\") {\n throw new Error(\"Expect doc type to be `concat` or `fill`.\");\n }\n return doc.parts;\n };\n var traverseDocOnExitStackMarker = {};\n function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {\n const docsStack = [doc];\n while (docsStack.length > 0) {\n const doc2 = docsStack.pop();\n if (doc2 === traverseDocOnExitStackMarker) {\n onExit(docsStack.pop());\n continue;\n }\n if (onExit) {\n docsStack.push(doc2, traverseDocOnExitStackMarker);\n }\n if (!onEnter || onEnter(doc2) !== false) {\n if (isConcat(doc2) || doc2.type === \"fill\") {\n const parts = getDocParts(doc2);\n for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(parts[i]);\n }\n } else if (doc2.type === \"if-break\") {\n if (doc2.flatContents) {\n docsStack.push(doc2.flatContents);\n }\n if (doc2.breakContents) {\n docsStack.push(doc2.breakContents);\n }\n } else if (doc2.type === \"group\" && doc2.expandedStates) {\n if (shouldTraverseConditionalGroups) {\n for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(doc2.expandedStates[i]);\n }\n } else {\n docsStack.push(doc2.contents);\n }\n } else if (doc2.contents) {\n docsStack.push(doc2.contents);\n }\n }\n }\n }\n function mapDoc(doc, cb) {\n const mapped = /* @__PURE__ */ new Map();\n return rec(doc);\n function rec(doc2) {\n if (mapped.has(doc2)) {\n return mapped.get(doc2);\n }\n const result = process2(doc2);\n mapped.set(doc2, result);\n return result;\n }\n function process2(doc2) {\n if (Array.isArray(doc2)) {\n return cb(doc2.map(rec));\n }\n if (doc2.type === \"concat\" || doc2.type === \"fill\") {\n const parts = doc2.parts.map(rec);\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n parts\n }));\n }\n if (doc2.type === \"if-break\") {\n const breakContents = doc2.breakContents && rec(doc2.breakContents);\n const flatContents = doc2.flatContents && rec(doc2.flatContents);\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n breakContents,\n flatContents\n }));\n }\n if (doc2.type === \"group\" && doc2.expandedStates) {\n const expandedStates = doc2.expandedStates.map(rec);\n const contents = expandedStates[0];\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n contents,\n expandedStates\n }));\n }\n if (doc2.contents) {\n const contents = rec(doc2.contents);\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n contents\n }));\n }\n return cb(doc2);\n }\n }\n function findInDoc(doc, fn, defaultValue) {\n let result = defaultValue;\n let hasStopped = false;\n function findInDocOnEnterFn(doc2) {\n const maybeResult = fn(doc2);\n if (maybeResult !== void 0) {\n hasStopped = true;\n result = maybeResult;\n }\n if (hasStopped) {\n return false;\n }\n }\n traverseDoc(doc, findInDocOnEnterFn);\n return result;\n }\n function willBreakFn(doc) {\n if (doc.type === \"group\" && doc.break) {\n return true;\n }\n if (doc.type === \"line\" && doc.hard) {\n return true;\n }\n if (doc.type === \"break-parent\") {\n return true;\n }\n }\n function willBreak(doc) {\n return findInDoc(doc, willBreakFn, false);\n }\n function breakParentGroup(groupStack) {\n if (groupStack.length > 0) {\n const parentGroup = getLast(groupStack);\n if (!parentGroup.expandedStates && !parentGroup.break) {\n parentGroup.break = \"propagated\";\n }\n }\n return null;\n }\n function propagateBreaks(doc) {\n const alreadyVisitedSet = /* @__PURE__ */ new Set();\n const groupStack = [];\n function propagateBreaksOnEnterFn(doc2) {\n if (doc2.type === \"break-parent\") {\n breakParentGroup(groupStack);\n }\n if (doc2.type === \"group\") {\n groupStack.push(doc2);\n if (alreadyVisitedSet.has(doc2)) {\n return false;\n }\n alreadyVisitedSet.add(doc2);\n }\n }\n function propagateBreaksOnExitFn(doc2) {\n if (doc2.type === \"group\") {\n const group = groupStack.pop();\n if (group.break) {\n breakParentGroup(groupStack);\n }\n }\n }\n traverseDoc(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, true);\n }\n function removeLinesFn(doc) {\n if (doc.type === \"line\" && !doc.hard) {\n return doc.soft ? \"\" : \" \";\n }\n if (doc.type === \"if-break\") {\n return doc.flatContents || \"\";\n }\n return doc;\n }\n function removeLines(doc) {\n return mapDoc(doc, removeLinesFn);\n }\n var isHardline = (doc, nextDoc) => doc && doc.type === \"line\" && doc.hard && nextDoc && nextDoc.type === \"break-parent\";\n function stripDocTrailingHardlineFromDoc(doc) {\n if (!doc) {\n return doc;\n }\n if (isConcat(doc) || doc.type === \"fill\") {\n const parts = getDocParts(doc);\n while (parts.length > 1 && isHardline(...parts.slice(-2))) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripDocTrailingHardlineFromDoc(getLast(parts));\n parts[parts.length - 1] = lastPart;\n }\n return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, {\n parts\n });\n }\n switch (doc.type) {\n case \"align\":\n case \"indent\":\n case \"indent-if-break\":\n case \"group\":\n case \"line-suffix\":\n case \"label\": {\n const contents = stripDocTrailingHardlineFromDoc(doc.contents);\n return Object.assign(Object.assign({}, doc), {}, {\n contents\n });\n }\n case \"if-break\": {\n const breakContents = stripDocTrailingHardlineFromDoc(doc.breakContents);\n const flatContents = stripDocTrailingHardlineFromDoc(doc.flatContents);\n return Object.assign(Object.assign({}, doc), {}, {\n breakContents,\n flatContents\n });\n }\n }\n return doc;\n }\n function stripTrailingHardline(doc) {\n return stripDocTrailingHardlineFromDoc(cleanDoc(doc));\n }\n function cleanDocFn(doc) {\n switch (doc.type) {\n case \"fill\":\n if (doc.parts.every((part) => part === \"\")) {\n return \"\";\n }\n break;\n case \"group\":\n if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {\n return \"\";\n }\n if (doc.contents.type === \"group\" && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {\n return doc.contents;\n }\n break;\n case \"align\":\n case \"indent\":\n case \"indent-if-break\":\n case \"line-suffix\":\n if (!doc.contents) {\n return \"\";\n }\n break;\n case \"if-break\":\n if (!doc.flatContents && !doc.breakContents) {\n return \"\";\n }\n break;\n }\n if (!isConcat(doc)) {\n return doc;\n }\n const parts = [];\n for (const part of getDocParts(doc)) {\n if (!part) {\n continue;\n }\n const [currentPart, ...restParts] = isConcat(part) ? getDocParts(part) : [part];\n if (typeof currentPart === \"string\" && typeof getLast(parts) === \"string\") {\n parts[parts.length - 1] += currentPart;\n } else {\n parts.push(currentPart);\n }\n parts.push(...restParts);\n }\n if (parts.length === 0) {\n return \"\";\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, {\n parts\n });\n }\n function cleanDoc(doc) {\n return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));\n }\n function normalizeParts(parts) {\n const newParts = [];\n const restParts = parts.filter(Boolean);\n while (restParts.length > 0) {\n const part = restParts.shift();\n if (!part) {\n continue;\n }\n if (isConcat(part)) {\n restParts.unshift(...getDocParts(part));\n continue;\n }\n if (newParts.length > 0 && typeof getLast(newParts) === \"string\" && typeof part === \"string\") {\n newParts[newParts.length - 1] += part;\n continue;\n }\n newParts.push(part);\n }\n return newParts;\n }\n function normalizeDoc(doc) {\n return mapDoc(doc, (currentDoc) => {\n if (Array.isArray(currentDoc)) {\n return normalizeParts(currentDoc);\n }\n if (!currentDoc.parts) {\n return currentDoc;\n }\n return Object.assign(Object.assign({}, currentDoc), {}, {\n parts: normalizeParts(currentDoc.parts)\n });\n });\n }\n function replaceEndOfLine(doc) {\n return mapDoc(doc, (currentDoc) => typeof currentDoc === \"string\" && currentDoc.includes(\"\\n\") ? replaceTextEndOfLine(currentDoc) : currentDoc);\n }\n function replaceTextEndOfLine(text) {\n let replacement = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : literalline;\n return join(replacement, text.split(\"\\n\")).parts;\n }\n function canBreakFn(doc) {\n if (doc.type === \"line\") {\n return true;\n }\n }\n function canBreak(doc) {\n return findInDoc(doc, canBreakFn, false);\n }\n module2.exports = {\n isConcat,\n getDocParts,\n willBreak,\n traverseDoc,\n findInDoc,\n mapDoc,\n propagateBreaks,\n removeLines,\n stripTrailingHardline,\n normalizeParts,\n normalizeDoc,\n cleanDoc,\n replaceTextEndOfLine,\n replaceEndOfLine,\n canBreak\n };\n }\n });\n var require_doc_printer = __commonJS2({\n \"src/document/doc-printer.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var {\n convertEndOfLineToChars\n } = require_end_of_line();\n var getLast = require_get_last();\n var getStringWidth = require_get_string_width();\n var {\n fill,\n cursor,\n indent\n } = require_doc_builders();\n var {\n isConcat,\n getDocParts\n } = require_doc_utils();\n var groupModeMap;\n var MODE_BREAK = 1;\n var MODE_FLAT = 2;\n function rootIndent() {\n return {\n value: \"\",\n length: 0,\n queue: []\n };\n }\n function makeIndent(ind, options) {\n return generateInd(ind, {\n type: \"indent\"\n }, options);\n }\n function makeAlign(indent2, widthOrDoc, options) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, {\n type: \"dedent\"\n }, options);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return Object.assign(Object.assign({}, indent2), {}, {\n root: indent2\n });\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, {\n type: alignType,\n n: widthOrDoc\n }, options);\n }\n function generateInd(ind, newPart, options) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(\"Unexpected type '\".concat(part.type, \"'\"));\n }\n }\n flushSpaces();\n return Object.assign(Object.assign({}, ind), {}, {\n value,\n length,\n queue\n });\n function addTabs(count) {\n value += \"\t\".repeat(count);\n length += options.tabWidth * count;\n }\n function addSpaces(count) {\n value += \" \".repeat(count);\n length += count;\n }\n function flush() {\n if (options.useTabs) {\n flushTabs();\n } else {\n flushSpaces();\n }\n }\n function flushTabs() {\n if (lastTabs > 0) {\n addTabs(lastTabs);\n }\n resetLast();\n }\n function flushSpaces() {\n if (lastSpaces > 0) {\n addSpaces(lastSpaces);\n }\n resetLast();\n }\n function resetLast() {\n lastTabs = 0;\n lastSpaces = 0;\n }\n }\n function trim(out) {\n if (out.length === 0) {\n return 0;\n }\n let trimCount = 0;\n while (out.length > 0 && typeof getLast(out) === \"string\" && /^[\\t ]*$/.test(getLast(out))) {\n trimCount += out.pop().length;\n }\n if (out.length > 0 && typeof getLast(out) === \"string\") {\n const trimmed = getLast(out).replace(/[\\t ]*$/, \"\");\n trimCount += getLast(out).length - trimmed.length;\n out[out.length - 1] = trimmed;\n }\n return trimCount;\n }\n function fits(next, restCommands, width, options, hasLineSuffix, mustBeFlat) {\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[restIdx - 1]);\n restIdx--;\n continue;\n }\n const [ind, mode, doc] = cmds.pop();\n if (typeof doc === \"string\") {\n out.push(doc);\n width -= getStringWidth(doc);\n } else if (isConcat(doc)) {\n const parts = getDocParts(doc);\n for (let i = parts.length - 1; i >= 0; i--) {\n cmds.push([ind, mode, parts[i]]);\n }\n } else {\n switch (doc.type) {\n case \"indent\":\n cmds.push([makeIndent(ind, options), mode, doc.contents]);\n break;\n case \"align\":\n cmds.push([makeAlign(ind, doc.n, options), mode, doc.contents]);\n break;\n case \"trim\":\n width += trim(out);\n break;\n case \"group\": {\n if (mustBeFlat && doc.break) {\n return false;\n }\n const groupMode = doc.break ? MODE_BREAK : mode;\n cmds.push([ind, groupMode, doc.expandedStates && groupMode === MODE_BREAK ? getLast(doc.expandedStates) : doc.contents]);\n if (doc.id) {\n groupModeMap[doc.id] = groupMode;\n }\n break;\n }\n case \"fill\":\n for (let i = doc.parts.length - 1; i >= 0; i--) {\n cmds.push([ind, mode, doc.parts[i]]);\n }\n break;\n case \"if-break\":\n case \"indent-if-break\": {\n const groupMode = doc.groupId ? groupModeMap[doc.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc.type === \"if-break\" ? doc.breakContents : doc.negate ? doc.contents : indent(doc.contents);\n if (breakContents) {\n cmds.push([ind, mode, breakContents]);\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc.type === \"if-break\" ? doc.flatContents : doc.negate ? indent(doc.contents) : doc.contents;\n if (flatContents) {\n cmds.push([ind, mode, flatContents]);\n }\n }\n break;\n }\n case \"line\":\n switch (mode) {\n case MODE_FLAT:\n if (!doc.hard) {\n if (!doc.soft) {\n out.push(\" \");\n width -= 1;\n }\n break;\n }\n return true;\n case MODE_BREAK:\n return true;\n }\n break;\n case \"line-suffix\":\n hasLineSuffix = true;\n break;\n case \"line-suffix-boundary\":\n if (hasLineSuffix) {\n return false;\n }\n break;\n case \"label\":\n cmds.push([ind, mode, doc.contents]);\n break;\n }\n }\n }\n return false;\n }\n function printDocToString(doc, options) {\n groupModeMap = {};\n const width = options.printWidth;\n const newLine = convertEndOfLineToChars(options.endOfLine);\n let pos = 0;\n const cmds = [[rootIndent(), MODE_BREAK, doc]];\n const out = [];\n let shouldRemeasure = false;\n let lineSuffix = [];\n while (cmds.length > 0) {\n const [ind, mode, doc2] = cmds.pop();\n if (typeof doc2 === \"string\") {\n const formatted = newLine !== \"\\n\" ? doc2.replace(/\\n/g, newLine) : doc2;\n out.push(formatted);\n pos += getStringWidth(formatted);\n } else if (isConcat(doc2)) {\n const parts = getDocParts(doc2);\n for (let i = parts.length - 1; i >= 0; i--) {\n cmds.push([ind, mode, parts[i]]);\n }\n } else {\n switch (doc2.type) {\n case \"cursor\":\n out.push(cursor.placeholder);\n break;\n case \"indent\":\n cmds.push([makeIndent(ind, options), mode, doc2.contents]);\n break;\n case \"align\":\n cmds.push([makeAlign(ind, doc2.n, options), mode, doc2.contents]);\n break;\n case \"trim\":\n pos -= trim(out);\n break;\n case \"group\":\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push([ind, doc2.break ? MODE_BREAK : MODE_FLAT, doc2.contents]);\n break;\n }\n case MODE_BREAK: {\n shouldRemeasure = false;\n const next = [ind, MODE_FLAT, doc2.contents];\n const rem = width - pos;\n const hasLineSuffix = lineSuffix.length > 0;\n if (!doc2.break && fits(next, cmds, rem, options, hasLineSuffix)) {\n cmds.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = getLast(doc2.expandedStates);\n if (doc2.break) {\n cmds.push([ind, MODE_BREAK, mostExpanded]);\n break;\n } else {\n for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n if (i >= doc2.expandedStates.length) {\n cmds.push([ind, MODE_BREAK, mostExpanded]);\n break;\n } else {\n const state = doc2.expandedStates[i];\n const cmd = [ind, MODE_FLAT, state];\n if (fits(cmd, cmds, rem, options, hasLineSuffix)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push([ind, MODE_BREAK, doc2.contents]);\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = getLast(cmds)[1];\n }\n break;\n case \"fill\": {\n const rem = width - pos;\n const {\n parts\n } = doc2;\n if (parts.length === 0) {\n break;\n }\n const [content, whitespace] = parts;\n const contentFlatCmd = [ind, MODE_FLAT, content];\n const contentBreakCmd = [ind, MODE_BREAK, content];\n const contentFits = fits(contentFlatCmd, [], rem, options, lineSuffix.length > 0, true);\n if (parts.length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = [ind, MODE_FLAT, whitespace];\n const whitespaceBreakCmd = [ind, MODE_BREAK, whitespace];\n if (parts.length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n parts.splice(0, 2);\n const remainingCmd = [ind, mode, fill(parts)];\n const secondContent = parts[0];\n const firstAndSecondContentFlatCmd = [ind, MODE_FLAT, [content, whitespace, secondContent]];\n const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, options, lineSuffix.length > 0, true);\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n case \"if-break\":\n case \"indent-if-break\": {\n const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc2.type === \"if-break\" ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);\n if (breakContents) {\n cmds.push([ind, mode, breakContents]);\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc2.type === \"if-break\" ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;\n if (flatContents) {\n cmds.push([ind, mode, flatContents]);\n }\n }\n break;\n }\n case \"line-suffix\":\n lineSuffix.push([ind, mode, doc2.contents]);\n break;\n case \"line-suffix-boundary\":\n if (lineSuffix.length > 0) {\n cmds.push([ind, mode, {\n type: \"line\",\n hard: true\n }]);\n }\n break;\n case \"line\":\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n out.push(\" \");\n pos += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n case MODE_BREAK:\n if (lineSuffix.length > 0) {\n cmds.push([ind, mode, doc2], ...lineSuffix.reverse());\n lineSuffix = [];\n break;\n }\n if (doc2.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos = ind.root.length;\n } else {\n out.push(newLine);\n pos = 0;\n }\n } else {\n pos -= trim(out);\n out.push(newLine + ind.value);\n pos = ind.length;\n }\n break;\n }\n break;\n case \"label\":\n cmds.push([ind, mode, doc2.contents]);\n break;\n default:\n }\n }\n if (cmds.length === 0 && lineSuffix.length > 0) {\n cmds.push(...lineSuffix.reverse());\n lineSuffix = [];\n }\n }\n const cursorPlaceholderIndex = out.indexOf(cursor.placeholder);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(cursor.placeholder, cursorPlaceholderIndex + 1);\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return {\n formatted: out.join(\"\")\n };\n }\n module2.exports = {\n printDocToString\n };\n }\n });\n var require_doc_debug = __commonJS2({\n \"src/document/doc-debug.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var {\n isConcat,\n getDocParts\n } = require_doc_utils();\n function flattenDoc(doc) {\n if (!doc) {\n return \"\";\n }\n if (isConcat(doc)) {\n const res = [];\n for (const part of getDocParts(doc)) {\n if (isConcat(part)) {\n res.push(...flattenDoc(part).parts);\n } else {\n const flattened = flattenDoc(part);\n if (flattened !== \"\") {\n res.push(flattened);\n }\n }\n }\n return {\n type: \"concat\",\n parts: res\n };\n }\n if (doc.type === \"if-break\") {\n return Object.assign(Object.assign({}, doc), {}, {\n breakContents: flattenDoc(doc.breakContents),\n flatContents: flattenDoc(doc.flatContents)\n });\n }\n if (doc.type === \"group\") {\n return Object.assign(Object.assign({}, doc), {}, {\n contents: flattenDoc(doc.contents),\n expandedStates: doc.expandedStates && doc.expandedStates.map(flattenDoc)\n });\n }\n if (doc.type === \"fill\") {\n return {\n type: \"fill\",\n parts: doc.parts.map(flattenDoc)\n };\n }\n if (doc.contents) {\n return Object.assign(Object.assign({}, doc), {}, {\n contents: flattenDoc(doc.contents)\n });\n }\n return doc;\n }\n function printDocToDebug(doc) {\n const printedSymbols = /* @__PURE__ */ Object.create(null);\n const usedKeysForSymbols = /* @__PURE__ */ new Set();\n return printDoc(flattenDoc(doc));\n function printDoc(doc2, index, parentParts) {\n if (typeof doc2 === \"string\") {\n return JSON.stringify(doc2);\n }\n if (isConcat(doc2)) {\n const printed = getDocParts(doc2).map(printDoc).filter(Boolean);\n return printed.length === 1 ? printed[0] : \"[\".concat(printed.join(\", \"), \"]\");\n }\n if (doc2.type === \"line\") {\n const withBreakParent = Array.isArray(parentParts) && parentParts[index + 1] && parentParts[index + 1].type === \"break-parent\";\n if (doc2.literal) {\n return withBreakParent ? \"literalline\" : \"literallineWithoutBreakParent\";\n }\n if (doc2.hard) {\n return withBreakParent ? \"hardline\" : \"hardlineWithoutBreakParent\";\n }\n if (doc2.soft) {\n return \"softline\";\n }\n return \"line\";\n }\n if (doc2.type === \"break-parent\") {\n const afterHardline = Array.isArray(parentParts) && parentParts[index - 1] && parentParts[index - 1].type === \"line\" && parentParts[index - 1].hard;\n return afterHardline ? void 0 : \"breakParent\";\n }\n if (doc2.type === \"trim\") {\n return \"trim\";\n }\n if (doc2.type === \"indent\") {\n return \"indent(\" + printDoc(doc2.contents) + \")\";\n }\n if (doc2.type === \"align\") {\n return doc2.n === Number.NEGATIVE_INFINITY ? \"dedentToRoot(\" + printDoc(doc2.contents) + \")\" : doc2.n < 0 ? \"dedent(\" + printDoc(doc2.contents) + \")\" : doc2.n.type === \"root\" ? \"markAsRoot(\" + printDoc(doc2.contents) + \")\" : \"align(\" + JSON.stringify(doc2.n) + \", \" + printDoc(doc2.contents) + \")\";\n }\n if (doc2.type === \"if-break\") {\n return \"ifBreak(\" + printDoc(doc2.breakContents) + (doc2.flatContents ? \", \" + printDoc(doc2.flatContents) : \"\") + (doc2.groupId ? (!doc2.flatContents ? ', \"\"' : \"\") + \", { groupId: \".concat(printGroupId(doc2.groupId), \" }\") : \"\") + \")\";\n }\n if (doc2.type === \"indent-if-break\") {\n const optionsParts = [];\n if (doc2.negate) {\n optionsParts.push(\"negate: true\");\n }\n if (doc2.groupId) {\n optionsParts.push(\"groupId: \".concat(printGroupId(doc2.groupId)));\n }\n const options = optionsParts.length > 0 ? \", { \".concat(optionsParts.join(\", \"), \" }\") : \"\";\n return \"indentIfBreak(\".concat(printDoc(doc2.contents)).concat(options, \")\");\n }\n if (doc2.type === \"group\") {\n const optionsParts = [];\n if (doc2.break && doc2.break !== \"propagated\") {\n optionsParts.push(\"shouldBreak: true\");\n }\n if (doc2.id) {\n optionsParts.push(\"id: \".concat(printGroupId(doc2.id)));\n }\n const options = optionsParts.length > 0 ? \", { \".concat(optionsParts.join(\", \"), \" }\") : \"\";\n if (doc2.expandedStates) {\n return \"conditionalGroup([\".concat(doc2.expandedStates.map((part) => printDoc(part)).join(\",\"), \"]\").concat(options, \")\");\n }\n return \"group(\".concat(printDoc(doc2.contents)).concat(options, \")\");\n }\n if (doc2.type === \"fill\") {\n return \"fill([\".concat(doc2.parts.map((part) => printDoc(part)).join(\", \"), \"])\");\n }\n if (doc2.type === \"line-suffix\") {\n return \"lineSuffix(\" + printDoc(doc2.contents) + \")\";\n }\n if (doc2.type === \"line-suffix-boundary\") {\n return \"lineSuffixBoundary\";\n }\n if (doc2.type === \"label\") {\n return \"label(\".concat(JSON.stringify(doc2.label), \", \").concat(printDoc(doc2.contents), \")\");\n }\n throw new Error(\"Unknown doc type \" + doc2.type);\n }\n function printGroupId(id) {\n if (typeof id !== \"symbol\") {\n return JSON.stringify(String(id));\n }\n if (id in printedSymbols) {\n return printedSymbols[id];\n }\n const prefix = String(id).slice(7, -1) || \"symbol\";\n for (let counter = 0; ; counter++) {\n const key = prefix + (counter > 0 ? \" #\".concat(counter) : \"\");\n if (!usedKeysForSymbols.has(key)) {\n usedKeysForSymbols.add(key);\n return printedSymbols[id] = \"Symbol.for(\".concat(JSON.stringify(key), \")\");\n }\n }\n }\n }\n module2.exports = {\n printDocToDebug\n };\n }\n });\n init_define_process();\n module.exports = {\n builders: require_doc_builders(),\n printer: require_doc_printer(),\n utils: require_doc_utils(),\n debug: require_doc_debug()\n };\n }\n });\n return require_doc_js_umd();\n});",null,"(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.angular=e()}})(function(){\"use strict\";var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Mn=un((jn,on)=>{var ze=Object.defineProperty,hn=Object.getOwnPropertyDescriptor,He=Object.getOwnPropertyNames,ln=Object.prototype.hasOwnProperty,Y=(e,t)=>function(){return e&&(t=(0,e[He(e)[0]])(e=0)),t},q=(e,t)=>function(){return t||(0,e[He(e)[0]])((t={exports:{}}).exports,t),t.exports},Xe=(e,t)=>{for(var n in t)ze(e,n,{get:t[n],enumerable:!0})},pn=(e,t,n,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let s of He(t))!ln.call(e,s)&&s!==n&&ze(e,s,{get:()=>t[s],enumerable:!(r=hn(t,s))||r.enumerable});return e},be=e=>pn(ze({},\"__esModule\",{value:!0}),e),L=Y({\"\"(){}}),dn=q({\"src/utils/is-non-empty-array.js\"(e,t){\"use strict\";L();function n(r){return Array.isArray(r)&&r.length>0}t.exports=n}}),fn=q({\"src/language-js/loc.js\"(e,t){\"use strict\";L();var n=dn();function r(h,P){let{ignoreDecorators:p}=P||{};if(!p){let x=h.declaration&&h.declaration.decorators||h.decorators;if(n(x))return r(x[0])}return h.range?h.range[0]:h.start}function s(h){return h.range?h.range[1]:h.end}function a(h,P){let p=r(h);return Number.isInteger(p)&&p===r(P)}function i(h,P){let p=s(h);return Number.isInteger(p)&&p===s(P)}function l(h,P){return a(h,P)&&i(h,P)}t.exports={locStart:r,locEnd:s,hasSameLocStart:a,hasSameLoc:l}}}),gn=q({\"node_modules/angular-estree-parser/node_modules/lines-and-columns/build/index.js\"(e){\"use strict\";L(),e.__esModule=!0,e.LinesAndColumns=void 0;var t=`\n`,n=\"\\r\",r=function(){function s(a){this.string=a;for(var i=[0],l=0;lthis.string.length)return null;for(var i=0,l=this.offsets;l[i+1]<=a;)i++;var h=a-l[i];return{line:i,column:h}},s.prototype.indexForLocation=function(a){var i=a.line,l=a.column;return i<0||i>=this.offsets.length||l<0||l>this.lengthOfLine(i)?null:this.offsets[i]+l},s.prototype.lengthOfLine=function(a){var i=this.offsets[a],l=a===this.offsets.length-1?this.string.length:this.offsets[a+1];return l-i},s}();e.LinesAndColumns=r,e.default=r}}),vn=q({\"node_modules/angular-estree-parser/lib/context.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.Context=void 0;var t=gn(),n=class{constructor(s){this.text=s,this.locator=new r(this.text)}};e.Context=n;var r=class{constructor(s){this._lineAndColumn=new t.default(s)}locationForIndex(s){let{line:a,column:i}=this._lineAndColumn.locationForIndex(s);return{line:a+1,column:i}}}}}),Je={};Xe(Je,{AST:()=>k,ASTWithName:()=>W,ASTWithSource:()=>G,AbsoluteSourceSpan:()=>U,AstMemoryEfficientTransformer:()=>Ct,AstTransformer:()=>Pt,Binary:()=>K,BindingPipe:()=>fe,BoundElementProperty:()=>It,Chain:()=>oe,Conditional:()=>ce,EmptyExpr:()=>M,ExpressionBinding:()=>Ze,FunctionCall:()=>Pe,ImplicitReceiver:()=>Oe,Interpolation:()=>me,KeyedRead:()=>le,KeyedWrite:()=>de,LiteralArray:()=>ge,LiteralMap:()=>ve,LiteralPrimitive:()=>B,MethodCall:()=>ye,NonNullAssert:()=>Se,ParseSpan:()=>V,ParsedEvent:()=>At,ParsedProperty:()=>Et,ParsedPropertyType:()=>se,ParsedVariable:()=>_t,ParserError:()=>ae,PrefixNot:()=>xe,PropertyRead:()=>re,PropertyWrite:()=>ue,Quote:()=>Le,RecursiveAstVisitor:()=>et,SafeKeyedRead:()=>pe,SafeMethodCall:()=>we,SafePropertyRead:()=>he,ThisReceiver:()=>Ye,Unary:()=>F,VariableBinding:()=>Re});var ae,V,k,W,Le,M,Oe,Ye,oe,ce,re,ue,he,le,pe,de,fe,B,ge,ve,me,K,F,xe,Se,ye,we,Pe,U,G,Re,Ze,et,Pt,Ct,Et,se,At,_t,It,tt=Y({\"node_modules/@angular/compiler/esm2015/src/expression_parser/ast.js\"(){L(),ae=class{constructor(e,t,n,r){this.input=t,this.errLocation=n,this.ctxLocation=r,this.message=\"Parser Error: \".concat(e,\" \").concat(n,\" [\").concat(t,\"] in \").concat(r)}},V=class{constructor(e,t){this.start=e,this.end=t}toAbsolute(e){return new U(e+this.start,e+this.end)}},k=class{constructor(e,t){this.span=e,this.sourceSpan=t}toString(){return\"AST\"}},W=class extends k{constructor(e,t,n){super(e,t),this.nameSpan=n}},Le=class extends k{constructor(e,t,n,r,s){super(e,t),this.prefix=n,this.uninterpretedExpression=r,this.location=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitQuote(this,t)}toString(){return\"Quote\"}},M=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null}},Oe=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitImplicitReceiver(this,t)}},Ye=class extends Oe{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;var n;return(n=e.visitThisReceiver)===null||n===void 0?void 0:n.call(e,this,t)}},oe=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitChain(this,t)}},ce=class extends k{constructor(e,t,n,r,s){super(e,t),this.condition=n,this.trueExp=r,this.falseExp=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitConditional(this,t)}},re=class extends W{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyRead(this,t)}},ue=class extends W{constructor(e,t,n,r,s,a){super(e,t,n),this.receiver=r,this.name=s,this.value=a}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyWrite(this,t)}},he=class extends W{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafePropertyRead(this,t)}},le=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedRead(this,t)}},pe=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeKeyedRead(this,t)}},de=class extends k{constructor(e,t,n,r,s){super(e,t),this.receiver=n,this.key=r,this.value=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedWrite(this,t)}},fe=class extends W{constructor(e,t,n,r,s,a){super(e,t,a),this.exp=n,this.name=r,this.args=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPipe(this,t)}},B=class extends k{constructor(e,t,n){super(e,t),this.value=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralPrimitive(this,t)}},ge=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralArray(this,t)}},ve=class extends k{constructor(e,t,n,r){super(e,t),this.keys=n,this.values=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralMap(this,t)}},me=class extends k{constructor(e,t,n,r){super(e,t),this.strings=n,this.expressions=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitInterpolation(this,t)}},K=class extends k{constructor(e,t,n,r,s){super(e,t),this.operation=n,this.left=r,this.right=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitBinary(this,t)}},F=class extends K{constructor(e,t,n,r,s,a,i){super(e,t,s,a,i),this.operator=n,this.expr=r}static createMinus(e,t,n){return new F(e,t,\"-\",n,\"-\",new B(e,t,0),n)}static createPlus(e,t,n){return new F(e,t,\"+\",n,\"-\",n,new B(e,t,0))}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitUnary!==void 0?e.visitUnary(this,t):e.visitBinary(this,t)}},xe=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPrefixNot(this,t)}},Se=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitNonNullAssert(this,t)}},ye=class extends W{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitMethodCall(this,t)}},we=class extends W{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeMethodCall(this,t)}},Pe=class extends k{constructor(e,t,n,r){super(e,t),this.target=n,this.args=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitFunctionCall(this,t)}},U=class{constructor(e,t){this.start=e,this.end=t}},G=class extends k{constructor(e,t,n,r,s){super(new V(0,t===null?0:t.length),new U(r,t===null?r:r+t.length)),this.ast=e,this.source=t,this.location=n,this.errors=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitASTWithSource?e.visitASTWithSource(this,t):this.ast.visit(e,t)}toString(){return\"\".concat(this.source,\" in \").concat(this.location)}},Re=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},Ze=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},et=class{visit(e,t){e.visit(this,t)}visitUnary(e,t){this.visit(e.expr,t)}visitBinary(e,t){this.visit(e.left,t),this.visit(e.right,t)}visitChain(e,t){this.visitAll(e.expressions,t)}visitConditional(e,t){this.visit(e.condition,t),this.visit(e.trueExp,t),this.visit(e.falseExp,t)}visitPipe(e,t){this.visit(e.exp,t),this.visitAll(e.args,t)}visitFunctionCall(e,t){e.target&&this.visit(e.target,t),this.visitAll(e.args,t)}visitImplicitReceiver(e,t){}visitThisReceiver(e,t){}visitInterpolation(e,t){this.visitAll(e.expressions,t)}visitKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitKeyedWrite(e,t){this.visit(e.receiver,t),this.visit(e.key,t),this.visit(e.value,t)}visitLiteralArray(e,t){this.visitAll(e.expressions,t)}visitLiteralMap(e,t){this.visitAll(e.values,t)}visitLiteralPrimitive(e,t){}visitMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitPrefixNot(e,t){this.visit(e.expression,t)}visitNonNullAssert(e,t){this.visit(e.expression,t)}visitPropertyRead(e,t){this.visit(e.receiver,t)}visitPropertyWrite(e,t){this.visit(e.receiver,t),this.visit(e.value,t)}visitSafePropertyRead(e,t){this.visit(e.receiver,t)}visitSafeMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitSafeKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitQuote(e,t){}visitAll(e,t){for(let n of e)this.visit(n,t)}},Pt=class{visitImplicitReceiver(e,t){return e}visitThisReceiver(e,t){return e}visitInterpolation(e,t){return new me(e.span,e.sourceSpan,e.strings,this.visitAll(e.expressions))}visitLiteralPrimitive(e,t){return new B(e.span,e.sourceSpan,e.value)}visitPropertyRead(e,t){return new re(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitPropertyWrite(e,t){return new ue(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,e.value.visit(this))}visitSafePropertyRead(e,t){return new he(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitMethodCall(e,t){return new ye(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitSafeMethodCall(e,t){return new we(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitFunctionCall(e,t){return new Pe(e.span,e.sourceSpan,e.target.visit(this),this.visitAll(e.args))}visitLiteralArray(e,t){return new ge(e.span,e.sourceSpan,this.visitAll(e.expressions))}visitLiteralMap(e,t){return new ve(e.span,e.sourceSpan,e.keys,this.visitAll(e.values))}visitUnary(e,t){switch(e.operator){case\"+\":return F.createPlus(e.span,e.sourceSpan,e.expr.visit(this));case\"-\":return F.createMinus(e.span,e.sourceSpan,e.expr.visit(this));default:throw new Error(\"Unknown unary operator \".concat(e.operator))}}visitBinary(e,t){return new K(e.span,e.sourceSpan,e.operation,e.left.visit(this),e.right.visit(this))}visitPrefixNot(e,t){return new xe(e.span,e.sourceSpan,e.expression.visit(this))}visitNonNullAssert(e,t){return new Se(e.span,e.sourceSpan,e.expression.visit(this))}visitConditional(e,t){return new ce(e.span,e.sourceSpan,e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this))}visitPipe(e,t){return new fe(e.span,e.sourceSpan,e.exp.visit(this),e.name,this.visitAll(e.args),e.nameSpan)}visitKeyedRead(e,t){return new le(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this))}visitKeyedWrite(e,t){return new de(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this),e.value.visit(this))}visitAll(e){let t=[];for(let n=0;n=nt&&e<=rt||e==dt}function Q(e){return $t<=e&&e<=jt}function xn(e){return e>=lt&&e<=pt||e>=ut&&e<=ht}function mt(e){return e===at||e===st||e===Xt}var Ce,nt,Ot,kt,Nt,bt,rt,Lt,st,Rt,it,Tt,je,at,Ee,z,Bt,ot,ee,ct,H,Te,X,te,Kt,ie,Mt,Fe,$t,jt,ut,Ft,ht,Ae,Ut,ne,Wt,Ke,lt,Gt,Vt,qt,Qt,Dt,zt,Ht,pt,Be,Ue,_e,dt,Xt,Jt=Y({\"node_modules/@angular/compiler/esm2015/src/chars.js\"(){L(),Ce=0,nt=9,Ot=10,kt=11,Nt=12,bt=13,rt=32,Lt=33,st=34,Rt=35,it=36,Tt=37,je=38,at=39,Ee=40,z=41,Bt=42,ot=43,ee=44,ct=45,H=46,Te=47,X=58,te=59,Kt=60,ie=61,Mt=62,Fe=63,$t=48,jt=57,ut=65,Ft=69,ht=90,Ae=91,Ut=92,ne=93,Wt=94,Ke=95,lt=97,Gt=101,Vt=102,qt=110,Qt=114,Dt=116,zt=117,Ht=118,pt=122,Be=123,Ue=124,_e=125,dt=160,Xt=96}}),Yt={};Xe(Yt,{EOF:()=>Ie,Lexer:()=>en,Token:()=>$,TokenType:()=>S,isIdentifier:()=>Zt});function xt(e,t,n){return new $(e,t,S.Character,n,String.fromCharCode(n))}function Sn(e,t,n){return new $(e,t,S.Identifier,0,n)}function yn(e,t,n){return new $(e,t,S.PrivateIdentifier,0,n)}function wn(e,t,n){return new $(e,t,S.Keyword,0,n)}function Me(e,t,n){return new $(e,t,S.Operator,0,n)}function Pn(e,t,n){return new $(e,t,S.String,0,n)}function Cn(e,t,n){return new $(e,t,S.Number,n,\"\")}function En(e,t,n){return new $(e,t,S.Error,0,n)}function We(e){return lt<=e&&e<=pt||ut<=e&&e<=ht||e==Ke||e==it}function Zt(e){if(e.length==0)return!1;let t=new Ve(e);if(!We(t.peek))return!1;for(t.advance();t.peek!==Ce;){if(!Ge(t.peek))return!1;t.advance()}return!0}function Ge(e){return xn(e)||Q(e)||e==Ke||e==it}function An(e){return e==Gt||e==Ft}function _n(e){return e==ct||e==ot}function In(e){switch(e){case qt:return Ot;case Vt:return Nt;case Qt:return bt;case Dt:return nt;case Ht:return kt;default:return e}}function On(e){let t=parseInt(e);if(isNaN(t))throw new Error(\"Invalid integer literal when parsing \"+e);return t}var S,St,en,$,Ie,Ve,tn=Y({\"node_modules/@angular/compiler/esm2015/src/expression_parser/lexer.js\"(){L(),Jt(),function(e){e[e.Character=0]=\"Character\",e[e.Identifier=1]=\"Identifier\",e[e.PrivateIdentifier=2]=\"PrivateIdentifier\",e[e.Keyword=3]=\"Keyword\",e[e.String=4]=\"String\",e[e.Operator=5]=\"Operator\",e[e.Number=6]=\"Number\",e[e.Error=7]=\"Error\"}(S||(S={})),St=[\"var\",\"let\",\"as\",\"null\",\"undefined\",\"true\",\"false\",\"if\",\"else\",\"this\"],en=class{tokenize(e){let t=new Ve(e),n=[],r=t.scanToken();for(;r!=null;)n.push(r),r=t.scanToken();return n}},$=class{constructor(e,t,n,r,s){this.index=e,this.end=t,this.type=n,this.numValue=r,this.strValue=s}isCharacter(e){return this.type==S.Character&&this.numValue==e}isNumber(){return this.type==S.Number}isString(){return this.type==S.String}isOperator(e){return this.type==S.Operator&&this.strValue==e}isIdentifier(){return this.type==S.Identifier}isPrivateIdentifier(){return this.type==S.PrivateIdentifier}isKeyword(){return this.type==S.Keyword}isKeywordLet(){return this.type==S.Keyword&&this.strValue==\"let\"}isKeywordAs(){return this.type==S.Keyword&&this.strValue==\"as\"}isKeywordNull(){return this.type==S.Keyword&&this.strValue==\"null\"}isKeywordUndefined(){return this.type==S.Keyword&&this.strValue==\"undefined\"}isKeywordTrue(){return this.type==S.Keyword&&this.strValue==\"true\"}isKeywordFalse(){return this.type==S.Keyword&&this.strValue==\"false\"}isKeywordThis(){return this.type==S.Keyword&&this.strValue==\"this\"}isError(){return this.type==S.Error}toNumber(){return this.type==S.Number?this.numValue:-1}toString(){switch(this.type){case S.Character:case S.Identifier:case S.Keyword:case S.Operator:case S.PrivateIdentifier:case S.String:case S.Error:return this.strValue;case S.Number:return this.numValue.toString();default:return null}}},Ie=new $(-1,-1,S.Character,0,\"\"),Ve=class{constructor(e){this.input=e,this.peek=0,this.index=-1,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?Ce:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,t=this.length,n=this.peek,r=this.index;for(;n<=rt;)if(++r>=t){n=Ce;break}else n=e.charCodeAt(r);if(this.peek=n,this.index=r,r>=t)return null;if(We(n))return this.scanIdentifier();if(Q(n))return this.scanNumber(r);let s=r;switch(n){case H:return this.advance(),Q(this.peek)?this.scanNumber(s):xt(s,this.index,H);case Ee:case z:case Be:case _e:case Ae:case ne:case ee:case X:case te:return this.scanCharacter(s,n);case at:case st:return this.scanString();case Rt:return this.scanPrivateIdentifier();case ot:case ct:case Bt:case Te:case Tt:case Wt:return this.scanOperator(s,String.fromCharCode(n));case Fe:return this.scanQuestion(s);case Kt:case Mt:return this.scanComplexOperator(s,String.fromCharCode(n),ie,\"=\");case Lt:case ie:return this.scanComplexOperator(s,String.fromCharCode(n),ie,\"=\",ie,\"=\");case je:return this.scanComplexOperator(s,\"&\",je,\"&\");case Ue:return this.scanComplexOperator(s,\"|\",Ue,\"|\");case dt:for(;mn(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(\"Unexpected character [\".concat(String.fromCharCode(n),\"]\"),0)}scanCharacter(e,t){return this.advance(),xt(e,this.index,t)}scanOperator(e,t){return this.advance(),Me(e,this.index,t)}scanComplexOperator(e,t,n,r,s,a){this.advance();let i=t;return this.peek==n&&(this.advance(),i+=r),s!=null&&this.peek==s&&(this.advance(),i+=a),Me(e,this.index,i)}scanIdentifier(){let e=this.index;for(this.advance();Ge(this.peek);)this.advance();let t=this.input.substring(e,this.index);return St.indexOf(t)>-1?wn(e,this.index,t):Sn(e,this.index,t)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!We(this.peek))return this.error(\"Invalid character [#]\",-1);for(;Ge(this.peek);)this.advance();let t=this.input.substring(e,this.index);return yn(e,this.index,t)}scanNumber(e){let t=this.index===e,n=!1;for(this.advance();;){if(!Q(this.peek))if(this.peek===Ke){if(!Q(this.input.charCodeAt(this.index-1))||!Q(this.input.charCodeAt(this.index+1)))return this.error(\"Invalid numeric separator\",0);n=!0}else if(this.peek===H)t=!1;else if(An(this.peek)){if(this.advance(),_n(this.peek)&&this.advance(),!Q(this.peek))return this.error(\"Invalid exponent\",-1);t=!1}else break;this.advance()}let r=this.input.substring(e,this.index);n&&(r=r.replace(/_/g,\"\"));let s=t?On(r):parseFloat(r);return Cn(e,this.index,s)}scanString(){let e=this.index,t=this.peek;this.advance();let n=\"\",r=this.index,s=this.input;for(;this.peek!=t;)if(this.peek==Ut){n+=s.substring(r,this.index),this.advance();let i;if(this.peek=this.peek,this.peek==zt){let l=s.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(l))i=parseInt(l,16);else return this.error(\"Invalid unicode escape [\\\\u\".concat(l,\"]\"),0);for(let h=0;h<5;h++)this.advance()}else i=In(this.peek),this.advance();n+=String.fromCharCode(i),r=this.index}else{if(this.peek==Ce)return this.error(\"Unterminated quote\",0);this.advance()}let a=s.substring(r,this.index);return this.advance(),Pn(e,this.index,n+a)}scanQuestion(e){this.advance();let t=\"?\";return(this.peek===Fe||this.peek===H)&&(t+=this.peek===H?\".\":\"?\",this.advance()),Me(e,this.index,t)}error(e,t){let n=this.index+t;return En(n,this.index,\"Lexer Error: \".concat(e,\" at column \").concat(n,\" in expression [\").concat(this.input,\"]\"))}}}});function kn(e,t){if(t!=null&&!(Array.isArray(t)&&t.length==2))throw new Error(\"Expected '\".concat(e,\"' to be an array, [start, end].\"));if(t!=null){let n=t[0],r=t[1];nn.forEach(s=>{if(s.test(n)||s.test(r))throw new Error(\"['\".concat(n,\"', '\").concat(r,\"'] contains unusable interpolation symbol.\"))})}}var nn,Nn=Y({\"node_modules/@angular/compiler/esm2015/src/assertions.js\"(){L(),nn=[/^\\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//]}}),$e,J,bn=Y({\"node_modules/@angular/compiler/esm2015/src/ml_parser/interpolation_config.js\"(){L(),Nn(),$e=class{constructor(e,t){this.start=e,this.end=t}static fromArray(e){return e?(kn(\"interpolation\",e),new $e(e[0],e[1])):J}},J=new $e(\"{{\",\"}}\")}}),rn={};Xe(rn,{IvyParser:()=>sn,Parser:()=>De,SplitInterpolation:()=>qe,TemplateBindingParseResult:()=>Qe,_ParseAST:()=>D});var qe,Qe,De,sn,Z,D,yt,wt,Ln=Y({\"node_modules/@angular/compiler/esm2015/src/expression_parser/parser.js\"(){L(),Jt(),bn(),tt(),tn(),qe=class{constructor(e,t,n){this.strings=e,this.expressions=t,this.offsets=n}},Qe=class{constructor(e,t,n){this.templateBindings=e,this.warnings=t,this.errors=n}},De=class{constructor(e){this._lexer=e,this.errors=[],this.simpleExpressionChecker=yt}parseAction(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J;this._checkNoInterpolation(e,t,r);let s=this._stripComments(e),a=this._lexer.tokenize(this._stripComments(e)),i=new D(e,t,n,a,s.length,!0,this.errors,e.length-s.length).parseChain();return new G(i,e,t,n,this.errors)}parseBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r);return new G(s,e,t,n,this.errors)}checkSimpleExpression(e){let t=new this.simpleExpressionChecker;return e.visit(t),t.errors}parseSimpleBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r),a=this.checkSimpleExpression(s);return a.length>0&&this._reportError(\"Host binding expression cannot contain \".concat(a.join(\" \")),e,t),new G(s,e,t,n,this.errors)}_reportError(e,t,n,r){this.errors.push(new ae(e,t,n,r))}_parseBindingAst(e,t,n,r){let s=this._parseQuote(e,t,n);if(s!=null)return s;this._checkNoInterpolation(e,t,r);let a=this._stripComments(e),i=this._lexer.tokenize(a);return new D(e,t,n,i,a.length,!1,this.errors,e.length-a.length).parseChain()}_parseQuote(e,t,n){if(e==null)return null;let r=e.indexOf(\":\");if(r==-1)return null;let s=e.substring(0,r).trim();if(!Zt(s))return null;let a=e.substring(r+1),i=new V(0,e.length);return new Le(i,i.toAbsolute(n),s,a,t)}parseTemplateBindings(e,t,n,r,s){let a=this._lexer.tokenize(t);return new D(t,n,s,a,t.length,!1,this.errors,0).parseTemplateBindings({source:e,span:new U(r,r+e.length)})}parseInterpolation(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,{strings:s,expressions:a,offsets:i}=this.splitInterpolation(e,t,r);if(a.length===0)return null;let l=[];for(let h=0;hh.text),l,e,t,n)}parseInterpolationExpression(e,t,n){let r=this._stripComments(e),s=this._lexer.tokenize(r),a=new D(e,t,n,s,r.length,!1,this.errors,0).parseChain(),i=[\"\",\"\"];return this.createInterpolationAst(i,[a],e,t,n)}createInterpolationAst(e,t,n,r,s){let a=new V(0,n.length),i=new me(a,a.toAbsolute(s),e,t);return new G(i,n,r,s,this.errors)}splitInterpolation(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:J,r=[],s=[],a=[],i=0,l=!1,h=!1,{start:P,end:p}=n;for(;i-1)break;a>-1&&i>-1&&this._reportError(\"Got interpolation (\".concat(r).concat(s,\") where expression was expected\"),e,\"at column \".concat(a,\" in\"),t)}_getInterpolationEndIndex(e,t,n){for(let r of this._forEachUnquotedChar(e,n)){if(e.startsWith(t,r))return r;if(e.startsWith(\"//\",r))return e.indexOf(t,r)}return-1}*_forEachUnquotedChar(e,t){let n=null,r=0;for(let s=t;s=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.inputLength+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,t){let n=this.currentEndIndex;if(t!==void 0&&t>this.currentEndIndex&&(n=t),e>n){let r=n;n=e,e=r}return new V(e,n)}sourceSpan(e,t){let n=\"\".concat(e,\"@\").concat(this.inputIndex,\":\").concat(t);return this.sourceSpanCache.has(n)||this.sourceSpanCache.set(n,this.span(e,t).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(n)}advance(){this.index++}withContext(e,t){this.context|=e;let n=t();return this.context^=e,n}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(\"Missing expected \".concat(String.fromCharCode(e)))}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error(\"Missing expected operator \".concat(e))}prettyPrintToken(e){return e===Ie?\"end of input\":\"token \".concat(e)}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,\"expected identifier or keyword\"):this.error(\"Unexpected \".concat(this.prettyPrintToken(e),\", expected identifier or keyword\")),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,\"expected identifier, keyword or string\"):this.error(\"Unexpected \".concat(this.prettyPrintToken(e),\", expected identifier, keyword, or string\")),\"\"):(this.advance(),e.toString())}parseChain(){let e=[],t=this.inputIndex;for(;this.index\":case\"<=\":case\">=\":this.advance();let r=this.parseAdditive();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseAdditive(){let e=this.inputIndex,t=this.parseMultiplicative();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case\"+\":case\"-\":this.advance();let r=this.parseMultiplicative();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseMultiplicative(){let e=this.inputIndex,t=this.parsePrefix();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case\"*\":case\"%\":case\"/\":this.advance();let r=this.parsePrefix();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parsePrefix(){if(this.next.type==S.Operator){let e=this.inputIndex,t=this.next.strValue,n;switch(t){case\"+\":return this.advance(),n=this.parsePrefix(),F.createPlus(this.span(e),this.sourceSpan(e),n);case\"-\":return this.advance(),n=this.parsePrefix(),F.createMinus(this.span(e),this.sourceSpan(e),n);case\"!\":return this.advance(),n=this.parsePrefix(),new xe(this.span(e),this.sourceSpan(e),n)}}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,t=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(H))t=this.parseAccessMemberOrMethodCall(t,e,!1);else if(this.consumeOptionalOperator(\"?.\"))t=this.consumeOptionalCharacter(Ae)?this.parseKeyedReadOrWrite(t,e,!0):this.parseAccessMemberOrMethodCall(t,e,!0);else if(this.consumeOptionalCharacter(Ae))t=this.parseKeyedReadOrWrite(t,e,!1);else if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let n=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(z),t=new Pe(this.span(e),this.sourceSpan(e),t,n)}else if(this.consumeOptionalOperator(\"!\"))t=new Se(this.span(e),this.sourceSpan(e),t);else return t}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(z),t}else{if(this.next.isKeywordNull())return this.advance(),new B(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new B(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new B(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new B(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Ye(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(Ae)){this.rbracketsExpected++;let t=this.parseExpressionList(ne);return this.rbracketsExpected--,this.expectCharacter(ne),new ge(this.span(e),this.sourceSpan(e),t)}else{if(this.next.isCharacter(Be))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Oe(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let t=this.next.toNumber();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else if(this.next.isString()){let t=this.next.toString();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new M(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(\"Unexpected end of expression: \".concat(this.input)),new M(this.span(e),this.sourceSpan(e))):(this.error(\"Unexpected token \".concat(this.next)),new M(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let t=[];do if(!this.next.isCharacter(e))t.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(ee));return t}parseLiteralMap(){let e=[],t=[],n=this.inputIndex;if(this.expectCharacter(Be),!this.consumeOptionalCharacter(_e)){this.rbracesExpected++;do{let r=this.inputIndex,s=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(e.push({key:a,quoted:s}),s)this.expectCharacter(X),t.push(this.parsePipe());else if(this.consumeOptionalCharacter(X))t.push(this.parsePipe());else{let i=this.span(r),l=this.sourceSpan(r);t.push(new re(i,l,l,new Oe(i,l),a))}}while(this.consumeOptionalCharacter(ee));this.rbracesExpected--,this.expectCharacter(_e)}return new ve(this.span(n),this.sourceSpan(n),e,t)}parseAccessMemberOrMethodCall(e,t,n){let r=this.inputIndex,s=this.withContext(Z.Writable,()=>{var i;let l=(i=this.expectIdentifierOrKeyword())!==null&&i!==void 0?i:\"\";return l.length===0&&this.error(\"Expected identifier for property access\",e.span.end),l}),a=this.sourceSpan(r);if(this.consumeOptionalCharacter(Ee)){let i=this.inputIndex;this.rparensExpected++;let l=this.parseCallArguments(),h=this.span(i,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(z),this.rparensExpected--;let P=this.span(t),p=this.sourceSpan(t);return n?new we(P,p,a,e,s,l,h):new ye(P,p,a,e,s,l,h)}else{if(n)return this.consumeOptionalOperator(\"=\")?(this.error(\"The '?.' operator cannot be used in the assignment\"),new M(this.span(t),this.sourceSpan(t))):new he(this.span(t),this.sourceSpan(t),a,e,s);if(this.consumeOptionalOperator(\"=\")){if(!this.parseAction)return this.error(\"Bindings cannot contain assignments\"),new M(this.span(t),this.sourceSpan(t));let i=this.parseConditional();return new ue(this.span(t),this.sourceSpan(t),a,e,s,i)}else return new re(this.span(t),this.sourceSpan(t),a,e,s)}}parseCallArguments(){if(this.next.isCharacter(z))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(ee));return e}expectTemplateBindingKey(){let e=\"\",t=!1,n=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),t=this.consumeOptionalOperator(\"-\"),t&&(e+=\"-\");while(t);return{source:e,span:new U(n,n+e.length)}}parseTemplateBindings(e){let t=[];for(t.push(...this.parseDirectiveKeywordBindings(e));this.index{this.rbracketsExpected++;let r=this.parsePipe();if(r instanceof M&&this.error(\"Key access cannot be empty\"),this.rbracketsExpected--,this.expectCharacter(ne),this.consumeOptionalOperator(\"=\"))if(n)this.error(\"The '?.' operator cannot be used in the assignment\");else{let s=this.parseConditional();return new de(this.span(t),this.sourceSpan(t),e,r,s)}else return n?new pe(this.span(t),this.sourceSpan(t),e,r):new le(this.span(t),this.sourceSpan(t),e,r);return new M(this.span(t),this.sourceSpan(t))})}parseDirectiveKeywordBindings(e){let t=[];this.consumeOptionalCharacter(X);let n=this.getDirectiveBoundTarget(),r=this.currentAbsoluteOffset,s=this.parseAsBinding(e);s||(this.consumeStatementTerminator(),r=this.currentAbsoluteOffset);let a=new U(e.span.start,r);return t.push(new Ze(a,e,n)),s&&t.push(s),t}getDirectiveBoundTarget(){if(this.next===Ie||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:t,end:n}=e.span,r=this.input.substring(t,n);return new G(e,r,this.location,this.absoluteOffset+t,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let t=this.expectTemplateBindingKey();this.consumeStatementTerminator();let n=new U(e.span.start,this.currentAbsoluteOffset);return new Re(n,t,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let t=this.expectTemplateBindingKey(),n=null;this.consumeOptionalOperator(\"=\")&&(n=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let r=new U(e,this.currentAbsoluteOffset);return new Re(r,t,n)}consumeStatementTerminator(){this.consumeOptionalCharacter(te)||this.consumeOptionalCharacter(ee)}error(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.errors.push(new ae(e,this.input,this.locationText(t),this.location)),this.skip()}locationText(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return e==null&&(e=this.index),en.visit(this,t))}visitChain(e,t){}visitQuote(e,t){}visitSafeKeyedRead(e,t){}},wt=class extends et{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push(\"pipes\")}}}}),ft=q({\"node_modules/angular-estree-parser/lib/utils.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.getLast=e.toLowerCamelCase=e.findBackChar=e.findFrontChar=e.fitSpans=e.getNgType=e.parseNgInterpolation=e.parseNgTemplateBindings=e.parseNgAction=e.parseNgSimpleBinding=e.parseNgBinding=e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX=void 0;var t=(tt(),be(Je)),n=(tn(),be(Yt)),r=(Ln(),be(rn)),s=\"angular-estree-parser\";e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX=\"NgEstreeParser\";var a=0,i=[s,a];function l(){return new r.Parser(new n.Lexer)}function h(o,d){let y=l(),{astInput:C,comments:E}=T(o,y),{ast:I,errors:j}=d(C,y);return R(j),{ast:I,comments:E}}function P(o){return h(o,(d,y)=>y.parseBinding(d,...i))}e.parseNgBinding=P;function p(o){return h(o,(d,y)=>y.parseSimpleBinding(d,...i))}e.parseNgSimpleBinding=p;function x(o){return h(o,(d,y)=>y.parseAction(d,...i))}e.parseNgAction=x;function A(o){let d=l(),{templateBindings:y,errors:C}=d.parseTemplateBindings(e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX,o,s,a,a);return R(C),y}e.parseNgTemplateBindings=A;function b(o){let d=l(),{astInput:y,comments:C}=T(o,d),E=\"{{\",I=\"}}\",{ast:j,errors:cn}=d.parseInterpolation(E+y+I,...i);R(cn);let gt=j.expressions[0],vt=new Set;return _(gt,ke=>{vt.has(ke)||(ke.start-=E.length,ke.end-=E.length,vt.add(ke))}),{ast:gt,comments:C}}e.parseNgInterpolation=b;function _(o,d){if(!(!o||typeof o!=\"object\")){if(Array.isArray(o))return o.forEach(y=>_(y,d));for(let y of Object.keys(o)){let C=o[y];y===\"span\"?d(C):_(C,d)}}}function R(o){if(o.length!==0){let[{message:d}]=o;throw new SyntaxError(d.replace(/^Parser Error: | at column \\d+ in [^]*$/g,\"\"))}}function T(o,d){let y=d._commentStart(o);return y===null?{astInput:o,comments:[]}:{astInput:o.slice(0,y),comments:[{type:\"Comment\",value:o.slice(y+2),span:{start:y,end:o.length}}]}}function O(o){return t.Unary&&o instanceof t.Unary?\"Unary\":o instanceof t.Binary?\"Binary\":o instanceof t.BindingPipe?\"BindingPipe\":o instanceof t.Chain?\"Chain\":o instanceof t.Conditional?\"Conditional\":o instanceof t.EmptyExpr?\"EmptyExpr\":o instanceof t.FunctionCall?\"FunctionCall\":o instanceof t.ImplicitReceiver?\"ImplicitReceiver\":o instanceof t.KeyedRead?\"KeyedRead\":o instanceof t.KeyedWrite?\"KeyedWrite\":o instanceof t.LiteralArray?\"LiteralArray\":o instanceof t.LiteralMap?\"LiteralMap\":o instanceof t.LiteralPrimitive?\"LiteralPrimitive\":o instanceof t.MethodCall?\"MethodCall\":o instanceof t.NonNullAssert?\"NonNullAssert\":o instanceof t.PrefixNot?\"PrefixNot\":o instanceof t.PropertyRead?\"PropertyRead\":o instanceof t.PropertyWrite?\"PropertyWrite\":o instanceof t.Quote?\"Quote\":o instanceof t.SafeMethodCall?\"SafeMethodCall\":o instanceof t.SafePropertyRead?\"SafePropertyRead\":o.type}e.getNgType=O;function N(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==E&&/\\s/.test(d[I-1]);)I--;for(;E!==I&&/\\s/.test(d[E]);)E++;return{start:E,end:I}}function c(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==d.length&&/\\s/.test(d[I]);)I++;for(;E!==0&&/\\s/.test(d[E-1]);)E--;return{start:E,end:I}}function g(o,d){return d[o.start-1]===\"(\"&&d[o.end]===\")\"?{start:o.start-1,end:o.end+1}:o}function u(o,d,y){let C=0,E={start:o.start,end:o.end};for(;;){let I=c(E,d),j=g(I,d);if(I.start===j.start&&I.end===j.end)break;E.start=j.start,E.end=j.end,C++}return{hasParens:(y?C-1:C)!==0,outerSpan:N(y?{start:E.start+1,end:E.end-1}:E,d),innerSpan:N(o,d)}}e.fitSpans=u;function v(o,d,y){let C=d;for(;!o.test(y[C]);)if(--C<0)throw new Error(\"Cannot find front char \".concat(o,\" from index \").concat(d,\" in \").concat(JSON.stringify(y)));return C}e.findFrontChar=v;function m(o,d,y){let C=d;for(;!o.test(y[C]);)if(++C>=y.length)throw new Error(\"Cannot find back char \".concat(o,\" from index \").concat(d,\" in \").concat(JSON.stringify(y)));return C}e.findBackChar=m;function f(o){return o.slice(0,1).toLowerCase()+o.slice(1)}e.toLowerCamelCase=f;function w(o){return o.length===0?void 0:o[o.length-1]}e.getLast=w}}),an=q({\"node_modules/angular-estree-parser/lib/transform.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.transformSpan=e.transform=void 0;var t=ft(),n=function(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,l=t.getNgType(s);switch(l){case\"Unary\":{let{operator:c,expr:g}=s,u=h(g);return p(\"UnaryExpression\",{prefix:!0,argument:u,operator:c},s.span,{hasParentParens:i})}case\"Binary\":{let{left:c,operation:g,right:u}=s,v=u.span.start===u.span.end,m=c.span.start===c.span.end;if(v||m){let o=c.span.start===c.span.end?h(u):h(c);return p(\"UnaryExpression\",{prefix:!0,argument:o,operator:v?\"+\":\"-\"},{start:s.span.start,end:N(o)},{hasParentParens:i})}let f=h(c),w=h(u);return p(g===\"&&\"||g===\"||\"?\"LogicalExpression\":\"BinaryExpression\",{left:f,right:w,operator:g},{start:O(f),end:N(w)},{hasParentParens:i})}case\"BindingPipe\":{let{exp:c,name:g,args:u}=s,v=h(c),m=b(/\\S/,b(/\\|/,N(v))+1),f=p(\"Identifier\",{name:g},{start:m,end:m+g.length}),w=u.map(h);return p(\"NGPipeExpression\",{left:v,right:f,arguments:w},{start:O(v),end:N(w.length===0?f:t.getLast(w))},{hasParentParens:i})}case\"Chain\":{let{expressions:c}=s;return p(\"NGChainedExpression\",{expressions:c.map(h)},s.span,{hasParentParens:i})}case\"Comment\":{let{value:c}=s;return p(\"CommentLine\",{value:c},s.span,{processSpan:!1})}case\"Conditional\":{let{condition:c,trueExp:g,falseExp:u}=s,v=h(c),m=h(g),f=h(u);return p(\"ConditionalExpression\",{test:v,consequent:m,alternate:f},{start:O(v),end:N(f)},{hasParentParens:i})}case\"EmptyExpr\":return p(\"NGEmptyExpression\",{},s.span,{hasParentParens:i});case\"FunctionCall\":{let{target:c,args:g}=s,u=g.length===1?[P(g[0])]:g.map(h),v=h(c);return p(\"CallExpression\",{callee:v,arguments:u},{start:O(v),end:s.span.end},{hasParentParens:i})}case\"ImplicitReceiver\":return p(\"ThisExpression\",{},s.span,{hasParentParens:i});case\"KeyedRead\":{let{key:c}=s,g=Object.prototype.hasOwnProperty.call(s,\"receiver\")?s.receiver:s.obj,u=h(c);return x(g,u,{computed:!0,optional:!1},{end:s.span.end,hasParentParens:i})}case\"LiteralArray\":{let{expressions:c}=s;return p(\"ArrayExpression\",{elements:c.map(h)},s.span,{hasParentParens:i})}case\"LiteralMap\":{let{keys:c,values:g}=s,u=g.map(m=>h(m)),v=c.map((m,f)=>{let{key:w,quoted:o}=m,d=u[f],y=b(/\\S/,f===0?s.span.start+1:b(/,/,N(u[f-1]))+1),C=A(/\\S/,A(/:/,O(d)-1)-1)+1,E={start:y,end:C},I=o?p(\"StringLiteral\",{value:w},E):p(\"Identifier\",{name:w},E),j=I.end3&&arguments[3]!==void 0?arguments[3]:{},f=Object.assign(Object.assign({type:c},r(u,a,v,m)),g);switch(c){case\"Identifier\":{let w=f;w.loc.identifierName=w.name;break}case\"NumericLiteral\":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}case\"StringLiteral\":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}}return f}function x(c,g,u){let{end:v=N(g),hasParentParens:m=!1}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};if(_(c)||c.span.start===g.start)return g;let f=h(c),w=R(f);return p(u.optional||w?\"OptionalMemberExpression\":\"MemberExpression\",Object.assign({object:f,property:g,computed:u.computed},u.optional?{optional:!0}:w?{optional:!1}:null),{start:O(f),end:v},{hasParentParens:m})}function A(c,g){return t.findFrontChar(c,g,a.text)}function b(c,g){return t.findBackChar(c,g,a.text)}function _(c){return c.span.start>=c.span.end||/^\\s+$/.test(a.text.slice(c.span.start,c.span.end))}function R(c){return(c.type===\"OptionalCallExpression\"||c.type===\"OptionalMemberExpression\")&&!T(c)}function T(c){return c.extra&&c.extra.parenthesized}function O(c){return T(c)?c.extra.parenStart:c.start}function N(c){return T(c)?c.extra.parenEnd:c.end}};e.transform=n;function r(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!i){let{start:x,end:A}=s;return{start:x,end:A,loc:{start:a.locator.locationForIndex(x),end:a.locator.locationForIndex(A)}}}let{outerSpan:h,innerSpan:P,hasParens:p}=t.fitSpans(s,a.text,l);return Object.assign({start:P.start,end:P.end,loc:{start:a.locator.locationForIndex(P.start),end:a.locator.locationForIndex(P.end)}},p&&{extra:{parenthesized:!0,parenStart:h.start,parenEnd:h.end}})}e.transformSpan=r}}),Rn=q({\"node_modules/angular-estree-parser/lib/transform-microsyntax.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.transformTemplateBindings=void 0;var t=(tt(),be(Je)),n=an(),r=ft();function s(a,i){a.forEach(N);let[l]=a,{key:h}=l,P=i.text.slice(l.sourceSpan.start,l.sourceSpan.end).trim().length===0?a.slice(1):a,p=[],x=null;for(let u=0;uObject.assign(Object.assign({},d),n.transformSpan({start:d.start,end:y},i)),w=d=>Object.assign(Object.assign({},f(d,m.end)),{alias:m}),o=p.pop();if(o.type===\"NGMicrosyntaxExpression\")p.push(w(o));else if(o.type===\"NGMicrosyntaxKeyedExpression\"){let d=w(o.expression);p.push(f(Object.assign(Object.assign({},o),{expression:d}),d.end))}else throw new Error(\"Unexpected type \".concat(o.type))}else p.push(A(v,u));x=v}return _(\"NGMicrosyntax\",{body:p},p.length===0?a[0].sourceSpan:{start:p[0].start,end:p[p.length-1].end});function A(u,v){if(T(u)){let{key:m,value:f}=u;return f?v===0?_(\"NGMicrosyntaxExpression\",{expression:b(f.ast),alias:null},f.sourceSpan):_(\"NGMicrosyntaxKeyedExpression\",{key:_(\"NGMicrosyntaxKey\",{name:R(m.source)},m.span),expression:_(\"NGMicrosyntaxExpression\",{expression:b(f.ast),alias:null},f.sourceSpan)},{start:m.span.start,end:f.sourceSpan.end}):_(\"NGMicrosyntaxKey\",{name:R(m.source)},m.span)}else{let{key:m,sourceSpan:f}=u;if(/^let\\s$/.test(i.text.slice(f.start,f.start+4))){let{value:o}=u;return _(\"NGMicrosyntaxLet\",{key:_(\"NGMicrosyntaxKey\",{name:m.source},m.span),value:o?_(\"NGMicrosyntaxKey\",{name:o.source},o.span):null},{start:f.start,end:o?o.span.end:m.span.end})}else{let o=g(u);return _(\"NGMicrosyntaxAs\",{key:_(\"NGMicrosyntaxKey\",{name:o.source},o.span),alias:_(\"NGMicrosyntaxKey\",{name:m.source},m.span)},{start:o.span.start,end:m.span.end})}}}function b(u){return n.transform(u,i)}function _(u,v,m){let f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Object.assign(Object.assign({type:u},n.transformSpan(m,i,f)),v)}function R(u){return r.toLowerCamelCase(u.slice(h.source.length))}function T(u){return u instanceof t.ExpressionBinding}function O(u){return u instanceof t.VariableBinding}function N(u){c(u.key.span),O(u)&&u.value&&c(u.value.span)}function c(u){if(i.text[u.start]!=='\"'&&i.text[u.start]!==\"'\")return;let v=i.text[u.start],m=!1;for(let f=u.start+1;fn.transform(N,R),O=T(b);return O.comments=_.map(T),O}function i(x){return a(x,s.parseNgBinding)}e.parseBinding=i;function l(x){return a(x,s.parseNgSimpleBinding)}e.parseSimpleBinding=l;function h(x){return a(x,s.parseNgInterpolation)}e.parseInterpolation=h;function P(x){return a(x,s.parseNgAction)}e.parseAction=P;function p(x){return r.transformTemplateBindings(s.parseNgTemplateBindings(x),new t.Context(x))}e.parseTemplateBindings=p}});L();var{locStart:Bn,locEnd:Kn}=fn();function Ne(e){return{astFormat:\"estree\",parse:(n,r,s)=>{let a=Tn(),i=e(n,a);return{type:\"NGRoot\",node:s.parser===\"__ng_action\"&&i.type!==\"NGChainedExpression\"?Object.assign(Object.assign({},i),{},{type:\"NGChainedExpression\",expressions:[i]}):i}},locStart:Bn,locEnd:Kn}}on.exports={parsers:{__ng_action:Ne((e,t)=>t.parseAction(e)),__ng_binding:Ne((e,t)=>t.parseBinding(e)),__ng_interpolation:Ne((e,t)=>t.parseInterpolation(e)),__ng_directive:Ne((e,t)=>t.parseTemplateBindings(e))}}});return Mn();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.babel=e()}})(function(){\"use strict\";var b=(h,l)=>()=>(l||h((l={exports:{}}).exports,l),l.exports);var G=b((zf,Jr)=>{var Tt=function(h){return h&&h.Math==Math&&h};Jr.exports=Tt(typeof globalThis==\"object\"&&globalThis)||Tt(typeof window==\"object\"&&window)||Tt(typeof self==\"object\"&&self)||Tt(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var Ae=b((Kf,Yr)=>{Yr.exports=function(h){try{return!!h()}catch{return!0}}});var ke=b((Vf,$r)=>{var hl=Ae();$r.exports=!hl(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Et=b((Hf,Qr)=>{var ll=Ae();Qr.exports=!ll(function(){var h=function(){}.bind();return typeof h!=\"function\"||h.hasOwnProperty(\"prototype\")})});var bt=b((Wf,Zr)=>{var ul=Et(),Ct=Function.prototype.call;Zr.exports=ul?Ct.bind(Ct):function(){return Ct.apply(Ct,arguments)}});var ri=b(si=>{\"use strict\";var ei={}.propertyIsEnumerable,ti=Object.getOwnPropertyDescriptor,cl=ti&&!ei.call({1:2},1);si.f=cl?function(l){var p=ti(this,l);return!!p&&p.enumerable}:ei});var ms=b((Xf,ii)=>{ii.exports=function(h,l){return{enumerable:!(h&1),configurable:!(h&2),writable:!(h&4),value:l}}});var ie=b((Jf,oi)=>{var ai=Et(),ni=Function.prototype,pl=ni.bind,ys=ni.call,fl=ai&&pl.bind(ys,ys);oi.exports=ai?function(h){return h&&fl(h)}:function(h){return h&&function(){return ys.apply(h,arguments)}}});var vt=b((Yf,li)=>{var hi=ie(),dl=hi({}.toString),ml=hi(\"\".slice);li.exports=function(h){return ml(dl(h),8,-1)}});var ci=b(($f,ui)=>{var yl=G(),xl=ie(),gl=Ae(),Al=vt(),xs=yl.Object,Pl=xl(\"\".split);ui.exports=gl(function(){return!xs(\"z\").propertyIsEnumerable(0)})?function(h){return Al(h)==\"String\"?Pl(h,\"\"):xs(h)}:xs});var gs=b((Qf,pi)=>{var Tl=G(),El=Tl.TypeError;pi.exports=function(h){if(h==null)throw El(\"Can't call method on \"+h);return h}});var St=b((Zf,fi)=>{var Cl=ci(),bl=gs();fi.exports=function(h){return Cl(bl(h))}});var ae=b((ed,di)=>{di.exports=function(h){return typeof h==\"function\"}});var De=b((td,mi)=>{var vl=ae();mi.exports=function(h){return typeof h==\"object\"?h!==null:vl(h)}});var Qe=b((sd,yi)=>{var As=G(),Sl=ae(),wl=function(h){return Sl(h)?h:void 0};yi.exports=function(h,l){return arguments.length<2?wl(As[h]):As[h]&&As[h][l]}});var gi=b((rd,xi)=>{var Nl=ie();xi.exports=Nl({}.isPrototypeOf)});var Pi=b((id,Ai)=>{var Il=Qe();Ai.exports=Il(\"navigator\",\"userAgent\")||\"\"});var wi=b((ad,Si)=>{var vi=G(),Ps=Pi(),Ti=vi.process,Ei=vi.Deno,Ci=Ti&&Ti.versions||Ei&&Ei.version,bi=Ci&&Ci.v8,oe,wt;bi&&(oe=bi.split(\".\"),wt=oe[0]>0&&oe[0]<4?1:+(oe[0]+oe[1]));!wt&&Ps&&(oe=Ps.match(/Edge\\/(\\d+)/),(!oe||oe[1]>=74)&&(oe=Ps.match(/Chrome\\/(\\d+)/),oe&&(wt=+oe[1])));Si.exports=wt});var Ts=b((nd,Ii)=>{var Ni=wi(),kl=Ae();Ii.exports=!!Object.getOwnPropertySymbols&&!kl(function(){var h=Symbol();return!String(h)||!(Object(h)instanceof Symbol)||!Symbol.sham&&Ni&&Ni<41})});var Es=b((od,ki)=>{var Dl=Ts();ki.exports=Dl&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Cs=b((hd,Di)=>{var Fl=G(),Ll=Qe(),Ol=ae(),Bl=gi(),Ml=Es(),Rl=Fl.Object;Di.exports=Ml?function(h){return typeof h==\"symbol\"}:function(h){var l=Ll(\"Symbol\");return Ol(l)&&Bl(l.prototype,Rl(h))}});var Li=b((ld,Fi)=>{var jl=G(),ql=jl.String;Fi.exports=function(h){try{return ql(h)}catch{return\"Object\"}}});var Nt=b((ud,Oi)=>{var Ul=G(),_l=ae(),zl=Li(),Kl=Ul.TypeError;Oi.exports=function(h){if(_l(h))return h;throw Kl(zl(h)+\" is not a function\")}});var Mi=b((cd,Bi)=>{var Vl=Nt();Bi.exports=function(h,l){var p=h[l];return p==null?void 0:Vl(p)}});var ji=b((pd,Ri)=>{var Hl=G(),bs=bt(),vs=ae(),Ss=De(),Wl=Hl.TypeError;Ri.exports=function(h,l){var p,d;if(l===\"string\"&&vs(p=h.toString)&&!Ss(d=bs(p,h))||vs(p=h.valueOf)&&!Ss(d=bs(p,h))||l!==\"string\"&&vs(p=h.toString)&&!Ss(d=bs(p,h)))return d;throw Wl(\"Can't convert object to primitive value\")}});var Ui=b((fd,qi)=>{qi.exports=!1});var It=b((dd,zi)=>{var _i=G(),Gl=Object.defineProperty;zi.exports=function(h,l){try{Gl(_i,h,{value:l,configurable:!0,writable:!0})}catch{_i[h]=l}return l}});var kt=b((md,Vi)=>{var Xl=G(),Jl=It(),Ki=\"__core-js_shared__\",Yl=Xl[Ki]||Jl(Ki,{});Vi.exports=Yl});var ws=b((yd,Wi)=>{var $l=Ui(),Hi=kt();(Wi.exports=function(h,l){return Hi[h]||(Hi[h]=l!==void 0?l:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:$l?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var Ns=b((xd,Gi)=>{var Ql=G(),Zl=gs(),eu=Ql.Object;Gi.exports=function(h){return eu(Zl(h))}});var be=b((gd,Xi)=>{var tu=ie(),su=Ns(),ru=tu({}.hasOwnProperty);Xi.exports=Object.hasOwn||function(l,p){return ru(su(l),p)}});var Is=b((Ad,Ji)=>{var iu=ie(),au=0,nu=Math.random(),ou=iu(1 .toString);Ji.exports=function(h){return\"Symbol(\"+(h===void 0?\"\":h)+\")_\"+ou(++au+nu,36)}});var Ze=b((Pd,ea)=>{var hu=G(),lu=ws(),Yi=be(),uu=Is(),$i=Ts(),Zi=Es(),_e=lu(\"wks\"),Fe=hu.Symbol,Qi=Fe&&Fe.for,cu=Zi?Fe:Fe&&Fe.withoutSetter||uu;ea.exports=function(h){if(!Yi(_e,h)||!($i||typeof _e[h]==\"string\")){var l=\"Symbol.\"+h;$i&&Yi(Fe,h)?_e[h]=Fe[h]:Zi&&Qi?_e[h]=Qi(l):_e[h]=cu(l)}return _e[h]}});var ia=b((Td,ra)=>{var pu=G(),fu=bt(),ta=De(),sa=Cs(),du=Mi(),mu=ji(),yu=Ze(),xu=pu.TypeError,gu=yu(\"toPrimitive\");ra.exports=function(h,l){if(!ta(h)||sa(h))return h;var p=du(h,gu),d;if(p){if(l===void 0&&(l=\"default\"),d=fu(p,h,l),!ta(d)||sa(d))return d;throw xu(\"Can't convert object to primitive value\")}return l===void 0&&(l=\"number\"),mu(h,l)}});var ks=b((Ed,aa)=>{var Au=ia(),Pu=Cs();aa.exports=function(h){var l=Au(h,\"string\");return Pu(l)?l:l+\"\"}});var ha=b((Cd,oa)=>{var Tu=G(),na=De(),Ds=Tu.document,Eu=na(Ds)&&na(Ds.createElement);oa.exports=function(h){return Eu?Ds.createElement(h):{}}});var Fs=b((bd,la)=>{var Cu=ke(),bu=Ae(),vu=ha();la.exports=!Cu&&!bu(function(){return Object.defineProperty(vu(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Ls=b(ca=>{var Su=ke(),wu=bt(),Nu=ri(),Iu=ms(),ku=St(),Du=ks(),Fu=be(),Lu=Fs(),ua=Object.getOwnPropertyDescriptor;ca.f=Su?ua:function(l,p){if(l=ku(l),p=Du(p),Lu)try{return ua(l,p)}catch{}if(Fu(l,p))return Iu(!wu(Nu.f,l,p),l[p])}});var fa=b((Sd,pa)=>{var Ou=ke(),Bu=Ae();pa.exports=Ou&&Bu(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var Os=b((wd,ma)=>{var da=G(),Mu=De(),Ru=da.String,ju=da.TypeError;ma.exports=function(h){if(Mu(h))return h;throw ju(Ru(h)+\" is not an object\")}});var qs=b(xa=>{var qu=G(),Uu=ke(),_u=Fs(),zu=fa(),Dt=Os(),ya=ks(),Ku=qu.TypeError,Bs=Object.defineProperty,Vu=Object.getOwnPropertyDescriptor,Ms=\"enumerable\",Rs=\"configurable\",js=\"writable\";xa.f=Uu?zu?function(l,p,d){if(Dt(l),p=ya(p),Dt(d),typeof l==\"function\"&&p===\"prototype\"&&\"value\"in d&&js in d&&!d[js]){var m=Vu(l,p);m&&m[js]&&(l[p]=d.value,d={configurable:Rs in d?d[Rs]:m[Rs],enumerable:Ms in d?d[Ms]:m[Ms],writable:!1})}return Bs(l,p,d)}:Bs:function(l,p,d){if(Dt(l),p=ya(p),Dt(d),_u)try{return Bs(l,p,d)}catch{}if(\"get\"in d||\"set\"in d)throw Ku(\"Accessors not supported\");return\"value\"in d&&(l[p]=d.value),l}});var Ft=b((Id,ga)=>{var Hu=ke(),Wu=qs(),Gu=ms();ga.exports=Hu?function(h,l,p){return Wu.f(h,l,Gu(1,p))}:function(h,l,p){return h[l]=p,h}});var Lt=b((kd,Aa)=>{var Xu=ie(),Ju=ae(),Us=kt(),Yu=Xu(Function.toString);Ju(Us.inspectSource)||(Us.inspectSource=function(h){return Yu(h)});Aa.exports=Us.inspectSource});var Ea=b((Dd,Ta)=>{var $u=G(),Qu=ae(),Zu=Lt(),Pa=$u.WeakMap;Ta.exports=Qu(Pa)&&/native code/.test(Zu(Pa))});var va=b((Fd,ba)=>{var ec=ws(),tc=Is(),Ca=ec(\"keys\");ba.exports=function(h){return Ca[h]||(Ca[h]=tc(h))}});var _s=b((Ld,Sa)=>{Sa.exports={}});var Fa=b((Od,Da)=>{var sc=Ea(),ka=G(),zs=ie(),rc=De(),ic=Ft(),Ks=be(),Vs=kt(),ac=va(),nc=_s(),wa=\"Object already initialized\",Ws=ka.TypeError,oc=ka.WeakMap,Ot,et,Bt,hc=function(h){return Bt(h)?et(h):Ot(h,{})},lc=function(h){return function(l){var p;if(!rc(l)||(p=et(l)).type!==h)throw Ws(\"Incompatible receiver, \"+h+\" required\");return p}};sc||Vs.state?(ve=Vs.state||(Vs.state=new oc),Na=zs(ve.get),Hs=zs(ve.has),Ia=zs(ve.set),Ot=function(h,l){if(Hs(ve,h))throw new Ws(wa);return l.facade=h,Ia(ve,h,l),l},et=function(h){return Na(ve,h)||{}},Bt=function(h){return Hs(ve,h)}):(Le=ac(\"state\"),nc[Le]=!0,Ot=function(h,l){if(Ks(h,Le))throw new Ws(wa);return l.facade=h,ic(h,Le,l),l},et=function(h){return Ks(h,Le)?h[Le]:{}},Bt=function(h){return Ks(h,Le)});var ve,Na,Hs,Ia,Le;Da.exports={set:Ot,get:et,has:Bt,enforce:hc,getterFor:lc}});var Ba=b((Bd,Oa)=>{var Gs=ke(),uc=be(),La=Function.prototype,cc=Gs&&Object.getOwnPropertyDescriptor,Xs=uc(La,\"name\"),pc=Xs&&function(){}.name===\"something\",fc=Xs&&(!Gs||Gs&&cc(La,\"name\").configurable);Oa.exports={EXISTS:Xs,PROPER:pc,CONFIGURABLE:fc}});var Ua=b((Md,qa)=>{var dc=G(),Ma=ae(),mc=be(),Ra=Ft(),yc=It(),xc=Lt(),ja=Fa(),gc=Ba().CONFIGURABLE,Ac=ja.get,Pc=ja.enforce,Tc=String(String).split(\"String\");(qa.exports=function(h,l,p,d){var m=d?!!d.unsafe:!1,A=d?!!d.enumerable:!1,g=d?!!d.noTargetGet:!1,x=d&&d.name!==void 0?d.name:l,T;if(Ma(p)&&(String(x).slice(0,7)===\"Symbol(\"&&(x=\"[\"+String(x).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!mc(p,\"name\")||gc&&p.name!==x)&&Ra(p,\"name\",x),T=Pc(p),T.source||(T.source=Tc.join(typeof x==\"string\"?x:\"\"))),h===dc){A?h[l]=p:yc(l,p);return}else m?!g&&h[l]&&(A=!0):delete h[l];A?h[l]=p:Ra(h,l,p)})(Function.prototype,\"toString\",function(){return Ma(this)&&Ac(this).source||xc(this)})});var Js=b((Rd,_a)=>{var Ec=Math.ceil,Cc=Math.floor;_a.exports=function(h){var l=+h;return l!==l||l===0?0:(l>0?Cc:Ec)(l)}});var Ka=b((jd,za)=>{var bc=Js(),vc=Math.max,Sc=Math.min;za.exports=function(h,l){var p=bc(h);return p<0?vc(p+l,0):Sc(p,l)}});var Ha=b((qd,Va)=>{var wc=Js(),Nc=Math.min;Va.exports=function(h){return h>0?Nc(wc(h),9007199254740991):0}});var Mt=b((Ud,Wa)=>{var Ic=Ha();Wa.exports=function(h){return Ic(h.length)}});var Ja=b((_d,Xa)=>{var kc=St(),Dc=Ka(),Fc=Mt(),Ga=function(h){return function(l,p,d){var m=kc(l),A=Fc(m),g=Dc(d,A),x;if(h&&p!=p){for(;A>g;)if(x=m[g++],x!=x)return!0}else for(;A>g;g++)if((h||g in m)&&m[g]===p)return h||g||0;return!h&&-1}};Xa.exports={includes:Ga(!0),indexOf:Ga(!1)}});var Qa=b((zd,$a)=>{var Lc=ie(),Ys=be(),Oc=St(),Bc=Ja().indexOf,Mc=_s(),Ya=Lc([].push);$a.exports=function(h,l){var p=Oc(h),d=0,m=[],A;for(A in p)!Ys(Mc,A)&&Ys(p,A)&&Ya(m,A);for(;l.length>d;)Ys(p,A=l[d++])&&(~Bc(m,A)||Ya(m,A));return m}});var en=b((Kd,Za)=>{Za.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var sn=b(tn=>{var Rc=Qa(),jc=en(),qc=jc.concat(\"length\",\"prototype\");tn.f=Object.getOwnPropertyNames||function(l){return Rc(l,qc)}});var an=b(rn=>{rn.f=Object.getOwnPropertySymbols});var on=b((Wd,nn)=>{var Uc=Qe(),_c=ie(),zc=sn(),Kc=an(),Vc=Os(),Hc=_c([].concat);nn.exports=Uc(\"Reflect\",\"ownKeys\")||function(l){var p=zc.f(Vc(l)),d=Kc.f;return d?Hc(p,d(l)):p}});var un=b((Gd,ln)=>{var hn=be(),Wc=on(),Gc=Ls(),Xc=qs();ln.exports=function(h,l,p){for(var d=Wc(l),m=Xc.f,A=Gc.f,g=0;g{var Jc=Ae(),Yc=ae(),$c=/#|\\.prototype\\./,tt=function(h,l){var p=Zc[Qc(h)];return p==tp?!0:p==ep?!1:Yc(l)?Jc(l):!!l},Qc=tt.normalize=function(h){return String(h).replace($c,\".\").toLowerCase()},Zc=tt.data={},ep=tt.NATIVE=\"N\",tp=tt.POLYFILL=\"P\";cn.exports=tt});var Qs=b((Jd,fn)=>{var $s=G(),sp=Ls().f,rp=Ft(),ip=Ua(),ap=It(),np=un(),op=pn();fn.exports=function(h,l){var p=h.target,d=h.global,m=h.stat,A,g,x,T,k,D;if(d?g=$s:m?g=$s[p]||ap(p,{}):g=($s[p]||{}).prototype,g)for(x in l){if(k=l[x],h.noTargetGet?(D=sp(g,x),T=D&&D.value):T=g[x],A=op(d?x:p+(m?\".\":\"#\")+x,h.forced),!A&&T!==void 0){if(typeof k==typeof T)continue;np(k,T)}(h.sham||T&&T.sham)&&rp(k,\"sham\",!0),ip(g,x,k,h)}}});var dn=b(()=>{var hp=Qs(),lp=G();hp({global:!0},{globalThis:lp})});var mn=b(()=>{dn()});var Zs=b((em,yn)=>{var up=vt();yn.exports=Array.isArray||function(l){return up(l)==\"Array\"}});var An=b((tm,gn)=>{var xn=ie(),cp=Nt(),pp=Et(),fp=xn(xn.bind);gn.exports=function(h,l){return cp(h),l===void 0?h:pp?fp(h,l):function(){return h.apply(l,arguments)}}});var En=b((sm,Tn)=>{\"use strict\";var dp=G(),mp=Zs(),yp=Mt(),xp=An(),gp=dp.TypeError,Pn=function(h,l,p,d,m,A,g,x){for(var T=m,k=0,D=g?xp(g,x):!1,E,L;k0&&mp(E))L=yp(E),T=Pn(h,l,E,L,T,A-1)-1;else{if(T>=9007199254740991)throw gp(\"Exceed the acceptable array length\");h[T]=E}T++}k++}return T};Tn.exports=Pn});var vn=b((rm,bn)=>{var Ap=Ze(),Pp=Ap(\"toStringTag\"),Cn={};Cn[Pp]=\"z\";bn.exports=String(Cn)===\"[object z]\"});var wn=b((im,Sn)=>{var Tp=G(),Ep=vn(),Cp=ae(),Rt=vt(),bp=Ze(),vp=bp(\"toStringTag\"),Sp=Tp.Object,wp=Rt(function(){return arguments}())==\"Arguments\",Np=function(h,l){try{return h[l]}catch{}};Sn.exports=Ep?Rt:function(h){var l,p,d;return h===void 0?\"Undefined\":h===null?\"Null\":typeof(p=Np(l=Sp(h),vp))==\"string\"?p:wp?Rt(l):(d=Rt(l))==\"Object\"&&Cp(l.callee)?\"Arguments\":d}});var Ln=b((am,Fn)=>{var Ip=ie(),kp=Ae(),Nn=ae(),Dp=wn(),Fp=Qe(),Lp=Lt(),In=function(){},Op=[],kn=Fp(\"Reflect\",\"construct\"),er=/^\\s*(?:class|function)\\b/,Bp=Ip(er.exec),Mp=!er.exec(In),st=function(l){if(!Nn(l))return!1;try{return kn(In,Op,l),!0}catch{return!1}},Dn=function(l){if(!Nn(l))return!1;switch(Dp(l)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return Mp||!!Bp(er,Lp(l))}catch{return!0}};Dn.sham=!0;Fn.exports=!kn||kp(function(){var h;return st(st.call)||!st(Object)||!st(function(){h=!0})||h})?Dn:st});var Rn=b((nm,Mn)=>{var Rp=G(),On=Zs(),jp=Ln(),qp=De(),Up=Ze(),_p=Up(\"species\"),Bn=Rp.Array;Mn.exports=function(h){var l;return On(h)&&(l=h.constructor,jp(l)&&(l===Bn||On(l.prototype))?l=void 0:qp(l)&&(l=l[_p],l===null&&(l=void 0))),l===void 0?Bn:l}});var qn=b((om,jn)=>{var zp=Rn();jn.exports=function(h,l){return new(zp(h))(l===0?0:l)}});var Un=b(()=>{\"use strict\";var Kp=Qs(),Vp=En(),Hp=Nt(),Wp=Ns(),Gp=Mt(),Xp=qn();Kp({target:\"Array\",proto:!0},{flatMap:function(l){var p=Wp(this),d=Gp(p),m;return Hp(l),m=Xp(p,0),m.length=Vp(m,p,p,d,0,1,l,arguments.length>1?arguments[1]:void 0),m}})});var qf=b((um,Eo)=>{var _n,zn,Kn,Vn,Hn;function rt(h,l){return l||(l=h.slice(0)),Object.freeze(Object.defineProperties(h,{raw:{value:Object.freeze(l)}}))}mn();Un();var ir=Object.defineProperty,Jp=Object.getOwnPropertyDescriptor,ar=Object.getOwnPropertyNames,Yp=Object.prototype.hasOwnProperty,$n=(h,l)=>function(){return h&&(l=(0,h[ar(h)[0]])(h=0)),l},H=(h,l)=>function(){return l||(0,h[ar(h)[0]])((l={exports:{}}).exports,l),l.exports},$p=(h,l)=>{for(var p in l)ir(h,p,{get:l[p],enumerable:!0})},Qp=(h,l,p,d)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of ar(l))!Yp.call(h,m)&&m!==p&&ir(h,m,{get:()=>l[m],enumerable:!(d=Jp(l,m))||d.enumerable});return h},Zp=h=>Qp(ir({},\"__esModule\",{value:!0}),h),V=$n({\"\"(){}}),ef=H({\"src/utils/try-combinations.js\"(h,l){\"use strict\";V();function p(){let d;for(var m=arguments.length,A=new Array(m),g=0;g{let E=D&&D.backwards;if(k===!1)return!1;let{length:L}=T,R=k;for(;R>=0&&Rrr,arch:()=>nf,cpus:()=>oo,default:()=>po,endianness:()=>to,freemem:()=>ao,getNetworkInterfaces:()=>co,hostname:()=>so,loadavg:()=>ro,networkInterfaces:()=>uo,platform:()=>of,release:()=>lo,tmpDir:()=>tr,tmpdir:()=>sr,totalmem:()=>no,type:()=>ho,uptime:()=>io});function to(){if(typeof jt>\"u\"){var h=new ArrayBuffer(2),l=new Uint8Array(h),p=new Uint16Array(h);if(l[0]=1,l[1]=2,p[0]===258)jt=\"BE\";else if(p[0]===513)jt=\"LE\";else throw new Error(\"unable to figure out endianess\")}return jt}function so(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function ro(){return[]}function io(){return 0}function ao(){return Number.MAX_VALUE}function no(){return Number.MAX_VALUE}function oo(){return[]}function ho(){return\"Browser\"}function lo(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function uo(){}function co(){}function nf(){return\"javascript\"}function of(){return\"browser\"}function tr(){return\"/tmp\"}var jt,sr,rr,po,hf=$n({\"node-modules-polyfills:os\"(){V(),sr=tr,rr=`\n`,po={EOL:rr,tmpdir:sr,tmpDir:tr,networkInterfaces:uo,getNetworkInterfaces:co,release:lo,type:ho,cpus:oo,totalmem:no,freemem:ao,uptime:io,loadavg:ro,hostname:so,endianness:to}}}),lf=H({\"node-modules-polyfills-commonjs:os\"(h,l){V();var p=(hf(),Zp(eo));if(p&&p.default){l.exports=p.default;for(let d in p)l.exports[d]=p[d]}else p&&(l.exports=p)}}),uf=H({\"node_modules/detect-newline/index.js\"(h,l){\"use strict\";V();var p=d=>{if(typeof d!=\"string\")throw new TypeError(\"Expected a string\");let m=d.match(/(?:\\r?\\n)/g)||[];if(m.length===0)return;let A=m.filter(x=>x===`\\r\n`).length,g=m.length-A;return A>g?`\\r\n`:`\n`};l.exports=p,l.exports.graceful=d=>typeof d==\"string\"&&p(d)||`\n`}}),cf=H({\"node_modules/jest-docblock/build/index.js\"(h){\"use strict\";V(),Object.defineProperty(h,\"__esModule\",{value:!0}),h.extract=R,h.parse=W,h.parseWithComments=Y,h.print=M,h.strip=F;function l(){let u=lf();return l=function(){return u},u}function p(){let u=d(uf());return p=function(){return u},u}function d(u){return u&&u.__esModule?u:{default:u}}var m=/\\*\\/$/,A=/^\\/\\*\\*/,g=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,x=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,T=/^(\\r?\\n)+/,k=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,D=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,E=/(\\r?\\n|^) *\\* ?/g,L=[];function R(u){let X=u.match(g);return X?X[0].trimLeft():\"\"}function F(u){let X=u.match(g);return X&&X[0]?u.substring(X[0].length):u}function W(u){return Y(u).pragmas}function Y(u){let X=(0,p().default)(u)||l().EOL;u=u.replace(A,\"\").replace(m,\"\").replace(E,\"$1\");let se=\"\";for(;se!==u;)se=u,u=u.replace(k,\"\".concat(X,\"$1 $2\").concat(X));u=u.replace(T,\"\").trimRight();let J=Object.create(null),Oe=u.replace(D,\"\").replace(T,\"\").trimRight(),$;for(;$=D.exec(u);){let z=$[2].replace(x,\"\");typeof J[$[1]]==\"string\"||Array.isArray(J[$[1]])?J[$[1]]=L.concat(J[$[1]],z):J[$[1]]=z}return{comments:Oe,pragmas:J}}function M(u){let{comments:X=\"\",pragmas:se={}}=u,J=(0,p().default)(X)||l().EOL,Oe=\"/**\",$=\" *\",z=\" */\",O=Object.keys(se),C=O.map(Z=>j(Z,se[Z])).reduce((Z,he)=>Z.concat(he),[]).map(Z=>$+\" \"+Z+J).join(\"\");if(!X){if(O.length===0)return\"\";if(O.length===1&&!Array.isArray(se[O[0]])){let Z=se[O[0]];return\"\".concat(Oe,\" \").concat(j(O[0],Z)[0]).concat(z)}}let Ve=X.split(J).map(Z=>\"\".concat($,\" \").concat(Z)).join(J)+J;return Oe+J+(X?Ve:\"\")+(X&&O.length?$+J:\"\")+C+z}function j(u,X){return L.concat(X).map(se=>\"@\".concat(u,\" \").concat(se).trim())}}}),pf=H({\"src/common/end-of-line.js\"(h,l){\"use strict\";V();function p(g){let x=g.indexOf(\"\\r\");return x>=0?g.charAt(x+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function d(g){switch(g){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function m(g,x){let T;switch(x){case`\n`:T=/\\n/g;break;case\"\\r\":T=/\\r/g;break;case`\\r\n`:T=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(x),\".\"))}let k=g.match(T);return k?k.length:0}function A(g){return g.replace(/\\r\\n?/g,`\n`)}l.exports={guessEndOfLine:p,convertEndOfLineToChars:d,countEndOfLineChars:m,normalizeEndOfLine:A}}}),ff=H({\"src/language-js/pragma.js\"(h,l){\"use strict\";V();var{parseWithComments:p,strip:d,extract:m,print:A}=cf(),{normalizeEndOfLine:g}=pf(),x=Qn();function T(E){let L=x(E);L&&(E=E.slice(L.length+1));let R=m(E),{pragmas:F,comments:W}=p(R);return{shebang:L,text:E,pragmas:F,comments:W}}function k(E){let L=Object.keys(T(E).pragmas);return L.includes(\"prettier\")||L.includes(\"format\")}function D(E){let{shebang:L,text:R,pragmas:F,comments:W}=T(E),Y=d(R),M=A({pragmas:Object.assign({format:\"\"},F),comments:W.trimStart()});return(L?\"\".concat(L,`\n`):\"\")+g(M)+(Y.startsWith(`\n`)?`\n`:`\n\n`)+Y}l.exports={hasPragma:k,insertPragma:D}}}),fo=H({\"src/utils/is-non-empty-array.js\"(h,l){\"use strict\";V();function p(d){return Array.isArray(d)&&d.length>0}l.exports=p}}),mo=H({\"src/language-js/loc.js\"(h,l){\"use strict\";V();var p=fo();function d(T,k){let{ignoreDecorators:D}=k||{};if(!D){let E=T.declaration&&T.declaration.decorators||T.decorators;if(p(E))return d(E[0])}return T.range?T.range[0]:T.start}function m(T){return T.range?T.range[1]:T.end}function A(T,k){let D=d(T);return Number.isInteger(D)&&D===d(k)}function g(T,k){let D=m(T);return Number.isInteger(D)&&D===m(k)}function x(T,k){return A(T,k)&&g(T,k)}l.exports={locStart:d,locEnd:m,hasSameLocStart:A,hasSameLoc:x}}}),yo=H({\"src/language-js/parse/utils/create-parser.js\"(h,l){\"use strict\";V();var{hasPragma:p}=ff(),{locStart:d,locEnd:m}=mo();function A(g){return g=typeof g==\"function\"?{parse:g}:g,Object.assign({astFormat:\"estree\",hasPragma:p,locStart:d,locEnd:m},g)}l.exports=A}}),nr=H({\"src/common/parser-create-error.js\"(h,l){\"use strict\";V();function p(d,m){let A=new SyntaxError(d+\" (\"+m.start.line+\":\"+m.start.column+\")\");return A.loc=m,A}l.exports=p}}),xo=H({\"src/language-js/parse/utils/create-babel-parse-error.js\"(h,l){\"use strict\";V();var p=nr();function d(m){let{message:A,loc:g}=m;return p(A.replace(/ \\(.*\\)/,\"\"),{start:{line:g?g.line:0,column:g?g.column+1:0}})}l.exports=d}}),df=H({\"src/language-js/utils/is-ts-keyword-type.js\"(h,l){\"use strict\";V();function p(d){let{type:m}=d;return m.startsWith(\"TS\")&&m.endsWith(\"Keyword\")}l.exports=p}}),mf=H({\"src/language-js/utils/is-block-comment.js\"(h,l){\"use strict\";V();var p=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),d=m=>p.has(m==null?void 0:m.type);l.exports=d}}),yf=H({\"src/language-js/utils/is-type-cast-comment.js\"(h,l){\"use strict\";V();var p=mf();function d(m){return p(m)&&m.value[0]===\"*\"&&/@type\\b/.test(m.value)}l.exports=d}}),xf=H({\"src/utils/get-last.js\"(h,l){\"use strict\";V();var p=d=>d[d.length-1];l.exports=p}}),go=H({\"src/language-js/parse/postprocess/visit-node.js\"(h,l){\"use strict\";V();function p(d,m){if(Array.isArray(d)){for(let A=0;A{let R=k.get(L);return!R||!E.includes(R)}))&&d(T,\"Leading decorators must be attached to a class declaration\")}function A(x,T){x.kind!==167||x.modifiers&&!x.modifiers.some(E=>E.kind===126)||x.initializer&&T.value===null&&d(T,\"Abstract property cannot have an initializer\")}function g(x,T){let{esTreeNodeToTSNodeMap:k,tsNodeToESTreeNodeMap:D}=T.tsParseResult;p(x,E=>{let L=k.get(E);if(!L)return;let R=D.get(L);R===E&&(m(L,R,D),A(L,R))})}l.exports={throwErrorForInvalidNodes:g}}}),Af=H({\"src/language-js/parse/postprocess/index.js\"(h,l){\"use strict\";V();var{locStart:p,locEnd:d}=mo(),m=df(),A=yf(),g=xf(),x=go(),{throwErrorForInvalidNodes:T}=gf(),k=Ao();function D(F,W){if(W.parser===\"typescript\"&&/@|abstract/.test(W.originalText)&&T(F,W),W.parser!==\"typescript\"&&W.parser!==\"flow\"&&W.parser!==\"acorn\"&&W.parser!==\"espree\"&&W.parser!==\"meriyah\"){let M=new Set;F=x(F,j=>{j.leadingComments&&j.leadingComments.some(A)&&M.add(p(j))}),F=x(F,j=>{if(j.type===\"ParenthesizedExpression\"){let{expression:u}=j;if(u.type===\"TypeCastExpression\")return u.range=j.range,u;let X=p(j);if(!M.has(X))return u.extra=Object.assign(Object.assign({},u.extra),{},{parenthesized:!0}),u}})}return F=x(F,M=>{switch(M.type){case\"ChainExpression\":return E(M.expression);case\"LogicalExpression\":{if(L(M))return R(M);break}case\"VariableDeclaration\":{let j=g(M.declarations);j&&j.init&&Y(M,j);break}case\"TSParenthesizedType\":return m(M.typeAnnotation)||M.typeAnnotation.type===\"TSThisType\"||(M.typeAnnotation.range=[p(M),d(M)]),M.typeAnnotation;case\"TSTypeParameter\":if(typeof M.name==\"string\"){let j=p(M);M.name={type:\"Identifier\",name:M.name,range:[j,j+M.name.length]}}break;case\"ObjectExpression\":if(W.parser===\"typescript\"){let j=M.properties.find(u=>u.type===\"Property\"&&u.value.type===\"TSEmptyBodyFunctionExpression\");j&&k(j.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let j=g(M.expressions);M.range=[p(M),Math.min(d(j),d(M))];break}case\"TopicReference\":W.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:j}=M;if(W.parser===\"meriyah\"&&j&&j.type===\"Identifier\"){let u=W.originalText.slice(p(j),d(j));(u.startsWith('\"')||u.startsWith(\"'\"))&&(M.exported=Object.assign(Object.assign({},M.exported),{},{type:\"Literal\",value:M.exported.name,raw:u}))}break}}}),F;function Y(M,j){W.originalText[d(j)]!==\";\"&&(M.range=[p(M),d(j)])}}function E(F){switch(F.type){case\"CallExpression\":F.type=\"OptionalCallExpression\",F.callee=E(F.callee);break;case\"MemberExpression\":F.type=\"OptionalMemberExpression\",F.object=E(F.object);break;case\"TSNonNullExpression\":F.expression=E(F.expression);break}return F}function L(F){return F.type===\"LogicalExpression\"&&F.right.type===\"LogicalExpression\"&&F.operator===F.right.operator}function R(F){return L(F)?R({type:\"LogicalExpression\",operator:F.operator,left:R({type:\"LogicalExpression\",operator:F.operator,left:F.left,right:F.right.left,range:[p(F.left),d(F.right.left)]}),right:F.right.right,range:[p(F),d(F)]}):F}l.exports=D}}),Po=H({\"node_modules/@babel/parser/lib/index.js\"(h){\"use strict\";V(),Object.defineProperty(h,\"__esModule\",{value:!0});function l(t,e){if(t==null)return{};var s={},r=Object.keys(t),i,a;for(a=0;a=0)&&(s[i]=t[i]);return s}var p=class{constructor(t,e,s){this.line=void 0,this.column=void 0,this.index=void 0,this.line=t,this.column=e,this.index=s}},d=class{constructor(t,e){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=t,this.end=e}};function m(t,e){let{line:s,column:r,index:i}=t;return new p(s,r+e,i+e)}var A=Object.freeze({SyntaxError:\"BABEL_PARSER_SYNTAX_ERROR\",SourceTypeModuleError:\"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\"}),g=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t.length-1;return{get(){return t.reduce((s,r)=>s[r],this)},set(s){t.reduce((r,i,a)=>a===e?r[i]=s:r[i],this)}}},x=(t,e,s)=>Object.keys(s).map(r=>[r,s[r]]).filter(r=>{let[,i]=r;return!!i}).map(r=>{let[i,a]=r;return[i,typeof a==\"function\"?{value:a,enumerable:!1}:typeof a.reflect==\"string\"?Object.assign({},a,g(a.reflect.split(\".\"))):a]}).reduce((r,i)=>{let[a,n]=i;return Object.defineProperty(r,a,Object.assign({configurable:!0},n))},Object.assign(new t,e)),T=t=>({ImportMetaOutsideModule:t(`import.meta may appear only with 'sourceType: \"module\"'`,{code:A.SourceTypeModuleError}),ImportOutsideModule:t(`'import' and 'export' may appear only with 'sourceType: \"module\"'`,{code:A.SourceTypeModuleError})}),k={ArrayPattern:\"array destructuring pattern\",AssignmentExpression:\"assignment expression\",AssignmentPattern:\"assignment expression\",ArrowFunctionExpression:\"arrow function expression\",ConditionalExpression:\"conditional expression\",ForOfStatement:\"for-of statement\",ForInStatement:\"for-in statement\",ForStatement:\"for-loop\",FormalParameters:\"function parameter list\",Identifier:\"identifier\",ObjectPattern:\"object destructuring pattern\",ParenthesizedExpression:\"parenthesized expression\",RestElement:\"rest element\",UpdateExpression:{true:\"prefix operation\",false:\"postfix operation\"},VariableDeclarator:\"variable declaration\",YieldExpression:\"yield expression\"},D=t=>{let{type:e,prefix:s}=t;return e===\"UpdateExpression\"?k.UpdateExpression[String(s)]:k[e]},E=t=>({AccessorIsGenerator:t(e=>{let{kind:s}=e;return\"A \".concat(s,\"ter cannot be a generator.\")}),ArgumentsInClass:t(\"'arguments' is only allowed in functions and class methods.\"),AsyncFunctionInSingleStatementContext:t(\"Async functions can only be declared at the top level or inside a block.\"),AwaitBindingIdentifier:t(\"Can not use 'await' as identifier inside an async function.\"),AwaitBindingIdentifierInStaticBlock:t(\"Can not use 'await' as identifier inside a static block.\"),AwaitExpressionFormalParameter:t(\"'await' is not allowed in async function parameters.\"),AwaitNotInAsyncContext:t(\"'await' is only allowed within async functions and at the top levels of modules.\"),AwaitNotInAsyncFunction:t(\"'await' is only allowed within async functions.\"),BadGetterArity:t(\"A 'get' accesor must not have any formal parameters.\"),BadSetterArity:t(\"A 'set' accesor must have exactly one formal parameter.\"),BadSetterRestParameter:t(\"A 'set' accesor function argument must not be a rest parameter.\"),ConstructorClassField:t(\"Classes may not have a field named 'constructor'.\"),ConstructorClassPrivateField:t(\"Classes may not have a private field named '#constructor'.\"),ConstructorIsAccessor:t(\"Class constructor may not be an accessor.\"),ConstructorIsAsync:t(\"Constructor can't be an async function.\"),ConstructorIsGenerator:t(\"Constructor can't be a generator.\"),DeclarationMissingInitializer:t(e=>{let{kind:s}=e;return\"Missing initializer in \".concat(s,\" declaration.\")}),DecoratorBeforeExport:t(\"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax.\"),DecoratorConstructor:t(\"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\"),DecoratorExportClass:t(\"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\"),DecoratorSemicolon:t(\"Decorators must not be followed by a semicolon.\"),DecoratorStaticBlock:t(\"Decorators can't be used with a static block.\"),DeletePrivateField:t(\"Deleting a private field is not allowed.\"),DestructureNamedImport:t(\"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\"),DuplicateConstructor:t(\"Duplicate constructor in the same class.\"),DuplicateDefaultExport:t(\"Only one default export allowed per module.\"),DuplicateExport:t(e=>{let{exportName:s}=e;return\"`\".concat(s,\"` has already been exported. Exported identifiers must be unique.\")}),DuplicateProto:t(\"Redefinition of __proto__ property.\"),DuplicateRegExpFlags:t(\"Duplicate regular expression flag.\"),ElementAfterRest:t(\"Rest element must be last element.\"),EscapedCharNotAnIdentifier:t(\"Invalid Unicode escape.\"),ExportBindingIsString:t(e=>{let{localName:s,exportName:r}=e;return\"A string literal cannot be used as an exported binding without `from`.\\n- Did you mean `export { '\".concat(s,\"' as '\").concat(r,\"' } from 'some-module'`?\")}),ExportDefaultFromAsIdentifier:t(\"'from' is not allowed as an identifier after 'export default'.\"),ForInOfLoopInitializer:t(e=>{let{type:s}=e;return\"'\".concat(s===\"ForInStatement\"?\"for-in\":\"for-of\",\"' loop variable declaration may not have an initializer.\")}),ForOfAsync:t(\"The left-hand side of a for-of loop may not be 'async'.\"),ForOfLet:t(\"The left-hand side of a for-of loop may not start with 'let'.\"),GeneratorInSingleStatementContext:t(\"Generators can only be declared at the top level or inside a block.\"),IllegalBreakContinue:t(e=>{let{type:s}=e;return\"Unsyntactic \".concat(s===\"BreakStatement\"?\"break\":\"continue\",\".\")}),IllegalLanguageModeDirective:t(\"Illegal 'use strict' directive in function with non-simple parameter list.\"),IllegalReturn:t(\"'return' outside of function.\"),ImportBindingIsString:t(e=>{let{importName:s}=e;return'A string literal cannot be used as an imported binding.\\n- Did you mean `import { \"'.concat(s,'\" as foo }`?')}),ImportCallArgumentTrailingComma:t(\"Trailing comma is disallowed inside import(...) arguments.\"),ImportCallArity:t(e=>{let{maxArgumentCount:s}=e;return\"`import()` requires exactly \".concat(s===1?\"one argument\":\"one or two arguments\",\".\")}),ImportCallNotNewExpression:t(\"Cannot use new with import(...).\"),ImportCallSpreadArgument:t(\"`...` is not allowed in `import()`.\"),IncompatibleRegExpUVFlags:t(\"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\"),InvalidBigIntLiteral:t(\"Invalid BigIntLiteral.\"),InvalidCodePoint:t(\"Code point out of bounds.\"),InvalidCoverInitializedName:t(\"Invalid shorthand property initializer.\"),InvalidDecimal:t(\"Invalid decimal.\"),InvalidDigit:t(e=>{let{radix:s}=e;return\"Expected number in radix \".concat(s,\".\")}),InvalidEscapeSequence:t(\"Bad character escape sequence.\"),InvalidEscapeSequenceTemplate:t(\"Invalid escape sequence in template.\"),InvalidEscapedReservedWord:t(e=>{let{reservedWord:s}=e;return\"Escape sequence in keyword \".concat(s,\".\")}),InvalidIdentifier:t(e=>{let{identifierName:s}=e;return\"Invalid identifier \".concat(s,\".\")}),InvalidLhs:t(e=>{let{ancestor:s}=e;return\"Invalid left-hand side in \".concat(D(s),\".\")}),InvalidLhsBinding:t(e=>{let{ancestor:s}=e;return\"Binding invalid left-hand side in \".concat(D(s),\".\")}),InvalidNumber:t(\"Invalid number.\"),InvalidOrMissingExponent:t(\"Floating-point numbers require a valid exponent after the 'e'.\"),InvalidOrUnexpectedToken:t(e=>{let{unexpected:s}=e;return\"Unexpected character '\".concat(s,\"'.\")}),InvalidParenthesizedAssignment:t(\"Invalid parenthesized assignment pattern.\"),InvalidPrivateFieldResolution:t(e=>{let{identifierName:s}=e;return\"Private name #\".concat(s,\" is not defined.\")}),InvalidPropertyBindingPattern:t(\"Binding member expression.\"),InvalidRecordProperty:t(\"Only properties and spread elements are allowed in record definitions.\"),InvalidRestAssignmentPattern:t(\"Invalid rest operator's argument.\"),LabelRedeclaration:t(e=>{let{labelName:s}=e;return\"Label '\".concat(s,\"' is already declared.\")}),LetInLexicalBinding:t(\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),LineTerminatorBeforeArrow:t(\"No line break is allowed before '=>'.\"),MalformedRegExpFlags:t(\"Invalid regular expression flag.\"),MissingClassName:t(\"A class name is required.\"),MissingEqInAssignment:t(\"Only '=' operator can be used for specifying default value.\"),MissingSemicolon:t(\"Missing semicolon.\"),MissingPlugin:t(e=>{let{missingPlugin:s}=e;return\"This experimental syntax requires enabling the parser plugin: \".concat(s.map(r=>JSON.stringify(r)).join(\", \"),\".\")}),MissingOneOfPlugins:t(e=>{let{missingPlugin:s}=e;return\"This experimental syntax requires enabling one of the following parser plugin(s): \".concat(s.map(r=>JSON.stringify(r)).join(\", \"),\".\")}),MissingUnicodeEscape:t(\"Expecting Unicode escape sequence \\\\uXXXX.\"),MixingCoalesceWithLogical:t(\"Nullish coalescing operator(??) requires parens when mixing with logical operators.\"),ModuleAttributeDifferentFromType:t(\"The only accepted module attribute is `type`.\"),ModuleAttributeInvalidValue:t(\"Only string literals are allowed as module attribute values.\"),ModuleAttributesWithDuplicateKeys:t(e=>{let{key:s}=e;return'Duplicate key \"'.concat(s,'\" is not allowed in module attributes.')}),ModuleExportNameHasLoneSurrogate:t(e=>{let{surrogateCharCode:s}=e;return\"An export name cannot include a lone surrogate, found '\\\\u\".concat(s.toString(16),\"'.\")}),ModuleExportUndefined:t(e=>{let{localName:s}=e;return\"Export '\".concat(s,\"' is not defined.\")}),MultipleDefaultsInSwitch:t(\"Multiple default clauses.\"),NewlineAfterThrow:t(\"Illegal newline after throw.\"),NoCatchOrFinally:t(\"Missing catch or finally clause.\"),NumberIdentifier:t(\"Identifier directly after number.\"),NumericSeparatorInEscapeSequence:t(\"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\"),ObsoleteAwaitStar:t(\"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\"),OptionalChainingNoNew:t(\"Constructors in/after an Optional Chain are not allowed.\"),OptionalChainingNoTemplate:t(\"Tagged Template Literals are not allowed in optionalChain.\"),OverrideOnConstructor:t(\"'override' modifier cannot appear on a constructor declaration.\"),ParamDupe:t(\"Argument name clash.\"),PatternHasAccessor:t(\"Object pattern can't contain getter or setter.\"),PatternHasMethod:t(\"Object pattern can't contain methods.\"),PrivateInExpectedIn:t(e=>{let{identifierName:s}=e;return\"Private names are only allowed in property accesses (`obj.#\".concat(s,\"`) or in `in` expressions (`#\").concat(s,\" in obj`).\")}),PrivateNameRedeclaration:t(e=>{let{identifierName:s}=e;return\"Duplicate private name #\".concat(s,\".\")}),RecordExpressionBarIncorrectEndSyntaxType:t(\"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),RecordExpressionBarIncorrectStartSyntaxType:t(\"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),RecordExpressionHashIncorrectStartSyntaxType:t(\"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\"),RecordNoProto:t(\"'__proto__' is not allowed in Record expressions.\"),RestTrailingComma:t(\"Unexpected trailing comma after rest element.\"),SloppyFunction:t(\"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\"),StaticPrototype:t(\"Classes may not have static property named prototype.\"),SuperNotAllowed:t(\"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\"),SuperPrivateField:t(\"Private fields can't be accessed on super.\"),TrailingDecorator:t(\"Decorators must be attached to a class element.\"),TupleExpressionBarIncorrectEndSyntaxType:t(\"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),TupleExpressionBarIncorrectStartSyntaxType:t(\"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),TupleExpressionHashIncorrectStartSyntaxType:t(\"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\"),UnexpectedArgumentPlaceholder:t(\"Unexpected argument placeholder.\"),UnexpectedAwaitAfterPipelineBody:t('Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.'),UnexpectedDigitAfterHash:t(\"Unexpected digit after hash token.\"),UnexpectedImportExport:t(\"'import' and 'export' may only appear at the top level.\"),UnexpectedKeyword:t(e=>{let{keyword:s}=e;return\"Unexpected keyword '\".concat(s,\"'.\")}),UnexpectedLeadingDecorator:t(\"Leading decorators must be attached to a class declaration.\"),UnexpectedLexicalDeclaration:t(\"Lexical declaration cannot appear in a single-statement context.\"),UnexpectedNewTarget:t(\"`new.target` can only be used in functions or class properties.\"),UnexpectedNumericSeparator:t(\"A numeric separator is only allowed between two digits.\"),UnexpectedPrivateField:t(\"Unexpected private name.\"),UnexpectedReservedWord:t(e=>{let{reservedWord:s}=e;return\"Unexpected reserved word '\".concat(s,\"'.\")}),UnexpectedSuper:t(\"'super' is only allowed in object methods and classes.\"),UnexpectedToken:t(e=>{let{expected:s,unexpected:r}=e;return\"Unexpected token\".concat(r?\" '\".concat(r,\"'.\"):\"\").concat(s?', expected \"'.concat(s,'\"'):\"\")}),UnexpectedTokenUnaryExponentiation:t(\"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\"),UnsupportedBind:t(\"Binding should be performed on object property.\"),UnsupportedDecoratorExport:t(\"A decorated export must export a class declaration.\"),UnsupportedDefaultExport:t(\"Only expressions, functions or classes are allowed as the `default` export.\"),UnsupportedImport:t(\"`import` can only be used in `import()` or `import.meta`.\"),UnsupportedMetaProperty:t(e=>{let{target:s,onlyValidPropertyName:r}=e;return\"The only valid meta property for \".concat(s,\" is \").concat(s,\".\").concat(r,\".\")}),UnsupportedParameterDecorator:t(\"Decorators cannot be used to decorate parameters.\"),UnsupportedPropertyDecorator:t(\"Decorators cannot be used to decorate object literal properties.\"),UnsupportedSuper:t(\"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\"),UnterminatedComment:t(\"Unterminated comment.\"),UnterminatedRegExp:t(\"Unterminated regular expression.\"),UnterminatedString:t(\"Unterminated string constant.\"),UnterminatedTemplate:t(\"Unterminated template.\"),VarRedeclaration:t(e=>{let{identifierName:s}=e;return\"Identifier '\".concat(s,\"' has already been declared.\")}),YieldBindingIdentifier:t(\"Can not use 'yield' as identifier inside a generator.\"),YieldInParameter:t(\"Yield expression is not allowed in formal parameters.\"),ZeroDigitNumericSeparator:t(\"Numeric separator can not be used after leading 0.\")}),L=t=>({StrictDelete:t(\"Deleting local variable in strict mode.\"),StrictEvalArguments:t(e=>{let{referenceName:s}=e;return\"Assigning to '\".concat(s,\"' in strict mode.\")}),StrictEvalArgumentsBinding:t(e=>{let{bindingName:s}=e;return\"Binding '\".concat(s,\"' in strict mode.\")}),StrictFunction:t(\"In strict mode code, functions can only be declared at top level or inside a block.\"),StrictNumericEscape:t(\"The only valid numeric escape in strict mode is '\\\\0'.\"),StrictOctalLiteral:t(\"Legacy octal literals are not allowed in strict mode.\"),StrictWith:t(\"'with' in strict mode.\")}),R=new Set([\"ArrowFunctionExpression\",\"AssignmentExpression\",\"ConditionalExpression\",\"YieldExpression\"]),F=t=>({PipeBodyIsTighter:t(\"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\"),PipeTopicRequiresHackPipes:t('Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.'),PipeTopicUnbound:t(\"Topic reference is unbound; it must be inside a pipe body.\"),PipeTopicUnconfiguredToken:t(e=>{let{token:s}=e;return\"Invalid topic token \".concat(s,\". In order to use \").concat(s,' as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"').concat(s,'\" }.')}),PipeTopicUnused:t(\"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\"),PipeUnparenthesizedBody:t(e=>{let{type:s}=e;return\"Hack-style pipe body cannot be an unparenthesized \".concat(D({type:s}),\"; please wrap it in parentheses.\")}),PipelineBodyNoArrow:t('Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.'),PipelineBodySequenceExpression:t(\"Pipeline body may not be a comma-separated sequence expression.\"),PipelineHeadSequenceExpression:t(\"Pipeline head should not be a comma-separated sequence expression.\"),PipelineTopicUnused:t(\"Pipeline is in topic style but does not use topic reference.\"),PrimaryTopicNotAllowed:t(\"Topic reference was used in a lexical context without topic binding.\"),PrimaryTopicRequiresSmartPipeline:t('Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.')}),W=[\"toMessage\"];function Y(t){let{toMessage:e}=t,s=l(t,W);return function r(i){let{loc:a,details:n}=i;return x(SyntaxError,Object.assign({},s,{loc:a}),{clone(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o.loc||{};return r({loc:new p(\"line\"in c?c.line:this.loc.line,\"column\"in c?c.column:this.loc.column,\"index\"in c?c.index:this.loc.index),details:Object.assign({},this.details,o.details)})},details:{value:n,enumerable:!1},message:{get(){return\"\".concat(e(this.details),\" (\").concat(this.loc.line,\":\").concat(this.loc.column,\")\")},set(o){Object.defineProperty(this,\"message\",{value:o})}},pos:{reflect:\"loc.index\",enumerable:!0},missingPlugin:\"missingPlugin\"in n&&{reflect:\"details.missingPlugin\",enumerable:!0}})}}function M(t,e){return Object.assign({toMessage:typeof t==\"string\"?()=>t:t},e)}function j(t,e){if(Array.isArray(t))return i=>j(i,t[0]);let s=t(M),r={};for(let i of Object.keys(s))r[i]=Y(Object.assign({code:A.SyntaxError,reasonCode:i},e?{syntaxPlugin:e}:{},s[i]));return r}var u=Object.assign({},j(T),j(E),j(L),j(_n||(_n=rt([\"pipelineOperator\"])))(F)),{defineProperty:X}=Object,se=(t,e)=>X(t,e,{enumerable:!1,value:t[e]});function J(t){return se(t.loc.start,\"index\"),se(t.loc.end,\"index\"),t}var Oe=t=>class extends t{parse(){let e=J(super.parse());return this.options.tokens&&(e.tokens=e.tokens.map(J)),e}parseRegExpLiteral(e){let{pattern:s,flags:r}=e,i=null;try{i=new RegExp(s,r)}catch{}let a=this.estreeParseLiteral(i);return a.regex={pattern:s,flags:r},a}parseBigIntLiteral(e){let s;try{s=BigInt(e)}catch{s=null}let r=this.estreeParseLiteral(s);return r.bigint=String(r.value||e),r}parseDecimalLiteral(e){let r=this.estreeParseLiteral(null);return r.decimal=String(r.value||e),r}estreeParseLiteral(e){return this.parseLiteral(e,\"Literal\")}parseStringLiteral(e){return this.estreeParseLiteral(e)}parseNumericLiteral(e){return this.estreeParseLiteral(e)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(e){return this.estreeParseLiteral(e)}directiveToStmt(e){let s=e.value,r=this.startNodeAt(e.start,e.loc.start),i=this.startNodeAt(s.start,s.loc.start);return i.value=s.extra.expressionValue,i.raw=s.extra.raw,r.expression=this.finishNodeAt(i,\"Literal\",s.loc.end),r.directive=s.extra.raw.slice(1,-1),this.finishNodeAt(r,\"ExpressionStatement\",e.loc.end)}initFunction(e,s){super.initFunction(e,s),e.expression=!1}checkDeclaration(e){e!=null&&this.isObjectProperty(e)?this.checkDeclaration(e.value):super.checkDeclaration(e)}getObjectOrClassMethodParams(e){return e.value.params}isValidDirective(e){var s;return e.type===\"ExpressionStatement\"&&e.expression.type===\"Literal\"&&typeof e.expression.value==\"string\"&&!((s=e.expression.extra)!=null&&s.parenthesized)}parseBlockBody(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;ithis.directiveToStmt(n));e.body=a.concat(e.body),delete e.directives}pushClassMethod(e,s,r,i,a,n){this.parseMethod(s,r,i,a,n,\"ClassMethod\",!0),s.typeParameters&&(s.value.typeParameters=s.typeParameters,delete s.typeParameters),e.body.push(s)}parsePrivateName(){let e=super.parsePrivateName();return this.getPluginOption(\"estree\",\"classFeatures\")?this.convertPrivateNameToPrivateIdentifier(e):e}convertPrivateNameToPrivateIdentifier(e){let s=super.getPrivateNameSV(e);return e=e,delete e.id,e.name=s,e.type=\"PrivateIdentifier\",e}isPrivateName(e){return this.getPluginOption(\"estree\",\"classFeatures\")?e.type===\"PrivateIdentifier\":super.isPrivateName(e)}getPrivateNameSV(e){return this.getPluginOption(\"estree\",\"classFeatures\")?e.name:super.getPrivateNameSV(e)}parseLiteral(e,s){let r=super.parseLiteral(e,s);return r.raw=r.extra.raw,delete r.extra,r}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;super.parseFunctionBody(e,s,r),e.expression=e.body.type!==\"BlockStatement\"}parseMethod(e,s,r,i,a,n){let o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1,c=this.startNode();return c.kind=e.kind,c=super.parseMethod(c,s,r,i,a,n,o),c.type=\"FunctionExpression\",delete c.kind,e.value=c,n===\"ClassPrivateMethod\"&&(e.computed=!1),n=\"MethodDefinition\",this.finishNode(e,n)}parseClassProperty(){let e=super.parseClassProperty(...arguments);return this.getPluginOption(\"estree\",\"classFeatures\")&&(e.type=\"PropertyDefinition\"),e}parseClassPrivateProperty(){let e=super.parseClassPrivateProperty(...arguments);return this.getPluginOption(\"estree\",\"classFeatures\")&&(e.type=\"PropertyDefinition\",e.computed=!1),e}parseObjectMethod(e,s,r,i,a){let n=super.parseObjectMethod(e,s,r,i,a);return n&&(n.type=\"Property\",n.kind===\"method\"&&(n.kind=\"init\"),n.shorthand=!1),n}parseObjectProperty(e,s,r,i,a){let n=super.parseObjectProperty(e,s,r,i,a);return n&&(n.kind=\"init\",n.type=\"Property\"),n}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:!1;if(e!=null&&this.isObjectProperty(e)){let{key:r,value:i}=e;this.isPrivateName(r)&&this.classScope.usePrivateName(this.getPrivateNameSV(r),r.loc.start),this.toAssignable(i,s)}else super.toAssignable(e,s)}toAssignableObjectExpressionProp(e){e.kind===\"get\"||e.kind===\"set\"?this.raise(u.PatternHasAccessor,{at:e.key}):e.method?this.raise(u.PatternHasMethod,{at:e.key}):super.toAssignableObjectExpressionProp(...arguments)}finishCallExpression(e,s){if(super.finishCallExpression(e,s),e.callee.type===\"Import\"){if(e.type=\"ImportExpression\",e.source=e.arguments[0],this.hasPlugin(\"importAssertions\")){var r;e.attributes=(r=e.arguments[1])!=null?r:null}delete e.arguments,delete e.callee}return e}toReferencedArguments(e){e.type!==\"ImportExpression\"&&super.toReferencedArguments(e)}parseExport(e){switch(super.parseExport(e),e.type){case\"ExportAllDeclaration\":e.exported=null;break;case\"ExportNamedDeclaration\":e.specifiers.length===1&&e.specifiers[0].type===\"ExportNamespaceSpecifier\"&&(e.type=\"ExportAllDeclaration\",e.exported=e.specifiers[0].exported,delete e.specifiers);break}return e}parseSubscript(e,s,r,i,a){let n=super.parseSubscript(e,s,r,i,a);if(a.optionalChainMember){if((n.type===\"OptionalMemberExpression\"||n.type===\"OptionalCallExpression\")&&(n.type=n.type.substring(8)),a.stop){let o=this.startNodeAtNode(n);return o.expression=n,this.finishNode(o,\"ChainExpression\")}}else(n.type===\"MemberExpression\"||n.type===\"CallExpression\")&&(n.optional=!1);return n}hasPropertyAsPrivateName(e){return e.type===\"ChainExpression\"&&(e=e.expression),super.hasPropertyAsPrivateName(e)}isOptionalChain(e){return e.type===\"ChainExpression\"}isObjectProperty(e){return e.type===\"Property\"&&e.kind===\"init\"&&!e.method}isObjectMethod(e){return e.method||e.kind===\"get\"||e.kind===\"set\"}finishNodeAt(e,s,r){return J(super.finishNodeAt(e,s,r))}resetEndLocation(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;super.resetEndLocation(e,s),J(e)}},$=class{constructor(t,e){this.token=void 0,this.preserveSpace=void 0,this.token=t,this.preserveSpace=!!e}},z={brace:new $(\"{\"),j_oTag:new $(\"...\",!0)};z.template=new $(\"`\",!0);var O=!0,C=!0,Ve=!0,Z=!0,he=!0,Co=!0,or=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.rightAssociative=!!e.rightAssociative,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop!=null?e.binop:null,this.updateContext=null}},qt=new Map;function q(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.keyword=t;let s=w(t,e);return qt.set(t,s),s}function te(t,e){return w(t,{beforeExpr:O,binop:e})}var He=-1,ce=[],Ut=[],it=[],_t=[],zt=[],Kt=[];function w(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++He,Ut.push(t),it.push((s=e.binop)!=null?s:-1),_t.push((r=e.beforeExpr)!=null?r:!1),zt.push((i=e.startsExpr)!=null?i:!1),Kt.push((a=e.prefix)!=null?a:!1),ce.push(new or(t,e)),He}function U(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++He,qt.set(t,He),Ut.push(t),it.push((s=e.binop)!=null?s:-1),_t.push((r=e.beforeExpr)!=null?r:!1),zt.push((i=e.startsExpr)!=null?i:!1),Kt.push((a=e.prefix)!=null?a:!1),ce.push(new or(\"name\",e)),He}var bo={bracketL:w(\"[\",{beforeExpr:O,startsExpr:C}),bracketHashL:w(\"#[\",{beforeExpr:O,startsExpr:C}),bracketBarL:w(\"[|\",{beforeExpr:O,startsExpr:C}),bracketR:w(\"]\"),bracketBarR:w(\"|]\"),braceL:w(\"{\",{beforeExpr:O,startsExpr:C}),braceBarL:w(\"{|\",{beforeExpr:O,startsExpr:C}),braceHashL:w(\"#{\",{beforeExpr:O,startsExpr:C}),braceR:w(\"}\"),braceBarR:w(\"|}\"),parenL:w(\"(\",{beforeExpr:O,startsExpr:C}),parenR:w(\")\"),comma:w(\",\",{beforeExpr:O}),semi:w(\";\",{beforeExpr:O}),colon:w(\":\",{beforeExpr:O}),doubleColon:w(\"::\",{beforeExpr:O}),dot:w(\".\"),question:w(\"?\",{beforeExpr:O}),questionDot:w(\"?.\"),arrow:w(\"=>\",{beforeExpr:O}),template:w(\"template\"),ellipsis:w(\"...\",{beforeExpr:O}),backQuote:w(\"`\",{startsExpr:C}),dollarBraceL:w(\"${\",{beforeExpr:O,startsExpr:C}),templateTail:w(\"...`\",{startsExpr:C}),templateNonTail:w(\"...${\",{beforeExpr:O,startsExpr:C}),at:w(\"@\"),hash:w(\"#\",{startsExpr:C}),interpreterDirective:w(\"#!...\"),eq:w(\"=\",{beforeExpr:O,isAssign:Z}),assign:w(\"_=\",{beforeExpr:O,isAssign:Z}),slashAssign:w(\"_=\",{beforeExpr:O,isAssign:Z}),xorAssign:w(\"_=\",{beforeExpr:O,isAssign:Z}),moduloAssign:w(\"_=\",{beforeExpr:O,isAssign:Z}),incDec:w(\"++/--\",{prefix:he,postfix:Co,startsExpr:C}),bang:w(\"!\",{beforeExpr:O,prefix:he,startsExpr:C}),tilde:w(\"~\",{beforeExpr:O,prefix:he,startsExpr:C}),doubleCaret:w(\"^^\",{startsExpr:C}),doubleAt:w(\"@@\",{startsExpr:C}),pipeline:te(\"|>\",0),nullishCoalescing:te(\"??\",1),logicalOR:te(\"||\",1),logicalAND:te(\"&&\",2),bitwiseOR:te(\"|\",3),bitwiseXOR:te(\"^\",4),bitwiseAND:te(\"&\",5),equality:te(\"==/!=/===/!==\",6),lt:te(\"/<=/>=\",7),gt:te(\"/<=/>=\",7),relational:te(\"/<=/>=\",7),bitShift:te(\"<>/>>>\",8),bitShiftL:te(\"<>/>>>\",8),bitShiftR:te(\"<>/>>>\",8),plusMin:w(\"+/-\",{beforeExpr:O,binop:9,prefix:he,startsExpr:C}),modulo:w(\"%\",{binop:10,startsExpr:C}),star:w(\"*\",{binop:10}),slash:te(\"/\",10),exponent:w(\"**\",{beforeExpr:O,binop:11,rightAssociative:!0}),_in:q(\"in\",{beforeExpr:O,binop:7}),_instanceof:q(\"instanceof\",{beforeExpr:O,binop:7}),_break:q(\"break\"),_case:q(\"case\",{beforeExpr:O}),_catch:q(\"catch\"),_continue:q(\"continue\"),_debugger:q(\"debugger\"),_default:q(\"default\",{beforeExpr:O}),_else:q(\"else\",{beforeExpr:O}),_finally:q(\"finally\"),_function:q(\"function\",{startsExpr:C}),_if:q(\"if\"),_return:q(\"return\",{beforeExpr:O}),_switch:q(\"switch\"),_throw:q(\"throw\",{beforeExpr:O,prefix:he,startsExpr:C}),_try:q(\"try\"),_var:q(\"var\"),_const:q(\"const\"),_with:q(\"with\"),_new:q(\"new\",{beforeExpr:O,startsExpr:C}),_this:q(\"this\",{startsExpr:C}),_super:q(\"super\",{startsExpr:C}),_class:q(\"class\",{startsExpr:C}),_extends:q(\"extends\",{beforeExpr:O}),_export:q(\"export\"),_import:q(\"import\",{startsExpr:C}),_null:q(\"null\",{startsExpr:C}),_true:q(\"true\",{startsExpr:C}),_false:q(\"false\",{startsExpr:C}),_typeof:q(\"typeof\",{beforeExpr:O,prefix:he,startsExpr:C}),_void:q(\"void\",{beforeExpr:O,prefix:he,startsExpr:C}),_delete:q(\"delete\",{beforeExpr:O,prefix:he,startsExpr:C}),_do:q(\"do\",{isLoop:Ve,beforeExpr:O}),_for:q(\"for\",{isLoop:Ve}),_while:q(\"while\",{isLoop:Ve}),_as:U(\"as\",{startsExpr:C}),_assert:U(\"assert\",{startsExpr:C}),_async:U(\"async\",{startsExpr:C}),_await:U(\"await\",{startsExpr:C}),_from:U(\"from\",{startsExpr:C}),_get:U(\"get\",{startsExpr:C}),_let:U(\"let\",{startsExpr:C}),_meta:U(\"meta\",{startsExpr:C}),_of:U(\"of\",{startsExpr:C}),_sent:U(\"sent\",{startsExpr:C}),_set:U(\"set\",{startsExpr:C}),_static:U(\"static\",{startsExpr:C}),_yield:U(\"yield\",{startsExpr:C}),_asserts:U(\"asserts\",{startsExpr:C}),_checks:U(\"checks\",{startsExpr:C}),_exports:U(\"exports\",{startsExpr:C}),_global:U(\"global\",{startsExpr:C}),_implements:U(\"implements\",{startsExpr:C}),_intrinsic:U(\"intrinsic\",{startsExpr:C}),_infer:U(\"infer\",{startsExpr:C}),_is:U(\"is\",{startsExpr:C}),_mixins:U(\"mixins\",{startsExpr:C}),_proto:U(\"proto\",{startsExpr:C}),_require:U(\"require\",{startsExpr:C}),_keyof:U(\"keyof\",{startsExpr:C}),_readonly:U(\"readonly\",{startsExpr:C}),_unique:U(\"unique\",{startsExpr:C}),_abstract:U(\"abstract\",{startsExpr:C}),_declare:U(\"declare\",{startsExpr:C}),_enum:U(\"enum\",{startsExpr:C}),_module:U(\"module\",{startsExpr:C}),_namespace:U(\"namespace\",{startsExpr:C}),_interface:U(\"interface\",{startsExpr:C}),_type:U(\"type\",{startsExpr:C}),_opaque:U(\"opaque\",{startsExpr:C}),name:w(\"name\",{startsExpr:C}),string:w(\"string\",{startsExpr:C}),num:w(\"num\",{startsExpr:C}),bigint:w(\"bigint\",{startsExpr:C}),decimal:w(\"decimal\",{startsExpr:C}),regexp:w(\"regexp\",{startsExpr:C}),privateName:w(\"#name\",{startsExpr:C}),eof:w(\"eof\"),jsxName:w(\"jsxName\"),jsxText:w(\"jsxText\",{beforeExpr:!0}),jsxTagStart:w(\"jsxTagStart\",{startsExpr:!0}),jsxTagEnd:w(\"jsxTagEnd\"),placeholder:w(\"%%\",{startsExpr:!0})};function K(t){return t>=93&&t<=128}function vo(t){return t<=92}function pe(t){return t>=58&&t<=128}function hr(t){return t>=58&&t<=132}function So(t){return _t[t]}function Vt(t){return zt[t]}function wo(t){return t>=29&&t<=33}function lr(t){return t>=125&&t<=127}function No(t){return t>=90&&t<=92}function Ht(t){return t>=58&&t<=92}function Io(t){return t>=39&&t<=59}function ko(t){return t===34}function Do(t){return Kt[t]}function Fo(t){return t>=117&&t<=119}function Lo(t){return t>=120&&t<=126}function Pe(t){return Ut[t]}function at(t){return it[t]}function Oo(t){return it[t]!==-1}function Bo(t){return t===57}function nt(t){return t>=24&&t<=25}function fe(t){return ce[t]}ce[8].updateContext=t=>{t.pop()},ce[5].updateContext=ce[7].updateContext=ce[23].updateContext=t=>{t.push(z.brace)},ce[22].updateContext=t=>{t[t.length-1]===z.template?t.pop():t.push(z.template)},ce[138].updateContext=t=>{t.push(z.j_expr,z.j_oTag)};var Wt=\"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",ur=\"\\u200C\\u200D\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\",Mo=new RegExp(\"[\"+Wt+\"]\"),Ro=new RegExp(\"[\"+Wt+ur+\"]\");Wt=ur=null;var cr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],jo=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function Gt(t,e){let s=65536;for(let r=0,i=e.length;rt)return!1;if(s+=e[r+1],s>=t)return!0}return!1}function de(t){return t<65?t===36:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&Mo.test(String.fromCharCode(t)):Gt(t,cr)}function Be(t){return t<48?t===36:t<58?!0:t<65?!1:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&Ro.test(String.fromCharCode(t)):Gt(t,cr)||Gt(t,jo)}var Xt={keyword:[\"break\",\"case\",\"catch\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"function\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"var\",\"const\",\"while\",\"with\",\"new\",\"this\",\"super\",\"class\",\"extends\",\"export\",\"import\",\"null\",\"true\",\"false\",\"in\",\"instanceof\",\"typeof\",\"void\",\"delete\"],strict:[\"implements\",\"interface\",\"let\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\"],strictBind:[\"eval\",\"arguments\"]},qo=new Set(Xt.keyword),Uo=new Set(Xt.strict),_o=new Set(Xt.strictBind);function pr(t,e){return e&&t===\"await\"||t===\"enum\"}function fr(t,e){return pr(t,e)||Uo.has(t)}function dr(t){return _o.has(t)}function mr(t,e){return fr(t,e)||dr(t)}function zo(t){return qo.has(t)}function Ko(t,e,s){return t===64&&e===64&&de(s)}var Vo=new Set([\"break\",\"case\",\"catch\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"function\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"var\",\"const\",\"while\",\"with\",\"new\",\"this\",\"super\",\"class\",\"extends\",\"export\",\"import\",\"null\",\"true\",\"false\",\"in\",\"instanceof\",\"typeof\",\"void\",\"delete\",\"implements\",\"interface\",\"let\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\",\"eval\",\"arguments\",\"enum\",\"await\"]);function Ho(t){return Vo.has(t)}var Me=0,We=1,me=2,Jt=4,yr=8,ot=16,xr=32,Se=64,Yt=128,ht=256,lt=We|me|ht,ye=1,Re=2,gr=4,Te=8,ut=16,Ar=64,ct=128,$t=256,Qt=512,Zt=1024,es=2048,Pr=ye|Re|Te|ct,xe=ye|0|Te|0,pt=ye|0|gr|0,Tr=ye|0|ut|0,Wo=0|Re|0|ct,Go=0|Re|0|0,Er=ye|Re|Te|$t,Cr=0|Zt,we=0|Ar,Xo=ye|0|0|Ar,Jo=Er|Qt,Yo=0|Zt,$o=es,ft=4,ts=2,ss=1,rs=ts|ss,Qo=ts|ft,Zo=ss|ft,eh=ts,th=ss,is=0,sh=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(t){if(typeof t==\"string\")return this.plugins.has(t);{let[e,s]=t;if(!this.hasPlugin(e))return!1;let r=this.plugins.get(e);for(let i of Object.keys(s))if((r==null?void 0:r[i])!==s[i])return!1;return!0}}getPluginOption(t,e){var s;return(s=this.plugins.get(t))==null?void 0:s[e]}};function br(t,e){t.trailingComments===void 0?t.trailingComments=e:t.trailingComments.unshift(...e)}function rh(t,e){t.leadingComments===void 0?t.leadingComments=e:t.leadingComments.unshift(...e)}function Ge(t,e){t.innerComments===void 0?t.innerComments=e:t.innerComments.unshift(...e)}function Xe(t,e,s){let r=null,i=e.length;for(;r===null&&i>0;)r=e[--i];r===null||r.start>s.start?Ge(t,s.comments):br(r,s.comments)}var ih=class extends sh{addComment(t){this.filename&&(t.loc.filename=this.filename),this.state.comments.push(t)}processComment(t){let{commentStack:e}=this.state,s=e.length;if(s===0)return;let r=s-1,i=e[r];i.start===t.end&&(i.leadingNode=t,r--);let{start:a}=t;for(;r>=0;r--){let n=e[r],o=n.end;if(o>a)n.containingNode=t,this.finalizeComment(n),e.splice(r,1);else{o===a&&(n.trailingNode=t);break}}}finalizeComment(t){let{comments:e}=t;if(t.leadingNode!==null||t.trailingNode!==null)t.leadingNode!==null&&br(t.leadingNode,e),t.trailingNode!==null&&rh(t.trailingNode,e);else{let{containingNode:s,start:r}=t;if(this.input.charCodeAt(r-1)===44)switch(s.type){case\"ObjectExpression\":case\"ObjectPattern\":case\"RecordExpression\":Xe(s,s.properties,t);break;case\"CallExpression\":case\"OptionalCallExpression\":Xe(s,s.arguments,t);break;case\"FunctionDeclaration\":case\"FunctionExpression\":case\"ArrowFunctionExpression\":case\"ObjectMethod\":case\"ClassMethod\":case\"ClassPrivateMethod\":Xe(s,s.params,t);break;case\"ArrayExpression\":case\"ArrayPattern\":case\"TupleExpression\":Xe(s,s.elements,t);break;case\"ExportNamedDeclaration\":case\"ImportDeclaration\":Xe(s,s.specifiers,t);break;default:Ge(s,e)}else Ge(s,e)}}finalizeRemainingComments(){let{commentStack:t}=this.state;for(let e=t.length-1;e>=0;e--)this.finalizeComment(t[e]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(t){let{commentStack:e}=this.state,{length:s}=e;if(s===0)return;let r=e[s-1];r.leadingNode===t&&(r.leadingNode=null)}takeSurroundingComments(t,e,s){let{commentStack:r}=this.state,i=r.length;if(i===0)return;let a=i-1;for(;a>=0;a--){let n=r[a],o=n.end;if(n.start===s)n.leadingNode=t;else if(o===e)n.trailingNode=t;else if(o=48&&e<=57},uh=new Set([103,109,115,105,121,117,100,118]),wr={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},mt={bin:t=>t===48||t===49,oct:t=>t>=48&&t<=55,dec:t=>t>=48&&t<=57,hex:t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102},Ee=class{constructor(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new d(t.startLoc,t.endLoc)}},ch=class extends ih{constructor(t,e){super(),this.isLookahead=void 0,this.tokens=[],this.state=new Sr,this.state.init(t),this.input=e,this.length=e.length,this.isLookahead=!1}pushToken(t){this.tokens.length=this.state.tokensLength,this.tokens.push(t),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new Ee(this.state)),this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(t){return this.match(t)?(this.next(),!0):!1}match(t){return this.state.type===t}createLookaheadState(t){return{pos:t.pos,value:null,type:t.type,start:t.start,end:t.end,context:[this.curContext()],inType:t.inType,startLoc:t.startLoc,lastTokEndLoc:t.lastTokEndLoc,curLine:t.curLine,lineStart:t.lineStart,curPosition:t.curPosition}}lookahead(){let t=this.state;this.state=this.createLookaheadState(t),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;let e=this.state;return this.state=t,e}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(t){return ns.lastIndex=t,ns.test(this.input)?ns.lastIndex:t}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}codePointAtPos(t){let e=this.input.charCodeAt(t);if((e&64512)===55296&&++t{let[s,r]=e;return this.raise(s,{at:r})}),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(135);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(){let t;this.isLookahead||(t=this.state.curPosition());let e=this.state.pos,s=this.input.indexOf(\"*/\",e+2);if(s===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()});for(this.state.pos=s+2,dt.lastIndex=e+2;dt.test(this.input)&&dt.lastIndex<=s;)++this.state.curLine,this.state.lineStart=dt.lastIndex;if(this.isLookahead)return;let r={type:\"CommentBlock\",value:this.input.slice(e+2,s),start:e,end:s+2,loc:new d(t,this.state.curPosition())};return this.options.tokens&&this.pushToken(r),r}skipLineComment(t){let e=this.state.pos,s;this.isLookahead||(s=this.state.curPosition());let r=this.input.charCodeAt(this.state.pos+=t);if(this.state.post)){let i=this.skipLineComment(3);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else if(s===60&&!this.inModule){let r=this.state.pos;if(this.input.charCodeAt(r+1)===33&&this.input.charCodeAt(r+2)===45&&this.input.charCodeAt(r+3)===45){let i=this.skipLineComment(4);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else break e}}if(e.length>0){let s=this.state.pos,r={start:t,end:s,comments:e,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(r)}}finishToken(t,e){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();let s=this.state.type;this.state.type=t,this.state.value=e,this.isLookahead||this.updateContext(s)}replaceToken(t){this.state.type=t,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;let t=this.state.pos+1,e=this.codePointAtPos(t);if(e>=48&&e<=57)throw this.raise(u.UnexpectedDigitAfterHash,{at:this.state.curPosition()});if(e===123||e===91&&this.hasPlugin(\"recordAndTuple\")){if(this.expectPlugin(\"recordAndTuple\"),this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"hash\")throw this.raise(e===123?u.RecordExpressionHashIncorrectStartSyntaxType:u.TupleExpressionHashIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,e===123?this.finishToken(7):this.finishToken(1)}else de(e)?(++this.state.pos,this.finishToken(134,this.readWord1(e))):e===92?(++this.state.pos,this.finishToken(134,this.readWord1())):this.finishOp(27,1)}readToken_dot(){let t=this.input.charCodeAt(this.state.pos+1);if(t>=48&&t<=57){this.readNumber(!0);return}t===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let t=this.input.charCodeAt(this.state.pos+1);if(t!==33)return!1;let e=this.state.pos;for(this.state.pos+=1;!Ne(t)&&++this.state.pos=48&&e<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(t){switch(t){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin(\"recordAndTuple\")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"bar\")throw this.raise(u.TupleExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin(\"recordAndTuple\")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"bar\")throw this.raise(u.RecordExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin(\"functionBind\")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{let e=this.input.charCodeAt(this.state.pos+1);if(e===120||e===88){this.readRadixNumber(16);return}if(e===111||e===79){this.readRadixNumber(8);return}if(e===98||e===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(t);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(t);return;case 124:case 38:this.readToken_pipe_amp(t);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(t);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(t);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(de(t)){this.readWord(t);return}}throw this.raise(u.InvalidOrUnexpectedToken,{at:this.state.curPosition(),unexpected:String.fromCodePoint(t)})}finishOp(t,e){let s=this.input.slice(this.state.pos,this.state.pos+e);this.state.pos+=e,this.finishToken(t,s)}readRegexp(){let t=this.state.startLoc,e=this.state.start+1,s,r,{pos:i}=this.state;for(;;++i){if(i>=this.length)throw this.raise(u.UnterminatedRegExp,{at:m(t,1)});let c=this.input.charCodeAt(i);if(Ne(c))throw this.raise(u.UnterminatedRegExp,{at:m(t,1)});if(s)s=!1;else{if(c===91)r=!0;else if(c===93&&r)r=!1;else if(c===47&&!r)break;s=c===92}}let a=this.input.slice(e,i);++i;let n=\"\",o=()=>m(t,i+2-e);for(;i3&&arguments[3]!==void 0?arguments[3]:!0,i=this.state.pos,a=t===16?wr.hex:wr.decBinOct,n=t===16?mt.hex:t===10?mt.dec:t===8?mt.oct:mt.bin,o=!1,c=0;for(let f=0,y=e==null?1/0:e;f=97?v=P-97+10:P>=65?v=P-65+10:lh(P)?v=P-48:v=1/0,v>=t)if(this.options.errorRecovery&&v<=9)v=0,this.raise(u.InvalidDigit,{at:this.state.curPosition(),radix:t});else if(s)v=0,o=!0;else break;++this.state.pos,c=c*t+v}return this.state.pos===i||e!=null&&this.state.pos-i!==e||o?null:c}readRadixNumber(t){let e=this.state.curPosition(),s=!1;this.state.pos+=2;let r=this.readInt(t);r==null&&this.raise(u.InvalidDigit,{at:m(e,2),radix:t});let i=this.input.charCodeAt(this.state.pos);if(i===110)++this.state.pos,s=!0;else if(i===109)throw this.raise(u.InvalidDecimal,{at:e});if(de(this.codePointAtPos(this.state.pos)))throw this.raise(u.NumberIdentifier,{at:this.state.curPosition()});if(s){let a=this.input.slice(e.index,this.state.pos).replace(/[_n]/g,\"\");this.finishToken(131,a);return}this.finishToken(130,r)}readNumber(t){let e=this.state.pos,s=this.state.curPosition(),r=!1,i=!1,a=!1,n=!1,o=!1;!t&&this.readInt(10)===null&&this.raise(u.InvalidNumber,{at:this.state.curPosition()});let c=this.state.pos-e>=2&&this.input.charCodeAt(e)===48;if(c){let v=this.input.slice(e,this.state.pos);if(this.recordStrictModeErrors(u.StrictOctalLiteral,{at:s}),!this.state.strict){let N=v.indexOf(\"_\");N>0&&this.raise(u.ZeroDigitNumericSeparator,{at:m(s,N)})}o=c&&!/[89]/.test(v)}let f=this.input.charCodeAt(this.state.pos);if(f===46&&!o&&(++this.state.pos,this.readInt(10),r=!0,f=this.input.charCodeAt(this.state.pos)),(f===69||f===101)&&!o&&(f=this.input.charCodeAt(++this.state.pos),(f===43||f===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(u.InvalidOrMissingExponent,{at:s}),r=!0,n=!0,f=this.input.charCodeAt(this.state.pos)),f===110&&((r||c)&&this.raise(u.InvalidBigIntLiteral,{at:s}),++this.state.pos,i=!0),f===109&&(this.expectPlugin(\"decimal\",this.state.curPosition()),(n||c)&&this.raise(u.InvalidDecimal,{at:s}),++this.state.pos,a=!0),de(this.codePointAtPos(this.state.pos)))throw this.raise(u.NumberIdentifier,{at:this.state.curPosition()});let y=this.input.slice(e,this.state.pos).replace(/[_mn]/g,\"\");if(i){this.finishToken(131,y);return}if(a){this.finishToken(132,y);return}let P=o?parseInt(y,8):parseFloat(y);this.finishToken(130,P)}readCodePoint(t){let e=this.input.charCodeAt(this.state.pos),s;if(e===123){if(++this.state.pos,s=this.readHexChar(this.input.indexOf(\"}\",this.state.pos)-this.state.pos,!0,t),++this.state.pos,s!==null&&s>1114111)if(t)this.raise(u.InvalidCodePoint,{at:this.state.curPosition()});else return null}else s=this.readHexChar(4,!1,t);return s}readString(t){let e=\"\",s=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedString,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);if(r===t)break;if(r===92)e+=this.input.slice(s,this.state.pos),e+=this.readEscapedChar(!1),s=this.state.pos;else if(r===8232||r===8233)++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;else{if(Ne(r))throw this.raise(u.UnterminatedString,{at:this.state.startLoc});++this.state.pos}}e+=this.input.slice(s,this.state.pos++),this.finishToken(129,e)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){let t=\"\",e=this.state.pos,s=!1;for(++this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedTemplate,{at:m(this.state.startLoc,1)});let r=this.input.charCodeAt(this.state.pos);if(r===96){++this.state.pos,t+=this.input.slice(e,this.state.pos),this.finishToken(24,s?null:t);return}if(r===36&&this.input.charCodeAt(this.state.pos+1)===123){this.state.pos+=2,t+=this.input.slice(e,this.state.pos),this.finishToken(25,s?null:t);return}if(r===92){t+=this.input.slice(e,this.state.pos);let i=this.readEscapedChar(!0);i===null?s=!0:t+=i,e=this.state.pos}else if(Ne(r)){switch(t+=this.input.slice(e,this.state.pos),++this.state.pos,r){case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:t+=`\n`;break;default:t+=String.fromCharCode(r);break}++this.state.curLine,this.state.lineStart=this.state.pos,e=this.state.pos}else++this.state.pos}}recordStrictModeErrors(t,e){let{at:s}=e,r=s.index;this.state.strict&&!this.state.strictErrors.has(r)?this.raise(t,{at:s}):this.state.strictErrors.set(r,[t,s])}readEscapedChar(t){let e=!t,s=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,s){case 110:return`\n`;case 114:return\"\\r\";case 120:{let r=this.readHexChar(2,!1,e);return r===null?null:String.fromCharCode(r)}case 117:{let r=this.readCodePoint(e);return r===null?null:String.fromCodePoint(r)}case 116:return\"\t\";case 98:return\"\\b\";case 118:return\"\\v\";case 102:return\"\\f\";case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:this.state.lineStart=this.state.pos,++this.state.curLine;case 8232:case 8233:return\"\";case 56:case 57:if(t)return null;this.recordStrictModeErrors(u.StrictNumericEscape,{at:m(this.state.curPosition(),-1)});default:if(s>=48&&s<=55){let r=m(this.state.curPosition(),-1),a=this.input.slice(this.state.pos-1,this.state.pos+2).match(/^[0-7]+/)[0],n=parseInt(a,8);n>255&&(a=a.slice(0,-1),n=parseInt(a,8)),this.state.pos+=a.length-1;let o=this.input.charCodeAt(this.state.pos);if(a!==\"0\"||o===56||o===57){if(t)return null;this.recordStrictModeErrors(u.StrictNumericEscape,{at:r})}return String.fromCharCode(n)}return String.fromCharCode(s)}}readHexChar(t,e,s){let r=this.state.curPosition(),i=this.readInt(16,t,e,!1);return i===null&&(s?this.raise(u.InvalidEscapeSequence,{at:r}):this.state.pos=r.index-1),i}readWord1(t){this.state.containsEsc=!1;let e=\"\",s=this.state.pos,r=this.state.pos;for(t!==void 0&&(this.state.pos+=t<=65535?1:2);this.state.pos=0;o--){let c=n[o];if(c.loc.index===a)return n[o]=t({loc:i,details:r});if(c.loc.indexthis.hasPlugin(e)))throw this.raise(u.MissingOneOfPlugins,{at:this.state.startLoc,missingPlugin:t})}},os=class{constructor(t){this.var=new Set,this.lexical=new Set,this.functions=new Set,this.flags=t}},hs=class{constructor(t,e){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=t,this.inModule=e}get inFunction(){return(this.currentVarScopeFlags()&me)>0}get allowSuper(){return(this.currentThisScopeFlags()&ot)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&xr)>0}get inClass(){return(this.currentThisScopeFlags()&Se)>0}get inClassAndNotInNonArrowFunction(){let t=this.currentThisScopeFlags();return(t&Se)>0&&(t&me)===0}get inStaticBlock(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&Yt)return!0;if(e&(lt|Se))return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&me)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(t){return new os(t)}enter(t){this.scopeStack.push(this.createScope(t))}exit(){this.scopeStack.pop()}treatFunctionsAsVarInScope(t){return!!(t.flags&(me|Yt)||!this.parser.inModule&&t.flags&We)}declareName(t,e,s){let r=this.currentScope();if(e&Te||e&ut)this.checkRedeclarationInScope(r,t,e,s),e&ut?r.functions.add(t):r.lexical.add(t),e&Te&&this.maybeExportDefined(r,t);else if(e&gr)for(let i=this.scopeStack.length-1;i>=0&&(r=this.scopeStack[i],this.checkRedeclarationInScope(r,t,e,s),r.var.add(t),this.maybeExportDefined(r,t),!(r.flags<));--i);this.parser.inModule&&r.flags&We&&this.undefinedExports.delete(t)}maybeExportDefined(t,e){this.parser.inModule&&t.flags&We&&this.undefinedExports.delete(e)}checkRedeclarationInScope(t,e,s,r){this.isRedeclaredInScope(t,e,s)&&this.parser.raise(u.VarRedeclaration,{at:r,identifierName:e})}isRedeclaredInScope(t,e,s){return s&ye?s&Te?t.lexical.has(e)||t.functions.has(e)||t.var.has(e):s&ut?t.lexical.has(e)||!this.treatFunctionsAsVarInScope(t)&&t.var.has(e):t.lexical.has(e)&&!(t.flags&yr&&t.lexical.values().next().value===e)||!this.treatFunctionsAsVarInScope(t)&&t.functions.has(e):!1}checkLocalExport(t){let{name:e}=t,s=this.scopeStack[0];!s.lexical.has(e)&&!s.var.has(e)&&!s.functions.has(e)&&this.undefinedExports.set(e,t.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e<)return e}}currentThisScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&(lt|Se)&&!(e&Jt))return e}}},ph=class extends os{constructor(){super(...arguments),this.declareFunctions=new Set}},fh=class extends hs{createScope(t){return new ph(t)}declareName(t,e,s){let r=this.currentScope();if(e&es){this.checkRedeclarationInScope(r,t,e,s),this.maybeExportDefined(r,t),r.declareFunctions.add(t);return}super.declareName(...arguments)}isRedeclaredInScope(t,e,s){return super.isRedeclaredInScope(...arguments)?!0:s&es?!t.declareFunctions.has(e)&&(t.lexical.has(e)||t.functions.has(e)):!1}checkLocalExport(t){this.scopeStack[0].declareFunctions.has(t.name)||super.checkLocalExport(t)}},dh=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},mh=class{constructor(t){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=t}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new dh)}exit(){let t=this.stack.pop(),e=this.current();for(let[s,r]of Array.from(t.undefinedPrivateNames))e?e.undefinedPrivateNames.has(s)||e.undefinedPrivateNames.set(s,r):this.parser.raise(u.InvalidPrivateFieldResolution,{at:r,identifierName:s})}declarePrivateName(t,e,s){let{privateNames:r,loneAccessors:i,undefinedPrivateNames:a}=this.current(),n=r.has(t);if(e&rs){let o=n&&i.get(t);if(o){let c=o&ft,f=e&ft,y=o&rs,P=e&rs;n=y===P||c!==f,n||i.delete(t)}else n||i.set(t,e)}n&&this.parser.raise(u.PrivateNameRedeclaration,{at:s,identifierName:t}),r.add(t),a.delete(t)}usePrivateName(t,e){let s;for(s of this.stack)if(s.privateNames.has(t))return;s?s.undefinedPrivateNames.set(t,e):this.parser.raise(u.InvalidPrivateFieldResolution,{at:e,identifierName:t})}},yh=0,Nr=1,ls=2,Ir=3,yt=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:yh;this.type=void 0,this.type=t}canBeArrowParameterDeclaration(){return this.type===ls||this.type===Nr}isCertainlyParameterDeclaration(){return this.type===Ir}},kr=class extends yt{constructor(t){super(t),this.declarationErrors=new Map}recordDeclarationError(t,e){let{at:s}=e,r=s.index;this.declarationErrors.set(r,[t,s])}clearDeclarationError(t){this.declarationErrors.delete(t)}iterateErrors(t){this.declarationErrors.forEach(t)}},xh=class{constructor(t){this.parser=void 0,this.stack=[new yt],this.parser=t}enter(t){this.stack.push(t)}exit(){this.stack.pop()}recordParameterInitializerError(t,e){let{at:s}=e,r={at:s.loc.start},{stack:i}=this,a=i.length-1,n=i[a];for(;!n.isCertainlyParameterDeclaration();){if(n.canBeArrowParameterDeclaration())n.recordDeclarationError(t,r);else return;n=i[--a]}this.parser.raise(t,r)}recordArrowParemeterBindingError(t,e){let{at:s}=e,{stack:r}=this,i=r[r.length-1],a={at:s.loc.start};if(i.isCertainlyParameterDeclaration())this.parser.raise(t,a);else if(i.canBeArrowParameterDeclaration())i.recordDeclarationError(t,a);else return}recordAsyncArrowParametersError(t){let{at:e}=t,{stack:s}=this,r=s.length-1,i=s[r];for(;i.canBeArrowParameterDeclaration();)i.type===ls&&i.recordDeclarationError(u.AwaitBindingIdentifier,{at:e}),i=s[--r]}validateAsPattern(){let{stack:t}=this,e=t[t.length-1];!e.canBeArrowParameterDeclaration()||e.iterateErrors(s=>{let[r,i]=s;this.parser.raise(r,{at:i});let a=t.length-2,n=t[a];for(;n.canBeArrowParameterDeclaration();)n.clearDeclarationError(i.index),n=t[--a]})}};function gh(){return new yt(Ir)}function Ah(){return new kr(Nr)}function Ph(){return new kr(ls)}function Dr(){return new yt}var je=0,Fr=1,xt=2,Lr=4,qe=8,Th=class{constructor(){this.stacks=[]}enter(t){this.stacks.push(t)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&xt)>0}get hasYield(){return(this.currentFlags()&Fr)>0}get hasReturn(){return(this.currentFlags()&Lr)>0}get hasIn(){return(this.currentFlags()&qe)>0}};function gt(t,e){return(t?xt:0)|(e?Fr:0)}var Eh=class extends ch{addExtra(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;if(!t)return;let i=t.extra=t.extra||{};r?i[e]=s:Object.defineProperty(i,e,{enumerable:r,value:s})}isContextual(t){return this.state.type===t&&!this.state.containsEsc}isUnparsedContextual(t,e){let s=t+e.length;if(this.input.slice(t,s)===e){let r=this.input.charCodeAt(s);return!(Be(r)||(r&64512)===55296)}return!1}isLookaheadContextual(t){let e=this.nextTokenStart();return this.isUnparsedContextual(e,t)}eatContextual(t){return this.isContextual(t)?(this.next(),!0):!1}expectContextual(t,e){if(!this.eatContextual(t))throw e!=null?this.raise(e,{at:this.state.startLoc}):this.unexpected(null,t)}canInsertSemicolon(){return this.match(135)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return as.test(this.input.slice(this.state.lastTokEndLoc.index,this.state.start))}hasFollowingLineBreak(){return vr.lastIndex=this.state.end,vr.test(this.input)}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(){((arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)?this.isLineTerminator():this.eat(13))||this.raise(u.MissingSemicolon,{at:this.state.lastTokEndLoc})}expect(t,e){this.eat(t)||this.unexpected(e,t)}tryParse(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.clone(),s={node:null};try{let r=t(function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;throw s.node=i,s});if(this.state.errors.length>e.errors.length){let i=this.state;return this.state=e,this.state.tokensLength=i.tokensLength,{node:r,error:i.errors[e.errors.length],thrown:!1,aborted:!1,failState:i}}return{node:r,error:null,thrown:!1,aborted:!1,failState:null}}catch(r){let i=this.state;if(this.state=e,r instanceof SyntaxError)return{node:null,error:r,thrown:!0,aborted:!1,failState:i};if(r===s)return{node:s.node,error:null,thrown:!1,aborted:!0,failState:i};throw r}}checkExpressionErrors(t,e){if(!t)return!1;let{shorthandAssignLoc:s,doubleProtoLoc:r,privateKeyLoc:i,optionalParametersLoc:a}=t,n=!!s||!!r||!!a||!!i;if(!e)return n;s!=null&&this.raise(u.InvalidCoverInitializedName,{at:s}),r!=null&&this.raise(u.DuplicateProto,{at:r}),i!=null&&this.raise(u.UnexpectedPrivateField,{at:i}),a!=null&&this.unexpected(a)}isLiteralPropertyName(){return hr(this.state.type)}isPrivateName(t){return t.type===\"PrivateName\"}getPrivateNameSV(t){return t.id.name}hasPropertyAsPrivateName(t){return(t.type===\"MemberExpression\"||t.type===\"OptionalMemberExpression\")&&this.isPrivateName(t.property)}isOptionalChain(t){return t.type===\"OptionalMemberExpression\"||t.type===\"OptionalCallExpression\"}isObjectProperty(t){return t.type===\"ObjectProperty\"}isObjectMethod(t){return t.type===\"ObjectMethod\"}initializeScopes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.sourceType===\"module\",e=this.state.labels;this.state.labels=[];let s=this.exportedIdentifiers;this.exportedIdentifiers=new Set;let r=this.inModule;this.inModule=t;let i=this.scope,a=this.getScopeHandler();this.scope=new a(this,t);let n=this.prodParam;this.prodParam=new Th;let o=this.classScope;this.classScope=new mh(this);let c=this.expressionScope;return this.expressionScope=new xh(this),()=>{this.state.labels=e,this.exportedIdentifiers=s,this.inModule=r,this.scope=i,this.prodParam=n,this.classScope=o,this.expressionScope=c}}enterInitialScopes(){let t=je;this.inModule&&(t|=xt),this.scope.enter(We),this.prodParam.enter(t)}checkDestructuringPrivate(t){let{privateKeyLoc:e}=t;e!==null&&this.expectPlugin(\"destructuringPrivate\",e)}},At=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},Pt=class{constructor(t,e,s){this.type=\"\",this.start=e,this.end=0,this.loc=new d(s),t!=null&&t.options.ranges&&(this.range=[e,0]),t!=null&&t.filename&&(this.loc.filename=t.filename)}},us=Pt.prototype;us.__clone=function(){let t=new Pt,e=Object.keys(this);for(let s=0,r=e.length;s1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;t.end=e.index,t.loc.end=e,this.options.ranges&&(t.range[1]=e.index)}resetStartLocationFromNode(t,e){this.resetStartLocation(t,e.start,e.loc.start)}},Sh=new Set([\"_\",\"any\",\"bool\",\"boolean\",\"empty\",\"extends\",\"false\",\"interface\",\"mixed\",\"null\",\"number\",\"static\",\"string\",\"true\",\"typeof\",\"void\"]),I=j(zn||(zn=rt([\"flow\"])))(t=>({AmbiguousConditionalArrow:t(\"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\"),AmbiguousDeclareModuleKind:t(\"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.\"),AssignReservedType:t(e=>{let{reservedType:s}=e;return\"Cannot overwrite reserved type \".concat(s,\".\")}),DeclareClassElement:t(\"The `declare` modifier can only appear on class fields.\"),DeclareClassFieldInitializer:t(\"Initializers are not allowed in fields with the `declare` modifier.\"),DuplicateDeclareModuleExports:t(\"Duplicate `declare module.exports` statement.\"),EnumBooleanMemberNotInitialized:t(e=>{let{memberName:s,enumName:r}=e;return\"Boolean enum members need to be initialized. Use either `\".concat(s,\" = true,` or `\").concat(s,\" = false,` in enum `\").concat(r,\"`.\")}),EnumDuplicateMemberName:t(e=>{let{memberName:s,enumName:r}=e;return\"Enum member names need to be unique, but the name `\".concat(s,\"` has already been used before in enum `\").concat(r,\"`.\")}),EnumInconsistentMemberValues:t(e=>{let{enumName:s}=e;return\"Enum `\".concat(s,\"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\")}),EnumInvalidExplicitType:t(e=>{let{invalidEnumType:s,enumName:r}=e;return\"Enum type `\".concat(s,\"` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `\").concat(r,\"`.\")}),EnumInvalidExplicitTypeUnknownSupplied:t(e=>{let{enumName:s}=e;return\"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `\".concat(s,\"`.\")}),EnumInvalidMemberInitializerPrimaryType:t(e=>{let{enumName:s,memberName:r,explicitType:i}=e;return\"Enum `\".concat(s,\"` has type `\").concat(i,\"`, so the initializer of `\").concat(r,\"` needs to be a \").concat(i,\" literal.\")}),EnumInvalidMemberInitializerSymbolType:t(e=>{let{enumName:s,memberName:r}=e;return\"Symbol enum members cannot be initialized. Use `\".concat(r,\",` in enum `\").concat(s,\"`.\")}),EnumInvalidMemberInitializerUnknownType:t(e=>{let{enumName:s,memberName:r}=e;return\"The enum member initializer for `\".concat(r,\"` needs to be a literal (either a boolean, number, or string) in enum `\").concat(s,\"`.\")}),EnumInvalidMemberName:t(e=>{let{enumName:s,memberName:r,suggestion:i}=e;return\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `\".concat(r,\"`, consider using `\").concat(i,\"`, in enum `\").concat(s,\"`.\")}),EnumNumberMemberNotInitialized:t(e=>{let{enumName:s,memberName:r}=e;return\"Number enum members need to be initialized, e.g. `\".concat(r,\" = 1` in enum `\").concat(s,\"`.\")}),EnumStringMemberInconsistentlyInitailized:t(e=>{let{enumName:s}=e;return\"String enum members need to consistently either all use initializers, or use no initializers, in enum `\".concat(s,\"`.\")}),GetterMayNotHaveThisParam:t(\"A getter cannot have a `this` parameter.\"),ImportTypeShorthandOnlyInPureImport:t(\"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.\"),InexactInsideExact:t(\"Explicit inexact syntax cannot appear inside an explicit exact object type.\"),InexactInsideNonObject:t(\"Explicit inexact syntax cannot appear in class or interface definitions.\"),InexactVariance:t(\"Explicit inexact syntax cannot have variance.\"),InvalidNonTypeImportInDeclareModule:t(\"Imports within a `declare module` body must always be `import type` or `import typeof`.\"),MissingTypeParamDefault:t(\"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\"),NestedDeclareModule:t(\"`declare module` cannot be used inside another `declare module`.\"),NestedFlowComment:t(\"Cannot have a flow comment inside another flow comment.\"),PatternIsOptional:t(\"A binding pattern parameter cannot be optional in an implementation signature.\",{reasonCode:\"OptionalBindingPattern\"}),SetterMayNotHaveThisParam:t(\"A setter cannot have a `this` parameter.\"),SpreadVariance:t(\"Spread properties cannot have variance.\"),ThisParamAnnotationRequired:t(\"A type annotation is required for the `this` parameter.\"),ThisParamBannedInConstructor:t(\"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\"),ThisParamMayNotBeOptional:t(\"The `this` parameter cannot be optional.\"),ThisParamMustBeFirst:t(\"The `this` parameter must be the first function parameter.\"),ThisParamNoDefault:t(\"The `this` parameter may not have a default value.\"),TypeBeforeInitializer:t(\"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\"),TypeCastInPattern:t(\"The type cast expression is expected to be wrapped with parenthesis.\"),UnexpectedExplicitInexactInObject:t(\"Explicit inexact syntax must appear at the end of an inexact object.\"),UnexpectedReservedType:t(e=>{let{reservedType:s}=e;return\"Unexpected reserved type \".concat(s,\".\")}),UnexpectedReservedUnderscore:t(\"`_` is only allowed as a type argument to call or new.\"),UnexpectedSpaceBetweenModuloChecks:t(\"Spaces between `%` and `checks` are not allowed here.\"),UnexpectedSpreadType:t(\"Spread operator cannot appear in class or interface definitions.\"),UnexpectedSubtractionOperand:t('Unexpected token, expected \"number\" or \"bigint\".'),UnexpectedTokenAfterTypeParameter:t(\"Expected an arrow function after this type parameter declaration.\"),UnexpectedTypeParameterBeforeAsyncArrowFunction:t(\"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.\"),UnsupportedDeclareExportKind:t(e=>{let{unsupportedExportKind:s,suggestion:r}=e;return\"`declare export \".concat(s,\"` is not supported. Use `\").concat(r,\"` instead.\")}),UnsupportedStatementInDeclareModule:t(\"Only declares and type imports are allowed inside declare module.\"),UnterminatedFlowComment:t(\"Unterminated flow-comment.\")}));function wh(t){return t.type===\"DeclareExportAllDeclaration\"||t.type===\"DeclareExportDeclaration\"&&(!t.declaration||t.declaration.type!==\"TypeAlias\"&&t.declaration.type!==\"InterfaceDeclaration\")}function cs(t){return t.importKind===\"type\"||t.importKind===\"typeof\"}function Or(t){return pe(t)&&t!==97}var Nh={const:\"declare export var\",let:\"declare export var\",type:\"export type\",interface:\"export interface\"};function Ih(t,e){let s=[],r=[];for(let i=0;iclass extends t{constructor(){super(...arguments),this.flowPragma=void 0}getScopeHandler(){return fh}shouldParseTypes(){return this.getPluginOption(\"flow\",\"all\")||this.flowPragma===\"flow\"}shouldParseEnums(){return!!this.getPluginOption(\"flow\",\"enums\")}finishToken(e,s){return e!==129&&e!==13&&e!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(e,s)}addComment(e){if(this.flowPragma===void 0){let s=kh.exec(e.value);if(s)if(s[1]===\"flow\")this.flowPragma=\"flow\";else if(s[1]===\"noflow\")this.flowPragma=\"noflow\";else throw new Error(\"Unexpected flow pragma\")}return super.addComment(e)}flowParseTypeInitialiser(e){let s=this.state.inType;this.state.inType=!0,this.expect(e||14);let r=this.flowParseType();return this.state.inType=s,r}flowParsePredicate(){let e=this.startNode(),s=this.state.startLoc;return this.next(),this.expectContextual(107),this.state.lastTokStart>s.index+1&&this.raise(I.UnexpectedSpaceBetweenModuloChecks,{at:s}),this.eat(10)?(e.value=this.parseExpression(),this.expect(11),this.finishNode(e,\"DeclaredPredicate\")):this.finishNode(e,\"InferredPredicate\")}flowParseTypeAndPredicateInitialiser(){let e=this.state.inType;this.state.inType=!0,this.expect(14);let s=null,r=null;return this.match(54)?(this.state.inType=e,r=this.flowParsePredicate()):(s=this.flowParseType(),this.state.inType=e,this.match(54)&&(r=this.flowParsePredicate())),[s,r]}flowParseDeclareClass(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,\"DeclareClass\")}flowParseDeclareFunction(e){this.next();let s=e.id=this.parseIdentifier(),r=this.startNode(),i=this.startNode();this.match(47)?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(10);let a=this.flowParseFunctionTypeParams();return r.params=a.params,r.rest=a.rest,r.this=a._this,this.expect(11),[r.returnType,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),i.typeAnnotation=this.finishNode(r,\"FunctionTypeAnnotation\"),s.typeAnnotation=this.finishNode(i,\"TypeAnnotation\"),this.resetEndLocation(s),this.semicolon(),this.scope.declareName(e.id.name,$o,e.id.loc.start),this.finishNode(e,\"DeclareFunction\")}flowParseDeclare(e,s){if(this.match(80))return this.flowParseDeclareClass(e);if(this.match(68))return this.flowParseDeclareFunction(e);if(this.match(74))return this.flowParseDeclareVariable(e);if(this.eatContextual(123))return this.match(16)?this.flowParseDeclareModuleExports(e):(s&&this.raise(I.NestedDeclareModule,{at:this.state.lastTokStartLoc}),this.flowParseDeclareModule(e));if(this.isContextual(126))return this.flowParseDeclareTypeAlias(e);if(this.isContextual(127))return this.flowParseDeclareOpaqueType(e);if(this.isContextual(125))return this.flowParseDeclareInterface(e);if(this.match(82))return this.flowParseDeclareExportDeclaration(e,s);throw this.unexpected()}flowParseDeclareVariable(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(e.id.name,pt,e.id.loc.start),this.semicolon(),this.finishNode(e,\"DeclareVariable\")}flowParseDeclareModule(e){this.scope.enter(Me),this.match(129)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();let s=e.body=this.startNode(),r=s.body=[];for(this.expect(5);!this.match(8);){let n=this.startNode();this.match(83)?(this.next(),!this.isContextual(126)&&!this.match(87)&&this.raise(I.InvalidNonTypeImportInDeclareModule,{at:this.state.lastTokStartLoc}),this.parseImport(n)):(this.expectContextual(121,I.UnsupportedStatementInDeclareModule),n=this.flowParseDeclare(n,!0)),r.push(n)}this.scope.exit(),this.expect(8),this.finishNode(s,\"BlockStatement\");let i=null,a=!1;return r.forEach(n=>{wh(n)?(i===\"CommonJS\"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i=\"ES\"):n.type===\"DeclareModuleExports\"&&(a&&this.raise(I.DuplicateDeclareModuleExports,{at:n}),i===\"ES\"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i=\"CommonJS\",a=!0)}),e.kind=i||\"CommonJS\",this.finishNode(e,\"DeclareModule\")}flowParseDeclareExportDeclaration(e,s){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?e.declaration=this.flowParseDeclare(this.startNode()):(e.declaration=this.flowParseType(),this.semicolon()),e.default=!0,this.finishNode(e,\"DeclareExportDeclaration\");if(this.match(75)||this.isLet()||(this.isContextual(126)||this.isContextual(125))&&!s){let r=this.state.value;throw this.raise(I.UnsupportedDeclareExportKind,{at:this.state.startLoc,unsupportedExportKind:r,suggestion:Nh[r]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(127))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,\"DeclareExportDeclaration\");if(this.match(55)||this.match(5)||this.isContextual(125)||this.isContextual(126)||this.isContextual(127))return e=this.parseExport(e),e.type===\"ExportNamedDeclaration\"&&(e.type=\"ExportDeclaration\",e.default=!1,delete e.exportKind),e.type=\"Declare\"+e.type,e;throw this.unexpected()}flowParseDeclareModuleExports(e){return this.next(),this.expectContextual(108),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,\"DeclareModuleExports\")}flowParseDeclareTypeAlias(e){return this.next(),this.flowParseTypeAlias(e),e.type=\"DeclareTypeAlias\",e}flowParseDeclareOpaqueType(e){return this.next(),this.flowParseOpaqueType(e,!0),e.type=\"DeclareOpaqueType\",e}flowParseDeclareInterface(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,\"DeclareInterface\")}flowParseInterfaceish(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.flowParseRestrictedIdentifier(!s,!0),this.scope.declareName(e.id.name,s?Tr:xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.implements=[],e.mixins=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(!s&&this.eat(12));if(this.isContextual(114)){this.next();do e.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12))}if(this.isContextual(110)){this.next();do e.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}e.body=this.flowParseObjectType({allowStatic:s,allowExact:!1,allowSpread:!1,allowProto:s,allowInexact:!1})}flowParseInterfaceExtends(){let e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,\"InterfaceExtends\")}flowParseInterface(e){return this.flowParseInterfaceish(e),this.finishNode(e,\"InterfaceDeclaration\")}checkNotUnderscore(e){e===\"_\"&&this.raise(I.UnexpectedReservedUnderscore,{at:this.state.startLoc})}checkReservedType(e,s,r){!Sh.has(e)||this.raise(r?I.AssignReservedType:I.UnexpectedReservedType,{at:s,reservedType:e})}flowParseRestrictedIdentifier(e,s){return this.checkReservedType(this.state.value,this.state.startLoc,s),this.parseIdentifier(e)}flowParseTypeAlias(e){return e.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(e.id.name,xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(e,\"TypeAlias\")}flowParseOpaqueType(e,s){return this.expectContextual(126),e.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(e.id.name,xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(14)&&(e.supertype=this.flowParseTypeInitialiser(14)),e.impltype=null,s||(e.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(e,\"OpaqueType\")}flowParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,s=this.state.startLoc,r=this.startNode(),i=this.flowParseVariance(),a=this.flowParseTypeAnnotatableIdentifier();return r.name=a.name,r.variance=i,r.bound=a.typeAnnotation,this.match(29)?(this.eat(29),r.default=this.flowParseType()):e&&this.raise(I.MissingTypeParamDefault,{at:s}),this.finishNode(r,\"TypeParameter\")}flowParseTypeParameterDeclaration(){let e=this.state.inType,s=this.startNode();s.params=[],this.state.inType=!0,this.match(47)||this.match(138)?this.next():this.unexpected();let r=!1;do{let i=this.flowParseTypeParameter(r);s.params.push(i),i.default&&(r=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=e,this.finishNode(s,\"TypeParameterDeclaration\")}flowParseTypeParameterInstantiation(){let e=this.startNode(),s=this.state.inType;e.params=[],this.state.inType=!0,this.expect(47);let r=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)e.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=r,this.expect(48),this.state.inType=s,this.finishNode(e,\"TypeParameterInstantiation\")}flowParseTypeParameterInstantiationCallOrNew(){let e=this.startNode(),s=this.state.inType;for(e.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)e.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=s,this.finishNode(e,\"TypeParameterInstantiation\")}flowParseInterfaceType(){let e=this.startNode();if(this.expectContextual(125),e.extends=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return e.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(e,\"InterfaceTypeAnnotation\")}flowParseObjectPropertyKey(){return this.match(130)||this.match(129)?this.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(e,s,r){return e.static=s,this.lookahead().type===14?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(3),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.finishNode(e,\"ObjectTypeIndexer\")}flowParseObjectTypeInternalSlot(e,s){return e.static=s,e.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(e.method=!0,e.optional=!1,e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start))):(e.method=!1,this.eat(17)&&(e.optional=!0),e.value=this.flowParseTypeInitialiser()),this.finishNode(e,\"ObjectTypeInternalSlot\")}flowParseObjectTypeMethodish(e){for(e.params=[],e.rest=null,e.typeParameters=null,e.this=null,this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(e.this=this.flowParseFunctionTypeParam(!0),e.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(e.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,\"FunctionTypeAnnotation\")}flowParseObjectTypeCallProperty(e,s){let r=this.startNode();return e.static=s,e.value=this.flowParseObjectTypeMethodish(r),this.finishNode(e,\"ObjectTypeCallProperty\")}flowParseObjectType(e){let{allowStatic:s,allowExact:r,allowSpread:i,allowProto:a,allowInexact:n}=e,o=this.state.inType;this.state.inType=!0;let c=this.startNode();c.callProperties=[],c.properties=[],c.indexers=[],c.internalSlots=[];let f,y,P=!1;for(r&&this.match(6)?(this.expect(6),f=9,y=!0):(this.expect(5),f=8,y=!1),c.exact=y;!this.match(f);){let N=!1,B=null,_=null,Q=this.startNode();if(a&&this.isContextual(115)){let ne=this.lookahead();ne.type!==14&&ne.type!==17&&(this.next(),B=this.state.startLoc,s=!1)}if(s&&this.isContextual(104)){let ne=this.lookahead();ne.type!==14&&ne.type!==17&&(this.next(),N=!0)}let re=this.flowParseVariance();if(this.eat(0))B!=null&&this.unexpected(B),this.eat(0)?(re&&this.unexpected(re.loc.start),c.internalSlots.push(this.flowParseObjectTypeInternalSlot(Q,N))):c.indexers.push(this.flowParseObjectTypeIndexer(Q,N,re));else if(this.match(10)||this.match(47))B!=null&&this.unexpected(B),re&&this.unexpected(re.loc.start),c.callProperties.push(this.flowParseObjectTypeCallProperty(Q,N));else{let ne=\"init\";if(this.isContextual(98)||this.isContextual(103)){let le=this.lookahead();hr(le.type)&&(ne=this.state.value,this.next())}let $e=this.flowParseObjectTypeProperty(Q,N,B,re,ne,i,n!=null?n:!y);$e===null?(P=!0,_=this.state.lastTokStartLoc):c.properties.push($e)}this.flowObjectTypeSemicolon(),_&&!this.match(8)&&!this.match(9)&&this.raise(I.UnexpectedExplicitInexactInObject,{at:_})}this.expect(f),i&&(c.inexact=P);let v=this.finishNode(c,\"ObjectTypeAnnotation\");return this.state.inType=o,v}flowParseObjectTypeProperty(e,s,r,i,a,n,o){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(n?o||this.raise(I.InexactInsideExact,{at:this.state.lastTokStartLoc}):this.raise(I.InexactInsideNonObject,{at:this.state.lastTokStartLoc}),i&&this.raise(I.InexactVariance,{at:i}),null):(n||this.raise(I.UnexpectedSpreadType,{at:this.state.lastTokStartLoc}),r!=null&&this.unexpected(r),i&&this.raise(I.SpreadVariance,{at:i}),e.argument=this.flowParseType(),this.finishNode(e,\"ObjectTypeSpreadProperty\"));{e.key=this.flowParseObjectPropertyKey(),e.static=s,e.proto=r!=null,e.kind=a;let c=!1;return this.match(47)||this.match(10)?(e.method=!0,r!=null&&this.unexpected(r),i&&this.unexpected(i.loc.start),e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start)),(a===\"get\"||a===\"set\")&&this.flowCheckGetterSetterParams(e),!n&&e.key.name===\"constructor\"&&e.value.this&&this.raise(I.ThisParamBannedInConstructor,{at:e.value.this})):(a!==\"init\"&&this.unexpected(),e.method=!1,this.eat(17)&&(c=!0),e.value=this.flowParseTypeInitialiser(),e.variance=i),e.optional=c,this.finishNode(e,\"ObjectTypeProperty\")}}flowCheckGetterSetterParams(e){let s=e.kind===\"get\"?0:1,r=e.value.params.length+(e.value.rest?1:0);e.value.this&&this.raise(e.kind===\"get\"?I.GetterMayNotHaveThisParam:I.SetterMayNotHaveThisParam,{at:e.value.this}),r!==s&&this.raise(e.kind===\"get\"?u.BadGetterArity:u.BadSetterArity,{at:e}),e.kind===\"set\"&&e.value.rest&&this.raise(u.BadSetterRestParameter,{at:e})}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(e,s,r){e=e||this.state.start,s=s||this.state.startLoc;let i=r||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){let a=this.startNodeAt(e,s);a.qualification=i,a.id=this.flowParseRestrictedIdentifier(!0),i=this.finishNode(a,\"QualifiedTypeIdentifier\")}return i}flowParseGenericType(e,s,r){let i=this.startNodeAt(e,s);return i.typeParameters=null,i.id=this.flowParseQualifiedTypeIdentifier(e,s,r),this.match(47)&&(i.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(i,\"GenericTypeAnnotation\")}flowParseTypeofType(){let e=this.startNode();return this.expect(87),e.argument=this.flowParsePrimaryType(),this.finishNode(e,\"TypeofTypeAnnotation\")}flowParseTupleType(){let e=this.startNode();for(e.types=[],this.expect(0);this.state.pos0&&arguments[0]!==void 0?arguments[0]:[],s=null,r=null;for(this.match(78)&&(r=this.flowParseFunctionTypeParam(!0),r.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(s=this.flowParseFunctionTypeParam(!1)),{params:e,rest:s,_this:r}}flowIdentToTypeAnnotation(e,s,r,i){switch(i.name){case\"any\":return this.finishNode(r,\"AnyTypeAnnotation\");case\"bool\":case\"boolean\":return this.finishNode(r,\"BooleanTypeAnnotation\");case\"mixed\":return this.finishNode(r,\"MixedTypeAnnotation\");case\"empty\":return this.finishNode(r,\"EmptyTypeAnnotation\");case\"number\":return this.finishNode(r,\"NumberTypeAnnotation\");case\"string\":return this.finishNode(r,\"StringTypeAnnotation\");case\"symbol\":return this.finishNode(r,\"SymbolTypeAnnotation\");default:return this.checkNotUnderscore(i.name),this.flowParseGenericType(e,s,i)}}flowParsePrimaryType(){let e=this.state.start,s=this.state.startLoc,r=this.startNode(),i,a,n=!1,o=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,a=this.flowParseTupleType(),this.state.noAnonFunctionType=o,a;case 47:return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),this.finishNode(r,\"FunctionTypeAnnotation\");case 10:if(this.next(),!this.match(11)&&!this.match(21))if(K(this.state.type)||this.match(78)){let c=this.lookahead().type;n=c!==17&&c!==14}else n=!0;if(n){if(this.state.noAnonFunctionType=!1,a=this.flowParseType(),this.state.noAnonFunctionType=o,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),a;this.eat(12)}return a?i=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]):i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,\"FunctionTypeAnnotation\");case 129:return this.parseLiteral(this.state.value,\"StringLiteralTypeAnnotation\");case 85:case 86:return r.value=this.match(85),this.next(),this.finishNode(r,\"BooleanLiteralTypeAnnotation\");case 53:if(this.state.value===\"-\"){if(this.next(),this.match(130))return this.parseLiteralAtNode(-this.state.value,\"NumberLiteralTypeAnnotation\",r);if(this.match(131))return this.parseLiteralAtNode(-this.state.value,\"BigIntLiteralTypeAnnotation\",r);throw this.raise(I.UnexpectedSubtractionOperand,{at:this.state.startLoc})}throw this.unexpected();case 130:return this.parseLiteral(this.state.value,\"NumberLiteralTypeAnnotation\");case 131:return this.parseLiteral(this.state.value,\"BigIntLiteralTypeAnnotation\");case 88:return this.next(),this.finishNode(r,\"VoidTypeAnnotation\");case 84:return this.next(),this.finishNode(r,\"NullLiteralTypeAnnotation\");case 78:return this.next(),this.finishNode(r,\"ThisTypeAnnotation\");case 55:return this.next(),this.finishNode(r,\"ExistsTypeAnnotation\");case 87:return this.flowParseTypeofType();default:if(Ht(this.state.type)){let c=Pe(this.state.type);return this.next(),super.createIdentifier(r,c)}else if(K(this.state.type))return this.isContextual(125)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(e,s,r,this.parseIdentifier())}throw this.unexpected()}flowParsePostfixType(){let e=this.state.start,s=this.state.startLoc,r=this.flowParsePrimaryType(),i=!1;for(;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){let a=this.startNodeAt(e,s),n=this.eat(18);i=i||n,this.expect(0),!n&&this.match(3)?(a.elementType=r,this.next(),r=this.finishNode(a,\"ArrayTypeAnnotation\")):(a.objectType=r,a.indexType=this.flowParseType(),this.expect(3),i?(a.optional=n,r=this.finishNode(a,\"OptionalIndexedAccessType\")):r=this.finishNode(a,\"IndexedAccessType\"))}return r}flowParsePrefixType(){let e=this.startNode();return this.eat(17)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,\"NullableTypeAnnotation\")):this.flowParsePostfixType()}flowParseAnonFunctionWithoutParens(){let e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){let s=this.startNodeAt(e.start,e.loc.start);return s.params=[this.reinterpretTypeAsFunctionTypeParam(e)],s.rest=null,s.this=null,s.returnType=this.flowParseType(),s.typeParameters=null,this.finishNode(s,\"FunctionTypeAnnotation\")}return e}flowParseIntersectionType(){let e=this.startNode();this.eat(45);let s=this.flowParseAnonFunctionWithoutParens();for(e.types=[s];this.eat(45);)e.types.push(this.flowParseAnonFunctionWithoutParens());return e.types.length===1?s:this.finishNode(e,\"IntersectionTypeAnnotation\")}flowParseUnionType(){let e=this.startNode();this.eat(43);let s=this.flowParseIntersectionType();for(e.types=[s];this.eat(43);)e.types.push(this.flowParseIntersectionType());return e.types.length===1?s:this.finishNode(e,\"UnionTypeAnnotation\")}flowParseType(){let e=this.state.inType;this.state.inType=!0;let s=this.flowParseUnionType();return this.state.inType=e,s}flowParseTypeOrImplicitInstantiation(){if(this.state.type===128&&this.state.value===\"_\"){let e=this.state.start,s=this.state.startLoc,r=this.parseIdentifier();return this.flowParseGenericType(e,s,r)}else return this.flowParseType()}flowParseTypeAnnotation(){let e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,\"TypeAnnotation\")}flowParseTypeAnnotatableIdentifier(e){let s=e?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(s.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(s)),s}typeCastToParameter(e){return e.expression.typeAnnotation=e.typeAnnotation,this.resetEndLocation(e.expression,e.typeAnnotation.loc.end),e.expression}flowParseVariance(){let e=null;return this.match(53)&&(e=this.startNode(),this.state.value===\"+\"?e.kind=\"plus\":e.kind=\"minus\",this.next(),this.finishNode(e,\"Variance\")),e}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return s?this.forwardNoArrowParamsConversionAt(e,()=>super.parseFunctionBody(e,!0,r)):super.parseFunctionBody(e,!1,r)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(this.match(14)){let i=this.startNode();[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),e.returnType=i.typeAnnotation?this.finishNode(i,\"TypeAnnotation\"):null}super.parseFunctionBodyAndFinish(e,s,r)}parseStatement(e,s){if(this.state.strict&&this.isContextual(125)){let i=this.lookahead();if(pe(i.type)){let a=this.startNode();return this.next(),this.flowParseInterface(a)}}else if(this.shouldParseEnums()&&this.isContextual(122)){let i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}let r=super.parseStatement(e,s);return this.flowPragma===void 0&&!this.isValidDirective(r)&&(this.flowPragma=null),r}parseExpressionStatement(e,s){if(s.type===\"Identifier\"){if(s.name===\"declare\"){if(this.match(80)||K(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(e)}else if(K(this.state.type)){if(s.name===\"interface\")return this.flowParseInterface(e);if(s.name===\"type\")return this.flowParseTypeAlias(e);if(s.name===\"opaque\")return this.flowParseOpaqueType(e,!1)}}return super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){let{type:e}=this.state;return lr(e)||this.shouldParseEnums()&&e===122?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){let{type:e}=this.state;return lr(e)||this.shouldParseEnums()&&e===122?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual(122)){let e=this.startNode();return this.next(),this.flowParseEnumDeclaration(e)}return super.parseExportDefaultExpression()}parseConditional(e,s,r,i){if(!this.match(17))return e;if(this.state.maybeInArrowParameters){let v=this.lookaheadCharCode();if(v===44||v===61||v===58||v===41)return this.setOptionalParametersError(i),e}this.expect(17);let a=this.state.clone(),n=this.state.noArrowAt,o=this.startNodeAt(s,r),{consequent:c,failed:f}=this.tryParseConditionalConsequent(),[y,P]=this.getArrowLikeExpressions(c);if(f||P.length>0){let v=[...n];if(P.length>0){this.state=a,this.state.noArrowAt=v;for(let N=0;N1&&this.raise(I.AmbiguousConditionalArrow,{at:a.startLoc}),f&&y.length===1&&(this.state=a,v.push(y[0].start),this.state.noArrowAt=v,{consequent:c,failed:f}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(c,!0),this.state.noArrowAt=n,this.expect(14),o.test=e,o.consequent=c,o.alternate=this.forwardNoArrowParamsConversionAt(o,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(o,\"ConditionalExpression\")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);let e=this.parseMaybeAssignAllowIn(),s=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:e,failed:s}}getArrowLikeExpressions(e,s){let r=[e],i=[];for(;r.length!==0;){let a=r.pop();a.type===\"ArrowFunctionExpression\"?(a.typeParameters||!a.returnType?this.finishArrowValidation(a):i.push(a),r.push(a.body)):a.type===\"ConditionalExpression\"&&(r.push(a.consequent),r.push(a.alternate))}return s?(i.forEach(a=>this.finishArrowValidation(a)),[i,[]]):Ih(i,a=>a.params.every(n=>this.isAssignable(n,!0)))}finishArrowValidation(e){var s;this.toAssignableList(e.params,(s=e.extra)==null?void 0:s.trailingCommaLoc,!1),this.scope.enter(me|Jt),super.checkParams(e,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(e,s){let r;return this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?(this.state.noArrowParamsConversionAt.push(this.state.start),r=s(),this.state.noArrowParamsConversionAt.pop()):r=s(),r}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,\"TypeCastExpression\")}return e}assertModuleNodeAllowed(e){e.type===\"ImportDeclaration\"&&(e.importKind===\"type\"||e.importKind===\"typeof\")||e.type===\"ExportNamedDeclaration\"&&e.exportKind===\"type\"||e.type===\"ExportAllDeclaration\"&&e.exportKind===\"type\"||super.assertModuleNodeAllowed(e)}parseExport(e){let s=super.parseExport(e);return(s.type===\"ExportNamedDeclaration\"||s.type===\"ExportAllDeclaration\")&&(s.exportKind=s.exportKind||\"value\"),s}parseExportDeclaration(e){if(this.isContextual(126)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.match(5)?(e.specifiers=this.parseExportSpecifiers(!0),this.parseExportFrom(e),null):this.flowParseTypeAlias(s)}else if(this.isContextual(127)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.flowParseOpaqueType(s,!1)}else if(this.isContextual(125)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.flowParseInterface(s)}else if(this.shouldParseEnums()&&this.isContextual(122)){e.exportKind=\"value\";let s=this.startNode();return this.next(),this.flowParseEnumDeclaration(s)}else return super.parseExportDeclaration(e)}eatExportStar(e){return super.eatExportStar(...arguments)?!0:this.isContextual(126)&&this.lookahead().type===55?(e.exportKind=\"type\",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(e){let{startLoc:s}=this.state,r=super.maybeParseExportNamespaceSpecifier(e);return r&&e.exportKind===\"type\"&&this.unexpected(s),r}parseClassId(e,s,r){super.parseClassId(e,s,r),this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(e,s,r){let{startLoc:i}=this.state;if(this.isContextual(121)){if(this.parseClassMemberFromModifier(e,s))return;s.declare=!0}super.parseClassMember(e,s,r),s.declare&&(s.type!==\"ClassProperty\"&&s.type!==\"ClassPrivateProperty\"&&s.type!==\"PropertyDefinition\"?this.raise(I.DeclareClassElement,{at:i}):s.value&&this.raise(I.DeclareClassFieldInitializer,{at:s.value}))}isIterator(e){return e===\"iterator\"||e===\"asyncIterator\"}readIterator(){let e=super.readWord1(),s=\"@@\"+e;(!this.isIterator(e)||!this.state.inType)&&this.raise(u.InvalidIdentifier,{at:this.state.curPosition(),identifierName:s}),this.finishToken(128,s)}getTokenFromCode(e){let s=this.input.charCodeAt(this.state.pos+1);return e===123&&s===124?this.finishOp(6,2):this.state.inType&&(e===62||e===60)?this.finishOp(e===62?48:47,1):this.state.inType&&e===63?s===46?this.finishOp(18,2):this.finishOp(17,1):Ko(e,s,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(e)}isAssignable(e,s){return e.type===\"TypeCastExpression\"?this.isAssignable(e.expression,s):super.isAssignable(e,s)}toAssignable(e){!(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)&&e.type===\"AssignmentExpression\"&&e.left.type===\"TypeCastExpression\"&&(e.left=this.typeCastToParameter(e.left)),super.toAssignable(...arguments)}toAssignableList(e,s,r){for(let i=0;i1||!s)&&this.raise(I.TypeCastInPattern,{at:a.typeAnnotation})}return e}parseArrayLike(e,s,r,i){let a=super.parseArrayLike(e,s,r,i);return s&&!this.state.maybeInArrowParameters&&this.toReferencedList(a.elements),a}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}else if(s.type===\"MethodDefinition\"&&a&&s.value.params){let o=s.value.params;o.length>0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}}pushClassPrivateMethod(e,s,r,i){s.variance&&this.unexpected(s.variance.loc.start),delete s.variance,this.match(47)&&(s.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(e,s,r,i)}parseClassSuper(e){if(super.parseClassSuper(e),e.superClass&&this.match(47)&&(e.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(110)){this.next();let s=e.implements=[];do{let r=this.startNode();r.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?r.typeParameters=this.flowParseTypeParameterInstantiation():r.typeParameters=null,s.push(this.finishNode(r,\"ClassImplements\"))}while(this.eat(12))}}checkGetterSetterParams(e){super.checkGetterSetterParams(e);let s=this.getObjectOrClassMethodParams(e);if(s.length>0){let r=s[0];this.isThisParam(r)&&e.kind===\"get\"?this.raise(I.GetterMayNotHaveThisParam,{at:r}):this.isThisParam(r)&&this.raise(I.SetterMayNotHaveThisParam,{at:r})}}parsePropertyNamePrefixOperator(e){e.variance=this.flowParseVariance()}parseObjPropValue(e,s,r,i,a,n,o,c){e.variance&&this.unexpected(e.variance.loc.start),delete e.variance;let f;this.match(47)&&!o&&(f=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected()),super.parseObjPropValue(e,s,r,i,a,n,o,c),f&&((e.value||e).typeParameters=f)}parseAssignableListItemTypes(e){return this.eat(17)&&(e.type!==\"Identifier\"&&this.raise(I.PatternIsOptional,{at:e}),this.isThisParam(e)&&this.raise(I.ThisParamMayNotBeOptional,{at:e}),e.optional=!0),this.match(14)?e.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(e)&&this.raise(I.ThisParamAnnotationRequired,{at:e}),this.match(29)&&this.isThisParam(e)&&this.raise(I.ThisParamNoDefault,{at:e}),this.resetEndLocation(e),e}parseMaybeDefault(e,s,r){let i=super.parseMaybeDefault(e,s,r);return i.type===\"AssignmentPattern\"&&i.typeAnnotation&&i.right.startsuper.parseMaybeAssign(e,s),i),!a.error)return a.node;let{context:c}=this.state,f=c[c.length-1];(f===z.j_oTag||f===z.j_expr)&&c.pop()}if((r=a)!=null&&r.error||this.match(47)){var n,o;i=i||this.state.clone();let c,f=this.tryParse(P=>{var v;c=this.flowParseTypeParameterDeclaration();let N=this.forwardNoArrowParamsConversionAt(c,()=>{let _=super.parseMaybeAssign(e,s);return this.resetStartLocationFromNode(_,c),_});(v=N.extra)!=null&&v.parenthesized&&P();let B=this.maybeUnwrapTypeCastExpression(N);return B.type!==\"ArrowFunctionExpression\"&&P(),B.typeParameters=c,this.resetStartLocationFromNode(B,c),N},i),y=null;if(f.node&&this.maybeUnwrapTypeCastExpression(f.node).type===\"ArrowFunctionExpression\"){if(!f.error&&!f.aborted)return f.node.async&&this.raise(I.UnexpectedTypeParameterBeforeAsyncArrowFunction,{at:c}),f.node;y=f.node}if((n=a)!=null&&n.node)return this.state=a.failState,a.node;if(y)return this.state=f.failState,y;throw(o=a)!=null&&o.thrown?a.error:f.thrown?f.error:this.raise(I.UnexpectedTokenAfterTypeParameter,{at:c})}return super.parseMaybeAssign(e,s)}parseArrow(e){if(this.match(14)){let s=this.tryParse(()=>{let r=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;let i=this.startNode();return[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=r,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),i});if(s.thrown)return null;s.error&&(this.state=s.failState),e.returnType=s.node.typeAnnotation?this.finishNode(s.node,\"TypeAnnotation\"):null}return super.parseArrow(e)}shouldParseArrow(e){return this.match(14)||super.shouldParseArrow(e)}setArrowFunctionParameters(e,s){this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?e.params=s:super.setArrowFunctionParameters(e,s)}checkParams(e,s,r){if(!(r&&this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1)){for(let i=0;i0&&this.raise(I.ThisParamMustBeFirst,{at:e.params[i]});return super.checkParams(...arguments)}}parseParenAndDistinguishExpression(e){return super.parseParenAndDistinguishExpression(e&&this.state.noArrowAt.indexOf(this.state.start)===-1)}parseSubscripts(e,s,r,i){if(e.type===\"Identifier\"&&e.name===\"async\"&&this.state.noArrowAt.indexOf(s)!==-1){this.next();let a=this.startNodeAt(s,r);a.callee=e,a.arguments=this.parseCallExpressionArguments(11,!1),e=this.finishNode(a,\"CallExpression\")}else if(e.type===\"Identifier\"&&e.name===\"async\"&&this.match(47)){let a=this.state.clone(),n=this.tryParse(c=>this.parseAsyncArrowWithTypeParameters(s,r)||c(),a);if(!n.error&&!n.aborted)return n.node;let o=this.tryParse(()=>super.parseSubscripts(e,s,r,i),a);if(o.node&&!o.error)return o.node;if(n.node)return this.state=n.failState,n.node;if(o.node)return this.state=o.failState,o.node;throw n.error||o.error}return super.parseSubscripts(e,s,r,i)}parseSubscript(e,s,r,i,a){if(this.match(18)&&this.isLookaheadToken_lt()){if(a.optionalChainMember=!0,i)return a.stop=!0,e;this.next();let n=this.startNodeAt(s,r);return n.callee=e,n.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),n.optional=!0,this.finishCallExpression(n,!0)}else if(!i&&this.shouldParseTypes()&&this.match(47)){let n=this.startNodeAt(s,r);n.callee=e;let o=this.tryParse(()=>(n.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),a.optionalChainMember&&(n.optional=!1),this.finishCallExpression(n,a.optionalChainMember)));if(o.node)return o.error&&(this.state=o.failState),o.node}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){super.parseNewCallee(e);let s=null;this.shouldParseTypes()&&this.match(47)&&(s=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),e.typeArguments=s}parseAsyncArrowWithTypeParameters(e,s){let r=this.startNodeAt(e,s);if(this.parseFunctionParams(r),!!this.parseArrow(r))return this.parseArrowExpression(r,void 0,!0)}readToken_mult_modulo(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===42&&s===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(e)}readToken_pipe_amp(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===124&&s===125){this.finishOp(9,2);return}super.readToken_pipe_amp(e)}parseTopLevel(e,s){let r=super.parseTopLevel(e,s);return this.state.hasFlowComment&&this.raise(I.UnterminatedFlowComment,{at:this.state.curPosition()}),r}skipBlockComment(){if(this.hasPlugin(\"flowComments\")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(I.NestedFlowComment,{at:this.state.startLoc});this.hasFlowCommentCompletion(),this.state.pos+=this.skipFlowComment(),this.state.hasFlowComment=!0;return}if(this.state.hasFlowComment){let e=this.input.indexOf(\"*-/\",this.state.pos+2);if(e===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()});this.state.pos=e+2+3;return}return super.skipBlockComment()}skipFlowComment(){let{pos:e}=this.state,s=2;for(;[32,9].includes(this.input.charCodeAt(e+s));)s++;let r=this.input.charCodeAt(s+e),i=this.input.charCodeAt(s+e+1);return r===58&&i===58?s+2:this.input.slice(s+e,s+e+12)===\"flow-include\"?s+12:r===58&&i!==58?s:!1}hasFlowCommentCompletion(){if(this.input.indexOf(\"*/\",this.state.pos)===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()})}flowEnumErrorBooleanMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumBooleanMemberNotInitialized,{at:e,memberName:i,enumName:r})}flowEnumErrorInvalidMemberInitializer(e,s){return this.raise(s.explicitType?s.explicitType===\"symbol\"?I.EnumInvalidMemberInitializerSymbolType:I.EnumInvalidMemberInitializerPrimaryType:I.EnumInvalidMemberInitializerUnknownType,Object.assign({at:e},s))}flowEnumErrorNumberMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumNumberMemberNotInitialized,{at:e,enumName:r,memberName:i})}flowEnumErrorStringMemberInconsistentlyInitailized(e,s){let{enumName:r}=s;this.raise(I.EnumStringMemberInconsistentlyInitailized,{at:e,enumName:r})}flowEnumMemberInit(){let e=this.state.startLoc,s=()=>this.match(12)||this.match(8);switch(this.state.type){case 130:{let r=this.parseNumericLiteral(this.state.value);return s()?{type:\"number\",loc:r.loc.start,value:r}:{type:\"invalid\",loc:e}}case 129:{let r=this.parseStringLiteral(this.state.value);return s()?{type:\"string\",loc:r.loc.start,value:r}:{type:\"invalid\",loc:e}}case 85:case 86:{let r=this.parseBooleanLiteral(this.match(85));return s()?{type:\"boolean\",loc:r.loc.start,value:r}:{type:\"invalid\",loc:e}}default:return{type:\"invalid\",loc:e}}}flowEnumMemberRaw(){let e=this.state.startLoc,s=this.parseIdentifier(!0),r=this.eat(29)?this.flowEnumMemberInit():{type:\"none\",loc:e};return{id:s,init:r}}flowEnumCheckExplicitTypeMismatch(e,s,r){let{explicitType:i}=s;i!==null&&i!==r&&this.flowEnumErrorInvalidMemberInitializer(e,s)}flowEnumMembers(e){let{enumName:s,explicitType:r}=e,i=new Set,a={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},n=!1;for(;!this.match(8);){if(this.eat(21)){n=!0;break}let o=this.startNode(),{id:c,init:f}=this.flowEnumMemberRaw(),y=c.name;if(y===\"\")continue;/^[a-z]/.test(y)&&this.raise(I.EnumInvalidMemberName,{at:c,memberName:y,suggestion:y[0].toUpperCase()+y.slice(1),enumName:s}),i.has(y)&&this.raise(I.EnumDuplicateMemberName,{at:c,memberName:y,enumName:s}),i.add(y);let P={enumName:s,explicitType:r,memberName:y};switch(o.id=c,f.type){case\"boolean\":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,\"boolean\"),o.init=f.value,a.booleanMembers.push(this.finishNode(o,\"EnumBooleanMember\"));break}case\"number\":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,\"number\"),o.init=f.value,a.numberMembers.push(this.finishNode(o,\"EnumNumberMember\"));break}case\"string\":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,\"string\"),o.init=f.value,a.stringMembers.push(this.finishNode(o,\"EnumStringMember\"));break}case\"invalid\":throw this.flowEnumErrorInvalidMemberInitializer(f.loc,P);case\"none\":switch(r){case\"boolean\":this.flowEnumErrorBooleanMemberNotInitialized(f.loc,P);break;case\"number\":this.flowEnumErrorNumberMemberNotInitialized(f.loc,P);break;default:a.defaultedMembers.push(this.finishNode(o,\"EnumDefaultedMember\"))}}this.match(8)||this.expect(12)}return{members:a,hasUnknownMembers:n}}flowEnumStringMembers(e,s,r){let{enumName:i}=r;if(e.length===0)return s;if(s.length===0)return e;if(s.length>e.length){for(let a of e)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return s}else{for(let a of s)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return e}}flowEnumParseExplicitType(e){let{enumName:s}=e;if(!this.eatContextual(101))return null;if(!K(this.state.type))throw this.raise(I.EnumInvalidExplicitTypeUnknownSupplied,{at:this.state.startLoc,enumName:s});let{value:r}=this.state;return this.next(),r!==\"boolean\"&&r!==\"number\"&&r!==\"string\"&&r!==\"symbol\"&&this.raise(I.EnumInvalidExplicitType,{at:this.state.startLoc,enumName:s,invalidEnumType:r}),r}flowEnumBody(e,s){let r=s.name,i=s.loc.start,a=this.flowEnumParseExplicitType({enumName:r});this.expect(5);let{members:n,hasUnknownMembers:o}=this.flowEnumMembers({enumName:r,explicitType:a});switch(e.hasUnknownMembers=o,a){case\"boolean\":return e.explicitType=!0,e.members=n.booleanMembers,this.expect(8),this.finishNode(e,\"EnumBooleanBody\");case\"number\":return e.explicitType=!0,e.members=n.numberMembers,this.expect(8),this.finishNode(e,\"EnumNumberBody\");case\"string\":return e.explicitType=!0,e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,\"EnumStringBody\");case\"symbol\":return e.members=n.defaultedMembers,this.expect(8),this.finishNode(e,\"EnumSymbolBody\");default:{let c=()=>(e.members=[],this.expect(8),this.finishNode(e,\"EnumStringBody\"));e.explicitType=!1;let f=n.booleanMembers.length,y=n.numberMembers.length,P=n.stringMembers.length,v=n.defaultedMembers.length;if(!f&&!y&&!P&&!v)return c();if(!f&&!y)return e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,\"EnumStringBody\");if(!y&&!P&&f>=v){for(let N of n.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.booleanMembers,this.expect(8),this.finishNode(e,\"EnumBooleanBody\")}else if(!f&&!P&&y>=v){for(let N of n.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.numberMembers,this.expect(8),this.finishNode(e,\"EnumNumberBody\")}else return this.raise(I.EnumInconsistentMemberValues,{at:i,enumName:r}),c()}}}flowParseEnumDeclaration(e){let s=this.parseIdentifier();return e.id=s,e.body=this.flowEnumBody(this.startNode(),s),this.finishNode(e,\"EnumDeclaration\")}isLookaheadToken_lt(){let e=this.nextTokenStart();if(this.input.charCodeAt(e)===60){let s=this.input.charCodeAt(e+1);return s!==60&&s!==61}return!1}maybeUnwrapTypeCastExpression(e){return e.type===\"TypeCastExpression\"?e.expression:e}},Fh={__proto__:null,quot:'\"',amp:\"&\",apos:\"'\",lt:\"<\",gt:\">\",nbsp:\"\\xA0\",iexcl:\"\\xA1\",cent:\"\\xA2\",pound:\"\\xA3\",curren:\"\\xA4\",yen:\"\\xA5\",brvbar:\"\\xA6\",sect:\"\\xA7\",uml:\"\\xA8\",copy:\"\\xA9\",ordf:\"\\xAA\",laquo:\"\\xAB\",not:\"\\xAC\",shy:\"\\xAD\",reg:\"\\xAE\",macr:\"\\xAF\",deg:\"\\xB0\",plusmn:\"\\xB1\",sup2:\"\\xB2\",sup3:\"\\xB3\",acute:\"\\xB4\",micro:\"\\xB5\",para:\"\\xB6\",middot:\"\\xB7\",cedil:\"\\xB8\",sup1:\"\\xB9\",ordm:\"\\xBA\",raquo:\"\\xBB\",frac14:\"\\xBC\",frac12:\"\\xBD\",frac34:\"\\xBE\",iquest:\"\\xBF\",Agrave:\"\\xC0\",Aacute:\"\\xC1\",Acirc:\"\\xC2\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Aring:\"\\xC5\",AElig:\"\\xC6\",Ccedil:\"\\xC7\",Egrave:\"\\xC8\",Eacute:\"\\xC9\",Ecirc:\"\\xCA\",Euml:\"\\xCB\",Igrave:\"\\xCC\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Iuml:\"\\xCF\",ETH:\"\\xD0\",Ntilde:\"\\xD1\",Ograve:\"\\xD2\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",times:\"\\xD7\",Oslash:\"\\xD8\",Ugrave:\"\\xD9\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",THORN:\"\\xDE\",szlig:\"\\xDF\",agrave:\"\\xE0\",aacute:\"\\xE1\",acirc:\"\\xE2\",atilde:\"\\xE3\",auml:\"\\xE4\",aring:\"\\xE5\",aelig:\"\\xE6\",ccedil:\"\\xE7\",egrave:\"\\xE8\",eacute:\"\\xE9\",ecirc:\"\\xEA\",euml:\"\\xEB\",igrave:\"\\xEC\",iacute:\"\\xED\",icirc:\"\\xEE\",iuml:\"\\xEF\",eth:\"\\xF0\",ntilde:\"\\xF1\",ograve:\"\\xF2\",oacute:\"\\xF3\",ocirc:\"\\xF4\",otilde:\"\\xF5\",ouml:\"\\xF6\",divide:\"\\xF7\",oslash:\"\\xF8\",ugrave:\"\\xF9\",uacute:\"\\xFA\",ucirc:\"\\xFB\",uuml:\"\\xFC\",yacute:\"\\xFD\",thorn:\"\\xFE\",yuml:\"\\xFF\",OElig:\"\\u0152\",oelig:\"\\u0153\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Yuml:\"\\u0178\",fnof:\"\\u0192\",circ:\"\\u02C6\",tilde:\"\\u02DC\",Alpha:\"\\u0391\",Beta:\"\\u0392\",Gamma:\"\\u0393\",Delta:\"\\u0394\",Epsilon:\"\\u0395\",Zeta:\"\\u0396\",Eta:\"\\u0397\",Theta:\"\\u0398\",Iota:\"\\u0399\",Kappa:\"\\u039A\",Lambda:\"\\u039B\",Mu:\"\\u039C\",Nu:\"\\u039D\",Xi:\"\\u039E\",Omicron:\"\\u039F\",Pi:\"\\u03A0\",Rho:\"\\u03A1\",Sigma:\"\\u03A3\",Tau:\"\\u03A4\",Upsilon:\"\\u03A5\",Phi:\"\\u03A6\",Chi:\"\\u03A7\",Psi:\"\\u03A8\",Omega:\"\\u03A9\",alpha:\"\\u03B1\",beta:\"\\u03B2\",gamma:\"\\u03B3\",delta:\"\\u03B4\",epsilon:\"\\u03B5\",zeta:\"\\u03B6\",eta:\"\\u03B7\",theta:\"\\u03B8\",iota:\"\\u03B9\",kappa:\"\\u03BA\",lambda:\"\\u03BB\",mu:\"\\u03BC\",nu:\"\\u03BD\",xi:\"\\u03BE\",omicron:\"\\u03BF\",pi:\"\\u03C0\",rho:\"\\u03C1\",sigmaf:\"\\u03C2\",sigma:\"\\u03C3\",tau:\"\\u03C4\",upsilon:\"\\u03C5\",phi:\"\\u03C6\",chi:\"\\u03C7\",psi:\"\\u03C8\",omega:\"\\u03C9\",thetasym:\"\\u03D1\",upsih:\"\\u03D2\",piv:\"\\u03D6\",ensp:\"\\u2002\",emsp:\"\\u2003\",thinsp:\"\\u2009\",zwnj:\"\\u200C\",zwj:\"\\u200D\",lrm:\"\\u200E\",rlm:\"\\u200F\",ndash:\"\\u2013\",mdash:\"\\u2014\",lsquo:\"\\u2018\",rsquo:\"\\u2019\",sbquo:\"\\u201A\",ldquo:\"\\u201C\",rdquo:\"\\u201D\",bdquo:\"\\u201E\",dagger:\"\\u2020\",Dagger:\"\\u2021\",bull:\"\\u2022\",hellip:\"\\u2026\",permil:\"\\u2030\",prime:\"\\u2032\",Prime:\"\\u2033\",lsaquo:\"\\u2039\",rsaquo:\"\\u203A\",oline:\"\\u203E\",frasl:\"\\u2044\",euro:\"\\u20AC\",image:\"\\u2111\",weierp:\"\\u2118\",real:\"\\u211C\",trade:\"\\u2122\",alefsym:\"\\u2135\",larr:\"\\u2190\",uarr:\"\\u2191\",rarr:\"\\u2192\",darr:\"\\u2193\",harr:\"\\u2194\",crarr:\"\\u21B5\",lArr:\"\\u21D0\",uArr:\"\\u21D1\",rArr:\"\\u21D2\",dArr:\"\\u21D3\",hArr:\"\\u21D4\",forall:\"\\u2200\",part:\"\\u2202\",exist:\"\\u2203\",empty:\"\\u2205\",nabla:\"\\u2207\",isin:\"\\u2208\",notin:\"\\u2209\",ni:\"\\u220B\",prod:\"\\u220F\",sum:\"\\u2211\",minus:\"\\u2212\",lowast:\"\\u2217\",radic:\"\\u221A\",prop:\"\\u221D\",infin:\"\\u221E\",ang:\"\\u2220\",and:\"\\u2227\",or:\"\\u2228\",cap:\"\\u2229\",cup:\"\\u222A\",int:\"\\u222B\",there4:\"\\u2234\",sim:\"\\u223C\",cong:\"\\u2245\",asymp:\"\\u2248\",ne:\"\\u2260\",equiv:\"\\u2261\",le:\"\\u2264\",ge:\"\\u2265\",sub:\"\\u2282\",sup:\"\\u2283\",nsub:\"\\u2284\",sube:\"\\u2286\",supe:\"\\u2287\",oplus:\"\\u2295\",otimes:\"\\u2297\",perp:\"\\u22A5\",sdot:\"\\u22C5\",lceil:\"\\u2308\",rceil:\"\\u2309\",lfloor:\"\\u230A\",rfloor:\"\\u230B\",lang:\"\\u2329\",rang:\"\\u232A\",loz:\"\\u25CA\",spades:\"\\u2660\",clubs:\"\\u2663\",hearts:\"\\u2665\",diams:\"\\u2666\"},Ie=j(Kn||(Kn=rt([\"jsx\"])))(t=>({AttributeIsEmpty:t(\"JSX attributes must only be assigned a non-empty expression.\"),MissingClosingTagElement:t(e=>{let{openingTagName:s}=e;return\"Expected corresponding JSX closing tag for <\".concat(s,\">.\")}),MissingClosingTagFragment:t(\"Expected corresponding JSX closing tag for <>.\"),UnexpectedSequenceExpression:t(\"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\"),UnexpectedToken:t(e=>{let{unexpected:s,HTMLEntity:r}=e;return\"Unexpected token `\".concat(s,\"`. Did you mean `\").concat(r,\"` or `{'\").concat(s,\"'}`?\")}),UnsupportedJsxValue:t(\"JSX value should be either an expression or a quoted JSX text.\"),UnterminatedJsxContent:t(\"Unterminated JSX contents.\"),UnwrappedAdjacentJSXElements:t(\"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?\")}));function Ce(t){return t?t.type===\"JSXOpeningFragment\"||t.type===\"JSXClosingFragment\":!1}function Ue(t){if(t.type===\"JSXIdentifier\")return t.name;if(t.type===\"JSXNamespacedName\")return t.namespace.name+\":\"+t.name.name;if(t.type===\"JSXMemberExpression\")return Ue(t.object)+\".\"+Ue(t.property);throw new Error(\"Node had unexpected type: \"+t.type)}var Lh=t=>class extends t{jsxReadToken(){let e=\"\",s=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(Ie.UnterminatedJsxContent,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?r===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(138)):super.getTokenFromCode(r):(e+=this.input.slice(s,this.state.pos),this.finishToken(137,e));case 38:e+=this.input.slice(s,this.state.pos),e+=this.jsxReadEntity(),s=this.state.pos;break;case 62:case 125:default:Ne(r)?(e+=this.input.slice(s,this.state.pos),e+=this.jsxReadNewLine(!0),s=this.state.pos):++this.state.pos}}}jsxReadNewLine(e){let s=this.input.charCodeAt(this.state.pos),r;return++this.state.pos,s===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,r=e?`\n`:`\\r\n`):r=String.fromCharCode(s),++this.state.curLine,this.state.lineStart=this.state.pos,r}jsxReadString(e){let s=\"\",r=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedString,{at:this.state.startLoc});let i=this.input.charCodeAt(this.state.pos);if(i===e)break;i===38?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadEntity(),r=this.state.pos):Ne(i)?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return s+=this.input.slice(r,this.state.pos++),this.finishToken(129,s)}jsxReadEntity(){let e=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let s=10;this.codePointAtPos(this.state.pos)===120&&(s=16,++this.state.pos);let r=this.readInt(s,void 0,!1,\"bail\");if(r!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(r)}else{let s=0,r=!1;for(;s++<10&&this.state.posObject.hasOwnProperty.call(t,e)&&t[e];function Rh(t){if(t==null)throw new Error(\"Unexpected \".concat(t,\" value.\"));return t}function Br(t){if(!t)throw new Error(\"Assert fail\")}function jh(t){return Vt(t)||Oo(t)}var S=j(Vn||(Vn=rt([\"typescript\"])))(t=>({AbstractMethodHasImplementation:t(e=>{let{methodName:s}=e;return\"Method '\".concat(s,\"' cannot have an implementation because it is marked abstract.\")}),AbstractPropertyHasInitializer:t(e=>{let{propertyName:s}=e;return\"Property '\".concat(s,\"' cannot have an initializer because it is marked abstract.\")}),AccesorCannotDeclareThisParameter:t(\"'get' and 'set' accessors cannot declare 'this' parameters.\"),AccesorCannotHaveTypeParameters:t(\"An accessor cannot have type parameters.\"),CannotFindName:t(e=>{let{name:s}=e;return\"Cannot find name '\".concat(s,\"'.\")}),ClassMethodHasDeclare:t(\"Class methods cannot have the 'declare' modifier.\"),ClassMethodHasReadonly:t(\"Class methods cannot have the 'readonly' modifier.\"),ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:t(\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),ConstructorHasTypeParameters:t(\"Type parameters cannot appear on a constructor declaration.\"),DeclareAccessor:t(e=>{let{kind:s}=e;return\"'declare' is not allowed in \".concat(s,\"ters.\")}),DeclareClassFieldHasInitializer:t(\"Initializers are not allowed in ambient contexts.\"),DeclareFunctionHasImplementation:t(\"An implementation cannot be declared in ambient contexts.\"),DuplicateAccessibilityModifier:t(e=>{let{modifier:s}=e;return\"Accessibility modifier already seen.\"}),DuplicateModifier:t(e=>{let{modifier:s}=e;return\"Duplicate modifier: '\".concat(s,\"'.\")}),EmptyHeritageClauseType:t(e=>{let{token:s}=e;return\"'\".concat(s,\"' list cannot be empty.\")}),EmptyTypeArguments:t(\"Type argument list cannot be empty.\"),EmptyTypeParameters:t(\"Type parameter list cannot be empty.\"),ExpectedAmbientAfterExportDeclare:t(\"'export declare' must be followed by an ambient declaration.\"),ImportAliasHasImportType:t(\"An import alias can not use 'import type'.\"),IncompatibleModifiers:t(e=>{let{modifiers:s}=e;return\"'\".concat(s[0],\"' modifier cannot be used with '\").concat(s[1],\"' modifier.\")}),IndexSignatureHasAbstract:t(\"Index signatures cannot have the 'abstract' modifier.\"),IndexSignatureHasAccessibility:t(e=>{let{modifier:s}=e;return\"Index signatures cannot have an accessibility modifier ('\".concat(s,\"').\")}),IndexSignatureHasDeclare:t(\"Index signatures cannot have the 'declare' modifier.\"),IndexSignatureHasOverride:t(\"'override' modifier cannot appear on an index signature.\"),IndexSignatureHasStatic:t(\"Index signatures cannot have the 'static' modifier.\"),InitializerNotAllowedInAmbientContext:t(\"Initializers are not allowed in ambient contexts.\"),InvalidModifierOnTypeMember:t(e=>{let{modifier:s}=e;return\"'\".concat(s,\"' modifier cannot appear on a type member.\")}),InvalidModifierOnTypeParameter:t(e=>{let{modifier:s}=e;return\"'\".concat(s,\"' modifier cannot appear on a type parameter.\")}),InvalidModifierOnTypeParameterPositions:t(e=>{let{modifier:s}=e;return\"'\".concat(s,\"' modifier can only appear on a type parameter of a class, interface or type alias.\")}),InvalidModifiersOrder:t(e=>{let{orderedModifiers:s}=e;return\"'\".concat(s[0],\"' modifier must precede '\").concat(s[1],\"' modifier.\")}),InvalidTupleMemberLabel:t(\"Tuple members must be labeled with a simple identifier.\"),MissingInterfaceName:t(\"'interface' declarations must be followed by an identifier.\"),MixedLabeledAndUnlabeledElements:t(\"Tuple members must all have names or all not have names.\"),NonAbstractClassHasAbstractMethod:t(\"Abstract methods can only appear within an abstract class.\"),NonClassMethodPropertyHasAbstractModifer:t(\"'abstract' modifier can only appear on a class, method, or property declaration.\"),OptionalTypeBeforeRequired:t(\"A required element cannot follow an optional element.\"),OverrideNotInSubClass:t(\"This member cannot have an 'override' modifier because its containing class does not extend another class.\"),PatternIsOptional:t(\"A binding pattern parameter cannot be optional in an implementation signature.\"),PrivateElementHasAbstract:t(\"Private elements cannot have the 'abstract' modifier.\"),PrivateElementHasAccessibility:t(e=>{let{modifier:s}=e;return\"Private elements cannot have an accessibility modifier ('\".concat(s,\"').\")}),ReadonlyForMethodSignature:t(\"'readonly' modifier can only appear on a property declaration or index signature.\"),ReservedArrowTypeParam:t(\"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.\"),ReservedTypeAssertion:t(\"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\"),SetAccesorCannotHaveOptionalParameter:t(\"A 'set' accessor cannot have an optional parameter.\"),SetAccesorCannotHaveRestParameter:t(\"A 'set' accessor cannot have rest parameter.\"),SetAccesorCannotHaveReturnType:t(\"A 'set' accessor cannot have a return type annotation.\"),SingleTypeParameterWithoutTrailingComma:t(e=>{let{typeParameterName:s}=e;return\"Single type parameter \".concat(s,\" should have a trailing comma. Example usage: <\").concat(s,\",>.\")}),StaticBlockCannotHaveModifier:t(\"Static class blocks cannot have any modifier.\"),TypeAnnotationAfterAssign:t(\"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\"),TypeImportCannotSpecifyDefaultAndNamed:t(\"A type-only import can specify a default import or named bindings, but not both.\"),TypeModifierIsUsedInTypeExports:t(\"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\"),TypeModifierIsUsedInTypeImports:t(\"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\"),UnexpectedParameterModifier:t(\"A parameter property is only allowed in a constructor implementation.\"),UnexpectedReadonly:t(\"'readonly' type modifier is only permitted on array and tuple literal types.\"),UnexpectedTypeAnnotation:t(\"Did not expect a type annotation here.\"),UnexpectedTypeCastInParameter:t(\"Unexpected type cast in parameter position.\"),UnsupportedImportTypeArgument:t(\"Argument in a type import must be a string literal.\"),UnsupportedParameterPropertyKind:t(\"A parameter property may not be declared using a binding pattern.\"),UnsupportedSignatureParameterKind:t(e=>{let{type:s}=e;return\"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got \".concat(s,\".\")})}));function qh(t){switch(t){case\"any\":return\"TSAnyKeyword\";case\"boolean\":return\"TSBooleanKeyword\";case\"bigint\":return\"TSBigIntKeyword\";case\"never\":return\"TSNeverKeyword\";case\"number\":return\"TSNumberKeyword\";case\"object\":return\"TSObjectKeyword\";case\"string\":return\"TSStringKeyword\";case\"symbol\":return\"TSSymbolKeyword\";case\"undefined\":return\"TSUndefinedKeyword\";case\"unknown\":return\"TSUnknownKeyword\";default:return}}function Mr(t){return t===\"private\"||t===\"public\"||t===\"protected\"}function Uh(t){return t===\"in\"||t===\"out\"}var _h=t=>class extends t{getScopeHandler(){return Bh}tsIsIdentifier(){return K(this.state.type)}tsTokenCanFollowModifier(){return(this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(134)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()}tsNextTokenCanFollowModifier(){return this.next(),this.tsTokenCanFollowModifier()}tsParseModifier(e,s){if(!K(this.state.type)&&this.state.type!==58)return;let r=this.state.value;if(e.indexOf(r)!==-1){if(s&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return r}}tsParseModifiers(e){let{modified:s,allowedModifiers:r,disallowedModifiers:i,stopOnStartOfClassStaticBlock:a,errorTemplate:n=S.InvalidModifierOnTypeMember}=e,o=(f,y,P,v)=>{y===P&&s[v]&&this.raise(S.InvalidModifiersOrder,{at:f,orderedModifiers:[P,v]})},c=(f,y,P,v)=>{(s[P]&&y===v||s[v]&&y===P)&&this.raise(S.IncompatibleModifiers,{at:f,modifiers:[P,v]})};for(;;){let{startLoc:f}=this.state,y=this.tsParseModifier(r.concat(i!=null?i:[]),a);if(!y)break;Mr(y)?s.accessibility?this.raise(S.DuplicateAccessibilityModifier,{at:f,modifier:y}):(o(f,y,y,\"override\"),o(f,y,y,\"static\"),o(f,y,y,\"readonly\"),s.accessibility=y):Uh(y)?(s[y]&&this.raise(S.DuplicateModifier,{at:f,modifier:y}),s[y]=!0,o(f,y,\"in\",\"out\")):(Object.hasOwnProperty.call(s,y)?this.raise(S.DuplicateModifier,{at:f,modifier:y}):(o(f,y,\"static\",\"readonly\"),o(f,y,\"static\",\"override\"),o(f,y,\"override\",\"readonly\"),o(f,y,\"abstract\",\"override\"),c(f,y,\"declare\",\"override\"),c(f,y,\"static\",\"abstract\")),s[y]=!0),i!=null&&i.includes(y)&&this.raise(n,{at:f,modifier:y})}}tsIsListTerminator(e){switch(e){case\"EnumMembers\":case\"TypeMembers\":return this.match(8);case\"HeritageClauseElement\":return this.match(5);case\"TupleElementTypes\":return this.match(3);case\"TypeParametersOrArguments\":return this.match(48)}throw new Error(\"Unreachable\")}tsParseList(e,s){let r=[];for(;!this.tsIsListTerminator(e);)r.push(s());return r}tsParseDelimitedList(e,s,r){return Rh(this.tsParseDelimitedListWorker(e,s,!0,r))}tsParseDelimitedListWorker(e,s,r,i){let a=[],n=-1;for(;!this.tsIsListTerminator(e);){n=-1;let o=s();if(o==null)return;if(a.push(o),this.eat(12)){n=this.state.lastTokStart;continue}if(this.tsIsListTerminator(e))break;r&&this.expect(12);return}return i&&(i.value=n),a}tsParseBracketedList(e,s,r,i,a){i||(r?this.expect(0):this.expect(47));let n=this.tsParseDelimitedList(e,s,a);return r?this.expect(3):this.expect(48),n}tsParseImportType(){let e=this.startNode();return this.expect(83),this.expect(10),this.match(129)||this.raise(S.UnsupportedImportTypeArgument,{at:this.state.startLoc}),e.argument=this.parseExprAtom(),this.expect(11),this.eat(16)&&(e.qualifier=this.tsParseEntityName()),this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSImportType\")}tsParseEntityName(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=this.parseIdentifier(e);for(;this.eat(16);){let r=this.startNodeAtNode(s);r.left=s,r.right=this.parseIdentifier(e),s=this.finishNode(r,\"TSQualifiedName\")}return s}tsParseTypeReference(){let e=this.startNode();return e.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSTypeReference\")}tsParseThisTypePredicate(e){this.next();let s=this.startNodeAtNode(e);return s.parameterName=e,s.typeAnnotation=this.tsParseTypeAnnotation(!1),s.asserts=!1,this.finishNode(s,\"TSTypePredicate\")}tsParseThisTypeNode(){let e=this.startNode();return this.next(),this.finishNode(e,\"TSThisType\")}tsParseTypeQuery(){let e=this.startNode();return this.expect(87),this.match(83)?e.exprName=this.tsParseImportType():e.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSTypeQuery\")}tsParseInOutModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:[\"in\",\"out\"],disallowedModifiers:[\"public\",\"private\",\"protected\",\"readonly\",\"declare\",\"abstract\",\"override\"],errorTemplate:S.InvalidModifierOnTypeParameter})}tsParseNoneModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:[],disallowedModifiers:[\"in\",\"out\"],errorTemplate:S.InvalidModifierOnTypeParameterPositions})}tsParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.tsParseNoneModifiers.bind(this),s=this.startNode();return e(s),s.name=this.tsParseTypeParameterName(),s.constraint=this.tsEatThenParseType(81),s.default=this.tsEatThenParseType(29),this.finishNode(s,\"TSTypeParameter\")}tsTryParseTypeParameters(e){if(this.match(47))return this.tsParseTypeParameters(e)}tsParseTypeParameters(e){let s=this.startNode();this.match(47)||this.match(138)?this.next():this.unexpected();let r={value:-1};return s.params=this.tsParseBracketedList(\"TypeParametersOrArguments\",this.tsParseTypeParameter.bind(this,e),!1,!0,r),s.params.length===0&&this.raise(S.EmptyTypeParameters,{at:s}),r.value!==-1&&this.addExtra(s,\"trailingComma\",r.value),this.finishNode(s,\"TSTypeParameterDeclaration\")}tsTryNextParseConstantContext(){if(this.lookahead().type!==75)return null;this.next();let e=this.tsParseTypeReference();return e.typeParameters&&this.raise(S.CannotFindName,{at:e.typeName,name:\"const\"}),e}tsFillSignature(e,s){let r=e===19,i=\"parameters\",a=\"typeAnnotation\";s.typeParameters=this.tsTryParseTypeParameters(),this.expect(10),s[i]=this.tsParseBindingListForSignature(),r?s[a]=this.tsParseTypeOrTypePredicateAnnotation(e):this.match(e)&&(s[a]=this.tsParseTypeOrTypePredicateAnnotation(e))}tsParseBindingListForSignature(){return this.parseBindingList(11,41).map(e=>(e.type!==\"Identifier\"&&e.type!==\"RestElement\"&&e.type!==\"ObjectPattern\"&&e.type!==\"ArrayPattern\"&&this.raise(S.UnsupportedSignatureParameterKind,{at:e,type:e.type}),e))}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(e,s){return this.tsFillSignature(14,s),this.tsParseTypeMemberSemicolon(),this.finishNode(s,e)}tsIsUnambiguouslyIndexSignature(){return this.next(),K(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(e){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);let s=this.parseIdentifier();s.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(s),this.expect(3),e.parameters=[s];let r=this.tsTryParseTypeAnnotation();return r&&(e.typeAnnotation=r),this.tsParseTypeMemberSemicolon(),this.finishNode(e,\"TSIndexSignature\")}tsParsePropertyOrMethodSignature(e,s){this.eat(17)&&(e.optional=!0);let r=e;if(this.match(10)||this.match(47)){s&&this.raise(S.ReadonlyForMethodSignature,{at:e});let i=r;i.kind&&this.match(47)&&this.raise(S.AccesorCannotHaveTypeParameters,{at:this.state.curPosition()}),this.tsFillSignature(14,i),this.tsParseTypeMemberSemicolon();let a=\"parameters\",n=\"typeAnnotation\";if(i.kind===\"get\")i[a].length>0&&(this.raise(u.BadGetterArity,{at:this.state.curPosition()}),this.isThisParam(i[a][0])&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}));else if(i.kind===\"set\"){if(i[a].length!==1)this.raise(u.BadSetterArity,{at:this.state.curPosition()});else{let o=i[a][0];this.isThisParam(o)&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}),o.type===\"Identifier\"&&o.optional&&this.raise(S.SetAccesorCannotHaveOptionalParameter,{at:this.state.curPosition()}),o.type===\"RestElement\"&&this.raise(S.SetAccesorCannotHaveRestParameter,{at:this.state.curPosition()})}i[n]&&this.raise(S.SetAccesorCannotHaveReturnType,{at:i[n]})}else i.kind=\"method\";return this.finishNode(i,\"TSMethodSignature\")}else{let i=r;s&&(i.readonly=!0);let a=this.tsTryParseTypeAnnotation();return a&&(i.typeAnnotation=a),this.tsParseTypeMemberSemicolon(),this.finishNode(i,\"TSPropertySignature\")}}tsParseTypeMember(){let e=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\",e);if(this.match(77)){let r=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember(\"TSConstructSignatureDeclaration\",e):(e.key=this.createIdentifier(r,\"new\"),this.tsParsePropertyOrMethodSignature(e,!1))}this.tsParseModifiers({modified:e,allowedModifiers:[\"readonly\"],disallowedModifiers:[\"declare\",\"abstract\",\"private\",\"protected\",\"public\",\"static\",\"override\"]});let s=this.tsTryParseIndexSignature(e);return s||(this.parsePropertyName(e),!e.computed&&e.key.type===\"Identifier\"&&(e.key.name===\"get\"||e.key.name===\"set\")&&this.tsTokenCanFollowModifier()&&(e.kind=e.key.name,this.parsePropertyName(e)),this.tsParsePropertyOrMethodSignature(e,!!e.readonly))}tsParseTypeLiteral(){let e=this.startNode();return e.members=this.tsParseObjectTypeMembers(),this.finishNode(e,\"TSTypeLiteral\")}tsParseObjectTypeMembers(){this.expect(5);let e=this.tsParseList(\"TypeMembers\",this.tsParseTypeMember.bind(this));return this.expect(8),e}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(118):(this.isContextual(118)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedTypeParameter(){let e=this.startNode();return e.name=this.tsParseTypeParameterName(),e.constraint=this.tsExpectThenParseType(58),this.finishNode(e,\"TSTypeParameter\")}tsParseMappedType(){let e=this.startNode();return this.expect(5),this.match(53)?(e.readonly=this.state.value,this.next(),this.expectContextual(118)):this.eatContextual(118)&&(e.readonly=!0),this.expect(0),e.typeParameter=this.tsParseMappedTypeParameter(),e.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(e.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(e.optional=!0),e.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(e,\"TSMappedType\")}tsParseTupleType(){let e=this.startNode();e.elementTypes=this.tsParseBracketedList(\"TupleElementTypes\",this.tsParseTupleElementType.bind(this),!0,!1);let s=!1,r=null;return e.elementTypes.forEach(i=>{var a;let{type:n}=i;s&&n!==\"TSRestType\"&&n!==\"TSOptionalType\"&&!(n===\"TSNamedTupleMember\"&&i.optional)&&this.raise(S.OptionalTypeBeforeRequired,{at:i}),s=s||n===\"TSNamedTupleMember\"&&i.optional||n===\"TSOptionalType\",n===\"TSRestType\"&&(i=i.typeAnnotation,n=i.type);let o=n===\"TSNamedTupleMember\";r=(a=r)!=null?a:o,r!==o&&this.raise(S.MixedLabeledAndUnlabeledElements,{at:i})}),this.finishNode(e,\"TSTupleType\")}tsParseTupleElementType(){let{start:e,startLoc:s}=this.state,r=this.eat(21),i=this.tsParseType(),a=this.eat(17);if(this.eat(14)){let o=this.startNodeAtNode(i);o.optional=a,i.type===\"TSTypeReference\"&&!i.typeParameters&&i.typeName.type===\"Identifier\"?o.label=i.typeName:(this.raise(S.InvalidTupleMemberLabel,{at:i}),o.label=i),o.elementType=this.tsParseType(),i=this.finishNode(o,\"TSNamedTupleMember\")}else if(a){let o=this.startNodeAtNode(i);o.typeAnnotation=i,i=this.finishNode(o,\"TSOptionalType\")}if(r){let o=this.startNodeAt(e,s);o.typeAnnotation=i,i=this.finishNode(o,\"TSRestType\")}return i}tsParseParenthesizedType(){let e=this.startNode();return this.expect(10),e.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(e,\"TSParenthesizedType\")}tsParseFunctionOrConstructorType(e,s){let r=this.startNode();return e===\"TSConstructorType\"&&(r.abstract=!!s,s&&this.next(),this.next()),this.tsFillSignature(19,r),this.finishNode(r,e)}tsParseLiteralTypeNode(){let e=this.startNode();return e.literal=(()=>{switch(this.state.type){case 130:case 131:case 129:case 85:case 86:return this.parseExprAtom();default:throw this.unexpected()}})(),this.finishNode(e,\"TSLiteralType\")}tsParseTemplateLiteralType(){let e=this.startNode();return e.literal=this.parseTemplate(!1),this.finishNode(e,\"TSLiteralType\")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){let e=this.tsParseThisTypeNode();return this.isContextual(113)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(e):e}tsParseNonArrayType(){switch(this.state.type){case 129:case 130:case 131:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value===\"-\"){let e=this.startNode(),s=this.lookahead();if(s.type!==130&&s.type!==131)throw this.unexpected();return e.literal=this.parseMaybeUnary(),this.finishNode(e,\"TSLiteralType\")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{let{type:e}=this.state;if(K(e)||e===88||e===84){let s=e===88?\"TSVoidKeyword\":e===84?\"TSNullKeyword\":qh(this.state.value);if(s!==void 0&&this.lookaheadCharCode()!==46){let r=this.startNode();return this.next(),this.finishNode(r,s)}return this.tsParseTypeReference()}}}throw this.unexpected()}tsParseArrayTypeOrHigher(){let e=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){let s=this.startNodeAtNode(e);s.elementType=e,this.expect(3),e=this.finishNode(s,\"TSArrayType\")}else{let s=this.startNodeAtNode(e);s.objectType=e,s.indexType=this.tsParseType(),this.expect(3),e=this.finishNode(s,\"TSIndexedAccessType\")}return e}tsParseTypeOperator(){let e=this.startNode(),s=this.state.value;return this.next(),e.operator=s,e.typeAnnotation=this.tsParseTypeOperatorOrHigher(),s===\"readonly\"&&this.tsCheckTypeAnnotationForReadOnly(e),this.finishNode(e,\"TSTypeOperator\")}tsCheckTypeAnnotationForReadOnly(e){switch(e.typeAnnotation.type){case\"TSTupleType\":case\"TSArrayType\":return;default:this.raise(S.UnexpectedReadonly,{at:e})}}tsParseInferType(){let e=this.startNode();this.expectContextual(112);let s=this.startNode();return s.name=this.tsParseTypeParameterName(),s.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),e.typeParameter=this.finishNode(s,\"TSTypeParameter\"),this.finishNode(e,\"TSInferType\")}tsParseConstraintForInferType(){if(this.eat(81)){let e=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return e}}tsParseTypeOperatorOrHigher(){return Fo(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(112)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(e,s,r){let i=this.startNode(),a=this.eat(r),n=[];do n.push(s());while(this.eat(r));return n.length===1&&!a?n[0]:(i.types=n,this.finishNode(i,e))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType(\"TSIntersectionType\",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType(\"TSUnionType\",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(K(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){let{errors:e}=this.state,s=e.length;try{return this.parseObjectLike(8,!0),e.length===s}catch{return!1}}if(this.match(0)){this.next();let{errors:e}=this.state,s=e.length;try{return this.parseBindingList(3,93,!0),e.length===s}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(e){return this.tsInType(()=>{let s=this.startNode();this.expect(e);let r=this.startNode(),i=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(i&&this.match(78)){let o=this.tsParseThisTypeOrThisTypePredicate();return o.type===\"TSThisType\"?(r.parameterName=o,r.asserts=!0,r.typeAnnotation=null,o=this.finishNode(r,\"TSTypePredicate\")):(this.resetStartLocationFromNode(o,r),o.asserts=!0),s.typeAnnotation=o,this.finishNode(s,\"TSTypeAnnotation\")}let a=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!a)return i?(r.parameterName=this.parseIdentifier(),r.asserts=i,r.typeAnnotation=null,s.typeAnnotation=this.finishNode(r,\"TSTypePredicate\"),this.finishNode(s,\"TSTypeAnnotation\")):this.tsParseTypeAnnotation(!1,s);let n=this.tsParseTypeAnnotation(!1);return r.parameterName=a,r.typeAnnotation=n,r.asserts=i,s.typeAnnotation=this.finishNode(r,\"TSTypePredicate\"),this.finishNode(s,\"TSTypeAnnotation\")})}tsTryParseTypeOrTypePredicateAnnotation(){return this.match(14)?this.tsParseTypeOrTypePredicateAnnotation(14):void 0}tsTryParseTypeAnnotation(){return this.match(14)?this.tsParseTypeAnnotation():void 0}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){let e=this.parseIdentifier();if(this.isContextual(113)&&!this.hasPrecedingLineBreak())return this.next(),e}tsParseTypePredicateAsserts(){if(this.state.type!==106)return!1;let e=this.state.containsEsc;return this.next(),!K(this.state.type)&&!this.match(78)?!1:(e&&this.raise(u.InvalidEscapedReservedWord,{at:this.state.lastTokStartLoc,reservedWord:\"asserts\"}),!0)}tsParseTypeAnnotation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.startNode();return this.tsInType(()=>{e&&this.expect(14),s.typeAnnotation=this.tsParseType()}),this.finishNode(s,\"TSTypeAnnotation\")}tsParseType(){Br(this.state.inType);let e=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return e;let s=this.startNodeAtNode(e);return s.checkType=e,s.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),s.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),s.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(s,\"TSConditionalType\")}isAbstractConstructorSignature(){return this.isContextual(120)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType(\"TSFunctionType\"):this.match(77)?this.tsParseFunctionOrConstructorType(\"TSConstructorType\"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType(\"TSConstructorType\",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption(\"typescript\",\"disallowAmbiguousJSXLike\")&&this.raise(S.ReservedTypeAssertion,{at:this.state.startLoc});let e=this.startNode(),s=this.tsTryNextParseConstantContext();return e.typeAnnotation=s||this.tsNextThenParseType(),this.expect(48),e.expression=this.parseMaybeUnary(),this.finishNode(e,\"TSTypeAssertion\")}tsParseHeritageClause(e){let s=this.state.startLoc,r=this.tsParseDelimitedList(\"HeritageClauseElement\",()=>{let i=this.startNode();return i.expression=this.tsParseEntityName(),this.match(47)&&(i.typeParameters=this.tsParseTypeArguments()),this.finishNode(i,\"TSExpressionWithTypeArguments\")});return r.length||this.raise(S.EmptyHeritageClauseType,{at:s,token:e}),r}tsParseInterfaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.hasFollowingLineBreak())return null;this.expectContextual(125),s.declare&&(e.declare=!0),K(this.state.type)?(e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Wo)):(e.id=null,this.raise(S.MissingInterfaceName,{at:this.state.startLoc})),e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.eat(81)&&(e.extends=this.tsParseHeritageClause(\"extends\"));let r=this.startNode();return r.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),e.body=this.finishNode(r,\"TSInterfaceBody\"),this.finishNode(e,\"TSInterfaceDeclaration\")}tsParseTypeAliasDeclaration(e){return e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Go),e.typeAnnotation=this.tsInType(()=>{if(e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.expect(29),this.isContextual(111)&&this.lookahead().type!==16){let s=this.startNode();return this.next(),this.finishNode(s,\"TSIntrinsicKeyword\")}return this.tsParseType()}),this.semicolon(),this.finishNode(e,\"TSTypeAliasDeclaration\")}tsInNoContext(e){let s=this.state.context;this.state.context=[s[0]];try{return e()}finally{this.state.context=s}}tsInType(e){let s=this.state.inType;this.state.inType=!0;try{return e()}finally{this.state.inType=s}}tsInDisallowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsInAllowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsEatThenParseType(e){return this.match(e)?this.tsNextThenParseType():void 0}tsExpectThenParseType(e){return this.tsDoThenParseType(()=>this.expect(e))}tsNextThenParseType(){return this.tsDoThenParseType(()=>this.next())}tsDoThenParseType(e){return this.tsInType(()=>(e(),this.tsParseType()))}tsParseEnumMember(){let e=this.startNode();return e.id=this.match(129)?this.parseExprAtom():this.parseIdentifier(!0),this.eat(29)&&(e.initializer=this.parseMaybeAssignAllowIn()),this.finishNode(e,\"TSEnumMember\")}tsParseEnumDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return s.const&&(e.const=!0),s.declare&&(e.declare=!0),this.expectContextual(122),e.id=this.parseIdentifier(),this.checkIdentifier(e.id,e.const?Jo:Er),this.expect(5),e.members=this.tsParseDelimitedList(\"EnumMembers\",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(e,\"TSEnumDeclaration\")}tsParseModuleBlock(){let e=this.startNode();return this.scope.enter(Me),this.expect(5),this.parseBlockOrModuleBlockBody(e.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(e,\"TSModuleBlock\")}tsParseModuleOrNamespaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.parseIdentifier(),s||this.checkIdentifier(e.id,Yo),this.eat(16)){let r=this.startNode();this.tsParseModuleOrNamespaceDeclaration(r,!0),e.body=r}else this.scope.enter(ht),this.prodParam.enter(je),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(e,\"TSModuleDeclaration\")}tsParseAmbientExternalModuleDeclaration(e){return this.isContextual(109)?(e.global=!0,e.id=this.parseIdentifier()):this.match(129)?e.id=this.parseExprAtom():this.unexpected(),this.match(5)?(this.scope.enter(ht),this.prodParam.enter(je),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(e,\"TSModuleDeclaration\")}tsParseImportEqualsDeclaration(e,s){e.isExport=s||!1,e.id=this.parseIdentifier(),this.checkIdentifier(e.id,xe),this.expect(29);let r=this.tsParseModuleReference();return e.importKind===\"type\"&&r.type!==\"TSExternalModuleReference\"&&this.raise(S.ImportAliasHasImportType,{at:r}),e.moduleReference=r,this.semicolon(),this.finishNode(e,\"TSImportEqualsDeclaration\")}tsIsExternalModuleReference(){return this.isContextual(116)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){let e=this.startNode();if(this.expectContextual(116),this.expect(10),!this.match(129))throw this.unexpected();return e.expression=this.parseExprAtom(),this.expect(11),this.finishNode(e,\"TSExternalModuleReference\")}tsLookAhead(e){let s=this.state.clone(),r=e();return this.state=s,r}tsTryParseAndCatch(e){let s=this.tryParse(r=>e()||r());if(!(s.aborted||!s.node))return s.error&&(this.state=s.failState),s.node}tsTryParse(e){let s=this.state.clone(),r=e();if(r!==void 0&&r!==!1)return r;this.state=s}tsTryParseDeclare(e){if(this.isLineTerminator())return;let s=this.state.type,r;return this.isContextual(99)&&(s=74,r=\"let\"),this.tsInAmbientContext(()=>{if(s===68)return e.declare=!0,this.parseFunctionStatement(e,!1,!0);if(s===80)return e.declare=!0,this.parseClass(e,!0,!1);if(s===122)return this.tsParseEnumDeclaration(e,{declare:!0});if(s===109)return this.tsParseAmbientExternalModuleDeclaration(e);if(s===75||s===74)return!this.match(75)||!this.isLookaheadContextual(\"enum\")?(e.declare=!0,this.parseVarStatement(e,r||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(e,{const:!0,declare:!0}));if(s===125){let i=this.tsParseInterfaceDeclaration(e,{declare:!0});if(i)return i}if(K(s))return this.tsParseDeclaration(e,this.state.value,!0)})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0)}tsParseExpressionStatement(e,s){switch(s.name){case\"declare\":{let r=this.tsTryParseDeclare(e);if(r)return r.declare=!0,r;break}case\"global\":if(this.match(5)){this.scope.enter(ht),this.prodParam.enter(je);let r=e;return r.global=!0,r.id=s,r.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(r,\"TSModuleDeclaration\")}break;default:return this.tsParseDeclaration(e,s.name,!1)}}tsParseDeclaration(e,s,r){switch(s){case\"abstract\":if(this.tsCheckLineTerminator(r)&&(this.match(80)||K(this.state.type)))return this.tsParseAbstractDeclaration(e);break;case\"module\":if(this.tsCheckLineTerminator(r)){if(this.match(129))return this.tsParseAmbientExternalModuleDeclaration(e);if(K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e)}break;case\"namespace\":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e);break;case\"type\":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseTypeAliasDeclaration(e);break}}tsCheckLineTerminator(e){return e?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(e,s){if(!this.match(47))return;let r=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;let i=this.tsTryParseAndCatch(()=>{let a=this.startNodeAt(e,s);return a.typeParameters=this.tsParseTypeParameters(),super.parseFunctionParams(a),a.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),a});if(this.state.maybeInArrowParameters=r,!!i)return this.parseArrowExpression(i,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){let e=this.startNode();return e.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList(\"TypeParametersOrArguments\",this.tsParseType.bind(this))))),e.params.length===0&&this.raise(S.EmptyTypeArguments,{at:e}),this.expect(48),this.finishNode(e,\"TSTypeParameterInstantiation\")}tsIsDeclarationStart(){return Lo(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(e,s){let r=this.state.start,i=this.state.startLoc,a,n=!1,o=!1;if(e!==void 0){let y={};this.tsParseModifiers({modified:y,allowedModifiers:[\"public\",\"private\",\"protected\",\"override\",\"readonly\"]}),a=y.accessibility,o=y.override,n=y.readonly,e===!1&&(a||n||o)&&this.raise(S.UnexpectedParameterModifier,{at:i})}let c=this.parseMaybeDefault();this.parseAssignableListItemTypes(c);let f=this.parseMaybeDefault(c.start,c.loc.start,c);if(a||n||o){let y=this.startNodeAt(r,i);return s.length&&(y.decorators=s),a&&(y.accessibility=a),n&&(y.readonly=n),o&&(y.override=o),f.type!==\"Identifier\"&&f.type!==\"AssignmentPattern\"&&this.raise(S.UnsupportedParameterPropertyKind,{at:y}),y.parameter=f,this.finishNode(y,\"TSParameterProperty\")}return s.length&&(c.decorators=s),f}isSimpleParameter(e){return e.type===\"TSParameterProperty\"&&super.isSimpleParameter(e.parameter)||super.isSimpleParameter(e)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.match(14)&&(e.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));let i=s===\"FunctionDeclaration\"?\"TSDeclareFunction\":s===\"ClassMethod\"||s===\"ClassPrivateMethod\"?\"TSDeclareMethod\":void 0;if(i&&!this.match(5)&&this.isLineTerminator()){this.finishNode(e,i);return}if(i===\"TSDeclareFunction\"&&this.state.isAmbientContext&&(this.raise(S.DeclareFunctionHasImplementation,{at:e}),e.declare)){super.parseFunctionBodyAndFinish(e,i,r);return}super.parseFunctionBodyAndFinish(e,s,r)}registerFunctionStatementId(e){!e.body&&e.id?this.checkIdentifier(e.id,Cr):super.registerFunctionStatementId(...arguments)}tsCheckForInvalidTypeCasts(e){e.forEach(s=>{(s==null?void 0:s.type)===\"TSTypeCastExpression\"&&this.raise(S.UnexpectedTypeAnnotation,{at:s.typeAnnotation})})}toReferencedList(e,s){return this.tsCheckForInvalidTypeCasts(e),e}parseArrayLike(){let e=super.parseArrayLike(...arguments);return e.type===\"ArrayExpression\"&&this.tsCheckForInvalidTypeCasts(e.elements),e}parseSubscript(e,s,r,i,a){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();let o=this.startNodeAt(s,r);return o.expression=e,this.finishNode(o,\"TSNonNullExpression\")}let n=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(i)return a.stop=!0,e;a.optionalChainMember=n=!0,this.next()}if(this.match(47)||this.match(51)){let o,c=this.tsTryParseAndCatch(()=>{if(!i&&this.atPossibleAsyncArrow(e)){let P=this.tsTryParseGenericAsyncArrowFunction(s,r);if(P)return P}let f=this.tsParseTypeArgumentsInExpression();if(!f)throw this.unexpected();if(n&&!this.match(10))throw o=this.state.curPosition(),this.unexpected();if(nt(this.state.type)){let P=this.parseTaggedTemplateExpression(e,s,r,a);return P.typeParameters=f,P}if(!i&&this.eat(10)){let P=this.startNodeAt(s,r);return P.callee=e,P.arguments=this.parseCallExpressionArguments(11,!1),this.tsCheckForInvalidTypeCasts(P.arguments),P.typeParameters=f,a.optionalChainMember&&(P.optional=n),this.finishCallExpression(P,a.optionalChainMember)}if(jh(this.state.type)&&this.state.type!==10)throw this.unexpected();let y=this.startNodeAt(s,r);return y.expression=e,y.typeParameters=f,this.finishNode(y,\"TSInstantiationExpression\")});if(o&&this.unexpected(o,10),c)return c}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){var s;super.parseNewCallee(e);let{callee:r}=e;r.type===\"TSInstantiationExpression\"&&!((s=r.extra)!=null&&s.parenthesized)&&(e.typeParameters=r.typeParameters,e.callee=r.expression)}parseExprOp(e,s,r,i){if(at(58)>i&&!this.hasPrecedingLineBreak()&&this.isContextual(93)){let a=this.startNodeAt(s,r);a.expression=e;let n=this.tsTryNextParseConstantContext();return n?a.typeAnnotation=n:a.typeAnnotation=this.tsNextThenParseType(),this.finishNode(a,\"TSAsExpression\"),this.reScan_lt_gt(),this.parseExprOp(a,s,r,i)}return super.parseExprOp(e,s,r,i)}checkReservedWord(e,s,r,i){this.state.isAmbientContext||super.checkReservedWord(e,s,r,i)}checkDuplicateExports(){}parseImport(e){if(e.importKind=\"value\",K(this.state.type)||this.match(55)||this.match(5)){let r=this.lookahead();if(this.isContextual(126)&&r.type!==12&&r.type!==97&&r.type!==29&&(e.importKind=\"type\",this.next(),r=this.lookahead()),K(this.state.type)&&r.type===29)return this.tsParseImportEqualsDeclaration(e)}let s=super.parseImport(e);return s.importKind===\"type\"&&s.specifiers.length>1&&s.specifiers[0].type===\"ImportDefaultSpecifier\"&&this.raise(S.TypeImportCannotSpecifyDefaultAndNamed,{at:s}),s}parseExport(e){if(this.match(83))return this.next(),this.isContextual(126)&&this.lookaheadCharCode()!==61?(e.importKind=\"type\",this.next()):e.importKind=\"value\",this.tsParseImportEqualsDeclaration(e,!0);if(this.eat(29)){let s=e;return s.expression=this.parseExpression(),this.semicolon(),this.finishNode(s,\"TSExportAssignment\")}else if(this.eatContextual(93)){let s=e;return this.expectContextual(124),s.id=this.parseIdentifier(),this.semicolon(),this.finishNode(s,\"TSNamespaceExportDeclaration\")}else return this.isContextual(126)&&this.lookahead().type===5?(this.next(),e.exportKind=\"type\"):e.exportKind=\"value\",super.parseExport(e)}isAbstractClass(){return this.isContextual(120)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){let e=this.startNode();return this.next(),e.abstract=!0,this.parseClass(e,!0,!0),e}if(this.match(125)){let e=this.tsParseInterfaceDeclaration(this.startNode());if(e)return e}return super.parseExportDefaultExpression()}parseVarStatement(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,{isAmbientContext:i}=this.state,a=super.parseVarStatement(e,s,r||i);if(!i)return a;for(let{id:n,init:o}of a.declarations)!o||(s!==\"const\"||!!n.typeAnnotation?this.raise(S.InitializerNotAllowedInAmbientContext,{at:o}):o.type!==\"StringLiteral\"&&o.type!==\"BooleanLiteral\"&&o.type!==\"NumericLiteral\"&&o.type!==\"BigIntLiteral\"&&(o.type!==\"TemplateLiteral\"||o.expressions.length>0)&&!zh(o)&&this.raise(S.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,{at:o}));return a}parseStatementContent(e,s){if(this.match(75)&&this.isLookaheadContextual(\"enum\")){let r=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(r,{const:!0})}if(this.isContextual(122))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(125)){let r=this.tsParseInterfaceDeclaration(this.startNode());if(r)return r}return super.parseStatementContent(e,s)}parseAccessModifier(){return this.tsParseModifier([\"public\",\"protected\",\"private\"])}tsHasSomeModifiers(e,s){return s.some(r=>Mr(r)?e.accessibility===r:!!e[r])}tsIsStartOfStaticBlocks(){return this.isContextual(104)&&this.lookaheadCharCode()===123}parseClassMember(e,s,r){let i=[\"declare\",\"private\",\"public\",\"protected\",\"override\",\"abstract\",\"readonly\",\"static\"];this.tsParseModifiers({modified:s,allowedModifiers:i,disallowedModifiers:[\"in\",\"out\"],stopOnStartOfClassStaticBlock:!0,errorTemplate:S.InvalidModifierOnTypeParameterPositions});let a=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(s,i)&&this.raise(S.StaticBlockCannotHaveModifier,{at:this.state.curPosition()}),this.parseClassStaticBlock(e,s)):this.parseClassMemberWithIsStatic(e,s,r,!!s.static)};s.declare?this.tsInAmbientContext(a):a()}parseClassMemberWithIsStatic(e,s,r,i){let a=this.tsTryParseIndexSignature(s);if(a){e.body.push(a),s.abstract&&this.raise(S.IndexSignatureHasAbstract,{at:s}),s.accessibility&&this.raise(S.IndexSignatureHasAccessibility,{at:s,modifier:s.accessibility}),s.declare&&this.raise(S.IndexSignatureHasDeclare,{at:s}),s.override&&this.raise(S.IndexSignatureHasOverride,{at:s});return}!this.state.inAbstractClass&&s.abstract&&this.raise(S.NonAbstractClassHasAbstractMethod,{at:s}),s.override&&(r.hadSuperClass||this.raise(S.OverrideNotInSubClass,{at:s})),super.parseClassMemberWithIsStatic(e,s,r,i)}parsePostMemberNameModifiers(e){this.eat(17)&&(e.optional=!0),e.readonly&&this.match(10)&&this.raise(S.ClassMethodHasReadonly,{at:e}),e.declare&&this.match(10)&&this.raise(S.ClassMethodHasDeclare,{at:e})}parseExpressionStatement(e,s){return(s.type===\"Identifier\"?this.tsParseExpressionStatement(e,s):void 0)||super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(e,s,r,i){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(e,s,r,i);let a=this.tryParse(()=>super.parseConditional(e,s,r));return a.node?(a.error&&(this.state=a.failState),a.node):(a.error&&super.setOptionalParametersError(i,a.error),e)}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(i,\"TSTypeCastExpression\")}return e}parseExportDeclaration(e){if(!this.state.isAmbientContext&&this.isContextual(121))return this.tsInAmbientContext(()=>this.parseExportDeclaration(e));let s=this.state.start,r=this.state.startLoc,i=this.eatContextual(121);if(i&&(this.isContextual(121)||!this.shouldParseExportDeclaration()))throw this.raise(S.ExpectedAmbientAfterExportDeclare,{at:this.state.startLoc});let n=K(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(e);return n?((n.type===\"TSInterfaceDeclaration\"||n.type===\"TSTypeAliasDeclaration\"||i)&&(e.exportKind=\"type\"),i&&(this.resetStartLocation(n,s,r),n.declare=!0),n):null}parseClassId(e,s,r){if((!s||r)&&this.isContextual(110))return;super.parseClassId(e,s,r,e.declare?Cr:Pr);let i=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this));i&&(e.typeParameters=i)}parseClassPropertyAnnotation(e){!e.optional&&this.eat(35)&&(e.definite=!0);let s=this.tsTryParseTypeAnnotation();s&&(e.typeAnnotation=s)}parseClassProperty(e){if(this.parseClassPropertyAnnotation(e),this.state.isAmbientContext&&this.match(29)&&this.raise(S.DeclareClassFieldHasInitializer,{at:this.state.startLoc}),e.abstract&&this.match(29)){let{key:s}=e;this.raise(S.AbstractPropertyHasInitializer,{at:this.state.startLoc,propertyName:s.type===\"Identifier\"&&!e.computed?s.name:\"[\".concat(this.input.slice(s.start,s.end),\"]\")})}return super.parseClassProperty(e)}parseClassPrivateProperty(e){return e.abstract&&this.raise(S.PrivateElementHasAbstract,{at:e}),e.accessibility&&this.raise(S.PrivateElementHasAccessibility,{at:e,modifier:e.accessibility}),this.parseClassPropertyAnnotation(e),super.parseClassPrivateProperty(e)}pushClassMethod(e,s,r,i,a,n){let o=this.tsTryParseTypeParameters();o&&a&&this.raise(S.ConstructorHasTypeParameters,{at:o});let{declare:c=!1,kind:f}=s;c&&(f===\"get\"||f===\"set\")&&this.raise(S.DeclareAccessor,{at:s,kind:f}),o&&(s.typeParameters=o),super.pushClassMethod(e,s,r,i,a,n)}pushClassPrivateMethod(e,s,r,i){let a=this.tsTryParseTypeParameters();a&&(s.typeParameters=a),super.pushClassPrivateMethod(e,s,r,i)}declareClassPrivateMethodInScope(e,s){e.type!==\"TSDeclareMethod\"&&(e.type===\"MethodDefinition\"&&!e.value.body||super.declareClassPrivateMethodInScope(e,s))}parseClassSuper(e){super.parseClassSuper(e),e.superClass&&(this.match(47)||this.match(51))&&(e.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(110)&&(e.implements=this.tsParseHeritageClause(\"implements\"))}parseObjPropValue(e){let s=this.tsTryParseTypeParameters();s&&(e.typeParameters=s);for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;asuper.parseMaybeAssign(...s),P),!v.error)return v.node;let{context:Q}=this.state,re=Q[Q.length-1];(re===z.j_oTag||re===z.j_expr)&&Q.pop()}if(!((i=v)!=null&&i.error)&&!this.match(47))return super.parseMaybeAssign(...s);let B;P=P||this.state.clone();let _=this.tryParse(Q=>{var re,ne,$e;B=this.tsParseTypeParameters();let le=super.parseMaybeAssign(...s);return(le.type!==\"ArrowFunctionExpression\"||(re=le.extra)!=null&&re.parenthesized)&&Q(),((ne=B)==null?void 0:ne.params.length)!==0&&this.resetStartLocationFromNode(le,B),le.typeParameters=B,this.hasPlugin(\"jsx\")&&le.typeParameters.params.length===1&&!(($e=le.typeParameters.extra)!=null&&$e.trailingComma)&&le.typeParameters.params[0].constraint,le},P);if(!_.error&&!_.aborted)return B&&this.reportReservedArrowTypeParam(B),_.node;if(!v&&(Br(!this.hasPlugin(\"jsx\")),N=this.tryParse(()=>super.parseMaybeAssign(...s),P),!N.error))return N.node;if((a=v)!=null&&a.node)return this.state=v.failState,v.node;if(_.node)return this.state=_.failState,B&&this.reportReservedArrowTypeParam(B),_.node;if((n=N)!=null&&n.node)return this.state=N.failState,N.node;throw(o=v)!=null&&o.thrown?v.error:_.thrown?_.error:(c=N)!=null&&c.thrown?N.error:((f=v)==null?void 0:f.error)||_.error||((y=N)==null?void 0:y.error)}reportReservedArrowTypeParam(e){var s;e.params.length===1&&!((s=e.extra)!=null&&s.trailingComma)&&this.getPluginOption(\"typescript\",\"disallowAmbiguousJSXLike\")&&this.raise(S.ReservedArrowTypeParam,{at:e})}parseMaybeUnary(e){return!this.hasPlugin(\"jsx\")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(e)}parseArrow(e){if(this.match(14)){let s=this.tryParse(r=>{let i=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&r(),i});if(s.aborted)return;s.thrown||(s.error&&(this.state=s.failState),e.returnType=s.node)}return super.parseArrow(e)}parseAssignableListItemTypes(e){this.eat(17)&&(e.type!==\"Identifier\"&&!this.state.isAmbientContext&&!this.state.inType&&this.raise(S.PatternIsOptional,{at:e}),e.optional=!0);let s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s),this.resetEndLocation(e),e}isAssignable(e,s){switch(e.type){case\"TSTypeCastExpression\":return this.isAssignable(e.expression,s);case\"TSParameterProperty\":return!0;default:return super.isAssignable(e,s)}}toAssignable(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;switch(e.type){case\"ParenthesizedExpression\":this.toAssignableParenthesizedExpression(e,s);break;case\"TSAsExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":s?this.expressionScope.recordArrowParemeterBindingError(S.UnexpectedTypeCastInParameter,{at:e}):this.raise(S.UnexpectedTypeCastInParameter,{at:e}),this.toAssignable(e.expression,s);break;case\"AssignmentExpression\":!s&&e.left.type===\"TSTypeCastExpression\"&&(e.left=this.typeCastToParameter(e.left));default:super.toAssignable(e,s)}}toAssignableParenthesizedExpression(e,s){switch(e.expression.type){case\"TSAsExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":case\"ParenthesizedExpression\":this.toAssignable(e.expression,s);break;default:super.toAssignable(e,s)}}checkToRestConversion(e,s){switch(e.type){case\"TSAsExpression\":case\"TSTypeAssertion\":case\"TSNonNullExpression\":this.checkToRestConversion(e.expression,!1);break;default:super.checkToRestConversion(e,s)}}isValidLVal(e,s,r){return Mh({TSTypeCastExpression:!0,TSParameterProperty:\"parameter\",TSNonNullExpression:\"expression\",TSAsExpression:(r!==we||!s)&&[\"expression\",!0],TSTypeAssertion:(r!==we||!s)&&[\"expression\",!0]},e)||super.isValidLVal(e,s,r)}parseBindingAtom(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseMaybeDecoratorArguments(e){if(this.match(47)||this.match(51)){let s=this.tsParseTypeArgumentsInExpression();if(this.match(10)){let r=super.parseMaybeDecoratorArguments(e);return r.typeParameters=s,r}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(e)}checkCommaAfterRest(e){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===e?(this.next(),!1):super.checkCommaAfterRest(e)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(){let e=super.parseMaybeDefault(...arguments);return e.type===\"AssignmentPattern\"&&e.typeAnnotation&&e.right.startthis.isAssignable(s,!0)):super.shouldParseArrow(e)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(e){if(this.match(47)||this.match(51)){let s=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());s&&(e.typeParameters=s)}return super.jsxParseOpeningElementAfterName(e)}getGetterSetterExpectedParamCount(e){let s=super.getGetterSetterExpectedParamCount(e),i=this.getObjectOrClassMethodParams(e)[0];return i&&this.isThisParam(i)?s+1:s}parseCatchClauseParam(){let e=super.parseCatchClauseParam(),s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s,this.resetEndLocation(e)),e}tsInAmbientContext(e){let s=this.state.isAmbientContext;this.state.isAmbientContext=!0;try{return e()}finally{this.state.isAmbientContext=s}}parseClass(e){let s=this.state.inAbstractClass;this.state.inAbstractClass=!!e.abstract;try{for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a0)?!1:Rr(t.object)}function Rr(t){return t.type===\"Identifier\"?!0:t.type!==\"MemberExpression\"||t.computed?!1:Rr(t.object)}var jr=j(Hn||(Hn=rt([\"placeholders\"])))(t=>({ClassNameIsRequired:t(\"A class name is required.\"),UnexpectedSpace:t(\"Unexpected space in placeholder.\")})),Kh=t=>class extends t{parsePlaceholder(e){if(this.match(140)){let s=this.startNode();return this.next(),this.assertNoSpace(),s.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(140),this.finishPlaceholder(s,e)}}finishPlaceholder(e,s){let r=!!(e.expectedNode&&e.type===\"Placeholder\");return e.expectedNode=s,r?e:this.finishNode(e,\"Placeholder\")}getTokenFromCode(e){return e===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(140,2):super.getTokenFromCode(...arguments)}parseExprAtom(){return this.parsePlaceholder(\"Expression\")||super.parseExprAtom(...arguments)}parseIdentifier(){return this.parsePlaceholder(\"Identifier\")||super.parseIdentifier(...arguments)}checkReservedWord(e){e!==void 0&&super.checkReservedWord(...arguments)}parseBindingAtom(){return this.parsePlaceholder(\"Pattern\")||super.parseBindingAtom(...arguments)}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0?!0:super.maybeParseExportDefaultSpecifier(...arguments)}checkExport(e){let{specifiers:s}=e;s!=null&&s.length&&(e.specifiers=s.filter(r=>r.exported.type===\"Placeholder\")),super.checkExport(e),e.specifiers=s}parseImport(e){let s=this.parsePlaceholder(\"Identifier\");if(!s)return super.parseImport(...arguments);if(e.specifiers=[],!this.isContextual(97)&&!this.match(12))return e.source=this.finishPlaceholder(s,\"StringLiteral\"),this.semicolon(),this.finishNode(e,\"ImportDeclaration\");let r=this.startNodeAtNode(s);return r.local=s,this.finishNode(r,\"ImportDefaultSpecifier\"),e.specifiers.push(r),this.eat(12)&&(this.maybeParseStarImportSpecifier(e)||this.parseNamedImportSpecifiers(e)),this.expectContextual(97),e.source=this.parseImportSource(),this.semicolon(),this.finishNode(e,\"ImportDeclaration\")}parseImportSource(){return this.parsePlaceholder(\"StringLiteral\")||super.parseImportSource(...arguments)}assertNoSpace(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(jr.UnexpectedSpace,{at:this.state.lastTokEndLoc})}},Vh=t=>class extends t{parseV8Intrinsic(){if(this.match(54)){let e=this.state.startLoc,s=this.startNode();if(this.next(),K(this.state.type)){let r=this.parseIdentifierName(this.state.start),i=this.createIdentifier(s,r);if(i.type=\"V8IntrinsicIdentifier\",this.match(10))return i}this.unexpected(e)}}parseExprAtom(){return this.parseV8Intrinsic()||super.parseExprAtom(...arguments)}};function ee(t,e){let[s,r]=typeof e==\"string\"?[e,{}]:e,i=Object.keys(r),a=i.length===0;return t.some(n=>{if(typeof n==\"string\")return a&&n===s;{let[o,c]=n;if(o!==s)return!1;for(let f of i)if(c[f]!==r[f])return!1;return!0}})}function Je(t,e,s){let r=t.find(i=>Array.isArray(i)?i[0]===e:i===e);return r&&Array.isArray(r)?r[1][s]:null}var qr=[\"minimal\",\"fsharp\",\"hack\",\"smart\"],Ur=[\"^^\",\"@@\",\"^\",\"%\",\"#\"],_r=[\"hash\",\"bar\"];function Hh(t){if(ee(t,\"decorators\")){if(ee(t,\"decorators-legacy\"))throw new Error(\"Cannot use the decorators and decorators-legacy plugin together\");let e=Je(t,\"decorators\",\"decoratorsBeforeExport\");if(e==null)throw new Error(\"The 'decorators' plugin requires a 'decoratorsBeforeExport' option, whose value must be a boolean. If you are migrating from Babylon/Babel 6 or want to use the old decorators proposal, you should use the 'decorators-legacy' plugin instead of 'decorators'.\");if(typeof e!=\"boolean\")throw new Error(\"'decoratorsBeforeExport' must be a boolean.\")}if(ee(t,\"flow\")&&ee(t,\"typescript\"))throw new Error(\"Cannot combine flow and typescript plugins.\");if(ee(t,\"placeholders\")&&ee(t,\"v8intrinsic\"))throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");if(ee(t,\"pipelineOperator\")){let e=Je(t,\"pipelineOperator\",\"proposal\");if(!qr.includes(e)){let r=qr.map(i=>'\"'.concat(i,'\"')).join(\", \");throw new Error('\"pipelineOperator\" requires \"proposal\" option whose value must be one of: '.concat(r,\".\"))}let s=ee(t,[\"recordAndTuple\",{syntaxType:\"hash\"}]);if(e===\"hack\"){if(ee(t,\"placeholders\"))throw new Error(\"Cannot combine placeholders plugin and Hack-style pipes.\");if(ee(t,\"v8intrinsic\"))throw new Error(\"Cannot combine v8intrinsic plugin and Hack-style pipes.\");let r=Je(t,\"pipelineOperator\",\"topicToken\");if(!Ur.includes(r)){let i=Ur.map(a=>'\"'.concat(a,'\"')).join(\", \");throw new Error('\"pipelineOperator\" in \"proposal\": \"hack\" mode also requires a \"topicToken\" option whose value must be one of: '.concat(i,\".\"))}if(r===\"#\"&&s)throw new Error('Plugin conflict between `[\"pipelineOperator\", { proposal: \"hack\", topicToken: \"#\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.')}else if(e===\"smart\"&&s)throw new Error('Plugin conflict between `[\"pipelineOperator\", { proposal: \"smart\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.')}if(ee(t,\"moduleAttributes\")){if(ee(t,\"importAssertions\"))throw new Error(\"Cannot combine importAssertions and moduleAttributes plugins.\");if(Je(t,\"moduleAttributes\",\"version\")!==\"may-2020\")throw new Error(\"The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.\")}if(ee(t,\"recordAndTuple\")&&!_r.includes(Je(t,\"recordAndTuple\",\"syntaxType\")))throw new Error(\"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \"+_r.map(e=>\"'\".concat(e,\"'\")).join(\", \"));if(ee(t,\"asyncDoExpressions\")&&!ee(t,\"doExpressions\")){let e=new Error(\"'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.\");throw e.missingPlugins=\"doExpressions\",e}}var zr={estree:Oe,jsx:Lh,flow:Dh,typescript:_h,v8intrinsic:Vh,placeholders:Kh},Wh=Object.keys(zr),Kr={sourceType:\"script\",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0};function Gh(t){let e={};for(let s of Object.keys(Kr))e[s]=t&&t[s]!=null?t[s]:Kr[s];return e}var Xh=(t,e)=>Object.hasOwnProperty.call(t,e)&&t[e],Vr=t=>t.type===\"ParenthesizedExpression\"?Vr(t.expression):t,Jh=class extends vh{toAssignable(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;var s,r;let i;switch((t.type===\"ParenthesizedExpression\"||(s=t.extra)!=null&&s.parenthesized)&&(i=Vr(t),e?i.type===\"Identifier\"?this.expressionScope.recordArrowParemeterBindingError(u.InvalidParenthesizedAssignment,{at:t}):i.type!==\"MemberExpression\"&&this.raise(u.InvalidParenthesizedAssignment,{at:t}):this.raise(u.InvalidParenthesizedAssignment,{at:t})),t.type){case\"Identifier\":case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":break;case\"ObjectExpression\":t.type=\"ObjectPattern\";for(let n=0,o=t.properties.length,c=o-1;nr.type!==\"ObjectMethod\"&&(i===s||r.type!==\"SpreadElement\")&&this.isAssignable(r))}case\"ObjectProperty\":return this.isAssignable(t.value);case\"SpreadElement\":return this.isAssignable(t.argument);case\"ArrayExpression\":return t.elements.every(s=>s===null||this.isAssignable(s));case\"AssignmentExpression\":return t.operator===\"=\";case\"ParenthesizedExpression\":return this.isAssignable(t.expression);case\"MemberExpression\":case\"OptionalMemberExpression\":return!e;default:return!1}}toReferencedList(t,e){return t}toReferencedListDeep(t,e){this.toReferencedList(t,e);for(let s of t)(s==null?void 0:s.type)===\"ArrayExpression\"&&this.toReferencedListDeep(s.elements)}parseSpread(t,e){let s=this.startNode();return this.next(),s.argument=this.parseMaybeAssignAllowIn(t,void 0,e),this.finishNode(s,\"SpreadElement\")}parseRestBinding(){let t=this.startNode();return this.next(),t.argument=this.parseBindingAtom(),this.finishNode(t,\"RestElement\")}parseBindingAtom(){switch(this.state.type){case 0:{let t=this.startNode();return this.next(),t.elements=this.parseBindingList(3,93,!0),this.finishNode(t,\"ArrayPattern\")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);)if(a?a=!1:this.expect(12),s&&this.match(12))i.push(null);else{if(this.eat(t))break;if(this.match(21)){if(i.push(this.parseAssignableListItemTypes(this.parseRestBinding())),!this.checkCommaAfterRest(e)){this.expect(t);break}}else{let n=[];for(this.match(26)&&this.hasPlugin(\"decorators\")&&this.raise(u.UnsupportedParameterDecorator,{at:this.state.startLoc});this.match(26);)n.push(this.parseDecorator());i.push(this.parseAssignableListItem(r,n))}}return i}parseBindingRestProperty(t){return this.next(),t.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(t,\"RestElement\")}parseBindingProperty(){let t=this.startNode(),{type:e,start:s,startLoc:r}=this.state;return e===21?this.parseBindingRestProperty(t):(e===134?(this.expectPlugin(\"destructuringPrivate\",r),this.classScope.usePrivateName(this.state.value,r),t.key=this.parsePrivateName()):this.parsePropertyName(t),t.method=!1,this.parseObjPropValue(t,s,r,!1,!1,!0,!1),t)}parseAssignableListItem(t,e){let s=this.parseMaybeDefault();this.parseAssignableListItemTypes(s);let r=this.parseMaybeDefault(s.start,s.loc.start,s);return e.length&&(s.decorators=e),r}parseAssignableListItemTypes(t){return t}parseMaybeDefault(t,e,s){var r,i,a;if(e=(r=e)!=null?r:this.state.startLoc,t=(i=t)!=null?i:this.state.start,s=(a=s)!=null?a:this.parseBindingAtom(),!this.eat(29))return s;let n=this.startNodeAt(t,e);return n.left=s,n.right=this.parseMaybeAssignAllowIn(),this.finishNode(n,\"AssignmentPattern\")}isValidLVal(t,e,s){return Xh({AssignmentPattern:\"left\",RestElement:\"argument\",ObjectProperty:\"value\",ParenthesizedExpression:\"expression\",ArrayPattern:\"elements\",ObjectPattern:\"properties\"},t)}checkLVal(t,e){let{in:s,binding:r=we,checkClashes:i=!1,strictModeChanged:a=!1,allowingSloppyLetBinding:n=!(r&Te),hasParenthesizedAncestor:o=!1}=e;var c;let f=t.type;if(this.isObjectMethod(t))return;if(f===\"MemberExpression\"){r!==we&&this.raise(u.InvalidPropertyBindingPattern,{at:t});return}if(t.type===\"Identifier\"){this.checkIdentifier(t,r,a,n);let{name:B}=t;i&&(i.has(B)?this.raise(u.ParamDupe,{at:t}):i.add(B));return}let y=this.isValidLVal(t.type,!(o||(c=t.extra)!=null&&c.parenthesized)&&s.type===\"AssignmentExpression\",r);if(y===!0)return;if(y===!1){let B=r===we?u.InvalidLhs:u.InvalidLhsBinding;this.raise(B,{at:t,ancestor:s.type===\"UpdateExpression\"?{type:\"UpdateExpression\",prefix:s.prefix}:{type:s.type}});return}let[P,v]=Array.isArray(y)?y:[y,f===\"ParenthesizedExpression\"],N=t.type===\"ArrayPattern\"||t.type===\"ObjectPattern\"||t.type===\"ParenthesizedExpression\"?t:s;for(let B of[].concat(t[P]))B&&this.checkLVal(B,{in:N,binding:r,checkClashes:i,allowingSloppyLetBinding:n,strictModeChanged:a,hasParenthesizedAncestor:v})}checkIdentifier(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!(e&Te);this.state.strict&&(s?mr(t.name,this.inModule):dr(t.name))&&(e===we?this.raise(u.StrictEvalArguments,{at:t,referenceName:t.name}):this.raise(u.StrictEvalArgumentsBinding,{at:t,bindingName:t.name})),!r&&t.name===\"let\"&&this.raise(u.LetInLexicalBinding,{at:t}),e&we||this.declareNameFromIdentifier(t,e)}declareNameFromIdentifier(t,e){this.scope.declareName(t.name,e,t.loc.start)}checkToRestConversion(t,e){switch(t.type){case\"ParenthesizedExpression\":this.checkToRestConversion(t.expression,e);break;case\"Identifier\":case\"MemberExpression\":break;case\"ArrayExpression\":case\"ObjectExpression\":if(e)break;default:this.raise(u.InvalidRestAssignmentPattern,{at:t})}}checkCommaAfterRest(t){return this.match(12)?(this.raise(this.lookaheadCharCode()===t?u.RestTrailingComma:u.ElementAfterRest,{at:this.state.startLoc}),!0):!1}},Yh=class extends Jh{checkProto(t,e,s,r){if(t.type===\"SpreadElement\"||this.isObjectMethod(t)||t.computed||t.shorthand)return;let i=t.key;if((i.type===\"Identifier\"?i.name:i.value)===\"__proto__\"){if(e){this.raise(u.RecordNoProto,{at:i});return}s.used&&(r?r.doubleProtoLoc===null&&(r.doubleProtoLoc=i.loc.start):this.raise(u.DuplicateProto,{at:i})),s.used=!0}}shouldExitDescending(t,e){return t.type===\"ArrowFunctionExpression\"&&t.start===e}getExpression(){this.enterInitialScopes(),this.nextToken();let t=this.parseExpression();return this.match(135)||this.unexpected(),this.finalizeRemainingComments(),t.comments=this.state.comments,t.errors=this.state.errors,this.options.tokens&&(t.tokens=this.tokens),t}parseExpression(t,e){return t?this.disallowInAnd(()=>this.parseExpressionBase(e)):this.allowInAnd(()=>this.parseExpressionBase(e))}parseExpressionBase(t){let e=this.state.start,s=this.state.startLoc,r=this.parseMaybeAssign(t);if(this.match(12)){let i=this.startNodeAt(e,s);for(i.expressions=[r];this.eat(12);)i.expressions.push(this.parseMaybeAssign(t));return this.toReferencedList(i.expressions),this.finishNode(i,\"SequenceExpression\")}return r}parseMaybeAssignDisallowIn(t,e){return this.disallowInAnd(()=>this.parseMaybeAssign(t,e))}parseMaybeAssignAllowIn(t,e){return this.allowInAnd(()=>this.parseMaybeAssign(t,e))}setOptionalParametersError(t,e){var s;t.optionalParametersLoc=(s=e==null?void 0:e.loc)!=null?s:this.state.startLoc}parseMaybeAssign(t,e){let s=this.state.start,r=this.state.startLoc;if(this.isContextual(105)&&this.prodParam.hasYield){let o=this.parseYield();return e&&(o=e.call(this,o,s,r)),o}let i;t?i=!1:(t=new At,i=!0);let{type:a}=this.state;(a===10||K(a))&&(this.state.potentialArrowAt=this.state.start);let n=this.parseMaybeConditional(t);if(e&&(n=e.call(this,n,s,r)),wo(this.state.type)){let o=this.startNodeAt(s,r),c=this.state.value;return o.operator=c,this.match(29)?(this.toAssignable(n,!0),o.left=n,t.doubleProtoLoc!=null&&t.doubleProtoLoc.index>=s&&(t.doubleProtoLoc=null),t.shorthandAssignLoc!=null&&t.shorthandAssignLoc.index>=s&&(t.shorthandAssignLoc=null),t.privateKeyLoc!=null&&t.privateKeyLoc.index>=s&&(this.checkDestructuringPrivate(t),t.privateKeyLoc=null)):o.left=n,this.next(),o.right=this.parseMaybeAssign(),this.checkLVal(n,{in:this.finishNode(o,\"AssignmentExpression\")}),o}else i&&this.checkExpressionErrors(t,!0);return n}parseMaybeConditional(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprOps(t);return this.shouldExitDescending(i,r)?i:this.parseConditional(i,e,s,t)}parseConditional(t,e,s,r){if(this.eat(17)){let i=this.startNodeAt(e,s);return i.test=t,i.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),i.alternate=this.parseMaybeAssign(),this.finishNode(i,\"ConditionalExpression\")}return t}parseMaybeUnaryOrPrivate(t){return this.match(134)?this.parsePrivateName():this.parseMaybeUnary(t)}parseExprOps(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseMaybeUnaryOrPrivate(t);return this.shouldExitDescending(i,r)?i:this.parseExprOp(i,e,s,-1)}parseExprOp(t,e,s,r){if(this.isPrivateName(t)){let a=this.getPrivateNameSV(t);(r>=at(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(u.PrivateInExpectedIn,{at:t,identifierName:a}),this.classScope.usePrivateName(a,t.loc.start)}let i=this.state.type;if(Io(i)&&(this.prodParam.hasIn||!this.match(58))){let a=at(i);if(a>r){if(i===39){if(this.expectPlugin(\"pipelineOperator\"),this.state.inFSharpPipelineDirectBody)return t;this.checkPipelineAtInfixOperator(t,s)}let n=this.startNodeAt(e,s);n.left=t,n.operator=this.state.value;let o=i===41||i===42,c=i===40;if(c&&(a=at(42)),this.next(),i===39&&this.hasPlugin([\"pipelineOperator\",{proposal:\"minimal\"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(u.UnexpectedAwaitAfterPipelineBody,{at:this.state.startLoc});n.right=this.parseExprOpRightExpr(i,a),this.finishNode(n,o||c?\"LogicalExpression\":\"BinaryExpression\");let f=this.state.type;if(c&&(f===41||f===42)||o&&f===40)throw this.raise(u.MixingCoalesceWithLogical,{at:this.state.startLoc});return this.parseExprOp(n,e,s,r)}}return t}parseExprOpRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;switch(t){case 39:switch(this.getPluginOption(\"pipelineOperator\",\"proposal\")){case\"hack\":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case\"smart\":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(105))throw this.raise(u.PipeBodyIsTighter,{at:this.state.startLoc});return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t,e),s,r)});case\"fsharp\":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(e))}default:return this.parseExprOpBaseRightExpr(t,e)}}parseExprOpBaseRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),s,r,Bo(t)?e-1:e)}parseHackPipeBody(){var t;let{startLoc:e}=this.state,s=this.parseMaybeAssign();return R.has(s.type)&&!((t=s.extra)!=null&&t.parenthesized)&&this.raise(u.PipeUnparenthesizedBody,{at:e,type:s.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(u.PipeTopicUnused,{at:e}),s}checkExponentialAfterUnary(t){this.match(57)&&this.raise(u.UnexpectedTokenUnaryExponentiation,{at:t.argument})}parseMaybeUnary(t,e){let s=this.state.start,r=this.state.startLoc,i=this.isContextual(96);if(i&&this.isAwaitAllowed()){this.next();let c=this.parseAwait(s,r);return e||this.checkExponentialAfterUnary(c),c}let a=this.match(34),n=this.startNode();if(Do(this.state.type)){n.operator=this.state.value,n.prefix=!0,this.match(72)&&this.expectPlugin(\"throwExpressions\");let c=this.match(89);if(this.next(),n.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),this.state.strict&&c){let f=n.argument;f.type===\"Identifier\"?this.raise(u.StrictDelete,{at:n}):this.hasPropertyAsPrivateName(f)&&this.raise(u.DeletePrivateField,{at:n})}if(!a)return e||this.checkExponentialAfterUnary(n),this.finishNode(n,\"UnaryExpression\")}let o=this.parseUpdate(n,a,t);if(i){let{type:c}=this.state;if((this.hasPlugin(\"v8intrinsic\")?Vt(c):Vt(c)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(u.AwaitNotInAsyncContext,{at:r}),this.parseAwait(s,r)}return o}parseUpdate(t,e,s){if(e)return this.checkLVal(t.argument,{in:this.finishNode(t,\"UpdateExpression\")}),t;let r=this.state.start,i=this.state.startLoc,a=this.parseExprSubscripts(s);if(this.checkExpressionErrors(s,!1))return a;for(;ko(this.state.type)&&!this.canInsertSemicolon();){let n=this.startNodeAt(r,i);n.operator=this.state.value,n.prefix=!1,n.argument=a,this.next(),this.checkLVal(a,{in:a=this.finishNode(n,\"UpdateExpression\")})}return a}parseExprSubscripts(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprAtom(t);return this.shouldExitDescending(i,r)?i:this.parseSubscripts(i,e,s)}parseSubscripts(t,e,s,r){let i={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(t),stop:!1};do t=this.parseSubscript(t,e,s,r,i),i.maybeAsyncArrow=!1;while(!i.stop);return t}parseSubscript(t,e,s,r,i){let{type:a}=this.state;if(!r&&a===15)return this.parseBind(t,e,s,r,i);if(nt(a))return this.parseTaggedTemplateExpression(t,e,s,i);let n=!1;if(a===18){if(r&&this.lookaheadCharCode()===40)return i.stop=!0,t;i.optionalChainMember=n=!0,this.next()}if(!r&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(t,e,s,i,n);{let o=this.eat(0);return o||n||this.eat(16)?this.parseMember(t,e,s,i,o,n):(i.stop=!0,t)}}parseMember(t,e,s,r,i,a){let n=this.startNodeAt(e,s);return n.object=t,n.computed=i,i?(n.property=this.parseExpression(),this.expect(3)):this.match(134)?(t.type===\"Super\"&&this.raise(u.SuperPrivateField,{at:s}),this.classScope.usePrivateName(this.state.value,this.state.startLoc),n.property=this.parsePrivateName()):n.property=this.parseIdentifier(!0),r.optionalChainMember?(n.optional=a,this.finishNode(n,\"OptionalMemberExpression\")):this.finishNode(n,\"MemberExpression\")}parseBind(t,e,s,r,i){let a=this.startNodeAt(e,s);return a.object=t,this.next(),a.callee=this.parseNoCallExpr(),i.stop=!0,this.parseSubscripts(this.finishNode(a,\"BindExpression\"),e,s,r)}parseCoverCallAndAsyncArrowHead(t,e,s,r,i){let a=this.state.maybeInArrowParameters,n=null;this.state.maybeInArrowParameters=!0,this.next();let o=this.startNodeAt(e,s);o.callee=t;let{maybeAsyncArrow:c,optionalChainMember:f}=r;return c&&(this.expressionScope.enter(Ph()),n=new At),f&&(o.optional=i),i?o.arguments=this.parseCallExpressionArguments(11):o.arguments=this.parseCallExpressionArguments(11,t.type===\"Import\",t.type!==\"Super\",o,n),this.finishCallExpression(o,f),c&&this.shouldParseAsyncArrow()&&!i?(r.stop=!0,this.checkDestructuringPrivate(n),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),o=this.parseAsyncArrowFromCallExpression(this.startNodeAt(e,s),o)):(c&&(this.checkExpressionErrors(n,!0),this.expressionScope.exit()),this.toReferencedArguments(o)),this.state.maybeInArrowParameters=a,o}toReferencedArguments(t,e){this.toReferencedListDeep(t.arguments,e)}parseTaggedTemplateExpression(t,e,s,r){let i=this.startNodeAt(e,s);return i.tag=t,i.quasi=this.parseTemplate(!0),r.optionalChainMember&&this.raise(u.OptionalChainingNoTemplate,{at:s}),this.finishNode(i,\"TaggedTemplateExpression\")}atPossibleAsyncArrow(t){return t.type===\"Identifier\"&&t.name===\"async\"&&this.state.lastTokEndLoc.index===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&t.start===this.state.potentialArrowAt}finishCallExpression(t,e){if(t.callee.type===\"Import\")if(t.arguments.length===2&&(this.hasPlugin(\"moduleAttributes\")||this.expectPlugin(\"importAssertions\")),t.arguments.length===0||t.arguments.length>2)this.raise(u.ImportCallArity,{at:t,maxArgumentCount:this.hasPlugin(\"importAssertions\")||this.hasPlugin(\"moduleAttributes\")?2:1});else for(let s of t.arguments)s.type===\"SpreadElement\"&&this.raise(u.ImportCallSpreadArgument,{at:s});return this.finishNode(t,e?\"OptionalCallExpression\":\"CallExpression\")}parseCallExpressionArguments(t,e,s,r,i){let a=[],n=!0,o=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){e&&!this.hasPlugin(\"importAssertions\")&&!this.hasPlugin(\"moduleAttributes\")&&this.raise(u.ImportCallArgumentTrailingComma,{at:this.state.lastTokStartLoc}),r&&this.addTrailingCommaExtraToNode(r),this.next();break}a.push(this.parseExprListItem(!1,i,s))}return this.state.inFSharpPipelineDirectBody=o,a}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(t,e){var s;return this.resetPreviousNodeTrailingComments(e),this.expect(19),this.parseArrowExpression(t,e.arguments,!0,(s=e.extra)==null?void 0:s.trailingCommaLoc),e.innerComments&&Ge(t,e.innerComments),e.callee.trailingComments&&Ge(t,e.callee.trailingComments),t}parseNoCallExpr(){let t=this.state.start,e=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),t,e,!0)}parseExprAtom(t){let e,{type:s}=this.state;switch(s){case 79:return this.parseSuper();case 83:return e=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(e):(this.match(10)||this.raise(u.UnsupportedImport,{at:this.state.lastTokStartLoc}),this.finishNode(e,\"Import\"));case 78:return e=this.startNode(),this.next(),this.finishNode(e,\"ThisExpression\");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 130:return this.parseNumericLiteral(this.state.value);case 131:return this.parseBigIntLiteral(this.state.value);case 132:return this.parseDecimalLiteral(this.state.value);case 129:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{let r=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(r)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,t);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,t);case 68:return this.parseFunctionOrFunctionSent();case 26:this.parseDecorators();case 80:return e=this.startNode(),this.takeDecorators(e),this.parseClass(e,!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{e=this.startNode(),this.next(),e.object=null;let r=e.callee=this.parseNoCallExpr();if(r.type===\"MemberExpression\")return this.finishNode(e,\"BindExpression\");throw this.raise(u.UnsupportedBind,{at:r})}case 134:return this.raise(u.PrivateInExpectedIn,{at:this.state.startLoc,identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,\"%\");case 32:return this.parseTopicReferenceThenEqualsSign(44,\"^\");case 37:case 38:return this.parseTopicReference(\"hack\");case 44:case 54:case 27:{let r=this.getPluginOption(\"pipelineOperator\",\"proposal\");if(r)return this.parseTopicReference(r);throw this.unexpected()}case 47:{let r=this.input.codePointAt(this.nextTokenStart());if(de(r)||r===62){this.expectOnePlugin([\"jsx\",\"flow\",\"typescript\"]);break}else throw this.unexpected()}default:if(K(s)){if(this.isContextual(123)&&this.lookaheadCharCode()===123&&!this.hasFollowingLineBreak())return this.parseModuleExpression();let r=this.state.potentialArrowAt===this.state.start,i=this.state.containsEsc,a=this.parseIdentifier();if(!i&&a.name===\"async\"&&!this.canInsertSemicolon()){let{type:n}=this.state;if(n===68)return this.resetPreviousNodeTrailingComments(a),this.next(),this.parseFunction(this.startNodeAtNode(a),void 0,!0);if(K(n))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(a)):a;if(n===90)return this.resetPreviousNodeTrailingComments(a),this.parseDo(this.startNodeAtNode(a),!0)}return r&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(a),[a],!1)):a}else throw this.unexpected()}}parseTopicReferenceThenEqualsSign(t,e){let s=this.getPluginOption(\"pipelineOperator\",\"proposal\");if(s)return this.state.type=t,this.state.value=e,this.state.pos--,this.state.end--,this.state.endLoc=m(this.state.endLoc,-1),this.parseTopicReference(s);throw this.unexpected()}parseTopicReference(t){let e=this.startNode(),s=this.state.startLoc,r=this.state.type;return this.next(),this.finishTopicReference(e,s,t,r)}finishTopicReference(t,e,s,r){if(this.testTopicReferenceConfiguration(s,e,r)){let i=s===\"smart\"?\"PipelinePrimaryTopicReference\":\"TopicReference\";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(s===\"smart\"?u.PrimaryTopicNotAllowed:u.PipeTopicUnbound,{at:e}),this.registerTopicReference(),this.finishNode(t,i)}else throw this.raise(u.PipeTopicUnconfiguredToken,{at:e,token:Pe(r)})}testTopicReferenceConfiguration(t,e,s){switch(t){case\"hack\":return this.hasPlugin([\"pipelineOperator\",{topicToken:Pe(s)}]);case\"smart\":return s===27;default:throw this.raise(u.PipeTopicRequiresHackPipes,{at:e})}}parseAsyncArrowUnaryFunction(t){this.prodParam.enter(gt(!0,this.prodParam.hasYield));let e=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(u.LineTerminatorBeforeArrow,{at:this.state.curPosition()}),this.expect(19),this.parseArrowExpression(t,e,!0),t}parseDo(t,e){this.expectPlugin(\"doExpressions\"),e&&this.expectPlugin(\"asyncDoExpressions\"),t.async=e,this.next();let s=this.state.labels;return this.state.labels=[],e?(this.prodParam.enter(xt),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=s,this.finishNode(t,\"DoExpression\")}parseSuper(){let t=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(u.SuperNotAllowed,{at:t}):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(u.UnexpectedSuper,{at:t}),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(u.UnsupportedSuper,{at:t}),this.finishNode(t,\"Super\")}parsePrivateName(){let t=this.startNode(),e=this.startNodeAt(this.state.start+1,new p(this.state.curLine,this.state.start+1-this.state.lineStart,this.state.start+1)),s=this.state.value;return this.next(),t.id=this.createIdentifier(e,s),this.finishNode(t,\"PrivateName\")}parseFunctionOrFunctionSent(){let t=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),\"function\");return this.next(),this.match(102)?this.expectPlugin(\"functionSent\"):this.hasPlugin(\"functionSent\")||this.unexpected(),this.parseMetaProperty(t,e,\"sent\")}return this.parseFunction(t)}parseMetaProperty(t,e,s){t.meta=e;let r=this.state.containsEsc;return t.property=this.parseIdentifier(!0),(t.property.name!==s||r)&&this.raise(u.UnsupportedMetaProperty,{at:t.property,target:e.name,onlyValidPropertyName:s}),this.finishNode(t,\"MetaProperty\")}parseImportMetaProperty(t){let e=this.createIdentifier(this.startNodeAtNode(t),\"import\");return this.next(),this.isContextual(100)&&(this.inModule||this.raise(u.ImportMetaOutsideModule,{at:e}),this.sawUnambiguousESM=!0),this.parseMetaProperty(t,e,\"meta\")}parseLiteralAtNode(t,e,s){return this.addExtra(s,\"rawValue\",t),this.addExtra(s,\"raw\",this.input.slice(s.start,this.state.end)),s.value=t,this.next(),this.finishNode(s,e)}parseLiteral(t,e){let s=this.startNode();return this.parseLiteralAtNode(t,e,s)}parseStringLiteral(t){return this.parseLiteral(t,\"StringLiteral\")}parseNumericLiteral(t){return this.parseLiteral(t,\"NumericLiteral\")}parseBigIntLiteral(t){return this.parseLiteral(t,\"BigIntLiteral\")}parseDecimalLiteral(t){return this.parseLiteral(t,\"DecimalLiteral\")}parseRegExpLiteral(t){let e=this.parseLiteral(t.value,\"RegExpLiteral\");return e.pattern=t.pattern,e.flags=t.flags,e}parseBooleanLiteral(t){let e=this.startNode();return e.value=t,this.next(),this.finishNode(e,\"BooleanLiteral\")}parseNullLiteral(){let t=this.startNode();return this.next(),this.finishNode(t,\"NullLiteral\")}parseParenAndDistinguishExpression(t){let e=this.state.start,s=this.state.startLoc,r;this.next(),this.expressionScope.enter(Ah());let i=this.state.maybeInArrowParameters,a=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;let n=this.state.start,o=this.state.startLoc,c=[],f=new At,y=!0,P,v;for(;!this.match(11);){if(y)y=!1;else if(this.expect(12,f.optionalParametersLoc===null?null:f.optionalParametersLoc),this.match(11)){v=this.state.startLoc;break}if(this.match(21)){let _=this.state.start,Q=this.state.startLoc;if(P=this.state.startLoc,c.push(this.parseParenItem(this.parseRestBinding(),_,Q)),!this.checkCommaAfterRest(41))break}else c.push(this.parseMaybeAssignAllowIn(f,this.parseParenItem))}let N=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=i,this.state.inFSharpPipelineDirectBody=a;let B=this.startNodeAt(e,s);return t&&this.shouldParseArrow(c)&&(B=this.parseArrow(B))?(this.checkDestructuringPrivate(f),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(B,c,!1),B):(this.expressionScope.exit(),c.length||this.unexpected(this.state.lastTokStartLoc),v&&this.unexpected(v),P&&this.unexpected(P),this.checkExpressionErrors(f,!0),this.toReferencedListDeep(c,!0),c.length>1?(r=this.startNodeAt(n,o),r.expressions=c,this.finishNode(r,\"SequenceExpression\"),this.resetEndLocation(r,N)):r=c[0],this.wrapParenthesis(e,s,r))}wrapParenthesis(t,e,s){if(!this.options.createParenthesizedExpressions)return this.addExtra(s,\"parenthesized\",!0),this.addExtra(s,\"parenStart\",t),this.takeSurroundingComments(s,t,this.state.lastTokEndLoc.index),s;let r=this.startNodeAt(t,e);return r.expression=s,this.finishNode(r,\"ParenthesizedExpression\"),r}shouldParseArrow(t){return!this.canInsertSemicolon()}parseArrow(t){if(this.eat(19))return t}parseParenItem(t,e,s){return t}parseNewOrNewTarget(){let t=this.startNode();if(this.next(),this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),\"new\");this.next();let s=this.parseMetaProperty(t,e,\"target\");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&this.raise(u.UnexpectedNewTarget,{at:s}),s}return this.parseNew(t)}parseNew(t){if(this.parseNewCallee(t),this.eat(10)){let e=this.parseExprList(11);this.toReferencedList(e),t.arguments=e}else t.arguments=[];return this.finishNode(t,\"NewExpression\")}parseNewCallee(t){t.callee=this.parseNoCallExpr(),t.callee.type===\"Import\"?this.raise(u.ImportCallNotNewExpression,{at:t.callee}):this.isOptionalChain(t.callee)?this.raise(u.OptionalChainingNoNew,{at:this.state.lastTokEndLoc}):this.eat(18)&&this.raise(u.OptionalChainingNoNew,{at:this.state.startLoc})}parseTemplateElement(t){let{start:e,startLoc:s,end:r,value:i}=this.state,a=e+1,n=this.startNodeAt(a,m(s,1));i===null&&(t||this.raise(u.InvalidEscapeSequenceTemplate,{at:m(s,2)}));let o=this.match(24),c=o?-1:-2,f=r+c;return n.value={raw:this.input.slice(a,f).replace(/\\r\\n?/g,`\n`),cooked:i===null?null:i.slice(1,c)},n.tail=o,this.next(),this.finishNode(n,\"TemplateElement\"),this.resetEndLocation(n,m(this.state.lastTokEndLoc,c)),n}parseTemplate(t){let e=this.startNode();e.expressions=[];let s=this.parseTemplateElement(t);for(e.quasis=[s];!s.tail;)e.expressions.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),e.quasis.push(s=this.parseTemplateElement(t));return this.finishNode(e,\"TemplateLiteral\")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(t,e,s,r){s&&this.expectPlugin(\"recordAndTuple\");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=Object.create(null),n=!0,o=this.startNode();for(o.properties=[],this.next();!this.match(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){this.addTrailingCommaExtraToNode(o);break}let f;e?f=this.parseBindingProperty():(f=this.parsePropertyDefinition(r),this.checkProto(f,s,a,r)),s&&!this.isObjectProperty(f)&&f.type!==\"SpreadElement\"&&this.raise(u.InvalidRecordProperty,{at:f}),f.shorthand&&this.addExtra(f,\"shorthand\",!0),o.properties.push(f)}this.next(),this.state.inFSharpPipelineDirectBody=i;let c=\"ObjectExpression\";return e?c=\"ObjectPattern\":s&&(c=\"RecordExpression\"),this.finishNode(o,c)}addTrailingCommaExtraToNode(t){this.addExtra(t,\"trailingComma\",this.state.lastTokStart),this.addExtra(t,\"trailingCommaLoc\",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(t){return!t.computed&&t.key.type===\"Identifier\"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(t){let e=[];if(this.match(26))for(this.hasPlugin(\"decorators\")&&this.raise(u.UnsupportedPropertyDecorator,{at:this.state.startLoc});this.match(26);)e.push(this.parseDecorator());let s=this.startNode(),r=!1,i=!1,a,n;if(this.match(21))return e.length&&this.unexpected(),this.parseSpread();e.length&&(s.decorators=e,e=[]),s.method=!1,t&&(a=this.state.start,n=this.state.startLoc);let o=this.eat(55);this.parsePropertyNamePrefixOperator(s);let c=this.state.containsEsc,f=this.parsePropertyName(s,t);if(!o&&!c&&this.maybeAsyncOrAccessorProp(s)){let y=f.name;y===\"async\"&&!this.hasPrecedingLineBreak()&&(r=!0,this.resetPreviousNodeTrailingComments(f),o=this.eat(55),this.parsePropertyName(s)),(y===\"get\"||y===\"set\")&&(i=!0,this.resetPreviousNodeTrailingComments(f),s.kind=y,this.match(55)&&(o=!0,this.raise(u.AccessorIsGenerator,{at:this.state.curPosition(),kind:y}),this.next()),this.parsePropertyName(s))}return this.parseObjPropValue(s,a,n,o,r,!1,i,t),s}getGetterSetterExpectedParamCount(t){return t.kind===\"get\"?0:1}getObjectOrClassMethodParams(t){return t.params}checkGetterSetterParams(t){var e;let s=this.getGetterSetterExpectedParamCount(t),r=this.getObjectOrClassMethodParams(t);r.length!==s&&this.raise(t.kind===\"get\"?u.BadGetterArity:u.BadSetterArity,{at:t}),t.kind===\"set\"&&((e=r[r.length-1])==null?void 0:e.type)===\"RestElement\"&&this.raise(u.BadSetterRestParameter,{at:t})}parseObjectMethod(t,e,s,r,i){if(i)return this.parseMethod(t,e,!1,!1,!1,\"ObjectMethod\"),this.checkGetterSetterParams(t),t;if(s||e||this.match(10))return r&&this.unexpected(),t.kind=\"method\",t.method=!0,this.parseMethod(t,e,s,!1,!1,\"ObjectMethod\")}parseObjectProperty(t,e,s,r,i){if(t.shorthand=!1,this.eat(14))return t.value=r?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssignAllowIn(i),this.finishNode(t,\"ObjectProperty\");if(!t.computed&&t.key.type===\"Identifier\"){if(this.checkReservedWord(t.key.name,t.key.loc.start,!0,!1),r)t.value=this.parseMaybeDefault(e,s,ge(t.key));else if(this.match(29)){let a=this.state.startLoc;i!=null?i.shorthandAssignLoc===null&&(i.shorthandAssignLoc=a):this.raise(u.InvalidCoverInitializedName,{at:a}),t.value=this.parseMaybeDefault(e,s,ge(t.key))}else t.value=ge(t.key);return t.shorthand=!0,this.finishNode(t,\"ObjectProperty\")}}parseObjPropValue(t,e,s,r,i,a,n,o){let c=this.parseObjectMethod(t,r,i,a,n)||this.parseObjectProperty(t,e,s,a,o);return c||this.unexpected(),c}parsePropertyName(t,e){if(this.eat(0))t.computed=!0,t.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{let{type:s,value:r}=this.state,i;if(pe(s))i=this.parseIdentifier(!0);else switch(s){case 130:i=this.parseNumericLiteral(r);break;case 129:i=this.parseStringLiteral(r);break;case 131:i=this.parseBigIntLiteral(r);break;case 132:i=this.parseDecimalLiteral(r);break;case 134:{let a=this.state.startLoc;e!=null?e.privateKeyLoc===null&&(e.privateKeyLoc=a):this.raise(u.UnexpectedPrivateField,{at:a}),i=this.parsePrivateName();break}default:throw this.unexpected()}t.key=i,s!==134&&(t.computed=!1)}return t.key}initFunction(t,e){t.id=null,t.generator=!1,t.async=!!e}parseMethod(t,e,s,r,i,a){let n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1;this.initFunction(t,s),t.generator=!!e;let o=r;return this.scope.enter(me|ot|(n?Se:0)|(i?xr:0)),this.prodParam.enter(gt(s,t.generator)),this.parseFunctionParams(t,o),this.parseFunctionBodyAndFinish(t,a,!0),this.prodParam.exit(),this.scope.exit(),t}parseArrayLike(t,e,s,r){s&&this.expectPlugin(\"recordAndTuple\");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=this.startNode();return this.next(),a.elements=this.parseExprList(t,!s,r,a),this.state.inFSharpPipelineDirectBody=i,this.finishNode(a,s?\"TupleExpression\":\"ArrayExpression\")}parseArrowExpression(t,e,s,r){this.scope.enter(me|Jt);let i=gt(s,!1);!this.match(5)&&this.prodParam.hasIn&&(i|=qe),this.prodParam.enter(i),this.initFunction(t,s);let a=this.state.maybeInArrowParameters;return e&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(t,e,r)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=a,this.finishNode(t,\"ArrowFunctionExpression\")}setArrowFunctionParameters(t,e,s){this.toAssignableList(e,s,!1),t.params=e}parseFunctionBodyAndFinish(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parseFunctionBody(t,!1,s),this.finishNode(t,e)}parseFunctionBody(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&&!this.match(5);if(this.expressionScope.enter(Dr()),r)t.body=this.parseMaybeAssign(),this.checkParams(t,!1,e,!1);else{let i=this.state.strict,a=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|Lr),t.body=this.parseBlock(!0,!1,n=>{let o=!this.isSimpleParamList(t.params);n&&o&&this.raise(u.IllegalLanguageModeDirective,{at:(t.kind===\"method\"||t.kind===\"constructor\")&&!!t.key?t.key.loc.end:t});let c=!i&&this.state.strict;this.checkParams(t,!this.state.strict&&!e&&!s&&!o,e,c),this.state.strict&&t.id&&this.checkIdentifier(t.id,Xo,c)}),this.prodParam.exit(),this.state.labels=a}this.expressionScope.exit()}isSimpleParameter(t){return t.type===\"Identifier\"}isSimpleParamList(t){for(let e=0,s=t.length;e3&&arguments[3]!==void 0?arguments[3]:!0,i=!e&&new Set,a={type:\"FormalParameters\"};for(let n of t.params)this.checkLVal(n,{in:a,binding:pt,checkClashes:i,strictModeChanged:r})}parseExprList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);){if(a)a=!1;else if(this.expect(12),this.match(t)){r&&this.addTrailingCommaExtraToNode(r),this.next();break}i.push(this.parseExprListItem(e,s))}return i}parseExprListItem(t,e,s){let r;if(this.match(12))t||this.raise(u.UnexpectedToken,{at:this.state.curPosition(),unexpected:\",\"}),r=null;else if(this.match(21)){let i=this.state.start,a=this.state.startLoc;r=this.parseParenItem(this.parseSpread(e),i,a)}else if(this.match(17)){this.expectPlugin(\"partialApplication\"),s||this.raise(u.UnexpectedArgumentPlaceholder,{at:this.state.startLoc});let i=this.startNode();this.next(),r=this.finishNode(i,\"ArgumentPlaceholder\")}else r=this.parseMaybeAssignAllowIn(e,this.parseParenItem);return r}parseIdentifier(t){let e=this.startNode(),s=this.parseIdentifierName(e.start,t);return this.createIdentifier(e,s)}createIdentifier(t,e){return t.name=e,t.loc.identifierName=e,this.finishNode(t,\"Identifier\")}parseIdentifierName(t,e){let s,{startLoc:r,type:i}=this.state;if(pe(i))s=this.state.value;else throw this.unexpected();let a=vo(i);return e?a&&this.replaceToken(128):this.checkReservedWord(s,r,a,!1),this.next(),s}checkReservedWord(t,e,s,r){if(t.length>10||!Ho(t))return;if(t===\"yield\"){if(this.prodParam.hasYield){this.raise(u.YieldBindingIdentifier,{at:e});return}}else if(t===\"await\"){if(this.prodParam.hasAwait){this.raise(u.AwaitBindingIdentifier,{at:e});return}if(this.scope.inStaticBlock){this.raise(u.AwaitBindingIdentifierInStaticBlock,{at:e});return}this.expressionScope.recordAsyncArrowParametersError({at:e})}else if(t===\"arguments\"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(u.ArgumentsInClass,{at:e});return}if(s&&zo(t)){this.raise(u.UnexpectedKeyword,{at:e,keyword:t});return}(this.state.strict?r?mr:fr:pr)(t,this.inModule)&&this.raise(u.UnexpectedReservedWord,{at:e,reservedWord:t})}isAwaitAllowed(){return!!(this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction)}parseAwait(t,e){let s=this.startNodeAt(t,e);return this.expressionScope.recordParameterInitializerError(u.AwaitExpressionFormalParameter,{at:s}),this.eat(55)&&this.raise(u.ObsoleteAwaitStar,{at:s}),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(s.argument=this.parseMaybeUnary(null,!0)),this.finishNode(s,\"AwaitExpression\")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:t}=this.state;return t===53||t===10||t===0||nt(t)||t===133||t===56||this.hasPlugin(\"v8intrinsic\")&&t===54}parseYield(){let t=this.startNode();this.expressionScope.recordParameterInitializerError(u.YieldInParameter,{at:t}),this.next();let e=!1,s=null;if(!this.hasPrecedingLineBreak())switch(e=this.eat(55),this.state.type){case 13:case 135:case 8:case 11:case 3:case 9:case 14:case 12:if(!e)break;default:s=this.parseMaybeAssign()}return t.delegate=e,t.argument=s,this.finishNode(t,\"YieldExpression\")}checkPipelineAtInfixOperator(t,e){this.hasPlugin([\"pipelineOperator\",{proposal:\"smart\"}])&&t.type===\"SequenceExpression\"&&this.raise(u.PipelineHeadSequenceExpression,{at:e})}parseSmartPipelineBodyInStyle(t,e,s){let r=this.startNodeAt(e,s);return this.isSimpleReference(t)?(r.callee=t,this.finishNode(r,\"PipelineBareFunction\")):(this.checkSmartPipeTopicBodyEarlyErrors(s),r.expression=t,this.finishNode(r,\"PipelineTopicExpression\"))}isSimpleReference(t){switch(t.type){case\"MemberExpression\":return!t.computed&&this.isSimpleReference(t.object);case\"Identifier\":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(t){if(this.match(19))throw this.raise(u.PipelineBodyNoArrow,{at:this.state.startLoc});this.topicReferenceWasUsedInCurrentContext()||this.raise(u.PipelineTopicUnused,{at:t})}withTopicBindingContext(t){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}withSmartMixTopicForbiddingContext(t){if(this.hasPlugin([\"pipelineOperator\",{proposal:\"smart\"}])){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}else return t()}withSoloAwaitPermittingContext(t){let e=this.state.soloAwait;this.state.soloAwait=!0;try{return t()}finally{this.state.soloAwait=e}}allowInAnd(t){let e=this.prodParam.currentFlags();if(qe&~e){this.prodParam.enter(e|qe);try{return t()}finally{this.prodParam.exit()}}return t()}disallowInAnd(t){let e=this.prodParam.currentFlags();if(qe&e){this.prodParam.enter(e&~qe);try{return t()}finally{this.prodParam.exit()}}return t()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(t){let e=this.state.start,s=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let i=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),e,s,t);return this.state.inFSharpPipelineDirectBody=r,i}parseModuleExpression(){this.expectPlugin(\"moduleBlocks\");let t=this.startNode();this.next(),this.eat(5);let e=this.initializeScopes(!0);this.enterInitialScopes();let s=this.startNode();try{t.body=this.parseProgram(s,8,\"module\")}finally{e()}return this.eat(8),this.finishNode(t,\"ModuleExpression\")}parsePropertyNamePrefixOperator(t){}},ps={kind:\"loop\"},$h={kind:\"switch\"},Qh=0,fs=1,Hr=2,Wr=4,Zh=/[\\uD800-\\uDFFF]/u,ds=/in(?:stanceof)?/y;function el(t,e){for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:135,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.options.sourceType;if(t.sourceType=s,t.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(t,!0,!0,e),this.inModule&&!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(let[r,i]of Array.from(this.scope.undefinedExports))this.raise(u.ModuleExportUndefined,{at:i,localName:r});return this.finishNode(t,\"Program\")}stmtToDirective(t){let e=t;e.type=\"Directive\",e.value=e.expression,delete e.expression;let s=e.value,r=s.value,i=this.input.slice(s.start,s.end),a=s.value=i.slice(1,-1);return this.addExtra(s,\"raw\",i),this.addExtra(s,\"rawValue\",a),this.addExtra(s,\"expressionValue\",r),s.type=\"DirectiveLiteral\",e}parseInterpreterDirective(){if(!this.match(28))return null;let t=this.startNode();return t.value=this.state.value,this.next(),this.finishNode(t,\"InterpreterDirective\")}isLet(t){return this.isContextual(99)?this.isLetKeyword(t):!1}isLetKeyword(t){let e=this.nextTokenStart(),s=this.codePointAtPos(e);if(s===92||s===91)return!0;if(t)return!1;if(s===123)return!0;if(de(s)){if(ds.lastIndex=e,ds.test(this.input)){let r=this.codePointAtPos(ds.lastIndex);if(!Be(r)&&r!==92)return!1}return!0}return!1}parseStatement(t,e){return this.match(26)&&this.parseDecorators(!0),this.parseStatementContent(t,e)}parseStatementContent(t,e){let s=this.state.type,r=this.startNode(),i;switch(this.isLet(t)&&(s=74,i=\"let\"),s){case 60:return this.parseBreakContinueStatement(r,!0);case 63:return this.parseBreakContinueStatement(r,!1);case 64:return this.parseDebuggerStatement(r);case 90:return this.parseDoStatement(r);case 91:return this.parseForStatement(r);case 68:if(this.lookaheadCharCode()===46)break;return t&&(this.state.strict?this.raise(u.StrictFunction,{at:this.state.startLoc}):t!==\"if\"&&t!==\"label\"&&this.raise(u.SloppyFunction,{at:this.state.startLoc})),this.parseFunctionStatement(r,!1,!t);case 80:return t&&this.unexpected(),this.parseClass(r,!0);case 69:return this.parseIfStatement(r);case 70:return this.parseReturnStatement(r);case 71:return this.parseSwitchStatement(r);case 72:return this.parseThrowStatement(r);case 73:return this.parseTryStatement(r);case 75:case 74:return i=i||this.state.value,t&&i!==\"var\"&&this.raise(u.UnexpectedLexicalDeclaration,{at:this.state.startLoc}),this.parseVarStatement(r,i);case 92:return this.parseWhileStatement(r);case 76:return this.parseWithStatement(r);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(r);case 83:{let o=this.lookaheadCharCode();if(o===40||o===46)break}case 82:{!this.options.allowImportExportEverywhere&&!e&&this.raise(u.UnexpectedImportExport,{at:this.state.startLoc}),this.next();let o;return s===83?(o=this.parseImport(r),o.type===\"ImportDeclaration\"&&(!o.importKind||o.importKind===\"value\")&&(this.sawUnambiguousESM=!0)):(o=this.parseExport(r),(o.type===\"ExportNamedDeclaration\"&&(!o.exportKind||o.exportKind===\"value\")||o.type===\"ExportAllDeclaration\"&&(!o.exportKind||o.exportKind===\"value\")||o.type===\"ExportDefaultDeclaration\")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(r),o}default:if(this.isAsyncFunction())return t&&this.raise(u.AsyncFunctionInSingleStatementContext,{at:this.state.startLoc}),this.next(),this.parseFunctionStatement(r,!0,!t)}let a=this.state.value,n=this.parseExpression();return K(s)&&n.type===\"Identifier\"&&this.eat(14)?this.parseLabeledStatement(r,a,n,t):this.parseExpressionStatement(r,n)}assertModuleNodeAllowed(t){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(u.ImportOutsideModule,{at:t})}takeDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];e.length&&(t.decorators=e,this.resetStartLocationFromNode(t,e[0]),this.state.decoratorStack[this.state.decoratorStack.length-1]=[])}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];for(;this.match(26);){let s=this.parseDecorator();e.push(s)}if(this.match(82))t||this.unexpected(),this.hasPlugin(\"decorators\")&&!this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")&&this.raise(u.DecoratorExportClass,{at:this.state.startLoc});else if(!this.canHaveLeadingDecorator())throw this.raise(u.UnexpectedLeadingDecorator,{at:this.state.startLoc})}parseDecorator(){this.expectOnePlugin([\"decorators-legacy\",\"decorators\"]);let t=this.startNode();if(this.next(),this.hasPlugin(\"decorators\")){this.state.decoratorStack.push([]);let e=this.state.start,s=this.state.startLoc,r;if(this.match(10)){let i=this.state.start,a=this.state.startLoc;this.next(),r=this.parseExpression(),this.expect(11),r=this.wrapParenthesis(i,a,r)}else for(r=this.parseIdentifier(!1);this.eat(16);){let i=this.startNodeAt(e,s);i.object=r,i.property=this.parseIdentifier(!0),i.computed=!1,r=this.finishNode(i,\"MemberExpression\")}t.expression=this.parseMaybeDecoratorArguments(r),this.state.decoratorStack.pop()}else t.expression=this.parseExprSubscripts();return this.finishNode(t,\"Decorator\")}parseMaybeDecoratorArguments(t){if(this.eat(10)){let e=this.startNodeAtNode(t);return e.callee=t,e.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(e.arguments),this.finishNode(e,\"CallExpression\")}return t}parseBreakContinueStatement(t,e){return this.next(),this.isLineTerminator()?t.label=null:(t.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(t,e),this.finishNode(t,e?\"BreakStatement\":\"ContinueStatement\")}verifyBreakContinue(t,e){let s;for(s=0;sthis.parseStatement(\"do\")),this.state.labels.pop(),this.expect(92),t.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(t,\"DoWhileStatement\")}parseForStatement(t){this.next(),this.state.labels.push(ps);let e=null;if(this.isAwaitAllowed()&&this.eatContextual(96)&&(e=this.state.lastTokStartLoc),this.scope.enter(Me),this.expect(10),this.match(13))return e!==null&&this.unexpected(e),this.parseFor(t,null);let s=this.isContextual(99),r=s&&this.isLetKeyword();if(this.match(74)||this.match(75)||r){let c=this.startNode(),f=r?\"let\":this.state.value;return this.next(),this.parseVar(c,!0,f),this.finishNode(c,\"VariableDeclaration\"),(this.match(58)||this.isContextual(101))&&c.declarations.length===1?this.parseForIn(t,c,e):(e!==null&&this.unexpected(e),this.parseFor(t,c))}let i=this.isContextual(95),a=new At,n=this.parseExpression(!0,a),o=this.isContextual(101);if(o&&(s&&this.raise(u.ForOfLet,{at:n}),e===null&&i&&n.type===\"Identifier\"&&this.raise(u.ForOfAsync,{at:n})),o||this.match(58)){this.checkDestructuringPrivate(a),this.toAssignable(n,!0);let c=o?\"ForOfStatement\":\"ForInStatement\";return this.checkLVal(n,{in:{type:c}}),this.parseForIn(t,n,e)}else this.checkExpressionErrors(a,!0);return e!==null&&this.unexpected(e),this.parseFor(t,n)}parseFunctionStatement(t,e,s){return this.next(),this.parseFunction(t,fs|(s?0:Hr),e)}parseIfStatement(t){return this.next(),t.test=this.parseHeaderExpression(),t.consequent=this.parseStatement(\"if\"),t.alternate=this.eat(66)?this.parseStatement(\"if\"):null,this.finishNode(t,\"IfStatement\")}parseReturnStatement(t){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(u.IllegalReturn,{at:this.state.startLoc}),this.next(),this.isLineTerminator()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,\"ReturnStatement\")}parseSwitchStatement(t){this.next(),t.discriminant=this.parseHeaderExpression();let e=t.cases=[];this.expect(5),this.state.labels.push($h),this.scope.enter(Me);let s;for(let r;!this.match(8);)if(this.match(61)||this.match(65)){let i=this.match(61);s&&this.finishNode(s,\"SwitchCase\"),e.push(s=this.startNode()),s.consequent=[],this.next(),i?s.test=this.parseExpression():(r&&this.raise(u.MultipleDefaultsInSwitch,{at:this.state.lastTokStartLoc}),r=!0,s.test=null),this.expect(14)}else s?s.consequent.push(this.parseStatement(null)):this.unexpected();return this.scope.exit(),s&&this.finishNode(s,\"SwitchCase\"),this.next(),this.state.labels.pop(),this.finishNode(t,\"SwitchStatement\")}parseThrowStatement(t){return this.next(),this.hasPrecedingLineBreak()&&this.raise(u.NewlineAfterThrow,{at:this.state.lastTokEndLoc}),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,\"ThrowStatement\")}parseCatchClauseParam(){let t=this.parseBindingAtom(),e=t.type===\"Identifier\";return this.scope.enter(e?yr:0),this.checkLVal(t,{in:{type:\"CatchClause\"},binding:xe,allowingSloppyLetBinding:!0}),t}parseTryStatement(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.match(62)){let e=this.startNode();this.next(),this.match(10)?(this.expect(10),e.param=this.parseCatchClauseParam(),this.expect(11)):(e.param=null,this.scope.enter(Me)),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),t.handler=this.finishNode(e,\"CatchClause\")}return t.finalizer=this.eat(67)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(u.NoCatchOrFinally,{at:t}),this.finishNode(t,\"TryStatement\")}parseVarStatement(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this.next(),this.parseVar(t,!1,e,s),this.semicolon(),this.finishNode(t,\"VariableDeclaration\")}parseWhileStatement(t){return this.next(),t.test=this.parseHeaderExpression(),this.state.labels.push(ps),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"while\")),this.state.labels.pop(),this.finishNode(t,\"WhileStatement\")}parseWithStatement(t){return this.state.strict&&this.raise(u.StrictWith,{at:this.state.startLoc}),this.next(),t.object=this.parseHeaderExpression(),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"with\")),this.finishNode(t,\"WithStatement\")}parseEmptyStatement(t){return this.next(),this.finishNode(t,\"EmptyStatement\")}parseLabeledStatement(t,e,s,r){for(let a of this.state.labels)a.name===e&&this.raise(u.LabelRedeclaration,{at:s,labelName:e});let i=No(this.state.type)?\"loop\":this.match(71)?\"switch\":null;for(let a=this.state.labels.length-1;a>=0;a--){let n=this.state.labels[a];if(n.statementStart===t.start)n.statementStart=this.state.start,n.kind=i;else break}return this.state.labels.push({name:e,kind:i,statementStart:this.state.start}),t.body=this.parseStatement(r?r.indexOf(\"label\")===-1?r+\"label\":r:\"label\"),this.state.labels.pop(),t.label=s,this.finishNode(t,\"LabeledStatement\")}parseExpressionStatement(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,\"ExpressionStatement\")}parseBlock(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=arguments.length>2?arguments[2]:void 0,r=this.startNode();return t&&this.state.strictErrors.clear(),this.expect(5),e&&this.scope.enter(Me),this.parseBlockBody(r,t,!1,8,s),e&&this.scope.exit(),this.finishNode(r,\"BlockStatement\")}isValidDirective(t){return t.type===\"ExpressionStatement\"&&t.expression.type===\"StringLiteral\"&&!t.expression.extra.parenthesized}parseBlockBody(t,e,s,r,i){let a=t.body=[],n=t.directives=[];this.parseBlockOrModuleBlockBody(a,e?n:void 0,s,r,i)}parseBlockOrModuleBlockBody(t,e,s,r,i){let a=this.state.strict,n=!1,o=!1;for(;!this.match(r);){let c=this.parseStatement(null,s);if(e&&!o){if(this.isValidDirective(c)){let f=this.stmtToDirective(c);e.push(f),!n&&f.value.value===\"use strict\"&&(n=!0,this.setStrict(!0));continue}o=!0,this.state.strictErrors.clear()}t.push(c)}i&&i.call(this,n),a||this.setStrict(!1),this.next()}parseFor(t,e){return t.init=e,this.semicolon(!1),t.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),t.update=this.match(11)?null:this.parseExpression(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"for\")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,\"ForStatement\")}parseForIn(t,e,s){let r=this.match(58);return this.next(),r?s!==null&&this.unexpected(s):t.await=s!==null,e.type===\"VariableDeclaration\"&&e.declarations[0].init!=null&&(!r||this.state.strict||e.kind!==\"var\"||e.declarations[0].id.type!==\"Identifier\")&&this.raise(u.ForInOfLoopInitializer,{at:e,type:r?\"ForInStatement\":\"ForOfStatement\"}),e.type===\"AssignmentPattern\"&&this.raise(u.InvalidLhs,{at:e,ancestor:{type:\"ForStatement\"}}),t.left=e,t.right=r?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"for\")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,r?\"ForInStatement\":\"ForOfStatement\")}parseVar(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=t.declarations=[];for(t.kind=s;;){let a=this.startNode();if(this.parseVarId(a,s),a.init=this.eat(29)?e?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,a.init===null&&!r&&(a.id.type!==\"Identifier\"&&!(e&&(this.match(58)||this.isContextual(101)))?this.raise(u.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:\"destructuring\"}):s===\"const\"&&!(this.match(58)||this.isContextual(101))&&this.raise(u.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:\"const\"})),i.push(this.finishNode(a,\"VariableDeclarator\")),!this.eat(12))break}return t}parseVarId(t,e){t.id=this.parseBindingAtom(),this.checkLVal(t.id,{in:{type:\"VariableDeclarator\"},binding:e===\"var\"?pt:xe})}parseFunction(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Qh,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&fs,i=e&Hr,a=!!r&&!(e&Wr);this.initFunction(t,s),this.match(55)&&i&&this.raise(u.GeneratorInSingleStatementContext,{at:this.state.startLoc}),t.generator=this.eat(55),r&&(t.id=this.parseFunctionId(a));let n=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(me),this.prodParam.enter(gt(s,t.generator)),r||(t.id=this.parseFunctionId()),this.parseFunctionParams(t,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(t,r?\"FunctionDeclaration\":\"FunctionExpression\")}),this.prodParam.exit(),this.scope.exit(),r&&!i&&this.registerFunctionStatementId(t),this.state.maybeInArrowParameters=n,t}parseFunctionId(t){return t||K(this.state.type)?this.parseIdentifier():null}parseFunctionParams(t,e){this.expect(10),this.expressionScope.enter(gh()),t.params=this.parseBindingList(11,41,!1,e),this.expressionScope.exit()}registerFunctionStatementId(t){!t.id||this.scope.declareName(t.id.name,this.state.strict||t.generator||t.async?this.scope.treatFunctionsAsVar?pt:xe:Tr,t.id.loc.start)}parseClass(t,e,s){this.next(),this.takeDecorators(t);let r=this.state.strict;return this.state.strict=!0,this.parseClassId(t,e,s),this.parseClassSuper(t),t.body=this.parseClassBody(!!t.superClass,r),this.finishNode(t,e?\"ClassDeclaration\":\"ClassExpression\")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}isNonstaticConstructor(t){return!t.computed&&!t.static&&(t.key.name===\"constructor\"||t.key.value===\"constructor\")}parseClassBody(t,e){this.classScope.enter();let s={hadConstructor:!1,hadSuperClass:t},r=[],i=this.startNode();if(i.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(r.length>0)throw this.raise(u.DecoratorSemicolon,{at:this.state.lastTokEndLoc});continue}if(this.match(26)){r.push(this.parseDecorator());continue}let a=this.startNode();r.length&&(a.decorators=r,this.resetStartLocationFromNode(a,r[0]),r=[]),this.parseClassMember(i,a,s),a.kind===\"constructor\"&&a.decorators&&a.decorators.length>0&&this.raise(u.DecoratorConstructor,{at:a})}}),this.state.strict=e,this.next(),r.length)throw this.raise(u.TrailingDecorator,{at:this.state.startLoc});return this.classScope.exit(),this.finishNode(i,\"ClassBody\")}parseClassMemberFromModifier(t,e){let s=this.parseIdentifier(!0);if(this.isClassMethod()){let r=e;return r.kind=\"method\",r.computed=!1,r.key=s,r.static=!1,this.pushClassMethod(t,r,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let r=e;return r.computed=!1,r.key=s,r.static=!1,t.body.push(this.parseClassProperty(r)),!0}return this.resetPreviousNodeTrailingComments(s),!1}parseClassMember(t,e,s){let r=this.isContextual(104);if(r){if(this.parseClassMemberFromModifier(t,e))return;if(this.eat(5)){this.parseClassStaticBlock(t,e);return}}this.parseClassMemberWithIsStatic(t,e,s,r)}parseClassMemberWithIsStatic(t,e,s,r){let i=e,a=e,n=e,o=e,c=e,f=i,y=i;if(e.static=r,this.parsePropertyNamePrefixOperator(e),this.eat(55)){f.kind=\"method\";let _=this.match(134);if(this.parseClassElementName(f),_){this.pushClassPrivateMethod(t,a,!0,!1);return}this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsGenerator,{at:i.key}),this.pushClassMethod(t,i,!0,!1,!1,!1);return}let P=K(this.state.type)&&!this.state.containsEsc,v=this.match(134),N=this.parseClassElementName(e),B=this.state.startLoc;if(this.parsePostMemberNameModifiers(y),this.isClassMethod()){if(f.kind=\"method\",v){this.pushClassPrivateMethod(t,a,!1,!1);return}let _=this.isNonstaticConstructor(i),Q=!1;_&&(i.kind=\"constructor\",s.hadConstructor&&!this.hasPlugin(\"typescript\")&&this.raise(u.DuplicateConstructor,{at:N}),_&&this.hasPlugin(\"typescript\")&&e.override&&this.raise(u.OverrideOnConstructor,{at:N}),s.hadConstructor=!0,Q=s.hadSuperClass),this.pushClassMethod(t,i,!1,!1,_,Q)}else if(this.isClassProperty())v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n);else if(P&&N.name===\"async\"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(N);let _=this.eat(55);y.optional&&this.unexpected(B),f.kind=\"method\";let Q=this.match(134);this.parseClassElementName(f),this.parsePostMemberNameModifiers(y),Q?this.pushClassPrivateMethod(t,a,_,!0):(this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsAsync,{at:i.key}),this.pushClassMethod(t,i,_,!0,!1,!1))}else if(P&&(N.name===\"get\"||N.name===\"set\")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(N),f.kind=N.name;let _=this.match(134);this.parseClassElementName(i),_?this.pushClassPrivateMethod(t,a,!1,!1):(this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsAccessor,{at:i.key}),this.pushClassMethod(t,i,!1,!1,!1,!1)),this.checkGetterSetterParams(i)}else if(P&&N.name===\"accessor\"&&!this.isLineTerminator()){this.expectPlugin(\"decoratorAutoAccessors\"),this.resetPreviousNodeTrailingComments(N);let _=this.match(134);this.parseClassElementName(n),this.pushClassAccessorProperty(t,c,_)}else this.isLineTerminator()?v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n):this.unexpected()}parseClassElementName(t){let{type:e,value:s}=this.state;if((e===128||e===129)&&t.static&&s===\"prototype\"&&this.raise(u.StaticPrototype,{at:this.state.startLoc}),e===134){s===\"constructor\"&&this.raise(u.ConstructorClassPrivateField,{at:this.state.startLoc});let r=this.parsePrivateName();return t.key=r,r}return this.parsePropertyName(t)}parseClassStaticBlock(t,e){var s;this.scope.enter(Se|Yt|ot);let r=this.state.labels;this.state.labels=[],this.prodParam.enter(je);let i=e.body=[];this.parseBlockOrModuleBlockBody(i,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=r,t.body.push(this.finishNode(e,\"StaticBlock\")),(s=e.decorators)!=null&&s.length&&this.raise(u.DecoratorStaticBlock,{at:e})}pushClassProperty(t,e){!e.computed&&(e.key.name===\"constructor\"||e.key.value===\"constructor\")&&this.raise(u.ConstructorClassField,{at:e.key}),t.body.push(this.parseClassProperty(e))}pushClassPrivateProperty(t,e){let s=this.parseClassPrivateProperty(e);t.body.push(s),this.classScope.declarePrivateName(this.getPrivateNameSV(s.key),is,s.key.loc.start)}pushClassAccessorProperty(t,e,s){if(!s&&!e.computed){let i=e.key;(i.name===\"constructor\"||i.value===\"constructor\")&&this.raise(u.ConstructorClassField,{at:i})}let r=this.parseClassAccessorProperty(e);t.body.push(r),s&&this.classScope.declarePrivateName(this.getPrivateNameSV(r.key),is,r.key.loc.start)}pushClassMethod(t,e,s,r,i,a){t.body.push(this.parseMethod(e,s,r,i,a,\"ClassMethod\",!0))}pushClassPrivateMethod(t,e,s,r){let i=this.parseMethod(e,s,r,!1,!1,\"ClassPrivateMethod\",!0);t.body.push(i);let a=i.kind===\"get\"?i.static?Qo:eh:i.kind===\"set\"?i.static?Zo:th:is;this.declareClassPrivateMethodInScope(i,a)}declareClassPrivateMethodInScope(t,e){this.classScope.declarePrivateName(this.getPrivateNameSV(t.key),e,t.key.loc.start)}parsePostMemberNameModifiers(t){}parseClassPrivateProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassPrivateProperty\")}parseClassProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassProperty\")}parseClassAccessorProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassAccessorProperty\")}parseInitializer(t){this.scope.enter(Se|ot),this.expressionScope.enter(Dr()),this.prodParam.enter(je),t.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Pr;if(K(this.state.type))t.id=this.parseIdentifier(),e&&this.declareNameFromIdentifier(t.id,r);else if(s||!e)t.id=null;else throw this.raise(u.MissingClassName,{at:this.state.startLoc})}parseClassSuper(t){t.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(t){let e=this.maybeParseExportDefaultSpecifier(t),s=!e||this.eat(12),r=s&&this.eatExportStar(t),i=r&&this.maybeParseExportNamespaceSpecifier(t),a=s&&(!i||this.eat(12)),n=e||r;if(r&&!i)return e&&this.unexpected(),this.parseExportFrom(t,!0),this.finishNode(t,\"ExportAllDeclaration\");let o=this.maybeParseExportNamedSpecifiers(t);if(e&&s&&!r&&!o||i&&a&&!o)throw this.unexpected(null,5);let c;if(n||o?(c=!1,this.parseExportFrom(t,n)):c=this.maybeParseExportDeclaration(t),n||o||c)return this.checkExport(t,!0,!1,!!t.source),this.finishNode(t,\"ExportNamedDeclaration\");if(this.eat(65))return t.declaration=this.parseExportDefaultExpression(),this.checkExport(t,!0,!0),this.finishNode(t,\"ExportDefaultDeclaration\");throw this.unexpected(null,5)}eatExportStar(t){return this.eat(55)}maybeParseExportDefaultSpecifier(t){if(this.isExportDefaultSpecifier()){this.expectPlugin(\"exportDefaultFrom\");let e=this.startNode();return e.exported=this.parseIdentifier(!0),t.specifiers=[this.finishNode(e,\"ExportDefaultSpecifier\")],!0}return!1}maybeParseExportNamespaceSpecifier(t){if(this.isContextual(93)){t.specifiers||(t.specifiers=[]);let e=this.startNodeAt(this.state.lastTokStart,this.state.lastTokStartLoc);return this.next(),e.exported=this.parseModuleExportName(),t.specifiers.push(this.finishNode(e,\"ExportNamespaceSpecifier\")),!0}return!1}maybeParseExportNamedSpecifiers(t){if(this.match(5)){t.specifiers||(t.specifiers=[]);let e=t.exportKind===\"type\";return t.specifiers.push(...this.parseExportSpecifiers(e)),t.source=null,t.declaration=null,this.hasPlugin(\"importAssertions\")&&(t.assertions=[]),!0}return!1}maybeParseExportDeclaration(t){return this.shouldParseExportDeclaration()?(t.specifiers=[],t.source=null,this.hasPlugin(\"importAssertions\")&&(t.assertions=[]),t.declaration=this.parseExportDeclaration(t),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let t=this.nextTokenStart();return!as.test(this.input.slice(this.state.pos,t))&&this.isUnparsedContextual(t,\"function\")}parseExportDefaultExpression(){let t=this.startNode(),e=this.isAsyncFunction();if(this.match(68)||e)return this.next(),e&&this.next(),this.parseFunction(t,fs|Wr,e);if(this.match(80))return this.parseClass(t,!0,!0);if(this.match(26))return this.hasPlugin(\"decorators\")&&this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")&&this.raise(u.DecoratorBeforeExport,{at:this.state.startLoc}),this.parseDecorators(!1),this.parseClass(t,!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(u.UnsupportedDefaultExport,{at:this.state.startLoc});let s=this.parseMaybeAssignAllowIn();return this.semicolon(),s}parseExportDeclaration(t){return this.parseStatement(null)}isExportDefaultSpecifier(){let{type:t}=this.state;if(K(t)){if(t===95&&!this.state.containsEsc||t===99)return!1;if((t===126||t===125)&&!this.state.containsEsc){let{type:r}=this.lookahead();if(K(r)&&r!==97||r===5)return this.expectOnePlugin([\"flow\",\"typescript\"]),!1}}else if(!this.match(65))return!1;let e=this.nextTokenStart(),s=this.isUnparsedContextual(e,\"from\");if(this.input.charCodeAt(e)===44||K(this.state.type)&&s)return!0;if(this.match(65)&&s){let r=this.input.charCodeAt(this.nextTokenStartSince(e+4));return r===34||r===39}return!1}parseExportFrom(t,e){if(this.eatContextual(97)){t.source=this.parseImportSource(),this.checkExport(t);let s=this.maybeParseImportAssertions();s&&(t.assertions=s)}else e&&this.unexpected();this.semicolon()}shouldParseExportDeclaration(){let{type:t}=this.state;if(t===26&&(this.expectOnePlugin([\"decorators\",\"decorators-legacy\"]),this.hasPlugin(\"decorators\"))){if(this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\"))throw this.raise(u.DecoratorBeforeExport,{at:this.state.startLoc});return!0}return t===74||t===75||t===68||t===80||this.isLet()||this.isAsyncFunction()}checkExport(t,e,s,r){if(e){if(s){if(this.checkDuplicateExports(t,\"default\"),this.hasPlugin(\"exportDefaultFrom\")){var i;let n=t.declaration;n.type===\"Identifier\"&&n.name===\"from\"&&n.end-n.start===4&&!((i=n.extra)!=null&&i.parenthesized)&&this.raise(u.ExportDefaultFromAsIdentifier,{at:n})}}else if(t.specifiers&&t.specifiers.length)for(let n of t.specifiers){let{exported:o}=n,c=o.type===\"Identifier\"?o.name:o.value;if(this.checkDuplicateExports(n,c),!r&&n.local){let{local:f}=n;f.type!==\"Identifier\"?this.raise(u.ExportBindingIsString,{at:n,localName:f.value,exportName:c}):(this.checkReservedWord(f.name,f.loc.start,!0,!1),this.scope.checkLocalExport(f))}}else if(t.declaration){if(t.declaration.type===\"FunctionDeclaration\"||t.declaration.type===\"ClassDeclaration\"){let n=t.declaration.id;if(!n)throw new Error(\"Assertion failure\");this.checkDuplicateExports(t,n.name)}else if(t.declaration.type===\"VariableDeclaration\")for(let n of t.declaration.declarations)this.checkDeclaration(n.id)}}if(this.state.decoratorStack[this.state.decoratorStack.length-1].length)throw this.raise(u.UnsupportedDecoratorExport,{at:t})}checkDeclaration(t){if(t.type===\"Identifier\")this.checkDuplicateExports(t,t.name);else if(t.type===\"ObjectPattern\")for(let e of t.properties)this.checkDeclaration(e);else if(t.type===\"ArrayPattern\")for(let e of t.elements)e&&this.checkDeclaration(e);else t.type===\"ObjectProperty\"?this.checkDeclaration(t.value):t.type===\"RestElement\"?this.checkDeclaration(t.argument):t.type===\"AssignmentPattern\"&&this.checkDeclaration(t.left)}checkDuplicateExports(t,e){this.exportedIdentifiers.has(e)&&(e===\"default\"?this.raise(u.DuplicateDefaultExport,{at:t}):this.raise(u.DuplicateExport,{at:t,exportName:e})),this.exportedIdentifiers.add(e)}parseExportSpecifiers(t){let e=[],s=!0;for(this.expect(5);!this.eat(8);){if(s)s=!1;else if(this.expect(12),this.eat(8))break;let r=this.isContextual(126),i=this.match(129),a=this.startNode();a.local=this.parseModuleExportName(),e.push(this.parseExportSpecifier(a,i,t,r))}return e}parseExportSpecifier(t,e,s,r){return this.eatContextual(93)?t.exported=this.parseModuleExportName():e?t.exported=bh(t.local):t.exported||(t.exported=ge(t.local)),this.finishNode(t,\"ExportSpecifier\")}parseModuleExportName(){if(this.match(129)){let t=this.parseStringLiteral(this.state.value),e=t.value.match(Zh);return e&&this.raise(u.ModuleExportNameHasLoneSurrogate,{at:t,surrogateCharCode:e[0].charCodeAt(0)}),t}return this.parseIdentifier(!0)}parseImport(t){if(t.specifiers=[],!this.match(129)){let r=!this.maybeParseDefaultImportSpecifier(t)||this.eat(12),i=r&&this.maybeParseStarImportSpecifier(t);r&&!i&&this.parseNamedImportSpecifiers(t),this.expectContextual(97)}t.source=this.parseImportSource();let e=this.maybeParseImportAssertions();if(e)t.assertions=e;else{let s=this.maybeParseModuleAttributes();s&&(t.attributes=s)}return this.semicolon(),this.finishNode(t,\"ImportDeclaration\")}parseImportSource(){return this.match(129)||this.unexpected(),this.parseExprAtom()}shouldParseDefaultImport(t){return K(this.state.type)}parseImportSpecifierLocal(t,e,s){e.local=this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(e,s))}finishImportSpecifier(t,e){return this.checkLVal(t.local,{in:t,binding:xe}),this.finishNode(t,e)}parseAssertEntries(){let t=[],e=new Set;do{if(this.match(8))break;let s=this.startNode(),r=this.state.value;if(e.has(r)&&this.raise(u.ModuleAttributesWithDuplicateKeys,{at:this.state.startLoc,key:r}),e.add(r),this.match(129)?s.key=this.parseStringLiteral(r):s.key=this.parseIdentifier(!0),this.expect(14),!this.match(129))throw this.raise(u.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,\"ImportAttribute\"),t.push(s)}while(this.eat(12));return t}maybeParseModuleAttributes(){if(this.match(76)&&!this.hasPrecedingLineBreak())this.expectPlugin(\"moduleAttributes\"),this.next();else return this.hasPlugin(\"moduleAttributes\")?[]:null;let t=[],e=new Set;do{let s=this.startNode();if(s.key=this.parseIdentifier(!0),s.key.name!==\"type\"&&this.raise(u.ModuleAttributeDifferentFromType,{at:s.key}),e.has(s.key.name)&&this.raise(u.ModuleAttributesWithDuplicateKeys,{at:s.key,key:s.key.name}),e.add(s.key.name),this.expect(14),!this.match(129))throw this.raise(u.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,\"ImportAttribute\"),t.push(s)}while(this.eat(12));return t}maybeParseImportAssertions(){if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.expectPlugin(\"importAssertions\"),this.next();else return this.hasPlugin(\"importAssertions\")?[]:null;this.eat(5);let t=this.parseAssertEntries();return this.eat(8),t}maybeParseDefaultImportSpecifier(t){return this.shouldParseDefaultImport(t)?(this.parseImportSpecifierLocal(t,this.startNode(),\"ImportDefaultSpecifier\"),!0):!1}maybeParseStarImportSpecifier(t){if(this.match(55)){let e=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(t,e,\"ImportNamespaceSpecifier\"),!0}return!1}parseNamedImportSpecifiers(t){let e=!0;for(this.expect(5);!this.eat(8);){if(e)e=!1;else{if(this.eat(14))throw this.raise(u.DestructureNamedImport,{at:this.state.startLoc});if(this.expect(12),this.eat(8))break}let s=this.startNode(),r=this.match(129),i=this.isContextual(126);s.imported=this.parseModuleExportName();let a=this.parseImportSpecifier(s,r,t.importKind===\"type\"||t.importKind===\"typeof\",i);t.specifiers.push(a)}}parseImportSpecifier(t,e,s,r){if(this.eatContextual(93))t.local=this.parseIdentifier();else{let{imported:i}=t;if(e)throw this.raise(u.ImportBindingIsString,{at:t,importName:i.value});this.checkReservedWord(i.name,t.loc.start,!0,!0),t.local||(t.local=ge(i))}return this.finishImportSpecifier(t,\"ImportSpecifier\")}isThisParam(t){return t.type===\"Identifier\"&&t.name===\"this\"}},Gr=class extends tl{constructor(t,e){t=Gh(t),super(t,e),this.options=t,this.initializeScopes(),this.plugins=sl(this.options.plugins),this.filename=t.sourceFilename}getScopeHandler(){return hs}parse(){this.enterInitialScopes();let t=this.startNode(),e=this.startNode();return this.nextToken(),t.errors=null,this.parseTopLevel(t,e),t.errors=this.state.errors,t}};function sl(t){let e=new Map;for(let s of t){let[r,i]=Array.isArray(s)?s:[s,{}];e.has(r)||e.set(r,i||{})}return e}function rl(t,e){var s;if(((s=e)==null?void 0:s.sourceType)===\"unambiguous\"){e=Object.assign({},e);try{e.sourceType=\"module\";let r=Ye(e,t),i=r.parse();if(r.sawUnambiguousESM)return i;if(r.ambiguousScriptDifferentAst)try{return e.sourceType=\"script\",Ye(e,t).parse()}catch{}else i.program.sourceType=\"script\";return i}catch(r){try{return e.sourceType=\"script\",Ye(e,t).parse()}catch{}throw r}}else return Ye(e,t).parse()}function il(t,e){let s=Ye(e,t);return s.options.strictMode&&(s.state.strict=!0),s.getExpression()}function al(t){let e={};for(let s of Object.keys(t))e[s]=fe(t[s]);return e}var nl=al(bo);function Ye(t,e){let s=Gr;return t!=null&&t.plugins&&(Hh(t.plugins),s=ol(t.plugins)),new s(t,e)}var Xr={};function ol(t){let e=Wh.filter(i=>ee(t,i)),s=e.join(\"/\"),r=Xr[s];if(!r){r=Gr;for(let i of e)r=zr[i](r);Xr[s]=r}return r}h.parse=rl,h.parseExpression=il,h.tokTypes=nl}}),Pf=H({\"src/language-js/parse/json.js\"(h,l){\"use strict\";V();var p=fo(),d=nr(),m=yo(),A=xo();function g(){let E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{allowComments:L=!0}=E;return function(F){let{parseExpression:W}=Po(),Y;try{Y=W(F,{tokens:!0,ranges:!0})}catch(M){throw A(M)}if(!L&&p(Y.comments))throw x(Y.comments[0],\"Comment\");return T(Y),Y}}function x(E,L){let[R,F]=[E.loc.start,E.loc.end].map(W=>{let{line:Y,column:M}=W;return{line:Y,column:M+1}});return d(\"\".concat(L,\" is not allowed in JSON.\"),{start:R,end:F})}function T(E){switch(E.type){case\"ArrayExpression\":for(let L of E.elements)L!==null&&T(L);return;case\"ObjectExpression\":for(let L of E.properties)T(L);return;case\"ObjectProperty\":if(E.computed)throw x(E.key,\"Computed key\");if(E.shorthand)throw x(E.key,\"Shorthand property\");E.key.type!==\"Identifier\"&&T(E.key),T(E.value);return;case\"UnaryExpression\":{let{operator:L,argument:R}=E;if(L!==\"+\"&&L!==\"-\")throw x(E,\"Operator '\".concat(E.operator,\"'\"));if(R.type===\"NumericLiteral\"||R.type===\"Identifier\"&&(R.name===\"Infinity\"||R.name===\"NaN\"))return;throw x(R,\"Operator '\".concat(L,\"' before '\").concat(R.type,\"'\"))}case\"Identifier\":if(E.name!==\"Infinity\"&&E.name!==\"NaN\"&&E.name!==\"undefined\")throw x(E,\"Identifier '\".concat(E.name,\"'\"));return;case\"TemplateLiteral\":if(p(E.expressions))throw x(E.expressions[0],\"'TemplateLiteral' with expression\");for(let L of E.quasis)T(L);return;case\"NullLiteral\":case\"BooleanLiteral\":case\"NumericLiteral\":case\"StringLiteral\":case\"TemplateElement\":return;default:throw x(E,\"'\".concat(E.type,\"'\"))}}var k=g(),D={json:m({parse:k,hasPragma(){return!0}}),json5:m(k),\"json-stringify\":m({parse:g({allowComments:!1}),astFormat:\"estree-json\"})};l.exports=D}});V();var Tf=ef(),Ef=Qn(),Cf=af(),ze=yo(),bf=xo(),vf=Af(),Sf=Pf(),wf={sourceType:\"module\",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,plugins:[\"doExpressions\",\"exportDefaultFrom\",\"functionBind\",\"functionSent\",\"throwExpressions\",\"partialApplication\",[\"decorators\",{decoratorsBeforeExport:!1}],\"importAssertions\",\"decimal\",\"moduleBlocks\",\"asyncDoExpressions\",\"regexpUnicodeSets\",\"destructuringPrivate\",\"decoratorAutoAccessors\"],tokens:!0,ranges:!0},Nf=[\"recordAndTuple\",{syntaxType:\"hash\"}],Wn=\"v8intrinsic\",Gn=[[\"pipelineOperator\",{proposal:\"hack\",topicToken:\"%\"}],[\"pipelineOperator\",{proposal:\"minimal\"}],[\"pipelineOperator\",{proposal:\"fsharp\"}]],ue=function(h){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wf;return Object.assign(Object.assign({},l),{},{plugins:[...l.plugins,...h]})},If=/@(?:no)?flow\\b/;function kf(h,l){if(l.filepath&&l.filepath.endsWith(\".js.flow\"))return!0;let p=Ef(h);p&&(h=h.slice(p.length));let d=Cf(h,0);return d!==!1&&(h=h.slice(0,d)),If.test(h)}function Df(h,l,p){let m=Po()[h](l,p),A=m.errors.find(g=>!Rf.has(g.reasonCode));if(A)throw A;return m}function Ke(h){for(var l=arguments.length,p=new Array(l>1?l-1:0),d=1;d2&&arguments[2]!==void 0?arguments[2]:{};if((g.parser===\"babel\"||g.parser===\"__babel_estree\")&&kf(m,g))return g.parser=\"babel-flow\",To(m,A,g);let x=p;g.__babelSourceType===\"script\"&&(x=x.map(E=>Object.assign(Object.assign({},E),{},{sourceType:\"script\"}))),/#[[{]/.test(m)&&(x=x.map(E=>ue([Nf],E)));let T=/%[A-Z]/.test(m);m.includes(\"|>\")?x=(T?[...Gn,Wn]:Gn).flatMap(L=>x.map(R=>ue([L],R))):T&&(x=x.map(E=>ue([Wn],E)));let{result:k,error:D}=Tf(...x.map(E=>()=>Df(h,m,E)));if(!k)throw bf(D);return g.originalText=m,vf(k,g)}}var Ff=Ke(\"parse\",ue([\"jsx\",\"flow\"])),To=Ke(\"parse\",ue([\"jsx\",[\"flow\",{all:!0,enums:!0}]])),Lf=Ke(\"parse\",ue([\"jsx\",\"typescript\"]),ue([\"typescript\"])),Of=Ke(\"parse\",ue([\"jsx\",\"flow\",\"estree\"])),Bf=Ke(\"parseExpression\",ue([\"jsx\"])),Mf=Ke(\"parseExpression\",ue([\"typescript\"])),Rf=new Set([\"StrictNumericEscape\",\"StrictWith\",\"StrictOctalLiteral\",\"StrictDelete\",\"StrictEvalArguments\",\"StrictEvalArgumentsBinding\",\"StrictFunction\",\"EmptyTypeArguments\",\"EmptyTypeParameters\",\"ConstructorHasTypeParameters\",\"UnsupportedParameterPropertyKind\",\"UnexpectedParameterModifier\",\"MixedLabeledAndUnlabeledElements\",\"InvalidTupleMemberLabel\",\"NonClassMethodPropertyHasAbstractModifer\",\"ReadonlyForMethodSignature\",\"ClassMethodHasDeclare\",\"ClassMethodHasReadonly\",\"InvalidModifierOnTypeMember\",\"DuplicateAccessibilityModifier\",\"IndexSignatureHasDeclare\",\"DecoratorExportClass\",\"ParamDupe\",\"InvalidDecimal\",\"RestTrailingComma\",\"UnsupportedParameterDecorator\",\"UnterminatedJsxContent\",\"UnexpectedReservedWord\",\"ModuleAttributesWithDuplicateKeys\",\"LineTerminatorBeforeArrow\",\"InvalidEscapeSequenceTemplate\",\"NonAbstractClassHasAbstractMethod\",\"UnsupportedPropertyDecorator\",\"OptionalTypeBeforeRequired\",\"PatternIsOptional\",\"OptionalBindingPattern\",\"DeclareClassFieldHasInitializer\",\"TypeImportCannotSpecifyDefaultAndNamed\",\"DeclareFunctionHasImplementation\",\"ConstructorClassField\",\"VarRedeclaration\",\"InvalidPrivateFieldResolution\",\"DuplicateExport\"]),Xn=ze(Ff),Jn=ze(Lf),Yn=ze(Bf),jf=ze(Mf);Eo.exports={parsers:Object.assign(Object.assign({babel:Xn,\"babel-flow\":ze(To),\"babel-ts\":Jn},Sf),{},{__js_expression:Yn,__vue_expression:Yn,__vue_ts_expression:jf,__vue_event_binding:Xn,__vue_ts_event_binding:Jn,__babel_estree:ze(Of)})}});return qf();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.espree=e()}})(function(){\"use strict\";var S=(n,o)=>()=>(o||n((o={exports:{}}).exports,o),o.exports);var $=S((Dh,qr)=>{var Ze=function(n){return n&&n.Math==Math&&n};qr.exports=Ze(typeof globalThis==\"object\"&&globalThis)||Ze(typeof window==\"object\"&&window)||Ze(typeof self==\"object\"&&self)||Ze(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var ye=S((Oh,Mr)=>{Mr.exports=function(n){try{return!!n()}catch{return!0}}});var _e=S((Lh,Ur)=>{var tn=ye();Ur.exports=!tn(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Ct=S((Vh,zr)=>{var rn=ye();zr.exports=!rn(function(){var n=function(){}.bind();return typeof n!=\"function\"||n.hasOwnProperty(\"prototype\")})});var et=S((Rh,Wr)=>{var sn=Ct(),$e=Function.prototype.call;Wr.exports=sn?$e.bind($e):function(){return $e.apply($e,arguments)}});var Hr=S(Xr=>{\"use strict\";var Gr={}.propertyIsEnumerable,Kr=Object.getOwnPropertyDescriptor,an=Kr&&!Gr.call({1:2},1);Xr.f=an?function(o){var u=Kr(this,o);return!!u&&u.enumerable}:Gr});var Et=S((qh,Jr)=>{Jr.exports=function(n,o){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:o}}});var ce=S((Mh,Zr)=>{var Yr=Ct(),Qr=Function.prototype,nn=Qr.bind,bt=Qr.call,on=Yr&&nn.bind(bt,bt);Zr.exports=Yr?function(n){return n&&on(n)}:function(n){return n&&function(){return bt.apply(n,arguments)}}});var ti=S((Uh,ei)=>{var $r=ce(),un=$r({}.toString),hn=$r(\"\".slice);ei.exports=function(n){return hn(un(n),8,-1)}});var ii=S((zh,ri)=>{var ln=$(),cn=ce(),pn=ye(),fn=ti(),_t=ln.Object,dn=cn(\"\".split);ri.exports=pn(function(){return!_t(\"z\").propertyIsEnumerable(0)})?function(n){return fn(n)==\"String\"?dn(n,\"\"):_t(n)}:_t});var St=S((Wh,si)=>{var mn=$(),vn=mn.TypeError;si.exports=function(n){if(n==null)throw vn(\"Can't call method on \"+n);return n}});var tt=S((Gh,ai)=>{var gn=ii(),xn=St();ai.exports=function(n){return gn(xn(n))}});var pe=S((Kh,ni)=>{ni.exports=function(n){return typeof n==\"function\"}});var Ie=S((Xh,oi)=>{var yn=pe();oi.exports=function(n){return typeof n==\"object\"?n!==null:yn(n)}});var rt=S((Hh,ui)=>{var wt=$(),An=pe(),Cn=function(n){return An(n)?n:void 0};ui.exports=function(n,o){return arguments.length<2?Cn(wt[n]):wt[n]&&wt[n][o]}});var li=S((Jh,hi)=>{var En=ce();hi.exports=En({}.isPrototypeOf)});var pi=S((Yh,ci)=>{var bn=rt();ci.exports=bn(\"navigator\",\"userAgent\")||\"\"});var yi=S((Qh,xi)=>{var gi=$(),kt=pi(),fi=gi.process,di=gi.Deno,mi=fi&&fi.versions||di&&di.version,vi=mi&&mi.v8,he,it;vi&&(he=vi.split(\".\"),it=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!it&&kt&&(he=kt.match(/Edge\\/(\\d+)/),(!he||he[1]>=74)&&(he=kt.match(/Chrome\\/(\\d+)/),he&&(it=+he[1])));xi.exports=it});var Ft=S((Zh,Ci)=>{var Ai=yi(),_n=ye();Ci.exports=!!Object.getOwnPropertySymbols&&!_n(function(){var n=Symbol();return!String(n)||!(Object(n)instanceof Symbol)||!Symbol.sham&&Ai&&Ai<41})});var Bt=S(($h,Ei)=>{var Sn=Ft();Ei.exports=Sn&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Tt=S((el,bi)=>{var wn=$(),kn=rt(),Fn=pe(),Bn=li(),Tn=Bt(),In=wn.Object;bi.exports=Tn?function(n){return typeof n==\"symbol\"}:function(n){var o=kn(\"Symbol\");return Fn(o)&&Bn(o.prototype,In(n))}});var Si=S((tl,_i)=>{var Pn=$(),Nn=Pn.String;_i.exports=function(n){try{return Nn(n)}catch{return\"Object\"}}});var ki=S((rl,wi)=>{var Dn=$(),On=pe(),Ln=Si(),Vn=Dn.TypeError;wi.exports=function(n){if(On(n))return n;throw Vn(Ln(n)+\" is not a function\")}});var Bi=S((il,Fi)=>{var Rn=ki();Fi.exports=function(n,o){var u=n[o];return u==null?void 0:Rn(u)}});var Ii=S((sl,Ti)=>{var jn=$(),It=et(),Pt=pe(),Nt=Ie(),qn=jn.TypeError;Ti.exports=function(n,o){var u,l;if(o===\"string\"&&Pt(u=n.toString)&&!Nt(l=It(u,n))||Pt(u=n.valueOf)&&!Nt(l=It(u,n))||o!==\"string\"&&Pt(u=n.toString)&&!Nt(l=It(u,n)))return l;throw qn(\"Can't convert object to primitive value\")}});var Ni=S((al,Pi)=>{Pi.exports=!1});var st=S((nl,Oi)=>{var Di=$(),Mn=Object.defineProperty;Oi.exports=function(n,o){try{Mn(Di,n,{value:o,configurable:!0,writable:!0})}catch{Di[n]=o}return o}});var at=S((ol,Vi)=>{var Un=$(),zn=st(),Li=\"__core-js_shared__\",Wn=Un[Li]||zn(Li,{});Vi.exports=Wn});var Dt=S((ul,ji)=>{var Gn=Ni(),Ri=at();(ji.exports=function(n,o){return Ri[n]||(Ri[n]=o!==void 0?o:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:Gn?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var Mi=S((hl,qi)=>{var Kn=$(),Xn=St(),Hn=Kn.Object;qi.exports=function(n){return Hn(Xn(n))}});var Ae=S((ll,Ui)=>{var Jn=ce(),Yn=Mi(),Qn=Jn({}.hasOwnProperty);Ui.exports=Object.hasOwn||function(o,u){return Qn(Yn(o),u)}});var Ot=S((cl,zi)=>{var Zn=ce(),$n=0,eo=Math.random(),to=Zn(1 .toString);zi.exports=function(n){return\"Symbol(\"+(n===void 0?\"\":n)+\")_\"+to(++$n+eo,36)}});var Ji=S((pl,Hi)=>{var ro=$(),io=Dt(),Wi=Ae(),so=Ot(),Gi=Ft(),Xi=Bt(),Pe=io(\"wks\"),Se=ro.Symbol,Ki=Se&&Se.for,ao=Xi?Se:Se&&Se.withoutSetter||so;Hi.exports=function(n){if(!Wi(Pe,n)||!(Gi||typeof Pe[n]==\"string\")){var o=\"Symbol.\"+n;Gi&&Wi(Se,n)?Pe[n]=Se[n]:Xi&&Ki?Pe[n]=Ki(o):Pe[n]=ao(o)}return Pe[n]}});var $i=S((fl,Zi)=>{var no=$(),oo=et(),Yi=Ie(),Qi=Tt(),uo=Bi(),ho=Ii(),lo=Ji(),co=no.TypeError,po=lo(\"toPrimitive\");Zi.exports=function(n,o){if(!Yi(n)||Qi(n))return n;var u=uo(n,po),l;if(u){if(o===void 0&&(o=\"default\"),l=oo(u,n,o),!Yi(l)||Qi(l))return l;throw co(\"Can't convert object to primitive value\")}return o===void 0&&(o=\"number\"),ho(n,o)}});var Lt=S((dl,es)=>{var fo=$i(),mo=Tt();es.exports=function(n){var o=fo(n,\"string\");return mo(o)?o:o+\"\"}});var is=S((ml,rs)=>{var vo=$(),ts=Ie(),Vt=vo.document,go=ts(Vt)&&ts(Vt.createElement);rs.exports=function(n){return go?Vt.createElement(n):{}}});var Rt=S((vl,ss)=>{var xo=_e(),yo=ye(),Ao=is();ss.exports=!xo&&!yo(function(){return Object.defineProperty(Ao(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var jt=S(ns=>{var Co=_e(),Eo=et(),bo=Hr(),_o=Et(),So=tt(),wo=Lt(),ko=Ae(),Fo=Rt(),as=Object.getOwnPropertyDescriptor;ns.f=Co?as:function(o,u){if(o=So(o),u=wo(u),Fo)try{return as(o,u)}catch{}if(ko(o,u))return _o(!Eo(bo.f,o,u),o[u])}});var us=S((xl,os)=>{var Bo=_e(),To=ye();os.exports=Bo&&To(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var qt=S((yl,ls)=>{var hs=$(),Io=Ie(),Po=hs.String,No=hs.TypeError;ls.exports=function(n){if(Io(n))return n;throw No(Po(n)+\" is not an object\")}});var Gt=S(ps=>{var Do=$(),Oo=_e(),Lo=Rt(),Vo=us(),nt=qt(),cs=Lt(),Ro=Do.TypeError,Mt=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,Ut=\"enumerable\",zt=\"configurable\",Wt=\"writable\";ps.f=Oo?Vo?function(o,u,l){if(nt(o),u=cs(u),nt(l),typeof o==\"function\"&&u===\"prototype\"&&\"value\"in l&&Wt in l&&!l[Wt]){var m=jo(o,u);m&&m[Wt]&&(o[u]=l.value,l={configurable:zt in l?l[zt]:m[zt],enumerable:Ut in l?l[Ut]:m[Ut],writable:!1})}return Mt(o,u,l)}:Mt:function(o,u,l){if(nt(o),u=cs(u),nt(l),Lo)try{return Mt(o,u,l)}catch{}if(\"get\"in l||\"set\"in l)throw Ro(\"Accessors not supported\");return\"value\"in l&&(o[u]=l.value),o}});var ot=S((Cl,fs)=>{var qo=_e(),Mo=Gt(),Uo=Et();fs.exports=qo?function(n,o,u){return Mo.f(n,o,Uo(1,u))}:function(n,o,u){return n[o]=u,n}});var Xt=S((El,ds)=>{var zo=ce(),Wo=pe(),Kt=at(),Go=zo(Function.toString);Wo(Kt.inspectSource)||(Kt.inspectSource=function(n){return Go(n)});ds.exports=Kt.inspectSource});var gs=S((bl,vs)=>{var Ko=$(),Xo=pe(),Ho=Xt(),ms=Ko.WeakMap;vs.exports=Xo(ms)&&/native code/.test(Ho(ms))});var As=S((_l,ys)=>{var Jo=Dt(),Yo=Ot(),xs=Jo(\"keys\");ys.exports=function(n){return xs[n]||(xs[n]=Yo(n))}});var Ht=S((Sl,Cs)=>{Cs.exports={}});var ks=S((wl,ws)=>{var Qo=gs(),Ss=$(),Jt=ce(),Zo=Ie(),$o=ot(),Yt=Ae(),Qt=at(),eu=As(),tu=Ht(),Es=\"Object already initialized\",$t=Ss.TypeError,ru=Ss.WeakMap,ut,qe,ht,iu=function(n){return ht(n)?qe(n):ut(n,{})},su=function(n){return function(o){var u;if(!Zo(o)||(u=qe(o)).type!==n)throw $t(\"Incompatible receiver, \"+n+\" required\");return u}};Qo||Qt.state?(Ce=Qt.state||(Qt.state=new ru),bs=Jt(Ce.get),Zt=Jt(Ce.has),_s=Jt(Ce.set),ut=function(n,o){if(Zt(Ce,n))throw new $t(Es);return o.facade=n,_s(Ce,n,o),o},qe=function(n){return bs(Ce,n)||{}},ht=function(n){return Zt(Ce,n)}):(we=eu(\"state\"),tu[we]=!0,ut=function(n,o){if(Yt(n,we))throw new $t(Es);return o.facade=n,$o(n,we,o),o},qe=function(n){return Yt(n,we)?n[we]:{}},ht=function(n){return Yt(n,we)});var Ce,bs,Zt,_s,we;ws.exports={set:ut,get:qe,has:ht,enforce:iu,getterFor:su}});var Ts=S((kl,Bs)=>{var er=_e(),au=Ae(),Fs=Function.prototype,nu=er&&Object.getOwnPropertyDescriptor,tr=au(Fs,\"name\"),ou=tr&&function(){}.name===\"something\",uu=tr&&(!er||er&&nu(Fs,\"name\").configurable);Bs.exports={EXISTS:tr,PROPER:ou,CONFIGURABLE:uu}});var Os=S((Fl,Ds)=>{var hu=$(),Is=pe(),lu=Ae(),Ps=ot(),cu=st(),pu=Xt(),Ns=ks(),fu=Ts().CONFIGURABLE,du=Ns.get,mu=Ns.enforce,vu=String(String).split(\"String\");(Ds.exports=function(n,o,u,l){var m=l?!!l.unsafe:!1,E=l?!!l.enumerable:!1,y=l?!!l.noTargetGet:!1,A=l&&l.name!==void 0?l.name:o,b;if(Is(u)&&(String(A).slice(0,7)===\"Symbol(\"&&(A=\"[\"+String(A).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!lu(u,\"name\")||fu&&u.name!==A)&&Ps(u,\"name\",A),b=mu(u),b.source||(b.source=vu.join(typeof A==\"string\"?A:\"\"))),n===hu){E?n[o]=u:cu(o,u);return}else m?!y&&n[o]&&(E=!0):delete n[o];E?n[o]=u:Ps(n,o,u)})(Function.prototype,\"toString\",function(){return Is(this)&&du(this).source||pu(this)})});var rr=S((Bl,Ls)=>{var gu=Math.ceil,xu=Math.floor;Ls.exports=function(n){var o=+n;return o!==o||o===0?0:(o>0?xu:gu)(o)}});var Rs=S((Tl,Vs)=>{var yu=rr(),Au=Math.max,Cu=Math.min;Vs.exports=function(n,o){var u=yu(n);return u<0?Au(u+o,0):Cu(u,o)}});var qs=S((Il,js)=>{var Eu=rr(),bu=Math.min;js.exports=function(n){return n>0?bu(Eu(n),9007199254740991):0}});var Us=S((Pl,Ms)=>{var _u=qs();Ms.exports=function(n){return _u(n.length)}});var Gs=S((Nl,Ws)=>{var Su=tt(),wu=Rs(),ku=Us(),zs=function(n){return function(o,u,l){var m=Su(o),E=ku(m),y=wu(l,E),A;if(n&&u!=u){for(;E>y;)if(A=m[y++],A!=A)return!0}else for(;E>y;y++)if((n||y in m)&&m[y]===u)return n||y||0;return!n&&-1}};Ws.exports={includes:zs(!0),indexOf:zs(!1)}});var Hs=S((Dl,Xs)=>{var Fu=ce(),ir=Ae(),Bu=tt(),Tu=Gs().indexOf,Iu=Ht(),Ks=Fu([].push);Xs.exports=function(n,o){var u=Bu(n),l=0,m=[],E;for(E in u)!ir(Iu,E)&&ir(u,E)&&Ks(m,E);for(;o.length>l;)ir(u,E=o[l++])&&(~Tu(m,E)||Ks(m,E));return m}});var Ys=S((Ol,Js)=>{Js.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var Zs=S(Qs=>{var Pu=Hs(),Nu=Ys(),Du=Nu.concat(\"length\",\"prototype\");Qs.f=Object.getOwnPropertyNames||function(o){return Pu(o,Du)}});var ea=S($s=>{$s.f=Object.getOwnPropertySymbols});var ra=S((Rl,ta)=>{var Ou=rt(),Lu=ce(),Vu=Zs(),Ru=ea(),ju=qt(),qu=Lu([].concat);ta.exports=Ou(\"Reflect\",\"ownKeys\")||function(o){var u=Vu.f(ju(o)),l=Ru.f;return l?qu(u,l(o)):u}});var aa=S((jl,sa)=>{var ia=Ae(),Mu=ra(),Uu=jt(),zu=Gt();sa.exports=function(n,o,u){for(var l=Mu(o),m=zu.f,E=Uu.f,y=0;y{var Wu=ye(),Gu=pe(),Ku=/#|\\.prototype\\./,Me=function(n,o){var u=Hu[Xu(n)];return u==Yu?!0:u==Ju?!1:Gu(o)?Wu(o):!!o},Xu=Me.normalize=function(n){return String(n).replace(Ku,\".\").toLowerCase()},Hu=Me.data={},Ju=Me.NATIVE=\"N\",Yu=Me.POLYFILL=\"P\";na.exports=Me});var ha=S((Ml,ua)=>{var sr=$(),Qu=jt().f,Zu=ot(),$u=Os(),eh=st(),th=aa(),rh=oa();ua.exports=function(n,o){var u=n.target,l=n.global,m=n.stat,E,y,A,b,g,V;if(l?y=sr:m?y=sr[u]||eh(u,{}):y=(sr[u]||{}).prototype,y)for(A in o){if(g=o[A],n.noTargetGet?(V=Qu(y,A),b=V&&V.value):b=y[A],E=rh(l?A:u+(m?\".\":\"#\")+A,n.forced),!E&&b!==void 0){if(typeof g==typeof b)continue;th(g,b)}(n.sham||b&&b.sham)&&Zu(g,\"sham\",!0),$u(y,A,g,n)}}});var la=S(()=>{var ih=ha(),sh=$();ih({global:!0},{globalThis:sh})});var ca=S(()=>{la()});var Ph=S((Xl,Na)=>{ca();var ur=Object.defineProperty,ah=Object.getOwnPropertyDescriptor,hr=Object.getOwnPropertyNames,nh=Object.prototype.hasOwnProperty,pa=(n,o)=>function(){return n&&(o=(0,n[hr(n)[0]])(n=0)),o},Y=(n,o)=>function(){return o||(0,n[hr(n)[0]])((o={exports:{}}).exports,o),o.exports},oh=(n,o)=>{for(var u in o)ur(n,u,{get:o[u],enumerable:!0})},uh=(n,o,u,l)=>{if(o&&typeof o==\"object\"||typeof o==\"function\")for(let m of hr(o))!nh.call(n,m)&&m!==u&&ur(n,m,{get:()=>o[m],enumerable:!(l=ah(o,m))||l.enumerable});return n},hh=n=>uh(ur({},\"__esModule\",{value:!0}),n),J=pa({\"\"(){}}),lr=Y({\"src/common/parser-create-error.js\"(n,o){\"use strict\";J();function u(l,m){let E=new SyntaxError(l+\" (\"+m.start.line+\":\"+m.start.column+\")\");return E.loc=m,E}o.exports=u}}),fa=Y({\"src/utils/try-combinations.js\"(n,o){\"use strict\";J();function u(){let l;for(var m=arguments.length,E=new Array(m),y=0;yor,arch:()=>lh,cpus:()=>Ca,default:()=>wa,endianness:()=>ma,freemem:()=>ya,getNetworkInterfaces:()=>Sa,hostname:()=>va,loadavg:()=>ga,networkInterfaces:()=>_a,platform:()=>ch,release:()=>ba,tmpDir:()=>ar,tmpdir:()=>nr,totalmem:()=>Aa,type:()=>Ea,uptime:()=>xa});function ma(){if(typeof lt>\"u\"){var n=new ArrayBuffer(2),o=new Uint8Array(n),u=new Uint16Array(n);if(o[0]=1,o[1]=2,u[0]===258)lt=\"BE\";else if(u[0]===513)lt=\"LE\";else throw new Error(\"unable to figure out endianess\")}return lt}function va(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function ga(){return[]}function xa(){return 0}function ya(){return Number.MAX_VALUE}function Aa(){return Number.MAX_VALUE}function Ca(){return[]}function Ea(){return\"Browser\"}function ba(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function _a(){}function Sa(){}function lh(){return\"javascript\"}function ch(){return\"browser\"}function ar(){return\"/tmp\"}var lt,nr,or,wa,ph=pa({\"node-modules-polyfills:os\"(){J(),nr=ar,or=`\n`,wa={EOL:or,tmpdir:nr,tmpDir:ar,networkInterfaces:_a,getNetworkInterfaces:Sa,release:ba,type:Ea,cpus:Ca,totalmem:Aa,freemem:ya,uptime:xa,loadavg:ga,hostname:va,endianness:ma}}}),fh=Y({\"node-modules-polyfills-commonjs:os\"(n,o){J();var u=(ph(),hh(da));if(u&&u.default){o.exports=u.default;for(let l in u)o.exports[l]=u[l]}else u&&(o.exports=u)}}),dh=Y({\"node_modules/detect-newline/index.js\"(n,o){\"use strict\";J();var u=l=>{if(typeof l!=\"string\")throw new TypeError(\"Expected a string\");let m=l.match(/(?:\\r?\\n)/g)||[];if(m.length===0)return;let E=m.filter(A=>A===`\\r\n`).length,y=m.length-E;return E>y?`\\r\n`:`\n`};o.exports=u,o.exports.graceful=l=>typeof l==\"string\"&&u(l)||`\n`}}),mh=Y({\"node_modules/jest-docblock/build/index.js\"(n){\"use strict\";J(),Object.defineProperty(n,\"__esModule\",{value:!0}),n.extract=T,n.parse=q,n.parseWithComments=B,n.print=I,n.strip=v;function o(){let C=fh();return o=function(){return C},C}function u(){let C=l(dh());return u=function(){return C},C}function l(C){return C&&C.__esModule?C:{default:C}}var m=/\\*\\/$/,E=/^\\/\\*\\*/,y=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,A=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,b=/^(\\r?\\n)+/,g=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,V=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,R=/(\\r?\\n|^) *\\* ?/g,N=[];function T(C){let H=C.match(y);return H?H[0].trimLeft():\"\"}function v(C){let H=C.match(y);return H&&H[0]?C.substring(H[0].length):C}function q(C){return B(C).pragmas}function B(C){let H=(0,u().default)(C)||o().EOL;C=C.replace(E,\"\").replace(m,\"\").replace(R,\"$1\");let L=\"\";for(;L!==C;)L=C,C=C.replace(g,\"\".concat(H,\"$1 $2\").concat(H));C=C.replace(b,\"\").trimRight();let i=Object.create(null),_=C.replace(V,\"\").replace(b,\"\").trimRight(),P;for(;P=V.exec(C);){let M=P[2].replace(A,\"\");typeof i[P[1]]==\"string\"||Array.isArray(i[P[1]])?i[P[1]]=N.concat(i[P[1]],M):i[P[1]]=M}return{comments:_,pragmas:i}}function I(C){let{comments:H=\"\",pragmas:L={}}=C,i=(0,u().default)(H)||o().EOL,_=\"/**\",P=\" *\",M=\" */\",ee=Object.keys(L),ae=ee.map(ie=>k(ie,L[ie])).reduce((ie,Ne)=>ie.concat(Ne),[]).map(ie=>P+\" \"+ie+i).join(\"\");if(!H){if(ee.length===0)return\"\";if(ee.length===1&&!Array.isArray(L[ee[0]])){let ie=L[ee[0]];return\"\".concat(_,\" \").concat(k(ee[0],ie)[0]).concat(M)}}let te=H.split(i).map(ie=>\"\".concat(P,\" \").concat(ie)).join(i)+i;return _+i+(H?te:\"\")+(H&&ee.length?P+i:\"\")+ae+M}function k(C,H){return N.concat(H).map(L=>\"@\".concat(C,\" \").concat(L).trim())}}}),vh=Y({\"src/common/end-of-line.js\"(n,o){\"use strict\";J();function u(y){let A=y.indexOf(\"\\r\");return A>=0?y.charAt(A+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function l(y){switch(y){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function m(y,A){let b;switch(A){case`\n`:b=/\\n/g;break;case\"\\r\":b=/\\r/g;break;case`\\r\n`:b=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(A),\".\"))}let g=y.match(b);return g?g.length:0}function E(y){return y.replace(/\\r\\n?/g,`\n`)}o.exports={guessEndOfLine:u,convertEndOfLineToChars:l,countEndOfLineChars:m,normalizeEndOfLine:E}}}),gh=Y({\"src/language-js/utils/get-shebang.js\"(n,o){\"use strict\";J();function u(l){if(!l.startsWith(\"#!\"))return\"\";let m=l.indexOf(`\n`);return m===-1?l:l.slice(0,m)}o.exports=u}}),xh=Y({\"src/language-js/pragma.js\"(n,o){\"use strict\";J();var{parseWithComments:u,strip:l,extract:m,print:E}=mh(),{normalizeEndOfLine:y}=vh(),A=gh();function b(R){let N=A(R);N&&(R=R.slice(N.length+1));let T=m(R),{pragmas:v,comments:q}=u(T);return{shebang:N,text:R,pragmas:v,comments:q}}function g(R){let N=Object.keys(b(R).pragmas);return N.includes(\"prettier\")||N.includes(\"format\")}function V(R){let{shebang:N,text:T,pragmas:v,comments:q}=b(R),B=l(T),I=E({pragmas:Object.assign({format:\"\"},v),comments:q.trimStart()});return(N?\"\".concat(N,`\n`):\"\")+y(I)+(B.startsWith(`\n`)?`\n`:`\n\n`)+B}o.exports={hasPragma:g,insertPragma:V}}}),yh=Y({\"src/utils/is-non-empty-array.js\"(n,o){\"use strict\";J();function u(l){return Array.isArray(l)&&l.length>0}o.exports=u}}),ka=Y({\"src/language-js/loc.js\"(n,o){\"use strict\";J();var u=yh();function l(b,g){let{ignoreDecorators:V}=g||{};if(!V){let R=b.declaration&&b.declaration.decorators||b.decorators;if(u(R))return l(R[0])}return b.range?b.range[0]:b.start}function m(b){return b.range?b.range[1]:b.end}function E(b,g){let V=l(b);return Number.isInteger(V)&&V===l(g)}function y(b,g){let V=m(b);return Number.isInteger(V)&&V===m(g)}function A(b,g){return E(b,g)&&y(b,g)}o.exports={locStart:l,locEnd:m,hasSameLocStart:E,hasSameLoc:A}}}),Fa=Y({\"src/language-js/parse/utils/create-parser.js\"(n,o){\"use strict\";J();var{hasPragma:u}=xh(),{locStart:l,locEnd:m}=ka();function E(y){return y=typeof y==\"function\"?{parse:y}:y,Object.assign({astFormat:\"estree\",hasPragma:u,locStart:l,locEnd:m},y)}o.exports=E}}),Ah=Y({\"src/language-js/utils/is-ts-keyword-type.js\"(n,o){\"use strict\";J();function u(l){let{type:m}=l;return m.startsWith(\"TS\")&&m.endsWith(\"Keyword\")}o.exports=u}}),Ch=Y({\"src/language-js/utils/is-block-comment.js\"(n,o){\"use strict\";J();var u=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),l=m=>u.has(m==null?void 0:m.type);o.exports=l}}),Eh=Y({\"src/language-js/utils/is-type-cast-comment.js\"(n,o){\"use strict\";J();var u=Ch();function l(m){return u(m)&&m.value[0]===\"*\"&&/@type\\b/.test(m.value)}o.exports=l}}),bh=Y({\"src/utils/get-last.js\"(n,o){\"use strict\";J();var u=l=>l[l.length-1];o.exports=u}}),Ba=Y({\"src/language-js/parse/postprocess/visit-node.js\"(n,o){\"use strict\";J();function u(l,m){if(Array.isArray(l)){for(let E=0;E{let T=g.get(N);return!T||!R.includes(T)}))&&l(b,\"Leading decorators must be attached to a class declaration\")}function E(A,b){A.kind!==167||A.modifiers&&!A.modifiers.some(R=>R.kind===126)||A.initializer&&b.value===null&&l(b,\"Abstract property cannot have an initializer\")}function y(A,b){let{esTreeNodeToTSNodeMap:g,tsNodeToESTreeNodeMap:V}=b.tsParseResult;u(A,R=>{let N=g.get(R);if(!N)return;let T=V.get(N);T===R&&(m(N,T,V),E(N,T))})}o.exports={throwErrorForInvalidNodes:y}}}),Ia=Y({\"src/language-js/parse/postprocess/index.js\"(n,o){\"use strict\";J();var{locStart:u,locEnd:l}=ka(),m=Ah(),E=Eh(),y=bh(),A=Ba(),{throwErrorForInvalidNodes:b}=_h(),g=Ta();function V(v,q){if(q.parser===\"typescript\"&&/@|abstract/.test(q.originalText)&&b(v,q),q.parser!==\"typescript\"&&q.parser!==\"flow\"&&q.parser!==\"acorn\"&&q.parser!==\"espree\"&&q.parser!==\"meriyah\"){let I=new Set;v=A(v,k=>{k.leadingComments&&k.leadingComments.some(E)&&I.add(u(k))}),v=A(v,k=>{if(k.type===\"ParenthesizedExpression\"){let{expression:C}=k;if(C.type===\"TypeCastExpression\")return C.range=k.range,C;let H=u(k);if(!I.has(H))return C.extra=Object.assign(Object.assign({},C.extra),{},{parenthesized:!0}),C}})}return v=A(v,I=>{switch(I.type){case\"ChainExpression\":return R(I.expression);case\"LogicalExpression\":{if(N(I))return T(I);break}case\"VariableDeclaration\":{let k=y(I.declarations);k&&k.init&&B(I,k);break}case\"TSParenthesizedType\":return m(I.typeAnnotation)||I.typeAnnotation.type===\"TSThisType\"||(I.typeAnnotation.range=[u(I),l(I)]),I.typeAnnotation;case\"TSTypeParameter\":if(typeof I.name==\"string\"){let k=u(I);I.name={type:\"Identifier\",name:I.name,range:[k,k+I.name.length]}}break;case\"ObjectExpression\":if(q.parser===\"typescript\"){let k=I.properties.find(C=>C.type===\"Property\"&&C.value.type===\"TSEmptyBodyFunctionExpression\");k&&g(k.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let k=y(I.expressions);I.range=[u(I),Math.min(l(k),l(I))];break}case\"TopicReference\":q.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:k}=I;if(q.parser===\"meriyah\"&&k&&k.type===\"Identifier\"){let C=q.originalText.slice(u(k),l(k));(C.startsWith('\"')||C.startsWith(\"'\"))&&(I.exported=Object.assign(Object.assign({},I.exported),{},{type:\"Literal\",value:I.exported.name,raw:C}))}break}}}),v;function B(I,k){q.originalText[l(k)]!==\";\"&&(I.range=[u(I),l(k)])}}function R(v){switch(v.type){case\"CallExpression\":v.type=\"OptionalCallExpression\",v.callee=R(v.callee);break;case\"MemberExpression\":v.type=\"OptionalMemberExpression\",v.object=R(v.object);break;case\"TSNonNullExpression\":v.expression=R(v.expression);break}return v}function N(v){return v.type===\"LogicalExpression\"&&v.right.type===\"LogicalExpression\"&&v.operator===v.right.operator}function T(v){return N(v)?T({type:\"LogicalExpression\",operator:v.operator,left:T({type:\"LogicalExpression\",operator:v.operator,left:v.left,right:v.right.left,range:[u(v.left),l(v.right.left)]}),right:v.right.right,range:[u(v),l(v)]}):v}o.exports=V}}),ct=Y({\"node_modules/acorn/dist/acorn.js\"(n,o){J(),function(u,l){typeof n==\"object\"&&typeof o<\"u\"?l(n):typeof define==\"function\"&&define.amd?define([\"exports\"],l):(u=typeof globalThis<\"u\"?globalThis:u||self,l(u.acorn={}))}(n,function(u){\"use strict\";var l={3:\"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",5:\"class enum extends super const export import\",6:\"enum\",strict:\"implements interface let package private protected public static yield\",strictBind:\"eval arguments\"},m=\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\",E={5:m,\"5module\":m+\" export import\",6:m+\" const class extends export import super\"},y=/^in(stanceof)?$/,A=\"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",b=\"\\u200C\\u200D\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\",g=new RegExp(\"[\"+A+\"]\"),V=new RegExp(\"[\"+A+b+\"]\");A=b=null;var R=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],N=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function T(e,t){for(var r=65536,s=0;se)return!1;if(r+=t[s+1],r>=e)return!0}}function v(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&g.test(String.fromCharCode(e)):t===!1?!1:T(e,R)}function q(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&V.test(String.fromCharCode(e)):t===!1?!1:T(e,R)||T(e,N)}var B=function(t,r){r===void 0&&(r={}),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null};function I(e,t){return new B(e,{beforeExpr:!0,binop:t})}var k={beforeExpr:!0},C={startsExpr:!0},H={};function L(e,t){return t===void 0&&(t={}),t.keyword=e,H[e]=new B(e,t)}var i={num:new B(\"num\",C),regexp:new B(\"regexp\",C),string:new B(\"string\",C),name:new B(\"name\",C),privateId:new B(\"privateId\",C),eof:new B(\"eof\"),bracketL:new B(\"[\",{beforeExpr:!0,startsExpr:!0}),bracketR:new B(\"]\"),braceL:new B(\"{\",{beforeExpr:!0,startsExpr:!0}),braceR:new B(\"}\"),parenL:new B(\"(\",{beforeExpr:!0,startsExpr:!0}),parenR:new B(\")\"),comma:new B(\",\",k),semi:new B(\";\",k),colon:new B(\":\",k),dot:new B(\".\"),question:new B(\"?\",k),questionDot:new B(\"?.\"),arrow:new B(\"=>\",k),template:new B(\"template\"),invalidTemplate:new B(\"invalidTemplate\"),ellipsis:new B(\"...\",k),backQuote:new B(\"`\",C),dollarBraceL:new B(\"${\",{beforeExpr:!0,startsExpr:!0}),eq:new B(\"=\",{beforeExpr:!0,isAssign:!0}),assign:new B(\"_=\",{beforeExpr:!0,isAssign:!0}),incDec:new B(\"++/--\",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new B(\"!/~\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:I(\"||\",1),logicalAND:I(\"&&\",2),bitwiseOR:I(\"|\",3),bitwiseXOR:I(\"^\",4),bitwiseAND:I(\"&\",5),equality:I(\"==/!=/===/!==\",6),relational:I(\"/<=/>=\",7),bitShift:I(\"<>/>>>\",8),plusMin:new B(\"+/-\",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:I(\"%\",10),star:I(\"*\",10),slash:I(\"/\",10),starstar:new B(\"**\",{beforeExpr:!0}),coalesce:I(\"??\",1),_break:L(\"break\"),_case:L(\"case\",k),_catch:L(\"catch\"),_continue:L(\"continue\"),_debugger:L(\"debugger\"),_default:L(\"default\",k),_do:L(\"do\",{isLoop:!0,beforeExpr:!0}),_else:L(\"else\",k),_finally:L(\"finally\"),_for:L(\"for\",{isLoop:!0}),_function:L(\"function\",C),_if:L(\"if\"),_return:L(\"return\",k),_switch:L(\"switch\"),_throw:L(\"throw\",k),_try:L(\"try\"),_var:L(\"var\"),_const:L(\"const\"),_while:L(\"while\",{isLoop:!0}),_with:L(\"with\"),_new:L(\"new\",{beforeExpr:!0,startsExpr:!0}),_this:L(\"this\",C),_super:L(\"super\",C),_class:L(\"class\",C),_extends:L(\"extends\",k),_export:L(\"export\"),_import:L(\"import\",C),_null:L(\"null\",C),_true:L(\"true\",C),_false:L(\"false\",C),_in:L(\"in\",{beforeExpr:!0,binop:7}),_instanceof:L(\"instanceof\",{beforeExpr:!0,binop:7}),_typeof:L(\"typeof\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:L(\"void\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:L(\"delete\",{beforeExpr:!0,prefix:!0,startsExpr:!0})},_=/\\r\\n?|\\n|\\u2028|\\u2029/,P=new RegExp(_.source,\"g\");function M(e){return e===10||e===13||e===8232||e===8233}function ee(e,t,r){r===void 0&&(r=e.length);for(var s=t;s=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),w(t.onToken)){var s=t.onToken;t.onToken=function(a){return s.push(a)}}return w(t.onComment)&&(t.onComment=ft(t,t.onComment)),t}function ft(e,t){return function(r,s,a,h,c,d){var x={type:r?\"Block\":\"Line\",value:s,start:a,end:h};e.locations&&(x.loc=new X(this,c,d)),e.ranges&&(x.range=[a,h]),t.push(x)}}var Ee=1,ge=2,De=4,Ue=8,cr=16,pr=32,dt=64,fr=128,Oe=256,mt=Ee|ge|Oe;function vt(e,t){return ge|(e?De:0)|(t?Ue:0)}var ze=0,gt=1,fe=2,dr=3,mr=4,vr=5,Z=function(t,r,s){this.options=t=pt(t),this.sourceFile=t.sourceFile,this.keywords=f(E[t.ecmaVersion>=6?6:t.sourceType===\"module\"?\"5module\":5]);var a=\"\";t.allowReserved!==!0&&(a=l[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType===\"module\"&&(a+=\" await\")),this.reservedWords=f(a);var h=(a?a+\" \":\"\")+l.strict;this.reservedWordsStrict=f(h),this.reservedWordsStrictBind=f(h+\" \"+l.strictBind),this.input=String(r),this.containsEsc=!1,s?(this.pos=s,this.lineStart=this.input.lastIndexOf(`\n`,s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(_).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=i.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType===\"module\",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&t.allowHashBang&&this.input.slice(0,2)===\"#!\"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(Ee),this.regexpState=null,this.privateNameStack=[]},le={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};Z.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},le.inFunction.get=function(){return(this.currentVarScope().flags&ge)>0},le.inGenerator.get=function(){return(this.currentVarScope().flags&Ue)>0&&!this.currentVarScope().inClassFieldInit},le.inAsync.get=function(){return(this.currentVarScope().flags&De)>0&&!this.currentVarScope().inClassFieldInit},le.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e];if(t.inClassFieldInit||t.flags&Oe)return!1;if(t.flags&ge)return(t.flags&De)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},le.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&dt)>0||r||this.options.allowSuperOutsideMethod},le.allowDirectSuper.get=function(){return(this.currentThisScope().flags&fr)>0},le.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},le.allowNewDotTarget.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&(ge|Oe))>0||r},le.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&Oe)>0},Z.extend=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];for(var s=this,a=0;a=,?^&]/.test(a)||a===\"!\"&&this.input.charAt(s+1)===\"=\")}e+=t[0].length,te.lastIndex=e,e+=te.exec(this.input)[0].length,this.input[e]===\";\"&&e++}},se.eat=function(e){return this.type===e?(this.next(),!0):!1},se.isContextual=function(e){return this.type===i.name&&this.value===e&&!this.containsEsc},se.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1},se.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},se.canInsertSemicolon=function(){return this.type===i.eof||this.type===i.braceR||_.test(this.input.slice(this.lastTokEnd,this.start))},se.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},se.semicolon=function(){!this.eat(i.semi)&&!this.insertSemicolon()&&this.unexpected()},se.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},se.expect=function(e){this.eat(e)||this.unexpected()},se.unexpected=function(e){this.raise(e!=null?e:this.start,\"Unexpected token\")};function We(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}se.checkPatternErrors=function(e,t){if(!!e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,\"Comma is not permitted after the rest element\");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,\"Parenthesized pattern\")}},se.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,s=e.doubleProto;if(!t)return r>=0||s>=0;r>=0&&this.raise(r,\"Shorthand property assignments are valid only in destructuring patterns\"),s>=0&&this.raiseRecoverable(s,\"Redefinition of __proto__ property\")},se.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&s<56320)return!0;if(e)return!1;if(s===123)return!0;if(v(s,!0)){for(var a=r+1;q(s=this.input.charCodeAt(a),!0);)++a;if(s===92||s>55295&&s<56320)return!0;var h=this.input.slice(r,a);if(!y.test(h))return!0}return!1},j.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual(\"async\"))return!1;te.lastIndex=this.pos;var e=te.exec(this.input),t=this.pos+e[0].length,r;return!_.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)===\"function\"&&(t+8===this.input.length||!(q(r=this.input.charCodeAt(t+8))||r>55295&&r<56320))},j.parseStatement=function(e,t,r){var s=this.type,a=this.startNode(),h;switch(this.isLet(e)&&(s=i._var,h=\"let\"),s){case i._break:case i._continue:return this.parseBreakContinueStatement(a,s.keyword);case i._debugger:return this.parseDebuggerStatement(a);case i._do:return this.parseDoStatement(a);case i._for:return this.parseForStatement(a);case i._function:return e&&(this.strict||e!==\"if\"&&e!==\"label\")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1,!e);case i._class:return e&&this.unexpected(),this.parseClass(a,!0);case i._if:return this.parseIfStatement(a);case i._return:return this.parseReturnStatement(a);case i._switch:return this.parseSwitchStatement(a);case i._throw:return this.parseThrowStatement(a);case i._try:return this.parseTryStatement(a);case i._const:case i._var:return h=h||this.value,e&&h!==\"var\"&&this.unexpected(),this.parseVarStatement(a,h);case i._while:return this.parseWhileStatement(a);case i._with:return this.parseWithStatement(a);case i.braceL:return this.parseBlock(!0,a);case i.semi:return this.parseEmptyStatement(a);case i._export:case i._import:if(this.options.ecmaVersion>10&&s===i._import){te.lastIndex=this.pos;var c=te.exec(this.input),d=this.pos+c[0].length,x=this.input.charCodeAt(d);if(x===40||x===46)return this.parseExpressionStatement(a,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,\"'import' and 'export' may only appear at the top level\"),this.inModule||this.raise(this.start,\"'import' and 'export' may appear only with 'sourceType: module'\")),s===i._import?this.parseImport(a):this.parseExport(a,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(a,!0,!e);var U=this.value,W=this.parseExpression();return s===i.name&&W.type===\"Identifier\"&&this.eat(i.colon)?this.parseLabeledStatement(a,U,W,e):this.parseExpressionStatement(a,W)}},j.parseBreakContinueStatement=function(e,t){var r=t===\"break\";this.next(),this.eat(i.semi)||this.insertSemicolon()?e.label=null:this.type!==i.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var s=0;s=6?this.eat(i.semi):this.semicolon(),this.finishNode(e,\"DoWhileStatement\")},j.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual(\"await\")?this.lastTokStart:-1;if(this.labels.push(xt),this.enterScope(0),this.expect(i.parenL),this.type===i.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===i._var||this.type===i._const||r){var s=this.startNode(),a=r?\"let\":this.value;return this.next(),this.parseVar(s,!0,a),this.finishNode(s,\"VariableDeclaration\"),(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\"))&&s.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,s)):(t>-1&&this.unexpected(t),this.parseFor(e,s))}var h=this.isContextual(\"let\"),c=!1,d=new We,x=this.parseExpression(t>-1?\"await\":!0,d);return this.type===i._in||(c=this.options.ecmaVersion>=6&&this.isContextual(\"of\"))?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),h&&c&&this.raise(x.start,\"The left-hand side of a for-of loop may not start with 'let'.\"),this.toAssignable(x,!1,d),this.checkLValPattern(x),this.parseForIn(e,x)):(this.checkExpressionErrors(d,!0),t>-1&&this.unexpected(t),this.parseFor(e,x))},j.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,Le|(r?0:yt),!1,t)},j.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(\"if\"),e.alternate=this.eat(i._else)?this.parseStatement(\"if\"):null,this.finishNode(e,\"IfStatement\")},j.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,\"'return' outside of function\"),this.next(),this.eat(i.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,\"ReturnStatement\")},j.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(i.braceL),this.labels.push(Oa),this.enterScope(0);for(var t,r=!1;this.type!==i.braceR;)if(this.type===i._case||this.type===i._default){var s=this.type===i._case;t&&this.finishNode(t,\"SwitchCase\"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),s?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,\"Multiple default clauses\"),r=!0,t.test=null),this.expect(i.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,\"SwitchCase\"),this.next(),this.labels.pop(),this.finishNode(e,\"SwitchStatement\")},j.parseThrowStatement=function(e){return this.next(),_.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,\"Illegal newline after throw\"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,\"ThrowStatement\")};var La=[];j.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===i._catch){var t=this.startNode();if(this.next(),this.eat(i.parenL)){t.param=this.parseBindingAtom();var r=t.param.type===\"Identifier\";this.enterScope(r?pr:0),this.checkLValPattern(t.param,r?mr:fe),this.expect(i.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,\"CatchClause\")}return e.finalizer=this.eat(i._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,\"Missing catch or finally clause\"),this.finishNode(e,\"TryStatement\")},j.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,\"VariableDeclaration\")},j.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(xt),e.body=this.parseStatement(\"while\"),this.labels.pop(),this.finishNode(e,\"WhileStatement\")},j.parseWithStatement=function(e){return this.strict&&this.raise(this.start,\"'with' in strict mode\"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(\"with\"),this.finishNode(e,\"WithStatement\")},j.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,\"EmptyStatement\")},j.parseLabeledStatement=function(e,t,r,s){for(var a=0,h=this.labels;a=0;x--){var U=this.labels[x];if(U.statementStart===e.start)U.statementStart=this.start,U.kind=d;else break}return this.labels.push({name:t,kind:d,statementStart:this.start}),e.body=this.parseStatement(s?s.indexOf(\"label\")===-1?s+\"label\":s:\"label\"),this.labels.pop(),e.label=r,this.finishNode(e,\"LabeledStatement\")},j.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,\"ExpressionStatement\")},j.parseBlock=function(e,t,r){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(i.braceL),e&&this.enterScope(0);this.type!==i.braceR;){var s=this.parseStatement(null);t.body.push(s)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,\"BlockStatement\")},j.parseFor=function(e,t){return e.init=t,this.expect(i.semi),e.test=this.type===i.semi?null:this.parseExpression(),this.expect(i.semi),e.update=this.type===i.parenR?null:this.parseExpression(),this.expect(i.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,\"ForStatement\")},j.parseForIn=function(e,t){var r=this.type===i._in;return this.next(),t.type===\"VariableDeclaration\"&&t.declarations[0].init!=null&&(!r||this.options.ecmaVersion<8||this.strict||t.kind!==\"var\"||t.declarations[0].id.type!==\"Identifier\")&&this.raise(t.start,(r?\"for-in\":\"for-of\")+\" loop variable declaration may not have an initializer\"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(i.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?\"ForInStatement\":\"ForOfStatement\")},j.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r;;){var s=this.startNode();if(this.parseVarId(s,r),this.eat(i.eq)?s.init=this.parseMaybeAssign(t):r===\"const\"&&!(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\"))?this.unexpected():s.id.type!==\"Identifier\"&&!(t&&(this.type===i._in||this.isContextual(\"of\")))?this.raise(this.lastTokEnd,\"Complex binding patterns require an initialization value\"):s.init=null,e.declarations.push(this.finishNode(s,\"VariableDeclarator\")),!this.eat(i.comma))break}return e},j.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,t===\"var\"?gt:fe,!1)};var Le=1,yt=2,gr=4;j.parseFunction=function(e,t,r,s,a){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(this.type===i.star&&t&yt&&this.unexpected(),e.generator=this.eat(i.star)),this.options.ecmaVersion>=8&&(e.async=!!s),t&Le&&(e.id=t&gr&&this.type!==i.name?null:this.parseIdent(),e.id&&!(t&yt)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?gt:fe:dr));var h=this.yieldPos,c=this.awaitPos,d=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(e.async,e.generator)),t&Le||(e.id=this.type===i.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1,a),this.yieldPos=h,this.awaitPos=c,this.awaitIdentPos=d,this.finishNode(e,t&Le?\"FunctionDeclaration\":\"FunctionExpression\")},j.parseFunctionParams=function(e){this.expect(i.parenL),e.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},j.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var s=this.enterClassBody(),a=this.startNode(),h=!1;for(a.body=[],this.expect(i.braceL);this.type!==i.braceR;){var c=this.parseClassElement(e.superClass!==null);c&&(a.body.push(c),c.type===\"MethodDefinition\"&&c.kind===\"constructor\"?(h&&this.raise(c.start,\"Duplicate constructor in the same class\"),h=!0):c.key&&c.key.type===\"PrivateIdentifier\"&&Va(s,c)&&this.raiseRecoverable(c.key.start,\"Identifier '#\"+c.key.name+\"' has already been declared\"))}return this.strict=r,this.next(),e.body=this.finishNode(a,\"ClassBody\"),this.exitClassBody(),this.finishNode(e,t?\"ClassDeclaration\":\"ClassExpression\")},j.parseClassElement=function(e){if(this.eat(i.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),s=\"\",a=!1,h=!1,c=\"method\",d=!1;if(this.eatContextual(\"static\")){if(t>=13&&this.eat(i.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===i.star?d=!0:s=\"static\"}if(r.static=d,!s&&t>=8&&this.eatContextual(\"async\")&&((this.isClassElementNameStart()||this.type===i.star)&&!this.canInsertSemicolon()?h=!0:s=\"async\"),!s&&(t>=9||!h)&&this.eat(i.star)&&(a=!0),!s&&!h&&!a){var x=this.value;(this.eatContextual(\"get\")||this.eatContextual(\"set\"))&&(this.isClassElementNameStart()?c=x:s=x)}if(s?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=s,this.finishNode(r.key,\"Identifier\")):this.parseClassElementName(r),t<13||this.type===i.parenL||c!==\"method\"||a||h){var U=!r.static&&Ge(r,\"constructor\"),W=U&&e;U&&c!==\"method\"&&this.raise(r.key.start,\"Constructor can't have get/set modifier\"),r.kind=U?\"constructor\":c,this.parseClassMethod(r,a,h,W)}else this.parseClassField(r);return r},j.isClassElementNameStart=function(){return this.type===i.name||this.type===i.privateId||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword},j.parseClassElementName=function(e){this.type===i.privateId?(this.value===\"constructor\"&&this.raise(this.start,\"Classes can't have an element named '#constructor'\"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},j.parseClassMethod=function(e,t,r,s){var a=e.key;e.kind===\"constructor\"?(t&&this.raise(a.start,\"Constructor can't be a generator\"),r&&this.raise(a.start,\"Constructor can't be an async method\")):e.static&&Ge(e,\"prototype\")&&this.raise(a.start,\"Classes may not have a static property named prototype\");var h=e.value=this.parseMethod(t,r,s);return e.kind===\"get\"&&h.params.length!==0&&this.raiseRecoverable(h.start,\"getter should have no params\"),e.kind===\"set\"&&h.params.length!==1&&this.raiseRecoverable(h.start,\"setter should have exactly one param\"),e.kind===\"set\"&&h.params[0].type===\"RestElement\"&&this.raiseRecoverable(h.params[0].start,\"Setter cannot use rest params\"),this.finishNode(e,\"MethodDefinition\")},j.parseClassField=function(e){if(Ge(e,\"constructor\")?this.raise(e.key.start,\"Classes can't have a field named 'constructor'\"):e.static&&Ge(e,\"prototype\")&&this.raise(e.key.start,\"Classes can't have a static field named 'prototype'\"),this.eat(i.eq)){var t=this.currentThisScope(),r=t.inClassFieldInit;t.inClassFieldInit=!0,e.value=this.parseMaybeAssign(),t.inClassFieldInit=r}else e.value=null;return this.semicolon(),this.finishNode(e,\"PropertyDefinition\")},j.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(Oe|dt);this.type!==i.braceR;){var r=this.parseStatement(null);e.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,\"StaticBlock\")},j.parseClassId=function(e,t){this.type===i.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,fe,!1)):(t===!0&&this.unexpected(),e.id=null)},j.parseClassSuper=function(e){e.superClass=this.eat(i._extends)?this.parseExprSubscripts(!1):null},j.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},j.exitClassBody=function(){for(var e=this.privateNameStack.pop(),t=e.declared,r=e.used,s=this.privateNameStack.length,a=s===0?null:this.privateNameStack[s-1],h=0;h=11&&(this.eatContextual(\"as\")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual(\"from\"),this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,\"ExportAllDeclaration\");if(this.eat(i._default)){this.checkExport(t,\"default\",this.lastTokStart);var r;if(this.type===i._function||(r=this.isAsyncFunction())){var s=this.startNode();this.next(),r&&this.next(),e.declaration=this.parseFunction(s,Le|gr,!1,r)}else if(this.type===i._class){var a=this.startNode();e.declaration=this.parseClass(a,\"nullableID\")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,\"ExportDefaultDeclaration\")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),e.declaration.type===\"VariableDeclaration\"?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual(\"from\"))this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var h=0,c=e.specifiers;h=13&&this.type===i.string){var e=this.parseLiteral(this.value);return F.test(e.value)&&this.raise(e.start,\"An export name cannot include a lone surrogate.\"),e}return this.parseIdent(!0)},j.adaptDirectivePrologue=function(e){for(var t=0;t=6&&e)switch(e.type){case\"Identifier\":this.inAsync&&e.name===\"await\"&&this.raise(e.start,\"Cannot use 'await' as identifier inside an async function\");break;case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":break;case\"ObjectExpression\":e.type=\"ObjectPattern\",r&&this.checkPatternErrors(r,!0);for(var s=0,a=e.properties;s=8&&!c&&d.name===\"async\"&&!this.canInsertSemicolon()&&this.eat(i._function))return this.overrideContext(Q.f_expr),this.parseFunction(this.startNodeAt(a,h),0,!1,!0,t);if(s&&!this.canInsertSemicolon()){if(this.eat(i.arrow))return this.parseArrowExpression(this.startNodeAt(a,h),[d],!1,t);if(this.options.ecmaVersion>=8&&d.name===\"async\"&&this.type===i.name&&!c&&(!this.potentialArrowInForAwait||this.value!==\"of\"||this.containsEsc))return d=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(i.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,h),[d],!0,t)}return d;case i.regexp:var x=this.value;return r=this.parseLiteral(x.value),r.regex={pattern:x.pattern,flags:x.flags},r;case i.num:case i.string:return this.parseLiteral(this.value);case i._null:case i._true:case i._false:return r=this.startNode(),r.value=this.type===i._null?null:this.type===i._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,\"Literal\");case i.parenL:var U=this.start,W=this.parseParenAndDistinguishExpression(s,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(W)&&(e.parenthesizedAssign=U),e.parenthesizedBind<0&&(e.parenthesizedBind=U)),W;case i.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(i.bracketR,!0,!0,e),this.finishNode(r,\"ArrayExpression\");case i.braceL:return this.overrideContext(Q.b_expr),this.parseObj(!1,e);case i._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case i._class:return this.parseClass(this.startNode(),!1);case i._new:return this.parseNew();case i.backQuote:return this.parseTemplate();case i._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},z.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword import\");var t=this.parseIdent(!0);switch(this.type){case i.parenL:return this.parseDynamicImport(e);case i.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},z.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(i.parenR)){var t=this.start;this.eat(i.comma)&&this.eat(i.parenR)?this.raiseRecoverable(t,\"Trailing comma is not allowed in import()\"):this.unexpected(t)}return this.finishNode(e,\"ImportExpression\")},z.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==\"meta\"&&this.raiseRecoverable(e.property.start,\"The only valid meta property for import is 'import.meta'\"),t&&this.raiseRecoverable(e.start,\"'import.meta' must not contain escaped characters\"),this.options.sourceType!==\"module\"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,\"Cannot use 'import.meta' outside a module\"),this.finishNode(e,\"MetaProperty\")},z.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,\"\")),this.next(),this.finishNode(t,\"Literal\")},z.parseParenExpression=function(){this.expect(i.parenL);var e=this.parseExpression();return this.expect(i.parenR),e},z.parseParenAndDistinguishExpression=function(e,t){var r=this.start,s=this.startLoc,a,h=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var c=this.start,d=this.startLoc,x=[],U=!0,W=!1,re=new We,be=this.yieldPos,je=this.awaitPos,Fe;for(this.yieldPos=0,this.awaitPos=0;this.type!==i.parenR;)if(U?U=!1:this.expect(i.comma),h&&this.afterTrailingComma(i.parenR,!0)){W=!0;break}else if(this.type===i.ellipsis){Fe=this.start,x.push(this.parseParenItem(this.parseRestBinding())),this.type===i.comma&&this.raise(this.start,\"Comma is not permitted after the rest element\");break}else x.push(this.parseMaybeAssign(!1,re,this.parseParenItem));var Qe=this.lastTokEnd,Be=this.lastTokEndLoc;if(this.expect(i.parenR),e&&!this.canInsertSemicolon()&&this.eat(i.arrow))return this.checkPatternErrors(re,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=be,this.awaitPos=je,this.parseParenArrowList(r,s,x,t);(!x.length||W)&&this.unexpected(this.lastTokStart),Fe&&this.unexpected(Fe),this.checkExpressionErrors(re,!0),this.yieldPos=be||this.yieldPos,this.awaitPos=je||this.awaitPos,x.length>1?(a=this.startNodeAt(c,d),a.expressions=x,this.finishNodeAt(a,\"SequenceExpression\",Qe,Be)):a=x[0]}else a=this.parseParenExpression();if(this.options.preserveParens){var Te=this.startNodeAt(r,s);return Te.expression=a,this.finishNode(Te,\"ParenthesizedExpression\")}else return a},z.parseParenItem=function(e){return e},z.parseParenArrowList=function(e,t,r,s){return this.parseArrowExpression(this.startNodeAt(e,t),r,!1,s)};var Ra=[];z.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword new\");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(i.dot)){e.meta=t;var r=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==\"target\"&&this.raiseRecoverable(e.property.start,\"The only valid meta property for new is 'new.target'\"),r&&this.raiseRecoverable(e.start,\"'new.target' must not contain escaped characters\"),this.allowNewDotTarget||this.raiseRecoverable(e.start,\"'new.target' can only be used in functions and class static block\"),this.finishNode(e,\"MetaProperty\")}var s=this.start,a=this.startLoc,h=this.type===i._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),s,a,!0,!1),h&&e.callee.type===\"ImportExpression\"&&this.raise(s,\"Cannot use new with import()\"),this.eat(i.parenL)?e.arguments=this.parseExprList(i.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Ra,this.finishNode(e,\"NewExpression\")},z.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===i.invalidTemplate?(t||this.raiseRecoverable(this.start,\"Bad escape sequence in untagged template literal\"),r.value={raw:this.value,cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\\r\\n?/g,`\n`),cooked:this.value},this.next(),r.tail=this.type===i.backQuote,this.finishNode(r,\"TemplateElement\")},z.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var s=this.parseTemplateElement({isTagged:t});for(r.quasis=[s];!s.tail;)this.type===i.eof&&this.raise(this.pos,\"Unterminated template literal\"),this.expect(i.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(i.braceR),r.quasis.push(s=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,\"TemplateLiteral\")},z.isAsyncProp=function(e){return!e.computed&&e.key.type===\"Identifier\"&&e.key.name===\"async\"&&(this.type===i.name||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===i.star)&&!_.test(this.input.slice(this.lastTokEnd,this.start))},z.parseObj=function(e,t){var r=this.startNode(),s=!0,a={};for(r.properties=[],this.next();!this.eat(i.braceR);){if(s)s=!1;else if(this.expect(i.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(i.braceR))break;var h=this.parseProperty(e,t);e||this.checkPropClash(h,a,t),r.properties.push(h)}return this.finishNode(r,e?\"ObjectPattern\":\"ObjectExpression\")},z.parseProperty=function(e,t){var r=this.startNode(),s,a,h,c;if(this.options.ecmaVersion>=9&&this.eat(i.ellipsis))return e?(r.argument=this.parseIdent(!1),this.type===i.comma&&this.raise(this.start,\"Comma is not permitted after the rest element\"),this.finishNode(r,\"RestElement\")):(this.type===i.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),r.argument=this.parseMaybeAssign(!1,t),this.type===i.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(r,\"SpreadElement\"));this.options.ecmaVersion>=6&&(r.method=!1,r.shorthand=!1,(e||t)&&(h=this.start,c=this.startLoc),e||(s=this.eat(i.star)));var d=this.containsEsc;return this.parsePropertyName(r),!e&&!d&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(r)?(a=!0,s=this.options.ecmaVersion>=9&&this.eat(i.star),this.parsePropertyName(r,t)):a=!1,this.parsePropertyValue(r,e,s,a,h,c,t,d),this.finishNode(r,\"Property\")},z.parsePropertyValue=function(e,t,r,s,a,h,c,d){if((r||s)&&this.type===i.colon&&this.unexpected(),this.eat(i.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,c),e.kind=\"init\";else if(this.options.ecmaVersion>=6&&this.type===i.parenL)t&&this.unexpected(),e.kind=\"init\",e.method=!0,e.value=this.parseMethod(r,s);else if(!t&&!d&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type===\"Identifier\"&&(e.key.name===\"get\"||e.key.name===\"set\")&&this.type!==i.comma&&this.type!==i.braceR&&this.type!==i.eq){(r||s)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var x=e.kind===\"get\"?0:1;if(e.value.params.length!==x){var U=e.value.start;e.kind===\"get\"?this.raiseRecoverable(U,\"getter should have no params\"):this.raiseRecoverable(U,\"setter should have exactly one param\")}else e.kind===\"set\"&&e.value.params[0].type===\"RestElement\"&&this.raiseRecoverable(e.value.params[0].start,\"Setter cannot use rest params\")}else this.options.ecmaVersion>=6&&!e.computed&&e.key.type===\"Identifier\"?((r||s)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name===\"await\"&&!this.awaitIdentPos&&(this.awaitIdentPos=a),e.kind=\"init\",t?e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key)):this.type===i.eq&&c?(c.shorthandAssign<0&&(c.shorthandAssign=this.start),e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected()},z.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(i.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(i.bracketR),e.key;e.computed=!1}return e.key=this.type===i.num||this.type===i.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==\"never\")},z.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},z.parseMethod=function(e,t,r){var s=this.startNode(),a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=e),this.options.ecmaVersion>=8&&(s.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(t,s.generator)|dt|(r?fr:0)),this.expect(i.parenL),s.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1,!0,!1),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(s,\"FunctionExpression\")},z.parseArrowExpression=function(e,t,r,s){var a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.enterScope(vt(r,!1)|cr),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,s),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(e,\"ArrowFunctionExpression\")},z.parseFunctionBody=function(e,t,r,s){var a=t&&this.type!==i.braceL,h=this.strict,c=!1;if(a)e.body=this.parseMaybeAssign(s),e.expression=!0,this.checkParams(e,!1);else{var d=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!h||d)&&(c=this.strictDirective(this.end),c&&d&&this.raiseRecoverable(e.start,\"Illegal 'use strict' directive in function with non-simple parameter list\"));var x=this.labels;this.labels=[],c&&(this.strict=!0),this.checkParams(e,!h&&!c&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,vr),e.body=this.parseBlock(!1,void 0,c&&!h),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=x}this.exitScope()},z.isSimpleParamList=function(e){for(var t=0,r=e;t-1||a.functions.indexOf(e)>-1||a.var.indexOf(e)>-1,a.lexical.push(e),this.inModule&&a.flags&Ee&&delete this.undefinedExports[e]}else if(t===mr){var h=this.currentScope();h.lexical.push(e)}else if(t===dr){var c=this.currentScope();this.treatFunctionsAsVar?s=c.lexical.indexOf(e)>-1:s=c.lexical.indexOf(e)>-1||c.var.indexOf(e)>-1,c.functions.push(e)}else for(var d=this.scopeStack.length-1;d>=0;--d){var x=this.scopeStack[d];if(x.lexical.indexOf(e)>-1&&!(x.flags&pr&&x.lexical[0]===e)||!this.treatFunctionsAsVarInScope(x)&&x.functions.indexOf(e)>-1){s=!0;break}if(x.var.push(e),this.inModule&&x.flags&Ee&&delete this.undefinedExports[e],x.flags&mt)break}s&&this.raiseRecoverable(r,\"Identifier '\"+e+\"' has already been declared\")},xe.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},xe.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},xe.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt)return t}},xe.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt&&!(t.flags&cr))return t}};var Ve=function(t,r,s){this.type=\"\",this.start=r,this.end=0,t.options.locations&&(this.loc=new X(t,s)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[r,0])},Re=Z.prototype;Re.startNode=function(){return new Ve(this,this.start,this.startLoc)},Re.startNodeAt=function(e,t){return new Ve(this,e,t)};function yr(e,t,r,s){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=s),this.options.ranges&&(e.range[1]=r),e}Re.finishNode=function(e,t){return yr.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},Re.finishNodeAt=function(e,t,r,s){return yr.call(this,e,t,r,s)},Re.copyNode=function(e){var t=new Ve(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var Ar=\"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\",Cr=Ar+\" Extended_Pictographic\",Er=Cr,br=Er+\" EBase EComp EMod EPres ExtPict\",qa=br,Ma={9:Ar,10:Cr,11:Er,12:br,13:qa},_r=\"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\",Sr=\"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\",wr=Sr+\" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\",kr=wr+\" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\",Fr=kr+\" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\",Ua=Fr+\" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\",za={9:Sr,10:wr,11:kr,12:Fr,13:Ua},Br={};function Wa(e){var t=Br[e]={binary:f(Ma[e]+\" \"+_r),nonBinary:{General_Category:f(_r),Script:f(za[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var At=0,Tr=[9,10,11,12,13];At=6?\"uy\":\"\")+(t.options.ecmaVersion>=9?\"s\":\"\")+(t.options.ecmaVersion>=13?\"d\":\"\"),this.unicodeProperties=Br[t.options.ecmaVersion>=13?13:t.options.ecmaVersion],this.source=\"\",this.flags=\"\",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=\"\",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};de.prototype.reset=function(t,r,s){var a=s.indexOf(\"u\")!==-1;this.start=t|0,this.source=r+\"\",this.flags=s,this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchN=a&&this.parser.options.ecmaVersion>=9},de.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,\"Invalid regular expression: /\"+this.source+\"/: \"+t)},de.prototype.at=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return-1;var h=s.charCodeAt(t);if(!(r||this.switchU)||h<=55295||h>=57344||t+1>=a)return h;var c=s.charCodeAt(t+1);return c>=56320&&c<=57343?(h<<10)+c-56613888:h},de.prototype.nextIndex=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return a;var h=s.charCodeAt(t),c;return!(r||this.switchU)||h<=55295||h>=57344||t+1>=a||(c=s.charCodeAt(t+1))<56320||c>57343?t+1:t+2},de.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)},de.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},de.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)},de.prototype.eat=function(t,r){return r===void 0&&(r=!1),this.current(r)===t?(this.advance(r),!0):!1};function Xe(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}O.validateRegExpFlags=function(e){for(var t=e.validFlags,r=e.flags,s=0;s-1&&this.raise(e.start,\"Duplicate regular expression flag\")}},O.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},O.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue=\"\",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise(\"Unmatched ')'\"),(e.eat(93)||e.eat(125))&&e.raise(\"Lone quantifier brackets\")),e.maxBackReference>e.numCapturingParens&&e.raise(\"Invalid escape\");for(var t=0,r=e.backReferenceNames;t=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise(\"Unterminated group\"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1},O.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1},O.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},O.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var s=0,a=-1;if(this.regexp_eatDecimalDigits(e)&&(s=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(a=e.lastIntValue),e.eat(125)))return a!==-1&&a=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise(\"Invalid group\"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise(\"Unterminated group\")}return!1},O.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},O.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise(\"Nothing to repeat\"),!1},O.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ir(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ir(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}O.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;(r=e.current())!==-1&&!Ir(r);)e.advance();return e.pos!==t},O.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1},O.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e)){e.groupNames.indexOf(e.lastStringValue)!==-1&&e.raise(\"Duplicate capture group name\"),e.groupNames.push(e.lastStringValue);return}e.raise(\"Invalid group\")}},O.regexp_eatGroupName=function(e){if(e.lastStringValue=\"\",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise(\"Invalid capture group name\")}return!1},O.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue=\"\",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=Xe(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Xe(e.lastIntValue);return!0}return!1},O.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Ka(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Ka(e){return v(e,!0)||e===36||e===95}O.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Xa(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Xa(e){return q(e,!0)||e===36||e===95||e===8204||e===8205}O.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise(\"Invalid unicode escape\"),e.raise(\"Invalid escape\")),!1)},O.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1},O.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise(\"Invalid named reference\")}return!1},O.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},O.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},O.regexp_eatZero=function(e){return e.current()===48&&!He(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1},O.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1},O.regexp_eatControlLetter=function(e){var t=e.current();return Pr(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Pr(e){return e>=65&&e<=90||e>=97&&e<=122}O.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var r=e.pos,s=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(s&&a>=55296&&a<=56319){var h=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var c=e.lastIntValue;if(c>=56320&&c<=57343)return e.lastIntValue=(a-55296)*1024+(c-56320)+65536,!0}e.pos=h,e.lastIntValue=a}return!0}if(s&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Ha(e.lastIntValue))return!0;s&&e.raise(\"Invalid unicode escape\"),e.pos=r}return!1};function Ha(e){return e>=0&&e<=1114111}O.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1},O.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1},O.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Ja(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(t===80||t===112)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise(\"Invalid property name\")}return!1};function Ja(e){return e===100||e===68||e===115||e===83||e===119||e===87}O.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var s=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,s),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var a=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,a),!0}return!1},O.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){D(e.unicodeProperties.nonBinary,t)||e.raise(\"Invalid property name\"),e.unicodeProperties.nonBinary[t].test(r)||e.raise(\"Invalid property value\")},O.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise(\"Invalid property name\")},O.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue=\"\";Nr(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==\"\"};function Nr(e){return Pr(e)||e===95}O.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=\"\";Ya(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==\"\"};function Ya(e){return Nr(e)||He(e)}O.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},O.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise(\"Unterminated character class\")}return!1},O.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;e.switchU&&(t===-1||r===-1)&&e.raise(\"Invalid character class\"),t!==-1&&r!==-1&&t>r&&e.raise(\"Range out of order in character class\")}}},O.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(r===99||Lr(r))&&e.raise(\"Invalid class escape\"),e.raise(\"Invalid escape\")}e.pos=t}var s=e.current();return s!==93?(e.lastIntValue=s,e.advance(),!0):!1},O.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},O.regexp_eatClassControlLetter=function(e){var t=e.current();return He(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1},O.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise(\"Invalid escape\"),e.pos=t}return!1},O.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;He(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t};function He(e){return e>=48&&e<=57}O.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Dr(r=e.current());)e.lastIntValue=16*e.lastIntValue+Or(r),e.advance();return e.pos!==t};function Dr(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Or(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}O.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+r*8+e.lastIntValue:e.lastIntValue=t*8+r}else e.lastIntValue=t;return!0}return!1},O.regexp_eatOctalDigit=function(e){var t=e.current();return Lr(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Lr(e){return e>=48&&e<=55}O.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var s=0;s=this.input.length)return this.finishToken(i.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())},G.readToken=function(e){return v(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)},G.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888},G.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,r=this.input.indexOf(\"*/\",this.pos+=2);if(r===-1&&this.raise(this.pos-2,\"Unterminated comment\"),this.pos=r+2,this.options.locations)for(var s=void 0,a=t;(s=ee(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=s;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,e,this.curPosition())},G.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),s=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&ae.test(String.fromCharCode(e)))++this.pos;else break e}}},G.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)},G.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(i.ellipsis)):(++this.pos,this.finishToken(i.dot))},G.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(i.assign,2):this.finishOp(i.slash,1)},G.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,s=e===42?i.star:i.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++r,s=i.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(i.assign,r+1):this.finishOp(s,r)},G.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(i.assign,3)}return this.finishOp(e===124?i.logicalOR:i.logicalAND,2)}return t===61?this.finishOp(i.assign,2):this.finishOp(e===124?i.bitwiseOR:i.bitwiseAND,1)},G.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(i.assign,2):this.finishOp(i.bitwiseXOR,1)},G.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||_.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(i.incDec,2):t===61?this.finishOp(i.assign,2):this.finishOp(i.plusMin,1)},G.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+r)===61?this.finishOp(i.assign,r+1):this.finishOp(i.bitShift,r)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(r=2),this.finishOp(i.relational,r))},G.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(i.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(i.arrow)):this.finishOp(e===61?i.eq:i.prefix,1)},G.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(i.questionDot,2)}if(t===63){if(e>=12){var s=this.input.charCodeAt(this.pos+2);if(s===61)return this.finishOp(i.assign,3)}return this.finishOp(i.coalesce,2)}}return this.finishOp(i.question,1)},G.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),v(t,!0)||t===92))return this.finishToken(i.privateId,this.readWord1());this.raise(this.pos,\"Unexpected character '\"+Ye(t)+\"'\")},G.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(i.parenL);case 41:return++this.pos,this.finishToken(i.parenR);case 59:return++this.pos,this.finishToken(i.semi);case 44:return++this.pos,this.finishToken(i.comma);case 91:return++this.pos,this.finishToken(i.bracketL);case 93:return++this.pos,this.finishToken(i.bracketR);case 123:return++this.pos,this.finishToken(i.braceL);case 125:return++this.pos,this.finishToken(i.braceR);case 58:return++this.pos,this.finishToken(i.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(i.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(i.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,\"Unexpected character '\"+Ye(e)+\"'\")},G.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)},G.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,\"Unterminated regular expression\");var s=this.input.charAt(this.pos);if(_.test(s)&&this.raise(r,\"Unterminated regular expression\"),e)e=!1;else{if(s===\"[\")t=!0;else if(s===\"]\"&&t)t=!1;else if(s===\"/\"&&!t)break;e=s===\"\\\\\"}++this.pos}var a=this.input.slice(r,this.pos);++this.pos;var h=this.pos,c=this.readWord1();this.containsEsc&&this.unexpected(h);var d=this.regexpState||(this.regexpState=new de(this));d.reset(r,a,c),this.validateRegExpFlags(d),this.validateRegExpPattern(d);var x=null;try{x=new RegExp(a,c)}catch{}return this.finishToken(i.regexp,{pattern:a,flags:c,value:x})},G.readInt=function(e,t,r){for(var s=this.options.ecmaVersion>=12&&t===void 0,a=r&&this.input.charCodeAt(this.pos)===48,h=this.pos,c=0,d=0,x=0,U=t==null?1/0:t;x=97?re=W-97+10:W>=65?re=W-65+10:W>=48&&W<=57?re=W-48:re=1/0,re>=e)break;d=W,c=c*e+re}return s&&d===95&&this.raiseRecoverable(this.pos-1,\"Numeric separator is not allowed at the last of digits\"),this.pos===h||t!=null&&this.pos-h!==t?null:c};function Qa(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,\"\"))}function Vr(e){return typeof BigInt!=\"function\"?null:BigInt(e.replace(/_/g,\"\"))}G.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return r==null&&this.raise(this.start+2,\"Expected number in radix \"+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(r=Vr(this.input.slice(t,this.pos)),++this.pos):v(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(i.num,r)},G.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,\"Invalid number\");var r=this.pos-t>=2&&this.input.charCodeAt(t)===48;r&&this.strict&&this.raise(t,\"Invalid number\");var s=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&s===110){var a=Vr(this.input.slice(t,this.pos));return++this.pos,v(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(i.num,a)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),s===46&&!r&&(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),(s===69||s===101)&&!r&&(s=this.input.charCodeAt(++this.pos),(s===43||s===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,\"Invalid number\")),v(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\");var h=Qa(this.input.slice(t,this.pos),r);return this.finishToken(i.num,h)},G.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var r=++this.pos;t=this.readHexChar(this.input.indexOf(\"}\",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(r,\"Code point out of bounds\")}else t=this.readHexChar(4);return t};function Ye(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}G.readString=function(e){for(var t=\"\",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");var s=this.input.charCodeAt(this.pos);if(s===e)break;s===92?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):s===8232||s===8233?(this.options.ecmaVersion<10&&this.raise(this.start,\"Unterminated string constant\"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(M(s)&&this.raise(this.start,\"Unterminated string constant\"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(i.string,t)};var Rr={};G.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Rr)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},G.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Rr;this.raise(e,t)},G.readTmplToken=function(){for(var e=\"\",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated template\");var r=this.input.charCodeAt(this.pos);if(r===96||r===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===i.template||this.type===i.invalidTemplate)?r===36?(this.pos+=2,this.finishToken(i.dollarBraceL)):(++this.pos,this.finishToken(i.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(i.template,e));if(r===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(M(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=`\n`;break;default:e+=String.fromCharCode(r);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},G.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(s,8);return a>255&&(s=s.slice(0,-1),a=parseInt(s,8)),this.pos+=s.length-1,t=this.input.charCodeAt(this.pos),(s!==\"0\"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-s.length,e?\"Octal literal in template string\":\"Octal literal in strict mode\"),String.fromCharCode(a)}return M(t)?\"\":String.fromCharCode(t)}},G.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return r===null&&this.invalidStringToken(t,\"Bad character escape sequence\"),r},G.readWord1=function(){this.containsEsc=!1;for(var e=\"\",t=!0,r=this.pos,s=this.options.ecmaVersion>=6;this.pos\",nbsp:\"\\xA0\",iexcl:\"\\xA1\",cent:\"\\xA2\",pound:\"\\xA3\",curren:\"\\xA4\",yen:\"\\xA5\",brvbar:\"\\xA6\",sect:\"\\xA7\",uml:\"\\xA8\",copy:\"\\xA9\",ordf:\"\\xAA\",laquo:\"\\xAB\",not:\"\\xAC\",shy:\"\\xAD\",reg:\"\\xAE\",macr:\"\\xAF\",deg:\"\\xB0\",plusmn:\"\\xB1\",sup2:\"\\xB2\",sup3:\"\\xB3\",acute:\"\\xB4\",micro:\"\\xB5\",para:\"\\xB6\",middot:\"\\xB7\",cedil:\"\\xB8\",sup1:\"\\xB9\",ordm:\"\\xBA\",raquo:\"\\xBB\",frac14:\"\\xBC\",frac12:\"\\xBD\",frac34:\"\\xBE\",iquest:\"\\xBF\",Agrave:\"\\xC0\",Aacute:\"\\xC1\",Acirc:\"\\xC2\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Aring:\"\\xC5\",AElig:\"\\xC6\",Ccedil:\"\\xC7\",Egrave:\"\\xC8\",Eacute:\"\\xC9\",Ecirc:\"\\xCA\",Euml:\"\\xCB\",Igrave:\"\\xCC\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Iuml:\"\\xCF\",ETH:\"\\xD0\",Ntilde:\"\\xD1\",Ograve:\"\\xD2\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",times:\"\\xD7\",Oslash:\"\\xD8\",Ugrave:\"\\xD9\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",THORN:\"\\xDE\",szlig:\"\\xDF\",agrave:\"\\xE0\",aacute:\"\\xE1\",acirc:\"\\xE2\",atilde:\"\\xE3\",auml:\"\\xE4\",aring:\"\\xE5\",aelig:\"\\xE6\",ccedil:\"\\xE7\",egrave:\"\\xE8\",eacute:\"\\xE9\",ecirc:\"\\xEA\",euml:\"\\xEB\",igrave:\"\\xEC\",iacute:\"\\xED\",icirc:\"\\xEE\",iuml:\"\\xEF\",eth:\"\\xF0\",ntilde:\"\\xF1\",ograve:\"\\xF2\",oacute:\"\\xF3\",ocirc:\"\\xF4\",otilde:\"\\xF5\",ouml:\"\\xF6\",divide:\"\\xF7\",oslash:\"\\xF8\",ugrave:\"\\xF9\",uacute:\"\\xFA\",ucirc:\"\\xFB\",uuml:\"\\xFC\",yacute:\"\\xFD\",thorn:\"\\xFE\",yuml:\"\\xFF\",OElig:\"\\u0152\",oelig:\"\\u0153\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Yuml:\"\\u0178\",fnof:\"\\u0192\",circ:\"\\u02C6\",tilde:\"\\u02DC\",Alpha:\"\\u0391\",Beta:\"\\u0392\",Gamma:\"\\u0393\",Delta:\"\\u0394\",Epsilon:\"\\u0395\",Zeta:\"\\u0396\",Eta:\"\\u0397\",Theta:\"\\u0398\",Iota:\"\\u0399\",Kappa:\"\\u039A\",Lambda:\"\\u039B\",Mu:\"\\u039C\",Nu:\"\\u039D\",Xi:\"\\u039E\",Omicron:\"\\u039F\",Pi:\"\\u03A0\",Rho:\"\\u03A1\",Sigma:\"\\u03A3\",Tau:\"\\u03A4\",Upsilon:\"\\u03A5\",Phi:\"\\u03A6\",Chi:\"\\u03A7\",Psi:\"\\u03A8\",Omega:\"\\u03A9\",alpha:\"\\u03B1\",beta:\"\\u03B2\",gamma:\"\\u03B3\",delta:\"\\u03B4\",epsilon:\"\\u03B5\",zeta:\"\\u03B6\",eta:\"\\u03B7\",theta:\"\\u03B8\",iota:\"\\u03B9\",kappa:\"\\u03BA\",lambda:\"\\u03BB\",mu:\"\\u03BC\",nu:\"\\u03BD\",xi:\"\\u03BE\",omicron:\"\\u03BF\",pi:\"\\u03C0\",rho:\"\\u03C1\",sigmaf:\"\\u03C2\",sigma:\"\\u03C3\",tau:\"\\u03C4\",upsilon:\"\\u03C5\",phi:\"\\u03C6\",chi:\"\\u03C7\",psi:\"\\u03C8\",omega:\"\\u03C9\",thetasym:\"\\u03D1\",upsih:\"\\u03D2\",piv:\"\\u03D6\",ensp:\"\\u2002\",emsp:\"\\u2003\",thinsp:\"\\u2009\",zwnj:\"\\u200C\",zwj:\"\\u200D\",lrm:\"\\u200E\",rlm:\"\\u200F\",ndash:\"\\u2013\",mdash:\"\\u2014\",lsquo:\"\\u2018\",rsquo:\"\\u2019\",sbquo:\"\\u201A\",ldquo:\"\\u201C\",rdquo:\"\\u201D\",bdquo:\"\\u201E\",dagger:\"\\u2020\",Dagger:\"\\u2021\",bull:\"\\u2022\",hellip:\"\\u2026\",permil:\"\\u2030\",prime:\"\\u2032\",Prime:\"\\u2033\",lsaquo:\"\\u2039\",rsaquo:\"\\u203A\",oline:\"\\u203E\",frasl:\"\\u2044\",euro:\"\\u20AC\",image:\"\\u2111\",weierp:\"\\u2118\",real:\"\\u211C\",trade:\"\\u2122\",alefsym:\"\\u2135\",larr:\"\\u2190\",uarr:\"\\u2191\",rarr:\"\\u2192\",darr:\"\\u2193\",harr:\"\\u2194\",crarr:\"\\u21B5\",lArr:\"\\u21D0\",uArr:\"\\u21D1\",rArr:\"\\u21D2\",dArr:\"\\u21D3\",hArr:\"\\u21D4\",forall:\"\\u2200\",part:\"\\u2202\",exist:\"\\u2203\",empty:\"\\u2205\",nabla:\"\\u2207\",isin:\"\\u2208\",notin:\"\\u2209\",ni:\"\\u220B\",prod:\"\\u220F\",sum:\"\\u2211\",minus:\"\\u2212\",lowast:\"\\u2217\",radic:\"\\u221A\",prop:\"\\u221D\",infin:\"\\u221E\",ang:\"\\u2220\",and:\"\\u2227\",or:\"\\u2228\",cap:\"\\u2229\",cup:\"\\u222A\",int:\"\\u222B\",there4:\"\\u2234\",sim:\"\\u223C\",cong:\"\\u2245\",asymp:\"\\u2248\",ne:\"\\u2260\",equiv:\"\\u2261\",le:\"\\u2264\",ge:\"\\u2265\",sub:\"\\u2282\",sup:\"\\u2283\",nsub:\"\\u2284\",sube:\"\\u2286\",supe:\"\\u2287\",oplus:\"\\u2295\",otimes:\"\\u2297\",perp:\"\\u22A5\",sdot:\"\\u22C5\",lceil:\"\\u2308\",rceil:\"\\u2309\",lfloor:\"\\u230A\",rfloor:\"\\u230B\",lang:\"\\u2329\",rang:\"\\u232A\",loz:\"\\u25CA\",spades:\"\\u2660\",clubs:\"\\u2663\",hearts:\"\\u2665\",diams:\"\\u2666\"}}}),Pa=Y({\"node_modules/acorn-jsx/index.js\"(n,o){\"use strict\";J();var u=Sh(),l=/^[\\da-fA-F]+$/,m=/^\\d+$/,E=new WeakMap;function y(g){g=g.Parser.acorn||g;let V=E.get(g);if(!V){let R=g.tokTypes,N=g.TokContext,T=g.TokenType,v=new N(\"...\",!0,!0),I={tc_oTag:v,tc_cTag:q,tc_expr:B},k={jsxName:new T(\"jsxName\"),jsxText:new T(\"jsxText\",{beforeExpr:!0}),jsxTagStart:new T(\"jsxTagStart\",{startsExpr:!0}),jsxTagEnd:new T(\"jsxTagEnd\")};k.jsxTagStart.updateContext=function(){this.context.push(B),this.context.push(v),this.exprAllowed=!1},k.jsxTagEnd.updateContext=function(C){let H=this.context.pop();H===v&&C===R.slash||H===q?(this.context.pop(),this.exprAllowed=this.curContext()===B):this.exprAllowed=!0},V={tokContexts:I,tokTypes:k},E.set(g,V)}return V}function A(g){if(!g)return g;if(g.type===\"JSXIdentifier\")return g.name;if(g.type===\"JSXNamespacedName\")return g.namespace.name+\":\"+g.name.name;if(g.type===\"JSXMemberExpression\")return A(g.object)+\".\"+A(g.property)}o.exports=function(g){return g=g||{},function(V){return b({allowNamespaces:g.allowNamespaces!==!1,allowNamespacedObjects:!!g.allowNamespacedObjects},V)}},Object.defineProperty(o.exports,\"tokTypes\",{get:function(){return y(ct()).tokTypes},configurable:!0,enumerable:!0});function b(g,V){let R=V.acorn||ct(),N=y(R),T=R.tokTypes,v=N.tokTypes,q=R.tokContexts,B=N.tokContexts.tc_oTag,I=N.tokContexts.tc_cTag,k=N.tokContexts.tc_expr,C=R.isNewLine,H=R.isIdentifierStart,L=R.isIdentifierChar;return class extends V{static get acornJsx(){return N}jsx_readToken(){let i=\"\",_=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated JSX contents\");let P=this.input.charCodeAt(this.pos);switch(P){case 60:case 123:return this.pos===this.start?P===60&&this.exprAllowed?(++this.pos,this.finishToken(v.jsxTagStart)):this.getTokenFromCode(P):(i+=this.input.slice(_,this.pos),this.finishToken(v.jsxText,i));case 38:i+=this.input.slice(_,this.pos),i+=this.jsx_readEntity(),_=this.pos;break;case 62:case 125:this.raise(this.pos,\"Unexpected token `\"+this.input[this.pos]+\"`. Did you mean `\"+(P===62?\">\":\"}\")+'` or `{\"'+this.input[this.pos]+'\"}`?');default:C(P)?(i+=this.input.slice(_,this.pos),i+=this.jsx_readNewLine(!0),_=this.pos):++this.pos}}}jsx_readNewLine(i){let _=this.input.charCodeAt(this.pos),P;return++this.pos,_===13&&this.input.charCodeAt(this.pos)===10?(++this.pos,P=i?`\n`:`\\r\n`):P=String.fromCharCode(_),this.options.locations&&(++this.curLine,this.lineStart=this.pos),P}jsx_readString(i){let _=\"\",P=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");let M=this.input.charCodeAt(this.pos);if(M===i)break;M===38?(_+=this.input.slice(P,this.pos),_+=this.jsx_readEntity(),P=this.pos):C(M)?(_+=this.input.slice(P,this.pos),_+=this.jsx_readNewLine(!1),P=this.pos):++this.pos}return _+=this.input.slice(P,this.pos++),this.finishToken(T.string,_)}jsx_readEntity(){let i=\"\",_=0,P,M=this.input[this.pos];M!==\"&\"&&this.raise(this.pos,\"Entity must start with an ampersand\");let ee=++this.pos;for(;this.pos\")}let te=ee.name?\"Element\":\"Fragment\";return P[\"opening\"+te]=ee,P[\"closing\"+te]=ae,P.children=M,this.type===T.relational&&this.value===\"<\"&&this.raise(this.start,\"Adjacent JSX elements must be wrapped in an enclosing tag\"),this.finishNode(P,\"JSX\"+te)}jsx_parseText(){let i=this.parseLiteral(this.value);return i.type=\"JSXText\",i}jsx_parseElement(){let i=this.start,_=this.startLoc;return this.next(),this.jsx_parseElementAt(i,_)}parseExprAtom(i){return this.type===v.jsxText?this.jsx_parseText():this.type===v.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(i)}readToken(i){let _=this.curContext();if(_===k)return this.jsx_readToken();if(_===B||_===I){if(H(i))return this.jsx_readWord();if(i==62)return++this.pos,this.finishToken(v.jsxTagEnd);if((i===34||i===39)&&_==B)return this.jsx_readString(i)}return i===60&&this.exprAllowed&&this.input.charCodeAt(this.pos+1)!==33?(++this.pos,this.finishToken(v.jsxTagStart)):super.readToken(i)}updateContext(i){if(this.type==T.braceL){var _=this.curContext();_==B?this.context.push(q.b_expr):_==k?this.context.push(q.b_tmpl):super.updateContext(i),this.exprAllowed=!0}else if(this.type===T.slash&&i===v.jsxTagStart)this.context.length-=2,this.context.push(I),this.exprAllowed=!1;else return super.updateContext(i)}}}}}),wh=Y({\"src/language-js/parse/acorn.js\"(n,o){\"use strict\";J();var u=lr(),l=fa(),m=Fa(),E=Ia(),y={ecmaVersion:\"latest\",sourceType:\"module\",allowReserved:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,allowAwaitOutsideFunction:!0,allowSuperOutsideMethod:!0,allowHashBang:!0,locations:!0,ranges:!0};function A(N){let{message:T,loc:v}=N;if(!v)return N;let{line:q,column:B}=v;return u(T.replace(/ \\(\\d+:\\d+\\)$/,\"\"),{start:{line:q,column:B+1}})}var b,g=()=>{if(!b){let{Parser:N}=ct(),T=Pa();b=N.extend(T())}return b};function V(N,T){let v=g(),q=[],B=[],I=v.parse(N,Object.assign(Object.assign({},y),{},{sourceType:T,onComment:q,onToken:B}));return I.comments=q,I.tokens=B,I}function R(N,T){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:q,error:B}=l(()=>V(N,\"module\"),()=>V(N,\"script\"));if(!q)throw A(B);return v.originalText=N,E(q,v)}o.exports=m(R)}}),kh=Y({\"src/language-js/parse/utils/replace-hashbang.js\"(n,o){\"use strict\";J();function u(l){return l.charAt(0)===\"#\"&&l.charAt(1)===\"!\"?\"//\"+l.slice(2):l}o.exports=u}}),Fh=Y({\"node_modules/espree/dist/espree.cjs\"(n){\"use strict\";J(),Object.defineProperty(n,\"__esModule\",{value:!0});var o=ct(),u=Pa(),l;function m(p){return p&&typeof p==\"object\"&&\"default\"in p?p:{default:p}}function E(p){if(p&&p.__esModule)return p;var D=Object.create(null);return p&&Object.keys(p).forEach(function(w){if(w!==\"default\"){var f=Object.getOwnPropertyDescriptor(p,w);Object.defineProperty(D,w,f.get?f:{enumerable:!0,get:function(){return p[w]}})}}),D.default=p,Object.freeze(D)}var y=E(o),A=m(u),b=E(l),g={Boolean:\"Boolean\",EOF:\"\",Identifier:\"Identifier\",PrivateIdentifier:\"PrivateIdentifier\",Keyword:\"Keyword\",Null:\"Null\",Numeric:\"Numeric\",Punctuator:\"Punctuator\",String:\"String\",RegularExpression:\"RegularExpression\",Template:\"Template\",JSXIdentifier:\"JSXIdentifier\",JSXText:\"JSXText\"};function V(p,D){let w=p[0],f=p[p.length-1],F={type:g.Template,value:D.slice(w.start,f.end)};return w.loc&&(F.loc={start:w.loc.start,end:f.loc.end}),w.range&&(F.start=w.range[0],F.end=f.range[1],F.range=[F.start,F.end]),F}function R(p,D){this._acornTokTypes=p,this._tokens=[],this._curlyBrace=null,this._code=D}R.prototype={constructor:R,translate(p,D){let w=p.type,f=this._acornTokTypes;if(w===f.name)p.type=g.Identifier,p.value===\"static\"&&(p.type=g.Keyword),D.ecmaVersion>5&&(p.value===\"yield\"||p.value===\"let\")&&(p.type=g.Keyword);else if(w===f.privateId)p.type=g.PrivateIdentifier;else if(w===f.semi||w===f.comma||w===f.parenL||w===f.parenR||w===f.braceL||w===f.braceR||w===f.dot||w===f.bracketL||w===f.colon||w===f.question||w===f.bracketR||w===f.ellipsis||w===f.arrow||w===f.jsxTagStart||w===f.incDec||w===f.starstar||w===f.jsxTagEnd||w===f.prefix||w===f.questionDot||w.binop&&!w.keyword||w.isAssign)p.type=g.Punctuator,p.value=this._code.slice(p.start,p.end);else if(w===f.jsxName)p.type=g.JSXIdentifier;else if(w.label===\"jsxText\"||w===f.jsxAttrValueToken)p.type=g.JSXText;else if(w.keyword)w.keyword===\"true\"||w.keyword===\"false\"?p.type=g.Boolean:w.keyword===\"null\"?p.type=g.Null:p.type=g.Keyword;else if(w===f.num)p.type=g.Numeric,p.value=this._code.slice(p.start,p.end);else if(w===f.string)D.jsxAttrValueToken?(D.jsxAttrValueToken=!1,p.type=g.JSXText):p.type=g.String,p.value=this._code.slice(p.start,p.end);else if(w===f.regexp){p.type=g.RegularExpression;let F=p.value;p.regex={flags:F.flags,pattern:F.pattern},p.value=\"/\".concat(F.pattern,\"/\").concat(F.flags)}return p},onToken(p,D){let w=this,f=this._acornTokTypes,F=D.tokens,K=this._tokens;function X(){F.push(V(w._tokens,w._code)),w._tokens=[]}if(p.type===f.eof){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D));return}if(p.type===f.backQuote){this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),K.push(p),K.length>1&&X();return}if(p.type===f.dollarBraceL){K.push(p),X();return}if(p.type===f.braceR){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=p;return}if(p.type===f.template||p.type===f.invalidTemplate){this._curlyBrace&&(K.push(this._curlyBrace),this._curlyBrace=null),K.push(p);return}this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),F.push(this.translate(p,D))}};var N=[3,5,6,7,8,9,10,11,12,13];function T(){return N[N.length-1]}function v(){return[...N]}function q(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:5,D=p===\"latest\"?T():p;if(typeof D!=\"number\")throw new Error('ecmaVersion must be a number or \"latest\". Received value of type '.concat(typeof p,\" instead.\"));if(D>=2015&&(D-=2009),!N.includes(D))throw new Error(\"Invalid ecmaVersion.\");return D}function B(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:\"script\";if(p===\"script\"||p===\"module\")return p;if(p===\"commonjs\")return\"script\";throw new Error(\"Invalid sourceType.\")}function I(p){let D=q(p.ecmaVersion),w=B(p.sourceType),f=p.range===!0,F=p.loc===!0;if(D!==3&&p.allowReserved)throw new Error(\"`allowReserved` is only supported when ecmaVersion is 3\");if(typeof p.allowReserved<\"u\"&&typeof p.allowReserved!=\"boolean\")throw new Error(\"`allowReserved`, when present, must be `true` or `false`\");let K=D===3?p.allowReserved||\"never\":!1,X=p.ecmaFeatures||{},oe=p.sourceType===\"commonjs\"||Boolean(X.globalReturn);if(w===\"module\"&&D<6)throw new Error(\"sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options.\");return Object.assign({},p,{ecmaVersion:D,sourceType:w,ranges:f,locations:F,allowReserved:K,allowReturnOutsideFunction:oe})}var k=Symbol(\"espree's internal state\"),C=Symbol(\"espree's esprimaFinishNode\");function H(p,D,w,f,F,K){let X={type:p?\"Block\":\"Line\",value:D};return typeof w==\"number\"&&(X.start=w,X.end=f,X.range=[w,f]),typeof F==\"object\"&&(X.loc={start:F,end:K}),X}var L=()=>p=>{let D=Object.assign({},p.acorn.tokTypes);return p.acornJsx&&Object.assign(D,p.acornJsx.tokTypes),class extends p{constructor(f,F){(typeof f!=\"object\"||f===null)&&(f={}),typeof F!=\"string\"&&!(F instanceof String)&&(F=String(F));let K=f.sourceType,X=I(f),oe=X.ecmaFeatures||{},me=X.tokens===!0?new R(D,F):null;super({ecmaVersion:X.ecmaVersion,sourceType:X.sourceType,ranges:X.ranges,locations:X.locations,allowReserved:X.allowReserved,allowReturnOutsideFunction:X.allowReturnOutsideFunction,onToken:ve=>{me&&me.onToken(ve,this[k]),ve.type!==D.eof&&(this[k].lastToken=ve)},onComment:(ve,pt,ft,Ee,ge,De)=>{if(this[k].comments){let Ue=H(ve,pt,ft,Ee,ge,De);this[k].comments.push(Ue)}}},F),this[k]={originalSourceType:K||X.sourceType,tokens:me?[]:null,comments:X.comment===!0?[]:null,impliedStrict:oe.impliedStrict===!0&&this.options.ecmaVersion>=5,ecmaVersion:this.options.ecmaVersion,jsxAttrValueToken:!1,lastToken:null,templateElements:[]}}tokenize(){do this.next();while(this.type!==D.eof);this.next();let f=this[k],F=f.tokens;return f.comments&&(F.comments=f.comments),F}finishNode(){let f=super.finishNode(...arguments);return this[C](f)}finishNodeAt(){let f=super.finishNodeAt(...arguments);return this[C](f)}parse(){let f=this[k],F=super.parse();if(F.sourceType=f.originalSourceType,f.comments&&(F.comments=f.comments),f.tokens&&(F.tokens=f.tokens),F.body.length){let[K]=F.body;F.range&&(F.range[0]=K.range[0]),F.loc&&(F.loc.start=K.loc.start),F.start=K.start}return f.lastToken&&(F.range&&(F.range[1]=f.lastToken.range[1]),F.loc&&(F.loc.end=f.lastToken.loc.end),F.end=f.lastToken.end),this[k].templateElements.forEach(K=>{let oe=K.tail?1:2;K.start+=-1,K.end+=oe,K.range&&(K.range[0]+=-1,K.range[1]+=oe),K.loc&&(K.loc.start.column+=-1,K.loc.end.column+=oe)}),F}parseTopLevel(f){return this[k].impliedStrict&&(this.strict=!0),super.parseTopLevel(f)}raise(f,F){let K=p.acorn.getLineInfo(this.input,f),X=new SyntaxError(F);throw X.index=f,X.lineNumber=K.line,X.column=K.column+1,X}raiseRecoverable(f,F){this.raise(f,F)}unexpected(f){let F=\"Unexpected token\";if(f!=null){if(this.pos=f,this.options.locations)for(;this.posthis.start&&(F+=\" \".concat(this.input.slice(this.start,this.end))),this.raise(this.start,F)}jsx_readString(f){let F=super.jsx_readString(f);return this.type===D.string&&(this[k].jsxAttrValueToken=!0),F}[C](f){return f.type===\"TemplateElement\"&&this[k].templateElements.push(f),f.type.includes(\"Function\")&&!f.generator&&(f.generator=!1),f}}},i=\"9.3.1\",_={_regular:null,_jsx:null,get regular(){return this._regular===null&&(this._regular=y.Parser.extend(L())),this._regular},get jsx(){return this._jsx===null&&(this._jsx=y.Parser.extend(A.default(),L())),this._jsx},get(p){return Boolean(p&&p.ecmaFeatures&&p.ecmaFeatures.jsx)?this.jsx:this.regular}};function P(p,D){let w=_.get(D);return(!D||D.tokens!==!0)&&(D=Object.assign({},D,{tokens:!0})),new w(D,p).tokenize()}function M(p,D){let w=_.get(D);return new w(D,p).parse()}var ee=i,ae=function(){return b.KEYS}(),te=void 0,ie=T(),Ne=v();n.Syntax=te,n.VisitorKeys=ae,n.latestEcmaVersion=ie,n.parse=M,n.supportedEcmaVersions=Ne,n.tokenize=P,n.version=ee}}),Bh=Y({\"src/language-js/parse/espree.js\"(n,o){\"use strict\";J();var u=lr(),l=fa(),m=Fa(),E=kh(),y=Ia(),A={ecmaVersion:\"latest\",range:!0,loc:!0,comment:!0,tokens:!0,sourceType:\"module\",ecmaFeatures:{jsx:!0,globalReturn:!0,impliedStrict:!1}};function b(V){let{message:R,lineNumber:N,column:T}=V;return typeof N!=\"number\"?V:u(R,{start:{line:N,column:T}})}function g(V,R){let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:T}=Fh(),v=E(V),{result:q,error:B}=l(()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:\"module\"})),()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:\"script\"})));if(!q)throw b(B);return N.originalText=V,y(q,N)}o.exports=m(g)}});J();var Th=wh(),Ih=Bh();Na.exports={parsers:{acorn:Th,espree:Ih}}});return Ph();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.flow=e()}})(function(){\"use strict\";var Be=(H0,z0)=>()=>(z0||H0((z0={exports:{}}).exports,z0),z0.exports);var ru=Be((_oe,rn0)=>{var h_=function(H0){return H0&&H0.Math==Math&&H0};rn0.exports=h_(typeof globalThis==\"object\"&&globalThis)||h_(typeof window==\"object\"&&window)||h_(typeof self==\"object\"&&self)||h_(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var Qs=Be((yoe,en0)=>{en0.exports=function(H0){try{return!!H0()}catch{return!0}}});var fv=Be((hoe,nn0)=>{var N7e=Qs();nn0.exports=!N7e(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var jR=Be((doe,tn0)=>{var C7e=Qs();tn0.exports=!C7e(function(){var H0=function(){}.bind();return typeof H0!=\"function\"||H0.hasOwnProperty(\"prototype\")})});var k_=Be((koe,un0)=>{var P7e=jR(),d_=Function.prototype.call;un0.exports=P7e?d_.bind(d_):function(){return d_.apply(d_,arguments)}});var on0=Be(xn0=>{\"use strict\";var in0={}.propertyIsEnumerable,fn0=Object.getOwnPropertyDescriptor,D7e=fn0&&!in0.call({1:2},1);xn0.f=D7e?function(z0){var xr=fn0(this,z0);return!!xr&&xr.enumerable}:in0});var GR=Be((Eoe,an0)=>{an0.exports=function(H0,z0){return{enumerable:!(H0&1),configurable:!(H0&2),writable:!(H0&4),value:z0}}});var zc=Be((Soe,vn0)=>{var cn0=jR(),sn0=Function.prototype,L7e=sn0.bind,MR=sn0.call,R7e=cn0&&L7e.bind(MR,MR);vn0.exports=cn0?function(H0){return H0&&R7e(H0)}:function(H0){return H0&&function(){return MR.apply(H0,arguments)}}});var pn0=Be((goe,bn0)=>{var ln0=zc(),j7e=ln0({}.toString),G7e=ln0(\"\".slice);bn0.exports=function(H0){return G7e(j7e(H0),8,-1)}});var _n0=Be((Foe,mn0)=>{var M7e=ru(),B7e=zc(),q7e=Qs(),U7e=pn0(),BR=M7e.Object,H7e=B7e(\"\".split);mn0.exports=q7e(function(){return!BR(\"z\").propertyIsEnumerable(0)})?function(H0){return U7e(H0)==\"String\"?H7e(H0,\"\"):BR(H0)}:BR});var qR=Be((Toe,yn0)=>{var X7e=ru(),Y7e=X7e.TypeError;yn0.exports=function(H0){if(H0==null)throw Y7e(\"Can't call method on \"+H0);return H0}});var w_=Be((Ooe,hn0)=>{var V7e=_n0(),z7e=qR();hn0.exports=function(H0){return V7e(z7e(H0))}});var Kc=Be((Ioe,dn0)=>{dn0.exports=function(H0){return typeof H0==\"function\"}});var S2=Be((Aoe,kn0)=>{var K7e=Kc();kn0.exports=function(H0){return typeof H0==\"object\"?H0!==null:K7e(H0)}});var E_=Be((Noe,wn0)=>{var UR=ru(),W7e=Kc(),J7e=function(H0){return W7e(H0)?H0:void 0};wn0.exports=function(H0,z0){return arguments.length<2?J7e(UR[H0]):UR[H0]&&UR[H0][z0]}});var Sn0=Be((Coe,En0)=>{var $7e=zc();En0.exports=$7e({}.isPrototypeOf)});var Fn0=Be((Poe,gn0)=>{var Z7e=E_();gn0.exports=Z7e(\"navigator\",\"userAgent\")||\"\"});var Pn0=Be((Doe,Cn0)=>{var Nn0=ru(),HR=Fn0(),Tn0=Nn0.process,On0=Nn0.Deno,In0=Tn0&&Tn0.versions||On0&&On0.version,An0=In0&&In0.v8,$i,S_;An0&&($i=An0.split(\".\"),S_=$i[0]>0&&$i[0]<4?1:+($i[0]+$i[1]));!S_&&HR&&($i=HR.match(/Edge\\/(\\d+)/),(!$i||$i[1]>=74)&&($i=HR.match(/Chrome\\/(\\d+)/),$i&&(S_=+$i[1])));Cn0.exports=S_});var XR=Be((Loe,Ln0)=>{var Dn0=Pn0(),Q7e=Qs();Ln0.exports=!!Object.getOwnPropertySymbols&&!Q7e(function(){var H0=Symbol();return!String(H0)||!(Object(H0)instanceof Symbol)||!Symbol.sham&&Dn0&&Dn0<41})});var YR=Be((Roe,Rn0)=>{var rie=XR();Rn0.exports=rie&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var VR=Be((joe,jn0)=>{var eie=ru(),nie=E_(),tie=Kc(),uie=Sn0(),iie=YR(),fie=eie.Object;jn0.exports=iie?function(H0){return typeof H0==\"symbol\"}:function(H0){var z0=nie(\"Symbol\");return tie(z0)&&uie(z0.prototype,fie(H0))}});var Mn0=Be((Goe,Gn0)=>{var xie=ru(),oie=xie.String;Gn0.exports=function(H0){try{return oie(H0)}catch{return\"Object\"}}});var qn0=Be((Moe,Bn0)=>{var aie=ru(),cie=Kc(),sie=Mn0(),vie=aie.TypeError;Bn0.exports=function(H0){if(cie(H0))return H0;throw vie(sie(H0)+\" is not a function\")}});var Hn0=Be((Boe,Un0)=>{var lie=qn0();Un0.exports=function(H0,z0){var xr=H0[z0];return xr==null?void 0:lie(xr)}});var Yn0=Be((qoe,Xn0)=>{var bie=ru(),zR=k_(),KR=Kc(),WR=S2(),pie=bie.TypeError;Xn0.exports=function(H0,z0){var xr,gr;if(z0===\"string\"&&KR(xr=H0.toString)&&!WR(gr=zR(xr,H0))||KR(xr=H0.valueOf)&&!WR(gr=zR(xr,H0))||z0!==\"string\"&&KR(xr=H0.toString)&&!WR(gr=zR(xr,H0)))return gr;throw pie(\"Can't convert object to primitive value\")}});var zn0=Be((Uoe,Vn0)=>{Vn0.exports=!1});var g_=Be((Hoe,Wn0)=>{var Kn0=ru(),mie=Object.defineProperty;Wn0.exports=function(H0,z0){try{mie(Kn0,H0,{value:z0,configurable:!0,writable:!0})}catch{Kn0[H0]=z0}return z0}});var F_=Be((Xoe,$n0)=>{var _ie=ru(),yie=g_(),Jn0=\"__core-js_shared__\",hie=_ie[Jn0]||yie(Jn0,{});$n0.exports=hie});var JR=Be((Yoe,Qn0)=>{var die=zn0(),Zn0=F_();(Qn0.exports=function(H0,z0){return Zn0[H0]||(Zn0[H0]=z0!==void 0?z0:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:die?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var et0=Be((Voe,rt0)=>{var kie=ru(),wie=qR(),Eie=kie.Object;rt0.exports=function(H0){return Eie(wie(H0))}});var r1=Be((zoe,nt0)=>{var Sie=zc(),gie=et0(),Fie=Sie({}.hasOwnProperty);nt0.exports=Object.hasOwn||function(z0,xr){return Fie(gie(z0),xr)}});var $R=Be((Koe,tt0)=>{var Tie=zc(),Oie=0,Iie=Math.random(),Aie=Tie(1 .toString);tt0.exports=function(H0){return\"Symbol(\"+(H0===void 0?\"\":H0)+\")_\"+Aie(++Oie+Iie,36)}});var at0=Be((Woe,ot0)=>{var Nie=ru(),Cie=JR(),ut0=r1(),Pie=$R(),it0=XR(),xt0=YR(),g2=Cie(\"wks\"),xv=Nie.Symbol,ft0=xv&&xv.for,Die=xt0?xv:xv&&xv.withoutSetter||Pie;ot0.exports=function(H0){if(!ut0(g2,H0)||!(it0||typeof g2[H0]==\"string\")){var z0=\"Symbol.\"+H0;it0&&ut0(xv,H0)?g2[H0]=xv[H0]:xt0&&ft0?g2[H0]=ft0(z0):g2[H0]=Die(z0)}return g2[H0]}});var lt0=Be((Joe,vt0)=>{var Lie=ru(),Rie=k_(),ct0=S2(),st0=VR(),jie=Hn0(),Gie=Yn0(),Mie=at0(),Bie=Lie.TypeError,qie=Mie(\"toPrimitive\");vt0.exports=function(H0,z0){if(!ct0(H0)||st0(H0))return H0;var xr=jie(H0,qie),gr;if(xr){if(z0===void 0&&(z0=\"default\"),gr=Rie(xr,H0,z0),!ct0(gr)||st0(gr))return gr;throw Bie(\"Can't convert object to primitive value\")}return z0===void 0&&(z0=\"number\"),Gie(H0,z0)}});var ZR=Be(($oe,bt0)=>{var Uie=lt0(),Hie=VR();bt0.exports=function(H0){var z0=Uie(H0,\"string\");return Hie(z0)?z0:z0+\"\"}});var _t0=Be((Zoe,mt0)=>{var Xie=ru(),pt0=S2(),QR=Xie.document,Yie=pt0(QR)&&pt0(QR.createElement);mt0.exports=function(H0){return Yie?QR.createElement(H0):{}}});var rj=Be((Qoe,yt0)=>{var Vie=fv(),zie=Qs(),Kie=_t0();yt0.exports=!Vie&&!zie(function(){return Object.defineProperty(Kie(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var ej=Be(dt0=>{var Wie=fv(),Jie=k_(),$ie=on0(),Zie=GR(),Qie=w_(),rfe=ZR(),efe=r1(),nfe=rj(),ht0=Object.getOwnPropertyDescriptor;dt0.f=Wie?ht0:function(z0,xr){if(z0=Qie(z0),xr=rfe(xr),nfe)try{return ht0(z0,xr)}catch{}if(efe(z0,xr))return Zie(!Jie($ie.f,z0,xr),z0[xr])}});var wt0=Be((eae,kt0)=>{var tfe=fv(),ufe=Qs();kt0.exports=tfe&&ufe(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var nj=Be((nae,St0)=>{var Et0=ru(),ife=S2(),ffe=Et0.String,xfe=Et0.TypeError;St0.exports=function(H0){if(ife(H0))return H0;throw xfe(ffe(H0)+\" is not an object\")}});var xj=Be(Ft0=>{var ofe=ru(),afe=fv(),cfe=rj(),sfe=wt0(),T_=nj(),gt0=ZR(),vfe=ofe.TypeError,tj=Object.defineProperty,lfe=Object.getOwnPropertyDescriptor,uj=\"enumerable\",ij=\"configurable\",fj=\"writable\";Ft0.f=afe?sfe?function(z0,xr,gr){if(T_(z0),xr=gt0(xr),T_(gr),typeof z0==\"function\"&&xr===\"prototype\"&&\"value\"in gr&&fj in gr&&!gr[fj]){var de=lfe(z0,xr);de&&de[fj]&&(z0[xr]=gr.value,gr={configurable:ij in gr?gr[ij]:de[ij],enumerable:uj in gr?gr[uj]:de[uj],writable:!1})}return tj(z0,xr,gr)}:tj:function(z0,xr,gr){if(T_(z0),xr=gt0(xr),T_(gr),cfe)try{return tj(z0,xr,gr)}catch{}if(\"get\"in gr||\"set\"in gr)throw vfe(\"Accessors not supported\");return\"value\"in gr&&(z0[xr]=gr.value),z0}});var O_=Be((uae,Tt0)=>{var bfe=fv(),pfe=xj(),mfe=GR();Tt0.exports=bfe?function(H0,z0,xr){return pfe.f(H0,z0,mfe(1,xr))}:function(H0,z0,xr){return H0[z0]=xr,H0}});var aj=Be((iae,Ot0)=>{var _fe=zc(),yfe=Kc(),oj=F_(),hfe=_fe(Function.toString);yfe(oj.inspectSource)||(oj.inspectSource=function(H0){return hfe(H0)});Ot0.exports=oj.inspectSource});var Nt0=Be((fae,At0)=>{var dfe=ru(),kfe=Kc(),wfe=aj(),It0=dfe.WeakMap;At0.exports=kfe(It0)&&/native code/.test(wfe(It0))});var Dt0=Be((xae,Pt0)=>{var Efe=JR(),Sfe=$R(),Ct0=Efe(\"keys\");Pt0.exports=function(H0){return Ct0[H0]||(Ct0[H0]=Sfe(H0))}});var cj=Be((oae,Lt0)=>{Lt0.exports={}});var qt0=Be((aae,Bt0)=>{var gfe=Nt0(),Mt0=ru(),sj=zc(),Ffe=S2(),Tfe=O_(),vj=r1(),lj=F_(),Ofe=Dt0(),Ife=cj(),Rt0=\"Object already initialized\",pj=Mt0.TypeError,Afe=Mt0.WeakMap,I_,a4,A_,Nfe=function(H0){return A_(H0)?a4(H0):I_(H0,{})},Cfe=function(H0){return function(z0){var xr;if(!Ffe(z0)||(xr=a4(z0)).type!==H0)throw pj(\"Incompatible receiver, \"+H0+\" required\");return xr}};gfe||lj.state?(e1=lj.state||(lj.state=new Afe),jt0=sj(e1.get),bj=sj(e1.has),Gt0=sj(e1.set),I_=function(H0,z0){if(bj(e1,H0))throw new pj(Rt0);return z0.facade=H0,Gt0(e1,H0,z0),z0},a4=function(H0){return jt0(e1,H0)||{}},A_=function(H0){return bj(e1,H0)}):(ov=Ofe(\"state\"),Ife[ov]=!0,I_=function(H0,z0){if(vj(H0,ov))throw new pj(Rt0);return z0.facade=H0,Tfe(H0,ov,z0),z0},a4=function(H0){return vj(H0,ov)?H0[ov]:{}},A_=function(H0){return vj(H0,ov)});var e1,jt0,bj,Gt0,ov;Bt0.exports={set:I_,get:a4,has:A_,enforce:Nfe,getterFor:Cfe}});var Xt0=Be((cae,Ht0)=>{var mj=fv(),Pfe=r1(),Ut0=Function.prototype,Dfe=mj&&Object.getOwnPropertyDescriptor,_j=Pfe(Ut0,\"name\"),Lfe=_j&&function(){}.name===\"something\",Rfe=_j&&(!mj||mj&&Dfe(Ut0,\"name\").configurable);Ht0.exports={EXISTS:_j,PROPER:Lfe,CONFIGURABLE:Rfe}});var Wt0=Be((sae,Kt0)=>{var jfe=ru(),Yt0=Kc(),Gfe=r1(),Vt0=O_(),Mfe=g_(),Bfe=aj(),zt0=qt0(),qfe=Xt0().CONFIGURABLE,Ufe=zt0.get,Hfe=zt0.enforce,Xfe=String(String).split(\"String\");(Kt0.exports=function(H0,z0,xr,gr){var de=gr?!!gr.unsafe:!1,Ve=gr?!!gr.enumerable:!1,De=gr?!!gr.noTargetGet:!1,Ke=gr&&gr.name!==void 0?gr.name:z0,tn;if(Yt0(xr)&&(String(Ke).slice(0,7)===\"Symbol(\"&&(Ke=\"[\"+String(Ke).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!Gfe(xr,\"name\")||qfe&&xr.name!==Ke)&&Vt0(xr,\"name\",Ke),tn=Hfe(xr),tn.source||(tn.source=Xfe.join(typeof Ke==\"string\"?Ke:\"\"))),H0===jfe){Ve?H0[z0]=xr:Mfe(z0,xr);return}else de?!De&&H0[z0]&&(Ve=!0):delete H0[z0];Ve?H0[z0]=xr:Vt0(H0,z0,xr)})(Function.prototype,\"toString\",function(){return Yt0(this)&&Ufe(this).source||Bfe(this)})});var yj=Be((vae,Jt0)=>{var Yfe=Math.ceil,Vfe=Math.floor;Jt0.exports=function(H0){var z0=+H0;return z0!==z0||z0===0?0:(z0>0?Vfe:Yfe)(z0)}});var Zt0=Be((lae,$t0)=>{var zfe=yj(),Kfe=Math.max,Wfe=Math.min;$t0.exports=function(H0,z0){var xr=zfe(H0);return xr<0?Kfe(xr+z0,0):Wfe(xr,z0)}});var ru0=Be((bae,Qt0)=>{var Jfe=yj(),$fe=Math.min;Qt0.exports=function(H0){return H0>0?$fe(Jfe(H0),9007199254740991):0}});var nu0=Be((pae,eu0)=>{var Zfe=ru0();eu0.exports=function(H0){return Zfe(H0.length)}});var iu0=Be((mae,uu0)=>{var Qfe=w_(),rxe=Zt0(),exe=nu0(),tu0=function(H0){return function(z0,xr,gr){var de=Qfe(z0),Ve=exe(de),De=rxe(gr,Ve),Ke;if(H0&&xr!=xr){for(;Ve>De;)if(Ke=de[De++],Ke!=Ke)return!0}else for(;Ve>De;De++)if((H0||De in de)&&de[De]===xr)return H0||De||0;return!H0&&-1}};uu0.exports={includes:tu0(!0),indexOf:tu0(!1)}});var ou0=Be((_ae,xu0)=>{var nxe=zc(),hj=r1(),txe=w_(),uxe=iu0().indexOf,ixe=cj(),fu0=nxe([].push);xu0.exports=function(H0,z0){var xr=txe(H0),gr=0,de=[],Ve;for(Ve in xr)!hj(ixe,Ve)&&hj(xr,Ve)&&fu0(de,Ve);for(;z0.length>gr;)hj(xr,Ve=z0[gr++])&&(~uxe(de,Ve)||fu0(de,Ve));return de}});var cu0=Be((yae,au0)=>{au0.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var vu0=Be(su0=>{var fxe=ou0(),xxe=cu0(),oxe=xxe.concat(\"length\",\"prototype\");su0.f=Object.getOwnPropertyNames||function(z0){return fxe(z0,oxe)}});var bu0=Be(lu0=>{lu0.f=Object.getOwnPropertySymbols});var mu0=Be((kae,pu0)=>{var axe=E_(),cxe=zc(),sxe=vu0(),vxe=bu0(),lxe=nj(),bxe=cxe([].concat);pu0.exports=axe(\"Reflect\",\"ownKeys\")||function(z0){var xr=sxe.f(lxe(z0)),gr=vxe.f;return gr?bxe(xr,gr(z0)):xr}});var hu0=Be((wae,yu0)=>{var _u0=r1(),pxe=mu0(),mxe=ej(),_xe=xj();yu0.exports=function(H0,z0,xr){for(var gr=pxe(z0),de=_xe.f,Ve=mxe.f,De=0;De{var yxe=Qs(),hxe=Kc(),dxe=/#|\\.prototype\\./,c4=function(H0,z0){var xr=wxe[kxe(H0)];return xr==Sxe?!0:xr==Exe?!1:hxe(z0)?yxe(z0):!!z0},kxe=c4.normalize=function(H0){return String(H0).replace(dxe,\".\").toLowerCase()},wxe=c4.data={},Exe=c4.NATIVE=\"N\",Sxe=c4.POLYFILL=\"P\";du0.exports=c4});var Eu0=Be((Sae,wu0)=>{var dj=ru(),gxe=ej().f,Fxe=O_(),Txe=Wt0(),Oxe=g_(),Ixe=hu0(),Axe=ku0();wu0.exports=function(H0,z0){var xr=H0.target,gr=H0.global,de=H0.stat,Ve,De,Ke,tn,Qn,rt;if(gr?De=dj:de?De=dj[xr]||Oxe(xr,{}):De=(dj[xr]||{}).prototype,De)for(Ke in z0){if(Qn=z0[Ke],H0.noTargetGet?(rt=gxe(De,Ke),tn=rt&&rt.value):tn=De[Ke],Ve=Axe(gr?Ke:xr+(de?\".\":\"#\")+Ke,H0.forced),!Ve&&tn!==void 0){if(typeof Qn==typeof tn)continue;Ixe(Qn,tn)}(H0.sham||tn&&tn.sham)&&Fxe(Qn,\"sham\",!0),Txe(De,Ke,Qn,H0)}}});var Su0=Be(()=>{var Nxe=Eu0(),Cxe=ru();Nxe({global:!0},{globalThis:Cxe})});var gu0=Be(()=>{Su0()});var soe=Be((Iae,zu0)=>{gu0();var Zq=Object.defineProperty,Pxe=Object.getOwnPropertyDescriptor,Qq=Object.getOwnPropertyNames,Dxe=Object.prototype.hasOwnProperty,C_=(H0,z0)=>function(){return H0&&(z0=(0,H0[Qq(H0)[0]])(H0=0)),z0},eu=(H0,z0)=>function(){return z0||(0,H0[Qq(H0)[0]])((z0={exports:{}}).exports,z0),z0.exports},rU=(H0,z0)=>{for(var xr in z0)Zq(H0,xr,{get:z0[xr],enumerable:!0})},Lxe=(H0,z0,xr,gr)=>{if(z0&&typeof z0==\"object\"||typeof z0==\"function\")for(let de of Qq(z0))!Dxe.call(H0,de)&&de!==xr&&Zq(H0,de,{get:()=>z0[de],enumerable:!(gr=Pxe(z0,de))||gr.enumerable});return H0},eU=H0=>Lxe(Zq({},\"__esModule\",{value:!0}),H0),Pt=C_({\"\"(){}}),Fu0=eu({\"src/common/parser-create-error.js\"(H0,z0){\"use strict\";Pt();function xr(gr,de){let Ve=new SyntaxError(gr+\" (\"+de.start.line+\":\"+de.start.column+\")\");return Ve.loc=de,Ve}z0.exports=xr}}),Tu0={};rU(Tu0,{EOL:()=>Sj,arch:()=>Rxe,cpus:()=>Du0,default:()=>Mu0,endianness:()=>Ou0,freemem:()=>Cu0,getNetworkInterfaces:()=>Gu0,hostname:()=>Iu0,loadavg:()=>Au0,networkInterfaces:()=>ju0,platform:()=>jxe,release:()=>Ru0,tmpDir:()=>wj,tmpdir:()=>Ej,totalmem:()=>Pu0,type:()=>Lu0,uptime:()=>Nu0});function Ou0(){if(typeof N_>\"u\"){var H0=new ArrayBuffer(2),z0=new Uint8Array(H0),xr=new Uint16Array(H0);if(z0[0]=1,z0[1]=2,xr[0]===258)N_=\"BE\";else if(xr[0]===513)N_=\"LE\";else throw new Error(\"unable to figure out endianess\")}return N_}function Iu0(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function Au0(){return[]}function Nu0(){return 0}function Cu0(){return Number.MAX_VALUE}function Pu0(){return Number.MAX_VALUE}function Du0(){return[]}function Lu0(){return\"Browser\"}function Ru0(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function ju0(){}function Gu0(){}function Rxe(){return\"javascript\"}function jxe(){return\"browser\"}function wj(){return\"/tmp\"}var N_,Ej,Sj,Mu0,Gxe=C_({\"node-modules-polyfills:os\"(){Pt(),Ej=wj,Sj=`\n`,Mu0={EOL:Sj,tmpdir:Ej,tmpDir:wj,networkInterfaces:ju0,getNetworkInterfaces:Gu0,release:Ru0,type:Lu0,cpus:Du0,totalmem:Pu0,freemem:Cu0,uptime:Nu0,loadavg:Au0,hostname:Iu0,endianness:Ou0}}}),Mxe=eu({\"node-modules-polyfills-commonjs:os\"(H0,z0){Pt();var xr=(Gxe(),eU(Tu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),Bxe=eu({\"node_modules/detect-newline/index.js\"(H0,z0){\"use strict\";Pt();var xr=gr=>{if(typeof gr!=\"string\")throw new TypeError(\"Expected a string\");let de=gr.match(/(?:\\r?\\n)/g)||[];if(de.length===0)return;let Ve=de.filter(Ke=>Ke===`\\r\n`).length,De=de.length-Ve;return Ve>De?`\\r\n`:`\n`};z0.exports=xr,z0.exports.graceful=gr=>typeof gr==\"string\"&&xr(gr)||`\n`}}),qxe=eu({\"node_modules/jest-docblock/build/index.js\"(H0){\"use strict\";Pt(),Object.defineProperty(H0,\"__esModule\",{value:!0}),H0.extract=au,H0.parse=Kt,H0.parseWithComments=Zi,H0.print=Ln,H0.strip=En;function z0(){let fn=Mxe();return z0=function(){return fn},fn}function xr(){let fn=gr(Bxe());return xr=function(){return fn},fn}function gr(fn){return fn&&fn.__esModule?fn:{default:fn}}var de=/\\*\\/$/,Ve=/^\\/\\*\\*/,De=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,Ke=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,tn=/^(\\r?\\n)+/,Qn=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,rt=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,tt=/(\\r?\\n|^) *\\* ?/g,Ot=[];function au(fn){let Ht=fn.match(De);return Ht?Ht[0].trimLeft():\"\"}function En(fn){let Ht=fn.match(De);return Ht&&Ht[0]?fn.substring(Ht[0].length):fn}function Kt(fn){return Zi(fn).pragmas}function Zi(fn){let Ht=(0,xr().default)(fn)||z0().EOL;fn=fn.replace(Ve,\"\").replace(de,\"\").replace(tt,\"$1\");let S7=\"\";for(;S7!==fn;)S7=fn,fn=fn.replace(Qn,\"\".concat(Ht,\"$1 $2\").concat(Ht));fn=fn.replace(tn,\"\").trimRight();let Dt=Object.create(null),ks=fn.replace(rt,\"\").replace(tn,\"\").trimRight(),In;for(;In=rt.exec(fn);){let Wc=In[2].replace(Ke,\"\");typeof Dt[In[1]]==\"string\"||Array.isArray(Dt[In[1]])?Dt[In[1]]=Ot.concat(Dt[In[1]],Wc):Dt[In[1]]=Wc}return{comments:ks,pragmas:Dt}}function Ln(fn){let{comments:Ht=\"\",pragmas:S7={}}=fn,Dt=(0,xr().default)(Ht)||z0().EOL,ks=\"/**\",In=\" *\",Wc=\" */\",Ai=Object.keys(S7),li=Ai.map(g7=>Tn(g7,S7[g7])).reduce((g7,av)=>g7.concat(av),[]).map(g7=>In+\" \"+g7+Dt).join(\"\");if(!Ht){if(Ai.length===0)return\"\";if(Ai.length===1&&!Array.isArray(S7[Ai[0]])){let g7=S7[Ai[0]];return\"\".concat(ks,\" \").concat(Tn(Ai[0],g7)[0]).concat(Wc)}}let jt=Ht.split(Dt).map(g7=>\"\".concat(In,\" \").concat(g7)).join(Dt)+Dt;return ks+Dt+(Ht?jt:\"\")+(Ht&&Ai.length?In+Dt:\"\")+li+Wc}function Tn(fn,Ht){return Ot.concat(Ht).map(S7=>\"@\".concat(fn,\" \").concat(S7).trim())}}}),Uxe=eu({\"src/common/end-of-line.js\"(H0,z0){\"use strict\";Pt();function xr(De){let Ke=De.indexOf(\"\\r\");return Ke>=0?De.charAt(Ke+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function gr(De){switch(De){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function de(De,Ke){let tn;switch(Ke){case`\n`:tn=/\\n/g;break;case\"\\r\":tn=/\\r/g;break;case`\\r\n`:tn=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(Ke),\".\"))}let Qn=De.match(tn);return Qn?Qn.length:0}function Ve(De){return De.replace(/\\r\\n?/g,`\n`)}z0.exports={guessEndOfLine:xr,convertEndOfLineToChars:gr,countEndOfLineChars:de,normalizeEndOfLine:Ve}}}),Hxe=eu({\"src/language-js/utils/get-shebang.js\"(H0,z0){\"use strict\";Pt();function xr(gr){if(!gr.startsWith(\"#!\"))return\"\";let de=gr.indexOf(`\n`);return de===-1?gr:gr.slice(0,de)}z0.exports=xr}}),Xxe=eu({\"src/language-js/pragma.js\"(H0,z0){\"use strict\";Pt();var{parseWithComments:xr,strip:gr,extract:de,print:Ve}=qxe(),{normalizeEndOfLine:De}=Uxe(),Ke=Hxe();function tn(tt){let Ot=Ke(tt);Ot&&(tt=tt.slice(Ot.length+1));let au=de(tt),{pragmas:En,comments:Kt}=xr(au);return{shebang:Ot,text:tt,pragmas:En,comments:Kt}}function Qn(tt){let Ot=Object.keys(tn(tt).pragmas);return Ot.includes(\"prettier\")||Ot.includes(\"format\")}function rt(tt){let{shebang:Ot,text:au,pragmas:En,comments:Kt}=tn(tt),Zi=gr(au),Ln=Ve({pragmas:Object.assign({format:\"\"},En),comments:Kt.trimStart()});return(Ot?\"\".concat(Ot,`\n`):\"\")+De(Ln)+(Zi.startsWith(`\n`)?`\n`:`\n\n`)+Zi}z0.exports={hasPragma:Qn,insertPragma:rt}}}),Yxe=eu({\"src/utils/is-non-empty-array.js\"(H0,z0){\"use strict\";Pt();function xr(gr){return Array.isArray(gr)&&gr.length>0}z0.exports=xr}}),Bu0=eu({\"src/language-js/loc.js\"(H0,z0){\"use strict\";Pt();var xr=Yxe();function gr(tn,Qn){let{ignoreDecorators:rt}=Qn||{};if(!rt){let tt=tn.declaration&&tn.declaration.decorators||tn.decorators;if(xr(tt))return gr(tt[0])}return tn.range?tn.range[0]:tn.start}function de(tn){return tn.range?tn.range[1]:tn.end}function Ve(tn,Qn){let rt=gr(tn);return Number.isInteger(rt)&&rt===gr(Qn)}function De(tn,Qn){let rt=de(tn);return Number.isInteger(rt)&&rt===de(Qn)}function Ke(tn,Qn){return Ve(tn,Qn)&&De(tn,Qn)}z0.exports={locStart:gr,locEnd:de,hasSameLocStart:Ve,hasSameLoc:Ke}}}),Vxe=eu({\"src/language-js/parse/utils/create-parser.js\"(H0,z0){\"use strict\";Pt();var{hasPragma:xr}=Xxe(),{locStart:gr,locEnd:de}=Bu0();function Ve(De){return De=typeof De==\"function\"?{parse:De}:De,Object.assign({astFormat:\"estree\",hasPragma:xr,locStart:gr,locEnd:de},De)}z0.exports=Ve}}),zxe=eu({\"src/language-js/parse/utils/replace-hashbang.js\"(H0,z0){\"use strict\";Pt();function xr(gr){return gr.charAt(0)===\"#\"&&gr.charAt(1)===\"!\"?\"//\"+gr.slice(2):gr}z0.exports=xr}}),Kxe=eu({\"src/language-js/utils/is-ts-keyword-type.js\"(H0,z0){\"use strict\";Pt();function xr(gr){let{type:de}=gr;return de.startsWith(\"TS\")&&de.endsWith(\"Keyword\")}z0.exports=xr}}),Wxe=eu({\"src/language-js/utils/is-block-comment.js\"(H0,z0){\"use strict\";Pt();var xr=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),gr=de=>xr.has(de==null?void 0:de.type);z0.exports=gr}}),Jxe=eu({\"src/language-js/utils/is-type-cast-comment.js\"(H0,z0){\"use strict\";Pt();var xr=Wxe();function gr(de){return xr(de)&&de.value[0]===\"*\"&&/@type\\b/.test(de.value)}z0.exports=gr}}),$xe=eu({\"src/utils/get-last.js\"(H0,z0){\"use strict\";Pt();var xr=gr=>gr[gr.length-1];z0.exports=xr}}),qu0=eu({\"src/language-js/parse/postprocess/visit-node.js\"(H0,z0){\"use strict\";Pt();function xr(gr,de){if(Array.isArray(gr)){for(let Ve=0;Ve{let au=Qn.get(Ot);return!au||!tt.includes(au)}))&&gr(tn,\"Leading decorators must be attached to a class declaration\")}function Ve(Ke,tn){Ke.kind!==167||Ke.modifiers&&!Ke.modifiers.some(tt=>tt.kind===126)||Ke.initializer&&tn.value===null&&gr(tn,\"Abstract property cannot have an initializer\")}function De(Ke,tn){let{esTreeNodeToTSNodeMap:Qn,tsNodeToESTreeNodeMap:rt}=tn.tsParseResult;xr(Ke,tt=>{let Ot=Qn.get(tt);if(!Ot)return;let au=rt.get(Ot);au===tt&&(de(Ot,au,rt),Ve(Ot,au))})}z0.exports={throwErrorForInvalidNodes:De}}}),Qxe=eu({\"src/language-js/parse/postprocess/index.js\"(H0,z0){\"use strict\";Pt();var{locStart:xr,locEnd:gr}=Bu0(),de=Kxe(),Ve=Jxe(),De=$xe(),Ke=qu0(),{throwErrorForInvalidNodes:tn}=Zxe(),Qn=Uu0();function rt(En,Kt){if(Kt.parser===\"typescript\"&&/@|abstract/.test(Kt.originalText)&&tn(En,Kt),Kt.parser!==\"typescript\"&&Kt.parser!==\"flow\"&&Kt.parser!==\"acorn\"&&Kt.parser!==\"espree\"&&Kt.parser!==\"meriyah\"){let Ln=new Set;En=Ke(En,Tn=>{Tn.leadingComments&&Tn.leadingComments.some(Ve)&&Ln.add(xr(Tn))}),En=Ke(En,Tn=>{if(Tn.type===\"ParenthesizedExpression\"){let{expression:fn}=Tn;if(fn.type===\"TypeCastExpression\")return fn.range=Tn.range,fn;let Ht=xr(Tn);if(!Ln.has(Ht))return fn.extra=Object.assign(Object.assign({},fn.extra),{},{parenthesized:!0}),fn}})}return En=Ke(En,Ln=>{switch(Ln.type){case\"ChainExpression\":return tt(Ln.expression);case\"LogicalExpression\":{if(Ot(Ln))return au(Ln);break}case\"VariableDeclaration\":{let Tn=De(Ln.declarations);Tn&&Tn.init&&Zi(Ln,Tn);break}case\"TSParenthesizedType\":return de(Ln.typeAnnotation)||Ln.typeAnnotation.type===\"TSThisType\"||(Ln.typeAnnotation.range=[xr(Ln),gr(Ln)]),Ln.typeAnnotation;case\"TSTypeParameter\":if(typeof Ln.name==\"string\"){let Tn=xr(Ln);Ln.name={type:\"Identifier\",name:Ln.name,range:[Tn,Tn+Ln.name.length]}}break;case\"ObjectExpression\":if(Kt.parser===\"typescript\"){let Tn=Ln.properties.find(fn=>fn.type===\"Property\"&&fn.value.type===\"TSEmptyBodyFunctionExpression\");Tn&&Qn(Tn.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let Tn=De(Ln.expressions);Ln.range=[xr(Ln),Math.min(gr(Tn),gr(Ln))];break}case\"TopicReference\":Kt.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:Tn}=Ln;if(Kt.parser===\"meriyah\"&&Tn&&Tn.type===\"Identifier\"){let fn=Kt.originalText.slice(xr(Tn),gr(Tn));(fn.startsWith('\"')||fn.startsWith(\"'\"))&&(Ln.exported=Object.assign(Object.assign({},Ln.exported),{},{type:\"Literal\",value:Ln.exported.name,raw:fn}))}break}}}),En;function Zi(Ln,Tn){Kt.originalText[gr(Tn)]!==\";\"&&(Ln.range=[xr(Ln),gr(Tn)])}}function tt(En){switch(En.type){case\"CallExpression\":En.type=\"OptionalCallExpression\",En.callee=tt(En.callee);break;case\"MemberExpression\":En.type=\"OptionalMemberExpression\",En.object=tt(En.object);break;case\"TSNonNullExpression\":En.expression=tt(En.expression);break}return En}function Ot(En){return En.type===\"LogicalExpression\"&&En.right.type===\"LogicalExpression\"&&En.operator===En.right.operator}function au(En){return Ot(En)?au({type:\"LogicalExpression\",operator:En.operator,left:au({type:\"LogicalExpression\",operator:En.operator,left:En.left,right:En.right.left,range:[xr(En.left),gr(En.right.left)]}),right:En.right.right,range:[xr(En),gr(En)]}):En}z0.exports=rt}}),Hu0={};rU(Hu0,{default:()=>Xu0});var Xu0,roe=C_({\"node-modules-polyfills:fs\"(){Pt(),Xu0={}}}),kj=eu({\"node-modules-polyfills-commonjs:fs\"(H0,z0){Pt();var xr=(roe(),eU(Hu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),Yu0={};rU(Yu0,{ALPN_ENABLED:()=>Pq,COPYFILE_EXCL:()=>CB,COPYFILE_FICLONE:()=>DB,COPYFILE_FICLONE_FORCE:()=>RB,DH_CHECK_P_NOT_PRIME:()=>Aq,DH_CHECK_P_NOT_SAFE_PRIME:()=>Iq,DH_NOT_SUITABLE_GENERATOR:()=>Cq,DH_UNABLE_TO_CHECK_GENERATOR:()=>Nq,E2BIG:()=>Ij,EACCES:()=>Aj,EADDRINUSE:()=>Nj,EADDRNOTAVAIL:()=>Cj,EAFNOSUPPORT:()=>Pj,EAGAIN:()=>Dj,EALREADY:()=>Lj,EBADF:()=>Rj,EBADMSG:()=>jj,EBUSY:()=>Gj,ECANCELED:()=>Mj,ECHILD:()=>Bj,ECONNABORTED:()=>qj,ECONNREFUSED:()=>Uj,ECONNRESET:()=>Hj,EDEADLK:()=>Xj,EDESTADDRREQ:()=>Yj,EDOM:()=>Vj,EDQUOT:()=>zj,EEXIST:()=>Kj,EFAULT:()=>Wj,EFBIG:()=>Jj,EHOSTUNREACH:()=>$j,EIDRM:()=>Zj,EILSEQ:()=>Qj,EINPROGRESS:()=>rG,EINTR:()=>eG,EINVAL:()=>nG,EIO:()=>tG,EISCONN:()=>uG,EISDIR:()=>iG,ELOOP:()=>fG,EMFILE:()=>xG,EMLINK:()=>oG,EMSGSIZE:()=>aG,EMULTIHOP:()=>cG,ENAMETOOLONG:()=>sG,ENETDOWN:()=>vG,ENETRESET:()=>lG,ENETUNREACH:()=>bG,ENFILE:()=>pG,ENGINE_METHOD_ALL:()=>Tq,ENGINE_METHOD_CIPHERS:()=>Eq,ENGINE_METHOD_DH:()=>dq,ENGINE_METHOD_DIGESTS:()=>Sq,ENGINE_METHOD_DSA:()=>hq,ENGINE_METHOD_EC:()=>wq,ENGINE_METHOD_NONE:()=>Oq,ENGINE_METHOD_PKEY_ASN1_METHS:()=>Fq,ENGINE_METHOD_PKEY_METHS:()=>gq,ENGINE_METHOD_RAND:()=>kq,ENGINE_METHOD_RSA:()=>yq,ENOBUFS:()=>mG,ENODATA:()=>_G,ENODEV:()=>yG,ENOENT:()=>hG,ENOEXEC:()=>dG,ENOLCK:()=>kG,ENOLINK:()=>wG,ENOMEM:()=>EG,ENOMSG:()=>SG,ENOPROTOOPT:()=>gG,ENOSPC:()=>FG,ENOSR:()=>TG,ENOSTR:()=>OG,ENOSYS:()=>IG,ENOTCONN:()=>AG,ENOTDIR:()=>NG,ENOTEMPTY:()=>CG,ENOTSOCK:()=>PG,ENOTSUP:()=>DG,ENOTTY:()=>LG,ENXIO:()=>RG,EOPNOTSUPP:()=>jG,EOVERFLOW:()=>GG,EPERM:()=>MG,EPIPE:()=>BG,EPROTO:()=>qG,EPROTONOSUPPORT:()=>UG,EPROTOTYPE:()=>HG,ERANGE:()=>XG,EROFS:()=>YG,ESPIPE:()=>VG,ESRCH:()=>zG,ESTALE:()=>KG,ETIME:()=>WG,ETIMEDOUT:()=>JG,ETXTBSY:()=>$G,EWOULDBLOCK:()=>ZG,EXDEV:()=>QG,F_OK:()=>TB,OPENSSL_VERSION_NUMBER:()=>jB,O_APPEND:()=>oB,O_CREAT:()=>uB,O_DIRECTORY:()=>aB,O_DSYNC:()=>vB,O_EXCL:()=>iB,O_NOCTTY:()=>fB,O_NOFOLLOW:()=>cB,O_NONBLOCK:()=>bB,O_RDONLY:()=>MM,O_RDWR:()=>qM,O_SYMLINK:()=>lB,O_SYNC:()=>sB,O_TRUNC:()=>xB,O_WRONLY:()=>BM,POINT_CONVERSION_COMPRESSED:()=>Kq,POINT_CONVERSION_HYBRID:()=>Jq,POINT_CONVERSION_UNCOMPRESSED:()=>Wq,PRIORITY_ABOVE_NORMAL:()=>tM,PRIORITY_BELOW_NORMAL:()=>eM,PRIORITY_HIGH:()=>uM,PRIORITY_HIGHEST:()=>iM,PRIORITY_LOW:()=>rM,PRIORITY_NORMAL:()=>nM,RSA_NO_PADDING:()=>Rq,RSA_PKCS1_OAEP_PADDING:()=>jq,RSA_PKCS1_PADDING:()=>Dq,RSA_PKCS1_PSS_PADDING:()=>Mq,RSA_PSS_SALTLEN_AUTO:()=>Uq,RSA_PSS_SALTLEN_DIGEST:()=>Bq,RSA_PSS_SALTLEN_MAX_SIGN:()=>qq,RSA_SSLV23_PADDING:()=>Lq,RSA_X931_PADDING:()=>Gq,RTLD_GLOBAL:()=>Tj,RTLD_LAZY:()=>gj,RTLD_LOCAL:()=>Oj,RTLD_NOW:()=>Fj,R_OK:()=>OB,SIGABRT:()=>sM,SIGALRM:()=>dM,SIGBUS:()=>lM,SIGCHLD:()=>wM,SIGCONT:()=>EM,SIGFPE:()=>bM,SIGHUP:()=>fM,SIGILL:()=>aM,SIGINFO:()=>LM,SIGINT:()=>xM,SIGIO:()=>DM,SIGIOT:()=>vM,SIGKILL:()=>pM,SIGPIPE:()=>hM,SIGPROF:()=>CM,SIGQUIT:()=>oM,SIGSEGV:()=>_M,SIGSTOP:()=>SM,SIGSYS:()=>RM,SIGTERM:()=>kM,SIGTRAP:()=>cM,SIGTSTP:()=>gM,SIGTTIN:()=>FM,SIGTTOU:()=>TM,SIGURG:()=>OM,SIGUSR1:()=>mM,SIGUSR2:()=>yM,SIGVTALRM:()=>NM,SIGWINCH:()=>PM,SIGXCPU:()=>IM,SIGXFSZ:()=>AM,SSL_OP_ALL:()=>GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:()=>MB,SSL_OP_CIPHER_SERVER_PREFERENCE:()=>BB,SSL_OP_CISCO_ANYCONNECT:()=>qB,SSL_OP_COOKIE_EXCHANGE:()=>UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:()=>HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:()=>XB,SSL_OP_EPHEMERAL_RSA:()=>YB,SSL_OP_LEGACY_SERVER_CONNECT:()=>VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:()=>zB,SSL_OP_MICROSOFT_SESS_ID_BUG:()=>KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:()=>WB,SSL_OP_NETSCAPE_CA_DN_BUG:()=>JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:()=>$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:()=>ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:()=>QB,SSL_OP_NO_COMPRESSION:()=>rq,SSL_OP_NO_QUERY_MTU:()=>eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:()=>nq,SSL_OP_NO_SSLv2:()=>tq,SSL_OP_NO_SSLv3:()=>uq,SSL_OP_NO_TICKET:()=>iq,SSL_OP_NO_TLSv1:()=>fq,SSL_OP_NO_TLSv1_1:()=>xq,SSL_OP_NO_TLSv1_2:()=>oq,SSL_OP_PKCS1_CHECK_1:()=>aq,SSL_OP_PKCS1_CHECK_2:()=>cq,SSL_OP_SINGLE_DH_USE:()=>sq,SSL_OP_SINGLE_ECDH_USE:()=>vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:()=>lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:()=>bq,SSL_OP_TLS_BLOCK_PADDING_BUG:()=>pq,SSL_OP_TLS_D5_BUG:()=>mq,SSL_OP_TLS_ROLLBACK_BUG:()=>_q,S_IFBLK:()=>rB,S_IFCHR:()=>QM,S_IFDIR:()=>ZM,S_IFIFO:()=>eB,S_IFLNK:()=>nB,S_IFMT:()=>JM,S_IFREG:()=>$M,S_IFSOCK:()=>tB,S_IRGRP:()=>dB,S_IROTH:()=>SB,S_IRUSR:()=>mB,S_IRWXG:()=>hB,S_IRWXO:()=>EB,S_IRWXU:()=>pB,S_IWGRP:()=>kB,S_IWOTH:()=>gB,S_IWUSR:()=>_B,S_IXGRP:()=>wB,S_IXOTH:()=>FB,S_IXUSR:()=>yB,TLS1_1_VERSION:()=>Yq,TLS1_2_VERSION:()=>Vq,TLS1_3_VERSION:()=>zq,TLS1_VERSION:()=>Xq,UV_DIRENT_BLOCK:()=>WM,UV_DIRENT_CHAR:()=>KM,UV_DIRENT_DIR:()=>XM,UV_DIRENT_FIFO:()=>VM,UV_DIRENT_FILE:()=>HM,UV_DIRENT_LINK:()=>YM,UV_DIRENT_SOCKET:()=>zM,UV_DIRENT_UNKNOWN:()=>UM,UV_FS_COPYFILE_EXCL:()=>NB,UV_FS_COPYFILE_FICLONE:()=>PB,UV_FS_COPYFILE_FICLONE_FORCE:()=>LB,UV_FS_SYMLINK_DIR:()=>jM,UV_FS_SYMLINK_JUNCTION:()=>GM,W_OK:()=>IB,X_OK:()=>AB,default:()=>Vu0,defaultCipherList:()=>$q,defaultCoreCipherList:()=>Hq});var gj,Fj,Tj,Oj,Ij,Aj,Nj,Cj,Pj,Dj,Lj,Rj,jj,Gj,Mj,Bj,qj,Uj,Hj,Xj,Yj,Vj,zj,Kj,Wj,Jj,$j,Zj,Qj,rG,eG,nG,tG,uG,iG,fG,xG,oG,aG,cG,sG,vG,lG,bG,pG,mG,_G,yG,hG,dG,kG,wG,EG,SG,gG,FG,TG,OG,IG,AG,NG,CG,PG,DG,LG,RG,jG,GG,MG,BG,qG,UG,HG,XG,YG,VG,zG,KG,WG,JG,$G,ZG,QG,rM,eM,nM,tM,uM,iM,fM,xM,oM,aM,cM,sM,vM,lM,bM,pM,mM,_M,yM,hM,dM,kM,wM,EM,SM,gM,FM,TM,OM,IM,AM,NM,CM,PM,DM,LM,RM,jM,GM,MM,BM,qM,UM,HM,XM,YM,VM,zM,KM,WM,JM,$M,ZM,QM,rB,eB,nB,tB,uB,iB,fB,xB,oB,aB,cB,sB,vB,lB,bB,pB,mB,_B,yB,hB,dB,kB,wB,EB,SB,gB,FB,TB,OB,IB,AB,NB,CB,PB,DB,LB,RB,jB,GB,MB,BB,qB,UB,HB,XB,YB,VB,zB,KB,WB,JB,$B,ZB,QB,rq,eq,nq,tq,uq,iq,fq,xq,oq,aq,cq,sq,vq,lq,bq,pq,mq,_q,yq,hq,dq,kq,wq,Eq,Sq,gq,Fq,Tq,Oq,Iq,Aq,Nq,Cq,Pq,Dq,Lq,Rq,jq,Gq,Mq,Bq,qq,Uq,Hq,Xq,Yq,Vq,zq,Kq,Wq,Jq,$q,Vu0,eoe=C_({\"node-modules-polyfills:constants\"(){Pt(),gj=1,Fj=2,Tj=8,Oj=4,Ij=7,Aj=13,Nj=48,Cj=49,Pj=47,Dj=35,Lj=37,Rj=9,jj=94,Gj=16,Mj=89,Bj=10,qj=53,Uj=61,Hj=54,Xj=11,Yj=39,Vj=33,zj=69,Kj=17,Wj=14,Jj=27,$j=65,Zj=90,Qj=92,rG=36,eG=4,nG=22,tG=5,uG=56,iG=21,fG=62,xG=24,oG=31,aG=40,cG=95,sG=63,vG=50,lG=52,bG=51,pG=23,mG=55,_G=96,yG=19,hG=2,dG=8,kG=77,wG=97,EG=12,SG=91,gG=42,FG=28,TG=98,OG=99,IG=78,AG=57,NG=20,CG=66,PG=38,DG=45,LG=25,RG=6,jG=102,GG=84,MG=1,BG=32,qG=100,UG=43,HG=41,XG=34,YG=30,VG=29,zG=3,KG=70,WG=101,JG=60,$G=26,ZG=35,QG=18,rM=19,eM=10,nM=0,tM=-7,uM=-14,iM=-20,fM=1,xM=2,oM=3,aM=4,cM=5,sM=6,vM=6,lM=10,bM=8,pM=9,mM=30,_M=11,yM=31,hM=13,dM=14,kM=15,wM=20,EM=19,SM=17,gM=18,FM=21,TM=22,OM=16,IM=24,AM=25,NM=26,CM=27,PM=28,DM=23,LM=29,RM=12,jM=1,GM=2,MM=0,BM=1,qM=2,UM=0,HM=1,XM=2,YM=3,VM=4,zM=5,KM=6,WM=7,JM=61440,$M=32768,ZM=16384,QM=8192,rB=24576,eB=4096,nB=40960,tB=49152,uB=512,iB=2048,fB=131072,xB=1024,oB=8,aB=1048576,cB=256,sB=128,vB=4194304,lB=2097152,bB=4,pB=448,mB=256,_B=128,yB=64,hB=56,dB=32,kB=16,wB=8,EB=7,SB=4,gB=2,FB=1,TB=0,OB=4,IB=2,AB=1,NB=1,CB=1,PB=2,DB=2,LB=4,RB=4,jB=269488175,GB=2147485780,MB=262144,BB=4194304,qB=32768,UB=8192,HB=2147483648,XB=2048,YB=0,VB=4,zB=0,KB=0,WB=0,JB=0,$B=0,ZB=0,QB=0,rq=131072,eq=4096,nq=65536,tq=0,uq=33554432,iq=16384,fq=67108864,xq=268435456,oq=134217728,aq=0,cq=0,sq=0,vq=0,lq=0,bq=0,pq=0,mq=0,_q=8388608,yq=1,hq=2,dq=4,kq=8,wq=2048,Eq=64,Sq=128,gq=512,Fq=1024,Tq=65535,Oq=0,Iq=2,Aq=1,Nq=4,Cq=8,Pq=1,Dq=1,Lq=2,Rq=3,jq=4,Gq=5,Mq=6,Bq=-1,qq=-2,Uq=-2,Hq=\"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA\",Xq=769,Yq=770,Vq=771,zq=772,Kq=2,Wq=4,Jq=6,$q=\"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA\",Vu0={RTLD_LAZY:gj,RTLD_NOW:Fj,RTLD_GLOBAL:Tj,RTLD_LOCAL:Oj,E2BIG:Ij,EACCES:Aj,EADDRINUSE:Nj,EADDRNOTAVAIL:Cj,EAFNOSUPPORT:Pj,EAGAIN:Dj,EALREADY:Lj,EBADF:Rj,EBADMSG:jj,EBUSY:Gj,ECANCELED:Mj,ECHILD:Bj,ECONNABORTED:qj,ECONNREFUSED:Uj,ECONNRESET:Hj,EDEADLK:Xj,EDESTADDRREQ:Yj,EDOM:Vj,EDQUOT:zj,EEXIST:Kj,EFAULT:Wj,EFBIG:Jj,EHOSTUNREACH:$j,EIDRM:Zj,EILSEQ:Qj,EINPROGRESS:rG,EINTR:eG,EINVAL:nG,EIO:tG,EISCONN:uG,EISDIR:iG,ELOOP:fG,EMFILE:xG,EMLINK:oG,EMSGSIZE:aG,EMULTIHOP:cG,ENAMETOOLONG:sG,ENETDOWN:vG,ENETRESET:lG,ENETUNREACH:bG,ENFILE:pG,ENOBUFS:mG,ENODATA:_G,ENODEV:yG,ENOENT:hG,ENOEXEC:dG,ENOLCK:kG,ENOLINK:wG,ENOMEM:EG,ENOMSG:SG,ENOPROTOOPT:gG,ENOSPC:FG,ENOSR:TG,ENOSTR:OG,ENOSYS:IG,ENOTCONN:AG,ENOTDIR:NG,ENOTEMPTY:CG,ENOTSOCK:PG,ENOTSUP:DG,ENOTTY:LG,ENXIO:RG,EOPNOTSUPP:jG,EOVERFLOW:GG,EPERM:MG,EPIPE:BG,EPROTO:qG,EPROTONOSUPPORT:UG,EPROTOTYPE:HG,ERANGE:XG,EROFS:YG,ESPIPE:VG,ESRCH:zG,ESTALE:KG,ETIME:WG,ETIMEDOUT:JG,ETXTBSY:$G,EWOULDBLOCK:ZG,EXDEV:QG,PRIORITY_LOW:rM,PRIORITY_BELOW_NORMAL:eM,PRIORITY_NORMAL:nM,PRIORITY_ABOVE_NORMAL:tM,PRIORITY_HIGH:uM,PRIORITY_HIGHEST:iM,SIGHUP:fM,SIGINT:xM,SIGQUIT:oM,SIGILL:aM,SIGTRAP:cM,SIGABRT:sM,SIGIOT:vM,SIGBUS:lM,SIGFPE:bM,SIGKILL:pM,SIGUSR1:mM,SIGSEGV:_M,SIGUSR2:yM,SIGPIPE:hM,SIGALRM:dM,SIGTERM:kM,SIGCHLD:wM,SIGCONT:EM,SIGSTOP:SM,SIGTSTP:gM,SIGTTIN:FM,SIGTTOU:TM,SIGURG:OM,SIGXCPU:IM,SIGXFSZ:AM,SIGVTALRM:NM,SIGPROF:CM,SIGWINCH:PM,SIGIO:DM,SIGINFO:LM,SIGSYS:RM,UV_FS_SYMLINK_DIR:jM,UV_FS_SYMLINK_JUNCTION:GM,O_RDONLY:MM,O_WRONLY:BM,O_RDWR:qM,UV_DIRENT_UNKNOWN:UM,UV_DIRENT_FILE:HM,UV_DIRENT_DIR:XM,UV_DIRENT_LINK:YM,UV_DIRENT_FIFO:VM,UV_DIRENT_SOCKET:zM,UV_DIRENT_CHAR:KM,UV_DIRENT_BLOCK:WM,S_IFMT:JM,S_IFREG:$M,S_IFDIR:ZM,S_IFCHR:QM,S_IFBLK:rB,S_IFIFO:eB,S_IFLNK:nB,S_IFSOCK:tB,O_CREAT:uB,O_EXCL:iB,O_NOCTTY:fB,O_TRUNC:xB,O_APPEND:oB,O_DIRECTORY:aB,O_NOFOLLOW:cB,O_SYNC:sB,O_DSYNC:vB,O_SYMLINK:lB,O_NONBLOCK:bB,S_IRWXU:pB,S_IRUSR:mB,S_IWUSR:_B,S_IXUSR:yB,S_IRWXG:hB,S_IRGRP:dB,S_IWGRP:kB,S_IXGRP:wB,S_IRWXO:EB,S_IROTH:SB,S_IWOTH:gB,S_IXOTH:FB,F_OK:TB,R_OK:OB,W_OK:IB,X_OK:AB,UV_FS_COPYFILE_EXCL:NB,COPYFILE_EXCL:CB,UV_FS_COPYFILE_FICLONE:PB,COPYFILE_FICLONE:DB,UV_FS_COPYFILE_FICLONE_FORCE:LB,COPYFILE_FICLONE_FORCE:RB,OPENSSL_VERSION_NUMBER:jB,SSL_OP_ALL:GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:MB,SSL_OP_CIPHER_SERVER_PREFERENCE:BB,SSL_OP_CISCO_ANYCONNECT:qB,SSL_OP_COOKIE_EXCHANGE:UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:XB,SSL_OP_EPHEMERAL_RSA:YB,SSL_OP_LEGACY_SERVER_CONNECT:VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:zB,SSL_OP_MICROSOFT_SESS_ID_BUG:KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:WB,SSL_OP_NETSCAPE_CA_DN_BUG:JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:QB,SSL_OP_NO_COMPRESSION:rq,SSL_OP_NO_QUERY_MTU:eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:nq,SSL_OP_NO_SSLv2:tq,SSL_OP_NO_SSLv3:uq,SSL_OP_NO_TICKET:iq,SSL_OP_NO_TLSv1:fq,SSL_OP_NO_TLSv1_1:xq,SSL_OP_NO_TLSv1_2:oq,SSL_OP_PKCS1_CHECK_1:aq,SSL_OP_PKCS1_CHECK_2:cq,SSL_OP_SINGLE_DH_USE:sq,SSL_OP_SINGLE_ECDH_USE:vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:bq,SSL_OP_TLS_BLOCK_PADDING_BUG:pq,SSL_OP_TLS_D5_BUG:mq,SSL_OP_TLS_ROLLBACK_BUG:_q,ENGINE_METHOD_RSA:yq,ENGINE_METHOD_DSA:hq,ENGINE_METHOD_DH:dq,ENGINE_METHOD_RAND:kq,ENGINE_METHOD_EC:wq,ENGINE_METHOD_CIPHERS:Eq,ENGINE_METHOD_DIGESTS:Sq,ENGINE_METHOD_PKEY_METHS:gq,ENGINE_METHOD_PKEY_ASN1_METHS:Fq,ENGINE_METHOD_ALL:Tq,ENGINE_METHOD_NONE:Oq,DH_CHECK_P_NOT_SAFE_PRIME:Iq,DH_CHECK_P_NOT_PRIME:Aq,DH_UNABLE_TO_CHECK_GENERATOR:Nq,DH_NOT_SUITABLE_GENERATOR:Cq,ALPN_ENABLED:Pq,RSA_PKCS1_PADDING:Dq,RSA_SSLV23_PADDING:Lq,RSA_NO_PADDING:Rq,RSA_PKCS1_OAEP_PADDING:jq,RSA_X931_PADDING:Gq,RSA_PKCS1_PSS_PADDING:Mq,RSA_PSS_SALTLEN_DIGEST:Bq,RSA_PSS_SALTLEN_MAX_SIGN:qq,RSA_PSS_SALTLEN_AUTO:Uq,defaultCoreCipherList:Hq,TLS1_VERSION:Xq,TLS1_1_VERSION:Yq,TLS1_2_VERSION:Vq,TLS1_3_VERSION:zq,POINT_CONVERSION_COMPRESSED:Kq,POINT_CONVERSION_UNCOMPRESSED:Wq,POINT_CONVERSION_HYBRID:Jq,defaultCipherList:$q}}}),noe=eu({\"node-modules-polyfills-commonjs:constants\"(H0,z0){Pt();var xr=(eoe(),eU(Yu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),toe=eu({\"node_modules/flow-parser/flow_parser.js\"(H0){Pt(),function(z0){\"use strict\";var xr=\"member_property_expression\",gr=8483,de=12538,Ve=\"children\",De=\"predicate_expression\",Ke=\"??\",tn=\"Identifier\",Qn=64311,rt=192,tt=11710,Ot=122654,au=110947,En=67591,Kt=\"!\",Zi=\"directive\",Ln=163,Tn=\"block\",fn=126553,Ht=12735,S7=68096,Dt=\"params\",ks=93071,In=122,Wc=72767,Ai=181,li=\"for_statement\",jt=128,g7=\"start\",av=43867,nU=\"_method\",P_=70414,cv=\">\",Qi=\"catch_body\",D_=120121,tU=\"the end of an expression statement (`;`)\",L_=124907,uU=1027,s4=126558,rf=\"jsx_fragment\",R_=42527,j_=\"decorators\",G_=82943,M_=71039,B_=110882,q_=67514,iU=8472,fU=\"update\",U_=12783,H_=12438,X_=12352,Y_=8511,V_=42961,F2=\"method\",v4=120713,ef=8191,nf=\"function_param\",z_=67871,F7=\"throw\",K_=11507,tf=\"class_extends\",W_=43470,uf=\"object_key_literal\",J_=71903,$_=65437,ff=\"jsx_child\",Z_=43311,l4=119995,Q_=67637,b4=68116,ry=66204,ey=65470,xU=\"<<=\",ny=\"e\",ty=67391,p4=11631,m4=69956,sv=\"tparams\",uy=66735,iy=64217,fy=43697,oU=\"Invalid binary/octal \",xy=-43,oy=43255,_4=\"do\",ay=43301,xf=\"binding_pattern\",cy=120487,of=\"jsx_attribute_value_literal\",y4=\"package\",af=\"interface_declaration\",sy=72750,vy=119892,aU=\"tail\",cU=-53,cf=111,sU=180,ly=119807,by=71959,vU=8206,py=65613,Jc=\"type\",my=55215,_y=-42,sf=\"export_default_declaration_decl\",h4=72970,lU=\"filtered_out\",yy=70416,bU=229,vf=\"function_this_param\",pU=\"module\",d4=\"try\",hy=70143,dy=125183,ky=70412,d0=\"@])\",lf=\"binary\",mU=\"infinity\",k4=\"private\",wy=65500,w4=\"has_unknown_members\",bf=\"pattern_array_rest_element\",_U=\"Property\",ws=\"implements\",Ey=12548,yU=211,pf=\"if_alternate_statement\",Sy=124903,gy=43395,vv=\"src/parser/type_parser.ml\",Fy=66915,E4=126552,Ty=120712,S4=126555,Oy=120596,c7=\"raw\",T7=112,mf=\"class_declaration\",_f=\"statement\",Iy=126624,Ay=71235,yf=\"meta_property\",Ny=44002,Cy=8467,hf=\"class_property_value\",Py=8318,df=\"optional_call\",Dy=43761,$c=\"kind\",kf=\"class_identifier\",Ly=69955,Ry=66378,jy=120512,Gy=68220,Xt=110,My=123583,T2=\"declare\",wf=\"typeof_member_identifier\",Ef=\"catch_clause\",By=11742,qy=70831,g4=8468,Sf=\"for_in_assignment_pattern\",hU=-32,gf=\"object_\",Uy=43262,Hy=\"mixins\",Ff=\"type_param\",dU=\"visit_trailing_comment\",Xy=71839,O2=\"boolean\",Tf=\"call\",kU=\"expected *\",Yy=43010,Vy=241,Nu=\"expression\",I2=\"column\",zy=43595,Ky=43258,Wy=191456,Of=\"member_type_identifier\",A2=117,Jy=43754,F4=126544,wU=\"Assert_failure\",$y=66517,Zy=42964,If=\"enum_number_member\",EU=\"a string\",Qy=65855,rh=119993,eh=\"opaque\",SU=870530776,nh=67711,th=66994,Af=\"enum_symbol_body\",gU=185,FU=219,T4=\"filter\",uh=43615,O4=126560,ih=19903,n1=\"get\",fh=64316,TU=`Fatal error: exception %s\n`,I4=\"exported\",OU=\">=\",Ju=\"return\",A4=\"members\",N4=256,xh=66962,oh=64279,ah=67829,IU=\"Enum `\",AU=\"&&=\",Nf=\"object_property\",ch=67589,Cf=\"pattern_object_property\",Pf=\"template_literal_element\",sh=69551,Ni=127343600,C4=70452,Df=\"class_element\",vh=\"ENOENT\",lh=71131,NU=200,bh=120137,ph=94098,P4=72349,CU=1328,Lf=\"function_identifier\",mh=126543,Rf=\"jsx_attribute_name\",_h=43487,dr=\"@[<2>{ \",PU=\"ENOTEMPTY\",yh=65908,hh=72191,D4=120513,dh=92909,DU=\"bound\",kh=162,LU=172,L4=120070,jf=\"enum_number_body\",Gf=\"update_expression\",Mf=\"spread_element\",Bf=\"for_in_left_declaration\",R4=64319,N2=\"%d\",wh=12703,j4=11687,RU=\"@,))@]\",Eh=42239,qf=\"type_cast\",Sh=42508,Uf=\"class_implements_interface\",gh=67640,Fh=605857695,jU=\"Cygwin\",GU=\"buffer.ml\",Th=124908,MU=\"handler\",Oh=66207,Ih=66963,G4=11558,BU=\"-=\",Pn=113,Ah=113775,qU=\"collect_comments\",M4=126540,lv=\"set\",Hf=\"assignment_pattern\",Cu=\"right\",Xf=\"object_key_identifier\",B4=120133,Nh=\"Invalid number \",Ch=42963,q4=12539,Ph=68023,Dh=43798,ti=100,Yf=\"pattern_literal\",Vf=\"generic_type\",UU=\"*\",Lh=42783,Rh=42890,jh=230,U4=\"else\",Gh=70851,Mh=69289,HU=\"the start of a statement\",H4=\"properties\",Bh=43696,qh=110959,zf=\"declare_function\",X4=120597,Kf=\"object_indexer_property_type\",Uh=70492,Hh=2048,C2=\"arguments\",Xr=\"comments\",Xh=43042,Zc=107,Yh=110575,XU=161,Vh=67431,Y4=\"line\",P2=\"declaration\",nu=\"static\",Wf=\"pattern_identifier\",zh=69958,YU=\"the\",Kh=\"Unix.Unix_error\",Wh=43814,Qc=\"annot\",Jh=65786,$h=66303,Zh=64967,Qh=64255,rd=8584,V4=120655,VU=\"Stack_overflow\",ed=43700,Jf=\"syntax_opt\",zU=\"/static/\",$f=\"comprehension\",nd=253,KU=\"Not_found\",WU=\"+=\",JU=235,td=68680,ud=66954,id=64324,fd=72966,$U=174,ZU=-1053382366,xd=\"rest\",Zf=\"pattern_array_element\",Qf=\"jsx_attribute_value_expression\",z4=65595,rx=\"pattern_array_e\",QU=243,od=43711,ad=\"rmdir\",K4=\"symbol\",cd=69926,W4=\"*dummy method*\",sd=43741,O7=\"typeParameters\",D2=\"const\",rH=1026,eH=149,vd=12341,ld=72847,bd=66993,nH=202,Ci=\"false\",Yt=106,pd=120076,md=186,Pi=128,_d=125124,yd=\"Fatal error: exception \",J4=67593,hd=69297,dd=44031,tH=234,kd=92927,wd=68095,$u=8231,ex=\"object_key_computed\",nx=\"labeled_statement\",tx=\"function_param_pattern\",$4=126590,Ed=65481,Sd=43442,uH=\"collect_comments_opt\",ux=\"variable_declarator\",bv=\"_\",gd=\"compare: functional value\",Fd=67967,pv=\"computed\",ix=\"object_property_type\",mt=\"id\",Td=126562,t1=114,iH=\"comment_bounds\",Od=70853,Id=69247,fx=\"class_private_field\",Ad=42237,Nd=72329,fH=\"Invalid_argument\",Cd=113770,Z4=94031,Pd=120092,xx=\"declare_class\",Dd=67839,Ld=72250,xH=\"%ni\",Rd=92879,oH=\"prototype\",Es=\"`.\",ox=8287,Q4=65344,jd=\"&\",I7=\"debugger\",ax=\"type_identifier_reference\",aH=\"Internal Error: Found private field in object props\",cx=\"sequence\",sx=\"call_type_args\",cH=238,Gd=12348,sH=\"++\",Md=68863,Bd=72001,qd=70084,Ud=\"label\",mv=-45,vx=\"jsx_opening_attribute\",Hd=43583,r8=\"%F\",Xd=43784,Yd=113791,lx=\"call_arguments\",e8=126503,Vd=43743,Zu=\"0\",zd=119967,n8=126538,bx=\"new_\",_v=449540197,Kd=64109,Wd=68466,Jd=177983,wt=248,px=\"program\",Xe=\"@,]@]\",$d=68031,mx=\"function_type\",_x=\"type_\",t8=8484,Zd=67382,Qd=42537,rk=226,ek=66559,nk=42993,tk=64274,u8=71236,uk=120069,ik=72105,fk=126570,xk=\"object\",ok=42959,A7=\"break\",yx=\"for_of_statement\",ak=43695,i8=126551,ck=66955,f8=126520,sk=66499,L2=1024,vk=67455,lk=43018,vH=198,x8=126522,hx=\"function_declaration\",bk=73064,dx=\"await\",pk=92728,mk=70418,_k=68119,kx=\"function_rest_param\",yk=42653,o8=11703,bi=\"left\",a8=70449,hk=184,wx=\"declare_type_alias\",Ex=16777215,c8=70302,lH=\"/=\",bH=\"|=\",dk=55242,kk=126583,wk=124927,Ek=124895,Sk=72959,gk=65497,pH=\"Invalid legacy octal \",rs=\"typeof\",Fk=\"explicit_type\",Sx=\"statement_list\",Tk=65495,gx=\"class_method\",s8=8526,v8=244,Ok=67861,l8=119994,b8=\"enum\",mH=2147483647,Ik=69762,_H=208,R2=\"in\",Ak=11702,p8=67638,yH=\", characters \",Nk=70753,yv=\"super\",Ck=92783,Pk=8304,m8=126504,Fx=\"import_specifier\",Dk=68324,Lk=101589,Rk=67646,Tx=\"expression_or_spread\",jk=74879,Gk=43792,_8=43260,Mk=93052,hH=\"{\",Bk=65574,qk=125258,hv=224,Ox=\"jsx_element_name_member_expression\",j2=\"instanceof\",Uk=69599,Hk=43560,Ix=\"function_expression\",y8=223,Xk=72242,Yk=11498,Vk=126467,zk=73112,dH=140,h8=70107,Kk=13311,Ax=\"jsx_children\",d8=126548,Wk=63743,k8=43471,Nx=\"jsx_expression\",Jk=69864,$k=71998,Zk=72e3,w8=126591,E8=12592,Cx=\"type_params\",Qk=126578,S8=126537,kr=\"{ \",rw=123627,Px=\"jsx_spread_attribute\",Ce=\"@,\",ew=70161,nw=187,g8=126500,Dx=\"label_identifier\",tw=42606,Lx=\"number_literal_type\",F8=42999,uw=64310,kH=-594953737,iw=122623,T8=\"hasUnknownMembers\",Rx=\"array\",wH=\"^=\",jx=\"enum_string_member\",fw=65536,xw=65615,es=\"void\",ow=65135,Z0=\")\",EH=138,aw=70002,G2=\"let\",cw=70271,sw=\"nan\",W=\"@[%s =@ \",vw=194559,lw=110579,Gx=\"binding_type_identifier\",bw=42735,SH=57343,Qu=\"/\",Mx=\"for_in_statement_lhs\",pw=43503,mw=8516,_w=66938,yw=\"ENOTDIR\",gH=\"TypeParameterInstantiation\",hw=69749,dw=65381,kw=83526,dv=\"number\",ww=12447,FH=154,O8=70286,Ew=72160,Sw=43493,TH=206,Bx=\"enum_member_identifier\",I8=70280,M2=\"function\",A8=70162,gw=255,Fw=67702,Tw=66771,Ow=70312,OH=\"|\",Iw=93759,IH=\"End_of_file\",Aw=43709,u1=\"new\",AH=\"Failure\",B2=\"local\",Nw=101631,N8=8489,C8=\"with\",qx=\"enum_declaration\",Cw=218,Pw=70457,P8=8488,Ux=\"member\",D8=64325,Dw=247,Lw=70448,Rw=69967,L8=126535,jw=71934,Hx=\"import_named_specifier\",Gw=65312,Mw=126619,Xx=\"type_annotation\",NH=56320,Bw=131071,qw=120770,Uw=67002,Yx=\"with_\",Vx=\"statement_fork_point\",CH=\"finalizer\",Hw=12320,PH=\"elements\",zx=\"literal\",Xw=68607,Yw=8507,R8=\"each\",DH=\"Sys_error\",Vw=123535,zw=130,Kx=\"bigint_literal_type\",Kw=64829,j8=11727,Ww=120538,Wx=\"member_private_name\",Jx=\"type_alias\",LH=\"Printexc.handle_uncaught_exception\",G8=126556,$x=\"tagged_template\",Zx=\"pattern_object_property_literal_key\",Jw=43881,M8=72192,$w=67826,Zw=124910,Qw=66511,ns=\"int_of_string\",rE=43249,nr=\"None\",RH=\"FunctionTypeParam\",ui=\"name\",eE=70285,s7=103,nE=120744,Qx=12288,ro=\"intersection_type\",tE=11679,B8=11559,jH=\"callee\",uE=71295,iE=70018,fE=11567,xE=42954,GH=\"*-/\",r7=\"predicate\",eo=\"expression_statement\",MH=\"regexp\",oE=65479,BH=132,aE=11389,qu=\"optional\",qH=-602162310,z=\"@]\",cE=120003,sE=72249,UH=\"Unexpected \",vE=73008,q8=\"finally\",no=\"toplevel_statement_list\",HH=\"end\",lE=178207,XH=\"&=\",bE=70301,YH=\"%Li\",pE=72161,mE=69746,_E=70460,yE=12799,U8=65535,hE=\"loc\",dE=69375,kE=43518,VH=205,wE=65487,to=\"while_\",EE=183983,uo=\"typeof_expression\",SE=-673950933,gE=42559,zH=\"||\",FE=124926,TE=55291,io=\"jsx_element_name_identifier\",fo=8239,H8=\"mixed\",KH=136,OE=-253313196,IE=11734,X8=67827,AE=68287,NE=119976,WH=\"**\",J=\" =\",Y8=888960333,CE=124902,xo=\"tuple_type\",JH=227,PE=70726,DE=73111,V8=126602,LE=126529,oo=\"object_property_value_type\",N0=\"%a\",$H=\", \",ZH=\"<=\",RE=69423,QH=199,z8=11695,jE=12294,K8=11711,GE=67583,rX=710,W8=126584,ME=68295,BE=72703,qE=\"prefix\",eX=-80,J8=69415,UE=11492,q2=\"class\",$8=65575,N7=\"continue\",HE=65663,nX=2047,Z8=68120,XE=71086,YE=19967,Di=782176664,VE=120779,Q8=8486,pi=\" \",tX=\"||=\",uX=\"Undefined_recursive_module\",zE=66863,iX=\"RestElement\",r3=126634,KE=66377,WE=74751,ao=\"jsx_element_name_namespaced\",JE=43334,$E=66815,C7=\"typeAnnotation\",ZE=120126,co=\"array_element\",e3=64285,fX=189,xX=\"**=\",Yr=\"()\",QE=8543,so=\"declare_module\",vo=\"export_batch_specifier\",oX=\"%i\",aX=\">>>=\",rS=68029,cX=\"importKind\",P7=\"extends\",eS=64296,n3=43259,nS=71679,tS=64913,uS=119969,iS=94175,fS=72440,t3=65141,lo=\"function_\",xS=43071,oS=42888,aS=69807,cu=\"variance\",ts=123,bo=\"import_default_specifier\",sX=\">>>\",cS=43764,mi=\"pattern\",sS=71947,vS=70655,kv=\"consequent\",vX=4096,lS=183,bS=68447,pS=65473,us=255,mS=73648,po=\"call_type_arg\",mo=8238,_S=68899,yS=93026,Ye=\"@[<2>[\",hS=110588,_o=\"comment\",lX=191,yo=\"switch_case\",bX=175,dS=71942,ho=\"do_while\",wv=\"constructor\",kS=43587,wS=43586,Eu=\"yield\",ES=67462,pX=\"fd \",SS=-61,gS=\"target\",u3=72272,U2=\"var\",mX=\"impltype\",i3=70108,H2=\"0o\",FS=119972,TS=92991,f3=70441,x3=8450,OS=120074,IS=66717,ko=\"interface_type\",o3=43880,An=\"%B\",AS=111355,Ev=5760,NS=11630,a3=126499,CS=\"of\",_X=\">>\",yX=\"Popping lex mode from empty stack\",c3=120629,is=108,PS=43002,hX=\"%=\",s3=126539,DS=126502,wo=\"template_literal\",LS=\"src/parser/statement_parser.ml\",RS=\": Not a directory\",dX=\"b\",jS=67461,GS=11519,kX=\"src/parser/flow_lexer.ml\",wX=\"Out_of_memory\",MS=120570,Eo=12287,BS=126534,qS=\"index out of bounds\",US=73029,v3=\"_bigarr02\",l3=126571,EX=\"))\",So=\"for_statement_init\",SX=\"supertype\",go=\"class_property\",b3=\"}\",i1=\"this\",Fo=\"declare_module_exports\",gX=\"@\",To=\"union_type\",Li=65535,Oo=\"variance_opt\",HS=94032,FX=222,XS=42124,Io=\"this_expression\",Ao=\"jsx_element\",TX=\"typeArguments\",YS=65019,VS=125251,zS=64111,KS=8471,No=\"typeof_qualified_identifier\",WS=70497,OX=\"EnumDefaultedMember\",Co=8202,JS=66927,D7=\"switch\",$S=69634,Po=\"unary_expression\",ZS=71215,IX=126,QS=67679,rg=65597,AX=207,eg=120686,p3=72163,ng=67001,tg=42962,ug=64262,X2=124,Do=65279,ig=126495,NX=169,fg=71944,CX=-10,m3=\"alternate\",xg=92975,og=65489,Y2=252,ag=67807,cg=43187,sg=68850,_3=\"export\",vg=66383,PX=\"===\",Lo=\".\",Ro=\"type_args\",DX=147,lg=92159,LX=240,jo=\"jsx_element_name\",bg=72283,pg=171,f1=116,mg=110587,y3=70279,_g=75075,yg=65338,Go=\"function_params\",hg=126627,RX=213,h3=73065,dg=71352,d3=119970,kg=70005,wg=12295,k3=120771,Eg=71494,Sg=11557,gg=42191,jX=\"flags\",Fg=68437,Tg=70730,Mo=\"optional_indexed_access\",Bo=\"pattern_object_p\",Og=42785,qo=\"nullable_type\",Bn=\"value\",Ig=12343,Ag=68415,Ng=11694,GX=221,Cg=11726,Uo=\"syntax\",Pg=119964,MX=\"&&\",Dg=68497,Lg=73097,fs=\"null\",w3=126523,Rg=120084,jg=126601,Gg=8454,Mg=\"expressions\",Bg=72144,V2='\"',Zr=\"(@[\",BX=1022,qX=231,qg=170,E3=12448,Ug=68786,S3=\"<\",UX=931,HX=\"(\",XX=196,YX=2048,g3=\"an identifier\",F3=69959,Hg=68799,VX=\"leadingComments\",Xg=72969,Yg=182,Vg=100351,Ho=\"enum_defaulted_member\",zg=69839,Kg=94026,Wg=209,zX=\">>=\",Jg=131,T3=12336,v7=\"empty\",KX=331416730,WX=204,$g=70479,Zg=69487,Qg=101640,rF=43123,JX=\"([^/]+)\",O3=8319,$X=165,Xo=\"object_type_property_setter\",ZX=909,eF=15,nF=12591,br=125,tF=92735,QX=\"cases\",uF=183969,x1=\"bigint\",rY=\"Division_by_zero\",iF=67071,fF=12329,I3=120004,xF=69414,A3=\"if\",oF=126519,aF=\"immediately within another function.\",cF=55238,sF=126498,eY=\"qualification\",vF=66256,wr=\"@ }@]\",z2=118,N3=11565,C3=120122,Yo=\"pattern_object_rest_property\",lF=74862,P3=\"'\",bF=-26065557,pF=124911,Sv=119,L7=104,Vo=\"assignment\",mF=8457,K2=\"from\",_F=64321,yF=113817,hF=65629,dF=42655,Ri=102,kF=43137,wF=11502,a0=\";@ \",R7=101,zo=\"pattern_array_element_pattern\",Wn=\"body\",Ko=\"jsx_member_expression\",EF=65547,Wo=\"jsx_attribute_value\",Jo=\"jsx_namespaced_name\",D3=72967,SF=126550,gv=254,gF=43807,FF=43738,L3=126589,R3=8455,j3=126628,TF=11670,nY=\"*=\",G3=120134,$o=\"conditional\",tY=\" : flags Open_text and Open_binary are not compatible\",M3=119965,OF=69890,IF=72817,AF=164,NF=43822,B3=69744,uY=\"\\\\\\\\\",CF=43638,PF=93047,DF=\"AssignmentPattern\",q3=64322,LF=123190,iY=188,Zo=\"object_spread_property_type\",RF=70783,jF=113663,fY=160,U3=42622,H3=43823,ji=\"init\",Fv=109,GF=66503,X3=\"proto\",MF=74649,Qo=\"optional_member\",BF=40981,qF=120654,v=\"@ \",ra=\"enum_boolean_body\",ea=\"export_named_specifier\",na=\"declare_interface\",UF=70451,ta=\"pattern_object_property_computed_key\",Y3=-97,V3=120539,z3=64317,HF=12543,ua=\"export_named_declaration_specifier\",XF=43359,K3=126530,W3=72713,YF=113800,xY=195,VF=72367,zF=72103,KF=70278,ia=\"if_consequent_statement\",W2=-85,J3=126496,fa=\"try_catch\",xa=\"computed_key\",oa=\"class_\",WF=173823,aa=\"pattern_object_property_identifier_key\",oY=\"f\",ca=\"arrow_function\",$3=8485,JF=126546,sa=\"enum_boolean_member\",$F=94177,J2=\"delete\",ZF=232,aY=\"blocks\",va=\"pattern_array_rest_element_pattern\",QF=78894,Z3=66512,rT=94111,Tv=\"string\",Ss=\"test\",eT=69572,nT=66463,tT=66335,uT=72348,iT=73061,o1=\":\",la=\"enum_body\",fT=110590,ba=\"function_this_param_type\",xT=215,oT=77823,cY=\"minus\",sY=201,aT=119980,pa=\"private_name\",ma=\"object_key\",_a=\"function_param_type\",vY=\"<<\",cT=11718,a1=\"as\",lY=\"delegate\",Gi=\"true\",sT=67413,Q3=70854,vT=73439,lT=43776,bT=71723,pT=11505,mT=214,_T=120628,yT=43513,ya=\"jsx_attribute_name_namespaced\",r6=120127,e6=\"Map.bal\",n6=\"any\",bY=\"@[\",pY=\"camlinternalMod.ml\",t6=126559,Uu=\"import\",u6=70404,ha=\"jsx_spread_child\",hT=233,dT=67897,kT=119974,Hu=8233,wT=68405,i6=239,mY=\"attributes\",_Y=173,da=\"object_internal_slot_property_type\",ET=71351,ST=242,gT=67643,f6=\"shorthand\",ka=\"for_in_statement\",FT=126463,TT=71338,OT=69445,IT=65370,AT=73055,NT=167,CT=64911,wa=\"pattern_object_property_pattern\",yY=212,hY=197,x6=126579,PT=64286,DT=\"explicitType\",LT=67669,RT=43866,dY=\"Sys_blocked_io\",o6=\"catch\",jT=123197,GT=64466,MT=65140,BT=73030,qT=69404,a6=\"protected\",kY=8204,UT=67504,HT=193,$2=246,XT=43713,c6=120571,Ea=\"array_type\",wY=\"%u\",Sa=\"export_default_declaration\",ga=\"class_expression\",EY=\"quasi\",Vt=\"%S\",YT=8525,s6=126515,VT=120485,v6=43519,l6=120745,b6=94178,zT=126588,zn=127,KT=66855,SY=\"@{\",gY=\"visit_leading_comment\",WT=67742,FY=\" : flags Open_rdonly and Open_wronly are not compatible\",JT=120144,p6=\"returnType\",c1=-744106340,s1=240,Fa=\"-\",m6=8469,gs=\"async\",_6=126521,$T=72095,y6=216,TY=\" : file already exists\",ZT=178205,QT=8449,h6=94179,rO=42774,d6=\"case\",eO=66965,nO=66431,OY=190,Ta=\"declare_export_declaration\",Z2=\"targs\",Oa=\"type_identifier\",tO=64284,uO=43013,k6=43815,Ia=\"function_body_any\",iO=66966,w6=120687,fO=66939,xO=66978,IY=168,E6=\"public\",oO=68115,aO=43712,S6=65598,g6=126547,cO=110591,Aa=\"indexed_access\",AY=12520,e7=\"interface\",NY=`(Program not linked with -g, cannot print stack backtrace)\n`,v1=-46,Na=\"string_literal_type\",Ca=\"import_namespace_specifier\",sO=120132,F6=11735,vO=67505,T6=119893,O6=\"bool\",Q2=1e3,_i=\"default\",lO=236,C=\"\",bO=\"exportKind\",CY=\"trailingComments\",I6=\"^\",pO=71983,mO=8348,_O=66977,yO=65594,Pa=\"logical\",Da=\"jsx_member_expression_identifier\",A6=210,PY=\"cooked\",La=\"for_of_left_declaration\",Ov=63,hO=72202,l7=\"argument\",dO=12442,kO=43645,N6=120085,wO=42539,C6=126468,DY=166,LY=\"Match_failure\",EO=68191,Su=\"src/parser/flow_ast.ml\",P6=11647,Ra=\"declare_variable\",xs=\"+\",SO=71127,D6=120145,ja=\"declare_export_declaration_decl\",L6=64318,RY=179,Ga=\"class_implements\",jY=\"!=\",GY=\"inexact\",MY=\"%li\",BY=237,rl=\"a\",R6=73062,gO=178,Ma=65278,Ba=\"function_rest_param_type\",FO=77711,TO=70066,OO=43714,qY=-696510241,j6=70480,IO=69748,AO=113788,NO=94207,UY=`\\r\n`,qa=\"class_body\",CO=126651,PO=68735,DO=43273,G6=119996,M6=67644,HY=224,Ua=\"catch_clause_pattern\",Ha=\"boolean_literal_type\",B6=126554,q6=126557,LO=113807,U6=126536,XY=\"%\",Iv=\"property\",RO=71956,YY=\"#\",jO=123213,el=\"meta\",Xa=\"for_of_assignment_pattern\",Ya=\"if_statement\",GO=66421,MO=8505,BO=225,nl=250,qO=100343,H6=\"Literal\",UO=42887,Av=115,VY=\";\",HO=1255,XO=\"=\",YO=126566,VO=93823,Va=\"opaque_type\",zY=\"!==\",za=\"jsx_attribute\",Ka=\"type_annotation_hint\",Mi=32768,zO=73727,KY=\"range\",WY=245,KO=\"jsError\",X6=70006,WO=43492,Y6=\"@]}\",tr=\"(Some \",JO=8477,JY=129,$O=71487,V6=126564,$Y=`\n`,ZO=126514,QO=70080,Wa=\"generic_identifier_type\",rI=66811,Ja=\"typeof_identifier\",ZY=\"~\",eI=65007,$a=\"pattern_object_rest_property_pattern\",nI=194,QY=1039100673,tI=66461,uI=70319,z6=11719,iI=72271,Wt=-48,Za=\"enum_string_body\",fI=70461,Qa=\"export_named_declaration\",xI=110930,oI=92862,rV=\"??=\",aI=70440,K6=\"while\",su=\"camlinternalFormat.ml\",cI=43782,eV=203,sI=173791,vI=11263,lI=1114111,bI=42969,W6=70750,rc=\"jsx_identifier\",pI=70105,mI=43014,_I=11564,ec=\"typeof_type\",nV=\"EEXIST\",yI=64847,hI=71167,dI=42511,kI=72712,wI=92995,EI=43704,tl=121,nc=\"object_call_property_type\",SI=64433,ul=\"operator\",J6=68296,tc=\"class_decorator\",uc=120,ic=\"for_of_statement_lhs\",gI=11623,FI=67004,TI=71999,OI=70708,II=512,AI=110927,NI=71423,tV=32752,CI=93951,PI=12292,fc=\"object_type\",$6=\"types\",DI=110580,uV=177,LI=126633,RI=12686,xc=8286,iV=144,jI=73647,fV=228,Z6=70855,l1=\"0x\",GI=70366,MI=`\n`,oc=\"variable_declaration\",BI=65276,Q6=119981,qI=71945,UI=43887,j7=105,HI=8335,XI=123565,YI=69505,VI=70187,ac=\"jsx_attribute_name_identifier\",cc=\"source\",sc=\"pattern_object_property_key\",rp=65548,zI=66175,KI=92766,vc=\"pattern_assignment_pattern\",lc=\"object_type_property_getter\",ep=8305,G7=\"generator\",np=\"for\",xV=\"PropertyDefinition\",oV=\"--\",vu=-36,WI=\"mkdir\",JI=68223,bc=\"generic_qualified_identifier_type\",$I=11686,pc=\"jsx_closing_element\",ZI=43790,tp=\": No such file or directory\",QI=69687,rA=66348,up=72162,eA=43388,nA=72768,tA=68351,h=\"<2>\",ip=64297,uA=125259,iA=220,zr=\",@ \",aV=\"win32\",fp=70281,mc=\"member_property_identifier\",fA=68149,xA=68111,oA=71450,aA=43009,_c=\"member_property\",cA=73458,yi=\"identifier\",sA=67423,vA=66775,lA=110951,cV=\"Internal Error: Found object private prop\",yc=\"super_expression\",hc=\"jsx_opening_element\",bA=177976,dc=\"variable_declarator_pattern\",kc=\"pattern_expression\",wc=\"jsx_member_expression_object\",pA=68252,mA=77808,Nv=-835925911,Ec=\"import_declaration\",_A=55203,sV=\"Pervasives.do_at_exit\",vV=\"utf8\",ii=\"key\",yA=43702,Sc=\"spread_property\",xp=126563,hA=863850040,dA=70106,op=67592,gc=\"function_expression_or_method\",kA=71958,Fc=\"for_init_declaration\",wA=71955,ap=123214,EA=68479,lV=\"==\",SA=43019,gA=123180,cp=217,Cv=\"specifiers\",Tc=\"function_body\",FA=69622,sp=8487,TA=43641,bV=\"Unexpected token `\",pV=\"v\",OA=123135,IA=69295,vp=120093,AA=8521,lp=43642,mV=176;function Ku0(t,n,e,i,x){if(i<=n)for(var c=1;c<=x;c++)e[i+c]=t[n+c];else for(var c=x;c>=1;c--)e[i+c]=t[n+c];return 0}function Wu0(t){for(var n=[0];t!==0;){for(var e=t[1],i=1;i=e.l||e.t==2&&x>=e.c.length))e.c=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else if(e.t==2&&i==e.c.length)e.c+=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else{e.t!=4&&bp(e);var c=t.c,s=e.c;if(t.t==4)if(i<=n)for(var p=0;p=0;p--)s[i+p]=c[n+p];else{for(var y=Math.min(x,c.length-n),p=0;p>=1,t==0)return e;n+=n,i++,i==9&&n.slice(0,1)}}function Dv(t){t.t==2?t.c+=Pv(t.l-t.c.length,\"\\0\"):t.c=NA(t.c,0,t.c.length),t.t=0}function _V(t){if(t.length<24){for(var n=0;nzn)return!1;return!0}else return!/[^\\x00-\\x7f]/.test(t)}function CA(t){for(var n=C,e=C,i,x,c,s,p=0,y=t.length;pII?(e.substr(0,1),n+=e,e=C,n+=t.slice(p,T)):e+=t.slice(p,T),T==y)break;p=T}s=1,++p=55295&&s<57344)&&(s=2)):(s=3,++p1114111)&&(s=3)))))),s<4?(p-=s,e+=\"\\uFFFD\"):s>Li?e+=String.fromCharCode(55232+(s>>10),NH+(s&1023)):e+=String.fromCharCode(s),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function Oc(t,n,e){this.t=t,this.c=n,this.l=e}Oc.prototype.toString=function(){switch(this.t){case 9:return this.c;default:Dv(this);case 0:if(_V(this.c))return this.t=9,this.c;this.t=8;case 8:return this.c}},Oc.prototype.toUtf16=function(){var t=this.toString();return this.t==9?t:CA(t)},Oc.prototype.slice=function(){var t=this.t==4?this.c.slice():this.c;return new Oc(this.t,t,this.l)};function yV(t){return new Oc(0,t,t.length)}function r(t){return yV(t)}function PA(t,n){$u0(t,r(n))}var zt=[0];function lu(t){PA(zt.Invalid_argument,t)}function hV(){lu(qS)}function Jn(t,n,e){if(e&=us,t.t!=4){if(n==t.c.length)return t.c+=String.fromCharCode(e),n+1==t.l&&(t.t=0),0;bp(t)}return t.c[n]=e,0}function b1(t,n,e){return n>>>0>=t.l&&hV(),Jn(t,n,e)}function Xu(t,n){switch(t.t&6){default:if(n>=t.c.length)return 0;case 0:return t.c.charCodeAt(n);case 4:return t.c[n]}}function os(t,n){if(t.fun)return os(t.fun,n);if(typeof t!=\"function\")return t;var e=t.length|0;if(e===0)return t.apply(null,n);var i=n.length|0,x=e-i|0;return x==0?t.apply(null,n):x<0?os(t.apply(null,n.slice(0,e)),n.slice(e)):function(){for(var c=arguments.length==0?1:arguments.length,s=new Array(n.length+c),p=0;p>>0>=t.length-1&&il(),t}function Zu0(t){return isFinite(t)?Math.abs(t)>=22250738585072014e-324?0:t!=0?1:2:isNaN(t)?4:3}function Ic(t){return(t.t&6)!=0&&Dv(t),t.c}var Qu0=Math.log2&&Math.log2(11235582092889474e291)==1020;function r70(t){if(Qu0)return Math.floor(Math.log2(t));var n=0;if(t==0)return-1/0;if(t>=1)for(;t>=2;)t/=2,n++;else for(;t<1;)t*=2,n--;return n}function DA(t){var n=new z0.Float32Array(1);n[0]=t;var e=new z0.Int32Array(n.buffer);return e[0]|0}var dV=Math.pow(2,-24);function kV(t){throw t}function wV(){kV(zt.Division_by_zero)}function sn(t,n,e){this.lo=t&Ex,this.mi=n&Ex,this.hi=e&Li}sn.prototype.caml_custom=\"_j\",sn.prototype.copy=function(){return new sn(this.lo,this.mi,this.hi)},sn.prototype.ucompare=function(t){return this.hi>t.hi?1:this.hit.mi?1:this.mit.lo?1:this.loe?1:nt.mi?1:this.mit.lo?1:this.lo>24),e=-this.hi+(n>>24);return new sn(t,n,e)},sn.prototype.add=function(t){var n=this.lo+t.lo,e=this.mi+t.mi+(n>>24),i=this.hi+t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.sub=function(t){var n=this.lo-t.lo,e=this.mi-t.mi+(n>>24),i=this.hi-t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.mul=function(t){var n=this.lo*t.lo,e=(n*dV|0)+this.mi*t.lo+this.lo*t.mi,i=(e*dV|0)+this.hi*t.lo+this.mi*t.mi+this.lo*t.hi;return new sn(n,e,i)},sn.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0},sn.prototype.isNeg=function(){return this.hi<<16<0},sn.prototype.and=function(t){return new sn(this.lo&t.lo,this.mi&t.mi,this.hi&t.hi)},sn.prototype.or=function(t){return new sn(this.lo|t.lo,this.mi|t.mi,this.hi|t.hi)},sn.prototype.xor=function(t){return new sn(this.lo^t.lo,this.mi^t.mi,this.hi^t.hi)},sn.prototype.shift_left=function(t){return t=t&63,t==0?this:t<24?new sn(this.lo<>24-t,this.hi<>24-t):t<48?new sn(0,this.lo<>48-t):new sn(0,0,this.lo<>t|this.mi<<24-t,this.mi>>t|this.hi<<24-t,this.hi>>t):t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi>>t-24,0):new sn(this.hi>>t-48,0,0)},sn.prototype.shift_right=function(t){if(t=t&63,t==0)return this;var n=this.hi<<16>>16;if(t<24)return new sn(this.lo>>t|this.mi<<24-t,this.mi>>t|n<<24-t,this.hi<<16>>t>>>16);var e=this.hi<<16>>31;return t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi<<16>>t-24>>16,e&Li):new sn(this.hi<<16>>t-32,e,e)},sn.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&Ex,this.lo=this.lo<<1&Ex},sn.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&Ex,this.mi=(this.mi>>>1|this.hi<<23)&Ex,this.hi=this.hi>>>1},sn.prototype.udivmod=function(t){for(var n=0,e=this.copy(),i=t.copy(),x=new sn(0,0,0);e.ucompare(i)>0;)n++,i.lsl1();for(;n>=0;)n--,x.lsl1(),e.ucompare(i)>=0&&(x.lo++,e=e.sub(i)),i.lsr1();return{quotient:x,modulus:e}},sn.prototype.div=function(t){var n=this;t.isZero()&&wV();var e=n.hi^t.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).quotient;return e&Mi&&(i=i.neg()),i},sn.prototype.mod=function(t){var n=this;t.isZero()&&wV();var e=n.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).modulus;return e&Mi&&(i=i.neg()),i},sn.prototype.toInt=function(){return this.lo|this.mi<<24},sn.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo},sn.prototype.toArray=function(){return[this.hi>>8,this.hi&us,this.mi>>16,this.mi>>8&us,this.mi&us,this.lo>>16,this.lo>>8&us,this.lo&us]},sn.prototype.lo32=function(){return this.lo|(this.mi&us)<<24},sn.prototype.hi32=function(){return this.mi>>>8&Li|this.hi<<16};function pp(t,n,e){return new sn(t,n,e)}function mp(t){if(!isFinite(t))return isNaN(t)?pp(1,0,tV):t>0?pp(0,0,tV):pp(0,0,65520);var n=t==0&&1/t==-1/0?Mi:t>=0?0:Mi;n&&(t=-t);var e=r70(t)+1023;e<=0?(e=0,t/=Math.pow(2,-rH)):(t/=Math.pow(2,e-uU),t<16&&(t*=2,e-=1),e==0&&(t/=2));var i=Math.pow(2,24),x=t|0;t=(t-x)*i;var c=t|0;t=(t-c)*i;var s=t|0;return x=x&eF|n|e<<4,pp(s,c,x)}function fl(t){return t.toArray()}function EV(t,n,e){if(t.write(32,n.dims.length),t.write(32,n.kind|n.layout<<8),n.caml_custom==v3)for(var i=0;i>4;if(x==nX)return(n|e|i&eF)==0?i&Mi?-1/0:1/0:NaN;var c=Math.pow(2,-24),s=(n*c+e)*c+(i&eF);return x>0?(s+=16,s*=Math.pow(2,x-uU)):s*=Math.pow(2,-rH),i&Mi&&(s=-s),s}function jA(t){for(var n=t.length,e=1,i=0;i>>24&us|(n&Li)<<8,n>>>16&Li)}function GA(t){return t.hi32()}function MA(t){return t.lo32()}var t70=v3;function Os(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Os.prototype.caml_custom=t70,Os.prototype.offset=function(t){var n=0;if(typeof t==\"number\"&&(t=[t]),t instanceof Array||lu(\"bigarray.js: invalid offset\"),this.dims.length!=t.length&&lu(\"Bigarray.get/set: bad number of dimensions\"),this.layout==0)for(var e=0;e=this.dims[e])&&il(),n=n*this.dims[e]+t[e];else for(var e=this.dims.length-1;e>=0;e--)(t[e]<1||t[e]>this.dims[e])&&il(),n=n*this.dims[e]+(t[e]-1);return n},Os.prototype.get=function(t){switch(this.kind){case 7:var n=this.data[t*2+0],e=this.data[t*2+1];return n70(n,e);case 10:case 11:var i=this.data[t*2+0],x=this.data[t*2+1];return[gv,i,x];default:return this.data[t]}},Os.prototype.set=function(t,n){switch(this.kind){case 7:this.data[t*2+0]=MA(n),this.data[t*2+1]=GA(n);break;case 10:case 11:this.data[t*2+0]=n[1],this.data[t*2+1]=n[2];break;default:this.data[t]=n;break}return 0},Os.prototype.fill=function(t){switch(this.kind){case 7:var n=MA(t),e=GA(t);if(n==e)this.data.fill(n);else for(var i=0;is)return 1;if(c!=s){if(!n)return NaN;if(c==c)return 1;if(s==s)return-1}}break;case 7:for(var x=0;xt.data[x+1])return 1;if(this.data[x]>>>0>>0)return-1;if(this.data[x]>>>0>t.data[x]>>>0)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(var x=0;xt.data[x])return 1}break}return 0};function Lv(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Lv.prototype=new Os,Lv.prototype.offset=function(t){return typeof t!=\"number\"&&(t instanceof Array&&t.length==1?t=t[0]:lu(\"Ml_Bigarray_c_1_1.offset\")),(t<0||t>=this.dims[0])&&il(),t},Lv.prototype.get=function(t){return this.data[t]},Lv.prototype.set=function(t,n){return this.data[t]=n,0},Lv.prototype.fill=function(t){return this.data.fill(t),0};function gV(t,n,e,i){var x=SV(t);return jA(e)*x!=i.length&&lu(\"length doesn't match dims\"),n==0&&e.length==1&&x==1?new Lv(t,n,e,i):new Os(t,n,e,i)}function n7(t){PA(zt.Failure,t)}function FV(t,n,e){var i=t.read32s();(i<0||i>16)&&n7(\"input_value: wrong number of bigarray dimensions\");var x=t.read32s(),c=x&us,s=x>>8&1,p=[];if(e==v3)for(var y=0;y>>32-15,n=OV(n,461845907),t^=n,t=t<<13|t>>>32-13,(t+(t<<2)|0)+-430675100|0}function u70(t,n){return t=as(t,MA(n)),t=as(t,GA(n)),t}function IV(t,n){return u70(t,mp(n))}function AV(t){var n=jA(t.dims),e=0;switch(t.kind){case 2:case 3:case 12:n>N4&&(n=N4);var i=0,x=0;for(x=0;x+4<=t.data.length;x+=4)i=t.data[x+0]|t.data[x+1]<<8|t.data[x+2]<<16|t.data[x+3]<<24,e=as(e,i);switch(i=0,n&3){case 3:i=t.data[x+2]<<16;case 2:i|=t.data[x+1]<<8;case 1:i|=t.data[x+0],e=as(e,i)}break;case 4:case 5:n>jt&&(n=jt);var i=0,x=0;for(x=0;x+2<=t.data.length;x+=2)i=t.data[x+0]|t.data[x+1]<<16,e=as(e,i);(n&1)!=0&&(e=as(e,t.data[x]));break;case 6:n>64&&(n=64);for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32),n*=2;for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32);for(var x=0;x0?x(n,t,i):x(t,n,i);if(i&&c!=c)return e;if(+c!=+c)return+c;if((c|0)!=0)return c|0}return e}function _p(t){return t instanceof Oc}function qA(t){return _p(t)}function PV(t){if(typeof t==\"number\")return Q2;if(_p(t))return Y2;if(qA(t))return 1252;if(t instanceof Array&&t[0]===t[0]>>>0&&t[0]<=gw){var n=t[0]|0;return n==gv?0:n}else{if(t instanceof String)return AY;if(typeof t==\"string\")return AY;if(t instanceof Number)return Q2;if(t&&t.caml_custom)return HO;if(t&&t.compare)return 1256;if(typeof t==\"function\")return 1247;if(typeof t==\"symbol\")return 1251}return 1001}function Ac(t,n){return tn.c?1:0}function Ee(t,n){return DV(t,n)}function yp(t,n,e){for(var i=[];;){if(!(e&&t===n)){var x=PV(t);if(x==nl){t=t[1];continue}var c=PV(n);if(c==nl){n=n[1];continue}if(x!==c)return x==Q2?c==HO?CV(t,n,-1,e):-1:c==Q2?x==HO?CV(n,t,1,e):1:xn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1001:if(tn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1251:if(t!==n)return e?1:NaN;break;case 1252:var t=Ic(t),n=Ic(n);if(t!==n){if(tn)return 1}break;case 12520:var t=t.toString(),n=n.toString();if(t!==n){if(tn)return 1}break;case 246:case 254:default:if(t.length!=n.length)return t.length1&&i.push(t,n,1);break}}if(i.length==0)return 0;var y=i.pop();n=i.pop(),t=i.pop(),y+10)if(n==0&&(e>=t.l||t.t==2&&e>=t.c.length))i==0?(t.c=C,t.t=2):(t.c=Pv(e,String.fromCharCode(i)),t.t=e==t.l?0:2);else for(t.t!=4&&bp(t),e+=n;n0&&n===n||(t=t.replace(/_/g,C),n=+t,t.length>0&&n===n||/^[+-]?nan$/i.test(t)))return n;var e=/^ *([+-]?)0x([0-9a-f]+)\\.?([0-9a-f]*)p([+-]?[0-9]+)/i.exec(t);if(e){var i=e[3].replace(/0+$/,C),x=parseInt(e[1]+e[2]+i,16),c=(e[4]|0)-4*i.length;return n=x*Math.pow(2,c),n}if(/^\\+?inf(inity)?$/i.test(t))return 1/0;if(/^-inf(inity)?$/i.test(t))return-1/0;n7(\"float_of_string\")}function UA(t){t=Ic(t);var n=t.length;n>31&&lu(\"format_int: format too long\");for(var e={justify:xs,signstyle:Fa,filler:pi,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:oY},i=0;i=0&&x<=9;)e.width=e.width*10+x,i++;i--;break;case\".\":for(e.prec=0,i++;x=t.charCodeAt(i)-48,x>=0&&x<=9;)e.prec=e.prec*10+x,i++;i--;case\"d\":case\"i\":e.signedconv=!0;case\"u\":e.base=10;break;case\"x\":e.base=16;break;case\"X\":e.base=16,e.uppercase=!0;break;case\"o\":e.base=8;break;case\"e\":case\"f\":case\"g\":e.signedconv=!0,e.conv=x;break;case\"E\":case\"F\":case\"G\":e.signedconv=!0,e.uppercase=!0,e.conv=x.toLowerCase();break}}return e}function HA(t,n){t.uppercase&&(n=n.toUpperCase());var e=n.length;t.signedconv&&(t.sign<0||t.signstyle!=Fa)&&e++,t.alternate&&(t.base==8&&(e+=1),t.base==16&&(e+=2));var i=C;if(t.justify==xs&&t.filler==pi)for(var x=e;x20?(w-=20,E/=Math.pow(10,w),E+=new Array(w+1).join(Zu),d>0&&(E=E+Lo+new Array(d+1).join(Zu)),E):E.toFixed(d)}var i,x=UA(t),c=x.prec<0?6:x.prec;if((n<0||n==0&&1/n==-1/0)&&(x.sign=-1,n=-n),isNaN(n))i=sw,x.filler=pi;else if(!isFinite(n))i=\"inf\",x.filler=pi;else switch(x.conv){case\"e\":var i=n.toExponential(c),s=i.length;i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break;case\"f\":i=e(n,c);break;case\"g\":c=c||1,i=n.toExponential(c-1);var p=i.indexOf(ny),y=+i.slice(p+1);if(y<-4||n>=1e21||n.toFixed(0).length>c){for(var s=p-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)+i.slice(p),s=i.length,i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break}else{var T=c;if(y<0)T-=y+1,i=n.toFixed(T);else for(;i=n.toFixed(T),i.length>c+1;)T--;if(T){for(var s=i.length-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)}}break}return HA(x,i)}function hp(t,n){if(Ic(t)==N2)return r(C+n);var e=UA(t);n<0&&(e.signedconv?(e.sign=-1,n=-n):n>>>=0);var i=n.toString(e.base);if(e.prec>=0){e.filler=pi;var x=e.prec-i.length;x>0&&(i=Pv(x,Zu)+i)}return HA(e,i)}var jV=0;function M7(){return jV++}function l70(){return 0}function GV(){return[0]}var dp=[];function Qe(t,n,e){var i=t[1],x=dp[e];if(x===void 0)for(var c=dp.length;c>1|1,nII?(e.substr(0,1),n+=e,e=C,n+=t.slice(c,p)):e+=t.slice(c,p),p==s)break;c=p}i>6),e+=String.fromCharCode(Pi|i&Ov)):i<55296||i>=SH?e+=String.fromCharCode(HY|i>>12,Pi|i>>6&Ov,Pi|i&Ov):i>=56319||c+1==s||(x=t.charCodeAt(c+1))SH?e+=\"\\xEF\\xBF\\xBD\":(c++,i=(i<<10)+x-56613888,e+=String.fromCharCode(LX|i>>18,Pi|i>>12&Ov,Pi|i>>6&Ov,Pi|i&Ov)),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function p70(t){var n=9;return _V(t)||(n=8,t=b70(t)),new Oc(n,t,t.length)}function B7(t){return p70(t)}function m70(t,n,e){if(!isFinite(t))return isNaN(t)?B7(sw):B7(t>0?mU:\"-infinity\");var i=t==0&&1/t==-1/0?1:t>=0?0:1;i&&(t=-t);var x=0;if(t!=0)if(t<1)for(;t<1&&x>-BX;)t*=2,x--;else for(;t>=2;)t/=2,x++;var c=x<0?C:xs,s=C;if(i)s=Fa;else switch(e){case 43:s=xs;break;case 32:s=pi;break;default:break}if(n>=0&&n<13){var p=Math.pow(2,n*4);t=Math.round(t*p)/p}var y=t.toString(16);if(n>=0){var T=y.indexOf(Lo);if(T<0)y+=Lo+Pv(n,Zu);else{var E=T+1+n;y.length>24&Ex,t>>31&Li)}function y70(t){return t.toInt()}function h70(t){return+t.isNeg()}function MV(t){return t.neg()}function d70(t,n){var e=UA(t);e.signedconv&&h70(n)&&(e.sign=-1,n=MV(n));var i=C,x=kp(e.base),c=\"0123456789abcdef\";do{var s=n.udivmod(x);n=s.quotient,i=c.charAt(y70(s.modulus))+i}while(!_70(n));if(e.prec>=0){e.filler=pi;var p=e.prec-i.length;p>0&&(i=Pv(p,Zu)+i)}return HA(e,i)}function b7(t){return t.l}function un(t){return b7(t)}function Vr(t,n){return Xu(t,n)}function k70(t,n){return t.add(n)}function w70(t,n){return t.mul(n)}function YA(t,n){return t.ucompare(n)<0}function BV(t){var n=0,e=un(t),i=10,x=1;if(e>0)switch(Vr(t,n)){case 45:n++,x=-1;break;case 43:n++,x=1;break}if(n+1=48&&t<=57?t-48:t>=65&&t<=90?t-55:t>=97&&t<=In?t-87:-1}function Rv(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=kp(x),s=new sn(Ex,268435455,Li).udivmod(c).quotient,p=Vr(t,e),y=wp(p);(y<0||y>=x)&&n7(ns);for(var T=kp(y);;)if(e++,p=Vr(t,e),p!=95){if(y=wp(p),y<0||y>=x)break;YA(s,T)&&n7(ns),y=kp(y),T=k70(w70(c,T),y),YA(T,y)&&n7(ns)}return e!=un(t)&&n7(ns),x==10&&YA(new sn(0,0,Mi),T)&&n7(ns),i<0&&(T=MV(T)),T}function jv(t){return t.toFloat()}function Bi(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=un(t),s=-1>>>0,p=e=x)&&n7(ns);var T=y;for(e++;e=x)break;T=x*T+y,T>s&&n7(ns)}return e!=c&&n7(ns),T=i*T,x==10&&(T|0)!=T&&n7(ns),T|0}function E70(t){return t.slice(1)}function S70(t){return!!t}function bn(t){return t.toUtf16()}function g70(t){for(var n={},e=1;e1&&i.pop();break;case\".\":break;default:i.push(e[x]);break}return i.unshift(n[0]),i.orig=t,i}var A70=[\"E2BIG\",\"EACCES\",\"EAGAIN\",\"EBADF\",\"EBUSY\",\"ECHILD\",\"EDEADLK\",\"EDOM\",nV,\"EFAULT\",\"EFBIG\",\"EINTR\",\"EINVAL\",\"EIO\",\"EISDIR\",\"EMFILE\",\"EMLINK\",\"ENAMETOOLONG\",\"ENFILE\",\"ENODEV\",vh,\"ENOEXEC\",\"ENOLCK\",\"ENOMEM\",\"ENOSPC\",\"ENOSYS\",yw,PU,\"ENOTTY\",\"ENXIO\",\"EPERM\",\"EPIPE\",\"ERANGE\",\"EROFS\",\"ESPIPE\",\"ESRCH\",\"EXDEV\",\"EWOULDBLOCK\",\"EINPROGRESS\",\"EALREADY\",\"ENOTSOCK\",\"EDESTADDRREQ\",\"EMSGSIZE\",\"EPROTOTYPE\",\"ENOPROTOOPT\",\"EPROTONOSUPPORT\",\"ESOCKTNOSUPPORT\",\"EOPNOTSUPP\",\"EPFNOSUPPORT\",\"EAFNOSUPPORT\",\"EADDRINUSE\",\"EADDRNOTAVAIL\",\"ENETDOWN\",\"ENETUNREACH\",\"ENETRESET\",\"ECONNABORTED\",\"ECONNRESET\",\"ENOBUFS\",\"EISCONN\",\"ENOTCONN\",\"ESHUTDOWN\",\"ETOOMANYREFS\",\"ETIMEDOUT\",\"ECONNREFUSED\",\"EHOSTDOWN\",\"EHOSTUNREACH\",\"ELOOP\",\"EOVERFLOW\"];function m1(t,n,e,i){var x=A70.indexOf(t);x<0&&(i==null&&(i=-9999),x=[0,i]);var c=[x,B7(n||C),B7(e||C)];return c}var HV={};function _1(t){return HV[t]}function y1(t,n){throw[0,t].concat(n)}function N70(t){return new Oc(4,t,t.length)}function C70(t){t=Ic(t),at(t+tp)}function P70(t,n){return n>>>0>=t.l&&hV(),Xu(t,n)}function XV(){}function gu(t){this.data=t}gu.prototype=new XV,gu.prototype.truncate=function(t){var n=this.data;this.data=Lt(t|0),Fs(n,0,this.data,0,t)},gu.prototype.length=function(){return b7(this.data)},gu.prototype.write=function(t,n,e,i){var x=this.length();if(t+i>=x){var c=Lt(t+i),s=this.data;this.data=c,Fs(s,0,this.data,0,x)}return Ts(n,e,this.data,t,i),0},gu.prototype.read=function(t,n,e,i){var x=this.length();return Fs(this.data,t,n,e,i),0},gu.prototype.read_one=function(t){return P70(this.data,t)},gu.prototype.close=function(){},gu.prototype.constructor=gu;function t7(t,n){this.content={},this.root=t,this.lookupFun=n}t7.prototype.nm=function(t){return this.root+t},t7.prototype.create_dir_if_needed=function(t){for(var n=t.split(Qu),e=C,i=0;izt.fd_last_idx)&&(zt.fd_last_idx=t),t}function loe(t,n,e){for(var i={};n;){switch(n[1]){case 0:i.rdonly=1;break;case 1:i.wronly=1;break;case 2:i.append=1;break;case 3:i.create=1;break;case 4:i.truncate=1;break;case 5:i.excl=1;break;case 6:i.binary=1;break;case 7:i.text=1;break;case 8:i.nonblock=1;break}n=n[2]}i.rdonly&&i.wronly&&at(Ic(t)+FY),i.text&&i.binary&&at(Ic(t)+tY);var x=R70(t),c=x.device.open(x.rest,i),s=zt.fd_last_idx?zt.fd_last_idx:0;return Sp(s+1,VV,c,i)}Sp(0,VV,new gu(Lt(0))),Sp(1,G70,new gu(Lt(0))),Sp(2,j70,new gu(Lt(0)));function M70(t){var n=zt.fds[t];n.flags.wronly&&at(pX+t+\" is writeonly\");var e=null;if(t==0&&qV()){var i=kj();e=function(){return B7(i.readFileSync(0,vV))}}var x={file:n.file,offset:n.offset,fd:t,opened:!0,out:!1,refill:e};return Nc[x.fd]=x,x.fd}function zV(t){var n=zt.fds[t];n.flags.rdonly&&at(pX+t+\" is readonly\");var e={file:n.file,offset:n.offset,fd:t,opened:!0,out:!0,buffer:C};return Nc[e.fd]=e,e.fd}function B70(){for(var t=0,n=0;n>>0?t[0]:_p(t)||qA(t)?Y2:t instanceof Function||typeof t==\"function\"?Dw:t&&t.caml_custom?gw:Q2}function hi(t,n,e){e&&z0.toplevelReloc&&(t=z0.toplevelReloc(e)),zt[t+1]=n,e&&(zt[e]=n)}function WA(t,n){return HV[Ic(t)]=n,0}function H70(t){return t[2]=jV++,t}function X70(t,n){return t===n?1:(t.t&6&&Dv(t),n.t&6&&Dv(n),t.c==n.c?1:0)}function qn(t,n){return X70(t,n)}function Y70(){lu(qS)}function It(t,n){return n>>>0>=un(t)&&Y70(),Vr(t,n)}function n0(t,n){return 1-qn(t,n)}function V70(){return[0,r(\"js_of_ocaml\")]}function z70(){return 2147483647/4|0}function K70(t){return 0}var W70=z0.process&&z0.process.platform&&z0.process.platform==aV?jU:\"Unix\";function J70(){return[0,r(W70),32,0]}function $70(){kV(zt.Not_found)}function WV(t){var n=z0,e=bn(t);if(n.process&&n.process.env&&n.process.env[e]!=null)return B7(n.process.env[e]);if(z0.jsoo_static_env&&z0.jsoo_static_env[e])return B7(z0.jsoo_static_env[e]);$70()}function JA(t){for(var n=1;t&&t.joo_tramp;)t=t.joo_tramp.apply(null,t.joo_args),n++;return t}function Tu(t,n){return{joo_tramp:t,joo_args:n}}function N(t,n){if(typeof n==\"function\")return t.fun=n,0;if(n.fun)return t.fun=n.fun,0;for(var e=n.length;e--;)t[e]=n[e];return 0}function poe(t){return t}function Et(t){return t instanceof Array?t:z0.RangeError&&t instanceof z0.RangeError&&t.message&&t.message.match(/maximum call stack/i)||z0.InternalError&&t instanceof z0.InternalError&&t.message&&t.message.match(/too much recursion/i)?zt.Stack_overflow:t instanceof z0.Error&&_1(KO)?[0,_1(KO),t]:[0,zt.Failure,B7(String(t))]}function Z70(t){switch(t[2]){case-8:case-11:case-12:return 1;default:return 0}}function Q70(t){var n=C;if(t[0]==0){if(n+=t[1][1],t.length==3&&t[2][0]==0&&Z70(t[1]))var i=t[2],e=1;else var e=2,i=t;n+=HX;for(var x=e;xe&&(n+=$H);var c=i[x];typeof c==\"number\"?n+=c.toString():c instanceof Oc||typeof c==\"string\"?n+=V2+c.toString()+V2:n+=bv}n+=Z0}else t[0]==wt&&(n+=t[1]);return n}function JV(t){if(t instanceof Array&&(t[0]==0||t[0]==wt)){var n=_1(LH);if(n)n(t,!1);else{var e=Q70(t),i=_1(sV);i&&i(0),z0.console.error(yd+e+$Y)}}else throw t}function ri0(){var t=z0;t.process&&t.process.on?t.process.on(\"uncaughtException\",function(n,e){JV(n),t.process.exit(2)}):t.addEventListener&&t.addEventListener(\"error\",function(n){n.error&&JV(n.error)})}ri0();function u(t,n){return t.length==1?t(n):os(t,[n])}function o(t,n,e){return t.length==2?t(n,e):os(t,[n,e])}function ur(t,n,e,i){return t.length==3?t(n,e,i):os(t,[n,e,i])}function R(t,n,e,i,x){return t.length==4?t(n,e,i,x):os(t,[n,e,i,x])}function p7(t,n,e,i,x,c){return t.length==5?t(n,e,i,x,c):os(t,[n,e,i,x,c])}function ei0(t,n,e,i,x,c,s,p){return t.length==7?t(n,e,i,x,c,s,p):os(t,[n,e,i,x,c,s,p])}var $A=[wt,r(wX),-1],$V=[wt,r(DH),-2],q7=[wt,r(AH),-3],ZA=[wt,r(fH),-4],Jt=[wt,r(KU),-7],ZV=[wt,r(LY),-8],QV=[wt,r(VU),-9],Sn=[wt,r(wU),-11],sl=[wt,r(uX),-12],rz=[0,s7],ni0=[4,0,0,0,[12,45,[4,0,0,0,0]]],QA=[0,[11,r('File \"'),[2,0,[11,r('\", line '),[4,0,0,0,[11,r(yH),[4,0,0,0,[12,45,[4,0,0,0,[11,r(\": \"),[2,0,0]]]]]]]]]],r('File \"%s\", line %d, characters %d-%d: %s')],ez=[0,0,[0,0,0],[0,0,0]],rN=r(\"\u0001\u0002\"),eN=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),Bv=[0,0,0,0,1,0],nz=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(De),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],tz=[0,r(\"first_leading\"),r(\"last_trailing\")],uz=[0,0];hi(11,sl,uX),hi(10,Sn,wU),hi(9,[wt,r(dY),CX],dY),hi(8,QV,VU),hi(7,ZV,LY),hi(6,Jt,KU),hi(5,[wt,r(rY),-6],rY),hi(4,[wt,r(IH),-5],IH),hi(3,ZA,fH),hi(2,q7,AH),hi(1,$V,DH),hi(0,$A,wX);var ti0=r(\"output_substring\"),ui0=r(\"%.12g\"),ii0=r(Lo),fi0=r(Gi),xi0=r(Ci),oi0=r(uY),ai0=r(\"\\\\'\"),ci0=r(\"\\\\b\"),si0=r(\"\\\\t\"),vi0=r(\"\\\\n\"),li0=r(\"\\\\r\"),bi0=r(\"List.iter2\"),pi0=r(\"tl\"),mi0=r(\"hd\"),_i0=r(\"String.blit / Bytes.blit_string\"),yi0=r(\"Bytes.blit\"),hi0=r(\"String.sub / Bytes.sub\"),di0=r(\"Array.blit\"),ki0=r(\"Array.sub\"),wi0=r(\"Map.remove_min_elt\"),Ei0=[0,0,0,0],Si0=[0,r(\"map.ml\"),400,10],gi0=[0,0,0],Fi0=r(e6),Ti0=r(e6),Oi0=r(e6),Ii0=r(e6),Ai0=r(\"Stdlib.Queue.Empty\"),Ni0=r(\"CamlinternalLazy.Undefined\"),Ci0=r(\"Buffer.add_substring/add_subbytes\"),Pi0=r(\"Buffer.add: cannot grow buffer\"),Di0=[0,r(GU),93,2],Li0=[0,r(GU),94,2],Ri0=r(\"Buffer.sub\"),ji0=r(\"%c\"),Gi0=r(\"%s\"),Mi0=r(oX),Bi0=r(MY),qi0=r(xH),Ui0=r(YH),Hi0=r(\"%f\"),Xi0=r(An),Yi0=r(\"%{\"),Vi0=r(\"%}\"),zi0=r(\"%(\"),Ki0=r(\"%)\"),Wi0=r(N0),Ji0=r(\"%t\"),$i0=r(\"%?\"),Zi0=r(\"%r\"),Qi0=r(\"%_r\"),rf0=[0,r(su),850,23],ef0=[0,r(su),814,21],nf0=[0,r(su),815,21],tf0=[0,r(su),818,21],uf0=[0,r(su),819,21],if0=[0,r(su),822,19],ff0=[0,r(su),823,19],xf0=[0,r(su),826,22],of0=[0,r(su),827,22],af0=[0,r(su),831,30],cf0=[0,r(su),832,30],sf0=[0,r(su),836,26],vf0=[0,r(su),837,26],lf0=[0,r(su),846,28],bf0=[0,r(su),847,28],pf0=[0,r(su),851,23],mf0=r(wY),_f0=[0,r(su),1558,4],yf0=r(\"Printf: bad conversion %[\"),hf0=[0,r(su),1626,39],df0=[0,r(su),1649,31],kf0=[0,r(su),1650,31],wf0=r(\"Printf: bad conversion %_\"),Ef0=r(SY),Sf0=r(bY),gf0=r(SY),Ff0=r(bY),Tf0=[0,[11,r(\"invalid box description \"),[3,0,0]],r(\"invalid box description %S\")],Of0=r(C),If0=[0,0,4],Af0=r(C),Nf0=r(dX),Cf0=r(\"h\"),Pf0=r(\"hov\"),Df0=r(\"hv\"),Lf0=r(pV),Rf0=r(sw),jf0=r(\"neg_infinity\"),Gf0=r(mU),Mf0=r(Lo),Bf0=r(\"%+nd\"),qf0=r(\"% nd\"),Uf0=r(\"%+ni\"),Hf0=r(\"% ni\"),Xf0=r(\"%nx\"),Yf0=r(\"%#nx\"),Vf0=r(\"%nX\"),zf0=r(\"%#nX\"),Kf0=r(\"%no\"),Wf0=r(\"%#no\"),Jf0=r(\"%nd\"),$f0=r(xH),Zf0=r(\"%nu\"),Qf0=r(\"%+ld\"),rx0=r(\"% ld\"),ex0=r(\"%+li\"),nx0=r(\"% li\"),tx0=r(\"%lx\"),ux0=r(\"%#lx\"),ix0=r(\"%lX\"),fx0=r(\"%#lX\"),xx0=r(\"%lo\"),ox0=r(\"%#lo\"),ax0=r(\"%ld\"),cx0=r(MY),sx0=r(\"%lu\"),vx0=r(\"%+Ld\"),lx0=r(\"% Ld\"),bx0=r(\"%+Li\"),px0=r(\"% Li\"),mx0=r(\"%Lx\"),_x0=r(\"%#Lx\"),yx0=r(\"%LX\"),hx0=r(\"%#LX\"),dx0=r(\"%Lo\"),kx0=r(\"%#Lo\"),wx0=r(\"%Ld\"),Ex0=r(YH),Sx0=r(\"%Lu\"),gx0=r(\"%+d\"),Fx0=r(\"% d\"),Tx0=r(\"%+i\"),Ox0=r(\"% i\"),Ix0=r(\"%x\"),Ax0=r(\"%#x\"),Nx0=r(\"%X\"),Cx0=r(\"%#X\"),Px0=r(\"%o\"),Dx0=r(\"%#o\"),Lx0=r(N2),Rx0=r(oX),jx0=r(wY),Gx0=r(z),Mx0=r(\"@}\"),Bx0=r(\"@?\"),qx0=r(`@\n`),Ux0=r(\"@.\"),Hx0=r(\"@@\"),Xx0=r(\"@%\"),Yx0=r(gX),Vx0=r(\"CamlinternalFormat.Type_mismatch\"),zx0=r(C),Kx0=[0,[11,r($H),[2,0,[2,0,0]]],r(\", %s%s\")],Wx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],Jx0=[0,[11,r(\"Fatal error in uncaught exception handler: exception \"),[2,0,[12,10,0]]],r(`Fatal error in uncaught exception handler: exception %s\n`)],$x0=r(\"Fatal error: out of memory in uncaught exception handler\"),Zx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],Qx0=[0,[2,0,[12,10,0]],r(`%s\n`)],ro0=[0,[11,r(NY),0],r(NY)],eo0=r(\"Raised at\"),no0=r(\"Re-raised at\"),to0=r(\"Raised by primitive operation at\"),uo0=r(\"Called from\"),io0=r(\" (inlined)\"),fo0=r(C),xo0=[0,[2,0,[12,32,[2,0,[11,r(' in file \"'),[2,0,[12,34,[2,0,[11,r(\", line \"),[4,0,0,0,[11,r(yH),ni0]]]]]]]]]],r('%s %s in file \"%s\"%s, line %d, characters %d-%d')],oo0=[0,[2,0,[11,r(\" unknown location\"),0]],r(\"%s unknown location\")],ao0=r(\"Out of memory\"),co0=r(\"Stack overflow\"),so0=r(\"Pattern matching failed\"),vo0=r(\"Assertion failed\"),lo0=r(\"Undefined recursive module\"),bo0=[0,[12,40,[2,0,[2,0,[12,41,0]]]],r(\"(%s%s)\")],po0=r(C),mo0=r(C),_o0=[0,[12,40,[2,0,[12,41,0]]],r(\"(%s)\")],yo0=[0,[4,0,0,0,0],r(N2)],ho0=[0,[3,0,0],r(Vt)],do0=r(bv),ko0=[0,r(C),r(`(Cannot print locations:\n bytecode executable program file not found)`),r(`(Cannot print locations:\n bytecode executable program file appears to be corrupt)`),r(`(Cannot print locations:\n bytecode executable program file has wrong magic number)`),r(`(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)`)],wo0=[3,0,3],Eo0=r(Lo),So0=r(cv),go0=r(\"Flow_ast.Function.BodyBlock@ \")],Ca0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Pa0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Da0=[0,[17,0,[12,41,0]],r(d0)],La0=[0,[17,0,[12,41,0]],r(d0)],Ra0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Function.BodyExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Function.BodyExpression@ \")],ja0=[0,[17,0,[12,41,0]],r(d0)],Ga0=[0,[15,0],r(N0)],Ma0=r(Yr),Ba0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qa0=r(\"Flow_ast.Function.id\"),Ua0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ha0=r(tr),Xa0=r(Z0),Ya0=r(nr),Va0=[0,[17,0,0],r(z)],za0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ka0=r(Dt),Wa0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ja0=[0,[17,0,0],r(z)],$a0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Za0=r(Wn),Qa0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rc0=[0,[17,0,0],r(z)],ec0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nc0=r(gs),tc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uc0=[0,[9,0,0],r(An)],ic0=[0,[17,0,0],r(z)],fc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xc0=r(G7),oc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ac0=[0,[9,0,0],r(An)],cc0=[0,[17,0,0],r(z)],sc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vc0=r(r7),lc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bc0=r(tr),pc0=r(Z0),mc0=r(nr),_c0=[0,[17,0,0],r(z)],yc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hc0=r(Ju),dc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kc0=[0,[17,0,0],r(z)],wc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ec0=r(sv),Sc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gc0=r(tr),Fc0=r(Z0),Tc0=r(nr),Oc0=[0,[17,0,0],r(z)],Ic0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ac0=r(Xr),Nc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cc0=r(tr),Pc0=r(Z0),Dc0=r(nr),Lc0=[0,[17,0,0],r(z)],Rc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jc0=r(\"sig_loc\"),Gc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Mc0=[0,[17,0,0],r(z)],Bc0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qc0=[0,[15,0],r(N0)],Uc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Xc0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Yc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zc0=r(\"Flow_ast.Function.Params.this_\"),Kc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wc0=r(tr),Jc0=r(Z0),$c0=r(nr),Zc0=[0,[17,0,0],r(z)],Qc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rs0=r(Dt),es0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ns0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ts0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],us0=[0,[17,0,0],r(z)],is0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fs0=r(xd),xs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],os0=r(tr),as0=r(Z0),cs0=r(nr),ss0=[0,[17,0,0],r(z)],vs0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ls0=r(Xr),bs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ps0=r(tr),ms0=r(Z0),_s0=r(nr),ys0=[0,[17,0,0],r(z)],hs0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ds0=[0,[15,0],r(N0)],ks0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ws0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Es0=[0,[17,0,[12,41,0]],r(d0)],Ss0=[0,[15,0],r(N0)],gs0=r(Yr),Fs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ts0=r(\"Flow_ast.Function.ThisParam.annot\"),Os0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Is0=[0,[17,0,0],r(z)],As0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ns0=r(Xr),Cs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ps0=r(tr),Ds0=r(Z0),Ls0=r(nr),Rs0=[0,[17,0,0],r(z)],js0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Gs0=[0,[15,0],r(N0)],Ms0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Bs0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],qs0=[0,[17,0,[12,41,0]],r(d0)],Us0=[0,[15,0],r(N0)],Hs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xs0=r(\"Flow_ast.Function.Param.argument\"),Ys0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vs0=[0,[17,0,0],r(z)],zs0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ks0=r(_i),Ws0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Js0=r(tr),$s0=r(Z0),Zs0=r(nr),Qs0=[0,[17,0,0],r(z)],r10=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],e10=[0,[15,0],r(N0)],n10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],t10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],u10=[0,[17,0,[12,41,0]],r(d0)],i10=[0,[15,0],r(N0)],f10=r(Yr),x10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],o10=r(\"Flow_ast.Function.RestParam.argument\"),a10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],c10=[0,[17,0,0],r(z)],s10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],v10=r(Xr),l10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b10=r(tr),p10=r(Z0),m10=r(nr),_10=[0,[17,0,0],r(z)],y10=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],h10=[0,[15,0],r(N0)],d10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],k10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],w10=[0,[17,0,[12,41,0]],r(d0)],E10=[0,[15,0],r(N0)],S10=r(Yr),g10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],T10=r(\"Flow_ast.Class.id\"),O10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],I10=r(tr),A10=r(Z0),N10=r(nr),C10=[0,[17,0,0],r(z)],P10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],D10=r(Wn),L10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R10=[0,[17,0,0],r(z)],j10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G10=r(sv),M10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B10=r(tr),q10=r(Z0),U10=r(nr),H10=[0,[17,0,0],r(z)],X10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Y10=r(P7),V10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],z10=r(tr),K10=r(Z0),W10=r(nr),J10=[0,[17,0,0],r(z)],$10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Z10=r(ws),Q10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rv0=r(tr),ev0=r(Z0),nv0=r(nr),tv0=[0,[17,0,0],r(z)],uv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iv0=r(\"class_decorators\"),fv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ov0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],av0=[0,[17,0,0],r(z)],cv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sv0=r(Xr),vv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lv0=r(tr),bv0=r(Z0),pv0=r(nr),mv0=[0,[17,0,0],r(z)],_v0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yv0=[0,[15,0],r(N0)],hv0=r(Yr),dv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],kv0=r(\"Flow_ast.Class.Decorator.expression\"),wv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ev0=[0,[17,0,0],r(z)],Sv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gv0=r(Xr),Fv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tv0=r(tr),Ov0=r(Z0),Iv0=r(nr),Av0=[0,[17,0,0],r(z)],Nv0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Cv0=[0,[15,0],r(N0)],Pv0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dv0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Lv0=[0,[17,0,[12,41,0]],r(d0)],Rv0=[0,[15,0],r(N0)],jv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Body.Method\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Body.Method@ \")],Gv0=[0,[17,0,[12,41,0]],r(d0)],Mv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Body.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Body.Property@ \")],Bv0=[0,[17,0,[12,41,0]],r(d0)],qv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Body.PrivateField\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Body.PrivateField@ \")],Uv0=[0,[17,0,[12,41,0]],r(d0)],Hv0=[0,[15,0],r(N0)],Xv0=r(Yr),Yv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zv0=r(\"Flow_ast.Class.Body.body\"),Kv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Jv0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$v0=[0,[17,0,0],r(z)],Zv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qv0=r(Xr),r20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e20=r(tr),n20=r(Z0),t20=r(nr),u20=[0,[17,0,0],r(z)],i20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],f20=[0,[15,0],r(N0)],x20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],o20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],a20=[0,[17,0,[12,41,0]],r(d0)],c20=[0,[15,0],r(N0)],s20=r(Yr),v20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],l20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],b20=r(\"Flow_ast.Class.Implements.interfaces\"),p20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],_20=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],y20=[0,[17,0,0],r(z)],h20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],d20=r(Xr),k20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w20=r(tr),E20=r(Z0),S20=r(nr),g20=[0,[17,0,0],r(z)],F20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],T20=[0,[15,0],r(N0)],O20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],I20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],A20=[0,[17,0,[12,41,0]],r(d0)],N20=[0,[15,0],r(N0)],C20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P20=r(\"Flow_ast.Class.Implements.Interface.id\"),D20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L20=[0,[17,0,0],r(z)],R20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j20=r(Z2),G20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],M20=r(tr),B20=r(Z0),q20=r(nr),U20=[0,[17,0,0],r(z)],H20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],X20=[0,[15,0],r(N0)],Y20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],V20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],z20=[0,[17,0,[12,41,0]],r(d0)],K20=[0,[15,0],r(N0)],W20=r(Yr),J20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$20=r(\"Flow_ast.Class.Extends.expr\"),Z20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q20=[0,[17,0,0],r(z)],rl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],el0=r(Z2),nl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tl0=r(tr),ul0=r(Z0),il0=r(nr),fl0=[0,[17,0,0],r(z)],xl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ol0=r(Xr),al0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cl0=r(tr),sl0=r(Z0),vl0=r(nr),ll0=[0,[17,0,0],r(z)],bl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pl0=[0,[15,0],r(N0)],ml0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_l0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yl0=[0,[17,0,[12,41,0]],r(d0)],hl0=[0,[15,0],r(N0)],dl0=r(Yr),kl0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wl0=r(\"Flow_ast.Class.PrivateField.key\"),El0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sl0=[0,[17,0,0],r(z)],gl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fl0=r(Bn),Tl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ol0=[0,[17,0,0],r(z)],Il0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Al0=r(Qc),Nl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cl0=[0,[17,0,0],r(z)],Pl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dl0=r(nu),Ll0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rl0=[0,[9,0,0],r(An)],jl0=[0,[17,0,0],r(z)],Gl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ml0=r(cu),Bl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ql0=r(tr),Ul0=r(Z0),Hl0=r(nr),Xl0=[0,[17,0,0],r(z)],Yl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vl0=r(Xr),zl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Kl0=r(tr),Wl0=r(Z0),Jl0=r(nr),$l0=[0,[17,0,0],r(z)],Zl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ql0=[0,[15,0],r(N0)],rb0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eb0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nb0=[0,[17,0,[12,41,0]],r(d0)],tb0=[0,[15,0],r(N0)],ub0=r(\"Flow_ast.Class.Property.Uninitialized\"),ib0=r(\"Flow_ast.Class.Property.Declared\"),fb0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Property.Initialized\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Property.Initialized@ \")],xb0=[0,[17,0,[12,41,0]],r(d0)],ob0=[0,[15,0],r(N0)],ab0=r(Yr),cb0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sb0=r(\"Flow_ast.Class.Property.key\"),vb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lb0=[0,[17,0,0],r(z)],bb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pb0=r(Bn),mb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_b0=[0,[17,0,0],r(z)],yb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hb0=r(Qc),db0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kb0=[0,[17,0,0],r(z)],wb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eb0=r(nu),Sb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gb0=[0,[9,0,0],r(An)],Fb0=[0,[17,0,0],r(z)],Tb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ob0=r(cu),Ib0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ab0=r(tr),Nb0=r(Z0),Cb0=r(nr),Pb0=[0,[17,0,0],r(z)],Db0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Lb0=r(Xr),Rb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jb0=r(tr),Gb0=r(Z0),Mb0=r(nr),Bb0=[0,[17,0,0],r(z)],qb0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ub0=[0,[15,0],r(N0)],Hb0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xb0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yb0=[0,[17,0,[12,41,0]],r(d0)],Vb0=[0,[15,0],r(N0)],zb0=r(Yr),Kb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wb0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Jb0=r(\"Flow_ast.Class.Method.kind\"),$b0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zb0=[0,[17,0,0],r(z)],Qb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r40=r(ii),e40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n40=[0,[17,0,0],r(z)],t40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u40=r(Bn),i40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],x40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],o40=[0,[17,0,[12,41,0]],r(d0)],a40=[0,[17,0,0],r(z)],c40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],s40=r(nu),v40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l40=[0,[9,0,0],r(An)],b40=[0,[17,0,0],r(z)],p40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],m40=r(j_),_40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],y40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],h40=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],d40=[0,[17,0,0],r(z)],k40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],w40=r(Xr),E40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S40=r(tr),g40=r(Z0),F40=r(nr),T40=[0,[17,0,0],r(z)],O40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],I40=[0,[15,0],r(N0)],A40=r(\"Flow_ast.Class.Method.Constructor\"),N40=r(\"Flow_ast.Class.Method.Method\"),C40=r(\"Flow_ast.Class.Method.Get\"),P40=r(\"Flow_ast.Class.Method.Set\"),D40=[0,[15,0],r(N0)],L40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j40=[0,[17,0,[12,41,0]],r(d0)],G40=[0,[15,0],r(N0)],M40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],B40=r(\"Flow_ast.Comment.kind\"),q40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U40=[0,[17,0,0],r(z)],H40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X40=r(\"text\"),Y40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V40=[0,[3,0,0],r(Vt)],z40=[0,[17,0,0],r(z)],K40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],W40=r(\"on_newline\"),J40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$40=[0,[9,0,0],r(An)],Z40=[0,[17,0,0],r(z)],Q40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],r80=[0,[15,0],r(N0)],e80=r(\"Flow_ast.Comment.Line\"),n80=r(\"Flow_ast.Comment.Block\"),t80=[0,[15,0],r(N0)],u80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],i80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],f80=[0,[17,0,[12,41,0]],r(d0)],x80=[0,[15,0],r(N0)],o80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object@ \")],a80=[0,[17,0,[12,41,0]],r(d0)],c80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array@ \")],s80=[0,[17,0,[12,41,0]],r(d0)],v80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Identifier@ \")],l80=[0,[17,0,[12,41,0]],r(d0)],b80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Expression@ \")],p80=[0,[17,0,[12,41,0]],r(d0)],m80=[0,[15,0],r(N0)],_80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],y80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],h80=[0,[17,0,[12,41,0]],r(d0)],d80=[0,[15,0],r(N0)],k80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w80=r(\"Flow_ast.Pattern.Identifier.name\"),E80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S80=[0,[17,0,0],r(z)],g80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F80=r(Qc),T80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O80=[0,[17,0,0],r(z)],I80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],A80=r(qu),N80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],C80=[0,[9,0,0],r(An)],P80=[0,[17,0,0],r(z)],D80=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],L80=[0,[15,0],r(N0)],R80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],G80=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],M80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],B80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q80=r(\"Flow_ast.Pattern.Array.elements\"),U80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],X80=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Y80=[0,[17,0,0],r(z)],V80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],z80=r(Qc),K80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],W80=[0,[17,0,0],r(z)],J80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$80=r(Xr),Z80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q80=r(tr),r30=r(Z0),e30=r(nr),n30=[0,[17,0,0],r(z)],t30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],u30=[0,[15,0],r(N0)],i30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array.Element\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array.Element@ \")],f30=[0,[17,0,[12,41,0]],r(d0)],x30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array.RestElement\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array.RestElement@ \")],o30=[0,[17,0,[12,41,0]],r(d0)],a30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array.Hole\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array.Hole@ \")],c30=[0,[17,0,[12,41,0]],r(d0)],s30=[0,[15,0],r(N0)],v30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],l30=r(\"Flow_ast.Pattern.Array.Element.argument\"),b30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],p30=[0,[17,0,0],r(z)],m30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_30=r(_i),y30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],h30=r(tr),d30=r(Z0),k30=r(nr),w30=[0,[17,0,0],r(z)],E30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],S30=[0,[15,0],r(N0)],g30=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],F30=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],T30=[0,[17,0,[12,41,0]],r(d0)],O30=[0,[15,0],r(N0)],I30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],A30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],N30=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],C30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],P30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D30=r(\"Flow_ast.Pattern.Object.properties\"),L30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],j30=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],G30=[0,[17,0,0],r(z)],M30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],B30=r(Qc),q30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U30=[0,[17,0,0],r(z)],H30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X30=r(Xr),Y30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V30=r(tr),z30=r(Z0),K30=r(nr),W30=[0,[17,0,0],r(z)],J30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$30=[0,[15,0],r(N0)],Z30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property@ \")],Q30=[0,[17,0,[12,41,0]],r(d0)],r60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.RestElement\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.RestElement@ \")],e60=[0,[17,0,[12,41,0]],r(d0)],n60=[0,[15,0],r(N0)],t60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],u60=r(\"Flow_ast.Pattern.Object.Property.key\"),i60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f60=[0,[17,0,0],r(z)],x60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],o60=r(mi),a60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],c60=[0,[17,0,0],r(z)],s60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],v60=r(_i),l60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b60=r(tr),p60=r(Z0),m60=r(nr),_60=[0,[17,0,0],r(z)],y60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],h60=r(f6),d60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],k60=[0,[9,0,0],r(An)],w60=[0,[17,0,0],r(z)],E60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],S60=[0,[15,0],r(N0)],g60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],F60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],T60=[0,[17,0,[12,41,0]],r(d0)],O60=[0,[15,0],r(N0)],I60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property.Literal@ \")],A60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],N60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],C60=[0,[17,0,[12,41,0]],r(d0)],P60=[0,[17,0,[12,41,0]],r(d0)],D60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property.Identifier@ \")],L60=[0,[17,0,[12,41,0]],r(d0)],R60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property.Computed\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property.Computed@ \")],j60=[0,[17,0,[12,41,0]],r(d0)],G60=[0,[15,0],r(N0)],M60=r(Yr),B60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q60=r(\"Flow_ast.Pattern.RestElement.argument\"),U60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H60=[0,[17,0,0],r(z)],X60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Y60=r(Xr),V60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],z60=r(tr),K60=r(Z0),W60=r(nr),J60=[0,[17,0,0],r(z)],$60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z60=[0,[15,0],r(N0)],Q60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],rp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ep0=[0,[17,0,[12,41,0]],r(d0)],np0=[0,[15,0],r(N0)],tp0=r(Yr),up0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ip0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],fp0=r(\"Flow_ast.JSX.frag_opening_element\"),xp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],op0=[0,[17,0,0],r(z)],ap0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cp0=r(\"frag_closing_element\"),sp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vp0=[0,[17,0,0],r(z)],lp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bp0=r(\"frag_children\"),pp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_p0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],hp0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],dp0=[0,[17,0,[12,41,0]],r(d0)],kp0=[0,[17,0,0],r(z)],wp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ep0=r(\"frag_comments\"),Sp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gp0=r(tr),Fp0=r(Z0),Tp0=r(nr),Op0=[0,[17,0,0],r(z)],Ip0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ap0=[0,[15,0],r(N0)],Np0=r(Yr),Cp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Dp0=r(\"Flow_ast.JSX.opening_element\"),Lp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rp0=[0,[17,0,0],r(z)],jp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gp0=r(\"closing_element\"),Mp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bp0=r(tr),qp0=r(Z0),Up0=r(nr),Hp0=[0,[17,0,0],r(z)],Xp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yp0=r(Ve),Vp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Kp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Wp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Jp0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$p0=[0,[17,0,[12,41,0]],r(d0)],Zp0=[0,[17,0,0],r(z)],Qp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r50=r(Xr),e50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n50=r(tr),t50=r(Z0),u50=r(nr),i50=[0,[17,0,0],r(z)],f50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],x50=[0,[15,0],r(N0)],o50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Element\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Element@ \")],a50=[0,[17,0,[12,41,0]],r(d0)],c50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Fragment\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Fragment@ \")],s50=[0,[17,0,[12,41,0]],r(d0)],v50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.ExpressionContainer\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.ExpressionContainer@ \")],l50=[0,[17,0,[12,41,0]],r(d0)],b50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.SpreadChild\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.SpreadChild@ \")],p50=[0,[17,0,[12,41,0]],r(d0)],m50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Text\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Text@ \")],_50=[0,[17,0,[12,41,0]],r(d0)],y50=[0,[15,0],r(N0)],h50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],d50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],k50=[0,[17,0,[12,41,0]],r(d0)],w50=[0,[15,0],r(N0)],E50=r(Yr),S50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],g50=r(\"Flow_ast.JSX.SpreadChild.expression\"),F50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],T50=[0,[17,0,0],r(z)],O50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],I50=r(Xr),A50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N50=r(tr),C50=r(Z0),P50=r(nr),D50=[0,[17,0,0],r(z)],L50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],R50=[0,[15,0],r(N0)],j50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],G50=r(\"Flow_ast.JSX.Closing.name\"),M50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B50=[0,[17,0,0],r(z)],q50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],U50=[0,[15,0],r(N0)],H50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],X50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Y50=[0,[17,0,[12,41,0]],r(d0)],V50=[0,[15,0],r(N0)],z50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],W50=r(\"Flow_ast.JSX.Opening.name\"),J50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$50=[0,[17,0,0],r(z)],Z50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q50=r(\"self_closing\"),rm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],em0=[0,[9,0,0],r(An)],nm0=[0,[17,0,0],r(z)],tm0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],um0=r(mY),im0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],xm0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],om0=[0,[17,0,0],r(z)],am0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cm0=[0,[15,0],r(N0)],sm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Opening.Attribute\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Opening.Attribute@ \")],vm0=[0,[17,0,[12,41,0]],r(d0)],lm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Opening.SpreadAttribute\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Opening.SpreadAttribute@ \")],bm0=[0,[17,0,[12,41,0]],r(d0)],pm0=[0,[15,0],r(N0)],mm0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_m0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ym0=[0,[17,0,[12,41,0]],r(d0)],hm0=[0,[15,0],r(N0)],dm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Identifier@ \")],km0=[0,[17,0,[12,41,0]],r(d0)],wm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.NamespacedName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.NamespacedName@ \")],Em0=[0,[17,0,[12,41,0]],r(d0)],Sm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.MemberExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.MemberExpression@ \")],gm0=[0,[17,0,[12,41,0]],r(d0)],Fm0=[0,[15,0],r(N0)],Tm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Om0=r(\"Flow_ast.JSX.MemberExpression._object\"),Im0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Am0=[0,[17,0,0],r(z)],Nm0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Cm0=r(Iv),Pm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dm0=[0,[17,0,0],r(z)],Lm0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Rm0=[0,[15,0],r(N0)],jm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.MemberExpression.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.MemberExpression.Identifier@ \")],Gm0=[0,[17,0,[12,41,0]],r(d0)],Mm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.MemberExpression.MemberExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.MemberExpression.MemberExpression@ \")],Bm0=[0,[17,0,[12,41,0]],r(d0)],qm0=[0,[15,0],r(N0)],Um0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Hm0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Xm0=[0,[17,0,[12,41,0]],r(d0)],Ym0=[0,[15,0],r(N0)],Vm0=r(Yr),zm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Km0=r(\"Flow_ast.JSX.SpreadAttribute.argument\"),Wm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jm0=[0,[17,0,0],r(z)],$m0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zm0=r(Xr),Qm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],r90=r(tr),e90=r(Z0),n90=r(nr),t90=[0,[17,0,0],r(z)],u90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],i90=[0,[15,0],r(N0)],f90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],x90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],o90=[0,[17,0,[12,41,0]],r(d0)],a90=[0,[15,0],r(N0)],c90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],s90=r(\"Flow_ast.JSX.Attribute.name\"),v90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l90=[0,[17,0,0],r(z)],b90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],p90=r(Bn),m90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_90=r(tr),y90=r(Z0),h90=r(nr),d90=[0,[17,0,0],r(z)],k90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],w90=[0,[15,0],r(N0)],E90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.Literal (\"),[17,[0,r(Ce),0,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.Literal (@,\")],S90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],g90=[0,[17,[0,r(Ce),0,0],[11,r(EX),[17,0,0]]],r(RU)],F90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.ExpressionContainer (\"),[17,[0,r(Ce),0,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.ExpressionContainer (@,\")],T90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O90=[0,[17,[0,r(Ce),0,0],[11,r(EX),[17,0,0]]],r(RU)],I90=[0,[15,0],r(N0)],A90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.Identifier@ \")],N90=[0,[17,0,[12,41,0]],r(d0)],C90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.NamespacedName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.NamespacedName@ \")],P90=[0,[17,0,[12,41,0]],r(d0)],D90=[0,[15,0],r(N0)],L90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j90=[0,[17,0,[12,41,0]],r(d0)],G90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M90=r(\"Flow_ast.JSX.Text.value\"),B90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q90=[0,[3,0,0],r(Vt)],U90=[0,[17,0,0],r(z)],H90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X90=r(c7),Y90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V90=[0,[3,0,0],r(Vt)],z90=[0,[17,0,0],r(z)],K90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],W90=[0,[15,0],r(N0)],J90=[0,[15,0],r(N0)],$90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.ExpressionContainer.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.ExpressionContainer.Expression@ \")],Z90=[0,[17,0,[12,41,0]],r(d0)],Q90=r(\"Flow_ast.JSX.ExpressionContainer.EmptyExpression\"),r_0=[0,[15,0],r(N0)],e_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],n_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],t_0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],u_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],i_0=r(\"Flow_ast.JSX.ExpressionContainer.expression\"),f_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],x_0=[0,[17,0,0],r(z)],o_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],a_0=r(Xr),c_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],s_0=r(tr),v_0=r(Z0),l_0=r(nr),b_0=[0,[17,0,0],r(z)],p_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],m_0=[0,[15,0],r(N0)],__0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],y_0=r(\"Flow_ast.JSX.NamespacedName.namespace\"),h_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d_0=[0,[17,0,0],r(z)],k_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],w_0=r(ui),E_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S_0=[0,[17,0,0],r(z)],g_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],F_0=[0,[15,0],r(N0)],T_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],O_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],I_0=[0,[17,0,[12,41,0]],r(d0)],A_0=[0,[15,0],r(N0)],N_0=r(Yr),C_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P_0=r(\"Flow_ast.JSX.Identifier.name\"),D_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L_0=[0,[3,0,0],r(Vt)],R_0=[0,[17,0,0],r(z)],j_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G_0=r(Xr),M_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B_0=r(tr),q_0=r(Z0),U_0=r(nr),H_0=[0,[17,0,0],r(z)],X_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Y_0=[0,[15,0],r(N0)],V_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],z_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],K_0=[0,[17,0,[12,41,0]],r(d0)],W_0=[0,[15,0],r(N0)],J_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array@ \")],$_0=[0,[17,0,[12,41,0]],r(d0)],Z_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.ArrowFunction\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.ArrowFunction@ \")],Q_0=[0,[17,0,[12,41,0]],r(d0)],ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Assignment\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Assignment@ \")],ey0=[0,[17,0,[12,41,0]],r(d0)],ny0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Binary\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Binary@ \")],ty0=[0,[17,0,[12,41,0]],r(d0)],uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Call\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Call@ \")],iy0=[0,[17,0,[12,41,0]],r(d0)],fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Class\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Class@ \")],xy0=[0,[17,0,[12,41,0]],r(d0)],oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Comprehension\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Comprehension@ \")],ay0=[0,[17,0,[12,41,0]],r(d0)],cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Conditional\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Conditional@ \")],sy0=[0,[17,0,[12,41,0]],r(d0)],vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Function\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Function@ \")],ly0=[0,[17,0,[12,41,0]],r(d0)],by0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Generator\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Generator@ \")],py0=[0,[17,0,[12,41,0]],r(d0)],my0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Identifier@ \")],_y0=[0,[17,0,[12,41,0]],r(d0)],yy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Import\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Import@ \")],hy0=[0,[17,0,[12,41,0]],r(d0)],dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.JSXElement\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.JSXElement@ \")],ky0=[0,[17,0,[12,41,0]],r(d0)],wy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.JSXFragment\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.JSXFragment@ \")],Ey0=[0,[17,0,[12,41,0]],r(d0)],Sy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Literal@ \")],gy0=[0,[17,0,[12,41,0]],r(d0)],Fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Logical\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Logical@ \")],Ty0=[0,[17,0,[12,41,0]],r(d0)],Oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member@ \")],Iy0=[0,[17,0,[12,41,0]],r(d0)],Ay0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.MetaProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.MetaProperty@ \")],Ny0=[0,[17,0,[12,41,0]],r(d0)],Cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.New\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.New@ \")],Py0=[0,[17,0,[12,41,0]],r(d0)],Dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object@ \")],Ly0=[0,[17,0,[12,41,0]],r(d0)],Ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.OptionalCall\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.OptionalCall@ \")],jy0=[0,[17,0,[12,41,0]],r(d0)],Gy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.OptionalMember\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.OptionalMember@ \")],My0=[0,[17,0,[12,41,0]],r(d0)],By0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Sequence\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Sequence@ \")],qy0=[0,[17,0,[12,41,0]],r(d0)],Uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Super\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Super@ \")],Hy0=[0,[17,0,[12,41,0]],r(d0)],Xy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.TaggedTemplate\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.TaggedTemplate@ \")],Yy0=[0,[17,0,[12,41,0]],r(d0)],Vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.TemplateLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.TemplateLiteral@ \")],zy0=[0,[17,0,[12,41,0]],r(d0)],Ky0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.This\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.This@ \")],Wy0=[0,[17,0,[12,41,0]],r(d0)],Jy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.TypeCast\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.TypeCast@ \")],$y0=[0,[17,0,[12,41,0]],r(d0)],Zy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Unary\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Unary@ \")],Qy0=[0,[17,0,[12,41,0]],r(d0)],rh0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Update\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Update@ \")],eh0=[0,[17,0,[12,41,0]],r(d0)],nh0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Yield\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Yield@ \")],th0=[0,[17,0,[12,41,0]],r(d0)],uh0=[0,[15,0],r(N0)],ih0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],fh0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],xh0=[0,[17,0,[12,41,0]],r(d0)],oh0=[0,[15,0],r(N0)],ah0=r(Yr),ch0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sh0=r(\"Flow_ast.Expression.Import.argument\"),vh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lh0=[0,[17,0,0],r(z)],bh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ph0=r(Xr),mh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_h0=r(tr),yh0=r(Z0),hh0=r(nr),dh0=[0,[17,0,0],r(z)],kh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wh0=[0,[15,0],r(N0)],Eh0=r(Yr),Sh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],gh0=r(\"Flow_ast.Expression.Super.comments\"),Fh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Th0=r(tr),Oh0=r(Z0),Ih0=r(nr),Ah0=[0,[17,0,0],r(z)],Nh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ch0=[0,[15,0],r(N0)],Ph0=r(Yr),Dh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lh0=r(\"Flow_ast.Expression.This.comments\"),Rh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jh0=r(tr),Gh0=r(Z0),Mh0=r(nr),Bh0=[0,[17,0,0],r(z)],qh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Uh0=[0,[15,0],r(N0)],Hh0=r(Yr),Xh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Yh0=r(\"Flow_ast.Expression.MetaProperty.meta\"),Vh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zh0=[0,[17,0,0],r(z)],Kh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wh0=r(Iv),Jh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$h0=[0,[17,0,0],r(z)],Zh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qh0=r(Xr),rd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ed0=r(tr),nd0=r(Z0),td0=r(nr),ud0=[0,[17,0,0],r(z)],id0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],fd0=[0,[15,0],r(N0)],xd0=r(Yr),od0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ad0=r(\"Flow_ast.Expression.TypeCast.expression\"),cd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sd0=[0,[17,0,0],r(z)],vd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ld0=r(Qc),bd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pd0=[0,[17,0,0],r(z)],md0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_d0=r(Xr),yd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hd0=r(tr),dd0=r(Z0),kd0=r(nr),wd0=[0,[17,0,0],r(z)],Ed0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Sd0=[0,[15,0],r(N0)],gd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Td0=r(\"Flow_ast.Expression.Generator.blocks\"),Od0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Id0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Ad0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Nd0=[0,[17,0,0],r(z)],Cd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pd0=r(T4),Dd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ld0=r(tr),Rd0=r(Z0),jd0=r(nr),Gd0=[0,[17,0,0],r(z)],Md0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Bd0=[0,[15,0],r(N0)],qd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ud0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Hd0=r(\"Flow_ast.Expression.Comprehension.blocks\"),Xd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Vd0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],zd0=[0,[17,0,0],r(z)],Kd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wd0=r(T4),Jd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$d0=r(tr),Zd0=r(Z0),Qd0=r(nr),rk0=[0,[17,0,0],r(z)],ek0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],nk0=[0,[15,0],r(N0)],tk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],uk0=r(\"Flow_ast.Expression.Comprehension.Block.left\"),ik0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fk0=[0,[17,0,0],r(z)],xk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ok0=r(Cu),ak0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ck0=[0,[17,0,0],r(z)],sk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vk0=r(R8),lk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bk0=[0,[9,0,0],r(An)],pk0=[0,[17,0,0],r(z)],mk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_k0=[0,[15,0],r(N0)],yk0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],hk0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],dk0=[0,[17,0,[12,41,0]],r(d0)],kk0=[0,[15,0],r(N0)],wk0=r(Yr),Ek0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Sk0=r(\"Flow_ast.Expression.Yield.argument\"),gk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fk0=r(tr),Tk0=r(Z0),Ok0=r(nr),Ik0=[0,[17,0,0],r(z)],Ak0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Nk0=r(Xr),Ck0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pk0=r(tr),Dk0=r(Z0),Lk0=r(nr),Rk0=[0,[17,0,0],r(z)],jk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gk0=r(lY),Mk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bk0=[0,[9,0,0],r(An)],qk0=[0,[17,0,0],r(z)],Uk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hk0=r(\"result_out\"),Xk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yk0=[0,[17,0,0],r(z)],Vk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zk0=[0,[15,0],r(N0)],Kk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Wk0=r(\"Flow_ast.Expression.OptionalMember.member\"),Jk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$k0=[0,[17,0,0],r(z)],Zk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qk0=r(lU),rw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ew0=[0,[17,0,0],r(z)],nw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tw0=r(qu),uw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iw0=[0,[9,0,0],r(An)],fw0=[0,[17,0,0],r(z)],xw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ow0=[0,[15,0],r(N0)],aw0=r(Yr),cw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sw0=r(\"Flow_ast.Expression.Member._object\"),vw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lw0=[0,[17,0,0],r(z)],bw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pw0=r(Iv),mw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_w0=[0,[17,0,0],r(z)],yw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hw0=r(Xr),dw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kw0=r(tr),ww0=r(Z0),Ew0=r(nr),Sw0=[0,[17,0,0],r(z)],gw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Fw0=[0,[15,0],r(N0)],Tw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member.PropertyIdentifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member.PropertyIdentifier@ \")],Ow0=[0,[17,0,[12,41,0]],r(d0)],Iw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member.PropertyPrivateName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member.PropertyPrivateName@ \")],Aw0=[0,[17,0,[12,41,0]],r(d0)],Nw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member.PropertyExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member.PropertyExpression@ \")],Cw0=[0,[17,0,[12,41,0]],r(d0)],Pw0=[0,[15,0],r(N0)],Dw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lw0=r(\"Flow_ast.Expression.OptionalCall.call\"),Rw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jw0=[0,[17,0,0],r(z)],Gw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Mw0=r(lU),Bw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qw0=[0,[17,0,0],r(z)],Uw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hw0=r(qu),Xw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yw0=[0,[9,0,0],r(An)],Vw0=[0,[17,0,0],r(z)],zw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Kw0=[0,[15,0],r(N0)],Ww0=r(Yr),Jw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$w0=r(\"Flow_ast.Expression.Call.callee\"),Zw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qw0=[0,[17,0,0],r(z)],rE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eE0=r(Z2),nE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tE0=r(tr),uE0=r(Z0),iE0=r(nr),fE0=[0,[17,0,0],r(z)],xE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oE0=r(C2),aE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cE0=[0,[17,0,0],r(z)],sE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vE0=r(Xr),lE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bE0=r(tr),pE0=r(Z0),mE0=r(nr),_E0=[0,[17,0,0],r(z)],yE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],hE0=[0,[15,0],r(N0)],dE0=r(Yr),kE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wE0=r(\"Flow_ast.Expression.New.callee\"),EE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],SE0=[0,[17,0,0],r(z)],gE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FE0=r(Z2),TE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OE0=r(tr),IE0=r(Z0),AE0=r(nr),NE0=[0,[17,0,0],r(z)],CE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PE0=r(C2),DE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LE0=r(tr),RE0=r(Z0),jE0=r(nr),GE0=[0,[17,0,0],r(z)],ME0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BE0=r(Xr),qE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UE0=r(tr),HE0=r(Z0),XE0=r(nr),YE0=[0,[17,0,0],r(z)],VE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zE0=[0,[15,0],r(N0)],KE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],JE0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$E0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],QE0=r(\"Flow_ast.Expression.ArgList.arguments\"),rS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],nS0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],tS0=[0,[17,0,0],r(z)],uS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iS0=r(Xr),fS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xS0=r(tr),oS0=r(Z0),aS0=r(nr),cS0=[0,[17,0,0],r(z)],sS0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vS0=[0,[15,0],r(N0)],lS0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],bS0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],pS0=[0,[17,0,[12,41,0]],r(d0)],mS0=[0,[15,0],r(N0)],_S0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Expression@ \")],yS0=[0,[17,0,[12,41,0]],r(d0)],hS0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Spread\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Spread@ \")],dS0=[0,[17,0,[12,41,0]],r(d0)],kS0=[0,[15,0],r(N0)],wS0=r(Yr),ES0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],SS0=r(\"Flow_ast.Expression.Conditional.test\"),gS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FS0=[0,[17,0,0],r(z)],TS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OS0=r(kv),IS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AS0=[0,[17,0,0],r(z)],NS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CS0=r(m3),PS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DS0=[0,[17,0,0],r(z)],LS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RS0=r(Xr),jS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GS0=r(tr),MS0=r(Z0),BS0=r(nr),qS0=[0,[17,0,0],r(z)],US0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],HS0=[0,[15,0],r(N0)],XS0=r(Yr),YS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VS0=r(\"Flow_ast.Expression.Logical.operator\"),zS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KS0=[0,[17,0,0],r(z)],WS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JS0=r(bi),$S0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZS0=[0,[17,0,0],r(z)],QS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rg0=r(Cu),eg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ng0=[0,[17,0,0],r(z)],tg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ug0=r(Xr),ig0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fg0=r(tr),xg0=r(Z0),og0=r(nr),ag0=[0,[17,0,0],r(z)],cg0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],sg0=[0,[15,0],r(N0)],vg0=r(\"Flow_ast.Expression.Logical.Or\"),lg0=r(\"Flow_ast.Expression.Logical.And\"),bg0=r(\"Flow_ast.Expression.Logical.NullishCoalesce\"),pg0=[0,[15,0],r(N0)],mg0=r(Yr),_g0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yg0=r(\"Flow_ast.Expression.Update.operator\"),hg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dg0=[0,[17,0,0],r(z)],kg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wg0=r(l7),Eg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sg0=[0,[17,0,0],r(z)],gg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fg0=r(qE),Tg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Og0=[0,[9,0,0],r(An)],Ig0=[0,[17,0,0],r(z)],Ag0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ng0=r(Xr),Cg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pg0=r(tr),Dg0=r(Z0),Lg0=r(nr),Rg0=[0,[17,0,0],r(z)],jg0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Gg0=[0,[15,0],r(N0)],Mg0=r(\"Flow_ast.Expression.Update.Decrement\"),Bg0=r(\"Flow_ast.Expression.Update.Increment\"),qg0=[0,[15,0],r(N0)],Ug0=r(Yr),Hg0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xg0=r(\"Flow_ast.Expression.Assignment.operator\"),Yg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vg0=r(tr),zg0=r(Z0),Kg0=r(nr),Wg0=[0,[17,0,0],r(z)],Jg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$g0=r(bi),Zg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qg0=[0,[17,0,0],r(z)],rF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eF0=r(Cu),nF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tF0=[0,[17,0,0],r(z)],uF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iF0=r(Xr),fF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xF0=r(tr),oF0=r(Z0),aF0=r(nr),cF0=[0,[17,0,0],r(z)],sF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vF0=[0,[15,0],r(N0)],lF0=r(\"Flow_ast.Expression.Assignment.PlusAssign\"),bF0=r(\"Flow_ast.Expression.Assignment.MinusAssign\"),pF0=r(\"Flow_ast.Expression.Assignment.MultAssign\"),mF0=r(\"Flow_ast.Expression.Assignment.ExpAssign\"),_F0=r(\"Flow_ast.Expression.Assignment.DivAssign\"),yF0=r(\"Flow_ast.Expression.Assignment.ModAssign\"),hF0=r(\"Flow_ast.Expression.Assignment.LShiftAssign\"),dF0=r(\"Flow_ast.Expression.Assignment.RShiftAssign\"),kF0=r(\"Flow_ast.Expression.Assignment.RShift3Assign\"),wF0=r(\"Flow_ast.Expression.Assignment.BitOrAssign\"),EF0=r(\"Flow_ast.Expression.Assignment.BitXorAssign\"),SF0=r(\"Flow_ast.Expression.Assignment.BitAndAssign\"),gF0=r(\"Flow_ast.Expression.Assignment.NullishAssign\"),FF0=r(\"Flow_ast.Expression.Assignment.AndAssign\"),TF0=r(\"Flow_ast.Expression.Assignment.OrAssign\"),OF0=[0,[15,0],r(N0)],IF0=r(Yr),AF0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],NF0=r(\"Flow_ast.Expression.Binary.operator\"),CF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PF0=[0,[17,0,0],r(z)],DF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LF0=r(bi),RF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jF0=[0,[17,0,0],r(z)],GF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MF0=r(Cu),BF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qF0=[0,[17,0,0],r(z)],UF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],HF0=r(Xr),XF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YF0=r(tr),VF0=r(Z0),zF0=r(nr),KF0=[0,[17,0,0],r(z)],WF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],JF0=[0,[15,0],r(N0)],$F0=r(\"Flow_ast.Expression.Binary.Equal\"),ZF0=r(\"Flow_ast.Expression.Binary.NotEqual\"),QF0=r(\"Flow_ast.Expression.Binary.StrictEqual\"),rT0=r(\"Flow_ast.Expression.Binary.StrictNotEqual\"),eT0=r(\"Flow_ast.Expression.Binary.LessThan\"),nT0=r(\"Flow_ast.Expression.Binary.LessThanEqual\"),tT0=r(\"Flow_ast.Expression.Binary.GreaterThan\"),uT0=r(\"Flow_ast.Expression.Binary.GreaterThanEqual\"),iT0=r(\"Flow_ast.Expression.Binary.LShift\"),fT0=r(\"Flow_ast.Expression.Binary.RShift\"),xT0=r(\"Flow_ast.Expression.Binary.RShift3\"),oT0=r(\"Flow_ast.Expression.Binary.Plus\"),aT0=r(\"Flow_ast.Expression.Binary.Minus\"),cT0=r(\"Flow_ast.Expression.Binary.Mult\"),sT0=r(\"Flow_ast.Expression.Binary.Exp\"),vT0=r(\"Flow_ast.Expression.Binary.Div\"),lT0=r(\"Flow_ast.Expression.Binary.Mod\"),bT0=r(\"Flow_ast.Expression.Binary.BitOr\"),pT0=r(\"Flow_ast.Expression.Binary.Xor\"),mT0=r(\"Flow_ast.Expression.Binary.BitAnd\"),_T0=r(\"Flow_ast.Expression.Binary.In\"),yT0=r(\"Flow_ast.Expression.Binary.Instanceof\"),hT0=[0,[15,0],r(N0)],dT0=r(Yr),kT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wT0=r(\"Flow_ast.Expression.Unary.operator\"),ET0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ST0=[0,[17,0,0],r(z)],gT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FT0=r(l7),TT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OT0=[0,[17,0,0],r(z)],IT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],AT0=r(Xr),NT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],CT0=r(tr),PT0=r(Z0),DT0=r(nr),LT0=[0,[17,0,0],r(z)],RT0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jT0=[0,[15,0],r(N0)],GT0=r(\"Flow_ast.Expression.Unary.Minus\"),MT0=r(\"Flow_ast.Expression.Unary.Plus\"),BT0=r(\"Flow_ast.Expression.Unary.Not\"),qT0=r(\"Flow_ast.Expression.Unary.BitNot\"),UT0=r(\"Flow_ast.Expression.Unary.Typeof\"),HT0=r(\"Flow_ast.Expression.Unary.Void\"),XT0=r(\"Flow_ast.Expression.Unary.Delete\"),YT0=r(\"Flow_ast.Expression.Unary.Await\"),VT0=[0,[15,0],r(N0)],zT0=r(Yr),KT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JT0=r(\"Flow_ast.Expression.Sequence.expressions\"),$T0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QT0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rO0=[0,[17,0,0],r(z)],eO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nO0=r(Xr),tO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uO0=r(tr),iO0=r(Z0),fO0=r(nr),xO0=[0,[17,0,0],r(z)],oO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aO0=[0,[15,0],r(N0)],cO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],vO0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],lO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],pO0=r(\"Flow_ast.Expression.Object.properties\"),mO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_O0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],yO0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],hO0=[0,[17,0,0],r(z)],dO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kO0=r(Xr),wO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EO0=r(tr),SO0=r(Z0),gO0=r(nr),FO0=[0,[17,0,0],r(z)],TO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OO0=[0,[15,0],r(N0)],IO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property@ \")],AO0=[0,[17,0,[12,41,0]],r(d0)],NO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.SpreadProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.SpreadProperty@ \")],CO0=[0,[17,0,[12,41,0]],r(d0)],PO0=[0,[15,0],r(N0)],DO0=r(Yr),LO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],RO0=r(\"Flow_ast.Expression.Object.SpreadProperty.argument\"),jO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GO0=[0,[17,0,0],r(z)],MO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BO0=r(Xr),qO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UO0=r(tr),HO0=r(Z0),XO0=r(nr),YO0=[0,[17,0,0],r(z)],VO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zO0=[0,[15,0],r(N0)],KO0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],WO0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],JO0=[0,[17,0,[12,41,0]],r(d0)],$O0=[0,[15,0],r(N0)],ZO0=r(Yr),QO0=r(Yr),rI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Init {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Init {@,\")],eI0=r(ii),nI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tI0=[0,[17,0,0],r(z)],uI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iI0=r(Bn),fI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xI0=[0,[17,0,0],r(z)],oI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aI0=r(f6),cI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sI0=[0,[9,0,0],r(An)],vI0=[0,[17,0,0],r(z)],lI0=[0,[17,0,[12,br,0]],r(Y6)],bI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Method {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Method {@,\")],pI0=r(ii),mI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_I0=[0,[17,0,0],r(z)],yI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hI0=r(Bn),dI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],EI0=[0,[17,0,[12,41,0]],r(d0)],SI0=[0,[17,0,0],r(z)],gI0=[0,[17,0,[12,br,0]],r(Y6)],FI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Get {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Get {@,\")],TI0=r(ii),OI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],II0=[0,[17,0,0],r(z)],AI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NI0=r(Bn),CI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],DI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],LI0=[0,[17,0,[12,41,0]],r(d0)],RI0=[0,[17,0,0],r(z)],jI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GI0=r(Xr),MI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BI0=r(tr),qI0=r(Z0),UI0=r(nr),HI0=[0,[17,0,0],r(z)],XI0=[0,[17,0,[12,br,0]],r(Y6)],YI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Set {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Set {@,\")],VI0=r(ii),zI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KI0=[0,[17,0,0],r(z)],WI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JI0=r(Bn),$I0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],QI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rA0=[0,[17,0,[12,41,0]],r(d0)],eA0=[0,[17,0,0],r(z)],nA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tA0=r(Xr),uA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iA0=r(tr),fA0=r(Z0),xA0=r(nr),oA0=[0,[17,0,0],r(z)],aA0=[0,[17,0,[12,br,0]],r(Y6)],cA0=[0,[15,0],r(N0)],sA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],vA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],lA0=[0,[17,0,[12,41,0]],r(d0)],bA0=[0,[15,0],r(N0)],pA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.Literal@ \")],mA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_A0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yA0=[0,[17,0,[12,41,0]],r(d0)],hA0=[0,[17,0,[12,41,0]],r(d0)],dA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.Identifier@ \")],kA0=[0,[17,0,[12,41,0]],r(d0)],wA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.PrivateName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.PrivateName@ \")],EA0=[0,[17,0,[12,41,0]],r(d0)],SA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Computed\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.Computed@ \")],gA0=[0,[17,0,[12,41,0]],r(d0)],FA0=[0,[15,0],r(N0)],TA0=r(Yr),OA0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IA0=r(\"Flow_ast.Expression.TaggedTemplate.tag\"),AA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NA0=[0,[17,0,0],r(z)],CA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PA0=r(EY),DA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],RA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jA0=[0,[17,0,[12,41,0]],r(d0)],GA0=[0,[17,0,0],r(z)],MA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BA0=r(Xr),qA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UA0=r(tr),HA0=r(Z0),XA0=r(nr),YA0=[0,[17,0,0],r(z)],VA0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zA0=[0,[15,0],r(N0)],KA0=r(Yr),WA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$A0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ZA0=r(\"Flow_ast.Expression.TemplateLiteral.quasis\"),QA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],eN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],nN0=[0,[17,0,0],r(z)],tN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uN0=r(Mg),iN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],xN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],oN0=[0,[17,0,0],r(z)],aN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cN0=r(Xr),sN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vN0=r(tr),lN0=r(Z0),bN0=r(nr),pN0=[0,[17,0,0],r(z)],mN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_N0=[0,[15,0],r(N0)],yN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hN0=r(\"Flow_ast.Expression.TemplateLiteral.Element.value\"),dN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kN0=[0,[17,0,0],r(z)],wN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EN0=r(aU),SN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gN0=[0,[9,0,0],r(An)],FN0=[0,[17,0,0],r(z)],TN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ON0=[0,[15,0],r(N0)],IN0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AN0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NN0=[0,[17,0,[12,41,0]],r(d0)],CN0=[0,[15,0],r(N0)],PN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DN0=r(\"Flow_ast.Expression.TemplateLiteral.Element.raw\"),LN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RN0=[0,[3,0,0],r(Vt)],jN0=[0,[17,0,0],r(z)],GN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MN0=r(PY),BN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qN0=[0,[3,0,0],r(Vt)],UN0=[0,[17,0,0],r(z)],HN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],XN0=[0,[15,0],r(N0)],YN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],zN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],KN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JN0=r(\"Flow_ast.Expression.Array.elements\"),$N0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rC0=[0,[17,0,0],r(z)],eC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nC0=r(Xr),tC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uC0=r(tr),iC0=r(Z0),fC0=r(nr),xC0=[0,[17,0,0],r(z)],oC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aC0=[0,[15,0],r(N0)],cC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array.Expression@ \")],sC0=[0,[17,0,[12,41,0]],r(d0)],vC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array.Spread\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array.Spread@ \")],lC0=[0,[17,0,[12,41,0]],r(d0)],bC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array.Hole\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array.Hole@ \")],pC0=[0,[17,0,[12,41,0]],r(d0)],mC0=[0,[15,0],r(N0)],_C0=r(Yr),yC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hC0=r(\"Flow_ast.Expression.SpreadElement.argument\"),dC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kC0=[0,[17,0,0],r(z)],wC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EC0=r(Xr),SC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gC0=r(tr),FC0=r(Z0),TC0=r(nr),OC0=[0,[17,0,0],r(z)],IC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AC0=[0,[15,0],r(N0)],NC0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],CC0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],PC0=[0,[17,0,[12,41,0]],r(d0)],DC0=[0,[15,0],r(N0)],LC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jC0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],BC0=r(\"Flow_ast.Expression.CallTypeArgs.arguments\"),qC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],HC0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],XC0=[0,[17,0,0],r(z)],YC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VC0=r(Xr),zC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KC0=r(tr),WC0=r(Z0),JC0=r(nr),$C0=[0,[17,0,0],r(z)],ZC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],QC0=[0,[15,0],r(N0)],rP0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eP0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nP0=[0,[17,0,[12,41,0]],r(d0)],tP0=[0,[15,0],r(N0)],uP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.CallTypeArg.Explicit\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.CallTypeArg.Explicit@ \")],iP0=[0,[17,0,[12,41,0]],r(d0)],fP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.CallTypeArg.Implicit\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.CallTypeArg.Implicit@ \")],xP0=[0,[17,0,[12,41,0]],r(d0)],oP0=[0,[15,0],r(N0)],aP0=r(Yr),cP0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sP0=r(\"Flow_ast.Expression.CallTypeArg.Implicit.comments\"),vP0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lP0=r(tr),bP0=r(Z0),pP0=r(nr),mP0=[0,[17,0,0],r(z)],_P0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yP0=[0,[15,0],r(N0)],hP0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],dP0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],kP0=[0,[17,0,[12,41,0]],r(d0)],wP0=[0,[15,0],r(N0)],EP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Block\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Block@ \")],SP0=[0,[17,0,[12,41,0]],r(d0)],gP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Break\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Break@ \")],FP0=[0,[17,0,[12,41,0]],r(d0)],TP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ClassDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ClassDeclaration@ \")],OP0=[0,[17,0,[12,41,0]],r(d0)],IP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Continue\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Continue@ \")],AP0=[0,[17,0,[12,41,0]],r(d0)],NP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Debugger\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Debugger@ \")],CP0=[0,[17,0,[12,41,0]],r(d0)],PP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareClass\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareClass@ \")],DP0=[0,[17,0,[12,41,0]],r(d0)],LP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration@ \")],RP0=[0,[17,0,[12,41,0]],r(d0)],jP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareFunction\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareFunction@ \")],GP0=[0,[17,0,[12,41,0]],r(d0)],MP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareInterface\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareInterface@ \")],BP0=[0,[17,0,[12,41,0]],r(d0)],qP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModule\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModule@ \")],UP0=[0,[17,0,[12,41,0]],r(d0)],HP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModuleExports\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModuleExports@ \")],XP0=[0,[17,0,[12,41,0]],r(d0)],YP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareTypeAlias\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareTypeAlias@ \")],VP0=[0,[17,0,[12,41,0]],r(d0)],zP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareOpaqueType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareOpaqueType@ \")],KP0=[0,[17,0,[12,41,0]],r(d0)],WP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareVariable\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareVariable@ \")],JP0=[0,[17,0,[12,41,0]],r(d0)],$P0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DoWhile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DoWhile@ \")],ZP0=[0,[17,0,[12,41,0]],r(d0)],QP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Empty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Empty@ \")],rD0=[0,[17,0,[12,41,0]],r(d0)],eD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration@ \")],nD0=[0,[17,0,[12,41,0]],r(d0)],tD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportDefaultDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration@ \")],uD0=[0,[17,0,[12,41,0]],r(d0)],iD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportNamedDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportNamedDeclaration@ \")],fD0=[0,[17,0,[12,41,0]],r(d0)],xD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Expression@ \")],oD0=[0,[17,0,[12,41,0]],r(d0)],aD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.For\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.For@ \")],cD0=[0,[17,0,[12,41,0]],r(d0)],sD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForIn\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForIn@ \")],vD0=[0,[17,0,[12,41,0]],r(d0)],lD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForOf\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForOf@ \")],bD0=[0,[17,0,[12,41,0]],r(d0)],pD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.FunctionDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.FunctionDeclaration@ \")],mD0=[0,[17,0,[12,41,0]],r(d0)],_D0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.If\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.If@ \")],yD0=[0,[17,0,[12,41,0]],r(d0)],hD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ImportDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ImportDeclaration@ \")],dD0=[0,[17,0,[12,41,0]],r(d0)],kD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.InterfaceDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.InterfaceDeclaration@ \")],wD0=[0,[17,0,[12,41,0]],r(d0)],ED0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Labeled\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Labeled@ \")],SD0=[0,[17,0,[12,41,0]],r(d0)],gD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Return\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Return@ \")],FD0=[0,[17,0,[12,41,0]],r(d0)],TD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Switch\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Switch@ \")],OD0=[0,[17,0,[12,41,0]],r(d0)],ID0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Throw\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Throw@ \")],AD0=[0,[17,0,[12,41,0]],r(d0)],ND0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Try\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Try@ \")],CD0=[0,[17,0,[12,41,0]],r(d0)],PD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.TypeAlias\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.TypeAlias@ \")],DD0=[0,[17,0,[12,41,0]],r(d0)],LD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.OpaqueType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.OpaqueType@ \")],RD0=[0,[17,0,[12,41,0]],r(d0)],jD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.VariableDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.VariableDeclaration@ \")],GD0=[0,[17,0,[12,41,0]],r(d0)],MD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.While\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.While@ \")],BD0=[0,[17,0,[12,41,0]],r(d0)],qD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.With\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.With@ \")],UD0=[0,[17,0,[12,41,0]],r(d0)],HD0=[0,[15,0],r(N0)],XD0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],YD0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],VD0=[0,[17,0,[12,41,0]],r(d0)],zD0=[0,[15,0],r(N0)],KD0=r(\"Flow_ast.Statement.ExportValue\"),WD0=r(\"Flow_ast.Statement.ExportType\"),JD0=[0,[15,0],r(N0)],$D0=r(Yr),ZD0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],QD0=r(\"Flow_ast.Statement.Empty.comments\"),rL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eL0=r(tr),nL0=r(Z0),tL0=r(nr),uL0=[0,[17,0,0],r(z)],iL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],fL0=[0,[15,0],r(N0)],xL0=r(Yr),oL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aL0=r(\"Flow_ast.Statement.Expression.expression\"),cL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sL0=[0,[17,0,0],r(z)],vL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lL0=r(Zi),bL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pL0=r(tr),mL0=[0,[3,0,0],r(Vt)],_L0=r(Z0),yL0=r(nr),hL0=[0,[17,0,0],r(z)],dL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kL0=r(Xr),wL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EL0=r(tr),SL0=r(Z0),gL0=r(nr),FL0=[0,[17,0,0],r(z)],TL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OL0=[0,[15,0],r(N0)],IL0=r(Yr),AL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],NL0=r(\"Flow_ast.Statement.ImportDeclaration.import_kind\"),CL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PL0=[0,[17,0,0],r(z)],DL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LL0=r(cc),RL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jL0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],GL0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ML0=[0,[17,0,[12,41,0]],r(d0)],BL0=[0,[17,0,0],r(z)],qL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],UL0=r(_i),HL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XL0=r(tr),YL0=r(Z0),VL0=r(nr),zL0=[0,[17,0,0],r(z)],KL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WL0=r(Cv),JL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$L0=r(tr),ZL0=r(Z0),QL0=r(nr),rR0=[0,[17,0,0],r(z)],eR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nR0=r(Xr),tR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uR0=r(tr),iR0=r(Z0),fR0=r(nr),xR0=[0,[17,0,0],r(z)],oR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aR0=[0,[15,0],r(N0)],cR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sR0=r(\"Flow_ast.Statement.ImportDeclaration.kind\"),vR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lR0=r(tr),bR0=r(Z0),pR0=r(nr),mR0=[0,[17,0,0],r(z)],_R0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yR0=r(B2),hR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dR0=r(tr),kR0=r(Z0),wR0=r(nr),ER0=[0,[17,0,0],r(z)],SR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gR0=r(\"remote\"),FR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TR0=[0,[17,0,0],r(z)],OR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],IR0=[0,[15,0],r(N0)],AR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers@ \")],CR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],PR0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],DR0=[0,[17,0,[12,41,0]],r(d0)],LR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier@ \")],RR0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jR0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],GR0=[0,[17,0,[12,41,0]],r(d0)],MR0=[0,[17,0,[12,41,0]],r(d0)],BR0=[0,[15,0],r(N0)],qR0=r(\"Flow_ast.Statement.ImportDeclaration.ImportType\"),UR0=r(\"Flow_ast.Statement.ImportDeclaration.ImportTypeof\"),HR0=r(\"Flow_ast.Statement.ImportDeclaration.ImportValue\"),XR0=[0,[15,0],r(N0)],YR0=r(Yr),VR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zR0=r(\"Flow_ast.Statement.DeclareExportDeclaration.default\"),KR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],WR0=r(tr),JR0=r(Z0),$R0=r(nr),ZR0=[0,[17,0,0],r(z)],QR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rj0=r(P2),ej0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nj0=r(tr),tj0=r(Z0),uj0=r(nr),ij0=[0,[17,0,0],r(z)],fj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xj0=r(Cv),oj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aj0=r(tr),cj0=r(Z0),sj0=r(nr),vj0=[0,[17,0,0],r(z)],lj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bj0=r(cc),pj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mj0=r(tr),_j0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],yj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],hj0=[0,[17,0,[12,41,0]],r(d0)],dj0=r(Z0),kj0=r(nr),wj0=[0,[17,0,0],r(z)],Ej0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sj0=r(Xr),gj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fj0=r(tr),Tj0=r(Z0),Oj0=r(nr),Ij0=[0,[17,0,0],r(z)],Aj0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Nj0=[0,[15,0],r(N0)],Cj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Variable\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Variable@ \")],Pj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Lj0=[0,[17,0,[12,41,0]],r(d0)],Rj0=[0,[17,0,[12,41,0]],r(d0)],jj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Function\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Function@ \")],Gj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Mj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Bj0=[0,[17,0,[12,41,0]],r(d0)],qj0=[0,[17,0,[12,41,0]],r(d0)],Uj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Class\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Class@ \")],Hj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yj0=[0,[17,0,[12,41,0]],r(d0)],Vj0=[0,[17,0,[12,41,0]],r(d0)],zj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.DefaultType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.DefaultType@ \")],Kj0=[0,[17,0,[12,41,0]],r(d0)],Wj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.NamedType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedType@ \")],Jj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$j0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Zj0=[0,[17,0,[12,41,0]],r(d0)],Qj0=[0,[17,0,[12,41,0]],r(d0)],rG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType@ \")],eG0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],nG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],tG0=[0,[17,0,[12,41,0]],r(d0)],uG0=[0,[17,0,[12,41,0]],r(d0)],iG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Interface\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Interface@ \")],fG0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],xG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],oG0=[0,[17,0,[12,41,0]],r(d0)],aG0=[0,[17,0,[12,41,0]],r(d0)],cG0=[0,[15,0],r(N0)],sG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportDefaultDeclaration.Declaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Declaration@ \")],vG0=[0,[17,0,[12,41,0]],r(d0)],lG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportDefaultDeclaration.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Expression@ \")],bG0=[0,[17,0,[12,41,0]],r(d0)],pG0=[0,[15,0],r(N0)],mG0=r(Yr),_G0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yG0=r(\"Flow_ast.Statement.ExportDefaultDeclaration.default\"),hG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dG0=[0,[17,0,0],r(z)],kG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wG0=r(P2),EG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],SG0=[0,[17,0,0],r(z)],gG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FG0=r(Xr),TG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OG0=r(tr),IG0=r(Z0),AG0=r(nr),NG0=[0,[17,0,0],r(z)],CG0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],PG0=[0,[15,0],r(N0)],DG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers@ \")],RG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jG0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GG0=[0,[17,0,[12,41,0]],r(d0)],MG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier@ \")],BG0=[0,[17,0,[12,41,0]],r(d0)],qG0=[0,[15,0],r(N0)],UG0=r(Yr),HG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],XG0=r(\"Flow_ast.Statement.ExportNamedDeclaration.declaration\"),YG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VG0=r(tr),zG0=r(Z0),KG0=r(nr),WG0=[0,[17,0,0],r(z)],JG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$G0=r(Cv),ZG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QG0=r(tr),rM0=r(Z0),eM0=r(nr),nM0=[0,[17,0,0],r(z)],tM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uM0=r(cc),iM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fM0=r(tr),xM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aM0=[0,[17,0,[12,41,0]],r(d0)],cM0=r(Z0),sM0=r(nr),vM0=[0,[17,0,0],r(z)],lM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bM0=r(\"export_kind\"),pM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mM0=[0,[17,0,0],r(z)],_M0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yM0=r(Xr),hM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dM0=r(tr),kM0=r(Z0),wM0=r(nr),EM0=[0,[17,0,0],r(z)],SM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],gM0=[0,[15,0],r(N0)],FM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],TM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],OM0=r(tr),IM0=r(Z0),AM0=r(nr),NM0=[0,[17,0,[12,41,0]],r(d0)],CM0=[0,[15,0],r(N0)],PM0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DM0=r(\"Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifier.local\"),LM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RM0=[0,[17,0,0],r(z)],jM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GM0=r(I4),MM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BM0=r(tr),qM0=r(Z0),UM0=r(nr),HM0=[0,[17,0,0],r(z)],XM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],YM0=[0,[15,0],r(N0)],VM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],zM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],KM0=[0,[17,0,[12,41,0]],r(d0)],WM0=[0,[15,0],r(N0)],JM0=r(Yr),$M0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ZM0=r(\"Flow_ast.Statement.DeclareModuleExports.annot\"),QM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rB0=[0,[17,0,0],r(z)],eB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nB0=r(Xr),tB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uB0=r(tr),iB0=r(Z0),fB0=r(nr),xB0=[0,[17,0,0],r(z)],oB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aB0=[0,[15,0],r(N0)],cB0=r(Yr),sB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vB0=r(\"Flow_ast.Statement.DeclareModule.id\"),lB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bB0=[0,[17,0,0],r(z)],pB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mB0=r(Wn),_B0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],hB0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],dB0=[0,[17,0,[12,41,0]],r(d0)],kB0=[0,[17,0,0],r(z)],wB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EB0=r($c),SB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gB0=[0,[17,0,0],r(z)],FB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],TB0=r(Xr),OB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IB0=r(tr),AB0=r(Z0),NB0=r(nr),CB0=[0,[17,0,0],r(z)],PB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],DB0=[0,[15,0],r(N0)],LB0=r(\"Flow_ast.Statement.DeclareModule.ES\"),RB0=r(\"Flow_ast.Statement.DeclareModule.CommonJS\"),jB0=[0,[15,0],r(N0)],GB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModule.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModule.Identifier@ \")],MB0=[0,[17,0,[12,41,0]],r(d0)],BB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModule.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModule.Literal@ \")],qB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],UB0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],HB0=[0,[17,0,[12,41,0]],r(d0)],XB0=[0,[17,0,[12,41,0]],r(d0)],YB0=[0,[15,0],r(N0)],VB0=r(Yr),zB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KB0=r(\"Flow_ast.Statement.DeclareFunction.id\"),WB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JB0=[0,[17,0,0],r(z)],$B0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZB0=r(Qc),QB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rq0=[0,[17,0,0],r(z)],eq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nq0=r(r7),tq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uq0=r(tr),iq0=r(Z0),fq0=r(nr),xq0=[0,[17,0,0],r(z)],oq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aq0=r(Xr),cq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sq0=r(tr),vq0=r(Z0),lq0=r(nr),bq0=[0,[17,0,0],r(z)],pq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],mq0=[0,[15,0],r(N0)],_q0=r(Yr),yq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hq0=r(\"Flow_ast.Statement.DeclareVariable.id\"),dq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kq0=[0,[17,0,0],r(z)],wq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eq0=r(Qc),Sq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gq0=[0,[17,0,0],r(z)],Fq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tq0=r(Xr),Oq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Iq0=r(tr),Aq0=r(Z0),Nq0=r(nr),Cq0=[0,[17,0,0],r(z)],Pq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Dq0=[0,[15,0],r(N0)],Lq0=r(Yr),Rq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jq0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Gq0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Mq0=[0,[17,0,[12,41,0]],r(d0)],Bq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qq0=r(\"Flow_ast.Statement.DeclareClass.id\"),Uq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hq0=[0,[17,0,0],r(z)],Xq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yq0=r(sv),Vq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zq0=r(tr),Kq0=r(Z0),Wq0=r(nr),Jq0=[0,[17,0,0],r(z)],$q0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zq0=r(Wn),Qq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nU0=[0,[17,0,[12,41,0]],r(d0)],tU0=[0,[17,0,0],r(z)],uU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iU0=r(P7),fU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xU0=r(tr),oU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],aU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],cU0=[0,[17,0,[12,41,0]],r(d0)],sU0=r(Z0),vU0=r(nr),lU0=[0,[17,0,0],r(z)],bU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pU0=r(Hy),mU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_U0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],yU0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],hU0=[0,[17,0,0],r(z)],dU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kU0=r(ws),wU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EU0=r(tr),SU0=r(Z0),gU0=r(nr),FU0=[0,[17,0,0],r(z)],TU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OU0=r(Xr),IU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AU0=r(tr),NU0=r(Z0),CU0=r(nr),PU0=[0,[17,0,0],r(z)],DU0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],LU0=[0,[15,0],r(N0)],RU0=r(Yr),jU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],MU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],BU0=[0,[17,0,[12,41,0]],r(d0)],qU0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],UU0=r(\"Flow_ast.Statement.Interface.id\"),HU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XU0=[0,[17,0,0],r(z)],YU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VU0=r(sv),zU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KU0=r(tr),WU0=r(Z0),JU0=r(nr),$U0=[0,[17,0,0],r(z)],ZU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QU0=r(P7),rH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],nH0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],tH0=[0,[17,0,0],r(z)],uH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iH0=r(Wn),fH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aH0=[0,[17,0,[12,41,0]],r(d0)],cH0=[0,[17,0,0],r(z)],sH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vH0=r(Xr),lH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bH0=r(tr),pH0=r(Z0),mH0=r(nr),_H0=[0,[17,0,0],r(z)],yH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],hH0=[0,[15,0],r(N0)],dH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.BooleanBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.BooleanBody@ \")],kH0=[0,[17,0,[12,41,0]],r(d0)],wH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.NumberBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.NumberBody@ \")],EH0=[0,[17,0,[12,41,0]],r(d0)],SH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.StringBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody@ \")],gH0=[0,[17,0,[12,41,0]],r(d0)],FH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.SymbolBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.SymbolBody@ \")],TH0=[0,[17,0,[12,41,0]],r(d0)],OH0=[0,[15,0],r(N0)],IH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NH0=[0,[17,0,[12,41,0]],r(d0)],CH0=[0,[15,0],r(N0)],PH0=r(Yr),DH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],LH0=r(\"Flow_ast.Statement.EnumDeclaration.id\"),RH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jH0=[0,[17,0,0],r(z)],GH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MH0=r(Wn),BH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qH0=[0,[17,0,0],r(z)],UH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],HH0=r(Xr),XH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YH0=r(tr),VH0=r(Z0),zH0=r(nr),KH0=[0,[17,0,0],r(z)],WH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],JH0=[0,[15,0],r(N0)],$H0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QH0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],nX0=r(\"Flow_ast.Statement.EnumDeclaration.SymbolBody.members\"),tX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],iX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],fX0=[0,[17,0,0],r(z)],xX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oX0=r(w4),aX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cX0=[0,[9,0,0],r(An)],sX0=[0,[17,0,0],r(z)],vX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lX0=r(Xr),bX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pX0=r(tr),mX0=r(Z0),_X0=r(nr),yX0=[0,[17,0,0],r(z)],hX0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dX0=[0,[15,0],r(N0)],kX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted@ \")],SX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],gX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],FX0=[0,[17,0,[12,41,0]],r(d0)],TX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.StringBody.Initialized\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Initialized@ \")],OX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],IX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],AX0=[0,[17,0,[12,41,0]],r(d0)],NX0=[0,[15,0],r(N0)],CX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],DX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],LX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],RX0=r(\"Flow_ast.Statement.EnumDeclaration.StringBody.members\"),jX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GX0=[0,[17,0,0],r(z)],MX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BX0=r(Fk),qX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UX0=[0,[9,0,0],r(An)],HX0=[0,[17,0,0],r(z)],XX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],YX0=r(w4),VX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zX0=[0,[9,0,0],r(An)],KX0=[0,[17,0,0],r(z)],WX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JX0=r(Xr),$X0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZX0=r(tr),QX0=r(Z0),rY0=r(nr),eY0=[0,[17,0,0],r(z)],nY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],tY0=[0,[15,0],r(N0)],uY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],xY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aY0=r(\"Flow_ast.Statement.EnumDeclaration.NumberBody.members\"),cY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],vY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],lY0=[0,[17,0,0],r(z)],bY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pY0=r(Fk),mY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_Y0=[0,[9,0,0],r(An)],yY0=[0,[17,0,0],r(z)],hY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dY0=r(w4),kY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wY0=[0,[9,0,0],r(An)],EY0=[0,[17,0,0],r(z)],SY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gY0=r(Xr),FY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TY0=r(tr),OY0=r(Z0),IY0=r(nr),AY0=[0,[17,0,0],r(z)],NY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],CY0=[0,[15,0],r(N0)],PY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],LY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],RY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],GY0=r(\"Flow_ast.Statement.EnumDeclaration.BooleanBody.members\"),MY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],qY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],UY0=[0,[17,0,0],r(z)],HY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XY0=r(Fk),YY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VY0=[0,[9,0,0],r(An)],zY0=[0,[17,0,0],r(z)],KY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WY0=r(w4),JY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$Y0=[0,[9,0,0],r(An)],ZY0=[0,[17,0,0],r(z)],QY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rV0=r(Xr),eV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nV0=r(tr),tV0=r(Z0),uV0=r(nr),iV0=[0,[17,0,0],r(z)],fV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],xV0=[0,[15,0],r(N0)],oV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aV0=r(\"Flow_ast.Statement.EnumDeclaration.InitializedMember.id\"),cV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sV0=[0,[17,0,0],r(z)],vV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lV0=r(ji),bV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_V0=[0,[17,0,[12,41,0]],r(d0)],yV0=[0,[17,0,0],r(z)],hV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dV0=[0,[15,0],r(N0)],kV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],EV0=[0,[17,0,[12,41,0]],r(d0)],SV0=[0,[15,0],r(N0)],gV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],FV0=r(\"Flow_ast.Statement.EnumDeclaration.DefaultedMember.id\"),TV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OV0=[0,[17,0,0],r(z)],IV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AV0=[0,[15,0],r(N0)],NV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],CV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],PV0=[0,[17,0,[12,41,0]],r(d0)],DV0=[0,[15,0],r(N0)],LV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForOf.LeftDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForOf.LeftDeclaration@ \")],RV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],GV0=[0,[17,0,[12,41,0]],r(d0)],MV0=[0,[17,0,[12,41,0]],r(d0)],BV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForOf.LeftPattern\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForOf.LeftPattern@ \")],qV0=[0,[17,0,[12,41,0]],r(d0)],UV0=[0,[15,0],r(N0)],HV0=r(Yr),XV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],YV0=r(\"Flow_ast.Statement.ForOf.left\"),VV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zV0=[0,[17,0,0],r(z)],KV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WV0=r(Cu),JV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$V0=[0,[17,0,0],r(z)],ZV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QV0=r(Wn),rz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ez0=[0,[17,0,0],r(z)],nz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tz0=r(dx),uz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iz0=[0,[9,0,0],r(An)],fz0=[0,[17,0,0],r(z)],xz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oz0=r(Xr),az0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cz0=r(tr),sz0=r(Z0),vz0=r(nr),lz0=[0,[17,0,0],r(z)],bz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pz0=[0,[15,0],r(N0)],mz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForIn.LeftDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForIn.LeftDeclaration@ \")],_z0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],yz0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],hz0=[0,[17,0,[12,41,0]],r(d0)],dz0=[0,[17,0,[12,41,0]],r(d0)],kz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForIn.LeftPattern\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForIn.LeftPattern@ \")],wz0=[0,[17,0,[12,41,0]],r(d0)],Ez0=[0,[15,0],r(N0)],Sz0=r(Yr),gz0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Fz0=r(\"Flow_ast.Statement.ForIn.left\"),Tz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Oz0=[0,[17,0,0],r(z)],Iz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Az0=r(Cu),Nz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cz0=[0,[17,0,0],r(z)],Pz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dz0=r(Wn),Lz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rz0=[0,[17,0,0],r(z)],jz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gz0=r(R8),Mz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bz0=[0,[9,0,0],r(An)],qz0=[0,[17,0,0],r(z)],Uz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hz0=r(Xr),Xz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yz0=r(tr),Vz0=r(Z0),zz0=r(nr),Kz0=[0,[17,0,0],r(z)],Wz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Jz0=[0,[15,0],r(N0)],$z0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.For.InitDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.For.InitDeclaration@ \")],Zz0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Qz0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rK0=[0,[17,0,[12,41,0]],r(d0)],eK0=[0,[17,0,[12,41,0]],r(d0)],nK0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.For.InitExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.For.InitExpression@ \")],tK0=[0,[17,0,[12,41,0]],r(d0)],uK0=[0,[15,0],r(N0)],iK0=r(Yr),fK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],xK0=r(\"Flow_ast.Statement.For.init\"),oK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aK0=r(tr),cK0=r(Z0),sK0=r(nr),vK0=[0,[17,0,0],r(z)],lK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bK0=r(Ss),pK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mK0=r(tr),_K0=r(Z0),yK0=r(nr),hK0=[0,[17,0,0],r(z)],dK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kK0=r(fU),wK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EK0=r(tr),SK0=r(Z0),gK0=r(nr),FK0=[0,[17,0,0],r(z)],TK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OK0=r(Wn),IK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AK0=[0,[17,0,0],r(z)],NK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CK0=r(Xr),PK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DK0=r(tr),LK0=r(Z0),RK0=r(nr),jK0=[0,[17,0,0],r(z)],GK0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],MK0=[0,[15,0],r(N0)],BK0=r(Yr),qK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],UK0=r(\"Flow_ast.Statement.DoWhile.body\"),HK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XK0=[0,[17,0,0],r(z)],YK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VK0=r(Ss),zK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KK0=[0,[17,0,0],r(z)],WK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JK0=r(Xr),$K0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZK0=r(tr),QK0=r(Z0),rW0=r(nr),eW0=[0,[17,0,0],r(z)],nW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],tW0=[0,[15,0],r(N0)],uW0=r(Yr),iW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],fW0=r(\"Flow_ast.Statement.While.test\"),xW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oW0=[0,[17,0,0],r(z)],aW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cW0=r(Wn),sW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vW0=[0,[17,0,0],r(z)],lW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bW0=r(Xr),pW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mW0=r(tr),_W0=r(Z0),yW0=r(nr),hW0=[0,[17,0,0],r(z)],dW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],kW0=[0,[15,0],r(N0)],wW0=r(\"Flow_ast.Statement.VariableDeclaration.Var\"),EW0=r(\"Flow_ast.Statement.VariableDeclaration.Let\"),SW0=r(\"Flow_ast.Statement.VariableDeclaration.Const\"),gW0=[0,[15,0],r(N0)],FW0=r(Yr),TW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IW0=r(\"Flow_ast.Statement.VariableDeclaration.declarations\"),AW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],CW0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],PW0=[0,[17,0,0],r(z)],DW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LW0=r($c),RW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jW0=[0,[17,0,0],r(z)],GW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MW0=r(Xr),BW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qW0=r(tr),UW0=r(Z0),HW0=r(nr),XW0=[0,[17,0,0],r(z)],YW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],VW0=[0,[15,0],r(N0)],zW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KW0=r(\"Flow_ast.Statement.VariableDeclaration.Declarator.id\"),WW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JW0=[0,[17,0,0],r(z)],$W0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZW0=r(ji),QW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rJ0=r(tr),eJ0=r(Z0),nJ0=r(nr),tJ0=[0,[17,0,0],r(z)],uJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],iJ0=[0,[15,0],r(N0)],fJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],xJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],oJ0=[0,[17,0,[12,41,0]],r(d0)],aJ0=[0,[15,0],r(N0)],cJ0=r(Yr),sJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vJ0=r(\"Flow_ast.Statement.Try.block\"),lJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],pJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],mJ0=[0,[17,0,[12,41,0]],r(d0)],_J0=[0,[17,0,0],r(z)],yJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hJ0=r(MU),dJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kJ0=r(tr),wJ0=r(Z0),EJ0=r(nr),SJ0=[0,[17,0,0],r(z)],gJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FJ0=r(CH),TJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OJ0=r(tr),IJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NJ0=[0,[17,0,[12,41,0]],r(d0)],CJ0=r(Z0),PJ0=r(nr),DJ0=[0,[17,0,0],r(z)],LJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RJ0=r(Xr),jJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GJ0=r(tr),MJ0=r(Z0),BJ0=r(nr),qJ0=[0,[17,0,0],r(z)],UJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],HJ0=[0,[15,0],r(N0)],XJ0=r(Yr),YJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VJ0=r(\"Flow_ast.Statement.Try.CatchClause.param\"),zJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KJ0=r(tr),WJ0=r(Z0),JJ0=r(nr),$J0=[0,[17,0,0],r(z)],ZJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QJ0=r(Wn),r$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e$0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],n$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],t$0=[0,[17,0,[12,41,0]],r(d0)],u$0=[0,[17,0,0],r(z)],i$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],f$0=r(Xr),x$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o$0=r(tr),a$0=r(Z0),c$0=r(nr),s$0=[0,[17,0,0],r(z)],v$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],l$0=[0,[15,0],r(N0)],b$0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],p$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],m$0=[0,[17,0,[12,41,0]],r(d0)],_$0=[0,[15,0],r(N0)],y$0=r(Yr),h$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],d$0=r(\"Flow_ast.Statement.Throw.argument\"),k$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w$0=[0,[17,0,0],r(z)],E$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],S$0=r(Xr),g$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F$0=r(tr),T$0=r(Z0),O$0=r(nr),I$0=[0,[17,0,0],r(z)],A$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],N$0=[0,[15,0],r(N0)],C$0=r(Yr),P$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D$0=r(\"Flow_ast.Statement.Return.argument\"),L$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R$0=r(tr),j$0=r(Z0),G$0=r(nr),M$0=[0,[17,0,0],r(z)],B$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],q$0=r(Xr),U$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H$0=r(tr),X$0=r(Z0),Y$0=r(nr),V$0=[0,[17,0,0],r(z)],z$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K$0=r(\"return_out\"),W$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],J$0=[0,[17,0,0],r(z)],$$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z$0=[0,[15,0],r(N0)],Q$0=r(Yr),rZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],nZ0=r(\"Flow_ast.Statement.Switch.discriminant\"),tZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uZ0=[0,[17,0,0],r(z)],iZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fZ0=r(QX),xZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],aZ0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],cZ0=[0,[17,0,0],r(z)],sZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vZ0=r(Xr),lZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bZ0=r(tr),pZ0=r(Z0),mZ0=r(nr),_Z0=[0,[17,0,0],r(z)],yZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hZ0=r(\"exhaustive_out\"),dZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kZ0=[0,[17,0,0],r(z)],wZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],EZ0=[0,[15,0],r(N0)],SZ0=r(Yr),gZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],TZ0=r(\"Flow_ast.Statement.Switch.Case.test\"),OZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IZ0=r(tr),AZ0=r(Z0),NZ0=r(nr),CZ0=[0,[17,0,0],r(z)],PZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DZ0=r(kv),LZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jZ0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GZ0=[0,[17,0,0],r(z)],MZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BZ0=r(Xr),qZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UZ0=r(tr),HZ0=r(Z0),XZ0=r(nr),YZ0=[0,[17,0,0],r(z)],VZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zZ0=[0,[15,0],r(N0)],KZ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],WZ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],JZ0=[0,[17,0,[12,41,0]],r(d0)],$Z0=[0,[15,0],r(N0)],ZZ0=r(Yr),QZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rQ0=r(\"Flow_ast.Statement.OpaqueType.id\"),eQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nQ0=[0,[17,0,0],r(z)],tQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uQ0=r(sv),iQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fQ0=r(tr),xQ0=r(Z0),oQ0=r(nr),aQ0=[0,[17,0,0],r(z)],cQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sQ0=r(mX),vQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lQ0=r(tr),bQ0=r(Z0),pQ0=r(nr),mQ0=[0,[17,0,0],r(z)],_Q0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yQ0=r(SX),hQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dQ0=r(tr),kQ0=r(Z0),wQ0=r(nr),EQ0=[0,[17,0,0],r(z)],SQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gQ0=r(Xr),FQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TQ0=r(tr),OQ0=r(Z0),IQ0=r(nr),AQ0=[0,[17,0,0],r(z)],NQ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],CQ0=[0,[15,0],r(N0)],PQ0=r(Yr),DQ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],LQ0=r(\"Flow_ast.Statement.TypeAlias.id\"),RQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jQ0=[0,[17,0,0],r(z)],GQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MQ0=r(sv),BQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qQ0=r(tr),UQ0=r(Z0),HQ0=r(nr),XQ0=[0,[17,0,0],r(z)],YQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VQ0=r(Cu),zQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KQ0=[0,[17,0,0],r(z)],WQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JQ0=r(Xr),$Q0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZQ0=r(tr),QQ0=r(Z0),r0r=r(nr),e0r=[0,[17,0,0],r(z)],n0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],t0r=[0,[15,0],r(N0)],u0r=r(Yr),i0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],f0r=r(\"Flow_ast.Statement.With._object\"),x0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o0r=[0,[17,0,0],r(z)],a0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],c0r=r(Wn),s0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],v0r=[0,[17,0,0],r(z)],l0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],b0r=r(Xr),p0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m0r=r(tr),_0r=r(Z0),y0r=r(nr),h0r=[0,[17,0,0],r(z)],d0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],k0r=[0,[15,0],r(N0)],w0r=r(Yr),E0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],S0r=r(\"Flow_ast.Statement.Debugger.comments\"),g0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F0r=r(tr),T0r=r(Z0),O0r=r(nr),I0r=[0,[17,0,0],r(z)],A0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],N0r=[0,[15,0],r(N0)],C0r=r(Yr),P0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D0r=r(\"Flow_ast.Statement.Continue.label\"),L0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R0r=r(tr),j0r=r(Z0),G0r=r(nr),M0r=[0,[17,0,0],r(z)],B0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],q0r=r(Xr),U0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H0r=r(tr),X0r=r(Z0),Y0r=r(nr),V0r=[0,[17,0,0],r(z)],z0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],K0r=[0,[15,0],r(N0)],W0r=r(Yr),J0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$0r=r(\"Flow_ast.Statement.Break.label\"),Z0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q0r=r(tr),rrr=r(Z0),err=r(nr),nrr=[0,[17,0,0],r(z)],trr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],urr=r(Xr),irr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],frr=r(tr),xrr=r(Z0),orr=r(nr),arr=[0,[17,0,0],r(z)],crr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],srr=[0,[15,0],r(N0)],vrr=r(Yr),lrr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],brr=r(\"Flow_ast.Statement.Labeled.label\"),prr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mrr=[0,[17,0,0],r(z)],_rr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yrr=r(Wn),hrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],drr=[0,[17,0,0],r(z)],krr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wrr=r(Xr),Err=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Srr=r(tr),grr=r(Z0),Frr=r(nr),Trr=[0,[17,0,0],r(z)],Orr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Irr=[0,[15,0],r(N0)],Arr=r(Yr),Nrr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Crr=r(\"Flow_ast.Statement.If.test\"),Prr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Drr=[0,[17,0,0],r(z)],Lrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rrr=r(kv),jrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Grr=[0,[17,0,0],r(z)],Mrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Brr=r(m3),qrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Urr=r(tr),Hrr=r(Z0),Xrr=r(nr),Yrr=[0,[17,0,0],r(z)],Vrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zrr=r(Xr),Krr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wrr=r(tr),Jrr=r(Z0),$rr=r(nr),Zrr=[0,[17,0,0],r(z)],Qrr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],rer=[0,[15,0],r(N0)],eer=r(Yr),ner=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ter=r(\"Flow_ast.Statement.If.Alternate.body\"),uer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ier=[0,[17,0,0],r(z)],fer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xer=r(Xr),oer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aer=r(tr),cer=r(Z0),ser=r(nr),ver=[0,[17,0,0],r(z)],ler=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ber=[0,[15,0],r(N0)],per=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mer=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_er=[0,[17,0,[12,41,0]],r(d0)],yer=[0,[15,0],r(N0)],her=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],der=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ker=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],wer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ser=r(\"Flow_ast.Statement.Block.body\"),ger=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Ter=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Oer=[0,[17,0,0],r(z)],Ier=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Aer=r(Xr),Ner=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cer=r(tr),Per=r(Z0),Der=r(nr),Ler=[0,[17,0,0],r(z)],Rer=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jer=[0,[15,0],r(N0)],Ger=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Predicate.Declared\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Predicate.Declared@ \")],Mer=[0,[17,0,[12,41,0]],r(d0)],Ber=r(\"Flow_ast.Type.Predicate.Inferred\"),qer=[0,[15,0],r(N0)],Uer=r(Yr),Her=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xer=r(\"Flow_ast.Type.Predicate.kind\"),Yer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ver=[0,[17,0,0],r(z)],zer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ker=r(Xr),Wer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jer=r(tr),$er=r(Z0),Zer=r(nr),Qer=[0,[17,0,0],r(z)],rnr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],enr=[0,[15,0],r(N0)],nnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],tnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],unr=[0,[17,0,[12,41,0]],r(d0)],inr=[0,[15,0],r(N0)],fnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],onr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],anr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],snr=r(\"Flow_ast.Type.TypeArgs.arguments\"),vnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],bnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],pnr=[0,[17,0,0],r(z)],mnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_nr=r(Xr),ynr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hnr=r(tr),dnr=r(Z0),knr=r(nr),wnr=[0,[17,0,0],r(z)],Enr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Snr=[0,[15,0],r(N0)],gnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Fnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Tnr=[0,[17,0,[12,41,0]],r(d0)],Onr=[0,[15,0],r(N0)],Inr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Anr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Nnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Cnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Dnr=r(\"Flow_ast.Type.TypeParams.params\"),Lnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Gnr=[0,[17,0,0],r(z)],Mnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bnr=r(Xr),qnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Unr=r(tr),Hnr=r(Z0),Xnr=r(nr),Ynr=[0,[17,0,0],r(z)],Vnr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],znr=[0,[15,0],r(N0)],Knr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Wnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Jnr=[0,[17,0,[12,41,0]],r(d0)],$nr=[0,[15,0],r(N0)],Znr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Qnr=r(\"Flow_ast.Type.TypeParam.name\"),rtr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],etr=[0,[17,0,0],r(z)],ntr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ttr=r(DU),utr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],itr=[0,[17,0,0],r(z)],ftr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xtr=r(cu),otr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],atr=r(tr),ctr=r(Z0),str=r(nr),vtr=[0,[17,0,0],r(z)],ltr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],btr=r(_i),ptr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mtr=r(tr),_tr=r(Z0),ytr=r(nr),htr=[0,[17,0,0],r(z)],dtr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ktr=[0,[15,0],r(N0)],wtr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Etr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Str=[0,[17,0,[12,41,0]],r(d0)],gtr=[0,[15,0],r(N0)],Ftr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Missing\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Missing@ \")],Ttr=[0,[17,0,[12,41,0]],r(d0)],Otr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Available\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Available@ \")],Itr=[0,[17,0,[12,41,0]],r(d0)],Atr=[0,[15,0],r(N0)],Ntr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ctr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Ptr=[0,[17,0,[12,41,0]],r(d0)],Dtr=[0,[15,0],r(N0)],Ltr=r(Yr),Rtr=r(Yr),jtr=r(Yr),Gtr=r(Yr),Mtr=r(Yr),Btr=r(Yr),qtr=r(Yr),Utr=r(Yr),Htr=r(Yr),Xtr=r(Yr),Ytr=r(Yr),Vtr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Any\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Any@ \")],ztr=r(tr),Ktr=r(Z0),Wtr=r(nr),Jtr=[0,[17,0,[12,41,0]],r(d0)],$tr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Mixed\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Mixed@ \")],Ztr=r(tr),Qtr=r(Z0),rur=r(nr),eur=[0,[17,0,[12,41,0]],r(d0)],nur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Empty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Empty@ \")],tur=r(tr),uur=r(Z0),iur=r(nr),fur=[0,[17,0,[12,41,0]],r(d0)],xur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Void\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Void@ \")],our=r(tr),aur=r(Z0),cur=r(nr),sur=[0,[17,0,[12,41,0]],r(d0)],vur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Null\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Null@ \")],lur=r(tr),bur=r(Z0),pur=r(nr),mur=[0,[17,0,[12,41,0]],r(d0)],_ur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Number\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Number@ \")],yur=r(tr),hur=r(Z0),dur=r(nr),kur=[0,[17,0,[12,41,0]],r(d0)],wur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.BigInt\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.BigInt@ \")],Eur=r(tr),Sur=r(Z0),gur=r(nr),Fur=[0,[17,0,[12,41,0]],r(d0)],Tur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.String\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.String@ \")],Our=r(tr),Iur=r(Z0),Aur=r(nr),Nur=[0,[17,0,[12,41,0]],r(d0)],Cur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Boolean\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Boolean@ \")],Pur=r(tr),Dur=r(Z0),Lur=r(nr),Rur=[0,[17,0,[12,41,0]],r(d0)],jur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Symbol\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Symbol@ \")],Gur=r(tr),Mur=r(Z0),Bur=r(nr),qur=[0,[17,0,[12,41,0]],r(d0)],Uur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Exists\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Exists@ \")],Hur=r(tr),Xur=r(Z0),Yur=r(nr),Vur=[0,[17,0,[12,41,0]],r(d0)],zur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Nullable\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Nullable@ \")],Kur=[0,[17,0,[12,41,0]],r(d0)],Wur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Function\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Function@ \")],Jur=[0,[17,0,[12,41,0]],r(d0)],$ur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object@ \")],Zur=[0,[17,0,[12,41,0]],r(d0)],Qur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Interface\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Interface@ \")],r7r=[0,[17,0,[12,41,0]],r(d0)],e7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Array\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Array@ \")],n7r=[0,[17,0,[12,41,0]],r(d0)],t7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Generic\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Generic@ \")],u7r=[0,[17,0,[12,41,0]],r(d0)],i7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.IndexedAccess\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.IndexedAccess@ \")],f7r=[0,[17,0,[12,41,0]],r(d0)],x7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.OptionalIndexedAccess\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.OptionalIndexedAccess@ \")],o7r=[0,[17,0,[12,41,0]],r(d0)],a7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Union\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Union@ \")],c7r=[0,[17,0,[12,41,0]],r(d0)],s7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Intersection\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Intersection@ \")],v7r=[0,[17,0,[12,41,0]],r(d0)],l7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Typeof\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Typeof@ \")],b7r=[0,[17,0,[12,41,0]],r(d0)],p7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Tuple\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Tuple@ \")],m7r=[0,[17,0,[12,41,0]],r(d0)],_7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.StringLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.StringLiteral@ \")],y7r=[0,[17,0,[12,41,0]],r(d0)],h7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.NumberLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.NumberLiteral@ \")],d7r=[0,[17,0,[12,41,0]],r(d0)],k7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.BigIntLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.BigIntLiteral@ \")],w7r=[0,[17,0,[12,41,0]],r(d0)],E7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.BooleanLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.BooleanLiteral@ \")],S7r=[0,[17,0,[12,41,0]],r(d0)],g7r=[0,[15,0],r(N0)],F7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],T7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O7r=[0,[17,0,[12,41,0]],r(d0)],I7r=[0,[15,0],r(N0)],A7r=r(Yr),N7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],C7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P7r=r(\"Flow_ast.Type.Intersection.types\"),D7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],G7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],M7r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],B7r=[0,[17,0,[12,41,0]],r(d0)],q7r=[0,[17,0,0],r(z)],U7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],H7r=r(Xr),X7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Y7r=r(tr),V7r=r(Z0),z7r=r(nr),K7r=[0,[17,0,0],r(z)],W7r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],J7r=[0,[15,0],r(N0)],$7r=r(Yr),Z7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rir=r(\"Flow_ast.Type.Union.types\"),eir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nir=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],tir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],uir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],iir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fir=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],xir=[0,[17,0,[12,41,0]],r(d0)],oir=[0,[17,0,0],r(z)],air=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cir=r(Xr),sir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vir=r(tr),lir=r(Z0),bir=r(nr),pir=[0,[17,0,0],r(z)],mir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_ir=[0,[15,0],r(N0)],yir=r(Yr),hir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dir=r(\"Flow_ast.Type.Array.argument\"),kir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wir=[0,[17,0,0],r(z)],Eir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sir=r(Xr),gir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fir=r(tr),Tir=r(Z0),Oir=r(nr),Iir=[0,[17,0,0],r(z)],Air=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Nir=[0,[15,0],r(N0)],Cir=r(Yr),Pir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lir=r(\"Flow_ast.Type.Tuple.types\"),Rir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Gir=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Mir=[0,[17,0,0],r(z)],Bir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qir=r(Xr),Uir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hir=r(tr),Xir=r(Z0),Yir=r(nr),Vir=[0,[17,0,0],r(z)],zir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Kir=[0,[15,0],r(N0)],Wir=r(Yr),Jir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$ir=r(\"Flow_ast.Type.Typeof.argument\"),Zir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qir=[0,[17,0,0],r(z)],rfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],efr=r(Xr),nfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tfr=r(tr),ufr=r(Z0),ifr=r(nr),ffr=[0,[17,0,0],r(z)],xfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ofr=[0,[15,0],r(N0)],afr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],cfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],sfr=[0,[17,0,[12,41,0]],r(d0)],vfr=[0,[15,0],r(N0)],lfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],bfr=r(\"Flow_ast.Type.Typeof.Target.qualification\"),pfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mfr=[0,[17,0,0],r(z)],_fr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yfr=r(mt),hfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dfr=[0,[17,0,0],r(z)],kfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wfr=[0,[15,0],r(N0)],Efr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Typeof.Target.Unqualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Typeof.Target.Unqualified@ \")],Sfr=[0,[17,0,[12,41,0]],r(d0)],gfr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Typeof.Target.Qualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Typeof.Target.Qualified@ \")],Ffr=[0,[17,0,[12,41,0]],r(d0)],Tfr=[0,[15,0],r(N0)],Ofr=r(Yr),Ifr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Afr=r(\"Flow_ast.Type.Nullable.argument\"),Nfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cfr=[0,[17,0,0],r(z)],Pfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dfr=r(Xr),Lfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rfr=r(tr),jfr=r(Z0),Gfr=r(nr),Mfr=[0,[17,0,0],r(z)],Bfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qfr=[0,[15,0],r(N0)],Ufr=r(Yr),Hfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Yfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Vfr=[0,[17,0,[12,41,0]],r(d0)],zfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Kfr=r(\"Flow_ast.Type.Interface.body\"),Wfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$fr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Zfr=[0,[17,0,[12,41,0]],r(d0)],Qfr=[0,[17,0,0],r(z)],rxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],exr=r(P7),nxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],txr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],uxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],ixr=[0,[17,0,0],r(z)],fxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xxr=r(Xr),oxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],axr=r(tr),cxr=r(Z0),sxr=r(nr),vxr=[0,[17,0,0],r(z)],lxr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],bxr=[0,[15,0],r(N0)],pxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property@ \")],mxr=[0,[17,0,[12,41,0]],r(d0)],_xr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.SpreadProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.SpreadProperty@ \")],yxr=[0,[17,0,[12,41,0]],r(d0)],hxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Indexer\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Indexer@ \")],dxr=[0,[17,0,[12,41,0]],r(d0)],kxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.CallProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.CallProperty@ \")],wxr=[0,[17,0,[12,41,0]],r(d0)],Exr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.InternalSlot\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.InternalSlot@ \")],Sxr=[0,[17,0,[12,41,0]],r(d0)],gxr=[0,[15,0],r(N0)],Fxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Txr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Oxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Ixr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Axr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Nxr=r(\"Flow_ast.Type.Object.exact\"),Cxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pxr=[0,[9,0,0],r(An)],Dxr=[0,[17,0,0],r(z)],Lxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rxr=r(GY),jxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gxr=[0,[9,0,0],r(An)],Mxr=[0,[17,0,0],r(z)],Bxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qxr=r(H4),Uxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hxr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Xxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Yxr=[0,[17,0,0],r(z)],Vxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zxr=r(Xr),Kxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wxr=r(tr),Jxr=r(Z0),$xr=r(nr),Zxr=[0,[17,0,0],r(z)],Qxr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ror=[0,[15,0],r(N0)],eor=r(Yr),nor=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],tor=r(\"Flow_ast.Type.Object.InternalSlot.id\"),uor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ior=[0,[17,0,0],r(z)],xor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oor=r(Bn),aor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cor=[0,[17,0,0],r(z)],sor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vor=r(qu),lor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bor=[0,[9,0,0],r(An)],por=[0,[17,0,0],r(z)],mor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_or=r(nu),yor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hor=[0,[9,0,0],r(An)],dor=[0,[17,0,0],r(z)],kor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wor=r(nU),Eor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sor=[0,[9,0,0],r(An)],gor=[0,[17,0,0],r(z)],For=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tor=r(Xr),Oor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ior=r(tr),Aor=r(Z0),Nor=r(nr),Cor=[0,[17,0,0],r(z)],Por=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Dor=[0,[15,0],r(N0)],Lor=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ror=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jor=[0,[17,0,[12,41,0]],r(d0)],Gor=[0,[15,0],r(N0)],Mor=r(Yr),Bor=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qor=r(\"Flow_ast.Type.Object.CallProperty.value\"),Uor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hor=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xor=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yor=[0,[17,0,[12,41,0]],r(d0)],Vor=[0,[17,0,0],r(z)],zor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Kor=r(nu),Wor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jor=[0,[9,0,0],r(An)],$or=[0,[17,0,0],r(z)],Zor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qor=r(Xr),rar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ear=r(tr),nar=r(Z0),tar=r(nr),uar=[0,[17,0,0],r(z)],iar=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],far=[0,[15,0],r(N0)],xar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oar=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aar=[0,[17,0,[12,41,0]],r(d0)],car=[0,[15,0],r(N0)],sar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],lar=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],bar=[0,[17,0,[12,41,0]],r(d0)],par=[0,[15,0],r(N0)],mar=r(Yr),_ar=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yar=r(\"Flow_ast.Type.Object.Indexer.id\"),har=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dar=r(tr),kar=r(Z0),war=r(nr),Ear=[0,[17,0,0],r(z)],Sar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gar=r(ii),Far=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tar=[0,[17,0,0],r(z)],Oar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Iar=r(Bn),Aar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nar=[0,[17,0,0],r(z)],Car=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Par=r(nu),Dar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Lar=[0,[9,0,0],r(An)],Rar=[0,[17,0,0],r(z)],jar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gar=r(cu),Mar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bar=r(tr),qar=r(Z0),Uar=r(nr),Har=[0,[17,0,0],r(z)],Xar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yar=r(Xr),Var=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zar=r(tr),Kar=r(Z0),War=r(nr),Jar=[0,[17,0,0],r(z)],$ar=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Zar=[0,[15,0],r(N0)],Qar=r(Yr),rcr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ecr=r(\"Flow_ast.Type.Object.SpreadProperty.argument\"),ncr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tcr=[0,[17,0,0],r(z)],ucr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],icr=r(Xr),fcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xcr=r(tr),ocr=r(Z0),acr=r(nr),ccr=[0,[17,0,0],r(z)],scr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vcr=[0,[15,0],r(N0)],lcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],bcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],pcr=[0,[17,0,[12,41,0]],r(d0)],mcr=[0,[15,0],r(N0)],_cr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property.Init\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property.Init@ \")],ycr=[0,[17,0,[12,41,0]],r(d0)],hcr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property.Get\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property.Get@ \")],dcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],kcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],wcr=[0,[17,0,[12,41,0]],r(d0)],Ecr=[0,[17,0,[12,41,0]],r(d0)],Scr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property.Set\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property.Set@ \")],gcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Fcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Tcr=[0,[17,0,[12,41,0]],r(d0)],Ocr=[0,[17,0,[12,41,0]],r(d0)],Icr=[0,[15,0],r(N0)],Acr=r(Yr),Ncr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ccr=r(\"Flow_ast.Type.Object.Property.key\"),Pcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dcr=[0,[17,0,0],r(z)],Lcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rcr=r(Bn),jcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gcr=[0,[17,0,0],r(z)],Mcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bcr=r(qu),qcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ucr=[0,[9,0,0],r(An)],Hcr=[0,[17,0,0],r(z)],Xcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ycr=r(nu),Vcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zcr=[0,[9,0,0],r(An)],Kcr=[0,[17,0,0],r(z)],Wcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jcr=r(X3),$cr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zcr=[0,[9,0,0],r(An)],Qcr=[0,[17,0,0],r(z)],rsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],esr=r(nU),nsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tsr=[0,[9,0,0],r(An)],usr=[0,[17,0,0],r(z)],isr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fsr=r(cu),xsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],osr=r(tr),asr=r(Z0),csr=r(nr),ssr=[0,[17,0,0],r(z)],vsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lsr=r(Xr),bsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],psr=r(tr),msr=r(Z0),_sr=r(nr),ysr=[0,[17,0,0],r(z)],hsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dsr=[0,[15,0],r(N0)],ksr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wsr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Esr=[0,[17,0,[12,41,0]],r(d0)],Ssr=[0,[15,0],r(N0)],gsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Fsr=r(\"Flow_ast.Type.OptionalIndexedAccess.indexed_access\"),Tsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Osr=[0,[17,0,0],r(z)],Isr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Asr=r(qu),Nsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Csr=[0,[9,0,0],r(An)],Psr=[0,[17,0,0],r(z)],Dsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Lsr=[0,[15,0],r(N0)],Rsr=r(Yr),jsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Gsr=r(\"Flow_ast.Type.IndexedAccess._object\"),Msr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bsr=[0,[17,0,0],r(z)],qsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Usr=r(\"index\"),Hsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Xsr=[0,[17,0,0],r(z)],Ysr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vsr=r(Xr),zsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ksr=r(tr),Wsr=r(Z0),Jsr=r(nr),$sr=[0,[17,0,0],r(z)],Zsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Qsr=[0,[15,0],r(N0)],r1r=r(Yr),e1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],n1r=r(\"Flow_ast.Type.Generic.id\"),t1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],u1r=[0,[17,0,0],r(z)],i1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],f1r=r(Z2),x1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o1r=r(tr),a1r=r(Z0),c1r=r(nr),s1r=[0,[17,0,0],r(z)],v1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],l1r=r(Xr),b1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],p1r=r(tr),m1r=r(Z0),_1r=r(nr),y1r=[0,[17,0,0],r(z)],h1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],d1r=[0,[15,0],r(N0)],k1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w1r=r(\"Flow_ast.Type.Generic.Identifier.qualification\"),E1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S1r=[0,[17,0,0],r(z)],g1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F1r=r(mt),T1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O1r=[0,[17,0,0],r(z)],I1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],A1r=[0,[15,0],r(N0)],N1r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],C1r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],P1r=[0,[17,0,[12,41,0]],r(d0)],D1r=[0,[15,0],r(N0)],L1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Generic.Identifier.Unqualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Generic.Identifier.Unqualified@ \")],R1r=[0,[17,0,[12,41,0]],r(d0)],j1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Generic.Identifier.Qualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Generic.Identifier.Qualified@ \")],G1r=[0,[17,0,[12,41,0]],r(d0)],M1r=[0,[15,0],r(N0)],B1r=r(Yr),q1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],U1r=r(\"Flow_ast.Type.Function.tparams\"),H1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X1r=r(tr),Y1r=r(Z0),V1r=r(nr),z1r=[0,[17,0,0],r(z)],K1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],W1r=r(Dt),J1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$1r=[0,[17,0,0],r(z)],Z1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q1r=r(Ju),rvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],evr=[0,[17,0,0],r(z)],nvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tvr=r(Xr),uvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ivr=r(tr),fvr=r(Z0),xvr=r(nr),ovr=[0,[17,0,0],r(z)],avr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cvr=[0,[15,0],r(N0)],svr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],lvr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],bvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],mvr=r(\"Flow_ast.Type.Function.Params.this_\"),_vr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yvr=r(tr),hvr=r(Z0),dvr=r(nr),kvr=[0,[17,0,0],r(z)],wvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Evr=r(Dt),Svr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Fvr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Tvr=[0,[17,0,0],r(z)],Ovr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ivr=r(xd),Avr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nvr=r(tr),Cvr=r(Z0),Pvr=r(nr),Dvr=[0,[17,0,0],r(z)],Lvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rvr=r(Xr),jvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gvr=r(tr),Mvr=r(Z0),Bvr=r(nr),qvr=[0,[17,0,0],r(z)],Uvr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Hvr=[0,[15,0],r(N0)],Xvr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Yvr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Vvr=[0,[17,0,[12,41,0]],r(d0)],zvr=[0,[15,0],r(N0)],Kvr=r(Yr),Wvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Jvr=r(\"Flow_ast.Type.Function.ThisParam.annot\"),$vr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zvr=[0,[17,0,0],r(z)],Qvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r2r=r(Xr),e2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n2r=r(tr),t2r=r(Z0),u2r=r(nr),i2r=[0,[17,0,0],r(z)],f2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],x2r=[0,[15,0],r(N0)],o2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],a2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],c2r=[0,[17,0,[12,41,0]],r(d0)],s2r=[0,[15,0],r(N0)],v2r=r(Yr),l2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],b2r=r(\"Flow_ast.Type.Function.RestParam.argument\"),p2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m2r=[0,[17,0,0],r(z)],_2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],y2r=r(Xr),h2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d2r=r(tr),k2r=r(Z0),w2r=r(nr),E2r=[0,[17,0,0],r(z)],S2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],g2r=[0,[15,0],r(N0)],F2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],T2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O2r=[0,[17,0,[12,41,0]],r(d0)],I2r=[0,[15,0],r(N0)],A2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],N2r=r(\"Flow_ast.Type.Function.Param.name\"),C2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P2r=r(tr),D2r=r(Z0),L2r=r(nr),R2r=[0,[17,0,0],r(z)],j2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G2r=r(Qc),M2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B2r=[0,[17,0,0],r(z)],q2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U2r=r(qu),H2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X2r=[0,[9,0,0],r(An)],Y2r=[0,[17,0,0],r(z)],V2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],z2r=[0,[15,0],r(N0)],K2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],W2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],J2r=[0,[17,0,[12,41,0]],r(d0)],$2r=[0,[15,0],r(N0)],Z2r=r(Yr),Q2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rlr=r(\"Flow_ast.ComputedKey.expression\"),elr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nlr=[0,[17,0,0],r(z)],tlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ulr=r(Xr),ilr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],flr=r(tr),xlr=r(Z0),olr=r(nr),alr=[0,[17,0,0],r(z)],clr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],slr=[0,[15,0],r(N0)],vlr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],llr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],blr=[0,[17,0,[12,41,0]],r(d0)],plr=[0,[15,0],r(N0)],mlr=r(Yr),_lr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ylr=r(\"Flow_ast.Variance.kind\"),hlr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dlr=[0,[17,0,0],r(z)],klr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wlr=r(Xr),Elr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Slr=r(tr),glr=r(Z0),Flr=r(nr),Tlr=[0,[17,0,0],r(z)],Olr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ilr=[0,[15,0],r(N0)],Alr=r(\"Flow_ast.Variance.Minus\"),Nlr=r(\"Flow_ast.Variance.Plus\"),Clr=[0,[15,0],r(N0)],Plr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dlr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Llr=[0,[17,0,[12,41,0]],r(d0)],Rlr=[0,[15,0],r(N0)],jlr=r(Yr),Glr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Mlr=r(\"Flow_ast.BooleanLiteral.value\"),Blr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qlr=[0,[9,0,0],r(An)],Ulr=[0,[17,0,0],r(z)],Hlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xlr=r(Xr),Ylr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vlr=r(tr),zlr=r(Z0),Klr=r(nr),Wlr=[0,[17,0,0],r(z)],Jlr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$lr=[0,[15,0],r(N0)],Zlr=r(Yr),Qlr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rbr=r(\"Flow_ast.BigIntLiteral.approx_value\"),ebr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nbr=[0,[8,[0,0,5],0,0,0],r(r8)],tbr=[0,[17,0,0],r(z)],ubr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ibr=r(x1),fbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xbr=[0,[3,0,0],r(Vt)],obr=[0,[17,0,0],r(z)],abr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cbr=r(Xr),sbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vbr=r(tr),lbr=r(Z0),bbr=r(nr),pbr=[0,[17,0,0],r(z)],mbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_br=[0,[15,0],r(N0)],ybr=r(Yr),hbr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dbr=r(\"Flow_ast.NumberLiteral.value\"),kbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wbr=[0,[8,[0,0,5],0,0,0],r(r8)],Ebr=[0,[17,0,0],r(z)],Sbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gbr=r(c7),Fbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tbr=[0,[3,0,0],r(Vt)],Obr=[0,[17,0,0],r(z)],Ibr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Abr=r(Xr),Nbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cbr=r(tr),Pbr=r(Z0),Dbr=r(nr),Lbr=[0,[17,0,0],r(z)],Rbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jbr=[0,[15,0],r(N0)],Gbr=r(Yr),Mbr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Bbr=r(\"Flow_ast.StringLiteral.value\"),qbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ubr=[0,[3,0,0],r(Vt)],Hbr=[0,[17,0,0],r(z)],Xbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ybr=r(c7),Vbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zbr=[0,[3,0,0],r(Vt)],Kbr=[0,[17,0,0],r(z)],Wbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jbr=r(Xr),$br=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zbr=r(tr),Qbr=r(Z0),r4r=r(nr),e4r=[0,[17,0,0],r(z)],n4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],t4r=[0,[15,0],r(N0)],u4r=r(\"Flow_ast.Literal.Null\"),i4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.String\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.String@ \")],f4r=[0,[3,0,0],r(Vt)],x4r=[0,[17,0,[12,41,0]],r(d0)],o4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.Boolean\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.Boolean@ \")],a4r=[0,[9,0,0],r(An)],c4r=[0,[17,0,[12,41,0]],r(d0)],s4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.Number\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.Number@ \")],v4r=[0,[8,[0,0,5],0,0,0],r(r8)],l4r=[0,[17,0,[12,41,0]],r(d0)],b4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.BigInt\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.BigInt@ \")],p4r=[0,[8,[0,0,5],0,0,0],r(r8)],m4r=[0,[17,0,[12,41,0]],r(d0)],_4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.RegExp\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.RegExp@ \")],y4r=[0,[17,0,[12,41,0]],r(d0)],h4r=[0,[15,0],r(N0)],d4r=r(Yr),k4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w4r=r(\"Flow_ast.Literal.value\"),E4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S4r=[0,[17,0,0],r(z)],g4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F4r=r(c7),T4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O4r=[0,[3,0,0],r(Vt)],I4r=[0,[17,0,0],r(z)],A4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],N4r=r(Xr),C4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P4r=r(tr),D4r=r(Z0),L4r=r(nr),R4r=[0,[17,0,0],r(z)],j4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],G4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M4r=r(\"Flow_ast.Literal.RegExp.pattern\"),B4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q4r=[0,[3,0,0],r(Vt)],U4r=[0,[17,0,0],r(z)],H4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X4r=r(jX),Y4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V4r=[0,[3,0,0],r(Vt)],z4r=[0,[17,0,0],r(z)],K4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],W4r=[0,[15,0],r(N0)],J4r=[0,[15,0],r(N0)],$4r=r(Yr),Z4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Q4r=r(\"Flow_ast.PrivateName.name\"),r8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e8r=[0,[3,0,0],r(Vt)],n8r=[0,[17,0,0],r(z)],t8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u8r=r(Xr),i8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f8r=r(tr),x8r=r(Z0),o8r=r(nr),a8r=[0,[17,0,0],r(z)],c8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],s8r=[0,[15,0],r(N0)],v8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],l8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],b8r=[0,[17,0,[12,41,0]],r(d0)],p8r=[0,[15,0],r(N0)],m8r=r(Yr),_8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],y8r=r(\"Flow_ast.Identifier.name\"),h8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d8r=[0,[3,0,0],r(Vt)],k8r=[0,[17,0,0],r(z)],w8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],E8r=r(Xr),S8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],g8r=r(tr),F8r=r(Z0),T8r=r(nr),O8r=[0,[17,0,0],r(z)],I8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],A8r=[0,[15,0],r(N0)],N8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],C8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],P8r=[0,[17,0,[12,41,0]],r(d0)],D8r=[0,[15,0],r(N0)],L8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],R8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],G8r=r(\"Flow_ast.Syntax.leading\"),M8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],q8r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],U8r=[0,[17,0,0],r(z)],H8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X8r=r(\"trailing\"),Y8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],z8r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],K8r=[0,[17,0,0],r(z)],W8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],J8r=r(\"internal\"),$8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Z8r=[0,[17,0,0],r(z)],Q8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],r3r=[0,[0,0,0]],e3r=[0,r(Su),21,2],n3r=[0,[0,0,0,0,0]],t3r=[0,r(Su),32,2],u3r=[0,[0,0,0,0,0]],i3r=[0,r(Su),43,2],f3r=[0,[0,[0,[0,0,0]],0,0,0,0]],x3r=[0,r(Su),70,2],o3r=[0,[0,0,0]],a3r=[0,r(Su),80,2],c3r=[0,[0,0,0]],s3r=[0,r(Su),90,2],v3r=[0,[0,0,0]],l3r=[0,r(Su),R7,2],b3r=[0,[0,0,0]],p3r=[0,r(Su),Xt,2],m3r=[0,[0,0,0,0,0,0,0]],_3r=[0,r(Su),br,2],y3r=[0,[0,0,0,0,0]],h3r=[0,r(Su),KH,2],d3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],k3r=[0,r(Su),485,2],w3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],E3r=[0,r(Su),BX,2],S3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],g3r=[0,r(Su),1460,2],F3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],T3r=[0,r(Su),1604,2],O3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],I3r=[0,r(Su),1689,2],A3r=[0,[0,0,0,0,0,0,0]],N3r=[0,r(Su),1705,2],C3r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],P3r=[0,r(Su),1828,2],D3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],L3r=[0,r(Su),1895,2],R3r=[0,[0,0,0,0,0]],j3r=[0,r(Su),1907,2],G3r=[0,[0,0,0]],M3r=[0,[0,0,0,0,0]],B3r=[0,[0,0,0,0,0]],q3r=[0,[0,[0,[0,0,0]],0,0,0,0]],U3r=[0,[0,0,0]],H3r=[0,[0,0,0]],X3r=[0,[0,0,0]],Y3r=[0,[0,0,0]],V3r=[0,[0,0,0,0,0,0,0]],z3r=[0,[0,0,0,0,0]],K3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],W3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],J3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],$3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],Z3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],Q3r=[0,[0,0,0,0,0,0,0]],r6r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],e6r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],n6r=[0,[0,0,0,0,0]],t6r=[0,1],u6r=[0,0],i6r=[0,2],f6r=[0,0],x6r=[0,1],o6r=[0,1],a6r=[0,1],c6r=[0,1],s6r=[0,1],v6r=[0,0,0],l6r=[0,0,0],b6r=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],p6r=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],m6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.LibFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.LibFile@ \")],_6r=[0,[3,0,0],r(Vt)],y6r=[0,[17,0,[12,41,0]],r(d0)],h6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.SourceFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.SourceFile@ \")],d6r=[0,[3,0,0],r(Vt)],k6r=[0,[17,0,[12,41,0]],r(d0)],w6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.JsonFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.JsonFile@ \")],E6r=[0,[3,0,0],r(Vt)],S6r=[0,[17,0,[12,41,0]],r(d0)],g6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.ResourceFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.ResourceFile@ \")],F6r=[0,[3,0,0],r(Vt)],T6r=[0,[17,0,[12,41,0]],r(d0)],O6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],I6r=r(\"Loc.line\"),A6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N6r=[0,[4,0,0,0,0],r(N2)],C6r=[0,[17,0,0],r(z)],P6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],D6r=r(I2),L6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R6r=[0,[4,0,0,0,0],r(N2)],j6r=[0,[17,0,0],r(z)],G6r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],M6r=[0,[15,0],r(N0)],B6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q6r=r(\"Loc.source\"),U6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H6r=r(tr),X6r=r(Z0),Y6r=r(nr),V6r=[0,[17,0,0],r(z)],z6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K6r=r(g7),W6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],J6r=[0,[17,0,0],r(z)],$6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Z6r=r(\"_end\"),Q6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rpr=[0,[17,0,0],r(z)],epr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],npr=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(De),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],tpr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],upr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],ipr=r(lV),fpr=r(jY),xpr=r(PX),opr=r(zY),apr=r(S3),cpr=r(ZH),spr=r(cv),vpr=r(OU),lpr=r(vY),bpr=r(_X),ppr=r(sX),mpr=r(xs),_pr=r(Fa),ypr=r(UU),hpr=r(WH),dpr=r(Qu),kpr=r(XY),wpr=r(OH),Epr=r(I6),Spr=r(jd),gpr=r(R2),Fpr=r(j2),Tpr=r(WU),Opr=r(BU),Ipr=r(nY),Apr=r(xX),Npr=r(lH),Cpr=r(hX),Ppr=r(xU),Dpr=r(zX),Lpr=r(aX),Rpr=r(bH),jpr=r(wH),Gpr=r(XH),Mpr=r(rV),Bpr=r(AU),qpr=r(tX),Upr=r(\"Set.remove_min_elt\"),Hpr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xpr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,ts,0]],r(\"@[<2>{\")],Ypr=[0,[12,32,0],r(pi)],Vpr=[0,[12,32,0],r(pi)],zpr=[0,[17,[0,r(Ce),0,0],[12,br,[17,0,0]]],r(\"@,}@]\")],Kpr=[0,r(\"src/hack_forked/utils/collections/flow_set.ml\"),363,14],Wpr=[0,[0,36,37],[0,48,58],[0,65,91],[0,95,96],[0,97,ts],[0,qg,pg],[0,Ai,Yg],[0,lS,hk],[0,md,nw],[0,rt,xT],[0,y6,Dw],[0,wt,706],[0,rX,722],[0,736,741],[0,748,749],[0,750,751],[0,768,885],[0,886,888],[0,890,894],[0,895,896],[0,902,907],[0,908,ZX],[0,910,930],[0,UX,1014],[0,1015,1154],[0,1155,1160],[0,1162,CU],[0,1329,1367],[0,1369,1370],[0,1376,1417],[0,1425,1470],[0,1471,1472],[0,1473,1475],[0,1476,1478],[0,1479,1480],[0,1488,1515],[0,1519,1523],[0,1552,1563],[0,1568,1642],[0,1646,1748],[0,1749,1757],[0,1759,1769],[0,1770,1789],[0,1791,1792],[0,1808,1867],[0,1869,1970],[0,1984,2038],[0,2042,2043],[0,2045,2046],[0,Hh,2094],[0,2112,2140],[0,2144,2155],[0,2208,2229],[0,2230,2238],[0,2259,2274],[0,2275,2404],[0,2406,2416],[0,2417,2436],[0,2437,2445],[0,2447,2449],[0,2451,2473],[0,2474,2481],[0,2482,2483],[0,2486,2490],[0,2492,2501],[0,2503,2505],[0,2507,2511],[0,2519,2520],[0,2524,2526],[0,2527,2532],[0,2534,2546],[0,2556,2557],[0,2558,2559],[0,2561,2564],[0,2565,2571],[0,2575,2577],[0,2579,2601],[0,2602,2609],[0,2610,2612],[0,2613,2615],[0,2616,2618],[0,2620,2621],[0,2622,2627],[0,2631,2633],[0,2635,2638],[0,2641,2642],[0,2649,2653],[0,2654,2655],[0,2662,2678],[0,2689,2692],[0,2693,2702],[0,2703,2706],[0,2707,2729],[0,2730,2737],[0,2738,2740],[0,2741,2746],[0,2748,2758],[0,2759,2762],[0,2763,2766],[0,2768,2769],[0,2784,2788],[0,2790,2800],[0,2809,2816],[0,2817,2820],[0,2821,2829],[0,2831,2833],[0,2835,2857],[0,2858,2865],[0,2866,2868],[0,2869,2874],[0,2876,2885],[0,2887,2889],[0,2891,2894],[0,2902,2904],[0,2908,2910],[0,2911,2916],[0,2918,2928],[0,2929,2930],[0,2946,2948],[0,2949,2955],[0,2958,2961],[0,2962,2966],[0,2969,2971],[0,2972,2973],[0,2974,2976],[0,2979,2981],[0,2984,2987],[0,2990,3002],[0,3006,3011],[0,3014,3017],[0,3018,3022],[0,3024,3025],[0,3031,3032],[0,3046,3056],[0,3072,3085],[0,3086,3089],[0,3090,3113],[0,3114,3130],[0,3133,3141],[0,3142,3145],[0,3146,3150],[0,3157,3159],[0,3160,3163],[0,3168,3172],[0,3174,3184],[0,3200,3204],[0,3205,3213],[0,3214,3217],[0,3218,3241],[0,3242,3252],[0,3253,3258],[0,3260,3269],[0,3270,3273],[0,3274,3278],[0,3285,3287],[0,3294,3295],[0,3296,3300],[0,3302,3312],[0,3313,3315],[0,3328,3332],[0,3333,3341],[0,3342,3345],[0,3346,3397],[0,3398,3401],[0,3402,3407],[0,3412,3416],[0,3423,3428],[0,3430,3440],[0,3450,3456],[0,3458,3460],[0,3461,3479],[0,3482,3506],[0,3507,3516],[0,3517,3518],[0,3520,3527],[0,3530,3531],[0,3535,3541],[0,3542,3543],[0,3544,3552],[0,3558,3568],[0,3570,3572],[0,3585,3643],[0,3648,3663],[0,3664,3674],[0,3713,3715],[0,3716,3717],[0,3718,3723],[0,3724,3748],[0,3749,3750],[0,3751,3774],[0,3776,3781],[0,3782,3783],[0,3784,3790],[0,3792,3802],[0,3804,3808],[0,3840,3841],[0,3864,3866],[0,3872,3882],[0,3893,3894],[0,3895,3896],[0,3897,3898],[0,3902,3912],[0,3913,3949],[0,3953,3973],[0,3974,3992],[0,3993,4029],[0,4038,4039],[0,vX,4170],[0,4176,4254],[0,4256,4294],[0,4295,4296],[0,4301,4302],[0,4304,4347],[0,4348,4681],[0,4682,4686],[0,4688,4695],[0,4696,4697],[0,4698,4702],[0,4704,4745],[0,4746,4750],[0,4752,4785],[0,4786,4790],[0,4792,4799],[0,4800,4801],[0,4802,4806],[0,4808,4823],[0,4824,4881],[0,4882,4886],[0,4888,4955],[0,4957,4960],[0,4969,4978],[0,4992,5008],[0,5024,5110],[0,5112,5118],[0,5121,5741],[0,5743,Ev],[0,5761,5787],[0,5792,5867],[0,5870,5881],[0,5888,5901],[0,5902,5909],[0,5920,5941],[0,5952,5972],[0,5984,5997],[0,5998,6001],[0,6002,6004],[0,6016,6100],[0,6103,6104],[0,6108,6110],[0,6112,6122],[0,6155,6158],[0,6160,6170],[0,6176,6265],[0,6272,6315],[0,6320,6390],[0,6400,6431],[0,6432,6444],[0,6448,6460],[0,6470,6510],[0,6512,6517],[0,6528,6572],[0,6576,6602],[0,6608,6619],[0,6656,6684],[0,6688,6751],[0,6752,6781],[0,6783,6794],[0,6800,6810],[0,6823,6824],[0,6832,6846],[0,6912,6988],[0,6992,7002],[0,7019,7028],[0,7040,7156],[0,7168,7224],[0,7232,7242],[0,7245,7294],[0,7296,7305],[0,7312,7355],[0,7357,7360],[0,7376,7379],[0,7380,7419],[0,7424,7674],[0,7675,7958],[0,7960,7966],[0,7968,8006],[0,8008,8014],[0,8016,8024],[0,8025,8026],[0,8027,8028],[0,8029,8030],[0,8031,8062],[0,8064,8117],[0,8118,8125],[0,8126,8127],[0,8130,8133],[0,8134,8141],[0,8144,8148],[0,8150,8156],[0,8160,8173],[0,8178,8181],[0,8182,8189],[0,kY,vU],[0,8255,8257],[0,8276,8277],[0,ep,8306],[0,O3,8320],[0,8336,8349],[0,8400,8413],[0,8417,8418],[0,8421,8433],[0,x3,8451],[0,R3,8456],[0,8458,g4],[0,m6,8470],[0,iU,8478],[0,t8,$3],[0,Q8,sp],[0,P8,N8],[0,8490,8506],[0,8508,8512],[0,8517,8522],[0,s8,8527],[0,8544,8585],[0,11264,11311],[0,11312,11359],[0,11360,11493],[0,11499,11508],[0,11520,G4],[0,B8,11560],[0,N3,11566],[0,11568,11624],[0,p4,11632],[0,P6,11671],[0,11680,j4],[0,11688,z8],[0,11696,o8],[0,11704,K8],[0,11712,z6],[0,11720,j8],[0,11728,F6],[0,11736,11743],[0,11744,11776],[0,12293,12296],[0,12321,T3],[0,12337,12342],[0,12344,12349],[0,12353,12439],[0,12441,E3],[0,12449,q4],[0,12540,12544],[0,12549,E8],[0,12593,12687],[0,12704,12731],[0,12784,12800],[0,13312,19894],[0,19968,40944],[0,40960,42125],[0,42192,42238],[0,42240,42509],[0,42512,42540],[0,42560,42608],[0,42612,U3],[0,42623,42738],[0,42775,42784],[0,42786,42889],[0,42891,42944],[0,42946,42951],[0,F8,43048],[0,43072,43124],[0,43136,43206],[0,43216,43226],[0,43232,43256],[0,n3,_8],[0,43261,43310],[0,43312,43348],[0,43360,43389],[0,43392,43457],[0,k8,43482],[0,43488,v6],[0,43520,43575],[0,43584,43598],[0,43600,43610],[0,43616,43639],[0,lp,43715],[0,43739,43742],[0,43744,43760],[0,43762,43767],[0,43777,43783],[0,43785,43791],[0,43793,43799],[0,43808,k6],[0,43816,H3],[0,43824,av],[0,43868,o3],[0,43888,44011],[0,44012,44014],[0,44016,44026],[0,44032,55204],[0,55216,55239],[0,55243,55292],[0,63744,64110],[0,64112,64218],[0,64256,64263],[0,64275,64280],[0,e3,ip],[0,64298,Qn],[0,64312,z3],[0,L6,R4],[0,64320,q3],[0,64323,D8],[0,64326,64434],[0,64467,64830],[0,64848,64912],[0,64914,64968],[0,65008,65020],[0,65024,65040],[0,65056,65072],[0,65075,65077],[0,65101,65104],[0,65136,t3],[0,65142,65277],[0,65296,65306],[0,65313,65339],[0,65343,Q4],[0,65345,65371],[0,65382,65471],[0,65474,65480],[0,65482,65488],[0,65490,65496],[0,65498,65501],[0,fw,rp],[0,65549,$8],[0,65576,z4],[0,65596,S6],[0,65599,65614],[0,65616,65630],[0,65664,65787],[0,65856,65909],[0,66045,66046],[0,66176,66205],[0,66208,66257],[0,66272,66273],[0,66304,66336],[0,66349,66379],[0,66384,66427],[0,66432,66462],[0,66464,66500],[0,66504,Z3],[0,66513,66518],[0,66560,66718],[0,66720,66730],[0,66736,66772],[0,66776,66812],[0,66816,66856],[0,66864,66916],[0,67072,67383],[0,67392,67414],[0,67424,67432],[0,67584,67590],[0,op,J4],[0,67594,p8],[0,67639,67641],[0,M6,67645],[0,67647,67670],[0,67680,67703],[0,67712,67743],[0,67808,X8],[0,67828,67830],[0,67840,67862],[0,67872,67898],[0,67968,68024],[0,68030,68032],[0,S7,68100],[0,68101,68103],[0,68108,b4],[0,68117,Z8],[0,68121,68150],[0,68152,68155],[0,68159,68160],[0,68192,68221],[0,68224,68253],[0,68288,J6],[0,68297,68327],[0,68352,68406],[0,68416,68438],[0,68448,68467],[0,68480,68498],[0,68608,68681],[0,68736,68787],[0,68800,68851],[0,68864,68904],[0,68912,68922],[0,69376,69405],[0,J8,69416],[0,69424,69457],[0,69600,69623],[0,69632,69703],[0,69734,B3],[0,69759,69819],[0,69840,69865],[0,69872,69882],[0,69888,69941],[0,69942,69952],[0,m4,F3],[0,69968,70004],[0,X6,70007],[0,70016,70085],[0,70089,70093],[0,70096,h8],[0,i3,70109],[0,70144,A8],[0,70163,70200],[0,70206,70207],[0,70272,y3],[0,I8,fp],[0,70282,O8],[0,70287,c8],[0,70303,70313],[0,70320,70379],[0,70384,70394],[0,70400,u6],[0,70405,70413],[0,70415,70417],[0,70419,f3],[0,70442,a8],[0,70450,C4],[0,70453,70458],[0,70459,70469],[0,70471,70473],[0,70475,70478],[0,j6,70481],[0,70487,70488],[0,70493,70500],[0,70502,70509],[0,70512,70517],[0,70656,70731],[0,70736,70746],[0,W6,70752],[0,70784,Q3],[0,Z6,70856],[0,70864,70874],[0,71040,71094],[0,71096,71105],[0,71128,71134],[0,71168,71233],[0,u8,71237],[0,71248,71258],[0,71296,71353],[0,71360,71370],[0,71424,71451],[0,71453,71468],[0,71472,71482],[0,71680,71739],[0,71840,71914],[0,71935,71936],[0,72096,72104],[0,72106,72152],[0,72154,up],[0,p3,72165],[0,M8,72255],[0,72263,72264],[0,u3,72346],[0,P4,72350],[0,72384,72441],[0,72704,W3],[0,72714,72759],[0,72760,72769],[0,72784,72794],[0,72818,72848],[0,72850,72872],[0,72873,72887],[0,72960,D3],[0,72968,h4],[0,72971,73015],[0,73018,73019],[0,73020,73022],[0,73023,73032],[0,73040,73050],[0,73056,R6],[0,73063,h3],[0,73066,73103],[0,73104,73106],[0,73107,73113],[0,73120,73130],[0,73440,73463],[0,73728,74650],[0,74752,74863],[0,74880,75076],[0,77824,78895],[0,82944,83527],[0,92160,92729],[0,92736,92767],[0,92768,92778],[0,92880,92910],[0,92912,92917],[0,92928,92983],[0,92992,92996],[0,93008,93018],[0,93027,93048],[0,93053,93072],[0,93760,93824],[0,93952,94027],[0,Z4,94088],[0,94095,94112],[0,94176,b6],[0,h6,94180],[0,94208,100344],[0,100352,101107],[0,110592,110879],[0,110928,110931],[0,110948,110952],[0,110960,111356],[0,113664,113771],[0,113776,113789],[0,113792,113801],[0,113808,113818],[0,113821,113823],[0,119141,119146],[0,119149,119155],[0,119163,119171],[0,119173,119180],[0,119210,119214],[0,119362,119365],[0,119808,T6],[0,119894,M3],[0,119966,119968],[0,d3,119971],[0,119973,119975],[0,119977,Q6],[0,119982,l8],[0,l4,G6],[0,119997,I3],[0,120005,L4],[0,120071,120075],[0,120077,N6],[0,120086,vp],[0,120094,C3],[0,120123,r6],[0,120128,B4],[0,G3,120135],[0,120138,D6],[0,120146,120486],[0,120488,D4],[0,120514,V3],[0,120540,c6],[0,120572,X4],[0,120598,c3],[0,120630,V4],[0,120656,w6],[0,120688,v4],[0,120714,l6],[0,120746,k3],[0,120772,120780],[0,120782,120832],[0,121344,121399],[0,121403,121453],[0,121461,121462],[0,121476,121477],[0,121499,121504],[0,121505,121520],[0,122880,122887],[0,122888,122905],[0,122907,122914],[0,122915,122917],[0,122918,122923],[0,123136,123181],[0,123184,123198],[0,123200,123210],[0,ap,123215],[0,123584,123642],[0,124928,125125],[0,125136,125143],[0,125184,125260],[0,125264,125274],[0,126464,C6],[0,126469,J3],[0,126497,a3],[0,g8,126501],[0,e8,m8],[0,126505,s6],[0,126516,f8],[0,_6,x8],[0,w3,126524],[0,K3,126531],[0,L8,U6],[0,S8,n8],[0,s3,M4],[0,126541,F4],[0,126545,g6],[0,d8,126549],[0,i8,E4],[0,fn,B6],[0,S4,G8],[0,q6,s4],[0,t6,O4],[0,126561,xp],[0,V6,126565],[0,126567,l3],[0,126572,x6],[0,126580,W8],[0,126585,L3],[0,$4,w8],[0,126592,V8],[0,126603,126620],[0,126625,j3],[0,126629,r3],[0,126635,126652],[0,131072,173783],[0,173824,177973],[0,177984,178206],[0,178208,183970],[0,183984,191457],[0,194560,195102],[0,917760,918e3]],Jpr=r(O2),$pr=r(dv),Zpr=r(Tv),Qpr=r(K4),r5r=r(\"Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead.\"),e5r=r(\"Enum members are separated with `,`. Replace `;` with `,`.\"),n5r=r(\"Unexpected reserved word\"),t5r=r(\"Unexpected reserved type\"),u5r=r(\"Unexpected `super` outside of a class method\"),i5r=r(\"`super()` is only valid in a class constructor\"),f5r=r(\"Unexpected end of input\"),x5r=r(\"Unexpected variance sigil\"),o5r=r(\"Unexpected static modifier\"),a5r=r(\"Unexpected proto modifier\"),c5r=r(\"Type aliases are not allowed in untyped mode\"),s5r=r(\"Opaque type aliases are not allowed in untyped mode\"),v5r=r(\"Type annotations are not allowed in untyped mode\"),l5r=r(\"Type declarations are not allowed in untyped mode\"),b5r=r(\"Type imports are not allowed in untyped mode\"),p5r=r(\"Type exports are not allowed in untyped mode\"),m5r=r(\"Interfaces are not allowed in untyped mode\"),_5r=r(\"Spreading a type is only allowed inside an object type\"),y5r=r(\"Explicit inexact syntax must come at the end of an object type\"),h5r=r(\"Explicit inexact syntax cannot appear inside an explicit exact object type\"),d5r=r(\"Explicit inexact syntax can only appear inside an object type\"),k5r=r(\"Illegal newline after throw\"),w5r=r(\"A bigint literal must be an integer\"),E5r=r(\"A bigint literal cannot use exponential notation\"),S5r=r(\"Invalid regular expression\"),g5r=r(\"Invalid regular expression: missing /\"),F5r=r(\"Invalid left-hand side in assignment\"),T5r=r(\"Invalid left-hand side in exponentiation expression\"),O5r=r(\"Invalid left-hand side in for-in\"),I5r=r(\"Invalid left-hand side in for-of\"),A5r=r(\"Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`.\"),N5r=r(\"found an expression instead\"),C5r=r(\"Expected an object pattern, array pattern, or an identifier but \"),P5r=r(\"More than one default clause in switch statement\"),D5r=r(\"Missing catch or finally after try\"),L5r=r(\"Illegal continue statement\"),R5r=r(\"Illegal break statement\"),j5r=r(\"Illegal return statement\"),G5r=r(\"Illegal Unicode escape\"),M5r=r(\"Strict mode code may not include a with statement\"),B5r=r(\"Catch variable may not be eval or arguments in strict mode\"),q5r=r(\"Variable name may not be eval or arguments in strict mode\"),U5r=r(\"Parameter name eval or arguments is not allowed in strict mode\"),H5r=r(\"Strict mode function may not have duplicate parameter names\"),X5r=r('Illegal \"use strict\" directive in function with non-simple parameter list'),Y5r=r(\"Function name may not be eval or arguments in strict mode\"),V5r=r(\"Octal literals are not allowed in strict mode.\"),z5r=r(\"Number literals with leading zeros are not allowed in strict mode.\"),K5r=r(\"Delete of an unqualified identifier in strict mode.\"),W5r=r(\"Duplicate data property in object literal not allowed in strict mode\"),J5r=r(\"Object literal may not have data and accessor property with the same name\"),$5r=r(\"Object literal may not have multiple get/set accessors with the same name\"),Z5r=r(\"`typeof` can only be used to get the type of variables.\"),Q5r=r(\"Assignment to eval or arguments is not allowed in strict mode\"),rmr=r(\"Postfix increment/decrement may not have eval or arguments operand in strict mode\"),emr=r(\"Prefix increment/decrement may not have eval or arguments operand in strict mode\"),nmr=r(\"Use of future reserved word in strict mode\"),tmr=r(\"JSX attributes must only be assigned a non-empty expression\"),umr=r(\"JSX value should be either an expression or a quoted JSX text\"),imr=r(\"Const must be initialized\"),fmr=r(\"Destructuring assignment must be initialized\"),xmr=r(\"Illegal newline before arrow\"),omr=r(aF),amr=r(\"Async functions can only be declared at top level or \"),cmr=r(aF),smr=r(\"Generators can only be declared at top level or \"),vmr=r(\"elements must be wrapped in an enclosing parent tag\"),lmr=r(\"Unexpected token <. Remember, adjacent JSX \"),bmr=r(\"Rest parameter must be final parameter of an argument list\"),pmr=r(\"Rest element must be final element of an array pattern\"),mmr=r(\"Rest property must be final property of an object pattern\"),_mr=r(\"async is an implementation detail and isn't necessary for your declare function statement. It is sufficient for your declare function to just have a Promise return type.\"),ymr=r(\"`declare` modifier can only appear on class fields.\"),hmr=r(\"Unexpected token `=`. Initializers are not allowed in a `declare`.\"),dmr=r(\"Unexpected token `=`. Initializers are not allowed in a `declare opaque type`.\"),kmr=r(\"`declare export let` is not supported. Use `declare export var` instead.\"),wmr=r(\"`declare export const` is not supported. Use `declare export var` instead.\"),Emr=r(\"`declare export type` is not supported. Use `export type` instead.\"),Smr=r(\"`declare export interface` is not supported. Use `export interface` instead.\"),gmr=r(\"`export * as` is an early-stage proposal and is not enabled by default. To enable support in the parser, use the `esproposal_export_star_as` option\"),Fmr=r(\"Found a decorator in an unsupported position.\"),Tmr=r(\"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\"),Omr=r(\"Duplicate `declare module.exports` statement!\"),Imr=r(\"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module xor they are a CommonJS module.\"),Amr=r(\"Getter should have zero parameters\"),Nmr=r(\"Setter should have exactly one parameter\"),Cmr=r(\"`import type` or `import typeof`!\"),Pmr=r(\"Imports within a `declare module` body must always be \"),Dmr=r(\"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\"),Lmr=r(\"Missing comma between import specifiers\"),Rmr=r(\"Missing comma between export specifiers\"),jmr=r(\"Malformed unicode\"),Gmr=r(\"Classes may only have one constructor\"),Mmr=r(\"Private fields may not be deleted.\"),Bmr=r(\"Private fields can only be referenced from within a class.\"),qmr=r(\"You may not access a private field through the `super` keyword.\"),Umr=r(\"Yield expression not allowed in formal parameter\"),Hmr=r(\"`await` is an invalid identifier in async functions\"),Xmr=r(\"`yield` is an invalid identifier in generators\"),Ymr=r(\"either a `let` binding pattern, or a member expression.\"),Vmr=r(\"`let [` is ambiguous in this position because it is \"),zmr=r(\"Literals cannot be used as shorthand properties.\"),Kmr=r(\"Computed properties must have a value.\"),Wmr=r(\"Object pattern can't contain methods\"),Jmr=r(\"A trailing comma is not permitted after the rest element\"),$mr=r(\"An optional chain may not be used in a `new` expression.\"),Zmr=r(\"Template literals may not be used in an optional chain.\"),Qmr=r(\"Unexpected whitespace between `#` and identifier\"),r9r=r(\"A type annotation is required for the `this` parameter.\"),e9r=r(\"The `this` parameter must be the first function parameter.\"),n9r=r(\"The `this` parameter cannot be optional.\"),t9r=r(\"A getter cannot have a `this` parameter.\"),u9r=r(\"A setter cannot have a `this` parameter.\"),i9r=r(\"Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared.\"),f9r=r(\"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\"),x9r=[0,[11,r(\"Boolean enum members need to be initialized. Use either `\"),[2,0,[11,r(\" = true,` or `\"),[2,0,[11,r(\" = false,` in enum `\"),[2,0,[11,r(Es),0]]]]]]],r(\"Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`.\")],o9r=[0,[11,r(\"Enum member names need to be unique, but the name `\"),[2,0,[11,r(\"` has already been used before in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`.\")],a9r=[0,[11,r(IU),[2,0,[11,r(\"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\"),0]]],r(\"Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\")],c9r=[0,[11,r(\"Use one of `boolean`, `number`, `string`, or `symbol` in enum `\"),[2,0,[11,r(Es),0]]],r(\"Use one of `boolean`, `number`, `string`, or `symbol` in enum `%s`.\")],s9r=[0,[11,r(\"Enum type `\"),[2,0,[11,r(\"` is not valid. \"),[2,0,0]]]],r(\"Enum type `%s` is not valid. %s\")],v9r=[0,[11,r(\"Supplied enum type is not valid. \"),[2,0,0]],r(\"Supplied enum type is not valid. %s\")],l9r=[0,[11,r(\"Enum member names and initializers are separated with `=`. Replace `\"),[2,0,[11,r(\":` with `\"),[2,0,[11,r(\" =`.\"),0]]]]],r(\"Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`.\")],b9r=[0,[11,r(\"Symbol enum members cannot be initialized. Use `\"),[2,0,[11,r(\",` in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"Symbol enum members cannot be initialized. Use `%s,` in enum `%s`.\")],p9r=[0,[11,r(IU),[2,0,[11,r(\"` has type `\"),[2,0,[11,r(\"`, so the initializer of `\"),[2,0,[11,r(\"` needs to be a \"),[2,0,[11,r(\" literal.\"),0]]]]]]]]],r(\"Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal.\")],m9r=[0,[11,r(\"The enum member initializer for `\"),[2,0,[11,r(\"` needs to be a literal (either a boolean, number, or string) in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`.\")],_9r=[0,[11,r(\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `\"),[2,0,[11,r(\"`, consider using `\"),[2,0,[11,r(\"`, in enum `\"),[2,0,[11,r(Es),0]]]]]]],r(\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`.\")],y9r=r(\"The `...` must come at the end of the enum body. Remove the trailing comma.\"),h9r=r(\"The `...` must come after all enum members. Move it to the end of the enum body.\"),d9r=[0,[11,r(\"Number enum members need to be initialized, e.g. `\"),[2,0,[11,r(\" = 1,` in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`.\")],k9r=[0,[11,r(\"String enum members need to consistently either all use initializers, or use no initializers, in enum \"),[2,0,[12,46,0]]],r(\"String enum members need to consistently either all use initializers, or use no initializers, in enum %s.\")],w9r=[0,[11,r(UH),[2,0,0]],r(\"Unexpected %s\")],E9r=[0,[11,r(UH),[2,0,[11,r(\", expected \"),[2,0,0]]]],r(\"Unexpected %s, expected %s\")],S9r=[0,[11,r(bV),[2,0,[11,r(\"`. Did you mean `\"),[2,0,[11,r(\"`?\"),0]]]]],r(\"Unexpected token `%s`. Did you mean `%s`?\")],g9r=r(P3),F9r=r(\"Invalid flags supplied to RegExp constructor '\"),T9r=r(\"Remove the period.\"),O9r=r(\"Indexed access uses bracket notation.\"),I9r=[0,[11,r(\"Invalid indexed access. \"),[2,0,[11,r(\" Use the format `T[K]`.\"),0]]],r(\"Invalid indexed access. %s Use the format `T[K]`.\")],A9r=r(P3),N9r=r(\"Undefined label '\"),C9r=r(\"' has already been declared\"),P9r=r(\" '\"),D9r=r(\"Expected corresponding JSX closing tag for \"),L9r=r(aF),R9r=r(\"In strict mode code, functions can only be declared at top level or \"),j9r=r(\"inside a block, or as the body of an if statement.\"),G9r=r(\"In non-strict mode code, functions can only be declared at top level, \"),M9r=[0,[11,r(\"Duplicate export for `\"),[2,0,[12,96,0]]],r(\"Duplicate export for `%s`\")],B9r=r(\"` is declared more than once.\"),q9r=r(\"Private fields may only be declared once. `#\"),U9r=r(\"static \"),H9r=r(C),X9r=r(YY),Y9r=r(\"methods\"),V9r=r(\"fields\"),z9r=r(Es),K9r=r(\" named `\"),W9r=r(\"Classes may not have \"),J9r=r(\"` has not been declared.\"),$9r=r(\"Private fields must be declared before they can be referenced. `#\"),Z9r=[0,[11,r(bV),[2,0,[11,r(\"`. Parentheses are required to combine `??` with `&&` or `||` expressions.\"),0]]],r(\"Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions.\")],Q9r=r(\"Parse_error.Error\"),r_r=[0,r(\"src/third-party/sedlex/flow_sedlexing.ml\"),s1,4],e_r=r(\"Flow_sedlexing.MalFormed\"),n_r=[0,1,0],t_r=[0,0,[0,1,0],[0,1,0]],u_r=r(YU),i_r=r(\"end of input\"),f_r=r(rl),x_r=r(\"template literal part\"),o_r=r(rl),a_r=r(MH),c_r=r(YU),s_r=r(rl),v_r=r(dv),l_r=r(rl),b_r=r(x1),p_r=r(rl),m_r=r(Tv),__r=r(\"an\"),y_r=r(yi),h_r=r(pi),d_r=[0,[11,r(\"token `\"),[2,0,[12,96,0]]],r(\"token `%s`\")],k_r=r(hH),w_r=r(b3),E_r=r(\"{|\"),S_r=r(\"|}\"),g_r=r(HX),F_r=r(Z0),T_r=r(\"[\"),O_r=r(\"]\"),I_r=r(VY),A_r=r(\",\"),N_r=r(Lo),C_r=r(\"=>\"),P_r=r(\"...\"),D_r=r(gX),L_r=r(YY),R_r=r(M2),j_r=r(A3),G_r=r(R2),M_r=r(j2),B_r=r(Ju),q_r=r(D7),U_r=r(i1),H_r=r(F7),X_r=r(d4),Y_r=r(U2),V_r=r(K6),z_r=r(C8),K_r=r(D2),W_r=r(G2),J_r=r(fs),$_r=r(Ci),Z_r=r(Gi),Q_r=r(A7),ryr=r(d6),eyr=r(o6),nyr=r(N7),tyr=r(_i),uyr=r(_4),iyr=r(q8),fyr=r(np),xyr=r(q2),oyr=r(P7),ayr=r(nu),cyr=r(U4),syr=r(u1),vyr=r(J2),lyr=r(rs),byr=r(es),pyr=r(b8),myr=r(_3),_yr=r(Uu),yyr=r(yv),hyr=r(ws),dyr=r(e7),kyr=r(y4),wyr=r(k4),Eyr=r(a6),Syr=r(E6),gyr=r(Eu),Fyr=r(I7),Tyr=r(T2),Oyr=r(Jc),Iyr=r(eh),Ayr=r(CS),Nyr=r(gs),Cyr=r(dx),Pyr=r(\"%checks\"),Dyr=r(aX),Lyr=r(zX),Ryr=r(xU),jyr=r(wH),Gyr=r(bH),Myr=r(XH),Byr=r(hX),qyr=r(lH),Uyr=r(nY),Hyr=r(xX),Xyr=r(BU),Yyr=r(WU),Vyr=r(rV),zyr=r(AU),Kyr=r(tX),Wyr=r(XO),Jyr=r(\"?.\"),$yr=r(Ke),Zyr=r(\"?\"),Qyr=r(o1),rhr=r(zH),ehr=r(MX),nhr=r(OH),thr=r(I6),uhr=r(jd),ihr=r(lV),fhr=r(jY),xhr=r(PX),ohr=r(zY),ahr=r(ZH),chr=r(OU),shr=r(S3),vhr=r(cv),lhr=r(vY),bhr=r(_X),phr=r(sX),mhr=r(xs),_hr=r(Fa),yhr=r(Qu),hhr=r(UU),dhr=r(WH),khr=r(XY),whr=r(Kt),Ehr=r(ZY),Shr=r(sH),ghr=r(oV),Fhr=r(C),Thr=r(n6),Ohr=r(H8),Ihr=r(v7),Ahr=r(dv),Nhr=r(x1),Chr=r(Tv),Phr=r(es),Dhr=r(K4),Lhr=r(Qu),Rhr=r(Qu),jhr=r(O2),Ghr=r(O6),Mhr=r(\"T_LCURLY\"),Bhr=r(\"T_RCURLY\"),qhr=r(\"T_LCURLYBAR\"),Uhr=r(\"T_RCURLYBAR\"),Hhr=r(\"T_LPAREN\"),Xhr=r(\"T_RPAREN\"),Yhr=r(\"T_LBRACKET\"),Vhr=r(\"T_RBRACKET\"),zhr=r(\"T_SEMICOLON\"),Khr=r(\"T_COMMA\"),Whr=r(\"T_PERIOD\"),Jhr=r(\"T_ARROW\"),$hr=r(\"T_ELLIPSIS\"),Zhr=r(\"T_AT\"),Qhr=r(\"T_POUND\"),rdr=r(\"T_FUNCTION\"),edr=r(\"T_IF\"),ndr=r(\"T_IN\"),tdr=r(\"T_INSTANCEOF\"),udr=r(\"T_RETURN\"),idr=r(\"T_SWITCH\"),fdr=r(\"T_THIS\"),xdr=r(\"T_THROW\"),odr=r(\"T_TRY\"),adr=r(\"T_VAR\"),cdr=r(\"T_WHILE\"),sdr=r(\"T_WITH\"),vdr=r(\"T_CONST\"),ldr=r(\"T_LET\"),bdr=r(\"T_NULL\"),pdr=r(\"T_FALSE\"),mdr=r(\"T_TRUE\"),_dr=r(\"T_BREAK\"),ydr=r(\"T_CASE\"),hdr=r(\"T_CATCH\"),ddr=r(\"T_CONTINUE\"),kdr=r(\"T_DEFAULT\"),wdr=r(\"T_DO\"),Edr=r(\"T_FINALLY\"),Sdr=r(\"T_FOR\"),gdr=r(\"T_CLASS\"),Fdr=r(\"T_EXTENDS\"),Tdr=r(\"T_STATIC\"),Odr=r(\"T_ELSE\"),Idr=r(\"T_NEW\"),Adr=r(\"T_DELETE\"),Ndr=r(\"T_TYPEOF\"),Cdr=r(\"T_VOID\"),Pdr=r(\"T_ENUM\"),Ddr=r(\"T_EXPORT\"),Ldr=r(\"T_IMPORT\"),Rdr=r(\"T_SUPER\"),jdr=r(\"T_IMPLEMENTS\"),Gdr=r(\"T_INTERFACE\"),Mdr=r(\"T_PACKAGE\"),Bdr=r(\"T_PRIVATE\"),qdr=r(\"T_PROTECTED\"),Udr=r(\"T_PUBLIC\"),Hdr=r(\"T_YIELD\"),Xdr=r(\"T_DEBUGGER\"),Ydr=r(\"T_DECLARE\"),Vdr=r(\"T_TYPE\"),zdr=r(\"T_OPAQUE\"),Kdr=r(\"T_OF\"),Wdr=r(\"T_ASYNC\"),Jdr=r(\"T_AWAIT\"),$dr=r(\"T_CHECKS\"),Zdr=r(\"T_RSHIFT3_ASSIGN\"),Qdr=r(\"T_RSHIFT_ASSIGN\"),rkr=r(\"T_LSHIFT_ASSIGN\"),ekr=r(\"T_BIT_XOR_ASSIGN\"),nkr=r(\"T_BIT_OR_ASSIGN\"),tkr=r(\"T_BIT_AND_ASSIGN\"),ukr=r(\"T_MOD_ASSIGN\"),ikr=r(\"T_DIV_ASSIGN\"),fkr=r(\"T_MULT_ASSIGN\"),xkr=r(\"T_EXP_ASSIGN\"),okr=r(\"T_MINUS_ASSIGN\"),akr=r(\"T_PLUS_ASSIGN\"),ckr=r(\"T_NULLISH_ASSIGN\"),skr=r(\"T_AND_ASSIGN\"),vkr=r(\"T_OR_ASSIGN\"),lkr=r(\"T_ASSIGN\"),bkr=r(\"T_PLING_PERIOD\"),pkr=r(\"T_PLING_PLING\"),mkr=r(\"T_PLING\"),_kr=r(\"T_COLON\"),ykr=r(\"T_OR\"),hkr=r(\"T_AND\"),dkr=r(\"T_BIT_OR\"),kkr=r(\"T_BIT_XOR\"),wkr=r(\"T_BIT_AND\"),Ekr=r(\"T_EQUAL\"),Skr=r(\"T_NOT_EQUAL\"),gkr=r(\"T_STRICT_EQUAL\"),Fkr=r(\"T_STRICT_NOT_EQUAL\"),Tkr=r(\"T_LESS_THAN_EQUAL\"),Okr=r(\"T_GREATER_THAN_EQUAL\"),Ikr=r(\"T_LESS_THAN\"),Akr=r(\"T_GREATER_THAN\"),Nkr=r(\"T_LSHIFT\"),Ckr=r(\"T_RSHIFT\"),Pkr=r(\"T_RSHIFT3\"),Dkr=r(\"T_PLUS\"),Lkr=r(\"T_MINUS\"),Rkr=r(\"T_DIV\"),jkr=r(\"T_MULT\"),Gkr=r(\"T_EXP\"),Mkr=r(\"T_MOD\"),Bkr=r(\"T_NOT\"),qkr=r(\"T_BIT_NOT\"),Ukr=r(\"T_INCR\"),Hkr=r(\"T_DECR\"),Xkr=r(\"T_EOF\"),Ykr=r(\"T_ANY_TYPE\"),Vkr=r(\"T_MIXED_TYPE\"),zkr=r(\"T_EMPTY_TYPE\"),Kkr=r(\"T_NUMBER_TYPE\"),Wkr=r(\"T_BIGINT_TYPE\"),Jkr=r(\"T_STRING_TYPE\"),$kr=r(\"T_VOID_TYPE\"),Zkr=r(\"T_SYMBOL_TYPE\"),Qkr=r(\"T_NUMBER\"),rwr=r(\"T_BIGINT\"),ewr=r(\"T_STRING\"),nwr=r(\"T_TEMPLATE_PART\"),twr=r(\"T_IDENTIFIER\"),uwr=r(\"T_REGEXP\"),iwr=r(\"T_ERROR\"),fwr=r(\"T_JSX_IDENTIFIER\"),xwr=r(\"T_JSX_TEXT\"),owr=r(\"T_BOOLEAN_TYPE\"),awr=r(\"T_NUMBER_SINGLETON_TYPE\"),cwr=r(\"T_BIGINT_SINGLETON_TYPE\"),swr=[0,r(kX),HT,9],vwr=[0,r(kX),A6,9],lwr=r(GH),bwr=r(\"*/\"),pwr=r(GH),mwr=r(\"unreachable line_comment\"),_wr=r(\"unreachable string_quote\"),ywr=r(\"\\\\\"),hwr=r(\"unreachable template_part\"),dwr=r(\"${\"),kwr=r(UY),wwr=r(UY),Ewr=r(MI),Swr=r(\"unreachable regexp_class\"),gwr=r(uY),Fwr=r(\"unreachable regexp_body\"),Twr=r(C),Owr=r(C),Iwr=r(C),Awr=r(C),Nwr=r(\"unreachable jsxtext\"),Cwr=r(P3),Pwr=r(V2),Dwr=r(S3),Lwr=r(cv),Rwr=r(hH),jwr=r(b3),Gwr=r(\"{'}'}\"),Mwr=r(b3),Bwr=r(\"{'>'}\"),qwr=r(cv),Uwr=r(l1),Hwr=r(\"iexcl\"),Xwr=r(\"aelig\"),Ywr=r(\"Nu\"),Vwr=r(\"Eacute\"),zwr=r(\"Atilde\"),Kwr=r(\"'int'\"),Wwr=r(\"AElig\"),Jwr=r(\"Aacute\"),$wr=r(\"Acirc\"),Zwr=r(\"Agrave\"),Qwr=r(\"Alpha\"),rEr=r(\"Aring\"),eEr=[0,hY],nEr=[0,913],tEr=[0,rt],uEr=[0,nI],iEr=[0,HT],fEr=[0,vH],xEr=[0,8747],oEr=r(\"Auml\"),aEr=r(\"Beta\"),cEr=r(\"Ccedil\"),sEr=r(\"Chi\"),vEr=r(\"Dagger\"),lEr=r(\"Delta\"),bEr=r(\"ETH\"),pEr=[0,_H],mEr=[0,916],_Er=[0,8225],yEr=[0,935],hEr=[0,QH],dEr=[0,914],kEr=[0,XX],wEr=[0,xY],EEr=r(\"Icirc\"),SEr=r(\"Ecirc\"),gEr=r(\"Egrave\"),FEr=r(\"Epsilon\"),TEr=r(\"Eta\"),OEr=r(\"Euml\"),IEr=r(\"Gamma\"),AEr=r(\"Iacute\"),NEr=[0,VH],CEr=[0,915],PEr=[0,eV],DEr=[0,919],LEr=[0,917],REr=[0,NU],jEr=[0,nH],GEr=r(\"Igrave\"),MEr=r(\"Iota\"),BEr=r(\"Iuml\"),qEr=r(\"Kappa\"),UEr=r(\"Lambda\"),HEr=r(\"Mu\"),XEr=r(\"Ntilde\"),YEr=[0,Wg],VEr=[0,924],zEr=[0,923],KEr=[0,922],WEr=[0,AX],JEr=[0,921],$Er=[0,WX],ZEr=[0,TH],QEr=[0,sY],rSr=r(\"Sigma\"),eSr=r(\"Otilde\"),nSr=r(\"OElig\"),tSr=r(\"Oacute\"),uSr=r(\"Ocirc\"),iSr=r(\"Ograve\"),fSr=r(\"Omega\"),xSr=r(\"Omicron\"),oSr=r(\"Oslash\"),aSr=[0,y6],cSr=[0,927],sSr=[0,937],vSr=[0,A6],lSr=[0,yY],bSr=[0,yU],pSr=[0,338],mSr=r(\"Ouml\"),_Sr=r(\"Phi\"),ySr=r(\"Pi\"),hSr=r(\"Prime\"),dSr=r(\"Psi\"),kSr=r(\"Rho\"),wSr=r(\"Scaron\"),ESr=[0,352],SSr=[0,929],gSr=[0,936],FSr=[0,8243],TSr=[0,928],OSr=[0,934],ISr=[0,mT],ASr=[0,RX],NSr=r(\"Uuml\"),CSr=r(\"THORN\"),PSr=r(\"Tau\"),DSr=r(\"Theta\"),LSr=r(\"Uacute\"),RSr=r(\"Ucirc\"),jSr=r(\"Ugrave\"),GSr=r(\"Upsilon\"),MSr=[0,933],BSr=[0,cp],qSr=[0,FU],USr=[0,Cw],HSr=[0,920],XSr=[0,932],YSr=[0,FX],VSr=r(\"Xi\"),zSr=r(\"Yacute\"),KSr=r(\"Yuml\"),WSr=r(\"Zeta\"),JSr=r(\"aacute\"),$Sr=r(\"acirc\"),ZSr=r(\"acute\"),QSr=[0,sU],rgr=[0,rk],egr=[0,BO],ngr=[0,918],tgr=[0,376],ugr=[0,GX],igr=[0,926],fgr=[0,iA],xgr=[0,UX],ogr=[0,925],agr=r(\"delta\"),cgr=r(\"cap\"),sgr=r(\"aring\"),vgr=r(\"agrave\"),lgr=r(\"alefsym\"),bgr=r(\"alpha\"),pgr=r(\"amp\"),mgr=r(\"and\"),_gr=r(\"ang\"),ygr=r(\"apos\"),hgr=[0,39],dgr=[0,8736],kgr=[0,8743],wgr=[0,38],Egr=[0,945],Sgr=[0,8501],ggr=[0,hv],Fgr=r(\"asymp\"),Tgr=r(\"atilde\"),Ogr=r(\"auml\"),Igr=r(\"bdquo\"),Agr=r(\"beta\"),Ngr=r(\"brvbar\"),Cgr=r(\"bull\"),Pgr=[0,8226],Dgr=[0,DY],Lgr=[0,946],Rgr=[0,8222],jgr=[0,fV],Ggr=[0,JH],Mgr=[0,8776],Bgr=[0,bU],qgr=r(\"copy\"),Ugr=r(\"ccedil\"),Hgr=r(\"cedil\"),Xgr=r(\"cent\"),Ygr=r(\"chi\"),Vgr=r(\"circ\"),zgr=r(\"clubs\"),Kgr=r(\"cong\"),Wgr=[0,8773],Jgr=[0,9827],$gr=[0,rX],Zgr=[0,967],Qgr=[0,kh],rFr=[0,hk],eFr=[0,qX],nFr=r(\"crarr\"),tFr=r(\"cup\"),uFr=r(\"curren\"),iFr=r(\"dArr\"),fFr=r(\"dagger\"),xFr=r(\"darr\"),oFr=r(\"deg\"),aFr=[0,mV],cFr=[0,8595],sFr=[0,8224],vFr=[0,8659],lFr=[0,AF],bFr=[0,8746],pFr=[0,8629],mFr=[0,NX],_Fr=[0,8745],yFr=r(\"fnof\"),hFr=r(\"ensp\"),dFr=r(\"diams\"),kFr=r(\"divide\"),wFr=r(\"eacute\"),EFr=r(\"ecirc\"),SFr=r(\"egrave\"),gFr=r(v7),FFr=r(\"emsp\"),TFr=[0,8195],OFr=[0,8709],IFr=[0,ZF],AFr=[0,tH],NFr=[0,hT],CFr=[0,Dw],PFr=[0,9830],DFr=r(\"epsilon\"),LFr=r(\"equiv\"),RFr=r(\"eta\"),jFr=r(\"eth\"),GFr=r(\"euml\"),MFr=r(\"euro\"),BFr=r(\"exist\"),qFr=[0,8707],UFr=[0,8364],HFr=[0,JU],XFr=[0,s1],YFr=[0,951],VFr=[0,8801],zFr=[0,949],KFr=[0,8194],WFr=r(\"gt\"),JFr=r(\"forall\"),$Fr=r(\"frac12\"),ZFr=r(\"frac14\"),QFr=r(\"frac34\"),rTr=r(\"frasl\"),eTr=r(\"gamma\"),nTr=r(\"ge\"),tTr=[0,8805],uTr=[0,947],iTr=[0,8260],fTr=[0,OY],xTr=[0,iY],oTr=[0,fX],aTr=[0,8704],cTr=r(\"hArr\"),sTr=r(\"harr\"),vTr=r(\"hearts\"),lTr=r(\"hellip\"),bTr=r(\"iacute\"),pTr=r(\"icirc\"),mTr=[0,cH],_Tr=[0,BY],yTr=[0,8230],hTr=[0,9829],dTr=[0,8596],kTr=[0,8660],wTr=[0,62],ETr=[0,402],STr=[0,948],gTr=[0,jh],FTr=r(\"prime\"),TTr=r(\"ndash\"),OTr=r(\"le\"),ITr=r(\"kappa\"),ATr=r(\"igrave\"),NTr=r(\"image\"),CTr=r(\"infin\"),PTr=r(\"iota\"),DTr=r(\"iquest\"),LTr=r(\"isin\"),RTr=r(\"iuml\"),jTr=[0,i6],GTr=[0,8712],MTr=[0,lX],BTr=[0,953],qTr=[0,8734],UTr=[0,8465],HTr=[0,lO],XTr=r(\"lArr\"),YTr=r(\"lambda\"),VTr=r(\"lang\"),zTr=r(\"laquo\"),KTr=r(\"larr\"),WTr=r(\"lceil\"),JTr=r(\"ldquo\"),$Tr=[0,8220],ZTr=[0,8968],QTr=[0,8592],rOr=[0,pg],eOr=[0,10216],nOr=[0,955],tOr=[0,8656],uOr=[0,954],iOr=r(\"macr\"),fOr=r(\"lfloor\"),xOr=r(\"lowast\"),oOr=r(\"loz\"),aOr=r(\"lrm\"),cOr=r(\"lsaquo\"),sOr=r(\"lsquo\"),vOr=r(\"lt\"),lOr=[0,60],bOr=[0,8216],pOr=[0,8249],mOr=[0,vU],_Or=[0,9674],yOr=[0,8727],hOr=[0,8970],dOr=r(\"mdash\"),kOr=r(\"micro\"),wOr=r(\"middot\"),EOr=r(cY),SOr=r(\"mu\"),gOr=r(\"nabla\"),FOr=r(\"nbsp\"),TOr=[0,fY],OOr=[0,8711],IOr=[0,956],AOr=[0,8722],NOr=[0,lS],COr=[0,Ai],POr=[0,8212],DOr=[0,bX],LOr=[0,8804],ROr=r(\"or\"),jOr=r(\"oacute\"),GOr=r(\"ne\"),MOr=r(\"ni\"),BOr=r(\"not\"),qOr=r(\"notin\"),UOr=r(\"nsub\"),HOr=r(\"ntilde\"),XOr=r(\"nu\"),YOr=[0,957],VOr=[0,Vy],zOr=[0,8836],KOr=[0,8713],WOr=[0,LU],JOr=[0,8715],$Or=[0,8800],ZOr=r(\"ocirc\"),QOr=r(\"oelig\"),rIr=r(\"ograve\"),eIr=r(\"oline\"),nIr=r(\"omega\"),tIr=r(\"omicron\"),uIr=r(\"oplus\"),iIr=[0,8853],fIr=[0,959],xIr=[0,969],oIr=[0,8254],aIr=[0,ST],cIr=[0,339],sIr=[0,v8],vIr=[0,QU],lIr=r(\"part\"),bIr=r(\"ordf\"),pIr=r(\"ordm\"),mIr=r(\"oslash\"),_Ir=r(\"otilde\"),yIr=r(\"otimes\"),hIr=r(\"ouml\"),dIr=r(\"para\"),kIr=[0,Yg],wIr=[0,$2],EIr=[0,8855],SIr=[0,WY],gIr=[0,wt],FIr=[0,md],TIr=[0,qg],OIr=r(\"permil\"),IIr=r(\"perp\"),AIr=r(\"phi\"),NIr=r(\"pi\"),CIr=r(\"piv\"),PIr=r(\"plusmn\"),DIr=r(\"pound\"),LIr=[0,Ln],RIr=[0,uV],jIr=[0,982],GIr=[0,960],MIr=[0,966],BIr=[0,8869],qIr=[0,8240],UIr=[0,8706],HIr=[0,8744],XIr=[0,8211],YIr=r(\"sup1\"),VIr=r(\"rlm\"),zIr=r(\"raquo\"),KIr=r(\"prod\"),WIr=r(\"prop\"),JIr=r(\"psi\"),$Ir=r(\"quot\"),ZIr=r(\"rArr\"),QIr=r(\"radic\"),rAr=r(\"rang\"),eAr=[0,10217],nAr=[0,8730],tAr=[0,8658],uAr=[0,34],iAr=[0,968],fAr=[0,8733],xAr=[0,8719],oAr=r(\"rarr\"),aAr=r(\"rceil\"),cAr=r(\"rdquo\"),sAr=r(\"real\"),vAr=r(\"reg\"),lAr=r(\"rfloor\"),bAr=r(\"rho\"),pAr=[0,961],mAr=[0,8971],_Ar=[0,$U],yAr=[0,8476],hAr=[0,8221],dAr=[0,8969],kAr=[0,8594],wAr=[0,nw],EAr=r(\"sigma\"),SAr=r(\"rsaquo\"),gAr=r(\"rsquo\"),FAr=r(\"sbquo\"),TAr=r(\"scaron\"),OAr=r(\"sdot\"),IAr=r(\"sect\"),AAr=r(\"shy\"),NAr=[0,_Y],CAr=[0,NT],PAr=[0,8901],DAr=[0,353],LAr=[0,8218],RAr=[0,8217],jAr=[0,8250],GAr=r(\"sigmaf\"),MAr=r(\"sim\"),BAr=r(\"spades\"),qAr=r(\"sub\"),UAr=r(\"sube\"),HAr=r(\"sum\"),XAr=r(\"sup\"),YAr=[0,8835],VAr=[0,8721],zAr=[0,8838],KAr=[0,8834],WAr=[0,9824],JAr=[0,8764],$Ar=[0,962],ZAr=[0,963],QAr=[0,8207],rNr=r(\"uarr\"),eNr=r(\"thetasym\"),nNr=r(\"sup2\"),tNr=r(\"sup3\"),uNr=r(\"supe\"),iNr=r(\"szlig\"),fNr=r(\"tau\"),xNr=r(\"there4\"),oNr=r(\"theta\"),aNr=[0,952],cNr=[0,8756],sNr=[0,964],vNr=[0,y8],lNr=[0,8839],bNr=[0,RY],pNr=[0,gO],mNr=r(\"thinsp\"),_Nr=r(\"thorn\"),yNr=r(\"tilde\"),hNr=r(\"times\"),dNr=r(\"trade\"),kNr=r(\"uArr\"),wNr=r(\"uacute\"),ENr=[0,nl],SNr=[0,8657],gNr=[0,8482],FNr=[0,xT],TNr=[0,732],ONr=[0,gv],INr=[0,8201],ANr=[0,977],NNr=r(\"xi\"),CNr=r(\"ucirc\"),PNr=r(\"ugrave\"),DNr=r(\"uml\"),LNr=r(\"upsih\"),RNr=r(\"upsilon\"),jNr=r(\"uuml\"),GNr=r(\"weierp\"),MNr=[0,iU],BNr=[0,Y2],qNr=[0,965],UNr=[0,978],HNr=[0,IY],XNr=[0,249],YNr=[0,251],VNr=r(\"yacute\"),zNr=r(\"yen\"),KNr=r(\"yuml\"),WNr=r(\"zeta\"),JNr=r(\"zwj\"),$Nr=r(\"zwnj\"),ZNr=[0,kY],QNr=[0,8205],rCr=[0,950],eCr=[0,gw],nCr=[0,$X],tCr=[0,nd],uCr=[0,958],iCr=[0,8593],fCr=[0,gU],xCr=[0,8242],oCr=[0,XU],aCr=r(VY),cCr=r(jd),sCr=r(\"unreachable jsx_child\"),vCr=r(\"unreachable type_token wholenumber\"),lCr=r(\"unreachable type_token wholebigint\"),bCr=r(\"unreachable type_token floatbigint\"),pCr=r(\"unreachable type_token scinumber\"),mCr=r(\"unreachable type_token scibigint\"),_Cr=r(\"unreachable type_token hexnumber\"),yCr=r(\"unreachable type_token hexbigint\"),hCr=r(\"unreachable type_token legacyoctnumber\"),dCr=r(\"unreachable type_token octnumber\"),kCr=r(\"unreachable type_token octbigint\"),wCr=r(\"unreachable type_token binnumber\"),ECr=r(\"unreachable type_token bigbigint\"),SCr=r(\"unreachable type_token\"),gCr=r(o1),FCr=r(o1),TCr=r(kU),OCr=r(H8),ICr=r(n6),ACr=r(x1),NCr=r(O6),CCr=r(O2),PCr=r(v7),DCr=r(P7),LCr=r(Ci),RCr=r(e7),jCr=[9,1],GCr=[9,0],MCr=r(fs),BCr=r(dv),qCr=r(nu),UCr=r(Tv),HCr=r(K4),XCr=r(Gi),YCr=r(rs),VCr=r(es),zCr=r(\"unreachable template_tail\"),KCr=r(b3),WCr=[0,r(C),r(C),r(C)],JCr=r(\"unreachable jsx_tag\"),$Cr=r(P3),ZCr=r(\"unreachable regexp\"),QCr=r(\"unreachable token wholenumber\"),rPr=r(\"unreachable token wholebigint\"),ePr=r(\"unreachable token floatbigint\"),nPr=r(\"unreachable token scinumber\"),tPr=r(\"unreachable token scibigint\"),uPr=r(\"unreachable token hexnumber\"),iPr=r(\"unreachable token hexbigint\"),fPr=r(\"unreachable token legacyoctnumber\"),xPr=r(\"unreachable token legacynonoctnumber\"),oPr=r(\"unreachable token octnumber\"),aPr=r(\"unreachable token octbigint\"),cPr=r(\"unreachable token bignumber\"),sPr=r(\"unreachable token bigint\"),vPr=r(\"unreachable token\"),lPr=r(o1),bPr=r(o1),pPr=r(kU),mPr=[6,r(\"#!\")],_Pr=r(\"expected ?\"),yPr=r(j2),hPr=r(_4),dPr=r(D2),kPr=r(gs),wPr=r(dx),EPr=r(A7),SPr=r(d6),gPr=r(o6),FPr=r(q2),TPr=r(N7),OPr=r(I7),IPr=r(T2),APr=r(_i),NPr=r(J2),CPr=r(np),PPr=r(U4),DPr=r(b8),LPr=r(_3),RPr=r(P7),jPr=r(Ci),GPr=r(q8),MPr=r(M2),BPr=r(A3),qPr=r(ws),UPr=r(Uu),HPr=r(R2),XPr=r(yv),YPr=r(y4),VPr=r(e7),zPr=r(G2),KPr=r(u1),WPr=r(fs),JPr=r(CS),$Pr=r(eh),ZPr=r(k4),QPr=r(a6),rDr=r(E6),eDr=r(Ju),nDr=r(nu),tDr=r(rs),uDr=r(D7),iDr=r(i1),fDr=r(F7),xDr=r(Gi),oDr=r(d4),aDr=r(Jc),cDr=r(U2),sDr=r(es),vDr=r(K6),lDr=r(C8),bDr=r(Eu),pDr=r(\"unreachable string_escape\"),mDr=r(Zu),_Dr=r(H2),yDr=r(H2),hDr=r(Zu),dDr=r(dX),kDr=r(oY),wDr=r(\"n\"),EDr=r(\"r\"),SDr=r(\"t\"),gDr=r(pV),FDr=r(H2),TDr=r(l1),ODr=r(l1),IDr=r(\"unreachable id_char\"),ADr=r(l1),NDr=r(l1),CDr=r(\"Invalid (lexer) bigint \"),PDr=r(\"Invalid (lexer) bigint binary/octal \"),DDr=r(H2),LDr=r(pH),RDr=r(oU),jDr=r(Nh),GDr=[10,r(\"token ILLEGAL\")],MDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\"),BDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),qDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),UDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),HDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),XDr=r(\"\u0001\\0\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),YDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),VDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\"),zDr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),KDr=r(\"\u0001\u0002\\0\u0003\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\"),WDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),JDr=r(\"\u0001\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),$Dr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\"),ZDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),QDr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0006\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\\x07\"),rLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),eLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),nLr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0006\u0006\u0006\u0006\u0006\u0006\u0006\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\b\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\n\u0002\u0002\u0002\\v\u0002\\f\\r\u000e\u0002\u000f`),tLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0003\u0002\u0002\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),uLr=r(\"\u0001\\0\u0001\\0\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),iLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0002\"),fLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),xLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0003\"),oLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\"),aLr=r(\"\u0001\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),cLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0002\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),sLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),vLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),lLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),bLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),pLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0005\\0\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),mLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),_Lr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),yLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0004\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),hLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),dLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\u0001\u0005\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\x07\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\b\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0005\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\t\\x07\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\b\u0001\u0001\"),kLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),wLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),ELr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),SLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0004\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),gLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),FLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),TLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),OLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),ILr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0006\\x07\\b\t\n\\v\\x07\\f\\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0015\u0015\u0015\u0015\u0015\u0015\u0015\u0015\u0016\u0017\u0018\u0019\u001a\\x1B\u001c\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u001d\u001e\u001f \t!\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"#$%\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\u0002\t\t\u0002\u0002\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\t\t\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\u0002\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\t\u0002\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\t\u0002\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\u0002\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\t\u0002\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\u0002\t\t\t\t\u0002\u0002\u0002\t\t\u0002\t\u0002\t\t\u0002\u0002\u0002\t\t\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\t\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\u0002\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\u0002\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\u0002\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0003\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\u0002\t\t\t\t\t\t\u0002\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\u0002\t\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\t\t\t\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002`),ALr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),NLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\"),CLr=r(\"\u0001\\0\\0\\0\\0\u0002\"),PLr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0006\u0002\\x07\\b\t\u0006\n\\v\\f\\r\u000e\u000f\u0010\u0011\u0012\u0013\u0013\u0013\u0013\u0013\u0013\u0013\u0013\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u001a\\x1B\u001c\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u001d\u001e\u001f\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0003\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002`),DLr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0006\u0002\\x07\u0002\u0002\u0006\u0002\u0002\u0002\u0002\u0002\u0002\\b\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\n\u0002\\v\\f\\r\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u000e\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u000f\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0003\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002`),LLr=r(\"\u0001\\0\\0\u0002\"),RLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\"),jLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\"),GLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\\x07\"),MLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),BLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),qLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\\0\\0\\0\\0\\0\u0002\"),ULr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),HLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0003\"),XLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),YLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),VLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\u0002\"),zLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\u0002\u0002\u0002\\x07\"),KLr=r(\"\u0001\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),WLr=r(\"\u0001\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),JLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),$Lr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\"),ZLr=r(\"\u0001\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),QLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0001\u0001\u0001\u0001\u0001\u0001\"),rRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0002\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\"),eRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),nRr=r(\"\u0001\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),tRr=r(\"\u0001\\0\\0\\0\\0\\0\\0\u0002\\0\u0002\\0\\0\u0003\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),uRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0002\"),iRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),fRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\"),xRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0004\u0002\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),oRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0004\u0002\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),aRr=r(\"\u0001\\0\u0002\"),cRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),sRr=r(\"\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),vRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),lRr=r(\"\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),bRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),pRr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),mRr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),_Rr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),yRr=[0,[11,r(\"the identifier `\"),[2,0,[12,96,0]]],r(\"the identifier `%s`\")],hRr=[0,1],dRr=[0,1],kRr=r(\"@flow\"),wRr=r(yX),ERr=r(yX),SRr=[0,[11,r(\"an identifier. When exporting a \"),[2,0,[11,r(\" as a named export, you must specify a \"),[2,0,[11,r(\" name. Did you mean `export default \"),[2,0,[11,r(\" ...`?\"),0]]]]]]],r(\"an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?\")],gRr=r(g3),FRr=r(\"Peeking current location when not available\"),TRr=r(e7),ORr=r(bv),IRr=r(n6),ARr=r(x1),NRr=r(O6),CRr=r(O2),PRr=r(v7),DRr=r(P7),LRr=r(Ci),RRr=r(H8),jRr=r(fs),GRr=r(dv),MRr=r(nu),BRr=r(Tv),qRr=r(Gi),URr=r(rs),HRr=r(es),XRr=r(Ci),YRr=r(fs),VRr=r(Gi),zRr=r(Ci),KRr=r(fs),WRr=r(Gi),JRr=r(C2),$Rr=r(\"eval\"),ZRr=r(ws),QRr=r(e7),rjr=r(y4),ejr=r(k4),njr=r(a6),tjr=r(E6),ujr=r(nu),ijr=r(Eu),fjr=r(b8),xjr=r(A3),ojr=r(_i),ajr=r(dx),cjr=r(A7),sjr=r(d6),vjr=r(o6),ljr=r(q2),bjr=r(D2),pjr=r(N7),mjr=r(I7),_jr=r(J2),yjr=r(_4),hjr=r(U4),djr=r(_3),kjr=r(P7),wjr=r(q8),Ejr=r(np),Sjr=r(M2),gjr=r(F7),Fjr=r(Uu),Tjr=r(R2),Ojr=r(j2),Ijr=r(u1),Ajr=r(Ju),Njr=r(yv),Cjr=r(D7),Pjr=r(i1),Djr=r(d4),Ljr=r(rs),Rjr=r(U2),jjr=r(es),Gjr=r(K6),Mjr=r(C8),Bjr=r(Eu),qjr=[0,r(\"src/parser/parser_env.ml\"),343,9],Ujr=r(\"Internal Error: Tried to add_declared_private with outside of class scope.\"),Hjr=r(\"Internal Error: `exit_class` called before a matching `enter_class`\"),Xjr=r(C),Yjr=[0,0,0],Vjr=[0,0,0],zjr=r(\"Parser_env.Try.Rollback\"),Kjr=r(C),Wjr=r(C),Jjr=[0,r(Eu),r(Yx),r(to),r(dU),r(gY),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(iH),r(_o),r(uH),r(qU),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],$jr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],Zjr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],Qjr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(gY),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(uH),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(qU),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(iH),r(Rx),r(ux),r(Ef),r(qf),r(dU),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],rGr=r(Y4),eGr=r(I2),nGr=[0,[11,r(\"Failure while looking up \"),[2,0,[11,r(\". Index: \"),[4,0,0,0,[11,r(\". Length: \"),[4,0,0,0,[12,46,0]]]]]]],r(\"Failure while looking up %s. Index: %d. Length: %d.\")],tGr=[0,0,0,0],uGr=r(\"Offset_utils.Offset_lookup_failed\"),iGr=r(KY),fGr=r(hE),xGr=r(CY),oGr=r(VX),aGr=r(VX),cGr=r(CY),sGr=r(Jc),vGr=r(Xr),lGr=r(Wn),bGr=r(\"Program\"),pGr=r(Ud),mGr=r(\"BreakStatement\"),_Gr=r(Ud),yGr=r(\"ContinueStatement\"),hGr=r(\"DebuggerStatement\"),dGr=r(cc),kGr=r(\"DeclareExportAllDeclaration\"),wGr=r(cc),EGr=r(Cv),SGr=r(P2),gGr=r(_i),FGr=r(\"DeclareExportDeclaration\"),TGr=r($c),OGr=r(Wn),IGr=r(mt),AGr=r(\"DeclareModule\"),NGr=r(C7),CGr=r(\"DeclareModuleExports\"),PGr=r(Ss),DGr=r(Wn),LGr=r(\"DoWhileStatement\"),RGr=r(\"EmptyStatement\"),jGr=r(bO),GGr=r(P2),MGr=r(\"ExportDefaultDeclaration\"),BGr=r(bO),qGr=r(I4),UGr=r(cc),HGr=r(\"ExportAllDeclaration\"),XGr=r(bO),YGr=r(cc),VGr=r(Cv),zGr=r(P2),KGr=r(\"ExportNamedDeclaration\"),WGr=r(Zi),JGr=r(Nu),$Gr=r(\"ExpressionStatement\"),ZGr=r(Wn),QGr=r(fU),rMr=r(Ss),eMr=r(ji),nMr=r(\"ForStatement\"),tMr=r(R8),uMr=r(Wn),iMr=r(Cu),fMr=r(bi),xMr=r(\"ForInStatement\"),oMr=r(dx),aMr=r(Wn),cMr=r(Cu),sMr=r(bi),vMr=r(\"ForOfStatement\"),lMr=r(m3),bMr=r(kv),pMr=r(Ss),mMr=r(\"IfStatement\"),_Mr=r(Jc),yMr=r(rs),hMr=r(Bn),dMr=r(cX),kMr=r(cc),wMr=r(Cv),EMr=r(\"ImportDeclaration\"),SMr=r(Wn),gMr=r(Ud),FMr=r(\"LabeledStatement\"),TMr=r(l7),OMr=r(\"ReturnStatement\"),IMr=r(QX),AMr=r(\"discriminant\"),NMr=r(\"SwitchStatement\"),CMr=r(l7),PMr=r(\"ThrowStatement\"),DMr=r(CH),LMr=r(MU),RMr=r(Tn),jMr=r(\"TryStatement\"),GMr=r(Wn),MMr=r(Ss),BMr=r(\"WhileStatement\"),qMr=r(Wn),UMr=r(xk),HMr=r(\"WithStatement\"),XMr=r(PH),YMr=r(\"ArrayExpression\"),VMr=r(O7),zMr=r(p6),KMr=r(Nu),WMr=r(r7),JMr=r(G7),$Mr=r(gs),ZMr=r(Wn),QMr=r(Dt),rBr=r(mt),eBr=r(\"ArrowFunctionExpression\"),nBr=r(XO),tBr=r(Cu),uBr=r(bi),iBr=r(ul),fBr=r(\"AssignmentExpression\"),xBr=r(Cu),oBr=r(bi),aBr=r(ul),cBr=r(\"BinaryExpression\"),sBr=r(\"CallExpression\"),vBr=r(T4),lBr=r(aY),bBr=r(\"ComprehensionExpression\"),pBr=r(m3),mBr=r(kv),_Br=r(Ss),yBr=r(\"ConditionalExpression\"),hBr=r(T4),dBr=r(aY),kBr=r(\"GeneratorExpression\"),wBr=r(cc),EBr=r(\"ImportExpression\"),SBr=r(zH),gBr=r(MX),FBr=r(Ke),TBr=r(Cu),OBr=r(bi),IBr=r(ul),ABr=r(\"LogicalExpression\"),NBr=r(\"MemberExpression\"),CBr=r(Iv),PBr=r(el),DBr=r(\"MetaProperty\"),LBr=r(C2),RBr=r(TX),jBr=r(jH),GBr=r(\"NewExpression\"),MBr=r(H4),BBr=r(\"ObjectExpression\"),qBr=r(qu),UBr=r(\"OptionalCallExpression\"),HBr=r(qu),XBr=r(\"OptionalMemberExpression\"),YBr=r(Mg),VBr=r(\"SequenceExpression\"),zBr=r(\"Super\"),KBr=r(\"ThisExpression\"),WBr=r(C7),JBr=r(Nu),$Br=r(\"TypeCastExpression\"),ZBr=r(l7),QBr=r(\"AwaitExpression\"),rqr=r(Fa),eqr=r(xs),nqr=r(Kt),tqr=r(ZY),uqr=r(rs),iqr=r(es),fqr=r(J2),xqr=r(\"matched above\"),oqr=r(l7),aqr=r(qE),cqr=r(ul),sqr=r(\"UnaryExpression\"),vqr=r(oV),lqr=r(sH),bqr=r(qE),pqr=r(l7),mqr=r(ul),_qr=r(\"UpdateExpression\"),yqr=r(lY),hqr=r(l7),dqr=r(\"YieldExpression\"),kqr=r(\"Unexpected FunctionDeclaration with BodyExpression\"),wqr=r(O7),Eqr=r(p6),Sqr=r(Nu),gqr=r(r7),Fqr=r(G7),Tqr=r(gs),Oqr=r(Wn),Iqr=r(Dt),Aqr=r(mt),Nqr=r(\"FunctionDeclaration\"),Cqr=r(\"Unexpected FunctionExpression with BodyExpression\"),Pqr=r(O7),Dqr=r(p6),Lqr=r(Nu),Rqr=r(r7),jqr=r(G7),Gqr=r(gs),Mqr=r(Wn),Bqr=r(Dt),qqr=r(mt),Uqr=r(\"FunctionExpression\"),Hqr=r(qu),Xqr=r(C7),Yqr=r(ui),Vqr=r(tn),zqr=r(qu),Kqr=r(C7),Wqr=r(ui),Jqr=r(\"PrivateIdentifier\"),$qr=r(qu),Zqr=r(C7),Qqr=r(ui),rUr=r(tn),eUr=r(kv),nUr=r(Ss),tUr=r(\"SwitchCase\"),uUr=r(Wn),iUr=r(\"param\"),fUr=r(\"CatchClause\"),xUr=r(Wn),oUr=r(\"BlockStatement\"),aUr=r(mt),cUr=r(\"DeclareVariable\"),sUr=r(r7),vUr=r(mt),lUr=r(\"DeclareFunction\"),bUr=r(Hy),pUr=r(ws),mUr=r(P7),_Ur=r(Wn),yUr=r(O7),hUr=r(mt),dUr=r(\"DeclareClass\"),kUr=r(P7),wUr=r(Wn),EUr=r(O7),SUr=r(mt),gUr=r(\"DeclareInterface\"),FUr=r(Bn),TUr=r(Jc),OUr=r(I4),IUr=r(\"ExportNamespaceSpecifier\"),AUr=r(Cu),NUr=r(O7),CUr=r(mt),PUr=r(\"DeclareTypeAlias\"),DUr=r(Cu),LUr=r(O7),RUr=r(mt),jUr=r(\"TypeAlias\"),GUr=r(\"DeclareOpaqueType\"),MUr=r(\"OpaqueType\"),BUr=r(SX),qUr=r(mX),UUr=r(O7),HUr=r(mt),XUr=r(\"ClassDeclaration\"),YUr=r(\"ClassExpression\"),VUr=r(j_),zUr=r(ws),KUr=r(\"superTypeParameters\"),WUr=r(\"superClass\"),JUr=r(O7),$Ur=r(Wn),ZUr=r(mt),QUr=r(Nu),rHr=r(\"Decorator\"),eHr=r(O7),nHr=r(mt),tHr=r(\"ClassImplements\"),uHr=r(Wn),iHr=r(\"ClassBody\"),fHr=r(wv),xHr=r(F2),oHr=r(n1),aHr=r(lv),cHr=r(j_),sHr=r(pv),vHr=r(nu),lHr=r($c),bHr=r(Bn),pHr=r(ii),mHr=r(\"MethodDefinition\"),_Hr=r(T2),yHr=r(cu),hHr=r(nu),dHr=r(pv),kHr=r(C7),wHr=r(Bn),EHr=r(ii),SHr=r(xV),gHr=r(\"Internal Error: Private name found in class prop\"),FHr=r(T2),THr=r(cu),OHr=r(nu),IHr=r(pv),AHr=r(C7),NHr=r(Bn),CHr=r(ii),PHr=r(xV),DHr=r(mt),LHr=r(OX),RHr=r(ji),jHr=r(mt),GHr=r(\"EnumStringMember\"),MHr=r(mt),BHr=r(OX),qHr=r(ji),UHr=r(mt),HHr=r(\"EnumNumberMember\"),XHr=r(ji),YHr=r(mt),VHr=r(\"EnumBooleanMember\"),zHr=r(T8),KHr=r(DT),WHr=r(A4),JHr=r(\"EnumBooleanBody\"),$Hr=r(T8),ZHr=r(DT),QHr=r(A4),rXr=r(\"EnumNumberBody\"),eXr=r(T8),nXr=r(DT),tXr=r(A4),uXr=r(\"EnumStringBody\"),iXr=r(T8),fXr=r(A4),xXr=r(\"EnumSymbolBody\"),oXr=r(Wn),aXr=r(mt),cXr=r(\"EnumDeclaration\"),sXr=r(P7),vXr=r(Wn),lXr=r(O7),bXr=r(mt),pXr=r(\"InterfaceDeclaration\"),mXr=r(O7),_Xr=r(mt),yXr=r(\"InterfaceExtends\"),hXr=r(C7),dXr=r(H4),kXr=r(\"ObjectPattern\"),wXr=r(C7),EXr=r(PH),SXr=r(\"ArrayPattern\"),gXr=r(Cu),FXr=r(bi),TXr=r(DF),OXr=r(C7),IXr=r(ui),AXr=r(tn),NXr=r(l7),CXr=r(iX),PXr=r(l7),DXr=r(iX),LXr=r(Cu),RXr=r(bi),jXr=r(DF),GXr=r(ji),MXr=r(ji),BXr=r(n1),qXr=r(lv),UXr=r(aH),HXr=r(pv),XXr=r(f6),YXr=r(F2),VXr=r($c),zXr=r(Bn),KXr=r(ii),WXr=r(_U),JXr=r(l7),$Xr=r(\"SpreadProperty\"),ZXr=r(Cu),QXr=r(bi),rYr=r(DF),eYr=r(pv),nYr=r(f6),tYr=r(F2),uYr=r($c),iYr=r(Bn),fYr=r(ii),xYr=r(_U),oYr=r(l7),aYr=r(\"SpreadElement\"),cYr=r(R8),sYr=r(Cu),vYr=r(bi),lYr=r(\"ComprehensionBlock\"),bYr=r(\"We should not create Literal nodes for bigints\"),pYr=r(jX),mYr=r(mi),_Yr=r(\"regex\"),yYr=r(c7),hYr=r(Bn),dYr=r(c7),kYr=r(Bn),wYr=r(H6),EYr=r(c7),SYr=r(Bn),gYr=r(H6),FYr=r(x1),TYr=r(Bn),OYr=r(\"BigIntLiteral\"),IYr=r(c7),AYr=r(Bn),NYr=r(H6),CYr=r(Gi),PYr=r(Ci),DYr=r(c7),LYr=r(Bn),RYr=r(H6),jYr=r(Mg),GYr=r(\"quasis\"),MYr=r(\"TemplateLiteral\"),BYr=r(PY),qYr=r(c7),UYr=r(aU),HYr=r(Bn),XYr=r(\"TemplateElement\"),YYr=r(EY),VYr=r(\"tag\"),zYr=r(\"TaggedTemplateExpression\"),KYr=r(U2),WYr=r(G2),JYr=r(D2),$Yr=r($c),ZYr=r(\"declarations\"),QYr=r(\"VariableDeclaration\"),rVr=r(ji),eVr=r(mt),nVr=r(\"VariableDeclarator\"),tVr=r($c),uVr=r(\"Variance\"),iVr=r(\"AnyTypeAnnotation\"),fVr=r(\"MixedTypeAnnotation\"),xVr=r(\"EmptyTypeAnnotation\"),oVr=r(\"VoidTypeAnnotation\"),aVr=r(\"NullLiteralTypeAnnotation\"),cVr=r(\"SymbolTypeAnnotation\"),sVr=r(\"NumberTypeAnnotation\"),vVr=r(\"BigIntTypeAnnotation\"),lVr=r(\"StringTypeAnnotation\"),bVr=r(\"BooleanTypeAnnotation\"),pVr=r(C7),mVr=r(\"NullableTypeAnnotation\"),_Vr=r(O7),yVr=r(xd),hVr=r(p6),dVr=r(i1),kVr=r(Dt),wVr=r(\"FunctionTypeAnnotation\"),EVr=r(qu),SVr=r(C7),gVr=r(ui),FVr=r(RH),TVr=r(qu),OVr=r(C7),IVr=r(ui),AVr=r(RH),NVr=[0,0,0,0,0],CVr=r(\"internalSlots\"),PVr=r(\"callProperties\"),DVr=r(\"indexers\"),LVr=r(H4),RVr=r(\"exact\"),jVr=r(GY),GVr=r(\"ObjectTypeAnnotation\"),MVr=r(aH),BVr=r(\"There should not be computed object type property keys\"),qVr=r(ji),UVr=r(n1),HVr=r(lv),XVr=r($c),YVr=r(cu),VVr=r(X3),zVr=r(nu),KVr=r(qu),WVr=r(F2),JVr=r(Bn),$Vr=r(ii),ZVr=r(\"ObjectTypeProperty\"),QVr=r(l7),rzr=r(\"ObjectTypeSpreadProperty\"),ezr=r(cu),nzr=r(nu),tzr=r(Bn),uzr=r(ii),izr=r(mt),fzr=r(\"ObjectTypeIndexer\"),xzr=r(nu),ozr=r(Bn),azr=r(\"ObjectTypeCallProperty\"),czr=r(Bn),szr=r(F2),vzr=r(nu),lzr=r(qu),bzr=r(mt),pzr=r(\"ObjectTypeInternalSlot\"),mzr=r(Wn),_zr=r(P7),yzr=r(\"InterfaceTypeAnnotation\"),hzr=r(\"elementType\"),dzr=r(\"ArrayTypeAnnotation\"),kzr=r(mt),wzr=r(eY),Ezr=r(\"QualifiedTypeIdentifier\"),Szr=r(O7),gzr=r(mt),Fzr=r(\"GenericTypeAnnotation\"),Tzr=r(\"indexType\"),Ozr=r(\"objectType\"),Izr=r(\"IndexedAccessType\"),Azr=r(qu),Nzr=r(\"OptionalIndexedAccessType\"),Czr=r($6),Pzr=r(\"UnionTypeAnnotation\"),Dzr=r($6),Lzr=r(\"IntersectionTypeAnnotation\"),Rzr=r(l7),jzr=r(\"TypeofTypeAnnotation\"),Gzr=r(mt),Mzr=r(eY),Bzr=r(\"QualifiedTypeofIdentifier\"),qzr=r($6),Uzr=r(\"TupleTypeAnnotation\"),Hzr=r(c7),Xzr=r(Bn),Yzr=r(\"StringLiteralTypeAnnotation\"),Vzr=r(c7),zzr=r(Bn),Kzr=r(\"NumberLiteralTypeAnnotation\"),Wzr=r(c7),Jzr=r(Bn),$zr=r(\"BigIntLiteralTypeAnnotation\"),Zzr=r(Gi),Qzr=r(Ci),rKr=r(c7),eKr=r(Bn),nKr=r(\"BooleanLiteralTypeAnnotation\"),tKr=r(\"ExistsTypeAnnotation\"),uKr=r(C7),iKr=r(\"TypeAnnotation\"),fKr=r(Dt),xKr=r(\"TypeParameterDeclaration\"),oKr=r(_i),aKr=r(cu),cKr=r(DU),sKr=r(ui),vKr=r(\"TypeParameter\"),lKr=r(Dt),bKr=r(gH),pKr=r(Dt),mKr=r(gH),_Kr=r(bv),yKr=r(Ve),hKr=r(\"closingElement\"),dKr=r(\"openingElement\"),kKr=r(\"JSXElement\"),wKr=r(\"closingFragment\"),EKr=r(Ve),SKr=r(\"openingFragment\"),gKr=r(\"JSXFragment\"),FKr=r(\"selfClosing\"),TKr=r(mY),OKr=r(ui),IKr=r(\"JSXOpeningElement\"),AKr=r(\"JSXOpeningFragment\"),NKr=r(ui),CKr=r(\"JSXClosingElement\"),PKr=r(\"JSXClosingFragment\"),DKr=r(Bn),LKr=r(ui),RKr=r(\"JSXAttribute\"),jKr=r(l7),GKr=r(\"JSXSpreadAttribute\"),MKr=r(\"JSXEmptyExpression\"),BKr=r(Nu),qKr=r(\"JSXExpressionContainer\"),UKr=r(Nu),HKr=r(\"JSXSpreadChild\"),XKr=r(c7),YKr=r(Bn),VKr=r(\"JSXText\"),zKr=r(Iv),KKr=r(xk),WKr=r(\"JSXMemberExpression\"),JKr=r(ui),$Kr=r(\"namespace\"),ZKr=r(\"JSXNamespacedName\"),QKr=r(ui),rWr=r(\"JSXIdentifier\"),eWr=r(I4),nWr=r(B2),tWr=r(\"ExportSpecifier\"),uWr=r(B2),iWr=r(\"ImportDefaultSpecifier\"),fWr=r(B2),xWr=r(\"ImportNamespaceSpecifier\"),oWr=r(cX),aWr=r(B2),cWr=r(\"imported\"),sWr=r(\"ImportSpecifier\"),vWr=r(\"Line\"),lWr=r(\"Block\"),bWr=r(Bn),pWr=r(Bn),mWr=r(\"DeclaredPredicate\"),_Wr=r(\"InferredPredicate\"),yWr=r(C2),hWr=r(TX),dWr=r(jH),kWr=r(pv),wWr=r(Iv),EWr=r(xk),SWr=r(\"message\"),gWr=r(hE),FWr=r(HH),TWr=r(g7),OWr=r(cc),IWr=r(I2),AWr=r(Y4),NWr=[0,[3,0,0],r(Vt)],CWr=r(M2),PWr=r(A3),DWr=r(R2),LWr=r(j2),RWr=r(Ju),jWr=r(D7),GWr=r(i1),MWr=r(F7),BWr=r(d4),qWr=r(U2),UWr=r(K6),HWr=r(C8),XWr=r(D2),YWr=r(G2),VWr=r(fs),zWr=r(Ci),KWr=r(Gi),WWr=r(A7),JWr=r(d6),$Wr=r(o6),ZWr=r(N7),QWr=r(_i),rJr=r(_4),eJr=r(q8),nJr=r(np),tJr=r(q2),uJr=r(P7),iJr=r(nu),fJr=r(U4),xJr=r(u1),oJr=r(J2),aJr=r(rs),cJr=r(es),sJr=r(b8),vJr=r(_3),lJr=r(Uu),bJr=r(yv),pJr=r(ws),mJr=r(e7),_Jr=r(y4),yJr=r(k4),hJr=r(a6),dJr=r(E6),kJr=r(Eu),wJr=r(I7),EJr=r(T2),SJr=r(Jc),gJr=r(eh),FJr=r(CS),TJr=r(gs),OJr=r(dx),IJr=r(n6),AJr=r(H8),NJr=r(v7),CJr=r(dv),PJr=r(x1),DJr=r(Tv),LJr=r(es),RJr=r(K4),jJr=r(O2),GJr=r(O6),MJr=[0,r(g3)],BJr=r(C),qJr=[7,0],UJr=r(C),HJr=[0,1],XJr=[0,2],YJr=[0,3],VJr=[0,0],zJr=[0,0],KJr=[0,0,0,0,0],WJr=[0,r(vv),906,6],JJr=[0,r(vv),ZX,6],$Jr=[0,0],ZJr=[0,r(vv),1012,8],QJr=r(X3),r$r=[0,r(vv),1029,8],e$r=r(\"Can not have both `static` and `proto`\"),n$r=r(nu),t$r=r(X3),u$r=r(n1),i$r=r(lv),f$r=r(n1),x$r=r(wv),o$r=r(oH),a$r=[0,0,0,0],c$r=[0,[0,0,0,0,0]],s$r=r(i1),v$r=[0,r(\"a type\")],l$r=[0,0],b$r=[0,0],p$r=[14,1],m$r=[14,0],_$r=[0,r(vv),EH,15],y$r=[0,r(vv),L7,15],h$r=[0,44],d$r=[0,44],k$r=r(M2),w$r=[0,r(C),0],E$r=[0,0,0],S$r=[0,0,0],g$r=[0,0,0],F$r=[0,41],T$r=r(Qu),O$r=r(Qu),I$r=[0,r(\"a regular expression\")],A$r=r(C),N$r=r(C),C$r=r(C),P$r=[0,r(\"src/parser/expression_parser.ml\"),CU,17],D$r=[0,r(\"a template literal part\")],L$r=[0,[0,r(C),r(C)],1],R$r=r(fs),j$r=r(fs),G$r=r(Gi),M$r=r(Ci),B$r=r(\"Invalid bigint \"),q$r=r(\"Invalid bigint binary/octal \"),U$r=r(H2),H$r=r(pH),X$r=r(Nh),Y$r=r(Nh),V$r=r(oU),z$r=[0,44],K$r=[0,1],W$r=[0,1],J$r=[0,1],$$r=[0,1],Z$r=[0,0],Q$r=r(bv),rZr=r(bv),eZr=r(u1),nZr=r(gS),tZr=[0,r(\"the identifier `target`\")],uZr=[0,0],iZr=r(Uu),fZr=r(el),xZr=r(el),oZr=r(yv),aZr=[0,0],cZr=[0,r(\"either a call or access of `super`\")],sZr=r(yv),vZr=[0,0],lZr=[0,1],bZr=[0,0],pZr=[0,1],mZr=[0,0],_Zr=[0,1],yZr=[0,0],hZr=[0,2],dZr=[0,3],kZr=[0,7],wZr=[0,6],EZr=[0,4],SZr=[0,5],gZr=[0,[0,17,[0,2]]],FZr=[0,[0,18,[0,3]]],TZr=[0,[0,19,[0,4]]],OZr=[0,[0,0,[0,5]]],IZr=[0,[0,1,[0,5]]],AZr=[0,[0,2,[0,5]]],NZr=[0,[0,3,[0,5]]],CZr=[0,[0,5,[0,6]]],PZr=[0,[0,7,[0,6]]],DZr=[0,[0,4,[0,6]]],LZr=[0,[0,6,[0,6]]],RZr=[0,[0,8,[0,7]]],jZr=[0,[0,9,[0,7]]],GZr=[0,[0,10,[0,7]]],MZr=[0,[0,11,[0,8]]],BZr=[0,[0,12,[0,8]]],qZr=[0,[0,15,[0,9]]],UZr=[0,[0,13,[0,9]]],HZr=[0,[0,14,[1,10]]],XZr=[0,[0,16,[0,9]]],YZr=[0,[0,21,[0,6]]],VZr=[0,[0,20,[0,6]]],zZr=[23,r(Ke)],KZr=[0,[0,8]],WZr=[0,[0,7]],JZr=[0,[0,6]],$Zr=[0,[0,10]],ZZr=[0,[0,9]],QZr=[0,[0,11]],rQr=[0,[0,5]],eQr=[0,[0,4]],nQr=[0,[0,2]],tQr=[0,[0,3]],uQr=[0,[0,1]],iQr=[0,[0,0]],fQr=[0,[0,12]],xQr=[0,[0,13]],oQr=[0,[0,14]],aQr=[0,0],cQr=r(Uu),sQr=r(u1),vQr=r(gS),lQr=r(el),bQr=r(gs),pQr=r(Uu),mQr=r(u1),_Qr=r(gS),yQr=r(el),hQr=r(o1),dQr=r(Lo),kQr=[17,r(\"JSX fragment\")],wQr=[0,Ni],EQr=[1,Ni],SQr=r(C),gQr=[0,r(C)],FQr=[0,r(g3)],TQr=r(C),OQr=[0,0,0,0],IQr=[0,r(\"src/hack_forked/utils/collections/flow_map.ml\"),717,36],AQr=[0,0,0],NQr=r(q2),CQr=[0,r(C),0],PQr=r(\"unexpected PrivateName in Property, expected a PrivateField\"),DQr=r(wv),LQr=r(oH),RQr=[0,0,0],jQr=r(wv),GQr=r(wv),MQr=r(n1),BQr=r(lv),qQr=[0,1],UQr=[0,1],HQr=[0,1],XQr=r(wv),YQr=r(n1),VQr=r(lv),zQr=r(XO),KQr=r(Eu),WQr=r(dx),JQr=r(\"Internal Error: private name found in object props\"),$Qr=r(cV),ZQr=[0,r(g3)],QQr=r(Eu),r0e=r(dx),e0e=r(Eu),n0e=r(dx),t0e=r(cV),u0e=[10,r(yi)],i0e=[0,1],f0e=r(a1),x0e=r(K2),o0e=[0,r(LS),1763,21],a0e=r(K2),c0e=r(a1),s0e=[0,r(\"a declaration, statement or export specifiers\")],v0e=[0,40],l0e=r(a1),b0e=r(K2),p0e=[0,r(C),r(C),0],m0e=[0,r(EU)],_0e=r(pU),y0e=r(\"exports\"),h0e=[0,1],d0e=[0,1],k0e=[0,0],w0e=r(pU),E0e=[0,40],S0e=r(Hy),g0e=[0,0],F0e=[0,1],T0e=[0,83],O0e=[0,0],I0e=[0,1],A0e=r(a1),N0e=r(a1),C0e=r(K2),P0e=r(a1),D0e=[0,r(\"the keyword `as`\")],L0e=r(a1),R0e=r(K2),j0e=[0,r(EU)],G0e=[0,r(\"the keyword `from`\")],M0e=[0,r(C),r(C),0],B0e=[0,r(tU)],q0e=r(\"Label\"),U0e=[0,r(tU)],H0e=[0,0,0],X0e=[0,29],Y0e=[0,r(LS),431,22],V0e=[0,28],z0e=[0,r(LS),450,22],K0e=[0,0],W0e=r(\"the token `;`\"),J0e=[0,0],$0e=[0,0],Z0e=r(dx),Q0e=r(G2),rre=r(Eu),ere=[0,r(HU)],nre=[15,[0,0]],tre=[0,r(HU)],ure=r(\"use strict\"),ire=[0,0,0,0],fre=r(MI),xre=r(\"Nooo: \"),ore=r(_i),are=r(\"Parser error: No such thing as an expression pattern!\"),cre=r(C),sre=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],vre=[0,r(\"src/parser/parser_flow.ml\"),NT,28],lre=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],bre=r(Bn),pre=r(KY),mre=r(I2),_re=r(Y4),yre=r(HH),hre=r(I2),dre=r(Y4),kre=r(g7),wre=r(hE),Ere=r(\"normal\"),Sre=r(Jc),gre=r(\"jsxTag\"),Fre=r(\"jsxChild\"),Tre=r(\"template\"),Ore=r(MH),Ire=r(\"context\"),Are=r(Jc),Nre=r(\"use_strict\"),Cre=r($6),Pre=r(\"esproposal_export_star_as\"),Dre=r(\"esproposal_decorators\"),Lre=r(\"enums\"),Rre=r(\"Internal error: \");function Gt(t){if(typeof t==\"number\")return 0;switch(t[0]){case 0:return[0,Gt(t[1])];case 1:return[1,Gt(t[1])];case 2:return[2,Gt(t[1])];case 3:return[3,Gt(t[1])];case 4:return[4,Gt(t[1])];case 5:return[5,Gt(t[1])];case 6:return[6,Gt(t[1])];case 7:return[7,Gt(t[1])];case 8:var n=t[1];return[8,n,Gt(t[2])];case 9:var e=t[1];return[9,e,e,Gt(t[3])];case 10:return[10,Gt(t[1])];case 11:return[11,Gt(t[1])];case 12:return[12,Gt(t[1])];case 13:return[13,Gt(t[1])];default:return[14,Gt(t[1])]}}function u7(t,n){if(typeof t==\"number\")return n;switch(t[0]){case 0:return[0,u7(t[1],n)];case 1:return[1,u7(t[1],n)];case 2:return[2,u7(t[1],n)];case 3:return[3,u7(t[1],n)];case 4:return[4,u7(t[1],n)];case 5:return[5,u7(t[1],n)];case 6:return[6,u7(t[1],n)];case 7:return[7,u7(t[1],n)];case 8:var e=t[1];return[8,e,u7(t[2],n)];case 9:var i=t[2],x=t[1];return[9,x,i,u7(t[3],n)];case 10:return[10,u7(t[1],n)];case 11:return[11,u7(t[1],n)];case 12:return[12,u7(t[1],n)];case 13:return[13,u7(t[1],n)];default:return[14,u7(t[1],n)]}}function At(t,n){if(typeof t==\"number\")return n;switch(t[0]){case 0:return[0,At(t[1],n)];case 1:return[1,At(t[1],n)];case 2:var e=t[1];return[2,e,At(t[2],n)];case 3:var i=t[1];return[3,i,At(t[2],n)];case 4:var x=t[3],c=t[2],s=t[1];return[4,s,c,x,At(t[4],n)];case 5:var p=t[3],y=t[2],T=t[1];return[5,T,y,p,At(t[4],n)];case 6:var E=t[3],d=t[2],w=t[1];return[6,w,d,E,At(t[4],n)];case 7:var G=t[3],A=t[2],S=t[1];return[7,S,A,G,At(t[4],n)];case 8:var M=t[3],K=t[2],V=t[1];return[8,V,K,M,At(t[4],n)];case 9:var f0=t[1];return[9,f0,At(t[2],n)];case 10:return[10,At(t[1],n)];case 11:var m0=t[1];return[11,m0,At(t[2],n)];case 12:var k0=t[1];return[12,k0,At(t[2],n)];case 13:var g0=t[2],e0=t[1];return[13,e0,g0,At(t[3],n)];case 14:var x0=t[2],l=t[1];return[14,l,x0,At(t[3],n)];case 15:return[15,At(t[1],n)];case 16:return[16,At(t[1],n)];case 17:var c0=t[1];return[17,c0,At(t[2],n)];case 18:var t0=t[1];return[18,t0,At(t[2],n)];case 19:return[19,At(t[1],n)];case 20:var o0=t[2],w0=t[1];return[20,w0,o0,At(t[3],n)];case 21:var _0=t[1];return[21,_0,At(t[2],n)];case 22:return[22,At(t[1],n)];case 23:var E0=t[1];return[23,E0,At(t[2],n)];default:var U0=t[2],b=t[1];return[24,b,U0,At(t[3],n)]}}function nN(t,n,e){return t[1]===n?(t[1]=e,1):0}function ke(t){throw[0,q7,t]}function Pu(t){throw[0,ZA,t]}M7(0);function gp(t){return 0<=t?t:-t|0}var jre=mH;function Te(t,n){var e=un(t),i=un(n),x=Lt(e+i|0);return Ts(t,0,x,0,e),Ts(n,0,x,e,i),x}function Gre(t){return t?fi0:xi0}function on(t,n){if(t){var e=t[1];return[0,e,on(t[2],n)]}return n}M70(0);var Mre=zV(1),Pc=zV(2);function Bre(t){function n(e){for(var i=e;;){if(i){var x=i[2],c=i[1];try{p1(c)}catch(y){if(y=Et(y),y[1]!==$V)throw y;var s=y}var i=x;continue}return 0}}return n(B70(0))}function vl(t,n){return zA(t,n,0,un(n))}function iz(t){return vl(Pc,t),KV(Pc,10),p1(Pc)}var tN=[0,Bre];function fz(t){for(;;){var n=tN[1],e=[0,1],i=1-nN(tN,n,function(x,c){return function(s){return nN(x,1,0)&&u(t,0),u(c,0)}}(e,n));if(!i)return i}}function uN(t){return u(tN[1],0)}WA(r(sV),uN),K70(0)&&fz(function(t){return l70(t)});function xz(t){return 25<(t+Y3|0)>>>0?t:t+hU|0}var oz=J70(0)[1],ll=(4*z70(0)|0)-1|0;M7(0);var qre=V70(0);function Dc(t){for(var n=0,e=t;;){if(e){var n=n+1|0,e=e[2];continue}return n}}function bl(t){return t?t[1]:ke(mi0)}function az(t){return t?t[2]:ke(pi0)}function Lc(t,n){for(var e=t,i=n;;){if(e){var x=[0,e[1],i],e=e[2],i=x;continue}return i}}function ye(t){return Lc(t,0)}function pl(t){if(t){var n=t[1];return on(n,pl(t[2]))}return 0}function d1(t,n){if(n){var e=n[2],i=u(t,n[1]);return[0,i,d1(t,e)]}return 0}function Fp(t,n){for(var e=0,i=n;;){if(i){var x=i[2],e=[0,u(t,i[1]),e],i=x;continue}return e}}function Du(t,n){for(var e=n;;){if(e){var i=e[2];u(t,e[1]);var e=i;continue}return 0}}function le(t,n,e){for(var i=n,x=e;;){if(x){var c=x[2],i=o(t,i,x[1]),x=c;continue}return i}}function iN(t,n,e){if(n){var i=n[1];return o(t,i,iN(t,n[2],e))}return e}function cz(t,n,e){for(var i=n,x=e;;){if(i){if(x){var c=x[2],s=i[2];o(t,i[1],x[1]);var i=s,x=c;continue}}else if(!x)return 0;return Pu(bi0)}}function fN(t,n){for(var e=n;;){if(e){var i=e[2],x=LV(e[1],t)===0?1:0;if(x)return x;var e=i;continue}return 0}}function Ure(t,n){for(var e=n;;){if(e){var i=e[1],x=e[2],c=i[2];if(LV(i[1],t)===0)return c;var e=x;continue}throw Jt}}function ml(t){var n=0;return function(e){for(var i=n,x=e;;){if(x){var c=x[2],s=x[1];if(u(t,s)){var i=[0,s,i],x=c;continue}var x=c;continue}return ye(i)}}}function k1(t,n){var e=Lt(t);return v70(e,0,t,n),e}function sz(t){var n=b7(t),e=Lt(n);return Fs(t,0,e,0,n),e}function vz(t,n,e){if(0<=n&&0<=e&&!((b7(t)-e|0)>>0||(c=1):65<=x&&(c=1);else{var s=0;if(x!==32)if(43<=x)switch(x+xy|0){case 5:if(i<(e+2|0)&&1>>0?33<(x+SS|0)>>>0&&(c=1):x===2&&(c=1),!c){var n=n+1|0;continue}var s=t,p=[0,0],y=b7(s)-1|0,T=0;if(!(y<0))for(var E=T;;){var d=Xu(s,E),w=0;if(32<=d){var G=d-34|0,A=0;if(58>>0?93<=G&&(A=1):56<(G-1|0)>>>0&&(w=1,A=1),!A){var S=1;w=2}}else 11<=d?d===13&&(w=1):8<=d&&(w=1);switch(w){case 0:var S=4;break;case 1:var S=2;break}p[1]=p[1]+S|0;var M=E+1|0;if(y!==E){var E=M;continue}break}if(p[1]===b7(s))var K=sz(s);else{var V=Lt(p[1]);p[1]=0;var f0=b7(s)-1|0,m0=0;if(!(f0<0))for(var k0=m0;;){var g0=Xu(s,k0),e0=0;if(35<=g0)g0===92?e0=2:zn<=g0?e0=1:e0=3;else if(32<=g0)34<=g0?e0=2:e0=3;else if(14<=g0)e0=1;else switch(g0){case 8:Jn(V,p[1],92),p[1]++,Jn(V,p[1],98);break;case 9:Jn(V,p[1],92),p[1]++,Jn(V,p[1],f1);break;case 10:Jn(V,p[1],92),p[1]++,Jn(V,p[1],Xt);break;case 13:Jn(V,p[1],92),p[1]++,Jn(V,p[1],t1);break;default:e0=1}switch(e0){case 1:Jn(V,p[1],92),p[1]++,Jn(V,p[1],48+(g0/ti|0)|0),p[1]++,Jn(V,p[1],48+((g0/10|0)%10|0)|0),p[1]++,Jn(V,p[1],48+(g0%10|0)|0);break;case 2:Jn(V,p[1],92),p[1]++,Jn(V,p[1],g0);break;case 3:Jn(V,p[1],g0);break}p[1]++;var x0=k0+1|0;if(f0!==k0){var k0=x0;continue}break}var K=V}var i=K}var l=un(i),c0=k1(l+2|0,34);return Ts(i,0,c0,1,l),c0}}function wz(t,n){var e=gp(n),i=rz?rz[1]:70;switch(t[2]){case 0:var x=Ri;break;case 1:var x=R7;break;case 2:var x=69;break;case 3:var x=s7;break;case 4:var x=71;break;case 5:var x=i;break;case 6:var x=L7;break;case 7:var x=72;break;default:var x=70}var c=yz(16);switch(Xv(c,37),t[1]){case 0:break;case 1:Xv(c,43);break;default:Xv(c,32)}return 8<=t[2]&&Xv(c,35),Xv(c,46),Lu(c,r(C+e)),Xv(c,x),dz(c)}function Ap(t,n){if(13<=t){var e=[0,0],i=un(n)-1|0,x=0;if(!(i<0))for(var c=x;;){9<(Vr(n,c)+Wt|0)>>>0||e[1]++;var s=c+1|0;if(i!==c){var c=s;continue}break}var p=e[1],y=Lt(un(n)+((p-1|0)/3|0)|0),T=[0,0],E=function(K){return b1(y,T[1],K),T[1]++,0},d=[0,((p-1|0)%3|0)+1|0],w=un(n)-1|0,G=0;if(!(w<0))for(var A=G;;){var S=Vr(n,A);9<(S+Wt|0)>>>0||(d[1]===0&&(E(95),d[1]=3),d[1]+=-1),E(S);var M=A+1|0;if(w!==A){var A=M;continue}break}return y}return n}function Kre(t,n){switch(t){case 1:var e=gx0;break;case 2:var e=Fx0;break;case 4:var e=Tx0;break;case 5:var e=Ox0;break;case 6:var e=Ix0;break;case 7:var e=Ax0;break;case 8:var e=Nx0;break;case 9:var e=Cx0;break;case 10:var e=Px0;break;case 11:var e=Dx0;break;case 0:case 13:var e=Lx0;break;case 3:case 14:var e=Rx0;break;default:var e=jx0}return Ap(t,hp(e,n))}function Wre(t,n){switch(t){case 1:var e=Qf0;break;case 2:var e=rx0;break;case 4:var e=ex0;break;case 5:var e=nx0;break;case 6:var e=tx0;break;case 7:var e=ux0;break;case 8:var e=ix0;break;case 9:var e=fx0;break;case 10:var e=xx0;break;case 11:var e=ox0;break;case 0:case 13:var e=ax0;break;case 3:case 14:var e=cx0;break;default:var e=sx0}return Ap(t,hp(e,n))}function Jre(t,n){switch(t){case 1:var e=Bf0;break;case 2:var e=qf0;break;case 4:var e=Uf0;break;case 5:var e=Hf0;break;case 6:var e=Xf0;break;case 7:var e=Yf0;break;case 8:var e=Vf0;break;case 9:var e=zf0;break;case 10:var e=Kf0;break;case 11:var e=Wf0;break;case 0:case 13:var e=Jf0;break;case 3:case 14:var e=$f0;break;default:var e=Zf0}return Ap(t,hp(e,n))}function $re(t,n){switch(t){case 1:var e=vx0;break;case 2:var e=lx0;break;case 4:var e=bx0;break;case 5:var e=px0;break;case 6:var e=mx0;break;case 7:var e=_x0;break;case 8:var e=yx0;break;case 9:var e=hx0;break;case 10:var e=dx0;break;case 11:var e=kx0;break;case 0:case 13:var e=wx0;break;case 3:case 14:var e=Ex0;break;default:var e=Sx0}return Ap(t,d70(e,n))}function ss(t,n,e){function i(m0){switch(t[1]){case 0:var k0=45;break;case 1:var k0=43;break;default:var k0=32}return m70(e,n,k0)}function x(m0){var k0=Zu0(e);return k0===3?e<0?jf0:Gf0:4<=k0?Rf0:m0}switch(t[2]){case 5:for(var c=XA(wz(t,n),e),s=0,p=un(c);;){if(s===p)var y=0;else{var T=It(c,s)+v1|0,E=0;if(23>>0?T===55&&(E=1):21<(T-1|0)>>>0&&(E=1),!E){var s=s+1|0;continue}var y=1}var d=y?c:Te(c,Mf0);return x(d)}case 6:return i(0);case 7:var w=i(0),G=b7(w);if(G===0)var A=w;else{var S=Lt(G),M=G-1|0,K=0;if(!(M<0))for(var V=K;;){Jn(S,V,xz(Xu(w,V)));var f0=V+1|0;if(M!==V){var V=f0;continue}break}var A=S}return A;case 8:return x(i(0));default:return XA(wz(t,n),e)}}function kl(t,n,e,i){for(var x=n,c=e,s=i;;){if(typeof s==\"number\")return u(x,c);switch(s[0]){case 0:var p=s[1];return function(ar){return Xn(x,[5,c,ar],p)};case 1:var y=s[1];return function(ar){var _r=0;if(40<=ar)if(ar===92)var Ir=oi0;else zn<=ar?_r=1:_r=2;else if(32<=ar)if(39<=ar)var Ir=ai0;else _r=2;else if(14<=ar)_r=1;else switch(ar){case 8:var Ir=ci0;break;case 9:var Ir=si0;break;case 10:var Ir=vi0;break;case 13:var Ir=li0;break;default:_r=1}switch(_r){case 1:var fe=Lt(4);Jn(fe,0,92),Jn(fe,1,48+(ar/ti|0)|0),Jn(fe,2,48+((ar/10|0)%10|0)|0),Jn(fe,3,48+(ar%10|0)|0);var Ir=fe;break;case 2:var v0=Lt(1);Jn(v0,0,ar);var Ir=v0;break}var P=un(Ir),L=k1(P+2|0,39);return Ts(Ir,0,L,1,P),Xn(x,[4,c,L],y)};case 2:var T=s[2],E=s[1];return mN(x,c,T,E,function(ar){return ar});case 3:return mN(x,c,s[2],s[1],zre);case 4:return Np(x,c,s[4],s[2],s[3],Kre,s[1]);case 5:return Np(x,c,s[4],s[2],s[3],Wre,s[1]);case 6:return Np(x,c,s[4],s[2],s[3],Jre,s[1]);case 7:return Np(x,c,s[4],s[2],s[3],$re,s[1]);case 8:var d=s[4],w=s[3],G=s[2],A=s[1];if(typeof G==\"number\"){if(typeof w==\"number\")return w?function(ar,_r){return Xn(x,[4,c,ss(A,ar,_r)],d)}:function(ar){return Xn(x,[4,c,ss(A,vN(A),ar)],d)};var S=w[1];return function(ar){return Xn(x,[4,c,ss(A,S,ar)],d)}}else{if(G[0]===0){var M=G[2],K=G[1];if(typeof w==\"number\")return w?function(ar,_r){return Xn(x,[4,c,H7(K,M,ss(A,ar,_r))],d)}:function(ar){return Xn(x,[4,c,H7(K,M,ss(A,vN(A),ar))],d)};var V=w[1];return function(ar){return Xn(x,[4,c,H7(K,M,ss(A,V,ar))],d)}}var f0=G[1];if(typeof w==\"number\")return w?function(ar,_r,Ir){return Xn(x,[4,c,H7(f0,ar,ss(A,_r,Ir))],d)}:function(ar,_r){return Xn(x,[4,c,H7(f0,ar,ss(A,vN(A),_r))],d)};var m0=w[1];return function(ar,_r){return Xn(x,[4,c,H7(f0,ar,ss(A,m0,_r))],d)}}case 9:return mN(x,c,s[2],s[1],Gre);case 10:var c=[7,c],s=s[1];continue;case 11:var c=[2,c,s[1]],s=s[2];continue;case 12:var c=[3,c,s[1]],s=s[2];continue;case 13:var k0=s[3],g0=s[2],e0=yz(16);lN(e0,g0);var x0=dz(e0);return function(ar){return Xn(x,[4,c,x0],k0)};case 14:var l=s[3],c0=s[2];return function(ar){var _r=ar[1],Ir=_t(_r,Gt(uu(c0)));if(typeof Ir[2]==\"number\")return Xn(x,c,At(Ir[1],l));throw Ou};case 15:var t0=s[1];return function(ar,_r){return Xn(x,[6,c,function(Ir){return o(ar,Ir,_r)}],t0)};case 16:var o0=s[1];return function(ar){return Xn(x,[6,c,ar],o0)};case 17:var c=[0,c,s[1]],s=s[2];continue;case 18:var w0=s[1];if(w0[0]===0){var _0=s[2],E0=w0[1][1],U0=0,x=function(fe,v0,P){return function(L){return Xn(v0,[1,fe,[0,L]],P)}}(c,x,_0),c=U0,s=E0;continue}var b=s[2],R0=w0[1][1],X=0,x=function(ar,_r,Ir){return function(fe){return Xn(_r,[1,ar,[1,fe]],Ir)}}(c,x,b),c=X,s=R0;continue;case 19:throw[0,Sn,_f0];case 20:var s0=s[3],hr=[8,c,yf0];return function(ar){return Xn(x,hr,s0)};case 21:var Ar=s[2];return function(ar){return Xn(x,[4,c,hp(mf0,ar)],Ar)};case 22:var or=s[1];return function(ar){return Xn(x,[5,c,ar],or)};case 23:var W0=s[2],Lr=s[1];if(typeof Lr==\"number\")switch(Lr){case 0:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 1:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 2:throw[0,Sn,hf0];default:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0])}else switch(Lr[0]){case 0:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 1:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 2:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 3:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 4:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 5:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 6:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 7:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 8:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 9:var Tr=Lr[2];return t<50?bN(t+1|0,x,c,Tr,W0):Tu(bN,[0,x,c,Tr,W0]);case 10:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);default:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0])}default:var Hr=s[3],Or=s[1],fr=u(s[2],0);return t<50?pN(t+1|0,x,c,Hr,Or,fr):Tu(pN,[0,x,c,Hr,Or,fr])}}}function bN(t,n,e,i,x){if(typeof i==\"number\")return t<50?ct(t+1|0,n,e,x):Tu(ct,[0,n,e,x]);switch(i[0]){case 0:var c=i[1];return function(m0){return fi(n,e,c,x)};case 1:var s=i[1];return function(m0){return fi(n,e,s,x)};case 2:var p=i[1];return function(m0){return fi(n,e,p,x)};case 3:var y=i[1];return function(m0){return fi(n,e,y,x)};case 4:var T=i[1];return function(m0){return fi(n,e,T,x)};case 5:var E=i[1];return function(m0){return fi(n,e,E,x)};case 6:var d=i[1];return function(m0){return fi(n,e,d,x)};case 7:var w=i[1];return function(m0){return fi(n,e,w,x)};case 8:var G=i[2];return function(m0){return fi(n,e,G,x)};case 9:var A=i[3],S=i[2],M=bu(uu(i[1]),S);return function(m0){return fi(n,e,u7(M,A),x)};case 10:var K=i[1];return function(m0,k0){return fi(n,e,K,x)};case 11:var V=i[1];return function(m0){return fi(n,e,V,x)};case 12:var f0=i[1];return function(m0){return fi(n,e,f0,x)};case 13:throw[0,Sn,df0];default:throw[0,Sn,kf0]}}function ct(t,n,e,i){var x=[8,e,wf0];return t<50?kl(t+1|0,n,x,i):Tu(kl,[0,n,x,i])}function pN(t,n,e,i,x,c){if(x){var s=x[1];return function(y){return Zre(n,e,i,s,u(c,y))}}var p=[4,e,c];return t<50?kl(t+1|0,n,p,i):Tu(kl,[0,n,p,i])}function Xn(t,n,e){return JA(kl(0,t,n,e))}function fi(t,n,e,i){return JA(bN(0,t,n,e,i))}function Zre(t,n,e,i,x){return JA(pN(0,t,n,e,i,x))}function mN(t,n,e,i,x){if(typeof i==\"number\")return function(y){return Xn(t,[4,n,u(x,y)],e)};if(i[0]===0){var c=i[2],s=i[1];return function(y){return Xn(t,[4,n,H7(s,c,u(x,y))],e)}}var p=i[1];return function(y,T){return Xn(t,[4,n,H7(p,y,u(x,T))],e)}}function Np(t,n,e,i,x,c,s){if(typeof i==\"number\"){if(typeof x==\"number\")return x?function(G,A){return Xn(t,[4,n,Yv(G,o(c,s,A))],e)}:function(G){return Xn(t,[4,n,o(c,s,G)],e)};var p=x[1];return function(G){return Xn(t,[4,n,Yv(p,o(c,s,G))],e)}}else{if(i[0]===0){var y=i[2],T=i[1];if(typeof x==\"number\")return x?function(G,A){return Xn(t,[4,n,H7(T,y,Yv(G,o(c,s,A)))],e)}:function(G){return Xn(t,[4,n,H7(T,y,o(c,s,G))],e)};var E=x[1];return function(G){return Xn(t,[4,n,H7(T,y,Yv(E,o(c,s,G)))],e)}}var d=i[1];if(typeof x==\"number\")return x?function(G,A,S){return Xn(t,[4,n,H7(d,G,Yv(A,o(c,s,S)))],e)}:function(G,A){return Xn(t,[4,n,H7(d,G,o(c,s,A))],e)};var w=x[1];return function(G,A){return Xn(t,[4,n,H7(d,G,Yv(w,o(c,s,A)))],e)}}}function vs(t,n){for(var e=n;;){if(typeof e==\"number\")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return vs(t,i),vl(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];vs(t,s),vl(t,Ef0);var e=p;continue}var y=c[1];vs(t,s),vl(t,Sf0);var e=y;continue;case 6:var T=e[2];return vs(t,e[1]),u(T,t);case 7:return vs(t,e[1]),p1(t);case 8:var E=e[2];return vs(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return vs(t,e[1]),vl(t,d);default:var w=e[2];return vs(t,e[1]),KV(t,w)}}}function ls(t,n){for(var e=n;;){if(typeof e==\"number\")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return ls(t,i),hn(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];ls(t,s),hn(t,gf0);var e=p;continue}var y=c[1];ls(t,s),hn(t,Ff0);var e=y;continue;case 6:var T=e[2];return ls(t,e[1]),hn(t,u(T,0));case 7:var e=e[1];continue;case 8:var E=e[2];return ls(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return ls(t,e[1]),hn(t,d);default:var w=e[2];return ls(t,e[1]),qi(t,w)}}}function Qre(t){if(qn(t,Of0))return If0;var n=un(t);function e(S){var M=Tf0[1],K=$n(N4);return u(Xn(function(V){return ls(K,V),ke(Mt(K))},0,M),t)}function i(S){for(var M=S;;){if(M===n)return M;var K=It(t,M);if(K!==9&&K!==32)return M;var M=M+1|0}}function x(S,M){for(var K=M;;){if(K===n||25<(It(t,K)+Y3|0)>>>0)return K;var K=K+1|0}}function c(S,M){for(var K=M;;){if(K===n)return K;var V=It(t,K),f0=0;if(48<=V?58<=V||(f0=1):V===45&&(f0=1),f0){var K=K+1|0;continue}return K}}var s=i(0),p=x(s,s),y=m7(t,s,p-s|0),T=i(p),E=c(T,T);if(T===E)var d=0;else try{var w=Bi(m7(t,T,E-T|0)),d=w}catch(S){if(S=Et(S),S[1]!==q7)throw S;var d=e(0)}i(E)!==n&&e(0);var G=0;if(n0(y,Af0)&&n0(y,Nf0))var A=n0(y,Cf0)?n0(y,Pf0)?n0(y,Df0)?n0(y,Lf0)?e(0):1:2:3:0;else G=1;if(G)var A=4;return[0,d,A]}function _N(t,n){var e=n[1],i=0;return Xn(function(x){return vs(t,x),0},i,e)}function yN(t){return _N(Pc,t)}function et(t){var n=t[1];return Xn(function(e){var i=$n(64);return ls(i,e),Mt(i)},0,n)}var hN=[0,0];function dN(t,n){var e=t[1+n];if(1-(typeof e==\"number\"?1:0)){if(h1(e)===Y2)return u(et(ho0),e);if(h1(e)===nd)for(var i=XA(ui0,e),x=0,c=un(i);;){if(c<=x)return Te(i,ii0);var s=It(i,x),p=0;if(48<=s?58<=s||(p=1):s===45&&(p=1),p){var x=x+1|0;continue}return i}return do0}return u(et(yo0),e)}function Ez(t,n){if(t.length-1<=n)return zx0;var e=Ez(t,n+1|0),i=dN(t,n);return o(et(Kx0),i,e)}function Cp(t){function n(k0){for(var g0=k0;;){if(g0){var e0=g0[2],x0=g0[1];try{var l=0,c0=u(x0,t);l=1}catch{}if(l&&c0)return[0,c0[1]];var g0=e0;continue}return 0}}var e=n(hN[1]);if(e)return e[1];if(t===$A)return ao0;if(t===QV)return co0;if(t[1]===ZV){var i=t[2],x=i[3],c=i[2],s=i[1];return p7(et(QA),s,c,x,x+5|0,so0)}if(t[1]===Sn){var p=t[2],y=p[3],T=p[2],E=p[1];return p7(et(QA),E,T,y,y+6|0,vo0)}if(t[1]===sl){var d=t[2],w=d[3],G=d[2],A=d[1];return p7(et(QA),A,G,w,w+6|0,lo0)}if(h1(t)===0){var S=t.length-1,M=t[1][1];if(2>>0)var K=Ez(t,2),V=dN(t,1),f0=o(et(bo0),V,K);else switch(S){case 0:var f0=po0;break;case 1:var f0=mo0;break;default:var m0=dN(t,1),f0=u(et(_o0),m0)}return Te(M,f0)}return t[1]}function kN(t,n){var e=s70(n),i=e.length-1-1|0,x=0;if(!(i<0))for(var c=x;;){var s=tu(e,c)[1+c],p=function(f0){return function(m0){return m0?f0===0?eo0:no0:f0===0?to0:uo0}}(c);if(s[0]===0)var y=s[5],T=s[4],E=s[3],d=s[6]?io0:fo0,w=s[2],G=s[7],A=p(s[1]),M=[0,ei0(et(xo0),A,G,w,d,E,T,y)];else if(s[1])var M=0;else var S=p(0),M=[0,u(et(oo0),S)];if(M){var K=M[1];u(_N(t,Qx0),K)}var V=c+1|0;if(i!==c){var c=V;continue}break}return 0}function Sz(t){for(;;){var n=hN[1],e=1-nN(hN,n,[0,t,n]);if(!e)return e}}var ree=ko0.slice();function eee(t,n){var e=Cp(t);u(yN(Zx0),e),kN(Pc,n);var i=T70(0);if(i<0){var x=gp(i);iz(tu(ree,x)[1+x])}return p1(Pc)}var nee=[0];WA(r(LH),function(t,n){try{try{var e=n?nee:GV(0);try{uN(0)}catch{}try{var i=eee(t,e),x=i}catch(y){y=Et(y);var c=Cp(t);u(yN(Wx0),c),kN(Pc,e);var s=Cp(y);u(yN(Jx0),s),kN(Pc,GV(0));var x=p1(Pc)}var p=x}catch(y){if(y=Et(y),y!==$A)throw y;var p=iz($x0)}return p}catch{return 0}});var wN=[wt,Uo0,M7(0)],Pp=0,gz=-1;function wl(t,n){return t[13]=t[13]+n[3]|0,aN(n,t[28])}var Fz=1000000010;function EN(t,n){return ur(t[17],n,0,un(n))}function Dp(t){return u(t[19],0)}function Tz(t,n,e){return t[9]=t[9]-n|0,EN(t,e),t[11]=0,0}function Lp(t,n){var e=n0(n,qo0);return e&&Tz(t,un(n),n)}function Vv(t,n,e){var i=n[3],x=n[2];Lp(t,n[1]),Dp(t),t[11]=1;var c=(t[6]-e|0)+x|0,s=t[8],p=s<=c?s:c;return t[10]=p,t[9]=t[6]-t[10]|0,u(t[21],t[10]),Lp(t,i)}function Oz(t,n){return Vv(t,Bo0,n)}function El(t,n){var e=n[2],i=n[3];return Lp(t,n[1]),t[9]=t[9]-e|0,u(t[20],e),Lp(t,i)}function Iz(t){for(;;){var n=t[28][2],e=n?[0,n[1]]:0;if(e){var i=e[1],x=i[1],c=i[2],s=0<=x?1:0,p=i[3],y=t[13]-t[12]|0,T=s||(t[9]<=y?1:0);if(T){var E=t[28],d=E[2];if(d){if(d[2]){var w=d[2];E[1]=E[1]-1|0,E[2]=w}else oN(E);var G=0<=x?x:Fz;if(typeof c==\"number\")switch(c){case 0:var A=Hv(t[3]);if(A){var S=A[1][1],M=function(L,Q){if(Q){var i0=Q[1],l0=Q[2];return F70(L,i0)?[0,L,Q]:[0,i0,M(L,l0)]}return[0,L,0]};S[1]=M(t[6]-t[9]|0,S[1])}break;case 1:Uv(t[2]);break;case 2:Uv(t[3]);break;case 3:var K=Hv(t[2]);K?Oz(t,K[1][2]):Dp(t);break;case 4:if(t[10]!==(t[6]-t[9]|0)){var V=t[28],f0=V[2];if(f0){var m0=f0[1];if(f0[2]){var k0=f0[2];V[1]=V[1]-1|0,V[2]=k0;var g0=[0,m0]}else{oN(V);var g0=[0,m0]}}else var g0=0;if(g0){var e0=g0[1],x0=e0[1];t[12]=t[12]-e0[3]|0,t[9]=t[9]+x0|0}}break;default:var l=Uv(t[5]);l&&EN(t,u(t[25],l[1]))}else switch(c[0]){case 0:Tz(t,G,c[1]);break;case 1:var c0=c[2],t0=c[1],o0=c0[1],w0=c0[2],_0=Hv(t[2]);if(_0){var E0=_0[1],U0=E0[2];switch(E0[1]){case 0:El(t,t0);break;case 1:Vv(t,c0,U0);break;case 2:Vv(t,c0,U0);break;case 3:t[9]<(G+un(o0)|0)?Vv(t,c0,U0):El(t,t0);break;case 4:t[11]||!(t[9]<(G+un(o0)|0)||((t[6]-U0|0)+w0|0)>>0)&&Oz(t,_r)}else Dp(t)}var fe=t[9]-Wr|0,v0=Rr===1?1:t[9]>>18|0),e(jt|(n>>>12|0)&63),e(jt|(n>>>6|0)&63),e(jt|n&63)):Hh<=n?(e(hv|n>>>12|0),e(jt|(n>>>6|0)&63),e(jt|n&63)):jt<=n?(e(rt|n>>>6|0),e(jt|n&63)):e(n)}var GN=z0,i7=null,Jz=void 0;function Mp(t){return t!==Jz?1:0}var hee=GN.Array,MN=[wt,ra0,M7(0)],dee=GN.Error;see(ea0,[0,MN,{}]);function $z(t){throw t}Sz(function(t){return t[1]===MN?[0,B7(t[2].toString())]:0}),Sz(function(t){return t instanceof hee?0:[0,B7(t.toString())]});var Dr=pu(e3r,r3r),Rn=pu(t3r,n3r),Bp=pu(i3r,u3r),Tl=pu(x3r,f3r),g1=pu(a3r,o3r),BN=pu(s3r,c3r),Zz=pu(l3r,v3r),qN=pu(p3r,b3r),zv=pu(_3r,m3r),qp=pu(h3r,y3r),$e=pu(k3r,d3r),Yu=pu(E3r,w3r),qe=pu(g3r,S3r),UN=pu(T3r,F3r),di=pu(I3r,O3r),iu=pu(N3r,A3r),F1=pu(P3r,C3r),As=pu(L3r,D3r),HN=function t(n,e,i,x){return t.fun(n,e,i,x)},Qz=function t(n,e,i){return t.fun(n,e,i)},kee=pu(j3r,R3r);N(HN,function(t,n,e,i){u(f(e),j8r),o(f(e),M8r,G8r);var x=i[1];u(f(e),B8r);var c=0;le(function(y,T){y&&u(f(e),R8r);function E(d){return u(t,d)}return ur(iu[1],E,e,T),1},c,x),u(f(e),q8r),u(f(e),U8r),u(f(e),H8r),o(f(e),Y8r,X8r);var s=i[2];u(f(e),V8r);var p=0;return le(function(y,T){y&&u(f(e),L8r);function E(d){return u(t,d)}return ur(iu[1],E,e,T),1},p,s),u(f(e),z8r),u(f(e),K8r),u(f(e),W8r),o(f(e),$8r,J8r),o(n,e,i[3]),u(f(e),Z8r),u(f(e),Q8r)}),N(Qz,function(t,n,e){var i=o(HN,t,n);return o(C0(D8r),i,e)}),mu(G3r,Dr,[0,HN,Qz]);var XN=function t(n,e,i,x){return t.fun(n,e,i,x)},rK=function t(n,e,i){return t.fun(n,e,i)},Up=function t(n,e,i){return t.fun(n,e,i)},eK=function t(n,e){return t.fun(n,e)};N(XN,function(t,n,e,i){u(f(e),N8r),o(n,e,i[1]),u(f(e),C8r);var x=i[2];return ur(Up,function(c){return u(t,c)},e,x),u(f(e),P8r)}),N(rK,function(t,n,e){var i=o(XN,t,n);return o(C0(A8r),i,e)}),N(Up,function(t,n,e){u(f(n),_8r),o(f(n),h8r,y8r);var i=e[1];o(f(n),d8r,i),u(f(n),k8r),u(f(n),w8r),o(f(n),S8r,E8r);var x=e[2];if(x){g(n,g8r);var c=x[1],s=function(y,T){return g(y,m8r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,F8r)}else g(n,T8r);return u(f(n),O8r),u(f(n),I8r)}),N(eK,function(t,n){var e=u(Up,t);return o(C0(p8r),e,n)}),mu(M3r,Rn,[0,XN,rK,Up,eK]);var YN=function t(n,e,i){return t.fun(n,e,i)},nK=function t(n,e){return t.fun(n,e)},Hp=function t(n,e,i){return t.fun(n,e,i)},tK=function t(n,e){return t.fun(n,e)};N(YN,function(t,n,e){u(f(n),v8r),o(t,n,e[1]),u(f(n),l8r);var i=e[2];return ur(Hp,function(x){return u(t,x)},n,i),u(f(n),b8r)}),N(nK,function(t,n){var e=u(YN,t);return o(C0(s8r),e,n)}),N(Hp,function(t,n,e){u(f(n),Z4r),o(f(n),r8r,Q4r);var i=e[1];o(f(n),e8r,i),u(f(n),n8r),u(f(n),t8r),o(f(n),i8r,u8r);var x=e[2];if(x){g(n,f8r);var c=x[1],s=function(y,T){return g(y,$4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,x8r)}else g(n,o8r);return u(f(n),a8r),u(f(n),c8r)}),N(tK,function(t,n){var e=u(Hp,t);return o(C0(J4r),e,n)}),mu(B3r,Bp,[0,YN,nK,Hp,tK]);function uK(t,n){u(f(t),G4r),o(f(t),B4r,M4r);var e=n[1];o(f(t),q4r,e),u(f(t),U4r),u(f(t),H4r),o(f(t),Y4r,X4r);var i=n[2];return o(f(t),V4r,i),u(f(t),z4r),u(f(t),K4r)}var iK=[0,uK,function(t){return o(C0(W4r),uK,t)}],VN=function t(n,e,i){return t.fun(n,e,i)},fK=function t(n,e){return t.fun(n,e)},Xp=function t(n,e){return t.fun(n,e)},xK=function t(n){return t.fun(n)};N(VN,function(t,n,e){u(f(n),k4r),o(f(n),E4r,w4r),o(Xp,n,e[1]),u(f(n),S4r),u(f(n),g4r),o(f(n),T4r,F4r);var i=e[2];o(f(n),O4r,i),u(f(n),I4r),u(f(n),A4r),o(f(n),C4r,N4r);var x=e[3];if(x){g(n,P4r);var c=x[1],s=function(y,T){return g(y,d4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,D4r)}else g(n,L4r);return u(f(n),R4r),u(f(n),j4r)}),N(fK,function(t,n){var e=u(VN,t);return o(C0(h4r),e,n)}),N(Xp,function(t,n){if(typeof n==\"number\")return g(t,u4r);switch(n[0]){case 0:u(f(t),i4r);var e=n[1];return o(f(t),f4r,e),u(f(t),x4r);case 1:u(f(t),o4r);var i=n[1];return o(f(t),a4r,i),u(f(t),c4r);case 2:u(f(t),s4r);var x=n[1];return o(f(t),v4r,x),u(f(t),l4r);case 3:u(f(t),b4r);var c=n[1];return o(f(t),p4r,c),u(f(t),m4r);default:return u(f(t),_4r),o(iK[1],t,n[1]),u(f(t),y4r)}}),N(xK,function(t){return o(C0(t4r),Xp,t)}),mu(q3r,Tl,[0,iK,VN,fK,Xp,xK]);var zN=function t(n,e,i){return t.fun(n,e,i)},oK=function t(n,e){return t.fun(n,e)};N(zN,function(t,n,e){u(f(n),Mbr),o(f(n),qbr,Bbr);var i=e[1];o(f(n),Ubr,i),u(f(n),Hbr),u(f(n),Xbr),o(f(n),Vbr,Ybr);var x=e[2];o(f(n),zbr,x),u(f(n),Kbr),u(f(n),Wbr),o(f(n),$br,Jbr);var c=e[3];if(c){g(n,Zbr);var s=c[1],p=function(T,E){return g(T,Gbr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,Qbr)}else g(n,r4r);return u(f(n),e4r),u(f(n),n4r)}),N(oK,function(t,n){var e=u(zN,t);return o(C0(jbr),e,n)}),mu(U3r,g1,[0,zN,oK]);var KN=function t(n,e,i){return t.fun(n,e,i)},aK=function t(n,e){return t.fun(n,e)};N(KN,function(t,n,e){u(f(n),hbr),o(f(n),kbr,dbr);var i=e[1];o(f(n),wbr,i),u(f(n),Ebr),u(f(n),Sbr),o(f(n),Fbr,gbr);var x=e[2];o(f(n),Tbr,x),u(f(n),Obr),u(f(n),Ibr),o(f(n),Nbr,Abr);var c=e[3];if(c){g(n,Cbr);var s=c[1],p=function(T,E){return g(T,ybr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,Pbr)}else g(n,Dbr);return u(f(n),Lbr),u(f(n),Rbr)}),N(aK,function(t,n){var e=u(KN,t);return o(C0(_br),e,n)}),mu(H3r,BN,[0,KN,aK]);var WN=function t(n,e,i){return t.fun(n,e,i)},cK=function t(n,e){return t.fun(n,e)};N(WN,function(t,n,e){u(f(n),Qlr),o(f(n),ebr,rbr);var i=e[1];o(f(n),nbr,i),u(f(n),tbr),u(f(n),ubr),o(f(n),fbr,ibr);var x=e[2];o(f(n),xbr,x),u(f(n),obr),u(f(n),abr),o(f(n),sbr,cbr);var c=e[3];if(c){g(n,vbr);var s=c[1],p=function(T,E){return g(T,Zlr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,lbr)}else g(n,bbr);return u(f(n),pbr),u(f(n),mbr)}),N(cK,function(t,n){var e=u(WN,t);return o(C0($lr),e,n)}),mu(X3r,Zz,[0,WN,cK]);var JN=function t(n,e,i){return t.fun(n,e,i)},sK=function t(n,e){return t.fun(n,e)};N(JN,function(t,n,e){u(f(n),Glr),o(f(n),Blr,Mlr);var i=e[1];o(f(n),qlr,i),u(f(n),Ulr),u(f(n),Hlr),o(f(n),Ylr,Xlr);var x=e[2];if(x){g(n,Vlr);var c=x[1],s=function(y,T){return g(y,jlr)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,zlr)}else g(n,Klr);return u(f(n),Wlr),u(f(n),Jlr)}),N(sK,function(t,n){var e=u(JN,t);return o(C0(Rlr),e,n)}),mu(Y3r,qN,[0,JN,sK]);var $N=function t(n,e,i){return t.fun(n,e,i)},vK=function t(n,e){return t.fun(n,e)},Yp=function t(n,e){return t.fun(n,e)},lK=function t(n){return t.fun(n)},Vp=function t(n,e,i){return t.fun(n,e,i)},bK=function t(n,e){return t.fun(n,e)};N($N,function(t,n,e){u(f(n),Plr),o(t,n,e[1]),u(f(n),Dlr);var i=e[2];return ur(Vp,function(x){return u(t,x)},n,i),u(f(n),Llr)}),N(vK,function(t,n){var e=u($N,t);return o(C0(Clr),e,n)}),N(Yp,function(t,n){return n?g(t,Alr):g(t,Nlr)}),N(lK,function(t){return o(C0(Ilr),Yp,t)}),N(Vp,function(t,n,e){u(f(n),_lr),o(f(n),hlr,ylr),o(Yp,n,e[1]),u(f(n),dlr),u(f(n),klr),o(f(n),Elr,wlr);var i=e[2];if(i){g(n,Slr);var x=i[1],c=function(p,y){return g(p,mlr)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,glr)}else g(n,Flr);return u(f(n),Tlr),u(f(n),Olr)}),N(bK,function(t,n){var e=u(Vp,t);return o(C0(plr),e,n)}),mu(V3r,zv,[0,$N,vK,Yp,lK,Vp,bK]);var ZN=function t(n,e,i,x){return t.fun(n,e,i,x)},pK=function t(n,e,i){return t.fun(n,e,i)},QN=function t(n,e,i,x){return t.fun(n,e,i,x)},mK=function t(n,e,i){return t.fun(n,e,i)};N(ZN,function(t,n,e,i){u(f(e),vlr),o(t,e,i[1]),u(f(e),llr);var x=i[2];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(qp[3],s,c,e,x),u(f(e),blr)}),N(pK,function(t,n,e){var i=o(ZN,t,n);return o(C0(slr),i,e)}),N(QN,function(t,n,e,i){u(f(e),Q2r),o(f(e),elr,rlr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),nlr),u(f(e),tlr),o(f(e),ilr,ulr);var p=i[2];if(p){g(e,flr);var y=p[1],T=function(d,w){return g(d,Z2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,xlr)}else g(e,olr);return u(f(e),alr),u(f(e),clr)}),N(mK,function(t,n,e){var i=o(QN,t,n);return o(C0($2r),i,e)}),mu(z3r,qp,[0,ZN,pK,QN,mK]);var rC=function t(n,e,i,x){return t.fun(n,e,i,x)},_K=function t(n,e,i){return t.fun(n,e,i)},zp=function t(n,e,i,x){return t.fun(n,e,i,x)},yK=function t(n,e,i){return t.fun(n,e,i)};N(rC,function(t,n,e,i){u(f(e),K2r),o(t,e,i[1]),u(f(e),W2r);var x=i[2];function c(s){return u(n,s)}return R(zp,function(s){return u(t,s)},c,e,x),u(f(e),J2r)}),N(_K,function(t,n,e){var i=o(rC,t,n);return o(C0(z2r),i,e)}),N(zp,function(t,n,e,i){u(f(e),A2r),o(f(e),C2r,N2r);var x=i[1];if(x){g(e,P2r);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(Rn[1],p,s,e,c),g(e,D2r)}else g(e,L2r);u(f(e),R2r),u(f(e),j2r),o(f(e),M2r,G2r);var y=i[2];function T(w){return u(n,w)}function E(w){return u(t,w)}R($e[13],E,T,e,y),u(f(e),B2r),u(f(e),q2r),o(f(e),H2r,U2r);var d=i[3];return o(f(e),X2r,d),u(f(e),Y2r),u(f(e),V2r)}),N(yK,function(t,n,e){var i=o(zp,t,n);return o(C0(I2r),i,e)});var eC=[0,rC,_K,zp,yK],nC=function t(n,e,i,x){return t.fun(n,e,i,x)},hK=function t(n,e,i){return t.fun(n,e,i)},Kp=function t(n,e,i,x){return t.fun(n,e,i,x)},dK=function t(n,e,i){return t.fun(n,e,i)};N(nC,function(t,n,e,i){u(f(e),F2r),o(t,e,i[1]),u(f(e),T2r);var x=i[2];function c(s){return u(n,s)}return R(Kp,function(s){return u(t,s)},c,e,x),u(f(e),O2r)}),N(hK,function(t,n,e){var i=o(nC,t,n);return o(C0(g2r),i,e)}),N(Kp,function(t,n,e,i){u(f(e),l2r),o(f(e),p2r,b2r);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(eC[1],s,c,e,x),u(f(e),m2r),u(f(e),_2r),o(f(e),h2r,y2r);var p=i[2];if(p){g(e,d2r);var y=p[1],T=function(d,w){return g(d,v2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,k2r)}else g(e,w2r);return u(f(e),E2r),u(f(e),S2r)}),N(dK,function(t,n,e){var i=o(Kp,t,n);return o(C0(s2r),i,e)});var kK=[0,nC,hK,Kp,dK],tC=function t(n,e,i,x){return t.fun(n,e,i,x)},wK=function t(n,e,i){return t.fun(n,e,i)},Wp=function t(n,e,i,x){return t.fun(n,e,i,x)},EK=function t(n,e,i){return t.fun(n,e,i)};N(tC,function(t,n,e,i){u(f(e),o2r),o(t,e,i[1]),u(f(e),a2r);var x=i[2];function c(s){return u(n,s)}return R(Wp,function(s){return u(t,s)},c,e,x),u(f(e),c2r)}),N(wK,function(t,n,e){var i=o(tC,t,n);return o(C0(x2r),i,e)}),N(Wp,function(t,n,e,i){u(f(e),Wvr),o(f(e),$vr,Jvr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Zvr),u(f(e),Qvr),o(f(e),e2r,r2r);var p=i[2];if(p){g(e,n2r);var y=p[1],T=function(d,w){return g(d,Kvr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,t2r)}else g(e,u2r);return u(f(e),i2r),u(f(e),f2r)}),N(EK,function(t,n,e){var i=o(Wp,t,n);return o(C0(zvr),i,e)});var SK=[0,tC,wK,Wp,EK],uC=function t(n,e,i,x){return t.fun(n,e,i,x)},gK=function t(n,e,i){return t.fun(n,e,i)},Jp=function t(n,e,i,x){return t.fun(n,e,i,x)},FK=function t(n,e,i){return t.fun(n,e,i)};N(uC,function(t,n,e,i){u(f(e),Xvr),o(t,e,i[1]),u(f(e),Yvr);var x=i[2];function c(s){return u(n,s)}return R(Jp,function(s){return u(t,s)},c,e,x),u(f(e),Vvr)}),N(gK,function(t,n,e){var i=o(uC,t,n);return o(C0(Hvr),i,e)}),N(Jp,function(t,n,e,i){u(f(e),pvr),o(f(e),_vr,mvr);var x=i[1];if(x){g(e,yvr);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(SK[1],p,s,e,c),g(e,hvr)}else g(e,dvr);u(f(e),kvr),u(f(e),wvr),o(f(e),Svr,Evr);var y=i[2];u(f(e),gvr);var T=0;le(function(V,f0){V&&u(f(e),bvr);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(eC[1],k0,m0,e,f0),1},T,y),u(f(e),Fvr),u(f(e),Tvr),u(f(e),Ovr),o(f(e),Avr,Ivr);var E=i[3];if(E){g(e,Nvr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(kK[1],G,w,e,d),g(e,Cvr)}else g(e,Pvr);u(f(e),Dvr),u(f(e),Lvr),o(f(e),jvr,Rvr);var A=i[4];if(A){g(e,Gvr);var S=A[1],M=function(V,f0){u(f(V),vvr);var m0=0;return le(function(k0,g0){k0&&u(f(V),svr);function e0(x0){return u(t,x0)}return ur(iu[1],e0,V,g0),1},m0,f0),u(f(V),lvr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,Mvr)}else g(e,Bvr);return u(f(e),qvr),u(f(e),Uvr)}),N(FK,function(t,n,e){var i=o(Jp,t,n);return o(C0(cvr),i,e)});var TK=[0,uC,gK,Jp,FK],iC=function t(n,e,i,x){return t.fun(n,e,i,x)},OK=function t(n,e,i){return t.fun(n,e,i)};N(iC,function(t,n,e,i){u(f(e),q1r),o(f(e),H1r,U1r);var x=i[1];if(x){g(e,X1r);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R($e[22][1],p,s,e,c),g(e,Y1r)}else g(e,V1r);u(f(e),z1r),u(f(e),K1r),o(f(e),J1r,W1r);var y=i[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(TK[1],E,T,e,y),u(f(e),$1r),u(f(e),Z1r),o(f(e),rvr,Q1r);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),evr),u(f(e),nvr),o(f(e),uvr,tvr);var A=i[4];if(A){g(e,ivr);var S=A[1],M=function(V,f0){return g(V,B1r)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,fvr)}else g(e,xvr);return u(f(e),ovr),u(f(e),avr)}),N(OK,function(t,n,e){var i=o(iC,t,n);return o(C0(M1r),i,e)});var Ol=[0,eC,kK,SK,TK,iC,OK],$p=function t(n,e,i,x){return t.fun(n,e,i,x)},IK=function t(n,e,i){return t.fun(n,e,i)},Zp=function t(n,e,i,x){return t.fun(n,e,i,x)},AK=function t(n,e,i){return t.fun(n,e,i)},Qp=function t(n,e,i,x){return t.fun(n,e,i,x)},NK=function t(n,e,i){return t.fun(n,e,i)};N($p,function(t,n,e,i){if(i[0]===0){u(f(e),L1r);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),R1r)}u(f(e),j1r);var p=i[1];function y(T){return u(n,T)}return R(Zp,function(T){return u(t,T)},y,e,p),u(f(e),G1r)}),N(IK,function(t,n,e){var i=o($p,t,n);return o(C0(D1r),i,e)}),N(Zp,function(t,n,e,i){u(f(e),N1r),o(t,e,i[1]),u(f(e),C1r);var x=i[2];function c(s){return u(n,s)}return R(Qp,function(s){return u(t,s)},c,e,x),u(f(e),P1r)}),N(AK,function(t,n,e){var i=o(Zp,t,n);return o(C0(A1r),i,e)}),N(Qp,function(t,n,e,i){u(f(e),k1r),o(f(e),E1r,w1r);var x=i[1];function c(T){return u(n,T)}R($p,function(T){return u(t,T)},c,e,x),u(f(e),S1r),u(f(e),g1r),o(f(e),T1r,F1r);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),O1r),u(f(e),I1r)}),N(NK,function(t,n,e){var i=o(Qp,t,n);return o(C0(d1r),i,e)});var CK=[0,$p,IK,Zp,AK,Qp,NK],fC=function t(n,e,i,x){return t.fun(n,e,i,x)},PK=function t(n,e,i){return t.fun(n,e,i)};N(fC,function(t,n,e,i){u(f(e),e1r),o(f(e),t1r,n1r);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(CK[1],s,c,e,x),u(f(e),u1r),u(f(e),i1r),o(f(e),x1r,f1r);var p=i[2];if(p){g(e,o1r);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,a1r)}else g(e,c1r);u(f(e),s1r),u(f(e),v1r),o(f(e),b1r,l1r);var d=i[3];if(d){g(e,p1r);var w=d[1],G=function(S,M){return g(S,r1r)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,m1r)}else g(e,_1r);return u(f(e),y1r),u(f(e),h1r)}),N(PK,function(t,n,e){var i=o(fC,t,n);return o(C0(Qsr),i,e)});var xC=[0,CK,fC,PK],oC=function t(n,e,i,x){return t.fun(n,e,i,x)},DK=function t(n,e,i){return t.fun(n,e,i)};N(oC,function(t,n,e,i){u(f(e),jsr),o(f(e),Msr,Gsr);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R($e[13],s,c,e,x),u(f(e),Bsr),u(f(e),qsr),o(f(e),Hsr,Usr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[13],T,y,e,p),u(f(e),Xsr),u(f(e),Ysr),o(f(e),zsr,Vsr);var E=i[3];if(E){g(e,Ksr);var d=E[1],w=function(A,S){return g(A,Rsr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Wsr)}else g(e,Jsr);return u(f(e),$sr),u(f(e),Zsr)}),N(DK,function(t,n,e){var i=o(oC,t,n);return o(C0(Lsr),i,e)});var aC=[0,oC,DK],cC=function t(n,e,i,x){return t.fun(n,e,i,x)},LK=function t(n,e,i){return t.fun(n,e,i)};N(cC,function(t,n,e,i){u(f(e),gsr),o(f(e),Tsr,Fsr);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(aC[1],s,c,e,x),u(f(e),Osr),u(f(e),Isr),o(f(e),Nsr,Asr);var p=i[2];return o(f(e),Csr,p),u(f(e),Psr),u(f(e),Dsr)}),N(LK,function(t,n,e){var i=o(cC,t,n);return o(C0(Ssr),i,e)});var RK=[0,cC,LK],sC=function t(n,e,i,x){return t.fun(n,e,i,x)},jK=function t(n,e,i){return t.fun(n,e,i)},r5=function t(n,e,i,x){return t.fun(n,e,i,x)},GK=function t(n,e,i){return t.fun(n,e,i)},e5=function t(n,e,i,x){return t.fun(n,e,i,x)},MK=function t(n,e,i){return t.fun(n,e,i)};N(sC,function(t,n,e,i){u(f(e),ksr),o(t,e,i[1]),u(f(e),wsr);var x=i[2];function c(s){return u(n,s)}return R(r5,function(s){return u(t,s)},c,e,x),u(f(e),Esr)}),N(jK,function(t,n,e){var i=o(sC,t,n);return o(C0(dsr),i,e)}),N(r5,function(t,n,e,i){u(f(e),Ncr),o(f(e),Pcr,Ccr);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(qe[7][1][1],s,c,e,x),u(f(e),Dcr),u(f(e),Lcr),o(f(e),jcr,Rcr);var p=i[2];function y(m0){return u(n,m0)}R(e5,function(m0){return u(t,m0)},y,e,p),u(f(e),Gcr),u(f(e),Mcr),o(f(e),qcr,Bcr);var T=i[3];o(f(e),Ucr,T),u(f(e),Hcr),u(f(e),Xcr),o(f(e),Vcr,Ycr);var E=i[4];o(f(e),zcr,E),u(f(e),Kcr),u(f(e),Wcr),o(f(e),$cr,Jcr);var d=i[5];o(f(e),Zcr,d),u(f(e),Qcr),u(f(e),rsr),o(f(e),nsr,esr);var w=i[6];o(f(e),tsr,w),u(f(e),usr),u(f(e),isr),o(f(e),xsr,fsr);var G=i[7];if(G){g(e,osr);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,asr)}else g(e,csr);u(f(e),ssr),u(f(e),vsr),o(f(e),bsr,lsr);var M=i[8];if(M){g(e,psr);var K=M[1],V=function(m0,k0){return g(m0,Acr)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,msr)}else g(e,_sr);return u(f(e),ysr),u(f(e),hsr)}),N(GK,function(t,n,e){var i=o(r5,t,n);return o(C0(Icr),i,e)}),N(e5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),_cr);var x=i[1],c=function(S){return u(n,S)},s=function(S){return u(t,S)};return R($e[13],s,c,e,x),u(f(e),ycr);case 1:var p=i[1];u(f(e),hcr),u(f(e),dcr),o(t,e,p[1]),u(f(e),kcr);var y=p[2],T=function(S){return u(n,S)},E=function(S){return u(t,S)};return R(Ol[5],E,T,e,y),u(f(e),wcr),u(f(e),Ecr);default:var d=i[1];u(f(e),Scr),u(f(e),gcr),o(t,e,d[1]),u(f(e),Fcr);var w=d[2],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(Ol[5],A,G,e,w),u(f(e),Tcr),u(f(e),Ocr)}}),N(MK,function(t,n,e){var i=o(e5,t,n);return o(C0(mcr),i,e)});var BK=[0,sC,jK,r5,GK,e5,MK],vC=function t(n,e,i,x){return t.fun(n,e,i,x)},qK=function t(n,e,i){return t.fun(n,e,i)},n5=function t(n,e,i,x){return t.fun(n,e,i,x)},UK=function t(n,e,i){return t.fun(n,e,i)};N(vC,function(t,n,e,i){u(f(e),lcr),o(t,e,i[1]),u(f(e),bcr);var x=i[2];function c(s){return u(n,s)}return R(n5,function(s){return u(t,s)},c,e,x),u(f(e),pcr)}),N(qK,function(t,n,e){var i=o(vC,t,n);return o(C0(vcr),i,e)}),N(n5,function(t,n,e,i){u(f(e),rcr),o(f(e),ncr,ecr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),tcr),u(f(e),ucr),o(f(e),fcr,icr);var p=i[2];if(p){g(e,xcr);var y=p[1],T=function(d,w){return g(d,Qar)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,ocr)}else g(e,acr);return u(f(e),ccr),u(f(e),scr)}),N(UK,function(t,n,e){var i=o(n5,t,n);return o(C0(Zar),i,e)});var HK=[0,vC,qK,n5,UK],t5=function t(n,e,i,x){return t.fun(n,e,i,x)},XK=function t(n,e,i){return t.fun(n,e,i)},lC=function t(n,e,i,x){return t.fun(n,e,i,x)},YK=function t(n,e,i){return t.fun(n,e,i)};N(t5,function(t,n,e,i){u(f(e),_ar),o(f(e),har,yar);var x=i[1];if(x){g(e,dar);var c=x[1],s=function(g0){return u(t,g0)},p=function(g0){return u(t,g0)};R(Rn[1],p,s,e,c),g(e,kar)}else g(e,war);u(f(e),Ear),u(f(e),Sar),o(f(e),Far,gar);var y=i[2];function T(g0){return u(n,g0)}function E(g0){return u(t,g0)}R($e[13],E,T,e,y),u(f(e),Tar),u(f(e),Oar),o(f(e),Aar,Iar);var d=i[3];function w(g0){return u(n,g0)}function G(g0){return u(t,g0)}R($e[13],G,w,e,d),u(f(e),Nar),u(f(e),Car),o(f(e),Dar,Par);var A=i[4];o(f(e),Lar,A),u(f(e),Rar),u(f(e),jar),o(f(e),Mar,Gar);var S=i[5];if(S){g(e,Bar);var M=S[1],K=function(g0){return u(t,g0)};ur(zv[1],K,e,M),g(e,qar)}else g(e,Uar);u(f(e),Har),u(f(e),Xar),o(f(e),Var,Yar);var V=i[6];if(V){g(e,zar);var f0=V[1],m0=function(g0,e0){return g(g0,mar)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,Kar)}else g(e,War);return u(f(e),Jar),u(f(e),$ar)}),N(XK,function(t,n,e){var i=o(t5,t,n);return o(C0(par),i,e)}),N(lC,function(t,n,e,i){u(f(e),sar),o(t,e,i[1]),u(f(e),lar);var x=i[2];function c(s){return u(n,s)}return R(t5,function(s){return u(t,s)},c,e,x),u(f(e),bar)}),N(YK,function(t,n,e){var i=o(lC,t,n);return o(C0(car),i,e)});var VK=[0,t5,XK,lC,YK],bC=function t(n,e,i,x){return t.fun(n,e,i,x)},zK=function t(n,e,i){return t.fun(n,e,i)},u5=function t(n,e,i,x){return t.fun(n,e,i,x)},KK=function t(n,e,i){return t.fun(n,e,i)};N(bC,function(t,n,e,i){u(f(e),xar),o(t,e,i[1]),u(f(e),oar);var x=i[2];function c(s){return u(n,s)}return R(u5,function(s){return u(t,s)},c,e,x),u(f(e),aar)}),N(zK,function(t,n,e){var i=o(bC,t,n);return o(C0(far),i,e)}),N(u5,function(t,n,e,i){u(f(e),Bor),o(f(e),Uor,qor);var x=i[1];u(f(e),Hor),o(t,e,x[1]),u(f(e),Xor);var c=x[2];function s(G){return u(n,G)}function p(G){return u(t,G)}R(Ol[5],p,s,e,c),u(f(e),Yor),u(f(e),Vor),u(f(e),zor),o(f(e),Wor,Kor);var y=i[2];o(f(e),Jor,y),u(f(e),$or),u(f(e),Zor),o(f(e),rar,Qor);var T=i[3];if(T){g(e,ear);var E=T[1],d=function(G,A){return g(G,Mor)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,nar)}else g(e,tar);return u(f(e),uar),u(f(e),iar)}),N(KK,function(t,n,e){var i=o(u5,t,n);return o(C0(Gor),i,e)});var WK=[0,bC,zK,u5,KK],pC=function t(n,e,i,x){return t.fun(n,e,i,x)},JK=function t(n,e,i){return t.fun(n,e,i)},i5=function t(n,e,i,x){return t.fun(n,e,i,x)},$K=function t(n,e,i){return t.fun(n,e,i)};N(pC,function(t,n,e,i){u(f(e),Lor),o(t,e,i[1]),u(f(e),Ror);var x=i[2];function c(s){return u(n,s)}return R(i5,function(s){return u(t,s)},c,e,x),u(f(e),jor)}),N(JK,function(t,n,e){var i=o(pC,t,n);return o(C0(Dor),i,e)}),N(i5,function(t,n,e,i){u(f(e),nor),o(f(e),uor,tor);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),ior),u(f(e),xor),o(f(e),aor,oor);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[13],T,y,e,p),u(f(e),cor),u(f(e),sor),o(f(e),lor,vor);var E=i[3];o(f(e),bor,E),u(f(e),por),u(f(e),mor),o(f(e),yor,_or);var d=i[4];o(f(e),hor,d),u(f(e),dor),u(f(e),kor),o(f(e),Eor,wor);var w=i[5];o(f(e),Sor,w),u(f(e),gor),u(f(e),For),o(f(e),Oor,Tor);var G=i[6];if(G){g(e,Ior);var A=G[1],S=function(K,V){return g(K,eor)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Aor)}else g(e,Nor);return u(f(e),Cor),u(f(e),Por)}),N($K,function(t,n,e){var i=o(i5,t,n);return o(C0(ror),i,e)});var ZK=[0,pC,JK,i5,$K],mC=function t(n,e,i,x){return t.fun(n,e,i,x)},QK=function t(n,e,i){return t.fun(n,e,i)},f5=function t(n,e,i,x){return t.fun(n,e,i,x)},rW=function t(n,e,i){return t.fun(n,e,i)};N(mC,function(t,n,e,i){u(f(e),Axr),o(f(e),Cxr,Nxr);var x=i[1];o(f(e),Pxr,x),u(f(e),Dxr),u(f(e),Lxr),o(f(e),jxr,Rxr);var c=i[2];o(f(e),Gxr,c),u(f(e),Mxr),u(f(e),Bxr),o(f(e),Uxr,qxr);var s=i[3];u(f(e),Hxr);var p=0;le(function(w,G){w&&u(f(e),Ixr);function A(S){return u(n,S)}return R(f5,function(S){return u(t,S)},A,e,G),1},p,s),u(f(e),Xxr),u(f(e),Yxr),u(f(e),Vxr),o(f(e),Kxr,zxr);var y=i[4];if(y){g(e,Wxr);var T=y[1],E=function(w,G){u(f(w),Txr);var A=0;return le(function(S,M){S&&u(f(w),Fxr);function K(V){return u(t,V)}return ur(iu[1],K,w,M),1},A,G),u(f(w),Oxr)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Jxr)}else g(e,$xr);return u(f(e),Zxr),u(f(e),Qxr)}),N(QK,function(t,n,e){var i=o(mC,t,n);return o(C0(gxr),i,e)}),N(f5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),pxr);var x=i[1],c=function(f0){return u(n,f0)},s=function(f0){return u(t,f0)};return R(BK[1],s,c,e,x),u(f(e),mxr);case 1:u(f(e),_xr);var p=i[1],y=function(f0){return u(n,f0)},T=function(f0){return u(t,f0)};return R(HK[1],T,y,e,p),u(f(e),yxr);case 2:u(f(e),hxr);var E=i[1],d=function(f0){return u(n,f0)},w=function(f0){return u(t,f0)};return R(VK[3],w,d,e,E),u(f(e),dxr);case 3:u(f(e),kxr);var G=i[1],A=function(f0){return u(n,f0)},S=function(f0){return u(t,f0)};return R(WK[1],S,A,e,G),u(f(e),wxr);default:u(f(e),Exr);var M=i[1],K=function(f0){return u(n,f0)},V=function(f0){return u(t,f0)};return R(ZK[1],V,K,e,M),u(f(e),Sxr)}}),N(rW,function(t,n,e){var i=o(f5,t,n);return o(C0(bxr),i,e)});var _C=[0,BK,HK,VK,WK,ZK,mC,QK,f5,rW],yC=function t(n,e,i,x){return t.fun(n,e,i,x)},eW=function t(n,e,i){return t.fun(n,e,i)};N(yC,function(t,n,e,i){u(f(e),zfr),o(f(e),Wfr,Kfr);var x=i[1];u(f(e),Jfr),o(t,e,x[1]),u(f(e),$fr);var c=x[2];function s(A){return u(n,A)}function p(A){return u(t,A)}R(_C[6],p,s,e,c),u(f(e),Zfr),u(f(e),Qfr),u(f(e),rxr),o(f(e),nxr,exr);var y=i[2];u(f(e),txr);var T=0;le(function(A,S){A&&u(f(e),Hfr),u(f(e),Xfr),o(t,e,S[1]),u(f(e),Yfr);var M=S[2];function K(f0){return u(n,f0)}function V(f0){return u(t,f0)}return R(xC[2],V,K,e,M),u(f(e),Vfr),1},T,y),u(f(e),uxr),u(f(e),ixr),u(f(e),fxr),o(f(e),oxr,xxr);var E=i[3];if(E){g(e,axr);var d=E[1],w=function(A,S){return g(A,Ufr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,cxr)}else g(e,sxr);return u(f(e),vxr),u(f(e),lxr)}),N(eW,function(t,n,e){var i=o(yC,t,n);return o(C0(qfr),i,e)});var nW=[0,yC,eW],hC=function t(n,e,i,x){return t.fun(n,e,i,x)},tW=function t(n,e,i){return t.fun(n,e,i)};N(hC,function(t,n,e,i){u(f(e),Ifr),o(f(e),Nfr,Afr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),Cfr),u(f(e),Pfr),o(f(e),Lfr,Dfr);var p=i[2];if(p){g(e,Rfr);var y=p[1],T=function(d,w){return g(d,Ofr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,jfr)}else g(e,Gfr);return u(f(e),Mfr),u(f(e),Bfr)}),N(tW,function(t,n,e){var i=o(hC,t,n);return o(C0(Tfr),i,e)});var uW=[0,hC,tW],x5=function t(n,e,i,x){return t.fun(n,e,i,x)},iW=function t(n,e,i){return t.fun(n,e,i)},o5=function t(n,e,i,x){return t.fun(n,e,i,x)},fW=function t(n,e,i){return t.fun(n,e,i)},a5=function t(n,e,i,x){return t.fun(n,e,i,x)},xW=function t(n,e,i){return t.fun(n,e,i)};N(x5,function(t,n,e,i){if(i[0]===0){u(f(e),Efr);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),Sfr)}u(f(e),gfr);var p=i[1];function y(T){return u(n,T)}return R(a5,function(T){return u(t,T)},y,e,p),u(f(e),Ffr)}),N(iW,function(t,n,e){var i=o(x5,t,n);return o(C0(wfr),i,e)}),N(o5,function(t,n,e,i){u(f(e),lfr),o(f(e),pfr,bfr);var x=i[1];function c(T){return u(n,T)}R(x5,function(T){return u(t,T)},c,e,x),u(f(e),mfr),u(f(e),_fr),o(f(e),hfr,yfr);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),dfr),u(f(e),kfr)}),N(fW,function(t,n,e){var i=o(o5,t,n);return o(C0(vfr),i,e)}),N(a5,function(t,n,e,i){u(f(e),afr),o(n,e,i[1]),u(f(e),cfr);var x=i[2];function c(s){return u(n,s)}return R(o5,function(s){return u(t,s)},c,e,x),u(f(e),sfr)}),N(xW,function(t,n,e){var i=o(a5,t,n);return o(C0(ofr),i,e)});var oW=[0,x5,iW,o5,fW,a5,xW],dC=function t(n,e,i,x){return t.fun(n,e,i,x)},aW=function t(n,e,i){return t.fun(n,e,i)};N(dC,function(t,n,e,i){u(f(e),Jir),o(f(e),Zir,$ir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(oW[1],s,c,e,x),u(f(e),Qir),u(f(e),rfr),o(f(e),nfr,efr);var p=i[2];if(p){g(e,tfr);var y=p[1],T=function(d,w){return g(d,Wir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,ufr)}else g(e,ifr);return u(f(e),ffr),u(f(e),xfr)}),N(aW,function(t,n,e){var i=o(dC,t,n);return o(C0(Kir),i,e)});var cW=[0,oW,dC,aW],kC=function t(n,e,i,x){return t.fun(n,e,i,x)},sW=function t(n,e,i){return t.fun(n,e,i)};N(kC,function(t,n,e,i){u(f(e),Dir),o(f(e),Rir,Lir);var x=i[1];u(f(e),jir);var c=0;le(function(E,d){E&&u(f(e),Pir);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),Gir),u(f(e),Mir),u(f(e),Bir),o(f(e),Uir,qir);var s=i[2];if(s){g(e,Hir);var p=s[1],y=function(E,d){return g(E,Cir)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Xir)}else g(e,Yir);return u(f(e),Vir),u(f(e),zir)}),N(sW,function(t,n,e){var i=o(kC,t,n);return o(C0(Nir),i,e)});var vW=[0,kC,sW],wC=function t(n,e,i,x){return t.fun(n,e,i,x)},lW=function t(n,e,i){return t.fun(n,e,i)};N(wC,function(t,n,e,i){u(f(e),hir),o(f(e),kir,dir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),wir),u(f(e),Eir),o(f(e),gir,Sir);var p=i[2];if(p){g(e,Fir);var y=p[1],T=function(d,w){return g(d,yir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Tir)}else g(e,Oir);return u(f(e),Iir),u(f(e),Air)}),N(lW,function(t,n,e){var i=o(wC,t,n);return o(C0(_ir),i,e)});var bW=[0,wC,lW],EC=function t(n,e,i,x){return t.fun(n,e,i,x)},pW=function t(n,e,i){return t.fun(n,e,i)};N(EC,function(t,n,e,i){u(f(e),Q7r),o(f(e),eir,rir);var x=i[1];u(f(e),nir);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),tir);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),uir),u(f(e),iir);var d=x[3],w=0;le(function(K,V){K&&u(f(e),Z7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),fir),u(f(e),xir),u(f(e),oir),u(f(e),air),o(f(e),sir,cir);var G=i[2];if(G){g(e,vir);var A=G[1],S=function(K,V){return g(K,$7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,lir)}else g(e,bir);return u(f(e),pir),u(f(e),mir)}),N(pW,function(t,n,e){var i=o(EC,t,n);return o(C0(J7r),i,e)});var mW=[0,EC,pW],SC=function t(n,e,i,x){return t.fun(n,e,i,x)},_W=function t(n,e,i){return t.fun(n,e,i)};N(SC,function(t,n,e,i){u(f(e),C7r),o(f(e),D7r,P7r);var x=i[1];u(f(e),L7r);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),R7r);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),j7r),u(f(e),G7r);var d=x[3],w=0;le(function(K,V){K&&u(f(e),N7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),M7r),u(f(e),B7r),u(f(e),q7r),u(f(e),U7r),o(f(e),X7r,H7r);var G=i[2];if(G){g(e,Y7r);var A=G[1],S=function(K,V){return g(K,A7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,V7r)}else g(e,z7r);return u(f(e),K7r),u(f(e),W7r)}),N(_W,function(t,n,e){var i=o(SC,t,n);return o(C0(I7r),i,e)});var yW=[0,SC,_W],c5=function t(n,e,i,x){return t.fun(n,e,i,x)},hW=function t(n,e,i){return t.fun(n,e,i)},s5=function t(n,e,i,x){return t.fun(n,e,i,x)},dW=function t(n,e,i){return t.fun(n,e,i)},gC=function t(n,e,i,x){return t.fun(n,e,i,x)},kW=function t(n,e,i){return t.fun(n,e,i)},FC=function t(n,e,i,x){return t.fun(n,e,i,x)},wW=function t(n,e,i){return t.fun(n,e,i)};N(c5,function(t,n,e,i){u(f(e),F7r),o(n,e,i[1]),u(f(e),T7r);var x=i[2];function c(s){return u(n,s)}return R(s5,function(s){return u(t,s)},c,e,x),u(f(e),O7r)}),N(hW,function(t,n,e){var i=o(c5,t,n);return o(C0(g7r),i,e)}),N(s5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];if(u(f(e),Vtr),x){g(e,ztr);var c=x[1],s=function(U,Y){return g(U,Ytr)},p=function(U){return u(t,U)};R(Dr[1],p,s,e,c),g(e,Ktr)}else g(e,Wtr);return u(f(e),Jtr);case 1:var y=i[1];if(u(f(e),$tr),y){g(e,Ztr);var T=y[1],E=function(U,Y){return g(U,Xtr)},d=function(U){return u(t,U)};R(Dr[1],d,E,e,T),g(e,Qtr)}else g(e,rur);return u(f(e),eur);case 2:var w=i[1];if(u(f(e),nur),w){g(e,tur);var G=w[1],A=function(U,Y){return g(U,Htr)},S=function(U){return u(t,U)};R(Dr[1],S,A,e,G),g(e,uur)}else g(e,iur);return u(f(e),fur);case 3:var M=i[1];if(u(f(e),xur),M){g(e,our);var K=M[1],V=function(U,Y){return g(U,Utr)},f0=function(U){return u(t,U)};R(Dr[1],f0,V,e,K),g(e,aur)}else g(e,cur);return u(f(e),sur);case 4:var m0=i[1];if(u(f(e),vur),m0){g(e,lur);var k0=m0[1],g0=function(U,Y){return g(U,qtr)},e0=function(U){return u(t,U)};R(Dr[1],e0,g0,e,k0),g(e,bur)}else g(e,pur);return u(f(e),mur);case 5:var x0=i[1];if(u(f(e),_ur),x0){g(e,yur);var l=x0[1],c0=function(U,Y){return g(U,Btr)},t0=function(U){return u(t,U)};R(Dr[1],t0,c0,e,l),g(e,hur)}else g(e,dur);return u(f(e),kur);case 6:var o0=i[1];if(u(f(e),wur),o0){g(e,Eur);var w0=o0[1],_0=function(U,Y){return g(U,Mtr)},E0=function(U){return u(t,U)};R(Dr[1],E0,_0,e,w0),g(e,Sur)}else g(e,gur);return u(f(e),Fur);case 7:var U0=i[1];if(u(f(e),Tur),U0){g(e,Our);var b=U0[1],R0=function(U,Y){return g(U,Gtr)},X=function(U){return u(t,U)};R(Dr[1],X,R0,e,b),g(e,Iur)}else g(e,Aur);return u(f(e),Nur);case 8:var s0=i[1];if(u(f(e),Cur),s0){g(e,Pur);var hr=s0[1],Ar=function(U,Y){return g(U,jtr)},or=function(U){return u(t,U)};R(Dr[1],or,Ar,e,hr),g(e,Dur)}else g(e,Lur);return u(f(e),Rur);case 9:var W0=i[1];if(u(f(e),jur),W0){g(e,Gur);var Lr=W0[1],Tr=function(U,Y){return g(U,Rtr)},Hr=function(U){return u(t,U)};R(Dr[1],Hr,Tr,e,Lr),g(e,Mur)}else g(e,Bur);return u(f(e),qur);case 10:var Or=i[1];if(u(f(e),Uur),Or){g(e,Hur);var fr=Or[1],Rr=function(U,Y){return g(U,Ltr)},Wr=function(U){return u(t,U)};R(Dr[1],Wr,Rr,e,fr),g(e,Xur)}else g(e,Yur);return u(f(e),Vur);case 11:u(f(e),zur);var Jr=i[1],ar=function(U){return u(n,U)},_r=function(U){return u(t,U)};return R(uW[1],_r,ar,e,Jr),u(f(e),Kur);case 12:u(f(e),Wur);var Ir=i[1],fe=function(U){return u(n,U)},v0=function(U){return u(t,U)};return R(Ol[5],v0,fe,e,Ir),u(f(e),Jur);case 13:u(f(e),$ur);var P=i[1],L=function(U){return u(n,U)},Q=function(U){return u(t,U)};return R(_C[6],Q,L,e,P),u(f(e),Zur);case 14:u(f(e),Qur);var i0=i[1],l0=function(U){return u(n,U)},S0=function(U){return u(t,U)};return R(nW[1],S0,l0,e,i0),u(f(e),r7r);case 15:u(f(e),e7r);var T0=i[1],rr=function(U){return u(n,U)},L0=function(U){return u(t,U)};return R(bW[1],L0,rr,e,T0),u(f(e),n7r);case 16:u(f(e),t7r);var B=i[1],Z=function(U){return u(n,U)},p0=function(U){return u(t,U)};return R(xC[2],p0,Z,e,B),u(f(e),u7r);case 17:u(f(e),i7r);var b0=i[1],O0=function(U){return u(n,U)},M0=function(U){return u(t,U)};return R(aC[1],M0,O0,e,b0),u(f(e),f7r);case 18:u(f(e),x7r);var er=i[1],yr=function(U){return u(n,U)},vr=function(U){return u(t,U)};return R(RK[1],vr,yr,e,er),u(f(e),o7r);case 19:u(f(e),a7r);var $0=i[1],Er=function(U){return u(n,U)},Mr=function(U){return u(t,U)};return R(mW[1],Mr,Er,e,$0),u(f(e),c7r);case 20:u(f(e),s7r);var Br=i[1],qr=function(U){return u(n,U)},jr=function(U){return u(t,U)};return R(yW[1],jr,qr,e,Br),u(f(e),v7r);case 21:u(f(e),l7r);var $r=i[1],ne=function(U){return u(n,U)},Qr=function(U){return u(t,U)};return R(cW[2],Qr,ne,e,$r),u(f(e),b7r);case 22:u(f(e),p7r);var be=i[1],ae=function(U){return u(n,U)},pe=function(U){return u(t,U)};return R(vW[1],pe,ae,e,be),u(f(e),m7r);case 23:u(f(e),_7r);var oe=i[1],ce=function(U){return u(t,U)};return ur(g1[1],ce,e,oe),u(f(e),y7r);case 24:u(f(e),h7r);var ge=i[1],q0=function(U){return u(t,U)};return ur(BN[1],q0,e,ge),u(f(e),d7r);case 25:u(f(e),k7r);var Fr=i[1],_=function(U){return u(t,U)};return ur(Zz[1],_,e,Fr),u(f(e),w7r);default:u(f(e),E7r);var k=i[1],I=function(U){return u(t,U)};return ur(qN[1],I,e,k),u(f(e),S7r)}}),N(dW,function(t,n,e){var i=o(s5,t,n);return o(C0(Dtr),i,e)}),N(gC,function(t,n,e,i){u(f(e),Ntr),o(t,e,i[1]),u(f(e),Ctr);var x=i[2];function c(s){return u(n,s)}return R(c5,function(s){return u(t,s)},c,e,x),u(f(e),Ptr)}),N(kW,function(t,n,e){var i=o(gC,t,n);return o(C0(Atr),i,e)}),N(FC,function(t,n,e,i){if(i[0]===0)return u(f(e),Ftr),o(n,e,i[1]),u(f(e),Ttr);u(f(e),Otr);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R($e[17],s,c,e,x),u(f(e),Itr)}),N(wW,function(t,n,e){var i=o(FC,t,n);return o(C0(gtr),i,e)});var TC=function t(n,e,i,x){return t.fun(n,e,i,x)},EW=function t(n,e,i){return t.fun(n,e,i)},v5=function t(n,e,i,x){return t.fun(n,e,i,x)},SW=function t(n,e,i){return t.fun(n,e,i)};N(TC,function(t,n,e,i){u(f(e),wtr),o(t,e,i[1]),u(f(e),Etr);var x=i[2];function c(s){return u(n,s)}return R(v5,function(s){return u(t,s)},c,e,x),u(f(e),Str)}),N(EW,function(t,n,e){var i=o(TC,t,n);return o(C0(ktr),i,e)}),N(v5,function(t,n,e,i){u(f(e),Znr),o(f(e),rtr,Qnr);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),etr),u(f(e),ntr),o(f(e),utr,ttr);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[19],T,y,e,p),u(f(e),itr),u(f(e),ftr),o(f(e),otr,xtr);var E=i[3];if(E){g(e,atr);var d=E[1],w=function(K){return u(t,K)};ur(zv[1],w,e,d),g(e,ctr)}else g(e,str);u(f(e),vtr),u(f(e),ltr),o(f(e),ptr,btr);var G=i[4];if(G){g(e,mtr);var A=G[1],S=function(K){return u(n,K)},M=function(K){return u(t,K)};R($e[13],M,S,e,A),g(e,_tr)}else g(e,ytr);return u(f(e),htr),u(f(e),dtr)}),N(SW,function(t,n,e){var i=o(v5,t,n);return o(C0($nr),i,e)});var gW=[0,TC,EW,v5,SW],OC=function t(n,e,i,x){return t.fun(n,e,i,x)},FW=function t(n,e,i){return t.fun(n,e,i)},l5=function t(n,e,i,x){return t.fun(n,e,i,x)},TW=function t(n,e,i){return t.fun(n,e,i)};N(OC,function(t,n,e,i){u(f(e),Knr),o(t,e,i[1]),u(f(e),Wnr);var x=i[2];function c(s){return u(n,s)}return R(l5,function(s){return u(t,s)},c,e,x),u(f(e),Jnr)}),N(FW,function(t,n,e){var i=o(OC,t,n);return o(C0(znr),i,e)}),N(l5,function(t,n,e,i){u(f(e),Pnr),o(f(e),Lnr,Dnr);var x=i[1];u(f(e),Rnr);var c=0;le(function(E,d){E&&u(f(e),Cnr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(gW[1],G,w,e,d),1},c,x),u(f(e),jnr),u(f(e),Gnr),u(f(e),Mnr),o(f(e),qnr,Bnr);var s=i[2];if(s){g(e,Unr);var p=s[1],y=function(E,d){u(f(E),Anr);var w=0;return le(function(G,A){G&&u(f(E),Inr);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),Nnr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Hnr)}else g(e,Xnr);return u(f(e),Ynr),u(f(e),Vnr)}),N(TW,function(t,n,e){var i=o(l5,t,n);return o(C0(Onr),i,e)});var IC=function t(n,e,i,x){return t.fun(n,e,i,x)},OW=function t(n,e,i){return t.fun(n,e,i)},b5=function t(n,e,i,x){return t.fun(n,e,i,x)},IW=function t(n,e,i){return t.fun(n,e,i)},wee=[0,OC,FW,l5,TW];N(IC,function(t,n,e,i){u(f(e),gnr),o(t,e,i[1]),u(f(e),Fnr);var x=i[2];function c(s){return u(n,s)}return R(b5,function(s){return u(t,s)},c,e,x),u(f(e),Tnr)}),N(OW,function(t,n,e){var i=o(IC,t,n);return o(C0(Snr),i,e)}),N(b5,function(t,n,e,i){u(f(e),cnr),o(f(e),vnr,snr);var x=i[1];u(f(e),lnr);var c=0;le(function(E,d){E&&u(f(e),anr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),bnr),u(f(e),pnr),u(f(e),mnr),o(f(e),ynr,_nr);var s=i[2];if(s){g(e,hnr);var p=s[1],y=function(E,d){u(f(E),xnr);var w=0;return le(function(G,A){G&&u(f(E),fnr);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),onr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,dnr)}else g(e,knr);return u(f(e),wnr),u(f(e),Enr)}),N(IW,function(t,n,e){var i=o(b5,t,n);return o(C0(inr),i,e)});var AC=function t(n,e,i,x){return t.fun(n,e,i,x)},AW=function t(n,e,i){return t.fun(n,e,i)},p5=function t(n,e,i,x){return t.fun(n,e,i,x)},NW=function t(n,e,i){return t.fun(n,e,i)},m5=function t(n,e,i,x){return t.fun(n,e,i,x)},CW=function t(n,e,i){return t.fun(n,e,i)},Eee=[0,IC,OW,b5,IW];N(AC,function(t,n,e,i){u(f(e),nnr),o(t,e,i[1]),u(f(e),tnr);var x=i[2];function c(s){return u(n,s)}return R(p5,function(s){return u(t,s)},c,e,x),u(f(e),unr)}),N(AW,function(t,n,e){var i=o(AC,t,n);return o(C0(enr),i,e)}),N(p5,function(t,n,e,i){u(f(e),Her),o(f(e),Yer,Xer);var x=i[1];function c(E){return u(n,E)}R(m5,function(E){return u(t,E)},c,e,x),u(f(e),Ver),u(f(e),zer),o(f(e),Wer,Ker);var s=i[2];if(s){g(e,Jer);var p=s[1],y=function(E,d){return g(E,Uer)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,$er)}else g(e,Zer);return u(f(e),Qer),u(f(e),rnr)}),N(NW,function(t,n,e){var i=o(p5,t,n);return o(C0(qer),i,e)}),N(m5,function(t,n,e,i){if(i){u(f(e),Ger);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(qe[31],s,c,e,x),u(f(e),Mer)}return g(e,Ber)}),N(CW,function(t,n,e){var i=o(m5,t,n);return o(C0(jer),i,e)}),mu(K3r,$e,[0,Ol,xC,aC,RK,_C,nW,uW,cW,vW,bW,mW,yW,c5,hW,s5,dW,gC,kW,FC,wW,gW,wee,Eee,[0,AC,AW,p5,NW,m5,CW]]);var NC=function t(n,e,i,x){return t.fun(n,e,i,x)},PW=function t(n,e,i){return t.fun(n,e,i)};N(NC,function(t,n,e,i){u(f(e),Eer),o(f(e),ger,Ser);var x=i[1];u(f(e),Fer);var c=0;le(function(E,d){E&&u(f(e),wer);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(Yu[35],G,w,e,d),1},c,x),u(f(e),Ter),u(f(e),Oer),u(f(e),Ier),o(f(e),Ner,Aer);var s=i[2];if(s){g(e,Cer);var p=s[1],y=function(E,d){u(f(E),der);var w=0;return le(function(G,A){G&&u(f(E),her);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),ker)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Per)}else g(e,Der);return u(f(e),Ler),u(f(e),Rer)}),N(PW,function(t,n,e){var i=o(NC,t,n);return o(C0(yer),i,e)});var Kv=[0,NC,PW],CC=function t(n,e,i,x){return t.fun(n,e,i,x)},DW=function t(n,e,i){return t.fun(n,e,i)},_5=function t(n,e,i,x){return t.fun(n,e,i,x)},LW=function t(n,e,i){return t.fun(n,e,i)};N(CC,function(t,n,e,i){u(f(e),per),o(t,e,i[1]),u(f(e),mer);var x=i[2];function c(s){return u(n,s)}return R(_5,function(s){return u(t,s)},c,e,x),u(f(e),_er)}),N(DW,function(t,n,e){var i=o(CC,t,n);return o(C0(ber),i,e)}),N(_5,function(t,n,e,i){u(f(e),ner),o(f(e),uer,ter);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Yu[35],s,c,e,x),u(f(e),ier),u(f(e),fer),o(f(e),oer,xer);var p=i[2];if(p){g(e,aer);var y=p[1],T=function(d,w){return g(d,eer)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,cer)}else g(e,ser);return u(f(e),ver),u(f(e),ler)}),N(LW,function(t,n,e){var i=o(_5,t,n);return o(C0(rer),i,e)});var RW=[0,CC,DW,_5,LW],PC=function t(n,e,i,x){return t.fun(n,e,i,x)},jW=function t(n,e,i){return t.fun(n,e,i)};N(PC,function(t,n,e,i){u(f(e),Nrr),o(f(e),Prr,Crr);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[31],s,c,e,x),u(f(e),Drr),u(f(e),Lrr),o(f(e),jrr,Rrr);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R(Yu[35],T,y,e,p),u(f(e),Grr),u(f(e),Mrr),o(f(e),qrr,Brr);var E=i[3];if(E){g(e,Urr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(RW[1],G,w,e,d),g(e,Hrr)}else g(e,Xrr);u(f(e),Yrr),u(f(e),Vrr),o(f(e),Krr,zrr);var A=i[4];if(A){g(e,Wrr);var S=A[1],M=function(V,f0){return g(V,Arr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,Jrr)}else g(e,$rr);return u(f(e),Zrr),u(f(e),Qrr)}),N(jW,function(t,n,e){var i=o(PC,t,n);return o(C0(Irr),i,e)});var GW=[0,RW,PC,jW],DC=function t(n,e,i,x){return t.fun(n,e,i,x)},MW=function t(n,e,i){return t.fun(n,e,i)};N(DC,function(t,n,e,i){u(f(e),lrr),o(f(e),prr,brr);var x=i[1];function c(A){return u(t,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),mrr),u(f(e),_rr),o(f(e),hrr,yrr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),drr),u(f(e),krr),o(f(e),Err,wrr);var E=i[3];if(E){g(e,Srr);var d=E[1],w=function(A,S){return g(A,vrr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,grr)}else g(e,Frr);return u(f(e),Trr),u(f(e),Orr)}),N(MW,function(t,n,e){var i=o(DC,t,n);return o(C0(srr),i,e)});var BW=[0,DC,MW],LC=function t(n,e,i){return t.fun(n,e,i)},qW=function t(n,e){return t.fun(n,e)};N(LC,function(t,n,e){u(f(n),J0r),o(f(n),Z0r,$0r);var i=e[1];if(i){g(n,Q0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,rrr)}else g(n,err);u(f(n),nrr),u(f(n),trr),o(f(n),irr,urr);var p=e[2];if(p){g(n,frr);var y=p[1],T=function(d,w){return g(d,W0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,xrr)}else g(n,orr);return u(f(n),arr),u(f(n),crr)}),N(qW,function(t,n){var e=u(LC,t);return o(C0(K0r),e,n)});var UW=[0,LC,qW],RC=function t(n,e,i){return t.fun(n,e,i)},HW=function t(n,e){return t.fun(n,e)};N(RC,function(t,n,e){u(f(n),P0r),o(f(n),L0r,D0r);var i=e[1];if(i){g(n,R0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,j0r)}else g(n,G0r);u(f(n),M0r),u(f(n),B0r),o(f(n),U0r,q0r);var p=e[2];if(p){g(n,H0r);var y=p[1],T=function(d,w){return g(d,C0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,X0r)}else g(n,Y0r);return u(f(n),V0r),u(f(n),z0r)}),N(HW,function(t,n){var e=u(RC,t);return o(C0(N0r),e,n)});var XW=[0,RC,HW],jC=function t(n,e,i){return t.fun(n,e,i)},YW=function t(n,e){return t.fun(n,e)};N(jC,function(t,n,e){u(f(n),E0r),o(f(n),g0r,S0r);var i=e[1];if(i){g(n,F0r);var x=i[1],c=function(p,y){return g(p,w0r)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,T0r)}else g(n,O0r);return u(f(n),I0r),u(f(n),A0r)}),N(YW,function(t,n){var e=u(jC,t);return o(C0(k0r),e,n)});var VW=[0,jC,YW],GC=function t(n,e,i,x){return t.fun(n,e,i,x)},zW=function t(n,e,i){return t.fun(n,e,i)};N(GC,function(t,n,e,i){u(f(e),i0r),o(f(e),x0r,f0r);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),o0r),u(f(e),a0r),o(f(e),s0r,c0r);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),v0r),u(f(e),l0r),o(f(e),p0r,b0r);var E=i[3];if(E){g(e,m0r);var d=E[1],w=function(A,S){return g(A,u0r)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,_0r)}else g(e,y0r);return u(f(e),h0r),u(f(e),d0r)}),N(zW,function(t,n,e){var i=o(GC,t,n);return o(C0(t0r),i,e)});var KW=[0,GC,zW],MC=function t(n,e,i,x){return t.fun(n,e,i,x)},WW=function t(n,e,i){return t.fun(n,e,i)};N(MC,function(t,n,e,i){u(f(e),DQ0),o(f(e),RQ0,LQ0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),jQ0),u(f(e),GQ0),o(f(e),BQ0,MQ0);var p=i[2];if(p){g(e,qQ0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R($e[22][1],E,T,e,y),g(e,UQ0)}else g(e,HQ0);u(f(e),XQ0),u(f(e),YQ0),o(f(e),zQ0,VQ0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),KQ0),u(f(e),WQ0),o(f(e),$Q0,JQ0);var A=i[4];if(A){g(e,ZQ0);var S=A[1],M=function(V,f0){return g(V,PQ0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,QQ0)}else g(e,r0r);return u(f(e),e0r),u(f(e),n0r)}),N(WW,function(t,n,e){var i=o(MC,t,n);return o(C0(CQ0),i,e)});var y5=[0,MC,WW],BC=function t(n,e,i,x){return t.fun(n,e,i,x)},JW=function t(n,e,i){return t.fun(n,e,i)};N(BC,function(t,n,e,i){u(f(e),QZ0),o(f(e),eQ0,rQ0);var x=i[1];function c(e0){return u(n,e0)}function s(e0){return u(t,e0)}R(Rn[1],s,c,e,x),u(f(e),nQ0),u(f(e),tQ0),o(f(e),iQ0,uQ0);var p=i[2];if(p){g(e,fQ0);var y=p[1],T=function(e0){return u(n,e0)},E=function(e0){return u(t,e0)};R($e[22][1],E,T,e,y),g(e,xQ0)}else g(e,oQ0);u(f(e),aQ0),u(f(e),cQ0),o(f(e),vQ0,sQ0);var d=i[3];if(d){g(e,lQ0);var w=d[1],G=function(e0){return u(n,e0)},A=function(e0){return u(t,e0)};R($e[13],A,G,e,w),g(e,bQ0)}else g(e,pQ0);u(f(e),mQ0),u(f(e),_Q0),o(f(e),hQ0,yQ0);var S=i[4];if(S){g(e,dQ0);var M=S[1],K=function(e0){return u(n,e0)},V=function(e0){return u(t,e0)};R($e[13],V,K,e,M),g(e,kQ0)}else g(e,wQ0);u(f(e),EQ0),u(f(e),SQ0),o(f(e),FQ0,gQ0);var f0=i[5];if(f0){g(e,TQ0);var m0=f0[1],k0=function(e0,x0){return g(e0,ZZ0)},g0=function(e0){return u(t,e0)};R(Dr[1],g0,k0,e,m0),g(e,OQ0)}else g(e,IQ0);return u(f(e),AQ0),u(f(e),NQ0)}),N(JW,function(t,n,e){var i=o(BC,t,n);return o(C0($Z0),i,e)});var h5=[0,BC,JW],qC=function t(n,e,i,x){return t.fun(n,e,i,x)},$W=function t(n,e,i){return t.fun(n,e,i)},d5=function t(n,e,i,x){return t.fun(n,e,i,x)},ZW=function t(n,e,i){return t.fun(n,e,i)};N(qC,function(t,n,e,i){u(f(e),KZ0),o(t,e,i[1]),u(f(e),WZ0);var x=i[2];function c(s){return u(n,s)}return R(d5,function(s){return u(t,s)},c,e,x),u(f(e),JZ0)}),N($W,function(t,n,e){var i=o(qC,t,n);return o(C0(zZ0),i,e)}),N(d5,function(t,n,e,i){u(f(e),FZ0),o(f(e),OZ0,TZ0);var x=i[1];if(x){g(e,IZ0);var c=x[1],s=function(A){return u(n,A)},p=function(A){return u(t,A)};R(qe[31],p,s,e,c),g(e,AZ0)}else g(e,NZ0);u(f(e),CZ0),u(f(e),PZ0),o(f(e),LZ0,DZ0);var y=i[2];u(f(e),RZ0);var T=0;le(function(A,S){A&&u(f(e),gZ0);function M(V){return u(n,V)}function K(V){return u(t,V)}return R(Yu[35],K,M,e,S),1},T,y),u(f(e),jZ0),u(f(e),GZ0),u(f(e),MZ0),o(f(e),qZ0,BZ0);var E=i[3];if(E){g(e,UZ0);var d=E[1],w=function(A,S){return g(A,SZ0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,HZ0)}else g(e,XZ0);return u(f(e),YZ0),u(f(e),VZ0)}),N(ZW,function(t,n,e){var i=o(d5,t,n);return o(C0(EZ0),i,e)});var QW=[0,qC,$W,d5,ZW],UC=function t(n,e,i,x){return t.fun(n,e,i,x)},rJ=function t(n,e,i){return t.fun(n,e,i)};N(UC,function(t,n,e,i){u(f(e),eZ0),o(f(e),tZ0,nZ0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),uZ0),u(f(e),iZ0),o(f(e),xZ0,fZ0);var p=i[2];u(f(e),oZ0);var y=0;le(function(G,A){G&&u(f(e),rZ0);function S(K){return u(n,K)}function M(K){return u(t,K)}return R(QW[1],M,S,e,A),1},y,p),u(f(e),aZ0),u(f(e),cZ0),u(f(e),sZ0),o(f(e),lZ0,vZ0);var T=i[3];if(T){g(e,bZ0);var E=T[1],d=function(G,A){return g(G,Q$0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,pZ0)}else g(e,mZ0);return u(f(e),_Z0),u(f(e),yZ0),o(f(e),dZ0,hZ0),o(n,e,i[4]),u(f(e),kZ0),u(f(e),wZ0)}),N(rJ,function(t,n,e){var i=o(UC,t,n);return o(C0(Z$0),i,e)});var eJ=[0,QW,UC,rJ],HC=function t(n,e,i,x){return t.fun(n,e,i,x)},nJ=function t(n,e,i){return t.fun(n,e,i)};N(HC,function(t,n,e,i){u(f(e),P$0),o(f(e),L$0,D$0);var x=i[1];if(x){g(e,R$0);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(qe[31],p,s,e,c),g(e,j$0)}else g(e,G$0);u(f(e),M$0),u(f(e),B$0),o(f(e),U$0,q$0);var y=i[2];if(y){g(e,H$0);var T=y[1],E=function(w,G){return g(w,C$0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,X$0)}else g(e,Y$0);return u(f(e),V$0),u(f(e),z$0),o(f(e),W$0,K$0),o(n,e,i[3]),u(f(e),J$0),u(f(e),$$0)}),N(nJ,function(t,n,e){var i=o(HC,t,n);return o(C0(N$0),i,e)});var tJ=[0,HC,nJ],XC=function t(n,e,i,x){return t.fun(n,e,i,x)},uJ=function t(n,e,i){return t.fun(n,e,i)};N(XC,function(t,n,e,i){u(f(e),h$0),o(f(e),k$0,d$0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),w$0),u(f(e),E$0),o(f(e),g$0,S$0);var p=i[2];if(p){g(e,F$0);var y=p[1],T=function(d,w){return g(d,y$0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,T$0)}else g(e,O$0);return u(f(e),I$0),u(f(e),A$0)}),N(uJ,function(t,n,e){var i=o(XC,t,n);return o(C0(_$0),i,e)});var iJ=[0,XC,uJ],YC=function t(n,e,i,x){return t.fun(n,e,i,x)},fJ=function t(n,e,i){return t.fun(n,e,i)},k5=function t(n,e,i,x){return t.fun(n,e,i,x)},xJ=function t(n,e,i){return t.fun(n,e,i)};N(YC,function(t,n,e,i){u(f(e),b$0),o(t,e,i[1]),u(f(e),p$0);var x=i[2];function c(s){return u(n,s)}return R(k5,function(s){return u(t,s)},c,e,x),u(f(e),m$0)}),N(fJ,function(t,n,e){var i=o(YC,t,n);return o(C0(l$0),i,e)}),N(k5,function(t,n,e,i){u(f(e),YJ0),o(f(e),zJ0,VJ0);var x=i[1];if(x){g(e,KJ0);var c=x[1],s=function(M){return u(n,M)},p=function(M){return u(t,M)};R(di[5],p,s,e,c),g(e,WJ0)}else g(e,JJ0);u(f(e),$J0),u(f(e),ZJ0),o(f(e),r$0,QJ0);var y=i[2];u(f(e),e$0),o(t,e,y[1]),u(f(e),n$0);var T=y[2];function E(M){return u(n,M)}function d(M){return u(t,M)}R(Kv[1],d,E,e,T),u(f(e),t$0),u(f(e),u$0),u(f(e),i$0),o(f(e),x$0,f$0);var w=i[3];if(w){g(e,o$0);var G=w[1],A=function(M,K){return g(M,XJ0)},S=function(M){return u(t,M)};R(Dr[1],S,A,e,G),g(e,a$0)}else g(e,c$0);return u(f(e),s$0),u(f(e),v$0)}),N(xJ,function(t,n,e){var i=o(k5,t,n);return o(C0(HJ0),i,e)});var oJ=[0,YC,fJ,k5,xJ],VC=function t(n,e,i,x){return t.fun(n,e,i,x)},aJ=function t(n,e,i){return t.fun(n,e,i)};N(VC,function(t,n,e,i){u(f(e),sJ0),o(f(e),lJ0,vJ0);var x=i[1];u(f(e),bJ0),o(t,e,x[1]),u(f(e),pJ0);var c=x[2];function s(k0){return u(n,k0)}function p(k0){return u(t,k0)}R(Kv[1],p,s,e,c),u(f(e),mJ0),u(f(e),_J0),u(f(e),yJ0),o(f(e),dJ0,hJ0);var y=i[2];if(y){g(e,kJ0);var T=y[1],E=function(k0){return u(n,k0)},d=function(k0){return u(t,k0)};R(oJ[1],d,E,e,T),g(e,wJ0)}else g(e,EJ0);u(f(e),SJ0),u(f(e),gJ0),o(f(e),TJ0,FJ0);var w=i[3];if(w){var G=w[1];g(e,OJ0),u(f(e),IJ0),o(t,e,G[1]),u(f(e),AJ0);var A=G[2],S=function(k0){return u(n,k0)},M=function(k0){return u(t,k0)};R(Kv[1],M,S,e,A),u(f(e),NJ0),g(e,CJ0)}else g(e,PJ0);u(f(e),DJ0),u(f(e),LJ0),o(f(e),jJ0,RJ0);var K=i[4];if(K){g(e,GJ0);var V=K[1],f0=function(k0,g0){return g(k0,cJ0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,MJ0)}else g(e,BJ0);return u(f(e),qJ0),u(f(e),UJ0)}),N(aJ,function(t,n,e){var i=o(VC,t,n);return o(C0(aJ0),i,e)});var cJ=[0,oJ,VC,aJ],zC=function t(n,e,i,x){return t.fun(n,e,i,x)},sJ=function t(n,e,i){return t.fun(n,e,i)},w5=function t(n,e,i,x){return t.fun(n,e,i,x)},vJ=function t(n,e,i){return t.fun(n,e,i)};N(zC,function(t,n,e,i){u(f(e),fJ0),o(t,e,i[1]),u(f(e),xJ0);var x=i[2];function c(s){return u(n,s)}return R(w5,function(s){return u(t,s)},c,e,x),u(f(e),oJ0)}),N(sJ,function(t,n,e){var i=o(zC,t,n);return o(C0(iJ0),i,e)}),N(w5,function(t,n,e,i){u(f(e),zW0),o(f(e),WW0,KW0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),JW0),u(f(e),$W0),o(f(e),QW0,ZW0);var p=i[2];if(p){g(e,rJ0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,eJ0)}else g(e,nJ0);return u(f(e),tJ0),u(f(e),uJ0)}),N(vJ,function(t,n,e){var i=o(w5,t,n);return o(C0(VW0),i,e)});var lJ=[0,zC,sJ,w5,vJ],KC=function t(n,e,i,x){return t.fun(n,e,i,x)},bJ=function t(n,e,i){return t.fun(n,e,i)},E5=function t(n,e){return t.fun(n,e)},pJ=function t(n){return t.fun(n)};N(KC,function(t,n,e,i){u(f(e),OW0),o(f(e),AW0,IW0);var x=i[1];u(f(e),NW0);var c=0;le(function(E,d){E&&u(f(e),TW0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(lJ[1],G,w,e,d),1},c,x),u(f(e),CW0),u(f(e),PW0),u(f(e),DW0),o(f(e),RW0,LW0),o(E5,e,i[2]),u(f(e),jW0),u(f(e),GW0),o(f(e),BW0,MW0);var s=i[3];if(s){g(e,qW0);var p=s[1],y=function(E,d){return g(E,FW0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,UW0)}else g(e,HW0);return u(f(e),XW0),u(f(e),YW0)}),N(bJ,function(t,n,e){var i=o(KC,t,n);return o(C0(gW0),i,e)}),N(E5,function(t,n){switch(n){case 0:return g(t,wW0);case 1:return g(t,EW0);default:return g(t,SW0)}}),N(pJ,function(t){return o(C0(kW0),E5,t)});var Il=[0,lJ,KC,bJ,E5,pJ],WC=function t(n,e,i,x){return t.fun(n,e,i,x)},mJ=function t(n,e,i){return t.fun(n,e,i)};N(WC,function(t,n,e,i){u(f(e),iW0),o(f(e),xW0,fW0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),oW0),u(f(e),aW0),o(f(e),sW0,cW0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),vW0),u(f(e),lW0),o(f(e),pW0,bW0);var E=i[3];if(E){g(e,mW0);var d=E[1],w=function(A,S){return g(A,uW0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,_W0)}else g(e,yW0);return u(f(e),hW0),u(f(e),dW0)}),N(mJ,function(t,n,e){var i=o(WC,t,n);return o(C0(tW0),i,e)});var _J=[0,WC,mJ],JC=function t(n,e,i,x){return t.fun(n,e,i,x)},yJ=function t(n,e,i){return t.fun(n,e,i)};N(JC,function(t,n,e,i){u(f(e),qK0),o(f(e),HK0,UK0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Yu[35],s,c,e,x),u(f(e),XK0),u(f(e),YK0),o(f(e),zK0,VK0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),KK0),u(f(e),WK0),o(f(e),$K0,JK0);var E=i[3];if(E){g(e,ZK0);var d=E[1],w=function(A,S){return g(A,BK0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,QK0)}else g(e,rW0);return u(f(e),eW0),u(f(e),nW0)}),N(yJ,function(t,n,e){var i=o(JC,t,n);return o(C0(MK0),i,e)});var hJ=[0,JC,yJ],$C=function t(n,e,i,x){return t.fun(n,e,i,x)},dJ=function t(n,e,i){return t.fun(n,e,i)},S5=function t(n,e,i,x){return t.fun(n,e,i,x)},kJ=function t(n,e,i){return t.fun(n,e,i)};N($C,function(t,n,e,i){u(f(e),fK0),o(f(e),oK0,xK0);var x=i[1];if(x){g(e,aK0);var c=x[1],s=function(g0){return u(n,g0)};R(S5,function(g0){return u(t,g0)},s,e,c),g(e,cK0)}else g(e,sK0);u(f(e),vK0),u(f(e),lK0),o(f(e),pK0,bK0);var p=i[2];if(p){g(e,mK0);var y=p[1],T=function(g0){return u(n,g0)},E=function(g0){return u(t,g0)};R(qe[31],E,T,e,y),g(e,_K0)}else g(e,yK0);u(f(e),hK0),u(f(e),dK0),o(f(e),wK0,kK0);var d=i[3];if(d){g(e,EK0);var w=d[1],G=function(g0){return u(n,g0)},A=function(g0){return u(t,g0)};R(qe[31],A,G,e,w),g(e,SK0)}else g(e,gK0);u(f(e),FK0),u(f(e),TK0),o(f(e),IK0,OK0);var S=i[4];function M(g0){return u(n,g0)}function K(g0){return u(t,g0)}R(Yu[35],K,M,e,S),u(f(e),AK0),u(f(e),NK0),o(f(e),PK0,CK0);var V=i[5];if(V){g(e,DK0);var f0=V[1],m0=function(g0,e0){return g(g0,iK0)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,LK0)}else g(e,RK0);return u(f(e),jK0),u(f(e),GK0)}),N(dJ,function(t,n,e){var i=o($C,t,n);return o(C0(uK0),i,e)}),N(S5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),$z0),u(f(e),Zz0),o(t,e,x[1]),u(f(e),Qz0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),rK0),u(f(e),eK0)}u(f(e),nK0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(qe[31],E,T,e,y),u(f(e),tK0)}),N(kJ,function(t,n,e){var i=o(S5,t,n);return o(C0(Jz0),i,e)});var wJ=[0,$C,dJ,S5,kJ],ZC=function t(n,e,i,x){return t.fun(n,e,i,x)},EJ=function t(n,e,i){return t.fun(n,e,i)},g5=function t(n,e,i,x){return t.fun(n,e,i,x)},SJ=function t(n,e,i){return t.fun(n,e,i)};N(ZC,function(t,n,e,i){u(f(e),gz0),o(f(e),Tz0,Fz0);var x=i[1];function c(K){return u(n,K)}R(g5,function(K){return u(t,K)},c,e,x),u(f(e),Oz0),u(f(e),Iz0),o(f(e),Nz0,Az0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(qe[31],y,p,e,s),u(f(e),Cz0),u(f(e),Pz0),o(f(e),Lz0,Dz0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),Rz0),u(f(e),jz0),o(f(e),Mz0,Gz0);var w=i[4];o(f(e),Bz0,w),u(f(e),qz0),u(f(e),Uz0),o(f(e),Xz0,Hz0);var G=i[5];if(G){g(e,Yz0);var A=G[1],S=function(K,V){return g(K,Sz0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Vz0)}else g(e,zz0);return u(f(e),Kz0),u(f(e),Wz0)}),N(EJ,function(t,n,e){var i=o(ZC,t,n);return o(C0(Ez0),i,e)}),N(g5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),mz0),u(f(e),_z0),o(t,e,x[1]),u(f(e),yz0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),hz0),u(f(e),dz0)}u(f(e),kz0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),wz0)}),N(SJ,function(t,n,e){var i=o(g5,t,n);return o(C0(pz0),i,e)});var gJ=[0,ZC,EJ,g5,SJ],QC=function t(n,e,i,x){return t.fun(n,e,i,x)},FJ=function t(n,e,i){return t.fun(n,e,i)},F5=function t(n,e,i,x){return t.fun(n,e,i,x)},TJ=function t(n,e,i){return t.fun(n,e,i)};N(QC,function(t,n,e,i){u(f(e),XV0),o(f(e),VV0,YV0);var x=i[1];function c(K){return u(n,K)}R(F5,function(K){return u(t,K)},c,e,x),u(f(e),zV0),u(f(e),KV0),o(f(e),JV0,WV0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(qe[31],y,p,e,s),u(f(e),$V0),u(f(e),ZV0),o(f(e),rz0,QV0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),ez0),u(f(e),nz0),o(f(e),uz0,tz0);var w=i[4];o(f(e),iz0,w),u(f(e),fz0),u(f(e),xz0),o(f(e),az0,oz0);var G=i[5];if(G){g(e,cz0);var A=G[1],S=function(K,V){return g(K,HV0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,sz0)}else g(e,vz0);return u(f(e),lz0),u(f(e),bz0)}),N(FJ,function(t,n,e){var i=o(QC,t,n);return o(C0(UV0),i,e)}),N(F5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),LV0),u(f(e),RV0),o(t,e,x[1]),u(f(e),jV0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),GV0),u(f(e),MV0)}u(f(e),BV0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),qV0)}),N(TJ,function(t,n,e){var i=o(F5,t,n);return o(C0(DV0),i,e)});var OJ=[0,QC,FJ,F5,TJ],rP=function t(n,e,i){return t.fun(n,e,i)},IJ=function t(n,e){return t.fun(n,e)},T5=function t(n,e,i){return t.fun(n,e,i)},AJ=function t(n,e){return t.fun(n,e)};N(rP,function(t,n,e){u(f(n),NV0),o(t,n,e[1]),u(f(n),CV0);var i=e[2];return ur(T5,function(x){return u(t,x)},n,i),u(f(n),PV0)}),N(IJ,function(t,n){var e=u(rP,t);return o(C0(AV0),e,n)}),N(T5,function(t,n,e){u(f(n),gV0),o(f(n),TV0,FV0);var i=e[1];function x(s){return u(t,s)}function c(s){return u(t,s)}return R(Rn[1],c,x,n,i),u(f(n),OV0),u(f(n),IV0)}),N(AJ,function(t,n){var e=u(T5,t);return o(C0(SV0),e,n)});var eP=[0,rP,IJ,T5,AJ],nP=function t(n,e,i,x){return t.fun(n,e,i,x)},NJ=function t(n,e,i){return t.fun(n,e,i)},O5=function t(n,e,i,x){return t.fun(n,e,i,x)},CJ=function t(n,e,i){return t.fun(n,e,i)};N(nP,function(t,n,e,i){u(f(e),kV0),o(n,e,i[1]),u(f(e),wV0);var x=i[2];function c(s){return u(n,s)}return R(O5,function(s){return u(t,s)},c,e,x),u(f(e),EV0)}),N(NJ,function(t,n,e){var i=o(nP,t,n);return o(C0(dV0),i,e)}),N(O5,function(t,n,e,i){u(f(e),oV0),o(f(e),cV0,aV0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(n,y)}R(Rn[1],s,c,e,x),u(f(e),sV0),u(f(e),vV0),o(f(e),bV0,lV0);var p=i[2];return u(f(e),pV0),o(n,e,p[1]),u(f(e),mV0),o(t,e,p[2]),u(f(e),_V0),u(f(e),yV0),u(f(e),hV0)}),N(CJ,function(t,n,e){var i=o(O5,t,n);return o(C0(xV0),i,e)});var I5=[0,nP,NJ,O5,CJ],tP=function t(n,e,i){return t.fun(n,e,i)},PJ=function t(n,e){return t.fun(n,e)};N(tP,function(t,n,e){u(f(n),jY0),o(f(n),MY0,GY0);var i=e[1];u(f(n),BY0);var x=0;le(function(d,w){d&&u(f(n),RY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(qN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),qY0),u(f(n),UY0),u(f(n),HY0),o(f(n),YY0,XY0);var c=e[2];o(f(n),VY0,c),u(f(n),zY0),u(f(n),KY0),o(f(n),JY0,WY0);var s=e[3];o(f(n),$Y0,s),u(f(n),ZY0),u(f(n),QY0),o(f(n),eV0,rV0);var p=e[4];if(p){g(n,nV0);var y=p[1],T=function(d,w){u(f(d),DY0);var G=0;return le(function(A,S){A&&u(f(d),PY0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),LY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,tV0)}else g(n,uV0);return u(f(n),iV0),u(f(n),fV0)}),N(PJ,function(t,n){var e=u(tP,t);return o(C0(CY0),e,n)});var DJ=[0,tP,PJ],uP=function t(n,e,i){return t.fun(n,e,i)},LJ=function t(n,e){return t.fun(n,e)};N(uP,function(t,n,e){u(f(n),oY0),o(f(n),cY0,aY0);var i=e[1];u(f(n),sY0);var x=0;le(function(d,w){d&&u(f(n),xY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(BN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),vY0),u(f(n),lY0),u(f(n),bY0),o(f(n),mY0,pY0);var c=e[2];o(f(n),_Y0,c),u(f(n),yY0),u(f(n),hY0),o(f(n),kY0,dY0);var s=e[3];o(f(n),wY0,s),u(f(n),EY0),u(f(n),SY0),o(f(n),FY0,gY0);var p=e[4];if(p){g(n,TY0);var y=p[1],T=function(d,w){u(f(d),iY0);var G=0;return le(function(A,S){A&&u(f(d),uY0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),fY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,OY0)}else g(n,IY0);return u(f(n),AY0),u(f(n),NY0)}),N(LJ,function(t,n){var e=u(uP,t);return o(C0(tY0),e,n)});var RJ=[0,uP,LJ],iP=function t(n,e,i){return t.fun(n,e,i)},jJ=function t(n,e){return t.fun(n,e)},A5=function t(n,e,i,x){return t.fun(n,e,i,x)},GJ=function t(n,e,i){return t.fun(n,e,i)};N(iP,function(t,n,e){u(f(n),LX0),o(f(n),jX0,RX0);var i=e[1];function x(d){return u(t,d)}R(A5,function(d){function w(G){return u(t,G)}return o(g1[1],w,d)},x,n,i),u(f(n),GX0),u(f(n),MX0),o(f(n),qX0,BX0);var c=e[2];o(f(n),UX0,c),u(f(n),HX0),u(f(n),XX0),o(f(n),VX0,YX0);var s=e[3];o(f(n),zX0,s),u(f(n),KX0),u(f(n),WX0),o(f(n),$X0,JX0);var p=e[4];if(p){g(n,ZX0);var y=p[1],T=function(d,w){u(f(d),PX0);var G=0;return le(function(A,S){A&&u(f(d),CX0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),DX0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,QX0)}else g(n,rY0);return u(f(n),eY0),u(f(n),nY0)}),N(jJ,function(t,n){var e=u(iP,t);return o(C0(NX0),e,n)}),N(A5,function(t,n,e,i){if(i[0]===0){u(f(e),EX0),u(f(e),SX0);var x=i[1],c=0;return le(function(y,T){y&&u(f(e),wX0);function E(d){return u(n,d)}return ur(eP[1],E,e,T),1},c,x),u(f(e),gX0),u(f(e),FX0)}u(f(e),TX0),u(f(e),OX0);var s=i[1],p=0;return le(function(y,T){y&&u(f(e),kX0);function E(w){return u(n,w)}function d(w){return u(t,w)}return R(I5[1],d,E,e,T),1},p,s),u(f(e),IX0),u(f(e),AX0)}),N(GJ,function(t,n,e){var i=o(A5,t,n);return o(C0(dX0),i,e)});var MJ=[0,iP,jJ,A5,GJ],fP=function t(n,e,i){return t.fun(n,e,i)},BJ=function t(n,e){return t.fun(n,e)};N(fP,function(t,n,e){u(f(n),eX0),o(f(n),tX0,nX0);var i=e[1];u(f(n),uX0);var x=0;le(function(E,d){E&&u(f(n),rX0);function w(G){return u(t,G)}return ur(eP[1],w,n,d),1},x,i),u(f(n),iX0),u(f(n),fX0),u(f(n),xX0),o(f(n),aX0,oX0);var c=e[2];o(f(n),cX0,c),u(f(n),sX0),u(f(n),vX0),o(f(n),bX0,lX0);var s=e[3];if(s){g(n,pX0);var p=s[1],y=function(E,d){u(f(E),ZH0);var w=0;return le(function(G,A){G&&u(f(E),$H0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),QH0)},T=function(E){return u(t,E)};R(Dr[1],T,y,n,p),g(n,mX0)}else g(n,_X0);return u(f(n),yX0),u(f(n),hX0)}),N(BJ,function(t,n){var e=u(fP,t);return o(C0(JH0),e,n)});var qJ=[0,fP,BJ],xP=function t(n,e,i,x){return t.fun(n,e,i,x)},UJ=function t(n,e,i){return t.fun(n,e,i)},N5=function t(n,e,i){return t.fun(n,e,i)},HJ=function t(n,e){return t.fun(n,e)},C5=function t(n,e,i){return t.fun(n,e,i)},XJ=function t(n,e){return t.fun(n,e)};N(xP,function(t,n,e,i){u(f(e),DH0),o(f(e),RH0,LH0);var x=i[1];function c(w){return u(n,w)}function s(w){return u(t,w)}R(Rn[1],s,c,e,x),u(f(e),jH0),u(f(e),GH0),o(f(e),BH0,MH0);var p=i[2];ur(N5,function(w){return u(t,w)},e,p),u(f(e),qH0),u(f(e),UH0),o(f(e),XH0,HH0);var y=i[3];if(y){g(e,YH0);var T=y[1],E=function(w,G){return g(w,PH0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,VH0)}else g(e,zH0);return u(f(e),KH0),u(f(e),WH0)}),N(UJ,function(t,n,e){var i=o(xP,t,n);return o(C0(CH0),i,e)}),N(N5,function(t,n,e){u(f(n),IH0),o(t,n,e[1]),u(f(n),AH0);var i=e[2];return ur(C5,function(x){return u(t,x)},n,i),u(f(n),NH0)}),N(HJ,function(t,n){var e=u(N5,t);return o(C0(OH0),e,n)}),N(C5,function(t,n,e){switch(e[0]){case 0:u(f(n),dH0);var i=e[1],x=function(d){return u(t,d)};return ur(DJ[1],x,n,i),u(f(n),kH0);case 1:u(f(n),wH0);var c=e[1],s=function(d){return u(t,d)};return ur(RJ[1],s,n,c),u(f(n),EH0);case 2:u(f(n),SH0);var p=e[1],y=function(d){return u(t,d)};return ur(MJ[1],y,n,p),u(f(n),gH0);default:u(f(n),FH0);var T=e[1],E=function(d){return u(t,d)};return ur(qJ[1],E,n,T),u(f(n),TH0)}}),N(XJ,function(t,n){var e=u(C5,t);return o(C0(hH0),e,n)});var YJ=[0,eP,I5,DJ,RJ,MJ,qJ,xP,UJ,N5,HJ,C5,XJ],oP=function t(n,e,i,x){return t.fun(n,e,i,x)},VJ=function t(n,e,i){return t.fun(n,e,i)};N(oP,function(t,n,e,i){u(f(e),qU0),o(f(e),HU0,UU0);var x=i[1];function c(k0){return u(n,k0)}function s(k0){return u(t,k0)}R(Rn[1],s,c,e,x),u(f(e),XU0),u(f(e),YU0),o(f(e),zU0,VU0);var p=i[2];if(p){g(e,KU0);var y=p[1],T=function(k0){return u(n,k0)},E=function(k0){return u(t,k0)};R($e[22][1],E,T,e,y),g(e,WU0)}else g(e,JU0);u(f(e),$U0),u(f(e),ZU0),o(f(e),rH0,QU0);var d=i[3];u(f(e),eH0);var w=0;le(function(k0,g0){k0&&u(f(e),jU0),u(f(e),GU0),o(t,e,g0[1]),u(f(e),MU0);var e0=g0[2];function x0(c0){return u(n,c0)}function l(c0){return u(t,c0)}return R($e[2][2],l,x0,e,e0),u(f(e),BU0),1},w,d),u(f(e),nH0),u(f(e),tH0),u(f(e),uH0),o(f(e),fH0,iH0);var G=i[4];u(f(e),xH0),o(t,e,G[1]),u(f(e),oH0);var A=G[2];function S(k0){return u(n,k0)}function M(k0){return u(t,k0)}R($e[5][6],M,S,e,A),u(f(e),aH0),u(f(e),cH0),u(f(e),sH0),o(f(e),lH0,vH0);var K=i[5];if(K){g(e,bH0);var V=K[1],f0=function(k0,g0){return g(k0,RU0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,pH0)}else g(e,mH0);return u(f(e),_H0),u(f(e),yH0)}),N(VJ,function(t,n,e){var i=o(oP,t,n);return o(C0(LU0),i,e)});var P5=[0,oP,VJ],aP=function t(n,e,i,x){return t.fun(n,e,i,x)},zJ=function t(n,e,i){return t.fun(n,e,i)};N(aP,function(t,n,e,i){u(f(e),Bq0),o(f(e),Uq0,qq0);var x=i[1];function c(_0){return u(n,_0)}function s(_0){return u(t,_0)}R(Rn[1],s,c,e,x),u(f(e),Hq0),u(f(e),Xq0),o(f(e),Vq0,Yq0);var p=i[2];if(p){g(e,zq0);var y=p[1],T=function(_0){return u(n,_0)},E=function(_0){return u(t,_0)};R($e[22][1],E,T,e,y),g(e,Kq0)}else g(e,Wq0);u(f(e),Jq0),u(f(e),$q0),o(f(e),Qq0,Zq0);var d=i[3];u(f(e),rU0),o(t,e,d[1]),u(f(e),eU0);var w=d[2];function G(_0){return u(n,_0)}function A(_0){return u(t,_0)}R($e[5][6],A,G,e,w),u(f(e),nU0),u(f(e),tU0),u(f(e),uU0),o(f(e),fU0,iU0);var S=i[4];if(S){var M=S[1];g(e,xU0),u(f(e),oU0),o(t,e,M[1]),u(f(e),aU0);var K=M[2],V=function(_0){return u(n,_0)},f0=function(_0){return u(t,_0)};R($e[2][2],f0,V,e,K),u(f(e),cU0),g(e,sU0)}else g(e,vU0);u(f(e),lU0),u(f(e),bU0),o(f(e),mU0,pU0);var m0=i[5];u(f(e),_U0);var k0=0;le(function(_0,E0){_0&&u(f(e),Rq0),u(f(e),jq0),o(t,e,E0[1]),u(f(e),Gq0);var U0=E0[2];function b(X){return u(n,X)}function R0(X){return u(t,X)}return R($e[2][2],R0,b,e,U0),u(f(e),Mq0),1},k0,m0),u(f(e),yU0),u(f(e),hU0),u(f(e),dU0),o(f(e),wU0,kU0);var g0=i[6];if(g0){g(e,EU0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R(F1[5][2],l,x0,e,e0),g(e,SU0)}else g(e,gU0);u(f(e),FU0),u(f(e),TU0),o(f(e),IU0,OU0);var c0=i[7];if(c0){g(e,AU0);var t0=c0[1],o0=function(_0,E0){return g(_0,Lq0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,NU0)}else g(e,CU0);return u(f(e),PU0),u(f(e),DU0)}),N(zJ,function(t,n,e){var i=o(aP,t,n);return o(C0(Dq0),i,e)});var cP=[0,aP,zJ],sP=function t(n,e,i,x){return t.fun(n,e,i,x)},KJ=function t(n,e,i){return t.fun(n,e,i)};N(sP,function(t,n,e,i){u(f(e),yq0),o(f(e),dq0,hq0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),kq0),u(f(e),wq0),o(f(e),Sq0,Eq0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),gq0),u(f(e),Fq0),o(f(e),Oq0,Tq0);var E=i[3];if(E){g(e,Iq0);var d=E[1],w=function(A,S){return g(A,_q0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Aq0)}else g(e,Nq0);return u(f(e),Cq0),u(f(e),Pq0)}),N(KJ,function(t,n,e){var i=o(sP,t,n);return o(C0(mq0),i,e)});var vP=[0,sP,KJ],lP=function t(n,e,i,x){return t.fun(n,e,i,x)},WJ=function t(n,e,i){return t.fun(n,e,i)};N(lP,function(t,n,e,i){u(f(e),zB0),o(f(e),WB0,KB0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),JB0),u(f(e),$B0),o(f(e),QB0,ZB0);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R($e[17],T,y,e,p),u(f(e),rq0),u(f(e),eq0),o(f(e),tq0,nq0);var E=i[3];if(E){g(e,uq0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R($e[24][1],G,w,e,d),g(e,iq0)}else g(e,fq0);u(f(e),xq0),u(f(e),oq0),o(f(e),cq0,aq0);var A=i[4];if(A){g(e,sq0);var S=A[1],M=function(V,f0){return g(V,VB0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,vq0)}else g(e,lq0);return u(f(e),bq0),u(f(e),pq0)}),N(WJ,function(t,n,e){var i=o(lP,t,n);return o(C0(YB0),i,e)});var bP=[0,lP,WJ],D5=function t(n,e,i,x){return t.fun(n,e,i,x)},JJ=function t(n,e,i){return t.fun(n,e,i)},L5=function t(n,e){return t.fun(n,e)},$J=function t(n){return t.fun(n)},pP=function t(n,e,i,x){return t.fun(n,e,i,x)},ZJ=function t(n,e,i){return t.fun(n,e,i)};N(D5,function(t,n,e,i){if(i[0]===0){u(f(e),GB0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Rn[1],s,c,e,x),u(f(e),MB0)}var p=i[1];u(f(e),BB0),u(f(e),qB0),o(n,e,p[1]),u(f(e),UB0);var y=p[2];function T(E){return u(t,E)}return ur(g1[1],T,e,y),u(f(e),HB0),u(f(e),XB0)}),N(JJ,function(t,n,e){var i=o(D5,t,n);return o(C0(jB0),i,e)}),N(L5,function(t,n){return n?g(t,LB0):g(t,RB0)}),N($J,function(t){return o(C0(DB0),L5,t)}),N(pP,function(t,n,e,i){u(f(e),sB0),o(f(e),lB0,vB0);var x=i[1];function c(A){return u(n,A)}R(D5,function(A){return u(t,A)},c,e,x),u(f(e),bB0),u(f(e),pB0),o(f(e),_B0,mB0);var s=i[2];u(f(e),yB0),o(t,e,s[1]),u(f(e),hB0);var p=s[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Kv[1],T,y,e,p),u(f(e),dB0),u(f(e),kB0),u(f(e),wB0),o(f(e),SB0,EB0),o(L5,e,i[3]),u(f(e),gB0),u(f(e),FB0),o(f(e),OB0,TB0);var E=i[4];if(E){g(e,IB0);var d=E[1],w=function(A,S){return g(A,cB0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,AB0)}else g(e,NB0);return u(f(e),CB0),u(f(e),PB0)}),N(ZJ,function(t,n,e){var i=o(pP,t,n);return o(C0(aB0),i,e)});var QJ=[0,D5,JJ,L5,$J,pP,ZJ],mP=function t(n,e,i,x){return t.fun(n,e,i,x)},r$=function t(n,e,i){return t.fun(n,e,i)};N(mP,function(t,n,e,i){u(f(e),$M0),o(f(e),QM0,ZM0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),rB0),u(f(e),eB0),o(f(e),tB0,nB0);var p=i[2];if(p){g(e,uB0);var y=p[1],T=function(d,w){return g(d,JM0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,iB0)}else g(e,fB0);return u(f(e),xB0),u(f(e),oB0)}),N(r$,function(t,n,e){var i=o(mP,t,n);return o(C0(WM0),i,e)});var e$=[0,mP,r$],_P=function t(n,e,i){return t.fun(n,e,i)},n$=function t(n,e){return t.fun(n,e)},R5=function t(n,e,i){return t.fun(n,e,i)},t$=function t(n,e){return t.fun(n,e)};N(_P,function(t,n,e){u(f(n),VM0),o(t,n,e[1]),u(f(n),zM0);var i=e[2];return ur(R5,function(x){return u(t,x)},n,i),u(f(n),KM0)}),N(n$,function(t,n){var e=u(_P,t);return o(C0(YM0),e,n)}),N(R5,function(t,n,e){u(f(n),PM0),o(f(n),LM0,DM0);var i=e[1];function x(E){return u(t,E)}function c(E){return u(t,E)}R(Rn[1],c,x,n,i),u(f(n),RM0),u(f(n),jM0),o(f(n),MM0,GM0);var s=e[2];if(s){g(n,BM0);var p=s[1],y=function(E){return u(t,E)},T=function(E){return u(t,E)};R(Rn[1],T,y,n,p),g(n,qM0)}else g(n,UM0);return u(f(n),HM0),u(f(n),XM0)}),N(t$,function(t,n){var e=u(R5,t);return o(C0(CM0),e,n)});var u$=[0,_P,n$,R5,t$],yP=function t(n,e,i){return t.fun(n,e,i)},i$=function t(n,e){return t.fun(n,e)};N(yP,function(t,n,e){var i=e[2];if(u(f(n),FM0),o(t,n,e[1]),u(f(n),TM0),i){g(n,OM0);var x=i[1],c=function(p){return u(t,p)},s=function(p){return u(t,p)};R(Rn[1],s,c,n,x),g(n,IM0)}else g(n,AM0);return u(f(n),NM0)}),N(i$,function(t,n){var e=u(yP,t);return o(C0(gM0),e,n)});var f$=[0,yP,i$],hP=function t(n,e,i,x){return t.fun(n,e,i,x)},x$=function t(n,e,i){return t.fun(n,e,i)},j5=function t(n,e,i){return t.fun(n,e,i)},o$=function t(n,e){return t.fun(n,e)};N(hP,function(t,n,e,i){u(f(e),HG0),o(f(e),YG0,XG0);var x=i[1];if(x){g(e,VG0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(Yu[35],p,s,e,c),g(e,zG0)}else g(e,KG0);u(f(e),WG0),u(f(e),JG0),o(f(e),ZG0,$G0);var y=i[2];if(y){g(e,QG0);var T=y[1];ur(j5,function(V){return u(t,V)},e,T),g(e,rM0)}else g(e,eM0);u(f(e),nM0),u(f(e),tM0),o(f(e),iM0,uM0);var E=i[3];if(E){var d=E[1];g(e,fM0),u(f(e),xM0),o(t,e,d[1]),u(f(e),oM0);var w=d[2],G=function(V){return u(t,V)};ur(g1[1],G,e,w),u(f(e),aM0),g(e,cM0)}else g(e,sM0);u(f(e),vM0),u(f(e),lM0),o(f(e),pM0,bM0),o(Yu[33],e,i[4]),u(f(e),mM0),u(f(e),_M0),o(f(e),hM0,yM0);var A=i[5];if(A){g(e,dM0);var S=A[1],M=function(V,f0){return g(V,UG0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,kM0)}else g(e,wM0);return u(f(e),EM0),u(f(e),SM0)}),N(x$,function(t,n,e){var i=o(hP,t,n);return o(C0(qG0),i,e)}),N(j5,function(t,n,e){if(e[0]===0){u(f(n),LG0),u(f(n),RG0);var i=e[1],x=0;return le(function(p,y){p&&u(f(n),DG0);function T(E){return u(t,E)}return ur(u$[1],T,n,y),1},x,i),u(f(n),jG0),u(f(n),GG0)}u(f(n),MG0);var c=e[1];function s(p){return u(t,p)}return ur(f$[1],s,n,c),u(f(n),BG0)}),N(o$,function(t,n){var e=u(j5,t);return o(C0(PG0),e,n)});var dP=[0,u$,f$,hP,x$,j5,o$],kP=function t(n,e,i,x){return t.fun(n,e,i,x)},a$=function t(n,e,i){return t.fun(n,e,i)},G5=function t(n,e,i,x){return t.fun(n,e,i,x)},c$=function t(n,e,i){return t.fun(n,e,i)};N(kP,function(t,n,e,i){u(f(e),_G0),o(f(e),hG0,yG0),o(t,e,i[1]),u(f(e),dG0),u(f(e),kG0),o(f(e),EG0,wG0);var x=i[2];function c(E){return u(n,E)}R(G5,function(E){return u(t,E)},c,e,x),u(f(e),SG0),u(f(e),gG0),o(f(e),TG0,FG0);var s=i[3];if(s){g(e,OG0);var p=s[1],y=function(E,d){return g(E,mG0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,IG0)}else g(e,AG0);return u(f(e),NG0),u(f(e),CG0)}),N(a$,function(t,n,e){var i=o(kP,t,n);return o(C0(pG0),i,e)}),N(G5,function(t,n,e,i){if(i[0]===0){u(f(e),sG0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Yu[35],s,c,e,x),u(f(e),vG0)}u(f(e),lG0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(qe[31],T,y,e,p),u(f(e),bG0)}),N(c$,function(t,n,e){var i=o(G5,t,n);return o(C0(cG0),i,e)});var s$=[0,kP,a$,G5,c$],M5=function t(n,e,i,x){return t.fun(n,e,i,x)},v$=function t(n,e,i){return t.fun(n,e,i)},wP=function t(n,e,i,x){return t.fun(n,e,i,x)},l$=function t(n,e,i){return t.fun(n,e,i)};N(M5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),Cj0),u(f(e),Pj0),o(t,e,x[1]),u(f(e),Dj0);var c=x[2],s=function(E0){return u(n,E0)},p=function(E0){return u(t,E0)};return R(vP[1],p,s,e,c),u(f(e),Lj0),u(f(e),Rj0);case 1:var y=i[1];u(f(e),jj0),u(f(e),Gj0),o(t,e,y[1]),u(f(e),Mj0);var T=y[2],E=function(E0){return u(n,E0)},d=function(E0){return u(t,E0)};return R(bP[1],d,E,e,T),u(f(e),Bj0),u(f(e),qj0);case 2:var w=i[1];u(f(e),Uj0),u(f(e),Hj0),o(t,e,w[1]),u(f(e),Xj0);var G=w[2],A=function(E0){return u(n,E0)},S=function(E0){return u(t,E0)};return R(cP[1],S,A,e,G),u(f(e),Yj0),u(f(e),Vj0);case 3:u(f(e),zj0);var M=i[1],K=function(E0){return u(n,E0)},V=function(E0){return u(t,E0)};return R($e[13],V,K,e,M),u(f(e),Kj0);case 4:var f0=i[1];u(f(e),Wj0),u(f(e),Jj0),o(t,e,f0[1]),u(f(e),$j0);var m0=f0[2],k0=function(E0){return u(n,E0)},g0=function(E0){return u(t,E0)};return R(y5[1],g0,k0,e,m0),u(f(e),Zj0),u(f(e),Qj0);case 5:var e0=i[1];u(f(e),rG0),u(f(e),eG0),o(t,e,e0[1]),u(f(e),nG0);var x0=e0[2],l=function(E0){return u(n,E0)},c0=function(E0){return u(t,E0)};return R(h5[1],c0,l,e,x0),u(f(e),tG0),u(f(e),uG0);default:var t0=i[1];u(f(e),iG0),u(f(e),fG0),o(t,e,t0[1]),u(f(e),xG0);var o0=t0[2],w0=function(E0){return u(n,E0)},_0=function(E0){return u(t,E0)};return R(P5[1],_0,w0,e,o0),u(f(e),oG0),u(f(e),aG0)}}),N(v$,function(t,n,e){var i=o(M5,t,n);return o(C0(Nj0),i,e)}),N(wP,function(t,n,e,i){u(f(e),VR0),o(f(e),KR0,zR0);var x=i[1];x?(g(e,WR0),o(t,e,x[1]),g(e,JR0)):g(e,$R0),u(f(e),ZR0),u(f(e),QR0),o(f(e),ej0,rj0);var c=i[2];if(c){g(e,nj0);var s=c[1],p=function(f0){return u(n,f0)};R(M5,function(f0){return u(t,f0)},p,e,s),g(e,tj0)}else g(e,uj0);u(f(e),ij0),u(f(e),fj0),o(f(e),oj0,xj0);var y=i[3];if(y){g(e,aj0);var T=y[1],E=function(f0){return u(t,f0)};ur(dP[5],E,e,T),g(e,cj0)}else g(e,sj0);u(f(e),vj0),u(f(e),lj0),o(f(e),pj0,bj0);var d=i[4];if(d){var w=d[1];g(e,mj0),u(f(e),_j0),o(t,e,w[1]),u(f(e),yj0);var G=w[2],A=function(f0){return u(t,f0)};ur(g1[1],A,e,G),u(f(e),hj0),g(e,dj0)}else g(e,kj0);u(f(e),wj0),u(f(e),Ej0),o(f(e),gj0,Sj0);var S=i[5];if(S){g(e,Fj0);var M=S[1],K=function(f0,m0){return g(f0,YR0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,Tj0)}else g(e,Oj0);return u(f(e),Ij0),u(f(e),Aj0)}),N(l$,function(t,n,e){var i=o(wP,t,n);return o(C0(XR0),i,e)});var b$=[0,M5,v$,wP,l$],Al=function t(n,e){return t.fun(n,e)},p$=function t(n){return t.fun(n)},B5=function t(n,e,i,x){return t.fun(n,e,i,x)},m$=function t(n,e,i){return t.fun(n,e,i)},q5=function t(n,e,i,x){return t.fun(n,e,i,x)},_$=function t(n,e,i){return t.fun(n,e,i)},EP=function t(n,e,i,x){return t.fun(n,e,i,x)},y$=function t(n,e,i){return t.fun(n,e,i)};N(Al,function(t,n){switch(n){case 0:return g(t,qR0);case 1:return g(t,UR0);default:return g(t,HR0)}}),N(p$,function(t){return o(C0(BR0),Al,t)}),N(B5,function(t,n,e,i){if(i[0]===0){u(f(e),NR0),u(f(e),CR0);var x=i[1],c=0;return le(function(E,d){E&&u(f(e),AR0);function w(G){return u(n,G)}return R(q5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),PR0),u(f(e),DR0)}var s=i[1];u(f(e),LR0),u(f(e),RR0),o(t,e,s[1]),u(f(e),jR0);var p=s[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Rn[1],T,y,e,p),u(f(e),GR0),u(f(e),MR0)}),N(m$,function(t,n,e){var i=o(B5,t,n);return o(C0(IR0),i,e)}),N(q5,function(t,n,e,i){u(f(e),cR0),o(f(e),vR0,sR0);var x=i[1];x?(g(e,lR0),o(Al,e,x[1]),g(e,bR0)):g(e,pR0),u(f(e),mR0),u(f(e),_R0),o(f(e),hR0,yR0);var c=i[2];if(c){g(e,dR0);var s=c[1],p=function(w){return u(n,w)},y=function(w){return u(t,w)};R(Rn[1],y,p,e,s),g(e,kR0)}else g(e,wR0);u(f(e),ER0),u(f(e),SR0),o(f(e),FR0,gR0);var T=i[3];function E(w){return u(n,w)}function d(w){return u(t,w)}return R(Rn[1],d,E,e,T),u(f(e),TR0),u(f(e),OR0)}),N(_$,function(t,n,e){var i=o(q5,t,n);return o(C0(aR0),i,e)}),N(EP,function(t,n,e,i){u(f(e),AL0),o(f(e),CL0,NL0),o(Al,e,i[1]),u(f(e),PL0),u(f(e),DL0),o(f(e),RL0,LL0);var x=i[2];u(f(e),jL0),o(t,e,x[1]),u(f(e),GL0);var c=x[2];function s(V){return u(t,V)}ur(g1[1],s,e,c),u(f(e),ML0),u(f(e),BL0),u(f(e),qL0),o(f(e),HL0,UL0);var p=i[3];if(p){g(e,XL0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(Rn[1],E,T,e,y),g(e,YL0)}else g(e,VL0);u(f(e),zL0),u(f(e),KL0),o(f(e),JL0,WL0);var d=i[4];if(d){g(e,$L0);var w=d[1],G=function(V){return u(n,V)};R(B5,function(V){return u(t,V)},G,e,w),g(e,ZL0)}else g(e,QL0);u(f(e),rR0),u(f(e),eR0),o(f(e),tR0,nR0);var A=i[5];if(A){g(e,uR0);var S=A[1],M=function(V,f0){return g(V,IL0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,iR0)}else g(e,fR0);return u(f(e),xR0),u(f(e),oR0)}),N(y$,function(t,n,e){var i=o(EP,t,n);return o(C0(OL0),i,e)});var h$=[0,Al,p$,B5,m$,q5,_$,EP,y$],SP=function t(n,e,i,x){return t.fun(n,e,i,x)},d$=function t(n,e,i){return t.fun(n,e,i)};N(SP,function(t,n,e,i){u(f(e),oL0),o(f(e),cL0,aL0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),sL0),u(f(e),vL0),o(f(e),bL0,lL0);var p=i[2];if(p){g(e,pL0);var y=p[1];o(f(e),mL0,y),g(e,_L0)}else g(e,yL0);u(f(e),hL0),u(f(e),dL0),o(f(e),wL0,kL0);var T=i[3];if(T){g(e,EL0);var E=T[1],d=function(G,A){return g(G,xL0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,SL0)}else g(e,gL0);return u(f(e),FL0),u(f(e),TL0)}),N(d$,function(t,n,e){var i=o(SP,t,n);return o(C0(fL0),i,e)});var k$=[0,SP,d$],gP=function t(n,e,i){return t.fun(n,e,i)},w$=function t(n,e){return t.fun(n,e)};N(gP,function(t,n,e){u(f(n),ZD0),o(f(n),rL0,QD0);var i=e[1];if(i){g(n,eL0);var x=i[1],c=function(p,y){return g(p,$D0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,nL0)}else g(n,tL0);return u(f(n),uL0),u(f(n),iL0)}),N(w$,function(t,n){var e=u(gP,t);return o(C0(JD0),e,n)});var E$=[0,gP,w$],FP=function t(n,e){return t.fun(n,e)},S$=function t(n){return t.fun(n)},TP=function t(n,e,i,x){return t.fun(n,e,i,x)},g$=function t(n,e,i){return t.fun(n,e,i)},U5=function t(n,e,i,x){return t.fun(n,e,i,x)},F$=function t(n,e,i){return t.fun(n,e,i)};N(FP,function(t,n){return n?g(t,KD0):g(t,WD0)}),N(S$,function(t){return o(C0(zD0),FP,t)}),N(TP,function(t,n,e,i){u(f(e),XD0),o(t,e,i[1]),u(f(e),YD0);var x=i[2];function c(s){return u(n,s)}return R(U5,function(s){return u(t,s)},c,e,x),u(f(e),VD0)}),N(g$,function(t,n,e){var i=o(TP,t,n);return o(C0(HD0),i,e)}),N(U5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),EP0);var x=i[1],c=function(h0){return u(n,h0)},s=function(h0){return u(t,h0)};return R(Kv[1],s,c,e,x),u(f(e),SP0);case 1:u(f(e),gP0);var p=i[1],y=function(h0){return u(t,h0)};return ur(UW[1],y,e,p),u(f(e),FP0);case 2:u(f(e),TP0);var T=i[1],E=function(h0){return u(n,h0)},d=function(h0){return u(t,h0)};return R(F1[8],d,E,e,T),u(f(e),OP0);case 3:u(f(e),IP0);var w=i[1],G=function(h0){return u(t,h0)};return ur(XW[1],G,e,w),u(f(e),AP0);case 4:u(f(e),NP0);var A=i[1],S=function(h0){return u(t,h0)};return ur(VW[1],S,e,A),u(f(e),CP0);case 5:u(f(e),PP0);var M=i[1],K=function(h0){return u(n,h0)},V=function(h0){return u(t,h0)};return R(cP[1],V,K,e,M),u(f(e),DP0);case 6:u(f(e),LP0);var f0=i[1],m0=function(h0){return u(n,h0)},k0=function(h0){return u(t,h0)};return R(b$[3],k0,m0,e,f0),u(f(e),RP0);case 7:u(f(e),jP0);var g0=i[1],e0=function(h0){return u(n,h0)},x0=function(h0){return u(t,h0)};return R(bP[1],x0,e0,e,g0),u(f(e),GP0);case 8:u(f(e),MP0);var l=i[1],c0=function(h0){return u(n,h0)},t0=function(h0){return u(t,h0)};return R(P5[1],t0,c0,e,l),u(f(e),BP0);case 9:u(f(e),qP0);var o0=i[1],w0=function(h0){return u(n,h0)},_0=function(h0){return u(t,h0)};return R(QJ[5],_0,w0,e,o0),u(f(e),UP0);case 10:u(f(e),HP0);var E0=i[1],U0=function(h0){return u(n,h0)},b=function(h0){return u(t,h0)};return R(e$[1],b,U0,e,E0),u(f(e),XP0);case 11:u(f(e),YP0);var R0=i[1],X=function(h0){return u(n,h0)},s0=function(h0){return u(t,h0)};return R(y5[1],s0,X,e,R0),u(f(e),VP0);case 12:u(f(e),zP0);var hr=i[1],Ar=function(h0){return u(n,h0)},or=function(h0){return u(t,h0)};return R(h5[1],or,Ar,e,hr),u(f(e),KP0);case 13:u(f(e),WP0);var W0=i[1],Lr=function(h0){return u(n,h0)},Tr=function(h0){return u(t,h0)};return R(vP[1],Tr,Lr,e,W0),u(f(e),JP0);case 14:u(f(e),$P0);var Hr=i[1],Or=function(h0){return u(n,h0)},fr=function(h0){return u(t,h0)};return R(hJ[1],fr,Or,e,Hr),u(f(e),ZP0);case 15:u(f(e),QP0);var Rr=i[1],Wr=function(h0){return u(t,h0)};return ur(E$[1],Wr,e,Rr),u(f(e),rD0);case 16:u(f(e),eD0);var Jr=i[1],ar=function(h0){return u(n,h0)},_r=function(h0){return u(t,h0)};return R(YJ[7],_r,ar,e,Jr),u(f(e),nD0);case 17:u(f(e),tD0);var Ir=i[1],fe=function(h0){return u(n,h0)},v0=function(h0){return u(t,h0)};return R(s$[1],v0,fe,e,Ir),u(f(e),uD0);case 18:u(f(e),iD0);var P=i[1],L=function(h0){return u(n,h0)},Q=function(h0){return u(t,h0)};return R(dP[3],Q,L,e,P),u(f(e),fD0);case 19:u(f(e),xD0);var i0=i[1],l0=function(h0){return u(n,h0)},S0=function(h0){return u(t,h0)};return R(k$[1],S0,l0,e,i0),u(f(e),oD0);case 20:u(f(e),aD0);var T0=i[1],rr=function(h0){return u(n,h0)},L0=function(h0){return u(t,h0)};return R(wJ[1],L0,rr,e,T0),u(f(e),cD0);case 21:u(f(e),sD0);var B=i[1],Z=function(h0){return u(n,h0)},p0=function(h0){return u(t,h0)};return R(gJ[1],p0,Z,e,B),u(f(e),vD0);case 22:u(f(e),lD0);var b0=i[1],O0=function(h0){return u(n,h0)},M0=function(h0){return u(t,h0)};return R(OJ[1],M0,O0,e,b0),u(f(e),bD0);case 23:u(f(e),pD0);var er=i[1],yr=function(h0){return u(n,h0)},vr=function(h0){return u(t,h0)};return R(As[5],vr,yr,e,er),u(f(e),mD0);case 24:u(f(e),_D0);var $0=i[1],Er=function(h0){return u(n,h0)},Mr=function(h0){return u(t,h0)};return R(GW[2],Mr,Er,e,$0),u(f(e),yD0);case 25:u(f(e),hD0);var Br=i[1],qr=function(h0){return u(n,h0)},jr=function(h0){return u(t,h0)};return R(h$[7],jr,qr,e,Br),u(f(e),dD0);case 26:u(f(e),kD0);var $r=i[1],ne=function(h0){return u(n,h0)},Qr=function(h0){return u(t,h0)};return R(P5[1],Qr,ne,e,$r),u(f(e),wD0);case 27:u(f(e),ED0);var be=i[1],ae=function(h0){return u(n,h0)},pe=function(h0){return u(t,h0)};return R(BW[1],pe,ae,e,be),u(f(e),SD0);case 28:u(f(e),gD0);var oe=i[1],ce=function(h0){return u(n,h0)},ge=function(h0){return u(t,h0)};return R(tJ[1],ge,ce,e,oe),u(f(e),FD0);case 29:u(f(e),TD0);var q0=i[1],Fr=function(h0){return u(n,h0)},_=function(h0){return u(t,h0)};return R(eJ[2],_,Fr,e,q0),u(f(e),OD0);case 30:u(f(e),ID0);var k=i[1],I=function(h0){return u(n,h0)},U=function(h0){return u(t,h0)};return R(iJ[1],U,I,e,k),u(f(e),AD0);case 31:u(f(e),ND0);var Y=i[1],y0=function(h0){return u(n,h0)},P0=function(h0){return u(t,h0)};return R(cJ[2],P0,y0,e,Y),u(f(e),CD0);case 32:u(f(e),PD0);var I0=i[1],D=function(h0){return u(n,h0)},u0=function(h0){return u(t,h0)};return R(y5[1],u0,D,e,I0),u(f(e),DD0);case 33:u(f(e),LD0);var X0=i[1],J0=function(h0){return u(n,h0)},ir=function(h0){return u(t,h0)};return R(h5[1],ir,J0,e,X0),u(f(e),RD0);case 34:u(f(e),jD0);var Q0=i[1],F0=function(h0){return u(n,h0)},Sr=function(h0){return u(t,h0)};return R(Il[2],Sr,F0,e,Q0),u(f(e),GD0);case 35:u(f(e),MD0);var mr=i[1],Cr=function(h0){return u(n,h0)},sr=function(h0){return u(t,h0)};return R(_J[1],sr,Cr,e,mr),u(f(e),BD0);default:u(f(e),qD0);var Pr=i[1],K0=function(h0){return u(n,h0)},Ur=function(h0){return u(t,h0)};return R(KW[1],Ur,K0,e,Pr),u(f(e),UD0)}}),N(F$,function(t,n,e){var i=o(U5,t,n);return o(C0(wP0),i,e)}),mu(W3r,Yu,[0,Kv,GW,BW,UW,XW,VW,KW,y5,h5,eJ,tJ,iJ,cJ,Il,_J,hJ,wJ,gJ,OJ,YJ,P5,cP,vP,bP,QJ,e$,dP,s$,b$,h$,k$,E$,FP,S$,TP,g$,U5,F$]);var OP=function t(n,e,i,x){return t.fun(n,e,i,x)},T$=function t(n,e,i){return t.fun(n,e,i)},H5=function t(n,e,i){return t.fun(n,e,i)},O$=function t(n,e){return t.fun(n,e)};N(OP,function(t,n,e,i){u(f(e),hP0),o(n,e,i[1]),u(f(e),dP0);var x=i[2];return ur(H5,function(c){return u(t,c)},e,x),u(f(e),kP0)}),N(T$,function(t,n,e){var i=o(OP,t,n);return o(C0(yP0),i,e)}),N(H5,function(t,n,e){u(f(n),cP0),o(f(n),vP0,sP0);var i=e[1];if(i){g(n,lP0);var x=i[1],c=function(p,y){return g(p,aP0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,bP0)}else g(n,pP0);return u(f(n),mP0),u(f(n),_P0)}),N(O$,function(t,n){var e=u(H5,t);return o(C0(oP0),e,n)});var I$=[0,OP,T$,H5,O$],IP=function t(n,e,i,x){return t.fun(n,e,i,x)},A$=function t(n,e,i){return t.fun(n,e,i)};N(IP,function(t,n,e,i){if(i[0]===0){u(f(e),uP0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R($e[13],s,c,e,x),u(f(e),iP0)}u(f(e),fP0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(I$[1],T,y,e,p),u(f(e),xP0)}),N(A$,function(t,n,e){var i=o(IP,t,n);return o(C0(tP0),i,e)});var N$=[0,I$,IP,A$],AP=function t(n,e,i,x){return t.fun(n,e,i,x)},C$=function t(n,e,i){return t.fun(n,e,i)},X5=function t(n,e,i,x){return t.fun(n,e,i,x)},P$=function t(n,e,i){return t.fun(n,e,i)};N(AP,function(t,n,e,i){u(f(e),rP0),o(t,e,i[1]),u(f(e),eP0);var x=i[2];function c(s){return u(n,s)}return R(X5,function(s){return u(t,s)},c,e,x),u(f(e),nP0)}),N(C$,function(t,n,e){var i=o(AP,t,n);return o(C0(QC0),i,e)}),N(X5,function(t,n,e,i){u(f(e),MC0),o(f(e),qC0,BC0);var x=i[1];u(f(e),UC0);var c=0;le(function(E,d){E&&u(f(e),GC0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(N$[2],G,w,e,d),1},c,x),u(f(e),HC0),u(f(e),XC0),u(f(e),YC0),o(f(e),zC0,VC0);var s=i[2];if(s){g(e,KC0);var p=s[1],y=function(E,d){u(f(E),RC0);var w=0;return le(function(G,A){G&&u(f(E),LC0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),jC0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,WC0)}else g(e,JC0);return u(f(e),$C0),u(f(e),ZC0)}),N(P$,function(t,n,e){var i=o(X5,t,n);return o(C0(DC0),i,e)});var NP=function t(n,e,i,x){return t.fun(n,e,i,x)},D$=function t(n,e,i){return t.fun(n,e,i)},Y5=function t(n,e,i,x){return t.fun(n,e,i,x)},L$=function t(n,e,i){return t.fun(n,e,i)},See=[0,AP,C$,X5,P$];N(NP,function(t,n,e,i){u(f(e),NC0),o(t,e,i[1]),u(f(e),CC0);var x=i[2];function c(s){return u(n,s)}return R(Y5,function(s){return u(t,s)},c,e,x),u(f(e),PC0)}),N(D$,function(t,n,e){var i=o(NP,t,n);return o(C0(AC0),i,e)}),N(Y5,function(t,n,e,i){u(f(e),yC0),o(f(e),dC0,hC0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),kC0),u(f(e),wC0),o(f(e),SC0,EC0);var p=i[2];if(p){g(e,gC0);var y=p[1],T=function(d,w){return g(d,_C0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,FC0)}else g(e,TC0);return u(f(e),OC0),u(f(e),IC0)}),N(L$,function(t,n,e){var i=o(Y5,t,n);return o(C0(mC0),i,e)});var CP=[0,NP,D$,Y5,L$],V5=function t(n,e,i,x){return t.fun(n,e,i,x)},R$=function t(n,e,i){return t.fun(n,e,i)};N(V5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),cC0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(qe[31],s,c,e,x),u(f(e),sC0);case 1:u(f(e),vC0);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(CP[1],T,y,e,p),u(f(e),lC0);default:return u(f(e),bC0),o(t,e,i[1]),u(f(e),pC0)}}),N(R$,function(t,n,e){var i=o(V5,t,n);return o(C0(aC0),i,e)});var PP=function t(n,e,i,x){return t.fun(n,e,i,x)},j$=function t(n,e,i){return t.fun(n,e,i)};N(PP,function(t,n,e,i){u(f(e),WN0),o(f(e),$N0,JN0);var x=i[1];u(f(e),ZN0);var c=0;le(function(E,d){E&&u(f(e),KN0);function w(G){return u(n,G)}return R(V5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),QN0),u(f(e),rC0),u(f(e),eC0),o(f(e),tC0,nC0);var s=i[2];if(s){g(e,uC0);var p=s[1],y=function(E,d){u(f(E),VN0);var w=0;return le(function(G,A){G&&u(f(E),YN0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),zN0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,iC0)}else g(e,fC0);return u(f(e),xC0),u(f(e),oC0)}),N(j$,function(t,n,e){var i=o(PP,t,n);return o(C0(XN0),i,e)});var G$=[0,V5,R$,PP,j$],z5=function t(n,e){return t.fun(n,e)},M$=function t(n){return t.fun(n)},DP=function t(n,e,i){return t.fun(n,e,i)},B$=function t(n,e){return t.fun(n,e)},K5=function t(n,e){return t.fun(n,e)},q$=function t(n){return t.fun(n)};N(z5,function(t,n){u(f(t),PN0),o(f(t),LN0,DN0);var e=n[1];o(f(t),RN0,e),u(f(t),jN0),u(f(t),GN0),o(f(t),BN0,MN0);var i=n[2];return o(f(t),qN0,i),u(f(t),UN0),u(f(t),HN0)}),N(M$,function(t){return o(C0(CN0),z5,t)}),N(DP,function(t,n,e){return u(f(n),IN0),o(t,n,e[1]),u(f(n),AN0),o(K5,n,e[2]),u(f(n),NN0)}),N(B$,function(t,n){var e=u(DP,t);return o(C0(ON0),e,n)}),N(K5,function(t,n){u(f(t),yN0),o(f(t),dN0,hN0),o(z5,t,n[1]),u(f(t),kN0),u(f(t),wN0),o(f(t),SN0,EN0);var e=n[2];return o(f(t),gN0,e),u(f(t),FN0),u(f(t),TN0)}),N(q$,function(t){return o(C0(_N0),K5,t)});var U$=[0,z5,M$,DP,B$,K5,q$],LP=function t(n,e,i,x){return t.fun(n,e,i,x)},H$=function t(n,e,i){return t.fun(n,e,i)};N(LP,function(t,n,e,i){u(f(e),$A0),o(f(e),QA0,ZA0);var x=i[1];u(f(e),rN0);var c=0;le(function(w,G){w&&u(f(e),JA0);function A(S){return u(t,S)}return ur(U$[3],A,e,G),1},c,x),u(f(e),eN0),u(f(e),nN0),u(f(e),tN0),o(f(e),iN0,uN0);var s=i[2];u(f(e),fN0);var p=0;le(function(w,G){w&&u(f(e),WA0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(qe[31],S,A,e,G),1},p,s),u(f(e),xN0),u(f(e),oN0),u(f(e),aN0),o(f(e),sN0,cN0);var y=i[3];if(y){g(e,vN0);var T=y[1],E=function(w,G){return g(w,KA0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,lN0)}else g(e,bN0);return u(f(e),pN0),u(f(e),mN0)}),N(H$,function(t,n,e){var i=o(LP,t,n);return o(C0(zA0),i,e)});var RP=[0,U$,LP,H$],jP=function t(n,e,i,x){return t.fun(n,e,i,x)},X$=function t(n,e,i){return t.fun(n,e,i)};N(jP,function(t,n,e,i){u(f(e),OA0),o(f(e),AA0,IA0);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(qe[31],s,c,e,x),u(f(e),NA0),u(f(e),CA0),o(f(e),DA0,PA0);var p=i[2];u(f(e),LA0),o(t,e,p[1]),u(f(e),RA0);var y=p[2];function T(S){return u(n,S)}function E(S){return u(t,S)}R(RP[2],E,T,e,y),u(f(e),jA0),u(f(e),GA0),u(f(e),MA0),o(f(e),qA0,BA0);var d=i[3];if(d){g(e,UA0);var w=d[1],G=function(S,M){return g(S,TA0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,HA0)}else g(e,XA0);return u(f(e),YA0),u(f(e),VA0)}),N(X$,function(t,n,e){var i=o(jP,t,n);return o(C0(FA0),i,e)});var Y$=[0,jP,X$],T1=function t(n,e,i,x){return t.fun(n,e,i,x)},V$=function t(n,e,i){return t.fun(n,e,i)},GP=function t(n,e,i,x){return t.fun(n,e,i,x)},z$=function t(n,e,i){return t.fun(n,e,i)},W5=function t(n,e,i,x){return t.fun(n,e,i,x)},K$=function t(n,e,i){return t.fun(n,e,i)};N(T1,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),pA0),u(f(e),mA0),o(n,e,x[1]),u(f(e),_A0);var c=x[2],s=function(S){return u(t,S)};return ur(Tl[2],s,e,c),u(f(e),yA0),u(f(e),hA0);case 1:u(f(e),dA0);var p=i[1],y=function(S){return u(n,S)},T=function(S){return u(t,S)};return R(Rn[1],T,y,e,p),u(f(e),kA0);case 2:u(f(e),wA0);var E=i[1],d=function(S){return u(t,S)};return ur(Bp[1],d,e,E),u(f(e),EA0);default:u(f(e),SA0);var w=i[1],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(qp[1],A,G,e,w),u(f(e),gA0)}}),N(V$,function(t,n,e){var i=o(T1,t,n);return o(C0(bA0),i,e)}),N(GP,function(t,n,e,i){u(f(e),sA0),o(t,e,i[1]),u(f(e),vA0);var x=i[2];function c(s){return u(n,s)}return R(W5,function(s){return u(t,s)},c,e,x),u(f(e),lA0)}),N(z$,function(t,n,e){var i=o(GP,t,n);return o(C0(cA0),i,e)}),N(W5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),rI0),o(f(e),nI0,eI0);var x=i[1],c=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},c,e,x),u(f(e),tI0),u(f(e),uI0),o(f(e),fI0,iI0);var s=i[2],p=function(s0){return u(n,s0)},y=function(s0){return u(t,s0)};R(qe[31],y,p,e,s),u(f(e),xI0),u(f(e),oI0),o(f(e),cI0,aI0);var T=i[3];return o(f(e),sI0,T),u(f(e),vI0),u(f(e),lI0);case 1:var E=i[2];u(f(e),bI0),o(f(e),mI0,pI0);var d=i[1],w=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w,e,d),u(f(e),_I0),u(f(e),yI0),o(f(e),dI0,hI0),u(f(e),kI0),o(t,e,E[1]),u(f(e),wI0);var G=E[2],A=function(s0){return u(n,s0)},S=function(s0){return u(t,s0)};return R(As[5],S,A,e,G),u(f(e),EI0),u(f(e),SI0),u(f(e),gI0);case 2:var M=i[3],K=i[2];u(f(e),FI0),o(f(e),OI0,TI0);var V=i[1],f0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},f0,e,V),u(f(e),II0),u(f(e),AI0),o(f(e),CI0,NI0),u(f(e),PI0),o(t,e,K[1]),u(f(e),DI0);var m0=K[2],k0=function(s0){return u(n,s0)},g0=function(s0){return u(t,s0)};if(R(As[5],g0,k0,e,m0),u(f(e),LI0),u(f(e),RI0),u(f(e),jI0),o(f(e),MI0,GI0),M){g(e,BI0);var e0=M[1],x0=function(s0,hr){return g(s0,QO0)},l=function(s0){return u(t,s0)};R(Dr[1],l,x0,e,e0),g(e,qI0)}else g(e,UI0);return u(f(e),HI0),u(f(e),XI0);default:var c0=i[3],t0=i[2];u(f(e),YI0),o(f(e),zI0,VI0);var o0=i[1],w0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w0,e,o0),u(f(e),KI0),u(f(e),WI0),o(f(e),$I0,JI0),u(f(e),ZI0),o(t,e,t0[1]),u(f(e),QI0);var _0=t0[2],E0=function(s0){return u(n,s0)},U0=function(s0){return u(t,s0)};if(R(As[5],U0,E0,e,_0),u(f(e),rA0),u(f(e),eA0),u(f(e),nA0),o(f(e),uA0,tA0),c0){g(e,iA0);var b=c0[1],R0=function(s0,hr){return g(s0,ZO0)},X=function(s0){return u(t,s0)};R(Dr[1],X,R0,e,b),g(e,fA0)}else g(e,xA0);return u(f(e),oA0),u(f(e),aA0)}}),N(K$,function(t,n,e){var i=o(W5,t,n);return o(C0($O0),i,e)});var W$=[0,T1,V$,GP,z$,W5,K$],MP=function t(n,e,i,x){return t.fun(n,e,i,x)},J$=function t(n,e,i){return t.fun(n,e,i)},J5=function t(n,e,i,x){return t.fun(n,e,i,x)},$$=function t(n,e,i){return t.fun(n,e,i)};N(MP,function(t,n,e,i){u(f(e),KO0),o(t,e,i[1]),u(f(e),WO0);var x=i[2];function c(s){return u(n,s)}return R(J5,function(s){return u(t,s)},c,e,x),u(f(e),JO0)}),N(J$,function(t,n,e){var i=o(MP,t,n);return o(C0(zO0),i,e)}),N(J5,function(t,n,e,i){u(f(e),LO0),o(f(e),jO0,RO0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),GO0),u(f(e),MO0),o(f(e),qO0,BO0);var p=i[2];if(p){g(e,UO0);var y=p[1],T=function(d,w){return g(d,DO0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,HO0)}else g(e,XO0);return u(f(e),YO0),u(f(e),VO0)}),N($$,function(t,n,e){var i=o(J5,t,n);return o(C0(PO0),i,e)});var Z$=[0,MP,J$,J5,$$],$5=function t(n,e,i,x){return t.fun(n,e,i,x)},Q$=function t(n,e,i){return t.fun(n,e,i)},BP=function t(n,e,i,x){return t.fun(n,e,i,x)},rZ=function t(n,e,i){return t.fun(n,e,i)};N($5,function(t,n,e,i){if(i[0]===0){u(f(e),IO0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(W$[3],s,c,e,x),u(f(e),AO0)}u(f(e),NO0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Z$[1],T,y,e,p),u(f(e),CO0)}),N(Q$,function(t,n,e){var i=o($5,t,n);return o(C0(OO0),i,e)}),N(BP,function(t,n,e,i){u(f(e),bO0),o(f(e),mO0,pO0);var x=i[1];u(f(e),_O0);var c=0;le(function(E,d){E&&u(f(e),lO0);function w(G){return u(n,G)}return R($5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),yO0),u(f(e),hO0),u(f(e),dO0),o(f(e),wO0,kO0);var s=i[2];if(s){g(e,EO0);var p=s[1],y=function(E,d){u(f(E),sO0);var w=0;return le(function(G,A){G&&u(f(E),cO0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),vO0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,SO0)}else g(e,gO0);return u(f(e),FO0),u(f(e),TO0)}),N(rZ,function(t,n,e){var i=o(BP,t,n);return o(C0(aO0),i,e)});var eZ=[0,W$,Z$,$5,Q$,BP,rZ],qP=function t(n,e,i,x){return t.fun(n,e,i,x)},nZ=function t(n,e,i){return t.fun(n,e,i)};N(qP,function(t,n,e,i){u(f(e),WT0),o(f(e),$T0,JT0);var x=i[1];u(f(e),ZT0);var c=0;le(function(E,d){E&&u(f(e),KT0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(qe[31],G,w,e,d),1},c,x),u(f(e),QT0),u(f(e),rO0),u(f(e),eO0),o(f(e),tO0,nO0);var s=i[2];if(s){g(e,uO0);var p=s[1],y=function(E,d){return g(E,zT0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,iO0)}else g(e,fO0);return u(f(e),xO0),u(f(e),oO0)}),N(nZ,function(t,n,e){var i=o(qP,t,n);return o(C0(VT0),i,e)});var tZ=[0,qP,nZ],Z5=function t(n,e){return t.fun(n,e)},uZ=function t(n){return t.fun(n)},UP=function t(n,e,i,x){return t.fun(n,e,i,x)},iZ=function t(n,e,i){return t.fun(n,e,i)};N(Z5,function(t,n){switch(n){case 0:return g(t,GT0);case 1:return g(t,MT0);case 2:return g(t,BT0);case 3:return g(t,qT0);case 4:return g(t,UT0);case 5:return g(t,HT0);case 6:return g(t,XT0);default:return g(t,YT0)}}),N(uZ,function(t){return o(C0(jT0),Z5,t)}),N(UP,function(t,n,e,i){u(f(e),kT0),o(f(e),ET0,wT0),o(Z5,e,i[1]),u(f(e),ST0),u(f(e),gT0),o(f(e),TT0,FT0);var x=i[2];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),OT0),u(f(e),IT0),o(f(e),NT0,AT0);var p=i[3];if(p){g(e,CT0);var y=p[1],T=function(d,w){return g(d,dT0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,PT0)}else g(e,DT0);return u(f(e),LT0),u(f(e),RT0)}),N(iZ,function(t,n,e){var i=o(UP,t,n);return o(C0(hT0),i,e)});var fZ=[0,Z5,uZ,UP,iZ],Q5=function t(n,e){return t.fun(n,e)},xZ=function t(n){return t.fun(n)},HP=function t(n,e,i,x){return t.fun(n,e,i,x)},oZ=function t(n,e,i){return t.fun(n,e,i)};N(Q5,function(t,n){switch(n){case 0:return g(t,$F0);case 1:return g(t,ZF0);case 2:return g(t,QF0);case 3:return g(t,rT0);case 4:return g(t,eT0);case 5:return g(t,nT0);case 6:return g(t,tT0);case 7:return g(t,uT0);case 8:return g(t,iT0);case 9:return g(t,fT0);case 10:return g(t,xT0);case 11:return g(t,oT0);case 12:return g(t,aT0);case 13:return g(t,cT0);case 14:return g(t,sT0);case 15:return g(t,vT0);case 16:return g(t,lT0);case 17:return g(t,bT0);case 18:return g(t,pT0);case 19:return g(t,mT0);case 20:return g(t,_T0);default:return g(t,yT0)}}),N(xZ,function(t){return o(C0(JF0),Q5,t)}),N(HP,function(t,n,e,i){u(f(e),AF0),o(f(e),CF0,NF0),o(Q5,e,i[1]),u(f(e),PF0),u(f(e),DF0),o(f(e),RF0,LF0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),jF0),u(f(e),GF0),o(f(e),BF0,MF0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),qF0),u(f(e),UF0),o(f(e),XF0,HF0);var E=i[4];if(E){g(e,YF0);var d=E[1],w=function(A,S){return g(A,IF0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,VF0)}else g(e,zF0);return u(f(e),KF0),u(f(e),WF0)}),N(oZ,function(t,n,e){var i=o(HP,t,n);return o(C0(OF0),i,e)});var aZ=[0,Q5,xZ,HP,oZ],rm=function t(n,e){return t.fun(n,e)},cZ=function t(n){return t.fun(n)},XP=function t(n,e,i,x){return t.fun(n,e,i,x)},sZ=function t(n,e,i){return t.fun(n,e,i)};N(rm,function(t,n){switch(n){case 0:return g(t,lF0);case 1:return g(t,bF0);case 2:return g(t,pF0);case 3:return g(t,mF0);case 4:return g(t,_F0);case 5:return g(t,yF0);case 6:return g(t,hF0);case 7:return g(t,dF0);case 8:return g(t,kF0);case 9:return g(t,wF0);case 10:return g(t,EF0);case 11:return g(t,SF0);case 12:return g(t,gF0);case 13:return g(t,FF0);default:return g(t,TF0)}}),N(cZ,function(t){return o(C0(vF0),rm,t)}),N(XP,function(t,n,e,i){u(f(e),Hg0),o(f(e),Yg0,Xg0);var x=i[1];x?(g(e,Vg0),o(rm,e,x[1]),g(e,zg0)):g(e,Kg0),u(f(e),Wg0),u(f(e),Jg0),o(f(e),Zg0,$g0);var c=i[2];function s(S){return u(n,S)}function p(S){return u(t,S)}R(di[5],p,s,e,c),u(f(e),Qg0),u(f(e),rF0),o(f(e),nF0,eF0);var y=i[3];function T(S){return u(n,S)}function E(S){return u(t,S)}R(qe[31],E,T,e,y),u(f(e),tF0),u(f(e),uF0),o(f(e),fF0,iF0);var d=i[4];if(d){g(e,xF0);var w=d[1],G=function(S,M){return g(S,Ug0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,oF0)}else g(e,aF0);return u(f(e),cF0),u(f(e),sF0)}),N(sZ,function(t,n,e){var i=o(XP,t,n);return o(C0(qg0),i,e)});var vZ=[0,rm,cZ,XP,sZ],em=function t(n,e){return t.fun(n,e)},lZ=function t(n){return t.fun(n)},YP=function t(n,e,i,x){return t.fun(n,e,i,x)},bZ=function t(n,e,i){return t.fun(n,e,i)};N(em,function(t,n){return n?g(t,Mg0):g(t,Bg0)}),N(lZ,function(t){return o(C0(Gg0),em,t)}),N(YP,function(t,n,e,i){u(f(e),_g0),o(f(e),hg0,yg0),o(em,e,i[1]),u(f(e),dg0),u(f(e),kg0),o(f(e),Eg0,wg0);var x=i[2];function c(w){return u(n,w)}function s(w){return u(t,w)}R(qe[31],s,c,e,x),u(f(e),Sg0),u(f(e),gg0),o(f(e),Tg0,Fg0);var p=i[3];o(f(e),Og0,p),u(f(e),Ig0),u(f(e),Ag0),o(f(e),Cg0,Ng0);var y=i[4];if(y){g(e,Pg0);var T=y[1],E=function(w,G){return g(w,mg0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Dg0)}else g(e,Lg0);return u(f(e),Rg0),u(f(e),jg0)}),N(bZ,function(t,n,e){var i=o(YP,t,n);return o(C0(pg0),i,e)});var pZ=[0,em,lZ,YP,bZ],nm=function t(n,e){return t.fun(n,e)},mZ=function t(n){return t.fun(n)},VP=function t(n,e,i,x){return t.fun(n,e,i,x)},_Z=function t(n,e,i){return t.fun(n,e,i)};N(nm,function(t,n){switch(n){case 0:return g(t,vg0);case 1:return g(t,lg0);default:return g(t,bg0)}}),N(mZ,function(t){return o(C0(sg0),nm,t)}),N(VP,function(t,n,e,i){u(f(e),YS0),o(f(e),zS0,VS0),o(nm,e,i[1]),u(f(e),KS0),u(f(e),WS0),o(f(e),$S0,JS0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),ZS0),u(f(e),QS0),o(f(e),eg0,rg0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),ng0),u(f(e),tg0),o(f(e),ig0,ug0);var E=i[4];if(E){g(e,fg0);var d=E[1],w=function(A,S){return g(A,XS0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,xg0)}else g(e,og0);return u(f(e),ag0),u(f(e),cg0)}),N(_Z,function(t,n,e){var i=o(VP,t,n);return o(C0(HS0),i,e)});var yZ=[0,nm,mZ,VP,_Z],zP=function t(n,e,i,x){return t.fun(n,e,i,x)},hZ=function t(n,e,i){return t.fun(n,e,i)};N(zP,function(t,n,e,i){u(f(e),ES0),o(f(e),gS0,SS0);var x=i[1];function c(K){return u(n,K)}function s(K){return u(t,K)}R(qe[31],s,c,e,x),u(f(e),FS0),u(f(e),TS0),o(f(e),IS0,OS0);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R(qe[31],T,y,e,p),u(f(e),AS0),u(f(e),NS0),o(f(e),PS0,CS0);var E=i[3];function d(K){return u(n,K)}function w(K){return u(t,K)}R(qe[31],w,d,e,E),u(f(e),DS0),u(f(e),LS0),o(f(e),jS0,RS0);var G=i[4];if(G){g(e,GS0);var A=G[1],S=function(K,V){return g(K,wS0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,MS0)}else g(e,BS0);return u(f(e),qS0),u(f(e),US0)}),N(hZ,function(t,n,e){var i=o(zP,t,n);return o(C0(kS0),i,e)});var dZ=[0,zP,hZ],tm=function t(n,e,i,x){return t.fun(n,e,i,x)},kZ=function t(n,e,i){return t.fun(n,e,i)};N(tm,function(t,n,e,i){if(i[0]===0){u(f(e),_S0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(qe[31],s,c,e,x),u(f(e),yS0)}u(f(e),hS0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(CP[1],T,y,e,p),u(f(e),dS0)}),N(kZ,function(t,n,e){var i=o(tm,t,n);return o(C0(mS0),i,e)});var KP=function t(n,e,i,x){return t.fun(n,e,i,x)},wZ=function t(n,e,i){return t.fun(n,e,i)},um=function t(n,e,i,x){return t.fun(n,e,i,x)},EZ=function t(n,e,i){return t.fun(n,e,i)};N(KP,function(t,n,e,i){u(f(e),lS0),o(t,e,i[1]),u(f(e),bS0);var x=i[2];function c(s){return u(n,s)}return R(um,function(s){return u(t,s)},c,e,x),u(f(e),pS0)}),N(wZ,function(t,n,e){var i=o(KP,t,n);return o(C0(vS0),i,e)}),N(um,function(t,n,e,i){u(f(e),ZE0),o(f(e),rS0,QE0);var x=i[1];u(f(e),eS0);var c=0;le(function(E,d){E&&u(f(e),$E0);function w(G){return u(n,G)}return R(tm,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),nS0),u(f(e),tS0),u(f(e),uS0),o(f(e),fS0,iS0);var s=i[2];if(s){g(e,xS0);var p=s[1],y=function(E,d){u(f(E),WE0);var w=0;return le(function(G,A){G&&u(f(E),KE0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),JE0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,oS0)}else g(e,aS0);return u(f(e),cS0),u(f(e),sS0)}),N(EZ,function(t,n,e){var i=o(um,t,n);return o(C0(zE0),i,e)});var WP=[0,KP,wZ,um,EZ],JP=function t(n,e,i,x){return t.fun(n,e,i,x)},SZ=function t(n,e,i){return t.fun(n,e,i)};N(JP,function(t,n,e,i){u(f(e),kE0),o(f(e),EE0,wE0);var x=i[1];function c(f0){return u(n,f0)}function s(f0){return u(t,f0)}R(qe[31],s,c,e,x),u(f(e),SE0),u(f(e),gE0),o(f(e),TE0,FE0);var p=i[2];if(p){g(e,OE0);var y=p[1],T=function(f0){return u(n,f0)},E=function(f0){return u(t,f0)};R(qe[2][1],E,T,e,y),g(e,IE0)}else g(e,AE0);u(f(e),NE0),u(f(e),CE0),o(f(e),DE0,PE0);var d=i[3];if(d){g(e,LE0);var w=d[1],G=function(f0){return u(n,f0)},A=function(f0){return u(t,f0)};R(WP[1],A,G,e,w),g(e,RE0)}else g(e,jE0);u(f(e),GE0),u(f(e),ME0),o(f(e),qE0,BE0);var S=i[4];if(S){g(e,UE0);var M=S[1],K=function(f0,m0){return g(f0,dE0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,HE0)}else g(e,XE0);return u(f(e),YE0),u(f(e),VE0)}),N(SZ,function(t,n,e){var i=o(JP,t,n);return o(C0(hE0),i,e)});var gZ=[0,JP,SZ],$P=function t(n,e,i,x){return t.fun(n,e,i,x)},FZ=function t(n,e,i){return t.fun(n,e,i)};N($P,function(t,n,e,i){u(f(e),Jw0),o(f(e),Zw0,$w0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[31],s,c,e,x),u(f(e),Qw0),u(f(e),rE0),o(f(e),nE0,eE0);var p=i[2];if(p){g(e,tE0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(qe[2][1],E,T,e,y),g(e,uE0)}else g(e,iE0);u(f(e),fE0),u(f(e),xE0),o(f(e),aE0,oE0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R(WP[1],G,w,e,d),u(f(e),cE0),u(f(e),sE0),o(f(e),lE0,vE0);var A=i[4];if(A){g(e,bE0);var S=A[1],M=function(V,f0){return g(V,Ww0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,pE0)}else g(e,mE0);return u(f(e),_E0),u(f(e),yE0)}),N(FZ,function(t,n,e){var i=o($P,t,n);return o(C0(Kw0),i,e)});var ZP=[0,$P,FZ],QP=function t(n,e,i,x){return t.fun(n,e,i,x)},TZ=function t(n,e,i){return t.fun(n,e,i)};N(QP,function(t,n,e,i){u(f(e),Dw0),o(f(e),Rw0,Lw0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(ZP[1],s,c,e,x),u(f(e),jw0),u(f(e),Gw0),o(f(e),Bw0,Mw0),o(n,e,i[2]),u(f(e),qw0),u(f(e),Uw0),o(f(e),Xw0,Hw0);var p=i[3];return o(f(e),Yw0,p),u(f(e),Vw0),u(f(e),zw0)}),N(TZ,function(t,n,e){var i=o(QP,t,n);return o(C0(Pw0),i,e)});var OZ=[0,QP,TZ],im=function t(n,e,i,x){return t.fun(n,e,i,x)},IZ=function t(n,e,i){return t.fun(n,e,i)},rD=function t(n,e,i,x){return t.fun(n,e,i,x)},AZ=function t(n,e,i){return t.fun(n,e,i)};N(im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),Tw0);var x=i[1],c=function(w){return u(n,w)},s=function(w){return u(t,w)};return R(Rn[1],s,c,e,x),u(f(e),Ow0);case 1:u(f(e),Iw0);var p=i[1],y=function(w){return u(t,w)};return ur(Bp[1],y,e,p),u(f(e),Aw0);default:u(f(e),Nw0);var T=i[1],E=function(w){return u(n,w)},d=function(w){return u(t,w)};return R(qe[31],d,E,e,T),u(f(e),Cw0)}}),N(IZ,function(t,n,e){var i=o(im,t,n);return o(C0(Fw0),i,e)}),N(rD,function(t,n,e,i){u(f(e),cw0),o(f(e),vw0,sw0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),lw0),u(f(e),bw0),o(f(e),mw0,pw0);var p=i[2];function y(G){return u(n,G)}R(im,function(G){return u(t,G)},y,e,p),u(f(e),_w0),u(f(e),yw0),o(f(e),dw0,hw0);var T=i[3];if(T){g(e,kw0);var E=T[1],d=function(G,A){return g(G,aw0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,ww0)}else g(e,Ew0);return u(f(e),Sw0),u(f(e),gw0)}),N(AZ,function(t,n,e){var i=o(rD,t,n);return o(C0(ow0),i,e)});var eD=[0,im,IZ,rD,AZ],nD=function t(n,e,i,x){return t.fun(n,e,i,x)},NZ=function t(n,e,i){return t.fun(n,e,i)};N(nD,function(t,n,e,i){u(f(e),Kk0),o(f(e),Jk0,Wk0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(eD[3],s,c,e,x),u(f(e),$k0),u(f(e),Zk0),o(f(e),rw0,Qk0),o(n,e,i[2]),u(f(e),ew0),u(f(e),nw0),o(f(e),uw0,tw0);var p=i[3];return o(f(e),iw0,p),u(f(e),fw0),u(f(e),xw0)}),N(NZ,function(t,n,e){var i=o(nD,t,n);return o(C0(zk0),i,e)});var CZ=[0,nD,NZ],tD=function t(n,e,i,x){return t.fun(n,e,i,x)},PZ=function t(n,e,i){return t.fun(n,e,i)};N(tD,function(t,n,e,i){u(f(e),Ek0),o(f(e),gk0,Sk0);var x=i[1];if(x){g(e,Fk0);var c=x[1],s=function(G){return u(n,G)},p=function(G){return u(t,G)};R(qe[31],p,s,e,c),g(e,Tk0)}else g(e,Ok0);u(f(e),Ik0),u(f(e),Ak0),o(f(e),Ck0,Nk0);var y=i[2];if(y){g(e,Pk0);var T=y[1],E=function(G,A){return g(G,wk0)},d=function(G){return u(t,G)};R(Dr[1],d,E,e,T),g(e,Dk0)}else g(e,Lk0);u(f(e),Rk0),u(f(e),jk0),o(f(e),Mk0,Gk0);var w=i[3];return o(f(e),Bk0,w),u(f(e),qk0),u(f(e),Uk0),o(f(e),Xk0,Hk0),o(n,e,i[4]),u(f(e),Yk0),u(f(e),Vk0)}),N(PZ,function(t,n,e){var i=o(tD,t,n);return o(C0(kk0),i,e)});var DZ=[0,tD,PZ],uD=function t(n,e,i,x){return t.fun(n,e,i,x)},LZ=function t(n,e,i){return t.fun(n,e,i)},fm=function t(n,e,i,x){return t.fun(n,e,i,x)},RZ=function t(n,e,i){return t.fun(n,e,i)};N(uD,function(t,n,e,i){u(f(e),yk0),o(t,e,i[1]),u(f(e),hk0);var x=i[2];function c(s){return u(n,s)}return R(fm,function(s){return u(t,s)},c,e,x),u(f(e),dk0)}),N(LZ,function(t,n,e){var i=o(uD,t,n);return o(C0(_k0),i,e)}),N(fm,function(t,n,e,i){u(f(e),tk0),o(f(e),ik0,uk0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),fk0),u(f(e),xk0),o(f(e),ak0,ok0);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R(qe[31],T,y,e,p),u(f(e),ck0),u(f(e),sk0),o(f(e),lk0,vk0);var E=i[3];return o(f(e),bk0,E),u(f(e),pk0),u(f(e),mk0)}),N(RZ,function(t,n,e){var i=o(fm,t,n);return o(C0(nk0),i,e)});var jZ=[0,uD,LZ,fm,RZ],iD=function t(n,e,i,x){return t.fun(n,e,i,x)},GZ=function t(n,e,i){return t.fun(n,e,i)};N(iD,function(t,n,e,i){u(f(e),Ud0),o(f(e),Xd0,Hd0);var x=i[1];u(f(e),Yd0);var c=0;le(function(E,d){E&&u(f(e),qd0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(jZ[1],G,w,e,d),1},c,x),u(f(e),Vd0),u(f(e),zd0),u(f(e),Kd0),o(f(e),Jd0,Wd0);var s=i[2];if(s){g(e,$d0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(qe[31],T,y,e,p),g(e,Zd0)}else g(e,Qd0);return u(f(e),rk0),u(f(e),ek0)}),N(GZ,function(t,n,e){var i=o(iD,t,n);return o(C0(Bd0),i,e)});var fD=[0,jZ,iD,GZ],xD=function t(n,e,i,x){return t.fun(n,e,i,x)},MZ=function t(n,e,i){return t.fun(n,e,i)};N(xD,function(t,n,e,i){u(f(e),Fd0),o(f(e),Od0,Td0);var x=i[1];u(f(e),Id0);var c=0;le(function(E,d){E&&u(f(e),gd0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(fD[1][1],G,w,e,d),1},c,x),u(f(e),Ad0),u(f(e),Nd0),u(f(e),Cd0),o(f(e),Dd0,Pd0);var s=i[2];if(s){g(e,Ld0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(qe[31],T,y,e,p),g(e,Rd0)}else g(e,jd0);return u(f(e),Gd0),u(f(e),Md0)}),N(MZ,function(t,n,e){var i=o(xD,t,n);return o(C0(Sd0),i,e)});var BZ=[0,xD,MZ],oD=function t(n,e,i,x){return t.fun(n,e,i,x)},qZ=function t(n,e,i){return t.fun(n,e,i)};N(oD,function(t,n,e,i){u(f(e),od0),o(f(e),cd0,ad0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),sd0),u(f(e),vd0),o(f(e),bd0,ld0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),pd0),u(f(e),md0),o(f(e),yd0,_d0);var E=i[3];if(E){g(e,hd0);var d=E[1],w=function(A,S){return g(A,xd0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,dd0)}else g(e,kd0);return u(f(e),wd0),u(f(e),Ed0)}),N(qZ,function(t,n,e){var i=o(oD,t,n);return o(C0(fd0),i,e)});var UZ=[0,oD,qZ],aD=function t(n,e,i){return t.fun(n,e,i)},HZ=function t(n,e){return t.fun(n,e)};N(aD,function(t,n,e){u(f(n),Xh0),o(f(n),Vh0,Yh0);var i=e[1];function x(G){return u(t,G)}function c(G){return u(t,G)}R(Rn[1],c,x,n,i),u(f(n),zh0),u(f(n),Kh0),o(f(n),Jh0,Wh0);var s=e[2];function p(G){return u(t,G)}function y(G){return u(t,G)}R(Rn[1],y,p,n,s),u(f(n),$h0),u(f(n),Zh0),o(f(n),rd0,Qh0);var T=e[3];if(T){g(n,ed0);var E=T[1],d=function(G,A){return g(G,Hh0)},w=function(G){return u(t,G)};R(Dr[1],w,d,n,E),g(n,nd0)}else g(n,td0);return u(f(n),ud0),u(f(n),id0)}),N(HZ,function(t,n){var e=u(aD,t);return o(C0(Uh0),e,n)});var XZ=[0,aD,HZ],cD=function t(n,e,i){return t.fun(n,e,i)},YZ=function t(n,e){return t.fun(n,e)};N(cD,function(t,n,e){u(f(n),Dh0),o(f(n),Rh0,Lh0);var i=e[1];if(i){g(n,jh0);var x=i[1],c=function(p,y){return g(p,Ph0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Gh0)}else g(n,Mh0);return u(f(n),Bh0),u(f(n),qh0)}),N(YZ,function(t,n){var e=u(cD,t);return o(C0(Ch0),e,n)});var VZ=[0,cD,YZ],sD=function t(n,e,i){return t.fun(n,e,i)},zZ=function t(n,e){return t.fun(n,e)};N(sD,function(t,n,e){u(f(n),Sh0),o(f(n),Fh0,gh0);var i=e[1];if(i){g(n,Th0);var x=i[1],c=function(p,y){return g(p,Eh0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Oh0)}else g(n,Ih0);return u(f(n),Ah0),u(f(n),Nh0)}),N(zZ,function(t,n){var e=u(sD,t);return o(C0(wh0),e,n)});var KZ=[0,sD,zZ],vD=function t(n,e,i,x){return t.fun(n,e,i,x)},WZ=function t(n,e,i){return t.fun(n,e,i)};N(vD,function(t,n,e,i){u(f(e),ch0),o(f(e),vh0,sh0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),lh0),u(f(e),bh0),o(f(e),mh0,ph0);var p=i[2];if(p){g(e,_h0);var y=p[1],T=function(d,w){return g(d,ah0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,yh0)}else g(e,hh0);return u(f(e),dh0),u(f(e),kh0)}),N(WZ,function(t,n,e){var i=o(vD,t,n);return o(C0(oh0),i,e)});var JZ=[0,vD,WZ],lD=function t(n,e,i,x){return t.fun(n,e,i,x)},$Z=function t(n,e,i){return t.fun(n,e,i)},xm=function t(n,e,i,x){return t.fun(n,e,i,x)},ZZ=function t(n,e,i){return t.fun(n,e,i)};N(lD,function(t,n,e,i){u(f(e),ih0),o(n,e,i[1]),u(f(e),fh0);var x=i[2];function c(s){return u(n,s)}return R(xm,function(s){return u(t,s)},c,e,x),u(f(e),xh0)}),N($Z,function(t,n,e){var i=o(lD,t,n);return o(C0(uh0),i,e)}),N(xm,function(t,n,e,i){switch(i[0]){case 0:u(f(e),J_0);var x=i[1],c=function(Y){return u(n,Y)},s=function(Y){return u(t,Y)};return R(G$[3],s,c,e,x),u(f(e),$_0);case 1:u(f(e),Z_0);var p=i[1],y=function(Y){return u(n,Y)},T=function(Y){return u(t,Y)};return R(As[5],T,y,e,p),u(f(e),Q_0);case 2:u(f(e),ry0);var E=i[1],d=function(Y){return u(n,Y)},w=function(Y){return u(t,Y)};return R(vZ[3],w,d,e,E),u(f(e),ey0);case 3:u(f(e),ny0);var G=i[1],A=function(Y){return u(n,Y)},S=function(Y){return u(t,Y)};return R(aZ[3],S,A,e,G),u(f(e),ty0);case 4:u(f(e),uy0);var M=i[1],K=function(Y){return u(n,Y)},V=function(Y){return u(t,Y)};return R(ZP[1],V,K,e,M),u(f(e),iy0);case 5:u(f(e),fy0);var f0=i[1],m0=function(Y){return u(n,Y)},k0=function(Y){return u(t,Y)};return R(F1[8],k0,m0,e,f0),u(f(e),xy0);case 6:u(f(e),oy0);var g0=i[1],e0=function(Y){return u(n,Y)},x0=function(Y){return u(t,Y)};return R(fD[2],x0,e0,e,g0),u(f(e),ay0);case 7:u(f(e),cy0);var l=i[1],c0=function(Y){return u(n,Y)},t0=function(Y){return u(t,Y)};return R(dZ[1],t0,c0,e,l),u(f(e),sy0);case 8:u(f(e),vy0);var o0=i[1],w0=function(Y){return u(n,Y)},_0=function(Y){return u(t,Y)};return R(As[5],_0,w0,e,o0),u(f(e),ly0);case 9:u(f(e),by0);var E0=i[1],U0=function(Y){return u(n,Y)},b=function(Y){return u(t,Y)};return R(BZ[1],b,U0,e,E0),u(f(e),py0);case 10:u(f(e),my0);var R0=i[1],X=function(Y){return u(n,Y)},s0=function(Y){return u(t,Y)};return R(Rn[1],s0,X,e,R0),u(f(e),_y0);case 11:u(f(e),yy0);var hr=i[1],Ar=function(Y){return u(n,Y)},or=function(Y){return u(t,Y)};return R(JZ[1],or,Ar,e,hr),u(f(e),hy0);case 12:u(f(e),dy0);var W0=i[1],Lr=function(Y){return u(n,Y)},Tr=function(Y){return u(t,Y)};return R(UN[17],Tr,Lr,e,W0),u(f(e),ky0);case 13:u(f(e),wy0);var Hr=i[1],Or=function(Y){return u(n,Y)},fr=function(Y){return u(t,Y)};return R(UN[19],fr,Or,e,Hr),u(f(e),Ey0);case 14:u(f(e),Sy0);var Rr=i[1],Wr=function(Y){return u(t,Y)};return ur(Tl[2],Wr,e,Rr),u(f(e),gy0);case 15:u(f(e),Fy0);var Jr=i[1],ar=function(Y){return u(n,Y)},_r=function(Y){return u(t,Y)};return R(yZ[3],_r,ar,e,Jr),u(f(e),Ty0);case 16:u(f(e),Oy0);var Ir=i[1],fe=function(Y){return u(n,Y)},v0=function(Y){return u(t,Y)};return R(eD[3],v0,fe,e,Ir),u(f(e),Iy0);case 17:u(f(e),Ay0);var P=i[1],L=function(Y){return u(t,Y)};return ur(XZ[1],L,e,P),u(f(e),Ny0);case 18:u(f(e),Cy0);var Q=i[1],i0=function(Y){return u(n,Y)},l0=function(Y){return u(t,Y)};return R(gZ[1],l0,i0,e,Q),u(f(e),Py0);case 19:u(f(e),Dy0);var S0=i[1],T0=function(Y){return u(n,Y)},rr=function(Y){return u(t,Y)};return R(eZ[5],rr,T0,e,S0),u(f(e),Ly0);case 20:u(f(e),Ry0);var L0=i[1],B=function(Y){return u(n,Y)},Z=function(Y){return u(t,Y)};return R(OZ[1],Z,B,e,L0),u(f(e),jy0);case 21:u(f(e),Gy0);var p0=i[1],b0=function(Y){return u(n,Y)},O0=function(Y){return u(t,Y)};return R(CZ[1],O0,b0,e,p0),u(f(e),My0);case 22:u(f(e),By0);var M0=i[1],er=function(Y){return u(n,Y)},yr=function(Y){return u(t,Y)};return R(tZ[1],yr,er,e,M0),u(f(e),qy0);case 23:u(f(e),Uy0);var vr=i[1],$0=function(Y){return u(t,Y)};return ur(KZ[1],$0,e,vr),u(f(e),Hy0);case 24:u(f(e),Xy0);var Er=i[1],Mr=function(Y){return u(n,Y)},Br=function(Y){return u(t,Y)};return R(Y$[1],Br,Mr,e,Er),u(f(e),Yy0);case 25:u(f(e),Vy0);var qr=i[1],jr=function(Y){return u(n,Y)},$r=function(Y){return u(t,Y)};return R(RP[2],$r,jr,e,qr),u(f(e),zy0);case 26:u(f(e),Ky0);var ne=i[1],Qr=function(Y){return u(t,Y)};return ur(VZ[1],Qr,e,ne),u(f(e),Wy0);case 27:u(f(e),Jy0);var be=i[1],ae=function(Y){return u(n,Y)},pe=function(Y){return u(t,Y)};return R(UZ[1],pe,ae,e,be),u(f(e),$y0);case 28:u(f(e),Zy0);var oe=i[1],ce=function(Y){return u(n,Y)},ge=function(Y){return u(t,Y)};return R(fZ[3],ge,ce,e,oe),u(f(e),Qy0);case 29:u(f(e),rh0);var q0=i[1],Fr=function(Y){return u(n,Y)},_=function(Y){return u(t,Y)};return R(pZ[3],_,Fr,e,q0),u(f(e),eh0);default:u(f(e),nh0);var k=i[1],I=function(Y){return u(n,Y)},U=function(Y){return u(t,Y)};return R(DZ[1],U,I,e,k),u(f(e),th0)}}),N(ZZ,function(t,n,e){var i=o(xm,t,n);return o(C0(W_0),i,e)}),mu(J3r,qe,[0,N$,See,CP,G$,RP,Y$,eZ,tZ,fZ,aZ,vZ,pZ,yZ,dZ,tm,kZ,WP,gZ,ZP,OZ,eD,CZ,DZ,fD,BZ,UZ,XZ,VZ,KZ,JZ,lD,$Z,xm,ZZ]);var bD=function t(n,e,i,x){return t.fun(n,e,i,x)},QZ=function t(n,e,i){return t.fun(n,e,i)},om=function t(n,e,i){return t.fun(n,e,i)},rQ=function t(n,e){return t.fun(n,e)};N(bD,function(t,n,e,i){u(f(e),V_0),o(n,e,i[1]),u(f(e),z_0);var x=i[2];return ur(om,function(c){return u(t,c)},e,x),u(f(e),K_0)}),N(QZ,function(t,n,e){var i=o(bD,t,n);return o(C0(Y_0),i,e)}),N(om,function(t,n,e){u(f(n),C_0),o(f(n),D_0,P_0);var i=e[1];o(f(n),L_0,i),u(f(n),R_0),u(f(n),j_0),o(f(n),M_0,G_0);var x=e[2];if(x){g(n,B_0);var c=x[1],s=function(y,T){return g(y,N_0)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,q_0)}else g(n,U_0);return u(f(n),H_0),u(f(n),X_0)}),N(rQ,function(t,n){var e=u(om,t);return o(C0(A_0),e,n)});var O1=[0,bD,QZ,om,rQ],pD=function t(n,e,i,x){return t.fun(n,e,i,x)},eQ=function t(n,e,i){return t.fun(n,e,i)},am=function t(n,e,i,x){return t.fun(n,e,i,x)},nQ=function t(n,e,i){return t.fun(n,e,i)};N(pD,function(t,n,e,i){u(f(e),T_0),o(t,e,i[1]),u(f(e),O_0);var x=i[2];function c(s){return u(n,s)}return R(am,function(s){return u(t,s)},c,e,x),u(f(e),I_0)}),N(eQ,function(t,n,e){var i=o(pD,t,n);return o(C0(F_0),i,e)}),N(am,function(t,n,e,i){u(f(e),__0),o(f(e),h_0,y_0);var x=i[1];function c(E){return u(n,E)}function s(E){return u(t,E)}R(O1[1],s,c,e,x),u(f(e),d_0),u(f(e),k_0),o(f(e),E_0,w_0);var p=i[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(O1[1],T,y,e,p),u(f(e),S_0),u(f(e),g_0)}),N(nQ,function(t,n,e){var i=o(am,t,n);return o(C0(m_0),i,e)});var mD=[0,pD,eQ,am,nQ],_D=function t(n,e,i,x){return t.fun(n,e,i,x)},tQ=function t(n,e,i){return t.fun(n,e,i)},cm=function t(n,e,i,x){return t.fun(n,e,i,x)},uQ=function t(n,e,i){return t.fun(n,e,i)};N(_D,function(t,n,e,i){u(f(e),u_0),o(f(e),f_0,i_0);var x=i[1];function c(E){return u(n,E)}R(cm,function(E){return u(t,E)},c,e,x),u(f(e),x_0),u(f(e),o_0),o(f(e),c_0,a_0);var s=i[2];if(s){g(e,s_0);var p=s[1],y=function(E,d){u(f(E),n_0);var w=0;return le(function(G,A){G&&u(f(E),e_0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),t_0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,v_0)}else g(e,l_0);return u(f(e),b_0),u(f(e),p_0)}),N(tQ,function(t,n,e){var i=o(_D,t,n);return o(C0(r_0),i,e)}),N(cm,function(t,n,e,i){if(i){u(f(e),$90);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(qe[31],s,c,e,x),u(f(e),Z90)}return g(e,Q90)}),N(uQ,function(t,n,e){var i=o(cm,t,n);return o(C0(J90),i,e)});var yD=[0,_D,tQ,cm,uQ];function iQ(t,n){u(f(t),G90),o(f(t),B90,M90);var e=n[1];o(f(t),q90,e),u(f(t),U90),u(f(t),H90),o(f(t),Y90,X90);var i=n[2];return o(f(t),V90,i),u(f(t),z90),u(f(t),K90)}var fQ=[0,iQ,function(t){return o(C0(W90),iQ,t)}],hD=function t(n,e,i,x){return t.fun(n,e,i,x)},xQ=function t(n,e,i){return t.fun(n,e,i)},sm=function t(n,e,i,x){return t.fun(n,e,i,x)},oQ=function t(n,e,i){return t.fun(n,e,i)},vm=function t(n,e,i,x){return t.fun(n,e,i,x)},aQ=function t(n,e,i){return t.fun(n,e,i)},lm=function t(n,e,i,x){return t.fun(n,e,i,x)},cQ=function t(n,e,i){return t.fun(n,e,i)};N(hD,function(t,n,e,i){u(f(e),L90),o(t,e,i[1]),u(f(e),R90);var x=i[2];function c(s){return u(n,s)}return R(lm,function(s){return u(t,s)},c,e,x),u(f(e),j90)}),N(xQ,function(t,n,e){var i=o(hD,t,n);return o(C0(D90),i,e)}),N(sm,function(t,n,e,i){if(i[0]===0){u(f(e),A90);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(O1[1],s,c,e,x),u(f(e),N90)}u(f(e),C90);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(mD[1],T,y,e,p),u(f(e),P90)}),N(oQ,function(t,n,e){var i=o(sm,t,n);return o(C0(I90),i,e)}),N(vm,function(t,n,e,i){if(i[0]===0){u(f(e),E90),o(n,e,i[1]),u(f(e),S90);var x=i[2],c=function(T){return u(t,T)};return ur(Tl[2],c,e,x),u(f(e),g90)}u(f(e),F90),o(n,e,i[1]),u(f(e),T90);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(yD[1],y,p,e,s),u(f(e),O90)}),N(aQ,function(t,n,e){var i=o(vm,t,n);return o(C0(w90),i,e)}),N(lm,function(t,n,e,i){u(f(e),c90),o(f(e),v90,s90);var x=i[1];function c(T){return u(n,T)}R(sm,function(T){return u(t,T)},c,e,x),u(f(e),l90),u(f(e),b90),o(f(e),m90,p90);var s=i[2];if(s){g(e,_90);var p=s[1],y=function(T){return u(n,T)};R(vm,function(T){return u(t,T)},y,e,p),g(e,y90)}else g(e,h90);return u(f(e),d90),u(f(e),k90)}),N(cQ,function(t,n,e){var i=o(lm,t,n);return o(C0(a90),i,e)});var sQ=[0,hD,xQ,sm,oQ,vm,aQ,lm,cQ],dD=function t(n,e,i,x){return t.fun(n,e,i,x)},vQ=function t(n,e,i){return t.fun(n,e,i)},bm=function t(n,e,i,x){return t.fun(n,e,i,x)},lQ=function t(n,e,i){return t.fun(n,e,i)};N(dD,function(t,n,e,i){u(f(e),f90),o(t,e,i[1]),u(f(e),x90);var x=i[2];function c(s){return u(n,s)}return R(bm,function(s){return u(t,s)},c,e,x),u(f(e),o90)}),N(vQ,function(t,n,e){var i=o(dD,t,n);return o(C0(i90),i,e)}),N(bm,function(t,n,e,i){u(f(e),zm0),o(f(e),Wm0,Km0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),Jm0),u(f(e),$m0),o(f(e),Qm0,Zm0);var p=i[2];if(p){g(e,r90);var y=p[1],T=function(d,w){return g(d,Vm0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,e90)}else g(e,n90);return u(f(e),t90),u(f(e),u90)}),N(lQ,function(t,n,e){var i=o(bm,t,n);return o(C0(Ym0),i,e)});var bQ=[0,dD,vQ,bm,lQ],pm=function t(n,e,i,x){return t.fun(n,e,i,x)},pQ=function t(n,e,i){return t.fun(n,e,i)},mm=function t(n,e,i,x){return t.fun(n,e,i,x)},mQ=function t(n,e,i){return t.fun(n,e,i)},_m=function t(n,e,i,x){return t.fun(n,e,i,x)},_Q=function t(n,e,i){return t.fun(n,e,i)};N(pm,function(t,n,e,i){u(f(e),Um0),o(t,e,i[1]),u(f(e),Hm0);var x=i[2];function c(s){return u(n,s)}return R(_m,function(s){return u(t,s)},c,e,x),u(f(e),Xm0)}),N(pQ,function(t,n,e){var i=o(pm,t,n);return o(C0(qm0),i,e)}),N(mm,function(t,n,e,i){if(i[0]===0){u(f(e),jm0);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(O1[1],s,c,e,x),u(f(e),Gm0)}u(f(e),Mm0);var p=i[1];function y(T){return u(n,T)}return R(pm,function(T){return u(t,T)},y,e,p),u(f(e),Bm0)}),N(mQ,function(t,n,e){var i=o(mm,t,n);return o(C0(Rm0),i,e)}),N(_m,function(t,n,e,i){u(f(e),Tm0),o(f(e),Im0,Om0);var x=i[1];function c(T){return u(n,T)}R(mm,function(T){return u(t,T)},c,e,x),u(f(e),Am0),u(f(e),Nm0),o(f(e),Pm0,Cm0);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(O1[1],y,p,e,s),u(f(e),Dm0),u(f(e),Lm0)}),N(_Q,function(t,n,e){var i=o(_m,t,n);return o(C0(Fm0),i,e)});var yQ=[0,pm,pQ,mm,mQ,_m,_Q],Nl=function t(n,e,i,x){return t.fun(n,e,i,x)},hQ=function t(n,e,i){return t.fun(n,e,i)};N(Nl,function(t,n,e,i){switch(i[0]){case 0:u(f(e),dm0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(O1[1],s,c,e,x),u(f(e),km0);case 1:u(f(e),wm0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(mD[1],T,y,e,p),u(f(e),Em0);default:u(f(e),Sm0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(yQ[1],w,d,e,E),u(f(e),gm0)}}),N(hQ,function(t,n,e){var i=o(Nl,t,n);return o(C0(hm0),i,e)});var kD=function t(n,e,i,x){return t.fun(n,e,i,x)},dQ=function t(n,e,i){return t.fun(n,e,i)},ym=function t(n,e,i,x){return t.fun(n,e,i,x)},kQ=function t(n,e,i){return t.fun(n,e,i)},hm=function t(n,e,i,x){return t.fun(n,e,i,x)},wQ=function t(n,e,i){return t.fun(n,e,i)};N(kD,function(t,n,e,i){u(f(e),mm0),o(t,e,i[1]),u(f(e),_m0);var x=i[2];function c(s){return u(n,s)}return R(hm,function(s){return u(t,s)},c,e,x),u(f(e),ym0)}),N(dQ,function(t,n,e){var i=o(kD,t,n);return o(C0(pm0),i,e)}),N(ym,function(t,n,e,i){if(i[0]===0){u(f(e),sm0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(sQ[1],s,c,e,x),u(f(e),vm0)}u(f(e),lm0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(bQ[1],T,y,e,p),u(f(e),bm0)}),N(kQ,function(t,n,e){var i=o(ym,t,n);return o(C0(cm0),i,e)}),N(hm,function(t,n,e,i){u(f(e),K50),o(f(e),J50,W50);var x=i[1];function c(T){return u(n,T)}R(Nl,function(T){return u(t,T)},c,e,x),u(f(e),$50),u(f(e),Z50),o(f(e),rm0,Q50);var s=i[2];o(f(e),em0,s),u(f(e),nm0),u(f(e),tm0),o(f(e),im0,um0);var p=i[3];u(f(e),fm0);var y=0;return le(function(T,E){T&&u(f(e),z50);function d(w){return u(n,w)}return R(ym,function(w){return u(t,w)},d,e,E),1},y,p),u(f(e),xm0),u(f(e),om0),u(f(e),am0)}),N(wQ,function(t,n,e){var i=o(hm,t,n);return o(C0(V50),i,e)});var EQ=[0,kD,dQ,ym,kQ,hm,wQ],wD=function t(n,e,i,x){return t.fun(n,e,i,x)},SQ=function t(n,e,i){return t.fun(n,e,i)},dm=function t(n,e,i,x){return t.fun(n,e,i,x)},gQ=function t(n,e,i){return t.fun(n,e,i)};N(wD,function(t,n,e,i){u(f(e),H50),o(t,e,i[1]),u(f(e),X50);var x=i[2];function c(s){return u(n,s)}return R(dm,function(s){return u(t,s)},c,e,x),u(f(e),Y50)}),N(SQ,function(t,n,e){var i=o(wD,t,n);return o(C0(U50),i,e)}),N(dm,function(t,n,e,i){u(f(e),j50),o(f(e),M50,G50);var x=i[1];function c(s){return u(n,s)}return R(Nl,function(s){return u(t,s)},c,e,x),u(f(e),B50),u(f(e),q50)}),N(gQ,function(t,n,e){var i=o(dm,t,n);return o(C0(R50),i,e)});var FQ=[0,wD,SQ,dm,gQ],ED=function t(n,e,i,x){return t.fun(n,e,i,x)},TQ=function t(n,e,i){return t.fun(n,e,i)};N(ED,function(t,n,e,i){u(f(e),S50),o(f(e),F50,g50);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),T50),u(f(e),O50),o(f(e),A50,I50);var p=i[2];if(p){g(e,N50);var y=p[1],T=function(d,w){return g(d,E50)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,C50)}else g(e,P50);return u(f(e),D50),u(f(e),L50)}),N(TQ,function(t,n,e){var i=o(ED,t,n);return o(C0(w50),i,e)});var OQ=[0,ED,TQ],Cl=function t(n,e,i,x){return t.fun(n,e,i,x)},IQ=function t(n,e,i){return t.fun(n,e,i)},km=function t(n,e,i,x){return t.fun(n,e,i,x)},AQ=function t(n,e,i){return t.fun(n,e,i)},wm=function t(n,e,i,x){return t.fun(n,e,i,x)},NQ=function t(n,e,i){return t.fun(n,e,i)},Em=function t(n,e,i,x){return t.fun(n,e,i,x)},CQ=function t(n,e,i){return t.fun(n,e,i)};N(Cl,function(t,n,e,i){u(f(e),h50),o(t,e,i[1]),u(f(e),d50);var x=i[2];function c(s){return u(n,s)}return R(km,function(s){return u(t,s)},c,e,x),u(f(e),k50)}),N(IQ,function(t,n,e){var i=o(Cl,t,n);return o(C0(y50),i,e)}),N(km,function(t,n,e,i){switch(i[0]){case 0:u(f(e),o50);var x=i[1],c=function(A){return u(n,A)};return R(wm,function(A){return u(t,A)},c,e,x),u(f(e),a50);case 1:u(f(e),c50);var s=i[1],p=function(A){return u(n,A)};return R(Em,function(A){return u(t,A)},p,e,s),u(f(e),s50);case 2:u(f(e),v50);var y=i[1],T=function(A){return u(n,A)},E=function(A){return u(t,A)};return R(yD[1],E,T,e,y),u(f(e),l50);case 3:u(f(e),b50);var d=i[1],w=function(A){return u(n,A)},G=function(A){return u(t,A)};return R(OQ[1],G,w,e,d),u(f(e),p50);default:return u(f(e),m50),o(fQ[1],e,i[1]),u(f(e),_50)}}),N(AQ,function(t,n,e){var i=o(km,t,n);return o(C0(x50),i,e)}),N(wm,function(t,n,e,i){u(f(e),Pp0),o(f(e),Lp0,Dp0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(EQ[1],s,c,e,x),u(f(e),Rp0),u(f(e),jp0),o(f(e),Mp0,Gp0);var p=i[2];if(p){g(e,Bp0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(FQ[1],E,T,e,y),g(e,qp0)}else g(e,Up0);u(f(e),Hp0),u(f(e),Xp0),o(f(e),Vp0,Yp0);var d=i[3];u(f(e),zp0),o(t,e,d[1]),u(f(e),Kp0),u(f(e),Wp0);var w=d[2],G=0;le(function(V,f0){V&&u(f(e),Cp0);function m0(k0){return u(n,k0)}return R(Cl,function(k0){return u(t,k0)},m0,e,f0),1},G,w),u(f(e),Jp0),u(f(e),$p0),u(f(e),Zp0),u(f(e),Qp0),o(f(e),e50,r50);var A=i[4];if(A){g(e,n50);var S=A[1],M=function(V,f0){return g(V,Np0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,t50)}else g(e,u50);return u(f(e),i50),u(f(e),f50)}),N(NQ,function(t,n,e){var i=o(wm,t,n);return o(C0(Ap0),i,e)}),N(Em,function(t,n,e,i){u(f(e),ip0),o(f(e),xp0,fp0),o(t,e,i[1]),u(f(e),op0),u(f(e),ap0),o(f(e),sp0,cp0),o(t,e,i[2]),u(f(e),vp0),u(f(e),lp0),o(f(e),pp0,bp0);var x=i[3];u(f(e),mp0),o(t,e,x[1]),u(f(e),_p0),u(f(e),yp0);var c=x[2],s=0;le(function(d,w){d&&u(f(e),up0);function G(A){return u(n,A)}return R(Cl,function(A){return u(t,A)},G,e,w),1},s,c),u(f(e),hp0),u(f(e),dp0),u(f(e),kp0),u(f(e),wp0),o(f(e),Sp0,Ep0);var p=i[4];if(p){g(e,gp0);var y=p[1],T=function(d,w){return g(d,tp0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Fp0)}else g(e,Tp0);return u(f(e),Op0),u(f(e),Ip0)}),N(CQ,function(t,n,e){var i=o(Em,t,n);return o(C0(np0),i,e)}),mu($3r,UN,[0,O1,mD,yD,fQ,sQ,bQ,yQ,Nl,hQ,EQ,FQ,OQ,Cl,IQ,km,AQ,wm,NQ,Em,CQ]);var SD=function t(n,e,i,x){return t.fun(n,e,i,x)},PQ=function t(n,e,i){return t.fun(n,e,i)},Sm=function t(n,e,i,x){return t.fun(n,e,i,x)},DQ=function t(n,e,i){return t.fun(n,e,i)};N(SD,function(t,n,e,i){u(f(e),Q60),o(t,e,i[1]),u(f(e),rp0);var x=i[2];function c(s){return u(n,s)}return R(Sm,function(s){return u(t,s)},c,e,x),u(f(e),ep0)}),N(PQ,function(t,n,e){var i=o(SD,t,n);return o(C0(Z60),i,e)}),N(Sm,function(t,n,e,i){u(f(e),B60),o(f(e),U60,q60);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),H60),u(f(e),X60),o(f(e),V60,Y60);var p=i[2];if(p){g(e,z60);var y=p[1],T=function(d,w){return g(d,M60)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,K60)}else g(e,W60);return u(f(e),J60),u(f(e),$60)}),N(DQ,function(t,n,e){var i=o(Sm,t,n);return o(C0(G60),i,e)});var gD=[0,SD,PQ,Sm,DQ],gm=function t(n,e,i,x){return t.fun(n,e,i,x)},LQ=function t(n,e,i){return t.fun(n,e,i)},FD=function t(n,e,i,x){return t.fun(n,e,i,x)},RQ=function t(n,e,i){return t.fun(n,e,i)},Fm=function t(n,e,i,x){return t.fun(n,e,i,x)},jQ=function t(n,e,i){return t.fun(n,e,i)};N(gm,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),I60),u(f(e),A60),o(t,e,x[1]),u(f(e),N60);var c=x[2],s=function(G){return u(t,G)};return ur(Tl[2],s,e,c),u(f(e),C60),u(f(e),P60);case 1:u(f(e),D60);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(Rn[1],T,y,e,p),u(f(e),L60);default:u(f(e),R60);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(qp[1],w,d,e,E),u(f(e),j60)}}),N(LQ,function(t,n,e){var i=o(gm,t,n);return o(C0(O60),i,e)}),N(FD,function(t,n,e,i){u(f(e),g60),o(t,e,i[1]),u(f(e),F60);var x=i[2];function c(s){return u(n,s)}return R(Fm,function(s){return u(t,s)},c,e,x),u(f(e),T60)}),N(RQ,function(t,n,e){var i=o(FD,t,n);return o(C0(S60),i,e)}),N(Fm,function(t,n,e,i){u(f(e),t60),o(f(e),i60,u60);var x=i[1];function c(A){return u(n,A)}R(gm,function(A){return u(t,A)},c,e,x),u(f(e),f60),u(f(e),x60),o(f(e),a60,o60);var s=i[2];function p(A){return u(n,A)}function y(A){return u(t,A)}R(di[5],y,p,e,s),u(f(e),c60),u(f(e),s60),o(f(e),l60,v60);var T=i[3];if(T){g(e,b60);var E=T[1],d=function(A){return u(n,A)},w=function(A){return u(t,A)};R(qe[31],w,d,e,E),g(e,p60)}else g(e,m60);u(f(e),_60),u(f(e),y60),o(f(e),d60,h60);var G=i[4];return o(f(e),k60,G),u(f(e),w60),u(f(e),E60)}),N(jQ,function(t,n,e){var i=o(Fm,t,n);return o(C0(n60),i,e)});var GQ=[0,gm,LQ,FD,RQ,Fm,jQ],Tm=function t(n,e,i,x){return t.fun(n,e,i,x)},MQ=function t(n,e,i){return t.fun(n,e,i)},TD=function t(n,e,i,x){return t.fun(n,e,i,x)},BQ=function t(n,e,i){return t.fun(n,e,i)};N(Tm,function(t,n,e,i){if(i[0]===0){u(f(e),Z30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(GQ[3],s,c,e,x),u(f(e),Q30)}u(f(e),r60);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(gD[1],T,y,e,p),u(f(e),e60)}),N(MQ,function(t,n,e){var i=o(Tm,t,n);return o(C0($30),i,e)}),N(TD,function(t,n,e,i){u(f(e),P30),o(f(e),L30,D30);var x=i[1];u(f(e),R30);var c=0;le(function(G,A){G&&u(f(e),C30);function S(M){return u(n,M)}return R(Tm,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),j30),u(f(e),G30),u(f(e),M30),o(f(e),q30,B30);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),U30),u(f(e),H30),o(f(e),Y30,X30);var T=i[3];if(T){g(e,V30);var E=T[1],d=function(G,A){u(f(G),A30);var S=0;return le(function(M,K){M&&u(f(G),I30);function V(f0){return u(t,f0)}return ur(iu[1],V,G,K),1},S,A),u(f(G),N30)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,z30)}else g(e,K30);return u(f(e),W30),u(f(e),J30)}),N(BQ,function(t,n,e){var i=o(TD,t,n);return o(C0(O30),i,e)});var qQ=[0,GQ,Tm,MQ,TD,BQ],OD=function t(n,e,i,x){return t.fun(n,e,i,x)},UQ=function t(n,e,i){return t.fun(n,e,i)},Om=function t(n,e,i,x){return t.fun(n,e,i,x)},HQ=function t(n,e,i){return t.fun(n,e,i)};N(OD,function(t,n,e,i){u(f(e),g30),o(t,e,i[1]),u(f(e),F30);var x=i[2];function c(s){return u(n,s)}return R(Om,function(s){return u(t,s)},c,e,x),u(f(e),T30)}),N(UQ,function(t,n,e){var i=o(OD,t,n);return o(C0(S30),i,e)}),N(Om,function(t,n,e,i){u(f(e),v30),o(f(e),b30,l30);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),p30),u(f(e),m30),o(f(e),y30,_30);var p=i[2];if(p){g(e,h30);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,d30)}else g(e,k30);return u(f(e),w30),u(f(e),E30)}),N(HQ,function(t,n,e){var i=o(Om,t,n);return o(C0(s30),i,e)});var XQ=[0,OD,UQ,Om,HQ],Im=function t(n,e,i,x){return t.fun(n,e,i,x)},YQ=function t(n,e,i){return t.fun(n,e,i)},ID=function t(n,e,i,x){return t.fun(n,e,i,x)},VQ=function t(n,e,i){return t.fun(n,e,i)};N(Im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),i30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(XQ[1],s,c,e,x),u(f(e),f30);case 1:u(f(e),x30);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(gD[1],T,y,e,p),u(f(e),o30);default:return u(f(e),a30),o(t,e,i[1]),u(f(e),c30)}}),N(YQ,function(t,n,e){var i=o(Im,t,n);return o(C0(u30),i,e)}),N(ID,function(t,n,e,i){u(f(e),B80),o(f(e),U80,q80);var x=i[1];u(f(e),H80);var c=0;le(function(G,A){G&&u(f(e),M80);function S(M){return u(n,M)}return R(Im,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),X80),u(f(e),Y80),u(f(e),V80),o(f(e),K80,z80);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),W80),u(f(e),J80),o(f(e),Z80,$80);var T=i[3];if(T){g(e,Q80);var E=T[1],d=function(G,A){u(f(G),j80);var S=0;return le(function(M,K){M&&u(f(G),R80);function V(f0){return u(t,f0)}return ur(iu[1],V,G,K),1},S,A),u(f(G),G80)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,r30)}else g(e,e30);return u(f(e),n30),u(f(e),t30)}),N(VQ,function(t,n,e){var i=o(ID,t,n);return o(C0(L80),i,e)});var zQ=[0,XQ,Im,YQ,ID,VQ],AD=function t(n,e,i,x){return t.fun(n,e,i,x)},KQ=function t(n,e,i){return t.fun(n,e,i)};N(AD,function(t,n,e,i){u(f(e),k80),o(f(e),E80,w80);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),S80),u(f(e),g80),o(f(e),T80,F80);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R($e[19],T,y,e,p),u(f(e),O80),u(f(e),I80),o(f(e),N80,A80);var E=i[3];return o(f(e),C80,E),u(f(e),P80),u(f(e),D80)}),N(KQ,function(t,n,e){var i=o(AD,t,n);return o(C0(d80),i,e)});var WQ=[0,AD,KQ],ND=function t(n,e,i,x){return t.fun(n,e,i,x)},JQ=function t(n,e,i){return t.fun(n,e,i)},Am=function t(n,e,i,x){return t.fun(n,e,i,x)},$Q=function t(n,e,i){return t.fun(n,e,i)};N(ND,function(t,n,e,i){u(f(e),_80),o(n,e,i[1]),u(f(e),y80);var x=i[2];function c(s){return u(n,s)}return R(Am,function(s){return u(t,s)},c,e,x),u(f(e),h80)}),N(JQ,function(t,n,e){var i=o(ND,t,n);return o(C0(m80),i,e)}),N(Am,function(t,n,e,i){switch(i[0]){case 0:u(f(e),o80);var x=i[1],c=function(M){return u(n,M)},s=function(M){return u(t,M)};return R(qQ[4],s,c,e,x),u(f(e),a80);case 1:u(f(e),c80);var p=i[1],y=function(M){return u(n,M)},T=function(M){return u(t,M)};return R(zQ[4],T,y,e,p),u(f(e),s80);case 2:u(f(e),v80);var E=i[1],d=function(M){return u(n,M)},w=function(M){return u(t,M)};return R(WQ[1],w,d,e,E),u(f(e),l80);default:u(f(e),b80);var G=i[1],A=function(M){return u(n,M)},S=function(M){return u(t,M)};return R(qe[31],S,A,e,G),u(f(e),p80)}}),N($Q,function(t,n,e){var i=o(Am,t,n);return o(C0(x80),i,e)}),mu(Z3r,di,[0,gD,qQ,zQ,WQ,ND,JQ,Am,$Q]);var CD=function t(n,e,i){return t.fun(n,e,i)},ZQ=function t(n,e){return t.fun(n,e)},Nm=function t(n,e){return t.fun(n,e)},QQ=function t(n){return t.fun(n)},Cm=function t(n,e){return t.fun(n,e)},r00=function t(n){return t.fun(n)};N(CD,function(t,n,e){return u(f(n),u80),o(t,n,e[1]),u(f(n),i80),o(Cm,n,e[2]),u(f(n),f80)}),N(ZQ,function(t,n){var e=u(CD,t);return o(C0(t80),e,n)}),N(Nm,function(t,n){return n?g(t,e80):g(t,n80)}),N(QQ,function(t){return o(C0(r80),Nm,t)}),N(Cm,function(t,n){u(f(t),M40),o(f(t),q40,B40),o(Nm,t,n[1]),u(f(t),U40),u(f(t),H40),o(f(t),Y40,X40);var e=n[2];o(f(t),V40,e),u(f(t),z40),u(f(t),K40),o(f(t),J40,W40);var i=n[3];return o(f(t),$40,i),u(f(t),Z40),u(f(t),Q40)}),N(r00,function(t){return o(C0(G40),Cm,t)}),mu(Q3r,iu,[0,CD,ZQ,Nm,QQ,Cm,r00]);var PD=function t(n,e,i,x){return t.fun(n,e,i,x)},e00=function t(n,e,i){return t.fun(n,e,i)},Pm=function t(n,e){return t.fun(n,e)},n00=function t(n){return t.fun(n)},Dm=function t(n,e,i,x){return t.fun(n,e,i,x)},t00=function t(n,e,i){return t.fun(n,e,i)};N(PD,function(t,n,e,i){u(f(e),L40),o(n,e,i[1]),u(f(e),R40);var x=i[2];function c(s){return u(n,s)}return R(Dm,function(s){return u(t,s)},c,e,x),u(f(e),j40)}),N(e00,function(t,n,e){var i=o(PD,t,n);return o(C0(D40),i,e)}),N(Pm,function(t,n){switch(n){case 0:return g(t,A40);case 1:return g(t,N40);case 2:return g(t,C40);default:return g(t,P40)}}),N(n00,function(t){return o(C0(I40),Pm,t)}),N(Dm,function(t,n,e,i){u(f(e),Wb0),o(f(e),$b0,Jb0),o(Pm,e,i[1]),u(f(e),Zb0),u(f(e),Qb0),o(f(e),e40,r40);var x=i[2];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[7][1][1],s,c,e,x),u(f(e),n40),u(f(e),t40),o(f(e),i40,u40);var p=i[3];u(f(e),f40),o(t,e,p[1]),u(f(e),x40);var y=p[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(As[5],E,T,e,y),u(f(e),o40),u(f(e),a40),u(f(e),c40),o(f(e),v40,s40);var d=i[4];o(f(e),l40,d),u(f(e),b40),u(f(e),p40),o(f(e),_40,m40);var w=i[5];u(f(e),y40);var G=0;le(function(V,f0){V&&u(f(e),Kb0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(F1[7][1],k0,m0,e,f0),1},G,w),u(f(e),h40),u(f(e),d40),u(f(e),k40),o(f(e),E40,w40);var A=i[6];if(A){g(e,S40);var S=A[1],M=function(V,f0){return g(V,zb0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,g40)}else g(e,F40);return u(f(e),T40),u(f(e),O40)}),N(t00,function(t,n,e){var i=o(Dm,t,n);return o(C0(Vb0),i,e)});var u00=[0,PD,e00,Pm,n00,Dm,t00],DD=function t(n,e,i,x){return t.fun(n,e,i,x)},i00=function t(n,e,i){return t.fun(n,e,i)},Lm=function t(n,e,i,x){return t.fun(n,e,i,x)},f00=function t(n,e,i){return t.fun(n,e,i)},Rm=function t(n,e,i,x){return t.fun(n,e,i,x)},x00=function t(n,e,i){return t.fun(n,e,i)};N(DD,function(t,n,e,i){u(f(e),Hb0),o(n,e,i[1]),u(f(e),Xb0);var x=i[2];function c(s){return u(n,s)}return R(Lm,function(s){return u(t,s)},c,e,x),u(f(e),Yb0)}),N(i00,function(t,n,e){var i=o(DD,t,n);return o(C0(Ub0),i,e)}),N(Lm,function(t,n,e,i){u(f(e),cb0),o(f(e),vb0,sb0);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(qe[7][1][1],s,c,e,x),u(f(e),lb0),u(f(e),bb0),o(f(e),mb0,pb0);var p=i[2];function y(m0){return u(n,m0)}R(Rm,function(m0){return u(t,m0)},y,e,p),u(f(e),_b0),u(f(e),yb0),o(f(e),db0,hb0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),kb0),u(f(e),wb0),o(f(e),Sb0,Eb0);var w=i[4];o(f(e),gb0,w),u(f(e),Fb0),u(f(e),Tb0),o(f(e),Ib0,Ob0);var G=i[5];if(G){g(e,Ab0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Nb0)}else g(e,Cb0);u(f(e),Pb0),u(f(e),Db0),o(f(e),Rb0,Lb0);var M=i[6];if(M){g(e,jb0);var K=M[1],V=function(m0,k0){return g(m0,ab0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,Gb0)}else g(e,Mb0);return u(f(e),Bb0),u(f(e),qb0)}),N(f00,function(t,n,e){var i=o(Lm,t,n);return o(C0(ob0),i,e)}),N(Rm,function(t,n,e,i){if(typeof i==\"number\")return i?g(e,ub0):g(e,ib0);u(f(e),fb0);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(qe[31],s,c,e,x),u(f(e),xb0)}),N(x00,function(t,n,e){var i=o(Rm,t,n);return o(C0(tb0),i,e)});var o00=[0,DD,i00,Lm,f00,Rm,x00],LD=function t(n,e,i,x){return t.fun(n,e,i,x)},a00=function t(n,e,i){return t.fun(n,e,i)},jm=function t(n,e,i,x){return t.fun(n,e,i,x)},c00=function t(n,e,i){return t.fun(n,e,i)};N(LD,function(t,n,e,i){u(f(e),rb0),o(n,e,i[1]),u(f(e),eb0);var x=i[2];function c(s){return u(n,s)}return R(jm,function(s){return u(t,s)},c,e,x),u(f(e),nb0)}),N(a00,function(t,n,e){var i=o(LD,t,n);return o(C0(Ql0),i,e)}),N(jm,function(t,n,e,i){u(f(e),kl0),o(f(e),El0,wl0);var x=i[1];function c(m0){return u(t,m0)}ur(Bp[1],c,e,x),u(f(e),Sl0),u(f(e),gl0),o(f(e),Tl0,Fl0);var s=i[2];function p(m0){return u(n,m0)}function y(m0){return u(t,m0)}R(F1[2][5],y,p,e,s),u(f(e),Ol0),u(f(e),Il0),o(f(e),Nl0,Al0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),Cl0),u(f(e),Pl0),o(f(e),Ll0,Dl0);var w=i[4];o(f(e),Rl0,w),u(f(e),jl0),u(f(e),Gl0),o(f(e),Bl0,Ml0);var G=i[5];if(G){g(e,ql0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Ul0)}else g(e,Hl0);u(f(e),Xl0),u(f(e),Yl0),o(f(e),zl0,Vl0);var M=i[6];if(M){g(e,Kl0);var K=M[1],V=function(m0,k0){return g(m0,dl0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,Wl0)}else g(e,Jl0);return u(f(e),$l0),u(f(e),Zl0)}),N(c00,function(t,n,e){var i=o(jm,t,n);return o(C0(hl0),i,e)});var s00=[0,LD,a00,jm,c00],RD=function t(n,e,i,x){return t.fun(n,e,i,x)},v00=function t(n,e,i){return t.fun(n,e,i)},Gm=function t(n,e,i,x){return t.fun(n,e,i,x)},l00=function t(n,e,i){return t.fun(n,e,i)};N(RD,function(t,n,e,i){u(f(e),ml0),o(t,e,i[1]),u(f(e),_l0);var x=i[2];function c(s){return u(n,s)}return R(Gm,function(s){return u(t,s)},c,e,x),u(f(e),yl0)}),N(v00,function(t,n,e){var i=o(RD,t,n);return o(C0(pl0),i,e)}),N(Gm,function(t,n,e,i){u(f(e),J20),o(f(e),Z20,$20);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(qe[31],s,c,e,x),u(f(e),Q20),u(f(e),rl0),o(f(e),nl0,el0);var p=i[2];if(p){g(e,tl0);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,ul0)}else g(e,il0);u(f(e),fl0),u(f(e),xl0),o(f(e),al0,ol0);var d=i[3];if(d){g(e,cl0);var w=d[1],G=function(S,M){return g(S,W20)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,sl0)}else g(e,vl0);return u(f(e),ll0),u(f(e),bl0)}),N(l00,function(t,n,e){var i=o(Gm,t,n);return o(C0(K20),i,e)});var b00=[0,RD,v00,Gm,l00],jD=function t(n,e,i,x){return t.fun(n,e,i,x)},p00=function t(n,e,i){return t.fun(n,e,i)},Mm=function t(n,e,i,x){return t.fun(n,e,i,x)},m00=function t(n,e,i){return t.fun(n,e,i)};N(jD,function(t,n,e,i){u(f(e),Y20),o(t,e,i[1]),u(f(e),V20);var x=i[2];function c(s){return u(n,s)}return R(Mm,function(s){return u(t,s)},c,e,x),u(f(e),z20)}),N(p00,function(t,n,e){var i=o(jD,t,n);return o(C0(X20),i,e)}),N(Mm,function(t,n,e,i){u(f(e),C20),o(f(e),D20,P20);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),L20),u(f(e),R20),o(f(e),G20,j20);var p=i[2];if(p){g(e,M20);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R($e[23][1],E,T,e,y),g(e,B20)}else g(e,q20);return u(f(e),U20),u(f(e),H20)}),N(m00,function(t,n,e){var i=o(Mm,t,n);return o(C0(N20),i,e)});var _00=[0,jD,p00,Mm,m00],GD=function t(n,e,i,x){return t.fun(n,e,i,x)},y00=function t(n,e,i){return t.fun(n,e,i)},Bm=function t(n,e,i,x){return t.fun(n,e,i,x)},h00=function t(n,e,i){return t.fun(n,e,i)};N(GD,function(t,n,e,i){u(f(e),O20),o(t,e,i[1]),u(f(e),I20);var x=i[2];function c(s){return u(n,s)}return R(Bm,function(s){return u(t,s)},c,e,x),u(f(e),A20)}),N(y00,function(t,n,e){var i=o(GD,t,n);return o(C0(T20),i,e)}),N(Bm,function(t,n,e,i){u(f(e),l20),o(f(e),p20,b20);var x=i[1];u(f(e),m20);var c=0;le(function(E,d){E&&u(f(e),v20);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(_00[1],G,w,e,d),1},c,x),u(f(e),_20),u(f(e),y20),u(f(e),h20),o(f(e),k20,d20);var s=i[2];if(s){g(e,w20);var p=s[1],y=function(E,d){return g(E,s20)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,E20)}else g(e,S20);return u(f(e),g20),u(f(e),F20)}),N(h00,function(t,n,e){var i=o(Bm,t,n);return o(C0(c20),i,e)});var d00=[0,_00,GD,y00,Bm,h00],MD=function t(n,e,i,x){return t.fun(n,e,i,x)},k00=function t(n,e,i){return t.fun(n,e,i)},qm=function t(n,e,i,x){return t.fun(n,e,i,x)},w00=function t(n,e,i){return t.fun(n,e,i)},Um=function t(n,e,i,x){return t.fun(n,e,i,x)},E00=function t(n,e,i){return t.fun(n,e,i)};N(MD,function(t,n,e,i){u(f(e),x20),o(t,e,i[1]),u(f(e),o20);var x=i[2];function c(s){return u(n,s)}return R(qm,function(s){return u(t,s)},c,e,x),u(f(e),a20)}),N(k00,function(t,n,e){var i=o(MD,t,n);return o(C0(f20),i,e)}),N(qm,function(t,n,e,i){u(f(e),Vv0),o(f(e),Kv0,zv0);var x=i[1];u(f(e),Wv0);var c=0;le(function(E,d){E&&u(f(e),Yv0);function w(G){return u(n,G)}return R(Um,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),Jv0),u(f(e),$v0),u(f(e),Zv0),o(f(e),r20,Qv0);var s=i[2];if(s){g(e,e20);var p=s[1],y=function(E,d){return g(E,Xv0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,n20)}else g(e,t20);return u(f(e),u20),u(f(e),i20)}),N(w00,function(t,n,e){var i=o(qm,t,n);return o(C0(Hv0),i,e)}),N(Um,function(t,n,e,i){switch(i[0]){case 0:u(f(e),jv0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(u00[1],s,c,e,x),u(f(e),Gv0);case 1:u(f(e),Mv0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(o00[1],T,y,e,p),u(f(e),Bv0);default:u(f(e),qv0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(s00[1],w,d,e,E),u(f(e),Uv0)}}),N(E00,function(t,n,e){var i=o(Um,t,n);return o(C0(Rv0),i,e)});var BD=function t(n,e,i,x){return t.fun(n,e,i,x)},S00=function t(n,e,i){return t.fun(n,e,i)},Hm=function t(n,e,i,x){return t.fun(n,e,i,x)},g00=function t(n,e,i){return t.fun(n,e,i)},gee=[0,MD,k00,qm,w00,Um,E00];N(BD,function(t,n,e,i){u(f(e),Pv0),o(t,e,i[1]),u(f(e),Dv0);var x=i[2];function c(s){return u(n,s)}return R(Hm,function(s){return u(t,s)},c,e,x),u(f(e),Lv0)}),N(S00,function(t,n,e){var i=o(BD,t,n);return o(C0(Cv0),i,e)}),N(Hm,function(t,n,e,i){u(f(e),dv0),o(f(e),wv0,kv0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),Ev0),u(f(e),Sv0),o(f(e),Fv0,gv0);var p=i[2];if(p){g(e,Tv0);var y=p[1],T=function(d,w){return g(d,hv0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Ov0)}else g(e,Iv0);return u(f(e),Av0),u(f(e),Nv0)}),N(g00,function(t,n,e){var i=o(Hm,t,n);return o(C0(yv0),i,e)});var F00=[0,BD,S00,Hm,g00],qD=function t(n,e,i,x){return t.fun(n,e,i,x)},T00=function t(n,e,i){return t.fun(n,e,i)};N(qD,function(t,n,e,i){u(f(e),F10),o(f(e),O10,T10);var x=i[1];if(x){g(e,I10);var c=x[1],s=function(w0){return u(n,w0)},p=function(w0){return u(t,w0)};R(Rn[1],p,s,e,c),g(e,A10)}else g(e,N10);u(f(e),C10),u(f(e),P10),o(f(e),L10,D10);var y=i[2];function T(w0){return u(n,w0)}function E(w0){return u(t,w0)}R(F1[6][1],E,T,e,y),u(f(e),R10),u(f(e),j10),o(f(e),M10,G10);var d=i[3];if(d){g(e,B10);var w=d[1],G=function(w0){return u(n,w0)},A=function(w0){return u(t,w0)};R($e[22][1],A,G,e,w),g(e,q10)}else g(e,U10);u(f(e),H10),u(f(e),X10),o(f(e),V10,Y10);var S=i[4];if(S){g(e,z10);var M=S[1],K=function(w0){return u(n,w0)},V=function(w0){return u(t,w0)};R(b00[1],V,K,e,M),g(e,K10)}else g(e,W10);u(f(e),J10),u(f(e),$10),o(f(e),Q10,Z10);var f0=i[5];if(f0){g(e,rv0);var m0=f0[1],k0=function(w0){return u(n,w0)},g0=function(w0){return u(t,w0)};R(d00[2],g0,k0,e,m0),g(e,ev0)}else g(e,nv0);u(f(e),tv0),u(f(e),uv0),o(f(e),fv0,iv0);var e0=i[6];u(f(e),xv0);var x0=0;le(function(w0,_0){w0&&u(f(e),g10);function E0(b){return u(n,b)}function U0(b){return u(t,b)}return R(F00[1],U0,E0,e,_0),1},x0,e0),u(f(e),ov0),u(f(e),av0),u(f(e),cv0),o(f(e),vv0,sv0);var l=i[7];if(l){g(e,lv0);var c0=l[1],t0=function(w0,_0){return g(w0,S10)},o0=function(w0){return u(t,w0)};R(Dr[1],o0,t0,e,c0),g(e,bv0)}else g(e,pv0);return u(f(e),mv0),u(f(e),_v0)}),N(T00,function(t,n,e){var i=o(qD,t,n);return o(C0(E10),i,e)}),mu(r6r,F1,[0,u00,o00,s00,b00,d00,gee,F00,qD,T00]);var UD=function t(n,e,i,x){return t.fun(n,e,i,x)},O00=function t(n,e,i){return t.fun(n,e,i)},Xm=function t(n,e,i,x){return t.fun(n,e,i,x)},I00=function t(n,e,i){return t.fun(n,e,i)};N(UD,function(t,n,e,i){u(f(e),d10),o(t,e,i[1]),u(f(e),k10);var x=i[2];function c(s){return u(n,s)}return R(Xm,function(s){return u(t,s)},c,e,x),u(f(e),w10)}),N(O00,function(t,n,e){var i=o(UD,t,n);return o(C0(h10),i,e)}),N(Xm,function(t,n,e,i){u(f(e),x10),o(f(e),a10,o10);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),c10),u(f(e),s10),o(f(e),l10,v10);var p=i[2];if(p){g(e,b10);var y=p[1],T=function(d,w){return g(d,f10)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,p10)}else g(e,m10);return u(f(e),_10),u(f(e),y10)}),N(I00,function(t,n,e){var i=o(Xm,t,n);return o(C0(i10),i,e)});var A00=[0,UD,O00,Xm,I00],HD=function t(n,e,i,x){return t.fun(n,e,i,x)},N00=function t(n,e,i){return t.fun(n,e,i)},Ym=function t(n,e,i,x){return t.fun(n,e,i,x)},C00=function t(n,e,i){return t.fun(n,e,i)};N(HD,function(t,n,e,i){u(f(e),n10),o(t,e,i[1]),u(f(e),t10);var x=i[2];function c(s){return u(n,s)}return R(Ym,function(s){return u(t,s)},c,e,x),u(f(e),u10)}),N(N00,function(t,n,e){var i=o(HD,t,n);return o(C0(e10),i,e)}),N(Ym,function(t,n,e,i){u(f(e),Hs0),o(f(e),Ys0,Xs0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),Vs0),u(f(e),zs0),o(f(e),Ws0,Ks0);var p=i[2];if(p){g(e,Js0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,$s0)}else g(e,Zs0);return u(f(e),Qs0),u(f(e),r10)}),N(C00,function(t,n,e){var i=o(Ym,t,n);return o(C0(Us0),i,e)});var P00=[0,HD,N00,Ym,C00],XD=function t(n,e,i,x){return t.fun(n,e,i,x)},D00=function t(n,e,i){return t.fun(n,e,i)},Vm=function t(n,e,i,x){return t.fun(n,e,i,x)},L00=function t(n,e,i){return t.fun(n,e,i)};N(XD,function(t,n,e,i){u(f(e),Ms0),o(t,e,i[1]),u(f(e),Bs0);var x=i[2];function c(s){return u(n,s)}return R(Vm,function(s){return u(t,s)},c,e,x),u(f(e),qs0)}),N(D00,function(t,n,e){var i=o(XD,t,n);return o(C0(Gs0),i,e)}),N(Vm,function(t,n,e,i){u(f(e),Fs0),o(f(e),Os0,Ts0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Is0),u(f(e),As0),o(f(e),Cs0,Ns0);var p=i[2];if(p){g(e,Ps0);var y=p[1],T=function(d,w){return g(d,gs0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Ds0)}else g(e,Ls0);return u(f(e),Rs0),u(f(e),js0)}),N(L00,function(t,n,e){var i=o(Vm,t,n);return o(C0(Ss0),i,e)});var R00=[0,XD,D00,Vm,L00],YD=function t(n,e,i,x){return t.fun(n,e,i,x)},j00=function t(n,e,i){return t.fun(n,e,i)},zm=function t(n,e,i,x){return t.fun(n,e,i,x)},G00=function t(n,e,i){return t.fun(n,e,i)};N(YD,function(t,n,e,i){u(f(e),ks0),o(t,e,i[1]),u(f(e),ws0);var x=i[2];function c(s){return u(n,s)}return R(zm,function(s){return u(t,s)},c,e,x),u(f(e),Es0)}),N(j00,function(t,n,e){var i=o(YD,t,n);return o(C0(ds0),i,e)}),N(zm,function(t,n,e,i){u(f(e),Vc0),o(f(e),Kc0,zc0);var x=i[1];if(x){g(e,Wc0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(R00[1],p,s,e,c),g(e,Jc0)}else g(e,$c0);u(f(e),Zc0),u(f(e),Qc0),o(f(e),es0,rs0);var y=i[2];u(f(e),ns0);var T=0;le(function(V,f0){V&&u(f(e),Yc0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(P00[1],k0,m0,e,f0),1},T,y),u(f(e),ts0),u(f(e),us0),u(f(e),is0),o(f(e),xs0,fs0);var E=i[3];if(E){g(e,os0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(A00[1],G,w,e,d),g(e,as0)}else g(e,cs0);u(f(e),ss0),u(f(e),vs0),o(f(e),bs0,ls0);var A=i[4];if(A){g(e,ps0);var S=A[1],M=function(V,f0){u(f(V),Hc0);var m0=0;return le(function(k0,g0){k0&&u(f(V),Uc0);function e0(x0){return u(t,x0)}return ur(iu[1],e0,V,g0),1},m0,f0),u(f(V),Xc0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,ms0)}else g(e,_s0);return u(f(e),ys0),u(f(e),hs0)}),N(G00,function(t,n,e){var i=o(zm,t,n);return o(C0(qc0),i,e)});var M00=[0,YD,j00,zm,G00],VD=function t(n,e,i,x){return t.fun(n,e,i,x)},B00=function t(n,e,i){return t.fun(n,e,i)},Km=function t(n,e,i,x){return t.fun(n,e,i,x)},q00=function t(n,e,i){return t.fun(n,e,i)};N(VD,function(t,n,e,i){u(f(e),Ba0),o(f(e),Ua0,qa0);var x=i[1];if(x){g(e,Ha0);var c=x[1],s=function(_0){return u(n,_0)},p=function(_0){return u(t,_0)};R(Rn[1],p,s,e,c),g(e,Xa0)}else g(e,Ya0);u(f(e),Va0),u(f(e),za0),o(f(e),Wa0,Ka0);var y=i[2];function T(_0){return u(n,_0)}function E(_0){return u(t,_0)}R(M00[1],E,T,e,y),u(f(e),Ja0),u(f(e),$a0),o(f(e),Qa0,Za0);var d=i[3];function w(_0){return u(n,_0)}R(Km,function(_0){return u(t,_0)},w,e,d),u(f(e),rc0),u(f(e),ec0),o(f(e),tc0,nc0);var G=i[4];o(f(e),uc0,G),u(f(e),ic0),u(f(e),fc0),o(f(e),oc0,xc0);var A=i[5];o(f(e),ac0,A),u(f(e),cc0),u(f(e),sc0),o(f(e),lc0,vc0);var S=i[6];if(S){g(e,bc0);var M=S[1],K=function(_0){return u(n,_0)},V=function(_0){return u(t,_0)};R($e[24][1],V,K,e,M),g(e,pc0)}else g(e,mc0);u(f(e),_c0),u(f(e),yc0),o(f(e),dc0,hc0);var f0=i[7];function m0(_0){return u(n,_0)}function k0(_0){return u(t,_0)}R($e[19],k0,m0,e,f0),u(f(e),kc0),u(f(e),wc0),o(f(e),Sc0,Ec0);var g0=i[8];if(g0){g(e,gc0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R($e[22][1],l,x0,e,e0),g(e,Fc0)}else g(e,Tc0);u(f(e),Oc0),u(f(e),Ic0),o(f(e),Nc0,Ac0);var c0=i[9];if(c0){g(e,Cc0);var t0=c0[1],o0=function(_0,E0){return g(_0,Ma0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,Pc0)}else g(e,Dc0);return u(f(e),Lc0),u(f(e),Rc0),o(f(e),Gc0,jc0),o(t,e,i[10]),u(f(e),Mc0),u(f(e),Bc0)}),N(B00,function(t,n,e){var i=o(VD,t,n);return o(C0(Ga0),i,e)}),N(Km,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),Na0),u(f(e),Ca0),o(t,e,x[1]),u(f(e),Pa0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Yu[1][1],p,s,e,c),u(f(e),Da0),u(f(e),La0)}u(f(e),Ra0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(qe[31],E,T,e,y),u(f(e),ja0)}),N(q00,function(t,n,e){var i=o(Km,t,n);return o(C0(Aa0),i,e)}),mu(e6r,As,[0,A00,P00,R00,M00,VD,B00,Km,q00]);var zD=function t(n,e,i,x){return t.fun(n,e,i,x)},U00=function t(n,e,i){return t.fun(n,e,i)},Wm=function t(n,e,i,x){return t.fun(n,e,i,x)},H00=function t(n,e,i){return t.fun(n,e,i)};N(zD,function(t,n,e,i){u(f(e),Ta0),o(t,e,i[1]),u(f(e),Oa0);var x=i[2];function c(s){return u(n,s)}return R(Wm,function(s){return u(t,s)},c,e,x),u(f(e),Ia0)}),N(U00,function(t,n,e){var i=o(zD,t,n);return o(C0(Fa0),i,e)}),N(Wm,function(t,n,e,i){u(f(e),fa0),o(f(e),oa0,xa0);var x=i[1];u(f(e),aa0);var c=0;le(function(w,G){w&&u(f(e),ia0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(Yu[35],S,A,e,G),1},c,x),u(f(e),ca0),u(f(e),sa0),u(f(e),va0),o(f(e),ba0,la0);var s=i[2];if(s){g(e,pa0);var p=s[1],y=function(w,G){return g(w,ua0)},T=function(w){return u(t,w)};R(Dr[1],T,y,e,p),g(e,ma0)}else g(e,_a0);u(f(e),ya0),u(f(e),ha0),o(f(e),ka0,da0);var E=i[3];u(f(e),wa0);var d=0;return le(function(w,G){w&&u(f(e),ta0);function A(S){return u(t,S)}return ur(iu[1],A,e,G),1},d,E),u(f(e),Ea0),u(f(e),Sa0),u(f(e),ga0)}),N(H00,function(t,n,e){var i=o(Wm,t,n);return o(C0(na0),i,e)}),mu(n6r,kee,[0,zD,U00,Wm,H00]);function ze(t,n){if(n){var e=n[1],i=u(t,e);return e===i?n:[0,i]}return n}function te(t,n,e,i,x){var c=o(t,n,e);return e===c?i:u(x,c)}function ee(t,n,e,i){var x=u(t,n);return n===x?e:u(i,x)}function _u(t,n){var e=n[1];function i(x){return[0,e,x]}return te(t,e,n[2],n,i)}function Un(t,n){var e=le(function(i,x){var c=u(t,x),s=i[2],p=s||(c!==x?1:0);return[0,[0,c,i[1]],p]},l6r,n);return e[2]?ye(e[1]):n}var KD=Rp(p6r,function(t){var n=NN(t,b6r),e=n[1],i=n[2],x=n[3],c=n[4],s=n[5],p=n[6],y=n[7],T=n[8],E=n[9],d=n[10],w=n[11],G=n[12],A=n[13],S=n[14],M=n[15],K=n[16],V=n[17],f0=n[18],m0=n[19],k0=n[20],g0=n[21],e0=n[22],x0=n[23],l=n[24],c0=n[25],t0=n[26],o0=n[27],w0=n[28],_0=n[29],E0=n[30],U0=n[31],b=n[32],R0=n[33],X=n[34],s0=n[35],hr=n[36],Ar=n[37],or=n[38],W0=n[39],Lr=n[40],Tr=n[41],Hr=n[42],Or=n[43],fr=n[44],Rr=n[45],Wr=n[46],Jr=n[47],ar=n[49],_r=n[50],Ir=n[51],fe=n[52],v0=n[53],P=n[54],L=n[55],Q=n[56],i0=n[57],l0=n[58],S0=n[59],T0=n[60],rr=n[61],L0=n[62],B=n[63],Z=n[65],p0=n[66],b0=n[67],O0=n[68],M0=n[69],er=n[70],yr=n[71],vr=n[72],$0=n[73],Er=n[74],Mr=n[75],Br=n[76],qr=n[77],jr=n[78],$r=n[79],ne=n[80],Qr=n[81],be=n[82],ae=n[83],pe=n[84],oe=n[85],ce=n[86],ge=n[87],q0=n[88],Fr=n[89],_=n[90],k=n[91],I=n[92],U=n[93],Y=n[94],y0=n[95],P0=n[96],I0=n[97],D=n[98],u0=n[99],X0=n[ti],J0=n[R7],ir=n[Ri],Q0=n[s7],F0=n[L7],Sr=n[j7],mr=n[Yt],Cr=n[Zc],sr=n[is],Pr=n[Fv],K0=n[Xt],Ur=n[cf],h0=n[T7],Kr=n[Pn],re=n[t1],xe=n[Av],Re=n[f1],ve=n[A2],Ie=n[z2],Ge=n[Sv],Me=n[uc],an=n[tl],We=n[In],Ae=n[ts],cn=n[X2],rn=n[br],kn=n[IX],vn=n[zn],Ne=n[jt],Je=n[JY],en=n[zw],_n=n[Jg],Cn=n[BH],Hn=n[133],Fn=n[134],vt=n[135],Nt=n[KH],gt=n[137],Zt=n[EH],qt=n[139],Ft=n[dH],Ct=n[141],du=n[142],Wu=n[143],lt=n[iV],ou=n[145],Bu=n[146],K7=n[DX],Yi=n[148],a7=n[eH],Hc=n[150],W7=n[151],Ut=n[152],bt=n[153],B0=n[FH],D0=n[155],Le=n[156],He=n[157],he=n[158],me=n[159],Zn=n[fY],wn=n[XU],ft=n[kh],xt=n[Ln],jn=n[AF],ut=n[$X],dt=n[DY],xn=n[NT],ln=n[IY],it=n[NX],Tt=n[qg],Ti=n[pg],hs=n[LU],Au=n[_Y],Hs=n[$U],Vi=n[bX],Xs=n[mV],Ys=n[uV],nn=n[gO],si=n[RY],Vs=n[sU],c2=n[Ai],M9=n[Yg],B9=n[lS],q9=n[hk],zs=n[gU],s2=n[md],U9=n[nw],H9=n[iY],X9=n[fX],H1=n[OY],vi=n[lX],ab=n[rt],cb=n[HT],sb=n[nI],Y9=n[xY],V9=n[XX],z9=n[hY],vb=n[vH],K9=n[QH],W9=n[NU],J9=n[sY],$9=n[nH],lb=n[eV],Z9=n[WX],X1=n[VH],v2=n[TH],bb=n[AX],pb=n[_H],mb=n[Wg],On=n[A6],Gn=n[yU],Y1=n[yY],_b=n[RX],yb=n[mT],Q9=n[xT],Xc=n[y6],r_=n[cp],l2=n[Cw],hb=n[FU],Yc=n[iA],e_=n[GX],Ks=n[FX],db=n[y8],V1=n[hv],n_=n[BO],ds=n[rk],t_=n[JH],z1=n[fV],u_=n[bU],b2=n[jh],i_=n[qX],Ws=n[ZF],kb=n[hT],Js=n[tH],f_=n[JU],zi=n[lO],Vc=n[BY],$s=n[cH],x_=n[i6],p2=n[s1],m2=n[Vy],_2=n[ST],o_=n[QU],Zs=n[v8],a_=n[WY],y2=n[$2],qL=n[48],K1=n[64];function UL(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return O===r0&&H===$?m:[0,$,r0,m[3],m[4]]}function W1(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+Vc],a,r0),V0=ze(u(a[1][1+V],a),$),Nr=o(a[1][1+t0],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&H===Nr&&$===V0&&O===Gr?m:[0,j0,V0,Nr,Gr]}function HL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function J1(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_r],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function XL(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+p],a,F,$),j0=ze(u(a[1][1+nn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Oi(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Un(o(a[1][1+y],a,H),$),j0=o(a[1][1+s0],a,O);return $===r0&&O===j0?m:[0,r0,H,j0]}function YL(a,F,m){var O=m[4],H=m[2],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,m[3],r0]}function VL(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,r0]}function h2(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+l],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function zL(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=_u(u(a[1][1+zi],a),r0);if($)var V0=$[1],Nr=V0[1],Gr=function(Qt){return[0,[0,Nr,Qt]]},Fe=V0[2],_e=te(u(a[1][1+z1],a),Nr,Fe,$,Gr);else var _e=$;if(H)var Dn=H[1],yn=Dn[1],ot=function(Qt){return[0,[0,yn,Qt]]},pt=Dn[2],kt=te(u(a[1][1+zi],a),yn,pt,H,ot);else var kt=H;var Kn=o(a[1][1+s0],a,O);return r0===j0&&$===_e&&H===kt&&O===Kn?m:[0,j0,_e,kt,Kn]}function $1(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function KL(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Z1(a,F){return F}function WL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Un(u(a[1][1+b],a),$),j0=Un(u(a[1][1+nn],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function wb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=_u(u(a[1][1+R0],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function JL(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+nn],a),$),j0=o(a[1][1+Tr],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,V0]]}function Eb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=Un(u(a[1][1+Ar],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0,m[4]]}function $L(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function ZL(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function d2(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function QL(a,F){return[0,o(a[1][1+Or],a,F),0]}function rR(a,F){var m=u(a[1][1+Hr],a),O=le(function(H,$){var r0=H[1],j0=u(m,$);if(j0){if(j0[2])return[0,Lc(j0,r0),1];var V0=j0[1],Nr=H[2],Gr=Nr||($!==V0?1:0);return[0,[0,V0,r0],Gr]}return[0,r0,1]},v6r,F);return O[2]?ye(O[1]):F}function c_(a,F){return o(a[1][1+Tr],a,F)}function eR(a,F,m){var O=m[2],H=m[1],$=Un(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function k2(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0,m[3]]}function nR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function w2(a,F){return o(a[1][1+nn],a,F)}function tR(a,F){var m=F[2],O=m[2],H=m[1];if(H)var $=function(Nr){return[0,Nr]},r0=H[1],j0=ee(u(a[1][1+nn],a),r0,H,$);else var j0=H;var V0=o(a[1][1+s0],a,O);return H===j0&&O===V0?F:[0,F[1],[0,j0,V0]]}function Q1(a,F){return o(a[1][1+nn],a,F)}function uR(a,F,m){return ur(a[1][1+er],a,F,m)}function Sb(a,F,m){return ur(a[1][1+er],a,F,m)}function iR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+Z],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function gb(a,F,m){return ur(a[1][1+er],a,F,m)}function fR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+b0],a,F,$),j0=ze(u(a[1][1+nn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Fb(a,F,m){switch(m[0]){case 0:var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+O0],a,F),H,m,O);case 1:var $=function(j0){return[1,j0]},r0=m[1];return ee(o(a[1][1+p0],a,F),r0,m,$);default:return m}}function xR(a,F,m){return ur(a[1][1+er],a,F,m)}function Mn(a,F,m){return ur(a[1][1+er],a,F,m)}function s_(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+fe],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function oR(a,F,m){return o(a[1][1+On],a,m)}function aR(a,F,m){return ur(a[1][1+L0],a,F,m)}function rv(a,F,m){var O=m[1];function H(r0){return[0,O,r0]}var $=m[2];return te(o(a[1][1+rr],a,F),O,$,m,H)}function Tb(a,F,m){switch(m[0]){case 0:var O=function(Nr){return[0,Nr]},H=m[1];return ee(o(a[1][1+L],a,F),H,m,O);case 1:var $=function(Nr){return[1,Nr]},r0=m[1];return ee(o(a[1][1+i0],a,F),r0,m,$);default:var j0=function(Nr){return[2,Nr]},V0=m[1];return ee(o(a[1][1+l0],a,F),V0,m,j0)}}function v_(a,F,m){var O=m[2],H=O[4],$=O[3],r0=O[2],j0=O[1],V0=ur(a[1][1+Q],a,F,j0),Nr=ur(a[1][1+P],a,F,r0),Gr=ze(u(a[1][1+nn],a),$);if(H){var Fe=0;if(V0[0]===1){var _e=Nr[2];if(_e[0]===2)var yn=qn(V0[1][2][1],_e[1][1][2][1]);else Fe=1}else Fe=1;if(Fe)var Dn=j0===V0?1:0,yn=Dn&&(r0===Nr?1:0)}else var yn=H;return V0===j0&&Nr===r0&&Gr===$&&H===yn?m:[0,m[1],[0,V0,Nr,Gr,yn]]}function Ob(a,F,m){if(m[0]===0){var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+S0],a,F),H,m,O)}function $(j0){return[1,j0]}var r0=m[1];return ee(o(a[1][1+v0],a,F),r0,m,$)}function cR(a,F,m,O){return ur(a[1][1+J0],a,m,O)}function l_(a,F,m){return o(a[1][1+lt],a,m)}function sR(a,F,m){var O=m[2];switch(O[0]){case 0:var H=O[1],$=H[3],r0=H[2],j0=H[1],V0=Un(o(a[1][1+T0],a,F),j0),Nr=o(a[1][1+x0],a,r0),Gr=o(a[1][1+s0],a,$),Fe=0;if(V0===j0&&Nr===r0&&Gr===$){var _e=O;Fe=1}if(!Fe)var _e=[0,[0,V0,Nr,Gr]];var Ji=_e;break;case 1:var Dn=O[1],yn=Dn[3],ot=Dn[2],pt=Dn[1],kt=Un(o(a[1][1+M0],a,F),pt),Kn=o(a[1][1+x0],a,ot),Qt=o(a[1][1+s0],a,yn),J7=0;if(yn===Qt&&kt===pt&&Kn===ot){var $7=O;J7=1}if(!J7)var $7=[1,[0,kt,Kn,Qt]];var Ji=$7;break;case 2:var E7=O[1],Z7=E7[2],Q7=E7[1],ri=ur(a[1][1+L0],a,F,Q7),ei=o(a[1][1+x0],a,Z7),ni=0;if(Q7===ri&&Z7===ei){var Wi=O;ni=1}if(!ni)var Wi=[2,[0,ri,ei,E7[3]]];var Ji=Wi;break;default:var tv=function(iv){return[3,iv]},uv=O[1],Ji=ee(u(a[1][1+B],a),uv,O,tv)}return O===Ji?m:[0,m[1],Ji]}function b_(a,F){return ur(a[1][1+er],a,0,F)}function Ib(a,F,m){var O=F&&F[1];return ur(a[1][1+er],a,[0,O],m)}function p_(a,F){return o(a[1][1+m2],a,F)}function vR(a,F){return o(a[1][1+m2],a,F)}function m_(a,F){return ur(a[1][1+$s],a,s6r,F)}function Ab(a,F,m){return ur(a[1][1+$s],a,[0,F],m)}function lR(a,F){return ur(a[1][1+$s],a,c6r,F)}function bR(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=ze(u(a[1][1+t0],a),$),Fe=ze(u(a[1][1+t0],a),H),_e=o(a[1][1+s0],a,O);return j0===V0&&$===Gr&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,V0,Nr,Gr,Fe,_e]}function pR(a,F){return o(a[1][1+On],a,F)}function Nb(a,F){return o(a[1][1+lt],a,F)}function mR(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+J0],a),m,H,F,O)}function _R(a,F){switch(F[0]){case 0:var m=function(Gr){return[0,Gr]},O=F[1];return ee(u(a[1][1+be],a),O,F,m);case 1:var H=function(Gr){return[1,Gr]},$=F[1];return ee(u(a[1][1+ae],a),$,F,H);case 2:var r0=function(Gr){return[2,Gr]},j0=F[1];return ee(u(a[1][1+ar],a),j0,F,r0);default:var V0=function(Gr){return[3,Gr]},Nr=F[1];return ee(u(a[1][1+pe],a),Nr,F,V0)}}function __(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),V0=o(a[1][1+nn],a,$);if(H){var Nr=0;if(j0[0]===1){var Gr=V0[2];if(Gr[0]===10)var _e=qn(j0[1][2][1],Gr[1][2][1]);else Nr=1}else Nr=1;if(Nr)var Fe=r0===j0?1:0,_e=Fe&&($===V0?1:0)}else var _e=H;return r0===j0&&$===V0&&H===_e?F:[0,O,[0,j0,V0,_e]];case 1:var Dn=m[2],yn=m[1],ot=o(a[1][1+oe],a,yn),pt=_u(u(a[1][1+me],a),Dn);return yn===ot&&Dn===pt?F:[0,O,[1,ot,pt]];case 2:var kt=m[3],Kn=m[2],Qt=m[1],J7=o(a[1][1+oe],a,Qt),$7=_u(u(a[1][1+me],a),Kn),E7=o(a[1][1+s0],a,kt);return Qt===J7&&Kn===$7&&kt===E7?F:[0,O,[2,J7,$7,E7]];default:var Z7=m[3],Q7=m[2],ri=m[1],ei=o(a[1][1+oe],a,ri),ni=_u(u(a[1][1+me],a),Q7),Wi=o(a[1][1+s0],a,Z7);return ri===ei&&Q7===ni&&Z7===Wi?F:[0,O,[3,ei,ni,Wi]]}}function yR(a,F,m){var O=m[2],H=m[1],$=Un(function(j0){if(j0[0]===0){var V0=j0[1],Nr=o(a[1][1+Qr],a,V0);return V0===Nr?j0:[0,Nr]}var Gr=j0[1],Fe=o(a[1][1+fr],a,Gr);return Gr===Fe?j0:[1,Fe]},H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Cb(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+nn],a,r0),V0=ze(u(a[1][1+b2],a),$),Nr=ze(u(a[1][1+Ws],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function hR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+lt],a,$),j0=o(a[1][1+lt],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function dR(a,F){return o(a[1][1+nn],a,F)}function y_(a,F){return o(a[1][1+ar],a,F)}function kR(a,F){return o(a[1][1+lt],a,F)}function E2(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+y0],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+D],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+P0],a),j0,F,r0)}}function wR(a,F,m){var O=m[1],H=ur(a[1][1+u0],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function ER(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+I0],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function SR(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function Pb(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function gR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Q0],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function FR(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Db(a,F){return o(a[1][1+ve],a,F)}function TR(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+K0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Ur],a),$,F,H)}function OR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Pr],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function ku(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+h0],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function wu(a,F){return o(a[1][1+Ur],a,F)}function Ii(a,F){return o(a[1][1+sr],a,F)}function w7(a,F){return o(a[1][1+h0],a,F)}function Ki(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+ve],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+xe],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+Re],a),j0,F,r0)}}function ev(a,F){var m=F[2],O=F[1],H=o(a[1][1+nn],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function Lb(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+s0],a,O);if(H){var r0=H[1],j0=o(a[1][1+nn],a,r0);return r0===j0&&O===$?m:[0,[0,j0],$]}return O===$?m:[0,0,$]}function nv(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return te(u(a[1][1+Ge],a),O,$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return te(u(a[1][1+Kr],a),O,j0,F,r0);case 2:var V0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return te(u(a[1][1+re],a),O,Nr,F,V0);case 3:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+F0],a),Fe,F,Gr);default:return F}}function Rb(a,F){var m=F[2],O=Un(u(a[1][1+We],a),m);return m===O?F:[0,F[1],O]}function jb(a,F,m){return ur(a[1][1+J0],a,F,m)}function IR(a,F,m){return ur(a[1][1+re],a,F,m)}function Sne(a,F){if(F[0]===0){var m=F[1],O=function(V0){return[0,m,V0]},H=F[2];return te(u(a[1][1+Ae],a),m,H,F,O)}var $=F[1];function r0(V0){return[1,$,V0]}var j0=F[2];return te(u(a[1][1+cn],a),$,j0,F,r0)}function gne(a,F){return o(a[1][1+sr],a,F)}function Fne(a,F){return o(a[1][1+h0],a,F)}function Tne(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+vn],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+kn],a),$,F,H)}function One(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Ne],a,H),r0=ze(u(a[1][1+rn],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Ine(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Ane(a,F){if(F[0]===0){var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+Je],a),O,F,m)}var H=F[1],$=H[1];function r0(V0){return[1,[0,$,V0]]}var j0=H[2];return te(u(a[1][1+Sr],a),$,j0,F,r0)}function Nne(a,F){var m=F[2][1],O=o(a[1][1+Ie],a,m);return m===O?F:[0,F[1],[0,O]]}function Cne(a,F){var m=F[2],O=m[3],H=m[1],$=o(a[1][1+Ie],a,H),r0=Un(u(a[1][1+Cr],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,m[2],r0]]}function Pne(a,F,m){var O=m[4],H=m[3],$=o(a[1][1+an],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],m[2],$,r0]}function Dne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+mr],a,r0),V0=ze(u(a[1][1+Me],a),$),Nr=o(a[1][1+an],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function Lne(a,F,m,O){var H=2<=F?o(a[1][1+L0],a,a6r):u(a[1][1+Vc],a);return u(H,O)}function Rne(a,F,m){var O=2<=F?o(a[1][1+L0],a,o6r):u(a[1][1+Vc],a);return u(O,m)}function jne(a,F,m){var O=m[3],H=m[2],$=m[1],r0=0;if(F){var j0=0;if($)switch($[1]){case 2:break;case 0:r0=1,j0=2;break;default:j0=1}var V0=0;switch(j0){case 2:V0=1;break;case 0:if(2<=F){var Nr=0,Gr=0;V0=1}break}if(!V0)var Nr=1,Gr=0}else r0=1;if(r0)var Nr=1,Gr=1;var Fe=o(Gr?a[1][1+m0]:a[1][1+lt],a,O);if(H)var _e=Nr?u(a[1][1+Vc],a):o(a[1][1+L0],a,x6r),Dn=function(ot){return[0,ot]},yn=ee(_e,H[1],H,Dn);else var yn=H;return H===yn&&O===Fe?m:[0,$,yn,Fe]}function Gne(a,F,m){if(m[0]===0){var O=m[1],H=Un(o(a[1][1+gt],a,F),O);return O===H?m:[0,H]}var $=m[1],r0=$[1];function j0(Nr){return[1,[0,r0,Nr]]}var V0=$[2];return te(o(a[1][1+Nt],a,F),r0,V0,m,j0)}function Mne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[1],j0=ze(o(a[1][1+vt],a,r0),H),V0=ze(o(a[1][1+Zt],a,r0),$),Nr=o(a[1][1+s0],a,O);return H===j0&&$===V0&&O===Nr?m:[0,r0,m[2],V0,j0,Nr]}function Bne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),V0=ur(a[1][1+du],a,H!==0?1:0,$),Nr=u(a[1][1+Wu],a),Gr=ze(function(_e){return _u(Nr,_e)},H),Fe=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Gr&&O===Fe?m:[0,j0,V0,Gr,Fe]}function qne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Or],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Une(a,F,m){return o(a[1][1+Or],a,m)}function Hne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Xne(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Yne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Vne(a,F,m){return ur(a[1][1+Hn],a,F,m)}function zne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=u(a[1][1+ou],a),Fe=Un(function(yn){return _u(Gr,yn)},$),_e=_u(u(a[1][1+qr],a),H),Dn=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Fe===$&&_e===H&&Dn===O?m:[0,V0,Nr,Fe,_e,Dn]}function Kne(a,F){return o(a[1][1+k0],a,F)}function Wne(a,F){return o(a[1][1+k0],a,F)}function Jne(a,F){return o(a[1][1+lt],a,F)}function $ne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Zne(a,F,m){return m}function Qne(a,F){return ur(a[1][1+L0],a,f6r,F)}function rte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+zi],a),m,H,F,O)}function ete(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+xt],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function nte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=ze(u(a[1][1+nn],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function tte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function ute(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=Un(u(a[1][1+He],a),$),V0=ze(u(a[1][1+bt],a),H),Nr=ze(u(a[1][1+W7],a),r0),Gr=o(a[1][1+s0],a,O);return $===j0&&H===V0&&O===Gr&&r0===Nr?F:[0,F[1],[0,Nr,j0,V0,Gr]]}function ite(a,F,m){var O=m[9],H=m[8],$=m[7],r0=m[6],j0=m[3],V0=m[2],Nr=m[1],Gr=ze(u(a[1][1+he],a),Nr),Fe=o(a[1][1+B0],a,V0),_e=o(a[1][1+x0],a,$),Dn=o(a[1][1+ft],a,j0),yn=ze(u(a[1][1+Ir],a),r0),ot=ze(u(a[1][1+V],a),H),pt=o(a[1][1+s0],a,O);return Nr===Gr&&V0===Fe&&j0===Dn&&r0===yn&&$===_e&&H===ot&&O===pt?m:[0,Gr,Fe,Dn,m[4],m[5],yn,_e,ot,pt,m[10]]}function fte(a,F,m){return ur(a[1][1+jn],a,F,m)}function xte(a,F,m){return ur(a[1][1+me],a,F,m)}function ote(a,F,m){return ur(a[1][1+jn],a,F,m)}function ate(a,F){if(F[0]===0)return F;var m=F[1],O=o(a[1][1+l],a,m);return O===m?F:[1,O]}function cte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return ee(u(a[1][1+t0],a),H,F,O)}function ste(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Ze){return[0,O,[0,Ze]]},$=m[1];return ee(u(a[1][1+s0],a),$,F,H);case 1:var r0=function(Ze){return[0,O,[1,Ze]]},j0=m[1];return ee(u(a[1][1+s0],a),j0,F,r0);case 2:var V0=function(Ze){return[0,O,[2,Ze]]},Nr=m[1];return ee(u(a[1][1+s0],a),Nr,F,V0);case 3:var Gr=function(Ze){return[0,O,[3,Ze]]},Fe=m[1];return ee(u(a[1][1+s0],a),Fe,F,Gr);case 4:var _e=function(Ze){return[0,O,[4,Ze]]},Dn=m[1];return ee(u(a[1][1+s0],a),Dn,F,_e);case 5:var yn=function(Ze){return[0,O,[5,Ze]]},ot=m[1];return ee(u(a[1][1+s0],a),ot,F,yn);case 6:var pt=function(Ze){return[0,O,[6,Ze]]},kt=m[1];return ee(u(a[1][1+s0],a),kt,F,pt);case 7:var Kn=function(Ze){return[0,O,[7,Ze]]},Qt=m[1];return ee(u(a[1][1+s0],a),Qt,F,Kn);case 8:var J7=function(Ze){return[0,O,[8,Ze]]},$7=m[1];return ee(u(a[1][1+s0],a),$7,F,J7);case 9:var E7=function(Ze){return[0,O,[9,Ze]]},Z7=m[1];return ee(u(a[1][1+s0],a),Z7,F,E7);case 10:var Q7=function(Ze){return[0,O,[10,Ze]]},ri=m[1];return ee(u(a[1][1+s0],a),ri,F,Q7);case 11:var ei=function(Ze){return[0,O,[11,Ze]]},ni=m[1];return ee(u(a[1][1+k],a),ni,F,ei);case 12:var Wi=function(Ze){return[0,O,[12,Ze]]},tv=m[1];return te(u(a[1][1+a7],a),O,tv,F,Wi);case 13:var uv=function(Ze){return[0,O,[13,Ze]]},Ji=m[1];return te(u(a[1][1+qr],a),O,Ji,F,uv);case 14:var iv=function(Ze){return[0,O,[14,Ze]]},Gb=m[1];return te(u(a[1][1+_n],a),O,Gb,F,iv);case 15:var Mb=function(Ze){return[0,O,[15,Ze]]},Bb=m[1];return ee(u(a[1][1+Zs],a),Bb,F,Mb);case 16:var qb=function(Ze){return[0,O,[16,Ze]]},Ub=m[1];return te(u(a[1][1+ou],a),O,Ub,F,qb);case 17:var Hb=function(Ze){return[0,O,[17,Ze]]},Xb=m[1];return te(u(a[1][1+Fn],a),O,Xb,F,Hb);case 18:var Yb=function(Ze){return[0,O,[18,Ze]]},Vb=m[1];return te(u(a[1][1+vr],a),O,Vb,F,Yb);case 19:var zb=function(Ze){return[0,O,[19,Ze]]},Kb=m[1];return te(u(a[1][1+d],a),O,Kb,F,zb);case 20:var Wb=function(Ze){return[0,O,[20,Ze]]},Jb=m[1];return te(u(a[1][1+en],a),O,Jb,F,Wb);case 21:var $b=function(Ze){return[0,O,[21,Ze]]},Zb=m[1];return ee(u(a[1][1+G],a),Zb,F,$b);case 22:var Qb=function(Ze){return[0,O,[22,Ze]]},r4=m[1];return ee(u(a[1][1+o0],a),r4,F,Qb);case 23:var e4=function(Ze){return[0,O,[23,Ze]]},n4=m[1];return te(u(a[1][1+Lr],a),O,n4,F,e4);case 24:var t4=function(Ze){return[0,O,[24,Ze]]},u4=m[1];return te(u(a[1][1+_],a),O,u4,F,t4);case 25:var i4=function(Ze){return[0,O,[25,Ze]]},f4=m[1];return te(u(a[1][1+p2],a),O,f4,F,i4);default:var x4=function(Ze){return[0,O,[26,Ze]]},o4=m[1];return te(u(a[1][1+f_],a),O,o4,F,x4)}}function vte(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],V0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Un(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,V0,Nr,Gr],Fe]}function lte(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],V0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Un(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,V0,Nr,Gr],Fe]}function bte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function pte(a,F){var m=F[2],O=F[1],H=Un(u(a[1][1+t0],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function mte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K],a,H),r0=o(a[1][1+S],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function _te(a,F){return o(a[1][1+lt],a,F)}function yte(a,F){return o(a[1][1+lt],a,F)}function hte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+M],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+A],a),$,F,H)}function dte(a,F){var m=F[2],O=F[1],H=o(a[1][1+K],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function kte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function wte(a,F,m){var O=m[2],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],H]}function Ete(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Ste(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function gte(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Fte(a,F,m){var O=m[1],H=ur(a[1][1+Fn],a,F,O);return H===O?m:[0,H,m[2]]}function Tte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+t0],a,$),j0=o(a[1][1+t0],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Ote(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+K7],a,$),j0=ze(u(a[1][1+e0],a),H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Ite(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+x0],a,$),V0=o(a[1][1+c],a,H),Nr=ze(u(a[1][1+t0],a),O),Gr=o(a[1][1+Vc],a,r0);return Gr===r0&&j0===$&&V0===H&&Nr===O?F:[0,F[1],[0,Gr,j0,V0,Nr]]}function Ate(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+f0],a),H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Nte(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+t0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Cte(a,F){return ze(u(a[1][1+s],a),F)}function Pte(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Dte(a,F){return o(a[1][1+lt],a,F)}function Lte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K7],a,H),r0=o(a[1][1+Y],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Rte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+m0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Bu],a),$,F,H)}function jte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=u(a[1][1+ou],a),j0=Un(function(Gr){return _u(r0,Gr)},H),V0=_u(u(a[1][1+qr],a),$),Nr=o(a[1][1+s0],a,O);return j0===H&&V0===$&&O===Nr?m:[0,V0,j0,Nr]}function Gte(a,F,m){var O=m[4],H=m[3],$=Un(function(j0){switch(j0[0]){case 0:var V0=function(Kn){return[0,Kn]},Nr=j0[1];return ee(u(a[1][1+ne],a),Nr,j0,V0);case 1:var Gr=function(Kn){return[1,Kn]},Fe=j0[1];return ee(u(a[1][1+jr],a),Fe,j0,Gr);case 2:var _e=function(Kn){return[2,Kn]},Dn=j0[1];return ee(u(a[1][1+ge],a),Dn,j0,_e);case 3:var yn=function(Kn){return[3,Kn]},ot=j0[1];return ee(u(a[1][1+q0],a),ot,j0,yn);default:var pt=function(Kn){return[4,Kn]},kt=j0[1];return ee(u(a[1][1+ce],a),kt,j0,pt)}},H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],m[2],$,r0]}function Mte(a,F){var m=F[2],O=m[3],H=m[1],$=H[2],r0=H[1],j0=ur(a[1][1+a7],a,r0,$),V0=o(a[1][1+s0],a,O);return $===j0&&O===V0?F:[0,F[1],[0,[0,r0,j0],m[2],V0]]}function Bte(a,F){var m=F[2],O=m[6],H=m[2],$=m[1],r0=o(a[1][1+lt],a,$),j0=o(a[1][1+t0],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,m[3],m[4],m[5],V0]]}function qte(a,F){var m=F[2],O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+t0],a,r0),V0=o(a[1][1+t0],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,m[1],j0,V0,m[4],Nr,Gr]]}function Ute(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?F:[0,F[1],[0,$,r0]]}function Hte(a,F){var m=F[2],O=m[8],H=m[7],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),V0=o(a[1][1+$r],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,j0,V0,m[3],m[4],m[5],m[6],Nr,Gr]]}function Xte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Yte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Vte(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+t0],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+Br],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+Mr],a),j0,F,r0)}}function zte(a,F){return o(a[1][1+lt],a,F)}function Kte(a,F,m){var O=m[4],H=m[3],$=m[2],r0=$[2],j0=r0[4],V0=r0[3],Nr=r0[2],Gr=r0[1],Fe=m[1],_e=ze(u(a[1][1+Hc],a),Gr),Dn=Un(u(a[1][1+D0],a),Nr),yn=ze(u(a[1][1+Ut],a),V0),ot=o(a[1][1+t0],a,H),pt=ze(u(a[1][1+V],a),Fe),kt=o(a[1][1+s0],a,O),Kn=o(a[1][1+s0],a,j0);return Dn===Nr&&yn===V0&&ot===H&&pt===Fe&&kt===O&&Kn===j0&&_e===Gr?m:[0,pt,[0,$[1],[0,_e,Dn,yn,Kn]],ot,kt]}function Wte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Jte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+D0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function $te(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,O),r0=ze(u(a[1][1+lt],a),H);return $===O&&r0===H?F:[0,F[1],[0,r0,$,m[3]]]}function Zte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function Qte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Ti],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function rue(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=ze(u(a[1][1+ut],a),j0),Nr=ze(u(a[1][1+_r],a),r0),Gr=ze(u(a[1][1+nn],a),$),Fe=o(a[1][1+Or],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,V0,Nr,Gr,Fe,_e]}function eue(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function nue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+it],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Tt],a),$,F,H)}function tue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+xn],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,m[4],Gr]}function uue(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function iue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Hs],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Vi],a),$,F,H)}function fue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+hs],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,m[4],Gr]}function xue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+nn],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Rr],a),$,F,H)}function oue(a,F,m){var O=m[3],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,m[2],r0]}function aue(a,F){if(F[0]===0){var m=F[1],O=Un(u(a[1][1+Vs],a),m);return m===O?F:[0,O]}var H=F[1],$=o(a[1][1+q9],a,H);return H===$?F:[1,$]}function cue(a,F){var m=F[2],O=ze(u(a[1][1+lt],a),m);return m===O?F:[0,F[1],O]}function sue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+lt],a,H),r0=ze(u(a[1][1+lt],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function vue(a,F,m){var O=m[5],H=m[2],$=m[1],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Or],a),$),V0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===V0?m:[0,j0,r0,m[3],m[4],V0]}function lue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Or],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function bue(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+M9],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?m:[0,m[1],$,r0]}function pue(a,F){return o(a[1][1+lt],a,F)}function mue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function _ue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function yue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function hue(a,F){var m=F[2][1],O=o(a[1][1+H1],a,m);return m===O?F:[0,F[1],[0,O]]}function due(a,F){var m=F[3],O=F[1],H=Un(u(a[1][1+vi],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],$]}function kue(a,F){var m=F[4],O=F[1];if(O[0]===0)var H=function(_e){return[0,_e]},$=O[1],r0=u(a[1][1+vi],a),Gr=ee(function(_e){return Un(r0,_e)},$,O,H);else var j0=function(_e){return[1,_e]},V0=O[1],Nr=u(a[1][1+s2],a),Gr=ee(function(_e){return Un(Nr,_e)},V0,O,j0);var Fe=o(a[1][1+s0],a,m);return O===Gr&&m===Fe?F:[0,Gr,F[2],F[3],Fe]}function wue(a,F){var m=F[4],O=F[1],H=Un(u(a[1][1+H9],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function Eue(a,F){var m=F[4],O=F[1],H=Un(u(a[1][1+cb],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function Sue(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return ee(u(a[1][1+sb],a),$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return ee(u(a[1][1+X9],a),j0,F,r0);case 2:var V0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return ee(u(a[1][1+U9],a),Nr,F,V0);default:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+zs],a),Fe,F,Gr)}}function gue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,i6r,$),j0=o(a[1][1+Y9],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Fue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Tue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Or],a,$),j0=o(a[1][1+_r],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Oue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,u6r,$),j0=o(a[1][1+l],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Iue(a,F,m){return ur(a[1][1+c0],a,F,m)}function Aue(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Nue(a,F,m){var O=m[4],H=m[2],$=_u(u(a[1][1+zi],a),H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],$,m[3],r0]}function Cue(a,F,m){return ur(a[1][1+Hn],a,F,m)}function Pue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+he],a,r0),V0=o(a[1][1+l],a,$),Nr=ze(u(a[1][1+Ir],a),H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?m:[0,j0,V0,Nr,Gr]}function Due(a,F){switch(F[0]){case 0:var m=F[1],O=m[2],H=m[1],$=ur(a[1][1+vb],a,H,O);return $===O?F:[0,[0,H,$]];case 1:var r0=F[1],j0=r0[2],V0=r0[1],Nr=ur(a[1][1+lb],a,V0,j0);return Nr===j0?F:[1,[0,V0,Nr]];case 2:var Gr=F[1],Fe=Gr[2],_e=Gr[1],Dn=ur(a[1][1+v2],a,_e,Fe);return Dn===Fe?F:[2,[0,_e,Dn]];case 3:var yn=F[1],ot=o(a[1][1+t0],a,yn);return ot===yn?F:[3,ot];case 4:var pt=F[1],kt=pt[2],Kn=pt[1],Qt=ur(a[1][1+c0],a,Kn,kt);return Qt===kt?F:[4,[0,Kn,Qt]];case 5:var J7=F[1],$7=J7[2],E7=J7[1],Z7=ur(a[1][1+Er],a,E7,$7);return Z7===$7?F:[5,[0,E7,Z7]];default:var Q7=F[1],ri=Q7[2],ei=Q7[1],ni=ur(a[1][1+Hn],a,ei,ri);return ni===ri?F:[6,[0,ei,ni]]}}function Lue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Z9],a),$),V0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===V0?m:[0,m[1],j0,r0,m[4],V0]}function Rue(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],V0=m[2],Nr=m[1],Gr=o(a[1][1+hb],a,Nr),Fe=ze(u(a[1][1+V],a),V0),_e=_u(u(a[1][1+qr],a),j0),Dn=u(a[1][1+ou],a),yn=ze(function(Qt){return _u(Dn,Qt)},r0),ot=u(a[1][1+ou],a),pt=Un(function(Qt){return _u(ot,Qt)},$),kt=ze(u(a[1][1+l2],a),H),Kn=o(a[1][1+s0],a,O);return Gr===Nr&&Fe===V0&&_e===j0&&yn===r0&&pt===$&&kt===H&&Kn===O?m:[0,Gr,Fe,_e,yn,pt,kt,Kn]}function jue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Gue(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Mue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+nn],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function Bue(a,F,m){return m}function que(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+ar],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,V0,Nr,Gr,m[4],Fe,_e]}function Uue(a,F){if(typeof F==\"number\")return F;var m=F[1],O=o(a[1][1+nn],a,m);return m===O?F:[0,O]}function Hue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+oe],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,V0,Nr,Gr,m[4],Fe,_e]}function Xue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+oe],a,r0),V0=_u(u(a[1][1+me],a),$),Nr=Un(u(a[1][1+db],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,m[1],j0,V0,m[4],Nr,Gr]}function Yue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+m0],a,H),r0=ze(u(a[1][1+e0],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Vue(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+r_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function zue(a,F){switch(F[0]){case 0:var m=F[1],O=m[1],H=function(yn){return[0,[0,O,yn]]},$=m[2];return te(u(a[1][1+Xc],a),O,$,F,H);case 1:var r0=F[1],j0=r0[1],V0=function(yn){return[1,[0,j0,yn]]},Nr=r0[2];return te(u(a[1][1+yb],a),j0,Nr,F,V0);default:var Gr=F[1],Fe=Gr[1],_e=function(yn){return[2,[0,Fe,yn]]},Dn=Gr[2];return te(u(a[1][1+Q9],a),Fe,Dn,F,_e)}}function Kue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Wue(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+Ks],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Jue(a,F){return ur(a[1][1+L0],a,t6r,F)}function $ue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=ze(u(a[1][1+e0],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Zue(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],V0=m[2],Nr=m[1],Gr=ze(u(a[1][1+hb],a),Nr),Fe=o(a[1][1+n_],a,V0),_e=ze(u(a[1][1+V],a),j0),Dn=u(a[1][1+Yc],a),yn=ze(function(Kn){return _u(Dn,Kn)},r0),ot=ze(u(a[1][1+l2],a),$),pt=Un(u(a[1][1+db],a),H),kt=o(a[1][1+s0],a,O);return Nr===Gr&&V0===Fe&&r0===yn&&$===ot&&H===pt&&O===kt&&j0===_e?m:[0,Gr,Fe,_e,yn,ot,pt,kt]}function Que(a,F,m){return ur(a[1][1+ds],a,F,m)}function r7e(a,F,m){return ur(a[1][1+ds],a,F,m)}function e7e(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+t_],a),$),j0=o(a[1][1+u_],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function n7e(a,F){return _u(u(a[1][1+zi],a),F)}function t7e(a,F){if(F[0]===0){var m=F[1],O=o(a[1][1+t0],a,m);return O===m?F:[0,O]}var H=F[1],$=H[2][1],r0=o(a[1][1+s0],a,$);return $===r0?F:[1,[0,H[1],[0,r0]]]}function u7e(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+i_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function i7e(a,F,m){var O=m[1],H=ur(a[1][1+kb],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function f7e(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+Ys],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function x7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+nn],a,r0),V0=ze(u(a[1][1+b2],a),$),Nr=o(a[1][1+Ws],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function o7e(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function a7e(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Tr],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function c7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function s7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+m2],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function v7e(a,F,m){return ur(a[1][1+jn],a,F,m)}function l7e(a,F){switch(F[0]){case 0:var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+nn],a),O,F,m);case 1:var H=function(r0){return[1,r0]},$=F[1];return ee(u(a[1][1+Rr],a),$,F,H);default:return F}}function b7e(a,F,m){var O=m[2],H=m[1],$=Un(u(a[1][1+a_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function p7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Ue){return[0,O,[0,Ue]]},$=m[1];return te(u(a[1][1+y2],a),O,$,F,H);case 1:var r0=function(Ue){return[0,O,[1,Ue]]},j0=m[1];return te(u(a[1][1+o_],a),O,j0,F,r0);case 2:var V0=function(Ue){return[0,O,[2,Ue]]},Nr=m[1];return te(u(a[1][1+_2],a),O,Nr,F,V0);case 3:var Gr=function(Ue){return[0,O,[3,Ue]]},Fe=m[1];return te(u(a[1][1+x_],a),O,Fe,F,Gr);case 4:var _e=function(Ue){return[0,O,[4,Ue]]},Dn=m[1];return te(u(a[1][1+kb],a),O,Dn,F,_e);case 5:var yn=function(Ue){return[0,O,[5,Ue]]},ot=m[1];return te(u(a[1][1+e_],a),O,ot,F,yn);case 6:var pt=function(Ue){return[0,O,[6,Ue]]},kt=m[1];return te(u(a[1][1+Gn],a),O,kt,F,pt);case 7:var Kn=function(Ue){return[0,O,[7,Ue]]},Qt=m[1];return te(u(a[1][1+mb],a),O,Qt,F,Kn);case 8:var J7=function(Ue){return[0,O,[8,Ue]]},$7=m[1];return te(u(a[1][1+Zn],a),O,$7,F,J7);case 9:var E7=function(Ue){return[0,O,[9,Ue]]},Z7=m[1];return te(u(a[1][1+Yi],a),O,Z7,F,E7);case 10:var Q7=function(Ue){return[0,O,[10,Ue]]},ri=m[1];return ee(u(a[1][1+lt],a),ri,F,Q7);case 11:var ei=function(Ue){return[0,O,[11,Ue]]},ni=m[1];return ee(o(a[1][1+Ft],a,O),ni,F,ei);case 12:var Wi=function(Ue){return[0,O,[12,Ue]]},tv=m[1];return te(u(a[1][1+Ge],a),O,tv,F,Wi);case 13:var uv=function(Ue){return[0,O,[13,Ue]]},Ji=m[1];return te(u(a[1][1+Kr],a),O,Ji,F,uv);case 14:var iv=function(Ue){return[0,O,[14,Ue]]},Gb=m[1];return te(u(a[1][1+J0],a),O,Gb,F,iv);case 15:var Mb=function(Ue){return[0,O,[15,Ue]]},Bb=m[1];return te(u(a[1][1+X0],a),O,Bb,F,Mb);case 16:var qb=function(Ue){return[0,O,[16,Ue]]},Ub=m[1];return te(u(a[1][1+u0],a),O,Ub,F,qb);case 17:var Hb=function(Ue){return[0,O,[17,Ue]]},Xb=m[1];return te(u(a[1][1+U],a),O,Xb,F,Hb);case 18:var Yb=function(Ue){return[0,O,[18,Ue]]},Vb=m[1];return te(u(a[1][1+I],a),O,Vb,F,Yb);case 19:var zb=function(Ue){return[0,O,[19,Ue]]},Kb=m[1];return te(u(a[1][1+Fr],a),O,Kb,F,zb);case 20:var Wb=function(Ue){return[0,O,[20,Ue]]},Jb=m[1];return ee(o(a[1][1+$0],a,O),Jb,F,Wb);case 21:var $b=function(Ue){return[0,O,[21,Ue]]},Zb=m[1];return te(u(a[1][1+yr],a),O,Zb,F,$b);case 22:var Qb=function(Ue){return[0,O,[22,Ue]]},r4=m[1];return te(u(a[1][1+Wr],a),O,r4,F,Qb);case 23:var e4=function(Ue){return[0,O,[23,Ue]]},n4=m[1];return te(u(a[1][1+W0],a),O,n4,F,e4);case 24:var t4=function(Ue){return[0,O,[24,Ue]]},u4=m[1];return te(u(a[1][1+X],a),O,u4,F,t4);case 25:var i4=function(Ue){return[0,O,[25,Ue]]},f4=m[1];return te(u(a[1][1+R0],a),O,f4,F,i4);case 26:var x4=function(Ue){return[0,O,[26,Ue]]},o4=m[1];return te(u(a[1][1+U0],a),O,o4,F,x4);case 27:var Ze=function(Ue){return[0,O,[27,Ue]]},AR=m[1];return te(u(a[1][1+g0],a),O,AR,F,Ze);case 28:var NR=function(Ue){return[0,O,[28,Ue]]},CR=m[1];return te(u(a[1][1+w],a),O,CR,F,NR);case 29:var PR=function(Ue){return[0,O,[29,Ue]]},DR=m[1];return te(u(a[1][1+E],a),O,DR,F,PR);default:var LR=function(Ue){return[0,O,[30,Ue]]},RR=m[1];return te(u(a[1][1+e],a),O,RR,F,LR)}}function m7e(a,F){var m=F[2],O=F[1],H=Un(u(a[1][1+Y1],a),O),$=Un(u(a[1][1+Y1],a),m);return O===H&&m===$?F:[0,H,$,F[3]]}var _7e=8;function y7e(a,F){return F}function h7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Oe){return[0,O,[0,Oe]]},$=m[1];return te(u(a[1][1+zi],a),O,$,F,H);case 1:var r0=function(Oe){return[0,O,[1,Oe]]},j0=m[1];return te(u(a[1][1+Js],a),O,j0,F,r0);case 2:var V0=function(Oe){return[0,O,[2,Oe]]},Nr=m[1];return te(u(a[1][1+V1],a),O,Nr,F,V0);case 3:var Gr=function(Oe){return[0,O,[3,Oe]]},Fe=m[1];return te(u(a[1][1+pb],a),O,Fe,F,Gr);case 4:var _e=function(Oe){return[0,O,[4,Oe]]},Dn=m[1];return te(u(a[1][1+bb],a),O,Dn,F,_e);case 5:var yn=function(Oe){return[0,O,[5,Oe]]},ot=m[1];return te(u(a[1][1+v2],a),O,ot,F,yn);case 6:var pt=function(Oe){return[0,O,[6,Oe]]},kt=m[1];return te(u(a[1][1+X1],a),O,kt,F,pt);case 7:var Kn=function(Oe){return[0,O,[7,Oe]]},Qt=m[1];return te(u(a[1][1+lb],a),O,Qt,F,Kn);case 8:var J7=function(Oe){return[0,O,[8,Oe]]},$7=m[1];return te(u(a[1][1+$9],a),O,$7,F,J7);case 9:var E7=function(Oe){return[0,O,[9,Oe]]},Z7=m[1];return te(u(a[1][1+J9],a),O,Z7,F,E7);case 10:var Q7=function(Oe){return[0,O,[10,Oe]]},ri=m[1];return te(u(a[1][1+W9],a),O,ri,F,Q7);case 11:var ei=function(Oe){return[0,O,[11,Oe]]},ni=m[1];return te(u(a[1][1+K9],a),O,ni,F,ei);case 12:var Wi=function(Oe){return[0,O,[33,Oe]]},tv=m[1];return te(u(a[1][1+Er],a),O,tv,F,Wi);case 13:var uv=function(Oe){return[0,O,[13,Oe]]},Ji=m[1];return te(u(a[1][1+vb],a),O,Ji,F,uv);case 14:var iv=function(Oe){return[0,O,[14,Oe]]},Gb=m[1];return te(u(a[1][1+z9],a),O,Gb,F,iv);case 15:var Mb=function(Oe){return[0,O,[15,Oe]]},Bb=m[1];return te(u(a[1][1+V9],a),O,Bb,F,Mb);case 16:var qb=function(Oe){return[0,O,[16,Oe]]},Ub=m[1];return te(u(a[1][1+ab],a),O,Ub,F,qb);case 17:var Hb=function(Oe){return[0,O,[17,Oe]]},Xb=m[1];return te(u(a[1][1+B9],a),O,Xb,F,Hb);case 18:var Yb=function(Oe){return[0,O,[18,Oe]]},Vb=m[1];return te(u(a[1][1+c2],a),O,Vb,F,Yb);case 19:var zb=function(Oe){return[0,O,[19,Oe]]},Kb=m[1];return te(u(a[1][1+Xs],a),O,Kb,F,zb);case 20:var Wb=function(Oe){return[0,O,[20,Oe]]},Jb=m[1];return te(u(a[1][1+dt],a),O,Jb,F,Wb);case 21:var $b=function(Oe){return[0,O,[21,Oe]]},Zb=m[1];return te(u(a[1][1+Au],a),O,Zb,F,$b);case 22:var Qb=function(Oe){return[0,O,[22,Oe]]},r4=m[1];return te(u(a[1][1+ln],a),O,r4,F,Qb);case 23:var e4=function(Oe){return[0,O,[23,Oe]]},n4=m[1];return te(u(a[1][1+wn],a),O,n4,F,e4);case 24:var t4=function(Oe){return[0,O,[24,Oe]]},u4=m[1];return te(u(a[1][1+Ct],a),O,u4,F,t4);case 25:var i4=function(Oe){return[0,O,[25,Oe]]},f4=m[1];return te(u(a[1][1+qt],a),O,f4,F,i4);case 26:var x4=function(Oe){return[0,O,[26,Oe]]},o4=m[1];return te(u(a[1][1+Cn],a),O,o4,F,x4);case 27:var Ze=function(Oe){return[0,O,[27,Oe]]},AR=m[1];return te(u(a[1][1+ir],a),O,AR,F,Ze);case 28:var NR=function(Oe){return[0,O,[28,Oe]]},CR=m[1];return te(u(a[1][1+Jr],a),O,CR,F,NR);case 29:var PR=function(Oe){return[0,O,[29,Oe]]},DR=m[1];return te(u(a[1][1+or],a),O,DR,F,PR);case 30:var LR=function(Oe){return[0,O,[30,Oe]]},RR=m[1];return te(u(a[1][1+E0],a),O,RR,F,LR);case 31:var Ue=function(Oe){return[0,O,[31,Oe]]},d7e=m[1];return te(u(a[1][1+w0],a),O,d7e,F,Ue);case 32:var k7e=function(Oe){return[0,O,[32,Oe]]},w7e=m[1];return te(u(a[1][1+c0],a),O,w7e,F,k7e);case 33:var E7e=function(Oe){return[0,O,[33,Oe]]},S7e=m[1];return te(u(a[1][1+Er],a),O,S7e,F,E7e);case 34:var g7e=function(Oe){return[0,O,[34,Oe]]},F7e=m[1];return te(u(a[1][1+T],a),O,F7e,F,g7e);case 35:var T7e=function(Oe){return[0,O,[35,Oe]]},O7e=m[1];return te(u(a[1][1+x],a),O,O7e,F,T7e);default:var I7e=function(Oe){return[0,O,[36,Oe]]},A7e=m[1];return te(u(a[1][1+i],a),O,A7e,F,I7e)}}return jN(t,[0,qL,function(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_0],a,$),j0=o(a[1][1+s0],a,H),V0=Un(u(a[1][1+Y1],a),O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,V0]]},Or,h7e,Y1,y7e,s0,_7e,ze,hr,hr,m7e,nn,p7e,y2,b7e,a_,l7e,o_,v7e,_2,s7e,x_,c7e,zi,a7e,Js,o7e,kb,x7e,Ws,f7e,$0,i7e,b2,u7e,i_,t7e,u_,n7e,z1,e7e,V1,r7e,e_,Que,ds,Zue,Yc,$ue,hb,Jue,n_,Wue,db,Kue,Ks,zue,l2,Vue,r_,Yue,Xc,Xue,yb,Hue,_b,Uue,Q9,que,Gn,Bue,mb,Mue,pb,Gue,bb,jue,v2,Rue,X1,Lue,Z9,Due,lb,Pue,$9,Cue,J9,Nue,W9,Aue,K9,Iue,vb,Oue,z9,Tue,V9,Fue,ab,gue,Y9,Sue,sb,Eue,X9,wue,U9,kue,zs,due,vi,hue,cb,yue,H9,_ue,s2,mue,H1,pue,B9,bue,M9,lue,c2,vue,Vs,sue,q9,cue,si,aue,Xs,oue,Ys,xue,Au,fue,hs,iue,Hs,uue,ln,tue,xn,nue,it,eue,dt,rue,ut,Qte,Ti,Zte,D0,$te,Ut,Jte,Hc,Wte,a7,Kte,Q0,zte,$r,Vte,Br,Yte,Mr,Xte,ne,Hte,jr,Ute,ge,qte,ce,Bte,q0,Mte,qr,Gte,_n,jte,K7,Rte,Bu,Lte,Y,Dte,s,Pte,c,Cte,e0,Nte,V,Ate,f0,Ite,ou,Ote,Fn,Tte,vr,Fte,Lr,gte,_,Ste,p2,Ete,f_,wte,k,kte,G,dte,K,hte,M,yte,S,_te,A,mte,o0,pte,Zs,bte,d,lte,en,vte,t0,ste,l,cte,x0,ate,wn,ote,Zn,xte,me,fte,jn,ite,B0,ute,W7,tte,He,nte,ft,ete,xt,rte,he,Qne,Yi,Zne,lt,$ne,k0,Jne,m0,Wne,Vc,Kne,Hn,zne,Cn,Vne,ar,Yne,On,Xne,Ft,Hne,du,Une,Wu,qne,Ct,Bne,qt,Mne,vt,Gne,gt,jne,Zt,Rne,Nt,Lne,Ge,Dne,Kr,Pne,mr,Cne,Me,Nne,Cr,Ane,Sr,Ine,Je,One,Ne,Tne,vn,Fne,kn,gne,rn,Sne,cn,IR,Ae,jb,an,Rb,We,nv,re,Lb,F0,ev,Ie,Ki,ve,w7,xe,Ii,Re,wu,sr,ku,Ur,OR,Pr,TR,K0,Db,h0,FR,ir,gR,J0,Pb,X0,SR,u0,ER,yr,wR,I0,E2,y0,kR,D,y_,P0,dR,U,hR,I,Cb,Fr,yR,Qr,__,oe,_R,be,mR,ae,Nb,pe,pR,Er,bR,Le,lR,p,Ab,t_,m_,Vi,vR,Tt,p_,$s,Ib,m2,b_,er,sR,L0,l_,rr,cR,T0,Ob,S0,v_,Q,Tb,L,rv,i0,aR,l0,oR,v0,s_,P,Mn,fe,xR,M0,Fb,O0,fR,b0,gb,p0,iR,Z,Sb,K1,uR,B,Q1,Ir,tR,_r,w2,bt,nR,Jr,k2,Wr,eR,_0,c_,Tr,rR,Hr,QL,Rr,d2,fr,ZL,W0,$L,or,Eb,Ar,JL,X,wb,R0,WL,b,Z1,U0,KL,E0,$1,w0,zL,g0,h2,w,VL,E,YL,T,Oi,y,XL,x,J1,i,HL,c0,W1,e,UL]),function(a,F){return jp(F,t)}});function X00(t){switch(t[0]){case 0:return 1;case 3:return 3;default:return 2}}function Y00(t,n){u(f(t),O6r),o(f(t),A6r,I6r);var e=n[1];o(f(t),N6r,e),u(f(t),C6r),u(f(t),P6r),o(f(t),L6r,D6r);var i=n[2];return o(f(t),R6r,i),u(f(t),j6r),u(f(t),G6r)}var V00=function t(n,e){return t.fun(n,e)},Fee=function t(n){return t.fun(n)};N(V00,function(t,n){u(f(t),B6r),o(f(t),U6r,q6r);var e=n[1];if(e){g(t,H6r);var i=e[1];switch(i[0]){case 0:u(f(t),m6r);var x=i[1];o(f(t),_6r,x),u(f(t),y6r);break;case 1:u(f(t),h6r);var c=i[1];o(f(t),d6r,c),u(f(t),k6r);break;case 2:u(f(t),w6r);var s=i[1];o(f(t),E6r,s),u(f(t),S6r);break;default:u(f(t),g6r);var p=i[1];o(f(t),F6r,p),u(f(t),T6r)}g(t,X6r)}else g(t,Y6r);return u(f(t),V6r),u(f(t),z6r),o(f(t),W6r,K6r),Y00(t,n[2]),u(f(t),J6r),u(f(t),$6r),o(f(t),Q6r,Z6r),Y00(t,n[3]),u(f(t),rpr),u(f(t),epr)}),N(Fee,function(t){return o(C0(M6r),V00,t)});function yt(t,n){return[0,t[1],t[2],n[3]]}function ps(t,n){var e=t[1]-n[1]|0;return e===0?t[2]-n[2]|0:e}function z00(t,n){var e=n[1],i=t[1];if(i)if(e)var x=e[1],c=i[1],s=X00(x),p=X00(c)-s|0,T=p===0?Ee(c[1],x[1]):p;else var T=-1;else var y=e&&1,T=y;if(T===0){var E=ps(t[2],n[2]);return E===0?ps(t[3],n[3]):E}return T}function Wv(t,n){return z00(t,n)===0?1:0}var WD=function t(n,e,i){return t.fun(n,e,i)},Tee=Rp(upr,function(t){var n=NN(t,tpr)[35],e=LN(t,0,0,npr,KD,1)[1];return zz(t,n,function(i,x){return 0}),function(i,x){var c=jp(x,t);return u(e,c),RN(x,c,t)}});N(WD,function(t,n,e){var i=e[2];switch(i[0]){case 0:var x=i[1][1];return le(function(s,p){var y=p[0]===0?p[1][2][2]:p[1][2][1];return ur(WD,t,s,y)},n,x);case 1:var c=i[1][1];return le(function(s,p){return p[0]===2?s:ur(WD,t,s,p[1][2][1])},n,c);case 2:return o(t,n,i[1][1]);default:return n}});function Rc(t,n){return[0,n[1],[0,n[2],t]]}function K00(t,n,e){var i=t&&t[1],x=n&&n[1];return[0,i,x,e]}function lr(t,n,e){var i=t&&t[1],x=n&&n[1];return!i&&!x?x:[0,K00([0,i],[0,x],0)]}function yu(t,n,e,i){var x=t&&t[1],c=n&&n[1];return!x&&!c&&!e?e:[0,K00([0,x],[0,c],e)]}function y7(t,n){if(t){if(n){var e=n[1],i=t[1],x=[0,on(i[2],e[2])];return lr([0,on(e[1],i[1])],x,0)}var c=t}else var c=n;return c}function JD(t,n){if(n){if(t){var e=n[1],i=t[1],x=i[3],c=[0,on(i[2],e[2])];return yu([0,on(e[1],i[1])],c,x,0)}var s=n[1];return yu([0,s[1]],[0,s[2]],0,0)}return t}function Jv(t,n){for(var e=t,i=n;;){if(typeof e==\"number\")return i;if(e[0]===0)return[0,e[1],0,i];var x=[0,e[2],e[4],i],e=e[3],i=x}}function W00(t,n){if(t)var e=Jv(t[2],t[3]),i=function(c){return W00(e,c)},x=[0,t[1],i];else var x=t;return x}function Oee(t){var n=Jv(t,0);return function(e){return W00(n,e)}}function ms(t){return typeof t==\"number\"?0:t[0]===0?1:t[1]}function Iee(t){return[0,t]}function Y7(t,n,e){var i=0;if(typeof t==\"number\"){if(typeof e==\"number\")return[0,n];e[0]===1&&(i=1)}else if(t[0]===0)typeof e!=\"number\"&&e[0]===1&&(i=1);else{var x=t[1];if(typeof e!=\"number\"&&e[0]===1){var c=e[1],s=c<=x?x+1|0:c+1|0;return[1,s,n,t,e]}var p=x;i=2}switch(i){case 1:var p=e[1];break;case 0:return[1,2,n,t,e]}return[1,p+1|0,n,t,e]}function Ns(t,n,e){var i=ms(t),x=ms(e),c=x<=i?i+1|0:x+1|0;return[1,c,n,t,e]}function $D(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=$D(t,i),c=u(t,0),s=$D(t,(n-i|0)-1|0);return[1,ms(x)+1|0,c,x,s]}var p=[0,u(t,0)]}else var p=e;return p}function ki(t,n,e){var i=ms(t),x=ms(e);if((x+2|0)>1,b0=R0(p0,W0),O0=b0[1],M0=R0(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0<=jr){var yr=Er,vr=[0,Mr,vr];continue}var er=Br,vr=[0,qr,vr];continue}var $r=Lc(er,vr)}else var $r=Lc(yr,vr);return[0,$r,$0]}},R0=function(or,W0){if(or===2){if(W0){var Lr=W0[2];if(Lr){var Tr=Lr[1],Hr=W0[1],Or=Lr[2],fr=o(U0,Hr,Tr),Rr=fr===0?[0,Hr,0]:0<=fr?[0,Tr,[0,Hr,0]]:[0,Hr,[0,Tr,0]];return[0,Rr,Or]}}}else if(or===3&&W0){var Wr=W0[2];if(Wr){var Jr=Wr[2];if(Jr){var ar=Jr[1],_r=Wr[1],Ir=W0[1],fe=Jr[2],v0=o(U0,Ir,_r);if(v0===0)var P=o(U0,_r,ar),L=P===0?[0,_r,0]:0<=P?[0,ar,[0,_r,0]]:[0,_r,[0,ar,0]],Q=L;else if(0<=v0){var i0=o(U0,Ir,ar);if(i0===0)var T0=[0,_r,[0,Ir,0]];else if(0<=i0)var l0=o(U0,_r,ar),S0=l0===0?[0,_r,[0,Ir,0]]:0<=l0?[0,ar,[0,_r,[0,Ir,0]]]:[0,_r,[0,ar,[0,Ir,0]]],T0=S0;else var T0=[0,_r,[0,Ir,[0,ar,0]]];var Q=T0}else{var rr=o(U0,_r,ar);if(rr===0)var Z=[0,Ir,[0,_r,0]];else if(0<=rr)var L0=o(U0,Ir,ar),B=L0===0?[0,Ir,[0,_r,0]]:0<=L0?[0,ar,[0,Ir,[0,_r,0]]]:[0,Ir,[0,ar,[0,_r,0]]],Z=B;else var Z=[0,Ir,[0,_r,[0,ar,0]]];var Q=Z}return[0,Q,fe]}}}for(var p0=or>>1,b0=b(p0,W0),O0=b0[1],M0=b(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0>>0))switch(or){case 0:return[0,0,W0];case 1:if(W0)return[0,[0,W0[1]],W0[2]];break;case 2:if(W0){var Lr=W0[2];if(Lr)return[0,[1,2,Lr[1],[0,W0[1]],0],Lr[2]]}break;default:if(W0){var Tr=W0[2];if(Tr){var Hr=Tr[2];if(Hr)return[0,[1,2,Tr[1],[0,W0[1]],[0,Hr[1]]],Hr[2]]}}}var Or=or/2|0,fr=hr(Or,W0),Rr=fr[2];if(Rr){var Wr=hr((or-Or|0)-1|0,Rr[2]),Jr=Wr[2];return[0,Ns(fr[1],Rr[1],Wr[1]),Jr]}throw[0,Sn,Kpr]};return hr(Dc(s0),s0)[1]}var Ar=n(E0,n(w0,n(t0,[0,l])));return n(_0[1],Ar)}return n(E0,n(w0,n(t0,[0,l])))}return n(w0,n(t0,[0,l]))}return n(t0,[0,l])}return[0,l]}return st}return[0,st,rL,i,n,Iee,x,c,s,y,T,E,d,w,G,k0,A,S,M,K,V,QD,er0,Pl,Z00,Q00,Aee,Pl,Z00,f0,m0,Oee,g0,function(e0,x0,l){u(f(x0),Xpr);var c0=er0(l);c0&&u(f(x0),Ypr);var t0=0;return le(function(o0,w0){return o0&&u(f(x0),Hpr),o(e0,x0,w0),1},t0,c0),c0&&u(f(x0),Vpr),u(f(x0),zpr)},$D]}var nr0=Wpr.slice();function nL(t){for(var n=0,e=nr0.length-1-1|0;;){if(e>>18|0),Jn(i,x+1|0,jt|(p>>>12|0)&63),Jn(i,x+2|0,jt|(p>>>6|0)&63),Jn(i,x+3|0,jt|p&63);var y=x+4|0}else{Jn(i,x,hv|p>>>12|0),Jn(i,x+1|0,jt|(p>>>6|0)&63),Jn(i,x+2|0,jt|p&63);var y=x+3|0}else{Jn(i,x,rt|p>>>6|0),Jn(i,x+1|0,jt|p&63);var y=x+2|0}else{Jn(i,x,p);var y=x+1|0}var x=y,c=c-1|0,s=s+1|0;continue}throw I1}return x}}function pr0(t){for(var n=un(t),e=Gv(n,0),i=0,x=0;;){if(x>>6|0)!==2?1:0;if(E)var w=E;else var d=(y>>>6|0)!==2?1:0,w=d||((T>>>6|0)!==2?1:0);if(w)throw I1;e[1+i]=(c&7)<<18|(p&63)<<12|(y&63)<<6|T&63;var G=x+4|0}else if(hv<=c){var A=Vr(t,x+1|0),S=Vr(t,x+2|0),M=(c&15)<<12|(A&63)<<6|S&63,K=(A>>>6|0)!==2?1:0,V=K||((S>>>6|0)!==2?1:0);if(V)var m0=V;else var f0=55296<=M?1:0,m0=f0&&(M<=57088?1:0);if(m0)throw I1;e[1+i]=M;var G=x+3|0}else{var k0=Vr(t,x+1|0);if((k0>>>6|0)!==2)throw I1;e[1+i]=(c&31)<<6|k0&63;var G=x+2|0}else if(jt<=c)s=1;else{e[1+i]=c;var G=x+1|0}if(s)throw I1;var i=i+1|0,x=G;continue}return[0,e,i,lr0,vr0,sr0,cr0,ar0,or0,xr0,fr0,ir0,ur0]}}function jl(t,n,e){var i=t[6]+n|0,x=Lt(e*4|0),c=t[1];if((i+e|0)<=c.length-1)return qv(x,0,Rl(c,i,e,x));throw[0,Sn,r_r]}function Se(t){var n=t[6],e=t[3]-n|0,i=Lt(e*4|0);return qv(i,0,Rl(t[1],n,e,i))}function Gl(t,n){var e=t[6],i=t[3]-e|0,x=Lt(i*4|0);return sN(n,x,0,Rl(t[1],e,i,x))}function uL(t){var n=t.length-1,e=Lt(n*4|0);return qv(e,0,Rl(t,0,n,e))}function mr0(t,n){return t[3]=t[3]-n|0,0}var _r0=0;function Cee(t,n,e){return[0,t,n,n_r,0,e,_r0,t_r]}function yr0(t){var n=t[2];return[0,t[1],[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12]],t[3],t[4],t[5],t[6],t[7]]}function hr0(t){return t[3][1]}function $m(t,n){return t!==n[4]?[0,n[1],n[2],n[3],t,n[5],n[6],n[7]]:n}var iL=function t(n,e){return t.fun(n,e)},dr0=function t(n,e){return t.fun(n,e)},fL=function t(n,e){return t.fun(n,e)},xL=function t(n,e){return t.fun(n,e)},kr0=function t(n,e){return t.fun(n,e)};N(iL,function(t,n){if(typeof t==\"number\"){var e=t;if(61<=e)if(92<=e)switch(e){case 92:if(typeof n==\"number\"&&n===92)return 1;break;case 93:if(typeof n==\"number\"&&n===93)return 1;break;case 94:if(typeof n==\"number\"&&n===94)return 1;break;case 95:if(typeof n==\"number\"&&n===95)return 1;break;case 96:if(typeof n==\"number\"&&n===96)return 1;break;case 97:if(typeof n==\"number\"&&n===97)return 1;break;case 98:if(typeof n==\"number\"&&n===98)return 1;break;case 99:if(typeof n==\"number\"&&n===99)return 1;break;case 100:if(typeof n==\"number\"&&ti===n)return 1;break;case 101:if(typeof n==\"number\"&&R7===n)return 1;break;case 102:if(typeof n==\"number\"&&Ri===n)return 1;break;case 103:if(typeof n==\"number\"&&s7===n)return 1;break;case 104:if(typeof n==\"number\"&&L7===n)return 1;break;case 105:if(typeof n==\"number\"&&j7===n)return 1;break;case 106:if(typeof n==\"number\"&&Yt===n)return 1;break;case 107:if(typeof n==\"number\"&&Zc===n)return 1;break;case 108:if(typeof n==\"number\"&&is===n)return 1;break;case 109:if(typeof n==\"number\"&&Fv===n)return 1;break;case 110:if(typeof n==\"number\"&&Xt===n)return 1;break;case 111:if(typeof n==\"number\"&&cf===n)return 1;break;case 112:if(typeof n==\"number\"&&T7===n)return 1;break;case 113:if(typeof n==\"number\"&&Pn===n)return 1;break;case 114:if(typeof n==\"number\"&&t1===n)return 1;break;case 115:if(typeof n==\"number\"&&Av===n)return 1;break;case 116:if(typeof n==\"number\"&&f1===n)return 1;break;case 117:if(typeof n==\"number\"&&A2===n)return 1;break;case 118:if(typeof n==\"number\"&&z2===n)return 1;break;case 119:if(typeof n==\"number\"&&Sv===n)return 1;break;case 120:if(typeof n==\"number\"&&uc===n)return 1;break;default:if(typeof n==\"number\"&&tl<=n)return 1}else switch(e){case 61:if(typeof n==\"number\"&&n===61)return 1;break;case 62:if(typeof n==\"number\"&&n===62)return 1;break;case 63:if(typeof n==\"number\"&&n===63)return 1;break;case 64:if(typeof n==\"number\"&&n===64)return 1;break;case 65:if(typeof n==\"number\"&&n===65)return 1;break;case 66:if(typeof n==\"number\"&&n===66)return 1;break;case 67:if(typeof n==\"number\"&&n===67)return 1;break;case 68:if(typeof n==\"number\"&&n===68)return 1;break;case 69:if(typeof n==\"number\"&&n===69)return 1;break;case 70:if(typeof n==\"number\"&&n===70)return 1;break;case 71:if(typeof n==\"number\"&&n===71)return 1;break;case 72:if(typeof n==\"number\"&&n===72)return 1;break;case 73:if(typeof n==\"number\"&&n===73)return 1;break;case 74:if(typeof n==\"number\"&&n===74)return 1;break;case 75:if(typeof n==\"number\"&&n===75)return 1;break;case 76:if(typeof n==\"number\"&&n===76)return 1;break;case 77:if(typeof n==\"number\"&&n===77)return 1;break;case 78:if(typeof n==\"number\"&&n===78)return 1;break;case 79:if(typeof n==\"number\"&&n===79)return 1;break;case 80:if(typeof n==\"number\"&&n===80)return 1;break;case 81:if(typeof n==\"number\"&&n===81)return 1;break;case 82:if(typeof n==\"number\"&&n===82)return 1;break;case 83:if(typeof n==\"number\"&&n===83)return 1;break;case 84:if(typeof n==\"number\"&&n===84)return 1;break;case 85:if(typeof n==\"number\"&&n===85)return 1;break;case 86:if(typeof n==\"number\"&&n===86)return 1;break;case 87:if(typeof n==\"number\"&&n===87)return 1;break;case 88:if(typeof n==\"number\"&&n===88)return 1;break;case 89:if(typeof n==\"number\"&&n===89)return 1;break;case 90:if(typeof n==\"number\"&&n===90)return 1;break;default:if(typeof n==\"number\"&&n===91)return 1}else if(31<=e)switch(e){case 31:if(typeof n==\"number\"&&n===31)return 1;break;case 32:if(typeof n==\"number\"&&n===32)return 1;break;case 33:if(typeof n==\"number\"&&n===33)return 1;break;case 34:if(typeof n==\"number\"&&n===34)return 1;break;case 35:if(typeof n==\"number\"&&n===35)return 1;break;case 36:if(typeof n==\"number\"&&n===36)return 1;break;case 37:if(typeof n==\"number\"&&n===37)return 1;break;case 38:if(typeof n==\"number\"&&n===38)return 1;break;case 39:if(typeof n==\"number\"&&n===39)return 1;break;case 40:if(typeof n==\"number\"&&n===40)return 1;break;case 41:if(typeof n==\"number\"&&n===41)return 1;break;case 42:if(typeof n==\"number\"&&n===42)return 1;break;case 43:if(typeof n==\"number\"&&n===43)return 1;break;case 44:if(typeof n==\"number\"&&n===44)return 1;break;case 45:if(typeof n==\"number\"&&n===45)return 1;break;case 46:if(typeof n==\"number\"&&n===46)return 1;break;case 47:if(typeof n==\"number\"&&n===47)return 1;break;case 48:if(typeof n==\"number\"&&n===48)return 1;break;case 49:if(typeof n==\"number\"&&n===49)return 1;break;case 50:if(typeof n==\"number\"&&n===50)return 1;break;case 51:if(typeof n==\"number\"&&n===51)return 1;break;case 52:if(typeof n==\"number\"&&n===52)return 1;break;case 53:if(typeof n==\"number\"&&n===53)return 1;break;case 54:if(typeof n==\"number\"&&n===54)return 1;break;case 55:if(typeof n==\"number\"&&n===55)return 1;break;case 56:if(typeof n==\"number\"&&n===56)return 1;break;case 57:if(typeof n==\"number\"&&n===57)return 1;break;case 58:if(typeof n==\"number\"&&n===58)return 1;break;case 59:if(typeof n==\"number\"&&n===59)return 1;break;default:if(typeof n==\"number\"&&n===60)return 1}else switch(e){case 0:if(typeof n==\"number\"&&!n)return 1;break;case 1:if(typeof n==\"number\"&&n===1)return 1;break;case 2:if(typeof n==\"number\"&&n===2)return 1;break;case 3:if(typeof n==\"number\"&&n===3)return 1;break;case 4:if(typeof n==\"number\"&&n===4)return 1;break;case 5:if(typeof n==\"number\"&&n===5)return 1;break;case 6:if(typeof n==\"number\"&&n===6)return 1;break;case 7:if(typeof n==\"number\"&&n===7)return 1;break;case 8:if(typeof n==\"number\"&&n===8)return 1;break;case 9:if(typeof n==\"number\"&&n===9)return 1;break;case 10:if(typeof n==\"number\"&&n===10)return 1;break;case 11:if(typeof n==\"number\"&&n===11)return 1;break;case 12:if(typeof n==\"number\"&&n===12)return 1;break;case 13:if(typeof n==\"number\"&&n===13)return 1;break;case 14:if(typeof n==\"number\"&&n===14)return 1;break;case 15:if(typeof n==\"number\"&&n===15)return 1;break;case 16:if(typeof n==\"number\"&&n===16)return 1;break;case 17:if(typeof n==\"number\"&&n===17)return 1;break;case 18:if(typeof n==\"number\"&&n===18)return 1;break;case 19:if(typeof n==\"number\"&&n===19)return 1;break;case 20:if(typeof n==\"number\"&&n===20)return 1;break;case 21:if(typeof n==\"number\"&&n===21)return 1;break;case 22:if(typeof n==\"number\"&&n===22)return 1;break;case 23:if(typeof n==\"number\"&&n===23)return 1;break;case 24:if(typeof n==\"number\"&&n===24)return 1;break;case 25:if(typeof n==\"number\"&&n===25)return 1;break;case 26:if(typeof n==\"number\"&&n===26)return 1;break;case 27:if(typeof n==\"number\"&&n===27)return 1;break;case 28:if(typeof n==\"number\"&&n===28)return 1;break;case 29:if(typeof n==\"number\"&&n===29)return 1;break;default:if(typeof n==\"number\"&&n===30)return 1}}else switch(t[0]){case 0:if(typeof n!=\"number\"&&n[0]===0){var i=n[1],x=u(u(fL,t[1]),i),c=x&&qn(t[2],n[2]);return c}break;case 1:if(typeof n!=\"number\"&&n[0]===1){var s=n[1],p=u(u(xL,t[1]),s),y=p&&qn(t[2],n[2]);return y}break;case 2:if(typeof n!=\"number\"&&n[0]===2){var T=n[1],E=t[1],d=Wv(E[1],T[1]),w=d&&qn(E[2],T[2]),G=w&&qn(E[3],T[3]),A=G&&(E[4]===T[4]?1:0);return A}break;case 3:if(typeof n!=\"number\"&&n[0]===3){var S=n[1],M=t[1],K=Wv(M[1],S[1]);if(K)var V=S[2],f0=u(u(kr0,M[2]),V);else var f0=K;var m0=f0&&(M[3]===S[3]?1:0);return m0}break;case 4:if(typeof n!=\"number\"&&n[0]===4){var k0=Wv(t[1],n[1]),g0=k0&&qn(t[2],n[2]),e0=g0&&qn(t[3],n[3]);return e0}break;case 5:if(typeof n!=\"number\"&&n[0]===5){var x0=Wv(t[1],n[1]),l=x0&&qn(t[2],n[2]),c0=l&&qn(t[3],n[3]);return c0}break;case 6:if(typeof n!=\"number\"&&n[0]===6)return qn(t[1],n[1]);break;case 7:if(typeof n!=\"number\"&&n[0]===7){var t0=qn(t[1],n[1]);return t0&&Wv(t[2],n[2])}break;case 8:if(typeof n!=\"number\"&&n[0]===8){var o0=Wv(t[1],n[1]),w0=o0&&qn(t[2],n[2]),_0=w0&&qn(t[3],n[3]);return _0}break;case 9:if(typeof n!=\"number\"&&n[0]===9){var E0=n[1];return u(u(dr0,t[1]),E0)}break;case 10:if(typeof n!=\"number\"&&n[0]===10){var U0=n[1],b=u(u(fL,t[1]),U0),R0=b&&(t[2]==n[2]?1:0),X=R0&&qn(t[3],n[3]);return X}break;default:if(typeof n!=\"number\"&&n[0]===11){var s0=n[1],hr=u(u(xL,t[1]),s0),Ar=hr&&(t[2]==n[2]?1:0),or=Ar&&qn(t[3],n[3]);return or}}return 0}),N(dr0,function(t,n){if(t){if(n)return 1}else if(!n)return 1;return 0}),N(fL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;case 2:if(n===2)return 1;break;case 3:if(n===3)return 1;break;default:if(4<=n)return 1}return 0}),N(xL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;default:if(2<=n)return 1}return 0}),N(kr0,function(t,n){var e=qn(t[1],n[1]),i=e&&qn(t[2],n[2]),x=i&&qn(t[3],n[3]);return x});function wr0(t){if(typeof t==\"number\"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return Ekr;case 93:return Skr;case 94:return gkr;case 95:return Fkr;case 96:return Tkr;case 97:return Okr;case 98:return Ikr;case 99:return Akr;case 100:return Nkr;case 101:return Ckr;case 102:return Pkr;case 103:return Dkr;case 104:return Lkr;case 105:return Rkr;case 106:return jkr;case 107:return Gkr;case 108:return Mkr;case 109:return Bkr;case 110:return qkr;case 111:return Ukr;case 112:return Hkr;case 113:return Xkr;case 114:return Ykr;case 115:return Vkr;case 116:return zkr;case 117:return Kkr;case 118:return Wkr;case 119:return Jkr;case 120:return $kr;default:return Zkr}switch(n){case 61:return Vdr;case 62:return zdr;case 63:return Kdr;case 64:return Wdr;case 65:return Jdr;case 66:return $dr;case 67:return Zdr;case 68:return Qdr;case 69:return rkr;case 70:return ekr;case 71:return nkr;case 72:return tkr;case 73:return ukr;case 74:return ikr;case 75:return fkr;case 76:return xkr;case 77:return okr;case 78:return akr;case 79:return ckr;case 80:return skr;case 81:return vkr;case 82:return lkr;case 83:return bkr;case 84:return pkr;case 85:return mkr;case 86:return _kr;case 87:return ykr;case 88:return hkr;case 89:return dkr;case 90:return kkr;default:return wkr}}if(31<=n)switch(n){case 31:return mdr;case 32:return _dr;case 33:return ydr;case 34:return hdr;case 35:return ddr;case 36:return kdr;case 37:return wdr;case 38:return Edr;case 39:return Sdr;case 40:return gdr;case 41:return Fdr;case 42:return Tdr;case 43:return Odr;case 44:return Idr;case 45:return Adr;case 46:return Ndr;case 47:return Cdr;case 48:return Pdr;case 49:return Ddr;case 50:return Ldr;case 51:return Rdr;case 52:return jdr;case 53:return Gdr;case 54:return Mdr;case 55:return Bdr;case 56:return qdr;case 57:return Udr;case 58:return Hdr;case 59:return Xdr;default:return Ydr}switch(n){case 0:return Mhr;case 1:return Bhr;case 2:return qhr;case 3:return Uhr;case 4:return Hhr;case 5:return Xhr;case 6:return Yhr;case 7:return Vhr;case 8:return zhr;case 9:return Khr;case 10:return Whr;case 11:return Jhr;case 12:return $hr;case 13:return Zhr;case 14:return Qhr;case 15:return rdr;case 16:return edr;case 17:return ndr;case 18:return tdr;case 19:return udr;case 20:return idr;case 21:return fdr;case 22:return xdr;case 23:return odr;case 24:return adr;case 25:return cdr;case 26:return sdr;case 27:return vdr;case 28:return ldr;case 29:return bdr;default:return pdr}}else switch(t[0]){case 0:return Qkr;case 1:return rwr;case 2:return ewr;case 3:return nwr;case 4:return twr;case 5:return uwr;case 6:return iwr;case 7:return fwr;case 8:return xwr;case 9:return owr;case 10:return awr;default:return cwr}}function oL(t){if(typeof t==\"number\"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return ihr;case 93:return fhr;case 94:return xhr;case 95:return ohr;case 96:return ahr;case 97:return chr;case 98:return shr;case 99:return vhr;case 100:return lhr;case 101:return bhr;case 102:return phr;case 103:return mhr;case 104:return _hr;case 105:return yhr;case 106:return hhr;case 107:return dhr;case 108:return khr;case 109:return whr;case 110:return Ehr;case 111:return Shr;case 112:return ghr;case 113:return Fhr;case 114:return Thr;case 115:return Ohr;case 116:return Ihr;case 117:return Ahr;case 118:return Nhr;case 119:return Chr;case 120:return Phr;default:return Dhr}switch(n){case 61:return Oyr;case 62:return Iyr;case 63:return Ayr;case 64:return Nyr;case 65:return Cyr;case 66:return Pyr;case 67:return Dyr;case 68:return Lyr;case 69:return Ryr;case 70:return jyr;case 71:return Gyr;case 72:return Myr;case 73:return Byr;case 74:return qyr;case 75:return Uyr;case 76:return Hyr;case 77:return Xyr;case 78:return Yyr;case 79:return Vyr;case 80:return zyr;case 81:return Kyr;case 82:return Wyr;case 83:return Jyr;case 84:return $yr;case 85:return Zyr;case 86:return Qyr;case 87:return rhr;case 88:return ehr;case 89:return nhr;case 90:return thr;default:return uhr}}if(31<=n)switch(n){case 31:return Z_r;case 32:return Q_r;case 33:return ryr;case 34:return eyr;case 35:return nyr;case 36:return tyr;case 37:return uyr;case 38:return iyr;case 39:return fyr;case 40:return xyr;case 41:return oyr;case 42:return ayr;case 43:return cyr;case 44:return syr;case 45:return vyr;case 46:return lyr;case 47:return byr;case 48:return pyr;case 49:return myr;case 50:return _yr;case 51:return yyr;case 52:return hyr;case 53:return dyr;case 54:return kyr;case 55:return wyr;case 56:return Eyr;case 57:return Syr;case 58:return gyr;case 59:return Fyr;default:return Tyr}switch(n){case 0:return k_r;case 1:return w_r;case 2:return E_r;case 3:return S_r;case 4:return g_r;case 5:return F_r;case 6:return T_r;case 7:return O_r;case 8:return I_r;case 9:return A_r;case 10:return N_r;case 11:return C_r;case 12:return P_r;case 13:return D_r;case 14:return L_r;case 15:return R_r;case 16:return j_r;case 17:return G_r;case 18:return M_r;case 19:return B_r;case 20:return q_r;case 21:return U_r;case 22:return H_r;case 23:return X_r;case 24:return Y_r;case 25:return V_r;case 26:return z_r;case 27:return K_r;case 28:return W_r;case 29:return J_r;default:return $_r}}else switch(t[0]){case 2:return t[1][3];case 3:return t[1][2][3];case 5:var e=Te(Lhr,t[3]);return Te(Rhr,Te(t[2],e));case 9:return t[1]?jhr:Ghr;case 0:case 1:return t[2];case 6:case 7:return t[1];default:return t[3]}}function Ml(t){return u(et(d_r),t)}function aL(t,n){var e=t&&t[1],i=0;if(typeof n==\"number\")if(Pn===n)var x=u_r,c=i_r;else i=1;else switch(n[0]){case 3:var x=f_r,c=x_r;break;case 5:var x=o_r,c=a_r;break;case 6:case 9:i=1;break;case 0:case 10:var x=s_r,c=v_r;break;case 1:case 11:var x=l_r,c=b_r;break;case 2:case 8:var x=p_r,c=m_r;break;default:var x=__r,c=y_r}if(i)var x=c_r,c=Ml(oL(n));return e?Te(x,Te(h_r,c)):c}function cL(t){return 45>>0)var i=q(t);else switch(e){case 0:var i=1;break;case 1:var i=2;break;case 2:var i=0;break;default:if(G0(t,2),Ls(j(t))===0){var x=L1(j(t));if(x===0)if(Nn(j(t))===0&&Nn(j(t))===0)var c=Nn(j(t))!==0?1:0,i=c&&q(t);else var i=q(t);else if(x===1&&Nn(j(t))===0)for(;;){var s=A1(j(t));if(s!==0){var p=s!==1?1:0,i=p&&q(t);break}}else var i=q(t)}else var i=q(t)}if(2>>0)throw[0,Sn,swr];switch(i){case 0:continue;case 1:return 1;default:if(nL(br0(t)))continue;return mr0(t,1),0}}}function S9(t,n){var e=n-t[3][2]|0;return[0,hr0(t),e]}function Hl(t,n,e){var i=S9(t,e),x=S9(t,n);return[0,t[1],x,i]}function ju(t,n){return S9(t,n[6])}function h7(t,n){return S9(t,n[3])}function nt(t,n){return Hl(t,n[6],n[3])}function Xr0(t,n){var e=0;if(typeof n==\"number\")e=1;else switch(n[0]){case 2:var i=n[1][1];break;case 3:return n[1][1];case 4:var i=n[1];break;case 7:var i=n[2];break;case 5:case 8:return n[1];default:e=1}return e?nt(t,t[2]):i}function Gu(t,n,e){return[0,t[1],t[2],t[3],t[4],t[5],[0,[0,n,e],t[6]],t[7]]}function Yr0(t,n,e){return Gu(t,n,[10,Ml(e)])}function bL(t,n,e,i){return Gu(t,n,[12,e,i])}function Ei(t,n){return Gu(t,n,GDr)}function d7(t,n){var e=n[3],i=[0,hr0(t)+1|0,e];return[0,t[1],t[2],i,t[4],t[5],t[6],t[7]]}function Vr0(t){var n=un(t);return n!==0&&Xt===It(t,n-1|0)?m7(t,0,n-1|0):t}function Si(t,n,e,i,x){var c=[0,t[1],n,e],s=Mt(i),p=x?0:1;return[0,c,[0,p,s,t[7][3][1]>>0)var y=q(i);else switch(p){case 0:var y=2;break;case 1:for(;;){G0(i,3);var T=j(i);if(-1>>0)return ke(IDr);switch(y){case 0:var S=Kr0(c,e,i,2,0),M=S[1],K=Bi(Te(ADr,S[2])),V=0<=K?1:0,f0=V&&(K<=55295?1:0);if(f0)var k0=f0;else var m0=57344<=K?1:0,k0=m0&&(K<=lI?1:0);var g0=k0?zr0(c,M,K):Gu(c,M,37);S1(x,K);var c=g0;continue;case 1:var e0=Kr0(c,e,i,3,1),x0=Bi(Te(NDr,e0[2])),l=zr0(c,e0[1],x0);S1(x,x0);var c=l;continue;case 2:return[0,c,Mt(x)];default:Gl(i,x);continue}}}function Rt(t,n,e){var i=Ei(t,nt(t,n));return $v(n),o(e,i,n)}function R1(t,n,e){for(var i=t;;){gn(e);var x=j(e);if(-1>>0)var p=q(e);else switch(s){case 0:for(;;){G0(e,3);var y=j(e);if(-1>>0){var A=Ei(i,nt(i,e));return[0,A,h7(A,e)]}switch(p){case 0:var S=d7(i,e);Gl(e,n);var i=S;continue;case 1:var M=i[4]?bL(i,nt(i,e),bwr,lwr):i;return[0,M,h7(M,e)];case 2:if(i[4])return[0,i,h7(i,e)];hn(n,pwr);continue;default:Gl(e,n);continue}}}function e2(t,n,e){for(;;){gn(e);var i=j(e),x=13>>0)var c=q(e);else switch(x){case 0:var c=0;break;case 1:for(;;){G0(e,2);var s=j(e);if(-1>>0)return ke(mwr);switch(c){case 0:return[0,t,h7(t,e)];case 1:var T=h7(t,e),E=d7(t,e),d=Jm(e);return[0,E,[0,T[1],T[2]-d|0]];default:Gl(e,n);continue}}}function Jr0(t,n){function e(k0){return G0(k0,3),zu(j(k0))===0?2:q(k0)}gn(n);var i=j(n),x=uc>>0)var c=q(n);else switch(x){case 1:var c=16;break;case 2:var c=15;break;case 3:G0(n,15);var c=xi(j(n))===0?15:q(n);break;case 4:G0(n,4);var c=zu(j(n))===0?e(n):q(n);break;case 5:G0(n,11);var c=zu(j(n))===0?e(n):q(n);break;case 7:var c=5;break;case 8:var c=6;break;case 9:var c=7;break;case 10:var c=8;break;case 11:var c=9;break;case 12:G0(n,14);var s=L1(j(n));if(s===0)var c=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?12:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var c=p===1?13:q(n);break}}else var c=q(n);break;case 13:var c=10;break;case 14:G0(n,14);var c=Nn(j(n))===0&&Nn(j(n))===0?1:q(n);break;default:var c=0}if(16>>0)return ke(pDr);switch(c){case 1:var y=Se(n);return[0,t,y,[0,Bi(Te(mDr,y))],0];case 2:var T=Se(n),E=Bi(Te(_Dr,T));return N4<=E?[0,t,T,[0,E>>>3|0,48+(E&7)|0],1]:[0,t,T,[0,E],1];case 3:var d=Se(n);return[0,t,d,[0,Bi(Te(yDr,d))],1];case 4:return[0,t,hDr,[0,0],0];case 5:return[0,t,dDr,[0,8],0];case 6:return[0,t,kDr,[0,12],0];case 7:return[0,t,wDr,[0,10],0];case 8:return[0,t,EDr,[0,13],0];case 9:return[0,t,SDr,[0,9],0];case 10:return[0,t,gDr,[0,11],0];case 11:var w=Se(n);return[0,t,w,[0,Bi(Te(FDr,w))],1];case 12:var G=Se(n);return[0,t,G,[0,Bi(Te(TDr,m7(G,1,un(G)-1|0)))],0];case 13:var A=Se(n),S=Bi(Te(ODr,m7(A,2,un(A)-3|0))),M=lI>>0)var E=q(c);else switch(T){case 0:var E=3;break;case 1:for(;;){G0(c,4);var d=j(c);if(-1>>0)return ke(_wr);switch(E){case 0:var A=Se(c);if(hn(i,A),qn(n,A))return[0,s,h7(s,c),p];hn(e,A);continue;case 1:hn(i,ywr);var S=Jr0(s,c),M=S[4],K=M||p;hn(i,S[2]);var V=S[3];pz(function(w0){return S1(e,w0)},V);var s=S[1],p=K;continue;case 2:var f0=Se(c);hn(i,f0);var m0=d7(Ei(s,nt(s,c)),c);return hn(e,f0),[0,m0,h7(m0,c),p];case 3:var k0=Se(c);hn(i,k0);var g0=Ei(s,nt(s,c));return hn(e,k0),[0,g0,h7(g0,c),p];default:var e0=c[6],x0=c[3]-e0|0,l=Lt(x0*4|0),c0=Rl(c[1],e0,x0,l);sN(i,l,0,c0),sN(e,l,0,c0);continue}}}function Zr0(t,n,e,i,x){for(var c=t;;){gn(x);var s=j(x),p=96>>0)var y=q(x);else switch(p){case 0:var y=0;break;case 1:for(;;){G0(x,6);var T=j(x);if(-1>>0)return ke(hwr);switch(y){case 0:return[0,Ei(c,nt(c,x)),1];case 1:return qi(i,96),[0,c,1];case 2:return hn(i,dwr),[0,c,0];case 3:qi(e,92),qi(i,92);var A=Jr0(c,x),S=A[2];hn(e,S),hn(i,S);var M=A[3];pz(function(m0){return S1(n,m0)},M);var c=A[1];continue;case 4:hn(e,kwr),hn(i,wwr),hn(n,Ewr);var c=d7(c,x);continue;case 5:var K=Se(x);hn(e,K),hn(i,K),qi(n,10);var c=d7(c,x);continue;default:var V=Se(x);hn(e,V),hn(i,V),hn(n,V);continue}}}function Pee(t,n){function e(B0){for(;;)if(G0(B0,33),dn(j(B0))!==0)return q(B0)}function i(B0){for(;;)if(G0(B0,27),dn(j(B0))!==0)return q(B0)}function x(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),dn(j(B0))!==0)return q(B0)}return D0===1?i(B0):q(B0)}function c(B0){for(;;)if(G0(B0,27),dn(j(B0))!==0)return q(B0)}function s(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),dn(j(B0))!==0)return q(B0)}return D0===1?c(B0):q(B0)}function p(B0){r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,28);var D0=Mc(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return c(B0);case 1:continue;case 2:continue r;default:return s(B0)}}return q(B0)}}function y(B0){G0(B0,33);var D0=Gr0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:var Le=C1(j(B0));if(Le===0)for(;;){G0(B0,28);var He=Qv(j(B0));if(2>>0)return q(B0);switch(He){case 0:return c(B0);case 1:continue;default:return s(B0)}}if(Le===1)for(;;){G0(B0,28);var he=Mc(j(B0));if(3>>0)return q(B0);switch(he){case 0:return c(B0);case 1:continue;case 2:return p(B0);default:return s(B0)}}return q(B0);case 2:for(;;){G0(B0,28);var me=Qv(j(B0));if(2>>0)return q(B0);switch(me){case 0:return i(B0);case 1:continue;default:return x(B0)}}default:for(;;){G0(B0,28);var Zn=Mc(j(B0));if(3>>0)return q(B0);switch(Zn){case 0:return i(B0);case 1:continue;case 2:return p(B0);default:return x(B0)}}}}function T(B0){G0(B0,31);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,29),dn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function E(B0){return G0(B0,3),Ur0(j(B0))===0?3:q(B0)}function d(B0){return m9(j(B0))===0&&v9(j(B0))===0&&Br0(j(B0))===0&&Ar0(j(B0))===0&&Nr0(j(B0))===0&&vL(j(B0))===0&&Bl(j(B0))===0&&m9(j(B0))===0&&Ls(j(B0))===0&&Cr0(j(B0))===0&&Ul(j(B0))===0?3:q(B0)}function w(B0){G0(B0,34);var D0=Or0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Ps(j(B0));if(4>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var He=Ps(j(B0));if(4>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}case 2:return y(B0);default:return T(B0)}}function G(B0){for(;;)if(G0(B0,19),dn(j(B0))!==0)return q(B0)}function A(B0){G0(B0,34);var D0=Qv(j(B0));if(2>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Mc(j(B0));if(3>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var He=Mc(j(B0));if(3>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}default:return T(B0)}}function S(B0){for(;;)if(G0(B0,17),dn(j(B0))!==0)return q(B0)}function M(B0){for(;;)if(G0(B0,17),dn(j(B0))!==0)return q(B0)}function K(B0){for(;;)if(G0(B0,11),dn(j(B0))!==0)return q(B0)}function V(B0){for(;;)if(G0(B0,11),dn(j(B0))!==0)return q(B0)}function f0(B0){for(;;)if(G0(B0,15),dn(j(B0))!==0)return q(B0)}function m0(B0){for(;;)if(G0(B0,15),dn(j(B0))!==0)return q(B0)}function k0(B0){for(;;)if(G0(B0,23),dn(j(B0))!==0)return q(B0)}function g0(B0){for(;;)if(G0(B0,23),dn(j(B0))!==0)return q(B0)}function e0(B0){G0(B0,32);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,30),dn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function x0(B0){r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var D0=Rr0(j(B0));if(4>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:return A(B0);case 2:continue;case 3:continue r;default:return e0(B0)}}return q(B0)}}gn(n);var l=j(n),c0=ef>>0)var t0=q(n);else switch(c0){case 0:var t0=98;break;case 1:var t0=99;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var t0=q(n);break}}else var t0=q(n);break;case 3:var t0=0;break;case 4:G0(n,0);var o0=xi(j(n))!==0?1:0,t0=o0&&q(n);break;case 5:G0(n,88);var t0=Ui(j(n))===0?(G0(n,58),Ui(j(n))===0?54:q(n)):q(n);break;case 6:var t0=7;break;case 7:G0(n,95);var w0=j(n),_0=32>>0)var t0=q(n);else switch(b){case 0:G0(n,83);var t0=Ui(j(n))===0?70:q(n);break;case 1:var t0=4;break;default:var t0=69}break;case 14:G0(n,80);var R0=j(n),X=42>>0)var t0=q(n);else switch(or){case 0:var t0=e(n);break;case 1:continue;case 2:var t0=y(n);break;case 3:r:for(;;){if(pn(j(n))===0)for(;;){G0(n,34);var W0=Ps(j(n));if(4>>0)var Lr=q(n);else switch(W0){case 0:var Lr=e(n);break;case 1:continue;case 2:var Lr=y(n);break;case 3:continue r;default:var Lr=T(n)}break}else var Lr=q(n);var t0=Lr;break}break;default:var t0=T(n)}break}else var t0=q(n);break;case 18:G0(n,93);var Tr=Ir0(j(n));if(2>>0)var t0=q(n);else switch(Tr){case 0:G0(n,2);var Hr=i9(j(n));if(2
>>0)var t0=q(n);else switch(Hr){case 0:for(;;){var Or=i9(j(n));if(2>>0)var t0=q(n);else switch(Or){case 0:continue;case 1:var t0=E(n);break;default:var t0=d(n)}break}break;case 1:var t0=E(n);break;default:var t0=d(n)}break;case 1:var t0=5;break;default:var t0=92}break;case 19:G0(n,34);var fr=lL(j(n));if(8>>0)var t0=q(n);else switch(fr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,20);var Rr=Mr0(j(n));if(4>>0)var t0=q(n);else switch(Rr){case 0:var t0=G(n);break;case 1:var t0=A(n);break;case 2:continue;case 3:for(;;){G0(n,18);var Wr=u9(j(n));if(3>>0)var t0=q(n);else switch(Wr){case 0:var t0=S(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Jr=Bt(j(n));if(Jr===0){for(;;)if(G0(n,17),dn(j(n))!==0){var t0=q(n);break}}else var t0=Jr===1?S(n):q(n)}break}break;default:G0(n,19);var ar=Bt(j(n));if(ar===0){for(;;)if(G0(n,19),dn(j(n))!==0){var t0=q(n);break}}else var t0=ar===1?G(n):q(n)}break}break;case 3:for(;;){G0(n,18);var _r=u9(j(n));if(3<_r>>>0)var t0=q(n);else switch(_r){case 0:var t0=M(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Ir=Bt(j(n));if(Ir===0){for(;;)if(G0(n,17),dn(j(n))!==0){var t0=q(n);break}}else var t0=Ir===1?M(n):q(n)}break}break;case 4:G0(n,33);var fe=Pr0(j(n));if(fe===0)var t0=e(n);else if(fe===1)for(;;){G0(n,12);var v0=k9(j(n));if(3>>0)var t0=q(n);else switch(v0){case 0:var t0=K(n);break;case 1:continue;case 2:r:for(;;){if(Gc(j(n))===0)for(;;){G0(n,12);var P=k9(j(n));if(3

>>0)var Q=q(n);else switch(P){case 0:var Q=V(n);break;case 1:continue;case 2:continue r;default:G0(n,10);var L=Bt(j(n));if(L===0){for(;;)if(G0(n,9),dn(j(n))!==0){var Q=q(n);break}}else var Q=L===1?V(n):q(n)}break}else var Q=q(n);var t0=Q;break}break;default:G0(n,10);var i0=Bt(j(n));if(i0===0){for(;;)if(G0(n,9),dn(j(n))!==0){var t0=q(n);break}}else var t0=i0===1?K(n):q(n)}break}else var t0=q(n);break;case 5:var t0=y(n);break;case 6:G0(n,33);var l0=Dr0(j(n));if(l0===0)var t0=e(n);else if(l0===1)for(;;){G0(n,16);var S0=h9(j(n));if(3>>0)var t0=q(n);else switch(S0){case 0:var t0=f0(n);break;case 1:continue;case 2:r:for(;;){if(zu(j(n))===0)for(;;){G0(n,16);var T0=h9(j(n));if(3>>0)var L0=q(n);else switch(T0){case 0:var L0=m0(n);break;case 1:continue;case 2:continue r;default:G0(n,14);var rr=Bt(j(n));if(rr===0){for(;;)if(G0(n,13),dn(j(n))!==0){var L0=q(n);break}}else var L0=rr===1?m0(n):q(n)}break}else var L0=q(n);var t0=L0;break}break;default:G0(n,14);var B=Bt(j(n));if(B===0){for(;;)if(G0(n,13),dn(j(n))!==0){var t0=q(n);break}}else var t0=B===1?f0(n):q(n)}break}else var t0=q(n);break;case 7:G0(n,33);var Z=Er0(j(n));if(Z===0)var t0=e(n);else if(Z===1)for(;;){G0(n,24);var p0=w9(j(n));if(3>>0)var t0=q(n);else switch(p0){case 0:var t0=k0(n);break;case 1:continue;case 2:r:for(;;){if(Nn(j(n))===0)for(;;){G0(n,24);var b0=w9(j(n));if(3>>0)var M0=q(n);else switch(b0){case 0:var M0=g0(n);break;case 1:continue;case 2:continue r;default:G0(n,22);var O0=Bt(j(n));if(O0===0){for(;;)if(G0(n,21),dn(j(n))!==0){var M0=q(n);break}}else var M0=O0===1?g0(n):q(n)}break}else var M0=q(n);var t0=M0;break}break;default:G0(n,22);var er=Bt(j(n));if(er===0){for(;;)if(G0(n,21),dn(j(n))!==0){var t0=q(n);break}}else var t0=er===1?k0(n):q(n)}break}else var t0=q(n);break;default:var t0=e0(n)}break;case 20:G0(n,34);var yr=o9(j(n));if(5>>0)var t0=q(n);else switch(yr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,34);var vr=o9(j(n));if(5>>0)var t0=q(n);else switch(vr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:continue;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break}break;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break;case 21:var t0=46;break;case 22:var t0=44;break;case 23:G0(n,78);var $0=j(n),Er=59<$0?61<$0?-1:Vr(rN,$0-60|0)-1|0:-1,t0=Er===0?(G0(n,62),Ui(j(n))===0?61:q(n)):Er===1?55:q(n);break;case 24:G0(n,90);var Mr=sL(j(n)),t0=Mr===0?(G0(n,57),Ui(j(n))===0?53:q(n)):Mr===1?91:q(n);break;case 25:G0(n,79);var Br=sL(j(n));if(Br===0)var t0=56;else if(Br===1){G0(n,66);var qr=sL(j(n)),t0=qr===0?63:qr===1?(G0(n,65),Ui(j(n))===0?64:q(n)):q(n)}else var t0=q(n);break;case 26:G0(n,50);var jr=j(n),$r=45>>0)return ke(vPr);var I=t0;if(50<=I)switch(I){case 50:return[0,t,85];case 51:return[0,t,88];case 52:return[0,t,87];case 53:return[0,t,94];case 54:return[0,t,95];case 55:return[0,t,96];case 56:return[0,t,97];case 57:return[0,t,92];case 58:return[0,t,93];case 59:return[0,t,cf];case 60:return[0,t,T7];case 61:return[0,t,69];case 62:return[0,t,ti];case 63:return[0,t,68];case 64:return[0,t,67];case 65:return[0,t,Ri];case 66:return[0,t,R7];case 67:return[0,t,78];case 68:return[0,t,77];case 69:return[0,t,75];case 70:return[0,t,76];case 71:return[0,t,73];case 72:return[0,t,72];case 73:return[0,t,71];case 74:return[0,t,70];case 75:return[0,t,79];case 76:return[0,t,80];case 77:return[0,t,81];case 78:return[0,t,98];case 79:return[0,t,99];case 80:return[0,t,s7];case 81:return[0,t,L7];case 82:return[0,t,Yt];case 83:return[0,t,Zc];case 84:return[0,t,is];case 85:return[0,t,89];case 86:return[0,t,91];case 87:return[0,t,90];case 88:return[0,t,Fv];case 89:return[0,t,Xt];case 90:return[0,t,82];case 91:return[0,t,11];case 92:return[0,t,74];case 93:return[0,t,j7];case 94:return[0,t,13];case 95:return[0,t,14];case 96:return[2,Ei(t,nt(t,n))];case 97:var U=n[6];Hr0(n);var Y=Hl(t,U,n[3]);tL(n,U);var y0=Ll(n),P0=Wr0(t,y0),I0=P0[2],D=Ee(I0,yPr);if(0<=D){if(!(0>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Gc(j(D0))===0)for(;;){var He=n9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,0,Se(D0)]]:ke(sPr)});case 10:return[0,t,[1,0,Se(n)]];case 11:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&c9(j(D0))===0&&Gc(j(D0))===0)for(;;){G0(D0,0);var Le=e9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Gc(j(D0))===0)for(;;){G0(D0,0);var He=e9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,0,Se(D0)]]:ke(cPr)});case 12:return[0,t,[0,0,Se(n)]];case 13:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){var Le=a9(j(D0));if(2>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(zu(j(D0))===0)for(;;){var He=a9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,1,Se(D0)]]:ke(aPr)});case 14:return[0,t,[1,1,Se(n)]];case 15:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){G0(D0,0);var Le=x9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(zu(j(D0))===0)for(;;){G0(D0,0);var He=x9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,3,Se(D0)]]:ke(oPr)});case 16:return[0,t,[0,3,Se(n)]];case 17:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0)for(;;){var Le=j(D0),He=47>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Nn(j(D0))===0)for(;;){var He=t9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,2,Se(D0)]]:ke(iPr)});case 23:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&Zm(j(D0))===0&&Nn(j(D0))===0)for(;;){G0(D0,0);var Le=_9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Nn(j(D0))===0)for(;;){G0(D0,0);var He=_9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,4,Se(D0)]]:ke(uPr)});case 25:return Rt(t,n,function(B0,D0){function Le(ln){for(;;){var it=wi(j(ln));if(2>>0)return q(ln);switch(it){case 0:continue;case 1:r:for(;;){if(pn(j(ln))===0)for(;;){var Tt=wi(j(ln));if(2>>0)return q(ln);switch(Tt){case 0:continue;case 1:continue r;default:return 0}}return q(ln)}default:return 0}}}function He(ln){for(;;){var it=r2(j(ln));if(it!==0){var Tt=it!==1?1:0;return Tt&&q(ln)}}}function he(ln){var it=E9(j(ln));if(2>>0)return q(ln);switch(it){case 0:var Tt=C1(j(ln));return Tt===0?He(ln):Tt===1?Le(ln):q(ln);case 1:return He(ln);default:return Le(ln)}}function me(ln){var it=p9(j(ln));if(it===0)for(;;){var Tt=f7(j(ln));if(2>>0)return q(ln);switch(Tt){case 0:continue;case 1:return he(ln);default:r:for(;;){if(pn(j(ln))===0)for(;;){var Ti=f7(j(ln));if(2>>0)return q(ln);switch(Ti){case 0:continue;case 1:return he(ln);default:continue r}}return q(ln)}}}return it===1?he(ln):q(ln)}gn(D0);var Zn=Qm(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:if(pn(j(D0))===0)for(;;){var ft=f7(j(D0));if(2>>0)var wn=q(D0);else switch(ft){case 0:continue;case 1:var wn=he(D0);break;default:r:for(;;){if(pn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var jn=q(D0);else switch(xt){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var wn=jn;break}}break}else var wn=q(D0);break;case 1:var ut=r9(j(D0)),wn=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var dt=l9(j(D0));if(2

>>0)var wn=q(D0);else switch(dt){case 0:var wn=me(D0);break;case 1:continue;default:var wn=he(D0)}break}}if(wn===0){var xn=Gu(B0,nt(B0,D0),23);return[0,xn,[1,2,Se(D0)]]}return ke(tPr)});case 26:var Bu=Gu(t,nt(t,n),23);return[0,Bu,[1,2,Se(n)]];case 27:return Rt(t,n,function(B0,D0){function Le(xn){for(;;){G0(xn,0);var ln=Ds(j(xn));if(ln!==0){if(ln===1)r:for(;;){if(pn(j(xn))===0)for(;;){G0(xn,0);var it=Ds(j(xn));if(it!==0){if(it===1)continue r;return q(xn)}}return q(xn)}return q(xn)}}}function He(xn){for(;;)if(G0(xn,0),pn(j(xn))!==0)return q(xn)}function he(xn){var ln=E9(j(xn));if(2>>0)return q(xn);switch(ln){case 0:var it=C1(j(xn));return it===0?He(xn):it===1?Le(xn):q(xn);case 1:return He(xn);default:return Le(xn)}}function me(xn){var ln=p9(j(xn));if(ln===0)for(;;){var it=f7(j(xn));if(2>>0)return q(xn);switch(it){case 0:continue;case 1:return he(xn);default:r:for(;;){if(pn(j(xn))===0)for(;;){var Tt=f7(j(xn));if(2>>0)return q(xn);switch(Tt){case 0:continue;case 1:return he(xn);default:continue r}}return q(xn)}}}return ln===1?he(xn):q(xn)}gn(D0);var Zn=Qm(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:if(pn(j(D0))===0)for(;;){var ft=f7(j(D0));if(2>>0)var wn=q(D0);else switch(ft){case 0:continue;case 1:var wn=he(D0);break;default:r:for(;;){if(pn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var jn=q(D0);else switch(xt){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var wn=jn;break}}break}else var wn=q(D0);break;case 1:var ut=r9(j(D0)),wn=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var dt=l9(j(D0));if(2
>>0)var wn=q(D0);else switch(dt){case 0:var wn=me(D0);break;case 1:continue;default:var wn=he(D0)}break}}return wn===0?[0,B0,[0,4,Se(D0)]]:ke(nPr)});case 29:return Rt(t,n,function(B0,D0){function Le(ut){for(;;){var dt=wi(j(ut));if(2
>>0)return q(ut);switch(dt){case 0:continue;case 1:r:for(;;){if(pn(j(ut))===0)for(;;){var xn=wi(j(ut));if(2>>0)return q(ut);switch(xn){case 0:continue;case 1:continue r;default:return 0}}return q(ut)}default:return 0}}}function He(ut){var dt=r2(j(ut));if(dt===0)return Le(ut);var xn=dt!==1?1:0;return xn&&q(ut)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=pn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){var Zn=D1(j(D0));if(Zn===0)var me=He(D0);else{if(Zn===1)continue;var me=q(D0)}break}break;default:for(;;){var wn=Bc(j(D0));if(2>>0)var me=q(D0);else switch(wn){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(pn(j(D0))===0)for(;;){var ft=Bc(j(D0));if(2>>0)var xt=q(D0);else switch(ft){case 0:var xt=He(D0);break;case 1:continue;default:continue r}break}else var xt=q(D0);var me=xt;break}}break}}if(me===0){var jn=Gu(B0,nt(B0,D0),22);return[0,jn,[1,2,Se(D0)]]}return ke(ePr)});case 30:return Rt(t,n,function(B0,D0){gn(D0);var Le=C1(j(D0));if(Le===0)for(;;){var He=r2(j(D0));if(He!==0){var he=He!==1?1:0,ft=he&&q(D0);break}}else if(Le===1)for(;;){var me=wi(j(D0));if(2>>0)var ft=q(D0);else switch(me){case 0:continue;case 1:r:for(;;){if(pn(j(D0))===0)for(;;){var Zn=wi(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:continue;case 1:continue r;default:var wn=0}break}else var wn=q(D0);var ft=wn;break}break;default:var ft=0}break}else var ft=q(D0);return ft===0?[0,B0,[1,2,Se(D0)]]:ke(rPr)});case 31:var K7=Gu(t,nt(t,n),22);return[0,K7,[1,2,Se(n)]];case 33:return Rt(t,n,function(B0,D0){function Le(jn){for(;;){G0(jn,0);var ut=Ds(j(jn));if(ut!==0){if(ut===1)r:for(;;){if(pn(j(jn))===0)for(;;){G0(jn,0);var dt=Ds(j(jn));if(dt!==0){if(dt===1)continue r;return q(jn)}}return q(jn)}return q(jn)}}}function He(jn){return G0(jn,0),pn(j(jn))===0?Le(jn):q(jn)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=pn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){G0(D0,0);var Zn=D1(j(D0));if(Zn===0)var me=He(D0);else{if(Zn===1)continue;var me=q(D0)}break}break;default:for(;;){G0(D0,0);var wn=Bc(j(D0));if(2>>0)var me=q(D0);else switch(wn){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(pn(j(D0))===0)for(;;){G0(D0,0);var ft=Bc(j(D0));if(2>>0)var xt=q(D0);else switch(ft){case 0:var xt=He(D0);break;case 1:continue;default:continue r}break}else var xt=q(D0);var me=xt;break}}break}}return me===0?[0,B0,[0,4,Se(D0)]]:ke(QCr)});case 35:var Yi=nt(t,n),a7=Se(n);return[0,t,[4,Yi,a7,a7]];case 36:return[0,t,0];case 37:return[0,t,1];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,6];case 41:return[0,t,7];case 42:return[0,t,12];case 43:return[0,t,10];case 44:return[0,t,8];case 45:return[0,t,9];case 46:return[0,t,86];case 47:$v(n),gn(n);var Hc=j(n),W7=62>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=6;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;default:G0(n,5);var c=d9(j(n)),x=c===0?4:c===1?3:q(n)}if(6>>0)return ke(ZCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var s=ju(t,n),p=$n(zn),y=e2(t,p,n),T=y[1];return[1,T,Si(T,s,y[2],p,0)];case 4:var E=ju(t,n),d=$n(zn),w=R1(t,d,n),G=w[1];return[1,G,Si(G,E,w[2],d,1)];case 5:var A=ju(t,n),S=$n(zn),M=t;r:for(;;){gn(n);var K=j(n),V=92>>0)var f0=q(n);else switch(V){case 0:var f0=0;break;case 1:for(;;){G0(n,7);var m0=j(n);if(-1>>0)var f0=q(n);else switch(l){case 0:var f0=2;break;case 1:var f0=1;break;default:G0(n,1);var f0=xi(j(n))===0?1:q(n)}}if(7>>0)var c0=ke(Fwr);else switch(f0){case 0:var c0=[0,Gu(M,nt(M,n),25),Twr];break;case 1:var c0=[0,d7(Gu(M,nt(M,n),25),n),Owr];break;case 3:var t0=Se(n),c0=[0,M,m7(t0,1,un(t0)-1|0)];break;case 4:var c0=[0,M,Iwr];break;case 5:for(qi(S,91);;){gn(n);var o0=j(n),w0=93>>0)var _0=q(n);else switch(w0){case 0:var _0=0;break;case 1:for(;;){G0(n,4);var E0=j(n);if(-1>>0)var s0=ke(Swr);else switch(_0){case 0:var s0=M;break;case 1:hn(S,gwr);continue;case 2:qi(S,92),qi(S,93);continue;case 3:qi(S,93);var s0=M;break;default:hn(S,Se(n));continue}var M=s0;continue r}case 6:var c0=[0,d7(Gu(M,nt(M,n),25),n),Awr];break;default:hn(S,Se(n));continue}var hr=c0[1],Ar=h7(hr,n),or=[0,hr[1],A,Ar],W0=c0[2];return[0,hr,[5,or,Mt(S),W0]]}default:var Lr=Ei(t,nt(t,n));return[0,Lr,[6,Se(n)]]}}function pL(t,n,e,i,x){for(var c=t;;){var s=function(Cn){for(;;)if(G0(Cn,6),Fr0(j(Cn))!==0)return q(Cn)};gn(x);var p=j(x),y=br>>0)var T=q(x);else switch(y){case 0:var T=1;break;case 1:var T=s(x);break;case 2:var T=2;break;case 3:G0(x,2);var T=xi(j(x))===0?2:q(x);break;case 4:var T=0;break;case 5:G0(x,6);var E=j(x),d=34>>0)return ke(Nwr);switch(T){case 0:var c0=Se(x),t0=0;switch(n){case 0:n0(c0,Cwr)||(t0=1);break;case 1:n0(c0,Pwr)||(t0=1);break;default:var o0=0;if(n0(c0,Dwr)){if(!n0(c0,Lwr))return bL(c,nt(c,x),qwr,Bwr);if(n0(c0,Rwr)){if(!n0(c0,jwr))return bL(c,nt(c,x),Mwr,Gwr);o0=1}}if(!o0)return $v(x),c}if(t0)return c;hn(i,c0),hn(e,c0);continue;case 1:return Ei(c,nt(c,x));case 2:var w0=Se(x);hn(i,w0),hn(e,w0);var c=d7(c,x);continue;case 3:var _0=Se(x),E0=m7(_0,3,un(_0)-4|0);hn(i,_0),S1(e,Bi(Te(Uwr,E0)));continue;case 4:var U0=Se(x),b=m7(U0,2,un(U0)-3|0);hn(i,U0),S1(e,Bi(b));continue;case 5:var R0=Se(x),X=m7(R0,1,un(R0)-2|0);hn(i,R0);var s0=Ee(X,Hwr),hr=0;if(0<=s0)if(0>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=14;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;case 5:var x=12;break;case 6:var x=13;break;case 7:var x=10;break;case 8:G0(n,6);var c=d9(j(n)),x=c===0?4:c===1?3:q(n);break;case 9:var x=9;break;case 10:var x=5;break;case 11:var x=11;break;case 12:var x=7;break;case 13:if(G0(n,14),Ls(j(n))===0){var s=L1(j(n));if(s===0)var x=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?13:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var x=p===1?13:q(n);break}}else var x=q(n)}else var x=q(n);break;default:var x=8}if(14>>0)return ke(JCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var y=ju(t,n),T=$n(zn),E=e2(t,T,n),d=E[1];return[1,d,Si(d,y,E[2],T,0)];case 4:var w=ju(t,n),G=$n(zn),A=R1(t,G,n),S=A[1];return[1,S,Si(S,w,A[2],G,1)];case 5:return[0,t,98];case 6:return[0,t,j7];case 7:return[0,t,99];case 8:return[0,t,0];case 9:return[0,t,86];case 10:return[0,t,10];case 11:return[0,t,82];case 12:var M=Se(n),K=ju(t,n),V=$n(zn),f0=$n(zn);hn(f0,M);var m0=qn(M,$Cr)?0:1,k0=pL(t,m0,V,f0,n),g0=h7(k0,n);hn(f0,M);var e0=Mt(V),x0=Mt(f0);return[0,k0,[8,[0,k0[1],K,g0],e0,x0]];case 13:for(var l=n[6];;){gn(n);var c0=j(n),t0=In>>0)var o0=q(n);else switch(t0){case 0:var o0=1;break;case 1:var o0=2;break;case 2:var o0=0;break;default:if(G0(n,2),Ls(j(n))===0){var w0=L1(j(n));if(w0===0)if(Nn(j(n))===0&&Nn(j(n))===0)var _0=Nn(j(n))!==0?1:0,o0=_0&&q(n);else var o0=q(n);else if(w0===1&&Nn(j(n))===0)for(;;){var E0=A1(j(n));if(E0!==0){var U0=E0!==1?1:0,o0=U0&&q(n);break}}else var o0=q(n)}else var o0=q(n)}if(2>>0)throw[0,Sn,vwr];switch(o0){case 0:continue;case 1:break;default:if(nL(br0(n)))continue;mr0(n,1)}var b=n[3];tL(n,l);var R0=Ll(n),X=Hl(t,l,b);return[0,t,[7,uL(R0),X]]}default:return[0,t,[6,Se(n)]]}}function Ree(t,n){gn(n);var e=j(n);if(-1>>0)var E=q(n);else switch(T){case 0:var E=5;break;case 1:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var E=q(n);break}}else var E=q(n);break;case 2:var E=0;break;case 3:G0(n,0);var d=xi(j(n))!==0?1:0,E=d&&q(n);break;case 4:G0(n,5);var w=d9(j(n)),E=w===0?3:w===1?2:q(n);break;default:var E=4}if(5>>0)return ke(zCr);switch(E){case 0:return[2,d7(t,n)];case 1:return[2,t];case 2:var G=ju(t,n),A=$n(zn),S=e2(t,A,n),M=S[1];return[1,M,Si(M,G,S[2],A,0)];case 3:var K=ju(t,n),V=$n(zn),f0=R1(t,V,n),m0=f0[1];return[1,m0,Si(m0,K,f0[2],V,1)];case 4:var k0=ju(t,n),g0=$n(zn),e0=$n(zn),x0=$n(zn);hn(x0,KCr);var l=Zr0(t,g0,e0,x0,n),c0=l[1],t0=h7(c0,n),o0=[0,c0[1],k0,t0],w0=l[2],_0=Mt(x0),E0=Mt(e0);return[0,c0,[3,[0,o0,[0,Mt(g0),E0,_0],w0]]];default:var U0=Ei(t,nt(t,n));return[0,U0,[3,[0,nt(U0,n),WCr,1]]]}}function jee(t,n){function e(D){for(;;)if(G0(D,29),dn(j(D))!==0)return q(D)}function i(D){G0(D,27);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,25),dn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function x(D){for(;;)if(G0(D,23),dn(j(D))!==0)return q(D)}function c(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),dn(j(D))!==0)return q(D)}return u0===1?x(D):q(D)}function s(D){for(;;)if(G0(D,23),dn(j(D))!==0)return q(D)}function p(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),dn(j(D))!==0)return q(D)}return u0===1?s(D):q(D)}function y(D){r:for(;;){if(pn(j(D))===0)for(;;){G0(D,24);var u0=Mc(j(D));if(3>>0)return q(D);switch(u0){case 0:return s(D);case 1:continue;case 2:continue r;default:return p(D)}}return q(D)}}function T(D){G0(D,29);var u0=Gr0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:var X0=C1(j(D));if(X0===0)for(;;){G0(D,24);var J0=Qv(j(D));if(2>>0)return q(D);switch(J0){case 0:return s(D);case 1:continue;default:return p(D)}}if(X0===1)for(;;){G0(D,24);var ir=Mc(j(D));if(3>>0)return q(D);switch(ir){case 0:return s(D);case 1:continue;case 2:return y(D);default:return p(D)}}return q(D);case 2:for(;;){G0(D,24);var Q0=Qv(j(D));if(2>>0)return q(D);switch(Q0){case 0:return x(D);case 1:continue;default:return c(D)}}default:for(;;){G0(D,24);var F0=Mc(j(D));if(3>>0)return q(D);switch(F0){case 0:return x(D);case 1:continue;case 2:return y(D);default:return c(D)}}}}function E(D){for(;;){G0(D,30);var u0=Ps(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var X0=Ps(j(D));if(4>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}}function d(D){return pn(j(D))===0?E(D):q(D)}function w(D){for(;;)if(G0(D,19),dn(j(D))!==0)return q(D)}function G(D){for(;;)if(G0(D,19),dn(j(D))!==0)return q(D)}function A(D){G0(D,29);var u0=Er0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,20);var X0=w9(j(D));if(3>>0)return q(D);switch(X0){case 0:return G(D);case 1:continue;case 2:r:for(;;){if(Nn(j(D))===0)for(;;){G0(D,20);var J0=w9(j(D));if(3>>0)return q(D);switch(J0){case 0:return w(D);case 1:continue;case 2:continue r;default:G0(D,18);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,17),dn(j(D))!==0)return q(D)}return ir===1?w(D):q(D)}}return q(D)}default:G0(D,18);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,17),dn(j(D))!==0)return q(D)}return Q0===1?G(D):q(D)}}return q(D)}function S(D){for(;;)if(G0(D,13),dn(j(D))!==0)return q(D)}function M(D){for(;;)if(G0(D,13),dn(j(D))!==0)return q(D)}function K(D){G0(D,29);var u0=Dr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,14);var X0=h9(j(D));if(3>>0)return q(D);switch(X0){case 0:return M(D);case 1:continue;case 2:r:for(;;){if(zu(j(D))===0)for(;;){G0(D,14);var J0=h9(j(D));if(3>>0)return q(D);switch(J0){case 0:return S(D);case 1:continue;case 2:continue r;default:G0(D,12);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,11),dn(j(D))!==0)return q(D)}return ir===1?S(D):q(D)}}return q(D)}default:G0(D,12);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,11),dn(j(D))!==0)return q(D)}return Q0===1?M(D):q(D)}}return q(D)}function V(D){for(;;)if(G0(D,9),dn(j(D))!==0)return q(D)}function f0(D){for(;;)if(G0(D,9),dn(j(D))!==0)return q(D)}function m0(D){G0(D,29);var u0=Pr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,10);var X0=k9(j(D));if(3>>0)return q(D);switch(X0){case 0:return f0(D);case 1:continue;case 2:r:for(;;){if(Gc(j(D))===0)for(;;){G0(D,10);var J0=k9(j(D));if(3>>0)return q(D);switch(J0){case 0:return V(D);case 1:continue;case 2:continue r;default:G0(D,8);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,7),dn(j(D))!==0)return q(D)}return ir===1?V(D):q(D)}}return q(D)}default:G0(D,8);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,7),dn(j(D))!==0)return q(D)}return Q0===1?f0(D):q(D)}}return q(D)}function k0(D){G0(D,28);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,26),dn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function g0(D){G0(D,30);var u0=Qv(j(D));if(2>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var X0=Mc(j(D));if(3>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var J0=Mc(j(D));if(3>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:continue r;default:return i(D)}}return q(D)}default:return i(D)}}default:return i(D)}}function e0(D){for(;;){G0(D,30);var u0=u9(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;default:return k0(D)}}}function x0(D){for(;;)if(G0(D,15),dn(j(D))!==0)return q(D)}function l(D){G0(D,15);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,15),dn(j(D))!==0)return q(D)}return u0===1?x0(D):q(D)}function c0(D){for(;;){G0(D,16);var u0=Mr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return x0(D);case 1:return g0(D);case 2:continue;case 3:for(;;){G0(D,15);var X0=u9(j(D));if(3>>0)return q(D);switch(X0){case 0:return x0(D);case 1:return g0(D);case 2:continue;default:return l(D)}}default:return l(D)}}}function t0(D){G0(D,30);var u0=Or0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var X0=Ps(j(D));if(4>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var J0=Ps(j(D));if(4>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}case 2:return T(D);default:return i(D)}}function o0(D){G0(D,30);var u0=lL(j(D));if(8>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:return c0(D);case 3:return e0(D);case 4:return m0(D);case 5:return T(D);case 6:return K(D);case 7:return A(D);default:return k0(D)}}function w0(D){r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var u0=Rr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;case 3:continue r;default:return k0(D)}}return q(D)}}function _0(D){for(;;){G0(D,30);var u0=o9(j(D));if(5>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:continue;case 3:return T(D);case 4:return w0(D);default:return k0(D)}}}function E0(D){return G0(D,3),Ur0(j(D))===0?3:q(D)}function U0(D){return m9(j(D))===0&&v9(j(D))===0&&Br0(j(D))===0&&Ar0(j(D))===0&&Nr0(j(D))===0&&vL(j(D))===0&&Bl(j(D))===0&&m9(j(D))===0&&Ls(j(D))===0&&Cr0(j(D))===0&&Ul(j(D))===0?3:q(D)}gn(n);var b=j(n),R0=ef>>0)var X=q(n);else switch(R0){case 0:var X=62;break;case 1:var X=63;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var X=q(n);break}}else var X=q(n);break;case 3:var X=0;break;case 4:G0(n,0);var s0=xi(j(n))!==0?1:0,X=s0&&q(n);break;case 5:var X=6;break;case 6:var X=61;break;case 7:if(G0(n,63),Bl(j(n))===0){var hr=j(n),Ar=s7>>0)var X=q(n);else switch(Lr){case 0:for(;;){var Tr=ql(j(n));if(3>>0)var X=q(n);else switch(Tr){case 0:continue;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break}break;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break;case 15:G0(n,41);var Hr=D1(j(n)),X=Hr===0?cL(j(n))===0?40:q(n):Hr===1?E(n):q(n);break;case 16:G0(n,63);var Or=d9(j(n));if(Or===0){G0(n,2);var fr=i9(j(n));if(2>>0)var X=q(n);else switch(fr){case 0:for(;;){var Rr=i9(j(n));if(2>>0)var X=q(n);else switch(Rr){case 0:continue;case 1:var X=E0(n);break;default:var X=U0(n)}break}break;case 1:var X=E0(n);break;default:var X=U0(n)}}else var X=Or===1?5:q(n);break;case 17:G0(n,30);var Wr=lL(j(n));if(8>>0)var X=q(n);else switch(Wr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=c0(n);break;case 3:var X=e0(n);break;case 4:var X=m0(n);break;case 5:var X=T(n);break;case 6:var X=K(n);break;case 7:var X=A(n);break;default:var X=k0(n)}break;case 18:G0(n,30);var Jr=o9(j(n));if(5>>0)var X=q(n);else switch(Jr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=_0(n);break;case 3:var X=T(n);break;case 4:var X=w0(n);break;default:var X=k0(n)}break;case 19:var X=44;break;case 20:var X=42;break;case 21:var X=49;break;case 22:G0(n,51);var ar=j(n),_r=61>>0)return ke(SCr);var i0=X;if(32<=i0)switch(i0){case 34:return[0,t,0];case 35:return[0,t,1];case 36:return[0,t,2];case 37:return[0,t,3];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,12];case 41:return[0,t,10];case 42:return[0,t,8];case 43:return[0,t,9];case 45:return[0,t,83];case 49:return[0,t,98];case 50:return[0,t,99];case 53:return[0,t,Yt];case 55:return[0,t,89];case 56:return[0,t,91];case 57:return[0,t,11];case 59:return[0,t,s7];case 60:return[0,t,L7];case 61:var l0=n[6];Hr0(n);var S0=Hl(t,l0,n[3]);tL(n,l0);var T0=Ll(n),rr=Wr0(t,T0),L0=rr[2],B=rr[1],Z=Ee(L0,OCr);if(0<=Z){if(!(0>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Gc(j(F0))===0)for(;;){var mr=n9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(0,Se(u0))]:ke(ECr)});case 8:return[0,t,Hi(0,Se(n))];case 9:return Rt(t,n,function(D,u0){function X0(F0){if(c9(j(F0))===0){if(Gc(j(F0))===0)for(;;){G0(F0,0);var Sr=e9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Gc(j(F0))===0)for(;;){G0(F0,0);var mr=e9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(0,Se(u0))]:ke(wCr)});case 10:return[0,t,qc(0,Se(n))];case 11:return Rt(t,n,function(D,u0){function X0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){var Sr=a9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(zu(j(F0))===0)for(;;){var mr=a9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(1,Se(u0))]:ke(kCr)});case 12:return[0,t,Hi(1,Se(n))];case 13:return Rt(t,n,function(D,u0){function X0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){G0(F0,0);var Sr=x9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(zu(j(F0))===0)for(;;){G0(F0,0);var mr=x9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(3,Se(u0))]:ke(dCr)});case 14:return[0,t,qc(3,Se(n))];case 15:return Rt(t,n,function(D,u0){function X0(F0){if(zu(j(F0))===0){for(;;)if(G0(F0,0),zu(j(F0))!==0)return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(1,Se(u0))]:ke(hCr)});case 16:return[0,t,qc(1,Se(n))];case 17:return Rt(t,n,function(D,u0){function X0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){var Sr=t9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Nn(j(F0))===0)for(;;){var mr=t9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(2,Se(u0))]:ke(yCr)});case 19:return Rt(t,n,function(D,u0){function X0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){G0(F0,0);var Sr=_9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Nn(j(F0))===0)for(;;){G0(F0,0);var mr=_9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(4,Se(u0))]:ke(_Cr)});case 21:return Rt(t,n,function(D,u0){function X0(h0){for(;;){var Kr=wi(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:r:for(;;){if(pn(j(h0))===0)for(;;){var re=wi(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:continue r;default:return 0}}return q(h0)}default:return 0}}}function J0(h0){for(;;){var Kr=r2(j(h0));if(Kr!==0){var re=Kr!==1?1:0;return re&&q(h0)}}}function ir(h0){var Kr=E9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:var re=C1(j(h0));return re===0?J0(h0):re===1?X0(h0):q(h0);case 1:return J0(h0);default:return X0(h0)}}function Q0(h0){if(pn(j(h0))===0)for(;;){var Kr=f7(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(pn(j(h0))===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return q(h0)}function F0(h0){var Kr=p9(j(h0));if(Kr===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(pn(j(h0))===0)for(;;){var xe=f7(j(h0));if(2>>0)return q(h0);switch(xe){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return Kr===1?ir(h0):q(h0)}function Sr(h0){var Kr=r9(j(h0));return Kr===0?F0(h0):Kr===1?ir(h0):q(h0)}function mr(h0){for(;;){var Kr=l9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:return F0(h0);case 1:continue;default:return ir(h0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}if(sr===0){var K0=Se(u0),Ur=Gu(D,nt(D,u0),23);return[0,Ur,Hi(2,K0)]}return ke(mCr)});case 22:var Y=Se(n),y0=Gu(t,nt(t,n),23);return[0,y0,Hi(2,Y)];case 23:return Rt(t,n,function(D,u0){function X0(K0){for(;;){G0(K0,0);var Ur=Ds(j(K0));if(Ur!==0){if(Ur===1)r:for(;;){if(pn(j(K0))===0)for(;;){G0(K0,0);var h0=Ds(j(K0));if(h0!==0){if(h0===1)continue r;return q(K0)}}return q(K0)}return q(K0)}}}function J0(K0){for(;;)if(G0(K0,0),pn(j(K0))!==0)return q(K0)}function ir(K0){var Ur=E9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:var h0=C1(j(K0));return h0===0?J0(K0):h0===1?X0(K0):q(K0);case 1:return J0(K0);default:return X0(K0)}}function Q0(K0){if(pn(j(K0))===0)for(;;){var Ur=f7(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return q(K0)}function F0(K0){var Ur=p9(j(K0));if(Ur===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(pn(j(K0))===0)for(;;){var Kr=f7(j(K0));if(2>>0)return q(K0);switch(Kr){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return Ur===1?ir(K0):q(K0)}function Sr(K0){var Ur=r9(j(K0));return Ur===0?F0(K0):Ur===1?ir(K0):q(K0)}function mr(K0){for(;;){var Ur=l9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return F0(K0);case 1:continue;default:return ir(K0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}return sr===0?[0,D,qc(4,Se(u0))]:ke(pCr)});case 25:return Rt(t,n,function(D,u0){function X0(K0){for(;;){var Ur=wi(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=wi(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:continue r;default:return 0}}return q(K0)}default:return 0}}}function J0(K0){return pn(j(K0))===0?X0(K0):q(K0)}function ir(K0){var Ur=r2(j(K0));if(Ur===0)return X0(K0);var h0=Ur!==1?1:0;return h0&&q(K0)}function Q0(K0){for(;;){var Ur=D1(j(K0));if(Ur===0)return ir(K0);if(Ur!==1)return q(K0)}}function F0(K0){for(;;){var Ur=Bc(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return ir(K0);case 1:continue;default:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=Bc(j(K0));if(2>>0)return q(K0);switch(h0){case 0:return ir(K0);case 1:continue;default:continue r}}return q(K0)}}}}gn(u0);var Sr=f9(j(u0));if(3>>0)var mr=q(u0);else switch(Sr){case 0:for(;;){var Cr=ql(j(u0));if(3>>0)var mr=q(u0);else switch(Cr){case 0:continue;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}break}break;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}if(mr===0){var sr=Se(u0),Pr=Gu(D,nt(D,u0),22);return[0,Pr,Hi(2,sr)]}return ke(bCr)});case 26:return Rt(t,n,function(D,u0){function X0(mr){for(;;){var Cr=r2(j(mr));if(Cr!==0){var sr=Cr!==1?1:0;return sr&&q(mr)}}}function J0(mr){for(;;){var Cr=wi(j(mr));if(2>>0)return q(mr);switch(Cr){case 0:continue;case 1:r:for(;;){if(pn(j(mr))===0)for(;;){var sr=wi(j(mr));if(2>>0)return q(mr);switch(sr){case 0:continue;case 1:continue r;default:return 0}}return q(mr)}default:return 0}}}gn(u0);var ir=j(u0),Q0=44>>0)var F0=q(u0);else switch(Q0){case 0:for(;;){var Sr=jr0(j(u0));if(2>>0)var F0=q(u0);else switch(Sr){case 0:continue;case 1:var F0=X0(u0);break;default:var F0=J0(u0)}break}break;case 1:var F0=X0(u0);break;default:var F0=J0(u0)}return F0===0?[0,D,Hi(2,Se(u0))]:ke(lCr)});case 27:var P0=Se(n),I0=Gu(t,nt(t,n),22);return[0,I0,Hi(2,P0)];case 29:return Rt(t,n,function(D,u0){function X0(re){for(;;){G0(re,0);var xe=Ds(j(re));if(xe!==0){if(xe===1)r:for(;;){if(pn(j(re))===0)for(;;){G0(re,0);var Re=Ds(j(re));if(Re!==0){if(Re===1)continue r;return q(re)}}return q(re)}return q(re)}}}function J0(re){return G0(re,0),pn(j(re))===0?X0(re):q(re)}gn(u0);var ir=f9(j(u0));if(3>>0)var Q0=q(u0);else switch(ir){case 0:for(;;){var F0=jr0(j(u0));if(2>>0)var Q0=q(u0);else switch(F0){case 0:continue;case 1:for(;;){G0(u0,0);var Sr=D1(j(u0)),mr=Sr!==0?1:0;if(mr){if(Sr===1)continue;var Q0=q(u0)}else var Q0=mr;break}break;default:for(;;){G0(u0,0);var Cr=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Cr){case 0:var Q0=0;break;case 1:continue;default:r:for(;;){if(pn(j(u0))===0)for(;;){G0(u0,0);var sr=Bc(j(u0));if(2>>0)var Pr=q(u0);else switch(sr){case 0:var Pr=0;break;case 1:continue;default:continue r}break}else var Pr=q(u0);var Q0=Pr;break}}break}}break}break;case 1:var Q0=pn(j(u0))===0?X0(u0):q(u0);break;case 2:for(;;){G0(u0,0);var K0=D1(j(u0));if(K0===0)var Q0=J0(u0);else{if(K0===1)continue;var Q0=q(u0)}break}break;default:for(;;){G0(u0,0);var Ur=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Ur){case 0:var Q0=J0(u0);break;case 1:continue;default:r:for(;;){if(pn(j(u0))===0)for(;;){G0(u0,0);var h0=Bc(j(u0));if(2>>0)var Kr=q(u0);else switch(h0){case 0:var Kr=J0(u0);break;case 1:continue;default:continue r}break}else var Kr=q(u0);var Q0=Kr;break}}break}}return Q0===0?[0,D,qc(4,Se(u0))]:ke(vCr)});case 31:return[0,t,66];case 18:case 28:return[0,t,Hi(2,Se(n))];default:return[0,t,qc(4,Se(n))]}}function Xl(t){return function(n){for(var e=0,i=n;;){var x=o(t,i,i[2]);switch(x[0]){case 0:var c=x[2],s=x[1],p=Xr0(s,c),y=e===0?0:ye(e),T=s[6];if(T===0)return[0,[0,s[1],s[2],s[3],s[4],s[5],s[6],p],[0,c,p,0,y]];var E=[0,c,p,ye(T),y];return[0,[0,s[1],s[2],s[3],s[4],s[5],_r0,p],E];case 1:var d=x[2],w=x[1],e=[0,d,e],i=[0,w[1],w[2],w[3],w[4],w[5],w[6],d[1]];continue;default:var i=x[1];continue}}}}var Gee=Xl(Dee),Mee=Xl(Lee),Bee=Xl(Ree),qee=Xl(jee),Uee=Xl(Pee),Mu=eL([0,bz]);function Yl(t,n){return[0,0,0,n,yr0(t)]}function g9(t){var n=t[4];switch(t[3]){case 0:var c0=u(Uee,n);break;case 1:var c0=u(qee,n);break;case 2:var c0=u(Mee,n);break;case 3:var e=h7(n,n[2]),i=$n(zn),x=$n(zn),c=n[2];gn(c);var s=j(c),p=ts>>0)var y=q(c);else switch(p){case 0:var y=1;break;case 1:var y=4;break;case 2:var y=0;break;case 3:G0(c,0);var T=xi(j(c))!==0?1:0,y=T&&q(c);break;case 4:var y=2;break;default:var y=3}if(4>>0)var E=ke(sCr);else switch(y){case 0:var d=Se(c);hn(x,d),hn(i,d);var w=pL(d7(n,c),2,i,x,c),G=h7(w,c),A=Mt(i),S=Mt(x),E=[0,w,[8,[0,w[1],e,G],A,S]];break;case 1:var E=[0,n,Pn];break;case 2:var E=[0,n,98];break;case 3:var E=[0,n,0];break;default:$v(c);var M=pL(n,2,i,x,c),K=h7(M,c),V=Mt(i),f0=Mt(x),E=[0,M,[8,[0,M[1],e,K],V,f0]]}var m0=E[2],k0=E[1],g0=Xr0(k0,m0),e0=k0[6];if(e0===0)var l=[0,k0,[0,m0,g0,0,0]];else var x0=[0,m0,g0,ye(e0),0],l=[0,[0,k0[1],k0[2],k0[3],k0[4],k0[5],0,k0[7]],x0];var c0=l;break;case 4:var c0=u(Bee,n);break;default:var c0=u(Gee,n)}var t0=c0[1],o0=yr0(t0),w0=[0,o0,c0[2]];return t[4]=t0,t[1]?t[2]=[0,w0]:t[1]=[0,w0],w0}function Qr0(t){var n=t[1];return n?n[1][2]:g9(t)[2]}function Hee(t,n,e,i){var x=t&&t[1],c=n&&n[1];try{var s=0,p=pr0(i),y=s,T=p}catch(A){if(A=Et(A),A!==I1)throw A;var E=[0,[0,[0,e,ez[2],ez[3]],86],0],y=E,T=pr0(Xjr)}var d=c?c[1]:Bv,w=Cee(e,T,d[4]),G=[0,Yl(w,0)];return[0,[0,y],[0,0],Mu[1],[0,0],d[5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,[0,Vjr],[0,w],G,[0,x],d,e,[0,0],[0,Yjr]]}function n2(t){return bl(t[23][1])}function fu(t){return t[27][4]}function ue(t,n){var e=n[2];t[1][1]=[0,[0,n[1],e],t[1][1]];var i=t[22];return i&&o(i[1],t,e)}function Vl(t,n){return t[30][1]=n,0}function Rs(t,n){if(t===0)return Qr0(n[25][1]);if(t===1){var e=n[25][1];e[1]||g9(e);var i=e[2];return i?i[1][2]:g9(e)[2]}throw[0,Sn,qjr]}function _s(t,n){return t===n[5]?n:[0,n[1],n[2],n[3],n[4],t,n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function mL(t,n){return t===n[17]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],t,n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function re0(t,n){return t===n[18]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],t,n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ee0(t,n){return t===n[19]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],t,n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function t2(t,n){return t===n[21]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],t,n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function F9(t,n){return t===n[14]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],t,n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function zl(t,n){return t===n[8]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],t,n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function Kl(t,n){return t===n[12]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],t,n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function u2(t,n){return t===n[15]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],t,n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ne0(t,n){return t===n[6]?n:[0,n[1],n[2],n[3],n[4],n[5],t,n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function te0(t,n){return t===n[7]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],t,n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function _L(t,n){return t===n[13]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],t,n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function T9(t,n){return[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],[0,t],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function yL(t){function n(e){return ue(t,e)}return function(e){return Du(n,e)}}function i2(t){var n=t[4][1],e=n&&[0,n[1][2]];return e}function ue0(t){var n=t[4][1],e=n&&[0,n[1][1]];return e}function ie0(t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],0,t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function fe0(t,n,e,i){return[0,t[1],t[2],Mu[1],t[4],t[5],0,0,0,0,0,1,t[12],t[13],t[14],t[15],t[16],e,n,t[19],i,t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function xe0(t){var n=Ee(t,xjr),e=0;if(0<=n){if(0>>0){if(!(T7<(i+1|0)>>>0))return 1}else{var x=i!==6?1:0;if(!x)return x}}return Jl(t,n)}function x2(t){return se0(0,t)}function I9(t,n){var e=Yn(t,n);if(dL(e)||hL(e)||oe0(e))return 1;var i=0;if(typeof e==\"number\")switch(e){case 14:case 28:case 60:case 61:case 62:case 63:case 64:case 65:i=1;break}else e[0]===4&&(i=1);return i?1:0}function ve0(t,n){var e=n2(n);if(e===1){var i=Yn(t,n);return typeof i!=\"number\"&&i[0]===4?1:0}if(e)return 0;var x=Yn(t,n);if(typeof x==\"number\")switch(x){case 42:case 46:case 47:return 0;case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:break;default:return 0}else switch(x[0]){case 4:if(ae0(x[3]))return 0;break;case 9:case 10:case 11:break;default:return 0}return 1}function G1(t){return I9(0,t)}function Gs(t){var n=A0(t)===15?1:0;if(n)var e=n;else{var i=A0(t)===64?1:0;if(i){var x=Yn(1,t)===15?1:0;if(x)var c=Wl(1,t)[2][1],e=Pe(t)[3][1]===c?1:0;else var e=x}else var e=i}return e}function $l(t){var n=A0(t);if(typeof n==\"number\"){var e=0;if((n===13||n===40)&&(e=1),e)return 1}return 0}function je(t,n){return ue(t,[0,Pe(t),n])}function le0(t,n){if(hL(n))return 2;if(dL(n))return 55;var e=aL(0,n);return t?[11,e,t[1]]:[10,e]}function St(t,n){var e=wL(n);return u(yL(n),e),je(n,le0(t,A0(n)))}function A9(t){function n(e){return ue(t,[0,e[1],76])}return function(e){return Du(n,e)}}function be0(t,n){var e=t[6]?ur(et(SRr),n,n,n):gRr;return St([0,e],t)}function gi(t,n){var e=t[5];return e&&je(t,n)}function V7(t,n){var e=t[5];return e&&ue(t,[0,n[1],n[2]])}function M1(t,n){return ue(t,[0,n,[18,t[5]]])}function ie(t){var n=t[26][1];if(n){var e=n2(t),i=A0(t),x=[0,Pe(t),i,e];u(n[1],x)}var c=t[25][1],s=c[1],p=s?s[1][1]:g9(c)[1];t[24][1]=p;var y=wL(t);u(yL(t),y);var T=t[2][1],E=Lc(Rs(0,t)[4],T);t[2][1]=E;var d=[0,Rs(0,t)];t[4][1]=d;var w=t[25][1];return w[2]?(w[1]=w[2],w[2]=0,0):(Qr0(w),w[1]=0,0)}function xu(t,n){var e=o(iL,A0(t),n);return e&&ie(t),e}function Ku(t,n){t[23][1]=[0,n,t[23][1]];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function k7(t){var n=t[23][1],e=n?n[2]:ke(ERr);t[23][1]=e;var i=n2(t),x=Yl(t[24][1],i);return t[25][1]=x,0}function we(t){var n=Pe(t);if(A0(t)===9&&Jl(1,t)){var e=pr(t),i=Rs(1,t)[4],x=on(e,u(ml(function(s){return s[1][2][1]<=n[3][1]?1:0}),i));return Vl(t,[0,n[3][1]+1|0,0]),x}var c=pr(t);return Vl(t,n[3]),c}function Ms(t){var n=t[4][1];if(n){var e=n[1][2],i=pr(t),x=u(ml(function(p){return p[1][2][1]<=e[3][1]?1:0}),i);Vl(t,[0,e[3][1]+1|0,0]);var c=x}else var c=n;return c}function B1(t,n){return St([0,aL(hRr,n)],t)}function Y0(t,n){return 1-o(iL,A0(t),n)&&B1(t,n),ie(t)}function pe0(t,n){var e=xu(t,n);return 1-e&&B1(t,n),e}function Zl(t,n){var e=A0(t),i=0;return typeof e!=\"number\"&&e[0]===4&&qn(e[3],n)&&(i=1),i||St([0,u(et(yRr),n)],t),ie(t)}var Bs=[wt,zjr,M7(0)];function Xee(t){var n=t[26][1];if(n){var e=mz(0),i=[0,function(s){return aN(s,e)}];t[26][1]=i;var x=[0,[0,n[1],e]]}else var x=n;return[0,t[1][1],t[2][1],t[4][1],t[23][1],t[24][1],t[30][1],x]}function me0(t,n,e){if(e){var i=e[1],x=i[1];if(n[26][1]=[0,x],t)for(var c=i[2][2];;){if(c){var s=c[2];u(x,c[1]);var c=s;continue}return 0}var p=t}else var p=e;return p}function Yee(t,n){me0(0,t,n[7]),t[1][1]=n[1],t[2][1]=n[2],t[4][1]=n[3],t[23][1]=n[4],t[24][1]=n[5],t[30][1]=n[6];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function Vee(t,n,e){return me0(1,t,n[7]),[0,e]}function EL(t,n){var e=Xee(t);try{var i=Vee(t,e,u(n,t));return i}catch(x){if(x=Et(x),x===Bs)return Yee(t,e);throw x}}function _e0(t,n,e){var i=EL(t,e);return i?i[1]:n}function Ql(t,n){var e=ye(n);if(e){var i=e[1],x=u(t,i);return i===x?n:ye([0,x,e[2]])}return n}var ye0=Rp(Zjr,function(t){var n=PN(t,Wjr),e=NN(t,$jr),i=e[22],x=e[26],c=e[35],s=e[77],p=e[iV],y=e[gO],T=e[cp],E=e[BO],d=e[jh],w=e[ZF],G=e[6],A=e[7],S=e[10],M=e[17],K=e[21],V=e[27],f0=e[33],m0=e[36],k0=e[46],g0=e[51],e0=e[89],x0=e[92],l=e[97],c0=e[99],t0=e[ti],o0=e[Pn],w0=e[Sv],_0=e[zw],E0=e[Jg],U0=e[dH],b=e[DX],R0=e[eH],X=e[FH],s0=e[kh],hr=e[AF],Ar=e[Wg],or=e[A6],W0=e[Cw],Lr=e[iA],Tr=e[rk],Hr=e[hT],Or=e[lO],fr=e[i6],Rr=e[ST],Wr=e[v8],Jr=e[$2],ar=LN(t,0,0,nz,KD,1)[1];function _r(q0,Fr,_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(I){var y0=function(D){return[0,Y,[0,U,[0,D]]]},P0=I[1];return ee(u(q0[1][1+y],q0),P0,_,y0)}function I0(D){return[0,Y,[0,D,I]]}return ee(o(q0[1][1+G],q0,Fr),U,_,I0)}function Ir(q0,Fr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function fe(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function v0(q0,Fr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function P(q0,Fr){function _(I){return[0,Fr[1],I]}var k=Fr[2];return ee(u(q0[1][1+c],q0),k,Fr,_)}function L(q0,Fr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function Q(q0,Fr,_){var k=_[2],I=_[1],U=Ql(u(q0[1][1+y],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,Y]}function i0(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function l0(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function S0(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function T0(q0,Fr,_){var k=_[3],I=_[2],U=o(q0[1][1+l],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,Y]}function rr(q0,Fr,_){var k=_[4],I=_[3],U=_[2],Y=_[1],y0=o(q0[1][1+c],q0,k);if(I){var P0=ze(u(q0[1][1+w],q0),I);return I===P0&&k===y0?_:[0,_[1],_[2],P0,y0]}if(U){var I0=ze(u(q0[1][1+d],q0),U);return U===I0&&k===y0?_:[0,_[1],I0,_[3],y0]}var D=o(q0[1][1+y],q0,Y);return Y===D&&k===y0?_:[0,D,_[2],_[3],y0]}function L0(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function B(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function Z(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function p0(q0,Fr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function b0(q0,Fr,_){var k=_[3],I=_[1],U=_u(u(q0[1][1+s],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,_[2],Y]}function O0(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function M0(q0,Fr){if(Fr[0]===0){var _=function(P0){return[0,P0]},k=Fr[1];return ee(u(q0[1][1+p],q0),k,Fr,_)}var I=Fr[1],U=I[2],Y=U[2],y0=o(q0[1][1+p],q0,Y);return Y===y0?Fr:[1,[0,I[1],[0,U[1],y0]]]}function er(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+x],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function yr(q0,Fr){var _=Fr[2],k=Fr[1];function I(Y){return[0,k,[0,_[1],_[2],_[3],Y]]}var U=_[4];return ee(u(q0[1][1+c],q0),U,[0,k,_],I)}function vr(q0,Fr,_){var k=_[9],I=_[3],U=o(q0[1][1+s0],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,_[4],_[5],_[6],_[7],_[8],Y,_[10]]}function $0(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function Er(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function Mr(q0,Fr){var _=Fr[2],k=_[2],I=_[1],U=Fr[1];if(k===0){var Y=function(I0){return[0,U,[0,I0,k]]};return ee(u(q0[1][1+p],q0),I,Fr,Y)}function y0(I0){return[0,U,[0,I,I0]]}var P0=u(q0[1][1+i],q0);return ee(function(I0){return ze(P0,I0)},k,Fr,y0)}function Br(q0,Fr){var _=Fr[2],k=_[2],I=Fr[1];function U(P0){return[0,I,[0,P0,k]]}var Y=_[1],y0=u(q0[1][1+T],q0);return ee(function(P0){return Ql(y0,P0)},Y,Fr,U)}function qr(q0,Fr,_){var k=_[2];if(k===0){var I=function(P0){return[0,P0,_[2],_[3]]},U=_[1];return ee(u(q0[1][1+y],q0),U,_,I)}function Y(P0){return[0,_[1],P0,_[3]]}var y0=u(q0[1][1+i],q0);return ee(function(P0){return ze(y0,P0)},k,_,Y)}function jr(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function $r(q0,Fr,_){var k=_[7],I=_[2],U=o(q0[1][1+E],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,_[3],_[4],_[5],_[6],Y]}function ne(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function Qr(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function be(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+w],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ae(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function pe(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function oe(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ce(q0,Fr){function _(I){return[0,Fr[1],I]}var k=Fr[2];return ee(u(q0[1][1+c],q0),k,Fr,_)}function ge(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}return jN(t,[0,m0,function(q0,Fr){var _=Fr[2],k=u(ml(function(U){return ps(U[1][2],q0[1+n])<0?1:0}),_),I=Dc(k);return Dc(_)===I?Fr:[0,Fr[1],k,Fr[3]]},Jr,ge,Wr,ce,Rr,oe,fr,pe,Or,ae,Hr,be,w,Qr,d,ne,Tr,$r,E,jr,Lr,qr,W0,Br,T,Mr,or,Er,Ar,$0,hr,vr,X,yr,R0,er,b,M0,U0,O0,E0,b0,_0,p0,w0,Z,o0,B,t0,L0,x0,rr,c0,T0,e0,S0,s,l0,g0,i0,k0,Q,f0,L,V,P,K,v0,M,fe,S,Ir,A,_r]),function(q0,Fr,_){var k=jp(Fr,t);return k[1+n]=_,u(ar,k),RN(Fr,k,t)}});function N9(t){var n=i2(t);if(n)var e=n[1],i=ce0(t)?(Vl(t,e[3]),[0,o(ye0[1],0,e[3])]):0,x=i;else var x=n;return[0,0,function(c,s){return x?o(s,x[1],c):c}]}function rb(t){var n=i2(t);if(n){var e=n[1];if(ce0(t)){Vl(t,e[3]);var i=Ms(t),x=[0,o(ye0[1],0,[0,e[3][1]+1|0,0])],c=i}else var x=0,c=Ms(t)}else var x=0,c=0;return[0,c,function(s,p){return x?o(p,x[1],s):s}]}function $t(t){return x7(t)?rb(t):N9(t)}function ys(t,n){var e=$t(t);function i(x,c){return o(Qe(x,Nv,27),x,c)}return o(e[2],n,i)}function oi(t,n){if(n)var e=$t(t),i=function(c,s){return o(Qe(c,bF,30),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function o2(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-983660142,32),x,c)}return o(e[2],n,i)}function eb(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-455772979,33),x,c)}return o(e[2],n,i)}function he0(t,n){if(n)var e=$t(t),i=function(c,s){return o(Qe(c,kH,34),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function Xi(t,n){var e=$t(t);function i(x,c){return o(Qe(x,qY,35),x,c)}return o(e[2],n,i)}function de0(t,n){var e=$t(t);function i(x,c){var s=u(Qe(x,ZU,37),x);return Ql(function(p){return _u(s,p)},c)}return o(e[2],n,i)}function ke0(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-21476009,38),x,c)}return o(e[2],n,i)}Rp(Qjr,function(t){var n=PN(t,Kjr),e=DN(Jjr),i=e.length-1,x=tz.length-1,c=Gv(i+x|0,0),s=i-1|0,p=0;if(!(s<0))for(var y=p;;){var T=Fl(t,tu(e,y)[1+y]);tu(c,y)[1+y]=T;var E=y+1|0;if(s!==y){var y=E;continue}break}var d=x-1|0,w=0;if(!(d<0))for(var G=w;;){var A=G+i|0,S=PN(t,tu(tz,G)[1+G]);tu(c,A)[1+A]=S;var M=G+1|0;if(d!==G){var G=M;continue}break}var K=c[4],V=c[5],f0=c[y6],m0=c[cp],k0=c[nd],g0=c[gv],e0=c[38],x0=c[mT],l=c[Vy],c0=LN(t,0,0,nz,KD,1)[1];function t0(b,R0,X){return o(b[1][1+f0],b,X[2]),X}function o0(b,R0){return o(b[1][1+m0],b,R0),R0}function w0(b,R0){var X=R0[1],s0=b[1+g0];if(s0){var hr=ps(s0[1][1][2],X[2])<0?1:0,Ar=hr&&(b[1+g0]=[0,R0],0);return Ar}var or=0<=ps(X[2],b[1+n][3])?1:0,W0=or&&(b[1+g0]=[0,R0],0);return W0}function _0(b,R0){var X=R0[1],s0=b[1+k0];if(s0){var hr=ps(X[2],s0[1][1][2])<0?1:0,Ar=hr&&(b[1+k0]=[0,R0],0);return Ar}var or=ps(X[2],b[1+n][2])<0?1:0,W0=or&&(b[1+k0]=[0,R0],0);return W0}function E0(b,R0){return R0&&o(b[1][1+m0],b,R0[1])}function U0(b,R0){var X=R0[1];Du(u(b[1][1+V],b),X);var s0=R0[2];return Du(u(b[1][1+K],b),s0)}return jN(t,[0,x0,function(b){return[0,b[1+k0],b[1+g0]]},m0,U0,f0,E0,V,_0,K,w0,e0,o0,l,t0]),function(b,R0,X){var s0=jp(R0,t);return s0[1+n]=X,u(c0,s0),s0[1+k0]=0,s0[1+g0]=0,RN(R0,s0,t)}});function we0(t){return t===3?2:(4<=t,1)}function SL(t,n,e){if(e){var i=e[1],x=0;if(i===8232||Hu===i)x=1;else if(i===10)var s=6;else if(i===13)var s=5;else if(fw<=i)var s=3;else if(Hh<=i)var s=2;else var c=jt<=i?1:0,s=c&&1;if(x)var s=7;var p=s}else var p=4;return[0,p,t]}var zee=[wt,uGr,M7(0)];function Ee0(t,n,e,i){try{var x=tu(t,n)[1+n];return x}catch(c){throw c=Et(c),c[1]===ZA?[0,zee,e,ur(et(nGr),i,n,t.length-1)]:c}}function C9(t,n){if(n[1]===0&&n[2]===0)return 0;var e=Ee0(t,n[1]-1|0,n,rGr);return Ee0(e,n[2],n,eGr)}var Kee=Ee;function Wee(t,n){return o(f(t),NWr,n)}u(eL([0,Kee])[33],Wee);function Se0(t){var n=A0(t),e=0;if(typeof n==\"number\")switch(n){case 15:var i=CWr;break;case 16:var i=PWr;break;case 17:var i=DWr;break;case 18:var i=LWr;break;case 19:var i=RWr;break;case 20:var i=jWr;break;case 21:var i=GWr;break;case 22:var i=MWr;break;case 23:var i=BWr;break;case 24:var i=qWr;break;case 25:var i=UWr;break;case 26:var i=HWr;break;case 27:var i=XWr;break;case 28:var i=YWr;break;case 29:var i=VWr;break;case 30:var i=zWr;break;case 31:var i=KWr;break;case 32:var i=WWr;break;case 33:var i=JWr;break;case 34:var i=$Wr;break;case 35:var i=ZWr;break;case 36:var i=QWr;break;case 37:var i=rJr;break;case 38:var i=eJr;break;case 39:var i=nJr;break;case 40:var i=tJr;break;case 41:var i=uJr;break;case 42:var i=iJr;break;case 43:var i=fJr;break;case 44:var i=xJr;break;case 45:var i=oJr;break;case 46:var i=aJr;break;case 47:var i=cJr;break;case 48:var i=sJr;break;case 49:var i=vJr;break;case 50:var i=lJr;break;case 51:var i=bJr;break;case 52:var i=pJr;break;case 53:var i=mJr;break;case 54:var i=_Jr;break;case 55:var i=yJr;break;case 56:var i=hJr;break;case 57:var i=dJr;break;case 58:var i=kJr;break;case 59:var i=wJr;break;case 60:var i=EJr;break;case 61:var i=SJr;break;case 62:var i=gJr;break;case 63:var i=FJr;break;case 64:var i=TJr;break;case 65:var i=OJr;break;case 114:var i=IJr;break;case 115:var i=AJr;break;case 116:var i=NJr;break;case 117:var i=CJr;break;case 118:var i=PJr;break;case 119:var i=DJr;break;case 120:var i=LJr;break;case 121:var i=RJr;break;default:e=1}else switch(n[0]){case 4:var i=n[2];break;case 9:var i=n[1]?jJr:GJr;break;default:e=1}if(e){St(MJr,t);var i=BJr}return ie(t),i}function z7(t){var n=Pe(t),e=pr(t),i=Se0(t);return[0,n,[0,i,lr([0,e],[0,we(t)],0)]]}function ge0(t){var n=Pe(t),e=pr(t);Y0(t,14);var i=Pe(t),x=Se0(t),c=lr([0,e],[0,we(t)],0),s=yt(n,i),p=i[2],y=n[3],T=y[1]===p[1]?1:0,E=T&&(y[2]===p[2]?1:0);return 1-E&&ue(t,[0,s,R7]),[0,s,[0,x,c]]}function q1(t){var n=t[2],e=n[3]===0?1:0;if(e)for(var i=n[2];;){if(i){var x=i[1][2],c=0,s=i[2];if(x[1][2][0]===2&&!x[2]){var p=1;c=1}if(!c)var p=0;if(p){var i=s;continue}return p}return 1}return e}function nb(t){for(var n=t;;){var e=n[2];if(e[0]===27){var i=e[1][2];if(i[2][0]===23)return 1;var n=i;continue}return 0}}function cr(t,n,e){var i=t?t[1]:Pe(e),x=u(n,e),c=i2(e),s=c?yt(i,c[1]):i;return[0,s,x]}function gL(t,n,e){var i=cr(t,n,e),x=i[2];return[0,[0,i[1],x[1]],x[2]]}function Jee(t){function n(B){var Z=Pe(B),p0=A0(B);if(typeof p0==\"number\"){if(s7===p0){var b0=pr(B);return ie(B),[0,[0,Z,[0,0,lr([0,b0],0,0)]]]}if(L7===p0){var O0=pr(B);return ie(B),[0,[0,Z,[0,1,lr([0,O0],0,0)]]]}}return 0}var e=function B(Z){return B.fun(Z)},i=function B(Z){return B.fun(Z)},x=function B(Z){return B.fun(Z)},c=function B(Z,p0,b0){return B.fun(Z,p0,b0)},s=function B(Z){return B.fun(Z)},p=function B(Z,p0,b0){return B.fun(Z,p0,b0)},y=function B(Z){return B.fun(Z)},T=function B(Z,p0){return B.fun(Z,p0)},E=function B(Z){return B.fun(Z)},d=function B(Z){return B.fun(Z)},w=function B(Z,p0,b0){return B.fun(Z,p0,b0)},G=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},A=function B(Z){return B.fun(Z)},S=function B(Z,p0){return B.fun(Z,p0)},M=function B(Z){return B.fun(Z)},K=function B(Z){return B.fun(Z)},V=function B(Z){return B.fun(Z)},f0=function B(Z){return B.fun(Z)},m0=function B(Z){return B.fun(Z)},k0=function B(Z){return B.fun(Z)},g0=function B(Z,p0){return B.fun(Z,p0)},e0=function B(Z){return B.fun(Z)},x0=function B(Z){return B.fun(Z)},l=function B(Z){return B.fun(Z)},c0=function B(Z){return B.fun(Z)},t0=function B(Z){return B.fun(Z)},o0=function B(Z){return B.fun(Z)},w0=function B(Z){return B.fun(Z)},_0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},E0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},U0=function B(Z){return B.fun(Z)},b=function B(Z){return B.fun(Z)},R0=function B(Z){return B.fun(Z)},X=function B(Z){return B.fun(Z)},s0=function B(Z){return B.fun(Z)},hr=function B(Z){return B.fun(Z)},Ar=function B(Z,p0){return B.fun(Z,p0)},or=function B(Z,p0){return B.fun(Z,p0)},W0=function B(Z){return B.fun(Z)},Lr=function B(Z,p0,b0){return B.fun(Z,p0,b0)};N(e,function(B){return u(x,B)}),N(i,function(B){return 1-fu(B)&&je(B,12),cr(0,function(Z){return Y0(Z,86),u(e,Z)},B)}),N(x,function(B){var Z=A0(B)===89?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(c,B,[0,b0],u(s,B))}),N(c,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===89){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr==\"number\"&&vr===89){Y0(er,89);var yr=[0,u(s,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[19,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,y$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(s,function(B){var Z=A0(B)===91?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(p,B,[0,b0],u(y,B))}),N(p,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===91){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr==\"number\"&&vr===91){Y0(er,91);var yr=[0,u(y,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[20,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,_$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(y,function(B){return o(T,B,u(E,B))}),N(T,function(B,Z){var p0=A0(B);if(typeof p0==\"number\"&&p0===11&&!B[15]){var b0=o(g0,B,Z);return R(_0,B,b0[1],0,[0,b0[1],[0,0,[0,b0,0],0,0]])}return Z}),N(E,function(B){var Z=A0(B);return typeof Z==\"number\"&&Z===85?cr(0,function(p0){var b0=pr(p0);Y0(p0,85);var O0=lr([0,b0],0,0);return[11,[0,u(E,p0),O0]]},B):u(d,B)}),N(d,function(B){return ur(w,0,B,u(V,B))}),N(w,function(B,Z,p0){var b0=B&&B[1];if(x7(Z))return p0;var O0=A0(Z);if(typeof O0==\"number\"){if(O0===6)return ie(Z),R(G,b0,0,Z,p0);if(O0===10){var M0=Yn(1,Z);return typeof M0==\"number\"&&M0===6?(je(Z,p$r),Y0(Z,10),Y0(Z,6),R(G,b0,0,Z,p0)):(je(Z,m$r),p0)}if(O0===83)return ie(Z),A0(Z)!==6&&je(Z,30),Y0(Z,6),R(G,1,1,Z,p0)}return p0}),N(G,function(B,Z,p0,b0){function O0(M0){if(!Z&&xu(M0,7))return[15,[0,b0,lr(0,[0,we(M0)],0)]];var er=u(e,M0);Y0(M0,7);var yr=[0,b0,er,lr(0,[0,we(M0)],0)];return B?[18,[0,yr,Z]]:[17,yr]}return ur(w,[0,B],p0,cr([0,b0[1]],O0,p0))}),N(A,function(B){return o(S,B,o(t[13],0,B))}),N(S,function(B,Z){for(var p0=[0,Z[1],[0,Z]];;){var b0=p0[2];if(A0(B)===10&&I9(1,B)){var O0=function(vr){return function($0){return Y0($0,10),[0,vr,z7($0)]}}(b0),M0=cr([0,p0[1]],O0,B),er=M0[1],p0=[0,er,[1,[0,er,M0[2]]]];continue}return b0}}),N(M,function(B){var Z=A0(B);if(typeof Z==\"number\"){if(Z===4){ie(B);var p0=u(M,B);return Y0(B,5),p0}}else if(Z[0]===4)return[0,u(A,B)];return je(B,51),0}),N(K,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,46);var b0=u(M,Z);if(b0){var O0=lr([0,p0],0,0);return[21,[0,b0[1],O0]]}return b$r},B)}),N(V,function(B){var Z=Pe(B),p0=A0(B),b0=0;if(typeof p0==\"number\")switch(p0){case 4:return u(o0,B);case 6:return u(k0,B);case 46:return u(K,B);case 53:return cr(0,function(ge){var q0=pr(ge);Y0(ge,53);var Fr=u(U0,ge),_=lr([0,q0],0,0);return[14,[0,Fr[2],Fr[1],_]]},B);case 98:return u(w0,B);case 106:var O0=pr(B);return Y0(B,Yt),[0,Z,[10,lr([0,O0],[0,we(B)],0)]];case 42:b0=1;break;case 0:case 2:var M0=R(E0,0,1,1,B);return[0,M0[1],[13,M0[2]]];case 30:case 31:var er=pr(B);return Y0(B,p0),[0,Z,[26,[0,p0===31?1:0,lr([0,er],[0,we(B)],0)]]]}else switch(p0[0]){case 2:var yr=p0[1],vr=yr[4],$0=yr[3],Er=yr[2],Mr=yr[1];vr&&gi(B,45);var Br=pr(B);return Y0(B,[2,[0,Mr,Er,$0,vr]]),[0,Mr,[23,[0,Er,$0,lr([0,Br],[0,we(B)],0)]]];case 10:var qr=p0[3],jr=p0[2],$r=p0[1],ne=pr(B);Y0(B,[10,$r,jr,qr]);var Qr=we(B);return $r===1&&gi(B,45),[0,Z,[24,[0,jr,qr,lr([0,ne],[0,Qr],0)]]];case 11:var be=p0[3],ae=p0[2],pe=pr(B);return Y0(B,[11,p0[1],ae,be]),[0,Z,[25,[0,ae,be,lr([0,pe],[0,we(B)],0)]]];case 4:b0=1;break}if(b0){var oe=u(hr,B);return[0,oe[1],[16,oe[2]]]}var ce=u(m0,B);return ce?[0,Z,ce[1]]:(St(v$r,B),[0,Z,l$r])}),N(f0,function(B){var Z=0;if(typeof B==\"number\")switch(B){case 29:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:Z=1;break}else B[0]===9&&(Z=1);return Z?1:0}),N(m0,function(B){var Z=pr(B),p0=A0(B);if(typeof p0==\"number\")switch(p0){case 29:return ie(B),[0,[4,lr([0,Z],[0,we(B)],0)]];case 114:return ie(B),[0,[0,lr([0,Z],[0,we(B)],0)]];case 115:return ie(B),[0,[1,lr([0,Z],[0,we(B)],0)]];case 116:return ie(B),[0,[2,lr([0,Z],[0,we(B)],0)]];case 117:return ie(B),[0,[5,lr([0,Z],[0,we(B)],0)]];case 118:return ie(B),[0,[6,lr([0,Z],[0,we(B)],0)]];case 119:return ie(B),[0,[7,lr([0,Z],[0,we(B)],0)]];case 120:return ie(B),[0,[3,lr([0,Z],[0,we(B)],0)]];case 121:return ie(B),[0,[9,lr([0,Z],[0,we(B)],0)]]}else if(p0[0]===9)return ie(B),[0,[8,lr([0,Z],[0,we(B)],0)]];return 0}),N(k0,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,6);for(var b0=u2(0,Z),O0=0;;){var M0=A0(b0);if(typeof M0==\"number\"){var er=0;if((M0===7||Pn===M0)&&(er=1),er){var yr=ye(O0);return Y0(Z,7),[22,[0,yr,lr([0,p0],[0,we(Z)],0)]]}}var vr=[0,u(e,b0),O0];A0(b0)!==7&&Y0(b0,9);var O0=vr}},B)}),N(g0,function(B,Z){return[0,Z[1],[0,0,Z,0]]}),N(e0,function(B){return cr(0,function(Z){Ku(Z,0);var p0=o(t[13],0,Z);k7(Z),1-fu(Z)&&je(Z,12);var b0=xu(Z,85);return Y0(Z,86),[0,[0,p0],u(e,Z),b0]},B)});function Tr(B){var Z=Yn(1,B);return typeof Z==\"number\"&&!(1<(Z+W2|0)>>>0)?u(e0,B):o(g0,B,u(e,B))}N(x0,function(B){var Z=0;return function(p0){for(var b0=Z,O0=p0;;){var M0=A0(B);if(typeof M0==\"number\")switch(M0){case 5:case 12:case 113:var er=M0===12?1:0,yr=er&&[0,cr(0,function(jr){var $r=pr(jr);Y0(jr,12);var ne=lr([0,$r],0,0);return[0,Tr(jr),ne]},B)];return[0,b0,ye(O0),yr,0]}else if(M0[0]===4&&!n0(M0[3],s$r)){var vr=0;if((Yn(1,B)===86||Yn(1,B)===85)&&(vr=1),vr){var $0=b0!==0?1:0,Er=$0||(O0!==0?1:0);Er&&je(B,s7);var Mr=cr(0,function($r){var ne=pr($r);ie($r),A0($r)===85&&je($r,L7);var Qr=lr([0,ne],0,0);return[0,u(i,$r),Qr]},B);A0(B)!==5&&Y0(B,9);var b0=[0,Mr];continue}}var Br=[0,Tr(B),O0];A0(B)!==5&&Y0(B,9);var O0=Br}}}),N(l,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,4);var b0=o(x0,Z,0),O0=pr(Z);Y0(Z,5);var M0=yu([0,p0],[0,we(Z)],O0,0);return[0,b0[1],b0[2],b0[3],M0]},B)}),N(c0,function(B){var Z=pr(B);Y0(B,4);var p0=u2(0,B),b0=A0(p0),O0=0;if(typeof b0==\"number\")switch(b0){case 5:var M0=c$r;break;case 42:O0=2;break;case 12:case 113:var M0=[0,o(x0,p0,0)];break;default:O0=1}else b0[0]===4?O0=2:O0=1;switch(O0){case 1:if(u(f0,b0)){var er=Yn(1,p0),yr=0;if(typeof er==\"number\"&&!(1<(er+W2|0)>>>0)){var vr=[0,o(x0,p0,0)];yr=1}if(!yr)var vr=[1,u(e,p0)];var M0=vr}else var M0=[1,u(e,p0)];break;case 2:var M0=u(t0,p0);break}if(M0[0]===0)var $0=M0;else{var Er=M0[1];if(B[15])var Mr=M0;else{var Br=A0(B),qr=0;if(typeof Br==\"number\")if(Br===5)var jr=Yn(1,B)===11?[0,o(x0,B,[0,o(g0,B,Er),0])]:[1,Er];else if(Br===9){Y0(B,9);var jr=[0,o(x0,B,[0,o(g0,B,Er),0])]}else qr=1;else qr=1;if(qr)var jr=M0;var Mr=jr}var $0=Mr}var $r=pr(B);Y0(B,5);var ne=we(B);if($0[0]===0){var Qr=$0[1],be=yu([0,Z],[0,ne],$r,0);return[0,[0,Qr[1],Qr[2],Qr[3],be]]}return[1,ur(Lr,$0[1],Z,ne)]}),N(t0,function(B){var Z=Yn(1,B);return typeof Z==\"number\"&&!(1<(Z+W2|0)>>>0)?[0,o(x0,B,0)]:[1,ur(c,B,0,ur(p,B,0,o(T,B,ur(w,0,B,o(or,B,u(b,B))))))]}),N(o0,function(B){var Z=Pe(B),p0=cr(0,c0,B),b0=p0[2];return b0[0]===0?R(_0,B,Z,0,[0,p0[1],b0[1]]):b0[1]}),N(w0,function(B){var Z=Pe(B),p0=oi(B,u(X,B));return R(_0,B,Z,p0,u(l,B))}),N(_0,function(B,Z,p0,b0){return cr([0,Z],function(O0){return Y0(O0,11),[12,[0,p0,b0,u(e,O0),0]]},B)});function Hr(B,Z,p0){return cr([0,Z],function(b0){var O0=u(l,b0);return Y0(b0,86),[0,p0,O0,u(e,b0),0]},B)}function Or(B,Z){var p0=A0(Z);if(typeof p0==\"number\"&&!(10<=p0))switch(p0){case 1:if(!B)return 0;break;case 3:if(B)return 0;break;case 8:case 9:return ie(Z)}return B1(Z,9)}function fr(B,Z){return Z&&ue(B,[0,Z[1][1],7])}function Rr(B,Z){return Z&&ue(B,[0,Z[1],9])}N(E0,function(B,Z,p0,b0){var O0=Z&&(A0(b0)===2?1:0),M0=Z&&1-O0;return cr(0,function(er){var yr=pr(er),vr=O0&&2;Y0(er,vr);var $0=u2(0,er),Er=a$r;r:for(;;){var Mr=Er[3],Br=Er[2],qr=Er[1];if(B&&p0)throw[0,Sn,WJr];if(M0&&!p0)throw[0,Sn,JJr];var jr=Pe($0),$r=A0($0);if(typeof $r==\"number\"){var ne=0;if(13<=$r){if(Pn===$r){var Qr=[0,ye(qr),Br,Mr];ne=1}}else if($r)switch($r-1|0){case 0:if(!O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 2:if(O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 11:if(!p0){ie($0);var be=A0($0);if(typeof be==\"number\"&&!(10<=be))switch(be){case 1:case 3:case 8:case 9:ue($0,[0,jr,20]),Or(O0,$0);continue}var ae=wL($0);u(yL($0),ae),ue($0,[0,jr,17]),ie($0),Or(O0,$0);continue}var pe=pr($0);ie($0);var oe=A0($0),ce=0;if(typeof oe==\"number\"&&!(10<=oe))switch(oe){case 1:case 3:case 8:case 9:Or(O0,$0);var ge=A0($0),q0=0;if(typeof ge==\"number\"){var Fr=ge-1|0;if(!(2>>0))switch(Fr){case 0:if(M0){var Qr=[0,ye(qr),1,pe];ne=1,ce=1,q0=1}break;case 1:break;default:ue($0,[0,jr,19]);var Qr=[0,ye(qr),Br,Mr];ne=1,ce=1,q0=1}}if(!q0){ue($0,[0,jr,18]);continue}break}if(!ce){var _=[1,cr([0,jr],function(W7){return function(Ut){var bt=lr([0,W7],0,0);return[0,u(e,Ut),bt]}}(pe),$0)];Or(O0,$0);var Er=[0,[0,_,qr],Br,Mr];continue}break}if(ne){var k=pr(er),I=on(Qr[3],k),U=O0?3:1;Y0(er,U);var Y=yu([0,yr],[0,we(er)],I,0);return[0,O0,Qr[2],Qr[1],Y]}}for(var y0=B,P0=B,I0=0,D=0,u0=0,X0=0;;){var J0=A0($0),ir=0;if(typeof J0==\"number\")switch(J0){case 6:Rr($0,u0);var Q0=Yn(1,$0),F0=0;if(typeof Q0==\"number\"&&Q0===6){fr($0,I0);var Cr=[4,cr([0,jr],function(Ut,bt,B0){return function(D0){var Le=on(bt,pr(D0));Y0(D0,6),Y0(D0,6);var He=z7(D0);Y0(D0,7),Y0(D0,7);var he=A0(D0),me=0;if(typeof he==\"number\"){var Zn=0;if(he!==4&&he!==98&&(Zn=1),!Zn){var wn=Hr(D0,Ut,oi(D0,u(X,D0))),ft=0,xt=[0,wn[1],[12,wn[2]]],jn=1,ut=0;me=1}}if(!me){var dt=xu(D0,85),xn=we(D0);Y0(D0,86);var ft=xn,xt=u(e,D0),jn=0,ut=dt}return[0,He,xt,ut,B0!==0?1:0,jn,lr([0,Le],[0,ft],0)]}}(jr,X0,D),$0)];F0=1}if(!F0)var Cr=[2,cr([0,jr],function(W7,Ut,bt){return function(B0){var D0=on(W7,pr(B0));Y0(B0,6);var Le=Yn(1,B0)===86?1:0;if(Le){var He=z7(B0);Y0(B0,86);var he=[0,He]}else var he=Le;var me=u(e,B0);Y0(B0,7);var Zn=we(B0);Y0(B0,86);var wn=u(e,B0);return[0,he,me,wn,Ut!==0?1:0,bt,lr([0,D0],[0,Zn],0)]}}(X0,D,I0),$0)];break;case 42:if(y0){if(I0===0){var Sr=[0,Pe($0)],mr=on(X0,pr($0));ie($0);var y0=0,P0=0,D=Sr,X0=mr;continue}throw[0,Sn,ZJr]}ir=1;break;case 103:case 104:if(I0===0){var y0=0,P0=0,I0=n($0);continue}ir=1;break;case 4:case 98:Rr($0,u0),fr($0,I0);var Cr=[3,cr([0,jr],function(W7,Ut){return function(bt){var B0=Pe(bt),D0=Hr(bt,B0,oi(bt,u(X,bt)));return[0,D0,Ut!==0?1:0,lr([0,W7],0,0)]}}(X0,D),$0)];break;default:ir=1}else if(J0[0]===4&&!n0(J0[3],QJr)){if(P0){if(I0===0){var sr=[0,Pe($0)],Pr=on(X0,pr($0));ie($0);var y0=0,P0=0,u0=sr,X0=Pr;continue}throw[0,Sn,r$r]}ir=1}else ir=1;if(ir){var K0=0;if(D){var Ur=D[1];if(u0){var Cr=ke(e$r);K0=1}else if(typeof J0==\"number\"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Ur,[1,Rc(lr([0,X0],0,0),[0,Ur,n$r])]],Kr=0,re=u0,xe=0;K0=2}}else if(u0){var Re=u0[1];if(typeof J0==\"number\"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Re,[1,Rc(lr([0,X0],0,0),[0,Re,t$r])]],Kr=0,re=0,xe=D;K0=2}}var ve=0;switch(K0){case 0:var Ie=function(Ut){Ku(Ut,0);var bt=o(t[20],0,Ut);return k7(Ut),bt},Ge=pr($0),Me=Ie($0),an=Me[1],We=Me[2],Ae=0;if(We[0]===1){var cn=We[1][2][1],rn=0;if(n0(cn,u$r)&&n0(cn,i$r)&&(rn=1),!rn){var kn=A0($0),vn=0;if(typeof kn==\"number\"){var Ne=kn-5|0;if(92>>0){if(!(94<(Ne+1|0)>>>0)){Rr($0,u0),fr($0,I0);var Je=We;Ae=1,vn=1}}else if(!(1<(Ne+eX|0)>>>0)){var h0=[0,an,We],Kr=X0,re=u0,xe=D;ve=1,Ae=2,vn=1}}if(!vn){Xi($0,We);var en=Ie($0),_n=qn(cn,f$r),Cn=on(X0,Ge);Rr($0,u0),fr($0,I0);var Cr=[0,cr([0,jr],function(bt,B0,D0,Le,He){return function(he){var me=D0[1],Zn=Xi(he,D0[2]),wn=Hr(he,bt,0),ft=wn[2][2];if(Le){var xt=ft[2],jn=0;if(xt[1])ue(he,[0,me,j7]),jn=1;else{var ut=0;!xt[2]&&!xt[3]&&(jn=1,ut=1),ut||ue(he,[0,me,80])}}else{var dt=ft[2],xn=0;if(dt[1])ue(he,[0,me,Yt]),xn=1;else{var ln=dt[2],it=0;if(dt[3])ue(he,[0,me,81]);else{var Tt=0;ln&&!ln[2]&&(Tt=1),Tt||(ue(he,[0,me,81]),it=1)}it||(xn=1)}}var Ti=lr([0,He],0,0),hs=0,Au=0,Hs=0,Vi=B0!==0?1:0,Xs=0,Ys=Le?[1,wn]:[2,wn];return[0,Zn,Ys,Xs,Vi,Hs,Au,hs,Ti]}}(jr,D,en,_n,Cn),$0)];Ae=2}}}var Hn=0;switch(Ae){case 2:Hn=1;break;case 0:var Fn=Me[2],vt=A0($0),Nt=0;if(typeof vt==\"number\"){var gt=0;if(vt!==4&&vt!==98&&(gt=1),!gt){Rr($0,u0),fr($0,I0);var Je=Fn;Nt=1}}if(!Nt){var Zt=D!==0?1:0,qt=0;if(Fn[0]===1){var Ft=Fn[1],Ct=Ft[2][1],du=0;if(B){var Wu=0;!qn(x$r,Ct)&&(!Zt||!qn(o$r,Ct))&&(Wu=1),Wu||(ue($0,[0,Ft[1],[21,Ct,Zt,0,0]]),qt=1,du=1)}}var h0=[0,an,Fn],Kr=X0,re=u0,xe=D;ve=1,Hn=1}break}if(!Hn)var lt=Xi($0,Je),ou=Hr($0,jr,oi($0,u(X,$0))),Bu=[0,ou[1],[12,ou[2]]],K7=[0,lt,[0,Bu],0,D!==0?1:0,0,1,0,lr([0,X0],0,0)],Cr=[0,[0,Bu[1],K7]];break;case 2:ve=1;break}if(ve){var Yi=h0[2],a7=h0[1];1-fu($0)&&je($0,12);var Cr=[0,cr([0,jr],function(Ut,bt,B0,D0,Le,He){return function(he){var me=xu(he,85),Zn=pe0(he,86)?u(e,he):[0,He,$Jr];return[0,Le,[0,Zn],me,bt!==0?1:0,B0!==0?1:0,0,Ut,lr([0,D0],0,0)]}}(I0,xe,re,Kr,Yi,a7),$0)]}}Or(O0,$0);var Er=[0,[0,Cr,qr],Br,Mr];continue r}}},b0)}),N(U0,function(B){var Z=A0(B)===41?1:0;if(Z){Y0(B,41);for(var p0=0;;){var b0=[0,u(hr,B),p0],O0=A0(B);if(typeof O0==\"number\"&&O0===9){Y0(B,9);var p0=b0;continue}var M0=de0(B,ye(b0));break}}else var M0=Z;return[0,M0,R(E0,0,0,0,B)]}),N(b,function(B){var Z=z7(B),p0=Z[2],b0=p0[1],O0=Z[1];return ae0(b0)&&ue(B,[0,O0,3]),[0,O0,[0,b0,p0[2]]]}),N(R0,function(B){return cr(0,function(Z){var p0=u(b,Z),b0=A0(Z)===86?[1,u(i,Z)]:[0,j1(Z)];return[0,p0,b0]},B)}),N(X,function(B){var Z=A0(B)===98?1:0;if(Z){1-fu(B)&&je(B,12);var p0=[0,cr(0,function(O0){var M0=pr(O0);Y0(O0,98);for(var er=0,yr=0;;){var vr=cr(0,function(ne){return function(Qr){var be=n(Qr),ae=u(R0,Qr),pe=ae[2],oe=A0(Qr),ce=0;if(typeof oe==\"number\"&&oe===82){ie(Qr);var ge=1,q0=[0,u(e,Qr)];ce=1}if(!ce){ne&&ue(Qr,[0,ae[1],77]);var ge=ne,q0=0}return[0,be,pe[1],pe[2],q0,ge]}}(er),O0),$0=vr[2],Er=[0,[0,vr[1],[0,$0[2],$0[3],$0[1],$0[4]]],yr],Mr=A0(O0),Br=0;if(typeof Mr==\"number\"){var qr=0;if(Mr!==99&&Pn!==Mr&&(qr=1),!qr){var jr=ye(Er);Br=1}}if(!Br){if(Y0(O0,9),A0(O0)!==99){var er=$0[5],yr=Er;continue}var jr=ye(Er)}var $r=pr(O0);return Y0(O0,99),[0,jr,yu([0,M0],[0,we(O0)],$r,0)]}},B)]}else var p0=Z;return p0}),N(s0,function(B){var Z=A0(B)===98?1:0,p0=Z&&[0,cr(0,function(b0){var O0=pr(b0);Y0(b0,98);for(var M0=u2(0,b0),er=0;;){var yr=A0(M0);if(typeof yr==\"number\"){var vr=0;if((yr===99||Pn===yr)&&(vr=1),vr){var $0=ye(er),Er=pr(M0);return Y0(M0,99),[0,$0,yu([0,O0],[0,we(M0)],Er,0)]}}var Mr=[0,u(e,M0),er];A0(M0)!==99&&Y0(M0,9);var er=Mr}},B)];return p0}),N(hr,function(B){return o(Ar,B,u(b,B))}),N(Ar,function(B,Z){function p0(b0){for(var O0=[0,Z[1],[0,Z]];;){var M0=O0[2],er=O0[1];if(A0(b0)===10&&ve0(1,b0)){var yr=cr([0,er],function(qr){return function(jr){return Y0(jr,10),[0,qr,u(b,jr)]}}(M0),b0),vr=yr[1],O0=[0,vr,[1,[0,vr,yr[2]]]];continue}if(A0(b0)===98)var $0=$t(b0),Er=function(Br,qr){return o(Qe(Br,-860373976,77),Br,qr)},Mr=o($0[2],M0,Er);else var Mr=M0;return[0,Mr,u(s0,b0),0]}}return cr([0,Z[1]],p0,B)}),N(or,function(B,Z){var p0=o(Ar,B,Z);return[0,p0[1],[16,p0[2]]]}),N(W0,function(B){var Z=A0(B);return typeof Z==\"number\"&&Z===86?[1,u(i,B)]:[0,j1(B)]}),N(Lr,function(B,Z,p0){var b0=B[2];function O0(Sr){return y7(Sr,lr([0,Z],[0,p0],0))}switch(b0[0]){case 0:var F0=[0,O0(b0[1])];break;case 1:var F0=[1,O0(b0[1])];break;case 2:var F0=[2,O0(b0[1])];break;case 3:var F0=[3,O0(b0[1])];break;case 4:var F0=[4,O0(b0[1])];break;case 5:var F0=[5,O0(b0[1])];break;case 6:var F0=[6,O0(b0[1])];break;case 7:var F0=[7,O0(b0[1])];break;case 8:var F0=[8,O0(b0[1])];break;case 9:var F0=[9,O0(b0[1])];break;case 10:var F0=[10,O0(b0[1])];break;case 11:var M0=b0[1],er=O0(M0[2]),F0=[11,[0,M0[1],er]];break;case 12:var yr=b0[1],vr=O0(yr[4]),F0=[12,[0,yr[1],yr[2],yr[3],vr]];break;case 13:var $0=b0[1],Er=lr([0,Z],[0,p0],0),Mr=JD($0[4],Er),F0=[13,[0,$0[1],$0[2],$0[3],Mr]];break;case 14:var Br=b0[1],qr=O0(Br[3]),F0=[14,[0,Br[1],Br[2],qr]];break;case 15:var jr=b0[1],$r=O0(jr[2]),F0=[15,[0,jr[1],$r]];break;case 16:var ne=b0[1],Qr=O0(ne[3]),F0=[16,[0,ne[1],ne[2],Qr]];break;case 17:var be=b0[1],ae=O0(be[3]),F0=[17,[0,be[1],be[2],ae]];break;case 18:var pe=b0[1],oe=pe[1],ce=pe[2],ge=O0(oe[3]),F0=[18,[0,[0,oe[1],oe[2],ge],ce]];break;case 19:var q0=b0[1],Fr=O0(q0[2]),F0=[19,[0,q0[1],Fr]];break;case 20:var _=b0[1],k=O0(_[2]),F0=[20,[0,_[1],k]];break;case 21:var I=b0[1],U=O0(I[2]),F0=[21,[0,I[1],U]];break;case 22:var Y=b0[1],y0=O0(Y[2]),F0=[22,[0,Y[1],y0]];break;case 23:var P0=b0[1],I0=O0(P0[3]),F0=[23,[0,P0[1],P0[2],I0]];break;case 24:var D=b0[1],u0=O0(D[3]),F0=[24,[0,D[1],D[2],u0]];break;case 25:var X0=b0[1],J0=O0(X0[3]),F0=[25,[0,X0[1],X0[2],J0]];break;default:var ir=b0[1],Q0=O0(ir[2]),F0=[26,[0,ir[1],Q0]]}return[0,B[1],F0]});function Wr(B){var Z=pr(B);if(Y0(B,66),A0(B)===4){var p0=on(Z,pr(B));Y0(B,4),Ku(B,0);var b0=u(t[9],B);return k7(B),Y0(B,5),[0,[0,b0],lr([0,p0],[0,we(B)],0)]}return[0,0,lr([0,Z],[0,we(B)],0)]}var Jr=0;function ar(B){var Z=u2(0,B),p0=A0(Z);return typeof p0==\"number\"&&p0===66?[0,cr(Jr,Wr,Z)]:0}function _r(B){var Z=A0(B),p0=Yn(1,B);if(typeof Z==\"number\"&&Z===86){if(typeof p0==\"number\"&&p0===66){Y0(B,86);var b0=ar(B);return[0,[0,j1(B)],b0]}var O0=u(W0,B),M0=A0(B)===66?o2(B,O0):O0;return[0,M0,ar(B)]}return[0,[0,j1(B)],0]}function Ir(B,Z){var p0=_s(1,Z);Ku(p0,1);var b0=u(B,p0);return k7(p0),b0}function fe(B){return Ir(e,B)}function v0(B){return Ir(b,B)}function P(B){return Ir(X,B)}function L(B){return Ir(s0,B)}function Q(B,Z){return Ir(ur(E0,B,0,0),Z)}function i0(B){return Ir(U0,B)}function l0(B){return Ir(l,B)}function S0(B){return Ir(i,B)}function T0(B){return Ir(W0,B)}function rr(B){return Ir(ar,B)}function L0(B){return Ir(_r,B)}return[0,fe,v0,P,L,function(B){return Ir(hr,B)},Q,i0,l0,S0,T0,rr,L0]}function $ee(t){function n(c,s){if(s[0]===0)return s[1];var p=s[2][1];return Du(function(y){return ue(c,y)},p),s[1]}function e(c,s,p){var y=c?c[1]:26;if(p[0]===0)var T=p[1];else{var E=p[2][2];Du(function(A){return ue(s,A)},E);var T=p[1]}1-u(t[23],T)&&ue(s,[0,T[1],y]);var d=T[2],w=0;return d[0]===10&&js(d[1][2][1])&&(V7(s,[0,T[1],52]),w=1),o(t[19],s,T)}function i(c,s){return[0,[0,c,s[1]],[0,c,s[2]]]}function x(c,s){var p=Lc(c[2],s[2]);return[0,Lc(c[1],s[1]),p]}return[0,n,e,g$r,i,x,function(c){var s=ye(c[2]);return[0,ye(c[1]),s]}]}function Zee(t){function n(S){var M=A0(S);if(typeof M==\"number\"){var K=M-99|0,V=0;if(6>>0?K===14&&(V=1):4<(K-1|0)>>>0&&(V=1),V)return we(S)}var f0=x7(S);return f0&&Ms(S)}function e(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){Y0(f0,0),Y0(f0,12);var m0=u(t[10],f0);return Y0(f0,1),m0},S);k7(S);var V=lr([0,M],[0,n(S)],0);return[0,K[1],[0,K[2],V]]}function i(S){return A0(S)===1?0:[0,u(t[7],S)]}function x(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){Y0(f0,0);var m0=i(f0);return Y0(f0,1),m0},S);k7(S);var V=yu([0,M],[0,n(S)],0,0);return[0,K[1],[0,K[2],V]]}function c(S){Ku(S,0);var M=cr(0,function(K){Y0(K,0);var V=A0(K),f0=0;if(typeof V==\"number\"&&V===12){var m0=pr(K);Y0(K,12);var k0=u(t[10],K),x0=[3,[0,k0,lr([0,m0],0,0)]];f0=1}if(!f0)var g0=i(K),e0=g0?0:pr(K),x0=[2,[0,g0,yu(0,0,e0,0)]];return Y0(K,1),x0},S);return k7(S),[0,M[1],M[2]]}function s(S){var M=Pe(S),K=A0(S),V=0;if(typeof K!=\"number\"&&K[0]===7){var f0=K[1];V=1}if(!V){St(FQr,S);var f0=TQr}var m0=pr(S);ie(S);var k0=A0(S),g0=0;if(typeof k0==\"number\"){var e0=k0+CX|0,x0=0;if(72>>0?e0!==76&&(x0=1):70<(e0-1|0)>>>0||(x0=1),!x0){var l=we(S);g0=1}}if(!g0)var l=n(S);return[0,M,[0,f0,lr([0,m0],[0,l],0)]]}function p(S){var M=Yn(1,S);if(typeof M==\"number\"){if(M===10)for(var K=cr(0,function(m0){var k0=[0,s(m0)];return Y0(m0,10),[0,k0,s(m0)]},S);;){var V=A0(S);if(typeof V==\"number\"&&V===10){var f0=function(k0){return function(g0){return Y0(g0,10),[0,[1,k0],s(g0)]}}(K),K=cr([0,K[1]],f0,S);continue}return[2,K]}if(M===86)return[1,cr(0,function(m0){var k0=s(m0);return Y0(m0,86),[0,k0,s(m0)]},S)]}return[0,s(S)]}function y(S){return cr(0,function(M){var K=Yn(1,M),V=0;if(typeof K==\"number\"&&K===86){var f0=[1,cr(0,function(b){var R0=s(b);return Y0(b,86),[0,R0,s(b)]},M)];V=1}if(!V)var f0=[0,s(M)];var m0=A0(M),k0=0;if(typeof m0==\"number\"&&m0===82){Y0(M,82);var g0=pr(M),e0=A0(M),x0=0;if(typeof e0==\"number\")if(e0===0){var l=x(M),c0=l[2],t0=l[1];c0[1]||ue(M,[0,t0,56]);var o0=[0,[1,t0,c0]]}else x0=1;else if(e0[0]===8){Y0(M,e0);var w0=[0,e0[2]],_0=lr([0,g0],[0,n(M)],0),o0=[0,[0,e0[1],[0,w0,e0[3],_0]]]}else x0=1;if(x0){je(M,57);var o0=[0,[0,Pe(M),[0,gQr,SQr,0]]]}var E0=o0;k0=1}if(!k0)var E0=0;return[0,f0,E0]},S)}function T(S){return cr(0,function(M){Y0(M,98);var K=A0(M);if(typeof K==\"number\"){if(K===99)return ie(M),wQr}else if(K[0]===7)for(var V=0,f0=p(M);;){var m0=A0(M);if(typeof m0==\"number\"){if(m0===0){var V=[0,[1,e(M)],V];continue}}else if(m0[0]===7){var V=[0,[0,y(M)],V];continue}var k0=ye(V),g0=[0,c1,[0,f0,xu(M,j7),k0]];return xu(M,99)?[0,g0]:(B1(M,99),[1,g0])}return B1(M,99),EQr},S)}function E(S){return cr(0,function(M){Y0(M,98),Y0(M,j7);var K=A0(M);if(typeof K==\"number\"){if(K===99)return ie(M),Ni}else if(K[0]===7){var V=p(M);return pe0(M,99),[0,c1,[0,V]]}return B1(M,99),Ni},S)}var d=function S(M){return S.fun(M)},w=function S(M){return S.fun(M)},G=function S(M){return S.fun(M)};N(d,function(S){var M=A0(S);if(typeof M==\"number\"){if(M===0)return c(S)}else if(M[0]===8)return Y0(S,M),[0,M[1],[4,[0,M[2],M[3]]]];var K=u(G,S),V=K[2],f0=K[1];return Ni<=V[1]?[0,f0,[1,V[2]]]:[0,f0,[0,V[2]]]});function A(S){switch(S[0]){case 0:return S[1][2][1];case 1:var M=S[1][2],K=Te(hQr,M[2][2][1]);return Te(M[1][2][1],K);default:var V=S[1][2],f0=V[1],m0=f0[0]===0?f0[1][2][1]:A([2,f0[1]]);return Te(m0,Te(dQr,V[2][2][1]))}}return N(w,function(S){var M=pr(S),K=T(S);k7(S);var V=K[2];if(V[0]===0)var f0=V[1],m0=typeof f0==\"number\"?0:f0[2][2],k0=m0;else var k0=1;if(k0)var g0=SU,e0=g0,x0=cr(0,function(qr){return 0},S);else{Ku(S,3);for(var l=Pe(S),c0=0;;){var t0=i2(S),o0=A0(S),w0=0;if(typeof o0==\"number\"){var _0=0;if(o0===98){Ku(S,2);var E0=A0(S),U0=Yn(1,S),b=0;if(typeof E0==\"number\"&&E0===98&&typeof U0==\"number\"){var R0=0;if(j7!==U0&&Pn!==U0&&(R0=1),!R0){var X=E(S),s0=X[2],hr=X[1],Ar=typeof s0==\"number\"?[0,Ni,hr]:[0,c1,[0,hr,s0[2]]],or=S[23][1],W0=0;if(or){var Lr=or[2];if(Lr){var Tr=Lr[2];W0=1}}if(!W0)var Tr=ke(wRr);S[23][1]=Tr;var Hr=n2(S),Or=Yl(S[24][1],Hr);S[25][1]=Or;var fr=[0,ye(c0),t0,Ar];b=1}}if(!b){var Rr=u(w,S),Wr=Rr[2],Jr=Rr[1],ar=Ni<=Wr[1]?[0,Jr,[1,Wr[2]]]:[0,Jr,[0,Wr[2]]],c0=[0,ar,c0];continue}}else if(Pn===o0){St(0,S);var fr=[0,ye(c0),t0,SU]}else w0=1,_0=1;if(!_0)var _r=t0?t0[1]:l,Ir=yt(l,_r),e0=fr[3],x0=[0,Ir,fr[1]]}else w0=1;if(w0){var c0=[0,u(d,S),c0];continue}break}}var fe=we(S),v0=0;if(typeof e0!=\"number\"){var P=e0[1],L=0;if(c1===P){var Q=e0[2],i0=K[2];if(i0[0]===0){var l0=i0[1];if(typeof l0==\"number\")je(S,kQr);else{var S0=A(l0[2][1]);n0(A(Q[2][1]),S0)&&je(S,[17,S0])}}var T0=Q[1]}else if(Ni===P){var rr=K[2];if(rr[0]===0){var L0=rr[1];typeof L0!=\"number\"&&je(S,[17,A(L0[2][1])])}var T0=e0[2]}else L=1;if(!L){var B=T0;v0=1}}if(!v0)var B=K[1];var Z=K[2][1],p0=K[1];if(typeof Z==\"number\"){var b0=0,O0=lr([0,M],[0,fe],0);if(typeof e0!=\"number\"){var M0=e0[1],er=0;if(c1===M0)var yr=e0[2][1];else if(Ni===M0)var yr=e0[2];else er=1;if(!er){var vr=yr;b0=1}}if(!b0)var vr=B;var $0=[0,Ni,[0,p0,vr,x0,O0]]}else{var Er=0,Mr=lr([0,M],[0,fe],0);if(typeof e0!=\"number\"&&c1===e0[1]){var Br=[0,e0[2]];Er=1}if(!Er)var Br=0;var $0=[0,c1,[0,[0,p0,Z[2]],Br,x0,Mr]]}return[0,yt(K[1],B),$0]}),N(G,function(S){return Ku(S,2),u(w,S)}),[0,n,e,i,x,c,s,p,y,T,E,d,w,G]}function Fi(t){return typeof t==\"number\"?0:t[0]===0?1:t[1]}function Qee(t,n){return[0,t,n]}function tb(t,n,e){return[1,2,n,e,t,0]}function ub(t,n,e){return[1,2,t,n,0,e]}function Uc(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return s===1?[0,n,e]:[1,s,n,e,t,i]}function FL(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=FL(t,i),c=u(t,0),s=FL(t,(n-i|0)-1|0),p=c[2],y=c[1];return[1,Fi(x)+1|0,y,p,x,s]}var T=u(t,0),E=[0,T[1],T[2]]}else var E=e;return E}function P9(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return[1,s,n,e,t,i]}function Iu(t,n,e,i){var x=Fi(t),c=Fi(i);if((c+2|0)>>0){if(!(T7<(Or+1|0)>>>0)){var fr=Tr[3],Rr=Tr[4],Wr=ye(Tr[1][4]),Jr=ye(Tr[1][3]),ar=ye(Tr[1][2]),_r=ye(Tr[1][1]),Ir=on(Rr,pr(R0));Y0(R0,1);var fe=A0(R0),v0=0;if(typeof fe==\"number\"){var P=0;if(fe!==1&&Pn!==fe&&(v0=1,P=1),!P)var Q=we(R0)}else v0=1;if(v0)var L=x7(R0),Q=L&&Ms(R0);var i0=yu([0,Lr],[0,Q],Ir,0);if(or)switch(or[1]){case 0:return[0,[0,_r,1,fr,i0]];case 1:return[1,[0,ar,1,fr,i0]];case 2:var l0=1;break;default:return[3,[0,Wr,fr,i0]]}else{var S0=Dc(_r),T0=Dc(ar),rr=Dc(Jr),L0=Dc(Wr),B=0;if(S0===0&&T0===0){var Z=0;if(rr===0&&L0===0&&(B=1,Z=1),!Z){var l0=0;B=2}}var p0=0;switch(B){case 0:if(T0===0&&rr===0&&L0<=S0)return Du(function(K0){return ue(R0,[0,K0[1],[0,E0,K0[2][1][2][1]]])},Wr),[0,[0,_r,0,fr,i0]];if(S0===0&&rr===0&&L0<=T0)return Du(function(K0){return ue(R0,[0,K0[1],[8,E0,K0[2][1][2][1]]])},Wr),[1,[0,ar,0,fr,i0]];ue(R0,[0,U0,[2,E0]]);break;case 1:break;default:p0=1}if(!p0)return[2,[0,zJr,0,fr,i0]]}var b0=Dc(Jr),O0=Dc(Wr);if(b0!==0){var M0=0;if(O0!==0&&(b0>>0)T7<(Er+1|0)>>>0&&(Mr=1);else if(Er===7){Y0(R0,9);var Br=A0(R0),qr=0;if(typeof Br==\"number\"){var jr=0;if(Br!==1&&Pn!==Br&&(jr=1),!jr){var $r=1;qr=1}}if(!qr)var $r=0;ue(R0,[0,er,[7,$r]])}else Mr=1;Mr||($0=1)}$0||ue(R0,[0,er,qJr]);var Tr=[0,Tr[1],Tr[2],1,yr];continue}}var ne=Tr[2],Qr=Tr[1],be=cr(x,i,R0),ae=be[2],pe=ae[1],oe=pe[2][1];if(qn(oe,UJr))var ce=Tr;else{var ge=pe[1],q0=ae[2],Fr=be[1],_=It(oe,0),k=97<=_?1:0,I=k&&(_<=In?1:0);I&&ue(R0,[0,ge,[6,E0,oe]]),o(Mu[3],oe,ne)&&ue(R0,[0,ge,[1,E0,oe]]);var U=Tr[4],Y=Tr[3],y0=o(Mu[4],oe,ne),P0=[0,Tr[1],y0,Y,U],I0=function(Ur){return function(h0,Kr){return or&&or[1]!==h0?ue(R0,[0,Kr,[5,E0,or,Ur]]):0}}(oe);if(typeof q0==\"number\"){var D=0;if(or){var u0=or[1],X0=0;if(u0===1?ue(R0,[0,Fr,[8,E0,oe]]):u0?(D=1,X0=1):ue(R0,[0,Fr,[0,E0,oe]]),!X0)var J0=P0}else D=1;if(D)var J0=[0,[0,Qr[1],Qr[2],Qr[3],[0,[0,Fr,[0,pe]],Qr[4]]],y0,Y,U]}else switch(q0[0]){case 0:ue(R0,[0,q0[1],[5,E0,or,oe]]);var J0=P0;break;case 1:var ir=q0[1];I0(0,ir);var J0=[0,[0,[0,[0,Fr,[0,pe,[0,ir,q0[2]]]],Qr[1]],Qr[2],Qr[3],Qr[4]],y0,Y,U];break;case 2:var Q0=q0[1];I0(1,Q0);var J0=[0,[0,Qr[1],[0,[0,Fr,[0,pe,[0,Q0,q0[2]]]],Qr[2]],Qr[3],Qr[4]],y0,Y,U];break;default:var F0=q0[1];I0(2,F0);var J0=[0,[0,Qr[1],Qr[2],[0,[0,Fr,[0,pe,[0,F0,q0[2]]]],Qr[3]],Qr[4]],y0,Y,U]}var ce=J0}var Sr=A0(R0),mr=0;if(typeof Sr==\"number\"){var Cr=Sr-2|0,sr=0;Xt>>0?T7<(Cr+1|0)>>>0&&(sr=1):Cr===6?(je(R0,1),Y0(R0,8)):sr=1,sr||(mr=1)}mr||Y0(R0,9);var Tr=ce}},o0);return[16,[0,_0,b,lr([0,w0],0,0)]]}var s=0;function p(o0){return cr(s,c,o0)}function y(o0,w0){var _0=w0[2][1],E0=w0[1],U0=o0[1];js(_0)&&V7(U0,[0,E0,41]);var b=O9(_0),R0=b||f2(_0);return R0&&V7(U0,[0,E0,55]),[0,U0,o0[2]]}function T(o0,w0){var _0=w0[2];switch(_0[0]){case 0:return le(E,o0,_0[1][1]);case 1:return le(d,o0,_0[1][1]);case 2:var E0=_0[1][1],U0=E0[2][1],b=o0[2],R0=o0[1];o(Mu[3],U0,b)&&ue(R0,[0,E0[1],42]);var X=y([0,R0,b],E0),s0=o(Mu[4],U0,X[2]);return[0,X[1],s0];default:return ue(o0[1],[0,w0[1],31]),o0}}function E(o0,w0){if(w0[0]===0){var _0=w0[1][2],E0=_0[1],U0=E0[0]===1?y(o0,E0[1]):o0;return T(U0,_0[2])}return T(o0,w0[1][2][1])}function d(o0,w0){return w0[0]===2?o0:T(o0,w0[1][2][1])}function w(o0,w0,_0,E0){var U0=o0[5],b=q1(E0),R0=E0[2],X=R0[3],s0=_s(U0?0:w0,o0),hr=w0||U0||1-b;if(hr){if(_0){var Ar=_0[1],or=Ar[2][1],W0=Ar[1];js(or)&&V7(s0,[0,W0,44]);var Lr=O9(or),Tr=Lr||f2(or);Tr&&V7(s0,[0,W0,55])}var Hr=R0[2],Or=[0,s0,Mu[1]],fr=le(function(ar,_r){return T(ar,_r[2][1])},Or,Hr),Rr=X&&(T(fr,X[1][2][1]),0),Wr=Rr}else var Wr=hr;return Wr}var G=function o0(w0,_0){return o0.fun(w0,_0)};function A(o0){A0(o0)===21&&je(o0,s7);var w0=o(se[18],o0,41),_0=A0(o0)===82?1:0,E0=_0&&(Y0(o0,82),[0,u(se[10],o0)]);return[0,w0,E0]}var S=0;N(G,function(o0,w0){var _0=A0(o0);if(typeof _0==\"number\"){var E0=_0-5|0,U0=0;if(7>>0?is===E0&&(U0=1):5<(E0-1|0)>>>0&&(U0=1),U0){var b=_0===12?1:0;if(b)var R0=pr(o0),X=cr(0,function(or){return Y0(or,12),o(se[18],or,41)},o0),s0=lr([0,R0],0,0),hr=[0,[0,X[1],[0,X[2],s0]]];else var hr=b;return A0(o0)!==5&&je(o0,64),[0,ye(w0),hr]}}var Ar=cr(S,A,o0);return A0(o0)!==5&&Y0(o0,9),o(G,o0,[0,Ar,w0])});function M(o0,w0){function _0(U0){var b=mL(w0,re0(o0,U0)),R0=1,X=b[10]===1?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],R0,b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30]],s0=pr(X);Y0(X,4);var hr=fu(X),Ar=hr&&(A0(X)===21?1:0);if(Ar){var or=pr(X),W0=cr(0,function(ar){return Y0(ar,21),A0(ar)===86?[0,u(t[9],ar)]:(je(ar,Ri),0)},X),Lr=W0[2];if(Lr){A0(X)===9&&ie(X);var Tr=lr([0,or],0,0),Hr=[0,[0,W0[1],[0,Lr[1],Tr]]]}else var Hr=Lr;var Or=Hr}else var Or=Ar;var fr=o(G,X,0),Rr=pr(X);Y0(X,5);var Wr=yu([0,s0],[0,we(X)],Rr,0);return[0,Or,fr[1],fr[2],Wr]}var E0=0;return function(U0){return cr(E0,_0,U0)}}function K(o0,w0,_0,E0,U0){var b=fe0(o0,w0,_0,U0),R0=o(se[16],E0,b);return[0,[0,R0[1]],R0[2]]}function V(o0,w0,_0){var E0=Pe(o0),U0=A0(o0),b=0;if(typeof U0==\"number\")if(s7===U0){var R0=pr(o0);ie(o0);var s0=[0,[0,E0,[0,0,lr([0,R0],0,0)]]]}else if(L7===U0){var X=pr(o0);ie(o0);var s0=[0,[0,E0,[0,1,lr([0,X],0,0)]]]}else b=1;else b=1;if(b)var s0=0;if(s0){var hr=0;if(!w0&&!_0&&(hr=1),!hr)return ue(o0,[0,s0[1][1],7]),0}return s0}function f0(o0){if(Yt===A0(o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return S$r}function m0(o0){if(A0(o0)===64&&!Jl(1,o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return E$r}function k0(o0){var w0=m0(o0),_0=w0[1],E0=w0[2],U0=cr(0,function(W0){var Lr=pr(W0);Y0(W0,15);var Tr=f0(W0),Hr=Tr[1],Or=pl([0,E0,[0,Lr,[0,Tr[2],0]]]),fr=W0[7],Rr=A0(W0),Wr=0;if(fr&&typeof Rr==\"number\"){if(Rr===4){var Ir=0,fe=0;Wr=1}else if(Rr===98){var Jr=oi(W0,u(t[3],W0)),ar=A0(W0)===4?0:[0,ys(W0,o(se[13],h$r,W0))],Ir=ar,fe=Jr;Wr=1}}if(!Wr)var _r=G1(W0)?ys(W0,o(se[13],d$r,W0)):(be0(W0,k$r),[0,Pe(W0),w$r]),Ir=[0,_r],fe=oi(W0,u(t[3],W0));var v0=u(M(_0,Hr),W0),P=A0(W0)===86?v0:eb(W0,v0),L=u(t[12],W0),Q=L[2],i0=L[1];if(Q)var l0=he0(W0,Q),S0=i0;else var l0=Q,S0=o2(W0,i0);return[0,Hr,fe,Ir,P,S0,l0,Or]},o0),b=U0[2],R0=b[4],X=b[3],s0=b[1],hr=K(o0,_0,s0,0,q1(R0));w(o0,hr[2],X,R0);var Ar=U0[1],or=lr([0,b[7]],0,0);return[23,[0,X,R0,hr[1],_0,s0,b[6],b[5],b[2],or,Ar]]}var g0=0;function e0(o0){return cr(g0,k0,o0)}function x0(o0,w0){var _0=pr(w0);Y0(w0,o0);for(var E0=0,U0=0;;){var b=cr(0,function(or){var W0=o(se[18],or,40);if(xu(or,82))var Lr=0,Tr=[0,u(se[10],or)];else if(W0[2][0]===2)var Lr=0,Tr=0;else var Lr=[0,[0,W0[1],59]],Tr=0;return[0,[0,W0,Tr],Lr]},w0),R0=b[2],X=R0[2],s0=[0,[0,b[1],R0[1]],E0],hr=X?[0,X[1],U0]:U0;if(xu(w0,9)){var E0=s0,U0=hr;continue}var Ar=ye(hr);return[0,ye(s0),_0,Ar]}}var l=24;function c0(o0){return x0(l,o0)}function t0(o0){var w0=x0(27,F9(1,o0)),_0=w0[1],E0=w0[3],U0=ye(le(function(b,R0){return R0[2][2]?b:[0,[0,R0[1],58],b]},E0,_0));return[0,_0,w0[2],U0]}return[0,m0,f0,V,M,K,w,function(o0){return x0(28,F9(1,o0))},t0,c0,e0,p]}(mn),R9=$ee(se),ci=function(t){function n(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,pQr)){if(!n0(i0,mQr)){var l0=n0(Q[2][2][1],_Qr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],yQr);if(!S0)return S0}break;case 0:case 10:case 16:case 19:break;default:return 0}return 1}var e=t[1],i=function P(L){return P.fun(L)},x=function P(L){return P.fun(L)},c=function P(L){return P.fun(L)},s=function P(L){return P.fun(L)},p=function P(L){return P.fun(L)},y=function P(L){return P.fun(L)},T=function P(L){return P.fun(L)},E=function P(L){return P.fun(L)},d=function P(L){return P.fun(L)},w=function P(L){return P.fun(L)},G=function P(L){return P.fun(L)},A=function P(L){return P.fun(L)},S=function P(L){return P.fun(L)},M=function P(L){return P.fun(L)},K=function P(L){return P.fun(L)},V=function P(L){return P.fun(L)},f0=function P(L){return P.fun(L)},m0=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},k0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},g0=function P(L){return P.fun(L)},e0=function P(L){return P.fun(L)},x0=function P(L){return P.fun(L)},l=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},c0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},t0=function P(L){return P.fun(L)},o0=function P(L,Q,i0){return P.fun(L,Q,i0)},w0=function P(L){return P.fun(L)},_0=function P(L,Q,i0){return P.fun(L,Q,i0)},E0=function P(L){return P.fun(L)},U0=function P(L){return P.fun(L)},b=function P(L,Q){return P.fun(L,Q)},R0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},X=function P(L){return P.fun(L)},s0=function P(L,Q,i0){return P.fun(L,Q,i0)},hr=function P(L){return P.fun(L)},Ar=function P(L){return P.fun(L)},or=function P(L){return P.fun(L)},W0=function P(L,Q,i0){return P.fun(L,Q,i0)},Lr=t[2];function Tr(P){var L=Pe(P),Q=u(y,P),i0=u(p,P);if(i0){var l0=i0[1];return[0,cr([0,L],function(S0){var T0=ur(Lr,0,S0,Q);return[2,[0,l0,T0,u(x,S0),0]]},P)]}return Q}function Hr(P,L){if(typeof L==\"number\"){var Q=L!==55?1:0;if(!Q)return Q}throw Bs}function Or(P){var L=T9(Hr,P),Q=Tr(L),i0=A0(L);if(typeof i0==\"number\"){if(i0===11)throw Bs;if(i0===86){var l0=ue0(L),S0=0;if(l0){var T0=l0[1];if(typeof T0==\"number\"&&T0===5){var rr=1;S0=1}}if(!S0)var rr=0;if(rr)throw Bs}}if(G1(L)){if(Q[0]===0){var L0=Q[1][2];if(L0[0]===10&&!n0(L0[1][2][1],bQr)&&!x7(L))throw Bs}return Q}return Q}N(i,function(P){var L=A0(P),Q=0,i0=G1(P);if(typeof L==\"number\"){var l0=0;if(22<=L)if(L===58){if(P[17])return[0,u(c,P)];l0=1}else L!==98&&(l0=1);else L!==4&&!(21<=L)&&(l0=1);l0||(Q=1)}if(!Q&&!i0)return Tr(P);var S0=0;if(L===64&&fu(P)&&Yn(1,P)===98){var T0=Or,rr=or;S0=1}if(!S0)var T0=or,rr=Or;var L0=EL(P,rr);if(L0)return L0[1];var B=EL(P,T0);return B?B[1]:Tr(P)}),N(x,function(P){return o(e,P,u(i,P))}),N(c,function(P){return cr(0,function(L){L[10]&&je(L,91);var Q=pr(L),i0=Pe(L);Y0(L,58);var l0=Pe(L);if(x2(L))var S0=0,T0=0;else{var rr=xu(L,Yt),L0=A0(L),B=0;if(typeof L0==\"number\"){var Z=0;if(L0!==86)if(10<=L0)Z=1;else switch(L0){case 0:case 2:case 3:case 4:case 6:Z=1;break}if(!Z){var p0=0;B=1}}if(!B)var p0=1;var b0=rr||p0,O0=b0&&[0,u(x,L)],S0=rr,T0=O0}var M0=T0?0:we(L),er=yt(i0,l0);return[30,[0,T0,lr([0,Q],[0,M0],0),S0,er]]},P)}),N(s,function(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,cQr)){if(!n0(i0,sQr)){var l0=n0(Q[2][2][1],vQr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],lQr);if(!S0)return S0}break;case 10:case 16:break;default:return 0}return 1}),N(p,function(P){var L=A0(P),Q=0;if(typeof L==\"number\"){var i0=L-67|0;if(!(15>>0)){switch(i0){case 0:var l0=KZr;break;case 1:var l0=WZr;break;case 2:var l0=JZr;break;case 3:var l0=$Zr;break;case 4:var l0=ZZr;break;case 5:var l0=QZr;break;case 6:var l0=rQr;break;case 7:var l0=eQr;break;case 8:var l0=nQr;break;case 9:var l0=tQr;break;case 10:var l0=uQr;break;case 11:var l0=iQr;break;case 12:var l0=fQr;break;case 13:var l0=xQr;break;case 14:var l0=oQr;break;default:var l0=aQr}var S0=l0;Q=1}}if(!Q)var S0=0;return S0!==0&&ie(P),S0}),N(y,function(P){var L=Pe(P),Q=u(E,P);if(A0(P)===85){ie(P);var i0=u(x,Kl(0,P));Y0(P,86);var l0=cr(0,x,P),S0=yt(L,l0[1]),T0=l0[2];return[0,[0,S0,[7,[0,o(e,P,Q),i0,T0,0]]]]}return Q}),N(T,function(P){return o(e,P,u(y,P))});function fr(P,L,Q,i0,l0){var S0=o(e,P,L);return[0,[0,l0,[15,[0,i0,S0,o(e,P,Q),0]]]]}function Rr(P,L,Q,i0){for(var l0=P,S0=Q,T0=i0;;){var rr=A0(L);if(typeof rr==\"number\"&&rr===84){1-l0&&je(L,zZr),Y0(L,84);var L0=cr(0,d,L),B=L0[2],Z=L0[1],p0=A0(L),b0=0;if(typeof p0==\"number\"&&!(1<(p0-87|0)>>>0)){je(L,[23,oL(p0)]);var O0=Jr(L,B,Z),M0=Wr(L,O0[2],O0[1]),er=M0[2],yr=M0[1];b0=1}if(!b0)var er=B,yr=Z;var vr=yt(T0,yr),l0=1,S0=fr(L,S0,er,2,vr),T0=vr;continue}return[0,T0,S0]}}function Wr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0==\"number\"&&S0===87){ie(P);var T0=cr(0,d,P),rr=Jr(P,T0[2],T0[1]),L0=yt(l0,rr[1]),B=Rr(0,P,fr(P,i0,rr[2],0,L0),L0),i0=B[2],l0=B[1];continue}return[0,l0,i0]}}function Jr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0==\"number\"&&S0===88){ie(P);var T0=cr(0,d,P),rr=yt(l0,T0[1]),L0=Rr(0,P,fr(P,i0,T0[2],1,rr),rr),i0=L0[2],l0=L0[1];continue}return[0,l0,i0]}}N(E,function(P){var L=cr(0,d,P),Q=L[2],i0=L[1],l0=A0(P),S0=0;if(typeof l0==\"number\"&&l0===84){var rr=Rr(1,P,Q,i0);S0=1}if(!S0)var T0=Jr(P,Q,i0),rr=Wr(P,T0[2],T0[1]);return rr[2]});function ar(P,L,Q,i0){return[0,i0,[3,[0,Q,P,L,0]]]}N(d,function(P){var L=0;r:for(;;){var Q=cr(0,function(k){var I=u(w,k)!==0?1:0;return[0,I,u(G,Kl(0,k))]},P),i0=Q[2],l0=i0[2],S0=Q[1];if(A0(P)===98){var T0=0;l0[0]===0&&l0[1][2][0]===12?je(P,63):T0=1}var rr=A0(P),L0=0;if(typeof rr==\"number\"){var B=rr-17|0,Z=0;if(1>>0)if(72<=B)switch(B-72|0){case 0:var p0=gZr;break;case 1:var p0=FZr;break;case 2:var p0=TZr;break;case 3:var p0=OZr;break;case 4:var p0=IZr;break;case 5:var p0=AZr;break;case 6:var p0=NZr;break;case 7:var p0=CZr;break;case 8:var p0=PZr;break;case 9:var p0=DZr;break;case 10:var p0=LZr;break;case 11:var p0=RZr;break;case 12:var p0=jZr;break;case 13:var p0=GZr;break;case 14:var p0=MZr;break;case 15:var p0=BZr;break;case 16:var p0=qZr;break;case 17:var p0=UZr;break;case 18:var p0=HZr;break;case 19:var p0=XZr;break;default:Z=1}else Z=1;else var p0=B?YZr:P[12]?0:VZr;if(!Z){var b0=p0;L0=1}}if(!L0)var b0=0;if(b0!==0&&ie(P),!L&&!b0)return l0;if(b0){var O0=b0[1],M0=O0[1],er=i0[1],yr=er&&(M0===14?1:0);yr&&ue(P,[0,S0,27]);for(var vr=o(e,P,l0),$0=vr,Er=[0,M0,O0[2]],Mr=S0,Br=L;;){var qr=Er[2],jr=Er[1];if(Br){var $r=Br[1],ne=$r[2],Qr=ne[2],be=Qr[0]===0?Qr[1]:Qr[1]-1|0;if(qr[1]<=be){var ae=yt($r[3],Mr),pe=ar($r[1],$0,ne[1],ae),$0=pe,Er=[0,jr,qr],Mr=ae,Br=Br[2];continue}}var L=[0,[0,$0,[0,jr,qr],Mr],Br];continue r}}for(var oe=o(e,P,l0),ce=S0,ge=L;;){if(ge){var q0=ge[1],Fr=yt(q0[3],ce),_=ge[2],oe=ar(q0[1],oe,q0[2][1],Fr),ce=Fr,ge=_;continue}return[0,oe]}}}),N(w,function(P){var L=A0(P);if(typeof L==\"number\"){if(48<=L){if(s7<=L){if(!(cf<=L))switch(L-103|0){case 0:return _Zr;case 1:return yZr;case 6:return hZr;case 7:return dZr}}else if(L===65&&P[18])return kZr}else if(45<=L)switch(L+mv|0){case 0:return wZr;case 1:return EZr;default:return SZr}}return 0}),N(G,function(P){var L=Pe(P),Q=pr(P),i0=u(w,P);if(i0){var l0=i0[1];ie(P);var S0=cr(0,A,P),T0=S0[2],rr=yt(L,S0[1]),L0=0;if(l0===6){var B=T0[2],Z=0;switch(B[0]){case 10:V7(P,[0,rr,47]);break;case 16:B[1][2][0]===1&&ue(P,[0,rr,88]);break;default:Z=1}Z||(L0=1)}return[0,[0,rr,[28,[0,l0,T0,lr([0,Q],0,0)]]]]}var p0=A0(P),b0=0;if(typeof p0==\"number\")if(cf===p0)var O0=mZr;else if(T7===p0)var O0=pZr;else b0=1;else b0=1;if(b0)var O0=0;if(O0){ie(P);var M0=cr(0,A,P),er=M0[2];1-u(s,er)&&ue(P,[0,er[1],26]);var yr=er[2],vr=0;yr[0]===10&&js(yr[1][2][1])&&(gi(P,54),vr=1);var $0=yt(L,M0[1]),Er=lr([0,Q],0,0);return[0,[0,$0,[29,[0,O0[1],er,1,Er]]]]}return u(S,P)}),N(A,function(P){return o(e,P,u(G,P))}),N(S,function(P){var L=u(M,P);if(x7(P))return L;var Q=A0(P),i0=0;if(typeof Q==\"number\")if(cf===Q)var l0=bZr;else if(T7===Q)var l0=lZr;else i0=1;else i0=1;if(i0)var l0=0;if(l0){var S0=o(e,P,L);1-u(s,S0)&&ue(P,[0,S0[1],26]);var T0=S0[2],rr=0;T0[0]===10&&js(T0[1][2][1])&&(gi(P,53),rr=1);var L0=Pe(P);ie(P);var B=we(P),Z=yt(S0[1],L0),p0=lr(0,[0,B],0);return[0,[0,Z,[29,[0,l0[1],S0,0,p0]]]]}return L}),N(M,function(P){var L=Pe(P),Q=1-P[16],i0=0,l0=P[16]===0?P:[0,P[1],P[2],P[3],P[4],P[5],P[6],P[7],P[8],P[9],P[10],P[11],P[12],P[13],P[14],P[15],i0,P[17],P[18],P[19],P[20],P[21],P[22],P[23],P[24],P[25],P[26],P[27],P[28],P[29],P[30]],S0=A0(l0),T0=0;if(typeof S0==\"number\"){var rr=S0-44|0;if(!(7>>0)){var L0=0;switch(rr){case 0:if(Q)var B=[0,u(g0,l0)];else L0=1;break;case 6:var B=[0,u(f0,l0)];break;case 7:var B=[0,u(V,l0)];break;default:L0=1}if(!L0){var Z=B;T0=1}}}if(!T0)var Z=Gs(l0)?[0,u(t0,l0)]:u(E0,l0);return p7(m0,0,0,l0,L,Z)}),N(K,function(P){return o(e,P,u(M,P))}),N(V,function(P){switch(P[21]){case 0:var L=0,Q=0;break;case 1:var L=0,Q=1;break;default:var L=1,Q=1}var i0=Pe(P),l0=pr(P);Y0(P,51);var S0=[0,i0,[23,[0,lr([0,l0],[0,we(P)],0)]]],T0=A0(P);if(typeof T0==\"number\"&&!(11<=T0))switch(T0){case 4:var rr=L?S0:(ue(P,[0,i0,5]),[0,i0,[10,Rc(0,[0,i0,oZr])]]);return R(k0,aZr,P,i0,rr);case 6:case 10:var L0=Q?S0:(ue(P,[0,i0,4]),[0,i0,[10,Rc(0,[0,i0,sZr])]]);return R(k0,vZr,P,i0,L0)}return Q?St(cZr,P):ue(P,[0,i0,4]),S0}),N(f0,function(P){return cr(0,function(L){var Q=pr(L),i0=Pe(L);if(Y0(L,50),xu(L,10)){var l0=Rc(0,[0,i0,iZr]),S0=Pe(L);Zl(L,fZr);var T0=Rc(0,[0,S0,xZr]);return[17,[0,l0,T0,lr([0,Q],[0,we(L)],0)]]}var rr=pr(L);Y0(L,4);var L0=ur(s0,[0,rr],0,u(x,Kl(0,L)));return Y0(L,5),[11,[0,L0,lr([0,Q],[0,we(L)],0)]]},P)}),N(m0,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=p7(l,[0,S0],[0,T0],Q,i0,l0),L0=ue0(Q),B=0;if(L0){var Z=L0[1];if(typeof Z==\"number\"&&Z===83){var p0=1;B=1}}if(!B)var p0=0;function b0(vr){var $0=$t(vr);function Er(Br,qr){return o(Qe(Br,Di,78),Br,qr)}var Mr=o(e,vr,rr);return o($0[2],Mr,Er)}function O0(vr,$0,Er){var Mr=u(x0,$0),Br=Mr[1],qr=yt(i0,Br),jr=[0,Er,vr,[0,Br,Mr[2]],0],$r=0;if(!p0&&!T0){var ne=[4,jr];$r=1}if(!$r)var ne=[20,[0,jr,qr,p0]];var Qr=T0||p0;return p7(m0,[0,S0],[0,Qr],$0,i0,[0,[0,qr,ne]])}if(Q[13])return rr;var M0=A0(Q);if(typeof M0==\"number\"){var er=M0-98|0;if(2>>0){if(er===-94)return O0(0,Q,b0(Q))}else if(er!==1&&fu(Q)){var yr=T9(function(vr,$0){throw Bs},Q);return _e0(yr,rr,function(vr){var $0=b0(vr);return O0(u(e0,vr),vr,$0)})}}return rr}),N(k0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(m0,[0,l0],0,L,Q,[0,i0]))}),N(g0,function(P){return cr(0,function(L){var Q=Pe(L),i0=pr(L);if(Y0(L,44),L[11]&&A0(L)===10){var l0=we(L);ie(L);var S0=Rc(lr([0,i0],[0,l0],0),[0,Q,eZr]),T0=A0(L);return typeof T0!=\"number\"&&T0[0]===4&&!n0(T0[3],nZr)?[17,[0,S0,o(se[13],0,L),0]]:(St(tZr,L),ie(L),[10,S0])}var rr=Pe(L),L0=A0(L),B=0;if(typeof L0==\"number\")if(L0===44)var Z=u(g0,L);else if(L0===51)var Z=u(V,_L(1,L));else B=1;else B=1;if(B)var Z=Gs(L)?u(t0,L):u(U0,L);var p0=R(c0,uZr,_L(1,L),rr,Z),b0=A0(L),O0=0;if(typeof b0!=\"number\"&&b0[0]===3){var M0=R(R0,L,rr,p0,b0[1]);O0=1}if(!O0)var M0=p0;var er=0;if(A0(L)!==4){var yr=0;if(fu(L)&&A0(L)===98&&(yr=1),!yr){var Er=M0;er=1}}if(!er)var vr=$t(L),$0=function(ne,Qr){return o(Qe(ne,Di,79),ne,Qr)},Er=o(vr[2],M0,$0);var Mr=fu(L),Br=Mr&&_e0(T9(function(ne,Qr){throw Bs},L),0,e0),qr=A0(L),jr=0;if(typeof qr==\"number\"&&qr===4){var $r=[0,u(x0,L)];jr=1}if(!jr)var $r=0;return[18,[0,Er,Br,$r,lr([0,i0],0,0)]]},P)});function _r(P){var L=pr(P);Y0(P,98);for(var Q=0;;){var i0=A0(P);if(typeof i0==\"number\"){var l0=0;if((i0===99||Pn===i0)&&(l0=1),l0){var S0=ye(Q),T0=pr(P);Y0(P,99);var rr=A0(P)===4?$t(P)[1]:we(P);return[0,S0,yu([0,L],[0,rr],T0,0)]}}var L0=A0(P),B=0;if(typeof L0!=\"number\"&&L0[0]===4&&!n0(L0[2],Q$r)){var Z=Pe(P),p0=pr(P);Zl(P,rZr);var b0=[1,[0,Z,[0,lr([0,p0],[0,we(P)],0)]]];B=1}if(!B)var b0=[0,u(mn[1],P)];var O0=[0,b0,Q];A0(P)!==99&&Y0(P,9);var Q=O0}}N(e0,function(P){Ku(P,1);var L=A0(P)===98?1:0,Q=L&&[0,cr(0,_r,P)];return k7(P),Q});function Ir(P){var L=pr(P);Y0(P,12);var Q=u(x,P);return[0,Q,lr([0,L],0,0)]}N(x0,function(P){return cr(0,function(L){var Q=pr(L);Y0(L,4);for(var i0=0;;){var l0=A0(L);if(typeof l0==\"number\"){var S0=0;if((l0===5||Pn===l0)&&(S0=1),S0){var T0=ye(i0),rr=pr(L);return Y0(L,5),[0,T0,yu([0,Q],[0,we(L)],rr,0)]}}var L0=A0(L),B=0;if(typeof L0==\"number\"&&L0===12){var Z=[1,cr(0,Ir,L)];B=1}if(!B)var Z=[0,u(x,L)];var p0=[0,Z,i0];A0(L)!==5&&Y0(L,9);var i0=p0}},P)}),N(l,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=A0(Q),L0=0;if(typeof rr==\"number\")switch(rr){case 6:ie(Q);var B=0,Z=[0,T0],p0=[0,S0];L0=2;break;case 10:ie(Q);var b0=0,O0=[0,T0],M0=[0,S0];L0=1;break;case 83:1-S0&&je(Q,99),Y0(Q,83);var er=0,yr=A0(Q);if(typeof yr==\"number\")switch(yr){case 4:return l0;case 6:ie(Q);var B=K$r,Z=W$r,p0=[0,S0];L0=2,er=1;break;case 98:if(fu(Q))return l0;break}else if(yr[0]===3)return je(Q,ti),l0;if(!er){var b0=J$r,O0=$$r,M0=[0,S0];L0=1}break}else if(rr[0]===3){T0&&je(Q,ti);var vr=rr[1];return p7(m0,Z$r,0,Q,i0,[0,R(R0,Q,i0,o(e,Q,l0),vr)])}switch(L0){case 0:return l0;case 1:var $0=M0?S0:1,Er=O0&&O0[1],Mr=b0&&b0[1],Br=A0(Q),qr=0;if(typeof Br==\"number\"&&Br===14){var jr=ge0(Q),$r=jr[1],ne=Q[29][1],Qr=jr[2][1];if(ne){var be=ne[1];Q[29][1]=[0,[0,be[1],[0,[0,Qr,$r],be[2]]],ne[2]]}else ue(Q,[0,$r,89]);var pe=[1,jr],oe=$r;qr=1}if(!qr)var ae=z7(Q),pe=[0,ae],oe=ae[1];var ce=yt(i0,oe),ge=0;l0[0]===0&&l0[1][2][0]===23&&pe[0]===1&&(ue(Q,[0,ce,90]),ge=1);var q0=[0,o(e,Q,l0),pe,0],Fr=Er?[21,[0,q0,ce,Mr]]:[16,q0];return p7(m0,[0,$0],[0,Er],Q,i0,[0,[0,ce,Fr]]);default:var _=p0?S0:1,k=Z&&Z[1],I=B&&B[1],U=_L(0,Q),Y=u(se[7],U),y0=Pe(Q);Y0(Q,7);var P0=we(Q),I0=yt(i0,y0),D=lr(0,[0,P0],0),u0=[0,o(e,Q,l0),[2,Y],D],X0=k?[21,[0,u0,I0,I]]:[16,u0];return p7(m0,[0,_],[0,k],Q,i0,[0,[0,I0,X0]])}}),N(c0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(l,[0,l0],0,L,Q,[0,i0]))}),N(t0,function(P){return cr(0,function(L){var Q=u(Vn[1],L),i0=Q[1],l0=Q[2],S0=cr(0,function(M0){var er=pr(M0);Y0(M0,15);var yr=u(Vn[2],M0),vr=yr[1],$0=pl([0,l0,[0,er,[0,yr[2],0]]]);if(A0(M0)===4)var Er=0,Mr=0;else{var Br=A0(M0),qr=0;if(typeof Br==\"number\"){var jr=Br!==98?1:0;if(!jr){var ne=jr;qr=1}}if(!qr)var $r=mL(vr,re0(i0,M0)),ne=[0,ys($r,o(se[13],z$r,$r))];var Er=oi(M0,u(mn[3],M0)),Mr=ne}var Qr=t2(0,M0),be=ur(Vn[4],i0,vr,Qr),ae=A0(Qr)===86?be:eb(Qr,be),pe=u(mn[12],Qr),oe=pe[2],ce=pe[1];if(oe)var ge=he0(Qr,oe),q0=ce;else var ge=oe,q0=o2(Qr,ce);return[0,Mr,ae,vr,ge,q0,Er,$0]},L),T0=S0[2],rr=T0[3],L0=T0[2],B=T0[1],Z=q1(L0),p0=p7(Vn[5],L,i0,rr,1,Z);R(Vn[6],L,p0[2],B,L0);var b0=S0[1],O0=lr([0,T0[7]],0,0);return[8,[0,B,L0,p0[1],i0,rr,T0[4],T0[5],T0[6],O0,b0]]},P)}),N(o0,function(P,L,Q){switch(L){case 1:gi(P,45);try{var i0=jv(Rv(Te(U$r,Q))),l0=i0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(H$r,Q))}break;case 2:gi(P,46);try{var S0=ol(Q),l0=S0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(X$r,Q))}break;case 4:try{var T0=ol(Q),l0=T0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(Y$r,Q))}break;default:try{var rr=jv(Rv(Q)),l0=rr}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(V$r,Q))}}return Y0(P,[0,L,Q]),l0}),N(w0,function(P){var L=un(P);return L!==0&&Xt===It(P,L-1|0)?m7(P,0,L-1|0):P}),N(_0,function(P,L,Q){if(2<=L){var i0=u(w0,Q);try{var l0=ol(i0),S0=l0}catch(Z){if(Z=Et(Z),Z[1]!==q7)throw Z;var S0=ke(Te(B$r,i0))}var T0=S0}else{var rr=u(w0,Q);try{var L0=jv(Rv(rr)),B=L0}catch(p0){if(p0=Et(p0),p0[1]!==q7)throw p0;var B=ke(Te(q$r,rr))}var T0=B}return Y0(P,[1,L,Q]),T0}),N(E0,function(P){var L=Pe(P),Q=pr(P),i0=A0(P);if(typeof i0==\"number\")switch(i0){case 0:var l0=u(se[12],P);return[1,[0,l0[1],[19,l0[2]]],l0[3]];case 4:return[0,u(X,P)];case 6:var S0=cr(0,hr,P),T0=S0[2];return[1,[0,S0[1],[0,T0[1]]],T0[2]];case 21:return ie(P),[0,[0,L,[26,[0,lr([0,Q],[0,we(P)],0)]]]];case 29:return ie(P),[0,[0,L,[14,[0,0,R$r,lr([0,Q],[0,we(P)],0)]]]];case 40:return[0,u(se[22],P)];case 98:var rr=u(se[17],P),L0=rr[2],B=rr[1],Z=Ni<=L0[1]?[13,L0[2]]:[12,L0[2]];return[0,[0,B,Z]];case 30:case 31:ie(P);var p0=i0===31?1:0,b0=p0?G$r:M$r;return[0,[0,L,[14,[0,[1,p0],b0,lr([0,Q],[0,we(P)],0)]]]];case 74:case 105:return[0,u(Ar,P)]}else switch(i0[0]){case 0:var O0=i0[2],M0=[2,ur(o0,P,i0[1],O0)];return[0,[0,L,[14,[0,M0,O0,lr([0,Q],[0,we(P)],0)]]]];case 1:var er=i0[2],yr=[3,ur(_0,P,i0[1],er)];return[0,[0,L,[14,[0,yr,er,lr([0,Q],[0,we(P)],0)]]]];case 2:var vr=i0[1];vr[4]&&gi(P,45),ie(P);var $0=[0,vr[2]],Er=lr([0,Q],[0,we(P)],0);return[0,[0,vr[1],[14,[0,$0,vr[3],Er]]]];case 3:var Mr=o(b,P,i0[1]);return[0,[0,Mr[1],[25,Mr[2]]]]}if(G1(P)){var Br=o(se[13],0,P);return[0,[0,Br[1],[10,Br]]]}St(0,P);var qr=0;return typeof i0!=\"number\"&&i0[0]===6&&(ie(P),qr=1),[0,[0,L,[14,[0,0,j$r,lr([0,Q],[0,0],0)]]]]}),N(U0,function(P){return o(e,P,u(E0,P))}),N(b,function(P,L){var Q=L[3],i0=L[2],l0=L[1],S0=pr(P);Y0(P,[3,L]);var T0=[0,l0,[0,[0,i0[2],i0[1]],Q]];if(Q)var rr=0,L0=[0,T0,0],B=l0;else for(var Z=[0,T0,0],p0=0;;){var b0=u(se[7],P),O0=[0,b0,p0],M0=A0(P),er=0;if(typeof M0==\"number\"&&M0===1){Ku(P,4);var yr=A0(P),vr=0;if(typeof yr!=\"number\"&&yr[0]===3){var $0=yr[1],Er=$0[3],Mr=$0[2],Br=$0[1];ie(P);var qr=[0,[0,Mr[2],Mr[1]],Er];k7(P);var jr=[0,[0,Br,qr],Z];if(!Er){var Z=jr,p0=O0;continue}var $r=ye(O0),ne=[0,Br,ye(jr),$r];er=1,vr=1}if(!vr)throw[0,Sn,P$r]}if(!er){St(D$r,P);var Qr=[0,b0[1],L$r],be=ye(O0),ae=ye([0,Qr,Z]),ne=[0,b0[1],ae,be]}var rr=ne[3],L0=ne[2],B=ne[1];break}var pe=we(P),oe=yt(l0,B);return[0,oe,[0,L0,rr,lr([0,S0],[0,pe],0)]]}),N(R0,function(P,L,Q,i0){var l0=$t(P);function S0(L0,B){return o(Qe(L0,Di,28),L0,B)}var T0=o(l0[2],Q,S0),rr=o(b,P,i0);return[0,yt(L,rr[1]),[24,[0,T0,rr,0]]]}),N(X,function(P){var L=pr(P),Q=cr(0,function(T0){Y0(T0,4);var rr=Pe(T0),L0=u(x,T0),B=A0(T0),Z=0;if(typeof B==\"number\")if(B===9)var p0=[0,ur(W0,T0,rr,[0,L0,0])];else if(B===86)var p0=[1,[0,L0,u(mn[9],T0),0]];else Z=1;else Z=1;if(Z)var p0=[0,L0];return Y0(T0,5),p0},P),i0=Q[2],l0=we(P),S0=i0[0]===0?i0[1]:[0,Q[1],[27,i0[1]]];return ur(s0,[0,L],[0,l0],S0)}),N(s0,function(P,L,Q){var i0=Q[2],l0=P&&P[1],S0=L&&L[1];function T0(Je){return y7(Je,lr([0,l0],[0,S0],0))}function rr(Je){return JD(Je,lr([0,l0],[0,S0],0))}switch(i0[0]){case 0:var L0=i0[1],B=rr(L0[2]),Ne=[0,[0,L0[1],B]];break;case 1:var Z=i0[1],p0=Z[10],b0=T0(Z[9]),Ne=[1,[0,Z[1],Z[2],Z[3],Z[4],Z[5],Z[6],Z[7],Z[8],b0,p0]];break;case 2:var O0=i0[1],M0=T0(O0[4]),Ne=[2,[0,O0[1],O0[2],O0[3],M0]];break;case 3:var er=i0[1],yr=T0(er[4]),Ne=[3,[0,er[1],er[2],er[3],yr]];break;case 4:var vr=i0[1],$0=T0(vr[4]),Ne=[4,[0,vr[1],vr[2],vr[3],$0]];break;case 5:var Er=i0[1],Mr=T0(Er[7]),Ne=[5,[0,Er[1],Er[2],Er[3],Er[4],Er[5],Er[6],Mr]];break;case 7:var Br=i0[1],qr=T0(Br[4]),Ne=[7,[0,Br[1],Br[2],Br[3],qr]];break;case 8:var jr=i0[1],$r=jr[10],ne=T0(jr[9]),Ne=[8,[0,jr[1],jr[2],jr[3],jr[4],jr[5],jr[6],jr[7],jr[8],ne,$r]];break;case 10:var Qr=i0[1],be=Qr[2],ae=T0(be[2]),Ne=[10,[0,Qr[1],[0,be[1],ae]]];break;case 11:var pe=i0[1],oe=T0(pe[2]),Ne=[11,[0,pe[1],oe]];break;case 12:var ce=i0[1],ge=T0(ce[4]),Ne=[12,[0,ce[1],ce[2],ce[3],ge]];break;case 13:var q0=i0[1],Fr=T0(q0[4]),Ne=[13,[0,q0[1],q0[2],q0[3],Fr]];break;case 14:var _=i0[1],k=T0(_[3]),Ne=[14,[0,_[1],_[2],k]];break;case 15:var I=i0[1],U=T0(I[4]),Ne=[15,[0,I[1],I[2],I[3],U]];break;case 16:var Y=i0[1],y0=T0(Y[3]),Ne=[16,[0,Y[1],Y[2],y0]];break;case 17:var P0=i0[1],I0=T0(P0[3]),Ne=[17,[0,P0[1],P0[2],I0]];break;case 18:var D=i0[1],u0=T0(D[4]),Ne=[18,[0,D[1],D[2],D[3],u0]];break;case 19:var X0=i0[1],J0=rr(X0[2]),Ne=[19,[0,X0[1],J0]];break;case 20:var ir=i0[1],Q0=ir[1],F0=ir[3],Sr=ir[2],mr=T0(Q0[4]),Ne=[20,[0,[0,Q0[1],Q0[2],Q0[3],mr],Sr,F0]];break;case 21:var Cr=i0[1],sr=Cr[1],Pr=Cr[3],K0=Cr[2],Ur=T0(sr[3]),Ne=[21,[0,[0,sr[1],sr[2],Ur],K0,Pr]];break;case 22:var h0=i0[1],Kr=T0(h0[2]),Ne=[22,[0,h0[1],Kr]];break;case 23:var Ne=[23,[0,T0(i0[1][1])]];break;case 24:var re=i0[1],xe=T0(re[3]),Ne=[24,[0,re[1],re[2],xe]];break;case 25:var Re=i0[1],ve=T0(Re[3]),Ne=[25,[0,Re[1],Re[2],ve]];break;case 26:var Ne=[26,[0,T0(i0[1][1])]];break;case 27:var Ie=i0[1],Ge=T0(Ie[3]),Ne=[27,[0,Ie[1],Ie[2],Ge]];break;case 28:var Me=i0[1],an=T0(Me[3]),Ne=[28,[0,Me[1],Me[2],an]];break;case 29:var We=i0[1],Ae=T0(We[4]),Ne=[29,[0,We[1],We[2],We[3],Ae]];break;case 30:var cn=i0[1],rn=cn[4],kn=cn[3],vn=T0(cn[2]),Ne=[30,[0,cn[1],vn,kn,rn]];break;default:var Ne=i0}return[0,Q[1],Ne]}),N(hr,function(P){var L=pr(P);Y0(P,6);for(var Q=[0,0,t[3]];;){var i0=Q[2],l0=Q[1],S0=A0(P);if(typeof S0==\"number\"){var T0=0;if(13<=S0)Pn===S0&&(T0=1);else if(7<=S0)switch(S0-7|0){case 2:var rr=Pe(P);ie(P);var Q=[0,[0,[2,rr],l0],i0];continue;case 5:var L0=pr(P),B=cr(0,function(Qr){ie(Qr);var be=u(i,Qr);return be[0]===0?[0,be[1],t[3]]:[0,be[1],be[2]]},P),Z=B[2],p0=Z[2],b0=B[1],O0=lr([0,L0],0,0),M0=[1,[0,b0,[0,Z[1],O0]]],er=A0(P)===7?1:0,yr=0;if(!er&&Yn(1,P)===7){var vr=[0,p0[1],[0,[0,b0,65],p0[2]]];yr=1}if(!yr)var vr=p0;1-er&&Y0(P,9);var Q=[0,[0,M0,l0],o(t[5],vr,i0)];continue;case 0:T0=1;break}if(T0){var $0=u(t[6],i0),Er=ye(l0),Mr=pr(P);return Y0(P,7),[0,[0,Er,yu([0,L],[0,we(P)],Mr,0)],$0]}}var Br=u(i,P);if(Br[0]===0)var qr=t[3],jr=Br[1];else var qr=Br[2],jr=Br[1];A0(P)!==7&&Y0(P,9);var Q=[0,[0,[0,jr],l0],o(t[5],qr,i0)]}}),N(Ar,function(P){Ku(P,5);var L=Pe(P),Q=pr(P),i0=A0(P),l0=0;if(typeof i0!=\"number\"&&i0[0]===5){var S0=i0[3],T0=i0[2];ie(P);var rr=we(P),L0=rr,B=S0,Z=T0,p0=Te(O$r,Te(T0,Te(T$r,S0)));l0=1}if(!l0){St(I$r,P);var L0=0,B=A$r,Z=N$r,p0=C$r}k7(P);var b0=$n(un(B)),O0=un(B)-1|0,M0=0;if(!(O0<0))for(var er=M0;;){var yr=Vr(B,er),vr=yr-100|0,$0=0;if(!(21>>0))switch(vr){case 0:case 3:case 5:case 9:case 15:case 17:case 21:qi(b0,yr),$0=1;break}var Er=er+1|0;if(O0!==er){var er=Er;continue}break}var Mr=Mt(b0);return n0(Mr,B)&&je(P,[13,B]),[0,L,[14,[0,[4,[0,Z,Mr]],p0,lr([0,Q],[0,L0],0)]]]});function fe(P,L){if(typeof L==\"number\"){var Q=0;if(61<=L){var i0=L-64|0;27>>0?i0===43&&(Q=1):25<(i0-1|0)>>>0&&(Q=1)}else{var l0=L+_y|0;17>>0?-1<=l0&&(Q=1):l0===13&&(Q=1)}if(Q)return 0}throw Bs}function v0(P){var L=A0(P);if(typeof L==\"number\"&&!L){var Q=o(se[16],1,P);return[0,[0,Q[1]],Q[2]]}return[0,[1,u(se[10],P)],0]}return N(or,function(P){var L=T9(fe,P),Q=Pe(L);if(Yn(1,L)===11)var l0=0,S0=0;else var i0=u(Vn[1],L),l0=i0[2],S0=i0[1];var T0=cr(0,function(ne){var Qr=oi(ne,u(mn[3],ne));if(G1(ne)&&Qr===0){var be=o(se[13],F$r,ne),ae=be[1],pe=[0,ae,[0,[0,ae,[2,[0,be,[0,j1(ne)],0]]],0]];return[0,Qr,[0,ae,[0,0,[0,pe,0],0,0]],[0,[0,ae[1],ae[3],ae[3]]],0]}var oe=ur(Vn[4],ne[18],ne[17],ne),ce=u2(1,ne),ge=u(mn[12],ce);return[0,Qr,oe,ge[1],ge[2]]},L),rr=T0[2],L0=rr[2],B=L0[2],Z=0;if(!B[1]){var p0=0;if(!B[3]&&B[2]&&(p0=1),!p0){var b0=ie0(L);Z=1}}if(!Z)var b0=L;var O0=L0[2],M0=O0[1],er=M0?(ue(b0,[0,M0[1][1],Zc]),[0,L0[1],[0,0,O0[2],O0[3],O0[4]]]):L0,yr=q1(er),vr=x7(b0),$0=vr&&(A0(b0)===11?1:0);$0&&je(b0,60),Y0(b0,11);var Er=fe0(ie0(b0),S0,0,yr),Mr=cr(0,v0,Er),Br=Mr[2];R(Vn[6],Er,Br[2],0,er);var qr=yt(Q,Mr[1]),jr=T0[1],$r=lr([0,l0],0,0);return[0,[0,qr,[1,[0,0,er,Br[1],S0,0,rr[4],rr[3],rr[1],$r,jr]]]]}),N(W0,function(P,L,Q){return cr([0,L],function(i0){for(var l0=Q;;){var S0=A0(i0);if(typeof S0==\"number\"&&S0===9){ie(i0);var l0=[0,u(x,i0),l0];continue}return[22,[0,ye(l0),0]]}},P)}),[0,x,i,T,n,K,o0,W0]}(R9),Us=function(t){function n(e0){var x0=pr(e0);ie(e0);var l=lr([0,x0],0,0),c0=u(ci[5],e0),t0=x7(e0)?rb(e0):N9(e0);function o0(w0,_0){return o(Qe(w0,Di,80),w0,_0)}return[0,o(t0[2],c0,o0),l]}function e(e0){var x0=e0[27][2];if(x0)for(var l=0;;){var c0=A0(e0);if(typeof c0==\"number\"&&c0===13){var l=[0,cr(0,n,e0),l];continue}return ye(l)}return x0}function i(e0,x0){var l=e0&&e0[1],c0=pr(x0),t0=A0(x0);if(typeof t0==\"number\")switch(t0){case 6:var o0=cr(0,function(Jr){var ar=pr(Jr);Y0(Jr,6);var _r=Kl(0,Jr),Ir=u(se[10],_r);return Y0(Jr,7),[0,Ir,lr([0,ar],[0,we(Jr)],0)]},x0),w0=o0[1];return[0,w0,[3,[0,w0,o0[2]]]];case 14:if(l){var _0=ge0(x0),E0=x0[29][1],U0=_0[2][1];if(E0){var b=E0[1],R0=E0[2],X=b[2],s0=[0,[0,o(Mu[4],U0,b[1]),X],R0];x0[29][1]=s0}else ke(Ujr);return[0,_0[1],[2,_0]]}var hr=cr(0,function(Jr){return ie(Jr),[1,z7(Jr)]},x0),Ar=hr[1];return ue(x0,[0,Ar,89]),[0,Ar,hr[2]]}else switch(t0[0]){case 0:var or=t0[2],W0=Pe(x0),Lr=[2,ur(ci[6],x0,t0[1],or)];return[0,W0,[0,[0,W0,[0,Lr,or,lr([0,c0],[0,we(x0)],0)]]]];case 2:var Tr=t0[1],Hr=Tr[4],Or=Tr[3],fr=Tr[2],Rr=Tr[1];return Hr&&gi(x0,45),Y0(x0,[2,[0,Rr,fr,Or,Hr]]),[0,Rr,[0,[0,Rr,[0,[0,fr],Or,lr([0,c0],[0,we(x0)],0)]]]]}var Wr=z7(x0);return[0,Wr[1],[1,Wr]]}function x(e0,x0,l){var c0=u(Vn[2],e0),t0=c0[1],o0=c0[2],w0=i([0,x0],e0),_0=w0[1],E0=0,U0=Xi(e0,w0[2]);return[0,U0,cr(0,function(b){var R0=t2(1,b),X=cr(0,function(Tr){var Hr=ur(Vn[4],0,0,Tr),Or=0,fr=A0(Tr)===86?Hr:eb(Tr,Hr);if(l){var Rr=fr[2],Wr=0;if(Rr[1])ue(Tr,[0,_0,j7]),Wr=1;else{var Jr=0;!Rr[2]&&!Rr[3]&&(Wr=1,Jr=1),Jr||ue(Tr,[0,_0,80])}}else{var ar=fr[2];if(ar[1])ue(Tr,[0,_0,Yt]);else{var _r=ar[2],Ir=0;(!_r||_r[2]||ar[3])&&(Ir=1),Ir&&(ar[3]?ue(Tr,[0,_0,81]):ue(Tr,[0,_0,81]))}}return[0,Or,fr,o2(Tr,u(mn[10],Tr))]},R0),s0=X[2],hr=s0[2],Ar=q1(hr),or=p7(Vn[5],R0,E0,t0,0,Ar);R(Vn[6],R0,or[2],0,hr);var W0=X[1],Lr=lr([0,o0],0,0);return[0,0,hr,or[1],E0,t0,0,s0[3],s0[1],Lr,W0]},e0)]}function c(e0){var x0=u(ci[2],e0);return x0[0]===0?[0,x0[1],t[3]]:[0,x0[1],x0[2]]}function s(e0,x0){switch(x0[0]){case 0:var l=x0[1],c0=l[1];return ue(e0,[0,c0,95]),[0,c0,[14,l[2]]];case 1:var t0=x0[1],o0=t0[2][1],w0=t0[1],_0=0;return kL(o0)&&n0(o0,KQr)&&n0(o0,WQr)&&(ue(e0,[0,w0,2]),_0=1),!_0&&f2(o0)&&V7(e0,[0,w0,55]),[0,w0,[10,t0]];case 2:return ke(JQr);default:var E0=x0[1][2][1];return ue(e0,[0,E0[1],96]),E0}}function p(e0,x0,l){function c0(o0){var w0=t2(1,o0),_0=cr(0,function(hr){var Ar=oi(hr,u(mn[3],hr));if(e0)if(x0)var or=1,W0=1;else var or=hr[18],W0=0;else if(x0)var or=0,W0=1;else var or=0,W0=0;var Lr=ur(Vn[4],or,W0,hr),Tr=A0(hr)===86?Lr:eb(hr,Lr);return[0,Ar,Tr,o2(hr,u(mn[10],hr))]},w0),E0=_0[2],U0=E0[2],b=q1(U0),R0=p7(Vn[5],w0,e0,x0,0,b);R(Vn[6],w0,R0[2],0,U0);var X=_0[1],s0=lr([0,l],0,0);return[0,0,U0,R0[1],e0,x0,0,E0[3],E0[1],s0,X]}var t0=0;return function(o0){return cr(t0,c0,o0)}}function y(e0){return Y0(e0,86),c(e0)}function T(e0,x0,l,c0,t0,o0){var w0=cr([0,x0],function(E0){if(!c0&&!t0){var U0=A0(E0);if(typeof U0==\"number\"){var b=0;if(86<=U0){if(U0===98)b=1;else if(!(87<=U0)){var R0=y(E0);return[0,[0,l,R0[1],0],R0[2]]}}else{if(U0===82){if(l[0]===1)var X=l[1],s0=Pe(E0),hr=function(Rr){var Wr=pr(Rr);Y0(Rr,82);var Jr=we(Rr),ar=o(se[19],Rr,[0,X[1],[10,X]]),_r=u(se[10],Rr);return[2,[0,0,ar,_r,lr([0,Wr],[0,Jr],0)]]},Ar=cr([0,X[1]],hr,E0),or=[0,Ar,[0,[0,[0,s0,[10,Ml(zQr)]],0],0]];else var or=y(E0);return[0,[0,l,or[1],1],or[2]]}if(!(10<=U0))switch(U0){case 4:b=1;break;case 1:case 9:var W0=[0,l,s(E0,l),1];return[0,W0,t[3]]}}if(b){var Lr=Xi(E0,l),Tr=[1,Lr,u(p(c0,t0,o0),E0)];return[0,Tr,t[3]]}}var Hr=[0,l,s(E0,l),1];return[0,Hr,t[3]]}var Or=Xi(E0,l),fr=[1,Or,u(p(c0,t0,o0),E0)];return[0,fr,t[3]]},e0),_0=w0[2];return[0,[0,[0,w0[1],_0[1]]],_0[2]]}function E(e0){var x0=cr(0,function(c0){var t0=pr(c0);Y0(c0,0);for(var o0=0,w0=[0,0,t[3]];;){var _0=w0[2],E0=w0[1],U0=A0(c0);if(typeof U0==\"number\"){var b=0;if((U0===1||Pn===U0)&&(b=1),b){var R0=o0?[0,_0[1],[0,[0,o0[1],98],_0[2]]]:_0,X=u(t[6],R0),s0=ye(E0),hr=pr(c0);return Y0(c0,1),[0,[0,s0,yu([0,t0],[0,we(c0)],hr,0)],X]}}if(A0(c0)===12)var Ar=pr(c0),or=cr(0,function(y0){return Y0(y0,12),c(y0)},c0),W0=or[2],Lr=W0[2],Tr=lr([0,Ar],0,0),Hr=[0,[1,[0,or[1],[0,W0[1],Tr]]],Lr];else{var Or=Pe(c0),fr=Yn(1,c0),Rr=0;if(typeof fr==\"number\"){var Wr=0;if(86<=fr)fr!==98&&87<=fr&&(Wr=1);else if(fr!==82)if(10<=fr)Wr=1;else switch(fr){case 1:case 4:case 9:break;default:Wr=1}if(!Wr){var ar=0,_r=0;Rr=1}}if(!Rr)var Jr=u(Vn[1],c0),ar=Jr[2],_r=Jr[1];var Ir=u(Vn[2],c0),fe=Ir[1],v0=on(ar,Ir[2]),P=A0(c0),L=0;if(!_r&&!fe&&typeof P!=\"number\"&&P[0]===4){var Q=P[3],i0=0;if(n0(Q,YQr))if(n0(Q,VQr))i0=1;else{var l0=pr(c0),S0=i(0,c0)[2],T0=A0(c0),rr=0;if(typeof T0==\"number\"){var L0=0;if(86<=T0)T0!==98&&87<=T0&&(L0=1);else if(T0!==82)if(10<=T0)L0=1;else switch(T0){case 1:case 4:case 9:break;default:L0=1}if(!L0){var B=T(c0,Or,S0,0,0,0);rr=1}}if(!rr){Xi(c0,S0);var Z=t[3],p0=cr([0,Or],function(I0){return x(I0,0,0)},c0),b0=p0[2],O0=lr([0,l0],0,0),B=[0,[0,[0,p0[1],[3,b0[1],b0[2],O0]]],Z]}var M0=B}else{var er=pr(c0),yr=i(0,c0)[2],vr=A0(c0),$0=0;if(typeof vr==\"number\"){var Er=0;if(86<=vr)vr!==98&&87<=vr&&(Er=1);else if(vr!==82)if(10<=vr)Er=1;else switch(vr){case 1:case 4:case 9:break;default:Er=1}if(!Er){var Mr=T(c0,Or,yr,0,0,0);$0=1}}if(!$0){Xi(c0,yr);var Br=t[3],qr=cr([0,Or],function(D){return x(D,0,1)},c0),jr=qr[2],$r=lr([0,er],0,0),Mr=[0,[0,[0,qr[1],[2,jr[1],jr[2],$r]]],Br]}var M0=Mr}if(!i0){var ne=M0;L=1}}if(!L)var ne=T(c0,Or,i(0,c0)[2],_r,fe,v0);var Hr=ne}var Qr=Hr[1],be=0;if(Qr[0]===1&&A0(c0)===9){var ae=[0,Pe(c0)];be=1}if(!be)var ae=0;var pe=o(t[5],Hr[2],_0),oe=A0(c0),ce=0;if(typeof oe==\"number\"){var ge=oe-2|0,q0=0;if(Xt>>0?T7<(ge+1|0)>>>0&&(q0=1):ge===7?ie(c0):q0=1,!q0){var Fr=pe;ce=1}}if(!ce){var _=aL(dRr,9),k=le0([0,_],A0(c0)),I=[0,Pe(c0),k];xu(c0,8);var Fr=o(t[4],I,pe)}var o0=ae,w0=[0,[0,Qr,E0],Fr]}},e0),l=x0[2];return[0,x0[1],l[1],l[2]]}function d(e0,x0,l,c0){var t0=l[2][1],o0=l[1];if(qn(t0,XQr))return ue(e0,[0,o0,[21,t0,0,QY===c0?1:0,1]]),x0;var w0=o(L9[32],t0,x0);if(w0){var _0=w0[1],E0=0;return SE===c0?Fh===_0&&(E0=1):Fh===c0&&SE===_0&&(E0=1),E0||ue(e0,[0,o0,[20,t0]]),ur(L9[4],t0,KX,x0)}return ur(L9[4],t0,c0,x0)}function w(e0,x0){return cr(0,function(l){var c0=x0&&pr(l);Y0(l,52);for(var t0=0;;){var o0=[0,cr(0,function(E0){var U0=u(mn[2],E0);if(A0(E0)===98)var b=$t(E0),R0=function(s0,hr){return o(Qe(s0,Nv,81),s0,hr)},X=o(b[2],U0,R0);else var X=U0;return[0,X,u(mn[4],E0)]},l),t0],w0=A0(l);if(typeof w0==\"number\"&&w0===9){Y0(l,9);var t0=o0;continue}var _0=ye(o0);return[0,_0,lr([0,c0],0,0)]}},e0)}function G(e0,x0){return x0&&ue(e0,[0,x0[1][1],7])}function A(e0,x0){return x0&&ue(e0,[0,x0[1],68])}function S(e0,x0,l,c0,t0,o0,w0,_0,E0,U0){for(;;){var b=A0(e0),R0=0;if(typeof b==\"number\"){var X=b-1|0,s0=0;if(7>>0){var hr=X-81|0;if(4
>>0)s0=1;else switch(hr){case 3:St(0,e0),ie(e0);continue;case 0:case 4:break;default:s0=1}}else 5<(X-1|0)>>>0||(s0=1);!s0&&!t0&&!o0&&(R0=1)}if(!R0){var Ar=A0(e0),or=0;if(typeof Ar==\"number\"){var W0=0;if(Ar!==4&&Ar!==98&&(or=1,W0=1),!W0)var Tr=0}else or=1;if(or)var Lr=x2(e0),Tr=Lr&&1;if(!Tr){A(e0,_0),G(e0,E0);var Hr=0;if(!w0){var Or=0;switch(c0[0]){case 0:var fr=c0[1][2][1],Rr=0;typeof fr!=\"number\"&&fr[0]===0&&(n0(fr[1],jQr)&&(Or=1),Rr=1),Rr||(Or=1);break;case 1:n0(c0[1][2][1],GQr)&&(Or=1);break;default:Or=1}if(!Or){var Wr=t2(2,e0),Jr=0;Hr=1}}if(!Hr)var Wr=t2(1,e0),Jr=1;var ar=Xi(Wr,c0),_r=cr(0,function(S0){var T0=cr(0,function(p0){var b0=oi(p0,u(mn[3],p0));if(t0)if(o0)var O0=1,M0=1;else var O0=p0[18],M0=0;else if(o0)var O0=0,M0=1;else var O0=0,M0=0;var er=ur(Vn[4],O0,M0,p0),yr=A0(p0)===86?er:eb(p0,er),vr=yr[2],$0=vr[1],Er=0;if($0&&Jr===0){ue(p0,[0,$0[1][1],is]);var Mr=[0,yr[1],[0,0,vr[2],vr[3],vr[4]]];Er=1}if(!Er)var Mr=yr;return[0,b0,Mr,o2(p0,u(mn[10],p0))]},S0),rr=T0[2],L0=rr[2],B=q1(L0),Z=p7(Vn[5],S0,t0,o0,0,B);return R(Vn[6],S0,Z[2],0,L0),[0,0,L0,Z[1],t0,o0,0,rr[3],rr[1],0,T0[1]]},Wr),Ir=[0,Jr,ar,_r,w0,l,lr([0,U0],0,0)];return[0,[0,yt(x0,_r[1]),Ir]]}}var fe=cr([0,x0],function(S0){var T0=u(mn[10],S0),rr=A0(S0);if(_0){var L0=0;if(typeof rr==\"number\"&&rr===82){je(S0,69),ie(S0);var B=0}else L0=1;if(L0)var B=0}else{var Z=0;if(typeof rr==\"number\"&&rr===82){ie(S0);var p0=t2(1,S0),B=[0,u(se[7],p0)]}else Z=1;if(Z)var B=1}var b0=A0(S0),O0=0;if(typeof b0==\"number\"&&!(9<=b0))switch(b0){case 8:ie(S0);var M0=A0(S0),er=0;if(typeof M0==\"number\"){var yr=0;if(M0!==1&&Pn!==M0&&(er=1,yr=1),!yr)var $0=we(S0)}else er=1;if(er)var vr=x7(S0),$0=vr&&Ms(S0);var Er=[0,c0,T0,B,$0];O0=1;break;case 4:case 6:St(0,S0);var Er=[0,c0,T0,B,0];O0=1;break}if(!O0){var Mr=A0(S0),Br=0;if(typeof Mr==\"number\"){var qr=0;if(Mr!==1&&Pn!==Mr&&(Br=1,qr=1),!qr)var jr=[0,0,function(q0,Fr){return q0}]}else Br=1;if(Br)var jr=x7(S0)?rb(S0):N9(S0);if(typeof B==\"number\")if(T0[0]===0)var $r=function(_,k){return o(Qe(_,qY,83),_,k)},be=B,ae=T0,pe=o(jr[2],c0,$r);else var ne=function(_,k){return o(Qe(_,OE,84),_,k)},be=B,ae=[1,o(jr[2],T0[1],ne)],pe=c0;else var Qr=function(ge,q0){return o(Qe(ge,Di,85),ge,q0)},be=[0,o(jr[2],B[1],Qr)],ae=T0,pe=c0;var Er=[0,pe,ae,be,0]}var oe=lr([0,U0],[0,Er[4]],0);return[0,Er[1],Er[2],Er[3],oe]},e0),v0=fe[2],P=v0[4],L=v0[3],Q=v0[2],i0=v0[1],l0=fe[1];return i0[0]===2?[2,[0,l0,[0,i0[1],L,Q,w0,E0,P]]]:[1,[0,l0,[0,i0,L,Q,w0,E0,P]]]}}function M(e0,x0){var l=Yn(e0,x0);if(typeof l==\"number\"){var c0=0;if(86<=l)(l===98||!(87<=l))&&(c0=1);else if(l===82)c0=1;else if(!(9<=l))switch(l){case 1:case 4:case 8:c0=1;break}if(c0)return 1}return 0}var K=0;function V(e0){return M(K,e0)}function f0(e0,x0,l,c0){var t0=e0&&e0[1],o0=_s(1,x0),w0=on(t0,e(o0)),_0=pr(o0);Y0(o0,40);var E0=F9(1,o0),U0=A0(E0),b=0;if(l&&typeof U0==\"number\"){var R0=0;if(52<=U0?U0!==98&&53<=U0&&(R0=1):U0!==41&&U0&&(R0=1),!R0){var Ar=0;b=1}}if(!b)if(G1(o0))var X=o(se[13],0,E0),s0=$t(o0),hr=function(v0,P){return o(Qe(v0,Nv,88),v0,P)},Ar=[0,o(s0[2],X,hr)];else{be0(o0,NQr);var Ar=[0,[0,Pe(o0),CQr]]}var or=u(mn[3],o0);if(or)var W0=$t(o0),Lr=function(v0,P){return o(Qe(v0,bF,86),v0,P)},Tr=[0,o(W0[2],or[1],Lr)];else var Tr=or;var Hr=pr(o0),Or=xu(o0,41);if(Or)var fr=cr(0,function(v0){var P=mL(0,v0),L=u(ci[5],P);if(A0(v0)===98)var Q=$t(v0),i0=function(T0,rr){return o(Qe(T0,Di,82),T0,rr)},l0=o(Q[2],L,i0);else var l0=L;var S0=u(mn[4],v0);return[0,l0,S0,lr([0,Hr],0,0)]},o0),Rr=fr[1],Wr=$t(o0),Jr=function(v0,P){return ur(Qe(v0,-663447790,87),v0,Rr,P)},ar=[0,[0,Rr,o(Wr[2],fr[2],Jr)]];else var ar=Or;var _r=A0(o0)===52?1:0;if(_r){1-fu(o0)&&je(o0,16);var Ir=[0,ke0(o0,w(o0,1))]}else var Ir=_r;var fe=cr(0,function(v0){var P=pr(v0);if(xu(v0,0)){v0[29][1]=[0,[0,Mu[1],0],v0[29][1]];for(var L=0,Q=L9[1],i0=0;;){var l0=A0(v0);if(typeof l0==\"number\"){var S0=l0-2|0;if(Xt>>0){if(!(T7<(S0+1|0)>>>0)){var T0=ye(i0),rr=function(ou,Bu){return u(ml(function(K7){return 1-o(Mu[3],K7[1],ou)}),Bu)},L0=v0[29][1];if(L0){var B=L0[1],Z=B[1];if(L0[2]){var p0=L0[2],b0=rr(Z,B[2]),O0=bl(p0),M0=az(p0),er=on(O0[2],b0);v0[29][1]=[0,[0,O0[1],er],M0]}else{var yr=rr(Z,B[2]);Du(function(ou){return ue(v0,[0,ou[2],[22,ou[1]]])},yr),v0[29][1]=0}}else ke(Hjr);Y0(v0,1);var vr=A0(v0),$0=0;if(!c0){var Er=0;if(typeof vr==\"number\"&&(vr===1||Pn===vr)&&(Er=1),!Er){var Mr=x7(v0);if(Mr){var Br=Ms(v0);$0=1}else{var Br=Mr;$0=1}}}if(!$0)var Br=we(v0);return[0,T0,lr([0,P],[0,Br],0)]}}else if(S0===6){Y0(v0,8);continue}}var qr=Pe(v0),jr=e(v0),$r=A0(v0),ne=0;if(typeof $r==\"number\"&&$r===60&&!M(1,v0)){var Qr=[0,Pe(v0)],be=pr(v0);ie(v0);var ae=be,pe=Qr;ne=1}if(!ne)var ae=0,pe=0;var oe=Yn(1,v0)!==4?1:0;if(oe)var ce=Yn(1,v0)!==98?1:0,ge=ce&&(A0(v0)===42?1:0);else var ge=oe;if(ge){var q0=pr(v0);ie(v0);var Fr=q0}else var Fr=ge;var _=A0(v0)===64?1:0;if(_)var k=1-M(1,v0),I=k&&1-Jl(1,v0);else var I=_;if(I){var U=pr(v0);ie(v0);var Y=U}else var Y=I;var y0=u(Vn[2],v0),P0=y0[1],I0=ur(Vn[3],v0,I,P0),D=0;if(!P0&&I0){var u0=u(Vn[2],v0),X0=u0[2],J0=u0[1];D=1}if(!D)var X0=y0[2],J0=P0;var ir=pl([0,ae,[0,Fr,[0,Y,[0,X0,0]]]]),Q0=A0(v0),F0=0;if(!I&&!J0&&typeof Q0!=\"number\"&&Q0[0]===4){var Sr=Q0[3];if(n0(Sr,MQr)){if(!n0(Sr,BQr)){var mr=pr(v0),Cr=i(qQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Cr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Cr);var sr=on(ir,mr),Pr=cr([0,qr],function(Bu){return x(Bu,1,0)},v0),K0=Pr[2],Ur=lr([0,sr],0,0),Ie=[0,[0,Pr[1],[0,3,K0[1],K0[2],ge,jr,Ur]]];F0=1}}}else{var h0=pr(v0),Kr=i(UQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Kr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Kr);var re=on(ir,h0),xe=cr([0,qr],function(Bu){return x(Bu,1,1)},v0),Re=xe[2],ve=lr([0,re],0,0),Ie=[0,[0,xe[1],[0,2,Re[1],Re[2],ge,jr,ve]]];F0=1}}}if(!F0)var Ie=S(v0,qr,jr,i(HQr,v0)[2],I,J0,ge,pe,I0,ir);switch(Ie[0]){case 0:var Ge=Ie[1],Me=Ge[2];switch(Me[1]){case 0:if(Me[4])var Ft=Q,Ct=L;else{L&&ue(v0,[0,Ge[1],87]);var Ft=Q,Ct=1}break;case 1:var an=Me[2],We=an[0]===2?d(v0,Q,an[1],QY):Q,Ft=We,Ct=L;break;case 2:var Ae=Me[2],cn=Ae[0]===2?d(v0,Q,Ae[1],SE):Q,Ft=cn,Ct=L;break;default:var rn=Me[2],kn=rn[0]===2?d(v0,Q,rn[1],Fh):Q,Ft=kn,Ct=L}break;case 1:var vn=Ie[1][2],Ne=vn[4],Je=vn[1],en=0;switch(Je[0]){case 0:var _n=Je[1],Cn=_n[2][1],Hn=0;if(typeof Cn!=\"number\"&&Cn[0]===0){var vt=Cn[1],Nt=_n[1];en=1,Hn=1}Hn||(en=2);break;case 1:var Fn=Je[1],vt=Fn[2][1],Nt=Fn[1];en=1;break;case 2:ke(PQr);break;default:en=2}switch(en){case 1:var gt=qn(vt,DQr);if(gt)var qt=gt;else var Zt=qn(vt,LQr),qt=Zt&&Ne;qt&&ue(v0,[0,Nt,[21,vt,Ne,0,0]]);break;case 2:break}var Ft=Q,Ct=L;break;default:var Ft=d(v0,Q,Ie[1][2][1],KX),Ct=L}var L=Ct,Q=Ft,i0=[0,Ie,i0]}}return B1(v0,0),RQr},o0);return[0,Ar,fe,Tr,ar,Ir,w0,lr([0,_0],0,0)]}function m0(e0,x0){return cr(0,function(l){return[2,f0([0,x0],l,l[7],0)]},e0)}function k0(e0){return[5,f0(0,e0,1,1)]}var g0=0;return[0,i,E,m0,function(e0){return cr(g0,k0,e0)},w,e]}(R9),ht=function(t){function n(_){var k=u(Vn[10],_);if(_[5])M1(_,k[1]);else{var I=k[2],U=0;if(I[0]===23){var Y=I[1],y0=k[1],P0=0;Y[4]?ue(_,[0,y0,61]):Y[5]?ue(_,[0,y0,62]):(U=1,P0=1)}else U=1}return k}function e(_,k,I){var U=I[2][1],Y=I[1];if(n0(U,Z0e)){if(n0(U,Q0e))return n0(U,rre)?f2(U)?V7(k,[0,Y,55]):kL(U)?ue(k,[0,Y,[10,Ml(U)]]):_&&js(U)?V7(k,[0,Y,_[1]]):0:k[17]?ue(k,[0,Y,2]):V7(k,[0,Y,55]);if(k[5])return V7(k,[0,Y,55]);var y0=k[14];return y0&&ue(k,[0,Y,[10,Ml(U)]])}var P0=k[18];return P0&&ue(k,[0,Y,2])}function i(_,k){var I=k[4],U=k[3],Y=k[2],y0=k[1];I&&gi(_,45);var P0=pr(_);return Y0(_,[2,[0,y0,Y,U,I]]),[0,y0,[0,Y,U,lr([0,P0],[0,we(_)],0)]]}function x(_,k,I){var U=_?_[1]:W0e,Y=k?k[1]:1,y0=A0(I);if(typeof y0==\"number\"){var P0=y0-2|0;if(Xt>>0){if(!(T7<(P0+1|0)>>>0)){var I0=function(X0,J0){return X0};return[1,[0,we(I),I0]]}}else if(P0===6){ie(I);var D=A0(I);if(typeof D==\"number\"){var u0=0;if((D===1||Pn===D)&&(u0=1),u0)return[0,we(I)]}return x7(I)?[0,Ms(I)]:J0e}}return x7(I)?[1,rb(I)]:(Y&&St([0,U],I),$0e)}function c(_){var k=A0(_);if(typeof k==\"number\"){var I=0;if((k===1||Pn===k)&&(I=1),I){var U=function(Y,y0){return Y};return[0,we(_),U]}}return x7(_)?rb(_):N9(_)}function s(_,k,I){var U=x(0,0,k);if(U[0]===0)return[0,U[1],I];var Y=ye(I);if(Y)var y0=function(D,u0){return ur(Qe(D,634872468,89),D,_,u0)},P0=o(U[1][2],Y[1],y0),I0=ye([0,P0,Y[2]]);else var I0=Y;return[0,0,I0]}var p=function _(k){return _.fun(k)},y=function _(k){return _.fun(k)},T=function _(k){return _.fun(k)},E=function _(k){return _.fun(k)},d=function _(k){return _.fun(k)},w=function _(k,I){return _.fun(k,I)},G=function _(k){return _.fun(k)},A=function _(k){return _.fun(k)},S=function _(k,I,U){return _.fun(k,I,U)},M=function _(k){return _.fun(k)},K=function _(k){return _.fun(k)},V=function _(k,I){return _.fun(k,I)},f0=function _(k){return _.fun(k)},m0=function _(k){return _.fun(k)},k0=function _(k,I){return _.fun(k,I)},g0=function _(k){return _.fun(k)},e0=function _(k,I){return _.fun(k,I)},x0=function _(k){return _.fun(k)},l=function _(k,I){return _.fun(k,I)},c0=function _(k){return _.fun(k)},t0=function _(k,I){return _.fun(k,I)},o0=function _(k,I){return _.fun(k,I)},w0=function _(k,I){return _.fun(k,I)},_0=function _(k){return _.fun(k)},E0=function _(k){return _.fun(k)},U0=function _(k,I,U){return _.fun(k,I,U)},b=function _(k,I){return _.fun(k,I)},R0=function _(k,I){return _.fun(k,I)},X=function _(k){return _.fun(k)};function s0(_){var k=pr(_);Y0(_,59);var I=A0(_)===8?1:0,U=I&&we(_),Y=x(0,0,_),y0=Y[0]===0?Y[1]:Y[1][1];return[4,[0,lr([0,k],[0,on(U,y0)],0)]]}var hr=0;function Ar(_){return cr(hr,s0,_)}function or(_){var k=pr(_);Y0(_,37);var I=zl(1,_),U=u(se[2],I),Y=1-_[5],y0=Y&&nb(U);y0&&M1(_,U[1]);var P0=we(_);Y0(_,25);var I0=we(_);Y0(_,4);var D=u(se[7],_);Y0(_,5);var u0=A0(_)===8?1:0,X0=u0&&we(_),J0=x(0,K0e,_),ir=J0[0]===0?on(X0,J0[1]):J0[1][1];return[14,[0,U,D,lr([0,k],[0,on(P0,on(I0,ir))],0)]]}var W0=0;function Lr(_){return cr(W0,or,_)}function Tr(_,k,I){var U=I[2][1];if(U&&!U[1][2][2]){var Y=U[2];if(!Y)return Y}return ue(_,[0,I[1],k])}function Hr(_,k){var I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1])}function Or(_){var k=pr(_);Y0(_,39);var I=_[18],U=I&&xu(_,65),Y=on(k,pr(_));Y0(_,4);var y0=lr([0,Y],0,0),P0=Kl(1,_),I0=A0(P0),D=0;if(typeof I0==\"number\")if(24<=I0)if(29<=I0)D=1;else switch(I0-24|0){case 0:var u0=cr(0,Vn[9],P0),X0=u0[2],J0=lr([0,X0[2]],0,0),Pr=X0[3],K0=[0,[1,[0,u0[1],[0,X0[1],0,J0]]]];break;case 3:var ir=cr(0,Vn[8],P0),Q0=ir[2],F0=lr([0,Q0[2]],0,0),Pr=Q0[3],K0=[0,[1,[0,ir[1],[0,Q0[1],2,F0]]]];break;case 4:var Sr=cr(0,Vn[7],P0),mr=Sr[2],Cr=lr([0,mr[2]],0,0),Pr=mr[3],K0=[0,[1,[0,Sr[1],[0,mr[1],1,Cr]]]];break;default:D=1}else if(I0===8)var Pr=0,K0=0;else D=1;else D=1;if(D)var sr=F9(1,P0),Pr=0,K0=[0,[0,u(se[8],sr)]];var Ur=A0(_);if(typeof Ur==\"number\"){if(Ur===17){if(K0){var h0=K0[1];if(h0[0]===0)var Kr=[1,ur(t[2],V0e,_,h0[1])];else{var re=h0[1];Tr(_,28,re);var Kr=[0,re]}U?Y0(_,63):Y0(_,17);var xe=u(se[7],_);Y0(_,5);var Re=zl(1,_),ve=u(se[2],Re);return Hr(_,ve),[21,[0,Kr,xe,ve,0,y0]]}throw[0,Sn,z0e]}if(Ur===63){if(K0){var Ie=K0[1];if(Ie[0]===0)var Ge=[1,ur(t[2],X0e,_,Ie[1])];else{var Me=Ie[1];Tr(_,29,Me);var Ge=[0,Me]}Y0(_,63);var an=u(se[10],_);Y0(_,5);var We=zl(1,_),Ae=u(se[2],We);return Hr(_,Ae),[22,[0,Ge,an,Ae,U,y0]]}throw[0,Sn,Y0e]}}if(Du(function(gt){return ue(_,gt)},Pr),U?Y0(_,63):Y0(_,8),K0)var cn=K0[1],rn=cn[0]===0?[0,[1,o(t[1],_,cn[1])]]:[0,[0,cn[1]]],kn=rn;else var kn=K0;var vn=A0(_),Ne=0;if(typeof vn==\"number\"){var Je=vn!==8?1:0;if(!Je){var en=Je;Ne=1}}if(!Ne)var en=[0,u(se[7],_)];Y0(_,8);var _n=A0(_),Cn=0;if(typeof _n==\"number\"){var Hn=_n!==5?1:0;if(!Hn){var Fn=Hn;Cn=1}}if(!Cn)var Fn=[0,u(se[7],_)];Y0(_,5);var vt=zl(1,_),Nt=u(se[2],vt);return Hr(_,Nt),[20,[0,kn,en,Fn,Nt,y0]]}var fr=0;function Rr(_){return cr(fr,Or,_)}function Wr(_){var k=Gs(_)?n(_):u(se[2],_),I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1]),k}function Jr(_){var k=pr(_);Y0(_,43);var I=Wr(_);return[0,I,lr([0,k],0,0)]}function ar(_){var k=pr(_);Y0(_,16);var I=on(k,pr(_));Y0(_,4);var U=u(se[7],_);Y0(_,5);var Y=Wr(_),y0=A0(_)===43?1:0,P0=y0&&[0,cr(0,Jr,_)];return[24,[0,U,Y,P0,lr([0,I],0,0)]]}var _r=0;function Ir(_){return cr(_r,ar,_)}function fe(_){1-_[11]&&je(_,36);var k=pr(_),I=Pe(_);Y0(_,19);var U=A0(_)===8?1:0,Y=U&&we(_),y0=0;if(A0(_)!==8&&!x2(_)){var P0=[0,u(se[7],_)];y0=1}if(!y0)var P0=0;var I0=yt(I,Pe(_)),D=x(0,0,_),u0=0;if(D[0]===0)var X0=D[1];else{var J0=D[1];if(P0){var ir=function(sr,Pr){return o(Qe(sr,Di,90),sr,Pr)},Q0=[0,o(J0[2],P0[1],ir)],F0=Y;u0=1}else var X0=J0[1]}if(!u0)var Q0=P0,F0=on(Y,X0);return[28,[0,Q0,lr([0,k],[0,F0],0),I0]]}var v0=0;function P(_){return cr(v0,fe,_)}function L(_){var k=pr(_);Y0(_,20),Y0(_,4);var I=u(se[7],_);Y0(_,5),Y0(_,0);for(var U=H0e;;){var Y=U[2],y0=A0(_);if(typeof y0==\"number\"){var P0=0;if((y0===1||Pn===y0)&&(P0=1),P0){var I0=ye(Y);Y0(_,1);var D=c(_),u0=I[1];return[29,[0,I,I0,lr([0,k],[0,D[1]],0),u0]]}}var X0=U[1],J0=gL(0,function(Q0){return function(F0){var Sr=pr(F0),mr=A0(F0),Cr=0;if(typeof mr==\"number\"&&mr===36){Q0&&je(F0,32),Y0(F0,36);var sr=we(F0),Pr=0;Cr=1}if(!Cr){Y0(F0,33);var sr=0,Pr=[0,u(se[7],F0)]}var K0=Q0||(Pr===0?1:0);Y0(F0,86);var Ur=on(sr,c(F0)[1]);function h0(Re){if(typeof Re==\"number\"){var ve=Re-1|0,Ie=0;if(32>>0?ve===35&&(Ie=1):30<(ve-1|0)>>>0&&(Ie=1),Ie)return 1}return 0}var Kr=1,re=F0[9]===1?F0:[0,F0[1],F0[2],F0[3],F0[4],F0[5],F0[6],F0[7],F0[8],Kr,F0[10],F0[11],F0[12],F0[13],F0[14],F0[15],F0[16],F0[17],F0[18],F0[19],F0[20],F0[21],F0[22],F0[23],F0[24],F0[25],F0[26],F0[27],F0[28],F0[29],F0[30]],xe=o(se[4],h0,re);return[0,[0,Pr,xe,lr([0,Sr],[0,Ur],0)],K0]}}(X0),_),U=[0,J0[2],[0,J0[1],Y]]}}var Q=0;function i0(_){return cr(Q,L,_)}function l0(_){var k=pr(_),I=Pe(_);Y0(_,22),x7(_)&&ue(_,[0,I,21]);var U=u(se[7],_),Y=x(0,0,_);if(Y[0]===0)var P0=U,I0=Y[1];else var y0=function(D,u0){return o(Qe(D,Di,91),D,u0)},P0=o(Y[1][2],U,y0),I0=0;return[30,[0,P0,lr([0,k],[0,I0],0)]]}var S0=0;function T0(_){return cr(S0,l0,_)}function rr(_){var k=pr(_);Y0(_,23);var I=u(se[15],_);if(A0(_)===34)var U=$t(_),Y=function(sr,Pr){var K0=Pr[1];return[0,K0,ur(Qe(sr,Y8,29),sr,K0,Pr[2])]},y0=o(U[2],I,Y);else var y0=I;var P0=A0(_),I0=0;if(typeof P0==\"number\"&&P0===34){var D=[0,cr(0,function(Pr){var K0=pr(Pr);Y0(Pr,34);var Ur=we(Pr),h0=A0(Pr)===4?1:0;if(h0){Y0(Pr,4);var Kr=[0,o(se[18],Pr,39)];Y0(Pr,5);var re=Kr}else var re=h0;var xe=u(se[15],Pr);if(A0(Pr)===38)var Ie=xe;else var Re=c(Pr),ve=function(Ge,Me){var an=Me[1];return[0,an,ur(Qe(Ge,Y8,92),Ge,an,Me[2])]},Ie=o(Re[2],xe,ve);return[0,re,Ie,lr([0,K0],[0,Ur],0)]},_)];I0=1}if(!I0)var D=0;var u0=A0(_),X0=0;if(typeof u0==\"number\"&&u0===38){Y0(_,38);var J0=u(se[15],_),ir=J0[1],Q0=c(_),F0=function(Pr,K0){return ur(Qe(Pr,Y8,93),Pr,ir,K0)},Sr=[0,[0,ir,o(Q0[2],J0[2],F0)]];X0=1}if(!X0)var Sr=0;var mr=D===0?1:0,Cr=mr&&(Sr===0?1:0);return Cr&&ue(_,[0,y0[1],33]),[31,[0,y0,D,Sr,lr([0,k],0,0)]]}var L0=0;function B(_){return cr(L0,rr,_)}function Z(_){var k=u(Vn[9],_),I=s(0,_,k[1]),U=0,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var p0=0;function b0(_){return cr(p0,Z,_)}function O0(_){var k=u(Vn[8],_),I=s(2,_,k[1]),U=2,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var M0=0;function er(_){return cr(M0,O0,_)}function yr(_){var k=u(Vn[7],_),I=s(1,_,k[1]),U=1,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var vr=0;function $0(_){return cr(vr,yr,_)}function Er(_){var k=pr(_);Y0(_,25);var I=on(k,pr(_));Y0(_,4);var U=u(se[7],_);Y0(_,5);var Y=zl(1,_),y0=u(se[2],Y),P0=1-_[5],I0=P0&&nb(y0);return I0&&M1(_,y0[1]),[35,[0,U,y0,lr([0,I],0,0)]]}var Mr=0;function Br(_){return cr(Mr,Er,_)}function qr(_){var k=pr(_),I=u(se[7],_),U=A0(_),Y=I[2];if(Y[0]===10&&typeof U==\"number\"&&U===86){var y0=Y[1],P0=y0[2][1];Y0(_,86),o(Mu[3],P0,_[3])&&ue(_,[0,I[1],[16,q0e,P0]]);var I0=_[30],D=_[29],u0=_[28],X0=_[27],J0=_[26],ir=_[25],Q0=_[24],F0=_[23],Sr=_[22],mr=_[21],Cr=_[20],sr=_[19],Pr=_[18],K0=_[17],Ur=_[16],h0=_[15],Kr=_[14],re=_[13],xe=_[12],Re=_[11],ve=_[10],Ie=_[9],Ge=_[8],Me=_[7],an=_[6],We=_[5],Ae=_[4],cn=o(Mu[4],P0,_[3]),rn=[0,_[1],_[2],cn,Ae,We,an,Me,Ge,Ie,ve,Re,xe,re,Kr,h0,Ur,K0,Pr,sr,Cr,mr,Sr,F0,Q0,ir,J0,X0,u0,D,I0],kn=Gs(rn)?n(rn):u(se[2],rn);return[27,[0,y0,kn,lr([0,k],0,0)]]}var vn=x(U0e,0,_);if(vn[0]===0)var Je=I,en=vn[1];else var Ne=function(_n,Cn){return o(Qe(_n,Di,94),_n,Cn)},Je=o(vn[1][2],I,Ne),en=0;return[19,[0,Je,0,lr(0,[0,en],0)]]}var jr=0;function $r(_){return cr(jr,qr,_)}function ne(_){var k=u(se[7],_),I=x(B0e,0,_);if(I[0]===0)var Y=k,y0=I[1];else var U=function(sr,Pr){return o(Qe(sr,Di,95),sr,Pr)},Y=o(I[1][2],k,U),y0=0;var P0=_[19];if(P0){var I0=Y[2],D=0;if(I0[0]===14){var u0=I0[1],X0=0,J0=u0[1];if(typeof J0!=\"number\"&&J0[0]===0){var ir=u0[2],Q0=1>>0))switch(K0){case 21:var Ur=on(I0,pr(P0)),h0=cr(0,function(Ct){return Y0(Ct,36)},P0),Kr=te0(1,P0),re=A0(Kr),xe=0;if(typeof re==\"number\")if(re===15)var Re=0,ve=Re,Ie=[0,[1,cr(0,function(Ct){return o(e0,0,Ct)},Kr)]];else if(re===40)var ve=0,Ie=[0,[2,cr(0,u(k0,0),Kr)]];else xe=1;else xe=1;if(xe){var Ge=u(mn[1],Kr),Me=x(0,0,Kr);if(Me[0]===0)var Ae=Me[1],cn=Ge;else var an=0,We=function(Wu,lt){return o(Qe(Wu,_v,Pn),Wu,lt)},Ae=an,cn=o(Me[1][2],Ge,We);var ve=Ae,Ie=[0,[3,cn]]}var rn=lr([0,Ur],[0,ve],0);return[6,[0,[0,h0[1]],Ie,0,0,rn]];case 0:case 9:case 12:case 13:case 25:var kn=A0(P0);if(typeof kn==\"number\"){var vn=0;if(25<=kn)if(29<=kn){if(kn===40){var Ne=[0,[2,cr(0,u(k0,0),P0)]];vn=1}}else 27<=kn&&(vn=2);else if(kn===15){var Ne=[0,[1,cr(0,function(du){return o(e0,0,du)},P0)]];vn=1}else 24<=kn&&(vn=2);var Je=0;switch(vn){case 0:break;case 2:var en=0;typeof kn==\"number\"?kn===27?je(P0,72):kn===28?je(P0,71):en=1:en=1;var Ne=[0,[0,cr(0,function(du){return o(l,du,0)},P0)]];Je=1;break;default:Je=1}if(Je)return[6,[0,0,Ne,0,0,lr([0,I0],0,0)]]}throw[0,Sn,o0e]}}var _n=A0(P0),Cn=0;typeof _n==\"number\"?_n===53?je(P0,74):_n===61?je(P0,73):Cn=1:Cn=1,Y0(P0,0);var Hn=ur(U0,0,P0,0);Y0(P0,1);var Fn=A0(P0),vt=0;if(typeof Fn!=\"number\"&&Fn[0]===4&&!n0(Fn[3],x0e)){var Nt=u(E0,P0),gt=Nt[2],Zt=[0,Nt[1]];vt=1}if(!vt){o(b,P0,Hn);var qt=x(0,0,P0),Ft=qt[0]===0?qt[1]:qt[1][1],gt=Ft,Zt=0}return[6,[0,0,0,[0,[0,Hn]],Zt,lr([0,I0],[0,gt],0)]]}var U=0;return function(Y){return cr(U,I,Y)}}),[0,Rr,Ir,$0,B,Br,E,d,y,T,Ar,w0,X,M,Lr,p,R0,be,Fr,m0,$r,K,P,i0,T0,A,b0,er]}(R9),Ge0=function(t){var n=function y(T,E){return y.fun(T,E)},e=function y(T,E){return y.fun(T,E)},i=function y(T,E){return y.fun(T,E)};N(n,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];if(S[0]===0){var M=S[1],K=M[2];switch(K[0]){case 0:var V=K[2],f0=K[1];switch(f0[0]){case 0:var m0=[0,f0[1]];break;case 1:var m0=[1,f0[1]];break;case 2:var m0=ke(t0e);break;default:var m0=[2,f0[1]]}var k0=V[2],g0=0;if(k0[0]===2){var e0=k0[1];if(!e0[1]){var x0=[0,e0[3]],l=e0[2];g0=1}}if(!g0)var x0=0,l=o(i,y,V);var c0=[0,[0,[0,M[1],[0,m0,l,x0,K[3]]]],G];break;case 1:ue(y,[0,K[2][1],97]);var c0=G;break;default:ue(y,[0,K[2][1],u0e]);var c0=G}var G=c0,A=A[2];continue}var t0=S[1],o0=t0[1];if(A[2]){ue(y,[0,o0,66]);var A=A[2];continue}var w0=t0[2],_0=w0[2],G=[0,[1,[0,o0,[0,o(i,y,w0[1]),_0]]],G],A=0;continue}var E0=[0,[0,ye(G),w,d]];return[0,T[1],E0]}});function x(y,T){return u(se[23],T)?[0,o(i,y,T)]:(ue(y,[0,T[1],26]),0)}N(e,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];switch(S[0]){case 0:var M=S[1],K=M[2];if(K[0]===2){var V=K[1];if(!V[1]){var G=[0,[0,[0,M[1],[0,V[2],[0,V[3]]]]],G],A=A[2];continue}}var f0=x(y,M);if(f0)var m0=f0[1],k0=[0,[0,[0,m0[1],[0,m0,0]]],G];else var k0=G;var G=k0,A=A[2];continue;case 1:var g0=S[1],e0=g0[1];if(A[2]){ue(y,[0,e0,65]);var A=A[2];continue}var x0=g0[2],l=x(y,x0[1]),c0=l?[0,[1,[0,e0,[0,l[1],x0[2]]]],G]:G,G=c0,A=0;continue;default:var G=[0,[2,S[1]],G],A=A[2];continue}}var t0=[1,[0,ye(G),w,d]];return[0,T[1],t0]}}),N(i,function(y,T){var E=T[2],d=T[1];switch(E[0]){case 0:return o(e,y,[0,d,E[1]]);case 10:var w=E[1],G=w[2][1],A=w[1],S=0;if(y[5]&&js(G)?ue(y,[0,A,52]):S=1,S&&1-y[5]){var M=0;if(y[17]&&qn(G,e0e)?ue(y,[0,A,93]):M=1,M){var K=y[18],V=K&&qn(G,n0e);V&&ue(y,[0,A,92])}}return[0,d,[2,[0,w,a2(y),0]]];case 19:return o(n,y,[0,d,E[1]]);default:return[0,d,[3,[0,d,E]]]}});function c(y){function T(w){var G=A0(w);return typeof G==\"number\"&&G===82?(Y0(w,82),[0,u(se[10],w)]):0}function E(w){var G=pr(w);Y0(w,0);for(var A=0,S=0,M=0;;){var K=A0(w);if(typeof K==\"number\"){var V=0;if((K===1||Pn===K)&&(V=1),V){S&&ue(w,[0,S[1],98]);var f0=ye(M),m0=pr(w);Y0(w,1);var k0=we(w),g0=A0(w)===86?[1,u(t[9],w)]:a2(w);return[0,[0,f0,g0,yu([0,G],[0,k0],m0,0)]]}}if(A0(w)===12)var e0=pr(w),x0=cr(0,function(Jr){return Y0(Jr,12),p(Jr,y)},w),l=lr([0,e0],0,0),c0=[0,[1,[0,x0[1],[0,x0[2],l]]]];else{var t0=Pe(w),o0=o(se[20],0,w),w0=A0(w),_0=0;if(typeof w0==\"number\"&&w0===86){Y0(w,86);var E0=cr([0,t0],function(ar){var _r=p(ar,y);return[0,_r,T(ar)]},w),U0=E0[2],b=o0[2];switch(b[0]){case 0:var R0=[0,b[1]];break;case 1:var R0=[1,b[1]];break;case 2:var R0=ke($Qr);break;default:var R0=[2,b[1]]}var c0=[0,[0,[0,E0[1],[0,R0,U0[1],U0[2],0]]]]}else _0=1;if(_0){var X=o0[2];if(X[0]===1){var s0=X[1],hr=s0[2][1],Ar=s0[1],or=0;kL(hr)&&n0(hr,QQr)&&n0(hr,r0e)&&(ue(w,[0,Ar,2]),or=1),!or&&f2(hr)&&V7(w,[0,Ar,55]);var W0=cr([0,t0],function(ar,_r){return function(Ir){var fe=[0,_r,[2,[0,ar,a2(Ir),0]]];return[0,fe,T(Ir)]}}(s0,Ar),w),Lr=W0[2],c0=[0,[0,[0,W0[1],[0,[1,s0],Lr[1],Lr[2],1]]]]}else{St(ZQr,w);var c0=0}}}if(c0){var Tr=c0[1],Hr=A?(ue(w,[0,Tr[1][1],66]),0):S;if(Tr[0]===0)var Rr=Hr,Wr=A;else var Or=A0(w)===9?1:0,fr=Or&&[0,Pe(w)],Rr=fr,Wr=1;A0(w)!==1&&Y0(w,9);var A=Wr,S=Rr,M=[0,Tr,M];continue}}}var d=0;return function(w){return cr(d,E,w)}}function s(y){function T(d){var w=pr(d);Y0(d,6);for(var G=0;;){var A=A0(d);if(typeof A==\"number\"){var S=0;if(13<=A)Pn===A&&(S=1);else if(7<=A)switch(A-7|0){case 2:var M=Pe(d);Y0(d,9);var G=[0,[2,M],G];continue;case 5:var K=pr(d),V=cr(0,function(_0){return Y0(_0,12),p(_0,y)},d),f0=V[1],m0=lr([0,K],0,0),k0=[1,[0,f0,[0,V[2],m0]]];A0(d)!==7&&(ue(d,[0,f0,65]),A0(d)===9&&ie(d));var G=[0,k0,G];continue;case 0:S=1;break}if(S){var g0=ye(G),e0=pr(d);Y0(d,7);var x0=A0(d)===86?[1,u(t[9],d)]:a2(d);return[1,[0,g0,x0,yu([0,w],[0,we(d)],e0,0)]]}}var l=cr(0,function(w0){var _0=p(w0,y),E0=A0(w0),U0=0;if(typeof E0==\"number\"&&E0===82){Y0(w0,82);var b=[0,u(se[10],w0)];U0=1}if(!U0)var b=0;return[0,_0,b]},d),c0=l[2],t0=[0,[0,l[1],[0,c0[1],c0[2]]]];A0(d)!==7&&Y0(d,9);var G=[0,t0,G]}}var E=0;return function(d){return cr(E,T,d)}}function p(y,T){var E=A0(y);if(typeof E==\"number\"){if(E===6)return u(s(T),y);if(!E)return u(c(T),y)}var d=ur(se[14],y,0,T);return[0,d[1],[2,d[2]]]}return[0,n,e,i,c,s,p]}(mn),une=Zee(se),ine=mn[9];function Me0(t,n){var e=A0(n),i=0;if(typeof e==\"number\"?e===28?n[5]?je(n,55):n[14]&&St(0,n):e===58?n[17]?je(n,2):n[5]&&je(n,55):e===65?n[18]&&je(n,2):i=1:i=1,i)if(dL(e))gi(n,55);else{var x=0;if(typeof e==\"number\")switch(e){case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 46:case 47:case 49:case 50:case 51:case 58:case 59:case 65:var c=1;x=1;break}else if(e[0]===4&&xe0(e[3])){var c=1;x=1}if(!x)var c=0;var s=0;if(c)var p=c;else{var y=hL(e);if(y)var p=y;else{var T=0;if(typeof e==\"number\")switch(e){case 29:case 30:case 31:break;default:T=1}else if(e[0]===4){var E=e[3];n0(E,XRr)&&n0(E,YRr)&&n0(E,VRr)&&(T=1)}else T=1;if(T){var d=0;s=1}else var p=1}}if(!s)var d=p;if(d)St(0,n);else{var w=0;t&&oe0(e)?gi(n,t[1]):w=1}}return z7(n)}var Be0=function t(n){return t.fun(n)},jL=function t(n,e,i){return t.fun(n,e,i)},GL=function t(n){return t.fun(n)},qe0=function t(n,e){return t.fun(n,e)},ML=function t(n,e){return t.fun(n,e)},BL=function t(n,e){return t.fun(n,e)},j9=function t(n,e){return t.fun(n,e)},xb=function t(n,e){return t.fun(n,e)},G9=function t(n){return t.fun(n)},Ue0=function t(n){return t.fun(n)},He0=function t(n){return t.fun(n)},Xe0=function t(n,e,i){return t.fun(n,e,i)},Ye0=function t(n){return t.fun(n)},Ve0=function t(n){return t.fun(n)},ze0=Us[3],fne=ci[3],xne=ci[1],one=ci[5],ane=Us[2],cne=Us[1],sne=Us[4],vne=ci[4],lne=ci[6],bne=une[13],pne=Ge0[6],mne=Ge0[3];N(Be0,function(t){var n=pr(t),e=ye(n),i=5;r:for(;;){if(e)for(var x=e[2],c=e[1],s=c[2],p=c[1],y=s[2],T=0,E=un(y);;){if(E<(T+5|0))var d=0;else{var w=qn(m7(y,T,i),kRr);if(!w){var T=T+1|0;continue}var d=w}if(!d){var e=x;continue r}t[30][1]=p[3];var G=ye([0,[0,p,s],x]);break}else var G=e;if(G===0){var A=0;if(n){var S=n[1],M=S[2];if(!M[1]){var K=M[2],V=0;if(1<=un(K)&&It(K,0)===42){t[30][1]=S[1][3];var f0=[0,S,0];A=1,V=1}}}if(!A)var f0=0}else var f0=G;var m0=o(qe0,t,function(c0){return 0}),k0=Pe(t);Y0(t,Pn);var g0=Mu[1];if(le(function(c0,t0){var o0=t0[2];switch(o0[0]){case 17:return fb(t,c0,Rc(0,[0,o0[1][1],ore]));case 18:var w0=o0[1],_0=w0[1];if(_0){if(!w0[2]){var E0=_0[1],U0=E0[2],b=0;switch(U0[0]){case 34:var R0=U0[1][1],X=0,s0=le(function(Tr,Hr){return le(RL,Tr,[0,Hr[2][1],0])},X,R0);return le(function(Tr,Hr){return fb(t,Tr,Hr)},c0,s0);case 2:case 23:var hr=U0[1][1];if(hr)var Ar=hr[1];else b=1;break;case 16:case 26:case 32:case 33:var Ar=U0[1][1];break;default:b=1}return b?c0:fb(t,c0,Rc(0,[0,E0[1],Ar[2][1]]))}}else{var or=w0[2];if(or){var W0=or[1];if(W0[0]===0){var Lr=W0[1];return le(function(Tr,Hr){var Or=Hr[2],fr=Or[2];return fr?fb(t,Tr,fr[1]):fb(t,Tr,Or[1])},c0,Lr)}return c0}}return c0;default:return c0}},g0,m0),m0)var e0=bl(ye(m0))[1],x0=yt(bl(m0)[1],e0);else var x0=k0;var l=ye(t[2][1]);return[0,x0,[0,m0,lr([0,f0],0,0),l]]}}),N(jL,function(t,n,e){for(var i=ee0(1,t),x=ire;;){var c=x[3],s=x[2],p=x[1],y=A0(i),T=0;if(typeof y==\"number\"&&Pn===y)var E=[0,i,p,s,c];else T=1;if(T)if(u(n,y))var E=[0,i,p,s,c];else{var d=0;if(typeof y==\"number\"||y[0]!==2)d=1;else{var w=u(e,i),G=[0,w,s],A=w[2];if(A[0]===19){var S=A[1][2];if(S){var M=qn(S[1],ure),K=M&&1-i[20];K&&ue(i,[0,w[1],43]);var V=M?_s(1,i):i,f0=[0,y,p],m0=c||M,i=V,x=[0,f0,G,m0];continue}}var E=[0,i,p,G,c]}if(d)var E=[0,i,p,s,c]}var k0=ee0(0,i),g0=ye(p);return Du(function(e0){if(typeof e0!=\"number\"&&e0[0]===2){var x0=e0[1],l=x0[4];return l&&V7(k0,[0,x0[1],45])}return ke(Te(xre,Te(wr0(e0),fre)))},g0),[0,k0,E[3],c]}}),N(GL,function(t){var n=u(Us[6],t),e=A0(t);if(typeof e==\"number\"){var i=e-49|0;if(!(11>>0))switch(i){case 0:return o(ht[16],n,t);case 1:u(A9(t),n);var x=Yn(1,t);if(typeof x==\"number\"){var c=0;if((x===4||x===10)&&(c=1),c)return u(ht[17],t)}return u(ht[18],t);case 11:if(Yn(1,t)===49)return u(A9(t),n),o(ht[12],0,t);break}}return o(xb,[0,n],t)}),N(qe0,function(t,n){var e=ur(jL,t,n,GL),i=o(ML,n,e[1]),x=e[2];return le(function(c,s){return[0,s,c]},i,x)}),N(ML,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i==\"number\"&&Pn===i||u(t,i))return ye(e);var e=[0,u(GL,n),e]}}),N(BL,function(t,n){var e=ur(jL,n,t,function(s){return o(xb,0,s)}),i=o(j9,t,e[1]),x=e[2],c=le(function(s,p){return[0,p,s]},i,x);return[0,c,e[3]]}),N(j9,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i==\"number\"&&Pn===i||u(t,i))return ye(e);var e=[0,o(xb,0,n),e]}}),N(xb,function(t,n){var e=t&&t[1];1-$l(n)&&u(A9(n),e);var i=A0(n);if(typeof i==\"number\"){if(i===27)return u(ht[27],n);if(i===28)return u(ht[3],n)}if(Gs(n))return u(Vn[10],n);if($l(n))return o(ze0,n,e);if(typeof i==\"number\"){var x=i+Wt|0;if(!(14>>0))switch(x){case 0:if(n[27][1])return u(Vn[11],n);break;case 5:return u(ht[19],n);case 12:return o(ht[11],0,n);case 13:return u(ht[25],n);case 14:return u(ht[21],n)}}return u(G9,n)}),N(G9,function(t){var n=A0(t);if(typeof n==\"number\")switch(n){case 0:return u(ht[7],t);case 8:return u(ht[15],t);case 19:return u(ht[22],t);case 20:return u(ht[23],t);case 22:return u(ht[24],t);case 23:return u(ht[4],t);case 24:return u(ht[26],t);case 25:return u(ht[5],t);case 26:return u(ht[6],t);case 32:return u(ht[8],t);case 35:return u(ht[9],t);case 37:return u(ht[14],t);case 39:return u(ht[1],t);case 59:return u(ht[10],t);case 113:return St(ere,t),[0,Pe(t),nre];case 16:case 43:return u(ht[2],t);case 1:case 5:case 7:case 9:case 10:case 11:case 12:case 17:case 18:case 33:case 34:case 36:case 38:case 41:case 42:case 49:case 83:case 86:return St(tre,t),ie(t),u(G9,t)}if(Gs(t)){var e=u(Vn[10],t);return M1(t,e[1]),e}if(typeof n==\"number\"&&n===28&&Yn(1,t)===6){var i=Wl(1,t);return ue(t,[0,yt(Pe(t),i),94]),u(ht[17],t)}return G1(t)?u(ht[20],t):($l(t)&&(St(0,t),ie(t)),u(ht[17],t))}),N(Ue0,function(t){var n=Pe(t),e=u(ci[1],t),i=A0(t);return typeof i==\"number\"&&i===9?ur(ci[7],t,n,[0,e,0]):e}),N(He0,function(t){var n=Pe(t),e=u(ci[2],t),i=A0(t);if(typeof i==\"number\"&&i===9){var x=[0,o(R9[1],t,e),0];return[0,ur(ci[7],t,n,x)]}return e}),N(Xe0,function(t,n,e){var i=n&&n[1];return cr(0,function(x){var c=1-i,s=Me0([0,e],x),p=c&&(A0(x)===85?1:0);return p&&(1-fu(x)&&je(x,12),Y0(x,85)),[0,s,u(mn[10],x),p]},t)}),N(Ye0,function(t){var n=Pe(t),e=pr(t);Y0(t,0);var i=o(j9,function(y){return y===1?1:0},t),x=i===0?1:0,c=Pe(t),s=x&&pr(t);Y0(t,1);var p=[0,i,yu([0,e],[0,we(t)],s,0)];return[0,yt(n,c),p]}),N(Ve0,function(t){function n(i){var x=pr(i);Y0(i,0);var c=o(BL,function(S){return S===1?1:0},i),s=c[1],p=s===0?1:0,y=p&&pr(i);Y0(i,1);var T=A0(i),E=0;if(!t){var d=0;if(typeof T==\"number\"&&(T===1||Pn===T)&&(d=1),!d){var w=x7(i);if(w){var G=Ms(i);E=1}else{var G=w;E=1}}}if(!E)var G=we(i);var A=yu([0,x],[0,G],y,0);return[0,[0,s,A],c[2]]}var e=0;return function(i){return gL(e,n,i)}}),mu(lre,se,[0,Be0,G9,xb,j9,BL,ML,Ue0,He0,fne,xne,one,ane,Me0,Xe0,Ye0,Ve0,bne,pne,mne,cne,ze0,sne,vne,lne,ine]);var Ke0=[0,0],We0=bn;function _ne(t){function n(e,i){var x=i[2],c=i[1],s=oL(x),p=[0,[0,bre,u(t[1],s)],0],y=C9(e,c[3]),T=[0,u(t[5],y),0],E=C9(e,c[2]),d=[0,u(t[5],E),T],w=[0,[0,pre,u(t[4],d)],p],G=[0,[0,mre,u(t[5],c[3][2])],0],A=[0,[0,_re,u(t[5],c[3][1])],G],S=[0,[0,yre,u(t[3],A)],0],M=[0,[0,hre,u(t[5],c[2][2])],0],K=[0,[0,dre,u(t[5],c[2][1])],M],V=[0,[0,kre,u(t[3],K)],S],f0=[0,[0,wre,u(t[3],V)],w];switch(i[3]){case 0:var m0=Ere;break;case 1:var m0=Sre;break;case 2:var m0=gre;break;case 3:var m0=Fre;break;case 4:var m0=Tre;break;default:var m0=Ore}var k0=[0,[0,Ire,u(t[1],m0)],f0],g0=wr0(x),e0=[0,[0,Are,u(t[1],g0)],k0];return u(t[3],e0)}return[0,n,function(e,i){var x=ye(Fp(function(c){return n(e,c)},i));return u(t[4],x)}]}var yne=S70;function U1(t){return g70(_l(t))}function hu(t){return E70(_l(t))}function hne(t){return t}function dne(t){return t}function Je0(t,n,e){try{var i=new RegExp(bn(n),bn(e));return i}catch{return i7}}var kne=_ne([0,We0,yne,U1,hu,hne,dne,i7,Je0]),wne=[0,1],$e0=function(t){function n(E,d){return hu(ye(Fp(E,d)))}function e(E,d){return d?u(E,d[1]):i7}function i(E,d){return d[0]===0?i7:u(E,d[1])}function x(E){return U1([0,[0,AWr,E[1]],[0,[0,IWr,E[2]],0]])}function c(E){var d=E[1],w=d?bn(d[1][1]):i7,G=[0,[0,FWr,x(E[3])],0];return U1([0,[0,OWr,w],[0,[0,TWr,x(E[2])],G]])}function s(E){return n(function(d){var w=d[2],G=0;if(typeof w==\"number\"){var A=w;if(55<=A)switch(A){case 55:var S=nmr;break;case 56:var S=tmr;break;case 57:var S=umr;break;case 58:var S=imr;break;case 59:var S=fmr;break;case 60:var S=xmr;break;case 61:var S=Te(amr,omr);break;case 62:var S=Te(smr,cmr);break;case 63:var S=Te(lmr,vmr);break;case 64:var S=bmr;break;case 65:var S=pmr;break;case 66:var S=mmr;break;case 67:var S=_mr;break;case 68:var S=ymr;break;case 69:var S=hmr;break;case 70:var S=dmr;break;case 71:var S=kmr;break;case 72:var S=wmr;break;case 73:var S=Emr;break;case 74:var S=Smr;break;case 75:var S=gmr;break;case 76:var S=Fmr;break;case 77:var S=Tmr;break;case 78:var S=Omr;break;case 79:var S=Imr;break;case 80:var S=Amr;break;case 81:var S=Nmr;break;case 82:var S=Te(Pmr,Cmr);break;case 83:var S=Dmr;break;case 84:var S=Lmr;break;case 85:var S=Rmr;break;case 86:var S=jmr;break;case 87:var S=Gmr;break;case 88:var S=Mmr;break;case 89:var S=Bmr;break;case 90:var S=qmr;break;case 91:var S=Umr;break;case 92:var S=Hmr;break;case 93:var S=Xmr;break;case 94:var S=Te(Vmr,Ymr);break;case 95:var S=zmr;break;case 96:var S=Kmr;break;case 97:var S=Wmr;break;case 98:var S=Jmr;break;case 99:var S=$mr;break;case 100:var S=Zmr;break;case 101:var S=Qmr;break;case 102:var S=r9r;break;case 103:var S=e9r;break;case 104:var S=n9r;break;case 105:var S=t9r;break;case 106:var S=u9r;break;case 107:var S=i9r;break;default:var S=f9r}else switch(A){case 0:var S=r5r;break;case 1:var S=e5r;break;case 2:var S=n5r;break;case 3:var S=t5r;break;case 4:var S=u5r;break;case 5:var S=i5r;break;case 6:var S=f5r;break;case 7:var S=x5r;break;case 8:var S=o5r;break;case 9:var S=a5r;break;case 10:var S=c5r;break;case 11:var S=s5r;break;case 12:var S=v5r;break;case 13:var S=l5r;break;case 14:var S=b5r;break;case 15:var S=p5r;break;case 16:var S=m5r;break;case 17:var S=_5r;break;case 18:var S=y5r;break;case 19:var S=h5r;break;case 20:var S=d5r;break;case 21:var S=k5r;break;case 22:var S=w5r;break;case 23:var S=E5r;break;case 24:var S=S5r;break;case 25:var S=g5r;break;case 26:var S=F5r;break;case 27:var S=T5r;break;case 28:var S=O5r;break;case 29:var S=I5r;break;case 30:var S=A5r;break;case 31:var S=Te(C5r,N5r);break;case 32:var S=P5r;break;case 33:var S=D5r;break;case 34:var S=L5r;break;case 35:var S=R5r;break;case 36:var S=j5r;break;case 37:var S=G5r;break;case 38:var S=M5r;break;case 39:var S=B5r;break;case 40:var S=q5r;break;case 41:var S=U5r;break;case 42:var S=H5r;break;case 43:var S=X5r;break;case 44:var S=Y5r;break;case 45:var S=V5r;break;case 46:var S=z5r;break;case 47:var S=K5r;break;case 48:var S=W5r;break;case 49:var S=J5r;break;case 50:var S=$5r;break;case 51:var S=Z5r;break;case 52:var S=Q5r;break;case 53:var S=rmr;break;default:var S=emr}}else switch(w[0]){case 0:var M=w[2],K=w[1],S=ur(et(x9r),M,M,K);break;case 1:var V=w[1],f0=w[2],S=o(et(o9r),f0,V);break;case 2:var m0=w[1],S=u(et(a9r),m0);break;case 3:var k0=w[2],g0=w[1],e0=u(et(c9r),g0);if(k0)var x0=k0[1],S=o(et(s9r),x0,e0);else var S=u(et(v9r),e0);break;case 4:var l=w[1],S=o(et(l9r),l,l);break;case 5:var c0=w[3],t0=w[2],o0=w[1];if(t0){var w0=t0[1];if(3<=w0)var S=o(et(b9r),c0,o0);else{switch(w0){case 0:var _0=Jpr;break;case 1:var _0=$pr;break;case 2:var _0=Zpr;break;default:var _0=Qpr}var S=R(et(p9r),o0,_0,c0,_0)}}else var S=o(et(m9r),c0,o0);break;case 6:var E0=w[2],U0=E0;if(b7(U0)===0)var b=U0;else{var R0=sz(U0);Jn(R0,0,xz(Xu(U0,0)));var b=R0}var X=b,s0=w[1],S=ur(et(_9r),E0,X,s0);break;case 7:var S=w[1]?y9r:h9r;break;case 8:var hr=w[1],Ar=w[2],S=o(et(d9r),Ar,hr);break;case 9:var or=w[1],S=u(et(k9r),or);break;case 10:var W0=w[1],S=u(et(w9r),W0);break;case 11:var Lr=w[2],Tr=w[1],S=o(et(E9r),Tr,Lr);break;case 12:var Hr=w[2],Or=w[1],S=o(et(S9r),Or,Hr);break;case 13:var S=Te(F9r,Te(w[1],g9r));break;case 14:var fr=w[1]?T9r:O9r,S=u(et(I9r),fr);break;case 15:var S=Te(N9r,Te(w[1],A9r));break;case 16:var Rr=Te(P9r,Te(w[2],C9r)),S=Te(w[1],Rr);break;case 17:var S=Te(D9r,w[1]);break;case 18:var S=w[1]?Te(R9r,L9r):Te(G9r,j9r);break;case 19:var Wr=w[1],S=u(et(M9r),Wr);break;case 20:var S=Te(q9r,Te(w[1],B9r));break;case 21:var Jr=w[1],ar=w[2]?U9r:H9r,_r=w[4]?Te(X9r,Jr):Jr,Ir=w[3]?Y9r:V9r,S=Te(W9r,Te(ar,Te(Ir,Te(K9r,Te(_r,z9r)))));break;case 22:var S=Te($9r,Te(w[1],J9r));break;default:var fe=w[1],S=u(et(Z9r),fe)}var v0=[0,[0,SWr,bn(S)],G];return U1([0,[0,gWr,c(d[1])],v0])},E)}function p(E){if(E){var d=E[1],w=[0,on(d[3],d[2])];return lr([0,d[1]],w,0)}return E}function y(E){function d(_){return n(q0,_)}function w(_,k,I,U){var Y=t[1];if(Y){if(E)var y0=E[1],P0=[0,C9(y0,k[3]),0],I0=[0,[0,iGr,hu([0,C9(y0,k[2]),P0])],0];else var I0=E;var D=on(I0,[0,[0,fGr,c(k)],0])}else var D=Y;if(I){var u0=I[1],X0=u0[1];if(X0){var J0=u0[2];if(J0)var ir=[0,[0,xGr,d(J0)],0],Q0=[0,[0,oGr,d(X0)],ir];else var Q0=[0,[0,aGr,d(X0)],0];var mr=Q0}else var F0=u0[2],Sr=F0&&[0,[0,cGr,d(F0)],0],mr=Sr;var Cr=mr}else var Cr=I;return U1(Lc(on(D,on(Cr,[0,[0,sGr,bn(_)],0])),U))}function G(_){return n(Q,_)}function A(_){var k=_[2],I=G(k[1]),U=[0,[0,lGr,I],[0,[0,vGr,d(k[3])],0]];return w(bGr,_[1],k[2],U)}function S(_){var k=_[2];return w(Vqr,_[1],k[2],[0,[0,Yqr,bn(k[1])],[0,[0,Xqr,i7],[0,[0,Hqr,!1],0]]])}function M(_){if(_[0]===0)return S(_[1]);var k=_[1],I=k[2],U=M(I[1]),Y=[0,[0,Mzr,U],[0,[0,Gzr,S(I[2])],0]];return w(Bzr,k[1],0,Y)}function K(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,wzr,U],[0,[0,kzr,S(k[2])],0]];return w(Ezr,_[1],0,Y)}function V(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,gzr,U],[0,[0,Szr,e($r,k[2])],0]];return w(Fzr,_[1],k[3],Y)}function f0(_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(typeof U==\"number\")var y0=i7;else switch(U[0]){case 0:var y0=bn(U[1]);break;case 1:var y0=!!U[1];break;case 2:var y0=U[1];break;case 3:var y0=ke(bYr);break;default:var P0=U[1],y0=Je0(Y,P0[1],P0[2])}var I0=0;if(typeof U!=\"number\"&&U[0]===4){var D=U[1],u0=[0,[0,_Yr,U1([0,[0,mYr,bn(D[1])],[0,[0,pYr,bn(D[2])],0]])],0],X0=[0,[0,hYr,y0],[0,[0,yYr,bn(I)],u0]];I0=1}if(!I0)var X0=[0,[0,kYr,y0],[0,[0,dYr,bn(I)],0]];return w(wYr,Y,k[3],X0)}function m0(_){var k=[0,[0,Tzr,g0(_[2])],0];return[0,[0,Ozr,g0(_[1])],k]}function k0(_,k){var I=k[2],U=[0,[0,EVr,!!I[3]],0],Y=[0,[0,SVr,g0(I[2])],U],y0=[0,[0,gVr,e(S,I[1])],Y];return w(FVr,k[1],_,y0)}function g0(_){var k=_[2],I=_[1];switch(k[0]){case 0:return w(iVr,I,k[1],0);case 1:return w(fVr,I,k[1],0);case 2:return w(xVr,I,k[1],0);case 3:return w(oVr,I,k[1],0);case 4:return w(aVr,I,k[1],0);case 5:return w(sVr,I,k[1],0);case 6:return w(vVr,I,k[1],0);case 7:return w(lVr,I,k[1],0);case 8:return w(bVr,I,k[1],0);case 9:return w(cVr,I,k[1],0);case 10:return w(tKr,I,k[1],0);case 11:var U=k[1],Y=[0,[0,pVr,g0(U[1])],0];return w(mVr,I,U[2],Y);case 12:return e0([0,I,k[1]]);case 13:return x0(1,[0,I,k[1]]);case 14:var y0=k[1],P0=[0,[0,mzr,x0(0,y0[1])],0],I0=[0,[0,_zr,n(fe,y0[2])],P0];return w(yzr,I,y0[3],I0);case 15:var D=k[1],u0=[0,[0,hzr,g0(D[1])],0];return w(dzr,I,D[2],u0);case 16:return V([0,I,k[1]]);case 17:var X0=k[1],J0=m0(X0);return w(Izr,I,X0[3],J0);case 18:var ir=k[1],Q0=ir[1],F0=[0,[0,Azr,!!ir[2]],0],Sr=on(m0(Q0),F0);return w(Nzr,I,Q0[3],Sr);case 19:var mr=k[1],Cr=mr[1],sr=[0,[0,Czr,n(g0,[0,Cr[1],[0,Cr[2],Cr[3]]])],0];return w(Pzr,I,mr[2],sr);case 20:var Pr=k[1],K0=Pr[1],Ur=[0,[0,Dzr,n(g0,[0,K0[1],[0,K0[2],K0[3]]])],0];return w(Lzr,I,Pr[2],Ur);case 21:var h0=k[1],Kr=[0,[0,Rzr,M(h0[1])],0];return w(jzr,I,h0[2],Kr);case 22:var re=k[1],xe=[0,[0,qzr,n(g0,re[1])],0];return w(Uzr,I,re[2],xe);case 23:var Re=k[1];return w(Yzr,I,Re[3],[0,[0,Xzr,bn(Re[1])],[0,[0,Hzr,bn(Re[2])],0]]);case 24:var ve=k[1];return w(Kzr,I,ve[3],[0,[0,zzr,ve[1]],[0,[0,Vzr,bn(ve[2])],0]]);case 25:var Ie=k[1];return w($zr,I,Ie[3],[0,[0,Jzr,i7],[0,[0,Wzr,bn(Ie[2])],0]]);default:var Ge=k[1],Me=Ge[1],an=0,We=Me?Zzr:Qzr;return w(nKr,I,Ge[2],[0,[0,eKr,!!Me],[0,[0,rKr,bn(We)],an]])}}function e0(_){var k=_[2],I=k[2][2],U=k[4],Y=y7(p(I[4]),U),y0=[0,[0,_Vr,e(qr,k[1])],0],P0=[0,[0,yVr,e(Mr,I[3])],y0],I0=[0,[0,hVr,g0(k[3])],P0],D=[0,[0,dVr,e(Br,I[1])],I0],u0=I[2],X0=[0,[0,kVr,n(function(J0){return k0(0,J0)},u0)],D];return w(wVr,_[1],Y,X0)}function x0(_,k){var I=k[2],U=I[3],Y=le(function(ir,Q0){var F0=ir[4],Sr=ir[3],mr=ir[2],Cr=ir[1];switch(Q0[0]){case 0:var sr=Q0[1],Pr=sr[2],K0=Pr[2],Ur=Pr[1];switch(Ur[0]){case 0:var h0=f0(Ur[1]);break;case 1:var h0=S(Ur[1]);break;case 2:var h0=ke(MVr);break;default:var h0=ke(BVr)}switch(K0[0]){case 0:var xe=qVr,Re=g0(K0[1]);break;case 1:var Kr=K0[1],xe=UVr,Re=e0([0,Kr[1],Kr[2]]);break;default:var re=K0[1],xe=HVr,Re=e0([0,re[1],re[2]])}var ve=[0,[0,XVr,bn(xe)],0],Ie=[0,[0,YVr,e(Er,Pr[7])],ve];return[0,[0,w(ZVr,sr[1],Pr[8],[0,[0,$Vr,h0],[0,[0,JVr,Re],[0,[0,WVr,!!Pr[6]],[0,[0,KVr,!!Pr[3]],[0,[0,zVr,!!Pr[4]],[0,[0,VVr,!!Pr[5]],Ie]]]]]]),Cr],mr,Sr,F0];case 1:var Ge=Q0[1],Me=Ge[2],an=[0,[0,QVr,g0(Me[1])],0];return[0,[0,w(rzr,Ge[1],Me[2],an),Cr],mr,Sr,F0];case 2:var We=Q0[1],Ae=We[2],cn=[0,[0,ezr,e(Er,Ae[5])],0],rn=[0,[0,nzr,!!Ae[4]],cn],kn=[0,[0,tzr,g0(Ae[3])],rn],vn=[0,[0,uzr,g0(Ae[2])],kn],Ne=[0,[0,izr,e(S,Ae[1])],vn];return[0,Cr,[0,w(fzr,We[1],Ae[6],Ne),mr],Sr,F0];case 3:var Je=Q0[1],en=Je[2],_n=[0,[0,xzr,!!en[2]],0],Cn=[0,[0,ozr,e0(en[1])],_n];return[0,Cr,mr,[0,w(azr,Je[1],en[3],Cn),Sr],F0];default:var Hn=Q0[1],Fn=Hn[2],vt=[0,[0,czr,g0(Fn[2])],0],Nt=[0,[0,lzr,!!Fn[3]],[0,[0,vzr,!!Fn[4]],[0,[0,szr,!!Fn[5]],vt]]],gt=[0,[0,bzr,S(Fn[1])],Nt];return[0,Cr,mr,Sr,[0,w(pzr,Hn[1],Fn[6],gt),F0]]}},NVr,U),y0=[0,[0,CVr,hu(ye(Y[4]))],0],P0=[0,[0,PVr,hu(ye(Y[3]))],y0],I0=[0,[0,DVr,hu(ye(Y[2]))],P0],D=[0,[0,LVr,hu(ye(Y[1]))],I0],u0=[0,[0,RVr,!!I[1]],D],X0=_?[0,[0,jVr,!!I[2]],u0]:u0,J0=p(I[4]);return w(GVr,k[1],J0,X0)}function l(_){var k=[0,[0,uKr,g0(_[2])],0];return w(iKr,_[1],0,k)}function c0(_){var k=_[2];switch(k[2]){case 0:var I=KYr;break;case 1:var I=WYr;break;default:var I=JYr}var U=[0,[0,$Yr,bn(I)],0],Y=[0,[0,ZYr,n($0,k[1])],U];return w(QYr,_[1],k[3],Y)}function t0(_){var k=_[2];return w(NYr,_[1],k[3],[0,[0,AYr,bn(k[1])],[0,[0,IYr,bn(k[2])],0]])}function o0(_){var k=_[2],I=[0,[0,IXr,i1],[0,[0,OXr,l(k[1])],0]];return w(AXr,_[1],k[2],I)}function w0(_,k){var I=k[1][2],U=[0,[0,$qr,!!k[3]],0],Y=[0,[0,Zqr,i(l,k[2])],U];return w(rUr,_,I[2],[0,[0,Qqr,bn(I[1])],Y])}function _0(_){var k=_[2];return w(Jqr,_[1],k[2],[0,[0,Wqr,bn(k[1])],[0,[0,Kqr,i7],[0,[0,zqr,!1],0]]])}function E0(_){return n(M0,_[2][1])}function U0(_){var k=_[2],I=[0,[0,wKr,w(PKr,k[2],0,0)],0],U=[0,[0,EKr,n(oe,k[3][2])],I],Y=[0,[0,SKr,w(AKr,k[1],0,0)],U];return w(gKr,_[1],k[4],Y)}function b(_){var k=_[2];return w(rWr,_[1],k[2],[0,[0,QKr,bn(k[1])],0])}function R0(_){var k=_[2],I=[0,[0,JKr,b(k[2])],0],U=[0,[0,$Kr,b(k[1])],I];return w(ZKr,_[1],0,U)}function X(_){var k=_[2],I=k[1],U=I[0]===0?b(I[1]):X(I[1]),Y=[0,[0,KKr,U],[0,[0,zKr,b(k[2])],0]];return w(WKr,_[1],0,Y)}function s0(_){switch(_[0]){case 0:return b(_[1]);case 1:return R0(_[1]);default:return X(_[1])}}function hr(_){var k=_[2],I=[0,[0,yKr,n(oe,k[3][2])],0],U=[0,[0,hKr,e(ae,k[2])],I],Y=k[1],y0=Y[2],P0=[0,[0,FKr,!!y0[2]],0],I0=[0,[0,TKr,n(be,y0[3])],P0],D=[0,[0,OKr,s0(y0[1])],I0],u0=[0,[0,dKr,w(IKr,Y[1],0,D)],U];return w(kKr,_[1],k[4],u0)}function Ar(_){var k=_[2],I=[0,[0,jYr,n(fr,k[2])],0],U=[0,[0,GYr,n(vr,k[1])],I];return w(MYr,_[1],k[3],U)}function or(_,k){var I=k[2],U=I[7],Y=I[5],y0=I[4];if(y0)var P0=y0[1][2],I0=y7(P0[3],U),D=I0,u0=P0[2],X0=[0,P0[1]];else var D=U,u0=0,X0=0;if(Y)var J0=Y[1][2],ir=y7(J0[2],D),Q0=ir,F0=n(T0,J0[1]);else var Q0=D,F0=hu(0);var Sr=[0,[0,zUr,F0],[0,[0,VUr,n(S0,I[6])],0]],mr=[0,[0,KUr,e($r,u0)],Sr],Cr=[0,[0,WUr,e(fr,X0)],mr],sr=[0,[0,JUr,e(qr,I[3])],Cr],Pr=I[2],K0=Pr[2],Ur=[0,[0,uHr,n(rr,K0[1])],0],h0=[0,[0,$Ur,w(iHr,Pr[1],K0[2],Ur)],sr],Kr=[0,[0,ZUr,e(S,I[1])],h0];return w(_,k[1],Q0,Kr)}function W0(_){var k=_[2],I=[0,[0,xUr,G(k[1])],0],U=p(k[2]);return w(oUr,_[1],U,I)}function Lr(_){var k=_[2];switch(k[0]){case 0:var I=0,U=S(k[1]);break;case 1:var I=0,U=_0(k[1]);break;default:var I=1,U=fr(k[1])}return[0,[0,EWr,fr(_[1])],[0,[0,wWr,U],[0,[0,kWr,!!I],0]]]}function Tr(_){var k=[0,[0,yWr,E0(_[3])],0],I=[0,[0,hWr,e(ne,_[2])],k];return[0,[0,dWr,fr(_[1])],I]}function Hr(_){var k=_[2],I=k[3],U=k[2],Y=k[1];if(I){var y0=I[1],P0=y0[2],I0=[0,[0,NXr,Or(P0[1])],0],D=w(CXr,y0[1],P0[2],I0),u0=ye([0,D,Fp(L0,U)]),X0=Y?[0,o0(Y[1]),u0]:u0;return hu(X0)}var J0=d1(L0,U),ir=Y?[0,o0(Y[1]),J0]:J0;return hu(ir)}function Or(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,hXr,i(l,U[2])],0],y0=[0,[0,dXr,n(b0,U[1])],Y];return w(kXr,I,p(U[3]),y0);case 1:var P0=k[1],I0=[0,[0,wXr,i(l,P0[2])],0],D=[0,[0,EXr,n(Z,P0[1])],I0];return w(SXr,I,p(P0[3]),D);case 2:return w0(I,k[1]);default:return fr(k[1])}}function fr(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,XMr,n(er,U[1])],0];return w(YMr,I,p(U[2]),Y);case 1:var y0=k[1],P0=y0[7],I0=y0[3],D=y0[2];if(I0[0]===0)var u0=0,X0=W0(I0[1]);else var u0=1,X0=fr(I0[1]);var J0=P0[0]===0?0:[0,P0[1]],ir=y0[9],Q0=y7(p(D[2][4]),ir),F0=[0,[0,VMr,e(qr,y0[8])],0],Sr=[0,[0,KMr,!!u0],[0,[0,zMr,e(l,J0)],F0]],mr=[0,[0,JMr,!1],[0,[0,WMr,e(Fr,y0[6])],Sr]],Cr=[0,[0,ZMr,X0],[0,[0,$Mr,!!y0[4]],mr]];return w(eBr,I,Q0,[0,[0,rBr,i7],[0,[0,QMr,Hr(D)],Cr]]);case 2:var sr=k[1],Pr=sr[1];if(Pr){switch(Pr[1]){case 0:var K0=Tpr;break;case 1:var K0=Opr;break;case 2:var K0=Ipr;break;case 3:var K0=Apr;break;case 4:var K0=Npr;break;case 5:var K0=Cpr;break;case 6:var K0=Ppr;break;case 7:var K0=Dpr;break;case 8:var K0=Lpr;break;case 9:var K0=Rpr;break;case 10:var K0=jpr;break;case 11:var K0=Gpr;break;case 12:var K0=Mpr;break;case 13:var K0=Bpr;break;default:var K0=qpr}var Ur=K0}else var Ur=nBr;var h0=[0,[0,tBr,fr(sr[3])],0],Kr=[0,[0,uBr,Or(sr[2])],h0];return w(fBr,I,sr[4],[0,[0,iBr,bn(Ur)],Kr]);case 3:var re=k[1],xe=[0,[0,xBr,fr(re[3])],0],Re=[0,[0,oBr,fr(re[2])],xe];switch(re[1]){case 0:var ve=ipr;break;case 1:var ve=fpr;break;case 2:var ve=xpr;break;case 3:var ve=opr;break;case 4:var ve=apr;break;case 5:var ve=cpr;break;case 6:var ve=spr;break;case 7:var ve=vpr;break;case 8:var ve=lpr;break;case 9:var ve=bpr;break;case 10:var ve=ppr;break;case 11:var ve=mpr;break;case 12:var ve=_pr;break;case 13:var ve=ypr;break;case 14:var ve=hpr;break;case 15:var ve=dpr;break;case 16:var ve=kpr;break;case 17:var ve=wpr;break;case 18:var ve=Epr;break;case 19:var ve=Spr;break;case 20:var ve=gpr;break;default:var ve=Fpr}return w(cBr,I,re[4],[0,[0,aBr,bn(ve)],Re]);case 4:var Ie=k[1],Ge=Ie[4],Me=y7(p(Ie[3][2][2]),Ge);return w(sBr,I,Me,Tr(Ie));case 5:return or(YUr,[0,I,k[1]]);case 6:var an=k[1],We=[0,[0,vBr,e(fr,an[2])],0];return w(bBr,I,0,[0,[0,lBr,n(yr,an[1])],We]);case 7:var Ae=k[1],cn=[0,[0,pBr,fr(Ae[3])],0],rn=[0,[0,mBr,fr(Ae[2])],cn],kn=[0,[0,_Br,fr(Ae[1])],rn];return w(yBr,I,Ae[4],kn);case 8:return Rr([0,I,k[1]]);case 9:var vn=k[1],Ne=[0,[0,hBr,e(fr,vn[2])],0];return w(kBr,I,0,[0,[0,dBr,n(yr,vn[1])],Ne]);case 10:return S(k[1]);case 11:var Je=k[1],en=[0,[0,wBr,fr(Je[1])],0];return w(EBr,I,Je[2],en);case 12:return hr([0,I,k[1]]);case 13:return U0([0,I,k[1]]);case 14:var _n=k[1],Cn=_n[1];return typeof Cn!=\"number\"&&Cn[0]===3?w(OYr,I,_n[3],[0,[0,TYr,i7],[0,[0,FYr,bn(_n[2])],0]]):f0([0,I,_n]);case 15:var Hn=k[1];switch(Hn[1]){case 0:var Fn=SBr;break;case 1:var Fn=gBr;break;default:var Fn=FBr}var vt=[0,[0,TBr,fr(Hn[3])],0],Nt=[0,[0,OBr,fr(Hn[2])],vt];return w(ABr,I,Hn[4],[0,[0,IBr,bn(Fn)],Nt]);case 16:var gt=k[1],Zt=Lr(gt);return w(NBr,I,gt[3],Zt);case 17:var qt=k[1],Ft=[0,[0,CBr,S(qt[2])],0],Ct=[0,[0,PBr,S(qt[1])],Ft];return w(DBr,I,qt[3],Ct);case 18:var du=k[1],Wu=du[4],lt=du[3];if(lt)var ou=lt[1],Bu=y7(p(ou[2][2]),Wu),K7=Bu,Yi=E0(ou);else var K7=Wu,Yi=hu(0);var a7=[0,[0,RBr,e(ne,du[2])],[0,[0,LBr,Yi],0]];return w(GBr,I,K7,[0,[0,jBr,fr(du[1])],a7]);case 19:var Hc=k[1],W7=[0,[0,MBr,n(p0,Hc[1])],0];return w(BBr,I,p(Hc[2]),W7);case 20:var Ut=k[1],bt=Ut[1],B0=bt[4],D0=y7(p(bt[3][2][2]),B0),Le=[0,[0,qBr,!!Ut[3]],0];return w(UBr,I,D0,on(Tr(bt),Le));case 21:var He=k[1],he=He[1],me=[0,[0,HBr,!!He[3]],0],Zn=on(Lr(he),me);return w(XBr,I,he[3],Zn);case 22:var wn=k[1],ft=[0,[0,YBr,n(fr,wn[1])],0];return w(VBr,I,wn[2],ft);case 23:return w(zBr,I,k[1][1],0);case 24:var xt=k[1],jn=[0,[0,YYr,Ar(xt[2])],0],ut=[0,[0,VYr,fr(xt[1])],jn];return w(zYr,I,xt[3],ut);case 25:return Ar([0,I,k[1]]);case 26:return w(KBr,I,k[1][1],0);case 27:var dt=k[1],xn=[0,[0,WBr,l(dt[2])],0],ln=[0,[0,JBr,fr(dt[1])],xn];return w($Br,I,dt[3],ln);case 28:var it=k[1],Tt=it[3],Ti=it[2],hs=it[1];if(7<=hs)return w(QBr,I,Tt,[0,[0,ZBr,fr(Ti)],0]);switch(hs){case 0:var Au=rqr;break;case 1:var Au=eqr;break;case 2:var Au=nqr;break;case 3:var Au=tqr;break;case 4:var Au=uqr;break;case 5:var Au=iqr;break;case 6:var Au=fqr;break;default:var Au=ke(xqr)}var Hs=[0,[0,aqr,!0],[0,[0,oqr,fr(Ti)],0]];return w(sqr,I,Tt,[0,[0,cqr,bn(Au)],Hs]);case 29:var Vi=k[1],Xs=Vi[1]?vqr:lqr,Ys=[0,[0,bqr,!!Vi[3]],0],nn=[0,[0,pqr,fr(Vi[2])],Ys];return w(_qr,I,Vi[4],[0,[0,mqr,bn(Xs)],nn]);default:var si=k[1],Vs=[0,[0,yqr,!!si[3]],0],c2=[0,[0,hqr,e(fr,si[1])],Vs];return w(dqr,I,si[2],c2)}}function Rr(_){var k=_[2],I=k[7],U=k[3],Y=k[2],y0=U[0]===0?U[1]:ke(Cqr),P0=I[0]===0?0:[0,I[1]],I0=k[9],D=y7(p(Y[2][4]),I0),u0=[0,[0,Pqr,e(qr,k[8])],0],X0=[0,[0,Lqr,!1],[0,[0,Dqr,e(l,P0)],u0]],J0=[0,[0,Rqr,e(Fr,k[6])],X0],ir=[0,[0,Gqr,!!k[4]],[0,[0,jqr,!!k[5]],J0]],Q0=[0,[0,Mqr,W0(y0)],ir],F0=[0,[0,Bqr,Hr(Y)],Q0],Sr=[0,[0,qqr,e(S,k[1])],F0];return w(Uqr,_[1],D,Sr)}function Wr(_){var k=_[2],I=[0,[0,sXr,n(fe,k[3])],0],U=[0,[0,vXr,x0(0,k[4])],I],Y=[0,[0,lXr,e(qr,k[2])],U],y0=[0,[0,bXr,S(k[1])],Y];return w(pXr,_[1],k[5],y0)}function Jr(_,k){var I=k[2],U=_?GUr:MUr,Y=[0,[0,BUr,e(g0,I[4])],0],y0=[0,[0,qUr,e(g0,I[3])],Y],P0=[0,[0,UUr,e(qr,I[2])],y0],I0=[0,[0,HUr,S(I[1])],P0];return w(U,k[1],I[5],I0)}function ar(_){var k=_[2],I=[0,[0,DUr,g0(k[3])],0],U=[0,[0,LUr,e(qr,k[2])],I],Y=[0,[0,RUr,S(k[1])],U];return w(jUr,_[1],k[4],Y)}function _r(_){if(_){var k=_[1];if(k[0]===0)return n(ge,k[1]);var I=k[1],U=I[2];if(U){var Y=[0,[0,OUr,S(U[1])],0];return hu([0,w(IUr,I[1],0,Y),0])}return hu(0)}return hu(0)}function Ir(_){return _?FUr:TUr}function fe(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,_Xr,U],[0,[0,mXr,e($r,k[2])],0]];return w(yXr,_[1],k[3],Y)}function v0(_){var k=_[2],I=k[6],U=k[4],Y=hu(U?[0,fe(U[1]),0]:0),y0=I?n(T0,I[1][2][1]):hu(0),P0=[0,[0,mUr,Y],[0,[0,pUr,y0],[0,[0,bUr,n(fe,k[5])],0]]],I0=[0,[0,_Ur,x0(0,k[3])],P0],D=[0,[0,yUr,e(qr,k[2])],I0],u0=[0,[0,hUr,S(k[1])],D];return w(dUr,_[1],k[7],u0)}function P(_){var k=_[2],I=k[2],U=k[1],Y=yt(U[1],I[1]),y0=[0,[0,sUr,e(Fr,k[3])],0],P0=[0,[0,vUr,w0(Y,[0,U,[1,I],0])],y0];return w(lUr,_[1],k[4],P0)}function L(_){var k=_[2],I=k[2],U=k[1],Y=[0,[0,aUr,w0(yt(U[1],I[1]),[0,U,[1,I],0])],0];return w(cUr,_[1],k[3],Y)}function Q(_){var k=_[2],I=_[1];switch(k[0]){case 0:return W0([0,I,k[1]]);case 1:var U=k[1],Y=[0,[0,pGr,e(S,U[1])],0];return w(mGr,I,U[2],Y);case 2:return or(XUr,[0,I,k[1]]);case 3:var y0=k[1],P0=[0,[0,_Gr,e(S,y0[1])],0];return w(yGr,I,y0[2],P0);case 4:return w(hGr,I,k[1][1],0);case 5:return v0([0,I,k[1]]);case 6:var I0=k[1],D=I0[5],u0=I0[4],X0=I0[3],J0=I0[2];if(X0){var ir=X0[1];if(ir[0]!==0&&!ir[1][2])return w(kGr,I,D,[0,[0,dGr,e(t0,u0)],0])}if(J0){var Q0=J0[1];switch(Q0[0]){case 0:var F0=L(Q0[1]);break;case 1:var F0=P(Q0[1]);break;case 2:var F0=v0(Q0[1]);break;case 3:var F0=g0(Q0[1]);break;case 4:var F0=ar(Q0[1]);break;case 5:var F0=Jr(1,Q0[1]);break;default:var F0=Wr(Q0[1])}var Sr=F0}else var Sr=i7;var mr=[0,[0,wGr,e(t0,u0)],0],Cr=[0,[0,SGr,Sr],[0,[0,EGr,_r(X0)],mr]],sr=I0[1],Pr=sr&&1;return w(FGr,I,D,[0,[0,gGr,!!Pr],Cr]);case 7:return P([0,I,k[1]]);case 8:var K0=k[1],Ur=[0,[0,kUr,n(fe,K0[3])],0],h0=[0,[0,wUr,x0(0,K0[4])],Ur],Kr=[0,[0,EUr,e(qr,K0[2])],h0],re=[0,[0,SUr,S(K0[1])],Kr];return w(gUr,I,K0[5],re);case 9:var xe=k[1],Re=xe[1],ve=Re[0]===0?S(Re[1]):t0(Re[1]),Ie=0,Ge=xe[3]?\"ES\":\"CommonJS\",Me=[0,[0,IGr,ve],[0,[0,OGr,W0(xe[2])],[0,[0,TGr,Ge],Ie]]];return w(AGr,I,xe[4],Me);case 10:var an=k[1],We=[0,[0,NGr,l(an[1])],0];return w(CGr,I,an[2],We);case 11:var Ae=k[1],cn=[0,[0,AUr,g0(Ae[3])],0],rn=[0,[0,NUr,e(qr,Ae[2])],cn],kn=[0,[0,CUr,S(Ae[1])],rn];return w(PUr,I,Ae[4],kn);case 12:return Jr(1,[0,I,k[1]]);case 13:return L([0,I,k[1]]);case 14:var vn=k[1],Ne=[0,[0,PGr,fr(vn[2])],0],Je=[0,[0,DGr,Q(vn[1])],Ne];return w(LGr,I,vn[3],Je);case 15:return w(RGr,I,k[1][1],0);case 16:var en=k[1],_n=en[2],Cn=_n[2],Hn=_n[1];switch(Cn[0]){case 0:var Fn=Cn[1],vt=[0,[0,KHr,!!Fn[2]],[0,[0,zHr,!!Fn[3]],0]],Nt=Fn[1],gt=[0,[0,WHr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=w7[1],ev=0,Lb=Ki?CYr:PYr,nv=[0,[0,XHr,w(RYr,Ii[1],w7[2],[0,[0,LYr,!!Ki],[0,[0,DYr,bn(Lb)],0]])],ev],Rb=[0,[0,YHr,S(wu[1])],nv];return w(VHr,ku[1],0,Rb)},Nt)],vt],bt=w(JHr,Hn,p(Fn[4]),gt);break;case 1:var Zt=Cn[1],qt=[0,[0,ZHr,!!Zt[2]],[0,[0,$Hr,!!Zt[3]],0]],Ft=Zt[1],Ct=[0,[0,QHr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=[0,[0,qHr,w(gYr,Ii[1],w7[3],[0,[0,SYr,w7[1]],[0,[0,EYr,bn(w7[2])],0]])],0],ev=[0,[0,UHr,S(wu[1])],Ki];return w(HHr,ku[1],0,ev)},Ft)],qt],bt=w(rXr,Hn,p(Zt[4]),Ct);break;case 2:var du=Cn[1],Wu=du[1];if(Wu[0]===0)var lt=Wu[1],Bu=d1(function(ku){var wu=[0,[0,MHr,S(ku[2][1])],0];return w(BHr,ku[1],0,wu)},lt);else var ou=Wu[1],Bu=d1(function(ku){var wu=ku[2],Ii=[0,[0,RHr,t0(wu[2])],0],w7=[0,[0,jHr,S(wu[1])],Ii];return w(GHr,ku[1],0,w7)},ou);var K7=[0,[0,nXr,!!du[2]],[0,[0,eXr,!!du[3]],0]],Yi=[0,[0,tXr,hu(Bu)],K7],bt=w(uXr,Hn,p(du[4]),Yi);break;default:var a7=Cn[1],Hc=[0,[0,iXr,!!a7[2]],0],W7=a7[1],Ut=[0,[0,fXr,n(function(ku){var wu=[0,[0,DHr,S(ku[2][1])],0];return w(LHr,ku[1],0,wu)},W7)],Hc],bt=w(xXr,Hn,p(a7[3]),Ut)}var B0=[0,[0,aXr,S(en[1])],[0,[0,oXr,bt],0]];return w(cXr,I,en[3],B0);case 17:var D0=k[1],Le=D0[2],He=Le[0]===0?Q(Le[1]):fr(Le[1]),he=[0,[0,GGr,He],[0,[0,jGr,bn(Ir(1))],0]];return w(MGr,I,D0[3],he);case 18:var me=k[1],Zn=me[5],wn=me[4],ft=me[3],xt=me[2];if(xt){var jn=xt[1];if(jn[0]!==0){var ut=[0,[0,BGr,bn(Ir(wn))],0],dt=[0,[0,qGr,e(S,jn[1][2])],ut];return w(HGr,I,Zn,[0,[0,UGr,e(t0,ft)],dt])}}var xn=[0,[0,XGr,bn(Ir(wn))],0],ln=[0,[0,YGr,e(t0,ft)],xn],it=[0,[0,VGr,_r(xt)],ln];return w(KGr,I,Zn,[0,[0,zGr,e(Q,me[1])],it]);case 19:var Tt=k[1],Ti=[0,[0,WGr,e(We0,Tt[2])],0],hs=[0,[0,JGr,fr(Tt[1])],Ti];return w($Gr,I,Tt[3],hs);case 20:var Au=k[1],Hs=function(ku){return ku[0]===0?c0(ku[1]):fr(ku[1])},Vi=[0,[0,ZGr,Q(Au[4])],0],Xs=[0,[0,QGr,e(fr,Au[3])],Vi],Ys=[0,[0,rMr,e(fr,Au[2])],Xs],nn=[0,[0,eMr,e(Hs,Au[1])],Ys];return w(nMr,I,Au[5],nn);case 21:var si=k[1],Vs=si[1],c2=Vs[0]===0?c0(Vs[1]):Or(Vs[1]),M9=[0,[0,tMr,!!si[4]],0],B9=[0,[0,uMr,Q(si[3])],M9],q9=[0,[0,fMr,c2],[0,[0,iMr,fr(si[2])],B9]];return w(xMr,I,si[5],q9);case 22:var zs=k[1],s2=zs[1],U9=s2[0]===0?c0(s2[1]):Or(s2[1]),H9=[0,[0,oMr,!!zs[4]],0],X9=[0,[0,aMr,Q(zs[3])],H9],H1=[0,[0,sMr,U9],[0,[0,cMr,fr(zs[2])],X9]];return w(vMr,I,zs[5],H1);case 23:var vi=k[1],ab=vi[7],cb=vi[3],sb=vi[2],Y9=cb[0]===0?cb[1]:ke(kqr),V9=ab[0]===0?0:[0,ab[1]],z9=vi[9],vb=y7(p(sb[2][4]),z9),K9=[0,[0,wqr,e(qr,vi[8])],0],W9=[0,[0,Sqr,!1],[0,[0,Eqr,e(l,V9)],K9]],J9=[0,[0,gqr,e(Fr,vi[6])],W9],$9=[0,[0,Tqr,!!vi[4]],[0,[0,Fqr,!!vi[5]],J9]],lb=[0,[0,Oqr,W0(Y9)],$9],Z9=[0,[0,Iqr,Hr(sb)],lb];return w(Nqr,I,vb,[0,[0,Aqr,e(S,vi[1])],Z9]);case 24:var X1=k[1],v2=X1[3];if(v2){var bb=v2[1][2],pb=bb[2],mb=bb[1],On=mb[2],Gn=function(wu){return y7(wu,pb)};switch(On[0]){case 0:var Y1=On[1],_b=JD(Y1[2],pb),Mn=[0,[0,Y1[1],_b]];break;case 1:var yb=On[1],Q9=Gn(yb[2]),Mn=[1,[0,yb[1],Q9]];break;case 2:var Xc=On[1],r_=Gn(Xc[7]),Mn=[2,[0,Xc[1],Xc[2],Xc[3],Xc[4],Xc[5],Xc[6],r_]];break;case 3:var l2=On[1],hb=Gn(l2[2]),Mn=[3,[0,l2[1],hb]];break;case 4:var Mn=[4,[0,Gn(On[1][1])]];break;case 5:var Yc=On[1],e_=Gn(Yc[7]),Mn=[5,[0,Yc[1],Yc[2],Yc[3],Yc[4],Yc[5],Yc[6],e_]];break;case 6:var Ks=On[1],db=Gn(Ks[5]),Mn=[6,[0,Ks[1],Ks[2],Ks[3],Ks[4],db]];break;case 7:var V1=On[1],n_=Gn(V1[4]),Mn=[7,[0,V1[1],V1[2],V1[3],n_]];break;case 8:var ds=On[1],t_=Gn(ds[5]),Mn=[8,[0,ds[1],ds[2],ds[3],ds[4],t_]];break;case 9:var z1=On[1],u_=Gn(z1[4]),Mn=[9,[0,z1[1],z1[2],z1[3],u_]];break;case 10:var b2=On[1],i_=Gn(b2[2]),Mn=[10,[0,b2[1],i_]];break;case 11:var Ws=On[1],kb=Gn(Ws[4]),Mn=[11,[0,Ws[1],Ws[2],Ws[3],kb]];break;case 12:var Js=On[1],f_=Gn(Js[5]),Mn=[12,[0,Js[1],Js[2],Js[3],Js[4],f_]];break;case 13:var zi=On[1],Vc=Gn(zi[3]),Mn=[13,[0,zi[1],zi[2],Vc]];break;case 14:var $s=On[1],x_=Gn($s[3]),Mn=[14,[0,$s[1],$s[2],x_]];break;case 15:var Mn=[15,[0,Gn(On[1][1])]];break;case 16:var p2=On[1],m2=Gn(p2[3]),Mn=[16,[0,p2[1],p2[2],m2]];break;case 17:var _2=On[1],o_=Gn(_2[3]),Mn=[17,[0,_2[1],_2[2],o_]];break;case 18:var Zs=On[1],a_=Gn(Zs[5]),Mn=[18,[0,Zs[1],Zs[2],Zs[3],Zs[4],a_]];break;case 19:var y2=On[1],qL=Gn(y2[3]),Mn=[19,[0,y2[1],y2[2],qL]];break;case 20:var K1=On[1],UL=Gn(K1[5]),Mn=[20,[0,K1[1],K1[2],K1[3],K1[4],UL]];break;case 21:var W1=On[1],HL=Gn(W1[5]),Mn=[21,[0,W1[1],W1[2],W1[3],W1[4],HL]];break;case 22:var J1=On[1],XL=Gn(J1[5]),Mn=[22,[0,J1[1],J1[2],J1[3],J1[4],XL]];break;case 23:var Oi=On[1],YL=Oi[10],VL=Gn(Oi[9]),Mn=[23,[0,Oi[1],Oi[2],Oi[3],Oi[4],Oi[5],Oi[6],Oi[7],Oi[8],VL,YL]];break;case 24:var h2=On[1],zL=Gn(h2[4]),Mn=[24,[0,h2[1],h2[2],h2[3],zL]];break;case 25:var $1=On[1],KL=Gn($1[5]),Mn=[25,[0,$1[1],$1[2],$1[3],$1[4],KL]];break;case 26:var Z1=On[1],WL=Gn(Z1[5]),Mn=[26,[0,Z1[1],Z1[2],Z1[3],Z1[4],WL]];break;case 27:var wb=On[1],JL=Gn(wb[3]),Mn=[27,[0,wb[1],wb[2],JL]];break;case 28:var Eb=On[1],$L=Eb[3],ZL=Gn(Eb[2]),Mn=[28,[0,Eb[1],ZL,$L]];break;case 29:var d2=On[1],QL=d2[4],rR=Gn(d2[3]),Mn=[29,[0,d2[1],d2[2],rR,QL]];break;case 30:var c_=On[1],eR=Gn(c_[2]),Mn=[30,[0,c_[1],eR]];break;case 31:var k2=On[1],nR=Gn(k2[4]),Mn=[31,[0,k2[1],k2[2],k2[3],nR]];break;case 32:var w2=On[1],tR=Gn(w2[4]),Mn=[32,[0,w2[1],w2[2],w2[3],tR]];break;case 33:var Q1=On[1],uR=Gn(Q1[5]),Mn=[33,[0,Q1[1],Q1[2],Q1[3],Q1[4],uR]];break;case 34:var Sb=On[1],iR=Gn(Sb[3]),Mn=[34,[0,Sb[1],Sb[2],iR]];break;case 35:var gb=On[1],fR=Gn(gb[3]),Mn=[35,[0,gb[1],gb[2],fR]];break;default:var Fb=On[1],xR=Gn(Fb[3]),Mn=[36,[0,Fb[1],Fb[2],xR]]}var s_=Q([0,mb[1],Mn])}else var s_=i7;var oR=[0,[0,bMr,Q(X1[2])],[0,[0,lMr,s_],0]],aR=[0,[0,pMr,fr(X1[1])],oR];return w(mMr,I,X1[4],aR);case 25:var rv=k[1],Tb=rv[4],v_=rv[3];if(Tb){var Ob=Tb[1];if(Ob[0]===0)var cR=Ob[1],b_=d1(function(wu){var Ii=wu[1],w7=wu[3],Ki=wu[2],ev=Ki?yt(w7[1],Ki[1][1]):w7[1],Lb=Ki?Ki[1]:w7,nv=0,Rb=0;if(Ii)switch(Ii[1]){case 0:var jb=Jc;break;case 1:var jb=rs;break;default:nv=1}else nv=1;if(nv)var jb=i7;var IR=[0,[0,aWr,S(Lb)],[0,[0,oWr,jb],Rb]];return w(sWr,ev,0,[0,[0,cWr,S(w7)],IR])},cR);else var l_=Ob[1],sR=[0,[0,fWr,S(l_[2])],0],b_=[0,w(xWr,l_[1],0,sR),0];var Ib=b_}else var Ib=Tb;if(v_)var p_=v_[1],vR=[0,[0,uWr,S(p_)],0],m_=[0,w(iWr,p_[1],0,vR),Ib];else var m_=Ib;switch(rv[1]){case 0:var Ab=_Mr;break;case 1:var Ab=yMr;break;default:var Ab=hMr}var lR=[0,[0,dMr,bn(Ab)],0],bR=[0,[0,kMr,t0(rv[2])],lR],pR=[0,[0,wMr,hu(m_)],bR];return w(EMr,I,rv[5],pR);case 26:return Wr([0,I,k[1]]);case 27:var Nb=k[1],mR=[0,[0,SMr,Q(Nb[2])],0],_R=[0,[0,gMr,S(Nb[1])],mR];return w(FMr,I,Nb[3],_R);case 28:var __=k[1],yR=[0,[0,TMr,e(fr,__[1])],0];return w(OMr,I,__[2],yR);case 29:var Cb=k[1],hR=[0,[0,IMr,n(i0,Cb[2])],0],dR=[0,[0,AMr,fr(Cb[1])],hR];return w(NMr,I,Cb[3],dR);case 30:var y_=k[1],kR=[0,[0,CMr,fr(y_[1])],0];return w(PMr,I,y_[2],kR);case 31:var E2=k[1],wR=[0,[0,DMr,e(W0,E2[3])],0],ER=[0,[0,LMr,e(l0,E2[2])],wR],SR=[0,[0,RMr,W0(E2[1])],ER];return w(jMr,I,E2[4],SR);case 32:return ar([0,I,k[1]]);case 33:return Jr(0,[0,I,k[1]]);case 34:return c0([0,I,k[1]]);case 35:var Pb=k[1],gR=[0,[0,GMr,Q(Pb[2])],0],FR=[0,[0,MMr,fr(Pb[1])],gR];return w(BMr,I,Pb[3],FR);default:var Db=k[1],TR=[0,[0,qMr,Q(Db[2])],0],OR=[0,[0,UMr,fr(Db[1])],TR];return w(HMr,I,Db[3],OR)}}function i0(_){var k=_[2],I=[0,[0,eUr,n(Q,k[2])],0],U=[0,[0,nUr,e(fr,k[1])],I];return w(tUr,_[1],k[3],U)}function l0(_){var k=_[2],I=[0,[0,uUr,W0(k[2])],0],U=[0,[0,iUr,e(Or,k[1])],I];return w(fUr,_[1],k[3],U)}function S0(_){var k=_[2],I=[0,[0,QUr,fr(k[1])],0];return w(rHr,_[1],k[2],I)}function T0(_){var k=_[2],I=[0,[0,eHr,e($r,k[2])],0],U=[0,[0,nHr,S(k[1])],I];return w(tHr,_[1],0,U)}function rr(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[6],Y=I[2];switch(Y[0]){case 0:var I0=U,D=0,u0=f0(Y[1]);break;case 1:var I0=U,D=0,u0=S(Y[1]);break;case 2:var I0=U,D=0,u0=_0(Y[1]);break;default:var y0=Y[1][2],P0=y7(y0[2],U),I0=P0,D=1,u0=fr(y0[1])}switch(I[1]){case 0:var X0=fHr;break;case 1:var X0=xHr;break;case 2:var X0=oHr;break;default:var X0=aHr}var J0=[0,[0,sHr,!!D],[0,[0,cHr,n(S0,I[5])],0]],ir=[0,[0,lHr,bn(X0)],[0,[0,vHr,!!I[4]],J0]],Q0=[0,[0,pHr,u0],[0,[0,bHr,Rr(I[3])],ir]];return w(mHr,k[1],I0,Q0);case 1:var F0=_[1],Sr=F0[2],mr=Sr[6],Cr=Sr[2],sr=Sr[1];switch(sr[0]){case 0:var h0=mr,Kr=0,re=f0(sr[1]);break;case 1:var h0=mr,Kr=0,re=S(sr[1]);break;case 2:var Pr=ke(gHr),h0=Pr[3],Kr=Pr[2],re=Pr[1];break;default:var K0=sr[1][2],Ur=y7(K0[2],mr),h0=Ur,Kr=1,re=fr(K0[1])}if(typeof Cr==\"number\")if(Cr)var xe=0,Re=0;else var xe=1,Re=0;else var xe=0,Re=[0,Cr[1]];var ve=xe&&[0,[0,FHr,!!xe],0],Ie=[0,[0,THr,e(Er,Sr[5])],0],Ge=[0,[0,IHr,!!Kr],[0,[0,OHr,!!Sr[4]],Ie]],Me=[0,[0,AHr,i(l,Sr[3])],Ge],an=on([0,[0,CHr,re],[0,[0,NHr,e(fr,Re)],Me]],ve);return w(PHr,F0[1],h0,an);default:var We=_[1],Ae=We[2],cn=Ae[2];if(typeof cn==\"number\")if(cn)var rn=0,kn=0;else var rn=1,kn=0;else var rn=0,kn=[0,cn[1]];var vn=rn&&[0,[0,_Hr,!!rn],0],Ne=[0,[0,yHr,e(Er,Ae[5])],0],Je=[0,[0,dHr,!1],[0,[0,hHr,!!Ae[4]],Ne]],en=[0,[0,kHr,i(l,Ae[3])],Je],_n=[0,[0,wHr,e(fr,kn)],en],Cn=on([0,[0,EHr,_0(Ae[1])],_n],vn);return w(SHr,We[1],Ae[6],Cn)}}function L0(_){var k=_[2],I=k[2],U=k[1];if(I){var Y=[0,[0,gXr,fr(I[1])],0],y0=[0,[0,FXr,Or(U)],Y];return w(TXr,_[1],0,y0)}return Or(U)}function B(_,k){var I=[0,[0,PXr,Or(k[1])],0];return w(DXr,_,k[2],I)}function Z(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[2],Y=I[1];if(U){var y0=[0,[0,LXr,fr(U[1])],0],P0=[0,[0,RXr,Or(Y)],y0];return w(jXr,k[1],0,P0)}return Or(Y);case 1:var I0=_[1];return B(I0[1],I0[2]);default:return i7}}function p0(_){if(_[0]===0){var k=_[1],I=k[2];switch(I[0]){case 0:var U=fr(I[2]),X0=0,J0=I[3],ir=0,Q0=GXr,F0=U,Sr=I[1];break;case 1:var Y=I[2],y0=Rr([0,Y[1],Y[2]]),X0=0,J0=0,ir=1,Q0=MXr,F0=y0,Sr=I[1];break;case 2:var P0=I[2],I0=Rr([0,P0[1],P0[2]]),X0=I[3],J0=0,ir=0,Q0=BXr,F0=I0,Sr=I[1];break;default:var D=I[2],u0=Rr([0,D[1],D[2]]),X0=I[3],J0=0,ir=0,Q0=qXr,F0=u0,Sr=I[1]}switch(Sr[0]){case 0:var Pr=X0,K0=0,Ur=f0(Sr[1]);break;case 1:var Pr=X0,K0=0,Ur=S(Sr[1]);break;case 2:var mr=ke(UXr),Pr=mr[3],K0=mr[2],Ur=mr[1];break;default:var Cr=Sr[1][2],sr=y7(Cr[2],X0),Pr=sr,K0=1,Ur=fr(Cr[1])}return w(WXr,k[1],Pr,[0,[0,KXr,Ur],[0,[0,zXr,F0],[0,[0,VXr,bn(Q0)],[0,[0,YXr,!!ir],[0,[0,XXr,!!J0],[0,[0,HXr,!!K0],0]]]]]])}var h0=_[1],Kr=h0[2],re=[0,[0,JXr,fr(Kr[1])],0];return w($Xr,h0[1],Kr[2],re)}function b0(_){if(_[0]===0){var k=_[1],I=k[2],U=I[3],Y=I[2],y0=I[1];switch(y0[0]){case 0:var D=0,u0=0,X0=f0(y0[1]);break;case 1:var D=0,u0=0,X0=S(y0[1]);break;default:var P0=y0[1][2],I0=fr(P0[1]),D=P0[2],u0=1,X0=I0}if(U)var J0=U[1],ir=yt(Y[1],J0[1]),Q0=[0,[0,ZXr,fr(J0)],0],F0=w(rYr,ir,0,[0,[0,QXr,Or(Y)],Q0]);else var F0=Or(Y);return w(xYr,k[1],D,[0,[0,fYr,X0],[0,[0,iYr,F0],[0,[0,uYr,ji],[0,[0,tYr,!1],[0,[0,nYr,!!I[4]],[0,[0,eYr,!!u0],0]]]]]])}var Sr=_[1];return B(Sr[1],Sr[2])}function O0(_){var k=_[2],I=[0,[0,oYr,fr(k[1])],0];return w(aYr,_[1],k[2],I)}function M0(_){return _[0]===0?fr(_[1]):O0(_[1])}function er(_){switch(_[0]){case 0:return fr(_[1]);case 1:return O0(_[1]);default:return i7}}function yr(_){var k=_[2],I=[0,[0,cYr,!!k[3]],0],U=[0,[0,sYr,fr(k[2])],I],Y=[0,[0,vYr,Or(k[1])],U];return w(lYr,_[1],0,Y)}function vr(_){var k=_[2],I=k[1],U=U1([0,[0,qYr,bn(I[1])],[0,[0,BYr,bn(I[2])],0]]);return w(XYr,_[1],0,[0,[0,HYr,U],[0,[0,UYr,!!k[2]],0]])}function $0(_){var k=_[2],I=[0,[0,rVr,e(fr,k[2])],0],U=[0,[0,eVr,Or(k[1])],I];return w(nVr,_[1],0,U)}function Er(_){var k=_[2],I=k[1]?cY:\"plus\";return w(uVr,_[1],k[2],[0,[0,tVr,I],0])}function Mr(_){var k=_[2];return k0(k[2],k[1])}function Br(_){var k=_[2],I=[0,[0,OVr,g0(k[1][2])],[0,[0,TVr,!1],0]],U=[0,[0,IVr,e(S,0)],I];return w(AVr,_[1],k[2],U)}function qr(_){var k=_[2],I=[0,[0,fKr,n(jr,k[1])],0],U=p(k[2]);return w(xKr,_[1],U,I)}function jr(_){var k=_[2],I=k[1][2],U=[0,[0,oKr,e(g0,k[4])],0],Y=[0,[0,aKr,e(Er,k[3])],U],y0=[0,[0,cKr,i(l,k[2])],Y];return w(vKr,_[1],I[2],[0,[0,sKr,bn(I[1])],y0])}function $r(_){var k=_[2],I=[0,[0,lKr,n(g0,k[1])],0],U=p(k[2]);return w(bKr,_[1],U,I)}function ne(_){var k=_[2],I=[0,[0,pKr,n(Qr,k[1])],0],U=p(k[2]);return w(mKr,_[1],U,I)}function Qr(_){if(_[0]===0)return g0(_[1]);var k=_[1],I=k[1],U=k[2][1];return V([0,I,[0,[0,Rc(0,[0,I,_Kr])],0,U]])}function be(_){if(_[0]===0){var k=_[1],I=k[2],U=I[1],Y=U[0]===0?b(U[1]):R0(U[1]),y0=[0,[0,LKr,Y],[0,[0,DKr,e(ce,I[2])],0]];return w(RKr,k[1],0,y0)}var P0=_[1],I0=P0[2],D=[0,[0,jKr,fr(I0[1])],0];return w(GKr,P0[1],I0[2],D)}function ae(_){var k=[0,[0,NKr,s0(_[2][1])],0];return w(CKr,_[1],0,k)}function pe(_){var k=_[2],I=k[1],U=_[1],Y=I?fr(I[1]):w(MKr,[0,U[1],[0,U[2][1],U[2][2]+1|0],[0,U[3][1],U[3][2]-1|0]],0,0);return w(qKr,U,p(k[2]),[0,[0,BKr,Y],0])}function oe(_){var k=_[2],I=_[1];switch(k[0]){case 0:return hr([0,I,k[1]]);case 1:return U0([0,I,k[1]]);case 2:return pe([0,I,k[1]]);case 3:var U=k[1],Y=[0,[0,UKr,fr(U[1])],0];return w(HKr,I,U[2],Y);default:var y0=k[1];return w(VKr,I,0,[0,[0,YKr,bn(y0[1])],[0,[0,XKr,bn(y0[2])],0]])}}function ce(_){return _[0]===0?f0([0,_[1],_[2]]):pe([0,_[1],_[2]])}function ge(_){var k=_[2],I=k[2],U=k[1],Y=S(I?I[1]:U),y0=[0,[0,nWr,S(U)],[0,[0,eWr,Y],0]];return w(tWr,_[1],0,y0)}function q0(_){var k=_[2];if(k[1])var I=k[2],U=vWr;else var I=k[2],U=lWr;return w(U,_[1],0,[0,[0,bWr,bn(I)],0])}function Fr(_){var k=_[2],I=k[1];if(I)var U=[0,[0,pWr,fr(I[1])],0],Y=mWr;else var U=0,Y=_Wr;return w(Y,_[1],k[2],U)}return[0,A,fr]}function T(E){return y(E)[1]}return[0,T,function(E){return y(E)[2]},s]}(wne);function ob(t,n,e){var i=n[e];return Mp(i)?i|0:t}function Ene(t,n){var e=RV(n,Jz)?{}:n,i=B7(t),x=ob(Bv[5],e,Nre),c=ob(Bv[4],e,Cre),s=ob(Bv[3],e,Pre),p=ob(Bv[2],e,Dre),y=[0,[0,ob(Bv[1],e,Lre),p,s,c,x]],T=e.tokens,E=Mp(T),d=E&&T|0,w=e.comments,G=Mp(w)?w|0:1,A=e.all_comments,S=Mp(A)?A|0:1,M=[0,0],K=d&&[0,function(b0){return M[1]=[0,b0,M[1]],0}],V=[0,y],f0=[0,K],m0=uz?uz[1]:1,k0=f0&&f0[1],g0=V&&V[1],e0=[0,g0],x0=[0,k0],l=0,c0=x0&&x0[1],t0=e0&&e0[1],o0=Hee([0,c0],[0,t0],l,i),w0=u(se[1],o0),_0=ye(o0[1][1]),E0=[0,LL[1],0],U0=ye(le(function(b0,O0){var M0=b0[2],er=b0[1];return o(LL[3],O0,er)?[0,er,M0]:[0,o(LL[4],O0,er),[0,O0,M0]]},E0,_0)[2]);if(U0&&m0)throw[0,Nee,U0[1],U0[2]];Ke0[1]=0;for(var b=un(i)-0|0,R0=i,X=0,s0=0;;){if(s0===b)var hr=X;else{var Ar=Xu(R0,s0),or=0;if(0<=Ar&&!(zn>>0)throw[0,Sn,Qo0];switch(Or){case 0:var Rr=Xu(R0,s0);break;case 1:var Rr=(Xu(R0,s0)&31)<<6|Xu(R0,s0+1|0)&63;break;case 2:var Rr=(Xu(R0,s0)&15)<<12|(Xu(R0,s0+1|0)&63)<<6|Xu(R0,s0+2|0)&63;break;default:var Rr=(Xu(R0,s0)&7)<<18|(Xu(R0,s0+1|0)&63)<<12|(Xu(R0,s0+2|0)&63)<<6|Xu(R0,s0+3|0)&63}var X=SL(X,s0,[0,Rr]),s0=fr;continue}var hr=SL(X,s0,0)}for(var Wr=tGr,Jr=ye([0,6,hr]);;){var ar=Wr[3],_r=Wr[2],Ir=Wr[1];if(Jr){var fe=Jr[1];if(fe===5){var v0=Jr[2];if(v0&&v0[1]===6){var P=_l(ye([0,Ir,_r])),Wr=[0,Ir+2|0,0,[0,P,ar]],Jr=v0[2];continue}}else if(!(6<=fe)){var L=Jr[2],Wr=[0,Ir+we0(fe)|0,[0,Ir,_r],ar],Jr=L;continue}var Q=_l(ye([0,Ir,_r])),i0=Jr[2],Wr=[0,Ir+we0(fe)|0,0,[0,Q,ar]],Jr=i0;continue}var l0=_l(ye(ar));if(G)var T0=w0;else var S0=u(Tee[1],0),T0=o(Qe(S0,-201766268,25),S0,w0);if(S)var L0=T0;else var rr=T0[2],L0=[0,T0[1],[0,rr[1],rr[2],0]];var B=o($e0[1],[0,l0],L0),Z=on(U0,Ke0[1]);if(B.errors=u($e0[3],Z),d){var p0=M[1];B.tokens=hu(Fp(u(kne[1],l0),p0))}return B}}}if(typeof H0<\"u\")var Ze0=H0;else{var Qe0={};GN.flow=Qe0;var Ze0=Qe0}Ze0.parse=function(t,n){try{var e=Ene(t,n);return e}catch(i){return i=Et(i),i[1]===MN?u($z,i[2]):u($z,new dee(bn(Te(Rre,Cp(i)))))}},uN(0)}(globalThis)}});Pt();var uoe=Fu0(),ioe=Vxe(),foe=zxe(),xoe=Qxe(),ooe={comments:!1,enums:!0,esproposal_decorators:!0,esproposal_export_star_as:!0,tokens:!0};function aoe(H0){let{message:z0,loc:{start:xr,end:gr}}=H0;return uoe(z0,{start:{line:xr.line,column:xr.column+1},end:{line:gr.line,column:gr.column+1}})}function coe(H0,z0){let xr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:gr}=toe(),de=gr(foe(H0),ooe),[Ve]=de.errors;if(Ve)throw aoe(Ve);return xr.originalText=H0,xoe(de,xr)}zu0.exports={parsers:{flow:ioe(coe)}}});return soe();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.glimmer=e()}})(function(){\"use strict\";var it=(t,f)=>()=>(f||t((f={exports:{}}).exports,f),f.exports);var Zt=it((nr,$e)=>{var xe=Object.getOwnPropertyNames,at=(t,f)=>function(){return t&&(f=(0,t[xe(t)[0]])(t=0)),f},I=(t,f)=>function(){return f||(0,t[xe(t)[0]])((f={exports:{}}).exports,f),f.exports},F=at({\"\"(){}}),st=I({\"node_modules/lines-and-columns/build/index.cjs\"(t){\"use strict\";F(),t.__esModule=!0,t.LinesAndColumns=void 0;var f=`\n`,h=\"\\r\",d=function(){function c(o){this.length=o.length;for(var e=[0],r=0;rthis.length)return null;for(var e=0,r=this.offsets;r[e+1]<=o;)e++;var s=o-r[e];return{line:e,column:s}},c.prototype.indexForLocation=function(o){var e=o.line,r=o.column;return e<0||e>=this.offsets.length||r<0||r>this.lengthOfLine(e)?null:this.offsets[e]+r},c.prototype.lengthOfLine=function(o){var e=this.offsets[o],r=o===this.offsets.length-1?this.length:this.offsets[o+1];return r-e},c}();t.LinesAndColumns=d}}),ut=I({\"src/common/parser-create-error.js\"(t,f){\"use strict\";F();function h(d,c){let o=new SyntaxError(d+\" (\"+c.start.line+\":\"+c.start.column+\")\");return o.loc=c,o}f.exports=h}}),ot=I({\"src/language-handlebars/loc.js\"(t,f){\"use strict\";F();function h(c){return c.loc.start.offset}function d(c){return c.loc.end.offset}f.exports={locStart:h,locEnd:d}}}),fe=I({\"node_modules/@glimmer/env/dist/commonjs/es5/index.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f=t.DEBUG=!1,h=t.CI=!1}}),lt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/array-utils.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.emptyArray=h,t.isEmptyArray=o,t.EMPTY_NUMBER_ARRAY=t.EMPTY_STRING_ARRAY=t.EMPTY_ARRAY=void 0;var f=Object.freeze([]);t.EMPTY_ARRAY=f;function h(){return f}var d=h();t.EMPTY_STRING_ARRAY=d;var c=h();t.EMPTY_NUMBER_ARRAY=c;function o(e){return e===f}}}),Pe=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/assert.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.debugAssert=h,t.prodAssert=d,t.deprecate=c,t.default=void 0;var f=X();function h(e,r){if(!e)throw new Error(r||\"assertion failure\")}function d(){}function c(e){f.LOCAL_LOGGER.warn(\"DEPRECATION: \".concat(e))}var o=h;t.default=o}}),ct=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/collections.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.dict=f,t.isDict=h,t.isObject=d,t.StackImpl=void 0;function f(){return Object.create(null)}function h(o){return o!=null}function d(o){return typeof o==\"function\"||typeof o==\"object\"&&o!==null}var c=class{constructor(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this.current=null,this.stack=o}get size(){return this.stack.length}push(o){this.current=o,this.stack.push(o)}pop(){let o=this.stack.pop(),e=this.stack.length;return this.current=e===0?null:this.stack[e-1],o===void 0?null:o}nth(o){let e=this.stack.length;return e0&&arguments[0]!==void 0?arguments[0]:\"unreachable\";return new Error(i)}function p(i){throw new Error(\"Exhausted \".concat(i))}var n=function(){for(var i=arguments.length,l=new Array(i),b=0;b1?c-1:0),e=1;e=0}function d(l){return l>3}function c(){for(var l=arguments.length,b=new Array(l),P=0;P=-536870912}function e(l){return l&-536870913}function r(l){return l|536870912}function s(l){return~l}function p(l){return~l}function n(l){return l}function a(l){return l}function u(l){return l|=0,l<0?e(l):s(l)}function i(l){return l|=0,l>-536870913?p(l):r(l)}[1,2,3].forEach(l=>l),[1,-1].forEach(l=>i(u(l)))}}),gt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/template.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.unwrapHandle=f,t.unwrapTemplate=h,t.extractHandle=d,t.isOkHandle=c,t.isErrHandle=o;function f(e){if(typeof e==\"number\")return e;{let r=e.errors[0];throw new Error(\"Compile Error: \".concat(r.problem,\" @ \").concat(r.span.start,\"..\").concat(r.span.end))}}function h(e){if(e.result===\"error\")throw new Error(\"Compile Error: \".concat(e.problem,\" @ \").concat(e.span.start,\"..\").concat(e.span.end));return e}function d(e){return typeof e==\"number\"?e:e.handle}function c(e){return typeof e==\"number\"}function o(e){return typeof e==\"number\"}}}),bt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/weak-set.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=typeof WeakSet==\"function\"?WeakSet:class{constructor(){this._map=new WeakMap}add(d){return this._map.set(d,!0),this}delete(d){return this._map.delete(d)}has(d){return this._map.has(d)}};t.default=f}}),vt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/simple-cast.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.castToSimple=h,t.castToBrowser=d,t.checkNode=r;var f=me();function h(p){return o(p)||e(p),p}function d(p,n){if(p==null)return null;if(typeof document===void 0)throw new Error(\"Attempted to cast to a browser node in a non-browser context\");if(o(p))return p;if(p.ownerDocument!==document)throw new Error(\"Attempted to cast to a browser node with a node that was not created from this document\");return r(p,n)}function c(p,n){return new Error(\"cannot cast a \".concat(p,\" into \").concat(n))}function o(p){return p.nodeType===9}function e(p){return p.nodeType===1}function r(p,n){let a=!1;if(p!==null)if(typeof n==\"string\")a=s(p,n);else if(Array.isArray(n))a=n.some(u=>s(p,u));else throw(0,f.unreachable)();if(a)return p;throw c(\"SimpleElement(\".concat(p,\")\"),n)}function s(p,n){switch(n){case\"NODE\":return!0;case\"HTML\":return p instanceof HTMLElement;case\"SVG\":return p instanceof SVGElement;case\"ELEMENT\":return p instanceof Element;default:if(n.toUpperCase()===n)throw new Error(\"BUG: this code is missing handling for a generic node type\");return p instanceof Element&&p.tagName.toLowerCase()===n}}}}),yt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/present.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isPresent=f,t.ifPresent=h,t.toPresentOption=d,t.assertPresent=c,t.mapPresent=o;function f(e){return e.length>0}function h(e,r,s){return f(e)?r(e):s()}function d(e){return f(e)?e:null}function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"unexpected empty list\";if(!f(e))throw new Error(r)}function o(e,r){if(e===null)return null;let s=[];for(let p of e)s.push(r(p));return s}}}),At=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/untouchable-this.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=d;var f=fe(),h=me();function d(c){let o=null;if(f.DEBUG&&h.HAS_NATIVE_PROXY){let e=r=>{throw new Error(\"You accessed `this.\".concat(String(r),\"` from a function passed to the \").concat(c,\", but the function itself was not bound to a valid `this` context. Consider updating to use a bound function (for instance, use an arrow function, `() => {}`).\"))};o=new Proxy({},{get(r,s){e(s)},set(r,s){return e(s),!1},has(r,s){return e(s),!1}})}return o}}}),Et=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-to-string.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=fe(),h;if(f.DEBUG){let c=r=>{let s=r.name;if(s===void 0){let p=Function.prototype.toString.call(r).match(/function (\\w+)\\s*\\(/);s=p&&p[1]||\"\"}return s.replace(/^bound /,\"\")},o=r=>{let s,p;return r.constructor&&typeof r.constructor==\"function\"&&(p=c(r.constructor)),\"toString\"in r&&r.toString!==Object.prototype.toString&&r.toString!==Function.prototype.toString&&(s=r.toString()),s&&s.match(/<.*:ember\\d+>/)&&p&&p[0]!==\"_\"&&p.length>2&&p!==\"Class\"?s.replace(/<.*:/,\"<\".concat(p,\":\")):s||p},e=r=>String(r);h=r=>typeof r==\"function\"?c(r)||\"(unknown function)\":typeof r==\"object\"&&r!==null?o(r)||\"(unknown object)\":e(r)}var d=h;t.default=d}}),_t=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-steps.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.logStep=t.verifySteps=t.endTestSteps=t.beginTestSteps=void 0;var f=d(Pe()),h=me();function d(s){return s&&s.__esModule?s:{default:s}}var c;t.beginTestSteps=c;var o;t.endTestSteps=o;var e;t.verifySteps=e;var r;t.logStep=r}}),X=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/index.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f={LOCAL_LOGGER:!0,LOGGER:!0,assertNever:!0,assert:!0,deprecate:!0,dict:!0,isDict:!0,isObject:!0,Stack:!0,isSerializationFirstNode:!0,SERIALIZATION_FIRST_NODE_STRING:!0,assign:!0,fillNulls:!0,values:!0,_WeakSet:!0,castToSimple:!0,castToBrowser:!0,checkNode:!0,intern:!0,buildUntouchableThis:!0,debugToString:!0,beginTestSteps:!0,endTestSteps:!0,logStep:!0,verifySteps:!0};t.assertNever=x,Object.defineProperty(t,\"assert\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,\"deprecate\",{enumerable:!0,get:function(){return d.deprecate}}),Object.defineProperty(t,\"dict\",{enumerable:!0,get:function(){return c.dict}}),Object.defineProperty(t,\"isDict\",{enumerable:!0,get:function(){return c.isDict}}),Object.defineProperty(t,\"isObject\",{enumerable:!0,get:function(){return c.isObject}}),Object.defineProperty(t,\"Stack\",{enumerable:!0,get:function(){return c.StackImpl}}),Object.defineProperty(t,\"isSerializationFirstNode\",{enumerable:!0,get:function(){return e.isSerializationFirstNode}}),Object.defineProperty(t,\"SERIALIZATION_FIRST_NODE_STRING\",{enumerable:!0,get:function(){return e.SERIALIZATION_FIRST_NODE_STRING}}),Object.defineProperty(t,\"assign\",{enumerable:!0,get:function(){return r.assign}}),Object.defineProperty(t,\"fillNulls\",{enumerable:!0,get:function(){return r.fillNulls}}),Object.defineProperty(t,\"values\",{enumerable:!0,get:function(){return r.values}}),Object.defineProperty(t,\"_WeakSet\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,\"castToSimple\",{enumerable:!0,get:function(){return i.castToSimple}}),Object.defineProperty(t,\"castToBrowser\",{enumerable:!0,get:function(){return i.castToBrowser}}),Object.defineProperty(t,\"checkNode\",{enumerable:!0,get:function(){return i.checkNode}}),Object.defineProperty(t,\"intern\",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(t,\"buildUntouchableThis\",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,\"debugToString\",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(t,\"beginTestSteps\",{enumerable:!0,get:function(){return v.beginTestSteps}}),Object.defineProperty(t,\"endTestSteps\",{enumerable:!0,get:function(){return v.endTestSteps}}),Object.defineProperty(t,\"logStep\",{enumerable:!0,get:function(){return v.logStep}}),Object.defineProperty(t,\"verifySteps\",{enumerable:!0,get:function(){return v.verifySteps}}),t.LOGGER=t.LOCAL_LOGGER=void 0;var h=lt();Object.keys(h).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return h[w]}})});var d=g(Pe()),c=ct(),o=ht();Object.keys(o).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return o[w]}})});var e=dt(),r=pt(),s=me();Object.keys(s).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return s[w]}})});var p=ft();Object.keys(p).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return p[w]}})});var n=mt();Object.keys(n).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return n[w]}})});var a=gt();Object.keys(a).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return a[w]}})});var u=_(bt()),i=vt(),l=yt();Object.keys(l).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return l[w]}})});var b=_(je()),P=_(At()),E=_(Et()),v=_t();function _(w){return w&&w.__esModule?w:{default:w}}function y(){if(typeof WeakMap!=\"function\")return null;var w=new WeakMap;return y=function(){return w},w}function g(w){if(w&&w.__esModule)return w;if(w===null||typeof w!=\"object\"&&typeof w!=\"function\")return{default:w};var H=y();if(H&&H.has(w))return H.get(w);var m={},C=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var S in w)if(Object.prototype.hasOwnProperty.call(w,S)){var R=C?Object.getOwnPropertyDescriptor(w,S):null;R&&(R.get||R.set)?Object.defineProperty(m,S,R):m[S]=w[S]}return m.default=w,H&&H.set(w,m),m}var L=console;t.LOCAL_LOGGER=L;var j=console;t.LOGGER=j;function x(w){let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"unexpected unreachable branch\";throw j.log(\"unreachable\",w),j.log(\"\".concat(H,\" :: \").concat(JSON.stringify(w),\" (\").concat(w,\")\")),new Error(\"code reached unreachable\")}}}),ge=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/location.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isLocatedWithPositionsArray=s,t.isLocatedWithPositions=p,t.BROKEN_LOCATION=t.NON_EXISTENT_LOCATION=t.TEMPORARY_LOCATION=t.SYNTHETIC=t.SYNTHETIC_LOCATION=t.UNKNOWN_POSITION=void 0;var f=X(),h=Object.freeze({line:1,column:0});t.UNKNOWN_POSITION=h;var d=Object.freeze({source:\"(synthetic)\",start:h,end:h});t.SYNTHETIC_LOCATION=d;var c=d;t.SYNTHETIC=c;var o=Object.freeze({source:\"(temporary)\",start:h,end:h});t.TEMPORARY_LOCATION=o;var e=Object.freeze({source:\"(nonexistent)\",start:h,end:h});t.NON_EXISTENT_LOCATION=e;var r=Object.freeze({source:\"(broken)\",start:h,end:h});t.BROKEN_LOCATION=r;function s(n){return(0,f.isPresent)(n)&&n.every(p)}function p(n){return n.loc!==void 0}}}),le=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/slice.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.SourceSlice=void 0;var f=ue(),h=class{constructor(d){this.loc=d.loc,this.chars=d.chars}static synthetic(d){let c=f.SourceSpan.synthetic(d);return new h({loc:c,chars:d})}static load(d,c){return new h({loc:f.SourceSpan.load(d,c[1]),chars:c[0]})}getString(){return this.chars}serialize(){return[this.chars,this.loc.serialize()]}};t.SourceSlice=h}}),Me=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/match.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.match=e,t.IsInvisible=t.MatchAny=void 0;var f=X(),h=\"MATCH_ANY\";t.MatchAny=h;var d=\"IS_INVISIBLE\";t.IsInvisible=d;var c=class{constructor(p){this._whens=p}first(p){for(let n of this._whens){let a=n.match(p);if((0,f.isPresent)(a))return a[0]}return null}},o=class{constructor(){this._map=new Map}get(p,n){let a=this._map.get(p);return a||(a=n(),this._map.set(p,a),a)}add(p,n){this._map.set(p,n)}match(p){let n=s(p),a=[],u=this._map.get(n),i=this._map.get(h);return u&&a.push(u),i&&a.push(i),a}};function e(p){return p(new r).check()}var r=class{constructor(){this._whens=new o}check(){return(p,n)=>this.matchFor(p.kind,n.kind)(p,n)}matchFor(p,n){let a=this._whens.match(p);return new c(a).first(n)}when(p,n,a){return this._whens.get(p,()=>new o).add(n,a),this}};function s(p){switch(p){case\"Broken\":case\"InternalsSynthetic\":case\"NonExistent\":return d;default:return p}}}}),He=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/offset.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.InvisiblePosition=t.HbsPosition=t.CharPosition=t.SourceOffset=t.BROKEN=void 0;var f=ge(),h=Me(),d=Ve(),c=\"BROKEN\";t.BROKEN=c;var o=class{constructor(n){this.data=n}static forHbsPos(n,a){return new r(n,a,null).wrap()}static broken(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f.UNKNOWN_POSITION;return new s(\"Broken\",n).wrap()}get offset(){let n=this.data.toCharPos();return n===null?null:n.offset}eql(n){return p(this.data,n.data)}until(n){return(0,d.span)(this.data,n.data)}move(n){let a=this.data.toCharPos();if(a===null)return o.broken();{let u=a.offset+n;return a.source.check(u)?new e(a.source,u).wrap():o.broken()}}collapsed(){return(0,d.span)(this.data,this.data)}toJSON(){return this.data.toJSON()}};t.SourceOffset=o;var e=class{constructor(n,a){this.source=n,this.charPos=a,this.kind=\"CharPosition\",this._locPos=null}toCharPos(){return this}toJSON(){let n=this.toHbsPos();return n===null?f.UNKNOWN_POSITION:n.toJSON()}wrap(){return new o(this)}get offset(){return this.charPos}toHbsPos(){let n=this._locPos;if(n===null){let a=this.source.hbsPosFor(this.charPos);a===null?this._locPos=n=c:this._locPos=n=new r(this.source,a,this.charPos)}return n===c?null:n}};t.CharPosition=e;var r=class{constructor(n,a){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=n,this.hbsPos=a,this.kind=\"HbsPosition\",this._charPos=u===null?null:new e(n,u)}toCharPos(){let n=this._charPos;if(n===null){let a=this.source.charPosFor(this.hbsPos);a===null?this._charPos=n=c:this._charPos=n=new e(this.source,a)}return n===c?null:n}toJSON(){return this.hbsPos}wrap(){return new o(this)}toHbsPos(){return this}};t.HbsPosition=r;var s=class{constructor(n,a){this.kind=n,this.pos=a}toCharPos(){return null}toJSON(){return this.pos}wrap(){return new o(this)}get offset(){return null}};t.InvisiblePosition=s;var p=(0,h.match)(n=>n.when(\"HbsPosition\",\"HbsPosition\",(a,u)=>{let{hbsPos:i}=a,{hbsPos:l}=u;return i.column===l.column&&i.line===l.line}).when(\"CharPosition\",\"CharPosition\",(a,u)=>{let{charPos:i}=a,{charPos:l}=u;return i===l}).when(\"CharPosition\",\"HbsPosition\",(a,u)=>{let{offset:i}=a;var l;return i===((l=u.toCharPos())===null||l===void 0?void 0:l.offset)}).when(\"HbsPosition\",\"CharPosition\",(a,u)=>{let{offset:i}=u;var l;return((l=a.toCharPos())===null||l===void 0?void 0:l.offset)===i}).when(h.MatchAny,h.MatchAny,()=>!1))}}),Ve=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/span.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.span=t.HbsSpan=t.SourceSpan=void 0;var f=fe(),h=X(),d=ge(),c=le(),o=Me(),e=He(),r=class{constructor(u){this.data=u,this.isInvisible=u.kind!==\"CharPosition\"&&u.kind!==\"HbsPosition\"}static get NON_EXISTENT(){return new n(\"NonExistent\",d.NON_EXISTENT_LOCATION).wrap()}static load(u,i){if(typeof i==\"number\")return r.forCharPositions(u,i,i);if(typeof i==\"string\")return r.synthetic(i);if(Array.isArray(i))return r.forCharPositions(u,i[0],i[1]);if(i===\"NonExistent\")return r.NON_EXISTENT;if(i===\"Broken\")return r.broken(d.BROKEN_LOCATION);(0,h.assertNever)(i)}static forHbsLoc(u,i){let l=new e.HbsPosition(u,i.start),b=new e.HbsPosition(u,i.end);return new p(u,{start:l,end:b},i).wrap()}static forCharPositions(u,i,l){let b=new e.CharPosition(u,i),P=new e.CharPosition(u,l);return new s(u,{start:b,end:P}).wrap()}static synthetic(u){return new n(\"InternalsSynthetic\",d.NON_EXISTENT_LOCATION,u).wrap()}static broken(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d.BROKEN_LOCATION;return new n(\"Broken\",u).wrap()}getStart(){return this.data.getStart().wrap()}getEnd(){return this.data.getEnd().wrap()}get loc(){let u=this.data.toHbsSpan();return u===null?d.BROKEN_LOCATION:u.toHbsLoc()}get module(){return this.data.getModule()}get startPosition(){return this.loc.start}get endPosition(){return this.loc.end}toJSON(){return this.loc}withStart(u){return a(u.data,this.data.getEnd())}withEnd(u){return a(this.data.getStart(),u.data)}asString(){return this.data.asString()}toSlice(u){let i=this.data.asString();return f.DEBUG&&u!==void 0&&i!==u&&console.warn(\"unexpectedly found \".concat(JSON.stringify(i),\" when slicing source, but expected \").concat(JSON.stringify(u))),new c.SourceSlice({loc:this,chars:u||i})}get start(){return this.loc.start}set start(u){this.data.locDidUpdate({start:u})}get end(){return this.loc.end}set end(u){this.data.locDidUpdate({end:u})}get source(){return this.module}collapse(u){switch(u){case\"start\":return this.getStart().collapsed();case\"end\":return this.getEnd().collapsed()}}extend(u){return a(this.data.getStart(),u.data.getEnd())}serialize(){return this.data.serialize()}slice(u){let{skipStart:i=0,skipEnd:l=0}=u;return a(this.getStart().move(i).data,this.getEnd().move(-l).data)}sliceStartChars(u){let{skipStart:i=0,chars:l}=u;return a(this.getStart().move(i).data,this.getStart().move(i+l).data)}sliceEndChars(u){let{skipEnd:i=0,chars:l}=u;return a(this.getEnd().move(i-l).data,this.getStart().move(-i).data)}};t.SourceSpan=r;var s=class{constructor(u,i){this.source=u,this.charPositions=i,this.kind=\"CharPosition\",this._locPosSpan=null}wrap(){return new r(this)}asString(){return this.source.slice(this.charPositions.start.charPos,this.charPositions.end.charPos)}getModule(){return this.source.module}getStart(){return this.charPositions.start}getEnd(){return this.charPositions.end}locDidUpdate(){}toHbsSpan(){let u=this._locPosSpan;if(u===null){let i=this.charPositions.start.toHbsPos(),l=this.charPositions.end.toHbsPos();i===null||l===null?u=this._locPosSpan=e.BROKEN:u=this._locPosSpan=new p(this.source,{start:i,end:l})}return u===e.BROKEN?null:u}serialize(){let{start:{charPos:u},end:{charPos:i}}=this.charPositions;return u===i?u:[u,i]}toCharPosSpan(){return this}},p=class{constructor(u,i){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=u,this.hbsPositions=i,this.kind=\"HbsPosition\",this._charPosSpan=null,this._providedHbsLoc=l}serialize(){let u=this.toCharPosSpan();return u===null?\"Broken\":u.wrap().serialize()}wrap(){return new r(this)}updateProvided(u,i){this._providedHbsLoc&&(this._providedHbsLoc[i]=u),this._charPosSpan=null,this._providedHbsLoc={start:u,end:u}}locDidUpdate(u){let{start:i,end:l}=u;i!==void 0&&(this.updateProvided(i,\"start\"),this.hbsPositions.start=new e.HbsPosition(this.source,i,null)),l!==void 0&&(this.updateProvided(l,\"end\"),this.hbsPositions.end=new e.HbsPosition(this.source,l,null))}asString(){let u=this.toCharPosSpan();return u===null?\"\":u.asString()}getModule(){return this.source.module}getStart(){return this.hbsPositions.start}getEnd(){return this.hbsPositions.end}toHbsLoc(){return{start:this.hbsPositions.start.hbsPos,end:this.hbsPositions.end.hbsPos}}toHbsSpan(){return this}toCharPosSpan(){let u=this._charPosSpan;if(u===null){let i=this.hbsPositions.start.toCharPos(),l=this.hbsPositions.end.toCharPos();if(i&&l)u=this._charPosSpan=new s(this.source,{start:i,end:l});else return u=this._charPosSpan=e.BROKEN,null}return u===e.BROKEN?null:u}};t.HbsSpan=p;var n=class{constructor(u,i){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.kind=u,this.loc=i,this.string=l}serialize(){switch(this.kind){case\"Broken\":case\"NonExistent\":return this.kind;case\"InternalsSynthetic\":return this.string||\"\"}}wrap(){return new r(this)}asString(){return this.string||\"\"}locDidUpdate(u){let{start:i,end:l}=u;i!==void 0&&(this.loc.start=i),l!==void 0&&(this.loc.end=l)}getModule(){return\"an unknown module\"}getStart(){return new e.InvisiblePosition(this.kind,this.loc.start)}getEnd(){return new e.InvisiblePosition(this.kind,this.loc.end)}toCharPosSpan(){return this}toHbsSpan(){return null}toHbsLoc(){return d.BROKEN_LOCATION}},a=(0,o.match)(u=>u.when(\"HbsPosition\",\"HbsPosition\",(i,l)=>new p(i.source,{start:i,end:l}).wrap()).when(\"CharPosition\",\"CharPosition\",(i,l)=>new s(i.source,{start:i,end:l}).wrap()).when(\"CharPosition\",\"HbsPosition\",(i,l)=>{let b=l.toCharPos();return b===null?new n(\"Broken\",d.BROKEN_LOCATION).wrap():a(i,b)}).when(\"HbsPosition\",\"CharPosition\",(i,l)=>{let b=i.toCharPos();return b===null?new n(\"Broken\",d.BROKEN_LOCATION).wrap():a(b,l)}).when(o.IsInvisible,o.MatchAny,i=>new n(i.kind,d.BROKEN_LOCATION).wrap()).when(o.MatchAny,o.IsInvisible,(i,l)=>new n(l.kind,d.BROKEN_LOCATION).wrap()));t.span=a}}),ue=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),Object.defineProperty(t,\"SourceSpan\",{enumerable:!0,get:function(){return f.SourceSpan}}),Object.defineProperty(t,\"SourceOffset\",{enumerable:!0,get:function(){return h.SourceOffset}});var f=Ve(),h=He()}}),De=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/source.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.Source=void 0;var f=fe(),h=X(),d=ue(),c=class{constructor(o){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"an unknown module\";this.source=o,this.module=e}check(o){return o>=0&&o<=this.source.length}slice(o,e){return this.source.slice(o,e)}offsetFor(o,e){return d.SourceOffset.forHbsPos(this,{line:o,column:e})}spanFor(o){let{start:e,end:r}=o;return d.SourceSpan.forHbsLoc(this,{start:{line:e.line,column:e.column},end:{line:r.line,column:r.column}})}hbsPosFor(o){let e=0,r=0;if(o>this.source.length)return null;for(;;){let s=this.source.indexOf(`\n`,r);if(o<=s||s===-1)return{line:e+1,column:o-r};e+=1,r=s+1}}charPosFor(o){let{line:e,column:r}=o,p=this.source.length,n=0,a=0;for(;;){if(a>=p)return p;let u=this.source.indexOf(`\n`,a);if(u===-1&&(u=this.source.length),n===e-1){if(a+r>u)return u;if(f.DEBUG){let i=this.hbsPosFor(a+r)}return a+r}else{if(u===-1)return 0;n+=1,a=u+1}}}};t.Source=c}}),we=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/legacy-interop.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.PathExpressionImplV1=void 0;var f=h(ke());function h(c){return c&&c.__esModule?c:{default:c}}var d=class{constructor(c,o,e,r){this.original=c,this.loc=r,this.type=\"PathExpression\",this.this=!1,this.data=!1,this._head=void 0;let s=e.slice();o.type===\"ThisHead\"?this.this=!0:o.type===\"AtHead\"?(this.data=!0,s.unshift(o.name.slice(1))):s.unshift(o.name),this.parts=s}get head(){if(this._head)return this._head;let c;this.this?c=\"this\":this.data?c=\"@\".concat(this.parts[0]):c=this.parts[0];let o=this.loc.collapse(\"start\").sliceStartChars({chars:c.length}).loc;return this._head=f.default.head(c,o)}get tail(){return this.this?this.parts:this.parts.slice(1)}};t.PathExpressionImplV1=d}}),ke=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/public-builders.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=X(),h=ge(),d=De(),c=ue(),o=we(),e;function r(){return e||(e=new d.Source(\"\",\"(synthetic)\")),e}function s(T,N,k,B,O,q){return typeof T==\"string\"&&(T=m(T)),{type:\"MustacheStatement\",path:T,params:N||[],hash:k||S([]),escaped:!B,trusting:!!B,loc:U(O||null),strip:q||{open:!1,close:!1}}}function p(T,N,k,B,O,q,z,A,Q){let D,$;return B.type===\"Template\"?D=(0,f.assign)({},B,{type:\"Block\"}):D=B,O!=null&&O.type===\"Template\"?$=(0,f.assign)({},O,{type:\"Block\"}):$=O,{type:\"BlockStatement\",path:m(T),params:N||[],hash:k||S([]),program:D||null,inverse:$||null,loc:U(q||null),openStrip:z||{open:!1,close:!1},inverseStrip:A||{open:!1,close:!1},closeStrip:Q||{open:!1,close:!1}}}function n(T,N,k,B){return{type:\"ElementModifierStatement\",path:m(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function a(T,N,k,B,O){return{type:\"PartialStatement\",name:T,params:N||[],hash:k||S([]),indent:B||\"\",strip:{open:!1,close:!1},loc:U(O||null)}}function u(T,N){return{type:\"CommentStatement\",value:T,loc:U(N||null)}}function i(T,N){return{type:\"MustacheCommentStatement\",value:T,loc:U(N||null)}}function l(T,N){if(!(0,f.isPresent)(T))throw new Error(\"b.concat requires at least one part\");return{type:\"ConcatStatement\",parts:T||[],loc:U(N||null)}}function b(T){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{attrs:k,blockParams:B,modifiers:O,comments:q,children:z,loc:A}=N,Q,D=!1;return typeof T==\"object\"?(D=T.selfClosing,Q=T.name):T.slice(-1)===\"/\"?(Q=T.slice(0,-1),D=!0):Q=T,{type:\"ElementNode\",tag:Q,selfClosing:D,attributes:k||[],blockParams:B||[],modifiers:O||[],comments:q||[],children:z||[],loc:U(A||null)}}function P(T,N,k){return{type:\"AttrNode\",name:T,value:N,loc:U(k||null)}}function E(T,N){return{type:\"TextNode\",chars:T||\"\",loc:U(N||null)}}function v(T,N,k,B){return{type:\"SubExpression\",path:m(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function _(T){switch(T.type){case\"AtHead\":return{original:T.name,parts:[T.name]};case\"ThisHead\":return{original:\"this\",parts:[]};case\"VarHead\":return{original:T.name,parts:[T.name]}}}function y(T,N){let[k,...B]=T.split(\".\"),O;return k===\"this\"?O={type:\"ThisHead\",loc:U(N||null)}:k[0]===\"@\"?O={type:\"AtHead\",name:k,loc:U(N||null)}:O={type:\"VarHead\",name:k,loc:U(N||null)},{head:O,tail:B}}function g(T){return{type:\"ThisHead\",loc:U(T||null)}}function L(T,N){return{type:\"AtHead\",name:T,loc:U(N||null)}}function j(T,N){return{type:\"VarHead\",name:T,loc:U(N||null)}}function x(T,N){return T[0]===\"@\"?L(T,N):T===\"this\"?g(N):j(T,N)}function w(T,N){return{type:\"NamedBlockName\",name:T,loc:U(N||null)}}function H(T,N,k){let{original:B,parts:O}=_(T),q=[...O,...N],z=[...B,...q].join(\".\");return new o.PathExpressionImplV1(z,T,N,U(k||null))}function m(T,N){if(typeof T!=\"string\"){if(\"type\"in T)return T;{let{head:O,tail:q}=y(T.head,c.SourceSpan.broken()),{original:z}=_(O);return new o.PathExpressionImplV1([z,...q].join(\".\"),O,q,U(N||null))}}let{head:k,tail:B}=y(T,c.SourceSpan.broken());return new o.PathExpressionImplV1(T,k,B,U(N||null))}function C(T,N,k){return{type:T,value:N,original:N,loc:U(k||null)}}function S(T,N){return{type:\"Hash\",pairs:T||[],loc:U(N||null)}}function R(T,N,k){return{type:\"HashPair\",key:T,value:N,loc:U(k||null)}}function M(T,N,k){return{type:\"Template\",body:T||[],blockParams:N||[],loc:U(k||null)}}function V(T,N){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,B=arguments.length>3?arguments[3]:void 0;return{type:\"Block\",body:T||[],blockParams:N||[],chained:k,loc:U(B||null)}}function G(T,N,k){return{type:\"Template\",body:T||[],blockParams:N||[],loc:U(k||null)}}function K(T,N){return{line:T,column:N}}function U(){for(var T=arguments.length,N=new Array(T),k=0;k1&&arguments[1]!==void 0?arguments[1]:!1;this.ambiguity=e,this.isAngleBracket=r}static namespaced(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return new d({namespaces:[e],fallback:!1},r)}static fallback(){return new d({namespaces:[],fallback:!0})}static append(e){let{invoke:r}=e;return new d({namespaces:[\"Component\",\"Helper\"],fallback:!r})}static trustingAppend(e){let{invoke:r}=e;return new d({namespaces:[\"Helper\"],fallback:!r})}static attr(){return new d({namespaces:[\"Helper\"],fallback:!0})}resolution(){if(this.ambiguity.namespaces.length===0)return 31;if(this.ambiguity.namespaces.length===1){if(this.ambiguity.fallback)return 36;switch(this.ambiguity.namespaces[0]){case\"Helper\":return 37;case\"Modifier\":return 38;case\"Component\":return 39}}else return this.ambiguity.fallback?34:35}serialize(){return this.ambiguity.namespaces.length===0?\"Loose\":this.ambiguity.namespaces.length===1?this.ambiguity.fallback?[\"ambiguous\",\"Attr\"]:[\"ns\",this.ambiguity.namespaces[0]]:this.ambiguity.fallback?[\"ambiguous\",\"Append\"]:[\"ambiguous\",\"Invoke\"]}};t.LooseModeResolution=d;var c=d.fallback();t.ARGUMENT_RESOLUTION=c;function o(e){if(typeof e==\"string\")switch(e){case\"Loose\":return d.fallback();case\"Strict\":return h}switch(e[0]){case\"ambiguous\":switch(e[1]){case\"Append\":return d.append({invoke:!1});case\"Attr\":return d.attr();case\"Invoke\":return d.append({invoke:!0})}case\"ns\":return d.namespaced(e[1])}}}}),ne=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/node.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.node=h;var f=X();function h(d){if(d!==void 0){let c=d;return{fields(){return class{constructor(o){this.type=c,(0,f.assign)(this,o)}}}}}else return{fields(){return class{constructor(c){(0,f.assign)(this,c)}}}}}}}),be=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/args.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.NamedArgument=t.NamedArguments=t.PositionalArguments=t.Args=void 0;var f=ne(),h=class extends(0,f.node)().fields(){static empty(e){return new h({loc:e,positional:d.empty(e),named:c.empty(e)})}static named(e){return new h({loc:e.loc,positional:d.empty(e.loc.collapse(\"end\")),named:e})}nth(e){return this.positional.nth(e)}get(e){return this.named.get(e)}isEmpty(){return this.positional.isEmpty()&&this.named.isEmpty()}};t.Args=h;var d=class extends(0,f.node)().fields(){static empty(e){return new d({loc:e,exprs:[]})}get size(){return this.exprs.length}nth(e){return this.exprs[e]||null}isEmpty(){return this.exprs.length===0}};t.PositionalArguments=d;var c=class extends(0,f.node)().fields(){static empty(e){return new c({loc:e,entries:[]})}get size(){return this.entries.length}get(e){let r=this.entries.filter(s=>s.name.chars===e)[0];return r?r.value:null}isEmpty(){return this.entries.length===0}};t.NamedArguments=c;var o=class{constructor(e){this.loc=e.name.loc.extend(e.value.loc),this.name=e.name,this.value=e.value}};t.NamedArgument=o}}),Dt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/attr-block.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.ElementModifier=t.ComponentArg=t.SplatAttr=t.HtmlAttr=void 0;var f=be(),h=ne(),d=class extends(0,h.node)(\"HtmlAttr\").fields(){};t.HtmlAttr=d;var c=class extends(0,h.node)(\"SplatAttr\").fields(){};t.SplatAttr=c;var o=class extends(0,h.node)().fields(){toNamedArgument(){return new f.NamedArgument({name:this.name,value:this.value})}};t.ComponentArg=o;var e=class extends(0,h.node)(\"ElementModifier\").fields(){};t.ElementModifier=e}}),wt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/base.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0})}}),ce=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span-list.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.loc=d,t.hasSpan=c,t.maybeLoc=o,t.SpanList=void 0;var f=ue(),h=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this._span=e}static range(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:f.SourceSpan.NON_EXISTENT;return new h(e.map(d)).getRangeOffset(r)}add(e){this._span.push(e)}getRangeOffset(e){if(this._span.length===0)return e;{let r=this._span[0],s=this._span[this._span.length-1];return r.extend(s)}}};t.SpanList=h;function d(e){if(Array.isArray(e)){let r=e[0],s=e[e.length-1];return d(r).extend(d(s))}else return e instanceof f.SourceSpan?e:e.loc}function c(e){return!(Array.isArray(e)&&e.length===0)}function o(e,r){return c(e)?d(e):r}}}),kt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/content.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.SimpleElement=t.InvokeComponent=t.InvokeBlock=t.AppendContent=t.HtmlComment=t.HtmlText=t.GlimmerComment=void 0;var f=ce(),h=be(),d=ne(),c=class extends(0,d.node)(\"GlimmerComment\").fields(){};t.GlimmerComment=c;var o=class extends(0,d.node)(\"HtmlText\").fields(){};t.HtmlText=o;var e=class extends(0,d.node)(\"HtmlComment\").fields(){};t.HtmlComment=e;var r=class extends(0,d.node)(\"AppendContent\").fields(){get callee(){return this.value.type===\"Call\"?this.value.callee:this.value}get args(){return this.value.type===\"Call\"?this.value.args:h.Args.empty(this.value.loc.collapse(\"end\"))}};t.AppendContent=r;var s=class extends(0,d.node)(\"InvokeBlock\").fields(){};t.InvokeBlock=s;var p=class extends(0,d.node)(\"InvokeComponent\").fields(){get args(){let a=this.componentArgs.map(u=>u.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(a,this.callee.loc.collapse(\"end\")),entries:a}))}};t.InvokeComponent=p;var n=class extends(0,d.node)(\"SimpleElement\").fields(){get args(){let a=this.componentArgs.map(u=>u.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(a,this.tag.loc.collapse(\"end\")),entries:a}))}};t.SimpleElement=n}}),Tt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/expr.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isLiteral=c,t.InterpolateExpression=t.DeprecatedCallExpression=t.CallExpression=t.PathExpression=t.LiteralExpression=void 0;var f=le(),h=ne(),d=class extends(0,h.node)(\"Literal\").fields(){toSlice(){return new f.SourceSlice({loc:this.loc,chars:this.value})}};t.LiteralExpression=d;function c(p,n){return p.type===\"Literal\"?n===void 0?!0:n===\"null\"?p.value===null:typeof p.value===n:!1}var o=class extends(0,h.node)(\"Path\").fields(){};t.PathExpression=o;var e=class extends(0,h.node)(\"Call\").fields(){};t.CallExpression=e;var r=class extends(0,h.node)(\"DeprecatedCall\").fields(){};t.DeprecatedCallExpression=r;var s=class extends(0,h.node)(\"Interpolate\").fields(){};t.InterpolateExpression=s}}),Bt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/refs.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.FreeVarReference=t.LocalVarReference=t.ArgReference=t.ThisReference=void 0;var f=ne(),h=class extends(0,f.node)(\"This\").fields(){};t.ThisReference=h;var d=class extends(0,f.node)(\"Arg\").fields(){};t.ArgReference=d;var c=class extends(0,f.node)(\"Local\").fields(){};t.LocalVarReference=c;var o=class extends(0,f.node)(\"Free\").fields(){};t.FreeVarReference=o}}),Ot=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/internal-node.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.NamedBlock=t.NamedBlocks=t.Block=t.Template=void 0;var f=ce(),h=be(),d=ne(),c=class extends(0,d.node)().fields(){};t.Template=c;var o=class extends(0,d.node)().fields(){};t.Block=o;var e=class extends(0,d.node)().fields(){get(s){return this.blocks.filter(p=>p.name.chars===s)[0]||null}};t.NamedBlocks=e;var r=class extends(0,d.node)().fields(){get args(){let s=this.componentArgs.map(p=>p.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(s,this.name.loc.collapse(\"end\")),entries:s}))}};t.NamedBlock=r}}),ve=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/api.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f=Pt();Object.keys(f).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return f[n]}})});var h=ne();Object.keys(h).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return h[n]}})});var d=be();Object.keys(d).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return d[n]}})});var c=Dt();Object.keys(c).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return c[n]}})});var o=wt();Object.keys(o).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return o[n]}})});var e=kt();Object.keys(e).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})});var r=Tt();Object.keys(r).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[n]}})});var s=Bt();Object.keys(s).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return s[n]}})});var p=Ot();Object.keys(p).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return p[n]}})})}}),Ue=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/generation/util.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.escapeAttrValue=r,t.escapeText=s,t.sortByLoc=p;var f=/[\\xA0\"&]/,h=new RegExp(f.source,\"g\"),d=/[\\xA0&<>]/,c=new RegExp(d.source,\"g\");function o(n){switch(n.charCodeAt(0)){case 160:return\" \";case 34:return\""\";case 38:return\"&\";default:return n}}function e(n){switch(n.charCodeAt(0)){case 160:return\" \";case 38:return\"&\";case 60:return\"<\";case 62:return\">\";default:return n}}function r(n){return f.test(n)?n.replace(h,o):n}function s(n){return d.test(n)?n.replace(c,e):n}function p(n,a){return n.loc.isInvisible||a.loc.isInvisible?0:n.loc.startPosition.line{h[e]=!0});var c=/\\S/,o=class{constructor(e){this.buffer=\"\",this.options=e}handledByOverride(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.options.override!==void 0){let s=this.options.override(e,this.options);if(typeof s==\"string\")return r&&s!==\"\"&&c.test(s[0])&&(s=\" \".concat(s)),this.buffer+=s,!0}return!1}Node(e){switch(e.type){case\"MustacheStatement\":case\"BlockStatement\":case\"PartialStatement\":case\"MustacheCommentStatement\":case\"CommentStatement\":case\"TextNode\":case\"ElementNode\":case\"AttrNode\":case\"Block\":case\"Template\":return this.TopLevelStatement(e);case\"StringLiteral\":case\"BooleanLiteral\":case\"NumberLiteral\":case\"UndefinedLiteral\":case\"NullLiteral\":case\"PathExpression\":case\"SubExpression\":return this.Expression(e);case\"Program\":return this.Block(e);case\"ConcatStatement\":return this.ConcatStatement(e);case\"Hash\":return this.Hash(e);case\"HashPair\":return this.HashPair(e);case\"ElementModifierStatement\":return this.ElementModifierStatement(e)}}Expression(e){switch(e.type){case\"StringLiteral\":case\"BooleanLiteral\":case\"NumberLiteral\":case\"UndefinedLiteral\":case\"NullLiteral\":return this.Literal(e);case\"PathExpression\":return this.PathExpression(e);case\"SubExpression\":return this.SubExpression(e)}}Literal(e){switch(e.type){case\"StringLiteral\":return this.StringLiteral(e);case\"BooleanLiteral\":return this.BooleanLiteral(e);case\"NumberLiteral\":return this.NumberLiteral(e);case\"UndefinedLiteral\":return this.UndefinedLiteral(e);case\"NullLiteral\":return this.NullLiteral(e)}}TopLevelStatement(e){switch(e.type){case\"MustacheStatement\":return this.MustacheStatement(e);case\"BlockStatement\":return this.BlockStatement(e);case\"PartialStatement\":return this.PartialStatement(e);case\"MustacheCommentStatement\":return this.MustacheCommentStatement(e);case\"CommentStatement\":return this.CommentStatement(e);case\"TextNode\":return this.TextNode(e);case\"ElementNode\":return this.ElementNode(e);case\"Block\":case\"Template\":return this.Block(e);case\"AttrNode\":return this.AttrNode(e)}}Block(e){if(e.chained){let r=e.body[0];r.chained=!0}this.handledByOverride(e)||this.TopLevelStatements(e.body)}TopLevelStatements(e){e.forEach(r=>this.TopLevelStatement(r))}ElementNode(e){this.handledByOverride(e)||(this.OpenElementNode(e),this.TopLevelStatements(e.children),this.CloseElementNode(e))}OpenElementNode(e){this.buffer+=\"<\".concat(e.tag);let r=[...e.attributes,...e.modifiers,...e.comments].sort(f.sortByLoc);for(let s of r)switch(this.buffer+=\" \",s.type){case\"AttrNode\":this.AttrNode(s);break;case\"ElementModifierStatement\":this.ElementModifierStatement(s);break;case\"MustacheCommentStatement\":this.MustacheCommentStatement(s);break}e.blockParams.length&&this.BlockParams(e.blockParams),e.selfClosing&&(this.buffer+=\" /\"),this.buffer+=\">\"}CloseElementNode(e){e.selfClosing||h[e.tag.toLowerCase()]||(this.buffer+=\"\"))}AttrNode(e){if(this.handledByOverride(e))return;let{name:r,value:s}=e;this.buffer+=r,(s.type!==\"TextNode\"||s.chars.length>0)&&(this.buffer+=\"=\",this.AttrNodeValue(s))}AttrNodeValue(e){e.type===\"TextNode\"?(this.buffer+='\"',this.TextNode(e,!0),this.buffer+='\"'):this.Node(e)}TextNode(e,r){this.handledByOverride(e)||(this.options.entityEncoding===\"raw\"?this.buffer+=e.chars:r?this.buffer+=(0,f.escapeAttrValue)(e.chars):this.buffer+=(0,f.escapeText)(e.chars))}MustacheStatement(e){this.handledByOverride(e)||(this.buffer+=e.escaped?\"{{\":\"{{{\",e.strip.open&&(this.buffer+=\"~\"),this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.strip.close&&(this.buffer+=\"~\"),this.buffer+=e.escaped?\"}}\":\"}}}\")}BlockStatement(e){this.handledByOverride(e)||(e.chained?(this.buffer+=e.inverseStrip.open?\"{{~\":\"{{\",this.buffer+=\"else \"):this.buffer+=e.openStrip.open?\"{{~#\":\"{{#\",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.program.blockParams.length&&this.BlockParams(e.program.blockParams),e.chained?this.buffer+=e.inverseStrip.close?\"~}}\":\"}}\":this.buffer+=e.openStrip.close?\"~}}\":\"}}\",this.Block(e.program),e.inverse&&(e.inverse.chained||(this.buffer+=e.inverseStrip.open?\"{{~\":\"{{\",this.buffer+=\"else\",this.buffer+=e.inverseStrip.close?\"~}}\":\"}}\"),this.Block(e.inverse)),e.chained||(this.buffer+=e.closeStrip.open?\"{{~/\":\"{{/\",this.Expression(e.path),this.buffer+=e.closeStrip.close?\"~}}\":\"}}\"))}BlockParams(e){this.buffer+=\" as |\".concat(e.join(\" \"),\"|\")}PartialStatement(e){this.handledByOverride(e)||(this.buffer+=\"{{>\",this.Expression(e.name),this.Params(e.params),this.Hash(e.hash),this.buffer+=\"}}\")}ConcatStatement(e){this.handledByOverride(e)||(this.buffer+='\"',e.parts.forEach(r=>{r.type===\"TextNode\"?this.TextNode(r,!0):this.Node(r)}),this.buffer+='\"')}MustacheCommentStatement(e){this.handledByOverride(e)||(this.buffer+=\"{{!--\".concat(e.value,\"--}}\"))}ElementModifierStatement(e){this.handledByOverride(e)||(this.buffer+=\"{{\",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+=\"}}\")}CommentStatement(e){this.handledByOverride(e)||(this.buffer+=\"\"))}PathExpression(e){this.handledByOverride(e)||(this.buffer+=e.original)}SubExpression(e){this.handledByOverride(e)||(this.buffer+=\"(\",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+=\")\")}Params(e){e.length&&e.forEach(r=>{this.buffer+=\" \",this.Expression(r)})}Hash(e){this.handledByOverride(e,!0)||e.pairs.forEach(r=>{this.buffer+=\" \",this.HashPair(r)})}HashPair(e){this.handledByOverride(e)||(this.buffer+=e.key,this.buffer+=\"=\",this.Node(e.value))}StringLiteral(e){this.handledByOverride(e)||(this.buffer+=JSON.stringify(e.value))}BooleanLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}NumberLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}UndefinedLiteral(e){this.handledByOverride(e)||(this.buffer+=\"undefined\")}NullLiteral(e){this.handledByOverride(e)||(this.buffer+=\"null\")}print(e){let{options:r}=this;if(r.override){let s=r.override(e,r);if(s!==void 0)return s}return this.buffer=\"\",this.Node(e),this.buffer}};t.default=o}}),Be=I({\"node_modules/@handlebars/parser/dist/cjs/exception.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f=[\"description\",\"fileName\",\"lineNumber\",\"endLineNumber\",\"message\",\"name\",\"number\",\"stack\"];function h(d,c){var o=c&&c.loc,e,r,s,p;o&&(e=o.start.line,r=o.end.line,s=o.start.column,p=o.end.column,d+=\" - \"+e+\":\"+s);for(var n=Error.prototype.constructor.call(this,d),a=0;a\"u\"&&(Y.yylloc={});var Ee=Y.yylloc;A.push(Ee);var rt=Y.options&&Y.options.ranges;typeof ie.yy.parseError==\"function\"?this.parseError=ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $t(te){O.length=O.length-2*te,z.length=z.length-te,A.length=A.length-te}e:var nt=function(){var te;return te=Y.lex()||Re,typeof te!=\"number\"&&(te=B.symbols_[te]||te),te};for(var J,_e,ae,ee,er,Se,se={},de,re,qe,pe;;){if(ae=O[O.length-1],this.defaultActions[ae]?ee=this.defaultActions[ae]:((J===null||typeof J>\"u\")&&(J=nt()),ee=Q[ae]&&Q[ae][J]),typeof ee>\"u\"||!ee.length||!ee[0]){var Ce=\"\";pe=[];for(de in Q[ae])this.terminals_[de]&&de>et&&pe.push(\"'\"+this.terminals_[de]+\"'\");Y.showPosition?Ce=\"Parse error on line \"+($+1)+`:\n`+Y.showPosition()+`\nExpecting `+pe.join(\", \")+\", got '\"+(this.terminals_[J]||J)+\"'\":Ce=\"Parse error on line \"+($+1)+\": Unexpected \"+(J==Re?\"end of input\":\"'\"+(this.terminals_[J]||J)+\"'\"),this.parseError(Ce,{text:Y.match,token:this.terminals_[J]||J,line:Y.yylineno,loc:Ee,expected:pe})}if(ee[0]instanceof Array&&ee.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+ae+\", token: \"+J);switch(ee[0]){case 1:O.push(J),z.push(Y.yytext),A.push(Y.yylloc),O.push(ee[1]),J=null,_e?(J=_e,_e=null):(oe=Y.yyleng,D=Y.yytext,$=Y.yylineno,Ee=Y.yylloc,Ie>0&&Ie--);break;case 2:if(re=this.productions_[ee[1]][1],se.$=z[z.length-re],se._$={first_line:A[A.length-(re||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(re||1)].first_column,last_column:A[A.length-1].last_column},rt&&(se._$.range=[A[A.length-(re||1)].range[0],A[A.length-1].range[1]]),Se=this.performAction.apply(se,[D,oe,$,ie.yy,ee[1],z,A].concat(tt)),typeof Se<\"u\")return Se;re&&(O=O.slice(0,-1*re*2),z=z.slice(0,-1*re),A=A.slice(0,-1*re)),O.push(this.productions_[ee[1]][0]),z.push(se.$),A.push(se._$),qe=Q[O[O.length-2]][O[O.length-1]],O.push(qe);break;case 3:return!0}}return!0}},W=function(){var N={EOF:1,parseError:function(B,O){if(this.yy.parser)this.yy.parser.parseError(B,O);else throw new Error(B)},setInput:function(k,B){return this.yy=B||this.yy||{},this._input=k,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var k=this._input[0];this.yytext+=k,this.yyleng++,this.offset++,this.match+=k,this.matched+=k;var B=k.match(/(?:\\r\\n?|\\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),k},unput:function(k){var B=k.length,O=k.split(/(?:\\r\\n?|\\n)/g);this._input=k+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;var q=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),O.length-1&&(this.yylineno-=O.length-1);var z=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:O?(O.length===q.length?this.yylloc.first_column:0)+q[q.length-O.length].length-O[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[z[0],z[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(k){this.unput(this.match.slice(k))},pastInput:function(){var k=this.matched.substr(0,this.matched.length-this.match.length);return(k.length>20?\"...\":\"\")+k.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var k=this.match;return k.length<20&&(k+=this._input.substr(0,20-k.length)),(k.substr(0,20)+(k.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var k=this.pastInput(),B=new Array(k.length+1).join(\"-\");return k+this.upcomingInput()+`\n`+B+\"^\"},test_match:function(k,B){var O,q,z;if(this.options.backtrack_lexer&&(z={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(z.yylloc.range=this.yylloc.range.slice(0))),q=k[0].match(/(?:\\r\\n?|\\n).*/g),q&&(this.yylineno+=q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:q?q[q.length-1].length-q[q.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+k[0].length},this.yytext+=k[0],this.match+=k[0],this.matches=k,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(k[0].length),this.matched+=k[0],O=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),O)return O;if(this._backtrack){for(var A in z)this[A]=z[A];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var k,B,O,q;this._more||(this.yytext=\"\",this.match=\"\");for(var z=this._currentRules(),A=0;AB[0].length)){if(B=O,q=A,this.options.backtrack_lexer){if(k=this.test_match(O,z[A]),k!==!1)return k;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(k=this.test_match(B,z[q]),k!==!1?k:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var B=this.next();return B||this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:\"INITIAL\"},pushState:function(B){this.begin(B)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(B,O,q,z){function A(D,$){return O.yytext=O.yytext.substring(D,O.yyleng-$+D)}var Q=z;switch(q){case 0:if(O.yytext.slice(-2)===\"\\\\\\\\\"?(A(0,1),this.begin(\"mu\")):O.yytext.slice(-1)===\"\\\\\"?(A(0,1),this.begin(\"emu\")):this.begin(\"mu\"),O.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin(\"raw\"),15;break;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]===\"raw\"?15:(A(5,9),18);case 5:return 15;case 6:return this.popState(),14;break;case 7:return 64;case 8:return 67;case 9:return 19;case 10:return this.popState(),this.begin(\"raw\"),23;break;case 11:return 56;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 52;case 20:return 48;case 21:this.unput(O.yytext),this.popState(),this.begin(\"com\");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 72;case 25:return 71;case 26:return 71;case 27:return 86;case 28:break;case 29:return this.popState(),55;break;case 30:return this.popState(),33;break;case 31:return O.yytext=A(1,2).replace(/\\\\\"/g,'\"'),79;break;case 32:return O.yytext=A(1,2).replace(/\\\\'/g,\"'\"),79;break;case 33:return 84;case 34:return 81;case 35:return 81;case 36:return 82;case 37:return 83;case 38:return 80;case 39:return 74;case 40:return 76;case 41:return 71;case 42:return O.yytext=O.yytext.replace(/\\\\([\\\\\\]])/g,\"$1\"),71;break;case 43:return\"INVALID\";case 44:return 5}},rules:[/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:\\{\\{\\{\\{(?=[^/]))/,/^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/,/^(?:[^\\x00]+?(?=(\\{\\{\\{\\{)))/,/^(?:[\\s\\S]*?--(~)?\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{\\{\\{)/,/^(?:\\}\\}\\}\\})/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#>)/,/^(?:\\{\\{(~)?#\\*?)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\s*else\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{(~)?!--)/,/^(?:\\{\\{(~)?![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?\\*?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)|])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:undefined(?=([~}\\s)])))/,/^(?:null(?=([~}\\s)])))/,/^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/,/^(?:as\\s+\\|)/,/^(?:\\|)/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)|]))))/,/^(?:\\[(\\\\\\]|[^\\]])*\\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return N}();Z.lexer=W;function T(){this.yy={}}return T.prototype=Z,Z.Parser=T,new T}();t.default=f}}),Nt=I({\"node_modules/@handlebars/parser/dist/cjs/printer.js\"(t){\"use strict\";F();var f=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.PrintVisitor=t.print=void 0;var h=f(Oe());function d(o){return new c().accept(o)}t.print=d;function c(){this.padding=0}t.PrintVisitor=c,c.prototype=new h.default,c.prototype.pad=function(o){for(var e=\"\",r=0,s=this.padding;r \"+e+\" }}\")},c.prototype.PartialBlockStatement=function(o){var e=\"PARTIAL BLOCK:\"+o.name.original;return o.params[0]&&(e+=\" \"+this.accept(o.params[0])),o.hash&&(e+=\" \"+this.accept(o.hash)),e+=\" \"+this.pad(\"PROGRAM:\"),this.padding++,e+=this.accept(o.program),this.padding--,this.pad(\"{{> \"+e+\" }}\")},c.prototype.ContentStatement=function(o){return this.pad(\"CONTENT[ '\"+o.value+\"' ]\")},c.prototype.CommentStatement=function(o){return this.pad(\"{{! '\"+o.value+\"' }}\")},c.prototype.SubExpression=function(o){for(var e=o.params,r=[],s,p=0,n=e.length;p0)throw new h.default(\"Invalid path: \"+E,{loc:P});L===\"..\"&&_++}else v.push(L)}return{type:\"PathExpression\",data:l,depth:_,parts:v,original:E,loc:P}}t.preparePath=s;function p(l,b,P,E,v,_){var y=E.charAt(3)||E.charAt(2),g=y!==\"{\"&&y!==\"&\",L=/\\*/.test(E);return{type:L?\"Decorator\":\"MustacheStatement\",path:l,params:b,hash:P,escaped:g,strip:v,loc:this.locInfo(_)}}t.prepareMustache=p;function n(l,b,P,E){d(l,P),E=this.locInfo(E);var v={type:\"Program\",body:b,strip:{},loc:E};return{type:\"BlockStatement\",path:l.path,params:l.params,hash:l.hash,program:v,openStrip:{},inverseStrip:{},closeStrip:{},loc:E}}t.prepareRawBlock=n;function a(l,b,P,E,v,_){E&&E.path&&d(l,E);var y=/\\*/.test(l.open);b.blockParams=l.blockParams;var g,L;if(P){if(y)throw new h.default(\"Unexpected inverse block on decorator\",P);P.chain&&(P.program.body[0].closeStrip=E.strip),L=P.strip,g=P.program}return v&&(v=g,g=b,b=v),{type:y?\"DecoratorBlock\":\"BlockStatement\",path:l.path,params:l.params,hash:l.hash,program:b,inverse:g,openStrip:l.strip,inverseStrip:L,closeStrip:E&&E.strip,loc:this.locInfo(_)}}t.prepareBlock=a;function u(l,b){if(!b&&l.length){var P=l[0].loc,E=l[l.length-1].loc;P&&E&&(b={source:P.source,start:{line:P.start.line,column:P.start.column},end:{line:E.end.line,column:E.end.column}})}return{type:\"Program\",body:l,strip:{},loc:b}}t.prepareProgram=u;function i(l,b,P,E){return d(l,P),{type:\"PartialBlockStatement\",name:l.path,params:l.params,hash:l.hash,program:b,openStrip:l.strip,closeStrip:P&&P.strip,loc:this.locInfo(E)}}t.preparePartialBlock=i}}),Ft=I({\"node_modules/@handlebars/parser/dist/cjs/parse.js\"(t){\"use strict\";F();var f=t&&t.__createBinding||(Object.create?function(u,i,l,b){b===void 0&&(b=l),Object.defineProperty(u,b,{enumerable:!0,get:function(){return i[l]}})}:function(u,i,l,b){b===void 0&&(b=l),u[b]=i[l]}),h=t&&t.__setModuleDefault||(Object.create?function(u,i){Object.defineProperty(u,\"default\",{enumerable:!0,value:i})}:function(u,i){u.default=i}),d=t&&t.__importStar||function(u){if(u&&u.__esModule)return u;var i={};if(u!=null)for(var l in u)l!==\"default\"&&Object.prototype.hasOwnProperty.call(u,l)&&f(i,u,l);return h(i,u),i},c=t&&t.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.parse=t.parseWithoutProcessing=void 0;var o=c(Ge()),e=c(ze()),r=d(Lt()),s={};for(p in r)Object.prototype.hasOwnProperty.call(r,p)&&(s[p]=r[p]);var p;function n(u,i){if(u.type===\"Program\")return u;o.default.yy=s,o.default.yy.locInfo=function(b){return new r.SourceLocation(i&&i.srcName,b)};var l=o.default.parse(u);return l}t.parseWithoutProcessing=n;function a(u,i){var l=n(u,i),b=new e.default(i);return b.accept(l)}t.parse=a}}),It=I({\"node_modules/@handlebars/parser/dist/cjs/index.js\"(t){\"use strict\";F();var f=t&&t.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.parseWithoutProcessing=t.parse=t.PrintVisitor=t.print=t.Exception=t.parser=t.WhitespaceControl=t.Visitor=void 0;var h=Oe();Object.defineProperty(t,\"Visitor\",{enumerable:!0,get:function(){return f(h).default}});var d=ze();Object.defineProperty(t,\"WhitespaceControl\",{enumerable:!0,get:function(){return f(d).default}});var c=Ge();Object.defineProperty(t,\"parser\",{enumerable:!0,get:function(){return f(c).default}});var o=Be();Object.defineProperty(t,\"Exception\",{enumerable:!0,get:function(){return f(o).default}});var e=Nt();Object.defineProperty(t,\"print\",{enumerable:!0,get:function(){return e.print}}),Object.defineProperty(t,\"PrintVisitor\",{enumerable:!0,get:function(){return e.PrintVisitor}});var r=Ft();Object.defineProperty(t,\"parse\",{enumerable:!0,get:function(){return r.parse}}),Object.defineProperty(t,\"parseWithoutProcessing\",{enumerable:!0,get:function(){return r.parseWithoutProcessing}})}}),Ke=I({\"node_modules/simple-html-tokenizer/dist/simple-html-tokenizer.js\"(t,f){F(),function(h,d){typeof t==\"object\"&&typeof f<\"u\"?d(t):typeof define==\"function\"&&define.amd?define([\"exports\"],d):d(h.HTML5Tokenizer={})}(t,function(h){\"use strict\";var d={Aacute:\"\\xC1\",aacute:\"\\xE1\",Abreve:\"\\u0102\",abreve:\"\\u0103\",ac:\"\\u223E\",acd:\"\\u223F\",acE:\"\\u223E\\u0333\",Acirc:\"\\xC2\",acirc:\"\\xE2\",acute:\"\\xB4\",Acy:\"\\u0410\",acy:\"\\u0430\",AElig:\"\\xC6\",aelig:\"\\xE6\",af:\"\\u2061\",Afr:\"\\u{1D504}\",afr:\"\\u{1D51E}\",Agrave:\"\\xC0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",Alpha:\"\\u0391\",alpha:\"\\u03B1\",Amacr:\"\\u0100\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",amp:\"&\",AMP:\"&\",andand:\"\\u2A55\",And:\"\\u2A53\",and:\"\\u2227\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angmsd:\"\\u2221\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",Aogon:\"\\u0104\",aogon:\"\\u0105\",Aopf:\"\\u{1D538}\",aopf:\"\\u{1D552}\",apacir:\"\\u2A6F\",ap:\"\\u2248\",apE:\"\\u2A70\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",ApplyFunction:\"\\u2061\",approx:\"\\u2248\",approxeq:\"\\u224A\",Aring:\"\\xC5\",aring:\"\\xE5\",Ascr:\"\\u{1D49C}\",ascr:\"\\u{1D4B6}\",Assign:\"\\u2254\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",Atilde:\"\\xC3\",atilde:\"\\xE3\",Auml:\"\\xC4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",barvee:\"\\u22BD\",barwed:\"\\u2305\",Barwed:\"\\u2306\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",Bcy:\"\\u0411\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",Because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",Bfr:\"\\u{1D505}\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bNot:\"\\u2AED\",bnot:\"\\u2310\",Bopf:\"\\u{1D539}\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxbox:\"\\u29C9\",boxdl:\"\\u2510\",boxdL:\"\\u2555\",boxDl:\"\\u2556\",boxDL:\"\\u2557\",boxdr:\"\\u250C\",boxdR:\"\\u2552\",boxDr:\"\\u2553\",boxDR:\"\\u2554\",boxh:\"\\u2500\",boxH:\"\\u2550\",boxhd:\"\\u252C\",boxHd:\"\\u2564\",boxhD:\"\\u2565\",boxHD:\"\\u2566\",boxhu:\"\\u2534\",boxHu:\"\\u2567\",boxhU:\"\\u2568\",boxHU:\"\\u2569\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxul:\"\\u2518\",boxuL:\"\\u255B\",boxUl:\"\\u255C\",boxUL:\"\\u255D\",boxur:\"\\u2514\",boxuR:\"\\u2558\",boxUr:\"\\u2559\",boxUR:\"\\u255A\",boxv:\"\\u2502\",boxV:\"\\u2551\",boxvh:\"\\u253C\",boxvH:\"\\u256A\",boxVh:\"\\u256B\",boxVH:\"\\u256C\",boxvl:\"\\u2524\",boxvL:\"\\u2561\",boxVl:\"\\u2562\",boxVL:\"\\u2563\",boxvr:\"\\u251C\",boxvR:\"\\u255E\",boxVr:\"\\u255F\",boxVR:\"\\u2560\",bprime:\"\\u2035\",breve:\"\\u02D8\",Breve:\"\\u02D8\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",Bscr:\"\\u212C\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsolb:\"\\u29C5\",bsol:\"\\\\\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",Bumpeq:\"\\u224E\",bumpeq:\"\\u224F\",Cacute:\"\\u0106\",cacute:\"\\u0107\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",cap:\"\\u2229\",Cap:\"\\u22D2\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",CapitalDifferentialD:\"\\u2145\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",Cayleys:\"\\u212D\",ccaps:\"\\u2A4D\",Ccaron:\"\\u010C\",ccaron:\"\\u010D\",Ccedil:\"\\xC7\",ccedil:\"\\xE7\",Ccirc:\"\\u0108\",ccirc:\"\\u0109\",Cconint:\"\\u2230\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",Cdot:\"\\u010A\",cdot:\"\\u010B\",cedil:\"\\xB8\",Cedilla:\"\\xB8\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",centerdot:\"\\xB7\",CenterDot:\"\\xB7\",cfr:\"\\u{1D520}\",Cfr:\"\\u212D\",CHcy:\"\\u0427\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",Chi:\"\\u03A7\",chi:\"\\u03C7\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",CircleDot:\"\\u2299\",circledR:\"\\xAE\",circledS:\"\\u24C8\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",cir:\"\\u25CB\",cirE:\"\\u29C3\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",Colon:\"\\u2237\",Colone:\"\\u2A74\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",Congruent:\"\\u2261\",conint:\"\\u222E\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",copf:\"\\u{1D554}\",Copf:\"\\u2102\",coprod:\"\\u2210\",Coproduct:\"\\u2210\",copy:\"\\xA9\",COPY:\"\\xA9\",copysr:\"\\u2117\",CounterClockwiseContourIntegral:\"\\u2233\",crarr:\"\\u21B5\",cross:\"\\u2717\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",CupCap:\"\\u224D\",cup:\"\\u222A\",Cup:\"\\u22D3\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dagger:\"\\u2020\",Dagger:\"\\u2021\",daleth:\"\\u2138\",darr:\"\\u2193\",Darr:\"\\u21A1\",dArr:\"\\u21D3\",dash:\"\\u2010\",Dashv:\"\\u2AE4\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",Dcaron:\"\\u010E\",dcaron:\"\\u010F\",Dcy:\"\\u0414\",dcy:\"\\u0434\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",DD:\"\\u2145\",dd:\"\\u2146\",DDotrahd:\"\\u2911\",ddotseq:\"\\u2A77\",deg:\"\\xB0\",Del:\"\\u2207\",Delta:\"\\u0394\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",Dfr:\"\\u{1D507}\",dfr:\"\\u{1D521}\",dHar:\"\\u2965\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",diam:\"\\u22C4\",diamond:\"\\u22C4\",Diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",DifferentialD:\"\\u2146\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",DJcy:\"\\u0402\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",Dopf:\"\\u{1D53B}\",dopf:\"\\u{1D555}\",Dot:\"\\xA8\",dot:\"\\u02D9\",DotDot:\"\\u20DC\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",DotEqual:\"\\u2250\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrowBar:\"\\u2913\",downarrow:\"\\u2193\",DownArrow:\"\\u2193\",Downarrow:\"\\u21D3\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVectorBar:\"\\u2956\",DownLeftVector:\"\\u21BD\",DownRightTeeVector:\"\\u295F\",DownRightVectorBar:\"\\u2957\",DownRightVector:\"\\u21C1\",DownTeeArrow:\"\\u21A7\",DownTee:\"\\u22A4\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",Dscr:\"\\u{1D49F}\",dscr:\"\\u{1D4B9}\",DScy:\"\\u0405\",dscy:\"\\u0455\",dsol:\"\\u29F6\",Dstrok:\"\\u0110\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",DZcy:\"\\u040F\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",Eacute:\"\\xC9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",Ecaron:\"\\u011A\",ecaron:\"\\u011B\",Ecirc:\"\\xCA\",ecirc:\"\\xEA\",ecir:\"\\u2256\",ecolon:\"\\u2255\",Ecy:\"\\u042D\",ecy:\"\\u044D\",eDDot:\"\\u2A77\",Edot:\"\\u0116\",edot:\"\\u0117\",eDot:\"\\u2251\",ee:\"\\u2147\",efDot:\"\\u2252\",Efr:\"\\u{1D508}\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",Egrave:\"\\xC8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",Element:\"\\u2208\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",Emacr:\"\\u0112\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",EmptySmallSquare:\"\\u25FB\",emptyv:\"\\u2205\",EmptyVerySmallSquare:\"\\u25AB\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",ENG:\"\\u014A\",eng:\"\\u014B\",ensp:\"\\u2002\",Eogon:\"\\u0118\",eogon:\"\\u0119\",Eopf:\"\\u{1D53C}\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",Epsilon:\"\\u0395\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",Equal:\"\\u2A75\",equals:\"=\",EqualTilde:\"\\u2242\",equest:\"\\u225F\",Equilibrium:\"\\u21CC\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erarr:\"\\u2971\",erDot:\"\\u2253\",escr:\"\\u212F\",Escr:\"\\u2130\",esdot:\"\\u2250\",Esim:\"\\u2A73\",esim:\"\\u2242\",Eta:\"\\u0397\",eta:\"\\u03B7\",ETH:\"\\xD0\",eth:\"\\xF0\",Euml:\"\\xCB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",Exists:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",ExponentialE:\"\\u2147\",fallingdotseq:\"\\u2252\",Fcy:\"\\u0424\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",Ffr:\"\\u{1D509}\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",Fopf:\"\\u{1D53D}\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",ForAll:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",Fouriertrf:\"\\u2131\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",Fscr:\"\\u2131\",gacute:\"\\u01F5\",Gamma:\"\\u0393\",gamma:\"\\u03B3\",Gammad:\"\\u03DC\",gammad:\"\\u03DD\",gap:\"\\u2A86\",Gbreve:\"\\u011E\",gbreve:\"\\u011F\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",gcirc:\"\\u011D\",Gcy:\"\\u0413\",gcy:\"\\u0433\",Gdot:\"\\u0120\",gdot:\"\\u0121\",ge:\"\\u2265\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",gescc:\"\\u2AA9\",ges:\"\\u2A7E\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",Gfr:\"\\u{1D50A}\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",Gg:\"\\u22D9\",ggg:\"\\u22D9\",gimel:\"\\u2137\",GJcy:\"\\u0403\",gjcy:\"\\u0453\",gla:\"\\u2AA5\",gl:\"\\u2277\",glE:\"\\u2A92\",glj:\"\\u2AA4\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gnE:\"\\u2269\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",Gopf:\"\\u{1D53E}\",gopf:\"\\u{1D558}\",grave:\"`\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gt:\">\",GT:\">\",Gt:\"\\u226B\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",Hacek:\"\\u02C7\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",HARDcy:\"\\u042A\",hardcy:\"\\u044A\",harrcir:\"\\u2948\",harr:\"\\u2194\",hArr:\"\\u21D4\",harrw:\"\\u21AD\",Hat:\"^\",hbar:\"\\u210F\",Hcirc:\"\\u0124\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",Hopf:\"\\u210D\",horbar:\"\\u2015\",HorizontalLine:\"\\u2500\",hscr:\"\\u{1D4BD}\",Hscr:\"\\u210B\",hslash:\"\\u210F\",Hstrok:\"\\u0126\",hstrok:\"\\u0127\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",hybull:\"\\u2043\",hyphen:\"\\u2010\",Iacute:\"\\xCD\",iacute:\"\\xED\",ic:\"\\u2063\",Icirc:\"\\xCE\",icirc:\"\\xEE\",Icy:\"\\u0418\",icy:\"\\u0438\",Idot:\"\\u0130\",IEcy:\"\\u0415\",iecy:\"\\u0435\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",Ifr:\"\\u2111\",Igrave:\"\\xCC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",IJlig:\"\\u0132\",ijlig:\"\\u0133\",Imacr:\"\\u012A\",imacr:\"\\u012B\",image:\"\\u2111\",ImaginaryI:\"\\u2148\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",Im:\"\\u2111\",imof:\"\\u22B7\",imped:\"\\u01B5\",Implies:\"\\u21D2\",incare:\"\\u2105\",in:\"\\u2208\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",intcal:\"\\u22BA\",int:\"\\u222B\",Int:\"\\u222C\",integers:\"\\u2124\",Integral:\"\\u222B\",intercal:\"\\u22BA\",Intersection:\"\\u22C2\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",IOcy:\"\\u0401\",iocy:\"\\u0451\",Iogon:\"\\u012E\",iogon:\"\\u012F\",Iopf:\"\\u{1D540}\",iopf:\"\\u{1D55A}\",Iota:\"\\u0399\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",Iscr:\"\\u2110\",isin:\"\\u2208\",isindot:\"\\u22F5\",isinE:\"\\u22F9\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",Itilde:\"\\u0128\",itilde:\"\\u0129\",Iukcy:\"\\u0406\",iukcy:\"\\u0456\",Iuml:\"\\xCF\",iuml:\"\\xEF\",Jcirc:\"\\u0134\",jcirc:\"\\u0135\",Jcy:\"\\u0419\",jcy:\"\\u0439\",Jfr:\"\\u{1D50D}\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",Jopf:\"\\u{1D541}\",jopf:\"\\u{1D55B}\",Jscr:\"\\u{1D4A5}\",jscr:\"\\u{1D4BF}\",Jsercy:\"\\u0408\",jsercy:\"\\u0458\",Jukcy:\"\\u0404\",jukcy:\"\\u0454\",Kappa:\"\\u039A\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",Kcedil:\"\\u0136\",kcedil:\"\\u0137\",Kcy:\"\\u041A\",kcy:\"\\u043A\",Kfr:\"\\u{1D50E}\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",KHcy:\"\\u0425\",khcy:\"\\u0445\",KJcy:\"\\u040C\",kjcy:\"\\u045C\",Kopf:\"\\u{1D542}\",kopf:\"\\u{1D55C}\",Kscr:\"\\u{1D4A6}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",Lacute:\"\\u0139\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",Lambda:\"\\u039B\",lambda:\"\\u03BB\",lang:\"\\u27E8\",Lang:\"\\u27EA\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",Laplacetrf:\"\\u2112\",laquo:\"\\xAB\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larr:\"\\u2190\",Larr:\"\\u219E\",lArr:\"\\u21D0\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",latail:\"\\u2919\",lAtail:\"\\u291B\",lat:\"\\u2AAB\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lBarr:\"\\u290E\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",Lcaron:\"\\u013D\",lcaron:\"\\u013E\",Lcedil:\"\\u013B\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",Lcy:\"\\u041B\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",lE:\"\\u2266\",LeftAngleBracket:\"\\u27E8\",LeftArrowBar:\"\\u21E4\",leftarrow:\"\\u2190\",LeftArrow:\"\\u2190\",Leftarrow:\"\\u21D0\",LeftArrowRightArrow:\"\\u21C6\",leftarrowtail:\"\\u21A2\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVectorBar:\"\\u2959\",LeftDownVector:\"\\u21C3\",LeftFloor:\"\\u230A\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",LeftRightArrow:\"\\u2194\",Leftrightarrow:\"\\u21D4\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",LeftRightVector:\"\\u294E\",LeftTeeArrow:\"\\u21A4\",LeftTee:\"\\u22A3\",LeftTeeVector:\"\\u295A\",leftthreetimes:\"\\u22CB\",LeftTriangleBar:\"\\u29CF\",LeftTriangle:\"\\u22B2\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVectorBar:\"\\u2958\",LeftUpVector:\"\\u21BF\",LeftVectorBar:\"\\u2952\",LeftVector:\"\\u21BC\",lEg:\"\\u2A8B\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",lescc:\"\\u2AA8\",les:\"\\u2A7D\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",LessLess:\"\\u2AA1\",lesssim:\"\\u2272\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",Lfr:\"\\u{1D50F}\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lHar:\"\\u2962\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",LJcy:\"\\u0409\",ljcy:\"\\u0459\",llarr:\"\\u21C7\",ll:\"\\u226A\",Ll:\"\\u22D8\",llcorner:\"\\u231E\",Lleftarrow:\"\\u21DA\",llhard:\"\\u296B\",lltri:\"\\u25FA\",Lmidot:\"\\u013F\",lmidot:\"\\u0140\",lmoustache:\"\\u23B0\",lmoust:\"\\u23B0\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lnE:\"\\u2268\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",LongLeftArrow:\"\\u27F5\",Longleftarrow:\"\\u27F8\",longleftrightarrow:\"\\u27F7\",LongLeftRightArrow:\"\\u27F7\",Longleftrightarrow:\"\\u27FA\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",LongRightArrow:\"\\u27F6\",Longrightarrow:\"\\u27F9\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",Lopf:\"\\u{1D543}\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",Lscr:\"\\u2112\",lsh:\"\\u21B0\",Lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",Lstrok:\"\\u0141\",lstrok:\"\\u0142\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",lt:\"<\",LT:\"<\",Lt:\"\\u226A\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",ltrPar:\"\\u2996\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",Map:\"\\u2905\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",Mcy:\"\\u041C\",mcy:\"\\u043C\",mdash:\"\\u2014\",mDDot:\"\\u223A\",measuredangle:\"\\u2221\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",midast:\"*\",midcir:\"\\u2AF0\",mid:\"\\u2223\",middot:\"\\xB7\",minusb:\"\\u229F\",minus:\"\\u2212\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",MinusPlus:\"\\u2213\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",Mopf:\"\\u{1D544}\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",Mscr:\"\\u2133\",mstpos:\"\\u223E\",Mu:\"\\u039C\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nabla:\"\\u2207\",Nacute:\"\\u0143\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natural:\"\\u266E\",naturals:\"\\u2115\",natur:\"\\u266E\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",Ncaron:\"\\u0147\",ncaron:\"\\u0148\",Ncedil:\"\\u0145\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",Ncy:\"\\u041D\",ncy:\"\\u043D\",ndash:\"\\u2013\",nearhk:\"\\u2924\",nearr:\"\\u2197\",neArr:\"\\u21D7\",nearrow:\"\\u2197\",ne:\"\\u2260\",nedot:\"\\u2250\\u0338\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,nexist:\"\\u2204\",nexists:\"\\u2204\",Nfr:\"\\u{1D511}\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",nGg:\"\\u22D9\\u0338\",ngsim:\"\\u2275\",nGt:\"\\u226B\\u20D2\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nGtv:\"\\u226B\\u0338\",nharr:\"\\u21AE\",nhArr:\"\\u21CE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",NJcy:\"\\u040A\",njcy:\"\\u045A\",nlarr:\"\\u219A\",nlArr:\"\\u21CD\",nldr:\"\\u2025\",nlE:\"\\u2266\\u0338\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nLeftarrow:\"\\u21CD\",nleftrightarrow:\"\\u21AE\",nLeftrightarrow:\"\\u21CE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nLl:\"\\u22D8\\u0338\",nlsim:\"\\u2274\",nLt:\"\\u226A\\u20D2\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nLtv:\"\\u226A\\u0338\",nmid:\"\\u2224\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",nopf:\"\\u{1D55F}\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",not:\"\\xAC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",notin:\"\\u2209\",notindot:\"\\u22F5\\u0338\",notinE:\"\\u22F9\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangle:\"\\u22EB\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",nparallel:\"\\u2226\",npar:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",npre:\"\\u2AAF\\u0338\",nrarrc:\"\\u2933\\u0338\",nrarr:\"\\u219B\",nrArr:\"\\u21CF\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nRightarrow:\"\\u21CF\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",Nscr:\"\\u{1D4A9}\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",Ntilde:\"\\xD1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",Nu:\"\\u039D\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvDash:\"\\u22AD\",nVdash:\"\\u22AE\",nVDash:\"\\u22AF\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvHarr:\"\\u2904\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwArr:\"\\u21D6\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",Oacute:\"\\xD3\",oacute:\"\\xF3\",oast:\"\\u229B\",Ocirc:\"\\xD4\",ocirc:\"\\xF4\",ocir:\"\\u229A\",Ocy:\"\\u041E\",ocy:\"\\u043E\",odash:\"\\u229D\",Odblac:\"\\u0150\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",OElig:\"\\u0152\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",Ofr:\"\\u{1D512}\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",Ograve:\"\\xD2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",Omacr:\"\\u014C\",omacr:\"\\u014D\",Omega:\"\\u03A9\",omega:\"\\u03C9\",Omicron:\"\\u039F\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",Oopf:\"\\u{1D546}\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",operp:\"\\u29B9\",oplus:\"\\u2295\",orarr:\"\\u21BB\",Or:\"\\u2A54\",or:\"\\u2228\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oS:\"\\u24C8\",Oscr:\"\\u{1D4AA}\",oscr:\"\\u2134\",Oslash:\"\\xD8\",oslash:\"\\xF8\",osol:\"\\u2298\",Otilde:\"\\xD5\",otilde:\"\\xF5\",otimesas:\"\\u2A36\",Otimes:\"\\u2A37\",otimes:\"\\u2297\",Ouml:\"\\xD6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",para:\"\\xB6\",parallel:\"\\u2225\",par:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",Pfr:\"\\u{1D513}\",pfr:\"\\u{1D52D}\",Phi:\"\\u03A6\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",Pi:\"\\u03A0\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plus:\"+\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",Poincareplane:\"\\u210C\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",Popf:\"\\u2119\",pound:\"\\xA3\",prap:\"\\u2AB7\",Pr:\"\\u2ABB\",pr:\"\\u227A\",prcue:\"\\u227C\",precapprox:\"\\u2AB7\",prec:\"\\u227A\",preccurlyeq:\"\\u227C\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",pre:\"\\u2AAF\",prE:\"\\u2AB3\",precsim:\"\\u227E\",prime:\"\\u2032\",Prime:\"\\u2033\",primes:\"\\u2119\",prnap:\"\\u2AB9\",prnE:\"\\u2AB5\",prnsim:\"\\u22E8\",prod:\"\\u220F\",Product:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",Proportional:\"\\u221D\",Proportion:\"\\u2237\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",Pscr:\"\\u{1D4AB}\",pscr:\"\\u{1D4C5}\",Psi:\"\\u03A8\",psi:\"\\u03C8\",puncsp:\"\\u2008\",Qfr:\"\\u{1D514}\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",Qopf:\"\\u211A\",qprime:\"\\u2057\",Qscr:\"\\u{1D4AC}\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quot:'\"',QUOT:'\"',rAarr:\"\\u21DB\",race:\"\\u223D\\u0331\",Racute:\"\\u0154\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",Rang:\"\\u27EB\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raquo:\"\\xBB\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarr:\"\\u2192\",Rarr:\"\\u21A0\",rArr:\"\\u21D2\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",Rarrtl:\"\\u2916\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",rAtail:\"\\u291C\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rBarr:\"\\u290F\",RBarr:\"\\u2910\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",Rcaron:\"\\u0158\",rcaron:\"\\u0159\",Rcedil:\"\\u0156\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",Rcy:\"\\u0420\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",Re:\"\\u211C\",rect:\"\\u25AD\",reg:\"\\xAE\",REG:\"\\xAE\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",Rfr:\"\\u211C\",rHar:\"\\u2964\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",Rho:\"\\u03A1\",rho:\"\\u03C1\",rhov:\"\\u03F1\",RightAngleBracket:\"\\u27E9\",RightArrowBar:\"\\u21E5\",rightarrow:\"\\u2192\",RightArrow:\"\\u2192\",Rightarrow:\"\\u21D2\",RightArrowLeftArrow:\"\\u21C4\",rightarrowtail:\"\\u21A3\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVectorBar:\"\\u2955\",RightDownVector:\"\\u21C2\",RightFloor:\"\\u230B\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",RightTeeArrow:\"\\u21A6\",RightTee:\"\\u22A2\",RightTeeVector:\"\\u295B\",rightthreetimes:\"\\u22CC\",RightTriangleBar:\"\\u29D0\",RightTriangle:\"\\u22B3\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVectorBar:\"\\u2954\",RightUpVector:\"\\u21BE\",RightVectorBar:\"\\u2953\",RightVector:\"\\u21C0\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoustache:\"\\u23B1\",rmoust:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",Ropf:\"\\u211D\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",RoundImplies:\"\\u2970\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",Rrightarrow:\"\\u21DB\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",Rscr:\"\\u211B\",rsh:\"\\u21B1\",Rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",RuleDelayed:\"\\u29F4\",ruluhar:\"\\u2968\",rx:\"\\u211E\",Sacute:\"\\u015A\",sacute:\"\\u015B\",sbquo:\"\\u201A\",scap:\"\\u2AB8\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Sc:\"\\u2ABC\",sc:\"\\u227B\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scE:\"\\u2AB4\",Scedil:\"\\u015E\",scedil:\"\\u015F\",Scirc:\"\\u015C\",scirc:\"\\u015D\",scnap:\"\\u2ABA\",scnE:\"\\u2AB6\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",Scy:\"\\u0421\",scy:\"\\u0441\",sdotb:\"\\u22A1\",sdot:\"\\u22C5\",sdote:\"\\u2A66\",searhk:\"\\u2925\",searr:\"\\u2198\",seArr:\"\\u21D8\",searrow:\"\\u2198\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",Sfr:\"\\u{1D516}\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",SHCHcy:\"\\u0429\",shchcy:\"\\u0449\",SHcy:\"\\u0428\",shcy:\"\\u0448\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",shy:\"\\xAD\",Sigma:\"\\u03A3\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",SmallCircle:\"\\u2218\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",SOFTcy:\"\\u042C\",softcy:\"\\u044C\",solbar:\"\\u233F\",solb:\"\\u29C4\",sol:\"/\",Sopf:\"\\u{1D54A}\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",Sqrt:\"\\u221A\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",square:\"\\u25A1\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",squarf:\"\\u25AA\",squ:\"\\u25A1\",squf:\"\\u25AA\",srarr:\"\\u2192\",Sscr:\"\\u{1D4AE}\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",Star:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",Sub:\"\\u22D0\",subdot:\"\\u2ABD\",subE:\"\\u2AC5\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",Subset:\"\\u22D0\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",SubsetEqual:\"\\u2286\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succapprox:\"\\u2AB8\",succ:\"\\u227B\",succcurlyeq:\"\\u227D\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",SuchThat:\"\\u220B\",sum:\"\\u2211\",Sum:\"\\u2211\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",sup:\"\\u2283\",Sup:\"\\u22D1\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supE:\"\\u2AC6\",supe:\"\\u2287\",supedot:\"\\u2AC4\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",Supset:\"\\u22D1\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swArr:\"\\u21D9\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szlig:\"\\xDF\",Tab:\"\t\",target:\"\\u2316\",Tau:\"\\u03A4\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",Tcaron:\"\\u0164\",tcaron:\"\\u0165\",Tcedil:\"\\u0162\",tcedil:\"\\u0163\",Tcy:\"\\u0422\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",Tfr:\"\\u{1D517}\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",Therefore:\"\\u2234\",Theta:\"\\u0398\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",THORN:\"\\xDE\",thorn:\"\\xFE\",tilde:\"\\u02DC\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",timesbar:\"\\u2A31\",timesb:\"\\u22A0\",times:\"\\xD7\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",top:\"\\u22A4\",Topf:\"\\u{1D54B}\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",TRADE:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",TripleDot:\"\\u20DB\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",Tscr:\"\\u{1D4AF}\",tscr:\"\\u{1D4C9}\",TScy:\"\\u0426\",tscy:\"\\u0446\",TSHcy:\"\\u040B\",tshcy:\"\\u045B\",Tstrok:\"\\u0166\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",Uacute:\"\\xDA\",uacute:\"\\xFA\",uarr:\"\\u2191\",Uarr:\"\\u219F\",uArr:\"\\u21D1\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",ubrcy:\"\\u045E\",Ubreve:\"\\u016C\",ubreve:\"\\u016D\",Ucirc:\"\\xDB\",ucirc:\"\\xFB\",Ucy:\"\\u0423\",ucy:\"\\u0443\",udarr:\"\\u21C5\",Udblac:\"\\u0170\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",Ufr:\"\\u{1D518}\",ufr:\"\\u{1D532}\",Ugrave:\"\\xD9\",ugrave:\"\\xF9\",uHar:\"\\u2963\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",Umacr:\"\\u016A\",umacr:\"\\u016B\",uml:\"\\xA8\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",uogon:\"\\u0173\",Uopf:\"\\u{1D54C}\",uopf:\"\\u{1D566}\",UpArrowBar:\"\\u2912\",uparrow:\"\\u2191\",UpArrow:\"\\u2191\",Uparrow:\"\\u21D1\",UpArrowDownArrow:\"\\u21C5\",updownarrow:\"\\u2195\",UpDownArrow:\"\\u2195\",Updownarrow:\"\\u21D5\",UpEquilibrium:\"\\u296E\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",upsi:\"\\u03C5\",Upsi:\"\\u03D2\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",upsilon:\"\\u03C5\",UpTeeArrow:\"\\u21A5\",UpTee:\"\\u22A5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",Uring:\"\\u016E\",uring:\"\\u016F\",urtri:\"\\u25F9\",Uscr:\"\\u{1D4B0}\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",Utilde:\"\\u0168\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",Uuml:\"\\xDC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",vArr:\"\\u21D5\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vBar:\"\\u2AE8\",Vbar:\"\\u2AEB\",vBarv:\"\\u2AE9\",Vcy:\"\\u0412\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vDash:\"\\u22A8\",Vdash:\"\\u22A9\",VDash:\"\\u22AB\",Vdashl:\"\\u2AE6\",veebar:\"\\u22BB\",vee:\"\\u2228\",Vee:\"\\u22C1\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",Verbar:\"\\u2016\",vert:\"|\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",Vopf:\"\\u{1D54D}\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",Vscr:\"\\u{1D4B1}\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",Vvdash:\"\\u22AA\",vzigzag:\"\\u299A\",Wcirc:\"\\u0174\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",Wedge:\"\\u22C0\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",Wfr:\"\\u{1D51A}\",wfr:\"\\u{1D534}\",Wopf:\"\\u{1D54E}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",Wscr:\"\\u{1D4B2}\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",Xfr:\"\\u{1D51B}\",xfr:\"\\u{1D535}\",xharr:\"\\u27F7\",xhArr:\"\\u27FA\",Xi:\"\\u039E\",xi:\"\\u03BE\",xlarr:\"\\u27F5\",xlArr:\"\\u27F8\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",Xopf:\"\\u{1D54F}\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrarr:\"\\u27F6\",xrArr:\"\\u27F9\",Xscr:\"\\u{1D4B3}\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",Yacute:\"\\xDD\",yacute:\"\\xFD\",YAcy:\"\\u042F\",yacy:\"\\u044F\",Ycirc:\"\\u0176\",ycirc:\"\\u0177\",Ycy:\"\\u042B\",ycy:\"\\u044B\",yen:\"\\xA5\",Yfr:\"\\u{1D51C}\",yfr:\"\\u{1D536}\",YIcy:\"\\u0407\",yicy:\"\\u0457\",Yopf:\"\\u{1D550}\",yopf:\"\\u{1D56A}\",Yscr:\"\\u{1D4B4}\",yscr:\"\\u{1D4CE}\",YUcy:\"\\u042E\",yucy:\"\\u044E\",yuml:\"\\xFF\",Yuml:\"\\u0178\",Zacute:\"\\u0179\",zacute:\"\\u017A\",Zcaron:\"\\u017D\",zcaron:\"\\u017E\",Zcy:\"\\u0417\",zcy:\"\\u0437\",Zdot:\"\\u017B\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",Zfr:\"\\u2128\",ZHcy:\"\\u0416\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},c=/^#[xX]([A-Fa-f0-9]+)$/,o=/^#([0-9]+)$/,e=/^([A-Za-z0-9]+)$/,r=function(){function E(v){this.named=v}return E.prototype.parse=function(v){if(!!v){var _=v.match(c);if(_)return String.fromCharCode(parseInt(_[1],16));if(_=v.match(o),_)return String.fromCharCode(parseInt(_[1],10));if(_=v.match(e),_)return this.named[_[1]]}},E}(),s=/[\\t\\n\\f ]/,p=/[A-Za-z]/,n=/\\r\\n?/g;function a(E){return s.test(E)}function u(E){return p.test(E)}function i(E){return E.replace(n,`\n`)}var l=function(){function E(v,_,y){y===void 0&&(y=\"precompile\"),this.delegate=v,this.entityParser=_,this.mode=y,this.state=\"beforeData\",this.line=-1,this.column=-1,this.input=\"\",this.index=-1,this.tagNameBuffer=\"\",this.states={beforeData:function(){var g=this.peek();if(g===\"<\"&&!this.isIgnoredEndTag())this.transitionTo(\"tagOpen\"),this.markTagStart(),this.consume();else{if(this.mode===\"precompile\"&&g===`\n`){var L=this.tagNameBuffer.toLowerCase();(L===\"pre\"||L===\"textarea\")&&this.consume()}this.transitionTo(\"data\"),this.delegate.beginData()}},data:function(){var g=this.peek(),L=this.tagNameBuffer;g===\"<\"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo(\"tagOpen\"),this.markTagStart(),this.consume()):g===\"&\"&&L!==\"script\"&&L!==\"style\"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||\"&\")):(this.consume(),this.delegate.appendToData(g))},tagOpen:function(){var g=this.consume();g===\"!\"?this.transitionTo(\"markupDeclarationOpen\"):g===\"/\"?this.transitionTo(\"endTagOpen\"):(g===\"@\"||g===\":\"||u(g))&&(this.transitionTo(\"tagName\"),this.tagNameBuffer=\"\",this.delegate.beginStartTag(),this.appendToTagName(g))},markupDeclarationOpen:function(){var g=this.consume();if(g===\"-\"&&this.peek()===\"-\")this.consume(),this.transitionTo(\"commentStart\"),this.delegate.beginComment();else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();L===\"DOCTYPE\"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo(\"doctype\"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var g=this.consume();a(g)&&this.transitionTo(\"beforeDoctypeName\")},beforeDoctypeName:function(){var g=this.consume();a(g)||(this.transitionTo(\"doctypeName\"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase()))},doctypeName:function(){var g=this.consume();a(g)?this.transitionTo(\"afterDoctypeName\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase())},afterDoctypeName:function(){var g=this.consume();if(!a(g))if(g===\">\")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\");else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),j=L.toUpperCase()===\"PUBLIC\",x=L.toUpperCase()===\"SYSTEM\";(j||x)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),j?this.transitionTo(\"afterDoctypePublicKeyword\"):x&&this.transitionTo(\"afterDoctypeSystemKeyword\")}},afterDoctypePublicKeyword:function(){var g=this.peek();a(g)?(this.transitionTo(\"beforeDoctypePublicIdentifier\"),this.consume()):g==='\"'?(this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"),this.consume()):g===\"'\"?(this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"),this.consume()):g===\">\"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\"))},doctypePublicIdentifierDoubleQuoted:function(){var g=this.consume();g==='\"'?this.transitionTo(\"afterDoctypePublicIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},doctypePublicIdentifierSingleQuoted:function(){var g=this.consume();g===\"'\"?this.transitionTo(\"afterDoctypePublicIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},afterDoctypePublicIdentifier:function(){var g=this.consume();a(g)?this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):g==='\"'?this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"):g===\"'\"&&this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\")},betweenDoctypePublicAndSystemIdentifiers:function(){var g=this.consume();a(g)||(g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):g==='\"'?this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"):g===\"'\"&&this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"))},doctypeSystemIdentifierDoubleQuoted:function(){var g=this.consume();g==='\"'?this.transitionTo(\"afterDoctypeSystemIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},doctypeSystemIdentifierSingleQuoted:function(){var g=this.consume();g===\"'\"?this.transitionTo(\"afterDoctypeSystemIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},afterDoctypeSystemIdentifier:function(){var g=this.consume();a(g)||g===\">\"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\"))},commentStart:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentStartDash\"):g===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(g),this.transitionTo(\"comment\"))},commentStartDash:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentEnd\"):g===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(\"-\"),this.transitionTo(\"comment\"))},comment:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentEndDash\"):this.delegate.appendToCommentData(g)},commentEndDash:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentEnd\"):(this.delegate.appendToCommentData(\"-\"+g),this.transitionTo(\"comment\"))},commentEnd:function(){var g=this.consume();g===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(\"--\"+g),this.transitionTo(\"comment\"))},tagName:function(){var g=this.consume();a(g)?this.transitionTo(\"beforeAttributeName\"):g===\"/\"?this.transitionTo(\"selfClosingStartTag\"):g===\">\"?(this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.appendToTagName(g)},endTagName:function(){var g=this.consume();a(g)?(this.transitionTo(\"beforeAttributeName\"),this.tagNameBuffer=\"\"):g===\"/\"?(this.transitionTo(\"selfClosingStartTag\"),this.tagNameBuffer=\"\"):g===\">\"?(this.delegate.finishTag(),this.transitionTo(\"beforeData\"),this.tagNameBuffer=\"\"):this.appendToTagName(g)},beforeAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g===\"/\"?(this.transitionTo(\"selfClosingStartTag\"),this.consume()):g===\">\"?(this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):g===\"=\"?(this.delegate.reportSyntaxError(\"attribute name cannot start with equals sign\"),this.transitionTo(\"attributeName\"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g)):(this.transitionTo(\"attributeName\"),this.delegate.beginAttribute())},attributeName:function(){var g=this.peek();a(g)?(this.transitionTo(\"afterAttributeName\"),this.consume()):g===\"/\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\"=\"?(this.transitionTo(\"beforeAttributeValue\"),this.consume()):g===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):g==='\"'||g===\"'\"||g===\"<\"?(this.delegate.reportSyntaxError(g+\" is not a valid character within attribute names\"),this.consume(),this.delegate.appendToAttributeName(g)):(this.consume(),this.delegate.appendToAttributeName(g))},afterAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g===\"/\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\"=\"?(this.consume(),this.transitionTo(\"beforeAttributeValue\")):g===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo(\"attributeName\"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g))},beforeAttributeValue:function(){var g=this.peek();a(g)?this.consume():g==='\"'?(this.transitionTo(\"attributeValueDoubleQuoted\"),this.delegate.beginAttributeValue(!0),this.consume()):g===\"'\"?(this.transitionTo(\"attributeValueSingleQuoted\"),this.delegate.beginAttributeValue(!0),this.consume()):g===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.transitionTo(\"attributeValueUnquoted\"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(g))},attributeValueDoubleQuoted:function(){var g=this.consume();g==='\"'?(this.delegate.finishAttributeValue(),this.transitionTo(\"afterAttributeValueQuoted\")):g===\"&\"?this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\"):this.delegate.appendToAttributeValue(g)},attributeValueSingleQuoted:function(){var g=this.consume();g===\"'\"?(this.delegate.finishAttributeValue(),this.transitionTo(\"afterAttributeValueQuoted\")):g===\"&\"?this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\"):this.delegate.appendToAttributeValue(g)},attributeValueUnquoted:function(){var g=this.peek();a(g)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"beforeAttributeName\")):g===\"/\"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\"&\"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\")):g===\">\"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.consume(),this.delegate.appendToAttributeValue(g))},afterAttributeValueQuoted:function(){var g=this.peek();a(g)?(this.consume(),this.transitionTo(\"beforeAttributeName\")):g===\"/\"?(this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\">\"?(this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.transitionTo(\"beforeAttributeName\")},selfClosingStartTag:function(){var g=this.peek();g===\">\"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.transitionTo(\"beforeAttributeName\")},endTagOpen:function(){var g=this.consume();(g===\"@\"||g===\":\"||u(g))&&(this.transitionTo(\"endTagName\"),this.tagNameBuffer=\"\",this.delegate.beginEndTag(),this.appendToTagName(g))}},this.reset()}return E.prototype.reset=function(){this.transitionTo(\"beforeData\"),this.input=\"\",this.tagNameBuffer=\"\",this.index=0,this.line=1,this.column=0,this.delegate.reset()},E.prototype.transitionTo=function(v){this.state=v},E.prototype.tokenize=function(v){this.reset(),this.tokenizePart(v),this.tokenizeEOF()},E.prototype.tokenizePart=function(v){for(this.input+=i(v);this.index\"||v===\"style\"&&this.input.substring(this.index,this.index+8)!==\"\"||v===\"script\"&&this.input.substring(this.index,this.index+9)!==\"<\\/script>\"},E}(),b=function(){function E(v,_){_===void 0&&(_={}),this.options=_,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new l(this,v,_.mode),this._currentAttribute=void 0}return E.prototype.tokenize=function(v){return this.tokens=[],this.tokenizer.tokenize(v),this.tokens},E.prototype.tokenizePart=function(v){return this.tokens=[],this.tokenizer.tokenizePart(v),this.tokens},E.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},E.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},E.prototype.current=function(){var v=this.token;if(v===null)throw new Error(\"token was unexpectedly null\");if(arguments.length===0)return v;for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:{entityEncoding:\"transformed\"};return c?new f.default(o).print(c):\"\"}}}),he=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/syntax-error.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.generateSyntaxError=f;function f(h,d){let{module:c,loc:o}=d,{line:e,column:r}=o.start,s=d.asString(),p=s?`\n\n|\n| `.concat(s.split(`\n`).join(`\n| `),`\n|\n\n`):\"\",n=new Error(\"\".concat(h,\": \").concat(p,\"(error occurred in '\").concat(c,\"' @ line \").concat(e,\" : column \").concat(r,\")\"));return n.name=\"SyntaxError\",n.location=d,n.code=s,n}}}),Rt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/visitor-keys.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=X(),h={Program:(0,f.tuple)(\"body\"),Template:(0,f.tuple)(\"body\"),Block:(0,f.tuple)(\"body\"),MustacheStatement:(0,f.tuple)(\"path\",\"params\",\"hash\"),BlockStatement:(0,f.tuple)(\"path\",\"params\",\"hash\",\"program\",\"inverse\"),ElementModifierStatement:(0,f.tuple)(\"path\",\"params\",\"hash\"),PartialStatement:(0,f.tuple)(\"name\",\"params\",\"hash\"),CommentStatement:(0,f.tuple)(),MustacheCommentStatement:(0,f.tuple)(),ElementNode:(0,f.tuple)(\"attributes\",\"modifiers\",\"children\",\"comments\"),AttrNode:(0,f.tuple)(\"value\"),TextNode:(0,f.tuple)(),ConcatStatement:(0,f.tuple)(\"parts\"),SubExpression:(0,f.tuple)(\"path\",\"params\",\"hash\"),PathExpression:(0,f.tuple)(),PathHead:(0,f.tuple)(),StringLiteral:(0,f.tuple)(),BooleanLiteral:(0,f.tuple)(),NumberLiteral:(0,f.tuple)(),NullLiteral:(0,f.tuple)(),UndefinedLiteral:(0,f.tuple)(),Hash:(0,f.tuple)(\"pairs\"),HashPair:(0,f.tuple)(\"value\"),NamedBlock:(0,f.tuple)(\"attributes\",\"modifiers\",\"children\",\"comments\"),SimpleElement:(0,f.tuple)(\"attributes\",\"modifiers\",\"children\",\"comments\"),Component:(0,f.tuple)(\"head\",\"attributes\",\"modifiers\",\"children\",\"comments\")},d=h;t.default=d}}),Ye=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/errors.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.cannotRemoveNode=d,t.cannotReplaceNode=c,t.cannotReplaceOrRemoveInKeyHandlerYet=o,t.default=void 0;var f=function(){e.prototype=Object.create(Error.prototype),e.prototype.constructor=e;function e(r,s,p,n){let a=Error.call(this,r);this.key=n,this.message=r,this.node=s,this.parent=p,this.stack=a.stack}return e}(),h=f;t.default=h;function d(e,r,s){return new f(\"Cannot remove a node unless it is part of an array\",e,r,s)}function c(e,r,s){return new f(\"Cannot replace a node with multiple nodes unless it is part of an array\",e,r,s)}function o(e,r){return new f(\"Replacing and removing in key handlers is not yet supported.\",e,null,r)}}}),Qe=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/path.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=class{constructor(d){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.node=d,this.parent=c,this.parentKey=o}get parentNode(){return this.parent?this.parent.node:null}parents(){return{[Symbol.iterator]:()=>new h(this)}}};t.default=f;var h=class{constructor(d){this.path=d}next(){return this.path.parent?(this.path=this.path.parent,{done:!1,value:this.path}):{done:!0,value:null}}}}}),Ne=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/traverse.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=E;var f=X(),h=o(Rt()),d=Ye(),c=o(Qe());function o(v){return v&&v.__esModule?v:{default:v}}function e(v){return typeof v==\"function\"?v:v.enter}function r(v){if(typeof v!=\"function\")return v.exit}function s(v,_){let y=typeof v!=\"function\"?v.keys:void 0;if(y===void 0)return;let g=y[_];return g!==void 0?g:y.All}function p(v,_){if((_===\"Template\"||_===\"Block\")&&v.Program)return v.Program;let y=v[_];return y!==void 0?y:v.All}function n(v,_){let{node:y,parent:g,parentKey:L}=_,j=p(v,y.type),x,w;j!==void 0&&(x=e(j),w=r(j));let H;if(x!==void 0&&(H=x(y,_)),H!=null)if(JSON.stringify(y)===JSON.stringify(H))H=void 0;else{if(Array.isArray(H))return l(v,H,g,L),H;{let m=new c.default(H,g,L);return n(v,m)||H}}if(H===void 0){let m=h.default[y.type];for(let C=0;C@\\[-\\^`\\{-~]/;function d(a){let u=c(a);u&&(a.blockParams=u)}function c(a){let u=a.attributes.length,i=[];for(let b=0;b0&&i[i.length-1].charAt(0)===\"|\")throw(0,f.generateSyntaxError)(\"Block parameters must be preceded by the `as` keyword, detected block parameters without `as`\",a.loc);if(l!==-1&&u>l&&i[l+1].charAt(0)===\"|\"){let b=i.slice(l).join(\" \");if(b.charAt(b.length-1)!==\"|\"||b.match(/\\|/g).length!==2)throw(0,f.generateSyntaxError)(\"Invalid block parameters syntax, '\"+b+\"'\",a.loc);let P=[];for(let E=l+1;E1&&arguments[1]!==void 0?arguments[1]:new h.EntityParser(h.HTML5NamedCharRefs),e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"precompile\";this.elementStack=[],this.currentAttribute=null,this.currentNode=null,this.source=c,this.lines=c.source.split(/(?:\\r\\n?|\\n)/g),this.tokenizer=new h.EventedTokenizer(this,o,e)}offset(){let{line:c,column:o}=this.tokenizer;return this.source.offsetFor(c,o)}pos(c){let{line:o,column:e}=c;return this.source.offsetFor(o,e)}finish(c){return(0,f.assign)({},c,{loc:c.loc.until(this.offset())})}get currentAttr(){return this.currentAttribute}get currentTag(){return this.currentNode}get currentStartTag(){return this.currentNode}get currentEndTag(){return this.currentNode}get currentComment(){return this.currentNode}get currentData(){return this.currentNode}acceptTemplate(c){return this[c.type](c)}acceptNode(c){return this[c.type](c)}currentElement(){return this.elementStack[this.elementStack.length-1]}sourceForNode(c,o){let e=c.loc.start.line-1,r=e-1,s=c.loc.start.column,p=[],n,a,u;for(o?(a=o.loc.end.line-1,u=o.loc.end.column):(a=c.loc.end.line-1,u=c.loc.end.column);ri.acceptNode(_)):[],E=P.length>0?P[P.length-1].loc:b.loc,v=l.hash?i.Hash(l.hash):{type:\"Hash\",pairs:[],loc:i.source.spanFor(E).collapse(\"end\")};return{path:b,params:P,hash:v}}function u(i,l){let{path:b,params:P,hash:E,loc:v}=l;if((0,c.isHBSLiteral)(b)){let y=\"{{\".concat((0,c.printLiteral)(b),\"}}\"),g=\"<\".concat(i.name,\" ... \").concat(y,\" ...\");throw(0,d.generateSyntaxError)(\"In \".concat(g,\", \").concat(y,\" is not a valid modifier\"),l.loc)}let _=e.default.elementModifier({path:b,params:P,hash:E,loc:v});i.modifiers.push(_)}}}),Fe=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/parser/tokenizer-event-handlers.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.preprocess=_,t.TokenizerEventHandlers=void 0;var f=X(),h=It(),d=Ke(),c=b(We()),o=Te(),e=De(),r=ue(),s=he(),p=b(Ne()),n=b(Je()),a=ye(),u=b(Le()),i=b(ke()),l=xt();function b(y){return y&&y.__esModule?y:{default:y}}var P=class extends l.HandlebarsNodeVisitors{constructor(){super(...arguments),this.tagOpenLine=0,this.tagOpenColumn=0}reset(){this.currentNode=null}beginComment(){this.currentNode=u.default.comment(\"\",this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn))}appendToCommentData(y){this.currentComment.value+=y}finishComment(){(0,a.appendChild)(this.currentElement(),this.finish(this.currentComment))}beginData(){this.currentNode=u.default.text({chars:\"\",loc:this.offset().collapsed()})}appendToData(y){this.currentData.chars+=y}finishData(){this.currentData.loc=this.currentData.loc.withEnd(this.offset()),(0,a.appendChild)(this.currentElement(),this.currentData)}tagOpen(){this.tagOpenLine=this.tokenizer.line,this.tagOpenColumn=this.tokenizer.column}beginStartTag(){this.currentNode={type:\"StartTag\",name:\"\",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}beginEndTag(){this.currentNode={type:\"EndTag\",name:\"\",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}finishTag(){let y=this.finish(this.currentTag);if(y.type===\"StartTag\"){if(this.finishStartTag(),y.name===\":\")throw(0,s.generateSyntaxError)(\"Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter\",this.source.spanFor({start:this.currentTag.loc.toJSON(),end:this.offset().toJSON()}));(o.voidMap[y.name]||y.selfClosing)&&this.finishEndTag(!0)}else y.type===\"EndTag\"&&this.finishEndTag(!1)}finishStartTag(){let{name:y,attributes:g,modifiers:L,comments:j,selfClosing:x,loc:w}=this.finish(this.currentStartTag),H=u.default.element({tag:y,selfClosing:x,attrs:g,modifiers:L,comments:j,children:[],blockParams:[],loc:w});this.elementStack.push(H)}finishEndTag(y){let g=this.finish(this.currentTag),L=this.elementStack.pop(),j=this.currentElement();this.validateEndTag(g,L,y),L.loc=L.loc.withEnd(this.offset()),(0,a.parseElementBlockParams)(L),(0,a.appendChild)(j,L)}markTagAsSelfClosing(){this.currentTag.selfClosing=!0}appendToTagName(y){this.currentTag.name+=y}beginAttribute(){let y=this.offset();this.currentAttribute={name:\"\",parts:[],currentPart:null,isQuoted:!1,isDynamic:!1,start:y,valueSpan:y.collapsed()}}appendToAttributeName(y){this.currentAttr.name+=y}beginAttributeValue(y){this.currentAttr.isQuoted=y,this.startTextPart(),this.currentAttr.valueSpan=this.offset().collapsed()}appendToAttributeValue(y){let g=this.currentAttr.parts,L=g[g.length-1],j=this.currentAttr.currentPart;if(j)j.chars+=y,j.loc=j.loc.withEnd(this.offset());else{let x=this.offset();y===`\n`?x=L?L.loc.getEnd():this.currentAttr.valueSpan.getStart():x=x.move(-1),this.currentAttr.currentPart=u.default.text({chars:y,loc:x.collapsed()})}}finishAttributeValue(){this.finalizeTextPart();let y=this.currentTag,g=this.offset();if(y.type===\"EndTag\")throw(0,s.generateSyntaxError)(\"Invalid end tag: closing tag must not have attributes\",this.source.spanFor({start:y.loc.toJSON(),end:g.toJSON()}));let{name:L,parts:j,start:x,isQuoted:w,isDynamic:H,valueSpan:m}=this.currentAttr,C=this.assembleAttributeValue(j,w,H,x.until(g));C.loc=m.withEnd(g);let S=u.default.attr({name:L,value:C,loc:x.until(g)});this.currentStartTag.attributes.push(S)}reportSyntaxError(y){throw(0,s.generateSyntaxError)(y,this.offset().collapsed())}assembleConcatenatedValue(y){for(let j=0;j elements do not need end tags. You should remove it\"):g.tag===void 0?j=\"Closing tag without an open tag\"):g.tag!==y.name&&(j=\"Closing tag did not match last open tag <\").concat(g.tag,\"> (on line \").concat(g.loc.startPosition.line,\")\")),j)throw(0,s.generateSyntaxError)(j,y.loc)}assembleAttributeValue(y,g,L,j){if(L){if(g)return this.assembleConcatenatedValue(y);if(y.length===1||y.length===2&&y[1].type===\"TextNode\"&&y[1].chars===\"/\")return y[0];throw(0,s.generateSyntaxError)(\"An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'\",j)}else return y.length>0?y[0]:u.default.text({chars:\"\",loc:j})}};t.TokenizerEventHandlers=P;var E={parse:_,builders:i.default,print:c.default,traverse:p.default,Walker:n.default},v=class extends d.EntityParser{constructor(){super({})}parse(){}};function _(y){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var L,j,x;let w=g.mode||\"precompile\",H,m;typeof y==\"string\"?(H=new e.Source(y,(L=g.meta)===null||L===void 0?void 0:L.moduleName),w===\"codemod\"?m=(0,h.parseWithoutProcessing)(y,g.parseOptions):m=(0,h.parse)(y,g.parseOptions)):y instanceof e.Source?(H=y,w===\"codemod\"?m=(0,h.parseWithoutProcessing)(y.source,g.parseOptions):m=(0,h.parse)(y.source,g.parseOptions)):(H=new e.Source(\"\",(j=g.meta)===null||j===void 0?void 0:j.moduleName),m=y);let C;w===\"codemod\"&&(C=new v);let S=r.SourceSpan.forCharPositions(H,0,H.source.length);m.loc={source:\"(program)\",start:S.startPosition,end:S.endPosition};let R=new P(H,C,w).acceptTemplate(m);if(g.strictMode&&(R.blockParams=(x=g.locals)!==null&&x!==void 0?x:[]),g&&g.plugins&&g.plugins.ast)for(let M=0,V=g.plugins.ast.length;Mthis.allocate(s));return new o(this,e,r)}};t.SymbolTable=d;var c=class extends d{constructor(e,r){super(),this.templateLocals=e,this.customizeComponentName=r,this.symbols=[],this.upvars=[],this.size=1,this.named=(0,f.dict)(),this.blocks=(0,f.dict)(),this.usedTemplateLocals=[],this._hasEval=!1}getUsedTemplateLocals(){return this.usedTemplateLocals}setHasEval(){this._hasEval=!0}get hasEval(){return this._hasEval}has(e){return this.templateLocals.indexOf(e)!==-1}get(e){let r=this.usedTemplateLocals.indexOf(e);return r!==-1?[r,!0]:(r=this.usedTemplateLocals.length,this.usedTemplateLocals.push(e),[r,!0])}getLocalsMap(){return(0,f.dict)()}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}allocateFree(e,r){r.resolution()===39&&r.isAngleBracket&&(0,h.isUpperCase)(e)&&(e=this.customizeComponentName(e));let s=this.upvars.indexOf(e);return s!==-1||(s=this.upvars.length,this.upvars.push(e)),s}allocateNamed(e){let r=this.named[e];return r||(r=this.named[e]=this.allocate(e)),r}allocateBlock(e){e===\"inverse\"&&(e=\"else\");let r=this.blocks[e];return r||(r=this.blocks[e]=this.allocate(\"&\".concat(e))),r}allocate(e){return this.symbols.push(e),this.size++}};t.ProgramSymbolTable=c;var o=class extends d{constructor(e,r,s){super(),this.parent=e,this.symbols=r,this.slots=s}get locals(){return this.symbols}has(e){return this.symbols.indexOf(e)!==-1||this.parent.has(e)}get(e){let r=this.symbols.indexOf(e);return r===-1?this.parent.get(e):[this.slots[r],!1]}getLocalsMap(){let e=this.parent.getLocalsMap();return this.symbols.forEach(r=>e[r]=this.get(r)[0]),e}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}setHasEval(){this.parent.setHasEval()}allocateFree(e,r){return this.parent.allocateFree(e,r)}allocateNamed(e){return this.parent.allocateNamed(e)}allocateBlock(e){return this.parent.allocateBlock(e)}allocate(e){return this.parent.allocate(e)}};t.BlockSymbolTable=o}}),jt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/builders.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.BuildElement=t.Builder=void 0;var f=X(),h=le(),d=ce(),c=e(ve());function o(){if(typeof WeakMap!=\"function\")return null;var n=new WeakMap;return o=function(){return n},n}function e(n){if(n&&n.__esModule)return n;if(n===null||typeof n!=\"object\"&&typeof n!=\"function\")return{default:n};var a=o();if(a&&a.has(n))return a.get(n);var u={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if(Object.prototype.hasOwnProperty.call(n,l)){var b=i?Object.getOwnPropertyDescriptor(n,l):null;b&&(b.get||b.set)?Object.defineProperty(u,l,b):u[l]=n[l]}return u.default=n,a&&a.set(n,u),u}var r=function(n,a){var u={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&a.indexOf(i)<0&&(u[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var l=0,i=Object.getOwnPropertySymbols(n);l0||i.hash.pairs.length>0}}}),Ht=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/normalize.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.normalize=P,t.BlockContext=void 0;var f=X(),h=b(Te()),d=Fe(),c=le(),o=ce(),e=Xe(),r=he(),s=ye(),p=b(Le()),n=l(ve()),a=jt(),u=Mt();function i(){if(typeof WeakMap!=\"function\")return null;var m=new WeakMap;return i=function(){return m},m}function l(m){if(m&&m.__esModule)return m;if(m===null||typeof m!=\"object\"&&typeof m!=\"function\")return{default:m};var C=i();if(C&&C.has(m))return C.get(m);var S={},R=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var M in m)if(Object.prototype.hasOwnProperty.call(m,M)){var V=R?Object.getOwnPropertyDescriptor(m,M):null;V&&(V.get||V.set)?Object.defineProperty(S,M,V):S[M]=m[M]}return S.default=m,C&&C.set(m,S),S}function b(m){return m&&m.__esModule?m:{default:m}}function P(m){let C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var S;let R=(0,d.preprocess)(m,C),M=(0,f.assign)({strictMode:!1,locals:[]},C),V=e.SymbolTable.top(M.locals,(S=C.customizeComponentName)!==null&&S!==void 0?S:W=>W),G=new E(m,M,V),K=new _(G),U=new L(G.loc(R.loc),R.body.map(W=>K.normalize(W)),G).assertTemplate(V),Z=V.getUsedTemplateLocals();return[U,Z]}var E=class{constructor(m,C,S){this.source=m,this.options=C,this.table=S,this.builder=new a.Builder}get strict(){return this.options.strictMode||!1}loc(m){return this.source.spanFor(m)}resolutionFor(m,C){if(this.strict)return{resolution:n.STRICT_RESOLUTION};if(this.isFreeVar(m)){let S=C(m);return S===null?{resolution:\"error\",path:w(m),head:H(m)}:{resolution:S}}else return{resolution:n.STRICT_RESOLUTION}}isFreeVar(m){return m.type===\"PathExpression\"?m.head.type!==\"VarHead\"?!1:!this.table.has(m.head.name):m.path.type===\"PathExpression\"?this.isFreeVar(m.path):!1}hasBinding(m){return this.table.has(m)}child(m){return new E(this.source,this.options,this.table.child(m))}customizeComponentName(m){return this.options.customizeComponentName?this.options.customizeComponentName(m):m}};t.BlockContext=E;var v=class{constructor(m){this.block=m}normalize(m,C){switch(m.type){case\"NullLiteral\":case\"BooleanLiteral\":case\"NumberLiteral\":case\"StringLiteral\":case\"UndefinedLiteral\":return this.block.builder.literal(m.value,this.block.loc(m.loc));case\"PathExpression\":return this.path(m,C);case\"SubExpression\":{let S=this.block.resolutionFor(m,u.SexpSyntaxContext);if(S.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`\".concat(S.path,\"`) but \").concat(S.head,\" was not in scope\"),m.loc);return this.block.builder.sexp(this.callParts(m,S.resolution),this.block.loc(m.loc))}}}path(m,C){let S=this.block.loc(m.head.loc),R=[],M=S;for(let V of m.tail)M=M.sliceStartChars({chars:V.length,skipStart:1}),R.push(new c.SourceSlice({loc:M,chars:V}));return this.block.builder.path(this.ref(m.head,C),R,this.block.loc(m.loc))}callParts(m,C){let{path:S,params:R,hash:M}=m,V=this.normalize(S,C),G=R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K=o.SpanList.range(G,V.loc.collapse(\"end\")),U=this.block.loc(M.loc),Z=o.SpanList.range([K,U]),W=this.block.builder.positional(R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K),T=this.block.builder.named(M.pairs.map(N=>this.namedArgument(N)),this.block.loc(M.loc));return{callee:V,args:this.block.builder.args(W,T,Z)}}namedArgument(m){let S=this.block.loc(m.loc).sliceStartChars({chars:m.key.length});return this.block.builder.namedArgument(new c.SourceSlice({chars:m.key,loc:S}),this.normalize(m.value,n.ARGUMENT_RESOLUTION))}ref(m,C){let{block:S}=this,{builder:R,table:M}=S,V=S.loc(m.loc);switch(m.type){case\"ThisHead\":return R.self(V);case\"AtHead\":{let G=M.allocateNamed(m.name);return R.at(m.name,G,V)}case\"VarHead\":if(S.hasBinding(m.name)){let[G,K]=M.get(m.name);return S.builder.localVar(m.name,G,K,V)}else{let G=S.strict?n.STRICT_RESOLUTION:C,K=S.table.allocateFree(m.name,G);return S.builder.freeVar({name:m.name,context:G,symbol:K,loc:V})}}}},_=class{constructor(m){this.block=m}normalize(m){switch(m.type){case\"PartialStatement\":throw new Error(\"Handlebars partial syntax ({{> ...}}) is not allowed in Glimmer\");case\"BlockStatement\":return this.BlockStatement(m);case\"ElementNode\":return new y(this.block).ElementNode(m);case\"MustacheStatement\":return this.MustacheStatement(m);case\"MustacheCommentStatement\":return this.MustacheCommentStatement(m);case\"CommentStatement\":{let C=this.block.loc(m.loc);return new n.HtmlComment({loc:C,text:C.slice({skipStart:4,skipEnd:3}).toSlice(m.value)})}case\"TextNode\":return new n.HtmlText({loc:this.block.loc(m.loc),chars:m.chars})}}MustacheCommentStatement(m){let C=this.block.loc(m.loc),S;return C.asString().slice(0,5)===\"{{!--\"?S=C.slice({skipStart:5,skipEnd:4}):S=C.slice({skipStart:3,skipEnd:2}),new n.GlimmerComment({loc:C,text:S.toSlice(m.value)})}MustacheStatement(m){let{escaped:C}=m,S=this.block.loc(m.loc),R=this.expr.callParts({path:m.path,params:m.params,hash:m.hash},(0,u.AppendSyntaxContext)(m)),M=R.args.isEmpty()?R.callee:this.block.builder.sexp(R,S);return this.block.builder.append({table:this.block.table,trusting:!C,value:M},S)}BlockStatement(m){let{program:C,inverse:S}=m,R=this.block.loc(m.loc),M=this.block.resolutionFor(m,u.BlockSyntaxContext);if(M.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`{{#\".concat(M.path,\"}}`) but \").concat(M.head,\" was not in scope\"),R);let V=this.expr.callParts(m,M.resolution);return this.block.builder.blockStatement((0,f.assign)({symbols:this.block.table,program:this.Block(C),inverse:S?this.Block(S):null},V),R)}Block(m){let{body:C,loc:S,blockParams:R}=m,M=this.block.child(R),V=new _(M);return new j(this.block.loc(S),C.map(G=>V.normalize(G)),this.block).assertBlock(M.table)}get expr(){return new v(this.block)}},y=class{constructor(m){this.ctx=m}ElementNode(m){let{tag:C,selfClosing:S,comments:R}=m,M=this.ctx.loc(m.loc),[V,...G]=C.split(\".\"),K=this.classifyTag(V,G,m.loc),U=m.attributes.filter(A=>A.name[0]!==\"@\").map(A=>this.attr(A)),Z=m.attributes.filter(A=>A.name[0]===\"@\").map(A=>this.arg(A)),W=m.modifiers.map(A=>this.modifier(A)),T=this.ctx.child(m.blockParams),N=new _(T),k=m.children.map(A=>N.normalize(A)),B=this.ctx.builder.element({selfClosing:S,attrs:U,componentArgs:Z,modifiers:W,comments:R.map(A=>new _(this.ctx).MustacheCommentStatement(A))}),O=new x(B,M,k,this.ctx),z=this.ctx.loc(m.loc).sliceStartChars({chars:C.length,skipStart:1});if(K===\"ElementHead\")return C[0]===\":\"?O.assertNamedBlock(z.slice({skipStart:1}).toSlice(C.slice(1)),T.table):O.assertElement(z.toSlice(C),m.blockParams.length>0);if(m.selfClosing)return B.selfClosingComponent(K,M);{let A=O.assertComponent(C,T.table,m.blockParams.length>0);return B.componentWithNamedBlocks(K,A,M)}}modifier(m){let C=this.ctx.resolutionFor(m,u.ModifierSyntaxContext);if(C.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`{{#\".concat(C.path,\"}}`) as a modifier, but \").concat(C.head,\" was not in scope. Try adding `this` to the beginning of the path\"),m.loc);let S=this.expr.callParts(m,C.resolution);return this.ctx.builder.modifier(S,this.ctx.loc(m.loc))}mustacheAttr(m){let C=this.ctx.builder.sexp(this.expr.callParts(m,(0,u.AttrValueSyntaxContext)(m)),this.ctx.loc(m.loc));return C.args.isEmpty()?C.callee:C}attrPart(m){switch(m.type){case\"MustacheStatement\":return{expr:this.mustacheAttr(m),trusting:!m.escaped};case\"TextNode\":return{expr:this.ctx.builder.literal(m.chars,this.ctx.loc(m.loc)),trusting:!0}}}attrValue(m){switch(m.type){case\"ConcatStatement\":{let C=m.parts.map(S=>this.attrPart(S).expr);return{expr:this.ctx.builder.interpolate(C,this.ctx.loc(m.loc)),trusting:!1}}default:return this.attrPart(m)}}attr(m){if(m.name===\"...attributes\")return this.ctx.builder.splatAttr(this.ctx.table.allocateBlock(\"attrs\"),this.ctx.loc(m.loc));let C=this.ctx.loc(m.loc),S=C.sliceStartChars({chars:m.name.length}).toSlice(m.name),R=this.attrValue(m.value);return this.ctx.builder.attr({name:S,value:R.expr,trusting:R.trusting},C)}maybeDeprecatedCall(m,C){if(this.ctx.strict||C.type!==\"MustacheStatement\")return null;let{path:S}=C;if(S.type!==\"PathExpression\"||S.head.type!==\"VarHead\")return null;let{name:R}=S.head;if(R===\"has-block\"||R===\"has-block-params\"||this.ctx.hasBinding(R)||S.tail.length!==0||C.params.length!==0||C.hash.pairs.length!==0)return null;let M=n.LooseModeResolution.attr(),V=this.ctx.builder.freeVar({name:R,context:M,symbol:this.ctx.table.allocateFree(R,M),loc:S.loc});return{expr:this.ctx.builder.deprecatedCall(m,V,C.loc),trusting:!1}}arg(m){let C=this.ctx.loc(m.loc),S=C.sliceStartChars({chars:m.name.length}).toSlice(m.name),R=this.maybeDeprecatedCall(S,m.value)||this.attrValue(m.value);return this.ctx.builder.arg({name:S,value:R.expr,trusting:R.trusting},C)}classifyTag(m,C,S){let R=(0,s.isUpperCase)(m),M=m[0]===\"@\"||m===\"this\"||this.ctx.hasBinding(m);if(this.ctx.strict&&!M){if(R)throw(0,r.generateSyntaxError)(\"Attempted to invoke a component that was not in scope in a strict mode template, `<\".concat(m,\">`. If you wanted to create an element with that name, convert it to lowercase - `<\").concat(m.toLowerCase(),\">`\"),S);return\"ElementHead\"}let V=M||R,G=S.sliceStartChars({skipStart:1,chars:m.length}),K=C.reduce((W,T)=>W+1+T.length,0),U=G.getEnd().move(K),Z=G.withEnd(U);if(V){let W=p.default.path({head:p.default.head(m,G),tail:C,loc:Z}),T=this.ctx.resolutionFor(W,u.ComponentSyntaxContext);if(T.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`<\".concat(T.path,\">`) but \").concat(T.head,\" was not in scope\"),S);return new v(this.ctx).normalize(W,T.resolution)}if(C.length>0)throw(0,r.generateSyntaxError)(\"You used \".concat(m,\".\").concat(C.join(\".\"),\" as a tag name, but \").concat(m,\" is not in scope\"),S);return\"ElementHead\"}get expr(){return new v(this.ctx)}},g=class{constructor(m,C,S){this.loc=m,this.children=C,this.block=S,this.namedBlocks=C.filter(R=>R instanceof n.NamedBlock),this.hasSemanticContent=Boolean(C.filter(R=>{if(R instanceof n.NamedBlock)return!1;switch(R.type){case\"GlimmerComment\":case\"HtmlComment\":return!1;case\"HtmlText\":return!/^\\s*$/.exec(R.chars);default:return!0}}).length),this.nonBlockChildren=C.filter(R=>!(R instanceof n.NamedBlock))}},L=class extends g{assertTemplate(m){if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)(\"Unexpected named block at the top-level of a template\",this.loc);return this.block.builder.template(m,this.nonBlockChildren,this.block.loc(this.loc))}},j=class extends g{assertBlock(m){if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)(\"Unexpected named block nested in a normal block\",this.loc);return this.block.builder.block(m,this.nonBlockChildren,this.loc)}},x=class extends g{constructor(m,C,S,R){super(C,S,R),this.el=m}assertNamedBlock(m,C){if(this.el.base.selfClosing)throw(0,r.generateSyntaxError)(\"<:\".concat(m.chars,\"/> is not a valid named block: named blocks cannot be self-closing\"),this.loc);if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)(\"Unexpected named block inside <:\".concat(m.chars,\"> named block: named blocks cannot contain nested named blocks\"),this.loc);if(!(0,s.isLowerCase)(m.chars))throw(0,r.generateSyntaxError)(\"<:\".concat(m.chars,\"> is not a valid named block, and named blocks must begin with a lowercase letter\"),this.loc);if(this.el.base.attrs.length>0||this.el.base.componentArgs.length>0||this.el.base.modifiers.length>0)throw(0,r.generateSyntaxError)(\"named block <:\".concat(m.chars,\"> cannot have attributes, arguments, or modifiers\"),this.loc);let S=o.SpanList.range(this.nonBlockChildren,this.loc);return this.block.builder.namedBlock(m,this.block.builder.block(C,this.nonBlockChildren,S),this.loc)}assertElement(m,C){if(C)throw(0,r.generateSyntaxError)(\"Unexpected block params in <\".concat(m,\">: simple elements cannot have block params\"),this.loc);if((0,f.isPresent)(this.namedBlocks)){let S=this.namedBlocks.map(R=>R.name);if(S.length===1)throw(0,r.generateSyntaxError)(\"Unexpected named block <:foo> inside <\".concat(m.chars,\"> HTML element\"),this.loc);{let R=S.map(M=>\"<:\".concat(M.chars,\">\")).join(\", \");throw(0,r.generateSyntaxError)(\"Unexpected named blocks inside <\".concat(m.chars,\"> HTML element (\").concat(R,\")\"),this.loc)}}return this.el.simple(m,this.nonBlockChildren,this.loc)}assertComponent(m,C,S){if((0,f.isPresent)(this.namedBlocks)&&this.hasSemanticContent)throw(0,r.generateSyntaxError)(\"Unexpected content inside <\".concat(m,\"> component invocation: when using named blocks, the tag cannot contain other content\"),this.loc);if((0,f.isPresent)(this.namedBlocks)){if(S)throw(0,r.generateSyntaxError)(\"Unexpected block params list on <\".concat(m,\"> component invocation: when passing named blocks, the invocation tag cannot take block params\"),this.loc);let R=new Set;for(let M of this.namedBlocks){let V=M.name.chars;if(R.has(V))throw(0,r.generateSyntaxError)(\"Component had two named blocks with the same name, `<:\".concat(V,\">`. Only one block with a given name may be passed\"),this.loc);if(V===\"inverse\"&&R.has(\"else\")||V===\"else\"&&R.has(\"inverse\"))throw(0,r.generateSyntaxError)(\"Component has both <:else> and <:inverse> block. <:inverse> is an alias for <:else>\",this.loc);R.add(V)}return this.namedBlocks}else return[this.block.builder.namedBlock(c.SourceSlice.synthetic(\"default\"),this.block.builder.block(C,this.nonBlockChildren,this.loc),this.loc)]}};function w(m){return m.type!==\"PathExpression\"&&m.path.type===\"PathExpression\"?w(m.path):new h.default({entityEncoding:\"raw\"}).print(m)}function H(m){if(m.type===\"PathExpression\")switch(m.head.type){case\"AtHead\":case\"VarHead\":return m.head.name;case\"ThisHead\":return\"this\"}else return m.path.type===\"PathExpression\"?H(m.path):new h.default({entityEncoding:\"raw\"}).print(m)}}}),Ze=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/keywords.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isKeyword=f,t.KEYWORDS_TYPES=void 0;function f(d){return d in h}var h={component:[\"Call\",\"Append\",\"Block\"],debugger:[\"Append\"],\"each-in\":[\"Block\"],each:[\"Block\"],\"has-block-params\":[\"Call\",\"Append\"],\"has-block\":[\"Call\",\"Append\"],helper:[\"Call\",\"Append\"],if:[\"Call\",\"Append\",\"Block\"],\"in-element\":[\"Block\"],let:[\"Block\"],\"link-to\":[\"Append\",\"Block\"],log:[\"Call\",\"Append\"],modifier:[\"Call\"],mount:[\"Append\"],mut:[\"Call\",\"Append\"],outlet:[\"Append\"],\"query-params\":[\"Call\"],readonly:[\"Call\",\"Append\"],unbound:[\"Call\",\"Append\"],unless:[\"Call\",\"Append\",\"Block\"],with:[\"Block\"],yield:[\"Append\"]};t.KEYWORDS_TYPES=h}}),Vt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/get-template-locals.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.getTemplateLocals=r;var f=Ze(),h=Fe(),d=c(Ne());function c(s){return s&&s.__esModule?s:{default:s}}function o(s,p,n){if(s.type===\"PathExpression\"){if(s.head.type===\"AtHead\"||s.head.type===\"ThisHead\")return;let a=s.head.name;if(p.indexOf(a)===-1)return a}else if(s.type===\"ElementNode\"){let{tag:a}=s,u=a.charAt(0);return u===\":\"||u===\"@\"||!n.includeHtmlElements&&a.indexOf(\".\")===-1&&a.toLowerCase()===a||a.substr(0,5)===\"this.\"||p.indexOf(a)!==-1?void 0:a}}function e(s,p,n,a){let u=o(p,n,a);(Array.isArray(u)?u:[u]).forEach(i=>{i!==void 0&&i[0]!==\"@\"&&s.add(i.split(\".\")[0])})}function r(s){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{includeHtmlElements:!1,includeKeywords:!1},n=(0,h.preprocess)(s),a=new Set,u=[];(0,d.default)(n,{Block:{enter(l){let{blockParams:b}=l;b.forEach(P=>{u.push(P)})},exit(l){let{blockParams:b}=l;b.forEach(()=>{u.pop()})}},ElementNode:{enter(l){l.blockParams.forEach(b=>{u.push(b)}),e(a,l,u,p)},exit(l){let{blockParams:b}=l;b.forEach(()=>{u.pop()})}},PathExpression(l){e(a,l,u,p)}});let i=[];return a.forEach(l=>i.push(l)),p!=null&&p.includeKeywords||(i=i.filter(l=>!(0,f.isKeyword)(l))),i}}}),Ut=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/index.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),Object.defineProperty(t,\"Source\",{enumerable:!0,get:function(){return f.Source}}),Object.defineProperty(t,\"builders\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,\"normalize\",{enumerable:!0,get:function(){return o.normalize}}),Object.defineProperty(t,\"SymbolTable\",{enumerable:!0,get:function(){return e.SymbolTable}}),Object.defineProperty(t,\"BlockSymbolTable\",{enumerable:!0,get:function(){return e.BlockSymbolTable}}),Object.defineProperty(t,\"ProgramSymbolTable\",{enumerable:!0,get:function(){return e.ProgramSymbolTable}}),Object.defineProperty(t,\"generateSyntaxError\",{enumerable:!0,get:function(){return r.generateSyntaxError}}),Object.defineProperty(t,\"preprocess\",{enumerable:!0,get:function(){return s.preprocess}}),Object.defineProperty(t,\"print\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,\"sortByLoc\",{enumerable:!0,get:function(){return n.sortByLoc}}),Object.defineProperty(t,\"Walker\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,\"Path\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,\"traverse\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,\"cannotRemoveNode\",{enumerable:!0,get:function(){return i.cannotRemoveNode}}),Object.defineProperty(t,\"cannotReplaceNode\",{enumerable:!0,get:function(){return i.cannotReplaceNode}}),Object.defineProperty(t,\"WalkerPath\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,\"isKeyword\",{enumerable:!0,get:function(){return b.isKeyword}}),Object.defineProperty(t,\"KEYWORDS_TYPES\",{enumerable:!0,get:function(){return b.KEYWORDS_TYPES}}),Object.defineProperty(t,\"getTemplateLocals\",{enumerable:!0,get:function(){return P.getTemplateLocals}}),Object.defineProperty(t,\"SourceSlice\",{enumerable:!0,get:function(){return E.SourceSlice}}),Object.defineProperty(t,\"SourceSpan\",{enumerable:!0,get:function(){return v.SourceSpan}}),Object.defineProperty(t,\"SpanList\",{enumerable:!0,get:function(){return _.SpanList}}),Object.defineProperty(t,\"maybeLoc\",{enumerable:!0,get:function(){return _.maybeLoc}}),Object.defineProperty(t,\"loc\",{enumerable:!0,get:function(){return _.loc}}),Object.defineProperty(t,\"hasSpan\",{enumerable:!0,get:function(){return _.hasSpan}}),Object.defineProperty(t,\"node\",{enumerable:!0,get:function(){return y.node}}),t.ASTv2=t.AST=t.ASTv1=void 0;var f=De(),h=j(ke()),d=L(Ct());t.ASTv1=d,t.AST=d;var c=L(ve());t.ASTv2=c;var o=Ht(),e=Xe(),r=he(),s=Fe(),p=j(We()),n=Ue(),a=j(Je()),u=j(Ne()),i=Ye(),l=j(Qe()),b=Ze(),P=Vt(),E=le(),v=ue(),_=ce(),y=ne();function g(){if(typeof WeakMap!=\"function\")return null;var x=new WeakMap;return g=function(){return x},x}function L(x){if(x&&x.__esModule)return x;if(x===null||typeof x!=\"object\"&&typeof x!=\"function\")return{default:x};var w=g();if(w&&w.has(x))return w.get(x);var H={},m=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var C in x)if(Object.prototype.hasOwnProperty.call(x,C)){var S=m?Object.getOwnPropertyDescriptor(x,C):null;S&&(S.get||S.set)?Object.defineProperty(H,C,S):H[C]=x[C]}return H.default=x,w&&w.set(x,H),H}function j(x){return x&&x.__esModule?x:{default:x}}}});F();var{LinesAndColumns:zt}=st(),Gt=ut(),{locStart:Kt,locEnd:Wt}=ot();function Yt(){return{name:\"addBackslash\",visitor:{All(t){var f;let h=(f=t.children)!==null&&f!==void 0?f:t.body;if(h)for(let d=0;d{let{line:c,column:o}=d;return f.indexForLocation({line:c-1,column:o})};return()=>({name:\"addOffset\",visitor:{All(d){let{start:c,end:o}=d.loc;c.offset=h(c),o.offset=h(o)}}})}function Jt(t){let{preprocess:f}=Ut(),h;try{h=f(t,{mode:\"codemod\",plugins:{ast:[Yt,Qt(t)]}})}catch(d){let c=Xt(d);throw c?Gt(d.message,c):d}return h}function Xt(t){let{location:f,hash:h}=t;if(f){let{start:d,end:c}=f;return typeof c.line!=\"number\"?{start:d}:f}if(h){let{loc:{last_line:d,last_column:c}}=h;return{start:{line:d,column:c+1}}}}$e.exports={parsers:{glimmer:{parse:Jt,astFormat:\"glimmer\",locStart:Kt,locEnd:Wt}}}});return Zt();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.graphql=e()}})(function(){\"use strict\";var oe=(a,d)=>()=>(d||a((d={exports:{}}).exports,d),d.exports);var be=oe((Ce,ae)=>{var H=Object.getOwnPropertyNames,se=(a,d)=>function(){return a&&(d=(0,a[H(a)[0]])(a=0)),d},L=(a,d)=>function(){return d||(0,a[H(a)[0]])((d={exports:{}}).exports,d),d.exports},K=se({\"\"(){}}),ce=L({\"src/common/parser-create-error.js\"(a,d){\"use strict\";K();function i(c,r){let _=new SyntaxError(c+\" (\"+r.start.line+\":\"+r.start.column+\")\");return _.loc=r,_}d.exports=i}}),ue=L({\"src/utils/try-combinations.js\"(a,d){\"use strict\";K();function i(){let c;for(var r=arguments.length,_=new Array(r),E=0;E120){for(var t=Math.floor(s/80),u=s%80,y=[],f=0;f\"u\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function e(f){return Function.toString.call(f).indexOf(\"[native code]\")!==-1}function n(f,m){return n=Object.setPrototypeOf||function(h,l){return h.__proto__=l,h},n(f,m)}function t(f){return t=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)},t(f)}var u=function(f){N(o,f);var m=g(o);function o(h,l,T,S,x,b,M){var U,V,q,G,C;k(this,o),C=m.call(this,h);var R=Array.isArray(l)?l.length!==0?l:void 0:l?[l]:void 0,Y=T;if(!Y&&R){var J;Y=(J=R[0].loc)===null||J===void 0?void 0:J.source}var F=S;!F&&R&&(F=R.reduce(function(w,P){return P.loc&&w.push(P.loc.start),w},[])),F&&F.length===0&&(F=void 0);var B;S&&T?B=S.map(function(w){return(0,r.getLocation)(T,w)}):R&&(B=R.reduce(function(w,P){return P.loc&&w.push((0,r.getLocation)(P.loc.source,P.loc.start)),w},[]));var j=M;if(j==null&&b!=null){var Q=b.extensions;(0,i.default)(Q)&&(j=Q)}return Object.defineProperties(v(C),{name:{value:\"GraphQLError\"},message:{value:h,enumerable:!0,writable:!0},locations:{value:(U=B)!==null&&U!==void 0?U:void 0,enumerable:B!=null},path:{value:x!=null?x:void 0,enumerable:x!=null},nodes:{value:R!=null?R:void 0},source:{value:(V=Y)!==null&&V!==void 0?V:void 0},positions:{value:(q=F)!==null&&q!==void 0?q:void 0},originalError:{value:b},extensions:{value:(G=j)!==null&&G!==void 0?G:void 0,enumerable:j!=null}}),b!=null&&b.stack?(Object.defineProperty(v(C),\"stack\",{value:b.stack,writable:!0,configurable:!0}),D(C)):(Error.captureStackTrace?Error.captureStackTrace(v(C),o):Object.defineProperty(v(C),\"stack\",{value:Error().stack,writable:!0,configurable:!0}),C)}return A(o,[{key:\"toString\",value:function(){return y(this)}},{key:c.SYMBOL_TO_STRING_TAG,get:function(){return\"Object\"}}]),o}(I(Error));a.GraphQLError=u;function y(f){var m=f.message;if(f.nodes)for(var o=0,h=f.nodes;o\",EOF:\"\",BANG:\"!\",DOLLAR:\"$\",AMP:\"&\",PAREN_L:\"(\",PAREN_R:\")\",SPREAD:\"...\",COLON:\":\",EQUALS:\"=\",AT:\"@\",BRACKET_L:\"[\",BRACKET_R:\"]\",BRACE_L:\"{\",PIPE:\"|\",BRACE_R:\"}\",NAME:\"Name\",INT:\"Int\",FLOAT:\"Float\",STRING:\"String\",BLOCK_STRING:\"BlockString\",COMMENT:\"Comment\"});a.TokenKind=d}}),re=L({\"node_modules/graphql/jsutils/inspect.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.default=E;var d=i(ee());function i(v){return v&&v.__esModule?v:{default:v}}function c(v){return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?c=function(s){return typeof s}:c=function(s){return s&&typeof Symbol==\"function\"&&s.constructor===Symbol&&s!==Symbol.prototype?\"symbol\":typeof s},c(v)}var r=10,_=2;function E(v){return k(v,[])}function k(v,I){switch(c(v)){case\"string\":return JSON.stringify(v);case\"function\":return v.name?\"[function \".concat(v.name,\"]\"):\"[function]\";case\"object\":return v===null?\"null\":O(v,I);default:return String(v)}}function O(v,I){if(I.indexOf(v)!==-1)return\"[Circular]\";var s=[].concat(I,[v]),p=g(v);if(p!==void 0){var e=p.call(v);if(e!==v)return typeof e==\"string\"?e:k(e,s)}else if(Array.isArray(v))return N(v,s);return A(v,s)}function A(v,I){var s=Object.keys(v);if(s.length===0)return\"{}\";if(I.length>_)return\"[\"+D(v)+\"]\";var p=s.map(function(e){var n=k(v[e],I);return e+\": \"+n});return\"{ \"+p.join(\", \")+\" }\"}function N(v,I){if(v.length===0)return\"[]\";if(I.length>_)return\"[Array]\";for(var s=Math.min(r,v.length),p=v.length-s,e=[],n=0;n1&&e.push(\"... \".concat(p,\" more items\")),\"[\"+e.join(\", \")+\"]\"}function g(v){var I=v[String(d.default)];if(typeof I==\"function\")return I;if(typeof v.inspect==\"function\")return v.inspect}function D(v){var I=Object.prototype.toString.call(v).replace(/^\\[object /,\"\").replace(/]$/,\"\");if(I===\"Object\"&&typeof v.constructor==\"function\"){var s=v.constructor.name;if(typeof s==\"string\"&&s!==\"\")return s}return I}}}),_e=L({\"node_modules/graphql/jsutils/devAssert.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.default=d;function d(i,c){var r=Boolean(i);if(!r)throw new Error(c)}}}),Ee=L({\"node_modules/graphql/jsutils/instanceOf.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.default=void 0;var d=i(re());function i(r){return r&&r.__esModule?r:{default:r}}var c=function(_,E){return _ instanceof E};a.default=c}}),me=L({\"node_modules/graphql/language/source.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.isSource=A,a.Source=void 0;var d=z(),i=_(re()),c=_(_e()),r=_(Ee());function _(N){return N&&N.__esModule?N:{default:N}}function E(N,g){for(var D=0;D1&&arguments[1]!==void 0?arguments[1]:\"GraphQL request\",v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{line:1,column:1};typeof g==\"string\"||(0,c.default)(0,\"Body must be a string. Received: \".concat((0,i.default)(g),\".\")),this.body=g,this.name=D,this.locationOffset=v,this.locationOffset.line>0||(0,c.default)(0,\"line in locationOffset is 1-indexed and must be positive.\"),this.locationOffset.column>0||(0,c.default)(0,\"column in locationOffset is 1-indexed and must be positive.\")}return k(N,[{key:d.SYMBOL_TO_STRING_TAG,get:function(){return\"Source\"}}]),N}();a.Source=O;function A(N){return(0,r.default)(N,O)}}}),ye=L({\"node_modules/graphql/language/directiveLocation.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.DirectiveLocation=void 0;var d=Object.freeze({QUERY:\"QUERY\",MUTATION:\"MUTATION\",SUBSCRIPTION:\"SUBSCRIPTION\",FIELD:\"FIELD\",FRAGMENT_DEFINITION:\"FRAGMENT_DEFINITION\",FRAGMENT_SPREAD:\"FRAGMENT_SPREAD\",INLINE_FRAGMENT:\"INLINE_FRAGMENT\",VARIABLE_DEFINITION:\"VARIABLE_DEFINITION\",SCHEMA:\"SCHEMA\",SCALAR:\"SCALAR\",OBJECT:\"OBJECT\",FIELD_DEFINITION:\"FIELD_DEFINITION\",ARGUMENT_DEFINITION:\"ARGUMENT_DEFINITION\",INTERFACE:\"INTERFACE\",UNION:\"UNION\",ENUM:\"ENUM\",ENUM_VALUE:\"ENUM_VALUE\",INPUT_OBJECT:\"INPUT_OBJECT\",INPUT_FIELD_DEFINITION:\"INPUT_FIELD_DEFINITION\"});a.DirectiveLocation=d}}),ke=L({\"node_modules/graphql/language/blockString.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.dedentBlockStringValue=d,a.getBlockStringIndentation=c,a.printBlockString=r;function d(_){var E=_.split(/\\r\\n|[\\n\\r]/g),k=c(_);if(k!==0)for(var O=1;OA&&i(E[N-1]);)--N;return E.slice(A,N).join(`\n`)}function i(_){for(var E=0;E<_.length;++E)if(_[E]!==\" \"&&_[E]!==\"\t\")return!1;return!0}function c(_){for(var E,k=!0,O=!0,A=0,N=null,g=0;g<_.length;++g)switch(_.charCodeAt(g)){case 13:_.charCodeAt(g+1)===10&&++g;case 10:k=!1,O=!0,A=0;break;case 9:case 32:++A;break;default:O&&!k&&(N===null||A1&&arguments[1]!==void 0?arguments[1]:\"\",k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,O=_.indexOf(`\n`)===-1,A=_[0]===\" \"||_[0]===\"\t\",N=_[_.length-1]==='\"',g=_[_.length-1]===\"\\\\\",D=!O||N||g||k,v=\"\";return D&&!(O&&A)&&(v+=`\n`+E),v+=E?_.replace(/\\n/g,`\n`+E):_,D&&(v+=`\n`),'\"\"\"'+v.replace(/\"\"\"/g,'\\\\\"\"\"')+'\"\"\"'}}}),Ne=L({\"node_modules/graphql/language/lexer.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.isPunctuatorTokenKind=E,a.Lexer=void 0;var d=Z(),i=te(),c=ne(),r=ke(),_=function(){function t(y){var f=new i.Token(c.TokenKind.SOF,0,0,0,0,null);this.source=y,this.lastToken=f,this.token=f,this.line=1,this.lineStart=0}var u=t.prototype;return u.advance=function(){this.lastToken=this.token;var f=this.token=this.lookahead();return f},u.lookahead=function(){var f=this.token;if(f.kind!==c.TokenKind.EOF)do{var m;f=(m=f.next)!==null&&m!==void 0?m:f.next=O(this,f)}while(f.kind===c.TokenKind.COMMENT);return f},t}();a.Lexer=_;function E(t){return t===c.TokenKind.BANG||t===c.TokenKind.DOLLAR||t===c.TokenKind.AMP||t===c.TokenKind.PAREN_L||t===c.TokenKind.PAREN_R||t===c.TokenKind.SPREAD||t===c.TokenKind.COLON||t===c.TokenKind.EQUALS||t===c.TokenKind.AT||t===c.TokenKind.BRACKET_L||t===c.TokenKind.BRACKET_R||t===c.TokenKind.BRACE_L||t===c.TokenKind.PIPE||t===c.TokenKind.BRACE_R}function k(t){return isNaN(t)?c.TokenKind.EOF:t<127?JSON.stringify(String.fromCharCode(t)):'\"\\\\u'.concat((\"00\"+t.toString(16).toUpperCase()).slice(-4),'\"')}function O(t,u){for(var y=t.source,f=y.body,m=f.length,o=u.end;o31||h===9));return new i.Token(c.TokenKind.COMMENT,u,l,y,f,m,o.slice(u+1,l))}function g(t,u,y,f,m,o){var h=t.body,l=y,T=u,S=!1;if(l===45&&(l=h.charCodeAt(++T)),l===48){if(l=h.charCodeAt(++T),l>=48&&l<=57)throw(0,d.syntaxError)(t,T,\"Invalid number, unexpected digit after 0: \".concat(k(l),\".\"))}else T=D(t,T,l),l=h.charCodeAt(T);if(l===46&&(S=!0,l=h.charCodeAt(++T),T=D(t,T,l),l=h.charCodeAt(T)),(l===69||l===101)&&(S=!0,l=h.charCodeAt(++T),(l===43||l===45)&&(l=h.charCodeAt(++T)),T=D(t,T,l),l=h.charCodeAt(T)),l===46||n(l))throw(0,d.syntaxError)(t,T,\"Invalid number, expected digit but got: \".concat(k(l),\".\"));return new i.Token(S?c.TokenKind.FLOAT:c.TokenKind.INT,u,T,f,m,o,h.slice(u,T))}function D(t,u,y){var f=t.body,m=u,o=y;if(o>=48&&o<=57){do o=f.charCodeAt(++m);while(o>=48&&o<=57);return m}throw(0,d.syntaxError)(t,m,\"Invalid number, expected digit but got: \".concat(k(o),\".\"))}function v(t,u,y,f,m){for(var o=t.body,h=u+1,l=h,T=0,S=\"\";h=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:-1}function e(t,u,y,f,m){for(var o=t.body,h=o.length,l=u+1,T=0;l!==h&&!isNaN(T=o.charCodeAt(l))&&(T===95||T>=48&&T<=57||T>=65&&T<=90||T>=97&&T<=122);)++l;return new i.Token(c.TokenKind.NAME,u,l,y,f,m,o.slice(u,l))}function n(t){return t===95||t>=65&&t<=90||t>=97&&t<=122}}}),Oe=L({\"node_modules/graphql/language/parser.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.parse=O,a.parseValue=A,a.parseType=N,a.Parser=void 0;var d=Z(),i=he(),c=te(),r=ne(),_=me(),E=ye(),k=Ne();function O(I,s){var p=new g(I,s);return p.parseDocument()}function A(I,s){var p=new g(I,s);p.expectToken(r.TokenKind.SOF);var e=p.parseValueLiteral(!1);return p.expectToken(r.TokenKind.EOF),e}function N(I,s){var p=new g(I,s);p.expectToken(r.TokenKind.SOF);var e=p.parseTypeReference();return p.expectToken(r.TokenKind.EOF),e}var g=function(){function I(p,e){var n=(0,_.isSource)(p)?p:new _.Source(p);this._lexer=new k.Lexer(n),this._options=e}var s=I.prototype;return s.parseName=function(){var e=this.expectToken(r.TokenKind.NAME);return{kind:i.Kind.NAME,value:e.value,loc:this.loc(e)}},s.parseDocument=function(){var e=this._lexer.token;return{kind:i.Kind.DOCUMENT,definitions:this.many(r.TokenKind.SOF,this.parseDefinition,r.TokenKind.EOF),loc:this.loc(e)}},s.parseDefinition=function(){if(this.peek(r.TokenKind.NAME))switch(this._lexer.token.value){case\"query\":case\"mutation\":case\"subscription\":return this.parseOperationDefinition();case\"fragment\":return this.parseFragmentDefinition();case\"schema\":case\"scalar\":case\"type\":case\"interface\":case\"union\":case\"enum\":case\"input\":case\"directive\":return this.parseTypeSystemDefinition();case\"extend\":return this.parseTypeSystemExtension()}else{if(this.peek(r.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},s.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(r.TokenKind.BRACE_L))return{kind:i.Kind.OPERATION_DEFINITION,operation:\"query\",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var n=this.parseOperationType(),t;return this.peek(r.TokenKind.NAME)&&(t=this.parseName()),{kind:i.Kind.OPERATION_DEFINITION,operation:n,name:t,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},s.parseOperationType=function(){var e=this.expectToken(r.TokenKind.NAME);switch(e.value){case\"query\":return\"query\";case\"mutation\":return\"mutation\";case\"subscription\":return\"subscription\"}throw this.unexpected(e)},s.parseVariableDefinitions=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseVariableDefinition,r.TokenKind.PAREN_R)},s.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:i.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(r.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(r.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},s.parseVariable=function(){var e=this._lexer.token;return this.expectToken(r.TokenKind.DOLLAR),{kind:i.Kind.VARIABLE,name:this.parseName(),loc:this.loc(e)}},s.parseSelectionSet=function(){var e=this._lexer.token;return{kind:i.Kind.SELECTION_SET,selections:this.many(r.TokenKind.BRACE_L,this.parseSelection,r.TokenKind.BRACE_R),loc:this.loc(e)}},s.parseSelection=function(){return this.peek(r.TokenKind.SPREAD)?this.parseFragment():this.parseField()},s.parseField=function(){var e=this._lexer.token,n=this.parseName(),t,u;return this.expectOptionalToken(r.TokenKind.COLON)?(t=n,u=this.parseName()):u=n,{kind:i.Kind.FIELD,alias:t,name:u,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(r.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(e)}},s.parseArguments=function(e){var n=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(r.TokenKind.PAREN_L,n,r.TokenKind.PAREN_R)},s.parseArgument=function(){var e=this._lexer.token,n=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:i.Kind.ARGUMENT,name:n,value:this.parseValueLiteral(!1),loc:this.loc(e)}},s.parseConstArgument=function(){var e=this._lexer.token;return{kind:i.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(r.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},s.parseFragment=function(){var e=this._lexer.token;this.expectToken(r.TokenKind.SPREAD);var n=this.expectOptionalKeyword(\"on\");return!n&&this.peek(r.TokenKind.NAME)?{kind:i.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:i.Kind.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},s.parseFragmentDefinition=function(){var e,n=this._lexer.token;return this.expectKeyword(\"fragment\"),((e=this._options)===null||e===void 0?void 0:e.experimentalFragmentVariables)===!0?{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}:{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},s.parseFragmentName=function(){if(this._lexer.token.value===\"on\")throw this.unexpected();return this.parseName()},s.parseValueLiteral=function(e){var n=this._lexer.token;switch(n.kind){case r.TokenKind.BRACKET_L:return this.parseList(e);case r.TokenKind.BRACE_L:return this.parseObject(e);case r.TokenKind.INT:return this._lexer.advance(),{kind:i.Kind.INT,value:n.value,loc:this.loc(n)};case r.TokenKind.FLOAT:return this._lexer.advance(),{kind:i.Kind.FLOAT,value:n.value,loc:this.loc(n)};case r.TokenKind.STRING:case r.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case r.TokenKind.NAME:switch(this._lexer.advance(),n.value){case\"true\":return{kind:i.Kind.BOOLEAN,value:!0,loc:this.loc(n)};case\"false\":return{kind:i.Kind.BOOLEAN,value:!1,loc:this.loc(n)};case\"null\":return{kind:i.Kind.NULL,loc:this.loc(n)};default:return{kind:i.Kind.ENUM,value:n.value,loc:this.loc(n)}}case r.TokenKind.DOLLAR:if(!e)return this.parseVariable();break}throw this.unexpected()},s.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:i.Kind.STRING,value:e.value,block:e.kind===r.TokenKind.BLOCK_STRING,loc:this.loc(e)}},s.parseList=function(e){var n=this,t=this._lexer.token,u=function(){return n.parseValueLiteral(e)};return{kind:i.Kind.LIST,values:this.any(r.TokenKind.BRACKET_L,u,r.TokenKind.BRACKET_R),loc:this.loc(t)}},s.parseObject=function(e){var n=this,t=this._lexer.token,u=function(){return n.parseObjectField(e)};return{kind:i.Kind.OBJECT,fields:this.any(r.TokenKind.BRACE_L,u,r.TokenKind.BRACE_R),loc:this.loc(t)}},s.parseObjectField=function(e){var n=this._lexer.token,t=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:i.Kind.OBJECT_FIELD,name:t,value:this.parseValueLiteral(e),loc:this.loc(n)}},s.parseDirectives=function(e){for(var n=[];this.peek(r.TokenKind.AT);)n.push(this.parseDirective(e));return n},s.parseDirective=function(e){var n=this._lexer.token;return this.expectToken(r.TokenKind.AT),{kind:i.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(n)}},s.parseTypeReference=function(){var e=this._lexer.token,n;return this.expectOptionalToken(r.TokenKind.BRACKET_L)?(n=this.parseTypeReference(),this.expectToken(r.TokenKind.BRACKET_R),n={kind:i.Kind.LIST_TYPE,type:n,loc:this.loc(e)}):n=this.parseNamedType(),this.expectOptionalToken(r.TokenKind.BANG)?{kind:i.Kind.NON_NULL_TYPE,type:n,loc:this.loc(e)}:n},s.parseNamedType=function(){var e=this._lexer.token;return{kind:i.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},s.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===r.TokenKind.NAME)switch(e.value){case\"schema\":return this.parseSchemaDefinition();case\"scalar\":return this.parseScalarTypeDefinition();case\"type\":return this.parseObjectTypeDefinition();case\"interface\":return this.parseInterfaceTypeDefinition();case\"union\":return this.parseUnionTypeDefinition();case\"enum\":return this.parseEnumTypeDefinition();case\"input\":return this.parseInputObjectTypeDefinition();case\"directive\":return this.parseDirectiveDefinition()}throw this.unexpected(e)},s.peekDescription=function(){return this.peek(r.TokenKind.STRING)||this.peek(r.TokenKind.BLOCK_STRING)},s.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},s.parseSchemaDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"schema\");var t=this.parseDirectives(!0),u=this.many(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);return{kind:i.Kind.SCHEMA_DEFINITION,description:n,directives:t,operationTypes:u,loc:this.loc(e)}},s.parseOperationTypeDefinition=function(){var e=this._lexer.token,n=this.parseOperationType();this.expectToken(r.TokenKind.COLON);var t=this.parseNamedType();return{kind:i.Kind.OPERATION_TYPE_DEFINITION,operation:n,type:t,loc:this.loc(e)}},s.parseScalarTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"scalar\");var t=this.parseName(),u=this.parseDirectives(!0);return{kind:i.Kind.SCALAR_TYPE_DEFINITION,description:n,name:t,directives:u,loc:this.loc(e)}},s.parseObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"type\");var t=this.parseName(),u=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:i.Kind.OBJECT_TYPE_DEFINITION,description:n,name:t,interfaces:u,directives:y,fields:f,loc:this.loc(e)}},s.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword(\"implements\"))return[];if(((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var n=[];this.expectOptionalToken(r.TokenKind.AMP);do n.push(this.parseNamedType());while(this.expectOptionalToken(r.TokenKind.AMP)||this.peek(r.TokenKind.NAME));return n}return this.delimitedMany(r.TokenKind.AMP,this.parseNamedType)},s.parseFieldsDefinition=function(){var e;return((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(r.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===r.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(r.TokenKind.BRACE_L,this.parseFieldDefinition,r.TokenKind.BRACE_R)},s.parseFieldDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),u=this.parseArgumentDefs();this.expectToken(r.TokenKind.COLON);var y=this.parseTypeReference(),f=this.parseDirectives(!0);return{kind:i.Kind.FIELD_DEFINITION,description:n,name:t,arguments:u,type:y,directives:f,loc:this.loc(e)}},s.parseArgumentDefs=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseInputValueDef,r.TokenKind.PAREN_R)},s.parseInputValueDef=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName();this.expectToken(r.TokenKind.COLON);var u=this.parseTypeReference(),y;this.expectOptionalToken(r.TokenKind.EQUALS)&&(y=this.parseValueLiteral(!0));var f=this.parseDirectives(!0);return{kind:i.Kind.INPUT_VALUE_DEFINITION,description:n,name:t,type:u,defaultValue:y,directives:f,loc:this.loc(e)}},s.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"interface\");var t=this.parseName(),u=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:i.Kind.INTERFACE_TYPE_DEFINITION,description:n,name:t,interfaces:u,directives:y,fields:f,loc:this.loc(e)}},s.parseUnionTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"union\");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseUnionMemberTypes();return{kind:i.Kind.UNION_TYPE_DEFINITION,description:n,name:t,directives:u,types:y,loc:this.loc(e)}},s.parseUnionMemberTypes=function(){return this.expectOptionalToken(r.TokenKind.EQUALS)?this.delimitedMany(r.TokenKind.PIPE,this.parseNamedType):[]},s.parseEnumTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"enum\");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseEnumValuesDefinition();return{kind:i.Kind.ENUM_TYPE_DEFINITION,description:n,name:t,directives:u,values:y,loc:this.loc(e)}},s.parseEnumValuesDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseEnumValueDefinition,r.TokenKind.BRACE_R)},s.parseEnumValueDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),u=this.parseDirectives(!0);return{kind:i.Kind.ENUM_VALUE_DEFINITION,description:n,name:t,directives:u,loc:this.loc(e)}},s.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"input\");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseInputFieldsDefinition();return{kind:i.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:t,directives:u,fields:y,loc:this.loc(e)}},s.parseInputFieldsDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseInputValueDef,r.TokenKind.BRACE_R)},s.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===r.TokenKind.NAME)switch(e.value){case\"schema\":return this.parseSchemaExtension();case\"scalar\":return this.parseScalarTypeExtension();case\"type\":return this.parseObjectTypeExtension();case\"interface\":return this.parseInterfaceTypeExtension();case\"union\":return this.parseUnionTypeExtension();case\"enum\":return this.parseEnumTypeExtension();case\"input\":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},s.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"schema\");var n=this.parseDirectives(!0),t=this.optionalMany(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);if(n.length===0&&t.length===0)throw this.unexpected();return{kind:i.Kind.SCHEMA_EXTENSION,directives:n,operationTypes:t,loc:this.loc(e)}},s.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"scalar\");var n=this.parseName(),t=this.parseDirectives(!0);if(t.length===0)throw this.unexpected();return{kind:i.Kind.SCALAR_TYPE_EXTENSION,name:n,directives:t,loc:this.loc(e)}},s.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"type\");var n=this.parseName(),t=this.parseImplementsInterfaces(),u=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&u.length===0&&y.length===0)throw this.unexpected();return{kind:i.Kind.OBJECT_TYPE_EXTENSION,name:n,interfaces:t,directives:u,fields:y,loc:this.loc(e)}},s.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"interface\");var n=this.parseName(),t=this.parseImplementsInterfaces(),u=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&u.length===0&&y.length===0)throw this.unexpected();return{kind:i.Kind.INTERFACE_TYPE_EXTENSION,name:n,interfaces:t,directives:u,fields:y,loc:this.loc(e)}},s.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"union\");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseUnionMemberTypes();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.UNION_TYPE_EXTENSION,name:n,directives:t,types:u,loc:this.loc(e)}},s.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"enum\");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseEnumValuesDefinition();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.ENUM_TYPE_EXTENSION,name:n,directives:t,values:u,loc:this.loc(e)}},s.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"input\");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseInputFieldsDefinition();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:t,fields:u,loc:this.loc(e)}},s.parseDirectiveDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"directive\"),this.expectToken(r.TokenKind.AT);var t=this.parseName(),u=this.parseArgumentDefs(),y=this.expectOptionalKeyword(\"repeatable\");this.expectKeyword(\"on\");var f=this.parseDirectiveLocations();return{kind:i.Kind.DIRECTIVE_DEFINITION,description:n,name:t,arguments:u,repeatable:y,locations:f,loc:this.loc(e)}},s.parseDirectiveLocations=function(){return this.delimitedMany(r.TokenKind.PIPE,this.parseDirectiveLocation)},s.parseDirectiveLocation=function(){var e=this._lexer.token,n=this.parseName();if(E.DirectiveLocation[n.value]!==void 0)return n;throw this.unexpected(e)},s.loc=function(e){var n;if(((n=this._options)===null||n===void 0?void 0:n.noLocation)!==!0)return new c.Location(e,this._lexer.lastToken,this._lexer.source)},s.peek=function(e){return this._lexer.token.kind===e},s.expectToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n;throw(0,d.syntaxError)(this._lexer.source,n.start,\"Expected \".concat(v(e),\", found \").concat(D(n),\".\"))},s.expectOptionalToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n},s.expectKeyword=function(e){var n=this._lexer.token;if(n.kind===r.TokenKind.NAME&&n.value===e)this._lexer.advance();else throw(0,d.syntaxError)(this._lexer.source,n.start,'Expected \"'.concat(e,'\", found ').concat(D(n),\".\"))},s.expectOptionalKeyword=function(e){var n=this._lexer.token;return n.kind===r.TokenKind.NAME&&n.value===e?(this._lexer.advance(),!0):!1},s.unexpected=function(e){var n=e!=null?e:this._lexer.token;return(0,d.syntaxError)(this._lexer.source,n.start,\"Unexpected \".concat(D(n),\".\"))},s.any=function(e,n,t){this.expectToken(e);for(var u=[];!this.expectOptionalToken(t);)u.push(n.call(this));return u},s.optionalMany=function(e,n,t){if(this.expectOptionalToken(e)){var u=[];do u.push(n.call(this));while(!this.expectOptionalToken(t));return u}return[]},s.many=function(e,n,t){this.expectToken(e);var u=[];do u.push(n.call(this));while(!this.expectOptionalToken(t));return u},s.delimitedMany=function(e,n){this.expectOptionalToken(e);var t=[];do t.push(n.call(this));while(this.expectOptionalToken(e));return t},I}();a.Parser=g;function D(I){var s=I.value;return v(I.kind)+(s!=null?' \"'.concat(s,'\"'):\"\")}function v(I){return(0,k.isPunctuatorTokenKind)(I)?'\"'.concat(I,'\"'):I}}});K();var Ie=ce(),ge=ue(),{hasPragma:Se}=le(),{locStart:Ae,locEnd:De}=pe();function Ke(a){let d=[],{startToken:i}=a.loc,{next:c}=i;for(;c.kind!==\"\";)c.kind===\"Comment\"&&(Object.assign(c,{column:c.column-1}),d.push(c)),c=c.next;return d}function ie(a){if(a&&typeof a==\"object\"){delete a.startToken,delete a.endToken,delete a.prev,delete a.next;for(let d in a)ie(a[d])}return a}var X={allowLegacySDLImplementsInterfaces:!1,experimentalFragmentVariables:!0};function Le(a){let{GraphQLError:d}=W();if(a instanceof d){let{message:i,locations:[c]}=a;return Ie(i,{start:c})}return a}function xe(a){let{parse:d}=Oe(),{result:i,error:c}=ge(()=>d(a,Object.assign({},X)),()=>d(a,Object.assign(Object.assign({},X),{},{allowLegacySDLImplementsInterfaces:!0})));if(!i)throw Le(c);return i.comments=Ke(i),ie(i),i}ae.exports={parsers:{graphql:{parse:xe,astFormat:\"graphql\",hasPragma:Se,locStart:Ae,locEnd:De}}}});return be();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.html=e()}})(function(){\"use strict\";var y=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var G=y((cl,zr)=>{var we=function(e){return e&&e.Math==Math&&e};zr.exports=we(typeof globalThis==\"object\"&&globalThis)||we(typeof window==\"object\"&&window)||we(typeof self==\"object\"&&self)||we(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var se=y((Dl,Wr)=>{Wr.exports=function(e){try{return!!e()}catch{return!0}}});var oe=y((ll,Yr)=>{var bs=se();Yr.exports=!bs(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Ne=y((hl,Qr)=>{var ws=se();Qr.exports=!ws(function(){var e=function(){}.bind();return typeof e!=\"function\"||e.hasOwnProperty(\"prototype\")})});var ce=y((pl,Kr)=>{var Ns=Ne(),Oe=Function.prototype.call;Kr.exports=Ns?Oe.bind(Oe):function(){return Oe.apply(Oe,arguments)}});var rt=y(et=>{\"use strict\";var Jr={}.propertyIsEnumerable,Zr=Object.getOwnPropertyDescriptor,Os=Zr&&!Jr.call({1:2},1);et.f=Os?function(r){var t=Zr(this,r);return!!t&&t.enumerable}:Jr});var qe=y((dl,tt)=>{tt.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var Q=y((El,st)=>{var ut=Ne(),nt=Function.prototype,qs=nt.bind,er=nt.call,Is=ut&&qs.bind(er,er);st.exports=ut?function(e){return e&&Is(e)}:function(e){return e&&function(){return er.apply(e,arguments)}}});var Ie=y((Cl,it)=>{var at=Q(),Rs=at({}.toString),xs=at(\"\".slice);it.exports=function(e){return xs(Rs(e),8,-1)}});var ct=y((ml,ot)=>{var Ps=G(),ks=Q(),Ls=se(),Ms=Ie(),rr=Ps.Object,js=ks(\"\".split);ot.exports=Ls(function(){return!rr(\"z\").propertyIsEnumerable(0)})?function(e){return Ms(e)==\"String\"?js(e,\"\"):rr(e)}:rr});var tr=y((gl,Dt)=>{var $s=G(),Us=$s.TypeError;Dt.exports=function(e){if(e==null)throw Us(\"Can't call method on \"+e);return e}});var Re=y((Fl,lt)=>{var Gs=ct(),Vs=tr();lt.exports=function(e){return Gs(Vs(e))}});var K=y((Al,ht)=>{ht.exports=function(e){return typeof e==\"function\"}});var De=y((vl,pt)=>{var Xs=K();pt.exports=function(e){return typeof e==\"object\"?e!==null:Xs(e)}});var ge=y((_l,ft)=>{var ur=G(),Hs=K(),zs=function(e){return Hs(e)?e:void 0};ft.exports=function(e,r){return arguments.length<2?zs(ur[e]):ur[e]&&ur[e][r]}});var nr=y((Sl,dt)=>{var Ws=Q();dt.exports=Ws({}.isPrototypeOf)});var Ct=y((yl,Et)=>{var Ys=ge();Et.exports=Ys(\"navigator\",\"userAgent\")||\"\"});var St=y((Tl,_t)=>{var vt=G(),sr=Ct(),mt=vt.process,gt=vt.Deno,Ft=mt&&mt.versions||gt&>.version,At=Ft&&Ft.v8,te,xe;At&&(te=At.split(\".\"),xe=te[0]>0&&te[0]<4?1:+(te[0]+te[1]));!xe&&sr&&(te=sr.match(/Edge\\/(\\d+)/),(!te||te[1]>=74)&&(te=sr.match(/Chrome\\/(\\d+)/),te&&(xe=+te[1])));_t.exports=xe});var ar=y((Bl,Tt)=>{var yt=St(),Qs=se();Tt.exports=!!Object.getOwnPropertySymbols&&!Qs(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&yt&&yt<41})});var ir=y((bl,Bt)=>{var Ks=ar();Bt.exports=Ks&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var or=y((wl,bt)=>{var Js=G(),Zs=ge(),ea=K(),ra=nr(),ta=ir(),ua=Js.Object;bt.exports=ta?function(e){return typeof e==\"symbol\"}:function(e){var r=Zs(\"Symbol\");return ea(r)&&ra(r.prototype,ua(e))}});var Pe=y((Nl,wt)=>{var na=G(),sa=na.String;wt.exports=function(e){try{return sa(e)}catch{return\"Object\"}}});var Fe=y((Ol,Nt)=>{var aa=G(),ia=K(),oa=Pe(),ca=aa.TypeError;Nt.exports=function(e){if(ia(e))return e;throw ca(oa(e)+\" is not a function\")}});var ke=y((ql,Ot)=>{var Da=Fe();Ot.exports=function(e,r){var t=e[r];return t==null?void 0:Da(t)}});var It=y((Il,qt)=>{var la=G(),cr=ce(),Dr=K(),lr=De(),ha=la.TypeError;qt.exports=function(e,r){var t,s;if(r===\"string\"&&Dr(t=e.toString)&&!lr(s=cr(t,e))||Dr(t=e.valueOf)&&!lr(s=cr(t,e))||r!==\"string\"&&Dr(t=e.toString)&&!lr(s=cr(t,e)))return s;throw ha(\"Can't convert object to primitive value\")}});var xt=y((Rl,Rt)=>{Rt.exports=!1});var Le=y((xl,kt)=>{var Pt=G(),pa=Object.defineProperty;kt.exports=function(e,r){try{pa(Pt,e,{value:r,configurable:!0,writable:!0})}catch{Pt[e]=r}return r}});var Me=y((Pl,Mt)=>{var fa=G(),da=Le(),Lt=\"__core-js_shared__\",Ea=fa[Lt]||da(Lt,{});Mt.exports=Ea});var hr=y((kl,$t)=>{var Ca=xt(),jt=Me();($t.exports=function(e,r){return jt[e]||(jt[e]=r!==void 0?r:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:Ca?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var pr=y((Ll,Ut)=>{var ma=G(),ga=tr(),Fa=ma.Object;Ut.exports=function(e){return Fa(ga(e))}});var ae=y((Ml,Gt)=>{var Aa=Q(),va=pr(),_a=Aa({}.hasOwnProperty);Gt.exports=Object.hasOwn||function(r,t){return _a(va(r),t)}});var fr=y((jl,Vt)=>{var Sa=Q(),ya=0,Ta=Math.random(),Ba=Sa(1 .toString);Vt.exports=function(e){return\"Symbol(\"+(e===void 0?\"\":e)+\")_\"+Ba(++ya+Ta,36)}});var he=y(($l,Yt)=>{var ba=G(),wa=hr(),Xt=ae(),Na=fr(),Ht=ar(),Wt=ir(),fe=wa(\"wks\"),le=ba.Symbol,zt=le&&le.for,Oa=Wt?le:le&&le.withoutSetter||Na;Yt.exports=function(e){if(!Xt(fe,e)||!(Ht||typeof fe[e]==\"string\")){var r=\"Symbol.\"+e;Ht&&Xt(le,e)?fe[e]=le[e]:Wt&&zt?fe[e]=zt(r):fe[e]=Oa(r)}return fe[e]}});var Zt=y((Ul,Jt)=>{var qa=G(),Ia=ce(),Qt=De(),Kt=or(),Ra=ke(),xa=It(),Pa=he(),ka=qa.TypeError,La=Pa(\"toPrimitive\");Jt.exports=function(e,r){if(!Qt(e)||Kt(e))return e;var t=Ra(e,La),s;if(t){if(r===void 0&&(r=\"default\"),s=Ia(t,e,r),!Qt(s)||Kt(s))return s;throw ka(\"Can't convert object to primitive value\")}return r===void 0&&(r=\"number\"),xa(e,r)}});var je=y((Gl,eu)=>{var Ma=Zt(),ja=or();eu.exports=function(e){var r=Ma(e,\"string\");return ja(r)?r:r+\"\"}});var uu=y((Vl,tu)=>{var $a=G(),ru=De(),dr=$a.document,Ua=ru(dr)&&ru(dr.createElement);tu.exports=function(e){return Ua?dr.createElement(e):{}}});var Er=y((Xl,nu)=>{var Ga=oe(),Va=se(),Xa=uu();nu.exports=!Ga&&!Va(function(){return Object.defineProperty(Xa(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Cr=y(au=>{var Ha=oe(),za=ce(),Wa=rt(),Ya=qe(),Qa=Re(),Ka=je(),Ja=ae(),Za=Er(),su=Object.getOwnPropertyDescriptor;au.f=Ha?su:function(r,t){if(r=Qa(r),t=Ka(t),Za)try{return su(r,t)}catch{}if(Ja(r,t))return Ya(!za(Wa.f,r,t),r[t])}});var ou=y((zl,iu)=>{var ei=oe(),ri=se();iu.exports=ei&&ri(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var de=y((Wl,Du)=>{var cu=G(),ti=De(),ui=cu.String,ni=cu.TypeError;Du.exports=function(e){if(ti(e))return e;throw ni(ui(e)+\" is not an object\")}});var Ue=y(hu=>{var si=G(),ai=oe(),ii=Er(),oi=ou(),$e=de(),lu=je(),ci=si.TypeError,mr=Object.defineProperty,Di=Object.getOwnPropertyDescriptor,gr=\"enumerable\",Fr=\"configurable\",Ar=\"writable\";hu.f=ai?oi?function(r,t,s){if($e(r),t=lu(t),$e(s),typeof r==\"function\"&&t===\"prototype\"&&\"value\"in s&&Ar in s&&!s[Ar]){var c=Di(r,t);c&&c[Ar]&&(r[t]=s.value,s={configurable:Fr in s?s[Fr]:c[Fr],enumerable:gr in s?s[gr]:c[gr],writable:!1})}return mr(r,t,s)}:mr:function(r,t,s){if($e(r),t=lu(t),$e(s),ii)try{return mr(r,t,s)}catch{}if(\"get\"in s||\"set\"in s)throw ci(\"Accessors not supported\");return\"value\"in s&&(r[t]=s.value),r}});var Ge=y((Ql,pu)=>{var li=oe(),hi=Ue(),pi=qe();pu.exports=li?function(e,r,t){return hi.f(e,r,pi(1,t))}:function(e,r,t){return e[r]=t,e}});var Ve=y((Kl,fu)=>{var fi=Q(),di=K(),vr=Me(),Ei=fi(Function.toString);di(vr.inspectSource)||(vr.inspectSource=function(e){return Ei(e)});fu.exports=vr.inspectSource});var Cu=y((Jl,Eu)=>{var Ci=G(),mi=K(),gi=Ve(),du=Ci.WeakMap;Eu.exports=mi(du)&&/native code/.test(gi(du))});var Fu=y((Zl,gu)=>{var Fi=hr(),Ai=fr(),mu=Fi(\"keys\");gu.exports=function(e){return mu[e]||(mu[e]=Ai(e))}});var _r=y((e2,Au)=>{Au.exports={}});var Bu=y((r2,Tu)=>{var vi=Cu(),yu=G(),Sr=Q(),_i=De(),Si=Ge(),yr=ae(),Tr=Me(),yi=Fu(),Ti=_r(),vu=\"Object already initialized\",br=yu.TypeError,Bi=yu.WeakMap,Xe,Ae,He,bi=function(e){return He(e)?Ae(e):Xe(e,{})},wi=function(e){return function(r){var t;if(!_i(r)||(t=Ae(r)).type!==e)throw br(\"Incompatible receiver, \"+e+\" required\");return t}};vi||Tr.state?(ie=Tr.state||(Tr.state=new Bi),_u=Sr(ie.get),Br=Sr(ie.has),Su=Sr(ie.set),Xe=function(e,r){if(Br(ie,e))throw new br(vu);return r.facade=e,Su(ie,e,r),r},Ae=function(e){return _u(ie,e)||{}},He=function(e){return Br(ie,e)}):(pe=yi(\"state\"),Ti[pe]=!0,Xe=function(e,r){if(yr(e,pe))throw new br(vu);return r.facade=e,Si(e,pe,r),r},Ae=function(e){return yr(e,pe)?e[pe]:{}},He=function(e){return yr(e,pe)});var ie,_u,Br,Su,pe;Tu.exports={set:Xe,get:Ae,has:He,enforce:bi,getterFor:wi}});var Nu=y((t2,wu)=>{var wr=oe(),Ni=ae(),bu=Function.prototype,Oi=wr&&Object.getOwnPropertyDescriptor,Nr=Ni(bu,\"name\"),qi=Nr&&function(){}.name===\"something\",Ii=Nr&&(!wr||wr&&Oi(bu,\"name\").configurable);wu.exports={EXISTS:Nr,PROPER:qi,CONFIGURABLE:Ii}});var xu=y((u2,Ru)=>{var Ri=G(),Ou=K(),xi=ae(),qu=Ge(),Pi=Le(),ki=Ve(),Iu=Bu(),Li=Nu().CONFIGURABLE,Mi=Iu.get,ji=Iu.enforce,$i=String(String).split(\"String\");(Ru.exports=function(e,r,t,s){var c=s?!!s.unsafe:!1,n=s?!!s.enumerable:!1,a=s?!!s.noTargetGet:!1,p=s&&s.name!==void 0?s.name:r,D;if(Ou(t)&&(String(p).slice(0,7)===\"Symbol(\"&&(p=\"[\"+String(p).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!xi(t,\"name\")||Li&&t.name!==p)&&qu(t,\"name\",p),D=ji(t),D.source||(D.source=$i.join(typeof p==\"string\"?p:\"\"))),e===Ri){n?e[r]=t:Pi(r,t);return}else c?!a&&e[r]&&(n=!0):delete e[r];n?e[r]=t:qu(e,r,t)})(Function.prototype,\"toString\",function(){return Ou(this)&&Mi(this).source||ki(this)})});var Or=y((n2,Pu)=>{var Ui=Math.ceil,Gi=Math.floor;Pu.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?Gi:Ui)(r)}});var Lu=y((s2,ku)=>{var Vi=Or(),Xi=Math.max,Hi=Math.min;ku.exports=function(e,r){var t=Vi(e);return t<0?Xi(t+r,0):Hi(t,r)}});var ju=y((a2,Mu)=>{var zi=Or(),Wi=Math.min;Mu.exports=function(e){return e>0?Wi(zi(e),9007199254740991):0}});var ve=y((i2,$u)=>{var Yi=ju();$u.exports=function(e){return Yi(e.length)}});var Vu=y((o2,Gu)=>{var Qi=Re(),Ki=Lu(),Ji=ve(),Uu=function(e){return function(r,t,s){var c=Qi(r),n=Ji(c),a=Ki(s,n),p;if(e&&t!=t){for(;n>a;)if(p=c[a++],p!=p)return!0}else for(;n>a;a++)if((e||a in c)&&c[a]===t)return e||a||0;return!e&&-1}};Gu.exports={includes:Uu(!0),indexOf:Uu(!1)}});var zu=y((c2,Hu)=>{var Zi=Q(),qr=ae(),eo=Re(),ro=Vu().indexOf,to=_r(),Xu=Zi([].push);Hu.exports=function(e,r){var t=eo(e),s=0,c=[],n;for(n in t)!qr(to,n)&&qr(t,n)&&Xu(c,n);for(;r.length>s;)qr(t,n=r[s++])&&(~ro(c,n)||Xu(c,n));return c}});var Yu=y((D2,Wu)=>{Wu.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var Ku=y(Qu=>{var uo=zu(),no=Yu(),so=no.concat(\"length\",\"prototype\");Qu.f=Object.getOwnPropertyNames||function(r){return uo(r,so)}});var Zu=y(Ju=>{Ju.f=Object.getOwnPropertySymbols});var rn=y((p2,en)=>{var ao=ge(),io=Q(),oo=Ku(),co=Zu(),Do=de(),lo=io([].concat);en.exports=ao(\"Reflect\",\"ownKeys\")||function(r){var t=oo.f(Do(r)),s=co.f;return s?lo(t,s(r)):t}});var nn=y((f2,un)=>{var tn=ae(),ho=rn(),po=Cr(),fo=Ue();un.exports=function(e,r,t){for(var s=ho(r),c=fo.f,n=po.f,a=0;a{var Eo=se(),Co=K(),mo=/#|\\.prototype\\./,_e=function(e,r){var t=Fo[go(e)];return t==vo?!0:t==Ao?!1:Co(r)?Eo(r):!!r},go=_e.normalize=function(e){return String(e).replace(mo,\".\").toLowerCase()},Fo=_e.data={},Ao=_e.NATIVE=\"N\",vo=_e.POLYFILL=\"P\";sn.exports=_e});var ze=y((E2,on)=>{var Ir=G(),_o=Cr().f,So=Ge(),yo=xu(),To=Le(),Bo=nn(),bo=an();on.exports=function(e,r){var t=e.target,s=e.global,c=e.stat,n,a,p,D,g,i;if(s?a=Ir:c?a=Ir[t]||To(t,{}):a=(Ir[t]||{}).prototype,a)for(p in r){if(g=r[p],e.noTargetGet?(i=_o(a,p),D=i&&i.value):D=a[p],n=bo(s?p:t+(c?\".\":\"#\")+p,e.forced),!n&&D!==void 0){if(typeof g==typeof D)continue;Bo(g,D)}(e.sham||D&&D.sham)&&So(g,\"sham\",!0),yo(a,p,g,e)}}});var cn=y(()=>{var wo=ze(),No=G();wo({global:!0},{globalThis:No})});var Dn=y(()=>{cn()});var Rr=y((A2,ln)=>{var Oo=Ie();ln.exports=Array.isArray||function(r){return Oo(r)==\"Array\"}});var xr=y((v2,pn)=>{var hn=Q(),qo=Fe(),Io=Ne(),Ro=hn(hn.bind);pn.exports=function(e,r){return qo(e),r===void 0?e:Io?Ro(e,r):function(){return e.apply(r,arguments)}}});var En=y((_2,dn)=>{\"use strict\";var xo=G(),Po=Rr(),ko=ve(),Lo=xr(),Mo=xo.TypeError,fn=function(e,r,t,s,c,n,a,p){for(var D=c,g=0,i=a?Lo(a,p):!1,l,h;g0&&Po(l))h=ko(l),D=fn(e,r,l,h,D,n-1)-1;else{if(D>=9007199254740991)throw Mo(\"Exceed the acceptable array length\");e[D]=l}D++}g++}return D};dn.exports=fn});var gn=y((S2,mn)=>{var jo=he(),$o=jo(\"toStringTag\"),Cn={};Cn[$o]=\"z\";mn.exports=String(Cn)===\"[object z]\"});var Pr=y((y2,Fn)=>{var Uo=G(),Go=gn(),Vo=K(),We=Ie(),Xo=he(),Ho=Xo(\"toStringTag\"),zo=Uo.Object,Wo=We(function(){return arguments}())==\"Arguments\",Yo=function(e,r){try{return e[r]}catch{}};Fn.exports=Go?We:function(e){var r,t,s;return e===void 0?\"Undefined\":e===null?\"Null\":typeof(t=Yo(r=zo(e),Ho))==\"string\"?t:Wo?We(r):(s=We(r))==\"Object\"&&Vo(r.callee)?\"Arguments\":s}});var Tn=y((T2,yn)=>{var Qo=Q(),Ko=se(),An=K(),Jo=Pr(),Zo=ge(),ec=Ve(),vn=function(){},rc=[],_n=Zo(\"Reflect\",\"construct\"),kr=/^\\s*(?:class|function)\\b/,tc=Qo(kr.exec),uc=!kr.exec(vn),Se=function(r){if(!An(r))return!1;try{return _n(vn,rc,r),!0}catch{return!1}},Sn=function(r){if(!An(r))return!1;switch(Jo(r)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return uc||!!tc(kr,ec(r))}catch{return!0}};Sn.sham=!0;yn.exports=!_n||Ko(function(){var e;return Se(Se.call)||!Se(Object)||!Se(function(){e=!0})||e})?Sn:Se});var Nn=y((B2,wn)=>{var nc=G(),Bn=Rr(),sc=Tn(),ac=De(),ic=he(),oc=ic(\"species\"),bn=nc.Array;wn.exports=function(e){var r;return Bn(e)&&(r=e.constructor,sc(r)&&(r===bn||Bn(r.prototype))?r=void 0:ac(r)&&(r=r[oc],r===null&&(r=void 0))),r===void 0?bn:r}});var qn=y((b2,On)=>{var cc=Nn();On.exports=function(e,r){return new(cc(e))(r===0?0:r)}});var In=y(()=>{\"use strict\";var Dc=ze(),lc=En(),hc=Fe(),pc=pr(),fc=ve(),dc=qn();Dc({target:\"Array\",proto:!0},{flatMap:function(r){var t=pc(this),s=fc(t),c;return hc(r),c=dc(t,0),c.length=lc(c,t,t,s,0,1,r,arguments.length>1?arguments[1]:void 0),c}})});var Lr=y((O2,Rn)=>{Rn.exports={}});var Pn=y((q2,xn)=>{var Ec=he(),Cc=Lr(),mc=Ec(\"iterator\"),gc=Array.prototype;xn.exports=function(e){return e!==void 0&&(Cc.Array===e||gc[mc]===e)}});var Mr=y((I2,Ln)=>{var Fc=Pr(),kn=ke(),Ac=Lr(),vc=he(),_c=vc(\"iterator\");Ln.exports=function(e){if(e!=null)return kn(e,_c)||kn(e,\"@@iterator\")||Ac[Fc(e)]}});var jn=y((R2,Mn)=>{var Sc=G(),yc=ce(),Tc=Fe(),Bc=de(),bc=Pe(),wc=Mr(),Nc=Sc.TypeError;Mn.exports=function(e,r){var t=arguments.length<2?wc(e):r;if(Tc(t))return Bc(yc(t,e));throw Nc(bc(e)+\" is not iterable\")}});var Gn=y((x2,Un)=>{var Oc=ce(),$n=de(),qc=ke();Un.exports=function(e,r,t){var s,c;$n(e);try{if(s=qc(e,\"return\"),!s){if(r===\"throw\")throw t;return t}s=Oc(s,e)}catch(n){c=!0,s=n}if(r===\"throw\")throw t;if(c)throw s;return $n(s),t}});var Wn=y((P2,zn)=>{var Ic=G(),Rc=xr(),xc=ce(),Pc=de(),kc=Pe(),Lc=Pn(),Mc=ve(),Vn=nr(),jc=jn(),$c=Mr(),Xn=Gn(),Uc=Ic.TypeError,Ye=function(e,r){this.stopped=e,this.result=r},Hn=Ye.prototype;zn.exports=function(e,r,t){var s=t&&t.that,c=!!(t&&t.AS_ENTRIES),n=!!(t&&t.IS_ITERATOR),a=!!(t&&t.INTERRUPTED),p=Rc(r,s),D,g,i,l,h,C,d,m=function(B){return D&&Xn(D,\"normal\",B),new Ye(!0,B)},T=function(B){return c?(Pc(B),a?p(B[0],B[1],m):p(B[0],B[1])):a?p(B,m):p(B)};if(n)D=e;else{if(g=$c(e),!g)throw Uc(kc(e)+\" is not iterable\");if(Lc(g)){for(i=0,l=Mc(e);l>i;i++)if(h=T(e[i]),h&&Vn(Hn,h))return h;return new Ye(!1)}D=jc(e,g)}for(C=D.next;!(d=xc(C,D)).done;){try{h=T(d.value)}catch(B){Xn(D,\"throw\",B)}if(typeof h==\"object\"&&h&&Vn(Hn,h))return h}return new Ye(!1)}});var Qn=y((k2,Yn)=>{\"use strict\";var Gc=je(),Vc=Ue(),Xc=qe();Yn.exports=function(e,r,t){var s=Gc(r);s in e?Vc.f(e,s,Xc(0,t)):e[s]=t}});var Kn=y(()=>{var Hc=ze(),zc=Wn(),Wc=Qn();Hc({target:\"Object\",stat:!0},{fromEntries:function(r){var t={};return zc(r,function(s,c){Wc(t,s,c)},{AS_ENTRIES:!0}),t}})});var il=y((j2,Bs)=>{var Yc=[\"cliName\",\"cliCategory\",\"cliDescription\"],Jn,Zn,es,rs,ts,us;function Qc(e,r){if(e==null)return{};var t=Kc(e,r),s,c;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(c=0;c=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}function Kc(e,r){if(e==null)return{};var t={},s=Object.keys(e),c,n;for(n=0;n=0)&&(t[c]=e[c]);return t}function Ee(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}Dn();In();Kn();var Jc=Object.create,Je=Object.defineProperty,Zc=Object.getOwnPropertyDescriptor,$r=Object.getOwnPropertyNames,eD=Object.getPrototypeOf,rD=Object.prototype.hasOwnProperty,Ce=(e,r)=>function(){return e&&(r=(0,e[$r(e)[0]])(e=0)),r},I=(e,r)=>function(){return r||(0,e[$r(e)[0]])((r={exports:{}}).exports,r),r.exports},cs=(e,r)=>{for(var t in r)Je(e,t,{get:r[t],enumerable:!0})},Ds=(e,r,t,s)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let c of $r(r))!rD.call(e,c)&&c!==t&&Je(e,c,{get:()=>r[c],enumerable:!(s=Zc(r,c))||s.enumerable});return e},tD=(e,r,t)=>(t=e!=null?Jc(eD(e)):{},Ds(r||!e||!e.__esModule?Je(t,\"default\",{value:e,enumerable:!0}):t,e)),ls=e=>Ds(Je({},\"__esModule\",{value:!0}),e),ns,ss,ye,q=Ce({\"\"(){ns={},ss=[],ye={env:ns,argv:ss}}}),hs=I({\"node_modules/angular-html-parser/lib/compiler/src/chars.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.$EOF=0,e.$BSPACE=8,e.$TAB=9,e.$LF=10,e.$VTAB=11,e.$FF=12,e.$CR=13,e.$SPACE=32,e.$BANG=33,e.$DQ=34,e.$HASH=35,e.$$=36,e.$PERCENT=37,e.$AMPERSAND=38,e.$SQ=39,e.$LPAREN=40,e.$RPAREN=41,e.$STAR=42,e.$PLUS=43,e.$COMMA=44,e.$MINUS=45,e.$PERIOD=46,e.$SLASH=47,e.$COLON=58,e.$SEMICOLON=59,e.$LT=60,e.$EQ=61,e.$GT=62,e.$QUESTION=63,e.$0=48,e.$7=55,e.$9=57,e.$A=65,e.$E=69,e.$F=70,e.$X=88,e.$Z=90,e.$LBRACKET=91,e.$BACKSLASH=92,e.$RBRACKET=93,e.$CARET=94,e.$_=95,e.$a=97,e.$b=98,e.$e=101,e.$f=102,e.$n=110,e.$r=114,e.$t=116,e.$u=117,e.$v=118,e.$x=120,e.$z=122,e.$LBRACE=123,e.$BAR=124,e.$RBRACE=125,e.$NBSP=160,e.$PIPE=124,e.$TILDA=126,e.$AT=64,e.$BT=96;function r(p){return p>=e.$TAB&&p<=e.$SPACE||p==e.$NBSP}e.isWhitespace=r;function t(p){return e.$0<=p&&p<=e.$9}e.isDigit=t;function s(p){return p>=e.$a&&p<=e.$z||p>=e.$A&&p<=e.$Z}e.isAsciiLetter=s;function c(p){return p>=e.$a&&p<=e.$f||p>=e.$A&&p<=e.$F||t(p)}e.isAsciiHexDigit=c;function n(p){return p===e.$LF||p===e.$CR}e.isNewLine=n;function a(p){return e.$0<=p&&p<=e.$7}e.isOctalDigit=a}}),uD=I({\"node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=class{constructor(s,c,n){this.filePath=s,this.name=c,this.members=n}assertNoMembers(){if(this.members.length)throw new Error(\"Illegal state: symbol without members expected, but got \".concat(JSON.stringify(this),\".\"))}};e.StaticSymbol=r;var t=class{constructor(){this.cache=new Map}get(s,c,n){n=n||[];let a=n.length?\".\".concat(n.join(\".\")):\"\",p='\"'.concat(s,'\".').concat(c).concat(a),D=this.cache.get(p);return D||(D=new r(s,c,n),this.cache.set(p,D)),D}};e.StaticSymbolCache=t}}),nD=I({\"node_modules/angular-html-parser/lib/compiler/src/util.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=/-+([a-z0-9])/g;function t(o){return o.replace(r,function(){for(var E=arguments.length,f=new Array(E),F=0;Fa(f,this,E))}visitStringMap(o,E){let f={};return Object.keys(o).forEach(F=>{f[F]=a(o[F],this,E)}),f}visitPrimitive(o,E){return o}visitOther(o,E){return o}};e.ValueTransformer=g,e.SyncAsync={assertSync:o=>{if(_(o))throw new Error(\"Illegal state: value cannot be a promise\");return o},then:(o,E)=>_(o)?o.then(E):E(o),all:o=>o.some(_)?Promise.all(o):o};function i(o){throw new Error(\"Internal Error: \".concat(o))}e.error=i;function l(o,E){let f=Error(o);return f[h]=!0,E&&(f[C]=E),f}e.syntaxError=l;var h=\"ngSyntaxError\",C=\"ngParseErrors\";function d(o){return o[h]}e.isSyntaxError=d;function m(o){return o[C]||[]}e.getParseErrors=m;function T(o){return o.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g,\"\\\\$1\")}e.escapeRegExp=T;var B=Object.getPrototypeOf({});function A(o){return typeof o==\"object\"&&o!==null&&Object.getPrototypeOf(o)===B}function N(o){let E=\"\";for(let f=0;f=55296&&F<=56319&&o.length>f+1){let P=o.charCodeAt(f+1);P>=56320&&P<=57343&&(f++,F=(F-55296<<10)+P-56320+65536)}F<=127?E+=String.fromCharCode(F):F<=2047?E+=String.fromCharCode(F>>6&31|192,F&63|128):F<=65535?E+=String.fromCharCode(F>>12|224,F>>6&63|128,F&63|128):F<=2097151&&(E+=String.fromCharCode(F>>18&7|240,F>>12&63|128,F>>6&63|128,F&63|128))}return E}e.utf8Encode=N;function R(o){if(typeof o==\"string\")return o;if(o instanceof Array)return\"[\"+o.map(R).join(\", \")+\"]\";if(o==null)return\"\"+o;if(o.overriddenName)return\"\".concat(o.overriddenName);if(o.name)return\"\".concat(o.name);if(!o.toString)return\"object\";let E=o.toString();if(E==null)return\"\"+E;let f=E.indexOf(`\n`);return f===-1?E:E.substring(0,f)}e.stringify=R;function $(o){return typeof o==\"function\"&&o.hasOwnProperty(\"__forward_ref__\")?o():o}e.resolveForwardRef=$;function _(o){return!!o&&typeof o.then==\"function\"}e.isPromise=_;var O=class{constructor(o){this.full=o;let E=o.split(\".\");this.major=E[0],this.minor=E[1],this.patch=E.slice(2).join(\".\")}};e.Version=O;var x=typeof window<\"u\"&&window,k=typeof self<\"u\"&&typeof WorkerGlobalScope<\"u\"&&self instanceof WorkerGlobalScope&&self,M=typeof globalThis<\"u\"&&globalThis,u=M||x||k;e.global=u}}),sD=I({\"node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=uD(),t=nD(),s=/^(?:(?:\\[([^\\]]+)\\])|(?:\\(([^\\)]+)\\)))|(\\@[-\\w]+)$/;function c(f){return f.replace(/\\W/g,\"_\")}e.sanitizeIdentifier=c;var n=0;function a(f){if(!f||!f.reference)return null;let F=f.reference;if(F instanceof r.StaticSymbol)return F.name;if(F.__anonymousType)return F.__anonymousType;let P=t.stringify(F);return P.indexOf(\"(\")>=0?(P=\"anonymous_\".concat(n++),F.__anonymousType=P):P=c(P),P}e.identifierName=a;function p(f){let F=f.reference;return F instanceof r.StaticSymbol?F.filePath:\"./\".concat(t.stringify(F))}e.identifierModuleUrl=p;function D(f,F){return\"View_\".concat(a({reference:f}),\"_\").concat(F)}e.viewClassName=D;function g(f){return\"RenderType_\".concat(a({reference:f}))}e.rendererTypeName=g;function i(f){return\"HostView_\".concat(a({reference:f}))}e.hostViewClassName=i;function l(f){return\"\".concat(a({reference:f}),\"NgFactory\")}e.componentFactoryName=l;var h;(function(f){f[f.Pipe=0]=\"Pipe\",f[f.Directive=1]=\"Directive\",f[f.NgModule=2]=\"NgModule\",f[f.Injectable=3]=\"Injectable\"})(h=e.CompileSummaryKind||(e.CompileSummaryKind={}));function C(f){return f.value!=null?c(f.value):a(f.identifier)}e.tokenName=C;function d(f){return f.identifier!=null?f.identifier.reference:f.value}e.tokenReference=d;var m=class{constructor(){let{moduleUrl:f,styles:F,styleUrls:P}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.moduleUrl=f||null,this.styles=_(F),this.styleUrls=_(P)}};e.CompileStylesheetMetadata=m;var T=class{constructor(f){let{encapsulation:F,template:P,templateUrl:j,htmlAst:W,styles:X,styleUrls:H,externalStylesheets:z,animations:J,ngContentSelectors:Z,interpolation:ee,isInline:v,preserveWhitespaces:S}=f;if(this.encapsulation=F,this.template=P,this.templateUrl=j,this.htmlAst=W,this.styles=_(X),this.styleUrls=_(H),this.externalStylesheets=_(z),this.animations=J?x(J):[],this.ngContentSelectors=Z||[],ee&&ee.length!=2)throw new Error(\"'interpolation' should have a start and an end symbol.\");this.interpolation=ee,this.isInline=v,this.preserveWhitespaces=S}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};e.CompileTemplateMetadata=T;var B=class{static create(f){let{isHost:F,type:P,isComponent:j,selector:W,exportAs:X,changeDetection:H,inputs:z,outputs:J,host:Z,providers:ee,viewProviders:v,queries:S,guards:b,viewQueries:w,entryComponents:L,template:U,componentViewType:V,rendererType:Y,componentFactory:ue}=f,Be={},be={},Vr={};Z!=null&&Object.keys(Z).forEach(re=>{let ne=Z[re],me=re.match(s);me===null?Vr[re]=ne:me[1]!=null?be[me[1]]=ne:me[2]!=null&&(Be[me[2]]=ne)});let Xr={};z!=null&&z.forEach(re=>{let ne=t.splitAtColon(re,[re,re]);Xr[ne[0]]=ne[1]});let Hr={};return J!=null&&J.forEach(re=>{let ne=t.splitAtColon(re,[re,re]);Hr[ne[0]]=ne[1]}),new B({isHost:F,type:P,isComponent:!!j,selector:W,exportAs:X,changeDetection:H,inputs:Xr,outputs:Hr,hostListeners:Be,hostProperties:be,hostAttributes:Vr,providers:ee,viewProviders:v,queries:S,guards:b,viewQueries:w,entryComponents:L,template:U,componentViewType:V,rendererType:Y,componentFactory:ue})}constructor(f){let{isHost:F,type:P,isComponent:j,selector:W,exportAs:X,changeDetection:H,inputs:z,outputs:J,hostListeners:Z,hostProperties:ee,hostAttributes:v,providers:S,viewProviders:b,queries:w,guards:L,viewQueries:U,entryComponents:V,template:Y,componentViewType:ue,rendererType:Be,componentFactory:be}=f;this.isHost=!!F,this.type=P,this.isComponent=j,this.selector=W,this.exportAs=X,this.changeDetection=H,this.inputs=z,this.outputs=J,this.hostListeners=Z,this.hostProperties=ee,this.hostAttributes=v,this.providers=_(S),this.viewProviders=_(b),this.queries=_(w),this.guards=L,this.viewQueries=_(U),this.entryComponents=_(V),this.template=Y,this.componentViewType=ue,this.rendererType=Be,this.componentFactory=be}toSummary(){return{summaryKind:h.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}};e.CompileDirectiveMetadata=B;var A=class{constructor(f){let{type:F,name:P,pure:j}=f;this.type=F,this.name=P,this.pure=!!j}toSummary(){return{summaryKind:h.Pipe,type:this.type,name:this.name,pure:this.pure}}};e.CompilePipeMetadata=A;var N=class{};e.CompileShallowModuleMetadata=N;var R=class{constructor(f){let{type:F,providers:P,declaredDirectives:j,exportedDirectives:W,declaredPipes:X,exportedPipes:H,entryComponents:z,bootstrapComponents:J,importedModules:Z,exportedModules:ee,schemas:v,transitiveModule:S,id:b}=f;this.type=F||null,this.declaredDirectives=_(j),this.exportedDirectives=_(W),this.declaredPipes=_(X),this.exportedPipes=_(H),this.providers=_(P),this.entryComponents=_(z),this.bootstrapComponents=_(J),this.importedModules=_(Z),this.exportedModules=_(ee),this.schemas=_(v),this.id=b||null,this.transitiveModule=S||null}toSummary(){let f=this.transitiveModule;return{summaryKind:h.NgModule,type:this.type,entryComponents:f.entryComponents,providers:f.providers,modules:f.modules,exportedDirectives:f.exportedDirectives,exportedPipes:f.exportedPipes}}};e.CompileNgModuleMetadata=R;var $=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(f,F){this.providers.push({provider:f,module:F})}addDirective(f){this.directivesSet.has(f.reference)||(this.directivesSet.add(f.reference),this.directives.push(f))}addExportedDirective(f){this.exportedDirectivesSet.has(f.reference)||(this.exportedDirectivesSet.add(f.reference),this.exportedDirectives.push(f))}addPipe(f){this.pipesSet.has(f.reference)||(this.pipesSet.add(f.reference),this.pipes.push(f))}addExportedPipe(f){this.exportedPipesSet.has(f.reference)||(this.exportedPipesSet.add(f.reference),this.exportedPipes.push(f))}addModule(f){this.modulesSet.has(f.reference)||(this.modulesSet.add(f.reference),this.modules.push(f))}addEntryComponent(f){this.entryComponentsSet.has(f.componentType)||(this.entryComponentsSet.add(f.componentType),this.entryComponents.push(f))}};e.TransitiveCompileNgModuleMetadata=$;function _(f){return f||[]}var O=class{constructor(f,F){let{useClass:P,useValue:j,useExisting:W,useFactory:X,deps:H,multi:z}=F;this.token=f,this.useClass=P||null,this.useValue=j,this.useExisting=W,this.useFactory=X||null,this.dependencies=H||null,this.multi=!!z}};e.ProviderMeta=O;function x(f){return f.reduce((F,P)=>{let j=Array.isArray(P)?x(P):P;return F.concat(j)},[])}e.flatten=x;function k(f){return f.replace(/(\\w+:\\/\\/[\\w:-]+)?(\\/+)?/,\"ng:///\")}function M(f,F,P){let j;return P.isInline?F.type.reference instanceof r.StaticSymbol?j=\"\".concat(F.type.reference.filePath,\".\").concat(F.type.reference.name,\".html\"):j=\"\".concat(a(f),\"/\").concat(a(F.type),\".html\"):j=P.templateUrl,F.type.reference instanceof r.StaticSymbol?j:k(j)}e.templateSourceUrl=M;function u(f,F){let P=f.moduleUrl.split(/\\/\\\\/g),j=P[P.length-1];return k(\"css/\".concat(F).concat(j,\".ngstyle.js\"))}e.sharedStylesheetJitUrl=u;function o(f){return k(\"\".concat(a(f.type),\"/module.ngfactory.js\"))}e.ngModuleJitUrl=o;function E(f,F){return k(\"\".concat(a(f),\"/\").concat(a(F.type),\".ngfactory.js\"))}e.templateJitUrl=E}}),Te=I({\"node_modules/angular-html-parser/lib/compiler/src/parse_util.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=hs(),t=sD(),s=class{constructor(i,l,h,C){this.file=i,this.offset=l,this.line=h,this.col=C}toString(){return this.offset!=null?\"\".concat(this.file.url,\"@\").concat(this.line,\":\").concat(this.col):this.file.url}moveBy(i){let l=this.file.content,h=l.length,C=this.offset,d=this.line,m=this.col;for(;C>0&&i<0;)if(C--,i++,l.charCodeAt(C)==r.$LF){d--;let B=l.substr(0,C-1).lastIndexOf(String.fromCharCode(r.$LF));m=B>0?C-B:C}else m--;for(;C0;){let T=l.charCodeAt(C);C++,i--,T==r.$LF?(d++,m=0):m++}return new s(this.file,C,d,m)}getContext(i,l){let h=this.file.content,C=this.offset;if(C!=null){C>h.length-1&&(C=h.length-1);let d=C,m=0,T=0;for(;m0&&(C--,m++,!(h[C]==`\n`&&++T==l)););for(m=0,T=0;m2&&arguments[2]!==void 0?arguments[2]:null;this.start=i,this.end=l,this.details=h}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}};e.ParseSourceSpan=n,e.EMPTY_PARSE_LOCATION=new s(new c(\"\",\"\"),0,0,0),e.EMPTY_SOURCE_SPAN=new n(e.EMPTY_PARSE_LOCATION,e.EMPTY_PARSE_LOCATION);var a;(function(i){i[i.WARNING=0]=\"WARNING\",i[i.ERROR=1]=\"ERROR\"})(a=e.ParseErrorLevel||(e.ParseErrorLevel={}));var p=class{constructor(i,l){let h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:a.ERROR;this.span=i,this.msg=l,this.level=h}contextualMessage(){let i=this.span.start.getContext(100,3);return i?\"\".concat(this.msg,' (\"').concat(i.before,\"[\").concat(a[this.level],\" ->]\").concat(i.after,'\")'):this.msg}toString(){let i=this.span.details?\", \".concat(this.span.details):\"\";return\"\".concat(this.contextualMessage(),\": \").concat(this.span.start).concat(i)}};e.ParseError=p;function D(i,l){let h=t.identifierModuleUrl(l),C=h!=null?\"in \".concat(i,\" \").concat(t.identifierName(l),\" in \").concat(h):\"in \".concat(i,\" \").concat(t.identifierName(l)),d=new c(\"\",C);return new n(new s(d,-1,-1,-1),new s(d,-1,-1,-1))}e.typeSourceSpan=D;function g(i,l,h){let C=\"in \".concat(i,\" \").concat(l,\" in \").concat(h),d=new c(\"\",C);return new n(new s(d,-1,-1,-1),new s(d,-1,-1,-1))}e.r3JitTypeSourceSpan=g}}),aD=I({\"src/utils/front-matter/parse.js\"(e,r){\"use strict\";q();var t=new RegExp(\"^(?-{3}|\\\\+{3})(?[^\\\\n]*)\\\\n(?:|(?.*?)\\\\n)(?\\\\k|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function s(c){let n=c.match(t);if(!n)return{content:c};let{startDelimiter:a,language:p,value:D=\"\",endDelimiter:g}=n.groups,i=p.trim()||\"yaml\";if(a===\"+++\"&&(i=\"toml\"),i!==\"yaml\"&&a!==g)return{content:c};let[l]=n;return{frontMatter:{type:\"front-matter\",lang:i,value:D,startDelimiter:a,endDelimiter:g,raw:l.replace(/\\n$/,\"\")},content:l.replace(/[^\\n]/g,\" \")+c.slice(l.length)}}r.exports=s}}),ps=I({\"src/utils/get-last.js\"(e,r){\"use strict\";q();var t=s=>s[s.length-1];r.exports=t}}),iD=I({\"src/common/parser-create-error.js\"(e,r){\"use strict\";q();function t(s,c){let n=new SyntaxError(s+\" (\"+c.start.line+\":\"+c.start.column+\")\");return n.loc=c,n}r.exports=t}}),fs={};cs(fs,{default:()=>oD});function oD(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var cD=Ce({\"node_modules/escape-string-regexp/index.js\"(){q()}}),ds=I({\"node_modules/semver/internal/debug.js\"(e,r){q();var t=typeof ye==\"object\"&&ye.env&&ye.env.NODE_DEBUG&&/\\bsemver\\b/i.test(ye.env.NODE_DEBUG)?function(){for(var s=arguments.length,c=new Array(s),n=0;n{};r.exports=t}}),Es=I({\"node_modules/semver/internal/constants.js\"(e,r){q();var t=\"2.0.0\",s=256,c=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:s,MAX_SAFE_INTEGER:c,MAX_SAFE_COMPONENT_LENGTH:n}}}),DD=I({\"node_modules/semver/internal/re.js\"(e,r){q();var{MAX_SAFE_COMPONENT_LENGTH:t}=Es(),s=ds();e=r.exports={};var c=e.re=[],n=e.src=[],a=e.t={},p=0,D=(g,i,l)=>{let h=p++;s(g,h,i),a[g]=h,n[h]=i,c[h]=new RegExp(i,l?\"g\":void 0)};D(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\"),D(\"NUMERICIDENTIFIERLOOSE\",\"[0-9]+\"),D(\"NONNUMERICIDENTIFIER\",\"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\"),D(\"MAINVERSION\",\"(\".concat(n[a.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIER],\")\")),D(\"MAINVERSIONLOOSE\",\"(\".concat(n[a.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIERLOOSE],\")\")),D(\"PRERELEASEIDENTIFIER\",\"(?:\".concat(n[a.NUMERICIDENTIFIER],\"|\").concat(n[a.NONNUMERICIDENTIFIER],\")\")),D(\"PRERELEASEIDENTIFIERLOOSE\",\"(?:\".concat(n[a.NUMERICIDENTIFIERLOOSE],\"|\").concat(n[a.NONNUMERICIDENTIFIER],\")\")),D(\"PRERELEASE\",\"(?:-(\".concat(n[a.PRERELEASEIDENTIFIER],\"(?:\\\\.\").concat(n[a.PRERELEASEIDENTIFIER],\")*))\")),D(\"PRERELEASELOOSE\",\"(?:-?(\".concat(n[a.PRERELEASEIDENTIFIERLOOSE],\"(?:\\\\.\").concat(n[a.PRERELEASEIDENTIFIERLOOSE],\")*))\")),D(\"BUILDIDENTIFIER\",\"[0-9A-Za-z-]+\"),D(\"BUILD\",\"(?:\\\\+(\".concat(n[a.BUILDIDENTIFIER],\"(?:\\\\.\").concat(n[a.BUILDIDENTIFIER],\")*))\")),D(\"FULLPLAIN\",\"v?\".concat(n[a.MAINVERSION]).concat(n[a.PRERELEASE],\"?\").concat(n[a.BUILD],\"?\")),D(\"FULL\",\"^\".concat(n[a.FULLPLAIN],\"$\")),D(\"LOOSEPLAIN\",\"[v=\\\\s]*\".concat(n[a.MAINVERSIONLOOSE]).concat(n[a.PRERELEASELOOSE],\"?\").concat(n[a.BUILD],\"?\")),D(\"LOOSE\",\"^\".concat(n[a.LOOSEPLAIN],\"$\")),D(\"GTLT\",\"((?:<|>)?=?)\"),D(\"XRANGEIDENTIFIERLOOSE\",\"\".concat(n[a.NUMERICIDENTIFIERLOOSE],\"|x|X|\\\\*\")),D(\"XRANGEIDENTIFIER\",\"\".concat(n[a.NUMERICIDENTIFIER],\"|x|X|\\\\*\")),D(\"XRANGEPLAIN\",\"[v=\\\\s]*(\".concat(n[a.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIER],\")(?:\").concat(n[a.PRERELEASE],\")?\").concat(n[a.BUILD],\"?)?)?\")),D(\"XRANGEPLAINLOOSE\",\"[v=\\\\s]*(\".concat(n[a.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIERLOOSE],\")(?:\").concat(n[a.PRERELEASELOOSE],\")?\").concat(n[a.BUILD],\"?)?)?\")),D(\"XRANGE\",\"^\".concat(n[a.GTLT],\"\\\\s*\").concat(n[a.XRANGEPLAIN],\"$\")),D(\"XRANGELOOSE\",\"^\".concat(n[a.GTLT],\"\\\\s*\").concat(n[a.XRANGEPLAINLOOSE],\"$\")),D(\"COERCE\",\"(^|[^\\\\d])(\\\\d{1,\".concat(t,\"})(?:\\\\.(\\\\d{1,\").concat(t,\"}))?(?:\\\\.(\\\\d{1,\").concat(t,\"}))?(?:$|[^\\\\d])\")),D(\"COERCERTL\",n[a.COERCE],!0),D(\"LONETILDE\",\"(?:~>?)\"),D(\"TILDETRIM\",\"(\\\\s*)\".concat(n[a.LONETILDE],\"\\\\s+\"),!0),e.tildeTrimReplace=\"$1~\",D(\"TILDE\",\"^\".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAIN],\"$\")),D(\"TILDELOOSE\",\"^\".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAINLOOSE],\"$\")),D(\"LONECARET\",\"(?:\\\\^)\"),D(\"CARETTRIM\",\"(\\\\s*)\".concat(n[a.LONECARET],\"\\\\s+\"),!0),e.caretTrimReplace=\"$1^\",D(\"CARET\",\"^\".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAIN],\"$\")),D(\"CARETLOOSE\",\"^\".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAINLOOSE],\"$\")),D(\"COMPARATORLOOSE\",\"^\".concat(n[a.GTLT],\"\\\\s*(\").concat(n[a.LOOSEPLAIN],\")$|^$\")),D(\"COMPARATOR\",\"^\".concat(n[a.GTLT],\"\\\\s*(\").concat(n[a.FULLPLAIN],\")$|^$\")),D(\"COMPARATORTRIM\",\"(\\\\s*)\".concat(n[a.GTLT],\"\\\\s*(\").concat(n[a.LOOSEPLAIN],\"|\").concat(n[a.XRANGEPLAIN],\")\"),!0),e.comparatorTrimReplace=\"$1$2$3\",D(\"HYPHENRANGE\",\"^\\\\s*(\".concat(n[a.XRANGEPLAIN],\")\\\\s+-\\\\s+(\").concat(n[a.XRANGEPLAIN],\")\\\\s*$\")),D(\"HYPHENRANGELOOSE\",\"^\\\\s*(\".concat(n[a.XRANGEPLAINLOOSE],\")\\\\s+-\\\\s+(\").concat(n[a.XRANGEPLAINLOOSE],\")\\\\s*$\")),D(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\"),D(\"GTE0\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\"),D(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\")}}),lD=I({\"node_modules/semver/internal/parse-options.js\"(e,r){q();var t=[\"includePrerelease\",\"loose\",\"rtl\"],s=c=>c?typeof c!=\"object\"?{loose:!0}:t.filter(n=>c[n]).reduce((n,a)=>(n[a]=!0,n),{}):{};r.exports=s}}),hD=I({\"node_modules/semver/internal/identifiers.js\"(e,r){q();var t=/^[0-9]+$/,s=(n,a)=>{let p=t.test(n),D=t.test(a);return p&&D&&(n=+n,a=+a),n===a?0:p&&!D?-1:D&&!p?1:ns(a,n);r.exports={compareIdentifiers:s,rcompareIdentifiers:c}}}),pD=I({\"node_modules/semver/classes/semver.js\"(e,r){q();var t=ds(),{MAX_LENGTH:s,MAX_SAFE_INTEGER:c}=Es(),{re:n,t:a}=DD(),p=lD(),{compareIdentifiers:D}=hD(),g=class{constructor(i,l){if(l=p(l),i instanceof g){if(i.loose===!!l.loose&&i.includePrerelease===!!l.includePrerelease)return i;i=i.version}else if(typeof i!=\"string\")throw new TypeError(\"Invalid Version: \".concat(i));if(i.length>s)throw new TypeError(\"version is longer than \".concat(s,\" characters\"));t(\"SemVer\",i,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let h=i.trim().match(l.loose?n[a.LOOSE]:n[a.FULL]);if(!h)throw new TypeError(\"Invalid Version: \".concat(i));if(this.raw=i,this.major=+h[1],this.minor=+h[2],this.patch=+h[3],this.major>c||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>c||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>c||this.patch<0)throw new TypeError(\"Invalid patch version\");h[4]?this.prerelease=h[4].split(\".\").map(C=>{if(/^[0-9]+$/.test(C)){let d=+C;if(d>=0&&d=0;)typeof this.prerelease[h]==\"number\"&&(this.prerelease[h]++,h=-2);h===-1&&this.prerelease.push(0)}l&&(D(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error(\"invalid increment argument: \".concat(i))}return this.format(),this.raw=this.version,this}};r.exports=g}}),Ur=I({\"node_modules/semver/functions/compare.js\"(e,r){q();var t=pD(),s=(c,n,a)=>new t(c,a).compare(new t(n,a));r.exports=s}}),fD=I({\"node_modules/semver/functions/lt.js\"(e,r){q();var t=Ur(),s=(c,n,a)=>t(c,n,a)<0;r.exports=s}}),dD=I({\"node_modules/semver/functions/gte.js\"(e,r){q();var t=Ur(),s=(c,n,a)=>t(c,n,a)>=0;r.exports=s}}),ED=I({\"src/utils/arrayify.js\"(e,r){\"use strict\";q(),r.exports=(t,s)=>Object.entries(t).map(c=>{let[n,a]=c;return Object.assign({[s]:n},a)})}}),CD=I({\"package.json\"(e,r){r.exports={version:\"2.7.1\"}}}),mD=I({\"node_modules/outdent/lib/index.js\"(e,r){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.outdent=void 0;function t(){for(var A=[],N=0;Ntypeof l==\"string\"||typeof l==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",since:\"1.16.0\",description:\"JavaScript\"},{value:\"babel-flow\",since:\"1.16.0\",description:\"Flow\"},{value:\"babel-ts\",since:\"2.0.0\",description:\"TypeScript\"},{value:\"typescript\",since:\"1.4.0\",description:\"TypeScript\"},{value:\"acorn\",since:\"2.6.0\",description:\"JavaScript\"},{value:\"espree\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"meriyah\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"css\",since:\"1.7.1\",description:\"CSS\"},{value:\"less\",since:\"1.7.1\",description:\"Less\"},{value:\"scss\",since:\"1.7.1\",description:\"SCSS\"},{value:\"json\",since:\"1.5.0\",description:\"JSON\"},{value:\"json5\",since:\"1.13.0\",description:\"JSON5\"},{value:\"json-stringify\",since:\"1.13.0\",description:\"JSON.stringify\"},{value:\"graphql\",since:\"1.5.0\",description:\"GraphQL\"},{value:\"markdown\",since:\"1.8.0\",description:\"Markdown\"},{value:\"mdx\",since:\"1.15.0\",description:\"MDX\"},{value:\"vue\",since:\"1.10.0\",description:\"Vue\"},{value:\"yaml\",since:\"1.14.0\",description:\"YAML\"},{value:\"glimmer\",since:\"2.3.0\",description:\"Ember / Handlebars\"},{value:\"html\",since:\"1.15.0\",description:\"HTML\"},{value:\"angular\",since:\"1.15.0\",description:\"Angular\"},{value:\"lwc\",since:\"1.17.0\",description:\"Lightning Web Components\"}]},plugins:{since:\"1.10.0\",type:\"path\",array:!0,default:[{value:[]}],category:D,description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin\",cliCategory:s},pluginSearchDirs:{since:\"1.13.0\",type:\"path\",array:!0,default:[{value:[]}],category:D,description:t(es||(es=Ee([`\n Custom directory that contains prettier plugins in node_modules subdirectory.\n Overrides default behavior when plugins are searched relatively to the location of Prettier.\n Multiple values are accepted.\n `]))),exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin-search-dir\",cliCategory:s},printWidth:{since:\"0.0.0\",category:D,type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:\"1.4.0\",category:g,type:\"int\",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(rs||(rs=Ee([`\n Format code ending at a given character offset (exclusive).\n The range will extend forwards to the end of the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:c},rangeStart:{since:\"1.4.0\",category:g,type:\"int\",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(ts||(ts=Ee([`\n Format code starting at a given character offset.\n The range will extend backwards to the start of the first line containing the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:c},requirePragma:{since:\"1.7.0\",category:g,type:\"boolean\",default:!1,description:t(us||(us=Ee([`\n Require either '@prettier' or '@format' to be present in the file's first docblock comment\n in order for it to be formatted.\n `]))),cliCategory:a},tabWidth:{type:\"int\",category:D,default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:\"1.0.0\",category:D,type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{since:\"2.1.0\",category:D,type:\"choice\",default:[{since:\"2.1.0\",value:\"auto\"}],description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};r.exports={CATEGORY_CONFIG:s,CATEGORY_EDITOR:c,CATEGORY_FORMAT:n,CATEGORY_OTHER:a,CATEGORY_OUTPUT:p,CATEGORY_GLOBAL:D,CATEGORY_SPECIAL:g,options:i}}}),FD=I({\"src/main/support.js\"(e,r){\"use strict\";q();var t={compare:Ur(),lt:fD(),gte:dD()},s=ED(),c=CD().version,n=gD().options;function a(){let{plugins:D=[],showUnreleased:g=!1,showDeprecated:i=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},h=c.split(\"-\",1)[0],C=D.flatMap(A=>A.languages||[]).filter(m),d=s(Object.assign({},...D.map(A=>{let{options:N}=A;return N}),n),\"name\").filter(A=>m(A)&&T(A)).sort((A,N)=>A.name===N.name?0:A.name{A=Object.assign({},A),Array.isArray(A.default)&&(A.default=A.default.length===1?A.default[0].value:A.default.filter(m).sort((R,$)=>t.compare($.since,R.since))[0].value),Array.isArray(A.choices)&&(A.choices=A.choices.filter(R=>m(R)&&T(R)),A.name===\"parser\"&&p(A,C,D));let N=Object.fromEntries(D.filter(R=>R.defaultOptions&&R.defaultOptions[A.name]!==void 0).map(R=>[R.name,R.defaultOptions[A.name]]));return Object.assign(Object.assign({},A),{},{pluginDefaults:N})});return{languages:C,options:d};function m(A){return g||!(\"since\"in A)||A.since&&t.gte(h,A.since)}function T(A){return i||!(\"deprecated\"in A)||A.deprecated&&t.lt(h,A.deprecated)}function B(A){if(l)return A;let{cliName:N,cliCategory:R,cliDescription:$}=A;return Qc(A,Yc)}}function p(D,g,i){let l=new Set(D.choices.map(h=>h.value));for(let h of g)if(h.parsers){for(let C of h.parsers)if(!l.has(C)){l.add(C);let d=i.find(T=>T.parsers&&T.parsers[C]),m=h.name;d&&d.name&&(m+=\" (plugin: \".concat(d.name,\")\")),D.choices.push({value:C,description:m})}}}r.exports={getSupportInfo:a}}}),AD=I({\"src/utils/is-non-empty-array.js\"(e,r){\"use strict\";q();function t(s){return Array.isArray(s)&&s.length>0}r.exports=t}});function vD(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(r,e?void 0:\"g\")}var _D=Ce({\"node_modules/strip-ansi/node_modules/ansi-regex/index.js\"(){q()}});function SD(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a `string`, got `\".concat(typeof e,\"`\"));return e.replace(vD(),\"\")}var yD=Ce({\"node_modules/strip-ansi/index.js\"(){q(),_D()}});function TD(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var BD=Ce({\"node_modules/is-fullwidth-code-point/index.js\"(){q()}}),bD=I({\"node_modules/emoji-regex/index.js\"(e,r){\"use strict\";q(),r.exports=function(){return/\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g}}}),Cs={};cs(Cs,{default:()=>wD});function wD(e){if(typeof e!=\"string\"||e.length===0||(e=SD(e),e.length===0))return 0;e=e.replace((0,ms.default)(),\" \");let r=0;for(let t=0;t=127&&s<=159||s>=768&&s<=879||(s>65535&&t++,r+=TD(s)?2:1)}return r}var ms,ND=Ce({\"node_modules/string-width/index.js\"(){q(),yD(),BD(),ms=tD(bD())}}),OD=I({\"src/utils/get-string-width.js\"(e,r){\"use strict\";q();var t=(ND(),ls(Cs)).default,s=/[^\\x20-\\x7F]/;function c(n){return n?s.test(n)?t(n):n.length:0}r.exports=c}}),Gr=I({\"src/utils/text/skip.js\"(e,r){\"use strict\";q();function t(p){return(D,g,i)=>{let l=i&&i.backwards;if(g===!1)return!1;let{length:h}=D,C=g;for(;C>=0&&Cv[v.length-2];function T(v){return(S,b,w)=>{let L=w&&w.backwards;if(b===!1)return!1;let{length:U}=S,V=b;for(;V>=0&&V2&&arguments[2]!==void 0?arguments[2]:{},w=D(v,b.backwards?S-1:S,b),L=C(v,w,b);return w!==L}function A(v,S,b){for(let w=S;w2&&arguments[2]!==void 0?arguments[2]:{};return D(v,b.backwards?S-1:S,b)!==S}function k(v,S){let b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,w=0;for(let L=b;Lue?U:L}return V}function o(v,S){let b=v.slice(1,-1),w=S.parser===\"json\"||S.parser===\"json5\"&&S.quoteProps===\"preserve\"&&!S.singleQuote?'\"':S.__isInHtmlAttribute?\"'\":u(b,S.singleQuote?\"'\":'\"').quote;return E(b,w,!(S.parser===\"css\"||S.parser===\"less\"||S.parser===\"scss\"||S.__embeddedInHtml))}function E(v,S,b){let w=S==='\"'?\"'\":'\"',L=/\\\\(.)|([\"'])/gs,U=v.replace(L,(V,Y,ue)=>Y===w?Y:ue===S?\"\\\\\"+ue:ue||(b&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(Y)?Y:\"\\\\\"+Y));return S+U+S}function f(v){return v.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(\\d)/,\"$1$2$3\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/,\"$1\").replace(/^([+-])?\\./,\"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/,\"$1\").replace(/\\.(?=e|$)/,\"\")}function F(v,S){let b=v.match(new RegExp(\"(\".concat(t(S),\")+\"),\"g\"));return b===null?0:b.reduce((w,L)=>Math.max(w,L.length/S.length),0)}function P(v,S){let b=v.match(new RegExp(\"(\".concat(t(S),\")+\"),\"g\"));if(b===null)return 0;let w=new Map,L=0;for(let U of b){let V=U.length/S.length;w.set(V,!0),V>L&&(L=V)}for(let U=1;U{let{name:U}=L;return U.toLowerCase()===v})||b.find(L=>{let{aliases:U}=L;return Array.isArray(U)&&U.includes(v)})||b.find(L=>{let{extensions:U}=L;return Array.isArray(U)&&U.includes(\".\".concat(v))});return w&&w.parsers[0]}function J(v){return v&&v.type===\"front-matter\"}function Z(v){let S=new WeakMap;return function(b){return S.has(b)||S.set(b,Symbol(v)),S.get(b)}}function ee(v){let S=v.type||v.kind||\"(unknown type)\",b=String(v.name||v.id&&(typeof v.id==\"object\"?v.id.name:v.id)||v.key&&(typeof v.key==\"object\"?v.key.name:v.key)||v.value&&(typeof v.value==\"object\"?\"\":String(v.value))||v.operator||\"\");return b.length>20&&(b=b.slice(0,19)+\"\\u2026\"),S+(b?\" \"+b:\"\")}r.exports={inferParserByLanguage:z,getStringWidth:a,getMaxContinuousCount:F,getMinNotPresentContinuousCount:P,getPenultimate:m,getLast:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:d,getNextNonSpaceNonCommentCharacterIndex:_,getNextNonSpaceNonCommentCharacter:O,skip:T,skipWhitespace:p,skipSpaces:D,skipToLineEnd:g,skipEverythingButNewLine:i,skipInlineComment:l,skipTrailingComment:h,skipNewline:C,isNextLineEmptyAfterIndex:R,isNextLineEmpty:$,isPreviousLineEmpty:N,hasNewline:B,hasNewlineInRange:A,hasSpaces:x,getAlignmentSize:k,getIndentSize:M,getPreferredQuote:u,printString:o,printNumber:f,makeString:E,addLeadingComment:W,addDanglingComment:X,addTrailingComment:H,isFrontMatterNode:J,isNonEmptyArray:n,createGroupIdMapper:Z}}}),RD=I({\"vendors/html-tag-names.json\"(e,r){r.exports={htmlTagNames:[\"a\",\"abbr\",\"acronym\",\"address\",\"applet\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"bgsound\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"content\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"image\",\"img\",\"input\",\"ins\",\"isindex\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"listing\",\"main\",\"map\",\"mark\",\"marquee\",\"math\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"multicol\",\"nav\",\"nextid\",\"nobr\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"plaintext\",\"pre\",\"progress\",\"q\",\"rb\",\"rbc\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"shadow\",\"slot\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"xmp\"]}}}),vs=I({\"src/language-html/utils/array-to-map.js\"(e,r){\"use strict\";q();function t(s){let c=Object.create(null);for(let n of s)c[n]=!0;return c}r.exports=t}}),xD=I({\"src/language-html/utils/html-tag-names.js\"(e,r){\"use strict\";q();var{htmlTagNames:t}=RD(),s=vs(),c=s(t);r.exports=c}}),PD=I({\"vendors/html-element-attributes.json\"(e,r){r.exports={htmlElementAttributes:{\"*\":[\"accesskey\",\"autocapitalize\",\"autofocus\",\"class\",\"contenteditable\",\"dir\",\"draggable\",\"enterkeyhint\",\"hidden\",\"id\",\"inputmode\",\"is\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"nonce\",\"slot\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],a:[\"charset\",\"coords\",\"download\",\"href\",\"hreflang\",\"name\",\"ping\",\"referrerpolicy\",\"rel\",\"rev\",\"shape\",\"target\",\"type\"],applet:[\"align\",\"alt\",\"archive\",\"code\",\"codebase\",\"height\",\"hspace\",\"name\",\"object\",\"vspace\",\"width\"],area:[\"alt\",\"coords\",\"download\",\"href\",\"hreflang\",\"nohref\",\"ping\",\"referrerpolicy\",\"rel\",\"shape\",\"target\",\"type\"],audio:[\"autoplay\",\"controls\",\"crossorigin\",\"loop\",\"muted\",\"preload\",\"src\"],base:[\"href\",\"target\"],basefont:[\"color\",\"face\",\"size\"],blockquote:[\"cite\"],body:[\"alink\",\"background\",\"bgcolor\",\"link\",\"text\",\"vlink\"],br:[\"clear\"],button:[\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"name\",\"type\",\"value\"],canvas:[\"height\",\"width\"],caption:[\"align\"],col:[\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"],colgroup:[\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"],data:[\"value\"],del:[\"cite\",\"datetime\"],details:[\"open\"],dialog:[\"open\"],dir:[\"compact\"],div:[\"align\"],dl:[\"compact\"],embed:[\"height\",\"src\",\"type\",\"width\"],fieldset:[\"disabled\",\"form\",\"name\"],font:[\"color\",\"face\",\"size\"],form:[\"accept\",\"accept-charset\",\"action\",\"autocomplete\",\"enctype\",\"method\",\"name\",\"novalidate\",\"target\"],frame:[\"frameborder\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"noresize\",\"scrolling\",\"src\"],frameset:[\"cols\",\"rows\"],h1:[\"align\"],h2:[\"align\"],h3:[\"align\"],h4:[\"align\"],h5:[\"align\"],h6:[\"align\"],head:[\"profile\"],hr:[\"align\",\"noshade\",\"size\",\"width\"],html:[\"manifest\",\"version\"],iframe:[\"align\",\"allow\",\"allowfullscreen\",\"allowpaymentrequest\",\"allowusermedia\",\"frameborder\",\"height\",\"loading\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"referrerpolicy\",\"sandbox\",\"scrolling\",\"src\",\"srcdoc\",\"width\"],img:[\"align\",\"alt\",\"border\",\"crossorigin\",\"decoding\",\"height\",\"hspace\",\"ismap\",\"loading\",\"longdesc\",\"name\",\"referrerpolicy\",\"sizes\",\"src\",\"srcset\",\"usemap\",\"vspace\",\"width\"],input:[\"accept\",\"align\",\"alt\",\"autocomplete\",\"checked\",\"dirname\",\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"height\",\"ismap\",\"list\",\"max\",\"maxlength\",\"min\",\"minlength\",\"multiple\",\"name\",\"pattern\",\"placeholder\",\"readonly\",\"required\",\"size\",\"src\",\"step\",\"type\",\"usemap\",\"value\",\"width\"],ins:[\"cite\",\"datetime\"],isindex:[\"prompt\"],label:[\"for\",\"form\"],legend:[\"align\"],li:[\"type\",\"value\"],link:[\"as\",\"charset\",\"color\",\"crossorigin\",\"disabled\",\"href\",\"hreflang\",\"imagesizes\",\"imagesrcset\",\"integrity\",\"media\",\"referrerpolicy\",\"rel\",\"rev\",\"sizes\",\"target\",\"type\"],map:[\"name\"],menu:[\"compact\"],meta:[\"charset\",\"content\",\"http-equiv\",\"media\",\"name\",\"scheme\"],meter:[\"high\",\"low\",\"max\",\"min\",\"optimum\",\"value\"],object:[\"align\",\"archive\",\"border\",\"classid\",\"codebase\",\"codetype\",\"data\",\"declare\",\"form\",\"height\",\"hspace\",\"name\",\"standby\",\"type\",\"typemustmatch\",\"usemap\",\"vspace\",\"width\"],ol:[\"compact\",\"reversed\",\"start\",\"type\"],optgroup:[\"disabled\",\"label\"],option:[\"disabled\",\"label\",\"selected\",\"value\"],output:[\"for\",\"form\",\"name\"],p:[\"align\"],param:[\"name\",\"type\",\"value\",\"valuetype\"],pre:[\"width\"],progress:[\"max\",\"value\"],q:[\"cite\"],script:[\"async\",\"charset\",\"crossorigin\",\"defer\",\"integrity\",\"language\",\"nomodule\",\"referrerpolicy\",\"src\",\"type\"],select:[\"autocomplete\",\"disabled\",\"form\",\"multiple\",\"name\",\"required\",\"size\"],slot:[\"name\"],source:[\"height\",\"media\",\"sizes\",\"src\",\"srcset\",\"type\",\"width\"],style:[\"media\",\"type\"],table:[\"align\",\"bgcolor\",\"border\",\"cellpadding\",\"cellspacing\",\"frame\",\"rules\",\"summary\",\"width\"],tbody:[\"align\",\"char\",\"charoff\",\"valign\"],td:[\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"],textarea:[\"autocomplete\",\"cols\",\"dirname\",\"disabled\",\"form\",\"maxlength\",\"minlength\",\"name\",\"placeholder\",\"readonly\",\"required\",\"rows\",\"wrap\"],tfoot:[\"align\",\"char\",\"charoff\",\"valign\"],th:[\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"],thead:[\"align\",\"char\",\"charoff\",\"valign\"],time:[\"datetime\"],tr:[\"align\",\"bgcolor\",\"char\",\"charoff\",\"valign\"],track:[\"default\",\"kind\",\"label\",\"src\",\"srclang\"],ul:[\"compact\",\"type\"],video:[\"autoplay\",\"controls\",\"crossorigin\",\"height\",\"loop\",\"muted\",\"playsinline\",\"poster\",\"preload\",\"src\",\"width\"]}}}}),kD=I({\"src/language-html/utils/map-object.js\"(e,r){\"use strict\";q();function t(s,c){let n=Object.create(null);for(let[a,p]of Object.entries(s))n[a]=c(p,a);return n}r.exports=t}}),LD=I({\"src/language-html/utils/html-elements-attributes.js\"(e,r){\"use strict\";q();var{htmlElementAttributes:t}=PD(),s=kD(),c=vs(),n=s(t,c);r.exports=n}}),MD=I({\"src/language-html/utils/is-unknown-namespace.js\"(e,r){\"use strict\";q();function t(s){return s.type===\"element\"&&!s.hasExplicitNamespace&&![\"html\",\"svg\"].includes(s.namespace)}r.exports=t}}),jD=I({\"src/language-html/pragma.js\"(e,r){\"use strict\";q();function t(c){return/^\\s*/.test(c)}function s(c){return`\n\n`+c.replace(/^\\s*\\n/,\"\")}r.exports={hasPragma:t,insertPragma:s}}}),$D=I({\"src/language-html/ast.js\"(e,r){\"use strict\";q();var t={attrs:!0,children:!0},s=new Set([\"parent\"]),c=class{constructor(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};for(let p of new Set([...s,...Object.keys(a)]))this.setProperty(p,a[p])}setProperty(a,p){if(this[a]!==p){if(a in t&&(p=p.map(D=>this.createChild(D))),!s.has(a)){this[a]=p;return}Object.defineProperty(this,a,{value:p,enumerable:!1,configurable:!0})}}map(a){let p;for(let D in t){let g=this[D];if(g){let i=n(g,l=>l.map(a));p!==g&&(p||(p=new c({parent:this.parent})),p.setProperty(D,i))}}if(p)for(let D in this)D in t||(p[D]=this[D]);return a(p||this)}walk(a){for(let p in t){let D=this[p];if(D)for(let g=0;g[a.fullName,a.value]))}};function n(a,p){let D=a.map(p);return D.some((g,i)=>g!==a[i])?D:a}r.exports={Node:c}}}),UD=I({\"src/language-html/conditional-comment.js\"(e,r){\"use strict\";q();var{ParseSourceSpan:t}=Te(),s=[{regex:/^(\\[if([^\\]]*)]>)(.*?){try{return[!0,g(C,m).children]}catch{let N={type:\"text\",value:C,sourceSpan:new t(m,T)};return[!1,[N]]}})();return{type:\"ieConditionalComment\",complete:B,children:A,condition:h.trim().replace(/\\s+/g,\" \"),sourceSpan:D.sourceSpan,startSourceSpan:new t(D.sourceSpan.start,m),endSourceSpan:new t(T,D.sourceSpan.end)}}function a(D,g,i){let[,l]=i;return{type:\"ieConditionalStartComment\",condition:l.trim().replace(/\\s+/g,\" \"),sourceSpan:D.sourceSpan}}function p(D){return{type:\"ieConditionalEndComment\",sourceSpan:D.sourceSpan}}r.exports={parseIeConditionalComment:c}}}),GD=I({\"src/language-html/loc.js\"(e,r){\"use strict\";q();function t(c){return c.sourceSpan.start.offset}function s(c){return c.sourceSpan.end.offset}r.exports={locStart:t,locEnd:s}}}),Ze=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/tags.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r;(function(D){D[D.RAW_TEXT=0]=\"RAW_TEXT\",D[D.ESCAPABLE_RAW_TEXT=1]=\"ESCAPABLE_RAW_TEXT\",D[D.PARSABLE_DATA=2]=\"PARSABLE_DATA\"})(r=e.TagContentType||(e.TagContentType={}));function t(D){if(D[0]!=\":\")return[null,D];let g=D.indexOf(\":\",1);if(g==-1)throw new Error('Unsupported format \"'.concat(D,'\" expecting \":namespace:name\"'));return[D.slice(1,g),D.slice(g+1)]}e.splitNsName=t;function s(D){return t(D)[1]===\"ng-container\"}e.isNgContainer=s;function c(D){return t(D)[1]===\"ng-content\"}e.isNgContent=c;function n(D){return t(D)[1]===\"ng-template\"}e.isNgTemplate=n;function a(D){return D===null?null:t(D)[0]}e.getNsPrefix=a;function p(D,g){return D?\":\".concat(D,\":\").concat(g):g}e.mergeNsAndName=p,e.NAMED_ENTITIES={Aacute:\"\\xC1\",aacute:\"\\xE1\",Abreve:\"\\u0102\",abreve:\"\\u0103\",ac:\"\\u223E\",acd:\"\\u223F\",acE:\"\\u223E\\u0333\",Acirc:\"\\xC2\",acirc:\"\\xE2\",acute:\"\\xB4\",Acy:\"\\u0410\",acy:\"\\u0430\",AElig:\"\\xC6\",aelig:\"\\xE6\",af:\"\\u2061\",Afr:\"\\u{1D504}\",afr:\"\\u{1D51E}\",Agrave:\"\\xC0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",Alpha:\"\\u0391\",alpha:\"\\u03B1\",Amacr:\"\\u0100\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",AMP:\"&\",amp:\"&\",And:\"\\u2A53\",and:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsd:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",Aogon:\"\\u0104\",aogon:\"\\u0105\",Aopf:\"\\u{1D538}\",aopf:\"\\u{1D552}\",ap:\"\\u2248\",apacir:\"\\u2A6F\",apE:\"\\u2A70\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",ApplyFunction:\"\\u2061\",approx:\"\\u2248\",approxeq:\"\\u224A\",Aring:\"\\xC5\",aring:\"\\xE5\",Ascr:\"\\u{1D49C}\",ascr:\"\\u{1D4B6}\",Assign:\"\\u2254\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",Atilde:\"\\xC3\",atilde:\"\\xE3\",Auml:\"\\xC4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",barvee:\"\\u22BD\",Barwed:\"\\u2306\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",Bcy:\"\\u0411\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",Because:\"\\u2235\",because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",Bfr:\"\\u{1D505}\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bNot:\"\\u2AED\",bnot:\"\\u2310\",Bopf:\"\\u{1D539}\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxbox:\"\\u29C9\",boxDL:\"\\u2557\",boxDl:\"\\u2556\",boxdL:\"\\u2555\",boxdl:\"\\u2510\",boxDR:\"\\u2554\",boxDr:\"\\u2553\",boxdR:\"\\u2552\",boxdr:\"\\u250C\",boxH:\"\\u2550\",boxh:\"\\u2500\",boxHD:\"\\u2566\",boxHd:\"\\u2564\",boxhD:\"\\u2565\",boxhd:\"\\u252C\",boxHU:\"\\u2569\",boxHu:\"\\u2567\",boxhU:\"\\u2568\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxUL:\"\\u255D\",boxUl:\"\\u255C\",boxuL:\"\\u255B\",boxul:\"\\u2518\",boxUR:\"\\u255A\",boxUr:\"\\u2559\",boxuR:\"\\u2558\",boxur:\"\\u2514\",boxV:\"\\u2551\",boxv:\"\\u2502\",boxVH:\"\\u256C\",boxVh:\"\\u256B\",boxvH:\"\\u256A\",boxvh:\"\\u253C\",boxVL:\"\\u2563\",boxVl:\"\\u2562\",boxvL:\"\\u2561\",boxvl:\"\\u2524\",boxVR:\"\\u2560\",boxVr:\"\\u255F\",boxvR:\"\\u255E\",boxvr:\"\\u251C\",bprime:\"\\u2035\",Breve:\"\\u02D8\",breve:\"\\u02D8\",brvbar:\"\\xA6\",Bscr:\"\\u212C\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",Bumpeq:\"\\u224E\",bumpeq:\"\\u224F\",Cacute:\"\\u0106\",cacute:\"\\u0107\",Cap:\"\\u22D2\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",CapitalDifferentialD:\"\\u2145\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",Cayleys:\"\\u212D\",ccaps:\"\\u2A4D\",Ccaron:\"\\u010C\",ccaron:\"\\u010D\",Ccedil:\"\\xC7\",ccedil:\"\\xE7\",Ccirc:\"\\u0108\",ccirc:\"\\u0109\",Cconint:\"\\u2230\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",Cdot:\"\\u010A\",cdot:\"\\u010B\",cedil:\"\\xB8\",Cedilla:\"\\xB8\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",CenterDot:\"\\xB7\",centerdot:\"\\xB7\",Cfr:\"\\u212D\",cfr:\"\\u{1D520}\",CHcy:\"\\u0427\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",Chi:\"\\u03A7\",chi:\"\\u03C7\",cir:\"\\u25CB\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",CircleDot:\"\\u2299\",circledR:\"\\xAE\",circledS:\"\\u24C8\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",cirE:\"\\u29C3\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",Colon:\"\\u2237\",colon:\":\",Colone:\"\\u2A74\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",Congruent:\"\\u2261\",Conint:\"\\u222F\",conint:\"\\u222E\",ContourIntegral:\"\\u222E\",Copf:\"\\u2102\",copf:\"\\u{1D554}\",coprod:\"\\u2210\",Coproduct:\"\\u2210\",COPY:\"\\xA9\",copy:\"\\xA9\",copysr:\"\\u2117\",CounterClockwiseContourIntegral:\"\\u2233\",crarr:\"\\u21B5\",Cross:\"\\u2A2F\",cross:\"\\u2717\",Cscr:\"\\u{1D49E}\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",Cup:\"\\u22D3\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",CupCap:\"\\u224D\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",Dagger:\"\\u2021\",dagger:\"\\u2020\",daleth:\"\\u2138\",Darr:\"\\u21A1\",dArr:\"\\u21D3\",darr:\"\\u2193\",dash:\"\\u2010\",Dashv:\"\\u2AE4\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",Dcaron:\"\\u010E\",dcaron:\"\\u010F\",Dcy:\"\\u0414\",dcy:\"\\u0434\",DD:\"\\u2145\",dd:\"\\u2146\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",DDotrahd:\"\\u2911\",ddotseq:\"\\u2A77\",deg:\"\\xB0\",Del:\"\\u2207\",Delta:\"\\u0394\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",Dfr:\"\\u{1D507}\",dfr:\"\\u{1D521}\",dHar:\"\\u2965\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",diam:\"\\u22C4\",Diamond:\"\\u22C4\",diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",DifferentialD:\"\\u2146\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",DJcy:\"\\u0402\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",Dopf:\"\\u{1D53B}\",dopf:\"\\u{1D555}\",Dot:\"\\xA8\",dot:\"\\u02D9\",DotDot:\"\\u20DC\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",DotEqual:\"\\u2250\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrow:\"\\u2193\",Downarrow:\"\\u21D3\",downarrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",Dscr:\"\\u{1D49F}\",dscr:\"\\u{1D4B9}\",DScy:\"\\u0405\",dscy:\"\\u0455\",dsol:\"\\u29F6\",Dstrok:\"\\u0110\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",DZcy:\"\\u040F\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",Eacute:\"\\xC9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",Ecaron:\"\\u011A\",ecaron:\"\\u011B\",ecir:\"\\u2256\",Ecirc:\"\\xCA\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",Ecy:\"\\u042D\",ecy:\"\\u044D\",eDDot:\"\\u2A77\",Edot:\"\\u0116\",eDot:\"\\u2251\",edot:\"\\u0117\",ee:\"\\u2147\",efDot:\"\\u2252\",Efr:\"\\u{1D508}\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",Egrave:\"\\xC8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",Element:\"\\u2208\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",Emacr:\"\\u0112\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",EmptySmallSquare:\"\\u25FB\",emptyv:\"\\u2205\",EmptyVerySmallSquare:\"\\u25AB\",emsp:\"\\u2003\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",ENG:\"\\u014A\",eng:\"\\u014B\",ensp:\"\\u2002\",Eogon:\"\\u0118\",eogon:\"\\u0119\",Eopf:\"\\u{1D53C}\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",Epsilon:\"\\u0395\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",Equal:\"\\u2A75\",equals:\"=\",EqualTilde:\"\\u2242\",equest:\"\\u225F\",Equilibrium:\"\\u21CC\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erarr:\"\\u2971\",erDot:\"\\u2253\",Escr:\"\\u2130\",escr:\"\\u212F\",esdot:\"\\u2250\",Esim:\"\\u2A73\",esim:\"\\u2242\",Eta:\"\\u0397\",eta:\"\\u03B7\",ETH:\"\\xD0\",eth:\"\\xF0\",Euml:\"\\xCB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",Exists:\"\\u2203\",expectation:\"\\u2130\",ExponentialE:\"\\u2147\",exponentiale:\"\\u2147\",fallingdotseq:\"\\u2252\",Fcy:\"\\u0424\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",Ffr:\"\\u{1D509}\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",Fopf:\"\\u{1D53D}\",fopf:\"\\u{1D557}\",ForAll:\"\\u2200\",forall:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",Fouriertrf:\"\\u2131\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",Fscr:\"\\u2131\",fscr:\"\\u{1D4BB}\",gacute:\"\\u01F5\",Gamma:\"\\u0393\",gamma:\"\\u03B3\",Gammad:\"\\u03DC\",gammad:\"\\u03DD\",gap:\"\\u2A86\",Gbreve:\"\\u011E\",gbreve:\"\\u011F\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",gcirc:\"\\u011D\",Gcy:\"\\u0413\",gcy:\"\\u0433\",Gdot:\"\\u0120\",gdot:\"\\u0121\",gE:\"\\u2267\",ge:\"\\u2265\",gEl:\"\\u2A8C\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",Gfr:\"\\u{1D50A}\",gfr:\"\\u{1D524}\",Gg:\"\\u22D9\",gg:\"\\u226B\",ggg:\"\\u22D9\",gimel:\"\\u2137\",GJcy:\"\\u0403\",gjcy:\"\\u0453\",gl:\"\\u2277\",gla:\"\\u2AA5\",glE:\"\\u2A92\",glj:\"\\u2AA4\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gnE:\"\\u2269\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",Gopf:\"\\u{1D53E}\",gopf:\"\\u{1D558}\",grave:\"`\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",GT:\">\",Gt:\"\\u226B\",gt:\">\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",Hacek:\"\\u02C7\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",HARDcy:\"\\u042A\",hardcy:\"\\u044A\",hArr:\"\\u21D4\",harr:\"\\u2194\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",Hat:\"^\",hbar:\"\\u210F\",Hcirc:\"\\u0124\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",Hfr:\"\\u210C\",hfr:\"\\u{1D525}\",HilbertSpace:\"\\u210B\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",Hopf:\"\\u210D\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",HorizontalLine:\"\\u2500\",Hscr:\"\\u210B\",hscr:\"\\u{1D4BD}\",hslash:\"\\u210F\",Hstrok:\"\\u0126\",hstrok:\"\\u0127\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",hybull:\"\\u2043\",hyphen:\"\\u2010\",Iacute:\"\\xCD\",iacute:\"\\xED\",ic:\"\\u2063\",Icirc:\"\\xCE\",icirc:\"\\xEE\",Icy:\"\\u0418\",icy:\"\\u0438\",Idot:\"\\u0130\",IEcy:\"\\u0415\",iecy:\"\\u0435\",iexcl:\"\\xA1\",iff:\"\\u21D4\",Ifr:\"\\u2111\",ifr:\"\\u{1D526}\",Igrave:\"\\xCC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",IJlig:\"\\u0132\",ijlig:\"\\u0133\",Im:\"\\u2111\",Imacr:\"\\u012A\",imacr:\"\\u012B\",image:\"\\u2111\",ImaginaryI:\"\\u2148\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",Implies:\"\\u21D2\",in:\"\\u2208\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",Int:\"\\u222C\",int:\"\\u222B\",intcal:\"\\u22BA\",integers:\"\\u2124\",Integral:\"\\u222B\",intercal:\"\\u22BA\",Intersection:\"\\u22C2\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",IOcy:\"\\u0401\",iocy:\"\\u0451\",Iogon:\"\\u012E\",iogon:\"\\u012F\",Iopf:\"\\u{1D540}\",iopf:\"\\u{1D55A}\",Iota:\"\\u0399\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iquest:\"\\xBF\",Iscr:\"\\u2110\",iscr:\"\\u{1D4BE}\",isin:\"\\u2208\",isindot:\"\\u22F5\",isinE:\"\\u22F9\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",Itilde:\"\\u0128\",itilde:\"\\u0129\",Iukcy:\"\\u0406\",iukcy:\"\\u0456\",Iuml:\"\\xCF\",iuml:\"\\xEF\",Jcirc:\"\\u0134\",jcirc:\"\\u0135\",Jcy:\"\\u0419\",jcy:\"\\u0439\",Jfr:\"\\u{1D50D}\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",Jopf:\"\\u{1D541}\",jopf:\"\\u{1D55B}\",Jscr:\"\\u{1D4A5}\",jscr:\"\\u{1D4BF}\",Jsercy:\"\\u0408\",jsercy:\"\\u0458\",Jukcy:\"\\u0404\",jukcy:\"\\u0454\",Kappa:\"\\u039A\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",Kcedil:\"\\u0136\",kcedil:\"\\u0137\",Kcy:\"\\u041A\",kcy:\"\\u043A\",Kfr:\"\\u{1D50E}\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",KHcy:\"\\u0425\",khcy:\"\\u0445\",KJcy:\"\\u040C\",kjcy:\"\\u045C\",Kopf:\"\\u{1D542}\",kopf:\"\\u{1D55C}\",Kscr:\"\\u{1D4A6}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",Lacute:\"\\u0139\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",Lambda:\"\\u039B\",lambda:\"\\u03BB\",Lang:\"\\u27EA\",lang:\"\\u27E8\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",Laplacetrf:\"\\u2112\",laquo:\"\\xAB\",Larr:\"\\u219E\",lArr:\"\\u21D0\",larr:\"\\u2190\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",lat:\"\\u2AAB\",lAtail:\"\\u291B\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lBarr:\"\\u290E\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",Lcaron:\"\\u013D\",lcaron:\"\\u013E\",Lcedil:\"\\u013B\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",Lcy:\"\\u041B\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",lE:\"\\u2266\",le:\"\\u2264\",LeftAngleBracket:\"\\u27E8\",LeftArrow:\"\\u2190\",Leftarrow:\"\\u21D0\",leftarrow:\"\\u2190\",LeftArrowBar:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",leftarrowtail:\"\\u21A2\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",LeftRightArrow:\"\\u2194\",Leftrightarrow:\"\\u21D4\",leftrightarrow:\"\\u2194\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",LeftTeeVector:\"\\u295A\",leftthreetimes:\"\\u22CB\",LeftTriangle:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",LeftVectorBar:\"\\u2952\",lEg:\"\\u2A8B\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",LessLess:\"\\u2AA1\",lesssim:\"\\u2272\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",Lfr:\"\\u{1D50F}\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lHar:\"\\u2962\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",LJcy:\"\\u0409\",ljcy:\"\\u0459\",Ll:\"\\u22D8\",ll:\"\\u226A\",llarr:\"\\u21C7\",llcorner:\"\\u231E\",Lleftarrow:\"\\u21DA\",llhard:\"\\u296B\",lltri:\"\\u25FA\",Lmidot:\"\\u013F\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lnE:\"\\u2268\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",LongLeftArrow:\"\\u27F5\",Longleftarrow:\"\\u27F8\",longleftarrow:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",Longleftrightarrow:\"\\u27FA\",longleftrightarrow:\"\\u27F7\",longmapsto:\"\\u27FC\",LongRightArrow:\"\\u27F6\",Longrightarrow:\"\\u27F9\",longrightarrow:\"\\u27F6\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",Lopf:\"\\u{1D543}\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",Lscr:\"\\u2112\",lscr:\"\\u{1D4C1}\",Lsh:\"\\u21B0\",lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",Lstrok:\"\\u0141\",lstrok:\"\\u0142\",LT:\"<\",Lt:\"\\u226A\",lt:\"<\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",ltrPar:\"\\u2996\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",Map:\"\\u2905\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",Mcy:\"\\u041C\",mcy:\"\\u043C\",mdash:\"\\u2014\",mDDot:\"\\u223A\",measuredangle:\"\\u2221\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",mid:\"\\u2223\",midast:\"*\",midcir:\"\\u2AF0\",middot:\"\\xB7\",minus:\"\\u2212\",minusb:\"\\u229F\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",MinusPlus:\"\\u2213\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",Mopf:\"\\u{1D544}\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",Mscr:\"\\u2133\",mscr:\"\\u{1D4C2}\",mstpos:\"\\u223E\",Mu:\"\\u039C\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nabla:\"\\u2207\",Nacute:\"\\u0143\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natur:\"\\u266E\",natural:\"\\u266E\",naturals:\"\\u2115\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",Ncaron:\"\\u0147\",ncaron:\"\\u0148\",Ncedil:\"\\u0145\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",Ncy:\"\\u041D\",ncy:\"\\u043D\",ndash:\"\\u2013\",ne:\"\\u2260\",nearhk:\"\\u2924\",neArr:\"\\u21D7\",nearr:\"\\u2197\",nearrow:\"\\u2197\",nedot:\"\\u2250\\u0338\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,nexist:\"\\u2204\",nexists:\"\\u2204\",Nfr:\"\\u{1D511}\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",nGg:\"\\u22D9\\u0338\",ngsim:\"\\u2275\",nGt:\"\\u226B\\u20D2\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nGtv:\"\\u226B\\u0338\",nhArr:\"\\u21CE\",nharr:\"\\u21AE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",NJcy:\"\\u040A\",njcy:\"\\u045A\",nlArr:\"\\u21CD\",nlarr:\"\\u219A\",nldr:\"\\u2025\",nlE:\"\\u2266\\u0338\",nle:\"\\u2270\",nLeftarrow:\"\\u21CD\",nleftarrow:\"\\u219A\",nLeftrightarrow:\"\\u21CE\",nleftrightarrow:\"\\u21AE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nLl:\"\\u22D8\\u0338\",nlsim:\"\\u2274\",nLt:\"\\u226A\\u20D2\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nLtv:\"\\u226A\\u0338\",nmid:\"\\u2224\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",Nopf:\"\\u2115\",nopf:\"\\u{1D55F}\",Not:\"\\u2AEC\",not:\"\\xAC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",notin:\"\\u2209\",notindot:\"\\u22F5\\u0338\",notinE:\"\\u22F9\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangle:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",npar:\"\\u2226\",nparallel:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",npre:\"\\u2AAF\\u0338\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",nrArr:\"\\u21CF\",nrarr:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nRightarrow:\"\\u21CF\",nrightarrow:\"\\u219B\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",Nscr:\"\\u{1D4A9}\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",Ntilde:\"\\xD1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",Nu:\"\\u039D\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvap:\"\\u224D\\u20D2\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nvDash:\"\\u22AD\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvHarr:\"\\u2904\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwarhk:\"\\u2923\",nwArr:\"\\u21D6\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",Oacute:\"\\xD3\",oacute:\"\\xF3\",oast:\"\\u229B\",ocir:\"\\u229A\",Ocirc:\"\\xD4\",ocirc:\"\\xF4\",Ocy:\"\\u041E\",ocy:\"\\u043E\",odash:\"\\u229D\",Odblac:\"\\u0150\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",OElig:\"\\u0152\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",Ofr:\"\\u{1D512}\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",Ograve:\"\\xD2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",Omacr:\"\\u014C\",omacr:\"\\u014D\",Omega:\"\\u03A9\",omega:\"\\u03C9\",Omicron:\"\\u039F\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",Oopf:\"\\u{1D546}\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",operp:\"\\u29B9\",oplus:\"\\u2295\",Or:\"\\u2A54\",or:\"\\u2228\",orarr:\"\\u21BB\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oS:\"\\u24C8\",Oscr:\"\\u{1D4AA}\",oscr:\"\\u2134\",Oslash:\"\\xD8\",oslash:\"\\xF8\",osol:\"\\u2298\",Otilde:\"\\xD5\",otilde:\"\\xF5\",Otimes:\"\\u2A37\",otimes:\"\\u2297\",otimesas:\"\\u2A36\",Ouml:\"\\xD6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",par:\"\\u2225\",para:\"\\xB6\",parallel:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",Pfr:\"\\u{1D513}\",pfr:\"\\u{1D52D}\",Phi:\"\\u03A6\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",Pi:\"\\u03A0\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plus:\"+\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",Poincareplane:\"\\u210C\",pointint:\"\\u2A15\",Popf:\"\\u2119\",popf:\"\\u{1D561}\",pound:\"\\xA3\",Pr:\"\\u2ABB\",pr:\"\\u227A\",prap:\"\\u2AB7\",prcue:\"\\u227C\",prE:\"\\u2AB3\",pre:\"\\u2AAF\",prec:\"\\u227A\",precapprox:\"\\u2AB7\",preccurlyeq:\"\\u227C\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",precsim:\"\\u227E\",Prime:\"\\u2033\",prime:\"\\u2032\",primes:\"\\u2119\",prnap:\"\\u2AB9\",prnE:\"\\u2AB5\",prnsim:\"\\u22E8\",prod:\"\\u220F\",Product:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",Proportion:\"\\u2237\",Proportional:\"\\u221D\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",Pscr:\"\\u{1D4AB}\",pscr:\"\\u{1D4C5}\",Psi:\"\\u03A8\",psi:\"\\u03C8\",puncsp:\"\\u2008\",Qfr:\"\\u{1D514}\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",Qopf:\"\\u211A\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",Qscr:\"\\u{1D4AC}\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",QUOT:'\"',quot:'\"',rAarr:\"\\u21DB\",race:\"\\u223D\\u0331\",Racute:\"\\u0154\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",Rang:\"\\u27EB\",rang:\"\\u27E9\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raquo:\"\\xBB\",Rarr:\"\\u21A0\",rArr:\"\\u21D2\",rarr:\"\\u2192\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",Rarrtl:\"\\u2916\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",rAtail:\"\\u291C\",ratail:\"\\u291A\",ratio:\"\\u2236\",rationals:\"\\u211A\",RBarr:\"\\u2910\",rBarr:\"\\u290F\",rbarr:\"\\u290D\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",Rcaron:\"\\u0158\",rcaron:\"\\u0159\",Rcedil:\"\\u0156\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",Rcy:\"\\u0420\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",Re:\"\\u211C\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",rect:\"\\u25AD\",REG:\"\\xAE\",reg:\"\\xAE\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",Rfr:\"\\u211C\",rfr:\"\\u{1D52F}\",rHar:\"\\u2964\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",Rho:\"\\u03A1\",rho:\"\\u03C1\",rhov:\"\\u03F1\",RightAngleBracket:\"\\u27E9\",RightArrow:\"\\u2192\",Rightarrow:\"\\u21D2\",rightarrow:\"\\u2192\",RightArrowBar:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",rightarrowtail:\"\\u21A3\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",RightTee:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",RightTeeVector:\"\\u295B\",rightthreetimes:\"\\u22CC\",RightTriangle:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",RightVectorBar:\"\\u2953\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",Ropf:\"\\u211D\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",RoundImplies:\"\\u2970\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",Rrightarrow:\"\\u21DB\",rsaquo:\"\\u203A\",Rscr:\"\\u211B\",rscr:\"\\u{1D4C7}\",Rsh:\"\\u21B1\",rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",RuleDelayed:\"\\u29F4\",ruluhar:\"\\u2968\",rx:\"\\u211E\",Sacute:\"\\u015A\",sacute:\"\\u015B\",sbquo:\"\\u201A\",Sc:\"\\u2ABC\",sc:\"\\u227B\",scap:\"\\u2AB8\",Scaron:\"\\u0160\",scaron:\"\\u0161\",sccue:\"\\u227D\",scE:\"\\u2AB4\",sce:\"\\u2AB0\",Scedil:\"\\u015E\",scedil:\"\\u015F\",Scirc:\"\\u015C\",scirc:\"\\u015D\",scnap:\"\\u2ABA\",scnE:\"\\u2AB6\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",Scy:\"\\u0421\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdotb:\"\\u22A1\",sdote:\"\\u2A66\",searhk:\"\\u2925\",seArr:\"\\u21D8\",searr:\"\\u2198\",searrow:\"\\u2198\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",Sfr:\"\\u{1D516}\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",SHCHcy:\"\\u0429\",shchcy:\"\\u0449\",SHcy:\"\\u0428\",shcy:\"\\u0448\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",shy:\"\\xAD\",Sigma:\"\\u03A3\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",SmallCircle:\"\\u2218\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",SOFTcy:\"\\u042C\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",Sopf:\"\\u{1D54A}\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",Sqrt:\"\\u221A\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",squ:\"\\u25A1\",Square:\"\\u25A1\",square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",squarf:\"\\u25AA\",squf:\"\\u25AA\",srarr:\"\\u2192\",Sscr:\"\\u{1D4AE}\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",Star:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",Sub:\"\\u22D0\",sub:\"\\u2282\",subdot:\"\\u2ABD\",subE:\"\\u2AC5\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",Subset:\"\\u22D0\",subset:\"\\u2282\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",SubsetEqual:\"\\u2286\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succ:\"\\u227B\",succapprox:\"\\u2AB8\",succcurlyeq:\"\\u227D\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",SuchThat:\"\\u220B\",Sum:\"\\u2211\",sum:\"\\u2211\",sung:\"\\u266A\",Sup:\"\\u22D1\",sup:\"\\u2283\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supE:\"\\u2AC6\",supe:\"\\u2287\",supedot:\"\\u2AC4\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",Supset:\"\\u22D1\",supset:\"\\u2283\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swarhk:\"\\u2926\",swArr:\"\\u21D9\",swarr:\"\\u2199\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szlig:\"\\xDF\",Tab:\"\t\",target:\"\\u2316\",Tau:\"\\u03A4\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",Tcaron:\"\\u0164\",tcaron:\"\\u0165\",Tcedil:\"\\u0162\",tcedil:\"\\u0163\",Tcy:\"\\u0422\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",Tfr:\"\\u{1D517}\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",Therefore:\"\\u2234\",therefore:\"\\u2234\",Theta:\"\\u0398\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",ThickSpace:\"\\u205F\\u200A\",thinsp:\"\\u2009\",ThinSpace:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",THORN:\"\\xDE\",thorn:\"\\xFE\",Tilde:\"\\u223C\",tilde:\"\\u02DC\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",times:\"\\xD7\",timesb:\"\\u22A0\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",top:\"\\u22A4\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",Topf:\"\\u{1D54B}\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",TRADE:\"\\u2122\",trade:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",TripleDot:\"\\u20DB\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",Tscr:\"\\u{1D4AF}\",tscr:\"\\u{1D4C9}\",TScy:\"\\u0426\",tscy:\"\\u0446\",TSHcy:\"\\u040B\",tshcy:\"\\u045B\",Tstrok:\"\\u0166\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",Uacute:\"\\xDA\",uacute:\"\\xFA\",Uarr:\"\\u219F\",uArr:\"\\u21D1\",uarr:\"\\u2191\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",ubrcy:\"\\u045E\",Ubreve:\"\\u016C\",ubreve:\"\\u016D\",Ucirc:\"\\xDB\",ucirc:\"\\xFB\",Ucy:\"\\u0423\",ucy:\"\\u0443\",udarr:\"\\u21C5\",Udblac:\"\\u0170\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",Ufr:\"\\u{1D518}\",ufr:\"\\u{1D532}\",Ugrave:\"\\xD9\",ugrave:\"\\xF9\",uHar:\"\\u2963\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",Umacr:\"\\u016A\",umacr:\"\\u016B\",uml:\"\\xA8\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",uogon:\"\\u0173\",Uopf:\"\\u{1D54C}\",uopf:\"\\u{1D566}\",UpArrow:\"\\u2191\",Uparrow:\"\\u21D1\",uparrow:\"\\u2191\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",UpDownArrow:\"\\u2195\",Updownarrow:\"\\u21D5\",updownarrow:\"\\u2195\",UpEquilibrium:\"\\u296E\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",Upsi:\"\\u03D2\",upsi:\"\\u03C5\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",upsilon:\"\\u03C5\",UpTee:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",Uring:\"\\u016E\",uring:\"\\u016F\",urtri:\"\\u25F9\",Uscr:\"\\u{1D4B0}\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",Utilde:\"\\u0168\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",Uuml:\"\\xDC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",vArr:\"\\u21D5\",varr:\"\\u2195\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",Vbar:\"\\u2AEB\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",Vcy:\"\\u0412\",vcy:\"\\u0432\",VDash:\"\\u22AB\",Vdash:\"\\u22A9\",vDash:\"\\u22A8\",vdash:\"\\u22A2\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",vee:\"\\u2228\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",Verbar:\"\\u2016\",verbar:\"|\",Vert:\"\\u2016\",vert:\"|\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",Vopf:\"\\u{1D54D}\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",Vscr:\"\\u{1D4B1}\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",Vvdash:\"\\u22AA\",vzigzag:\"\\u299A\",Wcirc:\"\\u0174\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",Wedge:\"\\u22C0\",wedge:\"\\u2227\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",Wfr:\"\\u{1D51A}\",wfr:\"\\u{1D534}\",Wopf:\"\\u{1D54E}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",Wscr:\"\\u{1D4B2}\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",Xfr:\"\\u{1D51B}\",xfr:\"\\u{1D535}\",xhArr:\"\\u27FA\",xharr:\"\\u27F7\",Xi:\"\\u039E\",xi:\"\\u03BE\",xlArr:\"\\u27F8\",xlarr:\"\\u27F5\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",Xopf:\"\\u{1D54F}\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrArr:\"\\u27F9\",xrarr:\"\\u27F6\",Xscr:\"\\u{1D4B3}\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",Yacute:\"\\xDD\",yacute:\"\\xFD\",YAcy:\"\\u042F\",yacy:\"\\u044F\",Ycirc:\"\\u0176\",ycirc:\"\\u0177\",Ycy:\"\\u042B\",ycy:\"\\u044B\",yen:\"\\xA5\",Yfr:\"\\u{1D51C}\",yfr:\"\\u{1D536}\",YIcy:\"\\u0407\",yicy:\"\\u0457\",Yopf:\"\\u{1D550}\",yopf:\"\\u{1D56A}\",Yscr:\"\\u{1D4B4}\",yscr:\"\\u{1D4CE}\",YUcy:\"\\u042E\",yucy:\"\\u044E\",Yuml:\"\\u0178\",yuml:\"\\xFF\",Zacute:\"\\u0179\",zacute:\"\\u017A\",Zcaron:\"\\u017D\",zcaron:\"\\u017E\",Zcy:\"\\u0417\",zcy:\"\\u0437\",Zdot:\"\\u017B\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",zeta:\"\\u03B6\",Zfr:\"\\u2128\",zfr:\"\\u{1D537}\",ZHcy:\"\\u0416\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",Zopf:\"\\u2124\",zopf:\"\\u{1D56B}\",Zscr:\"\\u{1D4B5}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},e.NGSP_UNICODE=\"\\uE500\",e.NAMED_ENTITIES.ngsp=e.NGSP_UNICODE}}),_s=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_tags.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=Ze(),t=class{constructor(){let{closedByChildren:a,implicitNamespacePrefix:p,contentType:D=r.TagContentType.PARSABLE_DATA,closedByParent:g=!1,isVoid:i=!1,ignoreFirstLf:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,a&&a.length>0&&a.forEach(h=>this.closedByChildren[h]=!0),this.isVoid=i,this.closedByParent=g||i,this.implicitNamespacePrefix=p||null,this.contentType=D,this.ignoreFirstLf=l}isClosedByChild(a){return this.isVoid||a.toLowerCase()in this.closedByChildren}};e.HtmlTagDefinition=t;var s,c;function n(a){return c||(s=new t,c={base:new t({isVoid:!0}),meta:new t({isVoid:!0}),area:new t({isVoid:!0}),embed:new t({isVoid:!0}),link:new t({isVoid:!0}),img:new t({isVoid:!0}),input:new t({isVoid:!0}),param:new t({isVoid:!0}),hr:new t({isVoid:!0}),br:new t({isVoid:!0}),source:new t({isVoid:!0}),track:new t({isVoid:!0}),wbr:new t({isVoid:!0}),p:new t({closedByChildren:[\"address\",\"article\",\"aside\",\"blockquote\",\"div\",\"dl\",\"fieldset\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"main\",\"nav\",\"ol\",\"p\",\"pre\",\"section\",\"table\",\"ul\"],closedByParent:!0}),thead:new t({closedByChildren:[\"tbody\",\"tfoot\"]}),tbody:new t({closedByChildren:[\"tbody\",\"tfoot\"],closedByParent:!0}),tfoot:new t({closedByChildren:[\"tbody\"],closedByParent:!0}),tr:new t({closedByChildren:[\"tr\"],closedByParent:!0}),td:new t({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),th:new t({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),col:new t({isVoid:!0}),svg:new t({implicitNamespacePrefix:\"svg\"}),math:new t({implicitNamespacePrefix:\"math\"}),li:new t({closedByChildren:[\"li\"],closedByParent:!0}),dt:new t({closedByChildren:[\"dt\",\"dd\"]}),dd:new t({closedByChildren:[\"dt\",\"dd\"],closedByParent:!0}),rb:new t({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rt:new t({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rtc:new t({closedByChildren:[\"rb\",\"rtc\",\"rp\"],closedByParent:!0}),rp:new t({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),optgroup:new t({closedByChildren:[\"optgroup\"],closedByParent:!0}),option:new t({closedByChildren:[\"option\",\"optgroup\"],closedByParent:!0}),pre:new t({ignoreFirstLf:!0}),listing:new t({ignoreFirstLf:!0}),style:new t({contentType:r.TagContentType.RAW_TEXT}),script:new t({contentType:r.TagContentType.RAW_TEXT}),title:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT}),textarea:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),c[a]||s}e.getHtmlTagDefinition=n}}),VD=I({\"node_modules/angular-html-parser/lib/compiler/src/ast_path.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=class{constructor(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1;this.path=t,this.position=s}get empty(){return!this.path||!this.path.length}get head(){return this.path[0]}get tail(){return this.path[this.path.length-1]}parentOf(t){return t&&this.path[this.path.indexOf(t)-1]}childOf(t){return this.path[this.path.indexOf(t)+1]}first(t){for(let s=this.path.length-1;s>=0;s--){let c=this.path[s];if(c instanceof t)return c}}push(t){this.path.push(t)}pop(){return this.path.pop()}};e.AstPath=r}}),Ss=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/ast.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=VD(),t=class{constructor(d,m,T){this.value=d,this.sourceSpan=m,this.i18n=T,this.type=\"text\"}visit(d,m){return d.visitText(this,m)}};e.Text=t;var s=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type=\"cdata\"}visit(d,m){return d.visitCdata(this,m)}};e.CDATA=s;var c=class{constructor(d,m,T,B,A,N){this.switchValue=d,this.type=m,this.cases=T,this.sourceSpan=B,this.switchValueSourceSpan=A,this.i18n=N}visit(d,m){return d.visitExpansion(this,m)}};e.Expansion=c;var n=class{constructor(d,m,T,B,A){this.value=d,this.expression=m,this.sourceSpan=T,this.valueSourceSpan=B,this.expSourceSpan=A}visit(d,m){return d.visitExpansionCase(this,m)}};e.ExpansionCase=n;var a=class{constructor(d,m,T){let B=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null;this.name=d,this.value=m,this.sourceSpan=T,this.valueSpan=B,this.nameSpan=A,this.i18n=N,this.type=\"attribute\"}visit(d,m){return d.visitAttribute(this,m)}};e.Attribute=a;var p=class{constructor(d,m,T,B){let A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,R=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,$=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null;this.name=d,this.attrs=m,this.children=T,this.sourceSpan=B,this.startSourceSpan=A,this.endSourceSpan=N,this.nameSpan=R,this.i18n=$,this.type=\"element\"}visit(d,m){return d.visitElement(this,m)}};e.Element=p;var D=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type=\"comment\"}visit(d,m){return d.visitComment(this,m)}};e.Comment=D;var g=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type=\"docType\"}visit(d,m){return d.visitDocType(this,m)}};e.DocType=g;function i(d,m){let T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,B=[],A=d.visit?N=>d.visit(N,T)||N.visit(d,T):N=>N.visit(d,T);return m.forEach(N=>{let R=A(N);R&&B.push(R)}),B}e.visitAll=i;var l=class{constructor(){}visitElement(d,m){this.visitChildren(m,T=>{T(d.attrs),T(d.children)})}visitAttribute(d,m){}visitText(d,m){}visitCdata(d,m){}visitComment(d,m){}visitDocType(d,m){}visitExpansion(d,m){return this.visitChildren(m,T=>{T(d.cases)})}visitExpansionCase(d,m){}visitChildren(d,m){let T=[],B=this;function A(N){N&&T.push(i(B,N,d))}return m(A),Array.prototype.concat.apply([],T)}};e.RecursiveVisitor=l;function h(d){let m=d.sourceSpan.start.offset,T=d.sourceSpan.end.offset;return d instanceof p&&(d.endSourceSpan?T=d.endSourceSpan.end.offset:d.children&&d.children.length&&(T=h(d.children[d.children.length-1]).end)),{start:m,end:T}}function C(d,m){let T=[],B=new class extends l{visit(A,N){let R=h(A);if(R.start<=m&&m]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//];function s(c,n){if(n!=null&&!(Array.isArray(n)&&n.length==2))throw new Error(\"Expected '\".concat(c,\"' to be an array, [start, end].\"));if(n!=null){let a=n[0],p=n[1];t.forEach(D=>{if(D.test(a)||D.test(p))throw new Error(\"['\".concat(a,\"', '\").concat(p,\"'] contains unusable interpolation symbol.\"))})}}e.assertInterpolationSymbols=s}}),HD=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/interpolation_config.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=XD(),t=class{constructor(s,c){this.start=s,this.end=c}static fromArray(s){return s?(r.assertInterpolationSymbols(\"interpolation\",s),new t(s[0],s[1])):e.DEFAULT_INTERPOLATION_CONFIG}};e.InterpolationConfig=t,e.DEFAULT_INTERPOLATION_CONFIG=new t(\"{{\",\"}}\")}}),zD=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/lexer.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=hs(),t=Te(),s=HD(),c=Ze(),n;(function(u){u[u.TAG_OPEN_START=0]=\"TAG_OPEN_START\",u[u.TAG_OPEN_END=1]=\"TAG_OPEN_END\",u[u.TAG_OPEN_END_VOID=2]=\"TAG_OPEN_END_VOID\",u[u.TAG_CLOSE=3]=\"TAG_CLOSE\",u[u.TEXT=4]=\"TEXT\",u[u.ESCAPABLE_RAW_TEXT=5]=\"ESCAPABLE_RAW_TEXT\",u[u.RAW_TEXT=6]=\"RAW_TEXT\",u[u.COMMENT_START=7]=\"COMMENT_START\",u[u.COMMENT_END=8]=\"COMMENT_END\",u[u.CDATA_START=9]=\"CDATA_START\",u[u.CDATA_END=10]=\"CDATA_END\",u[u.ATTR_NAME=11]=\"ATTR_NAME\",u[u.ATTR_QUOTE=12]=\"ATTR_QUOTE\",u[u.ATTR_VALUE=13]=\"ATTR_VALUE\",u[u.DOC_TYPE_START=14]=\"DOC_TYPE_START\",u[u.DOC_TYPE_END=15]=\"DOC_TYPE_END\",u[u.EXPANSION_FORM_START=16]=\"EXPANSION_FORM_START\",u[u.EXPANSION_CASE_VALUE=17]=\"EXPANSION_CASE_VALUE\",u[u.EXPANSION_CASE_EXP_START=18]=\"EXPANSION_CASE_EXP_START\",u[u.EXPANSION_CASE_EXP_END=19]=\"EXPANSION_CASE_EXP_END\",u[u.EXPANSION_FORM_END=20]=\"EXPANSION_FORM_END\",u[u.EOF=21]=\"EOF\"})(n=e.TokenType||(e.TokenType={}));var a=class{constructor(u,o,E){this.type=u,this.parts=o,this.sourceSpan=E}};e.Token=a;var p=class extends t.ParseError{constructor(u,o,E){super(E,u),this.tokenType=o}};e.TokenError=p;var D=class{constructor(u,o){this.tokens=u,this.errors=o}};e.TokenizeResult=D;function g(u,o,E){let f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return new d(new t.ParseSourceFile(u,o),E,f).tokenize()}e.tokenize=g;var i=/\\r\\n?/g;function l(u){let o=u===r.$EOF?\"EOF\":String.fromCharCode(u);return'Unexpected character \"'.concat(o,'\"')}function h(u){return'Unknown entity \"'.concat(u,'\" - use the \"&#;\" or \"&#x;\" syntax')}var C=class{constructor(u){this.error=u}},d=class{constructor(u,o,E){this._getTagContentType=o,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this._tokenizeIcu=E.tokenizeExpansionForms||!1,this._interpolationConfig=E.interpolationConfig||s.DEFAULT_INTERPOLATION_CONFIG,this._leadingTriviaCodePoints=E.leadingTriviaChars&&E.leadingTriviaChars.map(F=>F.codePointAt(0)||0),this._canSelfClose=E.canSelfClose||!1,this._allowHtmComponentClosingTags=E.allowHtmComponentClosingTags||!1;let f=E.range||{endPos:u.content.length,startPos:0,startLine:0,startCol:0};this._cursor=E.escapedString?new k(u,f):new x(u,f);try{this._cursor.init()}catch(F){this.handleError(F)}}_processCarriageReturns(u){return u.replace(i,`\n`)}tokenize(){for(;this._cursor.peek()!==r.$EOF;){let u=this._cursor.clone();try{if(this._attemptCharCode(r.$LT))if(this._attemptCharCode(r.$BANG))this._attemptStr(\"[CDATA[\")?this._consumeCdata(u):this._attemptStr(\"--\")?this._consumeComment(u):this._attemptStrCaseInsensitive(\"doctype\")?this._consumeDocType(u):this._consumeBogusComment(u);else if(this._attemptCharCode(r.$SLASH))this._consumeTagClose(u);else{let o=this._cursor.clone();this._attemptCharCode(r.$QUESTION)?(this._cursor=o,this._consumeBogusComment(u)):this._consumeTagOpen(u)}else this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(o){this.handleError(o)}}return this._beginToken(n.EOF),this._endToken([]),new D(O(this.tokens),this.errors)}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(R(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===r.$RBRACE){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();this._currentTokenStart=o,this._currentTokenType=u}_endToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();if(this._currentTokenStart===null)throw new p(\"Programming error - attempted to end a token when there was no start to the token\",this._currentTokenType,this._cursor.getSpan(o));if(this._currentTokenType===null)throw new p(\"Programming error - attempted to end a token which has no token type\",null,this._cursor.getSpan(this._currentTokenStart));let E=new a(this._currentTokenType,u,this._cursor.getSpan(this._currentTokenStart,this._leadingTriviaCodePoints));return this.tokens.push(E),this._currentTokenStart=null,this._currentTokenType=null,E}_createError(u,o){this._isInExpansionForm()&&(u+=` (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)`);let E=new p(u,this._currentTokenType,o);return this._currentTokenStart=null,this._currentTokenType=null,new C(E)}handleError(u){if(u instanceof M&&(u=this._createError(u.msg,this._cursor.getSpan(u.cursor))),u instanceof C)this.errors.push(u.error);else throw u}_attemptCharCode(u){return this._cursor.peek()===u?(this._cursor.advance(),!0):!1}_attemptCharCodeCaseInsensitive(u){return $(this._cursor.peek(),u)?(this._cursor.advance(),!0):!1}_requireCharCode(u){let o=this._cursor.clone();if(!this._attemptCharCode(u))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(o))}_attemptStr(u){let o=u.length;if(this._cursor.charsLeft()this._attemptStr(\"-->\")),this._beginToken(n.COMMENT_END),this._requireStr(\"-->\"),this._endToken([])}_consumeBogusComment(u){this._beginToken(n.COMMENT_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.COMMENT_END),this._cursor.advance(),this._endToken([])}_consumeCdata(u){this._beginToken(n.CDATA_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr(\"]]>\")),this._beginToken(n.CDATA_END),this._requireStr(\"]]>\"),this._endToken([])}_consumeDocType(u){this._beginToken(n.DOC_TYPE_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.DOC_TYPE_END),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){let u=this._cursor.clone(),o=\"\";for(;this._cursor.peek()!==r.$COLON&&!B(this._cursor.peek());)this._cursor.advance();let E;this._cursor.peek()===r.$COLON?(o=this._cursor.getChars(u),this._cursor.advance(),E=this._cursor.clone()):E=u,this._requireCharCodeUntilFn(T,o===\"\"?0:1);let f=this._cursor.getChars(E);return[o,f]}_consumeTagOpen(u){let o,E,f,F=this.tokens.length,P=this._cursor.clone(),j=[];try{if(!r.isAsciiLetter(this._cursor.peek()))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(u));for(f=this._consumeTagOpenStart(u),E=f.parts[0],o=f.parts[1],this._attemptCharCodeUntilFn(m);this._cursor.peek()!==r.$SLASH&&this._cursor.peek()!==r.$GT;){let[X,H]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$EQ)){this._attemptCharCodeUntilFn(m);let z=this._consumeAttributeValue();j.push({prefix:X,name:H,value:z})}else j.push({prefix:X,name:H});this._attemptCharCodeUntilFn(m)}this._consumeTagOpenEnd()}catch(X){if(X instanceof C){this._cursor=P,f&&(this.tokens.length=F),this._beginToken(n.TEXT,u),this._endToken([\"<\"]);return}throw X}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===n.TAG_OPEN_END_VOID)return;let W=this._getTagContentType(o,E,this._fullNameStack.length>0,j);this._handleFullNameStackForTagOpen(E,o),W===c.TagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(E,o,!1):W===c.TagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(E,o,!0)}_consumeRawTextWithTagClose(u,o,E){let f=this._consumeRawText(E,()=>!this._attemptCharCode(r.$LT)||!this._attemptCharCode(r.$SLASH)||(this._attemptCharCodeUntilFn(m),!this._attemptStrCaseInsensitive(u?\"\".concat(u,\":\").concat(o):o))?!1:(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$GT)));this._beginToken(n.TAG_CLOSE),this._requireCharCodeUntilFn(F=>F===r.$GT,3),this._cursor.advance(),this._endToken([u,o]),this._handleFullNameStackForTagClose(u,o)}_consumeTagOpenStart(u){this._beginToken(n.TAG_OPEN_START,u);let o=this._consumePrefixAndName();return this._endToken(o)}_consumeAttributeName(){let u=this._cursor.peek();if(u===r.$SQ||u===r.$DQ)throw this._createError(l(u),this._cursor.getSpan());this._beginToken(n.ATTR_NAME);let o=this._consumePrefixAndName();return this._endToken(o),o}_consumeAttributeValue(){let u;if(this._cursor.peek()===r.$SQ||this._cursor.peek()===r.$DQ){this._beginToken(n.ATTR_QUOTE);let o=this._cursor.peek();this._cursor.advance(),this._endToken([String.fromCodePoint(o)]),this._beginToken(n.ATTR_VALUE);let E=[];for(;this._cursor.peek()!==o;)E.push(this._readChar(!0));u=this._processCarriageReturns(E.join(\"\")),this._endToken([u]),this._beginToken(n.ATTR_QUOTE),this._cursor.advance(),this._endToken([String.fromCodePoint(o)])}else{this._beginToken(n.ATTR_VALUE);let o=this._cursor.clone();this._requireCharCodeUntilFn(T,1),u=this._processCarriageReturns(this._cursor.getChars(o)),this._endToken([u])}return u}_consumeTagOpenEnd(){let u=this._attemptCharCode(r.$SLASH)?n.TAG_OPEN_END_VOID:n.TAG_OPEN_END;this._beginToken(u),this._requireCharCode(r.$GT),this._endToken([])}_consumeTagClose(u){if(this._beginToken(n.TAG_CLOSE,u),this._attemptCharCodeUntilFn(m),this._allowHtmComponentClosingTags&&this._attemptCharCode(r.$SLASH))this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([]);else{let[o,E]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([o,E]),this._handleFullNameStackForTagClose(o,E)}}_consumeExpansionFormStart(){this._beginToken(n.EXPANSION_FORM_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._expansionCaseStack.push(n.EXPANSION_FORM_START),this._beginToken(n.RAW_TEXT);let u=this._readUntil(r.$COMMA);this._endToken([u]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m),this._beginToken(n.RAW_TEXT);let o=this._readUntil(r.$COMMA);this._endToken([o]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m)}_consumeExpansionCaseStart(){this._beginToken(n.EXPANSION_CASE_VALUE);let u=this._readUntil(r.$LBRACE).trim();this._endToken([u]),this._attemptCharCodeUntilFn(m),this._beginToken(n.EXPANSION_CASE_EXP_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.push(n.EXPANSION_CASE_EXP_START)}_consumeExpansionCaseEnd(){this._beginToken(n.EXPANSION_CASE_EXP_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(n.EXPANSION_FORM_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._expansionCaseStack.pop()}_consumeText(){let u=this._cursor.clone();this._beginToken(n.TEXT,u);let o=[];do this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(o.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(o.push(this._interpolationConfig.end),this._inInterpolation=!1):o.push(this._readChar(!0));while(!this._isTextEnd());this._endToken([this._processCarriageReturns(o.join(\"\"))])}_isTextEnd(){return!!(this._cursor.peek()===r.$LT||this._cursor.peek()===r.$EOF||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===r.$RBRACE&&this._isInExpansionCase()))}_readUntil(u){let o=this._cursor.clone();return this._attemptUntilChar(u),this._cursor.getChars(o)}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_CASE_EXP_START}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_FORM_START}isExpansionFormStart(){if(this._cursor.peek()!==r.$LBRACE)return!1;if(this._interpolationConfig){let u=this._cursor.clone(),o=this._attemptStr(this._interpolationConfig.start);return this._cursor=u,!o}return!0}_handleFullNameStackForTagOpen(u,o){let E=c.mergeNsAndName(u,o);(this._fullNameStack.length===0||this._fullNameStack[this._fullNameStack.length-1]===E)&&this._fullNameStack.push(E)}_handleFullNameStackForTagClose(u,o){let E=c.mergeNsAndName(u,o);this._fullNameStack.length!==0&&this._fullNameStack[this._fullNameStack.length-1]===E&&this._fullNameStack.pop()}};function m(u){return!r.isWhitespace(u)||u===r.$EOF}function T(u){return r.isWhitespace(u)||u===r.$GT||u===r.$SLASH||u===r.$SQ||u===r.$DQ||u===r.$EQ}function B(u){return(ur.$9)}function A(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiHexDigit(u)}function N(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiLetter(u)}function R(u){return u===r.$EQ||r.isAsciiLetter(u)||r.isDigit(u)}function $(u,o){return _(u)==_(o)}function _(u){return u>=r.$a&&u<=r.$z?u-r.$a+r.$A:u}function O(u){let o=[],E;for(let f=0;f0&&o.indexOf(u.peek())!==-1;)u.advance();return new t.ParseSourceSpan(new t.ParseLocation(u.file,u.state.offset,u.state.line,u.state.column),new t.ParseLocation(this.file,this.state.offset,this.state.line,this.state.column))}getChars(u){return this.input.substring(u.state.offset,this.state.offset)}charAt(u){return this.input.charCodeAt(u)}advanceState(u){if(u.offset>=this.end)throw this.state=u,new M('Unexpected character \"EOF\"',this);let o=this.charAt(u.offset);o===r.$LF?(u.line++,u.column=0):r.isNewLine(o)||u.column++,u.offset++,this.updatePeek(u)}updatePeek(u){u.peek=u.offset>=this.end?r.$EOF:this.charAt(u.offset)}},k=class extends x{constructor(u,o){u instanceof k?(super(u),this.internalState=Object.assign({},u.internalState)):(super(u,o),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new k(this)}getChars(u){let o=u.clone(),E=\"\";for(;o.internalState.offsetthis.internalState.peek;if(u()===r.$BACKSLASH)if(this.internalState=Object.assign({},this.state),this.advanceState(this.internalState),u()===r.$n)this.state.peek=r.$LF;else if(u()===r.$r)this.state.peek=r.$CR;else if(u()===r.$v)this.state.peek=r.$VTAB;else if(u()===r.$t)this.state.peek=r.$TAB;else if(u()===r.$b)this.state.peek=r.$BSPACE;else if(u()===r.$f)this.state.peek=r.$FF;else if(u()===r.$u)if(this.advanceState(this.internalState),u()===r.$LBRACE){this.advanceState(this.internalState);let o=this.clone(),E=0;for(;u()!==r.$RBRACE;)this.advanceState(this.internalState),E++;this.state.peek=this.decodeHexDigits(o,E)}else{let o=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,4)}else if(u()===r.$x){this.advanceState(this.internalState);let o=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,2)}else if(r.isOctalDigit(u())){let o=\"\",E=0,f=this.clone();for(;r.isOctalDigit(u())&&E<3;)f=this.clone(),o+=String.fromCodePoint(u()),this.advanceState(this.internalState),E++;this.state.peek=parseInt(o,8),this.internalState=f.internalState}else r.isNewLine(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(u,o){let E=this.input.substr(u.internalState.offset,o),f=parseInt(E,16);if(isNaN(f))throw u.state=u.internalState,new M(\"Invalid hexadecimal escape sequence\",u);return f}},M=class{constructor(u,o){this.msg=u,this.cursor=o}};e.CursorError=M}}),as=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/parser.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=Te(),t=Ss(),s=zD(),c=Ze(),n=class extends r.ParseError{constructor(i,l,h){super(l,h),this.elementName=i}static create(i,l,h){return new n(i,l,h)}};e.TreeError=n;var a=class{constructor(i,l){this.rootNodes=i,this.errors=l}};e.ParseTreeResult=a;var p=class{constructor(i){this.getTagDefinition=i}parse(i,l,h){let C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,d=arguments.length>4?arguments[4]:void 0,m=x=>function(k){for(var M=arguments.length,u=new Array(M>1?M-1:0),o=1;oT(x).contentType,A=C?d:m(d),N=d?(x,k,M,u)=>{let o=A(x,k,M,u);return o!==void 0?o:B(x)}:B,R=s.tokenize(i,l,N,h),$=h&&h.canSelfClose||!1,_=h&&h.allowHtmComponentClosingTags||!1,O=new D(R.tokens,T,$,_,C).build();return new a(O.rootNodes,R.errors.concat(O.errors))}};e.Parser=p;var D=class{constructor(i,l,h,C,d){this.tokens=i,this.getTagDefinition=l,this.canSelfClose=h,this.allowHtmComponentClosingTags=C,this.isTagNameCaseSensitive=d,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}build(){for(;this._peek.type!==s.TokenType.EOF;)this._peek.type===s.TokenType.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===s.TokenType.TAG_CLOSE?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===s.TokenType.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===s.TokenType.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===s.TokenType.TEXT||this._peek.type===s.TokenType.RAW_TEXT||this._peek.type===s.TokenType.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===s.TokenType.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._peek.type===s.TokenType.DOC_TYPE_START?this._consumeDocType(this._advance()):this._advance();return new a(this._rootNodes,this._errors)}_advance(){let i=this._peek;return this._index0)return this._errors=this._errors.concat(d.errors),null;let m=new r.ParseSourceSpan(i.sourceSpan.start,C.sourceSpan.end),T=new r.ParseSourceSpan(l.sourceSpan.start,C.sourceSpan.end);return new t.ExpansionCase(i.parts[0],d.rootNodes,m,i.sourceSpan,T)}_collectExpansionExpTokens(i){let l=[],h=[s.TokenType.EXPANSION_CASE_EXP_START];for(;;){if((this._peek.type===s.TokenType.EXPANSION_FORM_START||this._peek.type===s.TokenType.EXPANSION_CASE_EXP_START)&&h.push(this._peek.type),this._peek.type===s.TokenType.EXPANSION_CASE_EXP_END)if(g(h,s.TokenType.EXPANSION_CASE_EXP_START)){if(h.pop(),h.length==0)return l}else return this._errors.push(n.create(null,i.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===s.TokenType.EXPANSION_FORM_END)if(g(h,s.TokenType.EXPANSION_FORM_START))h.pop();else return this._errors.push(n.create(null,i.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===s.TokenType.EOF)return this._errors.push(n.create(null,i.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;l.push(this._advance())}}_getText(i){let l=i.parts[0];if(l.length>0&&l[0]==`\n`){let h=this._getParentElement();h!=null&&h.children.length==0&&this.getTagDefinition(h.name).ignoreFirstLf&&(l=l.substring(1))}return l}_consumeText(i){let l=this._getText(i);l.length>0&&this._addToParent(new t.Text(l,i.sourceSpan))}_closeVoidElement(){let i=this._getParentElement();i&&this.getTagDefinition(i.name).isVoid&&this._elementStack.pop()}_consumeStartTag(i){let l=i.parts[0],h=i.parts[1],C=[];for(;this._peek.type===s.TokenType.ATTR_NAME;)C.push(this._consumeAttr(this._advance()));let d=this._getElementFullName(l,h,this._getParentElement()),m=!1;if(this._peek.type===s.TokenType.TAG_OPEN_END_VOID){this._advance(),m=!0;let R=this.getTagDefinition(d);this.canSelfClose||R.canSelfClose||c.getNsPrefix(d)!==null||R.isVoid||this._errors.push(n.create(d,i.sourceSpan,'Only void and foreign elements can be self closed \"'.concat(i.parts[1],'\"')))}else this._peek.type===s.TokenType.TAG_OPEN_END&&(this._advance(),m=!1);let T=this._peek.sourceSpan.start,B=new r.ParseSourceSpan(i.sourceSpan.start,T),A=new r.ParseSourceSpan(i.sourceSpan.start.moveBy(1),i.sourceSpan.end),N=new t.Element(d,C,[],B,B,void 0,A);this._pushElement(N),m&&(this._popElement(d),N.endSourceSpan=B)}_pushElement(i){let l=this._getParentElement();l&&this.getTagDefinition(l.name).isClosedByChild(i.name)&&this._elementStack.pop(),this._addToParent(i),this._elementStack.push(i)}_consumeEndTag(i){let l=this.allowHtmComponentClosingTags&&i.parts.length===0?null:this._getElementFullName(i.parts[0],i.parts[1],this._getParentElement());if(this._getParentElement()&&(this._getParentElement().endSourceSpan=i.sourceSpan),l&&this.getTagDefinition(l).isVoid)this._errors.push(n.create(l,i.sourceSpan,'Void elements do not have end tags \"'.concat(i.parts[1],'\"')));else if(!this._popElement(l)){let h='Unexpected closing tag \"'.concat(l,'\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags');this._errors.push(n.create(l,i.sourceSpan,h))}}_popElement(i){for(let l=this._elementStack.length-1;l>=0;l--){let h=this._elementStack[l];if(!i||(c.getNsPrefix(h.name)?h.name==i:h.name.toLowerCase()==i.toLowerCase()))return this._elementStack.splice(l,this._elementStack.length-l),!0;if(!this.getTagDefinition(h.name).closedByParent)return!1}return!1}_consumeAttr(i){let l=c.mergeNsAndName(i.parts[0],i.parts[1]),h=i.sourceSpan.end,C=\"\",d,m;if(this._peek.type===s.TokenType.ATTR_QUOTE&&(m=this._advance().sourceSpan.start),this._peek.type===s.TokenType.ATTR_VALUE){let T=this._advance();C=T.parts[0],h=T.sourceSpan.end,d=T.sourceSpan}return this._peek.type===s.TokenType.ATTR_QUOTE&&(h=this._advance().sourceSpan.end,d=new r.ParseSourceSpan(m,h)),new t.Attribute(l,C,new r.ParseSourceSpan(i.sourceSpan.start,h),d,i.sourceSpan)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_getParentElementSkippingContainers(){let i=null;for(let l=this._elementStack.length-1;l>=0;l--){if(!c.isNgContainer(this._elementStack[l].name))return{parent:this._elementStack[l],container:i};i=this._elementStack[l]}return{parent:null,container:i}}_addToParent(i){let l=this._getParentElement();l!=null?l.children.push(i):this._rootNodes.push(i)}_insertBeforeContainer(i,l,h){if(!l)this._addToParent(h),this._elementStack.push(h);else{if(i){let C=i.children.indexOf(l);i.children[C]=h}else this._rootNodes.push(h);h.children.push(l),this._elementStack.splice(this._elementStack.indexOf(l),0,h)}}_getElementFullName(i,l,h){return i===\"\"&&(i=this.getTagDefinition(l).implicitNamespacePrefix||\"\",i===\"\"&&h!=null&&(i=c.getNsPrefix(h.name))),c.mergeNsAndName(i,l)}};function g(i,l){return i.length>0&&i[i.length-1]===l}}}),WD=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_parser.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=_s(),t=as(),s=as();e.ParseTreeResult=s.ParseTreeResult,e.TreeError=s.TreeError;var c=class extends t.Parser{constructor(){super(r.getHtmlTagDefinition)}parse(n,a,p){let D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,g=arguments.length>4?arguments[4]:void 0;return super.parse(n,a,p,D,g)}};e.HtmlParser=c}}),ys=I({\"node_modules/angular-html-parser/lib/angular-html-parser/src/index.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=WD(),t=Ze();e.TagContentType=t.TagContentType;var s=null,c=()=>(s||(s=new r.HtmlParser),s);function n(a){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{canSelfClose:D=!1,allowHtmComponentClosingTags:g=!1,isTagNameCaseSensitive:i=!1,getTagContentType:l}=p;return c().parse(a,\"angular-html-parser\",{tokenizeExpansionForms:!1,interpolationConfig:void 0,canSelfClose:D,allowHtmComponentClosingTags:g},i,l)}e.parse=n}});q();var{ParseSourceSpan:Qe,ParseLocation:is,ParseSourceFile:YD}=Te(),QD=aD(),KD=ps(),JD=iD(),{inferParserByLanguage:ZD}=ID(),el=xD(),jr=LD(),os=MD(),{hasPragma:rl}=jD(),{Node:tl}=$D(),{parseIeConditionalComment:ul}=UD(),{locStart:nl,locEnd:sl}=GD();function al(e,r,t){let{recognizeSelfClosing:s,normalizeTagName:c,normalizeAttributeName:n,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p,getTagContentType:D}=r,g=ys(),{RecursiveVisitor:i,visitAll:l}=Ss(),{ParseSourceSpan:h}=Te(),{getHtmlTagDefinition:C}=_s(),{rootNodes:d,errors:m}=g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p,getTagContentType:D});if(t.parser===\"vue\")if(d.some(O=>O.type===\"docType\"&&O.value===\"html\"||O.type===\"element\"&&O.name.toLowerCase()===\"html\")){s=!0,c=!0,n=!0,a=!0,p=!1;let O=g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p});d=O.rootNodes,m=O.errors}else{let O=x=>{if(!x||x.type!==\"element\"||x.name!==\"template\")return!1;let k=x.attrs.find(u=>u.name===\"lang\"),M=k&&k.value;return!M||ZD(M,t)===\"html\"};if(d.some(O)){let x,k=()=>g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p}),M=()=>x||(x=k()),u=o=>M().rootNodes.find(E=>{let{startSourceSpan:f}=E;return f&&f.start.offset===o.startSourceSpan.start.offset});for(let o=0;o0){let{msg:_,span:{start:O,end:x}}=m[0];throw JD(_,{start:{line:O.line+1,column:O.col+1},end:{line:x.line+1,column:x.col+1}})}let T=_=>{let O=_.name.startsWith(\":\")?_.name.slice(1).split(\":\")[0]:null,x=_.nameSpan.toString(),k=O!==null&&x.startsWith(\"\".concat(O,\":\")),M=k?x.slice(O.length+1):x;_.name=M,_.namespace=O,_.hasExplicitNamespace=k},B=_=>{switch(_.type){case\"element\":T(_);for(let O of _.attrs)T(O),O.valueSpan?(O.value=O.valueSpan.toString(),/[\"']/.test(O.value[0])&&(O.value=O.value.slice(1,-1))):O.value=null;break;case\"comment\":_.value=_.sourceSpan.toString().slice(4,-3);break;case\"text\":_.value=_.sourceSpan.toString();break}},A=(_,O)=>{let x=_.toLowerCase();return O(x)?x:_},N=_=>{if(_.type===\"element\"&&(c&&(!_.namespace||_.namespace===_.tagDefinition.implicitNamespacePrefix||os(_))&&(_.name=A(_.name,O=>O in el)),n)){let O=jr[_.name]||Object.create(null);for(let x of _.attrs)x.namespace||(x.name=A(x.name,k=>_.name in jr&&(k in jr[\"*\"]||k in O)))}},R=_=>{_.sourceSpan&&_.endSourceSpan&&(_.sourceSpan=new h(_.sourceSpan.start,_.endSourceSpan.end))},$=_=>{if(_.type===\"element\"){let O=C(p?_.name:_.name.toLowerCase());!_.namespace||_.namespace===O.implicitNamespacePrefix||os(_)?_.tagDefinition=O:_.tagDefinition=C(\"\")}};return l(new class extends i{visit(_){B(_),$(_),N(_),R(_)}},d),d}function Ts(e,r,t){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,{frontMatter:c,content:n}=s?QD(e):{frontMatter:null,content:e},a=new YD(e,r.filepath),p=new is(a,0,0,0),D=p.moveBy(e.length),g={type:\"root\",sourceSpan:new Qe(p,D),children:al(n,t,r)};if(c){let h=new is(a,0,0,0),C=h.moveBy(c.raw.length);c.sourceSpan=new Qe(h,C),g.children.unshift(c)}let i=new tl(g),l=(h,C)=>{let{offset:d}=C,m=e.slice(0,d).replace(/[^\\n\\r]/g,\" \"),B=Ts(m+h,r,t,!1);B.sourceSpan=new Qe(C,KD(B.children).sourceSpan.end);let A=B.children[0];return A.length===d?B.children.shift():(A.sourceSpan=new Qe(A.sourceSpan.start.moveBy(d),A.sourceSpan.end),A.value=A.value.slice(d)),B};return i.walk(h=>{if(h.type===\"comment\"){let C=ul(h,l);C&&h.parent.replaceChild(h,C)}}),i}function Ke(){let{name:e,recognizeSelfClosing:r=!1,normalizeTagName:t=!1,normalizeAttributeName:s=!1,allowHtmComponentClosingTags:c=!1,isTagNameCaseSensitive:n=!1,getTagContentType:a}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{parse:(p,D,g)=>Ts(p,Object.assign({parser:e},g),{recognizeSelfClosing:r,normalizeTagName:t,normalizeAttributeName:s,allowHtmComponentClosingTags:c,isTagNameCaseSensitive:n,getTagContentType:a}),hasPragma:rl,astFormat:\"html\",locStart:nl,locEnd:sl}}Bs.exports={parsers:{html:Ke({name:\"html\",recognizeSelfClosing:!0,normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0}),angular:Ke({name:\"angular\"}),vue:Ke({name:\"vue\",recognizeSelfClosing:!0,isTagNameCaseSensitive:!0,getTagContentType:(e,r,t,s)=>{if(e.toLowerCase()!==\"html\"&&!t&&(e!==\"template\"||s.some(c=>{let{name:n,value:a}=c;return n===\"lang\"&&a!==\"html\"&&a!==\"\"&&a!==void 0})))return ys().TagContentType.RAW_TEXT}}),lwc:Ke({name:\"lwc\"})}}});return il();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.markdown=e()}})(function(){\"use strict\";var H=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var ue=H((uf,Au)=>{var ur=function(e){return e&&e.Math==Math&&e};Au.exports=ur(typeof globalThis==\"object\"&&globalThis)||ur(typeof window==\"object\"&&window)||ur(typeof self==\"object\"&&self)||ur(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var Ae=H((tf,xu)=>{xu.exports=function(e){try{return!!e()}catch{return!0}}});var _e=H((nf,bu)=>{var ca=Ae();bu.exports=!ca(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var tr=H((af,yu)=>{var la=Ae();yu.exports=!la(function(){var e=function(){}.bind();return typeof e!=\"function\"||e.hasOwnProperty(\"prototype\")})});var Oe=H((of,Bu)=>{var Da=tr(),nr=Function.prototype.call;Bu.exports=Da?nr.bind(nr):function(){return nr.apply(nr,arguments)}});var _u=H(qu=>{\"use strict\";var wu={}.propertyIsEnumerable,ku=Object.getOwnPropertyDescriptor,fa=ku&&!wu.call({1:2},1);qu.f=fa?function(r){var u=ku(this,r);return!!u&&u.enumerable}:wu});var ir=H((cf,Ou)=>{Ou.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var ve=H((lf,Tu)=>{var Iu=tr(),Su=Function.prototype,pa=Su.bind,Br=Su.call,da=Iu&&pa.bind(Br,Br);Tu.exports=Iu?function(e){return e&&da(e)}:function(e){return e&&function(){return Br.apply(e,arguments)}}});var ar=H((Df,Lu)=>{var Nu=ve(),ha=Nu({}.toString),va=Nu(\"\".slice);Lu.exports=function(e){return va(ha(e),8,-1)}});var ju=H((ff,Ru)=>{var ma=ue(),Ea=ve(),Ca=Ae(),ga=ar(),wr=ma.Object,Fa=Ea(\"\".split);Ru.exports=Ca(function(){return!wr(\"z\").propertyIsEnumerable(0)})?function(e){return ga(e)==\"String\"?Fa(e,\"\"):wr(e)}:wr});var kr=H((pf,Pu)=>{var Aa=ue(),xa=Aa.TypeError;Pu.exports=function(e){if(e==null)throw xa(\"Can't call method on \"+e);return e}});var or=H((df,Mu)=>{var ba=ju(),ya=kr();Mu.exports=function(e){return ba(ya(e))}});var me=H((hf,zu)=>{zu.exports=function(e){return typeof e==\"function\"}});var Ie=H((vf,Gu)=>{var Ba=me();Gu.exports=function(e){return typeof e==\"object\"?e!==null:Ba(e)}});var He=H((mf,Uu)=>{var qr=ue(),wa=me(),ka=function(e){return wa(e)?e:void 0};Uu.exports=function(e,r){return arguments.length<2?ka(qr[e]):qr[e]&&qr[e][r]}});var _r=H((Ef,Vu)=>{var qa=ve();Vu.exports=qa({}.isPrototypeOf)});var Hu=H((Cf,$u)=>{var _a=He();$u.exports=_a(\"navigator\",\"userAgent\")||\"\"});var Qu=H((gf,Zu)=>{var Ju=ue(),Or=Hu(),Xu=Ju.process,Wu=Ju.Deno,Ku=Xu&&Xu.versions||Wu&&Wu.version,Yu=Ku&&Ku.v8,Ee,sr;Yu&&(Ee=Yu.split(\".\"),sr=Ee[0]>0&&Ee[0]<4?1:+(Ee[0]+Ee[1]));!sr&&Or&&(Ee=Or.match(/Edge\\/(\\d+)/),(!Ee||Ee[1]>=74)&&(Ee=Or.match(/Chrome\\/(\\d+)/),Ee&&(sr=+Ee[1])));Zu.exports=sr});var Ir=H((Ff,rt)=>{var et=Qu(),Oa=Ae();rt.exports=!!Object.getOwnPropertySymbols&&!Oa(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&et&&et<41})});var Sr=H((Af,ut)=>{var Ia=Ir();ut.exports=Ia&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Tr=H((xf,tt)=>{var Sa=ue(),Ta=He(),Na=me(),La=_r(),Ra=Sr(),ja=Sa.Object;tt.exports=Ra?function(e){return typeof e==\"symbol\"}:function(e){var r=Ta(\"Symbol\");return Na(r)&&La(r.prototype,ja(e))}});var cr=H((bf,nt)=>{var Pa=ue(),Ma=Pa.String;nt.exports=function(e){try{return Ma(e)}catch{return\"Object\"}}});var Xe=H((yf,it)=>{var za=ue(),Ga=me(),Ua=cr(),Va=za.TypeError;it.exports=function(e){if(Ga(e))return e;throw Va(Ua(e)+\" is not a function\")}});var lr=H((Bf,at)=>{var $a=Xe();at.exports=function(e,r){var u=e[r];return u==null?void 0:$a(u)}});var st=H((wf,ot)=>{var Ha=ue(),Nr=Oe(),Lr=me(),Rr=Ie(),Xa=Ha.TypeError;ot.exports=function(e,r){var u,t;if(r===\"string\"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e))||Lr(u=e.valueOf)&&!Rr(t=Nr(u,e))||r!==\"string\"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e)))return t;throw Xa(\"Can't convert object to primitive value\")}});var lt=H((kf,ct)=>{ct.exports=!1});var Dr=H((qf,ft)=>{var Dt=ue(),Wa=Object.defineProperty;ft.exports=function(e,r){try{Wa(Dt,e,{value:r,configurable:!0,writable:!0})}catch{Dt[e]=r}return r}});var fr=H((_f,dt)=>{var Ka=ue(),Ya=Dr(),pt=\"__core-js_shared__\",Ja=Ka[pt]||Ya(pt,{});dt.exports=Ja});var jr=H((Of,vt)=>{var Za=lt(),ht=fr();(vt.exports=function(e,r){return ht[e]||(ht[e]=r!==void 0?r:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:Za?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var Pr=H((If,mt)=>{var Qa=ue(),eo=kr(),ro=Qa.Object;mt.exports=function(e){return ro(eo(e))}});var Be=H((Sf,Et)=>{var uo=ve(),to=Pr(),no=uo({}.hasOwnProperty);Et.exports=Object.hasOwn||function(r,u){return no(to(r),u)}});var Mr=H((Tf,Ct)=>{var io=ve(),ao=0,oo=Math.random(),so=io(1 .toString);Ct.exports=function(e){return\"Symbol(\"+(e===void 0?\"\":e)+\")_\"+so(++ao+oo,36)}});var Te=H((Nf,bt)=>{var co=ue(),lo=jr(),gt=Be(),Do=Mr(),Ft=Ir(),xt=Sr(),Le=lo(\"wks\"),Se=co.Symbol,At=Se&&Se.for,fo=xt?Se:Se&&Se.withoutSetter||Do;bt.exports=function(e){if(!gt(Le,e)||!(Ft||typeof Le[e]==\"string\")){var r=\"Symbol.\"+e;Ft&>(Se,e)?Le[e]=Se[e]:xt&&At?Le[e]=At(r):Le[e]=fo(r)}return Le[e]}});var kt=H((Lf,wt)=>{var po=ue(),ho=Oe(),yt=Ie(),Bt=Tr(),vo=lr(),mo=st(),Eo=Te(),Co=po.TypeError,go=Eo(\"toPrimitive\");wt.exports=function(e,r){if(!yt(e)||Bt(e))return e;var u=vo(e,go),t;if(u){if(r===void 0&&(r=\"default\"),t=ho(u,e,r),!yt(t)||Bt(t))return t;throw Co(\"Can't convert object to primitive value\")}return r===void 0&&(r=\"number\"),mo(e,r)}});var pr=H((Rf,qt)=>{var Fo=kt(),Ao=Tr();qt.exports=function(e){var r=Fo(e,\"string\");return Ao(r)?r:r+\"\"}});var It=H((jf,Ot)=>{var xo=ue(),_t=Ie(),zr=xo.document,bo=_t(zr)&&_t(zr.createElement);Ot.exports=function(e){return bo?zr.createElement(e):{}}});var Gr=H((Pf,St)=>{var yo=_e(),Bo=Ae(),wo=It();St.exports=!yo&&!Bo(function(){return Object.defineProperty(wo(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Ur=H(Nt=>{var ko=_e(),qo=Oe(),_o=_u(),Oo=ir(),Io=or(),So=pr(),To=Be(),No=Gr(),Tt=Object.getOwnPropertyDescriptor;Nt.f=ko?Tt:function(r,u){if(r=Io(r),u=So(u),No)try{return Tt(r,u)}catch{}if(To(r,u))return Oo(!qo(_o.f,r,u),r[u])}});var Rt=H((zf,Lt)=>{var Lo=_e(),Ro=Ae();Lt.exports=Lo&&Ro(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var Re=H((Gf,Pt)=>{var jt=ue(),jo=Ie(),Po=jt.String,Mo=jt.TypeError;Pt.exports=function(e){if(jo(e))return e;throw Mo(Po(e)+\" is not an object\")}});var hr=H(zt=>{var zo=ue(),Go=_e(),Uo=Gr(),Vo=Rt(),dr=Re(),Mt=pr(),$o=zo.TypeError,Vr=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$r=\"enumerable\",Hr=\"configurable\",Xr=\"writable\";zt.f=Go?Vo?function(r,u,t){if(dr(r),u=Mt(u),dr(t),typeof r==\"function\"&&u===\"prototype\"&&\"value\"in t&&Xr in t&&!t[Xr]){var o=Ho(r,u);o&&o[Xr]&&(r[u]=t.value,t={configurable:Hr in t?t[Hr]:o[Hr],enumerable:$r in t?t[$r]:o[$r],writable:!1})}return Vr(r,u,t)}:Vr:function(r,u,t){if(dr(r),u=Mt(u),dr(t),Uo)try{return Vr(r,u,t)}catch{}if(\"get\"in t||\"set\"in t)throw $o(\"Accessors not supported\");return\"value\"in t&&(r[u]=t.value),r}});var vr=H((Vf,Gt)=>{var Xo=_e(),Wo=hr(),Ko=ir();Gt.exports=Xo?function(e,r,u){return Wo.f(e,r,Ko(1,u))}:function(e,r,u){return e[r]=u,e}});var mr=H(($f,Ut)=>{var Yo=ve(),Jo=me(),Wr=fr(),Zo=Yo(Function.toString);Jo(Wr.inspectSource)||(Wr.inspectSource=function(e){return Zo(e)});Ut.exports=Wr.inspectSource});var Ht=H((Hf,$t)=>{var Qo=ue(),es=me(),rs=mr(),Vt=Qo.WeakMap;$t.exports=es(Vt)&&/native code/.test(rs(Vt))});var Kt=H((Xf,Wt)=>{var us=jr(),ts=Mr(),Xt=us(\"keys\");Wt.exports=function(e){return Xt[e]||(Xt[e]=ts(e))}});var Kr=H((Wf,Yt)=>{Yt.exports={}});var un=H((Kf,rn)=>{var ns=Ht(),en=ue(),Yr=ve(),is=Ie(),as=vr(),Jr=Be(),Zr=fr(),os=Kt(),ss=Kr(),Jt=\"Object already initialized\",eu=en.TypeError,cs=en.WeakMap,Er,We,Cr,ls=function(e){return Cr(e)?We(e):Er(e,{})},Ds=function(e){return function(r){var u;if(!is(r)||(u=We(r)).type!==e)throw eu(\"Incompatible receiver, \"+e+\" required\");return u}};ns||Zr.state?(we=Zr.state||(Zr.state=new cs),Zt=Yr(we.get),Qr=Yr(we.has),Qt=Yr(we.set),Er=function(e,r){if(Qr(we,e))throw new eu(Jt);return r.facade=e,Qt(we,e,r),r},We=function(e){return Zt(we,e)||{}},Cr=function(e){return Qr(we,e)}):(Ne=os(\"state\"),ss[Ne]=!0,Er=function(e,r){if(Jr(e,Ne))throw new eu(Jt);return r.facade=e,as(e,Ne,r),r},We=function(e){return Jr(e,Ne)?e[Ne]:{}},Cr=function(e){return Jr(e,Ne)});var we,Zt,Qr,Qt,Ne;rn.exports={set:Er,get:We,has:Cr,enforce:ls,getterFor:Ds}});var an=H((Yf,nn)=>{var ru=_e(),fs=Be(),tn=Function.prototype,ps=ru&&Object.getOwnPropertyDescriptor,uu=fs(tn,\"name\"),ds=uu&&function(){}.name===\"something\",hs=uu&&(!ru||ru&&ps(tn,\"name\").configurable);nn.exports={EXISTS:uu,PROPER:ds,CONFIGURABLE:hs}});var Dn=H((Jf,ln)=>{var vs=ue(),on=me(),ms=Be(),sn=vr(),Es=Dr(),Cs=mr(),cn=un(),gs=an().CONFIGURABLE,Fs=cn.get,As=cn.enforce,xs=String(String).split(\"String\");(ln.exports=function(e,r,u,t){var o=t?!!t.unsafe:!1,n=t?!!t.enumerable:!1,s=t?!!t.noTargetGet:!1,c=t&&t.name!==void 0?t.name:r,i;if(on(u)&&(String(c).slice(0,7)===\"Symbol(\"&&(c=\"[\"+String(c).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!ms(u,\"name\")||gs&&u.name!==c)&&sn(u,\"name\",c),i=As(u),i.source||(i.source=xs.join(typeof c==\"string\"?c:\"\"))),e===vs){n?e[r]=u:Es(r,u);return}else o?!s&&e[r]&&(n=!0):delete e[r];n?e[r]=u:sn(e,r,u)})(Function.prototype,\"toString\",function(){return on(this)&&Fs(this).source||Cs(this)})});var tu=H((Zf,fn)=>{var bs=Math.ceil,ys=Math.floor;fn.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?ys:bs)(r)}});var dn=H((Qf,pn)=>{var Bs=tu(),ws=Math.max,ks=Math.min;pn.exports=function(e,r){var u=Bs(e);return u<0?ws(u+r,0):ks(u,r)}});var vn=H((ep,hn)=>{var qs=tu(),_s=Math.min;hn.exports=function(e){return e>0?_s(qs(e),9007199254740991):0}});var Ke=H((rp,mn)=>{var Os=vn();mn.exports=function(e){return Os(e.length)}});var gn=H((up,Cn)=>{var Is=or(),Ss=dn(),Ts=Ke(),En=function(e){return function(r,u,t){var o=Is(r),n=Ts(o),s=Ss(t,n),c;if(e&&u!=u){for(;n>s;)if(c=o[s++],c!=c)return!0}else for(;n>s;s++)if((e||s in o)&&o[s]===u)return e||s||0;return!e&&-1}};Cn.exports={includes:En(!0),indexOf:En(!1)}});var xn=H((tp,An)=>{var Ns=ve(),nu=Be(),Ls=or(),Rs=gn().indexOf,js=Kr(),Fn=Ns([].push);An.exports=function(e,r){var u=Ls(e),t=0,o=[],n;for(n in u)!nu(js,n)&&nu(u,n)&&Fn(o,n);for(;r.length>t;)nu(u,n=r[t++])&&(~Rs(o,n)||Fn(o,n));return o}});var yn=H((np,bn)=>{bn.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var wn=H(Bn=>{var Ps=xn(),Ms=yn(),zs=Ms.concat(\"length\",\"prototype\");Bn.f=Object.getOwnPropertyNames||function(r){return Ps(r,zs)}});var qn=H(kn=>{kn.f=Object.getOwnPropertySymbols});var On=H((op,_n)=>{var Gs=He(),Us=ve(),Vs=wn(),$s=qn(),Hs=Re(),Xs=Us([].concat);_n.exports=Gs(\"Reflect\",\"ownKeys\")||function(r){var u=Vs.f(Hs(r)),t=$s.f;return t?Xs(u,t(r)):u}});var Tn=H((sp,Sn)=>{var In=Be(),Ws=On(),Ks=Ur(),Ys=hr();Sn.exports=function(e,r,u){for(var t=Ws(r),o=Ys.f,n=Ks.f,s=0;s{var Js=Ae(),Zs=me(),Qs=/#|\\.prototype\\./,Ye=function(e,r){var u=rc[ec(e)];return u==tc?!0:u==uc?!1:Zs(r)?Js(r):!!r},ec=Ye.normalize=function(e){return String(e).replace(Qs,\".\").toLowerCase()},rc=Ye.data={},uc=Ye.NATIVE=\"N\",tc=Ye.POLYFILL=\"P\";Nn.exports=Ye});var au=H((lp,Rn)=>{var iu=ue(),nc=Ur().f,ic=vr(),ac=Dn(),oc=Dr(),sc=Tn(),cc=Ln();Rn.exports=function(e,r){var u=e.target,t=e.global,o=e.stat,n,s,c,i,D,a;if(t?s=iu:o?s=iu[u]||oc(u,{}):s=(iu[u]||{}).prototype,s)for(c in r){if(D=r[c],e.noTargetGet?(a=nc(s,c),i=a&&a.value):i=s[c],n=cc(t?c:u+(o?\".\":\"#\")+c,e.forced),!n&&i!==void 0){if(typeof D==typeof i)continue;sc(D,i)}(e.sham||i&&i.sham)&&ic(D,\"sham\",!0),ac(s,c,D,e)}}});var ou=H((Dp,jn)=>{var lc=ar();jn.exports=Array.isArray||function(r){return lc(r)==\"Array\"}});var su=H((fp,Mn)=>{var Pn=ve(),Dc=Xe(),fc=tr(),pc=Pn(Pn.bind);Mn.exports=function(e,r){return Dc(e),r===void 0?e:fc?pc(e,r):function(){return e.apply(r,arguments)}}});var Un=H((pp,Gn)=>{\"use strict\";var dc=ue(),hc=ou(),vc=Ke(),mc=su(),Ec=dc.TypeError,zn=function(e,r,u,t,o,n,s,c){for(var i=o,D=0,a=s?mc(s,c):!1,l,p;D0&&hc(l))p=vc(l),i=zn(e,r,l,p,i,n-1)-1;else{if(i>=9007199254740991)throw Ec(\"Exceed the acceptable array length\");e[i]=l}i++}D++}return i};Gn.exports=zn});var Hn=H((dp,$n)=>{var Cc=Te(),gc=Cc(\"toStringTag\"),Vn={};Vn[gc]=\"z\";$n.exports=String(Vn)===\"[object z]\"});var cu=H((hp,Xn)=>{var Fc=ue(),Ac=Hn(),xc=me(),gr=ar(),bc=Te(),yc=bc(\"toStringTag\"),Bc=Fc.Object,wc=gr(function(){return arguments}())==\"Arguments\",kc=function(e,r){try{return e[r]}catch{}};Xn.exports=Ac?gr:function(e){var r,u,t;return e===void 0?\"Undefined\":e===null?\"Null\":typeof(u=kc(r=Bc(e),yc))==\"string\"?u:wc?gr(r):(t=gr(r))==\"Object\"&&xc(r.callee)?\"Arguments\":t}});var Qn=H((vp,Zn)=>{var qc=ve(),_c=Ae(),Wn=me(),Oc=cu(),Ic=He(),Sc=mr(),Kn=function(){},Tc=[],Yn=Ic(\"Reflect\",\"construct\"),lu=/^\\s*(?:class|function)\\b/,Nc=qc(lu.exec),Lc=!lu.exec(Kn),Je=function(r){if(!Wn(r))return!1;try{return Yn(Kn,Tc,r),!0}catch{return!1}},Jn=function(r){if(!Wn(r))return!1;switch(Oc(r)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return Lc||!!Nc(lu,Sc(r))}catch{return!0}};Jn.sham=!0;Zn.exports=!Yn||_c(function(){var e;return Je(Je.call)||!Je(Object)||!Je(function(){e=!0})||e})?Jn:Je});var ti=H((mp,ui)=>{var Rc=ue(),ei=ou(),jc=Qn(),Pc=Ie(),Mc=Te(),zc=Mc(\"species\"),ri=Rc.Array;ui.exports=function(e){var r;return ei(e)&&(r=e.constructor,jc(r)&&(r===ri||ei(r.prototype))?r=void 0:Pc(r)&&(r=r[zc],r===null&&(r=void 0))),r===void 0?ri:r}});var ii=H((Ep,ni)=>{var Gc=ti();ni.exports=function(e,r){return new(Gc(e))(r===0?0:r)}});var ai=H(()=>{\"use strict\";var Uc=au(),Vc=Un(),$c=Xe(),Hc=Pr(),Xc=Ke(),Wc=ii();Uc({target:\"Array\",proto:!0},{flatMap:function(r){var u=Hc(this),t=Xc(u),o;return $c(r),o=Wc(u,0),o.length=Vc(o,u,u,t,0,1,r,arguments.length>1?arguments[1]:void 0),o}})});var Du=H((Fp,oi)=>{oi.exports={}});var ci=H((Ap,si)=>{var Kc=Te(),Yc=Du(),Jc=Kc(\"iterator\"),Zc=Array.prototype;si.exports=function(e){return e!==void 0&&(Yc.Array===e||Zc[Jc]===e)}});var fu=H((xp,Di)=>{var Qc=cu(),li=lr(),el=Du(),rl=Te(),ul=rl(\"iterator\");Di.exports=function(e){if(e!=null)return li(e,ul)||li(e,\"@@iterator\")||el[Qc(e)]}});var pi=H((bp,fi)=>{var tl=ue(),nl=Oe(),il=Xe(),al=Re(),ol=cr(),sl=fu(),cl=tl.TypeError;fi.exports=function(e,r){var u=arguments.length<2?sl(e):r;if(il(u))return al(nl(u,e));throw cl(ol(e)+\" is not iterable\")}});var vi=H((yp,hi)=>{var ll=Oe(),di=Re(),Dl=lr();hi.exports=function(e,r,u){var t,o;di(e);try{if(t=Dl(e,\"return\"),!t){if(r===\"throw\")throw u;return u}t=ll(t,e)}catch(n){o=!0,t=n}if(r===\"throw\")throw u;if(o)throw t;return di(t),u}});var Fi=H((Bp,gi)=>{var fl=ue(),pl=su(),dl=Oe(),hl=Re(),vl=cr(),ml=ci(),El=Ke(),mi=_r(),Cl=pi(),gl=fu(),Ei=vi(),Fl=fl.TypeError,Fr=function(e,r){this.stopped=e,this.result=r},Ci=Fr.prototype;gi.exports=function(e,r,u){var t=u&&u.that,o=!!(u&&u.AS_ENTRIES),n=!!(u&&u.IS_ITERATOR),s=!!(u&&u.INTERRUPTED),c=pl(r,t),i,D,a,l,p,d,g,F=function(x){return i&&Ei(i,\"normal\",x),new Fr(!0,x)},E=function(x){return o?(hl(x),s?c(x[0],x[1],F):c(x[0],x[1])):s?c(x,F):c(x)};if(n)i=e;else{if(D=gl(e),!D)throw Fl(vl(e)+\" is not iterable\");if(ml(D)){for(a=0,l=El(e);l>a;a++)if(p=E(e[a]),p&&mi(Ci,p))return p;return new Fr(!1)}i=Cl(e,D)}for(d=i.next;!(g=dl(d,i)).done;){try{p=E(g.value)}catch(x){Ei(i,\"throw\",x)}if(typeof p==\"object\"&&p&&mi(Ci,p))return p}return new Fr(!1)}});var xi=H((wp,Ai)=>{\"use strict\";var Al=pr(),xl=hr(),bl=ir();Ai.exports=function(e,r,u){var t=Al(r);t in e?xl.f(e,t,bl(0,u)):e[t]=u}});var bi=H(()=>{var yl=au(),Bl=Fi(),wl=xi();yl({target:\"Object\",stat:!0},{fromEntries:function(r){var u={};return Bl(r,function(t,o){wl(u,t,o)},{AS_ENTRIES:!0}),u}})});var ef=H((_p,oa)=>{var kl=[\"cliName\",\"cliCategory\",\"cliDescription\"],yi,Bi,wi,ki,qi,_i;function ql(e,r){if(e==null)return{};var u=_l(e,r),t,o;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(e,t)||(u[t]=e[t]))}return u}function _l(e,r){if(e==null)return{};var u={},t=Object.keys(e),o,n;for(n=0;n=0)&&(u[o]=e[o]);return u}ai();bi();function je(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}var Ol=Object.create,Ar=Object.defineProperty,Il=Object.getOwnPropertyDescriptor,pu=Object.getOwnPropertyNames,Sl=Object.getPrototypeOf,Tl=Object.prototype.hasOwnProperty,Pe=(e,r)=>function(){return e&&(r=(0,e[pu(e)[0]])(e=0)),r},S=(e,r)=>function(){return r||(0,e[pu(e)[0]])((r={exports:{}}).exports,r),r.exports},Li=(e,r)=>{for(var u in r)Ar(e,u,{get:r[u],enumerable:!0})},Ri=(e,r,u,t)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let o of pu(r))!Tl.call(e,o)&&o!==u&&Ar(e,o,{get:()=>r[o],enumerable:!(t=Il(r,o))||t.enumerable});return e},Nl=(e,r,u)=>(u=e!=null?Ol(Sl(e)):{},Ri(r||!e||!e.__esModule?Ar(u,\"default\",{value:e,enumerable:!0}):u,e)),ji=e=>Ri(Ar({},\"__esModule\",{value:!0}),e),Oi,Ii,Ze,I=Pe({\"\"(){Oi={},Ii=[],Ze={env:Oi,argv:Ii}}}),Me=S({\"node_modules/xtend/immutable.js\"(e,r){I(),r.exports=t;var u=Object.prototype.hasOwnProperty;function t(){for(var o={},n=0;n-1&&DD)return{line:a+1,column:D-(n[a-1]||0)+1,offset:D}}return{}}function i(D){var a=D&&D.line,l=D&&D.column,p;return!isNaN(a)&&!isNaN(l)&&a-1 in n&&(p=(n[a-2]||0)+l-1||0),p>-1&&p\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Igrave:\"\\xCC\",Iuml:\"\\xCF\",LT:\"<\",Ntilde:\"\\xD1\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ograve:\"\\xD2\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",QUOT:'\"',REG:\"\\xAE\",THORN:\"\\xDE\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Ugrave:\"\\xD9\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",aacute:\"\\xE1\",acirc:\"\\xE2\",acute:\"\\xB4\",aelig:\"\\xE6\",agrave:\"\\xE0\",amp:\"&\",aring:\"\\xE5\",atilde:\"\\xE3\",auml:\"\\xE4\",brvbar:\"\\xA6\",ccedil:\"\\xE7\",cedil:\"\\xB8\",cent:\"\\xA2\",copy:\"\\xA9\",curren:\"\\xA4\",deg:\"\\xB0\",divide:\"\\xF7\",eacute:\"\\xE9\",ecirc:\"\\xEA\",egrave:\"\\xE8\",eth:\"\\xF0\",euml:\"\\xEB\",frac12:\"\\xBD\",frac14:\"\\xBC\",frac34:\"\\xBE\",gt:\">\",iacute:\"\\xED\",icirc:\"\\xEE\",iexcl:\"\\xA1\",igrave:\"\\xEC\",iquest:\"\\xBF\",iuml:\"\\xEF\",laquo:\"\\xAB\",lt:\"<\",macr:\"\\xAF\",micro:\"\\xB5\",middot:\"\\xB7\",nbsp:\"\\xA0\",not:\"\\xAC\",ntilde:\"\\xF1\",oacute:\"\\xF3\",ocirc:\"\\xF4\",ograve:\"\\xF2\",ordf:\"\\xAA\",ordm:\"\\xBA\",oslash:\"\\xF8\",otilde:\"\\xF5\",ouml:\"\\xF6\",para:\"\\xB6\",plusmn:\"\\xB1\",pound:\"\\xA3\",quot:'\"',raquo:\"\\xBB\",reg:\"\\xAE\",sect:\"\\xA7\",shy:\"\\xAD\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",szlig:\"\\xDF\",thorn:\"\\xFE\",times:\"\\xD7\",uacute:\"\\xFA\",ucirc:\"\\xFB\",ugrave:\"\\xF9\",uml:\"\\xA8\",uuml:\"\\xFC\",yacute:\"\\xFD\",yen:\"\\xA5\",yuml:\"\\xFF\"}}}),Gl=S({\"node_modules/character-reference-invalid/index.json\"(e,r){r.exports={0:\"\\uFFFD\",128:\"\\u20AC\",130:\"\\u201A\",131:\"\\u0192\",132:\"\\u201E\",133:\"\\u2026\",134:\"\\u2020\",135:\"\\u2021\",136:\"\\u02C6\",137:\"\\u2030\",138:\"\\u0160\",139:\"\\u2039\",140:\"\\u0152\",142:\"\\u017D\",145:\"\\u2018\",146:\"\\u2019\",147:\"\\u201C\",148:\"\\u201D\",149:\"\\u2022\",150:\"\\u2013\",151:\"\\u2014\",152:\"\\u02DC\",153:\"\\u2122\",154:\"\\u0161\",155:\"\\u203A\",156:\"\\u0153\",158:\"\\u017E\",159:\"\\u0178\"}}}),ze=S({\"node_modules/is-decimal/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){var o=typeof t==\"string\"?t.charCodeAt(0):t;return o>=48&&o<=57}}}),Ul=S({\"node_modules/is-hexadecimal/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){var o=typeof t==\"string\"?t.charCodeAt(0):t;return o>=97&&o<=102||o>=65&&o<=70||o>=48&&o<=57}}}),Qe=S({\"node_modules/is-alphabetical/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){var o=typeof t==\"string\"?t.charCodeAt(0):t;return o>=97&&o<=122||o>=65&&o<=90}}}),Vl=S({\"node_modules/is-alphanumerical/index.js\"(e,r){\"use strict\";I();var u=Qe(),t=ze();r.exports=o;function o(n){return u(n)||t(n)}}}),$l=S({\"node_modules/character-entities/index.json\"(e,r){r.exports={AEli:\"\\xC6\",AElig:\"\\xC6\",AM:\"&\",AMP:\"&\",Aacut:\"\\xC1\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acir:\"\\xC2\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrav:\"\\xC0\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",Arin:\"\\xC5\",Aring:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",Atild:\"\\xC3\",Atilde:\"\\xC3\",Aum:\"\\xC4\",Auml:\"\\xC4\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",Bscr:\"\\u212C\",Bumpeq:\"\\u224E\",CHcy:\"\\u0427\",COP:\"\\xA9\",COPY:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",Cayleys:\"\\u212D\",Ccaron:\"\\u010C\",Ccedi:\"\\xC7\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",CenterDot:\"\\xB7\",Cfr:\"\\u212D\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",Colon:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",Copf:\"\\u2102\",Coproduct:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",DD:\"\\u2145\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",Diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",Downarrow:\"\\u21D3\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ET:\"\\xD0\",ETH:\"\\xD0\",Eacut:\"\\xC9\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecir:\"\\xCA\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrav:\"\\xC8\",Egrave:\"\\xC8\",Element:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",Equilibrium:\"\\u21CC\",Escr:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Eum:\"\\xCB\",Euml:\"\\xCB\",Exists:\"\\u2203\",ExponentialE:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",G:\">\",GT:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",Hopf:\"\\u210D\",HorizontalLine:\"\\u2500\",Hscr:\"\\u210B\",Hstrok:\"\\u0126\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacut:\"\\xCD\",Iacute:\"\\xCD\",Icir:\"\\xCE\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Igrav:\"\\xCC\",Igrave:\"\\xCC\",Im:\"\\u2111\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",Implies:\"\\u21D2\",Int:\"\\u222C\",Integral:\"\\u222B\",Intersection:\"\\u22C2\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Ium:\"\\xCF\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",L:\"<\",LT:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Larr:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",LeftArrow:\"\\u2190\",LeftArrowBar:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",LeftVectorBar:\"\\u2952\",Leftarrow:\"\\u21D0\",Leftrightarrow:\"\\u21D4\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",LongRightArrow:\"\\u27F6\",Longleftarrow:\"\\u27F8\",Longleftrightarrow:\"\\u27FA\",Longrightarrow:\"\\u27F9\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",Lscr:\"\\u2112\",Lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",Mopf:\"\\u{1D544}\",Mscr:\"\\u2133\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangle:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntild:\"\\xD1\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacut:\"\\xD3\",Oacute:\"\\xD3\",Ocir:\"\\xD4\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograv:\"\\xD2\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslas:\"\\xD8\",Oslash:\"\\xD8\",Otild:\"\\xD5\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Oum:\"\\xD6\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",Poincareplane:\"\\u210C\",Popf:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",Proportion:\"\\u2237\",Proportional:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUO:'\"',QUOT:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",RE:\"\\xAE\",REG:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",Rfr:\"\\u211C\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",RightArrow:\"\\u2192\",RightArrowBar:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",RightTee:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",RightVectorBar:\"\\u2953\",Rightarrow:\"\\u21D2\",Ropf:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",Rscr:\"\\u211B\",Rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",SuchThat:\"\\u220B\",Sum:\"\\u2211\",Sup:\"\\u22D1\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",Supset:\"\\u22D1\",THOR:\"\\xDE\",THORN:\"\\xDE\",TRADE:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacut:\"\\xDA\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucir:\"\\xDB\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrav:\"\\xD9\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrow:\"\\u2191\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",UpDownArrow:\"\\u2195\",UpEquilibrium:\"\\u296E\",UpTee:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",Uparrow:\"\\u21D1\",Updownarrow:\"\\u21D5\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",Upsi:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uum:\"\\xDC\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacut:\"\\xDD\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacut:\"\\xE1\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acir:\"\\xE2\",acirc:\"\\xE2\",acut:\"\\xB4\",acute:\"\\xB4\",acy:\"\\u0430\",aeli:\"\\xE6\",aelig:\"\\xE6\",af:\"\\u2061\",afr:\"\\u{1D51E}\",agrav:\"\\xE0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",am:\"&\",amp:\"&\",and:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsd:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",ap:\"\\u2248\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",approx:\"\\u2248\",approxeq:\"\\u224A\",arin:\"\\xE5\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",atild:\"\\xE3\",atilde:\"\\xE3\",aum:\"\\xE4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxh:\"\\u2500\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",bprime:\"\\u2035\",breve:\"\\u02D8\",brvba:\"\\xA6\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedi:\"\\xE7\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cedi:\"\\xB8\",cedil:\"\\xB8\",cemptyv:\"\\u29B2\",cen:\"\\xA2\",cent:\"\\xA2\",centerdot:\"\\xB7\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledR:\"\\xAE\",circledS:\"\\u24C8\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",conint:\"\\u222E\",copf:\"\\u{1D554}\",coprod:\"\\u2210\",cop:\"\\xA9\",copy:\"\\xA9\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curre:\"\\xA4\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dArr:\"\\u21D3\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",darr:\"\\u2193\",dash:\"\\u2010\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",dcaron:\"\\u010F\",dcy:\"\\u0434\",dd:\"\\u2146\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",ddotseq:\"\\u2A77\",de:\"\\xB0\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",diam:\"\\u22C4\",diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divid:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",dot:\"\\u02D9\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",downarrow:\"\\u2193\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eDDot:\"\\u2A77\",eDot:\"\\u2251\",eacut:\"\\xE9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\xEA\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",ee:\"\\u2147\",efDot:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrav:\"\\xE8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",equals:\"=\",equest:\"\\u225F\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",esdot:\"\\u2250\",esim:\"\\u2242\",eta:\"\\u03B7\",et:\"\\xF0\",eth:\"\\xF0\",eum:\"\\xEB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",fallingdotseq:\"\\u2252\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac1:\"\\xBC\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac3:\"\\xBE\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gammad:\"\\u03DD\",gap:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",ge:\"\\u2265\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",ggg:\"\\u22D9\",gimel:\"\\u2137\",gjcy:\"\\u0453\",gl:\"\\u2277\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",grave:\"`\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",g:\">\",gt:\">\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hArr:\"\\u21D4\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",hardcy:\"\\u044A\",harr:\"\\u2194\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",hbar:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hslash:\"\\u210F\",hstrok:\"\\u0127\",hybull:\"\\u2043\",hyphen:\"\\u2010\",iacut:\"\\xED\",iacute:\"\\xED\",ic:\"\\u2063\",icir:\"\\xEE\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexc:\"\\xA1\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",igrav:\"\\xEC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",image:\"\\u2111\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",in:\"\\u2208\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",int:\"\\u222B\",intcal:\"\\u22BA\",integers:\"\\u2124\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iques:\"\\xBF\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isin:\"\\u2208\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",itilde:\"\\u0129\",iukcy:\"\\u0456\",ium:\"\\xEF\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",lArr:\"\\u21D0\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lE:\"\\u2266\",lEg:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",lambda:\"\\u03BB\",lang:\"\\u27E8\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",laqu:\"\\xAB\",laquo:\"\\xAB\",larr:\"\\u2190\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leftarrow:\"\\u2190\",leftarrowtail:\"\\u21A2\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",leftthreetimes:\"\\u22CB\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",lessgtr:\"\\u2276\",lesssim:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",ll:\"\\u226A\",llarr:\"\\u21C7\",llcorner:\"\\u231E\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",longleftrightarrow:\"\\u27F7\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",lstrok:\"\\u0142\",l:\"<\",lt:\"<\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",mac:\"\\xAF\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",measuredangle:\"\\u2221\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micr:\"\\xB5\",micro:\"\\xB5\",mid:\"\\u2223\",midast:\"*\",midcir:\"\\u2AF0\",middo:\"\\xB7\",middot:\"\\xB7\",minus:\"\\u2212\",minusb:\"\\u229F\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",mstpos:\"\\u223E\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nGtv:\"\\u226B\\u0338\",nLeftarrow:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nLtv:\"\\u226A\\u0338\",nRightarrow:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nabla:\"\\u2207\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natur:\"\\u266E\",natural:\"\\u266E\",naturals:\"\\u2115\",nbs:\"\\xA0\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",ne:\"\\u2260\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nearr:\"\\u2197\",nearrow:\"\\u2197\",nedot:\"\\u2250\\u0338\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",nexist:\"\\u2204\",nexists:\"\\u2204\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",ngsim:\"\\u2275\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nhArr:\"\\u21CE\",nharr:\"\\u21AE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",njcy:\"\\u045A\",nlArr:\"\\u21CD\",nlE:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nldr:\"\\u2025\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nleftrightarrow:\"\\u21AE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nlsim:\"\\u2274\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nmid:\"\\u2224\",nopf:\"\\u{1D55F}\",no:\"\\xAC\",not:\"\\xAC\",notin:\"\\u2209\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",npar:\"\\u2226\",nparallel:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",npre:\"\\u2AAF\\u0338\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",nrArr:\"\\u21CF\",nrarr:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",ntild:\"\\xF1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",oS:\"\\u24C8\",oacut:\"\\xF3\",oacute:\"\\xF3\",oast:\"\\u229B\",ocir:\"\\xF4\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odash:\"\\u229D\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograv:\"\\xF2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",oplus:\"\\u2295\",or:\"\\u2228\",orarr:\"\\u21BB\",ord:\"\\xBA\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oscr:\"\\u2134\",oslas:\"\\xF8\",oslash:\"\\xF8\",osol:\"\\u2298\",otild:\"\\xF5\",otilde:\"\\xF5\",otimes:\"\\u2297\",otimesas:\"\\u2A36\",oum:\"\\xF6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",par:\"\\xB6\",para:\"\\xB6\",parallel:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plus:\"+\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plusm:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",poun:\"\\xA3\",pound:\"\\xA3\",pr:\"\\u227A\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",prcue:\"\\u227C\",pre:\"\\u2AAF\",prec:\"\\u227A\",precapprox:\"\\u2AB7\",preccurlyeq:\"\\u227C\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",precsim:\"\\u227E\",prime:\"\\u2032\",primes:\"\\u2119\",prnE:\"\\u2AB5\",prnap:\"\\u2AB9\",prnsim:\"\\u22E8\",prod:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quo:'\"',quot:'\"',rAarr:\"\\u21DB\",rArr:\"\\u21D2\",rAtail:\"\\u291C\",rBarr:\"\\u290F\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raqu:\"\\xBB\",raquo:\"\\xBB\",rarr:\"\\u2192\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",rect:\"\\u25AD\",re:\"\\xAE\",reg:\"\\xAE\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",rightarrow:\"\\u2192\",rightarrowtail:\"\\u21A3\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",rightthreetimes:\"\\u22CC\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",sbquo:\"\\u201A\",sc:\"\\u227B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",scaron:\"\\u0161\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",scnap:\"\\u2ABA\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdotb:\"\\u22A1\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",searhk:\"\\u2925\",searr:\"\\u2198\",searrow:\"\\u2198\",sec:\"\\xA7\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",sh:\"\\xAD\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",squ:\"\\u25A1\",square:\"\\u25A1\",squarf:\"\\u25AA\",squf:\"\\u25AA\",srarr:\"\\u2192\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",subE:\"\\u2AC5\",subdot:\"\\u2ABD\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succ:\"\\u227B\",succapprox:\"\\u2AB8\",succcurlyeq:\"\\u227D\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",sum:\"\\u2211\",sung:\"\\u266A\",sup:\"\\u2283\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supE:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supe:\"\\u2287\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szli:\"\\xDF\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",thor:\"\\xFE\",thorn:\"\\xFE\",tilde:\"\\u02DC\",time:\"\\xD7\",times:\"\\xD7\",timesb:\"\\u22A0\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",top:\"\\u22A4\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",uArr:\"\\u21D1\",uHar:\"\\u2963\",uacut:\"\\xFA\",uacute:\"\\xFA\",uarr:\"\\u2191\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucir:\"\\xFB\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udarr:\"\\u21C5\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrav:\"\\xF9\",ugrave:\"\\xF9\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",um:\"\\xA8\",uml:\"\\xA8\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",uparrow:\"\\u2191\",updownarrow:\"\\u2195\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",upsi:\"\\u03C5\",upsih:\"\\u03D2\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",uum:\"\\xFC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vArr:\"\\u21D5\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vDash:\"\\u22A8\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vee:\"\\u2228\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",vert:\"|\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",xfr:\"\\u{1D535}\",xhArr:\"\\u27FA\",xharr:\"\\u27F7\",xi:\"\\u03BE\",xlArr:\"\\u27F8\",xlarr:\"\\u27F5\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrArr:\"\\u27F9\",xrarr:\"\\u27F6\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",yacut:\"\\xFD\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",ye:\"\\xA5\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yum:\"\\xFF\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"}}}),Hl=S({\"node_modules/parse-entities/decode-entity.js\"(e,r){\"use strict\";I();var u=$l();r.exports=o;var t={}.hasOwnProperty;function o(n){return t.call(u,n)?u[n]:!1}}}),xr=S({\"node_modules/parse-entities/index.js\"(e,r){\"use strict\";I();var u=zl(),t=Gl(),o=ze(),n=Ul(),s=Vl(),c=Hl();r.exports=J;var i={}.hasOwnProperty,D=String.fromCharCode,a=Function.prototype,l={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},p=9,d=10,g=12,F=32,E=38,x=59,f=60,b=61,v=35,h=88,m=120,C=65533,B=\"named\",q=\"hexadecimal\",L=\"decimal\",w={};w[q]=16,w[L]=10;var O={};O[B]=s,O[L]=o,O[q]=n;var T=1,P=2,A=3,j=4,$=5,U=6,X=7,R={};R[T]=\"Named character references must be terminated by a semicolon\",R[P]=\"Numeric character references must be terminated by a semicolon\",R[A]=\"Named character references cannot be empty\",R[j]=\"Numeric character references cannot be empty\",R[$]=\"Named character references must be known\",R[U]=\"Numeric character references cannot be disallowed\",R[X]=\"Numeric character references cannot be outside the permissible Unicode range\";function J(k,y){var _={},N,V;y||(y={});for(V in l)N=y[V],_[V]=N==null?l[V]:N;return(_.position.indent||_.position.start)&&(_.indent=_.position.indent||[],_.position=_.position.start),z(k,_)}function z(k,y){var _=y.additional,N=y.nonTerminated,V=y.text,W=y.reference,K=y.warning,ee=y.textContext,Y=y.referenceContext,te=y.warningContext,De=y.position,le=y.indent||[],ne=k.length,Z=0,Q=-1,fe=De.column||1,be=De.line||1,pe=\"\",he=[],oe,de,ie,re,ye,se,ae,Ce,er,br,ke,Ue,qe,Fe,Eu,Ve,rr,ge,ce;for(typeof _==\"string\"&&(_=_.charCodeAt(0)),Ve=$e(),Ce=K?sa:a,Z--,ne++;++Z65535&&(se-=65536,br+=D(se>>>10|55296),se=56320|se&1023),se=br+D(se))):Fe!==B&&Ce(j,ge)),se?(Cu(),Ve=$e(),Z=ce-1,fe+=ce-qe+1,he.push(se),rr=$e(),rr.offset++,W&&W.call(Y,se,{start:Ve,end:rr},k.slice(qe-1,ce)),Ve=rr):(re=k.slice(qe-1,ce),pe+=re,fe+=re.length,Z=ce-1)}else ye===10&&(be++,Q++,fe=0),ye===ye?(pe+=D(ye),fe++):Cu();return he.join(\"\");function $e(){return{line:be,column:fe,offset:Z+(De.offset||0)}}function sa(gu,Fu){var yr=$e();yr.column+=Fu,yr.offset+=Fu,K.call(te,R[gu],yr,gu)}function Cu(){pe&&(he.push(pe),V&&V.call(ee,pe,{start:Ve,end:$e()}),pe=\"\")}}function M(k){return k>=55296&&k<=57343||k>1114111}function G(k){return k>=1&&k<=8||k===11||k>=13&&k<=31||k>=127&&k<=159||k>=64976&&k<=65007||(k&65535)===65535||(k&65535)===65534}}}),Xl=S({\"node_modules/remark-parse/lib/decode.js\"(e,r){\"use strict\";I();var u=Me(),t=xr();r.exports=o;function o(n){return c.raw=i,c;function s(a){for(var l=n.offset,p=a.line,d=[];++p&&p in l;)d.push((l[p]||0)+1);return{start:a,indent:d}}function c(a,l,p){t(a,{position:s(l),warning:D,text:p,reference:p,textContext:n,referenceContext:n})}function i(a,l,p){return t(a,u(p,{position:s(l),warning:D}))}function D(a,l,p){p!==3&&n.file.message(a,l)}}}}),Wl=S({\"node_modules/remark-parse/lib/tokenizer.js\"(e,r){\"use strict\";I(),r.exports=u;function u(s){return c;function c(i,D){var a=this,l=a.offset,p=[],d=a[s+\"Methods\"],g=a[s+\"Tokenizers\"],F=D.line,E=D.column,x,f,b,v,h,m;if(!i)return p;for(P.now=q,P.file=a.file,C(\"\");i;){for(x=-1,f=d.length,h=!1;++x\"],t=u.concat([\"~\",\"|\"]),o=t.concat([`\n`,'\"',\"$\",\"%\",\"&\",\"'\",\",\",\"/\",\":\",\";\",\"<\",\"=\",\"?\",\"@\",\"^\"]);n.default=u,n.gfm=t,n.commonmark=o;function n(s){var c=s||{};return c.commonmark?o:c.gfm?t:u}}}),Yl=S({\"node_modules/remark-parse/lib/block-elements.js\"(e,r){\"use strict\";I(),r.exports=[\"address\",\"article\",\"aside\",\"base\",\"basefont\",\"blockquote\",\"body\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"iframe\",\"legend\",\"li\",\"link\",\"main\",\"menu\",\"menuitem\",\"meta\",\"nav\",\"noframes\",\"ol\",\"optgroup\",\"option\",\"p\",\"param\",\"pre\",\"section\",\"source\",\"title\",\"summary\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\"]}}),Pi=S({\"node_modules/remark-parse/lib/defaults.js\"(e,r){\"use strict\";I(),r.exports={position:!0,gfm:!0,commonmark:!1,pedantic:!1,blocks:Yl()}}}),Jl=S({\"node_modules/remark-parse/lib/set-options.js\"(e,r){\"use strict\";I();var u=Me(),t=Kl(),o=Pi();r.exports=n;function n(s){var c=this,i=c.options,D,a;if(s==null)s={};else if(typeof s==\"object\")s=u(s);else throw new Error(\"Invalid value `\"+s+\"` for setting `options`\");for(D in o){if(a=s[D],a==null&&(a=i[D]),D!==\"blocks\"&&typeof a!=\"boolean\"||D===\"blocks\"&&typeof a!=\"object\")throw new Error(\"Invalid value `\"+a+\"` for setting `options.\"+D+\"`\");s[D]=a}return c.options=s,c.escape=t(s),c}}}),Zl=S({\"node_modules/unist-util-is/convert.js\"(e,r){\"use strict\";I(),r.exports=u;function u(c){if(c==null)return s;if(typeof c==\"string\")return n(c);if(typeof c==\"object\")return\"length\"in c?o(c):t(c);if(typeof c==\"function\")return c;throw new Error(\"Expected function, string, or object as test\")}function t(c){return i;function i(D){var a;for(a in c)if(D[a]!==c[a])return!1;return!0}}function o(c){for(var i=[],D=-1;++D\":\"\"))+\")\"),h;function h(){var m=f.concat(E),C=[],B,q;if((!a||g(E,x,f[f.length-1]||null))&&(C=i(l(E,f)),C[0]===s))return C;if(E.children&&C[0]!==n)for(q=(p?E.children.length:-1)+d;q>-1&&q\"u\")t=n,u=\"\";else if(u.length>=c)return u.substr(0,c);for(;c>u.length&&s>1;)s&1&&(u+=n),s>>=1,n+=n;return u+=n,u=u.substr(0,c),u}}}),Mi=S({\"node_modules/trim-trailing-lines/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){return String(t).replace(/\\n+$/,\"\")}}}),iD=S({\"node_modules/remark-parse/lib/tokenize/code-indented.js\"(e,r){\"use strict\";I();var u=du(),t=Mi();r.exports=D;var o=`\n`,n=\"\t\",s=\" \",c=4,i=u(s,c);function D(a,l,p){for(var d=-1,g=l.length,F=\"\",E=\"\",x=\"\",f=\"\",b,v,h;++d=i)){for(B=\"\";E\";function i(D,a,l){for(var p=this,d=p.offset,g=p.blockTokenizers,F=p.interruptBlockquote,E=D.now(),x=E.line,f=a.length,b=[],v=[],h=[],m,C=0,B,q,L,w,O,T,P,A;Cs)&&!(!v||!p&&D.charAt(g+1)===n)){for(d=D.length+1,b=\"\";++g=i&&(!E||E===t)?(F+=b,p?!0:a(F)({type:\"thematicBreak\"})):void 0}}}),zi=S({\"node_modules/remark-parse/lib/util/get-indentation.js\"(e,r){\"use strict\";I(),r.exports=s;var u=\"\t\",t=\" \",o=1,n=4;function s(c){for(var i=0,D=0,a=c.charAt(i),l={},p,d=0;a===u||a===t;){for(p=a===u?n:o,D+=p,p>1&&(D=Math.floor(D/p)*p);d0&&E.indent=Q.indent&&(ie=!0),y=T.charAt(R),K=null,!ie){if(y===i||y===a||y===l)K=y,R++,M++;else{for(G=\"\";R=Q.indent||M>f),W=!1,R=V;if(Y=T.slice(V,N),ee=V===R?Y:T.slice(R,N),(K===i||K===D||K===l)&&U.thematicBreak.call(A,O,Y,!0))break;if(te=De,De=!W&&!u(ee).length,ie&&Q)Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[];else if(W)Z.length!==0&&(pe=!0,Q.value.push(\"\"),Q.trail=Z.concat()),Q={value:[Y],indent:M,trail:[]},le.push(Q),ne=ne.concat(Z,Y),Z=[];else if(De){if(te&&!j)break;Z.push(Y)}else{if(te||c(X,U,A,[O,Y,!0]))break;Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[]}R=N+1}for(he=O(ne.join(g)).reset({type:\"list\",ordered:k,start:z,spread:pe,children:[]}),fe=A.enterList(),be=A.enterBlock(),R=-1,J=le.length;++R=c){x--;break}f+=h}for(b=\"\",v=\"\";++x`\\\\u0000-\\\\u0020]+\",t=\"'[^']*'\",o='\"[^\"]*\"',n=\"(?:\"+u+\"|\"+t+\"|\"+o+\")\",s=\"(?:\\\\s+\"+r+\"(?:\\\\s*=\\\\s*\"+n+\")?)\",c=\"<[A-Za-z][A-Za-z0-9\\\\-]*\"+s+\"*\\\\s*\\\\/?>\",i=\"<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>\",D=\"|\",a=\"<[?].*?[?]>\",l=\"]*>\",p=\"\";e.openCloseTag=new RegExp(\"^(?:\"+c+\"|\"+i+\")\"),e.tag=new RegExp(\"^(?:\"+c+\"|\"+i+\"|\"+D+\"|\"+a+\"|\"+l+\"|\"+p+\")\")}}),pD=S({\"node_modules/remark-parse/lib/tokenize/html-block.js\"(e,r){\"use strict\";I();var u=Gi().openCloseTag;r.exports=b;var t=\"\t\",o=\" \",n=`\n`,s=\"<\",c=/^<(script|pre|style)(?=(\\s|>|$))/i,i=/<\\/(script|pre|style)>/i,D=/^/,l=/^<\\?/,p=/\\?>/,d=/^/,F=/^/,x=/^$/,f=new RegExp(u.source+\"\\\\s*$\");function b(v,h,m){for(var C=this,B=C.options.blocks.join(\"|\"),q=new RegExp(\"^|$))\",\"i\"),L=h.length,w=0,O,T,P,A,j,$,U,X=[[c,i,!0],[D,a,!0],[l,p,!0],[d,g,!0],[F,E,!0],[q,x,!0],[f,x,!1]];w\";function x(v,h,m){for(var C=this,B=C.options.commonmark,q=0,L=h.length,w=\"\",O,T,P,A,j,$,U,X;qM){if(X1&&(O?(C+=w.slice(0,-1),w=w.charAt(w.length-1)):(C+=w,w=\"\")),$=E.now(),E(C)({type:\"tableCell\",children:b.tokenizeInline(A,$)},B)),E(w+O),w=\"\",A=\"\"):(w&&(A+=w,w=\"\"),A+=O,O===i&&v!==q-2&&(A+=R.charAt(v+1),v++)),j=!1,v++}U||E(o+h)}return z}}}}}),mD=S({\"node_modules/remark-parse/lib/tokenize/paragraph.js\"(e,r){\"use strict\";I();var u=Ge(),t=Mi(),o=hu();r.exports=D;var n=\"\t\",s=`\n`,c=\" \",i=4;function D(a,l,p){for(var d=this,g=d.options,F=g.commonmark,E=d.blockTokenizers,x=d.interruptParagraph,f=l.indexOf(s),b=l.length,v,h,m,C,B;f=i&&m!==s){f=l.indexOf(s,f+1);continue}}if(h=l.slice(f+1),o(x,E,d,[a,h,!0]))break;if(v=f,f=l.indexOf(s,f+1),f!==-1&&u(l.slice(v,f))===\"\"){f=v;break}}return h=l.slice(0,f),p?!0:(B=a.now(),h=t(h),a(h)({type:\"paragraph\",children:d.tokenizeInline(h,B)}))}}}),ED=S({\"node_modules/remark-parse/lib/locate/escape.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t,o){return t.indexOf(\"\\\\\",o)}}}),CD=S({\"node_modules/remark-parse/lib/tokenize/escape.js\"(e,r){\"use strict\";I();var u=ED();r.exports=n,n.locator=u;var t=`\n`,o=\"\\\\\";function n(s,c,i){var D=this,a,l;if(c.charAt(0)===o&&(a=c.charAt(1),D.escape.indexOf(a)!==-1))return i?!0:(a===t?l={type:\"break\"}:l={type:\"text\",value:a},s(o+a)(l))}}}),Vi=S({\"node_modules/remark-parse/lib/locate/tag.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t,o){return t.indexOf(\"<\",o)}}}),gD=S({\"node_modules/remark-parse/lib/tokenize/auto-link.js\"(e,r){\"use strict\";I();var u=xe(),t=xr(),o=Vi();r.exports=l,l.locator=o,l.notInLink=!0;var n=\"<\",s=\">\",c=\"@\",i=\"/\",D=\"mailto:\",a=D.length;function l(p,d,g){var F=this,E=\"\",x=d.length,f=0,b=\"\",v=!1,h=\"\",m,C,B,q,L;if(d.charAt(0)===n){for(f++,E=n;fk;)R=J+z.lastIndexOf(m),z=q.slice(J,R),y--;if(q.charCodeAt(R-1)===E&&(R--,n(q.charCodeAt(R-1)))){for(G=R-2;n(q.charCodeAt(G));)G--;q.charCodeAt(G)===D&&(R=G)}return _=q.slice(0,R),V=t(_,{nonTerminated:!1}),j&&(V=\"http://\"+V),W=w.enterLink(),w.inlineTokenizers={text:T.text},N=w.tokenizeInline(_,B.now()),w.inlineTokenizers=T,W(),B(_)({type:\"link\",title:null,url:V,children:N})}}}}}),bD=S({\"node_modules/remark-parse/lib/locate/email.js\"(e,r){\"use strict\";I();var u=ze(),t=Qe(),o=43,n=45,s=46,c=95;r.exports=i;function i(a,l){var p=this,d,g;if(!this.options.gfm||(d=a.indexOf(\"@\",l),d===-1))return-1;if(g=d,g===l||!D(a.charCodeAt(g-1)))return i.call(p,a,d+1);for(;g>l&&D(a.charCodeAt(g-1));)g--;return g}function D(a){return u(a)||t(a)||a===o||a===n||a===s||a===c}}}),yD=S({\"node_modules/remark-parse/lib/tokenize/email.js\"(e,r){\"use strict\";I();var u=xr(),t=ze(),o=Qe(),n=bD();r.exports=l,l.locator=n,l.notInLink=!0;var s=43,c=45,i=46,D=64,a=95;function l(p,d,g){var F=this,E=F.options.gfm,x=F.inlineTokenizers,f=0,b=d.length,v=-1,h,m,C,B;if(!!E){for(h=d.charCodeAt(f);t(h)||o(h)||h===s||h===c||h===i||h===a;)h=d.charCodeAt(++f);if(f!==0&&h===D){for(f++;f/i;function l(p,d,g){var F=this,E=d.length,x,f;if(!(d.charAt(0)!==n||E<3)&&(x=d.charAt(1),!(!u(x)&&x!==s&&x!==c&&x!==i)&&(f=d.match(o),!!f)))return g?!0:(f=f[0],!F.inLink&&D.test(f)?F.inLink=!0:F.inLink&&a.test(f)&&(F.inLink=!1),p(f)({type:\"html\",value:f}))}}}),$i=S({\"node_modules/remark-parse/lib/locate/link.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t,o){var n=t.indexOf(\"[\",o),s=t.indexOf(\"![\",o);return s===-1||n\",p=\"[\",d=\"\\\\\",g=\"]\",F=\"`\";function E(x,f,b){var v=this,h=\"\",m=0,C=f.charAt(0),B=v.options.pedantic,q=v.options.commonmark,L=v.options.gfm,w,O,T,P,A,j,$,U,X,R,J,z,M,G,k,y,_,N;if(C===n&&(U=!0,h=C,C=f.charAt(++m)),C===p&&!(!U&&v.inLink)){for(h+=C,G=\"\",m++,J=f.length,y=x.now(),M=0,y.column+=m,y.offset+=m;m=T&&(T=0):T=O}else if(C===d)m++,j+=f.charAt(m);else if((!T||L)&&C===p)M++;else if((!T||L)&&C===g)if(M)M--;else{if(f.charAt(m+1)!==i)return;j+=i,w=!0,m++;break}G+=j,j=\"\",m++}if(!!w){for(X=G,h+=G+j,m++;m2&&(F===o||F===t)&&(E===o||E===t)){for(l++,a--;lo&&t.charAt(n-1)===\" \";)n--;return n}}}),PD=S({\"node_modules/remark-parse/lib/tokenize/break.js\"(e,r){\"use strict\";I();var u=jD();r.exports=s,s.locator=u;var t=\" \",o=`\n`,n=2;function s(c,i,D){for(var a=i.length,l=-1,p=\"\",d;++l\"u\"||u.call(l,g)},i=function(l,p){o&&p.name===\"__proto__\"?o(l,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):l[p.name]=p.newValue},D=function(l,p){if(p===\"__proto__\")if(u.call(l,p)){if(n)return n(l,p).value}else return;return l[p]};r.exports=function a(){var l,p,d,g,F,E,x=arguments[0],f=1,b=arguments.length,v=!1;for(typeof x==\"boolean\"&&(v=x,x=arguments[1]||{},f=2),(x==null||typeof x!=\"object\"&&typeof x!=\"function\")&&(x={});f{if(Object.prototype.toString.call(u)!==\"[object Object]\")return!1;let t=Object.getPrototypeOf(u);return t===null||t===Object.prototype}}}),HD=S({\"node_modules/trough/wrap.js\"(e,r){\"use strict\";I();var u=[].slice;r.exports=t;function t(o,n){var s;return c;function c(){var a=u.call(arguments,0),l=o.length>a.length,p;l&&a.push(i);try{p=o.apply(null,a)}catch(d){if(l&&s)throw d;return i(d)}l||(p&&typeof p.then==\"function\"?p.then(D,i):p instanceof Error?i(p):D(p))}function i(){s||(s=!0,n.apply(null,arguments))}function D(a){i(null,a)}}}}),XD=S({\"node_modules/trough/index.js\"(e,r){\"use strict\";I();var u=HD();r.exports=o,o.wrap=u;var t=[].slice;function o(){var n=[],s={};return s.run=c,s.use=i,s;function c(){var D=-1,a=t.call(arguments,0,-1),l=arguments[arguments.length-1];if(typeof l!=\"function\")throw new Error(\"Expected function as last argument, not \"+l);p.apply(null,[null].concat(a));function p(d){var g=n[++D],F=t.call(arguments,0),E=F.slice(1),x=a.length,f=-1;if(d){l(d);return}for(;++fi.length){for(;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else l<0&&(g=!0,l=p+1);return l<0?\"\":i.slice(a,l)}if(D===i)return\"\";for(d=-1,F=D.length-1;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else d<0&&(g=!0,d=p+1),F>-1&&(i.charCodeAt(p)===D.charCodeAt(F--)?F<0&&(l=p):(F=-1,l=d));return a===l?l=d:l<0&&(l=i.length),i.slice(a,l)}function u(i){var D,a,l;if(c(i),!i.length)return\".\";for(D=-1,l=i.length;--l;)if(i.charCodeAt(l)===47){if(a){D=l;break}}else a||(a=!0);return D<0?i.charCodeAt(0)===47?\"/\":\".\":D===1&&i.charCodeAt(0)===47?\"//\":i.slice(0,D)}function t(i){var D=-1,a=0,l=-1,p=0,d,g,F;for(c(i),F=i.length;F--;){if(g=i.charCodeAt(F),g===47){if(d){a=F+1;break}continue}l<0&&(d=!0,l=F+1),g===46?D<0?D=F:p!==1&&(p=1):D>-1&&(p=-1)}return D<0||l<0||p===0||p===1&&D===l-1&&D===a+1?\"\":i.slice(D,l)}function o(){for(var i=-1,D;++i2){if(E=a.lastIndexOf(\"/\"),E!==a.length-1){E<0?(a=\"\",l=0):(a=a.slice(0,E),l=a.length-1-a.lastIndexOf(\"/\")),p=g,d=0;continue}}else if(a.length){a=\"\",l=0,p=g,d=0;continue}}D&&(a=a.length?a+\"/..\":\"..\",l=2)}else a.length?a+=\"/\"+i.slice(p+1,g):a=i.slice(p+1,g),l=g-p-1;p=g,d=0}else F===46&&d>-1?d++:d=-1}return a}function c(i){if(typeof i!=\"string\")throw new TypeError(\"Path must be a string. Received \"+JSON.stringify(i))}}}),JD=S({\"node_modules/vfile/lib/minproc.browser.js\"(e){\"use strict\";I(),e.cwd=r;function r(){return\"/\"}}}),ZD=S({\"node_modules/vfile/lib/core.js\"(e,r){\"use strict\";I();var u=YD(),t=JD(),o=Hi();r.exports=c;var n={}.hasOwnProperty,s=[\"history\",\"path\",\"basename\",\"stem\",\"extname\",\"dirname\"];c.prototype.toString=f,Object.defineProperty(c.prototype,\"path\",{get:i,set:D}),Object.defineProperty(c.prototype,\"dirname\",{get:a,set:l}),Object.defineProperty(c.prototype,\"basename\",{get:p,set:d}),Object.defineProperty(c.prototype,\"extname\",{get:g,set:F}),Object.defineProperty(c.prototype,\"stem\",{get:E,set:x});function c(m){var C,B;if(!m)m={};else if(typeof m==\"string\"||o(m))m={contents:m};else if(\"message\"in m&&\"messages\"in m)return m;if(!(this instanceof c))return new c(m);for(this.data={},this.messages=[],this.history=[],this.cwd=t.cwd(),B=-1;++B-1)throw new Error(\"`extname` cannot contain multiple dots\")}this.path=u.join(this.dirname,this.stem+(m||\"\"))}function E(){return typeof this.path==\"string\"?u.basename(this.path,this.extname):void 0}function x(m){v(m,\"stem\"),b(m,\"stem\"),this.path=u.join(this.dirname||\"\",m+(this.extname||\"\"))}function f(m){return(this.contents||\"\").toString(m)}function b(m,C){if(m&&m.indexOf(u.sep)>-1)throw new Error(\"`\"+C+\"` cannot be a path: did not expect `\"+u.sep+\"`\")}function v(m,C){if(!m)throw new Error(\"`\"+C+\"` cannot be empty\")}function h(m,C){if(!m)throw new Error(\"Setting `\"+C+\"` requires `path` to be set too\")}}}),QD=S({\"node_modules/vfile/lib/index.js\"(e,r){\"use strict\";I();var u=KD(),t=ZD();r.exports=t,t.prototype.message=o,t.prototype.info=s,t.prototype.fail=n;function o(c,i,D){var a=new u(c,i,D);return this.path&&(a.name=this.path+\":\"+a.name,a.file=this.path),a.fatal=!1,this.messages.push(a),a}function n(){var c=this.message.apply(this,arguments);throw c.fatal=!0,c}function s(){var c=this.message.apply(this,arguments);return c.fatal=null,c}}}),e2=S({\"node_modules/vfile/index.js\"(e,r){\"use strict\";I(),r.exports=QD()}}),r2=S({\"node_modules/unified/index.js\"(e,r){\"use strict\";I();var u=UD(),t=Hi(),o=VD(),n=$D(),s=XD(),c=e2();r.exports=g().freeze();var i=[].slice,D={}.hasOwnProperty,a=s().use(l).use(p).use(d);function l(m,C){C.tree=m.parse(C.file)}function p(m,C,B){m.run(C.tree,C.file,q);function q(L,w,O){L?B(L):(C.tree=w,C.file=O,B())}}function d(m,C){var B=m.stringify(C.tree,C.file);B==null||(typeof B==\"string\"||t(B)?C.file.contents=B:C.file.result=B)}function g(){var m=[],C=s(),B={},q=-1,L;return w.data=T,w.freeze=O,w.attachers=m,w.use=P,w.parse=j,w.stringify=X,w.run=$,w.runSync=U,w.process=R,w.processSync=J,w;function w(){for(var z=g(),M=-1;++Mc)&&(!B||T===n)){A=L-1,L++,B&&L++,j=L;break}}else O===i&&(L++,T=h.charCodeAt(L+1));L++}if(j!==void 0)return m?!0:($=h.slice(P,A+1),v(h.slice(0,j))({type:\"inlineMath\",value:$,data:{hName:\"span\",hProperties:{className:D.concat(B&&F.inlineMathDouble?[a]:[])},hChildren:[{type:\"text\",value:$}]}}))}}}}function d(g){let F=g.prototype;F.visitors.inlineMath=E;function E(x){let f=\"$\";return(x.data&&x.data.hProperties&&x.data.hProperties.className||[]).includes(a)&&(f=\"$$\"),f+x.value+f}}}}),t2=S({\"node_modules/remark-math/block.js\"(e,r){I();var u=Xi();r.exports=a;var t=10,o=32,n=36,s=`\n`,c=\"$\",i=2,D=[\"math\",\"math-display\"];function a(){let d=this.Parser,g=this.Compiler;u.isRemarkParser(d)&&l(d),u.isRemarkCompiler(g)&&p(g)}function l(d){let g=d.prototype,F=g.blockMethods,E=g.interruptParagraph,x=g.interruptList,f=g.interruptBlockquote;g.blockTokenizers.math=b,F.splice(F.indexOf(\"fencedCode\")+1,0,\"math\"),E.splice(E.indexOf(\"fencedCode\")+1,0,[\"math\"]),x.splice(x.indexOf(\"fencedCode\")+1,0,[\"math\"]),f.splice(f.indexOf(\"fencedCode\")+1,0,[\"math\"]);function b(v,h,m){var C=h.length,B=0;let q,L,w,O,T,P,A,j,$,U,X;for(;BU&&h.charCodeAt(O-1)===o;)O--;for(;O>U&&h.charCodeAt(O-1)===n;)$++,O--;for(P<=$&&h.indexOf(c,U)===O&&(j=!0,X=O);U<=X&&U-BU&&h.charCodeAt(X-1)===o;)X--;if((!j||U!==X)&&L.push(h.slice(U,X)),j)break;B=w+1,w=h.indexOf(s,B+1),w=w===-1?C:w}return L=L.join(`\n`),v(h.slice(0,w))({type:\"math\",value:L,data:{hName:\"div\",hProperties:{className:D.concat()},hChildren:[{type:\"text\",value:L}]}})}}}}function p(d){let g=d.prototype;g.visitors.math=F;function F(E){return`$$\n`+E.value+`\n$$`}}}}),n2=S({\"node_modules/remark-math/index.js\"(e,r){I();var u=u2(),t=t2();r.exports=o;function o(n){var s=n||{};t.call(this,s),u.call(this,s)}}}),i2=S({\"node_modules/remark-footnotes/index.js\"(e,r){\"use strict\";I(),r.exports=g;var u=9,t=10,o=32,n=33,s=58,c=91,i=92,D=93,a=94,l=96,p=4,d=1024;function g(h){var m=this.Parser,C=this.Compiler;F(m)&&x(m,h),E(C)&&f(C)}function F(h){return Boolean(h&&h.prototype&&h.prototype.blockTokenizers)}function E(h){return Boolean(h&&h.prototype&&h.prototype.visitors)}function x(h,m){for(var C=m||{},B=h.prototype,q=B.blockTokenizers,L=B.inlineTokenizers,w=B.blockMethods,O=B.inlineMethods,T=q.definition,P=L.reference,A=[],j=-1,$=w.length,U;++j<$;)U=w[j],!(U===\"newline\"||U===\"indentedCode\"||U===\"paragraph\"||U===\"footnoteDefinition\")&&A.push([U]);A.push([\"footnoteDefinition\"]),C.inlineNotes&&(b(O,\"reference\",\"inlineNote\"),L.inlineNote=J),b(w,\"definition\",\"footnoteDefinition\"),b(O,\"reference\",\"footnoteCall\"),q.definition=M,q.footnoteDefinition=X,L.footnoteCall=R,L.reference=z,B.interruptFootnoteDefinition=A,z.locator=P.locator,R.locator=G,J.locator=k;function X(y,_,N){for(var V=this,W=V.interruptFootnoteDefinition,K=V.offset,ee=_.length+1,Y=0,te=[],De,le,ne,Z,Q,fe,be,pe,he,oe,de,ie,re;Yp&&(oe=void 0,de=Y);else{if(oe0&&(re=ie[ee-1],re.contentStart===re.contentEnd);)ee--;for(fe=y(_.slice(0,re.contentEnd));++Y-{3}|\\\\+{3})(?[^\\\\n]*)\\\\n(?:|(?.*?)\\\\n)(?\\\\k|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function t(o){let n=o.match(u);if(!n)return{content:o};let{startDelimiter:s,language:c,value:i=\"\",endDelimiter:D}=n.groups,a=c.trim()||\"yaml\";if(s===\"+++\"&&(a=\"toml\"),a!==\"yaml\"&&s!==D)return{content:o};let[l]=n;return{frontMatter:{type:\"front-matter\",lang:a,value:i,startDelimiter:s,endDelimiter:D,raw:l.replace(/\\n$/,\"\")},content:l.replace(/[^\\n]/g,\" \")+o.slice(l.length)}}r.exports=t}}),a2=S({\"src/language-markdown/pragma.js\"(e,r){\"use strict\";I();var u=Wi(),t=[\"format\",\"prettier\"];function o(n){let s=\"@(\".concat(t.join(\"|\"),\")\"),c=new RegExp([\"\"),\"{\\\\s*\\\\/\\\\*\\\\s*\".concat(s,\"\\\\s*\\\\*\\\\/\\\\s*}\"),``)].join(\"|\"),\"m\"),i=n.match(c);return(i==null?void 0:i.index)===0}r.exports={startWithPragma:o,hasPragma:n=>o(u(n).content.trimStart()),insertPragma:n=>{let s=u(n),c=\"\");return s.frontMatter?\"\".concat(s.frontMatter.raw,`\n\n`).concat(c,`\n\n`).concat(s.content):\"\".concat(c,`\n\n`).concat(s.content)}}}}),Ki=S({\"src/language-markdown/loc.js\"(e,r){\"use strict\";I();function u(o){return o.position.start.offset}function t(o){return o.position.end.offset}r.exports={locStart:u,locEnd:t}}}),Yi=S({\"src/language-markdown/mdx.js\"(e,r){\"use strict\";I();var u=/^import\\s/,t=/^export\\s/,o=\"[a-z][a-z0-9]*(\\\\.[a-z][a-z0-9]*)*|\",n=/|/,s=/^{\\s*\\/\\*(.*)\\*\\/\\s*}/,c=`\n\n`,i=d=>u.test(d),D=d=>t.test(d),a=(d,g)=>{let F=g.indexOf(c),E=g.slice(0,F);if(D(E)||i(E))return d(E)({type:D(E)?\"export\":\"import\",value:E})},l=(d,g)=>{let F=s.exec(g);if(F)return d(F[0])({type:\"esComment\",value:F[1].trim()})};a.locator=d=>D(d)||i(d)?-1:1,l.locator=(d,g)=>d.indexOf(\"{\",g);function p(){let{Parser:d}=this,{blockTokenizers:g,blockMethods:F,inlineTokenizers:E,inlineMethods:x}=d.prototype;g.esSyntax=a,E.esComment=l,F.splice(F.indexOf(\"paragraph\"),0,\"esSyntax\"),x.splice(x.indexOf(\"text\"),0,\"esComment\")}r.exports={esSyntax:p,BLOCKS_REGEX:o,COMMENT_REGEX:n}}}),Ji={};Li(Ji,{default:()=>o2});function o2(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var s2=Pe({\"node_modules/escape-string-regexp/index.js\"(){I()}}),c2=S({\"src/utils/get-last.js\"(e,r){\"use strict\";I();var u=t=>t[t.length-1];r.exports=u}}),Zi=S({\"node_modules/semver/internal/debug.js\"(e,r){I();var u=typeof Ze==\"object\"&&Ze.env&&Ze.env.NODE_DEBUG&&/\\bsemver\\b/i.test(Ze.env.NODE_DEBUG)?function(){for(var t=arguments.length,o=new Array(t),n=0;n{};r.exports=u}}),Qi=S({\"node_modules/semver/internal/constants.js\"(e,r){I();var u=\"2.0.0\",t=256,o=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:u,MAX_LENGTH:t,MAX_SAFE_INTEGER:o,MAX_SAFE_COMPONENT_LENGTH:n}}}),l2=S({\"node_modules/semver/internal/re.js\"(e,r){I();var{MAX_SAFE_COMPONENT_LENGTH:u}=Qi(),t=Zi();e=r.exports={};var o=e.re=[],n=e.src=[],s=e.t={},c=0,i=(D,a,l)=>{let p=c++;t(D,p,a),s[D]=p,n[p]=a,o[p]=new RegExp(a,l?\"g\":void 0)};i(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\"),i(\"NUMERICIDENTIFIERLOOSE\",\"[0-9]+\"),i(\"NONNUMERICIDENTIFIER\",\"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\"),i(\"MAINVERSION\",\"(\".concat(n[s.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIER],\")\")),i(\"MAINVERSIONLOOSE\",\"(\".concat(n[s.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIERLOOSE],\")\")),i(\"PRERELEASEIDENTIFIER\",\"(?:\".concat(n[s.NUMERICIDENTIFIER],\"|\").concat(n[s.NONNUMERICIDENTIFIER],\")\")),i(\"PRERELEASEIDENTIFIERLOOSE\",\"(?:\".concat(n[s.NUMERICIDENTIFIERLOOSE],\"|\").concat(n[s.NONNUMERICIDENTIFIER],\")\")),i(\"PRERELEASE\",\"(?:-(\".concat(n[s.PRERELEASEIDENTIFIER],\"(?:\\\\.\").concat(n[s.PRERELEASEIDENTIFIER],\")*))\")),i(\"PRERELEASELOOSE\",\"(?:-?(\".concat(n[s.PRERELEASEIDENTIFIERLOOSE],\"(?:\\\\.\").concat(n[s.PRERELEASEIDENTIFIERLOOSE],\")*))\")),i(\"BUILDIDENTIFIER\",\"[0-9A-Za-z-]+\"),i(\"BUILD\",\"(?:\\\\+(\".concat(n[s.BUILDIDENTIFIER],\"(?:\\\\.\").concat(n[s.BUILDIDENTIFIER],\")*))\")),i(\"FULLPLAIN\",\"v?\".concat(n[s.MAINVERSION]).concat(n[s.PRERELEASE],\"?\").concat(n[s.BUILD],\"?\")),i(\"FULL\",\"^\".concat(n[s.FULLPLAIN],\"$\")),i(\"LOOSEPLAIN\",\"[v=\\\\s]*\".concat(n[s.MAINVERSIONLOOSE]).concat(n[s.PRERELEASELOOSE],\"?\").concat(n[s.BUILD],\"?\")),i(\"LOOSE\",\"^\".concat(n[s.LOOSEPLAIN],\"$\")),i(\"GTLT\",\"((?:<|>)?=?)\"),i(\"XRANGEIDENTIFIERLOOSE\",\"\".concat(n[s.NUMERICIDENTIFIERLOOSE],\"|x|X|\\\\*\")),i(\"XRANGEIDENTIFIER\",\"\".concat(n[s.NUMERICIDENTIFIER],\"|x|X|\\\\*\")),i(\"XRANGEPLAIN\",\"[v=\\\\s]*(\".concat(n[s.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIER],\")(?:\").concat(n[s.PRERELEASE],\")?\").concat(n[s.BUILD],\"?)?)?\")),i(\"XRANGEPLAINLOOSE\",\"[v=\\\\s]*(\".concat(n[s.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIERLOOSE],\")(?:\").concat(n[s.PRERELEASELOOSE],\")?\").concat(n[s.BUILD],\"?)?)?\")),i(\"XRANGE\",\"^\".concat(n[s.GTLT],\"\\\\s*\").concat(n[s.XRANGEPLAIN],\"$\")),i(\"XRANGELOOSE\",\"^\".concat(n[s.GTLT],\"\\\\s*\").concat(n[s.XRANGEPLAINLOOSE],\"$\")),i(\"COERCE\",\"(^|[^\\\\d])(\\\\d{1,\".concat(u,\"})(?:\\\\.(\\\\d{1,\").concat(u,\"}))?(?:\\\\.(\\\\d{1,\").concat(u,\"}))?(?:$|[^\\\\d])\")),i(\"COERCERTL\",n[s.COERCE],!0),i(\"LONETILDE\",\"(?:~>?)\"),i(\"TILDETRIM\",\"(\\\\s*)\".concat(n[s.LONETILDE],\"\\\\s+\"),!0),e.tildeTrimReplace=\"$1~\",i(\"TILDE\",\"^\".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAIN],\"$\")),i(\"TILDELOOSE\",\"^\".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAINLOOSE],\"$\")),i(\"LONECARET\",\"(?:\\\\^)\"),i(\"CARETTRIM\",\"(\\\\s*)\".concat(n[s.LONECARET],\"\\\\s+\"),!0),e.caretTrimReplace=\"$1^\",i(\"CARET\",\"^\".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAIN],\"$\")),i(\"CARETLOOSE\",\"^\".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAINLOOSE],\"$\")),i(\"COMPARATORLOOSE\",\"^\".concat(n[s.GTLT],\"\\\\s*(\").concat(n[s.LOOSEPLAIN],\")$|^$\")),i(\"COMPARATOR\",\"^\".concat(n[s.GTLT],\"\\\\s*(\").concat(n[s.FULLPLAIN],\")$|^$\")),i(\"COMPARATORTRIM\",\"(\\\\s*)\".concat(n[s.GTLT],\"\\\\s*(\").concat(n[s.LOOSEPLAIN],\"|\").concat(n[s.XRANGEPLAIN],\")\"),!0),e.comparatorTrimReplace=\"$1$2$3\",i(\"HYPHENRANGE\",\"^\\\\s*(\".concat(n[s.XRANGEPLAIN],\")\\\\s+-\\\\s+(\").concat(n[s.XRANGEPLAIN],\")\\\\s*$\")),i(\"HYPHENRANGELOOSE\",\"^\\\\s*(\".concat(n[s.XRANGEPLAINLOOSE],\")\\\\s+-\\\\s+(\").concat(n[s.XRANGEPLAINLOOSE],\")\\\\s*$\")),i(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\"),i(\"GTE0\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\"),i(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\")}}),D2=S({\"node_modules/semver/internal/parse-options.js\"(e,r){I();var u=[\"includePrerelease\",\"loose\",\"rtl\"],t=o=>o?typeof o!=\"object\"?{loose:!0}:u.filter(n=>o[n]).reduce((n,s)=>(n[s]=!0,n),{}):{};r.exports=t}}),f2=S({\"node_modules/semver/internal/identifiers.js\"(e,r){I();var u=/^[0-9]+$/,t=(n,s)=>{let c=u.test(n),i=u.test(s);return c&&i&&(n=+n,s=+s),n===s?0:c&&!i?-1:i&&!c?1:nt(s,n);r.exports={compareIdentifiers:t,rcompareIdentifiers:o}}}),p2=S({\"node_modules/semver/classes/semver.js\"(e,r){I();var u=Zi(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:o}=Qi(),{re:n,t:s}=l2(),c=D2(),{compareIdentifiers:i}=f2(),D=class{constructor(a,l){if(l=c(l),a instanceof D){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if(typeof a!=\"string\")throw new TypeError(\"Invalid Version: \".concat(a));if(a.length>t)throw new TypeError(\"version is longer than \".concat(t,\" characters\"));u(\"SemVer\",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let p=a.trim().match(l.loose?n[s.LOOSE]:n[s.FULL]);if(!p)throw new TypeError(\"Invalid Version: \".concat(a));if(this.raw=a,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>o||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>o||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>o||this.patch<0)throw new TypeError(\"Invalid patch version\");p[4]?this.prerelease=p[4].split(\".\").map(d=>{if(/^[0-9]+$/.test(d)){let g=+d;if(g>=0&&g=0;)typeof this.prerelease[p]==\"number\"&&(this.prerelease[p]++,p=-2);p===-1&&this.prerelease.push(0)}l&&(i(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error(\"invalid increment argument: \".concat(a))}return this.format(),this.raw=this.version,this}};r.exports=D}}),vu=S({\"node_modules/semver/functions/compare.js\"(e,r){I();var u=p2(),t=(o,n,s)=>new u(o,s).compare(new u(n,s));r.exports=t}}),d2=S({\"node_modules/semver/functions/lt.js\"(e,r){I();var u=vu(),t=(o,n,s)=>u(o,n,s)<0;r.exports=t}}),h2=S({\"node_modules/semver/functions/gte.js\"(e,r){I();var u=vu(),t=(o,n,s)=>u(o,n,s)>=0;r.exports=t}}),v2=S({\"src/utils/arrayify.js\"(e,r){\"use strict\";I(),r.exports=(u,t)=>Object.entries(u).map(o=>{let[n,s]=o;return Object.assign({[t]:n},s)})}}),m2=S({\"package.json\"(e,r){r.exports={version:\"2.7.1\"}}}),E2=S({\"node_modules/outdent/lib/index.js\"(e,r){\"use strict\";I(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.outdent=void 0;function u(){for(var f=[],b=0;btypeof l==\"string\"||typeof l==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",since:\"1.16.0\",description:\"JavaScript\"},{value:\"babel-flow\",since:\"1.16.0\",description:\"Flow\"},{value:\"babel-ts\",since:\"2.0.0\",description:\"TypeScript\"},{value:\"typescript\",since:\"1.4.0\",description:\"TypeScript\"},{value:\"acorn\",since:\"2.6.0\",description:\"JavaScript\"},{value:\"espree\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"meriyah\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"css\",since:\"1.7.1\",description:\"CSS\"},{value:\"less\",since:\"1.7.1\",description:\"Less\"},{value:\"scss\",since:\"1.7.1\",description:\"SCSS\"},{value:\"json\",since:\"1.5.0\",description:\"JSON\"},{value:\"json5\",since:\"1.13.0\",description:\"JSON5\"},{value:\"json-stringify\",since:\"1.13.0\",description:\"JSON.stringify\"},{value:\"graphql\",since:\"1.5.0\",description:\"GraphQL\"},{value:\"markdown\",since:\"1.8.0\",description:\"Markdown\"},{value:\"mdx\",since:\"1.15.0\",description:\"MDX\"},{value:\"vue\",since:\"1.10.0\",description:\"Vue\"},{value:\"yaml\",since:\"1.14.0\",description:\"YAML\"},{value:\"glimmer\",since:\"2.3.0\",description:\"Ember / Handlebars\"},{value:\"html\",since:\"1.15.0\",description:\"HTML\"},{value:\"angular\",since:\"1.15.0\",description:\"Angular\"},{value:\"lwc\",since:\"1.17.0\",description:\"Lightning Web Components\"}]},plugins:{since:\"1.10.0\",type:\"path\",array:!0,default:[{value:[]}],category:i,description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin\",cliCategory:t},pluginSearchDirs:{since:\"1.13.0\",type:\"path\",array:!0,default:[{value:[]}],category:i,description:u(wi||(wi=je([`\n Custom directory that contains prettier plugins in node_modules subdirectory.\n Overrides default behavior when plugins are searched relatively to the location of Prettier.\n Multiple values are accepted.\n `]))),exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin-search-dir\",cliCategory:t},printWidth:{since:\"0.0.0\",category:i,type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:\"1.4.0\",category:D,type:\"int\",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(ki||(ki=je([`\n Format code ending at a given character offset (exclusive).\n The range will extend forwards to the end of the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:o},rangeStart:{since:\"1.4.0\",category:D,type:\"int\",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(qi||(qi=je([`\n Format code starting at a given character offset.\n The range will extend backwards to the start of the first line containing the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:o},requirePragma:{since:\"1.7.0\",category:D,type:\"boolean\",default:!1,description:u(_i||(_i=je([`\n Require either '@prettier' or '@format' to be present in the file's first docblock comment\n in order for it to be formatted.\n `]))),cliCategory:s},tabWidth:{type:\"int\",category:i,default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:\"1.0.0\",category:i,type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{since:\"2.1.0\",category:i,type:\"choice\",default:[{since:\"2.1.0\",value:\"auto\"}],description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};r.exports={CATEGORY_CONFIG:t,CATEGORY_EDITOR:o,CATEGORY_FORMAT:n,CATEGORY_OTHER:s,CATEGORY_OUTPUT:c,CATEGORY_GLOBAL:i,CATEGORY_SPECIAL:D,options:a}}}),g2=S({\"src/main/support.js\"(e,r){\"use strict\";I();var u={compare:vu(),lt:d2(),gte:h2()},t=v2(),o=m2().version,n=C2().options;function s(){let{plugins:i=[],showUnreleased:D=!1,showDeprecated:a=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},p=o.split(\"-\",1)[0],d=i.flatMap(f=>f.languages||[]).filter(F),g=t(Object.assign({},...i.map(f=>{let{options:b}=f;return b}),n),\"name\").filter(f=>F(f)&&E(f)).sort((f,b)=>f.name===b.name?0:f.name{f=Object.assign({},f),Array.isArray(f.default)&&(f.default=f.default.length===1?f.default[0].value:f.default.filter(F).sort((v,h)=>u.compare(h.since,v.since))[0].value),Array.isArray(f.choices)&&(f.choices=f.choices.filter(v=>F(v)&&E(v)),f.name===\"parser\"&&c(f,d,i));let b=Object.fromEntries(i.filter(v=>v.defaultOptions&&v.defaultOptions[f.name]!==void 0).map(v=>[v.name,v.defaultOptions[f.name]]));return Object.assign(Object.assign({},f),{},{pluginDefaults:b})});return{languages:d,options:g};function F(f){return D||!(\"since\"in f)||f.since&&u.gte(p,f.since)}function E(f){return a||!(\"deprecated\"in f)||f.deprecated&&u.lt(p,f.deprecated)}function x(f){if(l)return f;let{cliName:b,cliCategory:v,cliDescription:h}=f;return ql(f,kl)}}function c(i,D,a){let l=new Set(i.choices.map(p=>p.value));for(let p of D)if(p.parsers){for(let d of p.parsers)if(!l.has(d)){l.add(d);let g=a.find(E=>E.parsers&&E.parsers[d]),F=p.name;g&&g.name&&(F+=\" (plugin: \".concat(g.name,\")\")),i.choices.push({value:d,description:F})}}}r.exports={getSupportInfo:s}}}),F2=S({\"src/utils/is-non-empty-array.js\"(e,r){\"use strict\";I();function u(t){return Array.isArray(t)&&t.length>0}r.exports=u}});function A2(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(r,e?void 0:\"g\")}var x2=Pe({\"node_modules/strip-ansi/node_modules/ansi-regex/index.js\"(){I()}});function b2(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a `string`, got `\".concat(typeof e,\"`\"));return e.replace(A2(),\"\")}var y2=Pe({\"node_modules/strip-ansi/index.js\"(){I(),x2()}});function B2(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var w2=Pe({\"node_modules/is-fullwidth-code-point/index.js\"(){I()}}),k2=S({\"node_modules/emoji-regex/index.js\"(e,r){\"use strict\";I(),r.exports=function(){return/\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g}}}),ea={};Li(ea,{default:()=>q2});function q2(e){if(typeof e!=\"string\"||e.length===0||(e=b2(e),e.length===0))return 0;e=e.replace((0,ra.default)(),\" \");let r=0;for(let u=0;u=127&&t<=159||t>=768&&t<=879||(t>65535&&u++,r+=B2(t)?2:1)}return r}var ra,_2=Pe({\"node_modules/string-width/index.js\"(){I(),y2(),w2(),ra=Nl(k2())}}),O2=S({\"src/utils/get-string-width.js\"(e,r){\"use strict\";I();var u=(_2(),ji(ea)).default,t=/[^\\x20-\\x7F]/;function o(n){return n?t.test(n)?u(n):n.length:0}r.exports=o}}),mu=S({\"src/utils/text/skip.js\"(e,r){\"use strict\";I();function u(c){return(i,D,a)=>{let l=a&&a.backwards;if(D===!1)return!1;let{length:p}=i,d=D;for(;d>=0&&dk[k.length-2];function E(k){return(y,_,N)=>{let V=N&&N.backwards;if(_===!1)return!1;let{length:W}=y,K=_;for(;K>=0&&K2&&arguments[2]!==void 0?arguments[2]:{},N=i(k,_.backwards?y-1:y,_),V=d(k,N,_);return N!==V}function f(k,y,_){for(let N=y;N<_;++N)if(k.charAt(N)===`\n`)return!0;return!1}function b(k,y,_){let N=_(y)-1;N=i(k,N,{backwards:!0}),N=d(k,N,{backwards:!0}),N=i(k,N,{backwards:!0});let V=d(k,N,{backwards:!0});return N!==V}function v(k,y){let _=null,N=y;for(;N!==_;)_=N,N=D(k,N),N=l(k,N),N=i(k,N);return N=p(k,N),N=d(k,N),N!==!1&&x(k,N)}function h(k,y,_){return v(k,_(y))}function m(k,y,_){return g(k,_(y))}function C(k,y,_){return k.charAt(m(k,y,_))}function B(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return i(k,_.backwards?y-1:y,_)!==y}function q(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,N=0;for(let V=_;VY?W:V}return K}function O(k,y){let _=k.slice(1,-1),N=y.parser===\"json\"||y.parser===\"json5\"&&y.quoteProps===\"preserve\"&&!y.singleQuote?'\"':y.__isInHtmlAttribute?\"'\":w(_,y.singleQuote?\"'\":'\"').quote;return T(_,N,!(y.parser===\"css\"||y.parser===\"less\"||y.parser===\"scss\"||y.__embeddedInHtml))}function T(k,y,_){let N=y==='\"'?\"'\":'\"',V=/\\\\(.)|([\"'])/gs,W=k.replace(V,(K,ee,Y)=>ee===N?ee:Y===y?\"\\\\\"+Y:Y||(_&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(ee)?ee:\"\\\\\"+ee));return y+W+y}function P(k){return k.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(\\d)/,\"$1$2$3\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/,\"$1\").replace(/^([+-])?\\./,\"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/,\"$1\").replace(/\\.(?=e|$)/,\"\")}function A(k,y){let _=k.match(new RegExp(\"(\".concat(u(y),\")+\"),\"g\"));return _===null?0:_.reduce((N,V)=>Math.max(N,V.length/y.length),0)}function j(k,y){let _=k.match(new RegExp(\"(\".concat(u(y),\")+\"),\"g\"));if(_===null)return 0;let N=new Map,V=0;for(let W of _){let K=W.length/y.length;N.set(K,!0),K>V&&(V=K)}for(let W=1;W{let{name:W}=V;return W.toLowerCase()===k})||_.find(V=>{let{aliases:W}=V;return Array.isArray(W)&&W.includes(k)})||_.find(V=>{let{extensions:W}=V;return Array.isArray(W)&&W.includes(\".\".concat(k))});return N&&N.parsers[0]}function z(k){return k&&k.type===\"front-matter\"}function M(k){let y=new WeakMap;return function(_){return y.has(_)||y.set(_,Symbol(k)),y.get(_)}}function G(k){let y=k.type||k.kind||\"(unknown type)\",_=String(k.name||k.id&&(typeof k.id==\"object\"?k.id.name:k.id)||k.key&&(typeof k.key==\"object\"?k.key.name:k.key)||k.value&&(typeof k.value==\"object\"?\"\":String(k.value))||k.operator||\"\");return _.length>20&&(_=_.slice(0,19)+\"\\u2026\"),y+(_?\" \"+_:\"\")}r.exports={inferParserByLanguage:J,getStringWidth:s,getMaxContinuousCount:A,getMinNotPresentContinuousCount:j,getPenultimate:F,getLast:t,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:g,getNextNonSpaceNonCommentCharacterIndex:m,getNextNonSpaceNonCommentCharacter:C,skip:E,skipWhitespace:c,skipSpaces:i,skipToLineEnd:D,skipEverythingButNewLine:a,skipInlineComment:l,skipTrailingComment:p,skipNewline:d,isNextLineEmptyAfterIndex:v,isNextLineEmpty:h,isPreviousLineEmpty:b,hasNewline:x,hasNewlineInRange:f,hasSpaces:B,getAlignmentSize:q,getIndentSize:L,getPreferredQuote:w,printString:O,printNumber:P,makeString:T,addLeadingComment:U,addDanglingComment:X,addTrailingComment:R,isFrontMatterNode:z,isNonEmptyArray:n,createGroupIdMapper:M}}}),T2=S({\"src/language-markdown/constants.evaluate.js\"(e,r){r.exports={cjkPattern:\"(?:[\\\\u02ea-\\\\u02eb\\\\u1100-\\\\u11ff\\\\u2e80-\\\\u2e99\\\\u2e9b-\\\\u2ef3\\\\u2f00-\\\\u2fd5\\\\u2ff0-\\\\u303f\\\\u3041-\\\\u3096\\\\u3099-\\\\u309f\\\\u30a1-\\\\u30fa\\\\u30fc-\\\\u30ff\\\\u3105-\\\\u312f\\\\u3131-\\\\u318e\\\\u3190-\\\\u3191\\\\u3196-\\\\u31ba\\\\u31c0-\\\\u31e3\\\\u31f0-\\\\u321e\\\\u322a-\\\\u3247\\\\u3260-\\\\u327e\\\\u328a-\\\\u32b0\\\\u32c0-\\\\u32cb\\\\u32d0-\\\\u3370\\\\u337b-\\\\u337f\\\\u33e0-\\\\u33fe\\\\u3400-\\\\u4db5\\\\u4e00-\\\\u9fef\\\\ua960-\\\\ua97c\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\uf900-\\\\ufa6d\\\\ufa70-\\\\ufad9\\\\ufe10-\\\\ufe1f\\\\ufe30-\\\\ufe6f\\\\uff00-\\\\uffef]|[\\\\ud840-\\\\ud868\\\\ud86a-\\\\ud86c\\\\ud86f-\\\\ud872\\\\ud874-\\\\ud879][\\\\udc00-\\\\udfff]|\\\\ud82c[\\\\udc00-\\\\udd1e\\\\udd50-\\\\udd52\\\\udd64-\\\\udd67]|\\\\ud83c[\\\\ude00\\\\ude50-\\\\ude51]|\\\\ud869[\\\\udc00-\\\\uded6\\\\udf00-\\\\udfff]|\\\\ud86d[\\\\udc00-\\\\udf34\\\\udf40-\\\\udfff]|\\\\ud86e[\\\\udc00-\\\\udc1d\\\\udc20-\\\\udfff]|\\\\ud873[\\\\udc00-\\\\udea1\\\\udeb0-\\\\udfff]|\\\\ud87a[\\\\udc00-\\\\udfe0]|\\\\ud87e[\\\\udc00-\\\\ude1d])(?:[\\\\ufe00-\\\\ufe0f]|\\\\udb40[\\\\udd00-\\\\uddef])?\",kPattern:\"[\\\\u1100-\\\\u11ff\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3013-\\\\u301f\\\\u302e-\\\\u3030\\\\u3037\\\\u30fb\\\\u3131-\\\\u318e\\\\u3200-\\\\u321e\\\\u3260-\\\\u327e\\\\ua960-\\\\ua97c\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\ufe45-\\\\ufe46\\\\uff61-\\\\uff65\\\\uffa0-\\\\uffbe\\\\uffc2-\\\\uffc7\\\\uffca-\\\\uffcf\\\\uffd2-\\\\uffd7\\\\uffda-\\\\uffdc]\",punctuationPattern:\"[\\\\u0021-\\\\u002f\\\\u003a-\\\\u0040\\\\u005b-\\\\u0060\\\\u007b-\\\\u007e\\\\u00a1\\\\u00a7\\\\u00ab\\\\u00b6-\\\\u00b7\\\\u00bb\\\\u00bf\\\\u037e\\\\u0387\\\\u055a-\\\\u055f\\\\u0589-\\\\u058a\\\\u05be\\\\u05c0\\\\u05c3\\\\u05c6\\\\u05f3-\\\\u05f4\\\\u0609-\\\\u060a\\\\u060c-\\\\u060d\\\\u061b\\\\u061e-\\\\u061f\\\\u066a-\\\\u066d\\\\u06d4\\\\u0700-\\\\u070d\\\\u07f7-\\\\u07f9\\\\u0830-\\\\u083e\\\\u085e\\\\u0964-\\\\u0965\\\\u0970\\\\u09fd\\\\u0a76\\\\u0af0\\\\u0c77\\\\u0c84\\\\u0df4\\\\u0e4f\\\\u0e5a-\\\\u0e5b\\\\u0f04-\\\\u0f12\\\\u0f14\\\\u0f3a-\\\\u0f3d\\\\u0f85\\\\u0fd0-\\\\u0fd4\\\\u0fd9-\\\\u0fda\\\\u104a-\\\\u104f\\\\u10fb\\\\u1360-\\\\u1368\\\\u1400\\\\u166e\\\\u169b-\\\\u169c\\\\u16eb-\\\\u16ed\\\\u1735-\\\\u1736\\\\u17d4-\\\\u17d6\\\\u17d8-\\\\u17da\\\\u1800-\\\\u180a\\\\u1944-\\\\u1945\\\\u1a1e-\\\\u1a1f\\\\u1aa0-\\\\u1aa6\\\\u1aa8-\\\\u1aad\\\\u1b5a-\\\\u1b60\\\\u1bfc-\\\\u1bff\\\\u1c3b-\\\\u1c3f\\\\u1c7e-\\\\u1c7f\\\\u1cc0-\\\\u1cc7\\\\u1cd3\\\\u2010-\\\\u2027\\\\u2030-\\\\u2043\\\\u2045-\\\\u2051\\\\u2053-\\\\u205e\\\\u207d-\\\\u207e\\\\u208d-\\\\u208e\\\\u2308-\\\\u230b\\\\u2329-\\\\u232a\\\\u2768-\\\\u2775\\\\u27c5-\\\\u27c6\\\\u27e6-\\\\u27ef\\\\u2983-\\\\u2998\\\\u29d8-\\\\u29db\\\\u29fc-\\\\u29fd\\\\u2cf9-\\\\u2cfc\\\\u2cfe-\\\\u2cff\\\\u2d70\\\\u2e00-\\\\u2e2e\\\\u2e30-\\\\u2e4f\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3014-\\\\u301f\\\\u3030\\\\u303d\\\\u30a0\\\\u30fb\\\\ua4fe-\\\\ua4ff\\\\ua60d-\\\\ua60f\\\\ua673\\\\ua67e\\\\ua6f2-\\\\ua6f7\\\\ua874-\\\\ua877\\\\ua8ce-\\\\ua8cf\\\\ua8f8-\\\\ua8fa\\\\ua8fc\\\\ua92e-\\\\ua92f\\\\ua95f\\\\ua9c1-\\\\ua9cd\\\\ua9de-\\\\ua9df\\\\uaa5c-\\\\uaa5f\\\\uaade-\\\\uaadf\\\\uaaf0-\\\\uaaf1\\\\uabeb\\\\ufd3e-\\\\ufd3f\\\\ufe10-\\\\ufe19\\\\ufe30-\\\\ufe52\\\\ufe54-\\\\ufe61\\\\ufe63\\\\ufe68\\\\ufe6a-\\\\ufe6b\\\\uff01-\\\\uff03\\\\uff05-\\\\uff0a\\\\uff0c-\\\\uff0f\\\\uff1a-\\\\uff1b\\\\uff1f-\\\\uff20\\\\uff3b-\\\\uff3d\\\\uff3f\\\\uff5b\\\\uff5d\\\\uff5f-\\\\uff65]|\\\\ud800[\\\\udd00-\\\\udd02\\\\udf9f\\\\udfd0]|\\\\ud801[\\\\udd6f]|\\\\ud802[\\\\udc57\\\\udd1f\\\\udd3f\\\\ude50-\\\\ude58\\\\ude7f\\\\udef0-\\\\udef6\\\\udf39-\\\\udf3f\\\\udf99-\\\\udf9c]|\\\\ud803[\\\\udf55-\\\\udf59]|\\\\ud804[\\\\udc47-\\\\udc4d\\\\udcbb-\\\\udcbc\\\\udcbe-\\\\udcc1\\\\udd40-\\\\udd43\\\\udd74-\\\\udd75\\\\uddc5-\\\\uddc8\\\\uddcd\\\\udddb\\\\udddd-\\\\udddf\\\\ude38-\\\\ude3d\\\\udea9]|\\\\ud805[\\\\udc4b-\\\\udc4f\\\\udc5b\\\\udc5d\\\\udcc6\\\\uddc1-\\\\uddd7\\\\ude41-\\\\ude43\\\\ude60-\\\\ude6c\\\\udf3c-\\\\udf3e]|\\\\ud806[\\\\udc3b\\\\udde2\\\\ude3f-\\\\ude46\\\\ude9a-\\\\ude9c\\\\ude9e-\\\\udea2]|\\\\ud807[\\\\udc41-\\\\udc45\\\\udc70-\\\\udc71\\\\udef7-\\\\udef8\\\\udfff]|\\\\ud809[\\\\udc70-\\\\udc74]|\\\\ud81a[\\\\ude6e-\\\\ude6f\\\\udef5\\\\udf37-\\\\udf3b\\\\udf44]|\\\\ud81b[\\\\ude97-\\\\ude9a\\\\udfe2]|\\\\ud82f[\\\\udc9f]|\\\\ud836[\\\\ude87-\\\\ude8b]|\\\\ud83a[\\\\udd5e-\\\\udd5f]\"}}}),N2=S({\"src/language-markdown/utils.js\"(e,r){\"use strict\";I();var{getLast:u}=S2(),{locStart:t,locEnd:o}=Ki(),{cjkPattern:n,kPattern:s,punctuationPattern:c}=T2(),i=[\"liquidNode\",\"inlineCode\",\"emphasis\",\"esComment\",\"strong\",\"delete\",\"wikiLink\",\"link\",\"linkReference\",\"image\",\"imageReference\",\"footnote\",\"footnoteReference\",\"sentence\",\"whitespace\",\"word\",\"break\",\"inlineMath\"],D=[...i,\"tableCell\",\"paragraph\",\"heading\"],a=new RegExp(s),l=new RegExp(c);function p(f,b){let v=\"non-cjk\",h=\"cj-letter\",m=\"k-letter\",C=\"cjk-punctuation\",B=[],q=(b.proseWrap===\"preserve\"?f:f.replace(new RegExp(\"(\".concat(n,`)\n(`).concat(n,\")\"),\"g\"),\"$1$2\")).split(/([\\t\\n ]+)/);for(let[w,O]of q.entries()){if(w%2===1){B.push({type:\"whitespace\",value:/\\n/.test(O)?`\n`:\" \"});continue}if((w===0||w===q.length-1)&&O===\"\")continue;let T=O.split(new RegExp(\"(\".concat(n,\")\")));for(let[P,A]of T.entries())if(!((P===0||P===T.length-1)&&A===\"\")){if(P%2===0){A!==\"\"&&L({type:\"word\",value:A,kind:v,hasLeadingPunctuation:l.test(A[0]),hasTrailingPunctuation:l.test(u(A))});continue}L(l.test(A)?{type:\"word\",value:A,kind:C,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:\"word\",value:A,kind:a.test(A)?m:h,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return B;function L(w){let O=u(B);O&&O.type===\"word\"&&(O.kind===v&&w.kind===h&&!O.hasTrailingPunctuation||O.kind===h&&w.kind===v&&!w.hasLeadingPunctuation?B.push({type:\"whitespace\",value:\" \"}):!T(v,C)&&![O.value,w.value].some(P=>/\\u3000/.test(P))&&B.push({type:\"whitespace\",value:\"\"})),B.push(w);function T(P,A){return O.kind===P&&w.kind===A||O.kind===A&&w.kind===P}}}function d(f,b){let[,v,h,m]=b.slice(f.position.start.offset,f.position.end.offset).match(/^\\s*(\\d+)(\\.|\\))(\\s*)/);return{numberText:v,marker:h,leadingSpaces:m}}function g(f,b){if(!f.ordered||f.children.length<2)return!1;let v=Number(d(f.children[0],b.originalText).numberText),h=Number(d(f.children[1],b.originalText).numberText);if(v===0&&f.children.length>2){let m=Number(d(f.children[2],b.originalText).numberText);return h===1&&m===1}return h===1}function F(f,b){let{value:v}=f;return f.position.end.offset===b.length&&v.endsWith(`\n`)&&b.endsWith(`\n`)?v.slice(0,-1):v}function E(f,b){return function v(h,m,C){let B=Object.assign({},b(h,m,C));return B.children&&(B.children=B.children.map((q,L)=>v(q,L,[B,...C]))),B}(f,null,[])}function x(f){if((f==null?void 0:f.type)!==\"link\"||f.children.length!==1)return!1;let[b]=f.children;return t(f)===t(b)&&o(f)===o(b)}r.exports={mapAst:E,splitText:p,punctuationPattern:c,getFencedCodeBlockValue:F,getOrderedListItemInfo:d,hasGitDiffFriendlyOrderedList:g,INLINE_NODE_TYPES:i,INLINE_NODE_WRAPPER_TYPES:D,isAutolink:x}}}),L2=S({\"src/language-markdown/unified-plugins/html-to-jsx.js\"(e,r){\"use strict\";I();var u=Yi(),{mapAst:t,INLINE_NODE_WRAPPER_TYPES:o}=N2();function n(){return s=>t(s,(c,i,D)=>{let[a]=D;return c.type!==\"html\"||u.COMMENT_REGEX.test(c.value)||o.includes(a.type)?c:Object.assign(Object.assign({},c),{},{type:\"jsx\"})})}r.exports=n}}),R2=S({\"src/language-markdown/unified-plugins/front-matter.js\"(e,r){\"use strict\";I();var u=Wi();function t(){let o=this.Parser.prototype;o.blockMethods=[\"frontMatter\",...o.blockMethods],o.blockTokenizers.frontMatter=n;function n(s,c){let i=u(c);if(i.frontMatter)return s(i.frontMatter.raw)(i.frontMatter)}n.onlyAtStart=!0}r.exports=t}}),j2=S({\"src/language-markdown/unified-plugins/liquid.js\"(e,r){\"use strict\";I();function u(){let t=this.Parser.prototype,o=t.inlineMethods;o.splice(o.indexOf(\"text\"),0,\"liquid\"),t.inlineTokenizers.liquid=n;function n(s,c){let i=c.match(/^({%.*?%}|{{.*?}})/s);if(i)return s(i[0])({type:\"liquidNode\",value:i[0]})}n.locator=function(s,c){return s.indexOf(\"{\",c)}}r.exports=u}}),P2=S({\"src/language-markdown/unified-plugins/wiki-link.js\"(e,r){\"use strict\";I();function u(){let t=\"wikiLink\",o=/^\\[\\[(?.+?)]]/s,n=this.Parser.prototype,s=n.inlineMethods;s.splice(s.indexOf(\"link\"),0,t),n.inlineTokenizers.wikiLink=c;function c(i,D){let a=o.exec(D);if(a){let l=a.groups.linkContents.trim();return i(a[0])({type:t,value:l})}}c.locator=function(i,D){return i.indexOf(\"[\",D)}}r.exports=u}}),M2=S({\"src/language-markdown/unified-plugins/loose-items.js\"(e,r){\"use strict\";I();function u(){let t=this.Parser.prototype,o=t.blockTokenizers.list;function n(s,c,i){return c.type===\"listItem\"&&(c.loose=c.spread||s.charAt(s.length-1)===`\n`,c.loose&&(i.loose=!0)),c}t.blockTokenizers.list=function(c,i,D){function a(l){let p=c(l);function d(g,F){return p(n(l,g,F),F)}return d.reset=function(g,F){return p.reset(n(l,g,F),F)},d}return a.now=c.now,o.call(this,a,i,D)}}r.exports=u}});I();var z2=GD(),G2=r2(),U2=n2(),V2=i2(),$2=a2(),{locStart:H2,locEnd:X2}=Ki(),Si=Yi(),W2=L2(),K2=R2(),Y2=j2(),J2=P2(),Z2=M2();function ia(e){let{isMDX:r}=e;return u=>{let t=G2().use(z2,Object.assign({commonmark:!0},r&&{blocks:[Si.BLOCKS_REGEX]})).use(V2).use(K2).use(U2).use(r?Si.esSyntax:Ti).use(Y2).use(r?W2:Ti).use(J2).use(Z2);return t.runSync(t.parse(u))}}function Ti(e){return e}var aa={astFormat:\"mdast\",hasPragma:$2.hasPragma,locStart:H2,locEnd:X2},Ni=Object.assign(Object.assign({},aa),{},{parse:ia({isMDX:!1})}),Q2=Object.assign(Object.assign({},aa),{},{parse:ia({isMDX:!0})});oa.exports={parsers:{remark:Ni,markdown:Ni,mdx:Q2}}});return ef();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.meriyah=e()}})(function(){\"use strict\";var F=(d,m)=>()=>(m||d((m={exports:{}}).exports,m),m.exports);var i2=F((E3,Ce)=>{var A1=function(d){return d&&d.Math==Math&&d};Ce.exports=A1(typeof globalThis==\"object\"&&globalThis)||A1(typeof window==\"object\"&&window)||A1(typeof self==\"object\"&&self)||A1(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var L2=F((D3,we)=>{we.exports=function(d){try{return!!d()}catch{return!0}}});var J2=F((C3,qe)=>{var Ut=L2();qe.exports=!Ut(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var x1=F((w3,Be)=>{var Jt=L2();Be.exports=!Jt(function(){var d=function(){}.bind();return typeof d!=\"function\"||d.hasOwnProperty(\"prototype\")})});var P1=F((q3,Se)=>{var Xt=x1(),y1=Function.prototype.call;Se.exports=Xt?y1.bind(y1):function(){return y1.apply(y1,arguments)}});var Oe=F(Le=>{\"use strict\";var Fe={}.propertyIsEnumerable,Te=Object.getOwnPropertyDescriptor,zt=Te&&!Fe.call({1:2},1);Le.f=zt?function(m){var k=Te(this,m);return!!k&&k.enumerable}:Fe});var p1=F((S3,Ie)=>{Ie.exports=function(d,m){return{enumerable:!(d&1),configurable:!(d&2),writable:!(d&4),value:m}}});var D2=F((F3,Ve)=>{var Re=x1(),Ne=Function.prototype,Ht=Ne.bind,uu=Ne.call,Kt=Re&&Ht.bind(uu,uu);Ve.exports=Re?function(d){return d&&Kt(d)}:function(d){return d&&function(){return uu.apply(d,arguments)}}});var Me=F((T3,_e)=>{var je=D2(),Wt=je({}.toString),Yt=je(\"\".slice);_e.exports=function(d){return Yt(Wt(d),8,-1)}});var Je=F((L3,Ue)=>{var $t=i2(),Zt=D2(),Qt=L2(),Gt=Me(),eu=$t.Object,xt=Zt(\"\".split);Ue.exports=Qt(function(){return!eu(\"z\").propertyIsEnumerable(0)})?function(d){return Gt(d)==\"String\"?xt(d,\"\"):eu(d)}:eu});var iu=F((O3,Xe)=>{var pt=i2(),uo=pt.TypeError;Xe.exports=function(d){if(d==null)throw uo(\"Can't call method on \"+d);return d}});var E1=F((I3,ze)=>{var eo=Je(),io=iu();ze.exports=function(d){return eo(io(d))}});var C2=F((R3,He)=>{He.exports=function(d){return typeof d==\"function\"}});var Z2=F((N3,Ke)=>{var no=C2();Ke.exports=function(d){return typeof d==\"object\"?d!==null:no(d)}});var D1=F((V3,We)=>{var nu=i2(),to=C2(),oo=function(d){return to(d)?d:void 0};We.exports=function(d,m){return arguments.length<2?oo(nu[d]):nu[d]&&nu[d][m]}});var $e=F((j3,Ye)=>{var lo=D2();Ye.exports=lo({}.isPrototypeOf)});var Qe=F((_3,Ze)=>{var fo=D1();Ze.exports=fo(\"navigator\",\"userAgent\")||\"\"});var ni=F((M3,ii)=>{var ei=i2(),tu=Qe(),Ge=ei.process,xe=ei.Deno,pe=Ge&&Ge.versions||xe&&xe.version,ui=pe&&pe.v8,P2,C1;ui&&(P2=ui.split(\".\"),C1=P2[0]>0&&P2[0]<4?1:+(P2[0]+P2[1]));!C1&&tu&&(P2=tu.match(/Edge\\/(\\d+)/),(!P2||P2[1]>=74)&&(P2=tu.match(/Chrome\\/(\\d+)/),P2&&(C1=+P2[1])));ii.exports=C1});var ou=F((U3,oi)=>{var ti=ni(),co=L2();oi.exports=!!Object.getOwnPropertySymbols&&!co(function(){var d=Symbol();return!String(d)||!(Object(d)instanceof Symbol)||!Symbol.sham&&ti&&ti<41})});var lu=F((J3,li)=>{var so=ou();li.exports=so&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var fu=F((X3,fi)=>{var ao=i2(),go=D1(),ho=C2(),mo=$e(),bo=lu(),ko=ao.Object;fi.exports=bo?function(d){return typeof d==\"symbol\"}:function(d){var m=go(\"Symbol\");return ho(m)&&mo(m.prototype,ko(d))}});var si=F((z3,ci)=>{var ro=i2(),vo=ro.String;ci.exports=function(d){try{return vo(d)}catch{return\"Object\"}}});var di=F((H3,ai)=>{var Ao=i2(),yo=C2(),Po=si(),Eo=Ao.TypeError;ai.exports=function(d){if(yo(d))return d;throw Eo(Po(d)+\" is not a function\")}});var hi=F((K3,gi)=>{var Do=di();gi.exports=function(d,m){var k=d[m];return k==null?void 0:Do(k)}});var bi=F((W3,mi)=>{var Co=i2(),cu=P1(),su=C2(),au=Z2(),wo=Co.TypeError;mi.exports=function(d,m){var k,f;if(m===\"string\"&&su(k=d.toString)&&!au(f=cu(k,d))||su(k=d.valueOf)&&!au(f=cu(k,d))||m!==\"string\"&&su(k=d.toString)&&!au(f=cu(k,d)))return f;throw wo(\"Can't convert object to primitive value\")}});var ri=F((Y3,ki)=>{ki.exports=!1});var w1=F(($3,Ai)=>{var vi=i2(),qo=Object.defineProperty;Ai.exports=function(d,m){try{qo(vi,d,{value:m,configurable:!0,writable:!0})}catch{vi[d]=m}return m}});var q1=F((Z3,Pi)=>{var Bo=i2(),So=w1(),yi=\"__core-js_shared__\",Fo=Bo[yi]||So(yi,{});Pi.exports=Fo});var du=F((Q3,Di)=>{var To=ri(),Ei=q1();(Di.exports=function(d,m){return Ei[d]||(Ei[d]=m!==void 0?m:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:To?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var wi=F((G3,Ci)=>{var Lo=i2(),Oo=iu(),Io=Lo.Object;Ci.exports=function(d){return Io(Oo(d))}});var O2=F((x3,qi)=>{var Ro=D2(),No=wi(),Vo=Ro({}.hasOwnProperty);qi.exports=Object.hasOwn||function(m,k){return Vo(No(m),k)}});var gu=F((p3,Bi)=>{var jo=D2(),_o=0,Mo=Math.random(),Uo=jo(1 .toString);Bi.exports=function(d){return\"Symbol(\"+(d===void 0?\"\":d)+\")_\"+Uo(++_o+Mo,36)}});var Ii=F((u6,Oi)=>{var Jo=i2(),Xo=du(),Si=O2(),zo=gu(),Fi=ou(),Li=lu(),Q2=Xo(\"wks\"),X2=Jo.Symbol,Ti=X2&&X2.for,Ho=Li?X2:X2&&X2.withoutSetter||zo;Oi.exports=function(d){if(!Si(Q2,d)||!(Fi||typeof Q2[d]==\"string\")){var m=\"Symbol.\"+d;Fi&&Si(X2,d)?Q2[d]=X2[d]:Li&&Ti?Q2[d]=Ti(m):Q2[d]=Ho(m)}return Q2[d]}});var ji=F((e6,Vi)=>{var Ko=i2(),Wo=P1(),Ri=Z2(),Ni=fu(),Yo=hi(),$o=bi(),Zo=Ii(),Qo=Ko.TypeError,Go=Zo(\"toPrimitive\");Vi.exports=function(d,m){if(!Ri(d)||Ni(d))return d;var k=Yo(d,Go),f;if(k){if(m===void 0&&(m=\"default\"),f=Wo(k,d,m),!Ri(f)||Ni(f))return f;throw Qo(\"Can't convert object to primitive value\")}return m===void 0&&(m=\"number\"),$o(d,m)}});var hu=F((i6,_i)=>{var xo=ji(),po=fu();_i.exports=function(d){var m=xo(d,\"string\");return po(m)?m:m+\"\"}});var Ji=F((n6,Ui)=>{var ul=i2(),Mi=Z2(),mu=ul.document,el=Mi(mu)&&Mi(mu.createElement);Ui.exports=function(d){return el?mu.createElement(d):{}}});var bu=F((t6,Xi)=>{var il=J2(),nl=L2(),tl=Ji();Xi.exports=!il&&!nl(function(){return Object.defineProperty(tl(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var ku=F(Hi=>{var ol=J2(),ll=P1(),fl=Oe(),cl=p1(),sl=E1(),al=hu(),dl=O2(),gl=bu(),zi=Object.getOwnPropertyDescriptor;Hi.f=ol?zi:function(m,k){if(m=sl(m),k=al(k),gl)try{return zi(m,k)}catch{}if(dl(m,k))return cl(!ll(fl.f,m,k),m[k])}});var Wi=F((l6,Ki)=>{var hl=J2(),ml=L2();Ki.exports=hl&&ml(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var ru=F((f6,$i)=>{var Yi=i2(),bl=Z2(),kl=Yi.String,rl=Yi.TypeError;$i.exports=function(d){if(bl(d))return d;throw rl(kl(d)+\" is not an object\")}});var Eu=F(Qi=>{var vl=i2(),Al=J2(),yl=bu(),Pl=Wi(),B1=ru(),Zi=hu(),El=vl.TypeError,vu=Object.defineProperty,Dl=Object.getOwnPropertyDescriptor,Au=\"enumerable\",yu=\"configurable\",Pu=\"writable\";Qi.f=Al?Pl?function(m,k,f){if(B1(m),k=Zi(k),B1(f),typeof m==\"function\"&&k===\"prototype\"&&\"value\"in f&&Pu in f&&!f[Pu]){var P=Dl(m,k);P&&P[Pu]&&(m[k]=f.value,f={configurable:yu in f?f[yu]:P[yu],enumerable:Au in f?f[Au]:P[Au],writable:!1})}return vu(m,k,f)}:vu:function(m,k,f){if(B1(m),k=Zi(k),B1(f),yl)try{return vu(m,k,f)}catch{}if(\"get\"in f||\"set\"in f)throw El(\"Accessors not supported\");return\"value\"in f&&(m[k]=f.value),m}});var S1=F((s6,Gi)=>{var Cl=J2(),wl=Eu(),ql=p1();Gi.exports=Cl?function(d,m,k){return wl.f(d,m,ql(1,k))}:function(d,m,k){return d[m]=k,d}});var Cu=F((a6,xi)=>{var Bl=D2(),Sl=C2(),Du=q1(),Fl=Bl(Function.toString);Sl(Du.inspectSource)||(Du.inspectSource=function(d){return Fl(d)});xi.exports=Du.inspectSource});var en=F((d6,un)=>{var Tl=i2(),Ll=C2(),Ol=Cu(),pi=Tl.WeakMap;un.exports=Ll(pi)&&/native code/.test(Ol(pi))});var on=F((g6,tn)=>{var Il=du(),Rl=gu(),nn=Il(\"keys\");tn.exports=function(d){return nn[d]||(nn[d]=Rl(d))}});var wu=F((h6,ln)=>{ln.exports={}});var gn=F((m6,dn)=>{var Nl=en(),an=i2(),qu=D2(),Vl=Z2(),jl=S1(),Bu=O2(),Su=q1(),_l=on(),Ml=wu(),fn=\"Object already initialized\",Tu=an.TypeError,Ul=an.WeakMap,F1,e1,T1,Jl=function(d){return T1(d)?e1(d):F1(d,{})},Xl=function(d){return function(m){var k;if(!Vl(m)||(k=e1(m)).type!==d)throw Tu(\"Incompatible receiver, \"+d+\" required\");return k}};Nl||Su.state?(I2=Su.state||(Su.state=new Ul),cn=qu(I2.get),Fu=qu(I2.has),sn=qu(I2.set),F1=function(d,m){if(Fu(I2,d))throw new Tu(fn);return m.facade=d,sn(I2,d,m),m},e1=function(d){return cn(I2,d)||{}},T1=function(d){return Fu(I2,d)}):(z2=_l(\"state\"),Ml[z2]=!0,F1=function(d,m){if(Bu(d,z2))throw new Tu(fn);return m.facade=d,jl(d,z2,m),m},e1=function(d){return Bu(d,z2)?d[z2]:{}},T1=function(d){return Bu(d,z2)});var I2,cn,Fu,sn,z2;dn.exports={set:F1,get:e1,has:T1,enforce:Jl,getterFor:Xl}});var bn=F((b6,mn)=>{var Lu=J2(),zl=O2(),hn=Function.prototype,Hl=Lu&&Object.getOwnPropertyDescriptor,Ou=zl(hn,\"name\"),Kl=Ou&&function(){}.name===\"something\",Wl=Ou&&(!Lu||Lu&&Hl(hn,\"name\").configurable);mn.exports={EXISTS:Ou,PROPER:Kl,CONFIGURABLE:Wl}});var yn=F((k6,An)=>{var Yl=i2(),kn=C2(),$l=O2(),rn=S1(),Zl=w1(),Ql=Cu(),vn=gn(),Gl=bn().CONFIGURABLE,xl=vn.get,pl=vn.enforce,u4=String(String).split(\"String\");(An.exports=function(d,m,k,f){var P=f?!!f.unsafe:!1,S=f?!!f.enumerable:!1,q=f?!!f.noTargetGet:!1,T=f&&f.name!==void 0?f.name:m,r;if(kn(k)&&(String(T).slice(0,7)===\"Symbol(\"&&(T=\"[\"+String(T).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!$l(k,\"name\")||Gl&&k.name!==T)&&rn(k,\"name\",T),r=pl(k),r.source||(r.source=u4.join(typeof T==\"string\"?T:\"\"))),d===Yl){S?d[m]=k:Zl(m,k);return}else P?!q&&d[m]&&(S=!0):delete d[m];S?d[m]=k:rn(d,m,k)})(Function.prototype,\"toString\",function(){return kn(this)&&xl(this).source||Ql(this)})});var Iu=F((r6,Pn)=>{var e4=Math.ceil,i4=Math.floor;Pn.exports=function(d){var m=+d;return m!==m||m===0?0:(m>0?i4:e4)(m)}});var Dn=F((v6,En)=>{var n4=Iu(),t4=Math.max,o4=Math.min;En.exports=function(d,m){var k=n4(d);return k<0?t4(k+m,0):o4(k,m)}});var wn=F((A6,Cn)=>{var l4=Iu(),f4=Math.min;Cn.exports=function(d){return d>0?f4(l4(d),9007199254740991):0}});var Bn=F((y6,qn)=>{var c4=wn();qn.exports=function(d){return c4(d.length)}});var Tn=F((P6,Fn)=>{var s4=E1(),a4=Dn(),d4=Bn(),Sn=function(d){return function(m,k,f){var P=s4(m),S=d4(P),q=a4(f,S),T;if(d&&k!=k){for(;S>q;)if(T=P[q++],T!=T)return!0}else for(;S>q;q++)if((d||q in P)&&P[q]===k)return d||q||0;return!d&&-1}};Fn.exports={includes:Sn(!0),indexOf:Sn(!1)}});var In=F((E6,On)=>{var g4=D2(),Ru=O2(),h4=E1(),m4=Tn().indexOf,b4=wu(),Ln=g4([].push);On.exports=function(d,m){var k=h4(d),f=0,P=[],S;for(S in k)!Ru(b4,S)&&Ru(k,S)&&Ln(P,S);for(;m.length>f;)Ru(k,S=m[f++])&&(~m4(P,S)||Ln(P,S));return P}});var Nn=F((D6,Rn)=>{Rn.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var jn=F(Vn=>{var k4=In(),r4=Nn(),v4=r4.concat(\"length\",\"prototype\");Vn.f=Object.getOwnPropertyNames||function(m){return k4(m,v4)}});var Mn=F(_n=>{_n.f=Object.getOwnPropertySymbols});var Jn=F((q6,Un)=>{var A4=D1(),y4=D2(),P4=jn(),E4=Mn(),D4=ru(),C4=y4([].concat);Un.exports=A4(\"Reflect\",\"ownKeys\")||function(m){var k=P4.f(D4(m)),f=E4.f;return f?C4(k,f(m)):k}});var Hn=F((B6,zn)=>{var Xn=O2(),w4=Jn(),q4=ku(),B4=Eu();zn.exports=function(d,m,k){for(var f=w4(m),P=B4.f,S=q4.f,q=0;q{var S4=L2(),F4=C2(),T4=/#|\\.prototype\\./,i1=function(d,m){var k=O4[L4(d)];return k==R4?!0:k==I4?!1:F4(m)?S4(m):!!m},L4=i1.normalize=function(d){return String(d).replace(T4,\".\").toLowerCase()},O4=i1.data={},I4=i1.NATIVE=\"N\",R4=i1.POLYFILL=\"P\";Kn.exports=i1});var $n=F((F6,Yn)=>{var Nu=i2(),N4=ku().f,V4=S1(),j4=yn(),_4=w1(),M4=Hn(),U4=Wn();Yn.exports=function(d,m){var k=d.target,f=d.global,P=d.stat,S,q,T,r,K,Y;if(f?q=Nu:P?q=Nu[k]||_4(k,{}):q=(Nu[k]||{}).prototype,q)for(T in m){if(K=m[T],d.noTargetGet?(Y=N4(q,T),r=Y&&Y.value):r=q[T],S=U4(f?T:k+(P?\".\":\"#\")+T,d.forced),!S&&r!==void 0){if(typeof K==typeof r)continue;M4(K,r)}(d.sham||r&&r.sham)&&V4(K,\"sham\",!0),j4(q,T,K,d)}}});var Zn=F(()=>{var J4=$n(),X4=i2();J4({global:!0},{globalThis:X4})});var Qn=F(()=>{Zn()});var y3=F((R6,k0)=>{Qn();var Mu=Object.defineProperty,z4=Object.getOwnPropertyDescriptor,Uu=Object.getOwnPropertyNames,H4=Object.prototype.hasOwnProperty,xn=(d,m)=>function(){return d&&(m=(0,d[Uu(d)[0]])(d=0)),m},l2=(d,m)=>function(){return m||(0,d[Uu(d)[0]])((m={exports:{}}).exports,m),m.exports},K4=(d,m)=>{for(var k in m)Mu(d,k,{get:m[k],enumerable:!0})},W4=(d,m,k,f)=>{if(m&&typeof m==\"object\"||typeof m==\"function\")for(let P of Uu(m))!H4.call(d,P)&&P!==k&&Mu(d,P,{get:()=>m[P],enumerable:!(f=z4(m,P))||f.enumerable});return d},Y4=d=>W4(Mu({},\"__esModule\",{value:!0}),d),n2=xn({\"\"(){}}),pn=l2({\"src/common/parser-create-error.js\"(d,m){\"use strict\";n2();function k(f,P){let S=new SyntaxError(f+\" (\"+P.start.line+\":\"+P.start.column+\")\");return S.loc=P,S}m.exports=k}}),$4=l2({\"src/utils/try-combinations.js\"(d,m){\"use strict\";n2();function k(){let f;for(var P=arguments.length,S=new Array(P),q=0;q_u,arch:()=>Z4,cpus:()=>f0,default:()=>g0,endianness:()=>e0,freemem:()=>o0,getNetworkInterfaces:()=>d0,hostname:()=>i0,loadavg:()=>n0,networkInterfaces:()=>a0,platform:()=>Q4,release:()=>s0,tmpDir:()=>Vu,tmpdir:()=>ju,totalmem:()=>l0,type:()=>c0,uptime:()=>t0});function e0(){if(typeof L1>\"u\"){var d=new ArrayBuffer(2),m=new Uint8Array(d),k=new Uint16Array(d);if(m[0]=1,m[1]=2,k[0]===258)L1=\"BE\";else if(k[0]===513)L1=\"LE\";else throw new Error(\"unable to figure out endianess\")}return L1}function i0(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function n0(){return[]}function t0(){return 0}function o0(){return Number.MAX_VALUE}function l0(){return Number.MAX_VALUE}function f0(){return[]}function c0(){return\"Browser\"}function s0(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function a0(){}function d0(){}function Z4(){return\"javascript\"}function Q4(){return\"browser\"}function Vu(){return\"/tmp\"}var L1,ju,_u,g0,G4=xn({\"node-modules-polyfills:os\"(){n2(),ju=Vu,_u=`\n`,g0={EOL:_u,tmpdir:ju,tmpDir:Vu,networkInterfaces:a0,getNetworkInterfaces:d0,release:s0,type:c0,cpus:f0,totalmem:l0,freemem:o0,uptime:t0,loadavg:n0,hostname:i0,endianness:e0}}}),x4=l2({\"node-modules-polyfills-commonjs:os\"(d,m){n2();var k=(G4(),Y4(u0));if(k&&k.default){m.exports=k.default;for(let f in k)m.exports[f]=k[f]}else k&&(m.exports=k)}}),p4=l2({\"node_modules/detect-newline/index.js\"(d,m){\"use strict\";n2();var k=f=>{if(typeof f!=\"string\")throw new TypeError(\"Expected a string\");let P=f.match(/(?:\\r?\\n)/g)||[];if(P.length===0)return;let S=P.filter(T=>T===`\\r\n`).length,q=P.length-S;return S>q?`\\r\n`:`\n`};m.exports=k,m.exports.graceful=f=>typeof f==\"string\"&&k(f)||`\n`}}),u3=l2({\"node_modules/jest-docblock/build/index.js\"(d){\"use strict\";n2(),Object.defineProperty(d,\"__esModule\",{value:!0}),d.extract=Z,d.parse=t2,d.parseWithComments=V,d.print=J,d.strip=L;function m(){let I=x4();return m=function(){return I},I}function k(){let I=f(p4());return k=function(){return I},I}function f(I){return I&&I.__esModule?I:{default:I}}var P=/\\*\\/$/,S=/^\\/\\*\\*/,q=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,T=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,r=/^(\\r?\\n)+/,K=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,Y=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,X=/(\\r?\\n|^) *\\* ?/g,p=[];function Z(I){let u2=I.match(q);return u2?u2[0].trimLeft():\"\"}function L(I){let u2=I.match(q);return u2&&u2[0]?I.substring(u2[0].length):I}function t2(I){return V(I).pragmas}function V(I){let u2=(0,k().default)(I)||m().EOL;I=I.replace(S,\"\").replace(P,\"\").replace(X,\"$1\");let m2=\"\";for(;m2!==I;)m2=I,I=I.replace(K,\"\".concat(u2,\"$1 $2\").concat(u2));I=I.replace(r,\"\").trimRight();let c2=Object.create(null),R2=I.replace(Y,\"\").replace(r,\"\").trimRight(),s2;for(;s2=Y.exec(I);){let N2=s2[2].replace(T,\"\");typeof c2[s2[1]]==\"string\"||Array.isArray(c2[s2[1]])?c2[s2[1]]=p.concat(c2[s2[1]],N2):c2[s2[1]]=N2}return{comments:R2,pragmas:c2}}function J(I){let{comments:u2=\"\",pragmas:m2={}}=I,c2=(0,k().default)(u2)||m().EOL,R2=\"/**\",s2=\" *\",N2=\" */\",w2=Object.keys(m2),O1=w2.map(g2=>H(g2,m2[g2])).reduce((g2,n1)=>g2.concat(n1),[]).map(g2=>s2+\" \"+g2+c2).join(\"\");if(!u2){if(w2.length===0)return\"\";if(w2.length===1&&!Array.isArray(m2[w2[0]])){let g2=m2[w2[0]];return\"\".concat(R2,\" \").concat(H(w2[0],g2)[0]).concat(N2)}}let I1=u2.split(c2).map(g2=>\"\".concat(s2,\" \").concat(g2)).join(c2)+c2;return R2+c2+(u2?I1:\"\")+(u2&&w2.length?s2+c2:\"\")+O1+N2}function H(I,u2){return p.concat(u2).map(m2=>\"@\".concat(I,\" \").concat(m2).trim())}}}),e3=l2({\"src/common/end-of-line.js\"(d,m){\"use strict\";n2();function k(q){let T=q.indexOf(\"\\r\");return T>=0?q.charAt(T+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function f(q){switch(q){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function P(q,T){let r;switch(T){case`\n`:r=/\\n/g;break;case\"\\r\":r=/\\r/g;break;case`\\r\n`:r=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(T),\".\"))}let K=q.match(r);return K?K.length:0}function S(q){return q.replace(/\\r\\n?/g,`\n`)}m.exports={guessEndOfLine:k,convertEndOfLineToChars:f,countEndOfLineChars:P,normalizeEndOfLine:S}}}),i3=l2({\"src/language-js/utils/get-shebang.js\"(d,m){\"use strict\";n2();function k(f){if(!f.startsWith(\"#!\"))return\"\";let P=f.indexOf(`\n`);return P===-1?f:f.slice(0,P)}m.exports=k}}),n3=l2({\"src/language-js/pragma.js\"(d,m){\"use strict\";n2();var{parseWithComments:k,strip:f,extract:P,print:S}=u3(),{normalizeEndOfLine:q}=e3(),T=i3();function r(X){let p=T(X);p&&(X=X.slice(p.length+1));let Z=P(X),{pragmas:L,comments:t2}=k(Z);return{shebang:p,text:X,pragmas:L,comments:t2}}function K(X){let p=Object.keys(r(X).pragmas);return p.includes(\"prettier\")||p.includes(\"format\")}function Y(X){let{shebang:p,text:Z,pragmas:L,comments:t2}=r(X),V=f(Z),J=S({pragmas:Object.assign({format:\"\"},L),comments:t2.trimStart()});return(p?\"\".concat(p,`\n`):\"\")+q(J)+(V.startsWith(`\n`)?`\n`:`\n\n`)+V}m.exports={hasPragma:K,insertPragma:Y}}}),t3=l2({\"src/utils/is-non-empty-array.js\"(d,m){\"use strict\";n2();function k(f){return Array.isArray(f)&&f.length>0}m.exports=k}}),h0=l2({\"src/language-js/loc.js\"(d,m){\"use strict\";n2();var k=t3();function f(r,K){let{ignoreDecorators:Y}=K||{};if(!Y){let X=r.declaration&&r.declaration.decorators||r.decorators;if(k(X))return f(X[0])}return r.range?r.range[0]:r.start}function P(r){return r.range?r.range[1]:r.end}function S(r,K){let Y=f(r);return Number.isInteger(Y)&&Y===f(K)}function q(r,K){let Y=P(r);return Number.isInteger(Y)&&Y===P(K)}function T(r,K){return S(r,K)&&q(r,K)}m.exports={locStart:f,locEnd:P,hasSameLocStart:S,hasSameLoc:T}}}),o3=l2({\"src/language-js/parse/utils/create-parser.js\"(d,m){\"use strict\";n2();var{hasPragma:k}=n3(),{locStart:f,locEnd:P}=h0();function S(q){return q=typeof q==\"function\"?{parse:q}:q,Object.assign({astFormat:\"estree\",hasPragma:k,locStart:f,locEnd:P},q)}m.exports=S}}),l3=l2({\"src/language-js/utils/is-ts-keyword-type.js\"(d,m){\"use strict\";n2();function k(f){let{type:P}=f;return P.startsWith(\"TS\")&&P.endsWith(\"Keyword\")}m.exports=k}}),f3=l2({\"src/language-js/utils/is-block-comment.js\"(d,m){\"use strict\";n2();var k=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),f=P=>k.has(P==null?void 0:P.type);m.exports=f}}),c3=l2({\"src/language-js/utils/is-type-cast-comment.js\"(d,m){\"use strict\";n2();var k=f3();function f(P){return k(P)&&P.value[0]===\"*\"&&/@type\\b/.test(P.value)}m.exports=f}}),s3=l2({\"src/utils/get-last.js\"(d,m){\"use strict\";n2();var k=f=>f[f.length-1];m.exports=k}}),m0=l2({\"src/language-js/parse/postprocess/visit-node.js\"(d,m){\"use strict\";n2();function k(f,P){if(Array.isArray(f)){for(let S=0;S{let Z=K.get(p);return!Z||!X.includes(Z)}))&&f(r,\"Leading decorators must be attached to a class declaration\")}function S(T,r){T.kind!==167||T.modifiers&&!T.modifiers.some(X=>X.kind===126)||T.initializer&&r.value===null&&f(r,\"Abstract property cannot have an initializer\")}function q(T,r){let{esTreeNodeToTSNodeMap:K,tsNodeToESTreeNodeMap:Y}=r.tsParseResult;k(T,X=>{let p=K.get(X);if(!p)return;let Z=Y.get(p);Z===X&&(P(p,Z,Y),S(p,Z))})}m.exports={throwErrorForInvalidNodes:q}}}),d3=l2({\"src/language-js/parse/postprocess/index.js\"(d,m){\"use strict\";n2();var{locStart:k,locEnd:f}=h0(),P=l3(),S=c3(),q=s3(),T=m0(),{throwErrorForInvalidNodes:r}=a3(),K=b0();function Y(L,t2){if(t2.parser===\"typescript\"&&/@|abstract/.test(t2.originalText)&&r(L,t2),t2.parser!==\"typescript\"&&t2.parser!==\"flow\"&&t2.parser!==\"acorn\"&&t2.parser!==\"espree\"&&t2.parser!==\"meriyah\"){let J=new Set;L=T(L,H=>{H.leadingComments&&H.leadingComments.some(S)&&J.add(k(H))}),L=T(L,H=>{if(H.type===\"ParenthesizedExpression\"){let{expression:I}=H;if(I.type===\"TypeCastExpression\")return I.range=H.range,I;let u2=k(H);if(!J.has(u2))return I.extra=Object.assign(Object.assign({},I.extra),{},{parenthesized:!0}),I}})}return L=T(L,J=>{switch(J.type){case\"ChainExpression\":return X(J.expression);case\"LogicalExpression\":{if(p(J))return Z(J);break}case\"VariableDeclaration\":{let H=q(J.declarations);H&&H.init&&V(J,H);break}case\"TSParenthesizedType\":return P(J.typeAnnotation)||J.typeAnnotation.type===\"TSThisType\"||(J.typeAnnotation.range=[k(J),f(J)]),J.typeAnnotation;case\"TSTypeParameter\":if(typeof J.name==\"string\"){let H=k(J);J.name={type:\"Identifier\",name:J.name,range:[H,H+J.name.length]}}break;case\"ObjectExpression\":if(t2.parser===\"typescript\"){let H=J.properties.find(I=>I.type===\"Property\"&&I.value.type===\"TSEmptyBodyFunctionExpression\");H&&K(H.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let H=q(J.expressions);J.range=[k(J),Math.min(f(H),f(J))];break}case\"TopicReference\":t2.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:H}=J;if(t2.parser===\"meriyah\"&&H&&H.type===\"Identifier\"){let I=t2.originalText.slice(k(H),f(H));(I.startsWith('\"')||I.startsWith(\"'\"))&&(J.exported=Object.assign(Object.assign({},J.exported),{},{type:\"Literal\",value:J.exported.name,raw:I}))}break}}}),L;function V(J,H){t2.originalText[f(H)]!==\";\"&&(J.range=[k(J),f(H)])}}function X(L){switch(L.type){case\"CallExpression\":L.type=\"OptionalCallExpression\",L.callee=X(L.callee);break;case\"MemberExpression\":L.type=\"OptionalMemberExpression\",L.object=X(L.object);break;case\"TSNonNullExpression\":L.expression=X(L.expression);break}return L}function p(L){return L.type===\"LogicalExpression\"&&L.right.type===\"LogicalExpression\"&&L.operator===L.right.operator}function Z(L){return p(L)?Z({type:\"LogicalExpression\",operator:L.operator,left:Z({type:\"LogicalExpression\",operator:L.operator,left:L.left,right:L.right.left,range:[k(L.left),f(L.right.left)]}),right:L.right.right,range:[k(L),f(L)]}):L}m.exports=Y}}),g3=l2({\"node_modules/meriyah/dist/meriyah.cjs\"(d){\"use strict\";n2(),Object.defineProperty(d,\"__esModule\",{value:!0});var m={[0]:\"Unexpected token\",[28]:\"Unexpected token: '%0'\",[1]:\"Octal escape sequences are not allowed in strict mode\",[2]:\"Octal escape sequences are not allowed in template strings\",[3]:\"Unexpected token `#`\",[4]:\"Illegal Unicode escape sequence\",[5]:\"Invalid code point %0\",[6]:\"Invalid hexadecimal escape sequence\",[8]:\"Octal literals are not allowed in strict mode\",[7]:\"Decimal integer literals with a leading zero are forbidden in strict mode\",[9]:\"Expected number in radix %0\",[145]:\"Invalid left-hand side assignment to a destructible right-hand side\",[10]:\"Non-number found after exponent indicator\",[11]:\"Invalid BigIntLiteral\",[12]:\"No identifiers allowed directly after numeric literal\",[13]:\"Escapes \\\\8 or \\\\9 are not syntactically valid escapes\",[14]:\"Unterminated string literal\",[15]:\"Unterminated template literal\",[16]:\"Multiline comment was not closed properly\",[17]:\"The identifier contained dynamic unicode escape that was not closed\",[18]:\"Illegal character '%0'\",[19]:\"Missing hexadecimal digits\",[20]:\"Invalid implicit octal\",[21]:\"Invalid line break in string literal\",[22]:\"Only unicode escapes are legal in identifier names\",[23]:\"Expected '%0'\",[24]:\"Invalid left-hand side in assignment\",[25]:\"Invalid left-hand side in async arrow\",[26]:'Calls to super must be in the \"constructor\" method of a class expression or class declaration that has a superclass',[27]:\"Member access on super must be in a method\",[29]:\"Await expression not allowed in formal parameter\",[30]:\"Yield expression not allowed in formal parameter\",[92]:\"Unexpected token: 'escaped keyword'\",[31]:\"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses\",[119]:\"Async functions can only be declared at the top level or inside a block\",[32]:\"Unterminated regular expression\",[33]:\"Unexpected regular expression flag\",[34]:\"Duplicate regular expression flag '%0'\",[35]:\"%0 functions must have exactly %1 argument%2\",[36]:\"Setter function argument must not be a rest parameter\",[37]:\"%0 declaration must have a name in this context\",[38]:\"Function name may not contain any reserved words or be eval or arguments in strict mode\",[39]:\"The rest operator is missing an argument\",[40]:\"A getter cannot be a generator\",[41]:\"A computed property name must be followed by a colon or paren\",[130]:\"Object literal keys that are strings or numbers must be a method or have a colon\",[43]:\"Found `* async x(){}` but this should be `async * x(){}`\",[42]:\"Getters and setters can not be generators\",[44]:\"'%0' can not be generator method\",[45]:\"No line break is allowed after '=>'\",[46]:\"The left-hand side of the arrow can only be destructed through assignment\",[47]:\"The binding declaration is not destructible\",[48]:\"Async arrow can not be followed by new expression\",[49]:\"Classes may not have a static property named 'prototype'\",[50]:\"Class constructor may not be a %0\",[51]:\"Duplicate constructor method in class\",[52]:\"Invalid increment/decrement operand\",[53]:\"Invalid use of `new` keyword on an increment/decrement expression\",[54]:\"`=>` is an invalid assignment target\",[55]:\"Rest element may not have a trailing comma\",[56]:\"Missing initializer in %0 declaration\",[57]:\"'for-%0' loop head declarations can not have an initializer\",[58]:\"Invalid left-hand side in for-%0 loop: Must have a single binding\",[59]:\"Invalid shorthand property initializer\",[60]:\"Property name __proto__ appears more than once in object literal\",[61]:\"Let is disallowed as a lexically bound name\",[62]:\"Invalid use of '%0' inside new expression\",[63]:\"Illegal 'use strict' directive in function with non-simple parameter list\",[64]:'Identifier \"let\" disallowed as left-hand side expression in strict mode',[65]:\"Illegal continue statement\",[66]:\"Illegal break statement\",[67]:\"Cannot have `let[...]` as a var name in strict mode\",[68]:\"Invalid destructuring assignment target\",[69]:\"Rest parameter may not have a default initializer\",[70]:\"The rest argument must the be last parameter\",[71]:\"Invalid rest argument\",[73]:\"In strict mode code, functions can only be declared at top level or inside a block\",[74]:\"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",[75]:\"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement\",[76]:\"Class declaration can't appear in single-statement context\",[77]:\"Invalid left-hand side in for-%0\",[78]:\"Invalid assignment in for-%0\",[79]:\"for await (... of ...) is only valid in async functions and async generators\",[80]:\"The first token after the template expression should be a continuation of the template\",[82]:\"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode\",[81]:\"`let \\n [` is a restricted production at the start of a statement\",[83]:\"Catch clause requires exactly one parameter, not more (and no trailing comma)\",[84]:\"Catch clause parameter does not support default values\",[85]:\"Missing catch or finally after try\",[86]:\"More than one default clause in switch statement\",[87]:\"Illegal newline after throw\",[88]:\"Strict mode code may not include a with statement\",[89]:\"Illegal return statement\",[90]:\"The left hand side of the for-header binding declaration is not destructible\",[91]:\"new.target only allowed within functions\",[93]:\"'#' not followed by identifier\",[99]:\"Invalid keyword\",[98]:\"Can not use 'let' as a class name\",[97]:\"'A lexical declaration can't define a 'let' binding\",[96]:\"Can not use `let` as variable name in strict mode\",[94]:\"'%0' may not be used as an identifier in this context\",[95]:\"Await is only valid in async functions\",[100]:\"The %0 keyword can only be used with the module goal\",[101]:\"Unicode codepoint must not be greater than 0x10FFFF\",[102]:\"%0 source must be string\",[103]:\"Only a identifier can be used to indicate alias\",[104]:\"Only '*' or '{...}' can be imported after default\",[105]:\"Trailing decorator may be followed by method\",[106]:\"Decorators can't be used with a constructor\",[108]:\"HTML comments are only allowed with web compatibility (Annex B)\",[109]:\"The identifier 'let' must not be in expression position in strict mode\",[110]:\"Cannot assign to `eval` and `arguments` in strict mode\",[111]:\"The left-hand side of a for-of loop may not start with 'let'\",[112]:\"Block body arrows can not be immediately invoked without a group\",[113]:\"Block body arrows can not be immediately accessed without a group\",[114]:\"Unexpected strict mode reserved word\",[115]:\"Unexpected eval or arguments in strict mode\",[116]:\"Decorators must not be followed by a semicolon\",[117]:\"Calling delete on expression not allowed in strict mode\",[118]:\"Pattern can not have a tail\",[120]:\"Can not have a `yield` expression on the left side of a ternary\",[121]:\"An arrow function can not have a postfix update operator\",[122]:\"Invalid object literal key character after generator star\",[123]:\"Private fields can not be deleted\",[125]:\"Classes may not have a field called constructor\",[124]:\"Classes may not have a private element named constructor\",[126]:\"A class field initializer may not contain arguments\",[127]:\"Generators can only be declared at the top level or inside a block\",[128]:\"Async methods are a restricted production and cannot have a newline following it\",[129]:\"Unexpected character after object literal property name\",[131]:\"Invalid key token\",[132]:\"Label '%0' has already been declared\",[133]:\"continue statement must be nested within an iteration statement\",[134]:\"Undefined label '%0'\",[135]:\"Trailing comma is disallowed inside import(...) arguments\",[136]:\"import() requires exactly one argument\",[137]:\"Cannot use new with import(...)\",[138]:\"... is not allowed in import()\",[139]:\"Expected '=>'\",[140]:\"Duplicate binding '%0'\",[141]:\"Cannot export a duplicate name '%0'\",[144]:\"Duplicate %0 for-binding\",[142]:\"Exported binding '%0' needs to refer to a top-level declared variable\",[143]:\"Unexpected private field\",[147]:\"Numeric separators are not allowed at the end of numeric literals\",[146]:\"Only one underscore is allowed as numeric separator\",[148]:\"JSX value should be either an expression or a quoted JSX text\",[149]:\"Expected corresponding JSX closing tag for %0\",[150]:\"Adjacent JSX elements must be wrapped in an enclosing tag\",[151]:\"JSX attributes must only be assigned a non-empty 'expression'\",[152]:\"'%0' has already been declared\",[153]:\"'%0' shadowed a catch clause binding\",[154]:\"Dot property must be an identifier\",[155]:\"Encountered invalid input after spread/rest argument\",[156]:\"Catch without try\",[157]:\"Finally without try\",[158]:\"Expected corresponding closing tag for JSX fragment\",[159]:\"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses\",[160]:\"Invalid tagged template on optional chain\",[161]:\"Invalid optional chain from super property\",[162]:\"Invalid optional chain from new expression\",[163]:'Cannot use \"import.meta\" outside a module',[164]:\"Leading decorators must be attached to a class declaration\"},k=class extends SyntaxError{constructor(u,e,i,n){for(var t=arguments.length,o=new Array(t>4?t-4:0),l=4;lo[h]);super(\"\".concat(c)),this.index=u,this.line=e,this.column=i,this.description=c,this.loc={line:e,column:i}}};function f(u,e){for(var i=arguments.length,n=new Array(i>2?i-2:0),t=2;t4?t-4:0),l=4;l{let i=new Uint32Array(104448),n=0,t=0;for(;n<3540;){let o=u[n++];if(o<0)t-=o;else{let l=u[n++];o&2&&(l=e[l]),o&1?i.fill(l,t,t+=u[n++]):i[t++]=l}}return i})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function r(u){return u.column++,u.currentChar=u.source.charCodeAt(++u.index)}function K(u,e){if((e&64512)!==55296)return 0;let i=u.source.charCodeAt(u.index+1);return(i&64512)!==56320?0:(e=u.currentChar=65536+((e&1023)<<10)+(i&1023),(T[(e>>>5)+0]>>>e&31&1)===0&&f(u,18,Z(e)),u.index++,u.column++,1)}function Y(u,e){u.currentChar=u.source.charCodeAt(++u.index),u.flags|=1,(e&4)===0&&(u.column=0,u.line++)}function X(u){u.flags|=1,u.currentChar=u.source.charCodeAt(++u.index),u.column=0,u.line++}function p(u){return u===160||u===65279||u===133||u===5760||u>=8192&&u<=8203||u===8239||u===8287||u===12288||u===8201||u===65519}function Z(u){return u<=65535?String.fromCharCode(u):String.fromCharCode(u>>>10)+String.fromCharCode(u&1023)}function L(u){return u<65?u-48:u-65+10&15}function t2(u){switch(u){case 134283266:return\"NumericLiteral\";case 134283267:return\"StringLiteral\";case 86021:case 86022:return\"BooleanLiteral\";case 86023:return\"NullLiteral\";case 65540:return\"RegularExpression\";case 67174408:case 67174409:case 132:return\"TemplateLiteral\";default:return(u&143360)===143360?\"Identifier\":(u&4096)===4096?\"Keyword\":\"Punctuator\"}}var V=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],J=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],H=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function I(u){return u<=127?J[u]:T[(u>>>5)+34816]>>>u&31&1}function u2(u){return u<=127?H[u]:T[(u>>>5)+0]>>>u&31&1||u===8204||u===8205}var m2=[\"SingleLine\",\"MultiLine\",\"HTMLOpen\",\"HTMLClose\",\"HashbangComment\"];function c2(u){let e=u.source;u.currentChar===35&&e.charCodeAt(u.index+1)===33&&(r(u),r(u),s2(u,e,0,4,u.tokenPos,u.linePos,u.colPos))}function R2(u,e,i,n,t,o,l,c){return n&2048&&f(u,0),s2(u,e,i,t,o,l,c)}function s2(u,e,i,n,t,o,l){let{index:c}=u;for(u.tokenPos=u.index,u.linePos=u.line,u.colPos=u.column;u.index=u.source.length)return f(u,32)}let t=u.index-1,o=0,l=u.currentChar,{index:c}=u;for(;u2(l);){switch(l){case 103:o&2&&f(u,34,\"g\"),o|=2;break;case 105:o&1&&f(u,34,\"i\"),o|=1;break;case 109:o&4&&f(u,34,\"m\"),o|=4;break;case 117:o&16&&f(u,34,\"g\"),o|=16;break;case 121:o&8&&f(u,34,\"y\"),o|=8;break;case 115:o&32&&f(u,34,\"s\"),o|=32;break;default:f(u,33)}l=r(u)}let s=u.source.slice(c,u.index),h=u.source.slice(i,t);return u.tokenRegExp={pattern:h,flags:s},e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),u.tokenValue=O1(u,h,s),65540}function O1(u,e,i){try{return new RegExp(e,i)}catch{f(u,32)}}function I1(u,e,i){let{index:n}=u,t=\"\",o=r(u),l=u.index;for(;(V[o]&8)===0;){if(o===i)return t+=u.source.slice(l,u.index),r(u),e&512&&(u.tokenRaw=u.source.slice(n,u.index)),u.tokenValue=t,134283267;if((o&8)===8&&o===92){if(t+=u.source.slice(l,u.index),o=r(u),o<127||o===8232||o===8233){let c=g2(u,e,o);c>=0?t+=Z(c):n1(u,c,0)}else t+=Z(o);l=u.index+1}u.index>=u.end&&f(u,14),o=r(u)}f(u,14)}function g2(u,e,i){switch(i){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(u.index1114111)return-5;return u.currentChar<1||u.currentChar!==125?-4:t}else{if((V[n]&64)===0)return-4;let t=u.source.charCodeAt(u.index+1);if((V[t]&64)===0)return-4;let o=u.source.charCodeAt(u.index+2);if((V[o]&64)===0)return-4;let l=u.source.charCodeAt(u.index+3);return(V[l]&64)===0?-4:(u.index+=3,u.column+=3,u.currentChar=u.source.charCodeAt(u.index),L(n)<<12|L(t)<<8|L(o)<<4|L(l))}}case 56:case 57:if((e&256)===0)return-3;default:return i}}function n1(u,e,i){switch(e){case-1:return;case-2:f(u,i?2:1);case-3:f(u,13);case-4:f(u,6);case-5:f(u,101)}}function Ju(u,e){let{index:i}=u,n=67174409,t=\"\",o=r(u);for(;o!==96;){if(o===36&&u.source.charCodeAt(u.index+1)===123){r(u),n=67174408;break}else if((o&8)===8&&o===92)if(o=r(u),o>126)t+=Z(o);else{let l=g2(u,e|1024,o);if(l>=0)t+=Z(l);else if(l!==-1&&e&65536){t=void 0,o=r0(u,o),o<0&&(n=67174408);break}else n1(u,l,1)}else u.index=u.end&&f(u,15),o=r(u)}return r(u),u.tokenValue=t,u.tokenRaw=u.source.slice(i+1,u.index-(n===67174409?1:2)),n}function r0(u,e){for(;e!==96;){switch(e){case 36:{let i=u.index+1;if(i=u.end&&f(u,15),e=r(u)}return e}function v0(u,e){return u.index>=u.end&&f(u,0),u.index--,u.column--,Ju(u,e)}function Xu(u,e,i){let n=u.currentChar,t=0,o=9,l=i&64?0:1,c=0,s=0;if(i&64)t=\".\"+t1(u,n),n=u.currentChar,n===110&&f(u,11);else{if(n===48)if(n=r(u),(n|32)===120){for(i=136,n=r(u);V[n]&4160;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*16+L(n),c++,n=r(u)}(c<1||!s)&&f(u,c<1?19:147)}else if((n|32)===111){for(i=132,n=r(u);V[n]&4128;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*8+(n-48),c++,n=r(u)}(c<1||!s)&&f(u,c<1?0:147)}else if((n|32)===98){for(i=130,n=r(u);V[n]&4224;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*2+(n-48),c++,n=r(u)}(c<1||!s)&&f(u,c<1?0:147)}else if(V[n]&32)for(e&1024&&f(u,1),i=1;V[n]&16;){if(V[n]&512){i=32,l=0;break}t=t*8+(n-48),n=r(u)}else V[n]&512?(e&1024&&f(u,1),u.flags|=64,i=32):n===95&&f(u,0);if(i&48){if(l){for(;o>=0&&V[n]&4112;){if(n===95){n=r(u),(n===95||i&32)&&q(u.index,u.line,u.index+1,146),s=1;continue}s=0,t=10*t+(n-48),n=r(u),--o}if(s&&q(u.index,u.line,u.index+1,147),o>=0&&!I(n)&&n!==46)return u.tokenValue=t,e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283266}t+=t1(u,n),n=u.currentChar,n===46&&(r(u)===95&&f(u,0),i=64,t+=\".\"+t1(u,u.currentChar),n=u.currentChar)}}let h=u.index,b=0;if(n===110&&i&128)b=1,n=r(u);else if((n|32)===101){n=r(u),V[n]&256&&(n=r(u));let{index:g}=u;(V[n]&16)<1&&f(u,10),t+=u.source.substring(h,g)+t1(u,n),n=u.currentChar}return(u.index\",\"(\",\"{\",\".\",\"...\",\"}\",\")\",\";\",\",\",\"[\",\"]\",\":\",\"?\",\"'\",'\"',\"\",\"++\",\"--\",\"=\",\"<<=\",\">>=\",\">>>=\",\"**=\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"^=\",\"|=\",\"&=\",\"||=\",\"&&=\",\"??=\",\"typeof\",\"delete\",\"void\",\"!\",\"~\",\"+\",\"-\",\"in\",\"instanceof\",\"*\",\"%\",\"/\",\"**\",\"&&\",\"||\",\"===\",\"!==\",\"==\",\"!=\",\"<=\",\">=\",\"<\",\">\",\"<<\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"var\",\"let\",\"const\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"export\",\"extends\",\"finally\",\"for\",\"function\",\"if\",\"import\",\"new\",\"return\",\"super\",\"switch\",\"this\",\"throw\",\"try\",\"while\",\"with\",\"implements\",\"interface\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\",\"as\",\"async\",\"await\",\"constructor\",\"get\",\"set\",\"from\",\"of\",\"enum\",\"eval\",\"arguments\",\"escaped keyword\",\"escaped future reserved keyword\",\"reserved if strict\",\"#\",\"BigIntLiteral\",\"??\",\"?.\",\"WhiteSpace\",\"Illegal\",\"LineTerminator\",\"PrivateField\",\"Template\",\"@\",\"target\",\"meta\",\"LineFeed\",\"Escaped\",\"JSXText\"],zu=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function Hu(u,e,i){for(;H[r(u)];);return u.tokenValue=u.source.slice(u.tokenPos,u.index),u.currentChar!==92&&u.currentChar<126?zu[u.tokenValue]||208897:R1(u,e,0,i)}function A0(u,e){let i=Ku(u);return u2(i)||f(u,4),u.tokenValue=Z(i),R1(u,e,1,V[i]&4)}function R1(u,e,i,n){let t=u.index;for(;u.index=2&&o<=11){let l=zu[u.tokenValue];return l===void 0?208897:i?e&1024?l===209008&&(e&4196352)===0?l:l===36972||(l&36864)===36864?122:121:e&1073741824&&(e&8192)===0&&(l&20480)===20480?l:l===241773?e&1073741824?143483:e&2097152?121:l:l===209007&&e&1073741824?143483:(l&36864)===36864||l===209008&&(e&4194304)===0?l:121:l}return 208897}function y0(u){return I(r(u))||f(u,93),131}function Ku(u){return u.source.charCodeAt(u.index+1)!==117&&f(u,4),u.currentChar=u.source.charCodeAt(u.index+=2),P0(u)}function P0(u){let e=0,i=u.currentChar;if(i===123){let l=u.index-2;for(;V[r(u)]&64;)e=e<<4|L(u.currentChar),e>1114111&&q(l,u.line,u.index+1,101);return u.currentChar!==125&&q(l,u.line,u.index-1,6),r(u),e}(V[i]&64)===0&&f(u,6);let n=u.source.charCodeAt(u.index+1);(V[n]&64)===0&&f(u,6);let t=u.source.charCodeAt(u.index+2);(V[t]&64)===0&&f(u,6);let o=u.source.charCodeAt(u.index+3);return(V[o]&64)===0&&f(u,6),e=L(i)<<12|L(n)<<8|L(t)<<4|L(o),u.currentChar=u.source.charCodeAt(u.index+=4),e}var Wu=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function E(u,e){if(u.flags=(u.flags|1)^1,u.startPos=u.index,u.startColumn=u.column,u.startLine=u.line,u.token=Yu(u,e,0),u.onToken&&u.token!==1048576){let i={start:{line:u.linePos,column:u.colPos},end:{line:u.line,column:u.column}};u.onToken(t2(u.token),u.tokenPos,u.index,i)}}function Yu(u,e,i){let n=u.index===0,t=u.source,o=u.index,l=u.line,c=u.column;for(;u.index=u.end)return 8457014;let a=u.currentChar;return a===61?(r(u),4194340):a!==42?8457014:r(u)!==61?8457273:(r(u),4194337)}case 8455497:return r(u)!==61?8455497:(r(u),4194343);case 25233970:{r(u);let a=u.currentChar;return a===43?(r(u),33619995):a===61?(r(u),4194338):25233970}case 25233971:{r(u);let a=u.currentChar;if(a===45){if(r(u),(i&1||n)&&u.currentChar===62){(e&256)===0&&f(u,108),r(u),i=R2(u,t,i,e,3,o,l,c),o=u.tokenPos,l=u.linePos,c=u.colPos;continue}return 33619996}return a===61?(r(u),4194339):25233971}case 8457016:{if(r(u),u.index=48&&g<=57)return Xu(u,e,80);if(g===46){let a=u.index+1;if(a=48&&a<=57)))return r(u),67108991}return 22}}}else{if((s^8232)<=1){i=i&-5|1,X(u);continue}if((s&64512)===55296||(T[(s>>>5)+34816]>>>s&31&1)!==0)return(s&64512)===56320&&(s=(s&1023)<<10|s&1023|65536,(T[(s>>>5)+0]>>>s&31&1)===0&&f(u,18,Z(s)),u.index++,u.currentChar=s),u.column++,u.tokenValue=\"\",R1(u,e,0,0);if(p(s)){r(u);continue}f(u,18,Z(s))}}return 1048576}var E0={AElig:\"\\xC6\",AMP:\"&\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",Aring:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",Bscr:\"\\u212C\",Bumpeq:\"\\u224E\",CHcy:\"\\u0427\",COPY:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",Cayleys:\"\\u212D\",Ccaron:\"\\u010C\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",CenterDot:\"\\xB7\",Cfr:\"\\u212D\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",Colon:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",Copf:\"\\u2102\",Coproduct:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",DD:\"\\u2145\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",Diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",Downarrow:\"\\u21D3\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ETH:\"\\xD0\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrave:\"\\xC8\",Element:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",Equilibrium:\"\\u21CC\",Escr:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Euml:\"\\xCB\",Exists:\"\\u2203\",ExponentialE:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",GT:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",Hopf:\"\\u210D\",HorizontalLine:\"\\u2500\",Hscr:\"\\u210B\",Hstrok:\"\\u0126\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Igrave:\"\\xCC\",Im:\"\\u2111\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",Implies:\"\\u21D2\",Int:\"\\u222C\",Integral:\"\\u222B\",Intersection:\"\\u22C2\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",LT:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Larr:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",LeftArrow:\"\\u2190\",LeftArrowBar:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",LeftVectorBar:\"\\u2952\",Leftarrow:\"\\u21D0\",Leftrightarrow:\"\\u21D4\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",LongRightArrow:\"\\u27F6\",Longleftarrow:\"\\u27F8\",Longleftrightarrow:\"\\u27FA\",Longrightarrow:\"\\u27F9\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",Lscr:\"\\u2112\",Lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",Mopf:\"\\u{1D544}\",Mscr:\"\\u2133\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangle:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",Poincareplane:\"\\u210C\",Popf:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",Proportion:\"\\u2237\",Proportional:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUOT:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",REG:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",Rfr:\"\\u211C\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",RightArrow:\"\\u2192\",RightArrowBar:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",RightTee:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",RightVectorBar:\"\\u2953\",Rightarrow:\"\\u21D2\",Ropf:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",Rscr:\"\\u211B\",Rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",SuchThat:\"\\u220B\",Sum:\"\\u2211\",Sup:\"\\u22D1\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",Supset:\"\\u22D1\",THORN:\"\\xDE\",TRADE:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrow:\"\\u2191\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",UpDownArrow:\"\\u2195\",UpEquilibrium:\"\\u296E\",UpTee:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",Uparrow:\"\\u21D1\",Updownarrow:\"\\u21D5\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",Upsi:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acirc:\"\\xE2\",acute:\"\\xB4\",acy:\"\\u0430\",aelig:\"\\xE6\",af:\"\\u2061\",afr:\"\\u{1D51E}\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",amp:\"&\",and:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsd:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",ap:\"\\u2248\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",approx:\"\\u2248\",approxeq:\"\\u224A\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",atilde:\"\\xE3\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxh:\"\\u2500\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",bprime:\"\\u2035\",breve:\"\\u02D8\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cedil:\"\\xB8\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",centerdot:\"\\xB7\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledR:\"\\xAE\",circledS:\"\\u24C8\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",conint:\"\\u222E\",copf:\"\\u{1D554}\",coprod:\"\\u2210\",copy:\"\\xA9\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dArr:\"\\u21D3\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",darr:\"\\u2193\",dash:\"\\u2010\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",dcaron:\"\\u010F\",dcy:\"\\u0434\",dd:\"\\u2146\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",ddotseq:\"\\u2A77\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",diam:\"\\u22C4\",diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",dot:\"\\u02D9\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",downarrow:\"\\u2193\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eDDot:\"\\u2A77\",eDot:\"\\u2251\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\u2256\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",ee:\"\\u2147\",efDot:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",equals:\"=\",equest:\"\\u225F\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",esdot:\"\\u2250\",esim:\"\\u2242\",eta:\"\\u03B7\",eth:\"\\xF0\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",fallingdotseq:\"\\u2252\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gammad:\"\\u03DD\",gap:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",ge:\"\\u2265\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",ggg:\"\\u22D9\",gimel:\"\\u2137\",gjcy:\"\\u0453\",gl:\"\\u2277\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",grave:\"`\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gt:\">\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hArr:\"\\u21D4\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",hardcy:\"\\u044A\",harr:\"\\u2194\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",hbar:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hslash:\"\\u210F\",hstrok:\"\\u0127\",hybull:\"\\u2043\",hyphen:\"\\u2010\",iacute:\"\\xED\",ic:\"\\u2063\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",image:\"\\u2111\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",in:\"\\u2208\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",int:\"\\u222B\",intcal:\"\\u22BA\",integers:\"\\u2124\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isin:\"\\u2208\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",itilde:\"\\u0129\",iukcy:\"\\u0456\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",lArr:\"\\u21D0\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lE:\"\\u2266\",lEg:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",lambda:\"\\u03BB\",lang:\"\\u27E8\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",laquo:\"\\xAB\",larr:\"\\u2190\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leftarrow:\"\\u2190\",leftarrowtail:\"\\u21A2\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",leftthreetimes:\"\\u22CB\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",lessgtr:\"\\u2276\",lesssim:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",ll:\"\\u226A\",llarr:\"\\u21C7\",llcorner:\"\\u231E\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",longleftrightarrow:\"\\u27F7\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",lstrok:\"\\u0142\",lt:\"<\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",measuredangle:\"\\u2221\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",mid:\"\\u2223\",midast:\"*\",midcir:\"\\u2AF0\",middot:\"\\xB7\",minus:\"\\u2212\",minusb:\"\\u229F\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",mstpos:\"\\u223E\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nGtv:\"\\u226B\\u0338\",nLeftarrow:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nLtv:\"\\u226A\\u0338\",nRightarrow:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nabla:\"\\u2207\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natur:\"\\u266E\",natural:\"\\u266E\",naturals:\"\\u2115\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",ne:\"\\u2260\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nearr:\"\\u2197\",nearrow:\"\\u2197\",nedot:\"\\u2250\\u0338\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",nexist:\"\\u2204\",nexists:\"\\u2204\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",ngsim:\"\\u2275\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nhArr:\"\\u21CE\",nharr:\"\\u21AE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",njcy:\"\\u045A\",nlArr:\"\\u21CD\",nlE:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nldr:\"\\u2025\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nleftrightarrow:\"\\u21AE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nlsim:\"\\u2274\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nmid:\"\\u2224\",nopf:\"\\u{1D55F}\",not:\"\\xAC\",notin:\"\\u2209\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",npar:\"\\u2226\",nparallel:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",npre:\"\\u2AAF\\u0338\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",nrArr:\"\\u21CF\",nrarr:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",oS:\"\\u24C8\",oacute:\"\\xF3\",oast:\"\\u229B\",ocir:\"\\u229A\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odash:\"\\u229D\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",oplus:\"\\u2295\",or:\"\\u2228\",orarr:\"\\u21BB\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oscr:\"\\u2134\",oslash:\"\\xF8\",osol:\"\\u2298\",otilde:\"\\xF5\",otimes:\"\\u2297\",otimesas:\"\\u2A36\",ouml:\"\\xF6\",ovbar:\"\\u233D\",par:\"\\u2225\",para:\"\\xB6\",parallel:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plus:\"+\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",pound:\"\\xA3\",pr:\"\\u227A\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",prcue:\"\\u227C\",pre:\"\\u2AAF\",prec:\"\\u227A\",precapprox:\"\\u2AB7\",preccurlyeq:\"\\u227C\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",precsim:\"\\u227E\",prime:\"\\u2032\",primes:\"\\u2119\",prnE:\"\\u2AB5\",prnap:\"\\u2AB9\",prnsim:\"\\u22E8\",prod:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quot:'\"',rAarr:\"\\u21DB\",rArr:\"\\u21D2\",rAtail:\"\\u291C\",rBarr:\"\\u290F\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raquo:\"\\xBB\",rarr:\"\\u2192\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",rect:\"\\u25AD\",reg:\"\\xAE\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",rightarrow:\"\\u2192\",rightarrowtail:\"\\u21A3\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",rightthreetimes:\"\\u22CC\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",sbquo:\"\\u201A\",sc:\"\\u227B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",scaron:\"\\u0161\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",scnap:\"\\u2ABA\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdotb:\"\\u22A1\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",searhk:\"\\u2925\",searr:\"\\u2198\",searrow:\"\\u2198\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",squ:\"\\u25A1\",square:\"\\u25A1\",squarf:\"\\u25AA\",squf:\"\\u25AA\",srarr:\"\\u2192\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",subE:\"\\u2AC5\",subdot:\"\\u2ABD\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succ:\"\\u227B\",succapprox:\"\\u2AB8\",succcurlyeq:\"\\u227D\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",sum:\"\\u2211\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",sup:\"\\u2283\",supE:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supe:\"\\u2287\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",thorn:\"\\xFE\",tilde:\"\\u02DC\",times:\"\\xD7\",timesb:\"\\u22A0\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",top:\"\\u22A4\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",uArr:\"\\u21D1\",uHar:\"\\u2963\",uacute:\"\\xFA\",uarr:\"\\u2191\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udarr:\"\\u21C5\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrave:\"\\xF9\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",uml:\"\\xA8\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",uparrow:\"\\u2191\",updownarrow:\"\\u2195\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",upsi:\"\\u03C5\",upsih:\"\\u03D2\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vArr:\"\\u21D5\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vDash:\"\\u22A8\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vee:\"\\u2228\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",vert:\"|\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",xfr:\"\\u{1D535}\",xhArr:\"\\u27FA\",xharr:\"\\u27F7\",xi:\"\\u03BE\",xlArr:\"\\u27F8\",xlarr:\"\\u27F5\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrArr:\"\\u27F9\",xrarr:\"\\u27F6\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},$u={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function D0(u){return u.replace(/&(?:[a-zA-Z]+|#[xX][\\da-fA-F]+|#\\d+);/g,e=>{if(e.charAt(1)===\"#\"){let i=e.charAt(2),n=i===\"X\"||i===\"x\"?parseInt(e.slice(3),16):parseInt(e.slice(2),10);return C0(n)}return E0[e.slice(1,-1)]||e})}function C0(u){return u>=55296&&u<=57343||u>1114111?\"\\uFFFD\":(u in $u&&(u=$u[u]),String.fromCodePoint(u))}function w0(u,e){return u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.token=V[u.currentChar]&8192?q0(u,e):Yu(u,e,0),u.token}function q0(u,e){let i=u.currentChar,n=r(u),t=u.index;for(;n!==i;)u.index>=u.end&&f(u,14),n=r(u);return n!==i&&f(u,14),u.tokenValue=u.source.slice(t,u.index),r(u),e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283267}function V2(u,e){if(u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.index>=u.end)return u.token=1048576;switch(Wu[u.source.charCodeAt(u.index)]){case 8456258:{r(u),u.currentChar===47?(r(u),u.token=25):u.token=8456258;break}case 2162700:{r(u),u.token=2162700;break}default:{let n=0;for(;u.index2?o-2:0),c=2;c1&&t&32&&u.token&262144&&f(u,58,G[u.token&255]),l}function ne(u,e,i,n,t){let{token:o,tokenPos:l,linePos:c,colPos:s}=u,h=null,b=Ae(u,e,i,n,t,l,c,s);return u.token===1077936157?(E(u,e|32768),h=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),(t&32||(o&2097152)<1)&&(u.token===274549||u.token===8738868&&(o&2097152||(n&4)<1||e&1024))&&S(l,u.line,u.index-3,57,u.token===274549?\"of\":\"in\")):(n&16||(o&2097152)>0)&&(u.token&262144)!==262144&&f(u,56,n&16?\"const\":\"destructuring\"),v(u,e,l,c,s,{type:\"VariableDeclarator\",id:b,init:h})}function G0(u,e,i,n,t,o,l){E(u,e);let c=(e&4194304)>0&&U(u,e,209008);w(u,e|32768,67174411),i&&(i=o2(i,1));let s=null,h=null,b=0,g=null,a=u.token===86090||u.token===241739||u.token===86092,A,{token:C,tokenPos:D,linePos:B,colPos:O}=u;if(a?C===241739?(g=z(u,e,0),u.token&2240512?(u.token===8738868?e&1024&&f(u,64):g=v(u,e,D,B,O,{type:\"VariableDeclaration\",kind:\"let\",declarations:K2(u,e|134217728,i,8,32)}),u.assignable=1):e&1024?f(u,64):(a=!1,u.assignable=1,g=W(u,e,g,0,0,D,B,O),u.token===274549&&f(u,111))):(E(u,e),g=v(u,e,D,B,O,C===86090?{type:\"VariableDeclaration\",kind:\"var\",declarations:K2(u,e|134217728,i,4,32)}:{type:\"VariableDeclaration\",kind:\"const\",declarations:K2(u,e|134217728,i,16,32)}),u.assignable=1):C===1074790417?c&&f(u,79):(C&2097152)===2097152?(g=C===2162700?r2(u,e,void 0,1,0,0,2,32,D,B,O):k2(u,e,void 0,1,0,0,2,32,D,B,O),b=u.destructible,e&256&&b&64&&f(u,60),u.assignable=b&16?2:1,g=W(u,e|134217728,g,0,0,u.tokenPos,u.linePos,u.colPos)):g=b2(u,e|134217728,1,0,1,D,B,O),(u.token&262144)===262144){if(u.token===274549){u.assignable&2&&f(u,77,c?\"await\":\"of\"),v2(u,g),E(u,e|32768),A=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let R=p2(u,e,i,n);return v(u,e,t,o,l,{type:\"ForOfStatement\",left:g,right:A,body:R,await:c})}u.assignable&2&&f(u,77,\"in\"),v2(u,g),E(u,e|32768),c&&f(u,79),A=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let e2=p2(u,e,i,n);return v(u,e,t,o,l,{type:\"ForInStatement\",body:e2,left:g,right:A})}c&&f(u,79),a||(b&8&&u.token!==1077936157&&f(u,77,\"loop\"),g=x(u,e|134217728,0,0,D,B,O,g)),u.token===18&&(g=S2(u,e,0,u.tokenPos,u.linePos,u.colPos,g)),w(u,e|32768,1074790417),u.token!==1074790417&&(s=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,1074790417),u.token!==16&&(h=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,16);let j=p2(u,e,i,n);return v(u,e,t,o,l,{type:\"ForStatement\",init:g,test:s,update:h,body:j})}function te(u,e,i){return _1(e,u.token)||f(u,114),(u.token&537079808)===537079808&&f(u,115),i&&B2(u,e,i,u.tokenValue,8,0),z(u,e,0)}function x0(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;E(u,e);let l=null,{tokenPos:c,linePos:s,colPos:h}=u,b=[];if(u.token===134283267)l=a2(u,e);else{if(u.token&143360){let g=te(u,e,i);if(b=[v(u,e,c,s,h,{type:\"ImportDefaultSpecifier\",local:g})],U(u,e,18))switch(u.token){case 8457014:b.push(oe(u,e,i));break;case 2162700:le(u,e,i,b);break;default:f(u,104)}}else switch(u.token){case 8457014:b=[oe(u,e,i)];break;case 2162700:le(u,e,i,b);break;case 67174411:return ce(u,e,n,t,o);case 67108877:return fe(u,e,n,t,o);default:f(u,28,G[u.token&255])}l=p0(u,e)}return d2(u,e|32768),v(u,e,n,t,o,{type:\"ImportDeclaration\",specifiers:b,source:l})}function oe(u,e,i){let{tokenPos:n,linePos:t,colPos:o}=u;return E(u,e),w(u,e,77934),(u.token&134217728)===134217728&&S(n,u.line,u.index,28,G[u.token&255]),v(u,e,n,t,o,{type:\"ImportNamespaceSpecifier\",local:te(u,e,i)})}function p0(u,e){return U(u,e,12404),u.token!==134283267&&f(u,102,\"Import\"),a2(u,e)}function le(u,e,i,n){for(E(u,e);u.token&143360;){let{token:t,tokenValue:o,tokenPos:l,linePos:c,colPos:s}=u,h=z(u,e,0),b;U(u,e,77934)?((u.token&134217728)===134217728||u.token===18?f(u,103):o1(u,e,16,u.token,0),o=u.tokenValue,b=z(u,e,0)):(o1(u,e,16,t,0),b=h),i&&B2(u,e,i,o,8,0),n.push(v(u,e,l,c,s,{type:\"ImportSpecifier\",local:b,imported:h})),u.token!==1074790415&&w(u,e,18)}return w(u,e,1074790415),n}function fe(u,e,i,n,t){let o=ae(u,e,v(u,e,i,n,t,{type:\"Identifier\",name:\"import\"}),i,n,t);return o=W(u,e,o,0,0,i,n,t),o=x(u,e,0,0,i,n,t,o),H2(u,e,o,i,n,t)}function ce(u,e,i,n,t){let o=de(u,e,0,i,n,t);return o=W(u,e,o,0,0,i,n,t),H2(u,e,o,i,n,t)}function ut(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;E(u,e|32768);let l=[],c=null,s=null,h;if(U(u,e|32768,20563)){switch(u.token){case 86106:{c=T2(u,e,i,4,1,1,0,u.tokenPos,u.linePos,u.colPos);break}case 133:case 86096:c=Z1(u,e,i,1,u.tokenPos,u.linePos,u.colPos);break;case 209007:let{tokenPos:b,linePos:g,colPos:a}=u;c=z(u,e,0);let{flags:A}=u;(A&1)<1&&(u.token===86106?c=T2(u,e,i,4,1,1,1,b,g,a):u.token===67174411?(c=$1(u,e,c,1,1,0,A,b,g,a),c=W(u,e,c,0,0,b,g,a),c=x(u,e,0,0,b,g,a,c)):u.token&143360&&(i&&(i=f1(u,e,u.tokenValue)),c=z(u,e,0),c=u1(u,e,i,[c],1,b,g,a)));break;default:c=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),d2(u,e|32768)}return i&&_2(u,\"default\"),v(u,e,n,t,o,{type:\"ExportDefaultDeclaration\",declaration:c})}switch(u.token){case 8457014:{E(u,e);let A=null;return U(u,e,77934)&&(i&&_2(u,u.tokenValue),A=z(u,e,0)),w(u,e,12404),u.token!==134283267&&f(u,102,\"Export\"),s=a2(u,e),d2(u,e|32768),v(u,e,n,t,o,{type:\"ExportAllDeclaration\",source:s,exported:A})}case 2162700:{E(u,e);let A=[],C=[];for(;u.token&143360;){let{tokenPos:D,tokenValue:B,linePos:O,colPos:j}=u,e2=z(u,e,0),R;u.token===77934?(E(u,e),(u.token&134217728)===134217728&&f(u,103),i&&(A.push(u.tokenValue),C.push(B)),R=z(u,e,0)):(i&&(A.push(u.tokenValue),C.push(u.tokenValue)),R=e2),l.push(v(u,e,D,O,j,{type:\"ExportSpecifier\",local:e2,exported:R})),u.token!==1074790415&&w(u,e,18)}if(w(u,e,1074790415),U(u,e,12404))u.token!==134283267&&f(u,102,\"Export\"),s=a2(u,e);else if(i){let D=0,B=A.length;for(;D0)&8738868,b,g;for(u.assignable=2;u.token&8454144&&(b=u.token,g=b&3840,(b&524288&&c&268435456||c&524288&&b&268435456)&&f(u,159),!(g+((b===8457273)<<8)-((h===b)<<12)<=l));)E(u,e|32768),s=v(u,e,n,t,o,{type:b&524288||b&268435456?\"LogicalExpression\":\"BinaryExpression\",left:s,right:F2(u,e,i,u.tokenPos,u.linePos,u.colPos,g,b,b2(u,e,0,i,1,u.tokenPos,u.linePos,u.colPos)),operator:G[b&255]});return u.token===1077936157&&f(u,24),s}function et(u,e,i,n,t,o,l){i||f(u,0);let c=u.token;E(u,e|32768);let s=b2(u,e,0,l,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),e&1024&&c===16863278&&(s.type===\"Identifier\"?f(u,117):B0(s)&&f(u,123)),u.assignable=2,v(u,e,n,t,o,{type:\"UnaryExpression\",operator:G[c&255],argument:s,prefix:!0})}function it(u,e,i,n,t,o,l,c,s,h){let{token:b}=u,g=z(u,e,o),{flags:a}=u;if((a&1)<1){if(u.token===86106)return he(u,e,1,i,c,s,h);if((u.token&143360)===143360)return n||f(u,0),ke(u,e,t,c,s,h)}return!l&&u.token===67174411?$1(u,e,g,t,1,0,a,c,s,h):u.token===10?(M1(u,e,b,1),l&&f(u,48),g1(u,e,u.tokenValue,g,l,t,0,c,s,h)):g}function nt(u,e,i,n,t,o,l){if(i&&(u.destructible|=256),e&2097152){E(u,e|32768),e&8388608&&f(u,30),n||f(u,24),u.token===22&&f(u,120);let c=null,s=!1;return(u.flags&1)<1&&(s=U(u,e|32768,8457014),(u.token&77824||s)&&(c=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos))),u.assignable=2,v(u,e,t,o,l,{type:\"YieldExpression\",argument:c,delegate:s})}return e&1024&&f(u,94,\"yield\"),Y1(u,e,t,o,l)}function tt(u,e,i,n,t,o,l){if(n&&(u.destructible|=128),e&4194304||e&2048&&e&8192){i&&f(u,0),e&8388608&&S(u.index,u.line,u.index,29),E(u,e|32768);let c=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),u.assignable=2,v(u,e,t,o,l,{type:\"AwaitExpression\",argument:c})}return e&2048&&f(u,95),Y1(u,e,t,o,l)}function a1(u,e,i,n,t,o){let{tokenPos:l,linePos:c,colPos:s}=u;w(u,e|32768,2162700);let h=[],b=e;if(u.token!==1074790415){for(;u.token===134283267;){let{index:g,tokenPos:a,tokenValue:A,token:C}=u,D=a2(u,e);Zu(u,g,a,A)&&(e|=1024,u.flags&128&&S(u.index,u.line,u.tokenPos,63),u.flags&64&&S(u.index,u.line,u.tokenPos,8)),h.push(X1(u,e,D,C,a,u.linePos,u.colPos))}e&1024&&(t&&((t&537079808)===537079808&&f(u,115),(t&36864)===36864&&f(u,38)),u.flags&512&&f(u,115),u.flags&256&&f(u,114)),e&64&&i&&o!==void 0&&(b&1024)<1&&(e&8192)<1&&P(o)}for(u.flags=(u.flags|512|256|64)^832,u.destructible=(u.destructible|256)^256;u.token!==1074790415;)h.push(G2(u,e,i,4,{}));return w(u,n&24?e|32768:e,1074790415),u.flags&=-193,u.token===1077936157&&f(u,24),v(u,e,l,c,s,{type:\"BlockStatement\",body:h})}function ot(u,e,i,n,t){switch(E(u,e),u.token){case 67108991:f(u,161);case 67174411:{(e&524288)<1&&f(u,26),e&16384&&f(u,27),u.assignable=2;break}case 69271571:case 67108877:{(e&262144)<1&&f(u,27),e&16384&&f(u,27),u.assignable=1;break}default:f(u,28,\"super\")}return v(u,e,i,n,t,{type:\"Super\"})}function b2(u,e,i,n,t,o,l,c){let s=h2(u,e,2,0,i,0,n,t,o,l,c);return W(u,e,s,n,0,o,l,c)}function lt(u,e,i,n,t,o){u.assignable&2&&f(u,52);let{token:l}=u;return E(u,e),u.assignable=2,v(u,e,n,t,o,{type:\"UpdateExpression\",argument:i,operator:G[l&255],prefix:!1})}function W(u,e,i,n,t,o,l,c){if((u.token&33619968)===33619968&&(u.flags&1)<1)i=lt(u,e,i,o,l,c);else if((u.token&67108864)===67108864){switch(e=(e|134217728)^134217728,u.token){case 67108877:{E(u,(e|1073741824|8192)^8192),u.assignable=1;let s=se(u,e);i=v(u,e,o,l,c,{type:\"MemberExpression\",object:i,computed:!1,property:s});break}case 69271571:{let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048),E(u,e|32768);let{tokenPos:h,linePos:b,colPos:g}=u,a=f2(u,e,n,1,h,b,g);w(u,e,20),u.assignable=1,i=v(u,e,o,l,c,{type:\"MemberExpression\",object:i,computed:!0,property:a}),s&&(u.flags|=2048);break}case 67174411:{if((u.flags&1024)===1024)return u.flags=(u.flags|1024)^1024,i;let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048);let h=W1(u,e,n);u.assignable=2,i=v(u,e,o,l,c,{type:\"CallExpression\",callee:i,arguments:h}),s&&(u.flags|=2048);break}case 67108991:{E(u,(e|1073741824|8192)^8192),u.flags|=2048,u.assignable=2,i=ft(u,e,i,o,l,c);break}default:(u.flags&2048)===2048&&f(u,160),u.assignable=2,i=v(u,e,o,l,c,{type:\"TaggedTemplateExpression\",tag:i,quasi:u.token===67174408?K1(u,e|65536):H1(u,e,u.tokenPos,u.linePos,u.colPos)})}i=W(u,e,i,0,1,o,l,c)}return t===0&&(u.flags&2048)===2048&&(u.flags=(u.flags|2048)^2048,i=v(u,e,o,l,c,{type:\"ChainExpression\",expression:i})),i}function ft(u,e,i,n,t,o){let l=!1,c;if((u.token===69271571||u.token===67174411)&&(u.flags&2048)===2048&&(l=!0,u.flags=(u.flags|2048)^2048),u.token===69271571){E(u,e|32768);let{tokenPos:s,linePos:h,colPos:b}=u,g=f2(u,e,0,1,s,h,b);w(u,e,20),u.assignable=2,c=v(u,e,n,t,o,{type:\"MemberExpression\",object:i,computed:!0,optional:!0,property:g})}else if(u.token===67174411){let s=W1(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:\"CallExpression\",callee:i,arguments:s,optional:!0})}else{(u.token&143360)<1&&f(u,154);let s=z(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:\"MemberExpression\",object:i,computed:!1,optional:!0,property:s})}return l&&(u.flags|=2048),c}function se(u,e){return(u.token&143360)<1&&u.token!==131&&f(u,154),e&1&&u.token===131?k1(u,e,u.tokenPos,u.linePos,u.colPos):z(u,e,0)}function ct(u,e,i,n,t,o,l){i&&f(u,53),n||f(u,0);let{token:c}=u;E(u,e|32768);let s=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.assignable&2&&f(u,52),u.assignable=2,v(u,e,t,o,l,{type:\"UpdateExpression\",argument:s,operator:G[c&255],prefix:!0})}function h2(u,e,i,n,t,o,l,c,s,h,b){if((u.token&143360)===143360){switch(u.token){case 209008:return tt(u,e,n,l,s,h,b);case 241773:return nt(u,e,l,t,s,h,b);case 209007:return it(u,e,l,c,t,o,n,s,h,b)}let{token:g,tokenValue:a}=u,A=z(u,e|65536,o);return u.token===10?(c||f(u,0),M1(u,e,g,1),g1(u,e,a,A,n,t,0,s,h,b)):(e&16384&&g===537079928&&f(u,126),g===241739&&(e&1024&&f(u,109),i&24&&f(u,97)),u.assignable=e&1024&&(g&537079808)===537079808?2:1,A)}if((u.token&134217728)===134217728)return a2(u,e);switch(u.token){case 33619995:case 33619996:return ct(u,e,n,c,s,h,b);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return et(u,e,c,s,h,b,l);case 86106:return he(u,e,0,l,s,h,b);case 2162700:return mt(u,e,t?0:1,l,s,h,b);case 69271571:return ht(u,e,t?0:1,l,s,h,b);case 67174411:return kt(u,e,t,1,0,s,h,b);case 86021:case 86022:case 86023:return dt(u,e,s,h,b);case 86113:return gt(u,e);case 65540:return At(u,e,s,h,b);case 133:case 86096:return yt(u,e,l,s,h,b);case 86111:return ot(u,e,s,h,b);case 67174409:return H1(u,e,s,h,b);case 67174408:return K1(u,e);case 86109:return rt(u,e,l,s,h,b);case 134283389:return ge(u,e,s,h,b);case 131:return k1(u,e,s,h,b);case 86108:return st(u,e,n,l,s,h,b);case 8456258:if(e&16)return G1(u,e,1,s,h,b);default:if(_1(e,u.token))return Y1(u,e,s,h,b);f(u,28,G[u.token&255])}}function st(u,e,i,n,t,o,l){let c=z(u,e,0);return u.token===67108877?ae(u,e,c,t,o,l):(i&&f(u,137),c=de(u,e,n,t,o,l),u.assignable=2,W(u,e,c,n,0,t,o,l))}function ae(u,e,i,n,t,o){return(e&2048)===0&&f(u,163),E(u,e),u.token!==143495&&u.tokenValue!==\"meta\"&&f(u,28,G[u.token&255]),u.assignable=2,v(u,e,n,t,o,{type:\"MetaProperty\",meta:i,property:z(u,e,0)})}function de(u,e,i,n,t,o){w(u,e|32768,67174411),u.token===14&&f(u,138);let l=Q(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,16),v(u,e,n,t,o,{type:\"ImportExpression\",source:l})}function ge(u,e,i,n,t){let{tokenRaw:o,tokenValue:l}=u;return E(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:\"Literal\",value:l,bigint:o.slice(0,-1),raw:o}:{type:\"Literal\",value:l,bigint:o.slice(0,-1)})}function H1(u,e,i,n,t){u.assignable=2;let{tokenValue:o,tokenRaw:l,tokenPos:c,linePos:s,colPos:h}=u;w(u,e,67174409);let b=[d1(u,e,o,l,c,s,h,!0)];return v(u,e,i,n,t,{type:\"TemplateLiteral\",expressions:[],quasis:b})}function K1(u,e){e=(e|134217728)^134217728;let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;w(u,e|32768,67174408);let c=[d1(u,e,i,n,t,o,l,!1)],s=[f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)];for(u.token!==1074790415&&f(u,80);(u.token=v0(u,e))!==67174409;){let{tokenValue:h,tokenRaw:b,tokenPos:g,linePos:a,colPos:A}=u;w(u,e|32768,67174408),c.push(d1(u,e,h,b,g,a,A,!1)),s.push(f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),u.token!==1074790415&&f(u,80)}{let{tokenValue:h,tokenRaw:b,tokenPos:g,linePos:a,colPos:A}=u;w(u,e,67174409),c.push(d1(u,e,h,b,g,a,A,!0))}return v(u,e,t,o,l,{type:\"TemplateLiteral\",expressions:s,quasis:c})}function d1(u,e,i,n,t,o,l,c){let s=v(u,e,t,o,l,{type:\"TemplateElement\",value:{cooked:i,raw:n},tail:c}),h=c?1:2;return e&2&&(s.start+=1,s.range[0]+=1,s.end-=h,s.range[1]-=h),e&4&&(s.loc.start.column+=1,s.loc.end.column-=h),s}function at(u,e,i,n,t){e=(e|134217728)^134217728,w(u,e|32768,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return u.assignable=1,v(u,e,i,n,t,{type:\"SpreadElement\",argument:o})}function W1(u,e,i){E(u,e|32768);let n=[];if(u.token===16)return E(u,e),n;for(;u.token!==16&&(u.token===14?n.push(at(u,e,u.tokenPos,u.linePos,u.colPos)):n.push(Q(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos)),!(u.token!==18||(E(u,e|32768),u.token===16))););return w(u,e,16),n}function z(u,e,i){let{tokenValue:n,tokenPos:t,linePos:o,colPos:l}=u;return E(u,e),v(u,e,t,o,l,e&268435456?{type:\"Identifier\",name:n,pattern:i===1}:{type:\"Identifier\",name:n})}function a2(u,e){let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;return u.token===134283389?ge(u,e,t,o,l):(E(u,e),u.assignable=2,v(u,e,t,o,l,e&512?{type:\"Literal\",value:i,raw:n}:{type:\"Literal\",value:i}))}function dt(u,e,i,n,t){let o=G[u.token&255],l=u.token===86023?null:o===\"true\";return E(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:\"Literal\",value:l,raw:o}:{type:\"Literal\",value:l})}function gt(u,e){let{tokenPos:i,linePos:n,colPos:t}=u;return E(u,e),u.assignable=2,v(u,e,i,n,t,{type:\"ThisExpression\"})}function T2(u,e,i,n,t,o,l,c,s,h){E(u,e|32768);let b=t?V1(u,e,8457014):0,g=null,a,A=i?j2():void 0;if(u.token===67174411)(o&1)<1&&f(u,37,\"Function\");else{let B=n&4&&((e&8192)<1||(e&2048)<1)?4:64;Qu(u,e|(e&3072)<<11,u.token),i&&(B&4?pu(u,e,i,u.tokenValue,B):B2(u,e,i,u.tokenValue,B,n),A=o2(A,256),o&&o&2&&_2(u,u.tokenValue)),a=u.token,u.token&143360?g=z(u,e,0):f(u,28,G[u.token&255])}e=(e|32243712)^32243712|67108864|l*2+b<<21|(b?0:1073741824),i&&(A=o2(A,512));let C=be(u,e|8388608,A,0,1),D=a1(u,(e|8192|4096|131072)^143360,i?o2(A,128):A,8,a,i?A.scopeError:void 0);return v(u,e,c,s,h,{type:\"FunctionDeclaration\",id:g,params:C,body:D,async:l===1,generator:b===1})}function he(u,e,i,n,t,o,l){E(u,e|32768);let c=V1(u,e,8457014),s=i*2+c<<21,h=null,b,g=e&64?j2():void 0;(u.token&176128)>0&&(Qu(u,(e|32243712)^32243712|s,u.token),g&&(g=o2(g,256)),b=u.token,h=z(u,e,0)),e=(e|32243712)^32243712|67108864|s|(c?0:1073741824),g&&(g=o2(g,512));let a=be(u,e|8388608,g,n,1),A=a1(u,e&-134377473,g&&o2(g,128),0,b,void 0);return u.assignable=2,v(u,e,t,o,l,{type:\"FunctionExpression\",id:h,params:a,body:A,async:i===1,generator:c===1})}function ht(u,e,i,n,t,o,l){let c=k2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function k2(u,e,i,n,t,o,l,c,s,h,b){E(u,e|32768);let g=[],a=0;for(e=(e|134217728)^134217728;u.token!==20;)if(U(u,e|32768,18))g.push(null);else{let C,{token:D,tokenPos:B,linePos:O,colPos:j,tokenValue:e2}=u;if(D&143360)if(C=h2(u,e,l,0,1,0,t,1,B,O,j),u.token===1077936157){u.assignable&2&&f(u,24),E(u,e|32768),i&&q2(u,e,i,e2,l,c);let R=Q(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);C=v(u,e,B,O,j,o?{type:\"AssignmentPattern\",left:C,right:R}:{type:\"AssignmentExpression\",operator:\"=\",left:C,right:R}),a|=u.destructible&256?256:0|u.destructible&128?128:0}else u.token===18||u.token===20?(u.assignable&2?a|=16:i&&q2(u,e,i,e2,l,c),a|=u.destructible&256?256:0|u.destructible&128?128:0):(a|=l&1?32:(l&2)<1?16:0,C=W(u,e,C,t,0,B,O,j),u.token!==18&&u.token!==20?(u.token!==1077936157&&(a|=16),C=x(u,e,t,o,B,O,j,C)):u.token!==1077936157&&(a|=u.assignable&2?16:32));else D&2097152?(C=u.token===2162700?r2(u,e,i,0,t,o,l,c,B,O,j):k2(u,e,i,0,t,o,l,c,B,O,j),a|=u.destructible,u.assignable=u.destructible&16?2:1,u.token===18||u.token===20?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(C=W(u,e,C,t,0,B,O,j),a=u.assignable&2?16:0,u.token!==18&&u.token!==20?C=x(u,e,t,o,B,O,j,C):u.token!==1077936157&&(a|=u.assignable&2?16:32))):D===14?(C=W2(u,e,i,20,l,c,0,t,o,B,O,j),a|=u.destructible,u.token!==18&&u.token!==20&&f(u,28,G[u.token&255])):(C=b2(u,e,1,0,1,B,O,j),u.token!==18&&u.token!==20?(C=x(u,e,t,o,B,O,j,C),(l&3)<1&&D===67174411&&(a|=16)):u.assignable&2?a|=16:D===67174411&&(a|=u.assignable&1&&l&3?32:16));if(g.push(C),U(u,e|32768,18)){if(u.token===20)break}else break}w(u,e,20);let A=v(u,e,s,h,b,{type:o?\"ArrayPattern\":\"ArrayExpression\",elements:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,b,A):(u.destructible=a,A)}function me(u,e,i,n,t,o,l,c,s){u.token!==1077936157&&f(u,24),E(u,e|32768),i&16&&f(u,24),t||v2(u,s);let{tokenPos:h,linePos:b,colPos:g}=u,a=Q(u,e,1,1,n,h,b,g);return u.destructible=(i|64|8)^72|(u.destructible&128?128:0)|(u.destructible&256?256:0),v(u,e,o,l,c,t?{type:\"AssignmentPattern\",left:s,right:a}:{type:\"AssignmentExpression\",left:s,operator:\"=\",right:a})}function W2(u,e,i,n,t,o,l,c,s,h,b,g){E(u,e|32768);let a=null,A=0,{token:C,tokenValue:D,tokenPos:B,linePos:O,colPos:j}=u;if(C&143360)u.assignable=1,a=h2(u,e,t,0,1,0,c,1,B,O,j),C=u.token,a=W(u,e,a,c,0,B,O,j),u.token!==18&&u.token!==n&&(u.assignable&2&&u.token===1077936157&&f(u,68),A|=16,a=x(u,e,c,s,B,O,j,a)),u.assignable&2?A|=16:C===n||C===18?i&&q2(u,e,i,D,t,o):A|=32,A|=u.destructible&128?128:0;else if(C===n)f(u,39);else if(C&2097152)a=u.token===2162700?r2(u,e,i,1,c,s,t,o,B,O,j):k2(u,e,i,1,c,s,t,o,B,O,j),C=u.token,C!==1077936157&&C!==n&&C!==18?(u.destructible&8&&f(u,68),a=W(u,e,a,c,0,B,O,j),A|=u.assignable&2?16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(A|=16),a=x(u,e,c,s,B,O,j,a)):((u.token&8454144)===8454144&&(a=F2(u,e,1,B,O,j,4,C,a)),U(u,e|32768,22)&&(a=M2(u,e,a,B,O,j)),A|=u.assignable&2?16:32)):A|=n===1074790415&&C!==1077936157?16:u.destructible;else{A|=32,a=b2(u,e,1,c,1,u.tokenPos,u.linePos,u.colPos);let{token:e2,tokenPos:R,linePos:$,colPos:y}=u;return e2===1077936157&&e2!==n&&e2!==18?(u.assignable&2&&f(u,24),a=x(u,e,c,s,R,$,y,a),A|=16):(e2===18?A|=16:e2!==n&&(a=x(u,e,c,s,R,$,y,a)),A|=u.assignable&1?32:16),u.destructible=A,u.token!==n&&u.token!==18&&f(u,155),v(u,e,h,b,g,{type:s?\"RestElement\":\"SpreadElement\",argument:a})}if(u.token!==n)if(t&1&&(A|=l?16:32),U(u,e|32768,1077936157)){A&16&&f(u,24),v2(u,a);let e2=Q(u,e,1,1,c,u.tokenPos,u.linePos,u.colPos);a=v(u,e,B,O,j,s?{type:\"AssignmentPattern\",left:a,right:e2}:{type:\"AssignmentExpression\",left:a,operator:\"=\",right:e2}),A=16}else A|=16;return u.destructible=A,v(u,e,h,b,g,{type:s?\"RestElement\":\"SpreadElement\",argument:a})}function A2(u,e,i,n,t,o,l){let c=(i&64)<1?31981568:14680064;e=(e|c)^c|(i&88)<<18|100925440;let s=e&64?o2(j2(),512):void 0,h=bt(u,e|8388608,s,i,1,n);s&&(s=o2(s,128));let b=a1(u,e&-134230017,s,0,void 0,void 0);return v(u,e,t,o,l,{type:\"FunctionExpression\",params:h,body:b,async:(i&16)>0,generator:(i&8)>0,id:null})}function mt(u,e,i,n,t,o,l){let c=r2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function r2(u,e,i,n,t,o,l,c,s,h,b){E(u,e);let g=[],a=0,A=0;for(e=(e|134217728)^134217728;u.token!==1074790415;){let{token:D,tokenValue:B,linePos:O,colPos:j,tokenPos:e2}=u;if(D===14)g.push(W2(u,e,i,1074790415,l,c,0,t,o,e2,O,j));else{let R=0,$=null,y,y2=u.token;if(u.token&143360||u.token===121)if($=z(u,e,0),u.token===18||u.token===1074790415||u.token===1077936157)if(R|=4,e&1024&&(D&537079808)===537079808?a|=16:o1(u,e,l,D,0),i&&q2(u,e,i,B,l,c),U(u,e|32768,1077936157)){a|=8;let N=Q(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);a|=u.destructible&256?256:0|u.destructible&128?128:0,y=v(u,e,e2,O,j,{type:\"AssignmentPattern\",left:e&-2147483648?Object.assign({},$):$,right:N})}else a|=(D===209008?128:0)|(D===121?16:0),y=e&-2147483648?Object.assign({},$):$;else if(U(u,e|32768,21)){let{tokenPos:N,linePos:M,colPos:_}=u;if(B===\"__proto__\"&&A++,u.token&143360){let U2=u.token,$2=u.tokenValue;a|=y2===121?16:0,y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;y=W(u,e,y,t,0,N,M,_),u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?(a|=u.destructible&128?128:0,u.assignable&2?a|=16:i&&(U2&143360)===143360&&q2(u,e,i,$2,l,c)):a|=u.assignable&1?32:16:(u.token&4194304)===4194304?(u.assignable&2?a|=16:E2!==1077936157?a|=32:i&&q2(u,e,i,$2,l,c),y=x(u,e,t,o,N,M,_,y)):(a|=16,(u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,E2,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?y=s1(u,e,t,o,N,M,_,y):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,t,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,u.token!==18&&D!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===69271571?(a|=16,D===209007&&(R|=16),R|=(D===12402?256:D===12403?512:1)|2,$=Y2(u,e,t),a|=u.assignable,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token&143360?(a|=16,D===121&&f(u,92),D===209007&&(u.flags&1&&f(u,128),R|=16),$=z(u,e,0),R|=D===12402?256:D===12403?512:1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===67174411?(a|=16,R|=1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===8457014?(a|=16,D===12402||D===12403?f(u,40):D===143483&&f(u,92),E(u,e),R|=9|(D===209007?16:0),u.token&143360?$=z(u,e,0):(u.token&134217728)===134217728?$=a2(u,e):u.token===69271571?(R|=2,$=Y2(u,e,t),a|=u.assignable):f(u,28,G[u.token&255]),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):(u.token&134217728)===134217728?(D===209007&&(R|=16),R|=D===12402?256:D===12403?512:1,a|=16,$=a2(u,e),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,129);else if((u.token&134217728)===134217728)if($=a2(u,e),u.token===21){w(u,e|32768,21);let{tokenPos:N,linePos:M,colPos:_}=u;if(B===\"__proto__\"&&A++,u.token&143360){y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:U2,tokenValue:$2}=u;y=W(u,e,y,t,0,N,M,_),u.token===18||u.token===1074790415?U2===1077936157||U2===1074790415||U2===18?u.assignable&2?a|=16:i&&q2(u,e,i,$2,l,c):a|=u.assignable&1?32:16:u.token===1077936157?(u.assignable&2&&(a|=16),y=x(u,e,t,o,N,M,_,y)):(a|=16,y=x(u,e,t,o,N,M,_,y))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(u.destructible&8)!==8&&(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?y=s1(u,e,t,o,N,M,_,y):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===67174411?(R|=1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos),a=u.assignable|16):f(u,130);else if(u.token===69271571)if($=Y2(u,e,t),a|=u.destructible&256?256:0,R|=2,u.token===21){E(u,e|32768);let{tokenPos:N,linePos:M,colPos:_,tokenValue:U2,token:$2}=u;if(u.token&143360){y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;y=W(u,e,y,t,0,N,M,_),(u.token&4194304)===4194304?(a|=u.assignable&2?16:E2===1077936157?0:32,y=s1(u,e,t,o,N,M,_,y)):u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?u.assignable&2?a|=16:i&&($2&143360)===143360&&q2(u,e,i,U2,l,c):a|=u.assignable&1?32:16:(a|=16,y=x(u,e,t,o,N,M,_,y))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):a&8?f(u,59):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?a|16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(a|=16),y=s1(u,e,t,o,N,M,_,y)):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===67174411?(R|=1,y=A2(u,e,R,t,u.tokenPos,O,j),a=16):f(u,41);else if(D===8457014)if(w(u,e|32768,8457014),R|=8,u.token&143360){let{token:N,line:M,index:_}=u;$=z(u,e,0),R|=1,u.token===67174411?(a|=16,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):S(_,M,_,N===209007?43:N===12402||u.token===12403?42:44,G[N&255])}else(u.token&134217728)===134217728?(a|=16,$=a2(u,e),R|=1,y=A2(u,e,R,t,e2,O,j)):u.token===69271571?(a|=16,R|=3,$=Y2(u,e,t),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,122);else f(u,28,G[D&255]);a|=u.destructible&128?128:0,u.destructible=a,g.push(v(u,e,e2,O,j,{type:\"Property\",key:$,value:y,kind:R&768?R&512?\"set\":\"get\":\"init\",computed:(R&2)>0,method:(R&1)>0,shorthand:(R&4)>0}))}if(a|=u.destructible,u.token!==18)break;E(u,e)}w(u,e,1074790415),A>1&&(a|=64);let C=v(u,e,s,h,b,{type:o?\"ObjectPattern\":\"ObjectExpression\",properties:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,b,C):(u.destructible=a,C)}function bt(u,e,i,n,t,o){w(u,e,67174411);let l=[];if(u.flags=(u.flags|128)^128,u.token===16)return n&512&&f(u,35,\"Setter\",\"one\",\"\"),E(u,e),l;n&256&&f(u,35,\"Getter\",\"no\",\"s\"),n&512&&u.token===14&&f(u,36),e=(e|134217728)^134217728;let c=0,s=0;for(;u.token!==18;){let h=null,{tokenPos:b,linePos:g,colPos:a}=u;if(u.token&143360?((e&1024)<1&&((u.token&36864)===36864&&(u.flags|=256),(u.token&537079808)===537079808&&(u.flags|=512)),h=Q1(u,e,i,n|1,0,b,g,a)):(u.token===2162700?h=r2(u,e,i,1,o,1,t,0,b,g,a):u.token===69271571?h=k2(u,e,i,1,o,1,t,0,b,g,a):u.token===14&&(h=W2(u,e,i,16,t,0,0,o,1,b,g,a)),s=1,u.destructible&48&&f(u,47)),u.token===1077936157){E(u,e|32768),s=1;let A=Q(u,e,1,1,0,u.tokenPos,u.linePos,u.colPos);h=v(u,e,b,g,a,{type:\"AssignmentPattern\",left:h,right:A})}if(c++,l.push(h),!U(u,e,18)||u.token===16)break}return n&512&&c!==1&&f(u,35,\"Setter\",\"one\",\"\"),i&&i.scopeError!==void 0&&P(i.scopeError),s&&(u.flags|=128),w(u,e,16),l}function Y2(u,e,i){E(u,e|32768);let n=Q(u,(e|134217728)^134217728,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,20),n}function kt(u,e,i,n,t,o,l,c){u.flags=(u.flags|128)^128;let{tokenPos:s,linePos:h,colPos:b}=u;E(u,e|32768|1073741824);let g=e&64?o2(j2(),1024):void 0;if(e=(e|134217728)^134217728,U(u,e,16))return h1(u,e,g,[],i,0,o,l,c);let a=0;u.destructible&=-385;let A,C=[],D=0,B=0,{tokenPos:O,linePos:j,colPos:e2}=u;for(u.assignable=1;u.token!==16;){let{token:R,tokenPos:$,linePos:y,colPos:y2}=u;if(R&143360)g&&B2(u,e,g,u.tokenValue,1,0),A=h2(u,e,n,0,1,0,1,1,$,y,y2),u.token===16||u.token===18?u.assignable&2?(a|=16,B=1):((R&537079808)===537079808||(R&36864)===36864)&&(B=1):(u.token===1077936157?B=1:a|=16,A=W(u,e,A,1,0,$,y,y2),u.token!==16&&u.token!==18&&(A=x(u,e,1,0,$,y,y2,A)));else if((R&2097152)===2097152)A=R===2162700?r2(u,e|1073741824,g,0,1,0,n,t,$,y,y2):k2(u,e|1073741824,g,0,1,0,n,t,$,y,y2),a|=u.destructible,B=1,u.assignable=2,u.token!==16&&u.token!==18&&(a&8&&f(u,118),A=W(u,e,A,0,0,$,y,y2),a|=16,u.token!==16&&u.token!==18&&(A=x(u,e,0,0,$,y,y2,A)));else if(R===14){A=W2(u,e,g,16,n,t,0,1,0,$,y,y2),u.destructible&16&&f(u,71),B=1,D&&(u.token===16||u.token===18)&&C.push(A),a|=8;break}else{if(a|=16,A=Q(u,e,1,0,1,$,y,y2),D&&(u.token===16||u.token===18)&&C.push(A),u.token===18&&(D||(D=1,C=[A])),D){for(;U(u,e|32768,18);)C.push(Q(u,e,1,0,1,u.tokenPos,u.linePos,u.colPos));u.assignable=2,A=v(u,e,O,j,e2,{type:\"SequenceExpression\",expressions:C})}return w(u,e,16),u.destructible=a,A}if(D&&(u.token===16||u.token===18)&&C.push(A),!U(u,e|32768,18))break;if(D||(D=1,C=[A]),u.token===16){a|=8;break}}return D&&(u.assignable=2,A=v(u,e,O,j,e2,{type:\"SequenceExpression\",expressions:C})),w(u,e,16),a&16&&a&8&&f(u,145),a|=u.destructible&256?256:0|u.destructible&128?128:0,u.token===10?(a&48&&f(u,46),e&4196352&&a&128&&f(u,29),e&2098176&&a&256&&f(u,30),B&&(u.flags|=128),h1(u,e,g,D?C:[A],i,0,o,l,c)):(a&8&&f(u,139),u.destructible=(u.destructible|256)^256|a,e&128?v(u,e,s,h,b,{type:\"ParenthesizedExpression\",expression:A}):A)}function Y1(u,e,i,n,t){let{tokenValue:o}=u,l=z(u,e,0);if(u.assignable=1,u.token===10){let c;return e&64&&(c=f1(u,e,o)),u.flags=(u.flags|128)^128,u1(u,e,c,[l],0,i,n,t)}return l}function g1(u,e,i,n,t,o,l,c,s,h){o||f(u,54),t&&f(u,48),u.flags&=-129;let b=e&64?f1(u,e,i):void 0;return u1(u,e,b,[n],l,c,s,h)}function h1(u,e,i,n,t,o,l,c,s){t||f(u,54);for(let h=0;h0&&u.tokenValue===\"constructor\"&&f(u,106),u.token===1074790415&&f(u,105),U(u,e,1074790417)){a>0&&f(u,116);continue}b.push(ve(u,e,n,i,t,g,0,l,u.tokenPos,u.linePos,u.colPos))}return w(u,o&8?e|32768:e,1074790415),v(u,e,c,s,h,{type:\"ClassBody\",body:b})}function ve(u,e,i,n,t,o,l,c,s,h,b){let g=l?32:0,a=null,{token:A,tokenPos:C,linePos:D,colPos:B}=u;if(A&176128)switch(a=z(u,e,0),A){case 36972:if(!l&&u.token!==67174411)return ve(u,e,i,n,t,o,1,c,s,h,b);break;case 209007:if(u.token!==67174411&&(u.flags&1)<1){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=16|(V1(u,e,8457014)?8:0)}break;case 12402:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=256}break;case 12403:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=512}break}else A===69271571?(g|=2,a=Y2(u,n,c)):(A&134217728)===134217728?a=a2(u,e):A===8457014?(g|=8,E(u,e)):e&1&&u.token===131?(g|=4096,a=k1(u,e|16384,C,D,B)):e&1&&(u.token&1073741824)===1073741824?g|=128:A===122?(a=z(u,e,0),u.token!==67174411&&f(u,28,G[u.token&255])):f(u,28,G[u.token&255]);if(g&792&&(u.token&143360?a=z(u,e,0):(u.token&134217728)===134217728?a=a2(u,e):u.token===69271571?(g|=2,a=Y2(u,e,0)):u.token===122?a=z(u,e,0):e&1&&u.token===131?(g|=4096,a=k1(u,e,C,D,B)):f(u,131)),(g&2)<1&&(u.tokenValue===\"constructor\"?((u.token&1073741824)===1073741824?f(u,125):(g&32)<1&&u.token===67174411&&(g&920?f(u,50,\"accessor\"):(e&524288)<1&&(u.flags&32?f(u,51):u.flags|=32)),g|=64):(g&4096)<1&&g&824&&u.tokenValue===\"prototype\"&&f(u,49)),e&1&&u.token!==67174411)return r1(u,e,a,g,o,C,D,B);let O=A2(u,e,g,c,u.tokenPos,u.linePos,u.colPos);return v(u,e,s,h,b,e&1?{type:\"MethodDefinition\",kind:(g&32)<1&&g&64?\"constructor\":g&256?\"get\":g&512?\"set\":\"method\",static:(g&32)>0,computed:(g&2)>0,key:a,decorators:o,value:O}:{type:\"MethodDefinition\",kind:(g&32)<1&&g&64?\"constructor\":g&256?\"get\":g&512?\"set\":\"method\",static:(g&32)>0,computed:(g&2)>0,key:a,value:O})}function k1(u,e,i,n,t){E(u,e);let{tokenValue:o}=u;return o===\"constructor\"&&f(u,124),E(u,e),v(u,e,i,n,t,{type:\"PrivateIdentifier\",name:o})}function r1(u,e,i,n,t,o,l,c){let s=null;if(n&8&&f(u,0),u.token===1077936157){E(u,e|32768);let{tokenPos:h,linePos:b,colPos:g}=u;u.token===537079928&&f(u,115),s=h2(u,e|16384,2,0,1,0,0,1,h,b,g),(u.token&1073741824)!==1073741824&&(s=W(u,e|16384,s,0,0,h,b,g),s=x(u,e|16384,0,0,h,b,g,s),u.token===18&&(s=S2(u,e,0,o,l,c,s)))}return v(u,e,o,l,c,{type:\"PropertyDefinition\",key:i,value:s,static:(n&32)>0,computed:(n&2)>0,decorators:t})}function Ae(u,e,i,n,t,o,l,c){if(u.token&143360)return Q1(u,e,i,n,t,o,l,c);(u.token&2097152)!==2097152&&f(u,28,G[u.token&255]);let s=u.token===69271571?k2(u,e,i,1,0,1,n,t,o,l,c):r2(u,e,i,1,0,1,n,t,o,l,c);return u.destructible&16&&f(u,47),u.destructible&32&&f(u,47),s}function Q1(u,e,i,n,t,o,l,c){let{tokenValue:s,token:h}=u;return e&1024&&((h&537079808)===537079808?f(u,115):(h&36864)===36864&&f(u,114)),(h&20480)===20480&&f(u,99),e&2099200&&h===241773&&f(u,30),h===241739&&n&24&&f(u,97),e&4196352&&h===209008&&f(u,95),E(u,e),i&&q2(u,e,i,s,n,t),v(u,e,o,l,c,{type:\"Identifier\",name:s})}function G1(u,e,i,n,t,o){if(E(u,e),u.token===8456259)return v(u,e,n,t,o,{type:\"JSXFragment\",openingFragment:Et(u,e,n,t,o),children:ye(u,e),closingFragment:Ct(u,e,i,u.tokenPos,u.linePos,u.colPos)});let l=null,c=[],s=Bt(u,e,i,n,t,o);if(!s.selfClosing){c=ye(u,e),l=Dt(u,e,i,u.tokenPos,u.linePos,u.colPos);let h=l1(l.name);l1(s.name)!==h&&f(u,149,h)}return v(u,e,n,t,o,{type:\"JSXElement\",children:c,openingElement:s,closingElement:l})}function Et(u,e,i,n,t){return V2(u,e),v(u,e,i,n,t,{type:\"JSXOpeningFragment\"})}function Dt(u,e,i,n,t,o){w(u,e,25);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos);return i?w(u,e,8456259):u.token=V2(u,e),v(u,e,n,t,o,{type:\"JSXClosingElement\",name:l})}function Ct(u,e,i,n,t,o){return w(u,e,25),w(u,e,8456259),v(u,e,n,t,o,{type:\"JSXClosingFragment\"})}function ye(u,e){let i=[];for(;u.token!==25;)u.index=u.tokenPos=u.startPos,u.column=u.colPos=u.startColumn,u.line=u.linePos=u.startLine,V2(u,e),i.push(wt(u,e,u.tokenPos,u.linePos,u.colPos));return i}function wt(u,e,i,n,t){if(u.token===138)return qt(u,e,i,n,t);if(u.token===2162700)return De(u,e,0,0,i,n,t);if(u.token===8456258)return G1(u,e,0,i,n,t);f(u,0)}function qt(u,e,i,n,t){V2(u,e);let o={type:\"JSXText\",value:u.tokenValue};return e&512&&(o.raw=u.tokenRaw),v(u,e,i,n,t,o)}function Bt(u,e,i,n,t,o){(u.token&143360)!==143360&&(u.token&4096)!==4096&&f(u,0);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos),c=Ft(u,e),s=u.token===8457016;return u.token===8456259?V2(u,e):(w(u,e,8457016),i?w(u,e,8456259):V2(u,e)),v(u,e,n,t,o,{type:\"JSXOpeningElement\",name:l,attributes:c,selfClosing:s})}function Pe(u,e,i,n,t){N1(u);let o=v1(u,e,i,n,t);if(u.token===21)return Ee(u,e,o,i,n,t);for(;U(u,e,67108877);)N1(u),o=St(u,e,o,i,n,t);return o}function St(u,e,i,n,t,o){let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:\"JSXMemberExpression\",object:i,property:l})}function Ft(u,e){let i=[];for(;u.token!==8457016&&u.token!==8456259&&u.token!==1048576;)i.push(Lt(u,e,u.tokenPos,u.linePos,u.colPos));return i}function Tt(u,e,i,n,t){E(u,e),w(u,e,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:\"JSXSpreadAttribute\",argument:o})}function Lt(u,e,i,n,t){if(u.token===2162700)return Tt(u,e,i,n,t);N1(u);let o=null,l=v1(u,e,i,n,t);if(u.token===21&&(l=Ee(u,e,l,i,n,t)),u.token===1077936157){let c=w0(u,e),{tokenPos:s,linePos:h,colPos:b}=u;switch(c){case 134283267:o=a2(u,e);break;case 8456258:o=G1(u,e,1,s,h,b);break;case 2162700:o=De(u,e,1,1,s,h,b);break;default:f(u,148)}}return v(u,e,i,n,t,{type:\"JSXAttribute\",value:o,name:l})}function Ee(u,e,i,n,t,o){w(u,e,21);let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:\"JSXNamespacedName\",namespace:i,name:l})}function De(u,e,i,n,t,o,l){E(u,e|32768);let{tokenPos:c,linePos:s,colPos:h}=u;if(u.token===14)return Ot(u,e,c,s,h);let b=null;return u.token===1074790415?(n&&f(u,151),b=It(u,e,u.startPos,u.startLine,u.startColumn)):b=Q(u,e,1,0,0,c,s,h),i?w(u,e,1074790415):V2(u,e),v(u,e,t,o,l,{type:\"JSXExpressionContainer\",expression:b})}function Ot(u,e,i,n,t){w(u,e,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:\"JSXSpreadChild\",expression:o})}function It(u,e,i,n,t){return u.startPos=u.tokenPos,u.startLine=u.linePos,u.startColumn=u.colPos,v(u,e,i,n,t,{type:\"JSXEmptyExpression\"})}function v1(u,e,i,n,t){let{tokenValue:o}=u;return E(u,e),v(u,e,i,n,t,{type:\"JSXIdentifier\",name:o})}var Rt=Object.freeze({__proto__:null}),Nt=\"4.2.1\",Vt=Nt;function jt(u,e){return U1(u,e,0)}function _t(u,e){return U1(u,e,3072)}function Mt(u,e){return U1(u,e,0)}d.ESTree=Rt,d.parse=Mt,d.parseModule=_t,d.parseScript=jt,d.version=Vt}});n2();var h3=pn(),m3=$4(),b3=o3(),k3=d3(),r3={module:!0,next:!0,ranges:!0,webcompat:!0,loc:!0,raw:!0,directives:!0,globalReturn:!0,impliedStrict:!1,preserveParens:!1,lexical:!1,identifierPattern:!1,jsx:!0,specDeviation:!0,uniqueKeyInPattern:!1};function Gn(d,m){let{parse:k}=g3(),f=[],P=[],S=k(d,Object.assign(Object.assign({},r3),{},{module:m,onComment:f,onToken:P}));return S.comments=f,S.tokens=P,S}function v3(d){let{message:m,line:k,column:f}=d,P=(m.match(/^\\[(?\\d+):(?\\d+)]: (?.*)$/)||{}).groups;return P&&(m=P.message,typeof k!=\"number\"&&(k=Number(P.line),f=Number(P.column))),typeof k!=\"number\"?d:h3(m,{start:{line:k,column:f}})}function A3(d,m){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:f,error:P}=m3(()=>Gn(d,!0),()=>Gn(d,!1));if(!f)throw v3(P);return k.originalText=d,k3(f,k)}k0.exports={parsers:{meriyah:b3(A3)}}});return y3();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.postcss=e()}})(function(){\"use strict\";var V=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var ee=V((pp,Ut)=>{var er=function(e){return e&&e.Math==Math&&e};Ut.exports=er(typeof globalThis==\"object\"&&globalThis)||er(typeof window==\"object\"&&window)||er(typeof self==\"object\"&&self)||er(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var ke=V((hp,Wt)=>{Wt.exports=function(e){try{return!!e()}catch{return!0}}});var Te=V((dp,$t)=>{var fa=ke();$t.exports=!fa(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Sr=V((vp,Vt)=>{var pa=ke();Vt.exports=!pa(function(){var e=function(){}.bind();return typeof e!=\"function\"||e.hasOwnProperty(\"prototype\")})});var tr=V((mp,Gt)=>{var ha=Sr(),rr=Function.prototype.call;Gt.exports=ha?rr.bind(rr):function(){return rr.apply(rr,arguments)}});var Qt=V(Kt=>{\"use strict\";var Ht={}.propertyIsEnumerable,Jt=Object.getOwnPropertyDescriptor,da=Jt&&!Ht.call({1:2},1);Kt.f=da?function(n){var i=Jt(this,n);return!!i&&i.enumerable}:Ht});var Or=V((yp,Yt)=>{Yt.exports=function(e,n){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:n}}});var de=V((wp,en)=>{var Xt=Sr(),Zt=Function.prototype,va=Zt.bind,Tr=Zt.call,ma=Xt&&va.bind(Tr,Tr);en.exports=Xt?function(e){return e&&ma(e)}:function(e){return e&&function(){return Tr.apply(e,arguments)}}});var nn=V((_p,tn)=>{var rn=de(),ga=rn({}.toString),ya=rn(\"\".slice);tn.exports=function(e){return ya(ga(e),8,-1)}});var on=V((bp,sn)=>{var wa=ee(),_a=de(),ba=ke(),xa=nn(),Er=wa.Object,ka=_a(\"\".split);sn.exports=ba(function(){return!Er(\"z\").propertyIsEnumerable(0)})?function(e){return xa(e)==\"String\"?ka(e,\"\"):Er(e)}:Er});var qr=V((xp,an)=>{var Sa=ee(),Oa=Sa.TypeError;an.exports=function(e){if(e==null)throw Oa(\"Can't call method on \"+e);return e}});var nr=V((kp,un)=>{var Ta=on(),Ea=qr();un.exports=function(e){return Ta(Ea(e))}});var ve=V((Sp,cn)=>{cn.exports=function(e){return typeof e==\"function\"}});var Me=V((Op,ln)=>{var qa=ve();ln.exports=function(e){return typeof e==\"object\"?e!==null:qa(e)}});var ir=V((Tp,fn)=>{var Ar=ee(),Aa=ve(),Pa=function(e){return Aa(e)?e:void 0};fn.exports=function(e,n){return arguments.length<2?Pa(Ar[e]):Ar[e]&&Ar[e][n]}});var hn=V((Ep,pn)=>{var Ra=de();pn.exports=Ra({}.isPrototypeOf)});var vn=V((qp,dn)=>{var Ia=ir();dn.exports=Ia(\"navigator\",\"userAgent\")||\"\"});var xn=V((Ap,bn)=>{var _n=ee(),Pr=vn(),mn=_n.process,gn=_n.Deno,yn=mn&&mn.versions||gn&&gn.version,wn=yn&&yn.v8,he,sr;wn&&(he=wn.split(\".\"),sr=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!sr&&Pr&&(he=Pr.match(/Edge\\/(\\d+)/),(!he||he[1]>=74)&&(he=Pr.match(/Chrome\\/(\\d+)/),he&&(sr=+he[1])));bn.exports=sr});var Rr=V((Pp,Sn)=>{var kn=xn(),Ca=ke();Sn.exports=!!Object.getOwnPropertySymbols&&!Ca(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&kn&&kn<41})});var Ir=V((Rp,On)=>{var Na=Rr();On.exports=Na&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Cr=V((Ip,Tn)=>{var ja=ee(),Ma=ir(),Da=ve(),La=hn(),za=Ir(),Ba=ja.Object;Tn.exports=za?function(e){return typeof e==\"symbol\"}:function(e){var n=Ma(\"Symbol\");return Da(n)&&La(n.prototype,Ba(e))}});var qn=V((Cp,En)=>{var Fa=ee(),Ua=Fa.String;En.exports=function(e){try{return Ua(e)}catch{return\"Object\"}}});var Pn=V((Np,An)=>{var Wa=ee(),$a=ve(),Va=qn(),Ga=Wa.TypeError;An.exports=function(e){if($a(e))return e;throw Ga(Va(e)+\" is not a function\")}});var In=V((jp,Rn)=>{var Ha=Pn();Rn.exports=function(e,n){var i=e[n];return i==null?void 0:Ha(i)}});var Nn=V((Mp,Cn)=>{var Ja=ee(),Nr=tr(),jr=ve(),Mr=Me(),Ka=Ja.TypeError;Cn.exports=function(e,n){var i,a;if(n===\"string\"&&jr(i=e.toString)&&!Mr(a=Nr(i,e))||jr(i=e.valueOf)&&!Mr(a=Nr(i,e))||n!==\"string\"&&jr(i=e.toString)&&!Mr(a=Nr(i,e)))return a;throw Ka(\"Can't convert object to primitive value\")}});var Mn=V((Dp,jn)=>{jn.exports=!1});var or=V((Lp,Ln)=>{var Dn=ee(),Qa=Object.defineProperty;Ln.exports=function(e,n){try{Qa(Dn,e,{value:n,configurable:!0,writable:!0})}catch{Dn[e]=n}return n}});var ar=V((zp,Bn)=>{var Ya=ee(),Xa=or(),zn=\"__core-js_shared__\",Za=Ya[zn]||Xa(zn,{});Bn.exports=Za});var Dr=V((Bp,Un)=>{var eu=Mn(),Fn=ar();(Un.exports=function(e,n){return Fn[e]||(Fn[e]=n!==void 0?n:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:eu?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var $n=V((Fp,Wn)=>{var ru=ee(),tu=qr(),nu=ru.Object;Wn.exports=function(e){return nu(tu(e))}});var Se=V((Up,Vn)=>{var iu=de(),su=$n(),ou=iu({}.hasOwnProperty);Vn.exports=Object.hasOwn||function(n,i){return ou(su(n),i)}});var Lr=V((Wp,Gn)=>{var au=de(),uu=0,cu=Math.random(),lu=au(1 .toString);Gn.exports=function(e){return\"Symbol(\"+(e===void 0?\"\":e)+\")_\"+lu(++uu+cu,36)}});var Xn=V(($p,Yn)=>{var fu=ee(),pu=Dr(),Hn=Se(),hu=Lr(),Jn=Rr(),Qn=Ir(),De=pu(\"wks\"),Ee=fu.Symbol,Kn=Ee&&Ee.for,du=Qn?Ee:Ee&&Ee.withoutSetter||hu;Yn.exports=function(e){if(!Hn(De,e)||!(Jn||typeof De[e]==\"string\")){var n=\"Symbol.\"+e;Jn&&Hn(Ee,e)?De[e]=Ee[e]:Qn&&Kn?De[e]=Kn(n):De[e]=du(n)}return De[e]}});var ti=V((Vp,ri)=>{var vu=ee(),mu=tr(),Zn=Me(),ei=Cr(),gu=In(),yu=Nn(),wu=Xn(),_u=vu.TypeError,bu=wu(\"toPrimitive\");ri.exports=function(e,n){if(!Zn(e)||ei(e))return e;var i=gu(e,bu),a;if(i){if(n===void 0&&(n=\"default\"),a=mu(i,e,n),!Zn(a)||ei(a))return a;throw _u(\"Can't convert object to primitive value\")}return n===void 0&&(n=\"number\"),yu(e,n)}});var zr=V((Gp,ni)=>{var xu=ti(),ku=Cr();ni.exports=function(e){var n=xu(e,\"string\");return ku(n)?n:n+\"\"}});var oi=V((Hp,si)=>{var Su=ee(),ii=Me(),Br=Su.document,Ou=ii(Br)&&ii(Br.createElement);si.exports=function(e){return Ou?Br.createElement(e):{}}});var Fr=V((Jp,ai)=>{var Tu=Te(),Eu=ke(),qu=oi();ai.exports=!Tu&&!Eu(function(){return Object.defineProperty(qu(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Ur=V(ci=>{var Au=Te(),Pu=tr(),Ru=Qt(),Iu=Or(),Cu=nr(),Nu=zr(),ju=Se(),Mu=Fr(),ui=Object.getOwnPropertyDescriptor;ci.f=Au?ui:function(n,i){if(n=Cu(n),i=Nu(i),Mu)try{return ui(n,i)}catch{}if(ju(n,i))return Iu(!Pu(Ru.f,n,i),n[i])}});var fi=V((Qp,li)=>{var Du=Te(),Lu=ke();li.exports=Du&&Lu(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var Wr=V((Yp,hi)=>{var pi=ee(),zu=Me(),Bu=pi.String,Fu=pi.TypeError;hi.exports=function(e){if(zu(e))return e;throw Fu(Bu(e)+\" is not an object\")}});var Jr=V(vi=>{var Uu=ee(),Wu=Te(),$u=Fr(),Vu=fi(),ur=Wr(),di=zr(),Gu=Uu.TypeError,$r=Object.defineProperty,Hu=Object.getOwnPropertyDescriptor,Vr=\"enumerable\",Gr=\"configurable\",Hr=\"writable\";vi.f=Wu?Vu?function(n,i,a){if(ur(n),i=di(i),ur(a),typeof n==\"function\"&&i===\"prototype\"&&\"value\"in a&&Hr in a&&!a[Hr]){var o=Hu(n,i);o&&o[Hr]&&(n[i]=a.value,a={configurable:Gr in a?a[Gr]:o[Gr],enumerable:Vr in a?a[Vr]:o[Vr],writable:!1})}return $r(n,i,a)}:$r:function(n,i,a){if(ur(n),i=di(i),ur(a),$u)try{return $r(n,i,a)}catch{}if(\"get\"in a||\"set\"in a)throw Gu(\"Accessors not supported\");return\"value\"in a&&(n[i]=a.value),n}});var cr=V((Zp,mi)=>{var Ju=Te(),Ku=Jr(),Qu=Or();mi.exports=Ju?function(e,n,i){return Ku.f(e,n,Qu(1,i))}:function(e,n,i){return e[n]=i,e}});var Qr=V((eh,gi)=>{var Yu=de(),Xu=ve(),Kr=ar(),Zu=Yu(Function.toString);Xu(Kr.inspectSource)||(Kr.inspectSource=function(e){return Zu(e)});gi.exports=Kr.inspectSource});var _i=V((rh,wi)=>{var ec=ee(),rc=ve(),tc=Qr(),yi=ec.WeakMap;wi.exports=rc(yi)&&/native code/.test(tc(yi))});var ki=V((th,xi)=>{var nc=Dr(),ic=Lr(),bi=nc(\"keys\");xi.exports=function(e){return bi[e]||(bi[e]=ic(e))}});var Yr=V((nh,Si)=>{Si.exports={}});var Pi=V((ih,Ai)=>{var sc=_i(),qi=ee(),Xr=de(),oc=Me(),ac=cr(),Zr=Se(),et=ar(),uc=ki(),cc=Yr(),Oi=\"Object already initialized\",tt=qi.TypeError,lc=qi.WeakMap,lr,Fe,fr,fc=function(e){return fr(e)?Fe(e):lr(e,{})},pc=function(e){return function(n){var i;if(!oc(n)||(i=Fe(n)).type!==e)throw tt(\"Incompatible receiver, \"+e+\" required\");return i}};sc||et.state?(Oe=et.state||(et.state=new lc),Ti=Xr(Oe.get),rt=Xr(Oe.has),Ei=Xr(Oe.set),lr=function(e,n){if(rt(Oe,e))throw new tt(Oi);return n.facade=e,Ei(Oe,e,n),n},Fe=function(e){return Ti(Oe,e)||{}},fr=function(e){return rt(Oe,e)}):(qe=uc(\"state\"),cc[qe]=!0,lr=function(e,n){if(Zr(e,qe))throw new tt(Oi);return n.facade=e,ac(e,qe,n),n},Fe=function(e){return Zr(e,qe)?e[qe]:{}},fr=function(e){return Zr(e,qe)});var Oe,Ti,rt,Ei,qe;Ai.exports={set:lr,get:Fe,has:fr,enforce:fc,getterFor:pc}});var Ci=V((sh,Ii)=>{var nt=Te(),hc=Se(),Ri=Function.prototype,dc=nt&&Object.getOwnPropertyDescriptor,it=hc(Ri,\"name\"),vc=it&&function(){}.name===\"something\",mc=it&&(!nt||nt&&dc(Ri,\"name\").configurable);Ii.exports={EXISTS:it,PROPER:vc,CONFIGURABLE:mc}});var Li=V((oh,Di)=>{var gc=ee(),Ni=ve(),yc=Se(),ji=cr(),wc=or(),_c=Qr(),Mi=Pi(),bc=Ci().CONFIGURABLE,xc=Mi.get,kc=Mi.enforce,Sc=String(String).split(\"String\");(Di.exports=function(e,n,i,a){var o=a?!!a.unsafe:!1,f=a?!!a.enumerable:!1,p=a?!!a.noTargetGet:!1,h=a&&a.name!==void 0?a.name:n,g;if(Ni(i)&&(String(h).slice(0,7)===\"Symbol(\"&&(h=\"[\"+String(h).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!yc(i,\"name\")||bc&&i.name!==h)&&ji(i,\"name\",h),g=kc(i),g.source||(g.source=Sc.join(typeof h==\"string\"?h:\"\"))),e===gc){f?e[n]=i:wc(n,i);return}else o?!p&&e[n]&&(f=!0):delete e[n];f?e[n]=i:ji(e,n,i)})(Function.prototype,\"toString\",function(){return Ni(this)&&xc(this).source||_c(this)})});var st=V((ah,zi)=>{var Oc=Math.ceil,Tc=Math.floor;zi.exports=function(e){var n=+e;return n!==n||n===0?0:(n>0?Tc:Oc)(n)}});var Fi=V((uh,Bi)=>{var Ec=st(),qc=Math.max,Ac=Math.min;Bi.exports=function(e,n){var i=Ec(e);return i<0?qc(i+n,0):Ac(i,n)}});var Wi=V((ch,Ui)=>{var Pc=st(),Rc=Math.min;Ui.exports=function(e){return e>0?Rc(Pc(e),9007199254740991):0}});var Vi=V((lh,$i)=>{var Ic=Wi();$i.exports=function(e){return Ic(e.length)}});var Ji=V((fh,Hi)=>{var Cc=nr(),Nc=Fi(),jc=Vi(),Gi=function(e){return function(n,i,a){var o=Cc(n),f=jc(o),p=Nc(a,f),h;if(e&&i!=i){for(;f>p;)if(h=o[p++],h!=h)return!0}else for(;f>p;p++)if((e||p in o)&&o[p]===i)return e||p||0;return!e&&-1}};Hi.exports={includes:Gi(!0),indexOf:Gi(!1)}});var Yi=V((ph,Qi)=>{var Mc=de(),ot=Se(),Dc=nr(),Lc=Ji().indexOf,zc=Yr(),Ki=Mc([].push);Qi.exports=function(e,n){var i=Dc(e),a=0,o=[],f;for(f in i)!ot(zc,f)&&ot(i,f)&&Ki(o,f);for(;n.length>a;)ot(i,f=n[a++])&&(~Lc(o,f)||Ki(o,f));return o}});var Zi=V((hh,Xi)=>{Xi.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var rs=V(es=>{var Bc=Yi(),Fc=Zi(),Uc=Fc.concat(\"length\",\"prototype\");es.f=Object.getOwnPropertyNames||function(n){return Bc(n,Uc)}});var ns=V(ts=>{ts.f=Object.getOwnPropertySymbols});var ss=V((mh,is)=>{var Wc=ir(),$c=de(),Vc=rs(),Gc=ns(),Hc=Wr(),Jc=$c([].concat);is.exports=Wc(\"Reflect\",\"ownKeys\")||function(n){var i=Vc.f(Hc(n)),a=Gc.f;return a?Jc(i,a(n)):i}});var us=V((gh,as)=>{var os=Se(),Kc=ss(),Qc=Ur(),Yc=Jr();as.exports=function(e,n,i){for(var a=Kc(n),o=Yc.f,f=Qc.f,p=0;p{var Xc=ke(),Zc=ve(),el=/#|\\.prototype\\./,Ue=function(e,n){var i=tl[rl(e)];return i==il?!0:i==nl?!1:Zc(n)?Xc(n):!!n},rl=Ue.normalize=function(e){return String(e).replace(el,\".\").toLowerCase()},tl=Ue.data={},nl=Ue.NATIVE=\"N\",il=Ue.POLYFILL=\"P\";cs.exports=Ue});var ps=V((wh,fs)=>{var at=ee(),sl=Ur().f,ol=cr(),al=Li(),ul=or(),cl=us(),ll=ls();fs.exports=function(e,n){var i=e.target,a=e.global,o=e.stat,f,p,h,g,c,t;if(a?p=at:o?p=at[i]||ul(i,{}):p=(at[i]||{}).prototype,p)for(h in n){if(c=n[h],e.noTargetGet?(t=sl(p,h),g=t&&t.value):g=p[h],f=ll(a?h:i+(o?\".\":\"#\")+h,e.forced),!f&&g!==void 0){if(typeof c==typeof g)continue;cl(c,g)}(e.sham||g&&g.sham)&&ol(c,\"sham\",!0),al(p,h,c,e)}}});var hs=V(()=>{var fl=ps(),pl=ee();fl({global:!0},{globalThis:pl})});var ds=V(()=>{hs()});var lp=V((Ph,la)=>{ds();var kt=Object.defineProperty,hl=Object.getOwnPropertyDescriptor,St=Object.getOwnPropertyNames,dl=Object.prototype.hasOwnProperty,Le=(e,n)=>function(){return e&&(n=(0,e[St(e)[0]])(e=0)),n},R=(e,n)=>function(){return n||(0,e[St(e)[0]])((n={exports:{}}).exports,n),n.exports},Ot=(e,n)=>{for(var i in n)kt(e,i,{get:n[i],enumerable:!0})},vl=(e,n,i,a)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let o of St(n))!dl.call(e,o)&&o!==i&&kt(e,o,{get:()=>n[o],enumerable:!(a=hl(n,o))||a.enumerable});return e},Tt=e=>vl(kt({},\"__esModule\",{value:!0}),e),A=Le({\"\"(){}}),ml=R({\"src/common/parser-create-error.js\"(e,n){\"use strict\";A();function i(a,o){let f=new SyntaxError(a+\" (\"+o.start.line+\":\"+o.start.column+\")\");return f.loc=o,f}n.exports=i}}),Cs=R({\"src/utils/get-last.js\"(e,n){\"use strict\";A();var i=a=>a[a.length-1];n.exports=i}}),Ns=R({\"src/utils/front-matter/parse.js\"(e,n){\"use strict\";A();var i=new RegExp(\"^(?-{3}|\\\\+{3})(?[^\\\\n]*)\\\\n(?:|(?.*?)\\\\n)(?\\\\k|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function a(o){let f=o.match(i);if(!f)return{content:o};let{startDelimiter:p,language:h,value:g=\"\",endDelimiter:c}=f.groups,t=h.trim()||\"yaml\";if(p===\"+++\"&&(t=\"toml\"),t!==\"yaml\"&&p!==c)return{content:o};let[r]=f;return{frontMatter:{type:\"front-matter\",lang:t,value:g,startDelimiter:p,endDelimiter:c,raw:r.replace(/\\n$/,\"\")},content:r.replace(/[^\\n]/g,\" \")+o.slice(r.length)}}n.exports=a}}),js={};Ot(js,{EOL:()=>gt,arch:()=>gl,cpus:()=>Us,default:()=>Hs,endianness:()=>Ms,freemem:()=>Bs,getNetworkInterfaces:()=>Gs,hostname:()=>Ds,loadavg:()=>Ls,networkInterfaces:()=>Vs,platform:()=>yl,release:()=>$s,tmpDir:()=>vt,tmpdir:()=>mt,totalmem:()=>Fs,type:()=>Ws,uptime:()=>zs});function Ms(){if(typeof pr>\"u\"){var e=new ArrayBuffer(2),n=new Uint8Array(e),i=new Uint16Array(e);if(n[0]=1,n[1]=2,i[0]===258)pr=\"BE\";else if(i[0]===513)pr=\"LE\";else throw new Error(\"unable to figure out endianess\")}return pr}function Ds(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function Ls(){return[]}function zs(){return 0}function Bs(){return Number.MAX_VALUE}function Fs(){return Number.MAX_VALUE}function Us(){return[]}function Ws(){return\"Browser\"}function $s(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function Vs(){}function Gs(){}function gl(){return\"javascript\"}function yl(){return\"browser\"}function vt(){return\"/tmp\"}var pr,mt,gt,Hs,wl=Le({\"node-modules-polyfills:os\"(){A(),mt=vt,gt=`\n`,Hs={EOL:gt,tmpdir:mt,tmpDir:vt,networkInterfaces:Vs,getNetworkInterfaces:Gs,release:$s,type:Ws,cpus:Us,totalmem:Fs,freemem:Bs,uptime:zs,loadavg:Ls,hostname:Ds,endianness:Ms}}}),_l=R({\"node-modules-polyfills-commonjs:os\"(e,n){A();var i=(wl(),Tt(js));if(i&&i.default){n.exports=i.default;for(let a in i)n.exports[a]=i[a]}else i&&(n.exports=i)}}),bl=R({\"node_modules/detect-newline/index.js\"(e,n){\"use strict\";A();var i=a=>{if(typeof a!=\"string\")throw new TypeError(\"Expected a string\");let o=a.match(/(?:\\r?\\n)/g)||[];if(o.length===0)return;let f=o.filter(h=>h===`\\r\n`).length,p=o.length-f;return f>p?`\\r\n`:`\n`};n.exports=i,n.exports.graceful=a=>typeof a==\"string\"&&i(a)||`\n`}}),xl=R({\"node_modules/jest-docblock/build/index.js\"(e){\"use strict\";A(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.extract=s,e.parse=m,e.parseWithComments=v,e.print=y,e.strip=l;function n(){let d=_l();return n=function(){return d},d}function i(){let d=a(bl());return i=function(){return d},d}function a(d){return d&&d.__esModule?d:{default:d}}var o=/\\*\\/$/,f=/^\\/\\*\\*/,p=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,h=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,g=/^(\\r?\\n)+/,c=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,t=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,r=/(\\r?\\n|^) *\\* ?/g,u=[];function s(d){let _=d.match(p);return _?_[0].trimLeft():\"\"}function l(d){let _=d.match(p);return _&&_[0]?d.substring(_[0].length):d}function m(d){return v(d).pragmas}function v(d){let _=(0,i().default)(d)||n().EOL;d=d.replace(f,\"\").replace(o,\"\").replace(r,\"$1\");let S=\"\";for(;S!==d;)S=d,d=d.replace(c,\"\".concat(_,\"$1 $2\").concat(_));d=d.replace(g,\"\").trimRight();let x=Object.create(null),N=d.replace(t,\"\").replace(g,\"\").trimRight(),P;for(;P=t.exec(d);){let W=P[2].replace(h,\"\");typeof x[P[1]]==\"string\"||Array.isArray(x[P[1]])?x[P[1]]=u.concat(x[P[1]],W):x[P[1]]=W}return{comments:N,pragmas:x}}function y(d){let{comments:_=\"\",pragmas:S={}}=d,x=(0,i().default)(_)||n().EOL,N=\"/**\",P=\" *\",W=\" */\",U=Object.keys(S),H=U.map($=>w($,S[$])).reduce(($,B)=>$.concat(B),[]).map($=>P+\" \"+$+x).join(\"\");if(!_){if(U.length===0)return\"\";if(U.length===1&&!Array.isArray(S[U[0]])){let $=S[U[0]];return\"\".concat(N,\" \").concat(w(U[0],$)[0]).concat(W)}}let D=_.split(x).map($=>\"\".concat(P,\" \").concat($)).join(x)+x;return N+x+(_?D:\"\")+(_&&U.length?P+x:\"\")+H+W}function w(d,_){return u.concat(_).map(S=>\"@\".concat(d,\" \").concat(S).trim())}}}),kl=R({\"src/common/end-of-line.js\"(e,n){\"use strict\";A();function i(p){let h=p.indexOf(\"\\r\");return h>=0?p.charAt(h+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function a(p){switch(p){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function o(p,h){let g;switch(h){case`\n`:g=/\\n/g;break;case\"\\r\":g=/\\r/g;break;case`\\r\n`:g=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(h),\".\"))}let c=p.match(g);return c?c.length:0}function f(p){return p.replace(/\\r\\n?/g,`\n`)}n.exports={guessEndOfLine:i,convertEndOfLineToChars:a,countEndOfLineChars:o,normalizeEndOfLine:f}}}),Sl=R({\"src/language-js/utils/get-shebang.js\"(e,n){\"use strict\";A();function i(a){if(!a.startsWith(\"#!\"))return\"\";let o=a.indexOf(`\n`);return o===-1?a:a.slice(0,o)}n.exports=i}}),Ol=R({\"src/language-js/pragma.js\"(e,n){\"use strict\";A();var{parseWithComments:i,strip:a,extract:o,print:f}=xl(),{normalizeEndOfLine:p}=kl(),h=Sl();function g(r){let u=h(r);u&&(r=r.slice(u.length+1));let s=o(r),{pragmas:l,comments:m}=i(s);return{shebang:u,text:r,pragmas:l,comments:m}}function c(r){let u=Object.keys(g(r).pragmas);return u.includes(\"prettier\")||u.includes(\"format\")}function t(r){let{shebang:u,text:s,pragmas:l,comments:m}=g(r),v=a(s),y=f({pragmas:Object.assign({format:\"\"},l),comments:m.trimStart()});return(u?\"\".concat(u,`\n`):\"\")+p(y)+(v.startsWith(`\n`)?`\n`:`\n\n`)+v}n.exports={hasPragma:c,insertPragma:t}}}),Tl=R({\"src/language-css/pragma.js\"(e,n){\"use strict\";A();var i=Ol(),a=Ns();function o(p){return i.hasPragma(a(p).content)}function f(p){let{frontMatter:h,content:g}=a(p);return(h?h.raw+`\n\n`:\"\")+i.insertPragma(g)}n.exports={hasPragma:o,insertPragma:f}}}),El=R({\"src/utils/text/skip.js\"(e,n){\"use strict\";A();function i(h){return(g,c,t)=>{let r=t&&t.backwards;if(c===!1)return!1;let{length:u}=g,s=c;for(;s>=0&&s0}n.exports=i}}),Pl=R({\"src/language-css/utils/has-scss-interpolation.js\"(e,n){\"use strict\";A();var i=Al();function a(o){if(i(o)){for(let f=o.length-1;f>0;f--)if(o[f].type===\"word\"&&o[f].value===\"{\"&&o[f-1].type===\"word\"&&o[f-1].value.endsWith(\"#\"))return!0}return!1}n.exports=a}}),Rl=R({\"src/language-css/utils/has-string-or-function.js\"(e,n){\"use strict\";A();function i(a){return a.some(o=>o.type===\"string\"||o.type===\"func\")}n.exports=i}}),Il=R({\"src/language-css/utils/is-less-parser.js\"(e,n){\"use strict\";A();function i(a){return a.parser===\"css\"||a.parser===\"less\"}n.exports=i}}),Cl=R({\"src/language-css/utils/is-scss.js\"(e,n){\"use strict\";A();function i(a,o){return a===\"less\"||a===\"scss\"?a===\"scss\":/(?:\\w\\s*:\\s*[^:}]+|#){|@import[^\\n]+(?:url|,)/.test(o)}n.exports=i}}),Nl=R({\"src/language-css/utils/is-scss-nested-property-node.js\"(e,n){\"use strict\";A();function i(a){return a.selector?a.selector.replace(/\\/\\*.*?\\*\\//,\"\").replace(/\\/\\/.*\\n/,\"\").trim().endsWith(\":\"):!1}n.exports=i}}),jl=R({\"src/language-css/utils/is-scss-variable.js\"(e,n){\"use strict\";A();function i(a){return Boolean((a==null?void 0:a.type)===\"word\"&&a.value.startsWith(\"$\"))}n.exports=i}}),Ml=R({\"src/language-css/utils/stringify-node.js\"(e,n){\"use strict\";A();function i(a){var o,f,p;if(a.groups){var h,g,c;let y=((h=a.open)===null||h===void 0?void 0:h.value)||\"\",w=a.groups.map(_=>i(_)).join(((g=a.groups[0])===null||g===void 0?void 0:g.type)===\"comma_group\"?\",\":\"\"),d=((c=a.close)===null||c===void 0?void 0:c.value)||\"\";return y+w+d}let t=((o=a.raws)===null||o===void 0?void 0:o.before)||\"\",r=((f=a.raws)===null||f===void 0?void 0:f.quote)||\"\",u=a.type===\"atword\"?\"@\":\"\",s=a.value||\"\",l=a.unit||\"\",m=a.group?i(a.group):\"\",v=((p=a.raws)===null||p===void 0?void 0:p.after)||\"\";return t+r+u+s+r+l+m+v}n.exports=i}}),Dl=R({\"src/language-css/utils/is-module-rule-name.js\"(e,n){\"use strict\";A();var i=new Set([\"import\",\"use\",\"forward\"]);function a(o){return i.has(o)}n.exports=a}}),we=R({\"node_modules/postcss-values-parser/lib/node.js\"(e,n){\"use strict\";A();var i=function(a,o){let f=new a.constructor;for(let p in a){if(!a.hasOwnProperty(p))continue;let h=a[p],g=typeof h;p===\"parent\"&&g===\"object\"?o&&(f[p]=o):p===\"source\"?f[p]=h:h instanceof Array?f[p]=h.map(c=>i(c,f)):p!==\"before\"&&p!==\"after\"&&p!==\"between\"&&p!==\"semicolon\"&&(g===\"object\"&&h!==null&&(h=i(h)),f[p]=h)}return f};n.exports=class{constructor(o){o=o||{},this.raws={before:\"\",after:\"\"};for(let f in o)this[f]=o[f]}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(){return[this.raws.before,String(this.value),this.raws.after].join(\"\")}clone(o){o=o||{};let f=i(this);for(let p in o)f[p]=o[p];return f}cloneBefore(o){o=o||{};let f=this.clone(o);return this.parent.insertBefore(this,f),f}cloneAfter(o){o=o||{};let f=this.clone(o);return this.parent.insertAfter(this,f),f}replaceWith(){let o=Array.prototype.slice.call(arguments);if(this.parent){for(let f of o)this.parent.insertBefore(this,f);this.remove()}return this}moveTo(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.append(this),this}moveBefore(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertBefore(o,this),this}moveAfter(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertAfter(o,this),this}next(){let o=this.parent.index(this);return this.parent.nodes[o+1]}prev(){let o=this.parent.index(this);return this.parent.nodes[o-1]}toJSON(){let o={};for(let f in this){if(!this.hasOwnProperty(f)||f===\"parent\")continue;let p=this[f];p instanceof Array?o[f]=p.map(h=>typeof h==\"object\"&&h.toJSON?h.toJSON():h):typeof p==\"object\"&&p.toJSON?o[f]=p.toJSON():o[f]=p}return o}root(){let o=this;for(;o.parent;)o=o.parent;return o}cleanRaws(o){delete this.raws.before,delete this.raws.after,o||delete this.raws.between}positionInside(o){let f=this.toString(),p=this.source.start.column,h=this.source.start.line;for(let g=0;g{let h=o(f,p);return h!==!1&&f.walk&&(h=f.walk(o)),h})}walkType(o,f){if(!o||!f)throw new Error(\"Parameters {type} and {callback} are required.\");let p=typeof o==\"function\";return this.walk((h,g)=>{if(p&&h instanceof o||!p&&h.type===o)return f.call(this,h,g)})}append(o){return o.parent=this,this.nodes.push(o),this}prepend(o){return o.parent=this,this.nodes.unshift(o),this}cleanRaws(o){if(super.cleanRaws(o),this.nodes)for(let f of this.nodes)f.cleanRaws(o)}insertAfter(o,f){let p=this.index(o),h;this.nodes.splice(p+1,0,f);for(let g in this.indexes)h=this.indexes[g],p<=h&&(this.indexes[g]=h+this.nodes.length);return this}insertBefore(o,f){let p=this.index(o),h;this.nodes.splice(p,0,f);for(let g in this.indexes)h=this.indexes[g],p<=h&&(this.indexes[g]=h+this.nodes.length);return this}removeChild(o){o=this.index(o),this.nodes[o].parent=void 0,this.nodes.splice(o,1);let f;for(let p in this.indexes)f=this.indexes[p],f>=o&&(this.indexes[p]=f-1);return this}removeAll(){for(let o of this.nodes)o.parent=void 0;return this.nodes=[],this}every(o){return this.nodes.every(o)}some(o){return this.nodes.some(o)}index(o){return typeof o==\"number\"?o:this.nodes.indexOf(o)}get first(){if(!!this.nodes)return this.nodes[0]}get last(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}toString(){let o=this.nodes.map(String).join(\"\");return this.value&&(o=this.value+o),this.raws.before&&(o=this.raws.before+o),this.raws.after&&(o+=this.raws.after),o}};a.registerWalker=o=>{let f=\"walk\"+o.name;f.lastIndexOf(\"s\")!==f.length-1&&(f+=\"s\"),!a.prototype[f]&&(a.prototype[f]=function(p){return this.walkType(o,p)})},n.exports=a}}),Ll=R({\"node_modules/postcss-values-parser/lib/root.js\"(e,n){\"use strict\";A();var i=ue();n.exports=class extends i{constructor(o){super(o),this.type=\"root\"}}}}),Ks=R({\"node_modules/postcss-values-parser/lib/value.js\"(e,n){\"use strict\";A();var i=ue();n.exports=class extends i{constructor(o){super(o),this.type=\"value\",this.unbalanced=0}}}}),Qs=R({\"node_modules/postcss-values-parser/lib/atword.js\"(e,n){\"use strict\";A();var i=ue(),a=class extends i{constructor(o){super(o),this.type=\"atword\"}toString(){let o=this.quoted?this.raws.quote:\"\";return[this.raws.before,\"@\",String.prototype.toString.call(this.value),this.raws.after].join(\"\")}};i.registerWalker(a),n.exports=a}}),Ys=R({\"node_modules/postcss-values-parser/lib/colon.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"colon\"}};i.registerWalker(o),n.exports=o}}),Xs=R({\"node_modules/postcss-values-parser/lib/comma.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"comma\"}};i.registerWalker(o),n.exports=o}}),Zs=R({\"node_modules/postcss-values-parser/lib/comment.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"comment\",this.inline=Object(f).inline||!1}toString(){return[this.raws.before,this.inline?\"//\":\"/*\",String(this.value),this.inline?\"\":\"*/\",this.raws.after].join(\"\")}};i.registerWalker(o),n.exports=o}}),eo=R({\"node_modules/postcss-values-parser/lib/function.js\"(e,n){\"use strict\";A();var i=ue(),a=class extends i{constructor(o){super(o),this.type=\"func\",this.unbalanced=-1}};i.registerWalker(a),n.exports=a}}),ro=R({\"node_modules/postcss-values-parser/lib/number.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"number\",this.unit=Object(f).unit||\"\"}toString(){return[this.raws.before,String(this.value),this.unit,this.raws.after].join(\"\")}};i.registerWalker(o),n.exports=o}}),to=R({\"node_modules/postcss-values-parser/lib/operator.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"operator\"}};i.registerWalker(o),n.exports=o}}),no=R({\"node_modules/postcss-values-parser/lib/paren.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"paren\",this.parenType=\"\"}};i.registerWalker(o),n.exports=o}}),io=R({\"node_modules/postcss-values-parser/lib/string.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"string\"}toString(){let f=this.quoted?this.raws.quote:\"\";return[this.raws.before,f,this.value+\"\",f,this.raws.after].join(\"\")}};i.registerWalker(o),n.exports=o}}),so=R({\"node_modules/postcss-values-parser/lib/word.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"word\"}};i.registerWalker(o),n.exports=o}}),oo=R({\"node_modules/postcss-values-parser/lib/unicode-range.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"unicode-range\"}};i.registerWalker(o),n.exports=o}});function ao(){throw new Error(\"setTimeout has not been defined\")}function uo(){throw new Error(\"clearTimeout has not been defined\")}function co(e){if(be===setTimeout)return setTimeout(e,0);if((be===ao||!be)&&setTimeout)return be=setTimeout,setTimeout(e,0);try{return be(e,0)}catch{try{return be.call(null,e,0)}catch{return be.call(this,e,0)}}}function zl(e){if(xe===clearTimeout)return clearTimeout(e);if((xe===uo||!xe)&&clearTimeout)return xe=clearTimeout,clearTimeout(e);try{return xe(e)}catch{try{return xe.call(null,e)}catch{return xe.call(this,e)}}}function Bl(){!Ne||!Ce||(Ne=!1,Ce.length?me=Ce.concat(me):$e=-1,me.length&&lo())}function lo(){if(!Ne){var e=co(Bl);Ne=!0;for(var n=me.length;n;){for(Ce=me,me=[];++$e1)for(var i=1;iIt,debuglog:()=>mo,default:()=>Oo,deprecate:()=>qt,format:()=>gr,inherits:()=>Et,inspect:()=>ye,isArray:()=>At,isBoolean:()=>yr,isBuffer:()=>_o,isDate:()=>vr,isError:()=>He,isFunction:()=>Je,isNull:()=>Ke,isNullOrUndefined:()=>go,isNumber:()=>Pt,isObject:()=>je,isPrimitive:()=>wo,isRegExp:()=>Ge,isString:()=>Qe,isSymbol:()=>yo,isUndefined:()=>ge,log:()=>bo});function gr(e){if(!Qe(e)){for(var n=[],i=0;i=o)return h;switch(h){case\"%s\":return String(a[i++]);case\"%d\":return Number(a[i++]);case\"%j\":try{return JSON.stringify(a[i++])}catch{return\"[Circular]\"}default:return h}}),p=a[i];i=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),yr(n)?i.showHidden=n:n&&It(i,n),ge(i.showHidden)&&(i.showHidden=!1),ge(i.depth)&&(i.depth=2),ge(i.colors)&&(i.colors=!1),ge(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=Ql),dr(i,e,i.depth)}function Ql(e,n){var i=ye.styles[n];return i?\"\\x1B[\"+ye.colors[i][0]+\"m\"+e+\"\\x1B[\"+ye.colors[i][1]+\"m\":e}function Yl(e,n){return e}function Xl(e){var n={};return e.forEach(function(i,a){n[i]=!0}),n}function dr(e,n,i){if(e.customInspect&&n&&Je(n.inspect)&&n.inspect!==ye&&!(n.constructor&&n.constructor.prototype===n)){var a=n.inspect(i,e);return Qe(a)||(a=dr(e,a,i)),a}var o=Zl(e,n);if(o)return o;var f=Object.keys(n),p=Xl(f);if(e.showHidden&&(f=Object.getOwnPropertyNames(n)),He(n)&&(f.indexOf(\"message\")>=0||f.indexOf(\"description\")>=0))return ct(n);if(f.length===0){if(Je(n)){var h=n.name?\": \"+n.name:\"\";return e.stylize(\"[Function\"+h+\"]\",\"special\")}if(Ge(n))return e.stylize(RegExp.prototype.toString.call(n),\"regexp\");if(vr(n))return e.stylize(Date.prototype.toString.call(n),\"date\");if(He(n))return ct(n)}var g=\"\",c=!1,t=[\"{\",\"}\"];if(At(n)&&(c=!0,t=[\"[\",\"]\"]),Je(n)){var r=n.name?\": \"+n.name:\"\";g=\" [Function\"+r+\"]\"}if(Ge(n)&&(g=\" \"+RegExp.prototype.toString.call(n)),vr(n)&&(g=\" \"+Date.prototype.toUTCString.call(n)),He(n)&&(g=\" \"+ct(n)),f.length===0&&(!c||n.length==0))return t[0]+g+t[1];if(i<0)return Ge(n)?e.stylize(RegExp.prototype.toString.call(n),\"regexp\"):e.stylize(\"[Object]\",\"special\");e.seen.push(n);var u;return c?u=ef(e,n,i,p,f):u=f.map(function(s){return yt(e,n,i,p,s,c)}),e.seen.pop(),rf(u,g,t)}function Zl(e,n){if(ge(n))return e.stylize(\"undefined\",\"undefined\");if(Qe(n)){var i=\"'\"+JSON.stringify(n).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(i,\"string\")}if(Pt(n))return e.stylize(\"\"+n,\"number\");if(yr(n))return e.stylize(\"\"+n,\"boolean\");if(Ke(n))return e.stylize(\"null\",\"null\")}function ct(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function ef(e,n,i,a,o){for(var f=[],p=0,h=n.length;p-1&&(f?h=h.split(`\n`).map(function(c){return\" \"+c}).join(`\n`).substr(2):h=`\n`+h.split(`\n`).map(function(c){return\" \"+c}).join(`\n`))):h=e.stylize(\"[Circular]\",\"special\")),ge(p)){if(f&&o.match(/^\\d+$/))return h;p=JSON.stringify(\"\"+o),p.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(p=p.substr(1,p.length-2),p=e.stylize(p,\"name\")):(p=p.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),p=e.stylize(p,\"string\"))}return p+\": \"+h}function rf(e,n,i){var a=0,o=e.reduce(function(f,p){return a++,p.indexOf(`\n`)>=0&&a++,f+p.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0);return o>60?i[0]+(n===\"\"?\"\":n+`\n `)+\" \"+e.join(`,\n `)+\" \"+i[1]:i[0]+n+\" \"+e.join(\", \")+\" \"+i[1]}function At(e){return Array.isArray(e)}function yr(e){return typeof e==\"boolean\"}function Ke(e){return e===null}function go(e){return e==null}function Pt(e){return typeof e==\"number\"}function Qe(e){return typeof e==\"string\"}function yo(e){return typeof e==\"symbol\"}function ge(e){return e===void 0}function Ge(e){return je(e)&&Rt(e)===\"[object RegExp]\"}function je(e){return typeof e==\"object\"&&e!==null}function vr(e){return je(e)&&Rt(e)===\"[object Date]\"}function He(e){return je(e)&&(Rt(e)===\"[object Error]\"||e instanceof Error)}function Je(e){return typeof e==\"function\"}function wo(e){return e===null||typeof e==\"boolean\"||typeof e==\"number\"||typeof e==\"string\"||typeof e==\"symbol\"||typeof e>\"u\"}function _o(e){return Buffer.isBuffer(e)}function Rt(e){return Object.prototype.toString.call(e)}function lt(e){return e<10?\"0\"+e.toString(10):e.toString(10)}function tf(){var e=new Date,n=[lt(e.getHours()),lt(e.getMinutes()),lt(e.getSeconds())].join(\":\");return[e.getDate(),So[e.getMonth()],n].join(\" \")}function bo(){console.log(\"%s - %s\",tf(),gr.apply(null,arguments))}function It(e,n){if(!n||!je(n))return e;for(var i=Object.keys(n),a=i.length;a--;)e[i[a]]=n[i[a]];return e}function xo(e,n){return Object.prototype.hasOwnProperty.call(e,n)}var ko,We,ft,So,Oo,nf=Le({\"node-modules-polyfills:util\"(){A(),Jl(),Kl(),ko=/%[sdj%]/g,We={},ye.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},ye.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},So=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],Oo={inherits:Et,_extend:It,log:bo,isBuffer:_o,isPrimitive:wo,isFunction:Je,isError:He,isDate:vr,isObject:je,isRegExp:Ge,isUndefined:ge,isSymbol:yo,isString:Qe,isNumber:Pt,isNullOrUndefined:go,isNull:Ke,isBoolean:yr,isArray:At,inspect:ye,deprecate:qt,format:gr,debuglog:mo}}}),sf=R({\"node-modules-polyfills-commonjs:util\"(e,n){A();var i=(nf(),Tt(vo));if(i&&i.default){n.exports=i.default;for(let a in i)n.exports[a]=i[a]}else i&&(n.exports=i)}}),of=R({\"node_modules/postcss-values-parser/lib/errors/TokenizeError.js\"(e,n){\"use strict\";A();var i=class extends Error{constructor(a){super(a),this.name=this.constructor.name,this.message=a||\"An error ocurred while tokzenizing.\",typeof Error.captureStackTrace==\"function\"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(a).stack}};n.exports=i}}),af=R({\"node_modules/postcss-values-parser/lib/tokenize.js\"(e,n){\"use strict\";A();var i=\"{\".charCodeAt(0),a=\"}\".charCodeAt(0),o=\"(\".charCodeAt(0),f=\")\".charCodeAt(0),p=\"'\".charCodeAt(0),h='\"'.charCodeAt(0),g=\"\\\\\".charCodeAt(0),c=\"/\".charCodeAt(0),t=\".\".charCodeAt(0),r=\",\".charCodeAt(0),u=\":\".charCodeAt(0),s=\"*\".charCodeAt(0),l=\"-\".charCodeAt(0),m=\"+\".charCodeAt(0),v=\"#\".charCodeAt(0),y=`\n`.charCodeAt(0),w=\" \".charCodeAt(0),d=\"\\f\".charCodeAt(0),_=\"\t\".charCodeAt(0),S=\"\\r\".charCodeAt(0),x=\"@\".charCodeAt(0),N=\"e\".charCodeAt(0),P=\"E\".charCodeAt(0),W=\"0\".charCodeAt(0),U=\"9\".charCodeAt(0),H=\"u\".charCodeAt(0),D=\"U\".charCodeAt(0),$=/[ \\n\\t\\r\\{\\(\\)'\"\\\\;,/]/g,B=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\+\\|~>,\\[\\]\\\\]|\\/(?=\\*)/g,O=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\-\\+\\|~>,\\[\\]\\\\]|\\//g,j=/^[a-z0-9]/i,C=/^[a-f0-9?\\-]/i,I=sf(),X=of();n.exports=function(Q,K){K=K||{};let J=[],M=Q.valueOf(),Y=M.length,G=-1,E=1,k=0,b=0,L=null,q,T,F,z,re,ne,ce,fe,te,ie,ae,se;function le(Ze){let _e=I.format(\"Unclosed %s at line: %d, column: %d, token: %d\",Ze,E,k-G,k);throw new X(_e)}function pe(){let Ze=I.format(\"Syntax error at line: %d, column: %d, token: %d\",E,k-G,k);throw new X(Ze)}for(;k0&&J[J.length-1][0]===\"word\"&&J[J.length-1][1]===\"url\",J.push([\"(\",\"(\",E,k-G,E,T-G,k]);break;case f:b--,L=L&&b>0,J.push([\")\",\")\",E,k-G,E,T-G,k]);break;case p:case h:F=q===p?\"'\":'\"',T=k;do for(ie=!1,T=M.indexOf(F,T+1),T===-1&&le(\"quote\",F),ae=T;M.charCodeAt(ae-1)===g;)ae-=1,ie=!ie;while(ie);J.push([\"string\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case x:$.lastIndex=k+1,$.test(M),$.lastIndex===0?T=M.length-1:T=$.lastIndex-2,J.push([\"atword\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case g:T=k,q=M.charCodeAt(T+1),ce&&q!==c&&q!==w&&q!==y&&q!==_&&q!==S&&q!==d&&(T+=1),J.push([\"word\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case m:case l:case s:T=k+1,se=M.slice(k+1,T+1);let Ze=M.slice(k-1,k);if(q===l&&se.charCodeAt(0)===l){T++,J.push([\"word\",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;break}J.push([\"operator\",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;break;default:if(q===c&&(M.charCodeAt(k+1)===s||K.loose&&!L&&M.charCodeAt(k+1)===c)){if(M.charCodeAt(k+1)===s)T=M.indexOf(\"*/\",k+2)+1,T===0&&le(\"comment\",\"*/\");else{let Be=M.indexOf(`\n`,k+2);T=Be!==-1?Be-1:Y}ne=M.slice(k,T+1),z=ne.split(`\n`),re=z.length-1,re>0?(fe=E+re,te=T-z[re].length):(fe=E,te=G),J.push([\"comment\",ne,E,k-G,fe,T-te,k]),G=te,E=fe,k=T}else if(q===v&&!j.test(M.slice(k+1,k+2)))T=k+1,J.push([\"#\",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;else if((q===H||q===D)&&M.charCodeAt(k+1)===m){T=k+2;do T+=1,q=M.charCodeAt(T);while(T=W&&q<=U&&(_e=O),_e.lastIndex=k+1,_e.test(M),_e.lastIndex===0?T=M.length-1:T=_e.lastIndex-2,_e===O||q===t){let Be=M.charCodeAt(T),Bt=M.charCodeAt(T+1),Ft=M.charCodeAt(T+2);(Be===N||Be===P)&&(Bt===l||Bt===m)&&Ft>=W&&Ft<=U&&(O.lastIndex=T+2,O.test(M),O.lastIndex===0?T=M.length-1:T=O.lastIndex-2)}J.push([\"word\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T}break}k++}return J}}}),To=R({\"node_modules/flatten/index.js\"(e,n){A(),n.exports=function(a,o){if(o=typeof o==\"number\"?o:1/0,!o)return Array.isArray(a)?a.map(function(p){return p}):a;return f(a,1);function f(p,h){return p.reduce(function(g,c){return Array.isArray(c)&&hx-N)}n.exports=class{constructor(x,N){let P={loose:!1};this.cache=[],this.input=x,this.options=Object.assign({},P,N),this.position=0,this.unbalanced=0,this.root=new i;let W=new a;this.root.append(W),this.current=W,this.tokens=m(x,this.options)}parse(){return this.loop()}colon(){let x=this.currToken;this.newNode(new f({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}comma(){let x=this.currToken;this.newNode(new p({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}comment(){let x=!1,N=this.currToken[1].replace(/\\/\\*|\\*\\//g,\"\"),P;this.options.loose&&N.startsWith(\"//\")&&(N=N.substring(2),x=!0),P=new h({value:N,inline:x,source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]}),this.newNode(P),this.position++}error(x,N){throw new d(x+\" at line: \".concat(N[2],\", column \").concat(N[3]))}loop(){for(;this.position0&&(this.current.type===\"func\"&&this.current.value===\"calc\"?this.prevToken[0]!==\"space\"&&this.prevToken[0]!==\"(\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]!==\"space\"&&this.nextToken[0]!==\"word\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]===\"word\"&&this.current.last.type!==\"operator\"&&this.current.last.value!==\"(\"&&this.error(\"Syntax Error\",this.currToken):(this.nextToken[0]===\"space\"||this.nextToken[0]===\"operator\"||this.prevToken[0]===\"operator\")&&this.error(\"Syntax Error\",this.currToken)),this.options.loose){if((!this.current.nodes.length||this.current.last&&this.current.last.type===\"operator\")&&this.nextToken[0]===\"word\")return this.word()}else if(this.nextToken[0]===\"word\")return this.word()}return N=new t({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),this.position++,this.newNode(N)}parseTokens(){switch(this.currToken[0]){case\"space\":this.space();break;case\"colon\":this.colon();break;case\"comma\":this.comma();break;case\"comment\":this.comment();break;case\"(\":this.parenOpen();break;case\")\":this.parenClose();break;case\"atword\":case\"word\":this.word();break;case\"operator\":this.operator();break;case\"string\":this.string();break;case\"unicoderange\":this.unicodeRange();break;default:this.word();break}}parenOpen(){let x=1,N=this.position+1,P=this.currToken,W;for(;N=this.tokens.length-1&&!this.current.unbalanced)&&(this.current.unbalanced--,this.current.unbalanced<0&&this.error(\"Expected opening parenthesis\",x),!this.current.unbalanced&&this.cache.length&&(this.current=this.cache.pop()))}space(){let x=this.currToken;this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.raws.after+=x[1],this.position++):(this.spaces=x[1],this.position++)}unicodeRange(){let x=this.currToken;this.newNode(new l({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}splitWord(){let x=this.nextToken,N=this.currToken[1],P=/^[\\+\\-]?((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\+\\-]?\\d+)?/,W=/^(?!\\#([a-z0-9]+))[\\#\\{\\}]/gi,U,H;if(!W.test(N))for(;x&&x[0]===\"word\";)this.position++,N+=this.currToken[1],x=this.nextToken;U=y(N,\"@\"),H=_(w(v([[0],U]))),H.forEach((D,$)=>{let B=H[$+1]||N.length,O=N.slice(D,B),j;if(~U.indexOf(D))j=new o({value:O.slice(1),source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$]});else if(P.test(this.currToken[1])){let C=O.replace(P,\"\");j=new c({value:O.replace(C,\"\"),source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$],unit:C})}else j=new(x&&x[0]===\"(\"?g:s)({value:O,source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$]}),j.type===\"word\"?(j.isHex=/^#(.+)/.test(O),j.isColor=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(O)):this.cache.push(this.current);this.newNode(j)}),this.position++}string(){let x=this.currToken,N=this.currToken[1],P=/^(\\\"|\\')/,W=P.test(N),U=\"\",H;W&&(U=N.match(P)[0],N=N.slice(1,N.length-1)),H=new u({value:N,source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6],quoted:W}),H.raws.quote=U,this.newNode(H),this.position++}word(){return this.splitWord()}newNode(x){return this.spaces&&(x.raws.before+=this.spaces,this.spaces=\"\"),this.current.append(x)}get currToken(){return this.tokens[this.position]}get nextToken(){return this.tokens[this.position+1]}get prevToken(){return this.tokens[this.position-1]}}}}),lf=R({\"node_modules/postcss-values-parser/lib/index.js\"(e,n){\"use strict\";A();var i=cf(),a=Qs(),o=Ys(),f=Xs(),p=Zs(),h=eo(),g=ro(),c=to(),t=no(),r=io(),u=oo(),s=Ks(),l=so(),m=function(v,y){return new i(v,y)};m.atword=function(v){return new a(v)},m.colon=function(v){return new o(Object.assign({value:\":\"},v))},m.comma=function(v){return new f(Object.assign({value:\",\"},v))},m.comment=function(v){return new p(v)},m.func=function(v){return new h(v)},m.number=function(v){return new g(v)},m.operator=function(v){return new c(v)},m.paren=function(v){return new t(Object.assign({value:\"(\"},v))},m.string=function(v){return new r(Object.assign({quote:\"'\"},v))},m.value=function(v){return new s(v)},m.word=function(v){return new l(v)},m.unicodeRange=function(v){return new u(v)},n.exports=m}}),ze=R({\"node_modules/postcss-selector-parser/dist/selectors/node.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(p){return typeof p}:function(p){return p&&typeof Symbol==\"function\"&&p.constructor===Symbol&&p!==Symbol.prototype?\"symbol\":typeof p};function a(p,h){if(!(p instanceof h))throw new TypeError(\"Cannot call a class as a function\")}var o=function p(h,g){if((typeof h>\"u\"?\"undefined\":i(h))!==\"object\")return h;var c=new h.constructor;for(var t in h)if(!!h.hasOwnProperty(t)){var r=h[t],u=typeof r>\"u\"?\"undefined\":i(r);t===\"parent\"&&u===\"object\"?g&&(c[t]=g):r instanceof Array?c[t]=r.map(function(s){return p(s,c)}):c[t]=p(r,c)}return c},f=function(){function p(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};a(this,p);for(var g in h)this[g]=h[g];var c=h.spaces;c=c===void 0?{}:c;var t=c.before,r=t===void 0?\"\":t,u=c.after,s=u===void 0?\"\":u;this.spaces={before:r,after:s}}return p.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},p.prototype.replaceWith=function(){if(this.parent){for(var g in arguments)this.parent.insertBefore(this,arguments[g]);this.remove()}return this},p.prototype.next=function(){return this.parent.at(this.parent.index(this)+1)},p.prototype.prev=function(){return this.parent.at(this.parent.index(this)-1)},p.prototype.clone=function(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o(this);for(var t in g)c[t]=g[t];return c},p.prototype.toString=function(){return[this.spaces.before,String(this.value),this.spaces.after].join(\"\")},p}();e.default=f,n.exports=e.default}}),oe=R({\"node_modules/postcss-selector-parser/dist/selectors/types.js\"(e){\"use strict\";A(),e.__esModule=!0;var n=e.TAG=\"tag\",i=e.STRING=\"string\",a=e.SELECTOR=\"selector\",o=e.ROOT=\"root\",f=e.PSEUDO=\"pseudo\",p=e.NESTING=\"nesting\",h=e.ID=\"id\",g=e.COMMENT=\"comment\",c=e.COMBINATOR=\"combinator\",t=e.CLASS=\"class\",r=e.ATTRIBUTE=\"attribute\",u=e.UNIVERSAL=\"universal\"}}),Ct=R({\"node_modules/postcss-selector-parser/dist/selectors/container.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=function(){function s(l,m){for(var v=0;v=v&&(this.indexes[w]=y-1);return this},l.prototype.removeAll=function(){for(var w=this.nodes,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;_.parent=void 0}return this.nodes=[],this},l.prototype.empty=function(){return this.removeAll()},l.prototype.insertAfter=function(v,y){var w=this.index(v);this.nodes.splice(w+1,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},l.prototype.insertBefore=function(v,y){var w=this.index(v);this.nodes.splice(w,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},l.prototype.each=function(v){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var y=this.lastEach;if(this.indexes[y]=0,!!this.length){for(var w=void 0,d=void 0;this.indexes[y],\\[\\]\\\\]|\\/(?=\\*)/g;function H(D){for(var $=[],B=D.css.valueOf(),O=void 0,j=void 0,C=void 0,I=void 0,X=void 0,Z=void 0,Q=void 0,K=void 0,J=void 0,M=void 0,Y=void 0,G=B.length,E=-1,k=1,b=0,L=function(T,F){if(D.safe)B+=F,j=B.length-1;else throw D.error(\"Unclosed \"+T,k,b-E,b)};b0?(K=k+X,J=j-I[X].length):(K=k,J=E),$.push([\"comment\",Z,k,b-E,K,j-J,b]),E=J,k=K,b=j):(U.lastIndex=b+1,U.test(B),U.lastIndex===0?j=B.length-1:j=U.lastIndex-2,$.push([\"word\",B.slice(b,j+1),k,b-E,k,j-E,b]),b=j);break}b++}return $}n.exports=e.default}}),hf=R({\"node_modules/postcss-selector-parser/dist/parser.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=function(){function E(k,b){for(var L=0;L1?(F[0]===\"\"&&(F[0]=!0),z.attribute=this.parseValue(F[2]),z.namespace=this.parseNamespace(F[0])):z.attribute=this.parseValue(T[0]),L=new U.default(z),T[2]){var re=T[2].split(/(\\s+i\\s*?)$/),ne=re[0].trim();L.value=this.lossy?ne:re[0],re[1]&&(L.insensitive=!0,this.lossy||(L.raws.insensitive=re[1])),L.quoted=ne[0]===\"'\"||ne[0]==='\"',L.raws.unquoted=L.quoted?ne.slice(1,-1):ne}this.newNode(L),this.position++},E.prototype.combinator=function(){if(this.currToken[1]===\"|\")return this.namespace();for(var b=new B.default({value:\"\",source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]});this.position1&&b.nextToken&&b.nextToken[0]===\"(\"&&b.error(\"Misplaced parenthesis.\")})}else this.error('Unexpected \"'+this.currToken[0]+'\" found.')},E.prototype.space=function(){var b=this.currToken;this.position===0||this.prevToken[0]===\",\"||this.prevToken[0]===\"(\"?(this.spaces=this.parseSpace(b[1]),this.position++):this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.spaces.after=this.parseSpace(b[1]),this.position++):this.combinator()},E.prototype.string=function(){var b=this.currToken;this.newNode(new x.default({value:this.currToken[1],source:{start:{line:b[2],column:b[3]},end:{line:b[4],column:b[5]}},sourceIndex:b[6]})),this.position++},E.prototype.universal=function(b){var L=this.nextToken;if(L&&L[1]===\"|\")return this.position++,this.namespace();this.newNode(new D.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),b),this.position++},E.prototype.splitWord=function(b,L){for(var q=this,T=this.nextToken,F=this.currToken[1];T&&T[0]===\"word\";){this.position++;var z=this.currToken[1];if(F+=z,z.lastIndexOf(\"\\\\\")===z.length-1){var re=this.nextToken;re&&re[0]===\"space\"&&(F+=this.parseSpace(re[1],\" \"),this.position++)}T=this.nextToken}var ne=(0,p.default)(F,\".\"),ce=(0,p.default)(F,\"#\"),fe=(0,p.default)(F,\"#{\");fe.length&&(ce=ce.filter(function(ie){return!~fe.indexOf(ie)}));var te=(0,I.default)((0,g.default)((0,o.default)([[0],ne,ce])));te.forEach(function(ie,ae){var se=te[ae+1]||F.length,le=F.slice(ie,se);if(ae===0&&L)return L.call(q,le,te.length);var pe=void 0;~ne.indexOf(ie)?pe=new l.default({value:le.slice(1),source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}):~ce.indexOf(ie)?pe=new w.default({value:le.slice(1),source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}):pe=new _.default({value:le,source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}),q.newNode(pe,b)}),this.position++},E.prototype.word=function(b){var L=this.nextToken;return L&&L[1]===\"|\"?(this.position++,this.namespace()):this.splitWord(b)},E.prototype.loop=function(){for(;this.position1&&arguments[1]!==void 0?arguments[1]:{},u=new o.default({css:t,error:function(l){throw new Error(l)},options:r});return this.res=u,this.func(u),this},i(g,[{key:\"result\",get:function(){return String(this.res)}}]),g}();e.default=h,n.exports=e.default}}),vf=R({\"node_modules/postcss-selector-parser/dist/index.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=df(),a=O(i),o=Do(),f=O(o),p=Ro(),h=O(p),g=zo(),c=O(g),t=Io(),r=O(t),u=Co(),s=O(u),l=Bo(),m=O(l),v=Mo(),y=O(v),w=Ao(),d=O(w),_=Po(),S=O(_),x=jo(),N=O(x),P=No(),W=O(P),U=Lo(),H=O(U),D=oe(),$=B(D);function B(C){if(C&&C.__esModule)return C;var I={};if(C!=null)for(var X in C)Object.prototype.hasOwnProperty.call(C,X)&&(I[X]=C[X]);return I.default=C,I}function O(C){return C&&C.__esModule?C:{default:C}}var j=function(I){return new a.default(I)};j.attribute=function(C){return new f.default(C)},j.className=function(C){return new h.default(C)},j.combinator=function(C){return new c.default(C)},j.comment=function(C){return new r.default(C)},j.id=function(C){return new s.default(C)},j.nesting=function(C){return new m.default(C)},j.pseudo=function(C){return new y.default(C)},j.root=function(C){return new d.default(C)},j.selector=function(C){return new S.default(C)},j.string=function(C){return new N.default(C)},j.tag=function(C){return new W.default(C)},j.universal=function(C){return new H.default(C)},Object.keys($).forEach(function(C){C!==\"__esModule\"&&(j[C]=$[C])}),e.default=j,n.exports=e.default}}),Fo=R({\"node_modules/postcss-media-query-parser/dist/nodes/Node.js\"(e){\"use strict\";A(),Object.defineProperty(e,\"__esModule\",{value:!0});function n(i){this.after=i.after,this.before=i.before,this.type=i.type,this.value=i.value,this.sourceIndex=i.sourceIndex}e.default=n}}),Uo=R({\"node_modules/postcss-media-query-parser/dist/nodes/Container.js\"(e){\"use strict\";A(),Object.defineProperty(e,\"__esModule\",{value:!0});var n=Fo(),i=a(n);function a(f){return f&&f.__esModule?f:{default:f}}function o(f){var p=this;this.constructor(f),this.nodes=f.nodes,this.after===void 0&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:\"\"),this.before===void 0&&(this.before=this.nodes.length>0?this.nodes[0].before:\"\"),this.sourceIndex===void 0&&(this.sourceIndex=this.before.length),this.nodes.forEach(function(h){h.parent=p})}o.prototype=Object.create(i.default.prototype),o.constructor=i.default,o.prototype.walk=function(p,h){for(var g=typeof p==\"string\"||p instanceof RegExp,c=g?h:p,t=typeof p==\"string\"?new RegExp(p):p,r=0;r0&&(r[w-1].after=l.before),l.type===void 0){if(w>0){if(r[w-1].type===\"media-feature-expression\"){l.type=\"keyword\";continue}if(r[w-1].value===\"not\"||r[w-1].value===\"only\"){l.type=\"media-type\";continue}if(r[w-1].value===\"and\"){l.type=\"media-feature-expression\";continue}r[w-1].type===\"media-type\"&&(r[w+1]?l.type=r[w+1].type===\"media-feature-expression\"?\"keyword\":\"media-feature-expression\":l.type=\"media-feature-expression\")}if(w===0){if(!r[w+1]){l.type=\"media-type\";continue}if(r[w+1]&&(r[w+1].type===\"media-feature-expression\"||r[w+1].type===\"keyword\")){l.type=\"media-type\";continue}if(r[w+2]){if(r[w+2].type===\"media-feature-expression\"){l.type=\"media-type\",r[w+1].type=\"keyword\";continue}if(r[w+2].type===\"keyword\"){l.type=\"keyword\",r[w+1].type=\"media-type\";continue}}if(r[w+3]&&r[w+3].type===\"media-feature-expression\"){l.type=\"keyword\",r[w+1].type=\"media-type\",r[w+2].type=\"keyword\";continue}}}return r}function g(c){var t=[],r=0,u=0,s=/^(\\s*)url\\s*\\(/.exec(c);if(s!==null){for(var l=s[0].length,m=1;m>0;){var v=c[l];v===\"(\"&&m++,v===\")\"&&m--,l++}t.unshift(new i.default({type:\"url\",value:c.substring(0,l).trim(),sourceIndex:s[1].length,before:s[1],after:/^(\\s*)/.exec(c.substring(l))[1]})),r=l}for(var y=r;yJo,default:()=>Qo,delimiter:()=>_t,dirname:()=>Ho,extname:()=>Ko,isAbsolute:()=>jt,join:()=>Vo,normalize:()=>Nt,relative:()=>Go,resolve:()=>mr,sep:()=>wt});function $o(e,n){for(var i=0,a=e.length-1;a>=0;a--){var o=e[a];o===\".\"?e.splice(a,1):o===\"..\"?(e.splice(a,1),i++):i&&(e.splice(a,1),i--)}if(n)for(;i--;i)e.unshift(\"..\");return e}function mr(){for(var e=\"\",n=!1,i=arguments.length-1;i>=-1&&!n;i--){var a=i>=0?arguments[i]:\"/\";if(typeof a!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!a)continue;e=a+\"/\"+e,n=a.charAt(0)===\"/\"}return e=$o(Mt(e.split(\"/\"),function(o){return!!o}),!n).join(\"/\"),(n?\"/\":\"\")+e||\".\"}function Nt(e){var n=jt(e),i=Yo(e,-1)===\"/\";return e=$o(Mt(e.split(\"/\"),function(a){return!!a}),!n).join(\"/\"),!e&&!n&&(e=\".\"),e&&i&&(e+=\"/\"),(n?\"/\":\"\")+e}function jt(e){return e.charAt(0)===\"/\"}function Vo(){var e=Array.prototype.slice.call(arguments,0);return Nt(Mt(e,function(n,i){if(typeof n!=\"string\")throw new TypeError(\"Arguments to path.join must be strings\");return n}).join(\"/\"))}function Go(e,n){e=mr(e).substr(1),n=mr(n).substr(1);function i(c){for(var t=0;t=0&&c[r]===\"\";r--);return t>r?[]:c.slice(t,r-t+1)}for(var a=i(e.split(\"/\")),o=i(n.split(\"/\")),f=Math.min(a.length,o.length),p=f,h=0;h\"u\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function t(m){return Function.toString.call(m).indexOf(\"[native code]\")!==-1}function r(m,v){return r=Object.setPrototypeOf||function(w,d){return w.__proto__=d,w},r(m,v)}function u(m){return u=Object.setPrototypeOf?Object.getPrototypeOf:function(y){return y.__proto__||Object.getPrototypeOf(y)},u(m)}var s=function(m){p(v,m);function v(w,d,_,S,x,N){var P;return P=m.call(this,w)||this,P.name=\"CssSyntaxError\",P.reason=w,x&&(P.file=x),S&&(P.source=S),N&&(P.plugin=N),typeof d<\"u\"&&typeof _<\"u\"&&(P.line=d,P.column=_),P.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(f(P),v),P}var y=v.prototype;return y.setMessage=function(){this.message=this.plugin?this.plugin+\": \":\"\",this.message+=this.file?this.file:\"\",typeof this.line<\"u\"&&(this.message+=\":\"+this.line+\":\"+this.column),this.message+=\": \"+this.reason},y.showSourceCode=function(d){var _=this;if(!this.source)return\"\";var S=this.source;a.default&&(typeof d>\"u\"&&(d=i.default.isColorSupported),d&&(S=(0,a.default)(S)));var x=S.split(/\\r?\\n/),N=Math.max(this.line-3,0),P=Math.min(this.line+2,x.length),W=String(P).length;function U(D){return d&&i.default.red?i.default.red(i.default.bold(D)):D}function H(D){return d&&i.default.gray?i.default.gray(D):D}return x.slice(N,P).map(function(D,$){var B=N+1+$,O=\" \"+(\" \"+B).slice(-W)+\" | \";if(B===_.line){var j=H(O.replace(/\\d/g,\" \"))+D.slice(0,_.column-1).replace(/[^\\t]/g,\" \");return U(\">\")+H(O)+D+`\n `+j+U(\"^\")}return\" \"+H(O)+D}).join(`\n`)},y.toString=function(){var d=this.showSourceCode();return d&&(d=`\n\n`+d+`\n`),this.name+\": \"+this.message+d},v}(h(Error)),l=s;e.default=l,n.exports=e.default}}),xf=R({\"node_modules/postcss/lib/previous-map.js\"(e,n){A(),n.exports=class{}}}),_r=R({\"node_modules/postcss/lib/input.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=f(wf()),a=f(Xo()),o=f(xf());function f(r){return r&&r.__esModule?r:{default:r}}function p(r,u){for(var s=0;s\"u\"||typeof s==\"object\"&&!s.toString)throw new Error(\"PostCSS received \"+s+\" instead of CSS string\");this.css=s.toString(),this.css[0]===\"\\uFEFF\"||this.css[0]===\"\\uFFFE\"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,l.from&&(/^\\w+:\\/\\//.test(l.from)||i.default.isAbsolute(l.from)?this.file=l.from:this.file=i.default.resolve(l.from));var m=new o.default(this.css,l);if(m.text){this.map=m;var v=m.consumer().file;!this.file&&v&&(this.file=this.mapResolve(v))}this.file||(g+=1,this.id=\"\"),this.map&&(this.map.file=this.from)}var u=r.prototype;return u.error=function(l,m,v,y){y===void 0&&(y={});var w,d=this.origin(m,v);return d?w=new a.default(l,d.line,d.column,d.source,d.file,y.plugin):w=new a.default(l,m,v,this.css,this.file,y.plugin),w.input={line:m,column:v,source:this.css},this.file&&(w.input.file=this.file),w},u.origin=function(l,m){if(!this.map)return!1;var v=this.map.consumer(),y=v.originalPositionFor({line:l,column:m});if(!y.source)return!1;var w={file:this.mapResolve(y.source),line:y.line,column:y.column},d=v.sourceContentFor(y.source);return d&&(w.source=d),w},u.mapResolve=function(l){return/^\\w+:\\/\\//.test(l)?l:i.default.resolve(this.map.consumer().sourceRoot||\".\",l)},h(r,[{key:\"from\",get:function(){return this.file||this.id}}]),r}(),t=c;e.default=t,n.exports=e.default}}),br=R({\"node_modules/postcss/lib/stringifier.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i={colon:\": \",indent:\" \",beforeDecl:`\n`,beforeRule:`\n`,beforeOpen:\" \",beforeClose:`\n`,beforeComment:`\n`,after:`\n`,emptyBody:\"\",commentLeft:\" \",commentRight:\" \",semicolon:!1};function a(p){return p[0].toUpperCase()+p.slice(1)}var o=function(){function p(g){this.builder=g}var h=p.prototype;return h.stringify=function(c,t){this[c.type](c,t)},h.root=function(c){this.body(c),c.raws.after&&this.builder(c.raws.after)},h.comment=function(c){var t=this.raw(c,\"left\",\"commentLeft\"),r=this.raw(c,\"right\",\"commentRight\");this.builder(\"/*\"+t+c.text+r+\"*/\",c)},h.decl=function(c,t){var r=this.raw(c,\"between\",\"colon\"),u=c.prop+r+this.rawValue(c,\"value\");c.important&&(u+=c.raws.important||\" !important\"),t&&(u+=\";\"),this.builder(u,c)},h.rule=function(c){this.block(c,this.rawValue(c,\"selector\")),c.raws.ownSemicolon&&this.builder(c.raws.ownSemicolon,c,\"end\")},h.atrule=function(c,t){var r=\"@\"+c.name,u=c.params?this.rawValue(c,\"params\"):\"\";if(typeof c.raws.afterName<\"u\"?r+=c.raws.afterName:u&&(r+=\" \"),c.nodes)this.block(c,r+u);else{var s=(c.raws.between||\"\")+(t?\";\":\"\");this.builder(r+u+s,c)}},h.body=function(c){for(var t=c.nodes.length-1;t>0&&c.nodes[t].type===\"comment\";)t-=1;for(var r=this.raw(c,\"semicolon\"),u=0;u\"u\"&&(u=i[r]),l.rawCache[r]=u,u},h.rawSemicolon=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length&&r.last.type===\"decl\"&&(t=r.raws.semicolon,typeof t<\"u\"))return!1}),t},h.rawEmptyBody=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length===0&&(t=r.raws.after,typeof t<\"u\"))return!1}),t},h.rawIndent=function(c){if(c.raws.indent)return c.raws.indent;var t;return c.walk(function(r){var u=r.parent;if(u&&u!==c&&u.parent&&u.parent===c&&typeof r.raws.before<\"u\"){var s=r.raws.before.split(`\n`);return t=s[s.length-1],t=t.replace(/[^\\s]/g,\"\"),!1}}),t},h.rawBeforeComment=function(c,t){var r;return c.walkComments(function(u){if(typeof u.raws.before<\"u\")return r=u.raws.before,r.indexOf(`\n`)!==-1&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(t,null,\"beforeDecl\"):r&&(r=r.replace(/[^\\s]/g,\"\")),r},h.rawBeforeDecl=function(c,t){var r;return c.walkDecls(function(u){if(typeof u.raws.before<\"u\")return r=u.raws.before,r.indexOf(`\n`)!==-1&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(t,null,\"beforeRule\"):r&&(r=r.replace(/[^\\s]/g,\"\")),r},h.rawBeforeRule=function(c){var t;return c.walk(function(r){if(r.nodes&&(r.parent!==c||c.first!==r)&&typeof r.raws.before<\"u\")return t=r.raws.before,t.indexOf(`\n`)!==-1&&(t=t.replace(/[^\\n]+$/,\"\")),!1}),t&&(t=t.replace(/[^\\s]/g,\"\")),t},h.rawBeforeClose=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<\"u\")return t=r.raws.after,t.indexOf(`\n`)!==-1&&(t=t.replace(/[^\\n]+$/,\"\")),!1}),t&&(t=t.replace(/[^\\s]/g,\"\")),t},h.rawBeforeOpen=function(c){var t;return c.walk(function(r){if(r.type!==\"decl\"&&(t=r.raws.between,typeof t<\"u\"))return!1}),t},h.rawColon=function(c){var t;return c.walkDecls(function(r){if(typeof r.raws.between<\"u\")return t=r.raws.between.replace(/[^\\s:]/g,\"\"),!1}),t},h.beforeAfter=function(c,t){var r;c.type===\"decl\"?r=this.raw(c,null,\"beforeDecl\"):c.type===\"comment\"?r=this.raw(c,null,\"beforeComment\"):t===\"before\"?r=this.raw(c,null,\"beforeRule\"):r=this.raw(c,null,\"beforeClose\");for(var u=c.parent,s=0;u&&u.type!==\"root\";)s+=1,u=u.parent;if(r.indexOf(`\n`)!==-1){var l=this.raw(c,null,\"indent\");if(l.length)for(var m=0;m=k}function ce(te){if(F.length)return F.pop();if(!(q>=k)){var ie=te?te.ignoreUnclosed:!1;switch(B=D.charCodeAt(q),(B===p||B===g||B===t&&D.charCodeAt(q+1)!==p)&&(b=q,L+=1),B){case p:case h:case c:case t:case g:O=q;do O+=1,B=D.charCodeAt(O),B===p&&(b=O,L+=1);while(B===h||B===p||B===c||B===t||B===g);E=[\"space\",D.slice(q,O)],q=O-1;break;case r:case u:case m:case v:case d:case y:case l:var ae=String.fromCharCode(B);E=[ae,ae,L,q-b];break;case s:if(Y=T.length?T.pop()[1]:\"\",G=D.charCodeAt(q+1),Y===\"url\"&&G!==i&&G!==a&&G!==h&&G!==p&&G!==c&&G!==g&&G!==t){O=q;do{if(J=!1,O=D.indexOf(\")\",O+1),O===-1)if($||ie){O=q;break}else re(\"bracket\");for(M=O;D.charCodeAt(M-1)===o;)M-=1,J=!J}while(J);E=[\"brackets\",D.slice(q,O+1),L,q-b,L,O-b],q=O}else O=D.indexOf(\")\",q+1),X=D.slice(q,O+1),O===-1||N.test(X)?E=[\"(\",\"(\",L,q-b]:(E=[\"brackets\",X,L,q-b,L,O-b],q=O);break;case i:case a:j=B===i?\"'\":'\"',O=q;do{if(J=!1,O=D.indexOf(j,O+1),O===-1)if($||ie){O=q+1;break}else re(\"string\");for(M=O;D.charCodeAt(M-1)===o;)M-=1,J=!J}while(J);X=D.slice(q,O+1),C=X.split(`\n`),I=C.length-1,I>0?(Q=L+I,K=O-C[I].length):(Q=L,K=b),E=[\"string\",D.slice(q,O+1),L,q-b,Q,O-K],b=K,L=Q,q=O;break;case _:S.lastIndex=q+1,S.test(D),S.lastIndex===0?O=D.length-1:O=S.lastIndex-2,E=[\"at-word\",D.slice(q,O+1),L,q-b,L,O-b],q=O;break;case o:for(O=q,Z=!0;D.charCodeAt(O+1)===o;)O+=1,Z=!Z;if(B=D.charCodeAt(O+1),Z&&B!==f&&B!==h&&B!==p&&B!==c&&B!==t&&B!==g&&(O+=1,P.test(D.charAt(O)))){for(;P.test(D.charAt(O+1));)O+=1;D.charCodeAt(O+1)===h&&(O+=1)}E=[\"word\",D.slice(q,O+1),L,q-b,L,O-b],q=O;break;default:B===f&&D.charCodeAt(q+1)===w?(O=D.indexOf(\"*/\",q+2)+1,O===0&&($||ie?O=D.length:re(\"comment\")),X=D.slice(q,O+1),C=X.split(`\n`),I=C.length-1,I>0?(Q=L+I,K=O-C[I].length):(Q=L,K=b),E=[\"comment\",X,L,q-b,Q,O-K],b=K,L=Q,q=O):(x.lastIndex=q+1,x.test(D),x.lastIndex===0?O=D.length-1:O=x.lastIndex-2,E=[\"word\",D.slice(q,O+1),L,q-b,L,O-b],T.push(E),q=O);break}return q++,E}}function fe(te){F.push(te)}return{back:fe,nextToken:ce,endOfFile:ne,position:z}}n.exports=e.default}}),ra=R({\"node_modules/postcss/lib/parse.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=o(zt()),a=o(_r());function o(h){return h&&h.__esModule?h:{default:h}}function f(h,g){var c=new a.default(h,g),t=new i.default(c);try{t.parse()}catch(r){throw r}return t.root}var p=f;e.default=p,n.exports=e.default}}),kf=R({\"node_modules/postcss/lib/list.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i={split:function(f,p,h){for(var g=[],c=\"\",t=!1,r=0,u=!1,s=!1,l=0;l0&&(r-=1):r===0&&p.indexOf(m)!==-1&&(t=!0),t?(c!==\"\"&&g.push(c.trim()),c=\"\",t=!1):c+=m}return(h||c!==\"\")&&g.push(c.trim()),g},space:function(f){var p=[\" \",`\n`,\"\t\"];return i.split(f,p)},comma:function(f){return i.split(f,[\",\"],!0)}},a=i;e.default=a,n.exports=e.default}}),ta=R({\"node_modules/postcss/lib/rule.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=o(kr()),a=o(kf());function o(t){return t&&t.__esModule?t:{default:t}}function f(t,r){for(var u=0;u\"u\"||m[Symbol.iterator]==null){if(Array.isArray(m)||(y=h(m))||v&&m&&typeof m.length==\"number\"){y&&(m=y);var w=0;return function(){return w>=m.length?{done:!0}:{done:!1,value:m[w++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return y=m[Symbol.iterator](),y.next.bind(y)}function h(m,v){if(!!m){if(typeof m==\"string\")return g(m,v);var y=Object.prototype.toString.call(m).slice(8,-1);if(y===\"Object\"&&m.constructor&&(y=m.constructor.name),y===\"Map\"||y===\"Set\")return Array.from(m);if(y===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return g(m,v)}}function g(m,v){(v==null||v>m.length)&&(v=m.length);for(var y=0,w=new Array(v);y=d&&(this.indexes[S]=_-1);return this},y.removeAll=function(){for(var d=p(this.nodes),_;!(_=d()).done;){var S=_.value;S.parent=void 0}return this.nodes=[],this},y.replaceValues=function(d,_,S){return S||(S=_,_={}),this.walkDecls(function(x){_.props&&_.props.indexOf(x.prop)===-1||_.fast&&x.value.indexOf(_.fast)===-1||(x.value=x.value.replace(d,S))}),this},y.every=function(d){return this.nodes.every(d)},y.some=function(d){return this.nodes.some(d)},y.index=function(d){return typeof d==\"number\"?d:this.nodes.indexOf(d)},y.normalize=function(d,_){var S=this;if(typeof d==\"string\"){var x=ra();d=u(x(d).nodes)}else if(Array.isArray(d)){d=d.slice(0);for(var N=p(d),P;!(P=N()).done;){var W=P.value;W.parent&&W.parent.removeChild(W,\"ignore\")}}else if(d.type===\"root\"){d=d.nodes.slice(0);for(var U=p(d),H;!(H=U()).done;){var D=H.value;D.parent&&D.parent.removeChild(D,\"ignore\")}}else if(d.type)d=[d];else if(d.prop){if(typeof d.value>\"u\")throw new Error(\"Value field is missed in node creation\");typeof d.value!=\"string\"&&(d.value=String(d.value)),d=[new i.default(d)]}else if(d.selector){var $=ta();d=[new $(d)]}else if(d.name){var B=na();d=[new B(d)]}else if(d.text)d=[new a.default(d)];else throw new Error(\"Unknown node type in node creation\");var O=d.map(function(j){return j.parent&&j.parent.removeChild(j),typeof j.raws.before>\"u\"&&_&&typeof _.raws.before<\"u\"&&(j.raws.before=_.raws.before.replace(/[^\\s]/g,\"\")),j.parent=S,j});return O},t(v,[{key:\"first\",get:function(){if(!!this.nodes)return this.nodes[0]}},{key:\"last\",get:function(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}}]),v}(o.default),l=s;e.default=l,n.exports=e.default}}),na=R({\"node_modules/postcss/lib/at-rule.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=a(kr());function a(h){return h&&h.__esModule?h:{default:h}}function o(h,g){h.prototype=Object.create(g.prototype),h.prototype.constructor=h,h.__proto__=g}var f=function(h){o(g,h);function g(t){var r;return r=h.call(this,t)||this,r.type=\"atrule\",r}var c=g.prototype;return c.append=function(){var r;this.nodes||(this.nodes=[]);for(var u=arguments.length,s=new Array(u),l=0;l\"u\"||v[Symbol.iterator]==null){if(Array.isArray(v)||(w=c(v))||y&&v&&typeof v.length==\"number\"){w&&(v=w);var d=0;return function(){return d>=v.length?{done:!0}:{done:!1,value:v[d++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return w=v[Symbol.iterator](),w.next.bind(w)}function c(v,y){if(!!v){if(typeof v==\"string\")return t(v,y);var w=Object.prototype.toString.call(v).slice(8,-1);if(w===\"Object\"&&v.constructor&&(w=v.constructor.name),w===\"Map\"||w===\"Set\")return Array.from(v);if(w===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w))return t(v,y)}}function t(v,y){(y==null||y>v.length)&&(y=v.length);for(var w=0,d=new Array(y);w\"u\"&&(_.map={}),_.map.inline||(_.map.inline=!1),_.map.prev=d.map);else{var x=p.default;_.syntax&&(x=_.syntax.parse),_.parser&&(x=_.parser),x.parse&&(x=x.parse);try{S=x(d,_)}catch(N){this.error=N}}this.result=new f.default(w,S,_)}var y=v.prototype;return y.warnings=function(){return this.sync().warnings()},y.toString=function(){return this.css},y.then=function(d,_){return this.async().then(d,_)},y.catch=function(d){return this.async().catch(d)},y.finally=function(d){return this.async().then(d,d)},y.handleError=function(d,_){try{if(this.error=d,d.name===\"CssSyntaxError\"&&!d.plugin)d.plugin=_.postcssPlugin,d.setMessage();else if(_.postcssVersion&&!1)var S,x,N,P,W}catch(U){console&&console.error&&console.error(U)}},y.asyncTick=function(d,_){var S=this;if(this.plugin>=this.processor.plugins.length)return this.processed=!0,d();try{var x=this.processor.plugins[this.plugin],N=this.run(x);this.plugin+=1,s(N)?N.then(function(){S.asyncTick(d,_)}).catch(function(P){S.handleError(P,x),S.processed=!0,_(P)}):this.asyncTick(d,_)}catch(P){this.processed=!0,_(P)}},y.async=function(){var d=this;return this.processed?new Promise(function(_,S){d.error?S(d.error):_(d.stringify())}):this.processing?this.processing:(this.processing=new Promise(function(_,S){if(d.error)return S(d.error);d.plugin=0,d.asyncTick(_,S)}).then(function(){return d.processed=!0,d.stringify()}),this.processing)},y.sync=function(){if(this.processed)return this.result;if(this.processed=!0,this.processing)throw new Error(\"Use process(css).then(cb) to work with async plugins\");if(this.error)throw this.error;for(var d=g(this.result.processor.plugins),_;!(_=d()).done;){var S=_.value,x=this.run(S);if(s(x))throw new Error(\"Use process(css).then(cb) to work with async plugins\")}return this.result},y.run=function(d){this.result.lastPlugin=d;try{return d(this.result.root,this.result)}catch(_){throw this.handleError(_,d),_}},y.stringify=function(){if(this.stringified)return this.result;this.stringified=!0,this.sync();var d=this.result.opts,_=a.default;d.syntax&&(_=d.syntax.stringify),d.stringifier&&(_=d.stringifier),_.stringify&&(_=_.stringify);var S=new i.default(_,this.result.root,this.result.opts),x=S.generate();return this.result.css=x[0],this.result.map=x[1],this.result},u(v,[{key:\"processor\",get:function(){return this.result.processor}},{key:\"opts\",get:function(){return this.result.opts}},{key:\"css\",get:function(){return this.stringify().css}},{key:\"content\",get:function(){return this.stringify().content}},{key:\"map\",get:function(){return this.stringify().map}},{key:\"root\",get:function(){return this.sync().root}},{key:\"messages\",get:function(){return this.sync().messages}}]),v}(),m=l;e.default=m,n.exports=e.default}}),qf=R({\"node_modules/postcss/lib/processor.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=a(ia());function a(c){return c&&c.__esModule?c:{default:c}}function o(c,t){var r;if(typeof Symbol>\"u\"||c[Symbol.iterator]==null){if(Array.isArray(c)||(r=f(c))||t&&c&&typeof c.length==\"number\"){r&&(c=r);var u=0;return function(){return u>=c.length?{done:!0}:{done:!1,value:c[u++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return r=c[Symbol.iterator](),r.next.bind(r)}function f(c,t){if(!!c){if(typeof c==\"string\")return p(c,t);var r=Object.prototype.toString.call(c).slice(8,-1);if(r===\"Object\"&&c.constructor&&(r=c.constructor.name),r===\"Map\"||r===\"Set\")return Array.from(c);if(r===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(c,t)}}function p(c,t){(t==null||t>c.length)&&(t=c.length);for(var r=0,u=new Array(t);r\"u\"||t[Symbol.iterator]==null){if(Array.isArray(t)||(u=f(t))||r&&t&&typeof t.length==\"number\"){u&&(t=u);var s=0;return function(){return s>=t.length?{done:!0}:{done:!1,value:t[s++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return u=t[Symbol.iterator](),u.next.bind(u)}function f(t,r){if(!!t){if(typeof t==\"string\")return p(t,r);var u=Object.prototype.toString.call(t).slice(8,-1);if(u===\"Object\"&&t.constructor&&(u=t.constructor.name),u===\"Map\"||u===\"Set\")return Array.from(t);if(u===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u))return p(t,r)}}function p(t,r){(r==null||r>t.length)&&(r=t.length);for(var u=0,s=new Array(r);u1&&(this.nodes[1].raws.before=this.nodes[v].raws.before),t.prototype.removeChild.call(this,l)},u.normalize=function(l,m,v){var y=t.prototype.normalize.call(this,l);if(m){if(v===\"prepend\")this.nodes.length>1?m.raws.before=this.nodes[1].raws.before:delete m.raws.before;else if(this.first!==m)for(var w=o(y),d;!(d=w()).done;){var _=d.value;_.raws.before=m.raws.before}}return y},u.toResult=function(l){l===void 0&&(l={});var m=ia(),v=qf(),y=new m(new v,this,l);return y.stringify()},r}(i.default),c=g;e.default=c,n.exports=e.default}}),zt=R({\"node_modules/postcss/lib/parser.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=g(ea()),a=g(Lt()),o=g(xr()),f=g(na()),p=g(Af()),h=g(ta());function g(t){return t&&t.__esModule?t:{default:t}}var c=function(){function t(u){this.input=u,this.root=new p.default,this.current=this.root,this.spaces=\"\",this.semicolon=!1,this.createTokenizer(),this.root.source={input:u,start:{line:1,column:1}}}var r=t.prototype;return r.createTokenizer=function(){this.tokenizer=(0,a.default)(this.input)},r.parse=function(){for(var s;!this.tokenizer.endOfFile();)switch(s=this.tokenizer.nextToken(),s[0]){case\"space\":this.spaces+=s[1];break;case\";\":this.freeSemicolon(s);break;case\"}\":this.end(s);break;case\"comment\":this.comment(s);break;case\"at-word\":this.atrule(s);break;case\"{\":this.emptyRule(s);break;default:this.other(s);break}this.endFile()},r.comment=function(s){var l=new o.default;this.init(l,s[2],s[3]),l.source.end={line:s[4],column:s[5]};var m=s[1].slice(2,-2);if(/^\\s*$/.test(m))l.text=\"\",l.raws.left=m,l.raws.right=\"\";else{var v=m.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);l.text=v[2],l.raws.left=v[1],l.raws.right=v[3]}},r.emptyRule=function(s){var l=new h.default;this.init(l,s[2],s[3]),l.selector=\"\",l.raws.between=\"\",this.current=l},r.other=function(s){for(var l=!1,m=null,v=!1,y=null,w=[],d=[],_=s;_;){if(m=_[0],d.push(_),m===\"(\"||m===\"[\")y||(y=_),w.push(m===\"(\"?\")\":\"]\");else if(w.length===0)if(m===\";\")if(v){this.decl(d);return}else break;else if(m===\"{\"){this.rule(d);return}else if(m===\"}\"){this.tokenizer.back(d.pop()),l=!0;break}else m===\":\"&&(v=!0);else m===w[w.length-1]&&(w.pop(),w.length===0&&(y=null));_=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(l=!0),w.length>0&&this.unclosedBracket(y),l&&v){for(;d.length&&(_=d[d.length-1][0],!(_!==\"space\"&&_!==\"comment\"));)this.tokenizer.back(d.pop());this.decl(d)}else this.unknownWord(d)},r.rule=function(s){s.pop();var l=new h.default;this.init(l,s[0][2],s[0][3]),l.raws.between=this.spacesAndCommentsFromEnd(s),this.raw(l,\"selector\",s),this.current=l},r.decl=function(s){var l=new i.default;this.init(l);var m=s[s.length-1];for(m[0]===\";\"&&(this.semicolon=!0,s.pop()),m[4]?l.source.end={line:m[4],column:m[5]}:l.source.end={line:m[2],column:m[3]};s[0][0]!==\"word\";)s.length===1&&this.unknownWord(s),l.raws.before+=s.shift()[1];for(l.source.start={line:s[0][2],column:s[0][3]},l.prop=\"\";s.length;){var v=s[0][0];if(v===\":\"||v===\"space\"||v===\"comment\")break;l.prop+=s.shift()[1]}l.raws.between=\"\";for(var y;s.length;)if(y=s.shift(),y[0]===\":\"){l.raws.between+=y[1];break}else y[0]===\"word\"&&/\\w/.test(y[1])&&this.unknownWord([y]),l.raws.between+=y[1];(l.prop[0]===\"_\"||l.prop[0]===\"*\")&&(l.raws.before+=l.prop[0],l.prop=l.prop.slice(1)),l.raws.between+=this.spacesAndCommentsFromStart(s),this.precheckMissedSemicolon(s);for(var w=s.length-1;w>0;w--){if(y=s[w],y[1].toLowerCase()===\"!important\"){l.important=!0;var d=this.stringFrom(s,w);d=this.spacesFromEnd(s)+d,d!==\" !important\"&&(l.raws.important=d);break}else if(y[1].toLowerCase()===\"important\"){for(var _=s.slice(0),S=\"\",x=w;x>0;x--){var N=_[x][0];if(S.trim().indexOf(\"!\")===0&&N!==\"space\")break;S=_.pop()[1]+S}S.trim().indexOf(\"!\")===0&&(l.important=!0,l.raws.important=S,s=_)}if(y[0]!==\"space\"&&y[0]!==\"comment\")break}this.raw(l,\"value\",s),l.value.indexOf(\":\")!==-1&&this.checkMissedSemicolon(s)},r.atrule=function(s){var l=new f.default;l.name=s[1].slice(1),l.name===\"\"&&this.unnamedAtrule(l,s),this.init(l,s[2],s[3]);for(var m,v,y=!1,w=!1,d=[];!this.tokenizer.endOfFile();){if(s=this.tokenizer.nextToken(),s[0]===\";\"){l.source.end={line:s[2],column:s[3]},this.semicolon=!0;break}else if(s[0]===\"{\"){w=!0;break}else if(s[0]===\"}\"){if(d.length>0){for(v=d.length-1,m=d[v];m&&m[0]===\"space\";)m=d[--v];m&&(l.source.end={line:m[4],column:m[5]})}this.end(s);break}else d.push(s);if(this.tokenizer.endOfFile()){y=!0;break}}l.raws.between=this.spacesAndCommentsFromEnd(d),d.length?(l.raws.afterName=this.spacesAndCommentsFromStart(d),this.raw(l,\"params\",d),y&&(s=d[d.length-1],l.source.end={line:s[4],column:s[5]},this.spaces=l.raws.between,l.raws.between=\"\")):(l.raws.afterName=\"\",l.params=\"\"),w&&(l.nodes=[],this.current=l)},r.end=function(s){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||\"\")+this.spaces,this.spaces=\"\",this.current.parent?(this.current.source.end={line:s[2],column:s[3]},this.current=this.current.parent):this.unexpectedClose(s)},r.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||\"\")+this.spaces},r.freeSemicolon=function(s){if(this.spaces+=s[1],this.current.nodes){var l=this.current.nodes[this.current.nodes.length-1];l&&l.type===\"rule\"&&!l.raws.ownSemicolon&&(l.raws.ownSemicolon=this.spaces,this.spaces=\"\")}},r.init=function(s,l,m){this.current.push(s),s.source={start:{line:l,column:m},input:this.input},s.raws.before=this.spaces,this.spaces=\"\",s.type!==\"comment\"&&(this.semicolon=!1)},r.raw=function(s,l,m){for(var v,y,w=m.length,d=\"\",_=!0,S,x,N=/^([.|#])?([\\w])+/i,P=0;P=0&&(v=s[y],!(v[0]!==\"space\"&&(m+=1,m===2)));y--);throw this.input.error(\"Missed semicolon\",v[2],v[3])}},t}();e.default=c,n.exports=e.default}}),Pf=R({\"node_modules/postcss-less/lib/nodes/inline-comment.js\"(e,n){A();var i=Lt(),a=_r();n.exports={isInlineComment(o){if(o[0]===\"word\"&&o[1].slice(0,2)===\"//\"){let f=o,p=[],h;for(;o;){if(/\\r?\\n/.test(o[1])){if(/['\"].*\\r?\\n/.test(o[1])){p.push(o[1].substring(0,o[1].indexOf(`\n`)));let c=o[1].substring(o[1].indexOf(`\n`));c+=this.input.css.valueOf().substring(this.tokenizer.position()),this.input=new a(c),this.tokenizer=i(this.input)}else this.tokenizer.back(o);break}p.push(o[1]),h=o,o=this.tokenizer.nextToken({ignoreUnclosed:!0})}let g=[\"comment\",p.join(\"\"),f[2],f[3],h[2],h[3]];return this.inlineComment(g),!0}else if(o[1]===\"/\"){let f=this.tokenizer.nextToken({ignoreUnclosed:!0});if(f[0]===\"comment\"&&/^\\/\\*/.test(f[1]))return f[0]=\"word\",f[1]=f[1].slice(1),o[1]=\"//\",this.tokenizer.back(f),n.exports.isInlineComment.bind(this)(o)}return!1}}}}),Rf=R({\"node_modules/postcss-less/lib/nodes/interpolation.js\"(e,n){A(),n.exports={interpolation(i){let a=i,o=[i],f=[\"word\",\"{\",\"}\"];if(i=this.tokenizer.nextToken(),a[1].length>1||i[0]!==\"{\")return this.tokenizer.back(i),!1;for(;i&&f.includes(i[0]);)o.push(i),i=this.tokenizer.nextToken();let p=o.map(r=>r[1]);[a]=o;let h=o.pop(),g=[a[2],a[3]],c=[h[4]||h[2],h[5]||h[3]],t=[\"word\",p.join(\"\")].concat(g,c);return this.tokenizer.back(i),this.tokenizer.back(t),!0}}}}),If=R({\"node_modules/postcss-less/lib/nodes/mixin.js\"(e,n){A();var i=/^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/,a=/\\.[0-9]/,o=f=>{let[,p]=f,[h]=p;return(h===\".\"||h===\"#\")&&i.test(p)===!1&&a.test(p)===!1};n.exports={isMixinToken:o}}}),Cf=R({\"node_modules/postcss-less/lib/nodes/import.js\"(e,n){A();var i=Lt(),a=/^url\\((.+)\\)/;n.exports=o=>{let{name:f,params:p=\"\"}=o;if(f===\"import\"&&p.length){o.import=!0;let h=i({css:p});for(o.filename=p.replace(a,\"$1\");!h.endOfFile();){let[g,c]=h.nextToken();if(g===\"word\"&&c===\"url\")return;if(g===\"brackets\"){o.options=c,o.filename=p.replace(c,\"\").trim();break}}}}}}),Nf=R({\"node_modules/postcss-less/lib/nodes/variable.js\"(e,n){A();var i=/:$/,a=/^:(\\s+)?/;n.exports=o=>{let{name:f,params:p=\"\"}=o;if(o.name.slice(-1)===\":\"){if(i.test(f)){let[h]=f.match(i);o.name=f.replace(h,\"\"),o.raws.afterName=h+(o.raws.afterName||\"\"),o.variable=!0,o.value=o.params}if(a.test(p)){let[h]=p.match(a);o.value=p.replace(h,\"\"),o.raws.afterName=(o.raws.afterName||\"\")+h,o.variable=!0}}}}}),jf=R({\"node_modules/postcss-less/lib/LessParser.js\"(e,n){A();var i=xr(),a=zt(),{isInlineComment:o}=Pf(),{interpolation:f}=Rf(),{isMixinToken:p}=If(),h=Cf(),g=Nf(),c=/(!\\s*important)$/i;n.exports=class extends a{constructor(){super(...arguments),this.lastNode=null}atrule(r){f.bind(this)(r)||(super.atrule(r),h(this.lastNode),g(this.lastNode))}decl(){super.decl(...arguments),/extend\\(.+\\)/i.test(this.lastNode.value)&&(this.lastNode.extend=!0)}each(r){r[0][1]=\" \".concat(r[0][1]);let u=r.findIndex(y=>y[0]===\"(\"),s=r.reverse().find(y=>y[0]===\")\"),l=r.reverse().indexOf(s),v=r.splice(u,l).map(y=>y[1]).join(\"\");for(let y of r.reverse())this.tokenizer.back(y);this.atrule(this.tokenizer.nextToken()),this.lastNode.function=!0,this.lastNode.params=v}init(r,u,s){super.init(r,u,s),this.lastNode=r}inlineComment(r){let u=new i,s=r[1].slice(2);if(this.init(u,r[2],r[3]),u.source.end={line:r[4],column:r[5]},u.inline=!0,u.raws.begin=\"//\",/^\\s*$/.test(s))u.text=\"\",u.raws.left=s,u.raws.right=\"\";else{let l=s.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);[,u.raws.left,u.text,u.raws.right]=l}}mixin(r){let[u]=r,s=u[1].slice(0,1),l=r.findIndex(d=>d[0]===\"brackets\"),m=r.findIndex(d=>d[0]===\"(\"),v=\"\";if((l<0||l>3)&&m>0){let d=r.reduce(($,B,O)=>B[0]===\")\"?O:$),S=r.slice(m,d+m).map($=>$[1]).join(\"\"),[x]=r.slice(m),N=[x[2],x[3]],[P]=r.slice(d,d+1),W=[P[2],P[3]],U=[\"brackets\",S].concat(N,W),H=r.slice(0,m),D=r.slice(d+1);r=H,r.push(U),r=r.concat(D)}let y=[];for(let d of r)if((d[1]===\"!\"||y.length)&&y.push(d),d[1]===\"important\")break;if(y.length){let[d]=y,_=r.indexOf(d),S=y[y.length-1],x=[d[2],d[3]],N=[S[4],S[5]],P=y.map(U=>U[1]).join(\"\"),W=[\"word\",P].concat(x,N);r.splice(_,y.length,W)}let w=r.findIndex(d=>c.test(d[1]));w>0&&([,v]=r[w],r.splice(w,1));for(let d of r.reverse())this.tokenizer.back(d);this.atrule(this.tokenizer.nextToken()),this.lastNode.mixin=!0,this.lastNode.raws.identifier=s,v&&(this.lastNode.important=!0,this.lastNode.raws.important=v)}other(r){o.bind(this)(r)||super.other(r)}rule(r){let u=r[r.length-1],s=r[r.length-2];if(s[0]===\"at-word\"&&u[0]===\"{\"&&(this.tokenizer.back(u),f.bind(this)(s))){let m=this.tokenizer.nextToken();r=r.slice(0,r.length-2).concat([m]);for(let v of r.reverse())this.tokenizer.back(v);return}super.rule(r),/:extend\\(.+\\)/i.test(this.lastNode.selector)&&(this.lastNode.extend=!0)}unknownWord(r){let[u]=r;if(r[0][1]===\"each\"&&r[1][0]===\"(\"){this.each(r);return}if(p(u)){this.mixin(r);return}super.unknownWord(r)}}}}),Mf=R({\"node_modules/postcss-less/lib/LessStringifier.js\"(e,n){A();var i=br();n.exports=class extends i{atrule(o,f){if(!o.mixin&&!o.variable&&!o.function){super.atrule(o,f);return}let p=o.function?\"\":o.raws.identifier||\"@\",h=\"\".concat(p).concat(o.name),g=o.params?this.rawValue(o,\"params\"):\"\",c=o.raws.important||\"\";if(o.variable&&(g=o.value),typeof o.raws.afterName<\"u\"?h+=o.raws.afterName:g&&(h+=\" \"),o.nodes)this.block(o,h+g+c);else{let t=(o.raws.between||\"\")+c+(f?\";\":\"\");this.builder(h+g+t,o)}}comment(o){if(o.inline){let f=this.raw(o,\"left\",\"commentLeft\"),p=this.raw(o,\"right\",\"commentRight\");this.builder(\"//\".concat(f).concat(o.text).concat(p),o)}else super.comment(o)}}}}),Df=R({\"node_modules/postcss-less/lib/index.js\"(e,n){A();var i=_r(),a=jf(),o=Mf();n.exports={parse(f,p){let h=new i(f,p),g=new a(h);return g.parse(),g.root},stringify(f,p){new o(p).stringify(f)},nodeToString(f){let p=\"\";return n.exports.stringify(f,h=>{p+=h}),p}}}}),Lf=R({\"node_modules/postcss-scss/lib/scss-stringifier.js\"(e,n){\"use strict\";A();function i(f,p){f.prototype=Object.create(p.prototype),f.prototype.constructor=f,f.__proto__=p}var a=br(),o=function(f){i(p,f);function p(){return f.apply(this,arguments)||this}var h=p.prototype;return h.comment=function(c){var t=this.raw(c,\"left\",\"commentLeft\"),r=this.raw(c,\"right\",\"commentRight\");if(c.raws.inline){var u=c.raws.text||c.text;this.builder(\"//\"+t+u+r,c)}else this.builder(\"/*\"+t+c.text+r+\"*/\",c)},h.decl=function(c,t){if(!c.isNested)f.prototype.decl.call(this,c,t);else{var r=this.raw(c,\"between\",\"colon\"),u=c.prop+r+this.rawValue(c,\"value\");c.important&&(u+=c.raws.important||\" !important\"),this.builder(u+\"{\",c,\"start\");var s;c.nodes&&c.nodes.length?(this.body(c),s=this.raw(c,\"after\")):s=this.raw(c,\"after\",\"emptyBody\"),s&&this.builder(s),this.builder(\"}\",c,\"end\")}},h.rawValue=function(c,t){var r=c[t],u=c.raws[t];return u&&u.value===r?u.scss?u.scss:u.raw:r},p}(a);n.exports=o}}),zf=R({\"node_modules/postcss-scss/lib/scss-stringify.js\"(e,n){\"use strict\";A();var i=Lf();n.exports=function(o,f){var p=new i(f);p.stringify(o)}}}),Bf=R({\"node_modules/postcss-scss/lib/nested-declaration.js\"(e,n){\"use strict\";A();function i(f,p){f.prototype=Object.create(p.prototype),f.prototype.constructor=f,f.__proto__=p}var a=kr(),o=function(f){i(p,f);function p(h){var g;return g=f.call(this,h)||this,g.type=\"decl\",g.isNested=!0,g.nodes||(g.nodes=[]),g}return p}(a);n.exports=o}}),Ff=R({\"node_modules/postcss-scss/lib/scss-tokenize.js\"(e,n){\"use strict\";A();var i=\"'\".charCodeAt(0),a='\"'.charCodeAt(0),o=\"\\\\\".charCodeAt(0),f=\"/\".charCodeAt(0),p=`\n`.charCodeAt(0),h=\" \".charCodeAt(0),g=\"\\f\".charCodeAt(0),c=\"\t\".charCodeAt(0),t=\"\\r\".charCodeAt(0),r=\"[\".charCodeAt(0),u=\"]\".charCodeAt(0),s=\"(\".charCodeAt(0),l=\")\".charCodeAt(0),m=\"{\".charCodeAt(0),v=\"}\".charCodeAt(0),y=\";\".charCodeAt(0),w=\"*\".charCodeAt(0),d=\":\".charCodeAt(0),_=\"@\".charCodeAt(0),S=\",\".charCodeAt(0),x=\"#\".charCodeAt(0),N=/[ \\n\\t\\r\\f{}()'\"\\\\;/[\\]#]/g,P=/[ \\n\\t\\r\\f(){}:;@!'\"\\\\\\][#]|\\/(?=\\*)/g,W=/.[\\\\/(\"'\\n]/,U=/[a-f0-9]/i,H=/[\\r\\f\\n]/g;n.exports=function($,B){B===void 0&&(B={});var O=$.css.valueOf(),j=B.ignoreErrors,C,I,X,Z,Q,K,J,M,Y,G,E,k,b,L,q=O.length,T=-1,F=1,z=0,re=[],ne=[];function ce(se){throw $.error(\"Unclosed \"+se,F,z-T)}function fe(){return ne.length===0&&z>=q}function te(){for(var se=1,le=!1,pe=!1;se>0;)I+=1,O.length<=I&&ce(\"interpolation\"),C=O.charCodeAt(I),k=O.charCodeAt(I+1),le?!pe&&C===le?(le=!1,pe=!1):C===o?pe=!G:pe&&(pe=!1):C===i||C===a?le=C:C===v?se-=1:C===x&&k===m&&(se+=1)}function ie(){if(ne.length)return ne.pop();if(!(z>=q)){switch(C=O.charCodeAt(z),(C===p||C===g||C===t&&O.charCodeAt(z+1)!==p)&&(T=z,F+=1),C){case p:case h:case c:case t:case g:I=z;do I+=1,C=O.charCodeAt(I),C===p&&(T=I,F+=1);while(C===h||C===p||C===c||C===t||C===g);b=[\"space\",O.slice(z,I)],z=I-1;break;case r:b=[\"[\",\"[\",F,z-T];break;case u:b=[\"]\",\"]\",F,z-T];break;case m:b=[\"{\",\"{\",F,z-T];break;case v:b=[\"}\",\"}\",F,z-T];break;case S:b=[\"word\",\",\",F,z-T,F,z-T+1];break;case d:b=[\":\",\":\",F,z-T];break;case y:b=[\";\",\";\",F,z-T];break;case s:if(E=re.length?re.pop()[1]:\"\",k=O.charCodeAt(z+1),E===\"url\"&&k!==i&&k!==a){for(L=1,G=!1,I=z+1;I<=O.length-1;){if(k=O.charCodeAt(I),k===o)G=!G;else if(k===s)L+=1;else if(k===l&&(L-=1,L===0))break;I+=1}K=O.slice(z,I+1),Z=K.split(`\n`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"brackets\",K,F,z-T,M,I-Y],T=Y,F=M,z=I}else I=O.indexOf(\")\",z+1),K=O.slice(z,I+1),I===-1||W.test(K)?b=[\"(\",\"(\",F,z-T]:(b=[\"brackets\",K,F,z-T,F,I-T],z=I);break;case l:b=[\")\",\")\",F,z-T];break;case i:case a:for(X=C,I=z,G=!1;I0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"string\",O.slice(z,I+1),F,z-T,M,I-Y],T=Y,F=M,z=I;break;case _:N.lastIndex=z+1,N.test(O),N.lastIndex===0?I=O.length-1:I=N.lastIndex-2,b=[\"at-word\",O.slice(z,I+1),F,z-T,F,I-T],z=I;break;case o:for(I=z,J=!0;O.charCodeAt(I+1)===o;)I+=1,J=!J;if(C=O.charCodeAt(I+1),J&&C!==f&&C!==h&&C!==p&&C!==c&&C!==t&&C!==g&&(I+=1,U.test(O.charAt(I)))){for(;U.test(O.charAt(I+1));)I+=1;O.charCodeAt(I+1)===h&&(I+=1)}b=[\"word\",O.slice(z,I+1),F,z-T,F,I-T],z=I;break;default:k=O.charCodeAt(z+1),C===x&&k===m?(I=z,te(),K=O.slice(z,I+1),Z=K.split(`\n`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"word\",K,F,z-T,M,I-Y],T=Y,F=M,z=I):C===f&&k===w?(I=O.indexOf(\"*/\",z+2)+1,I===0&&(j?I=O.length:ce(\"comment\")),K=O.slice(z,I+1),Z=K.split(`\n`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"comment\",K,F,z-T,M,I-Y],T=Y,F=M,z=I):C===f&&k===f?(H.lastIndex=z+1,H.test(O),H.lastIndex===0?I=O.length-1:I=H.lastIndex-2,K=O.slice(z,I+1),b=[\"comment\",K,F,z-T,F,I-T,\"inline\"],z=I):(P.lastIndex=z+1,P.test(O),P.lastIndex===0?I=O.length-1:I=P.lastIndex-2,b=[\"word\",O.slice(z,I+1),F,z-T,F,I-T],re.push(b),z=I);break}return z++,b}}function ae(se){ne.push(se)}return{back:ae,nextToken:ie,endOfFile:fe}}}}),Uf=R({\"node_modules/postcss-scss/lib/scss-parser.js\"(e,n){\"use strict\";A();function i(g,c){g.prototype=Object.create(c.prototype),g.prototype.constructor=g,g.__proto__=c}var a=xr(),o=zt(),f=Bf(),p=Ff(),h=function(g){i(c,g);function c(){return g.apply(this,arguments)||this}var t=c.prototype;return t.createTokenizer=function(){this.tokenizer=p(this.input)},t.rule=function(u){for(var s=!1,l=0,m=\"\",w=u,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;if(s)_[0]!==\"comment\"&&_[0]!==\"{\"&&(m+=_[1]);else{if(_[0]===\"space\"&&_[1].indexOf(`\n`)!==-1)break;_[0]===\"(\"?l+=1:_[0]===\")\"?l-=1:l===0&&_[0]===\":\"&&(s=!0)}}if(!s||m.trim()===\"\"||/^[a-zA-Z-:#]/.test(m))g.prototype.rule.call(this,u);else{u.pop();var S=new f;this.init(S);var x=u[u.length-1];for(x[4]?S.source.end={line:x[4],column:x[5]}:S.source.end={line:x[2],column:x[3]};u[0][0]!==\"word\";)S.raws.before+=u.shift()[1];for(S.source.start={line:u[0][2],column:u[0][3]},S.prop=\"\";u.length;){var N=u[0][0];if(N===\":\"||N===\"space\"||N===\"comment\")break;S.prop+=u.shift()[1]}S.raws.between=\"\";for(var P;u.length;)if(P=u.shift(),P[0]===\":\"){S.raws.between+=P[1];break}else S.raws.between+=P[1];(S.prop[0]===\"_\"||S.prop[0]===\"*\")&&(S.raws.before+=S.prop[0],S.prop=S.prop.slice(1)),S.raws.between+=this.spacesAndCommentsFromStart(u),this.precheckMissedSemicolon(u);for(var W=u.length-1;W>0;W--){if(P=u[W],P[1]===\"!important\"){S.important=!0;var U=this.stringFrom(u,W);U=this.spacesFromEnd(u)+U,U!==\" !important\"&&(S.raws.important=U);break}else if(P[1]===\"important\"){for(var H=u.slice(0),D=\"\",$=W;$>0;$--){var B=H[$][0];if(D.trim().indexOf(\"!\")===0&&B!==\"space\")break;D=H.pop()[1]+D}D.trim().indexOf(\"!\")===0&&(S.important=!0,S.raws.important=D,u=H)}if(P[0]!==\"space\"&&P[0]!==\"comment\")break}this.raw(S,\"value\",u),S.value.indexOf(\":\")!==-1&&this.checkMissedSemicolon(u),this.current=S}},t.comment=function(u){if(u[6]===\"inline\"){var s=new a;this.init(s,u[2],u[3]),s.raws.inline=!0,s.source.end={line:u[4],column:u[5]};var l=u[1].slice(2);if(/^\\s*$/.test(l))s.text=\"\",s.raws.left=l,s.raws.right=\"\";else{var m=l.match(/^(\\s*)([^]*[^\\s])(\\s*)$/),v=m[2].replace(/(\\*\\/|\\/\\*)/g,\"*//*\");s.text=v,s.raws.left=m[1],s.raws.right=m[3],s.raws.text=m[2]}}else g.prototype.comment.call(this,u)},t.raw=function(u,s,l){if(g.prototype.raw.call(this,u,s,l),u.raws[s]){var m=u.raws[s].raw;u.raws[s].raw=l.reduce(function(v,y){if(y[0]===\"comment\"&&y[6]===\"inline\"){var w=y[1].slice(2).replace(/(\\*\\/|\\/\\*)/g,\"*//*\");return v+\"/*\"+w+\"*/\"}else return v+y[1]},\"\"),m!==u.raws[s].raw&&(u.raws[s].scss=m)}},c}(o);n.exports=h}}),Wf=R({\"node_modules/postcss-scss/lib/scss-parse.js\"(e,n){\"use strict\";A();var i=_r(),a=Uf();n.exports=function(f,p){var h=new i(f,p),g=new a(h);return g.parse(),g.root}}}),$f=R({\"node_modules/postcss-scss/lib/scss-syntax.js\"(e,n){\"use strict\";A();var i=zf(),a=Wf();n.exports={parse:a,stringify:i}}});A();var Vf=ml(),pt=Cs(),Gf=Ns(),{hasPragma:Hf}=Tl(),{locStart:Jf,locEnd:Kf}=Js(),{calculateLoc:Qf,replaceQuotesInInlineComments:Yf}=Js(),Xf=Pl(),Zf=Rl(),ht=Il(),sa=Cl(),ep=Nl(),rp=jl(),tp=Ml(),np=Dl(),ip=e=>{for(;e.parent;)e=e.parent;return e};function sp(e,n){let{nodes:i}=e,a={open:null,close:null,groups:[],type:\"paren_group\"},o=[a],f=a,p={groups:[],type:\"comma_group\"},h=[p];for(let g=0;g0&&a.groups.push(p),a.close=c,h.length===1)throw new Error(\"Unbalanced parenthesis\");h.pop(),p=pt(h),p.groups.push(a),o.pop(),a=pt(o)}else c.type===\"comma\"?(a.groups.push(p),p={groups:[],type:\"comma_group\"},h[h.length-1]=p):p.groups.push(c)}return p.groups.length>0&&a.groups.push(p),f}function hr(e){return e.type===\"paren_group\"&&!e.open&&!e.close&&e.groups.length===1||e.type===\"comma_group\"&&e.groups.length===1?hr(e.groups[0]):e.type===\"paren_group\"||e.type===\"comma_group\"?Object.assign(Object.assign({},e),{},{groups:e.groups.map(hr)}):e}function Xe(e,n,i){if(e&&typeof e==\"object\"){delete e.parent;for(let a in e)Xe(e[a],n,i),a===\"type\"&&typeof e[a]==\"string\"&&!e[a].startsWith(n)&&(!i||!i.test(e[a]))&&(e[a]=n+e[a])}return e}function oa(e){if(e&&typeof e==\"object\"){delete e.parent;for(let n in e)oa(e[n]);!Array.isArray(e)&&e.value&&!e.type&&(e.type=\"unknown\")}return e}function aa(e,n){if(e&&typeof e==\"object\"){for(let i in e)i!==\"parent\"&&(aa(e[i],n),i===\"nodes\"&&(e.group=hr(sp(e,n)),delete e[i]));delete e.parent}return e}function Pe(e,n){let i=lf(),a=null;try{a=i(e,{loose:!0}).parse()}catch{return{type:\"value-unknown\",value:e}}a.text=e;let o=aa(a,n);return Xe(o,\"value-\",/^selector-/)}function Ie(e){if(/\\/\\/|\\/\\*/.test(e))return{type:\"selector-unknown\",value:e.trim()};let n=vf(),i=null;try{n(a=>{i=a}).process(e)}catch{return{type:\"selector-unknown\",value:e}}return Xe(i,\"selector-\")}function op(e){let n=gf().default,i=null;try{i=n(e)}catch{return{type:\"selector-unknown\",value:e}}return Xe(oa(i),\"media-\")}var ap=/(\\s*)(!default).*$/,up=/(\\s*)(!global).*$/;function ua(e,n){if(e&&typeof e==\"object\"){delete e.parent;for(let f in e)ua(e[f],n);if(!e.type)return e;e.raws||(e.raws={});let i=\"\";typeof e.selector==\"string\"&&(i=e.raws.selector?e.raws.selector.scss?e.raws.selector.scss:e.raws.selector.raw:e.selector,e.raws.between&&e.raws.between.trim().length>0&&(i+=e.raws.between),e.raws.selector=i);let a=\"\";typeof e.value==\"string\"&&(a=e.raws.value?e.raws.value.scss?e.raws.value.scss:e.raws.value.raw:e.value,a=a.trim(),e.raws.value=a);let o=\"\";if(typeof e.params==\"string\"&&(o=e.raws.params?e.raws.params.scss?e.raws.params.scss:e.raws.params.raw:e.params,e.raws.afterName&&e.raws.afterName.trim().length>0&&(o=e.raws.afterName+o),e.raws.between&&e.raws.between.trim().length>0&&(o=o+e.raws.between),o=o.trim(),e.raws.params=o),i.trim().length>0)return i.startsWith(\"@\")&&i.endsWith(\":\")?e:e.mixin?(e.selector=Pe(i,n),e):(ep(e)&&(e.isSCSSNesterProperty=!0),e.selector=Ie(i),e);if(a.length>0){let f=a.match(ap);f&&(a=a.slice(0,f.index),e.scssDefault=!0,f[0].trim()!==\"!default\"&&(e.raws.scssDefault=f[0]));let p=a.match(up);if(p&&(a=a.slice(0,p.index),e.scssGlobal=!0,p[0].trim()!==\"!global\"&&(e.raws.scssGlobal=p[0])),a.startsWith(\"progid:\"))return{type:\"value-unknown\",value:a};e.value=Pe(a,n)}if(ht(n)&&e.type===\"css-decl\"&&a.startsWith(\"extend(\")&&(e.extend||(e.extend=e.raws.between===\":\"),e.extend&&!e.selector&&(delete e.value,e.selector=Ie(a.slice(7,-1)))),e.type===\"css-atrule\"){if(ht(n)){if(e.mixin){let f=e.raws.identifier+e.name+e.raws.afterName+e.raws.params;return e.selector=Ie(f),delete e.params,e}if(e.function)return e}if(n.parser===\"css\"&&e.name===\"custom-selector\"){let f=e.params.match(/:--\\S+\\s+/)[0].trim();return e.customSelector=f,e.selector=Ie(e.params.slice(f.length).trim()),delete e.params,e}if(ht(n)){if(e.name.includes(\":\")&&!e.params){e.variable=!0;let f=e.name.split(\":\");e.name=f[0],e.value=Pe(f.slice(1).join(\":\"),n)}if(![\"page\",\"nest\",\"keyframes\"].includes(e.name)&&e.params&&e.params[0]===\":\"&&(e.variable=!0,e.value=Pe(e.params.slice(1),n),e.raws.afterName+=\":\"),e.variable)return delete e.params,e}}if(e.type===\"css-atrule\"&&o.length>0){let{name:f}=e,p=e.name.toLowerCase();return f===\"warn\"||f===\"error\"?(e.params={type:\"media-unknown\",value:o},e):f===\"extend\"||f===\"nest\"?(e.selector=Ie(o),delete e.params,e):f===\"at-root\"?(/^\\(\\s*(?:without|with)\\s*:.+\\)$/s.test(o)?e.params=Pe(o,n):(e.selector=Ie(o),delete e.params),e):np(p)?(e.import=!0,delete e.filename,e.params=Pe(o,n),e):[\"namespace\",\"supports\",\"if\",\"else\",\"for\",\"each\",\"while\",\"debug\",\"mixin\",\"include\",\"function\",\"return\",\"define-mixin\",\"add-mixin\"].includes(f)?(o=o.replace(/(\\$\\S+?)(\\s+)?\\.{3}/,\"$1...$2\"),o=o.replace(/^(?!if)(\\S+)(\\s+)\\(/,\"$1($2\"),e.value=Pe(o,n),delete e.params,e):[\"media\",\"custom-media\"].includes(p)?o.includes(\"#{\")?{type:\"media-unknown\",value:o}:(e.params=op(o),e):(e.params=o,e)}}return e}function ca(e,n,i){let a=Gf(n),{frontMatter:o}=a;n=a.content;let f;try{f=e(n)}catch(p){let{name:h,reason:g,line:c,column:t}=p;throw typeof c!=\"number\"?p:Vf(\"\".concat(h,\": \").concat(g),{start:{line:c,column:t}})}return f=ua(Xe(f,\"css-\"),i),Qf(f,n),o&&(o.source={startOffset:0,endOffset:o.raw.length},f.nodes.unshift(o)),f}function cp(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=sa(i.parser,e)?[xt,bt]:[bt,xt],f;for(let p of o)try{return p(e,n,i)}catch(h){f=f||h}if(f)throw f}function bt(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=Df();return ca(o=>a.parse(Yf(o)),e,i)}function xt(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:a}=$f();return ca(a,e,i)}var dt={astFormat:\"postcss\",hasPragma:Hf,locStart:Jf,locEnd:Kf};la.exports={parsers:{css:Object.assign(Object.assign({},dt),{},{parse:cp}),less:Object.assign(Object.assign({},dt),{},{parse:bt}),scss:Object.assign(Object.assign({},dt),{},{parse:xt})}}});return lp();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.typescript=e()}})(function(){\"use strict\";var Bn=(M,re)=>()=>(re||M((re={exports:{}}).exports,re),re.exports);var qc=Bn((Sz,CA)=>{var $0=function(M){return M&&M.Math==Math&&M};CA.exports=$0(typeof globalThis==\"object\"&&globalThis)||$0(typeof window==\"object\"&&window)||$0(typeof self==\"object\"&&self)||$0(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var cg=Bn((Tz,kA)=>{kA.exports=function(M){try{return!!M()}catch{return!0}}});var Am=Bn((xz,AA)=>{var OL=cg();AA.exports=!OL(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Z0=Bn((Ez,NA)=>{var FL=cg();NA.exports=!FL(function(){var M=function(){}.bind();return typeof M!=\"function\"||M.hasOwnProperty(\"prototype\")})});var r1=Bn((Cz,PA)=>{var ML=Z0(),e1=Function.prototype.call;PA.exports=ML?e1.bind(e1):function(){return e1.apply(e1,arguments)}});var FA=Bn(OA=>{\"use strict\";var IA={}.propertyIsEnumerable,wA=Object.getOwnPropertyDescriptor,LL=wA&&!IA.call({1:2},1);OA.f=LL?function(re){var Ve=wA(this,re);return!!Ve&&Ve.enumerable}:IA});var XS=Bn((Az,MA)=>{MA.exports=function(M,re){return{enumerable:!(M&1),configurable:!(M&2),writable:!(M&4),value:re}}});var dp=Bn((Nz,BA)=>{var LA=Z0(),RA=Function.prototype,RL=RA.bind,QS=RA.call,BL=LA&&RL.bind(QS,QS);BA.exports=LA?function(M){return M&&BL(M)}:function(M){return M&&function(){return QS.apply(M,arguments)}}});var i1=Bn((Pz,jA)=>{var JA=dp(),JL=JA({}.toString),jL=JA(\"\".slice);jA.exports=function(M){return jL(JL(M),8,-1)}});var zA=Bn((Iz,UA)=>{var UL=qc(),zL=dp(),WL=cg(),qL=i1(),YS=UL.Object,VL=zL(\"\".split);UA.exports=WL(function(){return!YS(\"z\").propertyIsEnumerable(0)})?function(M){return qL(M)==\"String\"?VL(M,\"\"):YS(M)}:YS});var $S=Bn((wz,WA)=>{var KL=qc(),GL=KL.TypeError;WA.exports=function(M){if(M==null)throw GL(\"Can't call method on \"+M);return M}});var t1=Bn((Oz,qA)=>{var HL=zA(),XL=$S();qA.exports=function(M){return HL(XL(M))}});var gp=Bn((Fz,VA)=>{VA.exports=function(M){return typeof M==\"function\"}});var Nm=Bn((Mz,KA)=>{var QL=gp();KA.exports=function(M){return typeof M==\"object\"?M!==null:QL(M)}});var qy=Bn((Lz,GA)=>{var ZS=qc(),YL=gp(),$L=function(M){return YL(M)?M:void 0};GA.exports=function(M,re){return arguments.length<2?$L(ZS[M]):ZS[M]&&ZS[M][re]}});var XA=Bn((Rz,HA)=>{var ZL=dp();HA.exports=ZL({}.isPrototypeOf)});var YA=Bn((Bz,QA)=>{var eR=qy();QA.exports=eR(\"navigator\",\"userAgent\")||\"\"});var aN=Bn((Jz,tN)=>{var iN=qc(),eT=YA(),$A=iN.process,ZA=iN.Deno,eN=$A&&$A.versions||ZA&&ZA.version,rN=eN&&eN.v8,ad,a1;rN&&(ad=rN.split(\".\"),a1=ad[0]>0&&ad[0]<4?1:+(ad[0]+ad[1]));!a1&&eT&&(ad=eT.match(/Edge\\/(\\d+)/),(!ad||ad[1]>=74)&&(ad=eT.match(/Chrome\\/(\\d+)/),ad&&(a1=+ad[1])));tN.exports=a1});var rT=Bn((jz,oN)=>{var nN=aN(),rR=cg();oN.exports=!!Object.getOwnPropertySymbols&&!rR(function(){var M=Symbol();return!String(M)||!(Object(M)instanceof Symbol)||!Symbol.sham&&nN&&nN<41})});var iT=Bn((Uz,sN)=>{var iR=rT();sN.exports=iR&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var tT=Bn((zz,cN)=>{var tR=qc(),aR=qy(),nR=gp(),oR=XA(),sR=iT(),cR=tR.Object;cN.exports=sR?function(M){return typeof M==\"symbol\"}:function(M){var re=aR(\"Symbol\");return nR(re)&&oR(re.prototype,cR(M))}});var lN=Bn((Wz,uN)=>{var uR=qc(),lR=uR.String;uN.exports=function(M){try{return lR(M)}catch{return\"Object\"}}});var n1=Bn((qz,fN)=>{var fR=qc(),_R=gp(),pR=lN(),dR=fR.TypeError;fN.exports=function(M){if(_R(M))return M;throw dR(pR(M)+\" is not a function\")}});var pN=Bn((Vz,_N)=>{var gR=n1();_N.exports=function(M,re){var Ve=M[re];return Ve==null?void 0:gR(Ve)}});var gN=Bn((Kz,dN)=>{var mR=qc(),aT=r1(),nT=gp(),oT=Nm(),vR=mR.TypeError;dN.exports=function(M,re){var Ve,Ke;if(re===\"string\"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M))||nT(Ve=M.valueOf)&&!oT(Ke=aT(Ve,M))||re!==\"string\"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M)))return Ke;throw vR(\"Can't convert object to primitive value\")}});var vN=Bn((Gz,mN)=>{mN.exports=!1});var o1=Bn((Hz,hN)=>{var yN=qc(),yR=Object.defineProperty;hN.exports=function(M,re){try{yR(yN,M,{value:re,configurable:!0,writable:!0})}catch{yN[M]=re}return re}});var s1=Bn((Xz,bN)=>{var hR=qc(),DR=o1(),DN=\"__core-js_shared__\",bR=hR[DN]||DR(DN,{});bN.exports=bR});var sT=Bn((Qz,TN)=>{var SR=vN(),SN=s1();(TN.exports=function(M,re){return SN[M]||(SN[M]=re!==void 0?re:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:SR?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var cT=Bn((Yz,xN)=>{var TR=qc(),xR=$S(),ER=TR.Object;xN.exports=function(M){return ER(xR(M))}});var Wg=Bn(($z,EN)=>{var CR=dp(),kR=cT(),AR=CR({}.hasOwnProperty);EN.exports=Object.hasOwn||function(re,Ve){return AR(kR(re),Ve)}});var uT=Bn((Zz,CN)=>{var NR=dp(),PR=0,IR=Math.random(),wR=NR(1 .toString);CN.exports=function(M){return\"Symbol(\"+(M===void 0?\"\":M)+\")_\"+wR(++PR+IR,36)}});var Vy=Bn((eW,IN)=>{var OR=qc(),FR=sT(),kN=Wg(),MR=uT(),AN=rT(),PN=iT(),Iv=FR(\"wks\"),Pm=OR.Symbol,NN=Pm&&Pm.for,LR=PN?Pm:Pm&&Pm.withoutSetter||MR;IN.exports=function(M){if(!kN(Iv,M)||!(AN||typeof Iv[M]==\"string\")){var re=\"Symbol.\"+M;AN&&kN(Pm,M)?Iv[M]=Pm[M]:PN&&NN?Iv[M]=NN(re):Iv[M]=LR(re)}return Iv[M]}});var MN=Bn((rW,FN)=>{var RR=qc(),BR=r1(),wN=Nm(),ON=tT(),JR=pN(),jR=gN(),UR=Vy(),zR=RR.TypeError,WR=UR(\"toPrimitive\");FN.exports=function(M,re){if(!wN(M)||ON(M))return M;var Ve=JR(M,WR),Ke;if(Ve){if(re===void 0&&(re=\"default\"),Ke=BR(Ve,M,re),!wN(Ke)||ON(Ke))return Ke;throw zR(\"Can't convert object to primitive value\")}return re===void 0&&(re=\"number\"),jR(M,re)}});var lT=Bn((iW,LN)=>{var qR=MN(),VR=tT();LN.exports=function(M){var re=qR(M,\"string\");return VR(re)?re:re+\"\"}});var JN=Bn((tW,BN)=>{var KR=qc(),RN=Nm(),fT=KR.document,GR=RN(fT)&&RN(fT.createElement);BN.exports=function(M){return GR?fT.createElement(M):{}}});var _T=Bn((aW,jN)=>{var HR=Am(),XR=cg(),QR=JN();jN.exports=!HR&&!XR(function(){return Object.defineProperty(QR(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var pT=Bn(zN=>{var YR=Am(),$R=r1(),ZR=FA(),eB=XS(),rB=t1(),iB=lT(),tB=Wg(),aB=_T(),UN=Object.getOwnPropertyDescriptor;zN.f=YR?UN:function(re,Ve){if(re=rB(re),Ve=iB(Ve),aB)try{return UN(re,Ve)}catch{}if(tB(re,Ve))return eB(!$R(ZR.f,re,Ve),re[Ve])}});var qN=Bn((oW,WN)=>{var nB=Am(),oB=cg();WN.exports=nB&&oB(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var dT=Bn((sW,KN)=>{var VN=qc(),sB=Nm(),cB=VN.String,uB=VN.TypeError;KN.exports=function(M){if(sB(M))return M;throw uB(cB(M)+\" is not an object\")}});var hT=Bn(HN=>{var lB=qc(),fB=Am(),_B=_T(),pB=qN(),c1=dT(),GN=lT(),dB=lB.TypeError,gT=Object.defineProperty,gB=Object.getOwnPropertyDescriptor,mT=\"enumerable\",vT=\"configurable\",yT=\"writable\";HN.f=fB?pB?function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),typeof re==\"function\"&&Ve===\"prototype\"&&\"value\"in Ke&&yT in Ke&&!Ke[yT]){var oi=gB(re,Ve);oi&&oi[yT]&&(re[Ve]=Ke.value,Ke={configurable:vT in Ke?Ke[vT]:oi[vT],enumerable:mT in Ke?Ke[mT]:oi[mT],writable:!1})}return gT(re,Ve,Ke)}:gT:function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),_B)try{return gT(re,Ve,Ke)}catch{}if(\"get\"in Ke||\"set\"in Ke)throw dB(\"Accessors not supported\");return\"value\"in Ke&&(re[Ve]=Ke.value),re}});var u1=Bn((uW,XN)=>{var mB=Am(),vB=hT(),yB=XS();XN.exports=mB?function(M,re,Ve){return vB.f(M,re,yB(1,Ve))}:function(M,re,Ve){return M[re]=Ve,M}});var l1=Bn((lW,QN)=>{var hB=dp(),DB=gp(),DT=s1(),bB=hB(Function.toString);DB(DT.inspectSource)||(DT.inspectSource=function(M){return bB(M)});QN.exports=DT.inspectSource});var ZN=Bn((fW,$N)=>{var SB=qc(),TB=gp(),xB=l1(),YN=SB.WeakMap;$N.exports=TB(YN)&&/native code/.test(xB(YN))});var iP=Bn((_W,rP)=>{var EB=sT(),CB=uT(),eP=EB(\"keys\");rP.exports=function(M){return eP[M]||(eP[M]=CB(M))}});var bT=Bn((pW,tP)=>{tP.exports={}});var uP=Bn((dW,cP)=>{var kB=ZN(),sP=qc(),ST=dp(),AB=Nm(),NB=u1(),TT=Wg(),xT=s1(),PB=iP(),IB=bT(),aP=\"Object already initialized\",CT=sP.TypeError,wB=sP.WeakMap,f1,Ky,_1,OB=function(M){return _1(M)?Ky(M):f1(M,{})},FB=function(M){return function(re){var Ve;if(!AB(re)||(Ve=Ky(re)).type!==M)throw CT(\"Incompatible receiver, \"+M+\" required\");return Ve}};kB||xT.state?(qg=xT.state||(xT.state=new wB),nP=ST(qg.get),ET=ST(qg.has),oP=ST(qg.set),f1=function(M,re){if(ET(qg,M))throw new CT(aP);return re.facade=M,oP(qg,M,re),re},Ky=function(M){return nP(qg,M)||{}},_1=function(M){return ET(qg,M)}):(Im=PB(\"state\"),IB[Im]=!0,f1=function(M,re){if(TT(M,Im))throw new CT(aP);return re.facade=M,NB(M,Im,re),re},Ky=function(M){return TT(M,Im)?M[Im]:{}},_1=function(M){return TT(M,Im)});var qg,nP,ET,oP,Im;cP.exports={set:f1,get:Ky,has:_1,enforce:OB,getterFor:FB}});var _P=Bn((gW,fP)=>{var kT=Am(),MB=Wg(),lP=Function.prototype,LB=kT&&Object.getOwnPropertyDescriptor,AT=MB(lP,\"name\"),RB=AT&&function(){}.name===\"something\",BB=AT&&(!kT||kT&&LB(lP,\"name\").configurable);fP.exports={EXISTS:AT,PROPER:RB,CONFIGURABLE:BB}});var vP=Bn((mW,mP)=>{var JB=qc(),pP=gp(),jB=Wg(),dP=u1(),UB=o1(),zB=l1(),gP=uP(),WB=_P().CONFIGURABLE,qB=gP.get,VB=gP.enforce,KB=String(String).split(\"String\");(mP.exports=function(M,re,Ve,Ke){var oi=Ke?!!Ke.unsafe:!1,kr=Ke?!!Ke.enumerable:!1,pr=Ke?!!Ke.noTargetGet:!1,Lr=Ke&&Ke.name!==void 0?Ke.name:re,ar;if(pP(Ve)&&(String(Lr).slice(0,7)===\"Symbol(\"&&(Lr=\"[\"+String(Lr).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!jB(Ve,\"name\")||WB&&Ve.name!==Lr)&&dP(Ve,\"name\",Lr),ar=VB(Ve),ar.source||(ar.source=KB.join(typeof Lr==\"string\"?Lr:\"\"))),M===JB){kr?M[re]=Ve:UB(re,Ve);return}else oi?!pr&&M[re]&&(kr=!0):delete M[re];kr?M[re]=Ve:dP(M,re,Ve)})(Function.prototype,\"toString\",function(){return pP(this)&&qB(this).source||zB(this)})});var NT=Bn((vW,yP)=>{var GB=Math.ceil,HB=Math.floor;yP.exports=function(M){var re=+M;return re!==re||re===0?0:(re>0?HB:GB)(re)}});var DP=Bn((yW,hP)=>{var XB=NT(),QB=Math.max,YB=Math.min;hP.exports=function(M,re){var Ve=XB(M);return Ve<0?QB(Ve+re,0):YB(Ve,re)}});var SP=Bn((hW,bP)=>{var $B=NT(),ZB=Math.min;bP.exports=function(M){return M>0?ZB($B(M),9007199254740991):0}});var p1=Bn((DW,TP)=>{var eJ=SP();TP.exports=function(M){return eJ(M.length)}});var CP=Bn((bW,EP)=>{var rJ=t1(),iJ=DP(),tJ=p1(),xP=function(M){return function(re,Ve,Ke){var oi=rJ(re),kr=tJ(oi),pr=iJ(Ke,kr),Lr;if(M&&Ve!=Ve){for(;kr>pr;)if(Lr=oi[pr++],Lr!=Lr)return!0}else for(;kr>pr;pr++)if((M||pr in oi)&&oi[pr]===Ve)return M||pr||0;return!M&&-1}};EP.exports={includes:xP(!0),indexOf:xP(!1)}});var NP=Bn((SW,AP)=>{var aJ=dp(),PT=Wg(),nJ=t1(),oJ=CP().indexOf,sJ=bT(),kP=aJ([].push);AP.exports=function(M,re){var Ve=nJ(M),Ke=0,oi=[],kr;for(kr in Ve)!PT(sJ,kr)&&PT(Ve,kr)&&kP(oi,kr);for(;re.length>Ke;)PT(Ve,kr=re[Ke++])&&(~oJ(oi,kr)||kP(oi,kr));return oi}});var IP=Bn((TW,PP)=>{PP.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var OP=Bn(wP=>{var cJ=NP(),uJ=IP(),lJ=uJ.concat(\"length\",\"prototype\");wP.f=Object.getOwnPropertyNames||function(re){return cJ(re,lJ)}});var MP=Bn(FP=>{FP.f=Object.getOwnPropertySymbols});var RP=Bn((CW,LP)=>{var fJ=qy(),_J=dp(),pJ=OP(),dJ=MP(),gJ=dT(),mJ=_J([].concat);LP.exports=fJ(\"Reflect\",\"ownKeys\")||function(re){var Ve=pJ.f(gJ(re)),Ke=dJ.f;return Ke?mJ(Ve,Ke(re)):Ve}});var jP=Bn((kW,JP)=>{var BP=Wg(),vJ=RP(),yJ=pT(),hJ=hT();JP.exports=function(M,re,Ve){for(var Ke=vJ(re),oi=hJ.f,kr=yJ.f,pr=0;pr{var DJ=cg(),bJ=gp(),SJ=/#|\\.prototype\\./,Gy=function(M,re){var Ve=xJ[TJ(M)];return Ve==CJ?!0:Ve==EJ?!1:bJ(re)?DJ(re):!!re},TJ=Gy.normalize=function(M){return String(M).replace(SJ,\".\").toLowerCase()},xJ=Gy.data={},EJ=Gy.NATIVE=\"N\",CJ=Gy.POLYFILL=\"P\";UP.exports=Gy});var wT=Bn((NW,WP)=>{var IT=qc(),kJ=pT().f,AJ=u1(),NJ=vP(),PJ=o1(),IJ=jP(),wJ=zP();WP.exports=function(M,re){var Ve=M.target,Ke=M.global,oi=M.stat,kr,pr,Lr,ar,ke,e;if(Ke?pr=IT:oi?pr=IT[Ve]||PJ(Ve,{}):pr=(IT[Ve]||{}).prototype,pr)for(Lr in re){if(ke=re[Lr],M.noTargetGet?(e=kJ(pr,Lr),ar=e&&e.value):ar=pr[Lr],kr=wJ(Ke?Lr:Ve+(oi?\".\":\"#\")+Lr,M.forced),!kr&&ar!==void 0){if(typeof ke==typeof ar)continue;IJ(ke,ar)}(M.sham||ar&&ar.sham)&&AJ(ke,\"sham\",!0),NJ(pr,Lr,ke,M)}}});var qP=Bn(()=>{var OJ=wT(),FJ=qc();OJ({global:!0},{globalThis:FJ})});var VP=Bn(()=>{qP()});var OT=Bn((FW,KP)=>{var MJ=i1();KP.exports=Array.isArray||function(re){return MJ(re)==\"Array\"}});var XP=Bn((MW,HP)=>{var GP=dp(),LJ=n1(),RJ=Z0(),BJ=GP(GP.bind);HP.exports=function(M,re){return LJ(M),re===void 0?M:RJ?BJ(M,re):function(){return M.apply(re,arguments)}}});var $P=Bn((LW,YP)=>{\"use strict\";var JJ=qc(),jJ=OT(),UJ=p1(),zJ=XP(),WJ=JJ.TypeError,QP=function(M,re,Ve,Ke,oi,kr,pr,Lr){for(var ar=oi,ke=0,e=pr?zJ(pr,Lr):!1,a,C;ke0&&jJ(a))C=UJ(a),ar=QP(M,re,a,C,ar,kr-1)-1;else{if(ar>=9007199254740991)throw WJ(\"Exceed the acceptable array length\");M[ar]=a}ar++}ke++}return ar};YP.exports=QP});var r4=Bn((RW,e4)=>{var qJ=Vy(),VJ=qJ(\"toStringTag\"),ZP={};ZP[VJ]=\"z\";e4.exports=String(ZP)===\"[object z]\"});var t4=Bn((BW,i4)=>{var KJ=qc(),GJ=r4(),HJ=gp(),d1=i1(),XJ=Vy(),QJ=XJ(\"toStringTag\"),YJ=KJ.Object,$J=d1(function(){return arguments}())==\"Arguments\",ZJ=function(M,re){try{return M[re]}catch{}};i4.exports=GJ?d1:function(M){var re,Ve,Ke;return M===void 0?\"Undefined\":M===null?\"Null\":typeof(Ve=ZJ(re=YJ(M),QJ))==\"string\"?Ve:$J?d1(re):(Ke=d1(re))==\"Object\"&&HJ(re.callee)?\"Arguments\":Ke}});var u4=Bn((JW,c4)=>{var ej=dp(),rj=cg(),a4=gp(),ij=t4(),tj=qy(),aj=l1(),n4=function(){},nj=[],o4=tj(\"Reflect\",\"construct\"),FT=/^\\s*(?:class|function)\\b/,oj=ej(FT.exec),sj=!FT.exec(n4),Hy=function(re){if(!a4(re))return!1;try{return o4(n4,nj,re),!0}catch{return!1}},s4=function(re){if(!a4(re))return!1;switch(ij(re)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return sj||!!oj(FT,aj(re))}catch{return!0}};s4.sham=!0;c4.exports=!o4||rj(function(){var M;return Hy(Hy.call)||!Hy(Object)||!Hy(function(){M=!0})||M})?s4:Hy});var p4=Bn((jW,_4)=>{var cj=qc(),l4=OT(),uj=u4(),lj=Nm(),fj=Vy(),_j=fj(\"species\"),f4=cj.Array;_4.exports=function(M){var re;return l4(M)&&(re=M.constructor,uj(re)&&(re===f4||l4(re.prototype))?re=void 0:lj(re)&&(re=re[_j],re===null&&(re=void 0))),re===void 0?f4:re}});var g4=Bn((UW,d4)=>{var pj=p4();d4.exports=function(M,re){return new(pj(M))(re===0?0:re)}});var m4=Bn(()=>{\"use strict\";var dj=wT(),gj=$P(),mj=n1(),vj=cT(),yj=p1(),hj=g4();dj({target:\"Array\",proto:!0},{flatMap:function(re){var Ve=vj(this),Ke=yj(Ve),oi;return mj(re),oi=hj(Ve,0),oi.length=gj(oi,Ve,Ve,Ke,0,1,re,arguments.length>1?arguments[1]:void 0),oi}})});var Dz=Bn((qW,f3)=>{VP();m4();var zT=Object.defineProperty,Dj=Object.getOwnPropertyDescriptor,WT=Object.getOwnPropertyNames,bj=Object.prototype.hasOwnProperty,Qy=(M,re)=>function(){return M&&(re=(0,M[WT(M)[0]])(M=0)),re},Oa=(M,re)=>function(){return re||(0,M[WT(M)[0]])((re={exports:{}}).exports,re),re.exports},h1=(M,re)=>{for(var Ve in re)zT(M,Ve,{get:re[Ve],enumerable:!0})},Sj=(M,re,Ve,Ke)=>{if(re&&typeof re==\"object\"||typeof re==\"function\")for(let oi of WT(re))!bj.call(M,oi)&&oi!==Ve&&zT(M,oi,{get:()=>re[oi],enumerable:!(Ke=Dj(re,oi))||Ke.enumerable});return M},mp=M=>Sj(zT({},\"__esModule\",{value:!0}),M),v4,y4,Eu,Ea=Qy({\"\"(){v4={},y4=[],Eu={env:v4,argv:y4}}}),S4=Oa({\"src/common/parser-create-error.js\"(M,re){\"use strict\";Ea();function Ve(Ke,oi){let kr=new SyntaxError(Ke+\" (\"+oi.start.line+\":\"+oi.start.column+\")\");return kr.loc=oi,kr}re.exports=Ve}}),Tj=Oa({\"src/utils/try-combinations.js\"(M,re){\"use strict\";Ea();function Ve(){let Ke;for(var oi=arguments.length,kr=new Array(oi),pr=0;prRT,arch:()=>xj,cpus:()=>P4,default:()=>M4,endianness:()=>x4,freemem:()=>A4,getNetworkInterfaces:()=>F4,hostname:()=>E4,loadavg:()=>C4,networkInterfaces:()=>O4,platform:()=>Ej,release:()=>w4,tmpDir:()=>MT,tmpdir:()=>LT,totalmem:()=>N4,type:()=>I4,uptime:()=>k4});function x4(){if(typeof g1>\"u\"){var M=new ArrayBuffer(2),re=new Uint8Array(M),Ve=new Uint16Array(M);if(re[0]=1,re[1]=2,Ve[0]===258)g1=\"BE\";else if(Ve[0]===513)g1=\"LE\";else throw new Error(\"unable to figure out endianess\")}return g1}function E4(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function C4(){return[]}function k4(){return 0}function A4(){return Number.MAX_VALUE}function N4(){return Number.MAX_VALUE}function P4(){return[]}function I4(){return\"Browser\"}function w4(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function O4(){}function F4(){}function xj(){return\"javascript\"}function Ej(){return\"browser\"}function MT(){return\"/tmp\"}var g1,LT,RT,M4,Cj=Qy({\"node-modules-polyfills:os\"(){Ea(),LT=MT,RT=`\n`,M4={EOL:RT,tmpdir:LT,tmpDir:MT,networkInterfaces:O4,getNetworkInterfaces:F4,release:w4,type:I4,cpus:P4,totalmem:N4,freemem:A4,uptime:k4,loadavg:C4,hostname:E4,endianness:x4}}}),kj=Oa({\"node-modules-polyfills-commonjs:os\"(M,re){Ea();var Ve=(Cj(),mp(T4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),Aj=Oa({\"node_modules/detect-newline/index.js\"(M,re){\"use strict\";Ea();var Ve=Ke=>{if(typeof Ke!=\"string\")throw new TypeError(\"Expected a string\");let oi=Ke.match(/(?:\\r?\\n)/g)||[];if(oi.length===0)return;let kr=oi.filter(Lr=>Lr===`\\r\n`).length,pr=oi.length-kr;return kr>pr?`\\r\n`:`\n`};re.exports=Ve,re.exports.graceful=Ke=>typeof Ke==\"string\"&&Ve(Ke)||`\n`}}),Nj=Oa({\"node_modules/jest-docblock/build/index.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.extract=w,M.parse=E,M.parseWithComments=Q,M.print=le,M.strip=B;function re(){let p=kj();return re=function(){return p},p}function Ve(){let p=Ke(Aj());return Ve=function(){return p},p}function Ke(p){return p&&p.__esModule?p:{default:p}}var oi=/\\*\\/$/,kr=/^\\/\\*\\*/,pr=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,Lr=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,ar=/^(\\r?\\n)+/,ke=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,e=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,a=/(\\r?\\n|^) *\\* ?/g,C=[];function w(p){let m=p.match(pr);return m?m[0].trimLeft():\"\"}function B(p){let m=p.match(pr);return m&&m[0]?p.substring(m[0].length):p}function E(p){return Q(p).pragmas}function Q(p){let m=(0,Ve().default)(p)||re().EOL;p=p.replace(kr,\"\").replace(oi,\"\").replace(a,\"$1\");let G=\"\";for(;G!==p;)G=p,p=p.replace(ke,\"\".concat(m,\"$1 $2\").concat(m));p=p.replace(ar,\"\").trimRight();let oe=Object.create(null),f=p.replace(e,\"\").replace(ar,\"\").trimRight(),T;for(;T=e.exec(p);){let K=T[2].replace(Lr,\"\");typeof oe[T[1]]==\"string\"||Array.isArray(oe[T[1]])?oe[T[1]]=C.concat(oe[T[1]],K):oe[T[1]]=K}return{comments:f,pragmas:oe}}function le(p){let{comments:m=\"\",pragmas:G={}}=p,oe=(0,Ve().default)(m)||re().EOL,f=\"/**\",T=\" *\",K=\" */\",b=Object.keys(G),se=b.map(ie=>N(ie,G[ie])).reduce((ie,R)=>ie.concat(R),[]).map(ie=>T+\" \"+ie+oe).join(\"\");if(!m){if(b.length===0)return\"\";if(b.length===1&&!Array.isArray(G[b[0]])){let ie=G[b[0]];return\"\".concat(f,\" \").concat(N(b[0],ie)[0]).concat(K)}}let J=m.split(oe).map(ie=>\"\".concat(T,\" \").concat(ie)).join(oe)+oe;return f+oe+(m?J:\"\")+(m&&b.length?T+oe:\"\")+se+K}function N(p,m){return C.concat(m).map(G=>\"@\".concat(p,\" \").concat(G).trim())}}}),Pj=Oa({\"src/common/end-of-line.js\"(M,re){\"use strict\";Ea();function Ve(pr){let Lr=pr.indexOf(\"\\r\");return Lr>=0?pr.charAt(Lr+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function Ke(pr){switch(pr){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function oi(pr,Lr){let ar;switch(Lr){case`\n`:ar=/\\n/g;break;case\"\\r\":ar=/\\r/g;break;case`\\r\n`:ar=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(Lr),\".\"))}let ke=pr.match(ar);return ke?ke.length:0}function kr(pr){return pr.replace(/\\r\\n?/g,`\n`)}re.exports={guessEndOfLine:Ve,convertEndOfLineToChars:Ke,countEndOfLineChars:oi,normalizeEndOfLine:kr}}}),Ij=Oa({\"src/language-js/utils/get-shebang.js\"(M,re){\"use strict\";Ea();function Ve(Ke){if(!Ke.startsWith(\"#!\"))return\"\";let oi=Ke.indexOf(`\n`);return oi===-1?Ke:Ke.slice(0,oi)}re.exports=Ve}}),wj=Oa({\"src/language-js/pragma.js\"(M,re){\"use strict\";Ea();var{parseWithComments:Ve,strip:Ke,extract:oi,print:kr}=Nj(),{normalizeEndOfLine:pr}=Pj(),Lr=Ij();function ar(a){let C=Lr(a);C&&(a=a.slice(C.length+1));let w=oi(a),{pragmas:B,comments:E}=Ve(w);return{shebang:C,text:a,pragmas:B,comments:E}}function ke(a){let C=Object.keys(ar(a).pragmas);return C.includes(\"prettier\")||C.includes(\"format\")}function e(a){let{shebang:C,text:w,pragmas:B,comments:E}=ar(a),Q=Ke(w),le=kr({pragmas:Object.assign({format:\"\"},B),comments:E.trimStart()});return(C?\"\".concat(C,`\n`):\"\")+pr(le)+(Q.startsWith(`\n`)?`\n`:`\n\n`)+Q}re.exports={hasPragma:ke,insertPragma:e}}}),Oj=Oa({\"src/utils/is-non-empty-array.js\"(M,re){\"use strict\";Ea();function Ve(Ke){return Array.isArray(Ke)&&Ke.length>0}re.exports=Ve}}),L4=Oa({\"src/language-js/loc.js\"(M,re){\"use strict\";Ea();var Ve=Oj();function Ke(ar,ke){let{ignoreDecorators:e}=ke||{};if(!e){let a=ar.declaration&&ar.declaration.decorators||ar.decorators;if(Ve(a))return Ke(a[0])}return ar.range?ar.range[0]:ar.start}function oi(ar){return ar.range?ar.range[1]:ar.end}function kr(ar,ke){let e=Ke(ar);return Number.isInteger(e)&&e===Ke(ke)}function pr(ar,ke){let e=oi(ar);return Number.isInteger(e)&&e===oi(ke)}function Lr(ar,ke){return kr(ar,ke)&&pr(ar,ke)}re.exports={locStart:Ke,locEnd:oi,hasSameLocStart:kr,hasSameLoc:Lr}}}),Fj=Oa({\"src/language-js/parse/utils/create-parser.js\"(M,re){\"use strict\";Ea();var{hasPragma:Ve}=wj(),{locStart:Ke,locEnd:oi}=L4();function kr(pr){return pr=typeof pr==\"function\"?{parse:pr}:pr,Object.assign({astFormat:\"estree\",hasPragma:Ve,locStart:Ke,locEnd:oi},pr)}re.exports=kr}}),Mj=Oa({\"src/language-js/parse/utils/replace-hashbang.js\"(M,re){\"use strict\";Ea();function Ve(Ke){return Ke.charAt(0)===\"#\"&&Ke.charAt(1)===\"!\"?\"//\"+Ke.slice(2):Ke}re.exports=Ve}}),Lj=Oa({\"src/language-js/utils/is-ts-keyword-type.js\"(M,re){\"use strict\";Ea();function Ve(Ke){let{type:oi}=Ke;return oi.startsWith(\"TS\")&&oi.endsWith(\"Keyword\")}re.exports=Ve}}),Rj=Oa({\"src/language-js/utils/is-block-comment.js\"(M,re){\"use strict\";Ea();var Ve=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),Ke=oi=>Ve.has(oi==null?void 0:oi.type);re.exports=Ke}}),Bj=Oa({\"src/language-js/utils/is-type-cast-comment.js\"(M,re){\"use strict\";Ea();var Ve=Rj();function Ke(oi){return Ve(oi)&&oi.value[0]===\"*\"&&/@type\\b/.test(oi.value)}re.exports=Ke}}),Jj=Oa({\"src/utils/get-last.js\"(M,re){\"use strict\";Ea();var Ve=Ke=>Ke[Ke.length-1];re.exports=Ve}}),R4=Oa({\"src/language-js/parse/postprocess/visit-node.js\"(M,re){\"use strict\";Ea();function Ve(Ke,oi){if(Array.isArray(Ke)){for(let kr=0;kr{let w=ke.get(C);return!w||!a.includes(w)}))&&Ke(ar,\"Leading decorators must be attached to a class declaration\")}function kr(Lr,ar){Lr.kind!==167||Lr.modifiers&&!Lr.modifiers.some(a=>a.kind===126)||Lr.initializer&&ar.value===null&&Ke(ar,\"Abstract property cannot have an initializer\")}function pr(Lr,ar){let{esTreeNodeToTSNodeMap:ke,tsNodeToESTreeNodeMap:e}=ar.tsParseResult;Ve(Lr,a=>{let C=ke.get(a);if(!C)return;let w=e.get(C);w===a&&(oi(C,w,e),kr(C,w))})}re.exports={throwErrorForInvalidNodes:pr}}}),Uj=Oa({\"src/language-js/parse/postprocess/index.js\"(M,re){\"use strict\";Ea();var{locStart:Ve,locEnd:Ke}=L4(),oi=Lj(),kr=Bj(),pr=Jj(),Lr=R4(),{throwErrorForInvalidNodes:ar}=jj(),ke=B4();function e(B,E){if(E.parser===\"typescript\"&&/@|abstract/.test(E.originalText)&&ar(B,E),E.parser!==\"typescript\"&&E.parser!==\"flow\"&&E.parser!==\"acorn\"&&E.parser!==\"espree\"&&E.parser!==\"meriyah\"){let le=new Set;B=Lr(B,N=>{N.leadingComments&&N.leadingComments.some(kr)&&le.add(Ve(N))}),B=Lr(B,N=>{if(N.type===\"ParenthesizedExpression\"){let{expression:p}=N;if(p.type===\"TypeCastExpression\")return p.range=N.range,p;let m=Ve(N);if(!le.has(m))return p.extra=Object.assign(Object.assign({},p.extra),{},{parenthesized:!0}),p}})}return B=Lr(B,le=>{switch(le.type){case\"ChainExpression\":return a(le.expression);case\"LogicalExpression\":{if(C(le))return w(le);break}case\"VariableDeclaration\":{let N=pr(le.declarations);N&&N.init&&Q(le,N);break}case\"TSParenthesizedType\":return oi(le.typeAnnotation)||le.typeAnnotation.type===\"TSThisType\"||(le.typeAnnotation.range=[Ve(le),Ke(le)]),le.typeAnnotation;case\"TSTypeParameter\":if(typeof le.name==\"string\"){let N=Ve(le);le.name={type:\"Identifier\",name:le.name,range:[N,N+le.name.length]}}break;case\"ObjectExpression\":if(E.parser===\"typescript\"){let N=le.properties.find(p=>p.type===\"Property\"&&p.value.type===\"TSEmptyBodyFunctionExpression\");N&&ke(N.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let N=pr(le.expressions);le.range=[Ve(le),Math.min(Ke(N),Ke(le))];break}case\"TopicReference\":E.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:N}=le;if(E.parser===\"meriyah\"&&N&&N.type===\"Identifier\"){let p=E.originalText.slice(Ve(N),Ke(N));(p.startsWith('\"')||p.startsWith(\"'\"))&&(le.exported=Object.assign(Object.assign({},le.exported),{},{type:\"Literal\",value:le.exported.name,raw:p}))}break}}}),B;function Q(le,N){E.originalText[Ke(N)]!==\";\"&&(le.range=[Ve(le),Ke(N)])}}function a(B){switch(B.type){case\"CallExpression\":B.type=\"OptionalCallExpression\",B.callee=a(B.callee);break;case\"MemberExpression\":B.type=\"OptionalMemberExpression\",B.object=a(B.object);break;case\"TSNonNullExpression\":B.expression=a(B.expression);break}return B}function C(B){return B.type===\"LogicalExpression\"&&B.right.type===\"LogicalExpression\"&&B.operator===B.right.operator}function w(B){return C(B)?w({type:\"LogicalExpression\",operator:B.operator,left:w({type:\"LogicalExpression\",operator:B.operator,left:B.left,right:B.right.left,range:[Ve(B.left),Ke(B.right.left)]}),right:B.right.right,range:[Ve(B),Ke(B)]}):B}re.exports=e}}),zj=Oa({\"node_modules/ms/index.js\"(M,re){Ea();var Ve=1e3,Ke=Ve*60,oi=Ke*60,kr=oi*24,pr=kr*7,Lr=kr*365.25;re.exports=function(C,w){w=w||{};var B=typeof C;if(B===\"string\"&&C.length>0)return ar(C);if(B===\"number\"&&isFinite(C))return w.long?e(C):ke(C);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(C))};function ar(C){if(C=String(C),!(C.length>100)){var w=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(C);if(!!w){var B=parseFloat(w[1]),E=(w[2]||\"ms\").toLowerCase();switch(E){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return B*Lr;case\"weeks\":case\"week\":case\"w\":return B*pr;case\"days\":case\"day\":case\"d\":return B*kr;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return B*oi;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return B*Ke;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return B*Ve;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return B;default:return}}}}function ke(C){var w=Math.abs(C);return w>=kr?Math.round(C/kr)+\"d\":w>=oi?Math.round(C/oi)+\"h\":w>=Ke?Math.round(C/Ke)+\"m\":w>=Ve?Math.round(C/Ve)+\"s\":C+\"ms\"}function e(C){var w=Math.abs(C);return w>=kr?a(C,w,kr,\"day\"):w>=oi?a(C,w,oi,\"hour\"):w>=Ke?a(C,w,Ke,\"minute\"):w>=Ve?a(C,w,Ve,\"second\"):C+\" ms\"}function a(C,w,B,E){var Q=w>=B*1.5;return Math.round(C/B)+\" \"+E+(Q?\"s\":\"\")}}}),Wj=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/debug/src/common.js\"(M,re){Ea();function Ve(Ke){kr.debug=kr,kr.default=kr,kr.coerce=a,kr.disable=ar,kr.enable=Lr,kr.enabled=ke,kr.humanize=zj(),kr.destroy=C,Object.keys(Ke).forEach(w=>{kr[w]=Ke[w]}),kr.names=[],kr.skips=[],kr.formatters={};function oi(w){let B=0;for(let E=0;E{if(se===\"%%\")return\"%\";K++;let ie=kr.formatters[J];if(typeof ie==\"function\"){let R=m[K];se=ie.call(oe,R),m.splice(K,1),K--}return se}),kr.formatArgs.call(oe,m),(oe.log||kr.log).apply(oe,m)}return N.namespace=w,N.useColors=kr.useColors(),N.color=kr.selectColor(w),N.extend=pr,N.destroy=kr.destroy,Object.defineProperty(N,\"enabled\",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(Q!==kr.namespaces&&(Q=kr.namespaces,le=kr.enabled(w)),le),set:p=>{E=p}}),typeof kr.init==\"function\"&&kr.init(N),N}function pr(w,B){let E=kr(this.namespace+(typeof B>\"u\"?\":\":B)+w);return E.log=this.log,E}function Lr(w){kr.save(w),kr.namespaces=w,kr.names=[],kr.skips=[];let B,E=(typeof w==\"string\"?w:\"\").split(/[\\s,]+/),Q=E.length;for(B=0;B\"-\"+B)].join(\",\");return kr.enable(\"\"),w}function ke(w){if(w[w.length-1]===\"*\")return!0;let B,E;for(B=0,E=kr.skips.length;B{let ar=!1;return()=>{ar||(ar=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})(),M.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"];function Ve(){return typeof window<\"u\"&&window.process&&(window.process.type===\"renderer\"||window.process.__nwjs)?!0:typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)?!1:typeof document<\"u\"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<\"u\"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)}function Ke(ar){if(ar[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+ar[0]+(this.useColors?\"%c \":\" \")+\"+\"+re.exports.humanize(this.diff),!this.useColors)return;let ke=\"color: \"+this.color;ar.splice(1,0,ke,\"color: inherit\");let e=0,a=0;ar[0].replace(/%[a-zA-Z%]/g,C=>{C!==\"%%\"&&(e++,C===\"%c\"&&(a=e))}),ar.splice(a,0,ke)}M.log=console.debug||console.log||(()=>{});function oi(ar){try{ar?M.storage.setItem(\"debug\",ar):M.storage.removeItem(\"debug\")}catch{}}function kr(){let ar;try{ar=M.storage.getItem(\"debug\")}catch{}return!ar&&typeof Eu<\"u\"&&\"env\"in Eu&&(ar=Eu.env.DEBUG),ar}function pr(){try{return localStorage}catch{}}re.exports=Wj()(M);var{formatters:Lr}=re.exports;Lr.j=function(ar){try{return JSON.stringify(ar)}catch(ke){return\"[UnexpectedJSONParseError]: \"+ke.message}}}}),qj=Oa({\"node_modules/is-extglob/index.js\"(M,re){Ea(),re.exports=function(Ke){if(typeof Ke!=\"string\"||Ke===\"\")return!1;for(var oi;oi=/(\\\\).|([@?!+*]\\(.*\\))/g.exec(Ke);){if(oi[2])return!0;Ke=Ke.slice(oi.index+oi[0].length)}return!1}}}),Vj=Oa({\"node_modules/is-glob/index.js\"(M,re){Ea();var Ve=qj(),Ke={\"{\":\"}\",\"(\":\")\",\"[\":\"]\"},oi=function(pr){if(pr[0]===\"!\")return!0;for(var Lr=0,ar=-2,ke=-2,e=-2,a=-2,C=-2;LrLr&&(C===-1||C>ke||(C=pr.indexOf(\"\\\\\",Lr),C===-1||C>ke)))||e!==-1&&pr[Lr]===\"{\"&&pr[Lr+1]!==\"}\"&&(e=pr.indexOf(\"}\",Lr),e>Lr&&(C=pr.indexOf(\"\\\\\",Lr),C===-1||C>e))||a!==-1&&pr[Lr]===\"(\"&&pr[Lr+1]===\"?\"&&/[:!=]/.test(pr[Lr+2])&&pr[Lr+3]!==\")\"&&(a=pr.indexOf(\")\",Lr),a>Lr&&(C=pr.indexOf(\"\\\\\",Lr),C===-1||C>a))||ar!==-1&&pr[Lr]===\"(\"&&pr[Lr+1]!==\"|\"&&(arar&&(C=pr.indexOf(\"\\\\\",ar),C===-1||C>a))))return!0;if(pr[Lr]===\"\\\\\"){var w=pr[Lr+1];Lr+=2;var B=Ke[w];if(B){var E=pr.indexOf(B,Lr);E!==-1&&(Lr=E+1)}if(pr[Lr]===\"!\")return!0}else Lr++}return!1},kr=function(pr){if(pr[0]===\"!\")return!0;for(var Lr=0;Lr{};re.exports=Ve}}),wv=Oa({\"node_modules/semver/internal/re.js\"(M,re){Ea();var{MAX_SAFE_COMPONENT_LENGTH:Ve}=D1(),Ke=b1();M=re.exports={};var oi=M.re=[],kr=M.src=[],pr=M.t={},Lr=0,ar=(ke,e,a)=>{let C=Lr++;Ke(ke,C,e),pr[ke]=C,kr[C]=e,oi[C]=new RegExp(e,a?\"g\":void 0)};ar(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\"),ar(\"NUMERICIDENTIFIERLOOSE\",\"[0-9]+\"),ar(\"NONNUMERICIDENTIFIER\",\"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\"),ar(\"MAINVERSION\",\"(\".concat(kr[pr.NUMERICIDENTIFIER],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIER],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIER],\")\")),ar(\"MAINVERSIONLOOSE\",\"(\".concat(kr[pr.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIERLOOSE],\")\")),ar(\"PRERELEASEIDENTIFIER\",\"(?:\".concat(kr[pr.NUMERICIDENTIFIER],\"|\").concat(kr[pr.NONNUMERICIDENTIFIER],\")\")),ar(\"PRERELEASEIDENTIFIERLOOSE\",\"(?:\".concat(kr[pr.NUMERICIDENTIFIERLOOSE],\"|\").concat(kr[pr.NONNUMERICIDENTIFIER],\")\")),ar(\"PRERELEASE\",\"(?:-(\".concat(kr[pr.PRERELEASEIDENTIFIER],\"(?:\\\\.\").concat(kr[pr.PRERELEASEIDENTIFIER],\")*))\")),ar(\"PRERELEASELOOSE\",\"(?:-?(\".concat(kr[pr.PRERELEASEIDENTIFIERLOOSE],\"(?:\\\\.\").concat(kr[pr.PRERELEASEIDENTIFIERLOOSE],\")*))\")),ar(\"BUILDIDENTIFIER\",\"[0-9A-Za-z-]+\"),ar(\"BUILD\",\"(?:\\\\+(\".concat(kr[pr.BUILDIDENTIFIER],\"(?:\\\\.\").concat(kr[pr.BUILDIDENTIFIER],\")*))\")),ar(\"FULLPLAIN\",\"v?\".concat(kr[pr.MAINVERSION]).concat(kr[pr.PRERELEASE],\"?\").concat(kr[pr.BUILD],\"?\")),ar(\"FULL\",\"^\".concat(kr[pr.FULLPLAIN],\"$\")),ar(\"LOOSEPLAIN\",\"[v=\\\\s]*\".concat(kr[pr.MAINVERSIONLOOSE]).concat(kr[pr.PRERELEASELOOSE],\"?\").concat(kr[pr.BUILD],\"?\")),ar(\"LOOSE\",\"^\".concat(kr[pr.LOOSEPLAIN],\"$\")),ar(\"GTLT\",\"((?:<|>)?=?)\"),ar(\"XRANGEIDENTIFIERLOOSE\",\"\".concat(kr[pr.NUMERICIDENTIFIERLOOSE],\"|x|X|\\\\*\")),ar(\"XRANGEIDENTIFIER\",\"\".concat(kr[pr.NUMERICIDENTIFIER],\"|x|X|\\\\*\")),ar(\"XRANGEPLAIN\",\"[v=\\\\s]*(\".concat(kr[pr.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIER],\")(?:\").concat(kr[pr.PRERELEASE],\")?\").concat(kr[pr.BUILD],\"?)?)?\")),ar(\"XRANGEPLAINLOOSE\",\"[v=\\\\s]*(\".concat(kr[pr.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIERLOOSE],\")(?:\").concat(kr[pr.PRERELEASELOOSE],\")?\").concat(kr[pr.BUILD],\"?)?)?\")),ar(\"XRANGE\",\"^\".concat(kr[pr.GTLT],\"\\\\s*\").concat(kr[pr.XRANGEPLAIN],\"$\")),ar(\"XRANGELOOSE\",\"^\".concat(kr[pr.GTLT],\"\\\\s*\").concat(kr[pr.XRANGEPLAINLOOSE],\"$\")),ar(\"COERCE\",\"(^|[^\\\\d])(\\\\d{1,\".concat(Ve,\"})(?:\\\\.(\\\\d{1,\").concat(Ve,\"}))?(?:\\\\.(\\\\d{1,\").concat(Ve,\"}))?(?:$|[^\\\\d])\")),ar(\"COERCERTL\",kr[pr.COERCE],!0),ar(\"LONETILDE\",\"(?:~>?)\"),ar(\"TILDETRIM\",\"(\\\\s*)\".concat(kr[pr.LONETILDE],\"\\\\s+\"),!0),M.tildeTrimReplace=\"$1~\",ar(\"TILDE\",\"^\".concat(kr[pr.LONETILDE]).concat(kr[pr.XRANGEPLAIN],\"$\")),ar(\"TILDELOOSE\",\"^\".concat(kr[pr.LONETILDE]).concat(kr[pr.XRANGEPLAINLOOSE],\"$\")),ar(\"LONECARET\",\"(?:\\\\^)\"),ar(\"CARETTRIM\",\"(\\\\s*)\".concat(kr[pr.LONECARET],\"\\\\s+\"),!0),M.caretTrimReplace=\"$1^\",ar(\"CARET\",\"^\".concat(kr[pr.LONECARET]).concat(kr[pr.XRANGEPLAIN],\"$\")),ar(\"CARETLOOSE\",\"^\".concat(kr[pr.LONECARET]).concat(kr[pr.XRANGEPLAINLOOSE],\"$\")),ar(\"COMPARATORLOOSE\",\"^\".concat(kr[pr.GTLT],\"\\\\s*(\").concat(kr[pr.LOOSEPLAIN],\")$|^$\")),ar(\"COMPARATOR\",\"^\".concat(kr[pr.GTLT],\"\\\\s*(\").concat(kr[pr.FULLPLAIN],\")$|^$\")),ar(\"COMPARATORTRIM\",\"(\\\\s*)\".concat(kr[pr.GTLT],\"\\\\s*(\").concat(kr[pr.LOOSEPLAIN],\"|\").concat(kr[pr.XRANGEPLAIN],\")\"),!0),M.comparatorTrimReplace=\"$1$2$3\",ar(\"HYPHENRANGE\",\"^\\\\s*(\".concat(kr[pr.XRANGEPLAIN],\")\\\\s+-\\\\s+(\").concat(kr[pr.XRANGEPLAIN],\")\\\\s*$\")),ar(\"HYPHENRANGELOOSE\",\"^\\\\s*(\".concat(kr[pr.XRANGEPLAINLOOSE],\")\\\\s+-\\\\s+(\").concat(kr[pr.XRANGEPLAINLOOSE],\")\\\\s*$\")),ar(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\"),ar(\"GTE0\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\"),ar(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\")}}),S1=Oa({\"node_modules/semver/internal/parse-options.js\"(M,re){Ea();var Ve=[\"includePrerelease\",\"loose\",\"rtl\"],Ke=oi=>oi?typeof oi!=\"object\"?{loose:!0}:Ve.filter(kr=>oi[kr]).reduce((kr,pr)=>(kr[pr]=!0,kr),{}):{};re.exports=Ke}}),BT=Oa({\"node_modules/semver/internal/identifiers.js\"(M,re){Ea();var Ve=/^[0-9]+$/,Ke=(kr,pr)=>{let Lr=Ve.test(kr),ar=Ve.test(pr);return Lr&&ar&&(kr=+kr,pr=+pr),kr===pr?0:Lr&&!ar?-1:ar&&!Lr?1:krKe(pr,kr);re.exports={compareIdentifiers:Ke,rcompareIdentifiers:oi}}}),Lf=Oa({\"node_modules/semver/classes/semver.js\"(M,re){Ea();var Ve=b1(),{MAX_LENGTH:Ke,MAX_SAFE_INTEGER:oi}=D1(),{re:kr,t:pr}=wv(),Lr=S1(),{compareIdentifiers:ar}=BT(),ke=class{constructor(e,a){if(a=Lr(a),e instanceof ke){if(e.loose===!!a.loose&&e.includePrerelease===!!a.includePrerelease)return e;e=e.version}else if(typeof e!=\"string\")throw new TypeError(\"Invalid Version: \".concat(e));if(e.length>Ke)throw new TypeError(\"version is longer than \".concat(Ke,\" characters\"));Ve(\"SemVer\",e,a),this.options=a,this.loose=!!a.loose,this.includePrerelease=!!a.includePrerelease;let C=e.trim().match(a.loose?kr[pr.LOOSE]:kr[pr.FULL]);if(!C)throw new TypeError(\"Invalid Version: \".concat(e));if(this.raw=e,this.major=+C[1],this.minor=+C[2],this.patch=+C[3],this.major>oi||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>oi||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>oi||this.patch<0)throw new TypeError(\"Invalid patch version\");C[4]?this.prerelease=C[4].split(\".\").map(w=>{if(/^[0-9]+$/.test(w)){let B=+w;if(B>=0&&B=0;)typeof this.prerelease[C]==\"number\"&&(this.prerelease[C]++,C=-2);C===-1&&this.prerelease.push(0)}a&&(ar(this.prerelease[0],a)===0?isNaN(this.prerelease[1])&&(this.prerelease=[a,0]):this.prerelease=[a,0]);break;default:throw new Error(\"invalid increment argument: \".concat(e))}return this.format(),this.raw=this.version,this}};re.exports=ke}}),Ov=Oa({\"node_modules/semver/functions/parse.js\"(M,re){Ea();var{MAX_LENGTH:Ve}=D1(),{re:Ke,t:oi}=wv(),kr=Lf(),pr=S1(),Lr=(ar,ke)=>{if(ke=pr(ke),ar instanceof kr)return ar;if(typeof ar!=\"string\"||ar.length>Ve||!(ke.loose?Ke[oi.LOOSE]:Ke[oi.FULL]).test(ar))return null;try{return new kr(ar,ke)}catch{return null}};re.exports=Lr}}),Kj=Oa({\"node_modules/semver/functions/valid.js\"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi,kr);return pr?pr.version:null};re.exports=Ke}}),Gj=Oa({\"node_modules/semver/functions/clean.js\"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi.trim().replace(/^[=v]+/,\"\"),kr);return pr?pr.version:null};re.exports=Ke}}),Hj=Oa({\"node_modules/semver/functions/inc.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr,Lr)=>{typeof pr==\"string\"&&(Lr=pr,pr=void 0);try{return new Ve(oi instanceof Ve?oi.version:oi,pr).inc(kr,Lr).version}catch{return null}};re.exports=Ke}}),nd=Oa({\"node_modules/semver/functions/compare.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr)=>new Ve(oi,pr).compare(new Ve(kr,pr));re.exports=Ke}}),qT=Oa({\"node_modules/semver/functions/eq.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)===0;re.exports=Ke}}),Xj=Oa({\"node_modules/semver/functions/diff.js\"(M,re){Ea();var Ve=Ov(),Ke=qT(),oi=(kr,pr)=>{if(Ke(kr,pr))return null;{let Lr=Ve(kr),ar=Ve(pr),ke=Lr.prerelease.length||ar.prerelease.length,e=ke?\"pre\":\"\",a=ke?\"prerelease\":\"\";for(let C in Lr)if((C===\"major\"||C===\"minor\"||C===\"patch\")&&Lr[C]!==ar[C])return e+C;return a}};re.exports=oi}}),Qj=Oa({\"node_modules/semver/functions/major.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).major;re.exports=Ke}}),Yj=Oa({\"node_modules/semver/functions/minor.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).minor;re.exports=Ke}}),$j=Oa({\"node_modules/semver/functions/patch.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).patch;re.exports=Ke}}),Zj=Oa({\"node_modules/semver/functions/prerelease.js\"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi,kr);return pr&&pr.prerelease.length?pr.prerelease:null};re.exports=Ke}}),eU=Oa({\"node_modules/semver/functions/rcompare.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(kr,oi,pr);re.exports=Ke}}),rU=Oa({\"node_modules/semver/functions/compare-loose.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr)=>Ve(oi,kr,!0);re.exports=Ke}}),VT=Oa({\"node_modules/semver/functions/compare-build.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr)=>{let Lr=new Ve(oi,pr),ar=new Ve(kr,pr);return Lr.compare(ar)||Lr.compareBuild(ar)};re.exports=Ke}}),iU=Oa({\"node_modules/semver/functions/sort.js\"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((pr,Lr)=>Ve(pr,Lr,kr));re.exports=Ke}}),tU=Oa({\"node_modules/semver/functions/rsort.js\"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((pr,Lr)=>Ve(Lr,pr,kr));re.exports=Ke}}),T1=Oa({\"node_modules/semver/functions/gt.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)>0;re.exports=Ke}}),KT=Oa({\"node_modules/semver/functions/lt.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)<0;re.exports=Ke}}),J4=Oa({\"node_modules/semver/functions/neq.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)!==0;re.exports=Ke}}),GT=Oa({\"node_modules/semver/functions/gte.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)>=0;re.exports=Ke}}),HT=Oa({\"node_modules/semver/functions/lte.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)<=0;re.exports=Ke}}),j4=Oa({\"node_modules/semver/functions/cmp.js\"(M,re){Ea();var Ve=qT(),Ke=J4(),oi=T1(),kr=GT(),pr=KT(),Lr=HT(),ar=(ke,e,a,C)=>{switch(e){case\"===\":return typeof ke==\"object\"&&(ke=ke.version),typeof a==\"object\"&&(a=a.version),ke===a;case\"!==\":return typeof ke==\"object\"&&(ke=ke.version),typeof a==\"object\"&&(a=a.version),ke!==a;case\"\":case\"=\":case\"==\":return Ve(ke,a,C);case\"!=\":return Ke(ke,a,C);case\">\":return oi(ke,a,C);case\">=\":return kr(ke,a,C);case\"<\":return pr(ke,a,C);case\"<=\":return Lr(ke,a,C);default:throw new TypeError(\"Invalid operator: \".concat(e))}};re.exports=ar}}),aU=Oa({\"node_modules/semver/functions/coerce.js\"(M,re){Ea();var Ve=Lf(),Ke=Ov(),{re:oi,t:kr}=wv(),pr=(Lr,ar)=>{if(Lr instanceof Ve)return Lr;if(typeof Lr==\"number\"&&(Lr=String(Lr)),typeof Lr!=\"string\")return null;ar=ar||{};let ke=null;if(!ar.rtl)ke=Lr.match(oi[kr.COERCE]);else{let e;for(;(e=oi[kr.COERCERTL].exec(Lr))&&(!ke||ke.index+ke[0].length!==Lr.length);)(!ke||e.index+e[0].length!==ke.index+ke[0].length)&&(ke=e),oi[kr.COERCERTL].lastIndex=e.index+e[1].length+e[2].length;oi[kr.COERCERTL].lastIndex=-1}return ke===null?null:Ke(\"\".concat(ke[2],\".\").concat(ke[3]||\"0\",\".\").concat(ke[4]||\"0\"),ar)};re.exports=pr}}),nU=Oa({\"node_modules/yallist/iterator.js\"(M,re){\"use strict\";Ea(),re.exports=function(Ve){Ve.prototype[Symbol.iterator]=function*(){for(let Ke=this.head;Ke;Ke=Ke.next)yield Ke.value}}}}),oU=Oa({\"node_modules/yallist/yallist.js\"(M,re){\"use strict\";Ea(),re.exports=Ve,Ve.Node=pr,Ve.create=Ve;function Ve(Lr){var ar=this;if(ar instanceof Ve||(ar=new Ve),ar.tail=null,ar.head=null,ar.length=0,Lr&&typeof Lr.forEach==\"function\")Lr.forEach(function(a){ar.push(a)});else if(arguments.length>0)for(var ke=0,e=arguments.length;ke1)ke=ar;else if(this.head)e=this.head.next,ke=this.head.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var a=0;e!==null;a++)ke=Lr(ke,e.value,a),e=e.next;return ke},Ve.prototype.reduceReverse=function(Lr,ar){var ke,e=this.tail;if(arguments.length>1)ke=ar;else if(this.tail)e=this.tail.prev,ke=this.tail.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var a=this.length-1;e!==null;a--)ke=Lr(ke,e.value,a),e=e.prev;return ke},Ve.prototype.toArray=function(){for(var Lr=new Array(this.length),ar=0,ke=this.head;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.next;return Lr},Ve.prototype.toArrayReverse=function(){for(var Lr=new Array(this.length),ar=0,ke=this.tail;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.prev;return Lr},Ve.prototype.slice=function(Lr,ar){ar=ar||this.length,ar<0&&(ar+=this.length),Lr=Lr||0,Lr<0&&(Lr+=this.length);var ke=new Ve;if(arthis.length&&(ar=this.length);for(var e=0,a=this.head;a!==null&&ethis.length&&(ar=this.length);for(var e=this.length,a=this.tail;a!==null&&e>ar;e--)a=a.prev;for(;a!==null&&e>Lr;e--,a=a.prev)ke.push(a.value);return ke},Ve.prototype.splice=function(Lr,ar){Lr>this.length&&(Lr=this.length-1),Lr<0&&(Lr=this.length+Lr);for(var ke=0,e=this.head;e!==null&&ke1,B=class{constructor(G){if(typeof G==\"number\"&&(G={max:G}),G||(G={}),G.max&&(typeof G.max!=\"number\"||G.max<0))throw new TypeError(\"max must be a non-negative number\");let oe=this[Ke]=G.max||1/0,f=G.length||w;if(this[kr]=typeof f!=\"function\"?w:f,this[pr]=G.stale||!1,G.maxAge&&typeof G.maxAge!=\"number\")throw new TypeError(\"maxAge must be a number\");this[Lr]=G.maxAge||0,this[ar]=G.dispose,this[ke]=G.noDisposeOnSet||!1,this[C]=G.updateAgeOnGet||!1,this.reset()}set max(G){if(typeof G!=\"number\"||G<0)throw new TypeError(\"max must be a non-negative number\");this[Ke]=G||1/0,le(this)}get max(){return this[Ke]}set allowStale(G){this[pr]=!!G}get allowStale(){return this[pr]}set maxAge(G){if(typeof G!=\"number\")throw new TypeError(\"maxAge must be a non-negative number\");this[Lr]=G,le(this)}get maxAge(){return this[Lr]}set lengthCalculator(G){typeof G!=\"function\"&&(G=w),G!==this[kr]&&(this[kr]=G,this[oi]=0,this[e].forEach(oe=>{oe.length=this[kr](oe.value,oe.key),this[oi]+=oe.length})),le(this)}get lengthCalculator(){return this[kr]}get length(){return this[oi]}get itemCount(){return this[e].length}rforEach(G,oe){oe=oe||this;for(let f=this[e].tail;f!==null;){let T=f.prev;m(this,G,f,oe),f=T}}forEach(G,oe){oe=oe||this;for(let f=this[e].head;f!==null;){let T=f.next;m(this,G,f,oe),f=T}}keys(){return this[e].toArray().map(G=>G.key)}values(){return this[e].toArray().map(G=>G.value)}reset(){this[ar]&&this[e]&&this[e].length&&this[e].forEach(G=>this[ar](G.key,G.value)),this[a]=new Map,this[e]=new Ve,this[oi]=0}dump(){return this[e].map(G=>Q(this,G)?!1:{k:G.key,v:G.value,e:G.now+(G.maxAge||0)}).toArray().filter(G=>G)}dumpLru(){return this[e]}set(G,oe,f){if(f=f||this[Lr],f&&typeof f!=\"number\")throw new TypeError(\"maxAge must be a number\");let T=f?Date.now():0,K=this[kr](oe,G);if(this[a].has(G)){if(K>this[Ke])return N(this,this[a].get(G)),!1;let J=this[a].get(G).value;return this[ar]&&(this[ke]||this[ar](G,J.value)),J.now=T,J.maxAge=f,J.value=oe,this[oi]+=K-J.length,J.length=K,this.get(G),le(this),!0}let b=new p(G,oe,K,T,f);return b.length>this[Ke]?(this[ar]&&this[ar](G,oe),!1):(this[oi]+=b.length,this[e].unshift(b),this[a].set(G,this[e].head),le(this),!0)}has(G){if(!this[a].has(G))return!1;let oe=this[a].get(G).value;return!Q(this,oe)}get(G){return E(this,G,!0)}peek(G){return E(this,G,!1)}pop(){let G=this[e].tail;return G?(N(this,G),G.value):null}del(G){N(this,this[a].get(G))}load(G){this.reset();let oe=Date.now();for(let f=G.length-1;f>=0;f--){let T=G[f],K=T.e||0;if(K===0)this.set(T.k,T.v);else{let b=K-oe;b>0&&this.set(T.k,T.v,b)}}}prune(){this[a].forEach((G,oe)=>E(this,oe,!1))}},E=(G,oe,f)=>{let T=G[a].get(oe);if(T){let K=T.value;if(Q(G,K)){if(N(G,T),!G[pr])return}else f&&(G[C]&&(T.value.now=Date.now()),G[e].unshiftNode(T));return K.value}},Q=(G,oe)=>{if(!oe||!oe.maxAge&&!G[Lr])return!1;let f=Date.now()-oe.now;return oe.maxAge?f>oe.maxAge:G[Lr]&&f>G[Lr]},le=G=>{if(G[oi]>G[Ke])for(let oe=G[e].tail;G[oi]>G[Ke]&&oe!==null;){let f=oe.prev;N(G,oe),oe=f}},N=(G,oe)=>{if(oe){let f=oe.value;G[ar]&&G[ar](f.key,f.value),G[oi]-=f.length,G[a].delete(f.key),G[e].removeNode(oe)}},p=class{constructor(G,oe,f,T,K){this.key=G,this.value=oe,this.length=f,this.now=T,this.maxAge=K||0}},m=(G,oe,f,T)=>{let K=f.value;Q(G,K)&&(N(G,f),G[pr]||(K=void 0)),K&&oe.call(T,K.value,K.key,G)};re.exports=B}}),od=Oa({\"node_modules/semver/classes/range.js\"(M,re){Ea();var Ve=class{constructor(ie,R){if(R=kr(R),ie instanceof Ve)return ie.loose===!!R.loose&&ie.includePrerelease===!!R.includePrerelease?ie:new Ve(ie.raw,R);if(ie instanceof pr)return this.raw=ie.value,this.set=[[ie]],this.format(),this;if(this.options=R,this.loose=!!R.loose,this.includePrerelease=!!R.includePrerelease,this.raw=ie,this.set=ie.split(\"||\").map(q=>this.parseRange(q.trim())).filter(q=>q.length),!this.set.length)throw new TypeError(\"Invalid SemVer Range: \".concat(ie));if(this.set.length>1){let q=this.set[0];if(this.set=this.set.filter(O=>!B(O[0])),this.set.length===0)this.set=[q];else if(this.set.length>1){for(let O of this.set)if(O.length===1&&E(O[0])){this.set=[O];break}}}this.format()}format(){return this.range=this.set.map(ie=>ie.join(\" \").trim()).join(\"||\").trim(),this.range}toString(){return this.range}parseRange(ie){ie=ie.trim();let R=Object.keys(this.options).join(\",\"),q=\"parseRange:\".concat(R,\":\").concat(ie),O=oi.get(q);if(O)return O;let ve=this.options.loose,ee=ve?ke[e.HYPHENRANGELOOSE]:ke[e.HYPHENRANGE];ie=ie.replace(ee,se(this.options.includePrerelease)),Lr(\"hyphen replace\",ie),ie=ie.replace(ke[e.COMPARATORTRIM],a),Lr(\"comparator trim\",ie),ie=ie.replace(ke[e.TILDETRIM],C),ie=ie.replace(ke[e.CARETTRIM],w),ie=ie.split(/\\s+/).join(\" \");let he=ie.split(\" \").map($=>le($,this.options)).join(\" \").split(/\\s+/).map($=>b($,this.options));ve&&(he=he.filter($=>(Lr(\"loose invalid filter\",$,this.options),!!$.match(ke[e.COMPARATORLOOSE])))),Lr(\"range list\",he);let F=new Map,x=he.map($=>new pr($,this.options));for(let $ of x){if(B($))return[$];F.set($.value,$)}F.size>1&&F.has(\"\")&&F.delete(\"\");let X=[...F.values()];return oi.set(q,X),X}intersects(ie,R){if(!(ie instanceof Ve))throw new TypeError(\"a Range is required\");return this.set.some(q=>Q(q,R)&&ie.set.some(O=>Q(O,R)&&q.every(ve=>O.every(ee=>ve.intersects(ee,R)))))}test(ie){if(!ie)return!1;if(typeof ie==\"string\")try{ie=new ar(ie,this.options)}catch{return!1}for(let R=0;Rie.value===\"<0.0.0-0\",E=ie=>ie.value===\"\",Q=(ie,R)=>{let q=!0,O=ie.slice(),ve=O.pop();for(;q&&O.length;)q=O.every(ee=>ve.intersects(ee,R)),ve=O.pop();return q},le=(ie,R)=>(Lr(\"comp\",ie,R),ie=G(ie,R),Lr(\"caret\",ie),ie=p(ie,R),Lr(\"tildes\",ie),ie=f(ie,R),Lr(\"xrange\",ie),ie=K(ie,R),Lr(\"stars\",ie),ie),N=ie=>!ie||ie.toLowerCase()===\"x\"||ie===\"*\",p=(ie,R)=>ie.trim().split(/\\s+/).map(q=>m(q,R)).join(\" \"),m=(ie,R)=>{let q=R.loose?ke[e.TILDELOOSE]:ke[e.TILDE];return ie.replace(q,(O,ve,ee,he,F)=>{Lr(\"tilde\",ie,O,ve,ee,he,F);let x;return N(ve)?x=\"\":N(ee)?x=\">=\".concat(ve,\".0.0 <\").concat(+ve+1,\".0.0-0\"):N(he)?x=\">=\".concat(ve,\".\").concat(ee,\".0 <\").concat(ve,\".\").concat(+ee+1,\".0-0\"):F?(Lr(\"replaceTilde pr\",F),x=\">=\".concat(ve,\".\").concat(ee,\".\").concat(he,\"-\").concat(F,\" <\").concat(ve,\".\").concat(+ee+1,\".0-0\")):x=\">=\".concat(ve,\".\").concat(ee,\".\").concat(he,\" <\").concat(ve,\".\").concat(+ee+1,\".0-0\"),Lr(\"tilde return\",x),x})},G=(ie,R)=>ie.trim().split(/\\s+/).map(q=>oe(q,R)).join(\" \"),oe=(ie,R)=>{Lr(\"caret\",ie,R);let q=R.loose?ke[e.CARETLOOSE]:ke[e.CARET],O=R.includePrerelease?\"-0\":\"\";return ie.replace(q,(ve,ee,he,F,x)=>{Lr(\"caret\",ie,ve,ee,he,F,x);let X;return N(ee)?X=\"\":N(he)?X=\">=\".concat(ee,\".0.0\").concat(O,\" <\").concat(+ee+1,\".0.0-0\"):N(F)?ee===\"0\"?X=\">=\".concat(ee,\".\").concat(he,\".0\").concat(O,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\"):X=\">=\".concat(ee,\".\").concat(he,\".0\").concat(O,\" <\").concat(+ee+1,\".0.0-0\"):x?(Lr(\"replaceCaret pr\",x),ee===\"0\"?he===\"0\"?X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\"-\").concat(x,\" <\").concat(ee,\".\").concat(he,\".\").concat(+F+1,\"-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\"-\").concat(x,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\"-\").concat(x,\" <\").concat(+ee+1,\".0.0-0\")):(Lr(\"no pr\"),ee===\"0\"?he===\"0\"?X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F).concat(O,\" <\").concat(ee,\".\").concat(he,\".\").concat(+F+1,\"-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F).concat(O,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\" <\").concat(+ee+1,\".0.0-0\")),Lr(\"caret return\",X),X})},f=(ie,R)=>(Lr(\"replaceXRanges\",ie,R),ie.split(/\\s+/).map(q=>T(q,R)).join(\" \")),T=(ie,R)=>{ie=ie.trim();let q=R.loose?ke[e.XRANGELOOSE]:ke[e.XRANGE];return ie.replace(q,(O,ve,ee,he,F,x)=>{Lr(\"xRange\",ie,O,ve,ee,he,F,x);let X=N(ee),$=X||N(he),A=$||N(F),y=A;return ve===\"=\"&&y&&(ve=\"\"),x=R.includePrerelease?\"-0\":\"\",X?ve===\">\"||ve===\"<\"?O=\"<0.0.0-0\":O=\"*\":ve&&y?($&&(he=0),F=0,ve===\">\"?(ve=\">=\",$?(ee=+ee+1,he=0,F=0):(he=+he+1,F=0)):ve===\"<=\"&&(ve=\"<\",$?ee=+ee+1:he=+he+1),ve===\"<\"&&(x=\"-0\"),O=\"\".concat(ve+ee,\".\").concat(he,\".\").concat(F).concat(x)):$?O=\">=\".concat(ee,\".0.0\").concat(x,\" <\").concat(+ee+1,\".0.0-0\"):A&&(O=\">=\".concat(ee,\".\").concat(he,\".0\").concat(x,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\")),Lr(\"xRange return\",O),O})},K=(ie,R)=>(Lr(\"replaceStars\",ie,R),ie.trim().replace(ke[e.STAR],\"\")),b=(ie,R)=>(Lr(\"replaceGTE0\",ie,R),ie.trim().replace(ke[R.includePrerelease?e.GTE0PRE:e.GTE0],\"\")),se=ie=>(R,q,O,ve,ee,he,F,x,X,$,A,y,V)=>(N(O)?q=\"\":N(ve)?q=\">=\".concat(O,\".0.0\").concat(ie?\"-0\":\"\"):N(ee)?q=\">=\".concat(O,\".\").concat(ve,\".0\").concat(ie?\"-0\":\"\"):he?q=\">=\".concat(q):q=\">=\".concat(q).concat(ie?\"-0\":\"\"),N(X)?x=\"\":N($)?x=\"<\".concat(+X+1,\".0.0-0\"):N(A)?x=\"<\".concat(X,\".\").concat(+$+1,\".0-0\"):y?x=\"<=\".concat(X,\".\").concat($,\".\").concat(A,\"-\").concat(y):ie?x=\"<\".concat(X,\".\").concat($,\".\").concat(+A+1,\"-0\"):x=\"<=\".concat(x),\"\".concat(q,\" \").concat(x).trim()),J=(ie,R,q)=>{for(let O=0;O0){let ve=ie[O].semver;if(ve.major===R.major&&ve.minor===R.minor&&ve.patch===R.patch)return!0}return!1}return!0}}}),x1=Oa({\"node_modules/semver/classes/comparator.js\"(M,re){Ea();var Ve=Symbol(\"SemVer ANY\"),Ke=class{static get ANY(){return Ve}constructor(a,C){if(C=oi(C),a instanceof Ke){if(a.loose===!!C.loose)return a;a=a.value}ar(\"comparator\",a,C),this.options=C,this.loose=!!C.loose,this.parse(a),this.semver===Ve?this.value=\"\":this.value=this.operator+this.semver.version,ar(\"comp\",this)}parse(a){let C=this.options.loose?kr[pr.COMPARATORLOOSE]:kr[pr.COMPARATOR],w=a.match(C);if(!w)throw new TypeError(\"Invalid comparator: \".concat(a));this.operator=w[1]!==void 0?w[1]:\"\",this.operator===\"=\"&&(this.operator=\"\"),w[2]?this.semver=new ke(w[2],this.options.loose):this.semver=Ve}toString(){return this.value}test(a){if(ar(\"Comparator.test\",a,this.options.loose),this.semver===Ve||a===Ve)return!0;if(typeof a==\"string\")try{a=new ke(a,this.options)}catch{return!1}return Lr(a,this.operator,this.semver,this.options)}intersects(a,C){if(!(a instanceof Ke))throw new TypeError(\"a Comparator is required\");if((!C||typeof C!=\"object\")&&(C={loose:!!C,includePrerelease:!1}),this.operator===\"\")return this.value===\"\"?!0:new e(a.value,C).test(this.value);if(a.operator===\"\")return a.value===\"\"?!0:new e(this.value,C).test(a.semver);let w=(this.operator===\">=\"||this.operator===\">\")&&(a.operator===\">=\"||a.operator===\">\"),B=(this.operator===\"<=\"||this.operator===\"<\")&&(a.operator===\"<=\"||a.operator===\"<\"),E=this.semver.version===a.semver.version,Q=(this.operator===\">=\"||this.operator===\"<=\")&&(a.operator===\">=\"||a.operator===\"<=\"),le=Lr(this.semver,\"<\",a.semver,C)&&(this.operator===\">=\"||this.operator===\">\")&&(a.operator===\"<=\"||a.operator===\"<\"),N=Lr(this.semver,\">\",a.semver,C)&&(this.operator===\"<=\"||this.operator===\"<\")&&(a.operator===\">=\"||a.operator===\">\");return w||B||E&&Q||le||N}};re.exports=Ke;var oi=S1(),{re:kr,t:pr}=wv(),Lr=j4(),ar=b1(),ke=Lf(),e=od()}}),E1=Oa({\"node_modules/semver/functions/satisfies.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr,pr)=>{try{kr=new Ve(kr,pr)}catch{return!1}return kr.test(oi)};re.exports=Ke}}),cU=Oa({\"node_modules/semver/ranges/to-comparators.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>new Ve(oi,kr).set.map(pr=>pr.map(Lr=>Lr.value).join(\" \").trim().split(\" \"));re.exports=Ke}}),uU=Oa({\"node_modules/semver/ranges/max-satisfying.js\"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,pr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(pr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===-1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),lU=Oa({\"node_modules/semver/ranges/min-satisfying.js\"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,pr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(pr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),fU=Oa({\"node_modules/semver/ranges/min-version.js\"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=T1(),kr=(pr,Lr)=>{pr=new Ke(pr,Lr);let ar=new Ve(\"0.0.0\");if(pr.test(ar)||(ar=new Ve(\"0.0.0-0\"),pr.test(ar)))return ar;ar=null;for(let ke=0;ke{let w=new Ve(C.semver.version);switch(C.operator){case\">\":w.prerelease.length===0?w.patch++:w.prerelease.push(0),w.raw=w.format();case\"\":case\">=\":(!a||oi(w,a))&&(a=w);break;case\"<\":case\"<=\":break;default:throw new Error(\"Unexpected operation: \".concat(C.operator))}}),a&&(!ar||oi(ar,a))&&(ar=a)}return ar&&pr.test(ar)?ar:null};re.exports=kr}}),_U=Oa({\"node_modules/semver/ranges/valid.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>{try{return new Ve(oi,kr).range||\"*\"}catch{return null}};re.exports=Ke}}),XT=Oa({\"node_modules/semver/ranges/outside.js\"(M,re){Ea();var Ve=Lf(),Ke=x1(),{ANY:oi}=Ke,kr=od(),pr=E1(),Lr=T1(),ar=KT(),ke=HT(),e=GT(),a=(C,w,B,E)=>{C=new Ve(C,E),w=new kr(w,E);let Q,le,N,p,m;switch(B){case\">\":Q=Lr,le=ke,N=ar,p=\">\",m=\">=\";break;case\"<\":Q=ar,le=e,N=Lr,p=\"<\",m=\"<=\";break;default:throw new TypeError('Must provide a hilo val of \"<\" or \">\"')}if(pr(C,w,E))return!1;for(let G=0;G{K.semver===oi&&(K=new Ke(\">=0.0.0\")),f=f||K,T=T||K,Q(K.semver,f.semver,E)?f=K:N(K.semver,T.semver,E)&&(T=K)}),f.operator===p||f.operator===m||(!T.operator||T.operator===p)&&le(C,T.semver))return!1;if(T.operator===m&&N(C,T.semver))return!1}return!0};re.exports=a}}),pU=Oa({\"node_modules/semver/ranges/gtr.js\"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,pr)=>Ve(oi,kr,\">\",pr);re.exports=Ke}}),dU=Oa({\"node_modules/semver/ranges/ltr.js\"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,pr)=>Ve(oi,kr,\"<\",pr);re.exports=Ke}}),gU=Oa({\"node_modules/semver/ranges/intersects.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr,pr)=>(oi=new Ve(oi,pr),kr=new Ve(kr,pr),oi.intersects(kr));re.exports=Ke}}),mU=Oa({\"node_modules/semver/ranges/simplify.js\"(M,re){Ea();var Ve=E1(),Ke=nd();re.exports=(oi,kr,pr)=>{let Lr=[],ar=null,ke=null,e=oi.sort((B,E)=>Ke(B,E,pr));for(let B of e)Ve(B,kr,pr)?(ke=B,ar||(ar=B)):(ke&&Lr.push([ar,ke]),ke=null,ar=null);ar&&Lr.push([ar,null]);let a=[];for(let[B,E]of Lr)B===E?a.push(B):!E&&B===e[0]?a.push(\"*\"):E?B===e[0]?a.push(\"<=\".concat(E)):a.push(\"\".concat(B,\" - \").concat(E)):a.push(\">=\".concat(B));let C=a.join(\" || \"),w=typeof kr.raw==\"string\"?kr.raw:String(kr);return C.length2&&arguments[2]!==void 0?arguments[2]:{};if(a===C)return!0;a=new Ve(a,w),C=new Ve(C,w);let B=!1;e:for(let E of a.set){for(let Q of C.set){let le=ar(E,Q,w);if(B=B||le!==null,le)continue e}if(B)return!1}return!0},ar=(a,C,w)=>{if(a===C)return!0;if(a.length===1&&a[0].semver===oi){if(C.length===1&&C[0].semver===oi)return!0;w.includePrerelease?a=[new Ke(\">=0.0.0-0\")]:a=[new Ke(\">=0.0.0\")]}if(C.length===1&&C[0].semver===oi){if(w.includePrerelease)return!0;C=[new Ke(\">=0.0.0\")]}let B=new Set,E,Q;for(let T of a)T.operator===\">\"||T.operator===\">=\"?E=ke(E,T,w):T.operator===\"<\"||T.operator===\"<=\"?Q=e(Q,T,w):B.add(T.semver);if(B.size>1)return null;let le;if(E&&Q){if(le=pr(E.semver,Q.semver,w),le>0)return null;if(le===0&&(E.operator!==\">=\"||Q.operator!==\"<=\"))return null}for(let T of B){if(E&&!kr(T,String(E),w)||Q&&!kr(T,String(Q),w))return null;for(let K of C)if(!kr(T,String(K),w))return!1;return!0}let N,p,m,G,oe=Q&&!w.includePrerelease&&Q.semver.prerelease.length?Q.semver:!1,f=E&&!w.includePrerelease&&E.semver.prerelease.length?E.semver:!1;oe&&oe.prerelease.length===1&&Q.operator===\"<\"&&oe.prerelease[0]===0&&(oe=!1);for(let T of C){if(G=G||T.operator===\">\"||T.operator===\">=\",m=m||T.operator===\"<\"||T.operator===\"<=\",E){if(f&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===f.major&&T.semver.minor===f.minor&&T.semver.patch===f.patch&&(f=!1),T.operator===\">\"||T.operator===\">=\"){if(N=ke(E,T,w),N===T&&N!==E)return!1}else if(E.operator===\">=\"&&!kr(E.semver,String(T),w))return!1}if(Q){if(oe&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===oe.major&&T.semver.minor===oe.minor&&T.semver.patch===oe.patch&&(oe=!1),T.operator===\"<\"||T.operator===\"<=\"){if(p=e(Q,T,w),p===T&&p!==Q)return!1}else if(Q.operator===\"<=\"&&!kr(Q.semver,String(T),w))return!1}if(!T.operator&&(Q||E)&&le!==0)return!1}return!(E&&m&&!Q&&le!==0||Q&&G&&!E&&le!==0||f||oe)},ke=(a,C,w)=>{if(!a)return C;let B=pr(a.semver,C.semver,w);return B>0?a:B<0||C.operator===\">\"&&a.operator===\">=\"?C:a},e=(a,C,w)=>{if(!a)return C;let B=pr(a.semver,C.semver,w);return B<0?a:B>0||C.operator===\"<\"&&a.operator===\"<=\"?C:a};re.exports=Lr}}),QT=Oa({\"node_modules/semver/index.js\"(M,re){Ea();var Ve=wv();re.exports={re:Ve.re,src:Ve.src,tokens:Ve.t,SEMVER_SPEC_VERSION:D1().SEMVER_SPEC_VERSION,SemVer:Lf(),compareIdentifiers:BT().compareIdentifiers,rcompareIdentifiers:BT().rcompareIdentifiers,parse:Ov(),valid:Kj(),clean:Gj(),inc:Hj(),diff:Xj(),major:Qj(),minor:Yj(),patch:$j(),prerelease:Zj(),compare:nd(),rcompare:eU(),compareLoose:rU(),compareBuild:VT(),sort:iU(),rsort:tU(),gt:T1(),lt:KT(),eq:qT(),neq:J4(),gte:GT(),lte:HT(),cmp:j4(),coerce:aU(),Comparator:x1(),Range:od(),satisfies:E1(),toComparators:cU(),maxSatisfying:uU(),minSatisfying:lU(),minVersion:fU(),validRange:_U(),outside:XT(),gtr:pU(),ltr:dU(),intersects:gU(),simplifyRange:mU(),subset:vU()}}}),U4={};h1(U4,{basename:()=>K4,default:()=>H4,delimiter:()=>jT,dirname:()=>V4,extname:()=>G4,isAbsolute:()=>$T,join:()=>W4,normalize:()=>YT,relative:()=>q4,resolve:()=>y1,sep:()=>JT});function z4(M,re){for(var Ve=0,Ke=M.length-1;Ke>=0;Ke--){var oi=M[Ke];oi===\".\"?M.splice(Ke,1):oi===\"..\"?(M.splice(Ke,1),Ve++):Ve&&(M.splice(Ke,1),Ve--)}if(re)for(;Ve--;Ve)M.unshift(\"..\");return M}function y1(){for(var M=\"\",re=!1,Ve=arguments.length-1;Ve>=-1&&!re;Ve--){var Ke=Ve>=0?arguments[Ve]:\"/\";if(typeof Ke!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!Ke)continue;M=Ke+\"/\"+M,re=Ke.charAt(0)===\"/\"}return M=z4(ZT(M.split(\"/\"),function(oi){return!!oi}),!re).join(\"/\"),(re?\"/\":\"\")+M||\".\"}function YT(M){var re=$T(M),Ve=X4(M,-1)===\"/\";return M=z4(ZT(M.split(\"/\"),function(Ke){return!!Ke}),!re).join(\"/\"),!M&&!re&&(M=\".\"),M&&Ve&&(M+=\"/\"),(re?\"/\":\"\")+M}function $T(M){return M.charAt(0)===\"/\"}function W4(){var M=Array.prototype.slice.call(arguments,0);return YT(ZT(M,function(re,Ve){if(typeof re!=\"string\")throw new TypeError(\"Arguments to path.join must be strings\");return re}).join(\"/\"))}function q4(M,re){M=y1(M).substr(1),re=y1(re).substr(1);function Ve(ke){for(var e=0;e=0&&ke[a]===\"\";a--);return e>a?[]:ke.slice(e,a-e+1)}for(var Ke=Ve(M.split(\"/\")),oi=Ve(re.split(\"/\")),kr=Math.min(Ke.length,oi.length),pr=kr,Lr=0;LrY4});var Y4,hU=Qy({\"node-modules-polyfills:fs\"(){Ea(),Y4={}}}),ex=Oa({\"node-modules-polyfills-commonjs:fs\"(M,re){Ea();var Ve=(hU(),mp(Q4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),_u=Oa({\"node_modules/typescript/lib/typescript.js\"(M,re){\"use strict\";Ea();var Ve=M&&M.__spreadArray||function(e,a,C){if(C||arguments.length===2)for(var w=0,B=a.length,E;w0&&E[E.length-1])&&(p[0]===6||p[0]===2)){C=0;continue}if(p[0]===3&&(!E||p[1]>E[0]&&p[1]=0;qe--){var br=Ce(S[qe],qe);if(br)return br}}e.forEachRight=B;function E(S,Ce){if(S!==void 0)for(var qe=0;qe=0;qe--){var br=S[qe];if(Ce(br,qe))return br}}e.findLast=T;function K(S,Ce,qe){for(var br=qe||0;br=0;br--)if(Ce(S[br],br))return br;return-1}e.findLastIndex=b;function se(S,Ce){for(var qe=0;qe0;return!1}e.some=D;function fe(S,Ce,qe){for(var br,Zr=0;Zr0&&e.Debug.assertGreaterThanOrEqual(qe(Ce[Si],Ce[Si-1]),0);r:for(var Pi=Zr;ZrPi&&e.Debug.assertGreaterThanOrEqual(qe(S[Zr],S[Zr-1]),0),qe(Ce[Si],S[Zr])){case-1:br.push(Ce[Si]);continue e;case 0:continue e;case 1:continue r}}return br}e.relativeComplement=Ie;function _e(S,Ce){for(var qe=0,br=0,Zr=S;br>1),Ct=qe(S[Qi],Qi);switch(br(Ct,Ce)){case-1:Si=Qi+1;break;case 0:return Qi;case 1:Pi=Qi-1;break}}return~Si}e.binarySearchKey=mi;function pe(S,Ce,qe,br,Zr){if(S&&S.length>0){var Si=S.length;if(Si>0){var Pi=br===void 0||br<0?0:br,Qi=Zr===void 0||Pi+Zr>Si-1?Si-1:Pi+Zr,Ct=void 0;for(arguments.length<=2?(Ct=S[Pi],Pi++):Ct=qe;Pi<=Qi;)Ct=Ce(Ct,S[Pi],Pi),Pi++;return Ct}}return qe}e.reduceLeft=pe;var or=Object.prototype.hasOwnProperty;function qr(S,Ce){return or.call(S,Ce)}e.hasProperty=qr;function si(S,Ce){return or.call(S,Ce)?S[Ce]:void 0}e.getProperty=si;function Di(S){var Ce=[];for(var qe in S)or.call(S,qe)&&Ce.push(qe);return Ce}e.getOwnKeys=Di;function wi(S){var Ce=[];do for(var qe=Object.getOwnPropertyNames(S),br=0,Zr=qe;brCe?1:0)}e.compareStringsCaseInsensitive=Bt;function wt(S,Ce){return Ii(S,Ce)}e.compareStringsCaseSensitive=wt;function na(S){return S?Bt:wt}e.getStringComparer=na;var Ai=function(){var S,Ce,qe=Qi();return Ct;function br(sa,en,Wa){if(sa===en)return 0;if(sa===void 0)return-1;if(en===void 0)return 1;var qn=Wa(sa,en);return qn<0?-1:qn>0?1:0}function Zr(sa){var en=new Intl.Collator(sa,{usage:\"sort\",sensitivity:\"variant\"}).compare;return function(Wa,qn){return br(Wa,qn,en)}}function Si(sa){if(sa!==void 0)return Pi();return function(Wa,qn){return br(Wa,qn,en)};function en(Wa,qn){return Wa.localeCompare(qn)}}function Pi(){return function(Wa,qn){return br(Wa,qn,sa)};function sa(Wa,qn){return en(Wa.toUpperCase(),qn.toUpperCase())||en(Wa,qn)}function en(Wa,qn){return Waqn?1:0}}function Qi(){return typeof Intl==\"object\"&&typeof Intl.Collator==\"function\"?Zr:typeof String.prototype.localeCompare==\"function\"&&typeof String.prototype.toLocaleUpperCase==\"function\"&&\"a\".localeCompare(\"B\")<0?Si:Pi}function Ct(sa){return sa===void 0?S||(S=qe(sa)):sa===\"en-US\"?Ce||(Ce=qe(sa)):qe(sa)}}(),Oi,ji;function Vi(){return ji}e.getUILocale=Vi;function at(S){ji!==S&&(ji=S,Oi=void 0)}e.setUILocale=at;function At(S,Ce){var qe=Oi||(Oi=Ai(ji));return qe(S,Ce)}e.compareStringsCaseSensitiveUI=At;function ba(S,Ce,qe,br){return S===Ce?0:S===void 0?-1:Ce===void 0?1:br(S[qe],Ce[qe])}e.compareProperties=ba;function $a(S,Ce){return Ki(S?1:0,Ce?1:0)}e.compareBooleans=$a;function Qa(S,Ce,qe){for(var br=Math.min(2,Math.floor(S.length*.34)),Zr=Math.floor(S.length*.4)+1,Si,Pi=0,Qi=Ce;Piqe?Pi-qe:1),sa=Math.floor(Ce.length>qe+Pi?qe+Pi:Ce.length);Zr[0]=Pi;for(var en=Pi,Wa=1;Waqe)return;var So=br;br=Zr,Zr=So}var Go=br[Ce.length];return Go>qe?void 0:Go}function Dn(S,Ce){var qe=S.length-Ce.length;return qe>=0&&S.indexOf(Ce,qe)===qe}e.endsWith=Dn;function ka(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):S}e.removeSuffix=ka;function Ba(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):void 0}e.tryRemoveSuffix=Ba;function pn(S,Ce){return S.indexOf(Ce)!==-1}e.stringContains=pn;function Cn(S){for(var Ce=S.length,qe=Ce-1;qe>0;qe--){var br=S.charCodeAt(qe);if(br>=48&&br<=57)do--qe,br=S.charCodeAt(qe);while(qe>0&&br>=48&&br<=57);else if(qe>4&&(br===110||br===78)){if(--qe,br=S.charCodeAt(qe),br!==105&&br!==73||(--qe,br=S.charCodeAt(qe),br!==109&&br!==77))break;--qe,br=S.charCodeAt(qe)}else break;if(br!==45&&br!==46)break;Ce=qe}return Ce===S.length?S:S.slice(0,Ce)}e.removeMinAndVersionNumbers=Cn;function Bi(S,Ce){for(var qe=0;qeZr&&(Zr=Ct.prefix.length,br=Qi)}return br}e.findBestPatternMatch=bo;function Ro(S,Ce){return S.lastIndexOf(Ce,0)===0}e.startsWith=Ro;function En(S,Ce){return Ro(S,Ce)?S.substr(Ce.length):S}e.removePrefix=En;function Wn(S,Ce,qe){return qe===void 0&&(qe=vi),Ro(qe(S),qe(Ce))?S.substring(Ce.length):void 0}e.tryRemovePrefix=Wn;function to(S,Ce){var qe=S.prefix,br=S.suffix;return Ce.length>=qe.length+br.length&&Ro(Ce,qe)&&Dn(Ce,br)}function Co(S,Ce){return function(qe){return S(qe)&&Ce(qe)}}e.and=Co;function Ko(){for(var S=[],Ce=0;Ce=0&&e.isWhiteSpaceLike(S.charCodeAt(Ce));)Ce--;return S.slice(0,Ce+1)}})(ke||(ke={}));var ke;(function(e){var a;(function(w){w[w.Off=0]=\"Off\",w[w.Error=1]=\"Error\",w[w.Warning=2]=\"Warning\",w[w.Info=3]=\"Info\",w[w.Verbose=4]=\"Verbose\"})(a=e.LogLevel||(e.LogLevel={}));var C;(function(w){var B,E=0;w.currentLogLevel=a.Warning,w.isDebugging=!1;function Q(){return B!=null?B:B=new e.Version(e.version)}w.getTypeScriptVersion=Q;function le(Ye){return w.currentLogLevel<=Ye}w.shouldLog=le;function N(Ye,Br){w.loggingHost&&le(Ye)&&w.loggingHost.log(Ye,Br)}function p(Ye){N(a.Info,Ye)}w.log=p,function(Ye){function Br(lr){N(a.Error,lr)}Ye.error=Br;function Er(lr){N(a.Warning,lr)}Ye.warn=Er;function Ne(lr){N(a.Info,lr)}Ye.log=Ne;function n(lr){N(a.Verbose,lr)}Ye.trace=n}(p=w.log||(w.log={}));var m={};function G(){return E}w.getAssertionLevel=G;function oe(Ye){var Br=E;if(E=Ye,Ye>Br)for(var Er=0,Ne=e.getOwnKeys(m);Er=lr.level&&(w[n]=lr,m[n]=void 0)}}w.setAssertionLevel=oe;function f(Ye){return E>=Ye}w.shouldAssert=f;function T(Ye,Br){return f(Ye)?!0:(m[Br]={level:Ye,assertion:w[Br]},w[Br]=e.noop,!1)}function K(Ye,Br){debugger;var Er=new Error(Ye?\"Debug Failure. \".concat(Ye):\"Debug Failure.\");throw Error.captureStackTrace&&Error.captureStackTrace(Er,Br||K),Er}w.fail=K;function b(Ye,Br,Er){return K(\"\".concat(Br||\"Unexpected node.\",`\\r\nNode `).concat(j(Ye.kind),\" was unexpected.\"),Er||b)}w.failBadSyntaxKind=b;function se(Ye,Br,Er,Ne){Ye||(Br=Br?\"False expression: \".concat(Br):\"False expression.\",Er&&(Br+=`\\r\nVerbose Debug Information: `+(typeof Er==\"string\"?Er:Er())),K(Br,Ne||se))}w.assert=se;function J(Ye,Br,Er,Ne,n){if(Ye!==Br){var lr=Er?Ne?\"\".concat(Er,\" \").concat(Ne):Er:\"\";K(\"Expected \".concat(Ye,\" === \").concat(Br,\". \").concat(lr),n||J)}}w.assertEqual=J;function ie(Ye,Br,Er,Ne){Ye>=Br&&K(\"Expected \".concat(Ye,\" < \").concat(Br,\". \").concat(Er||\"\"),Ne||ie)}w.assertLessThan=ie;function R(Ye,Br,Er){Ye>Br&&K(\"Expected \".concat(Ye,\" <= \").concat(Br),Er||R)}w.assertLessThanOrEqual=R;function q(Ye,Br,Er){Ye= \").concat(Br),Er||q)}w.assertGreaterThanOrEqual=q;function O(Ye,Br,Er){Ye==null&&K(Br,Er||O)}w.assertIsDefined=O;function ve(Ye,Br,Er){return O(Ye,Br,Er||ve),Ye}w.checkDefined=ve;function ee(Ye,Br,Er){for(var Ne=0,n=Ye;Ne0&&Ne[0][0]===0?Ne[0][1]:\"0\";if(Er){for(var n=\"\",lr=Ye,be=0,Ge=Ne;beYe)break;yr!==0&&yr&Ye&&(n=\"\".concat(n).concat(n?\"|\":\"\").concat(Ir),lr&=~yr)}if(lr===0)return n}else for(var wr=0,Ur=Ne;wr=0;return ur?ye(Ye,lr,Ge,Br.message):yr?Ae(Ye,lr,Ge,Br.message):e.noop}function ir(Ye,Br){return function(){return Ye(),Br.apply(this,arguments)}}function Cr(Ye,Br){var Er=er(P(Ye),Br);return ir(Er,Ye)}w.deprecate=Cr})(C=e.Debug||(e.Debug={}))})(ke||(ke={}));var ke;(function(e){var a=/^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i,C=/^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)(?:\\.(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*))*$/i,w=/^[a-z0-9-]+(?:\\.[a-z0-9-]+)*$/i,B=/^(0|[1-9]\\d*)$/,E=function(){function F(x,X,$,A,y){if(X===void 0&&(X=0),$===void 0&&($=0),A===void 0&&(A=\"\"),y===void 0&&(y=\"\"),typeof x==\"string\"){var V=e.Debug.checkDefined(Q(x),\"Invalid version\");x=V.major,X=V.minor,$=V.patch,A=V.prerelease,y=V.build}e.Debug.assert(x>=0,\"Invalid argument: major\"),e.Debug.assert(X>=0,\"Invalid argument: minor\"),e.Debug.assert($>=0,\"Invalid argument: patch\"),e.Debug.assert(!A||C.test(A),\"Invalid argument: prerelease\"),e.Debug.assert(!y||w.test(y),\"Invalid argument: build\"),this.major=x,this.minor=X,this.patch=$,this.prerelease=A?A.split(\".\"):e.emptyArray,this.build=y?y.split(\".\"):e.emptyArray}return F.tryParse=function(x){var X=Q(x);if(!!X){var $=X.major,A=X.minor,y=X.patch,V=X.prerelease,L=X.build;return new F($,A,y,V,L)}},F.prototype.compareTo=function(x){return this===x?0:x===void 0?1:e.compareValues(this.major,x.major)||e.compareValues(this.minor,x.minor)||e.compareValues(this.patch,x.patch)||le(this.prerelease,x.prerelease)},F.prototype.increment=function(x){switch(x){case\"major\":return new F(this.major+1,0,0);case\"minor\":return new F(this.major,this.minor+1,0);case\"patch\":return new F(this.major,this.minor,this.patch+1);default:return e.Debug.assertNever(x)}},F.prototype.toString=function(){var x=\"\".concat(this.major,\".\").concat(this.minor,\".\").concat(this.patch);return e.some(this.prerelease)&&(x+=\"-\".concat(this.prerelease.join(\".\"))),e.some(this.build)&&(x+=\"+\".concat(this.build.join(\".\"))),x},F.zero=new F(0,0,0),F}();e.Version=E;function Q(F){var x=a.exec(F);if(!!x){var X=x[1],$=x[2],A=$===void 0?\"0\":$,y=x[3],V=y===void 0?\"0\":y,L=x[4],P=L===void 0?\"\":L,k=x[5],Y=k===void 0?\"\":k;if(!(P&&!C.test(P))&&!(Y&&!w.test(Y)))return{major:parseInt(X,10),minor:parseInt(A,10),patch:parseInt(V,10),prerelease:P,build:Y}}}function le(F,x){if(F===x)return 0;if(F.length===0)return x.length===0?0:1;if(x.length===0)return-1;for(var X=Math.min(F.length,x.length),$=0;$|>=|=)?\\s*([a-z0-9-+.*]+)$/i;function T(F){for(var x=[],X=0,$=e.trimString(F).split(p);X<$.length;X++){var A=$[X];if(!!A){var y=[];A=e.trimString(A);var V=oe.exec(A);if(V){if(!b(V[1],V[2],y))return}else for(var L=0,P=A.split(m);L=\",$.version)),J(A.major)||X.push(J(A.minor)?ie(\"<\",A.version.increment(\"major\")):J(A.patch)?ie(\"<\",A.version.increment(\"minor\")):ie(\"<=\",A.version)),!0):!1}function se(F,x,X){var $=K(x);if(!$)return!1;var A=$.version,y=$.major,V=$.minor,L=$.patch;if(J(y))(F===\"<\"||F===\">\")&&X.push(ie(\"<\",E.zero));else switch(F){case\"~\":X.push(ie(\">=\",A)),X.push(ie(\"<\",A.increment(J(V)?\"major\":\"minor\")));break;case\"^\":X.push(ie(\">=\",A)),X.push(ie(\"<\",A.increment(A.major>0||J(V)?\"major\":A.minor>0||J(L)?\"minor\":\"patch\")));break;case\"<\":case\">=\":X.push(ie(F,A));break;case\"<=\":case\">\":X.push(J(V)?ie(F===\"<=\"?\"<\":\">=\",A.increment(\"major\")):J(L)?ie(F===\"<=\"?\"<\":\">=\",A.increment(\"minor\")):ie(F,A));break;case\"=\":case void 0:J(V)||J(L)?(X.push(ie(\">=\",A)),X.push(ie(\"<\",A.increment(J(V)?\"major\":\"minor\")))):X.push(ie(\"=\",A));break;default:return!1}return!0}function J(F){return F===\"*\"||F===\"x\"||F===\"X\"}function ie(F,x){return{operator:F,operand:x}}function R(F,x){if(x.length===0)return!0;for(var X=0,$=x;X<$.length;X++){var A=$[X];if(q(F,A))return!0}return!1}function q(F,x){for(var X=0,$=x;X<$.length;X++){var A=$[X];if(!O(F,A.operator,A.operand))return!1}return!0}function O(F,x,X){var $=F.compareTo(X);switch(x){case\"<\":return $<0;case\"<=\":return $<=0;case\">\":return $>0;case\">=\":return $>=0;case\"=\":return $===0;default:return e.Debug.assertNever(x)}}function ve(F){return e.map(F,ee).join(\" || \")||\"*\"}function ee(F){return e.map(F,he).join(\" \")}function he(F){return\"\".concat(F.operator).concat(F.operand)}})(ke||(ke={}));var ke;(function(e){function a(le,N){return typeof le==\"object\"&&typeof le.timeOrigin==\"number\"&&typeof le.mark==\"function\"&&typeof le.measure==\"function\"&&typeof le.now==\"function\"&&typeof N==\"function\"}function C(){if(typeof performance==\"object\"&&typeof PerformanceObserver==\"function\"&&a(performance,PerformanceObserver))return{shouldWriteNativeEvents:!0,performance,PerformanceObserver}}function w(){}var B=C()||void 0,E=B==null?void 0:B.performance;function Q(){return B}e.tryGetNativePerformanceHooks=Q,e.timestamp=E?function(){return E.now()}:Date.now?Date.now:function(){return+new Date}})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B;function E(R,q,O,ve){return R?Q(q,O,ve):C.nullTimer}C.createTimerIf=E;function Q(R,q,O){var ve=0;return{enter:ee,exit:he};function ee(){++ve===1&&oe(q)}function he(){--ve===0?(oe(O),f(R,q,O)):ve<0&&e.Debug.fail(\"enter/exit count does not match.\")}}C.createTimer=Q,C.nullTimer={enter:e.noop,exit:e.noop};var le=!1,N=e.timestamp(),p=new e.Map,m=new e.Map,G=new e.Map;function oe(R){var q;if(le){var O=(q=m.get(R))!==null&&q!==void 0?q:0;m.set(R,O+1),p.set(R,e.timestamp()),B==null||B.mark(R)}}C.mark=oe;function f(R,q,O){var ve,ee;if(le){var he=(ve=O!==void 0?p.get(O):void 0)!==null&&ve!==void 0?ve:e.timestamp(),F=(ee=q!==void 0?p.get(q):void 0)!==null&&ee!==void 0?ee:N,x=G.get(R)||0;G.set(R,x+(he-F)),B==null||B.measure(R,q,O)}}C.measure=f;function T(R){return m.get(R)||0}C.getCount=T;function K(R){return G.get(R)||0}C.getDuration=K;function b(R){G.forEach(function(q,O){return R(O,q)})}C.forEachMeasure=b;function se(){return le}C.isEnabled=se;function J(R){var q;return R===void 0&&(R=e.sys),le||(le=!0,w||(w=e.tryGetNativePerformanceHooks()),w&&(N=w.performance.timeOrigin,(w.shouldWriteNativeEvents||((q=R==null?void 0:R.cpuProfilingEnabled)===null||q===void 0?void 0:q.call(R))||(R==null?void 0:R.debugMode))&&(B=w.performance))),!0}C.enable=J;function ie(){le&&(p.clear(),m.clear(),G.clear(),B=void 0,le=!1)}C.disable=ie})(a=e.performance||(e.performance={}))})(ke||(ke={}));var ke;(function(e){var a,C={logEvent:e.noop,logErrEvent:e.noop,logPerfEvent:e.noop,logInfoEvent:e.noop,logStartCommand:e.noop,logStopCommand:e.noop,logStartUpdateProgram:e.noop,logStopUpdateProgram:e.noop,logStartUpdateGraph:e.noop,logStopUpdateGraph:e.noop,logStartResolveModule:e.noop,logStopResolveModule:e.noop,logStartParseSourceFile:e.noop,logStopParseSourceFile:e.noop,logStartReadFile:e.noop,logStopReadFile:e.noop,logStartBindFile:e.noop,logStopBindFile:e.noop,logStartScheduledOperation:e.noop,logStopScheduledOperation:e.noop},w;try{var B=(a=Eu.env.TS_ETW_MODULE_PATH)!==null&&a!==void 0?a:\"./node_modules/@microsoft/typescript-etw\";w=void 0}catch{w=void 0}e.perfLogger=w&&w.logEvent?w:C})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B=0,E=0,Q,le=[],N,p=[];function m(he,F,x){if(e.Debug.assert(!e.tracing,\"Tracing already started\"),w===void 0)try{w=ex()}catch(V){throw new Error(`tracing requires having fs\n(original error: `.concat(V.message||V,\")\"))}Q=he,le.length=0,N===void 0&&(N=e.combinePaths(F,\"legend.json\")),w.existsSync(F)||w.mkdirSync(F,{recursive:!0});var X=Q===\"build\"?\".\".concat(Eu.pid,\"-\").concat(++B):Q===\"server\"?\".\".concat(Eu.pid):\"\",$=e.combinePaths(F,\"trace\".concat(X,\".json\")),A=e.combinePaths(F,\"types\".concat(X,\".json\"));p.push({configFilePath:x,tracePath:$,typesPath:A}),E=w.openSync($,\"w\"),e.tracing=C;var y={cat:\"__metadata\",ph:\"M\",ts:1e3*e.timestamp(),pid:1,tid:1};w.writeSync(E,`[\n`+[Ke({name:\"process_name\",args:{name:\"tsc\"}},y),Ke({name:\"thread_name\",args:{name:\"Main\"}},y),Ke(Ke({name:\"TracingStartedInBrowser\"},y),{cat:\"disabled-by-default-devtools.timeline\"})].map(function(V){return JSON.stringify(V)}).join(`,\n`))}C.startTracing=m;function G(){e.Debug.assert(e.tracing,\"Tracing is not in progress\"),e.Debug.assert(!!le.length==(Q!==\"server\")),w.writeSync(E,`\n]\n`),w.closeSync(E),e.tracing=void 0,le.length?ve(le):p[p.length-1].typesPath=void 0}C.stopTracing=G;function oe(he){Q!==\"server\"&&le.push(he)}C.recordType=oe;var f;(function(he){he.Parse=\"parse\",he.Program=\"program\",he.Bind=\"bind\",he.Check=\"check\",he.CheckTypes=\"checkTypes\",he.Emit=\"emit\",he.Session=\"session\"})(f=C.Phase||(C.Phase={}));function T(he,F,x){q(\"I\",he,F,x,'\"s\":\"g\"')}C.instant=T;var K=[];function b(he,F,x,X){X===void 0&&(X=!1),X&&q(\"B\",he,F,x),K.push({phase:he,name:F,args:x,time:1e3*e.timestamp(),separateBeginAndEnd:X})}C.push=b;function se(){e.Debug.assert(K.length>0),R(K.length-1,1e3*e.timestamp()),K.length--}C.pop=se;function J(){for(var he=1e3*e.timestamp(),F=K.length-1;F>=0;F--)R(F,he);K.length=0}C.popAll=J;var ie=1e3*10;function R(he,F){var x=K[he],X=x.phase,$=x.name,A=x.args,y=x.time,V=x.separateBeginAndEnd;V?q(\"E\",X,$,A,void 0,F):ie-y%ie<=F-y&&q(\"X\",X,$,A,'\"dur\":'.concat(F-y),y)}function q(he,F,x,X,$,A){A===void 0&&(A=1e3*e.timestamp()),!(Q===\"server\"&&F===\"checkTypes\")&&(e.performance.mark(\"beginTracing\"),w.writeSync(E,`,\n{\"pid\":1,\"tid\":1,\"ph\":\"`.concat(he,'\",\"cat\":\"').concat(F,'\",\"ts\":').concat(A,',\"name\":\"').concat(x,'\"')),$&&w.writeSync(E,\",\".concat($)),X&&w.writeSync(E,',\"args\":'.concat(JSON.stringify(X))),w.writeSync(E,\"}\"),e.performance.mark(\"endTracing\"),e.performance.measure(\"Tracing\",\"beginTracing\",\"endTracing\"))}function O(he){var F=e.getSourceFileOfNode(he);return F?{path:F.path,start:x(e.getLineAndCharacterOfPosition(F,he.pos)),end:x(e.getLineAndCharacterOfPosition(F,he.end))}:void 0;function x(X){return{line:X.line+1,character:X.character+1}}}function ve(he){var F,x,X,$,A,y,V,L,P,k,Y,U,j,H,I,l,d,D,fe,g,ne,ue;e.performance.mark(\"beginDumpTypes\");var We=p[p.length-1].typesPath,Fe=w.openSync(We,\"w\"),Z=new e.Map;w.writeSync(Fe,\"[\");for(var Be=he.length,ge=0;ge\"u\")){var A=Eu.version;if(!!A){var y=A.indexOf(\".\");if(y!==-1)return parseInt(A.substring(1,y))}}}e.getNodeMajorVersion=X,e.sys=void 0;function $(A){e.sys=void 0}e.setSys=$,e.sys&&e.sys.getEnvironmentVariable&&(p(e.sys),e.Debug.setAssertionLevel(/^development$/i.test(e.sys.getEnvironmentVariable(\"NODE_ENV\"))?1:0)),e.sys&&e.sys.debugMode&&(e.Debug.isDebugging=!0)})(ke||(ke={}));var ke;(function(e){e.directorySeparator=\"/\",e.altDirectorySeparator=\"\\\\\";var a=\"://\",C=/\\\\/g;function w(ze){return ze===47||ze===92}e.isAnyDirectorySeparator=w;function B(ze){return b(ze)<0}e.isUrl=B;function E(ze){return b(ze)>0}e.isRootedDiskPath=E;function Q(ze){var Ee=b(ze);return Ee>0&&Ee===ze.length}e.isDiskPathRoot=Q;function le(ze){return b(ze)!==0}e.pathIsAbsolute=le;function N(ze){return/^\\.\\.?($|[\\\\/])/.test(ze)}e.pathIsRelative=N;function p(ze){return!le(ze)&&!N(ze)}e.pathIsBareSpecifier=p;function m(ze){return e.stringContains(ie(ze),\".\")}e.hasExtension=m;function G(ze,Ee){return ze.length>Ee.length&&e.endsWith(ze,Ee)}e.fileExtensionIs=G;function oe(ze,Ee){for(var He=0,rr=Ee;He0&&w(ze.charCodeAt(ze.length-1))}e.hasTrailingDirectorySeparator=f;function T(ze){return ze>=97&&ze<=122||ze>=65&&ze<=90}function K(ze,Ee){var He=ze.charCodeAt(Ee);if(He===58)return Ee+1;if(He===37&&ze.charCodeAt(Ee+1)===51){var rr=ze.charCodeAt(Ee+2);if(rr===97||rr===65)return Ee+3}return-1}function b(ze){if(!ze)return 0;var Ee=ze.charCodeAt(0);if(Ee===47||Ee===92){if(ze.charCodeAt(1)!==Ee)return 1;var He=ze.indexOf(Ee===47?e.directorySeparator:e.altDirectorySeparator,2);return He<0?ze.length:He+1}if(T(Ee)&&ze.charCodeAt(1)===58){var rr=ze.charCodeAt(2);if(rr===47||rr===92)return 3;if(ze.length===2)return 2}var Ie=ze.indexOf(a);if(Ie!==-1){var _e=Ie+a.length,we=ze.indexOf(e.directorySeparator,_e);if(we!==-1){var de=ze.slice(0,Ie),ye=ze.slice(_e,we);if(de===\"file\"&&(ye===\"\"||ye===\"localhost\")&&T(ze.charCodeAt(we+1))){var Ae=K(ze,we+2);if(Ae!==-1){if(ze.charCodeAt(Ae)===47)return~(Ae+1);if(Ae===ze.length)return~Ae}}return~(we+1)}return~ze.length}return 0}function se(ze){var Ee=b(ze);return Ee<0?~Ee:Ee}e.getRootLength=se;function J(ze){ze=F(ze);var Ee=se(ze);return Ee===ze.length?ze:(ze=Y(ze),ze.slice(0,Math.max(Ee,ze.lastIndexOf(e.directorySeparator))))}e.getDirectoryPath=J;function ie(ze,Ee,He){ze=F(ze);var rr=se(ze);if(rr===ze.length)return\"\";ze=Y(ze);var Ie=ze.slice(Math.max(se(ze),ze.lastIndexOf(e.directorySeparator)+1)),_e=Ee!==void 0&&He!==void 0?O(Ie,Ee,He):void 0;return _e?Ie.slice(0,Ie.length-_e.length):Ie}e.getBaseFileName=ie;function R(ze,Ee,He){if(e.startsWith(Ee,\".\")||(Ee=\".\"+Ee),ze.length>=Ee.length&&ze.charCodeAt(ze.length-Ee.length)===46){var rr=ze.slice(ze.length-Ee.length);if(He(rr,Ee))return rr}}function q(ze,Ee,He){if(typeof Ee==\"string\")return R(ze,Ee,He)||\"\";for(var rr=0,Ie=Ee;rr=0?rr.substring(Ie):\"\"}e.getAnyExtensionFromPath=O;function ve(ze,Ee){var He=ze.substring(0,Ee),rr=ze.substring(Ee).split(e.directorySeparator);return rr.length&&!e.lastOrUndefined(rr)&&rr.pop(),Ve([He],rr,!0)}function ee(ze,Ee){return Ee===void 0&&(Ee=\"\"),ze=X(Ee,ze),ve(ze,se(ze))}e.getPathComponents=ee;function he(ze){if(ze.length===0)return\"\";var Ee=ze[0]&&U(ze[0]);return Ee+ze.slice(1).join(e.directorySeparator)}e.getPathFromPathComponents=he;function F(ze){var Ee=ze.indexOf(\"\\\\\");return Ee===-1?ze:(C.lastIndex=Ee,ze.replace(C,e.directorySeparator))}e.normalizeSlashes=F;function x(ze){if(!e.some(ze))return[];for(var Ee=[ze[0]],He=1;He1){if(Ee[Ee.length-1]!==\"..\"){Ee.pop();continue}}else if(Ee[0])continue}Ee.push(rr)}}return Ee}e.reducePathComponents=x;function X(ze){for(var Ee=[],He=1;He0==se(Ee)>0,\"Paths must either both be absolute or both be relative\");var rr=typeof He==\"function\"?He:e.identity,Ie=typeof He==\"boolean\"?He:!1,_e=ue(ze,Ee,Ie?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,rr);return he(_e)}e.getRelativePathFromDirectory=We;function Fe(ze,Ee,He){return E(ze)?Be(Ee,ze,Ee,He,!1):ze}e.convertToRelativePath=Fe;function Z(ze,Ee,He){return j(We(J(ze),Ee,He))}e.getRelativePathFromFile=Z;function Be(ze,Ee,He,rr,Ie){var _e=ue($(He,ze),$(He,Ee),e.equateStringsCaseSensitive,rr),we=_e[0];if(Ie&&E(we)){var de=we.charAt(0)===e.directorySeparator?\"file://\":\"file:///\";_e[0]=de+we}return he(_e)}e.getRelativePathToDirectoryOrUrl=Be;function ge(ze,Ee){for(;;){var He=Ee(ze);if(He!==void 0)return He;var rr=J(ze);if(rr===ze)return;ze=rr}}e.forEachAncestorDirectory=ge;function Re(ze){return e.endsWith(ze,\"/node_modules\")}e.isNodeModulesDirectory=Re})(ke||(ke={}));var ke;(function(e){function a(C,w,B,E,Q,le,N){return{code:C,category:w,key:B,message:E,reportsUnnecessary:Q,elidedInCompatabilityPyramid:le,reportsDeprecated:N}}e.Diagnostics={Unterminated_string_literal:a(1002,e.DiagnosticCategory.Error,\"Unterminated_string_literal_1002\",\"Unterminated string literal.\"),Identifier_expected:a(1003,e.DiagnosticCategory.Error,\"Identifier_expected_1003\",\"Identifier expected.\"),_0_expected:a(1005,e.DiagnosticCategory.Error,\"_0_expected_1005\",\"'{0}' expected.\"),A_file_cannot_have_a_reference_to_itself:a(1006,e.DiagnosticCategory.Error,\"A_file_cannot_have_a_reference_to_itself_1006\",\"A file cannot have a reference to itself.\"),The_parser_expected_to_find_a_1_to_match_the_0_token_here:a(1007,e.DiagnosticCategory.Error,\"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007\",\"The parser expected to find a '{1}' to match the '{0}' token here.\"),Trailing_comma_not_allowed:a(1009,e.DiagnosticCategory.Error,\"Trailing_comma_not_allowed_1009\",\"Trailing comma not allowed.\"),Asterisk_Slash_expected:a(1010,e.DiagnosticCategory.Error,\"Asterisk_Slash_expected_1010\",\"'*/' expected.\"),An_element_access_expression_should_take_an_argument:a(1011,e.DiagnosticCategory.Error,\"An_element_access_expression_should_take_an_argument_1011\",\"An element access expression should take an argument.\"),Unexpected_token:a(1012,e.DiagnosticCategory.Error,\"Unexpected_token_1012\",\"Unexpected token.\"),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:a(1013,e.DiagnosticCategory.Error,\"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013\",\"A rest parameter or binding pattern may not have a trailing comma.\"),A_rest_parameter_must_be_last_in_a_parameter_list:a(1014,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_last_in_a_parameter_list_1014\",\"A rest parameter must be last in a parameter list.\"),Parameter_cannot_have_question_mark_and_initializer:a(1015,e.DiagnosticCategory.Error,\"Parameter_cannot_have_question_mark_and_initializer_1015\",\"Parameter cannot have question mark and initializer.\"),A_required_parameter_cannot_follow_an_optional_parameter:a(1016,e.DiagnosticCategory.Error,\"A_required_parameter_cannot_follow_an_optional_parameter_1016\",\"A required parameter cannot follow an optional parameter.\"),An_index_signature_cannot_have_a_rest_parameter:a(1017,e.DiagnosticCategory.Error,\"An_index_signature_cannot_have_a_rest_parameter_1017\",\"An index signature cannot have a rest parameter.\"),An_index_signature_parameter_cannot_have_an_accessibility_modifier:a(1018,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018\",\"An index signature parameter cannot have an accessibility modifier.\"),An_index_signature_parameter_cannot_have_a_question_mark:a(1019,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_a_question_mark_1019\",\"An index signature parameter cannot have a question mark.\"),An_index_signature_parameter_cannot_have_an_initializer:a(1020,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_initializer_1020\",\"An index signature parameter cannot have an initializer.\"),An_index_signature_must_have_a_type_annotation:a(1021,e.DiagnosticCategory.Error,\"An_index_signature_must_have_a_type_annotation_1021\",\"An index signature must have a type annotation.\"),An_index_signature_parameter_must_have_a_type_annotation:a(1022,e.DiagnosticCategory.Error,\"An_index_signature_parameter_must_have_a_type_annotation_1022\",\"An index signature parameter must have a type annotation.\"),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:a(1024,e.DiagnosticCategory.Error,\"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024\",\"'readonly' modifier can only appear on a property declaration or index signature.\"),An_index_signature_cannot_have_a_trailing_comma:a(1025,e.DiagnosticCategory.Error,\"An_index_signature_cannot_have_a_trailing_comma_1025\",\"An index signature cannot have a trailing comma.\"),Accessibility_modifier_already_seen:a(1028,e.DiagnosticCategory.Error,\"Accessibility_modifier_already_seen_1028\",\"Accessibility modifier already seen.\"),_0_modifier_must_precede_1_modifier:a(1029,e.DiagnosticCategory.Error,\"_0_modifier_must_precede_1_modifier_1029\",\"'{0}' modifier must precede '{1}' modifier.\"),_0_modifier_already_seen:a(1030,e.DiagnosticCategory.Error,\"_0_modifier_already_seen_1030\",\"'{0}' modifier already seen.\"),_0_modifier_cannot_appear_on_class_elements_of_this_kind:a(1031,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031\",\"'{0}' modifier cannot appear on class elements of this kind.\"),super_must_be_followed_by_an_argument_list_or_member_access:a(1034,e.DiagnosticCategory.Error,\"super_must_be_followed_by_an_argument_list_or_member_access_1034\",\"'super' must be followed by an argument list or member access.\"),Only_ambient_modules_can_use_quoted_names:a(1035,e.DiagnosticCategory.Error,\"Only_ambient_modules_can_use_quoted_names_1035\",\"Only ambient modules can use quoted names.\"),Statements_are_not_allowed_in_ambient_contexts:a(1036,e.DiagnosticCategory.Error,\"Statements_are_not_allowed_in_ambient_contexts_1036\",\"Statements are not allowed in ambient contexts.\"),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:a(1038,e.DiagnosticCategory.Error,\"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038\",\"A 'declare' modifier cannot be used in an already ambient context.\"),Initializers_are_not_allowed_in_ambient_contexts:a(1039,e.DiagnosticCategory.Error,\"Initializers_are_not_allowed_in_ambient_contexts_1039\",\"Initializers are not allowed in ambient contexts.\"),_0_modifier_cannot_be_used_in_an_ambient_context:a(1040,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_in_an_ambient_context_1040\",\"'{0}' modifier cannot be used in an ambient context.\"),_0_modifier_cannot_be_used_here:a(1042,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_here_1042\",\"'{0}' modifier cannot be used here.\"),_0_modifier_cannot_appear_on_a_module_or_namespace_element:a(1044,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044\",\"'{0}' modifier cannot appear on a module or namespace element.\"),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:a(1046,e.DiagnosticCategory.Error,\"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046\",\"Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.\"),A_rest_parameter_cannot_be_optional:a(1047,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_be_optional_1047\",\"A rest parameter cannot be optional.\"),A_rest_parameter_cannot_have_an_initializer:a(1048,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_have_an_initializer_1048\",\"A rest parameter cannot have an initializer.\"),A_set_accessor_must_have_exactly_one_parameter:a(1049,e.DiagnosticCategory.Error,\"A_set_accessor_must_have_exactly_one_parameter_1049\",\"A 'set' accessor must have exactly one parameter.\"),A_set_accessor_cannot_have_an_optional_parameter:a(1051,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_an_optional_parameter_1051\",\"A 'set' accessor cannot have an optional parameter.\"),A_set_accessor_parameter_cannot_have_an_initializer:a(1052,e.DiagnosticCategory.Error,\"A_set_accessor_parameter_cannot_have_an_initializer_1052\",\"A 'set' accessor parameter cannot have an initializer.\"),A_set_accessor_cannot_have_rest_parameter:a(1053,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_rest_parameter_1053\",\"A 'set' accessor cannot have rest parameter.\"),A_get_accessor_cannot_have_parameters:a(1054,e.DiagnosticCategory.Error,\"A_get_accessor_cannot_have_parameters_1054\",\"A 'get' accessor cannot have parameters.\"),Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:a(1055,e.DiagnosticCategory.Error,\"Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055\",\"Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.\"),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:a(1056,e.DiagnosticCategory.Error,\"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056\",\"Accessors are only available when targeting ECMAScript 5 and higher.\"),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1058,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058\",\"The return type of an async function must either be a valid promise or must not contain a callable 'then' member.\"),A_promise_must_have_a_then_method:a(1059,e.DiagnosticCategory.Error,\"A_promise_must_have_a_then_method_1059\",\"A promise must have a 'then' method.\"),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:a(1060,e.DiagnosticCategory.Error,\"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060\",\"The first parameter of the 'then' method of a promise must be a callback.\"),Enum_member_must_have_initializer:a(1061,e.DiagnosticCategory.Error,\"Enum_member_must_have_initializer_1061\",\"Enum member must have initializer.\"),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:a(1062,e.DiagnosticCategory.Error,\"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062\",\"Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.\"),An_export_assignment_cannot_be_used_in_a_namespace:a(1063,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_namespace_1063\",\"An export assignment cannot be used in a namespace.\"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:a(1064,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064\",\"The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?\"),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:a(1066,e.DiagnosticCategory.Error,\"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066\",\"In ambient enum declarations member initializer must be constant expression.\"),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:a(1068,e.DiagnosticCategory.Error,\"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068\",\"Unexpected token. A constructor, method, accessor, or property was expected.\"),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:a(1069,e.DiagnosticCategory.Error,\"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069\",\"Unexpected token. A type parameter name was expected without curly braces.\"),_0_modifier_cannot_appear_on_a_type_member:a(1070,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_type_member_1070\",\"'{0}' modifier cannot appear on a type member.\"),_0_modifier_cannot_appear_on_an_index_signature:a(1071,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_an_index_signature_1071\",\"'{0}' modifier cannot appear on an index signature.\"),A_0_modifier_cannot_be_used_with_an_import_declaration:a(1079,e.DiagnosticCategory.Error,\"A_0_modifier_cannot_be_used_with_an_import_declaration_1079\",\"A '{0}' modifier cannot be used with an import declaration.\"),Invalid_reference_directive_syntax:a(1084,e.DiagnosticCategory.Error,\"Invalid_reference_directive_syntax_1084\",\"Invalid 'reference' directive syntax.\"),Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:a(1085,e.DiagnosticCategory.Error,\"Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0_1085\",\"Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'.\"),_0_modifier_cannot_appear_on_a_constructor_declaration:a(1089,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_constructor_declaration_1089\",\"'{0}' modifier cannot appear on a constructor declaration.\"),_0_modifier_cannot_appear_on_a_parameter:a(1090,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_parameter_1090\",\"'{0}' modifier cannot appear on a parameter.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:a(1091,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091\",\"Only a single variable declaration is allowed in a 'for...in' statement.\"),Type_parameters_cannot_appear_on_a_constructor_declaration:a(1092,e.DiagnosticCategory.Error,\"Type_parameters_cannot_appear_on_a_constructor_declaration_1092\",\"Type parameters cannot appear on a constructor declaration.\"),Type_annotation_cannot_appear_on_a_constructor_declaration:a(1093,e.DiagnosticCategory.Error,\"Type_annotation_cannot_appear_on_a_constructor_declaration_1093\",\"Type annotation cannot appear on a constructor declaration.\"),An_accessor_cannot_have_type_parameters:a(1094,e.DiagnosticCategory.Error,\"An_accessor_cannot_have_type_parameters_1094\",\"An accessor cannot have type parameters.\"),A_set_accessor_cannot_have_a_return_type_annotation:a(1095,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_a_return_type_annotation_1095\",\"A 'set' accessor cannot have a return type annotation.\"),An_index_signature_must_have_exactly_one_parameter:a(1096,e.DiagnosticCategory.Error,\"An_index_signature_must_have_exactly_one_parameter_1096\",\"An index signature must have exactly one parameter.\"),_0_list_cannot_be_empty:a(1097,e.DiagnosticCategory.Error,\"_0_list_cannot_be_empty_1097\",\"'{0}' list cannot be empty.\"),Type_parameter_list_cannot_be_empty:a(1098,e.DiagnosticCategory.Error,\"Type_parameter_list_cannot_be_empty_1098\",\"Type parameter list cannot be empty.\"),Type_argument_list_cannot_be_empty:a(1099,e.DiagnosticCategory.Error,\"Type_argument_list_cannot_be_empty_1099\",\"Type argument list cannot be empty.\"),Invalid_use_of_0_in_strict_mode:a(1100,e.DiagnosticCategory.Error,\"Invalid_use_of_0_in_strict_mode_1100\",\"Invalid use of '{0}' in strict mode.\"),with_statements_are_not_allowed_in_strict_mode:a(1101,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_strict_mode_1101\",\"'with' statements are not allowed in strict mode.\"),delete_cannot_be_called_on_an_identifier_in_strict_mode:a(1102,e.DiagnosticCategory.Error,\"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102\",\"'delete' cannot be called on an identifier in strict mode.\"),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:a(1103,e.DiagnosticCategory.Error,\"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103\",\"'for await' loops are only allowed within async functions and at the top levels of modules.\"),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:a(1104,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104\",\"A 'continue' statement can only be used within an enclosing iteration statement.\"),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:a(1105,e.DiagnosticCategory.Error,\"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105\",\"A 'break' statement can only be used within an enclosing iteration or switch statement.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_async:a(1106,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106\",\"The left-hand side of a 'for...of' statement may not be 'async'.\"),Jump_target_cannot_cross_function_boundary:a(1107,e.DiagnosticCategory.Error,\"Jump_target_cannot_cross_function_boundary_1107\",\"Jump target cannot cross function boundary.\"),A_return_statement_can_only_be_used_within_a_function_body:a(1108,e.DiagnosticCategory.Error,\"A_return_statement_can_only_be_used_within_a_function_body_1108\",\"A 'return' statement can only be used within a function body.\"),Expression_expected:a(1109,e.DiagnosticCategory.Error,\"Expression_expected_1109\",\"Expression expected.\"),Type_expected:a(1110,e.DiagnosticCategory.Error,\"Type_expected_1110\",\"Type expected.\"),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:a(1113,e.DiagnosticCategory.Error,\"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113\",\"A 'default' clause cannot appear more than once in a 'switch' statement.\"),Duplicate_label_0:a(1114,e.DiagnosticCategory.Error,\"Duplicate_label_0_1114\",\"Duplicate label '{0}'.\"),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:a(1115,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115\",\"A 'continue' statement can only jump to a label of an enclosing iteration statement.\"),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:a(1116,e.DiagnosticCategory.Error,\"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116\",\"A 'break' statement can only jump to a label of an enclosing statement.\"),An_object_literal_cannot_have_multiple_properties_with_the_same_name:a(1117,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117\",\"An object literal cannot have multiple properties with the same name.\"),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:a(1118,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118\",\"An object literal cannot have multiple get/set accessors with the same name.\"),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:a(1119,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119\",\"An object literal cannot have property and accessor with the same name.\"),An_export_assignment_cannot_have_modifiers:a(1120,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_have_modifiers_1120\",\"An export assignment cannot have modifiers.\"),Octal_literals_are_not_allowed_in_strict_mode:a(1121,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_strict_mode_1121\",\"Octal literals are not allowed in strict mode.\"),Variable_declaration_list_cannot_be_empty:a(1123,e.DiagnosticCategory.Error,\"Variable_declaration_list_cannot_be_empty_1123\",\"Variable declaration list cannot be empty.\"),Digit_expected:a(1124,e.DiagnosticCategory.Error,\"Digit_expected_1124\",\"Digit expected.\"),Hexadecimal_digit_expected:a(1125,e.DiagnosticCategory.Error,\"Hexadecimal_digit_expected_1125\",\"Hexadecimal digit expected.\"),Unexpected_end_of_text:a(1126,e.DiagnosticCategory.Error,\"Unexpected_end_of_text_1126\",\"Unexpected end of text.\"),Invalid_character:a(1127,e.DiagnosticCategory.Error,\"Invalid_character_1127\",\"Invalid character.\"),Declaration_or_statement_expected:a(1128,e.DiagnosticCategory.Error,\"Declaration_or_statement_expected_1128\",\"Declaration or statement expected.\"),Statement_expected:a(1129,e.DiagnosticCategory.Error,\"Statement_expected_1129\",\"Statement expected.\"),case_or_default_expected:a(1130,e.DiagnosticCategory.Error,\"case_or_default_expected_1130\",\"'case' or 'default' expected.\"),Property_or_signature_expected:a(1131,e.DiagnosticCategory.Error,\"Property_or_signature_expected_1131\",\"Property or signature expected.\"),Enum_member_expected:a(1132,e.DiagnosticCategory.Error,\"Enum_member_expected_1132\",\"Enum member expected.\"),Variable_declaration_expected:a(1134,e.DiagnosticCategory.Error,\"Variable_declaration_expected_1134\",\"Variable declaration expected.\"),Argument_expression_expected:a(1135,e.DiagnosticCategory.Error,\"Argument_expression_expected_1135\",\"Argument expression expected.\"),Property_assignment_expected:a(1136,e.DiagnosticCategory.Error,\"Property_assignment_expected_1136\",\"Property assignment expected.\"),Expression_or_comma_expected:a(1137,e.DiagnosticCategory.Error,\"Expression_or_comma_expected_1137\",\"Expression or comma expected.\"),Parameter_declaration_expected:a(1138,e.DiagnosticCategory.Error,\"Parameter_declaration_expected_1138\",\"Parameter declaration expected.\"),Type_parameter_declaration_expected:a(1139,e.DiagnosticCategory.Error,\"Type_parameter_declaration_expected_1139\",\"Type parameter declaration expected.\"),Type_argument_expected:a(1140,e.DiagnosticCategory.Error,\"Type_argument_expected_1140\",\"Type argument expected.\"),String_literal_expected:a(1141,e.DiagnosticCategory.Error,\"String_literal_expected_1141\",\"String literal expected.\"),Line_break_not_permitted_here:a(1142,e.DiagnosticCategory.Error,\"Line_break_not_permitted_here_1142\",\"Line break not permitted here.\"),or_expected:a(1144,e.DiagnosticCategory.Error,\"or_expected_1144\",\"'{' or ';' expected.\"),Declaration_expected:a(1146,e.DiagnosticCategory.Error,\"Declaration_expected_1146\",\"Declaration expected.\"),Import_declarations_in_a_namespace_cannot_reference_a_module:a(1147,e.DiagnosticCategory.Error,\"Import_declarations_in_a_namespace_cannot_reference_a_module_1147\",\"Import declarations in a namespace cannot reference a module.\"),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:a(1148,e.DiagnosticCategory.Error,\"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148\",\"Cannot use imports, exports, or module augmentations when '--module' is 'none'.\"),File_name_0_differs_from_already_included_file_name_1_only_in_casing:a(1149,e.DiagnosticCategory.Error,\"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149\",\"File name '{0}' differs from already included file name '{1}' only in casing.\"),const_declarations_must_be_initialized:a(1155,e.DiagnosticCategory.Error,\"const_declarations_must_be_initialized_1155\",\"'const' declarations must be initialized.\"),const_declarations_can_only_be_declared_inside_a_block:a(1156,e.DiagnosticCategory.Error,\"const_declarations_can_only_be_declared_inside_a_block_1156\",\"'const' declarations can only be declared inside a block.\"),let_declarations_can_only_be_declared_inside_a_block:a(1157,e.DiagnosticCategory.Error,\"let_declarations_can_only_be_declared_inside_a_block_1157\",\"'let' declarations can only be declared inside a block.\"),Unterminated_template_literal:a(1160,e.DiagnosticCategory.Error,\"Unterminated_template_literal_1160\",\"Unterminated template literal.\"),Unterminated_regular_expression_literal:a(1161,e.DiagnosticCategory.Error,\"Unterminated_regular_expression_literal_1161\",\"Unterminated regular expression literal.\"),An_object_member_cannot_be_declared_optional:a(1162,e.DiagnosticCategory.Error,\"An_object_member_cannot_be_declared_optional_1162\",\"An object member cannot be declared optional.\"),A_yield_expression_is_only_allowed_in_a_generator_body:a(1163,e.DiagnosticCategory.Error,\"A_yield_expression_is_only_allowed_in_a_generator_body_1163\",\"A 'yield' expression is only allowed in a generator body.\"),Computed_property_names_are_not_allowed_in_enums:a(1164,e.DiagnosticCategory.Error,\"Computed_property_names_are_not_allowed_in_enums_1164\",\"Computed property names are not allowed in enums.\"),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1165,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165\",\"A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:a(1166,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166\",\"A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1168,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168\",\"A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1169,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169\",\"A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1170,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170\",\"A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_comma_expression_is_not_allowed_in_a_computed_property_name:a(1171,e.DiagnosticCategory.Error,\"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171\",\"A comma expression is not allowed in a computed property name.\"),extends_clause_already_seen:a(1172,e.DiagnosticCategory.Error,\"extends_clause_already_seen_1172\",\"'extends' clause already seen.\"),extends_clause_must_precede_implements_clause:a(1173,e.DiagnosticCategory.Error,\"extends_clause_must_precede_implements_clause_1173\",\"'extends' clause must precede 'implements' clause.\"),Classes_can_only_extend_a_single_class:a(1174,e.DiagnosticCategory.Error,\"Classes_can_only_extend_a_single_class_1174\",\"Classes can only extend a single class.\"),implements_clause_already_seen:a(1175,e.DiagnosticCategory.Error,\"implements_clause_already_seen_1175\",\"'implements' clause already seen.\"),Interface_declaration_cannot_have_implements_clause:a(1176,e.DiagnosticCategory.Error,\"Interface_declaration_cannot_have_implements_clause_1176\",\"Interface declaration cannot have 'implements' clause.\"),Binary_digit_expected:a(1177,e.DiagnosticCategory.Error,\"Binary_digit_expected_1177\",\"Binary digit expected.\"),Octal_digit_expected:a(1178,e.DiagnosticCategory.Error,\"Octal_digit_expected_1178\",\"Octal digit expected.\"),Unexpected_token_expected:a(1179,e.DiagnosticCategory.Error,\"Unexpected_token_expected_1179\",\"Unexpected token. '{' expected.\"),Property_destructuring_pattern_expected:a(1180,e.DiagnosticCategory.Error,\"Property_destructuring_pattern_expected_1180\",\"Property destructuring pattern expected.\"),Array_element_destructuring_pattern_expected:a(1181,e.DiagnosticCategory.Error,\"Array_element_destructuring_pattern_expected_1181\",\"Array element destructuring pattern expected.\"),A_destructuring_declaration_must_have_an_initializer:a(1182,e.DiagnosticCategory.Error,\"A_destructuring_declaration_must_have_an_initializer_1182\",\"A destructuring declaration must have an initializer.\"),An_implementation_cannot_be_declared_in_ambient_contexts:a(1183,e.DiagnosticCategory.Error,\"An_implementation_cannot_be_declared_in_ambient_contexts_1183\",\"An implementation cannot be declared in ambient contexts.\"),Modifiers_cannot_appear_here:a(1184,e.DiagnosticCategory.Error,\"Modifiers_cannot_appear_here_1184\",\"Modifiers cannot appear here.\"),Merge_conflict_marker_encountered:a(1185,e.DiagnosticCategory.Error,\"Merge_conflict_marker_encountered_1185\",\"Merge conflict marker encountered.\"),A_rest_element_cannot_have_an_initializer:a(1186,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_an_initializer_1186\",\"A rest element cannot have an initializer.\"),A_parameter_property_may_not_be_declared_using_a_binding_pattern:a(1187,e.DiagnosticCategory.Error,\"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187\",\"A parameter property may not be declared using a binding pattern.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:a(1188,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188\",\"Only a single variable declaration is allowed in a 'for...of' statement.\"),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:a(1189,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189\",\"The variable declaration of a 'for...in' statement cannot have an initializer.\"),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:a(1190,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190\",\"The variable declaration of a 'for...of' statement cannot have an initializer.\"),An_import_declaration_cannot_have_modifiers:a(1191,e.DiagnosticCategory.Error,\"An_import_declaration_cannot_have_modifiers_1191\",\"An import declaration cannot have modifiers.\"),Module_0_has_no_default_export:a(1192,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_1192\",\"Module '{0}' has no default export.\"),An_export_declaration_cannot_have_modifiers:a(1193,e.DiagnosticCategory.Error,\"An_export_declaration_cannot_have_modifiers_1193\",\"An export declaration cannot have modifiers.\"),Export_declarations_are_not_permitted_in_a_namespace:a(1194,e.DiagnosticCategory.Error,\"Export_declarations_are_not_permitted_in_a_namespace_1194\",\"Export declarations are not permitted in a namespace.\"),export_Asterisk_does_not_re_export_a_default:a(1195,e.DiagnosticCategory.Error,\"export_Asterisk_does_not_re_export_a_default_1195\",\"'export *' does not re-export a default.\"),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:a(1196,e.DiagnosticCategory.Error,\"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196\",\"Catch clause variable type annotation must be 'any' or 'unknown' if specified.\"),Catch_clause_variable_cannot_have_an_initializer:a(1197,e.DiagnosticCategory.Error,\"Catch_clause_variable_cannot_have_an_initializer_1197\",\"Catch clause variable cannot have an initializer.\"),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:a(1198,e.DiagnosticCategory.Error,\"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198\",\"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.\"),Unterminated_Unicode_escape_sequence:a(1199,e.DiagnosticCategory.Error,\"Unterminated_Unicode_escape_sequence_1199\",\"Unterminated Unicode escape sequence.\"),Line_terminator_not_permitted_before_arrow:a(1200,e.DiagnosticCategory.Error,\"Line_terminator_not_permitted_before_arrow_1200\",\"Line terminator not permitted before arrow.\"),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:a(1202,e.DiagnosticCategory.Error,\"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202\",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:a(1203,e.DiagnosticCategory.Error,\"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203\",\"Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.\"),Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type:a(1205,e.DiagnosticCategory.Error,\"Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type_1205\",\"Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.\"),Decorators_are_not_valid_here:a(1206,e.DiagnosticCategory.Error,\"Decorators_are_not_valid_here_1206\",\"Decorators are not valid here.\"),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:a(1207,e.DiagnosticCategory.Error,\"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207\",\"Decorators cannot be applied to multiple get/set accessors of the same name.\"),_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_import_export_or_an_empty_export_statement_to_make_it_a_module:a(1208,e.DiagnosticCategory.Error,\"_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_imp_1208\",\"'{0}' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module.\"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:a(1210,e.DiagnosticCategory.Error,\"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210\",\"Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.\"),A_class_declaration_without_the_default_modifier_must_have_a_name:a(1211,e.DiagnosticCategory.Error,\"A_class_declaration_without_the_default_modifier_must_have_a_name_1211\",\"A class declaration without the 'default' modifier must have a name.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode:a(1212,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212\",\"Identifier expected. '{0}' is a reserved word in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:a(1213,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213\",\"Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:a(1214,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214\",\"Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.\"),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:a(1215,e.DiagnosticCategory.Error,\"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215\",\"Invalid use of '{0}'. Modules are automatically in strict mode.\"),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:a(1216,e.DiagnosticCategory.Error,\"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216\",\"Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.\"),Export_assignment_is_not_supported_when_module_flag_is_system:a(1218,e.DiagnosticCategory.Error,\"Export_assignment_is_not_supported_when_module_flag_is_system_1218\",\"Export assignment is not supported when '--module' flag is 'system'.\"),Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning:a(1219,e.DiagnosticCategory.Error,\"Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_t_1219\",\"Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.\"),Generators_are_not_allowed_in_an_ambient_context:a(1221,e.DiagnosticCategory.Error,\"Generators_are_not_allowed_in_an_ambient_context_1221\",\"Generators are not allowed in an ambient context.\"),An_overload_signature_cannot_be_declared_as_a_generator:a(1222,e.DiagnosticCategory.Error,\"An_overload_signature_cannot_be_declared_as_a_generator_1222\",\"An overload signature cannot be declared as a generator.\"),_0_tag_already_specified:a(1223,e.DiagnosticCategory.Error,\"_0_tag_already_specified_1223\",\"'{0}' tag already specified.\"),Signature_0_must_be_a_type_predicate:a(1224,e.DiagnosticCategory.Error,\"Signature_0_must_be_a_type_predicate_1224\",\"Signature '{0}' must be a type predicate.\"),Cannot_find_parameter_0:a(1225,e.DiagnosticCategory.Error,\"Cannot_find_parameter_0_1225\",\"Cannot find parameter '{0}'.\"),Type_predicate_0_is_not_assignable_to_1:a(1226,e.DiagnosticCategory.Error,\"Type_predicate_0_is_not_assignable_to_1_1226\",\"Type predicate '{0}' is not assignable to '{1}'.\"),Parameter_0_is_not_in_the_same_position_as_parameter_1:a(1227,e.DiagnosticCategory.Error,\"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227\",\"Parameter '{0}' is not in the same position as parameter '{1}'.\"),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:a(1228,e.DiagnosticCategory.Error,\"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228\",\"A type predicate is only allowed in return type position for functions and methods.\"),A_type_predicate_cannot_reference_a_rest_parameter:a(1229,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_a_rest_parameter_1229\",\"A type predicate cannot reference a rest parameter.\"),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:a(1230,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230\",\"A type predicate cannot reference element '{0}' in a binding pattern.\"),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:a(1231,e.DiagnosticCategory.Error,\"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231\",\"An export assignment must be at the top level of a file or module declaration.\"),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:a(1232,e.DiagnosticCategory.Error,\"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232\",\"An import declaration can only be used at the top level of a namespace or module.\"),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:a(1233,e.DiagnosticCategory.Error,\"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233\",\"An export declaration can only be used at the top level of a namespace or module.\"),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:a(1234,e.DiagnosticCategory.Error,\"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234\",\"An ambient module declaration is only allowed at the top level in a file.\"),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:a(1235,e.DiagnosticCategory.Error,\"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235\",\"A namespace declaration is only allowed at the top level of a namespace or module.\"),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:a(1236,e.DiagnosticCategory.Error,\"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236\",\"The return type of a property decorator function must be either 'void' or 'any'.\"),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:a(1237,e.DiagnosticCategory.Error,\"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237\",\"The return type of a parameter decorator function must be either 'void' or 'any'.\"),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:a(1238,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238\",\"Unable to resolve signature of class decorator when called as an expression.\"),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:a(1239,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239\",\"Unable to resolve signature of parameter decorator when called as an expression.\"),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:a(1240,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240\",\"Unable to resolve signature of property decorator when called as an expression.\"),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:a(1241,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241\",\"Unable to resolve signature of method decorator when called as an expression.\"),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:a(1242,e.DiagnosticCategory.Error,\"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242\",\"'abstract' modifier can only appear on a class, method, or property declaration.\"),_0_modifier_cannot_be_used_with_1_modifier:a(1243,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_1_modifier_1243\",\"'{0}' modifier cannot be used with '{1}' modifier.\"),Abstract_methods_can_only_appear_within_an_abstract_class:a(1244,e.DiagnosticCategory.Error,\"Abstract_methods_can_only_appear_within_an_abstract_class_1244\",\"Abstract methods can only appear within an abstract class.\"),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:a(1245,e.DiagnosticCategory.Error,\"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245\",\"Method '{0}' cannot have an implementation because it is marked abstract.\"),An_interface_property_cannot_have_an_initializer:a(1246,e.DiagnosticCategory.Error,\"An_interface_property_cannot_have_an_initializer_1246\",\"An interface property cannot have an initializer.\"),A_type_literal_property_cannot_have_an_initializer:a(1247,e.DiagnosticCategory.Error,\"A_type_literal_property_cannot_have_an_initializer_1247\",\"A type literal property cannot have an initializer.\"),A_class_member_cannot_have_the_0_keyword:a(1248,e.DiagnosticCategory.Error,\"A_class_member_cannot_have_the_0_keyword_1248\",\"A class member cannot have the '{0}' keyword.\"),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:a(1249,e.DiagnosticCategory.Error,\"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249\",\"A decorator can only decorate a method implementation, not an overload.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5:a(1250,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:a(1251,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:a(1252,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode.\"),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:a(1254,e.DiagnosticCategory.Error,\"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254\",\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),A_definite_assignment_assertion_is_not_permitted_in_this_context:a(1255,e.DiagnosticCategory.Error,\"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255\",\"A definite assignment assertion '!' is not permitted in this context.\"),A_required_element_cannot_follow_an_optional_element:a(1257,e.DiagnosticCategory.Error,\"A_required_element_cannot_follow_an_optional_element_1257\",\"A required element cannot follow an optional element.\"),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:a(1258,e.DiagnosticCategory.Error,\"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258\",\"A default export must be at the top level of a file or module declaration.\"),Module_0_can_only_be_default_imported_using_the_1_flag:a(1259,e.DiagnosticCategory.Error,\"Module_0_can_only_be_default_imported_using_the_1_flag_1259\",\"Module '{0}' can only be default-imported using the '{1}' flag\"),Keywords_cannot_contain_escape_characters:a(1260,e.DiagnosticCategory.Error,\"Keywords_cannot_contain_escape_characters_1260\",\"Keywords cannot contain escape characters.\"),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:a(1261,e.DiagnosticCategory.Error,\"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261\",\"Already included file name '{0}' differs from file name '{1}' only in casing.\"),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:a(1262,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262\",\"Identifier expected. '{0}' is a reserved word at the top-level of a module.\"),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:a(1263,e.DiagnosticCategory.Error,\"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263\",\"Declarations with initializers cannot also have definite assignment assertions.\"),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:a(1264,e.DiagnosticCategory.Error,\"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264\",\"Declarations with definite assignment assertions must also have type annotations.\"),A_rest_element_cannot_follow_another_rest_element:a(1265,e.DiagnosticCategory.Error,\"A_rest_element_cannot_follow_another_rest_element_1265\",\"A rest element cannot follow another rest element.\"),An_optional_element_cannot_follow_a_rest_element:a(1266,e.DiagnosticCategory.Error,\"An_optional_element_cannot_follow_a_rest_element_1266\",\"An optional element cannot follow a rest element.\"),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:a(1267,e.DiagnosticCategory.Error,\"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267\",\"Property '{0}' cannot have an initializer because it is marked abstract.\"),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:a(1268,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268\",\"An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.\"),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided:a(1269,e.DiagnosticCategory.Error,\"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided_1269\",\"Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.\"),Decorator_function_return_type_0_is_not_assignable_to_type_1:a(1270,e.DiagnosticCategory.Error,\"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270\",\"Decorator function return type '{0}' is not assignable to type '{1}'.\"),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:a(1271,e.DiagnosticCategory.Error,\"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271\",\"Decorator function return type is '{0}' but is expected to be 'void' or 'any'.\"),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:a(1272,e.DiagnosticCategory.Error,\"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272\",\"A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.\"),_0_modifier_cannot_appear_on_a_type_parameter:a(1273,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_type_parameter_1273\",\"'{0}' modifier cannot appear on a type parameter\"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:a(1274,e.DiagnosticCategory.Error,\"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274\",\"'{0}' modifier can only appear on a type parameter of a class, interface or type alias\"),with_statements_are_not_allowed_in_an_async_function_block:a(1300,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_an_async_function_block_1300\",\"'with' statements are not allowed in an async function block.\"),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:a(1308,e.DiagnosticCategory.Error,\"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308\",\"'await' expressions are only allowed within async functions and at the top levels of modules.\"),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:a(1309,e.DiagnosticCategory.Error,\"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309\",\"The current file is a CommonJS module and cannot use 'await' at the top level.\"),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:a(1312,e.DiagnosticCategory.Error,\"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312\",\"Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.\"),The_body_of_an_if_statement_cannot_be_the_empty_statement:a(1313,e.DiagnosticCategory.Error,\"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313\",\"The body of an 'if' statement cannot be the empty statement.\"),Global_module_exports_may_only_appear_in_module_files:a(1314,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_module_files_1314\",\"Global module exports may only appear in module files.\"),Global_module_exports_may_only_appear_in_declaration_files:a(1315,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_declaration_files_1315\",\"Global module exports may only appear in declaration files.\"),Global_module_exports_may_only_appear_at_top_level:a(1316,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_at_top_level_1316\",\"Global module exports may only appear at top level.\"),A_parameter_property_cannot_be_declared_using_a_rest_parameter:a(1317,e.DiagnosticCategory.Error,\"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317\",\"A parameter property cannot be declared using a rest parameter.\"),An_abstract_accessor_cannot_have_an_implementation:a(1318,e.DiagnosticCategory.Error,\"An_abstract_accessor_cannot_have_an_implementation_1318\",\"An abstract accessor cannot have an implementation.\"),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:a(1319,e.DiagnosticCategory.Error,\"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319\",\"A default export can only be used in an ECMAScript-style module.\"),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1320,e.DiagnosticCategory.Error,\"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320\",\"Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1321,e.DiagnosticCategory.Error,\"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321\",\"Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1322,e.DiagnosticCategory.Error,\"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322\",\"Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.\"),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:a(1323,e.DiagnosticCategory.Error,\"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323\",\"Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'.\"),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext:a(1324,e.DiagnosticCategory.Error,\"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nod_1324\",\"Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', or 'nodenext'.\"),Argument_of_dynamic_import_cannot_be_spread_element:a(1325,e.DiagnosticCategory.Error,\"Argument_of_dynamic_import_cannot_be_spread_element_1325\",\"Argument of dynamic import cannot be spread element.\"),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:a(1326,e.DiagnosticCategory.Error,\"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326\",\"This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.\"),String_literal_with_double_quotes_expected:a(1327,e.DiagnosticCategory.Error,\"String_literal_with_double_quotes_expected_1327\",\"String literal with double quotes expected.\"),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:a(1328,e.DiagnosticCategory.Error,\"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328\",\"Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.\"),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:a(1329,e.DiagnosticCategory.Error,\"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329\",\"'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?\"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:a(1330,e.DiagnosticCategory.Error,\"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330\",\"A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.\"),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:a(1331,e.DiagnosticCategory.Error,\"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331\",\"A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.\"),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:a(1332,e.DiagnosticCategory.Error,\"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332\",\"A variable whose type is a 'unique symbol' type must be 'const'.\"),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:a(1333,e.DiagnosticCategory.Error,\"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333\",\"'unique symbol' types may not be used on a variable declaration with a binding name.\"),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:a(1334,e.DiagnosticCategory.Error,\"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334\",\"'unique symbol' types are only allowed on variables in a variable statement.\"),unique_symbol_types_are_not_allowed_here:a(1335,e.DiagnosticCategory.Error,\"unique_symbol_types_are_not_allowed_here_1335\",\"'unique symbol' types are not allowed here.\"),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:a(1337,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337\",\"An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.\"),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:a(1338,e.DiagnosticCategory.Error,\"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338\",\"'infer' declarations are only permitted in the 'extends' clause of a conditional type.\"),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:a(1339,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339\",\"Module '{0}' does not refer to a value, but is used as a value here.\"),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:a(1340,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340\",\"Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?\"),Type_arguments_cannot_be_used_here:a(1342,e.DiagnosticCategory.Error,\"Type_arguments_cannot_be_used_here_1342\",\"Type arguments cannot be used here.\"),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext:a(1343,e.DiagnosticCategory.Error,\"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343\",\"The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'.\"),A_label_is_not_allowed_here:a(1344,e.DiagnosticCategory.Error,\"A_label_is_not_allowed_here_1344\",\"'A label is not allowed here.\"),An_expression_of_type_void_cannot_be_tested_for_truthiness:a(1345,e.DiagnosticCategory.Error,\"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345\",\"An expression of type 'void' cannot be tested for truthiness.\"),This_parameter_is_not_allowed_with_use_strict_directive:a(1346,e.DiagnosticCategory.Error,\"This_parameter_is_not_allowed_with_use_strict_directive_1346\",\"This parameter is not allowed with 'use strict' directive.\"),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:a(1347,e.DiagnosticCategory.Error,\"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347\",\"'use strict' directive cannot be used with non-simple parameter list.\"),Non_simple_parameter_declared_here:a(1348,e.DiagnosticCategory.Error,\"Non_simple_parameter_declared_here_1348\",\"Non-simple parameter declared here.\"),use_strict_directive_used_here:a(1349,e.DiagnosticCategory.Error,\"use_strict_directive_used_here_1349\",\"'use strict' directive used here.\"),Print_the_final_configuration_instead_of_building:a(1350,e.DiagnosticCategory.Message,\"Print_the_final_configuration_instead_of_building_1350\",\"Print the final configuration instead of building.\"),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:a(1351,e.DiagnosticCategory.Error,\"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351\",\"An identifier or keyword cannot immediately follow a numeric literal.\"),A_bigint_literal_cannot_use_exponential_notation:a(1352,e.DiagnosticCategory.Error,\"A_bigint_literal_cannot_use_exponential_notation_1352\",\"A bigint literal cannot use exponential notation.\"),A_bigint_literal_must_be_an_integer:a(1353,e.DiagnosticCategory.Error,\"A_bigint_literal_must_be_an_integer_1353\",\"A bigint literal must be an integer.\"),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:a(1354,e.DiagnosticCategory.Error,\"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354\",\"'readonly' type modifier is only permitted on array and tuple literal types.\"),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:a(1355,e.DiagnosticCategory.Error,\"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355\",\"A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals.\"),Did_you_mean_to_mark_this_function_as_async:a(1356,e.DiagnosticCategory.Error,\"Did_you_mean_to_mark_this_function_as_async_1356\",\"Did you mean to mark this function as 'async'?\"),An_enum_member_name_must_be_followed_by_a_or:a(1357,e.DiagnosticCategory.Error,\"An_enum_member_name_must_be_followed_by_a_or_1357\",\"An enum member name must be followed by a ',', '=', or '}'.\"),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:a(1358,e.DiagnosticCategory.Error,\"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358\",\"Tagged template expressions are not permitted in an optional chain.\"),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:a(1359,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359\",\"Identifier expected. '{0}' is a reserved word that cannot be used here.\"),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:a(1361,e.DiagnosticCategory.Error,\"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361\",\"'{0}' cannot be used as a value because it was imported using 'import type'.\"),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:a(1362,e.DiagnosticCategory.Error,\"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362\",\"'{0}' cannot be used as a value because it was exported using 'export type'.\"),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:a(1363,e.DiagnosticCategory.Error,\"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363\",\"A type-only import can specify a default import or named bindings, but not both.\"),Convert_to_type_only_export:a(1364,e.DiagnosticCategory.Message,\"Convert_to_type_only_export_1364\",\"Convert to type-only export\"),Convert_all_re_exported_types_to_type_only_exports:a(1365,e.DiagnosticCategory.Message,\"Convert_all_re_exported_types_to_type_only_exports_1365\",\"Convert all re-exported types to type-only exports\"),Split_into_two_separate_import_declarations:a(1366,e.DiagnosticCategory.Message,\"Split_into_two_separate_import_declarations_1366\",\"Split into two separate import declarations\"),Split_all_invalid_type_only_imports:a(1367,e.DiagnosticCategory.Message,\"Split_all_invalid_type_only_imports_1367\",\"Split all invalid type-only imports\"),Did_you_mean_0:a(1369,e.DiagnosticCategory.Message,\"Did_you_mean_0_1369\",\"Did you mean '{0}'?\"),This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error:a(1371,e.DiagnosticCategory.Error,\"This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set__1371\",\"This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'.\"),Convert_to_type_only_import:a(1373,e.DiagnosticCategory.Message,\"Convert_to_type_only_import_1373\",\"Convert to type-only import\"),Convert_all_imports_not_used_as_a_value_to_type_only_imports:a(1374,e.DiagnosticCategory.Message,\"Convert_all_imports_not_used_as_a_value_to_type_only_imports_1374\",\"Convert all imports not used as a value to type-only imports\"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:a(1375,e.DiagnosticCategory.Error,\"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375\",\"'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),_0_was_imported_here:a(1376,e.DiagnosticCategory.Message,\"_0_was_imported_here_1376\",\"'{0}' was imported here.\"),_0_was_exported_here:a(1377,e.DiagnosticCategory.Message,\"_0_was_exported_here_1377\",\"'{0}' was exported here.\"),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher:a(1378,e.DiagnosticCategory.Error,\"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378\",\"Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher.\"),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:a(1379,e.DiagnosticCategory.Error,\"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379\",\"An import alias cannot reference a declaration that was exported using 'export type'.\"),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:a(1380,e.DiagnosticCategory.Error,\"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380\",\"An import alias cannot reference a declaration that was imported using 'import type'.\"),Unexpected_token_Did_you_mean_or_rbrace:a(1381,e.DiagnosticCategory.Error,\"Unexpected_token_Did_you_mean_or_rbrace_1381\",\"Unexpected token. Did you mean `{'}'}` or `}`?\"),Unexpected_token_Did_you_mean_or_gt:a(1382,e.DiagnosticCategory.Error,\"Unexpected_token_Did_you_mean_or_gt_1382\",\"Unexpected token. Did you mean `{'>'}` or `>`?\"),Only_named_exports_may_use_export_type:a(1383,e.DiagnosticCategory.Error,\"Only_named_exports_may_use_export_type_1383\",\"Only named exports may use 'export type'.\"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:a(1385,e.DiagnosticCategory.Error,\"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385\",\"Function type notation must be parenthesized when used in a union type.\"),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:a(1386,e.DiagnosticCategory.Error,\"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386\",\"Constructor type notation must be parenthesized when used in a union type.\"),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:a(1387,e.DiagnosticCategory.Error,\"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387\",\"Function type notation must be parenthesized when used in an intersection type.\"),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:a(1388,e.DiagnosticCategory.Error,\"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388\",\"Constructor type notation must be parenthesized when used in an intersection type.\"),_0_is_not_allowed_as_a_variable_declaration_name:a(1389,e.DiagnosticCategory.Error,\"_0_is_not_allowed_as_a_variable_declaration_name_1389\",\"'{0}' is not allowed as a variable declaration name.\"),_0_is_not_allowed_as_a_parameter_name:a(1390,e.DiagnosticCategory.Error,\"_0_is_not_allowed_as_a_parameter_name_1390\",\"'{0}' is not allowed as a parameter name.\"),An_import_alias_cannot_use_import_type:a(1392,e.DiagnosticCategory.Error,\"An_import_alias_cannot_use_import_type_1392\",\"An import alias cannot use 'import type'\"),Imported_via_0_from_file_1:a(1393,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_1393\",\"Imported via {0} from file '{1}'\"),Imported_via_0_from_file_1_with_packageId_2:a(1394,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_with_packageId_2_1394\",\"Imported via {0} from file '{1}' with packageId '{2}'\"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:a(1395,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395\",\"Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions\"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:a(1396,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396\",\"Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions\"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:a(1397,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397\",\"Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions\"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:a(1398,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398\",\"Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions\"),File_is_included_via_import_here:a(1399,e.DiagnosticCategory.Message,\"File_is_included_via_import_here_1399\",\"File is included via import here.\"),Referenced_via_0_from_file_1:a(1400,e.DiagnosticCategory.Message,\"Referenced_via_0_from_file_1_1400\",\"Referenced via '{0}' from file '{1}'\"),File_is_included_via_reference_here:a(1401,e.DiagnosticCategory.Message,\"File_is_included_via_reference_here_1401\",\"File is included via reference here.\"),Type_library_referenced_via_0_from_file_1:a(1402,e.DiagnosticCategory.Message,\"Type_library_referenced_via_0_from_file_1_1402\",\"Type library referenced via '{0}' from file '{1}'\"),Type_library_referenced_via_0_from_file_1_with_packageId_2:a(1403,e.DiagnosticCategory.Message,\"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403\",\"Type library referenced via '{0}' from file '{1}' with packageId '{2}'\"),File_is_included_via_type_library_reference_here:a(1404,e.DiagnosticCategory.Message,\"File_is_included_via_type_library_reference_here_1404\",\"File is included via type library reference here.\"),Library_referenced_via_0_from_file_1:a(1405,e.DiagnosticCategory.Message,\"Library_referenced_via_0_from_file_1_1405\",\"Library referenced via '{0}' from file '{1}'\"),File_is_included_via_library_reference_here:a(1406,e.DiagnosticCategory.Message,\"File_is_included_via_library_reference_here_1406\",\"File is included via library reference here.\"),Matched_by_include_pattern_0_in_1:a(1407,e.DiagnosticCategory.Message,\"Matched_by_include_pattern_0_in_1_1407\",\"Matched by include pattern '{0}' in '{1}'\"),File_is_matched_by_include_pattern_specified_here:a(1408,e.DiagnosticCategory.Message,\"File_is_matched_by_include_pattern_specified_here_1408\",\"File is matched by include pattern specified here.\"),Part_of_files_list_in_tsconfig_json:a(1409,e.DiagnosticCategory.Message,\"Part_of_files_list_in_tsconfig_json_1409\",\"Part of 'files' list in tsconfig.json\"),File_is_matched_by_files_list_specified_here:a(1410,e.DiagnosticCategory.Message,\"File_is_matched_by_files_list_specified_here_1410\",\"File is matched by 'files' list specified here.\"),Output_from_referenced_project_0_included_because_1_specified:a(1411,e.DiagnosticCategory.Message,\"Output_from_referenced_project_0_included_because_1_specified_1411\",\"Output from referenced project '{0}' included because '{1}' specified\"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:a(1412,e.DiagnosticCategory.Message,\"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412\",\"Output from referenced project '{0}' included because '--module' is specified as 'none'\"),File_is_output_from_referenced_project_specified_here:a(1413,e.DiagnosticCategory.Message,\"File_is_output_from_referenced_project_specified_here_1413\",\"File is output from referenced project specified here.\"),Source_from_referenced_project_0_included_because_1_specified:a(1414,e.DiagnosticCategory.Message,\"Source_from_referenced_project_0_included_because_1_specified_1414\",\"Source from referenced project '{0}' included because '{1}' specified\"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:a(1415,e.DiagnosticCategory.Message,\"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415\",\"Source from referenced project '{0}' included because '--module' is specified as 'none'\"),File_is_source_from_referenced_project_specified_here:a(1416,e.DiagnosticCategory.Message,\"File_is_source_from_referenced_project_specified_here_1416\",\"File is source from referenced project specified here.\"),Entry_point_of_type_library_0_specified_in_compilerOptions:a(1417,e.DiagnosticCategory.Message,\"Entry_point_of_type_library_0_specified_in_compilerOptions_1417\",\"Entry point of type library '{0}' specified in compilerOptions\"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:a(1418,e.DiagnosticCategory.Message,\"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418\",\"Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'\"),File_is_entry_point_of_type_library_specified_here:a(1419,e.DiagnosticCategory.Message,\"File_is_entry_point_of_type_library_specified_here_1419\",\"File is entry point of type library specified here.\"),Entry_point_for_implicit_type_library_0:a(1420,e.DiagnosticCategory.Message,\"Entry_point_for_implicit_type_library_0_1420\",\"Entry point for implicit type library '{0}'\"),Entry_point_for_implicit_type_library_0_with_packageId_1:a(1421,e.DiagnosticCategory.Message,\"Entry_point_for_implicit_type_library_0_with_packageId_1_1421\",\"Entry point for implicit type library '{0}' with packageId '{1}'\"),Library_0_specified_in_compilerOptions:a(1422,e.DiagnosticCategory.Message,\"Library_0_specified_in_compilerOptions_1422\",\"Library '{0}' specified in compilerOptions\"),File_is_library_specified_here:a(1423,e.DiagnosticCategory.Message,\"File_is_library_specified_here_1423\",\"File is library specified here.\"),Default_library:a(1424,e.DiagnosticCategory.Message,\"Default_library_1424\",\"Default library\"),Default_library_for_target_0:a(1425,e.DiagnosticCategory.Message,\"Default_library_for_target_0_1425\",\"Default library for target '{0}'\"),File_is_default_library_for_target_specified_here:a(1426,e.DiagnosticCategory.Message,\"File_is_default_library_for_target_specified_here_1426\",\"File is default library for target specified here.\"),Root_file_specified_for_compilation:a(1427,e.DiagnosticCategory.Message,\"Root_file_specified_for_compilation_1427\",\"Root file specified for compilation\"),File_is_output_of_project_reference_source_0:a(1428,e.DiagnosticCategory.Message,\"File_is_output_of_project_reference_source_0_1428\",\"File is output of project reference source '{0}'\"),File_redirects_to_file_0:a(1429,e.DiagnosticCategory.Message,\"File_redirects_to_file_0_1429\",\"File redirects to file '{0}'\"),The_file_is_in_the_program_because_Colon:a(1430,e.DiagnosticCategory.Message,\"The_file_is_in_the_program_because_Colon_1430\",\"The file is in the program because:\"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:a(1431,e.DiagnosticCategory.Error,\"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431\",\"'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher:a(1432,e.DiagnosticCategory.Error,\"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432\",\"Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher.\"),Decorators_may_not_be_applied_to_this_parameters:a(1433,e.DiagnosticCategory.Error,\"Decorators_may_not_be_applied_to_this_parameters_1433\",\"Decorators may not be applied to 'this' parameters.\"),Unexpected_keyword_or_identifier:a(1434,e.DiagnosticCategory.Error,\"Unexpected_keyword_or_identifier_1434\",\"Unexpected keyword or identifier.\"),Unknown_keyword_or_identifier_Did_you_mean_0:a(1435,e.DiagnosticCategory.Error,\"Unknown_keyword_or_identifier_Did_you_mean_0_1435\",\"Unknown keyword or identifier. Did you mean '{0}'?\"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:a(1436,e.DiagnosticCategory.Error,\"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436\",\"Decorators must precede the name and all keywords of property declarations.\"),Namespace_must_be_given_a_name:a(1437,e.DiagnosticCategory.Error,\"Namespace_must_be_given_a_name_1437\",\"Namespace must be given a name.\"),Interface_must_be_given_a_name:a(1438,e.DiagnosticCategory.Error,\"Interface_must_be_given_a_name_1438\",\"Interface must be given a name.\"),Type_alias_must_be_given_a_name:a(1439,e.DiagnosticCategory.Error,\"Type_alias_must_be_given_a_name_1439\",\"Type alias must be given a name.\"),Variable_declaration_not_allowed_at_this_location:a(1440,e.DiagnosticCategory.Error,\"Variable_declaration_not_allowed_at_this_location_1440\",\"Variable declaration not allowed at this location.\"),Cannot_start_a_function_call_in_a_type_annotation:a(1441,e.DiagnosticCategory.Error,\"Cannot_start_a_function_call_in_a_type_annotation_1441\",\"Cannot start a function call in a type annotation.\"),Expected_for_property_initializer:a(1442,e.DiagnosticCategory.Error,\"Expected_for_property_initializer_1442\",\"Expected '=' for property initializer.\"),Module_declaration_names_may_only_use_or_quoted_strings:a(1443,e.DiagnosticCategory.Error,\"Module_declaration_names_may_only_use_or_quoted_strings_1443\",`Module declaration names may only use ' or \" quoted strings.`),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1444,e.DiagnosticCategory.Error,\"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444\",\"'{0}' is a type and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled.\"),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1446,e.DiagnosticCategory.Error,\"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveVa_1446\",\"'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled.\"),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isolatedModules_is_enabled:a(1448,e.DiagnosticCategory.Error,\"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isol_1448\",\"'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when 'isolatedModules' is enabled.\"),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:a(1449,e.DiagnosticCategory.Message,\"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449\",\"Preserve unused imported values in the JavaScript output that would otherwise be removed.\"),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments:a(1450,e.DiagnosticCategory.Message,\"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments_1450\",\"Dynamic imports can only accept a module specifier and an optional assertion as arguments\"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:a(1451,e.DiagnosticCategory.Error,\"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451\",\"Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression\"),Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext:a(1452,e.DiagnosticCategory.Error,\"Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext_1452\",\"Resolution modes are only supported when `moduleResolution` is `node16` or `nodenext`.\"),resolution_mode_should_be_either_require_or_import:a(1453,e.DiagnosticCategory.Error,\"resolution_mode_should_be_either_require_or_import_1453\",\"`resolution-mode` should be either `require` or `import`.\"),resolution_mode_can_only_be_set_for_type_only_imports:a(1454,e.DiagnosticCategory.Error,\"resolution_mode_can_only_be_set_for_type_only_imports_1454\",\"`resolution-mode` can only be set for type-only imports.\"),resolution_mode_is_the_only_valid_key_for_type_import_assertions:a(1455,e.DiagnosticCategory.Error,\"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455\",\"`resolution-mode` is the only valid key for type import assertions.\"),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:a(1456,e.DiagnosticCategory.Error,\"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456\",\"Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.\"),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:a(1470,e.DiagnosticCategory.Error,\"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470\",\"The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.\"),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead:a(1471,e.DiagnosticCategory.Error,\"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471\",\"Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead.\"),catch_or_finally_expected:a(1472,e.DiagnosticCategory.Error,\"catch_or_finally_expected_1472\",\"'catch' or 'finally' expected.\"),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1473,e.DiagnosticCategory.Error,\"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473\",\"An import declaration can only be used at the top level of a module.\"),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1474,e.DiagnosticCategory.Error,\"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474\",\"An export declaration can only be used at the top level of a module.\"),Control_what_method_is_used_to_detect_module_format_JS_files:a(1475,e.DiagnosticCategory.Message,\"Control_what_method_is_used_to_detect_module_format_JS_files_1475\",\"Control what method is used to detect module-format JS files.\"),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:a(1476,e.DiagnosticCategory.Message,\"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476\",'\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),The_types_of_0_are_incompatible_between_these_types:a(2200,e.DiagnosticCategory.Error,\"The_types_of_0_are_incompatible_between_these_types_2200\",\"The types of '{0}' are incompatible between these types.\"),The_types_returned_by_0_are_incompatible_between_these_types:a(2201,e.DiagnosticCategory.Error,\"The_types_returned_by_0_are_incompatible_between_these_types_2201\",\"The types returned by '{0}' are incompatible between these types.\"),Call_signature_return_types_0_and_1_are_incompatible:a(2202,e.DiagnosticCategory.Error,\"Call_signature_return_types_0_and_1_are_incompatible_2202\",\"Call signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:a(2203,e.DiagnosticCategory.Error,\"Construct_signature_return_types_0_and_1_are_incompatible_2203\",\"Construct signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:a(2204,e.DiagnosticCategory.Error,\"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204\",\"Call signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:a(2205,e.DiagnosticCategory.Error,\"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205\",\"Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:a(2206,e.DiagnosticCategory.Error,\"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206\",\"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\"),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:a(2207,e.DiagnosticCategory.Error,\"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207\",\"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\"),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2209,e.DiagnosticCategory.Error,\"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209\",\"The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2210,e.DiagnosticCategory.Error,\"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210\",\"The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),Duplicate_identifier_0:a(2300,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_2300\",\"Duplicate identifier '{0}'.\"),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:a(2301,e.DiagnosticCategory.Error,\"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301\",\"Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),Static_members_cannot_reference_class_type_parameters:a(2302,e.DiagnosticCategory.Error,\"Static_members_cannot_reference_class_type_parameters_2302\",\"Static members cannot reference class type parameters.\"),Circular_definition_of_import_alias_0:a(2303,e.DiagnosticCategory.Error,\"Circular_definition_of_import_alias_0_2303\",\"Circular definition of import alias '{0}'.\"),Cannot_find_name_0:a(2304,e.DiagnosticCategory.Error,\"Cannot_find_name_0_2304\",\"Cannot find name '{0}'.\"),Module_0_has_no_exported_member_1:a(2305,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_2305\",\"Module '{0}' has no exported member '{1}'.\"),File_0_is_not_a_module:a(2306,e.DiagnosticCategory.Error,\"File_0_is_not_a_module_2306\",\"File '{0}' is not a module.\"),Cannot_find_module_0_or_its_corresponding_type_declarations:a(2307,e.DiagnosticCategory.Error,\"Cannot_find_module_0_or_its_corresponding_type_declarations_2307\",\"Cannot find module '{0}' or its corresponding type declarations.\"),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:a(2308,e.DiagnosticCategory.Error,\"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308\",\"Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.\"),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:a(2309,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309\",\"An export assignment cannot be used in a module with other exported elements.\"),Type_0_recursively_references_itself_as_a_base_type:a(2310,e.DiagnosticCategory.Error,\"Type_0_recursively_references_itself_as_a_base_type_2310\",\"Type '{0}' recursively references itself as a base type.\"),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:a(2311,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311\",\"Cannot find name '{0}'. Did you mean to write this in an async function?\"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2312,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312\",\"An interface can only extend an object type or intersection of object types with statically known members.\"),Type_parameter_0_has_a_circular_constraint:a(2313,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_constraint_2313\",\"Type parameter '{0}' has a circular constraint.\"),Generic_type_0_requires_1_type_argument_s:a(2314,e.DiagnosticCategory.Error,\"Generic_type_0_requires_1_type_argument_s_2314\",\"Generic type '{0}' requires {1} type argument(s).\"),Type_0_is_not_generic:a(2315,e.DiagnosticCategory.Error,\"Type_0_is_not_generic_2315\",\"Type '{0}' is not generic.\"),Global_type_0_must_be_a_class_or_interface_type:a(2316,e.DiagnosticCategory.Error,\"Global_type_0_must_be_a_class_or_interface_type_2316\",\"Global type '{0}' must be a class or interface type.\"),Global_type_0_must_have_1_type_parameter_s:a(2317,e.DiagnosticCategory.Error,\"Global_type_0_must_have_1_type_parameter_s_2317\",\"Global type '{0}' must have {1} type parameter(s).\"),Cannot_find_global_type_0:a(2318,e.DiagnosticCategory.Error,\"Cannot_find_global_type_0_2318\",\"Cannot find global type '{0}'.\"),Named_property_0_of_types_1_and_2_are_not_identical:a(2319,e.DiagnosticCategory.Error,\"Named_property_0_of_types_1_and_2_are_not_identical_2319\",\"Named property '{0}' of types '{1}' and '{2}' are not identical.\"),Interface_0_cannot_simultaneously_extend_types_1_and_2:a(2320,e.DiagnosticCategory.Error,\"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320\",\"Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.\"),Excessive_stack_depth_comparing_types_0_and_1:a(2321,e.DiagnosticCategory.Error,\"Excessive_stack_depth_comparing_types_0_and_1_2321\",\"Excessive stack depth comparing types '{0}' and '{1}'.\"),Type_0_is_not_assignable_to_type_1:a(2322,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_2322\",\"Type '{0}' is not assignable to type '{1}'.\"),Cannot_redeclare_exported_variable_0:a(2323,e.DiagnosticCategory.Error,\"Cannot_redeclare_exported_variable_0_2323\",\"Cannot redeclare exported variable '{0}'.\"),Property_0_is_missing_in_type_1:a(2324,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_2324\",\"Property '{0}' is missing in type '{1}'.\"),Property_0_is_private_in_type_1_but_not_in_type_2:a(2325,e.DiagnosticCategory.Error,\"Property_0_is_private_in_type_1_but_not_in_type_2_2325\",\"Property '{0}' is private in type '{1}' but not in type '{2}'.\"),Types_of_property_0_are_incompatible:a(2326,e.DiagnosticCategory.Error,\"Types_of_property_0_are_incompatible_2326\",\"Types of property '{0}' are incompatible.\"),Property_0_is_optional_in_type_1_but_required_in_type_2:a(2327,e.DiagnosticCategory.Error,\"Property_0_is_optional_in_type_1_but_required_in_type_2_2327\",\"Property '{0}' is optional in type '{1}' but required in type '{2}'.\"),Types_of_parameters_0_and_1_are_incompatible:a(2328,e.DiagnosticCategory.Error,\"Types_of_parameters_0_and_1_are_incompatible_2328\",\"Types of parameters '{0}' and '{1}' are incompatible.\"),Index_signature_for_type_0_is_missing_in_type_1:a(2329,e.DiagnosticCategory.Error,\"Index_signature_for_type_0_is_missing_in_type_1_2329\",\"Index signature for type '{0}' is missing in type '{1}'.\"),_0_and_1_index_signatures_are_incompatible:a(2330,e.DiagnosticCategory.Error,\"_0_and_1_index_signatures_are_incompatible_2330\",\"'{0}' and '{1}' index signatures are incompatible.\"),this_cannot_be_referenced_in_a_module_or_namespace_body:a(2331,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_module_or_namespace_body_2331\",\"'this' cannot be referenced in a module or namespace body.\"),this_cannot_be_referenced_in_current_location:a(2332,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_current_location_2332\",\"'this' cannot be referenced in current location.\"),this_cannot_be_referenced_in_constructor_arguments:a(2333,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_constructor_arguments_2333\",\"'this' cannot be referenced in constructor arguments.\"),this_cannot_be_referenced_in_a_static_property_initializer:a(2334,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_static_property_initializer_2334\",\"'this' cannot be referenced in a static property initializer.\"),super_can_only_be_referenced_in_a_derived_class:a(2335,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_a_derived_class_2335\",\"'super' can only be referenced in a derived class.\"),super_cannot_be_referenced_in_constructor_arguments:a(2336,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_constructor_arguments_2336\",\"'super' cannot be referenced in constructor arguments.\"),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:a(2337,e.DiagnosticCategory.Error,\"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337\",\"Super calls are not permitted outside constructors or in nested functions inside constructors.\"),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:a(2338,e.DiagnosticCategory.Error,\"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338\",\"'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.\"),Property_0_does_not_exist_on_type_1:a(2339,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_2339\",\"Property '{0}' does not exist on type '{1}'.\"),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:a(2340,e.DiagnosticCategory.Error,\"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340\",\"Only public and protected methods of the base class are accessible via the 'super' keyword.\"),Property_0_is_private_and_only_accessible_within_class_1:a(2341,e.DiagnosticCategory.Error,\"Property_0_is_private_and_only_accessible_within_class_1_2341\",\"Property '{0}' is private and only accessible within class '{1}'.\"),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:a(2343,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343\",\"This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.\"),Type_0_does_not_satisfy_the_constraint_1:a(2344,e.DiagnosticCategory.Error,\"Type_0_does_not_satisfy_the_constraint_1_2344\",\"Type '{0}' does not satisfy the constraint '{1}'.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:a(2345,e.DiagnosticCategory.Error,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345\",\"Argument of type '{0}' is not assignable to parameter of type '{1}'.\"),Call_target_does_not_contain_any_signatures:a(2346,e.DiagnosticCategory.Error,\"Call_target_does_not_contain_any_signatures_2346\",\"Call target does not contain any signatures.\"),Untyped_function_calls_may_not_accept_type_arguments:a(2347,e.DiagnosticCategory.Error,\"Untyped_function_calls_may_not_accept_type_arguments_2347\",\"Untyped function calls may not accept type arguments.\"),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:a(2348,e.DiagnosticCategory.Error,\"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348\",\"Value of type '{0}' is not callable. Did you mean to include 'new'?\"),This_expression_is_not_callable:a(2349,e.DiagnosticCategory.Error,\"This_expression_is_not_callable_2349\",\"This expression is not callable.\"),Only_a_void_function_can_be_called_with_the_new_keyword:a(2350,e.DiagnosticCategory.Error,\"Only_a_void_function_can_be_called_with_the_new_keyword_2350\",\"Only a void function can be called with the 'new' keyword.\"),This_expression_is_not_constructable:a(2351,e.DiagnosticCategory.Error,\"This_expression_is_not_constructable_2351\",\"This expression is not constructable.\"),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:a(2352,e.DiagnosticCategory.Error,\"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352\",\"Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\"),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:a(2353,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353\",\"Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.\"),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:a(2354,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354\",\"This syntax requires an imported helper but module '{0}' cannot be found.\"),A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value:a(2355,e.DiagnosticCategory.Error,\"A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_2355\",\"A function whose declared type is neither 'void' nor 'any' must return a value.\"),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:a(2356,e.DiagnosticCategory.Error,\"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356\",\"An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.\"),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:a(2357,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357\",\"The operand of an increment or decrement operator must be a variable or a property access.\"),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:a(2358,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358\",\"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.\"),The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type:a(2359,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359\",\"The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.\"),The_left_hand_side_of_an_in_expression_must_be_a_private_identifier_or_of_type_any_string_number_or_symbol:a(2360,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_in_expression_must_be_a_private_identifier_or_of_type_any_string_number_or__2360\",\"The left-hand side of an 'in' expression must be a private identifier or of type 'any', 'string', 'number', or 'symbol'.\"),The_right_hand_side_of_an_in_expression_must_not_be_a_primitive:a(2361,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_in_expression_must_not_be_a_primitive_2361\",\"The right-hand side of an 'in' expression must not be a primitive.\"),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:a(2362,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362\",\"The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:a(2363,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363\",\"The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:a(2364,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364\",\"The left-hand side of an assignment expression must be a variable or a property access.\"),Operator_0_cannot_be_applied_to_types_1_and_2:a(2365,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_types_1_and_2_2365\",\"Operator '{0}' cannot be applied to types '{1}' and '{2}'.\"),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:a(2366,e.DiagnosticCategory.Error,\"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366\",\"Function lacks ending return statement and return type does not include 'undefined'.\"),This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap:a(2367,e.DiagnosticCategory.Error,\"This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap_2367\",\"This condition will always return '{0}' since the types '{1}' and '{2}' have no overlap.\"),Type_parameter_name_cannot_be_0:a(2368,e.DiagnosticCategory.Error,\"Type_parameter_name_cannot_be_0_2368\",\"Type parameter name cannot be '{0}'.\"),A_parameter_property_is_only_allowed_in_a_constructor_implementation:a(2369,e.DiagnosticCategory.Error,\"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369\",\"A parameter property is only allowed in a constructor implementation.\"),A_rest_parameter_must_be_of_an_array_type:a(2370,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_of_an_array_type_2370\",\"A rest parameter must be of an array type.\"),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:a(2371,e.DiagnosticCategory.Error,\"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371\",\"A parameter initializer is only allowed in a function or constructor implementation.\"),Parameter_0_cannot_reference_itself:a(2372,e.DiagnosticCategory.Error,\"Parameter_0_cannot_reference_itself_2372\",\"Parameter '{0}' cannot reference itself.\"),Parameter_0_cannot_reference_identifier_1_declared_after_it:a(2373,e.DiagnosticCategory.Error,\"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373\",\"Parameter '{0}' cannot reference identifier '{1}' declared after it.\"),Duplicate_index_signature_for_type_0:a(2374,e.DiagnosticCategory.Error,\"Duplicate_index_signature_for_type_0_2374\",\"Duplicate index signature for type '{0}'.\"),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2375,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375\",\"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:a(2376,e.DiagnosticCategory.Error,\"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376\",\"A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.\"),Constructors_for_derived_classes_must_contain_a_super_call:a(2377,e.DiagnosticCategory.Error,\"Constructors_for_derived_classes_must_contain_a_super_call_2377\",\"Constructors for derived classes must contain a 'super' call.\"),A_get_accessor_must_return_a_value:a(2378,e.DiagnosticCategory.Error,\"A_get_accessor_must_return_a_value_2378\",\"A 'get' accessor must return a value.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2379,e.DiagnosticCategory.Error,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379\",\"Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type:a(2380,e.DiagnosticCategory.Error,\"The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type_2380\",\"The return type of a 'get' accessor must be assignable to its 'set' accessor type\"),Overload_signatures_must_all_be_exported_or_non_exported:a(2383,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_exported_or_non_exported_2383\",\"Overload signatures must all be exported or non-exported.\"),Overload_signatures_must_all_be_ambient_or_non_ambient:a(2384,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_ambient_or_non_ambient_2384\",\"Overload signatures must all be ambient or non-ambient.\"),Overload_signatures_must_all_be_public_private_or_protected:a(2385,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_public_private_or_protected_2385\",\"Overload signatures must all be public, private or protected.\"),Overload_signatures_must_all_be_optional_or_required:a(2386,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_optional_or_required_2386\",\"Overload signatures must all be optional or required.\"),Function_overload_must_be_static:a(2387,e.DiagnosticCategory.Error,\"Function_overload_must_be_static_2387\",\"Function overload must be static.\"),Function_overload_must_not_be_static:a(2388,e.DiagnosticCategory.Error,\"Function_overload_must_not_be_static_2388\",\"Function overload must not be static.\"),Function_implementation_name_must_be_0:a(2389,e.DiagnosticCategory.Error,\"Function_implementation_name_must_be_0_2389\",\"Function implementation name must be '{0}'.\"),Constructor_implementation_is_missing:a(2390,e.DiagnosticCategory.Error,\"Constructor_implementation_is_missing_2390\",\"Constructor implementation is missing.\"),Function_implementation_is_missing_or_not_immediately_following_the_declaration:a(2391,e.DiagnosticCategory.Error,\"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391\",\"Function implementation is missing or not immediately following the declaration.\"),Multiple_constructor_implementations_are_not_allowed:a(2392,e.DiagnosticCategory.Error,\"Multiple_constructor_implementations_are_not_allowed_2392\",\"Multiple constructor implementations are not allowed.\"),Duplicate_function_implementation:a(2393,e.DiagnosticCategory.Error,\"Duplicate_function_implementation_2393\",\"Duplicate function implementation.\"),This_overload_signature_is_not_compatible_with_its_implementation_signature:a(2394,e.DiagnosticCategory.Error,\"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394\",\"This overload signature is not compatible with its implementation signature.\"),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:a(2395,e.DiagnosticCategory.Error,\"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395\",\"Individual declarations in merged declaration '{0}' must be all exported or all local.\"),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:a(2396,e.DiagnosticCategory.Error,\"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396\",\"Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.\"),Declaration_name_conflicts_with_built_in_global_identifier_0:a(2397,e.DiagnosticCategory.Error,\"Declaration_name_conflicts_with_built_in_global_identifier_0_2397\",\"Declaration name conflicts with built-in global identifier '{0}'.\"),constructor_cannot_be_used_as_a_parameter_property_name:a(2398,e.DiagnosticCategory.Error,\"constructor_cannot_be_used_as_a_parameter_property_name_2398\",\"'constructor' cannot be used as a parameter property name.\"),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:a(2399,e.DiagnosticCategory.Error,\"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399\",\"Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.\"),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:a(2400,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400\",\"Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.\"),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:a(2401,e.DiagnosticCategory.Error,\"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401\",\"A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.\"),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:a(2402,e.DiagnosticCategory.Error,\"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402\",\"Expression resolves to '_super' that compiler uses to capture base class reference.\"),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:a(2403,e.DiagnosticCategory.Error,\"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403\",\"Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.\"),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:a(2404,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404\",\"The left-hand side of a 'for...in' statement cannot use a type annotation.\"),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:a(2405,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405\",\"The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.\"),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:a(2406,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406\",\"The left-hand side of a 'for...in' statement must be a variable or a property access.\"),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:a(2407,e.DiagnosticCategory.Error,\"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407\",\"The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.\"),Setters_cannot_return_a_value:a(2408,e.DiagnosticCategory.Error,\"Setters_cannot_return_a_value_2408\",\"Setters cannot return a value.\"),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:a(2409,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409\",\"Return type of constructor signature must be assignable to the instance type of the class.\"),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:a(2410,e.DiagnosticCategory.Error,\"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410\",\"The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.\"),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:a(2412,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412\",\"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.\"),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:a(2411,e.DiagnosticCategory.Error,\"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411\",\"Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.\"),_0_index_type_1_is_not_assignable_to_2_index_type_3:a(2413,e.DiagnosticCategory.Error,\"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413\",\"'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.\"),Class_name_cannot_be_0:a(2414,e.DiagnosticCategory.Error,\"Class_name_cannot_be_0_2414\",\"Class name cannot be '{0}'.\"),Class_0_incorrectly_extends_base_class_1:a(2415,e.DiagnosticCategory.Error,\"Class_0_incorrectly_extends_base_class_1_2415\",\"Class '{0}' incorrectly extends base class '{1}'.\"),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:a(2416,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416\",\"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.\"),Class_static_side_0_incorrectly_extends_base_class_static_side_1:a(2417,e.DiagnosticCategory.Error,\"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417\",\"Class static side '{0}' incorrectly extends base class static side '{1}'.\"),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:a(2418,e.DiagnosticCategory.Error,\"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418\",\"Type of computed property's value is '{0}', which is not assignable to type '{1}'.\"),Types_of_construct_signatures_are_incompatible:a(2419,e.DiagnosticCategory.Error,\"Types_of_construct_signatures_are_incompatible_2419\",\"Types of construct signatures are incompatible.\"),Class_0_incorrectly_implements_interface_1:a(2420,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_interface_1_2420\",\"Class '{0}' incorrectly implements interface '{1}'.\"),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2422,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422\",\"A class can only implement an object type or intersection of object types with statically known members.\"),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:a(2423,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423\",\"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.\"),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:a(2425,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425\",\"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.\"),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:a(2426,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426\",\"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.\"),Interface_name_cannot_be_0:a(2427,e.DiagnosticCategory.Error,\"Interface_name_cannot_be_0_2427\",\"Interface name cannot be '{0}'.\"),All_declarations_of_0_must_have_identical_type_parameters:a(2428,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_type_parameters_2428\",\"All declarations of '{0}' must have identical type parameters.\"),Interface_0_incorrectly_extends_interface_1:a(2430,e.DiagnosticCategory.Error,\"Interface_0_incorrectly_extends_interface_1_2430\",\"Interface '{0}' incorrectly extends interface '{1}'.\"),Enum_name_cannot_be_0:a(2431,e.DiagnosticCategory.Error,\"Enum_name_cannot_be_0_2431\",\"Enum name cannot be '{0}'.\"),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:a(2432,e.DiagnosticCategory.Error,\"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432\",\"In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.\"),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:a(2433,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433\",\"A namespace declaration cannot be in a different file from a class or function with which it is merged.\"),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:a(2434,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434\",\"A namespace declaration cannot be located prior to a class or function with which it is merged.\"),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:a(2435,e.DiagnosticCategory.Error,\"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435\",\"Ambient modules cannot be nested in other modules or namespaces.\"),Ambient_module_declaration_cannot_specify_relative_module_name:a(2436,e.DiagnosticCategory.Error,\"Ambient_module_declaration_cannot_specify_relative_module_name_2436\",\"Ambient module declaration cannot specify relative module name.\"),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:a(2437,e.DiagnosticCategory.Error,\"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437\",\"Module '{0}' is hidden by a local declaration with the same name.\"),Import_name_cannot_be_0:a(2438,e.DiagnosticCategory.Error,\"Import_name_cannot_be_0_2438\",\"Import name cannot be '{0}'.\"),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:a(2439,e.DiagnosticCategory.Error,\"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439\",\"Import or export declaration in an ambient module declaration cannot reference module through relative module name.\"),Import_declaration_conflicts_with_local_declaration_of_0:a(2440,e.DiagnosticCategory.Error,\"Import_declaration_conflicts_with_local_declaration_of_0_2440\",\"Import declaration conflicts with local declaration of '{0}'.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:a(2441,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.\"),Types_have_separate_declarations_of_a_private_property_0:a(2442,e.DiagnosticCategory.Error,\"Types_have_separate_declarations_of_a_private_property_0_2442\",\"Types have separate declarations of a private property '{0}'.\"),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:a(2443,e.DiagnosticCategory.Error,\"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443\",\"Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.\"),Property_0_is_protected_in_type_1_but_public_in_type_2:a(2444,e.DiagnosticCategory.Error,\"Property_0_is_protected_in_type_1_but_public_in_type_2_2444\",\"Property '{0}' is protected in type '{1}' but public in type '{2}'.\"),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:a(2445,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445\",\"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.\"),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:a(2446,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446\",\"Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.\"),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:a(2447,e.DiagnosticCategory.Error,\"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447\",\"The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.\"),Block_scoped_variable_0_used_before_its_declaration:a(2448,e.DiagnosticCategory.Error,\"Block_scoped_variable_0_used_before_its_declaration_2448\",\"Block-scoped variable '{0}' used before its declaration.\"),Class_0_used_before_its_declaration:a(2449,e.DiagnosticCategory.Error,\"Class_0_used_before_its_declaration_2449\",\"Class '{0}' used before its declaration.\"),Enum_0_used_before_its_declaration:a(2450,e.DiagnosticCategory.Error,\"Enum_0_used_before_its_declaration_2450\",\"Enum '{0}' used before its declaration.\"),Cannot_redeclare_block_scoped_variable_0:a(2451,e.DiagnosticCategory.Error,\"Cannot_redeclare_block_scoped_variable_0_2451\",\"Cannot redeclare block-scoped variable '{0}'.\"),An_enum_member_cannot_have_a_numeric_name:a(2452,e.DiagnosticCategory.Error,\"An_enum_member_cannot_have_a_numeric_name_2452\",\"An enum member cannot have a numeric name.\"),Variable_0_is_used_before_being_assigned:a(2454,e.DiagnosticCategory.Error,\"Variable_0_is_used_before_being_assigned_2454\",\"Variable '{0}' is used before being assigned.\"),Type_alias_0_circularly_references_itself:a(2456,e.DiagnosticCategory.Error,\"Type_alias_0_circularly_references_itself_2456\",\"Type alias '{0}' circularly references itself.\"),Type_alias_name_cannot_be_0:a(2457,e.DiagnosticCategory.Error,\"Type_alias_name_cannot_be_0_2457\",\"Type alias name cannot be '{0}'.\"),An_AMD_module_cannot_have_multiple_name_assignments:a(2458,e.DiagnosticCategory.Error,\"An_AMD_module_cannot_have_multiple_name_assignments_2458\",\"An AMD module cannot have multiple name assignments.\"),Module_0_declares_1_locally_but_it_is_not_exported:a(2459,e.DiagnosticCategory.Error,\"Module_0_declares_1_locally_but_it_is_not_exported_2459\",\"Module '{0}' declares '{1}' locally, but it is not exported.\"),Module_0_declares_1_locally_but_it_is_exported_as_2:a(2460,e.DiagnosticCategory.Error,\"Module_0_declares_1_locally_but_it_is_exported_as_2_2460\",\"Module '{0}' declares '{1}' locally, but it is exported as '{2}'.\"),Type_0_is_not_an_array_type:a(2461,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_2461\",\"Type '{0}' is not an array type.\"),A_rest_element_must_be_last_in_a_destructuring_pattern:a(2462,e.DiagnosticCategory.Error,\"A_rest_element_must_be_last_in_a_destructuring_pattern_2462\",\"A rest element must be last in a destructuring pattern.\"),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:a(2463,e.DiagnosticCategory.Error,\"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463\",\"A binding pattern parameter cannot be optional in an implementation signature.\"),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:a(2464,e.DiagnosticCategory.Error,\"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464\",\"A computed property name must be of type 'string', 'number', 'symbol', or 'any'.\"),this_cannot_be_referenced_in_a_computed_property_name:a(2465,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_computed_property_name_2465\",\"'this' cannot be referenced in a computed property name.\"),super_cannot_be_referenced_in_a_computed_property_name:a(2466,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_a_computed_property_name_2466\",\"'super' cannot be referenced in a computed property name.\"),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:a(2467,e.DiagnosticCategory.Error,\"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467\",\"A computed property name cannot reference a type parameter from its containing type.\"),Cannot_find_global_value_0:a(2468,e.DiagnosticCategory.Error,\"Cannot_find_global_value_0_2468\",\"Cannot find global value '{0}'.\"),The_0_operator_cannot_be_applied_to_type_symbol:a(2469,e.DiagnosticCategory.Error,\"The_0_operator_cannot_be_applied_to_type_symbol_2469\",\"The '{0}' operator cannot be applied to type 'symbol'.\"),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:a(2472,e.DiagnosticCategory.Error,\"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472\",\"Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.\"),Enum_declarations_must_all_be_const_or_non_const:a(2473,e.DiagnosticCategory.Error,\"Enum_declarations_must_all_be_const_or_non_const_2473\",\"Enum declarations must all be const or non-const.\"),const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values:a(2474,e.DiagnosticCategory.Error,\"const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values_2474\",\"const enum member initializers can only contain literal values and other computed enum values.\"),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:a(2475,e.DiagnosticCategory.Error,\"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475\",\"'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.\"),A_const_enum_member_can_only_be_accessed_using_a_string_literal:a(2476,e.DiagnosticCategory.Error,\"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476\",\"A const enum member can only be accessed using a string literal.\"),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:a(2477,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477\",\"'const' enum member initializer was evaluated to a non-finite value.\"),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:a(2478,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478\",\"'const' enum member initializer was evaluated to disallowed value 'NaN'.\"),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:a(2480,e.DiagnosticCategory.Error,\"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480\",\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:a(2481,e.DiagnosticCategory.Error,\"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481\",\"Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.\"),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:a(2483,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483\",\"The left-hand side of a 'for...of' statement cannot use a type annotation.\"),Export_declaration_conflicts_with_exported_declaration_of_0:a(2484,e.DiagnosticCategory.Error,\"Export_declaration_conflicts_with_exported_declaration_of_0_2484\",\"Export declaration conflicts with exported declaration of '{0}'.\"),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:a(2487,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487\",\"The left-hand side of a 'for...of' statement must be a variable or a property access.\"),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2488,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488\",\"Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.\"),An_iterator_must_have_a_next_method:a(2489,e.DiagnosticCategory.Error,\"An_iterator_must_have_a_next_method_2489\",\"An iterator must have a 'next()' method.\"),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:a(2490,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490\",\"The type returned by the '{0}()' method of an iterator must have a 'value' property.\"),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:a(2491,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491\",\"The left-hand side of a 'for...in' statement cannot be a destructuring pattern.\"),Cannot_redeclare_identifier_0_in_catch_clause:a(2492,e.DiagnosticCategory.Error,\"Cannot_redeclare_identifier_0_in_catch_clause_2492\",\"Cannot redeclare identifier '{0}' in catch clause.\"),Tuple_type_0_of_length_1_has_no_element_at_index_2:a(2493,e.DiagnosticCategory.Error,\"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493\",\"Tuple type '{0}' of length '{1}' has no element at index '{2}'.\"),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:a(2494,e.DiagnosticCategory.Error,\"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494\",\"Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.\"),Type_0_is_not_an_array_type_or_a_string_type:a(2495,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_2495\",\"Type '{0}' is not an array type or a string type.\"),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression:a(2496,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496\",\"The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression.\"),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:a(2497,e.DiagnosticCategory.Error,\"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497\",\"This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.\"),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:a(2498,e.DiagnosticCategory.Error,\"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498\",\"Module '{0}' uses 'export =' and cannot be used with 'export *'.\"),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:a(2499,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499\",\"An interface can only extend an identifier/qualified-name with optional type arguments.\"),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:a(2500,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500\",\"A class can only implement an identifier/qualified-name with optional type arguments.\"),A_rest_element_cannot_contain_a_binding_pattern:a(2501,e.DiagnosticCategory.Error,\"A_rest_element_cannot_contain_a_binding_pattern_2501\",\"A rest element cannot contain a binding pattern.\"),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:a(2502,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502\",\"'{0}' is referenced directly or indirectly in its own type annotation.\"),Cannot_find_namespace_0:a(2503,e.DiagnosticCategory.Error,\"Cannot_find_namespace_0_2503\",\"Cannot find namespace '{0}'.\"),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:a(2504,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504\",\"Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"),A_generator_cannot_have_a_void_type_annotation:a(2505,e.DiagnosticCategory.Error,\"A_generator_cannot_have_a_void_type_annotation_2505\",\"A generator cannot have a 'void' type annotation.\"),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:a(2506,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506\",\"'{0}' is referenced directly or indirectly in its own base expression.\"),Type_0_is_not_a_constructor_function_type:a(2507,e.DiagnosticCategory.Error,\"Type_0_is_not_a_constructor_function_type_2507\",\"Type '{0}' is not a constructor function type.\"),No_base_constructor_has_the_specified_number_of_type_arguments:a(2508,e.DiagnosticCategory.Error,\"No_base_constructor_has_the_specified_number_of_type_arguments_2508\",\"No base constructor has the specified number of type arguments.\"),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2509,e.DiagnosticCategory.Error,\"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509\",\"Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.\"),Base_constructors_must_all_have_the_same_return_type:a(2510,e.DiagnosticCategory.Error,\"Base_constructors_must_all_have_the_same_return_type_2510\",\"Base constructors must all have the same return type.\"),Cannot_create_an_instance_of_an_abstract_class:a(2511,e.DiagnosticCategory.Error,\"Cannot_create_an_instance_of_an_abstract_class_2511\",\"Cannot create an instance of an abstract class.\"),Overload_signatures_must_all_be_abstract_or_non_abstract:a(2512,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_abstract_or_non_abstract_2512\",\"Overload signatures must all be abstract or non-abstract.\"),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:a(2513,e.DiagnosticCategory.Error,\"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513\",\"Abstract method '{0}' in class '{1}' cannot be accessed via super expression.\"),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:a(2515,e.DiagnosticCategory.Error,\"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515\",\"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'.\"),All_declarations_of_an_abstract_method_must_be_consecutive:a(2516,e.DiagnosticCategory.Error,\"All_declarations_of_an_abstract_method_must_be_consecutive_2516\",\"All declarations of an abstract method must be consecutive.\"),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:a(2517,e.DiagnosticCategory.Error,\"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517\",\"Cannot assign an abstract constructor type to a non-abstract constructor type.\"),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:a(2518,e.DiagnosticCategory.Error,\"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518\",\"A 'this'-based type guard is not compatible with a parameter-based type guard.\"),An_async_iterator_must_have_a_next_method:a(2519,e.DiagnosticCategory.Error,\"An_async_iterator_must_have_a_next_method_2519\",\"An async iterator must have a 'next()' method.\"),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:a(2520,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520\",\"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.\"),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method:a(2522,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522\",\"The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method.\"),yield_expressions_cannot_be_used_in_a_parameter_initializer:a(2523,e.DiagnosticCategory.Error,\"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523\",\"'yield' expressions cannot be used in a parameter initializer.\"),await_expressions_cannot_be_used_in_a_parameter_initializer:a(2524,e.DiagnosticCategory.Error,\"await_expressions_cannot_be_used_in_a_parameter_initializer_2524\",\"'await' expressions cannot be used in a parameter initializer.\"),Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value:a(2525,e.DiagnosticCategory.Error,\"Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525\",\"Initializer provides no value for this binding element and the binding element has no default value.\"),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:a(2526,e.DiagnosticCategory.Error,\"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526\",\"A 'this' type is available only in a non-static member of a class or interface.\"),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:a(2527,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527\",\"The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.\"),A_module_cannot_have_multiple_default_exports:a(2528,e.DiagnosticCategory.Error,\"A_module_cannot_have_multiple_default_exports_2528\",\"A module cannot have multiple default exports.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:a(2529,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.\"),Property_0_is_incompatible_with_index_signature:a(2530,e.DiagnosticCategory.Error,\"Property_0_is_incompatible_with_index_signature_2530\",\"Property '{0}' is incompatible with index signature.\"),Object_is_possibly_null:a(2531,e.DiagnosticCategory.Error,\"Object_is_possibly_null_2531\",\"Object is possibly 'null'.\"),Object_is_possibly_undefined:a(2532,e.DiagnosticCategory.Error,\"Object_is_possibly_undefined_2532\",\"Object is possibly 'undefined'.\"),Object_is_possibly_null_or_undefined:a(2533,e.DiagnosticCategory.Error,\"Object_is_possibly_null_or_undefined_2533\",\"Object is possibly 'null' or 'undefined'.\"),A_function_returning_never_cannot_have_a_reachable_end_point:a(2534,e.DiagnosticCategory.Error,\"A_function_returning_never_cannot_have_a_reachable_end_point_2534\",\"A function returning 'never' cannot have a reachable end point.\"),Enum_type_0_has_members_with_initializers_that_are_not_literals:a(2535,e.DiagnosticCategory.Error,\"Enum_type_0_has_members_with_initializers_that_are_not_literals_2535\",\"Enum type '{0}' has members with initializers that are not literals.\"),Type_0_cannot_be_used_to_index_type_1:a(2536,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_to_index_type_1_2536\",\"Type '{0}' cannot be used to index type '{1}'.\"),Type_0_has_no_matching_index_signature_for_type_1:a(2537,e.DiagnosticCategory.Error,\"Type_0_has_no_matching_index_signature_for_type_1_2537\",\"Type '{0}' has no matching index signature for type '{1}'.\"),Type_0_cannot_be_used_as_an_index_type:a(2538,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_as_an_index_type_2538\",\"Type '{0}' cannot be used as an index type.\"),Cannot_assign_to_0_because_it_is_not_a_variable:a(2539,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_not_a_variable_2539\",\"Cannot assign to '{0}' because it is not a variable.\"),Cannot_assign_to_0_because_it_is_a_read_only_property:a(2540,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_read_only_property_2540\",\"Cannot assign to '{0}' because it is a read-only property.\"),Index_signature_in_type_0_only_permits_reading:a(2542,e.DiagnosticCategory.Error,\"Index_signature_in_type_0_only_permits_reading_2542\",\"Index signature in type '{0}' only permits reading.\"),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:a(2543,e.DiagnosticCategory.Error,\"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543\",\"Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.\"),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:a(2544,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544\",\"Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.\"),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:a(2545,e.DiagnosticCategory.Error,\"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545\",\"A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:a(2547,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547\",\"The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.\"),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2548,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548\",\"Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2549,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549\",\"Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:a(2550,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550\",\"Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_2:a(2551,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551\",\"Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?\"),Cannot_find_name_0_Did_you_mean_1:a(2552,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_1_2552\",\"Cannot find name '{0}'. Did you mean '{1}'?\"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:a(2553,e.DiagnosticCategory.Error,\"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553\",\"Computed values are not permitted in an enum with string valued members.\"),Expected_0_arguments_but_got_1:a(2554,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_2554\",\"Expected {0} arguments, but got {1}.\"),Expected_at_least_0_arguments_but_got_1:a(2555,e.DiagnosticCategory.Error,\"Expected_at_least_0_arguments_but_got_1_2555\",\"Expected at least {0} arguments, but got {1}.\"),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:a(2556,e.DiagnosticCategory.Error,\"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556\",\"A spread argument must either have a tuple type or be passed to a rest parameter.\"),Expected_0_type_arguments_but_got_1:a(2558,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_but_got_1_2558\",\"Expected {0} type arguments, but got {1}.\"),Type_0_has_no_properties_in_common_with_type_1:a(2559,e.DiagnosticCategory.Error,\"Type_0_has_no_properties_in_common_with_type_1_2559\",\"Type '{0}' has no properties in common with type '{1}'.\"),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:a(2560,e.DiagnosticCategory.Error,\"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560\",\"Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?\"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:a(2561,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561\",\"Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?\"),Base_class_expressions_cannot_reference_class_type_parameters:a(2562,e.DiagnosticCategory.Error,\"Base_class_expressions_cannot_reference_class_type_parameters_2562\",\"Base class expressions cannot reference class type parameters.\"),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:a(2563,e.DiagnosticCategory.Error,\"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563\",\"The containing function or module body is too large for control flow analysis.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:a(2564,e.DiagnosticCategory.Error,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564\",\"Property '{0}' has no initializer and is not definitely assigned in the constructor.\"),Property_0_is_used_before_being_assigned:a(2565,e.DiagnosticCategory.Error,\"Property_0_is_used_before_being_assigned_2565\",\"Property '{0}' is used before being assigned.\"),A_rest_element_cannot_have_a_property_name:a(2566,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_a_property_name_2566\",\"A rest element cannot have a property name.\"),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:a(2567,e.DiagnosticCategory.Error,\"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567\",\"Enum declarations can only merge with namespace or other enum declarations.\"),Property_0_may_not_exist_on_type_1_Did_you_mean_2:a(2568,e.DiagnosticCategory.Error,\"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568\",\"Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?\"),Could_not_find_name_0_Did_you_mean_1:a(2570,e.DiagnosticCategory.Error,\"Could_not_find_name_0_Did_you_mean_1_2570\",\"Could not find name '{0}'. Did you mean '{1}'?\"),Object_is_of_type_unknown:a(2571,e.DiagnosticCategory.Error,\"Object_is_of_type_unknown_2571\",\"Object is of type 'unknown'.\"),A_rest_element_type_must_be_an_array_type:a(2574,e.DiagnosticCategory.Error,\"A_rest_element_type_must_be_an_array_type_2574\",\"A rest element type must be an array type.\"),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:a(2575,e.DiagnosticCategory.Error,\"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575\",\"No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:a(2576,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576\",\"Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?\"),Return_type_annotation_circularly_references_itself:a(2577,e.DiagnosticCategory.Error,\"Return_type_annotation_circularly_references_itself_2577\",\"Return type annotation circularly references itself.\"),Unused_ts_expect_error_directive:a(2578,e.DiagnosticCategory.Error,\"Unused_ts_expect_error_directive_2578\",\"Unused '@ts-expect-error' directive.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:a(2580,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:a(2581,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:a(2582,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:a(2583,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:a(2584,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:a(2585,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585\",\"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.\"),Cannot_assign_to_0_because_it_is_a_constant:a(2588,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_constant_2588\",\"Cannot assign to '{0}' because it is a constant.\"),Type_instantiation_is_excessively_deep_and_possibly_infinite:a(2589,e.DiagnosticCategory.Error,\"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589\",\"Type instantiation is excessively deep and possibly infinite.\"),Expression_produces_a_union_type_that_is_too_complex_to_represent:a(2590,e.DiagnosticCategory.Error,\"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590\",\"Expression produces a union type that is too complex to represent.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:a(2591,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:a(2592,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:a(2593,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.\"),This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:a(2594,e.DiagnosticCategory.Error,\"This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the__2594\",\"This module is declared with using 'export =', and can only be used with a default import when using the '{0}' flag.\"),_0_can_only_be_imported_by_using_a_default_import:a(2595,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_a_default_import_2595\",\"'{0}' can only be imported by using a default import.\"),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2596,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596\",\"'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.\"),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:a(2597,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597\",\"'{0}' can only be imported by using a 'require' call or by using a default import.\"),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2598,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598\",\"'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.\"),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:a(2602,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602\",\"JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.\"),Property_0_in_type_1_is_not_assignable_to_type_2:a(2603,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_type_2_2603\",\"Property '{0}' in type '{1}' is not assignable to type '{2}'.\"),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:a(2604,e.DiagnosticCategory.Error,\"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604\",\"JSX element type '{0}' does not have any construct or call signatures.\"),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:a(2606,e.DiagnosticCategory.Error,\"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606\",\"Property '{0}' of JSX spread attribute is not assignable to target property.\"),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:a(2607,e.DiagnosticCategory.Error,\"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607\",\"JSX element class does not support attributes because it does not have a '{0}' property.\"),The_global_type_JSX_0_may_not_have_more_than_one_property:a(2608,e.DiagnosticCategory.Error,\"The_global_type_JSX_0_may_not_have_more_than_one_property_2608\",\"The global type 'JSX.{0}' may not have more than one property.\"),JSX_spread_child_must_be_an_array_type:a(2609,e.DiagnosticCategory.Error,\"JSX_spread_child_must_be_an_array_type_2609\",\"JSX spread child must be an array type.\"),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:a(2610,e.DiagnosticCategory.Error,\"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610\",\"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.\"),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:a(2611,e.DiagnosticCategory.Error,\"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611\",\"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.\"),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:a(2612,e.DiagnosticCategory.Error,\"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612\",\"Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.\"),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:a(2613,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613\",\"Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?\"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:a(2614,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614\",\"Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?\"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:a(2615,e.DiagnosticCategory.Error,\"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615\",\"Type of property '{0}' circularly references itself in mapped type '{1}'.\"),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:a(2616,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616\",\"'{0}' can only be imported by using 'import {1} = require({2})' or a default import.\"),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2617,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617\",\"'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.\"),Source_has_0_element_s_but_target_requires_1:a(2618,e.DiagnosticCategory.Error,\"Source_has_0_element_s_but_target_requires_1_2618\",\"Source has {0} element(s) but target requires {1}.\"),Source_has_0_element_s_but_target_allows_only_1:a(2619,e.DiagnosticCategory.Error,\"Source_has_0_element_s_but_target_allows_only_1_2619\",\"Source has {0} element(s) but target allows only {1}.\"),Target_requires_0_element_s_but_source_may_have_fewer:a(2620,e.DiagnosticCategory.Error,\"Target_requires_0_element_s_but_source_may_have_fewer_2620\",\"Target requires {0} element(s) but source may have fewer.\"),Target_allows_only_0_element_s_but_source_may_have_more:a(2621,e.DiagnosticCategory.Error,\"Target_allows_only_0_element_s_but_source_may_have_more_2621\",\"Target allows only {0} element(s) but source may have more.\"),Source_provides_no_match_for_required_element_at_position_0_in_target:a(2623,e.DiagnosticCategory.Error,\"Source_provides_no_match_for_required_element_at_position_0_in_target_2623\",\"Source provides no match for required element at position {0} in target.\"),Source_provides_no_match_for_variadic_element_at_position_0_in_target:a(2624,e.DiagnosticCategory.Error,\"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624\",\"Source provides no match for variadic element at position {0} in target.\"),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:a(2625,e.DiagnosticCategory.Error,\"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625\",\"Variadic element at position {0} in source does not match element at position {1} in target.\"),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:a(2626,e.DiagnosticCategory.Error,\"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626\",\"Type at position {0} in source is not compatible with type at position {1} in target.\"),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:a(2627,e.DiagnosticCategory.Error,\"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627\",\"Type at positions {0} through {1} in source is not compatible with type at position {2} in target.\"),Cannot_assign_to_0_because_it_is_an_enum:a(2628,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_an_enum_2628\",\"Cannot assign to '{0}' because it is an enum.\"),Cannot_assign_to_0_because_it_is_a_class:a(2629,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_class_2629\",\"Cannot assign to '{0}' because it is a class.\"),Cannot_assign_to_0_because_it_is_a_function:a(2630,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_function_2630\",\"Cannot assign to '{0}' because it is a function.\"),Cannot_assign_to_0_because_it_is_a_namespace:a(2631,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_namespace_2631\",\"Cannot assign to '{0}' because it is a namespace.\"),Cannot_assign_to_0_because_it_is_an_import:a(2632,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_an_import_2632\",\"Cannot assign to '{0}' because it is an import.\"),JSX_property_access_expressions_cannot_include_JSX_namespace_names:a(2633,e.DiagnosticCategory.Error,\"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633\",\"JSX property access expressions cannot include JSX namespace names\"),_0_index_signatures_are_incompatible:a(2634,e.DiagnosticCategory.Error,\"_0_index_signatures_are_incompatible_2634\",\"'{0}' index signatures are incompatible.\"),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:a(2635,e.DiagnosticCategory.Error,\"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635\",\"Type '{0}' has no signatures for which the type argument list is applicable.\"),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:a(2636,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636\",\"Type '{0}' is not assignable to type '{1}' as implied by variance annotation.\"),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:a(2637,e.DiagnosticCategory.Error,\"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637\",\"Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.\"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:a(2649,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649\",\"Cannot augment module '{0}' with value exports because it resolves to a non-module entity.\"),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:a(2651,e.DiagnosticCategory.Error,\"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651\",\"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.\"),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:a(2652,e.DiagnosticCategory.Error,\"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652\",\"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.\"),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:a(2653,e.DiagnosticCategory.Error,\"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653\",\"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.\"),JSX_expressions_must_have_one_parent_element:a(2657,e.DiagnosticCategory.Error,\"JSX_expressions_must_have_one_parent_element_2657\",\"JSX expressions must have one parent element.\"),Type_0_provides_no_match_for_the_signature_1:a(2658,e.DiagnosticCategory.Error,\"Type_0_provides_no_match_for_the_signature_1_2658\",\"Type '{0}' provides no match for the signature '{1}'.\"),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:a(2659,e.DiagnosticCategory.Error,\"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659\",\"'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.\"),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:a(2660,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660\",\"'super' can only be referenced in members of derived classes or object literal expressions.\"),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:a(2661,e.DiagnosticCategory.Error,\"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661\",\"Cannot export '{0}'. Only local declarations can be exported from a module.\"),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:a(2662,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662\",\"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?\"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:a(2663,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663\",\"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?\"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:a(2664,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664\",\"Invalid module name in augmentation, module '{0}' cannot be found.\"),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:a(2665,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665\",\"Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.\"),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:a(2666,e.DiagnosticCategory.Error,\"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666\",\"Exports and export assignments are not permitted in module augmentations.\"),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:a(2667,e.DiagnosticCategory.Error,\"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667\",\"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.\"),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:a(2668,e.DiagnosticCategory.Error,\"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668\",\"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.\"),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:a(2669,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669\",\"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:a(2670,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670\",\"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.\"),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:a(2671,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671\",\"Cannot augment module '{0}' because it resolves to a non-module entity.\"),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:a(2672,e.DiagnosticCategory.Error,\"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672\",\"Cannot assign a '{0}' constructor type to a '{1}' constructor type.\"),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:a(2673,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673\",\"Constructor of class '{0}' is private and only accessible within the class declaration.\"),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:a(2674,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674\",\"Constructor of class '{0}' is protected and only accessible within the class declaration.\"),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:a(2675,e.DiagnosticCategory.Error,\"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675\",\"Cannot extend a class '{0}'. Class constructor is marked as private.\"),Accessors_must_both_be_abstract_or_non_abstract:a(2676,e.DiagnosticCategory.Error,\"Accessors_must_both_be_abstract_or_non_abstract_2676\",\"Accessors must both be abstract or non-abstract.\"),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:a(2677,e.DiagnosticCategory.Error,\"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677\",\"A type predicate's type must be assignable to its parameter's type.\"),Type_0_is_not_comparable_to_type_1:a(2678,e.DiagnosticCategory.Error,\"Type_0_is_not_comparable_to_type_1_2678\",\"Type '{0}' is not comparable to type '{1}'.\"),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:a(2679,e.DiagnosticCategory.Error,\"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679\",\"A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.\"),A_0_parameter_must_be_the_first_parameter:a(2680,e.DiagnosticCategory.Error,\"A_0_parameter_must_be_the_first_parameter_2680\",\"A '{0}' parameter must be the first parameter.\"),A_constructor_cannot_have_a_this_parameter:a(2681,e.DiagnosticCategory.Error,\"A_constructor_cannot_have_a_this_parameter_2681\",\"A constructor cannot have a 'this' parameter.\"),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:a(2683,e.DiagnosticCategory.Error,\"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683\",\"'this' implicitly has type 'any' because it does not have a type annotation.\"),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:a(2684,e.DiagnosticCategory.Error,\"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684\",\"The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.\"),The_this_types_of_each_signature_are_incompatible:a(2685,e.DiagnosticCategory.Error,\"The_this_types_of_each_signature_are_incompatible_2685\",\"The 'this' types of each signature are incompatible.\"),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:a(2686,e.DiagnosticCategory.Error,\"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686\",\"'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.\"),All_declarations_of_0_must_have_identical_modifiers:a(2687,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_modifiers_2687\",\"All declarations of '{0}' must have identical modifiers.\"),Cannot_find_type_definition_file_for_0:a(2688,e.DiagnosticCategory.Error,\"Cannot_find_type_definition_file_for_0_2688\",\"Cannot find type definition file for '{0}'.\"),Cannot_extend_an_interface_0_Did_you_mean_implements:a(2689,e.DiagnosticCategory.Error,\"Cannot_extend_an_interface_0_Did_you_mean_implements_2689\",\"Cannot extend an interface '{0}'. Did you mean 'implements'?\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:a(2690,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690\",\"'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?\"),An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead:a(2691,e.DiagnosticCategory.Error,\"An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead_2691\",\"An import path cannot end with a '{0}' extension. Consider importing '{1}' instead.\"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:a(2692,e.DiagnosticCategory.Error,\"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692\",\"'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:a(2693,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693\",\"'{0}' only refers to a type, but is being used as a value here.\"),Namespace_0_has_no_exported_member_1:a(2694,e.DiagnosticCategory.Error,\"Namespace_0_has_no_exported_member_1_2694\",\"Namespace '{0}' has no exported member '{1}'.\"),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:a(2695,e.DiagnosticCategory.Error,\"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695\",\"Left side of comma operator is unused and has no side effects.\",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:a(2696,e.DiagnosticCategory.Error,\"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696\",\"The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?\"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:a(2697,e.DiagnosticCategory.Error,\"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697\",\"An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),Spread_types_may_only_be_created_from_object_types:a(2698,e.DiagnosticCategory.Error,\"Spread_types_may_only_be_created_from_object_types_2698\",\"Spread types may only be created from object types.\"),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:a(2699,e.DiagnosticCategory.Error,\"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699\",\"Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.\"),Rest_types_may_only_be_created_from_object_types:a(2700,e.DiagnosticCategory.Error,\"Rest_types_may_only_be_created_from_object_types_2700\",\"Rest types may only be created from object types.\"),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:a(2701,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701\",\"The target of an object rest assignment must be a variable or a property access.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:a(2702,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702\",\"'{0}' only refers to a type, but is being used as a namespace here.\"),The_operand_of_a_delete_operator_must_be_a_property_reference:a(2703,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_must_be_a_property_reference_2703\",\"The operand of a 'delete' operator must be a property reference.\"),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:a(2704,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704\",\"The operand of a 'delete' operator cannot be a read-only property.\"),An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:a(2705,e.DiagnosticCategory.Error,\"An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705\",\"An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),Required_type_parameters_may_not_follow_optional_type_parameters:a(2706,e.DiagnosticCategory.Error,\"Required_type_parameters_may_not_follow_optional_type_parameters_2706\",\"Required type parameters may not follow optional type parameters.\"),Generic_type_0_requires_between_1_and_2_type_arguments:a(2707,e.DiagnosticCategory.Error,\"Generic_type_0_requires_between_1_and_2_type_arguments_2707\",\"Generic type '{0}' requires between {1} and {2} type arguments.\"),Cannot_use_namespace_0_as_a_value:a(2708,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_value_2708\",\"Cannot use namespace '{0}' as a value.\"),Cannot_use_namespace_0_as_a_type:a(2709,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_type_2709\",\"Cannot use namespace '{0}' as a type.\"),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:a(2710,e.DiagnosticCategory.Error,\"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710\",\"'{0}' are specified twice. The attribute named '{0}' will be overwritten.\"),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:a(2711,e.DiagnosticCategory.Error,\"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711\",\"A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:a(2712,e.DiagnosticCategory.Error,\"A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712\",\"A dynamic import call in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:a(2713,e.DiagnosticCategory.Error,\"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713\",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:a(2714,e.DiagnosticCategory.Error,\"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714\",\"The expression of an export assignment must be an identifier or qualified name in an ambient context.\"),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:a(2715,e.DiagnosticCategory.Error,\"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715\",\"Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.\"),Type_parameter_0_has_a_circular_default:a(2716,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_default_2716\",\"Type parameter '{0}' has a circular default.\"),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:a(2717,e.DiagnosticCategory.Error,\"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717\",\"Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'.\"),Duplicate_property_0:a(2718,e.DiagnosticCategory.Error,\"Duplicate_property_0_2718\",\"Duplicate property '{0}'.\"),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:a(2719,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719\",\"Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.\"),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:a(2720,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720\",\"Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?\"),Cannot_invoke_an_object_which_is_possibly_null:a(2721,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_2721\",\"Cannot invoke an object which is possibly 'null'.\"),Cannot_invoke_an_object_which_is_possibly_undefined:a(2722,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_undefined_2722\",\"Cannot invoke an object which is possibly 'undefined'.\"),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:a(2723,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723\",\"Cannot invoke an object which is possibly 'null' or 'undefined'.\"),_0_has_no_exported_member_named_1_Did_you_mean_2:a(2724,e.DiagnosticCategory.Error,\"_0_has_no_exported_member_named_1_Did_you_mean_2_2724\",\"'{0}' has no exported member named '{1}'. Did you mean '{2}'?\"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:a(2725,e.DiagnosticCategory.Error,\"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725\",\"Class name cannot be 'Object' when targeting ES5 with module {0}.\"),Cannot_find_lib_definition_for_0:a(2726,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_2726\",\"Cannot find lib definition for '{0}'.\"),Cannot_find_lib_definition_for_0_Did_you_mean_1:a(2727,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727\",\"Cannot find lib definition for '{0}'. Did you mean '{1}'?\"),_0_is_declared_here:a(2728,e.DiagnosticCategory.Message,\"_0_is_declared_here_2728\",\"'{0}' is declared here.\"),Property_0_is_used_before_its_initialization:a(2729,e.DiagnosticCategory.Error,\"Property_0_is_used_before_its_initialization_2729\",\"Property '{0}' is used before its initialization.\"),An_arrow_function_cannot_have_a_this_parameter:a(2730,e.DiagnosticCategory.Error,\"An_arrow_function_cannot_have_a_this_parameter_2730\",\"An arrow function cannot have a 'this' parameter.\"),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:a(2731,e.DiagnosticCategory.Error,\"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731\",\"Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.\"),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:a(2732,e.DiagnosticCategory.Error,\"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732\",\"Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.\"),Property_0_was_also_declared_here:a(2733,e.DiagnosticCategory.Error,\"Property_0_was_also_declared_here_2733\",\"Property '{0}' was also declared here.\"),Are_you_missing_a_semicolon:a(2734,e.DiagnosticCategory.Error,\"Are_you_missing_a_semicolon_2734\",\"Are you missing a semicolon?\"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:a(2735,e.DiagnosticCategory.Error,\"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735\",\"Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?\"),Operator_0_cannot_be_applied_to_type_1:a(2736,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_type_1_2736\",\"Operator '{0}' cannot be applied to type '{1}'.\"),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:a(2737,e.DiagnosticCategory.Error,\"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737\",\"BigInt literals are not available when targeting lower than ES2020.\"),An_outer_value_of_this_is_shadowed_by_this_container:a(2738,e.DiagnosticCategory.Message,\"An_outer_value_of_this_is_shadowed_by_this_container_2738\",\"An outer value of 'this' is shadowed by this container.\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:a(2739,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739\",\"Type '{0}' is missing the following properties from type '{1}': {2}\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:a(2740,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740\",\"Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.\"),Property_0_is_missing_in_type_1_but_required_in_type_2:a(2741,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_but_required_in_type_2_2741\",\"Property '{0}' is missing in type '{1}' but required in type '{2}'.\"),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:a(2742,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742\",\"The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.\"),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:a(2743,e.DiagnosticCategory.Error,\"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743\",\"No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.\"),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:a(2744,e.DiagnosticCategory.Error,\"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744\",\"Type parameter defaults can only reference previously declared type parameters.\"),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:a(2745,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745\",\"This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.\"),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:a(2746,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746\",\"This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.\"),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:a(2747,e.DiagnosticCategory.Error,\"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747\",\"'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.\"),Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided:a(2748,e.DiagnosticCategory.Error,\"Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided_2748\",\"Cannot access ambient const enums when the '--isolatedModules' flag is provided.\"),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:a(2749,e.DiagnosticCategory.Error,\"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749\",\"'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?\"),The_implementation_signature_is_declared_here:a(2750,e.DiagnosticCategory.Error,\"The_implementation_signature_is_declared_here_2750\",\"The implementation signature is declared here.\"),Circularity_originates_in_type_at_this_location:a(2751,e.DiagnosticCategory.Error,\"Circularity_originates_in_type_at_this_location_2751\",\"Circularity originates in type at this location.\"),The_first_export_default_is_here:a(2752,e.DiagnosticCategory.Error,\"The_first_export_default_is_here_2752\",\"The first export default is here.\"),Another_export_default_is_here:a(2753,e.DiagnosticCategory.Error,\"Another_export_default_is_here_2753\",\"Another export default is here.\"),super_may_not_use_type_arguments:a(2754,e.DiagnosticCategory.Error,\"super_may_not_use_type_arguments_2754\",\"'super' may not use type arguments.\"),No_constituent_of_type_0_is_callable:a(2755,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_callable_2755\",\"No constituent of type '{0}' is callable.\"),Not_all_constituents_of_type_0_are_callable:a(2756,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_callable_2756\",\"Not all constituents of type '{0}' are callable.\"),Type_0_has_no_call_signatures:a(2757,e.DiagnosticCategory.Error,\"Type_0_has_no_call_signatures_2757\",\"Type '{0}' has no call signatures.\"),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:a(2758,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758\",\"Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.\"),No_constituent_of_type_0_is_constructable:a(2759,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_constructable_2759\",\"No constituent of type '{0}' is constructable.\"),Not_all_constituents_of_type_0_are_constructable:a(2760,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_constructable_2760\",\"Not all constituents of type '{0}' are constructable.\"),Type_0_has_no_construct_signatures:a(2761,e.DiagnosticCategory.Error,\"Type_0_has_no_construct_signatures_2761\",\"Type '{0}' has no construct signatures.\"),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:a(2762,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762\",\"Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:a(2763,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:a(2764,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:a(2765,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.\"),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:a(2766,e.DiagnosticCategory.Error,\"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766\",\"Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.\"),The_0_property_of_an_iterator_must_be_a_method:a(2767,e.DiagnosticCategory.Error,\"The_0_property_of_an_iterator_must_be_a_method_2767\",\"The '{0}' property of an iterator must be a method.\"),The_0_property_of_an_async_iterator_must_be_a_method:a(2768,e.DiagnosticCategory.Error,\"The_0_property_of_an_async_iterator_must_be_a_method_2768\",\"The '{0}' property of an async iterator must be a method.\"),No_overload_matches_this_call:a(2769,e.DiagnosticCategory.Error,\"No_overload_matches_this_call_2769\",\"No overload matches this call.\"),The_last_overload_gave_the_following_error:a(2770,e.DiagnosticCategory.Error,\"The_last_overload_gave_the_following_error_2770\",\"The last overload gave the following error.\"),The_last_overload_is_declared_here:a(2771,e.DiagnosticCategory.Error,\"The_last_overload_is_declared_here_2771\",\"The last overload is declared here.\"),Overload_0_of_1_2_gave_the_following_error:a(2772,e.DiagnosticCategory.Error,\"Overload_0_of_1_2_gave_the_following_error_2772\",\"Overload {0} of {1}, '{2}', gave the following error.\"),Did_you_forget_to_use_await:a(2773,e.DiagnosticCategory.Error,\"Did_you_forget_to_use_await_2773\",\"Did you forget to use 'await'?\"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:a(2774,e.DiagnosticCategory.Error,\"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774\",\"This condition will always return true since this function is always defined. Did you mean to call it instead?\"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:a(2775,e.DiagnosticCategory.Error,\"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775\",\"Assertions require every name in the call target to be declared with an explicit type annotation.\"),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:a(2776,e.DiagnosticCategory.Error,\"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776\",\"Assertions require the call target to be an identifier or qualified name.\"),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:a(2777,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777\",\"The operand of an increment or decrement operator may not be an optional property access.\"),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:a(2778,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778\",\"The target of an object rest assignment may not be an optional property access.\"),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:a(2779,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779\",\"The left-hand side of an assignment expression may not be an optional property access.\"),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:a(2780,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780\",\"The left-hand side of a 'for...in' statement may not be an optional property access.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:a(2781,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781\",\"The left-hand side of a 'for...of' statement may not be an optional property access.\"),_0_needs_an_explicit_type_annotation:a(2782,e.DiagnosticCategory.Message,\"_0_needs_an_explicit_type_annotation_2782\",\"'{0}' needs an explicit type annotation.\"),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:a(2783,e.DiagnosticCategory.Error,\"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783\",\"'{0}' is specified more than once, so this usage will be overwritten.\"),get_and_set_accessors_cannot_declare_this_parameters:a(2784,e.DiagnosticCategory.Error,\"get_and_set_accessors_cannot_declare_this_parameters_2784\",\"'get' and 'set' accessors cannot declare 'this' parameters.\"),This_spread_always_overwrites_this_property:a(2785,e.DiagnosticCategory.Error,\"This_spread_always_overwrites_this_property_2785\",\"This spread always overwrites this property.\"),_0_cannot_be_used_as_a_JSX_component:a(2786,e.DiagnosticCategory.Error,\"_0_cannot_be_used_as_a_JSX_component_2786\",\"'{0}' cannot be used as a JSX component.\"),Its_return_type_0_is_not_a_valid_JSX_element:a(2787,e.DiagnosticCategory.Error,\"Its_return_type_0_is_not_a_valid_JSX_element_2787\",\"Its return type '{0}' is not a valid JSX element.\"),Its_instance_type_0_is_not_a_valid_JSX_element:a(2788,e.DiagnosticCategory.Error,\"Its_instance_type_0_is_not_a_valid_JSX_element_2788\",\"Its instance type '{0}' is not a valid JSX element.\"),Its_element_type_0_is_not_a_valid_JSX_element:a(2789,e.DiagnosticCategory.Error,\"Its_element_type_0_is_not_a_valid_JSX_element_2789\",\"Its element type '{0}' is not a valid JSX element.\"),The_operand_of_a_delete_operator_must_be_optional:a(2790,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_must_be_optional_2790\",\"The operand of a 'delete' operator must be optional.\"),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:a(2791,e.DiagnosticCategory.Error,\"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791\",\"Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.\"),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:a(2792,e.DiagnosticCategory.Error,\"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_th_2792\",\"Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?\"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:a(2793,e.DiagnosticCategory.Error,\"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793\",\"The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.\"),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:a(2794,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794\",\"Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?\"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:a(2795,e.DiagnosticCategory.Error,\"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795\",\"The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.\"),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:a(2796,e.DiagnosticCategory.Error,\"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796\",\"It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.\"),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:a(2797,e.DiagnosticCategory.Error,\"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797\",\"A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.\"),The_declaration_was_marked_as_deprecated_here:a(2798,e.DiagnosticCategory.Error,\"The_declaration_was_marked_as_deprecated_here_2798\",\"The declaration was marked as deprecated here.\"),Type_produces_a_tuple_type_that_is_too_large_to_represent:a(2799,e.DiagnosticCategory.Error,\"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799\",\"Type produces a tuple type that is too large to represent.\"),Expression_produces_a_tuple_type_that_is_too_large_to_represent:a(2800,e.DiagnosticCategory.Error,\"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800\",\"Expression produces a tuple type that is too large to represent.\"),This_condition_will_always_return_true_since_this_0_is_always_defined:a(2801,e.DiagnosticCategory.Error,\"This_condition_will_always_return_true_since_this_0_is_always_defined_2801\",\"This condition will always return true since this '{0}' is always defined.\"),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:a(2802,e.DiagnosticCategory.Error,\"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802\",\"Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\"),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:a(2803,e.DiagnosticCategory.Error,\"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803\",\"Cannot assign to private method '{0}'. Private methods are not writable.\"),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:a(2804,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804\",\"Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.\"),Private_accessor_was_defined_without_a_getter:a(2806,e.DiagnosticCategory.Error,\"Private_accessor_was_defined_without_a_getter_2806\",\"Private accessor was defined without a getter.\"),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:a(2807,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807\",\"This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.\"),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:a(2808,e.DiagnosticCategory.Error,\"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808\",\"A get accessor must be at least as accessible as the setter\"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses:a(2809,e.DiagnosticCategory.Error,\"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809\",\"Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the the whole assignment in parentheses.\"),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:a(2810,e.DiagnosticCategory.Error,\"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810\",\"Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.\"),Initializer_for_property_0:a(2811,e.DiagnosticCategory.Error,\"Initializer_for_property_0_2811\",\"Initializer for property '{0}'\"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:a(2812,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812\",\"Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.\"),Class_declaration_cannot_implement_overload_list_for_0:a(2813,e.DiagnosticCategory.Error,\"Class_declaration_cannot_implement_overload_list_for_0_2813\",\"Class declaration cannot implement overload list for '{0}'.\"),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:a(2814,e.DiagnosticCategory.Error,\"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814\",\"Function with bodies can only merge with classes that are ambient.\"),arguments_cannot_be_referenced_in_property_initializers:a(2815,e.DiagnosticCategory.Error,\"arguments_cannot_be_referenced_in_property_initializers_2815\",\"'arguments' cannot be referenced in property initializers.\"),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:a(2816,e.DiagnosticCategory.Error,\"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816\",\"Cannot use 'this' in a static property initializer of a decorated class.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:a(2817,e.DiagnosticCategory.Error,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817\",\"Property '{0}' has no initializer and is not definitely assigned in a class static block.\"),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:a(2818,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.\"),Namespace_name_cannot_be_0:a(2819,e.DiagnosticCategory.Error,\"Namespace_name_cannot_be_0_2819\",\"Namespace name cannot be '{0}'.\"),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:a(2820,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820\",\"Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?\"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext:a(2821,e.DiagnosticCategory.Error,\"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext_2821\",\"Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'.\"),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:a(2822,e.DiagnosticCategory.Error,\"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822\",\"Import assertions cannot be used with type-only imports or exports.\"),Cannot_find_namespace_0_Did_you_mean_1:a(2833,e.DiagnosticCategory.Error,\"Cannot_find_namespace_0_Did_you_mean_1_2833\",\"Cannot find namespace '{0}'. Did you mean '{1}'?\"),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:a(2834,e.DiagnosticCategory.Error,\"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834\",\"Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.\"),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:a(2835,e.DiagnosticCategory.Error,\"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835\",\"Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?\"),Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls:a(2836,e.DiagnosticCategory.Error,\"Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls_2836\",\"Import assertions are not allowed on statements that transpile to commonjs 'require' calls.\"),Import_assertion_values_must_be_string_literal_expressions:a(2837,e.DiagnosticCategory.Error,\"Import_assertion_values_must_be_string_literal_expressions_2837\",\"Import assertion values must be string literal expressions.\"),All_declarations_of_0_must_have_identical_constraints:a(2838,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_constraints_2838\",\"All declarations of '{0}' must have identical constraints.\"),Import_declaration_0_is_using_private_name_1:a(4e3,e.DiagnosticCategory.Error,\"Import_declaration_0_is_using_private_name_1_4000\",\"Import declaration '{0}' is using private name '{1}'.\"),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:a(4002,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002\",\"Type parameter '{0}' of exported class has or is using private name '{1}'.\"),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:a(4004,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004\",\"Type parameter '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:a(4006,e.DiagnosticCategory.Error,\"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006\",\"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:a(4008,e.DiagnosticCategory.Error,\"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008\",\"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:a(4010,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010\",\"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:a(4012,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012\",\"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:a(4014,e.DiagnosticCategory.Error,\"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014\",\"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:a(4016,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016\",\"Type parameter '{0}' of exported function has or is using private name '{1}'.\"),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:a(4019,e.DiagnosticCategory.Error,\"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019\",\"Implements clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:a(4020,e.DiagnosticCategory.Error,\"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020\",\"'extends' clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_has_or_is_using_private_name_0:a(4021,e.DiagnosticCategory.Error,\"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021\",\"'extends' clause of exported class has or is using private name '{0}'.\"),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:a(4022,e.DiagnosticCategory.Error,\"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022\",\"'extends' clause of exported interface '{0}' has or is using private name '{1}'.\"),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4023,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023\",\"Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.\"),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:a(4024,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024\",\"Exported variable '{0}' has or is using name '{1}' from private module '{2}'.\"),Exported_variable_0_has_or_is_using_private_name_1:a(4025,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_private_name_1_4025\",\"Exported variable '{0}' has or is using private name '{1}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4026,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026\",\"Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4027,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027\",\"Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:a(4028,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028\",\"Public static property '{0}' of exported class has or is using private name '{1}'.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4029,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029\",\"Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4030,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030\",\"Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_property_0_of_exported_class_has_or_is_using_private_name_1:a(4031,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031\",\"Public property '{0}' of exported class has or is using private name '{1}'.\"),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4032,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032\",\"Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Property_0_of_exported_interface_has_or_is_using_private_name_1:a(4033,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033\",\"Property '{0}' of exported interface has or is using private name '{1}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4034,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034\",\"Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:a(4035,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035\",\"Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4036,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036\",\"Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:a(4037,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037\",\"Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4038,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4039,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:a(4040,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040\",\"Return type of public static getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4041,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4042,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:a(4043,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043\",\"Return type of public getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4044,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044\",\"Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:a(4045,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045\",\"Return type of constructor signature from exported interface has or is using private name '{0}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4046,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046\",\"Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:a(4047,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047\",\"Return type of call signature from exported interface has or is using private name '{0}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4048,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048\",\"Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:a(4049,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049\",\"Return type of index signature from exported interface has or is using private name '{0}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4050,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050\",\"Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:a(4051,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051\",\"Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:a(4052,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052\",\"Return type of public static method from exported class has or is using private name '{0}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4053,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053\",\"Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:a(4054,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054\",\"Return type of public method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:a(4055,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055\",\"Return type of public method from exported class has or is using private name '{0}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4056,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056\",\"Return type of method from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:a(4057,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057\",\"Return type of method from exported interface has or is using private name '{0}'.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4058,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058\",\"Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:a(4059,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059\",\"Return type of exported function has or is using name '{0}' from private module '{1}'.\"),Return_type_of_exported_function_has_or_is_using_private_name_0:a(4060,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_private_name_0_4060\",\"Return type of exported function has or is using private name '{0}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4061,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4062,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:a(4063,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063\",\"Parameter '{0}' of constructor from exported class has or is using private name '{1}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4064,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064\",\"Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:a(4065,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065\",\"Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4066,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066\",\"Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:a(4067,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067\",\"Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4068,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4069,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:a(4070,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070\",\"Parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4071,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4072,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:a(4073,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073\",\"Parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4074,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074\",\"Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:a(4075,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075\",\"Parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4076,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076\",\"Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:a(4077,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077\",\"Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_exported_function_has_or_is_using_private_name_1:a(4078,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078\",\"Parameter '{0}' of exported function has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1:a(4081,e.DiagnosticCategory.Error,\"Exported_type_alias_0_has_or_is_using_private_name_1_4081\",\"Exported type alias '{0}' has or is using private name '{1}'.\"),Default_export_of_the_module_has_or_is_using_private_name_0:a(4082,e.DiagnosticCategory.Error,\"Default_export_of_the_module_has_or_is_using_private_name_0_4082\",\"Default export of the module has or is using private name '{0}'.\"),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:a(4083,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083\",\"Type parameter '{0}' of exported type alias has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:a(4084,e.DiagnosticCategory.Error,\"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084\",\"Exported type alias '{0}' has or is using private name '{1}' from module {2}.\"),Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict:a(4090,e.DiagnosticCategory.Error,\"Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090\",\"Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4091,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091\",\"Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:a(4092,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092\",\"Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.\"),Property_0_of_exported_class_expression_may_not_be_private_or_protected:a(4094,e.DiagnosticCategory.Error,\"Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094\",\"Property '{0}' of exported class expression may not be private or protected.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4095,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095\",\"Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4096,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096\",\"Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:a(4097,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097\",\"Public static method '{0}' of exported class has or is using private name '{1}'.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4098,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098\",\"Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4099,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099\",\"Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_method_0_of_exported_class_has_or_is_using_private_name_1:a(4100,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100\",\"Public method '{0}' of exported class has or is using private name '{1}'.\"),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4101,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101\",\"Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Method_0_of_exported_interface_has_or_is_using_private_name_1:a(4102,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102\",\"Method '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:a(4103,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103\",\"Type parameter '{0}' of exported mapped object type is using private name '{1}'.\"),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:a(4104,e.DiagnosticCategory.Error,\"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104\",\"The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.\"),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:a(4105,e.DiagnosticCategory.Error,\"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105\",\"Private or protected member '{0}' cannot be accessed on a type parameter.\"),Parameter_0_of_accessor_has_or_is_using_private_name_1:a(4106,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106\",\"Parameter '{0}' of accessor has or is using private name '{1}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:a(4107,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107\",\"Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4108,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108\",\"Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.\"),Type_arguments_for_0_circularly_reference_themselves:a(4109,e.DiagnosticCategory.Error,\"Type_arguments_for_0_circularly_reference_themselves_4109\",\"Type arguments for '{0}' circularly reference themselves.\"),Tuple_type_arguments_circularly_reference_themselves:a(4110,e.DiagnosticCategory.Error,\"Tuple_type_arguments_circularly_reference_themselves_4110\",\"Tuple type arguments circularly reference themselves.\"),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:a(4111,e.DiagnosticCategory.Error,\"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111\",\"Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].\"),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:a(4112,e.DiagnosticCategory.Error,\"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112\",\"This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.\"),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:a(4113,e.DiagnosticCategory.Error,\"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113\",\"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.\"),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:a(4114,e.DiagnosticCategory.Error,\"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114\",\"This member must have an 'override' modifier because it overrides a member in the base class '{0}'.\"),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:a(4115,e.DiagnosticCategory.Error,\"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115\",\"This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.\"),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:a(4116,e.DiagnosticCategory.Error,\"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116\",\"This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.\"),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:a(4117,e.DiagnosticCategory.Error,\"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117\",\"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:a(4118,e.DiagnosticCategory.Error,\"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118\",\"The type of this node cannot be serialized because its property '{0}' cannot be serialized.\"),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4119,e.DiagnosticCategory.Error,\"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119\",\"This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4120,e.DiagnosticCategory.Error,\"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120\",\"This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:a(4121,e.DiagnosticCategory.Error,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121\",\"This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:a(4122,e.DiagnosticCategory.Error,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122\",\"This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:a(4123,e.DiagnosticCategory.Error,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123\",\"This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4124,e.DiagnosticCategory.Error,\"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124\",\"Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.\"),Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4125,e.DiagnosticCategory.Error,\"Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_wi_4125\",\"Resolution mode assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.\"),The_current_host_does_not_support_the_0_option:a(5001,e.DiagnosticCategory.Error,\"The_current_host_does_not_support_the_0_option_5001\",\"The current host does not support the '{0}' option.\"),Cannot_find_the_common_subdirectory_path_for_the_input_files:a(5009,e.DiagnosticCategory.Error,\"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009\",\"Cannot find the common subdirectory path for the input files.\"),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:a(5010,e.DiagnosticCategory.Error,\"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010\",\"File specification cannot end in a recursive directory wildcard ('**'): '{0}'.\"),Cannot_read_file_0_Colon_1:a(5012,e.DiagnosticCategory.Error,\"Cannot_read_file_0_Colon_1_5012\",\"Cannot read file '{0}': {1}.\"),Failed_to_parse_file_0_Colon_1:a(5014,e.DiagnosticCategory.Error,\"Failed_to_parse_file_0_Colon_1_5014\",\"Failed to parse file '{0}': {1}.\"),Unknown_compiler_option_0:a(5023,e.DiagnosticCategory.Error,\"Unknown_compiler_option_0_5023\",\"Unknown compiler option '{0}'.\"),Compiler_option_0_requires_a_value_of_type_1:a(5024,e.DiagnosticCategory.Error,\"Compiler_option_0_requires_a_value_of_type_1_5024\",\"Compiler option '{0}' requires a value of type {1}.\"),Unknown_compiler_option_0_Did_you_mean_1:a(5025,e.DiagnosticCategory.Error,\"Unknown_compiler_option_0_Did_you_mean_1_5025\",\"Unknown compiler option '{0}'. Did you mean '{1}'?\"),Could_not_write_file_0_Colon_1:a(5033,e.DiagnosticCategory.Error,\"Could_not_write_file_0_Colon_1_5033\",\"Could not write file '{0}': {1}.\"),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:a(5042,e.DiagnosticCategory.Error,\"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042\",\"Option 'project' cannot be mixed with source files on a command line.\"),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:a(5047,e.DiagnosticCategory.Error,\"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047\",\"Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.\"),Option_0_cannot_be_specified_when_option_target_is_ES3:a(5048,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_when_option_target_is_ES3_5048\",\"Option '{0}' cannot be specified when option 'target' is 'ES3'.\"),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:a(5051,e.DiagnosticCategory.Error,\"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051\",\"Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.\"),Option_0_cannot_be_specified_without_specifying_option_1:a(5052,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_5052\",\"Option '{0}' cannot be specified without specifying option '{1}'.\"),Option_0_cannot_be_specified_with_option_1:a(5053,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_with_option_1_5053\",\"Option '{0}' cannot be specified with option '{1}'.\"),A_tsconfig_json_file_is_already_defined_at_Colon_0:a(5054,e.DiagnosticCategory.Error,\"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054\",\"A 'tsconfig.json' file is already defined at: '{0}'.\"),Cannot_write_file_0_because_it_would_overwrite_input_file:a(5055,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_overwrite_input_file_5055\",\"Cannot write file '{0}' because it would overwrite input file.\"),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:a(5056,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056\",\"Cannot write file '{0}' because it would be overwritten by multiple input files.\"),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:a(5057,e.DiagnosticCategory.Error,\"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057\",\"Cannot find a tsconfig.json file at the specified directory: '{0}'.\"),The_specified_path_does_not_exist_Colon_0:a(5058,e.DiagnosticCategory.Error,\"The_specified_path_does_not_exist_Colon_0_5058\",\"The specified path does not exist: '{0}'.\"),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:a(5059,e.DiagnosticCategory.Error,\"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059\",\"Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.\"),Pattern_0_can_have_at_most_one_Asterisk_character:a(5061,e.DiagnosticCategory.Error,\"Pattern_0_can_have_at_most_one_Asterisk_character_5061\",\"Pattern '{0}' can have at most one '*' character.\"),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:a(5062,e.DiagnosticCategory.Error,\"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062\",\"Substitution '{0}' in pattern '{1}' can have at most one '*' character.\"),Substitutions_for_pattern_0_should_be_an_array:a(5063,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_should_be_an_array_5063\",\"Substitutions for pattern '{0}' should be an array.\"),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:a(5064,e.DiagnosticCategory.Error,\"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064\",\"Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.\"),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:a(5065,e.DiagnosticCategory.Error,\"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065\",\"File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.\"),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:a(5066,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066\",\"Substitutions for pattern '{0}' shouldn't be an empty array.\"),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:a(5067,e.DiagnosticCategory.Error,\"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067\",\"Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.\"),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:a(5068,e.DiagnosticCategory.Error,\"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068\",\"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.\"),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:a(5069,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069\",\"Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.\"),Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy:a(5070,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy_5070\",\"Option '--resolveJsonModule' cannot be specified without 'node' module resolution strategy.\"),Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext:a(5071,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071\",\"Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'.\"),Unknown_build_option_0:a(5072,e.DiagnosticCategory.Error,\"Unknown_build_option_0_5072\",\"Unknown build option '{0}'.\"),Build_option_0_requires_a_value_of_type_1:a(5073,e.DiagnosticCategory.Error,\"Build_option_0_requires_a_value_of_type_1_5073\",\"Build option '{0}' requires a value of type {1}.\"),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:a(5074,e.DiagnosticCategory.Error,\"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074\",\"Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.\"),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:a(5075,e.DiagnosticCategory.Error,\"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075\",\"'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.\"),_0_and_1_operations_cannot_be_mixed_without_parentheses:a(5076,e.DiagnosticCategory.Error,\"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076\",\"'{0}' and '{1}' operations cannot be mixed without parentheses.\"),Unknown_build_option_0_Did_you_mean_1:a(5077,e.DiagnosticCategory.Error,\"Unknown_build_option_0_Did_you_mean_1_5077\",\"Unknown build option '{0}'. Did you mean '{1}'?\"),Unknown_watch_option_0:a(5078,e.DiagnosticCategory.Error,\"Unknown_watch_option_0_5078\",\"Unknown watch option '{0}'.\"),Unknown_watch_option_0_Did_you_mean_1:a(5079,e.DiagnosticCategory.Error,\"Unknown_watch_option_0_Did_you_mean_1_5079\",\"Unknown watch option '{0}'. Did you mean '{1}'?\"),Watch_option_0_requires_a_value_of_type_1:a(5080,e.DiagnosticCategory.Error,\"Watch_option_0_requires_a_value_of_type_1_5080\",\"Watch option '{0}' requires a value of type {1}.\"),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:a(5081,e.DiagnosticCategory.Error,\"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081\",\"Cannot find a tsconfig.json file at the current directory: {0}.\"),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:a(5082,e.DiagnosticCategory.Error,\"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082\",\"'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.\"),Cannot_read_file_0:a(5083,e.DiagnosticCategory.Error,\"Cannot_read_file_0_5083\",\"Cannot read file '{0}'.\"),Tuple_members_must_all_have_names_or_all_not_have_names:a(5084,e.DiagnosticCategory.Error,\"Tuple_members_must_all_have_names_or_all_not_have_names_5084\",\"Tuple members must all have names or all not have names.\"),A_tuple_member_cannot_be_both_optional_and_rest:a(5085,e.DiagnosticCategory.Error,\"A_tuple_member_cannot_be_both_optional_and_rest_5085\",\"A tuple member cannot be both optional and rest.\"),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:a(5086,e.DiagnosticCategory.Error,\"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086\",\"A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.\"),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:a(5087,e.DiagnosticCategory.Error,\"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087\",\"A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.\"),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:a(5088,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088\",\"The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.\"),Option_0_cannot_be_specified_when_option_jsx_is_1:a(5089,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_when_option_jsx_is_1_5089\",\"Option '{0}' cannot be specified when option 'jsx' is '{1}'.\"),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:a(5090,e.DiagnosticCategory.Error,\"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090\",\"Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?\"),Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled:a(5091,e.DiagnosticCategory.Error,\"Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled_5091\",\"Option 'preserveConstEnums' cannot be disabled when 'isolatedModules' is enabled.\"),The_root_value_of_a_0_file_must_be_an_object:a(5092,e.DiagnosticCategory.Error,\"The_root_value_of_a_0_file_must_be_an_object_5092\",\"The root value of a '{0}' file must be an object.\"),Compiler_option_0_may_only_be_used_with_build:a(5093,e.DiagnosticCategory.Error,\"Compiler_option_0_may_only_be_used_with_build_5093\",\"Compiler option '--{0}' may only be used with '--build'.\"),Compiler_option_0_may_not_be_used_with_build:a(5094,e.DiagnosticCategory.Error,\"Compiler_option_0_may_not_be_used_with_build_5094\",\"Compiler option '--{0}' may not be used with '--build'.\"),Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later:a(5095,e.DiagnosticCategory.Error,\"Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later_5095\",\"Option 'preserveValueImports' can only be used when 'module' is set to 'es2015' or later.\"),Generates_a_sourcemap_for_each_corresponding_d_ts_file:a(6e3,e.DiagnosticCategory.Message,\"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000\",\"Generates a sourcemap for each corresponding '.d.ts' file.\"),Concatenate_and_emit_output_to_single_file:a(6001,e.DiagnosticCategory.Message,\"Concatenate_and_emit_output_to_single_file_6001\",\"Concatenate and emit output to single file.\"),Generates_corresponding_d_ts_file:a(6002,e.DiagnosticCategory.Message,\"Generates_corresponding_d_ts_file_6002\",\"Generates corresponding '.d.ts' file.\"),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:a(6004,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004\",\"Specify the location where debugger should locate TypeScript files instead of source locations.\"),Watch_input_files:a(6005,e.DiagnosticCategory.Message,\"Watch_input_files_6005\",\"Watch input files.\"),Redirect_output_structure_to_the_directory:a(6006,e.DiagnosticCategory.Message,\"Redirect_output_structure_to_the_directory_6006\",\"Redirect output structure to the directory.\"),Do_not_erase_const_enum_declarations_in_generated_code:a(6007,e.DiagnosticCategory.Message,\"Do_not_erase_const_enum_declarations_in_generated_code_6007\",\"Do not erase const enum declarations in generated code.\"),Do_not_emit_outputs_if_any_errors_were_reported:a(6008,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_if_any_errors_were_reported_6008\",\"Do not emit outputs if any errors were reported.\"),Do_not_emit_comments_to_output:a(6009,e.DiagnosticCategory.Message,\"Do_not_emit_comments_to_output_6009\",\"Do not emit comments to output.\"),Do_not_emit_outputs:a(6010,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_6010\",\"Do not emit outputs.\"),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:a(6011,e.DiagnosticCategory.Message,\"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011\",\"Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\"),Skip_type_checking_of_declaration_files:a(6012,e.DiagnosticCategory.Message,\"Skip_type_checking_of_declaration_files_6012\",\"Skip type checking of declaration files.\"),Do_not_resolve_the_real_path_of_symlinks:a(6013,e.DiagnosticCategory.Message,\"Do_not_resolve_the_real_path_of_symlinks_6013\",\"Do not resolve the real path of symlinks.\"),Only_emit_d_ts_declaration_files:a(6014,e.DiagnosticCategory.Message,\"Only_emit_d_ts_declaration_files_6014\",\"Only emit '.d.ts' declaration files.\"),Specify_ECMAScript_target_version:a(6015,e.DiagnosticCategory.Message,\"Specify_ECMAScript_target_version_6015\",\"Specify ECMAScript target version.\"),Specify_module_code_generation:a(6016,e.DiagnosticCategory.Message,\"Specify_module_code_generation_6016\",\"Specify module code generation.\"),Print_this_message:a(6017,e.DiagnosticCategory.Message,\"Print_this_message_6017\",\"Print this message.\"),Print_the_compiler_s_version:a(6019,e.DiagnosticCategory.Message,\"Print_the_compiler_s_version_6019\",\"Print the compiler's version.\"),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:a(6020,e.DiagnosticCategory.Message,\"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020\",\"Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.\"),Syntax_Colon_0:a(6023,e.DiagnosticCategory.Message,\"Syntax_Colon_0_6023\",\"Syntax: {0}\"),options:a(6024,e.DiagnosticCategory.Message,\"options_6024\",\"options\"),file:a(6025,e.DiagnosticCategory.Message,\"file_6025\",\"file\"),Examples_Colon_0:a(6026,e.DiagnosticCategory.Message,\"Examples_Colon_0_6026\",\"Examples: {0}\"),Options_Colon:a(6027,e.DiagnosticCategory.Message,\"Options_Colon_6027\",\"Options:\"),Version_0:a(6029,e.DiagnosticCategory.Message,\"Version_0_6029\",\"Version {0}\"),Insert_command_line_options_and_files_from_a_file:a(6030,e.DiagnosticCategory.Message,\"Insert_command_line_options_and_files_from_a_file_6030\",\"Insert command line options and files from a file.\"),Starting_compilation_in_watch_mode:a(6031,e.DiagnosticCategory.Message,\"Starting_compilation_in_watch_mode_6031\",\"Starting compilation in watch mode...\"),File_change_detected_Starting_incremental_compilation:a(6032,e.DiagnosticCategory.Message,\"File_change_detected_Starting_incremental_compilation_6032\",\"File change detected. Starting incremental compilation...\"),KIND:a(6034,e.DiagnosticCategory.Message,\"KIND_6034\",\"KIND\"),FILE:a(6035,e.DiagnosticCategory.Message,\"FILE_6035\",\"FILE\"),VERSION:a(6036,e.DiagnosticCategory.Message,\"VERSION_6036\",\"VERSION\"),LOCATION:a(6037,e.DiagnosticCategory.Message,\"LOCATION_6037\",\"LOCATION\"),DIRECTORY:a(6038,e.DiagnosticCategory.Message,\"DIRECTORY_6038\",\"DIRECTORY\"),STRATEGY:a(6039,e.DiagnosticCategory.Message,\"STRATEGY_6039\",\"STRATEGY\"),FILE_OR_DIRECTORY:a(6040,e.DiagnosticCategory.Message,\"FILE_OR_DIRECTORY_6040\",\"FILE OR DIRECTORY\"),Errors_Files:a(6041,e.DiagnosticCategory.Message,\"Errors_Files_6041\",\"Errors Files\"),Generates_corresponding_map_file:a(6043,e.DiagnosticCategory.Message,\"Generates_corresponding_map_file_6043\",\"Generates corresponding '.map' file.\"),Compiler_option_0_expects_an_argument:a(6044,e.DiagnosticCategory.Error,\"Compiler_option_0_expects_an_argument_6044\",\"Compiler option '{0}' expects an argument.\"),Unterminated_quoted_string_in_response_file_0:a(6045,e.DiagnosticCategory.Error,\"Unterminated_quoted_string_in_response_file_0_6045\",\"Unterminated quoted string in response file '{0}'.\"),Argument_for_0_option_must_be_Colon_1:a(6046,e.DiagnosticCategory.Error,\"Argument_for_0_option_must_be_Colon_1_6046\",\"Argument for '{0}' option must be: {1}.\"),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:a(6048,e.DiagnosticCategory.Error,\"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048\",\"Locale must be of the form or -. For example '{0}' or '{1}'.\"),Unable_to_open_file_0:a(6050,e.DiagnosticCategory.Error,\"Unable_to_open_file_0_6050\",\"Unable to open file '{0}'.\"),Corrupted_locale_file_0:a(6051,e.DiagnosticCategory.Error,\"Corrupted_locale_file_0_6051\",\"Corrupted locale file {0}.\"),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:a(6052,e.DiagnosticCategory.Message,\"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052\",\"Raise error on expressions and declarations with an implied 'any' type.\"),File_0_not_found:a(6053,e.DiagnosticCategory.Error,\"File_0_not_found_6053\",\"File '{0}' not found.\"),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:a(6054,e.DiagnosticCategory.Error,\"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054\",\"File '{0}' has an unsupported extension. The only supported extensions are {1}.\"),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:a(6055,e.DiagnosticCategory.Message,\"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055\",\"Suppress noImplicitAny errors for indexing objects lacking index signatures.\"),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:a(6056,e.DiagnosticCategory.Message,\"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056\",\"Do not emit declarations for code that has an '@internal' annotation.\"),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:a(6058,e.DiagnosticCategory.Message,\"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058\",\"Specify the root directory of input files. Use to control the output directory structure with --outDir.\"),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:a(6059,e.DiagnosticCategory.Error,\"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059\",\"File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.\"),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:a(6060,e.DiagnosticCategory.Message,\"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060\",\"Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\"),NEWLINE:a(6061,e.DiagnosticCategory.Message,\"NEWLINE_6061\",\"NEWLINE\"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:a(6064,e.DiagnosticCategory.Error,\"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064\",\"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.\"),Enables_experimental_support_for_ES7_decorators:a(6065,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_ES7_decorators_6065\",\"Enables experimental support for ES7 decorators.\"),Enables_experimental_support_for_emitting_type_metadata_for_decorators:a(6066,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066\",\"Enables experimental support for emitting type metadata for decorators.\"),Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6:a(6069,e.DiagnosticCategory.Message,\"Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6_6069\",\"Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6).\"),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:a(6070,e.DiagnosticCategory.Message,\"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070\",\"Initializes a TypeScript project and creates a tsconfig.json file.\"),Successfully_created_a_tsconfig_json_file:a(6071,e.DiagnosticCategory.Message,\"Successfully_created_a_tsconfig_json_file_6071\",\"Successfully created a tsconfig.json file.\"),Suppress_excess_property_checks_for_object_literals:a(6072,e.DiagnosticCategory.Message,\"Suppress_excess_property_checks_for_object_literals_6072\",\"Suppress excess property checks for object literals.\"),Stylize_errors_and_messages_using_color_and_context_experimental:a(6073,e.DiagnosticCategory.Message,\"Stylize_errors_and_messages_using_color_and_context_experimental_6073\",\"Stylize errors and messages using color and context (experimental).\"),Do_not_report_errors_on_unused_labels:a(6074,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unused_labels_6074\",\"Do not report errors on unused labels.\"),Report_error_when_not_all_code_paths_in_function_return_a_value:a(6075,e.DiagnosticCategory.Message,\"Report_error_when_not_all_code_paths_in_function_return_a_value_6075\",\"Report error when not all code paths in function return a value.\"),Report_errors_for_fallthrough_cases_in_switch_statement:a(6076,e.DiagnosticCategory.Message,\"Report_errors_for_fallthrough_cases_in_switch_statement_6076\",\"Report errors for fallthrough cases in switch statement.\"),Do_not_report_errors_on_unreachable_code:a(6077,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unreachable_code_6077\",\"Do not report errors on unreachable code.\"),Disallow_inconsistently_cased_references_to_the_same_file:a(6078,e.DiagnosticCategory.Message,\"Disallow_inconsistently_cased_references_to_the_same_file_6078\",\"Disallow inconsistently-cased references to the same file.\"),Specify_library_files_to_be_included_in_the_compilation:a(6079,e.DiagnosticCategory.Message,\"Specify_library_files_to_be_included_in_the_compilation_6079\",\"Specify library files to be included in the compilation.\"),Specify_JSX_code_generation:a(6080,e.DiagnosticCategory.Message,\"Specify_JSX_code_generation_6080\",\"Specify JSX code generation.\"),File_0_has_an_unsupported_extension_so_skipping_it:a(6081,e.DiagnosticCategory.Message,\"File_0_has_an_unsupported_extension_so_skipping_it_6081\",\"File '{0}' has an unsupported extension, so skipping it.\"),Only_amd_and_system_modules_are_supported_alongside_0:a(6082,e.DiagnosticCategory.Error,\"Only_amd_and_system_modules_are_supported_alongside_0_6082\",\"Only 'amd' and 'system' modules are supported alongside --{0}.\"),Base_directory_to_resolve_non_absolute_module_names:a(6083,e.DiagnosticCategory.Message,\"Base_directory_to_resolve_non_absolute_module_names_6083\",\"Base directory to resolve non-absolute module names.\"),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:a(6084,e.DiagnosticCategory.Message,\"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084\",\"[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit\"),Enable_tracing_of_the_name_resolution_process:a(6085,e.DiagnosticCategory.Message,\"Enable_tracing_of_the_name_resolution_process_6085\",\"Enable tracing of the name resolution process.\"),Resolving_module_0_from_1:a(6086,e.DiagnosticCategory.Message,\"Resolving_module_0_from_1_6086\",\"======== Resolving module '{0}' from '{1}'. ========\"),Explicitly_specified_module_resolution_kind_Colon_0:a(6087,e.DiagnosticCategory.Message,\"Explicitly_specified_module_resolution_kind_Colon_0_6087\",\"Explicitly specified module resolution kind: '{0}'.\"),Module_resolution_kind_is_not_specified_using_0:a(6088,e.DiagnosticCategory.Message,\"Module_resolution_kind_is_not_specified_using_0_6088\",\"Module resolution kind is not specified, using '{0}'.\"),Module_name_0_was_successfully_resolved_to_1:a(6089,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_6089\",\"======== Module name '{0}' was successfully resolved to '{1}'. ========\"),Module_name_0_was_not_resolved:a(6090,e.DiagnosticCategory.Message,\"Module_name_0_was_not_resolved_6090\",\"======== Module name '{0}' was not resolved. ========\"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:a(6091,e.DiagnosticCategory.Message,\"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091\",\"'paths' option is specified, looking for a pattern to match module name '{0}'.\"),Module_name_0_matched_pattern_1:a(6092,e.DiagnosticCategory.Message,\"Module_name_0_matched_pattern_1_6092\",\"Module name '{0}', matched pattern '{1}'.\"),Trying_substitution_0_candidate_module_location_Colon_1:a(6093,e.DiagnosticCategory.Message,\"Trying_substitution_0_candidate_module_location_Colon_1_6093\",\"Trying substitution '{0}', candidate module location: '{1}'.\"),Resolving_module_name_0_relative_to_base_url_1_2:a(6094,e.DiagnosticCategory.Message,\"Resolving_module_name_0_relative_to_base_url_1_2_6094\",\"Resolving module name '{0}' relative to base url '{1}' - '{2}'.\"),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1:a(6095,e.DiagnosticCategory.Message,\"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1_6095\",\"Loading module as file / folder, candidate module location '{0}', target file type '{1}'.\"),File_0_does_not_exist:a(6096,e.DiagnosticCategory.Message,\"File_0_does_not_exist_6096\",\"File '{0}' does not exist.\"),File_0_exist_use_it_as_a_name_resolution_result:a(6097,e.DiagnosticCategory.Message,\"File_0_exist_use_it_as_a_name_resolution_result_6097\",\"File '{0}' exist - use it as a name resolution result.\"),Loading_module_0_from_node_modules_folder_target_file_type_1:a(6098,e.DiagnosticCategory.Message,\"Loading_module_0_from_node_modules_folder_target_file_type_1_6098\",\"Loading module '{0}' from 'node_modules' folder, target file type '{1}'.\"),Found_package_json_at_0:a(6099,e.DiagnosticCategory.Message,\"Found_package_json_at_0_6099\",\"Found 'package.json' at '{0}'.\"),package_json_does_not_have_a_0_field:a(6100,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_0_field_6100\",\"'package.json' does not have a '{0}' field.\"),package_json_has_0_field_1_that_references_2:a(6101,e.DiagnosticCategory.Message,\"package_json_has_0_field_1_that_references_2_6101\",\"'package.json' has '{0}' field '{1}' that references '{2}'.\"),Allow_javascript_files_to_be_compiled:a(6102,e.DiagnosticCategory.Message,\"Allow_javascript_files_to_be_compiled_6102\",\"Allow javascript files to be compiled.\"),Checking_if_0_is_the_longest_matching_prefix_for_1_2:a(6104,e.DiagnosticCategory.Message,\"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104\",\"Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.\"),Expected_type_of_0_field_in_package_json_to_be_1_got_2:a(6105,e.DiagnosticCategory.Message,\"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105\",\"Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.\"),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:a(6106,e.DiagnosticCategory.Message,\"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106\",\"'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.\"),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:a(6107,e.DiagnosticCategory.Message,\"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107\",\"'rootDirs' option is set, using it to resolve relative module name '{0}'.\"),Longest_matching_prefix_for_0_is_1:a(6108,e.DiagnosticCategory.Message,\"Longest_matching_prefix_for_0_is_1_6108\",\"Longest matching prefix for '{0}' is '{1}'.\"),Loading_0_from_the_root_dir_1_candidate_location_2:a(6109,e.DiagnosticCategory.Message,\"Loading_0_from_the_root_dir_1_candidate_location_2_6109\",\"Loading '{0}' from the root dir '{1}', candidate location '{2}'.\"),Trying_other_entries_in_rootDirs:a(6110,e.DiagnosticCategory.Message,\"Trying_other_entries_in_rootDirs_6110\",\"Trying other entries in 'rootDirs'.\"),Module_resolution_using_rootDirs_has_failed:a(6111,e.DiagnosticCategory.Message,\"Module_resolution_using_rootDirs_has_failed_6111\",\"Module resolution using 'rootDirs' has failed.\"),Do_not_emit_use_strict_directives_in_module_output:a(6112,e.DiagnosticCategory.Message,\"Do_not_emit_use_strict_directives_in_module_output_6112\",\"Do not emit 'use strict' directives in module output.\"),Enable_strict_null_checks:a(6113,e.DiagnosticCategory.Message,\"Enable_strict_null_checks_6113\",\"Enable strict null checks.\"),Unknown_option_excludes_Did_you_mean_exclude:a(6114,e.DiagnosticCategory.Error,\"Unknown_option_excludes_Did_you_mean_exclude_6114\",\"Unknown option 'excludes'. Did you mean 'exclude'?\"),Raise_error_on_this_expressions_with_an_implied_any_type:a(6115,e.DiagnosticCategory.Message,\"Raise_error_on_this_expressions_with_an_implied_any_type_6115\",\"Raise error on 'this' expressions with an implied 'any' type.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:a(6116,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:a(6119,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119\",\"======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========\"),Type_reference_directive_0_was_not_resolved:a(6120,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_not_resolved_6120\",\"======== Type reference directive '{0}' was not resolved. ========\"),Resolving_with_primary_search_path_0:a(6121,e.DiagnosticCategory.Message,\"Resolving_with_primary_search_path_0_6121\",\"Resolving with primary search path '{0}'.\"),Root_directory_cannot_be_determined_skipping_primary_search_paths:a(6122,e.DiagnosticCategory.Message,\"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122\",\"Root directory cannot be determined, skipping primary search paths.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:a(6123,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========\"),Type_declaration_files_to_be_included_in_compilation:a(6124,e.DiagnosticCategory.Message,\"Type_declaration_files_to_be_included_in_compilation_6124\",\"Type declaration files to be included in compilation.\"),Looking_up_in_node_modules_folder_initial_location_0:a(6125,e.DiagnosticCategory.Message,\"Looking_up_in_node_modules_folder_initial_location_0_6125\",\"Looking up in 'node_modules' folder, initial location '{0}'.\"),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:a(6126,e.DiagnosticCategory.Message,\"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126\",\"Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:a(6127,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127\",\"======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:a(6128,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128\",\"======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========\"),Resolving_real_path_for_0_result_1:a(6130,e.DiagnosticCategory.Message,\"Resolving_real_path_for_0_result_1_6130\",\"Resolving real path for '{0}', result '{1}'.\"),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:a(6131,e.DiagnosticCategory.Error,\"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131\",\"Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.\"),File_name_0_has_a_1_extension_stripping_it:a(6132,e.DiagnosticCategory.Message,\"File_name_0_has_a_1_extension_stripping_it_6132\",\"File name '{0}' has a '{1}' extension - stripping it.\"),_0_is_declared_but_its_value_is_never_read:a(6133,e.DiagnosticCategory.Error,\"_0_is_declared_but_its_value_is_never_read_6133\",\"'{0}' is declared but its value is never read.\",!0),Report_errors_on_unused_locals:a(6134,e.DiagnosticCategory.Message,\"Report_errors_on_unused_locals_6134\",\"Report errors on unused locals.\"),Report_errors_on_unused_parameters:a(6135,e.DiagnosticCategory.Message,\"Report_errors_on_unused_parameters_6135\",\"Report errors on unused parameters.\"),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:a(6136,e.DiagnosticCategory.Message,\"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136\",\"The maximum dependency depth to search under node_modules and load JavaScript files.\"),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:a(6137,e.DiagnosticCategory.Error,\"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137\",\"Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.\"),Property_0_is_declared_but_its_value_is_never_read:a(6138,e.DiagnosticCategory.Error,\"Property_0_is_declared_but_its_value_is_never_read_6138\",\"Property '{0}' is declared but its value is never read.\",!0),Import_emit_helpers_from_tslib:a(6139,e.DiagnosticCategory.Message,\"Import_emit_helpers_from_tslib_6139\",\"Import emit helpers from 'tslib'.\"),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:a(6140,e.DiagnosticCategory.Error,\"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140\",\"Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.\"),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:a(6141,e.DiagnosticCategory.Message,\"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141\",'Parse in strict mode and emit \"use strict\" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:a(6142,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142\",\"Module '{0}' was resolved to '{1}', but '--jsx' is not set.\"),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:a(6144,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144\",\"Module '{0}' was resolved as locally declared ambient module in file '{1}'.\"),Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified:a(6145,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145\",\"Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified.\"),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:a(6146,e.DiagnosticCategory.Message,\"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146\",\"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.\"),Resolution_for_module_0_was_found_in_cache_from_location_1:a(6147,e.DiagnosticCategory.Message,\"Resolution_for_module_0_was_found_in_cache_from_location_1_6147\",\"Resolution for module '{0}' was found in cache from location '{1}'.\"),Directory_0_does_not_exist_skipping_all_lookups_in_it:a(6148,e.DiagnosticCategory.Message,\"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148\",\"Directory '{0}' does not exist, skipping all lookups in it.\"),Show_diagnostic_information:a(6149,e.DiagnosticCategory.Message,\"Show_diagnostic_information_6149\",\"Show diagnostic information.\"),Show_verbose_diagnostic_information:a(6150,e.DiagnosticCategory.Message,\"Show_verbose_diagnostic_information_6150\",\"Show verbose diagnostic information.\"),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:a(6151,e.DiagnosticCategory.Message,\"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151\",\"Emit a single file with source maps instead of having a separate file.\"),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:a(6152,e.DiagnosticCategory.Message,\"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152\",\"Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.\"),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:a(6153,e.DiagnosticCategory.Message,\"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153\",\"Transpile each file as a separate module (similar to 'ts.transpileModule').\"),Print_names_of_generated_files_part_of_the_compilation:a(6154,e.DiagnosticCategory.Message,\"Print_names_of_generated_files_part_of_the_compilation_6154\",\"Print names of generated files part of the compilation.\"),Print_names_of_files_part_of_the_compilation:a(6155,e.DiagnosticCategory.Message,\"Print_names_of_files_part_of_the_compilation_6155\",\"Print names of files part of the compilation.\"),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:a(6156,e.DiagnosticCategory.Message,\"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156\",\"The locale used when displaying messages to the user (e.g. 'en-us')\"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:a(6157,e.DiagnosticCategory.Message,\"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157\",\"Do not generate custom helper functions like '__extends' in compiled output.\"),Do_not_include_the_default_library_file_lib_d_ts:a(6158,e.DiagnosticCategory.Message,\"Do_not_include_the_default_library_file_lib_d_ts_6158\",\"Do not include the default library file (lib.d.ts).\"),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:a(6159,e.DiagnosticCategory.Message,\"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159\",\"Do not add triple-slash references or imported modules to the list of compiled files.\"),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:a(6160,e.DiagnosticCategory.Message,\"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160\",\"[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.\"),List_of_folders_to_include_type_definitions_from:a(6161,e.DiagnosticCategory.Message,\"List_of_folders_to_include_type_definitions_from_6161\",\"List of folders to include type definitions from.\"),Disable_size_limitations_on_JavaScript_projects:a(6162,e.DiagnosticCategory.Message,\"Disable_size_limitations_on_JavaScript_projects_6162\",\"Disable size limitations on JavaScript projects.\"),The_character_set_of_the_input_files:a(6163,e.DiagnosticCategory.Message,\"The_character_set_of_the_input_files_6163\",\"The character set of the input files.\"),Do_not_truncate_error_messages:a(6165,e.DiagnosticCategory.Message,\"Do_not_truncate_error_messages_6165\",\"Do not truncate error messages.\"),Output_directory_for_generated_declaration_files:a(6166,e.DiagnosticCategory.Message,\"Output_directory_for_generated_declaration_files_6166\",\"Output directory for generated declaration files.\"),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:a(6167,e.DiagnosticCategory.Message,\"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167\",\"A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.\"),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:a(6168,e.DiagnosticCategory.Message,\"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168\",\"List of root folders whose combined content represents the structure of the project at runtime.\"),Show_all_compiler_options:a(6169,e.DiagnosticCategory.Message,\"Show_all_compiler_options_6169\",\"Show all compiler options.\"),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:a(6170,e.DiagnosticCategory.Message,\"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170\",\"[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file\"),Command_line_Options:a(6171,e.DiagnosticCategory.Message,\"Command_line_Options_6171\",\"Command-line Options\"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3:a(6179,e.DiagnosticCategory.Message,\"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179\",\"Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'.\"),Enable_all_strict_type_checking_options:a(6180,e.DiagnosticCategory.Message,\"Enable_all_strict_type_checking_options_6180\",\"Enable all strict type-checking options.\"),Scoped_package_detected_looking_in_0:a(6182,e.DiagnosticCategory.Message,\"Scoped_package_detected_looking_in_0_6182\",\"Scoped package detected, looking in '{0}'\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:a(6183,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:a(6184,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),Enable_strict_checking_of_function_types:a(6186,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_function_types_6186\",\"Enable strict checking of function types.\"),Enable_strict_checking_of_property_initialization_in_classes:a(6187,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_property_initialization_in_classes_6187\",\"Enable strict checking of property initialization in classes.\"),Numeric_separators_are_not_allowed_here:a(6188,e.DiagnosticCategory.Error,\"Numeric_separators_are_not_allowed_here_6188\",\"Numeric separators are not allowed here.\"),Multiple_consecutive_numeric_separators_are_not_permitted:a(6189,e.DiagnosticCategory.Error,\"Multiple_consecutive_numeric_separators_are_not_permitted_6189\",\"Multiple consecutive numeric separators are not permitted.\"),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:a(6191,e.DiagnosticCategory.Message,\"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191\",\"Whether to keep outdated console output in watch mode instead of clearing the screen.\"),All_imports_in_import_declaration_are_unused:a(6192,e.DiagnosticCategory.Error,\"All_imports_in_import_declaration_are_unused_6192\",\"All imports in import declaration are unused.\",!0),Found_1_error_Watching_for_file_changes:a(6193,e.DiagnosticCategory.Message,\"Found_1_error_Watching_for_file_changes_6193\",\"Found 1 error. Watching for file changes.\"),Found_0_errors_Watching_for_file_changes:a(6194,e.DiagnosticCategory.Message,\"Found_0_errors_Watching_for_file_changes_6194\",\"Found {0} errors. Watching for file changes.\"),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:a(6195,e.DiagnosticCategory.Message,\"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195\",\"Resolve 'keyof' to string valued property names only (no numbers or symbols).\"),_0_is_declared_but_never_used:a(6196,e.DiagnosticCategory.Error,\"_0_is_declared_but_never_used_6196\",\"'{0}' is declared but never used.\",!0),Include_modules_imported_with_json_extension:a(6197,e.DiagnosticCategory.Message,\"Include_modules_imported_with_json_extension_6197\",\"Include modules imported with '.json' extension\"),All_destructured_elements_are_unused:a(6198,e.DiagnosticCategory.Error,\"All_destructured_elements_are_unused_6198\",\"All destructured elements are unused.\",!0),All_variables_are_unused:a(6199,e.DiagnosticCategory.Error,\"All_variables_are_unused_6199\",\"All variables are unused.\",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:a(6200,e.DiagnosticCategory.Error,\"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200\",\"Definitions of the following identifiers conflict with those in another file: {0}\"),Conflicts_are_in_this_file:a(6201,e.DiagnosticCategory.Message,\"Conflicts_are_in_this_file_6201\",\"Conflicts are in this file.\"),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:a(6202,e.DiagnosticCategory.Error,\"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202\",\"Project references may not form a circular graph. Cycle detected: {0}\"),_0_was_also_declared_here:a(6203,e.DiagnosticCategory.Message,\"_0_was_also_declared_here_6203\",\"'{0}' was also declared here.\"),and_here:a(6204,e.DiagnosticCategory.Message,\"and_here_6204\",\"and here.\"),All_type_parameters_are_unused:a(6205,e.DiagnosticCategory.Error,\"All_type_parameters_are_unused_6205\",\"All type parameters are unused.\"),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:a(6206,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206\",\"'package.json' has a 'typesVersions' field with version-specific path mappings.\"),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:a(6207,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207\",\"'package.json' does not have a 'typesVersions' entry that matches version '{0}'.\"),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:a(6208,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208\",\"'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.\"),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:a(6209,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209\",\"'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.\"),An_argument_for_0_was_not_provided:a(6210,e.DiagnosticCategory.Message,\"An_argument_for_0_was_not_provided_6210\",\"An argument for '{0}' was not provided.\"),An_argument_matching_this_binding_pattern_was_not_provided:a(6211,e.DiagnosticCategory.Message,\"An_argument_matching_this_binding_pattern_was_not_provided_6211\",\"An argument matching this binding pattern was not provided.\"),Did_you_mean_to_call_this_expression:a(6212,e.DiagnosticCategory.Message,\"Did_you_mean_to_call_this_expression_6212\",\"Did you mean to call this expression?\"),Did_you_mean_to_use_new_with_this_expression:a(6213,e.DiagnosticCategory.Message,\"Did_you_mean_to_use_new_with_this_expression_6213\",\"Did you mean to use 'new' with this expression?\"),Enable_strict_bind_call_and_apply_methods_on_functions:a(6214,e.DiagnosticCategory.Message,\"Enable_strict_bind_call_and_apply_methods_on_functions_6214\",\"Enable strict 'bind', 'call', and 'apply' methods on functions.\"),Using_compiler_options_of_project_reference_redirect_0:a(6215,e.DiagnosticCategory.Message,\"Using_compiler_options_of_project_reference_redirect_0_6215\",\"Using compiler options of project reference redirect '{0}'.\"),Found_1_error:a(6216,e.DiagnosticCategory.Message,\"Found_1_error_6216\",\"Found 1 error.\"),Found_0_errors:a(6217,e.DiagnosticCategory.Message,\"Found_0_errors_6217\",\"Found {0} errors.\"),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:a(6218,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218\",\"======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:a(6219,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219\",\"======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========\"),package_json_had_a_falsy_0_field:a(6220,e.DiagnosticCategory.Message,\"package_json_had_a_falsy_0_field_6220\",\"'package.json' had a falsy '{0}' field.\"),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:a(6221,e.DiagnosticCategory.Message,\"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221\",\"Disable use of source files instead of declaration files from referenced projects.\"),Emit_class_fields_with_Define_instead_of_Set:a(6222,e.DiagnosticCategory.Message,\"Emit_class_fields_with_Define_instead_of_Set_6222\",\"Emit class fields with Define instead of Set.\"),Generates_a_CPU_profile:a(6223,e.DiagnosticCategory.Message,\"Generates_a_CPU_profile_6223\",\"Generates a CPU profile.\"),Disable_solution_searching_for_this_project:a(6224,e.DiagnosticCategory.Message,\"Disable_solution_searching_for_this_project_6224\",\"Disable solution searching for this project.\"),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:a(6225,e.DiagnosticCategory.Message,\"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225\",\"Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.\"),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:a(6226,e.DiagnosticCategory.Message,\"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226\",\"Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.\"),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:a(6227,e.DiagnosticCategory.Message,\"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227\",\"Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.\"),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:a(6229,e.DiagnosticCategory.Error,\"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229\",\"Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.\"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:a(6230,e.DiagnosticCategory.Error,\"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230\",\"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.\"),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:a(6231,e.DiagnosticCategory.Error,\"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231\",\"Could not resolve the path '{0}' with the extensions: {1}.\"),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:a(6232,e.DiagnosticCategory.Error,\"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232\",\"Declaration augments declaration in another file. This cannot be serialized.\"),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:a(6233,e.DiagnosticCategory.Error,\"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233\",\"This is the declaration being augmented. Consider moving the augmenting declaration into the same file.\"),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:a(6234,e.DiagnosticCategory.Error,\"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234\",\"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?\"),Disable_loading_referenced_projects:a(6235,e.DiagnosticCategory.Message,\"Disable_loading_referenced_projects_6235\",\"Disable loading referenced projects.\"),Arguments_for_the_rest_parameter_0_were_not_provided:a(6236,e.DiagnosticCategory.Error,\"Arguments_for_the_rest_parameter_0_were_not_provided_6236\",\"Arguments for the rest parameter '{0}' were not provided.\"),Generates_an_event_trace_and_a_list_of_types:a(6237,e.DiagnosticCategory.Message,\"Generates_an_event_trace_and_a_list_of_types_6237\",\"Generates an event trace and a list of types.\"),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:a(6238,e.DiagnosticCategory.Error,\"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238\",\"Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react\"),File_0_exists_according_to_earlier_cached_lookups:a(6239,e.DiagnosticCategory.Message,\"File_0_exists_according_to_earlier_cached_lookups_6239\",\"File '{0}' exists according to earlier cached lookups.\"),File_0_does_not_exist_according_to_earlier_cached_lookups:a(6240,e.DiagnosticCategory.Message,\"File_0_does_not_exist_according_to_earlier_cached_lookups_6240\",\"File '{0}' does not exist according to earlier cached lookups.\"),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:a(6241,e.DiagnosticCategory.Message,\"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241\",\"Resolution for type reference directive '{0}' was found in cache from location '{1}'.\"),Resolving_type_reference_directive_0_containing_file_1:a(6242,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_6242\",\"======== Resolving type reference directive '{0}', containing file '{1}'. ========\"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:a(6243,e.DiagnosticCategory.Message,\"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243\",\"Interpret optional property types as written, rather than adding 'undefined'.\"),Modules:a(6244,e.DiagnosticCategory.Message,\"Modules_6244\",\"Modules\"),File_Management:a(6245,e.DiagnosticCategory.Message,\"File_Management_6245\",\"File Management\"),Emit:a(6246,e.DiagnosticCategory.Message,\"Emit_6246\",\"Emit\"),JavaScript_Support:a(6247,e.DiagnosticCategory.Message,\"JavaScript_Support_6247\",\"JavaScript Support\"),Type_Checking:a(6248,e.DiagnosticCategory.Message,\"Type_Checking_6248\",\"Type Checking\"),Editor_Support:a(6249,e.DiagnosticCategory.Message,\"Editor_Support_6249\",\"Editor Support\"),Watch_and_Build_Modes:a(6250,e.DiagnosticCategory.Message,\"Watch_and_Build_Modes_6250\",\"Watch and Build Modes\"),Compiler_Diagnostics:a(6251,e.DiagnosticCategory.Message,\"Compiler_Diagnostics_6251\",\"Compiler Diagnostics\"),Interop_Constraints:a(6252,e.DiagnosticCategory.Message,\"Interop_Constraints_6252\",\"Interop Constraints\"),Backwards_Compatibility:a(6253,e.DiagnosticCategory.Message,\"Backwards_Compatibility_6253\",\"Backwards Compatibility\"),Language_and_Environment:a(6254,e.DiagnosticCategory.Message,\"Language_and_Environment_6254\",\"Language and Environment\"),Projects:a(6255,e.DiagnosticCategory.Message,\"Projects_6255\",\"Projects\"),Output_Formatting:a(6256,e.DiagnosticCategory.Message,\"Output_Formatting_6256\",\"Output Formatting\"),Completeness:a(6257,e.DiagnosticCategory.Message,\"Completeness_6257\",\"Completeness\"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:a(6258,e.DiagnosticCategory.Error,\"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258\",\"'{0}' should be set inside the 'compilerOptions' object of the config json file\"),Found_1_error_in_1:a(6259,e.DiagnosticCategory.Message,\"Found_1_error_in_1_6259\",\"Found 1 error in {1}\"),Found_0_errors_in_the_same_file_starting_at_Colon_1:a(6260,e.DiagnosticCategory.Message,\"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260\",\"Found {0} errors in the same file, starting at: {1}\"),Found_0_errors_in_1_files:a(6261,e.DiagnosticCategory.Message,\"Found_0_errors_in_1_files_6261\",\"Found {0} errors in {1} files.\"),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:a(6270,e.DiagnosticCategory.Message,\"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270\",\"Directory '{0}' has no containing package.json scope. Imports will not resolve.\"),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6271,e.DiagnosticCategory.Message,\"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271\",\"Import specifier '{0}' does not exist in package.json scope at path '{1}'.\"),Invalid_import_specifier_0_has_no_possible_resolutions:a(6272,e.DiagnosticCategory.Message,\"Invalid_import_specifier_0_has_no_possible_resolutions_6272\",\"Invalid import specifier '{0}' has no possible resolutions.\"),package_json_scope_0_has_no_imports_defined:a(6273,e.DiagnosticCategory.Message,\"package_json_scope_0_has_no_imports_defined_6273\",\"package.json scope '{0}' has no imports defined.\"),package_json_scope_0_explicitly_maps_specifier_1_to_null:a(6274,e.DiagnosticCategory.Message,\"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274\",\"package.json scope '{0}' explicitly maps specifier '{1}' to null.\"),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:a(6275,e.DiagnosticCategory.Message,\"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275\",\"package.json scope '{0}' has invalid type for target of specifier '{1}'\"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6276,e.DiagnosticCategory.Message,\"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276\",\"Export specifier '{0}' does not exist in package.json scope at path '{1}'.\"),Enable_project_compilation:a(6302,e.DiagnosticCategory.Message,\"Enable_project_compilation_6302\",\"Enable project compilation\"),Composite_projects_may_not_disable_declaration_emit:a(6304,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_declaration_emit_6304\",\"Composite projects may not disable declaration emit.\"),Output_file_0_has_not_been_built_from_source_file_1:a(6305,e.DiagnosticCategory.Error,\"Output_file_0_has_not_been_built_from_source_file_1_6305\",\"Output file '{0}' has not been built from source file '{1}'.\"),Referenced_project_0_must_have_setting_composite_Colon_true:a(6306,e.DiagnosticCategory.Error,\"Referenced_project_0_must_have_setting_composite_Colon_true_6306\",`Referenced project '{0}' must have setting \"composite\": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:a(6307,e.DiagnosticCategory.Error,\"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307\",\"File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.\"),Cannot_prepend_project_0_because_it_does_not_have_outFile_set:a(6308,e.DiagnosticCategory.Error,\"Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308\",\"Cannot prepend project '{0}' because it does not have 'outFile' set\"),Output_file_0_from_project_1_does_not_exist:a(6309,e.DiagnosticCategory.Error,\"Output_file_0_from_project_1_does_not_exist_6309\",\"Output file '{0}' from project '{1}' does not exist\"),Referenced_project_0_may_not_disable_emit:a(6310,e.DiagnosticCategory.Error,\"Referenced_project_0_may_not_disable_emit_6310\",\"Referenced project '{0}' may not disable emit.\"),Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2:a(6350,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2_6350\",\"Project '{0}' is out of date because oldest output '{1}' is older than newest input '{2}'\"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2:a(6351,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2_6351\",\"Project '{0}' is up to date because newest input '{1}' is older than oldest output '{2}'\"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:a(6352,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352\",\"Project '{0}' is out of date because output file '{1}' does not exist\"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:a(6353,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353\",\"Project '{0}' is out of date because its dependency '{1}' is out of date\"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:a(6354,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354\",\"Project '{0}' is up to date with .d.ts files from its dependencies\"),Projects_in_this_build_Colon_0:a(6355,e.DiagnosticCategory.Message,\"Projects_in_this_build_Colon_0_6355\",\"Projects in this build: {0}\"),A_non_dry_build_would_delete_the_following_files_Colon_0:a(6356,e.DiagnosticCategory.Message,\"A_non_dry_build_would_delete_the_following_files_Colon_0_6356\",\"A non-dry build would delete the following files: {0}\"),A_non_dry_build_would_build_project_0:a(6357,e.DiagnosticCategory.Message,\"A_non_dry_build_would_build_project_0_6357\",\"A non-dry build would build project '{0}'\"),Building_project_0:a(6358,e.DiagnosticCategory.Message,\"Building_project_0_6358\",\"Building project '{0}'...\"),Updating_output_timestamps_of_project_0:a(6359,e.DiagnosticCategory.Message,\"Updating_output_timestamps_of_project_0_6359\",\"Updating output timestamps of project '{0}'...\"),Project_0_is_up_to_date:a(6361,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_6361\",\"Project '{0}' is up to date\"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:a(6362,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362\",\"Skipping build of project '{0}' because its dependency '{1}' has errors\"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:a(6363,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363\",\"Project '{0}' can't be built because its dependency '{1}' has errors\"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:a(6364,e.DiagnosticCategory.Message,\"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364\",\"Build one or more projects and their dependencies, if out of date\"),Delete_the_outputs_of_all_projects:a(6365,e.DiagnosticCategory.Message,\"Delete_the_outputs_of_all_projects_6365\",\"Delete the outputs of all projects.\"),Show_what_would_be_built_or_deleted_if_specified_with_clean:a(6367,e.DiagnosticCategory.Message,\"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367\",\"Show what would be built (or deleted, if specified with '--clean')\"),Option_build_must_be_the_first_command_line_argument:a(6369,e.DiagnosticCategory.Error,\"Option_build_must_be_the_first_command_line_argument_6369\",\"Option '--build' must be the first command line argument.\"),Options_0_and_1_cannot_be_combined:a(6370,e.DiagnosticCategory.Error,\"Options_0_and_1_cannot_be_combined_6370\",\"Options '{0}' and '{1}' cannot be combined.\"),Updating_unchanged_output_timestamps_of_project_0:a(6371,e.DiagnosticCategory.Message,\"Updating_unchanged_output_timestamps_of_project_0_6371\",\"Updating unchanged output timestamps of project '{0}'...\"),Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed:a(6372,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372\",\"Project '{0}' is out of date because output of its dependency '{1}' has changed\"),Updating_output_of_project_0:a(6373,e.DiagnosticCategory.Message,\"Updating_output_of_project_0_6373\",\"Updating output of project '{0}'...\"),A_non_dry_build_would_update_timestamps_for_output_of_project_0:a(6374,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374\",\"A non-dry build would update timestamps for output of project '{0}'\"),A_non_dry_build_would_update_output_of_project_0:a(6375,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_output_of_project_0_6375\",\"A non-dry build would update output of project '{0}'\"),Cannot_update_output_of_project_0_because_there_was_error_reading_file_1:a(6376,e.DiagnosticCategory.Message,\"Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376\",\"Cannot update output of project '{0}' because there was error reading file '{1}'\"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:a(6377,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377\",\"Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'\"),Composite_projects_may_not_disable_incremental_compilation:a(6379,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_incremental_compilation_6379\",\"Composite projects may not disable incremental compilation.\"),Specify_file_to_store_incremental_compilation_information:a(6380,e.DiagnosticCategory.Message,\"Specify_file_to_store_incremental_compilation_information_6380\",\"Specify file to store incremental compilation information\"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:a(6381,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381\",\"Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'\"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:a(6382,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382\",\"Skipping build of project '{0}' because its dependency '{1}' was not built\"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:a(6383,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383\",\"Project '{0}' can't be built because its dependency '{1}' was not built\"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:a(6384,e.DiagnosticCategory.Message,\"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384\",\"Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.\"),_0_is_deprecated:a(6385,e.DiagnosticCategory.Suggestion,\"_0_is_deprecated_6385\",\"'{0}' is deprecated.\",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:a(6386,e.DiagnosticCategory.Message,\"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386\",\"Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.\"),The_signature_0_of_1_is_deprecated:a(6387,e.DiagnosticCategory.Suggestion,\"The_signature_0_of_1_is_deprecated_6387\",\"The signature '{0}' of '{1}' is deprecated.\",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:a(6388,e.DiagnosticCategory.Message,\"Project_0_is_being_forcibly_rebuilt_6388\",\"Project '{0}' is being forcibly rebuilt\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:a(6389,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:a(6390,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:a(6391,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:a(6392,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:a(6393,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:a(6394,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:a(6395,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:a(6396,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:a(6397,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:a(6398,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:a(6500,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500\",\"The expected type comes from property '{0}' which is declared here on type '{1}'\"),The_expected_type_comes_from_this_index_signature:a(6501,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_this_index_signature_6501\",\"The expected type comes from this index signature.\"),The_expected_type_comes_from_the_return_type_of_this_signature:a(6502,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_the_return_type_of_this_signature_6502\",\"The expected type comes from the return type of this signature.\"),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:a(6503,e.DiagnosticCategory.Message,\"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503\",\"Print names of files that are part of the compilation and then stop processing.\"),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:a(6504,e.DiagnosticCategory.Error,\"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504\",\"File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?\"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:a(6505,e.DiagnosticCategory.Message,\"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505\",\"Print names of files and the reason they are part of the compilation.\"),Consider_adding_a_declare_modifier_to_this_class:a(6506,e.DiagnosticCategory.Message,\"Consider_adding_a_declare_modifier_to_this_class_6506\",\"Consider adding a 'declare' modifier to this class.\"),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:a(6600,e.DiagnosticCategory.Message,\"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600\",\"Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files.\"),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:a(6601,e.DiagnosticCategory.Message,\"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601\",\"Allow 'import x from y' when a module doesn't have a default export.\"),Allow_accessing_UMD_globals_from_modules:a(6602,e.DiagnosticCategory.Message,\"Allow_accessing_UMD_globals_from_modules_6602\",\"Allow accessing UMD globals from modules.\"),Disable_error_reporting_for_unreachable_code:a(6603,e.DiagnosticCategory.Message,\"Disable_error_reporting_for_unreachable_code_6603\",\"Disable error reporting for unreachable code.\"),Disable_error_reporting_for_unused_labels:a(6604,e.DiagnosticCategory.Message,\"Disable_error_reporting_for_unused_labels_6604\",\"Disable error reporting for unused labels.\"),Ensure_use_strict_is_always_emitted:a(6605,e.DiagnosticCategory.Message,\"Ensure_use_strict_is_always_emitted_6605\",\"Ensure 'use strict' is always emitted.\"),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:a(6606,e.DiagnosticCategory.Message,\"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606\",\"Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.\"),Specify_the_base_directory_to_resolve_non_relative_module_names:a(6607,e.DiagnosticCategory.Message,\"Specify_the_base_directory_to_resolve_non_relative_module_names_6607\",\"Specify the base directory to resolve non-relative module names.\"),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:a(6608,e.DiagnosticCategory.Message,\"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608\",\"No longer supported. In early versions, manually set the text encoding for reading files.\"),Enable_error_reporting_in_type_checked_JavaScript_files:a(6609,e.DiagnosticCategory.Message,\"Enable_error_reporting_in_type_checked_JavaScript_files_6609\",\"Enable error reporting in type-checked JavaScript files.\"),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:a(6611,e.DiagnosticCategory.Message,\"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611\",\"Enable constraints that allow a TypeScript project to be used with project references.\"),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:a(6612,e.DiagnosticCategory.Message,\"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612\",\"Generate .d.ts files from TypeScript and JavaScript files in your project.\"),Specify_the_output_directory_for_generated_declaration_files:a(6613,e.DiagnosticCategory.Message,\"Specify_the_output_directory_for_generated_declaration_files_6613\",\"Specify the output directory for generated declaration files.\"),Create_sourcemaps_for_d_ts_files:a(6614,e.DiagnosticCategory.Message,\"Create_sourcemaps_for_d_ts_files_6614\",\"Create sourcemaps for d.ts files.\"),Output_compiler_performance_information_after_building:a(6615,e.DiagnosticCategory.Message,\"Output_compiler_performance_information_after_building_6615\",\"Output compiler performance information after building.\"),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:a(6616,e.DiagnosticCategory.Message,\"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616\",\"Disables inference for type acquisition by looking at filenames in a project.\"),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:a(6617,e.DiagnosticCategory.Message,\"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617\",\"Reduce the number of projects loaded automatically by TypeScript.\"),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:a(6618,e.DiagnosticCategory.Message,\"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618\",\"Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\"),Opt_a_project_out_of_multi_project_reference_checking_when_editing:a(6619,e.DiagnosticCategory.Message,\"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619\",\"Opt a project out of multi-project reference checking when editing.\"),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:a(6620,e.DiagnosticCategory.Message,\"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620\",\"Disable preferring source files instead of declaration files when referencing composite projects.\"),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:a(6621,e.DiagnosticCategory.Message,\"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621\",\"Emit more compliant, but verbose and less performant JavaScript for iteration.\"),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:a(6622,e.DiagnosticCategory.Message,\"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622\",\"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\"),Only_output_d_ts_files_and_not_JavaScript_files:a(6623,e.DiagnosticCategory.Message,\"Only_output_d_ts_files_and_not_JavaScript_files_6623\",\"Only output d.ts files and not JavaScript files.\"),Emit_design_type_metadata_for_decorated_declarations_in_source_files:a(6624,e.DiagnosticCategory.Message,\"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624\",\"Emit design-type metadata for decorated declarations in source files.\"),Disable_the_type_acquisition_for_JavaScript_projects:a(6625,e.DiagnosticCategory.Message,\"Disable_the_type_acquisition_for_JavaScript_projects_6625\",\"Disable the type acquisition for JavaScript projects\"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:a(6626,e.DiagnosticCategory.Message,\"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626\",\"Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.\"),Filters_results_from_the_include_option:a(6627,e.DiagnosticCategory.Message,\"Filters_results_from_the_include_option_6627\",\"Filters results from the `include` option.\"),Remove_a_list_of_directories_from_the_watch_process:a(6628,e.DiagnosticCategory.Message,\"Remove_a_list_of_directories_from_the_watch_process_6628\",\"Remove a list of directories from the watch process.\"),Remove_a_list_of_files_from_the_watch_mode_s_processing:a(6629,e.DiagnosticCategory.Message,\"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629\",\"Remove a list of files from the watch mode's processing.\"),Enable_experimental_support_for_TC39_stage_2_draft_decorators:a(6630,e.DiagnosticCategory.Message,\"Enable_experimental_support_for_TC39_stage_2_draft_decorators_6630\",\"Enable experimental support for TC39 stage 2 draft decorators.\"),Print_files_read_during_the_compilation_including_why_it_was_included:a(6631,e.DiagnosticCategory.Message,\"Print_files_read_during_the_compilation_including_why_it_was_included_6631\",\"Print files read during the compilation including why it was included.\"),Output_more_detailed_compiler_performance_information_after_building:a(6632,e.DiagnosticCategory.Message,\"Output_more_detailed_compiler_performance_information_after_building_6632\",\"Output more detailed compiler performance information after building.\"),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:a(6633,e.DiagnosticCategory.Message,\"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633\",\"Specify one or more path or node module references to base configuration files from which settings are inherited.\"),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:a(6634,e.DiagnosticCategory.Message,\"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634\",\"Specify what approach the watcher should use if the system runs out of native file watchers.\"),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:a(6635,e.DiagnosticCategory.Message,\"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635\",\"Include a list of files. This does not support glob patterns, as opposed to `include`.\"),Build_all_projects_including_those_that_appear_to_be_up_to_date:a(6636,e.DiagnosticCategory.Message,\"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636\",\"Build all projects, including those that appear to be up to date.\"),Ensure_that_casing_is_correct_in_imports:a(6637,e.DiagnosticCategory.Message,\"Ensure_that_casing_is_correct_in_imports_6637\",\"Ensure that casing is correct in imports.\"),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:a(6638,e.DiagnosticCategory.Message,\"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638\",\"Emit a v8 CPU profile of the compiler run for debugging.\"),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:a(6639,e.DiagnosticCategory.Message,\"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639\",\"Allow importing helper functions from tslib once per project, instead of including them per-file.\"),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:a(6641,e.DiagnosticCategory.Message,\"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641\",\"Specify a list of glob patterns that match files to be included in compilation.\"),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:a(6642,e.DiagnosticCategory.Message,\"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642\",\"Save .tsbuildinfo files to allow for incremental compilation of projects.\"),Include_sourcemap_files_inside_the_emitted_JavaScript:a(6643,e.DiagnosticCategory.Message,\"Include_sourcemap_files_inside_the_emitted_JavaScript_6643\",\"Include sourcemap files inside the emitted JavaScript.\"),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:a(6644,e.DiagnosticCategory.Message,\"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644\",\"Include source code in the sourcemaps inside the emitted JavaScript.\"),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:a(6645,e.DiagnosticCategory.Message,\"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645\",\"Ensure that each file can be safely transpiled without relying on other imports.\"),Specify_what_JSX_code_is_generated:a(6646,e.DiagnosticCategory.Message,\"Specify_what_JSX_code_is_generated_6646\",\"Specify what JSX code is generated.\"),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:a(6647,e.DiagnosticCategory.Message,\"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647\",\"Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.\"),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:a(6648,e.DiagnosticCategory.Message,\"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648\",\"Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\"),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:a(6649,e.DiagnosticCategory.Message,\"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649\",\"Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.\"),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:a(6650,e.DiagnosticCategory.Message,\"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650\",\"Make keyof only return strings instead of string, numbers or symbols. Legacy option.\"),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:a(6651,e.DiagnosticCategory.Message,\"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651\",\"Specify a set of bundled library declaration files that describe the target runtime environment.\"),Print_the_names_of_emitted_files_after_a_compilation:a(6652,e.DiagnosticCategory.Message,\"Print_the_names_of_emitted_files_after_a_compilation_6652\",\"Print the names of emitted files after a compilation.\"),Print_all_of_the_files_read_during_the_compilation:a(6653,e.DiagnosticCategory.Message,\"Print_all_of_the_files_read_during_the_compilation_6653\",\"Print all of the files read during the compilation.\"),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:a(6654,e.DiagnosticCategory.Message,\"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654\",\"Set the language of the messaging from TypeScript. This does not affect emit.\"),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:a(6655,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655\",\"Specify the location where debugger should locate map files instead of generated locations.\"),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:a(6656,e.DiagnosticCategory.Message,\"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656\",\"Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.\"),Specify_what_module_code_is_generated:a(6657,e.DiagnosticCategory.Message,\"Specify_what_module_code_is_generated_6657\",\"Specify what module code is generated.\"),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:a(6658,e.DiagnosticCategory.Message,\"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658\",\"Specify how TypeScript looks up a file from a given module specifier.\"),Set_the_newline_character_for_emitting_files:a(6659,e.DiagnosticCategory.Message,\"Set_the_newline_character_for_emitting_files_6659\",\"Set the newline character for emitting files.\"),Disable_emitting_files_from_a_compilation:a(6660,e.DiagnosticCategory.Message,\"Disable_emitting_files_from_a_compilation_6660\",\"Disable emitting files from a compilation.\"),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:a(6661,e.DiagnosticCategory.Message,\"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661\",\"Disable generating custom helper functions like '__extends' in compiled output.\"),Disable_emitting_files_if_any_type_checking_errors_are_reported:a(6662,e.DiagnosticCategory.Message,\"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662\",\"Disable emitting files if any type checking errors are reported.\"),Disable_truncating_types_in_error_messages:a(6663,e.DiagnosticCategory.Message,\"Disable_truncating_types_in_error_messages_6663\",\"Disable truncating types in error messages.\"),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:a(6664,e.DiagnosticCategory.Message,\"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664\",\"Enable error reporting for fallthrough cases in switch statements.\"),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:a(6665,e.DiagnosticCategory.Message,\"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665\",\"Enable error reporting for expressions and declarations with an implied 'any' type.\"),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:a(6666,e.DiagnosticCategory.Message,\"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666\",\"Ensure overriding members in derived classes are marked with an override modifier.\"),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:a(6667,e.DiagnosticCategory.Message,\"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667\",\"Enable error reporting for codepaths that do not explicitly return in a function.\"),Enable_error_reporting_when_this_is_given_the_type_any:a(6668,e.DiagnosticCategory.Message,\"Enable_error_reporting_when_this_is_given_the_type_any_6668\",\"Enable error reporting when 'this' is given the type 'any'.\"),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:a(6669,e.DiagnosticCategory.Message,\"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669\",\"Disable adding 'use strict' directives in emitted JavaScript files.\"),Disable_including_any_library_files_including_the_default_lib_d_ts:a(6670,e.DiagnosticCategory.Message,\"Disable_including_any_library_files_including_the_default_lib_d_ts_6670\",\"Disable including any library files, including the default lib.d.ts.\"),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:a(6671,e.DiagnosticCategory.Message,\"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671\",\"Enforces using indexed accessors for keys declared using an indexed type.\"),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:a(6672,e.DiagnosticCategory.Message,\"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672\",\"Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.\"),Disable_strict_checking_of_generic_signatures_in_function_types:a(6673,e.DiagnosticCategory.Message,\"Disable_strict_checking_of_generic_signatures_in_function_types_6673\",\"Disable strict checking of generic signatures in function types.\"),Add_undefined_to_a_type_when_accessed_using_an_index:a(6674,e.DiagnosticCategory.Message,\"Add_undefined_to_a_type_when_accessed_using_an_index_6674\",\"Add 'undefined' to a type when accessed using an index.\"),Enable_error_reporting_when_local_variables_aren_t_read:a(6675,e.DiagnosticCategory.Message,\"Enable_error_reporting_when_local_variables_aren_t_read_6675\",\"Enable error reporting when local variables aren't read.\"),Raise_an_error_when_a_function_parameter_isn_t_read:a(6676,e.DiagnosticCategory.Message,\"Raise_an_error_when_a_function_parameter_isn_t_read_6676\",\"Raise an error when a function parameter isn't read.\"),Deprecated_setting_Use_outFile_instead:a(6677,e.DiagnosticCategory.Message,\"Deprecated_setting_Use_outFile_instead_6677\",\"Deprecated setting. Use 'outFile' instead.\"),Specify_an_output_folder_for_all_emitted_files:a(6678,e.DiagnosticCategory.Message,\"Specify_an_output_folder_for_all_emitted_files_6678\",\"Specify an output folder for all emitted files.\"),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:a(6679,e.DiagnosticCategory.Message,\"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679\",\"Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.\"),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:a(6680,e.DiagnosticCategory.Message,\"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680\",\"Specify a set of entries that re-map imports to additional lookup locations.\"),Specify_a_list_of_language_service_plugins_to_include:a(6681,e.DiagnosticCategory.Message,\"Specify_a_list_of_language_service_plugins_to_include_6681\",\"Specify a list of language service plugins to include.\"),Disable_erasing_const_enum_declarations_in_generated_code:a(6682,e.DiagnosticCategory.Message,\"Disable_erasing_const_enum_declarations_in_generated_code_6682\",\"Disable erasing 'const enum' declarations in generated code.\"),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:a(6683,e.DiagnosticCategory.Message,\"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683\",\"Disable resolving symlinks to their realpath. This correlates to the same flag in node.\"),Disable_wiping_the_console_in_watch_mode:a(6684,e.DiagnosticCategory.Message,\"Disable_wiping_the_console_in_watch_mode_6684\",\"Disable wiping the console in watch mode.\"),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:a(6685,e.DiagnosticCategory.Message,\"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685\",\"Enable color and formatting in TypeScript's output to make compiler errors easier to read.\"),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:a(6686,e.DiagnosticCategory.Message,\"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686\",\"Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.\"),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:a(6687,e.DiagnosticCategory.Message,\"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687\",\"Specify an array of objects that specify paths for projects. Used in project references.\"),Disable_emitting_comments:a(6688,e.DiagnosticCategory.Message,\"Disable_emitting_comments_6688\",\"Disable emitting comments.\"),Enable_importing_json_files:a(6689,e.DiagnosticCategory.Message,\"Enable_importing_json_files_6689\",\"Enable importing .json files.\"),Specify_the_root_folder_within_your_source_files:a(6690,e.DiagnosticCategory.Message,\"Specify_the_root_folder_within_your_source_files_6690\",\"Specify the root folder within your source files.\"),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:a(6691,e.DiagnosticCategory.Message,\"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691\",\"Allow multiple folders to be treated as one when resolving modules.\"),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:a(6692,e.DiagnosticCategory.Message,\"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692\",\"Skip type checking .d.ts files that are included with TypeScript.\"),Skip_type_checking_all_d_ts_files:a(6693,e.DiagnosticCategory.Message,\"Skip_type_checking_all_d_ts_files_6693\",\"Skip type checking all .d.ts files.\"),Create_source_map_files_for_emitted_JavaScript_files:a(6694,e.DiagnosticCategory.Message,\"Create_source_map_files_for_emitted_JavaScript_files_6694\",\"Create source map files for emitted JavaScript files.\"),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:a(6695,e.DiagnosticCategory.Message,\"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695\",\"Specify the root path for debuggers to find the reference source code.\"),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:a(6697,e.DiagnosticCategory.Message,\"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697\",\"Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.\"),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:a(6698,e.DiagnosticCategory.Message,\"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698\",\"When assigning functions, check to ensure parameters and the return values are subtype-compatible.\"),When_type_checking_take_into_account_null_and_undefined:a(6699,e.DiagnosticCategory.Message,\"When_type_checking_take_into_account_null_and_undefined_6699\",\"When type checking, take into account 'null' and 'undefined'.\"),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:a(6700,e.DiagnosticCategory.Message,\"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700\",\"Check for class properties that are declared but not set in the constructor.\"),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:a(6701,e.DiagnosticCategory.Message,\"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701\",\"Disable emitting declarations that have '@internal' in their JSDoc comments.\"),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:a(6702,e.DiagnosticCategory.Message,\"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702\",\"Disable reporting of excess property errors during the creation of object literals.\"),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:a(6703,e.DiagnosticCategory.Message,\"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703\",\"Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.\"),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:a(6704,e.DiagnosticCategory.Message,\"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704\",\"Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\"),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:a(6705,e.DiagnosticCategory.Message,\"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705\",\"Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\"),Log_paths_used_during_the_moduleResolution_process:a(6706,e.DiagnosticCategory.Message,\"Log_paths_used_during_the_moduleResolution_process_6706\",\"Log paths used during the 'moduleResolution' process.\"),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:a(6707,e.DiagnosticCategory.Message,\"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707\",\"Specify the path to .tsbuildinfo incremental compilation file.\"),Specify_options_for_automatic_acquisition_of_declaration_files:a(6709,e.DiagnosticCategory.Message,\"Specify_options_for_automatic_acquisition_of_declaration_files_6709\",\"Specify options for automatic acquisition of declaration files.\"),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:a(6710,e.DiagnosticCategory.Message,\"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710\",\"Specify multiple folders that act like './node_modules/@types'.\"),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:a(6711,e.DiagnosticCategory.Message,\"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711\",\"Specify type package names to be included without being referenced in a source file.\"),Emit_ECMAScript_standard_compliant_class_fields:a(6712,e.DiagnosticCategory.Message,\"Emit_ECMAScript_standard_compliant_class_fields_6712\",\"Emit ECMAScript-standard-compliant class fields.\"),Enable_verbose_logging:a(6713,e.DiagnosticCategory.Message,\"Enable_verbose_logging_6713\",\"Enable verbose logging.\"),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:a(6714,e.DiagnosticCategory.Message,\"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714\",\"Specify how directories are watched on systems that lack recursive file-watching functionality.\"),Specify_how_the_TypeScript_watch_mode_works:a(6715,e.DiagnosticCategory.Message,\"Specify_how_the_TypeScript_watch_mode_works_6715\",\"Specify how the TypeScript watch mode works.\"),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:a(6717,e.DiagnosticCategory.Message,\"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717\",\"Require undeclared properties from index signatures to use element accesses.\"),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:a(6718,e.DiagnosticCategory.Message,\"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718\",\"Specify emit/checking behavior for imports that are only used for types.\"),Default_catch_clause_variables_as_unknown_instead_of_any:a(6803,e.DiagnosticCategory.Message,\"Default_catch_clause_variables_as_unknown_instead_of_any_6803\",\"Default catch clause variables as 'unknown' instead of 'any'.\"),one_of_Colon:a(6900,e.DiagnosticCategory.Message,\"one_of_Colon_6900\",\"one of:\"),one_or_more_Colon:a(6901,e.DiagnosticCategory.Message,\"one_or_more_Colon_6901\",\"one or more:\"),type_Colon:a(6902,e.DiagnosticCategory.Message,\"type_Colon_6902\",\"type:\"),default_Colon:a(6903,e.DiagnosticCategory.Message,\"default_Colon_6903\",\"default:\"),module_system_or_esModuleInterop:a(6904,e.DiagnosticCategory.Message,\"module_system_or_esModuleInterop_6904\",'module === \"system\" or esModuleInterop'),false_unless_strict_is_set:a(6905,e.DiagnosticCategory.Message,\"false_unless_strict_is_set_6905\",\"`false`, unless `strict` is set\"),false_unless_composite_is_set:a(6906,e.DiagnosticCategory.Message,\"false_unless_composite_is_set_6906\",\"`false`, unless `composite` is set\"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:a(6907,e.DiagnosticCategory.Message,\"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907\",'`[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:a(6908,e.DiagnosticCategory.Message,\"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908\",'`[]` if `files` is specified, otherwise `[\"**/*\"]`'),true_if_composite_false_otherwise:a(6909,e.DiagnosticCategory.Message,\"true_if_composite_false_otherwise_6909\",\"`true` if `composite`, `false` otherwise\"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:a(69010,e.DiagnosticCategory.Message,\"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010\",\"module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`\"),Computed_from_the_list_of_input_files:a(6911,e.DiagnosticCategory.Message,\"Computed_from_the_list_of_input_files_6911\",\"Computed from the list of input files\"),Platform_specific:a(6912,e.DiagnosticCategory.Message,\"Platform_specific_6912\",\"Platform specific\"),You_can_learn_about_all_of_the_compiler_options_at_0:a(6913,e.DiagnosticCategory.Message,\"You_can_learn_about_all_of_the_compiler_options_at_0_6913\",\"You can learn about all of the compiler options at {0}\"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:a(6914,e.DiagnosticCategory.Message,\"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914\",\"Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:\"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:a(6915,e.DiagnosticCategory.Message,\"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915\",\"Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}\"),COMMON_COMMANDS:a(6916,e.DiagnosticCategory.Message,\"COMMON_COMMANDS_6916\",\"COMMON COMMANDS\"),ALL_COMPILER_OPTIONS:a(6917,e.DiagnosticCategory.Message,\"ALL_COMPILER_OPTIONS_6917\",\"ALL COMPILER OPTIONS\"),WATCH_OPTIONS:a(6918,e.DiagnosticCategory.Message,\"WATCH_OPTIONS_6918\",\"WATCH OPTIONS\"),BUILD_OPTIONS:a(6919,e.DiagnosticCategory.Message,\"BUILD_OPTIONS_6919\",\"BUILD OPTIONS\"),COMMON_COMPILER_OPTIONS:a(6920,e.DiagnosticCategory.Message,\"COMMON_COMPILER_OPTIONS_6920\",\"COMMON COMPILER OPTIONS\"),COMMAND_LINE_FLAGS:a(6921,e.DiagnosticCategory.Message,\"COMMAND_LINE_FLAGS_6921\",\"COMMAND LINE FLAGS\"),tsc_Colon_The_TypeScript_Compiler:a(6922,e.DiagnosticCategory.Message,\"tsc_Colon_The_TypeScript_Compiler_6922\",\"tsc: The TypeScript Compiler\"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:a(6923,e.DiagnosticCategory.Message,\"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923\",\"Compiles the current project (tsconfig.json in the working directory.)\"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:a(6924,e.DiagnosticCategory.Message,\"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924\",\"Ignoring tsconfig.json, compiles the specified files with default compiler options.\"),Build_a_composite_project_in_the_working_directory:a(6925,e.DiagnosticCategory.Message,\"Build_a_composite_project_in_the_working_directory_6925\",\"Build a composite project in the working directory.\"),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:a(6926,e.DiagnosticCategory.Message,\"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926\",\"Creates a tsconfig.json with the recommended settings in the working directory.\"),Compiles_the_TypeScript_project_located_at_the_specified_path:a(6927,e.DiagnosticCategory.Message,\"Compiles_the_TypeScript_project_located_at_the_specified_path_6927\",\"Compiles the TypeScript project located at the specified path.\"),An_expanded_version_of_this_information_showing_all_possible_compiler_options:a(6928,e.DiagnosticCategory.Message,\"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928\",\"An expanded version of this information, showing all possible compiler options\"),Compiles_the_current_project_with_additional_settings:a(6929,e.DiagnosticCategory.Message,\"Compiles_the_current_project_with_additional_settings_6929\",\"Compiles the current project, with additional settings.\"),true_for_ES2022_and_above_including_ESNext:a(6930,e.DiagnosticCategory.Message,\"true_for_ES2022_and_above_including_ESNext_6930\",\"`true` for ES2022 and above, including ESNext.\"),List_of_file_name_suffixes_to_search_when_resolving_a_module:a(6931,e.DiagnosticCategory.Error,\"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931\",\"List of file name suffixes to search when resolving a module.\"),Variable_0_implicitly_has_an_1_type:a(7005,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_an_1_type_7005\",\"Variable '{0}' implicitly has an '{1}' type.\"),Parameter_0_implicitly_has_an_1_type:a(7006,e.DiagnosticCategory.Error,\"Parameter_0_implicitly_has_an_1_type_7006\",\"Parameter '{0}' implicitly has an '{1}' type.\"),Member_0_implicitly_has_an_1_type:a(7008,e.DiagnosticCategory.Error,\"Member_0_implicitly_has_an_1_type_7008\",\"Member '{0}' implicitly has an '{1}' type.\"),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:a(7009,e.DiagnosticCategory.Error,\"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009\",\"'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:a(7010,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.\"),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:a(7011,e.DiagnosticCategory.Error,\"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011\",\"Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:a(7013,e.DiagnosticCategory.Error,\"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013\",\"Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:a(7014,e.DiagnosticCategory.Error,\"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014\",\"Function type, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:a(7015,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015\",\"Element implicitly has an 'any' type because index expression is not of type 'number'.\"),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:a(7016,e.DiagnosticCategory.Error,\"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016\",\"Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:a(7017,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017\",\"Element implicitly has an 'any' type because type '{0}' has no index signature.\"),Object_literal_s_property_0_implicitly_has_an_1_type:a(7018,e.DiagnosticCategory.Error,\"Object_literal_s_property_0_implicitly_has_an_1_type_7018\",\"Object literal's property '{0}' implicitly has an '{1}' type.\"),Rest_parameter_0_implicitly_has_an_any_type:a(7019,e.DiagnosticCategory.Error,\"Rest_parameter_0_implicitly_has_an_any_type_7019\",\"Rest parameter '{0}' implicitly has an 'any[]' type.\"),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:a(7020,e.DiagnosticCategory.Error,\"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020\",\"Call signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:a(7022,e.DiagnosticCategory.Error,\"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022\",\"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\"),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:a(7023,e.DiagnosticCategory.Error,\"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023\",\"'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:a(7024,e.DiagnosticCategory.Error,\"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024\",\"Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:a(7025,e.DiagnosticCategory.Error,\"Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025\",\"Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation.\"),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:a(7026,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026\",\"JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.\"),Unreachable_code_detected:a(7027,e.DiagnosticCategory.Error,\"Unreachable_code_detected_7027\",\"Unreachable code detected.\",!0),Unused_label:a(7028,e.DiagnosticCategory.Error,\"Unused_label_7028\",\"Unused label.\",!0),Fallthrough_case_in_switch:a(7029,e.DiagnosticCategory.Error,\"Fallthrough_case_in_switch_7029\",\"Fallthrough case in switch.\"),Not_all_code_paths_return_a_value:a(7030,e.DiagnosticCategory.Error,\"Not_all_code_paths_return_a_value_7030\",\"Not all code paths return a value.\"),Binding_element_0_implicitly_has_an_1_type:a(7031,e.DiagnosticCategory.Error,\"Binding_element_0_implicitly_has_an_1_type_7031\",\"Binding element '{0}' implicitly has an '{1}' type.\"),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:a(7032,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032\",\"Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.\"),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:a(7033,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033\",\"Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.\"),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:a(7034,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034\",\"Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.\"),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:a(7035,e.DiagnosticCategory.Error,\"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035\",\"Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`\"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:a(7036,e.DiagnosticCategory.Error,\"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036\",\"Dynamic import's specifier must be of type 'string', but here has type '{0}'.\"),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:a(7037,e.DiagnosticCategory.Message,\"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037\",\"Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.\"),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:a(7038,e.DiagnosticCategory.Message,\"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038\",\"Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.\"),Mapped_object_type_implicitly_has_an_any_template_type:a(7039,e.DiagnosticCategory.Error,\"Mapped_object_type_implicitly_has_an_any_template_type_7039\",\"Mapped object type implicitly has an 'any' template type.\"),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:a(7040,e.DiagnosticCategory.Error,\"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040\",\"If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'\"),The_containing_arrow_function_captures_the_global_value_of_this:a(7041,e.DiagnosticCategory.Error,\"The_containing_arrow_function_captures_the_global_value_of_this_7041\",\"The containing arrow function captures the global value of 'this'.\"),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:a(7042,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042\",\"Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.\"),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7043,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043\",\"Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7044,e.DiagnosticCategory.Suggestion,\"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044\",\"Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7045,e.DiagnosticCategory.Suggestion,\"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045\",\"Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:a(7046,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046\",\"Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.\"),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:a(7047,e.DiagnosticCategory.Suggestion,\"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047\",\"Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:a(7048,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048\",\"Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:a(7049,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049\",\"Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.\"),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:a(7050,e.DiagnosticCategory.Suggestion,\"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050\",\"'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.\"),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:a(7051,e.DiagnosticCategory.Error,\"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051\",\"Parameter has a name but no type. Did you mean '{0}: {1}'?\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:a(7052,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052\",\"Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?\"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:a(7053,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053\",\"Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.\"),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:a(7054,e.DiagnosticCategory.Error,\"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054\",\"No index signature with a parameter of type '{0}' was found on type '{1}'.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:a(7055,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.\"),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:a(7056,e.DiagnosticCategory.Error,\"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056\",\"The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.\"),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:a(7057,e.DiagnosticCategory.Error,\"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057\",\"'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.\"),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:a(7058,e.DiagnosticCategory.Error,\"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058\",\"If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`\"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:a(7059,e.DiagnosticCategory.Error,\"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059\",\"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:a(7060,e.DiagnosticCategory.Error,\"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060\",\"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.\"),A_mapped_type_may_not_declare_properties_or_methods:a(7061,e.DiagnosticCategory.Error,\"A_mapped_type_may_not_declare_properties_or_methods_7061\",\"A mapped type may not declare properties or methods.\"),You_cannot_rename_this_element:a(8e3,e.DiagnosticCategory.Error,\"You_cannot_rename_this_element_8000\",\"You cannot rename this element.\"),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:a(8001,e.DiagnosticCategory.Error,\"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001\",\"You cannot rename elements that are defined in the standard TypeScript library.\"),import_can_only_be_used_in_TypeScript_files:a(8002,e.DiagnosticCategory.Error,\"import_can_only_be_used_in_TypeScript_files_8002\",\"'import ... =' can only be used in TypeScript files.\"),export_can_only_be_used_in_TypeScript_files:a(8003,e.DiagnosticCategory.Error,\"export_can_only_be_used_in_TypeScript_files_8003\",\"'export =' can only be used in TypeScript files.\"),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:a(8004,e.DiagnosticCategory.Error,\"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004\",\"Type parameter declarations can only be used in TypeScript files.\"),implements_clauses_can_only_be_used_in_TypeScript_files:a(8005,e.DiagnosticCategory.Error,\"implements_clauses_can_only_be_used_in_TypeScript_files_8005\",\"'implements' clauses can only be used in TypeScript files.\"),_0_declarations_can_only_be_used_in_TypeScript_files:a(8006,e.DiagnosticCategory.Error,\"_0_declarations_can_only_be_used_in_TypeScript_files_8006\",\"'{0}' declarations can only be used in TypeScript files.\"),Type_aliases_can_only_be_used_in_TypeScript_files:a(8008,e.DiagnosticCategory.Error,\"Type_aliases_can_only_be_used_in_TypeScript_files_8008\",\"Type aliases can only be used in TypeScript files.\"),The_0_modifier_can_only_be_used_in_TypeScript_files:a(8009,e.DiagnosticCategory.Error,\"The_0_modifier_can_only_be_used_in_TypeScript_files_8009\",\"The '{0}' modifier can only be used in TypeScript files.\"),Type_annotations_can_only_be_used_in_TypeScript_files:a(8010,e.DiagnosticCategory.Error,\"Type_annotations_can_only_be_used_in_TypeScript_files_8010\",\"Type annotations can only be used in TypeScript files.\"),Type_arguments_can_only_be_used_in_TypeScript_files:a(8011,e.DiagnosticCategory.Error,\"Type_arguments_can_only_be_used_in_TypeScript_files_8011\",\"Type arguments can only be used in TypeScript files.\"),Parameter_modifiers_can_only_be_used_in_TypeScript_files:a(8012,e.DiagnosticCategory.Error,\"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012\",\"Parameter modifiers can only be used in TypeScript files.\"),Non_null_assertions_can_only_be_used_in_TypeScript_files:a(8013,e.DiagnosticCategory.Error,\"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013\",\"Non-null assertions can only be used in TypeScript files.\"),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:a(8016,e.DiagnosticCategory.Error,\"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016\",\"Type assertion expressions can only be used in TypeScript files.\"),Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:a(8017,e.DiagnosticCategory.Error,\"Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0_8017\",\"Octal literal types must use ES2015 syntax. Use the syntax '{0}'.\"),Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0:a(8018,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0_8018\",\"Octal literals are not allowed in enums members initializer. Use the syntax '{0}'.\"),Report_errors_in_js_files:a(8019,e.DiagnosticCategory.Message,\"Report_errors_in_js_files_8019\",\"Report errors in .js files.\"),JSDoc_types_can_only_be_used_inside_documentation_comments:a(8020,e.DiagnosticCategory.Error,\"JSDoc_types_can_only_be_used_inside_documentation_comments_8020\",\"JSDoc types can only be used inside documentation comments.\"),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:a(8021,e.DiagnosticCategory.Error,\"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021\",\"JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\"),JSDoc_0_is_not_attached_to_a_class:a(8022,e.DiagnosticCategory.Error,\"JSDoc_0_is_not_attached_to_a_class_8022\",\"JSDoc '@{0}' is not attached to a class.\"),JSDoc_0_1_does_not_match_the_extends_2_clause:a(8023,e.DiagnosticCategory.Error,\"JSDoc_0_1_does_not_match_the_extends_2_clause_8023\",\"JSDoc '@{0} {1}' does not match the 'extends {2}' clause.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:a(8024,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name.\"),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:a(8025,e.DiagnosticCategory.Error,\"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025\",\"Class declarations cannot have more than one '@augments' or '@extends' tag.\"),Expected_0_type_arguments_provide_these_with_an_extends_tag:a(8026,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026\",\"Expected {0} type arguments; provide these with an '@extends' tag.\"),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:a(8027,e.DiagnosticCategory.Error,\"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027\",\"Expected {0}-{1} type arguments; provide these with an '@extends' tag.\"),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:a(8028,e.DiagnosticCategory.Error,\"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028\",\"JSDoc '...' may only appear in the last parameter of a signature.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:a(8029,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.\"),The_type_of_a_function_declaration_must_match_the_function_s_signature:a(8030,e.DiagnosticCategory.Error,\"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030\",\"The type of a function declaration must match the function's signature.\"),You_cannot_rename_a_module_via_a_global_import:a(8031,e.DiagnosticCategory.Error,\"You_cannot_rename_a_module_via_a_global_import_8031\",\"You cannot rename a module via a global import.\"),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:a(8032,e.DiagnosticCategory.Error,\"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032\",\"Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.\"),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:a(8033,e.DiagnosticCategory.Error,\"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033\",\"A JSDoc '@typedef' comment may not contain multiple '@type' tags.\"),The_tag_was_first_specified_here:a(8034,e.DiagnosticCategory.Error,\"The_tag_was_first_specified_here_8034\",\"The tag was first specified here.\"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:a(9005,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005\",\"Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.\"),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:a(9006,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006\",\"Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.\"),JSX_attributes_must_only_be_assigned_a_non_empty_expression:a(17e3,e.DiagnosticCategory.Error,\"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000\",\"JSX attributes must only be assigned a non-empty 'expression'.\"),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:a(17001,e.DiagnosticCategory.Error,\"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001\",\"JSX elements cannot have multiple attributes with the same name.\"),Expected_corresponding_JSX_closing_tag_for_0:a(17002,e.DiagnosticCategory.Error,\"Expected_corresponding_JSX_closing_tag_for_0_17002\",\"Expected corresponding JSX closing tag for '{0}'.\"),Cannot_use_JSX_unless_the_jsx_flag_is_provided:a(17004,e.DiagnosticCategory.Error,\"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004\",\"Cannot use JSX unless the '--jsx' flag is provided.\"),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:a(17005,e.DiagnosticCategory.Error,\"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005\",\"A constructor cannot contain a 'super' call when its class extends 'null'.\"),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:a(17006,e.DiagnosticCategory.Error,\"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006\",\"An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:a(17007,e.DiagnosticCategory.Error,\"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007\",\"A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),JSX_element_0_has_no_corresponding_closing_tag:a(17008,e.DiagnosticCategory.Error,\"JSX_element_0_has_no_corresponding_closing_tag_17008\",\"JSX element '{0}' has no corresponding closing tag.\"),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:a(17009,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009\",\"'super' must be called before accessing 'this' in the constructor of a derived class.\"),Unknown_type_acquisition_option_0:a(17010,e.DiagnosticCategory.Error,\"Unknown_type_acquisition_option_0_17010\",\"Unknown type acquisition option '{0}'.\"),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:a(17011,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011\",\"'super' must be called before accessing a property of 'super' in the constructor of a derived class.\"),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:a(17012,e.DiagnosticCategory.Error,\"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012\",\"'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?\"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:a(17013,e.DiagnosticCategory.Error,\"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013\",\"Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.\"),JSX_fragment_has_no_corresponding_closing_tag:a(17014,e.DiagnosticCategory.Error,\"JSX_fragment_has_no_corresponding_closing_tag_17014\",\"JSX fragment has no corresponding closing tag.\"),Expected_corresponding_closing_tag_for_JSX_fragment:a(17015,e.DiagnosticCategory.Error,\"Expected_corresponding_closing_tag_for_JSX_fragment_17015\",\"Expected corresponding closing tag for JSX fragment.\"),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:a(17016,e.DiagnosticCategory.Error,\"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016\",\"The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.\"),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:a(17017,e.DiagnosticCategory.Error,\"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017\",\"An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.\"),Unknown_type_acquisition_option_0_Did_you_mean_1:a(17018,e.DiagnosticCategory.Error,\"Unknown_type_acquisition_option_0_Did_you_mean_1_17018\",\"Unknown type acquisition option '{0}'. Did you mean '{1}'?\"),Circularity_detected_while_resolving_configuration_Colon_0:a(18e3,e.DiagnosticCategory.Error,\"Circularity_detected_while_resolving_configuration_Colon_0_18000\",\"Circularity detected while resolving configuration: {0}\"),The_files_list_in_config_file_0_is_empty:a(18002,e.DiagnosticCategory.Error,\"The_files_list_in_config_file_0_is_empty_18002\",\"The 'files' list in config file '{0}' is empty.\"),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:a(18003,e.DiagnosticCategory.Error,\"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003\",\"No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.\"),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:a(80001,e.DiagnosticCategory.Suggestion,\"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001\",\"File is a CommonJS module; it may be converted to an ES module.\"),This_constructor_function_may_be_converted_to_a_class_declaration:a(80002,e.DiagnosticCategory.Suggestion,\"This_constructor_function_may_be_converted_to_a_class_declaration_80002\",\"This constructor function may be converted to a class declaration.\"),Import_may_be_converted_to_a_default_import:a(80003,e.DiagnosticCategory.Suggestion,\"Import_may_be_converted_to_a_default_import_80003\",\"Import may be converted to a default import.\"),JSDoc_types_may_be_moved_to_TypeScript_types:a(80004,e.DiagnosticCategory.Suggestion,\"JSDoc_types_may_be_moved_to_TypeScript_types_80004\",\"JSDoc types may be moved to TypeScript types.\"),require_call_may_be_converted_to_an_import:a(80005,e.DiagnosticCategory.Suggestion,\"require_call_may_be_converted_to_an_import_80005\",\"'require' call may be converted to an import.\"),This_may_be_converted_to_an_async_function:a(80006,e.DiagnosticCategory.Suggestion,\"This_may_be_converted_to_an_async_function_80006\",\"This may be converted to an async function.\"),await_has_no_effect_on_the_type_of_this_expression:a(80007,e.DiagnosticCategory.Suggestion,\"await_has_no_effect_on_the_type_of_this_expression_80007\",\"'await' has no effect on the type of this expression.\"),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:a(80008,e.DiagnosticCategory.Suggestion,\"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008\",\"Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.\"),Add_missing_super_call:a(90001,e.DiagnosticCategory.Message,\"Add_missing_super_call_90001\",\"Add missing 'super()' call\"),Make_super_call_the_first_statement_in_the_constructor:a(90002,e.DiagnosticCategory.Message,\"Make_super_call_the_first_statement_in_the_constructor_90002\",\"Make 'super()' call the first statement in the constructor\"),Change_extends_to_implements:a(90003,e.DiagnosticCategory.Message,\"Change_extends_to_implements_90003\",\"Change 'extends' to 'implements'\"),Remove_unused_declaration_for_Colon_0:a(90004,e.DiagnosticCategory.Message,\"Remove_unused_declaration_for_Colon_0_90004\",\"Remove unused declaration for: '{0}'\"),Remove_import_from_0:a(90005,e.DiagnosticCategory.Message,\"Remove_import_from_0_90005\",\"Remove import from '{0}'\"),Implement_interface_0:a(90006,e.DiagnosticCategory.Message,\"Implement_interface_0_90006\",\"Implement interface '{0}'\"),Implement_inherited_abstract_class:a(90007,e.DiagnosticCategory.Message,\"Implement_inherited_abstract_class_90007\",\"Implement inherited abstract class\"),Add_0_to_unresolved_variable:a(90008,e.DiagnosticCategory.Message,\"Add_0_to_unresolved_variable_90008\",\"Add '{0}.' to unresolved variable\"),Remove_variable_statement:a(90010,e.DiagnosticCategory.Message,\"Remove_variable_statement_90010\",\"Remove variable statement\"),Remove_template_tag:a(90011,e.DiagnosticCategory.Message,\"Remove_template_tag_90011\",\"Remove template tag\"),Remove_type_parameters:a(90012,e.DiagnosticCategory.Message,\"Remove_type_parameters_90012\",\"Remove type parameters\"),Import_0_from_1:a(90013,e.DiagnosticCategory.Message,\"Import_0_from_1_90013\",`Import '{0}' from \"{1}\"`),Change_0_to_1:a(90014,e.DiagnosticCategory.Message,\"Change_0_to_1_90014\",\"Change '{0}' to '{1}'\"),Declare_property_0:a(90016,e.DiagnosticCategory.Message,\"Declare_property_0_90016\",\"Declare property '{0}'\"),Add_index_signature_for_property_0:a(90017,e.DiagnosticCategory.Message,\"Add_index_signature_for_property_0_90017\",\"Add index signature for property '{0}'\"),Disable_checking_for_this_file:a(90018,e.DiagnosticCategory.Message,\"Disable_checking_for_this_file_90018\",\"Disable checking for this file\"),Ignore_this_error_message:a(90019,e.DiagnosticCategory.Message,\"Ignore_this_error_message_90019\",\"Ignore this error message\"),Initialize_property_0_in_the_constructor:a(90020,e.DiagnosticCategory.Message,\"Initialize_property_0_in_the_constructor_90020\",\"Initialize property '{0}' in the constructor\"),Initialize_static_property_0:a(90021,e.DiagnosticCategory.Message,\"Initialize_static_property_0_90021\",\"Initialize static property '{0}'\"),Change_spelling_to_0:a(90022,e.DiagnosticCategory.Message,\"Change_spelling_to_0_90022\",\"Change spelling to '{0}'\"),Declare_method_0:a(90023,e.DiagnosticCategory.Message,\"Declare_method_0_90023\",\"Declare method '{0}'\"),Declare_static_method_0:a(90024,e.DiagnosticCategory.Message,\"Declare_static_method_0_90024\",\"Declare static method '{0}'\"),Prefix_0_with_an_underscore:a(90025,e.DiagnosticCategory.Message,\"Prefix_0_with_an_underscore_90025\",\"Prefix '{0}' with an underscore\"),Rewrite_as_the_indexed_access_type_0:a(90026,e.DiagnosticCategory.Message,\"Rewrite_as_the_indexed_access_type_0_90026\",\"Rewrite as the indexed access type '{0}'\"),Declare_static_property_0:a(90027,e.DiagnosticCategory.Message,\"Declare_static_property_0_90027\",\"Declare static property '{0}'\"),Call_decorator_expression:a(90028,e.DiagnosticCategory.Message,\"Call_decorator_expression_90028\",\"Call decorator expression\"),Add_async_modifier_to_containing_function:a(90029,e.DiagnosticCategory.Message,\"Add_async_modifier_to_containing_function_90029\",\"Add async modifier to containing function\"),Replace_infer_0_with_unknown:a(90030,e.DiagnosticCategory.Message,\"Replace_infer_0_with_unknown_90030\",\"Replace 'infer {0}' with 'unknown'\"),Replace_all_unused_infer_with_unknown:a(90031,e.DiagnosticCategory.Message,\"Replace_all_unused_infer_with_unknown_90031\",\"Replace all unused 'infer' with 'unknown'\"),Add_parameter_name:a(90034,e.DiagnosticCategory.Message,\"Add_parameter_name_90034\",\"Add parameter name\"),Declare_private_property_0:a(90035,e.DiagnosticCategory.Message,\"Declare_private_property_0_90035\",\"Declare private property '{0}'\"),Replace_0_with_Promise_1:a(90036,e.DiagnosticCategory.Message,\"Replace_0_with_Promise_1_90036\",\"Replace '{0}' with 'Promise<{1}>'\"),Fix_all_incorrect_return_type_of_an_async_functions:a(90037,e.DiagnosticCategory.Message,\"Fix_all_incorrect_return_type_of_an_async_functions_90037\",\"Fix all incorrect return type of an async functions\"),Declare_private_method_0:a(90038,e.DiagnosticCategory.Message,\"Declare_private_method_0_90038\",\"Declare private method '{0}'\"),Remove_unused_destructuring_declaration:a(90039,e.DiagnosticCategory.Message,\"Remove_unused_destructuring_declaration_90039\",\"Remove unused destructuring declaration\"),Remove_unused_declarations_for_Colon_0:a(90041,e.DiagnosticCategory.Message,\"Remove_unused_declarations_for_Colon_0_90041\",\"Remove unused declarations for: '{0}'\"),Declare_a_private_field_named_0:a(90053,e.DiagnosticCategory.Message,\"Declare_a_private_field_named_0_90053\",\"Declare a private field named '{0}'.\"),Includes_imports_of_types_referenced_by_0:a(90054,e.DiagnosticCategory.Message,\"Includes_imports_of_types_referenced_by_0_90054\",\"Includes imports of types referenced by '{0}'\"),Remove_type_from_import_declaration_from_0:a(90055,e.DiagnosticCategory.Message,\"Remove_type_from_import_declaration_from_0_90055\",`Remove 'type' from import declaration from \"{0}\"`),Remove_type_from_import_of_0_from_1:a(90056,e.DiagnosticCategory.Message,\"Remove_type_from_import_of_0_from_1_90056\",`Remove 'type' from import of '{0}' from \"{1}\"`),Add_import_from_0:a(90057,e.DiagnosticCategory.Message,\"Add_import_from_0_90057\",'Add import from \"{0}\"'),Update_import_from_0:a(90058,e.DiagnosticCategory.Message,\"Update_import_from_0_90058\",'Update import from \"{0}\"'),Convert_function_to_an_ES2015_class:a(95001,e.DiagnosticCategory.Message,\"Convert_function_to_an_ES2015_class_95001\",\"Convert function to an ES2015 class\"),Convert_0_to_1_in_0:a(95003,e.DiagnosticCategory.Message,\"Convert_0_to_1_in_0_95003\",\"Convert '{0}' to '{1} in {0}'\"),Extract_to_0_in_1:a(95004,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_95004\",\"Extract to {0} in {1}\"),Extract_function:a(95005,e.DiagnosticCategory.Message,\"Extract_function_95005\",\"Extract function\"),Extract_constant:a(95006,e.DiagnosticCategory.Message,\"Extract_constant_95006\",\"Extract constant\"),Extract_to_0_in_enclosing_scope:a(95007,e.DiagnosticCategory.Message,\"Extract_to_0_in_enclosing_scope_95007\",\"Extract to {0} in enclosing scope\"),Extract_to_0_in_1_scope:a(95008,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_scope_95008\",\"Extract to {0} in {1} scope\"),Annotate_with_type_from_JSDoc:a(95009,e.DiagnosticCategory.Message,\"Annotate_with_type_from_JSDoc_95009\",\"Annotate with type from JSDoc\"),Infer_type_of_0_from_usage:a(95011,e.DiagnosticCategory.Message,\"Infer_type_of_0_from_usage_95011\",\"Infer type of '{0}' from usage\"),Infer_parameter_types_from_usage:a(95012,e.DiagnosticCategory.Message,\"Infer_parameter_types_from_usage_95012\",\"Infer parameter types from usage\"),Convert_to_default_import:a(95013,e.DiagnosticCategory.Message,\"Convert_to_default_import_95013\",\"Convert to default import\"),Install_0:a(95014,e.DiagnosticCategory.Message,\"Install_0_95014\",\"Install '{0}'\"),Replace_import_with_0:a(95015,e.DiagnosticCategory.Message,\"Replace_import_with_0_95015\",\"Replace import with '{0}'.\"),Use_synthetic_default_member:a(95016,e.DiagnosticCategory.Message,\"Use_synthetic_default_member_95016\",\"Use synthetic 'default' member.\"),Convert_to_ES_module:a(95017,e.DiagnosticCategory.Message,\"Convert_to_ES_module_95017\",\"Convert to ES module\"),Add_undefined_type_to_property_0:a(95018,e.DiagnosticCategory.Message,\"Add_undefined_type_to_property_0_95018\",\"Add 'undefined' type to property '{0}'\"),Add_initializer_to_property_0:a(95019,e.DiagnosticCategory.Message,\"Add_initializer_to_property_0_95019\",\"Add initializer to property '{0}'\"),Add_definite_assignment_assertion_to_property_0:a(95020,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertion_to_property_0_95020\",\"Add definite assignment assertion to property '{0}'\"),Convert_all_type_literals_to_mapped_type:a(95021,e.DiagnosticCategory.Message,\"Convert_all_type_literals_to_mapped_type_95021\",\"Convert all type literals to mapped type\"),Add_all_missing_members:a(95022,e.DiagnosticCategory.Message,\"Add_all_missing_members_95022\",\"Add all missing members\"),Infer_all_types_from_usage:a(95023,e.DiagnosticCategory.Message,\"Infer_all_types_from_usage_95023\",\"Infer all types from usage\"),Delete_all_unused_declarations:a(95024,e.DiagnosticCategory.Message,\"Delete_all_unused_declarations_95024\",\"Delete all unused declarations\"),Prefix_all_unused_declarations_with_where_possible:a(95025,e.DiagnosticCategory.Message,\"Prefix_all_unused_declarations_with_where_possible_95025\",\"Prefix all unused declarations with '_' where possible\"),Fix_all_detected_spelling_errors:a(95026,e.DiagnosticCategory.Message,\"Fix_all_detected_spelling_errors_95026\",\"Fix all detected spelling errors\"),Add_initializers_to_all_uninitialized_properties:a(95027,e.DiagnosticCategory.Message,\"Add_initializers_to_all_uninitialized_properties_95027\",\"Add initializers to all uninitialized properties\"),Add_definite_assignment_assertions_to_all_uninitialized_properties:a(95028,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028\",\"Add definite assignment assertions to all uninitialized properties\"),Add_undefined_type_to_all_uninitialized_properties:a(95029,e.DiagnosticCategory.Message,\"Add_undefined_type_to_all_uninitialized_properties_95029\",\"Add undefined type to all uninitialized properties\"),Change_all_jsdoc_style_types_to_TypeScript:a(95030,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_95030\",\"Change all jsdoc-style types to TypeScript\"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:a(95031,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031\",\"Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)\"),Implement_all_unimplemented_interfaces:a(95032,e.DiagnosticCategory.Message,\"Implement_all_unimplemented_interfaces_95032\",\"Implement all unimplemented interfaces\"),Install_all_missing_types_packages:a(95033,e.DiagnosticCategory.Message,\"Install_all_missing_types_packages_95033\",\"Install all missing types packages\"),Rewrite_all_as_indexed_access_types:a(95034,e.DiagnosticCategory.Message,\"Rewrite_all_as_indexed_access_types_95034\",\"Rewrite all as indexed access types\"),Convert_all_to_default_imports:a(95035,e.DiagnosticCategory.Message,\"Convert_all_to_default_imports_95035\",\"Convert all to default imports\"),Make_all_super_calls_the_first_statement_in_their_constructor:a(95036,e.DiagnosticCategory.Message,\"Make_all_super_calls_the_first_statement_in_their_constructor_95036\",\"Make all 'super()' calls the first statement in their constructor\"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:a(95037,e.DiagnosticCategory.Message,\"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037\",\"Add qualifier to all unresolved variables matching a member name\"),Change_all_extended_interfaces_to_implements:a(95038,e.DiagnosticCategory.Message,\"Change_all_extended_interfaces_to_implements_95038\",\"Change all extended interfaces to 'implements'\"),Add_all_missing_super_calls:a(95039,e.DiagnosticCategory.Message,\"Add_all_missing_super_calls_95039\",\"Add all missing super calls\"),Implement_all_inherited_abstract_classes:a(95040,e.DiagnosticCategory.Message,\"Implement_all_inherited_abstract_classes_95040\",\"Implement all inherited abstract classes\"),Add_all_missing_async_modifiers:a(95041,e.DiagnosticCategory.Message,\"Add_all_missing_async_modifiers_95041\",\"Add all missing 'async' modifiers\"),Add_ts_ignore_to_all_error_messages:a(95042,e.DiagnosticCategory.Message,\"Add_ts_ignore_to_all_error_messages_95042\",\"Add '@ts-ignore' to all error messages\"),Annotate_everything_with_types_from_JSDoc:a(95043,e.DiagnosticCategory.Message,\"Annotate_everything_with_types_from_JSDoc_95043\",\"Annotate everything with types from JSDoc\"),Add_to_all_uncalled_decorators:a(95044,e.DiagnosticCategory.Message,\"Add_to_all_uncalled_decorators_95044\",\"Add '()' to all uncalled decorators\"),Convert_all_constructor_functions_to_classes:a(95045,e.DiagnosticCategory.Message,\"Convert_all_constructor_functions_to_classes_95045\",\"Convert all constructor functions to classes\"),Generate_get_and_set_accessors:a(95046,e.DiagnosticCategory.Message,\"Generate_get_and_set_accessors_95046\",\"Generate 'get' and 'set' accessors\"),Convert_require_to_import:a(95047,e.DiagnosticCategory.Message,\"Convert_require_to_import_95047\",\"Convert 'require' to 'import'\"),Convert_all_require_to_import:a(95048,e.DiagnosticCategory.Message,\"Convert_all_require_to_import_95048\",\"Convert all 'require' to 'import'\"),Move_to_a_new_file:a(95049,e.DiagnosticCategory.Message,\"Move_to_a_new_file_95049\",\"Move to a new file\"),Remove_unreachable_code:a(95050,e.DiagnosticCategory.Message,\"Remove_unreachable_code_95050\",\"Remove unreachable code\"),Remove_all_unreachable_code:a(95051,e.DiagnosticCategory.Message,\"Remove_all_unreachable_code_95051\",\"Remove all unreachable code\"),Add_missing_typeof:a(95052,e.DiagnosticCategory.Message,\"Add_missing_typeof_95052\",\"Add missing 'typeof'\"),Remove_unused_label:a(95053,e.DiagnosticCategory.Message,\"Remove_unused_label_95053\",\"Remove unused label\"),Remove_all_unused_labels:a(95054,e.DiagnosticCategory.Message,\"Remove_all_unused_labels_95054\",\"Remove all unused labels\"),Convert_0_to_mapped_object_type:a(95055,e.DiagnosticCategory.Message,\"Convert_0_to_mapped_object_type_95055\",\"Convert '{0}' to mapped object type\"),Convert_namespace_import_to_named_imports:a(95056,e.DiagnosticCategory.Message,\"Convert_namespace_import_to_named_imports_95056\",\"Convert namespace import to named imports\"),Convert_named_imports_to_namespace_import:a(95057,e.DiagnosticCategory.Message,\"Convert_named_imports_to_namespace_import_95057\",\"Convert named imports to namespace import\"),Add_or_remove_braces_in_an_arrow_function:a(95058,e.DiagnosticCategory.Message,\"Add_or_remove_braces_in_an_arrow_function_95058\",\"Add or remove braces in an arrow function\"),Add_braces_to_arrow_function:a(95059,e.DiagnosticCategory.Message,\"Add_braces_to_arrow_function_95059\",\"Add braces to arrow function\"),Remove_braces_from_arrow_function:a(95060,e.DiagnosticCategory.Message,\"Remove_braces_from_arrow_function_95060\",\"Remove braces from arrow function\"),Convert_default_export_to_named_export:a(95061,e.DiagnosticCategory.Message,\"Convert_default_export_to_named_export_95061\",\"Convert default export to named export\"),Convert_named_export_to_default_export:a(95062,e.DiagnosticCategory.Message,\"Convert_named_export_to_default_export_95062\",\"Convert named export to default export\"),Add_missing_enum_member_0:a(95063,e.DiagnosticCategory.Message,\"Add_missing_enum_member_0_95063\",\"Add missing enum member '{0}'\"),Add_all_missing_imports:a(95064,e.DiagnosticCategory.Message,\"Add_all_missing_imports_95064\",\"Add all missing imports\"),Convert_to_async_function:a(95065,e.DiagnosticCategory.Message,\"Convert_to_async_function_95065\",\"Convert to async function\"),Convert_all_to_async_functions:a(95066,e.DiagnosticCategory.Message,\"Convert_all_to_async_functions_95066\",\"Convert all to async functions\"),Add_missing_call_parentheses:a(95067,e.DiagnosticCategory.Message,\"Add_missing_call_parentheses_95067\",\"Add missing call parentheses\"),Add_all_missing_call_parentheses:a(95068,e.DiagnosticCategory.Message,\"Add_all_missing_call_parentheses_95068\",\"Add all missing call parentheses\"),Add_unknown_conversion_for_non_overlapping_types:a(95069,e.DiagnosticCategory.Message,\"Add_unknown_conversion_for_non_overlapping_types_95069\",\"Add 'unknown' conversion for non-overlapping types\"),Add_unknown_to_all_conversions_of_non_overlapping_types:a(95070,e.DiagnosticCategory.Message,\"Add_unknown_to_all_conversions_of_non_overlapping_types_95070\",\"Add 'unknown' to all conversions of non-overlapping types\"),Add_missing_new_operator_to_call:a(95071,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_call_95071\",\"Add missing 'new' operator to call\"),Add_missing_new_operator_to_all_calls:a(95072,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_all_calls_95072\",\"Add missing 'new' operator to all calls\"),Add_names_to_all_parameters_without_names:a(95073,e.DiagnosticCategory.Message,\"Add_names_to_all_parameters_without_names_95073\",\"Add names to all parameters without names\"),Enable_the_experimentalDecorators_option_in_your_configuration_file:a(95074,e.DiagnosticCategory.Message,\"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074\",\"Enable the 'experimentalDecorators' option in your configuration file\"),Convert_parameters_to_destructured_object:a(95075,e.DiagnosticCategory.Message,\"Convert_parameters_to_destructured_object_95075\",\"Convert parameters to destructured object\"),Extract_type:a(95077,e.DiagnosticCategory.Message,\"Extract_type_95077\",\"Extract type\"),Extract_to_type_alias:a(95078,e.DiagnosticCategory.Message,\"Extract_to_type_alias_95078\",\"Extract to type alias\"),Extract_to_typedef:a(95079,e.DiagnosticCategory.Message,\"Extract_to_typedef_95079\",\"Extract to typedef\"),Infer_this_type_of_0_from_usage:a(95080,e.DiagnosticCategory.Message,\"Infer_this_type_of_0_from_usage_95080\",\"Infer 'this' type of '{0}' from usage\"),Add_const_to_unresolved_variable:a(95081,e.DiagnosticCategory.Message,\"Add_const_to_unresolved_variable_95081\",\"Add 'const' to unresolved variable\"),Add_const_to_all_unresolved_variables:a(95082,e.DiagnosticCategory.Message,\"Add_const_to_all_unresolved_variables_95082\",\"Add 'const' to all unresolved variables\"),Add_await:a(95083,e.DiagnosticCategory.Message,\"Add_await_95083\",\"Add 'await'\"),Add_await_to_initializer_for_0:a(95084,e.DiagnosticCategory.Message,\"Add_await_to_initializer_for_0_95084\",\"Add 'await' to initializer for '{0}'\"),Fix_all_expressions_possibly_missing_await:a(95085,e.DiagnosticCategory.Message,\"Fix_all_expressions_possibly_missing_await_95085\",\"Fix all expressions possibly missing 'await'\"),Remove_unnecessary_await:a(95086,e.DiagnosticCategory.Message,\"Remove_unnecessary_await_95086\",\"Remove unnecessary 'await'\"),Remove_all_unnecessary_uses_of_await:a(95087,e.DiagnosticCategory.Message,\"Remove_all_unnecessary_uses_of_await_95087\",\"Remove all unnecessary uses of 'await'\"),Enable_the_jsx_flag_in_your_configuration_file:a(95088,e.DiagnosticCategory.Message,\"Enable_the_jsx_flag_in_your_configuration_file_95088\",\"Enable the '--jsx' flag in your configuration file\"),Add_await_to_initializers:a(95089,e.DiagnosticCategory.Message,\"Add_await_to_initializers_95089\",\"Add 'await' to initializers\"),Extract_to_interface:a(95090,e.DiagnosticCategory.Message,\"Extract_to_interface_95090\",\"Extract to interface\"),Convert_to_a_bigint_numeric_literal:a(95091,e.DiagnosticCategory.Message,\"Convert_to_a_bigint_numeric_literal_95091\",\"Convert to a bigint numeric literal\"),Convert_all_to_bigint_numeric_literals:a(95092,e.DiagnosticCategory.Message,\"Convert_all_to_bigint_numeric_literals_95092\",\"Convert all to bigint numeric literals\"),Convert_const_to_let:a(95093,e.DiagnosticCategory.Message,\"Convert_const_to_let_95093\",\"Convert 'const' to 'let'\"),Prefix_with_declare:a(95094,e.DiagnosticCategory.Message,\"Prefix_with_declare_95094\",\"Prefix with 'declare'\"),Prefix_all_incorrect_property_declarations_with_declare:a(95095,e.DiagnosticCategory.Message,\"Prefix_all_incorrect_property_declarations_with_declare_95095\",\"Prefix all incorrect property declarations with 'declare'\"),Convert_to_template_string:a(95096,e.DiagnosticCategory.Message,\"Convert_to_template_string_95096\",\"Convert to template string\"),Add_export_to_make_this_file_into_a_module:a(95097,e.DiagnosticCategory.Message,\"Add_export_to_make_this_file_into_a_module_95097\",\"Add 'export {}' to make this file into a module\"),Set_the_target_option_in_your_configuration_file_to_0:a(95098,e.DiagnosticCategory.Message,\"Set_the_target_option_in_your_configuration_file_to_0_95098\",\"Set the 'target' option in your configuration file to '{0}'\"),Set_the_module_option_in_your_configuration_file_to_0:a(95099,e.DiagnosticCategory.Message,\"Set_the_module_option_in_your_configuration_file_to_0_95099\",\"Set the 'module' option in your configuration file to '{0}'\"),Convert_invalid_character_to_its_html_entity_code:a(95100,e.DiagnosticCategory.Message,\"Convert_invalid_character_to_its_html_entity_code_95100\",\"Convert invalid character to its html entity code\"),Convert_all_invalid_characters_to_HTML_entity_code:a(95101,e.DiagnosticCategory.Message,\"Convert_all_invalid_characters_to_HTML_entity_code_95101\",\"Convert all invalid characters to HTML entity code\"),Convert_function_expression_0_to_arrow_function:a(95105,e.DiagnosticCategory.Message,\"Convert_function_expression_0_to_arrow_function_95105\",\"Convert function expression '{0}' to arrow function\"),Convert_function_declaration_0_to_arrow_function:a(95106,e.DiagnosticCategory.Message,\"Convert_function_declaration_0_to_arrow_function_95106\",\"Convert function declaration '{0}' to arrow function\"),Fix_all_implicit_this_errors:a(95107,e.DiagnosticCategory.Message,\"Fix_all_implicit_this_errors_95107\",\"Fix all implicit-'this' errors\"),Wrap_invalid_character_in_an_expression_container:a(95108,e.DiagnosticCategory.Message,\"Wrap_invalid_character_in_an_expression_container_95108\",\"Wrap invalid character in an expression container\"),Wrap_all_invalid_characters_in_an_expression_container:a(95109,e.DiagnosticCategory.Message,\"Wrap_all_invalid_characters_in_an_expression_container_95109\",\"Wrap all invalid characters in an expression container\"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:a(95110,e.DiagnosticCategory.Message,\"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110\",\"Visit https://aka.ms/tsconfig to read more about this file\"),Add_a_return_statement:a(95111,e.DiagnosticCategory.Message,\"Add_a_return_statement_95111\",\"Add a return statement\"),Remove_braces_from_arrow_function_body:a(95112,e.DiagnosticCategory.Message,\"Remove_braces_from_arrow_function_body_95112\",\"Remove braces from arrow function body\"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:a(95113,e.DiagnosticCategory.Message,\"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113\",\"Wrap the following body with parentheses which should be an object literal\"),Add_all_missing_return_statement:a(95114,e.DiagnosticCategory.Message,\"Add_all_missing_return_statement_95114\",\"Add all missing return statement\"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:a(95115,e.DiagnosticCategory.Message,\"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115\",\"Remove braces from all arrow function bodies with relevant issues\"),Wrap_all_object_literal_with_parentheses:a(95116,e.DiagnosticCategory.Message,\"Wrap_all_object_literal_with_parentheses_95116\",\"Wrap all object literal with parentheses\"),Move_labeled_tuple_element_modifiers_to_labels:a(95117,e.DiagnosticCategory.Message,\"Move_labeled_tuple_element_modifiers_to_labels_95117\",\"Move labeled tuple element modifiers to labels\"),Convert_overload_list_to_single_signature:a(95118,e.DiagnosticCategory.Message,\"Convert_overload_list_to_single_signature_95118\",\"Convert overload list to single signature\"),Generate_get_and_set_accessors_for_all_overriding_properties:a(95119,e.DiagnosticCategory.Message,\"Generate_get_and_set_accessors_for_all_overriding_properties_95119\",\"Generate 'get' and 'set' accessors for all overriding properties\"),Wrap_in_JSX_fragment:a(95120,e.DiagnosticCategory.Message,\"Wrap_in_JSX_fragment_95120\",\"Wrap in JSX fragment\"),Wrap_all_unparented_JSX_in_JSX_fragment:a(95121,e.DiagnosticCategory.Message,\"Wrap_all_unparented_JSX_in_JSX_fragment_95121\",\"Wrap all unparented JSX in JSX fragment\"),Convert_arrow_function_or_function_expression:a(95122,e.DiagnosticCategory.Message,\"Convert_arrow_function_or_function_expression_95122\",\"Convert arrow function or function expression\"),Convert_to_anonymous_function:a(95123,e.DiagnosticCategory.Message,\"Convert_to_anonymous_function_95123\",\"Convert to anonymous function\"),Convert_to_named_function:a(95124,e.DiagnosticCategory.Message,\"Convert_to_named_function_95124\",\"Convert to named function\"),Convert_to_arrow_function:a(95125,e.DiagnosticCategory.Message,\"Convert_to_arrow_function_95125\",\"Convert to arrow function\"),Remove_parentheses:a(95126,e.DiagnosticCategory.Message,\"Remove_parentheses_95126\",\"Remove parentheses\"),Could_not_find_a_containing_arrow_function:a(95127,e.DiagnosticCategory.Message,\"Could_not_find_a_containing_arrow_function_95127\",\"Could not find a containing arrow function\"),Containing_function_is_not_an_arrow_function:a(95128,e.DiagnosticCategory.Message,\"Containing_function_is_not_an_arrow_function_95128\",\"Containing function is not an arrow function\"),Could_not_find_export_statement:a(95129,e.DiagnosticCategory.Message,\"Could_not_find_export_statement_95129\",\"Could not find export statement\"),This_file_already_has_a_default_export:a(95130,e.DiagnosticCategory.Message,\"This_file_already_has_a_default_export_95130\",\"This file already has a default export\"),Could_not_find_import_clause:a(95131,e.DiagnosticCategory.Message,\"Could_not_find_import_clause_95131\",\"Could not find import clause\"),Could_not_find_namespace_import_or_named_imports:a(95132,e.DiagnosticCategory.Message,\"Could_not_find_namespace_import_or_named_imports_95132\",\"Could not find namespace import or named imports\"),Selection_is_not_a_valid_type_node:a(95133,e.DiagnosticCategory.Message,\"Selection_is_not_a_valid_type_node_95133\",\"Selection is not a valid type node\"),No_type_could_be_extracted_from_this_type_node:a(95134,e.DiagnosticCategory.Message,\"No_type_could_be_extracted_from_this_type_node_95134\",\"No type could be extracted from this type node\"),Could_not_find_property_for_which_to_generate_accessor:a(95135,e.DiagnosticCategory.Message,\"Could_not_find_property_for_which_to_generate_accessor_95135\",\"Could not find property for which to generate accessor\"),Name_is_not_valid:a(95136,e.DiagnosticCategory.Message,\"Name_is_not_valid_95136\",\"Name is not valid\"),Can_only_convert_property_with_modifier:a(95137,e.DiagnosticCategory.Message,\"Can_only_convert_property_with_modifier_95137\",\"Can only convert property with modifier\"),Switch_each_misused_0_to_1:a(95138,e.DiagnosticCategory.Message,\"Switch_each_misused_0_to_1_95138\",\"Switch each misused '{0}' to '{1}'\"),Convert_to_optional_chain_expression:a(95139,e.DiagnosticCategory.Message,\"Convert_to_optional_chain_expression_95139\",\"Convert to optional chain expression\"),Could_not_find_convertible_access_expression:a(95140,e.DiagnosticCategory.Message,\"Could_not_find_convertible_access_expression_95140\",\"Could not find convertible access expression\"),Could_not_find_matching_access_expressions:a(95141,e.DiagnosticCategory.Message,\"Could_not_find_matching_access_expressions_95141\",\"Could not find matching access expressions\"),Can_only_convert_logical_AND_access_chains:a(95142,e.DiagnosticCategory.Message,\"Can_only_convert_logical_AND_access_chains_95142\",\"Can only convert logical AND access chains\"),Add_void_to_Promise_resolved_without_a_value:a(95143,e.DiagnosticCategory.Message,\"Add_void_to_Promise_resolved_without_a_value_95143\",\"Add 'void' to Promise resolved without a value\"),Add_void_to_all_Promises_resolved_without_a_value:a(95144,e.DiagnosticCategory.Message,\"Add_void_to_all_Promises_resolved_without_a_value_95144\",\"Add 'void' to all Promises resolved without a value\"),Use_element_access_for_0:a(95145,e.DiagnosticCategory.Message,\"Use_element_access_for_0_95145\",\"Use element access for '{0}'\"),Use_element_access_for_all_undeclared_properties:a(95146,e.DiagnosticCategory.Message,\"Use_element_access_for_all_undeclared_properties_95146\",\"Use element access for all undeclared properties.\"),Delete_all_unused_imports:a(95147,e.DiagnosticCategory.Message,\"Delete_all_unused_imports_95147\",\"Delete all unused imports\"),Infer_function_return_type:a(95148,e.DiagnosticCategory.Message,\"Infer_function_return_type_95148\",\"Infer function return type\"),Return_type_must_be_inferred_from_a_function:a(95149,e.DiagnosticCategory.Message,\"Return_type_must_be_inferred_from_a_function_95149\",\"Return type must be inferred from a function\"),Could_not_determine_function_return_type:a(95150,e.DiagnosticCategory.Message,\"Could_not_determine_function_return_type_95150\",\"Could not determine function return type\"),Could_not_convert_to_arrow_function:a(95151,e.DiagnosticCategory.Message,\"Could_not_convert_to_arrow_function_95151\",\"Could not convert to arrow function\"),Could_not_convert_to_named_function:a(95152,e.DiagnosticCategory.Message,\"Could_not_convert_to_named_function_95152\",\"Could not convert to named function\"),Could_not_convert_to_anonymous_function:a(95153,e.DiagnosticCategory.Message,\"Could_not_convert_to_anonymous_function_95153\",\"Could not convert to anonymous function\"),Can_only_convert_string_concatenation:a(95154,e.DiagnosticCategory.Message,\"Can_only_convert_string_concatenation_95154\",\"Can only convert string concatenation\"),Selection_is_not_a_valid_statement_or_statements:a(95155,e.DiagnosticCategory.Message,\"Selection_is_not_a_valid_statement_or_statements_95155\",\"Selection is not a valid statement or statements\"),Add_missing_function_declaration_0:a(95156,e.DiagnosticCategory.Message,\"Add_missing_function_declaration_0_95156\",\"Add missing function declaration '{0}'\"),Add_all_missing_function_declarations:a(95157,e.DiagnosticCategory.Message,\"Add_all_missing_function_declarations_95157\",\"Add all missing function declarations\"),Method_not_implemented:a(95158,e.DiagnosticCategory.Message,\"Method_not_implemented_95158\",\"Method not implemented.\"),Function_not_implemented:a(95159,e.DiagnosticCategory.Message,\"Function_not_implemented_95159\",\"Function not implemented.\"),Add_override_modifier:a(95160,e.DiagnosticCategory.Message,\"Add_override_modifier_95160\",\"Add 'override' modifier\"),Remove_override_modifier:a(95161,e.DiagnosticCategory.Message,\"Remove_override_modifier_95161\",\"Remove 'override' modifier\"),Add_all_missing_override_modifiers:a(95162,e.DiagnosticCategory.Message,\"Add_all_missing_override_modifiers_95162\",\"Add all missing 'override' modifiers\"),Remove_all_unnecessary_override_modifiers:a(95163,e.DiagnosticCategory.Message,\"Remove_all_unnecessary_override_modifiers_95163\",\"Remove all unnecessary 'override' modifiers\"),Can_only_convert_named_export:a(95164,e.DiagnosticCategory.Message,\"Can_only_convert_named_export_95164\",\"Can only convert named export\"),Add_missing_properties:a(95165,e.DiagnosticCategory.Message,\"Add_missing_properties_95165\",\"Add missing properties\"),Add_all_missing_properties:a(95166,e.DiagnosticCategory.Message,\"Add_all_missing_properties_95166\",\"Add all missing properties\"),Add_missing_attributes:a(95167,e.DiagnosticCategory.Message,\"Add_missing_attributes_95167\",\"Add missing attributes\"),Add_all_missing_attributes:a(95168,e.DiagnosticCategory.Message,\"Add_all_missing_attributes_95168\",\"Add all missing attributes\"),Add_undefined_to_optional_property_type:a(95169,e.DiagnosticCategory.Message,\"Add_undefined_to_optional_property_type_95169\",\"Add 'undefined' to optional property type\"),Convert_named_imports_to_default_import:a(95170,e.DiagnosticCategory.Message,\"Convert_named_imports_to_default_import_95170\",\"Convert named imports to default import\"),Delete_unused_param_tag_0:a(95171,e.DiagnosticCategory.Message,\"Delete_unused_param_tag_0_95171\",\"Delete unused '@param' tag '{0}'\"),Delete_all_unused_param_tags:a(95172,e.DiagnosticCategory.Message,\"Delete_all_unused_param_tags_95172\",\"Delete all unused '@param' tags\"),Rename_param_tag_name_0_to_1:a(95173,e.DiagnosticCategory.Message,\"Rename_param_tag_name_0_to_1_95173\",\"Rename '@param' tag name '{0}' to '{1}'\"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:a(18004,e.DiagnosticCategory.Error,\"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004\",\"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.\"),Classes_may_not_have_a_field_named_constructor:a(18006,e.DiagnosticCategory.Error,\"Classes_may_not_have_a_field_named_constructor_18006\",\"Classes may not have a field named 'constructor'.\"),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:a(18007,e.DiagnosticCategory.Error,\"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007\",\"JSX expressions may not use the comma operator. Did you mean to write an array?\"),Private_identifiers_cannot_be_used_as_parameters:a(18009,e.DiagnosticCategory.Error,\"Private_identifiers_cannot_be_used_as_parameters_18009\",\"Private identifiers cannot be used as parameters.\"),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:a(18010,e.DiagnosticCategory.Error,\"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010\",\"An accessibility modifier cannot be used with a private identifier.\"),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:a(18011,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011\",\"The operand of a 'delete' operator cannot be a private identifier.\"),constructor_is_a_reserved_word:a(18012,e.DiagnosticCategory.Error,\"constructor_is_a_reserved_word_18012\",\"'#constructor' is a reserved word.\"),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:a(18013,e.DiagnosticCategory.Error,\"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013\",\"Property '{0}' is not accessible outside class '{1}' because it has a private identifier.\"),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:a(18014,e.DiagnosticCategory.Error,\"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014\",\"The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.\"),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:a(18015,e.DiagnosticCategory.Error,\"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015\",\"Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.\"),Private_identifiers_are_not_allowed_outside_class_bodies:a(18016,e.DiagnosticCategory.Error,\"Private_identifiers_are_not_allowed_outside_class_bodies_18016\",\"Private identifiers are not allowed outside class bodies.\"),The_shadowing_declaration_of_0_is_defined_here:a(18017,e.DiagnosticCategory.Error,\"The_shadowing_declaration_of_0_is_defined_here_18017\",\"The shadowing declaration of '{0}' is defined here\"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:a(18018,e.DiagnosticCategory.Error,\"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018\",\"The declaration of '{0}' that you probably intended to use is defined here\"),_0_modifier_cannot_be_used_with_a_private_identifier:a(18019,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_a_private_identifier_18019\",\"'{0}' modifier cannot be used with a private identifier.\"),An_enum_member_cannot_be_named_with_a_private_identifier:a(18024,e.DiagnosticCategory.Error,\"An_enum_member_cannot_be_named_with_a_private_identifier_18024\",\"An enum member cannot be named with a private identifier.\"),can_only_be_used_at_the_start_of_a_file:a(18026,e.DiagnosticCategory.Error,\"can_only_be_used_at_the_start_of_a_file_18026\",\"'#!' can only be used at the start of a file.\"),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:a(18027,e.DiagnosticCategory.Error,\"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027\",\"Compiler reserves name '{0}' when emitting private identifier downlevel.\"),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:a(18028,e.DiagnosticCategory.Error,\"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028\",\"Private identifiers are only available when targeting ECMAScript 2015 and higher.\"),Private_identifiers_are_not_allowed_in_variable_declarations:a(18029,e.DiagnosticCategory.Error,\"Private_identifiers_are_not_allowed_in_variable_declarations_18029\",\"Private identifiers are not allowed in variable declarations.\"),An_optional_chain_cannot_contain_private_identifiers:a(18030,e.DiagnosticCategory.Error,\"An_optional_chain_cannot_contain_private_identifiers_18030\",\"An optional chain cannot contain private identifiers.\"),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:a(18031,e.DiagnosticCategory.Error,\"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031\",\"The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.\"),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:a(18032,e.DiagnosticCategory.Error,\"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032\",\"The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.\"),Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhaustiveness_checks_consider_using_an_object_literal_instead:a(18033,e.DiagnosticCategory.Error,\"Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhau_18033\",\"Only numeric enums can have computed members, but this expression has type '{0}'. If you do not need exhaustiveness checks, consider using an object literal instead.\"),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:a(18034,e.DiagnosticCategory.Message,\"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034\",\"Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.\"),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:a(18035,e.DiagnosticCategory.Error,\"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035\",\"Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.\"),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:a(18036,e.DiagnosticCategory.Error,\"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036\",\"Class decorators can't be used with static private identifier. Consider removing the experimental decorator.\"),Await_expression_cannot_be_used_inside_a_class_static_block:a(18037,e.DiagnosticCategory.Error,\"Await_expression_cannot_be_used_inside_a_class_static_block_18037\",\"Await expression cannot be used inside a class static block.\"),For_await_loops_cannot_be_used_inside_a_class_static_block:a(18038,e.DiagnosticCategory.Error,\"For_await_loops_cannot_be_used_inside_a_class_static_block_18038\",\"'For await' loops cannot be used inside a class static block.\"),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:a(18039,e.DiagnosticCategory.Error,\"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039\",\"Invalid use of '{0}'. It cannot be used inside a class static block.\"),A_return_statement_cannot_be_used_inside_a_class_static_block:a(18041,e.DiagnosticCategory.Error,\"A_return_statement_cannot_be_used_inside_a_class_static_block_18041\",\"A 'return' statement cannot be used inside a class static block.\")}})(ke||(ke={}));var ke;(function(e){var a;function C(ye){return ye>=79}e.tokenIsIdentifierOrKeyword=C;function w(ye){return ye===31||C(ye)}e.tokenIsIdentifierOrKeywordOrGreaterThan=w,e.textToKeywordObj=(a={abstract:126,any:130,as:127,asserts:128,assert:129,bigint:158,boolean:133,break:81,case:82,catch:83,class:84,continue:86,const:85},a.constructor=134,a.debugger=87,a.declare=135,a.default=88,a.delete=89,a.do=90,a.else=91,a.enum=92,a.export=93,a.extends=94,a.false=95,a.finally=96,a.for=97,a.from=156,a.function=98,a.get=136,a.if=99,a.implements=117,a.import=100,a.in=101,a.infer=137,a.instanceof=102,a.interface=118,a.intrinsic=138,a.is=139,a.keyof=140,a.let=119,a.module=141,a.namespace=142,a.never=143,a.new=103,a.null=104,a.number=147,a.object=148,a.package=120,a.private=121,a.protected=122,a.public=123,a.override=159,a.out=144,a.readonly=145,a.require=146,a.global=157,a.return=105,a.set=149,a.static=124,a.string=150,a.super=106,a.switch=107,a.symbol=151,a.this=108,a.throw=109,a.true=110,a.try=111,a.type=152,a.typeof=112,a.undefined=153,a.unique=154,a.unknown=155,a.var=113,a.void=114,a.while=115,a.with=116,a.yield=125,a.async=131,a.await=132,a.of=160,a);var B=new e.Map(e.getEntries(e.textToKeywordObj)),E=new e.Map(e.getEntries(Ke(Ke({},e.textToKeywordObj),{\"{\":18,\"}\":19,\"(\":20,\")\":21,\"[\":22,\"]\":23,\".\":24,\"...\":25,\";\":26,\",\":27,\"<\":29,\">\":31,\"<=\":32,\">=\":33,\"==\":34,\"!=\":35,\"===\":36,\"!==\":37,\"=>\":38,\"+\":39,\"-\":40,\"**\":42,\"*\":41,\"/\":43,\"%\":44,\"++\":45,\"--\":46,\"<<\":47,\">\":48,\">>>\":49,\"&\":50,\"|\":51,\"^\":52,\"!\":53,\"~\":54,\"&&\":55,\"||\":56,\"?\":57,\"??\":60,\"?.\":28,\":\":58,\"=\":63,\"+=\":64,\"-=\":65,\"*=\":66,\"**=\":67,\"/=\":68,\"%=\":69,\"<<=\":70,\">>=\":71,\">>>=\":72,\"&=\":73,\"|=\":74,\"^=\":78,\"||=\":75,\"&&=\":76,\"??=\":77,\"@\":59,\"#\":62,\"`\":61}))),Q=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1569,1594,1600,1610,1649,1747,1749,1749,1765,1766,1786,1788,1808,1808,1810,1836,1920,1957,2309,2361,2365,2365,2384,2384,2392,2401,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2784,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2877,2908,2909,2911,2913,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3294,3294,3296,3297,3333,3340,3342,3344,3346,3368,3370,3385,3424,3425,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3805,3840,3840,3904,3911,3913,3946,3976,3979,4096,4129,4131,4135,4137,4138,4176,4181,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6067,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12329,12337,12341,12344,12346,12353,12436,12445,12446,12449,12538,12540,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65138,65140,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],le=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,768,846,864,866,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1155,1158,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1425,1441,1443,1465,1467,1469,1471,1471,1473,1474,1476,1476,1488,1514,1520,1522,1569,1594,1600,1621,1632,1641,1648,1747,1749,1756,1759,1768,1770,1773,1776,1788,1808,1836,1840,1866,1920,1968,2305,2307,2309,2361,2364,2381,2384,2388,2392,2403,2406,2415,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2524,2525,2527,2531,2534,2545,2562,2562,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2649,2652,2654,2654,2662,2676,2689,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2784,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2876,2883,2887,2888,2891,2893,2902,2903,2908,2909,2911,2913,2918,2927,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3010,3014,3016,3018,3021,3031,3031,3047,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3134,3140,3142,3144,3146,3149,3157,3158,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3395,3398,3400,3402,3405,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3805,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3946,3953,3972,3974,3979,3984,3991,3993,4028,4038,4038,4096,4129,4131,4135,4137,4138,4140,4146,4150,4153,4160,4169,4176,4185,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4969,4977,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6099,6112,6121,6160,6169,6176,6263,6272,6313,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8319,8319,8400,8412,8417,8417,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12335,12337,12341,12344,12346,12353,12436,12441,12442,12445,12446,12449,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65056,65059,65075,65076,65101,65103,65136,65138,65140,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500],N=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],p=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],m=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2208,2228,2230,2237,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42943,42946,42950,42999,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69376,69404,69415,69415,69424,69445,69600,69622,69635,69687,69763,69807,69840,69864,69891,69926,69956,69956,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70751,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71680,71723,71840,71903,71935,71935,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72384,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,123136,123180,123191,123197,123214,123214,123584,123627,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101],G=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2208,2228,2230,2237,2259,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3162,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3328,3331,3333,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7673,7675,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42943,42946,42950,42999,43047,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69376,69404,69415,69415,69424,69456,69600,69622,69632,69702,69734,69743,69759,69818,69840,69864,69872,69881,69888,69940,69942,69951,69956,69958,69968,70003,70006,70006,70016,70084,70089,70092,70096,70106,70108,70108,70144,70161,70163,70199,70206,70206,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70751,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71680,71738,71840,71913,71935,71935,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72384,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92768,92777,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,123136,123180,123184,123197,123200,123209,123214,123214,123584,123641,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,917760,917999],oe=/^\\/\\/\\/?\\s*@(ts-expect-error|ts-ignore)/,f=/^(?:\\/|\\*)*\\s*@(ts-expect-error|ts-ignore)/;function T(ye,Ae){if(ye=2?T(ye,m):Ae===1?T(ye,N):T(ye,Q)}e.isUnicodeIdentifierStart=K;function b(ye,Ae){return Ae>=2?T(ye,G):Ae===1?T(ye,p):T(ye,le)}function se(ye){var Ae=[];return ye.forEach(function(er,ir){Ae[er]=ir}),Ae}var J=se(E);function ie(ye){return J[ye]}e.tokenToString=ie;function R(ye){return E.get(ye)}e.stringToToken=R;function q(ye){for(var Ae=new Array,er=0,ir=0;er127&&y(Cr)&&(Ae.push(ir),ir=er);break}}return Ae.push(ir),Ae}e.computeLineStarts=q;function O(ye,Ae,er,ir){return ye.getPositionOfLineAndCharacter?ye.getPositionOfLineAndCharacter(Ae,er,ir):ve(ee(ye),Ae,er,ye.text,ir)}e.getPositionOfLineAndCharacter=O;function ve(ye,Ae,er,ir,Cr){(Ae<0||Ae>=ye.length)&&(Cr?Ae=Ae<0?0:Ae>=ye.length?ye.length-1:Ae:e.Debug.fail(\"Bad line number. Line: \".concat(Ae,\", lineStarts.length: \").concat(ye.length,\" , line map is correct? \").concat(ir!==void 0?e.arraysEqual(ye,q(ir)):\"unknown\")));var Ye=ye[Ae]+er;return Cr?Ye>ye[Ae+1]?ye[Ae+1]:typeof ir==\"string\"&&Ye>ir.length?ir.length:Ye:(Ae=8192&&ye<=8203||ye===8239||ye===8287||ye===12288||ye===65279}e.isWhiteSpaceSingleLine=A;function y(ye){return ye===10||ye===13||ye===8232||ye===8233}e.isLineBreak=y;function V(ye){return ye>=48&&ye<=57}function L(ye){return V(ye)||ye>=65&&ye<=70||ye>=97&&ye<=102}function P(ye){return ye<=1114111}function k(ye){return ye>=48&&ye<=55}e.isOctalDigit=k;function Y(ye,Ae){var er=ye.charCodeAt(Ae);switch(er){case 13:case 10:case 9:case 11:case 12:case 32:case 47:case 60:case 124:case 61:case 62:return!0;case 35:return Ae===0;default:return er>127}}e.couldStartTrivia=Y;function U(ye,Ae,er,ir,Cr){if(e.positionIsSynthesized(Ae))return Ae;for(var Ye=!1;;){var Br=ye.charCodeAt(Ae);switch(Br){case 13:ye.charCodeAt(Ae+1)===10&&Ae++;case 10:if(Ae++,er)return Ae;Ye=!!Cr;continue;case 9:case 11:case 12:case 32:Ae++;continue;case 47:if(ir)break;if(ye.charCodeAt(Ae+1)===47){for(Ae+=2;Ae127&&$(Br)){Ae++;continue}break}return Ae}}e.skipTrivia=U;var j=7;function H(ye,Ae){if(e.Debug.assert(Ae>=0),Ae===0||y(ye.charCodeAt(Ae-1))){var er=ye.charCodeAt(Ae);if(Ae+j=0&&er127&&$(Ir)){be&&y(Ir)&&(lr=!0),er++;continue}break e}}return be&&(ur=Cr(Er,Ne,n,lr,Ye,ur)),ur}function g(ye,Ae,er,ir){return fe(!1,ye,Ae,!1,er,ir)}e.forEachLeadingCommentRange=g;function ne(ye,Ae,er,ir){return fe(!1,ye,Ae,!0,er,ir)}e.forEachTrailingCommentRange=ne;function ue(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!1,er,ir,Cr)}e.reduceEachLeadingCommentRange=ue;function We(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!0,er,ir,Cr)}e.reduceEachTrailingCommentRange=We;function Fe(ye,Ae,er,ir,Cr,Ye){return Ye||(Ye=[]),Ye.push({kind:er,pos:ye,end:Ae,hasTrailingNewLine:ir}),Ye}function Z(ye,Ae){return ue(ye,Ae,Fe,void 0,void 0)}e.getLeadingCommentRanges=Z;function Be(ye,Ae){return We(ye,Ae,Fe,void 0,void 0)}e.getTrailingCommentRanges=Be;function ge(ye){var Ae=l.exec(ye);if(Ae)return Ae[0]}e.getShebang=ge;function Re(ye,Ae){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye===36||ye===95||ye>127&&K(ye,Ae)}e.isIdentifierStart=Re;function ze(ye,Ae,er){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye>=48&&ye<=57||ye===36||ye===95||(er===1?ye===45||ye===58:!1)||ye>127&&b(ye,Ae)}e.isIdentifierPart=ze;function Ee(ye,Ae,er){var ir=rr(ye,0);if(!Re(ir,Ae))return!1;for(var Cr=Ie(ir);Cr116},isReservedWord:function(){return Ge>=81&&Ge<=116},isUnterminated:function(){return(yr&4)!==0},getCommentDirectives:function(){return Ir},getNumericLiteralFlags:function(){return yr&1008},getTokenFlags:function(){return yr},reScanGreaterToken:Wr,reScanAsteriskEqualsToken:Je,reScanSlashToken:xe,reScanTemplateToken:Ar,reScanTemplateHeadOrNoSubstitutionTemplate:Oe,scanJsxIdentifier:De,scanJsxAttributeValue:gr,reScanJsxAttributeValue:Vr,reScanJsxToken:nr,reScanLessThanToken:Mr,reScanHashToken:Pe,reScanQuestionToken:Ue,reScanInvalidIdentifier:Sr,scanJsxToken:fr,scanJsDocToken:Tr,scan:Ze,getText:ct,clearCommentDirectives:Li,setText:nt,setScriptTarget:xt,setLanguageVariant:ut,setOnError:Mt,setTextPos:Dt,setInJSDocType:Rt,tryScan:Wi,lookAhead:Yi,scanRange:Ui};return e.Debug.isDebugging&&Object.defineProperty(Ur,\"__debugShowCurrentPositionInText\",{get:function(){var Ii=Ur.getText();return Ii.slice(0,Ur.getStartPos())+\"\\u2551\"+Ii.slice(Ur.getStartPos())}}),Ur;function ii(Ii,Ki,Fi){if(Ki===void 0&&(Ki=Ne),Cr){var ui=Ne;Ne=Ki,Cr(Ii,Fi||0),Ne=ui}}function mi(){for(var Ii=Ne,Ki=!1,Fi=!1,ui=\"\";;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Ki?(Ki=!1,Fi=!0,ui+=Er.substring(Ii,Ne)):ii(Fi?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++,Ii=Ne;continue}if(V(Bt)){Ki=!0,Fi=!1,Ne++;continue}break}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),ui+Er.substring(Ii,Ne)}function pe(){var Ii=Ne,Ki=mi(),Fi,ui;Er.charCodeAt(Ne)===46&&(Ne++,Fi=mi());var Bt=Ne;if(Er.charCodeAt(Ne)===69||Er.charCodeAt(Ne)===101){Ne++,yr|=16,(Er.charCodeAt(Ne)===43||Er.charCodeAt(Ne)===45)&&Ne++;var wt=Ne,na=mi();na?(ui=Er.substring(Bt,wt)+na,Bt=Ne):ii(e.Diagnostics.Digit_expected)}var Ai;if(yr&512?(Ai=Ki,Fi&&(Ai+=\".\"+Fi),ui&&(Ai+=ui)):Ai=Er.substring(Ii,Bt),Fi!==void 0||yr&16)return or(Ii,Fi===void 0&&!!(yr&16)),{type:8,value:\"\"+ +Ai};ur=Ai;var Oi=ti();return or(Ii),{type:Oi,value:ur}}function or(Ii,Ki){if(!!Re(rr(Er,Ne),ye)){var Fi=Ne,ui=ae().length;ui===1&&Er[Fi]===\"n\"?ii(Ki?e.Diagnostics.A_bigint_literal_cannot_use_exponential_notation:e.Diagnostics.A_bigint_literal_must_be_an_integer,Ii,Fi-Ii+1):(ii(e.Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal,Fi,ui),Ne=Fi)}}function qr(){for(var Ii=Ne;k(Er.charCodeAt(Ne));)Ne++;return+Er.substring(Ii,Ne)}function si(Ii,Ki){var Fi=wi(Ii,!1,Ki);return Fi?parseInt(Fi,16):-1}function Di(Ii,Ki){return wi(Ii,!0,Ki)}function wi(Ii,Ki,Fi){for(var ui=[],Bt=!1,wt=!1;ui.length=65&&na<=70)na+=97-65;else if(!(na>=48&&na<=57||na>=97&&na<=102))break;ui.push(na),Ne++,wt=!1}return ui.length=n){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}var Bt=Er.charCodeAt(Ne);if(Bt===Ki){Fi+=Er.substring(ui,Ne),Ne++;break}if(Bt===92&&!Ii){Fi+=Er.substring(ui,Ne),Fi+=Gi(),ui=Ne;continue}if(y(Bt)&&!Ii){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}Ne++}return Fi}function et(Ii){var Ki=Er.charCodeAt(Ne)===96;Ne++;for(var Fi=Ne,ui=\"\",Bt;;){if(Ne>=n){ui+=Er.substring(Fi,Ne),yr|=4,ii(e.Diagnostics.Unterminated_template_literal),Bt=Ki?14:17;break}var wt=Er.charCodeAt(Ne);if(wt===96){ui+=Er.substring(Fi,Ne),Ne++,Bt=Ki?14:17;break}if(wt===36&&Ne+1=n)return ii(e.Diagnostics.Unexpected_end_of_text),\"\";var Fi=Er.charCodeAt(Ne);switch(Ne++,Fi){case 48:return Ii&&Ne=0?String.fromCharCode(Ki):(ii(e.Diagnostics.Hexadecimal_digit_expected),\"\")}function Zt(){var Ii=Di(1,!1),Ki=Ii?parseInt(Ii,16):-1,Fi=!1;return Ki<0?(ii(e.Diagnostics.Hexadecimal_digit_expected),Fi=!0):Ki>1114111&&(ii(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),Fi=!0),Ne>=n?(ii(e.Diagnostics.Unexpected_end_of_text),Fi=!0):Er.charCodeAt(Ne)===125?Ne++:(ii(e.Diagnostics.Unterminated_Unicode_escape_sequence),Fi=!0),Fi?\"\":de(Ki)}function _r(){if(Ne+5=2&&rr(Er,Ne+1)===117&&rr(Er,Ne+2)===123){var Ii=Ne;Ne+=3;var Ki=Di(1,!1),Fi=Ki?parseInt(Ki,16):-1;return Ne=Ii,Fi}return-1}function ae(){for(var Ii=\"\",Ki=Ne;Ne=0&&ze(Fi,ye)){Ne+=3,yr|=8,Ii+=Zt(),Ki=Ne;continue}if(Fi=_r(),!(Fi>=0&&ze(Fi,ye)))break;yr|=1024,Ii+=Er.substring(Ki,Ne),Ii+=de(Fi),Ne+=6,Ki=Ne}else break}return Ii+=Er.substring(Ki,Ne),Ii}function Xe(){var Ii=ur.length;if(Ii>=2&&Ii<=12){var Ki=ur.charCodeAt(0);if(Ki>=97&&Ki<=122){var Fi=B.get(ur);if(Fi!==void 0)return Ge=Fi}}return Ge=79}function Jr(Ii){for(var Ki=\"\",Fi=!1,ui=!1;;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Fi?(Fi=!1,ui=!0):ii(ui?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++;continue}if(Fi=!0,!V(Bt)||Bt-48>=Ii)break;Ki+=Er[Ne],Ne++,ui=!1}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),Ki}function ti(){if(Er.charCodeAt(Ne)===110)return ur+=\"n\",yr&384&&(ur=e.parsePseudoBigInt(ur)+\"n\"),Ne++,9;var Ii=yr&128?parseInt(ur.slice(2),2):yr&256?parseInt(ur.slice(2),8):+ur;return ur=\"\"+Ii,8}function Ze(){var Ii;lr=Ne,yr=0;for(var Ki=!1;;){if(be=Ne,Ne>=n)return Ge=1;var Fi=rr(Er,Ne);if(Fi===35&&Ne===0&&d(Er,Ne)){if(Ne=D(Er,Ne),Ae)continue;return Ge=6}switch(Fi){case 10:case 13:if(yr|=1,Ae){Ne++;continue}else return Fi===13&&Ne+1=0&&Re(na,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Ai=_r();return Ai>=0&&Re(Ai,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Ai)+ae(),Ge=Xe()):(ii(e.Diagnostics.Invalid_character),Ne++,Ge=0);case 35:return Ne!==0&&Er[Ne+1]===\"!\"?(ii(e.Diagnostics.can_only_be_used_at_the_start_of_a_file),Ne++,Ge=0):(Re(rr(Er,Ne+1),ye)?(Ne++,zr(rr(Er,Ne),ye)):(ur=String.fromCharCode(rr(Er,Ne)),ii(e.Diagnostics.Invalid_character,Ne++,Ie(Fi))),Ge=80);default:var Oi=zr(Fi,ye);if(Oi)return Ge=Oi;if(A(Fi)){Ne+=Ie(Fi);continue}else if(y(Fi)){yr|=1,Ne+=Ie(Fi);continue}var ji=Ie(Fi);return ii(e.Diagnostics.Invalid_character,Ne,ji),Ne+=ji,Ge=0}}}function Sr(){e.Debug.assert(Ge===0,\"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'.\"),Ne=be=lr,yr=0;var Ii=rr(Er,Ne),Ki=zr(Ii,99);return Ki?Ge=Ki:(Ne+=Ie(Ii),Ge)}function zr(Ii,Ki){var Fi=Ii;if(Re(Fi,Ki)){for(Ne+=Ie(Fi);Ne=n)return Ge=1;var Ki=Er.charCodeAt(Ne);if(Ki===60)return Er.charCodeAt(Ne+1)===47?(Ne+=2,Ge=30):(Ne++,Ge=29);if(Ki===123)return Ne++,Ge=18;for(var Fi=0;Ne0)break;$(Ki)||(Fi=Ne)}Ne++}return ur=Er.substring(lr,Ne),Fi===-1?12:11}function De(){if(C(Ge)){for(var Ii=!1;Ne=n)return Ge=1;var Ii=rr(Er,Ne);switch(Ne+=Ie(Ii),Ii){case 9:case 11:case 12:case 32:for(;Ne=0&&Re(Ki,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Fi=_r();return Fi>=0&&Re(Fi,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Fi)+ae(),Ge=Xe()):(Ne++,Ge=0)}if(Re(Ii,ye)){for(var ui=Ii;Ne=0),Ne=Ii,lr=Ii,be=Ii,Ge=0,ur=void 0,yr=0}function Rt(Ii){wr+=Ii?1:-1}}e.createScanner=He;var rr=String.prototype.codePointAt?function(ye,Ae){return ye.codePointAt(Ae)}:function(Ae,er){var ir=Ae.length;if(!(er<0||er>=ir)){var Cr=Ae.charCodeAt(er);if(Cr>=55296&&Cr<=56319&&ir>er+1){var Ye=Ae.charCodeAt(er+1);if(Ye>=56320&&Ye<=57343)return(Cr-55296)*1024+Ye-56320+65536}return Cr}};function Ie(ye){return ye>=65536?2:1}function _e(ye){if(e.Debug.assert(0<=ye&&ye<=1114111),ye<=65535)return String.fromCharCode(ye);var Ae=Math.floor((ye-65536)/1024)+55296,er=(ye-65536)%1024+56320;return String.fromCharCode(Ae,er)}var we=String.fromCodePoint?function(ye){return String.fromCodePoint(ye)}:_e;function de(ye){return we(ye)}e.utf16EncodeAsString=de})(ke||(ke={}));var ke;(function(e){function a(je){return e.pathIsRelative(je)||e.isRootedDiskPath(je)}e.isExternalModuleNameRelative=a;function C(je){return e.sortAndDeduplicate(je,e.compareDiagnostics)}e.sortAndDeduplicateDiagnostics=C;function w(je){switch(e.getEmitScriptTarget(je)){case 99:return\"lib.esnext.full.d.ts\";case 9:return\"lib.es2022.full.d.ts\";case 8:return\"lib.es2021.full.d.ts\";case 7:return\"lib.es2020.full.d.ts\";case 6:return\"lib.es2019.full.d.ts\";case 5:return\"lib.es2018.full.d.ts\";case 4:return\"lib.es2017.full.d.ts\";case 3:return\"lib.es2016.full.d.ts\";case 2:return\"lib.es6.d.ts\";default:return\"lib.d.ts\"}}e.getDefaultLibFileName=w;function B(je){return je.start+je.length}e.textSpanEnd=B;function E(je){return je.length===0}e.textSpanIsEmpty=E;function Q(je,Hr){return Hr>=je.start&&Hr=je.pos&&Hr<=je.end}e.textRangeContainsPositionInclusive=le;function N(je,Hr){return Hr.start>=je.start&&B(Hr)<=B(je)}e.textSpanContainsTextSpan=N;function p(je,Hr){return m(je,Hr)!==void 0}e.textSpanOverlapsWith=p;function m(je,Hr){var pt=K(je,Hr);return pt&&pt.length===0?void 0:pt}e.textSpanOverlap=m;function G(je,Hr){return f(je.start,je.length,Hr.start,Hr.length)}e.textSpanIntersectsWithTextSpan=G;function oe(je,Hr,pt){return f(je.start,je.length,Hr,pt)}e.textSpanIntersectsWith=oe;function f(je,Hr,pt,Pt){var ga=je+Hr,ua=pt+Pt;return pt<=ga&&ua>=je}e.decodedTextSpanIntersectsWith=f;function T(je,Hr){return Hr<=B(je)&&Hr>=je.start}e.textSpanIntersectsWithPosition=T;function K(je,Hr){var pt=Math.max(je.start,Hr.start),Pt=Math.min(B(je),B(Hr));return pt<=Pt?se(pt,Pt):void 0}e.textSpanIntersection=K;function b(je,Hr){if(je<0)throw new Error(\"start < 0\");if(Hr<0)throw new Error(\"length < 0\");return{start:je,length:Hr}}e.createTextSpan=b;function se(je,Hr){return b(je,Hr-je)}e.createTextSpanFromBounds=se;function J(je){return b(je.span.start,je.newLength)}e.textChangeRangeNewSpan=J;function ie(je){return E(je.span)&&je.newLength===0}e.textChangeRangeIsUnchanged=ie;function R(je,Hr){if(Hr<0)throw new Error(\"newLength < 0\");return{span:je,newLength:Hr}}e.createTextChangeRange=R,e.unchangedTextChangeRange=R(b(0,0),0);function q(je){if(je.length===0)return e.unchangedTextChangeRange;if(je.length===1)return je[0];for(var Hr=je[0],pt=Hr.span.start,Pt=B(Hr.span),ga=pt+Hr.newLength,ua=1;ua=2&&je.charCodeAt(0)===95&&je.charCodeAt(1)===95?\"_\"+je:je}e.escapeLeadingUnderscores=Y;function U(je){var Hr=je;return Hr.length>=3&&Hr.charCodeAt(0)===95&&Hr.charCodeAt(1)===95&&Hr.charCodeAt(2)===95?Hr.substr(1):Hr}e.unescapeLeadingUnderscores=U;function j(je){return U(je.escapedText)}e.idText=j;function H(je){return je.valueDeclaration&&Ui(je.valueDeclaration)?j(je.valueDeclaration.name):U(je.escapedName)}e.symbolName=H;function I(je){var Hr=je.parent.parent;if(!!Hr){if(Si(Hr))return l(Hr);switch(Hr.kind){case 237:if(Hr.declarationList&&Hr.declarationList.declarations[0])return l(Hr.declarationList.declarations[0]);break;case 238:var pt=Hr.expression;switch(pt.kind===221&&pt.operatorToken.kind===63&&(pt=pt.left),pt.kind){case 206:return pt.name;case 207:var Pt=pt.argumentExpression;if(e.isIdentifier(Pt))return Pt}break;case 212:return l(Hr.expression);case 250:{if(Si(Hr.statement)||En(Hr.statement))return l(Hr.statement);break}}}}function l(je){var Hr=ne(je);return Hr&&e.isIdentifier(Hr)?Hr:void 0}function d(je,Hr){return!!(fe(je)&&e.isIdentifier(je.name)&&j(je.name)===j(Hr)||e.isVariableStatement(je)&&e.some(je.declarationList.declarations,function(pt){return d(pt,Hr)}))}e.nodeHasName=d;function D(je){return je.name||I(je)}e.getNameOfJSDocTypedef=D;function fe(je){return!!je.name}e.isNamedDeclaration=fe;function g(je){switch(je.kind){case 79:return je;case 347:case 340:{var Hr=je.name;if(Hr.kind===161)return Hr.right;break}case 208:case 221:{var pt=je;switch(e.getAssignmentDeclarationKind(pt)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(pt.left);case 7:case 8:case 9:return pt.arguments[1];default:return}}case 345:return D(je);case 339:return I(je);case 271:{var Pt=je.expression;return e.isIdentifier(Pt)?Pt:void 0}case 207:var ga=je;if(e.isBindableStaticElementAccessExpression(ga))return ga.argumentExpression}return je.name}e.getNonAssignedNameOfDeclaration=g;function ne(je){if(je!==void 0)return g(je)||(e.isFunctionExpression(je)||e.isArrowFunction(je)||e.isClassExpression(je)?ue(je):void 0)}e.getNameOfDeclaration=ne;function ue(je){if(je.parent){if(e.isPropertyAssignment(je.parent)||e.isBindingElement(je.parent))return je.parent.name;if(e.isBinaryExpression(je.parent)&&je===je.parent.right){if(e.isIdentifier(je.parent.left))return je.parent.left;if(e.isAccessExpression(je.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(je.parent.left)}else if(e.isVariableDeclaration(je.parent)&&e.isIdentifier(je.parent.name))return je.parent.name}else return}e.getAssignedName=ue;function We(je,Hr){if(je.name)if(e.isIdentifier(je.name)){var pt=je.name.escapedText;return yr(je.parent,Hr).filter(function(ua){return e.isJSDocParameterTag(ua)&&e.isIdentifier(ua.name)&&ua.name.escapedText===pt})}else{var Pt=je.parent.parameters.indexOf(je);e.Debug.assert(Pt>-1,\"Parameters should always be in their parents' parameter list\");var ga=yr(je.parent,Hr).filter(e.isJSDocParameterTag);if(Pt=161}e.isNodeKind=vr;function mr(je){return je>=0&&je<=160}e.isTokenKind=mr;function Ar(je){return mr(je.kind)}e.isToken=Ar;function Oe(je){return je.hasOwnProperty(\"pos\")&&je.hasOwnProperty(\"end\")}e.isNodeArray=Oe;function nr(je){return 8<=je&&je<=14}e.isLiteralKind=nr;function Mr(je){return nr(je.kind)}e.isLiteralExpression=Mr;function Pe(je){return 14<=je&&je<=17}e.isTemplateLiteralKind=Pe;function Ue(je){return Pe(je.kind)}e.isTemplateLiteralToken=Ue;function fr(je){var Hr=je.kind;return Hr===16||Hr===17}e.isTemplateMiddleOrTemplateTail=fr;function De(je){return e.isImportSpecifier(je)||e.isExportSpecifier(je)}e.isImportOrExportSpecifier=De;function gr(je){switch(je.kind){case 270:case 275:return je.isTypeOnly||je.parent.parent.isTypeOnly;case 268:return je.parent.isTypeOnly;case 267:case 265:return je.isTypeOnly;default:return!1}}e.isTypeOnlyImportOrExportDeclaration=gr;function Vr(je){return e.isStringLiteral(je)||e.isIdentifier(je)}e.isAssertionKey=Vr;function Tr(je){return je.kind===10||Pe(je.kind)}e.isStringTextContainingNode=Tr;function vi(je){return e.isIdentifier(je)&&(je.autoGenerateFlags&7)>0}e.isGeneratedIdentifier=vi;function Ui(je){return(e.isPropertyDeclaration(je)||Oi(je))&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierClassElementDeclaration=Ui;function Yi(je){return e.isPropertyAccessExpression(je)&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierPropertyAccessExpression=Yi;function Wi(je){switch(je){case 126:case 131:case 85:case 135:case 88:case 93:case 101:case 123:case 121:case 122:case 145:case 124:case 144:case 159:return!0}return!1}e.isModifierKind=Wi;function ct(je){return!!(e.modifierToFlag(je)&16476)}e.isParameterPropertyModifier=ct;function Li(je){return ct(je)||je===124||je===159}e.isClassMemberModifier=Li;function nt(je){return Wi(je.kind)}e.isModifier=nt;function Mt(je){var Hr=je.kind;return Hr===161||Hr===79}e.isEntityName=Mt;function xt(je){var Hr=je.kind;return Hr===79||Hr===80||Hr===10||Hr===8||Hr===162}e.isPropertyName=xt;function ut(je){var Hr=je.kind;return Hr===79||Hr===201||Hr===202}e.isBindingName=ut;function Dt(je){return!!je&&ui(je.kind)}e.isFunctionLike=Dt;function Rt(je){return!!je&&(ui(je.kind)||e.isClassStaticBlockDeclaration(je))}e.isFunctionLikeOrClassStaticBlockDeclaration=Rt;function Ii(je){return je&&Fi(je.kind)}e.isFunctionLikeDeclaration=Ii;function Ki(je){return je.kind===110||je.kind===95}e.isBooleanLiteral=Ki;function Fi(je){switch(je){case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return!1}}function ui(je){switch(je){case 168:case 174:case 323:case 175:case 176:case 179:case 317:case 180:return!0;default:return Fi(je)}}e.isFunctionLikeKind=ui;function Bt(je){return e.isSourceFile(je)||e.isModuleBlock(je)||e.isBlock(je)&&Dt(je.parent)}e.isFunctionOrModuleBlock=Bt;function wt(je){var Hr=je.kind;return Hr===171||Hr===167||Hr===169||Hr===172||Hr===173||Hr===176||Hr===170||Hr===234}e.isClassElement=wt;function na(je){return je&&(je.kind===257||je.kind===226)}e.isClassLike=na;function Ai(je){return je&&(je.kind===172||je.kind===173)}e.isAccessor=Ai;function Oi(je){switch(je.kind){case 169:case 172:case 173:return!0;default:return!1}}e.isMethodOrAccessor=Oi;function ji(je){var Hr=je.kind;return Hr===175||Hr===174||Hr===166||Hr===168||Hr===176||Hr===172||Hr===173}e.isTypeElement=ji;function Vi(je){return ji(je)||wt(je)}e.isClassOrTypeElement=Vi;function at(je){var Hr=je.kind;return Hr===296||Hr===297||Hr===298||Hr===169||Hr===172||Hr===173}e.isObjectLiteralElementLike=at;function At(je){return e.isTypeNodeKind(je.kind)}e.isTypeNode=At;function ba(je){switch(je.kind){case 179:case 180:return!0}return!1}e.isFunctionOrConstructorTypeNode=ba;function $a(je){if(je){var Hr=je.kind;return Hr===202||Hr===201}return!1}e.isBindingPattern=$a;function Qa(je){var Hr=je.kind;return Hr===204||Hr===205}e.isAssignmentPattern=Qa;function ai(je){var Hr=je.kind;return Hr===203||Hr===227}e.isArrayBindingElement=ai;function Dn(je){switch(je.kind){case 254:case 164:case 203:return!0}return!1}e.isDeclarationBindingElement=Dn;function ka(je){return Ba(je)||Cn(je)}e.isBindingOrAssignmentPattern=ka;function Ba(je){switch(je.kind){case 201:case 205:return!0}return!1}e.isObjectBindingOrAssignmentPattern=Ba;function pn(je){switch(je.kind){case 203:case 296:case 297:case 298:return!0}return!1}e.isObjectBindingOrAssignmentElement=pn;function Cn(je){switch(je.kind){case 202:case 204:return!0}return!1}e.isArrayBindingOrAssignmentPattern=Cn;function Bi(je){var Hr=je.kind;return Hr===206||Hr===161||Hr===200}e.isPropertyAccessOrQualifiedNameOrImportTypeNode=Bi;function kn(je){var Hr=je.kind;return Hr===206||Hr===161}e.isPropertyAccessOrQualifiedName=kn;function xn(je){switch(je.kind){case 280:case 279:case 208:case 209:case 210:case 165:return!0;default:return!1}}e.isCallLikeExpression=xn;function Kn(je){return je.kind===208||je.kind===209}e.isCallOrNewExpression=Kn;function Pn(je){var Hr=je.kind;return Hr===223||Hr===14}e.isTemplateLiteral=Pn;function eo(je){return Rn(Jr(je).kind)}e.isLeftHandSideExpression=eo;function Rn(je){switch(je){case 206:case 207:case 209:case 208:case 278:case 279:case 282:case 210:case 204:case 212:case 205:case 226:case 213:case 79:case 80:case 13:case 8:case 9:case 10:case 14:case 223:case 95:case 104:case 108:case 110:case 106:case 230:case 228:case 231:case 100:return!0;default:return!1}}function Da(je){return bo(Jr(je).kind)}e.isUnaryExpression=Da;function bo(je){switch(je){case 219:case 220:case 215:case 216:case 217:case 218:case 211:return!0;default:return Rn(je)}}function Ro(je){switch(je.kind){case 220:return!0;case 219:return je.operator===45||je.operator===46;default:return!1}}e.isUnaryExpressionWithWrite=Ro;function En(je){return Wn(Jr(je).kind)}e.isExpression=En;function Wn(je){switch(je){case 222:case 224:case 214:case 221:case 225:case 229:case 227:case 351:case 350:return!0;default:return bo(je)}}function to(je){var Hr=je.kind;return Hr===211||Hr===229}e.isAssertionExpression=to;function Co(je){return e.isNotEmittedStatement(je)||e.isPartiallyEmittedExpression(je)}e.isNotEmittedOrPartiallyEmittedNode=Co;function Ko(je,Hr){switch(je.kind){case 242:case 243:case 244:case 240:case 241:return!0;case 250:return Hr&&Ko(je.statement,Hr)}return!1}e.isIterationStatement=Ko;function Oo(je){return e.isExportAssignment(je)||e.isExportDeclaration(je)}e.isScopeMarker=Oo;function no(je){return e.some(je,Oo)}e.hasScopeMarker=no;function $o(je){return!e.isAnyImportOrReExport(je)&&!e.isExportAssignment(je)&&!e.hasSyntacticModifier(je,1)&&!e.isAmbientModule(je)}e.needsScopeMarker=$o;function Pr(je){return e.isAnyImportOrReExport(je)||e.isExportAssignment(je)||e.hasSyntacticModifier(je,1)}e.isExternalModuleIndicator=Pr;function xi(je){return je.kind===243||je.kind===244}e.isForInOrOfStatement=xi;function St(je){return e.isBlock(je)||En(je)}e.isConciseBody=St;function pa(je){return e.isBlock(je)}e.isFunctionBody=pa;function dn(je){return e.isVariableDeclarationList(je)||En(je)}e.isForInitializer=dn;function Jn(je){var Hr=je.kind;return Hr===262||Hr===261||Hr===79}e.isModuleBody=Jn;function Qe(je){var Hr=je.kind;return Hr===262||Hr===261}e.isNamespaceBody=Qe;function Gr(je){var Hr=je.kind;return Hr===79||Hr===261}e.isJSDocNamespaceBody=Gr;function S(je){var Hr=je.kind;return Hr===269||Hr===268}e.isNamedImportBindings=S;function Ce(je){return je.kind===261||je.kind===260}e.isModuleOrEnumDeclaration=Ce;function qe(je){return je===214||je===203||je===257||je===226||je===170||je===171||je===260||je===299||je===275||je===256||je===213||je===172||je===267||je===265||je===270||je===258||je===285||je===169||je===168||je===261||je===264||je===268||je===274||je===164||je===296||je===167||je===166||je===173||je===297||je===259||je===163||je===254||je===345||je===338||je===347}function br(je){return je===256||je===276||je===257||je===258||je===259||je===260||je===261||je===266||je===265||je===272||je===271||je===264}function Zr(je){return je===246||je===245||je===253||je===240||je===238||je===236||je===243||je===244||je===242||je===239||je===250||je===247||je===249||je===251||je===252||je===237||je===241||je===248||je===349||je===353||je===352}function Si(je){return je.kind===163?je.parent&&je.parent.kind!==344||e.isInJSFile(je):qe(je.kind)}e.isDeclaration=Si;function Pi(je){return br(je.kind)}e.isDeclarationStatement=Pi;function Qi(je){return Zr(je.kind)}e.isStatementButNotDeclaration=Qi;function Ct(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||sa(je)}e.isStatement=Ct;function sa(je){return je.kind!==235||je.parent!==void 0&&(je.parent.kind===252||je.parent.kind===292)?!1:!e.isFunctionBlock(je)}function en(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||Hr===235}e.isStatementOrBlock=en;function Wa(je){var Hr=je.kind;return Hr===277||Hr===161||Hr===79}e.isModuleReference=Wa;function qn(je){var Hr=je.kind;return Hr===108||Hr===79||Hr===206}e.isJsxTagNameExpression=qn;function mo(je){var Hr=je.kind;return Hr===278||Hr===288||Hr===279||Hr===11||Hr===282}e.isJsxChild=mo;function So(je){var Hr=je.kind;return Hr===285||Hr===287}e.isJsxAttributeLike=So;function Go(je){var Hr=je.kind;return Hr===10||Hr===288}e.isStringLiteralOrJsxExpression=Go;function ys(je){var Hr=je.kind;return Hr===280||Hr===279}e.isJsxOpeningLikeElement=ys;function Pc(je){var Hr=je.kind;return Hr===289||Hr===290}e.isCaseOrDefaultClause=Pc;function Vc(je){return je.kind>=309&&je.kind<=347}e.isJSDocNode=Vc;function Kc(je){return je.kind===320||je.kind===319||je.kind===321||qi(je)||Xs(je)||e.isJSDocTypeLiteral(je)||e.isJSDocSignature(je)}e.isJSDocCommentContainingNode=Kc;function Xs(je){return je.kind>=327&&je.kind<=347}e.isJSDocTag=Xs;function pc(je){return je.kind===173}e.isSetAccessor=pc;function hs(je){return je.kind===172}e.isGetAccessor=hs;function tc(je){var Hr=je.jsDoc;return!!Hr&&Hr.length>0}e.hasJSDocNodes=tc;function ps(je){return!!je.type}e.hasType=ps;function Qs(je){return!!je.initializer}e.hasInitializer=Qs;function js(je){switch(je.kind){case 254:case 164:case 203:case 166:case 167:case 296:case 299:return!0;default:return!1}}e.hasOnlyExpressionInitializer=js;function ds(je){return je.kind===285||je.kind===287||at(je)}e.isObjectLiteralElement=ds;function Ji(je){return je.kind===178||je.kind===228}e.isTypeReferenceType=Ji;var ce=1073741823;function Rr(je){for(var Hr=ce,pt=0,Pt=je;pt=0),e.getLineStarts(te)[c]}e.getStartPositionOfLine=L;function P(c){var te=$(c),xr=e.getLineAndCharacterOfPosition(te,c.pos);return\"\".concat(te.fileName,\"(\").concat(xr.line+1,\",\").concat(xr.character+1,\")\")}e.nodePosToString=P;function k(c,te){e.Debug.assert(c>=0);var xr=e.getLineStarts(te),ei=c,bi=te.text;if(ei+1===xr.length)return bi.length-1;var Ft=xr[ei],ot=xr[ei+1]-1;for(e.Debug.assert(e.isLineBreak(bi.charCodeAt(ot)));Ft<=ot&&e.isLineBreak(bi.charCodeAt(ot));)ot--;return ot}e.getEndLinePosition=k;function Y(c,te,xr){return!(xr&&xr(te))&&!c.identifiers.has(te)}e.isFileLevelUniqueName=Y;function U(c){return c===void 0?!0:c.pos===c.end&&c.pos>=0&&c.kind!==1}e.nodeIsMissing=U;function j(c){return!U(c)}e.nodeIsPresent=j;function H(c,te,xr){if(te===void 0||te.length===0)return c;for(var ei=0;ei0?Fe(c._children[0],te,xr):e.skipTrivia((te||$(c)).text,c.pos,!1,!1,Wa(c))}e.getTokenPosOfNode=Fe;function Z(c,te){return U(c)||!c.decorators?Fe(c,te):e.skipTrivia((te||$(c)).text,c.decorators.end)}e.getNonDecoratorTokenPosOfNode=Z;function Be(c,te,xr){return xr===void 0&&(xr=!1),ze(c.text,te,xr)}e.getSourceTextOfNodeFromSourceFile=Be;function ge(c){return!!e.findAncestor(c,e.isJSDocTypeExpression)}function Re(c){return!!(e.isExportDeclaration(c)&&c.exportClause&&e.isNamespaceExport(c.exportClause)&&c.exportClause.name.escapedText===\"default\")}e.isExportNamespaceAsDefaultDeclaration=Re;function ze(c,te,xr){if(xr===void 0&&(xr=!1),U(te))return\"\";var ei=c.substring(xr?te.pos:e.skipTrivia(c,te.pos),te.end);return ge(te)&&(ei=ei.split(/\\r\\n|\\n|\\r/).map(function(bi){return e.trimStringStart(bi.replace(/^\\s*\\*/,\"\"))}).join(`\n`)),ei}e.getTextOfNodeFromSourceText=ze;function Ee(c,te){return te===void 0&&(te=!1),Be($(c),c,te)}e.getTextOfNode=Ee;function He(c){return c.pos}function rr(c,te){return e.binarySearch(c,te,He,e.compareValues)}e.indexOfNode=rr;function Ie(c){var te=c.emitNode;return te&&te.flags||0}e.getEmitFlags=Ie;function _e(){return{es2015:{Array:[\"find\",\"findIndex\",\"fill\",\"copyWithin\",\"entries\",\"keys\",\"values\"],RegExp:[\"flags\",\"sticky\",\"unicode\"],Reflect:[\"apply\",\"construct\",\"defineProperty\",\"deleteProperty\",\"get\",\" getOwnPropertyDescriptor\",\"getPrototypeOf\",\"has\",\"isExtensible\",\"ownKeys\",\"preventExtensions\",\"set\",\"setPrototypeOf\"],ArrayConstructor:[\"from\",\"of\"],ObjectConstructor:[\"assign\",\"getOwnPropertySymbols\",\"keys\",\"is\",\"setPrototypeOf\"],NumberConstructor:[\"isFinite\",\"isInteger\",\"isNaN\",\"isSafeInteger\",\"parseFloat\",\"parseInt\"],Math:[\"clz32\",\"imul\",\"sign\",\"log10\",\"log2\",\"log1p\",\"expm1\",\"cosh\",\"sinh\",\"tanh\",\"acosh\",\"asinh\",\"atanh\",\"hypot\",\"trunc\",\"fround\",\"cbrt\"],Map:[\"entries\",\"keys\",\"values\"],Set:[\"entries\",\"keys\",\"values\"],Promise:e.emptyArray,PromiseConstructor:[\"all\",\"race\",\"reject\",\"resolve\"],Symbol:[\"for\",\"keyFor\"],WeakMap:[\"entries\",\"keys\",\"values\"],WeakSet:[\"entries\",\"keys\",\"values\"],Iterator:e.emptyArray,AsyncIterator:e.emptyArray,String:[\"codePointAt\",\"includes\",\"endsWith\",\"normalize\",\"repeat\",\"startsWith\",\"anchor\",\"big\",\"blink\",\"bold\",\"fixed\",\"fontcolor\",\"fontsize\",\"italics\",\"link\",\"small\",\"strike\",\"sub\",\"sup\"],StringConstructor:[\"fromCodePoint\",\"raw\"]},es2016:{Array:[\"includes\"]},es2017:{Atomics:e.emptyArray,SharedArrayBuffer:e.emptyArray,String:[\"padStart\",\"padEnd\"],ObjectConstructor:[\"values\",\"entries\",\"getOwnPropertyDescriptors\"],DateTimeFormat:[\"formatToParts\"]},es2018:{Promise:[\"finally\"],RegExpMatchArray:[\"groups\"],RegExpExecArray:[\"groups\"],RegExp:[\"dotAll\"],Intl:[\"PluralRules\"],AsyncIterable:e.emptyArray,AsyncIterableIterator:e.emptyArray,AsyncGenerator:e.emptyArray,AsyncGeneratorFunction:e.emptyArray,NumberFormat:[\"formatToParts\"]},es2019:{Array:[\"flat\",\"flatMap\"],ObjectConstructor:[\"fromEntries\"],String:[\"trimStart\",\"trimEnd\",\"trimLeft\",\"trimRight\"],Symbol:[\"description\"]},es2020:{BigInt:e.emptyArray,BigInt64Array:e.emptyArray,BigUint64Array:e.emptyArray,PromiseConstructor:[\"allSettled\"],SymbolConstructor:[\"matchAll\"],String:[\"matchAll\"],DataView:[\"setBigInt64\",\"setBigUint64\",\"getBigInt64\",\"getBigUint64\"],RelativeTimeFormat:[\"format\",\"formatToParts\",\"resolvedOptions\"]},es2021:{PromiseConstructor:[\"any\"],String:[\"replaceAll\"]},es2022:{Array:[\"at\"],String:[\"at\"],Int8Array:[\"at\"],Uint8Array:[\"at\"],Uint8ClampedArray:[\"at\"],Int16Array:[\"at\"],Uint16Array:[\"at\"],Int32Array:[\"at\"],Uint32Array:[\"at\"],Float32Array:[\"at\"],Float64Array:[\"at\"],BigInt64Array:[\"at\"],BigUint64Array:[\"at\"],ObjectConstructor:[\"hasOwn\"],Error:[\"cause\"]}}}e.getScriptTargetFeatures=_e;var we;(function(c){c[c.None=0]=\"None\",c[c.NeverAsciiEscape=1]=\"NeverAsciiEscape\",c[c.JsxAttributeEscape=2]=\"JsxAttributeEscape\",c[c.TerminateUnterminatedLiterals=4]=\"TerminateUnterminatedLiterals\",c[c.AllowNumericSeparator=8]=\"AllowNumericSeparator\"})(we=e.GetLiteralTextFlags||(e.GetLiteralTextFlags={}));function de(c,te,xr){var ei;if(te&&ye(c,xr))return Be(te,c);switch(c.kind){case 10:{var bi=xr&2?wc:xr&1||Ie(c)&16777216?ks:Zl;return c.singleQuote?\"'\"+bi(c.text,39)+\"'\":'\"'+bi(c.text,34)+'\"'}case 14:case 15:case 16:case 17:{var bi=xr&1||Ie(c)&16777216?ks:Zl,Ft=(ei=c.rawText)!==null&&ei!==void 0?ei:gd(bi(c.text,96));switch(c.kind){case 14:return\"`\"+Ft+\"`\";case 15:return\"`\"+Ft+\"${\";case 16:return\"}\"+Ft+\"${\";case 17:return\"}\"+Ft+\"`\"}break}case 8:case 9:return c.text;case 13:return xr&4&&c.isUnterminated?c.text+(c.text.charCodeAt(c.text.length-1)===92?\" /\":\"/\"):c.text}return e.Debug.fail(\"Literal kind '\".concat(c.kind,\"' not accounted for.\"))}e.getLiteralText=de;function ye(c,te){return F_(c)||!c.parent||te&4&&c.isUnterminated?!1:e.isNumericLiteral(c)&&c.numericLiteralFlags&512?!!(te&8):!e.isBigIntLiteral(c)}function Ae(c){return e.isString(c)?'\"'+Zl(c)+'\"':\"\"+c}e.getTextOfConstantValue=Ae;function er(c){return e.getBaseFileName(c).replace(/^(\\d)/,\"_$1\").replace(/\\W/g,\"_\")}e.makeIdentifierFromModuleName=er;function ir(c){return(e.getCombinedNodeFlags(c)&3)!==0||Cr(c)}e.isBlockOrCatchScoped=ir;function Cr(c){var te=jf(c);return te.kind===254&&te.parent.kind===292}e.isCatchClauseVariableDeclarationOrBindingElement=Cr;function Ye(c){return e.isModuleDeclaration(c)&&(c.name.kind===10||Ge(c))}e.isAmbientModule=Ye;function Br(c){return e.isModuleDeclaration(c)&&c.name.kind===10}e.isModuleWithStringLiteralName=Br;function Er(c){return e.isModuleDeclaration(c)&&e.isStringLiteral(c.name)}e.isNonGlobalAmbientModule=Er;function Ne(c){return e.isModuleDeclaration(c)||e.isIdentifier(c)}e.isEffectiveModuleDeclaration=Ne;function n(c){return lr(c.valueDeclaration)}e.isShorthandAmbientModuleSymbol=n;function lr(c){return!!c&&c.kind===261&&!c.body}function be(c){return c.kind===305||c.kind===261||e.isFunctionLikeOrClassStaticBlockDeclaration(c)}e.isBlockScopedContainerTopLevel=be;function Ge(c){return!!(c.flags&1024)}e.isGlobalScopeAugmentation=Ge;function ur(c){return Ye(c)&&yr(c)}e.isExternalModuleAugmentation=ur;function yr(c){switch(c.parent.kind){case 305:return e.isExternalModule(c.parent);case 262:return Ye(c.parent.parent)&&e.isSourceFile(c.parent.parent.parent)&&!e.isExternalModule(c.parent.parent.parent)}return!1}e.isModuleAugmentationExternal=yr;function Ir(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(function(xr){return!ur(xr)&&!(e.isModuleDeclaration(xr)&&Ge(xr))})}e.getNonAugmentationDeclaration=Ir;function wr(c){return c===e.ModuleKind.CommonJS||c===e.ModuleKind.Node16||c===e.ModuleKind.NodeNext}function Ur(c,te){return e.isExternalModule(c)||te.isolatedModules||wr(Ja(te))&&!!c.commonJsModuleIndicator}e.isEffectiveExternalModule=Ur;function ii(c,te){switch(c.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return c.isDeclarationFile?!1:Sd(te,\"alwaysStrict\")||e.startsWithUseStrict(c.statements)?!0:e.isExternalModule(c)||te.isolatedModules?Ja(te)>=e.ModuleKind.ES2015?!0:!te.noImplicitUseStrict:!1}e.isEffectiveStrictModeSourceFile=ii;function mi(c,te){switch(c.kind){case 305:case 263:case 292:case 261:case 242:case 243:case 244:case 171:case 169:case 172:case 173:case 256:case 213:case 214:case 167:case 170:return!0;case 235:return!e.isFunctionLikeOrClassStaticBlockDeclaration(te)}return!1}e.isBlockScope=mi;function pe(c){switch(c.kind){case 338:case 345:case 323:return!0;default:return e.assertType(c),or(c)}}e.isDeclarationWithTypeParameters=pe;function or(c){switch(c.kind){case 174:case 175:case 168:case 176:case 179:case 180:case 317:case 257:case 226:case 258:case 259:case 344:case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return e.assertType(c),!1}}e.isDeclarationWithTypeParameterChildren=or;function qr(c){switch(c.kind){case 266:case 265:return!0;default:return!1}}e.isAnyImportSyntax=qr;function si(c){return qr(c)||Go(c)}e.isAnyImportOrBareOrAccessedRequire=si;function Di(c){switch(c.kind){case 266:case 265:case 237:case 257:case 256:case 261:case 259:case 258:case 260:return!0;default:return!1}}e.isLateVisibilityPaintedStatement=Di;function wi(c){return Xi(c)||e.isModuleDeclaration(c)||e.isImportTypeNode(c)||Vr(c)}e.hasPossibleExternalModuleReference=wi;function Xi(c){return qr(c)||e.isExportDeclaration(c)}e.isAnyImportOrReExport=Xi;function et(c){return e.findAncestor(c.parent,function(te){return mi(te,te.parent)})}e.getEnclosingBlockScopeContainer=et;function Gi(c,te){for(var xr=et(c);xr;)te(xr),xr=et(xr)}e.forEachEnclosingBlockScopeContainer=Gi;function Wt(c){return!c||b(c)===0?\"(Missing)\":Ee(c)}e.declarationNameToString=Wt;function Zt(c){return c.declaration?Wt(c.declaration.parameters[0].name):void 0}e.getNameFromIndexInfo=Zt;function _r(c){return c.kind===162&&!ns(c.expression)}e.isComputedNonLiteralName=_r;function pi(c){switch(c.kind){case 79:case 80:return c.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(c.text);case 162:return ns(c.expression)?e.escapeLeadingUnderscores(c.expression.text):void 0;default:return e.Debug.assertNever(c)}}e.tryGetTextOfPropertyName=pi;function ae(c){return e.Debug.checkDefined(pi(c))}e.getTextOfPropertyName=ae;function Xe(c){switch(c.kind){case 108:return\"this\";case 80:case 79:return b(c)===0?e.idText(c):Ee(c);case 161:return Xe(c.left)+\".\"+Xe(c.right);case 206:return e.isIdentifier(c.name)||e.isPrivateIdentifier(c.name)?Xe(c.expression)+\".\"+Xe(c.name):e.Debug.assertNever(c.name);case 311:return Xe(c.left)+Xe(c.right);default:return e.Debug.assertNever(c)}}e.entityNameToString=Xe;function Jr(c,te,xr,ei,bi,Ft){var ot=$(c);return Ze(ot,c,te,xr,ei,bi,Ft)}e.createDiagnosticForNode=Jr;function ti(c,te,xr,ei,bi,Ft,ot){var xa=e.skipTrivia(c.text,te.pos);return Hg(c,xa,te.end-xa,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeArray=ti;function Ze(c,te,xr,ei,bi,Ft,ot){var xa=Oe(c,te);return Hg(c,xa.start,xa.length,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeInSourceFile=Ze;function Sr(c,te,xr){var ei=$(c),bi=Oe(ei,c);return Wr(ei,bi.start,bi.length,te,xr)}e.createDiagnosticForNodeFromMessageChain=Sr;function zr(c,te,xr){e.Debug.assertGreaterThanOrEqual(te,0),e.Debug.assertGreaterThanOrEqual(xr,0),c&&(e.Debug.assertLessThanOrEqual(te,c.text.length),e.Debug.assertLessThanOrEqual(te+xr,c.text.length))}function Wr(c,te,xr,ei,bi){return zr(c,te,xr),{file:c,start:te,length:xr,code:ei.code,category:ei.category,messageText:ei.next?ei:ei.messageText,relatedInformation:bi}}e.createFileDiagnosticFromMessageChain=Wr;function Je(c,te,xr){return{file:c,start:0,length:0,code:te.code,category:te.category,messageText:te.next?te:te.messageText,relatedInformation:xr}}e.createDiagnosticForFileFromMessageChain=Je;function xe(c){return typeof c.messageText==\"string\"?{code:c.code,category:c.category,messageText:c.messageText,next:c.next}:c.messageText}e.createDiagnosticMessageChainFromDiagnostic=xe;function vr(c,te,xr){return{file:c,start:te.pos,length:te.end-te.pos,code:xr.code,category:xr.category,messageText:xr.message}}e.createDiagnosticForRange=vr;function mr(c,te){var xr=e.createScanner(c.languageVersion,!0,c.languageVariant,c.text,void 0,te);xr.scan();var ei=xr.getTokenPos();return e.createTextSpanFromBounds(ei,xr.getTextPos())}e.getSpanOfTokenAtPosition=mr;function Ar(c,te){var xr=e.skipTrivia(c.text,te.pos);if(te.body&&te.body.kind===235){var ei=e.getLineAndCharacterOfPosition(c,te.body.pos).line,bi=e.getLineAndCharacterOfPosition(c,te.body.end).line;if(ei0?te.statements[0].pos:te.end;return e.createTextSpanFromBounds(bi,Ft)}if(xr===void 0)return mr(c,te.pos);e.Debug.assert(!e.isJSDoc(xr));var ot=U(xr),xa=ot||e.isJsxText(te)?xr.pos:e.skipTrivia(c.text,xr.pos);return ot?(e.Debug.assert(xa===xr.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(xa===xr.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")):(e.Debug.assert(xa>=xr.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(xa<=xr.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")),e.createTextSpanFromBounds(xa,xr.end)}e.getErrorSpanForNode=Oe;function nr(c){return(c.externalModuleIndicator||c.commonJsModuleIndicator)!==void 0}e.isExternalOrCommonJsModule=nr;function Mr(c){return c.scriptKind===6}e.isJsonSourceFile=Mr;function Pe(c){return!!(e.getCombinedModifierFlags(c)&2048)}e.isEnumConst=Pe;function Ue(c){return!!(e.getCombinedModifierFlags(c)&64&&!e.isParameterPropertyDeclaration(c,c.parent))}e.isDeclarationReadonly=Ue;function fr(c){return!!(e.getCombinedNodeFlags(c)&2)}e.isVarConst=fr;function De(c){return!!(e.getCombinedNodeFlags(c)&1)}e.isLet=De;function gr(c){return c.kind===208&&c.expression.kind===106}e.isSuperCall=gr;function Vr(c){return c.kind===208&&c.expression.kind===100}e.isImportCall=Vr;function Tr(c){return e.isMetaProperty(c)&&c.keywordToken===100&&c.name.escapedText===\"meta\"}e.isImportMeta=Tr;function vi(c){return e.isImportTypeNode(c)&&e.isLiteralTypeNode(c.argument)&&e.isStringLiteral(c.argument.literal)}e.isLiteralImportTypeNode=vi;function Ui(c){return c.kind===238&&c.expression.kind===10}e.isPrologueDirective=Ui;function Yi(c){return!!(Ie(c)&1048576)}e.isCustomPrologue=Yi;function Wi(c){return Yi(c)&&e.isFunctionDeclaration(c)}e.isHoistedFunction=Wi;function ct(c){return e.isIdentifier(c.name)&&!c.initializer}function Li(c){return Yi(c)&&e.isVariableStatement(c)&&e.every(c.declarationList.declarations,ct)}e.isHoistedVariableStatement=Li;function nt(c,te){return c.kind!==11?e.getLeadingCommentRanges(te.text,c.pos):void 0}e.getLeadingCommentRangesOfNode=nt;function Mt(c,te){var xr=c.kind===164||c.kind===163||c.kind===213||c.kind===214||c.kind===212||c.kind===254||c.kind===275?e.concatenate(e.getTrailingCommentRanges(te,c.pos),e.getLeadingCommentRanges(te,c.pos)):e.getLeadingCommentRanges(te,c.pos);return e.filter(xr,function(ei){return te.charCodeAt(ei.pos+1)===42&&te.charCodeAt(ei.pos+2)===42&&te.charCodeAt(ei.pos+3)!==47})}e.getJSDocCommentRanges=Mt,e.fullTripleSlashReferencePathRegEx=/^(\\/\\/\\/\\s*/;var xt=/^(\\/\\/\\/\\s*/;e.fullTripleSlashAMDReferencePathRegEx=/^(\\/\\/\\/\\s*/;var ut=/^(\\/\\/\\/\\s*/;function Dt(c){if(177<=c.kind&&c.kind<=200)return!0;switch(c.kind){case 130:case 155:case 147:case 158:case 150:case 133:case 151:case 148:case 153:case 143:return!0;case 114:return c.parent.kind!==217;case 228:return e.isHeritageClause(c.parent)&&!Fc(c);case 163:return c.parent.kind===195||c.parent.kind===190;case 79:(c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c)&&(c=c.parent),e.Debug.assert(c.kind===79||c.kind===161||c.kind===206,\"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.\");case 161:case 206:case 108:{var te=c.parent;if(te.kind===181)return!1;if(te.kind===200)return!te.isTypeOf;if(177<=te.kind&&te.kind<=200)return!0;switch(te.kind){case 228:return e.isHeritageClause(te.parent)&&!Fc(te);case 163:return c===te.constraint;case 344:return c===te.constraint;case 167:case 166:case 164:case 254:return c===te.type;case 256:case 213:case 214:case 171:case 169:case 168:case 172:case 173:return c===te.type;case 174:case 175:case 176:return c===te.type;case 211:return c===te.type;case 208:case 209:return e.contains(te.typeArguments,c);case 210:return!1}}}return!1}e.isPartOfTypeNode=Dt;function Rt(c,te){for(;c;){if(c.kind===te)return!0;c=c.parent}return!1}e.isChildOfNodeWithKind=Rt;function Ii(c,te){return xr(c);function xr(ei){switch(ei.kind){case 247:return te(ei);case 263:case 235:case 239:case 240:case 241:case 242:case 243:case 244:case 248:case 249:case 289:case 290:case 250:case 252:case 292:return e.forEachChild(ei,xr)}}}e.forEachReturnStatement=Ii;function Ki(c,te){return xr(c);function xr(ei){switch(ei.kind){case 224:te(ei);var bi=ei.expression;bi&&xr(bi);return;case 260:case 258:case 261:case 259:return;default:if(e.isFunctionLike(ei)){if(ei.name&&ei.name.kind===162){xr(ei.name.expression);return}}else Dt(ei)||e.forEachChild(ei,xr)}}}e.forEachYieldExpression=Ki;function Fi(c){return c&&c.kind===183?c.elementType:c&&c.kind===178?e.singleOrUndefined(c.typeArguments):void 0}e.getRestParameterElementType=Fi;function ui(c){switch(c.kind){case 258:case 257:case 226:case 182:return c.members;case 205:return c.properties}}e.getMembersOfDeclaration=ui;function Bt(c){if(c)switch(c.kind){case 203:case 299:case 164:case 296:case 167:case 166:case 297:case 254:return!0}return!1}e.isVariableLike=Bt;function wt(c){return Bt(c)||e.isAccessor(c)}e.isVariableLikeOrAccessor=wt;function na(c){return c.parent.kind===255&&c.parent.parent.kind===237}e.isVariableDeclarationInVariableStatement=na;function Ai(c){return Ct(c)?e.isObjectLiteralExpression(c.parent)&&e.isBinaryExpression(c.parent.parent)&&Hr(c.parent.parent)===2||Oi(c.parent):!1}e.isCommonJsExportedExpression=Ai;function Oi(c){return Ct(c)?e.isBinaryExpression(c)&&Hr(c)===1:!1}e.isCommonJsExportPropertyAssignment=Oi;function ji(c){return(e.isVariableDeclaration(c)?fr(c)&&e.isIdentifier(c.name)&&na(c):e.isPropertyDeclaration(c)?wp(c)&&mc(c):e.isPropertySignature(c)&&wp(c))||Oi(c)}e.isValidESSymbolDeclaration=ji;function Vi(c){switch(c.kind){case 169:case 168:case 171:case 172:case 173:case 256:case 213:return!0}return!1}e.introducesArgumentsExoticObject=Vi;function at(c,te){for(;;){if(te&&te(c),c.statement.kind!==250)return c.statement;c=c.statement}}e.unwrapInnermostStatementOfLabel=at;function At(c){return c&&c.kind===235&&e.isFunctionLike(c.parent)}e.isFunctionBlock=At;function ba(c){return c&&c.kind===169&&c.parent.kind===205}e.isObjectLiteralMethod=ba;function $a(c){return(c.kind===169||c.kind===172||c.kind===173)&&(c.parent.kind===205||c.parent.kind===226)}e.isObjectLiteralOrClassExpressionMethodOrAccessor=$a;function Qa(c){return c&&c.kind===1}e.isIdentifierTypePredicate=Qa;function ai(c){return c&&c.kind===0}e.isThisTypePredicate=ai;function Dn(c,te,xr){return c.properties.filter(function(ei){if(ei.kind===296){var bi=pi(ei.name);return te===bi||!!xr&&xr===bi}return!1})}e.getPropertyAssignment=Dn;function ka(c,te,xr){return e.firstDefined(Dn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getPropertyArrayElementValue=ka;function Ba(c){if(c&&c.statements.length){var te=c.statements[0].expression;return e.tryCast(te,e.isObjectLiteralExpression)}}e.getTsConfigObjectLiteralExpression=Ba;function pn(c,te,xr){return e.firstDefined(Cn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getTsConfigPropArrayElementValue=pn;function Cn(c,te){var xr=Ba(c);return xr?Dn(xr,te):e.emptyArray}e.getTsConfigPropArray=Cn;function Bi(c){return e.findAncestor(c.parent,e.isFunctionLike)}e.getContainingFunction=Bi;function kn(c){return e.findAncestor(c.parent,e.isFunctionLikeDeclaration)}e.getContainingFunctionDeclaration=kn;function xn(c){return e.findAncestor(c.parent,e.isClassLike)}e.getContainingClass=xn;function Kn(c){return e.findAncestor(c.parent,function(te){return e.isClassLike(te)||e.isFunctionLike(te)?\"quit\":e.isClassStaticBlockDeclaration(te)})}e.getContainingClassStaticBlock=Kn;function Pn(c){return e.findAncestor(c.parent,e.isFunctionLikeOrClassStaticBlockDeclaration)}e.getContainingFunctionOrClassStaticBlock=Pn;function eo(c,te){for(e.Debug.assert(c.kind!==305);;){if(c=c.parent,!c)return e.Debug.fail();switch(c.kind){case 162:if(e.isClassLike(c.parent.parent))return c;c=c.parent;break;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break;case 214:if(!te)continue;case 256:case 213:case 261:case 170:case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 174:case 175:case 176:case 260:case 305:return c}}}e.getThisContainer=eo;function Rn(c){switch(c.kind){case 214:case 256:case 213:case 167:return!0;case 235:switch(c.parent.kind){case 171:case 169:case 172:case 173:return!0;default:return!1}default:return!1}}e.isThisContainerOrFunctionBlock=Rn;function Da(c){e.isIdentifier(c)&&(e.isClassDeclaration(c.parent)||e.isFunctionDeclaration(c.parent))&&c.parent.name===c&&(c=c.parent);var te=eo(c,!0);return e.isSourceFile(te)}e.isInTopLevelContext=Da;function bo(c){var te=eo(c,!1);if(te)switch(te.kind){case 171:case 256:case 213:return te}}e.getNewTargetContainer=bo;function Ro(c,te){for(;;){if(c=c.parent,!c)return c;switch(c.kind){case 162:c=c.parent;break;case 256:case 213:case 214:if(!te)continue;case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 170:return c;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break}}}e.getSuperContainer=Ro;function En(c){if(c.kind===213||c.kind===214){for(var te=c,xr=c.parent;xr.kind===212;)te=xr,xr=xr.parent;if(xr.kind===208&&xr.expression===te)return xr}}e.getImmediatelyInvokedFunctionExpression=En;function Wn(c){return c.kind===106||to(c)}e.isSuperOrSuperProperty=Wn;function to(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===106}e.isSuperProperty=to;function Co(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===108}e.isThisProperty=Co;function Ko(c){var te;return!!c&&e.isVariableDeclaration(c)&&((te=c.initializer)===null||te===void 0?void 0:te.kind)===108}e.isThisInitializedDeclaration=Ko;function Oo(c){return!!c&&(e.isShorthandPropertyAssignment(c)||e.isPropertyAssignment(c))&&e.isBinaryExpression(c.parent.parent)&&c.parent.parent.operatorToken.kind===63&&c.parent.parent.right.kind===108}e.isThisInitializedObjectBindingExpression=Oo;function no(c){switch(c.kind){case 178:return c.typeName;case 228:return Hu(c.expression)?c.expression:void 0;case 79:case 161:return c}}e.getEntityNameFromTypeNode=no;function $o(c){switch(c.kind){case 210:return c.tag;case 280:case 279:return c.tagName;default:return c.expression}}e.getInvokedExpression=$o;function Pr(c,te,xr){if(e.isNamedDeclaration(c)&&e.isPrivateIdentifier(c.name))return!1;switch(c.kind){case 257:return!0;case 167:return te.kind===257;case 172:case 173:case 169:return c.body!==void 0&&te.kind===257;case 164:return te.body!==void 0&&(te.kind===171||te.kind===169||te.kind===173)&&xr.kind===257}return!1}e.nodeCanBeDecorated=Pr;function xi(c,te,xr){return c.decorators!==void 0&&Pr(c,te,xr)}e.nodeIsDecorated=xi;function St(c,te,xr){return xi(c,te,xr)||pa(c,te)}e.nodeOrChildIsDecorated=St;function pa(c,te){switch(c.kind){case 257:return e.some(c.members,function(xr){return St(xr,c,te)});case 169:case 173:case 171:return e.some(c.parameters,function(xr){return xi(xr,c,te)});default:return!1}}e.childIsDecorated=pa;function dn(c){if(xi(c))return!0;var te=Nu(c);return!!te&&pa(te,c)}e.classOrConstructorParameterIsDecorated=dn;function Jn(c){var te=c.parent;return te.kind===280||te.kind===279||te.kind===281?te.tagName===c:!1}e.isJSXTagName=Jn;function Qe(c){switch(c.kind){case 106:case 104:case 110:case 95:case 13:case 204:case 205:case 206:case 207:case 208:case 209:case 210:case 229:case 211:case 230:case 212:case 213:case 226:case 214:case 217:case 215:case 216:case 219:case 220:case 221:case 222:case 225:case 223:case 227:case 278:case 279:case 282:case 224:case 218:case 231:return!0;case 161:for(;c.parent.kind===161;)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c);case 311:for(;e.isJSDocMemberName(c.parent);)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c);case 80:return e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===101;case 79:if(c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c))return!0;case 8:case 9:case 10:case 14:case 108:return Gr(c);default:return!1}}e.isExpressionNode=Qe;function Gr(c){var te=c.parent;switch(te.kind){case 254:case 164:case 167:case 166:case 299:case 296:case 203:return te.initializer===c;case 238:case 239:case 240:case 241:case 247:case 248:case 249:case 289:case 251:return te.expression===c;case 242:var xr=te;return xr.initializer===c&&xr.initializer.kind!==255||xr.condition===c||xr.incrementor===c;case 243:case 244:var ei=te;return ei.initializer===c&&ei.initializer.kind!==255||ei.expression===c;case 211:case 229:return c===te.expression;case 233:return c===te.expression;case 162:return c===te.expression;case 165:case 288:case 287:case 298:return!0;case 228:return te.expression===c&&!Dt(te);case 297:return te.objectAssignmentInitializer===c;default:return Qe(te)}}e.isInExpressionContext=Gr;function S(c){for(;c.kind===161||c.kind===79;)c=c.parent;return c.kind===181}e.isPartOfTypeQuery=S;function Ce(c){return e.isNamespaceExport(c)&&!!c.parent.moduleSpecifier}e.isNamespaceReexportDeclaration=Ce;function qe(c){return c.kind===265&&c.moduleReference.kind===277}e.isExternalModuleImportEqualsDeclaration=qe;function br(c){return e.Debug.assert(qe(c)),c.moduleReference.expression}e.getExternalModuleImportEqualsDeclarationExpression=br;function Zr(c){return Go(c)&&Xa(c.initializer).arguments[0]}e.getExternalModuleRequireArgument=Zr;function Si(c){return c.kind===265&&c.moduleReference.kind!==277}e.isInternalModuleImportEqualsDeclaration=Si;function Pi(c){return Ct(c)}e.isSourceFileJS=Pi;function Qi(c){return!Ct(c)}e.isSourceFileNotJS=Qi;function Ct(c){return!!c&&!!(c.flags&262144)}e.isInJSFile=Ct;function sa(c){return!!c&&!!(c.flags&67108864)}e.isInJsonFile=sa;function en(c){return!Mr(c)}e.isSourceFileNotJson=en;function Wa(c){return!!c&&!!(c.flags&8388608)}e.isInJSDoc=Wa;function qn(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)&&c.typeName.escapedText===\"Object\"&&c.typeArguments&&c.typeArguments.length===2&&(c.typeArguments[0].kind===150||c.typeArguments[0].kind===147)}e.isJSDocIndexSignature=qn;function mo(c,te){if(c.kind!==208)return!1;var xr=c,ei=xr.expression,bi=xr.arguments;if(ei.kind!==79||ei.escapedText!==\"require\"||bi.length!==1)return!1;var Ft=bi[0];return!te||e.isStringLiteralLike(Ft)}e.isRequireCall=mo;function So(c){return ys(c,!1)}e.isVariableDeclarationInitializedToRequire=So;function Go(c){return ys(c,!0)}e.isVariableDeclarationInitializedToBareOrAccessedRequire=Go;function ys(c,te){return c.kind===203&&(c=c.parent.parent),e.isVariableDeclaration(c)&&!!c.initializer&&mo(te?Xa(c.initializer):c.initializer,!0)}function Pc(c){return e.isVariableStatement(c)&&c.declarationList.declarations.length>0&&e.every(c.declarationList.declarations,function(te){return So(te)})}e.isRequireVariableStatement=Pc;function Vc(c){return c===39||c===34}e.isSingleOrDoubleQuote=Vc;function Kc(c,te){return Be(te,c).charCodeAt(0)===34}e.isStringDoubleQuoted=Kc;function Xs(c){return e.isBinaryExpression(c)||cr(c)||e.isIdentifier(c)||e.isCallExpression(c)}e.isAssignmentDeclaration=Xs;function pc(c){return Ct(c)&&c.initializer&&e.isBinaryExpression(c.initializer)&&(c.initializer.operatorToken.kind===56||c.initializer.operatorToken.kind===60)&&c.name&&Hu(c.name)&&ce(c.name,c.initializer.left)?c.initializer.right:c.initializer}e.getEffectiveInitializer=pc;function hs(c){var te=pc(c);return te&&Qs(te,nf(c.name))}e.getDeclaredExpandoInitializer=hs;function tc(c,te){return e.forEach(c.properties,function(xr){return e.isPropertyAssignment(xr)&&e.isIdentifier(xr.name)&&xr.name.escapedText===\"value\"&&xr.initializer&&Qs(xr.initializer,te)})}function ps(c){if(c&&c.parent&&e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63){var te=nf(c.parent.left);return Qs(c.parent.right,te)||js(c.parent.left,c.parent.right,te)}if(c&&e.isCallExpression(c)&&pt(c)){var xr=tc(c.arguments[2],c.arguments[1].text===\"prototype\");if(xr)return xr}}e.getAssignedExpandoInitializer=ps;function Qs(c,te){if(e.isCallExpression(c)){var xr=po(c.expression);return xr.kind===213||xr.kind===214?c:void 0}if(c.kind===213||c.kind===226||c.kind===214||e.isObjectLiteralExpression(c)&&(c.properties.length===0||te))return c}e.getExpandoInitializer=Qs;function js(c,te,xr){var ei=e.isBinaryExpression(te)&&(te.operatorToken.kind===56||te.operatorToken.kind===60)&&Qs(te.right,xr);if(ei&&ce(c,te.left))return ei}function ds(c){var te=e.isVariableDeclaration(c.parent)?c.parent.name:e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63?c.parent.left:void 0;return te&&Qs(c.right,nf(te))&&Hu(te)&&ce(te,c.left)}e.isDefaultedExpandoInitializer=ds;function Ji(c){if(e.isBinaryExpression(c.parent)){var te=(c.parent.operatorToken.kind===56||c.parent.operatorToken.kind===60)&&e.isBinaryExpression(c.parent.parent)?c.parent.parent:c.parent;if(te.operatorToken.kind===63&&e.isIdentifier(te.left))return te.left}else if(e.isVariableDeclaration(c.parent))return c.parent.name}e.getNameOfExpando=Ji;function ce(c,te){return Jf(c)&&Jf(te)?w_(c)===w_(te):e.isMemberName(c)&&Pt(te)&&(te.expression.kind===108||e.isIdentifier(te.expression)&&(te.expression.escapedText===\"window\"||te.expression.escapedText===\"self\"||te.expression.escapedText===\"global\"))?ce(c,fo(te)):Pt(c)&&Pt(te)?Ao(c)===Ao(te)&&ce(c.expression,te.expression):!1}e.isSameEntityName=ce;function Rr(c){for(;dl(c,!0);)c=c.right;return c}e.getRightMostAssignedExpression=Rr;function yi(c){return e.isIdentifier(c)&&c.escapedText===\"exports\"}e.isExportsIdentifier=yi;function qi(c){return e.isIdentifier(c)&&c.escapedText===\"module\"}e.isModuleIdentifier=qi;function je(c){return(e.isPropertyAccessExpression(c)||ga(c))&&qi(c.expression)&&Ao(c)===\"exports\"}e.isModuleExportsAccessExpression=je;function Hr(c){var te=xs(c);return te===5||Ct(c)?te:0}e.getAssignmentDeclarationKind=Hr;function pt(c){return e.length(c.arguments)===3&&e.isPropertyAccessExpression(c.expression)&&e.isIdentifier(c.expression.expression)&&e.idText(c.expression.expression)===\"Object\"&&e.idText(c.expression.name)===\"defineProperty\"&&ns(c.arguments[1])&&jr(c.arguments[0],!0)}e.isBindableObjectDefinePropertyCall=pt;function Pt(c){return e.isPropertyAccessExpression(c)||ga(c)}e.isLiteralLikeAccess=Pt;function ga(c){return e.isElementAccessExpression(c)&&ns(c.argumentExpression)}e.isLiteralLikeElementAccess=ga;function ua(c,te){return e.isPropertyAccessExpression(c)&&(!te&&c.expression.kind===108||e.isIdentifier(c.name)&&jr(c.expression,!0))||Xn(c,te)}e.isBindableStaticAccessExpression=ua;function Xn(c,te){return ga(c)&&(!te&&c.expression.kind===108||Hu(c.expression)||ua(c.expression,!0))}e.isBindableStaticElementAccessExpression=Xn;function jr(c,te){return Hu(c)||ua(c,te)}e.isBindableStaticNameExpression=jr;function fo(c){return e.isPropertyAccessExpression(c)?c.name:c.argumentExpression}e.getNameOrArgument=fo;function xs(c){if(e.isCallExpression(c)){if(!pt(c))return 0;var te=c.arguments[0];return yi(te)||je(te)?8:ua(te)&&Ao(te)===\"prototype\"?9:7}return c.operatorToken.kind!==63||!cr(c.left)||Fo(Rr(c))?0:jr(c.left.expression,!0)&&Ao(c.left)===\"prototype\"&&e.isObjectLiteralExpression(Bs(c))?6:Ms(c.left)}function Fo(c){return e.isVoidExpression(c)&&e.isNumericLiteral(c.expression)&&c.expression.text===\"0\"}function ko(c){if(e.isPropertyAccessExpression(c))return c.name;var te=po(c.argumentExpression);return e.isNumericLiteral(te)||e.isStringLiteralLike(te)?te:c}e.getElementOrPropertyAccessArgumentExpressionOrName=ko;function Ao(c){var te=ko(c);if(te){if(e.isIdentifier(te))return te.escapedText;if(e.isStringLiteralLike(te)||e.isNumericLiteral(te))return e.escapeLeadingUnderscores(te.text)}}e.getElementOrPropertyAccessName=Ao;function Ms(c){if(c.expression.kind===108)return 4;if(je(c))return 2;if(jr(c.expression,!0)){if(nf(c.expression))return 3;for(var te=c;!e.isIdentifier(te.expression);)te=te.expression;var xr=te.expression;if((xr.escapedText===\"exports\"||xr.escapedText===\"module\"&&Ao(te)===\"exports\")&&ua(c))return 1;if(jr(c,!0)||e.isElementAccessExpression(c)&&es(c))return 5}return 0}e.getAssignmentDeclarationPropertyAccessKind=Ms;function Bs(c){for(;e.isBinaryExpression(c.right);)c=c.right;return c.right}e.getInitializerOfBinaryExpression=Bs;function xc(c){return e.isBinaryExpression(c)&&Hr(c)===3}e.isPrototypePropertyAssignment=xc;function su(c){return Ct(c)&&c.parent&&c.parent.kind===238&&(!e.isElementAccessExpression(c)||ga(c))&&!!e.getJSDocTypeTag(c.parent)}e.isSpecialPropertyDeclaration=su;function tl(c,te){var xr=c.valueDeclaration;(!xr||!(te.flags&16777216&&!(xr.flags&16777216))&&Xs(xr)&&!Xs(te)||xr.kind!==te.kind&&Ne(xr))&&(c.valueDeclaration=te)}e.setValueDeclaration=tl;function Zc(c){if(!c||!c.valueDeclaration)return!1;var te=c.valueDeclaration;return te.kind===256||e.isVariableDeclaration(te)&&te.initializer&&e.isFunctionLike(te.initializer)}e.isFunctionSymbol=Zc;function Rf(c){var te,xr;switch(c.kind){case 254:return(te=e.findAncestor(c.initializer,function(ei){return mo(ei,!0)}))===null||te===void 0?void 0:te.arguments[0];case 266:return e.tryCast(c.moduleSpecifier,e.isStringLiteralLike);case 265:return e.tryCast((xr=e.tryCast(c.moduleReference,e.isExternalModuleReference))===null||xr===void 0?void 0:xr.expression,e.isStringLiteralLike);default:e.Debug.assertNever(c)}}e.tryGetModuleSpecifierFromDeclaration=Rf;function al(c){return Jo(c)||e.Debug.failBadSyntaxKind(c.parent)}e.importFromModuleSpecifier=al;function Jo(c){switch(c.parent.kind){case 266:case 272:return c.parent;case 277:return c.parent.parent;case 208:return Vr(c.parent)||mo(c.parent,!1)?c.parent:void 0;case 196:return e.Debug.assert(e.isStringLiteral(c)),e.tryCast(c.parent.parent,e.isImportTypeNode);default:return}}e.tryGetImportFromModuleSpecifier=Jo;function eu(c){switch(c.kind){case 266:case 272:return c.moduleSpecifier;case 265:return c.moduleReference.kind===277?c.moduleReference.expression:void 0;case 200:return vi(c)?c.argument.literal:void 0;case 208:return c.arguments[0];case 261:return c.name.kind===10?c.name:void 0;default:return e.Debug.assertNever(c)}}e.getExternalModuleName=eu;function Ws(c){switch(c.kind){case 266:return c.importClause&&e.tryCast(c.importClause.namedBindings,e.isNamespaceImport);case 265:return c;case 272:return c.exportClause&&e.tryCast(c.exportClause,e.isNamespaceExport);default:return e.Debug.assertNever(c)}}e.getNamespaceDeclarationNode=Ws;function pu(c){return c.kind===266&&!!c.importClause&&!!c.importClause.name}e.isDefaultImport=pu;function Uu(c,te){if(c.name){var xr=te(c);if(xr)return xr}if(c.namedBindings){var xr=e.isNamespaceImport(c.namedBindings)?te(c.namedBindings):e.forEach(c.namedBindings.elements,te);if(xr)return xr}}e.forEachImportClauseDeclaration=Uu;function Ql(c){if(c)switch(c.kind){case 164:case 169:case 168:case 297:case 296:case 167:case 166:return c.questionToken!==void 0}return!1}e.hasQuestionToken=Ql;function xl(c){var te=e.isJSDocFunctionType(c)?e.firstOrUndefined(c.parameters):void 0,xr=e.tryCast(te&&te.name,e.isIdentifier);return!!xr&&xr.escapedText===\"new\"}e.isJSDocConstructSignature=xl;function Ya(c){return c.kind===345||c.kind===338||c.kind===339}e.isJSDocTypeAlias=Ya;function du(c){return Ya(c)||e.isTypeAliasDeclaration(c)}e.isTypeAlias=du;function vc(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&c.expression.operatorToken.kind===63?Rr(c.expression):void 0}function Kr(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&Hr(c.expression)!==0&&e.isBinaryExpression(c.expression.right)&&(c.expression.right.operatorToken.kind===56||c.expression.right.operatorToken.kind===60)?c.expression.right.right:void 0}function _i(c){switch(c.kind){case 237:var te=Ei(c);return te&&te.initializer;case 167:return c.initializer;case 296:return c.initializer}}e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=_i;function Ei(c){return e.isVariableStatement(c)?e.firstOrUndefined(c.declarationList.declarations):void 0}e.getSingleVariableOfVariableStatement=Ei;function tt(c){return e.isModuleDeclaration(c)&&c.body&&c.body.kind===261?c.body:void 0}function kt(c,te){var xr;Bt(c)&&e.hasInitializer(c)&&e.hasJSDocNodes(c.initializer)&&(xr=e.addRange(xr,bt(c,e.last(c.initializer.jsDoc))));for(var ei=c;ei&&ei.parent;){if(e.hasJSDocNodes(ei)&&(xr=e.addRange(xr,bt(c,e.last(ei.jsDoc)))),ei.kind===164){xr=e.addRange(xr,(te?e.getJSDocParameterTagsNoCache:e.getJSDocParameterTags)(ei));break}if(ei.kind===163){xr=e.addRange(xr,(te?e.getJSDocTypeParameterTagsNoCache:e.getJSDocTypeParameterTags)(ei));break}ei=Xt(ei)}return xr||e.emptyArray}e.getJSDocCommentsAndTags=kt;function bt(c,te){if(e.isJSDoc(te)){var xr=e.filter(te.tags,function(ei){return ia(c,ei)});return te.tags===xr?[te]:xr}return ia(c,te)?[te]:void 0}function ia(c,te){return!e.isJSDocTypeTag(te)||!te.parent||!e.isJSDoc(te.parent)||!e.isParenthesizedExpression(te.parent.parent)||te.parent.parent===c}function Xt(c){var te=c.parent;if(te.kind===296||te.kind===271||te.kind===167||te.kind===238&&c.kind===206||te.kind===247||tt(te)||e.isBinaryExpression(c)&&c.operatorToken.kind===63)return te;if(te.parent&&(Ei(te.parent)===c||e.isBinaryExpression(te)&&te.operatorToken.kind===63))return te.parent;if(te.parent&&te.parent.parent&&(Ei(te.parent.parent)||_i(te.parent.parent)===c||Kr(te.parent.parent)))return te.parent.parent}e.getNextJSDocCommentLocation=Xt;function Za(c){if(c.symbol)return c.symbol;if(!!e.isIdentifier(c.name)){var te=c.name.escapedText,xr=_a(c);if(!!xr){var ei=e.find(xr.parameters,function(bi){return bi.name.kind===79&&bi.name.escapedText===te});return ei&&ei.symbol}}}e.getParameterSymbolFromJSDoc=Za;function bn(c){if(e.isJSDoc(c.parent)&&c.parent.tags){var te=e.find(c.parent.tags,Ya);if(te)return te}return _a(c)}e.getEffectiveContainerForJSDocTemplateTag=bn;function _a(c){var te=qa(c);if(te)return e.isPropertySignature(te)&&te.type&&e.isFunctionLike(te.type)?te.type:e.isFunctionLike(te)?te:void 0}e.getHostSignatureFromJSDoc=_a;function qa(c){var te=rn(c);if(te)return Kr(te)||vc(te)||_i(te)||Ei(te)||tt(te)||te}e.getEffectiveJSDocHost=qa;function rn(c){var te=jn(c);if(!!te){var xr=te.parent;if(xr&&xr.jsDoc&&te===e.lastOrUndefined(xr.jsDoc))return xr}}e.getJSDocHost=rn;function jn(c){return e.findAncestor(c.parent,e.isJSDoc)}e.getJSDocRoot=jn;function Mo(c){var te=c.name.escapedText,xr=c.parent.parent.parent.typeParameters;return xr&&e.find(xr,function(ei){return ei.name.escapedText===te})}e.getTypeParameterFromJsDoc=Mo;function ho(c){var te=e.lastOrUndefined(c.parameters);return!!te&&gs(te)}e.hasRestParameter=ho;function gs(c){var te=e.isJSDocParameterTag(c)?c.typeExpression&&c.typeExpression.type:c.type;return c.dotDotDotToken!==void 0||!!te&&te.kind===318}e.isRestParameter=gs;function Se(c){return!!c.typeArguments}e.hasTypeArguments=Se;var hr;(function(c){c[c.None=0]=\"None\",c[c.Definite=1]=\"Definite\",c[c.Compound=2]=\"Compound\"})(hr=e.AssignmentKind||(e.AssignmentKind={}));function Or(c){for(var te=c.parent;;){switch(te.kind){case 221:var xr=te.operatorToken.kind;return Cf(xr)&&te.left===c?xr===63||Gu(xr)?1:2:0;case 219:case 220:var ei=te.operator;return ei===45||ei===46?2:0;case 243:case 244:return te.initializer===c?1:0;case 212:case 204:case 225:case 230:c=te;break;case 298:c=te.parent;break;case 297:if(te.name!==c)return 0;c=te.parent;break;case 296:if(te.name===c)return 0;c=te.parent;break;default:return 0}te=c.parent}}e.getAssignmentTargetKind=Or;function ki(c){return Or(c)!==0}e.isAssignmentTarget=ki;function dt(c){switch(c.kind){case 235:case 237:case 248:case 239:case 249:case 263:case 289:case 290:case 250:case 242:case 243:case 244:case 240:case 241:case 252:case 292:return!0}return!1}e.isNodeWithPossibleHoistedDeclaration=dt;function la(c){return e.isFunctionExpression(c)||e.isArrowFunction(c)||e.isMethodOrAccessor(c)||e.isFunctionDeclaration(c)||e.isConstructorDeclaration(c)}e.isValueSignatureDeclaration=la;function wa(c,te){for(;c&&c.kind===te;)c=c.parent;return c}function On(c){return wa(c,191)}e.walkUpParenthesizedTypes=On;function No(c){return wa(c,212)}e.walkUpParenthesizedExpressions=No;function jo(c){for(var te;c&&c.kind===191;)te=c,c=c.parent;return[te,c]}e.walkUpParenthesizedTypesAndGetParentAndChild=jo;function po(c,te){var xr=te?17:1;return e.skipOuterExpressions(c,xr)}e.skipParentheses=po;function Gn(c){return c.kind!==206&&c.kind!==207?!1:(c=No(c.parent),c&&c.kind===215)}e.isDeleteTarget=Gn;function $n(c,te){for(;c;){if(c===te)return!0;c=c.parent}return!1}e.isNodeDescendantOf=$n;function Ho(c){return!e.isSourceFile(c)&&!e.isBindingPattern(c)&&e.isDeclaration(c.parent)&&c.parent.name===c}e.isDeclarationName=Ho;function Zo(c){var te=c.parent;switch(c.kind){case 10:case 14:case 8:if(e.isComputedPropertyName(te))return te.parent;case 79:if(e.isDeclaration(te))return te.name===c?te:void 0;if(e.isQualifiedName(te)){var xr=te.parent;return e.isJSDocParameterTag(xr)&&xr.name===te?xr:void 0}else{var ei=te.parent;return e.isBinaryExpression(ei)&&Hr(ei)!==0&&(ei.left.symbol||ei.symbol)&&e.getNameOfDeclaration(ei)===c?ei:void 0}case 80:return e.isDeclaration(te)&&te.name===c?te:void 0;default:return}}e.getDeclarationFromName=Zo;function Es(c){return ns(c)&&c.parent.kind===162&&e.isDeclaration(c.parent.parent)}e.isLiteralComputedPropertyDeclarationName=Es;function yc(c){var te=c.parent;switch(te.kind){case 167:case 166:case 169:case 168:case 172:case 173:case 299:case 296:case 206:return te.name===c;case 161:return te.right===c;case 203:case 270:return te.propertyName===c;case 275:case 285:case 279:case 280:case 281:return!0}return!1}e.isIdentifierName=yc;function Xr(c){return c.kind===265||c.kind===264||c.kind===267&&!!c.name||c.kind===268||c.kind===274||c.kind===270||c.kind===275||c.kind===271&&zu(c)?!0:Ct(c)&&(e.isBinaryExpression(c)&&Hr(c)===2&&zu(c)||e.isPropertyAccessExpression(c)&&e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===63&&Ic(c.parent.right))}e.isAliasSymbolDeclaration=Xr;function Ls(c){switch(c.parent.kind){case 267:case 270:case 268:case 275:case 271:case 265:case 274:return c.parent;case 161:do c=c.parent;while(c.parent.kind===161);return Ls(c)}}e.getAliasDeclarationFromName=Ls;function Ic(c){return Hu(c)||e.isClassExpression(c)}e.isAliasableExpression=Ic;function zu(c){var te=vf(c);return Ic(te)}e.exportAssignmentIsAlias=zu;function vf(c){return e.isExportAssignment(c)?c.expression:c.right}e.getExportAssignmentExpression=vf;function P_(c){return c.kind===297?c.name:c.kind===296?c.initializer:c.parent.right}e.getPropertyAssignmentAliasLikeExpression=P_;function El(c){var te=vp(c);if(te&&Ct(c)){var xr=e.getJSDocAugmentsTag(c);if(xr)return xr.class}return te}e.getEffectiveBaseTypeNode=El;function vp(c){var te=Yl(c.heritageClauses,94);return te&&te.types.length>0?te.types[0]:void 0}e.getClassExtendsHeritageElement=vp;function oo(c){if(Ct(c))return e.getJSDocImplementsTags(c).map(function(xr){return xr.class});var te=Yl(c.heritageClauses,117);return te==null?void 0:te.types}e.getEffectiveImplementsTypeNodes=oo;function I_(c){return e.isInterfaceDeclaration(c)?yp(c)||e.emptyArray:e.isClassLike(c)&&e.concatenate(e.singleElementArray(El(c)),oo(c))||e.emptyArray}e.getAllSuperTypeNodes=I_;function yp(c){var te=Yl(c.heritageClauses,94);return te?te.types:void 0}e.getInterfaceBaseTypeNodes=yp;function Yl(c,te){if(c)for(var xr=0,ei=c;xr=0)return an[To]}}function Ft(mn){var an;mn.file?(an=xr.get(mn.file.fileName),an||(an=[],xr.set(mn.file.fileName,an),e.insertSorted(te,mn.file.fileName,e.compareStringsCaseSensitive))):(ei&&(ei=!1,c=c.slice()),an=c),e.insertSorted(an,mn,Qg)}function ot(){return ei=!0,c}function xa(mn){if(mn)return xr.get(mn)||[];var an=e.flatMapToMutable(te,function(To){return xr.get(To)});return c.length&&an.unshift.apply(an,c),an}}e.createDiagnosticCollection=kp;var mu=/\\$\\{/g;function gd(c){return c.replace(mu,\"\\\\${\")}function hf(c){return c&&!!(e.isNoSubstitutionTemplateLiteral(c)?c.templateFlags:c.head.templateFlags||e.some(c.templateSpans,function(te){return!!te.literal.templateFlags}))}e.hasInvalidEscape=hf;var $l=/[\\\\\\\"\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,Uf=/[\\\\\\'\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,L_=/\\r\\n|[\\\\\\`\\u0000-\\u001f\\t\\v\\f\\b\\r\\u2028\\u2029\\u0085]/g,l_=new e.Map(e.getEntries({\"\t\":\"\\\\t\",\"\\v\":\"\\\\v\",\"\\f\":\"\\\\f\",\"\\b\":\"\\\\b\",\"\\r\":\"\\\\r\",\"\\n\":\"\\\\n\",\"\\\\\":\"\\\\\\\\\",'\"':'\\\\\"',\"'\":\"\\\\'\",\"`\":\"\\\\`\",\"\\u2028\":\"\\\\u2028\",\"\\u2029\":\"\\\\u2029\",\"\\x85\":\"\\\\u0085\",\"\\r\\n\":\"\\\\r\\\\n\"}));function f_(c){var te=c.toString(16).toUpperCase(),xr=(\"0000\"+te).slice(-4);return\"\\\\u\"+xr}function md(c,te,xr){if(c.charCodeAt(0)===0){var ei=xr.charCodeAt(te+c.length);return ei>=48&&ei<=57?\"\\\\x00\":\"\\\\0\"}return l_.get(c)||f_(c.charCodeAt(0))}function ks(c,te){var xr=te===96?L_:te===39?Uf:$l;return c.replace(xr,md)}e.escapeString=ks;var Wu=/[^\\u0000-\\u007F]/g;function Zl(c,te){return c=ks(c,te),Wu.test(c)?c.replace(Wu,function(xr){return f_(xr.charCodeAt(0))}):c}e.escapeNonAsciiString=Zl;var R_=/[\\\"\\u0000-\\u001f\\u2028\\u2029\\u0085]/g,kl=/[\\'\\u0000-\\u001f\\u2028\\u2029\\u0085]/g,__=new e.Map(e.getEntries({'\"':\""\",\"'\":\"'\"}));function zd(c){var te=c.toString(16).toUpperCase();return\"&#x\"+te+\";\"}function Al(c){return c.charCodeAt(0)===0?\"�\":__.get(c)||zd(c.charCodeAt(0))}function wc(c,te){var xr=te===39?kl:R_;return c.replace(xr,Al)}e.escapeJsxAttributeString=wc;function qu(c){var te=c.length;return te>=2&&c.charCodeAt(0)===c.charCodeAt(te-1)&&Vu(c.charCodeAt(0))?c.substring(1,te-1):c}e.stripQuotes=qu;function Vu(c){return c===39||c===34||c===96}function ef(c){var te=c.charCodeAt(0);return te>=97&&te<=122||e.stringContains(c,\"-\")||e.stringContains(c,\":\")}e.isIntrinsicJsxName=ef;var sl=[\"\",\" \"];function p_(c){for(var te=sl[1],xr=sl.length;xr<=c;xr++)sl.push(sl[xr-1]+te);return sl[c]}e.getIndentString=p_;function Df(){return sl[1].length}e.getIndentSize=Df;function Ec(){return e.stringContains(e.version,\"-dev\")||e.stringContains(e.version,\"-insiders\")}e.isNightly=Ec;function Zn(c){var te,xr,ei,bi,Ft,ot=!1;function xa(Xo){var jl=e.computeLineStarts(Xo);jl.length>1?(bi=bi+jl.length-1,Ft=te.length-Xo.length+e.last(jl),ei=Ft-te.length===0):ei=!1}function mn(Xo){Xo&&Xo.length&&(ei&&(Xo=p_(xr)+Xo,ei=!1),te+=Xo,xa(Xo))}function an(Xo){Xo&&(ot=!1),mn(Xo)}function To(Xo){Xo&&(ot=!0),mn(Xo)}function Hn(){te=\"\",xr=0,ei=!0,bi=0,Ft=0,ot=!1}function ss(Xo){Xo!==void 0&&(te+=Xo,xa(Xo),ot=!1)}function cs(Xo){Xo&&Xo.length&&an(Xo)}function ws(Xo){(!ei||Xo)&&(te+=c,bi++,Ft=te.length,ei=!0,ot=!1)}function nu(){return ei?te.length:te.length+c.length}return Hn(),{write:an,rawWrite:ss,writeLiteral:cs,writeLine:ws,increaseIndent:function(){xr++},decreaseIndent:function(){xr--},getIndent:function(){return xr},getTextPos:function(){return te.length},getLine:function(){return bi},getColumn:function(){return ei?xr*Df():te.length-Ft},getText:function(){return te},isAtStartOfLine:function(){return ei},hasTrailingComment:function(){return ot},hasTrailingWhitespace:function(){return!!te.length&&e.isWhiteSpaceLike(te.charCodeAt(te.length-1))},clear:Hn,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:function(){return!1},writeKeyword:an,writeOperator:an,writeParameter:an,writeProperty:an,writePunctuation:an,writeSpace:an,writeStringLiteral:an,writeSymbol:function(Xo,jl){return an(Xo)},writeTrailingSemicolon:an,writeComment:To,getTextPosWithWriteLine:nu}}e.createTextWriter=Zn;function os(c){var te=!1;function xr(){te&&(c.writeTrailingSemicolon(\";\"),te=!1)}return Ke(Ke({},c),{writeTrailingSemicolon:function(){te=!0},writeLiteral:function(ei){xr(),c.writeLiteral(ei)},writeStringLiteral:function(ei){xr(),c.writeStringLiteral(ei)},writeSymbol:function(ei,bi){xr(),c.writeSymbol(ei,bi)},writePunctuation:function(ei){xr(),c.writePunctuation(ei)},writeKeyword:function(ei){xr(),c.writeKeyword(ei)},writeOperator:function(ei){xr(),c.writeOperator(ei)},writeParameter:function(ei){xr(),c.writeParameter(ei)},writeSpace:function(ei){xr(),c.writeSpace(ei)},writeProperty:function(ei){xr(),c.writeProperty(ei)},writeComment:function(ei){xr(),c.writeComment(ei)},writeLine:function(){xr(),c.writeLine()},increaseIndent:function(){xr(),c.increaseIndent()},decreaseIndent:function(){xr(),c.decreaseIndent()}})}e.getTrailingSemicolonDeferringWriter=os;function Ps(c){return c.useCaseSensitiveFileNames?c.useCaseSensitiveFileNames():!1}e.hostUsesCaseSensitiveFileNames=Ps;function d_(c){return e.createGetCanonicalFileName(Ps(c))}e.hostGetCanonicalFileName=d_;function Gc(c,te,xr){return te.moduleName||Gt(c,te.fileName,xr&&xr.fileName)}e.getResolvedExternalModuleName=Gc;function B_(c,te){return c.getCanonicalFileName(e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()))}function vu(c,te,xr){var ei=te.getExternalModuleFileFromDeclaration(xr);if(!(!ei||ei.isDeclarationFile)){var bi=eu(xr);if(!(bi&&e.isStringLiteralLike(bi)&&!e.pathIsRelative(bi.text)&&B_(c,ei.path).indexOf(B_(c,e.ensureTrailingDirectorySeparator(c.getCommonSourceDirectory())))===-1))return Gc(c,ei)}}e.getExternalModuleNameFromDeclaration=vu;function Gt(c,te,xr){var ei=function(mn){return c.getCanonicalFileName(mn)},bi=e.toPath(xr?e.getDirectoryPath(xr):c.getCommonSourceDirectory(),c.getCurrentDirectory(),ei),Ft=e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()),ot=e.getRelativePathToDirectoryOrUrl(bi,Ft,bi,ei,!1),xa=Gd(ot);return xr?e.ensurePathIsNonModuleName(xa):xa}e.getExternalModuleNameFromPath=Gt;function As(c,te,xr){var ei=te.getCompilerOptions(),bi;return ei.outDir?bi=Gd(Dc(c,te,ei.outDir)):bi=Gd(c),bi+xr}e.getOwnEmitOutputFilePath=As;function vn(c,te){return Nl(c,te.getCompilerOptions(),te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(xr){return te.getCanonicalFileName(xr)})}e.getDeclarationEmitOutputFilePath=vn;function Nl(c,te,xr,ei,bi){var Ft=te.declarationDir||te.outDir,ot=Ft?Cc(c,Ft,xr,ei,bi):c,xa=cl(ot);return Gd(ot)+xa}e.getDeclarationEmitOutputFilePathWorker=Nl;function cl(c){return e.fileExtensionIsOneOf(c,[\".mjs\",\".mts\"])?\".d.mts\":e.fileExtensionIsOneOf(c,[\".cjs\",\".cts\"])?\".d.cts\":e.fileExtensionIsOneOf(c,[\".json\"])?\".json.d.ts\":\".d.ts\"}e.getDeclarationEmitExtensionForPath=cl;function rf(c){return e.fileExtensionIsOneOf(c,[\".d.mts\",\".mjs\",\".mts\"])?[\".mts\",\".mjs\"]:e.fileExtensionIsOneOf(c,[\".d.cts\",\".cjs\",\".cts\"])?[\".cts\",\".cjs\"]:e.fileExtensionIsOneOf(c,[\".json.d.ts\"])?[\".json\"]:[\".tsx\",\".ts\",\".jsx\",\".js\"]}e.getPossibleOriginalInputExtensionForExtension=rf;function Ut(c){return c.outFile||c.out}e.outFile=Ut;function Ds(c,te){var xr,ei;if(!!c.paths)return(xr=c.baseUrl)!==null&&xr!==void 0?xr:e.Debug.checkDefined(c.pathsBasePath||((ei=te.getCurrentDirectory)===null||ei===void 0?void 0:ei.call(te)),\"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.\")}e.getPathsBasePath=Ds;function bf(c,te,xr){var ei=c.getCompilerOptions();if(Ut(ei)){var bi=Ja(ei),Ft=ei.emitDeclarationOnly||bi===e.ModuleKind.AMD||bi===e.ModuleKind.System;return e.filter(c.getSourceFiles(),function(xa){return(Ft||!e.isExternalModule(xa))&&bs(xa,c,xr)})}else{var ot=te===void 0?c.getSourceFiles():[te];return e.filter(ot,function(xa){return bs(xa,c,xr)})}}e.getSourceFilesToEmit=bf;function bs(c,te,xr){var ei=te.getCompilerOptions();return!(ei.noEmitForJsFiles&&Pi(c))&&!c.isDeclarationFile&&!te.isSourceFileFromExternalLibrary(c)&&(xr||!(Mr(c)&&te.getResolvedProjectReferenceToRedirect(c.fileName))&&!te.isSourceOfProjectReferenceRedirect(c.fileName))}e.sourceFileMayBeEmitted=bs;function Dc(c,te,xr){return Cc(c,xr,te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(ei){return te.getCanonicalFileName(ei)})}e.getSourceFilePathInNewDir=Dc;function Cc(c,te,xr,ei,bi){var Ft=e.getNormalizedAbsolutePath(c,xr),ot=bi(Ft).indexOf(bi(ei))===0;return Ft=ot?Ft.substring(ei.length):Ft,e.combinePaths(te,Ft)}e.getSourceFilePathInNewDirWorker=Cc;function ac(c,te,xr,ei,bi,Ft,ot){c.writeFile(xr,ei,bi,function(xa){te.add(qd(e.Diagnostics.Could_not_write_file_0_Colon_1,xr,xa))},Ft,ot)}e.writeFile=ac;function Pl(c,te,xr){if(c.length>e.getRootLength(c)&&!xr(c)){var ei=e.getDirectoryPath(c);Pl(ei,te,xr),te(c)}}function Il(c,te,xr,ei,bi,Ft){try{ei(c,te,xr)}catch{Pl(e.getDirectoryPath(e.normalizePath(c)),bi,Ft),ei(c,te,xr)}}e.writeFileEnsuringDirectories=Il;function zf(c,te){var xr=e.getLineStarts(c);return e.computeLineOfPosition(xr,te)}e.getLineOfLocalPosition=zf;function ul(c,te){return e.computeLineOfPosition(c,te)}e.getLineOfLocalPositionFromLineMap=ul;function Nu(c){return e.find(c.members,function(te){return e.isConstructorDeclaration(te)&&j(te.body)})}e.getFirstConstructorWithBody=Nu;function Us(c){if(c&&c.parameters.length>0){var te=c.parameters.length===2&&Sf(c.parameters[0]);return c.parameters[te?1:0]}}e.getSetAccessorValueParameter=Us;function Ap(c){var te=Us(c);return te&&te.type}e.getSetAccessorTypeAnnotationNode=Ap;function Wf(c){if(c.parameters.length&&!e.isJSDocSignature(c)){var te=c.parameters[0];if(Sf(te))return te}}e.getThisParameter=Wf;function Sf(c){return ll(c.name)}e.parameterIsThisKeyword=Sf;function ll(c){return!!c&&c.kind===79&&j_(c)}e.isThisIdentifier=ll;function J_(c){if(!ll(c))return!1;for(;e.isQualifiedName(c.parent)&&c.parent.left===c;)c=c.parent;return c.parent.kind===181}e.isThisInTypeQuery=J_;function j_(c){return c.originalKeywordKind===108}e.identifierIsThisKeyword=j_;function U_(c,te){var xr,ei,bi,Ft;return hc(te)?(xr=te,te.kind===172?bi=te:te.kind===173?Ft=te:e.Debug.fail(\"Accessor has wrong kind\")):e.forEach(c,function(ot){if(e.isAccessor(ot)&&Tf(ot)===Tf(te)){var xa=u_(ot.name),mn=u_(te.name);xa===mn&&(xr?ei||(ei=ot):xr=ot,ot.kind===172&&!bi&&(bi=ot),ot.kind===173&&!Ft&&(Ft=ot))}}),{firstAccessor:xr,secondAccessor:ei,getAccessor:bi,setAccessor:Ft}}e.getAllAccessorDeclarations=U_;function iu(c){if(!(!Ct(c)&&e.isFunctionDeclaration(c))){var te=c.type;return te||!Ct(c)?te:e.isJSDocPropertyLikeTag(c)?c.typeExpression&&c.typeExpression.type:e.getJSDocType(c)}}e.getEffectiveTypeAnnotationNode=iu;function vd(c){return c.type}e.getTypeAnnotationNode=vd;function qf(c){return e.isJSDocSignature(c)?c.type&&c.type.typeExpression&&c.type.typeExpression.type:c.type||(Ct(c)?e.getJSDocReturnType(c):void 0)}e.getEffectiveReturnTypeNode=qf;function dc(c){return e.flatMap(e.getJSDocTags(c),function(te){return Pu(te)?te.typeParameters:void 0})}e.getJSDocTypeParameterDeclarations=dc;function Pu(c){return e.isJSDocTemplateTag(c)&&!(c.parent.kind===320&&c.parent.tags.some(Ya))}function wl(c){var te=Us(c);return te&&iu(te)}e.getEffectiveSetAccessorTypeAnnotationNode=wl;function Iu(c,te,xr,ei){so(c,te,xr.pos,ei)}e.emitNewLineBeforeLeadingComments=Iu;function so(c,te,xr,ei){ei&&ei.length&&xr!==ei[0].pos&&ul(c,xr)!==ul(c,ei[0].pos)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentsOfPosition=so;function Et(c,te,xr,ei){xr!==ei&&ul(c,xr)!==ul(c,ei)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentOfPosition=Et;function Ys(c,te,xr,ei,bi,Ft,ot,xa){if(ei&&ei.length>0){bi&&xr.writeSpace(\" \");for(var mn=!1,an=0,To=ei;an=ws+2)break}an.push(cs),To=cs}if(an.length){var ws=ul(te,e.last(an).end),Xo=ul(te,e.skipTrivia(c,bi.pos));Xo>=ws+2&&(Iu(te,xr,bi,xa),Ys(c,te,xr,an,!1,!0,Ft,ei),mn={nodePos:bi.pos,detachedCommentEndPos:e.last(an).end})}}return mn;function jl(Y_){return ue(c,Y_.pos)}}e.emitDetachedComments=Ku;function Np(c,te,xr,ei,bi,Ft){if(c.charCodeAt(ei+1)===42)for(var ot=e.computeLineAndCharacterOfPosition(te,ei),xa=te.length,mn=void 0,an=ei,To=ot.line;an0){var ws=cs%Df(),nu=p_((cs-ws)/Df());for(xr.rawWrite(nu);ws;)xr.rawWrite(\" \"),ws--}else xr.rawWrite(\"\")}Pp(c,bi,xr,Ft,an,Hn),an=Hn}else xr.writeComment(c.substring(ei,bi))}e.writeCommentRange=Np;function Pp(c,te,xr,ei,bi,Ft){var ot=Math.min(te,Ft-1),xa=e.trimString(c.substring(bi,ot));xa?(xr.writeComment(xa),ot!==te&&xr.writeLine()):xr.rawWrite(ei)}function nc(c,te,xr){for(var ei=0;te=0&&c.kind<=160?0:(c.modifierFlagsCache&536870912||(c.modifierFlagsCache=Ef(c)|536870912),te&&!(c.modifierFlagsCache&4096)&&(xr||Ct(c))&&c.parent&&(c.modifierFlagsCache|=rs(c)|4096),c.modifierFlagsCache&-536875009)}function xf(c){return tf(c,!0)}e.getEffectiveModifierFlags=xf;function z_(c){return tf(c,!0,!0)}e.getEffectiveModifierFlagsAlwaysIncludeJSDoc=z_;function Oc(c){return tf(c,!1)}e.getSyntacticModifierFlags=Oc;function rs(c){var te=0;return!!c.parent&&!e.isParameter(c)&&(Ct(c)&&(e.getJSDocPublicTagNoCache(c)&&(te|=4),e.getJSDocPrivateTagNoCache(c)&&(te|=8),e.getJSDocProtectedTagNoCache(c)&&(te|=16),e.getJSDocReadonlyTagNoCache(c)&&(te|=64),e.getJSDocOverrideTagNoCache(c)&&(te|=16384)),e.getJSDocDeprecatedTagNoCache(c)&&(te|=8192)),te}function Op(c){return Ef(c)|rs(c)}e.getEffectiveModifierFlagsNoCache=Op;function Ef(c){var te=Fl(c.modifiers);return(c.flags&4||c.kind===79&&c.isInJSDocNamespace)&&(te|=1),te}e.getSyntacticModifierFlagsNoCache=Ef;function Fl(c){var te=0;if(c)for(var xr=0,ei=c;xr=63&&c<=78}e.isAssignmentOperator=Cf;function W_(c){var te=g_(c);return te&&!te.isImplements?te.class:void 0}e.tryGetClassExtendingExpressionWithTypeArguments=W_;function g_(c){return e.isExpressionWithTypeArguments(c)&&e.isHeritageClause(c.parent)&&e.isClassLike(c.parent.parent)?{class:c.parent.parent,isImplements:c.parent.token===117}:void 0}e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=g_;function dl(c,te){return e.isBinaryExpression(c)&&(te?c.operatorToken.kind===63:Cf(c.operatorToken.kind))&&e.isLeftHandSideExpression(c.left)}e.isAssignmentExpression=dl;function gl(c){return dl(c.parent)&&c.parent.left===c}e.isLeftHandSideOfAssignment=gl;function Vf(c){if(dl(c,!0)){var te=c.left.kind;return te===205||te===204}return!1}e.isDestructuringAssignment=Vf;function Fc(c){return W_(c)!==void 0}e.isExpressionWithTypeArgumentsInClassExtendsClause=Fc;function Hu(c){return c.kind===79||Ml(c)}e.isEntityNameExpression=Hu;function af(c){switch(c.kind){case 79:return c;case 161:do c=c.left;while(c.kind!==79);return c;case 206:do c=c.expression;while(c.kind!==79);return c}}e.getFirstIdentifier=af;function tn(c){return c.kind===79||c.kind===108||c.kind===106||c.kind===231||c.kind===206&&tn(c.expression)||c.kind===212&&tn(c.expression)}e.isDottedName=tn;function Ml(c){return e.isPropertyAccessExpression(c)&&e.isIdentifier(c.name)&&Hu(c.expression)}e.isPropertyAccessEntityNameExpression=Ml;function Ot(c){if(e.isPropertyAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0)return te+\".\"+Xe(c.name)}else if(e.isElementAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0&&e.isPropertyName(c.argumentExpression))return te+\".\"+u_(c.argumentExpression)}else if(e.isIdentifier(c))return e.unescapeLeadingUnderscores(c.escapedText)}e.tryGetPropertyAccessOrIdentifierToString=Ot;function nf(c){return ua(c)&&Ao(c)===\"prototype\"}e.isPrototypeAccess=nf;function q_(c){return c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c}e.isRightSideOfQualifiedNameOrPropertyAccess=q_;function Kf(c){return e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isElementAccessExpression(c.parent)&&c.parent.argumentExpression===c}e.isRightSideOfAccessExpression=Kf;function Rp(c){return e.isQualifiedName(c.parent)&&c.parent.right===c||e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isJSDocMemberName(c.parent)&&c.parent.right===c}e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName=Rp;function yd(c){return c.kind===205&&c.properties.length===0}e.isEmptyObjectLiteral=yd;function m_(c){return c.kind===204&&c.elements.length===0}e.isEmptyArrayLiteral=m_;function Ll(c){if(!(!hd(c)||!c.declarations))for(var te=0,xr=c.declarations;te0&&gc(c.declarations[0],512)}function v_(c){return e.find(oh,function(te){return e.fileExtensionIs(c,te)})}e.tryExtractTSExtension=v_;function Bp(c){for(var te=[],xr=c.length,ei=0;ei>6|192),te.push(bi&63|128)):bi<65536?(te.push(bi>>12|224),te.push(bi>>6&63|128),te.push(bi&63|128)):bi<131072?(te.push(bi>>18|240),te.push(bi>>12&63|128),te.push(bi>>6&63|128),te.push(bi&63|128)):e.Debug.assert(!1,\"Unexpected code point\")}return te}var Xu=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";function Xc(c){for(var te=\"\",xr=Bp(c),ei=0,bi=xr.length,Ft,ot,xa,mn;ei>2,ot=(xr[ei]&3)<<4|xr[ei+1]>>4,xa=(xr[ei+1]&15)<<2|xr[ei+2]>>6,mn=xr[ei+2]&63,ei+1>=bi?xa=mn=64:ei+2>=bi&&(mn=64),te+=Xu.charAt(Ft)+Xu.charAt(ot)+Xu.charAt(xa)+Xu.charAt(mn),ei+=3;return te}e.convertToBase64=Xc;function Gf(c){for(var te=\"\",xr=0,ei=c.length;xr>4&3,To=(ot&15)<<4|xa>>2&15,Hn=(xa&3)<<6|mn&63;To===0&&xa!==0?ei.push(an):Hn===0&&mn!==0?ei.push(an,To):ei.push(an,To,Hn),bi+=4}return Gf(ei)}e.base64decode=wu;function V_(c,te){try{var xr=te.readFile(c);if(!xr)return{};var ei=e.parseConfigFileTextToJson(c,xr);return ei.error?{}:ei.config}catch{return{}}}e.readJson=V_;function yu(c,te){return!te.directoryExists||te.directoryExists(c)}e.directoryProbablyExists=yu;var v=`\\r\n`,sr=`\n`;function fi(c,te){switch(c.newLine){case 0:return v;case 1:return sr}return te?te():e.sys?e.sys.newLine:v}e.getNewLineCharacter=fi;function zi(c,te){return te===void 0&&(te=c),e.Debug.assert(te>=c||te===-1),{pos:c,end:te}}e.createRange=zi;function Sa(c,te){return zi(c.pos,te)}e.moveRangeEnd=Sa;function da(c,te){return zi(te,c.end)}e.moveRangePos=da;function Ha(c){return c.decorators&&c.decorators.length>0?da(c,c.decorators.end):c}e.moveRangePastDecorators=Ha;function ta(c){return c.modifiers&&c.modifiers.length>0?da(c,c.modifiers.end):Ha(c)}e.moveRangePastModifiers=ta;function nn(c){return c.pos===c.end}e.isCollapsedRange=nn;function Wo(c,te){return zi(c,c+e.tokenToString(te).length)}e.createTokenRange=Wo;function Lo(c,te){return is(c,c,te)}e.rangeIsOnSingleLine=Lo;function oc(c,te,xr){return cf(uf(c,xr,!1),uf(te,xr,!1),xr)}e.rangeStartPositionsAreOnSameLine=oc;function uu(c,te,xr){return cf(c.end,te.end,xr)}e.rangeEndPositionsAreOnSameLine=uu;function is(c,te,xr){return cf(uf(c,xr,!1),te.end,xr)}e.rangeStartIsOnSameLineAsRangeEnd=is;function au(c,te,xr){return cf(c.end,uf(te,xr,!1),xr)}e.rangeEndIsOnSameLineAsRangeStart=au;function Ou(c,te,xr,ei){var bi=uf(te,xr,ei);return e.getLinesBetweenPositions(xr,c.end,bi)}e.getLinesBetweenRangeEndAndRangeStart=Ou;function sf(c,te,xr){return e.getLinesBetweenPositions(xr,c.end,te.end)}e.getLinesBetweenRangeEndPositions=sf;function lu(c,te){return!cf(c.pos,c.end,te)}e.isNodeArrayMultiLine=lu;function cf(c,te,xr){return e.getLinesBetweenPositions(xr,c,te)===0}e.positionsAreOnSameLine=cf;function uf(c,te,xr){return Jl(c.pos)?-1:e.skipTrivia(te.text,c.pos,!1,xr)}e.getStartPositionOfRange=uf;function K_(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei),Ft=Hf(bi,te,xr);return e.getLinesBetweenPositions(xr,Ft!=null?Ft:te,bi)}e.getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter=K_;function Jp(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei);return e.getLinesBetweenPositions(xr,c,Math.min(te,bi))}e.getLinesBetweenPositionAndNextNonWhitespaceCharacter=Jp;function Hf(c,te,xr){for(te===void 0&&(te=0);c-- >te;)if(!e.isWhiteSpaceLike(xr.text.charCodeAt(c)))return c}function kc(c){var te=e.getParseTreeNode(c);if(te)switch(te.parent.kind){case 260:case 261:return te===te.parent.name}return!1}e.isDeclarationNameOfEnumOrNamespace=kc;function G_(c){return e.filter(c.declarations,Le)}e.getInitializedVariables=G_;function Le(c){return c.initializer!==void 0}function Nr(c){return c.watch&&c.hasOwnProperty(\"watch\")}e.isWatchSet=Nr;function ri(c){c.close()}e.closeFileWatcher=ri;function di(c){return c.flags&33554432?c.checkFlags:0}e.getCheckFlags=di;function Mi(c,te){if(te===void 0&&(te=!1),c.valueDeclaration){var xr=te&&c.declarations&&e.find(c.declarations,function(xa){return xa.kind===173})||c.valueDeclaration,ei=e.getCombinedModifierFlags(xr);return c.parent&&c.parent.flags&32?ei:ei&-29}if(di(c)&6){var bi=c.checkFlags,Ft=bi&1024?8:bi&256?4:16,ot=bi&2048?32:0;return Ft|ot}return c.flags&4194304?36:0}e.getDeclarationModifierFlagsFromSymbol=Mi;function st(c,te){return c.flags&2097152?te.getAliasedSymbol(c):c}e.skipAlias=st;function ra(c){return c.exportSymbol?c.exportSymbol.flags|c.flags:c.flags}e.getCombinedLocalAndExportSymbolFlags=ra;function Ta(c){return In(c)===1}e.isWriteOnlyAccess=Ta;function ha(c){return In(c)!==0}e.isWriteAccess=ha;var Na;(function(c){c[c.Read=0]=\"Read\",c[c.Write=1]=\"Write\",c[c.ReadWrite=2]=\"ReadWrite\"})(Na||(Na={}));function In(c){var te=c.parent;if(!te)return 0;switch(te.kind){case 212:return In(te);case 220:case 219:var xr=te.operator;return xr===45||xr===46?xa():0;case 221:var ei=te,bi=ei.left,Ft=ei.operatorToken;return bi===c&&Cf(Ft.kind)?Ft.kind===63?1:xa():0;case 206:return te.name!==c?0:In(te);case 296:{var ot=In(te.parent);return c===te.name?qo(ot):ot}case 297:return c===te.objectAssignmentInitializer?0:In(te.parent);case 204:return In(te);default:return 0}function xa(){return te.parent&&No(te.parent).kind===238?1:2}}function qo(c){switch(c){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(c)}}function co(c,te){if(!c||!te||Object.keys(c).length!==Object.keys(te).length)return!1;for(var xr in c)if(typeof c[xr]==\"object\"){if(!co(c[xr],te[xr]))return!1}else if(typeof c[xr]!=\"function\"&&c[xr]!==te[xr])return!1;return!0}e.compareDataObjects=co;function ts(c,te){c.forEach(te),c.clear()}e.clearMap=ts;function vs(c,te,xr){var ei=xr.onDeleteValue,bi=xr.onExistingValue;c.forEach(function(Ft,ot){var xa=te.get(ot);xa===void 0?(c.delete(ot),ei(Ft,ot)):bi&&bi(Ft,xa,ot)})}e.mutateMapSkippingNewValues=vs;function Ac(c,te,xr){vs(c,te,xr);var ei=xr.createNewValue;te.forEach(function(bi,Ft){c.has(Ft)||c.set(Ft,ei(Ft,bi))})}e.mutateMap=Ac;function Is(c){if(c.flags&32){var te=Qu(c);return!!te&&gc(te,128)}return!1}e.isAbstractConstructorSymbol=Is;function Qu(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(e.isClassLike)}e.getClassLikeDeclarationOfSymbol=Qu;function sc(c){return c.flags&3899393?c.objectFlags:0}e.getObjectFlags=sc;function bc(c,te){return te.getSignaturesOfType(c,0).length!==0||te.getSignaturesOfType(c,1).length!==0}e.typeHasCallOrConstructSignatures=bc;function Mc(c,te){return!!e.forEachAncestorDirectory(c,function(xr){return te(xr)?!0:void 0})}e.forSomeAncestorDirectory=Mc;function Yu(c){return!!c&&!!c.declarations&&!!c.declarations[0]&&e.isNamespaceExportDeclaration(c.declarations[0])}e.isUMDExportSymbol=Yu;function Rl(c){var te=c.moduleSpecifier;return e.isStringLiteral(te)?te.text:Ee(te)}e.showModuleSpecifier=Rl;function Lc(c){var te;return e.forEachChild(c,function(xr){j(xr)&&(te=xr)},function(xr){for(var ei=xr.length-1;ei>=0;ei--)if(j(xr[ei])){te=xr[ei];break}}),te}e.getLastChild=Lc;function _(c,te,xr){return xr===void 0&&(xr=!0),c.has(te)?!1:(c.set(te,xr),!0)}e.addToSeen=_;function W(c){return e.isClassLike(c)||e.isInterfaceDeclaration(c)||e.isTypeLiteralNode(c)}e.isObjectTypeDeclaration=W;function Te(c){return c>=177&&c<=200||c===130||c===155||c===147||c===158||c===148||c===133||c===150||c===151||c===114||c===153||c===143||c===228||c===312||c===313||c===314||c===315||c===316||c===317||c===318}e.isTypeNodeKind=Te;function cr(c){return c.kind===206||c.kind===207}e.isAccessExpression=cr;function ni(c){return c.kind===206?c.name:(e.Debug.assert(c.kind===207),c.argumentExpression)}e.getNameOfAccessExpression=ni;function rt(c){switch(c.kind){case\"text\":case\"internal\":return!0;default:return!1}}e.isBundleFileTextLike=rt;function yt(c){return c.kind===269||c.kind===273}e.isNamedImportsOrExports=yt;function Xa(c){for(;cr(c);)c=c.expression;return c}e.getLeftmostAccessExpression=Xa;function vo(c,te){if(cr(c.parent)&&Kf(c))return xr(c.parent);function xr(ei){if(ei.kind===206){var bi=te(ei.name);if(bi!==void 0)return bi}else if(ei.kind===207)if(e.isIdentifier(ei.argumentExpression)||e.isStringLiteralLike(ei.argumentExpression)){var bi=te(ei.argumentExpression);if(bi!==void 0)return bi}else return;if(cr(ei.expression))return xr(ei.expression);if(e.isIdentifier(ei.expression))return te(ei.expression)}}e.forEachNameInAccessChainWalkingLeft=vo;function Vs(c,te){for(;;){switch(c.kind){case 220:c=c.operand;continue;case 221:c=c.left;continue;case 222:c=c.condition;continue;case 210:c=c.tag;continue;case 208:if(te)return c;case 229:case 207:case 206:case 230:case 350:c=c.expression;continue}return c}}e.getLeftmostExpression=Vs;function H_(c,te){this.flags=c,this.escapedName=te,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function y_(c,te){this.flags=te,(e.Debug.isDebugging||e.tracing)&&(this.checker=c)}function Dd(c,te){this.flags=te,e.Debug.isDebugging&&(this.checker=c)}function jp(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function lg(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0}function Om(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.flowNode=void 0}function Fm(c,te,xr){this.fileName=c,this.text=te,this.skipTrivia=xr||function(ei){return ei}}e.objectAllocator={getNodeConstructor:function(){return jp},getTokenConstructor:function(){return lg},getIdentifierConstructor:function(){return Om},getPrivateIdentifierConstructor:function(){return jp},getSourceFileConstructor:function(){return jp},getSymbolConstructor:function(){return H_},getTypeConstructor:function(){return y_},getSignatureConstructor:function(){return Dd},getSourceMapSourceConstructor:function(){return Fm}};function Vg(c){Object.assign(e.objectAllocator,c)}e.setObjectAllocator=Vg;function Jt(c,te,xr){return xr===void 0&&(xr=0),c.replace(/{(\\d+)}/g,function(ei,bi){return\"\"+e.Debug.checkDefined(te[+bi+xr])})}e.formatStringFromArgs=Jt;var ml;function Xf(c){ml=c}e.setLocalizedDiagnosticMessages=Xf;function bd(c){!ml&&c&&(ml=c())}e.maybeSetLocalizedDiagnosticMessages=bd;function lf(c){return ml&&ml[c.key]||c.message}e.getLocaleSpecificMessage=lf;function Kg(c,te,xr,ei){zr(void 0,te,xr);var bi=lf(ei);return arguments.length>4&&(bi=Jt(bi,arguments,4)),{file:void 0,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,fileName:c}}e.createDetachedDiagnostic=Kg;function kf(c){return c.file===void 0&&c.start!==void 0&&c.length!==void 0&&typeof c.fileName==\"string\"}function Gg(c,te){var xr=te.fileName||\"\",ei=te.text.length;e.Debug.assertEqual(c.fileName,xr),e.Debug.assertLessThanOrEqual(c.start,ei),e.Debug.assertLessThanOrEqual(c.start+c.length,ei);var bi={file:te,start:c.start,length:c.length,messageText:c.messageText,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary};if(c.relatedInformation){bi.relatedInformation=[];for(var Ft=0,ot=c.relatedInformation;Ft4&&(bi=Jt(bi,arguments,4)),{file:c,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,reportsDeprecated:ei.reportsDeprecated}}e.createFileDiagnostic=Hg;function Wd(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),xr}e.formatMessage=Wd;function qd(c){var te=lf(c);return arguments.length>1&&(te=Jt(te,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:te,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary,reportsDeprecated:c.reportsDeprecated}}e.createCompilerDiagnostic=qd;function fg(c,te){return{file:void 0,start:void 0,length:void 0,code:c.code,category:c.category,messageText:c.next?c:c.messageText,relatedInformation:te}}e.createCompilerDiagnosticFromMessageChain=fg;function Mm(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),{messageText:xr,category:te.category,code:te.code,next:c===void 0||Array.isArray(c)?c:[c]}}e.chainDiagnosticMessages=Mm;function Xg(c,te){for(var xr=c;xr.next;)xr=xr.next[0];xr.next=[te]}e.concatenateDiagnosticMessageChains=Xg;function Bl(c){return c.file?c.file.path:void 0}function Qg(c,te){return _g(c,te)||Qc(c,te)||0}e.compareDiagnostics=Qg;function _g(c,te){return e.compareStringsCaseSensitive(Bl(c),Bl(te))||e.compareValues(c.start,te.start)||e.compareValues(c.length,te.length)||e.compareValues(c.code,te.code)||Lm(c.messageText,te.messageText)||0}e.compareDiagnosticsSkipRelatedInformation=_g;function Qc(c,te){return!c.relatedInformation&&!te.relatedInformation?0:c.relatedInformation&&te.relatedInformation?e.compareValues(c.relatedInformation.length,te.relatedInformation.length)||e.forEach(c.relatedInformation,function(xr,ei){var bi=te.relatedInformation[ei];return Qg(xr,bi)})||0:c.relatedInformation?-1:1}function Lm(c,te){if(typeof c==\"string\"&&typeof te==\"string\")return e.compareStringsCaseSensitive(c,te);if(typeof c==\"string\")return-1;if(typeof te==\"string\")return 1;var xr=e.compareStringsCaseSensitive(c.messageText,te.messageText);if(xr)return xr;if(!c.next&&!te.next)return 0;if(!c.next)return-1;if(!te.next)return 1;for(var ei=Math.min(c.next.length,te.next.length),bi=0;bite.next.length?1:0}function Up(c){return c===4||c===2||c===1||c===6?1:0}e.getLanguageVariant=Up;function Rm(c){if(!!(c.transformFlags&2))return e.isJsxOpeningLikeElement(c)||e.isJsxFragment(c)?c:e.forEachChild(c,Rm)}function ff(c){return c.isDeclarationFile?void 0:Rm(c)}function It(c){return c.impliedNodeFormat===e.ModuleKind.ESNext&&!c.isDeclarationFile?!0:void 0}function Ma(c){switch(ro(c)){case e.ModuleDetectionKind.Force:return function(Ft){Ft.externalModuleIndicator=!Ft.isDeclarationFile||e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Legacy:return function(Ft){Ft.externalModuleIndicator=e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Auto:var te=[e.isFileProbablyExternalModule];(c.jsx===4||c.jsx===5)&&te.push(ff);var xr=Ja(c);(xr===e.ModuleKind.Node16||xr===e.ModuleKind.NodeNext)&&te.push(It);var ei=e.or.apply(void 0,te),bi=function(Ft){return void(Ft.externalModuleIndicator=ei(Ft))};return bi}}e.getSetExternalModuleIndicator=Ma;function aa(c){return c.target||c.module===e.ModuleKind.Node16&&9||c.module===e.ModuleKind.NodeNext&&99||0}e.getEmitScriptTarget=aa;function Ja(c){return typeof c.module==\"number\"?c.module:aa(c)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}e.getEmitModuleKind=Ja;function _n(c){var te=c.moduleResolution;if(te===void 0)switch(Ja(c)){case e.ModuleKind.CommonJS:te=e.ModuleResolutionKind.NodeJs;break;case e.ModuleKind.Node16:te=e.ModuleResolutionKind.Node16;break;case e.ModuleKind.NodeNext:te=e.ModuleResolutionKind.NodeNext;break;default:te=e.ModuleResolutionKind.Classic;break}return te}e.getEmitModuleResolutionKind=_n;function ro(c){return c.moduleDetection||e.ModuleDetectionKind.Auto}e.getEmitModuleDetectionKind=ro;function as(c){switch(Ja(c)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0;default:return!1}}e.hasJsonModuleEmitEnabled=as;function cc(c){return c.allowUnreachableCode===!1}e.unreachableCodeIsError=cc;function Sc(c){return c.allowUnusedLabels===!1}e.unusedLabelIsError=Sc;function hu(c){return!!(go(c)&&c.declarationMap)}e.getAreDeclarationMapsEnabled=hu;function Js(c){if(c.esModuleInterop!==void 0)return c.esModuleInterop;switch(Ja(c)){case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0}}e.getESModuleInterop=Js;function Qf(c){var te=Ja(c);return c.allowSyntheticDefaultImports!==void 0?c.allowSyntheticDefaultImports:Js(c)||te===e.ModuleKind.System}e.getAllowSyntheticDefaultImports=Qf;function go(c){return!!(c.declaration||c.composite)}e.getEmitDeclarations=go;function Vd(c){return!!(c.preserveConstEnums||c.isolatedModules)}e.shouldPreserveConstEnums=Vd;function X_(c){return!!(c.incremental||c.composite)}e.isIncrementalCompilation=X_;function Sd(c,te){return c[te]===void 0?!!c.strict:!!c[te]}e.getStrictOptionValue=Sd;function Yg(c){return c.allowJs===void 0?!!c.checkJs:c.allowJs}e.getAllowJSCompilerOption=Yg;function N1(c){return c.useDefineForClassFields===void 0?aa(c)>=9:c.useDefineForClassFields}e.getUseDefineForClassFields=N1;function P1(c,te){return m(te,c,e.semanticDiagnosticsOptionDeclarations)}e.compilerOptionsAffectSemanticDiagnostics=P1;function Yy(c,te){return m(te,c,e.affectsEmitOptionDeclarations)}e.compilerOptionsAffectEmit=Yy;function Bm(c,te){return te.strictFlag?Sd(c,te.name):c[te.name]}e.getCompilerOptionValue=Bm;function $y(c){var te=c.jsx;return te===2||te===4||te===5}e.getJSXTransformEnabled=$y;function Lv(c,te){var xr=te==null?void 0:te.pragmas.get(\"jsximportsource\"),ei=e.isArray(xr)?xr[xr.length-1]:xr;return c.jsx===4||c.jsx===5||c.jsxImportSource||ei?(ei==null?void 0:ei.arguments.factory)||c.jsxImportSource||\"react\":void 0}e.getJSXImplicitImportBase=Lv;function _f(c,te){return c?\"\".concat(c,\"/\").concat(te.jsx===5?\"jsx-dev-runtime\":\"jsx-runtime\"):void 0}e.getJSXRuntimeImport=_f;function Rv(c){for(var te=!1,xr=0;xr=2&&Ft.length>=2&&!Td(bi[bi.length-2],ei)&&!Td(Ft[Ft.length-2],ei)&&ei(bi[bi.length-1])===ei(Ft[Ft.length-1]);)bi.pop(),Ft.pop(),ot=!0;return ot?[e.getPathFromPathComponents(bi),e.getPathFromPathComponents(Ft)]:void 0}function Td(c,te){return c!==void 0&&(te(c)===\"node_modules\"||e.startsWith(c,\"@\"))}function I1(c){return e.isAnyDirectorySeparator(c.charCodeAt(0))?c.slice(1):void 0}function pf(c,te,xr){var ei=e.tryRemovePrefix(c,te,xr);return ei===void 0?void 0:I1(ei)}e.tryRemoveDirectoryPrefix=pf;var Bv=/[^\\w\\s\\/]/g;function Zy(c){return c.replace(Bv,Jv)}e.regExpEscape=Zy;function Jv(c){return\"\\\\\"+c}var Nf=[42,63];e.commonPackageFolders=[\"node_modules\",\"bower_components\",\"jspm_packages\"];var dg=\"(?!(\".concat(e.commonPackageFolders.join(\"|\"),\")(/|$))\"),Rc={singleAsteriskRegexFragment:\"([^./]|(\\\\.(?!min\\\\.js$))?)*\",doubleAsteriskRegexFragment:\"(/\".concat(dg,\"[^/.][^/]*)*?\"),replaceWildcardCharacter:function(c){return Jm(c,Rc.singleAsteriskRegexFragment)}},jv={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/\".concat(dg,\"[^/.][^/]*)*?\"),replaceWildcardCharacter:function(c){return Jm(c,jv.singleAsteriskRegexFragment)}},eh={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/.+?)?\",replaceWildcardCharacter:function(c){return Jm(c,eh.singleAsteriskRegexFragment)}},rh={files:Rc,directories:jv,exclude:eh};function Fu(c,te,xr){var ei=xd(c,te,xr);if(!(!ei||!ei.length)){var bi=ei.map(function(ot){return\"(\".concat(ot,\")\")}).join(\"|\"),Ft=xr===\"exclude\"?\"($|/)\":\"$\";return\"^(\".concat(bi,\")\").concat(Ft)}}e.getRegularExpressionForWildcard=Fu;function xd(c,te,xr){if(!(c===void 0||c.length===0))return e.flatMap(c,function(ei){return ei&&ih(ei,te,xr,rh[xr])})}e.getRegularExpressionsForWildcards=xd;function Uv(c){return!/[.*?]/.test(c)}e.isImplicitGlob=Uv;function w1(c,te,xr){var ei=c&&ih(c,te,xr,rh[xr]);return ei&&\"^(\".concat(ei,\")\").concat(xr===\"exclude\"?\"($|/)\":\"$\")}e.getPatternFromSpec=w1;function ih(c,te,xr,ei){var bi=ei.singleAsteriskRegexFragment,Ft=ei.doubleAsteriskRegexFragment,ot=ei.replaceWildcardCharacter,xa=\"\",mn=!1,an=e.getNormalizedPathComponents(c,te),To=e.last(an);if(!(xr!==\"exclude\"&&To===\"**\")){an[0]=e.removeTrailingDirectorySeparator(an[0]),Uv(To)&&an.push(\"**\",\"*\");for(var Hn=0,ss=0,cs=an;ss0;)xa+=\")?\",Hn--;return xa}}function Jm(c,te){return c===\"*\"?te:c===\"?\"?\"[^/]\":\"\\\\\"+c}function th(c,te,xr,ei,bi){c=e.normalizePath(c),bi=e.normalizePath(bi);var Ft=e.combinePaths(bi,c);return{includeFilePatterns:e.map(xd(xr,Ft,\"files\"),function(ot){return\"^\".concat(ot,\"$\")}),includeFilePattern:Fu(xr,Ft,\"files\"),includeDirectoryPattern:Fu(xr,Ft,\"directories\"),excludePattern:Fu(te,Ft,\"exclude\"),basePaths:zv(c,xr,ei)}}e.getFileMatcherPatterns=th;function gg(c,te){return new RegExp(c,te?\"\":\"i\")}e.getRegexFromPattern=gg;function O1(c,te,xr,ei,bi,Ft,ot,xa,mn){c=e.normalizePath(c),Ft=e.normalizePath(Ft);for(var an=th(c,xr,ei,bi,Ft),To=an.includeFilePatterns&&an.includeFilePatterns.map(function(b_){return gg(b_,bi)}),Hn=an.includeDirectoryPattern&&gg(an.includeDirectoryPattern,bi),ss=an.excludePattern&&gg(an.excludePattern,bi),cs=To?To.map(function(){return[]}):[[]],ws=new e.Map,nu=e.createGetCanonicalFileName(bi),Xo=0,jl=an.basePaths;Xo=0)}e.positionIsSynthesized=Jl;function vl(c){return c===\".ts\"||c===\".tsx\"||c===\".d.ts\"||c===\".cts\"||c===\".mts\"||c===\".d.mts\"||c===\".d.cts\"}e.extensionIsTS=vl;function _h(c){return vl(c)||c===\".json\"}e.resolutionExtensionIsTSOrJson=_h;function mg(c){var te=Lu(c);return te!==void 0?te:e.Debug.fail(\"File \".concat(c,\" has unknown extension.\"))}e.extensionFromPath=mg;function Ed(c){return Lu(c)!==void 0}e.isAnySupportedFileExtension=Ed;function Lu(c){return e.find(Kd,function(te){return e.fileExtensionIs(c,te)})}e.tryGetExtensionFromPath=Lu;function ph(c,te){return c.checkJsDirective?c.checkJsDirective.enabled:te.checkJs}e.isCheckJsEnabledForFile=ph,e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray};function qv(c,te){for(var xr=[],ei=0,bi=c;eiei&&(ei=Ft)}return{min:xr,max:ei}}e.minAndMax=Ru;function Pf(c){return{pos:Fe(c),end:c.end}}e.rangeOfNode=Pf;function h_(c,te){var xr=te.pos-1,ei=e.skipTrivia(c.text,te.end)+1;return{pos:xr,end:ei}}e.rangeOfTypeParameters=h_;function em(c,te,xr){return te.skipLibCheck&&c.isDeclarationFile||te.skipDefaultLibCheck&&c.hasNoDefaultLib||xr.isSourceOfProjectReferenceRedirect(c.fileName)}e.skipTypeChecking=em;function uo(c,te){return c===te||typeof c==\"object\"&&c!==null&&typeof te==\"object\"&&te!==null&&e.equalOwnProperties(c,te,uo)}e.isJsonEqual=uo;function U1(c){var te;switch(c.charCodeAt(1)){case 98:case 66:te=1;break;case 111:case 79:te=3;break;case 120:case 88:te=4;break;default:for(var xr=c.length-1,ei=0;c.charCodeAt(ei)===48;)ei++;return c.slice(ei,xr)||\"0\"}for(var bi=2,Ft=c.length-1,ot=(Ft-bi)*te,xa=new Uint16Array((ot>>>4)+(ot&15?1:0)),mn=Ft-1,an=0;mn>=bi;mn--,an+=te){var To=an>>>4,Hn=c.charCodeAt(mn),ss=Hn<=57?Hn-48:10+Hn-(Hn<=70?65:97),cs=ss<<(an&15);xa[To]|=cs;var ws=cs>>>16;ws&&(xa[To+1]|=ws)}for(var nu=\"\",Xo=xa.length-1,jl=!0;jl;){var Y_=0;jl=!1;for(var To=Xo;To>=0;To--){var Cd=Y_<<16|xa[To],b_=Cd/10|0;xa[To]=b_,Y_=Cd-b_*10,b_&&!jl&&(Xo=To,jl=!0)}nu=Y_+nu}return nu}e.parsePseudoBigInt=U1;function z1(c){var te=c.negative,xr=c.base10Value;return(te&&xr!==\"0\"?\"-\":\"\")+xr}e.pseudoBigIntToString=z1;function W1(c){return!!(c.flags&16777216)||S(c)||q1(c)||Tc(c)||!(Qe(c)||Q_(c))}e.isValidTypeOnlyAliasUseSite=W1;function Q_(c){return e.isIdentifier(c)&&e.isShorthandPropertyAssignment(c.parent)&&c.parent.name===c}function Tc(c){for(;c.kind===79||c.kind===206;)c=c.parent;if(c.kind!==162)return!1;if(gc(c.parent,128))return!0;var te=c.parent.parent.kind;return te===258||te===182}function q1(c){if(c.kind!==79)return!1;var te=e.findAncestor(c.parent,function(xr){switch(xr.kind){case 291:return!0;case 206:case 228:return!1;default:return\"quit\"}});return(te==null?void 0:te.token)===117||(te==null?void 0:te.parent.kind)===258}function Vv(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)}e.isIdentifierTypeReference=Vv;function V1(c,te){if(te===void 0&&(te=e.equateValues),c.length<2)return!0;for(var xr=c[0],ei=1,bi=c.length;ei=0?e.factory.createNumericLiteral(+c):e.factory.createStringLiteral(c,!!xr)}e.createPropertyNameNodeForIdentifierOrLiteral=$v;function Zv(c){return!!(c.flags&262144&&c.isThisType)}e.isThisTypeParameter=Zv;function bu(c){var te=0,xr=0,ei=0,bi=0,Ft;(function(an){an[an.BeforeNodeModules=0]=\"BeforeNodeModules\",an[an.NodeModules=1]=\"NodeModules\",an[an.Scope=2]=\"Scope\",an[an.PackageContent=3]=\"PackageContent\"})(Ft||(Ft={}));for(var ot=0,xa=0,mn=0;xa>=0;)switch(ot=xa,xa=c.indexOf(\"/\",ot+1),mn){case 0:c.indexOf(e.nodeModulesPathPart,ot)===ot&&(te=ot,xr=xa,mn=1);break;case 1:case 2:mn===1&&c.charAt(ot+1)===\"@\"?mn=2:(ei=xa,mn=3);break;case 3:c.indexOf(e.nodeModulesPathPart,ot)===ot?mn=1:mn=3;break}return bi=ot,mn>1?{topLevelNodeModulesIndex:te,topLevelPackageNameIndex:xr,packageRootIndex:ei,fileNameIndex:bi}:void 0}e.getNodeModulePathParts=bu;function $1(c){var te;return c.kind===340?(te=c.typeExpression)===null||te===void 0?void 0:te.type:c.type}e.getParameterTypeNode=$1})(ke||(ke={}));var ke;(function(e){function a(){var C,w,B,E,Q;return{createBaseSourceFileNode:le,createBaseIdentifierNode:N,createBasePrivateIdentifierNode:p,createBaseTokenNode:m,createBaseNode:G};function le(oe){return new(Q||(Q=e.objectAllocator.getSourceFileConstructor()))(oe,-1,-1)}function N(oe){return new(B||(B=e.objectAllocator.getIdentifierConstructor()))(oe,-1,-1)}function p(oe){return new(E||(E=e.objectAllocator.getPrivateIdentifierConstructor()))(oe,-1,-1)}function m(oe){return new(w||(w=e.objectAllocator.getTokenConstructor()))(oe,-1,-1)}function G(oe){return new(C||(C=e.objectAllocator.getNodeConstructor()))(oe,-1,-1)}}e.createBaseNodeFactory=a})(ke||(ke={}));var ke;(function(e){function a(C){var w,B;return{getParenthesizeLeftSideOfBinaryForOperator:E,getParenthesizeRightSideOfBinaryForOperator:Q,parenthesizeLeftSideOfBinary:G,parenthesizeRightSideOfBinary:oe,parenthesizeExpressionOfComputedPropertyName:f,parenthesizeConditionOfConditionalExpression:T,parenthesizeBranchOfConditionalExpression:K,parenthesizeExpressionOfExportDefault:b,parenthesizeExpressionOfNew:se,parenthesizeLeftSideOfAccess:J,parenthesizeOperandOfPostfixUnary:ie,parenthesizeOperandOfPrefixUnary:R,parenthesizeExpressionsOfCommaDelimitedList:q,parenthesizeExpressionForDisallowedComma:O,parenthesizeExpressionOfExpressionStatement:ve,parenthesizeConciseBodyOfArrowFunction:ee,parenthesizeCheckTypeOfConditionalType:he,parenthesizeExtendsTypeOfConditionalType:F,parenthesizeConstituentTypesOfUnionType:X,parenthesizeConstituentTypeOfUnionType:x,parenthesizeConstituentTypesOfIntersectionType:A,parenthesizeConstituentTypeOfIntersectionType:$,parenthesizeOperandOfTypeOperator:y,parenthesizeOperandOfReadonlyTypeOperator:V,parenthesizeNonArrayTypeOfPostfixType:L,parenthesizeElementTypesOfTupleType:P,parenthesizeElementTypeOfTupleType:k,parenthesizeTypeOfOptionalType:U,parenthesizeTypeArguments:I,parenthesizeLeadingTypeArgument:j};function E(l){w||(w=new e.Map);var d=w.get(l);return d||(d=function(D){return G(l,D)},w.set(l,d)),d}function Q(l){B||(B=new e.Map);var d=B.get(l);return d||(d=function(D){return oe(l,void 0,D)},B.set(l,d)),d}function le(l,d,D,fe){var g=e.getOperatorPrecedence(221,l),ne=e.getOperatorAssociativity(221,l),ue=e.skipPartiallyEmittedExpressions(d);if(!D&&d.kind===214&&g>3)return!0;var We=e.getExpressionPrecedence(ue);switch(e.compareValues(We,g)){case-1:return!(!D&&ne===1&&d.kind===224);case 1:return!1;case 0:if(D)return ne===1;if(e.isBinaryExpression(ue)&&ue.operatorToken.kind===l){if(N(l))return!1;if(l===39){var Fe=fe?p(fe):0;if(e.isLiteralKind(Fe)&&Fe===p(ue))return!1}}var Z=e.getExpressionAssociativity(ue);return Z===0}}function N(l){return l===41||l===51||l===50||l===52}function p(l){if(l=e.skipPartiallyEmittedExpressions(l),e.isLiteralKind(l.kind))return l.kind;if(l.kind===221&&l.operatorToken.kind===39){if(l.cachedLiteralKind!==void 0)return l.cachedLiteralKind;var d=p(l.left),D=e.isLiteralKind(d)&&d===p(l.right)?d:0;return l.cachedLiteralKind=D,D}return 0}function m(l,d,D,fe){var g=e.skipPartiallyEmittedExpressions(d);return g.kind===212?d:le(l,d,D,fe)?C.createParenthesizedExpression(d):d}function G(l,d){return m(l,d,!0)}function oe(l,d,D){return m(l,D,!1,d)}function f(l){return e.isCommaSequence(l)?C.createParenthesizedExpression(l):l}function T(l){var d=e.getOperatorPrecedence(222,57),D=e.skipPartiallyEmittedExpressions(l),fe=e.getExpressionPrecedence(D);return e.compareValues(fe,d)!==1?C.createParenthesizedExpression(l):l}function K(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isCommaSequence(d)?C.createParenthesizedExpression(l):l}function b(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.isCommaSequence(d);if(!D)switch(e.getLeftmostExpression(d,!1).kind){case 226:case 213:D=!0}return D?C.createParenthesizedExpression(l):l}function se(l){var d=e.getLeftmostExpression(l,!0);switch(d.kind){case 208:return C.createParenthesizedExpression(l);case 209:return d.arguments?l:C.createParenthesizedExpression(l)}return J(l)}function J(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isLeftHandSideExpression(d)&&(d.kind!==209||d.arguments)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ie(l){return e.isLeftHandSideExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function R(l){return e.isUnaryExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function q(l){var d=e.sameMap(l,O);return e.setTextRange(C.createNodeArray(d,l.hasTrailingComma),l)}function O(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.getExpressionPrecedence(d),fe=e.getOperatorPrecedence(221,27);return D>fe?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ve(l){var d=e.skipPartiallyEmittedExpressions(l);if(e.isCallExpression(d)){var D=d.expression,fe=e.skipPartiallyEmittedExpressions(D).kind;if(fe===213||fe===214){var g=C.updateCallExpression(d,e.setTextRange(C.createParenthesizedExpression(D),D),d.typeArguments,d.arguments);return C.restoreOuterExpressions(l,g,8)}}var ne=e.getLeftmostExpression(d,!1).kind;return ne===205||ne===213?e.setTextRange(C.createParenthesizedExpression(l),l):l}function ee(l){return!e.isBlock(l)&&(e.isCommaSequence(l)||e.getLeftmostExpression(l,!1).kind===205)?e.setTextRange(C.createParenthesizedExpression(l),l):l}function he(l){switch(l.kind){case 179:case 180:case 189:return C.createParenthesizedType(l)}return l}function F(l){switch(l.kind){case 189:return C.createParenthesizedType(l)}return l}function x(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return he(l)}function X(l){return C.createNodeArray(e.sameMap(l,x))}function $(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return x(l)}function A(l){return C.createNodeArray(e.sameMap(l,$))}function y(l){switch(l.kind){case 188:return C.createParenthesizedType(l)}return $(l)}function V(l){switch(l.kind){case 193:return C.createParenthesizedType(l)}return y(l)}function L(l){switch(l.kind){case 190:case 193:case 181:return C.createParenthesizedType(l)}return y(l)}function P(l){return C.createNodeArray(e.sameMap(l,k))}function k(l){return Y(l)?C.createParenthesizedType(l):l}function Y(l){return e.isJSDocNullableType(l)?l.postfix:e.isNamedTupleMember(l)||e.isFunctionTypeNode(l)||e.isConstructorTypeNode(l)||e.isTypeOperatorNode(l)?Y(l.type):e.isConditionalTypeNode(l)?Y(l.falseType):e.isUnionTypeNode(l)||e.isIntersectionTypeNode(l)?Y(e.last(l.types)):e.isInferTypeNode(l)?!!l.typeParameter.constraint&&Y(l.typeParameter.constraint):!1}function U(l){return Y(l)?C.createParenthesizedType(l):L(l)}function j(l){return e.isFunctionOrConstructorTypeNode(l)&&l.typeParameters?C.createParenthesizedType(l):l}function H(l,d){return d===0?j(l):l}function I(l){if(e.some(l))return C.createNodeArray(e.sameMap(l,H))}}e.createParenthesizerRules=a,e.nullParenthesizerRules={getParenthesizeLeftSideOfBinaryForOperator:function(C){return e.identity},getParenthesizeRightSideOfBinaryForOperator:function(C){return e.identity},parenthesizeLeftSideOfBinary:function(C,w){return w},parenthesizeRightSideOfBinary:function(C,w,B){return B},parenthesizeExpressionOfComputedPropertyName:e.identity,parenthesizeConditionOfConditionalExpression:e.identity,parenthesizeBranchOfConditionalExpression:e.identity,parenthesizeExpressionOfExportDefault:e.identity,parenthesizeExpressionOfNew:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeLeftSideOfAccess:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPostfixUnary:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPrefixUnary:function(C){return e.cast(C,e.isUnaryExpression)},parenthesizeExpressionsOfCommaDelimitedList:function(C){return e.cast(C,e.isNodeArray)},parenthesizeExpressionForDisallowedComma:e.identity,parenthesizeExpressionOfExpressionStatement:e.identity,parenthesizeConciseBodyOfArrowFunction:e.identity,parenthesizeCheckTypeOfConditionalType:e.identity,parenthesizeExtendsTypeOfConditionalType:e.identity,parenthesizeConstituentTypesOfUnionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfUnionType:e.identity,parenthesizeConstituentTypesOfIntersectionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfIntersectionType:e.identity,parenthesizeOperandOfTypeOperator:e.identity,parenthesizeOperandOfReadonlyTypeOperator:e.identity,parenthesizeNonArrayTypeOfPostfixType:e.identity,parenthesizeElementTypesOfTupleType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeElementTypeOfTupleType:e.identity,parenthesizeTypeOfOptionalType:e.identity,parenthesizeTypeArguments:function(C){return C&&e.cast(C,e.isNodeArray)},parenthesizeLeadingTypeArgument:e.identity}})(ke||(ke={}));var ke;(function(e){function a(C){return{convertToFunctionBlock:w,convertToFunctionExpression:B,convertToArrayAssignmentElement:E,convertToObjectAssignmentElement:Q,convertToAssignmentPattern:le,convertToObjectAssignmentPattern:N,convertToArrayAssignmentPattern:p,convertToAssignmentElementTarget:m};function w(G,oe){if(e.isBlock(G))return G;var f=C.createReturnStatement(G);e.setTextRange(f,G);var T=C.createBlock([f],oe);return e.setTextRange(T,G),T}function B(G){if(!G.body)return e.Debug.fail(\"Cannot convert a FunctionDeclaration without a body\");var oe=C.createFunctionExpression(G.modifiers,G.asteriskToken,G.name,G.typeParameters,G.parameters,G.type,G.body);return e.setOriginalNode(oe,G),e.setTextRange(oe,G),e.getStartsOnNewLine(G)&&e.setStartsOnNewLine(oe,!0),oe}function E(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadElement(G.name),G),G);var oe=m(G.name);return G.initializer?e.setOriginalNode(e.setTextRange(C.createAssignment(oe,G.initializer),G),G):oe}return e.cast(G,e.isExpression)}function Q(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadAssignment(G.name),G),G);if(G.propertyName){var oe=m(G.name);return e.setOriginalNode(e.setTextRange(C.createPropertyAssignment(G.propertyName,G.initializer?C.createAssignment(oe,G.initializer):oe),G),G)}return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createShorthandPropertyAssignment(G.name,G.initializer),G),G)}return e.cast(G,e.isObjectLiteralElementLike)}function le(G){switch(G.kind){case 202:case 204:return p(G);case 201:case 205:return N(G)}}function N(G){return e.isObjectBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createObjectLiteralExpression(e.map(G.elements,Q)),G),G):e.cast(G,e.isObjectLiteralExpression)}function p(G){return e.isArrayBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createArrayLiteralExpression(e.map(G.elements,E)),G),G):e.cast(G,e.isArrayLiteralExpression)}function m(G){return e.isBindingPattern(G)?le(G):e.cast(G,e.isExpression)}}e.createNodeConverters=a,e.nullNodeConverters={convertToFunctionBlock:e.notImplemented,convertToFunctionExpression:e.notImplemented,convertToArrayAssignmentElement:e.notImplemented,convertToObjectAssignmentElement:e.notImplemented,convertToAssignmentPattern:e.notImplemented,convertToObjectAssignmentPattern:e.notImplemented,convertToArrayAssignmentPattern:e.notImplemented,convertToAssignmentElementTarget:e.notImplemented}})(ke||(ke={}));var ke;(function(e){var a=0,C;(function(X){X[X.None=0]=\"None\",X[X.NoParenthesizerRules=1]=\"NoParenthesizerRules\",X[X.NoNodeConverters=2]=\"NoNodeConverters\",X[X.NoIndentationOnFreshPropertyAccess=4]=\"NoIndentationOnFreshPropertyAccess\",X[X.NoOriginalNode=8]=\"NoOriginalNode\"})(C=e.NodeFactoryFlags||(e.NodeFactoryFlags={}));function w(X,$){var A=X&8?B:E,y=e.memoize(function(){return X&1?e.nullParenthesizerRules:e.createParenthesizerRules(g)}),V=e.memoize(function(){return X&2?e.nullNodeConverters:e.createNodeConverters(g)}),L=e.memoizeOne(function(_){return function(W,Te){return jr(W,_,Te)}}),P=e.memoizeOne(function(_){return function(W){return Pt(_,W)}}),k=e.memoizeOne(function(_){return function(W){return ua(W,_)}}),Y=e.memoizeOne(function(_){return function(){return Zl(_)}}),U=e.memoizeOne(function(_){return function(W){return kl(_,W)}}),j=e.memoizeOne(function(_){return function(W,Te){return zd(_,W,Te)}}),H=e.memoizeOne(function(_){return function(W,Te){return R_(_,W,Te)}}),I=e.memoizeOne(function(_){return function(W,Te){return __(_,W,Te)}}),l=e.memoizeOne(function(_){return function(W,Te){return Wf(_,W,Te)}}),d=e.memoizeOne(function(_){return function(W,Te,cr){return Sf(_,W,Te,cr)}}),D=e.memoizeOne(function(_){return function(W,Te,cr){return ll(_,W,Te,cr)}}),fe=e.memoizeOne(function(_){return function(W,Te,cr,ni){return J_(_,W,Te,cr,ni)}}),g={get parenthesizer(){return y()},get converters(){return V()},baseFactory:$,flags:X,createNodeArray:ne,createNumericLiteral:we,createBigIntLiteral:de,createStringLiteral:Ae,createStringLiteralFromNode:er,createRegularExpressionLiteral:ir,createLiteralLikeNode:Cr,createIdentifier:Er,updateIdentifier:Ne,createTempVariable:n,createLoopVariable:lr,createUniqueName:be,getGeneratedNameForNode:Ge,createPrivateIdentifier:ur,createToken:Ir,createSuper:wr,createThis:Ur,createNull:ii,createTrue:mi,createFalse:pe,createModifier:or,createModifiersFromModifierFlags:qr,createQualifiedName:si,updateQualifiedName:Di,createComputedPropertyName:wi,updateComputedPropertyName:Xi,createTypeParameterDeclaration:et,updateTypeParameterDeclaration:Gi,createParameterDeclaration:Wt,updateParameterDeclaration:Zt,createDecorator:_r,updateDecorator:pi,createPropertySignature:ae,updatePropertySignature:Xe,createPropertyDeclaration:Jr,updatePropertyDeclaration:ti,createMethodSignature:Ze,updateMethodSignature:Sr,createMethodDeclaration:zr,updateMethodDeclaration:Wr,createConstructorDeclaration:vr,updateConstructorDeclaration:mr,createGetAccessorDeclaration:Ar,updateGetAccessorDeclaration:Oe,createSetAccessorDeclaration:nr,updateSetAccessorDeclaration:Mr,createCallSignature:Pe,updateCallSignature:Ue,createConstructSignature:fr,updateConstructSignature:De,createIndexSignature:gr,updateIndexSignature:Vr,createClassStaticBlockDeclaration:Je,updateClassStaticBlockDeclaration:xe,createTemplateLiteralTypeSpan:Tr,updateTemplateLiteralTypeSpan:vi,createKeywordTypeNode:Ui,createTypePredicateNode:Yi,updateTypePredicateNode:Wi,createTypeReferenceNode:ct,updateTypeReferenceNode:Li,createFunctionTypeNode:nt,updateFunctionTypeNode:Mt,createConstructorTypeNode:xt,updateConstructorTypeNode:Rt,createTypeQueryNode:Fi,updateTypeQueryNode:ui,createTypeLiteralNode:Bt,updateTypeLiteralNode:wt,createArrayTypeNode:na,updateArrayTypeNode:Ai,createTupleTypeNode:Oi,updateTupleTypeNode:ji,createNamedTupleMember:Vi,updateNamedTupleMember:at,createOptionalTypeNode:At,updateOptionalTypeNode:ba,createRestTypeNode:$a,updateRestTypeNode:Qa,createUnionTypeNode:ka,updateUnionTypeNode:Ba,createIntersectionTypeNode:pn,updateIntersectionTypeNode:Cn,createConditionalTypeNode:Bi,updateConditionalTypeNode:kn,createInferTypeNode:xn,updateInferTypeNode:Kn,createImportTypeNode:Rn,updateImportTypeNode:Da,createParenthesizedType:bo,updateParenthesizedType:Ro,createThisTypeNode:En,createTypeOperatorNode:Wn,updateTypeOperatorNode:to,createIndexedAccessTypeNode:Co,updateIndexedAccessTypeNode:Ko,createMappedTypeNode:Oo,updateMappedTypeNode:no,createLiteralTypeNode:$o,updateLiteralTypeNode:Pr,createTemplateLiteralType:Pn,updateTemplateLiteralType:eo,createObjectBindingPattern:xi,updateObjectBindingPattern:St,createArrayBindingPattern:pa,updateArrayBindingPattern:dn,createBindingElement:Jn,updateBindingElement:Qe,createArrayLiteralExpression:S,updateArrayLiteralExpression:Ce,createObjectLiteralExpression:qe,updateObjectLiteralExpression:br,createPropertyAccessExpression:X&4?function(_,W){return e.setEmitFlags(Zr(_,W),131072)}:Zr,updatePropertyAccessExpression:Si,createPropertyAccessChain:X&4?function(_,W,Te){return e.setEmitFlags(Pi(_,W,Te),131072)}:Pi,updatePropertyAccessChain:Qi,createElementAccessExpression:Ct,updateElementAccessExpression:sa,createElementAccessChain:en,updateElementAccessChain:Wa,createCallExpression:qn,updateCallExpression:mo,createCallChain:So,updateCallChain:Go,createNewExpression:ys,updateNewExpression:Pc,createTaggedTemplateExpression:Vc,updateTaggedTemplateExpression:Kc,createTypeAssertion:Xs,updateTypeAssertion:pc,createParenthesizedExpression:hs,updateParenthesizedExpression:tc,createFunctionExpression:ps,updateFunctionExpression:Qs,createArrowFunction:js,updateArrowFunction:ds,createDeleteExpression:Ji,updateDeleteExpression:ce,createTypeOfExpression:Rr,updateTypeOfExpression:yi,createVoidExpression:qi,updateVoidExpression:je,createAwaitExpression:Hr,updateAwaitExpression:pt,createPrefixUnaryExpression:Pt,updatePrefixUnaryExpression:ga,createPostfixUnaryExpression:ua,updatePostfixUnaryExpression:Xn,createBinaryExpression:jr,updateBinaryExpression:xs,createConditionalExpression:Fo,updateConditionalExpression:ko,createTemplateExpression:Ao,updateTemplateExpression:Ms,createTemplateHead:su,createTemplateMiddle:tl,createTemplateTail:Zc,createNoSubstitutionTemplateLiteral:Rf,createTemplateLiteralLikeNode:xc,createYieldExpression:al,updateYieldExpression:Jo,createSpreadElement:eu,updateSpreadElement:Ws,createClassExpression:pu,updateClassExpression:Uu,createOmittedExpression:Ql,createExpressionWithTypeArguments:xl,updateExpressionWithTypeArguments:Ya,createAsExpression:du,updateAsExpression:vc,createNonNullExpression:Kr,updateNonNullExpression:_i,createNonNullChain:Ei,updateNonNullChain:tt,createMetaProperty:kt,updateMetaProperty:bt,createTemplateSpan:ia,updateTemplateSpan:Xt,createSemicolonClassElement:Za,createBlock:bn,updateBlock:_a,createVariableStatement:qa,updateVariableStatement:rn,createEmptyStatement:jn,createExpressionStatement:Mo,updateExpressionStatement:ho,createIfStatement:gs,updateIfStatement:Se,createDoStatement:hr,updateDoStatement:Or,createWhileStatement:ki,updateWhileStatement:dt,createForStatement:la,updateForStatement:wa,createForInStatement:On,updateForInStatement:No,createForOfStatement:jo,updateForOfStatement:po,createContinueStatement:Gn,updateContinueStatement:$n,createBreakStatement:Ho,updateBreakStatement:Zo,createReturnStatement:Es,updateReturnStatement:yc,createWithStatement:Xr,updateWithStatement:Ls,createSwitchStatement:Ic,updateSwitchStatement:zu,createLabeledStatement:vf,updateLabeledStatement:P_,createThrowStatement:El,updateThrowStatement:vp,createTryStatement:oo,updateTryStatement:I_,createDebuggerStatement:yp,createVariableDeclaration:Yl,updateVariableDeclaration:Bf,createVariableDeclarationList:Cl,updateVariableDeclarationList:c_,createFunctionDeclaration:hp,updateFunctionDeclaration:gu,createClassDeclaration:Dp,updateClassDeclaration:sd,createInterfaceDeclaration:Aa,updateInterfaceDeclaration:va,createTypeAliasDeclaration:Cu,updateTypeAliasDeclaration:qs,createEnumDeclaration:cd,updateEnumDeclaration:ns,createModuleDeclaration:nl,updateModuleDeclaration:hc,createModuleBlock:es,updateModuleBlock:u_,createCaseBlock:Jf,updateCaseBlock:w_,createNamespaceExportDeclaration:ud,updateNamespaceExportDeclaration:ku,createImportEqualsDeclaration:ld,updateImportEqualsDeclaration:fd,createImportDeclaration:bp,updateImportDeclaration:Sp,createImportClause:Tp,updateImportClause:_d,createAssertClause:jf,updateAssertClause:O_,createAssertEntry:F_,updateAssertEntry:pd,createImportTypeAssertionContainer:xp,updateImportTypeAssertionContainer:M_,createNamespaceImport:Ep,updateNamespaceImport:ol,createNamespaceExport:Au,updateNamespaceExport:ru,createNamedImports:yf,updateNamedImports:Cp,createImportSpecifier:dd,updateImportSpecifier:kp,createExportAssignment:mu,updateExportAssignment:gd,createExportDeclaration:hf,updateExportDeclaration:$l,createNamedExports:Uf,updateNamedExports:L_,createExportSpecifier:l_,updateExportSpecifier:f_,createMissingDeclaration:md,createExternalModuleReference:ks,updateExternalModuleReference:Wu,get createJSDocAllType(){return Y(312)},get createJSDocUnknownType(){return Y(313)},get createJSDocNonNullableType(){return H(315)},get updateJSDocNonNullableType(){return I(315)},get createJSDocNullableType(){return H(314)},get updateJSDocNullableType(){return I(314)},get createJSDocOptionalType(){return U(316)},get updateJSDocOptionalType(){return j(316)},get createJSDocVariadicType(){return U(318)},get updateJSDocVariadicType(){return j(318)},get createJSDocNamepathType(){return U(319)},get updateJSDocNamepathType(){return j(319)},createJSDocFunctionType:Al,updateJSDocFunctionType:wc,createJSDocTypeLiteral:qu,updateJSDocTypeLiteral:Vu,createJSDocTypeExpression:ef,updateJSDocTypeExpression:sl,createJSDocSignature:p_,updateJSDocSignature:Df,createJSDocTemplateTag:os,updateJSDocTemplateTag:Ps,createJSDocTypedefTag:d_,updateJSDocTypedefTag:Gc,createJSDocParameterTag:B_,updateJSDocParameterTag:vu,createJSDocPropertyTag:Gt,updateJSDocPropertyTag:As,createJSDocCallbackTag:vn,updateJSDocCallbackTag:Nl,createJSDocAugmentsTag:cl,updateJSDocAugmentsTag:rf,createJSDocImplementsTag:Ut,updateJSDocImplementsTag:Ap,createJSDocSeeTag:Ds,updateJSDocSeeTag:bf,createJSDocNameReference:bs,updateJSDocNameReference:Dc,createJSDocMemberName:Cc,updateJSDocMemberName:ac,createJSDocLink:Pl,updateJSDocLink:Il,createJSDocLinkCode:zf,updateJSDocLinkCode:ul,createJSDocLinkPlain:Nu,updateJSDocLinkPlain:Us,get createJSDocTypeTag(){return D(343)},get updateJSDocTypeTag(){return fe(343)},get createJSDocReturnTag(){return D(341)},get updateJSDocReturnTag(){return fe(341)},get createJSDocThisTag(){return D(342)},get updateJSDocThisTag(){return fe(342)},get createJSDocEnumTag(){return D(339)},get updateJSDocEnumTag(){return fe(339)},get createJSDocAuthorTag(){return l(330)},get updateJSDocAuthorTag(){return d(330)},get createJSDocClassTag(){return l(332)},get updateJSDocClassTag(){return d(332)},get createJSDocPublicTag(){return l(333)},get updateJSDocPublicTag(){return d(333)},get createJSDocPrivateTag(){return l(334)},get updateJSDocPrivateTag(){return d(334)},get createJSDocProtectedTag(){return l(335)},get updateJSDocProtectedTag(){return d(335)},get createJSDocReadonlyTag(){return l(336)},get updateJSDocReadonlyTag(){return d(336)},get createJSDocOverrideTag(){return l(337)},get updateJSDocOverrideTag(){return d(337)},get createJSDocDeprecatedTag(){return l(331)},get updateJSDocDeprecatedTag(){return d(331)},createJSDocUnknownTag:j_,updateJSDocUnknownTag:U_,createJSDocText:iu,updateJSDocText:vd,createJSDocComment:qf,updateJSDocComment:dc,createJsxElement:Pu,updateJsxElement:wl,createJsxSelfClosingElement:Iu,updateJsxSelfClosingElement:so,createJsxOpeningElement:Et,updateJsxOpeningElement:Ys,createJsxClosingElement:Ku,updateJsxClosingElement:Np,createJsxFragment:Pp,createJsxText:fl,updateJsxText:_l,createJsxOpeningFragment:cu,createJsxJsxClosingFragment:gc,updateJsxFragment:nc,createJsxAttribute:Tf,updateJsxAttribute:mc,createJsxAttributes:Ip,updateJsxAttributes:ms,createJsxSpreadAttribute:tu,updateJsxSpreadAttribute:wp,createJsxExpression:Hc,updateJsxExpression:Ol,createCaseClause:tf,updateCaseClause:xf,createDefaultClause:z_,updateDefaultClause:Oc,createHeritageClause:rs,updateHeritageClause:Op,createCatchClause:Ef,updateCatchClause:Fl,createPropertyAssignment:pl,updatePropertyAssignment:Mp,createShorthandPropertyAssignment:Gu,updateShorthandPropertyAssignment:Cf,createSpreadAssignment:W_,updateSpreadAssignment:g_,createEnumMember:dl,updateEnumMember:gl,createSourceFile:Vf,updateSourceFile:Hu,createBundle:af,updateBundle:tn,createUnparsedSource:Ml,createUnparsedPrologue:nf,createUnparsedPrepend:q_,createUnparsedTextLike:Kf,createUnparsedSyntheticReference:Rp,createInputFiles:yd,createSyntheticExpression:m_,createSyntaxList:Ll,createNotEmittedStatement:hd,createPartiallyEmittedExpression:v_,updatePartiallyEmittedExpression:Bp,createCommaListExpression:Xc,updateCommaListExpression:Gf,createEndOfDeclarationMarker:of,createMergeDeclarationMarker:wu,createSyntheticReferenceExpression:V_,updateSyntheticReferenceExpression:yu,cloneNode:v,get createComma(){return L(27)},get createAssignment(){return L(63)},get createLogicalOr(){return L(56)},get createLogicalAnd(){return L(55)},get createBitwiseOr(){return L(51)},get createBitwiseXor(){return L(52)},get createBitwiseAnd(){return L(50)},get createStrictEquality(){return L(36)},get createStrictInequality(){return L(37)},get createEquality(){return L(34)},get createInequality(){return L(35)},get createLessThan(){return L(29)},get createLessThanEquals(){return L(32)},get createGreaterThan(){return L(31)},get createGreaterThanEquals(){return L(33)},get createLeftShift(){return L(47)},get createRightShift(){return L(48)},get createUnsignedRightShift(){return L(49)},get createAdd(){return L(39)},get createSubtract(){return L(40)},get createMultiply(){return L(41)},get createDivide(){return L(43)},get createModulo(){return L(44)},get createExponent(){return L(42)},get createPrefixPlus(){return P(39)},get createPrefixMinus(){return P(40)},get createPrefixIncrement(){return P(45)},get createPrefixDecrement(){return P(46)},get createBitwiseNot(){return P(54)},get createLogicalNot(){return P(53)},get createPostfixIncrement(){return k(45)},get createPostfixDecrement(){return k(46)},createImmediatelyInvokedFunctionExpression:sr,createImmediatelyInvokedArrowFunction:fi,createVoidZero:zi,createExportDefault:Sa,createExternalModuleExport:da,createTypeCheck:Ha,createMethodCall:ta,createGlobalMethodCall:oc,createFunctionBindCall:nn,createFunctionCallCall:Wo,createFunctionApplyCall:Lo,createArraySliceCall:uu,createArrayConcatCall:is,createObjectDefinePropertyCall:au,createReflectGetCall:Ou,createReflectSetCall:sf,createPropertyDescriptor:cf,createCallBinding:G_,createAssignmentTargetWrapper:Le,inlineExpressions:Nr,getInternalName:di,getLocalName:Mi,getExportName:st,getDeclarationName:ra,getNamespaceMemberName:Ta,getExternalModuleOrNamespaceExportName:ha,restoreOuterExpressions:Jp,restoreEnclosingLabel:Hf,createUseStrictPrologue:qo,copyPrologue:Na,copyStandardPrologue:co,copyCustomPrologue:ts,ensureUseStrict:vs,liftToBlock:Ac,mergeLexicalEnvironment:Qu,updateModifiers:sc};return g;function ne(_,W){if(_===void 0||_===e.emptyArray)_=[];else if(e.isNodeArray(_)){if(W===void 0||_.hasTrailingComma===W)return _.transformFlags===void 0&&T(_),e.Debug.attachNodeArrayDebugInfo(_),_;var Te=_.slice();return Te.pos=_.pos,Te.end=_.end,Te.hasTrailingComma=W,Te.transformFlags=_.transformFlags,e.Debug.attachNodeArrayDebugInfo(Te),Te}var cr=_.length,ni=cr>=1&&cr<=4?_.slice():_;return e.setTextRangePosEnd(ni,-1,-1),ni.hasTrailingComma=!!W,T(ni),e.Debug.attachNodeArrayDebugInfo(ni),ni}function ue(_){return $.createBaseNode(_)}function We(_,W,Te){var cr=ue(_);return cr.decorators=bc(W),cr.modifiers=bc(Te),cr.transformFlags|=f(cr.decorators)|f(cr.modifiers),cr.symbol=void 0,cr.localSymbol=void 0,cr.locals=void 0,cr.nextContainer=void 0,cr}function Fe(_,W,Te,cr){var ni=We(_,W,Te);if(cr=Mc(cr),ni.name=cr,cr)switch(ni.kind){case 169:case 172:case 173:case 167:case 296:if(e.isIdentifier(cr)){ni.transformFlags|=m(cr);break}default:ni.transformFlags|=oe(cr);break}return ni}function Z(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.typeParameters=bc(ni),rt.transformFlags|=f(rt.typeParameters),ni&&(rt.transformFlags|=1),rt}function Be(_,W,Te,cr,ni,rt,yt){var Xa=Z(_,W,Te,cr,ni);return Xa.parameters=ne(rt),Xa.type=yt,Xa.transformFlags|=f(Xa.parameters)|oe(Xa.type),yt&&(Xa.transformFlags|=1),Xa}function ge(_,W){return W.typeArguments&&(_.typeArguments=W.typeArguments),A(_,W)}function Re(_,W,Te,cr,ni,rt,yt,Xa){var vo=Be(_,W,Te,cr,ni,rt,yt);return vo.body=Xa,vo.transformFlags|=oe(vo.body)&-16777217,Xa||(vo.transformFlags|=1),vo}function ze(_,W){return W.exclamationToken&&(_.exclamationToken=W.exclamationToken),W.typeArguments&&(_.typeArguments=W.typeArguments),ge(_,W)}function Ee(_,W,Te,cr,ni,rt){var yt=Z(_,W,Te,cr,ni);return yt.heritageClauses=bc(rt),yt.transformFlags|=f(yt.heritageClauses),yt}function He(_,W,Te,cr,ni,rt,yt){var Xa=Ee(_,W,Te,cr,ni,rt);return Xa.members=ne(yt),Xa.transformFlags|=f(Xa.members),Xa}function rr(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.initializer=ni,rt.transformFlags|=oe(rt.initializer),rt}function Ie(_,W,Te,cr,ni,rt){var yt=rr(_,W,Te,cr,rt);return yt.type=ni,yt.transformFlags|=oe(ni),ni&&(yt.transformFlags|=1),yt}function _e(_,W){var Te=yr(_);return Te.text=W,Te}function we(_,W){W===void 0&&(W=0);var Te=_e(8,typeof _==\"number\"?_+\"\":_);return Te.numericLiteralFlags=W,W&384&&(Te.transformFlags|=1024),Te}function de(_){var W=_e(9,typeof _==\"string\"?_:e.pseudoBigIntToString(_)+\"n\");return W.transformFlags|=4,W}function ye(_,W){var Te=_e(10,_);return Te.singleQuote=W,Te}function Ae(_,W,Te){var cr=ye(_,W);return cr.hasExtendedUnicodeEscape=Te,Te&&(cr.transformFlags|=1024),cr}function er(_){var W=ye(e.getTextOfIdentifierOrLiteral(_),void 0);return W.textSourceNode=_,W}function ir(_){var W=_e(13,_);return W}function Cr(_,W){switch(_){case 8:return we(W,0);case 9:return de(W);case 10:return Ae(W,void 0);case 11:return fl(W,!1);case 12:return fl(W,!0);case 13:return ir(W);case 14:return xc(_,W,void 0,0)}}function Ye(_,W){W===void 0&&_&&(W=e.stringToToken(_)),W===79&&(W=void 0);var Te=$.createBaseIdentifierNode(79);return Te.originalKeywordKind=W,Te.escapedText=e.escapeLeadingUnderscores(_),Te}function Br(_,W){var Te=Ye(_,void 0);return Te.autoGenerateFlags=W,Te.autoGenerateId=a,a++,Te}function Er(_,W,Te){var cr=Ye(_,Te);return W&&(cr.typeArguments=ne(W)),cr.originalKeywordKind===132&&(cr.transformFlags|=16777216),cr}function Ne(_,W){return _.typeArguments!==W?A(Er(e.idText(_),W),_):_}function n(_,W){var Te=1;W&&(Te|=8);var cr=Br(\"\",Te);return _&&_(cr),cr}function lr(_){var W=2;return _&&(W|=8),Br(\"\",W)}function be(_,W){return W===void 0&&(W=0),e.Debug.assert(!(W&7),\"Argument out of range: flags\"),e.Debug.assert((W&48)!==32,\"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic\"),Br(_,3|W)}function Ge(_,W){W===void 0&&(W=0),e.Debug.assert(!(W&7),\"Argument out of range: flags\");var Te=Br(_&&e.isIdentifier(_)?e.idText(_):\"\",4|W);return Te.original=_,Te}function ur(_){e.startsWith(_,\"#\")||e.Debug.fail(\"First character of private identifier must be #: \"+_);var W=$.createBasePrivateIdentifierNode(80);return W.escapedText=e.escapeLeadingUnderscores(_),W.transformFlags|=8388608,W}function yr(_){return $.createBaseTokenNode(_)}function Ir(_){e.Debug.assert(_>=0&&_<=160,\"Invalid token\"),e.Debug.assert(_<=14||_>=17,\"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals.\"),e.Debug.assert(_<=8||_>=14,\"Invalid token. Use 'createLiteralLikeNode' to create literals.\"),e.Debug.assert(_!==79,\"Invalid token. Use 'createIdentifier' to create identifiers\");var W=yr(_),Te=0;switch(_){case 131:Te=384;break;case 123:case 121:case 122:case 145:case 126:case 135:case 85:case 130:case 147:case 158:case 143:case 148:case 101:case 144:case 159:case 150:case 133:case 151:case 114:case 155:case 153:Te=1;break;case 106:Te=33555456;break;case 124:Te=1024;break;case 108:Te=8192;break}return Te&&(W.transformFlags|=Te),W}function wr(){return Ir(106)}function Ur(){return Ir(108)}function ii(){return Ir(104)}function mi(){return Ir(110)}function pe(){return Ir(95)}function or(_){return Ir(_)}function qr(_){var W=[];return _&1&&W.push(or(93)),_&2&&W.push(or(135)),_&512&&W.push(or(88)),_&2048&&W.push(or(85)),_&4&&W.push(or(123)),_&8&&W.push(or(121)),_&16&&W.push(or(122)),_&128&&W.push(or(126)),_&32&&W.push(or(124)),_&16384&&W.push(or(159)),_&64&&W.push(or(145)),_&256&&W.push(or(131)),_&32768&&W.push(or(101)),_&65536&&W.push(or(144)),W.length?W:void 0}function si(_,W){var Te=ue(161);return Te.left=_,Te.right=Mc(W),Te.transformFlags|=oe(Te.left)|m(Te.right),Te}function Di(_,W,Te){return _.left!==W||_.right!==Te?A(si(W,Te),_):_}function wi(_){var W=ue(162);return W.expression=y().parenthesizeExpressionOfComputedPropertyName(_),W.transformFlags|=oe(W.expression)|1024|65536,W}function Xi(_,W){return _.expression!==W?A(wi(W),_):_}function et(_,W,Te,cr){var ni,rt,yt;_===void 0||e.isArray(_)?(rt=_,ni=W,yt=Te):(rt=void 0,ni=_,yt=W);var Xa=Fe(163,void 0,rt,ni);return Xa.constraint=yt,Xa.default=cr,Xa.transformFlags=1,Xa}function Gi(_,W,Te,cr,ni){var rt,yt,Xa;return W===void 0||e.isArray(W)?(yt=W,rt=Te,Xa=cr):(yt=void 0,rt=W,Xa=Te),_.modifiers!==yt||_.name!==rt||_.constraint!==Xa||_.default!==ni?A(et(yt,rt,Xa,ni),_):_}function Wt(_,W,Te,cr,ni,rt,yt){var Xa=Ie(164,_,W,cr,rt,yt&&y().parenthesizeExpressionForDisallowedComma(yt));return Xa.dotDotDotToken=Te,Xa.questionToken=ni,e.isThisIdentifier(Xa.name)?Xa.transformFlags=1:(Xa.transformFlags|=oe(Xa.dotDotDotToken)|oe(Xa.questionToken),ni&&(Xa.transformFlags|=1),e.modifiersToFlags(Xa.modifiers)&16476&&(Xa.transformFlags|=4096),(yt||Te)&&(Xa.transformFlags|=1024)),Xa}function Zt(_,W,Te,cr,ni,rt,yt,Xa){return _.decorators!==W||_.modifiers!==Te||_.dotDotDotToken!==cr||_.name!==ni||_.questionToken!==rt||_.type!==yt||_.initializer!==Xa?A(Wt(W,Te,cr,ni,rt,yt,Xa),_):_}function _r(_){var W=ue(165);return W.expression=y().parenthesizeLeftSideOfAccess(_),W.transformFlags|=oe(W.expression)|1|4096,W}function pi(_,W){return _.expression!==W?A(_r(W),_):_}function ae(_,W,Te,cr){var ni=Fe(166,void 0,_,W);return ni.type=cr,ni.questionToken=Te,ni.transformFlags=1,ni}function Xe(_,W,Te,cr,ni){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.type!==ni?A(ae(W,Te,cr,ni),_):_}function Jr(_,W,Te,cr,ni,rt){var yt=Ie(167,_,W,Te,ni,rt);return yt.questionToken=cr&&e.isQuestionToken(cr)?cr:void 0,yt.exclamationToken=cr&&e.isExclamationToken(cr)?cr:void 0,yt.transformFlags|=oe(yt.questionToken)|oe(yt.exclamationToken)|8388608,(e.isComputedPropertyName(yt.name)||e.hasStaticModifier(yt)&&yt.initializer)&&(yt.transformFlags|=4096),(cr||e.modifiersToFlags(yt.modifiers)&2)&&(yt.transformFlags|=1),yt}function ti(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.questionToken!==(ni!==void 0&&e.isQuestionToken(ni)?ni:void 0)||_.exclamationToken!==(ni!==void 0&&e.isExclamationToken(ni)?ni:void 0)||_.type!==rt||_.initializer!==yt?A(Jr(W,Te,cr,ni,rt,yt),_):_}function Ze(_,W,Te,cr,ni,rt){var yt=Be(168,void 0,_,W,cr,ni,rt);return yt.questionToken=Te,yt.transformFlags=1,yt}function Sr(_,W,Te,cr,ni,rt,yt){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.typeParameters!==ni||_.parameters!==rt||_.type!==yt?ge(Ze(W,Te,cr,ni,rt,yt),_):_}function zr(_,W,Te,cr,ni,rt,yt,Xa,vo){var Vs=Re(169,_,W,cr,rt,yt,Xa,vo);return Vs.asteriskToken=Te,Vs.questionToken=ni,Vs.transformFlags|=oe(Vs.asteriskToken)|oe(Vs.questionToken)|1024,ni&&(Vs.transformFlags|=1),e.modifiersToFlags(Vs.modifiers)&256?Te?Vs.transformFlags|=128:Vs.transformFlags|=256:Te&&(Vs.transformFlags|=2048),Vs}function Wr(_,W,Te,cr,ni,rt,yt,Xa,vo,Vs){return _.decorators!==W||_.modifiers!==Te||_.asteriskToken!==cr||_.name!==ni||_.questionToken!==rt||_.typeParameters!==yt||_.parameters!==Xa||_.type!==vo||_.body!==Vs?ze(zr(W,Te,cr,ni,rt,yt,Xa,vo,Vs),_):_}function Je(_,W,Te){var cr=Z(170,_,W,void 0,void 0);return cr.body=Te,cr.transformFlags=oe(Te)|8388608,cr}function xe(_,W,Te,cr){return _.decorators!==W||_.modifier!==Te||_.body!==cr?A(Je(W,Te,cr),_):_}function vr(_,W,Te,cr){var ni=Re(171,_,W,void 0,void 0,Te,void 0,cr);return ni.transformFlags|=1024,ni}function mr(_,W,Te,cr,ni){return _.decorators!==W||_.modifiers!==Te||_.parameters!==cr||_.body!==ni?ze(vr(W,Te,cr,ni),_):_}function Ar(_,W,Te,cr,ni,rt){return Re(172,_,W,Te,void 0,cr,ni,rt)}function Oe(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.type!==rt||_.body!==yt?ze(Ar(W,Te,cr,ni,rt,yt),_):_}function nr(_,W,Te,cr,ni){return Re(173,_,W,Te,void 0,cr,void 0,ni)}function Mr(_,W,Te,cr,ni,rt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.body!==rt?ze(nr(W,Te,cr,ni,rt),_):_}function Pe(_,W,Te){var cr=Be(174,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Ue(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(Pe(W,Te,cr),_):_}function fr(_,W,Te){var cr=Be(175,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function De(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(fr(W,Te,cr),_):_}function gr(_,W,Te,cr){var ni=Be(176,_,W,void 0,void 0,Te,cr);return ni.transformFlags=1,ni}function Vr(_,W,Te,cr,ni){return _.parameters!==cr||_.type!==ni||_.decorators!==W||_.modifiers!==Te?ge(gr(W,Te,cr,ni),_):_}function Tr(_,W){var Te=ue(199);return Te.type=_,Te.literal=W,Te.transformFlags=1,Te}function vi(_,W,Te){return _.type!==W||_.literal!==Te?A(Tr(W,Te),_):_}function Ui(_){return Ir(_)}function Yi(_,W,Te){var cr=ue(177);return cr.assertsModifier=_,cr.parameterName=Mc(W),cr.type=Te,cr.transformFlags=1,cr}function Wi(_,W,Te,cr){return _.assertsModifier!==W||_.parameterName!==Te||_.type!==cr?A(Yi(W,Te,cr),_):_}function ct(_,W){var Te=ue(178);return Te.typeName=Mc(_),Te.typeArguments=W&&y().parenthesizeTypeArguments(ne(W)),Te.transformFlags=1,Te}function Li(_,W,Te){return _.typeName!==W||_.typeArguments!==Te?A(ct(W,Te),_):_}function nt(_,W,Te){var cr=Be(179,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Mt(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(nt(W,Te,cr),_):_}function xt(){for(var _=[],W=0;W0;default:return!0}}function G_(_,W,Te,cr){cr===void 0&&(cr=!1);var ni=e.skipOuterExpressions(_,15),rt,yt;return e.isSuperProperty(ni)?(rt=Ur(),yt=ni):e.isSuperKeyword(ni)?(rt=Ur(),yt=Te!==void 0&&Te<2?e.setTextRange(Er(\"_super\"),ni):ni):e.getEmitFlags(ni)&4096?(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(ni)):e.isPropertyAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Zr(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.name),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):e.isElementAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Ct(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.argumentExpression),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(_)),{target:yt,thisArg:rt}}function Le(_,W){return Zr(hs(qe([nr(void 0,void 0,\"value\",[Wt(void 0,void 0,void 0,_,void 0,void 0,void 0)],bn([Mo(W)]))])),\"value\")}function Nr(_){return _.length>10?Xc(_):e.reduceLeft(_,g.createComma)}function ri(_,W,Te,cr){cr===void 0&&(cr=0);var ni=e.getNameOfDeclaration(_);if(ni&&e.isIdentifier(ni)&&!e.isGeneratedIdentifier(ni)){var rt=e.setParent(e.setTextRange(v(ni),ni),ni.parent);return cr|=e.getEmitFlags(ni),Te||(cr|=48),W||(cr|=1536),cr&&e.setEmitFlags(rt,cr),rt}return Ge(_)}function di(_,W,Te){return ri(_,W,Te,49152)}function Mi(_,W,Te){return ri(_,W,Te,16384)}function st(_,W,Te){return ri(_,W,Te,8192)}function ra(_,W,Te){return ri(_,W,Te)}function Ta(_,W,Te,cr){var ni=Zr(_,e.nodeIsSynthesized(W)?W:v(W));e.setTextRange(ni,W);var rt=0;return cr||(rt|=48),Te||(rt|=1536),rt&&e.setEmitFlags(ni,rt),ni}function ha(_,W,Te,cr){return _&&e.hasSyntacticModifier(W,1)?Ta(_,ri(W),Te,cr):st(W,Te,cr)}function Na(_,W,Te,cr){var ni=co(_,W,0,Te);return ts(_,W,ni,cr)}function In(_){return e.isStringLiteral(_.expression)&&_.expression.text===\"use strict\"}function qo(){return e.startOnNewLine(Mo(Ae(\"use strict\")))}function co(_,W,Te,cr){Te===void 0&&(Te=0),e.Debug.assert(W.length===0,\"Prologue directives should be at the first statement in the target statements array\");for(var ni=!1,rt=_.length;TeXa&&Vs.splice.apply(Vs,Ve([ni,0],W.slice(Xa,vo),!1)),Xa>yt&&Vs.splice.apply(Vs,Ve([cr,0],W.slice(yt,Xa),!1)),yt>rt&&Vs.splice.apply(Vs,Ve([Te,0],W.slice(rt,yt),!1)),rt>0)if(Te===0)Vs.splice.apply(Vs,Ve([0,0],W.slice(0,rt),!1));else{for(var H_=new e.Map,y_=0;y_=0;y_--){var jp=W[y_];H_.has(jp.expression.text)||Vs.unshift(jp)}}return e.isNodeArray(_)?e.setTextRange(ne(Vs,_.hasTrailingComma),_):_}function sc(_,W){var Te,cr;return typeof W==\"number\"?cr=qr(W):cr=W,e.isParameter(_)?Zt(_,_.decorators,cr,_.dotDotDotToken,_.name,_.questionToken,_.type,_.initializer):e.isPropertySignature(_)?Xe(_,cr,_.name,_.questionToken,_.type):e.isPropertyDeclaration(_)?ti(_,_.decorators,cr,_.name,(Te=_.questionToken)!==null&&Te!==void 0?Te:_.exclamationToken,_.type,_.initializer):e.isMethodSignature(_)?Sr(_,cr,_.name,_.questionToken,_.typeParameters,_.parameters,_.type):e.isMethodDeclaration(_)?Wr(_,_.decorators,cr,_.asteriskToken,_.name,_.questionToken,_.typeParameters,_.parameters,_.type,_.body):e.isConstructorDeclaration(_)?mr(_,_.decorators,cr,_.parameters,_.body):e.isGetAccessorDeclaration(_)?Oe(_,_.decorators,cr,_.name,_.parameters,_.type,_.body):e.isSetAccessorDeclaration(_)?Mr(_,_.decorators,cr,_.name,_.parameters,_.body):e.isIndexSignatureDeclaration(_)?Vr(_,_.decorators,cr,_.parameters,_.type):e.isFunctionExpression(_)?Qs(_,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isArrowFunction(_)?ds(_,cr,_.typeParameters,_.parameters,_.type,_.equalsGreaterThanToken,_.body):e.isClassExpression(_)?Uu(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isVariableStatement(_)?rn(_,cr,_.declarationList):e.isFunctionDeclaration(_)?gu(_,_.decorators,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isClassDeclaration(_)?sd(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isInterfaceDeclaration(_)?va(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isTypeAliasDeclaration(_)?qs(_,_.decorators,cr,_.name,_.typeParameters,_.type):e.isEnumDeclaration(_)?ns(_,_.decorators,cr,_.name,_.members):e.isModuleDeclaration(_)?hc(_,_.decorators,cr,_.name,_.body):e.isImportEqualsDeclaration(_)?fd(_,_.decorators,cr,_.isTypeOnly,_.name,_.moduleReference):e.isImportDeclaration(_)?Sp(_,_.decorators,cr,_.importClause,_.moduleSpecifier,_.assertClause):e.isExportAssignment(_)?gd(_,_.decorators,cr,_.expression):e.isExportDeclaration(_)?$l(_,_.decorators,cr,_.isTypeOnly,_.exportClause,_.moduleSpecifier,_.assertClause):e.Debug.assertNever(_)}function bc(_){return _?ne(_):void 0}function Mc(_){return typeof _==\"string\"?Er(_):_}function Yu(_){return typeof _==\"string\"?Ae(_):typeof _==\"number\"?we(_):typeof _==\"boolean\"?_?mi():pe():_}function Rl(_){return typeof _==\"number\"?Ir(_):_}function Lc(_){return _&&e.isNotEmittedStatement(_)?e.setTextRange(he(jn(),_),_):_}}e.createNodeFactory=w;function B(X,$){return X!==$&&e.setTextRange(X,$),X}function E(X,$){return X!==$&&(he(X,$),e.setTextRange(X,$)),X}function Q(X){switch(X){case 343:return\"type\";case 341:return\"returns\";case 342:return\"this\";case 339:return\"enum\";case 330:return\"author\";case 332:return\"class\";case 333:return\"public\";case 334:return\"private\";case 335:return\"protected\";case 336:return\"readonly\";case 337:return\"override\";case 344:return\"template\";case 345:return\"typedef\";case 340:return\"param\";case 347:return\"prop\";case 338:return\"callback\";case 328:return\"augments\";case 329:return\"implements\";default:return e.Debug.fail(\"Unsupported kind: \".concat(e.Debug.formatSyntaxKind(X)))}}var le,N={};function p(X,$){switch(le||(le=e.createScanner(99,!1,0)),X){case 14:le.setText(\"`\"+$+\"`\");break;case 15:le.setText(\"`\"+$+\"${\");break;case 16:le.setText(\"}\"+$+\"${\");break;case 17:le.setText(\"}\"+$+\"`\");break}var A=le.scan();if(A===19&&(A=le.reScanTemplateToken(!1)),le.isUnterminated())return le.setText(void 0),N;var y;switch(A){case 14:case 15:case 16:case 17:y=le.getTokenValue();break}return y===void 0||le.scan()!==1?(le.setText(void 0),N):(le.setText(void 0),y)}function m(X){return oe(X)&-16777217}function G(X,$){return $|X.transformFlags&33562624}function oe(X){if(!X)return 0;var $=X.transformFlags&~K(X.kind);return e.isNamedDeclaration(X)&&e.isPropertyName(X.name)?G(X.name,$):$}function f(X){return X?X.transformFlags:0}function T(X){for(var $=0,A=0,y=X;A=177&&X<=200)return-2;switch(X){case 208:case 209:case 204:return 536887296;case 261:return 589443072;case 164:return 536870912;case 214:return 557748224;case 213:case 256:return 591310848;case 255:return 537165824;case 257:case 226:return 536940544;case 171:return 591306752;case 167:return 570433536;case 169:case 172:case 173:return 574529536;case 130:case 147:case 158:case 143:case 150:case 148:case 133:case 151:case 114:case 163:case 166:case 168:case 174:case 175:case 176:case 258:case 259:return-2;case 205:return 536973312;case 292:return 536903680;case 201:case 202:return 536887296;case 211:case 229:case 350:case 212:case 106:return 536870912;case 206:case 207:return 536870912;default:return 536870912}}e.getTransformFlagsSubtreeExclusions=K;var b=e.createBaseNodeFactory();function se(X){return X.flags|=8,X}var J={createBaseSourceFileNode:function(X){return se(b.createBaseSourceFileNode(X))},createBaseIdentifierNode:function(X){return se(b.createBaseIdentifierNode(X))},createBasePrivateIdentifierNode:function(X){return se(b.createBasePrivateIdentifierNode(X))},createBaseTokenNode:function(X){return se(b.createBaseTokenNode(X))},createBaseNode:function(X){return se(b.createBaseNode(X))}};e.factory=w(4,J);function ie(X,$,A){var y,V,L,P,k,Y,U,j,H,I;e.isString(X)?(L=\"\",P=X,k=X.length,Y=$,U=A):(e.Debug.assert($===\"js\"||$===\"dts\"),L=($===\"js\"?X.javascriptPath:X.declarationPath)||\"\",Y=$===\"js\"?X.javascriptMapPath:X.declarationMapPath,j=function(){return $===\"js\"?X.javascriptText:X.declarationText},H=function(){return $===\"js\"?X.javascriptMapText:X.declarationMapText},k=function(){return j().length},X.buildInfo&&X.buildInfo.bundle&&(e.Debug.assert(A===void 0||typeof A==\"boolean\"),y=A,V=$===\"js\"?X.buildInfo.bundle.js:X.buildInfo.bundle.dts,I=X.oldFileOfCurrentEmit));var l=I?q(e.Debug.checkDefined(V)):R(V,y,k);return l.fileName=L,l.sourceMapPath=Y,l.oldFileOfCurrentEmit=I,j&&H?(Object.defineProperty(l,\"text\",{get:j}),Object.defineProperty(l,\"sourceMapText\",{get:H})):(e.Debug.assert(!I),l.text=P!=null?P:\"\",l.sourceMapText=U),l}e.createUnparsedSourceFile=ie;function R(X,$,A){for(var y,V,L,P,k,Y,U,j,H=0,I=X?X.sections:e.emptyArray;H0&&(U[I-H]=l)}H>0&&(U.length-=H)}}e.moveEmitHelpers=x;function X(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.snippetElement}e.getSnippetElement=X;function $(L,P){var k=a(L);return k.snippetElement=P,L}e.setSnippetElement=$;function A(L){return a(L).flags|=134217728,L}e.ignoreSourceNewlines=A;function y(L,P){var k=a(L);return k.typeNode=P,L}e.setTypeNode=y;function V(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.typeNode}e.getTypeNode=V})(ke||(ke={}));var ke;(function(e){function a(le){var N=le.factory,p=e.memoize(function(){return e.setEmitFlags(N.createTrue(),268435456)}),m=e.memoize(function(){return e.setEmitFlags(N.createFalse(),268435456)});return{getUnscopedHelperName:G,createDecorateHelper:oe,createMetadataHelper:f,createParamHelper:T,createAssignHelper:K,createAwaitHelper:b,createAsyncGeneratorHelper:se,createAsyncDelegatorHelper:J,createAsyncValuesHelper:ie,createRestHelper:R,createAwaiterHelper:q,createExtendsHelper:O,createTemplateObjectHelper:ve,createSpreadArrayHelper:ee,createValuesHelper:he,createReadHelper:F,createGeneratorHelper:x,createCreateBindingHelper:X,createImportStarHelper:$,createImportStarCallbackHelper:A,createImportDefaultHelper:y,createExportStarHelper:V,createClassPrivateFieldGetHelper:L,createClassPrivateFieldSetHelper:P,createClassPrivateFieldInHelper:k};function G(Y){return e.setEmitFlags(N.createIdentifier(Y),4098)}function oe(Y,U,j,H){le.requestEmitHelper(e.decorateHelper);var I=[];return I.push(N.createArrayLiteralExpression(Y,!0)),I.push(U),j&&(I.push(j),H&&I.push(H)),N.createCallExpression(G(\"__decorate\"),void 0,I)}function f(Y,U){return le.requestEmitHelper(e.metadataHelper),N.createCallExpression(G(\"__metadata\"),void 0,[N.createStringLiteral(Y),U])}function T(Y,U,j){return le.requestEmitHelper(e.paramHelper),e.setTextRange(N.createCallExpression(G(\"__param\"),void 0,[N.createNumericLiteral(U+\"\"),Y]),j)}function K(Y){return e.getEmitScriptTarget(le.getCompilerOptions())>=2?N.createCallExpression(N.createPropertyAccessExpression(N.createIdentifier(\"Object\"),\"assign\"),void 0,Y):(le.requestEmitHelper(e.assignHelper),N.createCallExpression(G(\"__assign\"),void 0,Y))}function b(Y){return le.requestEmitHelper(e.awaitHelper),N.createCallExpression(G(\"__await\"),void 0,[Y])}function se(Y,U){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncGeneratorHelper),(Y.emitNode||(Y.emitNode={})).flags|=786432,N.createCallExpression(G(\"__asyncGenerator\"),void 0,[U?N.createThis():N.createVoidZero(),N.createIdentifier(\"arguments\"),Y])}function J(Y){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncDelegator),N.createCallExpression(G(\"__asyncDelegator\"),void 0,[Y])}function ie(Y){return le.requestEmitHelper(e.asyncValues),N.createCallExpression(G(\"__asyncValues\"),void 0,[Y])}function R(Y,U,j,H){le.requestEmitHelper(e.restHelper);for(var I=[],l=0,d=0;d= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n };`},e.metadataHelper={name:\"typescript:metadata\",importName:\"__metadata\",scoped:!1,priority:3,text:`\n var __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n };`},e.paramHelper={name:\"typescript:param\",importName:\"__param\",scoped:!1,priority:4,text:`\n var __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n };`},e.assignHelper={name:\"typescript:assign\",importName:\"__assign\",scoped:!1,priority:1,text:`\n var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };`},e.awaitHelper={name:\"typescript:await\",importName:\"__await\",scoped:!1,text:`\n var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }`},e.asyncGeneratorHelper={name:\"typescript:asyncGenerator\",importName:\"__asyncGenerator\",scoped:!1,dependencies:[e.awaitHelper],text:`\n var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n };`},e.asyncDelegator={name:\"typescript:asyncDelegator\",importName:\"__asyncDelegator\",scoped:!1,dependencies:[e.awaitHelper],text:`\n var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\n };`},e.asyncValues={name:\"typescript:asyncValues\",importName:\"__asyncValues\",scoped:!1,text:`\n var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n };`},e.restHelper={name:\"typescript:rest\",importName:\"__rest\",scoped:!1,text:`\n var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n };`},e.awaiterHelper={name:\"typescript:awaiter\",importName:\"__awaiter\",scoped:!1,priority:5,text:`\n var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };`},e.extendsHelper={name:\"typescript:extends\",importName:\"__extends\",scoped:!1,priority:0,text:`\n var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n })();`},e.templateObjectHelper={name:\"typescript:makeTemplateObject\",importName:\"__makeTemplateObject\",scoped:!1,priority:0,text:`\n var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n };`},e.readHelper={name:\"typescript:read\",importName:\"__read\",scoped:!1,text:`\n var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n };`},e.spreadArrayHelper={name:\"typescript:spreadArray\",importName:\"__spreadArray\",scoped:!1,text:`\n var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };`},e.valuesHelper={name:\"typescript:values\",importName:\"__values\",scoped:!1,text:`\n var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n };`},e.generatorHelper={name:\"typescript:generator\",importName:\"__generator\",scoped:!1,priority:6,text:`\n var __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n };`},e.createBindingHelper={name:\"typescript:commonjscreatebinding\",importName:\"__createBinding\",scoped:!1,priority:1,text:`\n var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n }) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n }));`},e.setModuleDefaultHelper={name:\"typescript:commonjscreatevalue\",importName:\"__setModuleDefault\",scoped:!1,priority:1,text:`\n var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n }) : function(o, v) {\n o[\"default\"] = v;\n });`},e.importStarHelper={name:\"typescript:commonjsimportstar\",importName:\"__importStar\",scoped:!1,dependencies:[e.createBindingHelper,e.setModuleDefaultHelper],priority:2,text:`\n var __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n };`},e.importDefaultHelper={name:\"typescript:commonjsimportdefault\",importName:\"__importDefault\",scoped:!1,text:`\n var __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };`},e.exportStarHelper={name:\"typescript:export-star\",importName:\"__exportStar\",scoped:!1,dependencies:[e.createBindingHelper],priority:2,text:`\n var __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };`},e.classPrivateFieldGetHelper={name:\"typescript:classPrivateFieldGet\",importName:\"__classPrivateFieldGet\",scoped:!1,text:`\n var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n };`},e.classPrivateFieldSetHelper={name:\"typescript:classPrivateFieldSet\",importName:\"__classPrivateFieldSet\",scoped:!1,text:`\n var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n };`},e.classPrivateFieldInHelper={name:\"typescript:classPrivateFieldIn\",importName:\"__classPrivateFieldIn\",scoped:!1,text:`\n var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n };`};var B;function E(){return B||(B=e.arrayToMap([e.decorateHelper,e.metadataHelper,e.paramHelper,e.assignHelper,e.awaitHelper,e.asyncGeneratorHelper,e.asyncDelegator,e.asyncValues,e.restHelper,e.awaiterHelper,e.extendsHelper,e.templateObjectHelper,e.spreadArrayHelper,e.valuesHelper,e.readHelper,e.generatorHelper,e.importStarHelper,e.importDefaultHelper,e.exportStarHelper,e.classPrivateFieldGetHelper,e.classPrivateFieldSetHelper,e.classPrivateFieldInHelper,e.createBindingHelper,e.setModuleDefaultHelper],function(le){return le.name}))}e.getAllUnscopedEmitHelpers=E,e.asyncSuperHelper={name:\"typescript:async-super\",scoped:!0,text:w(oi([`\n const `,\" = name => super[name];\"],[`\n const `,\" = name => super[name];\"]),\"_superIndex\")},e.advancedAsyncSuperHelper={name:\"typescript:advanced-async-super\",scoped:!0,text:w(oi([`\n const `,` = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);`],[`\n const `,` = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);`]),\"_superIndex\")};function Q(le,N){return e.isCallExpression(le)&&e.isIdentifier(le.expression)&&(e.getEmitFlags(le.expression)&4096)!==0&&le.expression.escapedText===N}e.isCallToHelper=Q})(ke||(ke={}));var ke;(function(e){function a(jr){return jr.kind===8}e.isNumericLiteral=a;function C(jr){return jr.kind===9}e.isBigIntLiteral=C;function w(jr){return jr.kind===10}e.isStringLiteral=w;function B(jr){return jr.kind===11}e.isJsxText=B;function E(jr){return jr.kind===13}e.isRegularExpressionLiteral=E;function Q(jr){return jr.kind===14}e.isNoSubstitutionTemplateLiteral=Q;function le(jr){return jr.kind===15}e.isTemplateHead=le;function N(jr){return jr.kind===16}e.isTemplateMiddle=N;function p(jr){return jr.kind===17}e.isTemplateTail=p;function m(jr){return jr.kind===25}e.isDotDotDotToken=m;function G(jr){return jr.kind===27}e.isCommaToken=G;function oe(jr){return jr.kind===39}e.isPlusToken=oe;function f(jr){return jr.kind===40}e.isMinusToken=f;function T(jr){return jr.kind===41}e.isAsteriskToken=T;function K(jr){return jr.kind===53}e.isExclamationToken=K;function b(jr){return jr.kind===57}e.isQuestionToken=b;function se(jr){return jr.kind===58}e.isColonToken=se;function J(jr){return jr.kind===28}e.isQuestionDotToken=J;function ie(jr){return jr.kind===38}e.isEqualsGreaterThanToken=ie;function R(jr){return jr.kind===79}e.isIdentifier=R;function q(jr){return jr.kind===80}e.isPrivateIdentifier=q;function O(jr){return jr.kind===93}e.isExportModifier=O;function ve(jr){return jr.kind===131}e.isAsyncModifier=ve;function ee(jr){return jr.kind===128}e.isAssertsKeyword=ee;function he(jr){return jr.kind===132}e.isAwaitKeyword=he;function F(jr){return jr.kind===145}e.isReadonlyKeyword=F;function x(jr){return jr.kind===124}e.isStaticModifier=x;function X(jr){return jr.kind===126}e.isAbstractModifier=X;function $(jr){return jr.kind===106}e.isSuperKeyword=$;function A(jr){return jr.kind===100}e.isImportKeyword=A;function y(jr){return jr.kind===161}e.isQualifiedName=y;function V(jr){return jr.kind===162}e.isComputedPropertyName=V;function L(jr){return jr.kind===163}e.isTypeParameterDeclaration=L;function P(jr){return jr.kind===164}e.isParameter=P;function k(jr){return jr.kind===165}e.isDecorator=k;function Y(jr){return jr.kind===166}e.isPropertySignature=Y;function U(jr){return jr.kind===167}e.isPropertyDeclaration=U;function j(jr){return jr.kind===168}e.isMethodSignature=j;function H(jr){return jr.kind===169}e.isMethodDeclaration=H;function I(jr){return jr.kind===170}e.isClassStaticBlockDeclaration=I;function l(jr){return jr.kind===171}e.isConstructorDeclaration=l;function d(jr){return jr.kind===172}e.isGetAccessorDeclaration=d;function D(jr){return jr.kind===173}e.isSetAccessorDeclaration=D;function fe(jr){return jr.kind===174}e.isCallSignatureDeclaration=fe;function g(jr){return jr.kind===175}e.isConstructSignatureDeclaration=g;function ne(jr){return jr.kind===176}e.isIndexSignatureDeclaration=ne;function ue(jr){return jr.kind===177}e.isTypePredicateNode=ue;function We(jr){return jr.kind===178}e.isTypeReferenceNode=We;function Fe(jr){return jr.kind===179}e.isFunctionTypeNode=Fe;function Z(jr){return jr.kind===180}e.isConstructorTypeNode=Z;function Be(jr){return jr.kind===181}e.isTypeQueryNode=Be;function ge(jr){return jr.kind===182}e.isTypeLiteralNode=ge;function Re(jr){return jr.kind===183}e.isArrayTypeNode=Re;function ze(jr){return jr.kind===184}e.isTupleTypeNode=ze;function Ee(jr){return jr.kind===197}e.isNamedTupleMember=Ee;function He(jr){return jr.kind===185}e.isOptionalTypeNode=He;function rr(jr){return jr.kind===186}e.isRestTypeNode=rr;function Ie(jr){return jr.kind===187}e.isUnionTypeNode=Ie;function _e(jr){return jr.kind===188}e.isIntersectionTypeNode=_e;function we(jr){return jr.kind===189}e.isConditionalTypeNode=we;function de(jr){return jr.kind===190}e.isInferTypeNode=de;function ye(jr){return jr.kind===191}e.isParenthesizedTypeNode=ye;function Ae(jr){return jr.kind===192}e.isThisTypeNode=Ae;function er(jr){return jr.kind===193}e.isTypeOperatorNode=er;function ir(jr){return jr.kind===194}e.isIndexedAccessTypeNode=ir;function Cr(jr){return jr.kind===195}e.isMappedTypeNode=Cr;function Ye(jr){return jr.kind===196}e.isLiteralTypeNode=Ye;function Br(jr){return jr.kind===200}e.isImportTypeNode=Br;function Er(jr){return jr.kind===199}e.isTemplateLiteralTypeSpan=Er;function Ne(jr){return jr.kind===198}e.isTemplateLiteralTypeNode=Ne;function n(jr){return jr.kind===201}e.isObjectBindingPattern=n;function lr(jr){return jr.kind===202}e.isArrayBindingPattern=lr;function be(jr){return jr.kind===203}e.isBindingElement=be;function Ge(jr){return jr.kind===204}e.isArrayLiteralExpression=Ge;function ur(jr){return jr.kind===205}e.isObjectLiteralExpression=ur;function yr(jr){return jr.kind===206}e.isPropertyAccessExpression=yr;function Ir(jr){return jr.kind===207}e.isElementAccessExpression=Ir;function wr(jr){return jr.kind===208}e.isCallExpression=wr;function Ur(jr){return jr.kind===209}e.isNewExpression=Ur;function ii(jr){return jr.kind===210}e.isTaggedTemplateExpression=ii;function mi(jr){return jr.kind===211}e.isTypeAssertionExpression=mi;function pe(jr){return jr.kind===212}e.isParenthesizedExpression=pe;function or(jr){return jr.kind===213}e.isFunctionExpression=or;function qr(jr){return jr.kind===214}e.isArrowFunction=qr;function si(jr){return jr.kind===215}e.isDeleteExpression=si;function Di(jr){return jr.kind===216}e.isTypeOfExpression=Di;function wi(jr){return jr.kind===217}e.isVoidExpression=wi;function Xi(jr){return jr.kind===218}e.isAwaitExpression=Xi;function et(jr){return jr.kind===219}e.isPrefixUnaryExpression=et;function Gi(jr){return jr.kind===220}e.isPostfixUnaryExpression=Gi;function Wt(jr){return jr.kind===221}e.isBinaryExpression=Wt;function Zt(jr){return jr.kind===222}e.isConditionalExpression=Zt;function _r(jr){return jr.kind===223}e.isTemplateExpression=_r;function pi(jr){return jr.kind===224}e.isYieldExpression=pi;function ae(jr){return jr.kind===225}e.isSpreadElement=ae;function Xe(jr){return jr.kind===226}e.isClassExpression=Xe;function Jr(jr){return jr.kind===227}e.isOmittedExpression=Jr;function ti(jr){return jr.kind===228}e.isExpressionWithTypeArguments=ti;function Ze(jr){return jr.kind===229}e.isAsExpression=Ze;function Sr(jr){return jr.kind===230}e.isNonNullExpression=Sr;function zr(jr){return jr.kind===231}e.isMetaProperty=zr;function Wr(jr){return jr.kind===232}e.isSyntheticExpression=Wr;function Je(jr){return jr.kind===350}e.isPartiallyEmittedExpression=Je;function xe(jr){return jr.kind===351}e.isCommaListExpression=xe;function vr(jr){return jr.kind===233}e.isTemplateSpan=vr;function mr(jr){return jr.kind===234}e.isSemicolonClassElement=mr;function Ar(jr){return jr.kind===235}e.isBlock=Ar;function Oe(jr){return jr.kind===237}e.isVariableStatement=Oe;function nr(jr){return jr.kind===236}e.isEmptyStatement=nr;function Mr(jr){return jr.kind===238}e.isExpressionStatement=Mr;function Pe(jr){return jr.kind===239}e.isIfStatement=Pe;function Ue(jr){return jr.kind===240}e.isDoStatement=Ue;function fr(jr){return jr.kind===241}e.isWhileStatement=fr;function De(jr){return jr.kind===242}e.isForStatement=De;function gr(jr){return jr.kind===243}e.isForInStatement=gr;function Vr(jr){return jr.kind===244}e.isForOfStatement=Vr;function Tr(jr){return jr.kind===245}e.isContinueStatement=Tr;function vi(jr){return jr.kind===246}e.isBreakStatement=vi;function Ui(jr){return jr.kind===247}e.isReturnStatement=Ui;function Yi(jr){return jr.kind===248}e.isWithStatement=Yi;function Wi(jr){return jr.kind===249}e.isSwitchStatement=Wi;function ct(jr){return jr.kind===250}e.isLabeledStatement=ct;function Li(jr){return jr.kind===251}e.isThrowStatement=Li;function nt(jr){return jr.kind===252}e.isTryStatement=nt;function Mt(jr){return jr.kind===253}e.isDebuggerStatement=Mt;function xt(jr){return jr.kind===254}e.isVariableDeclaration=xt;function ut(jr){return jr.kind===255}e.isVariableDeclarationList=ut;function Dt(jr){return jr.kind===256}e.isFunctionDeclaration=Dt;function Rt(jr){return jr.kind===257}e.isClassDeclaration=Rt;function Ii(jr){return jr.kind===258}e.isInterfaceDeclaration=Ii;function Ki(jr){return jr.kind===259}e.isTypeAliasDeclaration=Ki;function Fi(jr){return jr.kind===260}e.isEnumDeclaration=Fi;function ui(jr){return jr.kind===261}e.isModuleDeclaration=ui;function Bt(jr){return jr.kind===262}e.isModuleBlock=Bt;function wt(jr){return jr.kind===263}e.isCaseBlock=wt;function na(jr){return jr.kind===264}e.isNamespaceExportDeclaration=na;function Ai(jr){return jr.kind===265}e.isImportEqualsDeclaration=Ai;function Oi(jr){return jr.kind===266}e.isImportDeclaration=Oi;function ji(jr){return jr.kind===267}e.isImportClause=ji;function Vi(jr){return jr.kind===293}e.isAssertClause=Vi;function at(jr){return jr.kind===294}e.isAssertEntry=at;function At(jr){return jr.kind===268}e.isNamespaceImport=At;function ba(jr){return jr.kind===274}e.isNamespaceExport=ba;function $a(jr){return jr.kind===269}e.isNamedImports=$a;function Qa(jr){return jr.kind===270}e.isImportSpecifier=Qa;function ai(jr){return jr.kind===271}e.isExportAssignment=ai;function Dn(jr){return jr.kind===272}e.isExportDeclaration=Dn;function ka(jr){return jr.kind===273}e.isNamedExports=ka;function Ba(jr){return jr.kind===275}e.isExportSpecifier=Ba;function pn(jr){return jr.kind===276}e.isMissingDeclaration=pn;function Cn(jr){return jr.kind===349}e.isNotEmittedStatement=Cn;function Bi(jr){return jr.kind===354}e.isSyntheticReference=Bi;function kn(jr){return jr.kind===352}e.isMergeDeclarationMarker=kn;function xn(jr){return jr.kind===353}e.isEndOfDeclarationMarker=xn;function Kn(jr){return jr.kind===277}e.isExternalModuleReference=Kn;function Pn(jr){return jr.kind===278}e.isJsxElement=Pn;function eo(jr){return jr.kind===279}e.isJsxSelfClosingElement=eo;function Rn(jr){return jr.kind===280}e.isJsxOpeningElement=Rn;function Da(jr){return jr.kind===281}e.isJsxClosingElement=Da;function bo(jr){return jr.kind===282}e.isJsxFragment=bo;function Ro(jr){return jr.kind===283}e.isJsxOpeningFragment=Ro;function En(jr){return jr.kind===284}e.isJsxClosingFragment=En;function Wn(jr){return jr.kind===285}e.isJsxAttribute=Wn;function to(jr){return jr.kind===286}e.isJsxAttributes=to;function Co(jr){return jr.kind===287}e.isJsxSpreadAttribute=Co;function Ko(jr){return jr.kind===288}e.isJsxExpression=Ko;function Oo(jr){return jr.kind===289}e.isCaseClause=Oo;function no(jr){return jr.kind===290}e.isDefaultClause=no;function $o(jr){return jr.kind===291}e.isHeritageClause=$o;function Pr(jr){return jr.kind===292}e.isCatchClause=Pr;function xi(jr){return jr.kind===296}e.isPropertyAssignment=xi;function St(jr){return jr.kind===297}e.isShorthandPropertyAssignment=St;function pa(jr){return jr.kind===298}e.isSpreadAssignment=pa;function dn(jr){return jr.kind===299}e.isEnumMember=dn;function Jn(jr){return jr.kind===301}e.isUnparsedPrepend=Jn;function Qe(jr){return jr.kind===305}e.isSourceFile=Qe;function Gr(jr){return jr.kind===306}e.isBundle=Gr;function S(jr){return jr.kind===307}e.isUnparsedSource=S;function Ce(jr){return jr.kind===309}e.isJSDocTypeExpression=Ce;function qe(jr){return jr.kind===310}e.isJSDocNameReference=qe;function br(jr){return jr.kind===311}e.isJSDocMemberName=br;function Zr(jr){return jr.kind===324}e.isJSDocLink=Zr;function Si(jr){return jr.kind===325}e.isJSDocLinkCode=Si;function Pi(jr){return jr.kind===326}e.isJSDocLinkPlain=Pi;function Qi(jr){return jr.kind===312}e.isJSDocAllType=Qi;function Ct(jr){return jr.kind===313}e.isJSDocUnknownType=Ct;function sa(jr){return jr.kind===314}e.isJSDocNullableType=sa;function en(jr){return jr.kind===315}e.isJSDocNonNullableType=en;function Wa(jr){return jr.kind===316}e.isJSDocOptionalType=Wa;function qn(jr){return jr.kind===317}e.isJSDocFunctionType=qn;function mo(jr){return jr.kind===318}e.isJSDocVariadicType=mo;function So(jr){return jr.kind===319}e.isJSDocNamepathType=So;function Go(jr){return jr.kind===320}e.isJSDoc=Go;function ys(jr){return jr.kind===322}e.isJSDocTypeLiteral=ys;function Pc(jr){return jr.kind===323}e.isJSDocSignature=Pc;function Vc(jr){return jr.kind===328}e.isJSDocAugmentsTag=Vc;function Kc(jr){return jr.kind===330}e.isJSDocAuthorTag=Kc;function Xs(jr){return jr.kind===332}e.isJSDocClassTag=Xs;function pc(jr){return jr.kind===338}e.isJSDocCallbackTag=pc;function hs(jr){return jr.kind===333}e.isJSDocPublicTag=hs;function tc(jr){return jr.kind===334}e.isJSDocPrivateTag=tc;function ps(jr){return jr.kind===335}e.isJSDocProtectedTag=ps;function Qs(jr){return jr.kind===336}e.isJSDocReadonlyTag=Qs;function js(jr){return jr.kind===337}e.isJSDocOverrideTag=js;function ds(jr){return jr.kind===331}e.isJSDocDeprecatedTag=ds;function Ji(jr){return jr.kind===346}e.isJSDocSeeTag=Ji;function ce(jr){return jr.kind===339}e.isJSDocEnumTag=ce;function Rr(jr){return jr.kind===340}e.isJSDocParameterTag=Rr;function yi(jr){return jr.kind===341}e.isJSDocReturnTag=yi;function qi(jr){return jr.kind===342}e.isJSDocThisTag=qi;function je(jr){return jr.kind===343}e.isJSDocTypeTag=je;function Hr(jr){return jr.kind===344}e.isJSDocTemplateTag=Hr;function pt(jr){return jr.kind===345}e.isJSDocTypedefTag=pt;function Pt(jr){return jr.kind===327}e.isJSDocUnknownTag=Pt;function ga(jr){return jr.kind===347}e.isJSDocPropertyTag=ga;function ua(jr){return jr.kind===329}e.isJSDocImplementsTag=ua;function Xn(jr){return jr.kind===348}e.isSyntaxList=Xn})(ke||(ke={}));var ke;(function(e){function a(lr){return lr.createExportDeclaration(void 0,void 0,!1,lr.createNamedExports([]),void 0)}e.createEmptyExports=a;function C(lr,be,Ge,ur){if(e.isComputedPropertyName(Ge))return e.setTextRange(lr.createElementAccessExpression(be,Ge.expression),ur);var yr=e.setTextRange(e.isMemberName(Ge)?lr.createPropertyAccessExpression(be,Ge):lr.createElementAccessExpression(be,Ge),Ge);return e.getOrCreateEmitNode(yr).flags|=64,yr}e.createMemberAccessForPropertyName=C;function w(lr,be){var Ge=e.parseNodeFactory.createIdentifier(lr||\"React\");return e.setParent(Ge,e.getParseTreeNode(be)),Ge}function B(lr,be,Ge){if(e.isQualifiedName(be)){var ur=B(lr,be.left,Ge),yr=lr.createIdentifier(e.idText(be.right));return yr.escapedText=be.right.escapedText,lr.createPropertyAccessExpression(ur,yr)}else return w(e.idText(be),Ge)}function E(lr,be,Ge,ur){return be?B(lr,be,ur):lr.createPropertyAccessExpression(w(Ge,ur),\"createElement\")}e.createJsxFactoryExpression=E;function Q(lr,be,Ge,ur){return be?B(lr,be,ur):lr.createPropertyAccessExpression(w(Ge,ur),\"Fragment\")}function le(lr,be,Ge,ur,yr,Ir){var wr=[Ge];if(ur&&wr.push(ur),yr&&yr.length>0)if(ur||wr.push(lr.createNull()),yr.length>1)for(var Ur=0,ii=yr;Ur0)if(yr.length>1)for(var mi=0,pe=yr;mi=e.ModuleKind.ES2015&&ii<=e.ModuleKind.ESNext||Ge.impliedNodeFormat===e.ModuleKind.ESNext){var mi=e.getEmitHelpers(Ge);if(mi){for(var pe=[],or=0,qr=mi;or0?Di[or-1]:void 0;return e.Debug.assertEqual(qr[or],be),Di[or]=pe.onEnter(si[or],et,Xi),qr[or]=Ur(pe,be),or}lr.enter=be;function Ge(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ge),e.Debug.assertIsDefined(pe.onLeft),qr[or]=Ur(pe,Ge);var et=pe.onLeft(si[or].left,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.left=Ge;function ur(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],ur),e.Debug.assertIsDefined(pe.onOperator),qr[or]=Ur(pe,ur),pe.onOperator(si[or].operatorToken,Di[or],si[or]),or}lr.operator=ur;function yr(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],yr),e.Debug.assertIsDefined(pe.onRight),qr[or]=Ur(pe,yr);var et=pe.onRight(si[or].right,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.right=yr;function Ir(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ir),qr[or]=Ur(pe,Ir);var et=pe.onExit(si[or],Di[or]);if(or>0){if(or--,pe.foldState){var Gi=qr[or]===Ir?\"right\":\"left\";Di[or]=pe.foldState(Di[or],et,Gi)}}else wi.value=et;return or}lr.exit=Ir;function wr(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],wr),or}lr.done=wr;function Ur(pe,or){switch(or){case be:if(pe.onLeft)return Ge;case Ge:if(pe.onOperator)return ur;case ur:if(pe.onRight)return yr;case yr:return Ir;case Ir:return wr;case wr:return wr;default:e.Debug.fail(\"Invalid state\")}}lr.nextState=Ur;function ii(pe,or,qr,si,Di){return pe++,or[pe]=be,qr[pe]=Di,si[pe]=void 0,pe}function mi(pe,or,qr){if(e.Debug.shouldAssert(2))for(;pe>=0;)e.Debug.assert(or[pe]!==qr,\"Circular traversal detected.\"),pe--}})(Er||(Er={}));var Ne=function(){function lr(be,Ge,ur,yr,Ir,wr){this.onEnter=be,this.onLeft=Ge,this.onOperator=ur,this.onRight=yr,this.onExit=Ir,this.foldState=wr}return lr}();function n(lr,be,Ge,ur,yr,Ir){var wr=new Ne(lr,be,Ge,ur,yr,Ir);return Ur;function Ur(ii,mi){for(var pe={value:void 0},or=[Er.enter],qr=[ii],si=[void 0],Di=0;or[Di]!==Er.done;)Di=or[Di](wr,Di,or,qr,si,pe,mi);return e.Debug.assertEqual(Di,0),pe.value}}e.createBinaryExpressionTrampoline=n})(ke||(ke={}));var ke;(function(e){function a(C,w){return w?e.setTextRangePosEnd(C,w.pos,w.end):C}e.setTextRange=a})(ke||(ke={}));var ke;(function(e){var a;(function(d){d[d.None=0]=\"None\",d[d.Yield=1]=\"Yield\",d[d.Await=2]=\"Await\",d[d.Type=4]=\"Type\",d[d.IgnoreMissingOpenBrace=16]=\"IgnoreMissingOpenBrace\",d[d.JSDoc=32]=\"JSDoc\"})(a||(a={}));var C;(function(d){d[d.TryParse=0]=\"TryParse\",d[d.Lookahead=1]=\"Lookahead\",d[d.Reparse=2]=\"Reparse\"})(C||(C={}));var w,B,E,Q,le;e.parseBaseNodeFactory={createBaseSourceFileNode:function(d){return new(le||(le=e.objectAllocator.getSourceFileConstructor()))(d,-1,-1)},createBaseIdentifierNode:function(d){return new(E||(E=e.objectAllocator.getIdentifierConstructor()))(d,-1,-1)},createBasePrivateIdentifierNode:function(d){return new(Q||(Q=e.objectAllocator.getPrivateIdentifierConstructor()))(d,-1,-1)},createBaseTokenNode:function(d){return new(B||(B=e.objectAllocator.getTokenConstructor()))(d,-1,-1)},createBaseNode:function(d){return new(w||(w=e.objectAllocator.getNodeConstructor()))(d,-1,-1)}},e.parseNodeFactory=e.createNodeFactory(1,e.parseBaseNodeFactory);function N(d,D){return D&&d(D)}function p(d,D,fe){if(fe){if(D)return D(fe);for(var g=0,ne=fe;g=0;--Z)g.push(ue[Z]),ne.push(We)}else{var Fe=D(ue,We);if(Fe){if(Fe===\"skip\")continue;return Fe}if(ue.kind>=161)for(var Be=0,ge=ie(ue);Be=vs.pos}),Qu=Is>=0?e.findIndex(Mi,function(sc){return sc.start>=Ac.pos},Is):-1;Is>=0&&e.addRange(_e,Mi,Is,Qu>=0?Qu:void 0),Dt(function(){var sc=Er;for(Er|=32768,D.setTextPos(Ac.pos),Tr();De()!==1;){var bc=D.getStartPos(),Mc=Ct(0,nc);if(di.push(Mc),bc===D.getStartPos()&&Tr(),st>=0){var Yu=Le.statements[st];if(Mc.end===Yu.pos)break;Mc.end>Yu.pos&&(st=co(Le.statements,st+1))}}Er=sc},2),ra=st>=0?qo(Le.statements,st):-1};ra!==-1;)Ta();if(st>=0){var ha=Le.statements[st];e.addRange(di,Le.statements,st);var Na=e.findIndex(Mi,function(vs){return vs.start>=ha.pos});Na>=0&&e.addRange(_e,Mi,Na)}return de=Nr,ge.updateSourceFile(Le,e.setTextRange(ge.createNodeArray(di),Le.statements));function In(vs){return!(vs.flags&32768)&&!!(vs.transformFlags&16777216)}function qo(vs,Ac){for(var Is=Ac;Is116}function Fi(){return De()===79?!0:De()===125&&Wr()||De()===132&&mr()?!1:De()>116}function ui(Le,Nr,ri){return ri===void 0&&(ri=!0),De()===Le?(ri&&Tr(),!0):(Nr?Ar(Nr):Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}var Bt=Object.keys(e.textToKeywordObj).filter(function(Le){return Le.length>2});function wt(Le){var Nr;if(e.isTaggedTemplateExpression(Le)){nr(e.skipTrivia(Ee,Le.template.pos),Le.template.end,e.Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings);return}var ri=e.isIdentifier(Le)?e.idText(Le):void 0;if(!ri||!e.isIdentifierText(ri,He)){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}var di=e.skipTrivia(Ee,Le.pos);switch(ri){case\"const\":case\"let\":case\"var\":nr(di,Le.end,e.Diagnostics.Variable_declaration_not_allowed_at_this_location);return;case\"declare\":return;case\"interface\":na(e.Diagnostics.Interface_name_cannot_be_0,e.Diagnostics.Interface_must_be_given_a_name,18);return;case\"is\":nr(di,D.getTextPos(),e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case\"module\":case\"namespace\":na(e.Diagnostics.Namespace_name_cannot_be_0,e.Diagnostics.Namespace_must_be_given_a_name,18);return;case\"type\":na(e.Diagnostics.Type_alias_name_cannot_be_0,e.Diagnostics.Type_alias_must_be_given_a_name,63);return}var Mi=(Nr=e.getSpellingSuggestion(ri,Bt,function(st){return st}))!==null&&Nr!==void 0?Nr:Ai(ri);if(Mi){nr(di,Le.end,e.Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0,Mi);return}De()!==0&&nr(di,Le.end,e.Diagnostics.Unexpected_keyword_or_identifier)}function na(Le,Nr,ri){De()===ri?Ar(Nr):Ar(Le,D.getTokenValue())}function Ai(Le){for(var Nr=0,ri=Bt;Nrdi.length+2&&e.startsWith(Le,di))return\"\".concat(di,\" \").concat(Le.slice(di.length))}}function Oi(Le,Nr,ri){if(De()===59&&!D.hasPrecedingLineBreak()){Ar(e.Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(De()===20){Ar(e.Diagnostics.Cannot_start_a_function_call_in_a_type_annotation),Tr();return}if(Nr&&!ka()){ri?Ar(e.Diagnostics._0_expected,e.tokenToString(26)):Ar(e.Diagnostics.Expected_for_property_initializer);return}if(!Ba()){if(ri){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}wt(Le)}}function ji(Le){return De()===Le?(vi(),!0):(Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}function Vi(Le,Nr,ri,di){if(De()===Nr){Tr();return}var Mi=Ar(e.Diagnostics._0_expected,e.tokenToString(Nr));!ri||Mi&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,di,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,e.tokenToString(Le),e.tokenToString(Nr)))}function at(Le){return De()===Le?(Tr(),!0):!1}function At(Le){if(De()===Le)return ai()}function ba(Le){if(De()===Le)return Dn()}function $a(Le,Nr,ri){return At(Le)||kn(Le,!1,Nr||e.Diagnostics._0_expected,ri||e.tokenToString(Le))}function Qa(Le){return ba(Le)||kn(Le,!1,e.Diagnostics._0_expected,e.tokenToString(Le))}function ai(){var Le=Ue(),Nr=De();return Tr(),Bi(ge.createToken(Nr),Le)}function Dn(){var Le=Ue(),Nr=De();return vi(),Bi(ge.createToken(Nr),Le)}function ka(){return De()===26?!0:De()===19||De()===1||D.hasPrecedingLineBreak()}function Ba(){return ka()?(De()===26&&Tr(),!0):!1}function pn(){return Ba()||ui(26)}function Cn(Le,Nr,ri,di){var Mi=ge.createNodeArray(Le,di);return e.setTextRangePosEnd(Mi,Nr,ri!=null?ri:D.getStartPos()),Mi}function Bi(Le,Nr,ri){return e.setTextRangePosEnd(Le,Nr,ri!=null?ri:D.getStartPos()),Er&&(Le.flags|=Er),n&&(n=!1,Le.flags|=131072),Le}function kn(Le,Nr,ri,di){Nr?Oe(D.getStartPos(),0,ri,di):ri&&Ar(ri,di);var Mi=Ue(),st=Le===79?ge.createIdentifier(\"\",void 0,void 0):e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,\"\",\"\",void 0):Le===8?ge.createNumericLiteral(\"\",void 0):Le===10?ge.createStringLiteral(\"\",void 0):Le===276?ge.createMissingDeclaration():ge.createToken(Le);return Bi(st,Mi)}function xn(Le){var Nr=er.get(Le);return Nr===void 0&&er.set(Le,Nr=Le),Nr}function Kn(Le,Nr,ri){if(Le){Cr++;var di=Ue(),Mi=De(),st=xn(D.getTokenValue());return gr(),Bi(ge.createIdentifier(st,void 0,Mi),di)}if(De()===80)return Ar(ri||e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),Kn(!0);if(De()===0&&D.tryScan(function(){return D.reScanInvalidIdentifier()===79}))return Kn(!0);Cr++;var ra=De()===1,Ta=D.isReservedWord(),ha=D.getTokenText(),Na=Ta?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return kn(79,ra,Nr||Na,ha)}function Pn(Le){return Kn(Ki(),void 0,Le)}function eo(Le,Nr){return Kn(Fi(),Le,Nr)}function Rn(Le){return Kn(e.tokenIsIdentifierOrKeyword(De()),Le)}function Da(){return e.tokenIsIdentifierOrKeyword(De())||De()===10||De()===8}function bo(){return e.tokenIsIdentifierOrKeyword(De())||De()===10}function Ro(Le){if(De()===10||De()===8){var Nr=ga();return Nr.text=xn(Nr.text),Nr}return Le&&De()===22?Wn():De()===80?Co():Rn()}function En(){return Ro(!0)}function Wn(){var Le=Ue();ui(22);var Nr=Wt(ns);return ui(23),Bi(ge.createComputedPropertyName(Nr),Le)}function to(Le){var Nr=ir.get(Le);return Nr===void 0&&ir.set(Le,Nr=Le),Nr}function Co(){var Le=Ue(),Nr=ge.createPrivateIdentifier(to(D.getTokenText()));return Tr(),Bi(Nr,Le)}function Ko(Le){return De()===Le&&Ii(no)}function Oo(){return Tr(),D.hasPrecedingLineBreak()?!1:St()}function no(){switch(De()){case 85:return Tr()===92;case 93:return Tr(),De()===88?Rt(pa):De()===152?Rt(Pr):$o();case 88:return pa();case 124:case 136:case 149:return Tr(),St();default:return Oo()}}function $o(){return De()!==41&&De()!==127&&De()!==18&&St()}function Pr(){return Tr(),$o()}function xi(){return e.isModifierKind(De())&&Ii(no)}function St(){return De()===22||De()===18||De()===41||De()===25||Da()}function pa(){return Tr(),De()===84||De()===98||De()===118||De()===126&&Rt(wl)||De()===131&&Rt(Iu)}function dn(Le,Nr){var ri=sa(Le);if(ri)return!0;switch(Le){case 0:case 1:case 3:return!(De()===26&&Nr)&&Ku();case 2:return De()===82||De()===88;case 4:return Rt(bn);case 5:return Rt(Lp)||De()===26&&!Nr;case 6:return De()===22||Da();case 12:switch(De()){case 22:case 41:case 25:case 24:return!0;default:return Da()}case 18:return Da();case 9:return De()===22||De()===25||Da();case 24:return bo();case 7:return De()===18?Rt(Jn):Nr?Fi()&&!Ce():Cu()&&!Ce();case 8:return Hc();case 10:return De()===27||De()===25||Hc();case 19:return De()===101||Fi();case 15:switch(De()){case 27:case 24:return!0}case 11:return De()===25||qs();case 16:return pu(!1);case 17:return pu(!0);case 20:case 21:return De()===27||Xr();case 22:return Ll();case 23:return e.tokenIsIdentifierOrKeyword(De());case 13:return e.tokenIsIdentifierOrKeyword(De())||De()===18;case 14:return!0}return e.Debug.fail(\"Non-exhaustive case in 'isListElement'.\")}function Jn(){if(e.Debug.assert(De()===18),Tr()===19){var Le=Tr();return Le===27||Le===18||Le===94||Le===117}return!0}function Qe(){return Tr(),Fi()}function Gr(){return Tr(),e.tokenIsIdentifierOrKeyword(De())}function S(){return Tr(),e.tokenIsIdentifierOrKeywordOrGreaterThan(De())}function Ce(){return De()===117||De()===94?Rt(qe):!1}function qe(){return Tr(),qs()}function br(){return Tr(),Xr()}function Zr(Le){if(De()===1)return!0;switch(Le){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return De()===19;case 3:return De()===19||De()===82||De()===88;case 7:return De()===18||De()===94||De()===117;case 8:return Si();case 19:return De()===31||De()===20||De()===18||De()===94||De()===117;case 11:return De()===21||De()===26;case 15:case 21:case 10:return De()===23;case 17:case 16:case 18:return De()===21||De()===23;case 20:return De()!==27;case 22:return De()===18||De()===19;case 13:return De()===31||De()===43;case 14:return De()===29&&Rt(fi);default:return!1}}function Si(){return!!(ka()||F_(De())||De()===38)}function Pi(){for(var Le=0;Le<25;Le++)if(Ye&1<=0)}function tc(Le){return Le===6?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function ps(){var Le=Cn([],Ue());return Le.isMissingList=!0,Le}function Qs(Le){return!!Le.isMissingList}function js(Le,Nr,ri,di){if(ui(ri)){var Mi=hs(Le,Nr);return ui(di),Mi}return ps()}function ds(Le,Nr){for(var ri=Ue(),di=Le?Rn(Nr):eo(Nr),Mi=Ue();at(24);){if(De()===29){di.jsdocDotPos=Mi;break}Mi=Ue(),di=Bi(ge.createQualifiedName(di,ce(Le,!1)),ri)}return di}function Ji(Le,Nr){return Bi(ge.createQualifiedName(Le,Nr),Le.pos)}function ce(Le,Nr){if(D.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(De())){var ri=Rt(Pu);if(ri)return kn(79,!0,e.Diagnostics.Identifier_expected)}if(De()===80){var di=Co();return Nr?di:kn(79,!0,e.Diagnostics.Identifier_expected)}return Le?Rn():eo()}function Rr(Le){var Nr=Ue(),ri=[],di;do di=Pt(Le),ri.push(di);while(di.literal.kind===16);return Cn(ri,Nr)}function yi(Le){var Nr=Ue();return Bi(ge.createTemplateExpression(ua(Le),Rr(Le)),Nr)}function qi(){var Le=Ue();return Bi(ge.createTemplateLiteralType(ua(!1),je()),Le)}function je(){var Le=Ue(),Nr=[],ri;do ri=Hr(),Nr.push(ri);while(ri.literal.kind===16);return Cn(Nr,Le)}function Hr(){var Le=Ue();return Bi(ge.createTemplateLiteralTypeSpan(Aa(),pt(!1)),Le)}function pt(Le){return De()===19?(Wi(Le),Xn()):$a(17,e.Diagnostics._0_expected,e.tokenToString(19))}function Pt(Le){var Nr=Ue();return Bi(ge.createTemplateSpan(Wt(ns),pt(Le)),Nr)}function ga(){return fo(De())}function ua(Le){Le&&ct();var Nr=fo(De());return e.Debug.assert(Nr.kind===15,\"Template head has wrong token kind\"),Nr}function Xn(){var Le=fo(De());return e.Debug.assert(Le.kind===16||Le.kind===17,\"Template fragment has wrong token kind\"),Le}function jr(Le){var Nr=Le===14||Le===17,ri=D.getTokenText();return ri.substring(1,ri.length-(D.isUnterminated()?0:Nr?1:2))}function fo(Le){var Nr=Ue(),ri=e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,D.getTokenValue(),jr(Le),D.getTokenFlags()&2048):Le===8?ge.createNumericLiteral(D.getTokenValue(),D.getNumericLiteralFlags()):Le===10?ge.createStringLiteral(D.getTokenValue(),void 0,D.hasExtendedUnicodeEscape()):e.isLiteralKind(Le)?ge.createLiteralLikeNode(Le,D.getTokenValue()):e.Debug.fail();return D.hasExtendedUnicodeEscape()&&(ri.hasExtendedUnicodeEscape=!0),D.isUnterminated()&&(ri.isUnterminated=!0),Tr(),Bi(ri,Nr)}function xs(){return ds(!0,e.Diagnostics.Type_expected)}function Fo(){if(!D.hasPrecedingLineBreak()&&Li()===29)return js(20,Aa,29,31)}function ko(){var Le=Ue();return Bi(ge.createTypeReferenceNode(xs(),Fo()),Le)}function Ao(Le){switch(Le.kind){case 178:return e.nodeIsMissing(Le.typeName);case 179:case 180:{var Nr=Le,ri=Nr.parameters,di=Nr.type;return Qs(ri)||Ao(di)}case 191:return Ao(Le.type);default:return!1}}function Ms(Le){return Tr(),Bi(ge.createTypePredicateNode(void 0,Le,Aa()),Le.pos)}function Bs(){var Le=Ue();return Tr(),Bi(ge.createThisTypeNode(),Le)}function xc(){var Le=Ue();return Tr(),Bi(ge.createJSDocAllType(),Le)}function su(){var Le=Ue();return Tr(),Bi(ge.createJSDocNonNullableType(yc(),!1),Le)}function tl(){var Le=Ue();return Tr(),De()===27||De()===19||De()===21||De()===31||De()===63||De()===51?Bi(ge.createJSDocUnknownType(),Le):Bi(ge.createJSDocNullableType(Aa(),!1),Le)}function Zc(){var Le=Ue(),Nr=fr();if(Rt(v)){Tr();var ri=Ei(36),di=vc(58,!1);return wr(Bi(ge.createJSDocFunctionType(ri,di),Le),Nr)}return Bi(ge.createTypeReferenceNode(Rn(),void 0),Le)}function Rf(){var Le=Ue(),Nr;return(De()===108||De()===103)&&(Nr=Rn(),ui(58)),Bi(ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,al(),void 0),Le)}function al(){D.setInJSDocType(!0);var Le=Ue();if(at(141)){var Nr=ge.createJSDocNamepathType(void 0);e:for(;;)switch(De()){case 19:case 1:case 27:case 5:break e;default:vi()}return D.setInJSDocType(!1),Bi(Nr,Le)}var ri=at(25),di=gu();return D.setInJSDocType(!1),ri&&(di=Bi(ge.createJSDocVariadicType(di),Le)),De()===63?(Tr(),Bi(ge.createJSDocOptionalType(di),Le)):di}function Jo(){var Le=Ue();ui(112);var Nr=ds(!0),ri=D.hasPrecedingLineBreak()?void 0:m_();return Bi(ge.createTypeQueryNode(Nr,ri),Le)}function eu(){var Le=Ue(),Nr=Fc(),ri=eo(),di,Mi;at(94)&&(Xr()||!qs()?di=Aa():Mi=kp());var st=at(63)?Aa():void 0,ra=ge.createTypeParameterDeclaration(Nr,ri,di,st);return ra.expression=Mi,Bi(ra,Le)}function Ws(){if(De()===29)return js(19,eu,29,31)}function pu(Le){return De()===25||Hc()||e.isModifierKind(De())||De()===59||Xr(!Le)}function Uu(Le){var Nr=Ol(e.Diagnostics.Private_identifiers_cannot_be_used_as_parameters);return e.getFullWidth(Nr)===0&&!e.some(Le)&&e.isModifierKind(De())&&Tr(),Nr}function Ql(){return Ki()||De()===22||De()===18}function xl(Le){return du(Le)}function Ya(Le){return du(Le,!1)}function du(Le,Nr){Nr===void 0&&(Nr=!0);var ri=Ue(),di=fr(),Mi=Le?Jr(gl):gl();if(De()===108){var st=ge.createParameterDeclaration(Mi,void 0,void 0,Kn(!0),void 0,va(),void 0);return Mi&&Mr(Mi[0],e.Diagnostics.Decorators_may_not_be_applied_to_this_parameters),wr(Bi(st,ri),di)}var ra=Ne;Ne=!1;var Ta=Fc(),ha=At(25);if(!(!Nr&&!Ql())){var Na=wr(Bi(ge.createParameterDeclaration(Mi,Ta,ha,Uu(Ta),At(57),va(),nl()),ri),di);return Ne=ra,Na}}function vc(Le,Nr){if(Kr(Le,Nr))return _r(gu)}function Kr(Le,Nr){return Le===38?(ui(Le),!0):at(58)?!0:Nr&&De()===38?(Ar(e.Diagnostics._0_expected,e.tokenToString(58)),Tr(),!0):!1}function _i(Le,Nr){var ri=Wr(),di=mr();Di(!!(Le&1)),Xi(!!(Le&2));var Mi=Le&32?hs(17,Rf):hs(16,function(){return Nr?xl(di):Ya(di)});return Di(ri),Xi(di),Mi}function Ei(Le){if(!ui(20))return ps();var Nr=_i(Le,!0);return ui(21),Nr}function tt(){at(27)||pn()}function kt(Le){var Nr=Ue(),ri=fr();Le===175&&ui(103);var di=Ws(),Mi=Ei(4),st=vc(58,!0);tt();var ra=Le===174?ge.createCallSignature(di,Mi,st):ge.createConstructSignature(di,Mi,st);return wr(Bi(ra,Nr),ri)}function bt(){return De()===22&&Rt(ia)}function ia(){if(Tr(),De()===25||De()===23)return!0;if(e.isModifierKind(De())){if(Tr(),Fi())return!0}else if(Fi())Tr();else return!1;return De()===58||De()===27?!0:De()!==57?!1:(Tr(),De()===58||De()===27||De()===23)}function Xt(Le,Nr,ri,di){var Mi=js(16,function(){return xl(!1)},22,23),st=va();tt();var ra=ge.createIndexSignature(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}function Za(Le,Nr,ri){var di=En(),Mi=At(57),st;if(De()===20||De()===29){var ra=Ws(),Ta=Ei(4),ha=vc(58,!0);st=ge.createMethodSignature(ri,di,Mi,ra,Ta,ha)}else{var ha=va();st=ge.createPropertySignature(ri,di,Mi,ha),De()===63&&(st.initializer=nl())}return tt(),wr(Bi(st,Le),Nr)}function bn(){if(De()===20||De()===29||De()===136||De()===149)return!0;for(var Le=!1;e.isModifierKind(De());)Le=!0,Tr();return De()===22?!0:(Da()&&(Le=!0,Tr()),Le?De()===20||De()===29||De()===57||De()===58||De()===27||ka():!1)}function _a(){if(De()===20||De()===29)return kt(174);if(De()===103&&Rt(qa))return kt(175);var Le=Ue(),Nr=fr(),ri=Fc();return Ko(136)?Gu(Le,Nr,void 0,ri,172):Ko(149)?Gu(Le,Nr,void 0,ri,173):bt()?Xt(Le,Nr,void 0,ri):Za(Le,Nr,ri)}function qa(){return Tr(),De()===20||De()===29}function rn(){return Tr()===24}function jn(){switch(Tr()){case 20:case 29:case 24:return!0}return!1}function Mo(){var Le=Ue();return Bi(ge.createTypeLiteralNode(ho()),Le)}function ho(){var Le;return ui(18)?(Le=Qi(4,_a),ui(19)):Le=ps(),Le}function gs(){return Tr(),De()===39||De()===40?Tr()===145:(De()===145&&Tr(),De()===22&&Qe()&&Tr()===101)}function Se(){var Le=Ue(),Nr=Rn();ui(101);var ri=Aa();return Bi(ge.createTypeParameterDeclaration(void 0,Nr,ri,void 0),Le)}function hr(){var Le=Ue();ui(18);var Nr;(De()===145||De()===39||De()===40)&&(Nr=ai(),Nr.kind!==145&&ui(145)),ui(22);var ri=Se(),di=at(127)?Aa():void 0;ui(23);var Mi;(De()===57||De()===39||De()===40)&&(Mi=ai(),Mi.kind!==57&&ui(57));var st=va();pn();var ra=Qi(4,_a);return ui(19),Bi(ge.createMappedTypeNode(Nr,ri,di,Mi,st,ra),Le)}function Or(){var Le=Ue();if(at(25))return Bi(ge.createRestTypeNode(Aa()),Le);var Nr=Aa();if(e.isJSDocNullableType(Nr)&&Nr.pos===Nr.type.pos){var ri=ge.createOptionalTypeNode(Nr.type);return e.setTextRange(ri,Nr),ri.flags=Nr.flags,ri}return Nr}function ki(){return Tr()===58||De()===57&&Tr()===58}function dt(){return De()===25?e.tokenIsIdentifierOrKeyword(Tr())&&ki():e.tokenIsIdentifierOrKeyword(De())&&ki()}function la(){if(Rt(dt)){var Le=Ue(),Nr=fr(),ri=At(25),di=Rn(),Mi=At(57);ui(58);var st=Or(),ra=ge.createNamedTupleMember(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}return Or()}function wa(){var Le=Ue();return Bi(ge.createTupleTypeNode(js(21,la,22,23)),Le)}function On(){var Le=Ue();ui(20);var Nr=Aa();return ui(21),Bi(ge.createParenthesizedType(Nr),Le)}function No(){var Le;if(De()===126){var Nr=Ue();Tr();var ri=Bi(ge.createToken(126),Nr);Le=Cn([ri],Nr)}return Le}function jo(){var Le=Ue(),Nr=fr(),ri=No(),di=at(103),Mi=Ws(),st=Ei(4),ra=vc(38,!1),Ta=di?ge.createConstructorTypeNode(ri,Mi,st,ra):ge.createFunctionTypeNode(Mi,st,ra);return di||(Ta.modifiers=ri),wr(Bi(Ta,Le),Nr)}function po(){var Le=ai();return De()===24?void 0:Le}function Gn(Le){var Nr=Ue();Le&&Tr();var ri=De()===110||De()===95||De()===104?ai():fo(De());return Le&&(ri=Bi(ge.createPrefixUnaryExpression(40,ri),Nr)),Bi(ge.createLiteralTypeNode(ri),Nr)}function $n(){return Tr(),De()===100}function Ho(){var Le=Ue(),Nr=D.getTokenPos();ui(18);var ri=D.hasPrecedingLineBreak();ui(129),ui(58);var di=Ha(!0);if(!ui(19)){var Mi=e.lastOrUndefined(_e);Mi&&Mi.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,Nr,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,\"{\",\"}\"))}return Bi(ge.createImportTypeAssertionContainer(di,ri),Le)}function Zo(){ze|=2097152;var Le=Ue(),Nr=at(112);ui(100),ui(20);var ri=Aa(),di;at(27)&&(di=Ho()),ui(21);var Mi=at(24)?xs():void 0,st=Fo();return Bi(ge.createImportTypeNode(ri,di,Mi,st,Nr),Le)}function Es(){return Tr(),De()===8||De()===9}function yc(){switch(De()){case 130:case 155:case 150:case 147:case 158:case 151:case 133:case 153:case 143:case 148:return Ii(po)||ko();case 66:D.reScanAsteriskEqualsToken();case 41:return xc();case 60:D.reScanQuestionToken();case 57:return tl();case 98:return Zc();case 53:return su();case 14:case 10:case 8:case 9:case 110:case 95:case 104:return Gn();case 40:return Rt(Es)?Gn(!0):ko();case 114:return ai();case 108:{var Le=Bs();return De()===139&&!D.hasPrecedingLineBreak()?Ms(Le):Le}case 112:return Rt($n)?Zo():Jo();case 18:return Rt(gs)?hr():Mo();case 22:return wa();case 20:return On();case 100:return Zo();case 128:return Rt(Pu)?sd():ko();case 15:return qi();default:return ko()}}function Xr(Le){switch(De()){case 130:case 155:case 150:case 147:case 158:case 133:case 145:case 151:case 154:case 114:case 153:case 104:case 108:case 112:case 143:case 18:case 22:case 29:case 51:case 50:case 103:case 10:case 8:case 9:case 110:case 95:case 148:case 41:case 57:case 53:case 25:case 137:case 100:case 128:case 14:case 15:return!0;case 98:return!Le;case 40:return!Le&&Rt(Es);case 20:return!Le&&Rt(Ls);default:return Fi()}}function Ls(){return Tr(),De()===21||pu(!1)||Xr()}function Ic(){for(var Le=Ue(),Nr=yc();!D.hasPrecedingLineBreak();)switch(De()){case 53:Tr(),Nr=Bi(ge.createJSDocNonNullableType(Nr,!0),Le);break;case 57:if(Rt(br))return Nr;Tr(),Nr=Bi(ge.createJSDocNullableType(Nr,!0),Le);break;case 22:if(ui(22),Xr()){var ri=Aa();ui(23),Nr=Bi(ge.createIndexedAccessTypeNode(Nr,ri),Le)}else ui(23),Nr=Bi(ge.createArrayTypeNode(Nr),Le);break;default:return Nr}return Nr}function zu(Le){var Nr=Ue();return ui(Le),Bi(ge.createTypeOperatorNode(Le,vp()),Nr)}function vf(){if(at(94)){var Le=pi(Aa);if(xe()||De()!==57)return Le}}function P_(){var Le=Ue(),Nr=eo(),ri=Ii(vf),di=ge.createTypeParameterDeclaration(void 0,Nr,ri);return Bi(di,Le)}function El(){var Le=Ue();return ui(137),Bi(ge.createInferTypeNode(P_()),Le)}function vp(){var Le=De();switch(Le){case 140:case 154:case 145:return zu(Le);case 137:return El()}return _r(Ic)}function oo(Le){if(Cl()){var Nr=jo(),ri=void 0;return e.isFunctionTypeNode(Nr)?ri=Le?e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:ri=Le?e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,Mr(Nr,ri),Nr}}function I_(Le,Nr,ri){var di=Ue(),Mi=Le===51,st=at(Le),ra=st&&oo(Mi)||Nr();if(De()===Le||st){for(var Ta=[ra];at(Le);)Ta.push(oo(Mi)||Nr());ra=Bi(ri(Cn(Ta,di)),di)}return ra}function yp(){return I_(50,vp,ge.createIntersectionTypeNode)}function Yl(){return I_(51,yp,ge.createUnionTypeNode)}function Bf(){return Tr(),De()===103}function Cl(){return De()===29||De()===20&&Rt(hp)?!0:De()===103||De()===126&&Rt(Bf)}function c_(){if(e.isModifierKind(De())&&Fc(),Fi()||De()===108)return Tr(),!0;if(De()===22||De()===18){var Le=_e.length;return Ol(),Le===_e.length}return!1}function hp(){return Tr(),!!(De()===21||De()===25||c_()&&(De()===58||De()===27||De()===57||De()===63||De()===21&&(Tr(),De()===38)))}function gu(){var Le=Ue(),Nr=Fi()&&Ii(Dp),ri=Aa();return Nr?Bi(ge.createTypePredicateNode(void 0,Nr,ri),Le):ri}function Dp(){var Le=eo();if(De()===139&&!D.hasPrecedingLineBreak())return Tr(),Le}function sd(){var Le=Ue(),Nr=$a(128),ri=De()===108?Bs():eo(),di=at(139)?Aa():void 0;return Bi(ge.createTypePredicateNode(Nr,ri,di),Le)}function Aa(){if(Er&40960)return et(40960,Aa);if(Cl())return jo();var Le=Ue(),Nr=Yl();if(!xe()&&!D.hasPrecedingLineBreak()&&at(94)){var ri=pi(Aa);ui(57);var di=_r(Aa);ui(58);var Mi=_r(Aa);return Bi(ge.createConditionalTypeNode(Nr,ri,di,Mi),Le)}return Nr}function va(){return at(58)?Aa():void 0}function Cu(){switch(De()){case 108:case 106:case 104:case 110:case 95:case 8:case 9:case 10:case 14:case 15:case 20:case 22:case 18:case 98:case 84:case 103:case 43:case 68:case 79:return!0;case 100:return Rt(jn);default:return Fi()}}function qs(){if(Cu())return!0;switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 45:case 46:case 29:case 132:case 125:case 80:return!0;default:return xp()?!0:Fi()}}function cd(){return De()!==18&&De()!==98&&De()!==84&&De()!==59&&qs()}function ns(){var Le=vr();Le&&wi(!1);for(var Nr=Ue(),ri=hc(),di;di=At(27);)ri=M_(ri,di,hc(),Nr);return Le&&wi(!0),ri}function nl(){return at(63)?hc():void 0}function hc(){if(es())return Jf();var Le=ud()||bp();if(Le)return Le;var Nr=Ue(),ri=O_(0);return ri.kind===79&&De()===38?w_(Nr,ri,void 0):e.isLeftHandSideExpression(ri)&&e.isAssignmentOperator(Ui())?M_(ri,ai(),hc(),Nr):jf(ri,Nr)}function es(){return De()===125?Wr()?!0:Rt(so):!1}function u_(){return Tr(),!D.hasPrecedingLineBreak()&&Fi()}function Jf(){var Le=Ue();return Tr(),!D.hasPrecedingLineBreak()&&(De()===41||qs())?Bi(ge.createYieldExpression(At(41),hc()),Le):Bi(ge.createYieldExpression(void 0,void 0),Le)}function w_(Le,Nr,ri){e.Debug.assert(De()===38,\"parseSimpleArrowFunctionExpression should only have been called if we had a =>\");var di=ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,void 0,void 0);Bi(di,Nr.pos);var Mi=Cn([di],di.pos,di.end),st=$a(38),ra=_d(!!ri),Ta=ge.createArrowFunction(ri,void 0,Mi,void 0,st,ra);return ii(Bi(Ta,Le))}function ud(){var Le=ku();if(Le!==0)return Le===1?Tp(!0):Ii(fd)}function ku(){return De()===20||De()===29||De()===131?Rt(ld):De()===38?1:0}function ld(){if(De()===131&&(Tr(),D.hasPrecedingLineBreak()||De()!==20&&De()!==29))return 0;var Le=De(),Nr=Tr();if(Le===20){if(Nr===21){var ri=Tr();switch(ri){case 38:case 58:case 18:return 1;default:return 0}}if(Nr===22||Nr===18)return 2;if(Nr===25)return 1;if(e.isModifierKind(Nr)&&Nr!==131&&Rt(Qe))return Rt(function(){return Tr()===127})?0:1;if(!Fi()&&Nr!==108)return 0;switch(Tr()){case 58:return 1;case 57:return Tr(),De()===58||De()===27||De()===63||De()===21?1:0;case 27:case 63:case 21:return 2}return 0}else{if(e.Debug.assert(Le===29),!Fi())return 0;if(Ie===1){var di=Rt(function(){var Mi=Tr();if(Mi===94){var st=Tr();switch(st){case 63:case 31:return!1;default:return!0}}else if(Mi===27||Mi===63)return!0;return!1});return di?1:0}return 2}}function fd(){var Le=D.getTokenPos();if(!(Br!=null&&Br.has(Le))){var Nr=Tp(!1);return Nr||(Br||(Br=new e.Set)).add(Le),Nr}}function bp(){if(De()===131&&Rt(Sp)===1){var Le=Ue(),Nr=Hu(),ri=O_(0);return w_(Le,ri,Nr)}}function Sp(){if(De()===131){if(Tr(),D.hasPrecedingLineBreak()||De()===38)return 0;var Le=O_(0);if(!D.hasPrecedingLineBreak()&&Le.kind===79&&De()===38)return 1}return 0}function Tp(Le){var Nr=Ue(),ri=fr(),di=Hu(),Mi=e.some(di,e.isAsyncModifier)?2:0,st=Ws(),ra;if(ui(20)){if(Le)ra=_i(Mi,Le);else{var Ta=_i(Mi,Le);if(!Ta)return;ra=Ta}if(!ui(21)&&!Le)return}else{if(!Le)return;ra=ps()}var ha=vc(58,!1);if(!(ha&&!Le&&Ao(ha))){for(var Na=ha;(Na==null?void 0:Na.kind)===191;)Na=Na.type;var In=Na&&e.isJSDocFunctionType(Na);if(!(!Le&&De()!==38&&(In||De()!==18))){var qo=De(),co=$a(38),ts=qo===38||qo===18?_d(e.some(di,e.isAsyncModifier)):eo(),vs=ge.createArrowFunction(di,st,ra,ha,co,ts);return wr(Bi(vs,Nr),ri)}}}function _d(Le){if(De()===18)return Cc(Le?2:0);if(De()!==26&&De()!==98&&De()!==84&&Ku()&&!cd())return Cc(16|(Le?2:0));var Nr=Ne;Ne=!1;var ri=Le?Jr(hc):ti(hc);return Ne=Nr,ri}function jf(Le,Nr){var ri=At(57);if(!ri)return Le;var di;return Bi(ge.createConditionalExpression(Le,ri,et(fe,hc),di=$a(58),e.nodeIsPresent(di)?hc():kn(79,!1,e.Diagnostics._0_expected,e.tokenToString(58))),Nr)}function O_(Le){var Nr=Ue(),ri=kp();return pd(Le,ri,Nr)}function F_(Le){return Le===101||Le===160}function pd(Le,Nr,ri){for(;;){Ui();var di=e.getBinaryOperatorPrecedence(De()),Mi=De()===42?di>=Le:di>Le;if(!Mi||De()===101&&Je())break;if(De()===127){if(D.hasPrecedingLineBreak())break;Tr(),Nr=Ep(Nr,Aa())}else Nr=M_(Nr,ai(),O_(di),ri)}return Nr}function xp(){return Je()&&De()===101?!1:e.getBinaryOperatorPrecedence(De())>0}function M_(Le,Nr,ri,di){return Bi(ge.createBinaryExpression(Le,Nr,ri),di)}function Ep(Le,Nr){return Bi(ge.createAsExpression(Le,Nr),Le.pos)}function ol(){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr(mu)),Le)}function Au(){var Le=Ue();return Bi(ge.createDeleteExpression(Vr(mu)),Le)}function ru(){var Le=Ue();return Bi(ge.createTypeOfExpression(Vr(mu)),Le)}function yf(){var Le=Ue();return Bi(ge.createVoidExpression(Vr(mu)),Le)}function Cp(){return De()===132?mr()?!0:Rt(so):!1}function dd(){var Le=Ue();return Bi(ge.createAwaitExpression(Vr(mu)),Le)}function kp(){if(gd()){var Le=Ue(),Nr=hf();return De()===42?pd(e.getBinaryOperatorPrecedence(De()),Nr,Le):Nr}var ri=De(),di=mu();if(De()===42){var Le=e.skipTrivia(Ee,di.pos),Mi=di.end;di.kind===211?nr(Le,Mi,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):nr(Le,Mi,e.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,e.tokenToString(ri))}return di}function mu(){switch(De()){case 39:case 40:case 54:case 53:return ol();case 89:return Au();case 112:return ru();case 114:return yf();case 29:return qu();case 132:if(Cp())return dd();default:return hf()}}function gd(){switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 132:return!1;case 29:if(Ie!==1)return!1;default:return!0}}function hf(){if(De()===45||De()===46){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr($l)),Le)}else if(Ie===1&&De()===29&&Rt(S))return l_(!0);var Nr=$l();if(e.Debug.assert(e.isLeftHandSideExpression(Nr)),(De()===45||De()===46)&&!D.hasPrecedingLineBreak()){var ri=De();return Tr(),Bi(ge.createPostfixUnaryExpression(Nr,ri),Nr.pos)}return Nr}function $l(){var Le=Ue(),Nr;return De()===100?Rt(qa)?(ze|=2097152,Nr=ai()):Rt(rn)?(Tr(),Tr(),Nr=Bi(ge.createMetaProperty(100,Rn()),Le),ze|=4194304):Nr=Uf():Nr=De()===106?L_():Uf(),Ps(Le,Nr)}function Uf(){var Le=Ue(),Nr=vu();return Ec(Le,Nr,!0)}function L_(){var Le=Ue(),Nr=ai();if(De()===29){var ri=Ue(),di=Ii(Gc);di!==void 0&&nr(ri,Ue(),e.Diagnostics.super_may_not_use_type_arguments)}return De()===20||De()===24||De()===22?Nr:($a(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!0)),Le))}function l_(Le,Nr,ri){var di=Ue(),Mi=Zl(Le),st;if(Mi.kind===280){var ra=ks(Mi),Ta=void 0,ha=ra[ra.length-1];if((ha==null?void 0:ha.kind)===278&&!l(ha.openingElement.tagName,ha.closingElement.tagName)&&l(Mi.tagName,ha.closingElement.tagName)){var Na=ha.children.end,In=Bi(ge.createJsxElement(ha.openingElement,ha.children,Bi(ge.createJsxClosingElement(Bi(ge.createIdentifier(\"\"),Na,Na)),Na,Na)),ha.openingElement.pos,Na);ra=Cn(Ve(Ve([],ra.slice(0,ra.length-1),!0),[In],!1),ra.pos,Na),Ta=ha.closingElement}else Ta=Al(Mi,Le),l(Mi.tagName,Ta.tagName)||(ri&&e.isJsxOpeningElement(ri)&&l(Ta.tagName,ri.tagName)?Mr(Mi.tagName,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)):Mr(Ta.tagName,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)));st=Bi(ge.createJsxElement(Mi,ra,Ta),di)}else Mi.kind===283?st=Bi(ge.createJsxFragment(Mi,ks(Mi),wc(Le)),di):(e.Debug.assert(Mi.kind===279),st=Mi);if(Le&&De()===29){var qo=typeof Nr>\"u\"?st.pos:Nr,co=Ii(function(){return l_(!0,qo)});if(co){var ts=kn(27,!1);return e.setTextRangePosWidth(ts,co.pos,0),nr(e.skipTrivia(Ee,qo),co.end,e.Diagnostics.JSX_expressions_must_have_one_parent_element),Bi(ge.createBinaryExpression(st,ts,co),di)}}return st}function f_(){var Le=Ue(),Nr=ge.createJsxText(D.getTokenValue(),ye===12);return ye=D.scanJsxToken(),Bi(Nr,Le)}function md(Le,Nr){switch(Nr){case 1:if(e.isJsxOpeningFragment(Le))Mr(Le,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);else{var ri=Le.tagName,di=e.skipTrivia(Ee,ri.pos);nr(di,ri.end,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Le.tagName))}return;case 30:case 7:return;case 11:case 12:return f_();case 18:return kl(!1);case 29:return l_(!1,void 0,Le);default:return e.Debug.assertNever(Nr)}}function ks(Le){var Nr=[],ri=Ue(),di=Ye;for(Ye|=1<<14;;){var Mi=md(Le,ye=D.reScanJsxToken());if(!Mi||(Nr.push(Mi),e.isJsxOpeningElement(Le)&&(Mi==null?void 0:Mi.kind)===278&&!l(Mi.openingElement.tagName,Mi.closingElement.tagName)&&l(Le.tagName,Mi.closingElement.tagName)))break}return Ye=di,Cn(Nr,ri)}function Wu(){var Le=Ue();return Bi(ge.createJsxAttributes(Qi(13,__)),Le)}function Zl(Le){var Nr=Ue();if(ui(29),De()===31)return xt(),Bi(ge.createJsxOpeningFragment(),Nr);var ri=R_(),di=(Er&262144)===0?m_():void 0,Mi=Wu(),st;return De()===31?(xt(),st=ge.createJsxOpeningElement(ri,di,Mi)):(ui(43),ui(31,void 0,!1)&&(Le?Tr():xt()),st=ge.createJsxSelfClosingElement(ri,di,Mi)),Bi(st,Nr)}function R_(){var Le=Ue();Mt();for(var Nr=De()===108?ai():Rn();at(24);)Nr=Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!1)),Le);return Nr}function kl(Le){var Nr=Ue();if(!!ui(18)){var ri,di;return De()!==19&&(ri=At(25),di=ns()),Le?ui(19):ui(19,void 0,!1)&&xt(),Bi(ge.createJsxExpression(ri,di),Nr)}}function __(){if(De()===18)return zd();Mt();var Le=Ue();return Bi(ge.createJsxAttribute(Rn(),De()!==63?void 0:ut()===10?ga():kl(!0)),Le)}function zd(){var Le=Ue();ui(18),ui(25);var Nr=ns();return ui(19),Bi(ge.createJsxSpreadAttribute(Nr),Le)}function Al(Le,Nr){var ri=Ue();ui(30);var di=R_();return ui(31,void 0,!1)&&(Nr||!l(Le.tagName,di)?Tr():xt()),Bi(ge.createJsxClosingElement(di),ri)}function wc(Le){var Nr=Ue();return ui(30),e.tokenIsIdentifierOrKeyword(De())&&Mr(R_(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment),ui(31,void 0,!1)&&(Le?Tr():xt()),Bi(ge.createJsxJsxClosingFragment(),Nr)}function qu(){var Le=Ue();ui(29);var Nr=Aa();ui(31);var ri=mu();return Bi(ge.createTypeAssertion(Nr,ri),Le)}function Vu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())||De()===22||Zn()}function ef(){return De()===28&&Rt(Vu)}function sl(Le){if(Le.flags&32)return!0;if(e.isNonNullExpression(Le)){for(var Nr=Le.expression;e.isNonNullExpression(Nr)&&!(Nr.flags&32);)Nr=Nr.expression;if(Nr.flags&32){for(;e.isNonNullExpression(Le);)Le.flags|=32,Le=Le.expression;return!0}}return!1}function p_(Le,Nr,ri){var di=ce(!0,!0),Mi=ri||sl(Nr),st=Mi?ge.createPropertyAccessChain(Nr,ri,di):ge.createPropertyAccessExpression(Nr,di);return Mi&&e.isPrivateIdentifier(st.name)&&Mr(st.name,e.Diagnostics.An_optional_chain_cannot_contain_private_identifiers),Bi(st,Le)}function Df(Le,Nr,ri){var di;if(De()===23)di=kn(79,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var Mi=Wt(ns);e.isStringOrNumericLiteralLike(Mi)&&(Mi.text=xn(Mi.text)),di=Mi}ui(23);var st=ri||sl(Nr)?ge.createElementAccessChain(Nr,ri,di):ge.createElementAccessExpression(Nr,di);return Bi(st,Le)}function Ec(Le,Nr,ri){for(;;){var di=void 0,Mi=!1;if(ri&&ef()?(di=$a(28),Mi=e.tokenIsIdentifierOrKeyword(De())):Mi=at(24),Mi){Nr=p_(Le,Nr,di);continue}if((di||!vr())&&at(22)){Nr=Df(Le,Nr,di);continue}if(Zn()){Nr=!di&&Nr.kind===228?os(Le,Nr.expression,di,Nr.typeArguments):os(Le,Nr,di,void 0);continue}if(!di){if(De()===53&&!D.hasPrecedingLineBreak()){Tr(),Nr=Bi(ge.createNonNullExpression(Nr),Le);continue}var st=Ii(Gc);if(st){Nr=Bi(ge.createExpressionWithTypeArguments(Nr,st),Le);continue}}return Nr}}function Zn(){return De()===14||De()===15}function os(Le,Nr,ri,di){var Mi=ge.createTaggedTemplateExpression(Nr,di,De()===14?(ct(),ga()):yi(!0));return(ri||Nr.flags&32)&&(Mi.flags|=32),Mi.questionDotToken=ri,Bi(Mi,Le)}function Ps(Le,Nr){for(;;){Nr=Ec(Le,Nr,!0);var ri=void 0,di=At(28);if(di&&(ri=Ii(Gc),Zn())){Nr=os(Le,Nr,di,ri);continue}if(ri||De()===20){!di&&Nr.kind===228&&(ri=Nr.typeArguments,Nr=Nr.expression);var Mi=d_(),st=di||sl(Nr)?ge.createCallChain(Nr,di,ri,Mi):ge.createCallExpression(Nr,ri,Mi);Nr=Bi(st,Le);continue}if(di){var ra=kn(79,!1,e.Diagnostics.Identifier_expected);Nr=Bi(ge.createPropertyAccessChain(Nr,di,ra),Le)}break}return Nr}function d_(){ui(20);var Le=hs(11,Nl);return ui(21),Le}function Gc(){if((Er&262144)===0&&Li()===29){Tr();var Le=hs(20,Aa);if(!!ui(31))return Le&&B_()?Le:void 0}}function B_(){switch(De()){case 20:case 14:case 15:return!0}return!qs()}function vu(){switch(De()){case 8:case 9:case 10:case 14:return ga();case 108:case 106:case 104:case 110:case 95:return ai();case 20:return Gt();case 22:return cl();case 18:return Ut();case 131:if(!Rt(Iu))break;return Ds();case 84:return tn();case 98:return Ds();case 103:return bs();case 43:case 68:if(Yi()===13)return ga();break;case 15:return yi(!1);case 80:return Co()}return eo(e.Diagnostics.Expression_expected)}function Gt(){var Le=Ue(),Nr=fr();ui(20);var ri=Wt(ns);return ui(21),wr(Bi(ge.createParenthesizedExpression(ri),Le),Nr)}function As(){var Le=Ue();ui(25);var Nr=hc();return Bi(ge.createSpreadElement(Nr),Le)}function vn(){return De()===25?As():De()===27?Bi(ge.createOmittedExpression(),Ue()):hc()}function Nl(){return et(fe,vn)}function cl(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(22),di=D.hasPrecedingLineBreak(),Mi=hs(15,vn);return Vi(22,23,ri,Nr),Bi(ge.createArrayLiteralExpression(Mi,di),Le)}function rf(){var Le=Ue(),Nr=fr();if(At(25)){var ri=hc();return wr(Bi(ge.createSpreadAssignment(ri),Le),Nr)}var di=gl(),Mi=Fc();if(Ko(136))return Gu(Le,Nr,di,Mi,172);if(Ko(149))return Gu(Le,Nr,di,Mi,173);var st=At(41),ra=Fi(),Ta=En(),ha=At(57),Na=At(53);if(st||De()===20||De()===29)return pl(Le,Nr,di,Mi,st,Ta,ha,Na);var In,qo=ra&&De()!==58;if(qo){var co=At(63),ts=co?Wt(hc):void 0;In=ge.createShorthandPropertyAssignment(Ta,ts),In.equalsToken=co}else{ui(58);var vs=Wt(hc);In=ge.createPropertyAssignment(Ta,vs)}return In.decorators=di,In.modifiers=Mi,In.questionToken=ha,In.exclamationToken=Na,wr(Bi(In,Le),Nr)}function Ut(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(18),di=D.hasPrecedingLineBreak(),Mi=hs(12,rf,!0);return Vi(18,19,ri,Nr),Bi(ge.createObjectLiteralExpression(Mi,di),Le)}function Ds(){var Le=vr();wi(!1);var Nr=Ue(),ri=fr(),di=Fc();ui(98);var Mi=At(41),st=Mi?1:0,ra=e.some(di,e.isAsyncModifier)?2:0,Ta=st&&ra?Ze(bf):st?ae(bf):ra?Jr(bf):bf(),ha=Ws(),Na=Ei(st|ra),In=vc(58,!1),qo=Cc(st|ra);wi(Le);var co=ge.createFunctionExpression(di,Mi,Ta,ha,Na,In,qo);return wr(Bi(co,Nr),ri)}function bf(){return Ki()?Pn():void 0}function bs(){var Le=Ue();if(ui(103),at(24)){var Nr=Rn();return Bi(ge.createMetaProperty(103,Nr),Le)}var ri=Ue(),di=Ec(ri,vu(),!1),Mi;di.kind===228&&(Mi=di.typeArguments,di=di.expression);var st=De()===20?d_():void 0;return Bi(ge.createNewExpression(di,Mi,st),Le)}function Dc(Le,Nr){var ri=Ue(),di=fr(),Mi=D.getTokenPos(),st=ui(18,Nr);if(st||Le){var ra=D.hasPrecedingLineBreak(),Ta=Qi(1,nc);Vi(18,19,st,Mi);var ha=wr(Bi(ge.createBlock(Ta,ra),ri),di);return De()===63&&(Ar(e.Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses),Tr()),ha}else{var Ta=ps();return wr(Bi(ge.createBlock(Ta,void 0),ri),di)}}function Cc(Le,Nr){var ri=Wr();Di(!!(Le&1));var di=mr();Xi(!!(Le&2));var Mi=Ne;Ne=!1;var st=vr();st&&wi(!1);var ra=Dc(!!(Le&16),Nr);return st&&wi(!0),Ne=Mi,Di(ri),Xi(di),ra}function ac(){var Le=Ue(),Nr=fr();return ui(26),wr(Bi(ge.createEmptyStatement(),Le),Nr)}function Pl(){var Le=Ue(),Nr=fr();ui(99);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc(),ra=at(91)?nc():void 0;return wr(Bi(ge.createIfStatement(Mi,st,ra),Le),Nr)}function Il(){var Le=Ue(),Nr=fr();ui(90);var ri=nc();ui(115);var di=D.getTokenPos(),Mi=ui(20),st=Wt(ns);return Vi(20,21,Mi,di),at(26),wr(Bi(ge.createDoStatement(ri,st),Le),Nr)}function zf(){var Le=Ue(),Nr=fr();ui(115);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc();return wr(Bi(ge.createWhileStatement(Mi,st),Le),Nr)}function ul(){var Le=Ue(),Nr=fr();ui(97);var ri=At(132);ui(20);var di;De()!==26&&(De()===113||De()===119||De()===85?di=z_(!0):di=Zt(ns));var Mi;if(ri?ui(160):at(160)){var st=Wt(hc);ui(21),Mi=ge.createForOfStatement(ri,di,st,nc())}else if(at(101)){var st=Wt(ns);ui(21),Mi=ge.createForInStatement(di,st,nc())}else{ui(26);var ra=De()!==26&&De()!==21?Wt(ns):void 0;ui(26);var Ta=De()!==21?Wt(ns):void 0;ui(21),Mi=ge.createForStatement(di,ra,Ta,nc())}return wr(Bi(Mi,Le),Nr)}function Nu(Le){var Nr=Ue(),ri=fr();ui(Le===246?81:86);var di=ka()?void 0:eo();pn();var Mi=Le===246?ge.createBreakStatement(di):ge.createContinueStatement(di);return wr(Bi(Mi,Nr),ri)}function Us(){var Le=Ue(),Nr=fr();ui(105);var ri=ka()?void 0:Wt(ns);return pn(),wr(Bi(ge.createReturnStatement(ri),Le),Nr)}function Ap(){var Le=Ue(),Nr=fr();ui(116);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=Gi(33554432,nc);return wr(Bi(ge.createWithStatement(Mi,st),Le),Nr)}function Wf(){var Le=Ue(),Nr=fr();ui(82);var ri=Wt(ns);ui(58);var di=Qi(3,nc);return wr(Bi(ge.createCaseClause(ri,di),Le),Nr)}function Sf(){var Le=Ue();ui(88),ui(58);var Nr=Qi(3,nc);return Bi(ge.createDefaultClause(Nr),Le)}function ll(){return De()===82?Wf():Sf()}function J_(){var Le=Ue();ui(18);var Nr=Qi(2,ll);return ui(19),Bi(ge.createCaseBlock(Nr),Le)}function j_(){var Le=Ue(),Nr=fr();ui(107),ui(20);var ri=Wt(ns);ui(21);var di=J_();return wr(Bi(ge.createSwitchStatement(ri,di),Le),Nr)}function U_(){var Le=Ue(),Nr=fr();ui(109);var ri=D.hasPrecedingLineBreak()?void 0:Wt(ns);return ri===void 0&&(Cr++,ri=Bi(ge.createIdentifier(\"\"),Ue())),Ba()||wt(ri),wr(Bi(ge.createThrowStatement(ri),Le),Nr)}function iu(){var Le=Ue(),Nr=fr();ui(111);var ri=Dc(!1),di=De()===83?vd():void 0,Mi;return(!di||De()===96)&&(ui(96,e.Diagnostics.catch_or_finally_expected),Mi=Dc(!1)),wr(Bi(ge.createTryStatement(ri,di,Mi),Le),Nr)}function vd(){var Le=Ue();ui(83);var Nr;at(20)?(Nr=xf(),ui(21)):Nr=void 0;var ri=Dc(!1);return Bi(ge.createCatchClause(Nr,ri),Le)}function qf(){var Le=Ue(),Nr=fr();return ui(87),pn(),wr(Bi(ge.createDebuggerStatement(),Le),Nr)}function dc(){var Le=Ue(),Nr=fr(),ri,di=De()===20,Mi=Wt(ns);return e.isIdentifier(Mi)&&at(58)?ri=ge.createLabeledStatement(Mi,nc()):(Ba()||wt(Mi),ri=ge.createExpressionStatement(Mi),di&&(Nr=!1)),wr(Bi(ri,Le),Nr)}function Pu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())&&!D.hasPrecedingLineBreak()}function wl(){return Tr(),De()===84&&!D.hasPrecedingLineBreak()}function Iu(){return Tr(),De()===98&&!D.hasPrecedingLineBreak()}function so(){return Tr(),(e.tokenIsIdentifierOrKeyword(De())||De()===8||De()===9||De()===10)&&!D.hasPrecedingLineBreak()}function Et(){for(;;)switch(De()){case 113:case 119:case 85:case 98:case 84:case 92:return!0;case 118:case 152:return u_();case 141:case 142:return Tf();case 126:case 131:case 135:case 121:case 122:case 123:case 145:if(Tr(),D.hasPrecedingLineBreak())return!1;continue;case 157:return Tr(),De()===18||De()===79||De()===93;case 100:return Tr(),De()===10||De()===41||De()===18||e.tokenIsIdentifierOrKeyword(De());case 93:var Le=Tr();if(Le===152&&(Le=Rt(Tr)),Le===63||Le===41||Le===18||Le===88||Le===127)return!0;continue;case 124:Tr();continue;default:return!1}}function Ys(){return Rt(Et)}function Ku(){switch(De()){case 59:case 26:case 18:case 113:case 119:case 98:case 84:case 92:case 99:case 90:case 115:case 97:case 86:case 81:case 105:case 116:case 107:case 109:case 111:case 87:case 83:case 96:return!0;case 100:return Ys()||Rt(jn);case 85:case 93:return Ys();case 131:case 135:case 118:case 141:case 142:case 152:case 157:return!0;case 123:case 121:case 122:case 124:case 145:return Ys()||!Rt(Pu);default:return qs()}}function Np(){return Tr(),Ki()||De()===18||De()===22}function Pp(){return Rt(Np)}function nc(){switch(De()){case 26:return ac();case 18:return Dc(!1);case 113:return rs(Ue(),fr(),void 0,void 0);case 119:if(Pp())return rs(Ue(),fr(),void 0,void 0);break;case 98:return Op(Ue(),fr(),void 0,void 0);case 84:return Ml(Ue(),fr(),void 0,void 0);case 99:return Pl();case 90:return Il();case 115:return zf();case 97:return ul();case 86:return Nu(245);case 81:return Nu(246);case 105:return Us();case 116:return Ap();case 107:return j_();case 109:return U_();case 111:case 83:case 96:return iu();case 87:return qf();case 59:return _l();case 131:case 118:case 152:case 141:case 142:case 135:case 85:case 92:case 93:case 100:case 121:case 122:case 123:case 126:case 124:case 145:case 157:if(Ys())return _l();break}return dc()}function fl(Le){return Le.kind===135}function _l(){var Le=e.some(Rt(function(){return gl(),Fc()}),fl);if(Le){var Nr=cu();if(Nr)return Nr}var ri=Ue(),di=fr(),Mi=gl(),st=Fc();if(Le){for(var ra=0,Ta=st;ra=0),e.Debug.assert(Na<=co),e.Debug.assert(co<=qo.length),!m(qo,Na))return;var ts,vs,Ac,Is,Qu,sc=[],bc=[];return D.scanRange(Na+3,In-5,function(){var It=1,Ma,aa=Na-(qo.lastIndexOf(`\n`,Na)+1)+4;function Ja(Js){Ma||(Ma=aa),sc.push(Js),aa+=Js.length}for(vi();Up(5););Up(4)&&(It=0,aa=0);e:for(;;){switch(De()){case 59:It===0||It===1?(Yu(sc),Qu||(Qu=Ue()),Vs(W(aa)),It=0,Ma=void 0):Ja(D.getTokenText());break;case 4:sc.push(D.getTokenText()),It=0,aa=0;break;case 41:var _n=D.getTokenText();It===1||It===2?(It=2,Ja(_n)):(It=1,aa+=_n.length);break;case 5:var ro=D.getTokenText();It===2?sc.push(ro):Ma!==void 0&&aa+ro.length>Ma&&sc.push(ro.slice(Ma-aa)),aa+=ro.length;break;case 1:break e;case 18:It=2;var as=D.getStartPos(),cc=D.getTextPos()-1,Sc=rt(cc);if(Sc){Is||Mc(sc),bc.push(Bi(ge.createJSDocText(sc.join(\"\")),Is!=null?Is:Na,as)),bc.push(Sc),sc=[],Is=D.getTextPos();break}default:It=2,Ja(D.getTokenText());break}vi()}Yu(sc),bc.length&&sc.length&&bc.push(Bi(ge.createJSDocText(sc.join(\"\")),Is!=null?Is:Na,Qu)),bc.length&&ts&&e.Debug.assertIsDefined(Qu,\"having parsed tags implies that the end of the comment span should be set\");var hu=ts&&Cn(ts,vs,Ac);return Bi(ge.createJSDocComment(bc.length?Cn(bc,Na,Qu):sc.length?sc.join(\"\"):void 0,hu),Na,co)});function Mc(It){for(;It.length&&(It[0]===`\n`||It[0]===\"\\r\");)It.shift()}function Yu(It){for(;It.length&&It[It.length-1].trim()===\"\";)It.pop()}function Rl(){for(;;){if(vi(),De()===1)return!0;if(!(De()===5||De()===4))return!1}}function Lc(){if(!((De()===5||De()===4)&&Rt(Rl)))for(;De()===5||De()===4;)vi()}function _(){if((De()===5||De()===4)&&Rt(Rl))return\"\";for(var It=D.hasPrecedingLineBreak(),Ma=!1,aa=\"\";It&&De()===41||De()===5||De()===4;)aa+=D.getTokenText(),De()===4?(It=!0,Ma=!0,aa=\"\"):De()===41&&(It=!1),vi();return Ma?aa:\"\"}function W(It){e.Debug.assert(De()===59);var Ma=D.getTokenPos();vi();var aa=ff(void 0),Ja=_(),_n;switch(aa.escapedText){case\"author\":_n=Jt(Ma,aa,It,Ja);break;case\"implements\":_n=Xf(Ma,aa,It,Ja);break;case\"augments\":case\"extends\":_n=bd(Ma,aa,It,Ja);break;case\"class\":case\"constructor\":_n=kf(Ma,ge.createJSDocClassTag,aa,It,Ja);break;case\"public\":_n=kf(Ma,ge.createJSDocPublicTag,aa,It,Ja);break;case\"private\":_n=kf(Ma,ge.createJSDocPrivateTag,aa,It,Ja);break;case\"protected\":_n=kf(Ma,ge.createJSDocProtectedTag,aa,It,Ja);break;case\"readonly\":_n=kf(Ma,ge.createJSDocReadonlyTag,aa,It,Ja);break;case\"override\":_n=kf(Ma,ge.createJSDocOverrideTag,aa,It,Ja);break;case\"deprecated\":Ur=!0,_n=kf(Ma,ge.createJSDocDeprecatedTag,aa,It,Ja);break;case\"this\":_n=Gg(Ma,aa,It,Ja);break;case\"enum\":_n=Af(Ma,aa,It,Ja);break;case\"arg\":case\"argument\":case\"param\":return jp(Ma,aa,2,It);case\"return\":case\"returns\":_n=Om(Ma,aa,It,Ja);break;case\"template\":_n=Lm(Ma,aa,It,Ja);break;case\"type\":_n=Fm(Ma,aa,It,Ja);break;case\"typedef\":_n=Hg(Ma,aa,It,Ja);break;case\"callback\":_n=fg(Ma,aa,It,Ja);break;case\"see\":_n=Vg(Ma,aa,It,Ja);break;default:_n=vo(Ma,aa,It,Ja);break}return _n}function Te(It,Ma,aa,Ja){return Ja||(aa+=Ma-It),cr(aa,Ja.slice(aa))}function cr(It,Ma){var aa=Ue(),Ja=[],_n=[],ro,as=0,cc=!0,Sc;function hu(Sd){Sc||(Sc=It),Ja.push(Sd),It+=Sd.length}Ma!==void 0&&(Ma!==\"\"&&hu(Ma),as=1);var Js=De();e:for(;;){switch(Js){case 4:as=0,Ja.push(D.getTokenText()),It=0;break;case 59:if(as===3||as===2&&(!cc||Rt(ni))){Ja.push(D.getTokenText());break}D.setTextPos(D.getTextPos()-1);case 1:break e;case 5:if(as===2||as===3)hu(D.getTokenText());else{var Qf=D.getTokenText();Sc!==void 0&&It+Qf.length>Sc&&Ja.push(Qf.slice(Sc-It)),It+=Qf.length}break;case 18:as=2;var go=D.getStartPos(),Vd=D.getTextPos()-1,X_=rt(Vd);X_?(_n.push(Bi(ge.createJSDocText(Ja.join(\"\")),ro!=null?ro:aa,go)),_n.push(X_),Ja=[],ro=D.getTextPos()):hu(D.getTokenText());break;case 61:as===3?as=2:as=3,hu(D.getTokenText());break;case 41:if(as===0){as=1,It+=1;break}default:as!==3&&(as=2),hu(D.getTokenText());break}cc=De()===5,Js=vi()}if(Mc(Ja),Yu(Ja),_n.length)return Ja.length&&_n.push(Bi(ge.createJSDocText(Ja.join(\"\")),ro!=null?ro:aa)),Cn(_n,aa,D.getTextPos());if(Ja.length)return Ja.join(\"\")}function ni(){var It=vi();return It===5||It===4}function rt(It){var Ma=Ii(yt);if(!!Ma){vi(),Lc();var aa=Ue(),Ja=e.tokenIsIdentifierOrKeyword(De())?ds(!0):void 0;if(Ja)for(;De()===80;)nt(),vi(),Ja=Bi(ge.createJSDocMemberName(Ja,eo()),aa);for(var _n=[];De()!==19&&De()!==4&&De()!==1;)_n.push(D.getTokenText()),vi();var ro=Ma===\"link\"?ge.createJSDocLink:Ma===\"linkcode\"?ge.createJSDocLinkCode:ge.createJSDocLinkPlain;return Bi(ro(Ja,_n.join(\"\")),It,D.getTextPos())}}function yt(){if(_(),De()===18&&vi()===59&&e.tokenIsIdentifierOrKeyword(vi())){var It=D.getTokenValue();if(Xa(It))return It}}function Xa(It){return It===\"link\"||It===\"linkcode\"||It===\"linkplain\"}function vo(It,Ma,aa,Ja){return Bi(ge.createJSDocUnknownTag(Ma,Te(It,Ue(),aa,Ja)),It)}function Vs(It){!It||(ts?ts.push(It):(ts=[It],vs=It.pos),Ac=It.end)}function H_(){return _(),De()===18?ri():void 0}function y_(){var It=Up(22);It&&Lc();var Ma=Up(61),aa=Rm();return Ma&&Qa(61),It&&(Lc(),At(63)&&ns(),ui(23)),{name:aa,isBracketed:It}}function Dd(It){switch(It.kind){case 148:return!0;case 183:return Dd(It.elementType);default:return e.isTypeReferenceNode(It)&&e.isIdentifier(It.typeName)&&It.typeName.escapedText===\"Object\"&&!It.typeArguments}}function jp(It,Ma,aa,Ja){var _n=H_(),ro=!_n;_();var as=y_(),cc=as.name,Sc=as.isBracketed,hu=_();ro&&!Rt(yt)&&(_n=H_());var Js=Te(It,Ue(),Ja,hu),Qf=aa!==4&&lg(_n,cc,aa,Ja);Qf&&(_n=Qf,ro=!0);var go=aa===1?ge.createJSDocPropertyTag(Ma,cc,Sc,_n,ro,Js):ge.createJSDocParameterTag(Ma,cc,Sc,_n,ro,Js);return Bi(go,It)}function lg(It,Ma,aa,Ja){if(It&&Dd(It.type)){for(var _n=Ue(),ro=void 0,as=void 0;ro=Ii(function(){return Bl(aa,Ja,Ma)});)(ro.kind===340||ro.kind===347)&&(as=e.append(as,ro));if(as){var cc=Bi(ge.createJSDocTypeLiteral(as,It.type.kind===183),_n);return Bi(ge.createJSDocTypeExpression(cc),_n)}}}function Om(It,Ma,aa,Ja){e.some(ts,e.isJSDocReturnTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=H_();return Bi(ge.createJSDocReturnTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Fm(It,Ma,aa,Ja){e.some(ts,e.isJSDocTypeTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=ri(!0),ro=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocTypeTag(Ma,_n,ro),It)}function Vg(It,Ma,aa,Ja){var _n=De()===22||Rt(function(){return vi()===59&&e.tokenIsIdentifierOrKeyword(vi())&&Xa(D.getTokenValue())}),ro=_n?void 0:di(),as=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocSeeTag(Ma,ro,as),It)}function Jt(It,Ma,aa,Ja){var _n=Ue(),ro=ml(),as=D.getStartPos(),cc=Te(It,as,aa,Ja);cc||(as=D.getStartPos());var Sc=typeof cc!=\"string\"?Cn(e.concatenate([Bi(ro,_n,as)],cc),_n):ro.text+cc;return Bi(ge.createJSDocAuthorTag(Ma,Sc),It)}function ml(){for(var It=[],Ma=!1,aa=D.getToken();aa!==1&&aa!==4;){if(aa===29)Ma=!0;else{if(aa===59&&!Ma)break;if(aa===31&&Ma){It.push(D.getTokenText()),D.setTextPos(D.getTokenPos()+1);break}}It.push(D.getTokenText()),aa=vi()}return ge.createJSDocText(It.join(\"\"))}function Xf(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocImplementsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function bd(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocAugmentsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function lf(){var It=at(18),Ma=Ue(),aa=Kg(),Ja=m_(),_n=ge.createExpressionWithTypeArguments(aa,Ja),ro=Bi(_n,Ma);return It&&ui(19),ro}function Kg(){for(var It=Ue(),Ma=ff();at(24);){var aa=ff();Ma=Bi(ge.createPropertyAccessExpression(Ma,aa),It)}return Ma}function kf(It,Ma,aa,Ja,_n){return Bi(Ma(aa,Te(It,Ue(),Ja,_n)),It)}function Gg(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocThisTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Af(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocEnumTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Hg(It,Ma,aa,Ja){var _n,ro=H_();_();var as=Wd();Lc();var cc=cr(aa),Sc;if(!ro||Dd(ro.type)){for(var hu=void 0,Js=void 0,Qf=void 0,go=!1;hu=Ii(function(){return Xg(aa)});)if(go=!0,hu.kind===343)if(Js){var Vd=Ar(e.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);Vd&&e.addRelatedInfo(Vd,e.createDetachedDiagnostic(Re,0,0,e.Diagnostics.The_tag_was_first_specified_here));break}else Js=hu;else Qf=e.append(Qf,hu);if(go){var X_=ro&&ro.type.kind===183,Sd=ge.createJSDocTypeLiteral(Qf,X_);ro=Js&&Js.typeExpression&&!Dd(Js.typeExpression.type)?Js.typeExpression:Bi(Sd,It),Sc=ro.end}}Sc=Sc||cc!==void 0?Ue():((_n=as!=null?as:ro)!==null&&_n!==void 0?_n:Ma).end,cc||(cc=Te(It,Sc,aa,Ja));var Yg=ge.createJSDocTypedefTag(Ma,ro,as,cc);return Bi(Yg,It,Sc)}function Wd(It){var Ma=D.getTokenPos();if(!!e.tokenIsIdentifierOrKeyword(De())){var aa=ff();if(at(24)){var Ja=Wd(!0),_n=ge.createModuleDeclaration(void 0,void 0,aa,Ja,It?4:void 0);return Bi(_n,Ma)}return It&&(aa.isInJSDocNamespace=!0),aa}}function qd(It){for(var Ma=Ue(),aa,Ja;aa=Ii(function(){return Bl(4,It)});)Ja=e.append(Ja,aa);return Cn(Ja||[],Ma)}function fg(It,Ma,aa,Ja){var _n=Wd();Lc();var ro=cr(aa),as=qd(aa),cc=Ii(function(){if(Up(59)){var Js=W(aa);if(Js&&Js.kind===341)return Js}}),Sc=Bi(ge.createJSDocSignature(void 0,as,cc),It);ro||(ro=Te(It,Ue(),aa,Ja));var hu=ro!==void 0?Ue():Sc.end;return Bi(ge.createJSDocCallbackTag(Ma,Sc,_n,ro),It,hu)}function Mm(It,Ma){for(;!e.isIdentifier(It)||!e.isIdentifier(Ma);)if(!e.isIdentifier(It)&&!e.isIdentifier(Ma)&&It.right.escapedText===Ma.right.escapedText)It=It.left,Ma=Ma.left;else return!1;return It.escapedText===Ma.escapedText}function Xg(It){return Bl(1,It)}function Bl(It,Ma,aa){for(var Ja=!0,_n=!1;;)switch(vi()){case 59:if(Ja){var ro=Qg(It,Ma);return ro&&(ro.kind===340||ro.kind===347)&&It!==4&&aa&&(e.isIdentifier(ro.name)||!Mm(aa,ro.name.left))?!1:ro}_n=!1;break;case 4:Ja=!0,_n=!1;break;case 41:_n&&(Ja=!1),_n=!0;break;case 79:Ja=!1;break;case 1:return!1}}function Qg(It,Ma){e.Debug.assert(De()===59);var aa=D.getStartPos();vi();var Ja=ff();Lc();var _n;switch(Ja.escapedText){case\"type\":return It===1&&Fm(aa,Ja);case\"prop\":case\"property\":_n=1;break;case\"arg\":case\"argument\":case\"param\":_n=6;break;default:return!1}return It&_n?jp(aa,Ja,It,Ma):!1}function _g(){var It=Ue(),Ma=Up(22);Ma&&Lc();var aa=ff(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),Ja;if(Ma&&(Lc(),ui(63),Ja=Gi(8388608,al),ui(23)),!e.nodeIsMissing(aa))return Bi(ge.createTypeParameterDeclaration(void 0,aa,void 0,Ja),It)}function Qc(){var It=Ue(),Ma=[];do{Lc();var aa=_g();aa!==void 0&&Ma.push(aa),_()}while(Up(27));return Cn(Ma,It)}function Lm(It,Ma,aa,Ja){var _n=De()===18?ri():void 0,ro=Qc();return Bi(ge.createJSDocTemplateTag(Ma,_n,ro,Te(It,Ue(),aa,Ja)),It)}function Up(It){return De()===It?(vi(),!0):!1}function Rm(){var It=ff();for(at(22)&&ui(23);at(24);){var Ma=ff();at(22)&&ui(23),It=Ji(It,Ma)}return It}function ff(It){if(!e.tokenIsIdentifierOrKeyword(De()))return kn(79,!It,It||e.Diagnostics.Identifier_expected);Cr++;var Ma=D.getTokenPos(),aa=D.getTextPos(),Ja=De(),_n=xn(D.getTokenValue()),ro=Bi(ge.createIdentifier(_n,void 0,Ja),Ma,aa);return vi(),ro}}})(G_=d.JSDocParser||(d.JSDocParser={}))})(X||(X={}));var $;(function(d){function D(Ee,He,rr,Ie){if(Ie=Ie||e.Debug.shouldAssert(2),ge(Ee,He,rr,Ie),e.textChangeRangeIsUnchanged(rr))return Ee;if(Ee.statements.length===0)return X.parseSourceFile(Ee.fileName,He,Ee.languageVersion,void 0,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);var _e=Ee;e.Debug.assert(!_e.hasBeenIncrementallyParsed),_e.hasBeenIncrementallyParsed=!0,X.fixupParentReferences(_e);var we=Ee.text,de=Re(Ee),ye=Z(Ee,rr);ge(Ee,He,ye,Ie),e.Debug.assert(ye.span.start<=rr.span.start),e.Debug.assert(e.textSpanEnd(ye.span)===e.textSpanEnd(rr.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(ye))===e.textSpanEnd(e.textChangeRangeNewSpan(rr)));var Ae=e.textChangeRangeNewSpan(ye).length-ye.span.length;Fe(_e,ye.span.start,e.textSpanEnd(ye.span),e.textSpanEnd(e.textChangeRangeNewSpan(ye)),Ae,we,He,Ie);var er=X.parseSourceFile(Ee.fileName,He,Ee.languageVersion,de,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);return er.commentDirectives=fe(Ee.commentDirectives,er.commentDirectives,ye.span.start,e.textSpanEnd(ye.span),Ae,we,He,Ie),er.impliedNodeFormat=Ee.impliedNodeFormat,er}d.updateSourceFile=D;function fe(Ee,He,rr,Ie,_e,we,de,ye){if(!Ee)return He;for(var Ae,er=!1,ir=0,Cr=Ee;irIe){n();var Ne={range:{pos:Br.pos+_e,end:Br.end+_e},type:Er};Ae=e.append(Ae,Ne),ye&&e.Debug.assert(we.substring(Br.pos,Br.end)===de.substring(Ne.range.pos,Ne.range.end))}}return n(),Ae;function n(){er||(er=!0,Ae?He&&Ae.push.apply(Ae,He):Ae=He)}}function g(Ee,He,rr,Ie,_e,we){He?ye(Ee):de(Ee);return;function de(Ae){var er=\"\";if(we&&ne(Ae)&&(er=Ie.substring(Ae.pos,Ae.end)),Ae._children&&(Ae._children=void 0),e.setTextRangePosEnd(Ae,Ae.pos+rr,Ae.end+rr),we&&ne(Ae)&&e.Debug.assert(er===_e.substring(Ae.pos,Ae.end)),se(Ae,de,ye),e.hasJSDocNodes(Ae))for(var ir=0,Cr=Ae.jsDoc;ir=He,\"Adjusting an element that was entirely before the change range\"),e.Debug.assert(Ee.pos<=rr,\"Adjusting an element that was entirely after the change range\"),e.Debug.assert(Ee.pos<=Ee.end);var we=Math.min(Ee.pos,Ie),de=Ee.end>=rr?Ee.end+_e:Math.min(Ee.end,Ie);e.Debug.assert(we<=de),Ee.parent&&(e.Debug.assertGreaterThanOrEqual(we,Ee.parent.pos),e.Debug.assertLessThanOrEqual(de,Ee.parent.end)),e.setTextRangePosEnd(Ee,we,de)}function We(Ee,He){if(He){var rr=Ee.pos,Ie=function(ye){e.Debug.assert(ye.pos>=rr),rr=ye.end};if(e.hasJSDocNodes(Ee))for(var _e=0,we=Ee.jsDoc;_err){g(ir,!1,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){if(ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e),se(ir,Ae,er),e.hasJSDocNodes(ir))for(var Ye=0,Br=ir.jsDoc;Yerr){g(ir,!0,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e);for(var Ye=0,Br=ir;Ye0&&_e<=rr;_e++){var we=Be(Ee,Ie);e.Debug.assert(we.pos<=Ie);var de=we.pos;Ie=Math.max(0,de-1)}var ye=e.createTextSpanFromBounds(Ie,e.textSpanEnd(He.span)),Ae=He.newLength+(He.span.start-Ie);return e.createTextChangeRange(ye,Ae)}function Be(Ee,He){var rr=Ee,Ie;if(se(Ee,de),Ie){var _e=we(Ie);_e.pos>rr.pos&&(rr=_e)}return rr;function we(ye){for(;;){var Ae=e.getLastChild(ye);if(Ae)ye=Ae;else return ye}}function de(ye){if(!e.nodeIsMissing(ye))if(ye.pos<=He){if(ye.pos>=rr.pos&&(rr=ye),HeHe),!0}}function ge(Ee,He,rr,Ie){var _e=Ee.text;if(rr&&(e.Debug.assert(_e.length-rr.span.length+rr.newLength===He.length),Ie||e.Debug.shouldAssert(3))){var we=_e.substr(0,rr.span.start),de=He.substr(0,rr.span.start);e.Debug.assert(we===de);var ye=_e.substring(e.textSpanEnd(rr.span),_e.length),Ae=He.substring(e.textSpanEnd(e.textChangeRangeNewSpan(rr)),He.length);e.Debug.assert(ye===Ae)}}function Re(Ee){var He=Ee.statements,rr=0;e.Debug.assert(rr=er.pos&&de=er.pos&&ded.checkJsDirective.pos)&&(d.checkJsDirective={enabled:g===\"ts-check\",end:ge.range.end,pos:ge.range.pos})});break}case\"jsx\":case\"jsxfrag\":case\"jsximportsource\":case\"jsxruntime\":return;default:e.Debug.fail(\"Unhandled pragma kind\")}})}e.processPragmasIntoFields=L;var P=new e.Map;function k(d){if(P.has(d))return P.get(d);var D=new RegExp(\"(\\\\s\".concat(d,`\\\\s*=\\\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))`),\"im\");return P.set(d,D),D}var Y=/^\\/\\/\\/\\s*<(\\S+)\\s.*?\\/>/im,U=/^\\/\\/\\/?\\s*@(\\S+)\\s*(.*)\\s*$/im;function j(d,D,fe){var g=D.kind===2&&Y.exec(fe);if(g){var ne=g[1].toLowerCase(),ue=e.commentPragmas[ne];if(!ue||!(ue.kind&1))return;if(ue.args){for(var We={},Fe=0,Z=ue.args;Fe=Wi.length)break;var nt=Li;if(Wi.charCodeAt(nt)===34){for(Li++;Li32;)Li++;ct.push(Wi.substring(nt,Li))}}vi(ct)}}e.parseCommandLineWorker=K;function b(Pe,Ue,fr,De,gr,Vr){if(De.isTSConfigOnly){var Tr=Pe[Ue];Tr===\"null\"?(gr[De.name]=void 0,Ue++):De.type===\"boolean\"?Tr===\"false\"?(gr[De.name]=Zt(De,!1,Vr),Ue++):(Tr===\"true\"&&Ue++,Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line,De.name))):(Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line,De.name)),Tr&&!e.startsWith(Tr,\"-\")&&Ue++)}else if(!Pe[Ue]&&De.type!==\"boolean\"&&Vr.push(e.createCompilerDiagnostic(fr.optionTypeMismatchDiagnostic,De.name,ue(De))),Pe[Ue]!==\"null\")switch(De.type){case\"number\":gr[De.name]=Zt(De,parseInt(Pe[Ue]),Vr),Ue++;break;case\"boolean\":var Tr=Pe[Ue];gr[De.name]=Zt(De,Tr!==\"false\",Vr),(Tr===\"false\"||Tr===\"true\")&&Ue++;break;case\"string\":gr[De.name]=Zt(De,Pe[Ue]||\"\",Vr),Ue++;break;case\"list\":var vi=oe(De,Pe[Ue],Vr);gr[De.name]=vi||[],vi&&Ue++;break;default:gr[De.name]=G(De,Pe[Ue],Vr),Ue++;break}else gr[De.name]=void 0,Ue++;return Ue}e.compilerOptionsDidYouMeanDiagnostics={alternateMode:le,getOptionsNameMap:Q,optionDeclarations:e.optionDeclarations,unknownOptionDiagnostic:e.Diagnostics.Unknown_compiler_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_compiler_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Compiler_option_0_expects_an_argument};function se(Pe,Ue){return K(e.compilerOptionsDidYouMeanDiagnostics,Pe,Ue)}e.parseCommandLine=se;function J(Pe,Ue){return ie(Q,Pe,Ue)}e.getOptionFromName=J;function ie(Pe,Ue,fr){fr===void 0&&(fr=!1),Ue=Ue.toLowerCase();var De=Pe(),gr=De.optionsNameMap,Vr=De.shortOptionNames;if(fr){var Tr=Vr.get(Ue);Tr!==void 0&&(Ue=Tr)}return gr.get(Ue)}var R;function q(){return R||(R=B(e.buildOpts))}var O={diagnostic:e.Diagnostics.Compiler_option_0_may_not_be_used_with_build,getOptionsNameMap:Q},ve={alternateMode:O,getOptionsNameMap:q,optionDeclarations:e.buildOpts,unknownOptionDiagnostic:e.Diagnostics.Unknown_build_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_build_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Build_option_0_requires_a_value_of_type_1};function ee(Pe){var Ue=K(ve,Pe),fr=Ue.options,De=Ue.watchOptions,gr=Ue.fileNames,Vr=Ue.errors,Tr=fr;return gr.length===0&&gr.push(\".\"),Tr.clean&&Tr.force&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"force\")),Tr.clean&&Tr.verbose&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"verbose\")),Tr.clean&&Tr.watch&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"watch\")),Tr.watch&&Tr.dry&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"watch\",\"dry\")),{buildOptions:Tr,watchOptions:De,projects:gr,errors:Vr}}e.parseBuildCommand=ee;function he(Pe){for(var Ue=[],fr=1;fr=0)return Tr.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,Ve(Ve([],Vr,!0),[Yi],!1).join(\" -> \"))),{raw:Pe||g(Ue,Tr)};var Wi=Pe?yr(Pe,fr,De,gr,Tr):Ir(Ue,fr,De,gr,Tr);if(!((Ui=Wi.options)===null||Ui===void 0)&&Ui.paths&&(Wi.options.pathsBasePath=De),Wi.extendedConfigPath){Vr=Vr.concat([Yi]);var ct=Ur(Ue,Wi.extendedConfigPath,fr,Vr,Tr,vi);if(ct&&Ge(ct)){var Li=ct.raw,nt=Wi.raw,Mt,xt=function(ut){!nt[ut]&&Li[ut]&&(nt[ut]=e.map(Li[ut],function(Dt){return e.isRootedDiskPath(Dt)?Dt:e.combinePaths(Mt||(Mt=e.convertToRelativePath(e.getDirectoryPath(Wi.extendedConfigPath),De,e.createGetCanonicalFileName(fr.useCaseSensitiveFileNames))),Dt)}))};xt(\"include\"),xt(\"exclude\"),xt(\"files\"),nt.compileOnSave===void 0&&(nt.compileOnSave=Li.compileOnSave),Wi.options=e.assign({},ct.options,Wi.options),Wi.watchOptions=Wi.watchOptions&&ct.watchOptions?e.assign({},ct.watchOptions,Wi.watchOptions):Wi.watchOptions||ct.watchOptions}}return Wi}function yr(Pe,Ue,fr,De,gr){e.hasProperty(Pe,\"excludes\")&&gr.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var Vr=qr(Pe.compilerOptions,fr,gr,De),Tr=Di(Pe.typeAcquisition||Pe.typingOptions,fr,gr,De),vi=wi(Pe.watchOptions,fr,gr);Pe.compileOnSave=ii(Pe,fr,gr);var Ui;if(Pe.extends)if(!e.isString(Pe.extends))gr.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"extends\",\"string\"));else{var Yi=De?Ye(De,fr):fr;Ui=wr(Pe.extends,Ue,Yi,gr,e.createCompilerDiagnostic)}return{raw:Pe,options:Vr,watchOptions:vi,typeAcquisition:Tr,extendedConfigPath:Ui}}function Ir(Pe,Ue,fr,De,gr){var Vr=or(De),Tr,vi,Ui,Yi,Wi,ct={onSetValidOptionKeyValueInParent:function(nt,Mt,xt){var ut;switch(nt){case\"compilerOptions\":ut=Vr;break;case\"watchOptions\":ut=Ui||(Ui={});break;case\"typeAcquisition\":ut=Tr||(Tr=si(De));break;case\"typingOptions\":ut=vi||(vi=si(De));break;default:e.Debug.fail(\"Unknown option\")}ut[Mt.name]=Gi(Mt,fr,xt)},onSetValidOptionKeyValueInRoot:function(nt,Mt,xt,ut){switch(nt){case\"extends\":var Dt=De?Ye(De,fr):fr;Yi=wr(xt,Ue,Dt,gr,function(Rt,Ii){return e.createDiagnosticForNodeInSourceFile(Pe,ut,Rt,Ii)});return}},onSetUnknownOptionKeyValueInRoot:function(nt,Mt,xt,ut){nt===\"excludes\"&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Mt,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude)),e.find(w,function(Dt){return Dt.name===nt})&&(Wi=e.append(Wi,Mt))}},Li=fe(Pe,gr,!0,ct);return Tr||(vi?Tr=vi.enableAutoDiscovery!==void 0?{enable:vi.enableAutoDiscovery,include:vi.include,exclude:vi.exclude}:vi:Tr=si(De)),Wi&&Li&&Li.compilerOptions===void 0&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Wi[0],e.Diagnostics._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file,e.getTextOfPropertyName(Wi[0]))),{raw:Li,options:Vr,watchOptions:Ui,typeAcquisition:Tr,extendedConfigPath:Yi}}function wr(Pe,Ue,fr,De,gr){if(Pe=e.normalizeSlashes(Pe),e.isRootedDiskPath(Pe)||e.startsWith(Pe,\"./\")||e.startsWith(Pe,\"../\")){var Vr=e.getNormalizedAbsolutePath(Pe,fr);if(!Ue.fileExists(Vr)&&!e.endsWith(Vr,\".json\")&&(Vr=\"\".concat(Vr,\".json\"),!Ue.fileExists(Vr))){De.push(gr(e.Diagnostics.File_0_not_found,Pe));return}return Vr}var Tr=e.nodeModuleNameResolver(Pe,e.combinePaths(fr,\"tsconfig.json\"),{moduleResolution:e.ModuleResolutionKind.NodeJs},Ue,void 0,void 0,!0);if(Tr.resolvedModule)return Tr.resolvedModule.resolvedFileName;De.push(gr(e.Diagnostics.File_0_not_found,Pe))}function Ur(Pe,Ue,fr,De,gr,Vr){var Tr,vi=fr.useCaseSensitiveFileNames?Ue:e.toFileNameLowerCase(Ue),Ui,Yi,Wi;if(Vr&&(Ui=Vr.get(vi))?(Yi=Ui.extendedResult,Wi=Ui.extendedConfig):(Yi=$(Ue,function(ct){return fr.readFile(ct)}),Yi.parseDiagnostics.length||(Wi=ur(void 0,Yi,fr,e.getDirectoryPath(Ue),e.getBaseFileName(Ue),De,gr,Vr)),Vr&&Vr.set(vi,{extendedResult:Yi,extendedConfig:Wi})),Pe&&(Pe.extendedSourceFiles=[Yi.fileName],Yi.extendedSourceFiles&&(Tr=Pe.extendedSourceFiles).push.apply(Tr,Yi.extendedSourceFiles)),Yi.parseDiagnostics.length){gr.push.apply(gr,Yi.parseDiagnostics);return}return Wi}function ii(Pe,Ue,fr){if(!e.hasProperty(Pe,e.compileOnSaveCommandLineOption.name))return!1;var De=et(e.compileOnSaveCommandLineOption,Pe.compileOnSave,Ue,fr);return typeof De==\"boolean\"&&De}function mi(Pe,Ue,fr){var De=[],gr=qr(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertCompilerOptionsFromJson=mi;function pe(Pe,Ue,fr){var De=[],gr=Di(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertTypeAcquisitionFromJson=pe;function or(Pe){var Ue=Pe&&e.getBaseFileName(Pe)===\"jsconfig.json\"?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{};return Ue}function qr(Pe,Ue,fr,De){var gr=or(De);return Xi(U(),Pe,Ue,gr,e.compilerOptionsDidYouMeanDiagnostics,fr),De&&(gr.configFilePath=e.normalizeSlashes(De)),gr}function si(Pe){return{enable:!!Pe&&e.getBaseFileName(Pe)===\"jsconfig.json\",include:[],exclude:[]}}function Di(Pe,Ue,fr,De){var gr=si(De),Vr=N(Pe);return Xi(l(),Vr,Ue,gr,V,fr),gr}function wi(Pe,Ue,fr){return Xi(H(),Pe,Ue,void 0,k,fr)}function Xi(Pe,Ue,fr,De,gr,Vr){if(!!Ue){for(var Tr in Ue){var vi=Pe.get(Tr);vi?(De||(De={}))[vi.name]=et(vi,Ue[Tr],fr,Vr):Vr.push(T(Tr,gr,e.createCompilerDiagnostic))}return De}}function et(Pe,Ue,fr,De){if(We(Pe,Ue)){var gr=Pe.type;if(gr===\"list\"&&e.isArray(Ue))return pi(Pe,Ue,fr,De);if(!e.isString(gr))return _r(Pe,Ue,De);var Vr=Zt(Pe,Ue,De);return Cr(Vr)?Vr:Wt(Pe,fr,Vr)}else De.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,Pe.name,ue(Pe)))}e.convertJsonOption=et;function Gi(Pe,Ue,fr){if(!Cr(fr)){if(Pe.type===\"list\"){var De=Pe;return De.element.isFilePath||!e.isString(De.element.type)?e.filter(e.map(fr,function(gr){return Gi(De.element,Ue,gr)}),function(gr){return De.listPreserveFalsyValues?!0:!!gr}):fr}else if(!e.isString(Pe.type))return Pe.type.get(e.isString(fr)?fr.toLowerCase():fr);return Wt(Pe,Ue,fr)}}function Wt(Pe,Ue,fr){return Pe.isFilePath&&(fr=e.getNormalizedAbsolutePath(fr,Ue),fr===\"\"&&(fr=\".\")),fr}function Zt(Pe,Ue,fr){var De;if(!Cr(Ue)){var gr=(De=Pe.extraValidation)===null||De===void 0?void 0:De.call(Pe,Ue);if(!gr)return Ue;fr.push(e.createCompilerDiagnostic.apply(void 0,gr))}}function _r(Pe,Ue,fr){if(!Cr(Ue)){var De=Ue.toLowerCase(),gr=Pe.type.get(De);if(gr!==void 0)return Zt(Pe,gr,fr);fr.push(p(Pe))}}function pi(Pe,Ue,fr,De){return e.filter(e.map(Ue,function(gr){return et(Pe.element,gr,fr,De)}),function(gr){return Pe.listPreserveFalsyValues?!0:!!gr})}var ae=/(^|\\/)\\*\\*\\/?$/,Xe=/^[^*?]*(?=\\/[^/]*[*?])/;function Jr(Pe,Ue,fr,De,gr){gr===void 0&&(gr=e.emptyArray),Ue=e.normalizePath(Ue);var Vr=e.createGetCanonicalFileName(De.useCaseSensitiveFileNames),Tr=new e.Map,vi=new e.Map,Ui=new e.Map,Yi=Pe.validatedFilesSpec,Wi=Pe.validatedIncludeSpecs,ct=Pe.validatedExcludeSpecs,Li=e.getSupportedExtensions(fr,gr),nt=e.getSupportedExtensionsWithJsonIfResolveJsonModule(fr,Li);if(Yi)for(var Mt=0,xt=Yi;Mt0)for(var Ii=function(wt){if(e.fileExtensionIs(wt,\".json\")){if(!Rt){var na=Wi.filter(function(at){return e.endsWith(at,\".json\")}),Ai=e.map(e.getRegularExpressionsForWildcards(na,Ue,\"files\"),function(at){return\"^\".concat(at,\"$\")});Rt=Ai?Ai.map(function(at){return e.getRegexFromPattern(at,De.useCaseSensitiveFileNames)}):e.emptyArray}var Oi=e.findIndex(Rt,function(at){return at.test(wt)});if(Oi!==-1){var ji=Vr(wt);!Tr.has(ji)&&!Ui.has(ji)&&Ui.set(ji,wt)}return\"continue\"}if(mr(wt,Tr,vi,Li,Vr))return\"continue\";Ar(wt,vi,Li,Vr);var Vi=Vr(wt);!Tr.has(Vi)&&!vi.has(Vi)&&vi.set(Vi,wt)},Ki=0,Fi=De.readDirectory(Ue,e.flatten(nt),ct,Wi,void 0);KiUe}function Sr(Pe,Ue,fr,De){return zr(Pe,e.filter(Ue,function(gr){return!Ze(gr)}),fr,De)}e.matchesExclude=Sr;function zr(Pe,Ue,fr,De,gr){var Vr=e.getRegularExpressionForWildcard(Ue,e.combinePaths(e.normalizePath(De),gr),\"exclude\"),Tr=Vr&&e.getRegexFromPattern(Vr,fr);return Tr?Tr.test(Pe)?!0:!e.hasExtension(Pe)&&Tr.test(e.ensureTrailingDirectorySeparator(Pe)):!1}function Wr(Pe,Ue,fr,De,gr){return Pe.filter(function(Tr){if(!e.isString(Tr))return!1;var vi=Je(Tr,fr);return vi!==void 0&&Ue.push(Vr.apply(void 0,vi)),vi===void 0});function Vr(Tr,vi){var Ui=e.getTsConfigPropArrayElementValue(De,gr,vi);return Ui?e.createDiagnosticForNodeInSourceFile(De,Ui,Tr,vi):e.createCompilerDiagnostic(Tr,vi)}}function Je(Pe,Ue){if(Ue&&ae.test(Pe))return[e.Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe];if(Ze(Pe))return[e.Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe]}function xe(Pe,Ue,fr){var De=Pe.validatedIncludeSpecs,gr=Pe.validatedExcludeSpecs,Vr=e.getRegularExpressionForWildcard(gr,Ue,\"exclude\"),Tr=Vr&&new RegExp(Vr,fr?\"\":\"i\"),vi={};if(De!==void 0){for(var Ui=[],Yi=0,Wi=De;Yi=0;Vr--){var Tr=gr[Vr];if(e.fileExtensionIs(Pe,Tr))return;var vi=De(e.changeExtension(Pe,Tr));Ue.delete(vi)}}function Oe(Pe){var Ue={};for(var fr in Pe)if(Pe.hasOwnProperty(fr)){var De=J(fr);De!==void 0&&(Ue[fr]=nr(Pe[fr],De))}return Ue}e.convertCompilerOptionsForTelemetry=Oe;function nr(Pe,Ue){switch(Ue.type){case\"object\":return\"\";case\"string\":return\"\";case\"number\":return typeof Pe==\"number\"?Pe:\"\";case\"boolean\":return typeof Pe==\"boolean\"?Pe:\"\";case\"list\":var fr=Ue.element;return e.isArray(Pe)?Pe.map(function(De){return nr(De,fr)}):\"\";default:return e.forEachEntry(Ue.type,function(De,gr){if(De===Pe)return gr})}}function Mr(Pe){switch(Pe.type){case\"number\":return 1;case\"boolean\":return!0;case\"string\":var Ue=Pe.defaultValueDescription;return Pe.isFilePath?\"./\".concat(Ue&&typeof Ue==\"string\"?Ue:\"\"):\"\";case\"list\":return[];case\"object\":return{};default:var fr=Pe.type.keys().next();return fr.done?e.Debug.fail(\"Expected 'option.type' to have entries.\"):fr.value}}})(ke||(ke={}));var ke;(function(e){function a(Ze){Ze.trace(e.formatMessage.apply(void 0,arguments))}e.trace=a;function C(Ze,Sr){return!!Ze.traceResolution&&Sr.trace!==void 0}e.isTraceEnabled=C;function w(Ze,Sr){var zr;if(Sr&&Ze){var Wr=Ze.packageJsonContent;typeof Wr.name==\"string\"&&typeof Wr.version==\"string\"&&(zr={name:Wr.name,subModuleName:Sr.path.slice(Ze.packageDirectory.length+e.directorySeparator.length),version:Wr.version})}return Sr&&{path:Sr.path,extension:Sr.ext,packageId:zr}}function B(Ze){return w(void 0,Ze)}function E(Ze){if(Ze)return e.Debug.assert(Ze.packageId===void 0),{path:Ze.path,ext:Ze.extension}}var Q;(function(Ze){Ze[Ze.TypeScript=0]=\"TypeScript\",Ze[Ze.JavaScript=1]=\"JavaScript\",Ze[Ze.Json=2]=\"Json\",Ze[Ze.TSConfig=3]=\"TSConfig\",Ze[Ze.DtsOnly=4]=\"DtsOnly\",Ze[Ze.TsOnly=5]=\"TsOnly\"})(Q||(Q={}));function le(Ze){if(!!Ze)return e.Debug.assert(e.extensionIsTS(Ze.extension)),{fileName:Ze.path,packageId:Ze.packageId}}function N(Ze,Sr,zr,Wr,Je){var xe;return Je?((xe=Je.failedLookupLocations).push.apply(xe,zr),Je):{resolvedModule:Ze&&{resolvedFileName:Ze.path,originalPath:Ze.originalPath===!0?void 0:Ze.originalPath,extension:Ze.extension,isExternalLibraryImport:Sr,packageId:Ze.packageId},failedLookupLocations:zr,resolutionDiagnostics:Wr}}function p(Ze,Sr,zr,Wr){if(!e.hasProperty(Ze,Sr)){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_does_not_have_a_0_field,Sr);return}var Je=Ze[Sr];if(typeof Je!==zr||Je===null){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,Sr,zr,Je===null?\"null\":typeof Je);return}return Je}function m(Ze,Sr,zr,Wr){var Je=p(Ze,Sr,\"string\",Wr);if(Je!==void 0){if(!Je){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_had_a_falsy_0_field,Sr);return}var xe=e.normalizePath(e.combinePaths(zr,Je));return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_0_field_1_that_references_2,Sr,Je,xe),xe}}function G(Ze,Sr,zr){return m(Ze,\"typings\",Sr,zr)||m(Ze,\"types\",Sr,zr)}function oe(Ze,Sr,zr){return m(Ze,\"tsconfig\",Sr,zr)}function f(Ze,Sr,zr){return m(Ze,\"main\",Sr,zr)}function T(Ze,Sr){var zr=p(Ze,\"typesVersions\",\"object\",Sr);if(zr!==void 0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings),zr}function K(Ze,Sr){var zr=T(Ze,Sr);if(zr!==void 0){if(Sr.traceEnabled)for(var Wr in zr)e.hasProperty(zr,Wr)&&!e.VersionRange.tryParse(Wr)&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range,Wr);var Je=se(zr);if(!Je){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0,e.versionMajorMinor);return}var xe=Je.version,vr=Je.paths;if(typeof vr!=\"object\"){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,\"typesVersions['\".concat(xe,\"']\"),\"object\",typeof vr);return}return Je}}var b;function se(Ze){b||(b=new e.Version(e.version));for(var Sr in Ze)if(!!e.hasProperty(Ze,Sr)){var zr=e.VersionRange.tryParse(Sr);if(zr!==void 0&&zr.test(b))return{version:Sr,paths:Ze[Sr]}}}e.getPackageJsonTypesVersionsPaths=se;function J(Ze,Sr){if(Ze.typeRoots)return Ze.typeRoots;var zr;if(Ze.configFilePath?zr=e.getDirectoryPath(Ze.configFilePath):Sr.getCurrentDirectory&&(zr=Sr.getCurrentDirectory()),zr!==void 0)return ie(zr,Sr)}e.getEffectiveTypeRoots=J;function ie(Ze,Sr){if(!Sr.directoryExists)return[e.combinePaths(Ze,R)];var zr;return e.forEachAncestorDirectory(e.normalizePath(Ze),function(Wr){var Je=e.combinePaths(Wr,R);Sr.directoryExists(Je)&&(zr||(zr=[])).push(Je)}),zr}var R=e.combinePaths(\"node_modules\",\"@types\");function q(Ze,Sr,zr){var Wr=typeof zr.useCaseSensitiveFileNames==\"function\"?zr.useCaseSensitiveFileNames():zr.useCaseSensitiveFileNames;return e.comparePaths(Ze,Sr,!Wr)===0}function O(Ze,Sr,zr,Wr,Je,xe,vr){e.Debug.assert(typeof Ze==\"string\",\"Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.\");var mr=C(zr,Wr);Je&&(zr=Je.commandLine.options);var Ar=Sr?e.getDirectoryPath(Sr):void 0,Oe=Ar?xe&&xe.getOrCreateCacheForDirectory(Ar,Je):void 0,nr=Oe&&Oe.get(Ze,vr);if(nr)return mr&&(a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1,Ze,Sr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName),a(Wr,e.Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1,Ze,Ar),ct(nr)),nr;var Mr=J(zr,Wr);mr&&(Sr===void 0?Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set,Ze):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1,Ze,Mr):Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set,Ze,Sr):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2,Ze,Sr,Mr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName));var Pe=[],Ue=ve(zr);vr===e.ModuleKind.ESNext&&(e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.NodeNext)&&(Ue|=d.EsmMode);var fr=Ue&d.Exports?Ue&d.EsmMode?[\"node\",\"import\",\"types\"]:[\"node\",\"require\",\"types\"]:[],De=[],gr={compilerOptions:zr,host:Wr,traceEnabled:mr,failedLookupLocations:Pe,packageJsonInfoCache:xe,features:Ue,conditions:fr,requestContainingDirectory:Ar,reportDiagnostic:function(Mt){return void De.push(Mt)}},Vr=Li(),Tr=!0;Vr||(Vr=nt(),Tr=!1);var vi;if(Vr){var Ui=Vr.fileName,Yi=Vr.packageId,Wi=zr.preserveSymlinks?Ui:ze(Ui,Wr,mr);vi={primary:Tr,resolvedFileName:Wi,originalPath:q(Ui,Wi,Wr)?void 0:Ui,packageId:Yi,isExternalLibraryImport:He(Ui)}}return nr={resolvedTypeReferenceDirective:vi,failedLookupLocations:Pe,resolutionDiagnostics:De},Oe==null||Oe.set(Ze,vr,nr),mr&&ct(nr),nr;function ct(Mt){var xt;!((xt=Mt.resolvedTypeReferenceDirective)===null||xt===void 0)&&xt.resolvedFileName?Mt.resolvedTypeReferenceDirective.packageId?a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,e.packageIdToString(Mt.resolvedTypeReferenceDirective.packageId),Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_not_resolved,Ze)}function Li(){if(Mr&&Mr.length)return mr&&a(Wr,e.Diagnostics.Resolving_with_primary_search_path_0,Mr.join(\", \")),e.firstDefined(Mr,function(Mt){var xt=e.combinePaths(Mt,Ze),ut=e.getDirectoryPath(xt),Dt=e.directoryProbablyExists(ut,Wr);return!Dt&&mr&&a(Wr,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,ut),le(Cr(Q.DtsOnly,xt,!Dt,gr))});mr&&a(Wr,e.Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths)}function nt(){var Mt=Sr&&e.getDirectoryPath(Sr);if(Mt!==void 0){mr&&a(Wr,e.Diagnostics.Looking_up_in_node_modules_folder_initial_location_0,Mt);var xt;if(e.isExternalModuleNameRelative(Ze)){var Dt=Re(Mt,Ze).path;xt=Ee(Q.DtsOnly,Dt,!1,gr,!0)}else{var ut=or(Q.DtsOnly,Ze,Mt,gr,void 0,void 0);xt=ut&&ut.value}return le(xt)}else mr&&a(Wr,e.Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder)}}e.resolveTypeReferenceDirective=O;function ve(Ze){return e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.Node16?d.Node16Default:e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.NodeNext?d.NodeNextDefault:d.None}function ee(Ze,Sr,zr,Wr,Je){var xe={compilerOptions:zr,host:Wr,traceEnabled:C(zr,Wr),failedLookupLocations:[],packageJsonInfoCache:Je==null?void 0:Je.getPackageJsonInfoCache(),conditions:e.emptyArray,features:d.None,requestContainingDirectory:Sr,reportDiagnostic:e.noop};return e.forEachAncestorDirectory(Sr,function(vr){if(e.getBaseFileName(vr)!==\"node_modules\"){var mr=e.combinePaths(vr,\"node_modules\"),Ar=e.combinePaths(mr,Ze);return Ne(Ar,!1,xe)}})}e.resolvePackageNameToPackageJson=ee;function he(Ze,Sr){if(Ze.types)return Ze.types;var zr=[];if(Sr.directoryExists&&Sr.getDirectories){var Wr=J(Ze,Sr);if(Wr)for(var Je=0,xe=Wr;Je0);var Wr={sourceFile:Ze.configFile,commandLine:{options:Ze}};Sr.setOwnMap(Sr.getOrCreateMapOfCacheRedirects(Wr)),zr==null||zr.setOwnMap(zr.getOrCreateMapOfCacheRedirects(Wr))}Sr.setOwnOptions(Ze),zr==null||zr.setOwnOptions(Ze)}}function A(Ze,Sr,zr){return{getOrCreateCacheForDirectory:xe,clear:Wr,update:Je};function Wr(){zr.clear()}function Je(vr){$(vr,zr)}function xe(vr,mr){var Ar=e.toPath(vr,Ze,Sr);return X(zr,mr,Ar,function(){return y()})}}function y(){var Ze=new e.Map,Sr=new e.Map,zr={get:function(Je,xe){return Ze.get(Wr(Je,xe))},set:function(Je,xe,vr){return Ze.set(Wr(Je,xe),vr),zr},delete:function(Je,xe){return Ze.delete(Wr(Je,xe)),zr},has:function(Je,xe){return Ze.has(Wr(Je,xe))},forEach:function(Je){return Ze.forEach(function(xe,vr){var mr=Sr.get(vr),Ar=mr[0],Oe=mr[1];return Je(xe,Ar,Oe)})},size:function(){return Ze.size}};return zr;function Wr(Je,xe){var vr=xe===void 0?Je:\"\".concat(xe,\"|\").concat(Je);return Sr.set(vr,[Je,xe]),vr}}e.createModeAwareCache=y;function V(Ze,Sr,zr){e.Debug.assert(Sr.length===zr.length);for(var Wr=y(),Je=0;Je=0||Ue.indexOf(\".\")>=0||Ue.indexOf(\"node_modules\")>=0)return!1;var fr=e.combinePaths(Ze.packageDirectory,nr),De=e.getNormalizedAbsolutePath(fr,(Pe=(Mr=zr.host).getCurrentDirectory)===null||Pe===void 0?void 0:Pe.call(Mr)),gr=ye(Wr,De,!1,zr);if(gr)return Je=e.appendIfUnique(Je,gr,function(Yi,Wi){return Yi.path===Wi.path}),!0}else if(Array.isArray(nr))for(var Vr=0,Tr=nr;Vr0;){var vr=Ne(e.getPathFromPathComponents(xe),!1,Je);if(vr)return vr;xe.pop()}}e.getPackageScopeForPath=Er;function Ne(Ze,Sr,zr){var Wr,Je,xe,vr=zr.host,mr=zr.traceEnabled,Ar=e.combinePaths(Ze,\"package.json\");if(Sr){zr.failedLookupLocations.push(Ar);return}var Oe=(Wr=zr.packageJsonInfoCache)===null||Wr===void 0?void 0:Wr.getPackageJsonInfo(Ar);if(Oe!==void 0){if(typeof Oe!=\"boolean\")return mr&&a(vr,e.Diagnostics.File_0_exists_according_to_earlier_cached_lookups,Ar),Oe;Oe&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist_according_to_earlier_cached_lookups,Ar),zr.failedLookupLocations.push(Ar);return}var nr=e.directoryProbablyExists(Ze,vr);if(nr&&vr.fileExists(Ar)){var Mr=e.readJson(Ar,vr);mr&&a(vr,e.Diagnostics.Found_package_json_at_0,Ar);var Pe=K(Mr,zr),Ue={packageDirectory:Ze,packageJsonContent:Mr,versionPaths:Pe,resolvedEntrypoints:void 0};return(Je=zr.packageJsonInfoCache)===null||Je===void 0||Je.setPackageJsonInfo(Ar,Ue),Ue}else nr&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist,Ar),(xe=zr.packageJsonInfoCache)===null||xe===void 0||xe.setPackageJsonInfo(Ar,nr),zr.failedLookupLocations.push(Ar)}e.getPackageJsonInfo=Ne;function n(Ze,Sr,zr,Wr,Je,xe){var vr;if(Je)switch(Ze){case Q.JavaScript:case Q.Json:case Q.TsOnly:vr=f(Je,Sr,Wr);break;case Q.TypeScript:vr=G(Je,Sr,Wr)||f(Je,Sr,Wr);break;case Q.DtsOnly:vr=G(Je,Sr,Wr);break;case Q.TSConfig:vr=oe(Je,Sr,Wr);break;default:return e.Debug.assertNever(Ze)}var mr=function(fr,De,gr,Vr){var Tr=er(De,gr,Vr);if(Tr){var vi=lr(fr,Tr);if(vi)return B(vi);Vr.traceEnabled&&a(Vr.host,e.Diagnostics.File_0_has_an_unsupported_extension_so_skipping_it,Tr)}var Ui=fr===Q.DtsOnly?Q.TypeScript:fr,Yi=Vr.features;(Je==null?void 0:Je.type)!==\"module\"&&(Vr.features&=~d.EsmMode);var Wi=Ee(Ui,De,gr,Vr,!1);return Vr.features=Yi,Wi},Ar=vr?!e.directoryProbablyExists(e.getDirectoryPath(vr),Wr.host):void 0,Oe=zr||!e.directoryProbablyExists(Sr,Wr.host),nr=e.combinePaths(Sr,Ze===Q.TSConfig?\"tsconfig\":\"index\");if(xe&&(!vr||e.containsPath(Sr,vr))){var Mr=e.getRelativePathFromDirectory(Sr,vr||nr,!1);Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,xe.version,e.version,Mr);var Pe=Xi(Ze,Mr,Sr,xe.paths,void 0,mr,Ar||Oe,Wr);if(Pe)return E(Pe.value)}var Ue=vr&&E(mr(Ze,vr,Ar,Wr));if(Ue)return Ue;if(!(Wr.features&d.EsmMode))return we(Ze,nr,Oe,Wr)}function lr(Ze,Sr){var zr=e.tryGetExtensionFromPath(Sr);return zr!==void 0&&be(Ze,zr)?{path:Sr,ext:zr}:void 0}function be(Ze,Sr){switch(Ze){case Q.JavaScript:return Sr===\".js\"||Sr===\".jsx\"||Sr===\".mjs\"||Sr===\".cjs\";case Q.TSConfig:case Q.Json:return Sr===\".json\";case Q.TypeScript:return Sr===\".ts\"||Sr===\".tsx\"||Sr===\".mts\"||Sr===\".cts\"||Sr===\".d.ts\"||Sr===\".d.mts\"||Sr===\".d.cts\";case Q.TsOnly:return Sr===\".ts\"||Sr===\".tsx\"||Sr===\".mts\"||Sr===\".cts\";case Q.DtsOnly:return Sr===\".d.ts\"||Sr===\".d.mts\"||Sr===\".d.cts\"}}function Ge(Ze){var Sr=Ze.indexOf(e.directorySeparator);return Ze[0]===\"@\"&&(Sr=Ze.indexOf(e.directorySeparator,Sr+1)),Sr===-1?{packageName:Ze,rest:\"\"}:{packageName:Ze.slice(0,Sr),rest:Ze.slice(Sr+1)}}e.parsePackageName=Ge;function ur(Ze){return e.every(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,\".\")})}e.allKeysStartWithDot=ur;function yr(Ze){return!e.some(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,\".\")})}function Ir(Ze,Sr,zr,Wr,Je,xe){var vr,mr,Ar=typeof Wr.host.useCaseSensitiveFileNames==\"function\"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,\"dummy\"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!(!nr||!nr.packageJsonContent.exports)&&typeof nr.packageJsonContent.name==\"string\"){var Mr=e.getPathComponents(Sr),Pe=e.getPathComponents(nr.packageJsonContent.name);if(!!e.every(Pe,function(fr,De){return Mr[De]===fr})){var Ue=Mr.slice(Pe.length);return wr(nr,Ze,e.length(Ue)?\".\".concat(e.directorySeparator).concat(Ue.join(e.directorySeparator)):\".\",Wr,Je,xe)}}}function wr(Ze,Sr,zr,Wr,Je,xe){if(!!Ze.packageJsonContent.exports){if(zr===\".\"){var vr=void 0;if(typeof Ze.packageJsonContent.exports==\"string\"||Array.isArray(Ze.packageJsonContent.exports)||typeof Ze.packageJsonContent.exports==\"object\"&&yr(Ze.packageJsonContent.exports)?vr=Ze.packageJsonContent.exports:e.hasProperty(Ze.packageJsonContent.exports,\".\")&&(vr=Ze.packageJsonContent.exports[\".\"]),vr){var mr=mi(Sr,Wr,Je,xe,zr,Ze,!1);return mr(vr,\"\",!1)}}else if(ur(Ze.packageJsonContent.exports)){if(typeof Ze.packageJsonContent.exports!=\"object\")return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0);var Ar=ii(Sr,Wr,Je,xe,zr,Ze.packageJsonContent.exports,Ze,!1);if(Ar)return Ar}return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0)}}function Ur(Ze,Sr,zr,Wr,Je,xe){var vr,mr;if(Sr===\"#\"||e.startsWith(Sr,\"#/\"))return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions,Sr),ti(void 0);var Ar=typeof Wr.host.useCaseSensitiveFileNames==\"function\"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,\"dummy\"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!nr)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve,Oe),ti(void 0);if(!nr.packageJsonContent.imports)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_scope_0_has_no_imports_defined,nr.packageDirectory),ti(void 0);var Mr=ii(Ze,Wr,Je,xe,Sr,nr.packageJsonContent.imports,nr,!0);return Mr||(Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1,Sr,nr.packageDirectory),ti(void 0))}function ii(Ze,Sr,zr,Wr,Je,xe,vr,mr){var Ar=mi(Ze,Sr,zr,Wr,Je,vr,mr);if(!e.endsWith(Je,e.directorySeparator)&&Je.indexOf(\"*\")===-1&&e.hasProperty(xe,Je)){var Oe=xe[Je];return Ar(Oe,\"\",!1)}for(var nr=e.sort(e.filter(e.getOwnKeys(xe),function(Vr){return Vr.indexOf(\"*\")!==-1||e.endsWith(Vr,\"/\")}),function(Vr,Tr){return Vr.length-Tr.length}),Mr=0,Pe=nr;Mr0&&!e.endsWith(Ar,\"/\"))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);if(!e.startsWith(Ar,\"./\")){if(vr&&!e.startsWith(Ar,\"../\")&&!e.startsWith(Ar,\"/\")&&!e.isRootedDiskPath(Ar)){var Mr=nr?Ar.replace(/\\*/g,Oe):Ar+Oe,Pe=ge(Sr.features,Mr,xe.packageDirectory+\"/\",Sr.compilerOptions,Sr.host,zr,[Ze],Wr);return ti(Pe.resolvedModule?{path:Pe.resolvedModule.resolvedFileName,extension:Pe.resolvedModule.extension,packageId:Pe.resolvedModule.packageId,originalPath:Pe.resolvedModule.originalPath}:void 0)}return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0)}var Ue=e.pathIsRelative(Ar)?e.getPathComponents(Ar).slice(1):e.getPathComponents(Ar),fr=Ue.slice(1);if(fr.indexOf(\"..\")>=0||fr.indexOf(\".\")>=0||fr.indexOf(\"node_modules\")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var De=e.combinePaths(xe.packageDirectory,Ar),gr=e.getPathComponents(Oe);if(gr.indexOf(\"..\")>=0||gr.indexOf(\".\")>=0||gr.indexOf(\"node_modules\")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var Vr=Mt(nr?De.replace(/\\*/g,Oe):De+Oe),Tr=Dt(Vr,Oe,e.combinePaths(xe.packageDirectory,\"package.json\"),vr);return Tr||ti(w(xe,ye(Ze,Vr,!1,Sr)))}else if(typeof Ar==\"object\"&&Ar!==null)if(Array.isArray(Ar)){if(!e.length(Ar))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);for(var ct=0,Li=Ar;ct=0||pe(Sr.conditions,Yi)){var Wi=Ar[Yi],Pe=mr(Wi,Oe,nr);if(Pe)return Pe}}return}else if(Ar===null)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null,xe.packageDirectory,Je),ti(void 0);return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);function Mt(Rt){var Ii,Ki;return Rt===void 0?Rt:e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut})(e.getNormalizedAbsolutePath(Rt,(Ki=(Ii=Sr.host).getCurrentDirectory)===null||Ki===void 0?void 0:Ki.call(Ii)))}function xt(Rt,Ii){return e.ensureTrailingDirectorySeparator(e.combinePaths(Rt,Ii))}function ut(){return Sr.host.useCaseSensitiveFileNames?typeof Sr.host.useCaseSensitiveFileNames==\"boolean\"?Sr.host.useCaseSensitiveFileNames:Sr.host.useCaseSensitiveFileNames():!0}function Dt(Rt,Ii,Ki,Fi){var ui,Bt,wt,na;if((Ze===Q.TypeScript||Ze===Q.JavaScript||Ze===Q.Json)&&(Sr.compilerOptions.declarationDir||Sr.compilerOptions.outDir)&&Rt.indexOf(\"/node_modules/\")===-1&&(Sr.compilerOptions.configFile?e.startsWith(Mt(Sr.compilerOptions.configFile.fileName),xe.packageDirectory):!0)){var Ai=e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut}),Oi=[];if(Sr.compilerOptions.rootDir||Sr.compilerOptions.composite&&Sr.compilerOptions.configFilePath){var ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[]},((Bt=(ui=Sr.host).getCurrentDirectory)===null||Bt===void 0?void 0:Bt.call(ui))||\"\",Ai));Oi.push(ji)}else if(Sr.requestContainingDirectory){var Vi=Mt(e.combinePaths(Sr.requestContainingDirectory,\"index.ts\")),ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[Vi,Mt(Ki)]},((na=(wt=Sr.host).getCurrentDirectory)===null||na===void 0?void 0:na.call(wt))||\"\",Ai));Oi.push(ji);for(var at=e.ensureTrailingDirectorySeparator(ji);at&&at.length>1;){var At=e.getPathComponents(at);At.pop();var ba=e.getPathFromPathComponents(At);Oi.unshift(ba),at=e.ensureTrailingDirectorySeparator(ba)}}Oi.length>1&&Sr.reportDiagnostic(e.createCompilerDiagnostic(Fi?e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate,Ii===\"\"?\".\":Ii,Ki));for(var $a=0,Qa=Oi;$aie&&(ie=ve),ie===1)return ie}return ie}break;case 262:{var ee=0;return e.forEachChild(b,function(he){var F=w(he,se);switch(F){case 0:return;case 2:ee=2;return;case 1:return ee=1,!0;default:e.Debug.assertNever(F)}}),ee}case 261:return C(b,se);case 79:if(b.isInJSDocNamespace)return 0}return 1}function E(b,se){for(var J=b.propertyName||b.name,ie=b.parent;ie;){if(e.isBlock(ie)||e.isModuleBlock(ie)||e.isSourceFile(ie)){for(var R=ie.statements,q=void 0,O=0,ve=R;Oq)&&(q=he),q===1)return q}}if(q!==void 0)return q}ie=ie.parent}return 1}var Q;(function(b){b[b.None=0]=\"None\",b[b.IsContainer=1]=\"IsContainer\",b[b.IsBlockScopedContainer=2]=\"IsBlockScopedContainer\",b[b.IsControlFlowContainer=4]=\"IsControlFlowContainer\",b[b.IsFunctionLike=8]=\"IsFunctionLike\",b[b.IsFunctionExpression=16]=\"IsFunctionExpression\",b[b.HasLocals=32]=\"HasLocals\",b[b.IsInterface=64]=\"IsInterface\",b[b.IsObjectLiteralOrClassExpressionMethodOrAccessor=128]=\"IsObjectLiteralOrClassExpressionMethodOrAccessor\"})(Q||(Q={}));function le(b){return e.Debug.attachFlowNodeDebugInfo(b),b}var N=m();function p(b,se){e.performance.mark(\"beforeBind\"),e.perfLogger.logStartBindFile(\"\"+b.fileName),N(b,se),e.perfLogger.logStopBindFile(),e.performance.mark(\"afterBind\"),e.performance.measure(\"Bind\",\"beforeBind\",\"afterBind\")}e.bindSourceFile=p;function m(){var b,se,J,ie,R,q,O,ve,ee,he,F,x,X,$,A,y,V,L,P,k,Y,U,j=!1,H=0,I,l,d={flags:1},D={flags:1},fe=Ar();function g(ce,Rr,yi,qi,je){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(ce)||b,ce,Rr,yi,qi,je)}function ne(ce,Rr){b=ce,se=Rr,J=e.getEmitScriptTarget(se),U=ue(b,Rr),l=new e.Set,H=0,I=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(d),e.Debug.attachFlowNodeDebugInfo(D),b.locals||(e.tracing===null||e.tracing===void 0||e.tracing.push(\"bind\",\"bindSourceFile\",{path:b.path},!0),Da(b),e.tracing===null||e.tracing===void 0||e.tracing.pop(),b.symbolCount=H,b.classifiableNames=l,Ai()),b=void 0,se=void 0,J=void 0,ie=void 0,R=void 0,q=void 0,O=void 0,ve=void 0,ee=void 0,he=!1,F=void 0,x=void 0,X=void 0,$=void 0,A=void 0,y=void 0,V=void 0,P=void 0,k=!1,j=!1,Y=0}return ne;function ue(ce,Rr){return e.getStrictOptionValue(Rr,\"alwaysStrict\")&&!ce.isDeclarationFile?!0:!!ce.externalModuleIndicator}function We(ce,Rr){return H++,new I(ce,Rr)}function Fe(ce,Rr,yi){ce.flags|=yi,Rr.symbol=ce,ce.declarations=e.appendIfUnique(ce.declarations,Rr),yi&1955&&!ce.exports&&(ce.exports=e.createSymbolTable()),yi&6240&&!ce.members&&(ce.members=e.createSymbolTable()),ce.constEnumOnlyModule&&ce.flags&304&&(ce.constEnumOnlyModule=!1),yi&111551&&e.setValueDeclaration(ce,Rr)}function Z(ce){if(ce.kind===271)return ce.isExportEquals?\"export=\":\"default\";var Rr=e.getNameOfDeclaration(ce);if(Rr){if(e.isAmbientModule(ce)){var yi=e.getTextOfIdentifierOrLiteral(Rr);return e.isGlobalScopeAugmentation(ce)?\"__global\":'\"'.concat(yi,'\"')}if(Rr.kind===162){var qi=Rr.expression;if(e.isStringOrNumericLiteralLike(qi))return e.escapeLeadingUnderscores(qi.text);if(e.isSignedNumericLiteral(qi))return e.tokenToString(qi.operator)+qi.operand.text;e.Debug.fail(\"Only computed properties with literal names have declaration names\")}if(e.isPrivateIdentifier(Rr)){var je=e.getContainingClass(ce);if(!je)return;var Hr=je.symbol;return e.getSymbolNameForPrivateIdentifier(Hr,Rr.escapedText)}return e.isPropertyNameLiteral(Rr)?e.getEscapedTextOfIdentifierOrLiteral(Rr):void 0}switch(ce.kind){case 171:return\"__constructor\";case 179:case 174:case 323:return\"__call\";case 180:case 175:return\"__new\";case 176:return\"__index\";case 272:return\"__export\";case 305:return\"export=\";case 221:if(e.getAssignmentDeclarationKind(ce)===2)return\"export=\";e.Debug.fail(\"Unknown binary declaration kind\");break;case 317:return e.isJSDocConstructSignature(ce)?\"__new\":\"__call\";case 164:e.Debug.assert(ce.parent.kind===317,\"Impossible parameter parent kind\",function(){return\"parent is: \".concat(e.SyntaxKind?e.SyntaxKind[ce.parent.kind]:ce.parent.kind,\", expected JSDocFunctionType\")});var pt=ce.parent,Pt=pt.parameters.indexOf(ce);return\"arg\"+Pt}}function Be(ce){return e.isNamedDeclaration(ce)?e.declarationNameToString(ce.name):e.unescapeLeadingUnderscores(e.Debug.checkDefined(Z(ce)))}function ge(ce,Rr,yi,qi,je,Hr,pt){e.Debug.assert(pt||!e.hasDynamicName(yi));var Pt=e.hasSyntacticModifier(yi,512)||e.isExportSpecifier(yi)&&yi.name.escapedText===\"default\",ga=pt?\"__computed\":Pt&&Rr?\"default\":Z(yi),ua;if(ga===void 0)ua=We(0,\"__missing\");else if(ua=ce.get(ga),qi&2885600&&l.add(ga),!ua)ce.set(ga,ua=We(0,ga)),Hr&&(ua.isReplaceableByMethod=!0);else{if(Hr&&!ua.isReplaceableByMethod)return ua;if(ua.flags&je){if(ua.isReplaceableByMethod)ce.set(ga,ua=We(0,ga));else if(!(qi&3&&ua.flags&67108864)){e.isNamedDeclaration(yi)&&e.setParent(yi.name,yi);var Xn=ua.flags&2?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,jr=!0;(ua.flags&384||qi&384)&&(Xn=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,jr=!1);var fo=!1;e.length(ua.declarations)&&(Pt||ua.declarations&&ua.declarations.length&&yi.kind===271&&!yi.isExportEquals)&&(Xn=e.Diagnostics.A_module_cannot_have_multiple_default_exports,jr=!1,fo=!0);var xs=[];e.isTypeAliasDeclaration(yi)&&e.nodeIsMissing(yi.type)&&e.hasSyntacticModifier(yi,1)&&ua.flags&2887656&&xs.push(g(yi,e.Diagnostics.Did_you_mean_0,\"export type { \".concat(e.unescapeLeadingUnderscores(yi.name.escapedText),\" }\")));var Fo=e.getNameOfDeclaration(yi)||yi;e.forEach(ua.declarations,function(Ao,Ms){var Bs=e.getNameOfDeclaration(Ao)||Ao,xc=g(Bs,Xn,jr?Be(Ao):void 0);b.bindDiagnostics.push(fo?e.addRelatedInfo(xc,g(Fo,Ms===0?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):xc),fo&&xs.push(g(Bs,e.Diagnostics.The_first_export_default_is_here))});var ko=g(Fo,Xn,jr?Be(yi):void 0);b.bindDiagnostics.push(e.addRelatedInfo.apply(void 0,Ve([ko],xs,!1))),ua=We(0,ga)}}}return Fe(ua,yi,qi),ua.parent?e.Debug.assert(ua.parent===Rr,\"Existing symbol parent should match new one\"):ua.parent=Rr,ua}function Re(ce,Rr,yi){var qi=!!(e.getCombinedModifierFlags(ce)&1)||ze(ce);if(Rr&2097152)return ce.kind===275||ce.kind===265&&qi?ge(R.symbol.exports,R.symbol,ce,Rr,yi):ge(R.locals,void 0,ce,Rr,yi);if(e.isJSDocTypeAlias(ce)&&e.Debug.assert(e.isInJSFile(ce)),!e.isAmbientModule(ce)&&(qi||R.flags&64)){if(!R.locals||e.hasSyntacticModifier(ce,512)&&!Z(ce))return ge(R.symbol.exports,R.symbol,ce,Rr,yi);var je=Rr&111551?1048576:0,Hr=ge(R.locals,void 0,ce,je,yi);return Hr.exportSymbol=ge(R.symbol.exports,R.symbol,ce,Rr,yi),ce.localSymbol=Hr,Hr}else return ge(R.locals,void 0,ce,Rr,yi)}function ze(ce){if(ce.parent&&e.isModuleDeclaration(ce)&&(ce=ce.parent),!e.isJSDocTypeAlias(ce))return!1;if(!e.isJSDocEnumTag(ce)&&!!ce.fullName)return!0;var Rr=e.getNameOfDeclaration(ce);return Rr?!!(e.isPropertyAccessEntityNameExpression(Rr.parent)&&Wa(Rr.parent)||e.isDeclaration(Rr.parent)&&e.getCombinedModifierFlags(Rr.parent)&1):!1}function Ee(ce,Rr){var yi=R,qi=q,je=O;if(Rr&1?(ce.kind!==214&&(q=R),R=O=ce,Rr&32&&(R.locals=e.createSymbolTable()),Li(R)):Rr&2&&(O=ce,O.locals=void 0),Rr&4){var Hr=F,pt=x,Pt=X,ga=$,ua=V,Xn=P,jr=k,fo=Rr&16&&!e.hasSyntacticModifier(ce,256)&&!ce.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(ce)||ce.kind===170;fo||(F=le({flags:2}),Rr&144&&(F.node=ce)),$=fo||ce.kind===171||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213)?Ye():void 0,V=void 0,x=void 0,X=void 0,P=void 0,k=!1,_e(ce),ce.flags&=-2817,!(F.flags&1)&&Rr&8&&e.nodeIsPresent(ce.body)&&(ce.flags|=256,k&&(ce.flags|=512),ce.endFlowNode=F),ce.kind===305&&(ce.flags|=Y,ce.endFlowNode=F),$&&(n($,F),F=yr($),(ce.kind===171||ce.kind===170||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213))&&(ce.returnFlowNode=F)),fo||(F=Hr),x=pt,X=Pt,$=ga,V=ua,P=Xn,k=jr}else Rr&64?(he=!1,_e(ce),ce.flags=he?ce.flags|128:ce.flags&-129):_e(ce);R=yi,q=qi,O=je}function He(ce){rr(ce,function(Rr){return Rr.kind===256?Da(Rr):void 0}),rr(ce,function(Rr){return Rr.kind!==256?Da(Rr):void 0})}function rr(ce,Rr){Rr===void 0&&(Rr=Da),ce!==void 0&&e.forEach(ce,Rr)}function Ie(ce){e.forEachChild(ce,Da,rr)}function _e(ce){var Rr=j;if(j=!1,Ji(ce)){Ie(ce),bo(ce),j=Rr;return}switch(ce.kind>=237&&ce.kind<=253&&!se.allowUnreachableCode&&(ce.flowNode=F),ce.kind){case 241:si(ce);break;case 240:Di(ce);break;case 242:wi(ce);break;case 243:case 244:Xi(ce);break;case 239:et(ce);break;case 247:case 251:Gi(ce);break;case 246:case 245:_r(ce);break;case 252:pi(ce);break;case 249:ae(ce);break;case 263:Xe(ce);break;case 289:Jr(ce);break;case 238:ti(ce);break;case 250:Sr(ce);break;case 219:xe(ce);break;case 220:vr(ce);break;case 221:if(e.isDestructuringAssignment(ce)){j=Rr,mr(ce);return}fe(ce);break;case 215:Oe(ce);break;case 222:nr(ce);break;case 254:Pe(ce);break;case 206:case 207:Yi(ce);break;case 208:Wi(ce);break;case 230:Ui(ce);break;case 345:case 338:case 339:fr(ce);break;case 305:{He(ce.statements),Da(ce.endOfFileToken);break}case 235:case 262:He(ce.statements);break;case 203:Ue(ce);break;case 205:case 204:case 296:case 225:j=Rr;default:Ie(ce);break}bo(ce),j=Rr}function we(ce){switch(ce.kind){case 79:case 80:case 108:case 206:case 207:return ye(ce);case 208:return Ae(ce);case 212:case 230:return we(ce.expression);case 221:return ir(ce);case 219:return ce.operator===53&&we(ce.operand);case 216:return we(ce.expression)}return!1}function de(ce){return e.isDottedName(ce)||(e.isPropertyAccessExpression(ce)||e.isNonNullExpression(ce)||e.isParenthesizedExpression(ce))&&de(ce.expression)||e.isBinaryExpression(ce)&&ce.operatorToken.kind===27&&de(ce.right)||e.isElementAccessExpression(ce)&&(e.isStringOrNumericLiteralLike(ce.argumentExpression)||e.isEntityNameExpression(ce.argumentExpression))&&de(ce.expression)||e.isAssignmentExpression(ce)&&de(ce.left)}function ye(ce){return de(ce)||e.isOptionalChain(ce)&&ye(ce.expression)}function Ae(ce){if(ce.arguments)for(var Rr=0,yi=ce.arguments;Rr=117&&ce.originalKeywordKind<=125?b.bindDiagnostics.push(g(ce,ji(ce),e.declarationNameToString(ce))):ce.originalKeywordKind===132?e.isExternalModule(b)&&e.isInTopLevelContext(ce)?b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module,e.declarationNameToString(ce))):ce.flags&32768&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))):ce.originalKeywordKind===125&&ce.flags&8192&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))))}function ji(ce){return e.getContainingClass(ce)?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:b.externalModuleIndicator?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode}function Vi(ce){ce.escapedText===\"#constructor\"&&(b.parseDiagnostics.length||b.bindDiagnostics.push(g(ce,e.Diagnostics.constructor_is_a_reserved_word,e.declarationNameToString(ce))))}function at(ce){U&&e.isLeftHandSideExpression(ce.left)&&e.isAssignmentOperator(ce.operatorToken.kind)&&Qa(ce,ce.left)}function At(ce){U&&ce.variableDeclaration&&Qa(ce,ce.variableDeclaration.name)}function ba(ce){if(U&&ce.expression.kind===79){var Rr=e.getErrorSpanForNode(b,ce.expression);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,e.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}function $a(ce){return e.isIdentifier(ce)&&(ce.escapedText===\"eval\"||ce.escapedText===\"arguments\")}function Qa(ce,Rr){if(Rr&&Rr.kind===79){var yi=Rr;if($a(yi)){var qi=e.getErrorSpanForNode(b,Rr);b.bindDiagnostics.push(e.createFileDiagnostic(b,qi.start,qi.length,ai(ce),e.idText(yi)))}}}function ai(ce){return e.getContainingClass(ce)?e.Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:b.externalModuleIndicator?e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode:e.Diagnostics.Invalid_use_of_0_in_strict_mode}function Dn(ce){U&&Qa(ce,ce.name)}function ka(ce){return e.getContainingClass(ce)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:b.externalModuleIndicator?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5}function Ba(ce){if(J<2&&O.kind!==305&&O.kind!==261&&!e.isFunctionLikeOrClassStaticBlockDeclaration(O)){var Rr=e.getErrorSpanForNode(b,ce);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,ka(ce)))}}function pn(ce){J<1&&U&&ce.numericLiteralFlags&32&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode))}function Cn(ce){U&&Qa(ce,ce.operand)}function Bi(ce){U&&(ce.operator===45||ce.operator===46)&&Qa(ce,ce.operand)}function kn(ce){U&&Kn(ce,e.Diagnostics.with_statements_are_not_allowed_in_strict_mode)}function xn(ce){U&&e.getEmitScriptTarget(se)>=2&&(e.isDeclarationStatement(ce.statement)||e.isVariableStatement(ce.statement))&&Kn(ce.label,e.Diagnostics.A_label_is_not_allowed_here)}function Kn(ce,Rr,yi,qi,je){var Hr=e.getSpanOfTokenAtPosition(b,ce.pos);b.bindDiagnostics.push(e.createFileDiagnostic(b,Hr.start,Hr.length,Rr,yi,qi,je))}function Pn(ce,Rr,yi){eo(ce,Rr,Rr,yi)}function eo(ce,Rr,yi,qi){Rn(ce,{pos:e.getTokenPosOfNode(Rr,b),end:yi.end},qi)}function Rn(ce,Rr,yi){var qi=e.createFileDiagnostic(b,Rr.pos,Rr.end-Rr.pos,yi);ce?b.bindDiagnostics.push(qi):b.bindSuggestionDiagnostics=e.append(b.bindSuggestionDiagnostics,Ke(Ke({},qi),{category:e.DiagnosticCategory.Suggestion}))}function Da(ce){if(!!ce){e.setParent(ce,ie),e.tracing&&(ce.tracingPath=b.path);var Rr=U;if(Wn(ce),ce.kind>160){var yi=ie;ie=ce;var qi=ct(ce);qi===0?_e(ce):Ee(ce,qi),ie=yi}else{var yi=ie;ce.kind===1&&(ie=ce),bo(ce),ie=yi}U=Rr}}function bo(ce){if(e.hasJSDocNodes(ce))if(e.isInJSFile(ce))for(var Rr=0,yi=ce.jsDoc;Rr>\",0,Oe),En=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),Wn=Fu(void 0,void 0,void 0,e.emptyArray,Pe,void 0,0,0),to=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),Co=Fu(void 0,void 0,void 0,e.emptyArray,Bt,void 0,0,0),Ko=zl(nt,Li,!0),Oo=new e.Map,no={get yieldType(){return e.Debug.fail(\"Not supported\")},get returnType(){return e.Debug.fail(\"Not supported\")},get nextType(){return e.Debug.fail(\"Not supported\")}},$o=a_(Oe,Oe,Oe),Pr=a_(Oe,Oe,gr),xi=a_(ui,Oe,Tr),St={iterableCacheKey:\"iterationTypesOfAsyncIterable\",iteratorCacheKey:\"iterationTypesOfAsyncIterator\",iteratorSymbolName:\"asyncIterator\",getGlobalIteratorType:k3,getGlobalIterableType:C3,getGlobalIterableIteratorType:A3,getGlobalGeneratorType:N3,resolveIterationType:ag,mustHaveANextMethodDiagnostic:e.Diagnostics.An_async_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property},pa={iterableCacheKey:\"iterationTypesOfIterable\",iteratorCacheKey:\"iterationTypesOfIterator\",iteratorSymbolName:\"iterator\",getGlobalIteratorType:P3,getGlobalIterableType:Ax,getGlobalIterableIteratorType:I3,getGlobalGeneratorType:w3,resolveIterationType:function(r,i){return r},mustHaveANextMethodDiagnostic:e.Diagnostics.An_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property},dn,Jn=new e.Map,Qe=!1,Gr,S,Ce,qe,br,Zr,Si,Pi,Qi,Ct,sa,en,Wa,qn,mo,So,Go,ys,Pc,Vc,Kc,Xs,pc,hs,tc,ps,Qs,js,ds,Ji,ce,Rr,yi,qi,je,Hr,pt,Pt,ga,ua,Xn,jr,fo,xs,Fo=new e.Map,ko=0,Ao=0,Ms=0,Bs=!1,xc=0,su,tl,Zc,Rf=Bu(\"\"),al=If(0),Jo=ED({negative:!1,base10Value:\"0\"}),eu=[],Ws=[],pu=[],Uu=0,Ql=10,xl=[],Ya=[],du=[],vc=[],Kr=[],_i=[],Ei=[],tt=[],kt=[],bt=[],ia=[],Xt=[],Za=[],bn=[],_a=[],qa=[],rn=e.createDiagnosticCollection(),jn=e.createDiagnosticCollection(),Mo=new e.Map(e.getEntries({string:Li,number:nt,bigint:Mt,boolean:Ii,symbol:Ki,undefined:Tr})),ho=wp(),gs,Se,hr,Or=new e.Map,ki=new e.Map,dt=new e.Map,la=new e.Map,wa=new e.Map,On=new e.Map,No=e.createSymbolTable();No.set(mi.escapedName,mi);var jo=[[\".mts\",\".mjs\"],[\".ts\",\".js\"],[\".cts\",\".cjs\"],[\".mjs\",\".mjs\"],[\".js\",\".js\"],[\".cjs\",\".cjs\"],[\".tsx\",ye.jsx===1?\".jsx\":\".js\"],[\".jsx\",\".jsx\"],[\".json\",\".json\"]];return L9(),Di;function po(r){if(r){var i=e.getSourceFileOfNode(r);if(i)if(e.isJsxOpeningFragment(r)){if(i.localJsxFragmentNamespace)return i.localJsxFragmentNamespace;var t=i.pragmas.get(\"jsxfrag\");if(t){var o=e.isArray(t)?t[0]:t;if(i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),e.visitNode(i.localJsxFragmentFactory,$n),i.localJsxFragmentFactory)return i.localJsxFragmentNamespace=e.getFirstIdentifier(i.localJsxFragmentFactory).escapedText}var s=jS(r);if(s)return i.localJsxFragmentFactory=s,i.localJsxFragmentNamespace=e.getFirstIdentifier(s).escapedText}else{var u=Gn(i);if(u)return i.localJsxNamespace=u}}return gs||(gs=\"React\",ye.jsxFactory?(Se=e.parseIsolatedEntityName(ye.jsxFactory,Ae),e.visitNode(Se,$n),Se&&(gs=e.getFirstIdentifier(Se).escapedText)):ye.reactNamespace&&(gs=e.escapeLeadingUnderscores(ye.reactNamespace))),Se||(Se=e.factory.createQualifiedName(e.factory.createIdentifier(e.unescapeLeadingUnderscores(gs)),\"createElement\")),gs}function Gn(r){if(r.localJsxNamespace)return r.localJsxNamespace;var i=r.pragmas.get(\"jsx\");if(i){var t=e.isArray(i)?i[0]:i;if(r.localJsxFactory=e.parseIsolatedEntityName(t.arguments.factory,Ae),e.visitNode(r.localJsxFactory,$n),r.localJsxFactory)return r.localJsxNamespace=e.getFirstIdentifier(r.localJsxFactory).escapedText}}function $n(r){return e.setTextRangePosEnd(r,-1,-1),e.visitEachChild(r,$n,e.nullTransformationContext)}function Ho(r,i){return X6(r,i),wr}function Zo(r,i,t,o,s,u){var h=r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u),z=rn.lookup(h);return z||(rn.add(h),h)}function Es(r,i,t,o,s,u,h){var z=Xr(i,t,o,s,u,h);return z.skippedOn=r,z}function yc(r,i,t,o,s,u){return r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u)}function Xr(r,i,t,o,s,u){var h=yc(r,i,t,o,s,u);return rn.add(h),h}function Ls(r,i){r?rn.add(i):jn.add(Ke(Ke({},i),{category:e.DiagnosticCategory.Suggestion}))}function Ic(r,i,t,o,s,u,h){if(i.pos<0||i.end<0){if(!r)return;var z=e.getSourceFileOfNode(i);Ls(r,\"message\"in t?e.createFileDiagnostic(z,0,0,t,o,s,u,h):e.createDiagnosticForFileFromMessageChain(z,t));return}Ls(r,\"message\"in t?e.createDiagnosticForNode(i,t,o,s,u,h):e.createDiagnosticForNodeFromMessageChain(i,t))}function zu(r,i,t,o,s,u,h){var z=Xr(r,t,o,s,u,h);if(i){var me=e.createDiagnosticForNode(r,e.Diagnostics.Did_you_forget_to_use_await);e.addRelatedInfo(z,me)}return z}function vf(r,i){var t=Array.isArray(r)?e.forEach(r,e.getJSDocDeprecatedTag):e.getJSDocDeprecatedTag(r);return t&&e.addRelatedInfo(i,e.createDiagnosticForNode(t,e.Diagnostics.The_declaration_was_marked_as_deprecated_here)),jn.add(i),i}function P_(r){return!!(p0(r)&268435456)}function El(r,i,t){var o=e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,t);return vf(i,o)}function vp(r,i,t,o){var s=t?e.createDiagnosticForNode(r,e.Diagnostics.The_signature_0_of_1_is_deprecated,o,t):e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,o);return vf(i,s)}function oo(r,i,t){ge++;var o=new We(r|33554432,i);return o.checkFlags=t||0,o}function I_(r){var i=0;return r&2&&(i|=111551),r&1&&(i|=111550),r&4&&(i|=0),r&8&&(i|=900095),r&16&&(i|=110991),r&32&&(i|=899503),r&64&&(i|=788872),r&256&&(i|=899327),r&128&&(i|=899967),r&512&&(i|=110735),r&8192&&(i|=103359),r&32768&&(i|=46015),r&65536&&(i|=78783),r&262144&&(i|=526824),r&524288&&(i|=788968),r&2097152&&(i|=2097152),i}function yp(r,i){i.mergeId||(i.mergeId=E,E++),xl[i.mergeId]=r}function Yl(r){var i=oo(r.flags,r.escapedName);return i.declarations=r.declarations?r.declarations.slice():[],i.parent=r.parent,r.valueDeclaration&&(i.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(i.constEnumOnlyModule=!0),r.members&&(i.members=new e.Map(r.members)),r.exports&&(i.exports=new e.Map(r.exports)),yp(i,r),i}function Bf(r,i,t){if(t===void 0&&(t=!1),!(r.flags&I_(i.flags))||(i.flags|r.flags)&67108864){if(i===r)return r;if(!(r.flags&33554432)){var o=os(r);if(o===xe)return i;r=Yl(o)}i.flags&512&&r.flags&512&&r.constEnumOnlyModule&&!i.constEnumOnlyModule&&(r.constEnumOnlyModule=!1),r.flags|=i.flags,i.valueDeclaration&&e.setValueDeclaration(r,i.valueDeclaration),e.addRange(r.declarations,i.declarations),i.members&&(r.members||(r.members=e.createSymbolTable()),gu(r.members,i.members,t)),i.exports&&(r.exports||(r.exports=e.createSymbolTable()),gu(r.exports,i.exports,t)),t||yp(r,i)}else if(r.flags&1024)r!==pe&&Xr(i.declarations&&e.getNameOfDeclaration(i.declarations[0]),e.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,tn(r));else{var s=!!(r.flags&384||i.flags&384),u=!!(r.flags&2||i.flags&2),h=s?e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:u?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,z=i.declarations&&e.getSourceFileOfNode(i.declarations[0]),me=r.declarations&&e.getSourceFileOfNode(r.declarations[0]),Me=e.isPlainJsFile(z,ye.checkJs),$e=e.isPlainJsFile(me,ye.checkJs),tr=tn(i);if(z&&me&&dn&&!s&&z!==me){var dr=e.comparePaths(z.path,me.path)===-1?z:me,Dr=dr===z?me:z,Qr=e.getOrUpdate(dn,\"\".concat(dr.path,\"|\").concat(Dr.path),function(){return{firstFile:dr,secondFile:Dr,conflictingSymbols:new e.Map}}),li=e.getOrUpdate(Qr.conflictingSymbols,tr,function(){return{isBlockScoped:u,firstFileLocations:[],secondFileLocations:[]}});Me||Ti(li.firstFileLocations,i),$e||Ti(li.secondFileLocations,r)}else Me||Cl(i,h,tr,r),$e||Cl(r,h,tr,i)}return r;function Ti(Ci,$i){if($i.declarations)for(var Zi=0,qt=$i.declarations;Zi=5||e.some(u.relatedInformation,function(Qr){return e.compareDiagnostics(Qr,Dr)===0||e.compareDiagnostics(Qr,dr)===0}))return\"continue\";e.addRelatedInfo(u,e.length(u.relatedInformation)?Dr:dr)},z=0,me=o||e.emptyArray;z1);return}if(e.isGlobalScopeAugmentation(s))gu(ii,s.symbol.exports);else{var u=r.parent.parent.flags&16777216?void 0:e.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found,h=Pl(r,r,u,!0);if(!h)return;if(h=Us(h),h.flags&1920)if(e.some(S,function(Qr){return h===Qr.symbol})){var z=Bf(s.symbol,h,!0);Ce||(Ce=new e.Map),Ce.set(r.text,z)}else{if(((t=h.exports)===null||t===void 0?void 0:t.get(\"__export\"))&&((o=s.symbol.exports)===null||o===void 0?void 0:o.size))for(var me=Jv(h,\"resolvedExports\"),Me=0,$e=e.arrayFrom(s.symbol.exports.entries());Me<$e.length;Me++){var tr=$e[Me],dr=tr[0],Dr=tr[1];me.has(dr)&&!h.exports.has(dr)&&Bf(me.get(dr),Dr)}Bf(h,s.symbol)}else Xr(r,e.Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity,r.text)}}function sd(r,i,t){i.forEach(function(s,u){var h=r.get(u);h?e.forEach(h.declarations,o(e.unescapeLeadingUnderscores(u),t)):r.set(u,s)});function o(s,u){return function(h){return rn.add(e.createDiagnosticForNode(h,u,s))}}}function Aa(r){if(r.flags&33554432)return r;var i=y(r);return Ya[i]||(Ya[i]=new X)}function va(r){var i=A(r);return du[i]||(du[i]=new $)}function Cu(r){return r.kind===305&&!e.isExternalOrCommonJsModule(r)}function qs(r,i,t){if(t){var o=so(r.get(i));if(o){if(e.Debug.assert((e.getCheckFlags(o)&1)===0,\"Should never get an instantiated symbol here.\"),o.flags&t)return o;if(o.flags&2097152){var s=Ps(o);if(s===xe||s.flags&t)return o}}}}function cd(r,i){var t=r.parent,o=r.parent.parent,s=qs(t.locals,i,111551),u=qs(Nf(o.symbol),i,111551);return s&&u?[s,u]:e.Debug.fail(\"There should exist two symbols, one as property declaration and one as parameter declaration\")}function ns(r,i){var t=e.getSourceFileOfNode(r),o=e.getSourceFileOfNode(i),s=e.getEnclosingBlockScopeContainer(r);if(t!==o){if(er&&(t.externalModuleIndicator||o.externalModuleIndicator)||!e.outFile(ye)||_m(i)||r.flags&16777216||Me(i,r))return!0;var u=l.getSourceFiles();return u.indexOf(t)<=u.indexOf(o)}if(r.pos<=i.pos&&!(e.isPropertyDeclaration(r)&&e.isThisProperty(i.parent)&&!r.initializer&&!r.exclamationToken)){if(r.kind===203){var h=e.getAncestor(i,203);return h?e.findAncestor(h,e.isBindingElement)!==e.findAncestor(r,e.isBindingElement)||r.postr.end)return!1;var Qr=e.findAncestor(dr,function(li){if(li===tr)return\"quit\";switch(li.kind){case 214:return!0;case 167:return Dr&&(e.isPropertyDeclaration(tr)&&li.parent===tr.parent||e.isParameterPropertyDeclaration(tr,tr.parent)&&li.parent===tr.parent.parent)?\"quit\":!0;case 235:switch(li.parent.kind){case 172:case 169:case 173:return!0;default:return!1}default:return!1}});return Qr===void 0}}function nl(r,i,t){var o=e.getEmitScriptTarget(ye),s=i;if(e.isParameter(t)&&s.body&&r.valueDeclaration&&r.valueDeclaration.pos>=s.body.pos&&r.valueDeclaration.end<=s.body.end&&o>=2){var u=va(s);return u.declarationRequiresScopeChange===void 0&&(u.declarationRequiresScopeChange=e.forEach(s.parameters,h)||!1),!u.declarationRequiresScopeChange}return!1;function h(me){return z(me.name)||!!me.initializer&&z(me.initializer)}function z(me){switch(me.kind){case 214:case 213:case 256:case 171:return!1;case 169:case 172:case 173:case 296:return z(me.name);case 167:return e.hasStaticModifier(me)?o<99||!ir:z(me.name);default:return e.isNullishCoalesce(me)||e.isOptionalChain(me)?o<7:e.isBindingElement(me)&&me.dotDotDotToken&&e.isObjectBindingPattern(me.parent)?o<4:e.isTypeNode(me)?!1:e.forEachChild(me,z)||!1}}}function hc(r){return e.isAssertionExpression(r)&&e.isConstTypeReference(r.type)||e.isJSDocTypeTag(r)&&e.isConstTypeReference(r.typeExpression)}function es(r,i,t,o,s,u,h,z){return h===void 0&&(h=!1),z===void 0&&(z=!0),u_(r,i,t,o,s,u,h,z,qs)}function u_(r,i,t,o,s,u,h,z,me){var Me,$e,tr,dr=r,Dr,Qr,li,Ti,Ci,$i=!1,Zi=r,qt,Nt=!1;e:for(;r;){if(i===\"const\"&&hc(r))return;if(r.locals&&!Cu(r)&&(Dr=me(r.locals,i,t))){var Ra=!0;if(e.isFunctionLike(r)&&Qr&&Qr!==r.body?(t&Dr.flags&788968&&Qr.kind!==320&&(Ra=Dr.flags&262144?Qr===r.type||Qr.kind===164||Qr.kind===340||Qr.kind===341||Qr.kind===163:!1),t&Dr.flags&3&&(nl(Dr,r,Qr)?Ra=!1:Dr.flags&1&&(Ra=Qr.kind===164||Qr===r.type&&!!e.findAncestor(Dr.valueDeclaration,e.isParameter)))):r.kind===189&&(Ra=Qr===r.trueType),Ra)break e;Dr=void 0}switch($i=$i||w_(r,Qr),r.kind){case 305:if(!e.isExternalOrCommonJsModule(r))break;Nt=!0;case 261:var ca=((Me=Et(r))===null||Me===void 0?void 0:Me.exports)||we;if(r.kind===305||e.isModuleDeclaration(r)&&r.flags&16777216&&!e.isGlobalScopeAugmentation(r)){if(Dr=ca.get(\"default\")){var Sn=e.getLocalSymbolForExportDefault(Dr);if(Sn&&Dr.flags&t&&Sn.escapedName===i)break e;Dr=void 0}var ja=ca.get(i);if(ja&&ja.flags===2097152&&(e.getDeclarationOfKind(ja,275)||e.getDeclarationOfKind(ja,274)))break}if(i!==\"default\"&&(Dr=me(ca,i,t&2623475)))if(e.isSourceFile(r)&&r.commonJsModuleIndicator&&!(!(($e=Dr.declarations)===null||$e===void 0)&&$e.some(e.isJSDocTypeAlias)))Dr=void 0;else break e;break;case 260:if(Dr=me(((tr=Et(r))===null||tr===void 0?void 0:tr.exports)||we,i,t&8))break e;break;case 167:if(!e.isStatic(r)){var Fn=Tf(r.parent);Fn&&Fn.locals&&me(Fn.locals,i,t&111551)&&(Ti=r)}break;case 257:case 226:case 258:if(Dr=me(Et(r).members||we,i,t&788968)){if(!ld(Dr,r)){Dr=void 0;break}if(Qr&&e.isStatic(Qr)){Xr(Zi,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);return}break e}if(r.kind===226&&t&32){var wn=r.name;if(wn&&i===wn.escapedText){Dr=r.symbol;break e}}break;case 228:if(Qr===r.expression&&r.parent.token===94){var Tn=r.parent.parent;if(e.isClassLike(Tn)&&(Dr=me(Et(Tn).members,i,t&788968))){o&&Xr(Zi,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters);return}}break;case 162:if(qt=r.parent.parent,(e.isClassLike(qt)||qt.kind===258)&&(Dr=me(Et(qt).members,i,t&788968))){Xr(Zi,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);return}break;case 214:if(e.getEmitScriptTarget(ye)>=2)break;case 169:case 171:case 172:case 173:case 256:if(t&3&&i===\"arguments\"){Dr=or;break e}break;case 213:if(t&3&&i===\"arguments\"){Dr=or;break e}if(t&16){var Eo=r.name;if(Eo&&i===Eo.escapedText){Dr=r.symbol;break e}}break;case 165:r.parent&&r.parent.kind===164&&(r=r.parent),r.parent&&(e.isClassElement(r.parent)||r.parent.kind===257)&&(r=r.parent);break;case 345:case 338:case 339:var lt=e.getJSDocRoot(r);lt&&(r=lt.parent);break;case 164:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&(Ci||(Ci=r));break;case 203:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&e.isParameterDeclaration(r)&&!Ci&&(Ci=r);break;case 190:if(t&262144){var it=r.typeParameter.name;if(it&&i===it.escapedText){Dr=r.typeParameter.symbol;break e}}break}ud(r)&&(li=r),Qr=r,r=e.isJSDocTemplateTag(r)?e.getEffectiveContainerForJSDocTemplateTag(r)||r.parent:(e.isJSDocParameterTag(r)||e.isJSDocReturnTag(r))&&e.getHostSignatureFromJSDoc(r)||r.parent}if(u&&Dr&&(!li||Dr!==li.symbol)&&(Dr.isReferenced|=t),!Dr){if(Qr&&(e.Debug.assert(Qr.kind===305),Qr.commonJsModuleIndicator&&i===\"exports\"&&t&Qr.symbol.flags))return Qr.symbol;h||(Dr=me(ii,i,t))}if(!Dr&&dr&&e.isInJSFile(dr)&&dr.parent&&e.isRequireCall(dr.parent,!1))return qr;if(!Dr){o&&fe(function(){if(!Zi||!fd(Zi,i,s)&&!bp(Zi)&&!Tp(Zi,i,t)&&!O_(Zi,i)&&!F_(Zi,i,t)&&!M_(Zi,i,t)&&!_d(Zi,i,t)){var Ia=void 0;if(z&&UuCi.pos&&cn.parent.locals&&me(cn.parent.locals,Ka.escapedName,t)===Ka&&Xr(Zi,e.Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString(Ci.name),e.declarationNameToString(Zi))}if(Dr&&Zi&&t&111551&&Dr.flags&2097152&&!(Dr.flags&111551)&&!e.isValidTypeOnlyAliasUseSite(Zi)){var Un=vu(Dr);if(Un){var oa=Un.kind===275?e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type,Mn=e.unescapeLeadingUnderscores(i);Jf(Xr(Zi,oa,Mn),Un,Mn)}}}),Dr}function Jf(r,i,t){return i?e.addRelatedInfo(r,e.createDiagnosticForNode(i,i.kind===275?e.Diagnostics._0_was_exported_here:e.Diagnostics._0_was_imported_here,t)):r}function w_(r,i){return r.kind!==214&&r.kind!==213?e.isTypeQueryNode(r)||(e.isFunctionLikeDeclaration(r)||r.kind===167&&!e.isStatic(r))&&(!i||i!==r.name):i&&i===r.name?!1:r.asteriskToken||e.hasSyntacticModifier(r,256)?!0:!e.getImmediatelyInvokedFunctionExpression(r)}function ud(r){switch(r.kind){case 256:case 257:case 258:case 260:case 259:case 261:return!0;default:return!1}}function ku(r){return e.isString(r)?e.unescapeLeadingUnderscores(r):e.declarationNameToString(r)}function ld(r,i){if(r.declarations)for(var t=0,o=r.declarations;t=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\",Me=o.exports.get(\"export=\"),$e=Me.valueDeclaration,tr=Xr(r.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,tn(o),me);$e&&e.addRelatedInfo(tr,e.createDiagnosticForNode($e,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,me))}else f_(o,r);else if(z||h){var dr=Us(o,i)||os(o,i);return Gc(r,o,dr,!1),dr}return Gc(r,s,void 0,!1),s}}function f_(r,i){var t,o,s;if(!((t=r.exports)===null||t===void 0)&&t.has(i.symbol.escapedName))Xr(i.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,tn(r),tn(i.symbol));else{var u=Xr(i.name,e.Diagnostics.Module_0_has_no_default_export,tn(r)),h=(o=r.exports)===null||o===void 0?void 0:o.get(\"__export\");if(h){var z=(s=h.declarations)===null||s===void 0?void 0:s.find(function(me){var Me,$e;return!!(e.isExportDeclaration(me)&&me.moduleSpecifier&&(($e=(Me=ac(me,me.moduleSpecifier))===null||Me===void 0?void 0:Me.exports)===null||$e===void 0?void 0:$e.has(\"default\")))});z&&e.addRelatedInfo(u,e.createDiagnosticForNode(z,e.Diagnostics.export_Asterisk_does_not_re_export_a_default))}}}function md(r,i){var t=r.parent.parent.moduleSpecifier,o=ac(r,t),s=Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function ks(r,i){var t=r.parent.moduleSpecifier,o=t&&ac(r,t),s=t&&Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function Wu(r,i){if(r===xe&&i===xe)return xe;if(r.flags&790504)return r;var t=oo(r.flags|i.flags,r.escapedName);return t.declarations=e.deduplicate(e.concatenate(r.declarations,i.declarations),e.equateValues),t.parent=r.parent||i.parent,r.valueDeclaration&&(t.valueDeclaration=r.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),r.exports&&(t.exports=new e.Map(r.exports)),t}function Zl(r,i,t,o){if(r.flags&1536){var s=dc(r).get(i.escapedText),u=os(s,o);return Gc(t,s,u,!1),u}}function R_(r,i){if(r.flags&3){var t=r.valueDeclaration.type;if(t)return os(bi(Va(t),i))}}function kl(r,i,t){var o,s;t===void 0&&(t=!1);var u=e.getExternalModuleRequireArgument(r)||r.moduleSpecifier,h=ac(r,u),z=!e.isPropertyAccessExpression(i)&&i.propertyName||i.name;if(!!e.isIdentifier(z)){var me=z.escapedText===\"default\"&&!!(ye.allowSyntheticDefaultImports||e.getESModuleInterop(ye)),Me=Wf(h,u,!1,me);if(Me&&z.escapedText){if(e.isShorthandAmbientModuleSymbol(h))return h;var $e=void 0;h&&h.exports&&h.exports.get(\"export=\")?$e=bi(Jt(Me),z.escapedText,!0):$e=R_(Me,z.escapedText),$e=os($e,t);var tr=Zl(Me,z,i,t);if(tr===void 0&&z.escapedText===\"default\"){var dr=(o=h.declarations)===null||o===void 0?void 0:o.find(e.isSourceFile);(Uf(u)||L_(dr,h,t,u))&&(tr=Us(h,t)||os(h,t))}var Dr=tr&&$e&&tr!==$e?Wu($e,tr):tr||$e;if(!Dr){var Qr=cl(h,r),li=e.declarationNameToString(z),Ti=v0(z,Me);if(Ti!==void 0){var Ci=tn(Ti),$i=Xr(z,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,Qr,li,Ci);Ti.valueDeclaration&&e.addRelatedInfo($i,e.createDiagnosticForNode(Ti.valueDeclaration,e.Diagnostics._0_is_declared_here,Ci))}else!((s=h.exports)===null||s===void 0)&&s.has(\"default\")?Xr(z,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,Qr,li):__(r,z,li,h,Qr)}return Dr}}}function __(r,i,t,o,s){var u,h,z=(h=(u=o.valueDeclaration)===null||u===void 0?void 0:u.locals)===null||h===void 0?void 0:h.get(i.escapedText),me=o.exports;if(z){var Me=me==null?void 0:me.get(\"export=\");if(Me)_l(Me,z)?zd(r,i,t,s):Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t);else{var $e=me?e.find(Y_(me),function(dr){return!!_l(dr,z)}):void 0,tr=$e?Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2,s,t,tn($e)):Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported,s,t);z.declarations&&e.addRelatedInfo.apply(void 0,Ve([tr],e.map(z.declarations,function(dr,Dr){return e.createDiagnosticForNode(dr,Dr===0?e.Diagnostics._0_is_declared_here:e.Diagnostics.and_here,t)}),!1))}}else Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t)}function zd(r,i,t,o){if(er>=e.ModuleKind.ES2015){var s=e.getESModuleInterop(ye)?e.Diagnostics._0_can_only_be_imported_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;Xr(i,s,t)}else if(e.isInJSFile(r)){var s=e.getESModuleInterop(ye)?e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;Xr(i,s,t)}else{var s=e.getESModuleInterop(ye)?e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;Xr(i,s,t,t,o)}}function Al(r,i){var t=e.isBindingElement(r)?e.getRootDeclaration(r):r.parent.parent.parent,o=wc(t),s=kl(t,o||r,i),u=r.propertyName||r.name;return o&&s&&e.isIdentifier(u)?os(bi(Jt(s),u.escapedText),i):(Gc(r,void 0,s,!1),s)}function wc(r){if(e.isVariableDeclaration(r)&&r.initializer&&e.isPropertyAccessExpression(r.initializer))return r.initializer}function qu(r,i){var t=Us(r.parent.symbol,i);return Gc(r,void 0,t,!1),t}function Vu(r,i,t){var o=r.parent.parent.moduleSpecifier?kl(r.parent.parent,r,t):Ds(r.propertyName||r.name,i,!1,t);return Gc(r,void 0,o,!1),o}function ef(r,i){var t=e.isExportAssignment(r)?r.expression:r.right,o=sl(t,i);return Gc(r,void 0,o,!1),o}function sl(r,i){if(e.isClassExpression(r))return Os(r).symbol;if(!(!e.isEntityName(r)&&!e.isEntityNameExpression(r))){var t=Ds(r,901119,!0,i);return t||(Os(r),va(r).resolvedSymbol)}}function p_(r,i){var t=r.initializer;return sl(t,i)}function Df(r,i){if(!!(e.isBinaryExpression(r.parent)&&r.parent.left===r&&r.parent.operatorToken.kind===63))return sl(r.parent.right,i)}function Ec(r,i){switch(i===void 0&&(i=!1),r.kind){case 265:case 254:return dd(r,i);case 267:return l_(r,i);case 268:return md(r,i);case 274:return ks(r,i);case 270:case 203:return Al(r,i);case 275:return Vu(r,901119,i);case 271:case 221:return ef(r,i);case 264:return qu(r,i);case 297:return Ds(r.name,901119,!0,i);case 296:return p_(r,i);case 207:case 206:return Df(r,i);default:return e.Debug.fail()}}function Zn(r,i){return i===void 0&&(i=901119),r?(r.flags&(2097152|i))===2097152||!!(r.flags&2097152&&r.flags&67108864):!1}function os(r,i){return!i&&Zn(r)?Ps(r):r}function Ps(r){e.Debug.assert((r.flags&2097152)!==0,\"Should only get Alias here.\");var i=Aa(r);if(i.aliasTarget)i.aliasTarget===vr&&(i.aliasTarget=xe);else{i.aliasTarget=vr;var t=ru(r);if(!t)return e.Debug.fail();var o=Ec(t);i.aliasTarget===vr?i.aliasTarget=o||xe:Xr(t,e.Diagnostics.Circular_definition_of_import_alias_0,tn(r))}return i.aliasTarget}function d_(r){var i=Aa(r);if(i.aliasTarget!==vr)return Ps(r)}function Gc(r,i,t,o){if(!r||e.isPropertyAccessExpression(r))return!1;var s=Et(r);if(e.isTypeOnlyImportOrExportDeclaration(r)){var u=Aa(s);return u.typeOnlyDeclaration=r,!0}var h=Aa(s);return B_(h,i,o)||B_(h,t,o)}function B_(r,i,t){var o,s,u;if(i&&(r.typeOnlyDeclaration===void 0||t&&r.typeOnlyDeclaration===!1)){var h=(s=(o=i.exports)===null||o===void 0?void 0:o.get(\"export=\"))!==null&&s!==void 0?s:i,z=h.declarations&&e.find(h.declarations,e.isTypeOnlyImportOrExportDeclaration);r.typeOnlyDeclaration=(u=z!=null?z:Aa(h).typeOnlyDeclaration)!==null&&u!==void 0?u:!1}return!!r.typeOnlyDeclaration}function vu(r){if(!!(r.flags&2097152)){var i=Aa(r);return i.typeOnlyDeclaration||void 0}}function Gt(r){var i=Et(r),t=Ps(i);if(t){var o=t===xe||t.flags&111551&&!Av(t)&&!vu(i);o&&As(i)}}function As(r){var i=Aa(r);if(!i.referenced){i.referenced=!0;var t=ru(r);if(!t)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(t)){var o=os(r);(o===xe||o.flags&111551)&&Os(t.moduleReference)}}}function vn(r){var i=Aa(r);i.constEnumReferenced||(i.constEnumReferenced=!0)}function Nl(r,i){return r.kind===79&&e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),r.kind===79||r.parent.kind===161?Ds(r,1920,!1,i):(e.Debug.assert(r.parent.kind===265),Ds(r,901119,!1,i))}function cl(r,i){return r.parent?cl(r.parent,i)+\".\"+tn(r):tn(r,i,void 0,20)}function rf(r){for(;e.isQualifiedName(r.parent);)r=r.parent;return r}function Ut(r){var i=e.getFirstIdentifier(r),t=es(i,i.escapedText,111551,void 0,i,!0);if(!!t){for(;e.isQualifiedName(i.parent);){var o=Jt(t);if(t=bi(o,i.parent.right.escapedText),!t)return;i=i.parent}return t}}function Ds(r,i,t,o,s){if(!e.nodeIsMissing(r)){var u=1920|(e.isInJSFile(r)?i&111551:0),h;if(r.kind===79){var z=i===u||e.nodeIsSynthesized(r)?e.Diagnostics.Cannot_find_namespace_0:HE(e.getFirstIdentifier(r)),me=e.isInJSFile(r)&&!e.nodeIsSynthesized(r)?bf(r,i):void 0;if(h=so(es(s||r,r.escapedText,i,t||me?void 0:z,r,!0,!1)),!h)return so(me)}else if(r.kind===161||r.kind===206){var Me=r.kind===161?r.left:r.expression,$e=r.kind===161?r.right:r.name,tr=Ds(Me,u,t,!1,s);if(!tr||e.nodeIsMissing($e))return;if(tr===xe)return tr;if(tr.valueDeclaration&&e.isInJSFile(tr.valueDeclaration)&&e.isVariableDeclaration(tr.valueDeclaration)&&tr.valueDeclaration.initializer&&xk(tr.valueDeclaration.initializer)){var dr=tr.valueDeclaration.initializer.arguments[0],Dr=ac(dr,dr);if(Dr){var Qr=Us(Dr);Qr&&(tr=Qr)}}if(h=so(qs(dc(tr),$e.escapedText,i)),!h){if(!t){var li=cl(tr),Ti=e.declarationNameToString($e),Ci=v0($e,tr);if(Ci){Xr($e,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,li,Ti,tn(Ci));return}var $i=e.isQualifiedName(r)&&rf(r),Zi=qe&&i&788968&&$i&&!e.isTypeOfExpression($i.parent)&&Ut($i);if(Zi){Xr($i,e.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,e.entityNameToString($i));return}if(i&1920&&e.isQualifiedName(r.parent)){var qt=so(qs(dc(tr),$e.escapedText,788968));if(qt){Xr(r.parent.right,e.Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,tn(qt),e.unescapeLeadingUnderscores(r.parent.right.escapedText));return}}Xr($e,e.Diagnostics.Namespace_0_has_no_exported_member_1,li,Ti)}return}}else throw e.Debug.assertNever(r,\"Unknown entity name kind.\");return e.Debug.assert((e.getCheckFlags(h)&1)===0,\"Should never get an instantiated symbol here.\"),!e.nodeIsSynthesized(r)&&e.isEntityName(r)&&(h.flags&2097152||r.parent.kind===271)&&Gc(e.getAliasDeclarationFromName(r),h,void 0,!0),h.flags&i||o?h:Ps(h)}}function bf(r,i){if(Dh(r.parent)){var t=bs(r.parent);if(t)return es(t,r.escapedText,i,void 0,r,!0)}}function bs(r){var i=e.findAncestor(r,function(u){return e.isJSDocNode(u)||u.flags&8388608?e.isJSDocTypeAlias(u):\"quit\"});if(!i){var t=e.getJSDocHost(r);if(t&&e.isExpressionStatement(t)&&e.isPrototypePropertyAssignment(t.expression)){var o=Et(t.expression.left);if(o)return Dc(o)}if(t&&e.isFunctionExpression(t)&&e.isPrototypePropertyAssignment(t.parent)&&e.isExpressionStatement(t.parent.parent)){var o=Et(t.parent.left);if(o)return Dc(o)}if(t&&(e.isObjectLiteralMethod(t)||e.isPropertyAssignment(t))&&e.isBinaryExpression(t.parent.parent)&&e.getAssignmentDeclarationKind(t.parent.parent)===6){var o=Et(t.parent.parent.left);if(o)return Dc(o)}var s=e.getEffectiveJSDocHost(r);if(s&&e.isFunctionLike(s)){var o=Et(s);return o&&o.valueDeclaration}}}function Dc(r){var i=r.parent.valueDeclaration;if(!!i){var t=e.isAssignmentDeclaration(i)?e.getAssignedExpandoInitializer(i):e.hasOnlyExpressionInitializer(i)?e.getDeclaredExpandoInitializer(i):void 0;return t||i}}function Cc(r){var i=r.valueDeclaration;if(!(!i||!e.isInJSFile(i)||r.flags&524288||e.getExpandoInitializer(i,!1))){var t=e.isVariableDeclaration(i)?e.getDeclaredExpandoInitializer(i):e.getAssignedExpandoInitializer(i);if(t){var o=Et(t);if(o)return iS(o,r)}}}function ac(r,i,t){var o=e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Classic,s=o?e.Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:e.Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;return Pl(r,i,t?void 0:s)}function Pl(r,i,t,o){return o===void 0&&(o=!1),e.isStringLiteralLike(i)?Il(r,i.text,t,i,o):void 0}function Il(r,i,t,o,s){var u,h,z,me,Me,$e,tr,dr;if(s===void 0&&(s=!1),e.startsWith(i,\"@types/\")){var Dr=e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,Qr=e.removePrefix(i,\"@types/\");Xr(o,Dr,Qr,i)}var li=b_(i,!0);if(li)return li;var Ti=e.getSourceFileOfNode(r),Ci=e.isStringLiteralLike(r)?r:((u=e.findAncestor(r,e.isImportCall))===null||u===void 0?void 0:u.arguments[0])||((h=e.findAncestor(r,e.isImportDeclaration))===null||h===void 0?void 0:h.moduleSpecifier)||((z=e.findAncestor(r,e.isExternalModuleImportEqualsDeclaration))===null||z===void 0?void 0:z.moduleReference.expression)||((me=e.findAncestor(r,e.isExportDeclaration))===null||me===void 0?void 0:me.moduleSpecifier)||((Me=e.isModuleDeclaration(r)?r:r.parent&&e.isModuleDeclaration(r.parent)&&r.parent.name===r?r.parent:void 0)===null||Me===void 0?void 0:Me.name)||(($e=e.isLiteralImportTypeNode(r)?r:void 0)===null||$e===void 0?void 0:$e.argument.literal),$i=Ci&&e.isStringLiteralLike(Ci)?e.getModeForUsageLocation(Ti,Ci):Ti.impliedNodeFormat,Zi=e.getResolvedModule(Ti,i,$i),qt=Zi&&e.getResolutionDiagnostic(ye,Zi),Nt=Zi&&(!qt||qt===e.Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set)&&l.getSourceFile(Zi.resolvedFileName);if(Nt){if(qt&&Xr(o,qt,i,Zi.resolvedFileName),Nt.symbol){if(Zi.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&zf(!1,o,Zi,i),e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Ra=Ti.impliedNodeFormat===e.ModuleKind.CommonJS&&!e.findAncestor(r,e.isImportCall)||!!e.findAncestor(r,e.isImportEqualsDeclaration),ca=e.findAncestor(r,function(cn){return e.isImportTypeNode(cn)||e.isExportDeclaration(cn)||e.isImportDeclaration(cn)}),Sn=ca&&e.isImportTypeNode(ca)?(tr=ca.assertions)===null||tr===void 0?void 0:tr.assertClause:ca==null?void 0:ca.assertClause;Ra&&Nt.impliedNodeFormat===e.ModuleKind.ESNext&&!e.getResolutionModeOverrideForClause(Sn)&&Xr(o,e.Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead,i)}return so(Nt.symbol)}t&&Xr(o,e.Diagnostics.File_0_is_not_a_module,Nt.fileName);return}if(S){var ja=e.findBestPatternMatch(S,function(cn){return cn.pattern},i);if(ja){var Fn=Ce&&Ce.get(i);return so(Fn||ja.symbol)}}if(Zi&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&qt===void 0||qt===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type){if(s){var Dr=e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;Xr(o,Dr,i,Zi.resolvedFileName)}else zf(n&&!!t,o,Zi,i);return}if(t){if(Zi){var wn=l.getProjectReferenceRedirect(Zi.resolvedFileName);if(wn){Xr(o,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,wn,Zi.resolvedFileName);return}}if(qt)Xr(o,qt,i,Zi.resolvedFileName);else{var Tn=e.tryExtractTSExtension(i),Eo=e.pathIsRelative(i)&&!e.hasExtension(i),lt=e.getEmitModuleResolutionKind(ye),it=lt===e.ModuleResolutionKind.Node16||lt===e.ModuleResolutionKind.NodeNext;if(Tn){var Dr=e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,Yt=e.removeExtension(i,Tn),Ia=Yt;er>=e.ModuleKind.ES2015&&(Ia+=Tn===\".mts\"?\".mjs\":Tn===\".cts\"?\".cjs\":\".js\"),Xr(o,Dr,Tn,Ia)}else if(!ye.resolveJsonModule&&e.fileExtensionIs(i,\".json\")&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&e.hasJsonModuleEmitEnabled(ye))Xr(o,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,i);else if($i===e.ModuleKind.ESNext&&it&&Eo){var Qt=e.getNormalizedAbsolutePath(i,e.getDirectoryPath(Ti.path)),Ka=(dr=jo.find(function(cn){var Un=cn[0],oa=cn[1];return l.fileExists(Qt+Un)}))===null||dr===void 0?void 0:dr[1];Ka?Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0,i+Ka):Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path)}else Xr(o,t,i)}}}function zf(r,i,t,o){var s=t.packageId,u=t.resolvedFileName,h=!e.isExternalModuleNameRelative(o)&&s?ul(s.name)?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,s.name,e.mangleScopedPackageName(s.name)):Nu(s.name)?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1,s.name,o):e.chainDiagnosticMessages(void 0,e.Diagnostics.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,o,e.mangleScopedPackageName(s.name)):void 0;Ic(r,i,e.chainDiagnosticMessages(h,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,o,u))}function ul(r){return d().has(e.getTypesPackageName(r))}function Nu(r){return!!d().get(r)}function Us(r,i){if(r!=null&&r.exports){var t=os(r.exports.get(\"export=\"),i),o=Ap(so(t),so(r));return so(o)||r}}function Ap(r,i){if(!r||r===xe||r===i||i.exports.size===1||r.flags&2097152)return r;var t=Aa(r);if(t.cjsExportMerged)return t.cjsExportMerged;var o=r.flags&33554432?r:Yl(r);return o.flags=o.flags|512,o.exports===void 0&&(o.exports=e.createSymbolTable()),i.exports.forEach(function(s,u){u!==\"export=\"&&o.exports.set(u,o.exports.has(u)?Bf(o.exports.get(u),s):s)}),Aa(o).cjsExportMerged=o,t.cjsExportMerged=o}function Wf(r,i,t,o){var s,u=Us(r,t);if(!t&&u){if(!o&&!(u.flags&1539)&&!e.getDeclarationOfKind(u,305)){var h=er>=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\";return Xr(i,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,h),u}var z=i.parent;if(e.isImportDeclaration(z)&&e.getNamespaceDeclarationNode(z)||e.isImportCall(z)){var me=e.isImportCall(z)?z.arguments[0]:z.moduleSpecifier,Me=Jt(u),$e=Sk(Me,u,r,me);if($e)return Sf(u,$e,z);var tr=(s=r==null?void 0:r.declarations)===null||s===void 0?void 0:s.find(e.isSourceFile),dr=tr&&$l(hf(me),tr.impliedNodeFormat);if(e.getESModuleInterop(ye)||dr){var Dr=Ft(Me,0);if((!Dr||!Dr.length)&&(Dr=Ft(Me,1)),Dr&&Dr.length||bi(Me,\"default\",!0)||dr){var Qr=Tk(Me,u,r,me);return Sf(u,Qr,z)}}}}return u}function Sf(r,i,t){var o=oo(r.flags,r.escapedName);o.declarations=r.declarations?r.declarations.slice():[],o.parent=r.parent,o.target=r,o.originatingImport=t,r.valueDeclaration&&(o.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(o.constEnumOnlyModule=!0),r.members&&(o.members=new e.Map(r.members)),r.exports&&(o.exports=new e.Map(r.exports));var s=Ru(i);return o.type=rs(o,s.members,e.emptyArray,e.emptyArray,s.indexInfos),o}function ll(r){return r.exports.get(\"export=\")!==void 0}function J_(r){return Y_(Pu(r))}function j_(r){var i=J_(r),t=Us(r);if(t!==r){var o=Jt(t);qf(o)&&e.addRange(i,uo(o))}return i}function U_(r,i){var t=Pu(r);t.forEach(function(u,h){Ol(h)||i(u,h)});var o=Us(r);if(o!==r){var s=Jt(o);qf(s)&&U1(s,function(u,h){i(u,h)})}}function iu(r,i){var t=Pu(i);if(t)return t.get(r)}function vd(r,i){var t=iu(r,i);if(t)return t;var o=Us(i);if(o!==i){var s=Jt(o);return qf(s)?bi(s,r):void 0}}function qf(r){return!(r.flags&131068||e.getObjectFlags(r)&1||Tu(r)||Yn(r))}function dc(r){return r.flags&6256?Jv(r,\"resolvedExports\"):r.flags&1536?Pu(r):r.exports||we}function Pu(r){var i=Aa(r);return i.resolvedExports||(i.resolvedExports=Iu(r))}function wl(r,i,t,o){!i||i.forEach(function(s,u){if(u!==\"default\"){var h=r.get(u);if(!h)r.set(u,s),t&&o&&t.set(u,{specifierText:e.getTextOfNode(o.moduleSpecifier)});else if(t&&o&&h&&os(h)!==os(s)){var z=t.get(u);z.exportsWithDuplicate?z.exportsWithDuplicate.push(o):z.exportsWithDuplicate=[o]}}})}function Iu(r){var i=[];return r=Us(r),t(r)||we;function t(o){if(!!(o&&o.exports&&e.pushIfUnique(i,o))){var s=new e.Map(o.exports),u=o.exports.get(\"__export\");if(u){var h=e.createSymbolTable(),z=new e.Map;if(u.declarations)for(var me=0,Me=u.declarations;me=$e?Me.substr(0,$e-3)+\"...\":Me}function nf(r,i){var t=Kf(r.symbol)?Ot(r,r.symbol.valueDeclaration):Ot(r),o=Kf(i.symbol)?Ot(i,i.symbol.valueDeclaration):Ot(i);return t===o&&(t=q_(r),o=q_(i)),[t,o]}function q_(r){return Ot(r,void 0,64)}function Kf(r){return r&&!!r.valueDeclaration&&e.isExpression(r.valueDeclaration)&&!Ju(r.valueDeclaration)}function Rp(r){return r===void 0&&(r=0),r&814775659}function yd(r){return!!r.symbol&&!!(r.symbol.flags&32)&&(r===aa(r.symbol)||!!(r.flags&524288)&&!!(e.getObjectFlags(r)&16777216))}function m_(){return{typeToTypeNode:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return o(ci,ea)})},indexInfoToIndexSignatureDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Me(ci,ea,void 0)})},signatureToSignatureDeclaration:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return $e(ci,Fr,Kt)})},symbolToEntityName:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return Fn(ci,Kt,Fr,!1)})},symbolToExpression:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return wn(ci,Kt,Fr)})},symbolToTypeParameterDeclarations:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return $i(ci,ea)})},symbolToParameterDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Qr(ci,ea)})},typeParameterToDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Dr(ci,ea)})},symbolTableToDeclarationStatements:function(ci,Fr,jt,Lt,ea){return r(Fr,jt,Lt,function(Kt){return Ln(ci,Kt,ea)})}};function r(ci,Fr,jt,Lt){var ea,Kt;e.Debug.assert(ci===void 0||(ci.flags&8)===0);var $t={enclosingDeclaration:ci,flags:Fr||0,tracker:jt&&jt.trackSymbol?jt:{trackSymbol:function(){return!1},moduleResolverHost:Fr&134217728?{getCommonSourceDirectory:l.getCommonSourceDirectory?function(){return l.getCommonSourceDirectory()}:function(){return\"\"},getCurrentDirectory:function(){return l.getCurrentDirectory()},getSymlinkCache:e.maybeBind(l,l.getSymlinkCache),getPackageJsonInfoCache:function(){var Yr;return(Yr=l.getPackageJsonInfoCache)===null||Yr===void 0?void 0:Yr.call(l)},useCaseSensitiveFileNames:e.maybeBind(l,l.useCaseSensitiveFileNames),redirectTargetsMap:l.redirectTargetsMap,getProjectReferenceRedirect:function(Yr){return l.getProjectReferenceRedirect(Yr)},isSourceOfProjectReferenceRedirect:function(Yr){return l.isSourceOfProjectReferenceRedirect(Yr)},fileExists:function(Yr){return l.fileExists(Yr)},getFileIncludeReasons:function(){return l.getFileIncludeReasons()},readFile:l.readFile?function(Yr){return l.readFile(Yr)}:void 0}:void 0},encounteredError:!1,reportedDiagnostic:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0};$t.tracker=i($t,$t.tracker);var Ua=Lt($t);return $t.truncating&&$t.flags&1&&((Kt=(ea=$t.tracker)===null||ea===void 0?void 0:ea.reportTruncationError)===null||Kt===void 0||Kt.call(ea)),$t.encounteredError?void 0:Ua}function i(ci,Fr){var jt=Fr.trackSymbol;return Ke(Ke({},Fr),{reportCyclicStructureError:Lt(Fr.reportCyclicStructureError),reportInaccessibleThisError:Lt(Fr.reportInaccessibleThisError),reportInaccessibleUniqueSymbolError:Lt(Fr.reportInaccessibleUniqueSymbolError),reportLikelyUnsafeImportRequiredError:Lt(Fr.reportLikelyUnsafeImportRequiredError),reportNonlocalAugmentation:Lt(Fr.reportNonlocalAugmentation),reportPrivateInBaseOfClassExpression:Lt(Fr.reportPrivateInBaseOfClassExpression),reportNonSerializableProperty:Lt(Fr.reportNonSerializableProperty),trackSymbol:jt&&function(){for(var ea=[],Kt=0;Kt(ci.flags&1?e.noTruncationMaximumTruncationLength:e.defaultMaximumTruncationLength)}function o(ci,Fr){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var jt=Fr.flags&8388608;if(Fr.flags&=-8388609,!ci){if(!(Fr.flags&262144)){Fr.encounteredError=!0;return}return Fr.approximateLength+=3,e.factory.createKeywordTypeNode(130)}if(Fr.flags&536870912||(ci=bu(ci)),ci.flags&1)return ci.aliasSymbol?e.factory.createTypeReferenceNode(Ra(ci.aliasSymbol),z(ci.aliasTypeArguments,Fr)):ci===Ue?e.addSyntheticLeadingComment(e.factory.createKeywordTypeNode(130),3,\"unresolved\"):(Fr.approximateLength+=3,e.factory.createKeywordTypeNode(ci===De?138:130));if(ci.flags&2)return e.factory.createKeywordTypeNode(155);if(ci.flags&4)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(150);if(ci.flags&8)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(147);if(ci.flags&64)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(158);if(ci.flags&16&&!ci.aliasSymbol)return Fr.approximateLength+=7,e.factory.createKeywordTypeNode(133);if(ci.flags&1024&&!(ci.flags&1048576)){var Lt=Ys(ci.symbol),ea=ca(Lt,Fr,788968);if(go(Lt)===ci)return ea;var Kt=e.symbolName(ci.symbol);return e.isIdentifierText(Kt,0)?fp(ea,e.factory.createTypeReferenceNode(Kt,void 0)):e.isImportTypeNode(ea)?(ea.isTypeOf=!0,e.factory.createIndexedAccessTypeNode(ea,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt)))):e.isTypeReferenceNode(ea)?e.factory.createIndexedAccessTypeNode(e.factory.createTypeQueryNode(ea.typeName),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt))):e.Debug.fail(\"Unhandled type node kind returned from `symbolToTypeNode`.\")}if(ci.flags&1056)return ca(ci.symbol,Fr,788968);if(ci.flags&128)return Fr.approximateLength+=ci.value.length+2,e.factory.createLiteralTypeNode(e.setEmitFlags(e.factory.createStringLiteral(ci.value,!!(Fr.flags&268435456)),16777216));if(ci.flags&256){var $t=ci.value;return Fr.approximateLength+=(\"\"+$t).length,e.factory.createLiteralTypeNode($t<0?e.factory.createPrefixUnaryExpression(40,e.factory.createNumericLiteral(-$t)):e.factory.createNumericLiteral($t))}if(ci.flags&2048)return Fr.approximateLength+=e.pseudoBigIntToString(ci.value).length+1,e.factory.createLiteralTypeNode(e.factory.createBigIntLiteral(ci.value));if(ci.flags&512)return Fr.approximateLength+=ci.intrinsicName.length,e.factory.createLiteralTypeNode(ci.intrinsicName===\"true\"?e.factory.createTrue():e.factory.createFalse());if(ci.flags&8192){if(!(Fr.flags&1048576)){if(Lp(ci.symbol,Fr.enclosingDeclaration))return Fr.approximateLength+=6,ca(ci.symbol,Fr,111551);Fr.tracker.reportInaccessibleUniqueSymbolError&&Fr.tracker.reportInaccessibleUniqueSymbolError()}return Fr.approximateLength+=13,e.factory.createTypeOperatorNode(154,e.factory.createKeywordTypeNode(151))}if(ci.flags&16384)return Fr.approximateLength+=4,e.factory.createKeywordTypeNode(114);if(ci.flags&32768)return Fr.approximateLength+=9,e.factory.createKeywordTypeNode(153);if(ci.flags&65536)return Fr.approximateLength+=4,e.factory.createLiteralTypeNode(e.factory.createNull());if(ci.flags&131072)return Fr.approximateLength+=5,e.factory.createKeywordTypeNode(143);if(ci.flags&4096)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(151);if(ci.flags&67108864)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(148);if(e.isThisTypeParameter(ci))return Fr.flags&4194304&&(!Fr.encounteredError&&!(Fr.flags&32768)&&(Fr.encounteredError=!0),Fr.tracker.reportInaccessibleThisError&&Fr.tracker.reportInaccessibleThisError()),Fr.approximateLength+=4,e.factory.createThisTypeNode();if(!jt&&ci.aliasSymbol&&(Fr.flags&16384||Gu(ci.aliasSymbol,Fr.enclosingDeclaration))){var Ua=z(ci.aliasTypeArguments,Fr);return Ol(ci.aliasSymbol.escapedName)&&!(ci.aliasSymbol.flags&32)?e.factory.createTypeReferenceNode(e.factory.createIdentifier(\"\"),Ua):ca(ci.aliasSymbol,Fr,788968,Ua)}var Yr=e.getObjectFlags(ci);if(Yr&4)return e.Debug.assert(!!(ci.flags&524288)),ci.node?jd(ci,Tl):Tl(ci);if(ci.flags&262144||Yr&3){if(ci.flags&262144&&e.contains(Fr.inferTypeParameters,ci)){Fr.approximateLength+=e.symbolName(ci.symbol).length+6;var Ni=void 0,Hi=Tc(ci);if(Hi){var _t=sx(ci,!0);_t&&wf(Hi,_t)||(Fr.approximateLength+=9,Ni=Hi&&o(Hi,Fr))}return e.factory.createInferTypeNode(dr(ci,Fr,Ni))}if(Fr.flags&4&&ci.flags&262144&&!Gu(ci.symbol,Fr.enclosingDeclaration)){var gt=ja(ci,Fr);return Fr.approximateLength+=e.idText(gt).length,e.factory.createTypeReferenceNode(e.factory.createIdentifier(e.idText(gt)),void 0)}if(ci.symbol)return ca(ci.symbol,Fr,788968);var Vt=(ci===Rn||ci===Da)&&_e&&_e.symbol?(ci===Da?\"sub-\":\"super-\")+e.symbolName(_e.symbol):\"?\";return e.factory.createTypeReferenceNode(e.factory.createIdentifier(Vt),void 0)}if(ci.flags&1048576&&ci.origin&&(ci=ci.origin),ci.flags&3145728){var Fa=ci.flags&1048576?hd(ci.types):ci.types;if(e.length(Fa)===1)return o(Fa[0],Fr);var on=z(Fa,Fr,!0);if(on&&on.length>0)return ci.flags&1048576?e.factory.createUnionTypeNode(on):e.factory.createIntersectionTypeNode(on);!Fr.encounteredError&&!(Fr.flags&262144)&&(Fr.encounteredError=!0);return}if(Yr&48)return e.Debug.assert(!!(ci.flags&524288)),rl(ci);if(ci.flags&4194304){var zn=ci.type;Fr.approximateLength+=6;var Ga=o(zn,Fr);return e.factory.createTypeOperatorNode(140,Ga)}if(ci.flags&134217728){var Qn=ci.texts,wo=ci.types,Po=e.factory.createTemplateHead(Qn[0]),Uo=e.factory.createNodeArray(e.map(wo,function(za,$r){return e.factory.createTemplateLiteralTypeSpan(o(za,Fr),($r10)return s(Fr);Fr.symbolDepth.set(Ht,Ca+1)}Fr.visitedTypes.add(mt);var An=Fr.approximateLength,gn=$r(za),Vn=Fr.approximateLength-An;return!Fr.reportedDiagnostic&&!Fr.encounteredError&&(Fr.truncating&&(gn.truncating=!0),gn.addedLength=Vn,(Ri=vt==null?void 0:vt.serializedTypes)===null||Ri===void 0||Ri.set(ht,gn)),Fr.visitedTypes.delete(mt),Ht&&Fr.symbolDepth.set(Ht,Ca),gn;function zo(Bo){return!e.nodeIsSynthesized(Bo)&&e.getParseTreeNode(Bo)===Bo?Bo:e.setTextRange(e.factory.cloneNode(e.visitEachChild(Bo,zo,e.nullTransformationContext,us)),Bo)}function us(Bo,Io,Qo,ls,gi){return Bo&&Bo.length===0?e.setTextRange(e.factory.createNodeArray(void 0,Bo.hasTrailingComma),Bo):e.visitNodes(Bo,Io,Qo,ls,gi)}}function lp(za){if(Bc(za)||za.containsError)return Ts(za);var $r=Ru(za);if(!$r.properties.length&&!$r.indexInfos.length){if(!$r.callSignatures.length&&!$r.constructSignatures.length)return Fr.approximateLength+=2,e.setEmitFlags(e.factory.createTypeLiteralNode(void 0),1);if($r.callSignatures.length===1&&!$r.constructSignatures.length){var hi=$r.callSignatures[0],Ri=$e(hi,179,Fr);return Ri}if($r.constructSignatures.length===1&&!$r.callSignatures.length){var hi=$r.constructSignatures[0],Ri=$e(hi,180,Fr);return Ri}}var mt=e.filter($r.constructSignatures,function(Ca){return!!(Ca.flags&4)});if(e.some(mt)){var ft=e.map(mt,im),Ht=$r.callSignatures.length+($r.constructSignatures.length-mt.length)+$r.indexInfos.length+(Fr.flags&2048?e.countWhere($r.properties,function(Ca){return!(Ca.flags&4194304)}):e.length($r.properties));return Ht&&ft.push(Op($r)),o(Do(ft),Fr)}var vt=Fr.flags;Fr.flags|=4194304;var ht=id($r);Fr.flags=vt;var ma=e.factory.createTypeLiteralNode(ht);return Fr.approximateLength+=2,e.setEmitFlags(ma,Fr.flags&1024?0:1),ma}function Tl(za){var $r=xo(za);if(za.target===Pi||za.target===Qi){if(Fr.flags&2){var hi=o($r[0],Fr);return e.factory.createTypeReferenceNode(za.target===Pi?\"Array\":\"ReadonlyArray\",[hi])}var Ri=o($r[0],Fr),mt=e.factory.createArrayTypeNode(Ri);return za.target===Pi?mt:e.factory.createTypeOperatorNode(145,mt)}else if(za.target.objectFlags&8){if($r=e.sameMap($r,function(zt,La){return kg(zt,!!(za.target.elementFlags[La]&2))}),$r.length>0){var ft=$_(za),Ht=z($r.slice(0,ft),Fr);if(Ht){if(za.target.labeledElementDeclarations)for(var vt=0;vt0){var ls=(za.target.typeParameters||e.emptyArray).length;Qo=z($r.slice(vt,ls),Fr)}var ht=Fr.flags;Fr.flags|=16;var gi=ca(za.symbol,Fr,788968,Qo);return Fr.flags=ht,An?fp(An,gi):gi}}function fp(za,$r){if(e.isImportTypeNode(za)){var hi=za.typeArguments,Ri=za.qualifier;Ri&&(e.isIdentifier(Ri)?Ri=e.factory.updateIdentifier(Ri,hi):Ri=e.factory.updateQualifiedName(Ri,Ri.left,e.factory.updateIdentifier(Ri.right,hi))),hi=$r.typeArguments;for(var mt=zg($r),ft=0,Ht=mt;ft2)return[o(ci[0],Fr),e.factory.createTypeReferenceNode(\"... \".concat(ci.length-2,\" more ...\"),void 0),o(ci[ci.length-1],Fr)]}else return[e.factory.createTypeReferenceNode(\"...\",void 0)];for(var Lt=!(Fr.flags&64),ea=Lt?e.createUnderscoreEscapedMultiMap():void 0,Kt=[],$t=0,Ua=0,Yr=ci;Ua0)):ea=[ci],ea;function $t(Ua,Yr,Ni){var Hi=pl(Ua,Fr.enclosingDeclaration,Yr,!!(Fr.flags&128)),_t;if(!Hi||Fp(Hi[0],Fr.enclosingDeclaration,Hi.length===1?Yr:Fl(Yr))){var gt=Np(Hi?Hi[0]:Ua,Fr.enclosingDeclaration,Yr);if(e.length(gt)){_t=gt.map(function(Po){return e.some(Po.declarations,Fc)?Nt(Po,Fr):void 0});var Vt=gt.map(function(Po,Uo){return Uo});Vt.sort(wo);for(var Fa=Vt.map(function(Po){return gt[Po]}),on=0,zn=Fa;on1?Po(ea,ea.length-1,1):void 0,Ua=Lt||Zi(ea,0,Fr),Yr=e.getSourceFileOfNode(e.getOriginalNode(Fr.enclosingDeclaration)),Ni=e.getSourceFileOfModule(ea[0]),Hi=void 0,_t=void 0;if((e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext)&&(Ni==null?void 0:Ni.impliedNodeFormat)===e.ModuleKind.ESNext&&Ni.impliedNodeFormat!==(Yr==null?void 0:Yr.impliedNodeFormat)&&(Hi=Nt(ea[0],Fr,e.ModuleKind.ESNext),_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral(\"resolution-mode\"),e.factory.createStringLiteral(\"import\"))])))),Hi||(Hi=Nt(ea[0],Fr)),!(Fr.flags&67108864)&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&Hi.indexOf(\"/node_modules/\")>=0){var gt=Hi;if(e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Vt=(Yr==null?void 0:Yr.impliedNodeFormat)===e.ModuleKind.ESNext?e.ModuleKind.CommonJS:e.ModuleKind.ESNext;Hi=Nt(ea[0],Fr,Vt),Hi.indexOf(\"/node_modules/\")>=0?Hi=gt:_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral(\"resolution-mode\"),e.factory.createStringLiteral(Vt===e.ModuleKind.ESNext?\"import\":\"require\"))])))}_t||(Fr.encounteredError=!0,Fr.tracker.reportLikelyUnsafeImportRequiredError&&Fr.tracker.reportLikelyUnsafeImportRequiredError(gt))}var Fa=e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Hi));if(Fr.tracker.trackExternalModuleSymbolOfImportTypeNode&&Fr.tracker.trackExternalModuleSymbolOfImportTypeNode(ea[0]),Fr.approximateLength+=Hi.length+10,!$t||e.isEntityName($t)){if($t){var on=e.isIdentifier($t)?$t:$t.right;on.typeArguments=void 0}return e.factory.createImportTypeNode(Fa,_t,$t,Ua,Kt)}else{var zn=qt($t),Ga=zn.objectType.typeName;return e.factory.createIndexedAccessTypeNode(e.factory.createImportTypeNode(Fa,_t,Ga,Ua,Kt),zn.indexType)}}var Qn=Po(ea,ea.length-1,0);if(e.isIndexedAccessTypeNode(Qn))return Qn;if(Kt)return e.factory.createTypeQueryNode(Qn);var on=e.isIdentifier(Qn)?Qn:Qn.right,wo=on.typeArguments;return on.typeArguments=void 0,e.factory.createTypeReferenceNode(Qn,wo);function Po(Uo,Rs,Fs){var rc=Rs===Uo.length-1?Lt:Zi(Uo,Rs,Fr),xu=Uo[Rs],Ts=Uo[Rs-1],rl;if(Rs===0)Fr.flags|=16777216,rl=of(xu,Fr),Fr.approximateLength+=(rl?rl.length:0)+1,Fr.flags^=16777216;else if(Ts&&dc(Ts)){var jd=dc(Ts);e.forEachEntry(jd,function(zg,id){if(_l(zg,xu)&&!pg(id)&&id!==\"export=\")return rl=e.unescapeLeadingUnderscores(id),!0})}if(rl===void 0){var lp=e.firstDefined(xu.declarations,e.getNameOfDeclaration);if(lp&&e.isComputedPropertyName(lp)&&e.isEntityName(lp.expression)){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createIndexedAccessTypeNode(e.factory.createParenthesizedType(e.factory.createTypeQueryNode(Tl)),e.factory.createTypeQueryNode(lp.expression)):Tl}rl=of(xu,Fr)}if(Fr.approximateLength+=rl.length+1,!(Fr.flags&16)&&Ts&&Nf(Ts)&&Nf(Ts).get(xu.escapedName)&&_l(Nf(Ts).get(xu.escapedName),xu)){var Tl=Po(Uo,Rs-1,Fs);return e.isIndexedAccessTypeNode(Tl)?e.factory.createIndexedAccessTypeNode(Tl,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl))):e.factory.createIndexedAccessTypeNode(e.factory.createTypeReferenceNode(Tl,rc),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl)))}var fp=e.setEmitFlags(e.factory.createIdentifier(rl,rc),16777216);if(fp.symbol=xu,Rs>Fs){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createQualifiedName(Tl,fp):e.Debug.fail(\"Impossible construct - an export of an indexed access cannot be reachable\")}return fp}}function Sn(ci,Fr,jt){var Lt=es(Fr.enclosingDeclaration,ci,788968,void 0,ci,!1);return Lt?!(Lt.flags&262144&&Lt===jt.symbol):!1}function ja(ci,Fr){var jt,Lt;if(Fr.flags&4&&Fr.typeParameterNames){var ea=Fr.typeParameterNames.get(fu(ci));if(ea)return ea}var Kt=Fn(ci.symbol,Fr,788968,!0);if(!(Kt.kind&79))return e.factory.createIdentifier(\"(Missing type parameter)\");if(Fr.flags&4){for(var $t=Kt.escapedText,Ua=((jt=Fr.typeParameterNamesByTextNextNameCount)===null||jt===void 0?void 0:jt.get($t))||0,Yr=$t;((Lt=Fr.typeParameterNamesByText)===null||Lt===void 0?void 0:Lt.has(Yr))||Sn(Yr,Fr,ci);)Ua++,Yr=\"\".concat($t,\"_\").concat(Ua);Yr!==$t&&(Kt=e.factory.createIdentifier(Yr,Kt.typeArguments)),(Fr.typeParameterNamesByTextNextNameCount||(Fr.typeParameterNamesByTextNextNameCount=new e.Map)).set($t,Ua),(Fr.typeParameterNames||(Fr.typeParameterNames=new e.Map)).set(fu(ci),Kt),(Fr.typeParameterNamesByText||(Fr.typeParameterNamesByText=new e.Set)).add($t)}return Kt}function Fn(ci,Fr,jt,Lt){var ea=Ti(ci,Fr,jt);return Lt&&ea.length!==1&&!Fr.encounteredError&&!(Fr.flags&65536)&&(Fr.encounteredError=!0),Kt(ea,ea.length-1);function Kt($t,Ua){var Yr=Zi($t,Ua,Fr),Ni=$t[Ua];Ua===0&&(Fr.flags|=16777216);var Hi=of(Ni,Fr);Ua===0&&(Fr.flags^=16777216);var _t=e.setEmitFlags(e.factory.createIdentifier(Hi,Yr),16777216);return _t.symbol=Ni,Ua>0?e.factory.createQualifiedName(Kt($t,Ua-1),_t):_t}}function wn(ci,Fr,jt){var Lt=Ti(ci,Fr,jt);return ea(Lt,Lt.length-1);function ea(Kt,$t){var Ua=Zi(Kt,$t,Fr),Yr=Kt[$t];$t===0&&(Fr.flags|=16777216);var Ni=of(Yr,Fr);$t===0&&(Fr.flags^=16777216);var Hi=Ni.charCodeAt(0);if(e.isSingleOrDoubleQuote(Hi)&&e.some(Yr.declarations,Fc))return e.factory.createStringLiteral(Nt(Yr,Fr));var _t=Hi===35?Ni.length>1&&e.isIdentifierStart(Ni.charCodeAt(1),Ae):e.isIdentifierStart(Hi,Ae);if($t===0||_t){var gt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216);return gt.symbol=Yr,$t>0?e.factory.createPropertyAccessExpression(ea(Kt,$t-1),gt):gt}else{Hi===91&&(Ni=Ni.substring(1,Ni.length-1),Hi=Ni.charCodeAt(0));var Vt=void 0;return e.isSingleOrDoubleQuote(Hi)&&!(Yr.flags&8)?Vt=e.factory.createStringLiteral(e.stripQuotes(Ni).replace(/\\\\./g,function(Fa){return Fa.substring(1)}),Hi===39):\"\"+ +Ni===Ni&&(Vt=e.factory.createNumericLiteral(+Ni)),Vt||(Vt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216),Vt.symbol=Yr),e.factory.createElementAccessExpression(ea(Kt,$t-1),Vt)}}}function Tn(ci){var Fr=e.getNameOfDeclaration(ci);return!!Fr&&e.isStringLiteral(Fr)}function Eo(ci){var Fr=e.getNameOfDeclaration(ci);return!!(Fr&&e.isStringLiteral(Fr)&&(Fr.singleQuote||!e.nodeIsSynthesized(Fr)&&e.startsWith(e.getTextOfNode(Fr,!1),\"'\")))}function lt(ci,Fr){var jt=!!e.length(ci.declarations)&&e.every(ci.declarations,Eo),Lt=it(ci,Fr,jt);if(Lt)return Lt;var ea=e.unescapeLeadingUnderscores(ci.escapedName),Kt=!!e.length(ci.declarations)&&e.every(ci.declarations,Tn);return e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye),jt,Kt)}function it(ci,Fr,jt){var Lt=Aa(ci).nameType;if(Lt){if(Lt.flags&384){var ea=\"\"+Lt.value;return!e.isIdentifierText(ea,e.getEmitScriptTarget(ye))&&!e.isNumericLiteralName(ea)?e.factory.createStringLiteral(ea,!!jt):e.isNumericLiteralName(ea)&&e.startsWith(ea,\"-\")?e.factory.createComputedPropertyName(e.factory.createNumericLiteral(+ea)):e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye))}if(Lt.flags&8192)return e.factory.createComputedPropertyName(wn(Lt.symbol,Fr,111551))}}function Yt(ci){var Fr=Ke({},ci);return Fr.typeParameterNames&&(Fr.typeParameterNames=new e.Map(Fr.typeParameterNames)),Fr.typeParameterNamesByText&&(Fr.typeParameterNamesByText=new e.Set(Fr.typeParameterNamesByText)),Fr.typeParameterSymbolList&&(Fr.typeParameterSymbolList=new e.Set(Fr.typeParameterSymbolList)),Fr.tracker=i(Fr,Fr.tracker),Fr}function Ia(ci,Fr){return ci.declarations&&e.find(ci.declarations,function(jt){return!!e.getEffectiveTypeAnnotationNode(jt)&&(!Fr||!!e.findAncestor(jt,function(Lt){return Lt===Fr}))})}function Qt(ci,Fr){return!(e.getObjectFlags(Fr)&4)||!e.isTypeReferenceNode(ci)||e.length(ci.typeArguments)>=Ul(Fr.target.typeParameters)}function Ka(ci,Fr,jt,Lt,ea,Kt){if(!nn(Fr)&&Lt){var $t=Ia(jt,Lt);if($t&&!e.isFunctionLikeDeclaration($t)&&!e.isGetAccessorDeclaration($t)){var Ua=e.getEffectiveTypeAnnotationNode($t);if(cn(Ua,$t,Fr)&&Qt(Ua,Fr)){var Yr=Mn(ci,Ua,ea,Kt);if(Yr)return Yr}}}var Ni=ci.flags;Fr.flags&8192&&Fr.symbol===jt&&(!ci.enclosingDeclaration||e.some(jt.declarations,function(_t){return e.getSourceFileOfNode(_t)===e.getSourceFileOfNode(ci.enclosingDeclaration)}))&&(ci.flags|=1048576);var Hi=o(Fr,ci);return ci.flags=Ni,Hi}function cn(ci,Fr,jt){var Lt=Va(ci);return Lt===jt?!0:e.isParameter(Fr)&&Fr.questionToken?Ks(jt,524288)===Lt:!1}function Un(ci,Fr,jt,Lt,ea){if(!nn(Fr)&&ci.enclosingDeclaration){var Kt=jt.declaration&&e.getEffectiveReturnTypeNode(jt.declaration);if(!!e.findAncestor(Kt,function(Ni){return Ni===ci.enclosingDeclaration})&&Kt){var $t=Va(Kt),Ua=$t.flags&262144&&$t.isThisType?un($t,jt.mapper):$t;if(Ua===Fr&&Qt(Kt,Fr)){var Yr=Mn(ci,Kt,Lt,ea);if(Yr)return Yr}}}return o(Fr,ci)}function oa(ci,Fr,jt){var Lt,ea,Kt=!1,$t=e.getFirstIdentifier(ci);if(e.isInJSFile(ci)&&(e.isExportsIdentifier($t)||e.isModuleExportsAccessExpression($t.parent)||e.isQualifiedName($t.parent)&&e.isModuleIdentifier($t.parent.left)&&e.isExportsIdentifier($t.parent.right)))return Kt=!0,{introducesError:Kt,node:ci};var Ua=Ds($t,67108863,!0,!0);if(Ua&&(g_(Ua,Fr.enclosingDeclaration,67108863,!1).accessibility!==0?Kt=!0:((ea=(Lt=Fr.tracker)===null||Lt===void 0?void 0:Lt.trackSymbol)===null||ea===void 0||ea.call(Lt,Ua,Fr.enclosingDeclaration,67108863),jt==null||jt(Ua)),e.isIdentifier(ci))){var Yr=go(Ua),Ni=Ua.flags&262144&&!Gu(Yr.symbol,Fr.enclosingDeclaration)?ja(Yr,Fr):e.factory.cloneNode(ci);return Ni.symbol=Ua,{introducesError:Kt,node:e.setEmitFlags(e.setOriginalNode(Ni,ci),16777216)}}return{introducesError:Kt,node:ci}}function Mn(ci,Fr,jt,Lt){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var ea=!1,Kt=e.getSourceFileOfNode(Fr),$t=e.visitNode(Fr,Ua);if(ea)return;return $t===Fr?e.setTextRange(e.factory.cloneNode(Fr),Fr):$t;function Ua(Yr){if(e.isJSDocAllType(Yr)||Yr.kind===319)return e.factory.createKeywordTypeNode(130);if(e.isJSDocUnknownType(Yr))return e.factory.createKeywordTypeNode(155);if(e.isJSDocNullableType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createLiteralTypeNode(e.factory.createNull())]);if(e.isJSDocOptionalType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createKeywordTypeNode(153)]);if(e.isJSDocNonNullableType(Yr))return e.visitNode(Yr.type,Ua);if(e.isJSDocVariadicType(Yr))return e.factory.createArrayTypeNode(e.visitNode(Yr.type,Ua));if(e.isJSDocTypeLiteral(Yr))return e.factory.createTypeLiteralNode(e.map(Yr.jsDocPropertyTags,function(Ga){var Qn=e.isIdentifier(Ga.name)?Ga.name:Ga.name.right,wo=da(Va(Yr),Qn.escapedText),Po=wo&&Ga.typeExpression&&Va(Ga.typeExpression.type)!==wo?o(wo,ci):void 0;return e.factory.createPropertySignature(void 0,Qn,Ga.isBracketed||Ga.typeExpression&&e.isJSDocOptionalType(Ga.typeExpression.type)?e.factory.createToken(57):void 0,Po||Ga.typeExpression&&e.visitNode(Ga.typeExpression.type,Ua)||e.factory.createKeywordTypeNode(130))}));if(e.isTypeReferenceNode(Yr)&&e.isIdentifier(Yr.typeName)&&Yr.typeName.escapedText===\"\")return e.setOriginalNode(e.factory.createKeywordTypeNode(130),Yr);if((e.isExpressionWithTypeArguments(Yr)||e.isTypeReferenceNode(Yr))&&e.isJSDocIndexSignature(Yr))return e.factory.createTypeLiteralNode([e.factory.createIndexSignature(void 0,void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,\"x\",void 0,e.visitNode(Yr.typeArguments[0],Ua))],e.visitNode(Yr.typeArguments[1],Ua))]);if(e.isJSDocFunctionType(Yr))if(e.isJSDocConstructSignature(Yr)){var Ni;return e.factory.createConstructorTypeNode(Yr.modifiers,e.visitNodes(Yr.typeParameters,Ua),e.mapDefined(Yr.parameters,function(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText===\"new\"?(Ni=Ga.type,void 0):e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Ni||Yr.type,Ua)||e.factory.createKeywordTypeNode(130))}else return e.factory.createFunctionTypeNode(e.visitNodes(Yr.typeParameters,Ua),e.map(Yr.parameters,function(Ga,Qn){return e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Yr.type,Ua)||e.factory.createKeywordTypeNode(130));if(e.isTypeReferenceNode(Yr)&&e.isInJSDoc(Yr)&&(!Qt(Yr,Va(Yr))||vx(Yr)||xe===nm(Yr,788968,!0)))return e.setOriginalNode(o(Va(Yr),ci),Yr);if(e.isLiteralImportTypeNode(Yr)){var Hi=va(Yr).resolvedSymbol;return e.isInJSDoc(Yr)&&Hi&&(!Yr.isTypeOf&&!(Hi.flags&788968)||!(e.length(Yr.typeArguments)>=Ul(Af(Hi))))?e.setOriginalNode(o(Va(Yr),ci),Yr):e.factory.updateImportTypeNode(Yr,e.factory.updateLiteralTypeNode(Yr.argument,zn(Yr,Yr.argument.literal)),Yr.qualifier,e.visitNodes(Yr.typeArguments,Ua,e.isTypeNode),Yr.isTypeOf)}if(e.isEntityName(Yr)||e.isEntityNameExpression(Yr)){var _t=oa(Yr,ci,jt),gt=_t.introducesError,Vt=_t.node;if(ea=ea||gt,Vt!==Yr)return Vt}return Kt&&e.isTupleTypeNode(Yr)&&e.getLineAndCharacterOfPosition(Kt,Yr.pos).line===e.getLineAndCharacterOfPosition(Kt,Yr.end).line&&e.setEmitFlags(Yr,1),e.visitEachChild(Yr,Ua,e.nullTransformationContext);function Fa(Ga){return Ga.dotDotDotToken||(Ga.type&&e.isJSDocVariadicType(Ga.type)?e.factory.createToken(25):void 0)}function on(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText===\"this\"?\"this\":Fa(Ga)?\"args\":\"arg\".concat(Qn)}function zn(Ga,Qn){if(Lt){if(ci.tracker&&ci.tracker.moduleResolverHost){var wo=US(Ga);if(wo){var Po=e.createGetCanonicalFileName(!!l.useCaseSensitiveFileNames),Uo={getCanonicalFileName:Po,getCurrentDirectory:function(){return ci.tracker.moduleResolverHost.getCurrentDirectory()},getCommonSourceDirectory:function(){return ci.tracker.moduleResolverHost.getCommonSourceDirectory()}},Rs=e.getResolvedExternalModuleName(Uo,wo);return e.factory.createStringLiteral(Rs)}}}else if(ci.tracker&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode){var Fs=Pl(Qn,Qn,void 0);Fs&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode(Fs)}return Qn}}}function Ln(ci,Fr,jt){var Lt=Ca(e.factory.createPropertyDeclaration,169,!0),ea=Ca(function(gi,zt,La,fa,ya){return e.factory.createPropertySignature(zt,La,fa,ya)},168,!1),Kt=Fr.enclosingDeclaration,$t=[],Ua=new e.Set,Yr=[],Ni=Fr;Fr=Ke(Ke({},Ni),{usedSymbolNames:new e.Set(Ni.usedSymbolNames),remappedSymbolNames:new e.Map,tracker:Ke(Ke({},Ni.tracker),{trackSymbol:function(gi,zt,La){var fa=g_(gi,zt,La,!1);if(fa.accessibility===0){var ya=Ci(gi,Fr,La);gi.flags&4||rc(ya[0])}else if(Ni.tracker&&Ni.tracker.trackSymbol)return Ni.tracker.trackSymbol(gi,zt,La);return!1}})}),Fr.tracker=i(Fr,Fr.tracker),e.forEachEntry(ci,function(gi,zt){var La=e.unescapeLeadingUnderscores(zt);ls(gi,La)});var Hi=!jt,_t=ci.get(\"export=\");return _t&&ci.size>1&&_t.flags&2097152&&(ci=e.createSymbolTable(),ci.set(\"export=\",_t)),Uo(ci),Ga($t);function gt(gi){return!!gi&&gi.kind===79}function Vt(gi){return e.isVariableStatement(gi)?e.filter(e.map(gi.declarationList.declarations,e.getNameOfDeclaration),gt):e.filter([e.getNameOfDeclaration(gi)],gt)}function Fa(gi){var zt=e.find(gi,e.isExportAssignment),La=e.findIndex(gi,e.isModuleDeclaration),fa=La!==-1?gi[La]:void 0;if(fa&&zt&&zt.isExportEquals&&e.isIdentifier(zt.expression)&&e.isIdentifier(fa.name)&&e.idText(fa.name)===e.idText(zt.expression)&&fa.body&&e.isModuleBlock(fa.body)){var ya=e.filter(gi,function(sn){return!!(e.getEffectiveModifierFlags(sn)&1)}),Nn=fa.name,fn=fa.body;if(e.length(ya)&&(fa=e.factory.updateModuleDeclaration(fa,fa.decorators,fa.modifiers,fa.name,fn=e.factory.updateModuleBlock(fn,e.factory.createNodeArray(Ve(Ve([],fa.body.statements,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.map(e.flatMap(ya,function(sn){return Vt(sn)}),function(sn){return e.factory.createExportSpecifier(!1,void 0,sn)})),void 0)],!1)))),gi=Ve(Ve(Ve([],gi.slice(0,La),!0),[fa],!1),gi.slice(La+1),!0)),!e.find(gi,function(sn){return sn!==fa&&e.nodeHasName(sn,Nn)})){$t=[];var hn=!e.some(fn.statements,function(sn){return e.hasSyntacticModifier(sn,1)||e.isExportAssignment(sn)||e.isExportDeclaration(sn)});e.forEach(fn.statements,function(sn){Ts(sn,hn?1:0)}),gi=Ve(Ve([],e.filter(gi,function(sn){return sn!==fa&&sn!==zt}),!0),$t,!0)}}return gi}function on(gi){var zt=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(zt)>1){var La=e.filter(gi,function(ln){return!e.isExportDeclaration(ln)||!!ln.moduleSpecifier||!ln.exportClause});gi=Ve(Ve([],La,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(zt,function(ln){return e.cast(ln.exportClause,e.isNamedExports).elements})),void 0)],!1)}var fa=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(fa)>1){var ya=e.group(fa,function(ln){return e.isStringLiteral(ln.moduleSpecifier)?\">\"+ln.moduleSpecifier.text:\">\"});if(ya.length!==fa.length)for(var Nn=function(ln){ln.length>1&&(gi=Ve(Ve([],e.filter(gi,function(lo){return ln.indexOf(lo)===-1}),!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(ln,function(lo){return e.cast(lo.exportClause,e.isNamedExports).elements})),ln[0].moduleSpecifier)],!1))},fn=0,hn=ya;fn=0){var La=gi[zt],fa=e.mapDefined(La.exportClause.elements,function(ya){if(!ya.propertyName){var Nn=e.indicesOf(gi),fn=e.filter(Nn,function(lo){return e.nodeHasName(gi[lo],ya.name)});if(e.length(fn)&&e.every(fn,function(lo){return Qn(gi[lo])})){for(var hn=0,sn=fn;hn0&&e.isSingleOrDoubleQuote(fa.charCodeAt(0))?e.stripQuotes(fa):fa}return zt===\"default\"?zt=\"_default\":zt===\"export=\"&&(zt=\"_exports\"),zt=e.isIdentifierText(zt,Ae)&&!e.isStringANonContextualKeyword(zt)?zt:\"_\"+zt.replace(/[^a-zA-Z0-9]/g,\"_\"),zt}function ls(gi,zt){var La=y(gi);return Fr.remappedSymbolNames.has(La)?Fr.remappedSymbolNames.get(La):(zt=Qo(gi,zt),Fr.remappedSymbolNames.set(La,zt),zt)}}}function Ll(r,i,t,o){return t===void 0&&(t=16384),o?s(o).getText():e.usingSingleLineStringWriter(s);function s(u){var h=e.factory.createTypePredicateNode(r.kind===2||r.kind===3?e.factory.createToken(128):void 0,r.kind===1||r.kind===3?e.factory.createIdentifier(r.parameterName):e.factory.createThisTypeNode(),r.type&&Ur.typeToTypeNode(r.type,i,Rp(t)|70221824|512)),z=e.createPrinter({removeComments:!0}),me=i&&e.getSourceFileOfNode(i);return z.writeNode(4,h,me,u),u}}function hd(r){for(var i=[],t=0,o=0;o=0){for(var o=eu.length,s=t;s=0;t--){if(sr(eu[t],pu[t]))return-1;if(eu[t]===r&&pu[t]===i)return t}return-1}function sr(r,i){switch(i){case 0:return!!Aa(r).type;case 5:return!!va(r).resolvedEnumType;case 2:return!!Aa(r).declaredType;case 1:return!!r.resolvedBaseConstructorType;case 3:return!!r.resolvedReturnType;case 4:return!!r.immediateBaseConstraint;case 6:return!!r.resolvedTypeArguments;case 7:return!!r.baseTypesResolved;case 8:return!!Aa(r).writeType}return e.Debug.assertNever(i)}function fi(){return eu.pop(),pu.pop(),Ws.pop()}function zi(r){return e.findAncestor(e.getRootDeclaration(r),function(i){switch(i.kind){case 254:case 255:case 270:case 269:case 268:case 267:return!1;default:return!0}}).parent}function Sa(r){var i=go(Ys(r));return i.typeParameters?Yf(i,e.map(i.typeParameters,function(t){return Oe})):i}function da(r,i){var t=bi(r,i);return t?Jt(t):void 0}function Ha(r,i){var t;return da(r,i)||((t=Xo(r,i))===null||t===void 0?void 0:t.type)||gr}function ta(r){return r&&(r.flags&1)!==0}function nn(r){return r===Pe||!!(r.flags&1&&r.aliasSymbol)}function Wo(r,i){if(i!==0)return G_(r,!1,i);var t=Et(r);return t&&Aa(t).type||G_(r,!1,i)}function Lo(r,i,t){if(r=ec(r,function(li){return!(li.flags&98304)}),r.flags&131072)return Ba;if(r.flags&1048576)return Ss(r,function(li){return Lo(li,i,t)});for(var o=Pa(e.map(i,Z_)),s=[],u=[],h=0,z=uo(r);h=2?B3(Oe):mo;var h=e.map(o,function($e){return e.isOmittedExpression($e)?Oe:vs($e,i,t)}),z=e.findLastIndex(o,function($e){return!($e===u||e.isOmittedExpression($e)||pm($e))},o.length-1)+1,me=e.map(o,function($e,tr){return $e===u?4:tr>=z?2:1}),Me=Wl(h,me);return i&&(Me=ux(Me),Me.pattern=r,Me.objectFlags|=131072),Me}function Qu(r,i,t){return i===void 0&&(i=!1),t===void 0&&(t=!1),r.kind===201?Ac(r,i,t):Is(r,i,t)}function sc(r,i){return Mc(G_(r,!0,0),r,i)}function bc(r){var i=Et(r),t=x3(!1);return t&&i&&i===t}function Mc(r,i,t){return r?(r.flags&4096&&bc(i.parent)&&(r=CD(i)),t&&Kh(i,r),r.flags&8192&&(e.isBindingElement(i)||!i.type)&&r.symbol!==Et(i)&&(r=Ki),$c(r)):(r=e.isParameter(i)&&i.dotDotDotToken?mo:Oe,t&&(Yu(i)||Xp(i,r)),r)}function Yu(r){var i=e.getRootDeclaration(r),t=i.kind===164?i.parent:i;return I0(t)}function Rl(r){var i=e.getEffectiveTypeAnnotationNode(r);if(i)return Va(i)}function Lc(r){var i=Aa(r);if(!i.type){var t=_(r);i.type||(i.type=t)}return i.type}function _(r){if(r.flags&4194304)return Sa(r);if(r===qr)return Oe;if(r.flags&134217728&&r.valueDeclaration){var i=Et(e.getSourceFileOfNode(r.valueDeclaration)),t=oo(i.flags,\"exports\");t.declarations=i.declarations?i.declarations.slice():[],t.parent=r,t.target=i,i.valueDeclaration&&(t.valueDeclaration=i.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),i.exports&&(t.exports=new e.Map(i.exports));var o=e.createSymbolTable();return o.set(\"exports\",t),rs(r,o,e.emptyArray,e.emptyArray,e.emptyArray)}e.Debug.assertIsDefined(r.valueDeclaration);var s=r.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(s)){var u=e.getEffectiveTypeAnnotationNode(s);if(u===void 0)return be?gr:Oe;var h=Bd(u);return ta(h)||h===gr?h:Pe}if(e.isSourceFile(s)&&e.isJsonSourceFile(s))return s.statements.length?$c(Hp(yn(s.statements[0].expression))):Ba;if(e.isAccessor(s))return rt(r);if(!yu(r,0))return r.flags&512&&!(r.flags&67108864)?vo(r):lg(r);var z;if(s.kind===271)z=Mc(Rl(s)||Os(s.expression),s);else if(e.isBinaryExpression(s)||e.isInJSFile(s)&&(e.isCallExpression(s)||(e.isPropertyAccessExpression(s)||e.isBindableStaticElementAccessExpression(s))&&e.isBinaryExpression(s.parent)))z=Ta(r);else if(e.isPropertyAccessExpression(s)||e.isElementAccessExpression(s)||e.isIdentifier(s)||e.isStringLiteralLike(s)||e.isNumericLiteral(s)||e.isClassDeclaration(s)||e.isFunctionDeclaration(s)||e.isMethodDeclaration(s)&&!e.isObjectLiteralMethod(s)||e.isMethodSignature(s)||e.isSourceFile(s)){if(r.flags&9136)return vo(r);z=e.isBinaryExpression(s.parent)?Ta(r):Rl(s)||Oe}else if(e.isPropertyAssignment(s))z=Rl(s)||Kk(s);else if(e.isJsxAttribute(s))z=Rl(s)||OC(s);else if(e.isShorthandPropertyAssignment(s))z=Rl(s)||Dm(s.name,0);else if(e.isObjectLiteralMethod(s))z=Rl(s)||Gk(s,0);else if(e.isParameter(s)||e.isPropertyDeclaration(s)||e.isPropertySignature(s)||e.isVariableDeclaration(s)||e.isBindingElement(s)||e.isJSDocPropertyLikeTag(s))z=sc(s,!0);else if(e.isEnumDeclaration(s))z=vo(r);else if(e.isEnumMember(s))z=H_(r);else return e.Debug.fail(\"Unhandled declaration kind! \"+e.Debug.formatSyntaxKind(s.kind)+\" for \"+e.Debug.formatSymbol(r));return fi()?z:r.flags&512&&!(r.flags&67108864)?vo(r):lg(r)}function W(r){if(r)if(r.kind===172){var i=e.getEffectiveReturnTypeNode(r);return i}else{var t=e.getEffectiveSetAccessorTypeAnnotationNode(r);return t}}function Te(r){var i=W(r);return i&&Va(i)}function cr(r){var i=qS(r);return i&&i.symbol}function ni(r){return T_(yl(r))}function rt(r){var i=Aa(r);if(!i.type){if(!yu(r,0))return Pe;var t=e.getDeclarationOfKind(r,172),o=e.getDeclarationOfKind(r,173),s=t&&e.isInJSFile(t)&&K_(t)||Te(t)||Te(o)||t&&t.body&&C0(t);s||(o&&!I0(o)?Ic(n,o,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,tn(r)):t&&!I0(t)&&Ic(n,t,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,tn(r)),s=Oe),fi()||(W(t)?Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):W(o)?Xr(o,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):t&&n&&Xr(t,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,tn(r)),s=Oe),i.type=s}return i.type}function yt(r){var i=Aa(r);if(!i.writeType){if(!yu(r,8))return Pe;var t=e.getDeclarationOfKind(r,173),o=Te(t);fi()||(W(t)&&Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),o=Oe),i.writeType=o||rt(r)}return i.writeType}function Xa(r){var i=Bl(aa(r));return i.flags&8650752?i:i.flags&2097152?e.find(i.types,function(t){return!!(t.flags&8650752)}):void 0}function vo(r){var i=Aa(r),t=i;if(!i.type){var o=r.valueDeclaration&&T0(r.valueDeclaration,!1);if(o){var s=iS(r,o);s&&(r=i=s)}t.type=i.type=Vs(r)}return i.type}function Vs(r){var i=r.valueDeclaration;if(r.flags&1536&&e.isShorthandAmbientModuleSymbol(r))return Oe;if(i&&(i.kind===221||e.isAccessExpression(i)&&i.parent.kind===221))return Ta(r);if(r.flags&512&&i&&e.isSourceFile(i)&&i.commonJsModuleIndicator){var t=Us(r);if(t!==r){if(!yu(r,0))return Pe;var o=so(r.exports.get(\"export=\")),s=Ta(o,o===t?void 0:t);return fi()?s:lg(r)}}var u=tu(16,r);if(r.flags&32){var h=Xa(r);return h?Do([u,h]):u}else return Ye&&r.flags&16777216?i_(u):u}function H_(r){var i=Aa(r);return i.type||(i.type=hu(r))}function y_(r){var i=Aa(r);if(!i.type){var t=Ps(r),o=r.declarations&&Ec(ru(r),!0),s=e.firstDefined(o==null?void 0:o.declarations,function(u){return e.isExportAssignment(u)?Rl(u):void 0});i.type=(o==null?void 0:o.declarations)&&z0(o.declarations)&&r.declarations.length?di(o):z0(r.declarations)?nr:s||(t.flags&111551?Jt(t):Pe)}return i.type}function Dd(r){var i=Aa(r);return i.type||(i.type=un(Jt(i.target),i.mapper))}function jp(r){var i=Aa(r);return i.writeType||(i.writeType=un(Vg(i.target),i.mapper))}function lg(r){var i=r.valueDeclaration;return e.getEffectiveTypeAnnotationNode(i)?(Xr(r.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),Pe):(n&&(i.kind!==164||i.initializer)&&Xr(r.valueDeclaration,e.Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer,tn(r)),Oe)}function Om(r){var i=Aa(r);return i.type||(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.type=i.deferralParent.flags&1048576?Pa(i.deferralConstituents):Do(i.deferralConstituents)),i.type}function Fm(r){var i=Aa(r);return!i.writeType&&i.deferralWriteConstituents&&(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.writeType=i.deferralParent.flags&1048576?Pa(i.deferralWriteConstituents):Do(i.deferralWriteConstituents)),i.writeType}function Vg(r){var i=e.getCheckFlags(r);return r.flags&4?i&2?i&65536?Fm(r)||Om(r):r.writeType||r.type:Jt(r):r.flags&98304?i&1?jp(r):yt(r):Jt(r)}function Jt(r){var i=e.getCheckFlags(r);return i&65536?Om(r):i&1?Dd(r):i&262144?J1(r):i&8192?qw(r):r.flags&7?Lc(r):r.flags&9136?vo(r):r.flags&8?H_(r):r.flags&98304?rt(r):r.flags&2097152?y_(r):Pe}function ml(r){return kg(Jt(r),!!(r.flags&16777216))}function Xf(r,i){return r!==void 0&&i!==void 0&&(e.getObjectFlags(r)&4)!==0&&r.target===i}function bd(r){return e.getObjectFlags(r)&4?r.target:r}function lf(r,i){return t(r);function t(o){if(e.getObjectFlags(o)&7){var s=bd(o);return s===i||e.some(Qc(s),t)}else if(o.flags&2097152)return e.some(o.types,t);return!1}}function Kg(r,i){for(var t=0,o=i;t0)return!0;if(r.flags&8650752){var i=uc(r);return!!i&&Wd(i)}return!1}function fg(r){var i=e.getClassLikeDeclarationOfSymbol(r.symbol);return i&&e.getEffectiveBaseTypeNode(i)}function Mm(r,i,t){var o=e.length(i),s=e.isInJSFile(t);return e.filter(ot(r,1),function(u){return(s||o>=Ul(u.typeParameters))&&o<=e.length(u.typeParameters)})}function Xg(r,i,t){var o=Mm(r,i,t),s=e.map(i,Va);return e.sameMap(o,function(u){return e.some(u.typeParameters)?Xm(u,s,e.isInJSFile(t)):u})}function Bl(r){if(!r.resolvedBaseConstructorType){var i=e.getClassLikeDeclarationOfSymbol(r.symbol),t=i&&e.getEffectiveBaseTypeNode(i),o=fg(r);if(!o)return r.resolvedBaseConstructorType=Tr;if(!yu(r,1))return Pe;var s=yn(o.expression);if(t&&o!==t&&(e.Debug.assert(!t.typeArguments),yn(t.expression)),s.flags&2621440&&Ru(s),!fi())return Xr(r.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,tn(r.symbol)),r.resolvedBaseConstructorType=Pe;if(!(s.flags&1)&&s!==ct&&!qd(s)){var u=Xr(o.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,Ot(s));if(s.flags&262144){var h=tm(s),z=gr;if(h){var me=ot(h,1);me[0]&&(z=yo(me[0]))}s.symbol.declarations&&e.addRelatedInfo(u,e.createDiagnosticForNode(s.symbol.declarations[0],e.Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1,tn(s.symbol),Ot(z)))}return r.resolvedBaseConstructorType=Pe}r.resolvedBaseConstructorType=s}return r.resolvedBaseConstructorType}function Qg(r){var i=e.emptyArray;if(r.symbol.declarations)for(var t=0,o=r.symbol.declarations;t=Dr&&me<=Qr){var li=Qr?mh(dr,zp(z,dr.typeParameters,Dr,h)):xd(dr);li.typeParameters=r.localTypeParameters,li.resolvedReturnType=r,li.flags=s?li.flags|4:li.flags&-5,Me.push(li)}}return Me}function gg(r,i,t,o,s){for(var u=0,h=r;u0)return;for(var o=1;o1&&(t=t===void 0?o:-1);for(var s=0,u=r[o];s1){var Me=h.thisParameter,$e=e.forEach(z,function(Zi){return Zi.thisParameter});if($e){var tr=Do(e.mapDefined(z,function(Zi){return Zi.thisParameter&&Jt(Zi.thisParameter)}));Me=eg($e,tr)}me=Uv(h,z),me.thisParameter=Me}(i||(i=[])).push(me)}}}}if(!e.length(i)&&t!==-1){for(var dr=r[t!==void 0?t:0],Dr=dr.slice(),Qr=function(Zi){if(Zi!==dr){var qt=Zi[0];if(e.Debug.assert(!!qt,\"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass\"),Dr=!!qt.typeParameters&&e.some(Dr,function(Nt){return!!Nt.typeParameters&&!ah(qt.typeParameters,Nt.typeParameters)})?void 0:e.map(Dr,function(Nt){return M1(Nt,qt)}),!Dr)return\"break\"}},li=0,Ti=r;li=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||\"arg\".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,\"args\");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function M1(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=nh(r,i,o),h=F1(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=1048576,me.compositeSignatures=e.concatenate(r.compositeKind!==2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind!==2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function oh(r){var i=Hn(r[0]);if(i){for(var t=[],o=function(z){var me=z.keyType;e.every(r,function(Me){return!!ss(Me,me)})&&t.push(zl(me,Pa(e.map(r,function(Me){return cs(Me,me)})),e.some(r,function(Me){return ss(Me,me).isReadonly})))},s=0,u=i;s0}),t=e.map(r,Wd);if(i>0&&i===e.countWhere(t,function(s){return s})){var o=t.indexOf(!0);t[o]=!1}return t}function sh(r,i,t,o){for(var s=[],u=0;u0&&(tr=e.map(tr,function(dr){var Dr=xd(dr);return Dr.resolvedReturnType=sh(yo(dr),s,u,Me),Dr})),t=ch(t,tr)}i=ch(i,ot($e,0)),o=e.reduceLeft(Hn($e),function(dr,Dr){return uh(dr,Dr,!1)},o)},me=0;me2?(Qt.checkFlags|=65536,Qt.deferralParent=r,Qt.deferralConstituents=wn,Qt.deferralWriteConstituents=Tn):(Qt.type=me?Pa(wn):Do(wn),Tn&&(Qt.writeType=me?Pa(Tn):Do(Tn))),Qt}}function $v(r,i,t){var o,s,u=((o=r.propertyCacheWithoutObjectFunctionPropertyAugment)===null||o===void 0?void 0:o.get(i))||!t?(s=r.propertyCache)===null||s===void 0?void 0:s.get(i):void 0;if(!u&&(u=Yv(r,i,t),u)){var h=t?r.propertyCacheWithoutObjectFunctionPropertyAugment||(r.propertyCacheWithoutObjectFunctionPropertyAugment=e.createSymbolTable()):r.propertyCache||(r.propertyCache=e.createSymbolTable());h.set(i,u)}return u}function Zv(r,i,t){var o=$v(r,i,t);return o&&!(e.getCheckFlags(o)&16)?o:void 0}function bu(r){return r.flags&1048576&&r.objectFlags&16777216?r.resolvedReducedType||(r.resolvedReducedType=$1(r)):r.flags&2097152?(r.objectFlags&16777216||(r.objectFlags|=16777216|(e.some(em(r),c)?33554432:0)),r.objectFlags&33554432?ui:r):r}function $1(r){var i=e.sameMap(r.types,bu);if(i===r.types)return r;var t=Pa(i);return t.flags&1048576&&(t.resolvedReducedType=t),t}function c(r){return te(r)||xr(r)}function te(r){return!(r.flags&16777216)&&(e.getCheckFlags(r)&131264)===192&&!!(Jt(r).flags&131072)}function xr(r){return!r.valueDeclaration&&!!(e.getCheckFlags(r)&1024)}function ei(r,i){if(i.flags&2097152&&e.getObjectFlags(i)&33554432){var t=e.find(em(i),te);if(t)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents,Ot(i,void 0,536870912),tn(t));var o=e.find(em(i),xr);if(o)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some,Ot(i,void 0,536870912),tn(o))}return r}function bi(r,i,t){if(r=Xd(r),r.flags&524288){var o=Ru(r),s=o.members.get(i);if(s&&gc(s))return s;if(t)return;var u=o===xn?br:o.callSignatures.length?Zr:o.constructSignatures.length?Si:void 0;if(u){var h=h_(u,i);if(h)return h}return h_(qe,i)}if(r.flags&3145728)return Zv(r,i,t)}function Ft(r,i){if(r.flags&3670016){var t=Ru(r);return i===0?t.callSignatures:t.constructSignatures}return e.emptyArray}function ot(r,i){return Ft(Xd(r),i)}function xa(r,i){return e.find(r,function(t){return t.keyType===i})}function mn(r,i){for(var t,o,s,u=0,h=r;u=0),t>=Hl(i,3)}var o=e.getImmediatelyInvokedFunctionExpression(r.parent);return o?!r.type&&!r.dotDotDotToken&&r.parent.parameters.indexOf(r)>=o.arguments.length:!1}function qm(r){return e.isPropertyDeclaration(r)&&r.questionToken}function Vm(r){if(!e.isJSDocPropertyLikeTag(r))return!1;var i=r.isBracketed,t=r.typeExpression;return i||!!t&&t.type.kind===316}function vg(r,i,t,o){return{kind:r,parameterName:i,parameterIndex:t,type:o}}function Ul(r){var i=0;if(r)for(var t=0;t=t&&u<=s){for(var h=r?r.slice():[],z=u;zz.arguments.length&&!Dr||Cd(tr);li||(s=t.length)}if((r.kind===172||r.kind===173)&&Td(r)&&(!h||!u)){var Ti=r.kind===172?173:172,Ci=e.getDeclarationOfKind(Et(r),Ti);Ci&&(u=cr(Ci))}var $i=r.kind===171?aa(so(r.parent.symbol)):void 0,Zi=$i?$i.localTypeParameters:jl(r);(e.hasRestParameter(r)||e.isInJSFile(r)&&ey(r,t))&&(o|=1),(e.isConstructorTypeNode(r)&&e.hasSyntacticModifier(r,128)||e.isConstructorDeclaration(r)&&e.hasSyntacticModifier(r.parent,128))&&(o|=4),i.resolvedSignature=Fu(r,Zi,u,t,void 0,void 0,s,o)}return i.resolvedSignature}function ey(r,i){if(e.isJSDocSignature(r)||!Gm(r))return!1;var t=e.lastOrUndefined(r.parameters),o=t?e.getJSDocParameterTags(t):e.getJSDocTags(r).filter(e.isJSDocParameterTag),s=e.firstDefined(o,function(h){return h.typeExpression&&e.isJSDocVariadicType(h.typeExpression.type)?h.typeExpression.type:void 0}),u=oo(3,\"args\",32768);return s?u.type=Zs(Va(s.type)):(u.checkFlags|=65536,u.deferralParent=ui,u.deferralConstituents=[mo],u.deferralWriteConstituents=[mo]),s&&i.pop(),i.push(u),!0}function rm(r){if(!!(e.isInJSFile(r)&&e.isFunctionLikeDeclaration(r))){var i=e.getJSDocTypeTag(r);return(i==null?void 0:i.typeExpression)&&ig(Va(i.typeExpression))}}function Km(r,i){var t=rm(r);if(!!t){var o=r.parameters.indexOf(i);return i.dotDotDotToken?ym(t,o):$u(t,o)}}function ry(r){var i=rm(r);return i&&yo(i)}function Gm(r){var i=va(r);return i.containsArgumentsReference===void 0&&(i.flags&8192?i.containsArgumentsReference=!0:i.containsArgumentsReference=t(r.body)),i.containsArgumentsReference;function t(o){if(!o)return!1;switch(o.kind){case 79:return o.escapedText===or.escapedName&&Nv(o)===or;case 167:case 169:case 172:case 173:return o.name.kind===162&&t(o.name);case 206:case 207:return t(o.expression);case 296:return t(o.initializer);default:return!e.nodeStartsNewLexicalEnvironment(o)&&!e.isPartOfTypeNode(o)&&!!e.forEachChild(o,t)}}}function S_(r){if(!r||!r.declarations)return e.emptyArray;for(var i=[],t=0;t0&&o.body){var s=r.declarations[t-1];if(o.parent===s.parent&&o.kind===s.kind&&o.pos===s.end)continue}i.push(yl(o))}}return i}function Hm(r){var i=ac(r,r);if(i){var t=Us(i);if(t)return Jt(t)}return Oe}function T_(r){if(r.thisParameter)return Jt(r.thisParameter)}function Yc(r){if(!r.resolvedTypePredicate){if(r.target){var i=Yc(r.target);r.resolvedTypePredicate=i?BI(i,r.mapper):Ro}else if(r.compositeSignatures)r.resolvedTypePredicate=X3(r.compositeSignatures,r.compositeKind)||Ro;else{var t=r.declaration&&e.getEffectiveReturnTypeNode(r.declaration),o=void 0;if(!t&&e.isInJSFile(r.declaration)){var s=rm(r.declaration);s&&r!==s&&(o=Yc(s))}r.resolvedTypePredicate=t&&e.isTypePredicateNode(t)?gh(t,r):o||Ro}e.Debug.assert(!!r.resolvedTypePredicate)}return r.resolvedTypePredicate===Ro?void 0:r.resolvedTypePredicate}function gh(r,i){var t=r.parameterName,o=r.type&&Va(r.type);return t.kind===192?vg(r.assertsModifier?2:0,void 0,void 0,o):vg(r.assertsModifier?3:1,t.escapedText,e.findIndex(i.parameters,function(s){return s.escapedName===t.escapedText}),o)}function iy(r,i,t){return i!==2097152?Pa(r,t):Do(r)}function yo(r){if(!r.resolvedReturnType){if(!yu(r,3))return Pe;var i=r.target?un(yo(r.target),r.mapper):r.compositeSignatures?un(iy(e.map(r.compositeSignatures,yo),r.compositeKind,2),r.mapper):yg(r.declaration)||(e.nodeIsMissing(r.declaration.body)?Oe:C0(r.declaration));if(r.flags&8?i=FE(i):r.flags&16&&(i=i_(i)),!fi()){if(r.declaration){var t=e.getEffectiveReturnTypeNode(r.declaration);if(t)Xr(t,e.Diagnostics.Return_type_annotation_circularly_references_itself);else if(n){var o=r.declaration,s=e.getNameOfDeclaration(o);s?Xr(s,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,e.declarationNameToString(s)):Xr(o,e.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions)}}i=Oe}r.resolvedReturnType=i}return r.resolvedReturnType}function yg(r){if(r.kind===171)return aa(so(r.parent.symbol));if(e.isJSDocConstructSignature(r))return Va(r.parameters[0].type);var i=e.getEffectiveReturnTypeNode(r);if(i)return Va(i);if(r.kind===172&&Td(r)){var t=e.isInJSFile(r)&&K_(r);if(t)return t;var o=e.getDeclarationOfKind(Et(r),173),s=Te(o);if(s)return s}return ry(r)}function Z1(r){return!r.resolvedReturnType&&v(r,3)>=0}function _3(r){return ix(r)||Oe}function ix(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]),t=Yn(i)?sv(i):i;return t&&cs(t,nt)}}function Xm(r,i,t,o){var s=eD(r,zp(i,r.typeParameters,Ul(r.typeParameters),t));if(o){var u=ok(yo(s));if(u){var h=xd(u);h.typeParameters=o;var z=xd(s);return z.resolvedReturnType=im(h),z}}return s}function eD(r,i){var t=r.instantiations||(r.instantiations=new e.Map),o=Su(i),s=t.get(o);return s||t.set(o,s=mh(r,i)),s}function mh(r,i){return Tg(r,p3(r,i),!0)}function p3(r,i){return Uc(r.typeParameters,i)}function Qm(r){return r.typeParameters?r.erasedSignatureCache||(r.erasedSignatureCache=d3(r)):r}function d3(r){return Tg(r,sE(r.typeParameters),!0)}function g3(r){return r.typeParameters?r.canonicalSignatureCache||(r.canonicalSignatureCache=m3(r)):r}function m3(r){return Xm(r,e.map(r.typeParameters,function(i){return i.target&&!Tc(i.target)?i.target:i}),e.isInJSFile(r.declaration))}function v3(r){var i=r.typeParameters;if(i){if(r.baseSignatureCache)return r.baseSignatureCache;for(var t=sE(i),o=Uc(i,e.map(i,function(h){return Tc(h)||gr})),s=e.map(i,function(h){return un(h,o)||gr}),u=0;u1&&(i+=\":\"+u),o+=u}return i}function hg(r,i){return r?\"@\".concat(y(r))+(i?\":\".concat(Su(i)):\"\"):\"\"}function iD(r,i){for(var t=0,o=0,s=r;oo.length)){var me=h&&e.isExpressionWithTypeArguments(r)&&!e.isJSDocAugmentsTag(r.parent),Me=u===o.length?me?e.Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_1_type_argument_s:me?e.Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,$e=Ot(t,void 0,2);if(Xr(r,Me,$e,u,o.length),!h)return Pe}if(r.kind===178&&wx(r,e.length(r.typeArguments)!==o.length))return tD(t,r,void 0);var tr=e.concatenate(t.outerTypeParameters,zp(bh(r),o,u,h));return Yf(t,tr)}return Wp(r,i)?t:Pe}function am(r,i,t,o){var s=go(r);if(s===De&&x.has(r.escapedName)&&i&&i.length===1)return Th(r,i[0]);var u=Aa(r),h=u.typeParameters,z=Su(i)+hg(t,o),me=u.instantiations.get(z);return me||u.instantiations.set(z,me=lE(s,Uc(h,zp(i,h,Ul(h),e.isInJSFile(r.valueDeclaration))),t,o)),me}function y3(r,i){if(e.getCheckFlags(i)&1048576){var t=bh(r),o=hg(i,t),s=Ar.get(o);return s||(s=ms(1,\"error\"),s.aliasSymbol=i,s.aliasTypeArguments=t,Ar.set(o,s)),s}var u=go(i),h=Aa(i).typeParameters;if(h){var z=e.length(r.typeArguments),me=Ul(h);if(zh.length)return Xr(r,me===h.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,tn(i),me,h.length),Pe;var Me=Qd(r),$e=Me&&(fx(i)||!fx(Me))?Me:void 0;return am(i,bh(r),$e,bg($e))}return Wp(r,i)?u:Pe}function fx(r){var i,t=(i=r.declarations)===null||i===void 0?void 0:i.find(e.isTypeAlias);return!!(t&&e.getContainingFunction(t))}function h3(r){switch(r.kind){case 178:return r.typeName;case 228:var i=r.expression;if(e.isEntityNameExpression(i))return i}}function _x(r){return r.parent?\"\".concat(_x(r.parent),\".\").concat(r.escapedName):r.escapedName}function yh(r){var i=r.kind===161?r.right:r.kind===206?r.name:r,t=i.escapedText;if(t){var o=r.kind===161?yh(r.left):r.kind===206?yh(r.expression):void 0,s=o?\"\".concat(_x(o),\".\").concat(t):t,u=mr.get(s);return u||(mr.set(s,u=oo(524288,t,1048576)),u.parent=o,u.declaredType=Ue),u}return xe}function nm(r,i,t){var o=h3(r);if(!o)return xe;var s=Ds(o,i,t);return s&&s!==xe?s:t?xe:yh(o)}function hh(r,i){if(i===xe)return Pe;if(i=Cc(i)||i,i.flags&96)return lx(r,i);if(i.flags&524288)return y3(r,i);var t=Vd(i);if(t)return Wp(r,i)?jc(t):Pe;if(i.flags&111551&&Dh(r)){var o=D3(r,i);return o||(nm(r,788968),Jt(i))}return Pe}function D3(r,i){var t=va(r);if(!t.resolvedJSDocType){var o=Jt(i),s=o;if(i.valueDeclaration){var u=r.kind===200&&r.qualifier;o.symbol&&o.symbol!==i&&u&&(s=hh(r,o.symbol))}t.resolvedJSDocType=s}return t.resolvedJSDocType}function px(r,i){if(i.flags&3||i===r)return r;var t=\"\".concat(fu(r),\">\").concat(fu(i)),o=Ze.get(t);if(o)return o;var s=mc(33554432);return s.baseType=r,s.substitute=i,Ze.set(t,s),s}function dx(r){return r.kind===184&&r.elements.length===1}function gx(r,i,t){return dx(i)&&dx(t)?gx(r,i.elements[0],t.elements[0]):rp(Va(i))===rp(r)?Va(t):void 0}function mx(r,i){for(var t,o=!0;i&&!e.isStatement(i)&&i.kind!==320;){var s=i.parent;if(s.kind===164&&(o=!o),(o||r.flags&8650752)&&s.kind===189&&i===s.trueType){var u=gx(r,s.checkType,s.extendsType);u&&(t=e.append(t,u))}else if(r.flags&262144&&s.kind===195&&i===s.type){var h=Va(s);if(Du(h)===rp(r)){var z=Ih(h);if(z){var u=Tc(z);u&&gf(u,Pd)&&(t=e.append(t,Pa([nt,$a])))}}}i=s}return t?px(r,Do(e.append(t,r))):r}function Dh(r){return!!(r.flags&8388608)&&(r.kind===178||r.kind===200)}function Wp(r,i){return r.typeArguments?(Xr(r,e.Diagnostics.Type_0_is_not_generic,i?tn(i):r.typeName?e.declarationNameToString(r.typeName):C),!1):!0}function vx(r){if(e.isIdentifier(r.typeName)){var i=r.typeArguments;switch(r.typeName.escapedText){case\"String\":return Wp(r),Li;case\"Number\":return Wp(r),nt;case\"Boolean\":return Wp(r),Ii;case\"Void\":return Wp(r),Fi;case\"Undefined\":return Wp(r),Tr;case\"Null\":return Wp(r),Wi;case\"Function\":case\"function\":return Wp(r),br;case\"array\":return(!i||!i.length)&&!n?mo:void 0;case\"promise\":return(!i||!i.length)&&!n?Ny(Oe):void 0;case\"Object\":if(i&&i.length===2){if(e.isJSDocIndexSignature(r)){var t=Va(i[0]),o=Va(i[1]),s=t===Li||t===nt?[zl(t,o,!1)]:e.emptyArray;return rs(void 0,we,e.emptyArray,e.emptyArray,s)}return Oe}return Wp(r),n?void 0:Oe}}}function b3(r){var i=Va(r.type);return Ye?Uh(i,65536):i}function ty(r){var i=va(r);if(!i.resolvedType){if(e.isConstTypeReference(r)&&e.isAssertionExpression(r.parent))return i.resolvedSymbol=xe,i.resolvedType=Os(r.parent.expression);var t=void 0,o=void 0,s=788968;Dh(r)&&(o=vx(r),o||(t=nm(r,s,!0),t===xe?t=nm(r,s|111551):nm(r,s),o=hh(r,t))),o||(t=nm(r,s),o=hh(r,t)),i.resolvedSymbol=t,i.resolvedType=o}return i.resolvedType}function bh(r){return e.map(r.typeArguments,Va)}function yx(r){var i=va(r);if(!i.resolvedType){var t=kk(r);i.resolvedType=jc($c(t))}return i.resolvedType}function hx(r,i){function t(s){var u=s.declarations;if(u)for(var h=0,z=u;h=0)return ny(e.map(i,function(Ci,$i){return r.elementFlags[$i]&8?Ci:gr}))?Ss(i[u],function(Ci){return Fx(r,e.replaceElement(i,u,Ci))}):Pe}for(var h=[],z=[],me=[],Me=-1,$e=-1,tr=-1,dr=function(Ci){var $i=i[Ci],Zi=r.elementFlags[Ci];if(Zi&8)if($i.flags&58982400||Bc($i))Ti($i,8,(t=r.labeledElementDeclarations)===null||t===void 0?void 0:t[Ci]);else if(Yn($i)){var qt=xo($i);if(qt.length+h.length>=1e4)return Xr(Ie,e.isPartOfTypeNode(Ie)?e.Diagnostics.Type_produces_a_tuple_type_that_is_too_large_to_represent:e.Diagnostics.Expression_produces_a_tuple_type_that_is_too_large_to_represent),{value:Pe};e.forEach(qt,function(Nt,Ra){var ca;return Ti(Nt,$i.target.elementFlags[Ra],(ca=$i.target.labeledElementDeclarations)===null||ca===void 0?void 0:ca[Ra])})}else Ti(sp($i)&&cs($i,nt)||Pe,4,(o=r.labeledElementDeclarations)===null||o===void 0?void 0:o[Ci]);else Ti($i,Zi,(s=r.labeledElementDeclarations)===null||s===void 0?void 0:s[Ci])},Dr=0;Dr=0&&$eo.fixedLength?Aw(r)||Wl(e.emptyArray):Wl(xo(r).slice(i,s),o.elementFlags.slice(i,s),!1,o.labeledElementDeclarations&&o.labeledElementDeclarations.slice(i,s))}function Mx(r){return Pa(e.append(e.arrayOf(r.target.fixedLength,function(i){return Bu(\"\"+i)}),ql(r.target.readonly?Qi:Pi)))}function Lx(r,i){var t=e.findIndex(r.elementFlags,function(o){return!(o&i)});return t>=0?t:r.elementFlags.length}function Sh(r,i){return r.elementFlags.length-e.findLastIndex(r.elementFlags,function(t){return!(t&i)})-1}function W3(r){return kc(Va(r.type),!0)}function fu(r){return r.id}function $f(r,i){return e.binarySearch(r,i,fu,e.compareValues)>=0}function lD(r,i){var t=e.binarySearch(r,i,fu,e.compareValues);return t<0?(r.splice(~t,0,i),!0):!1}function q3(r,i,t){var o=t.flags;if(o&1048576)return Rx(r,i|(H3(t)?1048576:0),t.types);if(!(o&131072))if(i|=o&205258751,o&465829888&&(i|=33554432),t===Mr&&(i|=8388608),!Ye&&o&98304)e.getObjectFlags(t)&65536||(i|=4194304);else{var s=r.length,u=s&&t.id>r[s-1].id?~s:e.binarySearch(r,t,fu,e.compareValues);u<0&&r.splice(~u,0,t)}return i}function Rx(r,i,t){for(var o=0,s=t;o0;){h--;var me=r[h];if(s||me.flags&469499904)for(var Me=me.flags&61603840?e.find(uo(me),function(Ti){return Vl(Jt(Ti))}):void 0,$e=Me&&jc(Jt(Me)),tr=0,dr=r;tr1e6){e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"removeSubtypes_DepthLimit\",{typeIds:r.map(function(Ti){return Ti.id})}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);return}}if(z++,Me&&Dr.flags&61603840){var li=da(Dr,Me.escapedName);if(li&&Vl(li)&&jc(li)!==$e)continue}if(r_(me,Dr,ki)&&(!(e.getObjectFlags(bd(me))&1)||!(e.getObjectFlags(bd(Dr))&1)||xg(me,Dr))){e.orderedRemoveItemAt(r,h);break}}}}return Sr.set(t,r),r}function K3(r,i,t){for(var o=r.length;o>0;){o--;var s=r[o],u=s.flags,h=u&402653312&&i&4||u&256&&i&8||u&2048&&i&64||u&8192&&i&4096||t&&u&32768&&i&16384||Kp(s)&&$f(r,s.regularType);h&&e.orderedRemoveItemAt(r,o)}}function G3(r){var i=e.filter(r,sm);if(i.length)for(var t=r.length,o=function(){t--;var s=r[t];s.flags&128&&e.some(i,function(u){return VE(s,u)})&&e.orderedRemoveItemAt(r,t)};t>0;)o()}function H3(r){return!!(r.flags&1048576&&(r.aliasSymbol||r.origin))}function Bx(r,i){for(var t=0,o=i;t=0&&$f(u,Tr)&&e.orderedRemoveItemAt(u,z)}if((h&402664320||h&16384&&h&32768)&&K3(u,h,!!(i&2)),h&128&&h&134217728&&G3(u),i===2&&(u=V3(u,!!(h&524288)),!u))return Pe;if(u.length===0)return h&65536?h&4194304?Wi:ct:h&32768?h&4194304?Tr:vi:ui}if(!s&&h&1048576){var me=[];Bx(me,r);for(var Me=[],$e=function($i){e.some(me,function(Zi){return $f(Zi.types,$i)})||Me.push($i)},tr=0,dr=u;tr0;){t--;var o=r[t],s=o.flags&4&&i&402653312||o.flags&8&&i&256||o.flags&64&&i&2048||o.flags&4096&&i&8192;s&&e.orderedRemoveItemAt(r,t)}}function Z3(r,i){for(var t=0,o=r;t0;){i--;var o=r[i];if(!!(o.flags&134217728))for(var s=0,u=t;s=1e5?(e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"checkCrossProductUnion_DepthLimit\",{typeIds:r.map(function(t){return t.id}),size:i}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1):!0}function tI(r){for(var i=zx(r),t=[],o=0;o=0;h--)if(r[h].flags&1048576){var z=r[h].types,me=z.length;s[h]=z[u%me],u=Math.floor(u/me)}var Me=Do(s);Me.flags&131072||t.push(Me)}return t}function aI(r){var i=va(r);if(!i.resolvedType){var t=Qd(r);i.resolvedType=Do(e.map(r.types,Va),t,bg(t))}return i.resolvedType}function Wx(r,i){var t=mc(4194304);return t.type=r,t.stringsOnly=i,t}function nI(r){var i=Ip(4194304);return i.type=r,i}function dD(r,i){return i?r.resolvedStringIndexType||(r.resolvedStringIndexType=Wx(r,!0)):r.resolvedIndexType||(r.resolvedIndexType=Wx(r,!1))}function oI(r,i,t){var o=Du(r),s=Mu(r),u=Jl(r.target||r);if(!u&&!t)return s;var h=[];if(mg(r)){if(qp(s))return dD(r,i);var z=$s(Ed(r));Um(z,8576,i,Me)}else Od(Kd(s),Me);qp(s)&&Od(s,Me);var me=t?ec(Pa(h),function($e){return!($e.flags&5)}):Pa(h);if(me.flags&1048576&&s.flags&1048576&&Su(me.types)===Su(s.types))return s;return me;function Me($e){var tr=u?un(u,tv(r.mapper,o,$e)):$e;h.push(tr===Li?ji:tr)}}function sI(r){var i=Du(r);return t(Jl(r)||i);function t(o){return o.flags&68157439?!0:o.flags&16777216?o.root.isDistributive&&o.checkType===i:o.flags&137363456?e.every(o.types,t):o.flags&8388608?t(o.objectType)&&t(o.indexType):o.flags&33554432?t(o.substitute):o.flags&268435456?t(o.type):!1}}function Z_(r){return e.isPrivateIdentifier(r)?ui:e.isIdentifier(r)?Bu(e.unescapeLeadingUnderscores(r.escapedText)):jc(e.isComputedPropertyName(r)?t_(r):yn(r))}function om(r,i,t){if(t||!(e.getDeclarationModifierFlagsFromSymbol(r)&24)){var o=Aa(dg(r)).nameType;if(!o){var s=e.getNameOfDeclaration(r.valueDeclaration);o=r.escapedName===\"default\"?Bu(\"default\"):s&&Z_(s)||(e.isKnownSymbol(r)?void 0:Bu(e.symbolName(r)))}if(o&&o.flags&i)return o}return ui}function qx(r,i){return!!(r.flags&i||r.flags&2097152&&e.some(r.types,function(t){return qx(t,i)}))}function cI(r,i,t){var o=t&&(e.getObjectFlags(r)&7||r.aliasSymbol)?nI(r):void 0,s=e.map(uo(r),function(h){return om(h,i)}),u=e.map(Hn(r),function(h){return h!==Ko&&qx(h.keyType,i)?h.keyType===Li&&i&8?ji:h.keyType:ui});return Pa(e.concatenate(s,u),1,void 0,void 0,o)}function uI(r){return e.some(r.types,function(i){var t=KI(i);return bu(t)!==t})}function ql(r,i,t){return i===void 0&&(i=Ge),r=bu(r),r.flags&1048576?uI(r)?dD(r,i):Do(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&2097152?Pa(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&58982400||lm(r)||Bc(r)&&!sI(r)?dD(r,i):e.getObjectFlags(r)&32?oI(r,i,t):r===Mr?Mr:r.flags&2?ui:r.flags&131073?at:cI(r,(t?128:402653316)|(i?0:12584),i===Ge&&!t)}function Vx(r){if(Ge)return r;var i=M3();return i?am(i,[r,Li]):Li}function lI(r){var i=Vx(ql(r));return i.flags&131072?Li:i}function fI(r){var i=va(r);if(!i.resolvedType)switch(r.operator){case 140:i.resolvedType=ql(Va(r.type));break;case 154:i.resolvedType=r.type.kind===151?CD(e.walkUpParenthesizedTypes(r.parent)):Pe;break;case 145:i.resolvedType=Va(r.type);break;default:throw e.Debug.assertNever(r.operator)}return i.resolvedType}function _I(r){var i=va(r);return i.resolvedType||(i.resolvedType=Dg(Ve([r.head.text],e.map(r.templateSpans,function(t){return t.literal.text}),!0),e.map(r.templateSpans,function(t){return Va(t.type)}))),i.resolvedType}function Dg(r,i){var t=e.findIndex(i,function(Me){return!!(Me.flags&1179648)});if(t>=0)return ny(i)?Ss(i[t],function(Me){return Dg(r,e.replaceElement(i,t,Me))}):Pe;if(e.contains(i,Mr))return Mr;var o=[],s=[],u=r[0];if(!me(r,i))return Li;if(o.length===0)return Bu(u);if(s.push(u),e.every(s,function(Me){return Me===\"\"})&&e.every(o,function(Me){return!!(Me.flags&4)}))return Li;var h=\"\".concat(Su(o),\"|\").concat(e.map(s,function(Me){return Me.length}).join(\",\"),\"|\").concat(s.join(\"\")),z=Jr.get(h);return z||Jr.set(h,z=dI(s,o)),z;function me(Me,$e){for(var tr=e.isArray(Me),dr=0;dr<$e.length;dr++){var Dr=$e[dr],Qr=tr?Me[dr+1]:Me;if(Dr.flags&101248){if(u+=pI(Dr)||\"\",u+=Qr,!tr)return!0}else if(Dr.flags&134217728){if(u+=Dr.texts[0],!me(Dr.texts,Dr.types))return!1;if(u+=Qr,!tr)return!0}else if(qp(Dr)||Gx(Dr))o.push(Dr),s.push(u),u=Qr;else if(Dr.flags&2097152){var li=me(Me[dr+1],Dr.types);if(!li)return!1}else if(tr)return!1}return!0}}function pI(r){return r.flags&128?r.value:r.flags&256?\"\"+r.value:r.flags&2048?e.pseudoBigIntToString(r.value):r.flags&98816?r.intrinsicName:void 0}function dI(r,i){var t=mc(134217728);return t.texts=r,t.types=i,t}function Th(r,i){return i.flags&1179648?Ss(i,function(t){return Th(r,t)}):qp(i)?mI(r,i):i.flags&128?Bu(gI(r,i.value)):i}function gI(r,i){switch(x.get(r.escapedName)){case 0:return i.toUpperCase();case 1:return i.toLowerCase();case 2:return i.charAt(0).toUpperCase()+i.slice(1);case 3:return i.charAt(0).toLowerCase()+i.slice(1)}return i}function mI(r,i){var t=\"\".concat(y(r),\",\").concat(fu(i)),o=ti.get(t);return o||ti.set(t,o=vI(r,i)),o}function vI(r,i){var t=mc(268435456);return t.symbol=r,t.type=i,t}function yI(r,i,t,o,s){var u=mc(8388608);return u.objectType=r,u.indexType=i,u.accessFlags=t,u.aliasSymbol=o,u.aliasTypeArguments=s,u}function ev(r){if(n)return!1;if(e.getObjectFlags(r)&4096)return!0;if(r.flags&1048576)return e.every(r.types,ev);if(r.flags&2097152)return e.some(r.types,ev);if(r.flags&465829888){var i=Hv(r);return i!==r&&ev(i)}return!1}function gD(r,i){return _f(r)?pf(r):i&&e.isPropertyName(i)?e.getPropertyNameForPropertyNameNode(i):void 0}function mD(r,i){if(i.flags&8208){var t=e.findAncestor(r.parent,function(o){return!e.isAccessExpression(o)})||r.parent;return e.isCallLikeExpression(t)?e.isCallOrNewExpression(t)&&e.isIdentifier(r)&&eC(t,r):e.every(i.declarations,function(o){return!e.isFunctionLike(o)||!!(e.getCombinedNodeFlags(o)&268435456)})}return!0}function Kx(r,i,t,o,s,u){var h,z=s&&s.kind===207?s:void 0,me=s&&e.isPrivateIdentifier(s)?void 0:gD(t,s);if(me!==void 0){if(u&256)return Md(i,me)||Oe;var Me=bi(i,me);if(Me){if(u&64&&s&&Me.declarations&&P_(Me)&&mD(s,Me)){var $e=(h=z==null?void 0:z.argumentExpression)!==null&&h!==void 0?h:e.isIndexedAccessTypeNode(s)?s.indexType:s;El($e,Me.declarations,me)}if(z){if(xy(Me,z,rk(z.expression,i.symbol)),jk(z,Me,e.getAssignmentTargetKind(z))){Xr(z.argumentExpression,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(Me));return}if(u&8&&(va(s).resolvedSymbol=Me),HC(z,Me))return nr}var tr=Jt(Me);return z&&e.getAssignmentTargetKind(z)!==1?up(z,tr):tr}if(gf(i,Yn)&&e.isNumericLiteralName(me)&&+me>=0){if(s&&gf(i,function(Nt){return!Nt.target.hasRestElement})&&!(u&16)){var dr=vD(s);Yn(i)?Xr(dr,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,Ot(i),$_(i),e.unescapeLeadingUnderscores(me)):Xr(dr,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i))}return qt(ss(i,nt)),Ss(i,function(Nt){var Ra=sv(Nt)||Tr;return u&1?Pa([Ra,Tr]):Ra})}}if(!(t.flags&98304)&&Ns(t,402665900)){if(i.flags&131073)return i;var Dr=nu(i,t)||ss(i,Li);if(Dr){if(u&2&&Dr.keyType!==nt){z&&Xr(z,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Ot(t),Ot(r));return}if(s&&Dr.keyType===Li&&!Ns(t,12)){var dr=vD(s);return Xr(dr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t)),u&1?Pa([Dr.type,Tr]):Dr.type}return qt(Dr),u&1?Pa([Dr.type,Tr]):Dr.type}if(t.flags&131072)return ui;if(ev(i))return Oe;if(z&&!uS(i)){if(Qp(i)){if(n&&t.flags&384)return rn.add(e.createDiagnosticForNode(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i))),Tr;if(t.flags&12){var Qr=e.map(i.properties,function(Nt){return Jt(Nt)});return Pa(e.append(Qr,Tr))}}if(i.symbol===pe&&me!==void 0&&pe.exports.has(me)&&pe.exports.get(me).flags&418)Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i));else if(n&&!ye.suppressImplicitAnyIndexErrors&&!(u&128))if(me!==void 0&&$C(me,i)){var li=Ot(i);Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,me,li,li+\"[\"+e.getTextOfNode(z.argumentExpression)+\"]\")}else if(cs(i,nt))Xr(z.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var Ti=void 0;if(me!==void 0&&(Ti=Vb(me,i)))Ti!==void 0&&Xr(z.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,me,Ot(i),Ti);else{var Ci=i7(i,z,t);if(Ci!==void 0)Xr(z,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,Ot(i),Ci);else{var $i=void 0;if(t.flags&1024)$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+Ot(t)+\"]\",Ot(i));else if(t.flags&8192){var Zi=cl(t.symbol,z);$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+Zi+\"]\",Ot(i))}else t.flags&128||t.flags&256?$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i)):t.flags&12&&($i=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,Ot(t),Ot(i)));$i=e.chainDiagnosticMessages($i,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,Ot(o),Ot(i)),rn.add(e.createDiagnosticForNodeFromMessageChain(z,$i))}}}return}}if(ev(i))return Oe;if(s){var dr=vD(s);t.flags&384?Xr(dr,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"\"+t.value,Ot(i)):t.flags&12?Xr(dr,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,Ot(i),Ot(t)):Xr(dr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t))}if(ta(t))return t;return;function qt(Nt){Nt&&Nt.isReadonly&&z&&(e.isAssignmentTarget(z)||e.isDeleteTarget(z))&&Xr(z,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Ot(i))}}function vD(r){return r.kind===207?r.argumentExpression:r.kind===194?r.indexType:r.kind===162?r.expression:r}function Gx(r){return!!(r.flags&77)}function sm(r){return!!(r.flags&134217728)&&e.every(r.types,Gx)}function rv(r){return!!iv(r)}function Ad(r){return!!(iv(r)&4194304)}function qp(r){return!!(iv(r)&8388608)}function iv(r){return r.flags&3145728?(r.objectFlags&2097152||(r.objectFlags|=2097152|e.reduceLeft(r.types,function(i,t){return i|iv(t)},0)),r.objectFlags&12582912):r.flags&33554432?(r.objectFlags&2097152||(r.objectFlags|=2097152|iv(r.substitute)|iv(r.baseType)),r.objectFlags&12582912):(r.flags&58982400||Bc(r)||lm(r)?4194304:0)|(r.flags&465829888&&!sm(r)?8388608:0)}function Zf(r,i){return r.flags&8388608?DI(r,i):r.flags&16777216?bI(r,i):r}function Hx(r,i,t){if(r.flags&3145728){var o=e.map(r.types,function(s){return Zf(Jc(s,i),t)});return r.flags&2097152||t?Do(o):Pa(o)}}function hI(r,i,t){if(i.flags&1048576){var o=e.map(i.types,function(s){return Zf(Jc(r,s),t)});return t?Do(o):Pa(o)}}function DI(r,i){var t=i?\"simplifiedForWriting\":\"simplifiedForReading\";if(r[t])return r[t]===Pn?r:r[t];r[t]=Pn;var o=Zf(r.objectType,i),s=Zf(r.indexType,i),u=hI(o,s,i);if(u)return r[t]=u;if(!(s.flags&465829888)){var h=Hx(o,s,i);if(h)return r[t]=h}if(lm(o)&&s.flags&296){var z=jh(o,s.flags&8?0:o.target.fixedLength,0,i);if(z)return r[t]=z}if(Bc(o)){var me=Jl(o);if(!me||ao(me,Du(o)))return r[t]=Ss(xh(o,r.indexType),function(Me){return Zf(Me,i)})}return r[t]=r}function bI(r,i){var t=r.checkType,o=r.extendsType,s=ip(r),u=tp(r);if(u.flags&131072&&rp(s)===rp(t)){if(t.flags&1||ao(Nd(t),Nd(o)))return Zf(s,i);if(Xx(t,o))return ui}else if(s.flags&131072&&rp(u)===rp(t)){if(!(t.flags&1)&&ao(Nd(t),Nd(o)))return ui;if(t.flags&1||Xx(t,o))return Zf(u,i)}return r}function Xx(r,i){return!!(Pa([Zg(r,i),ui]).flags&131072)}function xh(r,i){var t=Uc([Du(r)],[i]),o=np(r.mapper,t);return un(vl(r),o)}function Jc(r,i,t,o,s,u){return t===void 0&&(t=0),ep(r,i,t,o,s,u)||(o?Pe:gr)}function Qx(r,i){return gf(r,function(t){if(t.flags&384){var o=pf(t);if(e.isNumericLiteralName(o)){var s=+o;return s>=0&&s=i?gr:t})}function np(r,i){return r?Nh(3,r,i):i}function LI(r,i){return r?Nh(4,r,i):i}function $d(r,i,t){return t?Nh(4,Yd(r,i),t):Yd(r,i)}function tv(r,i,t){return r?Nh(4,r,Yd(i,t)):Yd(i,t)}function RI(r){return r.constraint===gr?r:r.restrictiveInstantiation||(r.restrictiveInstantiation=Hc(r.symbol),r.restrictiveInstantiation.constraint=gr,r.restrictiveInstantiation)}function kD(r){var i=Hc(r.symbol);return i.target=r,i}function BI(r,i){return vg(r.kind,r.parameterName,r.parameterIndex,un(r.type,i))}function Tg(r,i,t){var o;if(r.typeParameters&&!t){o=e.map(r.typeParameters,kD),i=np(Uc(r.typeParameters,o),i);for(var s=0,u=o;s=5e6)return e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"instantiateType_DepthLimit\",{typeId:r.id,instantiationDepth:He,instantiationCount:Ee}),Xr(Ie,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),Pe;ze++,Ee++,He++;var s=qI(r,i,t,o);return He--,s}function qI(r,i,t,o){var s=r.flags;if(s&262144)return ap(r,i);if(s&524288){var u=r.objectFlags;if(u&52){if(u&4&&!r.node){var h=r.resolvedTypeArguments,z=e_(h,i);return z!==h?uD(r.target,z):r}return u&1024?VI(r,i):JI(r,i,t,o)}return r}if(s&3145728){var me=r.flags&1048576?r.origin:void 0,Me=me&&me.flags&3145728?me.types:r.types,$e=e_(Me,i);if($e===Me&&t===r.aliasSymbol)return r;var tr=t||r.aliasSymbol,dr=t?o:e_(r.aliasTypeArguments,i);return s&2097152||me&&me.flags&2097152?Do($e,tr,dr):Pa($e,1,tr,dr)}if(s&4194304)return ql(un(r.type,i));if(s&134217728)return Dg(r.texts,e_(r.types,i));if(s&268435456)return Th(r.symbol,un(r.type,i));if(s&8388608){var tr=t||r.aliasSymbol,dr=t?o:e_(r.aliasTypeArguments,i);return Jc(un(r.objectType,i),un(r.indexType,i),r.accessFlags,void 0,tr,dr)}if(s&16777216)return ID(r,np(r.mapper,i),t,o);if(s&33554432){var Dr=un(r.baseType,i);if(Dr.flags&8650752)return px(Dr,un(r.substitute,i));var Qr=un(r.substitute,i);return Qr.flags&3||ao(Nd(Dr),Nd(Qr))?Dr:Qr}return r}function VI(r,i){var t=un(r.mappedType,i);if(!(e.getObjectFlags(t)&32))return r;var o=un(r.constraintType,i);if(!(o.flags&4194304))return r;var s=UE(un(r.source,i),t,o);return s||r}function KI(r){return r.flags&262143?r:r.uniqueLiteralFilledInstantiation||(r.uniqueLiteralFilledInstantiation=un(r,ka))}function wh(r){return r.flags&262143?r:r.permissiveInstantiation||(r.permissiveInstantiation=un(r,ai))}function Nd(r){return r.flags&262143?r:(r.restrictiveInstantiation||(r.restrictiveInstantiation=un(r,Qa),r.restrictiveInstantiation.restrictiveInstantiation=r.restrictiveInstantiation),r.restrictiveInstantiation)}function GI(r,i){return zl(r.keyType,un(r.type,i),r.isReadonly,r.declaration)}function Ju(r){switch(e.Debug.assert(r.kind!==169||e.isObjectLiteralMethod(r)),r.kind){case 213:case 214:case 169:case 256:return fE(r);case 205:return e.some(r.properties,Ju);case 204:return e.some(r.elements,Ju);case 222:return Ju(r.whenTrue)||Ju(r.whenFalse);case 221:return(r.operatorToken.kind===56||r.operatorToken.kind===60)&&(Ju(r.left)||Ju(r.right));case 296:return Ju(r.initializer);case 212:return Ju(r.expression);case 286:return e.some(r.properties,Ju)||e.isJsxOpeningElement(r.parent)&&e.some(r.parent.parent.children,Ju);case 285:{var i=r.initializer;return!!i&&Ju(i)}case 288:{var t=r.expression;return!!t&&Ju(t)}}return!1}function fE(r){return(!e.isFunctionDeclaration(r)||e.isInJSFile(r)&&!!K_(r))&&(e.hasContextSensitiveParameters(r)||HI(r))}function HI(r){return!r.typeParameters&&!e.getEffectiveReturnTypeNode(r)&&!!r.body&&r.body.kind!==235&&Ju(r.body)}function wD(r){return(e.isInJSFile(r)&&e.isFunctionDeclaration(r)||e.isFunctionExpressionOrArrowFunction(r)||e.isObjectLiteralMethod(r))&&fE(r)}function _E(r){if(r.flags&524288){var i=Ru(r);if(i.constructSignatures.length||i.callSignatures.length){var t=tu(16,r.symbol);return t.members=i.members,t.properties=i.properties,t.callSignatures=e.emptyArray,t.constructSignatures=e.emptyArray,t.indexInfos=e.emptyArray,t}}else if(r.flags&2097152)return Do(e.map(r.types,_E));return r}function wf(r,i){return r_(r,i,wa)}function av(r,i){return r_(r,i,wa)?-1:0}function OD(r,i){return r_(r,i,dt)?-1:0}function XI(r,i){return r_(r,i,Or)?-1:0}function E_(r,i){return r_(r,i,Or)}function ao(r,i){return r_(r,i,dt)}function xg(r,i){return r.flags&1048576?e.every(r.types,function(t){return xg(t,i)}):i.flags&1048576?e.some(i.types,function(t){return xg(r,t)}):r.flags&58982400?xg(uc(r)||gr,i):i===qe?!!(r.flags&67633152):i===br?!!(r.flags&524288)&&db(r):lf(r,bd(i))||Tu(i)&&!um(i)&&xg(r,Qi)}function cm(r,i){return r_(r,i,la)}function Oh(r,i){return cm(r,i)||cm(i,r)}function zc(r,i,t,o,s,u){return hl(r,i,dt,t,o,s,u)}function op(r,i,t,o,s,u){return FD(r,i,dt,t,o,s,u,void 0)}function FD(r,i,t,o,s,u,h,z){return r_(r,i,t)?!0:!o||!cy(s,r,i,t,u,h,z)?hl(r,i,t,o,u,h,z):!1}function pE(r){return!!(r.flags&16777216||r.flags&2097152&&e.some(r.types,pE))}function cy(r,i,t,o,s,u,h){if(!r||pE(t))return!1;if(!hl(i,t,o,void 0)&&QI(r,i,t,o,s,u,h))return!0;switch(r.kind){case 288:case 212:return cy(r.expression,i,t,o,s,u,h);case 221:switch(r.operatorToken.kind){case 63:case 27:return cy(r.right,i,t,o,s,u,h)}break;case 205:return nw(r,i,t,o,u,h);case 204:return tw(r,i,t,o,u,h);case 286:return iw(r,i,t,o,u,h);case 214:return YI(r,i,t,o,u,h)}return!1}function QI(r,i,t,o,s,u,h){for(var z=ot(i,0),me=ot(i,1),Me=0,$e=[me,z];Me<$e.length;Me++){var tr=$e[Me];if(e.some(tr,function(Qr){var li=yo(Qr);return!(li.flags&131073)&&hl(li,t,o,void 0)})){var dr=h||{};zc(i,t,r,s,u,dr);var Dr=dr.errors[dr.errors.length-1];return e.addRelatedInfo(Dr,e.createDiagnosticForNode(r,tr===me?e.Diagnostics.Did_you_mean_to_use_new_with_this_expression:e.Diagnostics.Did_you_mean_to_call_this_expression)),!0}}return!1}function YI(r,i,t,o,s,u){if(e.isBlock(r.body)||e.some(r.parameters,e.hasType))return!1;var h=ig(i);if(!h)return!1;var z=ot(t,0);if(!e.length(z))return!1;var me=r.body,Me=yo(h),$e=Pa(e.map(z,yo));if(!hl(Me,$e,o,void 0)){var tr=me&&cy(me,Me,$e,o,void 0,s,u);if(tr)return tr;var dr=u||{};if(hl(Me,$e,o,me,void 0,s,dr),dr.errors)return t.symbol&&e.length(t.symbol.declarations)&&e.addRelatedInfo(dr.errors[dr.errors.length-1],e.createDiagnosticForNode(t.symbol.declarations[0],e.Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature)),(e.getFunctionFlags(r)&2)===0&&!da(Me,\"then\")&&hl(Ny(Me),$e,o,void 0)&&e.addRelatedInfo(dr.errors[dr.errors.length-1],e.createDiagnosticForNode(r,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async)),!0}return!1}function $I(r,i,t){var o=ep(i,t);if(o)return o;if(i.flags&1048576){var s=bE(r,i);if(s)return ep(s,t)}}function ZI(r,i){r.contextualType=i;try{return Dm(r,1,i)}finally{r.contextualType=void 0}}function nv(r,i,t,o,s,u){for(var h=!1,z=r.next();!z.done;z=r.next()){var me=z.value,Me=me.errorNode,$e=me.innerExpression,tr=me.nameType,dr=me.errorMessage,Dr=$I(i,t,tr);if(!(!Dr||Dr.flags&8388608)){var Qr=ep(i,tr);if(!!Qr){var li=gD(tr,void 0);if(!hl(Qr,Dr,o,void 0)){var Ti=$e&&cy($e,Qr,Dr,o,void 0,s,u);if(h=!0,!Ti){var Ci=u||{},$i=$e?ZI($e,Qr):Qr;if(yr&&jD($i,Dr)){var Zi=e.createDiagnosticForNode(Me,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target,Ot($i),Ot(Dr));rn.add(Zi),Ci.errors=[Zi]}else{var qt=!!(li&&(bi(t,li)||xe).flags&16777216),Nt=!!(li&&(bi(i,li)||xe).flags&16777216);Dr=kg(Dr,qt),Qr=kg(Qr,qt&&Nt);var Ra=hl($i,Dr,o,Me,dr,s,Ci);Ra&&$i!==Qr&&hl(Qr,Dr,o,Me,dr,s,Ci)}if(Ci.errors){var ca=Ci.errors[Ci.errors.length-1],Sn=_f(tr)?pf(tr):void 0,ja=Sn!==void 0?bi(t,Sn):void 0,Fn=!1;if(!ja){var wn=nu(t,tr);wn&&wn.declaration&&!e.getSourceFileOfNode(wn.declaration).hasNoDefaultLib&&(Fn=!0,e.addRelatedInfo(ca,e.createDiagnosticForNode(wn.declaration,e.Diagnostics.The_expected_type_comes_from_this_index_signature)))}if(!Fn&&(ja&&e.length(ja.declarations)||t.symbol&&e.length(t.symbol.declarations))){var Tn=ja&&e.length(ja.declarations)?ja.declarations[0]:t.symbol.declarations[0];e.getSourceFileOfNode(Tn).hasNoDefaultLib||e.addRelatedInfo(ca,e.createDiagnosticForNode(Tn,e.Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,Sn&&!(tr.flags&8192)?e.unescapeLeadingUnderscores(Sn):Ot(tr),Ot(t)))}}}}}}}return h}function ew(r){var i,t,o;return kr(this,function(s){switch(s.label){case 0:if(!e.length(r.properties))return[2];i=0,t=r.properties,s.label=1;case 1:return i1,li=ec(dr,AE),Ti=ec(dr,function(ca){return!AE(ca)});if(Qr){if(li!==ui){var Ci=Wl(f0(me,0)),$i=rw(me,Ra);h=nv($i,Ci,li,o,s,u)||h}else if(!r_(Jc(i,tr),dr,o)){h=!0;var Zi=Xr(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,$e,Ot(dr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}else if(Ti!==ui){var qt=Dr[0],Nt=dE(qt,tr,Ra);Nt&&(h=nv(function(){return kr(this,function(ca){switch(ca.label){case 0:return[4,Nt];case 1:return ca.sent(),[2]}})}(),i,t,o,s,u)||h)}else if(!r_(Jc(i,tr),dr,o)){h=!0;var Zi=Xr(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,$e,Ot(dr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}return h;function Ra(){if(!z){var ca=e.getTextOfNode(r.parent.tagName),Sn=_0(Og(r)),ja=Sn===void 0?\"children\":e.unescapeLeadingUnderscores(Sn),Fn=Jc(t,Bu(ja)),wn=e.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;z=Ke(Ke({},wn),{key:\"!!ALREADY FORMATTED!!\",message:e.formatMessage(void 0,wn,ca,ja,Ot(Fn))})}return z}}function gE(r,i){var t,o,s,u;return kr(this,function(h){switch(h.label){case 0:if(t=e.length(r.elements),!t)return[2];o=0,h.label=1;case 1:return ome:Hl(r)>me);if(Me)return 0;r.typeParameters&&r.typeParameters!==i.typeParameters&&(i=g3(i),r=sk(r,i,void 0,h));var $e=Wc(r),tr=yv(r),dr=yv(i);(tr||dr)&&un(tr||dr,z);var Dr=i.declaration?i.declaration.kind:0,Qr=!(t&3)&&Br&&Dr!==169&&Dr!==168&&Dr!==171,li=-1,Ti=T_(r);if(Ti&&Ti!==Fi){var Ci=T_(i);if(Ci){var $i=!Qr&&h(Ti,Ci,!1)||h(Ci,Ti,o);if(!$i)return o&&s(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;li&=$i}}for(var Zi=tr||dr?Math.min($e,me):Math.max($e,me),qt=tr||dr?Zi-1:-1,Nt=0;Nt=Hl(r)&&Nt0||RS(vt)),Vn=!!(e.getObjectFlags(vt)&2048);if(gn&&!fw(vt,ht,Vn)){if(mt){var zo=Ot($r.aliasSymbol?$r:vt),us=Ot(hi.aliasSymbol?hi:ht),Bo=ot(vt,0),Io=ot(vt,1);Bo.length>0&&oa(yo(Bo[0]),ht,1,!1)||Io.length>0&&oa(yo(Io[0]),ht,1,!1)?Yt(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,zo,us):Yt(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,zo,us)}return 0}Ln(vt,ht);var Qo=vt.flags&1048576&&vt.types.length<4&&!(ht.flags&1048576)||ht.flags&1048576&&ht.types.length<4&&!(vt.flags&469499904),ls=Qo?Lt(vt,ht,mt,Ht):_t(vt,ht,mt,Ht,Ri);if(ls&&!qt&&(ht.flags&2097152&&(An||gn)||bD(ht)&&!Pd(ht)&&vt.flags&2097152&&$s(vt).flags&3670016&&!e.some(vt.types,function(gi){return!!(e.getObjectFlags(gi)&262144)}))&&(qt=!0,ls&=_t(vt,ht,mt,4,Ri),qt=!1),ls)return ls}return mt&&Mn($r,hi,vt,ht,ft),0}function Mn($r,hi,Ri,mt,ft){var Ht=!!GD($r),vt=!!GD(hi);Ri=$r.aliasSymbol||Ht?$r:Ri,mt=hi.aliasSymbol||vt?hi:mt;var ht=Ci>0;if(ht&&Ci--,Ri.flags&524288&&mt.flags&524288){var ma=z;cn(Ri,mt,!0),z!==ma&&(ht=!!z)}if(Ri.flags&524288&&mt.flags&131068)Ka(Ri,mt);else if(Ri.symbol&&Ri.flags&524288&&qe===Ri)Yt(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(e.getObjectFlags(Ri)&2048&&mt.flags&2097152){var Ca=mt.types,An=Zp(U.IntrinsicAttributes,o),gn=Zp(U.IntrinsicClassAttributes,o);if(!nn(An)&&!nn(gn)&&(e.contains(Ca,An)||e.contains(Ca,gn)))return}else z=ei(z,hi);if(!ft&&ht){$i=[Ri,mt];return}Qt(ft,Ri,mt)}function Ln($r,hi){if(!!e.tracing&&$r.flags&3145728&&hi.flags&3145728){var Ri=$r,mt=hi;if(Ri.objectFlags&mt.objectFlags&32768)return;var ft=Ri.types.length,Ht=mt.types.length;ft*Ht>1e6&&e.tracing.instant(\"checkTypes\",\"traceUnionsOrIntersectionsTooLarge_DepthLimit\",{sourceId:$r.id,sourceSize:ft,targetId:hi.id,targetSize:Ht,pos:o==null?void 0:o.pos,end:o==null?void 0:o.end})}}function ci($r,hi){var Ri=function(mt,ft){var Ht;ft=$s(ft);var vt=ft.flags&3145728?Zv(ft,hi):h_(ft,hi),ht=vt&&Jt(vt)||((Ht=Xo(ft,hi))===null||Ht===void 0?void 0:Ht.type)||Tr;return e.append(mt,ht)};return Pa(e.reduceLeft($r,Ri,void 0)||e.emptyArray)}function Fr($r,hi,Ri){var mt;if(!Sy(hi)||!n&&e.getObjectFlags(hi)&4096)return!1;var ft=!!(e.getObjectFlags($r)&2048);if((t===dt||t===la)&&(dy(qe,hi)||!ft&&Of(hi)))return!1;var Ht=hi,vt;hi.flags&1048576&&(Ht=bA($r,hi,oa)||IL(hi),vt=Ht.flags&1048576?Ht.types:[Ht]);for(var ht=function(Vn){if(jt(Vn,$r.symbol)&&!hE($r,Vn)){if(!Rb(Ht,Vn.escapedName,ft)){if(Ri){var zo=ec(Ht,Sy);if(!o)return{value:e.Debug.fail()};if(e.isJsxAttributes(o)||e.isJsxOpeningLikeElement(o)||e.isJsxOpeningLikeElement(o.parent)){Vn.valueDeclaration&&e.isJsxAttribute(Vn.valueDeclaration)&&e.getSourceFileOfNode(o)===e.getSourceFileOfNode(Vn.valueDeclaration.name)&&(o=Vn.valueDeclaration.name);var us=tn(Vn),Bo=ek(us,zo),Io=Bo?tn(Bo):void 0;Io?Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,us,Ot(zo),Io):Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1,us,Ot(zo))}else{var Qo=((mt=$r.symbol)===null||mt===void 0?void 0:mt.declarations)&&e.firstOrUndefined($r.symbol.declarations),Io=void 0;if(Vn.valueDeclaration&&e.findAncestor(Vn.valueDeclaration,function(La){return La===Qo})&&e.getSourceFileOfNode(Qo)===e.getSourceFileOfNode(o)){var ls=Vn.valueDeclaration;e.Debug.assertNode(ls,e.isObjectLiteralElementLike),o=ls;var gi=ls.name;e.isIdentifier(gi)&&(Io=Vb(gi,zo))}Io!==void 0?Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,tn(Vn),Ot(zo),Io):Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,tn(Vn),Ot(zo))}}return{value:!0}}if(vt&&!oa(Jt(Vn),ci(vt,Vn.escapedName),3,Ri))return Ri&<(e.Diagnostics.Types_of_property_0_are_incompatible,tn(Vn)),{value:!0}}},ma=0,Ca=uo($r);ma=vt.types.length&&Ht.length%vt.types.length===0){var Ca=oa(ma,vt.types[ht%vt.types.length],3,!1,void 0,mt);if(Ca){ft&=Ca;continue}}var An=oa(ma,hi,1,Ri,void 0,mt);if(!An)return 0;ft&=An}return ft}function Hi($r,hi,Ri,mt,ft){if($r===void 0&&($r=e.emptyArray),hi===void 0&&(hi=e.emptyArray),Ri===void 0&&(Ri=e.emptyArray),$r.length!==hi.length&&t===wa)return 0;for(var Ht=$r.length<=hi.length?$r.length:hi.length,vt=-1,ht=0;ht25)return e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"typeRelatedToDiscriminatedType_DepthLimit\",{sourceId:$r.id,targetId:hi.id,numCombinations:ft}),0}for(var ma=new Array(mt.length),Ca=new e.Set,An=0;An5?Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,Ot($r),Ot(hi),e.map(Ca.slice(0,4),function(gn){return tn(gn)}).join(\", \"),Ca.length-4):Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,Ot($r),Ot(hi),e.map(Ca,function(gn){return tn(gn)}).join(\", \")),ft&&z&&Ci++)}function Uo($r,hi,Ri,mt,ft){if(t===wa)return Rs($r,hi,mt);var Ht=-1;if(Yn(hi)){if(Pd($r)){if(!hi.target.readonly&&(um($r)||Yn($r)&&$r.target.readonly))return 0;var vt=$_($r),ht=$_(hi),ma=Yn($r)?$r.target.combinedFlags&4:4,Ca=hi.target.combinedFlags&4,An=Yn($r)?$r.target.minLength:0,gn=hi.target.minLength;if(!ma&&vt=ht-Bo)?$r.target.elementFlags[ls]:4,zt=hi.target.elementFlags[Qo];if(zt&8&&!(gi&8))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target,Qo),0;if(gi&8&&!(zt&12))return Ri&&Yt(e.Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target,ls,Qo),0;if(zt&1&&!(gi&1))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target,Qo),0;if(!(Io&&((gi&12||zt&12)&&(Io=!1),Io&&(mt==null?void 0:mt.has(\"\"+Qo))))){var La=Yn($r)?Qo=ht-Bo?kg(Vn[ls],!!(gi&zt&2)):jh($r,us,Bo)||ui:Vn[0],fa=zo[Qo],ya=gi&8&&zt&4?Zs(fa):kg(fa,!!(zt&2)),Nn=oa(La,ya,3,Ri,void 0,ft);if(!Nn)return Ri&&(ht>1||vt>1)&&(Qo=ht-Bo||vt-us-Bo===1?lt(e.Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,ls,Qo):lt(e.Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,us,vt-Bo-1,Qo)),0;Ht&=Nn}}return Ht}if(hi.target.combinedFlags&12)return 0}var fn=(t===Or||t===ki)&&!Qp($r)&&!Jh($r)&&!Yn($r),hn=cb($r,hi,fn,!1);if(hn)return Ri&&rc($r,hi)&&Po($r,hi,hn,fn),0;if(Qp(hi))for(var sn=0,ln=Ga(uo($r),mt);sn0&&e.every(i.properties,function(t){return!!(t.flags&16777216)})}return r.flags&2097152?e.every(r.types,SE):!1}function fw(r,i,t){for(var o=0,s=uo(r);o\";continue}tr+=\"-\"+Qr.id}return tr}}function qD(r,i,t,o,s){if(o===wa&&r.id>i.id){var u=r;r=i,i=u}var h=t?\":\"+t:\"\";return Mh(r)&&Mh(i)?gw(r,i,h,s):\"\".concat(r.id,\",\").concat(i.id).concat(h)}function fy(r,i){if(e.getCheckFlags(r)&6){for(var t=0,o=r.containingType.types;t=o)for(var s=ov(r),u=0,h=0,z=0;z=h&&(u++,u>=o))return!0;h=me.id}}return!1}function ov(r){if(r.flags&524288&&!lb(r)){if(e.getObjectFlags(r)&&4&&r.node)return r.node;if(r.symbol&&!(e.getObjectFlags(r)&16&&r.symbol.flags&32))return r.symbol;if(Yn(r))return r.target}if(r.flags&262144)return r.symbol;if(r.flags&8388608){do r=r.objectType;while(r.flags&8388608);return r}return r.flags&16777216?r.root:r}function yw(r,i){return VD(r,i,av)!==0}function VD(r,i,t){if(r===i)return-1;var o=e.getDeclarationModifierFlagsFromSymbol(r)&24,s=e.getDeclarationModifierFlagsFromSymbol(i)&24;if(o!==s)return 0;if(o){if(jg(r)!==jg(i))return 0}else if((r.flags&16777216)!==(i.flags&16777216))return 0;return Zu(r)!==Zu(i)?0:t(Jt(r),Jt(i))}function hw(r,i,t){var o=Wc(r),s=Wc(i),u=Hl(r),h=Hl(i),z=Xl(r),me=Xl(i);return!!(o===s&&u===h&&z===me||t&&u<=h)}function _y(r,i,t,o,s,u){if(r===i)return-1;if(!hw(r,i,t)||e.length(r.typeParameters)!==e.length(i.typeParameters))return 0;if(i.typeParameters){for(var h=Uc(r.typeParameters,i.typeParameters),z=0;ze.length(i.typeParameters)&&(s=Rc(s,e.last(xo(r)))),r.objectFlags|=67108864,r.cachedEquivalentBaseType=s}}}function kE(r){return Ye?r===na:r===vi}function Jh(r){var i=KD(r);return!!i&&kE(i)}function Eg(r){return Yn(r)||!!bi(r,\"0\")}function AE(r){return sp(r)||Eg(r)}function xw(r,i){var t=da(r,\"\"+i);if(t)return t;if(gf(r,Yn))return Ss(r,function(o){return sv(o)||Tr})}function Ew(r){return!(r.flags&240512)}function Vl(r){return!!(r.flags&109440)}function NE(r){return r.flags&2097152?e.some(r.types,Vl):!!(r.flags&109440)}function Cw(r){return r.flags&2097152&&e.find(r.types,Vl)||r}function Cg(r){return r.flags&16?!0:r.flags&1048576?r.flags&1024?!0:e.every(r.types,Vl):Vl(r)}function Kl(r){return r.flags&1024?cc(r):r.flags&402653312?Li:r.flags&256?nt:r.flags&2048?Mt:r.flags&512?Ii:r.flags&1048576?Ss(r,Kl):r}function Hp(r){return r.flags&1024&&Kp(r)?cc(r):r.flags&128&&Kp(r)?Li:r.flags&256&&Kp(r)?nt:r.flags&2048&&Kp(r)?Mt:r.flags&512&&Kp(r)?Ii:r.flags&1048576?Ss(r,Hp):r}function PE(r){return r.flags&8192?Ki:r.flags&1048576?Ss(r,PE):r}function HD(r,i){return N0(r,i)||(r=PE(Hp(r))),r}function kw(r,i,t){if(r&&Vl(r)){var o=i?t?Tv(i):i:void 0;r=HD(r,o)}return r}function XD(r,i,t,o){if(r&&Vl(r)){var s=i?Jg(t,i,o):void 0;r=HD(r,s)}return r}function Yn(r){return!!(e.getObjectFlags(r)&4&&r.target.objectFlags&8)}function lm(r){return Yn(r)&&!!(r.target.combinedFlags&8)}function IE(r){return lm(r)&&r.target.elementFlags.length===1}function sv(r){return jh(r,r.target.fixedLength)}function Aw(r){var i=sv(r);return i&&Zs(i)}function jh(r,i,t,o){t===void 0&&(t=0),o===void 0&&(o=!1);var s=$_(r)-t;if(i-1&&(es(u,u.name.escapedText,788968,void 0,u.name.escapedText,!0)||u.name.originalKeywordKind&&e.isTypeNodeKind(u.name.originalKeywordKind))){var h=\"arg\"+u.parent.parameters.indexOf(u),z=e.declarationNameToString(u.name)+(u.dotDotDotToken?\"[]\":\"\");Ic(n,r,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,h,z);return}s=r.dotDotDotToken?n?e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type:e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:n?e.Diagnostics.Parameter_0_implicitly_has_an_1_type:e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 203:if(s=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!n)return;break;case 317:Xr(r,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return;case 256:case 169:case 168:case 172:case 173:case 213:case 214:if(n&&!r.name){t===3?Xr(r,e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation,o):Xr(r,e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return}s=n?t===3?e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;break;case 195:n&&Xr(r,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type);return;default:s=n?e.Diagnostics.Variable_0_implicitly_has_an_1_type:e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage}Ic(n,r,s,e.declarationNameToString(e.getNameOfDeclaration(r)),o)}}function Kh(r,i,t){fe(function(){n&&e.getObjectFlags(i)&65536&&(!t||!Pb(r))&&(Vh(i)||Xp(r,i,t))})}function eb(r,i,t){var o=Wc(r),s=Wc(i),u=vv(r),h=vv(i),z=h?s-1:s,me=u?z:Math.min(o,z),Me=T_(r);if(Me){var $e=T_(i);$e&&t(Me,$e)}for(var tr=0;trr.target.minLength||!i.target.hasRestElement&&(r.target.hasRestElement||i.target.fixedLength0){for(var Ti=dr,Ci=Dr;Ci=$i(Ti).indexOf(li,Ci),!(Ci>=0);){if(Ti++,Ti===r.length)return;Ci=0}Zi(Ti,Ci),Dr+=li.length}else if(Dr<$i(dr).length)Zi(dr,Dr+1);else if(dr0)for(var $t=0,Ua=it;$t1){var i=e.filter(r,lb);if(i.length){var t=Pa(i,2);return e.concatenate(e.filter(r,function(o){return!lb(o)}),[t])}}return r}function r8(r){return r.priority&416?Do(r.contraCandidates):Tw(r.contraCandidates)}function i8(r,i){var t=e8(r.candidates),o=Zw(r.typeParameter),s=!o&&r.topLevel&&(r.isFixed||!nb(yo(i),r.typeParameter)),u=o?e.sameMap(t,jc):s?e.sameMap(t,Hp):t,h=r.priority&416?Pa(u,2):Sw(u);return $c(h)}function GE(r,i){var t=r.inferences[i];if(!t.inferredType){var o=void 0,s=r.signature;if(s){var u=t.candidates?i8(t,s):void 0;if(t.contraCandidates)o=u&&!(u.flags&131072)&&e.some(t.contraCandidates,function(Me){return E_(u,Me)})?u:r8(t);else if(u)o=u;else if(r.flags&1)o=Bt;else{var h=D_(t.typeParameter);h&&(o=un(h,LI(MI(r,i),r.nonFixingMapper)))}}else o=zE(t);t.inferredType=o||fb(!!(r.flags&2));var z=Tc(t.typeParameter);if(z){var me=un(z,r.nonFixingMapper);(!o||!r.compareTypes(o,Rc(me,o)))&&(t.inferredType=o=me)}}return t.inferredType}function fb(r){return r?Oe:gr}function _b(r){for(var i=[],t=0;t=10&&o*2>=r.length?t:void 0}function Qh(r){var i=r.types;if(!(i.length<10||e.getObjectFlags(r)&32768||e.countWhere(i,function(s){return!!(s.flags&59506688)})<10)){if(r.keyPropertyName===void 0){var t=e.forEach(i,function(s){return s.flags&59506688?e.forEach(uo(s),function(u){return Vl(Jt(u))?u.escapedName:void 0}):void 0}),o=t&&a8(i,t);r.keyPropertyName=o?t:\"\",r.constituentMap=o}return r.keyPropertyName.length?r.keyPropertyName:void 0}}function Yh(r,i){var t,o=(t=r.constituentMap)===null||t===void 0?void 0:t.get(fu(jc(i)));return o!==gr?o:void 0}function $E(r,i){var t=Qh(r),o=t&&da(i,t);return o&&Yh(r,o)}function n8(r,i){var t=Qh(r),o=t&&e.find(i.properties,function(u){return u.symbol&&u.kind===296&&u.symbol.escapedName===t&&hy(u.initializer)}),s=o&&Oy(o.initializer);return s&&Yh(r,s)}function ZE(r,i){return zs(r,i)||QE(r,i)}function eC(r,i){if(r.arguments)for(var t=0,o=r.arguments;t=0&&Hi.parameterIndex=Hi&&Vt<_t,on,zn;if(Vt>-1){var Ga=gt.filter(function(Uo){return Uo!==void 0}),Qn=Vt=2){var o=t.parent.parent;if(o.kind===254&&e.getCombinedNodeFlags(t)&2||o.kind===164){var s=va(o);if(!(s.flags&268435456)){s.flags|=268435456;var u=Wo(o,0);if(s.flags&=-268435457,u&&u.flags&1048576&&!(o.kind===164&&n0(r))){var h=t.parent,z=up(h,u,u,void 0,i.flowNode);return z.flags&131072?ui:uf(t,z)}}}}if(e.isParameter(t)&&!t.type&&!t.initializer&&!t.dotDotDotToken){var me=t.parent;if(me.parameters.length>=2&&wD(me)){var Me=dv(me);if(Me&&Me.parameters.length===1&&H(Me)){var $e=Xd(Jt(Me.parameters[0]));if($e.flags&1048576&&gf($e,Yn)&&!n0(r)){var z=up(me,$e,$e,void 0,i.flowNode),tr=me.parameters.indexOf(t)-(e.getThisParameter(me)?1:0);return Jc(z,If(tr))}}}}}return Jt(r)}function R8(r,i){if(e.isThisInTypeQuery(r))return yy(r);var t=Dl(r);if(t===xe)return Pe;if(t===or){if(QC(r))return Xr(r,e.Diagnostics.arguments_cannot_be_referenced_in_property_initializers),Pe;var o=e.getContainingFunction(r);return Ae<2&&(o.kind===214?Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression):e.hasSyntacticModifier(o,256)&&Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)),va(o).flags|=8192,Jt(t)}r.parent&&e.isPropertyAccessExpression(r.parent)&&r.parent.expression===r||o0(t,r);var s=cu(t),u=W6(s,r);P_(u)&&mD(r,u)&&u.declarations&&El(r,u.declarations,r.escapedText);var h=s.valueDeclaration;if(h&&s.flags&32){if(h.kind===257&&e.nodeIsDecorated(h))for(var o=e.getContainingClass(r);o!==void 0;){if(o===h&&o.name!==r){va(h).flags|=16777216,va(r).flags|=33554432;break}o=e.getContainingClass(o)}else if(h.kind===226)for(var o=e.getThisContainer(r,!1);o.kind!==305;){if(o.parent===h){(e.isPropertyDeclaration(o)&&e.isStatic(o)||e.isClassStaticBlockDeclaration(o))&&(va(h).flags|=16777216,va(r).flags|=33554432);break}o=e.getThisContainer(o,!1)}}j8(r,t);var z=L8(s,r),me=e.getAssignmentTargetKind(r);if(me){if(!(s.flags&3)&&!(e.isInJSFile(r)&&s.flags&512)){var Me=s.flags&384?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_enum:s.flags&32?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_class:s.flags&1536?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace:s.flags&16?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_function:s.flags&2097152?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_import:e.Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable;return Xr(r,Me,tn(t)),Pe}if(Zu(s))return s.flags&3?Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant,tn(t)):Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(t)),Pe}var $e=s.flags&2097152;if(s.flags&3){if(me===1)return z}else if($e)h=ru(t);else return z;if(!h)return z;z=yb(z,r,i);for(var tr=e.getRootDeclaration(h).kind===164,dr=_v(h),Dr=_v(r),Qr=Dr!==dr,li=r.parent&&r.parent.parent&&e.isSpreadAssignment(r.parent)&&mb(r.parent.parent),Ti=t.flags&134217728;Dr!==dr&&(Dr.kind===213||Dr.kind===214||e.isObjectLiteralOrClassExpressionMethodOrAccessor(Dr))&&(pv(s)&&z!==So||tr&&!n0(s));)Dr=_v(Dr);var Ci=tr||$e||Qr||li||Ti||e.isBindingElement(h)||z!==nr&&z!==So&&(!Ye||(z.flags&16387)!==0||_m(r)||r.parent.kind===275)||r.parent.kind===230||h.kind===254&&h.exclamationToken||h.flags&16777216,$i=Ci?tr?I8(z,h):z:z===nr||z===So?Tr:i_(z),Zi=up(r,z,$i,Dr);if(!_C(r)&&(z===nr||z===So)){if(Zi===nr||Zi===So)return n&&(Xr(e.getNameOfDeclaration(h),e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,tn(t),Ot(Zi)),Xr(r,e.Diagnostics.Variable_0_implicitly_has_an_1_type,tn(t),Ot(Zi))),kv(Zi)}else if(!Ci&&!(ju(z)&32768)&&ju(Zi)&32768)return Xr(r,e.Diagnostics.Variable_0_is_used_before_being_assigned,tn(t)),z;return me?Kl(Zi):Zi}function B8(r,i){return!!e.findAncestor(r,function(t){return t===i?\"quit\":e.isFunctionLike(t)||t.parent&&e.isPropertyDeclaration(t.parent)&&!e.hasStaticModifier(t.parent)&&t.parent.initializer===t})}function J8(r,i){return e.findAncestor(r,function(t){return t===i?\"quit\":t===i.initializer||t===i.condition||t===i.incrementor||t===i.statement})}function hb(r){return e.findAncestor(r,function(i){return!i||e.nodeStartsNewLexicalEnvironment(i)?\"quit\":e.isIterationStatement(i,!1)})}function j8(r,i){if(!(Ae>=2||(i.flags&34)===0||!i.valueDeclaration||e.isSourceFile(i.valueDeclaration)||i.valueDeclaration.parent.kind===292)){var t=e.getEnclosingBlockScopeContainer(i.valueDeclaration),o=B8(r,t),s=hb(t);if(s){if(o){var u=!0;if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);if(h&&h.parent===t){var z=J8(r.parent,t);if(z){var me=va(z);me.flags|=131072;var Me=me.capturedBlockScopeBindings||(me.capturedBlockScopeBindings=[]);e.pushIfUnique(Me,i),z===t.initializer&&(u=!1)}}}u&&(va(s).flags|=65536)}if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);h&&h.parent===t&&z8(r,t)&&(va(i.valueDeclaration).flags|=4194304)}va(i.valueDeclaration).flags|=524288}o&&(va(i.valueDeclaration).flags|=262144)}}function U8(r,i){var t=va(r);return!!t&&e.contains(t.capturedBlockScopeBindings,Et(i))}function z8(r,i){for(var t=r;t.parent.kind===212;)t=t.parent;var o=!1;if(e.isAssignmentTarget(t))o=!0;else if(t.parent.kind===219||t.parent.kind===220){var s=t.parent;o=s.operator===45||s.operator===46}return o?!!e.findAncestor(t,function(u){return u===i?\"quit\":u===i.statement}):!1}function Db(r,i){if(va(r).flags|=2,i.kind===167||i.kind===171){var t=i.parent;va(t).flags|=4}else va(i).flags|=4}function vC(r){return e.isSuperCall(r)?r:e.isFunctionLike(r)?void 0:e.forEachChild(r,vC)}function yC(r){var i=Et(r),t=go(i),o=Bl(t);return o===ct}function hC(r,i,t){var o=i.parent,s=e.getClassExtendsHeritageElement(o);s&&!yC(o)&&r.flowNode&&!a0(r.flowNode,!1)&&Xr(r,t)}function W8(r,i){e.isPropertyDeclaration(i)&&e.hasStaticModifier(i)&&i.initializer&&e.textRangeContainsPositionInclusive(i.initializer,r.pos)&&e.length(i.parent.decorators)&&Xr(r,e.Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class)}function yy(r){var i=_m(r),t=e.getThisContainer(r,!0),o=!1;switch(t.kind===171&&hC(r,t,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),t.kind===214&&(t=e.getThisContainer(t,!1),o=!0),W8(r,t),t.kind){case 261:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 260:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 171:DC(r,t)&&Xr(r,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 162:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);break}!i&&o&&Ae<2&&Db(r,t);var s=bb(r,!0,t);if(lr){var u=Jt(pe);if(s===u&&o)Xr(r,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!s){var h=Xr(r,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(t)){var z=bb(t);z&&z!==u&&e.addRelatedInfo(h,e.createDiagnosticForNode(t,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return s||Oe}function bb(r,i,t){i===void 0&&(i=!0),t===void 0&&(t=e.getThisContainer(r,!1));var o=e.isInJSFile(r);if(e.isFunctionLike(t)&&(!xb(r)||e.getThisParameter(t))){var s=ni(t)||o&&K8(t);if(!s){var u=V8(t);if(o&&u){var h=yn(u).symbol;h&&h.members&&h.flags&16&&(s=go(h).thisType)}else Sl(t)&&(s=go(so(t.symbol)).thisType);s||(s=SC(t))}if(s)return up(r,s)}if(e.isClassLike(t.parent)){var z=Et(t.parent),me=e.isStatic(t)?Jt(z):go(z).thisType;return up(r,me)}if(e.isSourceFile(t))if(t.commonJsModuleIndicator){var Me=Et(t);return Me&&Jt(Me)}else{if(t.externalModuleIndicator)return Tr;if(i)return Jt(pe)}}function q8(r){var i=e.getThisContainer(r,!1);if(e.isFunctionLike(i)){var t=yl(i);if(t.thisParameter)return r0(t.thisParameter)}if(e.isClassLike(i.parent)){var o=Et(i.parent);return e.isStatic(i)?Jt(o):go(o).thisType}}function V8(r){if(r.kind===213&&e.isBinaryExpression(r.parent)&&e.getAssignmentDeclarationKind(r.parent)===3)return r.parent.left.expression.expression;if(r.kind===169&&r.parent.kind===205&&e.isBinaryExpression(r.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent)===6)return r.parent.parent.left.expression;if(r.kind===213&&r.parent.kind===296&&r.parent.parent.kind===205&&e.isBinaryExpression(r.parent.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===6)return r.parent.parent.parent.left.expression;if(r.kind===213&&e.isPropertyAssignment(r.parent)&&e.isIdentifier(r.parent.name)&&(r.parent.name.escapedText===\"value\"||r.parent.name.escapedText===\"get\"||r.parent.name.escapedText===\"set\")&&e.isObjectLiteralExpression(r.parent.parent)&&e.isCallExpression(r.parent.parent.parent)&&r.parent.parent.parent.arguments[2]===r.parent.parent&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===9)return r.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(r)&&e.isIdentifier(r.name)&&(r.name.escapedText===\"value\"||r.name.escapedText===\"get\"||r.name.escapedText===\"set\")&&e.isObjectLiteralExpression(r.parent)&&e.isCallExpression(r.parent.parent)&&r.parent.parent.arguments[2]===r.parent&&e.getAssignmentDeclarationKind(r.parent.parent)===9)return r.parent.parent.arguments[0].expression}function K8(r){var i=e.getJSDocType(r);if(i&&i.kind===317){var t=i;if(t.parameters.length>0&&t.parameters[0].name&&t.parameters[0].name.escapedText===\"this\")return Va(t.parameters[0].type)}var o=e.getJSDocThisTag(r);if(o&&o.typeExpression)return Va(o.typeExpression)}function DC(r,i){return!!e.findAncestor(r,function(t){return e.isFunctionLikeDeclaration(t)?\"quit\":t.kind===164&&t.parent===i})}function Sb(r){var i=r.parent.kind===208&&r.parent.expression===r,t=e.getSuperContainer(r,!0),o=t,s=!1;if(!i)for(;o&&o.kind===214;)o=e.getSuperContainer(o,!0),s=Ae<2;var u=tr(o),h=0;if(!u){var z=e.findAncestor(r,function(dr){return dr===o?\"quit\":dr.kind===162});return z&&z.kind===162?Xr(r,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):i?Xr(r,e.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors):!o||!o.parent||!(e.isClassLike(o.parent)||o.parent.kind===205)?Xr(r,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions):Xr(r,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class),Pe}if(!i&&t.kind===171&&hC(r,o,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),e.isStatic(o)||i?(h=512,!i&&Ae>=2&&Ae<=8&&(e.isPropertyDeclaration(o)||e.isClassStaticBlockDeclaration(o))&&e.forEachEnclosingBlockScopeContainer(r.parent,function(dr){(!e.isSourceFile(dr)||e.isExternalOrCommonJsModule(dr))&&(va(dr).flags|=134217728)})):h=256,va(r).flags|=h,o.kind===169&&e.hasSyntacticModifier(o,256)&&(e.isSuperProperty(r.parent)&&e.isAssignmentTarget(r.parent)?va(o).flags|=4096:va(o).flags|=2048),s&&Db(r.parent,o),o.parent.kind===205)return Ae<2?(Xr(r,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),Pe):Oe;var me=o.parent;if(!e.getClassExtendsHeritageElement(me))return Xr(r,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),Pe;var Me=go(Et(me)),$e=Me&&Qc(Me)[0];if(!$e)return Pe;if(o.kind===171&&DC(r,o))return Xr(r,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),Pe;return h===512?Bl(Me):Rc($e,Me.thisType);function tr(dr){return dr?i?dr.kind===171:e.isClassLike(dr.parent)||dr.parent.kind===205?e.isStatic(dr)?dr.kind===169||dr.kind===168||dr.kind===172||dr.kind===173||dr.kind===167||dr.kind===170:dr.kind===169||dr.kind===168||dr.kind===172||dr.kind===173||dr.kind===167||dr.kind===166||dr.kind===171:!1:!1}}function G8(r){return(r.kind===169||r.kind===172||r.kind===173)&&r.parent.kind===205?r.parent:r.kind===213&&r.parent.kind===296?r.parent.parent:void 0}function bC(r){return e.getObjectFlags(r)&4&&r.target===qn?xo(r)[0]:void 0}function H8(r){return Ss(r,function(i){return i.flags&2097152?e.forEach(i.types,bC):bC(i)})}function SC(r){if(r.kind!==214){if(wD(r)){var i=dv(r);if(i){var t=i.thisParameter;if(t)return Jt(t)}}var o=e.isInJSFile(r);if(lr||o){var s=G8(r);if(s){for(var u=$p(s),h=s,z=u;z;){var me=H8(z);if(me)return un(me,ab(wg(s)));if(h.parent.kind!==296)break;h=h.parent.parent,z=$p(h)}return $c(u?C_(u):Os(s))}var Me=e.walkUpParenthesizedExpressions(r.parent);if(Me.kind===221&&Me.operatorToken.kind===63){var $e=Me.left;if(e.isAccessExpression($e)){var tr=$e.expression;if(o&&e.isIdentifier(tr)){var dr=e.getSourceFileOfNode(Me);if(dr.commonJsModuleIndicator&&Dl(tr)===dr.symbol)return}return $c(Os(tr))}}}}}function TC(r){var i=r.parent;if(!!wD(i)){var t=e.getImmediatelyInvokedFunctionExpression(i);if(t&&t.arguments){var o=Zb(t),s=i.parameters.indexOf(r);if(r.dotDotDotToken)return Yb(o,s,o.length,Oe,void 0,0);var u=va(t),h=u.resolvedSignature;u.resolvedSignature=En;var z=s=o?Jc(Jt(t.parameters[o]),If(i-o),256):$u(t,i)}function r5(r,i){if(r.parent.kind===210)return EC(r.parent,i)}function i5(r,i){var t=r.parent,o=t.left,s=t.operatorToken,u=t.right;switch(s.kind){case 63:case 76:case 75:case 77:return r===u?a5(t):void 0;case 56:case 60:var h=ou(t,i);return r===u&&(h&&h.pattern||!h&&!e.isDefaultedExpandoInitializer(t))?Gs(o):h;case 55:case 27:return r===u?ou(t,i):void 0;default:return}}function t5(r){if(r.symbol)return r.symbol;if(e.isIdentifier(r))return Dl(r);if(e.isPropertyAccessExpression(r)){var i=Gs(r.expression);return e.isPrivateIdentifier(r.name)?t(i,r.name):bi(i,r.name.escapedText)}return;function t(o,s){var u=g0(s.escapedText,s);return u&&Ub(o,u)}}function a5(r){var i,t,o=e.getAssignmentDeclarationKind(r);switch(o){case 0:case 4:var s=t5(r.left),u=s&&s.valueDeclaration;if(u&&(e.isPropertyDeclaration(u)||e.isPropertySignature(u))){var h=e.getEffectiveTypeAnnotationNode(u);return h&&un(Va(h),Aa(s).mapper)||u.initializer&&Gs(r.left)}return o===0?Gs(r.left):CC(r);case 5:if(s0(r,o))return CC(r);if(r.left.symbol){var z=r.left.symbol.valueDeclaration;if(!z)return;var me=e.cast(r.left,e.isAccessExpression),h=e.getEffectiveTypeAnnotationNode(z);if(h)return Va(h);if(e.isIdentifier(me.expression)){var Me=me.expression,$e=es(Me,Me.escapedText,111551,void 0,Me.escapedText,!0);if($e){var tr=$e.valueDeclaration&&e.getEffectiveTypeAnnotationNode($e.valueDeclaration);if(tr){var dr=e.getElementOrPropertyAccessName(me);if(dr!==void 0)return Md(Va(tr),dr)}return}}return e.isInJSFile(z)?void 0:Gs(r.left)}else return Gs(r.left);case 1:case 6:case 3:var Dr=(i=r.left.symbol)===null||i===void 0?void 0:i.valueDeclaration;case 2:Dr||(Dr=(t=r.symbol)===null||t===void 0?void 0:t.valueDeclaration);var Qr=Dr&&e.getEffectiveTypeAnnotationNode(Dr);return Qr?Va(Qr):void 0;case 7:case 8:case 9:return e.Debug.fail(\"Does not apply\");default:return e.Debug.assertNever(o)}}function s0(r,i){if(i===void 0&&(i=e.getAssignmentDeclarationKind(r)),i===4)return!0;if(!e.isInJSFile(r)||i!==5||!e.isIdentifier(r.left.expression))return!1;var t=r.left.expression.escapedText,o=es(r.left,t,111551,void 0,void 0,!0,!0);return e.isThisInitializedDeclaration(o==null?void 0:o.valueDeclaration)}function CC(r){if(!r.symbol)return Gs(r.left);if(r.symbol.valueDeclaration){var i=e.getEffectiveTypeAnnotationNode(r.symbol.valueDeclaration);if(i){var t=Va(i);if(t)return t}}var o=e.cast(r.left,e.isAccessExpression);if(!!e.isObjectLiteralMethod(e.getThisContainer(o.expression,!1))){var s=yy(o.expression),u=e.getElementOrPropertyAccessName(o);return u!==void 0&&Md(s,u)||void 0}}function n5(r){return!!(e.getCheckFlags(r)&262144&&!r.type&&v(r,0)>=0)}function Md(r,i,t){return Ss(r,function(o){var s;if(Bc(o)&&!o.declaration.nameType){var u=Mu(o),h=uc(u)||u,z=t||Bu(e.unescapeLeadingUnderscores(i));if(ao(z,h))return xh(o,z)}else if(o.flags&3670016){var me=bi(o,i);if(me)return n5(me)?void 0:Jt(me);if(Yn(o)){var Me=sv(o);if(Me&&e.isNumericLiteralName(i)&&+i>=0)return Me}return(s=mn(To(o),t||Bu(e.unescapeLeadingUnderscores(i))))===null||s===void 0?void 0:s.type}},!0)}function kC(r,i){if(e.Debug.assert(e.isObjectLiteralMethod(r)),!(r.flags&33554432))return kb(r,i)}function kb(r,i){var t=r.parent,o=e.isPropertyAssignment(r)&&Tb(r);if(o)return o;var s=$p(t,i);if(s){if(Td(r)){var u=Et(r);return Md(s,u.escapedName,Aa(u).nameType)}if(r.name){var h=Z_(r.name);return Ss(s,function(z){var me;return(me=mn(To(z),h))===null||me===void 0?void 0:me.type},!0)}}}function Ab(r,i){return r&&(Md(r,\"\"+i)||Ss(r,function(t){return xS(1,t,Tr,void 0,!1)},!0))}function o5(r,i){var t=r.parent;return r===t.whenTrue||r===t.whenFalse?ou(t,i):void 0}function s5(r,i){var t=$p(r.openingElement.tagName),o=_0(Og(r));if(!!(t&&!ta(t)&&o&&o!==\"\")){var s=e.getSemanticJsxChildren(r.children),u=s.indexOf(i),h=Md(t,o);return h&&(s.length===1?h:Ss(h,function(z){return sp(z)?Jc(z,If(u)):z},!0))}}function c5(r){var i=r.parent;return e.isJsxAttributeLike(i)?ou(r):e.isJsxElement(i)?s5(i,r):void 0}function AC(r){if(e.isJsxAttribute(r)){var i=$p(r.parent);return!i||ta(i)?void 0:Md(i,r.name.escapedText)}else return ou(r.parent)}function hy(r){switch(r.kind){case 10:case 8:case 9:case 14:case 110:case 95:case 104:case 79:case 153:return!0;case 206:case 212:return hy(r.expression);case 288:return!r.expression||hy(r.expression)}return!1}function u5(r,i){return n8(i,r)||UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===296&&hy(t.initializer)&&lv(i,t.symbol.escapedName)}),function(t){return[function(){return Oy(t.initializer)},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function l5(r,i){return UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===285&&lv(i,t.symbol.escapedName)&&(!t.initializer||hy(t.initializer))}),function(t){return[t.initializer?function(){return Oy(t.initializer)}:function(){return Dt},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function $p(r,i){var t=e.isObjectLiteralMethod(r)?kC(r,i):ou(r,i),o=c0(t,r,i);if(o&&!(i&&i&2&&o.flags&8650752)){var s=Ss(o,$s,!0);return s.flags&1048576&&e.isObjectLiteralExpression(r)?u5(r,s):s.flags&1048576&&e.isJsxAttributes(r)?l5(r,s):s}}function c0(r,i,t){if(r&&fs(r,465829888)){var o=wg(i);if(o&&e.some(o.inferences,tg)){if(t&&t&1)return u0(r,o.nonFixingMapper);if(o.returnMapper){var s=u0(r,o.returnMapper);return s.flags&1048576&&$f(s.types,ut)&&$f(s.types,Rt)?ec(s,function(u){return u!==ut&&u!==Rt}):s}}}return r}function u0(r,i){return r.flags&465829888?un(r,i):r.flags&1048576?Pa(e.map(r.types,function(t){return u0(t,i)}),0):r.flags&2097152?Do(e.map(r.types,function(t){return u0(t,i)})):r}function ou(r,i){if(r.flags&33554432)return;if(r.contextualType)return r.contextualType;var t=r.parent;switch(t.kind){case 254:case 164:case 167:case 166:case 203:return Y8(r,i);case 214:case 247:return $8(r);case 224:return e5(t);case 218:return Z8(t,i);case 208:case 209:return EC(t,r);case 211:case 229:return e.isConstTypeReference(t.type)?h(t):Va(t.type);case 221:return i5(r,i);case 296:case 297:return kb(t,i);case 298:return ou(t.parent,i);case 204:{var o=t,s=$p(o,i);return Ab(s,e.indexOfNode(o.elements,r))}case 222:return o5(r,i);case 233:return e.Debug.assert(t.parent.kind===223),r5(t.parent,r);case 212:{var u=e.isInJSFile(t)?e.getJSDocTypeTag(t):void 0;return u?e.isJSDocTypeTag(u)&&e.isConstTypeReference(u.typeExpression.type)?h(t):Va(u.typeExpression.type):ou(t,i)}case 230:return ou(t,i);case 271:return Rl(t);case 288:return c5(t);case 285:case 287:return AC(t);case 280:case 279:return f5(t,i)}return;function h(z){return ou(z)}}function wg(r){var i=e.findAncestor(r,function(t){return!!t.inferenceContext});return i&&i.inferenceContext}function f5(r,i){return e.isJsxOpeningElement(r)&&r.parent.contextualType&&i!==4?r.parent.contextualType:Cb(r,0)}function l0(r,i){return lk(i)!==0?_5(r,i):g5(r,i)}function _5(r,i){var t=nS(r,gr);t=NC(i,Og(i),t);var o=Zp(U.IntrinsicAttributes,i);return nn(o)||(t=Zg(o,t)),t}function p5(r,i){if(r.compositeSignatures){for(var t=[],o=0,s=r.compositeSignatures;o=2){var z=zp([u,t],h,2,e.isInJSFile(r));return am(o,z)}}if(e.length(s.typeParameters)>=2){var z=zp([u,t],s.typeParameters,2,e.isInJSFile(r));return Yf(s,z)}}return t}function g5(r,i){var t=Og(i),o=M5(t),s=o===void 0?nS(r,gr):o===\"\"?yo(r):p5(r,o);if(!s)return!!o&&!!e.length(i.attributes.properties)&&Xr(i,e.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,e.unescapeLeadingUnderscores(o)),gr;if(s=NC(i,t,s),ta(s))return s;var u=s,h=Zp(U.IntrinsicClassAttributes,i);if(!nn(h)){var z=Af(h.symbol),me=yo(r);u=Zg(z?Yf(h,zp([me],z,Ul(z),e.isInJSFile(i))):h,u)}var Me=Zp(U.IntrinsicAttributes,i);return nn(Me)||(u=Zg(Me,u)),u}function m5(r){return e.getStrictOptionValue(ye,\"noImplicitAny\")?e.reduceLeft(r,function(i,t){return i===t||!i?i:ah(i.typeParameters,t.typeParameters)?h5(i,t):void 0}):void 0}function v5(r,i,t){if(!r||!i)return r||i;var o=Pa([Jt(r),un(Jt(i),t)]);return eg(r,o)}function y5(r,i,t){for(var o=Wc(r),s=Wc(i),u=o>=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||\"arg\".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,\"args\");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function h5(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=y5(r,i,o),h=v5(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=2097152,me.compositeSignatures=e.concatenate(r.compositeKind===2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind===2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function Nb(r,i){var t=ot(r,0),o=e.filter(t,function(s){return!D5(s,i)});return o.length===1?o[0]:m5(o)}function D5(r,i){for(var t=0;t0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1,$i=!1);var Tn=bu(yn(ja.expression));if(Dy(Tn)){var cn=TD(Tn,Me);if(o&&FC(cn,o,ja),Ra=u.length,nn(h))continue;h=Vp(h,cn,r.symbol,Qr,Me)}else Xr(ja,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),h=Pe;continue}else e.Debug.assert(ja.kind===172||ja.kind===173),xm(ja);wn&&!(wn.flags&8576)?ao(wn,Vi)&&(ao(wn,nt)?Ci=!0:ao(wn,Ki)?$i=!0:Ti=!0,t&&(li=!0)):s.set(Fn.escapedName,Fn),u.push(Fn)}if(me&&r.parent.kind!==298)for(var Un=0,oa=uo(z);Un0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1),Ss(h,function(Ln){return Ln===Ba?Mn():Ln});return Mn();function Mn(){var Ln=[];Ti&&Ln.push(Ib(r,Ra,u,Li)),Ci&&Ln.push(Ib(r,Ra,u,nt)),$i&&Ln.push(Ib(r,Ra,u,Ki));var ci=rs(r.symbol,s,e.emptyArray,e.emptyArray,Ln);return ci.objectFlags|=Qr|128|131072,Dr&&(ci.objectFlags|=4096),li&&(ci.objectFlags|=512),t&&(ci.pattern=r),ci}}function Dy(r){var i=OE(Ss(r,Hd));return!!(i.flags&126615553||i.flags&3145728&&e.every(i.types,Dy))}function k5(r){Lb(r)}function A5(r,i){return xm(r),by(r)||Oe}function N5(r){Lb(r.openingElement),dm(r.closingElement.tagName)?Fb(r.closingElement):yn(r.closingElement.tagName),f0(r)}function P5(r,i){return xm(r),by(r)||Oe}function I5(r){Lb(r.openingFragment);var i=e.getSourceFileOfNode(r);return e.getJSXTransformEnabled(ye)&&(ye.jsxFactory||i.pragmas.has(\"jsx\"))&&!ye.jsxFragmentFactory&&!i.pragmas.has(\"jsxfrag\")&&Xr(r,ye.jsxFactory?e.Diagnostics.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:e.Diagnostics.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments),f0(r),by(r)||Oe}function Ob(r){return e.stringContains(r,\"-\")}function dm(r){return r.kind===79&&e.isIntrinsicJsxName(r.escapedText)}function OC(r,i){return r.initializer?Dm(r.initializer,i):Dt}function w5(r,i){for(var t=r.attributes,o=Ye?e.createSymbolTable():void 0,s=e.createSymbolTable(),u=pn,h=!1,z,me=!1,Me=2048,$e=_0(Og(r)),tr=0,dr=t.properties;tr0&&(u=Vp(u,ca(),t.symbol,Me,!1),s=e.createSymbolTable());var li=bu(Os(Dr.expression,i));ta(li)&&(h=!0),Dy(li)?(u=Vp(u,li,t.symbol,Me,!1),o&&FC(li,o,Dr)):(Xr(Dr.expression,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),z=z?Do([z,li]):li)}}h||s.size>0&&(u=Vp(u,ca(),t.symbol,Me,!1));var Ci=r.parent.kind===278?r.parent:void 0;if(Ci&&Ci.openingElement===r&&Ci.children.length>0){var $i=f0(Ci,i);if(!h&&$e&&$e!==\"\"){me&&Xr(t,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores($e));var Zi=$p(r.attributes),qt=Zi&&Md(Zi,$e),Nt=oo(4,$e);Nt.type=$i.length===1?$i[0]:qt&&rg(qt,Eg)?Wl($i):Zs(Pa($i)),Nt.valueDeclaration=e.factory.createPropertySignature(void 0,e.unescapeLeadingUnderscores($e),void 0,void 0),e.setParent(Nt.valueDeclaration,t),Nt.valueDeclaration.symbol=Nt;var Ra=e.createSymbolTable();Ra.set($e,Nt),u=Vp(u,rs(t.symbol,Ra,e.emptyArray,e.emptyArray,e.emptyArray),t.symbol,Me,!1)}}if(h)return Oe;if(z&&u!==pn)return Do([z,u]);return z||(u===pn?ca():u);function ca(){Me|=ur;var Sn=rs(t.symbol,s,e.emptyArray,e.emptyArray,e.emptyArray);return Sn.objectFlags|=Me|128|131072,Sn}}function f0(r,i){for(var t=[],o=0,s=r.children;o1&&t.declarations&&Xr(t.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(r))}}function F5(r){return r&&qs(r.exports,U.LibraryManagedAttributes,788968)}function M5(r){return MC(U.ElementAttributesPropertyNameContainer,r)}function _0(r){return MC(U.ElementChildrenAttributeNameContainer,r)}function LC(r,i){if(r.flags&4)return[En];if(r.flags&128){var t=RC(r,i);if(t){var o=S0(i,t);return[o]}else return Xr(i,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,\"JSX.\"+U.IntrinsicElements),e.emptyArray}var s=$s(r),u=ot(s,1);return u.length===0&&(u=ot(s,0)),u.length===0&&s.flags&1048576&&(u=zv(e.map(s.types,function(h){return LC(h,i)}))),u}function RC(r,i){var t=Zp(U.IntrinsicElements,i);if(!nn(t)){var o=r.value,s=bi(t,e.escapeLeadingUnderscores(o));if(s)return Jt(s);var u=cs(t,Li);return u||void 0}return Oe}function L5(r,i,t){if(r===1){var o=jC(t);o&&hl(i,o,dt,t.tagName,e.Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element,h)}else if(r===0){var s=JC(t);s&&hl(i,s,dt,t.tagName,e.Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element,h)}else{var o=jC(t),s=JC(t);if(!o||!s)return;var u=Pa([o,s]);hl(i,u,dt,t.tagName,e.Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element,h)}function h(){var z=e.getTextOfNode(t.tagName);return e.chainDiagnosticMessages(void 0,e.Diagnostics._0_cannot_be_used_as_a_JSX_component,z)}}function BC(r){e.Debug.assert(dm(r.tagName));var i=va(r);if(!i.resolvedJsxElementAttributesType){var t=Fb(r);return i.jsxFlags&1?i.resolvedJsxElementAttributesType=Jt(t)||Pe:i.jsxFlags&2?i.resolvedJsxElementAttributesType=cs(Zp(U.IntrinsicElements,r),Li)||Pe:i.resolvedJsxElementAttributesType=Pe}return i.resolvedJsxElementAttributesType}function JC(r){var i=Zp(U.ElementClass,r);if(!nn(i))return i}function by(r){return Zp(U.Element,r)}function jC(r){var i=by(r);if(i)return Pa([i,Wi])}function R5(r){var i=Zp(U.IntrinsicElements,r);return i?uo(i):e.emptyArray}function B5(r){(ye.jsx||0)===0&&Xr(r,e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided),by(r)===void 0&&n&&Xr(r,e.Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist)}function Lb(r){var i=e.isJsxOpeningLikeElement(r);if(i&&rL(r),B5(r),!Mb(r)){var t=rn&&ye.jsx===2?e.Diagnostics.Cannot_find_name_0:void 0,o=po(r),s=i?r.tagName:r,u=void 0;if(e.isJsxOpeningFragment(r)&&o===\"null\"||(u=es(s,o,111551,t,o,!0)),u&&(u.isReferenced=67108863,u.flags&2097152&&!vu(u)&&As(u)),e.isJsxOpeningFragment(r)){var h=e.getSourceFileOfNode(r),z=Gn(h);z&&es(s,z,111551,t,z,!0)}}if(i){var me=r,Me=Mg(me);x0(Me,r),L5(lk(me),yo(Me),me)}}function Rb(r,i,t){if(r.flags&524288){if(h_(r,i)||Xo(r,i)||pg(i)&&ss(r,Li)||t&&Ob(i))return!0}else if(r.flags&3145728&&Sy(r))for(var o=0,s=r.types;o=1&&ao(t,$u(me,0))}return!1}var s=e.isAssignmentTarget(i)?\"set\":\"get\";if(!!o(s)){var u=e.tryGetPropertyAccessOrIdentifierToString(i.expression);return u===void 0?u=s:u+=\".\"+s,u}}function t7(r,i){var t=i.types.filter(function(o){return!!(o.flags&128)});return e.getSpellingSuggestion(r.value,t,function(o){return o.value})}function Ty(r,i,t){return e.getSpellingSuggestion(r,i,o);function o(s){var u=e.symbolName(s);if(!e.startsWith(u,'\"')){if(s.flags&t)return u;if(s.flags&2097152){var h=d_(s);if(h&&h.flags&t)return u}}}}function xy(r,i,t){var o=r&&r.flags&106500&&r.valueDeclaration;if(!!o){var s=e.hasEffectiveModifier(o,8),u=r.valueDeclaration&&e.isNamedDeclaration(r.valueDeclaration)&&e.isPrivateIdentifier(r.valueDeclaration.name);if(!(!s&&!u)&&!(i&&e.isWriteOnlyAccess(i)&&!(r.flags&65536))){if(t){var h=e.findAncestor(i,e.isFunctionLikeDeclaration);if(h&&h.symbol===r)return}(e.getCheckFlags(r)&1?Aa(r).target:r).isReferenced=67108863}}}function rk(r,i){return r.kind===108||!!i&&e.isEntityNameExpression(r)&&i===Dl(e.getFirstIdentifier(r))}function a7(r,i){switch(r.kind){case 206:return Gb(r,r.expression.kind===106,i,$c(yn(r.expression)));case 161:return Gb(r,!1,i,$c(yn(r.left)));case 200:return Gb(r,!1,i,Va(r))}}function ik(r,i,t){return Hb(r,r.kind===206&&r.expression.kind===106,!1,i,t)}function Gb(r,i,t,o){if(ta(o))return!0;var s=bi(o,t);return!!s&&Hb(r,i,!1,o,s)}function Hb(r,i,t,o,s){if(ta(o))return!0;if(s.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(s.valueDeclaration)){var u=e.getContainingClass(s.valueDeclaration);return!e.isOptionalChain(r)&&!!e.findAncestor(r,function(h){return h===u})}return UC(r,i,t,o,s)}function n7(r){var i=r.initializer;if(i.kind===255){var t=i.declarations[0];if(t&&!e.isBindingPattern(t.name))return Et(t)}else if(i.kind===79)return Dl(i)}function o7(r){return Hn(r).length===1&&!!ss(r,nt)}function s7(r){var i=e.skipParentheses(r);if(i.kind===79){var t=Dl(i);if(t.flags&3)for(var o=r,s=r.parent;s;){if(s.kind===243&&o===s.statement&&n7(s)===t&&o7(Gs(s.expression)))return!0;o=s,s=s.parent}}return!1}function c7(r,i){return r.flags&32?u7(r,i):tk(r,gm(r.expression),i)}function u7(r,i){var t=yn(r.expression),o=cv(t,r.expression);return zh(tk(r,bl(o,r.expression),i),r,o!==t)}function tk(r,i,t){var o=e.getAssignmentTargetKind(r)!==0||GC(r)?$c(i):i,s=r.argumentExpression,u=yn(s);if(nn(o)||o===Bt)return o;if(uS(o)&&!e.isStringLiteralLike(s))return Xr(s,e.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal),Pe;var h=s7(s)?nt:u,z=e.isAssignmentTarget(r)?4|(Ad(o)&&!e.isThisTypeParameter(o)?2:0):32,me=ep(o,h,z,r)||Pe;return o6(XC(r,va(r).resolvedSymbol,me,s,t),r)}function ak(r){return e.isCallOrNewExpression(r)||e.isTaggedTemplateExpression(r)||e.isJsxOpeningLikeElement(r)}function Fg(r){return ak(r)&&e.forEach(r.typeArguments,io),r.kind===210?yn(r.template):e.isJsxOpeningLikeElement(r)?yn(r.attributes):r.kind!==165&&e.forEach(r.arguments,function(i){yn(i)}),En}function Gl(r){return Fg(r),Wn}function l7(r,i,t){var o,s,u=0,h,z=-1,me;e.Debug.assert(!i.length);for(var Me=0,$e=r;Me<$e.length;Me++){var tr=$e[Me],dr=tr.declaration&&Et(tr.declaration),Dr=tr.declaration&&tr.declaration.parent;!s||dr===s?o&&Dr===o?h=h+1:(o=Dr,h=u):(h=u=i.length,o=Dr),s=dr,I(tr)?(z++,me=z,u++):me=h,i.splice(me,0,t?w1(tr,t):tr)}}function y0(r){return!!r&&(r.kind===225||r.kind===232&&r.isSpread)}function h0(r){return e.findIndex(r,y0)}function nk(r){return!!(r.flags&16384)}function f7(r){return!!(r.flags&49155)}function D0(r,i,t,o){o===void 0&&(o=!1);var s,u=!1,h=Wc(t),z=Hl(t);if(r.kind===210)if(s=i.length,r.template.kind===223){var me=e.last(r.template.templateSpans);u=e.nodeIsMissing(me.literal)||!!me.literal.isUnterminated}else{var Me=r.template;e.Debug.assert(Me.kind===14),u=!!Me.isUnterminated}else if(r.kind===165)s=_k(r,t);else if(e.isJsxOpeningLikeElement(r)){if(u=r.attributes.end===r.end,u)return!0;s=z===0?i.length:1,h=i.length===0?h:1,z=Math.min(z,1)}else if(r.arguments){s=o?i.length+1:i.length,u=r.arguments.end===r.end;var $e=h0(i);if($e>=0)return $e>=Hl(t)&&(Xl(t)||$eh)return!1;if(u||s>=z)return!0;for(var tr=s;tr=o&&i.length<=t}function ig(r){return gv(r,0,!1)}function ok(r){return gv(r,0,!1)||gv(r,1,!1)}function gv(r,i,t){if(r.flags&524288){var o=Ru(r);if(t||o.properties.length===0&&o.indexInfos.length===0){if(i===0&&o.callSignatures.length===1&&o.constructSignatures.length===0)return o.callSignatures[0];if(i===1&&o.constructSignatures.length===1&&o.callSignatures.length===0)return o.constructSignatures[0]}}}function sk(r,i,t,o){var s=uv(r.typeParameters,r,0,o),u=vv(i),h=t&&(u&&u.flags&262144?t.nonFixingMapper:t.mapper),z=h?Tg(i,h):i;return eb(z,r,function(me,Me){df(s.inferences,me,Me)}),t||rb(i,r,function(me,Me){df(s.inferences,me,Me,128)}),Xm(r,_b(s),e.isInJSFile(i.declaration))}function _7(r,i,t,o){var s=l0(i,r),u=Rg(r.attributes,s,o,t);return df(o.inferences,u,s),_b(o)}function ck(r){if(!r)return Fi;var i=yn(r);return e.isOptionalChainRoot(r.parent)?C_(i):e.isOptionalChain(r.parent)?YD(i):i}function Qb(r,i,t,o,s){if(e.isJsxOpeningLikeElement(r))return _7(r,i,o,s);if(r.kind!==165){var u=ou(r,e.every(i.typeParameters,function(Sn){return!!D_(Sn)})?8:0);if(u){var h=yo(i);if(Id(h)){var z=wg(r),me=ab(Jw(z,1)),Me=un(u,me),$e=ig(Me),tr=$e&&$e.typeParameters?im(eD($e,$e.typeParameters)):Me;df(s.inferences,tr,h,128);var dr=uv(i.typeParameters,i,s.flags),Dr=un(u,z&&z.returnMapper);df(dr.inferences,Dr,h),s.returnMapper=e.some(dr.inferences,tg)?ab(Uw(dr)):void 0}}}var Qr=yv(i),li=Qr?Math.min(Wc(i)-1,t.length):t.length;if(Qr&&Qr.flags&262144){var Ti=e.find(s.inferences,function(Sn){return Sn.typeParameter===Qr});Ti&&(Ti.impliedArity=e.findIndex(t,y0,li)<0?t.length-li:void 0)}var Ci=T_(i);if(Ci&&Id(Ci)){var $i=fk(r);df(s.inferences,ck($i),Ci)}for(var Zi=0;Zi=t-1){var h=r[t-1];if(y0(h))return uk(h.kind===232?h.type:Rg(h.expression,o,s,u))}for(var z=[],me=[],Me=[],$e=i;$e$i&&($i=wn)}}if(!Ci)return!0;for(var Tn=1/0,Eo=0,lt=dr;Eo0||e.isJsxOpeningElement(r)&&r.parent.children.length>0?[r.attributes]:e.emptyArray;var o=r.arguments||e.emptyArray,s=h0(o);if(s>=0){for(var u=o.slice(0,s),h=function(me){var Me=o[me],$e=Me.kind===225&&(Ao?yn(Me.expression):Os(Me.expression));$e&&Yn($e)?e.forEach(xo($e),function(tr,dr){var Dr,Qr=$e.target.elementFlags[dr],li=ed(Me,Qr&4?Zs(tr):tr,!!(Qr&12),(Dr=$e.target.labeledElementDeclarations)===null||Dr===void 0?void 0:Dr[dr]);u.push(li)}):u.push(Me)},z=s;z-1)return e.createDiagnosticForNode(t[s],e.Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);for(var u=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,z=Number.NEGATIVE_INFINITY,me=Number.POSITIVE_INFINITY,Me,$e=0,tr=i;$ez&&(z=Dr),t.lengtho?me=Math.min(me,tr):h1&&($i=ea(tr,Or,Dr,Zi)),$i||($i=ea(tr,dt,Dr,Zi)),$i)return $i;if(Me)if(li)if(li.length===1||li.length>3){var qt=li[li.length-1],Nt;li.length>3&&(Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.The_last_overload_gave_the_following_error),Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.No_overload_matches_this_call));var Ra=Ey(r,dr,qt,dt,0,!0,function(){return Nt});if(Ra)for(var ca=0,Sn=Ra;ca3&&e.addRelatedInfo(ja,e.createDiagnosticForNode(qt.declaration,e.Diagnostics.The_last_overload_is_declared_here)),Lt(qt,ja),rn.add(ja)}else e.Debug.fail(\"No error for last overload signature\")}else{for(var Fn=[],wn=0,Tn=Number.MAX_VALUE,Eo=0,lt=0,it=function(Kt){var $t=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,lt+1,tr.length,Ml(Kt))},Ua=Ey(r,dr,Kt,dt,0,!0,$t);Ua?(Ua.length<=Tn&&(Tn=Ua.length,Eo=lt),wn=Math.max(wn,Ua.length),Fn.push(Ua)):e.Debug.fail(\"No error for 3 or fewer overload signatures\"),lt++},Yt=0,Ia=li;Yt1?Fn[Eo]:e.flatten(Fn);e.Debug.assert(Ka.length>0,\"No errors reported for 3 or fewer overload signatures\");var cn=e.chainDiagnosticMessages(e.map(Ka,e.createDiagnosticMessageChainFromDiagnostic),e.Diagnostics.No_overload_matches_this_call),Un=Ve([],e.flatMap(Ka,function(Kt){return Kt.relatedInformation}),!0),oa=void 0;if(e.every(Ka,function(Kt){return Kt.start===Ka[0].start&&Kt.length===Ka[0].length&&Kt.file===Ka[0].file})){var Mn=Ka[0],Ln=Mn.file,ci=Mn.start,Fr=Mn.length;oa={file:Ln,start:ci,length:Fr,code:cn.code,category:cn.category,messageText:cn,relatedInformation:Un}}else oa=e.createDiagnosticForNodeFromMessageChain(r,cn,Un);Lt(li[0],oa),rn.add(oa)}else if(Ti)rn.add(dk(r,[Ti],dr));else if(Ci)$b(Ci,r.typeArguments,!0,u);else{var jt=e.filter(i,function(Kt){return Xb(Kt,$e)});jt.length===0?rn.add(m7(r,i,$e)):z?u&&rn.add(Cy(r,u)):rn.add(dk(r,jt,dr))}return v7(r,tr,dr,!!t,o);function Lt(Kt,$t){var Ua,Yr,Ni=li,Hi=Ti,_t=Ci,gt=((Yr=(Ua=Kt.declaration)===null||Ua===void 0?void 0:Ua.symbol)===null||Yr===void 0?void 0:Yr.declarations)||e.emptyArray,Vt=gt.length>1,Fa=Vt?e.find(gt,function(Ga){return e.isFunctionLikeDeclaration(Ga)&&e.nodeIsPresent(Ga.body)}):void 0;if(Fa){var on=yl(Fa),zn=!on.typeParameters;ea([on],dt,zn)&&e.addRelatedInfo($t,e.createDiagnosticForNode(Fa,e.Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible))}li=Ni,Ti=Hi,Ci=_t}function ea(Kt,$t,Ua,Yr){if(Yr===void 0&&(Yr=!1),li=void 0,Ti=void 0,Ci=void 0,Ua){var Ni=Kt[0];if(e.some($e)||!D0(r,dr,Ni,Yr))return;if(Ey(r,dr,Ni,$t,0,!1,void 0)){li=[Ni];return}return Ni}for(var Hi=0;Hi0),xm(r),o||i.length===1||i.some(function(u){return!!u.typeParameters})?D7(r,i,t,s):y7(i)}function y7(r){var i=e.mapDefined(r,function(dr){return dr.thisParameter}),t;i.length&&(t=gk(i,i.map(mv)));for(var o=e.minAndMax(r,h7),s=o.min,u=o.max,h=[],z=function(dr){var Dr=e.mapDefined(r,function(Qr){return H(Qr)?dri.length;)o.pop();for(;o.length=i)return s;h>o&&(o=h,t=s)}return t}function x7(r,i,t){if(r.expression.kind===106){var o=Sb(r.expression);if(ta(o)){for(var s=0,u=r.arguments;s=0&&Xr(r.arguments[o],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var s=gm(r.expression);if(s===Bt)return Co;if(s=$s(s),nn(s))return Gl(r);if(ta(s))return r.typeArguments&&Xr(r,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),Fg(r);var u=ot(s,1);if(u.length){if(!k7(r,u[0]))return Gl(r);if(vk(u,function(Me){return!!(Me.flags&4)}))return Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r);var h=s.symbol&&e.getClassLikeDeclarationOfSymbol(s.symbol);return h&&e.hasSyntacticModifier(h,128)?(Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r)):mm(r,u,i,t,0)}var z=ot(s,0);if(z.length){var me=mm(r,z,i,t,0);return n||(me.declaration&&!Sl(me.declaration)&&yo(me)!==Fi&&Xr(r,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),T_(me)===Fi&&Xr(r,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),me}return rS(r.expression,s,1),Gl(r)}function vk(r,i){return e.isArray(r)?e.some(r,function(t){return vk(t,i)}):r.compositeKind===1048576?e.some(r.compositeSignatures,i):i(r)}function eS(r,i){var t=Qc(i);if(!e.length(t))return!1;var o=t[0];if(o.flags&2097152){for(var s=o.types,u=Wv(s),h=0,z=0,me=o.types;z0;if(i.flags&1048576){for(var z=i.types,me=!1,Me=0,$e=z;Me<$e.length;Me++){var tr=$e[Me],dr=ot(tr,t);if(dr.length!==0){if(me=!0,o)break}else if(o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(tr)),o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Not_all_constituents_of_type_0_are_callable:e.Diagnostics.Not_all_constituents_of_type_0_are_constructable,Ot(i))),me)break}me||(o=e.chainDiagnosticMessages(void 0,s?e.Diagnostics.No_constituent_of_type_0_is_callable:e.Diagnostics.No_constituent_of_type_0_is_constructable,Ot(i))),o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:e.Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,Ot(i)))}else o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(i));var Dr=s?e.Diagnostics.This_expression_is_not_callable:e.Diagnostics.This_expression_is_not_constructable;if(e.isCallExpression(r.parent)&&r.parent.arguments.length===0){var Qr=va(r).resolvedSymbol;Qr&&Qr.flags&32768&&(Dr=e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without)}return{messageChain:e.chainDiagnosticMessages(o,Dr),relatedMessage:h?e.Diagnostics.Did_you_forget_to_use_await:void 0}}function rS(r,i,t,o){var s=yk(r,i,t),u=s.messageChain,h=s.relatedMessage,z=e.createDiagnosticForNodeFromMessageChain(r,u);if(h&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,h)),e.isCallExpression(r.parent)){var me=pk(r.parent,!0),Me=me.start,$e=me.length;z.start=Me,z.length=$e}rn.add(z),hk(i,t,o?e.addRelatedInfo(z,o):z)}function hk(r,i,t){if(!!r.symbol){var o=Aa(r.symbol).originatingImport;if(o&&!e.isImportCall(o)){var s=ot(Jt(Aa(r.symbol).target),i);if(!s||!s.length)return;e.addRelatedInfo(t,e.createDiagnosticForNode(o,e.Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead))}}}function A7(r,i,t){var o=yn(r.tag),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(!u.length){if(e.isArrayLiteralExpression(r.parent)){var z=e.createDiagnosticForNode(r.tag,e.Diagnostics.It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked);return rn.add(z),Gl(r)}return rS(r.tag,s,0),Gl(r)}return mm(r,u,i,t,0)}function N7(r){switch(r.parent.kind){case 257:case 226:return e.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;case 164:return e.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;case 167:return e.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;case 169:case 172:case 173:return e.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;default:return e.Debug.fail()}}function P7(r,i,t){var o=yn(r.expression),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(w7(r,u)){var z=e.getTextOfNode(r.expression,!1);return Xr(r,e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0,z),Gl(r)}var me=N7(r);if(!u.length){var Me=yk(r.expression,s,0),$e=e.chainDiagnosticMessages(Me.messageChain,me),tr=e.createDiagnosticForNodeFromMessageChain(r.expression,$e);return Me.relatedMessage&&e.addRelatedInfo(tr,e.createDiagnosticForNode(r.expression,Me.relatedMessage)),rn.add(tr),hk(s,0,tr),Gl(r)}return mm(r,u,i,t,0,me)}function S0(r,i){var t=Og(r),o=t&&dc(t),s=o&&qs(o,U.Element,788968),u=s&&Ur.symbolToEntityName(s,788968,r),h=e.factory.createFunctionTypeNode(void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,\"props\",void 0,Ur.typeToTypeNode(i,r))],u?e.factory.createTypeReferenceNode(u,void 0):e.factory.createKeywordTypeNode(130)),z=oo(1,\"props\");return z.type=i,Fu(h,void 0,void 0,[z],s?go(s):Pe,void 0,1,0)}function I7(r,i,t){if(dm(r.tagName)){var o=BC(r),s=S0(r,o);return op(Rg(r.attributes,l0(s,r),void 0,0),o,r.tagName,r.attributes),e.length(r.typeArguments)&&(e.forEach(r.typeArguments,io),rn.add(e.createDiagnosticForNodeArray(e.getSourceFileOfNode(r),r.typeArguments,e.Diagnostics.Expected_0_type_arguments_but_got_1,0,e.length(r.typeArguments)))),s}var u=yn(r.tagName),h=$s(u);if(nn(h))return Gl(r);var z=LC(u,r);return b0(u,h,z.length,0)?Fg(r):z.length===0?(Xr(r.tagName,e.Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures,e.getTextOfNode(r.tagName)),Gl(r)):mm(r,z,i,t,0)}function w7(r,i){return i.length&&e.every(i,function(t){return t.minArgumentCount===0&&!H(t)&&t.parameters.length<_k(r,t)})}function O7(r,i,t){switch(r.kind){case 208:return x7(r,i,t);case 209:return C7(r,i,t);case 210:return A7(r,i,t);case 165:return P7(r,i,t);case 280:case 279:return I7(r,i,t)}throw e.Debug.assertNever(r,\"Branch in 'resolveSignature' should be unreachable.\")}function Mg(r,i,t){var o=va(r),s=o.resolvedSignature;if(s&&s!==to&&!i)return s;o.resolvedSignature=to;var u=O7(r,i,t||0);return u!==to&&(o.resolvedSignature=ko===Ao?u:s),u}function Sl(r){var i;if(!r||!e.isInJSFile(r))return!1;var t=e.isFunctionDeclaration(r)||e.isFunctionExpression(r)?r:e.isVariableDeclaration(r)&&r.initializer&&e.isFunctionExpression(r.initializer)?r.initializer:void 0;if(t){if(e.getJSDocClassTag(r))return!0;var o=Et(t);return!!(!((i=o==null?void 0:o.members)===null||i===void 0)&&i.size)}return!1}function iS(r,i){var t,o;if(i){var s=Aa(i);if(!s.inferredClassSymbol||!s.inferredClassSymbol.has(y(r))){var u=e.isTransientSymbol(r)?r:Yl(r);return u.exports=u.exports||e.createSymbolTable(),u.members=u.members||e.createSymbolTable(),u.flags|=i.flags&32,!((t=i.exports)===null||t===void 0)&&t.size&&gu(u.exports,i.exports),!((o=i.members)===null||o===void 0)&&o.size&&gu(u.members,i.members),(s.inferredClassSymbol||(s.inferredClassSymbol=new e.Map)).set(y(u),u),u}return s.inferredClassSymbol.get(y(r))}}function F7(r){var i,t=r&&T0(r,!0),o=(i=t==null?void 0:t.exports)===null||i===void 0?void 0:i.get(\"prototype\"),s=(o==null?void 0:o.valueDeclaration)&&M7(o.valueDeclaration);return s?Et(s):void 0}function T0(r,i){if(!!r.parent){var t,o;if(e.isVariableDeclaration(r.parent)&&r.parent.initializer===r){if(!e.isInJSFile(r)&&!(e.isVarConst(r.parent)&&e.isFunctionLikeDeclaration(r)))return;t=r.parent.name,o=r.parent}else if(e.isBinaryExpression(r.parent)){var s=r.parent,u=r.parent.operatorToken.kind;if(u===63&&(i||s.right===r))t=s.left,o=t;else if((u===56||u===60)&&(e.isVariableDeclaration(s.parent)&&s.parent.initializer===s?(t=s.parent.name,o=s.parent):e.isBinaryExpression(s.parent)&&s.parent.operatorToken.kind===63&&(i||s.parent.right===s)&&(t=s.parent.left,o=t),!t||!e.isBindableStaticNameExpression(t)||!e.isSameEntityName(t,s.left)))return}else i&&e.isFunctionDeclaration(r)&&(t=r.name,o=r);if(!(!o||!t||!i&&!e.getExpandoInitializer(r,e.isPrototypeAccess(t))))return Et(o)}}function M7(r){if(!r.parent)return!1;for(var i=r.parent;i&&i.kind===206;)i=i.parent;if(i&&e.isBinaryExpression(i)&&e.isPrototypeAccess(i.left)&&i.operatorToken.kind===63){var t=e.getInitializerOfBinaryExpression(i);return e.isObjectLiteralExpression(t)&&t}}function L7(r,i){var t;Wy(r,r.typeArguments);var o=Mg(r,void 0,i);if(o===to)return wt;if(x0(o,r),r.expression.kind===106)return Fi;if(r.kind===209){var s=o.declaration;if(s&&s.kind!==171&&s.kind!==175&&s.kind!==180&&!e.isJSDocConstructSignature(s)&&!Sl(s))return n&&Xr(r,e.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type),Oe}if(e.isInJSFile(r)&&xk(r))return Hm(r.arguments[0]);var u=yo(o);if(u.flags&12288&&Dk(r))return CD(e.walkUpParenthesizedExpressions(r.parent));if(r.kind===208&&!r.questionDotToken&&r.parent.kind===238&&u.flags&16384&&Yc(o)){if(!e.isDottedName(r.expression))Xr(r.expression,e.Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);else if(!i0(r)){var h=Xr(r.expression,e.Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);gy(r.expression,h)}}if(e.isInJSFile(r)){var z=T0(r,!1);if(!((t=z==null?void 0:z.exports)===null||t===void 0)&&t.size){var me=rs(z,z.exports,e.emptyArray,e.emptyArray,e.emptyArray);return me.objectFlags|=4096,Do([u,me])}}return u}function x0(r,i){if(r.declaration&&r.declaration.flags&268435456){var t=ky(i),o=e.tryGetPropertyAccessOrIdentifierToString(e.getInvokedExpression(i));vp(t,r.declaration,o,Ml(r))}}function ky(r){switch(r=e.skipParentheses(r),r.kind){case 208:case 165:case 209:return ky(r.expression);case 210:return ky(r.tag);case 280:case 279:return ky(r.tagName);case 207:return r.argumentExpression;case 206:return r.name;case 178:var i=r;return e.isQualifiedName(i.typeName)?i.typeName.right:i;default:return r}}function Dk(r){if(!e.isCallExpression(r))return!1;var i=r.expression;if(e.isPropertyAccessExpression(i)&&i.name.escapedText===\"for\"&&(i=i.expression),!e.isIdentifier(i)||i.escapedText!==\"Symbol\")return!1;var t=Ex(!1);return t?t===es(i,\"Symbol\",111551,void 0,void 0,!1):!1}function R7(r){if(CL(r),r.arguments.length===0)return Py(r,Oe);for(var i=r.arguments[0],t=Os(i),o=r.arguments.length>1?Os(r.arguments[1]):void 0,s=2;s=t-1)return i===t-1?s:Zs(Jc(s,nt));for(var u=[],h=[],z=[],me=i;me0&&(s=r.parameters.length-1+z)}}if(s===void 0){if(!t&&r.flags&32)return 0;s=r.minArgumentCount}if(o)return s;for(var me=s-1;me>=0;me--){var Me=$u(r,me);if(ec(Me,nk).flags&131072)break;s=me}r.resolvedMinArgumentCount=s}return r.resolvedMinArgumentCount}function Xl(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);return!Yn(i)||i.target.hasRestElement}return!1}function vv(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);if(!Yn(i))return i;if(i.target.hasRestElement)return Zm(i,i.target.fixedLength)}}function yv(r){var i=vv(r);return i&&!Tu(i)&&!ta(i)&&(bu(i).flags&131072)===0?i:void 0}function aS(r){return nS(r,ui)}function nS(r,i){return r.parameters.length>0?$u(r,0):i}function K7(r,i,t){for(var o=r.parameters.length-(H(r)?1:0),s=0;s0&&(u=Pa(Me,2)):me=ui;var $e=X7(r,i),tr=$e.yieldTypes,dr=$e.nextTypes;h=e.some(tr)?Pa(tr,2):void 0,z=e.some(dr)?Do(dr):void 0}else{var Dr=Bk(r,i);if(!Dr)return t&2?Py(r,ui):ui;if(Dr.length===0)return t&2?Py(r,Fi):Fi;u=Pa(Dr,2)}if(u||h||z){if(h&&Kh(r,h,3),u&&Kh(r,u,1),z&&Kh(r,z,2),u&&Vl(u)||h&&Vl(h)||z&&Vl(z)){var Qr=Pb(r),li=Qr?Qr===yl(r)?s?void 0:u:c0(yo(Qr),r):void 0;s?(h=XD(h,li,0,o),u=XD(u,li,1,o),z=XD(z,li,2,o)):u=kw(u,li,o)}h&&(h=$c(h)),u&&(u=$c(u)),z&&(z=$c(z))}return s?Fk(h||ui,u||me,z||xC(2,r)||gr,o):o?Ny(u||me):u||me}function Fk(r,i,t,o){var s=o?St:pa,u=s.getGlobalGeneratorType(!1);if(r=s.resolveIterationType(r,void 0)||gr,i=s.resolveIterationType(i,void 0)||gr,t=s.resolveIterationType(t,void 0)||gr,u===kn){var h=s.getGlobalIterableIteratorType(!1),z=h!==kn?x6(h,s):void 0,me=z?z.returnType:Oe,Me=z?z.nextType:Tr;return ao(i,me)&&ao(Me,t)?h!==kn?$m(h,[r]):(s.getGlobalIterableIteratorType(!0),Ba):(s.getGlobalGeneratorType(!0),Ba)}return $m(u,[r,i,t])}function X7(r,i){var t=[],o=[],s=(e.getFunctionFlags(r)&2)!==0;return e.forEachYieldExpression(r.body,function(u){var h=u.expression?yn(u.expression,i):vi;e.pushIfUnique(t,Mk(u,h,Oe,s));var z;if(u.asteriskToken){var me=Jy(h,s?19:17,u.expression);z=me&&me.nextType}else z=ou(u);z&&e.pushIfUnique(o,z)}),{yieldTypes:t,nextTypes:o}}function Mk(r,i,t,o){var s=r.expression||r,u=r.asteriskToken?N_(o?19:17,i,t,s):i;return o?ag(u,s,r.asteriskToken?e.Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:e.Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):u}function oS(r,i,t,o){var s=0;if(o){for(var u=i;u=4)break;default:o!=null||(o=e.getSpanOfTokenAtPosition(t,r.pos)),rn.add(e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}}else{var t=e.getSourceFileOfNode(r);if(!Jd(t)){var o=e.getSpanOfTokenAtPosition(t,r.pos),s=e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);if(i&&i.kind!==171&&(e.getFunctionFlags(i)&2)===0){var u=e.createDiagnosticForNode(i,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(s,u)}rn.add(s)}}xb(r)&&Xr(r,e.Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer)}function oO(r){fe(function(){return nO(r)});var i=yn(r.expression),t=xv(i,!0,r,e.Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);return t===i&&!nn(t)&&!(i.flags&3)&&Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression)),t}function sO(r){var i=yn(r.operand);if(i===Bt)return Bt;switch(r.operand.kind){case 8:switch(r.operator){case 40:return Sg(If(-r.operand.text));case 39:return Sg(If(+r.operand.text))}break;case 9:if(r.operator===40)return Sg(ED({negative:!0,base10Value:e.parsePseudoBigInt(r.operand.text)}))}switch(r.operator){case 39:case 40:case 54:return bl(i,r.operand),A0(i,12288)&&Xr(r.operand,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(r.operator)),r.operator===39?(fs(i,2112)&&Xr(r.operand,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1,e.tokenToString(r.operator),Ot(Kl(i))),nt):cS(i);case 53:Bg(r.operand);var t=cp(i)&12582912;return t===4194304?xt:t===8388608?Dt:Ii;case 45:case 46:var o=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return o&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}return Pe}function cO(r){var i=yn(r.operand);if(i===Bt)return Bt;var t=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return t&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}function cS(r){return fs(r,2112)?Ns(r,3)||fs(r,296)?At:Mt:nt}function A0(r,i){if(fs(r,i))return!0;var t=Hd(r);return!!t&&fs(t,i)}function fs(r,i){if(r.flags&i)return!0;if(r.flags&3145728)for(var t=r.types,o=0,s=t;o1&&i.charCodeAt(t-1)>=48&&i.charCodeAt(t-1)<=57;)t--;for(var o=i.slice(0,t),s=1;;s++){var u=o+s;if(!pS(r,u))return u}}function Qk(r){var i=ig(r);if(i&&!i.typeParameters)return yo(i)}function AO(r){var i=yn(r.expression),t=cv(i,r.expression),o=Qk(i);return o&&zh(o,r,t!==i)}function Gs(r){var i=Yk(r);if(i)return i;if(r.flags&134217728&&Zc){var t=Zc[A(r)];if(t)return t}var o=xc,s=yn(r);if(xc!==o){var u=Zc||(Zc=[]);u[A(r)]=s,e.setNodeFlags(r,r.flags|134217728)}return s}function Yk(r){var i=e.skipParentheses(r,!0);if(e.isJSDocTypeAssertion(i)){var t=e.getJSDocTypeAssertionType(i);if(!e.isConstTypeReference(t))return Va(t)}if(i=e.skipParentheses(r),e.isCallExpression(i)&&i.expression.kind!==106&&!e.isRequireCall(i,!0)&&!Dk(i)){var t=e.isCallChain(i)?AO(i):Qk(gm(i.expression));if(t)return t}else{if(e.isAssertionExpression(i)&&!e.isConstTypeReference(i.type))return Va(i.type);if(r.kind===8||r.kind===10||r.kind===110||r.kind===95)return yn(r)}}function Oy(r){var i=va(r);if(i.contextFreeType)return i.contextFreeType;var t=r.contextualType;r.contextualType=Oe;try{var o=i.contextFreeType=yn(r,4);return o}finally{r.contextualType=t}}function yn(r,i,t){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkExpression\",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var o=Ie;Ie=r,Ee=0;var s=IO(r,i,t),u=Hk(r,s,i);return uS(u)&&NO(r,u),Ie=o,e.tracing===null||e.tracing===void 0||e.tracing.pop(),u}function NO(r,i){var t=r.parent.kind===206&&r.parent.expression===r||r.parent.kind===207&&r.parent.expression===r||(r.kind===79||r.kind===161)&&W0(r)||r.parent.kind===181&&r.parent.exprName===r||r.parent.kind===275;if(t||Xr(r,e.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query),ye.isolatedModules){e.Debug.assert(!!(i.symbol.flags&128));var o=i.symbol.valueDeclaration;o.flags&16777216&&Xr(r,e.Diagnostics.Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided)}}function PO(r,i){if(e.hasJSDocNodes(r)&&e.isJSDocTypeAssertion(r)){var t=e.getJSDocTypeAssertionType(r);return Ck(t,t,r.expression,i)}return yn(r.expression,i)}function IO(r,i,t){var o=r.kind;if(g)switch(o){case 226:case 213:case 214:g.throwIfCancellationRequested()}switch(o){case 79:return R8(r,i);case 80:return K5(r);case 108:return yy(r);case 106:return Sb(r);case 104:return ct;case 14:case 10:return Sg(Bu(r.text));case 8:return KS(r),Sg(If(+r.text));case 9:return SL(r),Sg(ED({negative:!1,base10Value:e.parsePseudoBigInt(r.text)}));case 110:return Dt;case 95:return xt;case 223:return DO(r);case 13:return Wa;case 204:return PC(r,i,t);case 205:return C5(r,i);case 206:return VC(r,i);case 161:return KC(r,i);case 207:return c7(r,i);case 208:if(r.expression.kind===100)return R7(r);case 209:return L7(r,i);case 210:return B7(r);case 212:return PO(r,i);case 226:return uM(r);case 213:case 214:return Jk(r,i);case 216:return tO(r);case 211:case 229:return J7(r);case 230:return U7(r);case 228:return kk(r);case 231:return z7(r);case 215:return rO(r);case 217:return aO(r);case 218:return oO(r);case 219:return sO(r);case 220:return cO(r);case 221:return Ir(r,i);case 222:return hO(r,i);case 225:return b5(r,i);case 227:return vi;case 224:return yO(r);case 232:return S5(r);case 288:return J5(r,i);case 278:return P5(r,i);case 279:return A5(r,i);case 282:return I5(r);case 286:return O5(r,i);case 280:e.Debug.fail(\"Shouldn't ever directly check a JsxOpeningElement\")}return Pe}function $k(r){sA(r),r.expression&&Hs(r.expression,e.Diagnostics.Type_expected),io(r.constraint),io(r.default);var i=Js(Et(r));uc(i),X1(i)||Xr(r.default,e.Diagnostics.Type_parameter_0_has_a_circular_default,Ot(i));var t=Tc(i),o=D_(i);t&&o&&zc(o,Rc(un(t,Yd(i,o)),o),r.default,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1),xm(r),fe(function(){return Tm(r.name,e.Diagnostics.Type_parameter_name_cannot_be_0)})}function wO(r){if(e.isInterfaceDeclaration(r.parent)||e.isClassLike(r.parent)||e.isTypeAliasDeclaration(r.parent)){var i=Js(Et(r)),t=WD(i);if(t){var o=Et(r.parent);if(e.isTypeAliasDeclaration(r.parent)&&!(e.getObjectFlags(go(o))&48))Xr(r,e.Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);else if(t===32768||t===65536){var s=ly(o,i,t===65536?Da:Rn),u=ly(o,i,t===65536?Rn:Da),h=i;_e=i,zc(s,u,r,e.Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation),_e=h}}}}function Zk(r){Ff(r),L0(r);var i=e.getContainingFunction(r);e.hasSyntacticModifier(r,16476)&&(i.kind===171&&e.nodeIsPresent(i.body)||Xr(r,e.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation),i.kind===171&&e.isIdentifier(r.name)&&r.name.escapedText===\"constructor\"&&Xr(r.name,e.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name)),r.questionToken&&e.isBindingPattern(r.name)&&i.body&&Xr(r,e.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),r.name&&e.isIdentifier(r.name)&&(r.name.escapedText===\"this\"||r.name.escapedText===\"new\")&&(i.parameters.indexOf(r)!==0&&Xr(r,e.Diagnostics.A_0_parameter_must_be_the_first_parameter,r.name.escapedText),(i.kind===171||i.kind===175||i.kind===180)&&Xr(r,e.Diagnostics.A_constructor_cannot_have_a_this_parameter),i.kind===214&&Xr(r,e.Diagnostics.An_arrow_function_cannot_have_a_this_parameter),(i.kind===172||i.kind===173)&&Xr(r,e.Diagnostics.get_and_set_accessors_cannot_declare_this_parameters)),r.dotDotDotToken&&!e.isBindingPattern(r.name)&&!ao(bu(Jt(r.symbol)),Go)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_of_an_array_type)}function OO(r){var i=FO(r);if(!i){Xr(r,e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return}var t=yl(i),o=Yc(t);if(!!o){io(r.type);var s=r.parameterName;if(o.kind===0||o.kind===2)Ch(s);else if(o.parameterIndex>=0){if(H(t)&&o.parameterIndex===t.parameters.length-1)Xr(s,e.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);else if(o.type){var u=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type)};zc(o.type,Jt(t.parameters[o.parameterIndex]),r.type,void 0,u)}}else if(s){for(var h=!1,z=0,me=i.parameters;z0&&i.declarations[0]!==r)return}var t=tx(Et(r));if(t!=null&&t.declarations){for(var o=new e.Map,s=function(me){me.parameters.length===1&&me.parameters[0].type&&Od(Va(me.parameters[0].type),function(Me){var $e=o.get(fu(Me));$e?$e.declarations.push(me):o.set(fu(Me),{type:Me,declarations:[me]})})},u=0,h=t.declarations;u1)for(var Me=0,$e=me.declarations;Me<$e.length;Me++){var tr=$e[Me];Xr(tr,e.Diagnostics.Duplicate_index_signature_for_type_0,Ot(me.type))}})}}function i6(r){!Ff(r)&&!vL(r)&&Q0(r.name),L0(r),gS(r),e.hasSyntacticModifier(r,128)&&r.kind===167&&r.initializer&&Xr(r,e.Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract,e.declarationNameToString(r.name))}function RO(r){return e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),i6(r)}function BO(r){dA(r)||Q0(r.name),f6(r),e.hasSyntacticModifier(r,128)&&r.kind===169&&r.body&&Xr(r,e.Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,e.declarationNameToString(r.name)),e.isPrivateIdentifier(r.name)&&!e.getContainingClass(r)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),gS(r)}function gS(r){if(e.isPrivateIdentifier(r.name)&&Ae<99){for(var i=e.getEnclosingBlockScopeContainer(r);i;i=e.getEnclosingBlockScopeContainer(i))va(i).flags|=67108864;if(e.isClassExpression(r.parent)){var t=hb(r.parent);t&&(va(r.name).flags|=524288,va(t).flags|=65536)}}}function JO(r){Ff(r),e.forEachChild(r,io)}function jO(r){Dv(r),gL(r)||mL(r),io(r.body);var i=Et(r),t=e.getDeclarationOfKind(i,r.kind);if(r===t&&O0(i),e.nodeIsMissing(r.body))return;fe(s);return;function o(u){return e.isPrivateIdentifierClassElementDeclaration(u)?!0:u.kind===167&&!e.isStatic(u)&&!!u.initializer}function s(){var u=r.parent;if(e.getClassExtendsHeritageElement(u)){Db(r.parent,u);var h=yC(u),z=vC(r.body);if(z){h&&Xr(z,e.Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null);var me=(e.getEmitScriptTarget(ye)!==99||!ir)&&(e.some(r.parent.members,o)||e.some(r.parameters,function(Dr){return e.hasSyntacticModifier(Dr,16476)}));if(me)if(!UO(z,r.body))Xr(z,e.Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers);else{for(var Me=void 0,$e=0,tr=r.body.statements;$e1){var t=Aa(i);if(!t.typeParametersChecked){t.typeParametersChecked=!0;var o=Js(i),s=e.getDeclarationsOfKind(i,163);if(!F6(s,[o],function(Me){return[Me]}))for(var u=tn(i),h=0,z=s;h0}function yS(r){var i;if(r.flags&16777216){var t=oD(!1);return!!t&&r.aliasSymbol===t&&((i=r.aliasTypeArguments)===null||i===void 0?void 0:i.length)===1}return!1}function Ev(r){return r.flags&1048576?Ss(r,Ev):yS(r)?r.aliasTypeArguments[0]:r}function sF(r){if(ta(r)||yS(r))return r;if(Ad(r)){var i=uc(r);if(!i||i.flags&3||Of(i)||s6(i)){var t=oD(!0);if(t)return am(t,[Ev(r)])}}return e.Debug.assert(Tv(r)===void 0,\"type provided should not be a non-generic 'promise'-like.\"),r}function ag(r,i,t,o){var s=k_(r,i,t,o);return s&&sF(s)}function k_(r,i,t,o){if(ta(r)||yS(r))return r;var s=r;if(s.awaitedTypeOfType)return s.awaitedTypeOfType;if(r.flags&1048576){var u=i?function(me){return k_(me,i,t,o)}:k_;return s.awaitedTypeOfType=Ss(r,u)}var h=Tv(r);if(h){if(r.id===h.id||qa.lastIndexOf(h.id)>=0){i&&Xr(i,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);return}qa.push(r.id);var z=k_(h,i,t,o);return qa.pop(),z?s.awaitedTypeOfType=z:void 0}if(s6(r)){i&&(e.Debug.assertIsDefined(t),Xr(i,t,o));return}return s.awaitedTypeOfType=r}function cF(r,i){var t=Va(i);if(Ae>=2){if(nn(t))return;var o=ay(!0);if(o!==kn&&!Xf(t,o)){Xr(i,e.Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0,Ot(k_(t)||Fi));return}}else{if(lF(i),nn(t))return;var s=e.getEntityNameFromTypeNode(i);if(s===void 0){Xr(i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,Ot(t));return}var u=Ds(s,111551,!0),h=u?Jt(u):Pe;if(nn(h)){s.kind===79&&s.escapedText===\"Promise\"&&bd(t)===ay(!1)?Xr(i,e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option):Xr(i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(s));return}var z=E3(!0);if(z===Ba){Xr(i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(s));return}if(!zc(h,z,i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value))return;var me=s&&e.getFirstIdentifier(s),Me=qs(r.locals,me.escapedText,111551);if(Me){Xr(Me.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(me),e.entityNameToString(s));return}}xv(t,!1,r,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}function uF(r){var i=Mg(r);x0(i,r);var t=yo(i);if(!(t.flags&1)){var o,s;switch(r.parent.kind){case 257:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var u=Et(r.parent),h=Jt(u);s=Pa([h,Fi]);break;case 167:case 164:o=e.Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any,s=Fi;break;case 169:case 172:case 173:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var z=Bd(r.parent),me=Px(z);s=Pa([me,Fi]);break;default:return e.Debug.fail()}zc(t,s,r,o)}}function lF(r){c6(r&&e.getEntityNameFromTypeNode(r),!1)}function c6(r,i){if(!!r){var t=e.getFirstIdentifier(r),o=(r.kind===79?788968:1920)|2097152,s=es(t,t.escapedText,o,void 0,void 0,!0);if(s&&s.flags&2097152){if(gc(s)&&!Av(Ps(s))&&!vu(s))As(s);else if(i&&ye.isolatedModules&&e.getEmitModuleKind(ye)>=e.ModuleKind.ES2015&&!gc(s)&&!e.some(s.declarations,e.isTypeOnlyImportOrExportDeclaration)){var u=Xr(r,e.Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled),h=e.find(s.declarations||e.emptyArray,yf);h&&e.addRelatedInfo(u,e.createDiagnosticForNode(h,e.Diagnostics._0_was_imported_here,e.idText(t)))}}}}function bm(r){var i=hS(r);i&&e.isEntityName(i)&&c6(i,!0)}function hS(r){if(r)switch(r.kind){case 188:case 187:return u6(r.types);case 189:return u6([r.trueType,r.falseType]);case 191:case 197:return hS(r.type);case 178:return r.typeName}}function u6(r){for(var i,t=0,o=r;t0),t.length>1&&Xr(t[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var o=l6(r.class.expression),s=e.getClassExtendsHeritageElement(i);if(s){var u=l6(s.expression);u&&o.escapedText!==u.escapedText&&Xr(o,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(r.tagName),e.idText(o),e.idText(u))}}function DF(r){var i=e.getJSDocHost(r);i&&e.isPrivateIdentifierClassElementDeclaration(i)&&Xr(r,e.Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier)}function l6(r){switch(r.kind){case 79:return r;case 206:return r.name;default:return}}function f6(r){var i;Fy(r),Dv(r);var t=e.getFunctionFlags(r);if(r.name&&r.name.kind===162&&t_(r.name),Td(r)){var o=Et(r),s=r.localSymbol||o,u=(i=s.declarations)===null||i===void 0?void 0:i.find(function(Me){return Me.kind===r.kind&&!(Me.flags&262144)});r===u&&O0(s),o.parent&&O0(o)}var h=r.kind===168?void 0:r.body;if(io(h),sS(r,yg(r)),fe(me),e.isInJSFile(r)){var z=e.getJSDocTypeTag(r);z&&z.typeExpression&&!Nb(Va(z.typeExpression),r)&&Xr(z.typeExpression.type,e.Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature)}function me(){e.getEffectiveReturnTypeNode(r)||(e.nodeIsMissing(h)&&!I0(r)&&Xp(r,Oe),t&1&&e.nodeIsPresent(h)&&yo(yl(r)))}}function A_(r){fe(i);function i(){var t=e.getSourceFileOfNode(r),o=Fo.get(t.path);o||(o=[],Fo.set(t.path,o)),o.push(r)}}function _6(r,i){for(var t=0,o=r;t=2||!e.hasRestParameter(r)||r.flags&16777216||e.nodeIsMissing(r.body)||e.forEach(r.parameters,function(i){i.name&&!e.isBindingPattern(i.name)&&i.name.escapedText===or.escapedName&&Es(\"noEmit\",i,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)})}function Cv(r,i,t){if((i==null?void 0:i.escapedText)!==t||r.kind===167||r.kind===166||r.kind===169||r.kind===168||r.kind===172||r.kind===173||r.kind===296||r.flags&16777216||(e.isImportClause(r)||e.isImportEqualsDeclaration(r)||e.isImportSpecifier(r))&&e.isTypeOnlyImportOrExportDeclaration(r))return!1;var o=e.getRootDeclaration(r);return!(e.isParameter(o)&&e.nodeIsMissing(o.parent.body))}function CF(r){e.findAncestor(r,function(i){if(Ug(i)&4){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0}return!1})}function kF(r){e.findAncestor(r,function(i){if(Ug(i)&8){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0}return!1})}function AF(r,i){if(!(er>=e.ModuleKind.ES2015&&!(er>=e.ModuleKind.Node16&&e.getSourceFileOfNode(r).impliedNodeFormat===e.ModuleKind.CommonJS))&&!(!i||!Cv(r,i,\"require\")&&!Cv(r,i,\"exports\"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&Es(\"noEmit\",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(i),e.declarationNameToString(i))}}function NF(r,i){if(!(!i||Ae>=4||!Cv(r,i,\"Promise\"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&t.flags&2048&&Es(\"noEmit\",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(i),e.declarationNameToString(i))}}function PF(r,i){Ae<=8&&(Cv(r,i,\"WeakMap\")||Cv(r,i,\"WeakSet\"))&&bn.push(r)}function IF(r){var i=e.getEnclosingBlockScopeContainer(r);Ug(i)&67108864&&(e.Debug.assert(e.isNamedDeclaration(r)&&e.isIdentifier(r.name)&&typeof r.name.escapedText==\"string\",\"The target of a WeakMap/WeakSet collision check should be an identifier\"),Es(\"noEmit\",r,e.Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel,r.name.escapedText))}function wF(r,i){i&&Ae>=2&&Ae<=8&&Cv(r,i,\"Reflect\")&&_a.push(r)}function OF(r){var i=!1;if(e.isClassExpression(r))for(var t=0,o=r.members;t1&&e.some(Dr.declarations,function($i){return $i!==r&&e.isVariableLike($i)&&!y6($i,r)})&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}else{var Ci=kv(sc(r));!nn(Qr)&&!nn(Ci)&&!wf(Qr,Ci)&&!(Dr.flags&67108864)&&v6(Dr.valueDeclaration,Qr,r,Ci),r.initializer&&op(Os(r.initializer),Ci,r,r.initializer,void 0),Dr.valueDeclaration&&!y6(r,Dr.valueDeclaration)&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}r.kind!==167&&r.kind!==166&&(bv(r),(r.kind===254||r.kind===203)&&FF(r),Sm(r,r.name))}}function v6(r,i,t,o){var s=e.getNameOfDeclaration(t),u=t.kind===167||t.kind===166?e.Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:e.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2,h=e.declarationNameToString(s),z=Xr(s,u,h,Ot(i),Ot(o));r&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,e.Diagnostics._0_was_also_declared_here,h))}function y6(r,i){if(r.kind===164&&i.kind===254||r.kind===254&&i.kind===164)return!0;if(e.hasQuestionToken(r)!==e.hasQuestionToken(i))return!1;var t=504;return e.getSelectedEffectiveModifierFlags(r,t)===e.getSelectedEffectiveModifierFlags(i,t)}function SS(r){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkVariableDeclaration\",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath}),fL(r),L0(r),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function MF(r){return cL(r),L0(r)}function LF(r){!Ff(r)&&!VS(r.declarationList)&&_L(r),e.forEach(r.declarationList.declarations,io)}function RF(r){Mf(r),yn(r.expression)}function BF(r){Mf(r),Bg(r.expression),TS(r.expression,r.thenStatement),io(r.thenStatement),r.thenStatement.kind===236&&Xr(r.thenStatement,e.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement),io(r.elseStatement)}function TS(r,i){if(!Ye)return;for(t(r,i);e.isBinaryExpression(r)&&r.operatorToken.kind===56;)r=r.left,t(r,i);function t(o,s){var u=e.isBinaryExpression(o)&&(o.operatorToken.kind===56||o.operatorToken.kind===55)?o.right:o;if(!e.isModuleExportsAccessExpression(u)){var h=Bg(u),z=e.isPropertyAccessExpression(u)&&Vk(u.expression);if(!(ju(h)||z)){var me=ot(h,0),Me=!!Sv(h);if(!(me.length===0&&!Me)){var $e=e.isIdentifier(u)?u:e.isPropertyAccessExpression(u)?u.name:e.isBinaryExpression(u)&&e.isIdentifier(u.right)?u.right:void 0,tr=$e&&el($e);if(!(!tr&&!Me)){var dr=tr&&e.isBinaryExpression(o.parent)&&jF(o.parent,tr)||tr&&s&&JF(o,s,$e,tr);dr||(Me?zu(u,!0,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined,q_(h)):Xr(u,e.Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead))}}}}}}function JF(r,i,t,o){return!!e.forEachChild(i,function s(u){if(e.isIdentifier(u)){var h=el(u);if(h&&h===o){if(e.isIdentifier(r)||e.isIdentifier(t)&&e.isBinaryExpression(t.parent))return!0;for(var z=t.parent,me=u.parent;z&&me;){if(e.isIdentifier(z)&&e.isIdentifier(me)||z.kind===108&&me.kind===108)return el(z)===el(me);if(e.isPropertyAccessExpression(z)&&e.isPropertyAccessExpression(me)){if(el(z.name)!==el(me.name))return!1;me=me.expression,z=z.expression}else if(e.isCallExpression(z)&&e.isCallExpression(me))me=me.expression,z=z.expression;else return!1}}}return e.forEachChild(u,s)})}function jF(r,i){for(;e.isBinaryExpression(r)&&r.operatorToken.kind===55;){var t=e.forEachChild(r.right,function o(s){if(e.isIdentifier(s)){var u=el(s);if(u&&u===i)return!0}return e.forEachChild(s,o)});if(t)return!0;r=r.parent}return!1}function UF(r){Mf(r),io(r.statement),Bg(r.expression)}function zF(r){Mf(r),Bg(r.expression),io(r.statement)}function h6(r,i){return r.flags&16384&&Xr(i,e.Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness),r}function Bg(r,i){return h6(yn(r,i),r)}function WF(r){Mf(r)||r.initializer&&r.initializer.kind===255&&VS(r.initializer),r.initializer&&(r.initializer.kind===255?e.forEach(r.initializer.declarations,SS):yn(r.initializer)),r.condition&&Bg(r.condition),r.incrementor&&yn(r.incrementor),io(r.statement),r.locals&&A_(r)}function qF(r){pA(r);var i=e.getContainingFunctionOrClassStaticBlock(r);if(r.awaitModifier)if(i&&e.isClassStaticBlockDeclaration(i))Tt(r.awaitModifier,e.Diagnostics.For_await_loops_cannot_be_used_inside_a_class_static_block);else{var t=e.getFunctionFlags(i);(t&6)===2&&Ae<99&&fc(r,16384)}else ye.downlevelIteration&&Ae<2&&fc(r,256);if(r.initializer.kind===255)D6(r);else{var o=r.initializer,s=By(r);if(o.kind===204||o.kind===205)Rd(o,s||Pe);else{var u=yn(o);hv(o,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access),s&&op(s,u,o,r.expression)}}io(r.statement),r.locals&&A_(r)}function VF(r){pA(r);var i=jb(yn(r.expression));if(r.initializer.kind===255){var t=r.initializer.declarations[0];t&&e.isBindingPattern(t.name)&&Xr(t.name,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern),D6(r)}else{var o=r.initializer,s=yn(o);o.kind===204||o.kind===205?Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern):ao(lI(i),s)?hv(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access):Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any)}(i===ui||!Ns(i,126091264))&&Xr(r.expression,e.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0,Ot(i)),io(r.statement),r.locals&&A_(r)}function D6(r){var i=r.initializer;if(i.declarations.length>=1){var t=i.declarations[0];SS(t)}}function By(r){var i=r.awaitModifier?15:13;return N_(i,gm(r.expression),Tr,r.expression)}function N_(r,i,t,o){return ta(i)?i:xS(r,i,t,o,!0)||Oe}function xS(r,i,t,o,s){var u=(r&2)!==0;if(i===ui){AS(o,i,u);return}var h=Ae>=2,z=!h&&ye.downlevelIteration,me=ye.noUncheckedIndexedAccess&&!!(r&128);if(h||z||u){var Me=Jy(i,r,h?o:void 0);if(s&&Me){var $e=r&8?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:r&32?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:r&64?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:r&16?e.Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:void 0;$e&&zc(t,Me.nextType,o,$e)}if(Me||h)return me?fv(Me&&Me.yieldType):Me&&Me.yieldType}var tr=i,dr=!1,Dr=!1;if(r&4){if(tr.flags&1048576){var Qr=i.types,li=e.filter(Qr,function(Ra){return!(Ra.flags&402653316)});li!==Qr&&(tr=Pa(li,2))}else tr.flags&402653316&&(tr=ui);if(Dr=tr!==i,Dr&&(Ae<1&&o&&(Xr(o,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),dr=!0),tr.flags&131072))return me?fv(Li):Li}if(!sp(tr)){if(o&&!dr){var Ti=!!(r&4)&&!Dr,Ci=Nt(Ti,z),$i=Ci[0],Zi=Ci[1];zu(o,Zi&&!!Sv(tr),$i,Ot(tr))}return Dr?me?fv(Li):Li:void 0}var qt=cs(tr,nt);if(Dr&&qt)return qt.flags&402653316&&!ye.noUncheckedIndexedAccess?Li:Pa(me?[qt,Li,Tr]:[qt,Li],2);return r&128?fv(qt):qt;function Nt(Ra,ca){var Sn;if(ca)return Ra?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:[e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0];var ja=b6(r,0,i,void 0);return ja?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!1]:KF((Sn=i.symbol)===null||Sn===void 0?void 0:Sn.escapedName)?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!0]:Ra?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type,!0]:[e.Diagnostics.Type_0_is_not_an_array_type,!0]}}function KF(r){switch(r){case\"Float32Array\":case\"Float64Array\":case\"Int16Array\":case\"Int32Array\":case\"Int8Array\":case\"NodeList\":case\"Uint16Array\":case\"Uint32Array\":case\"Uint8Array\":case\"Uint8ClampedArray\":return!0}return!1}function b6(r,i,t,o){if(!ta(t)){var s=Jy(t,r,o);return s&&s[j(i)]}}function a_(r,i,t){if(r===void 0&&(r=ui),i===void 0&&(i=ui),t===void 0&&(t=gr),r.flags&67359327&&i.flags&180227&&t.flags&180227){var o=Su([r,i,t]),s=Oo.get(o);return s||(s={yieldType:r,returnType:i,nextType:t},Oo.set(o,s)),s}return{yieldType:r,returnType:i,nextType:t}}function S6(r){for(var i,t,o,s=0,u=r;s1)for(var dr=0,Dr=o;dr=1&&r.escapedText===\"Object\"&&(ero)return!1;for(var $e=0;$e=o&&z.pos<=s){var me=e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(me.expression,me),e.setParent(me,z),me.flowNode=z.returnFlowNode;var Me=up(me,i,i_(i));if(!(ju(Me)&32768))return!0}}return!1}function j6(r,i,t){var o=e.isComputedPropertyName(r)?e.factory.createElementAccessExpression(e.factory.createThis(),r.expression):e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(o.expression,o),e.setParent(o,t),o.flowNode=t.returnFlowNode;var s=up(o,i,i_(i));return!(ju(s)&32768)}function bM(r){Ff(r)||Z9(r),jy(r.typeParameters),fe(function(){Tm(r.name,e.Diagnostics.Interface_name_cannot_be_0),bv(r);var i=Et(r);O6(i);var t=e.getDeclarationOfKind(i,258);if(r===t){var o=go(i),s=Rc(o);if(yM(o,r.name)){for(var u=0,h=Qc(o);u>tr;case 49:return $e>>>tr;case 47:return $e<1){var o=e.isEnumConst(r);e.forEach(i.declarations,function(u){e.isEnumDeclaration(u)&&e.isEnumConst(u)!==o&&Xr(e.getNameOfDeclaration(u),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)})}var s=!1;e.forEach(i.declarations,function(u){if(u.kind!==260)return!1;var h=u;if(!h.members.length)return!1;var z=h.members[0];z.initializer||(s?Xr(z.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):s=!0)})}}function kM(r){e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier)}function AM(r){var i=r.declarations;if(i)for(var t=0,o=i;t1&&V(r,e.shouldPreserveConstEnums(ye))){var z=AM(h);z&&(e.getSourceFileOfNode(r)!==e.getSourceFileOfNode(z)?Xr(r.name,e.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):r.pos=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat===void 0&&!r.isTypeOnly&&!(r.flags&16777216)&&Tt(r,e.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead)}function FM(r){if(!Uy(r,e.isInJSFile(r)?e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)){if(!Ff(r)&&e.hasSyntacticModifiers(r)&&Hs(r,e.Diagnostics.An_export_declaration_cannot_have_modifiers),r.moduleSpecifier&&r.exportClause&&e.isNamedExports(r.exportClause)&&e.length(r.exportClause.elements)&&Ae===0&&fc(r,4194304),MM(r),!r.moduleSpecifier||wS(r))if(r.exportClause&&!e.isNamespaceExport(r.exportClause)){e.forEach(r.exportClause.elements,UM);var i=r.parent.kind===262&&e.isAmbientModule(r.parent.parent),t=!i&&r.parent.kind===262&&!r.moduleSpecifier&&r.flags&16777216;r.parent.kind!==305&&!i&&!t&&Xr(r,e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace)}else{var o=ac(r,r.moduleSpecifier);o&&ll(o)?Xr(r.moduleSpecifier,e.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,tn(o)):r.exportClause&&j0(r.exportClause),er!==e.ModuleKind.System&&(er=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat!==e.ModuleKind.CommonJS?Tt(r,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):er===e.ModuleKind.System&&Tt(r,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}}function WM(r){return e.forEachEntry(r.exports,function(i,t){return t!==\"export=\"})}function V6(r){var i=Et(r),t=Aa(i);if(!t.exportsChecked){var o=i.exports.get(\"export=\");if(o&&WM(i)){var s=ru(o)||o.valueDeclaration;s&&!Xu(s)&&!e.isInJSFile(s)&&Xr(s,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}var u=Pu(i);u&&u.forEach(function(h,z){var me=h.declarations,Me=h.flags;if(z!==\"__export\"&&!(Me&1920)){var $e=e.countWhere(me,e.and(O,e.not(e.isInterfaceDeclaration)));if(!(Me&524288&&$e<=2)&&$e>1&&!z0(me))for(var tr=0,dr=me;tr1&&r.every(function(i){return e.isInJSFile(i)&&e.isAccessExpression(i)&&(e.isExportsIdentifier(i.expression)||e.isModuleExportsAccessExpression(i.expression))})}function io(r){if(r){var i=Ie;Ie=r,Ee=0,qM(r),Ie=i}}function qM(r){e.isInJSFile(r)&&e.forEach(r.jsDoc,function(t){var o=t.tags;return e.forEach(o,io)});var i=r.kind;if(g)switch(i){case 261:case 257:case 258:case 256:g.throwIfCancellationRequested()}switch(i>=237&&i<=253&&r.flowNode&&!my(r.flowNode)&&Ic(ye.allowUnreachableCode===!1,r,e.Diagnostics.Unreachable_code_detected),i){case 163:return $k(r);case 164:return Zk(r);case 167:return i6(r);case 166:return RO(r);case 180:case 179:case 174:case 175:case 176:return Dv(r);case 169:case 168:return BO(r);case 170:return JO(r);case 171:return jO(r);case 172:case 173:return a6(r);case 178:return vS(r);case 177:return OO(r);case 181:return qO(r);case 182:return VO(r);case 183:return KO(r);case 184:return GO(r);case 187:case 188:return HO(r);case 191:case 185:case 186:return io(r.type);case 192:return $O(r);case 193:return ZO(r);case 189:return eF(r);case 190:return rF(r);case 198:return iF(r);case 200:return tF(r);case 197:return aF(r);case 328:return hF(r);case 329:return yF(r);case 345:case 338:case 339:return _F(r);case 344:return pF(r);case 343:return dF(r);case 340:return gF(r);case 347:return mF(r);case 317:vF(r);case 315:case 314:case 312:case 313:case 322:K6(r),e.forEachChild(r,io);return;case 318:VM(r);return;case 309:return io(r.type);case 333:case 335:case 334:return DF(r);case 194:return XO(r);case 195:return QO(r);case 256:return fF(r);case 235:case 262:return M0(r);case 237:return LF(r);case 238:return RF(r);case 239:return BF(r);case 240:return UF(r);case 241:return zF(r);case 242:return WF(r);case 243:return VF(r);case 244:return qF(r);case 245:case 246:return $F(r);case 247:return ZF(r);case 248:return eM(r);case 249:return rM(r);case 250:return iM(r);case 251:return tM(r);case 252:return aM(r);case 254:return SS(r);case 203:return MF(r);case 257:return fM(r);case 258:return bM(r);case 259:return SM(r);case 260:return EM(r);case 261:return PM(r);case 266:return wM(r);case 265:return OM(r);case 272:return FM(r);case 271:return zM(r);case 236:case 253:Mf(r);return;case 276:return zO(r)}}function K6(r){e.isInJSFile(r)||Tt(r,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function VM(r){K6(r),io(r.type);var i=r.parent;if(e.isParameter(i)&&e.isJSDocFunctionType(i.parent)){e.last(i.parent.parameters)!==i&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);return}e.isJSDocTypeExpression(i)||Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var t=r.parent.parent;if(!e.isJSDocParameterTag(t)){Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);return}var o=e.getParameterSymbolFromJSDoc(t);if(!!o){var s=e.getHostSignatureFromJSDoc(t);(!s||e.last(s.parameters).symbol!==o)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list)}}function KM(r){var i=Va(r.type),t=r.parent,o=r.parent.parent;if(e.isJSDocTypeExpression(r.parent)&&e.isJSDocParameterTag(o)){var s=e.getHostSignatureFromJSDoc(o),u=e.isJSDocCallbackTag(o.parent.parent);if(s||u){var h=u?e.lastOrUndefined(o.parent.parent.typeExpression.parameters):e.lastOrUndefined(s.parameters),z=e.getParameterSymbolFromJSDoc(o);if(!h||z&&h.symbol===z&&e.isRestParameter(h))return Zs(i)}}return e.isParameter(t)&&e.isJSDocFunctionType(t.parent)?Zs(i):kc(i)}function xm(r){var i=e.getSourceFileOfNode(r),t=va(i);t.flags&1||(t.deferredNodes||(t.deferredNodes=new e.Set),t.deferredNodes.add(r))}function GM(r){var i=va(r);i.deferredNodes&&i.deferredNodes.forEach(HM)}function HM(r){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkDeferredNode\",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var i=Ie;switch(Ie=r,Ee=0,r.kind){case 208:case 209:case 210:case 165:case 280:Fg(r);break;case 213:case 214:case 169:case 168:Z7(r);break;case 172:case 173:a6(r);break;case 226:lM(r);break;case 163:wO(r);break;case 279:k5(r);break;case 278:N5(r);break}Ie=i,e.tracing===null||e.tracing===void 0||e.tracing.pop()}function XM(r){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkSourceFile\",{path:r.path},!0),e.performance.mark(\"beforeCheck\"),QM(r),e.performance.mark(\"afterCheck\"),e.performance.measure(\"Check\",\"beforeCheck\",\"afterCheck\"),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function G6(r,i){if(i)return!1;switch(r){case 0:return!!ye.noUnusedLocals;case 1:return!!ye.noUnusedParameters;default:return e.Debug.assertNever(r)}}function H6(r){return Fo.get(r.path)||e.emptyArray}function QM(r){var i=va(r);if(!(i.flags&1)){if(e.skipTypeChecking(r,ye,l))return;DL(r),e.clear(Xt),e.clear(Za),e.clear(bn),e.clear(_a),e.forEach(r.statements,io),io(r.endOfFileToken),GM(r),e.isExternalOrCommonJsModule(r)&&A_(r),fe(function(){!r.isDeclarationFile&&(ye.noUnusedLocals||ye.noUnusedParameters)&&_6(H6(r),function(t,o,s){!e.containsParseError(t)&&G6(o,!!(t.flags&16777216))&&rn.add(s)})}),ye.importsNotUsedAsValues===2&&!r.isDeclarationFile&&e.isExternalModule(r)&&jM(r),e.isExternalOrCommonJsModule(r)&&V6(r),Xt.length&&(e.forEach(Xt,CF),e.clear(Xt)),Za.length&&(e.forEach(Za,kF),e.clear(Za)),bn.length&&(e.forEach(bn,IF),e.clear(bn)),_a.length&&(e.forEach(_a,OF),e.clear(_a)),i.flags|=1}}function X6(r,i){try{return g=i,YM(r)}finally{g=void 0}}function OS(){for(var r=0,i=D;r0)return e.concatenate(s,o);return o}return e.forEach(l.getSourceFiles(),FS),rn.getDiagnostics()}function $M(){return OS(),rn.getGlobalDiagnostics()}function ZM(r,i){if(r.flags&33554432)return[];var t=e.createSymbolTable(),o=!1;return s(),t.delete(\"this\"),Y_(t);function s(){for(;r;){switch(r.locals&&!Cu(r)&&h(r.locals,i),r.kind){case 305:if(!e.isExternalModule(r))break;case 261:z(Et(r).exports,i&2623475);break;case 260:h(Et(r).exports,i&8);break;case 226:var me=r.name;me&&u(r.symbol,i);case 257:case 258:o||h(Nf(Et(r)),i&788968);break;case 213:var Me=r.name;Me&&u(r.symbol,i);break}e.introducesArgumentsExoticObject(r)&&u(or,i),o=e.isStatic(r),r=r.parent}h(ii,i)}function u(me,Me){if(e.getCombinedLocalAndExportSymbolFlags(me)&Me){var $e=me.escapedName;t.has($e)||t.set($e,me)}}function h(me,Me){Me&&me.forEach(function($e){u($e,Me)})}function z(me,Me){Me&&me.forEach(function($e){!e.getDeclarationOfKind($e,275)&&!e.getDeclarationOfKind($e,274)&&u($e,Me)})}}function e9(r){return r.kind===79&&zy(r.parent)&&e.getNameOfDeclaration(r.parent)===r}function zy(r){switch(r.kind){case 163:case 257:case 258:case 259:case 260:case 345:case 338:case 339:return!0;case 267:return r.isTypeOnly;case 270:case 275:return r.parent.parent.isTypeOnly;default:return!1}}function Q6(r){for(;r.parent.kind===161;)r=r.parent;return r.parent.kind===178}function r9(r){for(;r.parent.kind===206;)r=r.parent;return r.parent.kind===228}function Y6(r,i){for(var t;r=e.getContainingClass(r),!(!r||(t=i(r))););return t}function i9(r){return!!e.findAncestor(r,function(i){return e.isConstructorDeclaration(i)&&e.nodeIsPresent(i.body)||e.isPropertyDeclaration(i)?!0:e.isClassLike(i)||e.isFunctionLikeDeclaration(i)?\"quit\":!1})}function MS(r,i){return!!Y6(r,function(t){return t===i})}function t9(r){for(;r.parent.kind===161;)r=r.parent;if(r.parent.kind===265)return r.parent.moduleReference===r?r.parent:void 0;if(r.parent.kind===271)return r.parent.expression===r?r.parent:void 0}function W0(r){return t9(r)!==void 0}function a9(r){var i=e.getAssignmentDeclarationKind(r.parent.parent);switch(i){case 1:case 3:return Et(r.parent);case 4:case 2:case 5:return Et(r.parent.parent)}}function n9(r){for(var i=r.parent;e.isQualifiedName(i);)r=i,i=i.parent;if(i&&i.kind===200&&i.qualifier===r)return i}function $6(r){if(e.isDeclarationName(r))return Et(r.parent);if(e.isInJSFile(r)&&r.parent.kind===206&&r.parent===r.parent.parent.left&&!e.isPrivateIdentifier(r)&&!e.isJSDocMemberName(r)){var i=a9(r);if(i)return i}if(r.parent.kind===271&&e.isEntityNameExpression(r)){var t=Ds(r,2998271,!0);if(t&&t!==xe)return t}else if(e.isEntityName(r)&&W0(r)){var o=e.getAncestor(r,265);return e.Debug.assert(o!==void 0),Nl(r,!0)}if(e.isEntityName(r)){var s=n9(r);if(s){Va(s);var u=va(r).resolvedSymbol;return u===xe?void 0:u}}for(;e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(r);)r=r.parent;if(r9(r)){var h=0;r.parent.kind===228?(h=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(r.parent)&&(h|=111551)):h=1920,h|=2097152;var z=e.isEntityNameExpression(r)?Ds(r,h):void 0;if(z)return z}if(r.parent.kind===340)return e.getParameterSymbolFromJSDoc(r.parent);if(r.parent.kind===163&&r.parent.parent.kind===344){e.Debug.assert(!e.isInJSFile(r));var me=e.getTypeParameterFromJsDoc(r.parent);return me&&me.symbol}if(e.isExpressionNode(r)){if(e.nodeIsMissing(r))return;var Me=e.findAncestor(r,e.or(e.isJSDocLinkLike,e.isJSDocNameReference,e.isJSDocMemberName)),h=Me?901119:111551;if(r.kind===79){if(e.isJSXTagName(r)&&dm(r)){var $e=Fb(r.parent);return $e===xe?void 0:$e}var tr=Ds(r,h,!1,!0,e.getHostSignatureFromJSDoc(r));if(!tr&&Me){var dr=e.findAncestor(r,e.or(e.isClassLike,e.isInterfaceDeclaration));if(dr)return q0(r,Et(dr))}return tr}else{if(e.isPrivateIdentifier(r))return m0(r);if(r.kind===206||r.kind===161){var Dr=va(r);return Dr.resolvedSymbol?Dr.resolvedSymbol:(r.kind===206?VC(r,0):KC(r,0),!Dr.resolvedSymbol&&Me&&e.isQualifiedName(r)?q0(r):Dr.resolvedSymbol)}else if(e.isJSDocMemberName(r))return q0(r)}}else if(Q6(r)){var h=r.parent.kind===178?788968:1920,$e=Ds(r,h,!1,!0);return $e&&$e!==xe?$e:yh(r)}if(r.parent.kind===177)return Ds(r,1)}function q0(r,i){if(e.isEntityName(r)){var t=901119,o=Ds(r,t,!1,!0,e.getHostSignatureFromJSDoc(r));if(!o&&e.isIdentifier(r)&&i&&(o=so(qs(dc(i),r.escapedText,t))),o)return o}var s=e.isIdentifier(r)?i:q0(r.left),u=e.isIdentifier(r)?r.escapedText:r.right.escapedText;if(s){var h=s.flags&111551&&bi(Jt(s),\"prototype\"),z=h?Jt(h):go(s);return bi(z,u)}}function el(r,i){if(r.kind===305)return e.isExternalModule(r)?so(r.symbol):void 0;var t=r.parent,o=t.parent;if(!(r.flags&33554432)){if(Y(r)){var s=Et(t);return e.isImportOrExportSpecifier(r.parent)&&r.parent.propertyName===r?wb(s):s}else if(e.isLiteralComputedPropertyDeclarationName(r))return Et(t.parent);if(r.kind===79){if(W0(r))return $6(r);if(t.kind===203&&o.kind===201&&r===t.propertyName){var u=Bd(o),h=bi(u,r.escapedText);if(h)return h}else if(e.isMetaProperty(t)&&t.name===r)return t.keywordToken===103&&e.idText(r)===\"target\"?tS(t).symbol:t.keywordToken===100&&e.idText(r)===\"meta\"?Tx().members.get(\"meta\"):void 0}switch(r.kind){case 79:case 80:case 206:case 161:if(!e.isThisInTypeQuery(r))return $6(r);case 108:var z=e.getThisContainer(r,!1);if(e.isFunctionLike(z)){var me=yl(z);if(me.thisParameter)return me.thisParameter}if(e.isInExpressionContext(r))return yn(r).symbol;case 192:return Ch(r).symbol;case 106:return yn(r).symbol;case 134:var Me=r.parent;return Me&&Me.kind===171?Me.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(r.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(r.parent.parent)===r||(r.parent.kind===266||r.parent.kind===272)&&r.parent.moduleSpecifier===r||e.isInJSFile(r)&&e.isRequireCall(r.parent,!1)||e.isImportCall(r.parent)||e.isLiteralTypeNode(r.parent)&&e.isLiteralImportTypeNode(r.parent.parent)&&r.parent.parent.argument===r.parent)return ac(r,r,i);if(e.isCallExpression(t)&&e.isBindableObjectDefinePropertyCall(t)&&t.arguments[1]===r)return Et(t);case 8:var $e=e.isElementAccessExpression(t)?t.argumentExpression===r?Gs(t.expression):void 0:e.isLiteralTypeNode(t)&&e.isIndexedAccessTypeNode(o)?Va(o.objectType):void 0;return $e&&bi($e,e.escapeLeadingUnderscores(r.text));case 88:case 98:case 38:case 84:return Et(r.parent);case 200:return e.isLiteralImportTypeNode(r)?el(r.argument.literal,i):void 0;case 93:return e.isExportAssignment(r.parent)?e.Debug.checkDefined(r.parent.symbol):void 0;case 100:case 103:return e.isMetaProperty(r.parent)?Ak(r.parent).symbol:void 0;case 231:return yn(r).symbol;default:return}}}function o9(r){if(e.isIdentifier(r)&&e.isPropertyAccessExpression(r.parent)&&r.parent.name===r){var i=Z_(r),t=Gs(r.parent.expression),o=t.flags&1048576?t.types:[t];return e.flatMap(o,function(s){return e.filter(Hn(s),function(u){return an(i,u.keyType)})})}}function s9(r){if(r&&r.kind===297)return Ds(r.name,2208703)}function c9(r){return e.isExportSpecifier(r)?r.parent.parent.moduleSpecifier?kl(r.parent.parent,r):Ds(r.propertyName||r.name,2998271):Ds(r,2998271)}function Bd(r){if(e.isSourceFile(r)&&!e.isExternalModule(r)||r.flags&33554432)return Pe;var i=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(r),t=i&&aa(Et(i.class));if(e.isPartOfTypeNode(r)){var o=Va(r);return t?Rc(o,t.thisType):o}if(e.isExpressionNode(r))return Z6(r);if(t&&!i.isImplements){var s=e.firstOrUndefined(Qc(t));return s?Rc(s,t.thisType):Pe}if(zy(r)){var u=Et(r);return go(u)}if(e9(r)){var u=el(r);return u?go(u):Pe}if(e.isDeclaration(r)){var u=Et(r);return u?Jt(u):Pe}if(Y(r)){var u=el(r);return u?Jt(u):Pe}if(e.isBindingPattern(r))return G_(r.parent,!0,0)||Pe;if(W0(r)){var u=el(r);if(u){var h=go(u);return nn(h)?Jt(u):h}}return e.isMetaProperty(r.parent)&&r.parent.keywordToken===r.kind?Ak(r.parent):Pe}function V0(r){if(e.Debug.assert(r.kind===205||r.kind===204),r.parent.kind===244){var i=By(r.parent);return Rd(r,i||Pe)}if(r.parent.kind===221){var i=Gs(r.parent.right);return Rd(r,i||Pe)}if(r.parent.kind===296){var t=e.cast(r.parent.parent,e.isObjectLiteralExpression),o=V0(t)||Pe,s=e.indexOfNode(t.properties,r.parent);return Uk(t,o,s)}var u=e.cast(r.parent,e.isArrayLiteralExpression),h=V0(u)||Pe,z=N_(65,h,Tr,r.parent)||Pe;return zk(u,h,u.elements.indexOf(r),z)}function u9(r){var i=V0(e.cast(r.parent.parent,e.isAssignmentPattern));return i&&bi(i,r.escapedText)}function Z6(r){return e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),jc(Gs(r))}function l9(r){var i=Et(r.parent);return e.isStatic(r)?Jt(i):go(i)}function f9(r){var i=r.name;switch(i.kind){case 79:return Bu(e.idText(i));case 8:case 10:return Bu(i.text);case 162:var t=t_(i);return Ns(t,12288)?t:Li;default:return e.Debug.fail(\"Unsupported property name.\")}}function LS(r){r=$s(r);var i=e.createSymbolTable(uo(r)),t=ot(r,0).length?Zr:ot(r,1).length?Si:void 0;return t&&e.forEach(uo(t),function(o){i.has(o.escapedName)||i.set(o.escapedName,o)}),tf(i)}function RS(r){return e.typeHasCallOrConstructSignatures(r,Di)}function eA(r){var i=_9(r);return i?e.flatMap(i,eA):[r]}function _9(r){if(e.getCheckFlags(r)&6)return e.mapDefined(Aa(r).containingType.types,function(u){return bi(u,r.escapedName)});if(r.flags&33554432){var i=r,t=i.leftSpread,o=i.rightSpread,s=i.syntheticOrigin;return t?[t,o]:s?[s]:e.singleElementArray(p9(r))}}function p9(r){for(var i,t=r;t=Aa(t).target;)i=t;return i}function d9(r){if(e.isGeneratedIdentifier(r))return!1;var i=e.getParseTreeNode(r,e.isIdentifier);if(!i)return!1;var t=i.parent;if(!t)return!1;var o=(e.isPropertyAccessExpression(t)||e.isPropertyAssignment(t))&&t.name===i;return!o&&Nv(i)===or}function g9(r){var i=ac(r.parent,r);if(!i||e.isShorthandAmbientModuleSymbol(i))return!0;var t=ll(i);i=Us(i);var o=Aa(i);return o.exportsSomeValue===void 0&&(o.exportsSomeValue=t?!!(i.flags&111551):e.forEachEntry(Pu(i),s)),o.exportsSomeValue;function s(u){return u=os(u),u&&!!(u.flags&111551)}}function m9(r){return e.isModuleOrEnumDeclaration(r.parent)&&r===r.parent.name}function v9(r,i){var t,o=e.getParseTreeNode(r,e.isIdentifier);if(o){var s=Nv(o,m9(o));if(s){if(s.flags&1048576){var u=so(s.exportSymbol);if(!i&&u.flags&944&&!(u.flags&3))return;s=u}var h=Ys(s);if(h){if(h.flags&512&&((t=h.valueDeclaration)===null||t===void 0?void 0:t.kind)===305){var z=h.valueDeclaration,me=e.getSourceFileOfNode(o),Me=z!==me;return Me?void 0:z}return e.findAncestor(o.parent,function($e){return e.isModuleOrEnumDeclaration($e)&&Et($e)===h})}}}}function y9(r){if(r.generatedImportReference)return r.generatedImportReference;var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(Zn(t,111551)&&!vu(t))return ru(t)}}function h9(r){return r.valueDeclaration&&e.isBindingElement(r.valueDeclaration)&&e.walkUpBindingElementsAndPatterns(r.valueDeclaration).parent.kind===292}function rA(r){if(r.flags&418&&r.valueDeclaration&&!e.isSourceFile(r.valueDeclaration)){var i=Aa(r);if(i.isDeclarationWithCollidingName===void 0){var t=e.getEnclosingBlockScopeContainer(r.valueDeclaration);if(e.isStatementWithLocals(t)||h9(r)){var o=va(r.valueDeclaration);if(es(t.parent,r.escapedName,111551,void 0,void 0,!1))i.isDeclarationWithCollidingName=!0;else if(o.flags&262144){var s=o.flags&524288,u=e.isIterationStatement(t,!1),h=t.kind===235&&e.isIterationStatement(t.parent,!1);i.isDeclarationWithCollidingName=!e.isBlockScopedContainerTopLevel(t)&&(!s||!u&&!h)}else i.isDeclarationWithCollidingName=!1}}return i.isDeclarationWithCollidingName}return!1}function D9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t&&rA(t))return t.valueDeclaration}}}function b9(r){var i=e.getParseTreeNode(r,e.isDeclaration);if(i){var t=Et(i);if(t)return rA(t)}return!1}function iA(r){switch(r.kind){case 265:return K0(Et(r));case 267:case 268:case 270:case 275:var i=Et(r);return!!i&&K0(i)&&!vu(i);case 272:var t=r.exportClause;return!!t&&(e.isNamespaceExport(t)||e.some(t.elements,iA));case 271:return r.expression&&r.expression.kind===79?K0(Et(r)):!0}return!1}function S9(r){var i=e.getParseTreeNode(r,e.isImportEqualsDeclaration);if(i===void 0||i.parent.kind!==305||!e.isInternalModuleImportEqualsDeclaration(i))return!1;var t=K0(Et(i));return t&&i.moduleReference&&!e.nodeIsMissing(i.moduleReference)}function K0(r){if(!r)return!1;var i=cu(Ps(r));return i===xe?!0:!!(i.flags&111551)&&(e.shouldPreserveConstEnums(ye)||!Av(i))}function Av(r){return lS(r)||!!r.constEnumOnlyModule}function G0(r,i){if(yf(r)){var t=Et(r),o=t&&Aa(t);if(o!=null&&o.referenced)return!0;var s=Aa(t).aliasTarget;if(s&&e.getEffectiveModifierFlags(r)&1&&s.flags&111551&&(e.shouldPreserveConstEnums(ye)||!Av(s)))return!0}return i?!!e.forEachChild(r,function(u){return G0(u,i)}):!1}function tA(r){if(e.nodeIsPresent(r.body)){if(e.isGetAccessor(r)||e.isSetAccessor(r))return!1;var i=Et(r),t=S_(i);return t.length>1||t.length===1&&t[0].declaration!==r}return!1}function aA(r){return!!Ye&&!kd(r)&&!e.isJSDocParameterTag(r)&&!!r.initializer&&!e.hasSyntacticModifier(r,16476)}function T9(r){return Ye&&kd(r)&&!r.initializer&&e.hasSyntacticModifier(r,16476)}function x9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return!1;var t=Et(i);return!t||!(t.flags&16)?!1:!!e.forEachEntry(dc(t),function(o){return o.flags&111551&&o.valueDeclaration&&e.isPropertyAccessExpression(o.valueDeclaration)})}function E9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return e.emptyArray;var t=Et(i);return t&&uo(Jt(t))||e.emptyArray}function Ug(r){var i,t=r.id||0;return t<0||t>=du.length?0:((i=du[t])===null||i===void 0?void 0:i.flags)||0}function H0(r){return U6(r.parent),va(r).enumMemberValue}function nA(r){switch(r.kind){case 299:case 206:case 207:return!0}return!1}function BS(r){if(r.kind===299)return H0(r);var i=va(r).resolvedSymbol;if(i&&i.flags&8){var t=i.valueDeclaration;if(e.isEnumConst(t.parent))return H0(t)}}function JS(r){return!!(r.flags&524288)&&ot(r,0).length>0}function C9(r,i){var t,o,s=e.getParseTreeNode(r,e.isEntityName);if(!s||i&&(i=e.getParseTreeNode(i),!i))return e.TypeReferenceSerializationKind.Unknown;var u=!1;if(e.isQualifiedName(s)){var h=Ds(e.getFirstIdentifier(s),111551,!0,!0,i);u=!!(!((t=h==null?void 0:h.declarations)===null||t===void 0)&&t.every(e.isTypeOnlyImportOrExportDeclaration))}var z=Ds(s,111551,!0,!0,i),me=z&&z.flags&2097152?Ps(z):z;u||(u=!!(!((o=z==null?void 0:z.declarations)===null||o===void 0)&&o.every(e.isTypeOnlyImportOrExportDeclaration)));var Me=Ds(s,788968,!0,!1,i);if(me&&me===Me){var $e=nD(!1);if($e&&me===$e)return e.TypeReferenceSerializationKind.Promise;var tr=Jt(me);if(tr&&qd(tr))return u?e.TypeReferenceSerializationKind.TypeWithCallSignature:e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!Me)return u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown;var dr=go(Me);return nn(dr)?u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown:dr.flags&3?e.TypeReferenceSerializationKind.ObjectType:Ns(dr,245760)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:Ns(dr,528)?e.TypeReferenceSerializationKind.BooleanType:Ns(dr,296)?e.TypeReferenceSerializationKind.NumberLikeType:Ns(dr,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:Ns(dr,402653316)?e.TypeReferenceSerializationKind.StringLikeType:Yn(dr)?e.TypeReferenceSerializationKind.ArrayLikeType:Ns(dr,12288)?e.TypeReferenceSerializationKind.ESSymbolType:JS(dr)?e.TypeReferenceSerializationKind.TypeWithCallSignature:Tu(dr)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function k9(r,i,t,o,s){var u=e.getParseTreeNode(r,e.isVariableLikeOrAccessor);if(!u)return e.factory.createToken(130);var h=Et(u),z=h&&!(h.flags&133120)?Hp(Jt(h)):Pe;return z.flags&8192&&z.symbol===h&&(t|=1048576),s&&(z=i_(z)),Ur.typeToTypeNode(z,i,t|1024,o)}function A9(r,i,t,o){var s=e.getParseTreeNode(r,e.isFunctionLike);if(!s)return e.factory.createToken(130);var u=yl(s);return Ur.typeToTypeNode(yo(u),i,t|1024,o)}function N9(r,i,t,o){var s=e.getParseTreeNode(r,e.isExpression);if(!s)return e.factory.createToken(130);var u=$c(Z6(s));return Ur.typeToTypeNode(u,i,t|1024,o)}function P9(r){return ii.has(e.escapeLeadingUnderscores(r))}function Nv(r,i){var t=va(r).resolvedSymbol;if(t)return t;var o=r;if(i){var s=r.parent;e.isDeclaration(s)&&r===s.name&&(o=zi(s))}return es(o,r.escapedText,3257279,void 0,void 0,!0)}function I9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t)return cu(t).valueDeclaration}}}function w9(r){return e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r)?Kp(Jt(Et(r))):!1}function O9(r,i,t){var o=r.flags&1024?Ur.symbolToExpression(r.symbol,111551,i,void 0,t):r===Dt?e.factory.createTrue():r===xt&&e.factory.createFalse();if(o)return o;var s=r.value;return typeof s==\"object\"?e.factory.createBigIntLiteral(s):typeof s==\"number\"?e.factory.createNumericLiteral(s):e.factory.createStringLiteral(s)}function F9(r,i){var t=Jt(Et(r));return O9(t,r,i)}function oA(r){return r?(po(r),e.getSourceFileOfNode(r).localJsxFactory||Se):Se}function jS(r){if(r){var i=e.getSourceFileOfNode(r);if(i){if(i.localJsxFragmentFactory)return i.localJsxFragmentFactory;var t=i.pragmas.get(\"jsxfrag\"),o=e.isArray(t)?t[0]:t;if(o)return i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),i.localJsxFragmentFactory}}if(ye.jsxFragmentFactory)return e.parseIsolatedEntityName(ye.jsxFragmentFactory,Ae)}function M9(){var r=l.getResolvedTypeReferenceDirectives(),i;return r&&(i=new e.Map,r.forEach(function(me,Me,$e){if(!(!me||!me.resolvedFileName)){var tr=l.getSourceFile(me.resolvedFileName);tr&&z(tr,Me,$e)}})),{getReferencedExportContainer:v9,getReferencedImportDeclaration:y9,getReferencedDeclarationWithCollidingName:D9,isDeclarationWithCollidingName:b9,isValueAliasDeclaration:function(me){var Me=e.getParseTreeNode(me);return Me?iA(Me):!0},hasGlobalName:P9,isReferencedAliasDeclaration:function(me,Me){var $e=e.getParseTreeNode(me);return $e?G0($e,Me):!0},getNodeCheckFlags:function(me){var Me=e.getParseTreeNode(me);return Me?Ug(Me):0},isTopLevelValueImportEqualsWithEntityName:S9,isDeclarationVisible:wu,isImplementationOfOverload:tA,isRequiredInitializedParameter:aA,isOptionalUninitializedParameterProperty:T9,isExpandoFunctionDeclaration:x9,getPropertiesOfContainerFunction:E9,createTypeOfDeclaration:k9,createReturnTypeOfSignatureDeclaration:A9,createTypeOfExpression:N9,createLiteralConstValue:F9,isSymbolAccessible:g_,isEntityNameVisible:af,getConstantValue:function(me){var Me=e.getParseTreeNode(me,nA);return Me?BS(Me):void 0},collectLinkedAliases:V_,getReferencedValueDeclaration:I9,getTypeReferenceSerializationKind:C9,isOptionalParameter:kd,moduleExportsSomeValue:g9,isArgumentsLocalBinding:d9,getExternalModuleFileFromDeclaration:function(me){var Me=e.getParseTreeNode(me,e.hasPossibleExternalModuleReference);return Me&&US(Me)},getTypeReferenceDirectivesForEntityName:s,getTypeReferenceDirectivesForSymbol:u,isLiteralConstDeclaration:w9,isLateBound:function(me){var Me=e.getParseTreeNode(me,e.isDeclaration),$e=Me&&Et(Me);return!!($e&&e.getCheckFlags($e)&4096)},getJsxFactoryEntity:oA,getJsxFragmentFactoryEntity:jS,getAllAccessorDeclarations:function(me){me=e.getParseTreeNode(me,e.isGetOrSetAccessorDeclaration);var Me=me.kind===173?172:173,$e=e.getDeclarationOfKind(Et(me),Me),tr=$e&&$e.pos3})||Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h,4):u&1048576?e.some(S_(z),function(me){return Wc(me)>4})||Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h,5):u&1024&&(e.some(S_(z),function(me){return Wc(me)>2})||Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h,3)):Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h)}}ne|=i}}}function R9(r){switch(r){case 1:return\"__extends\";case 2:return\"__assign\";case 4:return\"__rest\";case 8:return\"__decorate\";case 16:return\"__metadata\";case 32:return\"__param\";case 64:return\"__awaiter\";case 128:return\"__generator\";case 256:return\"__values\";case 512:return\"__read\";case 1024:return\"__spreadArray\";case 2048:return\"__await\";case 4096:return\"__asyncGenerator\";case 8192:return\"__asyncDelegator\";case 16384:return\"__asyncValues\";case 32768:return\"__exportStar\";case 65536:return\"__importStar\";case 131072:return\"__importDefault\";case 262144:return\"__makeTemplateObject\";case 524288:return\"__classPrivateFieldGet\";case 1048576:return\"__classPrivateFieldSet\";case 2097152:return\"__classPrivateFieldIn\";case 4194304:return\"__createBinding\";default:return e.Debug.fail(\"Unrecognized helper\")}}function B9(r,i){return ue||(ue=Il(r,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,i)||xe),ue}function Ff(r){return J9(r)||sA(r)}function J9(r){if(!r.decorators)return!1;if(e.nodeCanBeDecorated(r,r.parent,r.parent.parent)){if(r.kind===172||r.kind===173){var i=e.getAllAccessorDeclarations(r.parent.members,r);if(i.firstAccessor.decorators&&r===i.secondAccessor)return Hs(r,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}}else return r.kind===169&&!e.nodeIsPresent(r.body)?Hs(r,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload):Hs(r,e.Diagnostics.Decorators_are_not_valid_here);return!1}function sA(r){var i=j9(r);if(i!==void 0)return i;for(var t,o,s,u,h=0,z=0,me=r.modifiers;z1||r.modifiers[0].kind!==i}function z9(r,i){switch(r.kind){case 169:case 256:case 213:case 214:return!1}return Tt(i,e.Diagnostics._0_modifier_cannot_be_used_here,\"async\")}function ng(r,i){return i===void 0&&(i=e.Diagnostics.Trailing_comma_not_allowed),r&&r.hasTrailingComma?rd(r[0],r.end-1,1,i):!1}function cA(r,i){if(r&&r.length===0){var t=r.pos-1,o=e.skipTrivia(i.text,r.end)+1;return rd(i,t,o-t,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function W9(r){for(var i=!1,t=r.length,o=0;o=3){var i=r.body&&e.isBlock(r.body)&&e.findUseStrictPrologue(r.body.statements);if(i){var t=q9(r.parameters);if(e.length(t)){e.forEach(t,function(s){e.addRelatedInfo(Xr(s,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(i,e.Diagnostics.use_strict_directive_used_here))});var o=t.map(function(s,u){return u===0?e.createDiagnosticForNode(s,e.Diagnostics.Non_simple_parameter_declared_here):e.createDiagnosticForNode(s,e.Diagnostics.and_here)});return e.addRelatedInfo.apply(void 0,Ve([Xr(i,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],o,!1)),!0}}}return!1}function X0(r){var i=e.getSourceFileOfNode(r);return Ff(r)||cA(r.typeParameters,i)||W9(r.parameters)||G9(r,i)||e.isFunctionLikeDeclaration(r)&&V9(r)}function K9(r){var i=e.getSourceFileOfNode(r);return $9(r)||cA(r.typeParameters,i)}function G9(r,i){if(!e.isArrowFunction(r))return!1;r.typeParameters&&!(e.length(r.typeParameters)>1||r.typeParameters.hasTrailingComma||r.typeParameters[0].constraint)&&i&&e.fileExtensionIsOneOf(i.fileName,[\".mts\",\".cts\"])&&Tt(r.typeParameters[0],e.Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);var t=r.equalsGreaterThanToken,o=e.getLineAndCharacterOfPosition(i,t.pos).line,s=e.getLineAndCharacterOfPosition(i,t.end).line;return o!==s&&Tt(t,e.Diagnostics.Line_terminator_not_permitted_before_arrow)}function H9(r){var i=r.parameters[0];if(r.parameters.length!==1)return Tt(i?i.name:r,e.Diagnostics.An_index_signature_must_have_exactly_one_parameter);if(ng(r.parameters,e.Diagnostics.An_index_signature_cannot_have_a_trailing_comma),i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);if(e.hasEffectiveModifiers(i))return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);if(i.initializer)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);if(!i.type)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);var t=Va(i.type);return rg(t,function(o){return!!(o.flags&8576)})||rv(t)?Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead):gf(t,vh)?r.type?!1:Tt(r,e.Diagnostics.An_index_signature_must_have_a_type_annotation):Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type)}function X9(r){return Ff(r)||H9(r)}function Q9(r,i){if(i&&i.length===0){var t=e.getSourceFileOfNode(r),o=i.pos-1,s=e.skipTrivia(t.text,i.end)+1;return rd(t,o,s-o,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}function Wy(r,i){return ng(i)||Q9(r,i)}function Y9(r){return r.questionDotToken||r.flags&32?Tt(r.template,e.Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain):!1}function uA(r){var i=r.types;if(ng(i))return!0;if(i&&i.length===0){var t=e.tokenToString(r.token);return rd(r,i.pos,0,e.Diagnostics._0_list_cannot_be_empty,t)}return e.some(i,lA)}function lA(r){return e.isExpressionWithTypeArguments(r)&&e.isImportKeyword(r.expression)&&r.typeArguments?Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments):Wy(r,r.typeArguments)}function $9(r){var i=!1,t=!1;if(!Ff(r)&&r.heritageClauses)for(var o=0,s=r.heritageClauses;o1)return Hs(u.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);i=!0}else{if(e.Debug.assert(u.token===117),t)return Hs(u,e.Diagnostics.implements_clause_already_seen);t=!0}uA(u)}}function Z9(r){var i=!1;if(r.heritageClauses)for(var t=0,o=r.heritageClauses;t=4)break;default:rn.add(e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}else if(!Jd(i)){var t=e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules),o=e.getContainingFunction(r);if(o&&o.kind!==171){e.Debug.assert((e.getFunctionFlags(o)&2)===0,\"Enclosing function should never be an async function.\");var s=e.createDiagnosticForNode(o,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(t,s)}return rn.add(t),!0}return!1}if(e.isForOfStatement(r)&&!(r.flags&32768)&&e.isIdentifier(r.initializer)&&r.initializer.escapedText===\"async\")return Tt(r.initializer,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async),!1;if(r.initializer.kind===255){var u=r.initializer;if(!VS(u)){var h=u.declarations;if(!h.length)return!1;if(h.length>1){var t=r.kind===243?e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;return Hs(u.declarations[1],t)}var z=h[0];if(z.initializer){var t=r.kind===243?e.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:e.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;return Tt(z.name,t)}if(z.type){var t=r.kind===243?e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:e.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;return Tt(z,t)}}}return!1}function aL(r){if(!(r.flags&16777216)&&r.parent.kind!==182&&r.parent.kind!==258){if(Ae<1)return Tt(r.name,e.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.body===void 0&&!e.hasSyntacticModifier(r,128))return rd(r,r.end-1,1,e.Diagnostics._0_expected,\"{\")}if(r.body){if(e.hasSyntacticModifier(r,128))return Tt(r,e.Diagnostics.An_abstract_accessor_cannot_have_an_implementation);if(r.parent.kind===182||r.parent.kind===258)return Tt(r.body,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts)}if(r.typeParameters)return Tt(r.name,e.Diagnostics.An_accessor_cannot_have_type_parameters);if(!nL(r))return Tt(r.name,r.kind===172?e.Diagnostics.A_get_accessor_cannot_have_parameters:e.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);if(r.kind===173){if(r.type)return Tt(r.name,e.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);var i=e.Debug.checkDefined(e.getSetAccessorValueParameter(r),\"Return value does not match parameter count assertion.\");if(i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.A_set_accessor_cannot_have_rest_parameter);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);if(i.initializer)return Tt(r.name,e.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}function nL(r){return qS(r)||r.parameters.length===(r.kind===172?0:1)}function qS(r){if(r.parameters.length===(r.kind===172?1:2))return e.getThisParameter(r)}function oL(r){if(r.operator===154){if(r.type.kind!==151)return Tt(r.type,e.Diagnostics._0_expected,e.tokenToString(151));var i=e.walkUpParenthesizedTypes(r.parent);if(e.isInJSFile(i)&&e.isJSDocTypeExpression(i)){var t=e.getJSDocHost(i);t&&(i=e.getSingleVariableOfVariableStatement(t)||t)}switch(i.kind){case 254:var o=i;if(o.name.kind!==79)return Tt(r,e.Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!e.isVariableDeclarationInVariableStatement(o))return Tt(r,e.Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(o.parent.flags&2))return Tt(i.name,e.Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 167:if(!e.isStatic(i)||!e.hasEffectiveReadonlyModifier(i))return Tt(i.name,e.Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 166:if(!e.hasSyntacticModifier(i,64))return Tt(i.name,e.Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:return Tt(r,e.Diagnostics.unique_symbol_types_are_not_allowed_here)}}else if(r.operator===145&&r.type.kind!==183&&r.type.kind!==184)return Hs(r,e.Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,e.tokenToString(151))}function Em(r,i){if(I1(r))return Tt(r,i)}function dA(r){if(X0(r))return!0;if(r.kind===169){if(r.parent.kind===205){if(r.modifiers&&!(r.modifiers.length===1&&e.first(r.modifiers).kind===131))return Hs(r,e.Diagnostics.Modifiers_cannot_appear_here);if(fA(r.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(_A(r.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(r.body===void 0)return rd(r,r.end-1,1,e.Diagnostics._0_expected,\"{\")}if(WS(r))return!0}if(e.isClassLike(r.parent)){if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.flags&16777216)return Em(r.name,e.Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(r.kind===169&&!r.body)return Em(r.name,e.Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}else{if(r.parent.kind===258)return Em(r.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(r.parent.kind===182)return Em(r.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}}function sL(r){for(var i=r;i;){if(e.isFunctionLikeOrClassStaticBlockDeclaration(i))return Tt(r,e.Diagnostics.Jump_target_cannot_cross_function_boundary);switch(i.kind){case 250:if(r.label&&i.label.escapedText===r.label.escapedText){var t=r.kind===245&&!e.isIterationStatement(i.statement,!0);return t?Tt(r,e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement):!1}break;case 249:if(r.kind===246&&!r.label)return!1;break;default:if(e.isIterationStatement(i,!1)&&!r.label)return!1;break}i=i.parent}if(r.label){var o=r.kind===246?e.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;return Tt(r,o)}else{var o=r.kind===246?e.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:e.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;return Tt(r,o)}}function cL(r){if(r.dotDotDotToken){var i=r.parent.elements;if(r!==e.last(i))return Tt(r,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);if(ng(i,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),r.propertyName)return Tt(r.name,e.Diagnostics.A_rest_element_cannot_have_a_property_name)}if(r.dotDotDotToken&&r.initializer)return rd(r,r.initializer.pos-1,1,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}function gA(r){return e.isStringOrNumericLiteralLike(r)||r.kind===219&&r.operator===40&&r.operand.kind===8}function uL(r){return r.kind===9||r.kind===219&&r.operator===40&&r.operand.kind===9}function lL(r){if((e.isPropertyAccessExpression(r)||e.isElementAccessExpression(r)&&gA(r.argumentExpression))&&e.isEntityNameExpression(r.expression))return!!(Os(r).flags&1024)}function mA(r){var i=r.initializer;if(i){var t=!(gA(i)||lL(i)||i.kind===110||i.kind===95||uL(i)),o=e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r);if(o&&!r.type){if(t)return Tt(i,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference)}else return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(!o||t)return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function fL(r){if(r.parent.parent.kind!==243&&r.parent.parent.kind!==244){if(r.flags&16777216)mA(r);else if(!r.initializer){if(e.isBindingPattern(r.name)&&!e.isBindingPattern(r.parent))return Tt(r,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(r))return Tt(r,e.Diagnostics.const_declarations_must_be_initialized)}}if(r.exclamationToken&&(r.parent.parent.kind!==237||!r.type||r.initializer||r.flags&16777216)){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.type?e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context:e.Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return Tt(r.exclamationToken,i)}(er0}function Hs(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,h.start,h.length,i,t,o,s)),!0}return!1}function rd(r,i,t,o,s,u,h){var z=e.getSourceFileOfNode(r);return Jd(z)?!1:(rn.add(e.createFileDiagnostic(z,i,t,o,s,u,h)),!0)}function dL(r,i,t,o,s,u){var h=e.getSourceFileOfNode(i);return Jd(h)?!1:(Es(r,i,t,o,s,u),!0)}function Tt(r,i,t,o,s){var u=e.getSourceFileOfNode(r);return Jd(u)?!1:(rn.add(e.createDiagnosticForNode(r,i,t,o,s)),!0)}function gL(r){var i=e.isInJSFile(r)?e.getJSDocTypeParameterDeclarations(r):void 0,t=r.typeParameters||i&&e.firstOrUndefined(i);if(t){var o=t.pos===t.end?t.pos:e.skipTrivia(e.getSourceFileOfNode(r).text,t.pos);return rd(r,o,t.end-o,e.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration)}}function mL(r){var i=e.getEffectiveReturnTypeNode(r);if(i)return Tt(i,e.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration)}function vL(r){if(e.isComputedPropertyName(r.name)&&e.isBinaryExpression(r.name.expression)&&r.name.expression.operatorToken.kind===101)return Tt(r.parent.members[0],e.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);if(e.isClassLike(r.parent)){if(e.isStringLiteral(r.name)&&r.name.text===\"constructor\")return Tt(r.name,e.Diagnostics.Classes_may_not_have_a_field_named_constructor);if(Em(r.name,e.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type))return!0;if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher)}else if(r.parent.kind===258){if(Em(r.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(r.initializer)return Tt(r.initializer,e.Diagnostics.An_interface_property_cannot_have_an_initializer)}else if(e.isTypeLiteralNode(r.parent)){if(Em(r.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(r.initializer)return Tt(r.initializer,e.Diagnostics.A_type_literal_property_cannot_have_an_initializer)}if(r.flags&16777216&&mA(r),e.isPropertyDeclaration(r)&&r.exclamationToken&&(!e.isClassLike(r.parent)||!r.type||r.initializer||r.flags&16777216||e.isStatic(r)||e.hasAbstractModifier(r))){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.type?e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context:e.Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return Tt(r.exclamationToken,i)}}function yL(r){return r.kind===258||r.kind===259||r.kind===266||r.kind===265||r.kind===272||r.kind===271||r.kind===264||e.hasSyntacticModifier(r,515)?!1:Hs(r,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function hL(r){for(var i=0,t=r.statements;i=1?i=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(r,196)?i=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(r,299)&&(i=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),i){var t=e.isPrefixUnaryExpression(r.parent)&&r.parent.operator===40,o=(t?\"-\":\"\")+\"0o\"+r.text;return Tt(t?r.parent:r,i,o)}}return bL(r),!1}function bL(r){var i=e.getTextOfNode(r).indexOf(\".\")!==-1,t=r.numericLiteralFlags&16;if(!(i||t)){var o=+r.text;o<=Math.pow(2,53)-1||Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}}function SL(r){var i=e.isLiteralTypeNode(r.parent)||e.isPrefixUnaryExpression(r.parent)&&e.isLiteralTypeNode(r.parent.parent);return!!(!i&&Ae<7&&Tt(r,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020))}function TL(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,e.textSpanEnd(h),0,i,t,o,s)),!0}return!1}function xL(){return Gr||(Gr=[],ii.forEach(function(r,i){a.test(i)&&Gr.push(r)})),Gr}function EL(r){var i;return r.isTypeOnly&&r.name&&r.namedBindings?Tt(r,e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both):r.isTypeOnly&&((i=r.namedBindings)===null||i===void 0?void 0:i.kind)===269?DA(r.namedBindings):!1}function DA(r){return!!e.forEach(r.elements,function(i){if(i.isTypeOnly)return Hs(i,i.kind===270?e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement)})}function CL(r){if(er===e.ModuleKind.ES2015)return Tt(r,e.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext);if(r.typeArguments)return Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);var i=r.arguments;if(er!==e.ModuleKind.ESNext&&er!==e.ModuleKind.NodeNext&&(ng(i),i.length>1)){var t=i[1];return Tt(t,e.Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext)}if(i.length===0||i.length>2)return Tt(r,e.Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments);var o=e.find(i,e.isSpreadElement);return o?Tt(o,e.Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element):!1}function kL(r,i){var t=e.getObjectFlags(r);if(t&20&&i.flags&1048576)return e.find(i.types,function(o){if(o.flags&524288){var s=t&e.getObjectFlags(o);if(s&4)return r.target===o.target;if(s&16)return!!r.aliasSymbol&&r.aliasSymbol===o.aliasSymbol}return!1})}function AL(r,i){if(e.getObjectFlags(r)&128&&rg(i,sp))return e.find(i.types,function(t){return!sp(t)})}function NL(r,i){var t=0,o=ot(r,t).length>0||(t=1,ot(r,t).length>0);if(o)return e.find(i.types,function(s){return ot(s,t).length>0})}function PL(r,i){var t;if(!(r.flags&406978556))for(var o=0,s=0,u=i.types;s=o&&(t=h,o=me)}}}return t}function IL(r){if(fs(r,67108864)){var i=ec(r,function(t){return!(t.flags&131068)});if(!(i.flags&131072))return i}return r}function bA(r,i,t,o){if(i.flags&1048576&&r.flags&2621440){var s=$E(i,r);if(s)return s;var u=uo(r);if(u){var h=YE(u,i);if(h)return UD(i,e.map(h,function(z){return[function(){return Jt(z)},z.escapedName]}),t,void 0,o)}}}}e.createTypeChecker=L;function P(l){return!e.isAccessor(l)}function k(l){return l.kind!==256&&l.kind!==169||!!l.body}function Y(l){switch(l.parent.kind){case 270:case 275:return e.isIdentifier(l);default:return e.isDeclarationName(l)}}var U;(function(l){l.JSX=\"JSX\",l.IntrinsicElements=\"IntrinsicElements\",l.ElementClass=\"ElementClass\",l.ElementAttributesPropertyNameContainer=\"ElementAttributesProperty\",l.ElementChildrenAttributeNameContainer=\"ElementChildrenAttribute\",l.Element=\"Element\",l.IntrinsicAttributes=\"IntrinsicAttributes\",l.IntrinsicClassAttributes=\"IntrinsicClassAttributes\",l.LibraryManagedAttributes=\"LibraryManagedAttributes\"})(U||(U={}));function j(l){switch(l){case 0:return\"yieldType\";case 1:return\"returnType\";case 2:return\"nextType\"}}function H(l){return!!(l.flags&1)}e.signatureHasRestParameter=H;function I(l){return!!(l.flags&2)}e.signatureHasLiteralTypes=I})(ke||(ke={}));var ke;(function(e){function a(f,T,K,b){if(f===void 0||T===void 0)return f;var se=T(f);if(se===f)return f;var J;if(se!==void 0)return e.isArray(se)?J=(b||oe)(se):J=se,e.Debug.assertNode(J,K),J}e.visitNode=a;function C(f,T,K,b,se){if(f===void 0||T===void 0)return f;var J,ie=f.length;(b===void 0||b<0)&&(b=0),(se===void 0||se>ie-b)&&(se=ie-b);var R,q=-1,O=-1;(b>0||se=2&&(se=E(se,K)),K.setLexicalEnvironmentFlags(1,!1)),K.suspendLexicalEnvironment(),se}e.visitParameterList=B;function E(f,T){for(var K,b=0;b0&&ie<=160||ie===192)return f;var R=K.factory;switch(ie){case 79:return e.Debug.type(f),R.updateIdentifier(f,b(f.typeArguments,T,e.isTypeNodeOrTypeParameterDeclaration));case 161:return e.Debug.type(f),R.updateQualifiedName(f,J(f.left,T,e.isEntityName),J(f.right,T,e.isIdentifier));case 162:return e.Debug.type(f),R.updateComputedPropertyName(f,J(f.expression,T,e.isExpression));case 163:return e.Debug.type(f),R.updateTypeParameterDeclaration(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),J(f.constraint,T,e.isTypeNode),J(f.default,T,e.isTypeNode));case 164:return e.Debug.type(f),R.updateParameterDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.name,T,e.isBindingName),J(f.questionToken,se,e.isQuestionToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 165:return e.Debug.type(f),R.updateDecorator(f,J(f.expression,T,e.isExpression));case 166:return e.Debug.type(f),R.updatePropertySignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isToken),J(f.type,T,e.isTypeNode));case 167:return e.Debug.type(f),R.updatePropertyDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken||f.exclamationToken,se,e.isQuestionOrExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 168:return e.Debug.type(f),R.updateMethodSignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 169:return e.Debug.type(f),R.updateMethodDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 171:return e.Debug.type(f),R.updateConstructorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),B(f.parameters,T,K,b),p(f.body,T,K,J));case 172:return e.Debug.type(f),R.updateGetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 173:return e.Debug.type(f),R.updateSetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),B(f.parameters,T,K,b),p(f.body,T,K,J));case 170:return e.Debug.type(f),K.startLexicalEnvironment(),K.suspendLexicalEnvironment(),R.updateClassStaticBlockDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),p(f.body,T,K,J));case 174:return e.Debug.type(f),R.updateCallSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 175:return e.Debug.type(f),R.updateConstructSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 176:return e.Debug.type(f),R.updateIndexSignature(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 177:return e.Debug.type(f),R.updateTypePredicateNode(f,J(f.assertsModifier,T,e.isAssertsKeyword),J(f.parameterName,T,e.isIdentifierOrThisTypeNode),J(f.type,T,e.isTypeNode));case 178:return e.Debug.type(f),R.updateTypeReferenceNode(f,J(f.typeName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 179:return e.Debug.type(f),R.updateFunctionTypeNode(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 180:return e.Debug.type(f),R.updateConstructorTypeNode(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 181:return e.Debug.type(f),R.updateTypeQueryNode(f,J(f.exprName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 182:return e.Debug.type(f),R.updateTypeLiteralNode(f,b(f.members,T,e.isTypeElement));case 183:return e.Debug.type(f),R.updateArrayTypeNode(f,J(f.elementType,T,e.isTypeNode));case 184:return e.Debug.type(f),R.updateTupleTypeNode(f,b(f.elements,T,e.isTypeNode));case 185:return e.Debug.type(f),R.updateOptionalTypeNode(f,J(f.type,T,e.isTypeNode));case 186:return e.Debug.type(f),R.updateRestTypeNode(f,J(f.type,T,e.isTypeNode));case 187:return e.Debug.type(f),R.updateUnionTypeNode(f,b(f.types,T,e.isTypeNode));case 188:return e.Debug.type(f),R.updateIntersectionTypeNode(f,b(f.types,T,e.isTypeNode));case 189:return e.Debug.type(f),R.updateConditionalTypeNode(f,J(f.checkType,T,e.isTypeNode),J(f.extendsType,T,e.isTypeNode),J(f.trueType,T,e.isTypeNode),J(f.falseType,T,e.isTypeNode));case 190:return e.Debug.type(f),R.updateInferTypeNode(f,J(f.typeParameter,T,e.isTypeParameterDeclaration));case 200:return e.Debug.type(f),R.updateImportTypeNode(f,J(f.argument,T,e.isTypeNode),J(f.assertions,T,e.isNode),J(f.qualifier,T,e.isEntityName),C(f.typeArguments,T,e.isTypeNode),f.isTypeOf);case 295:return e.Debug.type(f),R.updateImportTypeAssertionContainer(f,J(f.assertClause,T,e.isNode),f.multiLine);case 197:return e.Debug.type(f),R.updateNamedTupleMember(f,a(f.dotDotDotToken,T,e.isDotDotDotToken),a(f.name,T,e.isIdentifier),a(f.questionToken,T,e.isQuestionToken),a(f.type,T,e.isTypeNode));case 191:return e.Debug.type(f),R.updateParenthesizedType(f,J(f.type,T,e.isTypeNode));case 193:return e.Debug.type(f),R.updateTypeOperatorNode(f,J(f.type,T,e.isTypeNode));case 194:return e.Debug.type(f),R.updateIndexedAccessTypeNode(f,J(f.objectType,T,e.isTypeNode),J(f.indexType,T,e.isTypeNode));case 195:return e.Debug.type(f),R.updateMappedTypeNode(f,J(f.readonlyToken,se,e.isReadonlyKeywordOrPlusOrMinusToken),J(f.typeParameter,T,e.isTypeParameterDeclaration),J(f.nameType,T,e.isTypeNode),J(f.questionToken,se,e.isQuestionOrPlusOrMinusToken),J(f.type,T,e.isTypeNode),b(f.members,T,e.isTypeElement));case 196:return e.Debug.type(f),R.updateLiteralTypeNode(f,J(f.literal,T,e.isExpression));case 198:return e.Debug.type(f),R.updateTemplateLiteralType(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateLiteralTypeSpan));case 199:return e.Debug.type(f),R.updateTemplateLiteralTypeSpan(f,J(f.type,T,e.isTypeNode),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 201:return e.Debug.type(f),R.updateObjectBindingPattern(f,b(f.elements,T,e.isBindingElement));case 202:return e.Debug.type(f),R.updateArrayBindingPattern(f,b(f.elements,T,e.isArrayBindingElement));case 203:return e.Debug.type(f),R.updateBindingElement(f,J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.propertyName,T,e.isPropertyName),J(f.name,T,e.isBindingName),J(f.initializer,T,e.isExpression));case 204:return e.Debug.type(f),R.updateArrayLiteralExpression(f,b(f.elements,T,e.isExpression));case 205:return e.Debug.type(f),R.updateObjectLiteralExpression(f,b(f.properties,T,e.isObjectLiteralElementLike));case 206:return f.flags&32?(e.Debug.type(f),R.updatePropertyAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.name,T,e.isMemberName))):(e.Debug.type(f),R.updatePropertyAccessExpression(f,J(f.expression,T,e.isExpression),J(f.name,T,e.isMemberName)));case 207:return f.flags&32?(e.Debug.type(f),R.updateElementAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.argumentExpression,T,e.isExpression))):(e.Debug.type(f),R.updateElementAccessExpression(f,J(f.expression,T,e.isExpression),J(f.argumentExpression,T,e.isExpression)));case 208:return f.flags&32?(e.Debug.type(f),R.updateCallChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression))):(e.Debug.type(f),R.updateCallExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression)));case 209:return e.Debug.type(f),R.updateNewExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression));case 210:return e.Debug.type(f),R.updateTaggedTemplateExpression(f,J(f.tag,T,e.isExpression),C(f.typeArguments,T,e.isTypeNode),J(f.template,T,e.isTemplateLiteral));case 211:return e.Debug.type(f),R.updateTypeAssertion(f,J(f.type,T,e.isTypeNode),J(f.expression,T,e.isExpression));case 212:return e.Debug.type(f),R.updateParenthesizedExpression(f,J(f.expression,T,e.isExpression));case 213:return e.Debug.type(f),R.updateFunctionExpression(f,b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 214:return e.Debug.type(f),R.updateArrowFunction(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),J(f.equalsGreaterThanToken,se,e.isEqualsGreaterThanToken),p(f.body,T,K,J));case 215:return e.Debug.type(f),R.updateDeleteExpression(f,J(f.expression,T,e.isExpression));case 216:return e.Debug.type(f),R.updateTypeOfExpression(f,J(f.expression,T,e.isExpression));case 217:return e.Debug.type(f),R.updateVoidExpression(f,J(f.expression,T,e.isExpression));case 218:return e.Debug.type(f),R.updateAwaitExpression(f,J(f.expression,T,e.isExpression));case 219:return e.Debug.type(f),R.updatePrefixUnaryExpression(f,J(f.operand,T,e.isExpression));case 220:return e.Debug.type(f),R.updatePostfixUnaryExpression(f,J(f.operand,T,e.isExpression));case 221:return e.Debug.type(f),R.updateBinaryExpression(f,J(f.left,T,e.isExpression),J(f.operatorToken,se,e.isBinaryOperatorToken),J(f.right,T,e.isExpression));case 222:return e.Debug.type(f),R.updateConditionalExpression(f,J(f.condition,T,e.isExpression),J(f.questionToken,se,e.isQuestionToken),J(f.whenTrue,T,e.isExpression),J(f.colonToken,se,e.isColonToken),J(f.whenFalse,T,e.isExpression));case 223:return e.Debug.type(f),R.updateTemplateExpression(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateSpan));case 224:return e.Debug.type(f),R.updateYieldExpression(f,J(f.asteriskToken,se,e.isAsteriskToken),J(f.expression,T,e.isExpression));case 225:return e.Debug.type(f),R.updateSpreadElement(f,J(f.expression,T,e.isExpression));case 226:return e.Debug.type(f),R.updateClassExpression(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 228:return e.Debug.type(f),R.updateExpressionWithTypeArguments(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode));case 229:return e.Debug.type(f),R.updateAsExpression(f,J(f.expression,T,e.isExpression),J(f.type,T,e.isTypeNode));case 230:return f.flags&32?(e.Debug.type(f),R.updateNonNullChain(f,J(f.expression,T,e.isExpression))):(e.Debug.type(f),R.updateNonNullExpression(f,J(f.expression,T,e.isExpression)));case 231:return e.Debug.type(f),R.updateMetaProperty(f,J(f.name,T,e.isIdentifier));case 233:return e.Debug.type(f),R.updateTemplateSpan(f,J(f.expression,T,e.isExpression),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 235:return e.Debug.type(f),R.updateBlock(f,b(f.statements,T,e.isStatement));case 237:return e.Debug.type(f),R.updateVariableStatement(f,b(f.modifiers,T,e.isModifier),J(f.declarationList,T,e.isVariableDeclarationList));case 238:return e.Debug.type(f),R.updateExpressionStatement(f,J(f.expression,T,e.isExpression));case 239:return e.Debug.type(f),R.updateIfStatement(f,J(f.expression,T,e.isExpression),J(f.thenStatement,T,e.isStatement,R.liftToBlock),J(f.elseStatement,T,e.isStatement,R.liftToBlock));case 240:return e.Debug.type(f),R.updateDoStatement(f,m(f.statement,T,K),J(f.expression,T,e.isExpression));case 241:return e.Debug.type(f),R.updateWhileStatement(f,J(f.expression,T,e.isExpression),m(f.statement,T,K));case 242:return e.Debug.type(f),R.updateForStatement(f,J(f.initializer,T,e.isForInitializer),J(f.condition,T,e.isExpression),J(f.incrementor,T,e.isExpression),m(f.statement,T,K));case 243:return e.Debug.type(f),R.updateForInStatement(f,J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 244:return e.Debug.type(f),R.updateForOfStatement(f,J(f.awaitModifier,se,e.isAwaitKeyword),J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 245:return e.Debug.type(f),R.updateContinueStatement(f,J(f.label,T,e.isIdentifier));case 246:return e.Debug.type(f),R.updateBreakStatement(f,J(f.label,T,e.isIdentifier));case 247:return e.Debug.type(f),R.updateReturnStatement(f,J(f.expression,T,e.isExpression));case 248:return e.Debug.type(f),R.updateWithStatement(f,J(f.expression,T,e.isExpression),J(f.statement,T,e.isStatement,R.liftToBlock));case 249:return e.Debug.type(f),R.updateSwitchStatement(f,J(f.expression,T,e.isExpression),J(f.caseBlock,T,e.isCaseBlock));case 250:return e.Debug.type(f),R.updateLabeledStatement(f,J(f.label,T,e.isIdentifier),J(f.statement,T,e.isStatement,R.liftToBlock));case 251:return e.Debug.type(f),R.updateThrowStatement(f,J(f.expression,T,e.isExpression));case 252:return e.Debug.type(f),R.updateTryStatement(f,J(f.tryBlock,T,e.isBlock),J(f.catchClause,T,e.isCatchClause),J(f.finallyBlock,T,e.isBlock));case 254:return e.Debug.type(f),R.updateVariableDeclaration(f,J(f.name,T,e.isBindingName),J(f.exclamationToken,se,e.isExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 255:return e.Debug.type(f),R.updateVariableDeclarationList(f,b(f.declarations,T,e.isVariableDeclaration));case 256:return e.Debug.type(f),R.updateFunctionDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 257:return e.Debug.type(f),R.updateClassDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 258:return e.Debug.type(f),R.updateInterfaceDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isTypeElement));case 259:return e.Debug.type(f),R.updateTypeAliasDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),J(f.type,T,e.isTypeNode));case 260:return e.Debug.type(f),R.updateEnumDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.members,T,e.isEnumMember));case 261:return e.Debug.type(f),R.updateModuleDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isModuleName),J(f.body,T,e.isModuleBody));case 262:return e.Debug.type(f),R.updateModuleBlock(f,b(f.statements,T,e.isStatement));case 263:return e.Debug.type(f),R.updateCaseBlock(f,b(f.clauses,T,e.isCaseOrDefaultClause));case 264:return e.Debug.type(f),R.updateNamespaceExportDeclaration(f,J(f.name,T,e.isIdentifier));case 265:return e.Debug.type(f),R.updateImportEqualsDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.moduleReference,T,e.isModuleReference));case 266:return e.Debug.type(f),R.updateImportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.importClause,T,e.isImportClause),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 293:return e.Debug.type(f),R.updateAssertClause(f,b(f.elements,T,e.isAssertEntry),f.multiLine);case 294:return e.Debug.type(f),R.updateAssertEntry(f,J(f.name,T,e.isAssertionKey),J(f.value,T,e.isExpressionNode));case 267:return e.Debug.type(f),R.updateImportClause(f,f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.namedBindings,T,e.isNamedImportBindings));case 268:return e.Debug.type(f),R.updateNamespaceImport(f,J(f.name,T,e.isIdentifier));case 274:return e.Debug.type(f),R.updateNamespaceExport(f,J(f.name,T,e.isIdentifier));case 269:return e.Debug.type(f),R.updateNamedImports(f,b(f.elements,T,e.isImportSpecifier));case 270:return e.Debug.type(f),R.updateImportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 271:return e.Debug.type(f),R.updateExportAssignment(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.expression,T,e.isExpression));case 272:return e.Debug.type(f),R.updateExportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.exportClause,T,e.isNamedExportBindings),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 273:return e.Debug.type(f),R.updateNamedExports(f,b(f.elements,T,e.isExportSpecifier));case 275:return e.Debug.type(f),R.updateExportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 277:return e.Debug.type(f),R.updateExternalModuleReference(f,J(f.expression,T,e.isExpression));case 278:return e.Debug.type(f),R.updateJsxElement(f,J(f.openingElement,T,e.isJsxOpeningElement),b(f.children,T,e.isJsxChild),J(f.closingElement,T,e.isJsxClosingElement));case 279:return e.Debug.type(f),R.updateJsxSelfClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 280:return e.Debug.type(f),R.updateJsxOpeningElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 281:return e.Debug.type(f),R.updateJsxClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression));case 282:return e.Debug.type(f),R.updateJsxFragment(f,J(f.openingFragment,T,e.isJsxOpeningFragment),b(f.children,T,e.isJsxChild),J(f.closingFragment,T,e.isJsxClosingFragment));case 285:return e.Debug.type(f),R.updateJsxAttribute(f,J(f.name,T,e.isIdentifier),J(f.initializer,T,e.isStringLiteralOrJsxExpression));case 286:return e.Debug.type(f),R.updateJsxAttributes(f,b(f.properties,T,e.isJsxAttributeLike));case 287:return e.Debug.type(f),R.updateJsxSpreadAttribute(f,J(f.expression,T,e.isExpression));case 288:return e.Debug.type(f),R.updateJsxExpression(f,J(f.expression,T,e.isExpression));case 289:return e.Debug.type(f),R.updateCaseClause(f,J(f.expression,T,e.isExpression),b(f.statements,T,e.isStatement));case 290:return e.Debug.type(f),R.updateDefaultClause(f,b(f.statements,T,e.isStatement));case 291:return e.Debug.type(f),R.updateHeritageClause(f,b(f.types,T,e.isExpressionWithTypeArguments));case 292:return e.Debug.type(f),R.updateCatchClause(f,J(f.variableDeclaration,T,e.isVariableDeclaration),J(f.block,T,e.isBlock));case 296:return e.Debug.type(f),R.updatePropertyAssignment(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 297:return e.Debug.type(f),R.updateShorthandPropertyAssignment(f,J(f.name,T,e.isIdentifier),J(f.objectAssignmentInitializer,T,e.isExpression));case 298:return e.Debug.type(f),R.updateSpreadAssignment(f,J(f.expression,T,e.isExpression));case 299:return e.Debug.type(f),R.updateEnumMember(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 305:return e.Debug.type(f),R.updateSourceFile(f,w(f.statements,T,K));case 350:return e.Debug.type(f),R.updatePartiallyEmittedExpression(f,J(f.expression,T,e.isExpression));case 351:return e.Debug.type(f),R.updateCommaListExpression(f,b(f.elements,T,e.isExpression));default:return f}}}e.visitEachChild=G;function oe(f){return e.Debug.assert(f.length<=1,\"Too many nodes written to output.\"),e.singleOrUndefined(f)}})(ke||(ke={}));var ke;(function(e){function a(q,O,ve,ee,he){var F=he.extendedDiagnostics?e.performance.createTimer(\"Source Map\",\"beforeSourcemap\",\"afterSourcemap\"):e.performance.nullTimer,x=F.enter,X=F.exit,$=[],A=[],y=new e.Map,V,L=[],P,k=[],Y=\"\",U=0,j=0,H=0,I=0,l=0,d=0,D=!1,fe=0,g=0,ne=0,ue=0,We=0,Fe=0,Z=!1,Be=!1,ge=!1;return{getSources:function(){return $},addSource:Re,setSourceContent:ze,addName:Ee,addMapping:Ie,appendSourceMap:_e,toJSON:er,toString:function(){return JSON.stringify(er())}};function Re(Cr){x();var Ye=e.getRelativePathToDirectoryOrUrl(ee,Cr,q.getCurrentDirectory(),q.getCanonicalFileName,!0),Br=y.get(Ye);return Br===void 0&&(Br=A.length,A.push(Ye),$.push(Cr),y.set(Ye,Br)),X(),Br}function ze(Cr,Ye){if(x(),Ye!==null){for(V||(V=[]);V.lengthYe||ue===Ye&&We>Br)}function Ie(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,\"generatedLine cannot backtrack\"),e.Debug.assert(Ye>=0,\"generatedCharacter cannot be negative\"),e.Debug.assert(Br===void 0||Br>=0,\"sourceIndex cannot be negative\"),e.Debug.assert(Er===void 0||Er>=0,\"sourceLine cannot be negative\"),e.Debug.assert(Ne===void 0||Ne>=0,\"sourceCharacter cannot be negative\"),x(),(He(Cr,Ye)||rr(Br,Er,Ne))&&(ye(),fe=Cr,g=Ye,Be=!1,ge=!1,Z=!0),Br!==void 0&&Er!==void 0&&Ne!==void 0&&(ne=Br,ue=Er,We=Ne,Be=!0,n!==void 0&&(Fe=n,ge=!0)),X()}function _e(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,\"generatedLine cannot backtrack\"),e.Debug.assert(Ye>=0,\"generatedCharacter cannot be negative\"),x();for(var lr=[],be,Ge=p(Br.mappings),ur=Ge.next();!ur.done;ur=Ge.next()){var yr=ur.value;if(n&&(yr.generatedLine>n.line||yr.generatedLine===n.line&&yr.generatedCharacter>n.character))break;if(!(Ne&&(yr.generatedLine=1024&&Ae()}function ye(){if(!(!Z||!we())){if(x(),U0&&(Y+=String.fromCharCode.apply(void 0,k),k.length=0)}function er(){return ye(),Ae(),{version:3,file:O,sourceRoot:ve,sources:A,names:L,mappings:Y,sourcesContent:V}}function ir(Cr){Cr<0?Cr=(-Cr<<1)+1:Cr=Cr<<1;do{var Ye=Cr&31;Cr=Cr>>5,Cr>0&&(Ye=Ye|32),de(oe(Ye))}while(Cr>0)}}e.createSourceMapGenerator=a;var C=/^\\/\\/[@#] source[M]appingURL=(.+)\\r?\\n?$/,w=/^\\s*(\\/\\/[@#] .*)?$/;function B(q,O){return{getLineCount:function(){return O.length},getLineText:function(ve){return q.substring(O[ve],O[ve+1])}}}e.getLineInfo=B;function E(q){for(var O=q.getLineCount()-1;O>=0;O--){var ve=q.getLineText(O),ee=C.exec(ve);if(ee)return e.trimStringEnd(ee[1]);if(!ve.match(w))break}}e.tryGetSourceMappingURL=E;function Q(q){return typeof q==\"string\"||q===null}function le(q){return q!==null&&typeof q==\"object\"&&q.version===3&&typeof q.file==\"string\"&&typeof q.mappings==\"string\"&&e.isArray(q.sources)&&e.every(q.sources,e.isString)&&(q.sourceRoot===void 0||q.sourceRoot===null||typeof q.sourceRoot==\"string\")&&(q.sourcesContent===void 0||q.sourcesContent===null||e.isArray(q.sourcesContent)&&e.every(q.sourcesContent,Q))&&(q.names===void 0||q.names===null||e.isArray(q.names)&&e.every(q.names,e.isString))}e.isRawSourceMap=le;function N(q){try{var O=JSON.parse(q);if(le(O))return O}catch{}}e.tryParseRawSourceMap=N;function p(q){var O=!1,ve=0,ee=0,he=0,F=0,x=0,X=0,$=0,A;return{get pos(){return ve},get error(){return A},get state(){return y(!0,!0)},next:function(){for(;!O&&ve=q.length)return L(\"Error in decoding base64VLQFormatDecode, past the mapping string\"),-1;var l=f(q.charCodeAt(ve));if(l===-1)return L(\"Invalid character in VLQ\"),-1;j=(l&32)!==0,I=I|(l&31)<>1:(I=I>>1,I=-I),I}}e.decodeMappings=p;function m(q,O){return q===O||q.generatedLine===O.generatedLine&&q.generatedCharacter===O.generatedCharacter&&q.sourceIndex===O.sourceIndex&&q.sourceLine===O.sourceLine&&q.sourceCharacter===O.sourceCharacter&&q.nameIndex===O.nameIndex}e.sameMapping=m;function G(q){return q.sourceIndex!==void 0&&q.sourceLine!==void 0&&q.sourceCharacter!==void 0}e.isSourceMapping=G;function oe(q){return q>=0&&q<26?65+q:q>=26&&q<52?97+q-26:q>=52&&q<62?48+q-52:q===62?43:q===63?47:e.Debug.fail(\"\".concat(q,\": not a base64 value\"))}function f(q){return q>=65&&q<=90?q-65:q>=97&&q<=122?q-97+26:q>=48&&q<=57?q-48+52:q===43?62:q===47?63:-1}function T(q){return q.sourceIndex!==void 0&&q.sourcePosition!==void 0}function K(q,O){return q.generatedPosition===O.generatedPosition&&q.sourceIndex===O.sourceIndex&&q.sourcePosition===O.sourcePosition}function b(q,O){return e.Debug.assert(q.sourceIndex===O.sourceIndex),e.compareValues(q.sourcePosition,O.sourcePosition)}function se(q,O){return e.compareValues(q.generatedPosition,O.generatedPosition)}function J(q){return q.sourcePosition}function ie(q){return q.generatedPosition}function R(q,O,ve){var ee=e.getDirectoryPath(ve),he=O.sourceRoot?e.getNormalizedAbsolutePath(O.sourceRoot,ee):ee,F=e.getNormalizedAbsolutePath(O.file,ee),x=q.getSourceFileLike(F),X=O.sources.map(function(H){return e.getNormalizedAbsolutePath(H,he)}),$=new e.Map(X.map(function(H,I){return[q.getCanonicalFileName(H),I]})),A,y,V;return{getSourcePosition:j,getGeneratedPosition:U};function L(H){var I=x!==void 0?e.getPositionOfLineAndCharacter(x,H.generatedLine,H.generatedCharacter,!0):-1,l,d;if(G(H)){var D=q.getSourceFileLike(X[H.sourceIndex]);l=O.sources[H.sourceIndex],d=D!==void 0?e.getPositionOfLineAndCharacter(D,H.sourceLine,H.sourceCharacter,!0):-1}return{generatedPosition:I,source:l,sourceIndex:H.sourceIndex,sourcePosition:d,nameIndex:H.nameIndex}}function P(){if(A===void 0){var H=p(O.mappings),I=e.arrayFrom(H,L);H.error!==void 0?(q.log&&q.log(\"Encountered error while decoding sourcemap: \".concat(H.error)),A=e.emptyArray):A=I}return A}function k(H){if(V===void 0){for(var I=[],l=0,d=P();l0&&F!==he.elements.length||!!(he.elements.length-F)&&e.isDefaultImport(ee)}e.getImportNeedsImportStarHelper=Q;function le(ee){return!Q(ee)&&(e.isDefaultImport(ee)||!!ee.importClause&&e.isNamedImports(ee.importClause.namedBindings)&&C(ee.importClause.namedBindings))}e.getImportNeedsImportDefaultHelper=le;function N(ee,he,F,x){for(var X=[],$=e.createMultiMap(),A=[],y=new e.Map,V,L=!1,P,k=!1,Y=!1,U=!1,j=0,H=he.statements;j=64&&ee<=78}e.isCompoundAssignment=f;function T(ee){switch(ee){case 64:return 39;case 65:return 40;case 66:return 41;case 67:return 42;case 68:return 43;case 69:return 44;case 70:return 47;case 71:return 48;case 72:return 49;case 73:return 50;case 74:return 51;case 78:return 52;case 75:return 56;case 76:return 55;case 77:return 60}}e.getNonAssignmentOperatorForCompoundAssignment=T;function K(ee){if(!!e.isExpressionStatement(ee)){var he=e.skipParentheses(ee.expression);return e.isSuperCall(he)?he:void 0}}e.getSuperCallFromStatement=K;function b(ee,he){for(var F=he;F=1&&!(V.transformFlags&49152)&&!(e.getTargetOfBindingOrAssignmentElement(V).transformFlags&49152)&&!e.isComputedPropertyName(L))$=e.append($,e.visitNode(V,q.visitor));else{$&&(q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve),$=void 0);var P=f(q,ee,L);e.isComputedPropertyName(L)&&(A=e.append(A,P.argumentExpression)),N(q,V,P,V)}}}$&&q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve)}function m(q,O,ve,ee,he){var F=e.getElementsOfBindingOrAssignmentPattern(ve),x=F.length;if(q.level<1&&q.downlevelIteration)ee=T(q,e.setTextRange(q.context.getEmitHelperFactory().createReadHelper(ee,x>0&&e.getRestIndicatorOfBindingOrAssignmentElement(F[x-1])?void 0:x),he),!1,he);else if(x!==1&&(q.level<1||x===0)||e.every(F,e.isOmittedExpression)){var X=!e.isDeclarationBindingElement(O)||x!==0;ee=T(q,ee,X,he)}for(var $,A,y=0;y=1)if(V.transformFlags&32768||q.hasTransformedPriorElement&&!G(V)){q.hasTransformedPriorElement=!0;var L=q.context.factory.createTempVariable(void 0);q.hoistTempVariables&&q.context.hoistVariableDeclaration(L),A=e.append(A,[L,V]),$=e.append($,q.createArrayBindingOrAssignmentElement(L))}else $=e.append($,V);else{if(e.isOmittedExpression(V))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(V)){if(y===x-1){var P=q.context.factory.createArraySliceCall(ee,y);N(q,V,P,V)}}else{var P=q.context.factory.createElementAccessExpression(ee,y);N(q,V,P,V)}}}if($&&q.emitBindingOrAssignment(q.createArrayBindingOrAssignmentPattern($),ee,he,ve),A)for(var k=0,Y=A;k=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(S);return Q.updateSourceFile(S,e.visitLexicalEnvironment(S.statements,Y,E,0,Ce))}function ne(S,Ce){var qe=0;e.some(Ce)&&(qe|=1);var br=e.getEffectiveBaseTypeNode(S);return br&&e.skipOuterExpressions(br.expression).kind!==104&&(qe|=64),e.classOrConstructorParameterIsDecorated(S)&&(qe|=2),e.childIsDecorated(S)&&(qe|=4),ai(S)?qe|=8:Ba(S)?qe|=32:ka(S)&&(qe|=16),K<=1&&qe&7&&(qe|=128),qe}function ue(S){return!!(S.transformFlags&4096)}function We(S){return e.some(S.decorators)||e.some(S.typeParameters)||e.some(S.heritageClauses,ue)||e.some(S.members,ue)}function Fe(S){if(!We(S)&&!(R&&e.hasSyntacticModifier(S,1)))return e.visitEachChild(S,P,E);var Ce=e.getProperties(S,!0,!0),qe=ne(S,Ce);qe&128&&E.startLexicalEnvironment();var br=S.name||(qe&5?Q.getGeneratedNameForNode(S):void 0),Zr=qe&2?Be(S,br):Z(S,br,qe),Si=[Zr];if(ir(Si,S,!1),ir(Si,S,!0),Br(Si,S),qe&128){var Pi=e.createTokenRange(e.skipTrivia(ie.text,S.members.end),19),Qi=Q.getInternalName(S),Ct=Q.createPartiallyEmittedExpression(Qi);e.setTextRangeEnd(Ct,Pi.end),e.setEmitFlags(Ct,1536);var sa=Q.createReturnStatement(Ct);e.setTextRangePos(sa,Pi.pos),e.setEmitFlags(sa,1920),Si.push(sa),e.insertStatementsAfterStandardPrologue(Si,E.endLexicalEnvironment());var en=Q.createImmediatelyInvokedArrowFunction(Si);e.setEmitFlags(en,33554432);var Wa=Q.createVariableStatement(void 0,Q.createVariableDeclarationList([Q.createVariableDeclaration(Q.getLocalName(S,!1,!1),void 0,void 0,en)]));e.setOriginalNode(Wa,S),e.setCommentRange(Wa,S),e.setSourceMapRange(Wa,e.moveRangePastDecorators(S)),e.startOnNewLine(Wa),Si=[Wa]}return qe&8?Cn(Si,S):(qe&128||qe&2)&&(qe&32?Si.push(Q.createExportDefault(Q.getLocalName(S,!1,!0))):qe&16&&Si.push(Q.createExternalModuleExport(Q.getLocalName(S,!1,!0)))),Si.length>1&&(Si.push(Q.createEndOfDeclarationMarker(S)),e.setEmitFlags(Zr,e.getEmitFlags(Zr)|4194304)),e.singleOrMany(Si)}function Z(S,Ce,qe){var br=qe&128?void 0:e.visitNodes(S.modifiers,D,e.isModifier),Zr=Q.createClassDeclaration(void 0,br,Ce,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S)),Si=e.getEmitFlags(S);return qe&1&&(Si|=32),e.setTextRange(Zr,S),e.setOriginalNode(Zr,S),e.setEmitFlags(Zr,Si),Zr}function Be(S,Ce){var qe=e.moveRangePastDecorators(S),br=eo(S),Zr=K<=2?Q.getInternalName(S,!1,!0):Q.getLocalName(S,!1,!0),Si=e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Pi=Re(S),Qi=Q.createClassExpression(void 0,void 0,Ce,void 0,Si,Pi);e.setOriginalNode(Qi,S),e.setTextRange(Qi,qe);var Ct=Q.createVariableStatement(void 0,Q.createVariableDeclarationList([Q.createVariableDeclaration(Zr,void 0,void 0,br?Q.createAssignment(br,Qi):Qi)],1));return e.setOriginalNode(Ct,S),e.setTextRange(Ct,qe),e.setCommentRange(Ct,S),Ct}function ge(S){if(!We(S))return e.visitEachChild(S,P,E);var Ce=Q.createClassExpression(void 0,void 0,S.name,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S));return e.setOriginalNode(Ce,S),e.setTextRange(Ce,S),Ce}function Re(S){var Ce=[],qe=e.getFirstConstructorWithBody(S),br=qe&&e.filter(qe.parameters,function(Qi){return e.isParameterPropertyDeclaration(Qi,qe)});if(br)for(var Zr=0,Si=br;Zr0&&e.parameterIsThisKeyword(qe[0]),Zr=br?1:0,Si=br?qe.length-1:qe.length,Pi=0;Pi0?Ce.kind===167?Q.createVoidZero():Q.createNull():void 0,Qi=le().createDecorateHelper(br,Zr,Si,Pi);return e.setTextRange(Qi,e.moveRangePastDecorators(Ce)),e.setEmitFlags(Qi,1536),Qi}}function Br(S,Ce){var qe=Er(Ce);qe&&S.push(e.setOriginalNode(Q.createExpressionStatement(qe),Ce))}function Er(S){var Ce=_e(S),qe=er(S,S,Ce);if(!!qe){var br=x&&x[e.getOriginalNodeId(S)],Zr=K<=2?Q.getInternalName(S,!1,!0):Q.getLocalName(S,!1,!0),Si=le().createDecorateHelper(qe,Zr),Pi=Q.createAssignment(Zr,br?Q.createAssignment(br,Si):Si);return e.setEmitFlags(Pi,1536),e.setSourceMapRange(Pi,e.moveRangePastDecorators(S)),Pi}}function Ne(S){return e.visitNode(S.expression,P,e.isExpression)}function n(S,Ce){var qe;if(S){qe=[];for(var br=0,Zr=S;br=0&&e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Zr,Si+1-Zr));var Pi=e.mapDefined(qe,Sr);Si>=0?e.addRange(br,Pi):br=Ve(Ve(Ve([],br.slice(0,Zr),!0),Pi,!0),br.slice(Zr),!0),e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Si+1+Zr)),br=Q.mergeLexicalEnvironment(br,m());var Qi=Q.createBlock(e.setTextRange(Q.createNodeArray(br),S.statements),!0);return e.setTextRange(Qi,S),e.setOriginalNode(Qi,S),Qi}function Sr(S){var Ce=S.name;if(!!e.isIdentifier(Ce)){var qe=e.setParent(e.setTextRange(Q.cloneNode(Ce),Ce),Ce.parent);e.setEmitFlags(qe,1584);var br=e.setParent(e.setTextRange(Q.cloneNode(Ce),Ce),Ce.parent);return e.setEmitFlags(br,1536),e.startOnNewLine(e.removeAllComments(e.setTextRange(e.setOriginalNode(Q.createExpressionStatement(Q.createAssignment(e.setTextRange(Q.createPropertyAccessExpression(Q.createThis(),qe),S.name),br)),S),e.moveRangePos(S,-1))))}}function zr(S){if(!!Xe(S)){var Ce=Q.updateMethodDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,_r(S),void 0,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function Wr(S){return!(e.nodeIsMissing(S.body)&&e.hasSyntacticModifier(S,128))}function Je(S){if(!!Wr(S)){var Ce=Q.updateGetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function xe(S){if(!!Wr(S)){var Ce=Q.updateSetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function vr(S){if(!Xe(S))return Q.createNotEmittedStatement(S);var Ce=Q.updateFunctionDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));if(ai(S)){var qe=[Ce];return Cn(qe,S),qe}return Ce}function mr(S){if(!Xe(S))return Q.createOmittedExpression();var Ce=Q.updateFunctionExpression(S,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce}function Ar(S){var Ce=Q.updateArrowFunction(S,e.visitNodes(S.modifiers,D,e.isModifier),void 0,e.visitParameterList(S.parameters,P,E),void 0,S.equalsGreaterThanToken,e.visitFunctionBody(S.body,P,E));return Ce}function Oe(S){if(!e.parameterIsThisKeyword(S)){var Ce=Q.updateParameterDeclaration(S,void 0,void 0,S.dotDotDotToken,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return Ce!==S&&(e.setCommentRange(Ce,S),e.setTextRange(Ce,e.moveRangePastModifiers(S)),e.setSourceMapRange(Ce,e.moveRangePastModifiers(S)),e.setEmitFlags(Ce.name,32)),Ce}}function nr(S){if(ai(S)){var Ce=e.getInitializedVariables(S.declarationList);return Ce.length===0?void 0:e.setTextRange(Q.createExpressionStatement(Q.inlineExpressions(e.map(Ce,Mr))),S)}else return e.visitEachChild(S,P,E)}function Mr(S){var Ce=S.name;return e.isBindingPattern(Ce)?e.flattenDestructuringAssignment(S,P,E,0,!1,kn):e.setTextRange(Q.createAssignment(xn(Ce),e.visitNode(S.initializer,P,e.isExpression)),S)}function Pe(S){var Ce=Q.updateVariableDeclaration(S,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return S.type&&e.setTypeNode(Ce.name,S.type),Ce}function Ue(S){var Ce=e.skipOuterExpressions(S.expression,-7);if(e.isAssertionExpression(Ce)){var qe=e.visitNode(S.expression,P,e.isExpression);return Q.createPartiallyEmittedExpression(qe,S)}return e.visitEachChild(S,P,E)}function fr(S){var Ce=e.visitNode(S.expression,P,e.isExpression);return Q.createPartiallyEmittedExpression(Ce,S)}function De(S){var Ce=e.visitNode(S.expression,P,e.isLeftHandSideExpression);return Q.createPartiallyEmittedExpression(Ce,S)}function gr(S){return Q.updateCallExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Vr(S){return Q.updateNewExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Tr(S){return Q.updateTaggedTemplateExpression(S,e.visitNode(S.tag,P,e.isExpression),void 0,e.visitNode(S.template,P,e.isExpression))}function vi(S){return Q.updateJsxSelfClosingElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Ui(S){return Q.updateJsxOpeningElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Yi(S){return!e.isEnumConst(S)||e.shouldPreserveConstEnums(f)}function Wi(S){if(!Yi(S))return Q.createNotEmittedStatement(S);var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?Q.getExternalModuleOrNamespaceExportName(q,S,!1,!0):Q.getLocalName(S,!1,!0),Qi=Q.createLogicalOr(Pi,Q.createAssignment(Pi,Q.createObjectLiteralExpression()));if(xt(S)){var Ct=Q.getLocalName(S,!1,!0);Qi=Q.createAssignment(Ct,Qi)}var sa=Q.createExpressionStatement(Q.createCallExpression(Q.createFunctionExpression(void 0,void 0,void 0,void 0,[Q.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,ct(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(Q.createEndOfDeclarationMarker(S)),Ce}function ct(S,Ce){var qe=q;q=Ce;var br=[];N();var Zr=e.map(S.members,Li);return e.insertStatementsAfterStandardPrologue(br,m()),e.addRange(br,Zr),q=qe,Q.createBlock(e.setTextRange(Q.createNodeArray(br),S.members),!0)}function Li(S){var Ce=Zt(S,!1),qe=nt(S),br=Q.createAssignment(Q.createElementAccessExpression(q,Ce),qe),Zr=qe.kind===10?br:Q.createAssignment(Q.createElementAccessExpression(q,br),Ce);return e.setTextRange(Q.createExpressionStatement(e.setTextRange(Zr,S)),S)}function nt(S){var Ce=oe.getConstantValue(S);return Ce!==void 0?typeof Ce==\"string\"?Q.createStringLiteral(Ce):Q.createNumericLiteral(Ce):(bo(),S.initializer?e.visitNode(S.initializer,P,e.isExpression):Q.createVoidZero())}function Mt(S){var Ce=e.getParseTreeNode(S,e.isModuleDeclaration);return Ce?e.isInstantiatedModule(Ce,e.shouldPreserveConstEnums(f)):!0}function xt(S){return ai(S)||Dn(S)&&b!==e.ModuleKind.ES2015&&b!==e.ModuleKind.ES2020&&b!==e.ModuleKind.ES2022&&b!==e.ModuleKind.ESNext&&b!==e.ModuleKind.System}function ut(S){ee||(ee=new e.Map);var Ce=Rt(S);ee.has(Ce)||ee.set(Ce,S)}function Dt(S){if(ee){var Ce=Rt(S);return ee.get(Ce)===S}return!0}function Rt(S){return e.Debug.assertNode(S.name,e.isIdentifier),S.name.escapedText}function Ii(S,Ce){var qe=Q.createVariableStatement(e.visitNodes(Ce.modifiers,D,e.isModifier),Q.createVariableDeclarationList([Q.createVariableDeclaration(Q.getLocalName(Ce,!1,!0))],O.kind===305?0:1));if(e.setOriginalNode(qe,Ce),ut(Ce),Dt(Ce))return Ce.kind===260?e.setSourceMapRange(qe.declarationList,Ce):e.setSourceMapRange(qe,Ce),e.setCommentRange(qe,Ce),e.addEmitFlags(qe,4195328),S.push(qe),!0;var br=Q.createMergeDeclarationMarker(qe);return e.setEmitFlags(br,4195840),S.push(br),!1}function Ki(S){if(!Mt(S))return Q.createNotEmittedStatement(S);e.Debug.assertNode(S.name,e.isIdentifier,\"A TypeScript namespace should have an Identifier name.\"),En();var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?Q.getExternalModuleOrNamespaceExportName(q,S,!1,!0):Q.getLocalName(S,!1,!0),Qi=Q.createLogicalOr(Pi,Q.createAssignment(Pi,Q.createObjectLiteralExpression()));if(xt(S)){var Ct=Q.getLocalName(S,!1,!0);Qi=Q.createAssignment(Ct,Qi)}var sa=Q.createExpressionStatement(Q.createCallExpression(Q.createFunctionExpression(void 0,void 0,void 0,void 0,[Q.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,Fi(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(Q.createEndOfDeclarationMarker(S)),Ce}function Fi(S,Ce){var qe=q,br=R,Zr=ee;q=Ce,R=S,ee=void 0;var Si=[];N();var Pi,Qi;if(S.body)if(S.body.kind===262)V(S.body,function(Wa){return e.addRange(Si,e.visitNodes(Wa.statements,H,e.isStatement))}),Pi=S.body.statements,Qi=S.body;else{var Ct=Ki(S.body);Ct&&(e.isArray(Ct)?e.addRange(Si,Ct):Si.push(Ct));var sa=ui(S).body;Pi=e.moveRangePos(sa.statements,-1)}e.insertStatementsAfterStandardPrologue(Si,m()),q=qe,R=br,ee=Zr;var en=Q.createBlock(e.setTextRange(Q.createNodeArray(Si),Pi),!0);return e.setTextRange(en,Qi),(!S.body||S.body.kind!==262)&&e.setEmitFlags(en,e.getEmitFlags(en)|1536),en}function ui(S){if(S.body.kind===261){var Ce=ui(S.body);return Ce||S.body}}function Bt(S){if(!S.importClause)return S;if(!S.importClause.isTypeOnly){var Ce=e.visitNode(S.importClause,wt,e.isImportClause);return Ce||f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2?Q.updateImportDeclaration(S,void 0,void 0,Ce,S.moduleSpecifier,S.assertClause):void 0}}function wt(S){e.Debug.assert(!S.isTypeOnly);var Ce=Gr(S)?S.name:void 0,qe=e.visitNode(S.namedBindings,na,e.isNamedImportBindings);return Ce||qe?Q.updateImportClause(S,!1,Ce,qe):void 0}function na(S){if(S.kind===268)return Gr(S)?S:void 0;var Ce=f.preserveValueImports&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNodes(S.elements,Ai,e.isImportSpecifier);return Ce||e.some(qe)?Q.updateNamedImports(S,qe):void 0}function Ai(S){return!S.isTypeOnly&&Gr(S)?S:void 0}function Oi(S){return oe.isValueAliasDeclaration(S)?e.visitEachChild(S,P,E):void 0}function ji(S){if(!S.isTypeOnly){if(!S.exportClause||e.isNamespaceExport(S.exportClause))return S;var Ce=!!S.moduleSpecifier&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNode(S.exportClause,function(br){return At(br,Ce)},e.isNamedExportBindings);return qe?Q.updateExportDeclaration(S,void 0,void 0,S.isTypeOnly,qe,S.moduleSpecifier,S.assertClause):void 0}}function Vi(S,Ce){var qe=e.visitNodes(S.elements,ba,e.isExportSpecifier);return Ce||e.some(qe)?Q.updateNamedExports(S,qe):void 0}function at(S){return Q.updateNamespaceExport(S,e.visitNode(S.name,P,e.isIdentifier))}function At(S,Ce){return e.isNamespaceExport(S)?at(S):Vi(S,Ce)}function ba(S){return!S.isTypeOnly&&oe.isValueAliasDeclaration(S)?S:void 0}function $a(S){return Gr(S)||!e.isExternalModule(ie)&&oe.isTopLevelValueImportEqualsWithEntityName(S)}function Qa(S){if(!S.isTypeOnly){if(e.isExternalModuleImportEqualsDeclaration(S)){var Ce=Gr(S);return!Ce&&f.importsNotUsedAsValues===1?e.setOriginalNode(e.setTextRange(Q.createImportDeclaration(void 0,void 0,void 0,S.moduleReference.expression,void 0),S),S):Ce?e.visitEachChild(S,P,E):void 0}if(!!$a(S)){var qe=e.createExpressionFromEntityName(Q,S.moduleReference);return e.setEmitFlags(qe,3584),ka(S)||!ai(S)?e.setOriginalNode(e.setTextRange(Q.createVariableStatement(e.visitNodes(S.modifiers,D,e.isModifier),Q.createVariableDeclarationList([e.setOriginalNode(Q.createVariableDeclaration(S.name,void 0,void 0,qe),S)])),S),S):e.setOriginalNode(Bi(S.name,qe,S),S)}}}function ai(S){return R!==void 0&&e.hasSyntacticModifier(S,1)}function Dn(S){return R===void 0&&e.hasSyntacticModifier(S,1)}function ka(S){return Dn(S)&&!e.hasSyntacticModifier(S,512)}function Ba(S){return Dn(S)&&e.hasSyntacticModifier(S,512)}function pn(S){return Q.createExpressionStatement(S)}function Cn(S,Ce){var qe=Q.createAssignment(Q.getExternalModuleOrNamespaceExportName(q,Ce,!1,!0),Q.getLocalName(Ce));e.setSourceMapRange(qe,e.createRange(Ce.name?Ce.name.pos:Ce.pos,Ce.end));var br=Q.createExpressionStatement(qe);e.setSourceMapRange(br,e.createRange(-1,Ce.end)),S.push(br)}function Bi(S,Ce,qe){return e.setTextRange(Q.createExpressionStatement(Q.createAssignment(Q.getNamespaceMemberName(q,S,!1,!0),Ce)),qe)}function kn(S,Ce,qe){return e.setTextRange(Q.createAssignment(xn(S),Ce),qe)}function xn(S){return Q.getNamespaceMemberName(q,S,!1,!0)}function Kn(S){var Ce=Q.getGeneratedNameForNode(S);return e.setSourceMapRange(Ce,S.name),Ce}function Pn(S){return Q.getGeneratedNameForNode(S)}function eo(S){if(oe.getNodeCheckFlags(S)&16777216){Ro();var Ce=Q.createUniqueName(S.name&&!e.isGeneratedIdentifier(S.name)?e.idText(S.name):\"default\");return x[e.getOriginalNodeId(S)]=Ce,G(Ce),Ce}}function Rn(S){return Q.createPropertyAccessExpression(Q.getDeclarationName(S),\"prototype\")}function Da(S,Ce){return e.isStatic(Ce)?Q.getDeclarationName(S):Rn(S)}function bo(){(F&8)===0&&(F|=8,E.enableSubstitution(79))}function Ro(){(F&1)===0&&(F|=1,E.enableSubstitution(79),x=[])}function En(){(F&2)===0&&(F|=2,E.enableSubstitution(79),E.enableSubstitution(297),E.enableEmitNotification(261))}function Wn(S){return e.getOriginalNode(S).kind===261}function to(S){return e.getOriginalNode(S).kind===260}function Co(S,Ce,qe){var br=X,Zr=ie;e.isSourceFile(Ce)&&(ie=Ce),F&2&&Wn(Ce)&&(X|=2),F&8&&to(Ce)&&(X|=8),se(S,Ce,qe),X=br,ie=Zr}function Ko(S,Ce){return Ce=J(S,Ce),S===1?no(Ce):e.isShorthandPropertyAssignment(Ce)?Oo(Ce):Ce}function Oo(S){if(F&2){var Ce=S.name,qe=xi(Ce);if(qe){if(S.objectAssignmentInitializer){var br=Q.createAssignment(qe,S.objectAssignmentInitializer);return e.setTextRange(Q.createPropertyAssignment(Ce,br),S)}return e.setTextRange(Q.createPropertyAssignment(Ce,qe),S)}}return S}function no(S){switch(S.kind){case 79:return $o(S);case 206:return St(S);case 207:return pa(S)}return S}function $o(S){return Pr(S)||xi(S)||S}function Pr(S){if(F&1&&oe.getNodeCheckFlags(S)&33554432){var Ce=oe.getReferencedValueDeclaration(S);if(Ce){var qe=x[Ce.id];if(qe){var br=Q.cloneNode(qe);return e.setSourceMapRange(br,S),e.setCommentRange(br,S),br}}}}function xi(S){if(F&X&&!e.isGeneratedIdentifier(S)&&!e.isLocalName(S)){var Ce=oe.getReferencedExportContainer(S,!1);if(Ce&&Ce.kind!==305){var qe=X&2&&Ce.kind===261||X&8&&Ce.kind===260;if(qe)return e.setTextRange(Q.createPropertyAccessExpression(Q.getGeneratedNameForNode(Ce),S),S)}}}function St(S){return Jn(S)}function pa(S){return Jn(S)}function dn(S){return S.replace(/\\*\\//g,\"*_/\")}function Jn(S){var Ce=Qe(S);if(Ce!==void 0){e.setConstantValue(S,Ce);var qe=typeof Ce==\"string\"?Q.createStringLiteral(Ce):Q.createNumericLiteral(Ce);if(!f.removeComments){var br=e.getOriginalNode(S,e.isAccessExpression);e.addSyntheticTrailingComment(qe,3,\" \".concat(dn(e.getTextOfNode(br)),\" \"))}return qe}return S}function Qe(S){if(!f.isolatedModules)return e.isPropertyAccessExpression(S)||e.isElementAccessExpression(S)?oe.getConstantValue(S):void 0}function Gr(S){return f.preserveValueImports?oe.isValueAliasDeclaration(S):oe.isReferencedAliasDeclaration(S)}}e.transformTypeScript=B})(ke||(ke={}));var ke;(function(e){var a;(function(p){p[p.ClassAliases=1]=\"ClassAliases\",p[p.ClassStaticThisOrSuperReference=2]=\"ClassStaticThisOrSuperReference\"})(a||(a={}));var C;(function(p){p.Field=\"f\",p.Method=\"m\",p.Accessor=\"a\"})(C=e.PrivateIdentifierKind||(e.PrivateIdentifierKind={}));var w;(function(p){p[p.None=0]=\"None\",p[p.ClassWasDecorated=1]=\"ClassWasDecorated\",p[p.NeedsClassConstructorReference=2]=\"NeedsClassConstructorReference\",p[p.NeedsClassSuperReference=4]=\"NeedsClassSuperReference\",p[p.NeedsSubstitutionForThisInClassStaticField=8]=\"NeedsSubstitutionForThisInClassStaticField\"})(w||(w={}));function B(p){var m=p.factory,G=p.hoistVariableDeclaration,oe=p.endLexicalEnvironment,f=p.startLexicalEnvironment,T=p.resumeLexicalEnvironment,K=p.addBlockScopedVariable,b=p.getEmitResolver(),se=p.getCompilerOptions(),J=e.getEmitScriptTarget(se),ie=e.getUseDefineForClassFields(se),R=J<9,q=J<9,O=q&&J>=2,ve=p.onSubstituteNode;p.onSubstituteNode=qr;var ee=p.onEmitNode;p.onEmitNode=or;var he,F,x,X,$=[],A=new e.Map,y,V,L;return e.chainBundle(p,P);function P(Je){var xe=p.getCompilerOptions();if(Je.isDeclarationFile||ie&&e.getEmitScriptTarget(xe)>=9)return Je;var vr=e.visitEachChild(Je,U,p);return e.addEmitHelpers(vr,p.readEmitHelpers()),vr}function k(Je,xe){if(Je.transformFlags&8388608)switch(Je.kind){case 226:case 257:return de(Je);case 167:return ue(Je);case 237:return D(Je);case 80:return I(Je);case 170:return Br(Je)}if(Je.transformFlags&8388608||Je.transformFlags&33554432&&O&&L&&y)switch(Je.kind){case 219:case 220:return ge(Je,xe);case 221:return _e(Je,xe);case 208:return He(Je);case 210:return rr(Je);case 206:return Z(Je);case 207:return Be(Je);case 238:return ze(Je);case 242:return Re(Je);case 256:case 213:case 171:case 169:case 172:case 173:{var vr=L;L=void 0;var mr=e.visitEachChild(Je,U,p);return L=vr,mr}}return e.visitEachChild(Je,U,p)}function Y(Je){return k(Je,!0)}function U(Je){return k(Je,!1)}function j(Je){switch(Je.kind){case 291:return e.visitEachChild(Je,j,p);case 228:return ir(Je)}return U(Je)}function H(Je){switch(Je.kind){case 205:case 204:return Wr(Je);default:return U(Je)}}function I(Je){return!R||e.isStatement(Je.parent)?Je:e.setOriginalNode(m.createIdentifier(\"\"),Je)}function l(Je){if(!R)return Je;var xe=Je.left;e.Debug.assertNode(xe,e.isPrivateIdentifier),e.Debug.assert(Je.operatorToken.kind===101);var vr=ti(xe);if(vr){var mr=e.visitNode(Je.right,U,e.isExpression);return e.setOriginalNode(p.getEmitHelperFactory().createClassPrivateFieldInHelper(vr.brandCheckIdentifier,mr),Je)}return e.visitEachChild(Je,U,p)}function d(Je){switch(Je.kind){case 171:return;case 172:case 173:case 169:return g(Je);case 167:return ue(Je);case 162:return fe(Je);case 234:return Je;default:return U(Je)}}function D(Je){var xe=X;X=[];var vr=e.visitEachChild(Je,U,p),mr=e.some(X)?Ve([vr],X,!0):vr;return X=xe,mr}function fe(Je){var xe=e.visitEachChild(Je,U,p);if(e.some(x)){var vr=x;vr.push(xe.expression),x=[],xe=m.updateComputedPropertyName(xe,m.inlineExpressions(vr))}return xe}function g(Je){if(e.Debug.assert(!e.some(Je.decorators)),!R||!e.isPrivateIdentifier(Je.name))return e.visitEachChild(Je,d,p);var xe=ti(Je.name);if(e.Debug.assert(xe,\"Undeclared private name for property declaration.\"),!xe.isValid)return Je;var vr=ne(Je);vr&&pi().push(m.createAssignment(vr,m.createFunctionExpression(e.filter(Je.modifiers,function(mr){return!e.isStaticModifier(mr)}),Je.asteriskToken,vr,void 0,e.visitParameterList(Je.parameters,d,p),void 0,e.visitFunctionBody(Je.body,d,p))))}function ne(Je){e.Debug.assert(e.isPrivateIdentifier(Je.name));var xe=ti(Je.name);if(e.Debug.assert(xe,\"Undeclared private name for property declaration.\"),xe.kind===\"m\")return xe.methodName;if(xe.kind===\"a\"){if(e.isGetAccessor(Je))return xe.getterName;if(e.isSetAccessor(Je))return xe.setterName}}function ue(Je){if(e.Debug.assert(!e.some(Je.decorators)),e.isPrivateIdentifier(Je.name)){if(!R)return e.isStatic(Je)?e.visitEachChild(Je,U,p):m.updatePropertyDeclaration(Je,void 0,e.visitNodes(Je.modifiers,U,e.isModifier),Je.name,void 0,void 0,void 0);var xe=ti(Je.name);if(e.Debug.assert(xe,\"Undeclared private name for property declaration.\"),!xe.isValid)return Je}var vr=et(Je.name,!!Je.initializer||ie);if(vr&&!e.isSimpleInlineableExpression(vr)&&pi().push(vr),e.isStatic(Je)&&!R&&!ie){var mr=ur(Je,m.createThis());if(mr){var Ar=m.createClassStaticBlockDeclaration(void 0,void 0,m.createBlock([mr]));return e.setOriginalNode(Ar,Je),e.setCommentRange(Ar,Je),e.setCommentRange(mr,{pos:-1,end:-1}),e.setSyntheticLeadingComments(mr,void 0),e.setSyntheticTrailingComments(mr,void 0),Ar}}}function We(Je,xe){return Fe(Je,e.visitNode(xe,U,e.isExpression))}function Fe(Je,xe){switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case\"a\":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.getterName);case\"m\":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.methodName);case\"f\":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,\"Unknown private element type\")}}function Z(Je){if(R&&e.isPrivateIdentifier(Je.name)){var xe=ti(Je.name);if(xe)return e.setTextRange(e.setOriginalNode(We(xe,Je.expression),Je),Je)}if(O&&e.isSuperProperty(Je)&&e.isIdentifier(Je.name)&&L&&y){var vr=y.classConstructor,mr=y.superClassReference,Ar=y.facts;if(Ar&1)return pe(Je);if(vr&&mr){var Oe=m.createReflectGetCall(mr,m.createStringLiteralFromNode(Je.name),vr);return e.setOriginalNode(Oe,Je.expression),e.setTextRange(Oe,Je.expression),Oe}}return e.visitEachChild(Je,U,p)}function Be(Je){if(O&&e.isSuperProperty(Je)&&L&&y){var xe=y.classConstructor,vr=y.superClassReference,mr=y.facts;if(mr&1)return pe(Je);if(xe&&vr){var Ar=m.createReflectGetCall(vr,e.visitNode(Je.argumentExpression,U,e.isExpression),xe);return e.setOriginalNode(Ar,Je.expression),e.setTextRange(Ar,Je.expression),Ar}}return e.visitEachChild(Je,U,p)}function ge(Je,xe){if(Je.operator===45||Je.operator===46){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.operand)){var vr=void 0;if(vr=ti(Je.operand.name)){var mr=e.visitNode(Je.operand.expression,U,e.isExpression),Ar=Ee(mr),Oe=Ar.readExpression,nr=Ar.initializeExpression,Mr=We(vr,Oe),Pe=e.isPrefixUnaryExpression(Je)||xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=we(vr,nr||Oe,Mr,63),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}else if(O&&e.isSuperProperty(Je.operand)&&L&&y){var Ue=y.classConstructor,fr=y.superClassReference,De=y.facts;if(De&1){var gr=pe(Je.operand);return e.isPrefixUnaryExpression(Je)?m.updatePrefixUnaryExpression(Je,gr):m.updatePostfixUnaryExpression(Je,gr)}if(Ue&&fr){var Vr=void 0,Tr=void 0;if(e.isPropertyAccessExpression(Je.operand)?e.isIdentifier(Je.operand.name)&&(Tr=Vr=m.createStringLiteralFromNode(Je.operand.name)):e.isSimpleInlineableExpression(Je.operand.argumentExpression)?Tr=Vr=Je.operand.argumentExpression:(Tr=m.createTempVariable(G),Vr=m.createAssignment(Tr,e.visitNode(Je.operand.argumentExpression,U,e.isExpression))),Vr&&Tr){var Mr=m.createReflectGetCall(fr,Tr,Ue);e.setTextRange(Mr,Je.operand);var Pe=xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=m.createReflectSetCall(fr,Vr,Mr,Ue),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}}}return e.visitEachChild(Je,U,p)}function Re(Je){return m.updateForStatement(Je,e.visitNode(Je.initializer,Y,e.isForInitializer),e.visitNode(Je.condition,U,e.isExpression),e.visitNode(Je.incrementor,Y,e.isExpression),e.visitIterationBody(Je.statement,U,p))}function ze(Je){return m.updateExpressionStatement(Je,e.visitNode(Je.expression,Y,e.isExpression))}function Ee(Je){var xe=e.nodeIsSynthesized(Je)?Je:m.cloneNode(Je);if(e.isSimpleInlineableExpression(Je))return{readExpression:xe,initializeExpression:void 0};var vr=m.createTempVariable(G),mr=m.createAssignment(vr,xe);return{readExpression:vr,initializeExpression:mr}}function He(Je){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.expression)){var xe=m.createCallBinding(Je.expression,G,J),vr=xe.thisArg,mr=xe.target;return e.isCallChain(Je)?m.updateCallChain(Je,m.createPropertyAccessChain(e.visitNode(mr,U),Je.questionDotToken,\"call\"),void 0,void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0)):m.updateCallExpression(Je,m.createPropertyAccessExpression(e.visitNode(mr,U),\"call\"),void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0))}if(O&&e.isSuperProperty(Je.expression)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionCallCall(e.visitNode(Je.expression,U,e.isExpression),y.classConstructor,e.visitNodes(Je.arguments,U,e.isExpression));return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),Ar}return e.visitEachChild(Je,U,p)}function rr(Je){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.tag)){var xe=m.createCallBinding(Je.tag,G,J),vr=xe.thisArg,mr=xe.target;return m.updateTaggedTemplateExpression(Je,m.createCallExpression(m.createPropertyAccessExpression(e.visitNode(mr,U),\"bind\"),void 0,[e.visitNode(vr,U,e.isExpression)]),void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}if(O&&e.isSuperProperty(Je.tag)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionBindCall(e.visitNode(Je.tag,U,e.isExpression),y.classConstructor,[]);return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),m.updateTaggedTemplateExpression(Je,Ar,void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}return e.visitEachChild(Je,U,p)}function Ie(Je){if(R){y&&A.set(e.getOriginalNodeId(Je),y),f();var xe=L;L=Je;var vr=e.visitNodes(Je.body.statements,U,e.isStatement);vr=m.mergeLexicalEnvironment(vr,oe()),L=xe;var mr=m.createImmediatelyInvokedArrowFunction(vr);return e.setOriginalNode(mr,Je),e.setTextRange(mr,Je),e.addEmitFlags(mr,2),mr}}function _e(Je,xe){if(e.isDestructuringAssignment(Je)){var vr=x;x=void 0,Je=m.updateBinaryExpression(Je,e.visitNode(Je.left,H),Je.operatorToken,e.visitNode(Je.right,U));var mr=e.some(x)?m.inlineExpressions(e.compact(Ve(Ve([],x,!0),[Je],!1))):Je;return x=vr,mr}if(e.isAssignmentExpression(Je)){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.left)){var Ar=ti(Je.left.name);if(Ar)return e.setTextRange(e.setOriginalNode(we(Ar,Je.left.expression,Je.right,Je.operatorToken.kind),Je),Je)}else if(O&&e.isSuperProperty(Je.left)&&L&&y){var Oe=y.classConstructor,nr=y.superClassReference,Mr=y.facts;if(Mr&1)return m.updateBinaryExpression(Je,pe(Je.left),Je.operatorToken,e.visitNode(Je.right,U,e.isExpression));if(Oe&&nr){var Pe=e.isElementAccessExpression(Je.left)?e.visitNode(Je.left.argumentExpression,U,e.isExpression):e.isIdentifier(Je.left.name)?m.createStringLiteralFromNode(Je.left.name):void 0;if(Pe){var Ue=e.visitNode(Je.right,U,e.isExpression);if(e.isCompoundAssignment(Je.operatorToken.kind)){var fr=Pe;e.isSimpleInlineableExpression(Pe)||(fr=m.createTempVariable(G),Pe=m.createAssignment(fr,Pe));var De=m.createReflectGetCall(nr,fr,Oe);e.setOriginalNode(De,Je.left),e.setTextRange(De,Je.left),Ue=m.createBinaryExpression(De,e.getNonAssignmentOperatorForCompoundAssignment(Je.operatorToken.kind),Ue),e.setTextRange(Ue,Je)}var gr=xe?void 0:m.createTempVariable(G);return gr&&(Ue=m.createAssignment(gr,Ue),e.setTextRange(gr,Je)),Ue=m.createReflectSetCall(nr,Pe,Ue,Oe),e.setOriginalNode(Ue,Je),e.setTextRange(Ue,Je),gr&&(Ue=m.createComma(Ue,gr),e.setTextRange(Ue,Je)),Ue}}}}return Je.operatorToken.kind===101&&e.isPrivateIdentifier(Je.left)?l(Je):e.visitEachChild(Je,U,p)}function we(Je,xe,vr,mr){if(xe=e.visitNode(xe,U,e.isExpression),vr=e.visitNode(vr,U,e.isExpression),e.isCompoundAssignment(mr)){var Ar=Ee(xe),Oe=Ar.readExpression,nr=Ar.initializeExpression;xe=nr||Oe,vr=m.createBinaryExpression(Fe(Je,Oe),e.getNonAssignmentOperatorForCompoundAssignment(mr),vr)}switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case\"a\":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.setterName);case\"m\":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,void 0);case\"f\":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,\"Unknown private element type\")}}function de(Je){if(!e.forEach(Je.members,ye))return e.visitEachChild(Je,U,p);var xe=x;if(x=void 0,Gi(),R){var vr=e.getNameOfDeclaration(Je);vr&&e.isIdentifier(vr)&&(_r().className=e.idText(vr));var mr=Ae(Je);e.some(mr)&&(_r().weakSetName=Xe(\"instances\",mr[0].name))}var Ar=e.isClassDeclaration(Je)?Cr(Je):Ye(Je);return Wt(),x=xe,Ar}function ye(Je){return e.isPropertyDeclaration(Je)||e.isClassStaticBlockDeclaration(Je)||R&&Je.name&&e.isPrivateIdentifier(Je.name)}function Ae(Je){return e.filter(Je.members,e.isNonStaticMethodOrAccessorWithPrivateName)}function er(Je){var xe=0,vr=e.getOriginalNode(Je);e.isClassDeclaration(vr)&&e.classOrConstructorParameterIsDecorated(vr)&&(xe|=1);for(var mr=0,Ar=Je.members;mr=0?(Pe=fr+1,De=Ve(Ve(Ve([],De.slice(0,Ue),!0),e.visitNodes(xe.body.statements,U,e.isStatement,Ue,Pe-Ue),!0),De.slice(Ue),!0)):Ue>=0&&(Pe=Ue)),Mr&&De.push(m.createExpressionStatement(m.createCallExpression(m.createSuper(),void 0,[m.createSpreadElement(m.createIdentifier(\"arguments\"))])));var gr=0;if(xe!=null&&xe.body)if(ie)De=De.filter(function(Li){return!e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)});else{for(var Vr=0,Tr=xe.body.statements;Vr0){var Ui=e.visitNodes(xe.body.statements,U,e.isStatement,Pe,gr);if(fr>=0)e.addRange(De,Ui);else{var Yi=Ue;Mr&&Yi++,De=Ve(Ve(Ve([],De.slice(0,Yi),!0),Ui,!0),De.slice(Yi),!0)}Pe+=gr}}var Wi=m.createThis();return mi(De,Oe,Wi),Ge(De,Ar,Wi),xe&&e.addRange(De,e.visitNodes(xe.body.statements,ct,e.isStatement,Pe)),De=m.mergeLexicalEnvironment(De,oe()),e.setTextRange(m.createBlock(e.setTextRange(m.createNodeArray(De),xe?xe.body.statements:Je.members),!0),xe?xe.body:void 0);function ct(Li){if(!(ie&&e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)))return U(Li)}}function Ge(Je,xe,vr){for(var mr=0,Ar=xe;mr=0;--mr){var Ar=$[mr];if(!!Ar){var vr=(xe=Ar.privateIdentifierEnvironment)===null||xe===void 0?void 0:xe.identifiers.get(Je.escapedText);if(vr)return vr}}}function Ze(Je){var xe=m.getGeneratedNameForNode(Je),vr=ti(Je.name);if(!vr)return e.visitEachChild(Je,U,p);var mr=Je.expression;return(e.isThisProperty(Je)||e.isSuperProperty(Je)||!e.isSimpleCopiableExpression(Je.expression))&&(mr=m.createTempVariable(G,!0),pi().push(m.createBinaryExpression(mr,63,e.visitNode(Je.expression,U,e.isExpression)))),m.createAssignmentTargetWrapper(xe,we(vr,mr,xe,63))}function Sr(Je){var xe=e.getTargetOfBindingOrAssignmentElement(Je);if(xe){var vr=void 0;if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}if(vr)return e.isAssignmentExpression(Je)?m.updateBinaryExpression(Je,vr,Je.operatorToken,e.visitNode(Je.right,U,e.isExpression)):e.isSpreadElement(Je)?m.updateSpreadElement(Je,vr):vr}return e.visitNode(Je,H)}function zr(Je){if(e.isObjectBindingOrAssignmentElement(Je)&&!e.isShorthandPropertyAssignment(Je)){var xe=e.getTargetOfBindingOrAssignmentElement(Je),vr=void 0;if(xe){if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}}if(e.isPropertyAssignment(Je)){var Pe=e.getInitializerOfBindingOrAssignmentElement(Je);return m.updatePropertyAssignment(Je,e.visitNode(Je.name,U,e.isPropertyName),vr?Pe?m.createAssignment(vr,e.visitNode(Pe,U)):vr:e.visitNode(Je.initializer,H,e.isExpression))}if(e.isSpreadAssignment(Je))return m.updateSpreadAssignment(Je,vr||e.visitNode(Je.expression,H,e.isExpression));e.Debug.assert(vr===void 0,\"Should not have generated a wrapped target\")}return e.visitNode(Je,U)}function Wr(Je){return e.isArrayLiteralExpression(Je)?m.updateArrayLiteralExpression(Je,e.visitNodes(Je.elements,Sr,e.isExpression)):m.updateObjectLiteralExpression(Je,e.visitNodes(Je.properties,zr,e.isObjectLiteralElementLike))}}e.transformClassFields=B;function E(p,m){return e.factory.createAssignment(p,e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(\"value\",m||e.factory.createVoidZero())]))}function Q(p,m,G){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(G,\"set\"),void 0,[p,m||e.factory.createVoidZero()])}function le(p,m){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(m,\"add\"),void 0,[p])}function N(p){return p.escapedText===\"#constructor\"}})(ke||(ke={}));var ke;(function(e){var a;(function(E){E[E.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"})(a||(a={}));var C;(function(E){E[E.NonTopLevel=1]=\"NonTopLevel\",E[E.HasLexicalThis=2]=\"HasLexicalThis\"})(C||(C={}));function w(E){var Q=E.factory,le=E.getEmitHelperFactory,N=E.resumeLexicalEnvironment,p=E.endLexicalEnvironment,m=E.hoistVariableDeclaration,G=E.getEmitResolver(),oe=E.getCompilerOptions(),f=e.getEmitScriptTarget(oe),T,K=0,b,se,J,ie=[],R=0,q=E.onEmitNode,O=E.onSubstituteNode;return E.onEmitNode=Re,E.onSubstituteNode=ze,e.chainBundle(E,ve);function ve(de){if(de.isDeclarationFile)return de;ee(1,!1),ee(2,!e.isEffectiveStrictModeSourceFile(de,oe));var ye=e.visitEachChild(de,A,E);return e.addEmitHelpers(ye,E.readEmitHelpers()),ye}function ee(de,ye){R=ye?R|de:R&~de}function he(de){return(R&de)!==0}function F(){return!he(1)}function x(){return he(2)}function X(de,ye,Ae){var er=de&~R;if(er){ee(er,!0);var ir=ye(Ae);return ee(er,!1),ir}return ye(Ae)}function $(de){return e.visitEachChild(de,A,E)}function A(de){if((de.transformFlags&256)===0)return de;switch(de.kind){case 131:return;case 218:return U(de);case 169:return X(3,j,de);case 256:return X(3,H,de);case 213:return X(3,I,de);case 214:return X(1,l,de);case 206:return se&&e.isPropertyAccessExpression(de)&&de.expression.kind===106&&se.add(de.name.escapedText),e.visitEachChild(de,A,E);case 207:return se&&de.expression.kind===106&&(J=!0),e.visitEachChild(de,A,E);case 172:case 173:case 171:case 257:case 226:return X(3,$,de);default:return e.visitEachChild(de,A,E)}}function y(de){if(e.isNodeWithPossibleHoistedDeclaration(de))switch(de.kind){case 237:return L(de);case 242:return Y(de);case 243:return P(de);case 244:return k(de);case 292:return V(de);case 235:case 249:case 263:case 289:case 290:case 252:case 240:case 241:case 239:case 248:case 250:return e.visitEachChild(de,y,E);default:return e.Debug.assertNever(de,\"Unhandled node.\")}return A(de)}function V(de){var ye=new e.Set;d(de.variableDeclaration,ye);var Ae;if(ye.forEach(function(Cr,Ye){b.has(Ye)&&(Ae||(Ae=new e.Set(b)),Ae.delete(Ye))}),Ae){var er=b;b=Ae;var ir=e.visitEachChild(de,y,E);return b=er,ir}else return e.visitEachChild(de,y,E)}function L(de){if(D(de.declarationList)){var ye=fe(de.declarationList,!1);return ye?Q.createExpressionStatement(ye):void 0}return e.visitEachChild(de,A,E)}function P(de){return Q.updateForInStatement(de,D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function k(de){return Q.updateForOfStatement(de,e.visitNode(de.awaitModifier,A,e.isToken),D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function Y(de){var ye=de.initializer;return Q.updateForStatement(de,D(ye)?fe(ye,!1):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.condition,A,e.isExpression),e.visitNode(de.incrementor,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function U(de){return F()?e.visitEachChild(de,A,E):e.setOriginalNode(e.setTextRange(Q.createYieldExpression(void 0,e.visitNode(de.expression,A,e.isExpression)),de),de)}function j(de){return Q.updateMethodDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function H(de){return Q.updateFunctionDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function I(de){return Q.updateFunctionExpression(de,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function l(de){return Q.updateArrowFunction(de,e.visitNodes(de.modifiers,A,e.isModifier),void 0,e.visitParameterList(de.parameters,A,E),void 0,de.equalsGreaterThanToken,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function d(de,ye){var Ae=de.name;if(e.isIdentifier(Ae))ye.add(Ae.escapedText);else for(var er=0,ir=Ae.elements;er=2&&G.getNodeCheckFlags(de)&6144;if(yr&&(ge(),se.size)){var Ir=B(Q,G,de,se);ie[e.getNodeId(Ir)]=!0,e.insertStatementsAfterStandardPrologue(Ge,[Ir])}var wr=Q.createBlock(Ge,!0);e.setTextRange(wr,de.body),yr&&J&&(G.getNodeCheckFlags(de)&4096?e.addEmitHelper(wr,e.advancedAsyncSuperHelper):G.getNodeCheckFlags(de)&2048&&e.addEmitHelper(wr,e.asyncSuperHelper)),be=wr}return b=Ye,ir||(se=n,J=lr),be}function Z(de,ye){return e.isBlock(de)?Q.updateBlock(de,e.visitNodes(de.statements,y,e.isStatement,ye)):Q.converters.convertToFunctionBlock(e.visitNode(de,y,e.isConciseBody))}function Be(de){var ye=de&&e.getEntityNameFromTypeNode(de);if(ye&&e.isEntityName(ye)){var Ae=G.getTypeReferenceSerializationKind(ye);if(Ae===e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue||Ae===e.TypeReferenceSerializationKind.Unknown)return ye}}function ge(){(T&1)===0&&(T|=1,E.enableSubstitution(208),E.enableSubstitution(206),E.enableSubstitution(207),E.enableEmitNotification(257),E.enableEmitNotification(169),E.enableEmitNotification(172),E.enableEmitNotification(173),E.enableEmitNotification(171),E.enableEmitNotification(237))}function Re(de,ye,Ae){if(T&1&&_e(ye)){var er=G.getNodeCheckFlags(ye)&6144;if(er!==K){var ir=K;K=er,q(de,ye,Ae),K=ir;return}}else if(T&&ie[e.getNodeId(ye)]){var ir=K;K=0,q(de,ye,Ae),K=ir;return}q(de,ye,Ae)}function ze(de,ye){return ye=O(de,ye),de===1&&K?Ee(ye):ye}function Ee(de){switch(de.kind){case 206:return He(de);case 207:return rr(de);case 208:return Ie(de)}return de}function He(de){return de.expression.kind===106?e.setTextRange(Q.createPropertyAccessExpression(Q.createUniqueName(\"_super\",48),de.name),de):de}function rr(de){return de.expression.kind===106?we(de.argumentExpression,de):de}function Ie(de){var ye=de.expression;if(e.isSuperProperty(ye)){var Ae=e.isPropertyAccessExpression(ye)?He(ye):rr(ye);return Q.createCallExpression(Q.createPropertyAccessExpression(Ae,\"call\"),void 0,Ve([Q.createThis()],de.arguments,!0))}return de}function _e(de){var ye=de.kind;return ye===257||ye===171||ye===169||ye===172||ye===173}function we(de,ye){return K&4096?e.setTextRange(Q.createPropertyAccessExpression(Q.createCallExpression(Q.createUniqueName(\"_superIndex\",48),void 0,[de]),\"value\"),ye):e.setTextRange(Q.createCallExpression(Q.createUniqueName(\"_superIndex\",48),void 0,[de]),ye)}}e.transformES2017=w;function B(E,Q,le,N){var p=(Q.getNodeCheckFlags(le)&4096)!==0,m=[];return N.forEach(function(G,oe){var f=e.unescapeLeadingUnderscores(oe),T=[];T.push(E.createPropertyAssignment(\"get\",E.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4)))),p&&T.push(E.createPropertyAssignment(\"set\",E.createArrowFunction(void 0,void 0,[E.createParameterDeclaration(void 0,void 0,void 0,\"v\",void 0,void 0,void 0)],void 0,void 0,E.createAssignment(e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4),E.createIdentifier(\"v\"))))),m.push(E.createPropertyAssignment(f,E.createObjectLiteralExpression(T)))}),E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.createUniqueName(\"_super\",48),void 0,void 0,E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier(\"Object\"),\"create\"),void 0,[E.createNull(),E.createObjectLiteralExpression(m,!0)]))],2))}e.createSuperAccessVariableStatement=B})(ke||(ke={}));var ke;(function(e){var a;(function(B){B[B.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"})(a||(a={}));var C;(function(B){B[B.None=0]=\"None\",B[B.HasLexicalThis=1]=\"HasLexicalThis\",B[B.IterationContainer=2]=\"IterationContainer\",B[B.AncestorFactsMask=3]=\"AncestorFactsMask\",B[B.SourceFileIncludes=1]=\"SourceFileIncludes\",B[B.SourceFileExcludes=2]=\"SourceFileExcludes\",B[B.StrictModeSourceFileIncludes=0]=\"StrictModeSourceFileIncludes\",B[B.ClassOrFunctionIncludes=1]=\"ClassOrFunctionIncludes\",B[B.ClassOrFunctionExcludes=2]=\"ClassOrFunctionExcludes\",B[B.ArrowFunctionIncludes=0]=\"ArrowFunctionIncludes\",B[B.ArrowFunctionExcludes=2]=\"ArrowFunctionExcludes\",B[B.IterationStatementIncludes=2]=\"IterationStatementIncludes\",B[B.IterationStatementExcludes=0]=\"IterationStatementExcludes\"})(C||(C={}));function w(B){var E=B.factory,Q=B.getEmitHelperFactory,le=B.resumeLexicalEnvironment,N=B.endLexicalEnvironment,p=B.hoistVariableDeclaration,m=B.getEmitResolver(),G=B.getCompilerOptions(),oe=e.getEmitScriptTarget(G),f=B.onEmitNode;B.onEmitNode=Ge;var T=B.onSubstituteNode;B.onSubstituteNode=ur;var K=!1,b,se,J,ie=0,R=0,q,O,ve,ee,he=[];return e.chainBundle(B,A);function F(pe,or){return R!==(R&~pe|or)}function x(pe,or){var qr=R;return R=(R&~pe|or)&3,qr}function X(pe){R=pe}function $(pe){O=e.append(O,E.createVariableDeclaration(pe))}function A(pe){if(pe.isDeclarationFile)return pe;q=pe;var or=g(pe);return e.addEmitHelpers(or,B.readEmitHelpers()),q=void 0,O=void 0,or}function y(pe){return Y(pe,!1)}function V(pe){return Y(pe,!0)}function L(pe){if(pe.kind!==131)return pe}function P(pe,or,qr,si){if(F(qr,si)){var Di=x(qr,si),wi=pe(or);return X(Di),wi}return pe(or)}function k(pe){return e.visitEachChild(pe,y,B)}function Y(pe,or){if((pe.transformFlags&128)===0)return pe;switch(pe.kind){case 218:return U(pe);case 224:return j(pe);case 247:return H(pe);case 250:return I(pe);case 205:return d(pe);case 221:return ue(pe,or);case 351:return We(pe,or);case 292:return Fe(pe);case 237:return Z(pe);case 254:return Be(pe);case 240:case 241:case 243:return P(k,pe,0,2);case 244:return Ee(pe,void 0);case 242:return P(Re,pe,0,2);case 217:return ze(pe);case 171:return P(Ae,pe,2,1);case 169:return P(Cr,pe,2,1);case 172:return P(er,pe,2,1);case 173:return P(ir,pe,2,1);case 256:return P(Ye,pe,2,1);case 213:return P(Er,pe,2,1);case 214:return P(Br,pe,2,0);case 164:return de(pe);case 238:return D(pe);case 212:return fe(pe,or);case 210:return ne(pe);case 206:return ve&&e.isPropertyAccessExpression(pe)&&pe.expression.kind===106&&ve.add(pe.name.escapedText),e.visitEachChild(pe,y,B);case 207:return ve&&pe.expression.kind===106&&(ee=!0),e.visitEachChild(pe,y,B);case 257:case 226:return P(k,pe,2,1);default:return e.visitEachChild(pe,y,B)}}function U(pe){return se&2&&se&1?e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Q().createAwaitHelper(e.visitNode(pe.expression,y,e.isExpression))),pe),pe):e.visitEachChild(pe,y,B)}function j(pe){if(se&2&&se&1){if(pe.asteriskToken){var or=e.visitNode(e.Debug.checkDefined(pe.expression),y,e.isExpression);return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Q().createAwaitHelper(E.updateYieldExpression(pe,pe.asteriskToken,e.setTextRange(Q().createAsyncDelegatorHelper(e.setTextRange(Q().createAsyncValuesHelper(or),or)),or)))),pe),pe)}return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())),pe),pe)}return e.visitEachChild(pe,y,B)}function H(pe){return se&2&&se&1?E.updateReturnStatement(pe,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())):e.visitEachChild(pe,y,B)}function I(pe){if(se&2){var or=e.unwrapInnermostStatementOfLabel(pe);return or.kind===244&&or.awaitModifier?Ee(or,pe):E.restoreEnclosingLabel(e.visitNode(or,y,e.isStatement,E.liftToBlock),pe)}return e.visitEachChild(pe,y,B)}function l(pe){for(var or,qr=[],si=0,Di=pe;si1){for(var si=1;si=2&&m.getNodeCheckFlags(pe)&6144;if(Xi){be();var et=e.createSuperAccessVariableStatement(E,m,pe,ve);he[e.getNodeId(et)]=!0,e.insertStatementsAfterStandardPrologue(or,[et])}or.push(wi),e.insertStatementsAfterStandardPrologue(or,N());var Gi=E.updateBlock(pe.body,or);return Xi&&ee&&(m.getNodeCheckFlags(pe)&4096?e.addEmitHelper(Gi,e.advancedAsyncSuperHelper):m.getNodeCheckFlags(pe)&2048&&e.addEmitHelper(Gi,e.asyncSuperHelper)),ve=si,ee=Di,Gi}function n(pe){var or;le();var qr=0,si=[],Di=(or=e.visitNode(pe.body,y,e.isConciseBody))!==null&&or!==void 0?or:E.createBlock([]);e.isBlock(Di)&&(qr=E.copyPrologue(Di.statements,si,!1,y)),e.addRange(si,lr(void 0,pe));var wi=N();if(qr>0||e.some(si)||e.some(wi)){var Xi=E.converters.convertToFunctionBlock(Di,!0);return e.insertStatementsAfterStandardPrologue(si,wi),e.addRange(si,Xi.statements.slice(qr)),E.updateBlock(Xi,e.setTextRange(E.createNodeArray(si),Xi.statements))}return Di}function lr(pe,or){for(var qr=!1,si=0,Di=or.parameters;si0){var Xi=e.flattenDestructuringBinding(wi,y,B,0,E.getGeneratedNameForNode(wi));if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.getGeneratedNameForNode(wi),Zt=e.visitNode(wi.initializer,y,e.isExpression),_r=E.createAssignment(Wt,Zt),Gi=E.createExpressionStatement(_r);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.cloneNode(wi.name);e.setTextRange(Wt,wi.name),e.setEmitFlags(Wt,48);var Zt=e.visitNode(wi.initializer,y,e.isExpression);e.addEmitFlags(Zt,1584);var _r=E.createAssignment(Wt,Zt);e.setTextRange(_r,wi),e.setEmitFlags(_r,1536);var pi=E.createBlock([E.createExpressionStatement(_r)]);e.setTextRange(pi,wi),e.setEmitFlags(pi,1953);var ae=E.createTypeCheck(E.cloneNode(wi.name),\"undefined\"),Gi=E.createIfStatement(ae,pi);e.startOnNewLine(Gi),e.setTextRange(Gi,wi),e.setEmitFlags(Gi,1050528),pe=e.append(pe,Gi)}}else if(wi.transformFlags&32768){qr=!0;var Xi=e.flattenDestructuringBinding(wi,y,B,1,E.getGeneratedNameForNode(wi),!1,!0);if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}}return pe}function be(){(b&1)===0&&(b|=1,B.enableSubstitution(208),B.enableSubstitution(206),B.enableSubstitution(207),B.enableEmitNotification(257),B.enableEmitNotification(169),B.enableEmitNotification(172),B.enableEmitNotification(173),B.enableEmitNotification(171),B.enableEmitNotification(237))}function Ge(pe,or,qr){if(b&1&&ii(or)){var si=m.getNodeCheckFlags(or)&6144;if(si!==ie){var Di=ie;ie=si,f(pe,or,qr),ie=Di;return}}else if(b&&he[e.getNodeId(or)]){var Di=ie;ie=0,f(pe,or,qr),ie=Di;return}f(pe,or,qr)}function ur(pe,or){return or=T(pe,or),pe===1&&ie?yr(or):or}function yr(pe){switch(pe.kind){case 206:return Ir(pe);case 207:return wr(pe);case 208:return Ur(pe)}return pe}function Ir(pe){return pe.expression.kind===106?e.setTextRange(E.createPropertyAccessExpression(E.createUniqueName(\"_super\",48),pe.name),pe):pe}function wr(pe){return pe.expression.kind===106?mi(pe.argumentExpression,pe):pe}function Ur(pe){var or=pe.expression;if(e.isSuperProperty(or)){var qr=e.isPropertyAccessExpression(or)?Ir(or):wr(or);return E.createCallExpression(E.createPropertyAccessExpression(qr,\"call\"),void 0,Ve([E.createThis()],pe.arguments,!0))}return pe}function ii(pe){var or=pe.kind;return or===257||or===171||or===169||or===172||or===173}function mi(pe,or){return ie&4096?e.setTextRange(E.createPropertyAccessExpression(E.createCallExpression(E.createIdentifier(\"_superIndex\"),void 0,[pe]),\"value\"),or):e.setTextRange(E.createCallExpression(E.createIdentifier(\"_superIndex\"),void 0,[pe]),or)}}e.transformES2018=w})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory;return e.chainBundle(C,B);function B(le){return le.isDeclarationFile?le:e.visitEachChild(le,E,C)}function E(le){if((le.transformFlags&64)===0)return le;switch(le.kind){case 292:return Q(le);default:return e.visitEachChild(le,E,C)}}function Q(le){return le.variableDeclaration?e.visitEachChild(le,E,C):w.updateCatchClause(le,w.createVariableDeclaration(w.createTempVariable(void 0)),e.visitNode(le.block,E,e.isBlock))}}e.transformES2019=a})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory,B=C.hoistVariableDeclaration;return e.chainBundle(C,E);function E(b){return b.isDeclarationFile?b:e.visitEachChild(b,Q,C)}function Q(b){if((b.transformFlags&32)===0)return b;switch(b.kind){case 208:{var se=m(b,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}case 206:case 207:if(e.isOptionalChain(b)){var se=oe(b,!1,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}return e.visitEachChild(b,Q,C);case 221:return b.operatorToken.kind===60?T(b):e.visitEachChild(b,Q,C);case 215:return K(b);default:return e.visitEachChild(b,Q,C)}}function le(b){e.Debug.assertNotNode(b,e.isNonNullChain);for(var se=[b];!b.questionDotToken&&!e.isTaggedTemplateExpression(b);)b=e.cast(e.skipPartiallyEmittedExpressions(b.expression),e.isOptionalChain),e.Debug.assertNotNode(b,e.isNonNullChain),se.unshift(b);return{expression:b.expression,chain:se}}function N(b,se,J){var ie=G(b.expression,se,J);return e.isSyntheticReference(ie)?w.createSyntheticReferenceExpression(w.updateParenthesizedExpression(b,ie.expression),ie.thisArg):w.updateParenthesizedExpression(b,ie)}function p(b,se,J){if(e.isOptionalChain(b))return oe(b,se,J);var ie=e.visitNode(b.expression,Q,e.isExpression);e.Debug.assertNotNode(ie,e.isSyntheticReference);var R;return se&&(e.isSimpleCopiableExpression(ie)?R=ie:(R=w.createTempVariable(B),ie=w.createAssignment(R,ie))),ie=b.kind===206?w.updatePropertyAccessExpression(b,ie,e.visitNode(b.name,Q,e.isIdentifier)):w.updateElementAccessExpression(b,ie,e.visitNode(b.argumentExpression,Q,e.isExpression)),R?w.createSyntheticReferenceExpression(ie,R):ie}function m(b,se){if(e.isOptionalChain(b))return oe(b,se,!1);if(e.isParenthesizedExpression(b.expression)&&e.isOptionalChain(e.skipParentheses(b.expression))){var J=N(b.expression,!0,!1),ie=e.visitNodes(b.arguments,Q,e.isExpression);return e.isSyntheticReference(J)?e.setTextRange(w.createFunctionCallCall(J.expression,J.thisArg,ie),b):w.updateCallExpression(b,J,void 0,ie)}return e.visitEachChild(b,Q,C)}function G(b,se,J){switch(b.kind){case 212:return N(b,se,J);case 206:case 207:return p(b,se,J);case 208:return m(b,se);default:return e.visitNode(b,Q,e.isExpression)}}function oe(b,se,J){var ie=le(b),R=ie.expression,q=ie.chain,O=G(e.skipPartiallyEmittedExpressions(R),e.isCallChain(q[0]),!1),ve=e.isSyntheticReference(O)?O.thisArg:void 0,ee=e.isSyntheticReference(O)?O.expression:O,he=w.restoreOuterExpressions(R,ee,8);e.isSimpleCopiableExpression(ee)||(ee=w.createTempVariable(B),he=w.createAssignment(ee,he));for(var F=ee,x,X=0;X1||!!(!((Be=ge[0])===null||Be===void 0)&&Be.dotDotDotToken),ze=[g,ne];if(ue&&ze.push(Y(ue.initializer)),Q.jsx===5){var Ee=e.getOriginalNode(le);if(Ee&&e.isSourceFile(Ee)){ue===void 0&&ze.push(B.createVoidZero()),ze.push(Re?B.createTrue():B.createFalse());var He=e.getLineAndCharacterOfPosition(Ee,Z.pos);ze.push(B.createObjectLiteralExpression([B.createPropertyAssignment(\"fileName\",p()),B.createPropertyAssignment(\"lineNumber\",B.createNumericLiteral(He.line+1)),B.createPropertyAssignment(\"columnNumber\",B.createNumericLiteral(He.character+1))])),ze.push(B.createThis())}}var rr=e.setTextRange(B.createCallExpression(G(Re),void 0,ze),Z);return Fe&&e.startOnNewLine(rr),rr}function x(g,ne,ue,We){var Fe=d(g),Z=g.attributes.properties,Be=e.length(Z)?y(Z):B.createNull(),ge=N.importSpecifier===void 0?e.createJsxFactoryExpression(B,w.getEmitResolver().getJsxFactoryEntity(le),Q.reactNamespace,g):f(\"createElement\"),Re=e.createExpressionForJsxElement(B,ge,Fe,Be,e.mapDefined(ne,se),We);return ue&&e.startOnNewLine(Re),Re}function X(g,ne,ue,We){var Fe;if(ne&&ne.length){var Z=ve(ne);Z&&(Fe=Z)}return F(oe(),Fe||B.createObjectLiteralExpression([]),void 0,ne,ue,We)}function $(g,ne,ue,We){var Fe=e.createExpressionForJsxFragment(B,w.getEmitResolver().getJsxFactoryEntity(le),w.getEmitResolver().getJsxFragmentFactoryEntity(le),Q.reactNamespace,e.mapDefined(ne,se),g,We);return ue&&e.startOnNewLine(Fe),Fe}function A(g){return B.createSpreadAssignment(e.visitNode(g.expression,K,e.isExpression))}function y(g,ne){var ue=e.getEmitScriptTarget(Q);return ue&&ue>=5?B.createObjectLiteralExpression(V(g,ne)):L(g,ne)}function V(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return e.map(We,function(Z){return Fe?A(Z):k(Z)})}));return ne&&ue.push(ne),ue}function L(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return Fe?e.map(We,P):B.createObjectLiteralExpression(e.map(We,k))}));return e.isJsxSpreadAttribute(g[0])&&ue.unshift(B.createObjectLiteralExpression()),ne&&ue.push(B.createObjectLiteralExpression([ne])),e.singleOrUndefined(ue)||E().createAssignHelper(ue)}function P(g){return e.visitNode(g.expression,K,e.isExpression)}function k(g){var ne=D(g),ue=Y(g.initializer);return B.createPropertyAssignment(ne,ue)}function Y(g){if(g===void 0)return B.createTrue();if(g.kind===10){var ne=g.singleQuote!==void 0?g.singleQuote:!e.isStringDoubleQuoted(g,le),ue=B.createStringLiteral(l(g.text)||g.text,ne);return e.setTextRange(ue,g)}else return g.kind===288?g.expression===void 0?B.createTrue():e.visitNode(g.expression,K,e.isExpression):e.Debug.failBadSyntaxKind(g)}function U(g){var ne=j(g.text);return ne===void 0?void 0:B.createStringLiteral(ne)}function j(g){for(var ne,ue=0,We=-1,Fe=0;Fe0?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(Gr,L,p,0,m.getGeneratedNameForNode(Gr)))),1048576)),!0):Ce?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createExpressionStatement(m.createAssignment(m.getGeneratedNameForNode(Gr),e.visitNode(Ce,L,e.isExpression))),1048576)),!0):!1}function er(Qe,Gr,S,Ce){Ce=e.visitNode(Ce,L,e.isExpression);var qe=m.createIfStatement(m.createTypeCheck(m.cloneNode(S),\"undefined\"),e.setEmitFlags(e.setTextRange(m.createBlock([m.createExpressionStatement(e.setEmitFlags(e.setTextRange(m.createAssignment(e.setEmitFlags(e.setParent(e.setTextRange(m.cloneNode(S),S),S.parent),48),e.setEmitFlags(Ce,48|e.getEmitFlags(Ce)|1536)),Gr),1536))]),Gr),1953));e.startOnNewLine(qe),e.setTextRange(qe,Gr),e.setEmitFlags(qe,1050528),e.insertStatementAfterCustomPrologue(Qe,qe)}function ir(Qe,Gr){return!!(Qe&&Qe.dotDotDotToken&&!Gr)}function Cr(Qe,Gr,S){var Ce=[],qe=e.lastOrUndefined(Gr.parameters);if(!ir(qe,S))return!1;var br=qe.name.kind===79?e.setParent(e.setTextRange(m.cloneNode(qe.name),qe.name),qe.name.parent):m.createTempVariable(void 0);e.setEmitFlags(br,48);var Zr=qe.name.kind===79?m.cloneNode(qe.name):br,Si=Gr.parameters.length-1,Pi=m.createLoopVariable();Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(br,void 0,void 0,m.createArrayLiteralExpression([]))])),qe),1048576));var Qi=m.createForStatement(e.setTextRange(m.createVariableDeclarationList([m.createVariableDeclaration(Pi,void 0,void 0,m.createNumericLiteral(Si))]),qe),e.setTextRange(m.createLessThan(Pi,m.createPropertyAccessExpression(m.createIdentifier(\"arguments\"),\"length\")),qe),e.setTextRange(m.createPostfixIncrement(Pi),qe),m.createBlock([e.startOnNewLine(e.setTextRange(m.createExpressionStatement(m.createAssignment(m.createElementAccessExpression(Zr,Si===0?Pi:m.createSubtract(Pi,m.createNumericLiteral(Si))),m.createElementAccessExpression(m.createIdentifier(\"arguments\"),Pi))),qe))]));return e.setEmitFlags(Qi,1048576),e.startOnNewLine(Qi),Ce.push(Qi),qe.name.kind!==79&&Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(qe,L,p,0,Zr))),qe),1048576)),e.insertStatementsAfterCustomPrologue(Qe,Ce),!0}function Ye(Qe,Gr){return O&65536&&Gr.kind!==214?(Er(Qe,Gr,m.createThis()),!0):!1}function Br(Qe,Gr){Ko();var S=m.createExpressionStatement(m.createBinaryExpression(m.createThis(),63,Gr));e.insertStatementAfterCustomPrologue(Qe,S),e.setCommentRange(S,e.getOriginalNode(Gr).parent)}function Er(Qe,Gr,S){Ko();var Ce=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName(\"_this\",48),void 0,void 0,S)]));e.setEmitFlags(Ce,1050112),e.setSourceMapRange(Ce,Gr),e.insertStatementAfterCustomPrologue(Qe,Ce)}function Ne(Qe,Gr,S){if(O&32768){var Ce=void 0;switch(Gr.kind){case 214:return Qe;case 169:case 172:case 173:Ce=m.createVoidZero();break;case 171:Ce=m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),\"constructor\");break;case 256:case 213:Ce=m.createConditionalExpression(m.createLogicalAnd(e.setEmitFlags(m.createThis(),4),m.createBinaryExpression(e.setEmitFlags(m.createThis(),4),102,m.getLocalName(Gr))),void 0,m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),\"constructor\"),void 0,m.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(Gr)}var qe=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName(\"_newTarget\",48),void 0,void 0,Ce)]));e.setEmitFlags(qe,1050112),S&&(Qe=Qe.slice()),e.insertStatementAfterCustomPrologue(Qe,qe)}return Qe}function n(Qe,Gr){for(var S=0,Ce=Gr.members;S0&&br.push(m.createStringLiteral(qe.literal.text)),Gr=m.createCallExpression(m.createPropertyAccessExpression(Gr,\"concat\"),void 0,br)}return e.setTextRange(Gr,Qe)}function En(Qe){return O&8&&!Qe?m.createPropertyAccessExpression(m.createUniqueName(\"_super\",48),\"prototype\"):m.createUniqueName(\"_super\",48)}function Wn(Qe){return Qe.keywordToken===103&&Qe.name.escapedText===\"target\"?(O|=32768,m.createUniqueName(\"_newTarget\",48)):Qe}function to(Qe,Gr,S){if(F&1&&e.isFunctionLike(Gr)){var Ce=X(32670,e.getEmitFlags(Gr)&8?81:65);ie(Qe,Gr,S),$(Ce,0,0);return}ie(Qe,Gr,S)}function Co(){(F&2)===0&&(F|=2,p.enableSubstitution(79))}function Ko(){(F&1)===0&&(F|=1,p.enableSubstitution(108),p.enableEmitNotification(171),p.enableEmitNotification(169),p.enableEmitNotification(172),p.enableEmitNotification(173),p.enableEmitNotification(214),p.enableEmitNotification(213),p.enableEmitNotification(256))}function Oo(Qe,Gr){return Gr=J(Qe,Gr),Qe===1?Pr(Gr):e.isIdentifier(Gr)?no(Gr):Gr}function no(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=e.getParseTreeNode(Qe,e.isIdentifier);if(Gr&&$o(Gr))return e.setTextRange(m.getGeneratedNameForNode(Gr),Qe)}return Qe}function $o(Qe){switch(Qe.parent.kind){case 203:case 257:case 260:case 254:return Qe.parent.name===Qe&&se.isDeclarationWithCollidingName(Qe.parent)}return!1}function Pr(Qe){switch(Qe.kind){case 79:return xi(Qe);case 108:return pa(Qe)}return Qe}function xi(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=se.getReferencedDeclarationWithCollidingName(Qe);if(Gr&&!(e.isClassLike(Gr)&&St(Gr,Qe)))return e.setTextRange(m.getGeneratedNameForNode(e.getNameOfDeclaration(Gr)),Qe)}return Qe}function St(Qe,Gr){var S=e.getParseTreeNode(Gr);if(!S||S===Qe||S.end<=Qe.pos||S.pos>=Qe.end)return!1;for(var Ce=e.getEnclosingBlockScopeContainer(Qe);S;){if(S===Ce||S===Qe)return!1;if(e.isClassElement(S)&&S.parent===Qe)return!0;S=S.parent}return!1}function pa(Qe){return F&1&&O&16?e.setTextRange(m.createUniqueName(\"_this\",48),Qe):Qe}function dn(Qe,Gr){return e.isStatic(Gr)?m.getInternalName(Qe):m.createPropertyAccessExpression(m.getInternalName(Qe),\"prototype\")}function Jn(Qe,Gr){if(!Qe||!Gr||e.some(Qe.parameters))return!1;var S=e.firstOrUndefined(Qe.body.statements);if(!S||!e.nodeIsSynthesized(S)||S.kind!==238)return!1;var Ce=S.expression;if(!e.nodeIsSynthesized(Ce)||Ce.kind!==208)return!1;var qe=Ce.expression;if(!e.nodeIsSynthesized(qe)||qe.kind!==106)return!1;var br=e.singleOrUndefined(Ce.arguments);if(!br||!e.nodeIsSynthesized(br)||br.kind!==225)return!1;var Zr=br.expression;return e.isIdentifier(Zr)&&Zr.escapedText===\"arguments\"}}e.transformES2015=N})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory,B=C.getCompilerOptions(),E,Q;(B.jsx===1||B.jsx===3)&&(E=C.onEmitNode,C.onEmitNode=p,C.enableEmitNotification(280),C.enableEmitNotification(281),C.enableEmitNotification(279),Q=[]);var le=C.onSubstituteNode;return C.onSubstituteNode=m,C.enableSubstitution(206),C.enableSubstitution(296),e.chainBundle(C,N);function N(T){return T}function p(T,K,b){switch(K.kind){case 280:case 281:case 279:var se=K.tagName;Q[e.getOriginalNodeId(se)]=!0;break}E(T,K,b)}function m(T,K){return K.id&&Q&&Q[K.id]?le(T,K):(K=le(T,K),e.isPropertyAccessExpression(K)?G(K):e.isPropertyAssignment(K)?oe(K):K)}function G(T){if(e.isPrivateIdentifier(T.name))return T;var K=f(T.name);return K?e.setTextRange(w.createElementAccessExpression(T.expression,K),T):T}function oe(T){var K=e.isIdentifier(T.name)&&f(T.name);return K?w.updatePropertyAssignment(T,K,T.initializer):T}function f(T){var K=T.originalKeywordKind||(e.nodeIsSynthesized(T)?e.stringToToken(e.idText(T)):void 0);if(K!==void 0&&K>=81&&K<=116)return e.setTextRange(w.createStringLiteralFromNode(T),T)}}e.transformES5=a})(ke||(ke={}));var ke;(function(e){var a;(function(N){N[N.Nop=0]=\"Nop\",N[N.Statement=1]=\"Statement\",N[N.Assign=2]=\"Assign\",N[N.Break=3]=\"Break\",N[N.BreakWhenTrue=4]=\"BreakWhenTrue\",N[N.BreakWhenFalse=5]=\"BreakWhenFalse\",N[N.Yield=6]=\"Yield\",N[N.YieldStar=7]=\"YieldStar\",N[N.Return=8]=\"Return\",N[N.Throw=9]=\"Throw\",N[N.Endfinally=10]=\"Endfinally\"})(a||(a={}));var C;(function(N){N[N.Open=0]=\"Open\",N[N.Close=1]=\"Close\"})(C||(C={}));var w;(function(N){N[N.Exception=0]=\"Exception\",N[N.With=1]=\"With\",N[N.Switch=2]=\"Switch\",N[N.Loop=3]=\"Loop\",N[N.Labeled=4]=\"Labeled\"})(w||(w={}));var B;(function(N){N[N.Try=0]=\"Try\",N[N.Catch=1]=\"Catch\",N[N.Finally=2]=\"Finally\",N[N.Done=3]=\"Done\"})(B||(B={}));var E;(function(N){N[N.Next=0]=\"Next\",N[N.Throw=1]=\"Throw\",N[N.Return=2]=\"Return\",N[N.Break=3]=\"Break\",N[N.Yield=4]=\"Yield\",N[N.YieldStar=5]=\"YieldStar\",N[N.Catch=6]=\"Catch\",N[N.Endfinally=7]=\"Endfinally\"})(E||(E={}));function Q(N){switch(N){case 2:return\"return\";case 3:return\"break\";case 4:return\"yield\";case 5:return\"yield*\";case 7:return\"endfinally\";default:return}}function le(N){var p=N.factory,m=N.getEmitHelperFactory,G=N.resumeLexicalEnvironment,oe=N.endLexicalEnvironment,f=N.hoistFunctionDeclaration,T=N.hoistVariableDeclaration,K=N.getCompilerOptions(),b=e.getEmitScriptTarget(K),se=N.getEmitResolver(),J=N.onSubstituteNode;N.onSubstituteNode=zr;var ie,R,q,O,ve,ee,he,F,x,X,$=1,A,y,V,L,P=0,k=0,Y,U,j,H,I,l,d,D;return e.chainBundle(N,fe);function fe(Pr){if(Pr.isDeclarationFile||(Pr.transformFlags&2048)===0)return Pr;var xi=e.visitEachChild(Pr,g,N);return e.addEmitHelpers(xi,N.readEmitHelpers()),xi}function g(Pr){var xi=Pr.transformFlags;return O?ne(Pr):q?ue(Pr):e.isFunctionLikeDeclaration(Pr)&&Pr.asteriskToken?Fe(Pr):xi&2048?e.visitEachChild(Pr,g,N):Pr}function ne(Pr){switch(Pr.kind){case 240:return Ur(Pr);case 241:return mi(Pr);case 249:return pi(Pr);case 250:return Xe(Pr);default:return ue(Pr)}}function ue(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);case 172:case 173:return ge(Pr);case 237:return ze(Pr);case 242:return or(Pr);case 243:return si(Pr);case 246:return et(Pr);case 245:return wi(Pr);case 247:return Wt(Pr);default:return Pr.transformFlags&524288?We(Pr):Pr.transformFlags&2099200?e.visitEachChild(Pr,g,N):Pr}}function We(Pr){switch(Pr.kind){case 221:return Ee(Pr);case 351:return _e(Pr);case 222:return de(Pr);case 224:return ye(Pr);case 204:return Ae(Pr);case 205:return ir(Pr);case 207:return Cr(Pr);case 208:return Ye(Pr);case 209:return Br(Pr);default:return e.visitEachChild(Pr,g,N)}}function Fe(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);default:return e.Debug.failBadSyntaxKind(Pr)}}function Z(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionDeclaration(void 0,Pr.modifiers,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}if(q){f(Pr);return}else return Pr}function Be(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionExpression(void 0,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}return Pr}function ge(Pr){var xi=q,St=O;return q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St,Pr}function Re(Pr){var xi=[],St=q,pa=O,dn=ve,Jn=ee,Qe=he,Gr=F,S=x,Ce=X,qe=$,br=A,Zr=y,Si=V,Pi=L;q=!0,O=!1,ve=void 0,ee=void 0,he=void 0,F=void 0,x=void 0,X=void 0,$=1,A=void 0,y=void 0,V=void 0,L=p.createTempVariable(void 0),G();var Qi=p.copyPrologue(Pr.statements,xi,!1,g);Er(Pr.statements,Qi);var Ct=pn();return e.insertStatementsAfterStandardPrologue(xi,oe()),xi.push(p.createReturnStatement(Ct)),q=St,O=pa,ve=dn,ee=Jn,he=Qe,F=Gr,x=S,X=Ce,$=qe,A=br,y=Zr,V=Si,L=Pi,e.setTextRange(p.createBlock(xi,Pr.multiLine),Pr)}function ze(Pr){if(Pr.transformFlags&524288){ur(Pr.declarationList);return}else{if(e.getEmitFlags(Pr)&1048576)return Pr;for(var xi=0,St=Pr.declarationList.declarations;xi0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(pa,g,e.isExpression)))}}function _e(Pr){for(var xi=[],St=0,pa=Pr.elements;St0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(dn,g,e.isExpression)))}return p.inlineExpressions(xi)}function we(Pr){var xi=mr(),St=vr();return Vi(St,e.visitNode(Pr.left,g,e.isExpression),Pr.left),Pr.operatorToken.kind===55?ba(xi,St,Pr.left):At(xi,St,Pr.left),Vi(St,e.visitNode(Pr.right,g,e.isExpression),Pr.right),Ar(xi),St}function de(Pr){if(Ze(Pr.whenTrue)||Ze(Pr.whenFalse)){var xi=mr(),St=mr(),pa=vr();return ba(xi,e.visitNode(Pr.condition,g,e.isExpression),Pr.condition),Vi(pa,e.visitNode(Pr.whenTrue,g,e.isExpression),Pr.whenTrue),at(St),Ar(xi),Vi(pa,e.visitNode(Pr.whenFalse,g,e.isExpression),Pr.whenFalse),Ar(St),pa}return e.visitEachChild(Pr,g,N)}function ye(Pr){var xi=mr(),St=e.visitNode(Pr.expression,g,e.isExpression);if(Pr.asteriskToken){var pa=(e.getEmitFlags(Pr.expression)&8388608)===0?e.setTextRange(m().createValuesHelper(St),Pr):St;$a(pa,Pr)}else Qa(St,Pr);return Ar(xi),Ai(Pr)}function Ae(Pr){return er(Pr.elements,void 0,void 0,Pr.multiLine)}function er(Pr,xi,St,pa){var dn=Sr(Pr),Jn;if(dn>0){Jn=vr();var Qe=e.visitNodes(Pr,g,e.isExpression,0,dn);Vi(Jn,p.createArrayLiteralExpression(xi?Ve([xi],Qe,!0):Qe)),xi=void 0}var Gr=e.reduceLeft(Pr,S,[],dn);return Jn?p.createArrayConcatCall(Jn,[p.createArrayLiteralExpression(Gr,pa)]):e.setTextRange(p.createArrayLiteralExpression(xi?Ve([xi],Gr,!0):Gr,pa),St);function S(Ce,qe){if(Ze(qe)&&Ce.length>0){var br=Jn!==void 0;Jn||(Jn=vr()),Vi(Jn,br?p.createArrayConcatCall(Jn,[p.createArrayLiteralExpression(Ce,pa)]):p.createArrayLiteralExpression(xi?Ve([xi],Ce,!0):Ce,pa)),xi=void 0,Ce=[]}return Ce.push(e.visitNode(qe,g,e.isExpression)),Ce}}function ir(Pr){var xi=Pr.properties,St=Pr.multiLine,pa=Sr(xi),dn=vr();Vi(dn,p.createObjectLiteralExpression(e.visitNodes(xi,g,e.isObjectLiteralElementLike,0,pa),St));var Jn=e.reduceLeft(xi,Qe,[],pa);return Jn.push(St?e.startOnNewLine(e.setParent(e.setTextRange(p.cloneNode(dn),dn),dn.parent)):dn),p.inlineExpressions(Jn);function Qe(Gr,S){Ze(S)&&Gr.length>0&&(ji(p.createExpressionStatement(p.inlineExpressions(Gr))),Gr=[]);var Ce=e.createExpressionForObjectLiteralElementLike(p,Pr,S,dn),qe=e.visitNode(Ce,g,e.isExpression);return qe&&(St&&e.startOnNewLine(qe),Gr.push(qe)),Gr}}function Cr(Pr){return Ze(Pr.argumentExpression)?p.updateElementAccessExpression(Pr,xe(e.visitNode(Pr.expression,g,e.isLeftHandSideExpression)),e.visitNode(Pr.argumentExpression,g,e.isExpression)):e.visitEachChild(Pr,g,N)}function Ye(Pr){if(!e.isImportCall(Pr)&&e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(Pr.expression,T,b,!0),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isLeftHandSideExpression)),pa,er(Pr.arguments)),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Br(Pr){if(e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(p.createPropertyAccessExpression(Pr.expression,\"bind\"),T),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createNewExpression(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isExpression)),pa,er(Pr.arguments,p.createVoidZero())),void 0,[]),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Er(Pr,xi){xi===void 0&&(xi=0);for(var St=Pr.length,pa=xi;pa0)break;S.push(yr(pa))}S.length&&(ji(p.createExpressionStatement(p.inlineExpressions(S))),Gr+=S.length,S=[])}}function yr(Pr){return e.setSourceMapRange(p.createAssignment(e.setSourceMapRange(p.cloneNode(Pr.name),Pr.name),e.visitNode(Pr.initializer,g,e.isExpression)),Pr)}function Ir(Pr){if(Ze(Pr))if(Ze(Pr.thenStatement)||Ze(Pr.elseStatement)){var xi=mr(),St=Pr.elseStatement?mr():void 0;ba(Pr.elseStatement?St:xi,e.visitNode(Pr.expression,g,e.isExpression),Pr.expression),Ne(Pr.thenStatement),Pr.elseStatement&&(at(xi),Ar(St),Ne(Pr.elseStatement)),Ar(xi)}else ji(e.visitNode(Pr,g,e.isStatement));else ji(e.visitNode(Pr,g,e.isStatement))}function wr(Pr){if(Ze(Pr)){var xi=mr(),St=mr();Ui(xi),Ar(St),Ne(Pr.statement),Ar(xi),At(St,e.visitNode(Pr.expression,g,e.isExpression)),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function Ur(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function ii(Pr){if(Ze(Pr)){var xi=mr(),St=Ui(xi);Ar(xi),ba(St,e.visitNode(Pr.expression,g,e.isExpression)),Ne(Pr.statement),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function mi(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function pe(Pr){if(Ze(Pr)){var xi=mr(),St=mr(),pa=Ui(St);if(Pr.initializer){var dn=Pr.initializer;e.isVariableDeclarationList(dn)?ur(dn):ji(e.setTextRange(p.createExpressionStatement(e.visitNode(dn,g,e.isExpression)),dn))}Ar(xi),Pr.condition&&ba(pa,e.visitNode(Pr.condition,g,e.isExpression)),Ne(Pr.statement),Ar(St),Pr.incrementor&&ji(e.setTextRange(p.createExpressionStatement(e.visitNode(Pr.incrementor,g,e.isExpression)),Pr.incrementor)),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function or(Pr){O&&vi();var xi=Pr.initializer;if(xi&&e.isVariableDeclarationList(xi)){for(var St=0,pa=xi.declarations;St0?p.inlineExpressions(e.map(Jn,yr)):void 0,e.visitNode(Pr.condition,g,e.isExpression),e.visitNode(Pr.incrementor,g,e.isExpression),e.visitIterationBody(Pr.statement,g,N))}else Pr=e.visitEachChild(Pr,g,N);return O&&Yi(),Pr}function qr(Pr){if(Ze(Pr)){var xi=vr(),St=vr(),pa=p.createLoopVariable(),dn=Pr.initializer;T(pa),Vi(xi,p.createArrayLiteralExpression()),ji(p.createForInStatement(St,e.visitNode(Pr.expression,g,e.isExpression),p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(xi,\"push\"),void 0,[St])))),Vi(pa,p.createNumericLiteral(0));var Jn=mr(),Qe=mr(),Gr=Ui(Qe);Ar(Jn),ba(Gr,p.createLessThan(pa,p.createPropertyAccessExpression(xi,\"length\")));var S=void 0;if(e.isVariableDeclarationList(dn)){for(var Ce=0,qe=dn.declarations;Ce0?at(xi,Pr):ji(Pr)}function wi(Pr){if(O){var xi=Fi(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Xi(Pr){var xi=Ki(Pr.label?e.idText(Pr.label):void 0);xi>0?at(xi,Pr):ji(Pr)}function et(Pr){if(O){var xi=Ki(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Gi(Pr){ai(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Wt(Pr){return na(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Zt(Pr){Ze(Pr)?(Ue(xe(e.visitNode(Pr.expression,g,e.isExpression))),Ne(Pr.statement),fr()):ji(e.visitNode(Pr,g,e.isStatement))}function _r(Pr){if(Ze(Pr.caseBlock)){for(var xi=Pr.caseBlock,St=xi.clauses.length,pa=ct(),dn=xe(e.visitNode(Pr.expression,g,e.isExpression)),Jn=[],Qe=-1,Gr=0;Gr0)break;qe.push(p.createCaseClause(e.visitNode(S.expression,g,e.isExpression),[wt(Jn[Gr],S.expression)]))}else br++}qe.length&&(ji(p.createSwitchStatement(dn,p.createCaseBlock(qe))),Ce+=qe.length,qe=[]),br>0&&(Ce+=br,br=0)}Qe>=0?at(Jn[Qe]):at(pa);for(var Gr=0;Gr=0;St--){var pa=F[St];if(Dt(pa)){if(pa.labelText===Pr)return!0}else break}return!1}function Ki(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Dt(St)&&St.labelText===Pr)return St.breakLabel;if(ut(St)&&Ii(Pr,xi-1))return St.breakLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(ut(St))return St.breakLabel}return 0}function Fi(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St)&&Ii(Pr,xi-1))return St.continueLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St))return St.continueLabel}return 0}function ui(Pr){if(Pr!==void 0&&Pr>0){X===void 0&&(X=[]);var xi=p.createNumericLiteral(-1);return X[Pr]===void 0?X[Pr]=[xi]:X[Pr].push(xi),xi}return p.createOmittedExpression()}function Bt(Pr){var xi=p.createNumericLiteral(Pr);return e.addSyntheticTrailingComment(xi,3,Q(Pr)),xi}function wt(Pr,xi){return e.Debug.assertLessThan(0,Pr,\"Invalid label\"),e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression([Bt(3),ui(Pr)])),xi)}function na(Pr,xi){return e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression(Pr?[Bt(2),Pr]:[Bt(2)])),xi)}function Ai(Pr){return e.setTextRange(p.createCallExpression(p.createPropertyAccessExpression(L,\"sent\"),void 0,[]),Pr)}function Oi(){Ba(0)}function ji(Pr){Pr?Ba(1,[Pr]):Oi()}function Vi(Pr,xi,St){Ba(2,[Pr,xi],St)}function at(Pr,xi){Ba(3,[Pr],xi)}function At(Pr,xi,St){Ba(4,[Pr,xi],St)}function ba(Pr,xi,St){Ba(5,[Pr,xi],St)}function $a(Pr,xi){Ba(7,[Pr],xi)}function Qa(Pr,xi){Ba(6,[Pr],xi)}function ai(Pr,xi){Ba(8,[Pr],xi)}function Dn(Pr,xi){Ba(9,[Pr],xi)}function ka(){Ba(10)}function Ba(Pr,xi,St){A===void 0&&(A=[],y=[],V=[]),x===void 0&&Ar(mr());var pa=A.length;A[pa]=Pr,y[pa]=xi,V[pa]=St}function pn(){P=0,k=0,Y=void 0,U=!1,j=!1,H=void 0,I=void 0,l=void 0,d=void 0,D=void 0;var Pr=Cn();return m().createGeneratorHelper(e.setEmitFlags(p.createFunctionExpression(void 0,void 0,void 0,void 0,[p.createParameterDeclaration(void 0,void 0,void 0,L)],void 0,p.createBlock(Pr,Pr.length>0)),524288))}function Cn(){if(A){for(var Pr=0;Pr=0;xi--){var St=D[xi];I=[p.createWithStatement(St.expression,p.createBlock(I))]}if(d){var pa=d.startLabel,dn=d.catchLabel,Jn=d.finallyLabel,Qe=d.endLabel;I.unshift(p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(p.createPropertyAccessExpression(L,\"trys\"),\"push\"),void 0,[p.createArrayLiteralExpression([ui(pa),ui(dn),ui(Jn),ui(Qe)])]))),d=void 0}Pr&&I.push(p.createExpressionStatement(p.createAssignment(p.createPropertyAccessExpression(L,\"label\"),p.createNumericLiteral(k+1))))}H.push(p.createCaseClause(p.createNumericLiteral(k),I||[])),I=void 0}function Pn(Pr){if(!!x)for(var xi=0;xi(e.isExportName(pe)?1:0);return!1}function U(pe,or){return Y(pe.left)?e.flattenDestructuringAssignment(pe,P,w,0,!or,rr):e.visitEachChild(pe,P,w)}function j(pe){return E.updateForStatement(pe,e.visitNode(pe.initializer,k,e.isForInitializer),e.visitNode(pe.condition,P,e.isExpression),e.visitNode(pe.incrementor,k,e.isExpression),e.visitIterationBody(pe.statement,P,w))}function H(pe){return E.updateExpressionStatement(pe,e.visitNode(pe.expression,k,e.isExpression))}function I(pe,or){return E.updateParenthesizedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function l(pe,or){return E.updatePartiallyEmittedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function d(pe,or){if((pe.operator===45||pe.operator===46)&&e.isIdentifier(pe.operand)&&!e.isGeneratedIdentifier(pe.operand)&&!e.isLocalName(pe.operand)&&!e.isDeclarationNameOfEnumOrNamespace(pe.operand)){var qr=mi(pe.operand);if(qr){var si=void 0,Di=e.visitNode(pe.operand,P,e.isExpression);e.isPrefixUnaryExpression(pe)?Di=E.updatePrefixUnaryExpression(pe,Di):(Di=E.updatePostfixUnaryExpression(pe,Di),or||(si=E.createTempVariable(p),Di=E.createAssignment(si,Di),e.setTextRange(Di,pe)),Di=E.createComma(Di,E.cloneNode(pe.operand)),e.setTextRange(Di,pe));for(var wi=0,Xi=qr;wi=2?Xi=E.createArrowFunction(void 0,void 0,Di,void 0,void 0,wi):(Xi=E.createFunctionExpression(void 0,void 0,void 0,void 0,Di,void 0,wi),or&&e.setEmitFlags(Xi,8));var et=E.createNewExpression(E.createIdentifier(\"Promise\"),void 0,[Xi]);return e.getESModuleInterop(m)?E.createCallExpression(E.createPropertyAccessExpression(et,E.createIdentifier(\"then\")),void 0,[Q().createImportStarCallbackHelper()]):et}function ne(pe,or){var qr=E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier(\"Promise\"),\"resolve\"),void 0,[]),si=E.createCallExpression(E.createIdentifier(\"require\"),void 0,pe?[pe]:[]);e.getESModuleInterop(m)&&(si=Q().createImportStarHelper(si));var Di;return f>=2?Di=E.createArrowFunction(void 0,void 0,[],void 0,void 0,si):(Di=E.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,E.createBlock([E.createReturnStatement(si)])),or&&e.setEmitFlags(Di,8)),E.createCallExpression(E.createPropertyAccessExpression(qr,\"then\"),void 0,[Di])}function ue(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getExportNeedsImportStarHelper(pe)?Q().createImportStarHelper(or):or}function We(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getImportNeedsImportStarHelper(pe)?Q().createImportStarHelper(or):e.getImportNeedsImportDefaultHelper(pe)?Q().createImportDefaultHelper(or):or}function Fe(pe){var or,qr=e.getNamespaceDeclarationNode(pe);if(T!==e.ModuleKind.AMD)if(pe.importClause){var si=[];qr&&!e.isDefaultImport(pe)?si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,We(pe,Z(pe)))):(si.push(E.createVariableDeclaration(E.getGeneratedNameForNode(pe),void 0,void 0,We(pe,Z(pe)))),qr&&e.isDefaultImport(pe)&&si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)))),or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList(si,f>=2?2:0)),pe),pe))}else return e.setOriginalNode(e.setTextRange(E.createExpressionStatement(Z(pe)),pe),pe);else qr&&e.isDefaultImport(pe)&&(or=e.append(or,E.createVariableStatement(void 0,E.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)),pe),pe)],f>=2?2:0))));if(we(pe)){var Di=e.getOriginalNodeId(pe);J[Di]=ye(J[Di],pe)}else or=ye(or,pe);return e.singleOrMany(or)}function Z(pe){var or=e.getExternalModuleNameLiteral(E,pe,ie,oe,G,m),qr=[];return or&&qr.push(or),E.createCallExpression(E.createIdentifier(\"require\"),void 0,qr)}function Be(pe){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(pe),\"import= for internal module references should be handled in an earlier transformer.\");var or;if(T!==e.ModuleKind.AMD?e.hasSyntacticModifier(pe,1)?or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(pe.name,Z(pe))),pe),pe)):or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.cloneNode(pe.name),void 0,void 0,Z(pe))],f>=2?2:0)),pe),pe)):e.hasSyntacticModifier(pe,1)&&(or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(E.getExportName(pe),E.getLocalName(pe))),pe),pe))),we(pe)){var qr=e.getOriginalNodeId(pe);J[qr]=Ae(J[qr],pe)}else or=Ae(or,pe);return e.singleOrMany(or)}function ge(pe){if(!!pe.moduleSpecifier){var or=E.getGeneratedNameForNode(pe);if(pe.exportClause&&e.isNamedExports(pe.exportClause)){var qr=[];T!==e.ModuleKind.AMD&&qr.push(e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(or,void 0,void 0,Z(pe))])),pe),pe));for(var si=0,Di=pe.exportClause.elements;si=e.ModuleKind.ES2020?J(he):void 0;case 271:return R(he);case 272:var F=he;return q(F)}return he}function se(he){var F=e.getExternalModuleNameLiteral(w,he,e.Debug.checkDefined(oe),E,Q,le),x=[];if(F&&x.push(F),!f){var X=w.createUniqueName(\"_createRequire\",48),$=w.createImportDeclaration(void 0,void 0,w.createImportClause(!1,void 0,w.createNamedImports([w.createImportSpecifier(!1,w.createIdentifier(\"createRequire\"),X)])),w.createStringLiteral(\"module\")),A=w.createUniqueName(\"__require\",48),y=w.createVariableStatement(void 0,w.createVariableDeclarationList([w.createVariableDeclaration(A,void 0,void 0,w.createCallExpression(w.cloneNode(X),void 0,[w.createPropertyAccessExpression(w.createMetaProperty(100,w.createIdentifier(\"meta\")),w.createIdentifier(\"url\"))]))],N>=2?2:0));f=[$,y]}var V=f[1].declarationList.declarations[0].name;return e.Debug.assertNode(V,e.isIdentifier),w.createCallExpression(w.cloneNode(V),void 0,x)}function J(he){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(he),\"import= for internal module references should be handled in an earlier transformer.\");var F;return F=e.append(F,e.setOriginalNode(e.setTextRange(w.createVariableStatement(void 0,w.createVariableDeclarationList([w.createVariableDeclaration(w.cloneNode(he.name),void 0,void 0,se(he))],N>=2?2:0)),he),he)),F=ie(F,he),e.singleOrMany(F)}function ie(he,F){return e.hasSyntacticModifier(F,1)&&(he=e.append(he,w.createExportDeclaration(void 0,void 0,F.isTypeOnly,w.createNamedExports([w.createExportSpecifier(!1,void 0,e.idText(F.name))])))),he}function R(he){return he.isExportEquals?void 0:he}function q(he){if(le.module!==void 0&&le.module>e.ModuleKind.ES2015||!he.exportClause||!e.isNamespaceExport(he.exportClause)||!he.moduleSpecifier)return he;var F=he.exportClause.name,x=w.getGeneratedNameForNode(F),X=w.createImportDeclaration(void 0,void 0,w.createImportClause(!1,void 0,w.createNamespaceImport(x)),he.moduleSpecifier,he.assertClause);e.setOriginalNode(X,he.exportClause);var $=e.isExportNamespaceAsDefaultDeclaration(he)?w.createExportDefault(x):w.createExportDeclaration(void 0,void 0,!1,w.createNamedExports([w.createExportSpecifier(!1,x,F)]));return e.setOriginalNode($,he),[X,$]}function O(he,F,x){e.isSourceFile(F)?((e.isExternalModule(F)||le.isolatedModules)&&le.importHelpers&&(G=new e.Map),p(he,F,x),G=void 0):p(he,F,x)}function ve(he,F){return F=m(he,F),G&&e.isIdentifier(F)&&e.getEmitFlags(F)&4096?ee(F):F}function ee(he){var F=e.idText(he),x=G.get(F);return x||G.set(F,x=w.createUniqueName(F,48)),x}}e.transformECMAScriptModule=a})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.onSubstituteNode,B=C.onEmitNode,E=e.transformECMAScriptModule(C),Q=C.onSubstituteNode,le=C.onEmitNode;C.onSubstituteNode=w,C.onEmitNode=B;var N=e.transformModule(C),p=C.onSubstituteNode,m=C.onEmitNode;C.onSubstituteNode=oe,C.onEmitNode=f,C.enableSubstitution(305),C.enableEmitNotification(305);var G;return b;function oe(J,ie){return e.isSourceFile(ie)?(G=ie,w(J,ie)):G?G.impliedNodeFormat===e.ModuleKind.ESNext?Q(J,ie):p(J,ie):w(J,ie)}function f(J,ie,R){return e.isSourceFile(ie)&&(G=ie),G?G.impliedNodeFormat===e.ModuleKind.ESNext?le(J,ie,R):m(J,ie,R):B(J,ie,R)}function T(J){return J.impliedNodeFormat===e.ModuleKind.ESNext?E:N}function K(J){if(J.isDeclarationFile)return J;G=J;var ie=T(J)(J);return G=void 0,e.Debug.assert(e.isSourceFile(ie)),ie}function b(J){return J.kind===305?K(J):se(J)}function se(J){return C.factory.createBundle(e.map(J.sourceFiles,K),J.prepends)}}e.transformNodeModule=a})(ke||(ke={}));var ke;(function(e){function a(B){return e.isVariableDeclaration(B)||e.isPropertyDeclaration(B)||e.isPropertySignature(B)||e.isBindingElement(B)||e.isSetAccessor(B)||e.isGetAccessor(B)||e.isConstructSignatureDeclaration(B)||e.isCallSignatureDeclaration(B)||e.isMethodDeclaration(B)||e.isMethodSignature(B)||e.isFunctionDeclaration(B)||e.isParameter(B)||e.isTypeParameterDeclaration(B)||e.isExpressionWithTypeArguments(B)||e.isImportEqualsDeclaration(B)||e.isTypeAliasDeclaration(B)||e.isConstructorDeclaration(B)||e.isIndexSignatureDeclaration(B)||e.isPropertyAccessExpression(B)||e.isJSDocTypeAlias(B)}e.canProduceDiagnostics=a;function C(B){if(e.isSetAccessor(B)||e.isGetAccessor(B))return E;return e.isMethodSignature(B)||e.isMethodDeclaration(B)?le:w(B);function E(p){var m=Q(p);return m!==void 0?{diagnosticMessage:m,errorNode:B,typeName:B.name}:void 0}function Q(p){return e.isStatic(B)?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:B.parent.kind===257?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:p.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}function le(p){var m=N(p);return m!==void 0?{diagnosticMessage:m,errorNode:B,typeName:B.name}:void 0}function N(p){return e.isStatic(B)?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:B.parent.kind===257?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1:p.errorModuleName?e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1}}e.createGetSymbolAccessibilityDiagnosticForNodeName=C;function w(B){if(e.isVariableDeclaration(B)||e.isPropertyDeclaration(B)||e.isPropertySignature(B)||e.isPropertyAccessExpression(B)||e.isBindingElement(B)||e.isConstructorDeclaration(B))return Q;return e.isSetAccessor(B)||e.isGetAccessor(B)?le:e.isConstructSignatureDeclaration(B)||e.isCallSignatureDeclaration(B)||e.isMethodDeclaration(B)||e.isMethodSignature(B)||e.isFunctionDeclaration(B)||e.isIndexSignatureDeclaration(B)?N:e.isParameter(B)?e.isParameterPropertyDeclaration(B,B.parent)&&e.hasSyntacticModifier(B.parent,8)?Q:p:e.isTypeParameterDeclaration(B)?G:e.isExpressionWithTypeArguments(B)?oe:e.isImportEqualsDeclaration(B)?f:e.isTypeAliasDeclaration(B)||e.isJSDocTypeAlias(B)?T:e.Debug.assertNever(B,\"Attempted to set a declaration diagnostic context for unhandled node kind: \".concat(e.SyntaxKind[B.kind]));function E(K){if(B.kind===254||B.kind===203)return K.errorModuleName?K.accessibility===2?e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;if(B.kind===167||B.kind===206||B.kind===166||B.kind===164&&e.hasSyntacticModifier(B.parent,8))return e.isStatic(B)?K.errorModuleName?K.accessibility===2?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:B.parent.kind===257||B.kind===164?K.errorModuleName?K.accessibility===2?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:K.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}function Q(K){var b=E(K);return b!==void 0?{diagnosticMessage:b,errorNode:B,typeName:B.name}:void 0}function le(K){var b;return B.kind===173?e.isStatic(B)?b=K.errorModuleName?e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:b=K.errorModuleName?e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:e.isStatic(B)?b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1,{diagnosticMessage:b,errorNode:B.name,typeName:B.name}}function N(K){var b;switch(B.kind){case 175:b=K.errorModuleName?e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 174:b=K.errorModuleName?e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 176:b=K.errorModuleName?e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 169:case 168:e.isStatic(B)?b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:B.parent.kind===257?b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:b=K.errorModuleName?e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;break;case 256:b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;break;default:return e.Debug.fail(\"This is unknown kind for signature: \"+B.kind)}return{diagnosticMessage:b,errorNode:B.name||B}}function p(K){var b=m(K);return b!==void 0?{diagnosticMessage:b,errorNode:B,typeName:B.name}:void 0}function m(K){switch(B.parent.kind){case 171:return K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;case 175:case 180:return K.errorModuleName?e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;case 174:return K.errorModuleName?e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;case 176:return K.errorModuleName?e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;case 169:case 168:return e.isStatic(B.parent)?K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:B.parent.parent.kind===257?K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:K.errorModuleName?e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;case 256:case 179:return K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;case 173:case 172:return K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;default:return e.Debug.fail(\"Unknown parent for parameter: \".concat(e.SyntaxKind[B.parent.kind]))}}function G(){var K;switch(B.parent.kind){case 257:K=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 258:K=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 195:K=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 180:case 175:K=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 174:K=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 169:case 168:e.isStatic(B.parent)?K=e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:B.parent.parent.kind===257?K=e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:K=e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 179:case 256:K=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 259:K=e.Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;break;default:return e.Debug.fail(\"This is unknown parent for type parameter: \"+B.parent.kind)}return{diagnosticMessage:K,errorNode:B,typeName:B.name}}function oe(){var K;return e.isClassDeclaration(B.parent.parent)?K=e.isHeritageClause(B.parent)&&B.parent.token===117?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:B.parent.parent.name?e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_class_has_or_is_using_private_name_0:K=e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1,{diagnosticMessage:K,errorNode:B,typeName:e.getNameOfDeclaration(B.parent.parent)}}function f(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:B,typeName:B.name}}function T(K){return{diagnosticMessage:K.errorModuleName?e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,errorNode:e.isJSDocTypeAlias(B)?e.Debug.checkDefined(B.typeExpression):B.type,typeName:e.isJSDocTypeAlias(B)?e.getNameOfDeclaration(B):B.name}}}e.createGetSymbolAccessibilityDiagnosticForNode=w})(ke||(ke={}));var ke;(function(e){function a(f,T,K){var b=f.getCompilerOptions(),se=e.transformNodes(T,f,e.factory,b,K?[K]:e.filter(f.getSourceFiles(),e.isSourceFileNotJson),[E],!1);return se.diagnostics}e.getDeclarationDiagnostics=a;function C(f,T){var K=T.text.substring(f.pos,f.end);return e.stringContains(K,\"@internal\")}function w(f,T){var K=e.getParseTreeNode(f);if(K&&K.kind===164){var b=K.parent.parameters.indexOf(K),se=b>0?K.parent.parameters[b-1]:void 0,J=T.text,ie=se?e.concatenate(e.getTrailingCommentRanges(J,e.skipTrivia(J,se.end+1,!1,!0)),e.getLeadingCommentRanges(J,f.pos)):e.getTrailingCommentRanges(J,e.skipTrivia(J,f.pos,!1,!0));return ie&&ie.length&&C(e.last(ie),T)}var R=K&&e.getLeadingCommentRangesOfNode(K,T);return!!e.forEach(R,function(q){return C(q,T)})}e.isInternalDeclaration=w;var B=531469;function E(f){var T=function(){return e.Debug.fail(\"Diagnostic emitted without context\")},K=T,b=!0,se=!1,J=!1,ie=!1,R=!1,q,O,ve,ee,he,F,x=f.factory,X=f.getEmitHost(),$={trackSymbol:fe,reportInaccessibleThisError:Fe,reportInaccessibleUniqueSymbolError:ue,reportCyclicStructureError:We,reportPrivateInBaseOfClassExpression:g,reportLikelyUnsafeImportRequiredError:Z,reportTruncationError:Be,moduleResolverHost:X,trackReferencedAmbientModule:l,trackExternalModuleSymbolOfImportTypeNode:D,reportNonlocalAugmentation:ge,reportNonSerializableProperty:Re},A,y,V,L,P,k,Y=f.getEmitResolver(),U=f.getCompilerOptions(),j=U.noResolve,H=U.stripInternal;return Ee;function I(_r){if(!!_r){O=O||new e.Set;for(var pi=0,ae=_r;pi0?f.parameters[0].type:void 0}function m(f){switch(f.kind){case 167:case 166:return!e.hasEffectiveModifier(f,8);case 164:case 254:return!0}return!1}function G(f){switch(f.kind){case 256:case 261:case 265:case 258:case 257:case 259:case 260:case 237:case 266:case 272:case 271:return!0}return!1}function oe(f){switch(f.kind){case 175:case 171:case 169:case 172:case 173:case 167:case 166:case 168:case 174:case 176:case 254:case 163:case 228:case 178:case 189:case 179:case 180:case 200:return!0}return!1}})(ke||(ke={}));var ke;(function(e){function a(T){switch(T){case e.ModuleKind.ESNext:case e.ModuleKind.ES2022:case e.ModuleKind.ES2020:case e.ModuleKind.ES2015:return e.transformECMAScriptModule;case e.ModuleKind.System:return e.transformSystemModule;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return e.transformNodeModule;default:return e.transformModule}}var C;(function(T){T[T.Uninitialized=0]=\"Uninitialized\",T[T.Initialized=1]=\"Initialized\",T[T.Completed=2]=\"Completed\",T[T.Disposed=3]=\"Disposed\"})(C||(C={}));var w;(function(T){T[T.Substitution=1]=\"Substitution\",T[T.EmitNotifications=2]=\"EmitNotifications\"})(w||(w={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray};function B(T,K,b){return{scriptTransformers:E(T,K,b),declarationTransformers:Q(K)}}e.getTransformers=B;function E(T,K,b){if(b)return e.emptyArray;var se=e.getEmitScriptTarget(T),J=e.getEmitModuleKind(T),ie=[];return e.addRange(ie,K&&e.map(K.before,p)),ie.push(e.transformTypeScript),ie.push(e.transformClassFields),e.getJSXTransformEnabled(T)&&ie.push(e.transformJsx),se<99&&ie.push(e.transformESNext),se<8&&ie.push(e.transformES2021),se<7&&ie.push(e.transformES2020),se<6&&ie.push(e.transformES2019),se<5&&ie.push(e.transformES2018),se<4&&ie.push(e.transformES2017),se<3&&ie.push(e.transformES2016),se<2&&(ie.push(e.transformES2015),ie.push(e.transformGenerators)),ie.push(a(J)),se<1&&ie.push(e.transformES5),e.addRange(ie,K&&e.map(K.after,p)),ie}function Q(T){var K=[];return K.push(e.transformDeclarations),e.addRange(K,T&&e.map(T.afterDeclarations,m)),K}function le(T){return function(K){return e.isBundle(K)?T.transformBundle(K):T.transformSourceFile(K)}}function N(T,K){return function(b){var se=T(b);return typeof se==\"function\"?K(b,se):le(se)}}function p(T){return N(T,e.chainBundle)}function m(T){return N(T,function(K,b){return b})}function G(T,K){return K}e.noEmitSubstitution=G;function oe(T,K,b){b(T,K)}e.noEmitNotification=oe;function f(T,K,b,se,J,ie,R){for(var q=new Array(355),O,ve,ee,he=0,F=[],x=[],X=[],$=[],A=0,y=!1,V=[],L=0,P,k,Y=G,U=oe,j=0,H=[],I={factory:b,getCompilerOptions:function(){return se},getEmitResolver:function(){return T},getEmitHost:function(){return K},getEmitHelperFactory:e.memoize(function(){return e.createEmitHelperFactory(I)}),startLexicalEnvironment:_e,suspendLexicalEnvironment:we,resumeLexicalEnvironment:de,endLexicalEnvironment:ye,setLexicalEnvironmentFlags:Ae,getLexicalEnvironmentFlags:er,hoistVariableDeclaration:He,hoistFunctionDeclaration:rr,addInitializationStatement:Ie,startBlockScope:ir,endBlockScope:Cr,addBlockScopedVariable:Ye,requestEmitHelper:Br,readEmitHelpers:Er,enableSubstitution:Z,enableEmitNotification:Re,isSubstitutionEnabled:Be,isEmitNotificationEnabled:ze,get onSubstituteNode(){return Y},set onSubstituteNode(n){e.Debug.assert(j<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(n!==void 0,\"Value must not be 'undefined'\"),Y=n},get onEmitNode(){return U},set onEmitNode(n){e.Debug.assert(j<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(n!==void 0,\"Value must not be 'undefined'\"),U=n},addDiagnostic:function(n){H.push(n)}},l=0,d=J;l0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\");var lr=e.setEmitFlags(b.createVariableDeclaration(n),64);O?O.push(lr):O=[lr],he&1&&(he|=2)}function rr(n){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.setEmitFlags(n,1048576),ve?ve.push(n):ve=[n]}function Ie(n){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.setEmitFlags(n,1048576),ee?ee.push(n):ee=[n]}function _e(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!y,\"Lexical environment is suspended.\"),F[A]=O,x[A]=ve,X[A]=ee,$[A]=he,A++,O=void 0,ve=void 0,ee=void 0,he=0}function we(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!y,\"Lexical environment is already suspended.\"),y=!0}function de(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(y,\"Lexical environment is not suspended.\"),y=!1}function ye(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!y,\"Lexical environment is suspended.\");var n;if(O||ve||ee){if(ve&&(n=Ve([],ve,!0)),O){var lr=b.createVariableStatement(void 0,b.createVariableDeclarationList(O));e.setEmitFlags(lr,1048576),n?n.push(lr):n=[lr]}ee&&(n?n=Ve(Ve([],n,!0),ee,!0):n=Ve([],ee,!0))}return A--,O=F[A],ve=x[A],ee=X[A],he=$[A],A===0&&(F=[],x=[],X=[],$=[]),n}function Ae(n,lr){he=lr?he|n:he&~n}function er(){return he}function ir(){e.Debug.assert(j>0,\"Cannot start a block scope during initialization.\"),e.Debug.assert(j<2,\"Cannot start a block scope after transformation has completed.\"),V[L]=P,L++,P=void 0}function Cr(){e.Debug.assert(j>0,\"Cannot end a block scope during initialization.\"),e.Debug.assert(j<2,\"Cannot end a block scope after transformation has completed.\");var n=e.some(P)?[b.createVariableStatement(void 0,b.createVariableDeclarationList(P.map(function(lr){return b.createVariableDeclaration(lr)}),1))]:void 0;return L--,P=V[L],L===0&&(V=[]),n}function Ye(n){e.Debug.assert(L>0,\"Cannot add a block scoped variable outside of an iteration body.\"),(P||(P=[])).push(n)}function Br(n){if(e.Debug.assert(j>0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the transformation context after transformation has completed.\"),e.Debug.assert(!n.scoped,\"Cannot request a scoped emit helper.\"),n.dependencies)for(var lr=0,be=n.dependencies;lr0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the transformation context after transformation has completed.\");var n=k;return k=void 0,n}function Ne(){if(j<3){for(var n=0,lr=J;n\"),Ut(),gr(v.type),Iu(v)}function Ko(v){vn(\"function\"),ef(v,v.parameters),Gt(\":\"),gr(v.type)}function Oo(v){Gt(\"?\"),gr(v.type)}function no(v){Gt(\"!\"),gr(v.type)}function $o(v){gr(v.type),Gt(\"=\")}function Pr(v){wl(v),ks(v,v.modifiers),vn(\"new\"),Ut(),Vu(v,v.typeParameters),ef(v,v.parameters),Ut(),Gt(\"=>\"),Ut(),gr(v.type),Iu(v)}function xi(v){vn(\"typeof\"),Ut(),gr(v.exprName),qu(v,v.typeArguments)}function St(v){Gt(\"{\");var sr=e.getEmitFlags(v)&1?768:32897;Zn(v,v.members,sr|524288),Gt(\"}\")}function pa(v){gr(v.elementType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt(\"[\"),Gt(\"]\")}function dn(v){Gt(\"...\"),gr(v.type)}function Jn(v){Ya(22,v.pos,Gt,v);var sr=e.getEmitFlags(v)&1?528:657;Zn(v,v.elements,sr|524288,Gi.parenthesizeElementTypeOfTupleType),Ya(23,v.elements.end,Gt,v)}function Qe(v){gr(v.dotDotDotToken),gr(v.name),gr(v.questionToken),Ya(58,v.name.end,Gt,v),Ut(),gr(v.type)}function Gr(v){gr(v.type,Gi.parenthesizeTypeOfOptionalType),Gt(\"?\")}function S(v){Zn(v,v.types,516,Gi.parenthesizeConstituentTypeOfUnionType)}function Ce(v){Zn(v,v.types,520,Gi.parenthesizeConstituentTypeOfIntersectionType)}function qe(v){gr(v.checkType,Gi.parenthesizeCheckTypeOfConditionalType),Ut(),vn(\"extends\"),Ut(),gr(v.extendsType,Gi.parenthesizeExtendsTypeOfConditionalType),Ut(),Gt(\"?\"),Ut(),gr(v.trueType),Ut(),Gt(\":\"),Ut(),gr(v.falseType)}function br(v){vn(\"infer\"),Ut(),gr(v.typeParameter)}function Zr(v){Gt(\"(\"),gr(v.type),Gt(\")\")}function Si(){vn(\"this\")}function Pi(v){Il(v.operator,vn),Ut();var sr=v.operator===145?Gi.parenthesizeOperandOfReadonlyTypeOperator:Gi.parenthesizeOperandOfTypeOperator;gr(v.type,sr)}function Qi(v){gr(v.objectType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt(\"[\"),gr(v.indexType),Gt(\"]\")}function Ct(v){var sr=e.getEmitFlags(v);Gt(\"{\"),sr&1?Ut():(bs(),Dc()),v.readonlyToken&&(gr(v.readonlyToken),v.readonlyToken.kind!==145&&vn(\"readonly\"),Ut()),Gt(\"[\"),Wi(3,v.typeParameter),v.nameType&&(Ut(),vn(\"as\"),Ut(),gr(v.nameType)),Gt(\"]\"),v.questionToken&&(gr(v.questionToken),v.questionToken.kind!==57&&Gt(\"?\")),Gt(\":\"),Ut(),gr(v.type),As(),sr&1?Ut():(bs(),Cc()),Zn(v,v.members,2),Gt(\"}\")}function sa(v){Tr(v.literal)}function en(v){gr(v.head),Zn(v,v.templateSpans,262144)}function Wa(v){if(v.isTypeOf&&(vn(\"typeof\"),Ut()),vn(\"import\"),Gt(\"(\"),gr(v.argument),v.assertions){Gt(\",\"),Ut(),Gt(\"{\"),Ut(),vn(\"assert\"),Gt(\":\"),Ut();var sr=v.assertions.assertClause.elements;Zn(v.assertions.assertClause,sr,526226),Ut(),Gt(\"}\")}Gt(\")\"),v.qualifier&&(Gt(\".\"),gr(v.qualifier)),qu(v,v.typeArguments)}function qn(v){Gt(\"{\"),Zn(v,v.elements,525136),Gt(\"}\")}function mo(v){Gt(\"[\"),Zn(v,v.elements,524880),Gt(\"]\")}function So(v){gr(v.dotDotDotToken),v.propertyName&&(gr(v.propertyName),Gt(\":\"),Ut()),gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function Go(v){var sr=v.elements,fi=v.multiLine?65536:0;os(v,sr,8914|fi,Gi.parenthesizeExpressionForDisallowedComma)}function ys(v){e.forEach(v.properties,Ys);var sr=e.getEmitFlags(v)&65536;sr&&Dc();var fi=v.multiLine?65536:0,zi=Re&&Re.languageVersion>=1&&!e.isJsonSourceFile(Re)?64:0;Zn(v,v.properties,526226|zi|fi),sr&&Cc()}function Pc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess);var sr=v.questionDotToken||e.setTextRangePosEnd(e.factory.createToken(24),v.expression.end,v.name.pos),fi=iu(v,v.expression,sr),zi=iu(v,sr,v.name);Nu(fi,!1);var Sa=sr.kind!==28&&Vc(v.expression)&&!Ae.hasTrailingComment()&&!Ae.hasTrailingWhitespace();Sa&&Gt(\".\"),v.questionDotToken?gr(sr):Ya(sr.kind,v.expression.end,Gt,v),Nu(zi,!1),gr(v.name),Us(fi,zi)}function Vc(v){if(v=e.skipPartiallyEmittedExpressions(v),e.isNumericLiteral(v)){var sr=Pu(v,!0,!1);return!v.numericLiteralFlags&&!e.stringContains(sr,e.tokenToString(24))}else if(e.isAccessExpression(v)){var fi=e.getConstantValue(v);return typeof fi==\"number\"&&isFinite(fi)&&Math.floor(fi)===fi}}function Kc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),gr(v.questionDotToken),Ya(22,v.expression.end,Gt,v),Tr(v.argumentExpression),Ya(23,v.argumentExpression.end,Gt,v)}function Xs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt(\"(\"),d_(\"0\"),Gt(\",\"),Ut()),Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(\")\"),gr(v.questionDotToken),qu(v,v.typeArguments),os(v,v.arguments,2576,Gi.parenthesizeExpressionForDisallowedComma)}function pc(v){Ya(103,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionOfNew),qu(v,v.typeArguments),os(v,v.arguments,18960,Gi.parenthesizeExpressionForDisallowedComma)}function hs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt(\"(\"),d_(\"0\"),Gt(\",\"),Ut()),Tr(v.tag,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(\")\"),qu(v,v.typeArguments),Ut(),Tr(v.template)}function tc(v){Gt(\"<\"),gr(v.type),Gt(\">\"),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ps(v){var sr=Ya(20,v.pos,Gt,v),fi=J_(v.expression,v);Tr(v.expression,void 0),j_(v.expression,v),Us(fi),Ya(21,v.expression?v.expression.end:sr,Gt,v)}function Qs(v){Ku(v.name),rn(v)}function js(v){wc(v,v.decorators),ks(v,v.modifiers),jn(v,ds)}function ds(v){Vu(v,v.typeParameters),p_(v,v.parameters),Wu(v.type),Ut(),gr(v.equalsGreaterThanToken)}function Ji(v){Ya(89,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ce(v){Ya(112,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function Rr(v){Ya(114,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function yi(v){Ya(132,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function qi(v){Il(v.operator,Nl),je(v)&&Ut(),Tr(v.operand,Gi.parenthesizeOperandOfPrefixUnary)}function je(v){var sr=v.operand;return sr.kind===219&&(v.operator===39&&(sr.operator===39||sr.operator===45)||v.operator===40&&(sr.operator===40||sr.operator===46))}function Hr(v){Tr(v.operand,Gi.parenthesizeOperandOfPostfixUnary),Il(v.operator,Nl)}function pt(){return e.createBinaryExpressionTrampoline(v,sr,fi,zi,Sa,void 0);function v(Ha,ta){if(ta){ta.stackIndex++,ta.preserveSourceNewlinesStack[ta.stackIndex]=de,ta.containerPosStack[ta.stackIndex]=wr,ta.containerEndStack[ta.stackIndex]=Ur,ta.declarationListContainerEndStack[ta.stackIndex]=ii;var nn=ta.shouldEmitCommentsStack[ta.stackIndex]=ct(Ha),Wo=ta.shouldEmitSourceMapsStack[ta.stackIndex]=Li(Ha);D==null||D(Ha),nn&&z_(Ha),Wo&&v_(Ha),Ui(Ha)}else ta={stackIndex:0,preserveSourceNewlinesStack:[void 0],containerPosStack:[-1],containerEndStack:[-1],declarationListContainerEndStack:[-1],shouldEmitCommentsStack:[!1],shouldEmitSourceMapsStack:[!1]};return ta}function sr(Ha,ta,nn){return da(Ha,nn,\"left\")}function fi(Ha,ta,nn){var Wo=Ha.kind!==27,Lo=iu(nn,nn.left,Ha),oc=iu(nn,Ha,nn.right);Nu(Lo,Wo),Vf(Ha.pos),Pl(Ha,Ha.kind===101?vn:Nl),af(Ha.end,!0),Nu(oc,!0)}function zi(Ha,ta,nn){return da(Ha,nn,\"right\")}function Sa(Ha,ta){var nn=iu(Ha,Ha.left,Ha.operatorToken),Wo=iu(Ha,Ha.operatorToken,Ha.right);if(Us(nn,Wo),ta.stackIndex>0){var Lo=ta.preserveSourceNewlinesStack[ta.stackIndex],oc=ta.containerPosStack[ta.stackIndex],uu=ta.containerEndStack[ta.stackIndex],is=ta.declarationListContainerEndStack[ta.stackIndex],au=ta.shouldEmitCommentsStack[ta.stackIndex],Ou=ta.shouldEmitSourceMapsStack[ta.stackIndex];Yi(Lo),Ou&&Bp(Ha),au&&Oc(Ha,oc,uu,is),fe==null||fe(Ha),ta.stackIndex--}}function da(Ha,ta,nn){var Wo=nn===\"left\"?Gi.getParenthesizeLeftSideOfBinaryForOperator(ta.operatorToken.kind):Gi.getParenthesizeRightSideOfBinaryForOperator(ta.operatorToken.kind),Lo=nt(0,1,Ha);if(Lo===Ii&&(e.Debug.assertIsDefined(si),Ha=Wo(e.cast(si,e.isExpression)),Lo=Mt(1,1,Ha),si=void 0),(Lo===xf||Lo===hd||Lo===ut)&&e.isBinaryExpression(Ha))return Ha;Di=Wo,Lo(1,Ha)}}function Pt(v){var sr=iu(v,v.condition,v.questionToken),fi=iu(v,v.questionToken,v.whenTrue),zi=iu(v,v.whenTrue,v.colonToken),Sa=iu(v,v.colonToken,v.whenFalse);Tr(v.condition,Gi.parenthesizeConditionOfConditionalExpression),Nu(sr,!0),gr(v.questionToken),Nu(fi,!0),Tr(v.whenTrue,Gi.parenthesizeBranchOfConditionalExpression),Us(sr,fi),Nu(zi,!0),gr(v.colonToken),Nu(Sa,!0),Tr(v.whenFalse,Gi.parenthesizeBranchOfConditionalExpression),Us(zi,Sa)}function ga(v){gr(v.head),Zn(v,v.templateSpans,262144)}function ua(v){Ya(125,v.pos,vn,v),gr(v.asteriskToken),__(v.expression&&Kr(v.expression),_i)}function Xn(v){Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma)}function jr(v){Ku(v.name),ki(v)}function fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),qu(v,v.typeArguments)}function xs(v){Tr(v.expression,void 0),v.type&&(Ut(),vn(\"as\"),Ut(),gr(v.type))}function Fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),Nl(\"!\")}function ko(v){ac(v.keywordToken,v.pos,Gt),Gt(\".\"),gr(v.name)}function Ao(v){Tr(v.expression),gr(v.literal)}function Ms(v){Bs(v,!v.multiLine&&vd(v))}function Bs(v,sr){Ya(18,v.pos,Gt,v);var fi=sr||e.getEmitFlags(v)&1?768:129;Zn(v,v.statements,fi),Ya(19,v.statements.end,Gt,v,!!(fi&1))}function xc(v){ks(v,v.modifiers),gr(v.declarationList),As()}function su(v){v?Gt(\";\"):As()}function tl(v){Tr(v.expression,Gi.parenthesizeExpressionOfExpressionStatement),(!Re||!e.isJsonSourceFile(Re)||e.nodeIsSynthesized(v.expression))&&As()}function Zc(v){var sr=Ya(99,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.thenStatement),v.elseStatement&&(zf(v,v.thenStatement,v.elseStatement),Ya(91,v.thenStatement.end,vn,v),v.elseStatement.kind===239?(Ut(),gr(v.elseStatement)):Al(v,v.elseStatement))}function Rf(v,sr){var fi=Ya(115,sr,vn,v);Ut(),Ya(20,fi,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v)}function al(v){Ya(90,v.pos,vn,v),Al(v,v.statement),e.isBlock(v.statement)&&!de?Ut():zf(v,v.statement,v.expression),Rf(v,v.statement.end),As()}function Jo(v){Rf(v,v.pos),Al(v,v.statement)}function eu(v){var sr=Ya(97,v.pos,vn,v);Ut();var fi=Ya(20,sr,Gt,v);Uu(v.initializer),fi=Ya(26,v.initializer?v.initializer.end:fi,Gt,v),__(v.condition),fi=Ya(26,v.condition?v.condition.end:fi,Gt,v),__(v.incrementor),Ya(21,v.incrementor?v.incrementor.end:fi,Gt,v),Al(v,v.statement)}function Ws(v){var sr=Ya(97,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(101,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function pu(v){var sr=Ya(97,v.pos,vn,v);Ut(),zd(v.awaitModifier),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(160,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function Uu(v){v!==void 0&&(v.kind===255?gr(v):Tr(v))}function Ql(v){Ya(86,v.pos,vn,v),kl(v.label),As()}function xl(v){Ya(81,v.pos,vn,v),kl(v.label),As()}function Ya(v,sr,fi,zi,Sa){var da=e.getParseTreeNode(zi),Ha=da&&da.kind===zi.kind,ta=sr;if(Ha&&Re&&(sr=e.skipTrivia(Re.text,sr)),Ha&&zi.pos!==ta){var nn=Sa&&Re&&!e.positionsAreOnSameLine(ta,sr,Re);nn&&Dc(),Vf(ta),nn&&Cc()}if(sr=Il(v,fi,sr),Ha&&zi.end!==sr){var Wo=zi.kind===288;af(sr,!Wo,Wo)}return sr}function du(v){return v.kind===2||!!v.hasTrailingNewLine}function vc(v){return Re?e.some(e.getLeadingCommentRanges(Re.text,v.pos),du)||e.some(e.getSyntheticLeadingComments(v),du)?!0:e.isPartiallyEmittedExpression(v)?v.pos!==v.expression.pos&&e.some(e.getTrailingCommentRanges(Re.text,v.expression.pos),du)?!0:vc(v.expression):!1:!1}function Kr(v){if(!qr&&e.isPartiallyEmittedExpression(v)&&vc(v)){var sr=e.getParseTreeNode(v);if(sr&&e.isParenthesizedExpression(sr)){var fi=e.factory.createParenthesizedExpression(v.expression);return e.setOriginalNode(fi,v),e.setTextRange(fi,sr),fi}return e.factory.createParenthesizedExpression(v)}return v}function _i(v){return Kr(Gi.parenthesizeExpressionForDisallowedComma(v))}function Ei(v){Ya(105,v.pos,vn,v),__(v.expression&&Kr(v.expression),Kr),As()}function tt(v){var sr=Ya(116,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function kt(v){var sr=Ya(107,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Ut(),gr(v.caseBlock)}function bt(v){gr(v.label),Ya(58,v.label.end,Gt,v),Ut(),gr(v.statement)}function ia(v){Ya(109,v.pos,vn,v),__(Kr(v.expression),Kr),As()}function Xt(v){Ya(111,v.pos,vn,v),Ut(),gr(v.tryBlock),v.catchClause&&(zf(v,v.tryBlock,v.catchClause),gr(v.catchClause)),v.finallyBlock&&(zf(v,v.catchClause||v.tryBlock,v.finallyBlock),Ya(96,(v.catchClause||v.tryBlock).end,vn,v),Ut(),gr(v.finallyBlock))}function Za(v){ac(87,v.pos,vn),As()}function bn(v){var sr,fi,zi,Sa,da;gr(v.name),gr(v.exclamationToken),Wu(v.type),Zl(v.initializer,(da=(fi=(sr=v.type)===null||sr===void 0?void 0:sr.end)!==null&&fi!==void 0?fi:(Sa=(zi=v.name.emitNode)===null||zi===void 0?void 0:zi.typeNode)===null||Sa===void 0?void 0:Sa.end)!==null&&da!==void 0?da:v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function _a(v){vn(e.isLet(v)?\"let\":e.isVarConst(v)?\"const\":\"var\"),Ut(),Zn(v,v.declarations,528)}function qa(v){rn(v)}function rn(v){wc(v,v.decorators),ks(v,v.modifiers),vn(\"function\"),gr(v.asteriskToken),Ut(),Vr(v.name),jn(v,Mo)}function jn(v,sr){var fi=v.body;if(fi)if(e.isBlock(fi)){var zi=e.getEmitFlags(v)&65536;zi&&Dc(),wl(v),e.forEach(v.parameters,Et),Et(v.body),sr(v),gs(fi),Iu(v),zi&&Cc()}else sr(v),Ut(),Tr(fi,Gi.parenthesizeConciseBodyOfArrowFunction);else sr(v),As()}function Mo(v){Vu(v,v.typeParameters),ef(v,v.parameters),Wu(v.type)}function ho(v){if(e.getEmitFlags(v)&1)return!0;if(v.multiLine||!e.nodeIsSynthesized(v)&&Re&&!e.rangeIsOnSingleLine(v,Re)||Ap(v,v.statements,2)||Sf(v,v.statements,2))return!1;for(var sr,fi=0,zi=v.statements;fi0)return!1;sr=Sa}return!0}function gs(v){D==null||D(v),Ut(),Gt(\"{\"),Dc();var sr=ho(v)?Se:hr;Mp(v,v.statements,sr),Cc(),ac(19,v.statements.end,Gt,v),fe==null||fe(v)}function Se(v){hr(v,!0)}function hr(v,sr){var fi=$l(v.statements),zi=Ae.getTextPos();Fi(v),fi===0&&zi===Ae.getTextPos()&&sr?(Cc(),Zn(v,v.statements,768),Dc()):Zn(v,v.statements,1,void 0,fi)}function Or(v){ki(v)}function ki(v){e.forEach(v.members,Ys),wc(v,v.decorators),ks(v,v.modifiers),vn(\"class\"),v.name&&(Ut(),Vr(v.name));var sr=e.getEmitFlags(v)&65536;sr&&Dc(),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,0),Ut(),Gt(\"{\"),Zn(v,v.members,129),Gt(\"}\"),sr&&Cc()}function dt(v){wc(v,v.decorators),ks(v,v.modifiers),vn(\"interface\"),Ut(),gr(v.name),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,512),Ut(),Gt(\"{\"),Zn(v,v.members,129),Gt(\"}\")}function la(v){wc(v,v.decorators),ks(v,v.modifiers),vn(\"type\"),Ut(),gr(v.name),Vu(v,v.typeParameters),Ut(),Gt(\"=\"),Ut(),gr(v.type),As()}function wa(v){ks(v,v.modifiers),vn(\"enum\"),Ut(),gr(v.name),Ut(),Gt(\"{\"),Zn(v,v.members,145),Gt(\"}\")}function On(v){ks(v,v.modifiers),~v.flags&1024&&(vn(v.flags&16?\"namespace\":\"module\"),Ut()),gr(v.name);var sr=v.body;if(!sr)return As();for(;sr&&e.isModuleDeclaration(sr);)Gt(\".\"),gr(sr.name),sr=sr.body;Ut(),gr(sr)}function No(v){wl(v),e.forEach(v.statements,Et),Bs(v,vd(v)),Iu(v)}function jo(v){Ya(18,v.pos,Gt,v),Zn(v,v.clauses,129),Ya(19,v.clauses.end,Gt,v,!0)}function po(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),Ut(),Ya(63,v.name.end,Gt,v),Ut(),Gn(v.moduleReference),As()}function Gn(v){v.kind===79?Tr(v):gr(v)}function $n(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.importClause&&(gr(v.importClause),Ut(),Ya(156,v.importClause.end,vn,v),Ut()),Tr(v.moduleSpecifier),v.assertClause&&kl(v.assertClause),As()}function Ho(v){v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),v.name&&v.namedBindings&&(Ya(27,v.name.end,Gt,v),Ut()),gr(v.namedBindings)}function Zo(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function Es(v){oo(v)}function yc(v){I_(v)}function Xr(v){var sr=Ya(93,v.pos,vn,v);Ut(),v.isExportEquals?Ya(63,sr,Nl,v):Ya(88,sr,vn,v),Ut(),Tr(v.expression,v.isExportEquals?Gi.getParenthesizeRightSideOfBinaryForOperator(63):Gi.parenthesizeExpressionOfExportDefault),As()}function Ls(v){var sr=Ya(93,v.pos,vn,v);if(Ut(),v.isTypeOnly&&(sr=Ya(152,sr,vn,v),Ut()),v.exportClause?gr(v.exportClause):sr=Ya(41,sr,Gt,v),v.moduleSpecifier){Ut();var fi=v.exportClause?v.exportClause.end:sr;Ya(156,fi,vn,v),Ut(),Tr(v.moduleSpecifier)}v.assertClause&&kl(v.assertClause),As()}function Ic(v){Ya(129,v.pos,vn,v),Ut();var sr=v.elements;Zn(v,sr,526226)}function zu(v){gr(v.name),Gt(\":\"),Ut();var sr=v.value;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}gr(sr)}function vf(v){var sr=Ya(93,v.pos,vn,v);Ut(),sr=Ya(127,sr,vn,v),Ut(),sr=Ya(142,sr,vn,v),Ut(),gr(v.name),As()}function P_(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function El(v){oo(v)}function vp(v){I_(v)}function oo(v){Gt(\"{\"),Zn(v,v.elements,525136),Gt(\"}\")}function I_(v){v.isTypeOnly&&(vn(\"type\"),Ut()),v.propertyName&&(gr(v.propertyName),Ut(),Ya(127,v.propertyName.end,vn,v),Ut()),gr(v.name)}function yp(v){vn(\"require\"),Gt(\"(\"),Tr(v.expression),Gt(\")\")}function Yl(v){gr(v.openingElement),Zn(v,v.children,262144),gr(v.closingElement)}function Bf(v){Gt(\"<\"),ns(v.tagName),qu(v,v.typeArguments),Ut(),gr(v.attributes),Gt(\"/>\")}function Cl(v){gr(v.openingFragment),Zn(v,v.children,262144),gr(v.closingFragment)}function c_(v){if(Gt(\"<\"),e.isJsxOpeningElement(v)){var sr=J_(v.tagName,v);ns(v.tagName),qu(v,v.typeArguments),v.attributes.properties&&v.attributes.properties.length>0&&Ut(),gr(v.attributes),j_(v.attributes,v),Us(sr)}Gt(\">\")}function hp(v){Ae.writeLiteral(v.text)}function gu(v){Gt(\"\")}function Dp(v){Zn(v,v.properties,262656)}function sd(v){gr(v.name),R_(\"=\",Gt,v.initializer,vi)}function Aa(v){Gt(\"{...\"),Tr(v.expression),Gt(\"}\")}function va(v){var sr=!1;return e.forEachTrailingCommentRange((Re==null?void 0:Re.text)||\"\",v+1,function(){return sr=!0}),sr}function Cu(v){var sr=!1;return e.forEachLeadingCommentRange((Re==null?void 0:Re.text)||\"\",v+1,function(){return sr=!0}),sr}function qs(v){return va(v)||Cu(v)}function cd(v){var sr;if(v.expression||!qr&&!e.nodeIsSynthesized(v)&&qs(v.pos)){var fi=Re&&!e.nodeIsSynthesized(v)&&e.getLineAndCharacterOfPosition(Re,v.pos).line!==e.getLineAndCharacterOfPosition(Re,v.end).line;fi&&Ae.increaseIndent();var zi=Ya(18,v.pos,Gt,v);gr(v.dotDotDotToken),Tr(v.expression),Ya(19,((sr=v.expression)===null||sr===void 0?void 0:sr.end)||zi,Gt,v),fi&&Ae.decreaseIndent()}}function ns(v){v.kind===79?Tr(v):gr(v)}function nl(v){Ya(82,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma),es(v,v.statements,v.expression.end)}function hc(v){var sr=Ya(88,v.pos,vn,v);es(v,v.statements,sr)}function es(v,sr,fi){var zi=sr.length===1&&(!Re||e.nodeIsSynthesized(v)||e.nodeIsSynthesized(sr[0])||e.rangeStartPositionsAreOnSameLine(v,sr[0],Re)),Sa=163969;zi?(ac(58,fi,Gt,v),Ut(),Sa&=-130):Ya(58,fi,Gt,v),Zn(v,sr,Sa)}function u_(v){Ut(),Il(v.token,vn),Ut(),Zn(v,v.types,528)}function Jf(v){var sr=Ya(83,v.pos,vn,v);Ut(),v.variableDeclaration&&(Ya(20,sr,Gt,v),gr(v.variableDeclaration),Ya(21,v.variableDeclaration.end,Gt,v),Ut()),gr(v.block)}function w_(v){gr(v.name),Gt(\":\"),Ut();var sr=v.initializer;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}Tr(sr,Gi.parenthesizeExpressionForDisallowedComma)}function ud(v){gr(v.name),v.objectAssignmentInitializer&&(Ut(),Gt(\"=\"),Ut(),Tr(v.objectAssignmentInitializer,Gi.parenthesizeExpressionForDisallowedComma))}function ku(v){v.expression&&(Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma))}function ld(v){gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function fd(v){if(ir(\"/**\"),v.comment){var sr=e.getTextOfJSDocComment(v.comment);if(sr)for(var fi=sr.split(/\\r\\n?|\\n/g),zi=0,Sa=fi;zi'),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:\"no-default-lib\"}),bs()}if(Re&&Re.moduleName&&(rf('/// ')),bs()),Re&&Re.amdDependencies)for(var da=0,Ha=Re.amdDependencies;da')):rf('/// ')),bs()}for(var nn=0,Wo=sr;nn')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:\"reference\",data:Lo.fileName}),bs()}for(var oc=0,uu=fi;oc\")),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:Lo.resolutionMode?Lo.resolutionMode===e.ModuleKind.ESNext?\"type-import\":\"type-require\":\"type\",data:Lo.fileName}),bs()}for(var au=0,Ou=zi;au')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:\"lib\",data:Lo.fileName}),bs()}}function mu(v){var sr=v.statements;wl(v),e.forEach(v.statements,Et),Fi(v);var fi=e.findIndex(sr,function(zi){return!e.isPrologueDirective(zi)});dd(v),Zn(v,sr,1,void 0,fi===-1?sr.length:fi),Iu(v)}function gd(v){var sr=e.getEmitFlags(v);!(sr&512)&&v.pos!==v.expression.pos&&af(v.expression.pos),Tr(v.expression),!(sr&1024)&&v.end!==v.expression.end&&Vf(v.expression.end)}function hf(v){os(v,v.elements,528,void 0)}function $l(v,sr,fi,zi){for(var Sa=!!sr,da=0;da=fi.length||Ha===0;if(nn&&zi&32768){g&&g(fi),ne&&ne(fi);return}if(zi&15360&&(Gt(X(zi)),nn&&fi&&af(fi.pos,!0)),g&&g(fi),nn)zi&1&&!(de&&(!sr||Re&&e.rangeIsOnSingleLine(sr,Re)))?bs():zi&256&&!(zi&524288)&&Ut();else{e.Debug.type(fi);var Wo=(zi&262144)===0,Lo=Wo,oc=Ap(sr,fi,zi);oc?(bs(oc),Lo=!1):zi&256&&Ut(),zi&128&&Dc();for(var uu=P(v,Sa),is=void 0,au=void 0,Ou=!1,sf=0;sf0?((zi&131)===0&&(Dc(),Ou=!0),bs(cf),Lo=!1):is&&zi&512&&Ut()}if(au=Wr(lu),Lo){var uf=e.getCommentRange(lu);af(uf.pos)}else Lo=Wo;ye=lu.pos,uu(lu,v,Sa,sf),Ou&&(Cc(),Ou=!1),is=lu}var K_=is?e.getEmitFlags(is):0,Jp=qr||!!(K_&1024),Hf=(fi==null?void 0:fi.hasTrailingComma)&&zi&64&&zi&16;Hf&&(is&&!Jp?Ya(27,is.end,Gt,is):Gt(\",\")),is&&(sr?sr.end:-1)!==is.end&&zi&60&&!Jp&&Vf(Hf&&(fi==null?void 0:fi.end)?fi.end:is.end),zi&128&&Cc(),Je(au);var kc=Sf(sr,fi,zi);kc?bs(kc):zi&2097408&&Ut()}ne&&ne(fi),zi&15360&&(nn&&fi&&Vf(fi.end),Gt($(zi)))}}function d_(v){Ae.writeLiteral(v)}function Gc(v){Ae.writeStringLiteral(v)}function B_(v){Ae.write(v)}function vu(v,sr){Ae.writeSymbol(v,sr)}function Gt(v){Ae.writePunctuation(v)}function As(){Ae.writeTrailingSemicolon(\";\")}function vn(v){Ae.writeKeyword(v)}function Nl(v){Ae.writeOperator(v)}function cl(v){Ae.writeParameter(v)}function rf(v){Ae.writeComment(v)}function Ut(){Ae.writeSpace(\" \")}function Ds(v){Ae.writeProperty(v)}function bf(v){Ae.nonEscapingWrite?Ae.nonEscapingWrite(v):Ae.write(v)}function bs(v){v===void 0&&(v=1);for(var sr=0;sr0)}function Dc(){Ae.increaseIndent()}function Cc(){Ae.decreaseIndent()}function ac(v,sr,fi,zi){return lr?Il(v,fi,sr):of(zi,v,fi,sr,Il)}function Pl(v,sr){ue&&ue(v),sr(e.tokenToString(v.kind)),We&&We(v)}function Il(v,sr,fi){var zi=e.tokenToString(v);return sr(zi),fi<0?fi:fi+zi.length}function zf(v,sr,fi){if(e.getEmitFlags(v)&1)Ut();else if(de){var zi=iu(v,sr,fi);zi?bs(zi):Ut()}else bs()}function ul(v){for(var sr=v.split(/\\r\\n?|\\n/g),fi=e.guessIndentation(sr),zi=0,Sa=sr;zi0||zi>0)&&fi!==zi&&(Sa||Cf(fi,v.kind!==349),(!Sa||fi>=0&&(sr&512)!==0)&&(wr=fi),(!da||zi>=0&&(sr&1024)!==0)&&(Ur=zi,v.kind===255&&(ii=zi))),e.forEach(e.getSyntheticLeadingComments(v),Ef),et()}function Op(v,sr,fi,zi,Sa,da,Ha){Xi();var ta=zi<0||(sr&1024)!==0||v.kind===11;e.forEach(e.getSyntheticTrailingComments(v),Fl),(fi>0||zi>0)&&fi!==zi&&(wr=Sa,Ur=da,ii=Ha,!ta&&v.kind!==349&&Fc(zi)),et()}function Ef(v){(v.hasLeadingNewline||v.kind===2)&&Ae.writeLine(),pl(v),v.hasTrailingNewLine||v.kind===2?Ae.writeLine():Ae.writeSpace(\" \")}function Fl(v){Ae.isAtStartOfLine()||Ae.writeSpace(\" \"),pl(v),v.hasTrailingNewLine&&Ae.writeLine()}function pl(v){var sr=Fp(v),fi=v.kind===3?e.computeLineStarts(sr):void 0;e.writeCommentRange(sr,fi,Ae,0,sr.length,Z)}function Fp(v){return v.kind===3?\"/*\".concat(v.text,\"*/\"):\"//\".concat(v.text)}function Mp(v,sr,fi){Xi();var zi=sr.pos,Sa=sr.end,da=e.getEmitFlags(v),Ha=zi<0||(da&512)!==0,ta=qr||Sa<0||(da&1024)!==0;Ha||Rp(sr),et(),da&2048&&!qr?(qr=!0,fi(v),qr=!1):fi(v),Xi(),ta||(Cf(sr.end,!0),or&&!Ae.isAtStartOfLine()&&Ae.writeLine()),et()}function Gu(v,sr){return v=e.getOriginalNode(v),v.parent&&v.parent===e.getOriginalNode(sr).parent}function Lp(v,sr){if(sr.pos-1&&zi.indexOf(sr)===Sa+1}function Cf(v,sr){or=!1,sr?v===0&&(Re==null?void 0:Re.isDeclarationFile)?Ot(v,g_):Ot(v,gl):v===0&&Ot(v,W_)}function W_(v,sr,fi,zi,Sa){m_(v,sr)&&gl(v,sr,fi,zi,Sa)}function g_(v,sr,fi,zi,Sa){m_(v,sr)||gl(v,sr,fi,zi,Sa)}function dl(v,sr){return k.onlyPrintJsDocStyle?e.isJSDocLikeText(v,sr)||e.isPinnedComment(v,sr):!0}function gl(v,sr,fi,zi,Sa){!Re||!dl(Re.text,v)||(or||(e.emitNewLineBeforeLeadingCommentOfPosition(De(),Ae,Sa,v),or=!0),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():fi===3&&Ae.writeSpace(\" \"))}function Vf(v){qr||v===-1||Cf(v,!0)}function Fc(v){nf(v,Hu)}function Hu(v,sr,fi,zi){!Re||!dl(Re.text,v)||(Ae.isAtStartOfLine()||Ae.writeSpace(\" \"),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi&&Ae.writeLine())}function af(v,sr,fi){qr||(Xi(),nf(v,sr?Hu:fi?tn:Ml),et())}function tn(v,sr,fi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),fi===2&&Ae.writeLine())}function Ml(v,sr,fi,zi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():Ae.writeSpace(\" \"))}function Ot(v,sr){Re&&(wr===-1||v!==wr)&&(q_(v)?Kf(sr):e.forEachLeadingCommentRange(Re.text,v,sr,v))}function nf(v,sr){Re&&(Ur===-1||v!==Ur&&v!==ii)&&e.forEachTrailingCommentRange(Re.text,v,sr)}function q_(v){return pe!==void 0&&e.last(pe).nodePos===v}function Kf(v){if(!!Re){var sr=e.last(pe).detachedCommentEndPos;pe.length-1?pe.pop():pe=void 0,e.forEachLeadingCommentRange(Re.text,sr,v,sr)}}function Rp(v){var sr=Re&&e.emitDetachedComments(Re.text,De(),Ae,yd,v,Z,qr);sr&&(pe?pe.push(sr):pe=[sr])}function yd(v,sr,fi,zi,Sa,da){!Re||!dl(Re.text,zi)||(Xc(zi),e.writeCommentRange(v,sr,fi,zi,Sa,da),Xc(Sa))}function m_(v,sr){return!!Re&&e.isRecognizedTripleSlashComment(Re.text,v,sr)}function Ll(v){return v.parsedSourceMap===void 0&&v.sourceMapText!==void 0&&(v.parsedSourceMap=e.tryParseRawSourceMap(v.sourceMapText)||!1),v.parsedSourceMap||void 0}function hd(v,sr){var fi=Mt(3,v,sr);v_(sr),fi(v,sr),Bp(sr)}function v_(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);if(e.isUnparsedNode(v)){e.Debug.assertIsDefined(v.parent,\"UnparsedNodes must have parent pointers\");var zi=Ll(v.parent);zi&&be&&be.appendSourceMap(Ae.getLine(),Ae.getColumn(),zi,v.parent.sourceMapPath,v.parent.getLineAndCharacterOfPosition(v.pos),v.parent.getLineAndCharacterOfPosition(v.end))}else{var Sa=fi.source||Ge;v.kind!==349&&(sr&16)===0&&fi.pos>=0&&Gf(fi.source||Ge,Xu(Sa,fi.pos)),sr&64&&(lr=!0)}}function Bp(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);e.isUnparsedNode(v)||(sr&64&&(lr=!1),v.kind!==349&&(sr&32)===0&&fi.end>=0&&Gf(fi.source||Ge,fi.end))}function Xu(v,sr){return v.skipTrivia?v.skipTrivia(sr):e.skipTrivia(v.text,sr)}function Xc(v){if(!(lr||e.positionIsSynthesized(v)||yu(Ge))){var sr=e.getLineAndCharacterOfPosition(Ge,v),fi=sr.line,zi=sr.character;be.addMapping(Ae.getLine(),Ae.getColumn(),ur,fi,zi,void 0)}}function Gf(v,sr){if(v!==Ge){var fi=Ge,zi=ur;wu(v),Xc(sr),V_(fi,zi)}else Xc(sr)}function of(v,sr,fi,zi,Sa){if(lr||v&&e.isInJsonFile(v))return Sa(sr,fi,zi);var da=v&&v.emitNode,Ha=da&&da.flags||0,ta=da&&da.tokenSourceMapRanges&&da.tokenSourceMapRanges[sr],nn=ta&&ta.source||Ge;return zi=Xu(nn,ta?ta.pos:zi),(Ha&128)===0&&zi>=0&&Gf(nn,zi),zi=Sa(sr,fi,zi),ta&&(zi=ta.end),(Ha&256)===0&&zi>=0&&Gf(nn,zi),zi}function wu(v){if(!lr){if(Ge=v,v===yr){ur=Ir;return}yu(v)||(ur=be.addSource(v.fileName),k.inlineSources&&be.setSourceContent(ur,v.text),yr=v,Ir=ur)}}function V_(v,sr){Ge=v,ur=sr}function yu(v){return e.fileExtensionIs(v.fileName,\".json\")}}e.createPrinter=F;function x(){var k=[];return k[1024]=[\"{\",\"}\"],k[2048]=[\"(\",\")\"],k[4096]=[\"<\",\">\"],k[8192]=[\"[\",\"]\"],k}function X(k){return a[k&15360][0]}function $(k){return a[k&15360][1]}var A;(function(k){k[k.Auto=0]=\"Auto\",k[k.CountMask=268435455]=\"CountMask\",k[k._i=268435456]=\"_i\"})(A||(A={}));function y(k,Y,U,j){Y(k)}function V(k,Y,U,j){Y(k,U.select(j))}function L(k,Y,U,j){Y(k,U)}function P(k,Y){return k.length===1?y:typeof Y==\"object\"?V:L}})(ke||(ke={}));var ke;(function(e){function a(b,se,J){if(!b.getDirectories||!b.readDirectory)return;var ie=new e.Map,R=e.createGetCanonicalFileName(J);return{useCaseSensitiveFileNames:J,fileExists:y,readFile:function(l,d){return b.readFile(l,d)},directoryExists:b.directoryExists&&V,getDirectories:P,readDirectory:k,createDirectory:b.createDirectory&&L,writeFile:b.writeFile&&A,addOrDeleteFileOrDirectory:U,addOrDeleteFile:j,clearCache:I,realpath:b.realpath&&Y};function q(l){return e.toPath(l,se,R)}function O(l){return ie.get(e.ensureTrailingDirectorySeparator(l))}function ve(l){return O(e.getDirectoryPath(l))}function ee(l){return e.getBaseFileName(e.normalizePath(l))}function he(l,d){var D;if(!b.realpath||e.ensureTrailingDirectorySeparator(q(b.realpath(l)))===d){var fe={files:e.map(b.readDirectory(l,void 0,void 0,[\"*.*\"]),ee)||[],directories:b.getDirectories(l)||[]};return ie.set(e.ensureTrailingDirectorySeparator(d),fe),fe}if(!((D=b.directoryExists)===null||D===void 0)&&D.call(b,l))return ie.set(d,!1),!1}function F(l,d){d=e.ensureTrailingDirectorySeparator(d);var D=O(d);if(D)return D;try{return he(l,d)}catch{e.Debug.assert(!ie.has(e.ensureTrailingDirectorySeparator(d)));return}}function x(l,d){return R(l)===R(d)}function X(l,d){return e.some(l,function(D){return x(D,d)})}function $(l,d,D){if(X(l,d)){if(!D)return e.filterMutate(l,function(fe){return!x(fe,d)})}else if(D)return l.push(d)}function A(l,d,D){var fe=q(l),g=ve(fe);return g&&H(g,ee(l),!0),b.writeFile(l,d,D)}function y(l){var d=q(l),D=ve(d);return D&&X(D.files,ee(l))||b.fileExists(l)}function V(l){var d=q(l);return ie.has(e.ensureTrailingDirectorySeparator(d))||b.directoryExists(l)}function L(l){var d=q(l),D=ve(d),fe=ee(l);D&&$(D.directories,fe,!0),b.createDirectory(l)}function P(l){var d=q(l),D=F(l,d);return D?D.directories.slice():b.getDirectories(l)}function k(l,d,D,fe,g){var ne=q(l),ue=F(l,ne),We;if(ue!==void 0)return e.matchFiles(l,d,D,fe,J,se,g,Fe,Y);return b.readDirectory(l,d,D,fe,g);function Fe(Be){var ge=q(Be);if(ge===ne)return ue||Z(Be,ge);var Re=F(Be,ge);return Re!==void 0?Re||Z(Be,ge):e.emptyFileSystemEntries}function Z(Be,ge){if(We&&ge===ne)return We;var Re={files:e.map(b.readDirectory(Be,void 0,void 0,[\"*.*\"]),ee)||e.emptyArray,directories:b.getDirectories(Be)||e.emptyArray};return ge===ne&&(We=Re),Re}}function Y(l){return b.realpath?b.realpath(l):l}function U(l,d){var D=O(d);if(D!==void 0){I();return}var fe=ve(d);if(!!fe){if(!b.directoryExists){I();return}var g=ee(l),ne={fileExists:b.fileExists(d),directoryExists:b.directoryExists(d)};return ne.directoryExists||X(fe.directories,g)?I():H(fe,g,ne.fileExists),ne}}function j(l,d,D){if(D!==e.FileWatcherEventKind.Changed){var fe=ve(d);fe&&H(fe,ee(l),D===e.FileWatcherEventKind.Created)}}function H(l,d,D){$(l.files,d,D)}function I(){ie.clear()}}e.createCachedDirectoryStructureHost=a;var C;(function(b){b[b.None=0]=\"None\",b[b.Partial=1]=\"Partial\",b[b.Full=2]=\"Full\"})(C=e.ConfigFileProgramReloadLevel||(e.ConfigFileProgramReloadLevel={}));function w(b,se,J,ie,R){var q,O=e.arrayToMap(((q=se==null?void 0:se.configFile)===null||q===void 0?void 0:q.extendedSourceFiles)||e.emptyArray,R);J.forEach(function(ve,ee){O.has(ee)||(ve.projects.delete(b),ve.close())}),O.forEach(function(ve,ee){var he=J.get(ee);he?he.projects.add(b):J.set(ee,{projects:new e.Set([b]),watcher:ie(ve,ee),close:function(){var F=J.get(ee);!F||F.projects.size!==0||(F.watcher.close(),J.delete(ee))}})})}e.updateSharedExtendedConfigFileWatcher=w;function B(b,se){se.forEach(function(J){J.projects.delete(b)&&J.close()})}e.clearSharedExtendedConfigFileWatcher=B;function E(b,se,J){!b.delete(se)||b.forEach(function(ie,R){var q,O=ie.extendedResult;!((q=O.extendedSourceFiles)===null||q===void 0)&&q.some(function(ve){return J(ve)===se})&&E(b,R,J)})}e.cleanExtendedConfigCache=E;function Q(b,se,J){var ie=new e.Map(b);e.mutateMap(se,ie,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updatePackageJsonWatch=Q;function le(b,se,J){var ie=b.getMissingFilePaths(),R=e.arrayToMap(ie,e.identity,e.returnTrue);e.mutateMap(se,R,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updateMissingFilePathsWatch=le;function N(b,se,J){e.mutateMap(b,se,{createNewValue:ie,onDeleteValue:K,onExistingValue:R});function ie(q,O){return{watcher:J(q,O),flags:O}}function R(q,O,ve){q.flags!==O&&(q.watcher.close(),b.set(ve,ie(ve,O)))}}e.updateWatchingWildcardDirectories=N;function p(b){var se=b.watchedDirPath,J=b.fileOrDirectory,ie=b.fileOrDirectoryPath,R=b.configFileName,q=b.options,O=b.program,ve=b.extraFileExtensions,ee=b.currentDirectory,he=b.useCaseSensitiveFileNames,F=b.writeLog,x=b.toPath,X=e.removeIgnoredPath(ie);if(!X)return F(\"Project: \".concat(R,\" Detected ignored path: \").concat(J)),!0;if(ie=X,ie===se)return!1;if(e.hasExtension(ie)&&!e.isSupportedSourceFileName(J,q,ve))return F(\"Project: \".concat(R,\" Detected file add/remove of non supported extension: \").concat(J)),!0;if(e.isExcludedFile(J,q.configFile.configFileSpecs,e.getNormalizedAbsolutePath(e.getDirectoryPath(R),ee),he,ee))return F(\"Project: \".concat(R,\" Detected excluded file: \").concat(J)),!0;if(!O||e.outFile(q)||q.outDir)return!1;if(e.isDeclarationFileName(ie)){if(q.declarationDir)return!1}else if(!e.fileExtensionIsOneOf(ie,e.supportedJSExtensionsFlat))return!1;var $=e.removeFileExtension(ie),A=e.isArray(O)?void 0:m(O)?O.getProgramOrUndefined():O,y=!A&&!e.isArray(O)?O:void 0;if(V($+\".ts\")||V($+\".tsx\"))return F(\"Project: \".concat(R,\" Detected output file: \").concat(J)),!0;return!1;function V(L){return A?!!A.getSourceFileByPath(L):y?y.getState().fileInfos.has(L):!!e.find(O,function(P){return x(P)===L})}}e.isIgnoredFileFromWildCardWatching=p;function m(b){return!!b.getState}function G(b,se){return b?b.isEmittedFile(se):!1}e.isEmittedFileOfProgram=G;var oe;(function(b){b[b.None=0]=\"None\",b[b.TriggerOnly=1]=\"TriggerOnly\",b[b.Verbose=2]=\"Verbose\"})(oe=e.WatchLogLevel||(e.WatchLogLevel={}));function f(b,se,J,ie){e.setSysLog(se===oe.Verbose?J:e.noop);var R={watchFile:function(y,V,L,P){return b.watchFile(y,V,L,P)},watchDirectory:function(y,V,L,P){return b.watchDirectory(y,V,(L&1)!==0,P)}},q=se!==oe.None?{watchFile:$(\"watchFile\"),watchDirectory:$(\"watchDirectory\")}:void 0,O=se===oe.Verbose?{watchFile:x,watchDirectory:X}:q||R,ve=se===oe.Verbose?F:e.returnNoopFileWatcher;return{watchFile:ee(\"watchFile\"),watchDirectory:ee(\"watchDirectory\")};function ee(y){return function(V,L,P,k,Y,U){var j;return e.matchesExclude(V,y===\"watchFile\"?k==null?void 0:k.excludeFiles:k==null?void 0:k.excludeDirectories,he(),((j=b.getCurrentDirectory)===null||j===void 0?void 0:j.call(b))||\"\")?ve(V,P,k,Y,U):O[y].call(void 0,V,L,P,k,Y,U)}}function he(){return typeof b.useCaseSensitiveFileNames==\"boolean\"?b.useCaseSensitiveFileNames:b.useCaseSensitiveFileNames()}function F(y,V,L,P,k){return J(\"ExcludeWatcher:: Added:: \".concat(A(y,V,L,P,k,ie))),{close:function(){return J(\"ExcludeWatcher:: Close:: \".concat(A(y,V,L,P,k,ie)))}}}function x(y,V,L,P,k,Y){J(\"FileWatcher:: Added:: \".concat(A(y,L,P,k,Y,ie)));var U=q.watchFile(y,V,L,P,k,Y);return{close:function(){J(\"FileWatcher:: Close:: \".concat(A(y,L,P,k,Y,ie))),U.close()}}}function X(y,V,L,P,k,Y){var U=\"DirectoryWatcher:: Added:: \".concat(A(y,L,P,k,Y,ie));J(U);var j=e.timestamp(),H=q.watchDirectory(y,V,L,P,k,Y),I=e.timestamp()-j;return J(\"Elapsed:: \".concat(I,\"ms \").concat(U)),{close:function(){var l=\"DirectoryWatcher:: Close:: \".concat(A(y,L,P,k,Y,ie));J(l);var d=e.timestamp();H.close();var D=e.timestamp()-d;J(\"Elapsed:: \".concat(D,\"ms \").concat(l))}}}function $(y){return function(V,L,P,k,Y,U){return R[y].call(void 0,V,function(){for(var j=[],H=0;H=4,er=(we+1+\"\").length;Ae&&(er=Math.max(T.length,er));for(var ir=\"\",Cr=rr;Cr<=we;Cr++){ir+=Ee.getNewLine(),Ae&&rr+1=e.length(Ei==null?void 0:Ei.imports)+e.length(Ei==null?void 0:Ei.moduleAugmentations))return!1;var ki=e.getResolvedModule(Ei,hr,Ei&&he(Ei,Or)),dt=ki&&er.getSourceFile(ki.resolvedFileName);if(ki&&dt)return!1;var la=lr.get(hr);return la?(e.isTraceEnabled(de,pe)&&e.trace(pe,e.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified,hr,la),!0):!1}}function $a(){return!y(er.getProjectReferences(),er.getResolvedProjectReferences(),function(Kr,_i,Ei){var tt=(_i?_i.commandLine.projectReferences:Ae)[Ei],kt=fo(tt);return Kr?!kt||kt.sourceFile!==Kr.sourceFile||!e.arrayIsEqualTo(Kr.commandLine.fileNames,kt.commandLine.fileNames):kt!==void 0},function(Kr,_i){var Ei=_i?yi(_i.sourceFile.path).commandLine.projectReferences:Ae;return!e.arrayIsEqualTo(Kr,Ei,e.projectReferenceIsEqualTo)})}function Qa(){var Kr;if(!er)return 0;var _i=er.getCompilerOptions();if(e.changesAffectModuleResolution(_i,de))return 0;var Ei=er.getRootFileNames();if(!e.arrayIsEqualTo(Ei,we)||!$a())return 0;Ae&&(Ar=Ae.map(fo));var tt=[],kt=[];if(vi=2,er.getMissingFilePaths().some(function(Ls){return pe.fileExists(Ls)}))return 0;var bt=er.getSourceFiles(),ia;(function(Ls){Ls[Ls.Exists=0]=\"Exists\",Ls[Ls.Modified=1]=\"Modified\"})(ia||(ia={}));for(var Xt=new e.Map,Za=0,bn=bt;Za=0;){if(_i.markUsed(bt))return bt;var ia=Ei.text.slice(kt[bt],kt[bt+1]).trim();if(ia!==\"\"&&!/^(\\s*)\\/\\/(.*)$/.test(ia))return-1;bt--}return-1}function Qe(Kr){return no(function(){var _i=[];return Ei(Kr,Kr),e.forEachChildRecursively(Kr,Ei,tt),_i;function Ei(Xt,Za){switch(Za.kind){case 164:case 167:case 169:if(Za.questionToken===Xt)return _i.push(ia(Xt,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,\"?\")),\"skip\";case 168:case 171:case 172:case 173:case 213:case 256:case 214:case 254:if(Za.type===Xt)return _i.push(ia(Xt,e.Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files)),\"skip\"}switch(Xt.kind){case 267:if(Xt.isTypeOnly)return _i.push(ia(Za,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,\"import type\")),\"skip\";break;case 272:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,\"export type\")),\"skip\";break;case 270:case 275:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,e.isImportSpecifier(Xt)?\"import...type\":\"export...type\")),\"skip\";break;case 265:return _i.push(ia(Xt,e.Diagnostics.import_can_only_be_used_in_TypeScript_files)),\"skip\";case 271:if(Xt.isExportEquals)return _i.push(ia(Xt,e.Diagnostics.export_can_only_be_used_in_TypeScript_files)),\"skip\";break;case 291:var bn=Xt;if(bn.token===117)return _i.push(ia(Xt,e.Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files)),\"skip\";break;case 258:var _a=e.tokenToString(118);return e.Debug.assertIsDefined(_a),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,_a)),\"skip\";case 261:var qa=Xt.flags&16?e.tokenToString(142):e.tokenToString(141);return e.Debug.assertIsDefined(qa),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,qa)),\"skip\";case 259:return _i.push(ia(Xt,e.Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files)),\"skip\";case 260:var rn=e.Debug.checkDefined(e.tokenToString(92));return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,rn)),\"skip\";case 230:return _i.push(ia(Xt,e.Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files)),\"skip\";case 229:return _i.push(ia(Xt.type,e.Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)),\"skip\";case 211:e.Debug.fail()}}function tt(Xt,Za){switch(Za.decorators===Xt&&!de.experimentalDecorators&&_i.push(ia(Za,e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning)),Za.kind){case 257:case 226:case 169:case 171:case 172:case 173:case 213:case 256:case 214:if(Xt===Za.typeParameters)return _i.push(bt(Xt,e.Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)),\"skip\";case 237:if(Xt===Za.modifiers)return kt(Za.modifiers,Za.kind===237),\"skip\";break;case 167:if(Xt===Za.modifiers){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];qa.kind!==124&&_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)))}return\"skip\"}break;case 164:if(Xt===Za.modifiers)return _i.push(bt(Xt,e.Diagnostics.Parameter_modifiers_can_only_be_used_in_TypeScript_files)),\"skip\";break;case 208:case 209:case 228:case 279:case 280:case 210:if(Xt===Za.typeArguments)return _i.push(bt(Xt,e.Diagnostics.Type_arguments_can_only_be_used_in_TypeScript_files)),\"skip\";break}}function kt(Xt,Za){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];switch(qa.kind){case 85:if(Za)continue;case 123:case 121:case 122:case 145:case 135:case 126:case 159:case 101:case 144:_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)));break;case 124:case 93:case 88:}}}function bt(Xt,Za,bn,_a,qa){var rn=Xt.pos;return e.createFileDiagnostic(Kr,rn,Xt.end-rn,Za,bn,_a,qa)}function ia(Xt,Za,bn,_a,qa){return e.createDiagnosticForNodeInSourceFile(Kr,Xt,Za,bn,_a,qa)}})}function Gr(Kr,_i){return Ce(Kr,_i,ur,S)}function S(Kr,_i){return no(function(){var Ei=xn().getEmitResolver(Kr,_i);return e.getDeclarationDiagnostics(ai(e.noop),Ei,Kr)||e.emptyArray})}function Ce(Kr,_i,Ei,tt){var kt,bt=Kr?(kt=Ei.perFile)===null||kt===void 0?void 0:kt.get(Kr.path):Ei.allDiagnostics;if(bt)return bt;var ia=tt(Kr,_i);return Kr?(Ei.perFile||(Ei.perFile=new e.Map)).set(Kr.path,ia):Ei.allDiagnostics=ia,ia}function qe(Kr,_i){return Kr.isDeclarationFile?[]:Gr(Kr,_i)}function br(){return e.sortAndDeduplicateDiagnostics(e.concatenate(wi.getGlobalDiagnostics(),Zr()))}function Zr(){if(!de.configFile)return e.emptyArray;var Kr=wi.getDiagnostics(de.configFile.fileName);return Ji(function(_i){Kr=e.concatenate(Kr,wi.getDiagnostics(_i.sourceFile.fileName))}),Kr}function Si(){return we.length?e.sortAndDeduplicateDiagnostics(xn().getGlobalDiagnostics().slice()):e.emptyArray}function Pi(){return ye||e.emptyArray}function Qi(Kr,_i,Ei,tt){Go(e.normalizePath(Kr),_i,Ei,void 0,tt)}function Ct(Kr,_i){return Kr.fileName===_i.fileName}function sa(Kr,_i){return Kr.kind===79?_i.kind===79&&Kr.escapedText===_i.escapedText:_i.kind===10&&Kr.text===_i.text}function en(Kr,_i){var Ei=e.factory.createStringLiteral(Kr),tt=e.factory.createImportDeclaration(void 0,void 0,void 0,Ei,void 0);return e.addEmitFlags(tt,67108864),e.setParent(Ei,tt),e.setParent(tt,_i),Ei.flags&=-9,tt.flags&=-9,Ei}function Wa(Kr){if(Kr.imports)return;var _i=e.isSourceFileJS(Kr),Ei=e.isExternalModule(Kr),tt,kt,bt;if((de.isolatedModules||Ei)&&!Kr.isDeclarationFile){de.importHelpers&&(tt=[en(e.externalHelpersModuleNameText,Kr)]);var ia=e.getJSXRuntimeImport(e.getJSXImplicitImportBase(de,Kr),de);ia&&(tt||(tt=[])).push(en(ia,Kr))}for(var Xt=0,Za=Kr.statements;Xt=1&&e.isStringLiteralLike(ho.arguments[0])?(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.arguments[0])):e.isLiteralImportTypeNode(ho)&&(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.argument.literal))}}function rn(jn,Mo){for(var ho=jn,gs=function(hr){if(hr.pos<=Mo&&(Mo0),Object.defineProperties(ia,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(Xt){this.redirectInfo.redirectTarget.id=Xt}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(Xt){this.redirectInfo.redirectTarget.symbol=Xt}}}),ia}function Kc(Kr,_i,Ei,tt,kt){e.tracing===null||e.tracing===void 0||e.tracing.push(\"program\",\"findSourceFile\",{fileName:Kr,isDefaultLib:_i||void 0,fileIncludeKind:e.FileIncludeKind[tt.kind]});var bt=pc(Kr,_i,Ei,tt,kt);return e.tracing===null||e.tracing===void 0||e.tracing.pop(),bt}function Xs(Kr,_i,Ei,tt){var kt=U(Vi(Kr),_i==null?void 0:_i.getPackageJsonInfoCache(),Ei,tt);return{languageVersion:e.getEmitScriptTarget(tt),impliedNodeFormat:kt,setExternalModuleIndicator:e.getSetExternalModuleIndicator(tt)}}function pc(Kr,_i,Ei,tt,kt){var bt=Vi(Kr);if(Pe){var ia=ce(bt);if(!ia&&pe.realpath&&de.preserveSymlinks&&e.isDeclarationFileName(Kr)&&e.stringContains(Kr,e.nodeModulesPathPart)){var Xt=Vi(pe.realpath(Kr));Xt!==bt&&(ia=ce(Xt))}if(ia){var Za=e.isString(ia)?Kc(ia,_i,Ei,tt,kt):void 0;return Za&&tc(Za,bt,void 0),Za}}var bn=Kr;if(xe.has(bt)){var _a=xe.get(bt);if(hs(_a||void 0,tt),_a&&de.forceConsistentCasingInFileNames){var qa=_a.fileName,rn=Vi(qa)!==Vi(Kr);rn&&(Kr=ps(Kr)||Kr);var jn=e.getNormalizedAbsolutePathWithoutRoot(qa,Xi),Mo=e.getNormalizedAbsolutePathWithoutRoot(Kr,Xi);jn!==Mo&&Pc(Kr,_a,tt)}return _a&&mi.get(_a.path)&&Ur===0?(mi.set(_a.path,!1),de.noResolve||(qi(_a,_i),je(_a)),de.noLib||ga(_a),ii.set(_a.path,!1),Xn(_a)):_a&&ii.get(_a.path)&&Ur0),hr.fileName=Kr,hr.path=bt,hr.resolvedPath=Vi(Kr),hr.originalFileName=bn,hs(hr,tt),pe.useCaseSensitiveFileNames()){var la=e.toFileNameLowerCase(bt),wa=mr.get(la);wa?Pc(Kr,wa,tt):mr.set(la,hr)}qr=qr||hr.hasNoDefaultLib&&!Ei,de.noResolve||(qi(hr,_i),je(hr)),de.noLib||ga(hr),Xn(hr),_i?ir.push(hr):Cr.push(hr)}return hr}function hs(Kr,_i){Kr&&be.add(Kr.path,_i)}function tc(Kr,_i,Ei){Ei?(xe.set(Ei,Kr),xe.set(_i,Kr||!1)):xe.set(_i,Kr)}function ps(Kr){var _i=Qs(Kr);return _i&&js(_i,Kr)}function Qs(Kr){if(!(!Ar||!Ar.length||e.isDeclarationFileName(Kr)||e.fileExtensionIs(Kr,\".json\")))return ds(Kr)}function js(Kr,_i){var Ei=e.outFile(Kr.commandLine.options);return Ei?e.changeExtension(Ei,\".d.ts\"):e.getOutputDeclarationFileName(_i,Kr.commandLine,!pe.useCaseSensitiveFileNames())}function ds(Kr){nr===void 0&&(nr=new e.Map,Ji(function(Ei){Vi(de.configFilePath)!==Ei.sourceFile.path&&Ei.commandLine.fileNames.forEach(function(tt){return nr.set(Vi(tt),Ei.sourceFile.path)})}));var _i=nr.get(Vi(Kr));return _i&&yi(_i)}function Ji(Kr){return e.forEachResolvedProjectReference(Ar,Kr)}function ce(Kr){if(!!e.isDeclarationFileName(Kr))return Mr===void 0&&(Mr=new e.Map,Ji(function(_i){var Ei=e.outFile(_i.commandLine.options);if(Ei){var tt=e.changeExtension(Ei,\".d.ts\");Mr.set(Vi(tt),!0)}else{var kt=e.memoize(function(){return e.getCommonSourceDirectoryOfConfig(_i.commandLine,!pe.useCaseSensitiveFileNames())});e.forEach(_i.commandLine.fileNames,function(bt){if(!e.isDeclarationFileName(bt)&&!e.fileExtensionIs(bt,\".json\")){var ia=e.getOutputDeclarationFileName(bt,_i.commandLine,!pe.useCaseSensitiveFileNames(),kt);Mr.set(Vi(ia),bt)}})}})),Mr.get(Kr)}function Rr(Kr){return Pe&&!!ds(Kr)}function yi(Kr){if(!!Oe)return Oe.get(Kr)||void 0}function qi(Kr,_i){e.forEach(Kr.referencedFiles,function(Ei,tt){Go(C(Ei.fileName,Kr.fileName),_i,!1,void 0,{kind:e.FileIncludeKind.ReferenceFile,file:Kr.path,index:tt})})}function je(Kr){var _i=Kr.typeReferenceDirectives;if(!!_i)for(var Ei=Bt(_i,Kr),tt=0;tt<_i.length;tt++){var kt=Kr.typeReferenceDirectives[tt],bt=Ei[tt],ia=e.toFileNameLowerCase(kt.fileName);e.setResolvedTypeReferenceDirective(Kr,ia,bt);var Xt=kt.resolutionMode||Kr.impliedNodeFormat;Xt&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.Node16&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.NodeNext&&wi.add(e.createDiagnosticForRange(Kr,kt,e.Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext)),Hr(ia,Xt,bt,{kind:e.FileIncludeKind.TypeReferenceDirective,file:Kr.path,index:tt})}}function Hr(Kr,_i,Ei,tt){e.tracing===null||e.tracing===void 0||e.tracing.push(\"program\",\"processTypeReferenceDirective\",{directive:Kr,hasResolved:!!ba,refKind:tt.kind,refPath:V(tt)?tt.file:void 0}),pt(Kr,_i,Ei,tt),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function pt(Kr,_i,Ei,tt){var kt=yr.get(Kr,_i);if(!(kt&&kt.primary)){var bt=!0;if(Ei){if(Ei.isExternalLibraryImport&&Ur++,Ei.primary)Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);else if(kt){if(Ei.resolvedFileName!==kt.resolvedFileName){var ia=pe.readFile(Ei.resolvedFileName),Xt=Rn(kt.resolvedFileName);ia!==Xt.text&&ko(Xt,tt,e.Diagnostics.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict,[Kr,Ei.resolvedFileName,kt.resolvedFileName])}bt=!1}else Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);Ei.isExternalLibraryImport&&Ur--}else ko(void 0,tt,e.Diagnostics.Cannot_find_type_definition_file_for_0,[Kr]);bt&&yr.set(Kr,_i,Ei)}}function Pt(Kr){for(var _i=Kr.split(\".\"),Ei=_i[1],tt=2;_i[tt]&&_i[tt]!==\"d\";)Ei+=(tt===2?\"/\":\"-\")+_i[tt],tt++;var kt=e.combinePaths(Xi,\"__lib_node_modules_lookup_\".concat(Kr,\"__.ts\")),bt=e.resolveModuleName(\"@typescript/lib-\"+Ei,kt,{moduleResolution:e.ModuleResolutionKind.NodeJs},pe,_r);return bt!=null&&bt.resolvedModule?bt.resolvedModule.resolvedFileName:e.combinePaths(Di,Kr)}function ga(Kr){e.forEach(Kr.libReferenceDirectives,function(_i,Ei){var tt=e.toFileNameLowerCase(_i.fileName),kt=e.libMap.get(tt);if(kt)Qi(Pt(kt),!0,!0,{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei});else{var bt=e.removeSuffix(e.removePrefix(tt,\"lib.\"),\".d.ts\"),ia=e.getSpellingSuggestion(bt,e.libs,e.identity),Xt=ia?e.Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1:e.Diagnostics.Cannot_find_lib_definition_for_0;(Ir||(Ir=[])).push({kind:0,reason:{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei},diagnostic:Xt,args:[tt,ia]})}})}function ua(Kr){return pe.getCanonicalFileName(Kr)}function Xn(Kr){var _i;if(Wa(Kr),Kr.imports.length||Kr.moduleAugmentations.length){var Ei=We(Kr),tt=ba(Ei,Kr);e.Debug.assert(tt.length===Ei.length);for(var kt=(Pe?(_i=wt(Kr))===null||_i===void 0?void 0:_i.commandLine.options:void 0)||de,bt=0;btwr,rn=_a&&!ue(kt,ia)&&!kt.noResolve&&bt1})&&Jo(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,\"outDir\")}if(de.useDefineForClassFields&&_a===0&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,\"useDefineForClassFields\"),de.checkJs&&!e.getAllowJSCompilerOption(de)&&wi.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"checkJs\",\"allowJs\")),de.emitDeclarationOnly&&(e.getEmitDeclarations(de)||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"emitDeclarationOnly\",\"declaration\",\"composite\"),de.noEmit&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"emitDeclarationOnly\",\"noEmit\")),de.emitDecoratorMetadata&&!de.experimentalDecorators&&Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"emitDecoratorMetadata\",\"experimentalDecorators\"),de.jsxFactory?(de.reactNamespace&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"reactNamespace\",\"jsxFactory\"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"jsxFactory\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),e.parseIsolatedEntityName(de.jsxFactory,_a)||eu(\"jsxFactory\",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFactory)):de.reactNamespace&&!e.isIdentifierText(de.reactNamespace,_a)&&eu(\"reactNamespace\",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,de.reactNamespace),de.jsxFragmentFactory&&(de.jsxFactory||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"jsxFragmentFactory\",\"jsxFactory\"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"jsxFragmentFactory\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),e.parseIsolatedEntityName(de.jsxFragmentFactory,_a)||eu(\"jsxFragmentFactory\",e.Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFragmentFactory)),de.reactNamespace&&(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"reactNamespace\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),de.jsxImportSource&&de.jsx===2&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"jsxImportSource\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),de.preserveValueImports&&e.getEmitModuleKind(de)qa?e.createDiagnosticForNodeInSourceFile(_a,rn.elements[qa],Kr.kind===e.FileIncludeKind.OutputFromProjectReference?e.Diagnostics.File_is_output_from_referenced_project_specified_here:e.Diagnostics.File_is_source_from_referenced_project_specified_here):void 0;case e.FileIncludeKind.AutomaticTypeDirectiveFile:if(!de.types)return;tt=al(\"types\",Kr.typeReference),kt=e.Diagnostics.File_is_entry_point_of_type_library_specified_here;break;case e.FileIncludeKind.LibFile:if(Kr.index!==void 0){tt=al(\"lib\",de.lib[Kr.index]),kt=e.Diagnostics.File_is_library_specified_here;break}var jn=e.forEachEntry(e.targetOptionDeclaration.type,function(Mo,ho){return Mo===e.getEmitScriptTarget(de)?ho:void 0});tt=jn?Rf(\"target\",jn):void 0,kt=e.Diagnostics.File_is_default_library_for_target_specified_here;break;default:e.Debug.assertNever(Kr)}return tt&&e.createDiagnosticForNodeInSourceFile(de.configFile,tt,kt)}}function Bs(){var Kr=de.suppressOutputPathCheck?void 0:e.getTsBuildInfoEmitOutputFilePath(de);y(Ae,Ar,function(_i,Ei,tt){var kt=(Ei?Ei.commandLine.projectReferences:Ae)[tt],bt=Ei&&Ei.sourceFile;if(!_i){Ws(bt,tt,e.Diagnostics.File_0_not_found,kt.path);return}var ia=_i.commandLine.options;if(!ia.composite||ia.noEmit){var Xt=Ei?Ei.commandLine.fileNames:we;Xt.length&&(ia.composite||Ws(bt,tt,e.Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true,kt.path),ia.noEmit&&Ws(bt,tt,e.Diagnostics.Referenced_project_0_may_not_disable_emit,kt.path))}if(kt.prepend){var Za=e.outFile(ia);Za?pe.fileExists(Za)||Ws(bt,tt,e.Diagnostics.Output_file_0_from_project_1_does_not_exist,Za,kt.path):Ws(bt,tt,e.Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set,kt.path)}!Ei&&Kr&&Kr===e.getTsBuildInfoEmitOutputFilePath(ia)&&(Ws(bt,tt,e.Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,Kr,kt.path),Wt.set(Vi(Kr),!0))})}function xc(Kr,_i,Ei,tt,kt,bt){for(var ia=!0,Xt=Zc(),Za=0,bn=Xt;Za_i&&(wi.add(e.createDiagnosticForNodeInSourceFile(de.configFile,Mo.elements[_i],Ei,tt,kt,bt)),ia=!1)}}ia&&wi.add(e.createCompilerDiagnostic(Ei,tt,kt,bt))}function su(Kr,_i,Ei,tt){for(var kt=!0,bt=Zc(),ia=0,Xt=bt;ia_i?wi.add(e.createDiagnosticForNodeInSourceFile(Kr||de.configFile,bt.elements[_i],Ei,tt,kt)):wi.add(e.createCompilerDiagnostic(Ei,tt,kt))}function pu(Kr,_i,Ei,tt,kt,bt,ia){var Xt=Uu(),Za=!Xt||!Ql(Xt,Kr,_i,Ei,tt,kt,bt,ia);Za&&wi.add(e.createCompilerDiagnostic(tt,kt,bt,ia))}function Uu(){if(Zt===void 0){Zt=!1;var Kr=e.getTsConfigObjectLiteralExpression(de.configFile);if(Kr)for(var _i=0,Ei=e.getPropertyAssignment(Kr,\"compilerOptions\");_i0)for(var P=A.getTypeChecker(),k=0,Y=y.imports;k0)for(var I=0,l=y.referencedFiles;I1&&Be(Z)}return L;function Be(Re){if(!!Re.declarations)for(var ze=0,Ee=Re.declarations;ze0;){var I=H.pop();if(!j.has(I)){var l=y.getSourceFileByPath(I);j.set(I,l),l&&J(A,y,l,L,P,k,Y)&&H.push.apply(H,ve(A,l.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(j.values(),function(d){return d}))}})(C=e.BuilderState||(e.BuilderState={}))})(ke||(ke={}));var ke;(function(e){var a;(function(j){j[j.DtsOnly=0]=\"DtsOnly\",j[j.Full=1]=\"Full\"})(a=e.BuilderFileEmit||(e.BuilderFileEmit={}));function C(j,H){return j===H||j!==void 0&&H!==void 0&&j.size===H.size&&!e.forEachKey(j,function(I){return!H.has(I)})}function w(j,H,I,l){var d=e.BuilderState.create(j,H,I,l);d.program=j;var D=j.getCompilerOptions();d.compilerOptions=D,e.outFile(D)||(d.semanticDiagnosticsPerFile=new e.Map),d.changedFilesSet=new e.Set;var fe=e.BuilderState.canReuseOldState(d.referencedMap,I),g=fe?I.compilerOptions:void 0,ne=fe&&I.semanticDiagnosticsPerFile&&!!d.semanticDiagnosticsPerFile&&!e.compilerOptionsAffectSemanticDiagnostics(D,g);if(fe){if(!I.currentChangedFilePath){var ue=I.currentAffectedFilesSignatures;e.Debug.assert(!I.affectedFiles&&(!ue||!ue.size),\"Cannot reuse if only few affected files of currentChangedFile were iterated\")}var We=I.changedFilesSet;ne&&e.Debug.assert(!We||!e.forEachKey(We,function(Re){return I.semanticDiagnosticsPerFile.has(Re)}),\"Semantic diagnostics shouldnt be available for changed files\"),We==null||We.forEach(function(Re){return d.changedFilesSet.add(Re)}),!e.outFile(D)&&I.affectedFilesPendingEmit&&(d.affectedFilesPendingEmit=I.affectedFilesPendingEmit.slice(),d.affectedFilesPendingEmitKind=I.affectedFilesPendingEmitKind&&new e.Map(I.affectedFilesPendingEmitKind),d.affectedFilesPendingEmitIndex=I.affectedFilesPendingEmitIndex,d.seenAffectedFiles=new e.Set)}var Fe=d.referencedMap,Z=fe?I.referencedMap:void 0,Be=ne&&!D.skipLibCheck==!g.skipLibCheck,ge=Be&&!D.skipDefaultLibCheck==!g.skipDefaultLibCheck;return d.fileInfos.forEach(function(Re,ze){var Ee,He;if(!fe||!(Ee=I.fileInfos.get(ze))||Ee.version!==Re.version||!C(He=Fe&&Fe.getValues(ze),Z&&Z.getValues(ze))||He&&e.forEachKey(He,function(_e){return!d.fileInfos.has(_e)&&I.fileInfos.has(_e)}))d.changedFilesSet.add(ze);else if(ne){var rr=j.getSourceFileByPath(ze);if(rr.isDeclarationFile&&!Be||rr.hasNoDefaultLib&&!ge)return;var Ie=I.semanticDiagnosticsPerFile.get(ze);Ie&&(d.semanticDiagnosticsPerFile.set(ze,I.hasReusableDiagnostic?B(Ie,j,H):Ie),d.semanticDiagnosticsFromOldState||(d.semanticDiagnosticsFromOldState=new e.Set),d.semanticDiagnosticsFromOldState.add(ze))}}),fe&&e.forEachEntry(I.fileInfos,function(Re,ze){return Re.affectsGlobalScope&&!d.fileInfos.has(ze)})?e.BuilderState.getAllFilesExcludingDefaultLibraryFile(d,j,void 0).forEach(function(Re){return d.changedFilesSet.add(Re.resolvedPath)}):g&&!e.outFile(D)&&e.compilerOptionsAffectEmit(D,g)&&(j.getSourceFiles().forEach(function(Re){return P(d,Re.resolvedPath,1)}),e.Debug.assert(!d.seenAffectedFiles||!d.seenAffectedFiles.size),d.seenAffectedFiles=d.seenAffectedFiles||new e.Set),fe&&e.forEachEntry(I.fileInfos,function(Re,ze){d.fileInfos.has(ze)&&d.fileInfos.get(ze).impliedFormat!==Re.impliedFormat&&d.changedFilesSet.add(ze)}),d.buildInfoEmitPending=!!d.changedFilesSet.size,d}function B(j,H,I){if(!j.length)return e.emptyArray;var l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(H.getCompilerOptions()),H.getCurrentDirectory()));return j.map(function(D){var fe=E(D,H,d);fe.reportsUnnecessary=D.reportsUnnecessary,fe.reportsDeprecated=D.reportDeprecated,fe.source=D.source,fe.skippedOn=D.skippedOn;var g=D.relatedInformation;return fe.relatedInformation=g?g.length?g.map(function(ne){return E(ne,H,d)}):[]:void 0,fe});function d(D){return e.toPath(D,l,I)}}function E(j,H,I){var l=j.file;return Ke(Ke({},j),{file:l?H.getSourceFileByPath(I(l)):void 0})}function Q(j){e.BuilderState.releaseCache(j),j.program=void 0}function le(j){var H,I=e.BuilderState.clone(j);return I.semanticDiagnosticsPerFile=j.semanticDiagnosticsPerFile&&new e.Map(j.semanticDiagnosticsPerFile),I.changedFilesSet=new e.Set(j.changedFilesSet),I.affectedFiles=j.affectedFiles,I.affectedFilesIndex=j.affectedFilesIndex,I.currentChangedFilePath=j.currentChangedFilePath,I.currentAffectedFilesSignatures=j.currentAffectedFilesSignatures&&new e.Map(j.currentAffectedFilesSignatures),I.currentAffectedFilesExportedModulesMap=(H=j.currentAffectedFilesExportedModulesMap)===null||H===void 0?void 0:H.clone(),I.seenAffectedFiles=j.seenAffectedFiles&&new e.Set(j.seenAffectedFiles),I.cleanedDiagnosticsOfLibFiles=j.cleanedDiagnosticsOfLibFiles,I.semanticDiagnosticsFromOldState=j.semanticDiagnosticsFromOldState&&new e.Set(j.semanticDiagnosticsFromOldState),I.program=j.program,I.compilerOptions=j.compilerOptions,I.affectedFilesPendingEmit=j.affectedFilesPendingEmit&&j.affectedFilesPendingEmit.slice(),I.affectedFilesPendingEmitKind=j.affectedFilesPendingEmitKind&&new e.Map(j.affectedFilesPendingEmitKind),I.affectedFilesPendingEmitIndex=j.affectedFilesPendingEmitIndex,I.seenEmittedFiles=j.seenEmittedFiles&&new e.Map(j.seenEmittedFiles),I.programEmitComplete=j.programEmitComplete,I}function N(j,H){e.Debug.assert(!H||!j.affectedFiles||j.affectedFiles[j.affectedFilesIndex-1]!==H||!j.semanticDiagnosticsPerFile.has(H.resolvedPath))}function p(j,H,I,l){for(var d;;){var D=j.affectedFiles;if(D){for(var fe=j.seenAffectedFiles,g=j.affectedFilesIndex;g0;){var g=fe.pop();if(!D.has(g)){if(D.set(g,!0),J(j,g,I,l,d))return;if(T(j,g,I,l,d),b(j,g)){var ne=e.Debug.checkDefined(j.program).getSourceFileByPath(g);fe.push.apply(fe,e.BuilderState.getReferencedByPaths(j,ne.resolvedPath))}}}}e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap);var ue=new e.Set;se(j,H.resolvedPath,function(We){if(J(j,We,I,l,d))return!0;var Fe=j.referencedMap.getKeys(We);return Fe&&e.forEachKey(Fe,function(Z){return R(j,Z,ue,I,l,d)})})}}function R(j,H,I,l,d,D){var fe;if(!!e.tryAddToSet(I,H)){if(J(j,H,l,d,D))return!0;T(j,H,l,d,D),e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap),se(j,H,function(g){return R(j,g,I,l,d,D)}),(fe=j.referencedMap.getKeys(H))===null||fe===void 0||fe.forEach(function(g){return!I.has(g)&&T(j,g,l,d,D)})}}function q(j,H,I,l,d){d?j.buildInfoEmitPending=!1:H===j.program?(j.changedFilesSet.clear(),j.programEmitComplete=!0):(j.seenAffectedFiles.add(H.resolvedPath),I!==void 0&&(j.seenEmittedFiles||(j.seenEmittedFiles=new e.Map)).set(H.resolvedPath,I),l?(j.affectedFilesPendingEmitIndex++,j.buildInfoEmitPending=!0):j.affectedFilesIndex++)}function O(j,H,I){return q(j,I),{result:H,affected:I}}function ve(j,H,I,l,d,D){return q(j,I,l,d,D),{result:H,affected:I}}function ee(j,H,I){return e.concatenate(he(j,H,I),e.Debug.checkDefined(j.program).getProgramDiagnostics(H))}function he(j,H,I){var l=H.resolvedPath;if(j.semanticDiagnosticsPerFile){var d=j.semanticDiagnosticsPerFile.get(l);if(d)return e.filterSemanticDiagnostics(d,j.compilerOptions)}var D=e.Debug.checkDefined(j.program).getBindAndCheckDiagnostics(H,I);return j.semanticDiagnosticsPerFile&&j.semanticDiagnosticsPerFile.set(l,D),e.filterSemanticDiagnostics(D,j.compilerOptions)}function F(j,H){if(e.outFile(j.compilerOptions))return;var I=e.Debug.checkDefined(j.program).getCurrentDirectory(),l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(j.compilerOptions),I)),d=[],D=new e.Map,fe,g,ne=e.arrayFrom(j.fileInfos.entries(),function(Ae){var er=Ae[0],ir=Ae[1],Cr=de(er);e.Debug.assert(d[Cr-1]===we(er));var Ye=j.currentAffectedFilesSignatures&&j.currentAffectedFilesSignatures.get(er),Br=Ye!=null?Ye:ir.signature;return ir.version===Br?ir.affectsGlobalScope||ir.impliedFormat?{version:ir.version,signature:void 0,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:ir.version:Br!==void 0?Ye===void 0?ir:{version:ir.version,signature:Ye,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:{version:ir.version,signature:!1,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}}),ue;j.referencedMap&&(ue=e.arrayFrom(j.referencedMap.keys()).sort(e.compareStringsCaseSensitive).map(function(Ae){return[de(Ae),ye(j.referencedMap.getValues(Ae))]}));var We;j.exportedModulesMap&&(We=e.mapDefined(e.arrayFrom(j.exportedModulesMap.keys()).sort(e.compareStringsCaseSensitive),function(Ae){var er;if(j.currentAffectedFilesExportedModulesMap){if(!((er=j.currentAffectedFilesExportedModulesMap.deletedKeys())===null||er===void 0)&&er.has(Ae))return;var ir=j.currentAffectedFilesExportedModulesMap.getValues(Ae);if(ir)return[de(Ae),ye(ir)]}return[de(Ae),ye(j.exportedModulesMap.getValues(Ae))]}));var Fe;if(j.semanticDiagnosticsPerFile)for(var Z=0,Be=e.arrayFrom(j.semanticDiagnosticsPerFile.keys()).sort(e.compareStringsCaseSensitive);Z1||E.charCodeAt(0)!==47;if(p&&E.search(/[a-zA-Z]:/)!==0&&N.search(/[a-zA-z]\\$\\//)===0){if(le=E.indexOf(e.directorySeparator,le+1),le===-1)return!1;N=E.substring(Q+N.length,le+1)}if(p&&N.search(/users\\//i)!==0)return!0;for(var m=le+1,G=2;G>0;G--)if(m=E.indexOf(e.directorySeparator,m)+1,m===0)return!1;return!0}e.canWatchDirectory=C;function w(E,Q,le){var N,p,m,G=e.createMultiMap(),oe=[],f=e.createMultiMap(),T=!1,K,b,se,J=e.memoize(function(){return E.getCurrentDirectory()}),ie=E.getCachedDirectoryStructureHost(),R=new e.Map,q=e.createCacheWithRedirects(),O=e.createCacheWithRedirects(),ve=e.createModuleResolutionCache(J(),E.getCanonicalFileName,void 0,q,O),ee=new e.Map,he=e.createCacheWithRedirects(),F=e.createTypeReferenceDirectiveResolutionCache(J(),E.getCanonicalFileName,void 0,ve.getPackageJsonInfoCache(),he),x=[\".ts\",\".tsx\",\".js\",\".jsx\",\".json\"],X=new e.Map,$=new e.Map,A=Q&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(Q,J())),y=A&&E.toPath(A),V=y!==void 0?y.split(e.directorySeparator).length:0,L=new e.Map;return{getModuleResolutionCache:function(){return ve},startRecordingFilesWithChangedResolutions:j,finishRecordingFilesWithChangedResolutions:H,startCachingPerDirectoryResolution:d,finishCachingPerDirectoryResolution:D,resolveModuleNames:We,getResolvedModuleWithFailedLookupLocationsFromCache:Fe,resolveTypeReferenceDirectives:ue,removeResolutionsFromProjectReferenceRedirects:ye,removeResolutionsOfFile:Ae,hasChangedAutomaticTypeDirectiveNames:function(){return T},invalidateResolutionOfFile:ir,invalidateResolutionsOfFailedLookupLocations:Br,setFilesWithInvalidatedNonRelativeUnresolvedImports:Cr,createHasInvalidatedResolution:l,isFileWithInvalidatedNonRelativeUnresolvedImports:I,updateTypeRootsWatch:be,closeTypeRootsWatch:Ne,clear:U};function P(ur){return ur.resolvedModule}function k(ur){return ur.resolvedTypeReferenceDirective}function Y(ur,yr){return ur===void 0||yr.length<=ur.length?!1:e.startsWith(yr,ur)&&yr[ur.length]===e.directorySeparator}function U(){e.clearMap($,e.closeFileWatcherOf),X.clear(),G.clear(),Ne(),R.clear(),ee.clear(),f.clear(),oe.length=0,K=void 0,b=void 0,se=void 0,d(),T=!1}function j(){N=[]}function H(){var ur=N;return N=void 0,ur}function I(ur){if(!m)return!1;var yr=m.get(ur);return!!yr&&!!yr.length}function l(ur){if(Br(),ur)return p=void 0,e.returnTrue;var yr=p;return p=void 0,function(Ir){return!!yr&&yr.has(Ir)||I(Ir)}}function d(){ve.clear(),F.clear(),G.forEach(He),G.clear()}function D(){m=void 0,d(),$.forEach(function(ur,yr){ur.refCount===0&&($.delete(yr),ur.watcher.close())}),T=!1}function fe(ur,yr,Ir,wr,Ur,ii,mi){var pe,or=e.resolveModuleName(ur,yr,Ir,wr,ve,Ur,mi);if(!E.getGlobalCache)return or;var qr=E.getGlobalCache();if(qr!==void 0&&!e.isExternalModuleNameRelative(ur)&&!(or.resolvedModule&&e.extensionIsTS(or.resolvedModule.extension))){var si=e.loadModuleFromGlobalCache(e.Debug.checkDefined(E.globalCacheResolutionModuleName)(ur),E.projectName,Ir,wr,qr,ve),Di=si.resolvedModule,wi=si.failedLookupLocations;if(Di)return or.resolvedModule=Di,(pe=or.failedLookupLocations).push.apply(pe,wi),or}return or}function g(ur,yr,Ir,wr,Ur,ii,mi){return e.resolveTypeReferenceDirective(ur,yr,Ir,wr,Ur,F,mi)}function ne(ur){var yr,Ir,wr,Ur=ur.names,ii=ur.containingFile,mi=ur.redirectedReference,pe=ur.cache,or=ur.perDirectoryCacheWithRedirects,qr=ur.loader,si=ur.getResolutionWithResolvedFileName,Di=ur.shouldRetryResolution,wi=ur.reusedNames,Xi=ur.logChanges,et=ur.containingSourceFile,Gi=ur.containingSourceFileMode,Wt=E.toPath(ii),Zt=pe.get(Wt)||pe.set(Wt,e.createModeAwareCache()).get(Wt),_r=e.getDirectoryPath(Wt),pi=or.getOrCreateMapOfCacheRedirects(mi),ae=pi.get(_r);ae||(ae=e.createModeAwareCache(),pi.set(_r,ae));for(var Xe=[],Jr=E.getCompilationSettings(),ti=Xi&&I(Wt),Ze=E.getCurrentProgram(),Sr=Ze&&Ze.getResolvedProjectReferenceToRedirect(ii),zr=Sr?!mi||mi.sourceFile.path!==Sr.sourceFile.path:!!mi,Wr=e.createModeAwareCache(),Je=0,xe=0,vr=Ur;xeV+1?{dir:wr.slice(0,V+1).join(e.directorySeparator),dirPath:Ir.slice(0,V+1).join(e.directorySeparator)}:{dir:A,dirPath:y,nonRecursive:!1}}return ge(e.getDirectoryPath(e.getNormalizedAbsolutePath(ur,J())),e.getDirectoryPath(yr))}function ge(ur,yr){for(;e.pathContainsNodeModules(yr);)ur=e.getDirectoryPath(ur),yr=e.getDirectoryPath(yr);if(e.isNodeModulesDirectory(yr))return C(e.getDirectoryPath(yr))?{dir:ur,dirPath:yr}:void 0;var Ir=!0,wr,Ur;if(y!==void 0)for(;!Y(yr,y);){var ii=e.getDirectoryPath(yr);if(ii===yr)break;Ir=!1,wr=yr,Ur=ur,yr=ii,ur=e.getDirectoryPath(ur)}return C(yr)?{dir:Ur||ur,dirPath:wr||yr,nonRecursive:Ir}:void 0}function Re(ur){return e.fileExtensionIsOneOf(ur,x)}function ze(ur,yr,Ir,wr){if(yr.refCount)yr.refCount++,e.Debug.assertIsDefined(yr.files);else{yr.refCount=1,e.Debug.assert(e.length(yr.files)===0),e.isExternalModuleNameRelative(ur)?Ee(yr):G.add(ur,yr);var Ur=wr(yr);Ur&&Ur.resolvedFileName&&f.add(E.toPath(Ur.resolvedFileName),yr)}(yr.files||(yr.files=[])).push(Ir)}function Ee(ur){e.Debug.assert(!!ur.refCount);var yr=ur.failedLookupLocations;if(!!yr.length){oe.push(ur);for(var Ir=!1,wr=0,Ur=yr;wr1),X.set(qr,wi-1))),Di===y?ii=!0:_e(Di)}}ii&&_e(y)}}}function _e(ur){var yr=$.get(ur);yr.refCount--}function we(ur,yr,Ir){return E.watchDirectoryOfFailedLookupLocation(ur,function(wr){var Ur=E.toPath(wr);ie&&ie.addOrDeleteFileOrDirectory(wr,Ur),Ye(Ur,yr===Ur)},Ir?0:1)}function de(ur,yr,Ir){var wr=ur.get(yr);wr&&(wr.forEach(function(Ur){return Ie(Ur,yr,Ir)}),ur.delete(yr))}function ye(ur){if(!!e.fileExtensionIs(ur,\".json\")){var yr=E.getCurrentProgram();if(!!yr){var Ir=yr.getResolvedProjectReferenceByPath(ur);!Ir||Ir.commandLine.fileNames.forEach(function(wr){return Ae(E.toPath(wr))})}}}function Ae(ur){de(R,ur,P),de(ee,ur,k)}function er(ur,yr){if(!ur)return!1;for(var Ir=!1,wr=0,Ur=ur;wr1&&ze.sort(O),ne.push.apply(ne,ze));var Ee=e.getDirectoryPath(ge);if(Ee===ge)return We=ge,\"break\";ge=Ee,We=ge},We,Fe=e.getDirectoryPath(I);fe.size!==0;){var Z=ue(Fe);if(Fe=We,Z===\"break\")break}if(fe.size){var Be=e.arrayFrom(fe.values());Be.length>1&&Be.sort(O),ne.push.apply(ne,Be)}return ne}function x(I,l){var d,D=(d=I.declarations)===null||d===void 0?void 0:d.find(function(ne){return e.isNonGlobalAmbientModule(ne)&&(!e.isExternalModuleAugmentation(ne)||!e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(ne.name)))});if(D)return D.name.text;var fe=e.mapDefined(I.declarations,function(ne){var ue,We,Fe,Z;if(!e.isModuleDeclaration(ne))return;var Be=Ee(ne);if(!(((ue=Be==null?void 0:Be.parent)===null||ue===void 0?void 0:ue.parent)&&e.isModuleBlock(Be.parent)&&e.isAmbientModule(Be.parent.parent)&&e.isSourceFile(Be.parent.parent.parent)))return;var ge=(Z=(Fe=(We=Be.parent.parent.symbol.exports)===null||We===void 0?void 0:We.get(\"export=\"))===null||Fe===void 0?void 0:Fe.valueDeclaration)===null||Z===void 0?void 0:Z.expression;if(!ge)return;var Re=l.getSymbolAtLocation(ge);if(!Re)return;var ze=(Re==null?void 0:Re.flags)&2097152?l.getAliasedSymbol(Re):Re;if(ze===ne.symbol)return Be.parent.parent;function Ee(He){for(;He.flags&4;)He=He.parent;return He}}),g=fe[0];if(g)return g.name.text}function X(I,l,d){for(var D in d)for(var fe=0,g=d[D];fe=Fe.length+Z.length&&e.startsWith(l,Fe)&&e.endsWith(l,Z)||!Z&&l===e.removeTrailingDirectorySeparator(Fe)){var Be=l.substr(Fe.length,l.length-Z.length-Fe.length);return D.replace(\"*\",Be)}}else if(ue===l||ue===I)return D}}var $;(function(I){I[I.Exact=0]=\"Exact\",I[I.Directory=1]=\"Directory\",I[I.Pattern=2]=\"Pattern\"})($||($={}));function A(I,l,d,D,fe,g,ne){if(ne===void 0&&(ne=0),typeof fe==\"string\"){var ue=e.getNormalizedAbsolutePath(e.combinePaths(d,fe),void 0),We=e.hasTSFileExtension(l)?e.removeFileExtension(l)+U(l,I):void 0;switch(ne){case 0:if(e.comparePaths(l,ue)===0||We&&e.comparePaths(We,ue)===0)return{moduleFileToTry:D};break;case 1:if(e.containsPath(ue,l)){var Fe=e.getRelativePathFromDirectory(ue,l,!1);return{moduleFileToTry:e.getNormalizedAbsolutePath(e.combinePaths(e.combinePaths(D,fe),Fe),void 0)}}break;case 2:var Z=ue.indexOf(\"*\"),Be=ue.slice(0,Z),ge=ue.slice(Z+1);if(e.startsWith(l,Be)&&e.endsWith(l,ge)){var Re=l.slice(Be.length,l.length-ge.length);return{moduleFileToTry:D.replace(\"*\",Re)}}if(We&&e.startsWith(We,Be)&&e.endsWith(We,ge)){var Re=We.slice(Be.length,We.length-ge.length);return{moduleFileToTry:D.replace(\"*\",Re)}}break}}else{if(Array.isArray(fe))return e.forEach(fe,function(_e){return A(I,l,d,D,_e,g)});if(typeof fe==\"object\"&&fe!==null){if(e.allKeysStartWithDot(fe))return e.forEach(e.getOwnKeys(fe),function(_e){var we=e.getNormalizedAbsolutePath(e.combinePaths(D,_e),void 0),de=e.endsWith(_e,\"/\")?1:e.stringContains(_e,\"*\")?2:0;return A(I,l,d,we,fe[_e],g,de)});for(var ze=0,Ee=e.getOwnKeys(fe);ze=0||e.isApplicableVersionedTypesKey(g,He)){var rr=fe[He],Ie=A(I,l,d,D,rr,g);if(Ie)return Ie}}}}}function y(I,l,d,D,fe,g){var ne=P(l,I,D);if(ne!==void 0){var ue=P(d,I,D),We=ue!==void 0?e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(ue,ne,D)):ne;return e.getEmitModuleResolutionKind(g)===e.ModuleResolutionKind.NodeJs?k(We,fe,g):e.removeFileExtension(We)}}function V(I,l,d,D,fe,g,ne,ue){var We=I.path,Fe=I.isRedirect,Z=l.getCanonicalFileName,Be=l.sourceDirectory;if(!D.fileExists||!D.readFile)return;var ge=e.getNodeModulePathParts(We);if(!ge)return;var Re=We,ze=!1;if(!ne)for(var Ee=E(D,g,fe,d),He=ge.packageRootIndex,rr=void 0;;){var Ie=Ye(He),_e=Ie.moduleFileToTry,we=Ie.packageRootPath,de=Ie.blockedByExports,ye=Ie.verbatimFromExports;if(e.getEmitModuleResolutionKind(fe)!==e.ModuleResolutionKind.Classic){if(de)return;if(ye)return _e}if(we){Re=we,ze=!0;break}if(rr||(rr=_e),He=We.indexOf(e.directorySeparator,He+1),He===-1){Re=k(rr,Ee.ending,fe,D);break}}if(Fe&&!ze)return;var Ae=D.getGlobalTypingsCacheLocation&&D.getGlobalTypingsCacheLocation(),er=Z(Re.substring(0,ge.topLevelNodeModulesIndex));if(!(e.startsWith(Be,er)||Ae&&e.startsWith(Z(Ae),er)))return;var ir=Re.substring(ge.topLevelPackageNameIndex+1),Cr=e.getPackageNameFromTypesPackageName(ir);return e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Classic&&Cr===ir?void 0:Cr;function Ye(Br){var Er,Ne,n=We.substring(0,Br),lr=e.combinePaths(n,\"package.json\"),be=We,Ge=(Ne=(Er=D.getPackageJsonInfoCache)===null||Er===void 0?void 0:Er.call(D))===null||Ne===void 0?void 0:Ne.getPackageJsonInfo(lr);if(typeof Ge==\"object\"||Ge===void 0&&D.fileExists(lr)){var ur=(Ge==null?void 0:Ge.packageJsonContent)||JSON.parse(D.readFile(lr));if(e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.NodeNext){var yr=[\"node\",ue||d.impliedNodeFormat===e.ModuleKind.ESNext?\"import\":\"require\",\"types\"],Ir=ur.exports&&typeof ur.name==\"string\"?A(fe,We,n,e.getPackageNameFromTypesPackageName(ur.name),ur.exports,yr):void 0;if(Ir){var wr=e.hasTSFileExtension(Ir.moduleFileToTry)?{moduleFileToTry:e.removeFileExtension(Ir.moduleFileToTry)+U(Ir.moduleFileToTry,fe)}:Ir;return Ke(Ke({},wr),{verbatimFromExports:!0})}if(ur.exports)return{moduleFileToTry:We,blockedByExports:!0}}var Ur=ur.typesVersions?e.getPackageJsonTypesVersionsPaths(ur.typesVersions):void 0;if(Ur){var ii=We.slice(n.length+1),mi=X(e.removeFileExtension(ii),k(ii,0,fe),Ur.paths);mi!==void 0&&(be=e.combinePaths(n,mi))}var pe=ur.typings||ur.types||ur.main||\"index.js\";if(e.isString(pe)){var or=e.toPath(pe,n,Z);if(e.removeFileExtension(or)===e.removeFileExtension(Z(be)))return{packageRootPath:n,moduleFileToTry:be}}}else{var qr=Z(be.substring(ge.packageRootIndex+1));if(qr===\"index.d.ts\"||qr===\"index.js\"||qr===\"index.ts\"||qr===\"index.tsx\")return{moduleFileToTry:be,packageRootPath:n}}return{moduleFileToTry:be}}}function L(I,l){if(!!I.fileExists)for(var d=e.flatten(e.getSupportedExtensions({allowJs:!0},[{extension:\"node\",isMixedContent:!1},{extension:\"json\",isMixedContent:!1,scriptKind:6}])),D=0,fe=d;D1?f(j,U):\"\";return\"\".concat(Y).concat(e.flattenDiagnosticMessageText(l.messageText,Y)).concat(Y).concat(Y).concat(d)}e.getErrorSummaryText=oe;function f(P,k){var Y=P.filter(function(g,ne,ue){return ne===ue.findIndex(function(We){return(We==null?void 0:We.fileName)===(g==null?void 0:g.fileName)})});if(Y.length===0)return\"\";var U=function(g){return Math.log(g)*Math.LOG10E+1},j=Y.map(function(g){return[g,e.countWhere(P,function(ne){return ne.fileName===g.fileName})]}),H=j.reduce(function(g,ne){return Math.max(g,ne[1]||0)},0),I=e.Diagnostics.Errors_Files.message,l=I.split(\" \")[0].length,d=Math.max(l,U(H)),D=Math.max(U(H)-l,0),fe=\"\";return fe+=\" \".repeat(D)+I+`\n`,j.forEach(function(g){var ne=g[0],ue=g[1],We=Math.log(ue)*Math.LOG10E+1|0,Fe=We0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:fe.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}e.emitFilesAndReportErrorsAndGetExitStatus=ve,e.noopFileWatcher={close:e.noop},e.returnNoopFileWatcher=function(){return e.noopFileWatcher};function ee(P,k){P===void 0&&(P=e.sys);var Y=k||Q(P);return{onWatchStatusChange:Y,watchFile:e.maybeBind(P,P.watchFile)||e.returnNoopFileWatcher,watchDirectory:e.maybeBind(P,P.watchDirectory)||e.returnNoopFileWatcher,setTimeout:e.maybeBind(P,P.setTimeout)||e.noop,clearTimeout:e.maybeBind(P,P.clearTimeout)||e.noop}}e.createWatchHost=ee,e.WatchType={ConfigFile:\"Config file\",ExtendedConfigFile:\"Extended config file\",SourceFile:\"Source file\",MissingFile:\"Missing file\",WildcardDirectory:\"Wild card directory\",FailedLookupLocations:\"Failed Lookup Locations\",TypeRoots:\"Type roots\",ConfigFileOfReferencedProject:\"Config file of referened project\",ExtendedConfigOfReferencedProject:\"Extended config file of referenced project\",WildcardDirectoryOfReferencedProject:\"Wild card directory of referenced project\",PackageJson:\"package.json file\"};function he(P,k){var Y=P.trace?k.extendedDiagnostics?e.WatchLogLevel.Verbose:k.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,U=Y!==e.WatchLogLevel.None?function(H){return P.trace(H)}:e.noop,j=e.getWatchFactory(P,Y,U);return j.writeLog=U,j}e.createWatchFactory=he;function F(P,k,Y){Y===void 0&&(Y=P);var U=P.useCaseSensitiveFileNames(),j=e.memoize(function(){return P.getNewLine()});return{getSourceFile:function(I,l,d){var D;try{e.performance.mark(\"beforeIORead\"),D=P.readFile(I,k().charset),e.performance.mark(\"afterIORead\"),e.performance.measure(\"I/O Read\",\"beforeIORead\",\"afterIORead\")}catch(fe){d&&d(fe.message),D=\"\"}return D!==void 0?e.createSourceFile(I,D,l):void 0},getDefaultLibLocation:e.maybeBind(P,P.getDefaultLibLocation),getDefaultLibFileName:function(I){return P.getDefaultLibFileName(I)},writeFile:H,getCurrentDirectory:e.memoize(function(){return P.getCurrentDirectory()}),useCaseSensitiveFileNames:function(){return U},getCanonicalFileName:e.createGetCanonicalFileName(U),getNewLine:function(){return e.getNewLineCharacter(k(),j)},fileExists:function(I){return P.fileExists(I)},readFile:function(I){return P.readFile(I)},trace:e.maybeBind(P,P.trace),directoryExists:e.maybeBind(Y,Y.directoryExists),getDirectories:e.maybeBind(Y,Y.getDirectories),realpath:e.maybeBind(P,P.realpath),getEnvironmentVariable:e.maybeBind(P,P.getEnvironmentVariable)||function(){return\"\"},createHash:e.maybeBind(P,P.createHash),readDirectory:e.maybeBind(P,P.readDirectory),disableUseFileVersionAsSignature:P.disableUseFileVersionAsSignature,storeFilesChangingSignatureDuringEmit:P.storeFilesChangingSignatureDuringEmit};function H(I,l,d,D){try{e.performance.mark(\"beforeIOWrite\"),e.writeFileEnsuringDirectories(I,l,d,function(fe,g,ne){return P.writeFile(fe,g,ne)},function(fe){return P.createDirectory(fe)},function(fe){return P.directoryExists(fe)}),e.performance.mark(\"afterIOWrite\"),e.performance.measure(\"I/O Write\",\"beforeIOWrite\",\"afterIOWrite\")}catch(fe){D&&D(fe.message)}}}e.createCompilerHostFromProgramHost=F;function x(P,k){var Y=P.getSourceFile,U=e.maybeBind(k,k.createHash)||e.generateDjb2Hash;P.getSourceFile=function(){for(var j=[],H=0;Hbe?Ge:be}function le(be){return!!be&&!!be.buildOrder}e.isCircularBuildOrder=le;function N(be){return le(be)?be.buildOrder:be}e.getBuildOrderFromAnyBuildOrder=N;function p(be,Ge){return function(ur){var yr=Ge?\"[\".concat(e.formatColorAndReset(e.getLocaleTimeString(be),e.ForegroundColorEscapeSequences.Grey),\"] \"):\"\".concat(e.getLocaleTimeString(be),\" - \");yr+=\"\".concat(e.flattenDiagnosticMessageText(ur.messageText,be.newLine)).concat(be.newLine+be.newLine),be.write(yr)}}e.createBuilderStatusReporter=p;function m(be,Ge,ur,yr){var Ir=e.createProgramHost(be,Ge);return Ir.getModifiedTime=be.getModifiedTime?function(wr){return be.getModifiedTime(wr)}:e.returnUndefined,Ir.setModifiedTime=be.setModifiedTime?function(wr,Ur){return be.setModifiedTime(wr,Ur)}:e.noop,Ir.deleteFile=be.deleteFile?function(wr){return be.deleteFile(wr)}:e.noop,Ir.reportDiagnostic=ur||e.createDiagnosticReporter(be),Ir.reportSolutionBuilderStatus=yr||p(be),Ir.now=e.maybeBind(be,be.now),Ir}function G(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr);return wr.reportErrorSummary=Ir,wr}e.createSolutionBuilderHost=G;function oe(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr),Ur=e.createWatchHost(be,Ir);return e.copyProperties(wr,Ur),wr}e.createSolutionBuilderWithWatchHost=oe;function f(be){var Ge={};return e.commonOptionsWithBuild.forEach(function(ur){e.hasProperty(be,ur.name)&&(Ge[ur.name]=be[ur.name])}),Ge}function T(be,Ge,ur){return ye(!1,be,Ge,ur)}e.createSolutionBuilder=T;function K(be,Ge,ur,yr){return ye(!0,be,Ge,ur,yr)}e.createSolutionBuilderWithWatch=K;function b(be,Ge,ur,yr,Ir){var wr=Ge,Ur=Ge,ii=wr.getCurrentDirectory(),mi=e.createGetCanonicalFileName(wr.useCaseSensitiveFileNames()),pe=f(yr),or=e.createCompilerHostFromProgramHost(wr,function(){return Zt.projectCompilerOptions});e.setGetSourceFileAsHashVersioned(or,wr),or.getParsedCommandLine=function(_r){return q(Zt,_r,J(Zt,_r))},or.resolveModuleNames=e.maybeBind(wr,wr.resolveModuleNames),or.resolveTypeReferenceDirectives=e.maybeBind(wr,wr.resolveTypeReferenceDirectives);var qr=or.resolveModuleNames?void 0:e.createModuleResolutionCache(ii,mi),si=or.resolveTypeReferenceDirectives?void 0:e.createTypeReferenceDirectiveResolutionCache(ii,mi,void 0,qr==null?void 0:qr.getPackageJsonInfoCache());if(!or.resolveModuleNames){var Di=function(_r,pi,ae,Xe){return e.resolveModuleName(_r,ae,Zt.projectCompilerOptions,or,qr,Xe,pi).resolvedModule};or.resolveModuleNames=function(_r,pi,ae,Xe,Jr,ti){return e.loadWithModeAwareCache(e.Debug.checkEachDefined(_r),e.Debug.checkDefined(ti),pi,Xe,Di)},or.getModuleResolutionCache=function(){return qr}}if(!or.resolveTypeReferenceDirectives){var wi=function(_r,pi,ae,Xe){return e.resolveTypeReferenceDirective(_r,pi,Zt.projectCompilerOptions,or,ae,Zt.typeReferenceDirectiveResolutionCache,Xe).resolvedTypeReferenceDirective};or.resolveTypeReferenceDirectives=function(_r,pi,ae,Xe,Jr){return e.loadWithTypeDirectiveCache(e.Debug.checkEachDefined(_r),pi,ae,Jr,wi)}}var Xi=e.createWatchFactory(Ur,yr),et=Xi.watchFile,Gi=Xi.watchDirectory,Wt=Xi.writeLog,Zt={host:wr,hostWithWatch:Ur,currentDirectory:ii,getCanonicalFileName:mi,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(wr),write:e.maybeBind(wr,wr.trace),options:yr,baseCompilerOptions:pe,rootNames:ur,baseWatchOptions:Ir,resolvedConfigFilePaths:new e.Map,configFileCache:new e.Map,projectStatus:new e.Map,buildInfoChecked:new e.Map,extendedConfigCache:new e.Map,builderPrograms:new e.Map,diagnostics:new e.Map,projectPendingBuild:new e.Map,projectErrorsReported:new e.Map,compilerHost:or,moduleResolutionCache:qr,typeReferenceDirectiveResolutionCache:si,buildOrder:void 0,readFileWithCache:function(_r){return wr.readFile(_r)},projectCompilerOptions:pe,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:be,currentInvalidatedProject:void 0,watch:be,allWatchedWildcardDirectories:new e.Map,allWatchedInputFiles:new e.Map,allWatchedConfigFiles:new e.Map,allWatchedExtendedConfigFiles:new e.Map,allWatchedPackageJsonFiles:new e.Map,lastCachedPackageJsonLookups:new e.Map,timerToBuildInvalidatedProject:void 0,reportFileChangeDetected:!1,watchFile:et,watchDirectory:Gi,writeLog:Wt};return Zt}function se(be,Ge){return e.toPath(Ge,be.currentDirectory,be.getCanonicalFileName)}function J(be,Ge){var ur=be.resolvedConfigFilePaths,yr=ur.get(Ge);if(yr!==void 0)return yr;var Ir=se(be,Ge);return ur.set(Ge,Ir),Ir}function ie(be){return!!be.options}function R(be,Ge){var ur=be.configFileCache.get(Ge);return ur&&ie(ur)?ur:void 0}function q(be,Ge,ur){var yr=be.configFileCache,Ir=yr.get(ur);if(Ir)return ie(Ir)?Ir:void 0;var wr,Ur=be.parseConfigFileHost,ii=be.baseCompilerOptions,mi=be.baseWatchOptions,pe=be.extendedConfigCache,or=be.host,qr;return or.getParsedCommandLine?(qr=or.getParsedCommandLine(Ge),qr||(wr=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,Ge))):(Ur.onUnRecoverableConfigFileDiagnostic=function(si){return wr=si},qr=e.getParsedCommandLineOfConfigFile(Ge,ii,Ur,pe,mi),Ur.onUnRecoverableConfigFileDiagnostic=e.noop),yr.set(ur,qr||wr),qr}function O(be,Ge){return e.resolveConfigFileProjectName(e.resolvePath(be.currentDirectory,Ge))}function ve(be,Ge){for(var ur=new e.Map,yr=new e.Map,Ir=[],wr,Ur,ii=0,mi=Ge;iiSr)}}}function U(be,Ge,ur){var yr=be.options;return Ge.type!==e.UpToDateStatusType.OutOfDateWithPrepend||yr.force?!0:ur.fileNames.length===0||!!e.getConfigFileParsingDiagnostics(ur).length||!e.isIncrementalCompilation(ur.options)}function j(be,Ge,ur){if(!!be.projectPendingBuild.size&&!le(Ge)){if(be.currentInvalidatedProject)return e.arrayIsEqualTo(be.currentInvalidatedProject.buildOrder,Ge)?be.currentInvalidatedProject:void 0;for(var yr=be.options,Ir=be.projectPendingBuild,wr=0;wrwr&&(Ir=pe,wr=or)}}if(!Ge.fileNames.length&&!e.canJsonReportNoInputFiles(Ge.raw))return{type:e.UpToDateStatusType.ContainerOnly};var qr=e.getAllProjectOutputs(Ge,!Ur.useCaseSensitiveFileNames()),si=\"(none)\",Di=C,wi=\"(none)\",Xi=a,et,Gi=a,Wt=!1;if(!yr)for(var Zt=0,_r=qr;Zt<_r.length;Zt++){var pi=_r[Zt];if(!Ur.fileExists(pi)){et=pi;break}var ae=e.getModifiedTime(Ur,pi);if(aeXi&&(Xi=ae,wi=pi),e.isDeclarationFileName(pi)){var Xe=e.getModifiedTime(Ur,pi);Gi=Q(Gi,Xe)}}var Jr=!1,ti=!1,Ze;if(Ge.projectReferences){be.projectStatus.set(ur,{type:e.UpToDateStatusType.ComputingUpstream});for(var Sr=0,zr=Ge.projectReferences;Sr=0}C.hasArgument=B;function E(le){var N=e.sys.args.indexOf(le);return N>=0&&Nm)return 2;if(K.charCodeAt(0)===46)return 3;if(K.charCodeAt(0)===95)return 4;if(b){var se=/^@([^/]+)\\/([^/]+)$/.exec(K);if(se){var J=oe(se[1],!1);if(J!==0)return{name:se[1],isScopeName:!0,result:J};var ie=oe(se[2],!1);return ie!==0?{name:se[2],isScopeName:!1,result:ie}:0}}return encodeURIComponent(K)!==K?5:0}function f(K,b){return typeof K==\"object\"?T(b,K.result,K.name,K.isScopeName):T(b,K,b,!1)}C.renderPackageNameValidationFailure=f;function T(K,b,se,J){var ie=J?\"Scope\":\"Package\";switch(b){case 1:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' cannot be empty\");case 2:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' should be less than \").concat(m,\" characters\");case 3:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' cannot start with '.'\");case 4:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' cannot start with '_'\");case 5:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' contains non URI safe characters\");case 0:return e.Debug.fail();default:throw e.Debug.assertNever(b)}}})(a=e.JsTyping||(e.JsTyping={}))})(ke||(ke={}));var ke;(function(e){var a;(function(O){var ve=function(){function he(F){this.text=F}return he.prototype.getText=function(F,x){return F===0&&x===this.text.length?this.text:this.text.substring(F,x)},he.prototype.getLength=function(){return this.text.length},he.prototype.getChangeRange=function(){},he}();function ee(he){return new ve(he)}O.fromString=ee})(a=e.ScriptSnapshot||(e.ScriptSnapshot={}));var C;(function(O){O[O.Dependencies=1]=\"Dependencies\",O[O.DevDependencies=2]=\"DevDependencies\",O[O.PeerDependencies=4]=\"PeerDependencies\",O[O.OptionalDependencies=8]=\"OptionalDependencies\",O[O.All=15]=\"All\"})(C=e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={}));var w;(function(O){O[O.Off=0]=\"Off\",O[O.On=1]=\"On\",O[O.Auto=2]=\"Auto\"})(w=e.PackageJsonAutoImportPreference||(e.PackageJsonAutoImportPreference={}));var B;(function(O){O[O.Semantic=0]=\"Semantic\",O[O.PartialSemantic=1]=\"PartialSemantic\",O[O.Syntactic=2]=\"Syntactic\"})(B=e.LanguageServiceMode||(e.LanguageServiceMode={})),e.emptyOptions={};var E;(function(O){O.Original=\"original\",O.TwentyTwenty=\"2020\"})(E=e.SemanticClassificationFormat||(e.SemanticClassificationFormat={}));var Q;(function(O){O[O.Invoked=1]=\"Invoked\",O[O.TriggerCharacter=2]=\"TriggerCharacter\",O[O.TriggerForIncompleteCompletions=3]=\"TriggerForIncompleteCompletions\"})(Q=e.CompletionTriggerKind||(e.CompletionTriggerKind={}));var le;(function(O){O.Type=\"Type\",O.Parameter=\"Parameter\",O.Enum=\"Enum\"})(le=e.InlayHintKind||(e.InlayHintKind={}));var N;(function(O){O.none=\"none\",O.definition=\"definition\",O.reference=\"reference\",O.writtenReference=\"writtenReference\"})(N=e.HighlightSpanKind||(e.HighlightSpanKind={}));var p;(function(O){O[O.None=0]=\"None\",O[O.Block=1]=\"Block\",O[O.Smart=2]=\"Smart\"})(p=e.IndentStyle||(e.IndentStyle={}));var m;(function(O){O.Ignore=\"ignore\",O.Insert=\"insert\",O.Remove=\"remove\"})(m=e.SemicolonPreference||(e.SemicolonPreference={}));function G(O){return{indentSize:4,tabSize:4,newLineCharacter:O||`\n`,convertTabsToSpaces:!0,indentStyle:p.Smart,insertSpaceAfterConstructor:!1,insertSpaceAfterCommaDelimiter:!0,insertSpaceAfterSemicolonInForStatements:!0,insertSpaceBeforeAndAfterBinaryOperators:!0,insertSpaceAfterKeywordsInControlFlowStatements:!0,insertSpaceAfterFunctionKeywordForAnonymousFunctions:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:!0,insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:!1,insertSpaceBeforeFunctionParenthesis:!1,placeOpenBraceOnNewLineForFunctions:!1,placeOpenBraceOnNewLineForControlBlocks:!1,semicolons:m.Ignore,trimTrailingWhitespace:!0}}e.getDefaultFormatCodeSettings=G,e.testFormatSettings=G(`\n`);var oe;(function(O){O[O.aliasName=0]=\"aliasName\",O[O.className=1]=\"className\",O[O.enumName=2]=\"enumName\",O[O.fieldName=3]=\"fieldName\",O[O.interfaceName=4]=\"interfaceName\",O[O.keyword=5]=\"keyword\",O[O.lineBreak=6]=\"lineBreak\",O[O.numericLiteral=7]=\"numericLiteral\",O[O.stringLiteral=8]=\"stringLiteral\",O[O.localName=9]=\"localName\",O[O.methodName=10]=\"methodName\",O[O.moduleName=11]=\"moduleName\",O[O.operator=12]=\"operator\",O[O.parameterName=13]=\"parameterName\",O[O.propertyName=14]=\"propertyName\",O[O.punctuation=15]=\"punctuation\",O[O.space=16]=\"space\",O[O.text=17]=\"text\",O[O.typeParameterName=18]=\"typeParameterName\",O[O.enumMemberName=19]=\"enumMemberName\",O[O.functionName=20]=\"functionName\",O[O.regularExpressionLiteral=21]=\"regularExpressionLiteral\",O[O.link=22]=\"link\",O[O.linkName=23]=\"linkName\",O[O.linkText=24]=\"linkText\"})(oe=e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={}));var f;(function(O){O[O.None=0]=\"None\",O[O.MayIncludeAutoImports=1]=\"MayIncludeAutoImports\",O[O.IsImportStatementCompletion=2]=\"IsImportStatementCompletion\",O[O.IsContinuation=4]=\"IsContinuation\",O[O.ResolvedModuleSpecifiers=8]=\"ResolvedModuleSpecifiers\",O[O.ResolvedModuleSpecifiersBeyondLimit=16]=\"ResolvedModuleSpecifiersBeyondLimit\",O[O.MayIncludeMethodSnippets=32]=\"MayIncludeMethodSnippets\"})(f=e.CompletionInfoFlags||(e.CompletionInfoFlags={}));var T;(function(O){O.Comment=\"comment\",O.Region=\"region\",O.Code=\"code\",O.Imports=\"imports\"})(T=e.OutliningSpanKind||(e.OutliningSpanKind={}));var K;(function(O){O[O.JavaScript=0]=\"JavaScript\",O[O.SourceMap=1]=\"SourceMap\",O[O.Declaration=2]=\"Declaration\"})(K=e.OutputFileType||(e.OutputFileType={}));var b;(function(O){O[O.None=0]=\"None\",O[O.InMultiLineCommentTrivia=1]=\"InMultiLineCommentTrivia\",O[O.InSingleQuoteStringLiteral=2]=\"InSingleQuoteStringLiteral\",O[O.InDoubleQuoteStringLiteral=3]=\"InDoubleQuoteStringLiteral\",O[O.InTemplateHeadOrNoSubstitutionTemplate=4]=\"InTemplateHeadOrNoSubstitutionTemplate\",O[O.InTemplateMiddleOrTail=5]=\"InTemplateMiddleOrTail\",O[O.InTemplateSubstitutionPosition=6]=\"InTemplateSubstitutionPosition\"})(b=e.EndOfLineState||(e.EndOfLineState={}));var se;(function(O){O[O.Punctuation=0]=\"Punctuation\",O[O.Keyword=1]=\"Keyword\",O[O.Operator=2]=\"Operator\",O[O.Comment=3]=\"Comment\",O[O.Whitespace=4]=\"Whitespace\",O[O.Identifier=5]=\"Identifier\",O[O.NumberLiteral=6]=\"NumberLiteral\",O[O.BigIntLiteral=7]=\"BigIntLiteral\",O[O.StringLiteral=8]=\"StringLiteral\",O[O.RegExpLiteral=9]=\"RegExpLiteral\"})(se=e.TokenClass||(e.TokenClass={}));var J;(function(O){O.unknown=\"\",O.warning=\"warning\",O.keyword=\"keyword\",O.scriptElement=\"script\",O.moduleElement=\"module\",O.classElement=\"class\",O.localClassElement=\"local class\",O.interfaceElement=\"interface\",O.typeElement=\"type\",O.enumElement=\"enum\",O.enumMemberElement=\"enum member\",O.variableElement=\"var\",O.localVariableElement=\"local var\",O.functionElement=\"function\",O.localFunctionElement=\"local function\",O.memberFunctionElement=\"method\",O.memberGetAccessorElement=\"getter\",O.memberSetAccessorElement=\"setter\",O.memberVariableElement=\"property\",O.constructorImplementationElement=\"constructor\",O.callSignatureElement=\"call\",O.indexSignatureElement=\"index\",O.constructSignatureElement=\"construct\",O.parameterElement=\"parameter\",O.typeParameterElement=\"type parameter\",O.primitiveType=\"primitive type\",O.label=\"label\",O.alias=\"alias\",O.constElement=\"const\",O.letElement=\"let\",O.directory=\"directory\",O.externalModuleName=\"external module name\",O.jsxAttribute=\"JSX attribute\",O.string=\"string\",O.link=\"link\",O.linkName=\"link name\",O.linkText=\"link text\"})(J=e.ScriptElementKind||(e.ScriptElementKind={}));var ie;(function(O){O.none=\"\",O.publicMemberModifier=\"public\",O.privateMemberModifier=\"private\",O.protectedMemberModifier=\"protected\",O.exportedModifier=\"export\",O.ambientModifier=\"declare\",O.staticModifier=\"static\",O.abstractModifier=\"abstract\",O.optionalModifier=\"optional\",O.deprecatedModifier=\"deprecated\",O.dtsModifier=\".d.ts\",O.tsModifier=\".ts\",O.tsxModifier=\".tsx\",O.jsModifier=\".js\",O.jsxModifier=\".jsx\",O.jsonModifier=\".json\",O.dmtsModifier=\".d.mts\",O.mtsModifier=\".mts\",O.mjsModifier=\".mjs\",O.dctsModifier=\".d.cts\",O.ctsModifier=\".cts\",O.cjsModifier=\".cjs\"})(ie=e.ScriptElementKindModifier||(e.ScriptElementKindModifier={}));var R;(function(O){O.comment=\"comment\",O.identifier=\"identifier\",O.keyword=\"keyword\",O.numericLiteral=\"number\",O.bigintLiteral=\"bigint\",O.operator=\"operator\",O.stringLiteral=\"string\",O.whiteSpace=\"whitespace\",O.text=\"text\",O.punctuation=\"punctuation\",O.className=\"class name\",O.enumName=\"enum name\",O.interfaceName=\"interface name\",O.moduleName=\"module name\",O.typeParameterName=\"type parameter name\",O.typeAliasName=\"type alias name\",O.parameterName=\"parameter name\",O.docCommentTagName=\"doc comment tag name\",O.jsxOpenTagName=\"jsx open tag name\",O.jsxCloseTagName=\"jsx close tag name\",O.jsxSelfClosingTagName=\"jsx self closing tag name\",O.jsxAttribute=\"jsx attribute\",O.jsxText=\"jsx text\",O.jsxAttributeStringLiteralValue=\"jsx attribute string literal value\"})(R=e.ClassificationTypeNames||(e.ClassificationTypeNames={}));var q;(function(O){O[O.comment=1]=\"comment\",O[O.identifier=2]=\"identifier\",O[O.keyword=3]=\"keyword\",O[O.numericLiteral=4]=\"numericLiteral\",O[O.operator=5]=\"operator\",O[O.stringLiteral=6]=\"stringLiteral\",O[O.regularExpressionLiteral=7]=\"regularExpressionLiteral\",O[O.whiteSpace=8]=\"whiteSpace\",O[O.text=9]=\"text\",O[O.punctuation=10]=\"punctuation\",O[O.className=11]=\"className\",O[O.enumName=12]=\"enumName\",O[O.interfaceName=13]=\"interfaceName\",O[O.moduleName=14]=\"moduleName\",O[O.typeParameterName=15]=\"typeParameterName\",O[O.typeAliasName=16]=\"typeAliasName\",O[O.parameterName=17]=\"parameterName\",O[O.docCommentTagName=18]=\"docCommentTagName\",O[O.jsxOpenTagName=19]=\"jsxOpenTagName\",O[O.jsxCloseTagName=20]=\"jsxCloseTagName\",O[O.jsxSelfClosingTagName=21]=\"jsxSelfClosingTagName\",O[O.jsxAttribute=22]=\"jsxAttribute\",O[O.jsxText=23]=\"jsxText\",O[O.jsxAttributeStringLiteralValue=24]=\"jsxAttributeStringLiteralValue\",O[O.bigintLiteral=25]=\"bigintLiteral\"})(q=e.ClassificationType||(e.ClassificationType={}))})(ke||(ke={}));var ke;(function(e){e.scanner=e.createScanner(99,!0);var a;(function(Se){Se[Se.None=0]=\"None\",Se[Se.Value=1]=\"Value\",Se[Se.Type=2]=\"Type\",Se[Se.Namespace=4]=\"Namespace\",Se[Se.All=7]=\"All\"})(a=e.SemanticMeaning||(e.SemanticMeaning={}));function C(Se){switch(Se.kind){case 254:return e.isInJSFile(Se)&&e.getJSDocEnumTag(Se)?7:1;case 164:case 203:case 167:case 166:case 296:case 297:case 169:case 168:case 171:case 172:case 173:case 256:case 213:case 214:case 292:case 285:return 1;case 163:case 258:case 259:case 182:return 2;case 345:return Se.name===void 0?3:2;case 299:case 257:return 3;case 261:return e.isAmbientModule(Se)||e.getModuleInstanceState(Se)===1?5:4;case 260:case 269:case 270:case 265:case 266:case 271:case 272:return 7;case 305:return 5}return 7}e.getMeaningFromDeclaration=C;function w(Se){Se=Br(Se);var hr=Se.parent;return Se.kind===305?1:e.isExportAssignment(hr)||e.isExportSpecifier(hr)||e.isExternalModuleReference(hr)||e.isImportSpecifier(hr)||e.isImportClause(hr)||e.isImportEqualsDeclaration(hr)&&Se===hr.name?7:E(Se)?B(Se):e.isDeclarationName(Se)?C(hr):e.isEntityName(Se)&&e.findAncestor(Se,e.or(e.isJSDocNameReference,e.isJSDocLinkLike,e.isJSDocMemberName))?7:p(Se)?2:Q(Se)?4:e.isTypeParameterDeclaration(hr)?(e.Debug.assert(e.isJSDocTemplateTag(hr.parent)),2):e.isLiteralTypeNode(hr)?3:1}e.getMeaningFromLocation=w;function B(Se){var hr=Se.kind===161?Se:e.isQualifiedName(Se.parent)&&Se.parent.right===Se?Se.parent:void 0;return hr&&hr.parent.kind===265?7:4}function E(Se){for(;Se.parent.kind===161;)Se=Se.parent;return e.isInternalModuleImportEqualsDeclaration(Se.parent)&&Se.parent.moduleReference===Se}e.isInRightSideOfInternalImportEqualsDeclaration=E;function Q(Se){return le(Se)||N(Se)}function le(Se){var hr=Se,Or=!0;if(hr.parent.kind===161){for(;hr.parent&&hr.parent.kind===161;)hr=hr.parent;Or=hr.right===Se}return hr.parent.kind===178&&!Or}function N(Se){var hr=Se,Or=!0;if(hr.parent.kind===206){for(;hr.parent&&hr.parent.kind===206;)hr=hr.parent;Or=hr.name===Se}if(!Or&&hr.parent.kind===228&&hr.parent.parent.kind===291){var ki=hr.parent.parent.parent;return ki.kind===257&&hr.parent.parent.token===117||ki.kind===258&&hr.parent.parent.token===94}return!1}function p(Se){switch(e.isRightSideOfQualifiedNameOrPropertyAccess(Se)&&(Se=Se.parent),Se.kind){case 108:return!e.isExpressionNode(Se);case 192:return!0}switch(Se.parent.kind){case 178:return!0;case 200:return!Se.parent.isTypeOf;case 228:return e.isPartOfTypeNode(Se.parent)}return!1}function m(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallExpression,b,hr,Or)}e.isCallExpressionTarget=m;function G(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isNewExpression,b,hr,Or)}e.isNewExpressionTarget=G;function oe(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallOrNewExpression,b,hr,Or)}e.isCallOrNewExpressionTarget=oe;function f(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isTaggedTemplateExpression,se,hr,Or)}e.isTaggedTemplateTag=f;function T(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isDecorator,b,hr,Or)}e.isDecoratorTarget=T;function K(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isJsxOpeningLikeElement,J,hr,Or)}e.isJsxOpeningLikeElementTagName=K;function b(Se){return Se.expression}function se(Se){return Se.tag}function J(Se){return Se.tagName}function ie(Se,hr,Or,ki,dt){var la=ki?q(Se):R(Se);return dt&&(la=e.skipOuterExpressions(la)),!!la&&!!la.parent&&hr(la.parent)&&Or(la.parent)===la}function R(Se){return $(Se)?Se.parent:Se}e.climbPastPropertyAccess=R;function q(Se){return $(Se)||A(Se)?Se.parent:Se}e.climbPastPropertyOrElementAccess=q;function O(Se,hr){for(;Se;){if(Se.kind===250&&Se.label.escapedText===hr)return Se.label;Se=Se.parent}}e.getTargetLabel=O;function ve(Se,hr){return e.isPropertyAccessExpression(Se.expression)?Se.expression.name.text===hr:!1}e.hasPropertyAccessExpressionWithName=ve;function ee(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isBreakOrContinueStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isJumpStatementTarget=ee;function he(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isLabeledStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isLabelOfLabeledStatement=he;function F(Se){return he(Se)||ee(Se)}e.isLabelName=F;function x(Se){var hr;return((hr=e.tryCast(Se.parent,e.isJSDocTag))===null||hr===void 0?void 0:hr.tagName)===Se}e.isTagName=x;function X(Se){var hr;return((hr=e.tryCast(Se.parent,e.isQualifiedName))===null||hr===void 0?void 0:hr.right)===Se}e.isRightSideOfQualifiedName=X;function $(Se){var hr;return((hr=e.tryCast(Se.parent,e.isPropertyAccessExpression))===null||hr===void 0?void 0:hr.name)===Se}e.isRightSideOfPropertyAccess=$;function A(Se){var hr;return((hr=e.tryCast(Se.parent,e.isElementAccessExpression))===null||hr===void 0?void 0:hr.argumentExpression)===Se}e.isArgumentExpressionOfElementAccess=A;function y(Se){var hr;return((hr=e.tryCast(Se.parent,e.isModuleDeclaration))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfModuleDeclaration=y;function V(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isFunctionLike))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfFunctionDeclaration=V;function L(Se){switch(Se.parent.kind){case 167:case 166:case 296:case 299:case 169:case 168:case 172:case 173:case 261:return e.getNameOfDeclaration(Se.parent)===Se;case 207:return Se.parent.argumentExpression===Se;case 162:return!0;case 196:return Se.parent.parent.kind===194;default:return!1}}e.isLiteralNameOfPropertyDeclarationOrIndexAccess=L;function P(Se){return e.isExternalModuleImportEqualsDeclaration(Se.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(Se.parent.parent)===Se}e.isExpressionOfExternalModuleImportEqualsDeclaration=P;function k(Se){for(e.isJSDocTypeAlias(Se)&&(Se=Se.parent.parent);;){if(Se=Se.parent,!Se)return;switch(Se.kind){case 305:case 169:case 168:case 256:case 213:case 172:case 173:case 257:case 258:case 260:case 261:return Se}}}e.getContainerNode=k;function Y(Se){switch(Se.kind){case 305:return e.isExternalModule(Se)?\"module\":\"script\";case 261:return\"module\";case 257:case 226:return\"class\";case 258:return\"interface\";case 259:case 338:case 345:return\"type\";case 260:return\"enum\";case 254:return wa(Se);case 203:return wa(e.getRootDeclaration(Se));case 214:case 256:case 213:return\"function\";case 172:return\"getter\";case 173:return\"setter\";case 169:case 168:return\"method\";case 296:var hr=Se.initializer;return e.isFunctionLike(hr)?\"method\":\"property\";case 167:case 166:case 297:case 298:return\"property\";case 176:return\"index\";case 175:return\"construct\";case 174:return\"call\";case 171:case 170:return\"constructor\";case 163:return\"type parameter\";case 299:return\"enum member\";case 164:return e.hasSyntacticModifier(Se,16476)?\"property\":\"parameter\";case 265:case 270:case 275:case 268:case 274:return\"alias\";case 221:var Or=e.getAssignmentDeclarationKind(Se),ki=Se.right;switch(Or){case 7:case 8:case 9:case 0:return\"\";case 1:case 2:var dt=Y(ki);return dt===\"\"?\"const\":dt;case 3:return e.isFunctionExpression(ki)?\"method\":\"property\";case 4:return\"property\";case 5:return e.isFunctionExpression(ki)?\"method\":\"property\";case 6:return\"local class\";default:return e.assertType(Or),\"\"}case 79:return e.isImportClause(Se.parent)?\"alias\":\"\";case 271:var la=Y(Se.expression);return la===\"\"?\"const\":la;default:return\"\"}function wa(On){return e.isVarConst(On)?\"const\":e.isLet(On)?\"let\":\"var\"}}e.getNodeKind=Y;function U(Se){switch(Se.kind){case 108:return!0;case 79:return e.identifierIsThisKeyword(Se)&&Se.parent.kind===164;default:return!1}}e.isThis=U;var j=/^\\/\\/\\/\\s*=Or.end}e.startEndContainsRange=fe;function g(Se,hr,Or){return Se.pos<=hr&&Se.end>=Or}e.rangeContainsStartEnd=g;function ne(Se,hr,Or){return We(Se.pos,Se.end,hr,Or)}e.rangeOverlapsWithStartEnd=ne;function ue(Se,hr,Or,ki){return We(Se.getStart(hr),Se.end,Or,ki)}e.nodeOverlapsWithStartEnd=ue;function We(Se,hr,Or,ki){var dt=Math.max(Se,Or),la=Math.min(hr,ki);return dthr?1:jo(po[$n])?po[$n-1]&&jo(po[$n-1])?1:0:ki&&Zo===hr&&po[$n-1]&&po[$n-1].getEnd()===hr&&jo(po[$n-1])?1:-1});return wa?{value:wa}:Gn>=0&&po[Gn]?(la=po[Gn],\"continue-outer\"):{value:la}};e:for(;;){var No=On();if(typeof No==\"object\")return No.value;switch(No){case\"continue-outer\":continue e}}function jo(po){var Gn=Or?po.getFullStart():po.getStart(Se,!0);if(Gn>hr)return!1;var $n=po.getEnd();if(hr<$n||hr===$n&&(po.kind===1||dt))return!0;if(ki&&$n===hr){var Ho=Ir(hr,Se,po);if(Ho&&ki(Ho))return wa=Ho,!0}return!1}}function Ge(Se,hr){for(var Or=lr(Se,hr);or(Or);){var ki=yr(Or,Or.parent,Se);if(!ki)return;Or=ki}return Or}e.findFirstNonJsxWhitespaceToken=Ge;function ur(Se,hr){var Or=lr(Se,hr);return e.isToken(Or)&&hr>Or.getStart(Se)&&hrSe.end||la.pos===Se.end;return wa&&pi(la,Or)?ki(la):void 0})}}e.findNextToken=yr;function Ir(Se,hr,Or,ki){var dt=la(Or||hr);return e.Debug.assert(!(dt&&or(dt))),dt;function la(wa){if(wr(wa)&&wa.kind!==1)return wa;var On=wa.getChildren(hr),No=e.binarySearchKey(On,Se,function(Zo,Es){return Es},function(Zo,Es){return Se=On[Zo-1].end?0:1:-1});if(No>=0&&On[No]){var jo=On[No];if(Se=Se||!pi(jo,hr)||or(jo);if(Gn){var $n=ii(On,No,hr,wa.kind);return $n&&Ur($n,hr)}else return la(jo)}}e.Debug.assert(Or!==void 0||wa.kind===305||wa.kind===1||e.isJSDocCommentContainingNode(wa));var Ho=ii(On,On.length,hr,wa.kind);return Ho&&Ur(Ho,hr)}}e.findPrecedingToken=Ir;function wr(Se){return e.isToken(Se)&&!or(Se)}function Ur(Se,hr){if(wr(Se))return Se;var Or=Se.getChildren(hr);if(Or.length===0)return Se;var ki=ii(Or,Or.length,hr,Se.kind);return ki&&Ur(ki,hr)}function ii(Se,hr,Or,ki){for(var dt=hr-1;dt>=0;dt--){var la=Se[dt];if(or(la))dt===0&&(ki===11||ki===279)&&e.Debug.fail(\"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`\");else if(pi(Se[dt],Or))return Se[dt]}}function mi(Se,hr,Or){if(Or===void 0&&(Or=Ir(hr,Se)),Or&&e.isStringTextContainingNode(Or)){var ki=Or.getStart(Se),dt=Or.getEnd();if(kiOr.getStart(Se)}e.isInTemplateString=qr;function si(Se,hr){var Or=lr(Se,hr);return!!(e.isJsxText(Or)||Or.kind===18&&e.isJsxExpression(Or.parent)&&e.isJsxElement(Or.parent.parent)||Or.kind===29&&e.isJsxOpeningLikeElement(Or.parent)&&e.isJsxElement(Or.parent.parent))}e.isInJSXText=si;function Di(Se,hr){function Or(ki){for(;ki;)if(ki.kind>=279&&ki.kind<=288||ki.kind===11||ki.kind===29||ki.kind===31||ki.kind===79||ki.kind===19||ki.kind===18||ki.kind===43)ki=ki.parent;else if(ki.kind===278){if(hr>ki.getStart(Se))return!0;ki=ki.parent}else return!1;return!1}return Or(lr(Se,hr))}e.isInsideJsxElement=Di;function wi(Se,hr,Or){var ki=e.tokenToString(Se.kind),dt=e.tokenToString(hr),la=Se.getFullStart(),wa=Or.text.lastIndexOf(dt,la);if(wa!==-1){if(Or.text.lastIndexOf(ki,la-1)=hr})}e.getPossibleGenericSignatures=Gi;function Wt(Se,hr){if(hr.text.lastIndexOf(\"<\",Se?Se.pos:hr.text.length)!==-1)for(var Or=Se,ki=0,dt=0;Or;){switch(Or.kind){case 29:if(Or=Ir(Or.getFullStart(),hr),Or&&Or.kind===28&&(Or=Ir(Or.getFullStart(),hr)),!Or||!e.isIdentifier(Or))return;if(!ki)return e.isDeclarationName(Or)?void 0:{called:Or,nTypeArguments:dt};ki--;break;case 49:ki=3;break;case 48:ki=2;break;case 31:ki++;break;case 19:if(Or=wi(Or,18,hr),!Or)return;break;case 21:if(Or=wi(Or,20,hr),!Or)return;break;case 23:if(Or=wi(Or,22,hr),!Or)return;break;case 27:dt++;break;case 38:case 79:case 10:case 8:case 9:case 110:case 95:case 112:case 94:case 140:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(Or))break;return}Or=Ir(Or.getFullStart(),hr)}}e.getPossibleTypeArgumentsInfo=Wt;function Zt(Se,hr,Or){return e.formatting.getRangeOfEnclosingComment(Se,hr,void 0,Or)}e.isInComment=Zt;function _r(Se,hr){var Or=lr(Se,hr);return!!e.findAncestor(Or,e.isJSDoc)}e.hasDocComment=_r;function pi(Se,hr){return Se.kind===1?!!Se.jsDoc:Se.getWidth(hr)!==0}function ae(Se,hr){hr===void 0&&(hr=0);var Or=[],ki=e.isDeclaration(Se)?e.getCombinedNodeFlagsAlwaysIncludeJSDoc(Se)&~hr:0;return ki&8&&Or.push(\"private\"),ki&16&&Or.push(\"protected\"),ki&4&&Or.push(\"public\"),(ki&32||e.isClassStaticBlockDeclaration(Se))&&Or.push(\"static\"),ki&128&&Or.push(\"abstract\"),ki&1&&Or.push(\"export\"),ki&8192&&Or.push(\"deprecated\"),Se.flags&16777216&&Or.push(\"declare\"),Se.kind===271&&Or.push(\"export\"),Or.length>0?Or.join(\",\"):\"\"}e.getNodeModifiers=ae;function Xe(Se){if(Se.kind===178||Se.kind===208)return Se.typeArguments;if(e.isFunctionLike(Se)||Se.kind===257||Se.kind===258)return Se.typeParameters}e.getTypeArgumentOrTypeParameterList=Xe;function Jr(Se){return Se===2||Se===3}e.isComment=Jr;function ti(Se){return!!(Se===10||Se===13||e.isTemplateLiteralKind(Se))}e.isStringOrRegularExpressionOrTemplateLiteral=ti;function Ze(Se){return 18<=Se&&Se<=78}e.isPunctuation=Ze;function Sr(Se,hr,Or){return e.isTemplateLiteralKind(Se.kind)&&Se.getStart(Or)=2||!!Se.noEmit}e.compilerOptionsIndicateEsModules=xt;function ut(Se,hr){return{fileExists:function(Or){return Se.fileExists(Or)},getCurrentDirectory:function(){return hr.getCurrentDirectory()},readFile:e.maybeBind(hr,hr.readFile),useCaseSensitiveFileNames:e.maybeBind(hr,hr.useCaseSensitiveFileNames),getSymlinkCache:e.maybeBind(hr,hr.getSymlinkCache)||Se.getSymlinkCache,getModuleSpecifierCache:e.maybeBind(hr,hr.getModuleSpecifierCache),getPackageJsonInfoCache:function(){var Or;return(Or=Se.getModuleResolutionCache())===null||Or===void 0?void 0:Or.getPackageJsonInfoCache()},getGlobalTypingsCacheLocation:e.maybeBind(hr,hr.getGlobalTypingsCacheLocation),redirectTargetsMap:Se.redirectTargetsMap,getProjectReferenceRedirect:function(Or){return Se.getProjectReferenceRedirect(Or)},isSourceOfProjectReferenceRedirect:function(Or){return Se.isSourceOfProjectReferenceRedirect(Or)},getNearestAncestorDirectoryWithPackageJson:e.maybeBind(hr,hr.getNearestAncestorDirectoryWithPackageJson),getFileIncludeReasons:function(){return Se.getFileIncludeReasons()}}}e.createModuleSpecifierResolutionHost=ut;function Dt(Se,hr){return Ke(Ke({},ut(Se,hr)),{getCommonSourceDirectory:function(){return Se.getCommonSourceDirectory()}})}e.getModuleSpecifierResolverHost=Dt;function Rt(Se){return Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionRespectsExports=Rt;function Ii(Se){return Se===e.ModuleResolutionKind.NodeJs||Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionUsesNodeModules=Ii;function Ki(Se,hr,Or,ki){return Se||hr&&hr.length?Fi(Se,hr,Or,ki):void 0}e.makeImportIfNecessary=Ki;function Fi(Se,hr,Or,ki,dt){return e.factory.createImportDeclaration(void 0,void 0,Se||hr?e.factory.createImportClause(!!dt,Se,hr&&hr.length?e.factory.createNamedImports(hr):void 0):void 0,typeof Or==\"string\"?ui(Or,ki):Or,void 0)}e.makeImport=Fi;function ui(Se,hr){return e.factory.createStringLiteral(Se,hr===0)}e.makeStringLiteral=ui;var Bt;(function(Se){Se[Se.Single=0]=\"Single\",Se[Se.Double=1]=\"Double\"})(Bt=e.QuotePreference||(e.QuotePreference={}));function wt(Se,hr){return e.isStringDoubleQuoted(Se,hr)?1:0}e.quotePreferenceFromString=wt;function na(Se,hr){if(hr.quotePreference&&hr.quotePreference!==\"auto\")return hr.quotePreference===\"single\"?0:1;var Or=Se.imports&&e.find(Se.imports,function(ki){return e.isStringLiteral(ki)&&!e.nodeIsSynthesized(ki.parent)});return Or?wt(Or,Se):1}e.getQuotePreference=na;function Ai(Se){switch(Se){case 0:return\"'\";case 1:return'\"';default:return e.Debug.assertNever(Se)}}e.getQuoteFromPreference=Ai;function Oi(Se){var hr=ji(Se);return hr===void 0?void 0:e.unescapeLeadingUnderscores(hr)}e.symbolNameNoDefault=Oi;function ji(Se){return Se.escapedName!==\"default\"?Se.escapedName:e.firstDefined(Se.declarations,function(hr){var Or=e.getNameOfDeclaration(hr);return Or&&Or.kind===79?Or.escapedText:void 0})}e.symbolEscapedNameNoDefault=ji;function Vi(Se){return e.isStringLiteralLike(Se)&&(e.isExternalModuleReference(Se.parent)||e.isImportDeclaration(Se.parent)||e.isRequireCall(Se.parent,!1)&&Se.parent.arguments[0]===Se||e.isImportCall(Se.parent)&&Se.parent.arguments[0]===Se)}e.isModuleSpecifierLike=Vi;function at(Se){return e.isBindingElement(Se)&&e.isObjectBindingPattern(Se.parent)&&e.isIdentifier(Se.name)&&!Se.propertyName}e.isObjectBindingElementWithoutPropertyName=at;function At(Se,hr){var Or=Se.getTypeAtLocation(hr.parent);return Or&&Se.getPropertyOfType(Or,hr.name.text)}e.getPropertySymbolFromBindingElement=At;function ba(Se,hr,Or){if(!!Se)for(;Se.parent;){if(e.isSourceFile(Se.parent)||!$a(Or,Se.parent,hr))return Se;Se=Se.parent}}e.getParentNodeInSpan=ba;function $a(Se,hr,Or){return e.textSpanContainsPosition(Se,hr.getStart(Or))&&hr.getEnd()<=e.textSpanEnd(Se)}function Qa(Se,hr){return Se.modifiers&&e.find(Se.modifiers,function(Or){return Or.kind===hr})}e.findModifier=Qa;function ai(Se,hr,Or,ki){var dt=e.isArray(Or)?Or[0]:Or,la=dt.kind===237?e.isRequireVariableStatement:e.isAnyImportSyntax,wa=e.filter(hr.statements,la),On=e.isArray(Or)?e.stableSort(Or,e.OrganizeImports.compareImportsOrRequireStatements):[Or];if(!wa.length)Se.insertNodesAtTopOfFile(hr,On,ki);else if(wa&&e.OrganizeImports.importsAreSorted(wa))for(var No=0,jo=On;NoSe&&Gn&&Gn!==\"...\"&&(e.isWhiteSpaceLike(Gn.charCodeAt(Gn.length-1))||hr.push(Pn(\" \",e.SymbolDisplayPartKind.space)),hr.push(Pn(\"...\",e.SymbolDisplayPartKind.punctuation))),hr},writeKeyword:function(Gn){return On(Gn,e.SymbolDisplayPartKind.keyword)},writeOperator:function(Gn){return On(Gn,e.SymbolDisplayPartKind.operator)},writePunctuation:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(Gn){return On(Gn,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(Gn){return On(Gn,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(Gn){return On(Gn,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:No,writeLine:jo,write:la,writeComment:la,getText:function(){return\"\"},getTextPos:function(){return 0},getColumn:function(){return 0},getLine:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingWhitespace:function(){return!1},hasTrailingComment:function(){return!1},rawWrite:e.notImplemented,getIndent:function(){return ki},increaseIndent:function(){ki++},decreaseIndent:function(){ki--},clear:po,trackSymbol:function(){return!1},reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function wa(){if(!(dt>Se)&&Or){var Gn=e.getIndentString(ki);Gn&&(dt+=Gn.length,hr.push(Pn(Gn,e.SymbolDisplayPartKind.space))),Or=!1}}function On(Gn,$n){dt>Se||(wa(),dt+=Gn.length,hr.push(Pn(Gn,$n)))}function No(Gn,$n){dt>Se||(wa(),dt+=Gn.length,hr.push(Kn(Gn,$n)))}function jo(){dt>Se||(dt+=1,hr.push(Jn()),Or=!0)}function po(){hr=[],Or=!0,ki=0,dt=0}}function Kn(Se,hr){return Pn(Se,Or(hr));function Or(ki){var dt=ki.flags;return dt&3?Bi(ki)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName:dt&4||dt&32768||dt&65536?e.SymbolDisplayPartKind.propertyName:dt&8?e.SymbolDisplayPartKind.enumMemberName:dt&16?e.SymbolDisplayPartKind.functionName:dt&32?e.SymbolDisplayPartKind.className:dt&64?e.SymbolDisplayPartKind.interfaceName:dt&384?e.SymbolDisplayPartKind.enumName:dt&1536?e.SymbolDisplayPartKind.moduleName:dt&8192?e.SymbolDisplayPartKind.methodName:dt&262144?e.SymbolDisplayPartKind.typeParameterName:dt&524288||dt&2097152?e.SymbolDisplayPartKind.aliasName:e.SymbolDisplayPartKind.text}}e.symbolPart=Kn;function Pn(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[hr]}}e.displayPart=Pn;function eo(){return Pn(\" \",e.SymbolDisplayPartKind.space)}e.spacePart=eo;function Rn(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.keyword)}e.keywordPart=Rn;function Da(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.punctuation)}e.punctuationPart=Da;function bo(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.operator)}e.operatorPart=bo;function Ro(Se){return Pn(Se,e.SymbolDisplayPartKind.parameterName)}e.parameterNamePart=Ro;function En(Se){return Pn(Se,e.SymbolDisplayPartKind.propertyName)}e.propertyNamePart=En;function Wn(Se){var hr=e.stringToToken(Se);return hr===void 0?to(Se):Rn(hr)}e.textOrKeywordPart=Wn;function to(Se){return Pn(Se,e.SymbolDisplayPartKind.text)}e.textPart=to;function Co(Se){return Pn(Se,e.SymbolDisplayPartKind.aliasName)}e.typeAliasNamePart=Co;function Ko(Se){return Pn(Se,e.SymbolDisplayPartKind.typeParameterName)}e.typeParameterNamePart=Ko;function Oo(Se){return Pn(Se,e.SymbolDisplayPartKind.linkText)}e.linkTextPart=Oo;function no(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[e.SymbolDisplayPartKind.linkName],target:{fileName:e.getSourceFileOfNode(hr).fileName,textSpan:Oe(hr)}}}e.linkNamePart=no;function $o(Se){return Pn(Se,e.SymbolDisplayPartKind.link)}e.linkPart=$o;function Pr(Se,hr){var Or,ki=e.isJSDocLink(Se)?\"link\":e.isJSDocLinkCode(Se)?\"linkcode\":\"linkplain\",dt=[$o(\"{@\".concat(ki,\" \"))];if(!Se.name)Se.text&&dt.push(Oo(Se.text));else{var la=hr==null?void 0:hr.getSymbolAtLocation(Se.name),wa=St(Se.text),On=e.getTextOfNode(Se.name)+Se.text.slice(0,wa),No=xi(Se.text.slice(wa)),jo=(la==null?void 0:la.valueDeclaration)||((Or=la==null?void 0:la.declarations)===null||Or===void 0?void 0:Or[0]);jo?(dt.push(no(On,jo)),No&&dt.push(Oo(No))):dt.push(Oo(On+(wa||No.indexOf(\"://\")===0?\"\":\" \")+No))}return dt.push($o(\"}\")),dt}e.buildLinkParts=Pr;function xi(Se){var hr=0;if(Se.charCodeAt(hr++)===124){for(;hr\"&&hr--,Or++,!hr)return Or;return 0}var pa=`\\r\n`;function dn(Se,hr){var Or;return(hr==null?void 0:hr.newLineCharacter)||((Or=Se.getNewLine)===null||Or===void 0?void 0:Or.call(Se))||pa}e.getNewLineOrDefaultFromHost=dn;function Jn(){return Pn(`\n`,e.SymbolDisplayPartKind.lineBreak)}e.lineBreakPart=Jn;function Qe(Se){try{return Se(kn),kn.displayParts()}finally{kn.clear()}}e.mapToDisplayParts=Qe;function Gr(Se,hr,Or,ki){return ki===void 0&&(ki=0),Qe(function(dt){Se.writeType(hr,Or,ki|1024|16384,dt)})}e.typeToDisplayParts=Gr;function S(Se,hr,Or,ki,dt){return dt===void 0&&(dt=0),Qe(function(la){Se.writeSymbol(hr,Or,ki,dt|8,la)})}e.symbolToDisplayParts=S;function Ce(Se,hr,Or,ki){return ki===void 0&&(ki=0),ki|=25632,Qe(function(dt){Se.writeSignature(hr,Or,ki,void 0,dt)})}e.signatureToDisplayParts=Ce;function qe(Se,hr){var Or=hr.getSourceFile();return Qe(function(ki){var dt=e.createPrinter({removeComments:!0,omitTrailingSemicolon:!0});dt.writeNode(4,Se,Or,ki)})}e.nodeToDisplayParts=qe;function br(Se){return!!Se.parent&&e.isImportOrExportSpecifier(Se.parent)&&Se.parent.propertyName===Se}e.isImportOrExportSpecifierName=br;function Zr(Se,hr){return e.ensureScriptKind(Se,hr.getScriptKind&&hr.getScriptKind(Se))}e.getScriptKind=Zr;function Si(Se,hr){for(var Or=Se;Qi(Or)||Pi(Or)&&Or.target;)Pi(Or)&&Or.target?Or=Or.target:Or=e.skipAlias(Or,hr);return Or}e.getSymbolTarget=Si;function Pi(Se){return(Se.flags&33554432)!==0}function Qi(Se){return(Se.flags&2097152)!==0}function Ct(Se,hr){return e.getSymbolId(e.skipAlias(Se,hr))}e.getUniqueSymbolId=Ct;function sa(Se,hr){for(;e.isWhiteSpaceLike(Se.charCodeAt(hr));)hr+=1;return hr}e.getFirstNonSpaceCharacterPosition=sa;function en(Se,hr){for(;hr>-1&&e.isWhiteSpaceSingleLine(Se.charCodeAt(hr));)hr-=1;return hr+1}e.getPrecedingNonSpaceCharacterPosition=en;function Wa(Se,hr){hr===void 0&&(hr=!0);var Or=Se&&mo(Se);return Or&&!hr&&ys(Or),Or}e.getSynthesizedDeepClone=Wa;function qn(Se,hr,Or){var ki=Or(Se);return ki?e.setOriginalNode(ki,Se):ki=mo(Se,Or),ki&&!hr&&ys(ki),ki}e.getSynthesizedDeepCloneWithReplacements=qn;function mo(Se,hr){var Or=hr?function(wa){return qn(wa,!0,hr)}:Wa,ki=hr?function(wa){return wa&&Go(wa,!0,hr)}:function(wa){return wa&&So(wa)},dt=e.visitEachChild(Se,Or,e.nullTransformationContext,ki,Or);if(dt===Se){var la=e.isStringLiteral(Se)?e.setOriginalNode(e.factory.createStringLiteralFromNode(Se),Se):e.isNumericLiteral(Se)?e.setOriginalNode(e.factory.createNumericLiteral(Se.text,Se.numericLiteralFlags),Se):e.factory.cloneNode(Se);return e.setTextRange(la,Se)}return dt.parent=void 0,dt}function So(Se,hr){return hr===void 0&&(hr=!0),Se&&e.factory.createNodeArray(Se.map(function(Or){return Wa(Or,hr)}),Se.hasTrailingComma)}e.getSynthesizedDeepClones=So;function Go(Se,hr,Or){return e.factory.createNodeArray(Se.map(function(ki){return qn(ki,hr,Or)}),Se.hasTrailingComma)}e.getSynthesizedDeepClonesWithReplacements=Go;function ys(Se){Pc(Se),Vc(Se)}e.suppressLeadingAndTrailingTrivia=ys;function Pc(Se){pc(Se,512,hs)}e.suppressLeadingTrivia=Pc;function Vc(Se){pc(Se,1024,e.getLastChild)}e.suppressTrailingTrivia=Vc;function Kc(Se,hr){var Or=Se.getSourceFile(),ki=Or.text;Xs(Se,ki)?Qs(Se,hr,Or):ds(Se,hr,Or),js(Se,hr,Or)}e.copyComments=Kc;function Xs(Se,hr){for(var Or=Se.getFullStart(),ki=Se.getStart(),dt=Or;dt=0),la}e.getRenameLocation=ps;function Qs(Se,hr,Or,ki,dt){e.forEachLeadingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyLeadingComments=Qs;function js(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.end,Ji(hr,Or,ki,dt,e.addSyntheticTrailingComment))}e.copyTrailingComments=js;function ds(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyTrailingAsLeadingComments=ds;function Ji(Se,hr,Or,ki,dt){return function(la,wa,On,No){On===3?(la+=2,wa-=2):la+=2,dt(Se,Or||On,hr.text.slice(la,wa),ki!==void 0?ki:No)}}function ce(Se,hr){if(e.startsWith(Se,hr))return 0;var Or=Se.indexOf(\" \"+hr);return Or===-1&&(Or=Se.indexOf(\".\"+hr)),Or===-1&&(Or=Se.indexOf('\"'+hr)),Or===-1?-1:Or+1}function Rr(Se){return e.isBinaryExpression(Se)&&Se.operatorToken.kind===27||e.isObjectLiteralExpression(Se)||e.isAsExpression(Se)&&e.isObjectLiteralExpression(Se.expression)}e.needsParentheses=Rr;function yi(Se,hr){var Or=Se.parent;switch(Or.kind){case 209:return hr.getContextualType(Or);case 221:{var ki=Or,dt=ki.left,la=ki.operatorToken,wa=ki.right;return je(la.kind)?hr.getTypeAtLocation(Se===wa?dt:wa):hr.getContextualType(Se)}case 289:return Or.expression===Se?Pt(Or,hr):void 0;default:return hr.getContextualType(Se)}}e.getContextualTypeFromParent=yi;function qi(Se,hr,Or){var ki=na(Se,hr),dt=JSON.stringify(Or);return ki===0?\"'\".concat(e.stripQuotes(dt).replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"'),\"'\"):dt}e.quote=qi;function je(Se){switch(Se){case 36:case 34:case 37:case 35:return!0;default:return!1}}e.isEqualityOperatorKind=je;function Hr(Se){switch(Se.kind){case 10:case 14:case 223:case 210:return!0;default:return!1}}e.isStringLiteralOrTemplate=Hr;function pt(Se){return!!Se.getStringIndexType()||!!Se.getNumberIndexType()}e.hasIndexSignature=pt;function Pt(Se,hr){return hr.getTypeAtLocation(Se.parent.parent.expression)}e.getSwitchedType=Pt,e.ANONYMOUS=\"anonymous function\";function ga(Se,hr,Or,ki){var dt=Or.getTypeChecker(),la=!0,wa=function(){return la=!1},On=dt.typeToTypeNode(Se,hr,1,{trackSymbol:function(No,jo,po){return la=la&&dt.isSymbolAccessible(No,jo,po,!1).accessibility===0,!la},reportInaccessibleThisError:wa,reportPrivateInBaseOfClassExpression:wa,reportInaccessibleUniqueSymbolError:wa,moduleResolverHost:Dt(Or,ki)});return la?On:void 0}e.getTypeNodeIfAccessible=ga;function ua(Se){return Se===174||Se===175||Se===176||Se===166||Se===168}function Xn(Se){return Se===256||Se===171||Se===169||Se===172||Se===173}function jr(Se){return Se===261}function fo(Se){return Se===237||Se===238||Se===240||Se===245||Se===246||Se===247||Se===251||Se===253||Se===167||Se===259||Se===266||Se===265||Se===272||Se===264||Se===271}e.syntaxRequiresTrailingSemicolonOrASI=fo,e.syntaxMayBeASICandidate=e.or(ua,Xn,jr,fo);function xs(Se,hr){var Or=Se.getLastToken(hr);if(Or&&Or.kind===26)return!1;if(ua(Se.kind)){if(Or&&Or.kind===27)return!1}else if(jr(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isModuleBlock(ki))return!1}else if(Xn(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isFunctionBlock(ki))return!1}else if(!fo(Se.kind))return!1;if(Se.kind===240)return!0;var dt=e.findAncestor(Se,function(No){return!No.parent}),la=yr(Se,dt,hr);if(!la||la.kind===19)return!0;var wa=hr.getLineAndCharacterOfPosition(Se.getEnd()).line,On=hr.getLineAndCharacterOfPosition(la.getStart(hr)).line;return wa!==On}function Fo(Se,hr,Or){var ki=e.findAncestor(hr,function(dt){return dt.end!==Se?\"quit\":e.syntaxMayBeASICandidate(dt.kind)});return!!ki&&xs(ki,Or)}e.positionIsASICandidate=Fo;function ko(Se){var hr=0,Or=0,ki=5;return e.forEachChild(Se,function dt(la){if(fo(la.kind)){var wa=la.getLastToken(Se);(wa==null?void 0:wa.kind)===26?hr++:Or++}else if(ua(la.kind)){var wa=la.getLastToken(Se);if((wa==null?void 0:wa.kind)===26)hr++;else if(wa&&wa.kind!==27){var On=e.getLineAndCharacterOfPosition(Se,wa.getStart(Se)).line,No=e.getLineAndCharacterOfPosition(Se,e.getSpanOfTokenAtPosition(Se,wa.end).start).line;On!==No&&Or++}}return hr+Or>=ki?!0:e.forEachChild(la,dt)}),hr===0&&Or<=1?!0:hr/Or>1/ki}e.probablyUsesSemicolons=ko;function Ao(Se,hr){return tl(Se,Se.getDirectories,hr)||[]}e.tryGetDirectories=Ao;function Ms(Se,hr,Or,ki,dt){return tl(Se,Se.readDirectory,hr,Or,ki,dt)||e.emptyArray}e.tryReadDirectory=Ms;function Bs(Se,hr){return tl(Se,Se.fileExists,hr)}e.tryFileExists=Bs;function xc(Se,hr){return su(function(){return e.directoryProbablyExists(hr,Se)})||!1}e.tryDirectoryExists=xc;function su(Se){try{return Se()}catch{return}}e.tryAndIgnoreErrors=su;function tl(Se,hr){for(var Or=[],ki=2;ki\"u\")return!0;var yc=e.stripQuotes($n.getName());return jo(yc)?!0:la(Es)||la(yc)}function On($n,Ho){if(!ki.length)return!0;var Zo=po($n.fileName,Ho);return Zo?la(Zo):!0}function No($n){return!ki.length||jo($n)||e.pathIsRelative($n)||e.isRootedDiskPath($n)?!0:la($n)}function jo($n){return!!(e.isSourceFileJS(Se)&&e.JsTyping.nodeCoreModules.has($n)&&(dt===void 0&&(dt=pu(Se)),dt))}function po($n,Ho){if(!!e.stringContains($n,\"node_modules\")){var Zo=e.moduleSpecifiers.getNodeModulesPackageName(Or.getCompilationSettings(),Se,$n,Ho,hr);if(!!Zo&&!e.pathIsRelative(Zo)&&!e.isRootedDiskPath(Zo))return Gn(Zo)}}function Gn($n){var Ho=e.getPathComponents(e.getPackageNameFromTypesPackageName($n)).slice(1);return e.startsWith(Ho[0],\"@\")?\"\".concat(Ho[0],\"/\").concat(Ho[1]):Ho[0]}}e.createPackageJsonImportFilter=eu;function Ws(Se){try{return JSON.parse(Se)}catch{return}}function pu(Se){return e.some(Se.imports,function(hr){var Or=hr.text;return e.JsTyping.nodeCoreModules.has(Or)})}e.consumesNodeCoreModules=pu;function Uu(Se){return e.contains(e.getPathComponents(Se),\"node_modules\")}e.isInsideNodeModules=Uu;function Ql(Se){return Se.file!==void 0&&Se.start!==void 0&&Se.length!==void 0}e.isDiagnosticWithLocation=Ql;function xl(Se,hr){var Or=Oe(Se),ki=e.binarySearchKey(hr,Or,e.identity,e.compareTextSpans);if(ki>=0){var dt=hr[ki];return e.Debug.assertEqual(dt.file,Se.getSourceFile(),\"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile\"),e.cast(dt,Ql)}}e.findDiagnosticForNode=xl;function Ya(Se,hr){var Or,ki=e.binarySearchKey(hr,Se.start,function(On){return On.start},e.compareValues);for(ki<0&&(ki=~ki);((Or=hr[ki-1])===null||Or===void 0?void 0:Or.start)===Se.start;)ki--;for(var dt=[],la=e.textSpanEnd(Se);;){var wa=e.tryCast(hr[ki],Ql);if(!wa||wa.start>la)break;e.textSpanContainsTextSpan(Se,wa)&&dt.push(wa),ki++}return dt}e.getDiagnosticsWithinSpan=Ya;function du(Se){var hr=Se.startPosition,Or=Se.endPosition;return e.createTextSpanFromBounds(hr,Or===void 0?hr:Or)}e.getRefactorContextSpan=du;function vc(Se,hr){var Or=lr(Se,hr.start),ki=e.findAncestor(Or,function(dt){return dt.getStart(Se)e.textSpanEnd(hr)?\"quit\":e.isExpression(dt)&&ka(hr,Oe(dt,Se))});return ki}e.getFixableErrorSpanExpression=vc;function Kr(Se,hr,Or){return Or===void 0&&(Or=e.identity),Se?e.isArray(Se)?Or(e.map(Se,hr)):hr(Se,0):void 0}e.mapOneOrMany=Kr;function _i(Se){return e.isArray(Se)?e.first(Se):Se}e.firstOrOnly=_i;function Ei(Se,hr){if(kt(Se)){var Or=bt(Se);if(Or)return Or;var ki=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!1),dt=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!0);return ki===dt?ki:[ki,dt]}return Se.name}e.getNamesForExportedSymbol=Ei;function tt(Se,hr,Or){return kt(Se)?bt(Se)||e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!!Or):Se.name}e.getNameForExportedSymbol=tt;function kt(Se){return!(Se.flags&33554432)&&(Se.escapedName===\"export=\"||Se.escapedName===\"default\")}function bt(Se){return e.firstDefined(Se.declarations,function(hr){var Or;return e.isExportAssignment(hr)?(Or=e.tryCast(e.skipOuterExpressions(hr.expression),e.isIdentifier))===null||Or===void 0?void 0:Or.text:void 0})}function ia(Se){var hr;return e.Debug.checkDefined(Se.parent,\"Symbol parent was undefined. Flags: \".concat(e.Debug.formatSymbolFlags(Se.flags),\". \")+\"Declarations: \".concat((hr=Se.declarations)===null||hr===void 0?void 0:hr.map(function(Or){var ki=e.Debug.formatSyntaxKind(Or.kind),dt=e.isInJSFile(Or),la=Or.expression;return(dt?\"[JS]\":\"\")+ki+(la?\" (expression: \".concat(e.Debug.formatSyntaxKind(la.kind),\")\"):\"\")}).join(\", \"),\".\"))}function Xt(Se,hr,Or){var ki=hr.length;if(ki+Or>Se.length)return!1;for(var dt=0;dtd&&J.set(k,l)}else J.set(k,l)}}}var D=V===1,fe=D&&e.getLocalSymbolForExportDefault(X)||X,g=V===0||e.isExternalModuleSymbol(fe)?e.unescapeLeadingUnderscores($):e.getNamesForExportedSymbol(fe,void 0),ne=typeof g==\"string\"?g:g[0],ue=typeof g==\"string\"?void 0:g[1],We=e.stripQuotes(A.name),Fe=K++,Z=e.skipAlias(X,P),Be=X.flags&33554432?void 0:X,ge=A.flags&33554432?void 0:A;(!Be||!ge)&&se.set(Fe,[X,A]),b.add(O(ne,X,e.isExternalModuleNameRelative(We)?void 0:We,P),{id:Fe,symbolTableKey:$,symbolName:ne,capitalizedSymbolName:ue,moduleName:We,moduleFile:y,moduleFileName:y==null?void 0:y.fileName,packageName:k,exportKind:V,targetFlags:Z.flags,isFromPackageJson:L,symbol:Be,moduleSymbol:ge})},get:function(x,X){if(x===ie){var $=b.get(X);return $==null?void 0:$.map(q)}},search:function(x,X,$,A){x===ie&&b.forEach(function(y,V){var L=ve(V),P=L.symbolName,k=L.ambientModuleName,Y=X&&y[0].capitalizedSymbolName||P;if($(Y,y[0].targetFlags)){var U=y.map(q),j=U.filter(function(H,I){return F(H,y[I].packageName)});j.length&&A(j,Y,!!k,V)}})},releaseSymbols:function(){se.clear()},onFileChanged:function(x,X,$){return ee(x)&&ee(X)?!1:ie&&ie!==X.path||$&&e.consumesNodeCoreModules(x)!==e.consumesNodeCoreModules(X)||!e.arrayIsEqualTo(x.moduleAugmentations,X.moduleAugmentations)||!he(x,X)?(R.clear(),!0):(ie=X.path,!1)}};return e.Debug.isDebugging&&Object.defineProperty(R,\"__cache\",{get:function(){return b}}),R;function q(x){if(x.symbol&&x.moduleSymbol)return x;var X=x.id,$=x.exportKind,A=x.targetFlags,y=x.isFromPackageJson,V=x.moduleFileName,L=se.get(X)||e.emptyArray,P=L[0],k=L[1];if(P&&k)return{symbol:P,moduleSymbol:k,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y};var Y=(y?T.getPackageJsonAutoImportProvider():T.getCurrentProgram()).getTypeChecker(),U=x.moduleSymbol||k||e.Debug.checkDefined(x.moduleFile?Y.getMergedSymbol(x.moduleFile.symbol):Y.tryFindAmbientModule(x.moduleName)),j=x.symbol||P||e.Debug.checkDefined($===2?Y.resolveExternalModuleSymbol(U):Y.tryGetMemberInModuleExportsAndProperties(e.unescapeLeadingUnderscores(x.symbolTableKey),U),\"Could not find symbol '\".concat(x.symbolName,\"' by key '\").concat(x.symbolTableKey,\"' in module \").concat(U.name));return se.set(X,[j,U]),{symbol:j,moduleSymbol:U,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y}}function O(x,X,$,A){var y=$||\"\";return\"\".concat(x,\"|\").concat(e.getSymbolId(e.skipAlias(X,A)),\"|\").concat(y)}function ve(x){var X=x.substring(0,x.indexOf(\"|\")),$=x.substring(x.lastIndexOf(\"|\")+1),A=$===\"\"?void 0:$;return{symbolName:X,ambientModuleName:A}}function ee(x){return!x.commonJsModuleIndicator&&!x.externalModuleIndicator&&!x.moduleAugmentations&&!x.ambientModuleNames}function he(x,X){if(!e.arrayIsEqualTo(x.ambientModuleNames,X.ambientModuleNames))return!1;for(var $=-1,A=-1,y=function(Y){var U=function(j){return e.isNonGlobalAmbientModule(j)&&j.name.text===Y};if($=e.findIndex(x.statements,U,$+1),A=e.findIndex(X.statements,U,A+1),x.statements[$]!==X.statements[A])return{value:!1}},V=0,L=X.ambientModuleNames;V=ee.length){var j=w(q,x,e.lastOrUndefined($));j!==void 0&&(P=j)}}while(x!==1);function H(){switch(x){case 43:case 68:!C[X]&&q.reScanSlashToken()===13&&(x=13);break;case 29:X===79&&Y++;break;case 31:Y>0&&Y--;break;case 130:case 150:case 147:case 133:case 151:Y>0&&!F&&(x=79);break;case 15:$.push(x);break;case 18:$.length>0&&$.push(x);break;case 19:if($.length>0){var I=e.lastOrUndefined($);I===15?(x=q.reScanTemplateToken(!1),x===17?$.pop():e.Debug.assertEqual(x,16,\"Should have been a template middle.\")):(e.Debug.assertEqual(I,18,\"Should have been an open brace\"),$.pop())}break;default:if(!e.isKeyword(x))break;(X===24||e.isKeyword(X)&&e.isKeyword(x)&&!le(X,x))&&(x=79)}}return{endOfLineState:P,spans:k}}return{getClassificationsForLine:O,getEncodedLexicalClassifications:ve}}e.createClassifier=a;var C=e.arrayToNumericMap([79,10,8,9,13,108,45,46,21,23,19,110,95],function(q){return q},function(){return!0});function w(q,O,ve){switch(O){case 10:{if(!q.isUnterminated())return;for(var ee=q.getTokenText(),he=ee.length-1,F=0;ee.charCodeAt(he-F)===92;)F++;return(F&1)===0?void 0:ee.charCodeAt(0)===34?3:2}case 3:return q.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(O)){if(!q.isUnterminated())return;switch(O){case 17:return 5;case 14:return 4;default:return e.Debug.fail(\"Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #\"+O)}}return ve===15?6:void 0}}function B(q,O,ve,ee,he){if(ee!==8){q===0&&ve>0&&(q+=ve);var F=O-q;F>0&&he.push(q-ve,F,ee)}}function E(q,O){for(var ve=[],ee=q.spans,he=0,F=0;F=0){var A=x-he;A>0&&ve.push({length:A,classification:e.TokenClass.Whitespace})}ve.push({length:X,classification:Q($)}),he=x+X}var y=O.length-he;return y>0&&ve.push({length:y,classification:e.TokenClass.Whitespace}),{entries:ve,finalLexState:q.endOfLineState}}function Q(q){switch(q){case 1:return e.TokenClass.Comment;case 3:return e.TokenClass.Keyword;case 4:return e.TokenClass.NumberLiteral;case 25:return e.TokenClass.BigIntLiteral;case 5:return e.TokenClass.Operator;case 6:return e.TokenClass.StringLiteral;case 8:return e.TokenClass.Whitespace;case 10:return e.TokenClass.Punctuation;case 2:case 11:case 12:case 13:case 14:case 15:case 16:case 9:case 17:return e.TokenClass.Identifier;default:return}}function le(q,O){if(!e.isAccessibilityModifier(q))return!0;switch(O){case 136:case 149:case 134:case 124:return!0;default:return!1}}function N(q){switch(q){case 3:return{prefix:`\"\\\\\n`};case 2:return{prefix:`'\\\\\n`};case 1:return{prefix:`/*\n`};case 4:return{prefix:\"`\\n\"};case 5:return{prefix:`}\n`,pushTemplate:!0};case 6:return{prefix:\"\",pushTemplate:!0};case 0:return{prefix:\"\"};default:return e.Debug.assertNever(q)}}function p(q){switch(q){case 41:case 43:case 44:case 39:case 40:case 47:case 48:case 49:case 29:case 31:case 32:case 33:case 102:case 101:case 127:case 34:case 35:case 36:case 37:case 50:case 52:case 51:case 55:case 56:case 74:case 73:case 78:case 70:case 71:case 72:case 64:case 65:case 66:case 68:case 69:case 63:case 27:case 60:case 75:case 76:case 77:return!0;default:return!1}}function m(q){switch(q){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}function G(q){if(e.isKeyword(q))return 3;if(p(q)||m(q))return 5;if(q>=18&&q<=78)return 10;switch(q){case 8:return 4;case 9:return 25;case 10:return 6;case 13:return 7;case 7:case 3:case 2:return 1;case 5:case 4:return 8;case 79:default:return e.isTemplateLiteralKind(q)?6:2}}function oe(q,O,ve,ee,he){return J(T(q,O,ve,ee,he))}e.getSemanticClassifications=oe;function f(q,O){switch(O){case 261:case 257:case 258:case 256:case 226:case 213:case 214:q.throwIfCancellationRequested()}}function T(q,O,ve,ee,he){var F=[];return ve.forEachChild(function X($){if(!(!$||!e.textSpanIntersectsWith(he,$.pos,$.getFullWidth()))){if(f(O,$.kind),e.isIdentifier($)&&!e.nodeIsMissing($)&&ee.has($.escapedText)){var A=q.getSymbolAtLocation($),y=A&&K(A,e.getMeaningFromLocation($),q);y&&x($.getStart(ve),$.getEnd(),y)}$.forEachChild(X)}}),{spans:F,endOfLineState:0};function x(X,$,A){var y=$-X;e.Debug.assert(y>0,\"Classification had non-positive length of \".concat(y)),F.push(X),F.push(y),F.push(A)}}e.getEncodedSemanticClassifications=T;function K(q,O,ve){var ee=q.getFlags();if((ee&2885600)!==0)return ee&32?11:ee&384?12:ee&524288?16:ee&1536?O&4||O&1&&b(q)?14:void 0:ee&2097152?K(ve.getAliasedSymbol(q),O,ve):O&2?ee&64?13:ee&262144?15:void 0:void 0}function b(q){return e.some(q.declarations,function(O){return e.isModuleDeclaration(O)&&e.getModuleInstanceState(O)===1})}function se(q){switch(q){case 1:return\"comment\";case 2:return\"identifier\";case 3:return\"keyword\";case 4:return\"number\";case 25:return\"bigint\";case 5:return\"operator\";case 6:return\"string\";case 8:return\"whitespace\";case 9:return\"text\";case 10:return\"punctuation\";case 11:return\"class name\";case 12:return\"enum name\";case 13:return\"interface name\";case 14:return\"module name\";case 15:return\"type parameter name\";case 16:return\"type alias name\";case 17:return\"parameter name\";case 18:return\"doc comment tag name\";case 19:return\"jsx open tag name\";case 20:return\"jsx close tag name\";case 21:return\"jsx self closing tag name\";case 22:return\"jsx attribute\";case 23:return\"jsx text\";case 24:return\"jsx attribute string literal value\";default:return}}function J(q){e.Debug.assert(q.spans.length%3===0);for(var O=q.spans,ve=[],ee=0;ee])*)(\\/>)?)?/im,g=/(\\s)(\\S+)(\\s*)(=)(\\s*)('[^']+'|\"[^\"]+\")/img,ne=O.text.substr(d,D),ue=fe.exec(ne);if(!ue||!ue[3]||!(ue[3]in e.commentPragmas))return!1;var We=d;V(We,ue[1].length),We+=ue[1].length,$(We,ue[2].length,10),We+=ue[2].length,$(We,ue[3].length,21),We+=ue[3].length;for(var Fe=ue[4],Z=We;;){var Be=g.exec(Fe);if(!Be)break;var ge=We+Be.index+Be[1].length;ge>Z&&(V(Z,ge-Z),Z=ge),$(Z,Be[2].length,22),Z+=Be[2].length,Be[3].length&&(V(Z,Be[3].length),Z+=Be[3].length),$(Z,Be[4].length,5),Z+=Be[4].length,Be[5].length&&(V(Z,Be[5].length),Z+=Be[5].length),$(Z,Be[6].length,24),Z+=Be[6].length}We+=ue[4].length,We>Z&&V(Z,We-Z),ue[5]&&($(We,ue[5].length,10),We+=ue[5].length);var Re=d+D;return We=0),g>0){var ne=D||I(d.kind,d);ne&&$(fe,g,ne)}return!0}function H(d){switch(d.parent&&d.parent.kind){case 280:if(d.parent.tagName===d)return 19;break;case 281:if(d.parent.tagName===d)return 20;break;case 279:if(d.parent.tagName===d)return 21;break;case 285:if(d.parent.name===d)return 22;break}}function I(d,D){if(e.isKeyword(d))return 3;if((d===29||d===31)&&D&&e.getTypeArgumentOrTypeParameterList(D.parent))return 10;if(e.isPunctuation(d)){if(D){var fe=D.parent;if(d===63&&(fe.kind===254||fe.kind===167||fe.kind===164||fe.kind===285)||fe.kind===221||fe.kind===219||fe.kind===220||fe.kind===222)return 5}return 10}else{if(d===8)return 4;if(d===9)return 25;if(d===10)return D&&D.parent.kind===285?24:6;if(d===13)return 6;if(e.isTemplateLiteralKind(d))return 6;if(d===11)return 23;if(d===79){if(D){switch(D.parent.kind){case 257:return D.parent.name===D?11:void 0;case 163:return D.parent.name===D?15:void 0;case 258:return D.parent.name===D?13:void 0;case 260:return D.parent.name===D?12:void 0;case 261:return D.parent.name===D?14:void 0;case 164:return D.parent.name===D?e.isThisIdentifier(D)?3:17:void 0}if(e.isConstTypeReference(D.parent))return 3}return 2}}}function l(d){if(!!d&&e.decodedTextSpanIntersectsWith(ee,he,d.pos,d.getFullWidth())){f(q,d.kind);for(var D=0,fe=d.getChildren(O);D0}))return 0;if(ee(function(he){return he.getCallSignatures().length>0})&&!ee(function(he){return he.getProperties().length>0})||se(q))return O===9?11:10}}return O}function T(R,q){return e.isBindingElement(R)&&(R=K(R)),e.isVariableDeclaration(R)?(!e.isSourceFile(R.parent.parent.parent)||e.isCatchClause(R.parent))&&R.getSourceFile()===q:e.isFunctionDeclaration(R)?!e.isSourceFile(R.parent)&&R.getSourceFile()===q:!1}function K(R){for(;;)if(e.isBindingElement(R.parent.parent))R=R.parent.parent;else return R.parent.parent}function b(R){var q=R.parent;return q&&(e.isImportClause(q)||e.isImportSpecifier(q)||e.isNamespaceImport(q))}function se(R){for(;J(R);)R=R.parent;return e.isCallExpression(R.parent)&&R.parent.expression===R}function J(R){return e.isQualifiedName(R.parent)&&R.parent.right===R||e.isPropertyAccessExpression(R.parent)&&R.parent.name===R}var ie=new e.Map([[254,7],[164,6],[167,9],[261,3],[260,1],[299,8],[257,0],[169,11],[256,10],[213,10],[168,11],[172,9],[173,9],[166,9],[258,2],[259,5],[163,4],[296,9],[297,9]])})(w=C.v2020||(C.v2020={}))})(a=e.classifier||(e.classifier={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){function E(Z,Be,ge,Re,ze,Ee,He,rr){if(e.isInReferenceComment(Z,Be)){var Ie=l(Z,Be,Re,ze);return Ie&&p(Ie)}if(e.isInString(Z,Be,ge)){if(!ge||!e.isStringLiteralLike(ge))return;var Ie=oe(Z,ge,Be,Ee.getTypeChecker(),Re,ze,rr);return Q(Ie,ge,Z,ze,Ee,He,Re,rr)}}B.getStringLiteralCompletions=E;function Q(Z,Be,ge,Re,ze,Ee,He,rr){if(Z!==void 0){var Ie=e.createTextSpanFromStringLiteralLikeContent(Be);switch(Z.kind){case 0:return p(Z.paths);case 1:{var _e=e.createSortedArray();return C.getCompletionEntriesFromSymbols(Z.symbols,_e,Be,Be,ge,ge,Re,ze,99,Ee,4,rr,He,void 0),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:Z.hasIndexSignature,optionalReplacementSpan:Ie,entries:_e}}case 2:{var _e=Z.types.map(function(de){return{name:de.value,kindModifiers:\"\",kind:\"string\",sortText:C.SortText.LocationPriority,replacementSpan:e.getReplacementSpanForContextToken(Be)}});return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:Z.isNewIdentifier,optionalReplacementSpan:Ie,entries:_e}}default:return e.Debug.assertNever(Z)}}}function le(Z,Be,ge,Re,ze,Ee,He,rr,Ie){if(!(!Re||!e.isStringLiteralLike(Re))){var _e=oe(Be,Re,ge,ze,Ee,He,Ie);return _e&&N(Z,Re,_e,Be,ze,rr)}}B.getStringLiteralCompletionDetails=le;function N(Z,Be,ge,Re,ze,Ee){switch(ge.kind){case 0:{var He=e.find(ge.paths,function(rr){return rr.name===Z});return He&&C.createCompletionDetails(Z,m(He.extension),He.kind,[e.textPart(Z)])}case 1:{var He=e.find(ge.symbols,function(Ie){return Ie.name===Z});return He&&C.createCompletionDetailsForSymbol(He,ze,Re,Be,Ee)}case 2:return e.find(ge.types,function(rr){return rr.value===Z})?C.createCompletionDetails(Z,\"\",\"type\",[e.textPart(Z)]):void 0;default:return e.Debug.assertNever(ge)}}function p(Z){var Be=!1,ge=!0,Re=Z.map(function(ze){var Ee=ze.name,He=ze.kind,rr=ze.span,Ie=ze.extension;return{name:Ee,kind:He,kindModifiers:m(Ie),sortText:C.SortText.LocationPriority,replacementSpan:rr}});return{isGlobalCompletion:Be,isMemberCompletion:!1,isNewIdentifierLocation:ge,entries:Re}}function m(Z){switch(Z){case\".d.ts\":return\".d.ts\";case\".js\":return\".js\";case\".json\":return\".json\";case\".jsx\":return\".jsx\";case\".ts\":return\".ts\";case\".tsx\":return\".tsx\";case\".d.mts\":return\".d.mts\";case\".mjs\":return\".mjs\";case\".mts\":return\".mts\";case\".d.cts\":return\".d.cts\";case\".cjs\":return\".cjs\";case\".cts\":return\".cts\";case\".tsbuildinfo\":return e.Debug.fail(\"Extension \".concat(\".tsbuildinfo\",\" is unsupported.\"));case void 0:return\"\";default:return e.Debug.assertNever(Z)}}var G;(function(Z){Z[Z.Paths=0]=\"Paths\",Z[Z.Properties=1]=\"Properties\",Z[Z.Types=2]=\"Types\"})(G||(G={}));function oe(Z,Be,ge,Re,ze,Ee,He){var rr=f(Be.parent);switch(rr.kind){case 196:{var Ie=f(rr.parent);switch(Ie.kind){case 178:{var _e=Ie,we=e.findAncestor(rr,function(n){return n.parent===_e});return we?{kind:2,types:J(Re.getTypeArgumentConstraint(we)),isNewIdentifier:!1}:void 0}case 194:var de=Ie,ye=de.indexType,Ae=de.objectType;return e.rangeContainsPosition(ye,ge)?b(Re.getTypeFromTypeNode(Ae)):void 0;case 200:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};case 187:{if(!e.isTypeReferenceNode(Ie.parent))return;var er=T(Ie,rr),ir=J(Re.getTypeArgumentConstraint(Ie)).filter(function(n){return!e.contains(er,n.value)});return{kind:2,types:ir,isNewIdentifier:!1}}default:return}}case 296:return e.isObjectLiteralExpression(rr.parent)&&rr.name===Be?se(Re,rr.parent):Ne();case 207:{var Cr=rr,Ye=Cr.expression,Br=Cr.argumentExpression;return Be===e.skipParentheses(Br)?b(Re.getTypeAtLocation(Ye)):void 0}case 208:case 209:case 285:if(!Fe(Be)&&!e.isImportCall(rr)){var Er=e.SignatureHelp.getArgumentInfoForCompletions(rr.kind===285?rr.parent:Be,ge,Z);return Er?K(Er.invocation,Be,Er,Re):Ne()}case 266:case 272:case 277:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};default:return Ne()}function Ne(){return{kind:2,types:J(e.getContextualTypeFromParent(Be,Re)),isNewIdentifier:!1}}}function f(Z){switch(Z.kind){case 191:return e.walkUpParenthesizedTypes(Z);case 212:return e.walkUpParenthesizedExpressions(Z);default:return Z}}function T(Z,Be){return e.mapDefined(Z.types,function(ge){return ge!==Be&&e.isLiteralTypeNode(ge)&&e.isStringLiteral(ge.literal)?ge.literal.text:void 0})}function K(Z,Be,ge,Re){var ze=!1,Ee=new e.Map,He=[],rr=e.isJsxOpeningLikeElement(Z)?e.Debug.checkDefined(e.findAncestor(Be.parent,e.isJsxAttribute)):Be;Re.getResolvedSignatureForStringLiteralCompletions(Z,rr,He);var Ie=e.flatMap(He,function(_e){if(!(!e.signatureHasRestParameter(_e)&&ge.argumentCount>_e.parameters.length)){var we=_e.getTypeParameterAtPosition(ge.argumentIndex);if(e.isJsxOpeningLikeElement(Z)){var de=Re.getTypeOfPropertyOfType(we,rr.name.text);de&&(we=de)}return ze=ze||!!(we.flags&4),J(we,Ee)}});return{kind:2,types:Ie,isNewIdentifier:ze}}function b(Z){return Z&&{kind:1,symbols:e.filter(Z.getApparentProperties(),function(Be){return!(Be.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(Be.valueDeclaration))}),hasIndexSignature:e.hasIndexSignature(Z)}}function se(Z,Be){var ge=Z.getContextualType(Be);if(!!ge){var Re=Z.getContextualType(Be,4),ze=C.getPropertiesForObjectExpression(ge,Re,Be,Z);return{kind:1,symbols:ze,hasIndexSignature:e.hasIndexSignature(ge)}}}function J(Z,Be){return Be===void 0&&(Be=new e.Map),Z?(Z=e.skipConstraint(Z),Z.isUnion()?e.flatMap(Z.types,function(ge){return J(ge,Be)}):Z.isStringLiteral()&&!(Z.flags&1024)&&e.addToSeen(Be,Z.value)?[Z]:e.emptyArray):e.emptyArray}function ie(Z,Be,ge){return{name:Z,kind:Be,extension:ge}}function R(Z){return ie(Z,\"directory\",void 0)}function q(Z,Be,ge){var Re=fe(Z,Be),ze=Z.length===0?void 0:e.createTextSpan(Be,Z.length);return ge.map(function(Ee){var He=Ee.name,rr=Ee.kind,Ie=Ee.extension;return Math.max(He.indexOf(e.directorySeparator),He.indexOf(e.altDirectorySeparator))!==-1?{name:He,kind:rr,extension:Ie,span:ze}:{name:He,kind:rr,extension:Ie,span:Re}})}function O(Z,Be,ge,Re,ze,Ee){return q(Be.text,Be.getStart(Z)+1,ve(Z,Be,ge,Re,ze,Ee))}function ve(Z,Be,ge,Re,ze,Ee){var He=e.normalizeSlashes(Be.text),rr=Z.path,Ie=e.getDirectoryPath(rr);return g(He)||!ge.baseUrl&&(e.isRootedDiskPath(He)||e.isUrl(He))?he(He,Ie,ge,Re,rr,_e()):P(He,Ie,ge,Re,ze);function _e(){var we=e.isStringLiteralLike(Be)?e.getModeForUsageLocation(Z,Be):void 0;return Ee.importModuleSpecifierEnding===\"js\"||we===e.ModuleKind.ESNext?2:0}}function ee(Z,Be){return Be===void 0&&(Be=0),{extensions:e.flatten(X(Z)),includeExtensionsOption:Be}}function he(Z,Be,ge,Re,ze,Ee){var He=ee(ge,Ee);return ge.rootDirs?A(ge.rootDirs,Z,Be,He,ge,Re,ze):V(Z,Be,He,Re,ze)}function F(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeJs||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function x(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function X(Z){var Be=e.getSupportedExtensions(Z);return F(Z)?e.getSupportedExtensionsWithJsonIfResolveJsonModule(Z,Be):Be}function $(Z,Be,ge,Re){Z=Z.map(function(Ee){return e.normalizePath(e.isRootedDiskPath(Ee)?Ee:e.combinePaths(Be,Ee))});var ze=e.firstDefined(Z,function(Ee){return e.containsPath(Ee,ge,Be,Re)?ge.substr(Ee.length):void 0});return e.deduplicate(Ve(Ve([],Z.map(function(Ee){return e.combinePaths(Ee,ze)}),!0),[ge],!1),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}function A(Z,Be,ge,Re,ze,Ee,He){var rr=ze.project||Ee.getCurrentDirectory(),Ie=!(Ee.useCaseSensitiveFileNames&&Ee.useCaseSensitiveFileNames()),_e=$(Z,rr,ge,Ie);return e.flatMap(_e,function(we){return V(Be,we,Re,Ee,He)})}var y;(function(Z){Z[Z.Exclude=0]=\"Exclude\",Z[Z.Include=1]=\"Include\",Z[Z.ModuleSpecifierCompletion=2]=\"ModuleSpecifierCompletion\"})(y||(y={}));function V(Z,Be,ge,Re,ze,Ee){var He=ge.extensions,rr=ge.includeExtensionsOption;Ee===void 0&&(Ee=[]),Z===void 0&&(Z=\"\"),Z=e.normalizeSlashes(Z),e.hasTrailingDirectorySeparator(Z)||(Z=e.getDirectoryPath(Z)),Z===\"\"&&(Z=\".\"+e.directorySeparator),Z=e.ensureTrailingDirectorySeparator(Z);var Ie=e.resolvePath(Be,Z),_e=e.hasTrailingDirectorySeparator(Ie)?Ie:e.getDirectoryPath(Ie),we=!(Re.useCaseSensitiveFileNames&&Re.useCaseSensitiveFileNames());if(!e.tryDirectoryExists(Re,_e))return Ee;var de=e.tryReadDirectory(Re,_e,He,void 0,[\"./*\"]);if(de){for(var ye=new e.Map,Ae=0,er=de;Ae=er.pos&&Be<=er.end});if(!!He){var rr=Z.text.slice(He.pos,Be),Ie=ne.exec(rr);if(!!Ie){var _e=Ie[1],we=Ie[2],de=Ie[3],ye=e.getDirectoryPath(Z.path),Ae=we===\"path\"?V(de,ye,ee(ge,1),Re,Z.path):we===\"types\"?d(Re,ge,ye,k(de),ee(ge)):e.Debug.fail();return q(de,He.pos+_e.length,Ae)}}}function d(Z,Be,ge,Re,ze,Ee){Ee===void 0&&(Ee=[]);for(var He=new e.Map,rr=e.tryAndIgnoreErrors(function(){return e.getEffectiveTypeRoots(Be,Z)})||e.emptyArray,Ie=0,_e=rr;Ie<_e.length;Ie++){var we=_e[Ie];ir(we)}for(var de=0,ye=e.findPackageJsons(ge,Z);de=2&&Z.charCodeAt(0)===46){var Be=Z.length>=3&&Z.charCodeAt(1)===46?2:1,ge=Z.charCodeAt(Be);return ge===47||ge===92}return!1}var ne=/^(\\/\\/\\/\\s*0},resolvedBeyondLimit:function(){return Wi>C.moduleSpecifierResolutionLimit}}),Mt=Li?\" (\".concat((ct/Li*100).toFixed(1),\"% hit rate)\"):\"\";return(fr=vr.log)===null||fr===void 0||fr.call(vr,\"\".concat(xe,\": resolved \").concat(Wi,\" module specifiers, plus \").concat(Yi,\" ambient and \").concat(ct,\" from cache\").concat(Mt)),(De=vr.log)===null||De===void 0||De.call(vr,\"\".concat(xe,\": response is \").concat(Ui?\"incomplete\":\"complete\")),(gr=vr.log)===null||gr===void 0||gr.call(vr,\"\".concat(xe,\": \").concat(e.timestamp()-Vr)),nt;function xt(ut,Dt,Rt){if(Rt){var Ii=e.codefix.getModuleSpecifierForBestExportInfo(ut,Dt,Oe,Pe,Ar,mr,vr,nr);return Ii&&Yi++,Ii||\"failed\"}var Ki=vi||nr.allowIncompleteCompletions&&Wi\"),Pe=e.createTextSpanFromNode(mr.tagName),Ue={name:Mr,kind:\"class\",kindModifiers:void 0,sortText:C.SortText.LocationPriority};return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,optionalReplacementSpan:Pe,entries:[Ue]}}}function V(xe,vr,mr,Ar,Oe){e.getNameTable(xe).forEach(function(nr,Mr){if(nr!==vr){var Pe=e.unescapeLeadingUnderscores(Mr);!mr.has(Pe)&&e.isIdentifierText(Pe,Ar)&&(mr.add(Pe),e.insertSorted(Oe,{name:Pe,kind:\"warning\",kindModifiers:\"\",sortText:C.SortText.JavascriptIdentifiers,isFromUncheckedFile:!0},ie))}})}function L(xe,vr,mr){return typeof mr==\"object\"?e.pseudoBigIntToString(mr)+\"n\":e.isString(mr)?e.quote(xe,vr,mr):JSON.stringify(mr)}function P(xe,vr,mr){return{name:L(xe,vr,mr),kind:\"string\",kindModifiers:\"\",sortText:C.SortText.LocationPriority}}function k(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt){var xt,ut,Dt,Rt=e.getReplacementSpanForContextToken(mr),Ii,Ki,Fi=We(De),ui,Bt,wt,na=Pe.getTypeChecker(),Ai=De&&oe(De),Oi=De&&Q(De)||fr;if(De&&E(De))Dt=fr?\"this\".concat(Ai?\"?.\":\"\",\"[\").concat(ne(nr,Wi,Ue),\"]\"):\"this\".concat(Ai?\"?.\":\".\").concat(Ue);else if((Oi||Ai)&&Vr){Dt=Oi?fr?\"[\".concat(ne(nr,Wi,Ue),\"]\"):\"[\".concat(Ue,\"]\"):Ue,(Ai||Vr.questionDotToken)&&(Dt=\"?.\".concat(Dt));var ji=e.findChildOfKind(Vr,24,nr)||e.findChildOfKind(Vr,28,nr);if(!ji)return;var Vi=e.startsWith(Ue,Vr.name.text)?Vr.name.end:ji.end;Rt=e.createTextSpanFromBounds(ji.getStart(nr),Vi)}if(Tr&&(Dt===void 0&&(Dt=Ue),Dt=\"{\".concat(Dt,\"}\"),typeof Tr!=\"boolean\"&&(Rt=e.createTextSpanFromNode(Tr,nr))),De&&G(De)&&Vr){Dt===void 0&&(Dt=Ue);var at=e.findPrecedingToken(Vr.pos,nr),At=\"\";at&&e.positionIsASICandidate(at.end,at.parent,nr)&&(At=\";\"),At+=\"(await \".concat(Vr.expression.getText(),\")\"),Dt=fr?\"\".concat(At).concat(Dt):\"\".concat(At).concat(Ai?\"?.\":\".\").concat(Dt),Rt=e.createTextSpanFromBounds(Vr.getStart(nr),Vr.end)}if(N(De)&&(ui=[e.textPart(De.moduleSpecifier)],vi&&(xt=g(Ue,vi,Ar,De,Ui,Yi,Wi),Dt=xt.insertText,Rt=xt.replacementSpan,Ki=Wi.includeCompletionsWithSnippetText?!0:void 0)),(De==null?void 0:De.kind)===64&&(Bt=!0),Wi.includeCompletionsWithClassMemberSnippets&&Wi.includeCompletionsWithInsertText&&ct===3&&Y(xe,Oe)){var ba=void 0;ut=U(Mr,Pe,Yi,Wi,Ue,xe,Oe,Ar,Li),Dt=ut.insertText,Ki=ut.isSnippet,ba=ut.importAdder,Rt=ut.replacementSpan,vr=C.SortText.ClassMemberSnippets,ba!=null&&ba.hasFixes()&&(Bt=!0,Fi=w.ClassMemberSnippet)}if(De&&T(De)&&(Dt=De.insertText,Ki=De.isSnippet,wt=De.labelDetails,Wi.useLabelDetailsInCompletionEntries||(Ue=Ue+wt.detail,wt=void 0),Fi=w.ObjectLiteralMethodSnippet,vr=C.SortText.SortBelow(vr)),nt&&!Mt&&Wi.includeCompletionsWithSnippetText&&Wi.jsxAttributeCompletionStyle&&Wi.jsxAttributeCompletionStyle!==\"none\"){var $a=Wi.jsxAttributeCompletionStyle===\"braces\",Qa=na.getTypeOfSymbolAtLocation(xe,Oe);Wi.jsxAttributeCompletionStyle===\"auto\"&&!(Qa.flags&528)&&!(Qa.flags&1048576&&e.find(Qa.types,function(ai){return!!(ai.flags&528)}))&&(Qa.flags&402653316||Qa.flags&1048576&&e.every(Qa.types,function(ai){return!!(ai.flags&402686084)})?(Dt=\"\".concat(e.escapeSnippetText(Ue),\"=\").concat(e.quote(nr,Wi,\"$1\")),Ki=!0):$a=!0),$a&&(Dt=\"\".concat(e.escapeSnippetText(Ue),\"={$1}\"),Ki=!0)}if(!(Dt!==void 0&&!Wi.includeCompletionsWithInsertText))return(le(De)||N(De))&&(Ii=D(De),Bt=!vi),{name:Ue,kind:e.SymbolDisplay.getSymbolKind(na,xe,Oe),kindModifiers:e.SymbolDisplay.getSymbolModifiers(na,xe),sortText:vr,source:Fi,hasAction:Bt?!0:void 0,isRecommended:ue(xe,gr,na)||void 0,insertText:Dt,replacementSpan:Rt,sourceDisplay:ui,labelDetails:wt,isSnippet:Ki,isPackageJsonImport:m(De)||void 0,isImportStatementCompletion:!!vi||void 0,data:Ii}}function Y(xe,vr){if(e.isInJSFile(vr))return!1;var mr=106500;return!!(xe.flags&mr)&&(e.isClassLike(vr)||vr.parent&&vr.parent.parent&&e.isClassElement(vr.parent)&&vr===vr.parent.name&&e.isClassLike(vr.parent.parent)||vr.parent&&e.isSyntaxList(vr)&&e.isClassLike(vr.parent))}function U(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue){var fr=e.findAncestor(Mr,e.isClassLike);if(!fr)return{insertText:Oe};var De,gr,Vr=Oe,Tr=vr.getTypeChecker(),vi=Mr.getSourceFile(),Ui=d({removeComments:!0,module:mr.module,target:mr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(mr,e.maybeBind(xe,xe.getNewLine)))}),Yi=e.codefix.createImportAdder(vi,vr,Ar,xe),Wi;if(Ar.includeCompletionsWithSnippetText){De=!0;var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=0,nt=j(Pe),Mt=nt.modifiers,xt=nt.span,ut=!!(Mt&128),Dt=[];if(e.codefix.addNewNodeForMemberSymbol(nr,fr,vi,{program:vr,host:xe},Ar,Yi,function(Ii){var Ki=0;ut&&(Ki|=128),e.isClassElement(Ii)&&Tr.getMemberOverrideModifierStatus(fr,Ii)===1&&(Ki|=16384),Dt.length||(Li=Ii.modifierFlagsCache|Ki|Mt),Ii=e.factory.updateModifiers(Ii,Li),Dt.push(Ii)},Wi,2,ut),Dt.length){var Rt=131073;gr=xt,Ue?Vr=Ui.printAndFormatSnippetList(Rt,e.factory.createNodeArray(Dt),vi,Ue):Vr=Ui.printSnippetList(Rt,e.factory.createNodeArray(Dt),vi)}return{insertText:Vr,isSnippet:De,importAdder:Yi,replacementSpan:gr}}function j(xe){if(!xe)return{modifiers:0};var vr=0,mr,Ar;return(Ar=H(xe))&&(vr|=e.modifierToFlag(Ar),mr=e.createTextSpanFromNode(xe)),e.isPropertyDeclaration(xe.parent)&&(vr|=e.modifiersToFlags(xe.parent.modifiers),mr=e.createTextSpanFromNode(xe.parent)),{modifiers:vr,span:mr}}function H(xe){if(e.isModifier(xe))return xe.kind;if(e.isIdentifier(xe)&&xe.originalKeywordKind&&e.isModifierKind(xe.originalKeywordKind))return xe.originalKeywordKind}function I(xe,vr,mr,Ar,Oe,nr,Mr,Pe){var Ue=Mr.includeCompletionsWithSnippetText||void 0,fr=vr,De=mr.getSourceFile(),gr=l(xe,mr,De,Ar,Oe,Mr);if(!!gr){var Vr=d({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(nr,e.maybeBind(Oe,Oe.getNewLine)))});Pe?fr=Vr.printAndFormatSnippetList(80,e.factory.createNodeArray([gr],!0),De,Pe):fr=Vr.printSnippetList(80,e.factory.createNodeArray([gr],!0),De);var Tr=e.createPrinter({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!0}),vi=e.factory.createMethodSignature(void 0,\"\",gr.questionToken,gr.typeParameters,gr.parameters,gr.type),Ui={detail:Tr.printNode(4,vi,De)};return{isSnippet:Ue,insertText:fr,labelDetails:Ui}}}function l(xe,vr,mr,Ar,Oe,nr){var Mr=xe.getDeclarations();if(!!(Mr&&Mr.length)){var Pe=Ar.getTypeChecker(),Ue=Mr[0],fr=e.getSynthesizedDeepClone(e.getNameOfDeclaration(Ue),!1),De=Pe.getWidenedType(Pe.getTypeOfSymbolAtLocation(xe,vr)),gr=e.getQuotePreference(mr,nr),Vr=gr===0?268435456:void 0;switch(Ue.kind){case 166:case 167:case 168:case 169:{var Tr=De.flags&1048576&&De.types.length<10?Pe.getUnionType(De.types,2):De;if(Tr.flags&1048576){var vi=e.filter(Tr.types,function(nt){return Pe.getSignaturesOfType(nt,0).length>0});if(vi.length===1)Tr=vi[0];else return}var Ui=Pe.getSignaturesOfType(Tr,0);if(Ui.length!==1)return;var Yi=Pe.typeToTypeNode(Tr,vr,Vr,e.codefix.getNoopSymbolTrackerWithResolver({program:Ar,host:Oe}));if(!Yi||!e.isFunctionTypeNode(Yi))return;var Wi=void 0;if(nr.includeCompletionsWithSnippetText){var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=Yi.parameters.map(function(nt){return e.factory.createParameterDeclaration(void 0,void 0,nt.dotDotDotToken,nt.name,nt.questionToken,void 0,nt.initializer)});return e.factory.createMethodDeclaration(void 0,void 0,void 0,fr,void 0,void 0,Li,void 0,Wi)}default:return}}}function d(xe){var vr,mr=e.textChanges.createWriter(e.getNewLineCharacter(xe)),Ar=e.createPrinter(xe,mr),Oe=Ke(Ke({},mr),{write:function(fr){return nr(fr,function(){return mr.write(fr)})},nonEscapingWrite:mr.write,writeLiteral:function(fr){return nr(fr,function(){return mr.writeLiteral(fr)})},writeStringLiteral:function(fr){return nr(fr,function(){return mr.writeStringLiteral(fr)})},writeSymbol:function(fr,De){return nr(fr,function(){return mr.writeSymbol(fr,De)})},writeParameter:function(fr){return nr(fr,function(){return mr.writeParameter(fr)})},writeComment:function(fr){return nr(fr,function(){return mr.writeComment(fr)})},writeProperty:function(fr){return nr(fr,function(){return mr.writeProperty(fr)})}});return{printSnippetList:Mr,printAndFormatSnippetList:Ue};function nr(fr,De){var gr=e.escapeSnippetText(fr);if(gr!==fr){var Vr=mr.getTextPos();De();var Tr=mr.getTextPos();vr=e.append(vr||(vr=[]),{newText:gr,span:{start:Vr,length:Tr-Vr}})}else De()}function Mr(fr,De,gr){var Vr=Pe(fr,De,gr);return vr?e.textChanges.applyChanges(Vr,vr):Vr}function Pe(fr,De,gr){return vr=void 0,Oe.clear(),Ar.writeList(fr,De,gr,Oe),Oe.getText()}function Ue(fr,De,gr,Vr){var Tr={text:Pe(fr,De,gr),getLineAndCharacterOfPosition:function(Wi){return e.getLineAndCharacterOfPosition(this,Wi)}},vi=e.getFormatCodeSettingsForWriting(Vr,gr),Ui=e.flatMap(De,function(Wi){var ct=e.textChanges.assignPositionsToNode(Wi);return e.formatting.formatNodeGivenIndentation(ct,Tr,gr.languageVariant,0,0,Ke(Ke({},Vr),{options:vi}))}),Yi=vr?e.stableSort(e.concatenate(Ui,vr),function(Wi,ct){return e.compareTextSpans(Wi.span,ct.span)}):Ui;return e.textChanges.applyChanges(Tr.text,Yi)}}function D(xe){var vr=xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),mr=xe.isFromPackageJson?!0:void 0;if(N(xe)){var Ar={exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,ambientModuleName:vr,fileName:xe.fileName,isPackageJsonImport:mr};return Ar}var Oe={exportName:xe.exportName,exportMapKey:xe.exportMapKey,fileName:xe.fileName,ambientModuleName:xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),isPackageJsonImport:xe.isFromPackageJson?!0:void 0};return Oe}function fe(xe,vr,mr){var Ar=xe.exportName===\"default\",Oe=!!xe.isPackageJsonImport;if(R(xe)){var nr={kind:32,exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return nr}var Mr={kind:4,exportName:xe.exportName,exportMapKey:xe.exportMapKey,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return Mr}function g(xe,vr,mr,Ar,Oe,nr,Mr){var Pe,Ue,fr,De=vr.getSourceFile(),gr=e.createTextSpanFromNode(e.findAncestor(vr,e.or(e.isImportDeclaration,e.isImportEqualsDeclaration))||vr,De),Vr=e.quote(De,Mr,Ar.moduleSpecifier),Tr=Ar.isDefaultExport?1:Ar.exportName===\"export=\"?2:0,vi=Mr.includeCompletionsWithSnippetText?\"$1\":\"\",Ui=e.codefix.getImportKind(De,Tr,nr,!0),Yi=((Ue=(Pe=e.tryCast(vr,e.isImportDeclaration))===null||Pe===void 0?void 0:Pe.importClause)===null||Ue===void 0?void 0:Ue.isTypeOnly)||((fr=e.tryCast(vr,e.isImportEqualsDeclaration))===null||fr===void 0?void 0:fr.isTypeOnly),Wi=ae(vr,mr),ct=Yi?\" \".concat(e.tokenToString(152),\" \"):\" \",Li=Wi?\"\".concat(e.tokenToString(152),\" \"):\"\",nt=Oe?\";\":\"\";switch(Ui){case 3:return{replacementSpan:gr,insertText:\"import\".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi,\" = require(\").concat(Vr,\")\").concat(nt)};case 1:return{replacementSpan:gr,insertText:\"import\".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi,\" from \").concat(Vr).concat(nt)};case 2:return{replacementSpan:gr,insertText:\"import\".concat(ct,\"* as \").concat(e.escapeSnippetText(xe),\" from \").concat(Vr).concat(nt)};case 0:return{replacementSpan:gr,insertText:\"import\".concat(ct,\"{ \").concat(Li).concat(e.escapeSnippetText(xe)).concat(vi,\" } from \").concat(Vr).concat(nt)}}}function ne(xe,vr,mr){return/^\\d+$/.test(mr)?mr:e.quote(xe,vr,mr)}function ue(xe,vr,mr){return xe===vr||!!(xe.flags&1048576)&&mr.getExportSymbolOfSymbol(xe)===vr}function We(xe){if(le(xe))return e.stripQuotes(xe.moduleSymbol.name);if(N(xe))return xe.moduleSpecifier;if((xe==null?void 0:xe.kind)===1)return w.ThisProperty;if((xe==null?void 0:xe.kind)===64)return w.TypeOnlyAlias}function Fe(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt,xt,ut){for(var Dt,Rt=e.timestamp(),Ii=ti(Oe),Ki=e.probablyUsesSemicolons(nr),Fi=Pe.getTypeChecker(),ui=new e.Map,Bt=0;Bt90)?!1:Mr?!0:Wr(ua,yi)},function(ua,Xn,jr,fo){var xs;if(!(Mr&&!e.some(ua,function(su){return Mr.source===e.stripQuotes(su.moduleSymbol.name)}))){var Fo=e.find(ua,Pt);if(!!Fo){var ko=ga.tryResolve(ua,Xn,jr)||{};if(ko!==\"failed\"){var Ao=Fo,Ms;ko!==\"skipped\"&&(xs=ko.exportInfo,Ao=xs===void 0?Fo:xs,Ms=ko.moduleSpecifier);var Bs=Ao.exportKind===1,xc=Bs&&e.getLocalSymbolForExportDefault(Ao.symbol)||Ao.symbol;Qe(xc,{kind:Ms?32:4,moduleSpecifier:Ms,symbolName:Xn,exportMapKey:fo,exportName:Ao.exportKind===2?\"export=\":Ao.symbol.name,fileName:Ao.moduleFileName,isDefaultExport:Bs,moduleSymbol:Ao.moduleSymbol,isFromPackageJson:Ao.isFromPackageJson})}}}}),Dn=ga.skippedAny(),Vi|=ga.resolvedAny()?8:0,Vi|=ga.resolvedBeyondLimit()?16:0});function Pt(ga){var ua=e.tryCast(ga.moduleSymbol.valueDeclaration,e.isSourceFile);if(!ua){var Xn=e.stripQuotes(ga.moduleSymbol.name);return e.JsTyping.nodeCoreModules.has(Xn)&&e.startsWith(Xn,\"node:\")!==e.shouldUseUriStyleNodeCoreModules(mr,xe)?!1:pt?pt.allowsImportingAmbientModule(ga.moduleSymbol,kn(ga.isFromPackageJson)):!0}return e.isImportableFile(ga.isFromPackageJson?Hr:xe,mr,ua,nr,pt,kn(ga.isFromPackageJson),qi)}}function Qe(Ji,ce){var Rr=e.getSymbolId(Ji);pn[Rr]!==C.SortText.GlobalsOrKeywords&&(Ba[ka.length]=ce,pn[Rr]=na?C.SortText.LocationPriority:C.SortText.AutoImportSuggestions,ka.push(Ji))}function Gr(Ji,ce){e.isInJSFile(Ai)||Ji.forEach(function(Rr){if(!!S(Rr)){var yi=Er(Rr,e.getEmitScriptTarget(Ar),void 0,0,!1);if(!!yi){var qi=yi.name,je=I(Rr,qi,ce,xe,Pe,Ar,nr,Ue);if(!!je){var Hr=Ke({kind:128},je);Vi|=32,Ba[ka.length]=Hr,ka.push(Rr)}}}})}function S(Ji){return!!(Ji.flags&8196)}function Ce(Ji,ce,Rr){for(var yi=Ji;yi&&!e.positionBelongsToNode(yi,ce,Rr);)yi=yi.parent;return yi}function qe(Ji){var ce=e.timestamp(),Rr=Si(Ji)||Go(Ji)||Vc(Ji)||br(Ji)||e.isBigIntLiteral(Ji);return vr(\"getCompletionsAtPosition: isCompletionListBlocker: \"+(e.timestamp()-ce)),Rr}function br(Ji){if(Ji.kind===11)return!0;if(Ji.kind===31&&Ji.parent){if(Ai===Ji.parent&&(Ai.kind===280||Ai.kind===279))return!1;if(Ji.parent.kind===280)return Ai.parent.kind!==280;if(Ji.parent.kind===281||Ji.parent.kind===279)return!!Ji.parent.parent&&Ji.parent.parent.kind===278}return!1}function Zr(){if(ut){var Ji=ut.parent.kind,ce=wr(ut);switch(ce){case 27:return Ji===208||Ji===171||Ji===209||Ji===204||Ji===221||Ji===179||Ji===205;case 20:return Ji===208||Ji===171||Ji===209||Ji===212||Ji===191;case 22:return Ji===204||Ji===176||Ji===162;case 141:case 142:case 100:return!0;case 24:return Ji===261;case 18:return Ji===257||Ji===205;case 63:return Ji===254||Ji===221;case 15:return Ji===223;case 16:return Ji===233;case 131:return Ji===169||Ji===297;case 41:return Ji===169}if(yr(ce))return!0}return!1}function Si(Ji){return(e.isRegularExpressionLiteral(Ji)||e.isStringTextContainingNode(Ji))&&(e.rangeContainsPositionExclusive(e.createTextRangeFromSpan(e.createTextSpanFromNode(Ji)),Oe)||Oe===Ji.end&&(!!Ji.isUnterminated||e.isRegularExpressionLiteral(Ji)))}function Pi(){var Ji=Di(ut);if(!Ji)return 0;var ce=e.isIntersectionTypeNode(Ji.parent)?Ji.parent:void 0,Rr=ce||Ji,yi=wi(Rr,De);if(!yi)return 0;var qi=De.getTypeFromTypeNode(Rr),je=qr(yi,De),Hr=qr(qi,De),pt=new e.Set;return Hr.forEach(function(Pt){return pt.add(Pt.escapedName)}),ka=e.concatenate(ka,e.filter(je,function(Pt){return!pt.has(Pt.escapedName)})),Qa=0,ji=!0,1}function Qi(){var Ji=ka.length,ce=Cr(ut);if(!ce)return 0;Qa=0;var Rr,yi;if(ce.kind===205){var qi=_r(ce,De);if(qi===void 0)return ce.flags&33554432?2:(ai=!0,0);var je=De.getContextualType(ce,4),Hr=(je||qi).getStringIndexType(),pt=(je||qi).getNumberIndexType();if(ji=!!Hr||!!pt,Rr=mi(qi,je,ce,De),yi=ce.properties,Rr.length===0&&!pt)return ai=!0,0}else{e.Debug.assert(ce.kind===201),ji=!1;var Pt=e.getRootDeclaration(ce.parent);if(!e.isVariableLike(Pt))return e.Debug.fail(\"Root declaration is not variable-like.\");var ga=e.hasInitializer(Pt)||!!e.getEffectiveTypeAnnotationNode(Pt)||Pt.parent.parent.kind===244;if(!ga&&Pt.kind===164&&(e.isExpression(Pt.parent)?ga=!!De.getContextualType(Pt.parent):(Pt.parent.kind===169||Pt.parent.kind===173)&&(ga=e.isExpression(Pt.parent.parent)&&!!De.getContextualType(Pt.parent.parent))),ga){var ua=De.getTypeAtLocation(ce);if(!ua)return 2;Rr=De.getPropertiesOfType(ua).filter(function(jr){return De.isPropertyAccessible(ce,!1,!1,ua,jr)}),yi=ce.elements}}if(Rr&&Rr.length>0){var Xn=Xs(Rr,e.Debug.checkDefined(yi));ka=e.concatenate(ka,Xn),hs(),ce.kind===205&&nr.includeCompletionsWithObjectLiteralMethodSnippets&&nr.includeCompletionsWithInsertText&&(ps(Ji),Gr(Xn,ce))}return 1}function Ct(){if(!ut)return 0;var Ji=ut.kind===18||ut.kind===27?e.tryCast(ut.parent,e.isNamedImportsOrExports):e.isTypeKeywordTokenOrIdentifier(ut)?e.tryCast(ut.parent.parent,e.isNamedImportsOrExports):void 0;if(!Ji)return 0;e.isTypeKeywordTokenOrIdentifier(ut)||(Oi=8);var ce=(Ji.kind===269?Ji.parent.parent:Ji.parent).moduleSpecifier;if(!ce)return ji=!0,Ji.kind===269?2:0;var Rr=De.getSymbolAtLocation(ce);if(!Rr)return ji=!0,2;Qa=3,ji=!1;var yi=De.getExportsAndPropertiesOfModule(Rr),qi=new e.Set(Ji.elements.filter(function(Hr){return!ds(Hr)}).map(function(Hr){return(Hr.propertyName||Hr.name).escapedText})),je=yi.filter(function(Hr){return Hr.escapedName!==\"default\"&&!qi.has(Hr.escapedName)});return ka=e.concatenate(ka,je),je.length||(Oi=0),1}function sa(){var Ji,ce=ut&&(ut.kind===18||ut.kind===27)?e.tryCast(ut.parent,e.isNamedExports):void 0;if(!ce)return 0;var Rr=e.findAncestor(ce,e.or(e.isSourceFile,e.isModuleDeclaration));return Qa=5,ji=!1,(Ji=Rr.locals)===null||Ji===void 0||Ji.forEach(function(yi,qi){var je,Hr;ka.push(yi),!((Hr=(je=Rr.symbol)===null||je===void 0?void 0:je.exports)===null||Hr===void 0)&&Hr.has(qi)&&(pn[e.getSymbolId(yi)]=C.SortText.OptionalMember)}),1}function en(){var Ji=si(mr,ut,Ai,Oe);if(!Ji)return 0;if(Qa=3,ji=!0,Oi=ut.kind===41?0:e.isClassLike(Ji)?2:3,!e.isClassLike(Ji))return 1;var ce=ut.kind===26?ut.parent.parent:ut.parent,Rr=e.isClassElement(ce)?e.getEffectiveModifierFlags(ce):0;if(ut.kind===79&&!ds(ut))switch(ut.getText()){case\"private\":Rr=Rr|8;break;case\"static\":Rr=Rr|32;break;case\"override\":Rr=Rr|16384;break}if(e.isClassStaticBlockDeclaration(ce)&&(Rr|=32),!(Rr&8)){var yi=e.isClassLike(Ji)&&Rr&16384?e.singleElementArray(e.getEffectiveBaseTypeNode(Ji)):e.getAllSuperTypeNodes(Ji),qi=e.flatMap(yi,function(je){var Hr=De.getTypeAtLocation(je);return Rr&32?(Hr==null?void 0:Hr.symbol)&&De.getPropertiesOfType(De.getTypeOfSymbolAtLocation(Hr.symbol,Ji)):Hr&&De.getPropertiesOfType(Hr)});ka=e.concatenate(ka,Qs(qi,Ji.members,Rr))}return 1}function Wa(Ji){return!!Ji.parent&&e.isParameter(Ji.parent)&&e.isConstructorDeclaration(Ji.parent.parent)&&(e.isParameterPropertyModifier(Ji.kind)||e.isDeclarationName(Ji))}function qn(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 20:case 27:return e.isConstructorDeclaration(Ji.parent)?Ji.parent:void 0;default:if(Wa(Ji))return ce.parent}}}function mo(Ji){if(Ji){var ce,Rr=e.findAncestor(Ji.parent,function(yi){return e.isClassLike(yi)?\"quit\":e.isFunctionLikeDeclaration(yi)&&ce===yi.body?!0:(ce=yi,!1)});return Rr&&Rr}}function So(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 31:case 30:case 43:case 79:case 206:case 286:case 285:case 287:if(ce&&(ce.kind===279||ce.kind===280)){if(Ji.kind===31){var Rr=e.findPrecedingToken(Ji.pos,mr,void 0);if(!ce.typeArguments||Rr&&Rr.kind===43)break}return ce}else if(ce.kind===285)return ce.parent.parent;break;case 10:if(ce&&(ce.kind===285||ce.kind===287))return ce.parent.parent;break;case 19:if(ce&&ce.kind===288&&ce.parent&&ce.parent.kind===285)return ce.parent.parent.parent;if(ce&&ce.kind===287)return ce.parent.parent;break}}}function Go(Ji){var ce=Ji.parent,Rr=ce.kind;switch(Ji.kind){case 27:return Rr===254||Kc(Ji)||Rr===237||Rr===260||Pc(Rr)||Rr===258||Rr===202||Rr===259||e.isClassLike(ce)&&!!ce.typeParameters&&ce.typeParameters.end>=Ji.pos;case 24:return Rr===202;case 58:return Rr===203;case 22:return Rr===202;case 20:return Rr===292||Pc(Rr);case 18:return Rr===260;case 29:return Rr===257||Rr===226||Rr===258||Rr===259||e.isFunctionLikeKind(Rr);case 124:return Rr===167&&!e.isClassLike(ce.parent);case 25:return Rr===164||!!ce.parent&&ce.parent.kind===202;case 123:case 121:case 122:return Rr===164&&!e.isConstructorDeclaration(ce.parent);case 127:return Rr===270||Rr===275||Rr===268;case 136:case 149:return!Xi(Ji);case 79:if(Rr===270&&Ji===ce.name&&Ji.text===\"type\")return!1;break;case 84:case 92:case 118:case 98:case 113:case 100:case 119:case 85:case 137:return!0;case 152:return Rr!==270;case 41:return e.isFunctionLike(Ji.parent)&&!e.isMethodDeclaration(Ji.parent)}if(yr(wr(Ji))&&Xi(Ji)||Wa(Ji)&&(!e.isIdentifier(Ji)||e.isParameterPropertyModifier(wr(Ji))||ds(Ji)))return!1;switch(wr(Ji)){case 126:case 84:case 85:case 135:case 92:case 98:case 118:case 119:case 121:case 122:case 123:case 124:case 113:return!0;case 131:return e.isPropertyDeclaration(Ji.parent)}var yi=e.findAncestor(Ji.parent,e.isClassLike);if(yi&&Ji===xt&&ys(Ji,Oe))return!1;var qi=e.getAncestor(Ji.parent,167);if(qi&&Ji!==xt&&e.isClassLike(xt.parent.parent)&&Oe<=xt.end){if(ys(Ji,xt.end))return!1;if(Ji.kind!==63&&(e.isInitializedProperty(qi)||e.hasType(qi)))return!0}return e.isDeclarationName(Ji)&&!e.isShorthandPropertyAssignment(Ji.parent)&&!e.isJsxAttribute(Ji.parent)&&!(e.isClassLike(Ji.parent)&&(Ji!==xt||Oe>xt.end))}function ys(Ji,ce){return Ji.kind!==63&&(Ji.kind===26||!e.positionsAreOnSameLine(Ji.end,ce,mr))}function Pc(Ji){return e.isFunctionLikeKind(Ji)&&Ji!==171}function Vc(Ji){if(Ji.kind===8){var ce=Ji.getFullText();return ce.charAt(ce.length-1)===\".\"}return!1}function Kc(Ji){return Ji.parent.kind===255&&!e.isPossiblyTypeArgumentPosition(Ji,mr,De)}function Xs(Ji,ce){if(ce.length===0)return Ji;for(var Rr=new e.Set,yi=new e.Set,qi=0,je=ce;qi=0&&!b(A,y[V],115);V--);return e.forEach(m($.statement),function(L){oe($,L)&&b(A,L.getFirstToken(),81,86)}),A}function J($){var A=f($);if(A)switch(A.kind){case 242:case 243:case 244:case 240:case 241:return se(A);case 249:return ie(A)}}function ie($){var A=[];return b(A,$.getFirstToken(),107),e.forEach($.caseBlock.clauses,function(y){b(A,y.getFirstToken(),82,88),e.forEach(m(y),function(V){oe($,V)&&b(A,V.getFirstToken(),81)})}),A}function R($,A){var y=[];if(b(y,$.getFirstToken(),111),$.catchClause&&b(y,$.catchClause.getFirstToken(),83),$.finallyBlock){var V=e.findChildOfKind($,96,A);b(y,V,96)}return y}function q($,A){var y=p($);if(!!y){var V=[];return e.forEach(N(y),function(L){V.push(e.findChildOfKind(L,109,A))}),e.isFunctionBlock(y)&&e.forEachReturnStatement(y,function(L){V.push(e.findChildOfKind(L,105,A))}),V}}function O($,A){var y=e.getContainingFunction($);if(!!y){var V=[];return e.forEachReturnStatement(e.cast(y.body,e.isBlock),function(L){V.push(e.findChildOfKind(L,105,A))}),e.forEach(N(y.body),function(L){V.push(e.findChildOfKind(L,109,A))}),V}}function ve($){var A=e.getContainingFunction($);if(!!A){var y=[];return A.modifiers&&A.modifiers.forEach(function(V){b(y,V,131)}),e.forEachChild(A,function(V){he(V,function(L){e.isAwaitExpression(L)&&b(y,L.getFirstToken(),132)})}),y}}function ee($){var A=e.getContainingFunction($);if(!!A){var y=[];return e.forEachChild(A,function(V){he(V,function(L){e.isYieldExpression(L)&&b(y,L.getFirstToken(),125)})}),y}}function he($,A){A($),!e.isFunctionLike($)&&!e.isClassLike($)&&!e.isInterfaceDeclaration($)&&!e.isModuleDeclaration($)&&!e.isTypeAliasDeclaration($)&&!e.isTypeNode($)&&e.forEachChild($,function(y){return he(y,A)})}function F($,A){for(var y=x($,A),V=[],L=0;L=P.end;U--)if(!e.isWhiteSpaceSingleLine(A.text.charCodeAt(U))){Y=!1;break}if(Y){V.push({fileName:A.fileName,textSpan:e.createTextSpanFromBounds(P.getStart(),k.end),kind:\"reference\"}),L++;continue}}V.push(B(y[L],A))}return V}function x($,A){for(var y=[];e.isIfStatement($.parent)&&$.parent.elseStatement===$;)$=$.parent;for(;;){var V=$.getChildren(A);b(y,V[0],99);for(var L=V.length-1;L>=0&&!b(y,V[L],91);L--);if(!$.elseStatement||!e.isIfStatement($.elseStatement))break;$=$.elseStatement}return y}function X($,A){return!!e.findAncestor($.parent,function(y){return e.isLabeledStatement(y)?y.label.escapedText===A:\"quit\"})}})(a=e.DocumentHighlights||(e.DocumentHighlights={}))})(ke||(ke={}));var ke;(function(e){function a(Q){return!!Q.sourceFile}function C(Q,le){return w(Q,le)}e.createDocumentRegistry=C;function w(Q,le,N){le===void 0&&(le=\"\");var p=new e.Map,m=e.createGetCanonicalFileName(!!Q);function G(){var O=e.arrayFrom(p.keys()).filter(function(ve){return ve&&ve.charAt(0)===\"_\"}).map(function(ve){var ee=p.get(ve),he=[];return ee.forEach(function(F,x){a(F)?he.push({name:x,scriptKind:F.sourceFile.scriptKind,refCount:F.languageServiceRefCount}):F.forEach(function(X,$){return he.push({name:x,scriptKind:$,refCount:X.languageServiceRefCount})})}),he.sort(function(F,x){return x.refCount-F.refCount}),{bucket:ve,sourceFiles:he}});return JSON.stringify(O,void 0,2)}function oe(O){return typeof O.getCompilationSettings==\"function\"?O.getCompilationSettings():O}function f(O,ve,ee,he,F){var x=e.toPath(O,le,m),X=E(oe(ve));return T(O,x,ve,X,ee,he,F)}function T(O,ve,ee,he,F,x,X){return J(O,ve,ee,he,F,x,!0,X)}function K(O,ve,ee,he,F){var x=e.toPath(O,le,m),X=E(oe(ve));return b(O,x,ve,X,ee,he,F)}function b(O,ve,ee,he,F,x,X){return J(O,ve,oe(ee),he,F,x,!1,X)}function se(O,ve){var ee=a(O)?O:O.get(e.Debug.checkDefined(ve,\"If there are more than one scriptKind's for same document the scriptKind should be provided\"));return e.Debug.assert(ve===void 0||!ee||ee.sourceFile.scriptKind===ve,\"Script kind should match provided ScriptKind:\".concat(ve,\" and sourceFile.scriptKind: \").concat(ee==null?void 0:ee.sourceFile.scriptKind,\", !entry: \").concat(!ee)),ee}function J(O,ve,ee,he,F,x,X,$){var A,y,V,L;$=e.ensureScriptKind(O,$);var P=oe(ee),k=ee===P?void 0:ee,Y=$===6?100:e.getEmitScriptTarget(P),U={languageVersion:Y,impliedNodeFormat:k&&e.getImpliedNodeFormatForFile(ve,(L=(V=(y=(A=k.getCompilerHost)===null||A===void 0?void 0:A.call(k))===null||y===void 0?void 0:y.getModuleResolutionCache)===null||V===void 0?void 0:V.call(y))===null||L===void 0?void 0:L.getPackageJsonInfoCache(),k,P),setExternalModuleIndicator:e.getSetExternalModuleIndicator(P)},j=p.size,H=e.getOrUpdate(p,he,function(){return new e.Map});if(e.tracing){p.size>j&&e.tracing.instant(\"session\",\"createdDocumentRegistryBucket\",{configFilePath:P.configFilePath,key:he});var I=!e.isDeclarationFileName(ve)&&e.forEachEntry(p,function(g,ne){return ne!==he&&g.has(ve)&&ne});I&&e.tracing.instant(\"session\",\"documentRegistryBucketOverlap\",{path:ve,key1:I,key2:he})}var l=H.get(ve),d=l&&se(l,$);if(!d&&N){var D=N.getDocument(he,ve);D&&(e.Debug.assert(X),d={sourceFile:D,languageServiceRefCount:0},fe())}if(d)d.sourceFile.version!==x&&(d.sourceFile=e.updateLanguageServiceSourceFile(d.sourceFile,F,x,F.getChangeRange(d.sourceFile.scriptSnapshot)),N&&N.setDocument(he,ve,d.sourceFile)),X&&d.languageServiceRefCount++;else{var D=e.createLanguageServiceSourceFile(O,F,U,x,!1,$);N&&N.setDocument(he,ve,D),d={sourceFile:D,languageServiceRefCount:1},fe()}return e.Debug.assert(d.languageServiceRefCount!==0),d.sourceFile;function fe(){if(!l)H.set(ve,d);else if(a(l)){var g=new e.Map;g.set(l.sourceFile.scriptKind,l),g.set($,d),H.set(ve,g)}else l.set($,d)}}function ie(O,ve,ee){var he=e.toPath(O,le,m),F=E(ve);return R(he,F,ee)}function R(O,ve,ee){var he=e.Debug.checkDefined(p.get(ve)),F=he.get(O),x=se(F,ee);x.languageServiceRefCount--,e.Debug.assert(x.languageServiceRefCount>=0),x.languageServiceRefCount===0&&(a(F)?he.delete(O):(F.delete(ee),F.size===1&&he.set(O,e.firstDefinedIterator(F.values(),e.identity))))}function q(O,ve){return e.arrayFrom(p.entries(),function(ee){var he=ee[0],F=ee[1],x=F.get(O),X=x&&se(x,ve);return[he,X&&X.languageServiceRefCount]})}return{acquireDocument:f,acquireDocumentWithKey:T,updateDocument:K,updateDocumentWithKey:b,releaseDocument:ie,releaseDocumentWithKey:R,getLanguageServiceRefCounts:q,reportStats:G,getKeyForCompilationSettings:E}}e.createDocumentRegistryInternal=w;function B(Q){var le;if(Q===null||typeof Q!=\"object\")return\"\"+Q;if(e.isArray(Q))return\"[\".concat((le=e.map(Q,function(m){return B(m)}))===null||le===void 0?void 0:le.join(\",\"),\"]\");var N=\"{\";for(var p in Q)e.hasOwnProperty.call(Q,p)&&(N+=\"\".concat(p,\": \").concat(B(Q[p])));return N+\"}\"}function E(Q){return e.sourceFileAffectingCompilerOptions.map(function(le){return B(e.getCompilerOptionValue(Q,le))}).join(\"|\")+(Q.pathsBasePath?\"|\".concat(Q.pathsBasePath):void 0)}})(ke||(ke={}));var ke;(function(e){var a;(function(C){function w(ve,ee,he,F){var x=m(ve,he,F);return function(X,$,A){var y=Q(ve,ee,x,$,he,F),V=y.directImports,L=y.indirectUsers;return Ke({indirectUsers:L},le(V,X,$.exportKind,he,A))}}C.createImportTracker=w;var B;(function(ve){ve[ve.Named=0]=\"Named\",ve[ve.Default=1]=\"Default\",ve[ve.ExportEquals=2]=\"ExportEquals\"})(B=C.ExportKind||(C.ExportKind={}));var E;(function(ve){ve[ve.Import=0]=\"Import\",ve[ve.Export=1]=\"Export\"})(E=C.ImportExport||(C.ImportExport={}));function Q(ve,ee,he,F,x,X){var $=F.exportingModuleSymbol,A=F.exportKind,y=e.nodeSeenTracker(),V=e.nodeSeenTracker(),L=[],P=!!$.globalExports,k=P?void 0:[];return U($),{directImports:L,indirectUsers:Y()};function Y(){if(P)return ve;if($.declarations)for(var D=0,fe=$.declarations;D2&&(e.Debug.assert(U===void 0),j+=1,H-=1),e.createTextSpanFromBounds(j,H)}function A(k){return k.kind===0?k.textSpan:$(k.node,k.node.getSourceFile())}C.getTextSpanOfEntry=A;function y(k){var Y=e.getDeclarationFromName(k);return!!Y&&L(Y)||k.kind===88||e.isWriteAccess(k)}function V(k,Y){var U;if(!Y)return!1;var j=e.getDeclarationFromName(k)||(k.kind===88?k.parent:e.isLiteralComputedPropertyDeclarationName(k)||k.kind===134&&e.isConstructorDeclaration(k.parent)?k.parent.parent:void 0),H=j&&e.isBinaryExpression(j)?j.left:void 0;return!!(j&&((U=Y.declarations)===null||U===void 0?void 0:U.some(function(I){return I===j||I===H})))}function L(k){if(k.flags&16777216)return!0;switch(k.kind){case 221:case 203:case 257:case 226:case 88:case 260:case 299:case 275:case 267:case 265:case 270:case 258:case 338:case 345:case 285:case 261:case 264:case 268:case 274:case 164:case 297:case 259:case 163:return!0;case 296:return!e.isArrayLiteralOrObjectLiteralDestructuringPattern(k.parent);case 256:case 213:case 171:case 169:case 172:case 173:return!!k.body;case 254:case 167:return!!k.initializer||e.isCatchClause(k.parent);case 168:case 166:case 347:case 340:return!1;default:return e.Debug.failBadSyntaxKind(k)}}var P;(function(k){function Y(Oe,nr,Mr,Pe,Ue,fr,De){var gr,Vr;if(fr===void 0&&(fr={}),De===void 0&&(De=new e.Set(Pe.map(function(Rt){return Rt.fileName}))),nr=U(nr,fr),e.isSourceFile(nr)){var Tr=e.GoToDefinition.getReferenceAtPosition(nr,Oe,Mr);if(!(Tr!=null&&Tr.file))return;var vi=Mr.getTypeChecker().getMergedSymbol(Tr.file.symbol);if(vi)return fe(Mr,vi,!1,Pe,De);var Ui=Mr.getFileIncludeReasons();return Ui?[{definition:{type:5,reference:Tr.reference,file:nr},references:H(Tr.file,Ui,Mr)||e.emptyArray}]:void 0}if(!fr.implementations){var Yi=ne(nr,Pe,Ue);if(Yi)return Yi}var Wi=Mr.getTypeChecker(),ct=Wi.getSymbolAtLocation(e.isConstructorDeclaration(nr)&&nr.parent.name||nr);if(!ct){if(!fr.implementations&&e.isStringLiteralLike(nr)){if(e.isModuleSpecifierLike(nr)){var Ui=Mr.getFileIncludeReasons(),Li=(Vr=(gr=nr.getSourceFile().resolvedModules)===null||gr===void 0?void 0:gr.get(nr.text,e.getModeForUsageLocation(nr.getSourceFile(),nr)))===null||Vr===void 0?void 0:Vr.resolvedFileName,nt=Li?Mr.getSourceFile(Li):void 0;if(nt)return[{definition:{type:4,node:nr},references:H(nt,Ui,Mr)||e.emptyArray}]}return ae(nr,Pe,Wi,Ue)}return}if(ct.escapedName===\"export=\")return fe(Mr,ct.parent,!1,Pe,De);var Mt=l(ct,Mr,Pe,Ue,fr,De);if(Mt&&!(ct.flags&33554432))return Mt;var xt=I(nr,ct,Wi),ut=xt&&l(xt,Mr,Pe,Ue,fr,De),Dt=ue(ct,nr,Pe,De,Wi,Ue,fr);return d(Mr,Mt,Dt,ut)}k.getReferencedSymbolsForNode=Y;function U(Oe,nr){return nr.use===1?Oe=e.getAdjustedReferenceLocation(Oe):nr.use===2&&(Oe=e.getAdjustedRenameLocation(Oe)),Oe}k.getAdjustedNode=U;function j(Oe,nr,Mr,Pe){var Ue,fr;Pe===void 0&&(Pe=new e.Set(Mr.map(function(Tr){return Tr.fileName})));var De=(Ue=nr.getSourceFile(Oe))===null||Ue===void 0?void 0:Ue.symbol;if(De)return((fr=fe(nr,De,!1,Mr,Pe)[0])===null||fr===void 0?void 0:fr.references)||e.emptyArray;var gr=nr.getFileIncludeReasons(),Vr=nr.getSourceFile(Oe);return Vr&&gr&&H(Vr,gr,nr)||e.emptyArray}k.getReferencesForFileName=j;function H(Oe,nr,Mr){for(var Pe,Ue=nr.get(Oe.path)||e.emptyArray,fr=0,De=Ue;fr=0&&!(gr>Mr.end);){var Vr=gr+De;(gr===0||!e.isIdentifierPart(Ue.charCodeAt(gr-1),99))&&(Vr===fr||!e.isIdentifierPart(Ue.charCodeAt(Vr),99))&&Pe.push(gr),gr=Ue.indexOf(nr,gr+De+1)}return Pe}function Ye(Oe,nr){var Mr=Oe.getSourceFile(),Pe=nr.text,Ue=e.mapDefined(ir(Mr,Pe,Oe),function(fr){return fr===nr||e.isJumpStatementTarget(fr)&&e.getTargetLabel(fr,Pe)===nr?E(fr):void 0});return[{definition:{type:1,node:nr},references:Ue}]}function Br(Oe,nr){switch(Oe.kind){case 80:if(e.isJSDocMemberName(Oe.parent))return!0;case 79:return Oe.text.length===nr.length;case 14:case 10:{var Mr=Oe;return(e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Mr)||e.isNameOfModuleDeclaration(Oe)||e.isExpressionOfExternalModuleImportEqualsDeclaration(Oe)||e.isCallExpression(Oe.parent)&&e.isBindableObjectDefinePropertyCall(Oe.parent)&&Oe.parent.arguments[1]===Oe)&&Mr.text.length===nr.length}case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Oe)&&Oe.text.length===nr.length;case 88:return nr.length===7;default:return!1}}function Er(Oe,nr){var Mr=e.flatMap(Oe,function(Pe){return nr.throwIfCancellationRequested(),e.mapDefined(ir(Pe,\"meta\",Pe),function(Ue){var fr=Ue.parent;if(e.isImportMeta(fr))return E(fr)})});return Mr.length?[{definition:{type:2,node:Mr[0].node},references:Mr}]:void 0}function Ne(Oe,nr,Mr,Pe){var Ue=e.flatMap(Oe,function(fr){return Mr.throwIfCancellationRequested(),e.mapDefined(ir(fr,e.tokenToString(nr),fr),function(De){if(De.kind===nr&&(!Pe||Pe(De)))return E(De)})});return Ue.length?[{definition:{type:2,node:Ue[0].node},references:Ue}]:void 0}function n(Oe,nr,Mr,Pe){return Pe===void 0&&(Pe=!0),Mr.cancellationToken.throwIfCancellationRequested(),lr(Oe,Oe,nr,Mr,Pe)}function lr(Oe,nr,Mr,Pe,Ue){if(!!Pe.markSearchedSymbols(nr,Mr.allSearchSymbols))for(var fr=0,De=Cr(nr,Mr.text,Oe);fr0;Ae--){var de=we[Ae];he(Ie,de)}return[we.length-1,we[0]]}function he(Ie,_e){var we=q(Ie,_e);J(p,we),N.push(p),m.push(G),G=void 0,p=we}function F(){p.children&&(y(p.children,p),I(p.children)),p=N.pop(),G=m.pop()}function x(Ie,_e,we){he(Ie,we),A(_e),F()}function X(Ie){Ie.initializer&&He(Ie.initializer)?(he(Ie),e.forEachChild(Ie.initializer,A),F()):x(Ie,Ie.initializer)}function $(Ie){return!e.hasDynamicName(Ie)||Ie.kind!==221&&e.isPropertyAccessExpression(Ie.name.expression)&&e.isIdentifier(Ie.name.expression.expression)&&e.idText(Ie.name.expression.expression)===\"Symbol\"}function A(Ie){var _e;if(Q.throwIfCancellationRequested(),!(!Ie||e.isToken(Ie)))switch(Ie.kind){case 171:var we=Ie;x(we,we.body);for(var de=0,ye=we.parameters;de0&&(he(Ur,or),e.forEachChild(Ur.right,A),F()):e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,or):(he(Ur,or),x(Ie,Ur.right,ii.name),F()),ve(pe);return}case 7:case 9:{var qr=Ie,or=wr===7?qr.arguments[0]:qr.arguments[0].expression,si=qr.arguments[1],Di=ee(Ie,or),pe=Di[0],wi=Di[1];he(Ie,wi),he(Ie,e.setTextRange(e.factory.createIdentifier(si.text),si)),A(Ie.arguments[2]),F(),F(),ve(pe);return}case 5:{var Ur=Ie,ii=Ur.left,Xi=ii.expression;if(e.isIdentifier(Xi)&&e.getElementOrPropertyAccessName(ii)!==\"prototype\"&&G&&G.has(Xi.text)){e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,Xi):e.isBindableStaticAccessExpression(ii)&&(he(Ur,Xi),x(Ur.left,Ur.right,e.getNameOrArgument(ii)),F());return}break}case 4:case 0:case 8:break;default:e.Debug.assertNever(wr)}}default:e.hasJSDocNodes(Ie)&&e.forEach(Ie.jsDoc,function(et){e.forEach(et.tags,function(Gi){e.isJSDocTypeAlias(Gi)&&R(Gi)})}),e.forEachChild(Ie,A)}}function y(Ie,_e){var we=new e.Map;e.filterMutate(Ie,function(de,ye){var Ae=de.name||e.getNameOfDeclaration(de.node),er=Ae&&b(Ae);if(!er)return!0;var ir=we.get(er);if(!ir)return we.set(er,de),!0;if(ir instanceof Array){for(var Cr=0,Ye=ir;Cr0)return rr(we)}switch(Ie.kind){case 305:var de=Ie;return e.isExternalModule(de)?'\"'.concat(e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(de.fileName)))),'\"'):\"\";case 271:return e.isExportAssignment(Ie)&&Ie.isExportEquals?\"export=\":\"default\";case 214:case 256:case 213:case 257:case 226:return e.getSyntacticModifierFlags(Ie)&512?\"default\":ze(Ie);case 171:return\"constructor\";case 175:return\"new()\";case 174:return\"()\";case 176:return\"[]\";default:return\"\"}}function fe(Ie){var _e=[];function we(ye){if(de(ye)&&(_e.push(ye),ye.children))for(var Ae=0,er=ye.children;Ae0)return rr(e.declarationNameToString(Ie.name));if(e.isVariableDeclaration(_e))return rr(e.declarationNameToString(_e.name));if(e.isBinaryExpression(_e)&&_e.operatorToken.kind===63)return b(_e.left).replace(B,\"\");if(e.isPropertyAssignment(_e))return b(_e.name);if(e.getSyntacticModifierFlags(Ie)&512)return\"default\";if(e.isClassLike(Ie))return\"\";if(e.isCallExpression(_e)){var we=Ee(_e.expression);if(we!==void 0){if(we=rr(we),we.length>E)return\"\".concat(we,\" callback\");var de=rr(e.mapDefined(_e.arguments,function(ye){return e.isStringLiteralLike(ye)?ye.getText(le):void 0}).join(\", \"));return\"\".concat(we,\"(\").concat(de,\") callback\")}}return\"\"}function Ee(Ie){if(e.isIdentifier(Ie))return Ie.text;if(e.isPropertyAccessExpression(Ie)){var _e=Ee(Ie.expression),we=Ie.name.text;return _e===void 0?we:\"\".concat(_e,\".\").concat(we)}else return}function He(Ie){switch(Ie.kind){case 214:case 213:case 226:return!0;default:return!1}}function rr(Ie){return Ie=Ie.length>E?Ie.substring(0,E)+\"...\":Ie,Ie.replace(/\\\\?(\\r?\\n|\\r|\\u2028|\\u2029)/g,\"\")}})(a=e.NavigationBar||(e.NavigationBar={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){function w(x,X,$,A,y,V){var L=e.textChanges.ChangeTracker.fromContext({host:$,formatContext:X,preferences:y}),P=function(D){return e.stableSort(p(Q(D,x,A,V)),function(fe,g){return O(fe,g)})},k=B(x,x.statements.filter(e.isImportDeclaration));k.forEach(function(D){return d(D,P)});var Y=x.statements.filter(e.isExportDeclaration);d(Y,G);for(var U=0,j=x.statements.filter(e.isAmbientModule);U=2))return!0}return!1}function Q(x,X,$,A){if(A)return x;for(var y=$.getTypeChecker(),V=$.getCompilerOptions(),L=y.getJsxNamespace(X),P=y.getJsxFragmentFactory(X),k=!!(X.transformFlags&2),Y=[],U=0,j=x;U0?j[0]:I[0],ge=Z.length===0?ne?void 0:e.factory.createNamedImports(e.emptyArray):I.length===0?e.factory.createNamedImports(Z):e.factory.updateNamedImports(I[0].importClause.namedBindings,Z);U&&ne&&ge?(L.push(oe(Be,ne,void 0)),L.push(oe((X=I[0])!==null&&X!==void 0?X:Be,void 0,ge))):L.push(oe(Be,ne,ge))}}return L}C.coalesceImports=p;function m(x){for(var X,$={defaultImports:[],namespaceImports:[],namedImports:[]},A={defaultImports:[],namespaceImports:[],namedImports:[]},y=0,V=x;y1&&ie.push(m(q,O,\"comment\"))}}function p(b,se,J,ie){e.isJsxText(b)||N(b.pos,se,J,ie)}function m(b,se,J){return T(e.createTextSpanFromBounds(b,se),J)}function G(b,se){switch(b.kind){case 235:if(e.isFunctionLike(b.parent))return oe(b.parent,b,se);switch(b.parent.kind){case 240:case 243:case 244:case 242:case 239:case 241:case 248:case 292:return x(b.parent);case 252:var J=b.parent;if(J.tryBlock===b)return x(b.parent);if(J.finallyBlock===b){var ie=e.findChildOfKind(J,96,se);if(ie)return x(ie)}default:return T(e.createTextSpanFromNode(b,se),\"code\")}case 262:return x(b.parent);case 257:case 226:case 258:case 260:case 263:case 182:case 201:return x(b);case 184:return x(b,!1,!e.isTupleTypeNode(b.parent),22);case 289:case 290:return X(b.statements);case 205:return F(b);case 204:return F(b,22);case 278:return O(b);case 282:return ve(b);case 279:case 280:return ee(b.attributes);case 223:case 14:return he(b);case 202:return x(b,!1,!e.isBindingElement(b.parent),22);case 214:return q(b);case 208:return R(b);case 212:return $(b)}function R(A){if(!!A.arguments.length){var y=e.findChildOfKind(A,20,se),V=e.findChildOfKind(A,21,se);if(!(!y||!V||e.positionsAreOnSameLine(y.pos,V.pos,se)))return f(y,V,A,se,!1,!0)}}function q(A){if(!(e.isBlock(A.body)||e.isParenthesizedExpression(A.body)||e.positionsAreOnSameLine(A.body.getFullStart(),A.body.getEnd(),se))){var y=e.createTextSpanFromBounds(A.body.getFullStart(),A.body.getEnd());return T(y,\"code\",e.createTextSpanFromNode(A))}}function O(A){var y=e.createTextSpanFromBounds(A.openingElement.getStart(se),A.closingElement.getEnd()),V=A.openingElement.tagName.getText(se),L=\"<\"+V+\">...\";return T(y,\"code\",y,!1,L)}function ve(A){var y=e.createTextSpanFromBounds(A.openingFragment.getStart(se),A.closingFragment.getEnd()),V=\"<>...\";return T(y,\"code\",y,!1,V)}function ee(A){if(A.properties.length!==0)return m(A.getStart(se),A.getEnd(),\"code\")}function he(A){if(!(A.kind===14&&A.text.length===0))return m(A.getStart(se),A.getEnd(),\"code\")}function F(A,y){return y===void 0&&(y=18),x(A,!1,!e.isArrayLiteralExpression(A.parent)&&!e.isCallExpression(A.parent),y)}function x(A,y,V,L,P){y===void 0&&(y=!1),V===void 0&&(V=!0),L===void 0&&(L=18),P===void 0&&(P=L===18?19:23);var k=e.findChildOfKind(b,L,se),Y=e.findChildOfKind(b,P,se);return k&&Y&&f(k,Y,A,se,y,V)}function X(A){return A.length?T(e.createTextSpanFromRange(A),\"code\"):void 0}function $(A){if(!e.positionsAreOnSameLine(A.getStart(),A.getEnd(),se)){var y=e.createTextSpanFromBounds(A.getStart(),A.getEnd());return T(y,\"code\",e.createTextSpanFromNode(A))}}}function oe(b,se,J){var ie=K(b,se,J),R=e.findChildOfKind(se,19,J);return ie&&R&&f(ie,R,b,J,b.kind!==214)}function f(b,se,J,ie,R,q){R===void 0&&(R=!1),q===void 0&&(q=!0);var O=e.createTextSpanFromBounds(q?b.getFullStart():b.getStart(ie),se.getEnd());return T(O,\"code\",e.createTextSpanFromNode(J,ie),R)}function T(b,se,J,ie,R){return J===void 0&&(J=b),ie===void 0&&(ie=!1),R===void 0&&(R=\"...\"),{textSpan:b,kind:se,hintSpan:J,bannerText:R,autoCollapse:ie}}function K(b,se,J){if(e.isNodeArrayMultiLine(b.parameters,J)){var ie=e.findChildOfKind(b,20,J);if(ie)return ie}return e.findChildOfKind(se,18,J)}})(a=e.OutliningElementsCollector||(e.OutliningElementsCollector={}))})(ke||(ke={}));var ke;(function(e){var a;(function(y){y[y.exact=0]=\"exact\",y[y.prefix=1]=\"prefix\",y[y.substring=2]=\"substring\",y[y.camelCase=3]=\"camelCase\"})(a=e.PatternMatchKind||(e.PatternMatchKind={}));function C(y,V){return{kind:y,isCaseSensitive:V}}function w(y){var V=new e.Map,L=y.trim().split(\".\").map(function(P){return f(P.trim())});if(!L.some(function(P){return!P.subWordTextChunks.length}))return{getFullMatch:function(P,k){return B(P,k,L,V)},getMatchForLastSegmentOfPattern:function(P){return le(P,e.last(L),V)},patternContainsDots:L.length>1}}e.createPatternMatcher=w;function B(y,V,L,P){var k=le(V,e.last(L),P);if(!!k&&!(L.length-1>y.length)){for(var Y,U=L.length-2,j=y.length-1;U>=0;U-=1,j-=1)Y=N(Y,le(y[j],L[U],P));return Y}}function E(y,V){var L=V.get(y);return L||V.set(y,L=ve(y)),L}function Q(y,V,L){var P=b(y,V.textLowerCase);if(P===0)return C(V.text.length===y.length?a.exact:a.prefix,e.startsWith(y,V.text));if(V.isLowerCase){if(P===-1)return;for(var k=E(y,L),Y=0,U=k;Y0)return C(a.substring,!0);if(V.characterSpans.length>0){var H=E(y,L),I=oe(y,H,V,!1)?!0:oe(y,H,V,!0)?!1:void 0;if(I!==void 0)return C(a.camelCase,I)}}}function le(y,V,L){if(A(V.totalTextChunk.text,function(I){return I!==32&&I!==42})){var P=Q(y,V.totalTextChunk,L);if(P)return P}for(var k=V.subWordTextChunks,Y,U=0,j=k;U=65&&y<=90)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toUpperCase()}function K(y){if(y>=97&&y<=122)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toLowerCase()}function b(y,V){for(var L=y.length-V.length,P=function(U){if(A(V,function(j,H){return se(y.charCodeAt(H+U))===j}))return{value:U}},k=0;k<=L;k++){var Y=P(k);if(typeof Y==\"object\")return Y.value}return-1}function se(y){return y>=65&&y<=90?97+(y-65):y<127?y:String.fromCharCode(y).toLowerCase().charCodeAt(0)}function J(y){return y>=48&&y<=57}function ie(y){return T(y)||K(y)||J(y)||y===95||y===36}function R(y){for(var V=[],L=0,P=0,k=0;k0&&(V.push(q(y.substr(L,P))),P=0)}return P>0&&V.push(q(y.substr(L,P))),V}function q(y){var V=y.toLowerCase();return{text:y,textLowerCase:V,isLowerCase:y===V,characterSpans:O(y)}}function O(y){return ee(y,!1)}e.breakIntoCharacterSpans=O;function ve(y){return ee(y,!0)}e.breakIntoWordSpans=ve;function ee(y,V){for(var L=[],P=0,k=1;kf)break e;var ve=e.singleOrUndefined(e.getTrailingCommentRanges(T.text,q.end));if(ve&&ve.kind===2&&A(ve.pos,ve.end),B(T,f,q)){if(e.isBlock(q)||e.isTemplateSpan(q)||e.isTemplateHead(q)||e.isTemplateTail(q)||R&&e.isTemplateHead(R)||e.isVariableDeclarationList(q)&&e.isVariableStatement(se)||e.isSyntaxList(q)&&e.isVariableDeclarationList(se)||e.isVariableDeclaration(q)&&e.isSyntaxList(se)&&J.length===1||e.isJSDocTypeExpression(q)||e.isJSDocSignature(q)||e.isJSDocTypeLiteral(q)){se=q;break}if(e.isTemplateSpan(se)&&O&&e.isTemplateMiddleOrTemplateTail(O)){var ee=q.getFullStart()-2,he=O.getStart()+1;$(ee,he)}var F=e.isSyntaxList(q)&&m(R)&&G(O)&&!e.positionsAreOnSameLine(R.getStart(),O.getStart(),T),x=F?R.getEnd():q.getStart(),X=F?O.getStart():oe(T,q);e.hasJSDocNodes(q)&&((K=q.jsDoc)===null||K===void 0?void 0:K.length)&&$(e.first(q.jsDoc).getStart(),X),$(x,X),(e.isStringLiteral(q)||e.isTemplateLiteral(q))&&$(x+1,X-1),se=q;break}if(ie===J.length-1)break e}}return b;function $(y,V){if(y!==V){var L=e.createTextSpanFromBounds(y,V);(!b||!e.textSpansEqual(L,b.textSpan)&&e.textSpanIntersectsWithPosition(L,f))&&(b=Ke({textSpan:L},b&&{parent:b}))}}function A(y,V){$(y,V);for(var L=y;T.text.charCodeAt(L)===47;)L++;$(L,V)}}C.getSmartSelectionRange=w;function B(f,T,K){if(e.Debug.assert(K.pos<=T),T0&&e.last(D).kind===27&&fe++,fe}function O(l,d,D,fe){return e.Debug.assert(D>=d.getStart(),\"Assumed 'position' could not occur before node.\"),e.isTemplateLiteralToken(d)?e.isInsideTemplateLiteral(d,D,fe)?0:l+2:l+1}function ve(l,d,D){var fe=e.isNoSubstitutionTemplateLiteral(l.template)?1:l.template.templateSpans.length+1;return d!==0&&e.Debug.assertLessThan(d,fe),{isTypeParameterList:!1,invocation:{kind:0,node:l},argumentsSpan:he(l,D),argumentIndex:d,argumentCount:fe}}function ee(l,d){var D=l.getFullStart(),fe=e.skipTrivia(d.text,l.getEnd(),!1);return e.createTextSpan(D,fe-D)}function he(l,d){var D=l.template,fe=D.getStart(),g=D.getEnd();if(D.kind===223){var ne=e.last(D.templateSpans);ne.literal.getFullWidth()===0&&(g=e.skipTrivia(d.text,g,!1))}return e.createTextSpan(fe,g-fe)}function F(l,d,D,fe,g){for(var ne=function(Fe){e.Debug.assert(e.rangeContainsRange(Fe.parent,Fe),\"Not a subspan\",function(){return\"Child: \".concat(e.Debug.formatSyntaxKind(Fe.kind),\", parent: \").concat(e.Debug.formatSyntaxKind(Fe.parent.kind))});var Z=T(Fe,d,D,fe);if(Z)return{value:Z}},ue=l;!e.isSourceFile(ue)&&(g||!e.isBlock(ue));ue=ue.parent){var We=ne(ue);if(typeof We==\"object\")return We.value}}function x(l,d,D){var fe=l.getChildren(D),g=fe.indexOf(d);return e.Debug.assert(g>=0&&fe.length>g+1),fe[g+1]}function X(l){return l.kind===0?e.getInvokedExpression(l.node):l.called}function $(l){return l.kind===0?l.node:l.kind===1?l.called:l.node}var A=70246400;function y(l,d,D,fe,g,ne){var ue,We=D.isTypeParameterList,Fe=D.argumentCount,Z=D.argumentsSpan,Be=D.invocation,ge=D.argumentIndex,Re=$(Be),ze=Be.kind===2?Be.symbol:g.getSymbolAtLocation(X(Be))||ne&&((ue=d.declaration)===null||ue===void 0?void 0:ue.symbol),Ee=ze?e.symbolToDisplayParts(g,ze,ne?fe:void 0,void 0):e.emptyArray,He=e.map(l,function(Br){return k(Br,Ee,We,g,Re,fe)});ge!==0&&e.Debug.assertLessThan(ge,Fe);for(var rr=0,Ie=0,_e=0;_e1))for(var de=0,ye=0,Ae=we;ye=Fe){rr=Ie+de;break}de++}Ie+=we.length}e.Debug.assert(rr!==-1);var ir={items:e.flatMapToMutable(He,e.identity),applicableSpan:Z,selectedItemIndex:rr,argumentIndex:ge,argumentCount:Fe},Cr=ir.items[rr];if(Cr.isVariadic){var Ye=e.findIndex(Cr.parameters,function(Br){return!!Br.isRest});-1j?U.substr(0,j-3)+\"...\":U}function k(U){var j=71286784,H={removeComments:!0},I=e.createPrinter(H);return e.usingSingleLineStringWriter(function(l){var d=b.typeToTypeNode(U,void 0,j,l);e.Debug.assertIsDefined(d,\"should always get typenode\"),I.writeNode(4,d,p,l)})}function Y(U){return U===\"undefined\"}}C.provideInlayHints=le})(a=e.InlayHints||(e.InlayHints={}))})(ke||(ke={}));var ke;(function(e){var a=/^data:(?:application\\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\\/=]+)$)?/;function C(Q){var le=e.createGetCanonicalFileName(Q.useCaseSensitiveFileNames()),N=Q.getCurrentDirectory(),p=new e.Map,m=new e.Map;return{tryGetSourcePosition:f,tryGetGeneratedPosition:T,toLineColumnOffset:J,clearCache:ie};function G(R){return e.toPath(R,N,le)}function oe(R,q){var O=G(R),ve=m.get(O);if(ve)return ve;var ee;if(Q.getDocumentPositionMapper)ee=Q.getDocumentPositionMapper(R,q);else if(Q.readFile){var he=se(R);ee=he&&e.getDocumentPositionMapper({getSourceFileLike:se,getCanonicalFileName:le,log:function(F){return Q.log(F)}},R,e.getLineInfo(he.text,e.getLineStarts(he)),function(F){return!Q.fileExists||Q.fileExists(F)?Q.readFile(F):void 0})}return m.set(O,ee||e.identitySourceMapConsumer),ee||e.identitySourceMapConsumer}function f(R){if(!!e.isDeclarationFileName(R.fileName)){var q=K(R.fileName);if(!!q){var O=oe(R.fileName).getSourcePosition(R);return!O||O===R?void 0:f(O)||O}}}function T(R){if(!e.isDeclarationFileName(R.fileName)){var q=K(R.fileName);if(!!q){var O=Q.getProgram();if(!O.isSourceOfProjectReferenceRedirect(q.fileName)){var ve=O.getCompilerOptions(),ee=e.outFile(ve),he=ee?e.removeFileExtension(ee)+\".d.ts\":e.getDeclarationEmitOutputFilePathWorker(R.fileName,O.getCompilerOptions(),N,O.getCommonSourceDirectory(),le);if(he!==void 0){var F=oe(he,R.fileName).getGeneratedPosition(R);return F===R?void 0:F}}}}}function K(R){var q=Q.getProgram();if(!!q){var O=G(R),ve=q.getSourceFileByPath(O);return ve&&ve.resolvedPath===O?ve:void 0}}function b(R){var q=G(R),O=p.get(q);if(O!==void 0)return O||void 0;if(!Q.readFile||Q.fileExists&&!Q.fileExists(q)){p.set(q,!1);return}var ve=Q.readFile(q),ee=ve?E(ve):!1;return p.set(q,ee),ee||void 0}function se(R){return Q.getSourceFileLike?Q.getSourceFileLike(R):K(R)||b(R)}function J(R,q){var O=se(R);return O.getLineAndCharacterOfPosition(q)}function ie(){p.clear(),m.clear()}}e.getSourceMapper=C;function w(Q,le,N,p){var m=e.tryGetSourceMappingURL(N);if(m){var G=a.exec(m);if(G){if(G[1]){var oe=G[1];return B(Q,e.base64decode(e.sys,oe),le)}m=void 0}}var f=[];m&&f.push(m),f.push(le+\".map\");for(var T=m&&e.getNormalizedAbsolutePath(m,e.getDirectoryPath(le)),K=0,b=f;Kq?!1:ie.arguments.length0?e.arrayFrom(oe.values()).join(\",\"):\"\"}C.getSymbolModifiers=le;function N(m,G,oe,f,T,K,b){var se;K===void 0&&(K=e.getMeaningFromLocation(T));var J=[],ie=[],R=[],q=e.getCombinedLocalAndExportSymbolFlags(G),O=K&1?E(m,G,T):\"\",ve=!1,ee=T.kind===108&&e.isInExpressionContext(T)||e.isThisInTypeQuery(T),he,F,x,X,$=!1;if(T.kind===108&&!ee)return{displayParts:[e.keywordPart(108)],documentation:[],symbolKind:\"primitive type\",tags:void 0};if(O!==\"\"||q&32||q&2097152){if(O===\"getter\"||O===\"setter\"){var A=e.find(G.declarations,function(er){return er.name===T});if(A)switch(A.kind){case 172:O=\"getter\";break;case 173:O=\"setter\";break;default:e.Debug.assertNever(A)}else O=\"property\"}var y=void 0;if(he=ee?m.getTypeAtLocation(T):m.getTypeOfSymbolAtLocation(G,T),T.parent&&T.parent.kind===206){var V=T.parent.name;(V===T||V&&V.getFullWidth()===0)&&(T=T.parent)}var L=void 0;if(e.isCallOrNewExpression(T)?L=T:(e.isCallExpressionTarget(T)||e.isNewExpressionTarget(T)||T.parent&&(e.isJsxOpeningLikeElement(T.parent)||e.isTaggedTemplateExpression(T.parent))&&e.isFunctionLike(G.valueDeclaration))&&(L=T.parent),L){y=m.getResolvedSignature(L);var P=L.kind===209||e.isCallExpression(L)&&L.expression.kind===106,k=P?he.getConstructSignatures():he.getCallSignatures();if(y&&!e.contains(k,y.target)&&!e.contains(k,y)&&(y=k.length?k[0]:void 0),y){switch(P&&q&32?(O=\"constructor\",we(he.symbol,O)):q&2097152?(O=\"alias\",de(O),J.push(e.spacePart()),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),_e(G)):we(G,O),O){case\"JSX attribute\":case\"property\":case\"var\":case\"const\":case\"let\":case\"parameter\":case\"local var\":J.push(e.punctuationPart(58)),J.push(e.spacePart()),!(e.getObjectFlags(he)&16)&&he.symbol&&(e.addRange(J,e.symbolToDisplayParts(m,he.symbol,f,void 0,5)),J.push(e.lineBreakPart())),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),ye(y,k,262144);break;default:ye(y,k)}ve=!0,$=k.length>1}}else if(e.isNameOfFunctionDeclaration(T)&&!(q&98304)||T.kind===134&&T.parent.kind===171){var Y=T.parent,U=G.declarations&&e.find(G.declarations,function(er){return er===(T.kind===134?Y.parent:Y)});if(U){var k=Y.kind===171?he.getNonNullableType().getConstructSignatures():he.getNonNullableType().getCallSignatures();m.isImplementationOfOverload(Y)?y=k[0]:y=m.getSignatureFromDeclaration(Y),Y.kind===171?(O=\"constructor\",we(he.symbol,O)):we(Y.kind===174&&!(he.symbol.flags&2048||he.symbol.flags&4096)?he.symbol:G,O),y&&ye(y,k),ve=!0,$=k.length>1}}}if(q&32&&!ve&&!ee&&(rr(),e.getDeclarationOfKind(G,226)?de(\"local class\"):J.push(e.keywordPart(84)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&64&&K&2&&(He(),J.push(e.keywordPart(118)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&524288&&K&2&&(He(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(G),Ae(G,oe),J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),e.addRange(J,e.typeToDisplayParts(m,e.isConstTypeReference(T.parent)?m.getTypeAtLocation(T.parent):m.getDeclaredTypeOfSymbol(G),f,8388608))),q&384&&(He(),e.some(G.declarations,function(er){return e.isEnumDeclaration(er)&&e.isEnumConst(er)})&&(J.push(e.keywordPart(85)),J.push(e.spacePart())),J.push(e.keywordPart(92)),J.push(e.spacePart()),_e(G)),q&1536&&!ee){He();var A=e.getDeclarationOfKind(G,261),j=A&&A.name&&A.name.kind===79;J.push(e.keywordPart(j?142:141)),J.push(e.spacePart()),_e(G)}if(q&262144&&K&2)if(He(),J.push(e.punctuationPart(20)),J.push(e.textPart(\"type parameter\")),J.push(e.punctuationPart(21)),J.push(e.spacePart()),_e(G),G.parent)Ie(),_e(G.parent,f),Ae(G.parent,f);else{var H=e.getDeclarationOfKind(G,163);if(H===void 0)return e.Debug.fail();var A=H.parent;if(A)if(e.isFunctionLikeKind(A.kind)){Ie();var y=m.getSignatureFromDeclaration(A);A.kind===175?(J.push(e.keywordPart(103)),J.push(e.spacePart())):A.kind!==174&&A.name&&_e(A.symbol),e.addRange(J,e.signatureToDisplayParts(m,y,oe,32))}else A.kind===259&&(Ie(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(A.symbol),Ae(A.symbol,oe))}if(q&8){O=\"enum member\",we(G,\"enum member\");var A=(se=G.declarations)===null||se===void 0?void 0:se[0];if((A==null?void 0:A.kind)===299){var I=m.getConstantValue(A);I!==void 0&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.displayPart(e.getTextOfConstantValue(I),typeof I==\"number\"?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}}if(G.flags&2097152){if(He(),!ve){var l=m.getAliasedSymbol(G);if(l!==G&&l.declarations&&l.declarations.length>0){var d=l.declarations[0],D=e.getNameOfDeclaration(d);if(D){var fe=e.isModuleWithStringLiteralName(d)&&e.hasSyntacticModifier(d,2),g=G.name!==\"default\"&&!fe,ne=N(m,l,e.getSourceFileOfNode(d),d,D,K,g?G:l);J.push.apply(J,ne.displayParts),J.push(e.lineBreakPart()),x=ne.documentation,X=ne.tags}else x=l.getContextualDocumentationComment(d,m),X=l.getJsDocTags(m)}}if(G.declarations)switch(G.declarations[0].kind){case 264:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(142));break;case 271:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(G.declarations[0].isExportEquals?63:88));break;case 275:J.push(e.keywordPart(93));break;default:J.push(e.keywordPart(100))}J.push(e.spacePart()),_e(G),e.forEach(G.declarations,function(er){if(er.kind===265){var ir=er;if(e.isExternalModuleImportEqualsDeclaration(ir))J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.keywordPart(146)),J.push(e.punctuationPart(20)),J.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(ir)),e.SymbolDisplayPartKind.stringLiteral)),J.push(e.punctuationPart(21));else{var Cr=m.getSymbolAtLocation(ir.moduleReference);Cr&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),_e(Cr,f))}return!0}})}if(!ve)if(O!==\"\"){if(he){if(ee?(He(),J.push(e.keywordPart(108))):we(G,O),O===\"property\"||O===\"getter\"||O===\"setter\"||O===\"JSX attribute\"||q&3||O===\"local var\"||ee){if(J.push(e.punctuationPart(58)),J.push(e.spacePart()),he.symbol&&he.symbol.flags&262144){var ue=e.mapToDisplayParts(function(er){var ir=m.typeParameterToDeclaration(he,f,w);Ee().writeNode(4,ir,e.getSourceFileOfNode(e.getParseTreeNode(f)),er)});e.addRange(J,ue)}else e.addRange(J,e.typeToDisplayParts(m,he,f));if(G.target&&G.target.tupleLabelDeclaration){var We=G.target.tupleLabelDeclaration;e.Debug.assertNode(We.name,e.isIdentifier),J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.textPart(e.idText(We.name))),J.push(e.punctuationPart(21))}}else if(q&16||q&8192||q&16384||q&131072||q&98304||O===\"method\"){var k=he.getNonNullableType().getCallSignatures();k.length&&(ye(k[0],k),$=k.length>1)}}}else O=B(m,G,T);if(ie.length===0&&!$&&(ie=G.getContextualDocumentationComment(f,m)),ie.length===0&&q&4&&G.parent&&G.declarations&&e.forEach(G.parent.declarations,function(er){return er.kind===305}))for(var Fe=0,Z=G.declarations;Fe0))break}}if(ie.length===0&&e.isIdentifier(T)&&G.valueDeclaration&&e.isBindingElement(G.valueDeclaration)){var A=G.valueDeclaration,ge=A.parent;if(e.isIdentifier(A.name)&&e.isObjectBindingPattern(ge)){var Re=e.getTextOfIdentifierOrLiteral(A.name),ze=m.getTypeAtLocation(ge);ie=e.firstDefined(ze.isUnion()?ze.types:[ze],function(ir){var Cr=ir.getProperty(Re);return Cr?Cr.getDocumentationComment(m):void 0})||e.emptyArray}}return R.length===0&&!$&&(R=G.getContextualJsDocTags(f,m)),ie.length===0&&x&&(ie=x),R.length===0&&X&&(R=X),{displayParts:J,documentation:ie,symbolKind:O,tags:R.length===0?void 0:R};function Ee(){return F||(F=e.createPrinter({removeComments:!0})),F}function He(){J.length&&J.push(e.lineBreakPart()),rr()}function rr(){b&&(de(\"alias\"),J.push(e.spacePart()))}function Ie(){J.push(e.spacePart()),J.push(e.keywordPart(101)),J.push(e.spacePart())}function _e(er,ir){b&&er===G&&(er=b);var Cr=e.symbolToDisplayParts(m,er,ir||oe,void 0,7);e.addRange(J,Cr),G.flags&16777216&&J.push(e.punctuationPart(57))}function we(er,ir){He(),ir&&(de(ir),er&&!e.some(er.declarations,function(Cr){return e.isArrowFunction(Cr)||(e.isFunctionExpression(Cr)||e.isClassExpression(Cr))&&!Cr.name})&&(J.push(e.spacePart()),_e(er)))}function de(er){switch(er){case\"var\":case\"function\":case\"let\":case\"const\":case\"constructor\":J.push(e.textOrKeywordPart(er));return;default:J.push(e.punctuationPart(20)),J.push(e.textOrKeywordPart(er)),J.push(e.punctuationPart(21));return}}function ye(er,ir,Cr){Cr===void 0&&(Cr=0),e.addRange(J,e.signatureToDisplayParts(m,er,f,Cr|32)),ir.length>1&&(J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.operatorPart(39)),J.push(e.displayPart((ir.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),J.push(e.spacePart()),J.push(e.textPart(ir.length===2?\"overload\":\"overloads\")),J.push(e.punctuationPart(21))),ie=er.getDocumentationComment(m),R=er.getJsDocTags(),ir.length>1&&ie.length===0&&R.length===0&&(ie=ir[0].getDocumentationComment(m),R=ir[0].getJsDocTags())}function Ae(er,ir){var Cr=e.mapToDisplayParts(function(Ye){var Br=m.symbolToTypeParameterDeclarations(er,ir,w);Ee().writeList(53776,Br,e.getSourceFileOfNode(e.getParseTreeNode(ir)),Ye)});e.addRange(J,Cr)}}C.getSymbolDisplayPartsDocumentationAndSymbolKind=N;function p(m){return m.parent?!1:e.forEach(m.declarations,function(G){if(G.kind===213)return!0;if(G.kind!==254&&G.kind!==256)return!1;for(var oe=G.parent;!e.isFunctionBlock(oe);oe=oe.parent)if(oe.kind===305||oe.kind===262)return!1;return!0})}})(a=e.SymbolDisplay||(e.SymbolDisplay={}))})(ke||(ke={}));var ke;(function(e){function a(E,Q){var le=[],N=Q.compilerOptions?B(Q.compilerOptions,le):{},p=e.getDefaultCompilerOptions();for(var m in p)e.hasProperty(p,m)&&N[m]===void 0&&(N[m]=p[m]);for(var G=0,oe=e.transpileOptionValueCompilerOptions;G>=m;return ie}function b(se,J){var ie=(se>>J&G)+1;return e.Debug.assert((ie&G)===ie,\"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules.\"),se&~(G<=V.length)return!1;var Y=V[L];if(k.end<=Y.start)return!1;if(e.startEndOverlapsWithStartEnd(k.pos,k.end,Y.start,Y.start+Y.length))return!0;L++}};function P(){return!1}}function b(A,y,V){var L=A.getStart(V);if(L===y.pos&&A.end===y.end)return L;var P=e.findPrecedingToken(y.pos,V);return!P||P.end>=y.pos?A.pos:P.end}function se(A,y,V){for(var L=-1,P;A;){var k=V.getLineAndCharacterOfPosition(A.getStart(V)).line;if(L!==-1&&k!==L)break;if(C.SmartIndenter.shouldIndentChildNode(y,A,P,V))return y.indentSize;L=k,P=A,A=A.parent}return 0}function J(A,y,V,L,P,k){var Y={pos:A.pos,end:A.end};return C.getFormattingScanner(y.text,V,Y.pos,Y.end,function(U){return q(Y,A,L,P,U,k,1,function(j){return!1},y)})}C.formatNodeGivenIndentation=J;function ie(A,y,V,L){if(!A)return[];var P={pos:e.getLineStartPositionForPosition(A.getStart(y),y),end:A.end};return R(P,y,V,L)}function R(A,y,V,L){var P=T(A,y);return C.getFormattingScanner(y.text,y.languageVariant,b(P,A,y),A.end,function(k){return q(A,P,C.SmartIndenter.getIndentationForNode(P,A,y,V.options),se(P,V.options,y),k,V,L,K(y.parseDiagnostics,A),y)})}function q(A,y,V,L,P,k,Y,U,j){var H,I=k.options,l=k.getRules,d=k.host,D=new C.FormattingContext(j,Y,I),fe,g,ne,ue,We=-1,Fe=[];if(P.advance(),P.isOnToken()){var Z=j.getLineAndCharacterOfPosition(y.getStart(j)).line,Be=Z;y.decorators&&(Be=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(y,j)).line),we(y,y,Z,Be,V,L)}if(!P.isOnToken()){var ge=C.SmartIndenter.nodeWillIndentChild(I,y,void 0,j,!1)?V+I.indentSize:V,Re=P.getCurrentLeadingTrivia();Re&&(de(Re,ge,!1,function(Ir){return Ae(Ir,j.getLineAndCharacterOfPosition(Ir.pos),y,y,void 0)}),I.trimTrailingWhitespace!==!1&&n(Re))}if(fe&&P.getStartPos()>=A.end){var ze=P.isOnEOF()?P.readEOFTokenRange():P.isOnToken()?P.readTokenInfo(y).token:void 0;if(ze){var Ee=((H=e.findPrecedingToken(ze.end,j,y))===null||H===void 0?void 0:H.parent)||g;er(ze,j.getLineAndCharacterOfPosition(ze.pos).line,Ee,fe,ne,g,Ee,void 0)}}return Fe;function He(Ir,wr,Ur,ii,mi){if(e.rangeOverlapsWithStartEnd(ii,Ir,wr)||e.rangeContainsStartEnd(ii,Ir,wr)){if(mi!==-1)return mi}else{var pe=j.getLineAndCharacterOfPosition(Ir).line,or=e.getLineStartPositionForPosition(Ir,j),qr=C.SmartIndenter.findFirstNonWhitespaceColumn(or,Ir,j,I);if(pe!==Ur||Ir===qr){var si=C.SmartIndenter.getBaseIndentation(I);return si>qr?si:qr}}return-1}function rr(Ir,wr,Ur,ii,mi,pe){var or=C.SmartIndenter.shouldIndentChildNode(I,Ir)?I.indentSize:0;return pe===wr?{indentation:wr===ue?We:mi.getIndentation(),delta:Math.min(I.indentSize,mi.getDelta(Ir)+or)}:Ur===-1?Ir.kind===20&&wr===ue?{indentation:We,delta:mi.getDelta(Ir)}:C.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(ii,Ir,wr,j)||C.SmartIndenter.childIsUnindentedBranchOfConditionalExpression(ii,Ir,wr,j)||C.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(ii,Ir,wr,j)?{indentation:mi.getIndentation(),delta:or}:{indentation:mi.getIndentation()+mi.getDelta(Ir),delta:or}:{indentation:Ur,delta:or}}function Ie(Ir){if(Ir.modifiers&&Ir.modifiers.length)return Ir.modifiers[0].kind;switch(Ir.kind){case 257:return 84;case 258:return 118;case 256:return 98;case 260:return 260;case 172:return 136;case 173:return 149;case 169:if(Ir.asteriskToken)return 41;case 167:case 164:var wr=e.getNameOfDeclaration(Ir);if(wr)return wr.kind}}function _e(Ir,wr,Ur,ii){return{getIndentationForComment:function(or,qr,si){switch(or){case 19:case 23:case 21:return Ur+pe(si)}return qr!==-1?qr:Ur},getIndentationForToken:function(or,qr,si,Di){return!Di&&mi(or,qr,si)?Ur+pe(si):Ur},getIndentation:function(){return Ur},getDelta:pe,recomputeIndentation:function(or,qr){C.SmartIndenter.shouldIndentChildNode(I,qr,Ir,j)&&(Ur+=or?I.indentSize:-I.indentSize,ii=C.SmartIndenter.shouldIndentChildNode(I,Ir)?I.indentSize:0)}};function mi(or,qr,si){switch(qr){case 18:case 19:case 21:case 91:case 115:case 59:return!1;case 43:case 31:switch(si.kind){case 280:case 281:case 279:case 228:return!1}break;case 22:case 23:if(si.kind!==195)return!1;break}return wr!==or&&!(Ir.decorators&&qr===Ie(Ir))}function pe(or){return C.SmartIndenter.nodeWillIndentChild(I,Ir,or,j,!0)?ii:0}}function we(Ir,wr,Ur,ii,mi,pe){if(!e.rangeOverlapsWithStartEnd(A,Ir.getStart(j),Ir.getEnd()))return;var or=_e(Ir,Ur,mi,pe),qr=wr;for(e.forEachChild(Ir,function(et){Di(et,-1,Ir,or,Ur,ii,!1)},function(et){wi(et,Ir,Ur,or)});P.isOnToken()&&P.getStartPos()Math.min(Ir.end,A.end))break;Xi(si,Ir,or,Ir)}function Di(et,Gi,Wt,Zt,_r,pi,ae,Xe){if(e.nodeIsMissing(et))return Gi;var Jr=et.getStart(j),ti=j.getLineAndCharacterOfPosition(Jr).line,Ze=ti;et.decorators&&(Ze=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(et,j)).line);var Sr=-1;if(ae&&e.rangeContainsRange(A,Wt)&&(Sr=He(Jr,et.end,_r,A,Gi),Sr!==-1&&(Gi=Sr)),!e.rangeOverlapsWithStartEnd(A,et.pos,et.end))return et.endA.end)return Gi;if(zr.token.end>Jr){zr.token.pos>Jr&&P.skipToStartOf(et);break}Xi(zr,Ir,Zt,Ir)}if(!P.isOnToken()||P.getStartPos()>=A.end)return Gi;if(e.isToken(et)){var zr=P.readTokenInfo(et);if(et.kind!==11)return e.Debug.assert(zr.token.end===et.end,\"Token end is child end\"),Xi(zr,Ir,Zt,et),Gi}var Wr=et.kind===165?ti:pi,Je=rr(et,ti,Sr,Ir,Zt,Wr);return we(et,qr,ti,Ze,Je.indentation,Je.delta),qr=Ir,Xe&&Wt.kind===204&&Gi===-1&&(Gi=Je.indentation),Gi}function wi(et,Gi,Wt,Zt){e.Debug.assert(e.isNodeArray(et));var _r=ee(Gi,et),pi=Zt,ae=Wt;if(!e.rangeOverlapsWithStartEnd(A,et.pos,et.end)){et.endet.pos)break;if(Xe.token.kind===_r){ae=j.getLineAndCharacterOfPosition(Xe.token.pos).line,Xi(Xe,Gi,Zt,Gi);var Jr=void 0;if(We!==-1)Jr=We;else{var ti=e.getLineStartPositionForPosition(Xe.token.pos,j);Jr=C.SmartIndenter.findFirstNonWhitespaceColumn(ti,Xe.token.pos,j,I)}pi=_e(Gi,Wt,Jr,I.indentSize)}else Xi(Xe,Gi,Zt,Gi)}for(var Ze=-1,Sr=0;Sr0){var ae=$(pi,I);Ge(Zt,_r.character,ae)}else be(Zt,_r.character)}}}function Er(Ir,wr,Ur){for(var ii=Ir;iipe)){var or=Ne(mi,pe);or!==-1&&(e.Debug.assert(or===mi||!e.isWhiteSpaceSingleLine(j.text.charCodeAt(or-1))),be(or,pe+1-or))}}}function Ne(Ir,wr){for(var Ur=wr;Ur>=Ir&&e.isWhiteSpaceSingleLine(j.text.charCodeAt(Ur));)Ur--;return Ur!==wr?Ur+1:-1}function n(Ir){for(var wr=fe?fe.end:A.pos,Ur=0,ii=Ir;Urj.text.length)return G(H);if(H.indentStyle===e.IndentStyle.None)return 0;var l=e.findPrecedingToken(U,j,void 0,!0),d=C.getRangeOfEnclosingComment(j,U,l||null);if(d&&d.kind===3)return le(j,U,H,d);if(!l)return G(H);var D=e.isStringOrRegularExpressionOrTemplateLiteral(l.kind);if(D&&l.getStart(j)<=U&&U=0),l<=d)return V(e.getStartPositionOfLine(d,U),j,U,H);var D=e.getStartPositionOfLine(l,U),fe=y(D,j,U,H),g=fe.column,ne=fe.character;if(g===0)return g;var ue=U.text.charCodeAt(D+ne);return ue===42?g-1:g}function N(U,j,H){for(var I=j;I>0;){var l=U.text.charCodeAt(I);if(!e.isWhiteSpaceLike(l))break;I--}var d=e.getLineStartPositionForPosition(I,U);return V(d,I,U,H)}function p(U,j,H,I,l,d){for(var D,fe=H;fe;){if(e.positionBelongsToNode(fe,j,U)&&k(d,fe,D,U,!0)){var g=J(fe,U),ne=se(H,fe,I,U),ue=ne!==0?l&&ne===2?d.indentSize:0:I!==g.line?d.indentSize:0;return oe(fe,g,void 0,ue,U,!0,d)}var We=X(fe,U,d,!0);if(We!==-1)return We;D=fe,fe=fe.parent}return G(d)}function m(U,j,H,I){var l=H.getLineAndCharacterOfPosition(U.getStart(H));return oe(U,l,j,0,H,!1,I)}B.getIndentationForNode=m;function G(U){return U.baseIndentSize||0}B.getBaseIndentation=G;function oe(U,j,H,I,l,d,D){for(var fe,g=U.parent;g;){var ne=!0;if(H){var ue=U.getStart(l);ne=ueH.end}var We=f(g,U,l),Fe=We.line===j.line||R(g,U,j.line,l);if(ne){var Z=(fe=ve(U,l))===null||fe===void 0?void 0:fe[0],Be=!!Z&&J(Z,l).line>We.line,ge=X(U,l,D,Be);if(ge!==-1||(ge=K(U,g,j,Fe,l,D),ge!==-1))return ge+I}k(D,g,U,l,d)&&!Fe&&(I+=D.indentSize);var Re=ie(g,U,j.line,l);U=g,g=U.parent,j=Re?l.getLineAndCharacterOfPosition(U.getStart(l)):We}return I+G(D)}function f(U,j,H){var I=ve(j,H),l=I?I.pos:U.getStart(H);return H.getLineAndCharacterOfPosition(l)}function T(U,j,H){var I=e.findListItemInfo(U);return I&&I.listItemIndex>0?$(I.list.getChildren(),I.listItemIndex-1,j,H):-1}function K(U,j,H,I,l,d){var D=(e.isDeclaration(U)||e.isStatementButNotDeclaration(U))&&(j.kind===305||!I);return D?A(H,l,d):-1}var b;(function(U){U[U.Unknown=0]=\"Unknown\",U[U.OpenBrace=1]=\"OpenBrace\",U[U.CloseBrace=2]=\"CloseBrace\"})(b||(b={}));function se(U,j,H,I){var l=e.findNextToken(U,j,I);if(!l)return 0;if(l.kind===18)return 1;if(l.kind===19){var d=J(l,I).line;return H===d?2:0}return 0}function J(U,j){return j.getLineAndCharacterOfPosition(U.getStart(j))}function ie(U,j,H,I){if(!(e.isCallExpression(U)&&e.contains(U.arguments,j)))return!1;var l=U.expression.getEnd(),d=e.getLineAndCharacterOfPosition(I,l).line;return d===H}B.isArgumentAndStartLineOverlapsExpressionBeingCalled=ie;function R(U,j,H,I){if(U.kind===239&&U.elseStatement===j){var l=e.findChildOfKind(U,91,I);e.Debug.assert(l!==void 0);var d=J(l,I).line;return d===H}return!1}B.childStartsOnTheSameLineWithElseInIfStatement=R;function q(U,j,H,I){if(e.isConditionalExpression(U)&&(j===U.whenTrue||j===U.whenFalse)){var l=e.getLineAndCharacterOfPosition(I,U.condition.end).line;if(j===U.whenTrue)return H===l;var d=J(U.whenTrue,I).line,D=e.getLineAndCharacterOfPosition(I,U.whenTrue.end).line;return l===d&&D===H}return!1}B.childIsUnindentedBranchOfConditionalExpression=q;function O(U,j,H,I){if(e.isCallOrNewExpression(U)){if(!U.arguments)return!1;var l=e.find(U.arguments,function(g){return g.pos===j.pos});if(!l)return!1;var d=U.arguments.indexOf(l);if(d===0)return!1;var D=U.arguments[d-1],fe=e.getLineAndCharacterOfPosition(I,D.getEnd()).line;if(H===fe)return!0}return!1}B.argumentStartsOnSameLineAsPreviousArgument=O;function ve(U,j){return U.parent&&he(U.getStart(j),U.getEnd(),U.parent,j)}B.getContainingList=ve;function ee(U,j,H){return j&&he(U,U,j,H)}function he(U,j,H,I){switch(H.kind){case 178:return l(H.typeArguments);case 205:return l(H.properties);case 204:return l(H.elements);case 182:return l(H.members);case 256:case 213:case 214:case 169:case 168:case 174:case 171:case 180:case 175:return l(H.typeParameters)||l(H.parameters);case 172:return l(H.parameters);case 257:case 226:case 258:case 259:case 344:return l(H.typeParameters);case 209:case 208:return l(H.typeArguments)||l(H.arguments);case 255:return l(H.declarations);case 269:case 273:return l(H.elements);case 201:case 202:return l(H.elements)}function l(d){return d&&e.rangeContainsStartEnd(F(H,d,I),U,j)?d:void 0}}function F(U,j,H){for(var I=U.getChildren(H),l=1;l=0&&j=0;D--)if(U[D].kind!==27){var fe=H.getLineAndCharacterOfPosition(U[D].end).line;if(fe!==d.line)return A(d,H,I);d=J(U[D],H)}return-1}function A(U,j,H){var I=j.getPositionOfLineAndCharacter(U.line,0);return V(I,I+U.character,j,H)}function y(U,j,H,I){for(var l=0,d=0,D=U;D0?1:0,Ee=e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Be)+ze,H);return Ee=p(H.text,Ee),e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Ee),H)}function K(H,I,l){var d=I.end,D=l.trailingTriviaOption;if(D===N.Include){var fe=e.getTrailingCommentRanges(H.text,d);if(fe)for(var g=e.getLineOfLocalPosition(H,I.end),ne=0,ue=fe;neg)break;var Fe=e.getLineOfLocalPosition(H,We.end);if(Fe>g)return e.skipTrivia(H.text,We.end,!0,!0)}}}function b(H,I,l){var d,D=I.end,fe=l.trailingTriviaOption;if(fe===N.Exclude)return D;if(fe===N.ExcludeWhitespace){var g=e.concatenate(e.getTrailingCommentRanges(H.text,D),e.getLeadingCommentRanges(H.text,D)),ne=(d=g==null?void 0:g[g.length-1])===null||d===void 0?void 0:d.end;return ne||D}var ue=K(H,I,l);if(ue)return ue;var We=e.skipTrivia(H.text,D,!0);return We!==D&&(fe===N.Include||e.isLineBreak(H.text.charCodeAt(We-1)))?We:D}function se(H,I){return!!I&&!!H.parent&&(I.kind===27||I.kind===26&&H.parent.kind===205)}function J(H){return e.isFunctionExpression(H)||e.isFunctionDeclaration(H)}C.isThisTypeAnnotatable=J;var ie=function(){function H(I,l){this.newLineCharacter=I,this.formatContext=l,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=new e.Map,this.deletedNodes=[]}return H.fromContext=function(I){return new H(e.getNewLineOrDefaultFromHost(I.host,I.formatContext.options),I.formatContext)},H.with=function(I,l){var d=H.fromContext(I);return l(d),d.getChanges()},H.prototype.pushRaw=function(I,l){e.Debug.assertEqual(I.fileName,l.fileName);for(var d=0,D=l.textChanges;d\",joiner:\", \"})},H.prototype.getOptionsForInsertNodeBefore=function(I,l,d){return e.isStatement(I)||e.isClassElement(I)?{suffix:d?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(I)?{suffix:\", \"}:e.isParameter(I)?e.isParameter(l)?{suffix:\", \"}:{}:e.isStringLiteral(I)&&e.isImportDeclaration(I.parent)||e.isNamedImports(I)?{suffix:\", \"}:e.isImportSpecifier(I)?{suffix:\",\"+(d?this.newLineCharacter:\" \")}:e.Debug.failBadSyntaxKind(I)},H.prototype.insertNodeAtConstructorStart=function(I,l,d){var D=e.firstOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve([d],l.body.statements,!0)):this.insertNodeBefore(I,D,d)},H.prototype.insertNodeAtConstructorStartAfterSuperCall=function(I,l,d){var D=e.find(l.body.statements,function(fe){return e.isExpressionStatement(fe)&&e.isSuperCall(fe.expression)});!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(I,D,d)},H.prototype.insertNodeAtConstructorEnd=function(I,l,d){var D=e.lastOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(I,D,d)},H.prototype.replaceConstructorBody=function(I,l,d){this.replaceNode(I,l.body,e.factory.createBlock(d,!0))},H.prototype.insertNodeAtEndOfScope=function(I,l,d){var D=T(I,l.getLastToken(),{});this.insertNodeAt(I,D,d,{prefix:e.isLineBreak(I.text.charCodeAt(l.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},H.prototype.insertMemberAtStart=function(I,l,d){this.insertNodeAtStartWorker(I,l,d)},H.prototype.insertNodeAtObjectStart=function(I,l,d){this.insertNodeAtStartWorker(I,l,d)},H.prototype.insertNodeAtStartWorker=function(I,l,d){var D,fe=(D=this.guessIndentationFromExistingMembers(I,l))!==null&&D!==void 0?D:this.computeIndentationForNewMember(I,l);this.insertNodeAt(I,ee(l).pos,d,this.getInsertNodeAtStartInsertOptions(I,l,fe))},H.prototype.guessIndentationFromExistingMembers=function(I,l){for(var d,D=l,fe=0,g=ee(l);fe0?{fileName:Be.fileName,textChanges:Ee}:void 0})}H.getTextChangesFromChanges=I;function l(ne,ue,We,Fe,Z){var Be=d(ne,e.getScriptKindFromFileName(ue),We,Fe,Z);return{fileName:ue,textChanges:[e.createTextChange(e.createTextSpan(0,0),Be)],isNewFile:!0}}H.newFileChanges=l;function d(ne,ue,We,Fe,Z){var Be=We.map(function(ze){return ze===4?\"\":g(ze,ne,Fe).text}).join(Fe),ge=e.createSourceFile(\"any file name\",Be,99,!0,ue),Re=e.formatting.formatDocument(ge,Z);return x(Be,Re)+Fe}H.newFileChangesWorker=d;function D(ne,ue,We,Fe,Z){var Be;if(ne.kind===oe.Remove)return\"\";if(ne.kind===oe.Text)return ne.text;var ge=ne.options,Re=ge===void 0?{}:ge,ze=ne.range.pos,Ee=function(Ie){return fe(Ie,ue,ze,Re,We,Fe,Z)},He=ne.kind===oe.ReplaceWithMultipleNodes?ne.nodes.map(function(Ie){return e.removeSuffix(Ee(Ie),We)}).join(((Be=ne.options)===null||Be===void 0?void 0:Be.joiner)||We):Ee(ne.node),rr=Re.indentation!==void 0||e.getLineStartPositionForPosition(ze,ue)===ze?He:He.replace(/^\\s+/,\"\");return(Re.prefix||\"\")+rr+(!Re.suffix||e.endsWith(rr,Re.suffix)?\"\":Re.suffix)}function fe(ne,ue,We,Fe,Z,Be,ge){var Re=Fe.indentation,ze=Fe.prefix,Ee=Fe.delta,He=g(ne,ue,Z),rr=He.node,Ie=He.text;ge&&ge(rr,Ie);var _e=e.getFormatCodeSettingsForWriting(Be,ue),we=Re!==void 0?Re:e.formatting.SmartIndenter.getIndentation(We,ue,_e,ze===Z||e.getLineStartPositionForPosition(We,ue)===We);Ee===void 0&&(Ee=e.formatting.SmartIndenter.shouldIndentChildNode(_e,ne)&&_e.indentSize||0);var de={text:Ie,getLineAndCharacterOfPosition:function(Ae){return e.getLineAndCharacterOfPosition(this,Ae)}},ye=e.formatting.formatNodeGivenIndentation(rr,de,ue.languageVariant,we,Ee,Ke(Ke({},Be),{options:_e}));return x(Ie,ye)}function g(ne,ue,We){var Fe=V(We),Z=e.getNewLineKind(We);return e.createPrinter({newLine:Z,neverAsciiEscape:!0,preserveSourceNewlines:!0,terminateUnterminatedLiterals:!0},Fe).writeNode(4,ne,ue,Fe),{text:Fe.getText(),node:A(ne)}}H.getNonformattedText=g})(F||(F={}));function x(H,I){for(var l=I.length-1;l>=0;l--){var d=I[l],D=d.span,fe=d.newText;H=\"\".concat(H.substring(0,D.start)).concat(fe).concat(H.substring(e.textSpanEnd(D)))}return H}C.applyChanges=x;function X(H){return e.skipTrivia(H,0)===H.length}var $=Ke(Ke({},e.nullTransformationContext),{factory:e.createNodeFactory(e.nullTransformationContext.factory.flags|1,e.nullTransformationContext.factory.baseFactory)});function A(H){var I=e.visitEachChild(H,A,$,y,A),l=e.nodeIsSynthesized(I)?I:Object.create(I);return e.setTextRangePosEnd(l,w(H),E(H)),l}C.assignPositionsToNode=A;function y(H,I,l,d,D){var fe=e.visitNodes(H,I,l,d,D);if(!fe)return fe;var g=fe===H?e.factory.createNodeArray(fe.slice(0)):fe;return e.setTextRangePosEnd(g,w(H),E(H)),g}function V(H){var I=0,l=e.createTextWriter(H),d=function(lr){lr&&B(lr,I)},D=function(lr){lr&&Q(lr,I)},fe=function(lr){lr&&B(lr,I)},g=function(lr){lr&&Q(lr,I)},ne=function(lr){lr&&B(lr,I)},ue=function(lr){lr&&Q(lr,I)};function We(lr,be){if(be||!X(lr)){I=l.getTextPos();for(var Ge=0;e.isWhiteSpaceLike(lr.charCodeAt(lr.length-Ge-1));)Ge++;I-=Ge}}function Fe(lr){l.write(lr),We(lr,!1)}function Z(lr){l.writeComment(lr)}function Be(lr){l.writeKeyword(lr),We(lr,!1)}function ge(lr){l.writeOperator(lr),We(lr,!1)}function Re(lr){l.writePunctuation(lr),We(lr,!1)}function ze(lr){l.writeTrailingSemicolon(lr),We(lr,!1)}function Ee(lr){l.writeParameter(lr),We(lr,!1)}function He(lr){l.writeProperty(lr),We(lr,!1)}function rr(lr){l.writeSpace(lr),We(lr,!1)}function Ie(lr){l.writeStringLiteral(lr),We(lr,!1)}function _e(lr,be){l.writeSymbol(lr,be),We(lr,!1)}function we(lr){l.writeLine(lr)}function de(){l.increaseIndent()}function ye(){l.decreaseIndent()}function Ae(){return l.getText()}function er(lr){l.rawWrite(lr),We(lr,!1)}function ir(lr){l.writeLiteral(lr),We(lr,!0)}function Cr(){return l.getTextPos()}function Ye(){return l.getLine()}function Br(){return l.getColumn()}function Er(){return l.getIndent()}function Ne(){return l.isAtStartOfLine()}function n(){l.clear(),I=0}return{onBeforeEmitNode:d,onAfterEmitNode:D,onBeforeEmitNodeArray:fe,onAfterEmitNodeArray:g,onBeforeEmitToken:ne,onAfterEmitToken:ue,write:Fe,writeComment:Z,writeKeyword:Be,writeOperator:ge,writePunctuation:Re,writeTrailingSemicolon:ze,writeParameter:Ee,writeProperty:He,writeSpace:rr,writeStringLiteral:Ie,writeSymbol:_e,writeLine:we,increaseIndent:de,decreaseIndent:ye,getText:Ae,rawWrite:er,writeLiteral:ir,getTextPos:Cr,getLine:Ye,getColumn:Br,getIndent:Er,isAtStartOfLine:Ne,hasTrailingComment:function(){return l.hasTrailingComment()},hasTrailingWhitespace:function(){return l.hasTrailingWhitespace()},clear:n}}C.createWriter=V;function L(H){for(var I,l=0,d=H.statements;l=ze+2)break}if(H.statements.length){Fe===void 0&&(Fe=H.getLineAndCharacterOfPosition(H.statements[0].getStart()).line);var Ee=H.getLineAndCharacterOfPosition(ge.end).line;if(Fe1)break}var F=O<2;return function(x){var X=x.fixId,$=x.fixAllDescription,A=pr(x,[\"fixId\",\"fixAllDescription\"]);return F?A:Ke(Ke({},A),{fixId:X,fixAllDescription:$})}}function oe(ie){var R=J(ie),q=w.get(String(ie.errorCode));return e.flatMap(q,function(O){return e.map(O.getCodeActions(ie),G(O,R))})}C.getFixes=oe;function f(ie){return B.get(e.cast(ie.fixId,e.isString)).getAllCodeActions(ie)}C.getAllFixes=f;function T(ie,R){return{changes:ie,commands:R}}C.createCombinedCodeActions=T;function K(ie,R){return{fileName:ie,textChanges:R}}C.createFileTextChanges=K;function b(ie,R,q){var O=[],ve=e.textChanges.ChangeTracker.with(ie,function(ee){return se(ie,R,function(he){return q(ee,he,O)})});return T(ve,O.length===0?void 0:O)}C.codeFixAll=b;function se(ie,R,q){for(var O=0,ve=J(ie);Oe.textSpanEnd(m)?\"quit\":(e.isArrowFunction(f)||e.isMethodDeclaration(f)||e.isFunctionExpression(f)||e.isFunctionDeclaration(f))&&e.textSpansEqual(m,e.createTextSpanFromNode(f,p))});return oe}}function N(p,m){return function(G){var oe=G.start,f=G.length,T=G.relatedInformation,K=G.code;return e.isNumber(oe)&&e.isNumber(f)&&e.textSpansEqual({start:oe,length:f},p)&&K===m&&!!T&&e.some(T,function(b){return b.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code})}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addMissingAwait\",B=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,E=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],Q=Ve([e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap.code,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined.code,e.Diagnostics.Type_0_is_not_an_array_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,B],E,!0);C.registerCodeFix({fixIds:[w],errorCodes:Q,getCodeActions:function(J){var ie=J.sourceFile,R=J.errorCode,q=J.span,O=J.cancellationToken,ve=J.program,ee=le(ie,R,q,O,ve);if(!!ee){var he=J.program.getTypeChecker(),F=function(x){return e.textChanges.ChangeTracker.with(J,x)};return e.compact([N(J,ee,R,he,F),p(J,ee,R,he,F)])}},getAllCodeActions:function(se){var J=se.sourceFile,ie=se.program,R=se.cancellationToken,q=se.program.getTypeChecker(),O=new e.Set;return C.codeFixAll(se,Q,function(ve,ee){var he=le(J,ee.code,ee,R,ie);if(!!he){var F=function(x){return x(ve),[]};return N(se,he,ee.code,q,F,O)||p(se,he,ee.code,q,F,O)}})}});function le(se,J,ie,R,q){var O=e.getFixableErrorSpanExpression(se,ie);return O&&m(se,J,ie,R,q)&&T(O)?O:void 0}function N(se,J,ie,R,q,O){var ve=se.sourceFile,ee=se.program,he=se.cancellationToken,F=G(J,ve,he,ee,R);if(F){var x=q(function(X){e.forEach(F.initializers,function($){var A=$.expression;return K(X,ie,ve,R,A,O)}),O&&F.needsSecondPassForFixAll&&K(X,ie,ve,R,J,O)});return C.createCodeFixActionWithoutFixAll(\"addMissingAwaitToInitializer\",x,F.initializers.length===1?[e.Diagnostics.Add_await_to_initializer_for_0,F.initializers[0].declarationSymbol.name]:e.Diagnostics.Add_await_to_initializers)}}function p(se,J,ie,R,q,O){var ve=q(function(ee){return K(ee,ie,se.sourceFile,R,J,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Add_await,w,e.Diagnostics.Fix_all_expressions_possibly_missing_await)}function m(se,J,ie,R,q){var O=q.getTypeChecker(),ve=O.getDiagnostics(se,R);return e.some(ve,function(ee){var he=ee.start,F=ee.length,x=ee.relatedInformation,X=ee.code;return e.isNumber(he)&&e.isNumber(F)&&e.textSpansEqual({start:he,length:F},ie)&&X===J&&!!x&&e.some(x,function($){return $.code===e.Diagnostics.Did_you_forget_to_use_await.code})})}function G(se,J,ie,R,q){var O=oe(se,q);if(!!O){for(var ve=O.isCompleteFix,ee,he=function($){var A=q.getSymbolAtLocation($);if(!A)return\"continue\";var y=e.tryCast(A.valueDeclaration,e.isVariableDeclaration),V=y&&e.tryCast(y.name,e.isIdentifier),L=e.getAncestor(y,237);if(!y||!L||y.type||!y.initializer||L.getSourceFile()!==J||e.hasSyntacticModifier(L,1)||!V||!T(y.initializer))return ve=!1,\"continue\";var P=R.getSemanticDiagnostics(J,ie),k=e.FindAllReferences.Core.eachSymbolReferenceInFile(V,q,J,function(Y){return $!==Y&&!f(Y,P,J,q)});if(k)return ve=!1,\"continue\";(ee||(ee=[])).push({expression:y.initializer,declarationSymbol:A})},F=0,x=O.identifiers;F0)return[C.createCodeFixAction(w,f,e.Diagnostics.Add_const_to_unresolved_variable,w,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[w],getAllCodeActions:function(G){var oe=new e.Set;return C.codeFixAll(G,B,function(f,T){return E(f,T.file,T.start,G.program,oe)})}});function E(G,oe,f,T,K){var b=e.getTokenAtPosition(oe,f),se=e.findAncestor(b,function(O){return e.isForInOrOfStatement(O.parent)?O.parent.initializer===O:le(O)?!1:\"quit\"});if(se)return Q(G,se,oe,K);var J=b.parent;if(e.isBinaryExpression(J)&&J.operatorToken.kind===63&&e.isExpressionStatement(J.parent))return Q(G,b,oe,K);if(e.isArrayLiteralExpression(J)){var ie=T.getTypeChecker();return e.every(J.elements,function(O){return N(O,ie)})?Q(G,J,oe,K):void 0}var R=e.findAncestor(b,function(O){return e.isExpressionStatement(O.parent)?!0:p(O)?!1:\"quit\"});if(R){var q=T.getTypeChecker();return m(R,q)?Q(G,R,oe,K):void 0}}function Q(G,oe,f,T){(!T||e.tryAddToSet(T,oe))&&G.insertModifierBefore(f,85,oe)}function le(G){switch(G.kind){case 79:case 204:case 205:case 296:case 297:return!0;default:return!1}}function N(G,oe){var f=e.isIdentifier(G)?G:e.isAssignmentExpression(G,!0)&&e.isIdentifier(G.left)?G.left:void 0;return!!f&&!oe.getSymbolAtLocation(f)}function p(G){switch(G.kind){case 79:case 221:case 27:return!0;default:return!1}}function m(G,oe){return e.isBinaryExpression(G)?G.operatorToken.kind===27?e.every([G.left,G.right],function(f){return m(f,oe)}):G.operatorToken.kind===63&&e.isIdentifier(G.left)&&!oe.getSymbolAtLocation(G.left):!1}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addMissingDeclareProperty\",B=[e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});if(N.length>0)return[C.createCodeFixAction(w,N,e.Diagnostics.Prefix_with_declare,w,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[w],getAllCodeActions:function(Q){var le=new e.Set;return C.codeFixAll(Q,B,function(N,p){return E(N,p.file,p.start,le)})}});function E(Q,le,N,p){var m=e.getTokenAtPosition(le,N);if(!!e.isIdentifier(m)){var G=m.parent;G.kind===167&&(!p||e.tryAddToSet(p,G))&&Q.insertModifierBefore(le,135,G)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addMissingInvocationForDecorator\",B=[e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(w,N,e.Diagnostics.Call_decorator_expression,w,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N.start)})}});function E(Q,le,N){var p=e.getTokenAtPosition(le,N),m=e.findAncestor(p,e.isDecorator);e.Debug.assert(!!m,\"Expected position to be owned by a decorator.\");var G=e.factory.createCallExpression(m.expression,void 0,void 0);Q.replaceNode(le,m.expression,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addNameToNamelessParameter\",B=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(w,N,e.Diagnostics.Add_parameter_name,w,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N.start)})}});function E(Q,le,N){var p=e.getTokenAtPosition(le,N),m=p.parent;if(!e.isParameter(m))return e.Debug.fail(\"Tried to add a parameter name to a non-parameter: \"+e.Debug.formatSyntaxKind(p.kind));var G=m.parent.parameters.indexOf(m);e.Debug.assert(!m.type,\"Tried to add a parameter name to a parameter that already had one.\"),e.Debug.assert(G>-1,\"Parameter not found in parent parameter list.\");var oe=e.factory.createTypeReferenceNode(m.name,void 0),f=e.factory.createParameterDeclaration(void 0,m.modifiers,m.dotDotDotToken,\"arg\"+G,m.questionToken,m.dotDotDotToken?e.factory.createArrayTypeNode(oe):oe,m.initializer);Q.replaceNode(le,m,f)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addOptionalPropertyUndefined\",B=[e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.program.getTypeChecker(),G=E(p.sourceFile,p.span,m);if(!!G.length){var oe=e.textChanges.ChangeTracker.with(p,function(f){return N(f,G)});return[C.createCodeFixActionWithoutFixAll(w,oe,e.Diagnostics.Add_undefined_to_optional_property_type)]}},fixIds:[w]});function E(p,m,G){var oe,f,T=le(e.getFixableErrorSpanExpression(p,m),G);if(!T)return e.emptyArray;var K=T.source,b=T.target,se=Q(K,b,G)?G.getTypeAtLocation(b.expression):G.getTypeAtLocation(b);return!((f=(oe=se.symbol)===null||oe===void 0?void 0:oe.declarations)===null||f===void 0)&&f.some(function(J){return e.getSourceFileOfNode(J).fileName.match(/\\.d\\.ts$/)})?e.emptyArray:G.getExactOptionalProperties(se)}function Q(p,m,G){return e.isPropertyAccessExpression(m)&&!!G.getExactOptionalProperties(G.getTypeAtLocation(m.expression)).length&&G.getTypeAtLocation(p)===G.getUndefinedType()}function le(p,m){var G;if(p){if(e.isBinaryExpression(p.parent)&&p.parent.operatorToken.kind===63)return{source:p.parent.right,target:p.parent.left};if(e.isVariableDeclaration(p.parent)&&p.parent.initializer)return{source:p.parent.initializer,target:p.parent.name};if(e.isCallExpression(p.parent)){var oe=m.getSymbolAtLocation(p.parent.expression);if(!(oe!=null&&oe.valueDeclaration)||!e.isFunctionLikeKind(oe.valueDeclaration.kind)||!e.isExpression(p))return;var f=p.parent.arguments.indexOf(p);if(f===-1)return;var T=oe.valueDeclaration.parameters[f].name;if(e.isIdentifier(T))return{source:p,target:T}}else if(e.isPropertyAssignment(p.parent)&&e.isIdentifier(p.parent.name)||e.isShorthandPropertyAssignment(p.parent)){var K=le(p.parent.parent,m);if(!K)return;var b=m.getPropertyOfType(m.getTypeAtLocation(K.target),p.parent.name.text),se=(G=b==null?void 0:b.declarations)===null||G===void 0?void 0:G[0];return se?{source:e.isPropertyAssignment(p.parent)?p.parent.initializer:p.parent.name,target:se}:void 0}}else return}function N(p,m){for(var G=0,oe=m;G1?(p.delete(m,b),p.insertNodeAfter(m,J,se)):p.replaceNode(m,J,se)}function ie(O){var ve=[];return O.exports&&O.exports.forEach(function(F){if(F.name===\"prototype\"&&F.declarations){var x=F.declarations[0];if(F.declarations.length===1&&e.isPropertyAccessExpression(x)&&e.isBinaryExpression(x.parent)&&x.parent.operatorToken.kind===63&&e.isObjectLiteralExpression(x.parent.right)){var X=x.parent.right;he(X.symbol,void 0,ve)}}else he(F,[e.factory.createToken(124)],ve)}),O.members&&O.members.forEach(function(F,x){var X,$,A,y;if(x===\"constructor\"&&F.valueDeclaration){var V=(y=(A=($=(X=O.exports)===null||X===void 0?void 0:X.get(\"prototype\"))===null||$===void 0?void 0:$.declarations)===null||A===void 0?void 0:A[0])===null||y===void 0?void 0:y.parent;V&&e.isBinaryExpression(V)&&e.isObjectLiteralExpression(V.right)&&e.some(V.right.properties,le)||p.delete(m,F.valueDeclaration.parent);return}he(F,void 0,ve)}),ve;function ee(F,x){return e.isAccessExpression(F)?e.isPropertyAccessExpression(F)&&le(F)?!0:e.isFunctionLike(x):e.every(F.properties,function(X){return!!(e.isMethodDeclaration(X)||e.isGetOrSetAccessorDeclaration(X)||e.isPropertyAssignment(X)&&e.isFunctionExpression(X.initializer)&&!!X.name||le(X))})}function he(F,x,X){if(!(F.flags&8192)&&!(F.flags&4096))return;var $=F.valueDeclaration,A=$.parent,y=A.right;if(!ee($,y)||e.some(X,function(H){var I=e.getNameOfDeclaration(H);return!!(I&&e.isIdentifier(I)&&e.idText(I)===e.symbolName(F))}))return;var V=A.parent&&A.parent.kind===238?A.parent:A;if(p.delete(m,V),!y){X.push(e.factory.createPropertyDeclaration([],x,F.name,void 0,void 0,void 0));return}if(e.isAccessExpression($)&&(e.isFunctionExpression(y)||e.isArrowFunction(y))){var L=e.getQuotePreference(m,f),P=N($,T,L);P&&Y(X,y,P);return}else if(e.isObjectLiteralExpression(y)){e.forEach(y.properties,function(H){(e.isMethodDeclaration(H)||e.isGetOrSetAccessorDeclaration(H))&&X.push(H),e.isPropertyAssignment(H)&&e.isFunctionExpression(H.initializer)&&Y(X,H.initializer,H.name),le(H)});return}else{if(e.isSourceFileJS(m)||!e.isPropertyAccessExpression($))return;var k=e.factory.createPropertyDeclaration(void 0,x,$.name,void 0,void 0,y);e.copyLeadingComments(A.parent,k,m),X.push(k);return}function Y(H,I,l){return e.isFunctionExpression(I)?U(H,I,l):j(H,I,l)}function U(H,I,l){var d=e.concatenate(x,Q(I,131)),D=e.factory.createMethodDeclaration(void 0,d,void 0,l,void 0,void 0,I.parameters,void 0,I.body);e.copyLeadingComments(A,D,m),H.push(D)}function j(H,I,l){var d=I.body,D;d.kind===235?D=d:D=e.factory.createBlock([e.factory.createReturnStatement(d)]);var fe=e.concatenate(x,Q(I,131)),g=e.factory.createMethodDeclaration(void 0,fe,void 0,l,void 0,void 0,I.parameters,void 0,D);e.copyLeadingComments(A,g,m),H.push(g)}}}function R(O){var ve=O.initializer;if(!(!ve||!e.isFunctionExpression(ve)||!e.isIdentifier(O.name))){var ee=ie(O.symbol);ve.body&&ee.unshift(e.factory.createConstructorDeclaration(void 0,void 0,ve.parameters,ve.body));var he=Q(O.parent.parent,93),F=e.factory.createClassDeclaration(void 0,he,O.name,void 0,void 0,ee);return F}}function q(O){var ve=ie(K);O.body&&ve.unshift(e.factory.createConstructorDeclaration(void 0,void 0,O.parameters,O.body));var ee=Q(O,93),he=e.factory.createClassDeclaration(void 0,ee,O.name,void 0,void 0,ve);return he}}function Q(p,m){return e.filter(p.modifiers,function(G){return G.kind===m})}function le(p){return p.name?!!(e.isIdentifier(p.name)&&p.name.text===\"constructor\"):!1}function N(p,m,G){if(e.isPropertyAccessExpression(p))return p.name;var oe=p.argumentExpression;if(e.isNumericLiteral(oe))return oe;if(e.isStringLiteralLike(oe))return e.isIdentifierText(oe.text,e.getEmitScriptTarget(m))?e.factory.createIdentifier(oe.text):e.isNoSubstitutionTemplateLiteral(oe)?e.factory.createStringLiteral(oe.text,G===0):oe}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"convertToAsyncFunction\",B=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],E=!0;C.registerCodeFix({errorCodes:B,getCodeActions:function(g){E=!0;var ne=e.textChanges.ChangeTracker.with(g,function(ue){return le(ue,g.sourceFile,g.span.start,g.program.getTypeChecker())});return E?[C.createCodeFixAction(w,ne,e.Diagnostics.Convert_to_async_function,w,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[w],getAllCodeActions:function(g){return C.codeFixAll(g,B,function(ne,ue){return le(ne,ue.file,ue.start,g.program.getTypeChecker())})}});var Q;(function(g){g[g.Identifier=0]=\"Identifier\",g[g.BindingPattern=1]=\"BindingPattern\"})(Q||(Q={}));function le(g,ne,ue,We){var Fe=e.getTokenAtPosition(ne,ue),Z;if(e.isIdentifier(Fe)&&e.isVariableDeclaration(Fe.parent)&&Fe.parent.initializer&&e.isFunctionLikeDeclaration(Fe.parent.initializer)?Z=Fe.parent.initializer:Z=e.tryCast(e.getContainingFunction(e.getTokenAtPosition(ne,ue)),e.canBeConvertedToAsync),!!Z){var Be=new e.Map,ge=e.isInJSFile(Z),Re=p(Z,We),ze=T(Z,We,Be);if(!!e.returnsPromise(ze,We)){var Ee=ze.body&&e.isBlock(ze.body)?N(ze.body,We):e.emptyArray,He={checker:We,synthNamesMap:Be,setOfExpressionsToReturn:Re,isInJSFile:ge};if(!!Ee.length){var rr=Z.modifiers?Z.modifiers.end:Z.decorators?e.skipTrivia(ne.text,Z.decorators.end):Z.getStart(ne),Ie=Z.modifiers?{prefix:\" \"}:{suffix:\" \"};g.insertModifierAt(ne,rr,131,Ie);for(var _e=function(er){if(e.forEachChild(er,function ir(Cr){if(e.isCallExpression(Cr)){var Ye=J(Cr,Cr,He,!1);if(b())return!0;g.replaceNodeWithNodes(ne,er,Ye)}else if(!e.isFunctionLike(Cr)&&(e.forEachChild(Cr,ir),b()))return!0}),b())return{value:void 0}},we=0,de=Ee;we0)return ir;if(Ie){var er=A(Z.checker,Ie,rr);if(fe(Fe,Z))return X(er,oe(Fe,g,Z.checker));var Cr=x(ue,er,void 0);return ue&&ue.types.push(Z.checker.getAwaitedType(Ie)||Ie),Cr}else return se()}}default:return se()}return e.emptyArray}function A(g,ne,ue){var We=e.getSynthesizedDeepClone(ue);return g.getPromisedTypeOfPromise(ne)?e.factory.createAwaitExpression(We):We}function y(g,ne){var ue=ne.getSignaturesOfType(g,0);return e.lastOrUndefined(ue)}function V(g,ne,ue,We){for(var Fe=[],Z=0,Be=g;Z0)return}else e.isFunctionLike(Be)||e.forEachChild(Be,Z)}),Fe}function P(g,ne){var ue=[],We;if(e.isFunctionLikeDeclaration(g)){if(g.parameters.length>0){var Fe=g.parameters[0].name;We=Z(Fe)}}else e.isIdentifier(g)?We=Be(g):e.isPropertyAccessExpression(g)&&e.isIdentifier(g.name)&&(We=Be(g.name));if(!We||\"identifier\"in We&&We.identifier.text===\"undefined\")return;return We;function Z(ze){if(e.isIdentifier(ze))return Be(ze);var Ee=e.flatMap(ze.elements,function(He){return e.isOmittedExpression(He)?[]:[Z(He.name)]});return U(ze,Ee)}function Be(ze){var Ee=Re(ze),He=ge(Ee);if(!He)return Y(ze,ue);var rr=ne.synthNamesMap.get(e.getSymbolId(He).toString());return rr||Y(ze,ue)}function ge(ze){return ze.symbol?ze.symbol:ne.checker.getSymbolAtLocation(ze)}function Re(ze){return ze.original?ze.original:ze}}function k(g){return g?d(g)?!g.identifier.text:e.every(g.elements,k):!0}function Y(g,ne){return ne===void 0&&(ne=[]),{kind:0,identifier:g,types:ne,hasBeenDeclared:!1,hasBeenReferenced:!1}}function U(g,ne,ue){return ne===void 0&&(ne=e.emptyArray),ue===void 0&&(ue=[]),{kind:1,bindingPattern:g,elements:ne,types:ue}}function j(g){return g.hasBeenReferenced=!0,g.identifier}function H(g){return d(g)?l(g):I(g)}function I(g){for(var ne=0,ue=g.elements;ne1?[[K(k),b(k)],!0]:[[b(k)],!0]:[[K(k)],!1]}function K(L){return y(void 0,L)}function b(L){return y([e.factory.createExportSpecifier(!1,void 0,\"default\")],L)}function se(L,P,k){var Y=L.left,U=L.right,j=L.parent,H=Y.name.text;if((e.isFunctionExpression(U)||e.isArrowFunction(U)||e.isClassExpression(U))&&(!U.name||U.name.text===H)){k.replaceRange(P,{pos:Y.getStart(P),end:U.getStart(P)},e.factory.createToken(93),{suffix:\" \"}),U.name||k.insertName(P,U,H);var I=e.findChildOfKind(j,26,P);I&&k.delete(P,I)}else k.replaceNodeRangeWithNodes(P,Y.expression,e.findChildOfKind(Y,24,P),[e.factory.createToken(93),e.factory.createToken(85)],{joiner:\" \",suffix:\" \"})}function J(L,P,k){var Y=[e.factory.createToken(93)];switch(P.kind){case 213:{var U=P.name;if(U&&U.text!==L)return j()}case 214:return F(L,Y,P,k);case 226:return x(L,Y,P,k);default:return j()}function j(){return A(Y,e.factory.createIdentifier(L),ie(P,k))}}function ie(L,P){if(!P||!e.some(e.arrayFrom(P.keys()),function(Y){return e.rangeContainsRange(L,Y)}))return L;return e.isArray(L)?e.getSynthesizedDeepClonesWithReplacements(L,!0,k):e.getSynthesizedDeepCloneWithReplacements(L,!0,k);function k(Y){if(Y.kind===206){var U=P.get(Y);return P.delete(Y),U}}}function R(L,P,k,Y,U,j){switch(L.kind){case 201:{var H=e.mapAllOrFail(L.elements,function(l){return l.dotDotDotToken||l.initializer||l.propertyName&&!e.isIdentifier(l.propertyName)||!e.isIdentifier(l.name)?void 0:$(l.propertyName&&l.propertyName.text,l.name.text)});if(H)return V([e.makeImport(void 0,H,P,j)])}case 202:{var I=O(C.moduleSpecifierToValidIdentifier(P.text,U),Y);return V([e.makeImport(e.factory.createIdentifier(I),void 0,P,j),A(void 0,e.getSynthesizedDeepClone(L),e.factory.createIdentifier(I))])}case 79:return q(L,P,k,Y,j);default:return e.Debug.assertNever(L,\"Convert to ES module got invalid name kind \".concat(L.kind))}}function q(L,P,k,Y,U){for(var j=k.getSymbolAtLocation(L),H=new e.Map,I=!1,l,d=0,D=Y.original.get(L.text);d0||Cr.length>0||Ye.size>0||Br.size>0}}var le;(function(_e){_e[_e.UseNamespace=0]=\"UseNamespace\",_e[_e.JsdocTypeImport=1]=\"JsdocTypeImport\",_e[_e.AddToExisting=2]=\"AddToExisting\",_e[_e.AddNew=3]=\"AddNew\",_e[_e.PromoteTypeOnly=4]=\"PromoteTypeOnly\"})(le||(le={}));var N;(function(_e){_e[_e.Allowed=1]=\"Allowed\",_e[_e.Required=2]=\"Required\",_e[_e.NotAllowed=4]=\"NotAllowed\"})(N||(N={}));function p(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=ir.getCompilerOptions(),Ne=e.pathIsBareSpecifier(e.stripQuotes(we.name))?[f(_e,we,ir,er)]:T(de,_e,we,ye,Ae,er,ir,Br,!0),n=ve(de,ir),lr=e.isValidTypeOnlyAliasUseSite(e.getTokenAtPosition(de,Ye)),be=e.Debug.checkDefined(G(de,Ne,we,ir,{symbolName:ye,position:Ye},lr,n,er,Br));return{moduleSpecifier:be.moduleSpecifier,codeAction:oe(fe({host:er,formatContext:Cr,preferences:Br},de,ye,be,!1,e.getQuotePreference(de,Br),Er))}}C.getImportCompletionAction=p;function m(_e,we,de,ye,Ae,er){var ir=de.getCompilerOptions(),Cr=I(_e,de.getTypeChecker(),we,ir),Ye=H(_e,we,Cr,de),Br=Cr!==we.text;return Ye&&oe(fe({host:ye,formatContext:Ae,preferences:er},_e,Cr,Ye,Br,1,ir))}C.getPromoteTypeOnlyCompletionAction=m;function G(_e,we,de,ye,Ae,er,ir,Cr,Ye){e.Debug.assert(we.some(function(Er){return Er.moduleSymbol===de||Er.symbol.parent===de}),\"Some exportInfo should match the specified moduleSymbol\");var Br=e.createPackageJsonImportFilter(_e,Ye,Cr);return $(b(we,Ae,er,ir,ye,_e,Cr,Ye).fixes,_e,ye,Br,Cr)}function oe(_e){var we=_e.description,de=_e.changes,ye=_e.commands;return{description:we,changes:de,commands:ye}}function f(_e,we,de,ye){var Ae,er,ir=de.getCompilerOptions(),Cr=Br(de.getTypeChecker(),!1);if(Cr)return Cr;var Ye=(er=(Ae=ye.getPackageJsonAutoImportProvider)===null||Ae===void 0?void 0:Ae.call(ye))===null||er===void 0?void 0:er.getTypeChecker();return e.Debug.checkDefined(Ye&&Br(Ye,!0),\"Could not find symbol in specified module for code actions\");function Br(Er,Ne){var n=e.getDefaultLikeExportInfo(we,Er,ir);if(n&&e.skipAlias(n.symbol,Er)===_e)return{symbol:n.symbol,moduleSymbol:we,moduleFileName:void 0,exportKind:n.exportKind,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne};var lr=Er.tryGetMemberInModuleExportsAndProperties(_e.name,we);if(lr&&e.skipAlias(lr,Er)===_e)return{symbol:lr,moduleSymbol:we,moduleFileName:void 0,exportKind:0,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne}}}function T(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br=[],Er=ir.getCompilerOptions(),Ne=e.memoizeOne(function(lr){return e.createModuleSpecifierResolutionHost(lr?er.getPackageJsonAutoImportProvider():ir,er)});return e.forEachExternalModuleToImportFrom(ir,er,Ye,function(lr,be,Ge,ur){var yr=Ge.getTypeChecker();if(!(be&&lr!==de&&e.startsWith(_e.fileName,e.getDirectoryPath(be.fileName)))){var Ir=e.getDefaultLikeExportInfo(lr,yr,Er);Ir&&(Ir.name===ye||rr(lr,e.getEmitScriptTarget(Er),Ae)===ye)&&e.skipAlias(Ir.symbol,yr)===we&&n(Ge,be,ur)&&Br.push({symbol:Ir.symbol,moduleSymbol:lr,moduleFileName:be==null?void 0:be.fileName,exportKind:Ir.exportKind,targetFlags:e.skipAlias(Ir.symbol,yr).flags,isFromPackageJson:ur});for(var wr=0,Ur=yr.getExportsAndPropertiesOfModule(lr);wr0}:{kind:3,moduleSpecifier:qr,importKind:Y(we,yr.exportKind,Er),useRequire:Ae,addAsTypeOnly:or,exportInfo:yr,isReExport:Ir>0}})});return{computedWithoutCacheCount:Ge,fixes:ur}}function he(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=e.firstDefined(we,function(Ne){return F(Ne,er,ir,de.getTypeChecker(),de.getCompilerOptions())});return Er?{fixes:[Er]}:ee(de,ye,Ae,er,ir,_e,Cr,Ye,Br)}function F(_e,we,de,ye,Ae){var er,ir=_e.declaration,Cr=_e.importKind,Ye=_e.symbol,Br=_e.targetFlags,Er=(er=e.tryGetModuleSpecifierFromDeclaration(ir))===null||er===void 0?void 0:er.text;if(Er){var Ne=de?4:R(we,!0,Ye,Br,ye,Ae);return{kind:3,moduleSpecifier:Er,importKind:Cr,addAsTypeOnly:Ne,useRequire:de}}}function x(_e,we,de,ye){var Ae=e.getTokenAtPosition(_e.sourceFile,de),er;if(we===e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code)er=P(_e,Ae);else if(e.isIdentifier(Ae))if(we===e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code){var ir=I(_e.sourceFile,_e.program.getTypeChecker(),Ae,_e.program.getCompilerOptions()),Cr=H(_e.sourceFile,Ae,ir,_e.program);return Cr&&{fixes:[Cr],symbolName:ir,errorIdentifierText:Ae.text}}else er=j(_e,Ae,ye);else return;var Ye=e.createPackageJsonImportFilter(_e.sourceFile,_e.preferences,_e.host);return er&&Ke(Ke({},er),{fixes:X(er.fixes,_e.sourceFile,_e.program,Ye,_e.host)})}function X(_e,we,de,ye,Ae){var er=function(ir){return e.toPath(ir,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))};return e.sort(_e,function(ir,Cr){return e.compareValues(ir.kind,Cr.kind)||A(ir,Cr,we,de,ye.allowsImportingSpecifier,er)})}function $(_e,we,de,ye,Ae){if(!!e.some(_e))return _e[0].kind===0||_e[0].kind===2?_e[0]:_e.reduce(function(er,ir){return A(ir,er,we,de,ye.allowsImportingSpecifier,function(Cr){return e.toPath(Cr,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))})===-1?ir:er})}function A(_e,we,de,ye,Ae,er){return _e.kind!==0&&we.kind!==0?e.compareBooleans(Ae(we.moduleSpecifier),Ae(_e.moduleSpecifier))||L(_e.moduleSpecifier,we.moduleSpecifier,de,ye)||e.compareBooleans(y(_e,de,ye.getCompilerOptions(),er),y(we,de,ye.getCompilerOptions(),er))||e.compareNumberOfDirectorySeparators(_e.moduleSpecifier,we.moduleSpecifier):0}function y(_e,we,de,ye){var Ae;if(_e.isReExport&&((Ae=_e.exportInfo)===null||Ae===void 0?void 0:Ae.moduleFileName)&&e.getEmitModuleResolutionKind(de)===e.ModuleResolutionKind.NodeJs&&V(_e.exportInfo.moduleFileName)){var er=ye(e.getDirectoryPath(_e.exportInfo.moduleFileName));return e.startsWith(we.path,er)}return!1}function V(_e){return e.getBaseFileName(_e,[\".js\",\".jsx\",\".d.ts\",\".ts\",\".tsx\"],!0)===\"index\"}function L(_e,we,de,ye){return e.startsWith(_e,\"node:\")&&!e.startsWith(we,\"node:\")?e.shouldUseUriStyleNodeCoreModules(de,ye)?-1:1:e.startsWith(we,\"node:\")&&!e.startsWith(_e,\"node:\")?e.shouldUseUriStyleNodeCoreModules(de,ye)?1:-1:0}function P(_e,we){var de,ye=_e.sourceFile,Ae=_e.program,er=_e.host,ir=_e.preferences,Cr=Ae.getTypeChecker(),Ye=k(we,Cr);if(!!Ye){var Br=Cr.getAliasedSymbol(Ye),Er=Ye.name,Ne=[{symbol:Ye,moduleSymbol:Br,moduleFileName:void 0,exportKind:3,targetFlags:Br.flags,isFromPackageJson:!1}],n=ve(ye,Ae),lr=e.isIdentifier(we)?we.getStart(ye):void 0,be=b(Ne,lr?{position:lr,symbolName:Er}:void 0,!1,n,Ae,ye,er,ir).fixes;return{fixes:be,symbolName:Er,errorIdentifierText:(de=e.tryCast(we,e.isIdentifier))===null||de===void 0?void 0:de.text}}}function k(_e,we){var de=e.isIdentifier(_e)?we.getSymbolAtLocation(_e):void 0;if(e.isUMDExportSymbol(de))return de;var ye=_e.parent;return e.isJsxOpeningLikeElement(ye)&&ye.tagName===_e||e.isJsxOpeningFragment(ye)?e.tryCast(we.resolveName(we.getJsxNamespace(ye),e.isJsxOpeningLikeElement(ye)?_e:ye,111551,!1),e.isUMDExportSymbol):void 0}function Y(_e,we,de,ye){switch(we){case 0:return 0;case 1:return 1;case 2:return D(_e,de,!!ye);case 3:return U(_e,de,!!ye);default:return e.Debug.assertNever(we)}}C.getImportKind=Y;function U(_e,we,de){if(e.getAllowSyntheticDefaultImports(we))return 1;var ye=e.getEmitModuleKind(we);switch(ye){case e.ModuleKind.AMD:case e.ModuleKind.CommonJS:case e.ModuleKind.UMD:return e.isInJSFile(_e)&&(e.isExternalModule(_e)||de)?2:3;case e.ModuleKind.System:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.None:return 2;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return _e.impliedNodeFormat===e.ModuleKind.ESNext?2:3;default:return e.Debug.assertNever(ye,\"Unexpected moduleKind \".concat(ye))}}function j(_e,we,de){var ye=_e.sourceFile,Ae=_e.program,er=_e.cancellationToken,ir=_e.host,Cr=_e.preferences,Ye=Ae.getTypeChecker(),Br=Ae.getCompilerOptions(),Er=I(ye,Ye,we,Br);if(Er!==\"default\"){var Ne=e.isValidTypeOnlyAliasUseSite(we),n=ve(ye,Ae),lr=d(Er,e.isJSXTagName(we),e.getMeaningFromLocation(we),er,ye,Ae,de,ir,Cr),be=e.arrayFrom(e.flatMapIterator(lr.entries(),function(Ge){var ur=Ge[0],yr=Ge[1];return b(yr,{symbolName:Er,position:we.getStart(ye)},Ne,n,Ae,ye,ir,Cr).fixes}));return{fixes:be,symbolName:Er,errorIdentifierText:we.text}}}function H(_e,we,de,ye){var Ae=ye.getTypeChecker(),er=Ae.resolveName(de,we,111551,!0);if(!!er){var ir=Ae.getTypeOnlyAliasDeclaration(er);if(!(!ir||e.getSourceFileOfNode(ir)!==_e))return{kind:4,typeOnlyAliasDeclaration:ir}}}function I(_e,we,de,ye){var Ae=de.parent;if((e.isJsxOpeningLikeElement(Ae)||e.isJsxClosingElement(Ae))&&Ae.tagName===de&&e.jsxModeNeedsExplicitImport(ye.jsx)){var er=we.getJsxNamespace(_e);if(l(er,de,we))return er}return de.text}function l(_e,we,de){if(e.isIntrinsicJsxName(we.text))return!0;var ye=de.resolveName(_e,we,111551,!0);return!ye||e.some(ye.declarations,e.isTypeOnlyImportOrExportDeclaration)&&!(ye.flags&111551)}function d(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br,Er=e.createMultiMap(),Ne=e.createPackageJsonImportFilter(Ae,Ye,Cr),n=(Br=Cr.getModuleSpecifierCache)===null||Br===void 0?void 0:Br.call(Cr),lr=e.memoizeOne(function(Ge){return e.createModuleSpecifierResolutionHost(Ge?Cr.getPackageJsonAutoImportProvider():er,Cr)});function be(Ge,ur,yr,Ir,wr,Ur){var ii=lr(Ur);if(ur&&e.isImportableFile(wr,Ae,ur,Ye,Ne,ii,n)||!ur&&Ne.allowsImportingAmbientModule(Ge,ii)){var mi=wr.getTypeChecker();Er.add(e.getUniqueSymbolId(yr,mi).toString(),{symbol:yr,moduleSymbol:Ge,moduleFileName:ur==null?void 0:ur.fileName,exportKind:Ir,targetFlags:e.skipAlias(yr,mi).flags,isFromPackageJson:Ur})}}return e.forEachExternalModuleToImportFrom(er,Cr,ir,function(Ge,ur,yr,Ir){var wr=yr.getTypeChecker();ye.throwIfCancellationRequested();var Ur=yr.getCompilerOptions(),ii=e.getDefaultLikeExportInfo(Ge,wr,Ur);ii&&(ii.name===_e||rr(Ge,e.getEmitScriptTarget(Ur),we)===_e)&&He(ii.symbolForMeaning,de)&&be(Ge,ur,ii.symbol,ii.exportKind,yr,Ir);var mi=wr.tryGetMemberInModuleExportsAndProperties(_e,Ge);mi&&He(mi,de)&&be(Ge,ur,mi,0,yr,Ir)}),Er}function D(_e,we,de){var ye=e.getAllowSyntheticDefaultImports(we),Ae=e.isInJSFile(_e);if(!Ae&&e.getEmitModuleKind(we)>=e.ModuleKind.ES2015)return ye?1:2;if(Ae)return e.isExternalModule(_e)||de?ye?1:2:3;for(var er=0,ir=_e.statements;er1&&e.OrganizeImports.importSpecifiersAreSorted(we.parent.elements)){_e.delete(ye,we);var er=e.factory.updateImportSpecifier(we,!1,we.propertyName,we.name),ir=e.OrganizeImports.getImportSpecifierInsertionIndex(we.parent.elements,er);_e.insertImportSpecifierAtIndex(ye,er,we.parent,ir)}else _e.deleteRange(ye,we.getFirstToken());return we}else return e.Debug.assert(we.parent.parent.isTypeOnly),Cr(we.parent.parent),we.parent.parent;case 267:return Cr(we),we;case 268:return Cr(we.parent),we.parent;case 265:return _e.deleteRange(ye,we.getChildAt(1)),we;default:e.Debug.failBadSyntaxKind(we)}function Cr(Ye){if(_e.delete(ye,e.getTypeKeywordOfTypeOnlyImport(Ye,ye)),Ae){var Br=e.tryCast(Ye.namedBindings,e.isNamedImports);if(Br&&Br.elements.length>1){e.OrganizeImports.importSpecifiersAreSorted(Br.elements)&&we.kind===270&&Br.elements.indexOf(we)!==0&&(_e.delete(ye,we),_e.insertImportSpecifierAtIndex(ye,we,Br,0));for(var Er=0,Ne=Br.elements;Er\"),[e.Diagnostics.Convert_function_expression_0_to_arrow_function,f?f.text:e.ANONYMOUS]):(Q.replaceNode(le,oe,e.factory.createToken(85)),Q.insertText(le,f.end,\" = \"),Q.insertText(le,T.pos,\" =>\"),[e.Diagnostics.Convert_function_declaration_0_to_arrow_function,f.text])}}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixIncorrectNamedTupleSyntax\",B=[e.Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,e.Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=E(p,m.start),oe=e.textChanges.ChangeTracker.with(N,function(f){return Q(f,p,G)});return[C.createCodeFixAction(w,oe,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels,w,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)]},fixIds:[w]});function E(le,N){var p=e.getTokenAtPosition(le,N);return e.findAncestor(p,function(m){return m.kind===197})}function Q(le,N,p){if(!!p){for(var m=p.type,G=!1,oe=!1;m.kind===185||m.kind===186||m.kind===191;)m.kind===185?G=!0:m.kind===186&&(oe=!0),m=m.type;var f=e.factory.updateNamedTupleMember(p,p.dotDotDotToken||(oe?e.factory.createToken(25):void 0),p.name,p.questionToken||(G?e.factory.createToken(57):void 0),m);f!==p&&le.replaceNode(N,p,f)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixSpelling\",B=[e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Could_not_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_namespace_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2.code,e.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,e.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,e.Diagnostics.No_overload_matches_this_call.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.errorCode,oe=E(m,p.span.start,p,G);if(!!oe){var f=oe.node,T=oe.suggestedSymbol,K=e.getEmitScriptTarget(p.host.getCompilationSettings()),b=e.textChanges.ChangeTracker.with(p,function(se){return Q(se,m,f,T,K)});return[C.createCodeFixAction(\"spelling\",b,[e.Diagnostics.Change_spelling_to_0,e.symbolName(T)],w,e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[w],getAllCodeActions:function(p){return C.codeFixAll(p,B,function(m,G){var oe=E(G.file,G.start,p,G.code),f=e.getEmitScriptTarget(p.host.getCompilationSettings());oe&&Q(m,p.sourceFile,oe.node,oe.suggestedSymbol,f)})}});function E(p,m,G,oe){var f=e.getTokenAtPosition(p,m),T=f.parent;if(!((oe===e.Diagnostics.No_overload_matches_this_call.code||oe===e.Diagnostics.Type_0_is_not_assignable_to_type_1.code)&&!e.isJsxAttribute(T))){var K=G.program.getTypeChecker(),b;if(e.isPropertyAccessExpression(T)&&T.name===f){e.Debug.assert(e.isMemberName(f),\"Expected an identifier for spelling (property access)\");var se=K.getTypeAtLocation(T.expression);T.flags&32&&(se=K.getNonNullableType(se)),b=K.getSuggestedSymbolForNonexistentProperty(f,se)}else if(e.isBinaryExpression(T)&&T.operatorToken.kind===101&&T.left===f&&e.isPrivateIdentifier(f)){var J=K.getTypeAtLocation(T.right);b=K.getSuggestedSymbolForNonexistentProperty(f,J)}else if(e.isQualifiedName(T)&&T.right===f){var ie=K.getSymbolAtLocation(T.left);ie&&ie.flags&1536&&(b=K.getSuggestedSymbolForNonexistentModule(T.right,ie))}else if(e.isImportSpecifier(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,\"Expected an identifier for spelling (import)\");var R=e.findAncestor(f,e.isImportDeclaration),q=N(p,G,R);q&&q.symbol&&(b=K.getSuggestedSymbolForNonexistentModule(f,q.symbol))}else if(e.isJsxAttribute(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,\"Expected an identifier for JSX attribute\");var O=e.findAncestor(f,e.isJsxOpeningLikeElement),ve=K.getContextualTypeForArgumentAtIndex(O,0);b=K.getSuggestedSymbolForNonexistentJSXAttribute(f,ve)}else if(e.hasSyntacticModifier(T,16384)&&e.isClassElement(T)&&T.name===f){var ee=e.findAncestor(f,e.isClassLike),he=ee?e.getEffectiveBaseTypeNode(ee):void 0,F=he?K.getTypeAtLocation(he):void 0;F&&(b=K.getSuggestedSymbolForNonexistentClassMember(e.getTextOfNode(f),F))}else{var x=e.getMeaningFromLocation(f),X=e.getTextOfNode(f);e.Debug.assert(X!==void 0,\"name should be defined\"),b=K.getSuggestedSymbolForNonexistentSymbol(f,X,le(x))}return b===void 0?void 0:{node:f,suggestedSymbol:b}}}function Q(p,m,G,oe,f){var T=e.symbolName(oe);if(!e.isIdentifierText(T,f)&&e.isPropertyAccessExpression(G.parent)){var K=oe.valueDeclaration;K&&e.isNamedDeclaration(K)&&e.isPrivateIdentifier(K.name)?p.replaceNode(m,G,e.factory.createIdentifier(T)):p.replaceNode(m,G.parent,e.factory.createElementAccessExpression(G.parent.expression,e.factory.createStringLiteral(T)))}else p.replaceNode(m,G,e.factory.createIdentifier(T))}function le(p){var m=0;return p&4&&(m|=1920),p&2&&(m|=788968),p&1&&(m|=111551),m}function N(p,m,G){if(!(!G||!e.isStringLiteralLike(G.moduleSpecifier))){var oe=e.getResolvedModule(p,G.moduleSpecifier.text,e.getModeForUsageLocation(p,G.moduleSpecifier));if(!!oe)return m.program.getSourceFile(oe.resolvedFileName)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"returnValueCorrect\",B=\"fixAddReturnStatement\",E=\"fixRemoveBracesFromArrowFunctionBody\",Q=\"fixWrapTheBlockWithParen\",le=[e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code],N;(function(R){R[R.MissingReturnStatement=0]=\"MissingReturnStatement\",R[R.MissingParentheses=1]=\"MissingParentheses\"})(N||(N={})),C.registerCodeFix({errorCodes:le,fixIds:[B,E,Q],getCodeActions:function(q){var O=q.program,ve=q.sourceFile,ee=q.span.start,he=q.errorCode,F=oe(O.getTypeChecker(),ve,ee,he);if(!!F)return F.kind===N.MissingReturnStatement?e.append([se(q,F.expression,F.statement)],e.isArrowFunction(F.declaration)?J(q,F.declaration,F.expression,F.commentSource):void 0):[ie(q,F.declaration,F.expression)]},getAllCodeActions:function(R){return C.codeFixAll(R,le,function(q,O){var ve=oe(R.program.getTypeChecker(),O.file,O.start,O.code);if(!!ve)switch(R.fixId){case B:T(q,O.file,ve.expression,ve.statement);break;case E:if(!e.isArrowFunction(ve.declaration))return;K(q,O.file,ve.declaration,ve.expression,ve.commentSource,!1);break;case Q:if(!e.isArrowFunction(ve.declaration))return;b(q,O.file,ve.declaration,ve.expression);break;default:e.Debug.fail(JSON.stringify(R.fixId))}})}});function p(R,q,O){var ve=R.createSymbol(4,q.escapedText);ve.type=R.getTypeAtLocation(O);var ee=e.createSymbolTable([ve]);return R.createAnonymousType(void 0,ee,[],[],[])}function m(R,q,O,ve){if(!(!q.body||!e.isBlock(q.body)||e.length(q.body.statements)!==1)){var ee=e.first(q.body.statements);if(e.isExpressionStatement(ee)&&G(R,q,R.getTypeAtLocation(ee.expression),O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:ee.expression,statement:ee,commentSource:ee.expression};if(e.isLabeledStatement(ee)&&e.isExpressionStatement(ee.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(ee.label,ee.statement.expression)]),F=p(R,ee.label,ee.statement.expression);if(G(R,q,F,O,ve))return e.isArrowFunction(q)?{declaration:q,kind:N.MissingParentheses,expression:he,statement:ee,commentSource:ee.statement.expression}:{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:ee.statement.expression}}else if(e.isBlock(ee)&&e.length(ee.statements)===1){var x=e.first(ee.statements);if(e.isLabeledStatement(x)&&e.isExpressionStatement(x.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(x.label,x.statement.expression)]),F=p(R,x.label,x.statement.expression);if(G(R,q,F,O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:x}}}}}function G(R,q,O,ve,ee){if(ee){var he=R.getSignatureFromDeclaration(q);if(he){e.hasSyntacticModifier(q,256)&&(O=R.createPromiseType(O));var F=R.createSignature(q,he.typeParameters,he.thisParameter,he.parameters,O,void 0,he.minArgumentCount,he.flags);O=R.createAnonymousType(void 0,e.createSymbolTable(),[F],[],[])}else O=R.getAnyType()}return R.isTypeAssignableTo(O,ve)}function oe(R,q,O,ve){var ee=e.getTokenAtPosition(q,O);if(!!ee.parent){var he=e.findAncestor(ee.parent,e.isFunctionLikeDeclaration);switch(ve){case e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:return!he||!he.body||!he.type||!e.rangeContainsRange(he.type,ee)?void 0:m(R,he,R.getTypeFromTypeNode(he.type),!1);case e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:if(!he||!e.isCallExpression(he.parent)||!he.body)return;var F=he.parent.arguments.indexOf(he),x=R.getContextualTypeForArgumentAtIndex(he.parent,F);return x?m(R,he,x,!0):void 0;case e.Diagnostics.Type_0_is_not_assignable_to_type_1.code:if(!e.isDeclarationName(ee)||!e.isVariableLike(ee.parent)&&!e.isJsxAttribute(ee.parent))return;var X=f(ee.parent);return!X||!e.isFunctionLikeDeclaration(X)||!X.body?void 0:m(R,X,R.getTypeAtLocation(ee.parent),!0)}}}function f(R){switch(R.kind){case 254:case 164:case 203:case 167:case 296:return R.initializer;case 285:return R.initializer&&(e.isJsxExpression(R.initializer)?R.initializer.expression:void 0);case 297:case 166:case 299:case 347:case 340:return}}function T(R,q,O,ve){e.suppressLeadingAndTrailingTrivia(O);var ee=e.probablyUsesSemicolons(q);R.replaceNode(q,ve,e.factory.createReturnStatement(O),{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Exclude,suffix:ee?\";\":void 0})}function K(R,q,O,ve,ee,he){var F=he||e.needsParentheses(ve)?e.factory.createParenthesizedExpression(ve):ve;e.suppressLeadingAndTrailingTrivia(ee),e.copyComments(ee,F),R.replaceNode(q,O.body,F)}function b(R,q,O,ve){R.replaceNode(q,O.body,e.factory.createParenthesizedExpression(ve))}function se(R,q,O){var ve=e.textChanges.ChangeTracker.with(R,function(ee){return T(ee,R.sourceFile,q,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Add_a_return_statement,B,e.Diagnostics.Add_all_missing_return_statement)}function J(R,q,O,ve){var ee=e.textChanges.ChangeTracker.with(R,function(he){return K(he,R.sourceFile,q,O,ve,!1)});return C.createCodeFixAction(w,ee,e.Diagnostics.Remove_braces_from_arrow_function_body,E,e.Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues)}function ie(R,q,O){var ve=e.textChanges.ChangeTracker.with(R,function(ee){return b(ee,R.sourceFile,q,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal,Q,e.Diagnostics.Wrap_all_object_literal_with_parentheses)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixMissingMember\",B=\"fixMissingProperties\",E=\"fixMissingAttributes\",Q=\"fixMissingFunctionDeclaration\",le=[e.Diagnostics.Property_0_does_not_exist_on_type_1.code,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,e.Diagnostics.Cannot_find_name_0.code];C.registerCodeFix({errorCodes:le,getCodeActions:function(y){var V=y.program.getTypeChecker(),L=p(y.sourceFile,y.span.start,y.errorCode,V,y.program);if(!!L){if(L.kind===3){var P=e.textChanges.ChangeTracker.with(y,function(k){return he(k,y,L)});return[C.createCodeFixAction(B,P,e.Diagnostics.Add_missing_properties,B,e.Diagnostics.Add_all_missing_properties)]}if(L.kind===4){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ee(Y,y,L)});return[C.createCodeFixAction(E,P,e.Diagnostics.Add_missing_attributes,E,e.Diagnostics.Add_all_missing_attributes)]}if(L.kind===2){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ve(Y,y,L)});return[C.createCodeFixAction(Q,P,[e.Diagnostics.Add_missing_function_declaration_0,L.token.text],Q,e.Diagnostics.Add_all_missing_function_declarations)]}if(L.kind===1){var P=e.textChanges.ChangeTracker.with(y,function(Y){return O(Y,y.program.getTypeChecker(),L)});return[C.createCodeFixAction(w,P,[e.Diagnostics.Add_missing_enum_member_0,L.token.text],w,e.Diagnostics.Add_all_missing_members)]}return e.concatenate(R(y,L),G(y,L))}},fixIds:[w,Q,B,E],getAllCodeActions:function(y){var V=y.program,L=y.fixId,P=V.getTypeChecker(),k=new e.Map,Y=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(y,function(U){C.eachDiagnostic(y,le,function(j){var H=p(j.file,j.start,j.code,P,y.program);if(!(!H||!e.addToSeen(k,e.getNodeId(H.parentDeclaration)+\"#\"+H.token.text))){if(L===Q&&H.kind===2)ve(U,y,H);else if(L===B&&H.kind===3)he(U,y,H);else if(L===E&&H.kind===4)ee(U,y,H);else if(H.kind===1&&O(U,P,H),H.kind===0){var I=H.parentDeclaration,l=H.token,d=e.getOrUpdate(Y,I,function(){return[]});d.some(function(D){return D.token.text===l.text})||d.push(H)}}}),Y.forEach(function(j,H){for(var I=e.isTypeLiteralNode(H)?void 0:C.getAllSupers(H,P),l=function(g){if(I!=null&&I.some(function(Re){var ze=Y.get(Re);return!!ze&&ze.some(function(Ee){var He=Ee.token;return He.text===g.token.text})}))return\"continue\";var ne=g.parentDeclaration,ue=g.declSourceFile,We=g.modifierFlags,Fe=g.token,Z=g.call,Be=g.isJSFile;if(Z&&!e.isPrivateIdentifier(Fe))q(y,U,Z,Fe,We&32,ne,ue);else if(Be&&!e.isInterfaceDeclaration(ne)&&!e.isTypeLiteralNode(ne))f(U,ue,ne,Fe,!!(We&32));else{var ge=b(P,ne,Fe);se(U,ue,ne,Fe.text,ge,We&32)}},d=0,D=j;d=e.ModuleKind.ES2015&&N99;if(oe){var m=e.textChanges.ChangeTracker.with(B,function(T){var K=e.getTsConfigObjectLiteralExpression(Q);if(!!K){var b=[[\"target\",e.factory.createStringLiteral(\"es2017\")]];N===e.ModuleKind.CommonJS&&b.push([\"module\",e.factory.createStringLiteral(\"commonjs\")]),C.setJsonCompilerOptionValues(T,Q,b)}});le.push(C.createCodeFixActionWithoutFixAll(\"fixTargetOption\",m,[e.Diagnostics.Set_the_target_option_in_your_configuration_file_to_0,\"es2017\"]))}return le.length?le:void 0}}})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixPropertyAssignment\",B=[e.Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code];C.registerCodeFix({errorCodes:B,fixIds:[w],getCodeActions:function(le){var N=le.sourceFile,p=le.span,m=Q(N,p.start),G=e.textChanges.ChangeTracker.with(le,function(oe){return E(oe,le.sourceFile,m)});return[C.createCodeFixAction(w,G,[e.Diagnostics.Change_0_to_1,\"=\",\":\"],w,[e.Diagnostics.Switch_each_misused_0_to_1,\"=\",\":\"])]},getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){return E(N,p.file,Q(p.file,p.start))})}});function E(le,N,p){le.replaceNode(N,p,e.factory.createPropertyAssignment(p.name,p.objectAssignmentInitializer))}function Q(le,N){return e.cast(e.getTokenAtPosition(le,N).parent,e.isShorthandPropertyAssignment)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"extendsInterfaceBecomesImplements\",B=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=le.sourceFile,p=E(N,le.span.start);if(!!p){var m=p.extendsToken,G=p.heritageClauses,oe=e.textChanges.ChangeTracker.with(le,function(f){return Q(f,N,m,G)});return[C.createCodeFixAction(w,oe,e.Diagnostics.Change_extends_to_implements,w,e.Diagnostics.Change_all_extended_interfaces_to_implements)]}},fixIds:[w],getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){var m=E(p.file,p.start);m&&Q(N,p.file,m.extendsToken,m.heritageClauses)})}});function E(le,N){var p=e.getTokenAtPosition(le,N),m=e.getContainingClass(p).heritageClauses,G=m[0].getFirstToken();return G.kind===94?{extendsToken:G,heritageClauses:m}:void 0}function Q(le,N,p,m){if(le.replaceNode(N,p,e.factory.createToken(117)),m.length===2&&m[0].token===94&&m[1].token===117){var G=m[1].getFirstToken(),oe=G.getFullStart();le.replaceRange(N,{pos:oe,end:oe},e.factory.createToken(27));for(var f=N.text,T=G.end;T\":\">\",\"}\":\"}\"};function le(p){return e.hasProperty(Q,p)}function N(p,m,G,oe,f){var T=G.getText()[oe];if(!!le(T)){var K=f?Q[T]:\"{\".concat(e.quote(G,m,T),\"}\");p.replaceRangeWithText(G,{pos:oe,end:oe+1},K)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"deleteUnmatchedParameter\",B=\"renameUnmatchedParameter\",E=[e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code];C.registerCodeFix({fixIds:[w,B],errorCodes:E,getCodeActions:function(m){var G=m.sourceFile,oe=m.span,f=[],T=N(G,oe.start);if(T)return e.append(f,Q(m,T)),e.append(f,le(m,T)),f},getAllCodeActions:function(m){var G=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(m,function(oe){C.eachDiagnostic(m,E,function(f){var T=f.file,K=f.start,b=N(T,K);b&&G.set(b.signature,e.append(G.get(b.signature),b.jsDocParameterTag))}),G.forEach(function(f,T){if(m.fixId===w){var K=new e.Set(f);oe.filterJSDocTags(T.getSourceFile(),T,function(b){return!K.has(b)})}})}))}});function Q(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag,T=e.textChanges.ChangeTracker.with(p,function(K){return K.filterJSDocTags(p.sourceFile,oe,function(b){return b!==f})});return C.createCodeFixAction(w,T,[e.Diagnostics.Delete_unused_param_tag_0,G.getText(p.sourceFile)],w,e.Diagnostics.Delete_all_unused_param_tags)}function le(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag;if(!!e.length(oe.parameters)){for(var T=p.sourceFile,K=e.getJSDocTags(oe),b=new e.Set,se=0,J=K;se1?e.Diagnostics.Remove_unused_declarations_for_Colon_0:e.Diagnostics.Remove_unused_declaration_for_Colon_0,e.map(j,function(D){return D.getText($)}).join(\", \")];return[m(e.textChanges.ChangeTracker.with(x,function(D){return b(D,$,P.parent)}),H)]}return[m(e.textChanges.ChangeTracker.with(x,function(D){return D.delete($,P.parent.parent)}),e.Diagnostics.Remove_unused_destructuring_declaration)]}if(T($,P))return[m(e.textChanges.ChangeTracker.with(x,function(D){return K(D,$,P.parent)}),e.Diagnostics.Remove_variable_statement)];var I=[];if(P.kind===137){var k=e.textChanges.ChangeTracker.with(x,function(fe){return p(fe,$,P)}),l=e.cast(P.parent,e.isInferTypeNode).typeParameter.name.text;I.push(C.createCodeFixAction(w,k,[e.Diagnostics.Replace_infer_0_with_unknown,l],le,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var U=e.textChanges.ChangeTracker.with(x,function(fe){return ie($,P,fe,V,L,A,y,!1)});if(U.length){var l=e.isComputedPropertyName(P.parent)?P.parent:P;I.push(m(U,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,l.getText($)]))}}var d=e.textChanges.ChangeTracker.with(x,function(D){return se(D,X,$,P)});return d.length&&I.push(C.createCodeFixAction(w,d,[e.Diagnostics.Prefix_0_with_an_underscore,P.getText($)],B,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),I},fixIds:[B,E,Q,le],getAllCodeActions:function(x){var X=x.sourceFile,$=x.program,A=x.cancellationToken,y=$.getTypeChecker(),V=$.getSourceFiles();return C.codeFixAll(x,N,function(L,P){var k=e.getTokenAtPosition(X,P.start);switch(x.fixId){case B:se(L,P.code,X,k);break;case Q:{var Y=f(k);Y?L.delete(X,Y):oe(k)&&ie(X,k,L,y,V,$,A,!0);break}case E:{if(k.kind===137||oe(k))break;if(e.isJSDocTemplateTag(k))L.delete(X,k);else if(k.kind===29)G(L,X,k);else if(e.isObjectBindingPattern(k.parent)){if(k.parent.parent.initializer)break;(!e.isParameter(k.parent.parent)||O(k.parent.parent,y,V))&&L.delete(X,k.parent.parent)}else{if(e.isArrayBindingPattern(k.parent.parent)&&k.parent.parent.parent.initializer)break;T(X,k)?K(L,X,k.parent):ie(X,k,L,y,V,$,A,!0)}break}case le:k.kind===137&&p(L,X,k);break;default:e.Debug.fail(JSON.stringify(x.fixId))}})}});function p(x,X,$){x.replaceNode(X,$.parent,e.factory.createKeywordTypeNode(155))}function m(x,X){return C.createCodeFixAction(w,x,X,E,e.Diagnostics.Delete_all_unused_declarations)}function G(x,X,$){x.delete(X,e.Debug.checkDefined(e.cast($.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,\"The type parameter to delete should exist\"))}function oe(x){return x.kind===100||x.kind===79&&(x.parent.kind===270||x.parent.kind===267)}function f(x){return x.kind===100?e.tryCast(x.parent,e.isImportDeclaration):void 0}function T(x,X){return e.isVariableDeclarationList(X.parent)&&e.first(X.parent.getChildren(x))===X}function K(x,X,$){x.delete(X,$.parent.kind===237?$.parent:$)}function b(x,X,$){e.forEach($.elements,function(A){return x.delete(X,A)})}function se(x,X,$,A){X!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(A.kind===137&&(A=e.cast(A.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(A)&&J(A)&&(x.replaceNode($,A,e.factory.createIdentifier(\"_\".concat(A.text))),e.isParameter(A.parent)&&e.getJSDocParameterTags(A.parent).forEach(function(y){e.isIdentifier(y.name)&&x.replaceNode($,y.name,e.factory.createIdentifier(\"_\".concat(y.name.text)))})))}function J(x){switch(x.parent.kind){case 164:case 163:return!0;case 254:{var X=x.parent;switch(X.parent.parent.kind){case 244:case 243:return!0}}}return!1}function ie(x,X,$,A,y,V,L,P){R(X,$,x,A,y,V,L,P),e.isIdentifier(X)&&e.FindAllReferences.Core.eachSymbolReferenceInFile(X,A,x,function(k){e.isPropertyAccessExpression(k.parent)&&k.parent.name===k&&(k=k.parent),!P&&F(k)&&$.delete(x,k.parent.parent)})}function R(x,X,$,A,y,V,L,P){var k=x.parent;if(e.isParameter(k))q(X,$,k,A,y,V,L,P);else if(!(P&&e.isIdentifier(x)&&e.FindAllReferences.Core.isSymbolReferencedInFile(x,A,$))){var Y=e.isImportClause(k)?x:e.isComputedPropertyName(k)?k.parent:k;e.Debug.assert(Y!==$,\"should not delete whole source file\"),X.delete($,Y)}}function q(x,X,$,A,y,V,L,P){P===void 0&&(P=!1),ve(A,X,$,y,V,L,P)&&($.modifiers&&$.modifiers.length>0&&(!e.isIdentifier($.name)||e.FindAllReferences.Core.isSymbolReferencedInFile($.name,A,X))?$.modifiers.forEach(function(k){return x.deleteModifier(X,k)}):!$.initializer&&O($,A,y)&&x.delete(X,$))}function O(x,X,$){var A=x.parent.parameters.indexOf(x);return!e.FindAllReferences.Core.someSignatureUsage(x.parent,$,X,function(y,V){return!V||V.arguments.length>A})}function ve(x,X,$,A,y,V,L){var P=$.parent;switch(P.kind){case 169:case 171:var k=P.parameters.indexOf($),Y=e.isMethodDeclaration(P)?P.name:P,U=e.FindAllReferences.Core.getReferencedSymbolsForNode(P.pos,Y,y,A,V);if(U)for(var j=0,H=U;jk,g=e.isPropertyAccessExpression(D.node.parent)&&e.isSuperKeyword(D.node.parent.expression)&&e.isCallExpression(D.node.parent.parent)&&D.node.parent.parent.arguments.length>k,ne=(e.isMethodDeclaration(D.node.parent)||e.isMethodSignature(D.node.parent))&&D.node.parent!==$.parent&&D.node.parent.parameters.length>k;if(fe||g||ne)return!1}}return!0;case 256:return P.name&&ee(x,X,P.name)?he(P,$,L):!0;case 213:case 214:return he(P,$,L);case 173:return!1;case 172:return!0;default:return e.Debug.failBadSyntaxKind(P)}}function ee(x,X,$){return!!e.FindAllReferences.Core.eachSymbolReferenceInFile($,x,X,function(A){return e.isIdentifier(A)&&e.isCallExpression(A.parent)&&A.parent.arguments.indexOf(A)>=0})}function he(x,X,$){var A=x.parameters,y=A.indexOf(X);return e.Debug.assert(y!==-1,\"The parameter should already be in the list\"),$?A.slice(y+1).every(function(V){return e.isIdentifier(V.name)&&!V.symbol.isReferenced}):y===A.length-1}function F(x){return(e.isBinaryExpression(x.parent)&&x.parent.left===x||(e.isPostfixUnaryExpression(x.parent)||e.isPrefixUnaryExpression(x.parent))&&x.parent.operand===x)&&e.isExpressionStatement(x.parent.parent)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixUnreachableCode\",B=[e.Diagnostics.Unreachable_code_detected.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=le.program.getSyntacticDiagnostics(le.sourceFile,le.cancellationToken);if(!N.length){var p=e.textChanges.ChangeTracker.with(le,function(m){return E(m,le.sourceFile,le.span.start,le.span.length,le.errorCode)});return[C.createCodeFixAction(w,p,e.Diagnostics.Remove_unreachable_code,w,e.Diagnostics.Remove_all_unreachable_code)]}},fixIds:[w],getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){return E(N,p.file,p.start,p.length,p.code)})}});function E(le,N,p,m,G){var oe=e.getTokenAtPosition(N,p),f=e.findAncestor(oe,e.isStatement);if(f.getStart(N)!==oe.getStart(N)){var T=JSON.stringify({statementKind:e.Debug.formatSyntaxKind(f.kind),tokenKind:e.Debug.formatSyntaxKind(oe.kind),errorCode:G,start:p,length:m});e.Debug.fail(\"Token and statement should start at the same point. \"+T)}var K=(e.isBlock(f.parent)?f.parent:f).parent;if(!e.isBlock(f.parent)||f===e.first(f.parent.statements))switch(K.kind){case 239:if(K.elseStatement){if(e.isBlock(f.parent))break;le.replaceNode(N,f,e.factory.createBlock(e.emptyArray));return}case 241:case 242:le.delete(N,K);return}if(e.isBlock(f.parent)){var b=p+m,se=e.Debug.checkDefined(Q(e.sliceAfter(f.parent.statements,f),function(J){return J.posHe.length){var rr=k.getSignatureFromDeclaration(P[P.length-1]);we(fe,rr,I,j,y||T(fe))}else e.Debug.assert(P.length===He.length,\"Declarations and signatures should match count\"),A(G(k,x,he,He,j,d&&!!(V&1),I,fe,y));break}function we(de,ye,Ae,er,ir){var Cr=le(169,x,de,ye,ir,er,Ae,d&&!!(V&1),he,$);Cr&&A(Cr)}}C.addNewNodeForMemberSymbol=Q;function le(ee,he,F,x,X,$,A,y,V,L){var P=he.program,k=P.getTypeChecker(),Y=e.getEmitScriptTarget(P.getCompilerOptions()),U=524545|(F===0?268435456:0),j=k.signatureToSignatureDeclaration(x,ee,V,U,B(he));if(!!j){var H=j.typeParameters,I=j.parameters,l=j.type;if(L){if(H){var d=e.sameMap(H,function(ue){var We=ue.constraint,Fe=ue.default;if(We){var Z=q(We,Y);Z&&(We=Z.typeNode,ve(L,Z.symbols))}if(Fe){var Z=q(Fe,Y);Z&&(Fe=Z.typeNode,ve(L,Z.symbols))}return e.factory.updateTypeParameterDeclaration(ue,ue.modifiers,ue.name,We,Fe)});H!==d&&(H=e.setTextRange(e.factory.createNodeArray(d,H.hasTrailingComma),H))}var D=e.sameMap(I,function(ue){var We=q(ue.type,Y),Fe=ue.type;return We&&(Fe=We.typeNode,ve(L,We.symbols)),e.factory.updateParameterDeclaration(ue,ue.decorators,ue.modifiers,ue.dotDotDotToken,ue.name,ue.questionToken,Fe,ue.initializer)});if(I!==D&&(I=e.setTextRange(e.factory.createNodeArray(D,I.hasTrailingComma),I)),l){var fe=q(l,Y);fe&&(l=fe.typeNode,ve(L,fe.symbols))}}var g=y?e.factory.createToken(57):void 0,ne=j.asteriskToken;if(e.isFunctionExpression(j))return e.factory.updateFunctionExpression(j,A,j.asteriskToken,e.tryCast($,e.isIdentifier),H,I,l,X!=null?X:j.body);if(e.isArrowFunction(j))return e.factory.updateArrowFunction(j,A,H,I,l,j.equalsGreaterThanToken,X!=null?X:j.body);if(e.isMethodDeclaration(j))return e.factory.updateMethodDeclaration(j,void 0,A,ne,$!=null?$:e.factory.createIdentifier(\"\"),g,H,I,l,X)}}C.createSignatureDeclarationFromSignature=le;function N(ee,he,F,x,X,$,A){var y=e.getQuotePreference(he.sourceFile,he.preferences),V=e.getEmitScriptTarget(he.program.getCompilerOptions()),L=B(he),P=he.program.getTypeChecker(),k=e.isInJSFile(A),Y=x.typeArguments,U=x.arguments,j=x.parent,H=k?void 0:P.getContextualType(x),I=e.map(U,function(ue){return e.isIdentifier(ue)?ue.text:e.isPropertyAccessExpression(ue)&&e.isIdentifier(ue.name)?ue.name.text:void 0}),l=k?[]:e.map(U,function(ue){return p(P,F,P.getBaseTypeOfLiteralType(P.getTypeAtLocation(ue)),A,V,void 0,L)}),d=$?e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags($)):void 0,D=e.isYieldExpression(j)?e.factory.createToken(41):void 0,fe=k||Y===void 0?void 0:e.map(Y,function(ue,We){return e.factory.createTypeParameterDeclaration(void 0,84+Y.length-1<=90?String.fromCharCode(84+We):\"T\".concat(We))}),g=m(U.length,I,l,void 0,k),ne=k||H===void 0?void 0:P.typeToTypeNode(H,A,void 0,L);switch(ee){case 169:return e.factory.createMethodDeclaration(void 0,d,D,X,void 0,fe,g,ne,T(y));case 168:return e.factory.createMethodSignature(d,X,void 0,fe,g,ne);case 256:return e.factory.createFunctionDeclaration(void 0,d,D,X,fe,g,ne,K(e.Diagnostics.Function_not_implemented.message,y));default:e.Debug.fail(\"Unexpected kind\")}}C.createSignatureDeclarationFromCallExpression=N;function p(ee,he,F,x,X,$,A){var y=ee.typeToTypeNode(F,x,$,A);if(y&&e.isImportTypeNode(y)){var V=q(y,X);V&&(ve(he,V.symbols),y=V.typeNode)}return e.getSynthesizedDeepClone(y)}C.typeToAutoImportableTypeNode=p;function m(ee,he,F,x,X){for(var $=[],A=0;A=x?e.factory.createToken(57):void 0,X?void 0:F&&F[A]||e.factory.createKeywordTypeNode(155),void 0);$.push(y)}return $}function G(ee,he,F,x,X,$,A,y,V){for(var L=x[0],P=x[0].minArgumentCount,k=!1,Y=0,U=x;Y=L.parameters.length&&(!e.signatureHasRestParameter(j)||e.signatureHasRestParameter(L))&&(L=j)}var H=L.parameters.length-(e.signatureHasRestParameter(L)?1:0),I=L.parameters.map(function(D){return D.name}),l=m(H,I,void 0,P,!1);if(k){var d=e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),I[H]||\"rest\",H>=P?e.factory.createToken(57):void 0,e.factory.createArrayTypeNode(e.factory.createKeywordTypeNode(155)),void 0);l.push(d)}return f(A,X,$,void 0,l,oe(x,ee,he,F),y,V)}function oe(ee,he,F,x){if(e.length(ee)){var X=he.getUnionType(e.map(ee,he.getReturnTypeOfSignature));return he.typeToTypeNode(X,x,void 0,B(F))}}function f(ee,he,F,x,X,$,A,y){return e.factory.createMethodDeclaration(void 0,ee,void 0,he,F?e.factory.createToken(57):void 0,x,X,$,y||T(A))}function T(ee){return K(e.Diagnostics.Method_not_implemented.message,ee)}function K(ee,he){return e.factory.createBlock([e.factory.createThrowStatement(e.factory.createNewExpression(e.factory.createIdentifier(\"Error\"),void 0,[e.factory.createStringLiteral(ee,he===0)]))],!0)}C.createStubbedBody=K;function b(ee){if(ee&4)return e.factory.createToken(123);if(ee&16)return e.factory.createToken(122)}function se(ee,he,F){var x=e.getTsConfigObjectLiteralExpression(he);if(!!x){var X=R(x,\"compilerOptions\");if(X===void 0){ee.insertNodeAtObjectStart(he,x,ie(\"compilerOptions\",e.factory.createObjectLiteralExpression(F.map(function(Y){var U=Y[0],j=Y[1];return ie(U,j)}),!0)));return}var $=X.initializer;if(!!e.isObjectLiteralExpression($))for(var A=0,y=F;A0)return[C.createCodeFixAction(w,N,e.Diagnostics.Convert_to_a_bigint_numeric_literal,w,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N)})}});function E(Q,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),e.isNumericLiteral);if(!!p){var m=p.getText(le)+\"n\";Q.replaceNode(le,p,e.factory.createBigIntLiteral(m))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixAddModuleReferTypeMissingTypeof\",B=w,E=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];C.registerCodeFix({errorCodes:E,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=Q(m,G.start),f=e.textChanges.ChangeTracker.with(p,function(T){return le(T,m,oe)});return[C.createCodeFixAction(B,f,e.Diagnostics.Add_missing_typeof,B,e.Diagnostics.Add_missing_typeof)]},fixIds:[B],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return le(p,N.sourceFile,Q(m.file,m.start))})}});function Q(N,p){var m=e.getTokenAtPosition(N,p);return e.Debug.assert(m.kind===100,\"This token should be an ImportKeyword\"),e.Debug.assert(m.parent.kind===200,\"Token parent should be an ImportType\"),m.parent}function le(N,p,m){var G=e.factory.updateImportTypeNode(m,m.argument,m.qualifier,m.typeArguments,!0);N.replaceNode(p,m,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"wrapJsxInFragment\",B=[e.Diagnostics.JSX_expressions_must_have_one_parent_element.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(T){return Q(T,m,oe)});return[C.createCodeFixAction(w,f,e.Diagnostics.Wrap_in_JSX_fragment,w,e.Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,B,function(p,m){var G=E(N.sourceFile,m.start);!G||Q(p,N.sourceFile,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=m.parent,oe=G.parent;if(!(!e.isBinaryExpression(oe)&&(oe=oe.parent,!e.isBinaryExpression(oe)))&&!!e.nodeIsMissing(oe.operatorToken))return oe}function Q(N,p,m){var G=le(m);G&&N.replaceNode(p,m,e.factory.createJsxFragment(e.factory.createJsxOpeningFragment(),G,e.factory.createJsxJsxClosingFragment()))}function le(N){for(var p=[],m=N;;)if(e.isBinaryExpression(m)&&e.nodeIsMissing(m.operatorToken)&&m.operatorToken.kind===27){if(p.push(m.left),e.isJsxChild(m.right))return p.push(m.right),p;if(e.isBinaryExpression(m.right)){m=m.right;continue}else return}else return}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixConvertToMappedObjectType\",B=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(K){return le(K,m,oe)}),T=e.idText(oe.container.name);return[C.createCodeFixAction(w,f,[e.Diagnostics.Convert_0_to_mapped_object_type,T],w,[e.Diagnostics.Convert_0_to_mapped_object_type,T])]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,B,function(p,m){var G=E(m.file,m.start);G&&le(p,m.file,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=e.tryCast(m.parent.parent,e.isIndexSignatureDeclaration);if(!!G){var oe=e.isInterfaceDeclaration(G.parent)?G.parent:e.tryCast(G.parent.parent,e.isTypeAliasDeclaration);if(!!oe)return{indexSignature:G,container:oe}}}function Q(N,p){return e.factory.createTypeAliasDeclaration(N.decorators,N.modifiers,N.name,N.typeParameters,p)}function le(N,p,m){var G=m.indexSignature,oe=m.container,f=e.isInterfaceDeclaration(oe)?oe.members:oe.type.members,T=f.filter(function(ie){return!e.isIndexSignatureDeclaration(ie)}),K=e.first(G.parameters),b=e.factory.createTypeParameterDeclaration(void 0,e.cast(K.name,e.isIdentifier),K.type),se=e.factory.createMappedTypeNode(e.hasEffectiveReadonlyModifier(G)?e.factory.createModifier(145):void 0,b,void 0,G.questionToken,G.type,void 0),J=e.factory.createIntersectionTypeNode(Ve(Ve(Ve([],e.getAllSuperTypeNodes(oe),!0),[se],!1),T.length?[e.factory.createTypeLiteralNode(T)]:e.emptyArray,!0));N.replaceNode(p,oe,Q(oe,J))}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"removeAccidentalCallParentheses\",B=[e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(E){var Q=e.findAncestor(e.getTokenAtPosition(E.sourceFile,E.span.start),e.isCallExpression);if(!!Q){var le=e.textChanges.ChangeTracker.with(E,function(N){N.deleteRange(E.sourceFile,{pos:Q.expression.end,end:Q.end})});return[C.createCodeFixActionWithoutFixAll(w,le,e.Diagnostics.Remove_parentheses)]}},fixIds:[w]})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"removeUnnecessaryAwait\",B=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span)});if(N.length>0)return[C.createCodeFixAction(w,N,e.Diagnostics.Remove_unnecessary_await,w,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N)})}});function E(Q,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),function(K){return K.kind===132}),m=p&&e.tryCast(p.parent,e.isAwaitExpression);if(!!m){var G=m,oe=e.isParenthesizedExpression(m.parent);if(oe){var f=e.getLeftmostExpression(m.expression,!1);if(e.isIdentifier(f)){var T=e.findPrecedingToken(m.parent.pos,le);T&&T.kind!==103&&(G=m.parent)}}Q.replaceNode(le,G,m.expression)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=[e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code],B=\"splitTypeOnlyImport\";C.registerCodeFix({errorCodes:w,fixIds:[B],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return Q(m,E(N.sourceFile,N.span),N)});if(p.length)return[C.createCodeFixAction(B,p,e.Diagnostics.Split_into_two_separate_import_declarations,B,e.Diagnostics.Split_all_invalid_type_only_imports)]},getAllCodeActions:function(le){return C.codeFixAll(le,w,function(N,p){Q(N,E(le.sourceFile,p),le)})}});function E(le,N){return e.findAncestor(e.getTokenAtPosition(le,N.start),e.isImportDeclaration)}function Q(le,N,p){if(!!N){var m=e.Debug.checkDefined(N.importClause);le.replaceNode(p.sourceFile,N,e.factory.updateImportDeclaration(N,N.decorators,N.modifiers,e.factory.updateImportClause(m,m.isTypeOnly,m.name,void 0),N.moduleSpecifier,N.assertClause)),le.insertNodeAfter(p.sourceFile,N,e.factory.createImportDeclaration(void 0,void 0,e.factory.updateImportClause(m,m.isTypeOnly,void 0,m.namedBindings),N.moduleSpecifier,N.assertClause))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixConvertConstToLet\",B=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=N.program,oe=E(p,m.start,G);if(oe!==void 0){var f=e.textChanges.ChangeTracker.with(N,function(T){return Q(T,p,oe)});return[C.createCodeFixAction(w,f,e.Diagnostics.Convert_const_to_let,w,e.Diagnostics.Convert_const_to_let)]}},fixIds:[w]});function E(le,N,p){var m,G=p.getTypeChecker(),oe=G.getSymbolAtLocation(e.getTokenAtPosition(le,N)),f=e.tryCast((m=oe==null?void 0:oe.valueDeclaration)===null||m===void 0?void 0:m.parent,e.isVariableDeclarationList);if(f!==void 0){var T=e.findChildOfKind(f,85,le);if(T!==void 0)return e.createRange(T.pos,T.end)}}function Q(le,N,p){le.replaceRangeWithText(N,p,\"let\")}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixExpectedComma\",B=e.Diagnostics._0_expected.code,E=[B];C.registerCodeFix({errorCodes:E,getCodeActions:function(N){var p=N.sourceFile,m=Q(p,N.span.start,N.errorCode);if(!!m){var G=e.textChanges.ChangeTracker.with(N,function(oe){return le(oe,p,m)});return[C.createCodeFixAction(w,G,[e.Diagnostics.Change_0_to_1,\";\",\",\"],w,[e.Diagnostics.Change_0_to_1,\";\",\",\"])]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){var G=Q(m.file,m.start,m.code);G&&le(p,N.sourceFile,G)})}});function Q(N,p,m){var G=e.getTokenAtPosition(N,p);return G.kind===26&&G.parent&&(e.isObjectLiteralExpression(G.parent)||e.isArrayLiteralExpression(G.parent))?{node:G}:void 0}function le(N,p,m){var G=m.node,oe=e.factory.createToken(27);N.replaceNode(p,G,oe)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addVoidToPromise\",B=\"addVoidToPromise\",E=[e.Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,e.Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code];C.registerCodeFix({errorCodes:E,fixIds:[B],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return Q(m,N.sourceFile,N.span,N.program)});if(p.length>0)return[C.createCodeFixAction(w,p,e.Diagnostics.Add_void_to_Promise_resolved_without_a_value,B,e.Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)]},getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return Q(p,m.file,m,N.program,new e.Set)})}});function Q(N,p,m,G,oe){var f=e.getTokenAtPosition(p,m.start);if(!(!e.isIdentifier(f)||!e.isCallExpression(f.parent)||f.parent.expression!==f||f.parent.arguments.length!==0)){var T=G.getTypeChecker(),K=T.getSymbolAtLocation(f),b=K==null?void 0:K.valueDeclaration;if(!(!b||!e.isParameter(b)||!e.isNewExpression(b.parent.parent))&&!(oe!=null&&oe.has(b))){oe==null||oe.add(b);var se=le(b.parent.parent);if(e.some(se)){var J=se[0],ie=!e.isUnionTypeNode(J)&&!e.isParenthesizedTypeNode(J)&&e.isParenthesizedTypeNode(e.factory.createUnionTypeNode([J,e.factory.createKeywordTypeNode(114)]).types[0]);ie&&N.insertText(p,J.pos,\"(\"),N.insertText(p,J.end,ie?\") | void\":\" | void\")}else{var R=T.getResolvedSignature(f.parent),q=R==null?void 0:R.parameters[0],O=q&&T.getTypeOfSymbolAtLocation(q,b.parent.parent);e.isInJSFile(b)?(!O||O.flags&3)&&(N.insertText(p,b.parent.parent.end,\")\"),N.insertText(p,e.skipTrivia(p.text,b.parent.parent.pos),\"/** @type {Promise} */(\")):(!O||O.flags&2)&&N.insertText(p,b.parent.parent.expression.end,\"\")}}}}function le(N){var p;if(e.isInJSFile(N)){if(e.isParenthesizedExpression(N.parent)){var m=(p=e.getJSDocTypeTag(N.parent))===null||p===void 0?void 0:p.typeExpression.type;if(m&&e.isTypeReferenceNode(m)&&e.isIdentifier(m.typeName)&&e.idText(m.typeName)===\"Promise\")return m.typeArguments}}else return N.typeArguments}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"Convert export\",B={name:\"Convert default export to named export\",description:e.Diagnostics.Convert_default_export_to_named_export.message,kind:\"refactor.rewrite.export.named\"},E={name:\"Convert named export to default export\",description:e.Diagnostics.Convert_named_export_to_default_export.message,kind:\"refactor.rewrite.export.default\"};C.registerRefactor(w,{kinds:[B.kind,E.kind],getAvailableActions:function(K){var b=Q(K,K.triggerReason===\"invoked\");if(!b)return e.emptyArray;if(!C.isRefactorErrorInfo(b)){var se=b.wasDefault?B:E;return[{name:w,description:se.description,actions:[se]}]}return K.preferences.provideRefactorNotApplicableReason?[{name:w,description:e.Diagnostics.Convert_default_export_to_named_export.message,actions:[Ke(Ke({},B),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray},getEditsForAction:function(K,b){e.Debug.assert(b===B.name||b===E.name,\"Unexpected action name\");var se=Q(K);e.Debug.assert(se&&!C.isRefactorErrorInfo(se),\"Expected applicable refactor info\");var J=e.textChanges.ChangeTracker.with(K,function(ie){return le(K.file,K.program,se,ie,K.cancellationToken)});return{edits:J,renameFilename:void 0,renameLocation:void 0}}});function Q(T,K){K===void 0&&(K=!0);var b=T.file,se=T.program,J=e.getRefactorContextSpan(T),ie=e.getTokenAtPosition(b,J.start),R=!!(ie.parent&&e.getSyntacticModifierFlags(ie.parent)&1)&&K?ie.parent:e.getParentNodeInSpan(ie,b,J);if(!R||!e.isSourceFile(R.parent)&&!(e.isModuleBlock(R.parent)&&e.isAmbientModule(R.parent.parent)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_export_statement)};var q=e.isSourceFile(R.parent)?R.parent.symbol:R.parent.parent.symbol,O=e.getSyntacticModifierFlags(R)||(e.isExportAssignment(R)&&!R.isExportEquals?513:0),ve=!!(O&512);if(!(O&1)||!ve&&q.exports.has(\"default\"))return{error:e.getLocaleSpecificMessage(e.Diagnostics.This_file_already_has_a_default_export)};var ee=se.getTypeChecker(),he=function($){return e.isIdentifier($)&&ee.getSymbolAtLocation($)?void 0:{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_named_export)}};switch(R.kind){case 256:case 257:case 258:case 260:case 259:case 261:{var F=R;return F.name?he(F.name)||{exportNode:F,exportName:F.name,wasDefault:ve,exportingModuleSymbol:q}:void 0}case 237:{var x=R;if(!(x.declarationList.flags&2)||x.declarationList.declarations.length!==1)return;var X=e.first(x.declarationList.declarations);return X.initializer?(e.Debug.assert(!ve,\"Can't have a default flag here\"),he(X.name)||{exportNode:x,exportName:X.name,wasDefault:ve,exportingModuleSymbol:q}):void 0}case 271:{var F=R;return F.isExportEquals?void 0:he(F.expression)||{exportNode:F,exportName:F.expression,wasDefault:ve,exportingModuleSymbol:q}}default:return}}function le(T,K,b,se,J){N(T,b,se,K.getTypeChecker()),p(K,b,se,J)}function N(T,K,b,se){var J=K.wasDefault,ie=K.exportNode,R=K.exportName;if(J)if(e.isExportAssignment(ie)&&!ie.isExportEquals){var q=ie.expression,O=f(q.text,q.text);b.replaceNode(T,ie,e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports([O])))}else b.delete(T,e.Debug.checkDefined(e.findModifier(ie,88),\"Should find a default keyword in modifier list\"));else{var ve=e.Debug.checkDefined(e.findModifier(ie,93),\"Should find an export keyword in modifier list\");switch(ie.kind){case 256:case 257:case 258:b.insertNodeAfter(T,ve,e.factory.createToken(88));break;case 237:var ee=e.first(ie.declarationList.declarations);if(!e.FindAllReferences.Core.isSymbolReferencedInFile(R,se,T)&&!ee.type){b.replaceNode(T,ie,e.factory.createExportDefault(e.Debug.checkDefined(ee.initializer,\"Initializer was previously known to be present\")));break}case 260:case 259:case 261:b.deleteModifier(T,ve),b.insertNodeAfter(T,ie,e.factory.createExportDefault(e.factory.createIdentifier(R.text)));break;default:e.Debug.fail(\"Unexpected exportNode kind \".concat(ie.kind))}}}function p(T,K,b,se){var J=K.wasDefault,ie=K.exportName,R=K.exportingModuleSymbol,q=T.getTypeChecker(),O=e.Debug.checkDefined(q.getSymbolAtLocation(ie),\"Export name should resolve to a symbol\");e.FindAllReferences.Core.eachExportReference(T.getSourceFiles(),q,se,O,R,ie.text,J,function(ve){var ee=ve.getSourceFile();J?m(ee,ve,b,ie.text):G(ee,ve,b)})}function m(T,K,b,se){var J=K.parent;switch(J.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier(se));break;case 270:case 275:{var ie=J;b.replaceNode(T,ie,oe(se,ie.name.text));break}case 267:{var R=J;e.Debug.assert(R.name===K,\"Import clause name should match provided ref\");var ie=oe(se,K.text),q=R.namedBindings;if(!q)b.replaceNode(T,K,e.factory.createNamedImports([ie]));else if(q.kind===268){b.deleteRange(T,{pos:K.getStart(T),end:q.getStart(T)});var O=e.isStringLiteral(R.parent.moduleSpecifier)?e.quotePreferenceFromString(R.parent.moduleSpecifier,T):1,ve=e.makeImport(void 0,[oe(se,K.text)],R.parent.moduleSpecifier,O);b.insertNodeAfter(T,R.parent,ve)}else b.delete(T,K),b.insertNodeAtEndOfList(T,q.elements,ie);break}case 200:var ee=J;b.replaceNode(T,J,e.factory.createImportTypeNode(ee.argument,e.factory.createIdentifier(se),ee.typeArguments,ee.isTypeOf));break;default:e.Debug.failBadSyntaxKind(J)}}function G(T,K,b){var se=K.parent;switch(se.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier(\"default\"));break;case 270:{var J=e.factory.createIdentifier(se.name.text);se.parent.elements.length===1?b.replaceNode(T,se.parent,J):(b.delete(T,se),b.insertNodeBefore(T,se.parent,J));break}case 275:{b.replaceNode(T,se,f(\"default\",se.name.text));break}default:e.Debug.assertNever(se,\"Unexpected parent kind \".concat(se.kind))}}function oe(T,K){return e.factory.createImportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}function f(T,K){return e.factory.createExportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B=\"Convert import\",E=(w={},w[0]={name:\"Convert namespace import to named imports\",description:e.Diagnostics.Convert_namespace_import_to_named_imports.message,kind:\"refactor.rewrite.import.named\"},w[2]={name:\"Convert named imports to namespace import\",description:e.Diagnostics.Convert_named_imports_to_namespace_import.message,kind:\"refactor.rewrite.import.namespace\"},w[1]={name:\"Convert named imports to default import\",description:e.Diagnostics.Convert_named_imports_to_default_import.message,kind:\"refactor.rewrite.import.default\"},w);C.registerRefactor(B,{kinds:e.getOwnValues(E).map(function(K){return K.kind}),getAvailableActions:function(b){var se=Q(b,b.triggerReason===\"invoked\");if(!se)return e.emptyArray;if(!C.isRefactorErrorInfo(se)){var J=E[se.convertTo];return[{name:B,description:J.description,actions:[J]}]}return b.preferences.provideRefactorNotApplicableReason?e.getOwnValues(E).map(function(ie){return{name:B,description:ie.description,actions:[Ke(Ke({},ie),{notApplicableReason:se.error})]}}):e.emptyArray},getEditsForAction:function(b,se){e.Debug.assert(e.some(e.getOwnValues(E),function(R){return R.name===se}),\"Unexpected action name\");var J=Q(b);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),\"Expected applicable refactor info\");var ie=e.textChanges.ChangeTracker.with(b,function(R){return N(b.file,b.program,R,J)});return{edits:ie,renameFilename:void 0,renameLocation:void 0}}});function Q(K,b){b===void 0&&(b=!0);var se=K.file,J=e.getRefactorContextSpan(K),ie=e.getTokenAtPosition(se,J.start),R=b?e.findAncestor(ie,e.isImportDeclaration):e.getParentNodeInSpan(ie,se,J);if(!R||!e.isImportDeclaration(R))return{error:\"Selection is not an import declaration.\"};var q=J.start+J.length,O=e.findNextToken(R,R.parent,se);if(!(O&&q>O.getStart())){var ve=R.importClause;if(!ve)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_import_clause)};if(!ve.namedBindings)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_namespace_import_or_named_imports)};if(ve.namedBindings.kind===268)return{convertTo:0,import:ve.namedBindings};var ee=le(K.program,ve);return ee?{convertTo:1,import:ve.namedBindings}:{convertTo:2,import:ve.namedBindings}}}function le(K,b){return e.getAllowSyntheticDefaultImports(K.getCompilerOptions())&&f(b.parent.moduleSpecifier,K.getTypeChecker())}function N(K,b,se,J){var ie=b.getTypeChecker();J.convertTo===0?p(K,ie,se,J.import,e.getAllowSyntheticDefaultImports(b.getCompilerOptions())):oe(K,b,se,J.import,J.convertTo===1)}function p(K,b,se,J,ie){var R=!1,q=[],O=new e.Map;e.FindAllReferences.Core.eachSymbolReferenceInFile(J.name,b,K,function(y){if(!e.isPropertyAccessOrQualifiedName(y.parent))R=!0;else{var V=m(y.parent).text;b.resolveName(V,y,67108863,!0)&&O.set(V,!0),e.Debug.assert(G(y.parent)===y,\"Parent expression should match id\"),q.push(y.parent)}});for(var ve=new e.Map,ee=0,he=q;ee=V.pos?L.getEnd():V.getEnd()),k=y?q(V):R(V,P),Y=k&&oe(k)?O(k):void 0;if(!Y)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var U=$.getTypeChecker();return e.isConditionalExpression(Y)?T(Y,U):K(Y)}}function T(F,x){var X=F.condition,$=ve(F.whenTrue);if(!$||x.isNullableType(x.getTypeAtLocation($)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};if((e.isPropertyAccessExpression(X)||e.isIdentifier(X))&&se(X,$.expression))return{finalExpression:$,occurrences:[X],expression:F};if(e.isBinaryExpression(X)){var A=b($.expression,X);return A?{finalExpression:$,occurrences:A,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}}function K(F){if(F.operatorToken.kind!==55)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_logical_AND_access_chains)};var x=ve(F.right);if(!x)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var X=b(x.expression,F.left);return X?{finalExpression:x,occurrences:X,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}function b(F,x){for(var X=[];e.isBinaryExpression(x)&&x.operatorToken.kind===55;){var $=se(e.skipParentheses(F),e.skipParentheses(x.right));if(!$)break;X.push($),F=$,x=x.left}var A=se(F,x);return A&&X.push(A),X.length>0?X:void 0}function se(F,x){if(!(!e.isIdentifier(x)&&!e.isPropertyAccessExpression(x)&&!e.isElementAccessExpression(x)))return J(F,x)?x:void 0}function J(F,x){for(;(e.isCallExpression(F)||e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F))&&ie(F)!==ie(x);)F=F.expression;for(;e.isPropertyAccessExpression(F)&&e.isPropertyAccessExpression(x)||e.isElementAccessExpression(F)&&e.isElementAccessExpression(x);){if(ie(F)!==ie(x))return!1;F=F.expression,x=x.expression}return e.isIdentifier(F)&&e.isIdentifier(x)&&F.getText()===x.getText()}function ie(F){if(e.isIdentifier(F)||e.isStringOrNumericLiteralLike(F))return F.getText();if(e.isPropertyAccessExpression(F))return ie(F.name);if(e.isElementAccessExpression(F))return ie(F.argumentExpression)}function R(F,x){for(;F.parent;){if(oe(F)&&x.length!==0&&F.end>=x.start+x.length)return F;F=F.parent}}function q(F){for(;F.parent;){if(oe(F)&&!oe(F.parent))return F;F=F.parent}}function O(F){if(m(F))return F;if(e.isVariableStatement(F)){var x=e.getSingleVariableOfVariableStatement(F),X=x==null?void 0:x.initializer;return X&&m(X)?X:void 0}return F.expression&&m(F.expression)?F.expression:void 0}function ve(F){if(F=e.skipParentheses(F),e.isBinaryExpression(F))return ve(F.left);if((e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F)||e.isCallExpression(F))&&!e.isOptionalChain(F))return F}function ee(F,x,X){if(e.isPropertyAccessExpression(x)||e.isElementAccessExpression(x)||e.isCallExpression(x)){var $=ee(F,x.expression,X),A=X.length>0?X[X.length-1]:void 0,y=(A==null?void 0:A.getText())===x.expression.getText();if(y&&X.pop(),e.isCallExpression(x))return y?e.factory.createCallChain($,e.factory.createToken(28),x.typeArguments,x.arguments):e.factory.createCallChain($,x.questionDotToken,x.typeArguments,x.arguments);if(e.isPropertyAccessExpression(x))return y?e.factory.createPropertyAccessChain($,e.factory.createToken(28),x.name):e.factory.createPropertyAccessChain($,x.questionDotToken,x.name);if(e.isElementAccessExpression(x))return y?e.factory.createElementAccessChain($,e.factory.createToken(28),x.argumentExpression):e.factory.createElementAccessChain($,x.questionDotToken,x.argumentExpression)}return x}function he(F,x,X,$,A){var y=$.finalExpression,V=$.occurrences,L=$.expression,P=V[V.length-1],k=ee(x,y,V);k&&(e.isPropertyAccessExpression(k)||e.isElementAccessExpression(k)||e.isCallExpression(k))&&(e.isBinaryExpression(L)?X.replaceNodeRange(F,P,y,k):e.isConditionalExpression(L)&&X.replaceNode(F,L,e.factory.createBinaryExpression(k,e.factory.createToken(60),L.whenFalse)))}})(w=C.convertToOptionalChainExpression||(C.convertToOptionalChainExpression={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E=\"Convert overload list to single signature\",Q=e.Diagnostics.Convert_overload_list_to_single_signature.message,le={name:E,description:Q,kind:\"refactor.rewrite.function.overloadList\"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:p,getAvailableActions:N});function N(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);return b?[{name:E,description:Q,actions:[le]}]:e.emptyArray}function p(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);if(!b)return;var se=K.getTypeChecker(),J=b[b.length-1],ie=J;switch(J.kind){case 168:{ie=e.factory.updateMethodSignature(J,J.modifiers,J.name,J.questionToken,J.typeParameters,q(b),J.type);break}case 169:{ie=e.factory.updateMethodDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.questionToken,J.typeParameters,q(b),J.type,J.body);break}case 174:{ie=e.factory.updateCallSignature(J,J.typeParameters,q(b),J.type);break}case 171:{ie=e.factory.updateConstructorDeclaration(J,J.decorators,J.modifiers,q(b),J.body);break}case 175:{ie=e.factory.updateConstructSignature(J,J.typeParameters,q(b),J.type);break}case 256:{ie=e.factory.updateFunctionDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.typeParameters,q(b),J.type,J.body);break}default:return e.Debug.failBadSyntaxKind(J,\"Unhandled signature kind in overload list conversion refactoring\")}if(ie===J)return;var R=e.textChanges.ChangeTracker.with(oe,function(ee){ee.replaceNodeRange(f,b[0],b[b.length-1],ie)});return{renameFilename:void 0,renameLocation:void 0,edits:R};function q(ee){var he=ee[ee.length-1];return e.isFunctionLikeDeclaration(he)&&he.body&&(ee=ee.slice(0,ee.length-1)),e.factory.createNodeArray([e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),\"args\",void 0,e.factory.createUnionTypeNode(e.map(ee,O)))])}function O(ee){var he=e.map(ee.parameters,ve);return e.setEmitFlags(e.factory.createTupleTypeNode(he),e.some(he,function(F){return!!e.length(e.getSyntheticLeadingComments(F))})?0:1)}function ve(ee){e.Debug.assert(e.isIdentifier(ee.name));var he=e.setTextRange(e.factory.createNamedTupleMember(ee.dotDotDotToken,ee.name,ee.questionToken,ee.type||e.factory.createKeywordTypeNode(130)),ee),F=ee.symbol&&ee.symbol.getDocumentationComment(se);if(F){var x=e.displayPartsToString(F);x.length&&e.setSyntheticLeadingComments(he,[{text:`*\n`.concat(x.split(`\n`).map(function(X){return\" * \".concat(X)}).join(`\n`),`\n `),kind:3,pos:-1,end:-1,hasTrailingNewLine:!0,hasLeadingNewline:!0}])}return he}}function m(oe){switch(oe.kind){case 168:case 169:case 174:case 171:case 175:case 256:return!0}return!1}function G(oe,f,T){var K=e.getTokenAtPosition(oe,f),b=e.findAncestor(K,m);if(!!b){var se=T.getTypeChecker(),J=b.symbol;if(!!J){var ie=J.declarations;if(!(e.length(ie)<=1)&&!!e.every(ie,function(ee){return e.getSourceFileOfNode(ee)===oe})&&!!m(ie[0])){var R=ie[0].kind;if(!!e.every(ie,function(ee){return ee.kind===R})){var q=ie;if(!e.some(q,function(ee){return!!ee.typeParameters||e.some(ee.parameters,function(he){return!!he.decorators||!!he.modifiers||!e.isIdentifier(he.name)})})){var O=e.mapDefined(q,function(ee){return se.getSignatureFromDeclaration(ee)});if(e.length(O)===e.length(ie)){var ve=se.getReturnTypeOfSignature(O[0]);if(!!e.every(O,function(ee){return se.getReturnTypeOfSignature(ee)===ve}))return q}}}}}}}})(w=C.addOrRemoveBracesToArrowFunction||(C.addOrRemoveBracesToArrowFunction={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E=\"Extract Symbol\",Q={name:\"Extract Constant\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),kind:\"refactor.extract.constant\"},le={name:\"Extract Function\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),kind:\"refactor.extract.function\"};C.registerRefactor(E,{kinds:[Q.kind,le.kind],getEditsForAction:p,getAvailableActions:N});function N(Fe){var Z=Fe.kind,Be=oe(Fe.file,e.getRefactorContextSpan(Fe),Fe.triggerReason===\"invoked\"),ge=Be.targetRange;if(ge===void 0){if(!Be.errors||Be.errors.length===0||!Fe.preferences.provideRefactorNotApplicableReason)return e.emptyArray;var Re=[];return C.refactorKindBeginsWith(le.kind,Z)&&Re.push({name:E,description:le.description,actions:[Ke(Ke({},le),{notApplicableReason:Ne(Be.errors)})]}),C.refactorKindBeginsWith(Q.kind,Z)&&Re.push({name:E,description:Q.description,actions:[Ke(Ke({},Q),{notApplicableReason:Ne(Be.errors)})]}),Re}var ze=ie(ge,Fe);if(ze===void 0)return e.emptyArray;for(var Ee=[],He=new e.Map,rr,Ie=[],_e=new e.Map,we,de=0,ye=0,Ae=ze;ye=Z.start+Z.length)return(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractSuper)),!0}else we|=G.UsesThis,de=mi;break;case 214:e.forEachChild(mi,function Di(wi){if(e.isThis(wi))we|=G.UsesThis,de=mi;else{if(e.isClassLike(wi)||e.isFunctionLike(wi)&&!e.isArrowFunction(wi))return!1;e.forEachChild(wi,Di)}});case 257:case 256:e.isSourceFile(mi.parent)&&mi.parent.externalModuleIndicator===void 0&&(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.functionWillNotBeVisibleInTheNewScope));case 226:case 213:case 169:case 171:case 172:case 173:return!1}var qr=Ir;switch(mi.kind){case 239:Ir=0;break;case 252:Ir=0;break;case 235:mi.parent&&mi.parent.kind===252&&mi.parent.finallyBlock===mi&&(Ir=4);break;case 290:case 289:Ir|=1;break;default:e.isIterationStatement(mi,!1)&&(Ir|=3);break}switch(mi.kind){case 192:case 108:we|=G.UsesThis,de=mi;break;case 250:{var si=mi.label;(wr||(wr=[])).push(si.escapedText),e.forEachChild(mi,ii),wr.pop();break}case 246:case 245:{var si=mi.label;si?e.contains(wr,si.escapedText)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):Ir&(mi.kind===246?1:2)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break}case 218:we|=G.IsAsyncFunction;break;case 224:we|=G.IsGenerator;break;case 247:Ir&4?we|=G.HasReturn:(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(mi,ii);break}Ir=qr}}}B.getRangeToExtract=oe;function f(Fe,Z,Be){var ge=Fe.getStart(Be),Re=Z.getEnd();return Be.text.charCodeAt(Re)===59&&Re++,{start:ge,length:Re-ge}}function T(Fe){if(e.isStatement(Fe))return[Fe];if(e.isExpressionNode(Fe))return e.isExpressionStatement(Fe.parent)?[Fe.parent]:Fe;if(We(Fe))return Fe}function K(Fe){return e.isArrowFunction(Fe)?e.isFunctionBody(Fe.body):e.isFunctionLikeDeclaration(Fe)||e.isSourceFile(Fe)||e.isModuleBlock(Fe)||e.isClassLike(Fe)}function b(Fe){var Z=I(Fe.range)?e.first(Fe.range):Fe.range;if(Fe.facts&G.UsesThis&&!(Fe.facts&G.UsesThisInFunction)){var Be=e.getContainingClass(Z);if(Be){var ge=e.findAncestor(Z,e.isFunctionLikeDeclaration);return ge?[ge,Be]:[Be]}}for(var Re=[];;)if(Z=Z.parent,Z.kind===164&&(Z=e.findAncestor(Z,function(ze){return e.isFunctionLikeDeclaration(ze)}).parent),K(Z)&&(Re.push(Z),Z.kind===305))return Re}function se(Fe,Z,Be){var ge=R(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.functionErrorsPerScope,Ie=ze.exposedVariableDeclarations;return e.Debug.assert(!rr[Be].length,\"The extraction went missing? How?\"),Z.cancellationToken.throwIfCancellationRequested(),x(Ee,Re[Be],He[Be],Ie,Fe,Z)}function J(Fe,Z,Be){var ge=R(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.constantErrorsPerScope,Ie=ze.exposedVariableDeclarations;e.Debug.assert(!rr[Be].length,\"The extraction went missing? How?\"),e.Debug.assert(Ie.length===0,\"Extract constant accepted a range containing a variable declaration?\"),Z.cancellationToken.throwIfCancellationRequested();var _e=e.isExpression(Ee)?Ee:Ee.statements[0].expression;return X(_e,Re[Be],He[Be],Fe.facts,Z)}function ie(Fe,Z){var Be=R(Fe,Z),ge=Be.scopes,Re=Be.readsAndWrites,ze=Re.functionErrorsPerScope,Ee=Re.constantErrorsPerScope,He=ge.map(function(rr,Ie){var _e=q(rr),we=O(rr),de=e.isFunctionLikeDeclaration(rr)?ve(rr):e.isClassLike(rr)?ee(rr):he(rr),ye,Ae;return de===1?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,\"global\"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,\"global\"])):de===0?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,\"module\"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,\"module\"])):(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[_e,de]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[we,de])),Ie===0&&!e.isClassLike(rr)&&(Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[we])),{functionExtraction:{description:ye,errors:ze[Ie]},constantExtraction:{description:Ae,errors:Ee[Ie]}}});return He}function R(Fe,Z){var Be=Z.file,ge=b(Fe),Re=l(Fe,Be),ze=D(Fe,ge,Re,Be,Z.program.getTypeChecker(),Z.cancellationToken);return{scopes:ge,readsAndWrites:ze}}function q(Fe){return e.isFunctionLikeDeclaration(Fe)?\"inner function\":e.isClassLike(Fe)?\"method\":\"function\"}function O(Fe){return e.isClassLike(Fe)?\"readonly field\":\"constant\"}function ve(Fe){switch(Fe.kind){case 171:return\"constructor\";case 213:case 256:return Fe.name?\"function '\".concat(Fe.name.text,\"'\"):e.ANONYMOUS;case 214:return\"arrow function\";case 169:return\"method '\".concat(Fe.name.getText(),\"'\");case 172:return\"'get \".concat(Fe.name.getText(),\"'\");case 173:return\"'set \".concat(Fe.name.getText(),\"'\");default:throw e.Debug.assertNever(Fe,\"Unexpected scope kind \".concat(Fe.kind))}}function ee(Fe){return Fe.kind===257?Fe.name?\"class '\".concat(Fe.name.text,\"'\"):\"anonymous class declaration\":Fe.name?\"class expression '\".concat(Fe.name.text,\"'\"):\"anonymous class expression\"}function he(Fe){return Fe.kind===262?\"namespace '\".concat(Fe.parent.name.getText(),\"'\"):Fe.externalModuleIndicator?0:1}var F;(function(Fe){Fe[Fe.Module=0]=\"Module\",Fe[Fe.Global=1]=\"Global\"})(F||(F={}));function x(Fe,Z,Be,ge,Re,ze){var Ee=Be.usages,He=Be.typeParameterUsages,rr=Be.substitutions,Ie=ze.program.getTypeChecker(),_e=e.getEmitScriptTarget(ze.program.getCompilerOptions()),we=e.codefix.createImportAdder(ze.file,ze.program,ze.preferences,ze.host),de=Z.getSourceFile(),ye=e.getUniqueName(e.isClassLike(Z)?\"newMethod\":\"newFunction\",de),Ae=e.isInJSFile(Z),er=e.factory.createIdentifier(ye),ir,Cr=[],Ye=[],Br;Ee.forEach(function(xe,vr){var mr;if(!Ae){var Ar=Ie.getTypeOfSymbolAtLocation(xe.symbol,xe.node);Ar=Ie.getBaseTypeOfLiteralType(Ar),mr=e.codefix.typeToAutoImportableTypeNode(Ie,we,Ar,Z,_e,1)}var Oe=e.factory.createParameterDeclaration(void 0,void 0,void 0,vr,void 0,mr);Cr.push(Oe),xe.usage===2&&(Br||(Br=[])).push(xe),Ye.push(e.factory.createIdentifier(vr))});var Er=e.arrayFrom(He.values()).map(function(xe){return{type:xe,declaration:A(xe)}}),Ne=Er.sort(y),n=Ne.length===0?void 0:Ne.map(function(xe){return xe.declaration}),lr=n!==void 0?n.map(function(xe){return e.factory.createTypeReferenceNode(xe.name,void 0)}):void 0;if(e.isExpression(Fe)&&!Ae){var be=Ie.getContextualType(Fe);ir=Ie.typeToTypeNode(be,Z,1)}var Ge=L(Fe,ge,Br,rr,!!(Re.facts&G.HasReturn)),ur=Ge.body,yr=Ge.returnValueProperty;e.suppressLeadingAndTrailingTrivia(ur);var Ir,wr=!!(Re.facts&G.UsesThisInFunction);if(e.isClassLike(Z)){var Ur=Ae?[]:[e.factory.createModifier(121)];Re.facts&G.InStaticRegion&&Ur.push(e.factory.createModifier(124)),Re.facts&G.IsAsyncFunction&&Ur.push(e.factory.createModifier(131)),Ir=e.factory.createMethodDeclaration(void 0,Ur.length?Ur:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,void 0,n,Cr,ir,ur)}else wr&&Cr.unshift(e.factory.createParameterDeclaration(void 0,void 0,void 0,\"this\",void 0,Ie.typeToTypeNode(Ie.getTypeAtLocation(Re.thisNode),Z,1),void 0)),Ir=e.factory.createFunctionDeclaration(void 0,Re.facts&G.IsAsyncFunction?[e.factory.createToken(131)]:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,n,Cr,ir,ur);var ii=e.textChanges.ChangeTracker.fromContext(ze),mi=(I(Re.range)?e.last(Re.range):Re.range).end,pe=Y(mi,Z);pe?ii.insertNodeBefore(ze.file,pe,Ir,!0):ii.insertNodeAtEndOfScope(ze.file,Z,Ir),we.writeFixes(ii);var or=[],qr=V(Z,Re,ye);wr&&Ye.unshift(e.factory.createIdentifier(\"this\"));var si=e.factory.createCallExpression(wr?e.factory.createPropertyAccessExpression(qr,\"call\"):qr,lr,Ye);if(Re.facts&G.IsGenerator&&(si=e.factory.createYieldExpression(e.factory.createToken(41),si)),Re.facts&G.IsAsyncFunction&&(si=e.factory.createAwaitExpression(si)),ue(Fe)&&(si=e.factory.createJsxExpression(void 0,si)),ge.length&&!Br)if(e.Debug.assert(!yr,\"Expected no returnValueProperty\"),e.Debug.assert(!(Re.facts&G.HasReturn),\"Expected RangeFacts.HasReturn flag to be unset\"),ge.length===1){var Di=ge[0];or.push(e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([e.factory.createVariableDeclaration(e.getSynthesizedDeepClone(Di.name),void 0,e.getSynthesizedDeepClone(Di.type),si)],Di.parent.flags)))}else{for(var wi=[],Xi=[],et=ge[0].parent.flags,Gi=!1,Wt=0,Zt=ge;Wt1)return Fe;Be=Fe,Fe=Fe.parent}}function A(Fe){var Z,Be=Fe.symbol;if(Be&&Be.declarations)for(var ge=0,Re=Be.declarations;ge0;if(e.isBlock(Fe)&&!ze&&ge.size===0)return{body:e.factory.createBlock(Fe.statements,!0),returnValueProperty:void 0};var Ee,He=!1,rr=e.factory.createNodeArray(e.isBlock(Fe)?Fe.statements.slice(0):[e.isStatement(Fe)?Fe:e.factory.createReturnStatement(e.skipParentheses(Fe))]);if(ze||ge.size){var Ie=e.visitNodes(rr,we).slice();if(ze&&!Re&&e.isStatement(Fe)){var _e=H(Z,Be);_e.length===1?Ie.push(e.factory.createReturnStatement(_e[0].name)):Ie.push(e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(_e)))}return{body:e.factory.createBlock(Ie,!0),returnValueProperty:Ee}}else return{body:e.factory.createBlock(rr,!0),returnValueProperty:void 0};function we(de){if(!He&&e.isReturnStatement(de)&&ze){var ye=H(Z,Be);return de.expression&&(Ee||(Ee=\"__return\"),ye.unshift(e.factory.createPropertyAssignment(Ee,e.visitNode(de.expression,we)))),ye.length===1?e.factory.createReturnStatement(ye[0].name):e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(ye))}else{var Ae=He;He=He||e.isFunctionLikeDeclaration(de)||e.isClassLike(de);var er=ge.get(e.getNodeId(de).toString()),ir=er?e.getSynthesizedDeepClone(er):e.visitEachChild(de,we,e.nullTransformationContext);return He=Ae,ir}}}function P(Fe,Z){return Z.size?Be(Fe):Fe;function Be(ge){var Re=Z.get(e.getNodeId(ge).toString());return Re?e.getSynthesizedDeepClone(Re):e.visitEachChild(ge,Be,e.nullTransformationContext)}}function k(Fe){if(e.isFunctionLikeDeclaration(Fe)){var Z=Fe.body;if(e.isBlock(Z))return Z.statements}else{if(e.isModuleBlock(Fe)||e.isSourceFile(Fe))return Fe.statements;if(e.isClassLike(Fe))return Fe.members;e.assertType(Fe)}return e.emptyArray}function Y(Fe,Z){return e.find(k(Z),function(Be){return Be.pos>=Fe&&e.isFunctionLikeDeclaration(Be)&&!e.isConstructorDeclaration(Be)})}function U(Fe,Z){var Be=Z.members;e.Debug.assert(Be.length>0,\"Found no members\");for(var ge,Re=!0,ze=0,Ee=Be;zeFe)return ge||Be[0];if(Re&&!e.isPropertyDeclaration(He)){if(ge!==void 0)return He;Re=!1}ge=He}return ge===void 0?e.Debug.fail():ge}function j(Fe,Z){e.Debug.assert(!e.isClassLike(Z));for(var Be,ge=Fe;ge!==Z;ge=ge.parent)K(ge)&&(Be=ge);for(var ge=(Be||Fe).parent;;ge=ge.parent){if(ne(ge)){for(var Re=void 0,ze=0,Ee=ge.statements;zeFe.pos)break;Re=He}return!Re&&e.isCaseClause(ge)?(e.Debug.assert(e.isSwitchStatement(ge.parent.parent),\"Grandparent isn't a switch statement\"),ge.parent.parent):e.Debug.checkDefined(Re,\"prevStatement failed to get set\")}e.Debug.assert(ge!==Z,\"Didn't encounter a block-like before encountering scope\")}}function H(Fe,Z){var Be=e.map(Fe,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)}),ge=e.map(Z,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)});return Be===void 0?ge:ge===void 0?Be:Be.concat(ge)}function I(Fe){return e.isArray(Fe)}function l(Fe,Z){return I(Fe.range)?{pos:e.first(Fe.range).getStart(Z),end:e.last(Fe.range).getEnd()}:Fe.range}var d;(function(Fe){Fe[Fe.Read=1]=\"Read\",Fe[Fe.Write=2]=\"Write\"})(d||(d={}));function D(Fe,Z,Be,ge,Re,ze){var Ee=new e.Map,He=[],rr=[],Ie=[],_e=[],we=[],de=new e.Map,ye=[],Ae,er=I(Fe.range)?Fe.range.length===1&&e.isExpressionStatement(Fe.range[0])?Fe.range[0].expression:void 0:Fe.range,ir;if(er===void 0){var Cr=Fe.range,Ye=e.first(Cr).getStart(),Br=e.last(Cr).end;ir=e.createFileDiagnostic(ge,Ye,Br-Ye,m.expressionExpected)}else Re.getTypeAtLocation(er).flags&147456&&(ir=e.createDiagnosticForNode(er,m.uselessConstantType));for(var Er=0,Ne=Z;Er0){for(var wr=new e.Map,Ur=0,ii=ur;ii!==void 0&&Ur0&&(Jr.usages.size>0||Jr.typeParameterUsages.size>0)){var ti=I(Fe.range)?Fe.range[0]:Fe.range;_e[Xe].push(e.createDiagnosticForNode(ti,m.cannotAccessVariablesFromNestedScopes))}Fe.facts&G.UsesThisInFunction&&e.isClassLike(Z[Xe])&&Ie[Xe].push(e.createDiagnosticForNode(Fe.thisNode,m.cannotExtractFunctionsContainingThisToMethod));var Ze=!1,Sr;if(He[Xe].usages.forEach(function(Wr){Wr.usage===2&&(Ze=!0,Wr.symbol.flags&106500&&Wr.symbol.valueDeclaration&&e.hasEffectiveModifier(Wr.symbol.valueDeclaration,64)&&(Sr=Wr.symbol.valueDeclaration))}),e.Debug.assert(I(Fe.range)||ye.length===0,\"No variable declarations expected if something was extracted\"),Ze&&!I(Fe.range)){var zr=e.createDiagnosticForNode(Fe.range,m.cannotWriteInExpression);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Sr&&Xe>0){var zr=e.createDiagnosticForNode(Sr,m.cannotExtractReadonlyPropertyInitializerOutsideConstructor);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Ae){var zr=e.createDiagnosticForNode(Ae,m.cannotExtractExportedEntity);Ie[Xe].push(zr),_e[Xe].push(zr)}},wi=0;wi=Jr)return Sr;if(be.set(Sr,Jr),zr){for(var Wr=0,Je=He;Wr=0)){var Jr=e.isIdentifier(Xe)?pi(Xe):Re.getSymbolAtLocation(Xe);if(Jr){var ti=e.find(we,function(Sr){return Sr.symbol===Jr});if(ti)if(e.isVariableDeclaration(ti)){var Ze=ti.symbol.id.toString();de.has(Ze)||(ye.push(ti),de.set(Ze,!0))}else Ae=Ae||ti}e.forEachChild(Xe,_r)}}function pi(Xe){return Xe.parent&&e.isShorthandPropertyAssignment(Xe.parent)&&Xe.parent.name===Xe?Re.getShorthandAssignmentValueSymbol(Xe.parent):Re.getSymbolAtLocation(Xe)}function ae(Xe,Jr,ti){if(!!Xe){var Ze=Xe.getDeclarations();if(Ze&&Ze.some(function(zr){return zr.parent===Jr}))return e.factory.createIdentifier(Xe.name);var Sr=ae(Xe.parent,Jr,ti);if(Sr!==void 0)return ti?e.factory.createQualifiedName(Sr,e.factory.createIdentifier(Xe.name)):e.factory.createPropertyAccessExpression(Sr,Xe.name)}}}function fe(Fe){return e.findAncestor(Fe,function(Z){return Z.parent&&g(Z)&&!e.isBinaryExpression(Z.parent)})}function g(Fe){var Z=Fe.parent;switch(Z.kind){case 299:return!1}switch(Fe.kind){case 10:return Z.kind!==266&&Z.kind!==270;case 225:case 201:case 203:return!1;case 79:return Z.kind!==203&&Z.kind!==270&&Z.kind!==275}return!0}function ne(Fe){switch(Fe.kind){case 235:case 305:case 262:case 289:return!0;default:return!1}}function ue(Fe){return We(Fe)||(e.isJsxElement(Fe)||e.isJsxSelfClosingElement(Fe)||e.isJsxFragment(Fe))&&(e.isJsxElement(Fe.parent)||e.isJsxFragment(Fe.parent))}function We(Fe){return e.isStringLiteral(Fe)&&Fe.parent&&e.isJsxAttribute(Fe.parent)}})(w=C.extractSymbol||(C.extractSymbol={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"Extract type\",B={name:\"Extract to type alias\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_type_alias),kind:\"refactor.extract.type\"},E={name:\"Extract to interface\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_interface),kind:\"refactor.extract.interface\"},Q={name:\"Extract to typedef\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_typedef),kind:\"refactor.extract.typedef\"};C.registerRefactor(w,{kinds:[B.kind,E.kind,Q.kind],getAvailableActions:function(K){var b=le(K,K.triggerReason===\"invoked\");return b?C.isRefactorErrorInfo(b)?K.preferences.provideRefactorNotApplicableReason?[{name:w,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:[Ke(Ke({},Q),{notApplicableReason:b.error}),Ke(Ke({},B),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray:[{name:w,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:b.isJS?[Q]:e.append([B],b.typeElements&&E)}]:e.emptyArray},getEditsForAction:function(K,b){var se=K.file,J=le(K);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),\"Expected to find a range to extract\");var ie=e.getUniqueName(\"NewType\",se),R=e.textChanges.ChangeTracker.with(K,function(ve){switch(b){case B.name:return e.Debug.assert(!J.isJS,\"Invalid actionName/JS combo\"),G(ve,se,ie,J);case Q.name:return e.Debug.assert(J.isJS,\"Invalid actionName/JS combo\"),f(ve,se,ie,J);case E.name:return e.Debug.assert(!J.isJS&&!!J.typeElements,\"Invalid actionName/JS combo\"),oe(ve,se,ie,J);default:e.Debug.fail(\"Unexpected action name\")}}),q=se.fileName,O=e.getRenameLocation(R,q,ie,!1);return{edits:R,renameFilename:q,renameLocation:O}}});function le(T,K){K===void 0&&(K=!0);var b=T.file,se=T.startPosition,J=e.isSourceFileJS(b),ie=e.getTokenAtPosition(b,se),R=e.createTextRangeFromSpan(e.getRefactorContextSpan(T)),q=R.pos===R.end&&K,O=e.findAncestor(ie,function(x){return x.parent&&e.isTypeNode(x)&&!p(R,x.parent,b)&&(q||e.nodeOverlapsWithStartEnd(ie,b,R.pos,R.end))});if(!O||!e.isTypeNode(O))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Selection_is_not_a_valid_type_node)};var ve=T.program.getTypeChecker(),ee=e.Debug.checkDefined(e.findAncestor(O,e.isStatement),\"Should find a statement\"),he=m(ve,O,ee,b);if(!he)return{error:e.getLocaleSpecificMessage(e.Diagnostics.No_type_could_be_extracted_from_this_type_node)};var F=N(ve,O);return{isJS:J,selection:O,firstStatement:ee,typeParameters:he,typeElements:F}}function N(T,K){if(!!K)if(e.isIntersectionTypeNode(K)){for(var b=[],se=new e.Map,J=0,ie=K.types;Jrr.pos});if(_e!==-1){var we=Ie[_e];if(e.isNamedDeclaration(we)&&we.name&&e.rangeContainsRange(we.name,rr))return{toMove:[Ie[_e]],afterLast:Ie[_e+1]};if(!(rr.pos>we.getStart(He))){var de=e.findIndex(Ie,function(ye){return ye.end>rr.end},_e);if(!(de!==-1&&(de===0||Ie[de].getStart(He)=Q&&e.every(U,function(H){return F(H,j)})}function F(U,j){if(e.isRestParameter(U)){var H=j.getTypeAtLocation(U);if(!j.isArrayType(H)&&!j.isTupleType(H))return!1}return!U.modifiers&&!U.decorators&&e.isIdentifier(U.name)}function x(U){return e.isVariableDeclaration(U)&&e.isVarConst(U)&&e.isIdentifier(U.name)&&!U.type}function X(U){return U.length>0&&e.isThis(U[0].name)}function $(U){return X(U)?U.length-1:U.length}function A(U){return X(U)&&(U=e.factory.createNodeArray(U.slice(1),U.hasTrailingComma)),U}function y(U,j){return e.isIdentifier(j)&&e.getTextOfIdentifierOrLiteral(j)===U?e.factory.createShorthandPropertyAssignment(U):e.factory.createPropertyAssignment(U,j)}function V(U,j){var H=A(U.parameters),I=e.isRestParameter(e.last(H)),l=I?j.slice(0,H.length-1):j,d=e.map(l,function(ne,ue){var We=P(H[ue]),Fe=y(We,ne);return e.suppressLeadingAndTrailingTrivia(Fe.name),e.isPropertyAssignment(Fe)&&e.suppressLeadingAndTrailingTrivia(Fe.initializer),e.copyComments(ne,Fe),Fe});if(I&&j.length>=H.length){var D=j.slice(H.length-1),fe=e.factory.createPropertyAssignment(P(e.last(H)),e.factory.createArrayLiteralExpression(D));d.push(fe)}var g=e.factory.createObjectLiteralExpression(d,!1);return g}function L(U,j,H){var I=j.getTypeChecker(),l=A(U.parameters),d=e.map(l,Fe),D=e.factory.createObjectBindingPattern(d),fe=Z(l),g;e.every(l,Re)&&(g=e.factory.createObjectLiteralExpression());var ne=e.factory.createParameterDeclaration(void 0,void 0,void 0,D,void 0,fe,g);if(X(U.parameters)){var ue=U.parameters[0],We=e.factory.createParameterDeclaration(void 0,void 0,void 0,ue.name,void 0,ue.type);return e.suppressLeadingAndTrailingTrivia(We.name),e.copyComments(ue.name,We.name),ue.type&&(e.suppressLeadingAndTrailingTrivia(We.type),e.copyComments(ue.type,We.type)),e.factory.createNodeArray([We,ne])}return e.factory.createNodeArray([ne]);function Fe(ze){var Ee=e.factory.createBindingElement(void 0,void 0,P(ze),e.isRestParameter(ze)&&Re(ze)?e.factory.createArrayLiteralExpression():ze.initializer);return e.suppressLeadingAndTrailingTrivia(Ee),ze.initializer&&Ee.initializer&&e.copyComments(ze.initializer,Ee.initializer),Ee}function Z(ze){var Ee=e.map(ze,Be),He=e.addEmitFlags(e.factory.createTypeLiteralNode(Ee),1);return He}function Be(ze){var Ee=ze.type;!Ee&&(ze.initializer||e.isRestParameter(ze))&&(Ee=ge(ze));var He=e.factory.createPropertySignature(void 0,P(ze),Re(ze)?e.factory.createToken(57):ze.questionToken,Ee);return e.suppressLeadingAndTrailingTrivia(He),e.copyComments(ze.name,He.name),ze.type&&He.type&&e.copyComments(ze.type,He.type),He}function ge(ze){var Ee=I.getTypeAtLocation(ze);return e.getTypeNodeIfAccessible(Ee,ze,j,H)}function Re(ze){if(e.isRestParameter(ze)){var Ee=I.getTypeAtLocation(ze);return!I.isTupleType(Ee)}return I.isOptionalParameter(ze)}}function P(U){return e.getTextOfIdentifierOrLiteral(U.name)}function k(U){switch(U.parent.kind){case 257:var j=U.parent;if(j.name)return[j.name];var H=e.Debug.checkDefined(e.findModifier(j,88),\"Nameless class declaration should be a default export\");return[H];case 226:var I=U.parent,l=U.parent.parent,d=I.name;return d?[d,l.name]:[l.name]}}function Y(U){switch(U.kind){case 256:if(U.name)return[U.name];var j=e.Debug.checkDefined(e.findModifier(U,88),\"Nameless function declaration should be a default export\");return[j];case 169:return[U.name];case 171:var H=e.Debug.checkDefined(e.findChildOfKind(U,134,U.getSourceFile()),\"Constructor declaration should have constructor keyword\");if(U.parent.kind===226){var I=U.parent.parent;return[I.name,H]}return[H];case 214:return[U.parent.name];case 213:return U.name?[U.name,U.parent.name]:[U.parent.name];default:return e.Debug.assertNever(U,\"Unexpected function declaration kind \".concat(U.kind))}}})(w=C.convertParamsToDestructuredObject||(C.convertParamsToDestructuredObject={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E=\"Convert to template string\",Q=e.getLocaleSpecificMessage(e.Diagnostics.Convert_to_template_string),le={name:E,description:Q,kind:\"refactor.rewrite.string\"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:m,getAvailableActions:N});function N(ve){var ee=ve.file,he=ve.startPosition,F=p(ee,he),x=f(F),X={name:E,description:Q,actions:[]};return e.isBinaryExpression(x)&&T(x).isValidConcatenation?(X.actions.push(le),[X]):ve.preferences.provideRefactorNotApplicableReason?(X.actions.push(Ke(Ke({},le),{notApplicableReason:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_string_concatenation)})),[X]):e.emptyArray}function p(ve,ee){var he=e.getTokenAtPosition(ve,ee),F=f(he),x=!T(F).isValidConcatenation;return x&&e.isParenthesizedExpression(F.parent)&&e.isBinaryExpression(F.parent.parent)?F.parent.parent:he}function m(ve,ee){var he=ve.file,F=ve.startPosition,x=p(he,F);switch(ee){case Q:return{edits:G(ve,x)};default:return e.Debug.fail(\"invalid action\")}}function G(ve,ee){var he=f(ee),F=ve.file,x=R(T(he),F),X=e.getTrailingCommentRanges(F.text,he.end);if(X){var $=X[X.length-1],A={pos:X[0].pos,end:$.end};return e.textChanges.ChangeTracker.with(ve,function(y){y.deleteRange(F,A),y.replaceNode(F,he,x)})}else return e.textChanges.ChangeTracker.with(ve,function(y){return y.replaceNode(F,he,x)})}function oe(ve){return ve.operatorToken.kind!==63}function f(ve){var ee=e.findAncestor(ve.parent,function(he){switch(he.kind){case 206:case 207:return!1;case 223:case 221:return!(e.isBinaryExpression(he.parent)&&oe(he.parent));default:return\"quit\"}});return ee||ve}function T(ve){var ee=function(A){if(!e.isBinaryExpression(A))return{nodes:[A],operators:[],validOperators:!0,hasString:e.isStringLiteral(A)||e.isNoSubstitutionTemplateLiteral(A)};var y=ee(A.left),V=y.nodes,L=y.operators,P=y.hasString,k=y.validOperators;if(!(P||e.isStringLiteral(A.right)||e.isTemplateExpression(A.right)))return{nodes:[A],operators:[],hasString:!1,validOperators:!0};var Y=A.operatorToken.kind===39,U=k&&Y;return V.push(A.right),L.push(A.operatorToken),{nodes:V,operators:L,hasString:!0,validOperators:U}},he=ee(ve),F=he.nodes,x=he.operators,X=he.validOperators,$=he.hasString;return{nodes:F,operators:x,isValidConcatenation:X&&$}}var K=function(ve,ee){return function(he,F){he0;){var X=F.shift();e.copyTrailingComments(ve[X],x,ee,3,!1),he(X,x)}}};function se(ve){return ve.replace(/\\\\.|[$`]/g,function(ee){return ee[0]===\"\\\\\"?ee:\"\\\\\"+ee})}function J(ve){var ee=e.isTemplateHead(ve)||e.isTemplateMiddle(ve)?-2:-1;return e.getTextOfNode(ve).slice(1,ee)}function ie(ve,ee){for(var he=[],F=\"\",x=\"\";ve1)return T.getUnionType(e.mapDefined(b,function(J){return J.getReturnType()}))}var se=T.getSignatureFromDeclaration(K);if(se)return T.getReturnTypeOfSignature(se)}})(w=C.inferFunctionReturnType||(C.inferFunctionReturnType={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){e.servicesVersion=\"0.8\";function a(g,ne,ue,We){var Fe=e.isNodeKind(g)?new C(g,ne,ue):g===79?new p(79,ne,ue):g===80?new m(80,ne,ue):new N(g,ne,ue);return Fe.parent=We,Fe.flags=We.flags&50720768,Fe}var C=function(){function g(ne,ue,We){this.pos=ue,this.end=We,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=ne}return g.prototype.assertHasRealPosition=function(ne){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),ne||\"Node must have a real position for this operation\")},g.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},g.prototype.getStart=function(ne,ue){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,ne,ue)},g.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},g.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},g.prototype.getWidth=function(ne){return this.assertHasRealPosition(),this.getEnd()-this.getStart(ne)},g.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},g.prototype.getLeadingTriviaWidth=function(ne){return this.assertHasRealPosition(),this.getStart(ne)-this.pos},g.prototype.getFullText=function(ne){return this.assertHasRealPosition(),(ne||this.getSourceFile()).text.substring(this.pos,this.end)},g.prototype.getText=function(ne){return this.assertHasRealPosition(),ne||(ne=this.getSourceFile()),ne.text.substring(this.getStart(ne),this.getEnd())},g.prototype.getChildCount=function(ne){return this.getChildren(ne).length},g.prototype.getChildAt=function(ne,ue){return this.getChildren(ue)[ne]},g.prototype.getChildren=function(ne){return this.assertHasRealPosition(\"Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine\"),this._children||(this._children=w(this,ne))},g.prototype.getFirstToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne);if(!!ue.length){var We=e.find(ue,function(Fe){return Fe.kind<309||Fe.kind>347});return We.kind<161?We:We.getFirstToken(ne)}},g.prototype.getLastToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne),We=e.lastOrUndefined(ue);if(!!We)return We.kind<161?We:We.getLastToken(ne)},g.prototype.forEachChild=function(ne,ue){return e.forEachChild(this,ne,ue)},g}();function w(g,ne){if(!e.isNodeKind(g.kind))return e.emptyArray;var ue=[];if(e.isJSDocCommentContainingNode(g))return g.forEachChild(function(Be){ue.push(Be)}),ue;e.scanner.setText((ne||g.getSourceFile()).text);var We=g.pos,Fe=function(Be){B(ue,We,Be.pos,g),ue.push(Be),We=Be.end},Z=function(Be){B(ue,We,Be.pos,g),ue.push(E(Be,g)),We=Be.end};return e.forEach(g.jsDoc,Fe),We=g.pos,g.forEachChild(Fe,Z),B(ue,We,g.end,g),e.scanner.setText(void 0),ue}function B(g,ne,ue,We){for(e.scanner.setTextPos(ne);ne=Fe.length&&(Z=this.getEnd()),Z||(Z=Fe[We+1]-1);var Be=this.getFullText();return Be[Z]===`\n`&&Be[Z-1]===\"\\r\"?Z-1:Z},ne.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},ne.prototype.computeNamedDeclarations=function(){var ue=e.createMultiMap();return this.forEachChild(Be),ue;function We(ge){var Re=Z(ge);Re&&ue.add(Re,ge)}function Fe(ge){var Re=ue.get(ge);return Re||ue.set(ge,Re=[]),Re}function Z(ge){var Re=e.getNonAssignedNameOfDeclaration(ge);return Re&&(e.isComputedPropertyName(Re)&&e.isPropertyAccessExpression(Re.expression)?Re.expression.name.text:e.isPropertyName(Re)?e.getNameFromPropertyName(Re):void 0)}function Be(ge){switch(ge.kind){case 256:case 213:case 169:case 168:var Re=ge,ze=Z(Re);if(ze){var Ee=Fe(ze),He=e.lastOrUndefined(Ee);He&&Re.parent===He.parent&&Re.symbol===He.symbol?Re.body&&!He.body&&(Ee[Ee.length-1]=Re):Ee.push(Re)}e.forEachChild(ge,Be);break;case 257:case 226:case 258:case 259:case 260:case 261:case 265:case 275:case 270:case 267:case 268:case 172:case 173:case 182:We(ge),e.forEachChild(ge,Be);break;case 164:if(!e.hasSyntacticModifier(ge,16476))break;case 254:case 203:{var rr=ge;if(e.isBindingPattern(rr.name)){e.forEachChild(rr.name,Be);break}rr.initializer&&Be(rr.initializer)}case 299:case 167:case 166:We(ge);break;case 272:var Ie=ge;Ie.exportClause&&(e.isNamedExports(Ie.exportClause)?e.forEach(Ie.exportClause.elements,Be):Be(Ie.exportClause.name));break;case 266:var _e=ge.importClause;_e&&(_e.name&&We(_e.name),_e.namedBindings&&(_e.namedBindings.kind===268?We(_e.namedBindings):e.forEach(_e.namedBindings.elements,Be)));break;case 221:e.getAssignmentDeclarationKind(ge)!==0&&We(ge);default:e.forEachChild(ge,Be)}}},ne}(C),J=function(){function g(ne,ue,We){this.fileName=ne,this.text=ue,this.skipTrivia=We}return g.prototype.getLineAndCharacterOfPosition=function(ne){return e.getLineAndCharacterOfPosition(this,ne)},g}();function ie(){return{getNodeConstructor:function(){return C},getTokenConstructor:function(){return N},getIdentifierConstructor:function(){return p},getPrivateIdentifierConstructor:function(){return m},getSourceFileConstructor:function(){return se},getSymbolConstructor:function(){return le},getTypeConstructor:function(){return G},getSignatureConstructor:function(){return oe},getSourceMapSourceConstructor:function(){return J}}}function R(g){var ne=!0;for(var ue in g)if(e.hasProperty(g,ue)&&!q(ue)){ne=!1;break}if(ne)return g;var We={};for(var ue in g)if(e.hasProperty(g,ue)){var Fe=q(ue)?ue:ue.charAt(0).toLowerCase()+ue.substr(1);We[Fe]=g[ue]}return We}e.toEditorSettings=R;function q(g){return!g.length||g.charAt(0)===g.charAt(0).toLowerCase()}function O(g){return g?e.map(g,function(ne){return ne.text}).join(\"\"):\"\"}e.displayPartsToString=O;function ve(){return{target:1,jsx:1}}e.getDefaultCompilerOptions=ve;function ee(){return e.codefix.getSupportedErrorCodes()}e.getSupportedCodeFixes=ee;var he=function(){function g(ne,ue){this.host=ne,this.currentDirectory=ne.getCurrentDirectory(),this.fileNameToEntry=new e.Map;var We=ne.getScriptFileNames();e.tracing===null||e.tracing===void 0||e.tracing.push(\"session\",\"initializeHostCache\",{count:We.length});for(var Fe=0,Z=We;Fe=this.throttleWaitMilliseconds?(this.lastCancellationCheckTime=ne,this.hostCancellationToken.isCancellationRequested()):!1},g.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw e.tracing===null||e.tracing===void 0||e.tracing.instant(\"session\",\"cancellationThrown\",{kind:\"ThrottledCancellationToken\"}),new e.OperationCanceledException},g}();e.ThrottledCancellationToken=V;var L=[\"getSemanticDiagnostics\",\"getSuggestionDiagnostics\",\"getCompilerOptionsDiagnostics\",\"getSemanticClassifications\",\"getEncodedSemanticClassifications\",\"getCodeFixesAtPosition\",\"getCombinedCodeFix\",\"applyCodeActionCommand\",\"organizeImports\",\"getEditsForFileRename\",\"getEmitOutput\",\"getApplicableRefactors\",\"getEditsForRefactor\",\"prepareCallHierarchy\",\"provideCallHierarchyIncomingCalls\",\"provideCallHierarchyOutgoingCalls\",\"provideInlayHints\"],P=Ve(Ve([],L,!0),[\"getCompletionsAtPosition\",\"getCompletionEntryDetails\",\"getCompletionEntrySymbol\",\"getSignatureHelpItems\",\"getQuickInfoAtPosition\",\"getDefinitionAtPosition\",\"getDefinitionAndBoundSpan\",\"getImplementationAtPosition\",\"getTypeDefinitionAtPosition\",\"getReferencesAtPosition\",\"findReferences\",\"getOccurrencesAtPosition\",\"getDocumentHighlights\",\"getNavigateToItems\",\"getRenameInfo\",\"findRenameLocations\",\"getApplicableRefactors\"],!1);function k(g,ne,ue){var We,Fe;ne===void 0&&(ne=e.createDocumentRegistry(g.useCaseSensitiveFileNames&&g.useCaseSensitiveFileNames(),g.getCurrentDirectory()));var Z;ue===void 0?Z=e.LanguageServiceMode.Semantic:typeof ue==\"boolean\"?Z=ue?e.LanguageServiceMode.Syntactic:e.LanguageServiceMode.Semantic:Z=ue;var Be=new F(g),ge,Re,ze=0,Ee=g.getCancellationToken?new y(g.getCancellationToken()):A,He=g.getCurrentDirectory();e.maybeSetLocalizedDiagnosticMessages((Fe=g.getLocalizedDiagnosticMessages)===null||Fe===void 0?void 0:Fe.bind(g));function rr(Ai){g.log&&g.log(Ai)}var Ie=e.hostUsesCaseSensitiveFileNames(g),_e=e.createGetCanonicalFileName(Ie),we=e.getSourceMapper({useCaseSensitiveFileNames:function(){return Ie},getCurrentDirectory:function(){return He},getProgram:Ae,fileExists:e.maybeBind(g,g.fileExists),readFile:e.maybeBind(g,g.readFile),getDocumentPositionMapper:e.maybeBind(g,g.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(g,g.getSourceFileLike),log:rr});function de(Ai){var Oi=ge.getSourceFile(Ai);if(!Oi){var ji=new Error(\"Could not find source file: '\".concat(Ai,\"'.\"));throw ji.ProgramFiles=ge.getSourceFiles().map(function(Vi){return Vi.fileName}),ji}return Oi}function ye(){var Ai,Oi,ji;if(e.Debug.assert(Z!==e.LanguageServiceMode.Syntactic),g.getProjectVersion){var Vi=g.getProjectVersion();if(Vi){if(Re===Vi&&!(!((Ai=g.hasChangedAutomaticTypeDirectiveNames)===null||Ai===void 0)&&Ai.call(g)))return;Re=Vi}}var at=g.getTypeRootsVersion?g.getTypeRootsVersion():0;ze!==at&&(rr(\"TypeRoots version has changed; provide new program\"),ge=void 0,ze=at);var At=new he(g,_e),ba=At.getRootFileNames(),$a=g.getCompilationSettings()||ve(),Qa=g.hasInvalidatedResolution||e.returnFalse,ai=e.maybeBind(g,g.hasChangedAutomaticTypeDirectiveNames),Dn=(Oi=g.getProjectReferences)===null||Oi===void 0?void 0:Oi.call(g),ka,Ba={useCaseSensitiveFileNames:Ie,fileExists:Pn,readFile:eo,readDirectory:Rn,trace:e.maybeBind(g,g.trace),getCurrentDirectory:function(){return He},onUnRecoverableConfigFileDiagnostic:e.noop};if(e.isProgramUptoDate(ge,ba,$a,function(En,Wn){return g.getScriptVersion(Wn)},Pn,Qa,ai,kn,Dn))return;var pn={getSourceFile:bo,getSourceFileByPath:Ro,getCancellationToken:function(){return Ee},getCanonicalFileName:_e,useCaseSensitiveFileNames:function(){return Ie},getNewLine:function(){return e.getNewLineCharacter($a,function(){return e.getNewLineOrDefaultFromHost(g)})},getDefaultLibFileName:function(En){return g.getDefaultLibFileName(En)},writeFile:e.noop,getCurrentDirectory:function(){return He},fileExists:Pn,readFile:eo,getSymlinkCache:e.maybeBind(g,g.getSymlinkCache),realpath:e.maybeBind(g,g.realpath),directoryExists:function(En){return e.directoryProbablyExists(En,g)},getDirectories:function(En){return g.getDirectories?g.getDirectories(En):[]},readDirectory:Rn,onReleaseOldSourceFile:Da,onReleaseParsedCommandLine:Kn,hasInvalidatedResolution:Qa,hasChangedAutomaticTypeDirectiveNames:ai,trace:Ba.trace,resolveModuleNames:e.maybeBind(g,g.resolveModuleNames),getModuleResolutionCache:e.maybeBind(g,g.getModuleResolutionCache),resolveTypeReferenceDirectives:e.maybeBind(g,g.resolveTypeReferenceDirectives),useSourceOfProjectReferenceRedirect:e.maybeBind(g,g.useSourceOfProjectReferenceRedirect),getParsedCommandLine:kn};(ji=g.setCompilerHost)===null||ji===void 0||ji.call(g,pn);var Cn=ne.getKeyForCompilationSettings($a),Bi={rootNames:ba,options:$a,host:pn,oldProgram:ge,projectReferences:Dn};ge=e.createProgram(Bi),At=void 0,ka=void 0,we.clearCache(),ge.getTypeChecker();return;function kn(En){var Wn=e.toPath(En,He,_e),to=ka==null?void 0:ka.get(Wn);if(to!==void 0)return to||void 0;var Co=g.getParsedCommandLine?g.getParsedCommandLine(En):xn(En);return(ka||(ka=new e.Map)).set(Wn,Co||!1),Co}function xn(En){var Wn=bo(En,100);if(!!Wn)return Wn.path=e.toPath(En,He,_e),Wn.resolvedPath=Wn.path,Wn.originalFileName=Wn.fileName,e.parseJsonSourceFileConfigFileContent(Wn,Ba,e.getNormalizedAbsolutePath(e.getDirectoryPath(En),He),void 0,e.getNormalizedAbsolutePath(En,He))}function Kn(En,Wn,to){var Co;g.getParsedCommandLine?(Co=g.onReleaseParsedCommandLine)===null||Co===void 0||Co.call(g,En,Wn,to):Wn&&Da(Wn.sourceFile,to)}function Pn(En){var Wn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(Wn);return to?!e.isString(to):!!g.fileExists&&g.fileExists(En)}function eo(En){var Wn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(Wn);return to?e.isString(to)?void 0:e.getSnapshotText(to.scriptSnapshot):g.readFile&&g.readFile(En)}function Rn(En,Wn,to,Co,Ko){return e.Debug.checkDefined(g.readDirectory,\"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'\"),g.readDirectory(En,Wn,to,Co,Ko)}function Da(En,Wn){var to=ne.getKeyForCompilationSettings(Wn);ne.releaseDocumentWithKey(En.resolvedPath,to,En.scriptKind)}function bo(En,Wn,to,Co){return Ro(En,e.toPath(En,He,_e),Wn,to,Co)}function Ro(En,Wn,to,Co,Ko){e.Debug.assert(At!==void 0,\"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.\");var Oo=At&&At.getOrCreateEntryByPath(En,Wn);if(!!Oo){if(!Ko){var no=ge&&ge.getSourceFileByPath(Wn);if(no){if(Oo.scriptKind===no.scriptKind)return ne.updateDocumentWithKey(En,Wn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind);ne.releaseDocumentWithKey(no.resolvedPath,ne.getKeyForCompilationSettings(ge.getCompilerOptions()),no.scriptKind)}}return ne.acquireDocumentWithKey(En,Wn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind)}}}function Ae(){if(Z===e.LanguageServiceMode.Syntactic){e.Debug.assert(ge===void 0);return}return ye(),ge}function er(){var Ai;return(Ai=g.getPackageJsonAutoImportProvider)===null||Ai===void 0?void 0:Ai.call(g)}function ir(){ge=void 0}function Cr(){if(ge){var Ai=ne.getKeyForCompilationSettings(ge.getCompilerOptions());e.forEach(ge.getSourceFiles(),function(Oi){return ne.releaseDocumentWithKey(Oi.resolvedPath,Ai,Oi.scriptKind)}),ge=void 0}g=void 0}function Ye(Ai){return ye(),ge.getSyntacticDiagnostics(de(Ai),Ee).slice()}function Br(Ai){ye();var Oi=de(Ai),ji=ge.getSemanticDiagnostics(Oi,Ee);if(!e.getEmitDeclarations(ge.getCompilerOptions()))return ji.slice();var Vi=ge.getDeclarationDiagnostics(Oi,Ee);return Ve(Ve([],ji,!0),Vi,!0)}function Er(Ai){return ye(),e.computeSuggestionDiagnostics(de(Ai),ge,Ee)}function Ne(){return ye(),Ve(Ve([],ge.getOptionsDiagnostics(Ee),!0),ge.getGlobalDiagnostics(Ee),!0)}function n(Ai,Oi,ji,Vi){ji===void 0&&(ji=e.emptyOptions);var at=Ke(Ke({},e.identity(ji)),{includeCompletionsForModuleExports:ji.includeCompletionsForModuleExports||ji.includeExternalModuleExports,includeCompletionsWithInsertText:ji.includeCompletionsWithInsertText||ji.includeInsertTextCompletions});return ye(),e.Completions.getCompletionsAtPosition(g,ge,rr,de(Ai),Oi,at,ji.triggerCharacter,ji.triggerKind,Ee,Vi&&e.formatting.getFormatContext(Vi,g))}function lr(Ai,Oi,ji,Vi,at,At,ba){return At===void 0&&(At=e.emptyOptions),ye(),e.Completions.getCompletionEntryDetails(ge,rr,de(Ai),Oi,{name:ji,source:at,data:ba},g,Vi&&e.formatting.getFormatContext(Vi,g),At,Ee)}function be(Ai,Oi,ji,Vi,at){return at===void 0&&(at=e.emptyOptions),ye(),e.Completions.getCompletionEntrySymbol(ge,rr,de(Ai),Oi,{name:ji,source:Vi},g,at)}function Ge(Ai,Oi){ye();var ji=de(Ai),Vi=e.getTouchingPropertyName(ji,Oi);if(Vi!==ji){var at=ge.getTypeChecker(),At=ur(Vi),ba=l(At,at);if(!ba||at.isUnknownSymbol(ba)){var $a=yr(ji,At,Oi)?at.getTypeAtLocation(At):void 0;return $a&&{kind:\"\",kindModifiers:\"\",textSpan:e.createTextSpanFromNode(At,ji),displayParts:at.runWithCancellationToken(Ee,function(pn){return e.typeToDisplayParts(pn,$a,e.getContainerNode(At))}),documentation:$a.symbol?$a.symbol.getDocumentationComment(at):void 0,tags:$a.symbol?$a.symbol.getJsDocTags(at):void 0}}var Qa=at.runWithCancellationToken(Ee,function(pn){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(pn,ba,ji,e.getContainerNode(At),At)}),ai=Qa.symbolKind,Dn=Qa.displayParts,ka=Qa.documentation,Ba=Qa.tags;return{kind:ai,kindModifiers:e.SymbolDisplay.getSymbolModifiers(at,ba),textSpan:e.createTextSpanFromNode(At,ji),displayParts:Dn,documentation:ka,tags:Ba}}}function ur(Ai){return e.isNewExpression(Ai.parent)&&Ai.pos===Ai.parent.pos?Ai.parent.expression:e.isNamedTupleMember(Ai.parent)&&Ai.pos===Ai.parent.pos||e.isImportMeta(Ai.parent)&&Ai.parent.name===Ai?Ai.parent:Ai}function yr(Ai,Oi,ji){switch(Oi.kind){case 79:return!e.isLabelName(Oi)&&!e.isTagName(Oi)&&!e.isConstTypeReference(Oi.parent);case 206:case 161:return!e.isInComment(Ai,ji);case 108:case 192:case 106:case 197:return!0;case 231:return e.isImportMeta(Oi);default:return!1}}function Ir(Ai,Oi,ji,Vi){return ye(),e.GoToDefinition.getDefinitionAtPosition(ge,de(Ai),Oi,ji,Vi)}function wr(Ai,Oi){return ye(),e.GoToDefinition.getDefinitionAndBoundSpan(ge,de(Ai),Oi)}function Ur(Ai,Oi){return ye(),e.GoToDefinition.getTypeDefinitionAtPosition(ge.getTypeChecker(),de(Ai),Oi)}function ii(Ai,Oi){return ye(),e.FindAllReferences.getImplementationsAtPosition(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function mi(Ai,Oi){return e.flatMap(pe(Ai,Oi,[Ai]),function(ji){return ji.highlightSpans.map(function(Vi){return Ke(Ke({fileName:ji.fileName,textSpan:Vi.textSpan,isWriteAccess:Vi.kind===\"writtenReference\"},Vi.isInString&&{isInString:!0}),Vi.contextSpan&&{contextSpan:Vi.contextSpan})})})}function pe(Ai,Oi,ji){var Vi=e.normalizePath(Ai);e.Debug.assert(ji.some(function(ba){return e.normalizePath(ba)===Vi})),ye();var at=e.mapDefined(ji,function(ba){return ge.getSourceFile(ba)}),At=de(Ai);return e.DocumentHighlights.getDocumentHighlights(ge,Ee,At,Oi,at)}function or(Ai,Oi,ji,Vi,at){ye();var At=de(Ai),ba=e.getAdjustedRenameLocation(e.getTouchingPropertyName(At,Oi));if(!!e.Rename.nodeIsEligibleForRename(ba))if(e.isIdentifier(ba)&&(e.isJsxOpeningElement(ba.parent)||e.isJsxClosingElement(ba.parent))&&e.isIntrinsicJsxName(ba.escapedText)){var $a=ba.parent.parent,Qa=$a.openingElement,ai=$a.closingElement;return[Qa,ai].map(function(Dn){var ka=e.createTextSpanFromNode(Dn.tagName,At);return Ke({fileName:At.fileName,textSpan:ka},e.FindAllReferences.toContextSpan(ka,At,Dn.parent))})}else return si(ba,Oi,{findInStrings:ji,findInComments:Vi,providePrefixAndSuffixTextForRename:at,use:2},function(Dn,ka,Ba){return e.FindAllReferences.toRenameLocation(Dn,ka,Ba,at||!1)})}function qr(Ai,Oi){return ye(),si(e.getTouchingPropertyName(de(Ai),Oi),Oi,{use:1},e.FindAllReferences.toReferenceEntry)}function si(Ai,Oi,ji,Vi){ye();var at=ji&&ji.use===2?ge.getSourceFiles().filter(function(At){return!ge.isSourceFileDefaultLibrary(At)}):ge.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(ge,Ee,at,Ai,Oi,ji,Vi)}function Di(Ai,Oi){return ye(),e.FindAllReferences.findReferencedSymbols(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function wi(Ai){return ye(),e.FindAllReferences.Core.getReferencesForFileName(Ai,ge,ge.getSourceFiles()).map(e.FindAllReferences.toReferenceEntry)}function Xi(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=!1),ye();var at=ji?[de(ji)]:ge.getSourceFiles();return e.NavigateTo.getNavigateToItems(at,ge.getTypeChecker(),Ee,Ai,Oi,Vi)}function et(Ai,Oi,ji){ye();var Vi=de(Ai),at=g.getCustomTransformers&&g.getCustomTransformers();return e.getFileEmitOutput(ge,Vi,!!Oi,Ee,at,ji)}function Gi(Ai,Oi,ji){var Vi=ji===void 0?e.emptyOptions:ji,at=Vi.triggerReason;ye();var At=de(Ai);return e.SignatureHelp.getSignatureHelpItems(ge,At,Oi,at,Ee)}function Wt(Ai){return Be.getCurrentSourceFile(Ai)}function Zt(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.getTouchingPropertyName(Vi,Oi);if(at!==Vi){switch(at.kind){case 206:case 161:case 10:case 95:case 110:case 104:case 106:case 108:case 192:case 79:break;default:return}for(var At=at;;)if(e.isRightSideOfPropertyAccess(At)||e.isRightSideOfQualifiedName(At))At=At.parent;else if(e.isNameOfModuleDeclaration(At))if(At.parent.parent.kind===261&&At.parent.parent.body===At.parent)At=At.parent.parent.name;else break;else break;return e.createTextSpanFromBounds(At.getStart(),at.getEnd())}}function _r(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai);return e.BreakpointResolver.spanInSourceFileAtLocation(ji,Oi)}function pi(Ai){return e.NavigationBar.getNavigationBarItems(Be.getCurrentSourceFile(Ai),Ee)}function ae(Ai){return e.NavigationBar.getNavigationTree(Be.getCurrentSourceFile(Ai),Ee)}function Xe(Ai,Oi,ji){ye();var Vi=ji||\"original\";return Vi===\"2020\"?e.classifier.v2020.getSemanticClassifications(ge,Ee,de(Ai),Oi):e.getSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi)}function Jr(Ai,Oi,ji){ye();var Vi=ji||\"original\";return Vi===\"original\"?e.getEncodedSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi):e.classifier.v2020.getEncodedSemanticClassifications(ge,Ee,de(Ai),Oi)}function ti(Ai,Oi){return e.getSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Ze(Ai,Oi){return e.getEncodedSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Sr(Ai){var Oi=Be.getCurrentSourceFile(Ai);return e.OutliningElementsCollector.collectElements(Oi,Ee)}var zr=new e.Map(e.getEntries((We={},We[18]=19,We[20]=21,We[22]=23,We[31]=29,We)));zr.forEach(function(Ai,Oi){return zr.set(Ai.toString(),Number(Oi))});function Wr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.getTouchingToken(ji,Oi),at=Vi.getStart(ji)===Oi?zr.get(Vi.kind.toString()):void 0,At=at&&e.findChildOfKind(Vi.parent,at,ji);return At?[e.createTextSpanFromNode(Vi,ji),e.createTextSpanFromNode(At,ji)].sort(function(ba,$a){return ba.start-$a.start}):e.emptyArray}function Je(Ai,Oi,ji){var Vi=e.timestamp(),at=R(ji),At=Be.getCurrentSourceFile(Ai);rr(\"getIndentationAtPosition: getCurrentSourceFile: \"+(e.timestamp()-Vi)),Vi=e.timestamp();var ba=e.formatting.SmartIndenter.getIndentation(Oi,At,at);return rr(\"getIndentationAtPosition: computeIndentation : \"+(e.timestamp()-Vi)),ba}function xe(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai);return e.formatting.formatSelection(Oi,ji,at,e.formatting.getFormatContext(R(Vi),g))}function vr(Ai,Oi){return e.formatting.formatDocument(Be.getCurrentSourceFile(Ai),e.formatting.getFormatContext(R(Oi),g))}function mr(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai),At=e.formatting.getFormatContext(R(Vi),g);if(!e.isInComment(at,Oi))switch(ji){case\"{\":return e.formatting.formatOnOpeningCurly(Oi,at,At);case\"}\":return e.formatting.formatOnClosingCurly(Oi,at,At);case\";\":return e.formatting.formatOnSemicolon(Oi,at,At);case`\n`:return e.formatting.formatOnEnter(Oi,at,At)}return[]}function Ar(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai),$a=e.createTextSpanFromBounds(Oi,ji),Qa=e.formatting.getFormatContext(at,g);return e.flatMap(e.deduplicate(Vi,e.equateValues,e.compareValues),function(ai){return Ee.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:ai,sourceFile:ba,span:$a,program:ge,host:g,cancellationToken:Ee,formatContext:Qa,preferences:At})})}function Oe(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=e.emptyOptions),ye(),e.Debug.assert(Ai.type===\"file\");var at=de(Ai.fileName),At=e.formatting.getFormatContext(ji,g);return e.codefix.getAllFixes({fixId:Oi,sourceFile:at,program:ge,host:g,cancellationToken:Ee,formatContext:At,preferences:Vi})}function nr(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye(),e.Debug.assert(Ai.type===\"file\");var Vi=de(Ai.fileName),at=e.formatting.getFormatContext(Oi,g);return e.OrganizeImports.organizeImports(Vi,at,g,ge,ji,Ai.skipDestructiveCodeActions)}function Mr(Ai,Oi,ji,Vi){return Vi===void 0&&(Vi=e.emptyOptions),e.getEditsForFileRename(Ae(),Ai,Oi,g,e.formatting.getFormatContext(ji,g),Vi,we)}function Pe(Ai,Oi){var ji=typeof Ai==\"string\"?Oi:Ai;return e.isArray(ji)?Promise.all(ji.map(function(Vi){return Ue(Vi)})):Ue(ji)}function Ue(Ai){var Oi=function(ji){return e.toPath(ji,He,_e)};return e.Debug.assertEqual(Ai.type,\"install package\"),g.installPackage?g.installPackage({fileName:Oi(Ai.file),packageName:Ai.packageName}):Promise.reject(\"Host does not implement `installPackage`\")}function fr(Ai,Oi,ji){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(g),Be.getCurrentSourceFile(Ai),Oi,ji)}function De(Ai,Oi,ji){if(ji===60)return!1;var Vi=Be.getCurrentSourceFile(Ai);if(e.isInString(Vi,Oi))return!1;if(e.isInsideJsxElementOrAttribute(Vi,Oi))return ji===123;if(e.isInTemplateString(Vi,Oi))return!1;switch(ji){case 39:case 34:case 96:return!e.isInComment(Vi,Oi)}return!0}function gr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.findPrecedingToken(Oi,ji);if(!!Vi){var at=Vi.kind===31&&e.isJsxOpeningElement(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxElement(Vi.parent)?Vi.parent:void 0;if(at&&Wi(at))return{newText:\"\")};var At=Vi.kind===31&&e.isJsxOpeningFragment(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxFragment(Vi.parent)?Vi.parent:void 0;if(At&&ct(At))return{newText:\"\"}}}function Vr(Ai,Oi){return{lineStarts:Ai.getLineStarts(),firstLine:Ai.getLineAndCharacterOfPosition(Oi.pos).line,lastLine:Ai.getLineAndCharacterOfPosition(Oi.end).line}}function Tr(Ai,Oi,ji){for(var Vi=Be.getCurrentSourceFile(Ai),at=[],At=Vr(Vi,Oi),ba=At.lineStarts,$a=At.firstLine,Qa=At.lastLine,ai=ji||!1,Dn=Number.MAX_VALUE,ka=new e.Map,Ba=new RegExp(/\\S/),pn=e.isInsideJsxElement(Vi,ba[$a]),Cn=pn?\"{/*\":\"//\",Bi=$a;Bi<=Qa;Bi++){var kn=Vi.text.substring(ba[Bi],Vi.getLineEndOfPosition(ba[Bi])),xn=Ba.exec(kn);xn&&(Dn=Math.min(Dn,xn.index),ka.set(Bi.toString(),xn.index),kn.substr(xn.index,Cn.length)!==Cn&&(ai=ji===void 0||ji))}for(var Bi=$a;Bi<=Qa;Bi++)if(!($a!==Qa&&ba[Bi]===Oi.end)){var Kn=ka.get(Bi.toString());Kn!==void 0&&(pn?at.push.apply(at,vi(Ai,{pos:ba[Bi]+Dn,end:Vi.getLineEndOfPosition(ba[Bi])},ai,pn)):ai?at.push({newText:Cn,span:{length:0,start:ba[Bi]+Dn}}):Vi.text.substr(ba[Bi]+Kn,Cn.length)===Cn&&at.push({newText:\"\",span:{length:Cn.length,start:ba[Bi]+Kn}}))}return at}function vi(Ai,Oi,ji,Vi){for(var at,At=Be.getCurrentSourceFile(Ai),ba=[],$a=At.text,Qa=!1,ai=ji||!1,Dn=[],ka=Oi.pos,Ba=Vi!==void 0?Vi:e.isInsideJsxElement(At,ka),pn=Ba?\"{/*\":\"/*\",Cn=Ba?\"*/}\":\"*/\",Bi=Ba?\"\\\\{\\\\/\\\\*\":\"\\\\/\\\\*\",kn=Ba?\"\\\\*\\\\/\\\\}\":\"\\\\*\\\\/\";ka<=Oi.end;){var xn=$a.substr(ka,pn.length)===pn?pn.length:0,Kn=e.isInComment(At,ka+xn);if(Kn)Ba&&(Kn.pos--,Kn.end++),Dn.push(Kn.pos),Kn.kind===3&&Dn.push(Kn.end),Qa=!0,ka=Kn.end+1;else{var Pn=$a.substring(ka,Oi.end).search(\"(\".concat(Bi,\")|(\").concat(kn,\")\"));ai=ji!==void 0?ji:ai||!e.isTextWhiteSpaceLike($a,ka,Pn===-1?Oi.end:ka+Pn),ka=Pn===-1?Oi.end+1:ka+Pn+Cn.length}}if(ai||!Qa){((at=e.isInComment(At,Oi.pos))===null||at===void 0?void 0:at.kind)!==2&&e.insertSorted(Dn,Oi.pos,e.compareValues),e.insertSorted(Dn,Oi.end,e.compareValues);var eo=Dn[0];$a.substr(eo,pn.length)!==pn&&ba.push({newText:pn,span:{length:0,start:eo}});for(var Rn=1;Rn0?Ro-Cn.length:0,xn=$a.substr(En,Cn.length)===Cn?Cn.length:0;ba.push({newText:\"\",span:{length:pn.length,start:Ro-xn}})}return ba}function Ui(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=Vr(ji,Oi),at=Vi.firstLine,At=Vi.lastLine;return at===At&&Oi.pos!==Oi.end?vi(Ai,Oi,!0):Tr(Ai,Oi,!0)}function Yi(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=[],at=Oi.pos,At=Oi.end;at===At&&(At+=e.isInsideJsxElement(ji,at)?2:1);for(var ba=at;ba<=At;ba++){var $a=e.isInComment(ji,ba);if($a){switch($a.kind){case 2:Vi.push.apply(Vi,Tr(Ai,{end:$a.end,pos:$a.pos+1},!1));break;case 3:Vi.push.apply(Vi,vi(Ai,{end:$a.end,pos:$a.pos+1},!1))}ba=$a.end+1}}return Vi}function Wi(Ai){var Oi=Ai.openingElement,ji=Ai.closingElement,Vi=Ai.parent;return!e.tagNamesAreEquivalent(Oi.tagName,ji.tagName)||e.isJsxElement(Vi)&&e.tagNamesAreEquivalent(Oi.tagName,Vi.openingElement.tagName)&&Wi(Vi)}function ct(Ai){var Oi=Ai.closingFragment,ji=Ai.parent;return!!(Oi.flags&131072)||e.isJsxFragment(ji)&&ct(ji)}function Li(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.formatting.getRangeOfEnclosingComment(Vi,Oi);return at&&(!ji||at.kind===3)?e.createTextSpanFromRange(at):void 0}function nt(Ai,Oi){ye();var ji=de(Ai);Ee.throwIfCancellationRequested();var Vi=ji.text,at=[];if(Oi.length>0&&!kn(ji.fileName))for(var At=Cn(),ba=void 0;ba=At.exec(Vi);){Ee.throwIfCancellationRequested();var $a=3;e.Debug.assert(ba.length===Oi.length+$a);var Qa=ba[1],ai=ba.index+Qa.length;if(!!e.isInComment(ji,ai)){for(var Dn=void 0,ka=0;ka=97&&xn<=122||xn>=65&&xn<=90||xn>=48&&xn<=57}function kn(xn){return e.stringContains(xn,\"/node_modules/\")}}function Mt(Ai,Oi,ji){return ye(),e.Rename.getRenameInfo(ge,de(Ai),Oi,ji)}function xt(Ai,Oi,ji,Vi,at,At){var ba=typeof Oi==\"number\"?[Oi,void 0]:[Oi.pos,Oi.end],$a=ba[0],Qa=ba[1];return{file:Ai,startPosition:$a,endPosition:Qa,program:Ae(),host:g,formatContext:e.formatting.getFormatContext(Vi,g),cancellationToken:Ee,preferences:ji,triggerReason:at,kind:At}}function ut(Ai,Oi,ji){return{file:Ai,program:Ae(),host:g,span:Oi,preferences:ji,cancellationToken:Ee}}function Dt(Ai,Oi){return e.SmartSelectionRange.getSmartSelectionRange(Oi,Be.getCurrentSourceFile(Ai))}function Rt(Ai,Oi,ji,Vi,at){ji===void 0&&(ji=e.emptyOptions),ye();var At=de(Ai);return e.refactor.getApplicableRefactors(xt(At,Oi,ji,e.emptyOptions,Vi,at))}function Ii(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai);return e.refactor.getEditsForRefactor(xt(ba,ji,At,Oi),Vi,at)}function Ki(Ai,Oi){return Oi===0?{line:0,character:0}:we.toLineColumnOffset(Ai,Oi)}function Fi(Ai,Oi){ye();var ji=e.CallHierarchy.resolveCallHierarchyDeclaration(ge,e.getTouchingPropertyName(de(Ai),Oi));return ji&&e.mapOneOrMany(ji,function(Vi){return e.CallHierarchy.createCallHierarchyItem(ge,Vi)})}function ui(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getIncomingCalls(ge,Vi,Ee):[]}function Bt(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getOutgoingCalls(ge,Vi):[]}function wt(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye();var Vi=de(Ai);return e.InlayHints.provideInlayHints(ut(Vi,Oi,ji))}var na={dispose:Cr,cleanupSemanticCache:ir,getSyntacticDiagnostics:Ye,getSemanticDiagnostics:Br,getSuggestionDiagnostics:Er,getCompilerOptionsDiagnostics:Ne,getSyntacticClassifications:ti,getSemanticClassifications:Xe,getEncodedSyntacticClassifications:Ze,getEncodedSemanticClassifications:Jr,getCompletionsAtPosition:n,getCompletionEntryDetails:lr,getCompletionEntrySymbol:be,getSignatureHelpItems:Gi,getQuickInfoAtPosition:Ge,getDefinitionAtPosition:Ir,getDefinitionAndBoundSpan:wr,getImplementationAtPosition:ii,getTypeDefinitionAtPosition:Ur,getReferencesAtPosition:qr,findReferences:Di,getFileReferences:wi,getOccurrencesAtPosition:mi,getDocumentHighlights:pe,getNameOrDottedNameSpan:Zt,getBreakpointStatementAtPosition:_r,getNavigateToItems:Xi,getRenameInfo:Mt,getSmartSelectionRange:Dt,findRenameLocations:or,getNavigationBarItems:pi,getNavigationTree:ae,getOutliningSpans:Sr,getTodoComments:nt,getBraceMatchingAtPosition:Wr,getIndentationAtPosition:Je,getFormattingEditsForRange:xe,getFormattingEditsForDocument:vr,getFormattingEditsAfterKeystroke:mr,getDocCommentTemplateAtPosition:fr,isValidBraceCompletionAtPosition:De,getJsxClosingTagAtPosition:gr,getSpanOfEnclosingComment:Li,getCodeFixesAtPosition:Ar,getCombinedCodeFix:Oe,applyCodeActionCommand:Pe,organizeImports:nr,getEditsForFileRename:Mr,getEmitOutput:et,getNonBoundSourceFile:Wt,getProgram:Ae,getAutoImportProvider:er,getApplicableRefactors:Rt,getEditsForRefactor:Ii,toLineColumnOffset:Ki,getSourceMapper:function(){return we},clearSourceMapperCache:function(){return we.clearCache()},prepareCallHierarchy:Fi,provideCallHierarchyIncomingCalls:ui,provideCallHierarchyOutgoingCalls:Bt,toggleLineComment:Tr,toggleMultilineComment:vi,commentSelection:Ui,uncommentSelection:Yi,provideInlayHints:wt};switch(Z){case e.LanguageServiceMode.Semantic:break;case e.LanguageServiceMode.PartialSemantic:L.forEach(function(Ai){return na[Ai]=function(){throw new Error(\"LanguageService Operation: \".concat(Ai,\" not allowed in LanguageServiceMode.PartialSemantic\"))}});break;case e.LanguageServiceMode.Syntactic:P.forEach(function(Ai){return na[Ai]=function(){throw new Error(\"LanguageService Operation: \".concat(Ai,\" not allowed in LanguageServiceMode.Syntactic\"))}});break;default:e.Debug.assertNever(Z)}return na}e.createLanguageService=k;function Y(g){return g.nameTable||U(g),g.nameTable}e.getNameTable=Y;function U(g){var ne=g.nameTable=new e.Map;g.forEachChild(function ue(We){if(e.isIdentifier(We)&&!e.isTagName(We)&&We.escapedText||e.isStringOrNumericLiteralLike(We)&&j(We)){var Fe=e.getEscapedTextOfIdentifierOrLiteral(We);ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}else if(e.isPrivateIdentifier(We)){var Fe=We.escapedText;ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}if(e.forEachChild(We,ue),e.hasJSDocNodes(We))for(var Z=0,Be=We.jsDoc;Zle){var N=e.findPrecedingToken(Q.pos,B);if(!N||B.getLineAndCharacterOfPosition(N.getEnd()).line!==le)return;Q=N}if(Q.flags&16777216)return;return K(Q);function p(b,se){var J=b.decorators?e.skipTrivia(B.text,b.decorators.end):b.getStart(B);return e.createTextSpanFromBounds(J,(se||b).getEnd())}function m(b,se){return p(b,e.findNextToken(se,se.parent,B))}function G(b,se){return b&&le===B.getLineAndCharacterOfPosition(b.getStart(B)).line?K(b):K(se)}function oe(b){return e.createTextSpanFromBounds(e.skipTrivia(B.text,b.pos),b.end)}function f(b){return K(e.findPrecedingToken(b.pos,B))}function T(b){return K(e.findNextToken(b,b.parent,B))}function K(b){if(b){var se=b.parent;switch(b.kind){case 237:return he(b.declarationList.declarations[0]);case 254:case 167:case 166:return he(b);case 164:return x(b);case 256:case 169:case 168:case 172:case 173:case 171:case 213:case 214:return $(b);case 235:if(e.isFunctionBlock(b))return A(b);case 262:return y(b);case 292:return y(b.block);case 238:return p(b.expression);case 247:return p(b.getChildAt(0),b.expression);case 241:return m(b,b.expression);case 240:return K(b.statement);case 253:return p(b.getChildAt(0));case 239:return m(b,b.expression);case 250:return K(b.statement);case 246:case 245:return p(b.getChildAt(0),b.label);case 242:return L(b);case 243:return m(b,b.expression);case 244:return V(b);case 249:return m(b,b.expression);case 289:case 290:return K(b.statements[0]);case 252:return y(b.tryBlock);case 251:return p(b,b.expression);case 271:return p(b,b.expression);case 265:return p(b,b.moduleReference);case 266:return p(b,b.moduleSpecifier);case 272:return p(b,b.moduleSpecifier);case 261:if(e.getModuleInstanceState(b)!==1)return;case 257:case 260:case 299:case 203:return p(b);case 248:return K(b.statement);case 165:return oe(se.decorators);case 201:case 202:return P(b);case 258:case 259:return;case 26:case 1:return G(e.findPrecedingToken(b.pos,B));case 27:return f(b);case 18:return Y(b);case 19:return U(b);case 23:return j(b);case 20:return H(b);case 21:return I(b);case 58:return l(b);case 31:case 29:return d(b);case 115:return D(b);case 91:case 83:case 96:return T(b);case 160:return fe(b);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(b))return k(b);if((b.kind===79||b.kind===225||b.kind===296||b.kind===297)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(se))return p(b);if(b.kind===221){var J=b,ie=J.left,R=J.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie))return k(ie);if(R.kind===63&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent))return p(b);if(R.kind===27)return K(ie)}if(e.isExpressionNode(b))switch(se.kind){case 240:return f(b);case 165:return K(b.parent);case 242:case 244:return p(b);case 221:if(b.parent.operatorToken.kind===27)return p(b);break;case 214:if(b.parent.body===b)return p(b);break}switch(b.parent.kind){case 296:if(b.parent.name===b&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent.parent))return K(b.parent.initializer);break;case 211:if(b.parent.type===b)return T(b.parent.type);break;case 254:case 164:{var q=b.parent,O=q.initializer,ve=q.type;if(O===b||ve===b||e.isAssignmentOperator(b.kind))return f(b);break}case 221:{var ie=b.parent.left;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie)&&b!==ie)return f(b);break}default:if(e.isFunctionLike(b.parent)&&b.parent.type===b)return f(b)}return K(b.parent)}}function ee(g){return e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]===g?p(e.findPrecedingToken(g.pos,B,g.parent),g):p(g)}function he(g){if(g.parent.parent.kind===243)return K(g.parent.parent);var ne=g.parent;if(e.isBindingPattern(g.name))return P(g.name);if(g.initializer||e.hasSyntacticModifier(g,1)||ne.parent.kind===244)return ee(g);if(e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]!==g)return K(e.findPrecedingToken(g.pos,B,g.parent))}function F(g){return!!g.initializer||g.dotDotDotToken!==void 0||e.hasSyntacticModifier(g,12)}function x(g){if(e.isBindingPattern(g.name))return P(g.name);if(F(g))return p(g);var ne=g.parent,ue=ne.parameters.indexOf(g);return e.Debug.assert(ue!==-1),ue!==0?x(ne.parameters[ue-1]):K(ne.body)}function X(g){return e.hasSyntacticModifier(g,1)||g.parent.kind===257&&g.kind!==171}function $(g){if(!!g.body)return X(g)?p(g):K(g.body)}function A(g){var ne=g.statements.length?g.statements[0]:g.getLastToken();return X(g.parent)?G(g.parent,ne):K(ne)}function y(g){switch(g.parent.kind){case 261:if(e.getModuleInstanceState(g.parent)!==1)return;case 241:case 239:case 243:return G(g.parent,g.statements[0]);case 242:case 244:return G(e.findPrecedingToken(g.pos,B,g.parent),g.statements[0])}return K(g.statements[0])}function V(g){if(g.initializer.kind===255){var ne=g.initializer;if(ne.declarations.length>0)return K(ne.declarations[0])}else return K(g.initializer)}function L(g){if(g.initializer)return V(g);if(g.condition)return p(g.condition);if(g.incrementor)return p(g.incrementor)}function P(g){var ne=e.forEach(g.elements,function(ue){return ue.kind!==227?ue:void 0});return ne?K(ne):g.parent.kind===203?p(g.parent):ee(g.parent)}function k(g){e.Debug.assert(g.kind!==202&&g.kind!==201);var ne=g.kind===204?g.elements:g.properties,ue=e.forEach(ne,function(We){return We.kind!==227?We:void 0});return ue?K(ue):p(g.parent.kind===221?g.parent:g)}function Y(g){switch(g.parent.kind){case 260:var ne=g.parent;return G(e.findPrecedingToken(g.pos,B,g.parent),ne.members.length?ne.members[0]:ne.getLastToken(B));case 257:var ue=g.parent;return G(e.findPrecedingToken(g.pos,B,g.parent),ue.members.length?ue.members[0]:ue.getLastToken(B));case 263:return G(g.parent.parent,g.parent.clauses[0])}return K(g.parent)}function U(g){switch(g.parent.kind){case 262:if(e.getModuleInstanceState(g.parent.parent)!==1)return;case 260:case 257:return p(g);case 235:if(e.isFunctionBlock(g.parent))return p(g);case 292:return K(e.lastOrUndefined(g.parent.statements));case 263:var ne=g.parent,ue=e.lastOrUndefined(ne.clauses);return ue?K(e.lastOrUndefined(ue.statements)):void 0;case 201:var We=g.parent;return K(e.lastOrUndefined(We.elements)||We);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var Fe=g.parent;return p(e.lastOrUndefined(Fe.properties)||Fe)}return K(g.parent)}}function j(g){switch(g.parent.kind){case 202:var ne=g.parent;return p(e.lastOrUndefined(ne.elements)||ne);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var ue=g.parent;return p(e.lastOrUndefined(ue.elements)||ue)}return K(g.parent)}}function H(g){return g.parent.kind===240||g.parent.kind===208||g.parent.kind===209?f(g):g.parent.kind===212?T(g):K(g.parent)}function I(g){switch(g.parent.kind){case 213:case 256:case 214:case 169:case 168:case 172:case 173:case 171:case 241:case 240:case 242:case 244:case 208:case 209:case 212:return f(g);default:return K(g.parent)}}function l(g){return e.isFunctionLike(g.parent)||g.parent.kind===296||g.parent.kind===164?f(g):K(g.parent)}function d(g){return g.parent.kind===211?T(g):K(g.parent)}function D(g){return g.parent.kind===240?m(g,g.parent.expression):K(g.parent)}function fe(g){return g.parent.kind===244?T(g):K(g.parent)}}}C.spanInSourceFileAtLocation=w})(a=e.BreakpointResolver||(e.BreakpointResolver={}))})(ke||(ke={}));var ke;(function(e){function a(C,w,B){var E=[];B=e.fixupCompilerOptions(B,E);var Q=e.isArray(C)?C:[C],le=e.transformNodes(void 0,void 0,e.factory,B,Q,w,!0);return le.diagnostics=e.concatenate(le.diagnostics,E),le}e.transform=a})(ke||(ke={}));var ar=function(){return this}(),ke;(function(e){function a(m,G){m&&m.log(\"*INTERNAL ERROR* - Exception in typescript services: \"+G.message)}var C=void 0,w=void 0;e.LanguageServiceShimHostAdapter=w;var B=void 0;e.CoreServicesShimHostAdapter=B;var E=void 0;e.realizeDiagnostics=void 0;var Q=void 0,le=void 0,N=void 0,p=void 0;e.TypeScriptServicesFactory=void 0})(ke||(ke={})),function(){return;try{Object.defineProperty(Object.prototype,\"__magic__\",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,typeof globalThis>\"u\"&&(window.globalThis=window),delete Object.prototype.__magic__}catch{window.globalThis=window}}(),typeof re<\"u\"&&re.exports&&(re.exports=ke);var ke;(function(e){var a={since:\"4.0\",warnAfter:\"4.1\",message:\"Use the appropriate method on 'ts.factory' or the 'factory' supplied by your transformation context instead.\"};e.createNodeArray=e.Debug.deprecate(e.factory.createNodeArray,a),e.createNumericLiteral=e.Debug.deprecate(e.factory.createNumericLiteral,a),e.createBigIntLiteral=e.Debug.deprecate(e.factory.createBigIntLiteral,a),e.createStringLiteral=e.Debug.deprecate(e.factory.createStringLiteral,a),e.createStringLiteralFromNode=e.Debug.deprecate(e.factory.createStringLiteralFromNode,a),e.createRegularExpressionLiteral=e.Debug.deprecate(e.factory.createRegularExpressionLiteral,a),e.createLoopVariable=e.Debug.deprecate(e.factory.createLoopVariable,a),e.createUniqueName=e.Debug.deprecate(e.factory.createUniqueName,a),e.createPrivateIdentifier=e.Debug.deprecate(e.factory.createPrivateIdentifier,a),e.createSuper=e.Debug.deprecate(e.factory.createSuper,a),e.createThis=e.Debug.deprecate(e.factory.createThis,a),e.createNull=e.Debug.deprecate(e.factory.createNull,a),e.createTrue=e.Debug.deprecate(e.factory.createTrue,a),e.createFalse=e.Debug.deprecate(e.factory.createFalse,a),e.createModifier=e.Debug.deprecate(e.factory.createModifier,a),e.createModifiersFromModifierFlags=e.Debug.deprecate(e.factory.createModifiersFromModifierFlags,a),e.createQualifiedName=e.Debug.deprecate(e.factory.createQualifiedName,a),e.updateQualifiedName=e.Debug.deprecate(e.factory.updateQualifiedName,a),e.createComputedPropertyName=e.Debug.deprecate(e.factory.createComputedPropertyName,a),e.updateComputedPropertyName=e.Debug.deprecate(e.factory.updateComputedPropertyName,a),e.createTypeParameterDeclaration=e.Debug.deprecate(e.factory.createTypeParameterDeclaration,a),e.updateTypeParameterDeclaration=e.Debug.deprecate(e.factory.updateTypeParameterDeclaration,a),e.createParameter=e.Debug.deprecate(e.factory.createParameterDeclaration,a),e.updateParameter=e.Debug.deprecate(e.factory.updateParameterDeclaration,a),e.createDecorator=e.Debug.deprecate(e.factory.createDecorator,a),e.updateDecorator=e.Debug.deprecate(e.factory.updateDecorator,a),e.createProperty=e.Debug.deprecate(e.factory.createPropertyDeclaration,a),e.updateProperty=e.Debug.deprecate(e.factory.updatePropertyDeclaration,a),e.createMethod=e.Debug.deprecate(e.factory.createMethodDeclaration,a),e.updateMethod=e.Debug.deprecate(e.factory.updateMethodDeclaration,a),e.createConstructor=e.Debug.deprecate(e.factory.createConstructorDeclaration,a),e.updateConstructor=e.Debug.deprecate(e.factory.updateConstructorDeclaration,a),e.createGetAccessor=e.Debug.deprecate(e.factory.createGetAccessorDeclaration,a),e.updateGetAccessor=e.Debug.deprecate(e.factory.updateGetAccessorDeclaration,a),e.createSetAccessor=e.Debug.deprecate(e.factory.createSetAccessorDeclaration,a),e.updateSetAccessor=e.Debug.deprecate(e.factory.updateSetAccessorDeclaration,a),e.createCallSignature=e.Debug.deprecate(e.factory.createCallSignature,a),e.updateCallSignature=e.Debug.deprecate(e.factory.updateCallSignature,a),e.createConstructSignature=e.Debug.deprecate(e.factory.createConstructSignature,a),e.updateConstructSignature=e.Debug.deprecate(e.factory.updateConstructSignature,a),e.updateIndexSignature=e.Debug.deprecate(e.factory.updateIndexSignature,a),e.createKeywordTypeNode=e.Debug.deprecate(e.factory.createKeywordTypeNode,a),e.createTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.createTypePredicateNode,a),e.updateTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.updateTypePredicateNode,a),e.createTypeReferenceNode=e.Debug.deprecate(e.factory.createTypeReferenceNode,a),e.updateTypeReferenceNode=e.Debug.deprecate(e.factory.updateTypeReferenceNode,a),e.createFunctionTypeNode=e.Debug.deprecate(e.factory.createFunctionTypeNode,a),e.updateFunctionTypeNode=e.Debug.deprecate(e.factory.updateFunctionTypeNode,a),e.createConstructorTypeNode=e.Debug.deprecate(function(C,w,B){return e.factory.createConstructorTypeNode(void 0,C,w,B)},a),e.updateConstructorTypeNode=e.Debug.deprecate(function(C,w,B,E){return e.factory.updateConstructorTypeNode(C,C.modifiers,w,B,E)},a),e.createTypeQueryNode=e.Debug.deprecate(e.factory.createTypeQueryNode,a),e.updateTypeQueryNode=e.Debug.deprecate(e.factory.updateTypeQueryNode,a),e.createTypeLiteralNode=e.Debug.deprecate(e.factory.createTypeLiteralNode,a),e.updateTypeLiteralNode=e.Debug.deprecate(e.factory.updateTypeLiteralNode,a),e.createArrayTypeNode=e.Debug.deprecate(e.factory.createArrayTypeNode,a),e.updateArrayTypeNode=e.Debug.deprecate(e.factory.updateArrayTypeNode,a),e.createTupleTypeNode=e.Debug.deprecate(e.factory.createTupleTypeNode,a),e.updateTupleTypeNode=e.Debug.deprecate(e.factory.updateTupleTypeNode,a),e.createOptionalTypeNode=e.Debug.deprecate(e.factory.createOptionalTypeNode,a),e.updateOptionalTypeNode=e.Debug.deprecate(e.factory.updateOptionalTypeNode,a),e.createRestTypeNode=e.Debug.deprecate(e.factory.createRestTypeNode,a),e.updateRestTypeNode=e.Debug.deprecate(e.factory.updateRestTypeNode,a),e.createUnionTypeNode=e.Debug.deprecate(e.factory.createUnionTypeNode,a),e.updateUnionTypeNode=e.Debug.deprecate(e.factory.updateUnionTypeNode,a),e.createIntersectionTypeNode=e.Debug.deprecate(e.factory.createIntersectionTypeNode,a),e.updateIntersectionTypeNode=e.Debug.deprecate(e.factory.updateIntersectionTypeNode,a),e.createConditionalTypeNode=e.Debug.deprecate(e.factory.createConditionalTypeNode,a),e.updateConditionalTypeNode=e.Debug.deprecate(e.factory.updateConditionalTypeNode,a),e.createInferTypeNode=e.Debug.deprecate(e.factory.createInferTypeNode,a),e.updateInferTypeNode=e.Debug.deprecate(e.factory.updateInferTypeNode,a),e.createImportTypeNode=e.Debug.deprecate(e.factory.createImportTypeNode,a),e.updateImportTypeNode=e.Debug.deprecate(e.factory.updateImportTypeNode,a),e.createParenthesizedType=e.Debug.deprecate(e.factory.createParenthesizedType,a),e.updateParenthesizedType=e.Debug.deprecate(e.factory.updateParenthesizedType,a),e.createThisTypeNode=e.Debug.deprecate(e.factory.createThisTypeNode,a),e.updateTypeOperatorNode=e.Debug.deprecate(e.factory.updateTypeOperatorNode,a),e.createIndexedAccessTypeNode=e.Debug.deprecate(e.factory.createIndexedAccessTypeNode,a),e.updateIndexedAccessTypeNode=e.Debug.deprecate(e.factory.updateIndexedAccessTypeNode,a),e.createMappedTypeNode=e.Debug.deprecate(e.factory.createMappedTypeNode,a),e.updateMappedTypeNode=e.Debug.deprecate(e.factory.updateMappedTypeNode,a),e.createLiteralTypeNode=e.Debug.deprecate(e.factory.createLiteralTypeNode,a),e.updateLiteralTypeNode=e.Debug.deprecate(e.factory.updateLiteralTypeNode,a),e.createObjectBindingPattern=e.Debug.deprecate(e.factory.createObjectBindingPattern,a),e.updateObjectBindingPattern=e.Debug.deprecate(e.factory.updateObjectBindingPattern,a),e.createArrayBindingPattern=e.Debug.deprecate(e.factory.createArrayBindingPattern,a),e.updateArrayBindingPattern=e.Debug.deprecate(e.factory.updateArrayBindingPattern,a),e.createBindingElement=e.Debug.deprecate(e.factory.createBindingElement,a),e.updateBindingElement=e.Debug.deprecate(e.factory.updateBindingElement,a),e.createArrayLiteral=e.Debug.deprecate(e.factory.createArrayLiteralExpression,a),e.updateArrayLiteral=e.Debug.deprecate(e.factory.updateArrayLiteralExpression,a),e.createObjectLiteral=e.Debug.deprecate(e.factory.createObjectLiteralExpression,a),e.updateObjectLiteral=e.Debug.deprecate(e.factory.updateObjectLiteralExpression,a),e.createPropertyAccess=e.Debug.deprecate(e.factory.createPropertyAccessExpression,a),e.updatePropertyAccess=e.Debug.deprecate(e.factory.updatePropertyAccessExpression,a),e.createPropertyAccessChain=e.Debug.deprecate(e.factory.createPropertyAccessChain,a),e.updatePropertyAccessChain=e.Debug.deprecate(e.factory.updatePropertyAccessChain,a),e.createElementAccess=e.Debug.deprecate(e.factory.createElementAccessExpression,a),e.updateElementAccess=e.Debug.deprecate(e.factory.updateElementAccessExpression,a),e.createElementAccessChain=e.Debug.deprecate(e.factory.createElementAccessChain,a),e.updateElementAccessChain=e.Debug.deprecate(e.factory.updateElementAccessChain,a),e.createCall=e.Debug.deprecate(e.factory.createCallExpression,a),e.updateCall=e.Debug.deprecate(e.factory.updateCallExpression,a),e.createCallChain=e.Debug.deprecate(e.factory.createCallChain,a),e.updateCallChain=e.Debug.deprecate(e.factory.updateCallChain,a),e.createNew=e.Debug.deprecate(e.factory.createNewExpression,a),e.updateNew=e.Debug.deprecate(e.factory.updateNewExpression,a),e.createTypeAssertion=e.Debug.deprecate(e.factory.createTypeAssertion,a),e.updateTypeAssertion=e.Debug.deprecate(e.factory.updateTypeAssertion,a),e.createParen=e.Debug.deprecate(e.factory.createParenthesizedExpression,a),e.updateParen=e.Debug.deprecate(e.factory.updateParenthesizedExpression,a),e.createFunctionExpression=e.Debug.deprecate(e.factory.createFunctionExpression,a),e.updateFunctionExpression=e.Debug.deprecate(e.factory.updateFunctionExpression,a),e.createDelete=e.Debug.deprecate(e.factory.createDeleteExpression,a),e.updateDelete=e.Debug.deprecate(e.factory.updateDeleteExpression,a),e.createTypeOf=e.Debug.deprecate(e.factory.createTypeOfExpression,a),e.updateTypeOf=e.Debug.deprecate(e.factory.updateTypeOfExpression,a),e.createVoid=e.Debug.deprecate(e.factory.createVoidExpression,a),e.updateVoid=e.Debug.deprecate(e.factory.updateVoidExpression,a),e.createAwait=e.Debug.deprecate(e.factory.createAwaitExpression,a),e.updateAwait=e.Debug.deprecate(e.factory.updateAwaitExpression,a),e.createPrefix=e.Debug.deprecate(e.factory.createPrefixUnaryExpression,a),e.updatePrefix=e.Debug.deprecate(e.factory.updatePrefixUnaryExpression,a),e.createPostfix=e.Debug.deprecate(e.factory.createPostfixUnaryExpression,a),e.updatePostfix=e.Debug.deprecate(e.factory.updatePostfixUnaryExpression,a),e.createBinary=e.Debug.deprecate(e.factory.createBinaryExpression,a),e.updateConditional=e.Debug.deprecate(e.factory.updateConditionalExpression,a),e.createTemplateExpression=e.Debug.deprecate(e.factory.createTemplateExpression,a),e.updateTemplateExpression=e.Debug.deprecate(e.factory.updateTemplateExpression,a),e.createTemplateHead=e.Debug.deprecate(e.factory.createTemplateHead,a),e.createTemplateMiddle=e.Debug.deprecate(e.factory.createTemplateMiddle,a),e.createTemplateTail=e.Debug.deprecate(e.factory.createTemplateTail,a),e.createNoSubstitutionTemplateLiteral=e.Debug.deprecate(e.factory.createNoSubstitutionTemplateLiteral,a),e.updateYield=e.Debug.deprecate(e.factory.updateYieldExpression,a),e.createSpread=e.Debug.deprecate(e.factory.createSpreadElement,a),e.updateSpread=e.Debug.deprecate(e.factory.updateSpreadElement,a),e.createOmittedExpression=e.Debug.deprecate(e.factory.createOmittedExpression,a),e.createAsExpression=e.Debug.deprecate(e.factory.createAsExpression,a),e.updateAsExpression=e.Debug.deprecate(e.factory.updateAsExpression,a),e.createNonNullExpression=e.Debug.deprecate(e.factory.createNonNullExpression,a),e.updateNonNullExpression=e.Debug.deprecate(e.factory.updateNonNullExpression,a),e.createNonNullChain=e.Debug.deprecate(e.factory.createNonNullChain,a),e.updateNonNullChain=e.Debug.deprecate(e.factory.updateNonNullChain,a),e.createMetaProperty=e.Debug.deprecate(e.factory.createMetaProperty,a),e.updateMetaProperty=e.Debug.deprecate(e.factory.updateMetaProperty,a),e.createTemplateSpan=e.Debug.deprecate(e.factory.createTemplateSpan,a),e.updateTemplateSpan=e.Debug.deprecate(e.factory.updateTemplateSpan,a),e.createSemicolonClassElement=e.Debug.deprecate(e.factory.createSemicolonClassElement,a),e.createBlock=e.Debug.deprecate(e.factory.createBlock,a),e.updateBlock=e.Debug.deprecate(e.factory.updateBlock,a),e.createVariableStatement=e.Debug.deprecate(e.factory.createVariableStatement,a),e.updateVariableStatement=e.Debug.deprecate(e.factory.updateVariableStatement,a),e.createEmptyStatement=e.Debug.deprecate(e.factory.createEmptyStatement,a),e.createExpressionStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateExpressionStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createIf=e.Debug.deprecate(e.factory.createIfStatement,a),e.updateIf=e.Debug.deprecate(e.factory.updateIfStatement,a),e.createDo=e.Debug.deprecate(e.factory.createDoStatement,a),e.updateDo=e.Debug.deprecate(e.factory.updateDoStatement,a),e.createWhile=e.Debug.deprecate(e.factory.createWhileStatement,a),e.updateWhile=e.Debug.deprecate(e.factory.updateWhileStatement,a),e.createFor=e.Debug.deprecate(e.factory.createForStatement,a),e.updateFor=e.Debug.deprecate(e.factory.updateForStatement,a),e.createForIn=e.Debug.deprecate(e.factory.createForInStatement,a),e.updateForIn=e.Debug.deprecate(e.factory.updateForInStatement,a),e.createForOf=e.Debug.deprecate(e.factory.createForOfStatement,a),e.updateForOf=e.Debug.deprecate(e.factory.updateForOfStatement,a),e.createContinue=e.Debug.deprecate(e.factory.createContinueStatement,a),e.updateContinue=e.Debug.deprecate(e.factory.updateContinueStatement,a),e.createBreak=e.Debug.deprecate(e.factory.createBreakStatement,a),e.updateBreak=e.Debug.deprecate(e.factory.updateBreakStatement,a),e.createReturn=e.Debug.deprecate(e.factory.createReturnStatement,a),e.updateReturn=e.Debug.deprecate(e.factory.updateReturnStatement,a),e.createWith=e.Debug.deprecate(e.factory.createWithStatement,a),e.updateWith=e.Debug.deprecate(e.factory.updateWithStatement,a),e.createSwitch=e.Debug.deprecate(e.factory.createSwitchStatement,a),e.updateSwitch=e.Debug.deprecate(e.factory.updateSwitchStatement,a),e.createLabel=e.Debug.deprecate(e.factory.createLabeledStatement,a),e.updateLabel=e.Debug.deprecate(e.factory.updateLabeledStatement,a),e.createThrow=e.Debug.deprecate(e.factory.createThrowStatement,a),e.updateThrow=e.Debug.deprecate(e.factory.updateThrowStatement,a),e.createTry=e.Debug.deprecate(e.factory.createTryStatement,a),e.updateTry=e.Debug.deprecate(e.factory.updateTryStatement,a),e.createDebuggerStatement=e.Debug.deprecate(e.factory.createDebuggerStatement,a),e.createVariableDeclarationList=e.Debug.deprecate(e.factory.createVariableDeclarationList,a),e.updateVariableDeclarationList=e.Debug.deprecate(e.factory.updateVariableDeclarationList,a),e.createFunctionDeclaration=e.Debug.deprecate(e.factory.createFunctionDeclaration,a),e.updateFunctionDeclaration=e.Debug.deprecate(e.factory.updateFunctionDeclaration,a),e.createClassDeclaration=e.Debug.deprecate(e.factory.createClassDeclaration,a),e.updateClassDeclaration=e.Debug.deprecate(e.factory.updateClassDeclaration,a),e.createInterfaceDeclaration=e.Debug.deprecate(e.factory.createInterfaceDeclaration,a),e.updateInterfaceDeclaration=e.Debug.deprecate(e.factory.updateInterfaceDeclaration,a),e.createTypeAliasDeclaration=e.Debug.deprecate(e.factory.createTypeAliasDeclaration,a),e.updateTypeAliasDeclaration=e.Debug.deprecate(e.factory.updateTypeAliasDeclaration,a),e.createEnumDeclaration=e.Debug.deprecate(e.factory.createEnumDeclaration,a),e.updateEnumDeclaration=e.Debug.deprecate(e.factory.updateEnumDeclaration,a),e.createModuleDeclaration=e.Debug.deprecate(e.factory.createModuleDeclaration,a),e.updateModuleDeclaration=e.Debug.deprecate(e.factory.updateModuleDeclaration,a),e.createModuleBlock=e.Debug.deprecate(e.factory.createModuleBlock,a),e.updateModuleBlock=e.Debug.deprecate(e.factory.updateModuleBlock,a),e.createCaseBlock=e.Debug.deprecate(e.factory.createCaseBlock,a),e.updateCaseBlock=e.Debug.deprecate(e.factory.updateCaseBlock,a),e.createNamespaceExportDeclaration=e.Debug.deprecate(e.factory.createNamespaceExportDeclaration,a),e.updateNamespaceExportDeclaration=e.Debug.deprecate(e.factory.updateNamespaceExportDeclaration,a),e.createImportEqualsDeclaration=e.Debug.deprecate(e.factory.createImportEqualsDeclaration,a),e.updateImportEqualsDeclaration=e.Debug.deprecate(e.factory.updateImportEqualsDeclaration,a),e.createImportDeclaration=e.Debug.deprecate(e.factory.createImportDeclaration,a),e.updateImportDeclaration=e.Debug.deprecate(e.factory.updateImportDeclaration,a),e.createNamespaceImport=e.Debug.deprecate(e.factory.createNamespaceImport,a),e.updateNamespaceImport=e.Debug.deprecate(e.factory.updateNamespaceImport,a),e.createNamedImports=e.Debug.deprecate(e.factory.createNamedImports,a),e.updateNamedImports=e.Debug.deprecate(e.factory.updateNamedImports,a),e.createImportSpecifier=e.Debug.deprecate(e.factory.createImportSpecifier,a),e.updateImportSpecifier=e.Debug.deprecate(e.factory.updateImportSpecifier,a),e.createExportAssignment=e.Debug.deprecate(e.factory.createExportAssignment,a),e.updateExportAssignment=e.Debug.deprecate(e.factory.updateExportAssignment,a),e.createNamedExports=e.Debug.deprecate(e.factory.createNamedExports,a),e.updateNamedExports=e.Debug.deprecate(e.factory.updateNamedExports,a),e.createExportSpecifier=e.Debug.deprecate(e.factory.createExportSpecifier,a),e.updateExportSpecifier=e.Debug.deprecate(e.factory.updateExportSpecifier,a),e.createExternalModuleReference=e.Debug.deprecate(e.factory.createExternalModuleReference,a),e.updateExternalModuleReference=e.Debug.deprecate(e.factory.updateExternalModuleReference,a),e.createJSDocTypeExpression=e.Debug.deprecate(e.factory.createJSDocTypeExpression,a),e.createJSDocTypeTag=e.Debug.deprecate(e.factory.createJSDocTypeTag,a),e.createJSDocReturnTag=e.Debug.deprecate(e.factory.createJSDocReturnTag,a),e.createJSDocThisTag=e.Debug.deprecate(e.factory.createJSDocThisTag,a),e.createJSDocComment=e.Debug.deprecate(e.factory.createJSDocComment,a),e.createJSDocParameterTag=e.Debug.deprecate(e.factory.createJSDocParameterTag,a),e.createJSDocClassTag=e.Debug.deprecate(e.factory.createJSDocClassTag,a),e.createJSDocAugmentsTag=e.Debug.deprecate(e.factory.createJSDocAugmentsTag,a),e.createJSDocEnumTag=e.Debug.deprecate(e.factory.createJSDocEnumTag,a),e.createJSDocTemplateTag=e.Debug.deprecate(e.factory.createJSDocTemplateTag,a),e.createJSDocTypedefTag=e.Debug.deprecate(e.factory.createJSDocTypedefTag,a),e.createJSDocCallbackTag=e.Debug.deprecate(e.factory.createJSDocCallbackTag,a),e.createJSDocSignature=e.Debug.deprecate(e.factory.createJSDocSignature,a),e.createJSDocPropertyTag=e.Debug.deprecate(e.factory.createJSDocPropertyTag,a),e.createJSDocTypeLiteral=e.Debug.deprecate(e.factory.createJSDocTypeLiteral,a),e.createJSDocImplementsTag=e.Debug.deprecate(e.factory.createJSDocImplementsTag,a),e.createJSDocAuthorTag=e.Debug.deprecate(e.factory.createJSDocAuthorTag,a),e.createJSDocPublicTag=e.Debug.deprecate(e.factory.createJSDocPublicTag,a),e.createJSDocPrivateTag=e.Debug.deprecate(e.factory.createJSDocPrivateTag,a),e.createJSDocProtectedTag=e.Debug.deprecate(e.factory.createJSDocProtectedTag,a),e.createJSDocReadonlyTag=e.Debug.deprecate(e.factory.createJSDocReadonlyTag,a),e.createJSDocTag=e.Debug.deprecate(e.factory.createJSDocUnknownTag,a),e.createJsxElement=e.Debug.deprecate(e.factory.createJsxElement,a),e.updateJsxElement=e.Debug.deprecate(e.factory.updateJsxElement,a),e.createJsxSelfClosingElement=e.Debug.deprecate(e.factory.createJsxSelfClosingElement,a),e.updateJsxSelfClosingElement=e.Debug.deprecate(e.factory.updateJsxSelfClosingElement,a),e.createJsxOpeningElement=e.Debug.deprecate(e.factory.createJsxOpeningElement,a),e.updateJsxOpeningElement=e.Debug.deprecate(e.factory.updateJsxOpeningElement,a),e.createJsxClosingElement=e.Debug.deprecate(e.factory.createJsxClosingElement,a),e.updateJsxClosingElement=e.Debug.deprecate(e.factory.updateJsxClosingElement,a),e.createJsxFragment=e.Debug.deprecate(e.factory.createJsxFragment,a),e.createJsxText=e.Debug.deprecate(e.factory.createJsxText,a),e.updateJsxText=e.Debug.deprecate(e.factory.updateJsxText,a),e.createJsxOpeningFragment=e.Debug.deprecate(e.factory.createJsxOpeningFragment,a),e.createJsxJsxClosingFragment=e.Debug.deprecate(e.factory.createJsxJsxClosingFragment,a),e.updateJsxFragment=e.Debug.deprecate(e.factory.updateJsxFragment,a),e.createJsxAttribute=e.Debug.deprecate(e.factory.createJsxAttribute,a),e.updateJsxAttribute=e.Debug.deprecate(e.factory.updateJsxAttribute,a),e.createJsxAttributes=e.Debug.deprecate(e.factory.createJsxAttributes,a),e.updateJsxAttributes=e.Debug.deprecate(e.factory.updateJsxAttributes,a),e.createJsxSpreadAttribute=e.Debug.deprecate(e.factory.createJsxSpreadAttribute,a),e.updateJsxSpreadAttribute=e.Debug.deprecate(e.factory.updateJsxSpreadAttribute,a),e.createJsxExpression=e.Debug.deprecate(e.factory.createJsxExpression,a),e.updateJsxExpression=e.Debug.deprecate(e.factory.updateJsxExpression,a),e.createCaseClause=e.Debug.deprecate(e.factory.createCaseClause,a),e.updateCaseClause=e.Debug.deprecate(e.factory.updateCaseClause,a),e.createDefaultClause=e.Debug.deprecate(e.factory.createDefaultClause,a),e.updateDefaultClause=e.Debug.deprecate(e.factory.updateDefaultClause,a),e.createHeritageClause=e.Debug.deprecate(e.factory.createHeritageClause,a),e.updateHeritageClause=e.Debug.deprecate(e.factory.updateHeritageClause,a),e.createCatchClause=e.Debug.deprecate(e.factory.createCatchClause,a),e.updateCatchClause=e.Debug.deprecate(e.factory.updateCatchClause,a),e.createPropertyAssignment=e.Debug.deprecate(e.factory.createPropertyAssignment,a),e.updatePropertyAssignment=e.Debug.deprecate(e.factory.updatePropertyAssignment,a),e.createShorthandPropertyAssignment=e.Debug.deprecate(e.factory.createShorthandPropertyAssignment,a),e.updateShorthandPropertyAssignment=e.Debug.deprecate(e.factory.updateShorthandPropertyAssignment,a),e.createSpreadAssignment=e.Debug.deprecate(e.factory.createSpreadAssignment,a),e.updateSpreadAssignment=e.Debug.deprecate(e.factory.updateSpreadAssignment,a),e.createEnumMember=e.Debug.deprecate(e.factory.createEnumMember,a),e.updateEnumMember=e.Debug.deprecate(e.factory.updateEnumMember,a),e.updateSourceFileNode=e.Debug.deprecate(e.factory.updateSourceFile,a),e.createNotEmittedStatement=e.Debug.deprecate(e.factory.createNotEmittedStatement,a),e.createPartiallyEmittedExpression=e.Debug.deprecate(e.factory.createPartiallyEmittedExpression,a),e.updatePartiallyEmittedExpression=e.Debug.deprecate(e.factory.updatePartiallyEmittedExpression,a),e.createCommaList=e.Debug.deprecate(e.factory.createCommaListExpression,a),e.updateCommaList=e.Debug.deprecate(e.factory.updateCommaListExpression,a),e.createBundle=e.Debug.deprecate(e.factory.createBundle,a),e.updateBundle=e.Debug.deprecate(e.factory.updateBundle,a),e.createImmediatelyInvokedFunctionExpression=e.Debug.deprecate(e.factory.createImmediatelyInvokedFunctionExpression,a),e.createImmediatelyInvokedArrowFunction=e.Debug.deprecate(e.factory.createImmediatelyInvokedArrowFunction,a),e.createVoidZero=e.Debug.deprecate(e.factory.createVoidZero,a),e.createExportDefault=e.Debug.deprecate(e.factory.createExportDefault,a),e.createExternalModuleExport=e.Debug.deprecate(e.factory.createExternalModuleExport,a),e.createNamespaceExport=e.Debug.deprecate(e.factory.createNamespaceExport,a),e.updateNamespaceExport=e.Debug.deprecate(e.factory.updateNamespaceExport,a),e.createToken=e.Debug.deprecate(function(w){return e.factory.createToken(w)},a),e.createIdentifier=e.Debug.deprecate(function(w){return e.factory.createIdentifier(w,void 0,void 0)},a),e.createTempVariable=e.Debug.deprecate(function(w){return e.factory.createTempVariable(w,void 0)},a),e.getGeneratedNameForNode=e.Debug.deprecate(function(w){return e.factory.getGeneratedNameForNode(w,void 0)},a),e.createOptimisticUniqueName=e.Debug.deprecate(function(w){return e.factory.createUniqueName(w,16)},a),e.createFileLevelUniqueName=e.Debug.deprecate(function(w){return e.factory.createUniqueName(w,48)},a),e.createIndexSignature=e.Debug.deprecate(function(w,B,E,Q){return e.factory.createIndexSignature(w,B,E,Q)},a),e.createTypePredicateNode=e.Debug.deprecate(function(w,B){return e.factory.createTypePredicateNode(void 0,w,B)},a),e.updateTypePredicateNode=e.Debug.deprecate(function(w,B,E){return e.factory.updateTypePredicateNode(w,void 0,B,E)},a),e.createLiteral=e.Debug.deprecate(function(w){return typeof w==\"number\"?e.factory.createNumericLiteral(w):typeof w==\"object\"&&\"base10Value\"in w?e.factory.createBigIntLiteral(w):typeof w==\"boolean\"?w?e.factory.createTrue():e.factory.createFalse():typeof w==\"string\"?e.factory.createStringLiteral(w,void 0):e.factory.createStringLiteralFromNode(w)},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use `factory.createStringLiteral`, `factory.createStringLiteralFromNode`, `factory.createNumericLiteral`, `factory.createBigIntLiteral`, `factory.createTrue`, `factory.createFalse`, or the factory supplied by your transformation context instead.\"}),e.createMethodSignature=e.Debug.deprecate(function(w,B,E,Q,le){return e.factory.createMethodSignature(void 0,Q,le,w,B,E)},a),e.updateMethodSignature=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateMethodSignature(w,w.modifiers,le,N,B,E,Q)},a),e.createTypeOperatorNode=e.Debug.deprecate(function(w,B){var E;return B?E=w:(B=w,E=140),e.factory.createTypeOperatorNode(E,B)},a),e.createTaggedTemplate=e.Debug.deprecate(function(w,B,E){var Q;return E?Q=B:E=B,e.factory.createTaggedTemplateExpression(w,Q,E)},a),e.updateTaggedTemplate=e.Debug.deprecate(function(w,B,E,Q){var le;return Q?le=E:Q=E,e.factory.updateTaggedTemplateExpression(w,B,le,Q)},a),e.updateBinary=e.Debug.deprecate(function(w,B,E,Q){return Q===void 0&&(Q=w.operatorToken),typeof Q==\"number\"&&(Q=Q===w.operatorToken.kind?w.operatorToken:e.factory.createToken(Q)),e.factory.updateBinaryExpression(w,B,Q,E)},a),e.createConditional=e.Debug.deprecate(function(w,B,E,Q,le){return arguments.length===5?e.factory.createConditionalExpression(w,B,E,Q,le):arguments.length===3?e.factory.createConditionalExpression(w,e.factory.createToken(57),B,e.factory.createToken(58),E):e.Debug.fail(\"Argument count mismatch\")},a),e.createYield=e.Debug.deprecate(function(w,B){var E;return B?E=w:B=w,e.factory.createYieldExpression(E,B)},a),e.createClassExpression=e.Debug.deprecate(function(w,B,E,Q,le){return e.factory.createClassExpression(void 0,w,B,E,Q,le)},a),e.updateClassExpression=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateClassExpression(w,void 0,B,E,Q,le,N)},a),e.createPropertySignature=e.Debug.deprecate(function(w,B,E,Q,le){var N=e.factory.createPropertySignature(w,B,E,Q);return N.initializer=le,N},a),e.updatePropertySignature=e.Debug.deprecate(function(w,B,E,Q,le,N){var p=e.factory.updatePropertySignature(w,B,E,Q,le);return w.initializer!==N&&(p===w&&(p=e.factory.cloneNode(w)),p.initializer=N),p},a),e.createExpressionWithTypeArguments=e.Debug.deprecate(function(w,B){return e.factory.createExpressionWithTypeArguments(B,w)},a),e.updateExpressionWithTypeArguments=e.Debug.deprecate(function(w,B,E){return e.factory.updateExpressionWithTypeArguments(w,E,B)},a),e.createArrowFunction=e.Debug.deprecate(function(w,B,E,Q,le,N){return arguments.length===6?e.factory.createArrowFunction(w,B,E,Q,le,N):arguments.length===5?e.factory.createArrowFunction(w,B,E,Q,void 0,le):e.Debug.fail(\"Argument count mismatch\")},a),e.updateArrowFunction=e.Debug.deprecate(function(w,B,E,Q,le,N,p){return arguments.length===7?e.factory.updateArrowFunction(w,B,E,Q,le,N,p):arguments.length===6?e.factory.updateArrowFunction(w,B,E,Q,le,w.equalsGreaterThanToken,N):e.Debug.fail(\"Argument count mismatch\")},a),e.createVariableDeclaration=e.Debug.deprecate(function(w,B,E,Q){return arguments.length===4?e.factory.createVariableDeclaration(w,B,E,Q):arguments.length>=1&&arguments.length<=3?e.factory.createVariableDeclaration(w,void 0,B,E):e.Debug.fail(\"Argument count mismatch\")},a),e.updateVariableDeclaration=e.Debug.deprecate(function(w,B,E,Q,le){return arguments.length===5?e.factory.updateVariableDeclaration(w,B,E,Q,le):arguments.length===4?e.factory.updateVariableDeclaration(w,B,w.exclamationToken,E,Q):e.Debug.fail(\"Argument count mismatch\")},a),e.createImportClause=e.Debug.deprecate(function(w,B,E){return E===void 0&&(E=!1),e.factory.createImportClause(E,w,B)},a),e.updateImportClause=e.Debug.deprecate(function(w,B,E,Q){return e.factory.updateImportClause(w,Q,B,E)},a),e.createExportDeclaration=e.Debug.deprecate(function(w,B,E,Q,le){return le===void 0&&(le=!1),e.factory.createExportDeclaration(w,B,le,E,Q)},a),e.updateExportDeclaration=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateExportDeclaration(w,B,E,N,Q,le,w.assertClause)},a),e.createJSDocParamTag=e.Debug.deprecate(function(w,B,E,Q){return e.factory.createJSDocParameterTag(void 0,w,B,E,!1,Q?e.factory.createNodeArray([e.factory.createJSDocText(Q)]):void 0)},a),e.createComma=e.Debug.deprecate(function(w,B){return e.factory.createComma(w,B)},a),e.createLessThan=e.Debug.deprecate(function(w,B){return e.factory.createLessThan(w,B)},a),e.createAssignment=e.Debug.deprecate(function(w,B){return e.factory.createAssignment(w,B)},a),e.createStrictEquality=e.Debug.deprecate(function(w,B){return e.factory.createStrictEquality(w,B)},a),e.createStrictInequality=e.Debug.deprecate(function(w,B){return e.factory.createStrictInequality(w,B)},a),e.createAdd=e.Debug.deprecate(function(w,B){return e.factory.createAdd(w,B)},a),e.createSubtract=e.Debug.deprecate(function(w,B){return e.factory.createSubtract(w,B)},a),e.createLogicalAnd=e.Debug.deprecate(function(w,B){return e.factory.createLogicalAnd(w,B)},a),e.createLogicalOr=e.Debug.deprecate(function(w,B){return e.factory.createLogicalOr(w,B)},a),e.createPostfixIncrement=e.Debug.deprecate(function(w){return e.factory.createPostfixIncrement(w)},a),e.createLogicalNot=e.Debug.deprecate(function(w){return e.factory.createLogicalNot(w)},a),e.createNode=e.Debug.deprecate(function(w,B,E){return B===void 0&&(B=0),E===void 0&&(E=0),e.setTextRangePosEnd(w===305?e.parseBaseNodeFactory.createBaseSourceFileNode(w):w===79?e.parseBaseNodeFactory.createBaseIdentifierNode(w):w===80?e.parseBaseNodeFactory.createBasePrivateIdentifierNode(w):e.isNodeKind(w)?e.parseBaseNodeFactory.createBaseNode(w):e.parseBaseNodeFactory.createBaseTokenNode(w),B,E)},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use an appropriate `factory` method instead.\"}),e.getMutableClone=e.Debug.deprecate(function(w){var B=e.factory.cloneNode(w);return e.setTextRange(B,w),e.setParent(B,w.parent),B},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use an appropriate `factory.update...` method instead, use `setCommentRange` or `setSourceMapRange`, and avoid setting `parent`.\"}),e.isTypeAssertion=e.Debug.deprecate(function(w){return w.kind===211},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use `isTypeAssertionExpression` instead.\"}),e.isIdentifierOrPrivateIdentifier=e.Debug.deprecate(function(w){return e.isMemberName(w)},{since:\"4.2\",warnAfter:\"4.3\",message:\"Use `isMemberName` instead.\"})})(ke||(ke={}))}}),$4=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var re;(function(Ke){Ke.ArrayExpression=\"ArrayExpression\",Ke.ArrayPattern=\"ArrayPattern\",Ke.ArrowFunctionExpression=\"ArrowFunctionExpression\",Ke.AssignmentExpression=\"AssignmentExpression\",Ke.AssignmentPattern=\"AssignmentPattern\",Ke.AwaitExpression=\"AwaitExpression\",Ke.BinaryExpression=\"BinaryExpression\",Ke.BlockStatement=\"BlockStatement\",Ke.BreakStatement=\"BreakStatement\",Ke.CallExpression=\"CallExpression\",Ke.CatchClause=\"CatchClause\",Ke.ChainExpression=\"ChainExpression\",Ke.ClassBody=\"ClassBody\",Ke.ClassDeclaration=\"ClassDeclaration\",Ke.ClassExpression=\"ClassExpression\",Ke.ConditionalExpression=\"ConditionalExpression\",Ke.ContinueStatement=\"ContinueStatement\",Ke.DebuggerStatement=\"DebuggerStatement\",Ke.Decorator=\"Decorator\",Ke.DoWhileStatement=\"DoWhileStatement\",Ke.EmptyStatement=\"EmptyStatement\",Ke.ExportAllDeclaration=\"ExportAllDeclaration\",Ke.ExportDefaultDeclaration=\"ExportDefaultDeclaration\",Ke.ExportNamedDeclaration=\"ExportNamedDeclaration\",Ke.ExportSpecifier=\"ExportSpecifier\",Ke.ExpressionStatement=\"ExpressionStatement\",Ke.ForInStatement=\"ForInStatement\",Ke.ForOfStatement=\"ForOfStatement\",Ke.ForStatement=\"ForStatement\",Ke.FunctionDeclaration=\"FunctionDeclaration\",Ke.FunctionExpression=\"FunctionExpression\",Ke.Identifier=\"Identifier\",Ke.IfStatement=\"IfStatement\",Ke.ImportAttribute=\"ImportAttribute\",Ke.ImportDeclaration=\"ImportDeclaration\",Ke.ImportDefaultSpecifier=\"ImportDefaultSpecifier\",Ke.ImportExpression=\"ImportExpression\",Ke.ImportNamespaceSpecifier=\"ImportNamespaceSpecifier\",Ke.ImportSpecifier=\"ImportSpecifier\",Ke.JSXAttribute=\"JSXAttribute\",Ke.JSXClosingElement=\"JSXClosingElement\",Ke.JSXClosingFragment=\"JSXClosingFragment\",Ke.JSXElement=\"JSXElement\",Ke.JSXEmptyExpression=\"JSXEmptyExpression\",Ke.JSXExpressionContainer=\"JSXExpressionContainer\",Ke.JSXFragment=\"JSXFragment\",Ke.JSXIdentifier=\"JSXIdentifier\",Ke.JSXMemberExpression=\"JSXMemberExpression\",Ke.JSXNamespacedName=\"JSXNamespacedName\",Ke.JSXOpeningElement=\"JSXOpeningElement\",Ke.JSXOpeningFragment=\"JSXOpeningFragment\",Ke.JSXSpreadAttribute=\"JSXSpreadAttribute\",Ke.JSXSpreadChild=\"JSXSpreadChild\",Ke.JSXText=\"JSXText\",Ke.LabeledStatement=\"LabeledStatement\",Ke.Literal=\"Literal\",Ke.LogicalExpression=\"LogicalExpression\",Ke.MemberExpression=\"MemberExpression\",Ke.MetaProperty=\"MetaProperty\",Ke.MethodDefinition=\"MethodDefinition\",Ke.NewExpression=\"NewExpression\",Ke.ObjectExpression=\"ObjectExpression\",Ke.ObjectPattern=\"ObjectPattern\",Ke.PrivateIdentifier=\"PrivateIdentifier\",Ke.Program=\"Program\",Ke.Property=\"Property\",Ke.PropertyDefinition=\"PropertyDefinition\",Ke.RestElement=\"RestElement\",Ke.ReturnStatement=\"ReturnStatement\",Ke.SequenceExpression=\"SequenceExpression\",Ke.SpreadElement=\"SpreadElement\",Ke.StaticBlock=\"StaticBlock\",Ke.Super=\"Super\",Ke.SwitchCase=\"SwitchCase\",Ke.SwitchStatement=\"SwitchStatement\",Ke.TaggedTemplateExpression=\"TaggedTemplateExpression\",Ke.TemplateElement=\"TemplateElement\",Ke.TemplateLiteral=\"TemplateLiteral\",Ke.ThisExpression=\"ThisExpression\",Ke.ThrowStatement=\"ThrowStatement\",Ke.TryStatement=\"TryStatement\",Ke.UnaryExpression=\"UnaryExpression\",Ke.UpdateExpression=\"UpdateExpression\",Ke.VariableDeclaration=\"VariableDeclaration\",Ke.VariableDeclarator=\"VariableDeclarator\",Ke.WhileStatement=\"WhileStatement\",Ke.WithStatement=\"WithStatement\",Ke.YieldExpression=\"YieldExpression\",Ke.TSAbstractKeyword=\"TSAbstractKeyword\",Ke.TSAbstractMethodDefinition=\"TSAbstractMethodDefinition\",Ke.TSAbstractPropertyDefinition=\"TSAbstractPropertyDefinition\",Ke.TSAnyKeyword=\"TSAnyKeyword\",Ke.TSArrayType=\"TSArrayType\",Ke.TSAsExpression=\"TSAsExpression\",Ke.TSAsyncKeyword=\"TSAsyncKeyword\",Ke.TSBigIntKeyword=\"TSBigIntKeyword\",Ke.TSBooleanKeyword=\"TSBooleanKeyword\",Ke.TSCallSignatureDeclaration=\"TSCallSignatureDeclaration\",Ke.TSClassImplements=\"TSClassImplements\",Ke.TSConditionalType=\"TSConditionalType\",Ke.TSConstructorType=\"TSConstructorType\",Ke.TSConstructSignatureDeclaration=\"TSConstructSignatureDeclaration\",Ke.TSDeclareFunction=\"TSDeclareFunction\",Ke.TSDeclareKeyword=\"TSDeclareKeyword\",Ke.TSEmptyBodyFunctionExpression=\"TSEmptyBodyFunctionExpression\",Ke.TSEnumDeclaration=\"TSEnumDeclaration\",Ke.TSEnumMember=\"TSEnumMember\",Ke.TSExportAssignment=\"TSExportAssignment\",Ke.TSExportKeyword=\"TSExportKeyword\",Ke.TSExternalModuleReference=\"TSExternalModuleReference\",Ke.TSFunctionType=\"TSFunctionType\",Ke.TSInstantiationExpression=\"TSInstantiationExpression\",Ke.TSImportEqualsDeclaration=\"TSImportEqualsDeclaration\",Ke.TSImportType=\"TSImportType\",Ke.TSIndexedAccessType=\"TSIndexedAccessType\",Ke.TSIndexSignature=\"TSIndexSignature\",Ke.TSInferType=\"TSInferType\",Ke.TSInterfaceBody=\"TSInterfaceBody\",Ke.TSInterfaceDeclaration=\"TSInterfaceDeclaration\",Ke.TSInterfaceHeritage=\"TSInterfaceHeritage\",Ke.TSIntersectionType=\"TSIntersectionType\",Ke.TSIntrinsicKeyword=\"TSIntrinsicKeyword\",Ke.TSLiteralType=\"TSLiteralType\",Ke.TSMappedType=\"TSMappedType\",Ke.TSMethodSignature=\"TSMethodSignature\",Ke.TSModuleBlock=\"TSModuleBlock\",Ke.TSModuleDeclaration=\"TSModuleDeclaration\",Ke.TSNamedTupleMember=\"TSNamedTupleMember\",Ke.TSNamespaceExportDeclaration=\"TSNamespaceExportDeclaration\",Ke.TSNeverKeyword=\"TSNeverKeyword\",Ke.TSNonNullExpression=\"TSNonNullExpression\",Ke.TSNullKeyword=\"TSNullKeyword\",Ke.TSNumberKeyword=\"TSNumberKeyword\",Ke.TSObjectKeyword=\"TSObjectKeyword\",Ke.TSOptionalType=\"TSOptionalType\",Ke.TSParameterProperty=\"TSParameterProperty\",Ke.TSPrivateKeyword=\"TSPrivateKeyword\",Ke.TSPropertySignature=\"TSPropertySignature\",Ke.TSProtectedKeyword=\"TSProtectedKeyword\",Ke.TSPublicKeyword=\"TSPublicKeyword\",Ke.TSQualifiedName=\"TSQualifiedName\",Ke.TSReadonlyKeyword=\"TSReadonlyKeyword\",Ke.TSRestType=\"TSRestType\",Ke.TSStaticKeyword=\"TSStaticKeyword\",Ke.TSStringKeyword=\"TSStringKeyword\",Ke.TSSymbolKeyword=\"TSSymbolKeyword\",Ke.TSTemplateLiteralType=\"TSTemplateLiteralType\",Ke.TSThisType=\"TSThisType\",Ke.TSTupleType=\"TSTupleType\",Ke.TSTypeAliasDeclaration=\"TSTypeAliasDeclaration\",Ke.TSTypeAnnotation=\"TSTypeAnnotation\",Ke.TSTypeAssertion=\"TSTypeAssertion\",Ke.TSTypeLiteral=\"TSTypeLiteral\",Ke.TSTypeOperator=\"TSTypeOperator\",Ke.TSTypeParameter=\"TSTypeParameter\",Ke.TSTypeParameterDeclaration=\"TSTypeParameterDeclaration\",Ke.TSTypeParameterInstantiation=\"TSTypeParameterInstantiation\",Ke.TSTypePredicate=\"TSTypePredicate\",Ke.TSTypeQuery=\"TSTypeQuery\",Ke.TSTypeReference=\"TSTypeReference\",Ke.TSUndefinedKeyword=\"TSUndefinedKeyword\",Ke.TSUnionType=\"TSUnionType\",Ke.TSUnknownKeyword=\"TSUnknownKeyword\",Ke.TSVoidKeyword=\"TSVoidKeyword\"})(re=M.AST_NODE_TYPES||(M.AST_NODE_TYPES={}));var Ve;(function(Ke){Ke.Boolean=\"Boolean\",Ke.Identifier=\"Identifier\",Ke.JSXIdentifier=\"JSXIdentifier\",Ke.JSXText=\"JSXText\",Ke.Keyword=\"Keyword\",Ke.Null=\"Null\",Ke.Numeric=\"Numeric\",Ke.Punctuator=\"Punctuator\",Ke.RegularExpression=\"RegularExpression\",Ke.String=\"String\",Ke.Template=\"Template\",Ke.Block=\"Block\",Ke.Line=\"Line\"})(Ve=M.AST_TOKEN_TYPES||(M.AST_TOKEN_TYPES={}))}}),DU=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/lib.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0})}}),bU=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/parser-options.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0})}}),SU=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/ts-estree.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||(\"get\"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__setModuleDefault||(Object.create?function(oi,kr){Object.defineProperty(oi,\"default\",{enumerable:!0,value:kr})}:function(oi,kr){oi.default=kr}),Ke=M&&M.__importStar||function(oi){if(oi&&oi.__esModule)return oi;var kr={};if(oi!=null)for(var pr in oi)pr!==\"default\"&&Object.prototype.hasOwnProperty.call(oi,pr)&&re(kr,oi,pr);return Ve(kr,oi),kr};Object.defineProperty(M,\"__esModule\",{value:!0}),M.TSESTree=void 0,M.TSESTree=Ke($4())}}),Z4=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/index.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||(\"get\"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var pr in oi)pr!==\"default\"&&!Object.prototype.hasOwnProperty.call(kr,pr)&&re(kr,oi,pr)};Object.defineProperty(M,\"__esModule\",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=$4();Object.defineProperty(M,\"AST_NODE_TYPES\",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,\"AST_TOKEN_TYPES\",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Ve(DU(),M),Ve(bU(),M),Ve(SU(),M)}}),TU=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0})}}),xU=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=Z4()}}),k1=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||(\"get\"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var pr in oi)pr!==\"default\"&&!Object.prototype.hasOwnProperty.call(kr,pr)&&re(kr,oi,pr)};Object.defineProperty(M,\"__esModule\",{value:!0}),M.TSESTree=M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=Z4();Object.defineProperty(M,\"AST_NODE_TYPES\",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,\"AST_TOKEN_TYPES\",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Object.defineProperty(M,\"TSESTree\",{enumerable:!0,get:function(){return Ke.TSESTree}}),Ve(TU(),M),Ve(xU(),M)}}),EU=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.xhtmlEntities=void 0,M.xhtmlEntities={quot:'\"',amp:\"&\",apos:\"'\",lt:\"<\",gt:\">\",nbsp:\"\\xA0\",iexcl:\"\\xA1\",cent:\"\\xA2\",pound:\"\\xA3\",curren:\"\\xA4\",yen:\"\\xA5\",brvbar:\"\\xA6\",sect:\"\\xA7\",uml:\"\\xA8\",copy:\"\\xA9\",ordf:\"\\xAA\",laquo:\"\\xAB\",not:\"\\xAC\",shy:\"\\xAD\",reg:\"\\xAE\",macr:\"\\xAF\",deg:\"\\xB0\",plusmn:\"\\xB1\",sup2:\"\\xB2\",sup3:\"\\xB3\",acute:\"\\xB4\",micro:\"\\xB5\",para:\"\\xB6\",middot:\"\\xB7\",cedil:\"\\xB8\",sup1:\"\\xB9\",ordm:\"\\xBA\",raquo:\"\\xBB\",frac14:\"\\xBC\",frac12:\"\\xBD\",frac34:\"\\xBE\",iquest:\"\\xBF\",Agrave:\"\\xC0\",Aacute:\"\\xC1\",Acirc:\"\\xC2\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Aring:\"\\xC5\",AElig:\"\\xC6\",Ccedil:\"\\xC7\",Egrave:\"\\xC8\",Eacute:\"\\xC9\",Ecirc:\"\\xCA\",Euml:\"\\xCB\",Igrave:\"\\xCC\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Iuml:\"\\xCF\",ETH:\"\\xD0\",Ntilde:\"\\xD1\",Ograve:\"\\xD2\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",times:\"\\xD7\",Oslash:\"\\xD8\",Ugrave:\"\\xD9\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",THORN:\"\\xDE\",szlig:\"\\xDF\",agrave:\"\\xE0\",aacute:\"\\xE1\",acirc:\"\\xE2\",atilde:\"\\xE3\",auml:\"\\xE4\",aring:\"\\xE5\",aelig:\"\\xE6\",ccedil:\"\\xE7\",egrave:\"\\xE8\",eacute:\"\\xE9\",ecirc:\"\\xEA\",euml:\"\\xEB\",igrave:\"\\xEC\",iacute:\"\\xED\",icirc:\"\\xEE\",iuml:\"\\xEF\",eth:\"\\xF0\",ntilde:\"\\xF1\",ograve:\"\\xF2\",oacute:\"\\xF3\",ocirc:\"\\xF4\",otilde:\"\\xF5\",ouml:\"\\xF6\",divide:\"\\xF7\",oslash:\"\\xF8\",ugrave:\"\\xF9\",uacute:\"\\xFA\",ucirc:\"\\xFB\",uuml:\"\\xFC\",yacute:\"\\xFD\",thorn:\"\\xFE\",yuml:\"\\xFF\",OElig:\"\\u0152\",oelig:\"\\u0153\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Yuml:\"\\u0178\",fnof:\"\\u0192\",circ:\"\\u02C6\",tilde:\"\\u02DC\",Alpha:\"\\u0391\",Beta:\"\\u0392\",Gamma:\"\\u0393\",Delta:\"\\u0394\",Epsilon:\"\\u0395\",Zeta:\"\\u0396\",Eta:\"\\u0397\",Theta:\"\\u0398\",Iota:\"\\u0399\",Kappa:\"\\u039A\",Lambda:\"\\u039B\",Mu:\"\\u039C\",Nu:\"\\u039D\",Xi:\"\\u039E\",Omicron:\"\\u039F\",Pi:\"\\u03A0\",Rho:\"\\u03A1\",Sigma:\"\\u03A3\",Tau:\"\\u03A4\",Upsilon:\"\\u03A5\",Phi:\"\\u03A6\",Chi:\"\\u03A7\",Psi:\"\\u03A8\",Omega:\"\\u03A9\",alpha:\"\\u03B1\",beta:\"\\u03B2\",gamma:\"\\u03B3\",delta:\"\\u03B4\",epsilon:\"\\u03B5\",zeta:\"\\u03B6\",eta:\"\\u03B7\",theta:\"\\u03B8\",iota:\"\\u03B9\",kappa:\"\\u03BA\",lambda:\"\\u03BB\",mu:\"\\u03BC\",nu:\"\\u03BD\",xi:\"\\u03BE\",omicron:\"\\u03BF\",pi:\"\\u03C0\",rho:\"\\u03C1\",sigmaf:\"\\u03C2\",sigma:\"\\u03C3\",tau:\"\\u03C4\",upsilon:\"\\u03C5\",phi:\"\\u03C6\",chi:\"\\u03C7\",psi:\"\\u03C8\",omega:\"\\u03C9\",thetasym:\"\\u03D1\",upsih:\"\\u03D2\",piv:\"\\u03D6\",ensp:\"\\u2002\",emsp:\"\\u2003\",thinsp:\"\\u2009\",zwnj:\"\\u200C\",zwj:\"\\u200D\",lrm:\"\\u200E\",rlm:\"\\u200F\",ndash:\"\\u2013\",mdash:\"\\u2014\",lsquo:\"\\u2018\",rsquo:\"\\u2019\",sbquo:\"\\u201A\",ldquo:\"\\u201C\",rdquo:\"\\u201D\",bdquo:\"\\u201E\",dagger:\"\\u2020\",Dagger:\"\\u2021\",bull:\"\\u2022\",hellip:\"\\u2026\",permil:\"\\u2030\",prime:\"\\u2032\",Prime:\"\\u2033\",lsaquo:\"\\u2039\",rsaquo:\"\\u203A\",oline:\"\\u203E\",frasl:\"\\u2044\",euro:\"\\u20AC\",image:\"\\u2111\",weierp:\"\\u2118\",real:\"\\u211C\",trade:\"\\u2122\",alefsym:\"\\u2135\",larr:\"\\u2190\",uarr:\"\\u2191\",rarr:\"\\u2192\",darr:\"\\u2193\",harr:\"\\u2194\",crarr:\"\\u21B5\",lArr:\"\\u21D0\",uArr:\"\\u21D1\",rArr:\"\\u21D2\",dArr:\"\\u21D3\",hArr:\"\\u21D4\",forall:\"\\u2200\",part:\"\\u2202\",exist:\"\\u2203\",empty:\"\\u2205\",nabla:\"\\u2207\",isin:\"\\u2208\",notin:\"\\u2209\",ni:\"\\u220B\",prod:\"\\u220F\",sum:\"\\u2211\",minus:\"\\u2212\",lowast:\"\\u2217\",radic:\"\\u221A\",prop:\"\\u221D\",infin:\"\\u221E\",ang:\"\\u2220\",and:\"\\u2227\",or:\"\\u2228\",cap:\"\\u2229\",cup:\"\\u222A\",int:\"\\u222B\",there4:\"\\u2234\",sim:\"\\u223C\",cong:\"\\u2245\",asymp:\"\\u2248\",ne:\"\\u2260\",equiv:\"\\u2261\",le:\"\\u2264\",ge:\"\\u2265\",sub:\"\\u2282\",sup:\"\\u2283\",nsub:\"\\u2284\",sube:\"\\u2286\",supe:\"\\u2287\",oplus:\"\\u2295\",otimes:\"\\u2297\",perp:\"\\u22A5\",sdot:\"\\u22C5\",lceil:\"\\u2308\",rceil:\"\\u2309\",lfloor:\"\\u230A\",rfloor:\"\\u230B\",lang:\"\\u2329\",rang:\"\\u232A\",loz:\"\\u25CA\",spades:\"\\u2660\",clubs:\"\\u2663\",hearts:\"\\u2665\",diams:\"\\u2666\"}}}),A1=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(V,L,P,k){k===void 0&&(k=P);var Y=Object.getOwnPropertyDescriptor(L,P);(!Y||(\"get\"in Y?!L.__esModule:Y.writable||Y.configurable))&&(Y={enumerable:!0,get:function(){return L[P]}}),Object.defineProperty(V,k,Y)}:function(V,L,P,k){k===void 0&&(k=P),V[k]=L[P]}),Ve=M&&M.__setModuleDefault||(Object.create?function(V,L){Object.defineProperty(V,\"default\",{enumerable:!0,value:L})}:function(V,L){V.default=L}),Ke=M&&M.__importStar||function(V){if(V&&V.__esModule)return V;var L={};if(V!=null)for(var P in V)P!==\"default\"&&Object.prototype.hasOwnProperty.call(V,P)&&re(L,V,P);return Ve(L,V),L};Object.defineProperty(M,\"__esModule\",{value:!0}),M.firstDefined=M.nodeHasTokens=M.createError=M.TSError=M.convertTokens=M.convertToken=M.getTokenType=M.isChildUnwrappableOptionalChain=M.isChainExpression=M.isOptional=M.isComputedProperty=M.unescapeStringLiteralText=M.hasJSXAncestor=M.findFirstMatchingAncestor=M.findNextToken=M.getTSNodeAccessibility=M.getDeclarationKind=M.isJSXToken=M.isToken=M.getRange=M.canContainDirective=M.getLocFor=M.getLineAndCharacterFor=M.getBinaryExpressionType=M.isJSDocComment=M.isComment=M.isComma=M.getLastModifier=M.hasModifier=M.isESTreeClassMember=M.getTextForTokenKind=M.isLogicalOperator=M.isAssignmentOperator=void 0;var oi=Ke(_u()),kr=k1(),pr=EU(),Lr=oi.SyntaxKind,ar=[Lr.BarBarToken,Lr.AmpersandAmpersandToken,Lr.QuestionQuestionToken];function ke(V){return V.kind>=Lr.FirstAssignment&&V.kind<=Lr.LastAssignment}M.isAssignmentOperator=ke;function e(V){return ar.includes(V.kind)}M.isLogicalOperator=e;function a(V){return oi.tokenToString(V)}M.getTextForTokenKind=a;function C(V){return V.kind!==Lr.SemicolonClassElement}M.isESTreeClassMember=C;function w(V,L){return!!L.modifiers&&!!L.modifiers.length&&L.modifiers.some(P=>P.kind===V)}M.hasModifier=w;function B(V){return!!V.modifiers&&!!V.modifiers.length&&V.modifiers[V.modifiers.length-1]||null}M.getLastModifier=B;function E(V){return V.kind===Lr.CommaToken}M.isComma=E;function Q(V){return V.kind===Lr.SingleLineCommentTrivia||V.kind===Lr.MultiLineCommentTrivia}M.isComment=Q;function le(V){return V.kind===Lr.JSDocComment}M.isJSDocComment=le;function N(V){return ke(V)?kr.AST_NODE_TYPES.AssignmentExpression:e(V)?kr.AST_NODE_TYPES.LogicalExpression:kr.AST_NODE_TYPES.BinaryExpression}M.getBinaryExpressionType=N;function p(V,L){let P=L.getLineAndCharacterOfPosition(V);return{line:P.line+1,column:P.character}}M.getLineAndCharacterFor=p;function m(V,L,P){return{start:p(V,P),end:p(L,P)}}M.getLocFor=m;function G(V){if(V.kind===oi.SyntaxKind.Block)switch(V.parent.kind){case oi.SyntaxKind.Constructor:case oi.SyntaxKind.GetAccessor:case oi.SyntaxKind.SetAccessor:case oi.SyntaxKind.ArrowFunction:case oi.SyntaxKind.FunctionExpression:case oi.SyntaxKind.FunctionDeclaration:case oi.SyntaxKind.MethodDeclaration:return!0;default:return!1}return!0}M.canContainDirective=G;function oe(V,L){return[V.getStart(L),V.getEnd()]}M.getRange=oe;function f(V){return V.kind>=Lr.FirstToken&&V.kind<=Lr.LastToken}M.isToken=f;function T(V){return V.kind>=Lr.JsxElement&&V.kind<=Lr.JsxAttribute}M.isJSXToken=T;function K(V){return V.flags&oi.NodeFlags.Let?\"let\":V.flags&oi.NodeFlags.Const?\"const\":\"var\"}M.getDeclarationKind=K;function b(V){let L=V.modifiers;if(!L)return null;for(let P of L)switch(P.kind){case Lr.PublicKeyword:return\"public\";case Lr.ProtectedKeyword:return\"protected\";case Lr.PrivateKeyword:return\"private\";default:break}return null}M.getTSNodeAccessibility=b;function se(V,L,P){return k(L);function k(Y){return oi.isToken(Y)&&Y.pos===V.end?Y:y(Y.getChildren(P),U=>(U.pos<=V.pos&&U.end>V.end||U.pos===V.end)&&A(U,P)?k(U):void 0)}}M.findNextToken=se;function J(V,L){for(;V;){if(L(V))return V;V=V.parent}}M.findFirstMatchingAncestor=J;function ie(V){return!!J(V,T)}M.hasJSXAncestor=ie;function R(V){return V.replace(/&(?:#\\d+|#x[\\da-fA-F]+|[0-9a-zA-Z]+);/g,L=>{let P=L.slice(1,-1);if(P[0]===\"#\"){let k=P[1]===\"x\"?parseInt(P.slice(2),16):parseInt(P.slice(1),10);return k>1114111?L:String.fromCodePoint(k)}return pr.xhtmlEntities[P]||L})}M.unescapeStringLiteralText=R;function q(V){return V.kind===Lr.ComputedPropertyName}M.isComputedProperty=q;function O(V){return V.questionToken?V.questionToken.kind===Lr.QuestionToken:!1}M.isOptional=O;function ve(V){return V.type===kr.AST_NODE_TYPES.ChainExpression}M.isChainExpression=ve;function ee(V,L){return ve(L)&&V.expression.kind!==oi.SyntaxKind.ParenthesizedExpression}M.isChildUnwrappableOptionalChain=ee;function he(V){if(\"originalKeywordKind\"in V&&V.originalKeywordKind)return V.originalKeywordKind===Lr.NullKeyword?kr.AST_TOKEN_TYPES.Null:V.originalKeywordKind>=Lr.FirstFutureReservedWord&&V.originalKeywordKind<=Lr.LastKeyword?kr.AST_TOKEN_TYPES.Identifier:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstKeyword&&V.kind<=Lr.LastFutureReservedWord)return V.kind===Lr.FalseKeyword||V.kind===Lr.TrueKeyword?kr.AST_TOKEN_TYPES.Boolean:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstPunctuation&&V.kind<=Lr.LastPunctuation)return kr.AST_TOKEN_TYPES.Punctuator;if(V.kind>=Lr.NoSubstitutionTemplateLiteral&&V.kind<=Lr.TemplateTail)return kr.AST_TOKEN_TYPES.Template;switch(V.kind){case Lr.NumericLiteral:return kr.AST_TOKEN_TYPES.Numeric;case Lr.JsxText:return kr.AST_TOKEN_TYPES.JSXText;case Lr.StringLiteral:return V.parent&&(V.parent.kind===Lr.JsxAttribute||V.parent.kind===Lr.JsxElement)?kr.AST_TOKEN_TYPES.JSXText:kr.AST_TOKEN_TYPES.String;case Lr.RegularExpressionLiteral:return kr.AST_TOKEN_TYPES.RegularExpression;case Lr.Identifier:case Lr.ConstructorKeyword:case Lr.GetKeyword:case Lr.SetKeyword:default:}return V.parent&&V.kind===Lr.Identifier&&(T(V.parent)||V.parent.kind===Lr.PropertyAccessExpression&&ie(V))?kr.AST_TOKEN_TYPES.JSXIdentifier:kr.AST_TOKEN_TYPES.Identifier}M.getTokenType=he;function F(V,L){let P=V.kind===Lr.JsxText?V.getFullStart():V.getStart(L),k=V.getEnd(),Y=L.text.slice(P,k),U=he(V);return U===kr.AST_TOKEN_TYPES.RegularExpression?{type:U,value:Y,range:[P,k],loc:m(P,k,L),regex:{pattern:Y.slice(1,Y.lastIndexOf(\"/\")),flags:Y.slice(Y.lastIndexOf(\"/\")+1)}}:{type:U,value:Y,range:[P,k],loc:m(P,k,L)}}M.convertToken=F;function x(V){let L=[];function P(k){if(!(Q(k)||le(k)))if(f(k)&&k.kind!==Lr.EndOfFileToken){let Y=F(k,V);Y&&L.push(Y)}else k.getChildren(V).forEach(P)}return P(V),L}M.convertTokens=x;var X=class extends Error{constructor(V,L,P,k,Y){super(V),this.fileName=L,this.index=P,this.lineNumber=k,this.column=Y,Object.defineProperty(this,\"name\",{value:new.target.name,enumerable:!1,configurable:!0})}};M.TSError=X;function $(V,L,P){let k=V.getLineAndCharacterOfPosition(L);return new X(P,V.fileName,L,k.line+1,k.character)}M.createError=$;function A(V,L){return V.kind===Lr.EndOfFileToken?!!V.jsDoc:V.getWidth(L)!==0}M.nodeHasTokens=A;function y(V,L){if(V!==void 0)for(let P=0;P{let E=this.convertChild(B);if(w)if((E==null?void 0:E.expression)&&oi.isExpressionStatement(B)&&oi.isStringLiteral(B.expression)){let Q=E.expression.raw;return E.directive=Q.slice(1,-1),E}else w=!1;return E}).filter(B=>B)}convertTypeArgumentsToTypeParameters(a,C){let w=(0,kr.findNextToken)(a,this.ast,this.ast);return this.createNode(C,{type:pr.AST_NODE_TYPES.TSTypeParameterInstantiation,range:[a.pos-1,w.end],params:a.map(B=>this.convertType(B))})}convertTSTypeParametersToTypeParametersDeclaration(a){let C=(0,kr.findNextToken)(a,this.ast,this.ast);return{type:pr.AST_NODE_TYPES.TSTypeParameterDeclaration,range:[a.pos-1,C.end],loc:(0,kr.getLocFor)(a.pos-1,C.end,this.ast),params:a.map(w=>this.convertType(w))}}convertParameters(a){return!a||!a.length?[]:a.map(C=>{var w;let B=this.convertChild(C);return!((w=C.decorators)===null||w===void 0)&&w.length&&(B.decorators=C.decorators.map(E=>this.convertChild(E))),B})}convertChainExpression(a,C){let{child:w,isOptional:B}=(()=>a.type===pr.AST_NODE_TYPES.MemberExpression?{child:a.object,isOptional:a.optional}:a.type===pr.AST_NODE_TYPES.CallExpression?{child:a.callee,isOptional:a.optional}:{child:a.expression,isOptional:!1})(),E=(0,kr.isChildUnwrappableOptionalChain)(C,w);if(!E&&!B)return a;if(E&&(0,kr.isChainExpression)(w)){let Q=w.expression;a.type===pr.AST_NODE_TYPES.MemberExpression?a.object=Q:a.type===pr.AST_NODE_TYPES.CallExpression?a.callee=Q:a.expression=Q}return this.createNode(C,{type:pr.AST_NODE_TYPES.ChainExpression,expression:a})}deeplyCopy(a){if(a.kind===oi.SyntaxKind.JSDocFunctionType)throw(0,kr.createError)(this.ast,a.pos,\"JSDoc types can only be used inside documentation comments.\");let C=\"TS\".concat(ar[a.kind]);if(this.options.errorOnUnknownASTType&&!pr.AST_NODE_TYPES[C])throw new Error('Unknown AST_NODE_TYPE: \"'.concat(C,'\"'));let w=this.createNode(a,{type:C});return\"type\"in a&&(w.typeAnnotation=a.type&&\"kind\"in a.type&&oi.isTypeNode(a.type)?this.convertTypeAnnotation(a.type,a):null),\"typeArguments\"in a&&(w.typeParameters=a.typeArguments&&\"pos\"in a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null),\"typeParameters\"in a&&(w.typeParameters=a.typeParameters&&\"pos\"in a.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters):null),\"decorators\"in a&&a.decorators&&a.decorators.length&&(w.decorators=a.decorators.map(B=>this.convertChild(B))),Object.entries(a).filter(B=>{let[E]=B;return!/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators|transformFlags)$/.test(E)}).forEach(B=>{let[E,Q]=B;Array.isArray(Q)?w[E]=Q.map(le=>this.convertChild(le)):Q&&typeof Q==\"object\"&&Q.kind?w[E]=this.convertChild(Q):w[E]=Q}),w}convertJSXIdentifier(a){let C=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:a.getText()});return this.registerTSNodeInNodeMap(a,C),C}convertJSXNamespaceOrIdentifier(a){let C=a.getText(),w=C.indexOf(\":\");if(w>0){let B=(0,kr.getRange)(a,this.ast),E=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXNamespacedName,namespace:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(0,w),range:[B[0],B[0]+w]}),name:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(w+1),range:[B[0]+w+1,B[1]]}),range:B});return this.registerTSNodeInNodeMap(a,E),E}return this.convertJSXIdentifier(a)}convertJSXTagName(a,C){let w;switch(a.kind){case ar.PropertyAccessExpression:if(a.name.kind===ar.PrivateIdentifier)throw new Error(\"Non-private identifier expected.\");w=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXMemberExpression,object:this.convertJSXTagName(a.expression,C),property:this.convertJSXIdentifier(a.name)});break;case ar.ThisKeyword:case ar.Identifier:default:return this.convertJSXNamespaceOrIdentifier(a)}return this.registerTSNodeInNodeMap(a,w),w}convertMethodSignature(a){let C=this.createNode(a,{type:pr.AST_NODE_TYPES.TSMethodSignature,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),params:this.convertParameters(a.parameters),kind:(()=>{switch(a.kind){case ar.GetAccessor:return\"get\";case ar.SetAccessor:return\"set\";case ar.MethodSignature:return\"method\"}})()});(0,kr.isOptional)(a)&&(C.optional=!0),a.type&&(C.returnType=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(C.readonly=!0),a.typeParameters&&(C.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters));let w=(0,kr.getTSNodeAccessibility)(a);return w&&(C.accessibility=w),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(C.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(C.static=!0),C}convertAssertClasue(a){return a===void 0?[]:a.elements.map(C=>this.convertChild(C))}applyModifiersToResult(a,C){if(!C||!C.length)return;let w=[];for(let B of C)switch(B.kind){case ar.ExportKeyword:case ar.DefaultKeyword:break;case ar.ConstKeyword:a.const=!0;break;case ar.DeclareKeyword:a.declare=!0;break;default:w.push(this.convertChild(B));break}w.length&&(a.modifiers=w)}fixParentLocation(a,C){C[0]a.range[1]&&(a.range[1]=C[1],a.loc.end=(0,kr.getLineAndCharacterFor)(a.range[1],this.ast))}assertModuleSpecifier(a,C){var w;if(!C&&a.moduleSpecifier==null)throw(0,kr.createError)(this.ast,a.pos,\"Module specifier must be a string literal.\");if(a.moduleSpecifier&&((w=a.moduleSpecifier)===null||w===void 0?void 0:w.kind)!==ar.StringLiteral)throw(0,kr.createError)(this.ast,a.moduleSpecifier.pos,\"Module specifier must be a string literal.\")}convertNode(a,C){var w,B,E,Q,le,N,p,m,G,oe;switch(a.kind){case ar.SourceFile:return this.createNode(a,{type:pr.AST_NODE_TYPES.Program,body:this.convertBodyExpressions(a.statements,a),sourceType:a.externalModuleIndicator?\"module\":\"script\",range:[a.getStart(this.ast),a.endOfFileToken.end]});case ar.Block:return this.createNode(a,{type:pr.AST_NODE_TYPES.BlockStatement,body:this.convertBodyExpressions(a.statements,a)});case ar.Identifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.Identifier,name:a.text});case ar.PrivateIdentifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.PrivateIdentifier,name:a.text.slice(1)});case ar.WithStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.WithStatement,object:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ReturnStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ReturnStatement,argument:this.convertChild(a.expression)});case ar.LabeledStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.LabeledStatement,label:this.convertChild(a.label),body:this.convertChild(a.statement)});case ar.ContinueStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ContinueStatement,label:this.convertChild(a.label)});case ar.BreakStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.BreakStatement,label:this.convertChild(a.label)});case ar.IfStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.IfStatement,test:this.convertChild(a.expression),consequent:this.convertChild(a.thenStatement),alternate:this.convertChild(a.elseStatement)});case ar.SwitchStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.SwitchStatement,discriminant:this.convertChild(a.expression),cases:a.caseBlock.clauses.map(f=>this.convertChild(f))});case ar.CaseClause:case ar.DefaultClause:return this.createNode(a,{type:pr.AST_NODE_TYPES.SwitchCase,test:a.kind===ar.CaseClause?this.convertChild(a.expression):null,consequent:a.statements.map(f=>this.convertChild(f))});case ar.ThrowStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ThrowStatement,argument:this.convertChild(a.expression)});case ar.TryStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.TryStatement,block:this.convertChild(a.tryBlock),handler:this.convertChild(a.catchClause),finalizer:this.convertChild(a.finallyBlock)});case ar.CatchClause:return this.createNode(a,{type:pr.AST_NODE_TYPES.CatchClause,param:a.variableDeclaration?this.convertBindingNameWithTypeAnnotation(a.variableDeclaration.name,a.variableDeclaration.type):null,body:this.convertChild(a.block)});case ar.WhileStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.WhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.DoStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.DoWhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForStatement,init:this.convertChild(a.initializer),test:this.convertChild(a.condition),update:this.convertChild(a.incrementor),body:this.convertChild(a.statement)});case ar.ForInStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForInStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForOfStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForOfStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement),await:Boolean(a.awaitModifier&&a.awaitModifier.kind===ar.AwaitKeyword)});case ar.FunctionDeclaration:{let f=(0,kr.hasModifier)(ar.DeclareKeyword,a),T=this.createNode(a,{type:f||!a.body?pr.AST_NODE_TYPES.TSDeclareFunction:pr.AST_NODE_TYPES.FunctionDeclaration,id:this.convertChild(a.name),generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),params:this.convertParameters(a.parameters),body:this.convertChild(a.body)||void 0});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f&&(T.declare=!0),this.fixExports(a,T)}case ar.VariableDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclarator,id:this.convertBindingNameWithTypeAnnotation(a.name,a.type,a),init:this.convertChild(a.initializer)});return a.exclamationToken&&(f.definite=!0),f}case ar.VariableStatement:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarationList.declarations.map(T=>this.convertChild(T)),kind:(0,kr.getDeclarationKind)(a.declarationList)});return a.decorators&&(f.decorators=a.decorators.map(T=>this.convertChild(T))),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),this.fixExports(a,f)}case ar.VariableDeclarationList:return this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarations.map(f=>this.convertChild(f)),kind:(0,kr.getDeclarationKind)(a)});case ar.ExpressionStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ExpressionStatement,expression:this.convertChild(a.expression)});case ar.ThisKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.ThisExpression});case ar.ArrayLiteralExpression:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))}):this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayExpression,elements:a.elements.map(f=>this.convertChild(f))});case ar.ObjectLiteralExpression:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectPattern,properties:a.properties.map(f=>this.convertPattern(f))}):this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectExpression,properties:a.properties.map(f=>this.convertChild(f))});case ar.PropertyAssignment:return this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.converter(a.initializer,a,this.inTypeMode,this.allowPattern),computed:(0,kr.isComputedProperty)(a.name),method:!1,shorthand:!1,kind:\"init\"});case ar.ShorthandPropertyAssignment:return a.objectAssignmentInitializer?this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.name),right:this.convertChild(a.objectAssignmentInitializer)}),computed:!1,method:!1,shorthand:!0,kind:\"init\"}):this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.convertChild(a.name),computed:!1,method:!1,shorthand:!0,kind:\"init\"});case ar.ComputedPropertyName:return this.convertChild(a.expression);case ar.PropertyDeclaration:{let f=(0,kr.hasModifier)(ar.AbstractKeyword,a),T=this.createNode(a,{type:f?pr.AST_NODE_TYPES.TSAbstractPropertyDefinition:pr.AST_NODE_TYPES.PropertyDefinition,key:this.convertChild(a.name),value:f?null:this.convertChild(a.initializer),computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,declare:(0,kr.hasModifier)(ar.DeclareKeyword,a),override:(0,kr.hasModifier)(ar.OverrideKeyword,a)});a.type&&(T.typeAnnotation=this.convertTypeAnnotation(a.type,a)),a.decorators&&(T.decorators=a.decorators.map(b=>this.convertChild(b)));let K=(0,kr.getTSNodeAccessibility)(a);return K&&(T.accessibility=K),(a.name.kind===ar.Identifier||a.name.kind===ar.ComputedPropertyName||a.name.kind===ar.PrivateIdentifier)&&a.questionToken&&(T.optional=!0),a.exclamationToken&&(T.definite=!0),T.key.type===pr.AST_NODE_TYPES.Literal&&a.questionToken&&(T.optional=!0),T}case ar.GetAccessor:case ar.SetAccessor:if(a.parent.kind===ar.InterfaceDeclaration||a.parent.kind===ar.TypeLiteral)return this.convertMethodSignature(a);case ar.MethodDeclaration:{let f=this.createNode(a,{type:a.body?pr.AST_NODE_TYPES.FunctionExpression:pr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end],params:[]});a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(f,f.typeParameters.range));let T;if(C.kind===ar.ObjectLiteralExpression)f.params=a.parameters.map(K=>this.convertChild(K)),T=this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),method:a.kind===ar.MethodDeclaration,shorthand:!1,kind:\"init\"});else{f.params=this.convertParameters(a.parameters);let K=(0,kr.hasModifier)(ar.AbstractKeyword,a)?pr.AST_NODE_TYPES.TSAbstractMethodDefinition:pr.AST_NODE_TYPES.MethodDefinition;T=this.createNode(a,{type:K,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),kind:\"method\",override:(0,kr.hasModifier)(ar.OverrideKeyword,a)}),a.decorators&&(T.decorators=a.decorators.map(se=>this.convertChild(se)));let b=(0,kr.getTSNodeAccessibility)(a);b&&(T.accessibility=b)}return a.questionToken&&(T.optional=!0),a.kind===ar.GetAccessor?T.kind=\"get\":a.kind===ar.SetAccessor?T.kind=\"set\":!T.static&&a.name.kind===ar.StringLiteral&&a.name.text===\"constructor\"&&T.type!==pr.AST_NODE_TYPES.Property&&(T.kind=\"constructor\"),T}case ar.Constructor:{let f=(0,kr.getLastModifier)(a),T=f&&(0,kr.findNextToken)(f,a,this.ast)||a.getFirstToken(),K=this.createNode(a,{type:a.body?pr.AST_NODE_TYPES.FunctionExpression:pr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,params:this.convertParameters(a.parameters),generator:!1,expression:!1,async:!1,body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end]});a.typeParameters&&(K.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(K,K.typeParameters.range)),a.type&&(K.returnType=this.convertTypeAnnotation(a.type,a));let b=this.createNode(a,{type:pr.AST_NODE_TYPES.Identifier,name:\"constructor\",range:[T.getStart(this.ast),T.end]}),se=(0,kr.hasModifier)(ar.StaticKeyword,a),J=this.createNode(a,{type:(0,kr.hasModifier)(ar.AbstractKeyword,a)?pr.AST_NODE_TYPES.TSAbstractMethodDefinition:pr.AST_NODE_TYPES.MethodDefinition,key:b,value:K,computed:!1,static:se,kind:se?\"method\":\"constructor\",override:!1}),ie=(0,kr.getTSNodeAccessibility)(a);return ie&&(J.accessibility=ie),J}case ar.FunctionExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.FunctionExpression,id:this.convertChild(a.name),generator:!!a.asteriskToken,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:!1});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.SuperKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Super});case ar.ArrayBindingPattern:return this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))});case ar.OmittedExpression:return null;case ar.ObjectBindingPattern:return this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectPattern,properties:a.elements.map(f=>this.convertPattern(f))});case ar.BindingElement:if(C.kind===ar.ArrayBindingPattern){let f=this.convertChild(a.name,C);return a.initializer?this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}):a.dotDotDotToken?this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:f}):f}else{let f;return a.dotDotDotToken?f=this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertChild((w=a.propertyName)!==null&&w!==void 0?w:a.name)}):f=this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild((B=a.propertyName)!==null&&B!==void 0?B:a.name),value:this.convertChild(a.name),computed:Boolean(a.propertyName&&a.propertyName.kind===ar.ComputedPropertyName),method:!1,shorthand:!a.propertyName,kind:\"init\"}),a.initializer&&(f.value=this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertChild(a.name),right:this.convertChild(a.initializer),range:[a.name.getStart(this.ast),a.initializer.end]})),f}case ar.ArrowFunction:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.ArrowFunctionExpression,generator:!1,id:null,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:a.body.kind!==ar.Block});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.YieldExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.YieldExpression,delegate:!!a.asteriskToken,argument:this.convertChild(a.expression)});case ar.AwaitExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.AwaitExpression,argument:this.convertChild(a.expression)});case ar.NoSubstitutionTemplateLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-1),cooked:a.text},tail:!0})],expressions:[]});case ar.TemplateExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.convertChild(a.head)],expressions:[]});return a.templateSpans.forEach(T=>{f.expressions.push(this.convertChild(T.expression)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.TaggedTemplateExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TaggedTemplateExpression,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,tag:this.convertChild(a.tag),quasi:this.convertChild(a.template)});case ar.TemplateHead:case ar.TemplateMiddle:case ar.TemplateTail:{let f=a.kind===ar.TemplateTail;return this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-(f?1:2)),cooked:a.text},tail:f})}case ar.SpreadAssignment:case ar.SpreadElement:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertPattern(a.expression)}):this.createNode(a,{type:pr.AST_NODE_TYPES.SpreadElement,argument:this.convertChild(a.expression)});case ar.Parameter:{let f,T;return a.dotDotDotToken?f=T=this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertChild(a.name)}):a.initializer?(f=this.convertChild(a.name),T=this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}),a.modifiers&&(T.range[0]=f.range[0],T.loc=(0,kr.getLocFor)(T.range[0],T.range[1],this.ast))):f=T=this.convertChild(a.name,C),a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),this.fixParentLocation(f,f.typeAnnotation.range)),a.questionToken&&(a.questionToken.end>f.range[1]&&(f.range[1]=a.questionToken.end,f.loc.end=(0,kr.getLineAndCharacterFor)(f.range[1],this.ast)),f.optional=!0),a.modifiers?this.createNode(a,{type:pr.AST_NODE_TYPES.TSParameterProperty,accessibility:(E=(0,kr.getTSNodeAccessibility)(a))!==null&&E!==void 0?E:void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0,override:(0,kr.hasModifier)(ar.OverrideKeyword,a)||void 0,parameter:T}):T}case ar.ClassDeclaration:case ar.ClassExpression:{let f=(Q=a.heritageClauses)!==null&&Q!==void 0?Q:[],T=a.kind===ar.ClassDeclaration?pr.AST_NODE_TYPES.ClassDeclaration:pr.AST_NODE_TYPES.ClassExpression,K=f.find(ie=>ie.token===ar.ExtendsKeyword),b=f.find(ie=>ie.token===ar.ImplementsKeyword),se=this.createNode(a,{type:T,id:this.convertChild(a.name),body:this.createNode(a,{type:pr.AST_NODE_TYPES.ClassBody,body:[],range:[a.members.pos-1,a.end]}),superClass:K!=null&&K.types[0]?this.convertChild(K.types[0].expression):null});if(K){if(K.types.length>1)throw(0,kr.createError)(this.ast,K.types[1].pos,\"Classes can only extend a single class.\");!((le=K.types[0])===null||le===void 0)&&le.typeArguments&&(se.superTypeParameters=this.convertTypeArgumentsToTypeParameters(K.types[0].typeArguments,K.types[0]))}a.typeParameters&&(se.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),b&&(se.implements=b.types.map(ie=>this.convertChild(ie))),(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(se.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(se.declare=!0),a.decorators&&(se.decorators=a.decorators.map(ie=>this.convertChild(ie)));let J=a.members.filter(kr.isESTreeClassMember);return J.length&&(se.body.body=J.map(ie=>this.convertChild(ie))),this.fixExports(a,se)}case ar.ModuleBlock:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSModuleBlock,body:this.convertBodyExpressions(a.statements,a)});case ar.ImportDeclaration:{this.assertModuleSpecifier(a,!1);let f=this.createNode(a,{type:pr.AST_NODE_TYPES.ImportDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:[],importKind:\"value\",assertions:this.convertAssertClasue(a.assertClause)});if(a.importClause&&(a.importClause.isTypeOnly&&(f.importKind=\"type\"),a.importClause.name&&f.specifiers.push(this.convertChild(a.importClause)),a.importClause.namedBindings))switch(a.importClause.namedBindings.kind){case ar.NamespaceImport:f.specifiers.push(this.convertChild(a.importClause.namedBindings));break;case ar.NamedImports:f.specifiers=f.specifiers.concat(a.importClause.namedBindings.elements.map(T=>this.convertChild(T)));break}return f}case ar.NamespaceImport:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportNamespaceSpecifier,local:this.convertChild(a.name)});case ar.ImportSpecifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportSpecifier,local:this.convertChild(a.name),imported:this.convertChild((N=a.propertyName)!==null&&N!==void 0?N:a.name),importKind:a.isTypeOnly?\"type\":\"value\"});case ar.ImportClause:{let f=this.convertChild(a.name);return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportDefaultSpecifier,local:f,range:f.range})}case ar.ExportDeclaration:return((p=a.exportClause)===null||p===void 0?void 0:p.kind)===ar.NamedExports?(this.assertModuleSpecifier(a,!0),this.createNode(a,{type:pr.AST_NODE_TYPES.ExportNamedDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:a.exportClause.elements.map(f=>this.convertChild(f)),exportKind:a.isTypeOnly?\"type\":\"value\",declaration:null,assertions:this.convertAssertClasue(a.assertClause)})):(this.assertModuleSpecifier(a,!1),this.createNode(a,{type:pr.AST_NODE_TYPES.ExportAllDeclaration,source:this.convertChild(a.moduleSpecifier),exportKind:a.isTypeOnly?\"type\":\"value\",exported:a.exportClause&&a.exportClause.kind===ar.NamespaceExport?this.convertChild(a.exportClause.name):null,assertions:this.convertAssertClasue(a.assertClause)}));case ar.ExportSpecifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.ExportSpecifier,local:this.convertChild((m=a.propertyName)!==null&&m!==void 0?m:a.name),exported:this.convertChild(a.name),exportKind:a.isTypeOnly?\"type\":\"value\"});case ar.ExportAssignment:return a.isExportEquals?this.createNode(a,{type:pr.AST_NODE_TYPES.TSExportAssignment,expression:this.convertChild(a.expression)}):this.createNode(a,{type:pr.AST_NODE_TYPES.ExportDefaultDeclaration,declaration:this.convertChild(a.expression),exportKind:\"value\"});case ar.PrefixUnaryExpression:case ar.PostfixUnaryExpression:{let f=(0,kr.getTextForTokenKind)(a.operator);return f===\"++\"||f===\"--\"?this.createNode(a,{type:pr.AST_NODE_TYPES.UpdateExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)}):this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)})}case ar.DeleteExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:\"delete\",prefix:!0,argument:this.convertChild(a.expression)});case ar.VoidExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:\"void\",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOfExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:\"typeof\",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOperator:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeOperator,operator:(0,kr.getTextForTokenKind)(a.operator),typeAnnotation:this.convertChild(a.type)});case ar.BinaryExpression:if((0,kr.isComma)(a.operatorToken)){let f=this.createNode(a,{type:pr.AST_NODE_TYPES.SequenceExpression,expressions:[]}),T=this.convertChild(a.left);return T.type===pr.AST_NODE_TYPES.SequenceExpression&&a.left.kind!==ar.ParenthesizedExpression?f.expressions=f.expressions.concat(T.expressions):f.expressions.push(T),f.expressions.push(this.convertChild(a.right)),f}else{let f=(0,kr.getBinaryExpressionType)(a.operatorToken);return this.allowPattern&&f===pr.AST_NODE_TYPES.AssignmentExpression?this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.left,a),right:this.convertChild(a.right)}):this.createNode(a,{type:f,operator:(0,kr.getTextForTokenKind)(a.operatorToken.kind),left:this.converter(a.left,a,this.inTypeMode,f===pr.AST_NODE_TYPES.AssignmentExpression),right:this.convertChild(a.right)})}case ar.PropertyAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.name),K=!1,b=this.createNode(a,{type:pr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.ElementAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.argumentExpression),K=!0,b=this.createNode(a,{type:pr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.CallExpression:{if(a.expression.kind===ar.ImportKeyword){if(a.arguments.length!==1&&a.arguments.length!==2)throw(0,kr.createError)(this.ast,a.arguments.pos,\"Dynamic import requires exactly one or two arguments.\");return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportExpression,source:this.convertChild(a.arguments[0]),attributes:a.arguments[1]?this.convertChild(a.arguments[1]):null})}let f=this.convertChild(a.expression),T=a.arguments.map(b=>this.convertChild(b)),K=this.createNode(a,{type:pr.AST_NODE_TYPES.CallExpression,callee:f,arguments:T,optional:a.questionDotToken!==void 0});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),this.convertChainExpression(K,a)}case ar.NewExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.NewExpression,callee:this.convertChild(a.expression),arguments:a.arguments?a.arguments.map(T=>this.convertChild(T)):[]});return a.typeArguments&&(f.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),f}case ar.ConditionalExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.ConditionalExpression,test:this.convertChild(a.condition),consequent:this.convertChild(a.whenTrue),alternate:this.convertChild(a.whenFalse)});case ar.MetaProperty:return this.createNode(a,{type:pr.AST_NODE_TYPES.MetaProperty,meta:this.createNode(a.getFirstToken(),{type:pr.AST_NODE_TYPES.Identifier,name:(0,kr.getTextForTokenKind)(a.keywordToken)}),property:this.convertChild(a.name)});case ar.Decorator:return this.createNode(a,{type:pr.AST_NODE_TYPES.Decorator,expression:this.convertChild(a.expression)});case ar.StringLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:C.kind===ar.JsxAttribute?(0,kr.unescapeStringLiteralText)(a.text):a.text,raw:a.getText()});case ar.NumericLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:Number(a.text),raw:a.getText()});case ar.BigIntLiteral:{let f=(0,kr.getRange)(a,this.ast),T=this.ast.text.slice(f[0],f[1]),K=T.slice(0,-1).replace(/_/g,\"\"),b=typeof BigInt<\"u\"?BigInt(K):null;return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,raw:T,value:b,bigint:b===null?K:String(b),range:f})}case ar.RegularExpressionLiteral:{let f=a.text.slice(1,a.text.lastIndexOf(\"/\")),T=a.text.slice(a.text.lastIndexOf(\"/\")+1),K=null;try{K=new RegExp(f,T)}catch{K=null}return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:K,raw:a.text,regex:{pattern:f,flags:T}})}case ar.TrueKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:!0,raw:\"true\"});case ar.FalseKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:!1,raw:\"false\"});case ar.NullKeyword:return!Lr.typescriptVersionIsAtLeast[\"4.0\"]&&this.inTypeMode?this.createNode(a,{type:pr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:null,raw:\"null\"});case ar.EmptyStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.EmptyStatement});case ar.DebuggerStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.DebuggerStatement});case ar.JsxElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXElement,openingElement:this.convertChild(a.openingElement),closingElement:this.convertChild(a.closingElement),children:a.children.map(f=>this.convertChild(f))});case ar.JsxFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXFragment,openingFragment:this.convertChild(a.openingFragment),closingFragment:this.convertChild(a.closingFragment),children:a.children.map(f=>this.convertChild(f))});case ar.JsxSelfClosingElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXElement,openingElement:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!0,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f)),range:(0,kr.getRange)(a,this.ast)}),closingElement:null,children:[]});case ar.JsxOpeningElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!1,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f))});case ar.JsxClosingElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXClosingElement,name:this.convertJSXTagName(a.tagName,a)});case ar.JsxOpeningFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningFragment});case ar.JsxClosingFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXClosingFragment});case ar.JsxExpression:{let f=a.expression?this.convertChild(a.expression):this.createNode(a,{type:pr.AST_NODE_TYPES.JSXEmptyExpression,range:[a.getStart(this.ast)+1,a.getEnd()-1]});return a.dotDotDotToken?this.createNode(a,{type:pr.AST_NODE_TYPES.JSXSpreadChild,expression:f}):this.createNode(a,{type:pr.AST_NODE_TYPES.JSXExpressionContainer,expression:f})}case ar.JsxAttribute:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(a.name),value:this.convertChild(a.initializer)});case ar.JsxText:{let f=a.getFullStart(),T=a.getEnd(),K=this.ast.text.slice(f,T);return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXText,value:(0,kr.unescapeStringLiteralText)(K),raw:K,range:[f,T]})}case ar.JsxSpreadAttribute:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXSpreadAttribute,argument:this.convertChild(a.expression)});case ar.QualifiedName:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSQualifiedName,left:this.convertChild(a.left),right:this.convertChild(a.right)});case ar.TypeReference:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeReference,typeName:this.convertType(a.typeName),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0});case ar.TypeParameter:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeParameter,name:this.convertType(a.name),constraint:a.constraint?this.convertType(a.constraint):void 0,default:a.default?this.convertType(a.default):void 0,in:(0,kr.hasModifier)(ar.InKeyword,a),out:(0,kr.hasModifier)(ar.OutKeyword,a)});case ar.ThisType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSThisType});case ar.AnyKeyword:case ar.BigIntKeyword:case ar.BooleanKeyword:case ar.NeverKeyword:case ar.NumberKeyword:case ar.ObjectKeyword:case ar.StringKeyword:case ar.SymbolKeyword:case ar.UnknownKeyword:case ar.VoidKeyword:case ar.UndefinedKeyword:case ar.IntrinsicKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES[\"TS\".concat(ar[a.kind])]});case ar.NonNullExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSNonNullExpression,expression:this.convertChild(a.expression)});return this.convertChainExpression(f,a)}case ar.TypeLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeLiteral,members:a.members.map(f=>this.convertChild(f))});case ar.ArrayType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSArrayType,elementType:this.convertType(a.elementType)});case ar.IndexedAccessType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSIndexedAccessType,objectType:this.convertType(a.objectType),indexType:this.convertType(a.indexType)});case ar.ConditionalType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSConditionalType,checkType:this.convertType(a.checkType),extendsType:this.convertType(a.extendsType),trueType:this.convertType(a.trueType),falseType:this.convertType(a.falseType)});case ar.TypeQuery:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeQuery,exprName:this.convertType(a.exprName),typeParameters:a.typeArguments&&this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)});case ar.MappedType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSMappedType,typeParameter:this.convertType(a.typeParameter),nameType:(G=this.convertType(a.nameType))!==null&&G!==void 0?G:null});return a.readonlyToken&&(a.readonlyToken.kind===ar.ReadonlyKeyword?f.readonly=!0:f.readonly=(0,kr.getTextForTokenKind)(a.readonlyToken.kind)),a.questionToken&&(a.questionToken.kind===ar.QuestionToken?f.optional=!0:f.optional=(0,kr.getTextForTokenKind)(a.questionToken.kind)),a.type&&(f.typeAnnotation=this.convertType(a.type)),f}case ar.ParenthesizedExpression:return this.convertChild(a.expression,C);case ar.TypeAliasDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeAliasDeclaration,id:this.convertChild(a.name),typeAnnotation:this.convertType(a.type)});return(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),this.fixExports(a,f)}case ar.MethodSignature:return this.convertMethodSignature(a);case ar.PropertySignature:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSPropertySignature,optional:(0,kr.isOptional)(a)||void 0,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),typeAnnotation:a.type?this.convertTypeAnnotation(a.type,a):void 0,initializer:this.convertChild(a.initializer)||void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0}),T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),f}case ar.IndexSignature:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSIndexSignature,parameters:a.parameters.map(K=>this.convertChild(K))});a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(f.readonly=!0);let T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(f.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(f.static=!0),f}case ar.ConstructorType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSConstructorType,params:this.convertParameters(a.parameters),abstract:(0,kr.hasModifier)(ar.AbstractKeyword,a)});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.FunctionType:case ar.ConstructSignature:case ar.CallSignature:{let f=a.kind===ar.ConstructSignature?pr.AST_NODE_TYPES.TSConstructSignatureDeclaration:a.kind===ar.CallSignature?pr.AST_NODE_TYPES.TSCallSignatureDeclaration:pr.AST_NODE_TYPES.TSFunctionType,T=this.createNode(a,{type:f,params:this.convertParameters(a.parameters)});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),T}case ar.ExpressionWithTypeArguments:{let f=C.kind,T=f===ar.InterfaceDeclaration?pr.AST_NODE_TYPES.TSInterfaceHeritage:f===ar.HeritageClause?pr.AST_NODE_TYPES.TSClassImplements:pr.AST_NODE_TYPES.TSInstantiationExpression,K=this.createNode(a,{type:T,expression:this.convertChild(a.expression)});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),K}case ar.InterfaceDeclaration:{let f=(oe=a.heritageClauses)!==null&&oe!==void 0?oe:[],T=this.createNode(a,{type:pr.AST_NODE_TYPES.TSInterfaceDeclaration,body:this.createNode(a,{type:pr.AST_NODE_TYPES.TSInterfaceBody,body:a.members.map(K=>this.convertChild(K)),range:[a.members.pos-1,a.end]}),id:this.convertChild(a.name)});if(a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f.length>0){let K=[],b=[];for(let se of f)if(se.token===ar.ExtendsKeyword)for(let J of se.types)K.push(this.convertChild(J,a));else for(let J of se.types)b.push(this.convertChild(J,a));K.length&&(T.extends=K),b.length&&(T.implements=b)}return(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(T.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(T.declare=!0),this.fixExports(a,T)}case ar.TypePredicate:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypePredicate,asserts:a.assertsModifier!==void 0,parameterName:this.convertChild(a.parameterName),typeAnnotation:null});return a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),f.typeAnnotation.loc=f.typeAnnotation.typeAnnotation.loc,f.typeAnnotation.range=f.typeAnnotation.typeAnnotation.range),f}case ar.ImportType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSImportType,isTypeOf:!!a.isTypeOf,parameter:this.convertChild(a.argument),qualifier:this.convertChild(a.qualifier),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null});case ar.EnumDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSEnumDeclaration,id:this.convertChild(a.name),members:a.members.map(T=>this.convertChild(T))});return this.applyModifiersToResult(f,a.modifiers),this.fixExports(a,f)}case ar.EnumMember:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSEnumMember,id:this.convertChild(a.name)});return a.initializer&&(f.initializer=this.convertChild(a.initializer)),a.name.kind===oi.SyntaxKind.ComputedPropertyName&&(f.computed=!0),f}case ar.ModuleDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSModuleDeclaration,id:this.convertChild(a.name)});return a.body&&(f.body=this.convertChild(a.body)),this.applyModifiersToResult(f,a.modifiers),a.flags&oi.NodeFlags.GlobalAugmentation&&(f.global=!0),this.fixExports(a,f)}case ar.ParenthesizedType:return this.convertType(a.type);case ar.UnionType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSUnionType,types:a.types.map(f=>this.convertType(f))});case ar.IntersectionType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSIntersectionType,types:a.types.map(f=>this.convertType(f))});case ar.AsExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSAsExpression,expression:this.convertChild(a.expression),typeAnnotation:this.convertType(a.type)});case ar.InferType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSInferType,typeParameter:this.convertType(a.typeParameter)});case ar.LiteralType:return Lr.typescriptVersionIsAtLeast[\"4.0\"]&&a.literal.kind===ar.NullKeyword?this.createNode(a.literal,{type:pr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:pr.AST_NODE_TYPES.TSLiteralType,literal:this.convertType(a.literal)});case ar.TypeAssertionExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeAssertion,typeAnnotation:this.convertType(a.type),expression:this.convertChild(a.expression)});case ar.ImportEqualsDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSImportEqualsDeclaration,id:this.convertChild(a.name),moduleReference:this.convertChild(a.moduleReference),importKind:a.isTypeOnly?\"type\":\"value\",isExport:(0,kr.hasModifier)(ar.ExportKeyword,a)});case ar.ExternalModuleReference:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSExternalModuleReference,expression:this.convertChild(a.expression)});case ar.NamespaceExportDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSNamespaceExportDeclaration,id:this.convertChild(a.name)});case ar.AbstractKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSAbstractKeyword});case ar.TupleType:{let f=\"elementTypes\"in a?a.elementTypes.map(T=>this.convertType(T)):a.elements.map(T=>this.convertType(T));return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTupleType,elementTypes:f})}case ar.NamedTupleMember:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSNamedTupleMember,elementType:this.convertType(a.type,a),label:this.convertChild(a.name,a),optional:a.questionToken!=null});return a.dotDotDotToken?(f.range[0]=f.label.range[0],f.loc.start=f.label.loc.start,this.createNode(a,{type:pr.AST_NODE_TYPES.TSRestType,typeAnnotation:f})):f}case ar.OptionalType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSOptionalType,typeAnnotation:this.convertType(a.type)});case ar.RestType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSRestType,typeAnnotation:this.convertType(a.type)});case ar.TemplateLiteralType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTemplateLiteralType,quasis:[this.convertChild(a.head)],types:[]});return a.templateSpans.forEach(T=>{f.types.push(this.convertChild(T.type)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.ClassStaticBlockDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.StaticBlock,body:this.convertBodyExpressions(a.body.statements,a)});case ar.AssertEntry:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportAttribute,key:this.convertChild(a.name),value:this.convertChild(a.value)});default:return this.deeplyCopy(a)}}};M.Converter=e}}),Ud={};h1(Ud,{__assign:()=>v1,__asyncDelegator:()=>JU,__asyncGenerator:()=>BU,__asyncValues:()=>jU,__await:()=>Xy,__awaiter:()=>wU,__classPrivateFieldGet:()=>qU,__classPrivateFieldSet:()=>VU,__createBinding:()=>FU,__decorate:()=>NU,__exportStar:()=>MU,__extends:()=>kU,__generator:()=>OU,__importDefault:()=>WU,__importStar:()=>zU,__makeTemplateObject:()=>UU,__metadata:()=>IU,__param:()=>PU,__read:()=>r3,__rest:()=>AU,__spread:()=>LU,__spreadArrays:()=>RU,__values:()=>UT});function kU(M,re){m1(M,re);function Ve(){this.constructor=M}M.prototype=re===null?Object.create(re):(Ve.prototype=re.prototype,new Ve)}function AU(M,re){var Ve={};for(var Ke in M)Object.prototype.hasOwnProperty.call(M,Ke)&&re.indexOf(Ke)<0&&(Ve[Ke]=M[Ke]);if(M!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var oi=0,Ke=Object.getOwnPropertySymbols(M);oi=0;Lr--)(pr=M[Lr])&&(kr=(oi<3?pr(kr):oi>3?pr(re,Ve,kr):pr(re,Ve))||kr);return oi>3&&kr&&Object.defineProperty(re,Ve,kr),kr}function PU(M,re){return function(Ve,Ke){re(Ve,Ke,M)}}function IU(M,re){if(typeof Reflect==\"object\"&&typeof Reflect.metadata==\"function\")return Reflect.metadata(M,re)}function wU(M,re,Ve,Ke){function oi(kr){return kr instanceof Ve?kr:new Ve(function(pr){pr(kr)})}return new(Ve||(Ve=Promise))(function(kr,pr){function Lr(e){try{ke(Ke.next(e))}catch(a){pr(a)}}function ar(e){try{ke(Ke.throw(e))}catch(a){pr(a)}}function ke(e){e.done?kr(e.value):oi(e.value).then(Lr,ar)}ke((Ke=Ke.apply(M,re||[])).next())})}function OU(M,re){var Ve={label:0,sent:function(){if(kr[0]&1)throw kr[1];return kr[1]},trys:[],ops:[]},Ke,oi,kr,pr;return pr={next:Lr(0),throw:Lr(1),return:Lr(2)},typeof Symbol==\"function\"&&(pr[Symbol.iterator]=function(){return this}),pr;function Lr(ke){return function(e){return ar([ke,e])}}function ar(ke){if(Ke)throw new TypeError(\"Generator is already executing.\");for(;Ve;)try{if(Ke=1,oi&&(kr=ke[0]&2?oi.return:ke[0]?oi.throw||((kr=oi.return)&&kr.call(oi),0):oi.next)&&!(kr=kr.call(oi,ke[1])).done)return kr;switch(oi=0,kr&&(ke=[ke[0]&2,kr.value]),ke[0]){case 0:case 1:kr=ke;break;case 4:return Ve.label++,{value:ke[1],done:!1};case 5:Ve.label++,oi=ke[1],ke=[0];continue;case 7:ke=Ve.ops.pop(),Ve.trys.pop();continue;default:if(kr=Ve.trys,!(kr=kr.length>0&&kr[kr.length-1])&&(ke[0]===6||ke[0]===2)){Ve=0;continue}if(ke[0]===3&&(!kr||ke[1]>kr[0]&&ke[1]=M.length&&(M=void 0),{value:M&&M[Ke++],done:!M}}};throw new TypeError(re?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function r3(M,re){var Ve=typeof Symbol==\"function\"&&M[Symbol.iterator];if(!Ve)return M;var Ke=Ve.call(M),oi,kr=[],pr;try{for(;(re===void 0||re-- >0)&&!(oi=Ke.next()).done;)kr.push(oi.value)}catch(Lr){pr={error:Lr}}finally{try{oi&&!oi.done&&(Ve=Ke.return)&&Ve.call(Ke)}finally{if(pr)throw pr.error}}return kr}function LU(){for(var M=[],re=0;re1||Lr(C,w)})})}function Lr(C,w){try{ar(Ke[C](w))}catch(B){a(kr[0][3],B)}}function ar(C){C.value instanceof Xy?Promise.resolve(C.value.v).then(ke,e):a(kr[0][2],C)}function ke(C){Lr(\"next\",C)}function e(C){Lr(\"throw\",C)}function a(C,w){C(w),kr.shift(),kr.length&&Lr(kr[0][0],kr[0][1])}}function JU(M){var re,Ve;return re={},Ke(\"next\"),Ke(\"throw\",function(oi){throw oi}),Ke(\"return\"),re[Symbol.iterator]=function(){return this},re;function Ke(oi,kr){re[oi]=M[oi]?function(pr){return(Ve=!Ve)?{value:Xy(M[oi](pr)),done:oi===\"return\"}:kr?kr(pr):pr}:kr}}function jU(M){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var re=M[Symbol.asyncIterator],Ve;return re?re.call(M):(M=typeof UT==\"function\"?UT(M):M[Symbol.iterator](),Ve={},Ke(\"next\"),Ke(\"throw\"),Ke(\"return\"),Ve[Symbol.asyncIterator]=function(){return this},Ve);function Ke(kr){Ve[kr]=M[kr]&&function(pr){return new Promise(function(Lr,ar){pr=M[kr](pr),oi(Lr,ar,pr.done,pr.value)})}}function oi(kr,pr,Lr,ar){Promise.resolve(ar).then(function(ke){kr({value:ke,done:Lr})},pr)}}function UU(M,re){return Object.defineProperty?Object.defineProperty(M,\"raw\",{value:re}):M.raw=re,M}function zU(M){if(M&&M.__esModule)return M;var re={};if(M!=null)for(var Ve in M)Object.hasOwnProperty.call(M,Ve)&&(re[Ve]=M[Ve]);return re.default=M,re}function WU(M){return M&&M.__esModule?M:{default:M}}function qU(M,re){if(!re.has(M))throw new TypeError(\"attempted to get private field on non-instance\");return re.get(M)}function VU(M,re,Ve){if(!re.has(M))throw new TypeError(\"attempted to set private field on non-instance\");return re.set(M,Ve),Ve}var m1,v1,ug=Qy({\"node_modules/tslib/tslib.es6.js\"(){Ea(),m1=function(M,re){return m1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Ve,Ke){Ve.__proto__=Ke}||function(Ve,Ke){for(var oi in Ke)Ke.hasOwnProperty(oi)&&(Ve[oi]=Ke[oi])},m1(M,re)},v1=function(){return v1=Object.assign||function(re){for(var Ve,Ke=1,oi=arguments.length;Ke=re.SyntaxKind.FirstLiteralToken&&ai.kind<=re.SyntaxKind.LastLiteralToken}M.isLiteralExpression=ii;function mi(ai){return ai.kind===re.SyntaxKind.LiteralType}M.isLiteralTypeNode=mi;function pe(ai){return ai.kind===re.SyntaxKind.MappedType}M.isMappedTypeNode=pe;function or(ai){return ai.kind===re.SyntaxKind.MetaProperty}M.isMetaProperty=or;function qr(ai){return ai.kind===re.SyntaxKind.MethodDeclaration}M.isMethodDeclaration=qr;function si(ai){return ai.kind===re.SyntaxKind.MethodSignature}M.isMethodSignature=si;function Di(ai){return ai.kind===re.SyntaxKind.ModuleBlock}M.isModuleBlock=Di;function wi(ai){return ai.kind===re.SyntaxKind.ModuleDeclaration}M.isModuleDeclaration=wi;function Xi(ai){return ai.kind===re.SyntaxKind.NamedExports}M.isNamedExports=Xi;function et(ai){return ai.kind===re.SyntaxKind.NamedImports}M.isNamedImports=et;function Gi(ai){return wi(ai)&&ai.name.kind===re.SyntaxKind.Identifier&&ai.body!==void 0&&(ai.body.kind===re.SyntaxKind.ModuleBlock||Gi(ai.body))}M.isNamespaceDeclaration=Gi;function Wt(ai){return ai.kind===re.SyntaxKind.NamespaceImport}M.isNamespaceImport=Wt;function Zt(ai){return ai.kind===re.SyntaxKind.NamespaceExportDeclaration}M.isNamespaceExportDeclaration=Zt;function _r(ai){return ai.kind===re.SyntaxKind.NewExpression}M.isNewExpression=_r;function pi(ai){return ai.kind===re.SyntaxKind.NonNullExpression}M.isNonNullExpression=pi;function ae(ai){return ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isNoSubstitutionTemplateLiteral=ae;function Xe(ai){return ai.kind===re.SyntaxKind.NullKeyword}M.isNullLiteral=Xe;function Jr(ai){return ai.kind===re.SyntaxKind.NumericLiteral}M.isNumericLiteral=Jr;function ti(ai){switch(ai.kind){case re.SyntaxKind.StringLiteral:case re.SyntaxKind.NumericLiteral:case re.SyntaxKind.NoSubstitutionTemplateLiteral:return!0;default:return!1}}M.isNumericOrStringLikeLiteral=ti;function Ze(ai){return ai.kind===re.SyntaxKind.ObjectBindingPattern}M.isObjectBindingPattern=Ze;function Sr(ai){return ai.kind===re.SyntaxKind.ObjectLiteralExpression}M.isObjectLiteralExpression=Sr;function zr(ai){return ai.kind===re.SyntaxKind.OmittedExpression}M.isOmittedExpression=zr;function Wr(ai){return ai.kind===re.SyntaxKind.Parameter}M.isParameterDeclaration=Wr;function Je(ai){return ai.kind===re.SyntaxKind.ParenthesizedExpression}M.isParenthesizedExpression=Je;function xe(ai){return ai.kind===re.SyntaxKind.ParenthesizedType}M.isParenthesizedTypeNode=xe;function vr(ai){return ai.kind===re.SyntaxKind.PostfixUnaryExpression}M.isPostfixUnaryExpression=vr;function mr(ai){return ai.kind===re.SyntaxKind.PrefixUnaryExpression}M.isPrefixUnaryExpression=mr;function Ar(ai){return ai.kind===re.SyntaxKind.PropertyAccessExpression}M.isPropertyAccessExpression=Ar;function Oe(ai){return ai.kind===re.SyntaxKind.PropertyAssignment}M.isPropertyAssignment=Oe;function nr(ai){return ai.kind===re.SyntaxKind.PropertyDeclaration}M.isPropertyDeclaration=nr;function Mr(ai){return ai.kind===re.SyntaxKind.PropertySignature}M.isPropertySignature=Mr;function Pe(ai){return ai.kind===re.SyntaxKind.QualifiedName}M.isQualifiedName=Pe;function Ue(ai){return ai.kind===re.SyntaxKind.RegularExpressionLiteral}M.isRegularExpressionLiteral=Ue;function fr(ai){return ai.kind===re.SyntaxKind.ReturnStatement}M.isReturnStatement=fr;function De(ai){return ai.kind===re.SyntaxKind.SetAccessor}M.isSetAccessorDeclaration=De;function gr(ai){return ai.kind===re.SyntaxKind.ShorthandPropertyAssignment}M.isShorthandPropertyAssignment=gr;function Vr(ai){return ai.parameters!==void 0}M.isSignatureDeclaration=Vr;function Tr(ai){return ai.kind===re.SyntaxKind.SourceFile}M.isSourceFile=Tr;function vi(ai){return ai.kind===re.SyntaxKind.SpreadAssignment}M.isSpreadAssignment=vi;function Ui(ai){return ai.kind===re.SyntaxKind.SpreadElement}M.isSpreadElement=Ui;function Yi(ai){return ai.kind===re.SyntaxKind.StringLiteral}M.isStringLiteral=Yi;function Wi(ai){return ai.kind===re.SyntaxKind.SwitchStatement}M.isSwitchStatement=Wi;function ct(ai){return ai.kind===re.SyntaxKind.SyntaxList}M.isSyntaxList=ct;function Li(ai){return ai.kind===re.SyntaxKind.TaggedTemplateExpression}M.isTaggedTemplateExpression=Li;function nt(ai){return ai.kind===re.SyntaxKind.TemplateExpression}M.isTemplateExpression=nt;function Mt(ai){return ai.kind===re.SyntaxKind.TemplateExpression||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTemplateLiteral=Mt;function xt(ai){return ai.kind===re.SyntaxKind.StringLiteral||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTextualLiteral=xt;function ut(ai){return ai.kind===re.SyntaxKind.ThrowStatement}M.isThrowStatement=ut;function Dt(ai){return ai.kind===re.SyntaxKind.TryStatement}M.isTryStatement=Dt;function Rt(ai){return ai.kind===re.SyntaxKind.TupleType}M.isTupleTypeNode=Rt;function Ii(ai){return ai.kind===re.SyntaxKind.TypeAliasDeclaration}M.isTypeAliasDeclaration=Ii;function Ki(ai){return ai.kind===re.SyntaxKind.TypeAssertionExpression}M.isTypeAssertion=Ki;function Fi(ai){return ai.kind===re.SyntaxKind.TypeLiteral}M.isTypeLiteralNode=Fi;function ui(ai){return ai.kind===re.SyntaxKind.TypeOfExpression}M.isTypeOfExpression=ui;function Bt(ai){return ai.kind===re.SyntaxKind.TypeOperator}M.isTypeOperatorNode=Bt;function wt(ai){return ai.kind===re.SyntaxKind.TypeParameter}M.isTypeParameterDeclaration=wt;function na(ai){return ai.kind===re.SyntaxKind.TypePredicate}M.isTypePredicateNode=na;function Ai(ai){return ai.kind===re.SyntaxKind.TypeReference}M.isTypeReferenceNode=Ai;function Oi(ai){return ai.kind===re.SyntaxKind.TypeQuery}M.isTypeQueryNode=Oi;function ji(ai){return ai.kind===re.SyntaxKind.UnionType}M.isUnionTypeNode=ji;function Vi(ai){return ai.kind===re.SyntaxKind.VariableDeclaration}M.isVariableDeclaration=Vi;function at(ai){return ai.kind===re.SyntaxKind.VariableStatement}M.isVariableStatement=at;function At(ai){return ai.kind===re.SyntaxKind.VariableDeclarationList}M.isVariableDeclarationList=At;function ba(ai){return ai.kind===re.SyntaxKind.VoidExpression}M.isVoidExpression=ba;function $a(ai){return ai.kind===re.SyntaxKind.WhileStatement}M.isWhileStatement=$a;function Qa(ai){return ai.kind===re.SyntaxKind.WithStatement}M.isWithStatement=Qa}}),GU=Oa({\"node_modules/tsutils/typeguard/2.9/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isImportTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(KU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.ImportType}M.isImportTypeNode=Ke}}),HU=Oa({\"node_modules/tsutils/typeguard/3.0/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isSyntheticExpression=M.isRestTypeNode=M.isOptionalTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(GU(),M);var Ve=_u();function Ke(pr){return pr.kind===Ve.SyntaxKind.OptionalType}M.isOptionalTypeNode=Ke;function oi(pr){return pr.kind===Ve.SyntaxKind.RestType}M.isRestTypeNode=oi;function kr(pr){return pr.kind===Ve.SyntaxKind.SyntheticExpression}M.isSyntheticExpression=kr}}),i3=Oa({\"node_modules/tsutils/typeguard/3.2/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isBigIntLiteral=void 0;var re=(ug(),mp(Ud));re.__exportStar(HU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.BigIntLiteral}M.isBigIntLiteral=Ke}}),t3=Oa({\"node_modules/tsutils/typeguard/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(i3(),M)}}),XU=Oa({\"node_modules/tsutils/typeguard/2.8/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isUniqueESSymbolType=M.isUnionType=M.isUnionOrIntersectionType=M.isTypeVariable=M.isTypeReference=M.isTypeParameter=M.isSubstitutionType=M.isObjectType=M.isLiteralType=M.isIntersectionType=M.isInterfaceType=M.isInstantiableType=M.isIndexedAccessype=M.isIndexedAccessType=M.isGenericType=M.isEnumType=M.isConditionalType=void 0;var re=_u();function Ve(p){return(p.flags&re.TypeFlags.Conditional)!==0}M.isConditionalType=Ve;function Ke(p){return(p.flags&re.TypeFlags.Enum)!==0}M.isEnumType=Ke;function oi(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isGenericType=oi;function kr(p){return(p.flags&re.TypeFlags.IndexedAccess)!==0}M.isIndexedAccessType=kr;function pr(p){return(p.flags&re.TypeFlags.Index)!==0}M.isIndexedAccessype=pr;function Lr(p){return(p.flags&re.TypeFlags.Instantiable)!==0}M.isInstantiableType=Lr;function ar(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0}M.isInterfaceType=ar;function ke(p){return(p.flags&re.TypeFlags.Intersection)!==0}M.isIntersectionType=ke;function e(p){return(p.flags&(re.TypeFlags.StringOrNumberLiteral|re.TypeFlags.BigIntLiteral))!==0}M.isLiteralType=e;function a(p){return(p.flags&re.TypeFlags.Object)!==0}M.isObjectType=a;function C(p){return(p.flags&re.TypeFlags.Substitution)!==0}M.isSubstitutionType=C;function w(p){return(p.flags&re.TypeFlags.TypeParameter)!==0}M.isTypeParameter=w;function B(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isTypeReference=B;function E(p){return(p.flags&re.TypeFlags.TypeVariable)!==0}M.isTypeVariable=E;function Q(p){return(p.flags&re.TypeFlags.UnionOrIntersection)!==0}M.isUnionOrIntersectionType=Q;function le(p){return(p.flags&re.TypeFlags.Union)!==0}M.isUnionType=le;function N(p){return(p.flags&re.TypeFlags.UniqueESSymbol)!==0}M.isUniqueESSymbolType=N}}),D4=Oa({\"node_modules/tsutils/typeguard/2.9/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(XU(),M)}}),QU=Oa({\"node_modules/tsutils/typeguard/3.0/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isTupleTypeReference=M.isTupleType=void 0;var re=(ug(),mp(Ud));re.__exportStar(D4(),M);var Ve=_u(),Ke=D4();function oi(pr){return(pr.flags&Ve.TypeFlags.Object&&pr.objectFlags&Ve.ObjectFlags.Tuple)!==0}M.isTupleType=oi;function kr(pr){return Ke.isTypeReference(pr)&&oi(pr.target)}M.isTupleTypeReference=kr}}),a3=Oa({\"node_modules/tsutils/typeguard/3.2/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(QU(),M)}}),YU=Oa({\"node_modules/tsutils/typeguard/3.2/index.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(i3(),M),re.__exportStar(a3(),M)}}),$U=Oa({\"node_modules/tsutils/typeguard/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(a3(),M)}}),ZU=Oa({\"node_modules/tsutils/util/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.getBaseClassMemberOfClassElement=M.getIteratorYieldResultFromIteratorResult=M.getInstanceTypeOfClassLikeDeclaration=M.getConstructorTypeOfClassLikeDeclaration=M.getSymbolOfClassLikeDeclaration=M.getPropertyNameFromType=M.symbolHasReadonlyDeclaration=M.isPropertyReadonlyInType=M.getWellKnownSymbolPropertyOfType=M.getPropertyOfType=M.isBooleanLiteralType=M.isFalsyType=M.isThenableType=M.someTypePart=M.intersectionTypeParts=M.unionTypeParts=M.getCallSignaturesOfType=M.isTypeAssignableToString=M.isTypeAssignableToNumber=M.isOptionalChainingUndefinedMarkerType=M.removeOptionalChainingUndefinedMarkerType=M.removeOptionalityFromType=M.isEmptyObjectType=void 0;var re=_u(),Ve=$U(),Ke=n3(),oi=t3();function kr(F){if(Ve.isObjectType(F)&&F.objectFlags&re.ObjectFlags.Anonymous&&F.getProperties().length===0&&F.getCallSignatures().length===0&&F.getConstructSignatures().length===0&&F.getStringIndexType()===void 0&&F.getNumberIndexType()===void 0){let x=F.getBaseTypes();return x===void 0||x.every(kr)}return!1}M.isEmptyObjectType=kr;function pr(F,x){if(!Lr(x,re.TypeFlags.Undefined))return x;let X=Lr(x,re.TypeFlags.Null);return x=F.getNonNullableType(x),X?F.getNullableType(x,re.TypeFlags.Null):x}M.removeOptionalityFromType=pr;function Lr(F,x){for(let X of B(F))if(Ke.isTypeFlagSet(X,x))return!0;return!1}function ar(F,x){if(!Ve.isUnionType(x))return ke(F,x)?x.getNonNullableType():x;let X=0,$=!1;for(let A of x.types)ke(F,A)?$=!0:X|=A.flags;return $?F.getNullableType(x.getNonNullableType(),X):x}M.removeOptionalChainingUndefinedMarkerType=ar;function ke(F,x){return Ke.isTypeFlagSet(x,re.TypeFlags.Undefined)&&F.getNullableType(x.getNonNullableType(),re.TypeFlags.Undefined)!==x}M.isOptionalChainingUndefinedMarkerType=ke;function e(F,x){return C(F,x,re.TypeFlags.NumberLike)}M.isTypeAssignableToNumber=e;function a(F,x){return C(F,x,re.TypeFlags.StringLike)}M.isTypeAssignableToString=a;function C(F,x,X){X|=re.TypeFlags.Any;let $;return function A(y){if(Ve.isTypeParameter(y)&&y.symbol!==void 0&&y.symbol.declarations!==void 0){if($===void 0)$=new Set([y]);else if(!$.has(y))$.add(y);else return!1;let V=y.symbol.declarations[0];return V.constraint===void 0?!0:A(F.getTypeFromTypeNode(V.constraint))}return Ve.isUnionType(y)?y.types.every(A):Ve.isIntersectionType(y)?y.types.some(A):Ke.isTypeFlagSet(y,X)}(x)}function w(F){if(Ve.isUnionType(F)){let x=[];for(let X of F.types)x.push(...w(X));return x}if(Ve.isIntersectionType(F)){let x;for(let X of F.types){let $=w(X);if($.length!==0){if(x!==void 0)return[];x=$}}return x===void 0?[]:x}return F.getCallSignatures()}M.getCallSignaturesOfType=w;function B(F){return Ve.isUnionType(F)?F.types:[F]}M.unionTypeParts=B;function E(F){return Ve.isIntersectionType(F)?F.types:[F]}M.intersectionTypeParts=E;function Q(F,x,X){return x(F)?F.types.some(X):X(F)}M.someTypePart=Q;function le(F,x){let X=arguments.length>2&&arguments[2]!==void 0?arguments[2]:F.getTypeAtLocation(x);for(let $ of B(F.getApparentType(X))){let A=$.getProperty(\"then\");if(A===void 0)continue;let y=F.getTypeOfSymbolAtLocation(A,x);for(let V of B(y))for(let L of V.getCallSignatures())if(L.parameters.length!==0&&N(F,L.parameters[0],x))return!0}return!1}M.isThenableType=le;function N(F,x,X){let $=F.getApparentType(F.getTypeOfSymbolAtLocation(x,X));if(x.valueDeclaration.dotDotDotToken&&($=$.getNumberIndexType(),$===void 0))return!1;for(let A of B($))if(A.getCallSignatures().length!==0)return!0;return!1}function p(F){return F.flags&(re.TypeFlags.Undefined|re.TypeFlags.Null|re.TypeFlags.Void)?!0:Ve.isLiteralType(F)?!F.value:m(F,!1)}M.isFalsyType=p;function m(F,x){return Ke.isTypeFlagSet(F,re.TypeFlags.BooleanLiteral)&&F.intrinsicName===(x?\"true\":\"false\")}M.isBooleanLiteralType=m;function G(F,x){return x.startsWith(\"__\")?F.getProperties().find(X=>X.escapedName===x):F.getProperty(x)}M.getPropertyOfType=G;function oe(F,x,X){let $=\"__@\"+x;for(let A of F.getProperties()){if(!A.name.startsWith($))continue;let y=X.getApparentType(X.getTypeAtLocation(A.valueDeclaration.name.expression)).symbol;if(A.escapedName===f(X,y,x))return A}}M.getWellKnownSymbolPropertyOfType=oe;function f(F,x,X){let $=x&&F.getTypeOfSymbolAtLocation(x,x.valueDeclaration).getProperty(X),A=$&&F.getTypeOfSymbolAtLocation($,$.valueDeclaration);return A&&Ve.isUniqueESSymbolType(A)?A.escapedName:\"__@\"+X}function T(F,x,X){let $=!1,A=!1;for(let y of B(F))if(G(y,x)===void 0){let V=(Ke.isNumericPropertyName(x)?X.getIndexInfoOfType(y,re.IndexKind.Number):void 0)||X.getIndexInfoOfType(y,re.IndexKind.String);if(V!==void 0&&V.isReadonly){if($)return!0;A=!0}}else{if(A||K(y,x,X))return!0;$=!0}return!1}M.isPropertyReadonlyInType=T;function K(F,x,X){return Q(F,Ve.isIntersectionType,$=>{let A=G($,x);if(A===void 0)return!1;if(A.flags&re.SymbolFlags.Transient){if(/^(?:[1-9]\\d*|0)$/.test(x)&&Ve.isTupleTypeReference($))return $.target.readonly;switch(b($,x,X)){case!0:return!0;case!1:return!1;default:}}return Ke.isSymbolFlagSet(A,re.SymbolFlags.ValueModule)||se(A,X)})}function b(F,x,X){if(!Ve.isObjectType(F)||!Ke.isObjectFlagSet(F,re.ObjectFlags.Mapped))return;let $=F.symbol.declarations[0];return $.readonlyToken!==void 0&&!/^__@[^@]+$/.test(x)?$.readonlyToken.kind!==re.SyntaxKind.MinusToken:T(F.modifiersType,x,X)}function se(F,x){return(F.flags&re.SymbolFlags.Accessor)===re.SymbolFlags.GetAccessor||F.declarations!==void 0&&F.declarations.some(X=>Ke.isModifierFlagSet(X,re.ModifierFlags.Readonly)||oi.isVariableDeclaration(X)&&Ke.isNodeFlagSet(X.parent,re.NodeFlags.Const)||oi.isCallExpression(X)&&Ke.isReadonlyAssignmentDeclaration(X,x)||oi.isEnumMember(X)||(oi.isPropertyAssignment(X)||oi.isShorthandPropertyAssignment(X))&&Ke.isInConstContext(X.parent))}M.symbolHasReadonlyDeclaration=se;function J(F){if(F.flags&(re.TypeFlags.StringLiteral|re.TypeFlags.NumberLiteral)){let x=String(F.value);return{displayName:x,symbolName:re.escapeLeadingUnderscores(x)}}if(Ve.isUniqueESSymbolType(F))return{displayName:\"[\".concat(F.symbol?\"\".concat(ie(F.symbol)?\"Symbol.\":\"\").concat(F.symbol.name):F.escapedName.replace(/^__@|@\\d+$/g,\"\"),\"]\"),symbolName:F.escapedName}}M.getPropertyNameFromType=J;function ie(F){return Ke.isSymbolFlagSet(F,re.SymbolFlags.Property)&&F.valueDeclaration!==void 0&&oi.isInterfaceDeclaration(F.valueDeclaration.parent)&&F.valueDeclaration.parent.name.text===\"SymbolConstructor\"&&R(F.valueDeclaration.parent)}function R(F){return Ke.isNodeFlagSet(F.parent,re.NodeFlags.GlobalAugmentation)||oi.isSourceFile(F.parent)&&!re.isExternalModule(F.parent)}function q(F,x){var X;return x.getSymbolAtLocation((X=F.name)!==null&&X!==void 0?X:Ke.getChildOfKind(F,re.SyntaxKind.ClassKeyword))}M.getSymbolOfClassLikeDeclaration=q;function O(F,x){return F.kind===re.SyntaxKind.ClassExpression?x.getTypeAtLocation(F):x.getTypeOfSymbolAtLocation(q(F,x),F)}M.getConstructorTypeOfClassLikeDeclaration=O;function ve(F,x){return F.kind===re.SyntaxKind.ClassDeclaration?x.getTypeAtLocation(F):x.getDeclaredTypeOfSymbol(q(F,x))}M.getInstanceTypeOfClassLikeDeclaration=ve;function ee(F,x,X){return Ve.isUnionType(F)&&F.types.find($=>{let A=$.getProperty(\"done\");return A!==void 0&&m(pr(X,X.getTypeOfSymbolAtLocation(A,x)),!1)})||F}M.getIteratorYieldResultFromIteratorResult=ee;function he(F,x){if(!oi.isClassLikeDeclaration(F.parent))return;let X=Ke.getBaseOfClassLikeExpression(F.parent);if(X===void 0)return;let $=Ke.getSingleLateBoundPropertyNameOfPropertyName(F.name,x);if($===void 0)return;let A=x.getTypeAtLocation(Ke.hasModifier(F.modifiers,re.SyntaxKind.StaticKeyword)?X.expression:X);return G(A,$.symbolName)}M.getBaseClassMemberOfClassElement=he}}),n3=Oa({\"node_modules/tsutils/util/util.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isValidIdentifier=M.getLineBreakStyle=M.getLineRanges=M.forEachComment=M.forEachTokenWithTrivia=M.forEachToken=M.isFunctionWithBody=M.hasOwnThisReference=M.isBlockScopeBoundary=M.isFunctionScopeBoundary=M.isTypeScopeBoundary=M.isScopeBoundary=M.ScopeBoundarySelector=M.ScopeBoundary=M.isInSingleStatementContext=M.isBlockScopedDeclarationStatement=M.isBlockScopedVariableDeclaration=M.isBlockScopedVariableDeclarationList=M.getVariableDeclarationKind=M.VariableDeclarationKind=M.forEachDeclaredVariable=M.forEachDestructuringIdentifier=M.getPropertyName=M.getWrappedNodeAtPosition=M.getAstNodeAtPosition=M.commentText=M.isPositionInComment=M.getCommentAtPosition=M.getTokenAtPosition=M.getNextToken=M.getPreviousToken=M.getNextStatement=M.getPreviousStatement=M.isModifierFlagSet=M.isObjectFlagSet=M.isSymbolFlagSet=M.isTypeFlagSet=M.isNodeFlagSet=M.hasAccessModifier=M.isParameterProperty=M.hasModifier=M.getModifier=M.isThisParameter=M.isKeywordKind=M.isJsDocKind=M.isTypeNodeKind=M.isAssignmentKind=M.isNodeKind=M.isTokenKind=M.getChildOfKind=void 0,M.getBaseOfClassLikeExpression=M.hasExhaustiveCaseClauses=M.formatPseudoBigInt=M.unwrapParentheses=M.getSingleLateBoundPropertyNameOfPropertyName=M.getLateBoundPropertyNamesOfPropertyName=M.getLateBoundPropertyNames=M.getPropertyNameOfWellKnownSymbol=M.isWellKnownSymbolLiterally=M.isBindableObjectDefinePropertyCall=M.isReadonlyAssignmentDeclaration=M.isInConstContext=M.isConstAssertion=M.getTsCheckDirective=M.getCheckJsDirective=M.isAmbientModule=M.isCompilerOptionEnabled=M.isStrictCompilerOptionEnabled=M.getIIFE=M.isAmbientModuleBlock=M.isStatementInAmbientContext=M.findImportLikeNodes=M.findImports=M.ImportKind=M.parseJsDocOfNode=M.getJsDoc=M.canHaveJsDoc=M.isReassignmentTarget=M.getAccessKind=M.AccessKind=M.isExpressionValueUsed=M.getDeclarationOfBindingElement=M.hasSideEffects=M.SideEffectOptions=M.isSameLine=M.isNumericPropertyName=M.isValidJsxIdentifier=M.isValidNumericLiteral=M.isValidPropertyName=M.isValidPropertyAccess=void 0;var re=_u(),Ve=t3(),Ke=YU(),oi=ZU();function kr(ae,Xe,Jr){for(let ti of ae.getChildren(Jr))if(ti.kind===Xe)return ti}M.getChildOfKind=kr;function pr(ae){return ae>=re.SyntaxKind.FirstToken&&ae<=re.SyntaxKind.LastToken}M.isTokenKind=pr;function Lr(ae){return ae>=re.SyntaxKind.FirstNode}M.isNodeKind=Lr;function ar(ae){return ae>=re.SyntaxKind.FirstAssignment&&ae<=re.SyntaxKind.LastAssignment}M.isAssignmentKind=ar;function ke(ae){return ae>=re.SyntaxKind.FirstTypeNode&&ae<=re.SyntaxKind.LastTypeNode}M.isTypeNodeKind=ke;function e(ae){return ae>=re.SyntaxKind.FirstJSDocNode&&ae<=re.SyntaxKind.LastJSDocNode}M.isJsDocKind=e;function a(ae){return ae>=re.SyntaxKind.FirstKeyword&&ae<=re.SyntaxKind.LastKeyword}M.isKeywordKind=a;function C(ae){return ae.name.kind===re.SyntaxKind.Identifier&&ae.name.originalKeywordKind===re.SyntaxKind.ThisKeyword}M.isThisParameter=C;function w(ae,Xe){if(ae.modifiers!==void 0){for(let Jr of ae.modifiers)if(Jr.kind===Xe)return Jr}}M.getModifier=w;function B(ae){if(ae===void 0)return!1;for(var Xe=arguments.length,Jr=new Array(Xe>1?Xe-1:0),ti=1;ti0)return Xe.statements[Jr-1]}}M.getPreviousStatement=m;function G(ae){let Xe=ae.parent;if(Ve.isBlockLike(Xe)){let Jr=Xe.statements.indexOf(ae);if(Jr=ae.end))return pr(ae.kind)?ae:K(ae,Xe,Jr!=null?Jr:ae.getSourceFile(),ti===!0)}M.getTokenAtPosition=T;function K(ae,Xe,Jr,ti){if(!ti&&(ae=R(ae,Xe),pr(ae.kind)))return ae;e:for(;;){for(let Ze of ae.getChildren(Jr))if(Ze.end>Xe&&(ti||Ze.kind!==re.SyntaxKind.JSDocComment)){if(pr(Ze.kind))return Ze;ae=Ze;continue e}return}}function b(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae,ti=T(Jr,Xe,ae);if(ti===void 0||ti.kind===re.SyntaxKind.JsxText||Xe>=ti.end-(re.tokenToString(ti.kind)||\"\").length)return;let Ze=ti.pos===0?(re.getShebang(ae.text)||\"\").length:ti.pos;return Ze!==0&&re.forEachTrailingCommentRange(ae.text,Ze,se,Xe)||re.forEachLeadingCommentRange(ae.text,Ze,se,Xe)}M.getCommentAtPosition=b;function se(ae,Xe,Jr,ti,Ze){return Ze>=ae&&ZeXe||ae.end<=Xe)){for(;Lr(ae.kind);){let Jr=re.forEachChild(ae,ti=>ti.pos<=Xe&&ti.end>Xe?ti:void 0);if(Jr===void 0)break;ae=Jr}return ae}}M.getAstNodeAtPosition=R;function q(ae,Xe){if(ae.node.pos>Xe||ae.node.end<=Xe)return;e:for(;;){for(let Jr of ae.children){if(Jr.node.pos>Xe)return ae;if(Jr.node.end>Xe){ae=Jr;continue e}}return ae}}M.getWrappedNodeAtPosition=q;function O(ae){if(ae.kind===re.SyntaxKind.ComputedPropertyName){let Xe=Gi(ae.expression);if(Ve.isPrefixUnaryExpression(Xe)){let Jr=!1;switch(Xe.operator){case re.SyntaxKind.MinusToken:Jr=!0;case re.SyntaxKind.PlusToken:return Ve.isNumericLiteral(Xe.operand)?\"\".concat(Jr?\"-\":\"\").concat(Xe.operand.text):Ke.isBigIntLiteral(Xe.operand)?\"\".concat(Jr?\"-\":\"\").concat(Xe.operand.text.slice(0,-1)):void 0;default:return}}return Ke.isBigIntLiteral(Xe)?Xe.text.slice(0,-1):Ve.isNumericOrStringLikeLiteral(Xe)?Xe.text:void 0}return ae.kind===re.SyntaxKind.PrivateIdentifier?void 0:ae.text}M.getPropertyName=O;function ve(ae,Xe){for(let Jr of ae.elements){if(Jr.kind!==re.SyntaxKind.BindingElement)continue;let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDestructuringIdentifier=ve;function ee(ae,Xe){for(let Jr of ae.declarations){let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDeclaredVariable=ee;var he;(function(ae){ae[ae.Var=0]=\"Var\",ae[ae.Let=1]=\"Let\",ae[ae.Const=2]=\"Const\"})(he=M.VariableDeclarationKind||(M.VariableDeclarationKind={}));function F(ae){return ae.flags&re.NodeFlags.Let?1:ae.flags&re.NodeFlags.Const?2:0}M.getVariableDeclarationKind=F;function x(ae){return(ae.flags&re.NodeFlags.BlockScoped)!==0}M.isBlockScopedVariableDeclarationList=x;function X(ae){let Xe=ae.parent;return Xe.kind===re.SyntaxKind.CatchClause||x(Xe)}M.isBlockScopedVariableDeclaration=X;function $(ae){switch(ae.kind){case re.SyntaxKind.VariableStatement:return x(ae.declarationList);case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:return!0;default:return!1}}M.isBlockScopedDeclarationStatement=$;function A(ae){switch(ae.parent.kind){case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.WhileStatement:case re.SyntaxKind.DoStatement:case re.SyntaxKind.IfStatement:case re.SyntaxKind.WithStatement:case re.SyntaxKind.LabeledStatement:return!0;default:return!1}}M.isInSingleStatementContext=A;var y;(function(ae){ae[ae.None=0]=\"None\",ae[ae.Function=1]=\"Function\",ae[ae.Block=2]=\"Block\",ae[ae.Type=4]=\"Type\",ae[ae.ConditionalType=8]=\"ConditionalType\"})(y=M.ScopeBoundary||(M.ScopeBoundary={}));var V;(function(ae){ae[ae.Function=1]=\"Function\",ae[ae.Block=3]=\"Block\",ae[ae.Type=7]=\"Type\",ae[ae.InferType=8]=\"InferType\"})(V=M.ScopeBoundarySelector||(M.ScopeBoundarySelector={}));function L(ae){return k(ae)||Y(ae)||P(ae)}M.isScopeBoundary=L;function P(ae){switch(ae.kind){case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:case re.SyntaxKind.MappedType:return 4;case re.SyntaxKind.ConditionalType:return 8;default:return 0}}M.isTypeScopeBoundary=P;function k(ae){switch(ae.kind){case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:case re.SyntaxKind.Constructor:case re.SyntaxKind.ModuleDeclaration:case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.MethodSignature:case re.SyntaxKind.CallSignature:case re.SyntaxKind.ConstructSignature:case re.SyntaxKind.ConstructorType:case re.SyntaxKind.FunctionType:return 1;case re.SyntaxKind.SourceFile:return re.isExternalModule(ae)?1:0;default:return 0}}M.isFunctionScopeBoundary=k;function Y(ae){switch(ae.kind){case re.SyntaxKind.Block:let Xe=ae.parent;return Xe.kind!==re.SyntaxKind.CatchClause&&(Xe.kind===re.SyntaxKind.SourceFile||!k(Xe))?2:0;case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.CaseBlock:case re.SyntaxKind.CatchClause:case re.SyntaxKind.WithStatement:return 2;default:return 0}}M.isBlockScopeBoundary=Y;function U(ae){switch(ae.kind){case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.FunctionExpression:return!0;case re.SyntaxKind.FunctionDeclaration:return ae.body!==void 0;case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:return ae.parent.kind===re.SyntaxKind.ObjectLiteralExpression;default:return!1}}M.hasOwnThisReference=U;function j(ae){switch(ae.kind){case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.Constructor:return ae.body!==void 0;case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:return!0;default:return!1}}M.isFunctionWithBody=j;function H(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=[];for(;;){if(pr(ae.kind))Xe(ae);else if(ae.kind!==re.SyntaxKind.JSDocComment){let Ze=ae.getChildren(Jr);if(Ze.length===1){ae=Ze[0];continue}for(let Sr=Ze.length-1;Sr>=0;--Sr)ti.push(Ze[Sr])}if(ti.length===0)break;ae=ti.pop()}}M.forEachToken=H;function I(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=re.createScanner(Jr.languageVersion,!1,Jr.languageVariant,ti);return H(ae,Sr=>{let zr=Sr.kind===re.SyntaxKind.JsxText||Sr.pos===Sr.end?Sr.pos:Sr.getStart(Jr);if(zr!==Sr.pos){Ze.setTextPos(Sr.pos);let Wr=Ze.scan(),Je=Ze.getTokenPos();for(;Je2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=Jr.languageVariant!==re.LanguageVariant.JSX;return H(ae,zr=>{if(zr.pos!==zr.end&&(zr.kind!==re.SyntaxKind.JsxText&&re.forEachLeadingCommentRange(ti,zr.pos===0?(re.getShebang(ti)||\"\").length:zr.pos,Sr),Ze||d(zr)))return re.forEachTrailingCommentRange(ti,zr.end,Sr)},Jr);function Sr(zr,Wr,Je){Xe(ti,{pos:zr,end:Wr,kind:Je})}}M.forEachComment=l;function d(ae){switch(ae.kind){case re.SyntaxKind.CloseBraceToken:return ae.parent.kind!==re.SyntaxKind.JsxExpression||!D(ae.parent.parent);case re.SyntaxKind.GreaterThanToken:switch(ae.parent.kind){case re.SyntaxKind.JsxOpeningElement:return ae.end!==ae.parent.end;case re.SyntaxKind.JsxOpeningFragment:return!1;case re.SyntaxKind.JsxSelfClosingElement:return ae.end!==ae.parent.end||!D(ae.parent.parent);case re.SyntaxKind.JsxClosingElement:case re.SyntaxKind.JsxClosingFragment:return!D(ae.parent.parent.parent)}}return!0}function D(ae){return ae.kind===re.SyntaxKind.JsxElement||ae.kind===re.SyntaxKind.JsxFragment}function fe(ae){let Xe=ae.getLineStarts(),Jr=[],ti=Xe.length,Ze=ae.text,Sr=0;for(let zr=1;zrSr&&re.isLineBreak(Ze.charCodeAt(Je-1));--Je);Jr.push({pos:Sr,end:Wr,contentLength:Je-Sr}),Sr=Wr}return Jr.push({pos:Sr,end:ae.end,contentLength:ae.end-Sr}),Jr}M.getLineRanges=fe;function g(ae){let Xe=ae.getLineStarts();return Xe.length===1||Xe[1]<2||ae.text[Xe[1]-2]!==\"\\r\"?`\n`:`\\r\n`}M.getLineBreakStyle=g;var ne;function ue(ae,Xe){return ne===void 0?ne=re.createScanner(Xe,!1,void 0,ae):(ne.setScriptTarget(Xe),ne.setText(ae)),ne.scan(),ne}function We(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.isIdentifier()&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidIdentifier=We;function Fe(ae){return ae>=65536?2:1}function Z(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=ae.codePointAt(0);if(!re.isIdentifierStart(Jr,Xe))return!1;for(let ti=Fe(Jr);ti1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(Z(ae,Xe))return!0;let Jr=ue(ae,Xe);return Jr.getTextPos()===ae.length&&Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTokenValue()===ae}M.isValidPropertyName=Be;function ge(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidNumericLiteral=ge;function Re(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=!1,ti=ae.codePointAt(0);if(!re.isIdentifierStart(ti,Xe))return!1;for(let Ze=Fe(ti);Ze2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile();if(er(ae)&&ae.kind!==re.SyntaxKind.EndOfFileToken){let ti=ir(ae,Jr);if(ti.length!==0||!Xe)return ti}return Ye(ae,ae.getStart(Jr),Jr,Xe)}M.parseJsDocOfNode=Cr;function Ye(ae,Xe,Jr,ti){let Ze=re[ti&&Ee(Jr,ae.pos,Xe)?\"forEachTrailingCommentRange\":\"forEachLeadingCommentRange\"](Jr.text,ae.pos,(vr,mr,Ar)=>Ar===re.SyntaxKind.MultiLineCommentTrivia&&Jr.text[vr+2]===\"*\"?{pos:vr}:void 0);if(Ze===void 0)return[];let Sr=Ze.pos,zr=Jr.text.slice(Sr,Xe),Wr=re.createSourceFile(\"jsdoc.ts\",\"\".concat(zr,\"var a;\"),Jr.languageVersion),Je=ir(Wr.statements[0],Wr);for(let vr of Je)xe(vr,ae);return Je;function xe(vr,mr){return vr.pos+=Sr,vr.end+=Sr,vr.parent=mr,re.forEachChild(vr,Ar=>xe(Ar,vr),Ar=>{Ar.pos+=Sr,Ar.end+=Sr;for(let Oe of Ar)xe(Oe,vr)})}}var Br;(function(ae){ae[ae.ImportDeclaration=1]=\"ImportDeclaration\",ae[ae.ImportEquals=2]=\"ImportEquals\",ae[ae.ExportFrom=4]=\"ExportFrom\",ae[ae.DynamicImport=8]=\"DynamicImport\",ae[ae.Require=16]=\"Require\",ae[ae.ImportType=32]=\"ImportType\",ae[ae.All=63]=\"All\",ae[ae.AllImports=59]=\"AllImports\",ae[ae.AllStaticImports=3]=\"AllStaticImports\",ae[ae.AllImportExpressions=24]=\"AllImportExpressions\",ae[ae.AllRequireLike=18]=\"AllRequireLike\",ae[ae.AllNestedImports=56]=\"AllNestedImports\",ae[ae.AllTopLevelImports=7]=\"AllTopLevelImports\"})(Br=M.ImportKind||(M.ImportKind={}));function Er(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ti=[];for(let Sr of Ne(ae,Xe,Jr))switch(Sr.kind){case re.SyntaxKind.ImportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.ImportEqualsDeclaration:Ze(Sr.moduleReference.expression);break;case re.SyntaxKind.ExportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.CallExpression:Ze(Sr.arguments[0]);break;case re.SyntaxKind.ImportType:Ve.isLiteralTypeNode(Sr.argument)&&Ze(Sr.argument.literal);break;default:throw new Error(\"unexpected node\")}return ti;function Ze(Sr){Ve.isTextualLiteral(Sr)&&ti.push(Sr)}}M.findImports=Er;function Ne(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return new n(ae,Xe,Jr).find()}M.findImportLikeNodes=Ne;var n=class{constructor(ae,Xe,Jr){this._sourceFile=ae,this._options=Xe,this._ignoreFileName=Jr,this._result=[]}find(){return this._sourceFile.isDeclarationFile&&(this._options&=-25),this._options&7&&this._findImports(this._sourceFile.statements),this._options&56&&this._findNestedImports(),this._result}_findImports(ae){for(let Xe of ae)Ve.isImportDeclaration(Xe)?this._options&1&&this._result.push(Xe):Ve.isImportEqualsDeclaration(Xe)?this._options&2&&Xe.moduleReference.kind===re.SyntaxKind.ExternalModuleReference&&this._result.push(Xe):Ve.isExportDeclaration(Xe)?Xe.moduleSpecifier!==void 0&&this._options&4&&this._result.push(Xe):Ve.isModuleDeclaration(Xe)&&this._findImportsInModule(Xe)}_findImportsInModule(ae){if(ae.body!==void 0){if(ae.body.kind===re.SyntaxKind.ModuleDeclaration)return this._findImportsInModule(ae.body);this._findImports(ae.body.statements)}}_findNestedImports(){let ae=this._ignoreFileName||(this._sourceFile.flags&re.NodeFlags.JavaScriptFile)!==0,Xe,Jr;if((this._options&56)===16){if(!ae)return;Xe=/\\brequire\\s*[1&&this._result.push(Ze.parent)}}else Ze.kind===re.SyntaxKind.Identifier&&Ze.end-7===ti.index&&Ze.parent.kind===re.SyntaxKind.CallExpression&&Ze.parent.expression===Ze&&Ze.parent.arguments.length===1&&this._result.push(Ze.parent)}}};function lr(ae){for(;ae.flags&re.NodeFlags.NestedNamespace;)ae=ae.parent;return B(ae.modifiers,re.SyntaxKind.DeclareKeyword)||be(ae.parent)}M.isStatementInAmbientContext=lr;function be(ae){for(;ae.kind===re.SyntaxKind.ModuleBlock;){do ae=ae.parent;while(ae.flags&re.NodeFlags.NestedNamespace);if(B(ae.modifiers,re.SyntaxKind.DeclareKeyword))return!0;ae=ae.parent}return!1}M.isAmbientModuleBlock=be;function Ge(ae){let Xe=ae.parent;for(;Xe.kind===re.SyntaxKind.ParenthesizedExpression;)Xe=Xe.parent;return Ve.isCallExpression(Xe)&&ae.end<=Xe.expression.end?Xe:void 0}M.getIIFE=Ge;function ur(ae,Xe){return(ae.strict?ae[Xe]!==!1:ae[Xe]===!0)&&(Xe!==\"strictPropertyInitialization\"||ur(ae,\"strictNullChecks\"))}M.isStrictCompilerOptionEnabled=ur;function yr(ae,Xe){switch(Xe){case\"stripInternal\":case\"declarationMap\":case\"emitDeclarationOnly\":return ae[Xe]===!0&&yr(ae,\"declaration\");case\"declaration\":return ae.declaration||yr(ae,\"composite\");case\"incremental\":return ae.incremental===void 0?yr(ae,\"composite\"):ae.incremental;case\"skipDefaultLibCheck\":return ae.skipDefaultLibCheck||yr(ae,\"skipLibCheck\");case\"suppressImplicitAnyIndexErrors\":return ae.suppressImplicitAnyIndexErrors===!0&&yr(ae,\"noImplicitAny\");case\"allowSyntheticDefaultImports\":return ae.allowSyntheticDefaultImports!==void 0?ae.allowSyntheticDefaultImports:yr(ae,\"esModuleInterop\")||ae.module===re.ModuleKind.System;case\"noUncheckedIndexedAccess\":return ae.noUncheckedIndexedAccess===!0&&yr(ae,\"strictNullChecks\");case\"allowJs\":return ae.allowJs===void 0?yr(ae,\"checkJs\"):ae.allowJs;case\"noImplicitAny\":case\"noImplicitThis\":case\"strictNullChecks\":case\"strictFunctionTypes\":case\"strictPropertyInitialization\":case\"alwaysStrict\":case\"strictBindCallApply\":return ur(ae,Xe)}return ae[Xe]===!0}M.isCompilerOptionEnabled=yr;function Ir(ae){return ae.name.kind===re.SyntaxKind.StringLiteral||(ae.flags&re.NodeFlags.GlobalAugmentation)!==0}M.isAmbientModule=Ir;function wr(ae){return Ur(ae)}M.getCheckJsDirective=wr;function Ur(ae){let Xe;return re.forEachLeadingCommentRange(ae,(re.getShebang(ae)||\"\").length,(Jr,ti,Ze)=>{if(Ze===re.SyntaxKind.SingleLineCommentTrivia){let Sr=ae.slice(Jr,ti),zr=/^\\/{2,3}\\s*@ts-(no)?check(?:\\s|$)/i.exec(Sr);zr!==null&&(Xe={pos:Jr,end:ti,enabled:zr[1]===void 0})}}),Xe}M.getTsCheckDirective=Ur;function ii(ae){return Ve.isTypeReferenceNode(ae.type)&&ae.type.typeName.kind===re.SyntaxKind.Identifier&&ae.type.typeName.escapedText===\"const\"}M.isConstAssertion=ii;function mi(ae){let Xe=ae;for(;;){let Jr=Xe.parent;e:switch(Jr.kind){case re.SyntaxKind.TypeAssertionExpression:case re.SyntaxKind.AsExpression:return ii(Jr);case re.SyntaxKind.PrefixUnaryExpression:if(Xe.kind!==re.SyntaxKind.NumericLiteral)return!1;switch(Jr.operator){case re.SyntaxKind.PlusToken:case re.SyntaxKind.MinusToken:Xe=Jr;break e;default:return!1}case re.SyntaxKind.PropertyAssignment:if(Jr.initializer!==Xe)return!1;Xe=Jr.parent;break;case re.SyntaxKind.ShorthandPropertyAssignment:Xe=Jr.parent;break;case re.SyntaxKind.ParenthesizedExpression:case re.SyntaxKind.ArrayLiteralExpression:case re.SyntaxKind.ObjectLiteralExpression:case re.SyntaxKind.TemplateExpression:Xe=Jr;break;default:return!1}}}M.isInConstContext=mi;function pe(ae,Xe){if(!or(ae))return!1;let Jr=Xe.getTypeAtLocation(ae.arguments[2]);if(Jr.getProperty(\"value\")===void 0)return Jr.getProperty(\"set\")===void 0;let ti=Jr.getProperty(\"writable\");if(ti===void 0)return!1;let Ze=ti.valueDeclaration!==void 0&&Ve.isPropertyAssignment(ti.valueDeclaration)?Xe.getTypeAtLocation(ti.valueDeclaration.initializer):Xe.getTypeOfSymbolAtLocation(ti,ae.arguments[2]);return oi.isBooleanLiteralType(Ze,!1)}M.isReadonlyAssignmentDeclaration=pe;function or(ae){return ae.arguments.length===3&&Ve.isEntityNameExpression(ae.arguments[0])&&Ve.isNumericOrStringLikeLiteral(ae.arguments[1])&&Ve.isPropertyAccessExpression(ae.expression)&&ae.expression.name.escapedText===\"defineProperty\"&&Ve.isIdentifier(ae.expression.expression)&&ae.expression.expression.escapedText===\"Object\"}M.isBindableObjectDefinePropertyCall=or;function qr(ae){return re.isPropertyAccessExpression(ae)&&re.isIdentifier(ae.expression)&&ae.expression.escapedText===\"Symbol\"}M.isWellKnownSymbolLiterally=qr;function si(ae){return{displayName:\"[Symbol.\".concat(ae.name.text,\"]\"),symbolName:\"__@\"+ae.name.text}}M.getPropertyNameOfWellKnownSymbol=si;var Di=(ae=>{let[Xe,Jr]=ae;return Xe<\"4\"||Xe===\"4\"&&Jr<\"3\"})(re.versionMajorMinor.split(\".\"));function wi(ae,Xe){let Jr={known:!0,names:[]};if(ae=Gi(ae),Di&&qr(ae))Jr.names.push(si(ae));else{let ti=Xe.getTypeAtLocation(ae);for(let Ze of oi.unionTypeParts(Xe.getBaseConstraintOfType(ti)||ti)){let Sr=oi.getPropertyNameFromType(Ze);Sr?Jr.names.push(Sr):Jr.known=!1}}return Jr}M.getLateBoundPropertyNames=wi;function Xi(ae,Xe){let Jr=O(ae);return Jr!==void 0?{known:!0,names:[{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)}]}:ae.kind===re.SyntaxKind.PrivateIdentifier?{known:!0,names:[{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName}]}:wi(ae.expression,Xe)}M.getLateBoundPropertyNamesOfPropertyName=Xi;function et(ae,Xe){let Jr=O(ae);if(Jr!==void 0)return{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)};if(ae.kind===re.SyntaxKind.PrivateIdentifier)return{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName};let{expression:ti}=ae;return Di&&qr(ti)?si(ti):oi.getPropertyNameFromType(Xe.getTypeAtLocation(ti))}M.getSingleLateBoundPropertyNameOfPropertyName=et;function Gi(ae){for(;ae.kind===re.SyntaxKind.ParenthesizedExpression;)ae=ae.expression;return ae}M.unwrapParentheses=Gi;function Wt(ae){return\"\".concat(ae.negative?\"-\":\"\").concat(ae.base10Value,\"n\")}M.formatPseudoBigInt=Wt;function Zt(ae,Xe){let Jr=ae.caseBlock.clauses.filter(Ve.isCaseClause);if(Jr.length===0)return!1;let ti=oi.unionTypeParts(Xe.getTypeAtLocation(ae.expression));if(ti.length>Jr.length)return!1;let Ze=new Set(ti.map(_r));if(Ze.has(void 0))return!1;let Sr=new Set;for(let zr of Jr){let Wr=Xe.getTypeAtLocation(zr.expression);if(M.isTypeFlagSet(Wr,re.TypeFlags.Never))continue;let Je=_r(Wr);if(Ze.has(Je))Sr.add(Je);else if(Je!==\"null\"&&Je!==\"undefined\")return!1}return Ze.size===Sr.size}M.hasExhaustiveCaseClauses=Zt;function _r(ae){if(M.isTypeFlagSet(ae,re.TypeFlags.Null))return\"null\";if(M.isTypeFlagSet(ae,re.TypeFlags.Undefined))return\"undefined\";if(M.isTypeFlagSet(ae,re.TypeFlags.NumberLiteral))return\"\".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?\"enum:\":\"\").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.StringLiteral))return\"\".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?\"enum:\":\"\",\"string:\").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.BigIntLiteral))return Wt(ae.value);if(Ke.isUniqueESSymbolType(ae))return ae.escapedName;if(oi.isBooleanLiteralType(ae,!0))return\"true\";if(oi.isBooleanLiteralType(ae,!1))return\"false\"}function pi(ae){var Xe;if(((Xe=ae.heritageClauses)===null||Xe===void 0?void 0:Xe[0].token)===re.SyntaxKind.ExtendsKeyword)return ae.heritageClauses[0].types[0]}M.getBaseOfClassLikeExpression=pi}}),ez=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var w=Object.getOwnPropertyDescriptor(e,a);(!w||(\"get\"in w?!e.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,w)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,\"default\",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!==\"default\"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e};Object.defineProperty(M,\"__esModule\",{value:!0}),M.convertComments=void 0;var oi=Ke(_u()),kr=n3(),pr=A1(),Lr=k1();function ar(ke,e){let a=[];return(0,kr.forEachComment)(ke,(C,w)=>{let B=w.kind==oi.SyntaxKind.SingleLineCommentTrivia?Lr.AST_TOKEN_TYPES.Line:Lr.AST_TOKEN_TYPES.Block,E=[w.pos,w.end],Q=(0,pr.getLocFor)(E[0],E[1],ke),le=E[0]+2,N=w.kind===oi.SyntaxKind.SingleLineCommentTrivia?E[1]-le:E[1]-le-2;a.push({type:B,value:e.slice(le,le+N),range:E,loc:Q})},ke),a}M.convertComments=ar}}),o3=Oa({\"node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re={AssignmentExpression:[\"left\",\"right\"],AssignmentPattern:[\"left\",\"right\"],ArrayExpression:[\"elements\"],ArrayPattern:[\"elements\"],ArrowFunctionExpression:[\"params\",\"body\"],AwaitExpression:[\"argument\"],BlockStatement:[\"body\"],BinaryExpression:[\"left\",\"right\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\"],CatchClause:[\"param\",\"body\"],ChainExpression:[\"expression\"],ClassBody:[\"body\"],ClassDeclaration:[\"id\",\"superClass\",\"body\"],ClassExpression:[\"id\",\"superClass\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExportAllDeclaration:[\"exported\",\"source\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\"],ExportSpecifier:[\"exported\",\"local\"],ExpressionStatement:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],ForInStatement:[\"left\",\"right\",\"body\"],ForOfStatement:[\"left\",\"right\",\"body\"],FunctionDeclaration:[\"id\",\"params\",\"body\"],FunctionExpression:[\"id\",\"params\",\"body\"],Identifier:[],IfStatement:[\"test\",\"consequent\",\"alternate\"],ImportDeclaration:[\"specifiers\",\"source\"],ImportDefaultSpecifier:[\"local\"],ImportExpression:[\"source\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXClosingFragment:[],JSXOpeningFragment:[],Literal:[],LabeledStatement:[\"label\",\"body\"],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],MetaProperty:[\"meta\",\"property\"],MethodDefinition:[\"key\",\"value\"],NewExpression:[\"callee\",\"arguments\"],ObjectExpression:[\"properties\"],ObjectPattern:[\"properties\"],PrivateIdentifier:[],Program:[\"body\"],Property:[\"key\",\"value\"],PropertyDefinition:[\"key\",\"value\"],RestElement:[\"argument\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],SpreadElement:[\"argument\"],StaticBlock:[\"body\"],Super:[],SwitchStatement:[\"discriminant\",\"cases\"],SwitchCase:[\"test\",\"consequent\"],TaggedTemplateExpression:[\"tag\",\"quasi\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],YieldExpression:[\"argument\"]},Ve=Object.keys(re);for(let Lr of Ve)Object.freeze(re[Lr]);Object.freeze(re);var Ke=new Set([\"parent\",\"leadingComments\",\"trailingComments\"]);function oi(Lr){return!Ke.has(Lr)&&Lr[0]!==\"_\"}function kr(Lr){return Object.keys(Lr).filter(oi)}function pr(Lr){let ar=Object.assign({},re);for(let ke of Object.keys(Lr))if(Object.prototype.hasOwnProperty.call(ar,ke)){let e=new Set(Lr[ke]);for(let a of ar[ke])e.add(a);ar[ke]=Object.freeze(Array.from(e))}else ar[ke]=Object.freeze(Array.from(Lr[ke]));return Object.freeze(ar)}M.KEYS=re,M.getKeys=kr,M.unionWith=pr}}),rz=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/get-keys.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.getKeys=void 0;var re=o3(),Ve=re.getKeys;M.getKeys=Ve}}),iz=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(Lr,ar,ke,e){e===void 0&&(e=ke);var a=Object.getOwnPropertyDescriptor(ar,ke);(!a||(\"get\"in a?!ar.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return ar[ke]}}),Object.defineProperty(Lr,e,a)}:function(Lr,ar,ke,e){e===void 0&&(e=ke),Lr[e]=ar[ke]}),Ve=M&&M.__setModuleDefault||(Object.create?function(Lr,ar){Object.defineProperty(Lr,\"default\",{enumerable:!0,value:ar})}:function(Lr,ar){Lr.default=ar}),Ke=M&&M.__importStar||function(Lr){if(Lr&&Lr.__esModule)return Lr;var ar={};if(Lr!=null)for(var ke in Lr)ke!==\"default\"&&Object.prototype.hasOwnProperty.call(Lr,ke)&&re(ar,Lr,ke);return Ve(ar,Lr),ar};Object.defineProperty(M,\"__esModule\",{value:!0}),M.visitorKeys=void 0;var oi=Ke(o3()),kr={ImportAttribute:[\"key\",\"value\"],ArrayPattern:[\"decorators\",\"elements\",\"typeAnnotation\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\"],AssignmentPattern:[\"decorators\",\"left\",\"right\",\"typeAnnotation\"],CallExpression:[\"callee\",\"typeParameters\",\"arguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"implements\",\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"implements\",\"body\"],ExportAllDeclaration:[\"exported\",\"source\",\"assertions\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"assertions\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"decorators\",\"typeAnnotation\"],ImportDeclaration:[\"specifiers\",\"source\",\"assertions\"],ImportExpression:[\"source\",\"attributes\"],MethodDefinition:[\"decorators\",\"key\",\"value\",\"typeParameters\"],NewExpression:[\"callee\",\"typeParameters\",\"arguments\"],ObjectPattern:[\"decorators\",\"properties\",\"typeAnnotation\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],RestElement:[\"decorators\",\"argument\",\"typeAnnotation\"],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\"],StaticBlock:[\"body\"],JSXOpeningElement:[\"name\",\"typeParameters\",\"attributes\"],JSXClosingFragment:[],JSXOpeningFragment:[],JSXSpreadChild:[\"expression\"],Decorator:[\"expression\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAnyKeyword:[],TSArrayType:[\"elementType\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSAsyncKeyword:[],TSBigIntKeyword:[],TSBooleanKeyword:[],TSCallSignatureDeclaration:[\"typeParameters\",\"params\",\"returnType\"],TSClassImplements:[\"expression\",\"typeParameters\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSConstructorType:[\"typeParameters\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"params\",\"returnType\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSExportAssignment:[\"expression\"],TSExportKeyword:[],TSExternalModuleReference:[\"expression\"],TSFunctionType:[\"typeParameters\",\"params\",\"returnType\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSImportType:[\"parameter\",\"qualifier\",\"typeParameters\"],TSIndexedAccessType:[\"indexType\",\"objectType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSInferType:[\"typeParameter\"],TSInstantiationExpression:[\"expression\",\"typeParameters\"],TSInterfaceBody:[\"body\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceHeritage:[\"expression\",\"typeParameters\"],TSIntersectionType:[\"types\"],TSIntrinsicKeyword:[],TSLiteralType:[\"literal\"],TSMappedType:[\"nameType\",\"typeParameter\",\"typeAnnotation\"],TSMethodSignature:[\"typeParameters\",\"key\",\"params\",\"returnType\"],TSModuleBlock:[\"body\"],TSModuleDeclaration:[\"id\",\"body\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSNamespaceExportDeclaration:[\"id\"],TSNeverKeyword:[],TSNonNullExpression:[\"expression\"],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSOptionalType:[\"typeAnnotation\"],TSParameterProperty:[\"decorators\",\"parameter\"],TSPrivateKeyword:[],TSPropertySignature:[\"typeAnnotation\",\"key\",\"initializer\"],TSProtectedKeyword:[],TSPublicKeyword:[],TSQualifiedName:[\"left\",\"right\"],TSReadonlyKeyword:[],TSRestType:[\"typeAnnotation\"],TSStaticKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],TSThisType:[],TSTupleType:[\"elementTypes\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSTypeLiteral:[\"members\"],TSTypeOperator:[\"typeAnnotation\"],TSTypeParameter:[\"name\",\"constraint\",\"default\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameterInstantiation:[\"params\"],TSTypePredicate:[\"typeAnnotation\",\"parameterName\"],TSTypeQuery:[\"exprName\"],TSTypeReference:[\"typeName\",\"typeParameters\"],TSUndefinedKeyword:[],TSUnionType:[\"types\"],TSUnknownKeyword:[],TSVoidKeyword:[]},pr=oi.unionWith(kr);M.visitorKeys=pr}}),s3=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/index.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.visitorKeys=M.getKeys=void 0;var re=rz();Object.defineProperty(M,\"getKeys\",{enumerable:!0,get:function(){return re.getKeys}});var Ve=iz();Object.defineProperty(M,\"visitorKeys\",{enumerable:!0,get:function(){return Ve.visitorKeys}})}}),c3=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.simpleTraverse=void 0;var re=s3();function Ve(pr){return pr!==null&&typeof pr==\"object\"&&typeof pr.type==\"string\"}function Ke(pr,Lr){let ar=pr[Lr.type];return ar!=null?ar:[]}var oi=class{constructor(pr){let Lr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.allVisitorKeys=re.visitorKeys,this.selectors=pr,this.setParentPointers=Lr}traverse(pr,Lr){if(!Ve(pr))return;this.setParentPointers&&(pr.parent=Lr),\"enter\"in this.selectors?this.selectors.enter(pr,Lr):pr.type in this.selectors&&this.selectors[pr.type](pr,Lr);let ar=Ke(this.allVisitorKeys,pr);if(!(ar.length<1))for(let ke of ar){let e=pr[ke];if(Array.isArray(e))for(let a of e)this.traverse(a,pr);else this.traverse(e,pr)}}};function kr(pr,Lr){let ar=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;new oi(Lr,ar).traverse(pr,void 0)}M.simpleTraverse=kr}}),tz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.astConverter=void 0;var re=e3(),Ve=ez(),Ke=A1(),oi=c3();function kr(pr,Lr,ar){let{parseDiagnostics:ke}=pr;if(ke.length)throw(0,re.convertError)(ke[0]);let e=new re.Converter(pr,{errorOnUnknownASTType:Lr.errorOnUnknownASTType||!1,shouldPreserveNodeMaps:ar}),a=e.convertProgram();(!Lr.range||!Lr.loc)&&(0,oi.simpleTraverse)(a,{enter:w=>{Lr.range||delete w.range,Lr.loc||delete w.loc}}),Lr.tokens&&(a.tokens=(0,Ke.convertTokens)(pr)),Lr.comment&&(a.comments=(0,Ve.convertComments)(pr,Lr.code));let C=e.getASTMaps();return{estree:a,astMaps:C}}M.astConverter=kr}}),Mv=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(p,m,G,oe){oe===void 0&&(oe=G);var f=Object.getOwnPropertyDescriptor(m,G);(!f||(\"get\"in f?!m.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return m[G]}}),Object.defineProperty(p,oe,f)}:function(p,m,G,oe){oe===void 0&&(oe=G),p[oe]=m[G]}),Ve=M&&M.__setModuleDefault||(Object.create?function(p,m){Object.defineProperty(p,\"default\",{enumerable:!0,value:m})}:function(p,m){p.default=m}),Ke=M&&M.__importStar||function(p){if(p&&p.__esModule)return p;var m={};if(p!=null)for(var G in p)G!==\"default\"&&Object.prototype.hasOwnProperty.call(p,G)&&re(m,p,G);return Ve(m,p),m},oi=M&&M.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.getModuleResolver=M.getAstFromProgram=M.getCanonicalFileName=M.ensureAbsolutePath=M.createDefaultCompilerOptionsFromExtra=M.canonicalDirname=M.CORE_COMPILER_OPTIONS=void 0;var kr=oi(Fv()),pr=Ke(_u()),Lr={noEmit:!0,noUnusedLocals:!0,noUnusedParameters:!0};M.CORE_COMPILER_OPTIONS=Lr;var ar=Object.assign(Object.assign({},Lr),{allowNonTsExtensions:!0,allowJs:!0,checkJs:!0});function ke(p){return p.debugLevel.has(\"typescript\")?Object.assign(Object.assign({},ar),{extendedDiagnostics:!0}):ar}M.createDefaultCompilerOptionsFromExtra=ke;var e=pr.sys!==void 0?pr.sys.useCaseSensitiveFileNames:!0,a=e?p=>p:p=>p.toLowerCase();function C(p){let m=kr.default.normalize(p);return m.endsWith(kr.default.sep)&&(m=m.slice(0,-1)),a(m)}M.getCanonicalFileName=C;function w(p,m){return kr.default.isAbsolute(p)?p:kr.default.join(m.tsconfigRootDir||\"/prettier-security-dirname-placeholder\",p)}M.ensureAbsolutePath=w;function B(p){return kr.default.dirname(p)}M.canonicalDirname=B;var E=[pr.Extension.Dts,pr.Extension.Dcts,pr.Extension.Dmts];function Q(p){var m;return p?(m=E.find(G=>p.endsWith(G)))!==null&&m!==void 0?m:kr.default.extname(p):null}function le(p,m){let G=p.getSourceFile(m.filePath),oe=Q(m.filePath),f=Q(G==null?void 0:G.fileName);if(oe===f)return G&&{ast:G,program:p}}M.getAstFromProgram=le;function N(p){let m;try{throw new Error(\"Dynamic require is not supported\")}catch{let oe=[\"Could not find the provided parserOptions.moduleResolver.\",\"Hint: use an absolute path if you are not in control over where the ESLint instance runs.\"];throw new Error(oe.join(`\n`))}return m}M.getModuleResolver=N}}),az=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,w,B){B===void 0&&(B=w);var E=Object.getOwnPropertyDescriptor(C,w);(!E||(\"get\"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[w]}}),Object.defineProperty(a,B,E)}:function(a,C,w,B){B===void 0&&(B=w),a[B]=C[w]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,\"default\",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var w in a)w!==\"default\"&&Object.prototype.hasOwnProperty.call(a,w)&&re(C,a,w);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createDefaultProgram=void 0;var kr=oi(wm()),pr=oi(Fv()),Lr=Ke(_u()),ar=Mv(),ke=(0,kr.default)(\"typescript-eslint:typescript-estree:createDefaultProgram\");function e(a,C){if(ke(\"Getting default program for: %s\",C.filePath||\"unnamed file\"),!C.projects||C.projects.length!==1)return;let w=C.projects[0],B=Lr.getParsedCommandLineOfConfigFile(w,(0,ar.createDefaultCompilerOptionsFromExtra)(C),Object.assign(Object.assign({},Lr.sys),{onUnRecoverableConfigFileDiagnostic:()=>{}}));if(!B)return;let E=Lr.createCompilerHost(B.options,!0);C.moduleResolver&&(E.resolveModuleNames=(0,ar.getModuleResolver)(C.moduleResolver).resolveModuleNames);let Q=E.readFile;E.readFile=p=>pr.default.normalize(p)===pr.default.normalize(C.filePath)?a:Q(p);let le=Lr.createProgram([C.filePath],B.options,E),N=le.getSourceFile(C.filePath);return N&&{ast:N,program:le}}M.createDefaultProgram=e}}),rx=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var w=Object.getOwnPropertyDescriptor(e,a);(!w||(\"get\"in w?!e.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,w)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,\"default\",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!==\"default\"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e},oi=M&&M.__importDefault||function(ke){return ke&&ke.__esModule?ke:{default:ke}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.getLanguageVariant=M.getScriptKind=void 0;var kr=oi(Fv()),pr=Ke(_u());function Lr(ke,e){switch(kr.default.extname(ke).toLowerCase()){case pr.Extension.Js:case pr.Extension.Cjs:case pr.Extension.Mjs:return pr.ScriptKind.JS;case pr.Extension.Jsx:return pr.ScriptKind.JSX;case pr.Extension.Ts:case pr.Extension.Cts:case pr.Extension.Mts:return pr.ScriptKind.TS;case pr.Extension.Tsx:return pr.ScriptKind.TSX;case pr.Extension.Json:return pr.ScriptKind.JSON;default:return e?pr.ScriptKind.TSX:pr.ScriptKind.TS}}M.getScriptKind=Lr;function ar(ke){switch(ke){case pr.ScriptKind.TSX:case pr.ScriptKind.JSX:case pr.ScriptKind.JS:case pr.ScriptKind.JSON:return pr.LanguageVariant.JSX;default:return pr.LanguageVariant.Standard}}M.getLanguageVariant=ar}}),nz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,w,B){B===void 0&&(B=w);var E=Object.getOwnPropertyDescriptor(C,w);(!E||(\"get\"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[w]}}),Object.defineProperty(a,B,E)}:function(a,C,w,B){B===void 0&&(B=w),a[B]=C[w]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,\"default\",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var w in a)w!==\"default\"&&Object.prototype.hasOwnProperty.call(a,w)&&re(C,a,w);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createIsolatedProgram=void 0;var kr=oi(wm()),pr=Ke(_u()),Lr=Mv(),ar=rx(),ke=(0,kr.default)(\"typescript-eslint:typescript-estree:createIsolatedProgram\");function e(a,C){ke(\"Getting isolated program in %s mode for: %s\",C.jsx?\"TSX\":\"TS\",C.filePath);let w={fileExists(){return!0},getCanonicalFileName(){return C.filePath},getCurrentDirectory(){return\"\"},getDirectories(){return[]},getDefaultLibFileName(){return\"lib.d.ts\"},getNewLine(){return`\n`},getSourceFile(Q){return pr.createSourceFile(Q,a,pr.ScriptTarget.Latest,!0,(0,ar.getScriptKind)(C.filePath,C.jsx))},readFile(){},useCaseSensitiveFileNames(){return!0},writeFile(){return null}},B=pr.createProgram([C.filePath],Object.assign({noResolve:!0,target:pr.ScriptTarget.Latest,jsx:C.jsx?pr.JsxEmit.Preserve:void 0},(0,Lr.createDefaultCompilerOptionsFromExtra)(C)),w),E=B.getSourceFile(C.filePath);if(!E)throw new Error(\"Expected an ast to be returned for the single-file isolated program.\");return{ast:E,program:B}}M.createIsolatedProgram=e}}),u3=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(J,ie,R,q){q===void 0&&(q=R);var O=Object.getOwnPropertyDescriptor(ie,R);(!O||(\"get\"in O?!ie.__esModule:O.writable||O.configurable))&&(O={enumerable:!0,get:function(){return ie[R]}}),Object.defineProperty(J,q,O)}:function(J,ie,R,q){q===void 0&&(q=R),J[q]=ie[R]}),Ve=M&&M.__setModuleDefault||(Object.create?function(J,ie){Object.defineProperty(J,\"default\",{enumerable:!0,value:ie})}:function(J,ie){J.default=ie}),Ke=M&&M.__importStar||function(J){if(J&&J.__esModule)return J;var ie={};if(J!=null)for(var R in J)R!==\"default\"&&Object.prototype.hasOwnProperty.call(J,R)&&re(ie,J,R);return Ve(ie,J),ie},oi=M&&M.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.getProgramsForProjects=M.createWatchProgram=M.clearWatchCaches=void 0;var kr=oi(wm()),pr=oi(ex()),Lr=oi(QT()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)(\"typescript-eslint:typescript-estree:createWatchProgram\"),a=new Map,C=new Map,w=new Map,B=new Map,E=new Map,Q=new Map;function le(){a.clear(),C.clear(),w.clear(),Q.clear(),B.clear(),E.clear()}M.clearWatchCaches=le;function N(J){return(ie,R)=>{let q=(0,ke.getCanonicalFileName)(ie),O=(()=>{let ve=J.get(q);return ve||(ve=new Set,J.set(q,ve)),ve})();return O.add(R),{close:()=>{O.delete(R)}}}}var p={code:\"\",filePath:\"\"};function m(J){throw new Error(ar.flattenDiagnosticMessageText(J.messageText,ar.sys.newLine))}function G(J){var ie;return!((ie=ar.sys)===null||ie===void 0)&&ie.createHash?ar.sys.createHash(J):J}function oe(J,ie,R){let q=R.EXPERIMENTAL_useSourceOfProjectReferenceRedirect?new Set(ie.getSourceFiles().map(O=>(0,ke.getCanonicalFileName)(O.fileName))):new Set(ie.getRootFileNames().map(O=>(0,ke.getCanonicalFileName)(O)));return B.set(J,q),q}function f(J,ie,R){let q=(0,ke.getCanonicalFileName)(ie),O=[];p.code=J,p.filePath=q;let ve=C.get(q),ee=G(J);Q.get(q)!==ee&&ve&&ve.size>0&&ve.forEach(he=>he(q,ar.FileWatcherEventKind.Changed));for(let[he,F]of a.entries()){let x=B.get(he),X=null;if(x||(X=F.getProgram().getProgram(),x=oe(he,X,R)),x.has(q))return e(\"Found existing program for file. %s\",q),X=X!=null?X:F.getProgram().getProgram(),X.getTypeChecker(),[X]}e(\"File did not belong to any existing programs, moving to create/update. %s\",q);for(let he of R.projects){let F=a.get(he);if(F){let A=se(F,q,he);if(!A)continue;if(A.getTypeChecker(),oe(he,A,R).has(q))return e(\"Found updated program for file. %s\",q),[A];O.push(A);continue}let x=K(he,R);a.set(he,x);let X=x.getProgram().getProgram();if(X.getTypeChecker(),oe(he,X,R).has(q))return e(\"Found program for file. %s\",q),[X];O.push(X)}return O}M.getProgramsForProjects=f;var T=Lr.default.satisfies(ar.version,\">=3.9.0-beta\",{includePrerelease:!0});function K(J,ie){e(\"Creating watch program for %s.\",J);let R=ar.createWatchCompilerHost(J,(0,ke.createDefaultCompilerOptionsFromExtra)(ie),ar.sys,ar.createAbstractBuilder,m,()=>{});ie.moduleResolver&&(R.resolveModuleNames=(0,ke.getModuleResolver)(ie.moduleResolver).resolveModuleNames);let q=R.readFile;R.readFile=(he,F)=>{let x=(0,ke.getCanonicalFileName)(he),X=x===p.filePath?p.code:q(x,F);return X!==void 0&&Q.set(x,G(X)),X},R.onUnRecoverableConfigFileDiagnostic=m,R.afterProgramCreate=he=>{let F=he.getConfigFileParsingDiagnostics().filter(x=>x.category===ar.DiagnosticCategory.Error&&x.code!==18003);F.length>0&&m(F[0])},R.watchFile=N(C),R.watchDirectory=N(w);let O=R.onCachedDirectoryStructureHostCreate;R.onCachedDirectoryStructureHostCreate=he=>{let F=he.readDirectory;he.readDirectory=(x,X,$,A,y)=>F(x,X?X.concat(ie.extraFileExtensions):void 0,$,A,y),O(he)},R.extraFileExtensions=ie.extraFileExtensions.map(he=>({extension:he,isMixedContent:!0,scriptKind:ar.ScriptKind.Deferred})),R.trace=e,R.useSourceOfProjectReferenceRedirect=()=>ie.EXPERIMENTAL_useSourceOfProjectReferenceRedirect;let ve;T?(R.setTimeout=void 0,R.clearTimeout=void 0):(e(\"Running without timeout fix\"),R.setTimeout=function(he,F){for(var x=arguments.length,X=new Array(x>2?x-2:0),$=2;${ve=void 0});let ee=ar.createWatchProgram(R);if(!T){let he=ee.getProgram;ee.getProgram=()=>(ve&&ve(),ve=void 0,he.call(ee))}return ee}M.createWatchProgram=K;function b(J){let R=pr.default.statSync(J).mtimeMs,q=E.get(J);return E.set(J,R),q===void 0?!1:Math.abs(q-R)>Number.EPSILON}function se(J,ie,R){let q=J.getProgram().getProgram();if(Eu.env.TSESTREE_NO_INVALIDATION===\"true\")return q;b(R)&&(e(\"tsconfig has changed - triggering program update. %s\",R),C.get(R).forEach(A=>A(R,ar.FileWatcherEventKind.Changed)),B.delete(R));let O=q.getSourceFile(ie);if(O)return q;e(\"File was not found in program - triggering folder update. %s\",ie);let ve=(0,ke.canonicalDirname)(ie),ee=null,he=ve,F=!1;for(;ee!==he;){ee=he;let A=w.get(ee);A&&(A.forEach(y=>{ve!==ee&&y(ve,ar.FileWatcherEventKind.Changed),y(ee,ar.FileWatcherEventKind.Changed)}),F=!0),he=(0,ke.canonicalDirname)(ee)}if(!F)return e(\"No callback found for file, not part of this program. %s\",ie),null;if(B.delete(R),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O)return q;e(\"File was still not found in program after directory update - checking file deletions. %s\",ie);let X=q.getRootFileNames().find(A=>!pr.default.existsSync(A));if(!X)return null;let $=C.get((0,ke.getCanonicalFileName)(X));return $?(e(\"Marking file as deleted. %s\",X),$.forEach(A=>A(X,ar.FileWatcherEventKind.Deleted)),B.delete(R),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O?q:(e(\"File was still not found in program after deletion check, assuming it is not part of this program. %s\",ie),null)):(e(\"Could not find watch callbacks for root file. %s\",X),q)}}}),oz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(B,E,Q,le){le===void 0&&(le=Q);var N=Object.getOwnPropertyDescriptor(E,Q);(!N||(\"get\"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[Q]}}),Object.defineProperty(B,le,N)}:function(B,E,Q,le){le===void 0&&(le=Q),B[le]=E[Q]}),Ve=M&&M.__setModuleDefault||(Object.create?function(B,E){Object.defineProperty(B,\"default\",{enumerable:!0,value:E})}:function(B,E){B.default=E}),Ke=M&&M.__importStar||function(B){if(B&&B.__esModule)return B;var E={};if(B!=null)for(var Q in B)Q!==\"default\"&&Object.prototype.hasOwnProperty.call(B,Q)&&re(E,B,Q);return Ve(E,B),E},oi=M&&M.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createProjectProgram=void 0;var kr=oi(wm()),pr=oi(Fv()),Lr=Ke(_u()),ar=u3(),ke=A1(),e=Mv(),a=(0,kr.default)(\"typescript-eslint:typescript-estree:createProjectProgram\"),C=[Lr.Extension.Ts,Lr.Extension.Tsx,Lr.Extension.Js,Lr.Extension.Jsx,Lr.Extension.Mjs,Lr.Extension.Mts,Lr.Extension.Cjs,Lr.Extension.Cts];function w(B,E,Q){a(\"Creating project program for: %s\",Q.filePath);let le=(0,ke.firstDefined)((0,ar.getProgramsForProjects)(B,Q.filePath,Q),N=>(0,e.getAstFromProgram)(N,Q));if(!le&&!E){let N=['\"parserOptions.project\" has been set for @typescript-eslint/parser.',\"The file does not match your project config: \".concat(pr.default.relative(Q.tsconfigRootDir||\"/prettier-security-dirname-placeholder\",Q.filePath),\".\")],p=!1,m=Q.extraFileExtensions||[];m.forEach(oe=>{oe.startsWith(\".\")||N.push('Found unexpected extension \"'.concat(oe,'\" specified with the \"extraFileExtensions\" option. Did you mean \".').concat(oe,'\"?')),C.includes(oe)&&N.push('You unnecessarily included the extension \"'.concat(oe,'\" with the \"extraFileExtensions\" option. This extension is already handled by the parser by default.'))});let G=pr.default.extname(Q.filePath);if(!C.includes(G)){let oe=\"The extension for the file (\".concat(G,\") is non-standard\");m.length>0?m.includes(G)||(N.push(\"\".concat(oe,'. It should be added to your existing \"parserOptions.extraFileExtensions\".')),p=!0):(N.push(\"\".concat(oe,'. You should add \"parserOptions.extraFileExtensions\" to your config.')),p=!0)}throw p||N.push(\"The file must be included in at least one of the projects provided.\"),new Error(N.join(`\n`))}return le}M.createProjectProgram=w}}),sz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(e,a,C,w){w===void 0&&(w=C);var B=Object.getOwnPropertyDescriptor(a,C);(!B||(\"get\"in B?!a.__esModule:B.writable||B.configurable))&&(B={enumerable:!0,get:function(){return a[C]}}),Object.defineProperty(e,w,B)}:function(e,a,C,w){w===void 0&&(w=C),e[w]=a[C]}),Ve=M&&M.__setModuleDefault||(Object.create?function(e,a){Object.defineProperty(e,\"default\",{enumerable:!0,value:a})}:function(e,a){e.default=a}),Ke=M&&M.__importStar||function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var C in e)C!==\"default\"&&Object.prototype.hasOwnProperty.call(e,C)&&re(a,e,C);return Ve(a,e),a},oi=M&&M.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createSourceFile=void 0;var kr=oi(wm()),pr=Ke(_u()),Lr=rx(),ar=(0,kr.default)(\"typescript-eslint:typescript-estree:createSourceFile\");function ke(e,a){return ar(\"Getting AST without type information in %s mode for: %s\",a.jsx?\"TSX\":\"TS\",a.filePath),pr.createSourceFile(a.filePath,e,pr.ScriptTarget.Latest,!0,(0,Lr.getScriptKind)(a.filePath,a.jsx))}M.createSourceFile=ke}}),cz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.getFirstSemanticOrSyntacticError=void 0;var re=_u();function Ve(kr,pr){try{let Lr=Ke(kr.getSyntacticDiagnostics(pr));if(Lr.length)return oi(Lr[0]);let ar=Ke(kr.getSemanticDiagnostics(pr));return ar.length?oi(ar[0]):void 0}catch(Lr){console.warn('Warning From TSC: \"'.concat(Lr.message));return}}M.getFirstSemanticOrSyntacticError=Ve;function Ke(kr){return kr.filter(pr=>{switch(pr.code){case 1013:case 1014:case 1044:case 1045:case 1048:case 1049:case 1070:case 1071:case 1085:case 1090:case 1096:case 1097:case 1098:case 1099:case 1117:case 1121:case 1123:case 1141:case 1162:case 1164:case 1172:case 1173:case 1175:case 1176:case 1190:case 1196:case 1200:case 1206:case 1211:case 1242:case 1246:case 1255:case 1308:case 2364:case 2369:case 2452:case 2462:case 8017:case 17012:case 17013:return!0}return!1})}function oi(kr){return Object.assign(Object.assign({},kr),{message:(0,re.flattenDiagnosticMessageText)(kr.messageText,re.sys.newLine)})}}}),l3=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(B,E,Q,le){le===void 0&&(le=Q);var N=Object.getOwnPropertyDescriptor(E,Q);(!N||(\"get\"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[Q]}}),Object.defineProperty(B,le,N)}:function(B,E,Q,le){le===void 0&&(le=Q),B[le]=E[Q]}),Ve=M&&M.__setModuleDefault||(Object.create?function(B,E){Object.defineProperty(B,\"default\",{enumerable:!0,value:E})}:function(B,E){B.default=E}),Ke=M&&M.__importStar||function(B){if(B&&B.__esModule)return B;var E={};if(B!=null)for(var Q in B)Q!==\"default\"&&Object.prototype.hasOwnProperty.call(B,Q)&&re(E,B,Q);return Ve(E,B),E},oi=M&&M.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createProgramFromConfigFile=M.useProvidedPrograms=void 0;var kr=oi(wm()),pr=Ke(ex()),Lr=Ke(Fv()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)(\"typescript-eslint:typescript-estree:useProvidedProgram\");function a(B,E){e(\"Retrieving ast for %s from provided program instance(s)\",E.filePath);let Q;for(let le of B)if(Q=(0,ke.getAstFromProgram)(le,E),Q)break;if(!Q){let le=Lr.relative(E.tsconfigRootDir||\"/prettier-security-dirname-placeholder\",E.filePath),N=['\"parserOptions.programs\" has been provided for @typescript-eslint/parser.',\"The file was not found in any of the provided program instance(s): \".concat(le)];throw new Error(N.join(`\n`))}return Q.program.getTypeChecker(),Q}M.useProvidedPrograms=a;function C(B,E){if(ar.sys===void 0)throw new Error(\"`createProgramFromConfigFile` is only supported in a Node-like environment.\");let le=ar.getParsedCommandLineOfConfigFile(B,ke.CORE_COMPILER_OPTIONS,{onUnRecoverableConfigFileDiagnostic:p=>{throw new Error(w([p]))},fileExists:pr.existsSync,getCurrentDirectory:()=>E&&Lr.resolve(E)||\"/prettier-security-dirname-placeholder\",readDirectory:ar.sys.readDirectory,readFile:p=>pr.readFileSync(p,\"utf-8\"),useCaseSensitiveFileNames:ar.sys.useCaseSensitiveFileNames});if(le.errors.length)throw new Error(w(le.errors));let N=ar.createCompilerHost(le.options,!0);return ar.createProgram(le.fileNames,le.options,N)}M.createProgramFromConfigFile=C;function w(B){return ar.formatDiagnostics(B,{getCanonicalFileName:E=>E,getCurrentDirectory:Eu.cwd,getNewLine:()=>`\n`})}}}),uz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/parser.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(y,V,L,P){P===void 0&&(P=L);var k=Object.getOwnPropertyDescriptor(V,L);(!k||(\"get\"in k?!V.__esModule:k.writable||k.configurable))&&(k={enumerable:!0,get:function(){return V[L]}}),Object.defineProperty(y,P,k)}:function(y,V,L,P){P===void 0&&(P=L),y[P]=V[L]}),Ve=M&&M.__setModuleDefault||(Object.create?function(y,V){Object.defineProperty(y,\"default\",{enumerable:!0,value:V})}:function(y,V){y.default=V}),Ke=M&&M.__importStar||function(y){if(y&&y.__esModule)return y;var V={};if(y!=null)for(var L in y)L!==\"default\"&&Object.prototype.hasOwnProperty.call(y,L)&&re(V,y,L);return Ve(V,y),V},oi=M&&M.__importDefault||function(y){return y&&y.__esModule?y:{default:y}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.clearParseAndGenerateServicesCalls=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var kr=oi(wm()),pr=oi(Vj()),Lr=oi(QT()),ar=Fv(),ke=Ke(_u()),e=tz(),a=e3(),C=az(),w=nz(),B=oz(),E=sz(),Q=cz(),le=Mv(),N=l3(),p=(0,kr.default)(\"typescript-eslint:typescript-estree:parser\"),m=\">=3.3.1 <4.8.0\",G=[],oe=ke.version,f=Lr.default.satisfies(oe,[m].concat(G).join(\" || \")),T,K=!1,b=new Map;function se(){b.clear()}M.clearProgramCache=se;function J(y){return typeof y!=\"string\"?String(y):y}function ie(y,V,L,P){return V&&(0,N.useProvidedPrograms)(V,T)||L&&(0,B.createProjectProgram)(y,P,T)||L&&P&&(0,C.createDefaultProgram)(y,T)||(0,w.createIsolatedProgram)(y,T)}function R(){let{jsx:y}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return y?\"estree.tsx\":\"estree.ts\"}function q(){T={code:\"\",comment:!1,comments:[],createDefaultProgram:!1,debugLevel:new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:!1,EXPERIMENTAL_useSourceOfProjectReferenceRedirect:!1,extraFileExtensions:[],filePath:R(),jsx:!1,loc:!1,log:console.log,preserveNodeMaps:!0,programs:null,projects:[],range:!1,strict:!1,tokens:null,tsconfigRootDir:\"/prettier-security-dirname-placeholder\",singleRun:!1,moduleResolver:\"\"}}function O(y){var V;if(y.debugLevel===!0?T.debugLevel=new Set([\"typescript-eslint\"]):Array.isArray(y.debugLevel)&&(T.debugLevel=new Set(y.debugLevel)),T.debugLevel.size>0){let L=[];T.debugLevel.has(\"typescript-eslint\")&&L.push(\"typescript-eslint:*\"),(T.debugLevel.has(\"eslint\")||kr.default.enabled(\"eslint:*,-eslint:code-path\"))&&L.push(\"eslint:*,-eslint:code-path\"),kr.default.enable(L.join(\",\"))}if(T.range=typeof y.range==\"boolean\"&&y.range,T.loc=typeof y.loc==\"boolean\"&&y.loc,typeof y.tokens==\"boolean\"&&y.tokens&&(T.tokens=[]),typeof y.comment==\"boolean\"&&y.comment&&(T.comment=!0,T.comments=[]),typeof y.jsx!=\"boolean\"?T.jsx=!1:T.jsx=y.jsx,typeof y.filePath==\"string\"&&y.filePath!==\"\"?T.filePath=y.filePath:T.filePath=R(T),typeof y.errorOnUnknownASTType==\"boolean\"&&y.errorOnUnknownASTType&&(T.errorOnUnknownASTType=!0),typeof y.loggerFn==\"function\"?T.log=y.loggerFn:y.loggerFn===!1&&(T.log=()=>{}),typeof y.tsconfigRootDir==\"string\"&&(T.tsconfigRootDir=y.tsconfigRootDir),T.filePath=(0,le.ensureAbsolutePath)(T.filePath,T),Array.isArray(y.programs)){if(!y.programs.length)throw new Error(\"You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.\");T.programs=y.programs,p(\"parserOptions.programs was provided, so parserOptions.project will be ignored.\")}if(!T.programs){let L=((V=y.projectFolderIgnoreList)!==null&&V!==void 0?V:[\"**/node_modules/**\"]).reduce((P,k)=>(typeof k==\"string\"&&P.push(k),P),[]).map(P=>P.startsWith(\"!\")?P:\"!\".concat(P));T.projects=[]}Array.isArray(y.extraFileExtensions)&&y.extraFileExtensions.every(L=>typeof L==\"string\")&&(T.extraFileExtensions=y.extraFileExtensions),typeof y.preserveNodeMaps==\"boolean\"&&(T.preserveNodeMaps=y.preserveNodeMaps),T.createDefaultProgram=typeof y.createDefaultProgram==\"boolean\"&&y.createDefaultProgram,T.EXPERIMENTAL_useSourceOfProjectReferenceRedirect=typeof y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect==\"boolean\"&&y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect,typeof y.moduleResolver==\"string\"&&(T.moduleResolver=y.moduleResolver)}function ve(){var y;if(!f&&!K){if(typeof Eu>\"u\"?!1:(y=Eu.stdout)===null||y===void 0?void 0:y.isTTY){let L=\"=============\",P=[L,\"WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.\",\"You may find that it works just fine, or you may not.\",\"SUPPORTED TYPESCRIPT VERSIONS: \".concat(m),\"YOUR TYPESCRIPT VERSION: \".concat(oe),\"Please only submit bug reports when using the officially supported version.\",L];T.log(P.join(`\n\n`))}K=!0}}function ee(y){if(Eu.env.TSESTREE_SINGLE_RUN===\"false\"){T.singleRun=!1;return}if(Eu.env.TSESTREE_SINGLE_RUN===\"true\"){T.singleRun=!0;return}if(y!=null&&y.allowAutomaticSingleRunInference&&(Eu.env.CI===\"true\"||Eu.argv[1].endsWith((0,ar.normalize)(\"node_modules/.bin/eslint\")))){T.singleRun=!0;return}T.singleRun=!1}function he(y,V){let{ast:L}=F(y,V,!1);return L}M.parse=he;function F(y,V,L){if(q(),V!=null&&V.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('\"errorOnTypeScriptSyntacticAndSemanticIssues\" is only supported for parseAndGenerateServices()');y=J(y),T.code=y,typeof V<\"u\"&&O(V),ve(),ee(V);let P=(0,E.createSourceFile)(y,T),{estree:k,astMaps:Y}=(0,e.astConverter)(P,T,L);return{ast:k,esTreeNodeToTSNodeMap:Y.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:Y.tsNodeToESTreeNodeMap}}function x(y,V){return F(y,V,!0)}M.parseWithNodeMaps=x;var X={};function $(){X={}}M.clearParseAndGenerateServicesCalls=$;function A(y,V){var L;q(),y=J(y),T.code=y,typeof V<\"u\"&&(O(V),typeof V.errorOnTypeScriptSyntacticAndSemanticIssues==\"boolean\"&&V.errorOnTypeScriptSyntacticAndSemanticIssues&&(T.errorOnTypeScriptSyntacticAndSemanticIssues=!0)),ve(),ee(V),T.singleRun&&!T.programs&&((L=T.projects)===null||L===void 0?void 0:L.length)>0&&(T.programs={*[Symbol.iterator](){for(let I of T.projects){let l=b.get(I);if(l)yield l;else{p(\"Detected single-run/CLI usage, creating Program once ahead of time for project: %s\",I);let d=(0,N.createProgramFromConfigFile)(I);b.set(I,d),yield d}}}});let P=T.programs!=null||T.projects&&T.projects.length>0,k,Y;if(T.singleRun&&V.filePath&&(X[V.filePath]=(X[V.filePath]||0)+1),T.singleRun&&V.filePath&&X[V.filePath]>1){let I=(0,w.createIsolatedProgram)(y,T);k=I.ast,Y=I.program}else{let I=ie(y,T.programs,P,T.createDefaultProgram);k=I.ast,Y=I.program}let U=typeof T.preserveNodeMaps==\"boolean\"?T.preserveNodeMaps:!0,{estree:j,astMaps:H}=(0,e.astConverter)(k,T,U);if(Y&&T.errorOnTypeScriptSyntacticAndSemanticIssues){let I=(0,Q.getFirstSemanticOrSyntacticError)(Y,k);if(I)throw(0,a.convertError)(I)}return{ast:j,services:{hasFullTypeInformation:P,program:Y,esTreeNodeToTSNodeMap:H.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:H.tsNodeToESTreeNodeMap}}}M.parseAndGenerateServices=A}}),lz=Oa({\"node_modules/@typescript-eslint/typescript-estree/package.json\"(M,re){re.exports={name:\"@typescript-eslint/typescript-estree\",version:\"5.27.0\",description:\"A parser that converts TypeScript source code into an ESTree compatible form\",main:\"dist/index.js\",types:\"dist/index.d.ts\",files:[\"dist\",\"README.md\",\"LICENSE\"],engines:{node:\"^12.22.0 || ^14.17.0 || >=16.0.0\"},repository:{type:\"git\",url:\"https://github.com/typescript-eslint/typescript-eslint.git\",directory:\"packages/typescript-estree\"},bugs:{url:\"https://github.com/typescript-eslint/typescript-eslint/issues\"},license:\"BSD-2-Clause\",keywords:[\"ast\",\"estree\",\"ecmascript\",\"javascript\",\"typescript\",\"parser\",\"syntax\"],scripts:{build:\"tsc -b tsconfig.build.json\",postbuild:\"downlevel-dts dist _ts3.4/dist\",clean:\"tsc -b tsconfig.build.json --clean\",postclean:\"rimraf dist && rimraf _ts3.4 && rimraf coverage\",format:'prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore',lint:\"eslint . --ignore-path='../../.eslintignore'\",test:\"jest --coverage\",typecheck:\"tsc -p tsconfig.json --noEmit\"},dependencies:{\"@typescript-eslint/types\":\"5.27.0\",\"@typescript-eslint/visitor-keys\":\"5.27.0\",debug:\"^4.3.4\",globby:\"^11.1.0\",\"is-glob\":\"^4.0.3\",semver:\"^7.3.7\",tsutils:\"^3.21.0\"},devDependencies:{\"@babel/code-frame\":\"*\",\"@babel/parser\":\"*\",\"@types/babel__code-frame\":\"*\",\"@types/debug\":\"*\",\"@types/glob\":\"*\",\"@types/is-glob\":\"*\",\"@types/semver\":\"*\",\"@types/tmp\":\"*\",\"@typescript-eslint/shared-fixtures\":\"5.27.0\",glob:\"*\",\"jest-specific-snapshot\":\"*\",\"make-dir\":\"*\",tmp:\"*\",typescript:\"*\"},peerDependenciesMeta:{typescript:{optional:!0}},funding:{type:\"opencollective\",url:\"https://opencollective.com/typescript-eslint\"},typesVersions:{\"<3.8\":{\"*\":[\"_ts3.4/*\"]}},gitHead:\"e0db364b94158437f041db3597101d0c8b30d8bc\"}}}),fz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/index.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(ar,ke,e,a){a===void 0&&(a=e);var C=Object.getOwnPropertyDescriptor(ke,e);(!C||(\"get\"in C?!ke.__esModule:C.writable||C.configurable))&&(C={enumerable:!0,get:function(){return ke[e]}}),Object.defineProperty(ar,a,C)}:function(ar,ke,e,a){a===void 0&&(a=e),ar[a]=ke[e]}),Ve=M&&M.__exportStar||function(ar,ke){for(var e in ar)e!==\"default\"&&!Object.prototype.hasOwnProperty.call(ke,e)&&re(ke,ar,e)};Object.defineProperty(M,\"__esModule\",{value:!0}),M.version=M.visitorKeys=M.createProgram=M.clearCaches=M.simpleTraverse=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var Ke=uz();Object.defineProperty(M,\"parse\",{enumerable:!0,get:function(){return Ke.parse}}),Object.defineProperty(M,\"parseAndGenerateServices\",{enumerable:!0,get:function(){return Ke.parseAndGenerateServices}}),Object.defineProperty(M,\"parseWithNodeMaps\",{enumerable:!0,get:function(){return Ke.parseWithNodeMaps}}),Object.defineProperty(M,\"clearProgramCache\",{enumerable:!0,get:function(){return Ke.clearProgramCache}});var oi=c3();Object.defineProperty(M,\"simpleTraverse\",{enumerable:!0,get:function(){return oi.simpleTraverse}}),Ve(k1(),M);var kr=u3();Object.defineProperty(M,\"clearCaches\",{enumerable:!0,get:function(){return kr.clearWatchCaches}});var pr=l3();Object.defineProperty(M,\"createProgram\",{enumerable:!0,get:function(){return pr.createProgramFromConfigFile}}),Ve(rx(),M);var Lr=s3();Object.defineProperty(M,\"visitorKeys\",{enumerable:!0,get:function(){return Lr.visitorKeys}}),M.version=lz().version}});Ea();var _z=S4(),pz=Tj(),dz=Fj(),gz=Mj(),mz=Uj(),b4={loc:!0,range:!0,comment:!0,jsx:!0,tokens:!0,loggerFn:!1,project:[]};function vz(M){let{message:re,lineNumber:Ve,column:Ke}=M;return typeof Ve!=\"number\"?M:_z(re,{start:{line:Ve,column:Ke+1}})}function yz(M,re){let Ve=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Ke=gz(M),oi=hz(M),{parseWithNodeMaps:kr}=fz(),{result:pr,error:Lr}=pz(()=>kr(Ke,Object.assign(Object.assign({},b4),{},{jsx:oi})),()=>kr(Ke,Object.assign(Object.assign({},b4),{},{jsx:!oi})));if(!pr)throw vz(Lr);return Ve.originalText=M,Ve.tsParseResult=pr,mz(pr.ast,Ve)}function hz(M){return new RegExp([\"(?:^[^\\\"'`]*)\"].join(\"\"),\"m\").test(M)}f3.exports={parsers:{typescript:dz(yz)}}});return Dz();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.yaml=e()}})(function(){\"use strict\";var wt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var ur=wt((mr,lt)=>{var De=Object.defineProperty,St=Object.getOwnPropertyDescriptor,Fe=Object.getOwnPropertyNames,Et=Object.prototype.hasOwnProperty,xe=(r,e)=>function(){return r&&(e=(0,r[Fe(r)[0]])(r=0)),e},F=(r,e)=>function(){return e||(0,r[Fe(r)[0]])((e={exports:{}}).exports,e),e.exports},Mt=(r,e)=>{for(var n in e)De(r,n,{get:e[n],enumerable:!0})},Ot=(r,e,n,c)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let h of Fe(e))!Et.call(r,h)&&h!==n&&De(r,h,{get:()=>e[h],enumerable:!(c=St(e,h))||c.enumerable});return r},se=r=>Ot(De({},\"__esModule\",{value:!0}),r),Ke,$e,Te,D=xe({\"\"(){Ke={},$e=[],Te={env:Ke,argv:$e}}}),Lt=F({\"src/common/parser-create-error.js\"(r,e){\"use strict\";D();function n(c,h){let d=new SyntaxError(c+\" (\"+h.start.line+\":\"+h.start.column+\")\");return d.loc=h,d}e.exports=n}}),At=F({\"src/language-yaml/pragma.js\"(r,e){\"use strict\";D();function n(d){return/^\\s*@(?:prettier|format)\\s*$/.test(d)}function c(d){return/^\\s*#[^\\S\\n]*@(?:prettier|format)\\s*?(?:\\n|$)/.test(d)}function h(d){return`# @format\n\n`.concat(d)}e.exports={isPragma:n,hasPragma:c,insertPragma:h}}}),Nt=F({\"src/language-yaml/loc.js\"(r,e){\"use strict\";D();function n(h){return h.position.start.offset}function c(h){return h.position.end.offset}e.exports={locStart:n,locEnd:c}}}),te={};Mt(te,{__assign:()=>qe,__asyncDelegator:()=>Wt,__asyncGenerator:()=>Ft,__asyncValues:()=>Vt,__await:()=>Ce,__awaiter:()=>Rt,__classPrivateFieldGet:()=>$t,__classPrivateFieldSet:()=>Jt,__createBinding:()=>Bt,__decorate:()=>kt,__exportStar:()=>jt,__extends:()=>Tt,__generator:()=>qt,__importDefault:()=>Kt,__importStar:()=>Ut,__makeTemplateObject:()=>Qt,__metadata:()=>It,__param:()=>Pt,__read:()=>He,__rest:()=>Ct,__spread:()=>Yt,__spreadArrays:()=>Dt,__values:()=>Ye});function Tt(r,e){Re(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function Ct(r,e){var n={};for(var c in r)Object.prototype.hasOwnProperty.call(r,c)&&e.indexOf(c)<0&&(n[c]=r[c]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var h=0,c=Object.getOwnPropertySymbols(r);h=0;E--)(y=r[E])&&(d=(h<3?y(d):h>3?y(e,n,d):y(e,n))||d);return h>3&&d&&Object.defineProperty(e,n,d),d}function Pt(r,e){return function(n,c){e(n,c,r)}}function It(r,e){if(typeof Reflect==\"object\"&&typeof Reflect.metadata==\"function\")return Reflect.metadata(r,e)}function Rt(r,e,n,c){function h(d){return d instanceof n?d:new n(function(y){y(d)})}return new(n||(n=Promise))(function(d,y){function E(M){try{S(c.next(M))}catch(T){y(T)}}function I(M){try{S(c.throw(M))}catch(T){y(T)}}function S(M){M.done?d(M.value):h(M.value).then(E,I)}S((c=c.apply(r,e||[])).next())})}function qt(r,e){var n={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},c,h,d,y;return y={next:E(0),throw:E(1),return:E(2)},typeof Symbol==\"function\"&&(y[Symbol.iterator]=function(){return this}),y;function E(S){return function(M){return I([S,M])}}function I(S){if(c)throw new TypeError(\"Generator is already executing.\");for(;n;)try{if(c=1,h&&(d=S[0]&2?h.return:S[0]?h.throw||((d=h.return)&&d.call(h),0):h.next)&&!(d=d.call(h,S[1])).done)return d;switch(h=0,d&&(S=[S[0]&2,d.value]),S[0]){case 0:case 1:d=S;break;case 4:return n.label++,{value:S[1],done:!1};case 5:n.label++,h=S[1],S=[0];continue;case 7:S=n.ops.pop(),n.trys.pop();continue;default:if(d=n.trys,!(d=d.length>0&&d[d.length-1])&&(S[0]===6||S[0]===2)){n=0;continue}if(S[0]===3&&(!d||S[1]>d[0]&&S[1]=r.length&&(r=void 0),{value:r&&r[c++],done:!r}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function He(r,e){var n=typeof Symbol==\"function\"&&r[Symbol.iterator];if(!n)return r;var c=n.call(r),h,d=[],y;try{for(;(e===void 0||e-- >0)&&!(h=c.next()).done;)d.push(h.value)}catch(E){y={error:E}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(y)throw y.error}}return d}function Yt(){for(var r=[],e=0;e1||E(P,C)})})}function E(P,C){try{I(c[P](C))}catch(q){T(d[0][3],q)}}function I(P){P.value instanceof Ce?Promise.resolve(P.value.v).then(S,M):T(d[0][2],P)}function S(P){E(\"next\",P)}function M(P){E(\"throw\",P)}function T(P,C){P(C),d.shift(),d.length&&E(d[0][0],d[0][1])}}function Wt(r){var e,n;return e={},c(\"next\"),c(\"throw\",function(h){throw h}),c(\"return\"),e[Symbol.iterator]=function(){return this},e;function c(h,d){e[h]=r[h]?function(y){return(n=!n)?{value:Ce(r[h](y)),done:h===\"return\"}:d?d(y):y}:d}}function Vt(r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e=r[Symbol.asyncIterator],n;return e?e.call(r):(r=typeof Ye==\"function\"?Ye(r):r[Symbol.iterator](),n={},c(\"next\"),c(\"throw\"),c(\"return\"),n[Symbol.asyncIterator]=function(){return this},n);function c(d){n[d]=r[d]&&function(y){return new Promise(function(E,I){y=r[d](y),h(E,I,y.done,y.value)})}}function h(d,y,E,I){Promise.resolve(I).then(function(S){d({value:S,done:E})},y)}}function Qt(r,e){return Object.defineProperty?Object.defineProperty(r,\"raw\",{value:e}):r.raw=e,r}function Ut(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var n in r)Object.hasOwnProperty.call(r,n)&&(e[n]=r[n]);return e.default=r,e}function Kt(r){return r&&r.__esModule?r:{default:r}}function $t(r,e){if(!e.has(r))throw new TypeError(\"attempted to get private field on non-instance\");return e.get(r)}function Jt(r,e,n){if(!e.has(r))throw new TypeError(\"attempted to set private field on non-instance\");return e.set(r,n),n}var Re,qe,ae=xe({\"node_modules/tslib/tslib.es6.js\"(){D(),Re=function(r,e){return Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,c){n.__proto__=c}||function(n,c){for(var h in c)c.hasOwnProperty(h)&&(n[h]=c[h])},Re(r,e)},qe=function(){return qe=Object.assign||function(e){for(var n,c=1,h=arguments.length;cthis.string.length)return null;for(var y=0,E=this.offsets;E[y+1]<=d;)y++;var I=d-E[y];return{line:y,column:I}},h.prototype.indexForLocation=function(d){var y=d.line,E=d.column;return y<0||y>=this.offsets.length||E<0||E>this.lengthOfLine(y)?null:this.offsets[y]+E},h.prototype.lengthOfLine=function(d){var y=this.offsets[d],E=d===this.offsets.length-1?this.string.length:this.offsets[d+1];return E-y},h}();r.LinesAndColumns=c,r.default=c}}),Ht=F({\"node_modules/yaml-unist-parser/lib/utils/define-parents.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c){c===void 0&&(c=null),\"children\"in n&&n.children.forEach(function(h){return e(h,n)}),\"anchor\"in n&&n.anchor&&e(n.anchor,n),\"tag\"in n&&n.tag&&e(n.tag,n),\"leadingComments\"in n&&n.leadingComments.forEach(function(h){return e(h,n)}),\"middleComments\"in n&&n.middleComments.forEach(function(h){return e(h,n)}),\"indicatorComment\"in n&&n.indicatorComment&&e(n.indicatorComment,n),\"trailingComment\"in n&&n.trailingComment&&e(n.trailingComment,n),\"endComments\"in n&&n.endComments.forEach(function(h){return e(h,n)}),Object.defineProperty(n,\"_parent\",{value:c,enumerable:!1})}r.defineParents=e}}),We=F({\"node_modules/yaml-unist-parser/lib/utils/get-point-text.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n){return n.line+\":\"+n.column}r.getPointText=e}}),Gt=F({\"node_modules/yaml-unist-parser/lib/attach.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Ht(),n=We();function c(S){e.defineParents(S);var M=h(S),T=S.children.slice();S.comments.sort(function(P,C){return P.position.start.offset-C.position.end.offset}).filter(function(P){return!P._parent}).forEach(function(P){for(;T.length>1&&P.position.start.line>T[0].position.end.line;)T.shift();y(P,M,T[0])})}r.attachComments=c;function h(S){for(var M=Array.from(new Array(S.position.end.line),function(){return{}}),T=0,P=S.comments;T1&&M.type!==\"document\"&&M.type!==\"documentHead\"){var C=M.position.end,q=S[C.line-1].trailingAttachableNode;(!q||C.column>=q.position.end.column)&&(S[C.line-1].trailingAttachableNode=M)}if(M.type!==\"root\"&&M.type!==\"document\"&&M.type!==\"documentHead\"&&M.type!==\"documentBody\")for(var R=M.position,T=R.start,C=R.end,j=[C.line].concat(T.line===C.line?[]:T.line),K=0,m=j;K=t.position.end.column)&&(S[a-1].trailingNode=M)}\"children\"in M&&M.children.forEach(function(s){d(S,s)})}}function y(S,M,T){var P=S.position.start.line,C=M[P-1].trailingAttachableNode;if(C){if(C.trailingComment)throw new Error(\"Unexpected multiple trailing comment at \"+n.getPointText(S.position.start));e.defineParents(S,C),C.trailingComment=S;return}for(var q=P;q>=T.position.start.line;q--){var R=M[q-1].trailingNode,j=void 0;if(R)j=R;else if(q!==P&&M[q-1].comment)j=M[q-1].comment._parent;else continue;if((j.type===\"sequence\"||j.type===\"mapping\")&&(j=j.children[0]),j.type===\"mappingItem\"){var K=j.children,m=K[0],a=K[1];j=I(m)?m:a}for(;;){if(E(j,S)){e.defineParents(S,j),j.endComments.push(S);return}if(!j._parent)break;j=j._parent}break}for(var q=P+1;q<=T.position.end.line;q++){var t=M[q-1].leadingAttachableNode;if(t){e.defineParents(S,t),t.leadingComments.push(S);return}}var s=T.children[1];e.defineParents(S,s),s.endComments.push(S)}function E(S,M){if(S.position.start.offsetM.position.end.offset)switch(S.type){case\"flowMapping\":case\"flowSequence\":return S.children.length===0||M.position.start.line>S.children[S.children.length-1].position.end.line}if(M.position.end.offsetS.position.start.column;case\"mappingKey\":case\"mappingValue\":return M.position.start.column>S._parent.position.start.column&&(S.children.length===0||S.children.length===1&&S.children[0].type!==\"blockFolded\"&&S.children[0].type!==\"blockLiteral\")&&(S.type===\"mappingValue\"||I(S));default:return!1}}function I(S){return S.position.start!==S.position.end&&(S.children.length===0||S.position.start.offset!==S.children[0].position.start.offset)}}}),me=F({\"node_modules/yaml-unist-parser/lib/factories/node.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c){return{type:n,position:c}}r.createNode=e}}),zt=F({\"node_modules/yaml-unist-parser/lib/factories/root.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d,y){return e.__assign(e.__assign({},n.createNode(\"root\",h)),{children:d,comments:y})}r.createRoot=c}}),Zt=F({\"node_modules/yaml-unist-parser/lib/preprocess.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n){switch(n.type){case\"DOCUMENT\":for(var c=n.contents.length-1;c>=0;c--)n.contents[c].type===\"BLANK_LINE\"?n.contents.splice(c,1):e(n.contents[c]);for(var c=n.directives.length-1;c>=0;c--)n.directives[c].type===\"BLANK_LINE\"&&n.directives.splice(c,1);break;case\"FLOW_MAP\":case\"FLOW_SEQ\":case\"MAP\":case\"SEQ\":for(var c=n.items.length-1;c>=0;c--){var h=n.items[c];\"char\"in h||(h.type===\"BLANK_LINE\"?n.items.splice(c,1):e(h))}break;case\"MAP_KEY\":case\"MAP_VALUE\":case\"SEQ_ITEM\":n.node&&e(n.node);break;case\"ALIAS\":case\"BLANK_LINE\":case\"BLOCK_FOLDED\":case\"BLOCK_LITERAL\":case\"COMMENT\":case\"DIRECTIVE\":case\"PLAIN\":case\"QUOTE_DOUBLE\":case\"QUOTE_SINGLE\":break;default:throw new Error(\"Unexpected node type \"+JSON.stringify(n.type))}}r.removeCstBlankLine=e}}),Oe=F({\"node_modules/yaml-unist-parser/lib/factories/leading-comment-attachable.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(){return{leadingComments:[]}}r.createLeadingCommentAttachable=e}}),Be=F({\"node_modules/yaml-unist-parser/lib/factories/trailing-comment-attachable.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n){return n===void 0&&(n=null),{trailingComment:n}}r.createTrailingCommentAttachable=e}}),Se=F({\"node_modules/yaml-unist-parser/lib/factories/comment-attachable.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=Be();function h(){return e.__assign(e.__assign({},n.createLeadingCommentAttachable()),c.createTrailingCommentAttachable())}r.createCommentAttachable=h}}),Xt=F({\"node_modules/yaml-unist-parser/lib/factories/alias.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"alias\",d)),n.createCommentAttachable()),y),{value:E})}r.createAlias=h}}),en=F({\"node_modules/yaml-unist-parser/lib/transforms/alias.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Xt();function n(c,h){var d=c.cstNode;return e.createAlias(h.transformRange({origStart:d.valueRange.origStart-1,origEnd:d.valueRange.origEnd}),h.transformContent(c),d.rawValue)}r.transformAlias=n}}),tn=F({\"node_modules/yaml-unist-parser/lib/factories/block-folded.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:\"blockFolded\"})}r.createBlockFolded=n}}),nn=F({\"node_modules/yaml-unist-parser/lib/factories/block-value.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,E,I,S,M){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"blockValue\",d)),n.createLeadingCommentAttachable()),y),{chomping:E,indent:I,value:S,indicatorComment:M})}r.createBlockValue=h}}),Ge=F({\"node_modules/yaml-unist-parser/lib/constants.js\"(r){\"use strict\";D(),r.__esModule=!0;var e;(function(n){n.Tag=\"!\",n.Anchor=\"&\",n.Comment=\"#\"})(e=r.PropLeadingCharacter||(r.PropLeadingCharacter={}))}}),rn=F({\"node_modules/yaml-unist-parser/lib/factories/anchor.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode(\"anchor\",h)),{value:d})}r.createAnchor=c}}),Ve=F({\"node_modules/yaml-unist-parser/lib/factories/comment.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode(\"comment\",h)),{value:d})}r.createComment=c}}),sn=F({\"node_modules/yaml-unist-parser/lib/factories/content.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c,h){return{anchor:c,tag:n,middleComments:h}}r.createContent=e}}),an=F({\"node_modules/yaml-unist-parser/lib/factories/tag.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode(\"tag\",h)),{value:d})}r.createTag=c}}),ze=F({\"node_modules/yaml-unist-parser/lib/transforms/content.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Ge(),n=rn(),c=Ve(),h=sn(),d=an();function y(E,I,S){S===void 0&&(S=function(){return!1});for(var M=E.cstNode,T=[],P=null,C=null,q=null,R=0,j=M.props;R=0;K--){var m=S.contents[K];if(m.type===\"COMMENT\"){var a=M.transformNode(m);T&&T.line===a.position.start.line?R.unshift(a):j?P.unshift(a):a.position.start.offset>=S.valueRange.origEnd?q.unshift(a):P.unshift(a)}else j=!0}if(q.length>1)throw new Error(\"Unexpected multiple document trailing comments at \"+d.getPointText(q[1].position.start));if(R.length>1)throw new Error(\"Unexpected multiple documentHead trailing comments at \"+d.getPointText(R[1].position.start));return{comments:P,endComments:C,documentTrailingComment:c.getLast(q)||null,documentHeadTrailingComment:c.getLast(R)||null}}function I(S,M,T){var P=h.getMatchIndex(T.text.slice(S.valueRange.origEnd),/^\\.\\.\\./),C=P===-1?S.valueRange.origEnd:Math.max(0,S.valueRange.origEnd-1);T.text[C-1]===\"\\r\"&&C--;var q=T.transformRange({origStart:M!==null?M.position.start.offset:C,origEnd:C}),R=P===-1?q.end:T.transformOffset(S.valueRange.origEnd+3);return{position:q,documentEndPoint:R}}}}),pn=F({\"node_modules/yaml-unist-parser/lib/factories/document-head.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=me(),h=Be();function d(y,E,I,S){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"documentHead\",y)),n.createEndCommentAttachable(I)),h.createTrailingCommentAttachable(S)),{children:E})}r.createDocumentHead=d}}),_n=F({\"node_modules/yaml-unist-parser/lib/transforms/document-head.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=pn(),c=Xe();function h(E,I){var S,M=E.cstNode,T=d(M,I),P=T.directives,C=T.comments,q=T.endComments,R=y(M,P,I),j=R.position,K=R.endMarkerPoint;(S=I.comments).push.apply(S,e.__spreadArrays(C,q));var m=function(a){return a&&I.comments.push(a),n.createDocumentHead(j,P,q,a)};return{createDocumentHeadWithTrailingComment:m,documentHeadEndMarkerPoint:K}}r.transformDocumentHead=h;function d(E,I){for(var S=[],M=[],T=[],P=!1,C=E.directives.length-1;C>=0;C--){var q=I.transformNode(E.directives[C]);q.type===\"comment\"?P?M.unshift(q):T.unshift(q):(P=!0,S.unshift(q))}return{directives:S,comments:M,endComments:T}}function y(E,I,S){var M=c.getMatchIndex(S.text.slice(0,E.valueRange.origStart),/---\\s*$/);M>0&&!/[\\r\\n]/.test(S.text[M-1])&&(M=-1);var T=M===-1?{origStart:E.valueRange.origStart,origEnd:E.valueRange.origStart}:{origStart:M,origEnd:M+3};return I.length!==0&&(T.origStart=I[0].position.start.offset),{position:S.transformRange(T),endMarkerPoint:M===-1?null:S.transformOffset(M)}}}}),vn=F({\"node_modules/yaml-unist-parser/lib/transforms/document.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=dn(),n=Le(),c=gn(),h=_n();function d(y,E){var I=h.transformDocumentHead(y,E),S=I.createDocumentHeadWithTrailingComment,M=I.documentHeadEndMarkerPoint,T=c.transformDocumentBody(y,E,M),P=T.documentBody,C=T.documentEndPoint,q=T.documentTrailingComment,R=T.documentHeadTrailingComment,j=S(R);return q&&E.comments.push(q),e.createDocument(n.createPosition(j.position.start,C),j,P,q)}r.transformDocument=d}}),et=F({\"node_modules/yaml-unist-parser/lib/factories/flow-collection.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,E,I){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode(\"flowCollection\",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),E),{children:I})}r.createFlowCollection=d}}),yn=F({\"node_modules/yaml-unist-parser/lib/factories/flow-mapping.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=et();function c(h,d,y){return e.__assign(e.__assign({},n.createFlowCollection(h,d,y)),{type:\"flowMapping\"})}r.createFlowMapping=c}}),tt=F({\"node_modules/yaml-unist-parser/lib/factories/flow-mapping-item.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign({},c.createNode(\"flowMappingItem\",d)),n.createLeadingCommentAttachable()),{children:[y,E]})}r.createFlowMappingItem=h}}),je=F({\"node_modules/yaml-unist-parser/lib/utils/extract-comments.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c){for(var h=[],d=0,y=n;d=0;d--)if(h.test(n[d]))return d;return-1}r.findLastCharIndex=e}}),kn=F({\"node_modules/yaml-unist-parser/lib/transforms/plain.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Tn(),n=Cn();function c(h,d){var y=h.cstNode;return e.createPlain(d.transformRange({origStart:y.valueRange.origStart,origEnd:n.findLastCharIndex(d.text,y.valueRange.origEnd-1,/\\S/)+1}),d.transformContent(h),y.strValue)}r.transformPlain=c}}),Pn=F({\"node_modules/yaml-unist-parser/lib/factories/quote-double.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:\"quoteDouble\"})}r.createQuoteDouble=n}}),In=F({\"node_modules/yaml-unist-parser/lib/factories/quote-value.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"quoteValue\",d)),y),n.createCommentAttachable()),{value:E})}r.createQuoteValue=h}}),at=F({\"node_modules/yaml-unist-parser/lib/transforms/quote-value.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=In();function n(c,h){var d=c.cstNode;return e.createQuoteValue(h.transformRange(d.valueRange),h.transformContent(c),d.strValue)}r.transformAstQuoteValue=n}}),Rn=F({\"node_modules/yaml-unist-parser/lib/transforms/quote-double.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Pn(),n=at();function c(h,d){return e.createQuoteDouble(n.transformAstQuoteValue(h,d))}r.transformQuoteDouble=c}}),qn=F({\"node_modules/yaml-unist-parser/lib/factories/quote-single.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:\"quoteSingle\"})}r.createQuoteSingle=n}}),Bn=F({\"node_modules/yaml-unist-parser/lib/transforms/quote-single.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=qn(),n=at();function c(h,d){return e.createQuoteSingle(n.transformAstQuoteValue(h,d))}r.transformQuoteSingle=c}}),jn=F({\"node_modules/yaml-unist-parser/lib/factories/sequence.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=Oe(),h=me();function d(y,E,I){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode(\"sequence\",y)),c.createLeadingCommentAttachable()),n.createEndCommentAttachable()),E),{children:I})}r.createSequence=d}}),Yn=F({\"node_modules/yaml-unist-parser/lib/factories/sequence-item.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode(\"sequenceItem\",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),{children:E?[E]:[]})}r.createSequenceItem=d}}),Dn=F({\"node_modules/yaml-unist-parser/lib/transforms/seq.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Le(),n=jn(),c=Yn(),h=je(),d=Qe(),y=Ae();function E(I,S){var M=h.extractComments(I.cstNode.items,S),T=M.map(function(P,C){d.extractPropComments(P,S);var q=S.transformNode(I.items[C]);return c.createSequenceItem(e.createPosition(S.transformOffset(P.valueRange.origStart),q===null?S.transformOffset(P.valueRange.origStart+1):q.position.end),q)});return n.createSequence(e.createPosition(T[0].position.start,y.getLast(T).position.end),S.transformContent(I),T)}r.transformSeq=E}}),Fn=F({\"node_modules/yaml-unist-parser/lib/transform.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=en(),n=on(),c=cn(),h=un(),d=mn(),y=vn(),E=Sn(),I=On(),S=Nn(),M=kn(),T=Rn(),P=Bn(),C=Dn();function q(R,j){if(R===null||R.type===void 0&&R.value===null)return null;switch(R.type){case\"ALIAS\":return e.transformAlias(R,j);case\"BLOCK_FOLDED\":return n.transformBlockFolded(R,j);case\"BLOCK_LITERAL\":return c.transformBlockLiteral(R,j);case\"COMMENT\":return h.transformComment(R,j);case\"DIRECTIVE\":return d.transformDirective(R,j);case\"DOCUMENT\":return y.transformDocument(R,j);case\"FLOW_MAP\":return E.transformFlowMap(R,j);case\"FLOW_SEQ\":return I.transformFlowSeq(R,j);case\"MAP\":return S.transformMap(R,j);case\"PLAIN\":return M.transformPlain(R,j);case\"QUOTE_DOUBLE\":return T.transformQuoteDouble(R,j);case\"QUOTE_SINGLE\":return P.transformQuoteSingle(R,j);case\"SEQ\":return C.transformSeq(R,j);default:throw new Error(\"Unexpected node type \"+R.type)}}r.transformNode=q}}),Wn=F({\"node_modules/yaml-unist-parser/lib/factories/error.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c,h){var d=new SyntaxError(n);return d.name=\"YAMLSyntaxError\",d.source=c,d.position=h,d}r.createError=e}}),Vn=F({\"node_modules/yaml-unist-parser/lib/transforms/error.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Wn();function n(c,h){var d=c.source.range||c.source.valueRange;return e.createError(c.message,h.text,h.transformRange(d))}r.transformError=n}}),Qn=F({\"node_modules/yaml-unist-parser/lib/factories/point.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c,h){return{offset:n,line:c,column:h}}r.createPoint=e}}),Un=F({\"node_modules/yaml-unist-parser/lib/transforms/offset.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Qn();function n(c,h){c<0?c=0:c>h.text.length&&(c=h.text.length);var d=h.locator.locationForIndex(c);return e.createPoint(c,d.line+1,d.column+1)}r.transformOffset=n}}),Kn=F({\"node_modules/yaml-unist-parser/lib/transforms/range.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Le();function n(c,h){return e.createPosition(h.transformOffset(c.origStart),h.transformOffset(c.origEnd))}r.transformRange=n}}),$n=F({\"node_modules/yaml-unist-parser/lib/utils/add-orig-range.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=!0;function n(y){if(!y.setOrigRanges()){var E=function(I){if(h(I))return I.origStart=I.start,I.origEnd=I.end,e;if(d(I))return I.origOffset=I.offset,e};y.forEach(function(I){return c(I,E)})}}r.addOrigRange=n;function c(y,E){if(!(!y||typeof y!=\"object\")&&E(y)!==e)for(var I=0,S=Object.keys(y);IM.offset}}}),Me=F({\"node_modules/yaml/dist/PlainValue-ec8e588e.js\"(r){\"use strict\";D();var e={ANCHOR:\"&\",COMMENT:\"#\",TAG:\"!\",DIRECTIVES_END:\"-\",DOCUMENT_END:\".\"},n={ALIAS:\"ALIAS\",BLANK_LINE:\"BLANK_LINE\",BLOCK_FOLDED:\"BLOCK_FOLDED\",BLOCK_LITERAL:\"BLOCK_LITERAL\",COMMENT:\"COMMENT\",DIRECTIVE:\"DIRECTIVE\",DOCUMENT:\"DOCUMENT\",FLOW_MAP:\"FLOW_MAP\",FLOW_SEQ:\"FLOW_SEQ\",MAP:\"MAP\",MAP_KEY:\"MAP_KEY\",MAP_VALUE:\"MAP_VALUE\",PLAIN:\"PLAIN\",QUOTE_DOUBLE:\"QUOTE_DOUBLE\",QUOTE_SINGLE:\"QUOTE_SINGLE\",SEQ:\"SEQ\",SEQ_ITEM:\"SEQ_ITEM\"},c=\"tag:yaml.org,2002:\",h={MAP:\"tag:yaml.org,2002:map\",SEQ:\"tag:yaml.org,2002:seq\",STR:\"tag:yaml.org,2002:str\"};function d(a){let t=[0],s=a.indexOf(`\n`);for(;s!==-1;)s+=1,t.push(s),s=a.indexOf(`\n`,s);return t}function y(a){let t,s;return typeof a==\"string\"?(t=d(a),s=a):(Array.isArray(a)&&(a=a[0]),a&&a.context&&(a.lineStarts||(a.lineStarts=d(a.context.src)),t=a.lineStarts,s=a.context.src)),{lineStarts:t,src:s}}function E(a,t){if(typeof a!=\"number\"||a<0)return null;let{lineStarts:s,src:i}=y(t);if(!s||!i||a>i.length)return null;for(let g=0;g=1)||a>s.length)return null;let f=s[a-1],g=s[a];for(;g&&g>f&&i[g-1]===`\n`;)--g;return i.slice(f,g)}function S(a,t){let{start:s,end:i}=a,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:80,g=I(s.line,t);if(!g)return null;let{col:u}=s;if(g.length>f)if(u<=f-10)g=g.substr(0,f-1)+\"\\u2026\";else{let $=Math.round(f/2);g.length>u+$&&(g=g.substr(0,u+$-1)+\"\\u2026\"),u-=g.length-f,g=\"\\u2026\"+g.substr(1-f)}let p=1,L=\"\";i&&(i.line===s.line&&u+(i.col-s.col)<=f+1?p=i.col-s.col:(p=Math.min(g.length+1,f)-u,L=\"\\u2026\"));let k=u>1?\" \".repeat(u-1):\"\",B=\"^\".repeat(p);return\"\".concat(g,`\n`).concat(k).concat(B).concat(L)}var M=class{static copy(a){return new M(a.start,a.end)}constructor(a,t){this.start=a,this.end=t||a}isEmpty(){return typeof this.start!=\"number\"||!this.end||this.end<=this.start}setOrigRange(a,t){let{start:s,end:i}=this;if(a.length===0||i<=a[0])return this.origStart=s,this.origEnd=i,t;let f=t;for(;fs);)++f;this.origStart=s+f;let g=f;for(;f=i);)++f;return this.origEnd=i+f,g}},T=class{static addStringTerminator(a,t,s){if(s[s.length-1]===`\n`)return s;let i=T.endOfWhiteSpace(a,t);return i>=a.length||a[i]===`\n`?s+`\n`:s}static atDocumentBoundary(a,t,s){let i=a[t];if(!i)return!0;let f=a[t-1];if(f&&f!==`\n`)return!1;if(s){if(i!==s)return!1}else if(i!==e.DIRECTIVES_END&&i!==e.DOCUMENT_END)return!1;let g=a[t+1],u=a[t+2];if(g!==i||u!==i)return!1;let p=a[t+3];return!p||p===`\n`||p===\"\t\"||p===\" \"}static endOfIdentifier(a,t){let s=a[t],i=s===\"<\",f=i?[`\n`,\"\t\",\" \",\">\"]:[`\n`,\"\t\",\" \",\"[\",\"]\",\"{\",\"}\",\",\"];for(;s&&f.indexOf(s)===-1;)s=a[t+=1];return i&&s===\">\"&&(t+=1),t}static endOfIndent(a,t){let s=a[t];for(;s===\" \";)s=a[t+=1];return t}static endOfLine(a,t){let s=a[t];for(;s&&s!==`\n`;)s=a[t+=1];return t}static endOfWhiteSpace(a,t){let s=a[t];for(;s===\"\t\"||s===\" \";)s=a[t+=1];return t}static startOfLine(a,t){let s=a[t-1];if(s===`\n`)return t;for(;s&&s!==`\n`;)s=a[t-=1];return t+1}static endOfBlockIndent(a,t,s){let i=T.endOfIndent(a,s);if(i>s+t)return i;{let f=T.endOfWhiteSpace(a,i),g=a[f];if(!g||g===`\n`)return f}return null}static atBlank(a,t,s){let i=a[t];return i===`\n`||i===\"\t\"||i===\" \"||s&&!i}static nextNodeIsIndented(a,t,s){return!a||t<0?!1:t>0?!0:s&&a===\"-\"}static normalizeOffset(a,t){let s=a[t];return s?s!==`\n`&&a[t-1]===`\n`?t-1:T.endOfWhiteSpace(a,t):t}static foldNewline(a,t,s){let i=0,f=!1,g=\"\",u=a[t+1];for(;u===\" \"||u===\"\t\"||u===`\n`;){switch(u){case`\n`:i=0,t+=1,g+=`\n`;break;case\"\t\":i<=s&&(f=!0),t=T.endOfWhiteSpace(a,t+2)-1;break;case\" \":i+=1,t+=1;break}u=a[t+1]}return g||(g=\" \"),u&&i<=s&&(f=!0),{fold:g,offset:t,error:f}}constructor(a,t,s){Object.defineProperty(this,\"context\",{value:s||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=t||[],this.type=a,this.value=null}getPropValue(a,t,s){if(!this.context)return null;let{src:i}=this.context,f=this.props[a];return f&&i[f.start]===t?i.slice(f.start+(s?1:0),f.end):null}get anchor(){for(let a=0;a0?a.join(`\n`):null}commentHasRequiredWhitespace(a){let{src:t}=this.context;if(this.header&&a===this.header.end||!this.valueRange)return!1;let{end:s}=this.valueRange;return a!==s||T.atBlank(t,s-1)}get hasComment(){if(this.context){let{src:a}=this.context;for(let t=0;ts.setOrigRange(a,t)),t}toString(){let{context:{src:a},range:t,value:s}=this;if(s!=null)return s;let i=a.slice(t.start,t.end);return T.addStringTerminator(a,t.end,i)}},P=class extends Error{constructor(a,t,s){if(!s||!(t instanceof T))throw new Error(\"Invalid arguments for new \".concat(a));super(),this.name=a,this.message=s,this.source=t}makePretty(){if(!this.source)return;this.nodeType=this.source.type;let a=this.source.context&&this.source.context.root;if(typeof this.offset==\"number\"){this.range=new M(this.offset,this.offset+1);let t=a&&E(this.offset,a);if(t){let s={line:t.line,col:t.col+1};this.linePos={start:t,end:s}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){let{line:t,col:s}=this.linePos.start;this.message+=\" at line \".concat(t,\", column \").concat(s);let i=a&&S(this.linePos,a);i&&(this.message+=`:\n\n`.concat(i,`\n`))}delete this.source}},C=class extends P{constructor(a,t){super(\"YAMLReferenceError\",a,t)}},q=class extends P{constructor(a,t){super(\"YAMLSemanticError\",a,t)}},R=class extends P{constructor(a,t){super(\"YAMLSyntaxError\",a,t)}},j=class extends P{constructor(a,t){super(\"YAMLWarning\",a,t)}};function K(a,t,s){return t in a?Object.defineProperty(a,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[t]=s,a}var m=class extends T{static endOfLine(a,t,s){let i=a[t],f=t;for(;i&&i!==`\n`&&!(s&&(i===\"[\"||i===\"]\"||i===\"{\"||i===\"}\"||i===\",\"));){let g=a[f+1];if(i===\":\"&&(!g||g===`\n`||g===\"\t\"||g===\" \"||s&&g===\",\")||(i===\" \"||i===\"\t\")&&g===\"#\")break;f+=1,i=g}return f}get strValue(){if(!this.valueRange||!this.context)return null;let{start:a,end:t}=this.valueRange,{src:s}=this.context,i=s[t-1];for(;aL?s.slice(L,u+1):p)}else f+=p}let g=s[a];switch(g){case\"\t\":{let u=\"Plain value cannot start with a tab character\";return{errors:[new q(this,u)],str:f}}case\"@\":case\"`\":{let u=\"Plain value cannot start with reserved character \".concat(g);return{errors:[new q(this,u)],str:f}}default:return f}}parseBlockValue(a){let{indent:t,inFlow:s,src:i}=this.context,f=a,g=a;for(let u=i[f];u===`\n`&&!T.atDocumentBoundary(i,f+1);u=i[f]){let p=T.endOfBlockIndent(i,t,f+1);if(p===null||i[p]===\"#\")break;i[p]===`\n`?f=p:(g=m.endOfLine(i,p,s),f=g)}return this.valueRange.isEmpty()&&(this.valueRange.start=a),this.valueRange.end=g,g}parse(a,t){this.context=a;let{inFlow:s,src:i}=a,f=t,g=i[f];return g&&g!==\"#\"&&g!==`\n`&&(f=m.endOfLine(i,t,s)),this.valueRange=new M(t,f),f=T.endOfWhiteSpace(i,f),f=this.parseComment(f),(!this.hasComment||this.valueRange.isEmpty())&&(f=this.parseBlockValue(f)),f}};r.Char=e,r.Node=T,r.PlainValue=m,r.Range=M,r.Type=n,r.YAMLError=P,r.YAMLReferenceError=C,r.YAMLSemanticError=q,r.YAMLSyntaxError=R,r.YAMLWarning=j,r._defineProperty=K,r.defaultTagPrefix=c,r.defaultTags=h}}),Gn=F({\"node_modules/yaml/dist/parse-cst.js\"(r){\"use strict\";D();var e=Me(),n=class extends e.Node{constructor(){super(e.Type.BLANK_LINE)}get includesTrailingLines(){return!0}parse(m,a){return this.context=m,this.range=new e.Range(a,a+1),a+1}},c=class extends e.Node{constructor(m,a){super(m,a),this.node=null}get includesTrailingLines(){return!!this.node&&this.node.includesTrailingLines}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,{atLineStart:i,lineStart:f}=m;!i&&this.type===e.Type.SEQ_ITEM&&(this.error=new e.YAMLSemanticError(this,\"Sequence items must not have preceding content on the same line\"));let g=i?a-f:m.indent,u=e.Node.endOfWhiteSpace(s,a+1),p=s[u],L=p===\"#\",k=[],B=null;for(;p===`\n`||p===\"#\";){if(p===\"#\"){let Q=e.Node.endOfLine(s,u+1);k.push(new e.Range(u,Q)),u=Q}else{i=!0,f=u+1;let Q=e.Node.endOfWhiteSpace(s,f);s[Q]===`\n`&&k.length===0&&(B=new n,f=B.parse({src:s},f)),u=e.Node.endOfIndent(s,f)}p=s[u]}if(e.Node.nextNodeIsIndented(p,u-(f+g),this.type!==e.Type.SEQ_ITEM)?this.node=t({atLineStart:i,inCollection:!1,indent:g,lineStart:f,parent:this},u):p&&f>a+1&&(u=f-1),this.node){if(B){let Q=m.parent.items||m.parent.contents;Q&&Q.push(B)}k.length&&Array.prototype.push.apply(this.props,k),u=this.node.range.end}else if(L){let Q=k[0];this.props.push(Q),u=Q.end}else u=e.Node.endOfLine(s,a+1);let $=this.node?this.node.valueRange.end:u;return this.valueRange=new e.Range(a,$),u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.node?this.node.setOrigRanges(m,a):a}toString(){let{context:{src:m},node:a,range:t,value:s}=this;if(s!=null)return s;let i=a?m.slice(t.start,a.range.start)+String(a):m.slice(t.start,t.end);return e.Node.addStringTerminator(m,t.end,i)}},h=class extends e.Node{constructor(){super(e.Type.COMMENT)}parse(m,a){this.context=m;let t=this.parseComment(a);return this.range=new e.Range(a,t),t}};function d(m){let a=m;for(;a instanceof c;)a=a.node;if(!(a instanceof y))return null;let t=a.items.length,s=-1;for(let g=t-1;g>=0;--g){let u=a.items[g];if(u.type===e.Type.COMMENT){let{indent:p,lineStart:L}=u.context;if(p>0&&u.range.start>=L+p)break;s=g}else if(u.type===e.Type.BLANK_LINE)s=g;else break}if(s===-1)return null;let i=a.items.splice(s,t-s),f=i[0].range.start;for(;a.range.end=f,a.valueRange&&a.valueRange.end>f&&(a.valueRange.end=f),a!==m;)a=a.context.parent;return i}var y=class extends e.Node{static nextContentHasIndent(m,a,t){let s=e.Node.endOfLine(m,a)+1;a=e.Node.endOfWhiteSpace(m,s);let i=m[a];return i?a>=s+t?!0:i!==\"#\"&&i!==`\n`?!1:y.nextContentHasIndent(m,a,t):!1}constructor(m){super(m.type===e.Type.SEQ_ITEM?e.Type.SEQ:e.Type.MAP);for(let t=m.props.length-1;t>=0;--t)if(m.props[t].start0}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,i=e.Node.startOfLine(s,a),f=this.items[0];f.context.parent=this,this.valueRange=e.Range.copy(f.valueRange);let g=f.range.start-f.context.lineStart,u=a;u=e.Node.normalizeOffset(s,u);let p=s[u],L=e.Node.endOfWhiteSpace(s,i)===u,k=!1;for(;p;){for(;p===`\n`||p===\"#\";){if(L&&p===`\n`&&!k){let Q=new n;if(u=Q.parse({src:s},u),this.valueRange.end=u,u>=s.length){p=null;break}this.items.push(Q),u-=1}else if(p===\"#\"){if(u=s.length){p=null;break}}if(i=u+1,u=e.Node.endOfIndent(s,i),e.Node.atBlank(s,u)){let Q=e.Node.endOfWhiteSpace(s,u),z=s[Q];(!z||z===`\n`||z===\"#\")&&(u=Q)}p=s[u],L=!0}if(!p)break;if(u!==i+g&&(L||p!==\":\")){if(ua&&(u=i);break}else if(!this.error){let Q=\"All collection items must start at the same column\";this.error=new e.YAMLSyntaxError(this,Q)}}if(f.type===e.Type.SEQ_ITEM){if(p!==\"-\"){i>a&&(u=i);break}}else if(p===\"-\"&&!this.error){let Q=s[u+1];if(!Q||Q===`\n`||Q===\"\t\"||Q===\" \"){let z=\"A collection cannot be both a mapping and a sequence\";this.error=new e.YAMLSyntaxError(this,z)}}let B=t({atLineStart:L,inCollection:!0,indent:g,lineStart:i,parent:this},u);if(!B)return u;if(this.items.push(B),this.valueRange.end=B.valueRange.end,u=e.Node.normalizeOffset(s,B.range.end),p=s[u],L=!1,k=B.includesTrailingLines,p){let Q=u-1,z=s[Q];for(;z===\" \"||z===\"\t\";)z=s[--Q];z===`\n`&&(i=Q+1,L=!0)}let $=d(B);$&&Array.prototype.push.apply(this.items,$)}return u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.items.forEach(t=>{a=t.setOrigRanges(m,a)}),a}toString(){let{context:{src:m},items:a,range:t,value:s}=this;if(s!=null)return s;let i=m.slice(t.start,a[0].range.start)+String(a[0]);for(let f=1;f0&&(this.contents=this.directives,this.directives=[]),i}return a[i]?(this.directivesEndMarker=new e.Range(i,i+3),i+3):(s?this.error=new e.YAMLSemanticError(this,\"Missing directives-end indicator line\"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),i)}parseContents(m){let{parseNode:a,src:t}=this.context;this.contents||(this.contents=[]);let s=m;for(;t[s-1]===\"-\";)s-=1;let i=e.Node.endOfWhiteSpace(t,m),f=s===m;for(this.valueRange=new e.Range(i);!e.Node.atDocumentBoundary(t,i,e.Char.DOCUMENT_END);){switch(t[i]){case`\n`:if(f){let g=new n;i=g.parse({src:t},i),i{a=t.setOrigRanges(m,a)}),this.directivesEndMarker&&(a=this.directivesEndMarker.setOrigRange(m,a)),this.contents.forEach(t=>{a=t.setOrigRanges(m,a)}),this.documentEndMarker&&(a=this.documentEndMarker.setOrigRange(m,a)),a}toString(){let{contents:m,directives:a,value:t}=this;if(t!=null)return t;let s=a.join(\"\");return m.length>0&&((a.length>0||m[0].type===e.Type.COMMENT)&&(s+=`---\n`),s+=m.join(\"\")),s[s.length-1]!==`\n`&&(s+=`\n`),s}},S=class extends e.Node{parse(m,a){this.context=m;let{src:t}=m,s=e.Node.endOfIdentifier(t,a+1);return this.valueRange=new e.Range(a+1,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}},M={CLIP:\"CLIP\",KEEP:\"KEEP\",STRIP:\"STRIP\"},T=class extends e.Node{constructor(m,a){super(m,a),this.blockIndent=null,this.chomping=M.CLIP,this.header=null}get includesTrailingLines(){return this.chomping===M.KEEP}get strValue(){if(!this.valueRange||!this.context)return null;let{start:m,end:a}=this.valueRange,{indent:t,src:s}=this.context;if(this.valueRange.isEmpty())return\"\";let i=null,f=s[a-1];for(;f===`\n`||f===\"\t\"||f===\" \";){if(a-=1,a<=m){if(this.chomping===M.KEEP)break;return\"\"}f===`\n`&&(i=a),f=s[a-1]}let g=a+1;i&&(this.chomping===M.KEEP?(g=i,a=this.valueRange.end):a=i);let u=t+this.blockIndent,p=this.type===e.Type.BLOCK_FOLDED,L=!0,k=\"\",B=\"\",$=!1;for(let Q=m;Qg&&(g=k);t[p]===`\n`?i=p:i=f=e.Node.endOfLine(t,p)}return this.chomping!==M.KEEP&&(i=t[f]?f+1:f),this.valueRange=new e.Range(m+1,i),i}parse(m,a){this.context=m;let{src:t}=m,s=this.parseBlockHeader(a);return s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s=this.parseBlockValue(s),s}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.header?this.header.setOrigRange(m,a):a}},P=class extends e.Node{constructor(m,a){super(m,a),this.items=null}prevNodeIsJsonLike(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.items.length,a=this.items[m-1];return!!a&&(a.jsonLike||a.type===e.Type.COMMENT&&this.prevNodeIsJsonLike(m-1))}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,{indent:i,lineStart:f}=m,g=s[a];this.items=[{char:g,offset:a}];let u=e.Node.endOfWhiteSpace(s,a+1);for(g=s[u];g&&g!==\"]\"&&g!==\"}\";){switch(g){case`\n`:{f=u+1;let p=e.Node.endOfWhiteSpace(s,f);if(s[p]===`\n`){let L=new n;f=L.parse({src:s},f),this.items.push(L)}if(u=e.Node.endOfIndent(s,f),u<=f+i&&(g=s[u],u{if(t instanceof e.Node)a=t.setOrigRanges(m,a);else if(m.length===0)t.origOffset=t.offset;else{let s=a;for(;st.offset);)++s;t.origOffset=t.offset+s,a=s}}),a}toString(){let{context:{src:m},items:a,range:t,value:s}=this;if(s!=null)return s;let i=a.filter(u=>u instanceof e.Node),f=\"\",g=t.start;return i.forEach(u=>{let p=m.slice(g,u.range.start);g=u.range.end,f+=p+String(u),f[f.length-1]===`\n`&&m[g-1]!==`\n`&&m[g]===`\n`&&(g+=1)}),f+=m.slice(g,t.end),e.Node.addStringTerminator(m,t.end,f)}},C=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t&&t!=='\"';)a+=t===\"\\\\\"?2:1,t=m[a];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:s,src:i}=this.context;i[t-1]!=='\"'&&m.push(new e.YAMLSyntaxError(this,'Missing closing \"quote'));let f=\"\";for(let g=a+1;gp?i.slice(p,g+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parseCharCode(m,a,t){let{src:s}=this.context,i=s.substr(m,a),g=i.length===a&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;return isNaN(g)?(t.push(new e.YAMLSyntaxError(this,\"Invalid escape sequence \".concat(s.substr(m-2,a+2)))),s.substr(m-2,a+2)):String.fromCodePoint(g)}parse(m,a){this.context=m;let{src:t}=m,s=C.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}},q=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t;)if(t===\"'\"){if(m[a+1]!==\"'\")break;t=m[a+=2]}else t=m[a+=1];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:s,src:i}=this.context;i[t-1]!==\"'\"&&m.push(new e.YAMLSyntaxError(this,\"Missing closing 'quote\"));let f=\"\";for(let g=a+1;gp?i.slice(p,g+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parse(m,a){this.context=m;let{src:t}=m,s=q.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}};function R(m,a){switch(m){case e.Type.ALIAS:return new S(m,a);case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return new T(m,a);case e.Type.FLOW_MAP:case e.Type.FLOW_SEQ:return new P(m,a);case e.Type.MAP_KEY:case e.Type.MAP_VALUE:case e.Type.SEQ_ITEM:return new c(m,a);case e.Type.COMMENT:case e.Type.PLAIN:return new e.PlainValue(m,a);case e.Type.QUOTE_DOUBLE:return new C(m,a);case e.Type.QUOTE_SINGLE:return new q(m,a);default:return null}}var j=class{static parseType(m,a,t){switch(m[a]){case\"*\":return e.Type.ALIAS;case\">\":return e.Type.BLOCK_FOLDED;case\"|\":return e.Type.BLOCK_LITERAL;case\"{\":return e.Type.FLOW_MAP;case\"[\":return e.Type.FLOW_SEQ;case\"?\":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_KEY:e.Type.PLAIN;case\":\":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_VALUE:e.Type.PLAIN;case\"-\":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.SEQ_ITEM:e.Type.PLAIN;case'\"':return e.Type.QUOTE_DOUBLE;case\"'\":return e.Type.QUOTE_SINGLE;default:return e.Type.PLAIN}}constructor(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{atLineStart:a,inCollection:t,inFlow:s,indent:i,lineStart:f,parent:g}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e._defineProperty(this,\"parseNode\",(u,p)=>{if(e.Node.atDocumentBoundary(this.src,p))return null;let L=new j(this,u),{props:k,type:B,valueStart:$}=L.parseProps(p),Q=R(B,k),z=Q.parse(L,$);if(Q.range=new e.Range(p,z),z<=p&&(Q.error=new Error(\"Node#parse consumed no characters\"),Q.error.parseEnd=z,Q.error.source=Q,Q.range.end=p+1),L.nodeStartsCollection(Q)){!Q.error&&!L.atLineStart&&L.parent.type===e.Type.DOCUMENT&&(Q.error=new e.YAMLSyntaxError(Q,\"Block collection must not have preceding content here (e.g. directives-end indicator)\"));let ie=new y(Q);return z=ie.parse(new j(L),z),ie.range=new e.Range(p,z),ie}return Q}),this.atLineStart=a!=null?a:m.atLineStart||!1,this.inCollection=t!=null?t:m.inCollection||!1,this.inFlow=s!=null?s:m.inFlow||!1,this.indent=i!=null?i:m.indent,this.lineStart=f!=null?f:m.lineStart,this.parent=g!=null?g:m.parent||{},this.root=m.root,this.src=m.src}nodeStartsCollection(m){let{inCollection:a,inFlow:t,src:s}=this;if(a||t)return!1;if(m instanceof c)return!0;let i=m.range.end;return s[i]===`\n`||s[i-1]===`\n`?!1:(i=e.Node.endOfWhiteSpace(s,i),s[i]===\":\")}parseProps(m){let{inFlow:a,parent:t,src:s}=this,i=[],f=!1;m=this.atLineStart?e.Node.endOfIndent(s,m):e.Node.endOfWhiteSpace(s,m);let g=s[m];for(;g===e.Char.ANCHOR||g===e.Char.COMMENT||g===e.Char.TAG||g===`\n`;){if(g===`\n`){let p=m,L;do L=p+1,p=e.Node.endOfIndent(s,L);while(s[p]===`\n`);let k=p-(L+this.indent),B=t.type===e.Type.SEQ_ITEM&&t.context.atLineStart;if(s[p]!==\"#\"&&!e.Node.nextNodeIsIndented(s[p],k,!B))break;this.atLineStart=!0,this.lineStart=L,f=!1,m=p}else if(g===e.Char.COMMENT){let p=e.Node.endOfLine(s,m+1);i.push(new e.Range(m,p)),m=p}else{let p=e.Node.endOfIdentifier(s,m+1);g===e.Char.TAG&&s[p]===\",\"&&/^[a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+,\\d\\d\\d\\d(-\\d\\d){0,2}\\/\\S/.test(s.slice(m+1,p+13))&&(p=e.Node.endOfIdentifier(s,p+5)),i.push(new e.Range(m,p)),f=!0,m=e.Node.endOfWhiteSpace(s,p)}g=s[m]}f&&g===\":\"&&e.Node.atBlank(s,m+1,!0)&&(m-=1);let u=j.parseType(s,m,a);return{props:i,type:u,valueStart:m}}};function K(m){let a=[];m.indexOf(\"\\r\")!==-1&&(m=m.replace(/\\r\\n?/g,(i,f)=>(i.length>1&&a.push(f),`\n`)));let t=[],s=0;do{let i=new I,f=new j({src:m});s=i.parse(f,s),t.push(i)}while(s{if(a.length===0)return!1;for(let f=1;ft.join(`...\n`),t}r.parse=K}}),ke=F({\"node_modules/yaml/dist/resolveSeq-d03cb037.js\"(r){\"use strict\";D();var e=Me();function n(o,l,_){if(!_)return o;let v=_.replace(/[\\s\\S]^/gm,\"$&\".concat(l,\"#\"));return\"#\".concat(v,`\n`).concat(l).concat(o)}function c(o,l,_){return _?_.indexOf(`\n`)===-1?\"\".concat(o,\" #\").concat(_):\"\".concat(o,`\n`)+_.replace(/^/gm,\"\".concat(l||\"\",\"#\")):o}var h=class{};function d(o,l,_){if(Array.isArray(o))return o.map((v,b)=>d(v,String(b),_));if(o&&typeof o.toJSON==\"function\"){let v=_&&_.anchors&&_.anchors.get(o);v&&(_.onCreate=w=>{v.res=w,delete _.onCreate});let b=o.toJSON(l,_);return v&&_.onCreate&&_.onCreate(b),b}return(!_||!_.keep)&&typeof o==\"bigint\"?Number(o):o}var y=class extends h{constructor(o){super(),this.value=o}toJSON(o,l){return l&&l.keep?this.value:d(this.value,o,l)}toString(){return String(this.value)}};function E(o,l,_){let v=_;for(let b=l.length-1;b>=0;--b){let w=l[b];if(Number.isInteger(w)&&w>=0){let A=[];A[w]=v,v=A}else{let A={};Object.defineProperty(A,w,{value:v,writable:!0,enumerable:!0,configurable:!0}),v=A}}return o.createNode(v,!1)}var I=o=>o==null||typeof o==\"object\"&&o[Symbol.iterator]().next().done,S=class extends h{constructor(o){super(),e._defineProperty(this,\"items\",[]),this.schema=o}addIn(o,l){if(I(o))this.add(l);else{let[_,...v]=o,b=this.get(_,!0);if(b instanceof S)b.addIn(v,l);else if(b===void 0&&this.schema)this.set(_,E(this.schema,v,l));else throw new Error(\"Expected YAML collection at \".concat(_,\". Remaining path: \").concat(v))}}deleteIn(o){let[l,..._]=o;if(_.length===0)return this.delete(l);let v=this.get(l,!0);if(v instanceof S)return v.deleteIn(_);throw new Error(\"Expected YAML collection at \".concat(l,\". Remaining path: \").concat(_))}getIn(o,l){let[_,...v]=o,b=this.get(_,!0);return v.length===0?!l&&b instanceof y?b.value:b:b instanceof S?b.getIn(v,l):void 0}hasAllNullValues(){return this.items.every(o=>{if(!o||o.type!==\"PAIR\")return!1;let l=o.value;return l==null||l instanceof y&&l.value==null&&!l.commentBefore&&!l.comment&&!l.tag})}hasIn(o){let[l,..._]=o;if(_.length===0)return this.has(l);let v=this.get(l,!0);return v instanceof S?v.hasIn(_):!1}setIn(o,l){let[_,...v]=o;if(v.length===0)this.set(_,l);else{let b=this.get(_,!0);if(b instanceof S)b.setIn(v,l);else if(b===void 0&&this.schema)this.set(_,E(this.schema,v,l));else throw new Error(\"Expected YAML collection at \".concat(_,\". Remaining path: \").concat(v))}}toJSON(){return null}toString(o,l,_,v){let{blockItem:b,flowChars:w,isMap:A,itemIndent:N}=l,{indent:Y,indentStep:W,stringify:U}=o,H=this.type===e.Type.FLOW_MAP||this.type===e.Type.FLOW_SEQ||o.inFlow;H&&(N+=W);let oe=A&&this.hasAllNullValues();o=Object.assign({},o,{allNullValues:oe,indent:N,inFlow:H,type:null});let le=!1,Z=!1,ee=this.items.reduce((de,re,he)=>{let ce;re&&(!le&&re.spaceBefore&&de.push({type:\"comment\",str:\"\"}),re.commentBefore&&re.commentBefore.match(/^.*$/gm).forEach(Ie=>{de.push({type:\"comment\",str:\"#\".concat(Ie)})}),re.comment&&(ce=re.comment),H&&(!le&&re.spaceBefore||re.commentBefore||re.comment||re.key&&(re.key.commentBefore||re.key.comment)||re.value&&(re.value.commentBefore||re.value.comment))&&(Z=!0)),le=!1;let fe=U(re,o,()=>ce=null,()=>le=!0);return H&&!Z&&fe.includes(`\n`)&&(Z=!0),H&&hece.str);if(Z||he.reduce((ce,fe)=>ce+fe.length+2,2)>S.maxFlowStringSingleLineLength){X=de;for(let ce of he)X+=ce?`\n`.concat(W).concat(Y).concat(ce):`\n`;X+=`\n`.concat(Y).concat(re)}else X=\"\".concat(de,\" \").concat(he.join(\" \"),\" \").concat(re)}else{let de=ee.map(b);X=de.shift();for(let re of de)X+=re?`\n`.concat(Y).concat(re):`\n`}return this.comment?(X+=`\n`+this.comment.replace(/^/gm,\"\".concat(Y,\"#\")),_&&_()):le&&v&&v(),X}};e._defineProperty(S,\"maxFlowStringSingleLineLength\",60);function M(o){let l=o instanceof y?o.value:o;return l&&typeof l==\"string\"&&(l=Number(l)),Number.isInteger(l)&&l>=0?l:null}var T=class extends S{add(o){this.items.push(o)}delete(o){let l=M(o);return typeof l!=\"number\"?!1:this.items.splice(l,1).length>0}get(o,l){let _=M(o);if(typeof _!=\"number\")return;let v=this.items[_];return!l&&v instanceof y?v.value:v}has(o){let l=M(o);return typeof l==\"number\"&&lv.type===\"comment\"?v.str:\"- \".concat(v.str),flowChars:{start:\"[\",end:\"]\"},isMap:!1,itemIndent:(o.indent||\"\")+\" \"},l,_):JSON.stringify(this)}},P=(o,l,_)=>l===null?\"\":typeof l!=\"object\"?String(l):o instanceof h&&_&&_.doc?o.toString({anchors:Object.create(null),doc:_.doc,indent:\"\",indentStep:_.indentStep,inFlow:!0,inStringifyKey:!0,stringify:_.stringify}):JSON.stringify(l),C=class extends h{constructor(o){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;super(),this.key=o,this.value=l,this.type=C.Type.PAIR}get commentBefore(){return this.key instanceof h?this.key.commentBefore:void 0}set commentBefore(o){if(this.key==null&&(this.key=new y(null)),this.key instanceof h)this.key.commentBefore=o;else{let l=\"Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.\";throw new Error(l)}}addToJSMap(o,l){let _=d(this.key,\"\",o);if(l instanceof Map){let v=d(this.value,_,o);l.set(_,v)}else if(l instanceof Set)l.add(_);else{let v=P(this.key,_,o),b=d(this.value,v,o);v in l?Object.defineProperty(l,v,{value:b,writable:!0,enumerable:!0,configurable:!0}):l[v]=b}return l}toJSON(o,l){let _=l&&l.mapAsMap?new Map:{};return this.addToJSMap(l,_)}toString(o,l,_){if(!o||!o.doc)return JSON.stringify(this);let{indent:v,indentSeq:b,simpleKeys:w}=o.doc.options,{key:A,value:N}=this,Y=A instanceof h&&A.comment;if(w){if(Y)throw new Error(\"With simple keys, key nodes cannot have comments\");if(A instanceof S){let ce=\"With simple keys, collection cannot be used as a key value\";throw new Error(ce)}}let W=!w&&(!A||Y||(A instanceof h?A instanceof S||A.type===e.Type.BLOCK_FOLDED||A.type===e.Type.BLOCK_LITERAL:typeof A==\"object\")),{doc:U,indent:H,indentStep:oe,stringify:le}=o;o=Object.assign({},o,{implicitKey:!W,indent:H+oe});let Z=!1,ee=le(A,o,()=>Y=null,()=>Z=!0);if(ee=c(ee,o.indent,Y),!W&&ee.length>1024){if(w)throw new Error(\"With simple keys, single line scalar must not span more than 1024 characters\");W=!0}if(o.allNullValues&&!w)return this.comment?(ee=c(ee,o.indent,this.comment),l&&l()):Z&&!Y&&_&&_(),o.inFlow&&!W?ee:\"? \".concat(ee);ee=W?\"? \".concat(ee,`\n`).concat(H,\":\"):\"\".concat(ee,\":\"),this.comment&&(ee=c(ee,o.indent,this.comment),l&&l());let X=\"\",de=null;if(N instanceof h){if(N.spaceBefore&&(X=`\n`),N.commentBefore){let ce=N.commentBefore.replace(/^/gm,\"\".concat(o.indent,\"#\"));X+=`\n`.concat(ce)}de=N.comment}else N&&typeof N==\"object\"&&(N=U.schema.createNode(N,!0));o.implicitKey=!1,!W&&!this.comment&&N instanceof y&&(o.indentAtStart=ee.length+1),Z=!1,!b&&v>=2&&!o.inFlow&&!W&&N instanceof T&&N.type!==e.Type.FLOW_SEQ&&!N.tag&&!U.anchors.getName(N)&&(o.indent=o.indent.substr(2));let re=le(N,o,()=>de=null,()=>Z=!0),he=\" \";return X||this.comment?he=\"\".concat(X,`\n`).concat(o.indent):!W&&N instanceof S?(!(re[0]===\"[\"||re[0]===\"{\")||re.includes(`\n`))&&(he=`\n`.concat(o.indent)):re[0]===`\n`&&(he=\"\"),Z&&!de&&_&&_(),c(ee+he+re,o.indent,de)}};e._defineProperty(C,\"Type\",{PAIR:\"PAIR\",MERGE_PAIR:\"MERGE_PAIR\"});var q=(o,l)=>{if(o instanceof R){let _=l.get(o.source);return _.count*_.aliasCount}else if(o instanceof S){let _=0;for(let v of o.items){let b=q(v,l);b>_&&(_=b)}return _}else if(o instanceof C){let _=q(o.key,l),v=q(o.value,l);return Math.max(_,v)}return 1},R=class extends h{static stringify(o,l){let{range:_,source:v}=o,{anchors:b,doc:w,implicitKey:A,inStringifyKey:N}=l,Y=Object.keys(b).find(U=>b[U]===v);if(!Y&&N&&(Y=w.anchors.getName(v)||w.anchors.newName()),Y)return\"*\".concat(Y).concat(A?\" \":\"\");let W=w.anchors.getName(v)?\"Alias node must be after source node\":\"Source node not found for alias node\";throw new Error(\"\".concat(W,\" [\").concat(_,\"]\"))}constructor(o){super(),this.source=o,this.type=e.Type.ALIAS}set tag(o){throw new Error(\"Alias nodes cannot have tags\")}toJSON(o,l){if(!l)return d(this.source,o,l);let{anchors:_,maxAliasCount:v}=l,b=_.get(this.source);if(!b||b.res===void 0){let w=\"This should not happen: Alias anchor was not resolved?\";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,w):new ReferenceError(w)}if(v>=0&&(b.count+=1,b.aliasCount===0&&(b.aliasCount=q(this.source,_)),b.count*b.aliasCount>v)){let w=\"Excessive alias count indicates a resource exhaustion attack\";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,w):new ReferenceError(w)}return b.res}toString(o){return R.stringify(this,o)}};e._defineProperty(R,\"default\",!0);function j(o,l){let _=l instanceof y?l.value:l;for(let v of o)if(v instanceof C&&(v.key===l||v.key===_||v.key&&v.key.value===_))return v}var K=class extends S{add(o,l){o?o instanceof C||(o=new C(o.key||o,o.value)):o=new C(o);let _=j(this.items,o.key),v=this.schema&&this.schema.sortMapEntries;if(_)if(l)_.value=o.value;else throw new Error(\"Key \".concat(o.key,\" already set\"));else if(v){let b=this.items.findIndex(w=>v(o,w)<0);b===-1?this.items.push(o):this.items.splice(b,0,o)}else this.items.push(o)}delete(o){let l=j(this.items,o);return l?this.items.splice(this.items.indexOf(l),1).length>0:!1}get(o,l){let _=j(this.items,o),v=_&&_.value;return!l&&v instanceof y?v.value:v}has(o){return!!j(this.items,o)}set(o,l){this.add(new C(o,l),!0)}toJSON(o,l,_){let v=_?new _:l&&l.mapAsMap?new Map:{};l&&l.onCreate&&l.onCreate(v);for(let b of this.items)b.addToJSMap(l,v);return v}toString(o,l,_){if(!o)return JSON.stringify(this);for(let v of this.items)if(!(v instanceof C))throw new Error(\"Map items must all be pairs; found \".concat(JSON.stringify(v),\" instead\"));return super.toString(o,{blockItem:v=>v.str,flowChars:{start:\"{\",end:\"}\"},isMap:!0,itemIndent:o.indent||\"\"},l,_)}},m=\"<<\",a=class extends C{constructor(o){if(o instanceof C){let l=o.value;l instanceof T||(l=new T,l.items.push(o.value),l.range=o.value.range),super(o.key,l),this.range=o.range}else super(new y(m),new T);this.type=C.Type.MERGE_PAIR}addToJSMap(o,l){for(let{source:_}of this.value.items){if(!(_ instanceof K))throw new Error(\"Merge sources must be maps\");let v=_.toJSON(null,o,Map);for(let[b,w]of v)l instanceof Map?l.has(b)||l.set(b,w):l instanceof Set?l.add(b):Object.prototype.hasOwnProperty.call(l,b)||Object.defineProperty(l,b,{value:w,writable:!0,enumerable:!0,configurable:!0})}return l}toString(o,l){let _=this.value;if(_.items.length>1)return super.toString(o,l);this.value=_.items[0];let v=super.toString(o,l);return this.value=_,v}},t={defaultType:e.Type.BLOCK_LITERAL,lineWidth:76},s={trueStr:\"true\",falseStr:\"false\"},i={asBigInt:!1},f={nullStr:\"null\"},g={defaultType:e.Type.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function u(o,l,_){for(let{format:v,test:b,resolve:w}of l)if(b){let A=o.match(b);if(A){let N=w.apply(null,A);return N instanceof y||(N=new y(N)),v&&(N.format=v),N}}return _&&(o=_(o)),new y(o)}var p=\"flow\",L=\"block\",k=\"quoted\",B=(o,l)=>{let _=o[l+1];for(;_===\" \"||_===\"\t\";){do _=o[l+=1];while(_&&_!==`\n`);_=o[l+1]}return l};function $(o,l,_,v){let{indentAtStart:b,lineWidth:w=80,minContentWidth:A=20,onFold:N,onOverflow:Y}=v;if(!w||w<0)return o;let W=Math.max(1+A,1+w-l.length);if(o.length<=W)return o;let U=[],H={},oe=w-l.length;typeof b==\"number\"&&(b>w-Math.max(2,A)?U.push(0):oe=w-b);let le,Z,ee=!1,X=-1,de=-1,re=-1;_===L&&(X=B(o,X),X!==-1&&(oe=X+W));for(let ce;ce=o[X+=1];){if(_===k&&ce===\"\\\\\"){switch(de=X,o[X+1]){case\"x\":X+=3;break;case\"u\":X+=5;break;case\"U\":X+=9;break;default:X+=1}re=X}if(ce===`\n`)_===L&&(X=B(o,X)),oe=X+W,le=void 0;else{if(ce===\" \"&&Z&&Z!==\" \"&&Z!==`\n`&&Z!==\"\t\"){let fe=o[X+1];fe&&fe!==\" \"&&fe!==`\n`&&fe!==\"\t\"&&(le=X)}if(X>=oe)if(le)U.push(le),oe=le+W,le=void 0;else if(_===k){for(;Z===\" \"||Z===\"\t\";)Z=ce,ce=o[X+=1],ee=!0;let fe=X>re+1?X-2:de-1;if(H[fe])return o;U.push(fe),H[fe]=!0,oe=fe+W,le=void 0}else ee=!0}Z=ce}if(ee&&Y&&Y(),U.length===0)return o;N&&N();let he=o.slice(0,U[0]);for(let ce=0;ce{let{indentAtStart:l}=o;return l?Object.assign({indentAtStart:l},g.fold):g.fold},z=o=>/^(%|---|\\.\\.\\.)/m.test(o);function ie(o,l,_){if(!l||l<0)return!1;let v=l-_,b=o.length;if(b<=v)return!1;for(let w=0,A=0;wv)return!0;if(A=w+1,b-A<=v)return!1}return!0}function ue(o,l){let{implicitKey:_}=l,{jsonEncoding:v,minMultiLineLength:b}=g.doubleQuoted,w=JSON.stringify(o);if(v)return w;let A=l.indent||(z(o)?\" \":\"\"),N=\"\",Y=0;for(let W=0,U=w[W];U;U=w[++W])if(U===\" \"&&w[W+1]===\"\\\\\"&&w[W+2]===\"n\"&&(N+=w.slice(Y,W)+\"\\\\ \",W+=1,Y=W,U=\"\\\\\"),U===\"\\\\\")switch(w[W+1]){case\"u\":{N+=w.slice(Y,W);let H=w.substr(W+2,4);switch(H){case\"0000\":N+=\"\\\\0\";break;case\"0007\":N+=\"\\\\a\";break;case\"000b\":N+=\"\\\\v\";break;case\"001b\":N+=\"\\\\e\";break;case\"0085\":N+=\"\\\\N\";break;case\"00a0\":N+=\"\\\\_\";break;case\"2028\":N+=\"\\\\L\";break;case\"2029\":N+=\"\\\\P\";break;default:H.substr(0,2)===\"00\"?N+=\"\\\\x\"+H.substr(2):N+=w.substr(W,6)}W+=5,Y=W+1}break;case\"n\":if(_||w[W+2]==='\"'||w.length\";if(!A)return U+`\n`;let H=\"\",oe=\"\";if(A=A.replace(/[\\n\\t ]*$/,Z=>{let ee=Z.indexOf(`\n`);return ee===-1?U+=\"-\":(A===Z||ee!==Z.length-1)&&(U+=\"+\",v&&v()),oe=Z.replace(/\\n$/,\"\"),\"\"}).replace(/^[\\n ]*/,Z=>{Z.indexOf(\" \")!==-1&&(U+=Y);let ee=Z.match(/ +$/);return ee?(H=Z.slice(0,-ee[0].length),ee[0]):(H=Z,\"\")}),oe&&(oe=oe.replace(/\\n+(?!\\n|$)/g,\"$&\".concat(N))),H&&(H=H.replace(/\\n+/g,\"$&\".concat(N))),b&&(U+=\" #\"+b.replace(/ ?[\\r\\n]+/g,\" \"),_&&_()),!A)return\"\".concat(U).concat(Y,`\n`).concat(N).concat(oe);if(W)return A=A.replace(/\\n+/g,\"$&\".concat(N)),\"\".concat(U,`\n`).concat(N).concat(H).concat(A).concat(oe);A=A.replace(/\\n+/g,`\n$&`).replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g,\"$1$2\").replace(/\\n+/g,\"$&\".concat(N));let le=$(\"\".concat(H).concat(A).concat(oe),N,L,g.fold);return\"\".concat(U,`\n`).concat(N).concat(le)}function O(o,l,_,v){let{comment:b,type:w,value:A}=o,{actualString:N,implicitKey:Y,indent:W,inFlow:U}=l;if(Y&&/[\\n[\\]{},]/.test(A)||U&&/[[\\]{},]/.test(A))return ue(A,l);if(!A||/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(A))return Y||U||A.indexOf(`\n`)===-1?A.indexOf('\"')!==-1&&A.indexOf(\"'\")===-1?pe(A,l):ue(A,l):ge(o,l,_,v);if(!Y&&!U&&w!==e.Type.PLAIN&&A.indexOf(`\n`)!==-1)return ge(o,l,_,v);if(W===\"\"&&z(A))return l.forceBlockIndent=!0,ge(o,l,_,v);let H=A.replace(/\\n+/g,`$&\n`.concat(W));if(N){let{tags:le}=l.doc.schema;if(typeof u(H,le,le.scalarFallback).value!=\"string\")return ue(A,l)}let oe=Y?H:$(H,W,p,Q(l));return b&&!U&&(oe.indexOf(`\n`)!==-1||b.indexOf(`\n`)!==-1)?(_&&_(),n(oe,W,b)):oe}function V(o,l,_,v){let{defaultType:b}=g,{implicitKey:w,inFlow:A}=l,{type:N,value:Y}=o;typeof Y!=\"string\"&&(Y=String(Y),o=Object.assign({},o,{value:Y}));let W=H=>{switch(H){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return ge(o,l,_,v);case e.Type.QUOTE_DOUBLE:return ue(Y,l);case e.Type.QUOTE_SINGLE:return pe(Y,l);case e.Type.PLAIN:return O(o,l,_,v);default:return null}};(N!==e.Type.QUOTE_DOUBLE&&/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f]/.test(Y)||(w||A)&&(N===e.Type.BLOCK_FOLDED||N===e.Type.BLOCK_LITERAL))&&(N=e.Type.QUOTE_DOUBLE);let U=W(N);if(U===null&&(U=W(b),U===null))throw new Error(\"Unsupported default string type \".concat(b));return U}function J(o){let{format:l,minFractionDigits:_,tag:v,value:b}=o;if(typeof b==\"bigint\")return String(b);if(!isFinite(b))return isNaN(b)?\".nan\":b<0?\"-.inf\":\".inf\";let w=JSON.stringify(b);if(!l&&_&&(!v||v===\"tag:yaml.org,2002:float\")&&/^\\d/.test(w)){let A=w.indexOf(\".\");A<0&&(A=w.length,w+=\".\");let N=_-(w.length-A-1);for(;N-- >0;)w+=\"0\"}return w}function x(o,l){let _,v;switch(l.type){case e.Type.FLOW_MAP:_=\"}\",v=\"flow map\";break;case e.Type.FLOW_SEQ:_=\"]\",v=\"flow sequence\";break;default:o.push(new e.YAMLSemanticError(l,\"Not a flow collection!?\"));return}let b;for(let w=l.items.length-1;w>=0;--w){let A=l.items[w];if(!A||A.type!==e.Type.COMMENT){b=A;break}}if(b&&b.char!==_){let w=\"Expected \".concat(v,\" to end with \").concat(_),A;typeof b.offset==\"number\"?(A=new e.YAMLSemanticError(l,w),A.offset=b.offset+1):(A=new e.YAMLSemanticError(b,w),b.range&&b.range.end&&(A.offset=b.range.end-b.range.start)),o.push(A)}}function G(o,l){let _=l.context.src[l.range.start-1];if(_!==`\n`&&_!==\"\t\"&&_!==\" \"){let v=\"Comments must be separated from other tokens by white space characters\";o.push(new e.YAMLSemanticError(l,v))}}function ne(o,l){let _=String(l),v=_.substr(0,8)+\"...\"+_.substr(-8);return new e.YAMLSemanticError(o,'The \"'.concat(v,'\" key is too long'))}function _e(o,l){for(let{afterKey:_,before:v,comment:b}of l){let w=o.items[v];w?(_&&w.value&&(w=w.value),b===void 0?(_||!w.commentBefore)&&(w.spaceBefore=!0):w.commentBefore?w.commentBefore+=`\n`+b:w.commentBefore=b):b!==void 0&&(o.comment?o.comment+=`\n`+b:o.comment=b)}}function ye(o,l){let _=l.strValue;return _?typeof _==\"string\"?_:(_.errors.forEach(v=>{v.source||(v.source=l),o.errors.push(v)}),_.str):\"\"}function be(o,l){let{handle:_,suffix:v}=l.tag,b=o.tagPrefixes.find(w=>w.handle===_);if(!b){let w=o.getDefaults().tagPrefixes;if(w&&(b=w.find(A=>A.handle===_)),!b)throw new e.YAMLSemanticError(l,\"The \".concat(_,\" tag handle is non-default and was not declared.\"))}if(!v)throw new e.YAMLSemanticError(l,\"The \".concat(_,\" tag has no suffix.\"));if(_===\"!\"&&(o.version||o.options.version)===\"1.0\"){if(v[0]===\"^\")return o.warnings.push(new e.YAMLWarning(l,\"YAML 1.0 ^ tag expansion is not supported\")),v;if(/[:/]/.test(v)){let w=v.match(/^([a-z0-9-]+)\\/(.*)/i);return w?\"tag:\".concat(w[1],\".yaml.org,2002:\").concat(w[2]):\"tag:\".concat(v)}}return b.prefix+decodeURIComponent(v)}function ve(o,l){let{tag:_,type:v}=l,b=!1;if(_){let{handle:w,suffix:A,verbatim:N}=_;if(N){if(N!==\"!\"&&N!==\"!!\")return N;let Y=\"Verbatim tags aren't resolved, so \".concat(N,\" is invalid.\");o.errors.push(new e.YAMLSemanticError(l,Y))}else if(w===\"!\"&&!A)b=!0;else try{return be(o,l)}catch(Y){o.errors.push(Y)}}switch(v){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:case e.Type.QUOTE_DOUBLE:case e.Type.QUOTE_SINGLE:return e.defaultTags.STR;case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;case e.Type.PLAIN:return b?e.defaultTags.STR:null;default:return null}}function Ne(o,l,_){let{tags:v}=o.schema,b=[];for(let A of v)if(A.tag===_)if(A.test)b.push(A);else{let N=A.resolve(o,l);return N instanceof S?N:new y(N)}let w=ye(o,l);return typeof w==\"string\"&&b.length>0?u(w,b,v.scalarFallback):null}function Pe(o){let{type:l}=o;switch(l){case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;default:return e.defaultTags.STR}}function ct(o,l,_){try{let v=Ne(o,l,_);if(v)return _&&l.tag&&(v.tag=_),v}catch(v){return v.source||(v.source=l),o.errors.push(v),null}try{let v=Pe(l);if(!v)throw new Error(\"The tag \".concat(_,\" is unavailable\"));let b=\"The tag \".concat(_,\" is unavailable, falling back to \").concat(v);o.warnings.push(new e.YAMLWarning(l,b));let w=Ne(o,l,v);return w.tag=_,w}catch(v){let b=new e.YAMLReferenceError(l,v.message);return b.stack=v.stack,o.errors.push(b),null}}var ut=o=>{if(!o)return!1;let{type:l}=o;return l===e.Type.MAP_KEY||l===e.Type.MAP_VALUE||l===e.Type.SEQ_ITEM};function ft(o,l){let _={before:[],after:[]},v=!1,b=!1,w=ut(l.context.parent)?l.context.parent.props.concat(l.props):l.props;for(let{start:A,end:N}of w)switch(l.context.src[A]){case e.Char.COMMENT:{if(!l.commentHasRequiredWhitespace(A)){let H=\"Comments must be separated from other tokens by white space characters\";o.push(new e.YAMLSemanticError(l,H))}let{header:Y,valueRange:W}=l;(W&&(A>W.start||Y&&A>Y.start)?_.after:_.before).push(l.context.src.slice(A+1,N));break}case e.Char.ANCHOR:if(v){let Y=\"A node can have at most one anchor\";o.push(new e.YAMLSemanticError(l,Y))}v=!0;break;case e.Char.TAG:if(b){let Y=\"A node can have at most one tag\";o.push(new e.YAMLSemanticError(l,Y))}b=!0;break}return{comments:_,hasAnchor:v,hasTag:b}}function mt(o,l){let{anchors:_,errors:v,schema:b}=o;if(l.type===e.Type.ALIAS){let A=l.rawValue,N=_.getNode(A);if(!N){let W=\"Aliased anchor not found: \".concat(A);return v.push(new e.YAMLReferenceError(l,W)),null}let Y=new R(N);return _._cstAliases.push(Y),Y}let w=ve(o,l);if(w)return ct(o,l,w);if(l.type!==e.Type.PLAIN){let A=\"Failed to resolve \".concat(l.type,\" node here\");return v.push(new e.YAMLSyntaxError(l,A)),null}try{let A=ye(o,l);return u(A,b.tags,b.tags.scalarFallback)}catch(A){return A.source||(A.source=l),v.push(A),null}}function we(o,l){if(!l)return null;l.error&&o.errors.push(l.error);let{comments:_,hasAnchor:v,hasTag:b}=ft(o.errors,l);if(v){let{anchors:A}=o,N=l.anchor,Y=A.getNode(N);Y&&(A.map[A.newName(N)]=Y),A.map[N]=l}if(l.type===e.Type.ALIAS&&(v||b)){let A=\"An alias node must not specify any properties\";o.errors.push(new e.YAMLSemanticError(l,A))}let w=mt(o,l);if(w){w.range=[l.range.start,l.range.end],o.options.keepCstNodes&&(w.cstNode=l),o.options.keepNodeTypes&&(w.type=l.type);let A=_.before.join(`\n`);A&&(w.commentBefore=w.commentBefore?\"\".concat(w.commentBefore,`\n`).concat(A):A);let N=_.after.join(`\n`);N&&(w.comment=w.comment?\"\".concat(w.comment,`\n`).concat(N):N)}return l.resolved=w}function dt(o,l){if(l.type!==e.Type.MAP&&l.type!==e.Type.FLOW_MAP){let A=\"A \".concat(l.type,\" node cannot be resolved as a mapping\");return o.errors.push(new e.YAMLSyntaxError(l,A)),null}let{comments:_,items:v}=l.type===e.Type.FLOW_MAP?_t(o,l):pt(o,l),b=new K;b.items=v,_e(b,_);let w=!1;for(let A=0;A{if(U instanceof R){let{type:H}=U.source;return H===e.Type.MAP||H===e.Type.FLOW_MAP?!1:W=\"Merge nodes aliases can only point to maps\"}return W=\"Merge nodes can only have Alias nodes as values\"}),W&&o.errors.push(new e.YAMLSemanticError(l,W))}else for(let Y=A+1;Y{let{context:{lineStart:l,node:_,src:v},props:b}=o;if(b.length===0)return!1;let{start:w}=b[0];if(_&&w>_.valueRange.start||v[w]!==e.Char.COMMENT)return!1;for(let A=l;A0){Y=new e.PlainValue(e.Type.PLAIN,[]),Y.context={parent:N,src:N.context.src};let U=N.range.start+1;if(Y.range={start:U,end:U},Y.valueRange={start:U,end:U},typeof N.range.origStart==\"number\"){let H=N.range.origStart+1;Y.range.origStart=Y.range.origEnd=H,Y.valueRange.origStart=Y.valueRange.origEnd=H}}let W=new C(b,we(o,Y));gt(N,W),v.push(W),b&&typeof w==\"number\"&&N.range.start>w+1024&&o.errors.push(ne(l,b)),b=void 0,w=null}break;default:b!==void 0&&v.push(new C(b)),b=we(o,N),w=N.range.start,N.error&&o.errors.push(N.error);e:for(let Y=A+1;;++Y){let W=l.items[Y];switch(W&&W.type){case e.Type.BLANK_LINE:case e.Type.COMMENT:continue e;case e.Type.MAP_VALUE:break e;default:{let U=\"Implicit map keys need to be followed by map values\";o.errors.push(new e.YAMLSemanticError(N,U));break e}}}if(N.valueRangeContainsNewline){let Y=\"Implicit map keys need to be on a single line\";o.errors.push(new e.YAMLSemanticError(N,Y))}}}return b!==void 0&&v.push(new C(b)),{comments:_,items:v}}function _t(o,l){let _=[],v=[],b,w=!1,A=\"{\";for(let N=0;Nw instanceof C&&w.key instanceof S)){let w=\"Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.\";o.warnings.push(new e.YAMLWarning(l,w))}return l.resolved=b,b}function yt(o,l){let _=[],v=[];for(let b=0;bA+1024&&o.errors.push(ne(l,w));let{src:Z}=Y.context;for(let ee=A;eeu instanceof Uint8Array,default:!1,tag:\"tag:yaml.org,2002:binary\",resolve:(u,p)=>{let L=n.resolveString(u,p);if(typeof Buffer==\"function\")return Buffer.from(L,\"base64\");if(typeof atob==\"function\"){let k=atob(L.replace(/[\\n\\r]/g,\"\")),B=new Uint8Array(k.length);for(let $=0;${let{comment:B,type:$,value:Q}=u,z;if(typeof Buffer==\"function\")z=Q instanceof Buffer?Q.toString(\"base64\"):Buffer.from(Q.buffer).toString(\"base64\");else if(typeof btoa==\"function\"){let ie=\"\";for(let ue=0;ue1){let Q=\"Each pair must have its own sequence indicator\";throw new e.YAMLSemanticError(p,Q)}let $=B.items[0]||new n.Pair;B.commentBefore&&($.commentBefore=$.commentBefore?\"\".concat(B.commentBefore,`\n`).concat($.commentBefore):B.commentBefore),B.comment&&($.comment=$.comment?\"\".concat(B.comment,`\n`).concat($.comment):B.comment),B=$}L.items[k]=B instanceof n.Pair?B:new n.Pair(B)}}return L}function d(u,p,L){let k=new n.YAMLSeq(u);k.tag=\"tag:yaml.org,2002:pairs\";for(let B of p){let $,Q;if(Array.isArray(B))if(B.length===2)$=B[0],Q=B[1];else throw new TypeError(\"Expected [key, value] tuple: \".concat(B));else if(B&&B instanceof Object){let ie=Object.keys(B);if(ie.length===1)$=ie[0],Q=B[$];else throw new TypeError(\"Expected { key: value } tuple: \".concat(B))}else $=B;let z=u.createPair($,Q,L);k.items.push(z)}return k}var y={default:!1,tag:\"tag:yaml.org,2002:pairs\",resolve:h,createNode:d},E=class extends n.YAMLSeq{constructor(){super(),e._defineProperty(this,\"add\",n.YAMLMap.prototype.add.bind(this)),e._defineProperty(this,\"delete\",n.YAMLMap.prototype.delete.bind(this)),e._defineProperty(this,\"get\",n.YAMLMap.prototype.get.bind(this)),e._defineProperty(this,\"has\",n.YAMLMap.prototype.has.bind(this)),e._defineProperty(this,\"set\",n.YAMLMap.prototype.set.bind(this)),this.tag=E.tag}toJSON(u,p){let L=new Map;p&&p.onCreate&&p.onCreate(L);for(let k of this.items){let B,$;if(k instanceof n.Pair?(B=n.toJSON(k.key,\"\",p),$=n.toJSON(k.value,B,p)):B=n.toJSON(k,\"\",p),L.has(B))throw new Error(\"Ordered maps must not include duplicate keys\");L.set(B,$)}return L}};e._defineProperty(E,\"tag\",\"tag:yaml.org,2002:omap\");function I(u,p){let L=h(u,p),k=[];for(let{key:B}of L.items)if(B instanceof n.Scalar)if(k.includes(B.value)){let $=\"Ordered maps must not include duplicate keys\";throw new e.YAMLSemanticError(p,$)}else k.push(B.value);return Object.assign(new E,L)}function S(u,p,L){let k=d(u,p,L),B=new E;return B.items=k.items,B}var M={identify:u=>u instanceof Map,nodeClass:E,default:!1,tag:\"tag:yaml.org,2002:omap\",resolve:I,createNode:S},T=class extends n.YAMLMap{constructor(){super(),this.tag=T.tag}add(u){let p=u instanceof n.Pair?u:new n.Pair(u);n.findPair(this.items,p.key)||this.items.push(p)}get(u,p){let L=n.findPair(this.items,u);return!p&&L instanceof n.Pair?L.key instanceof n.Scalar?L.key.value:L.key:L}set(u,p){if(typeof p!=\"boolean\")throw new Error(\"Expected boolean value for set(key, value) in a YAML set, not \".concat(typeof p));let L=n.findPair(this.items,u);L&&!p?this.items.splice(this.items.indexOf(L),1):!L&&p&&this.items.push(new n.Pair(u))}toJSON(u,p){return super.toJSON(u,p,Set)}toString(u,p,L){if(!u)return JSON.stringify(this);if(this.hasAllNullValues())return super.toString(u,p,L);throw new Error(\"Set items must all have null values\")}};e._defineProperty(T,\"tag\",\"tag:yaml.org,2002:set\");function P(u,p){let L=n.resolveMap(u,p);if(!L.hasAllNullValues())throw new e.YAMLSemanticError(p,\"Set items must all have null values\");return Object.assign(new T,L)}function C(u,p,L){let k=new T;for(let B of p)k.items.push(u.createPair(B,null,L));return k}var q={identify:u=>u instanceof Set,nodeClass:T,default:!1,tag:\"tag:yaml.org,2002:set\",resolve:P,createNode:C},R=(u,p)=>{let L=p.split(\":\").reduce((k,B)=>k*60+Number(B),0);return u===\"-\"?-L:L},j=u=>{let{value:p}=u;if(isNaN(p)||!isFinite(p))return n.stringifyNumber(p);let L=\"\";p<0&&(L=\"-\",p=Math.abs(p));let k=[p%60];return p<60?k.unshift(0):(p=Math.round((p-k[0])/60),k.unshift(p%60),p>=60&&(p=Math.round((p-k[0])/60),k.unshift(p))),L+k.map(B=>B<10?\"0\"+String(B):String(B)).join(\":\").replace(/000000\\d*$/,\"\")},K={identify:u=>typeof u==\"number\",default:!0,tag:\"tag:yaml.org,2002:int\",format:\"TIME\",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:(u,p,L)=>R(p,L.replace(/_/g,\"\")),stringify:j},m={identify:u=>typeof u==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"TIME\",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*)$/,resolve:(u,p,L)=>R(p,L.replace(/_/g,\"\")),stringify:j},a={identify:u=>u instanceof Date,default:!0,tag:\"tag:yaml.org,2002:timestamp\",test:RegExp(\"^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\\\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$\"),resolve:(u,p,L,k,B,$,Q,z,ie)=>{z&&(z=(z+\"00\").substr(1,3));let ue=Date.UTC(p,L-1,k,B||0,$||0,Q||0,z||0);if(ie&&ie!==\"Z\"){let pe=R(ie[0],ie.slice(1));Math.abs(pe)<30&&(pe*=60),ue-=6e4*pe}return new Date(ue)},stringify:u=>{let{value:p}=u;return p.toISOString().replace(/((T00:00)?:00)?\\.000Z$/,\"\")}};function t(u){let p=typeof Te<\"u\"&&Te.env||{};return u?typeof YAML_SILENCE_DEPRECATION_WARNINGS<\"u\"?!YAML_SILENCE_DEPRECATION_WARNINGS:!p.YAML_SILENCE_DEPRECATION_WARNINGS:typeof YAML_SILENCE_WARNINGS<\"u\"?!YAML_SILENCE_WARNINGS:!p.YAML_SILENCE_WARNINGS}function s(u,p){if(t(!1)){let L=typeof Te<\"u\"&&Te.emitWarning;L?L(u,p):console.warn(p?\"\".concat(p,\": \").concat(u):u)}}function i(u){if(t(!0)){let p=u.replace(/.*yaml[/\\\\]/i,\"\").replace(/\\.js$/,\"\").replace(/\\\\/g,\"/\");s(\"The endpoint 'yaml/\".concat(p,\"' will be removed in a future release.\"),\"DeprecationWarning\")}}var f={};function g(u,p){if(!f[u]&&t(!0)){f[u]=!0;let L=\"The option '\".concat(u,\"' will be removed in a future release\");L+=p?\", use '\".concat(p,\"' instead.\"):\".\",s(L,\"DeprecationWarning\")}}r.binary=c,r.floatTime=m,r.intTime=K,r.omap=M,r.pairs=y,r.set=q,r.timestamp=a,r.warn=s,r.warnFileDeprecation=i,r.warnOptionDeprecation=g}}),ot=F({\"node_modules/yaml/dist/Schema-88e323a7.js\"(r){\"use strict\";D();var e=Me(),n=ke(),c=it();function h(O,V,J){let x=new n.YAMLMap(O);if(V instanceof Map)for(let[G,ne]of V)x.items.push(O.createPair(G,ne,J));else if(V&&typeof V==\"object\")for(let G of Object.keys(V))x.items.push(O.createPair(G,V[G],J));return typeof O.sortMapEntries==\"function\"&&x.items.sort(O.sortMapEntries),x}var d={createNode:h,default:!0,nodeClass:n.YAMLMap,tag:\"tag:yaml.org,2002:map\",resolve:n.resolveMap};function y(O,V,J){let x=new n.YAMLSeq(O);if(V&&V[Symbol.iterator])for(let G of V){let ne=O.createNode(G,J.wrapScalars,null,J);x.items.push(ne)}return x}var E={createNode:y,default:!0,nodeClass:n.YAMLSeq,tag:\"tag:yaml.org,2002:seq\",resolve:n.resolveSeq},I={identify:O=>typeof O==\"string\",default:!0,tag:\"tag:yaml.org,2002:str\",resolve:n.resolveString,stringify(O,V,J,x){return V=Object.assign({actualString:!0},V),n.stringifyString(O,V,J,x)},options:n.strOptions},S=[d,E,I],M=O=>typeof O==\"bigint\"||Number.isInteger(O),T=(O,V,J)=>n.intOptions.asBigInt?BigInt(O):parseInt(V,J);function P(O,V,J){let{value:x}=O;return M(x)&&x>=0?J+x.toString(V):n.stringifyNumber(O)}var C={identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},q={identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:O=>O[0]===\"t\"||O[0]===\"T\",options:n.boolOptions,stringify:O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr}},R={identify:O=>M(O)&&O>=0,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"OCT\",test:/^0o([0-7]+)$/,resolve:(O,V)=>T(O,V,8),options:n.intOptions,stringify:O=>P(O,8,\"0o\")},j={identify:M,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^[-+]?[0-9]+$/,resolve:O=>T(O,O,10),options:n.intOptions,stringify:n.stringifyNumber},K={identify:O=>M(O)&&O>=0,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"HEX\",test:/^0x([0-9a-fA-F]+)$/,resolve:(O,V)=>T(O,V,16),options:n.intOptions,stringify:O=>P(O,16,\"0x\")},m={identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^(?:[-+]?\\.inf|(\\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]===\"-\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},a={identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"EXP\",test:/^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},t={identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^[-+]?(?:\\.([0-9]+)|[0-9]+\\.([0-9]*))$/,resolve(O,V,J){let x=V||J,G=new n.Scalar(parseFloat(O));return x&&x[x.length-1]===\"0\"&&(G.minFractionDigits=x.length),G},stringify:n.stringifyNumber},s=S.concat([C,q,R,j,K,m,a,t]),i=O=>typeof O==\"bigint\"||Number.isInteger(O),f=O=>{let{value:V}=O;return JSON.stringify(V)},g=[d,E,{identify:O=>typeof O==\"string\",default:!0,tag:\"tag:yaml.org,2002:str\",resolve:n.resolveString,stringify:f},{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^null$/,resolve:()=>null,stringify:f},{identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^true|false$/,resolve:O=>O===\"true\",stringify:f},{identify:i,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:O=>n.intOptions.asBigInt?BigInt(O):parseInt(O,10),stringify:O=>{let{value:V}=O;return i(V)?V.toString():JSON.stringify(V)}},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:O=>parseFloat(O),stringify:f}];g.scalarFallback=O=>{throw new SyntaxError(\"Unresolved plain scalar \".concat(JSON.stringify(O)))};var u=O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr},p=O=>typeof O==\"bigint\"||Number.isInteger(O);function L(O,V,J){let x=V.replace(/_/g,\"\");if(n.intOptions.asBigInt){switch(J){case 2:x=\"0b\".concat(x);break;case 8:x=\"0o\".concat(x);break;case 16:x=\"0x\".concat(x);break}let ne=BigInt(x);return O===\"-\"?BigInt(-1)*ne:ne}let G=parseInt(x,J);return O===\"-\"?-1*G:G}function k(O,V,J){let{value:x}=O;if(p(x)){let G=x.toString(V);return x<0?\"-\"+J+G.substr(1):J+G}return n.stringifyNumber(O)}var B=S.concat([{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},{identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>!0,options:n.boolOptions,stringify:u},{identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>!1,options:n.boolOptions,stringify:u},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"BIN\",test:/^([-+]?)0b([0-1_]+)$/,resolve:(O,V,J)=>L(V,J,2),stringify:O=>k(O,2,\"0b\")},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"OCT\",test:/^([-+]?)0([0-7_]+)$/,resolve:(O,V,J)=>L(V,J,8),stringify:O=>k(O,8,\"0\")},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:(O,V,J)=>L(V,J,10),stringify:n.stringifyNumber},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"HEX\",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:(O,V,J)=>L(V,J,16),stringify:O=>k(O,16,\"0x\")},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^(?:[-+]?\\.inf|(\\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]===\"-\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"EXP\",test:/^[-+]?([0-9][0-9_]*)?(\\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O.replace(/_/g,\"\")),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^[-+]?(?:[0-9][0-9_]*)?\\.([0-9_]*)$/,resolve(O,V){let J=new n.Scalar(parseFloat(O.replace(/_/g,\"\")));if(V){let x=V.replace(/_/g,\"\");x[x.length-1]===\"0\"&&(J.minFractionDigits=x.length)}return J},stringify:n.stringifyNumber}],c.binary,c.omap,c.pairs,c.set,c.intTime,c.floatTime,c.timestamp),$={core:s,failsafe:S,json:g,yaml11:B},Q={binary:c.binary,bool:q,float:t,floatExp:a,floatNaN:m,floatTime:c.floatTime,int:j,intHex:K,intOct:R,intTime:c.intTime,map:d,null:C,omap:c.omap,pairs:c.pairs,seq:E,set:c.set,timestamp:c.timestamp};function z(O,V,J){if(V){let x=J.filter(ne=>ne.tag===V),G=x.find(ne=>!ne.format)||x[0];if(!G)throw new Error(\"Tag \".concat(V,\" not found\"));return G}return J.find(x=>(x.identify&&x.identify(O)||x.class&&O instanceof x.class)&&!x.format)}function ie(O,V,J){if(O instanceof n.Node)return O;let{defaultPrefix:x,onTagObj:G,prevObjects:ne,schema:_e,wrapScalars:ye}=J;V&&V.startsWith(\"!!\")&&(V=x+V.slice(2));let be=z(O,V,_e.tags);if(!be){if(typeof O.toJSON==\"function\"&&(O=O.toJSON()),!O||typeof O!=\"object\")return ye?new n.Scalar(O):O;be=O instanceof Map?d:O[Symbol.iterator]?E:d}G&&(G(be),delete J.onTagObj);let ve={value:void 0,node:void 0};if(O&&typeof O==\"object\"&&ne){let Ne=ne.get(O);if(Ne){let Pe=new n.Alias(Ne);return J.aliasNodes.push(Pe),Pe}ve.value=O,ne.set(O,ve)}return ve.node=be.createNode?be.createNode(J.schema,O,J):ye?new n.Scalar(O):O,V&&ve.node instanceof n.Node&&(ve.node.tag=V),ve.node}function ue(O,V,J,x){let G=O[x.replace(/\\W/g,\"\")];if(!G){let ne=Object.keys(O).map(_e=>JSON.stringify(_e)).join(\", \");throw new Error('Unknown schema \"'.concat(x,'\"; use one of ').concat(ne))}if(Array.isArray(J))for(let ne of J)G=G.concat(ne);else typeof J==\"function\"&&(G=J(G.slice()));for(let ne=0;neJSON.stringify(ve)).join(\", \");throw new Error('Unknown custom tag \"'.concat(_e,'\"; use one of ').concat(be))}G[ne]=ye}}return G}var pe=(O,V)=>O.keyV.key?1:0,ge=class{constructor(O){let{customTags:V,merge:J,schema:x,sortMapEntries:G,tags:ne}=O;this.merge=!!J,this.name=x,this.sortMapEntries=G===!0?pe:G||null,!V&&ne&&c.warnOptionDeprecation(\"tags\",\"customTags\"),this.tags=ue($,Q,V||ne,x)}createNode(O,V,J,x){let G={defaultPrefix:ge.defaultPrefix,schema:this,wrapScalars:V},ne=x?Object.assign(x,G):G;return ie(O,J,ne)}createPair(O,V,J){J||(J={wrapScalars:!0});let x=this.createNode(O,J.wrapScalars,null,J),G=this.createNode(V,J.wrapScalars,null,J);return new n.Pair(x,G)}};e._defineProperty(ge,\"defaultPrefix\",e.defaultTagPrefix),e._defineProperty(ge,\"defaultTags\",e.defaultTags),r.Schema=ge}}),zn=F({\"node_modules/yaml/dist/Document-9b4560a1.js\"(r){\"use strict\";D();var e=Me(),n=ke(),c=ot(),h={anchorPrefix:\"a\",customTags:null,indent:2,indentSeq:!0,keepCstNodes:!1,keepNodeTypes:!0,keepBlobsInJSON:!0,mapAsMap:!1,maxAliasCount:100,prettyErrors:!1,simpleKeys:!1,version:\"1.2\"},d={get binary(){return n.binaryOptions},set binary(t){Object.assign(n.binaryOptions,t)},get bool(){return n.boolOptions},set bool(t){Object.assign(n.boolOptions,t)},get int(){return n.intOptions},set int(t){Object.assign(n.intOptions,t)},get null(){return n.nullOptions},set null(t){Object.assign(n.nullOptions,t)},get str(){return n.strOptions},set str(t){Object.assign(n.strOptions,t)}},y={\"1.0\":{schema:\"yaml-1.1\",merge:!0,tagPrefixes:[{handle:\"!\",prefix:e.defaultTagPrefix},{handle:\"!!\",prefix:\"tag:private.yaml.org,2002:\"}]},1.1:{schema:\"yaml-1.1\",merge:!0,tagPrefixes:[{handle:\"!\",prefix:\"!\"},{handle:\"!!\",prefix:e.defaultTagPrefix}]},1.2:{schema:\"core\",merge:!1,tagPrefixes:[{handle:\"!\",prefix:\"!\"},{handle:\"!!\",prefix:e.defaultTagPrefix}]}};function E(t,s){if((t.version||t.options.version)===\"1.0\"){let g=s.match(/^tag:private\\.yaml\\.org,2002:([^:/]+)$/);if(g)return\"!\"+g[1];let u=s.match(/^tag:([a-zA-Z0-9-]+)\\.yaml\\.org,2002:(.*)/);return u?\"!\".concat(u[1],\"/\").concat(u[2]):\"!\".concat(s.replace(/^tag:/,\"\"))}let i=t.tagPrefixes.find(g=>s.indexOf(g.prefix)===0);if(!i){let g=t.getDefaults().tagPrefixes;i=g&&g.find(u=>s.indexOf(u.prefix)===0)}if(!i)return s[0]===\"!\"?s:\"!<\".concat(s,\">\");let f=s.substr(i.prefix.length).replace(/[!,[\\]{}]/g,g=>({\"!\":\"%21\",\",\":\"%2C\",\"[\":\"%5B\",\"]\":\"%5D\",\"{\":\"%7B\",\"}\":\"%7D\"})[g]);return i.handle+f}function I(t,s){if(s instanceof n.Alias)return n.Alias;if(s.tag){let g=t.filter(u=>u.tag===s.tag);if(g.length>0)return g.find(u=>u.format===s.format)||g[0]}let i,f;if(s instanceof n.Scalar){f=s.value;let g=t.filter(u=>u.identify&&u.identify(f)||u.class&&f instanceof u.class);i=g.find(u=>u.format===s.format)||g.find(u=>!u.format)}else f=s,i=t.find(g=>g.nodeClass&&f instanceof g.nodeClass);if(!i){let g=f&&f.constructor?f.constructor.name:typeof f;throw new Error(\"Tag not resolved for \".concat(g,\" value\"))}return i}function S(t,s,i){let{anchors:f,doc:g}=i,u=[],p=g.anchors.getName(t);return p&&(f[p]=t,u.push(\"&\".concat(p))),t.tag?u.push(E(g,t.tag)):s.default||u.push(E(g,s.tag)),u.join(\" \")}function M(t,s,i,f){let{anchors:g,schema:u}=s.doc,p;if(!(t instanceof n.Node)){let B={aliasNodes:[],onTagObj:$=>p=$,prevObjects:new Map};t=u.createNode(t,!0,null,B);for(let $ of B.aliasNodes){$.source=$.source.node;let Q=g.getName($.source);Q||(Q=g.newName(),g.map[Q]=$.source)}}if(t instanceof n.Pair)return t.toString(s,i,f);p||(p=I(u.tags,t));let L=S(t,p,s);L.length>0&&(s.indentAtStart=(s.indentAtStart||0)+L.length+1);let k=typeof p.stringify==\"function\"?p.stringify(t,s,i,f):t instanceof n.Scalar?n.stringifyString(t,s,i,f):t.toString(s,i,f);return L?t instanceof n.Scalar||k[0]===\"{\"||k[0]===\"[\"?\"\".concat(L,\" \").concat(k):\"\".concat(L,`\n`).concat(s.indent).concat(k):k}var T=class{static validAnchorNode(t){return t instanceof n.Scalar||t instanceof n.YAMLSeq||t instanceof n.YAMLMap}constructor(t){e._defineProperty(this,\"map\",Object.create(null)),this.prefix=t}createAlias(t,s){return this.setAnchor(t,s),new n.Alias(t)}createMergePair(){let t=new n.Merge;for(var s=arguments.length,i=new Array(s),f=0;f{if(g instanceof n.Alias){if(g.source instanceof n.YAMLMap)return g}else if(g instanceof n.YAMLMap)return this.createAlias(g);throw new Error(\"Merge sources must be Map nodes or their Aliases\")}),t}getName(t){let{map:s}=this;return Object.keys(s).find(i=>s[i]===t)}getNames(){return Object.keys(this.map)}getNode(t){return this.map[t]}newName(t){t||(t=this.prefix);let s=Object.keys(this.map);for(let i=1;;++i){let f=\"\".concat(t).concat(i);if(!s.includes(f))return f}}resolveNodes(){let{map:t,_cstAliases:s}=this;Object.keys(t).forEach(i=>{t[i]=t[i].resolved}),s.forEach(i=>{i.source=i.source.resolved}),delete this._cstAliases}setAnchor(t,s){if(t!=null&&!T.validAnchorNode(t))throw new Error(\"Anchors may only be set for Scalar, Seq and Map nodes\");if(s&&/[\\x00-\\x19\\s,[\\]{}]/.test(s))throw new Error(\"Anchor names must not contain whitespace or control characters\");let{map:i}=this,f=t&&Object.keys(i).find(g=>i[g]===t);if(f)if(s)f!==s&&(delete i[f],i[s]=t);else return f;else{if(!s){if(!t)return null;s=this.newName()}i[s]=t}return s}},P=(t,s)=>{if(t&&typeof t==\"object\"){let{tag:i}=t;t instanceof n.Collection?(i&&(s[i]=!0),t.items.forEach(f=>P(f,s))):t instanceof n.Pair?(P(t.key,s),P(t.value,s)):t instanceof n.Scalar&&i&&(s[i]=!0)}return s},C=t=>Object.keys(P(t,{}));function q(t,s){let i={before:[],after:[]},f,g=!1;for(let u of s)if(u.valueRange){if(f!==void 0){let L=\"Document contains trailing content not separated by a ... or --- line\";t.errors.push(new e.YAMLSyntaxError(u,L));break}let p=n.resolveNode(t,u);g&&(p.spaceBefore=!0,g=!1),f=p}else u.comment!==null?(f===void 0?i.before:i.after).push(u.comment):u.type===e.Type.BLANK_LINE&&(g=!0,f===void 0&&i.before.length>0&&!t.commentBefore&&(t.commentBefore=i.before.join(`\n`),i.before=[]));if(t.contents=f||null,!f)t.comment=i.before.concat(i.after).join(`\n`)||null;else{let u=i.before.join(`\n`);if(u){let p=f instanceof n.Collection&&f.items[0]?f.items[0]:f;p.commentBefore=p.commentBefore?\"\".concat(u,`\n`).concat(p.commentBefore):u}t.comment=i.after.join(`\n`)||null}}function R(t,s){let{tagPrefixes:i}=t,[f,g]=s.parameters;if(!f||!g){let u=\"Insufficient parameters given for %TAG directive\";throw new e.YAMLSemanticError(s,u)}if(i.some(u=>u.handle===f)){let u=\"The %TAG directive must only be given at most once per handle in the same document.\";throw new e.YAMLSemanticError(s,u)}return{handle:f,prefix:g}}function j(t,s){let[i]=s.parameters;if(s.name===\"YAML:1.0\"&&(i=\"1.0\"),!i){let f=\"Insufficient parameters given for %YAML directive\";throw new e.YAMLSemanticError(s,f)}if(!y[i]){let f=t.version||t.options.version,g=\"Document will be parsed as YAML \".concat(f,\" rather than YAML \").concat(i);t.warnings.push(new e.YAMLWarning(s,g))}return i}function K(t,s,i){let f=[],g=!1;for(let u of s){let{comment:p,name:L}=u;switch(L){case\"TAG\":try{t.tagPrefixes.push(R(t,u))}catch(k){t.errors.push(k)}g=!0;break;case\"YAML\":case\"YAML:1.0\":if(t.version){let k=\"The %YAML directive must only be given at most once per document.\";t.errors.push(new e.YAMLSemanticError(u,k))}try{t.version=j(t,u)}catch(k){t.errors.push(k)}g=!0;break;default:if(L){let k=\"YAML only supports %TAG and %YAML directives, and not %\".concat(L);t.warnings.push(new e.YAMLWarning(u,k))}}p&&f.push(p)}if(i&&!g&&(t.version||i.version||t.options.version)===\"1.1\"){let u=p=>{let{handle:L,prefix:k}=p;return{handle:L,prefix:k}};t.tagPrefixes=i.tagPrefixes.map(u),t.version=i.version}t.commentBefore=f.join(`\n`)||null}function m(t){if(t instanceof n.Collection)return!0;throw new Error(\"Expected a YAML collection as document contents\")}var a=class{constructor(t){this.anchors=new T(t.anchorPrefix),this.commentBefore=null,this.comment=null,this.contents=null,this.directivesEndMarker=null,this.errors=[],this.options=t,this.schema=null,this.tagPrefixes=[],this.version=null,this.warnings=[]}add(t){return m(this.contents),this.contents.add(t)}addIn(t,s){m(this.contents),this.contents.addIn(t,s)}delete(t){return m(this.contents),this.contents.delete(t)}deleteIn(t){return n.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):(m(this.contents),this.contents.deleteIn(t))}getDefaults(){return a.defaults[this.version]||a.defaults[this.options.version]||{}}get(t,s){return this.contents instanceof n.Collection?this.contents.get(t,s):void 0}getIn(t,s){return n.isEmptyPath(t)?!s&&this.contents instanceof n.Scalar?this.contents.value:this.contents:this.contents instanceof n.Collection?this.contents.getIn(t,s):void 0}has(t){return this.contents instanceof n.Collection?this.contents.has(t):!1}hasIn(t){return n.isEmptyPath(t)?this.contents!==void 0:this.contents instanceof n.Collection?this.contents.hasIn(t):!1}set(t,s){m(this.contents),this.contents.set(t,s)}setIn(t,s){n.isEmptyPath(t)?this.contents=s:(m(this.contents),this.contents.setIn(t,s))}setSchema(t,s){if(!t&&!s&&this.schema)return;typeof t==\"number\"&&(t=t.toFixed(1)),t===\"1.0\"||t===\"1.1\"||t===\"1.2\"?(this.version?this.version=t:this.options.version=t,delete this.options.schema):t&&typeof t==\"string\"&&(this.options.schema=t),Array.isArray(s)&&(this.options.customTags=s);let i=Object.assign({},this.getDefaults(),this.options);this.schema=new c.Schema(i)}parse(t,s){this.options.keepCstNodes&&(this.cstNode=t),this.options.keepNodeTypes&&(this.type=\"DOCUMENT\");let{directives:i=[],contents:f=[],directivesEndMarker:g,error:u,valueRange:p}=t;if(u&&(u.source||(u.source=this),this.errors.push(u)),K(this,i,s),g&&(this.directivesEndMarker=!0),this.range=p?[p.start,p.end]:null,this.setSchema(),this.anchors._cstAliases=[],q(this,f),this.anchors.resolveNodes(),this.options.prettyErrors){for(let L of this.errors)L instanceof e.YAMLError&&L.makePretty();for(let L of this.warnings)L instanceof e.YAMLError&&L.makePretty()}return this}listNonDefaultTags(){return C(this.contents).filter(t=>t.indexOf(c.Schema.defaultPrefix)!==0)}setTagPrefix(t,s){if(t[0]!==\"!\"||t[t.length-1]!==\"!\")throw new Error(\"Handle must start and end with !\");if(s){let i=this.tagPrefixes.find(f=>f.handle===t);i?i.prefix=s:this.tagPrefixes.push({handle:t,prefix:s})}else this.tagPrefixes=this.tagPrefixes.filter(i=>i.handle!==t)}toJSON(t,s){let{keepBlobsInJSON:i,mapAsMap:f,maxAliasCount:g}=this.options,u=i&&(typeof t!=\"string\"||!(this.contents instanceof n.Scalar)),p={doc:this,indentStep:\" \",keep:u,mapAsMap:u&&!!f,maxAliasCount:g,stringify:M},L=Object.keys(this.anchors.map);L.length>0&&(p.anchors=new Map(L.map(B=>[this.anchors.map[B],{alias:[],aliasCount:0,count:1}])));let k=n.toJSON(this.contents,t,p);if(typeof s==\"function\"&&p.anchors)for(let{count:B,res:$}of p.anchors.values())s($,B);return k}toString(){if(this.errors.length>0)throw new Error(\"Document with errors cannot be stringified\");let t=this.options.indent;if(!Number.isInteger(t)||t<=0){let L=JSON.stringify(t);throw new Error('\"indent\" option must be a positive integer, not '.concat(L))}this.setSchema();let s=[],i=!1;if(this.version){let L=\"%YAML 1.2\";this.schema.name===\"yaml-1.1\"&&(this.version===\"1.0\"?L=\"%YAML:1.0\":this.version===\"1.1\"&&(L=\"%YAML 1.1\")),s.push(L),i=!0}let f=this.listNonDefaultTags();this.tagPrefixes.forEach(L=>{let{handle:k,prefix:B}=L;f.some($=>$.indexOf(B)===0)&&(s.push(\"%TAG \".concat(k,\" \").concat(B)),i=!0)}),(i||this.directivesEndMarker)&&s.push(\"---\"),this.commentBefore&&((i||!this.directivesEndMarker)&&s.unshift(\"\"),s.unshift(this.commentBefore.replace(/^/gm,\"#\")));let g={anchors:Object.create(null),doc:this,indent:\"\",indentStep:\" \".repeat(t),stringify:M},u=!1,p=null;if(this.contents){this.contents instanceof n.Node&&(this.contents.spaceBefore&&(i||this.directivesEndMarker)&&s.push(\"\"),this.contents.commentBefore&&s.push(this.contents.commentBefore.replace(/^/gm,\"#\")),g.forceBlockIndent=!!this.comment,p=this.contents.comment);let L=p?null:()=>u=!0,k=M(this.contents,g,()=>p=null,L);s.push(n.addComment(k,\"\",p))}else this.contents!==void 0&&s.push(M(this.contents,g));return this.comment&&((!u||p)&&s[s.length-1]!==\"\"&&s.push(\"\"),s.push(this.comment.replace(/^/gm,\"#\"))),s.join(`\n`)+`\n`}};e._defineProperty(a,\"defaults\",y),r.Document=a,r.defaultOptions=h,r.scalarOptions=d}}),Zn=F({\"node_modules/yaml/dist/index.js\"(r){\"use strict\";D();var e=Gn(),n=zn(),c=ot(),h=Me(),d=it();ke();function y(C){let q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,R=arguments.length>2?arguments[2]:void 0;R===void 0&&typeof q==\"string\"&&(R=q,q=!0);let j=Object.assign({},n.Document.defaults[n.defaultOptions.version],n.defaultOptions);return new c.Schema(j).createNode(C,q,R)}var E=class extends n.Document{constructor(C){super(Object.assign({},n.defaultOptions,C))}};function I(C,q){let R=[],j;for(let K of e.parse(C)){let m=new E(q);m.parse(K,j),R.push(m),j=m}return R}function S(C,q){let R=e.parse(C),j=new E(q).parse(R[0]);if(R.length>1){let K=\"Source contains multiple documents; please use YAML.parseAllDocuments()\";j.errors.unshift(new h.YAMLSemanticError(R[1],K))}return j}function M(C,q){let R=S(C,q);if(R.warnings.forEach(j=>d.warn(j)),R.errors.length>0)throw R.errors[0];return R.toJSON()}function T(C,q){let R=new E(q);return R.contents=C,String(R)}var P={createNode:y,defaultOptions:n.defaultOptions,Document:E,parse:M,parseAllDocuments:I,parseCST:e.parse,parseDocument:S,scalarOptions:n.scalarOptions,stringify:T};r.YAML=P}}),Je=F({\"node_modules/yaml/index.js\"(r,e){D(),e.exports=Zn().YAML}}),Xn=F({\"node_modules/yaml/dist/util.js\"(r){\"use strict\";D();var e=ke(),n=Me();r.findPair=e.findPair,r.parseMap=e.resolveMap,r.parseSeq=e.resolveSeq,r.stringifyNumber=e.stringifyNumber,r.stringifyString=e.stringifyString,r.toJSON=e.toJSON,r.Type=n.Type,r.YAMLError=n.YAMLError,r.YAMLReferenceError=n.YAMLReferenceError,r.YAMLSemanticError=n.YAMLSemanticError,r.YAMLSyntaxError=n.YAMLSyntaxError,r.YAMLWarning=n.YAMLWarning}}),er=F({\"node_modules/yaml/util.js\"(r){D();var e=Xn();r.findPair=e.findPair,r.toJSON=e.toJSON,r.parseMap=e.parseMap,r.parseSeq=e.parseSeq,r.stringifyNumber=e.stringifyNumber,r.stringifyString=e.stringifyString,r.Type=e.Type,r.YAMLError=e.YAMLError,r.YAMLReferenceError=e.YAMLReferenceError,r.YAMLSemanticError=e.YAMLSemanticError,r.YAMLSyntaxError=e.YAMLSyntaxError,r.YAMLWarning=e.YAMLWarning}}),tr=F({\"node_modules/yaml-unist-parser/lib/yaml.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Je();r.Document=e.Document;var n=Je();r.parseCST=n.parseCST;var c=er();r.YAMLError=c.YAMLError,r.YAMLSyntaxError=c.YAMLSyntaxError,r.YAMLSemanticError=c.YAMLSemanticError}}),nr=F({\"node_modules/yaml-unist-parser/lib/parse.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=xt(),n=Gt(),c=zt(),h=Zt(),d=Fn(),y=ze(),E=Vn(),I=Un(),S=Kn(),M=$n(),T=Jn(),P=Hn(),C=tr();function q(R){var j=C.parseCST(R);M.addOrigRange(j);for(var K=j.map(function(k){return new C.Document({merge:!1,keepCstNodes:!0}).parse(k)}),m=new e.default(R),a=[],t={text:R,locator:m,comments:a,transformOffset:function(k){return I.transformOffset(k,t)},transformRange:function(k){return S.transformRange(k,t)},transformNode:function(k){return d.transformNode(k,t)},transformContent:function(k){return y.transformContent(k,t)}},s=0,i=K;s 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nconst nodeVersion = process.versions.node.split('.')\nconst nodeMajor = Number(nodeVersion[0])\nconst nodeMinor = Number(nodeVersion[1])\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (nodeMajor > 16 || (nodeMajor === 16 && nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n const dispatcher = (arguments[1] && arguments[1].dispatcher) || getGlobalDispatcher()\n try {\n return await fetchImpl.apply(dispatcher, arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n","'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n","const { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n if ('addEventListener' in self[kSignal]) {\n self[kSignal].addEventListener('abort', self[kListener])\n } else {\n self[kSignal].addListener('abort', self[kListener])\n }\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n","'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n","'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError,\n ResponseStatusCodeError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = util.parseHeaders(rawHeaders)\n const contentType = parsedHeaders['content-type']\n const body = new Readable(resume, abort, contentType)\n\n this.callback = null\n this.res = body\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n return\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n if (statusCode === 204 || !contentType) {\n body.dump()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = await body.json()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = await body.text()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n body.dump()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n","'use strict'\n\nconst { finished } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { factory, opaque, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n const res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n res.on('drain', resume)\n // TODO: Avoid finished. It registers an unecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n","'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n","// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor (resume, abort, contentType = '') {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark: 64 * 1024 // Same as nodejs fs streams.\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n try {\n for await (const chunk of this) {\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n // Do nothing...\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n","'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n","'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors\n} = require('./core/symbols')\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\nclass Client extends DispatcherBase {\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 30e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 30e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n this.destroy(resolve)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp.wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd.wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp.wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onStatus(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onHeaderField(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onHeaderValue(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onBody(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\n .catch(() => {\n })\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n clearTimeout(this.timeout)\n if (value) {\n this.timeout = setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message = Buffer.from(llhttp.memory.buffer, ptr, len).toString()\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n finish () {\n try {\n try {\n currentParser = this\n } finally {\n currentParser = null\n }\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n util.destroy(this.socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = shouldKeepAlive\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n assert(socket[kReset])\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.finish()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.finish()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n client[kSocket] = socket\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client.closed && !client[kSize]) {\n client.destroy()\n return\n }\n\n const socket = client[kSocket]\n\n if (socket) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n continue\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'ascii')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'ascii')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'ascii')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n try {\n assert(!finished)\n\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n assert(!finished)\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'ascii')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'ascii')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'ascii')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'ascii')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'ascii')\n } else {\n socket.write(`${header}\\r\\n`, 'ascii')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'ascii')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n","'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n","'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new Map()\n timeout = timeout == null ? 10e3 : timeout\n maxCachedSessions = maxCachedSessions == null ? 100 : maxCachedSessions\n\n return function connect ({ hostname, host, protocol, port, servername, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // cache is disabled\n if (maxCachedSessions === 0) {\n return\n }\n\n if (sessionCache.size >= maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = sessionCache.keys().next()\n sessionCache.delete(oldestKey)\n }\n\n sessionCache.set(sessionKey, session)\n })\n .on('error', function (err) {\n if (sessionKey && err.code !== 'UND_ERR_INFO') {\n // TODO (fix): Only delete for session related errors.\n sessionCache.delete(sessionKey)\n }\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n port: port || 80,\n host: hostname\n })\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n","'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError\n}\n","'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\nconst nodeVersion = process.versions.node.split('.')\nconst nodeMajor = Number(nodeVersion[0])\nconst nodeMinor = Number(nodeVersion[1])\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (nodeMajor < 16 || (nodeMajor === 16 && nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeader (request, key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type' &&\n headerCharRegex.exec(val) === null\n ) {\n request.contentType = val\n request.headers += `${key}: ${val}\\r\\n`\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n throw new InvalidArgumentError('invalid connection header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else {\n request.headers += `${key}: ${val}\\r\\n`\n }\n}\n\nmodule.exports = Request\n","module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol('destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelinig'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors')\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj.pipe === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('invalid port')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('invalid path')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('invalid pathname')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('invalid hostname')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('invalid origin')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('invalid protocol')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString()\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString())\n }\n }\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n return headers.map(header => header.toString())\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\nfunction isFormDataLike (chunk) {\n return chunk && chunk.constructor && chunk.constructor.name === 'FormData'\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString: nodeUtil.toUSVString || ((val) => `${val}`),\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL\n}\n","'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = []\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n","'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n","'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString, isBlobLike } = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException } = require('./constants')\nconst { Blob } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File } = require('./file')\n\nlet ReadableStream\n\nasync function * blobGen (blob) {\n yield * blob.stream()\n}\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be object if object is a ReadableStream object.\n // Otherwise, let stream be a new ReadableStream, and set up stream.\n let stream = null\n\n // 2. Let action be null.\n let action = null\n\n // 3. Let source be null.\n let source = null\n\n // 4. Let length be null.\n let length = null\n\n // 5. Let Content-Type be null.\n let contentType = null\n\n // 6. Switch on object:\n if (object == null) {\n // Note: The IDL processor cannot handle this situation. See\n // https://crbug.com/335871.\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list.\n source = object.toString()\n\n // Set Content-Type to `application/x-www-form-urlencoded;charset=UTF-8`.\n contentType = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = '----formdata-undici-' + Math.random()\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy Wärting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object’s entry list and UTF-8.\n action = async function * (object) {\n const enc = new TextEncoder()\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n yield enc.encode(\n prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`\n )\n } else {\n yield enc.encode(\n prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') +\n '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`\n )\n\n yield * blobGen(value)\n\n yield enc.encode('\\r\\n')\n }\n }\n\n yield enc.encode(`--${boundary}--`)\n }\n\n // Set source to object.\n source = object\n\n // Set length to unclear, see html/6424 for improving this.\n // TODO\n\n // Set Content-Type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n contentType = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set action to this step: read object.\n action = blobGen\n\n // Set source to object.\n source = object\n\n // Set length to object’s size.\n length = object.size\n\n // If object’s type attribute is not the empty byte sequence, set\n // Content-Type to its value.\n if (object.type) {\n contentType = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n } else {\n // TODO: byte sequence?\n // TODO: scalar value string?\n // TODO: else?\n source = toUSVString(object)\n contentType = 'text/plain;charset=UTF-8'\n }\n\n // 7. If source is a byte sequence, then set action to a\n // step that returns source and length to source’s length.\n // TODO: What is a \"byte sequence?\"\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 8. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n })\n } else if (!stream) {\n // TODO: Spec doesn't say anything about this?\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => {\n controller.close()\n })\n }\n })\n }\n\n // 9. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 10. Return body and Content-Type.\n return [body, contentType]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let « out1, out2 » be the result of teeing body’s stream.\n const [out1, out2] = body.stream.tee()\n\n // 2. Set body’s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: out2,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n async blob () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n const chunks = []\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n // Assemble one final large blob with Uint8Array's can exhaust memory.\n // That's why we create create multiple blob's and using references\n chunks.push(new Blob([chunk]))\n }\n\n return new Blob(chunks, { type: this.headers.get('Content-Type') || '' })\n },\n\n async arrayBuffer () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n const contentLength = this.headers.get('content-length')\n const encoded = this.headers.has('content-encoding')\n\n // if we have content length and no encoding, then we can\n // pre allocate the buffer and just read the data into it\n if (!encoded && contentLength) {\n const buffer = new Uint8Array(contentLength)\n let offset = 0\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n buffer.set(chunk, offset)\n offset += chunk.length\n }\n\n return buffer.buffer\n }\n\n // if we don't have content length, then we have to allocate 2x the\n // size of the body, once for consumed data, and once for the final buffer\n\n // This could be optimized by using growable ArrayBuffer, but it's not\n // implemented yet. https://github.com/tc39/proposal-resizablearraybuffer\n\n const chunks = []\n let size = 0\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n chunks.push(chunk)\n size += chunk.byteLength\n }\n\n const buffer = new Uint8Array(size)\n let offset = 0\n\n for (const chunk of chunks) {\n buffer.set(chunk, offset)\n offset += chunk.byteLength\n }\n\n return buffer.buffer\n },\n\n async text () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n let result = ''\n const textDecoder = new TextDecoder()\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n result += textDecoder.decode(chunk, { stream: true })\n }\n\n // flush\n result += textDecoder.decode()\n\n return result\n },\n\n async json () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n return JSON.parse(await this.text())\n },\n\n async formData () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType’s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({ headers })\n } catch (err) {\n // Error due to headers:\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(err))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType’s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nconst properties = {\n body: {\n enumerable: true,\n get () {\n if (!this || !this[kState]) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].body ? this[kState].body.stream : null\n }\n },\n bodyUsed: {\n enumerable: true,\n get () {\n if (!this || !this[kState]) {\n throw new TypeError('Illegal invocation')\n }\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n }\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n Object.defineProperties(prototype.prototype, properties)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n","'use strict'\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nmodule.exports = {\n DOMException,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods\n}\n","const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isValidHTTPToken } = require('./util')\n\nconst encoder = new TextEncoder()\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL’s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePoints(\n (char) => char !== ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Note: This will only remove U+0020 SPACE code\n // points, if any.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = mimeType.replace(/^(\\u0020)+|(\\u0020)+$/g, '')\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n /** @type {Uint8Array|string} */\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = decodeURIComponent(new TextDecoder('utf-8').decode(body))\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n // 1. Let output be url’s scheme and U+003A (:) concatenated.\n let output = url.protocol\n\n // 2. If url’s host is non-null:\n if (url.host.length > 0) {\n // 1. Append \"//\" to output.\n output += '//'\n\n // 2. If url includes credentials, then:\n if (url.username.length > 0 || url.password.length > 0) {\n // 1. Append url’s username to output.\n output += url.username\n\n // 2. If url’s password is not the empty string, then append U+003A (:),\n // followed by url’s password, to output.\n if (url.password.length > 0) {\n output += ':' + url.password\n }\n\n // 3. Append U+0040 (@) to output.\n output += '@'\n }\n\n // 3. Append url’s host, serialized, to output.\n output += decodeURIComponent(url.host)\n\n // 4. If url’s port is non-null, append U+003A (:) followed by url’s port,\n // serialized, to output.\n if (url.port.length > 0) {\n output += ':' + url.port\n }\n }\n\n // 3. If url’s host is null, url does not have an opaque path,\n // url’s path’s size is greater than 1, and url’s path[0]\n // is the empty string, then append U+002F (/) followed by\n // U+002E (.) to output.\n // Note: This prevents web+demo:/.//not-a-host/ or web+demo:/path/..//not-a-host/,\n // when parsed and then serialized, from ending up as web+demo://not-a-host/\n // (they end up as web+demo:/.//not-a-host/).\n // Undici implementation note: url's path[0] can never be an\n // empty string, so we have to slightly alter what the spec says.\n if (\n url.host.length === 0 &&\n url.pathname.length > 1 &&\n url.href.slice(url.protocol.length + 1)[0] === '.'\n ) {\n output += '/.'\n }\n\n // 4. Append the result of URL path serializing url to output.\n output += url.pathname\n\n // 5. If url’s query is non-null, append U+003F (?),\n // followed by url’s query, to output.\n if (url.search.length > 0) {\n output += url.search\n }\n\n // 6. If exclude fragment is false and url’s fragment is non-null,\n // then append U+0023 (#), followed by url’s fragment, to output.\n if (excludeFragment === false && url.hash.length > 0) {\n output += url.hash\n }\n\n // 7. Return output.\n return output\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn’t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = input.trim()\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePoints(\n (char) => char !== '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !/^[!#$%&'*+-.^_|~A-z0-9]+$/.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePoints(\n (char) => char !== ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = subtype.trim()\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !/^[!#$%&'*+-.^_|~A-z0-9]+$/.test(subtype)) {\n return 'failure'\n }\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: type.toLowerCase(),\n subtype: subtype.toLowerCase(),\n /** @type {Map} */\n parameters: new Map()\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n (char) => /(\\u000A|\\u000D|\\u0009|\\u0020)/.test(char), // eslint-disable-line\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePoints(\n (char) => char !== ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePoints(\n (char) => char !== ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n // Note: it says \"trailing\" whitespace; leading is fine.\n parameterValue = parameterValue.trimEnd()\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType’s parameters[parameterName] does not exist\n // then set mimeType’s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n /^[!#$%&'*+-.^_|~A-z0-9]+$/.test(parameterName) &&\n // https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n !/^(\\u0009|\\x{0020}-\\x{007E}|\\x{0080}-\\x{00FF})+$/.test(parameterValue) && // eslint-disable-line\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data’s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data’s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { type, subtype, parameters } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType’s\n // type, U+002F (/), and mimeType’s subtype.\n let serialization = `${type}/${subtype}`\n\n // 2. For each name → value of mimeType’s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!isValidHTTPToken(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n","'use strict'\n\nconst { Blob } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required')\n }\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n // Note: Blob handles both of these steps for us\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: options.type })\n this[kState] = {\n name: n,\n lastModified: d\n }\n }\n\n get name () {\n if (!(this instanceof File)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].name\n }\n\n get lastModified () {\n if (!(this instanceof File)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.size\n }\n\n get type () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.type\n }\n\n get name () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].name\n }\n\n get lastModified () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n return webidl.converters.BufferSource(V, opts)\n } else {\n return webidl.converters.USVString(V, opts)\n }\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform’s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n","'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob } = require('buffer')\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n static name = 'FormData'\n\n constructor (form) {\n if (arguments.length > 0 && form != null) {\n webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['null']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'append' on 'FormData': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this’s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'delete' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this’s entry list.\n const next = []\n for (const entry of this[kState]) {\n if (entry.name !== name) {\n next.push(entry)\n }\n }\n\n this[kState] = next\n }\n\n get (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'get' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this’s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'getAll' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this’s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'has' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this’s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'set' on 'FormData': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this’s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this’s entry list.\n this[kState].push(entry)\n }\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n entries () {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(\n makeIterable(this[kState], 'entries'),\n 'FormData'\n )\n }\n\n keys () {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(\n makeIterable(this[kState], 'keys'),\n 'FormData'\n )\n }\n\n values () {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(\n makeIterable(this[kState], 'values'),\n 'FormData'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'forEach' on 'FormData': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n value = value instanceof File\n ? new File([value], filename, { type: value.type })\n : new FileLike(value, filename, { type: value.type })\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nfunction * makeIterable (entries, type) {\n // The value pairs to iterate over are this’s entry list’s entries\n // with the key being the name and the value being the value.\n for (const { name, value } of entries) {\n if (type === 'entries') {\n yield [name, value]\n } else if (type === 'values') {\n yield value\n } else {\n yield name\n }\n }\n}\n\nmodule.exports = { FormData }\n","'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n return potentialValue.replace(\n /^[\\r\\n\\t ]+|[\\r\\n\\t ]+$/g,\n ''\n )\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header’s first item, header’s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key → value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\nclass HeadersList {\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header’s name.\n name = name.toLowerCase()\n const exists = this[kHeadersMap].get(name)\n\n // 2. Append (name, value) to list.\n if (exists) {\n this[kHeadersMap].set(name, `${exists}, ${value}`)\n } else {\n this[kHeadersMap].set(name, `${value}`)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n name = name.toLowerCase()\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n name = name.toLowerCase()\n\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name) ?? null\n }\n\n has (name) {\n name = name.toLowerCase()\n return this[kHeadersMap].has(name)\n }\n\n keys () {\n return this[kHeadersMap].keys()\n }\n\n values () {\n return this[kHeadersMap].values()\n }\n\n entries () {\n return this[kHeadersMap].entries()\n }\n\n [Symbol.iterator] () {\n return this[kHeadersMap][Symbol.iterator]()\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this’s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'append' on 'Headers': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers’s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers’s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers’s header list.\n // 8. If headers’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'delete' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this’s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this’s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this’s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this’s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'get' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this’s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'has' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this’s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'set' on 'Headers': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this’s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n get [kHeadersSortedMap] () {\n if (!this[kHeadersList][kHeadersSortedMap]) {\n this[kHeadersList][kHeadersSortedMap] = new Map([...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1))\n }\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n keys () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(this[kHeadersSortedMap].keys(), 'Headers')\n }\n\n values () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(this[kHeadersSortedMap].values(), 'Headers')\n }\n\n entries () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(this[kHeadersSortedMap].entries(), 'Headers')\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'forEach' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody, extractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { isErrored, isReadable } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream\n\nconst nodeVersion = process.versions.node.split('.')\nconst nodeMajor = Number(nodeVersion[0])\nconst nodeMinor = Number(nodeVersion[1])\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n abort () {\n if (this.state !== 'ongoing') {\n return\n }\n\n const reason = new DOMException('The operation was aborted.', 'AbortError')\n\n this.state = 'aborted'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'fetch' on 'Window': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject’s request.\n const request = requestObject[kState]\n\n // 4. If requestObject’s signal’s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort fetch with p, request, and null.\n abortFetch(p, request, null)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request’s client’s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request’s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this’s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject’s signal:\n requestObject.signal.addEventListener(\n 'abort',\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Abort fetch with p, request, and responseObject.\n abortFetch(p, request, responseObject)\n\n // 3. If controller is not null, then abort controller.\n if (controller != null) {\n controller.abort()\n }\n },\n { once: true }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response’s aborted flag is set, then abort fetch with p,\n // request, and responseObject, and terminate these substeps.\n if (response.aborted) {\n abortFetch(p, request, responseObject)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: this // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response’s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response’s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response’s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response’s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return.\n if (!/^https?:/.test(originalURL.protocol)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response’s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo’s end time to the coarsened shared current time\n // given global’s relevant settings object’s cross-origin isolated\n // capability.\n // TODO: given global’s relevant settings object’s cross-origin isolated\n // capability?\n response.timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor >= 18 && nodeMinor >= 2) {\n performance.markResourceTiming(timingInfo, originalURL, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject) {\n // 1. Let error be an \"AbortError\" DOMException.\n const error = new DOMException('The operation was aborted.', 'AbortError')\n\n // 2. Reject promise with error.\n p.reject(error)\n\n // 3. If request’s body is not null and is readable, then cancel request’s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 4. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 5. Let response be responseObject’s response.\n const response = responseObject[kState]\n\n // 6. If response’s body is not null and is readable, then error response’s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request’s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request’s client’s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request’s body is a byte sequence, then set request’s body to the\n // first return value of safely extracting request’s body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request’s window is \"client\", then set request’s window to request’s\n // client, if request’s client’s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request’s origin is \"client\", then set request’s origin to request’s\n // client’s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request’s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request’s client is non-null, then set request’s policy\n // container to a clone of request’s client’s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request’s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request’s header list does not contain `Accept`, then:\n if (!request.headersList.has('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request’s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request’s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request’s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request’s header list.\n if (!request.headersList.has('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request’s priority is null, then use request’s initiator and\n // destination appropriately in setting request’s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request’s local-URLs-only flag is set and request’s current URL is\n // not local, then set response to a network error.\n if (\n request.localURLsOnly &&\n !/^(about|blob|data):/.test(requestCurrentURL(request).protocol)\n ) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request’s referrer policy is the empty string, then set request’s\n // referrer policy to request’s policy container’s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request’s referrer is not \"no-referrer\", then set request’s\n // referrer to the result of invoking determine request’s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request’s current URL’s scheme to \"https\" if all of the following\n // conditions are true:\n // - request’s current URL’s scheme is \"http\"\n // - request’s current URL’s host is a domain\n // - Matching request’s current URL’s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request’s current URL’s origin is same origin with request’s origin,\n // and request’s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request’s current URL’s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request’s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request’s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request’s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request’s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request’s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s current URL’s scheme is not an HTTP(S) scheme\n if (!/^https?:/.test(requestCurrentURL(request).protocol)) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request’s use-CORS-preflight flag is set\n // - request’s unsafe-request flag is set and either request’s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request’s header list is not empty\n // 1. Set request’s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request’s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request’s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response’s header list.\n // TODO\n // 2. If request’s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response’s CORS-exposed header-name list to\n // all unique header names in response’s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response’s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response’s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse’s URL list is empty, then set it to a clone of\n // request’s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request’s timing allow failed flag is unset, then set\n // internalResponse’s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response’s type is \"opaque\", internalResponse’s status is 206,\n // internalResponse’s range-requested flag is set, and request’s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.has('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request’s method is\n // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status,\n // set internalResponse’s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request’s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request’s response tainting is \"opaque\", or response’s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request’s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response’s body to the first return value of safely\n // extracting bytes.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response’s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // let request be fetchParams’s request\n const { request } = fetchParams\n\n const {\n protocol: scheme,\n pathname: path\n } = requestCurrentURL(request)\n\n // switch on request’s current URL’s scheme, and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request’s current URL’s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) »,\n // and body is the empty byte sequence.\n if (path === 'blank') {\n const resp = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', 'text/html;charset=utf-8']\n ]\n })\n\n resp.urlList = [new URL('about:blank')]\n return resp\n }\n\n // Otherwise, return a network error.\n return makeNetworkError('invalid path called')\n }\n case 'blob:': {\n resolveObjectURL = resolveObjectURL || require('buffer').resolveObjectURL\n\n // 1. Run these steps, but abort when the ongoing fetch is terminated:\n // 1. Let blob be request’s current URL’s blob URL entry’s object.\n // https://w3c.github.io/FileAPI/#blob-url-entry\n // P.S. Thank God this method is available in node.\n const currentURL = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (currentURL.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blob = resolveObjectURL(currentURL.toString())\n\n // 2. If request’s method is not `GET` or blob is not a Blob object, then return a network error. [FILEAPI]\n if (request.method !== 'GET' || !isBlobLike(blob)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let response be a new response whose status message is `OK`.\n const response = makeResponse({ statusText: 'OK', urlList: [currentURL] })\n\n // 4. Append (`Content-Length`, blob’s size attribute value) to response’s header list.\n response.headersList.set('content-length', `${blob.size}`)\n\n // 5. Append (`Content-Type`, blob’s type attribute value) to response’s header list.\n response.headersList.set('content-type', blob.type)\n\n // 6. Set response’s body to the result of performing the read operation on blob.\n // TODO (fix): This needs to read?\n response.body = extractBody(blob)[0]\n\n // 7. Return response.\n return response\n\n // 2. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request’s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct’s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is « (`Content-Type`, mimeType) »,\n // and body is dataURLStruct’s body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', mimeType]\n ],\n body: extractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams’s process response done is not null, then queue a fetch\n // task to run fetchParams’s process response done given response, with\n // fetchParams’s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ».\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response’s timing info to the result of creating an opaque timing\n // info for fetchParams’s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // If fetchParams’s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams’s process response\n // end-of-body given response with fetchParams’s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams’s process response is non-null, then queue a fetch task\n // to run fetchParams’s process response given response, with fetchParams’s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response’s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n })\n\n // 4. Set response’s body to the result of piping response’s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams’s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams’s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams’s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response’s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams’s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response’s body given processBody, processBodyError,\n // and fetchParams’s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request’s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request’s redirect mode is \"follow\", then set request’s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request’s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request’s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request’s response tainting or response’s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request’s origin, request’s client, request’s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse’s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse’s status is not 303, request’s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request’s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response’s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse’s location URL given request’s current\n // URL’s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!/^https?:/.test(locationURL.protocol)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request’s redirect count is twenty, return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request’s redirect count by one.\n request.redirectCount += 1\n\n // 9. If request’s mode is \"cors\", locationURL includes credentials, and\n // request’s origin is not same origin with locationURL’s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request’s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse’s status is not 303, request’s body is non-null,\n // and request’s body’s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse’s status is 301 or 302 and request’s method is `POST`\n // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request’s method to `GET` and request’s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request’s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request’s body is non-null, then set request’s body to the first return\n // value of safely extracting request’s body’s source.\n if (request.body != null) {\n assert(request.body.source)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 14. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 15. Set timingInfo’s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams’s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 16. If timingInfo’s redirect start time is 0, then set timingInfo’s\n // redirect start time to timingInfo’s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 17. Append locationURL to request’s URL list.\n request.urlList.push(locationURL)\n\n // 18. Invoke set request’s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 19. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request’s window is \"no-window\" and request’s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams’s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n // TODO: isomorphic encoded\n contentLengthHeaderValue = String(contentLength)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest’s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest’s header list.\n\n // 10. If contentLength is non-null and httpRequest’s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest’s referrer is a URL, then append\n // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded,\n // to httpRequest’s header list.\n if (httpRequest.referrer instanceof URL) {\n // TODO: isomorphic encoded\n httpRequest.headersList.append('referer', httpRequest.referrer.href)\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest’s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest’s header list.\n if (!httpRequest.headersList.has('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest’s cache mode is \"default\" and httpRequest’s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest’s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.has('if-modified-since') ||\n httpRequest.headersList.has('if-none-match') ||\n httpRequest.headersList.has('if-unmodified-since') ||\n httpRequest.headersList.has('if-match') ||\n httpRequest.headersList.has('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest’s cache mode is \"no-cache\", httpRequest’s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest’s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest’s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.has('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest’s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest’s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.has('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest’s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.has('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest’s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest’s header list.\n if (httpRequest.headersList.has('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest’s header list per HTTP. Do not append a given\n // header if httpRequest’s header list contains that header’s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.has('accept-encoding')) {\n if (/^https:/.test(requestCurrentURL(httpRequest).protocol)) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest’s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there’s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest’s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest’s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest’s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest’s method is unsafe and forwardResponse’s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse’s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response’s URL list to a clone of httpRequest’s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest’s header list contains `Range`, then set response’s\n // range-requested flag.\n if (httpRequest.headersList.has('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response’s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response’s status is 401, httpRequest’s response tainting is not\n // \"cors\", includeCredentials is true, and request’s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response’s status is 407, then:\n if (response.status === 407) {\n // 1. If request’s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request’s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response’s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request’s body is null, or request’s body is non-null and request’s body’s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request’s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request’s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request’s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request’s current URL’s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo’s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection’s\n // timing info, timingInfo’s post-redirect start time, and fetchParams’s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request’s body is non-null,\n // and request’s body’s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request’s header list.\n\n // 4. Set timingInfo’s final network-request start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request’s body is non-null, and request’s body’s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request’s body in that buffer. If the user agent reads from\n // request’s body beyond that buffer’s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo’s final network-response start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated capability,\n // immediately after the user agent’s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo’s final network-response start time above.\n\n // - If request’s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request’s window is an environment settings object, make the\n // dialog available in request’s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request’s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams’s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams’s process request\n // end-of-body and fetchParams’s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams’s process request body is non-null, then run\n // fetchParams’s process request body given bytes’s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams’s process request end-of-body is non-null,\n // then run fetchParams’s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams’s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams’s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n const { body, status, statusText, headersList } = await dispatch({ body: requestBody })\n\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s\n // controller.\n const cancelAlgorithm = () => {\n fetchParams.controller.abort()\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n { highWaterMark: 0 }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response’s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request’s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response’s header list, if any, and request’s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response’s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n try {\n fetchParams.controller.controller.close()\n } catch (err) {\n // TODO (fix): How/Why can this happen? Do we have a bug?\n if (!/Controller is already closed/.test(err)) {\n throw err\n }\n }\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo’s decoded body size by bytes’s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams’s controller.\n if (isErrorLike(bytes)) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn’t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response’s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, error stream with an \"AbortError\" DOMException.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n new DOMException('The operation was aborted.', 'AbortError')\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n return new Promise((resolve, reject) => fetchParams.controller.dispatcher.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: [...request.headersList].flat(),\n maxRedirections: 0,\n bodyTimeout: 300_000,\n headersTimeout: 300_000\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n codings = val.split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n if (/(x-)?gzip/.test(coding)) {\n decoders.push(zlib.createGunzip())\n } else if (/(x-)?deflate/.test(coding)) {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response’s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response’s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo’s encoded body size by bytes’s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n","/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\n\nlet TransformStream\n\nconst kInit = Symbol('init')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to construct 'Request': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // TODO\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this’s relevant settings object’s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input’s request.\n request = input[kState]\n\n // 9. Set signal to input’s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this’s relevant settings object’s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request’s window is an environment settings object and its origin\n // is same origin with origin, then set window to request’s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window !== undefined && init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if (init.window !== undefined) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request’s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request’s method.\n method: request.method,\n // header list A copy of request’s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This’s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request’s priority.\n priority: request.priority,\n // origin request’s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request’s referrer.\n referrer: request.referrer,\n // referrer policy request’s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request’s mode.\n mode: request.mode,\n // credentials mode request’s credentials mode.\n credentials: request.credentials,\n // cache mode request’s cache mode.\n cache: request.cache,\n // redirect mode request’s redirect mode.\n redirect: request.redirect,\n // integrity metadata request’s integrity metadata.\n integrity: request.integrity,\n // keepalive request’s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request’s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request’s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request’s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request’s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request’s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request’s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request’s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request’s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request’s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request’s URL to request’s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request’s URL list to « request’s URL ».\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request’s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // parsedReferrer’s cannot-be-a-base-URL is true, scheme is \"about\",\n // and path contains a single string \"client\"\n // parsedReferrer’s origin is not same origin with origin\n // then set request’s referrer to \"client\".\n // TODO\n\n // 4. Otherwise, set request’s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request’s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n if (!referrerPolicy.includes(request.referrerPolicy)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.referrerPolicy}' is not a valid enum value of type ReferrerPolicy.`\n )\n }\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n if (!requestMode.includes(mode)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.mode}' is not a valid enum value of type RequestMode.`\n )\n }\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request’s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request’s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n if (!requestCredentials.includes(request.credentials)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.credentials}' is not a valid enum value of type RequestCredentials.`\n )\n }\n }\n\n // 18. If init[\"cache\"] exists, then set request’s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n if (!requestCache.includes(request.cache)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.cache}' is not a valid enum value of type RequestCache.`\n )\n }\n }\n\n // 21. If request’s cache mode is \"only-if-cached\" and request’s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request’s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n if (!requestRedirect.includes(request.redirect)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.redirect}' is not a valid enum value of type RequestRedirect.`\n )\n }\n }\n\n // 23. If init[\"integrity\"] exists, then set request’s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request’s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request’s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this’s request to request.\n this[kState] = request\n\n // 28. Set this’s signal to a new AbortSignal object with this’s relevant\n // Realm.\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this’s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n const abort = () => ac.abort(signal.reason)\n signal.addEventListener('abort', abort, { once: true })\n requestFinalizer.register(this, { signal, abort })\n }\n }\n\n // 30. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is request’s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this’s request’s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this’s request’s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this’s headers’s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this’s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this’s headers’s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header’s name/header’s value to this’s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this’s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input’s request’s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request’s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n ((init.body !== undefined && init.body != null) || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body !== undefined && init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request’s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this’s headers’s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this’s headers.\n if (contentType && !this[kHeaders].has('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If this’s request’s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 2. Set this’s request’s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this’s request’s body to finalBody.\n this[kState].body = finalBody\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n // Returns request’s HTTP method, which is \"GET\" by default.\n get method () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The method getter steps are to return this’s request’s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The url getter steps are to return this’s request’s URL, serialized.\n return this[kState].url.toString()\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The destination getter are to return this’s request’s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global’s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // 1. If this’s request’s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this’s request’s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this’s request’s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request’s\n // referrer.\n get referrerPolicy () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The referrerPolicy getter steps are to return this’s request’s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The mode getter steps are to return this’s request’s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this’s request’s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser’s cache when fetching.\n get cache () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The cache getter steps are to return this’s request’s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The redirect getter steps are to return this’s request’s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request’s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The integrity getter steps are to return this’s request’s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The keepalive getter steps are to return this’s request’s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The isReloadNavigation getter steps are to return true if this’s\n // request’s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The isHistoryNavigation getter steps are to return true if this’s request’s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The signal getter steps are to return this’s signal.\n return this[kSignal]\n }\n\n // Returns a clone of request.\n clone () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this’s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this’s headers’s guard, and this’s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject’s signal follow this’s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n this.signal.addEventListener(\n 'abort',\n () => {\n ac.abort(this.signal.reason)\n },\n { once: true }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request’s body is non-null, set newRequest’s body to the\n // result of cloning request’s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: [\n '', 'no-referrer', 'no-referrer-when-downgrade',\n 'same-origin', 'origin', 'strict-origin',\n 'origin-when-cross-origin', 'strict-origin-when-cross-origin',\n 'unsafe-url'\n ]\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: [\n 'same-origin', 'cors', 'no-cors', 'navigate', 'websocket'\n ]\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: [\n 'omit', 'same-origin', 'include'\n ]\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: [\n 'default', 'no-store', 'reload', 'no-cache', 'force-cache',\n 'only-if-cached'\n ]\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: [\n 'follow', 'error', 'manual'\n ]\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = { Request, makeRequest }\n","'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n responseURL,\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this’s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n if (arguments.length === 0) {\n throw new TypeError(\n 'Failed to execute \\'json\\' on \\'Response\\': 1 argument required, but 0 present.'\n )\n }\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this’s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'redirect' on 'Response': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object’s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code')\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this’s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject’s response’s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n // TODO: isomorphic encoded?\n const value = parsedURL.toString()\n\n // 7. Append `Location`/value to responseObject’s response’s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this’s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is this’s response’s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n // Returns response’s type, e.g., \"cors\".\n get type () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The type getter steps are to return this’s response’s type.\n return this[kState].type\n }\n\n // Returns response’s URL, if it has one; otherwise the empty string.\n get url () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The url getter steps are to return the empty string if this’s\n // response’s URL is null; otherwise this’s response’s URL,\n // serialized with exclude fragment set to true.\n let url = responseURL(this[kState])\n\n if (url == null) {\n return ''\n }\n\n if (url.hash) {\n url = new URL(url)\n url.hash = ''\n }\n\n return url.toString()\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The redirected getter steps are to return true if this’s response’s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response’s status.\n get status () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The status getter steps are to return this’s response’s status.\n return this[kState].status\n }\n\n // Returns whether response’s status is an ok status.\n get ok () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The ok getter steps are to return true if this’s response’s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response’s status message.\n get statusText () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The statusText getter steps are to return this’s response’s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response’s headers as Headers.\n get headers () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns a clone of response.\n clone () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this’s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this’s headers’s guard, and this’s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response’s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response’s body is non-null, then set newResponse’s body to the\n // result of cloning response’s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason, {\n cause: isError ? reason : undefined\n }),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response’s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response’s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response’s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError(fetchParams.controller.terminated.reason)\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response’s response’s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response’s response’s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response’s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kState].headersList, init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code.'\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.has('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response\n}\n","'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n","'use strict'\n\nconst { redirectStatus } = require('./constants')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response’s URL list and null if response’s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response’s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response’s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a value, then set location to the result of parsing\n // location with response’s URL.\n location = location ? new URL(location, responseURL(response)) : null\n\n // 4. If location is a URL whose fragment is null, then set location’s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request’s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,\n // then return blocked.\n if (/^https?:/.test(url.protocol) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n for (const char of potentialValue) {\n if (!isValidHTTPToken(char)) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request’s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing § 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n // TODO: https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header\n const policy = ''\n\n // 2. If policy is not the empty string, then set request’s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r’s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header’s value to r’s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request’s response tainting is \"cors\" or request’s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request’s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('Origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request’s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request’s origin is a tuple origin, its scheme is \"https\", and request’s current URL’s scheme is not \"https\", then set serializedOrigin to `null`.\n if (/^https:/.test(request.origin) && !/^https:/.test(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request’s header list.\n request.headersList.append('Origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // TODO\n return {}\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer () {\n // TODO\n return {}\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Return no-referrer when empty or policy says so\n if (policy == null || policy === '' || policy === 'no-referrer') {\n return 'no-referrer'\n }\n\n // 2. Let environment be the request client\n const environment = request.client\n let referrerSource = null\n\n /**\n * 3, Switch on request’s referrer:\n \"client\"\n If environment’s global object is a Window object, then\n Let document be the associated Document of environment’s global object.\n If document’s origin is an opaque origin, return no referrer.\n While document is an iframe srcdoc document,\n let document be document’s browsing context’s browsing context container’s node document.\n Let referrerSource be document’s URL.\n\n Otherwise, let referrerSource be environment’s creation URL.\n\n a URL\n Let referrerSource be request’s referrer.\n */\n if (request.referrer === 'client') {\n // Not defined in Node but part of the spec\n if (request.client?.globalObject?.constructor?.name === 'Window' ) { // eslint-disable-line\n const origin = environment.globalObject.self?.origin ?? environment.globalObject.location?.origin\n\n // If document’s origin is an opaque origin, return no referrer.\n if (origin == null || origin === 'null') return 'no-referrer'\n\n // Let referrerSource be document’s URL.\n referrerSource = new URL(environment.globalObject.location.href)\n } else {\n // 3(a)(II) If environment's global object is not Window,\n // Let referrerSource be environments creationURL\n if (environment?.globalObject?.location == null) {\n return 'no-referrer'\n }\n\n referrerSource = new URL(environment.globalObject.location.href)\n }\n } else if (request.referrer instanceof URL) {\n // 3(b) If requests's referrer is a URL instance, then make\n // referrerSource be requests's referrer.\n referrerSource = request.referrer\n } else {\n // If referrerSource neither client nor instance of URL\n // then return \"no-referrer\".\n return 'no-referrer'\n }\n\n const urlProtocol = referrerSource.protocol\n\n // If url's scheme is a local scheme (i.e. one of \"about\", \"data\", \"javascript\", \"file\")\n // then return \"no-referrer\".\n if (\n urlProtocol === 'about:' || urlProtocol === 'data:' ||\n urlProtocol === 'blob:'\n ) {\n return 'no-referrer'\n }\n\n let temp\n let referrerOrigin\n // 4. Let requests's referrerURL be the result of stripping referrer\n // source for use as referrer (using util function, without origin only)\n const referrerUrl = (temp = stripURLForReferrer(referrerSource)).length > 4096\n // 5. Let referrerOrigin be the result of stripping referrer\n // source for use as referrer (using util function, with originOnly true)\n ? (referrerOrigin = stripURLForReferrer(referrerSource, true))\n // 6. If result of seralizing referrerUrl is a string whose length is greater than\n // 4096, then set referrerURL to referrerOrigin\n : temp\n const areSameOrigin = sameOrigin(request, referrerUrl)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerUrl) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // NOTE: How to treat step 7?\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerUrl\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerUrl : referrerOrigin\n case 'strict-origin-when-cross-origin':\n /**\n * 1. If the origin of referrerURL and the origin of request’s current URL are the same,\n * then return referrerURL.\n * 2. If referrerURL is a potentially trustworthy URL and request’s current URL is not a\n * potentially trustworthy URL, then return no referrer.\n * 3. Return referrerOrigin\n */\n if (areSameOrigin) return referrerOrigin\n // else return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n\n function stripURLForReferrer (url, originOnly = false) {\n const urlObject = new URL(url.href)\n urlObject.username = ''\n urlObject.password = ''\n urlObject.hash = ''\n\n return originOnly ? urlObject.origin : urlObject.href\n }\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n // Note: this will only work for SHA- algorithms and it's lazy *at best*.\n const metadata = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n // Note: \"applying algorithm to bytes\" converts the result to base64\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// hash-algo is defined in Content Security Policy 2 Section 4.2\n// base64-value is similary defined there\n// VCHAR is defined https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={1,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n // \"opaque origin\" is an internal value we cannot access, ignore.\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n// https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\nfunction makeIterator (iterator, name) {\n const i = {\n next () {\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n return iterator.next()\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let promise be the result of fully reading body as promise\n // given body.\n try {\n /** @type {Uint8Array[]} */\n const chunks = []\n let length = 0\n\n const reader = body.stream.getReader()\n\n while (true) {\n const { done, value } = await reader.read()\n\n if (done === true) {\n break\n }\n\n // read-loop chunk steps\n assert(isUint8Array(value))\n\n chunks.push(value)\n length += value.byteLength\n }\n\n // 3. Let fulfilledSteps given a byte sequence bytes be to queue\n // a fetch task to run processBody given bytes, with\n // taskDestination.\n const fulfilledSteps = (bytes) => queueMicrotask(() => {\n processBody(bytes)\n })\n\n fulfilledSteps(Buffer.concat(chunks, length))\n } catch (err) {\n // 4. Let rejectedSteps be to queue a fetch task to run\n // processBodyError, with taskDestination.\n queueMicrotask(() => processBodyError(err))\n }\n\n // 5. React to promise with fulfilledSteps and rejectedSteps.\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch\n}\n","'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\n/**\n *\n * @param {{\n * header: string\n * message: string\n * }} message\n */\nwebidl.errors.exception = function (message) {\n throw new TypeError(`${message.header}: ${message.message}`)\n}\n\n/**\n * Throw an error when conversion from one type to another has failed\n * @param {{\n * prefix: string\n * argument: string\n * types: string[]\n * }} context\n */\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\n/**\n * Throw an error when an invalid argument is provided\n * @param {{\n * prefix: string\n * value: string\n * type: string\n * }} context\n */\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 − 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be −2^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength − 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength − 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength − 1 − 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is −0, then set x to +0.\n if (Object.is(-0, x)) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +∞, or −∞, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than −0.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +∞, or −∞, then return +0.\n if (\n Number.isNaN(x) ||\n Object.is(0, x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x ≥ 2^bitLength − 1,\n // then return x − 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 × r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (V) => {\n const record = {}\n const type = webidl.util.Type(V)\n\n if (type === 'Undefined' || type === 'Null') {\n return record\n }\n\n if (type !== 'Object') {\n webidl.errors.exception({\n header: 'Record',\n message: `Expected ${V} to be an Object type.`\n })\n }\n\n for (let [key, value] of Object.entries(V)) {\n key = keyConverter(key)\n value = valueConverter(value)\n\n record[key] = value\n }\n\n return record\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\n/**\n * @param {{\n * key: string,\n * defaultValue?: any,\n * required?: boolean,\n * converter: (...args: unknown[]) => unknown,\n * allowedValues?: any[]\n * }[]} converters\n * @returns\n */\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type !== 'Null' && type !== 'Undefined' && type !== 'Object') {\n webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\n// TODO: ensure that util.toUSVString follows webidl spec\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed', opts)\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned')\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T’s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n","'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n","'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n","'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n","'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\nconst utils_1 = require(\"./utils\");\n// C headers\nvar ERROR;\n(function (ERROR) {\n ERROR[ERROR[\"OK\"] = 0] = \"OK\";\n ERROR[ERROR[\"INTERNAL\"] = 1] = \"INTERNAL\";\n ERROR[ERROR[\"STRICT\"] = 2] = \"STRICT\";\n ERROR[ERROR[\"LF_EXPECTED\"] = 3] = \"LF_EXPECTED\";\n ERROR[ERROR[\"UNEXPECTED_CONTENT_LENGTH\"] = 4] = \"UNEXPECTED_CONTENT_LENGTH\";\n ERROR[ERROR[\"CLOSED_CONNECTION\"] = 5] = \"CLOSED_CONNECTION\";\n ERROR[ERROR[\"INVALID_METHOD\"] = 6] = \"INVALID_METHOD\";\n ERROR[ERROR[\"INVALID_URL\"] = 7] = \"INVALID_URL\";\n ERROR[ERROR[\"INVALID_CONSTANT\"] = 8] = \"INVALID_CONSTANT\";\n ERROR[ERROR[\"INVALID_VERSION\"] = 9] = \"INVALID_VERSION\";\n ERROR[ERROR[\"INVALID_HEADER_TOKEN\"] = 10] = \"INVALID_HEADER_TOKEN\";\n ERROR[ERROR[\"INVALID_CONTENT_LENGTH\"] = 11] = \"INVALID_CONTENT_LENGTH\";\n ERROR[ERROR[\"INVALID_CHUNK_SIZE\"] = 12] = \"INVALID_CHUNK_SIZE\";\n ERROR[ERROR[\"INVALID_STATUS\"] = 13] = \"INVALID_STATUS\";\n ERROR[ERROR[\"INVALID_EOF_STATE\"] = 14] = \"INVALID_EOF_STATE\";\n ERROR[ERROR[\"INVALID_TRANSFER_ENCODING\"] = 15] = \"INVALID_TRANSFER_ENCODING\";\n ERROR[ERROR[\"CB_MESSAGE_BEGIN\"] = 16] = \"CB_MESSAGE_BEGIN\";\n ERROR[ERROR[\"CB_HEADERS_COMPLETE\"] = 17] = \"CB_HEADERS_COMPLETE\";\n ERROR[ERROR[\"CB_MESSAGE_COMPLETE\"] = 18] = \"CB_MESSAGE_COMPLETE\";\n ERROR[ERROR[\"CB_CHUNK_HEADER\"] = 19] = \"CB_CHUNK_HEADER\";\n ERROR[ERROR[\"CB_CHUNK_COMPLETE\"] = 20] = \"CB_CHUNK_COMPLETE\";\n ERROR[ERROR[\"PAUSED\"] = 21] = \"PAUSED\";\n ERROR[ERROR[\"PAUSED_UPGRADE\"] = 22] = \"PAUSED_UPGRADE\";\n ERROR[ERROR[\"PAUSED_H2_UPGRADE\"] = 23] = \"PAUSED_H2_UPGRADE\";\n ERROR[ERROR[\"USER\"] = 24] = \"USER\";\n})(ERROR = exports.ERROR || (exports.ERROR = {}));\nvar TYPE;\n(function (TYPE) {\n TYPE[TYPE[\"BOTH\"] = 0] = \"BOTH\";\n TYPE[TYPE[\"REQUEST\"] = 1] = \"REQUEST\";\n TYPE[TYPE[\"RESPONSE\"] = 2] = \"RESPONSE\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"CONNECTION_KEEP_ALIVE\"] = 1] = \"CONNECTION_KEEP_ALIVE\";\n FLAGS[FLAGS[\"CONNECTION_CLOSE\"] = 2] = \"CONNECTION_CLOSE\";\n FLAGS[FLAGS[\"CONNECTION_UPGRADE\"] = 4] = \"CONNECTION_UPGRADE\";\n FLAGS[FLAGS[\"CHUNKED\"] = 8] = \"CHUNKED\";\n FLAGS[FLAGS[\"UPGRADE\"] = 16] = \"UPGRADE\";\n FLAGS[FLAGS[\"CONTENT_LENGTH\"] = 32] = \"CONTENT_LENGTH\";\n FLAGS[FLAGS[\"SKIPBODY\"] = 64] = \"SKIPBODY\";\n FLAGS[FLAGS[\"TRAILING\"] = 128] = \"TRAILING\";\n // 1 << 8 is unused\n FLAGS[FLAGS[\"TRANSFER_ENCODING\"] = 512] = \"TRANSFER_ENCODING\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nvar LENIENT_FLAGS;\n(function (LENIENT_FLAGS) {\n LENIENT_FLAGS[LENIENT_FLAGS[\"HEADERS\"] = 1] = \"HEADERS\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"CHUNKED_LENGTH\"] = 2] = \"CHUNKED_LENGTH\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"KEEP_ALIVE\"] = 4] = \"KEEP_ALIVE\";\n})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\nvar METHODS;\n(function (METHODS) {\n METHODS[METHODS[\"DELETE\"] = 0] = \"DELETE\";\n METHODS[METHODS[\"GET\"] = 1] = \"GET\";\n METHODS[METHODS[\"HEAD\"] = 2] = \"HEAD\";\n METHODS[METHODS[\"POST\"] = 3] = \"POST\";\n METHODS[METHODS[\"PUT\"] = 4] = \"PUT\";\n /* pathological */\n METHODS[METHODS[\"CONNECT\"] = 5] = \"CONNECT\";\n METHODS[METHODS[\"OPTIONS\"] = 6] = \"OPTIONS\";\n METHODS[METHODS[\"TRACE\"] = 7] = \"TRACE\";\n /* WebDAV */\n METHODS[METHODS[\"COPY\"] = 8] = \"COPY\";\n METHODS[METHODS[\"LOCK\"] = 9] = \"LOCK\";\n METHODS[METHODS[\"MKCOL\"] = 10] = \"MKCOL\";\n METHODS[METHODS[\"MOVE\"] = 11] = \"MOVE\";\n METHODS[METHODS[\"PROPFIND\"] = 12] = \"PROPFIND\";\n METHODS[METHODS[\"PROPPATCH\"] = 13] = \"PROPPATCH\";\n METHODS[METHODS[\"SEARCH\"] = 14] = \"SEARCH\";\n METHODS[METHODS[\"UNLOCK\"] = 15] = \"UNLOCK\";\n METHODS[METHODS[\"BIND\"] = 16] = \"BIND\";\n METHODS[METHODS[\"REBIND\"] = 17] = \"REBIND\";\n METHODS[METHODS[\"UNBIND\"] = 18] = \"UNBIND\";\n METHODS[METHODS[\"ACL\"] = 19] = \"ACL\";\n /* subversion */\n METHODS[METHODS[\"REPORT\"] = 20] = \"REPORT\";\n METHODS[METHODS[\"MKACTIVITY\"] = 21] = \"MKACTIVITY\";\n METHODS[METHODS[\"CHECKOUT\"] = 22] = \"CHECKOUT\";\n METHODS[METHODS[\"MERGE\"] = 23] = \"MERGE\";\n /* upnp */\n METHODS[METHODS[\"M-SEARCH\"] = 24] = \"M-SEARCH\";\n METHODS[METHODS[\"NOTIFY\"] = 25] = \"NOTIFY\";\n METHODS[METHODS[\"SUBSCRIBE\"] = 26] = \"SUBSCRIBE\";\n METHODS[METHODS[\"UNSUBSCRIBE\"] = 27] = \"UNSUBSCRIBE\";\n /* RFC-5789 */\n METHODS[METHODS[\"PATCH\"] = 28] = \"PATCH\";\n METHODS[METHODS[\"PURGE\"] = 29] = \"PURGE\";\n /* CalDAV */\n METHODS[METHODS[\"MKCALENDAR\"] = 30] = \"MKCALENDAR\";\n /* RFC-2068, section 19.6.1.2 */\n METHODS[METHODS[\"LINK\"] = 31] = \"LINK\";\n METHODS[METHODS[\"UNLINK\"] = 32] = \"UNLINK\";\n /* icecast */\n METHODS[METHODS[\"SOURCE\"] = 33] = \"SOURCE\";\n /* RFC-7540, section 11.6 */\n METHODS[METHODS[\"PRI\"] = 34] = \"PRI\";\n /* RFC-2326 RTSP */\n METHODS[METHODS[\"DESCRIBE\"] = 35] = \"DESCRIBE\";\n METHODS[METHODS[\"ANNOUNCE\"] = 36] = \"ANNOUNCE\";\n METHODS[METHODS[\"SETUP\"] = 37] = \"SETUP\";\n METHODS[METHODS[\"PLAY\"] = 38] = \"PLAY\";\n METHODS[METHODS[\"PAUSE\"] = 39] = \"PAUSE\";\n METHODS[METHODS[\"TEARDOWN\"] = 40] = \"TEARDOWN\";\n METHODS[METHODS[\"GET_PARAMETER\"] = 41] = \"GET_PARAMETER\";\n METHODS[METHODS[\"SET_PARAMETER\"] = 42] = \"SET_PARAMETER\";\n METHODS[METHODS[\"REDIRECT\"] = 43] = \"REDIRECT\";\n METHODS[METHODS[\"RECORD\"] = 44] = \"RECORD\";\n /* RAOP */\n METHODS[METHODS[\"FLUSH\"] = 45] = \"FLUSH\";\n})(METHODS = exports.METHODS || (exports.METHODS = {}));\nexports.METHODS_HTTP = [\n METHODS.DELETE,\n METHODS.GET,\n METHODS.HEAD,\n METHODS.POST,\n METHODS.PUT,\n METHODS.CONNECT,\n METHODS.OPTIONS,\n METHODS.TRACE,\n METHODS.COPY,\n METHODS.LOCK,\n METHODS.MKCOL,\n METHODS.MOVE,\n METHODS.PROPFIND,\n METHODS.PROPPATCH,\n METHODS.SEARCH,\n METHODS.UNLOCK,\n METHODS.BIND,\n METHODS.REBIND,\n METHODS.UNBIND,\n METHODS.ACL,\n METHODS.REPORT,\n METHODS.MKACTIVITY,\n METHODS.CHECKOUT,\n METHODS.MERGE,\n METHODS['M-SEARCH'],\n METHODS.NOTIFY,\n METHODS.SUBSCRIBE,\n METHODS.UNSUBSCRIBE,\n METHODS.PATCH,\n METHODS.PURGE,\n METHODS.MKCALENDAR,\n METHODS.LINK,\n METHODS.UNLINK,\n METHODS.PRI,\n // TODO(indutny): should we allow it with HTTP?\n METHODS.SOURCE,\n];\nexports.METHODS_ICE = [\n METHODS.SOURCE,\n];\nexports.METHODS_RTSP = [\n METHODS.OPTIONS,\n METHODS.DESCRIBE,\n METHODS.ANNOUNCE,\n METHODS.SETUP,\n METHODS.PLAY,\n METHODS.PAUSE,\n METHODS.TEARDOWN,\n METHODS.GET_PARAMETER,\n METHODS.SET_PARAMETER,\n METHODS.REDIRECT,\n METHODS.RECORD,\n METHODS.FLUSH,\n // For AirPlay\n METHODS.GET,\n METHODS.POST,\n];\nexports.METHOD_MAP = utils_1.enumToMap(METHODS);\nexports.H_METHOD_MAP = {};\nObject.keys(exports.METHOD_MAP).forEach((key) => {\n if (/^H/.test(key)) {\n exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n }\n});\nvar FINISH;\n(function (FINISH) {\n FINISH[FINISH[\"SAFE\"] = 0] = \"SAFE\";\n FINISH[FINISH[\"SAFE_WITH_CB\"] = 1] = \"SAFE_WITH_CB\";\n FINISH[FINISH[\"UNSAFE\"] = 2] = \"UNSAFE\";\n})(FINISH = exports.FINISH || (exports.FINISH = {}));\nexports.ALPHA = [];\nfor (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n // Upper case\n exports.ALPHA.push(String.fromCharCode(i));\n // Lower case\n exports.ALPHA.push(String.fromCharCode(i + 0x20));\n}\nexports.NUM_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n};\nexports.HEX_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF,\n a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf,\n};\nexports.NUM = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n];\nexports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\nexports.MARK = ['-', '_', '.', '!', '~', '*', '\\'', '(', ')'];\nexports.USERINFO_CHARS = exports.ALPHANUM\n .concat(exports.MARK)\n .concat(['%', ';', ':', '&', '=', '+', '$', ',']);\n// TODO(indutny): use RFC\nexports.STRICT_URL_CHAR = [\n '!', '\"', '$', '%', '&', '\\'',\n '(', ')', '*', '+', ',', '-', '.', '/',\n ':', ';', '<', '=', '>',\n '@', '[', '\\\\', ']', '^', '_',\n '`',\n '{', '|', '}', '~',\n].concat(exports.ALPHANUM);\nexports.URL_CHAR = exports.STRICT_URL_CHAR\n .concat(['\\t', '\\f']);\n// All characters with 0x80 bit set to 1\nfor (let i = 0x80; i <= 0xff; i++) {\n exports.URL_CHAR.push(i);\n}\nexports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);\n/* Tokens as defined by rfc 2616. Also lowercases them.\n * token = 1*\n * separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n * | \",\" | \";\" | \":\" | \"\\\" | <\">\n * | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n * | \"{\" | \"}\" | SP | HT\n */\nexports.STRICT_TOKEN = [\n '!', '#', '$', '%', '&', '\\'',\n '*', '+', '-', '.',\n '^', '_', '`',\n '|', '~',\n].concat(exports.ALPHANUM);\nexports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n/*\n * Verify that a char is a valid visible (printable) US-ASCII\n * character or %x80-FF\n */\nexports.HEADER_CHARS = ['\\t'];\nfor (let i = 32; i <= 255; i++) {\n if (i !== 127) {\n exports.HEADER_CHARS.push(i);\n }\n}\n// ',' = \\x44\nexports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\nexports.MAJOR = exports.NUM_MAP;\nexports.MINOR = exports.MAJOR;\nvar HEADER_STATE;\n(function (HEADER_STATE) {\n HEADER_STATE[HEADER_STATE[\"GENERAL\"] = 0] = \"GENERAL\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION\"] = 1] = \"CONNECTION\";\n HEADER_STATE[HEADER_STATE[\"CONTENT_LENGTH\"] = 2] = \"CONTENT_LENGTH\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING\"] = 3] = \"TRANSFER_ENCODING\";\n HEADER_STATE[HEADER_STATE[\"UPGRADE\"] = 4] = \"UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_KEEP_ALIVE\"] = 5] = \"CONNECTION_KEEP_ALIVE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_CLOSE\"] = 6] = \"CONNECTION_CLOSE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_UPGRADE\"] = 7] = \"CONNECTION_UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING_CHUNKED\"] = 8] = \"TRANSFER_ENCODING_CHUNKED\";\n})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\nexports.SPECIAL_HEADERS = {\n 'connection': HEADER_STATE.CONNECTION,\n 'content-length': HEADER_STATE.CONTENT_LENGTH,\n 'proxy-connection': HEADER_STATE.CONNECTION,\n 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,\n 'upgrade': HEADER_STATE.UPGRADE,\n};\n//# sourceMappingURL=constants.js.map","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGAuAQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mADMJEwEAQQELDQECAwQFCwYHLiooJCYKxqgCOAIACwgAEIiAgIAACxkAIAAQtoCAgAAaIAAgAjYCNCAAIAE6ACgLHAAgACAALwEyIAAtAC4gABC1gICAABCAgICAAAspAQF/QTgQuoCAgAAiARC2gICAABogAUGAiICAADYCNCABIAA6ACggAQsKACAAELyAgIAACwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BMgsHACAALQAuC0UBBH8gACgCGCEBIAAtAC0hAiAALQAoIQMgACgCNCEEIAAQtoCAgAAaIAAgBDYCNCAAIAM6ACggACACOgAtIAAgATYCGAsRACAAIAEgASACahC3gICAAAtFACAAQgA3AgAgAEEwakIANwIAIABBKGpCADcCACAAQSBqQgA3AgAgAEEYakIANwIAIABBEGpCADcCACAAQQhqQgA3AgALZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI0IgFFDQAgASgCHCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQv4CAgAAACyAAQf+RgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQYSUgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBGkkNABC/gICAAAALIABBAnRByJuAgABqKAIACyIAAkAgAEEuSQ0AEL+AgIAAAAsgAEECdEGwnICAAGooAgALFgAgACAALQAtQf4BcSABQQBHcjoALQsZACAAIAAtAC1B/QFxIAFBAEdBAXRyOgAtCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI0IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZyOgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIoIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCNCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEHSioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCLCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB3ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAjAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI0IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcOQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAI0IgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAhQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCHCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB0oiAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAiAiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL8gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARBCHENAAJAIARBgARxRQ0AAkAgAC0AKEEBRw0AIAAtAC1BCnENAEEFDwtBBA8LAkAgBEEgcQ0AAkAgAC0AKEEBRg0AIAAvATIiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQYgEcUGABEYNAiAEQShxRQ0CC0EADwtBAEEDIAApAyBQGyEFCyAFC10BAn9BACEBAkAgAC0AKEEBRg0AIAAvATIiAkGcf2pB5ABJDQAgAkHMAUYNACACQbACRg0AIAAvATAiAEHAAHENAEEBIQEgAEGIBHFBgARGDQAgAEEocUUhAQsgAQuiAQEDfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEDIAAvATAiBEECcUUNAQwCC0EAIQMgAC8BMCIEQQFxRQ0BC0EBIQMgAC0AKEEBRg0AIAAvATIiBUGcf2pB5ABJDQAgBUHMAUYNACAFQbACRg0AIARBwABxDQBBACEDIARBiARxQYAERg0AIARBKHFBAEchAwsgAEEAOwEwIABBADoALyADC5QBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQEgAC8BMCICQQJxRQ0BDAILQQAhASAALwEwIgJBAXFFDQELQQEhASAALQAoQQFGDQAgAC8BMiIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC08AIABBGGpCADcDACAAQgA3AwAgAEEwakIANwMAIABBKGpCADcDACAAQSBqQgA3AwAgAEEQakIANwMAIABBCGpCADcDACAAQbwBNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQuICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC9POAQMcfwN+BX8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDyABIRAgASERIAEhEiABIRMgASEUIAEhFSABIRYgASEXIAEhGCABIRkgASEaIAEhGyABIRwgASEdAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIeQX9qDrwBtwEBtgECAwQFBgcICQoLDA0ODxDAAb8BERITtQEUFRYXGBkavQG8ARscHR4fICG0AbMBIiOyAbEBJCUmJygpKissLS4vMDEyMzQ1Njc4OTq4ATs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAQC5AQtBACEeDK8BC0EPIR4MrgELQQ4hHgytAQtBECEeDKwBC0ERIR4MqwELQRQhHgyqAQtBFSEeDKkBC0EWIR4MqAELQRchHgynAQtBGCEeDKYBC0EIIR4MpQELQRkhHgykAQtBGiEeDKMBC0ETIR4MogELQRIhHgyhAQtBGyEeDKABC0EcIR4MnwELQR0hHgyeAQtBHiEeDJ0BC0GqASEeDJwBC0GrASEeDJsBC0EgIR4MmgELQSEhHgyZAQtBIiEeDJgBC0EjIR4MlwELQSQhHgyWAQtBrQEhHgyVAQtBJSEeDJQBC0EpIR4MkwELQQ0hHgySAQtBJiEeDJEBC0EnIR4MkAELQSghHgyPAQtBLiEeDI4BC0EqIR4MjQELQa4BIR4MjAELQQwhHgyLAQtBLyEeDIoBC0ErIR4MiQELQQshHgyIAQtBLCEeDIcBC0EtIR4MhgELQQohHgyFAQtBMSEeDIQBC0EwIR4MgwELQQkhHgyCAQtBHyEeDIEBC0EyIR4MgAELQTMhHgx/C0E0IR4MfgtBNSEeDH0LQTYhHgx8C0E3IR4MewtBOCEeDHoLQTkhHgx5C0E6IR4MeAtBrAEhHgx3C0E7IR4MdgtBPCEeDHULQT0hHgx0C0E+IR4McwtBPyEeDHILQcAAIR4McQtBwQAhHgxwC0HCACEeDG8LQcMAIR4MbgtBxAAhHgxtC0EHIR4MbAtBxQAhHgxrC0EGIR4MagtBxgAhHgxpC0EFIR4MaAtBxwAhHgxnC0EEIR4MZgtByAAhHgxlC0HJACEeDGQLQcoAIR4MYwtBywAhHgxiC0EDIR4MYQtBzAAhHgxgC0HNACEeDF8LQc4AIR4MXgtB0AAhHgxdC0HPACEeDFwLQdEAIR4MWwtB0gAhHgxaC0ECIR4MWQtB0wAhHgxYC0HUACEeDFcLQdUAIR4MVgtB1gAhHgxVC0HXACEeDFQLQdgAIR4MUwtB2QAhHgxSC0HaACEeDFELQdsAIR4MUAtB3AAhHgxPC0HdACEeDE4LQd4AIR4MTQtB3wAhHgxMC0HgACEeDEsLQeEAIR4MSgtB4gAhHgxJC0HjACEeDEgLQeQAIR4MRwtB5QAhHgxGC0HmACEeDEULQecAIR4MRAtB6AAhHgxDC0HpACEeDEILQeoAIR4MQQtB6wAhHgxAC0HsACEeDD8LQe0AIR4MPgtB7gAhHgw9C0HvACEeDDwLQfAAIR4MOwtB8QAhHgw6C0HyACEeDDkLQfMAIR4MOAtB9AAhHgw3C0H1ACEeDDYLQfYAIR4MNQtB9wAhHgw0C0H4ACEeDDMLQfkAIR4MMgtB+gAhHgwxC0H7ACEeDDALQfwAIR4MLwtB/QAhHgwuC0H+ACEeDC0LQf8AIR4MLAtBgAEhHgwrC0GBASEeDCoLQYIBIR4MKQtBgwEhHgwoC0GEASEeDCcLQYUBIR4MJgtBhgEhHgwlC0GHASEeDCQLQYgBIR4MIwtBiQEhHgwiC0GKASEeDCELQYsBIR4MIAtBjAEhHgwfC0GNASEeDB4LQY4BIR4MHQtBjwEhHgwcC0GQASEeDBsLQZEBIR4MGgtBkgEhHgwZC0GTASEeDBgLQZQBIR4MFwtBlQEhHgwWC0GWASEeDBULQZcBIR4MFAtBmAEhHgwTC0GZASEeDBILQZ0BIR4MEQtBmgEhHgwQC0EBIR4MDwtBmwEhHgwOC0GcASEeDA0LQZ4BIR4MDAtBoAEhHgwLC0GfASEeDAoLQaEBIR4MCQtBogEhHgwIC0GjASEeDAcLQaQBIR4MBgtBpQEhHgwFC0GmASEeDAQLQacBIR4MAwtBqAEhHgwCC0GpASEeDAELQa8BIR4LA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgHg6wAQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgaHB4fICMkJSYnKCkqLC0uLzD7AjQ2ODk8P0FCQ0RFRkdISUpLTE1OT1BRUlNVV1lcXV5gYmNkZWZnaGtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAdoB4AHhAeQB8QG9Ar0CCyABIgggAkcNwgFBvAEhHgyVAwsgASIeIAJHDbEBQawBIR4MlAMLIAEiASACRw1nQeIAIR4MkwMLIAEiASACRw1dQdoAIR4MkgMLIAEiASACRw1WQdUAIR4MkQMLIAEiASACRw1SQdMAIR4MkAMLIAEiASACRw1PQdEAIR4MjwMLIAEiASACRw1MQc8AIR4MjgMLIAEiASACRw0QQQwhHgyNAwsgASIBIAJHDTNBOCEeDIwDCyABIgEgAkcNL0E1IR4MiwMLIAEiASACRw0mQTIhHgyKAwsgASIBIAJHDSRBLyEeDIkDCyABIgEgAkcNHUEkIR4MiAMLIAAtAC5BAUYN/QIMxwELIAAgASIBIAIQtICAgABBAUcNtAEMtQELIAAgASIBIAIQrYCAgAAiHg21ASABIQEMsAILAkAgASIBIAJHDQBBBiEeDIUDCyAAIAFBAWoiASACELCAgIAAIh4NtgEgASEBDA8LIABCADcDIEETIR4M8wILIAEiHiACRw0JQQ8hHgyCAwsCQCABIgEgAkYNACABQQFqIQFBESEeDPICC0EHIR4MgQMLIABCACAAKQMgIh8gAiABIh5rrSIgfSIhICEgH1YbNwMgIB8gIFYiIkUNswFBCCEeDIADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEVIR4M8AILQQkhHgz/AgsgASEBIAApAyBQDbIBIAEhAQytAgsCQCABIgEgAkcNAEELIR4M/gILIAAgAUEBaiIBIAIQr4CAgAAiHg2yASABIQEMrQILA0ACQCABLQAAQfCdgIAAai0AACIeQQFGDQAgHkECRw20ASABQQFqIQEMAwsgAUEBaiIBIAJHDQALQQwhHgz8AgsCQCABIgEgAkcNAEENIR4M/AILAkACQCABLQAAIh5Bc2oOFAG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgEAtAELIAFBAWohAQy0AQsgAUEBaiEBC0EYIR4M6gILAkAgASIeIAJHDQBBDiEeDPoCC0IAIR8gHiEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAeLQAAQVBqDjfIAccBAAECAwQFBge+Ar4CvgK+Ar4CvgK+AggJCgsMDb4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgIODxAREhO+AgtCAiEfDMcBC0IDIR8MxgELQgQhHwzFAQtCBSEfDMQBC0IGIR8MwwELQgchHwzCAQtCCCEfDMEBC0IJIR8MwAELQgohHwy/AQtCCyEfDL4BC0IMIR8MvQELQg0hHwy8AQtCDiEfDLsBC0IPIR8MugELQgohHwy5AQtCCyEfDLgBC0IMIR8MtwELQg0hHwy2AQtCDiEfDLUBC0IPIR8MtAELQgAhHwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgHi0AAEFQag43xwHGAQABAgMEBQYHyAHIAcgByAHIAcgByAEICQoLDA3IAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgBDg8QERITyAELQgIhHwzGAQtCAyEfDMUBC0IEIR8MxAELQgUhHwzDAQtCBiEfDMIBC0IHIR8MwQELQgghHwzAAQtCCSEfDL8BC0IKIR8MvgELQgshHwy9AQtCDCEfDLwBC0INIR8MuwELQg4hHwy6AQtCDyEfDLkBC0IKIR8MuAELQgshHwy3AQtCDCEfDLYBC0INIR8MtQELQg4hHwy0AQtCDyEfDLMBCyAAQgAgACkDICIfIAIgASIea60iIH0iISAhIB9WGzcDICAfICBWIiJFDbQBQREhHgz3AgsCQCABIgEgAkYNACAAQYmAgIAANgIIIAAgATYCBCABIQFBGyEeDOcCC0ESIR4M9gILIAAgASIeIAIQsoCAgABBf2oOBaYBAKICAbMBtAELQRIhHgzkAgsgAEEBOgAvIB4hAQzyAgsgASIBIAJHDbQBQRYhHgzyAgsgASIcIAJHDRlBOSEeDPECCwJAIAEiASACRw0AQRohHgzxAgsgAEEANgIEIABBioCAgAA2AgggACABIAEQqoCAgAAiHg22ASABIQEMuQELAkAgASIeIAJHDQBBGyEeDPACCwJAIB4tAAAiAUEgRw0AIB5BAWohAQwaCyABQQlHDbYBIB5BAWohAQwZCwJAIAEiASACRg0AIAFBAWohAQwUC0EcIR4M7gILAkAgASIeIAJHDQBBHSEeDO4CCwJAIB4tAAAiAUEJRw0AIB4hAQzSAgsgAUEgRw21ASAeIQEM0QILAkAgASIBIAJHDQBBHiEeDO0CCyABLQAAQQpHDbgBIAFBAWohAQygAgsgASIBIAJHDbgBQSIhHgzrAgsDQAJAIAEtAAAiHkEgRg0AAkAgHkF2ag4EAL4BvgEAvAELIAEhAQzEAQsgAUEBaiIBIAJHDQALQSQhHgzqAgtBJSEeIAEiIyACRg3pAiACICNrIAAoAgAiJGohJSAjISYgJCEBAkADQCAmLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQfCfgIAAai0AAEcNASABQQNGDdYCIAFBAWohASAmQQFqIiYgAkcNAAsgACAlNgIADOoCCyAAQQA2AgAgJiEBDLsBC0EmIR4gASIjIAJGDegCIAIgI2sgACgCACIkaiElICMhJiAkIQECQANAICYtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFB9J+AgABqLQAARw0BIAFBCEYNvQEgAUEBaiEBICZBAWoiJiACRw0ACyAAICU2AgAM6QILIABBADYCACAmIQEMugELQSchHiABIiMgAkYN5wIgAiAjayAAKAIAIiRqISUgIyEmICQhAQJAA0AgJi0AACIiQSByICIgIkG/f2pB/wFxQRpJG0H/AXEgAUHQpoCAAGotAABHDQEgAUEFRg29ASABQQFqIQEgJkEBaiImIAJHDQALIAAgJTYCAAzoAgsgAEEANgIAICYhAQy5AQsCQCABIgEgAkYNAANAAkAgAS0AAEGAooCAAGotAAAiHkEBRg0AIB5BAkYNCiABIQEMwQELIAFBAWoiASACRw0AC0EjIR4M5wILQSMhHgzmAgsCQCABIgEgAkYNAANAAkAgAS0AACIeQSBGDQAgHkF2ag4EvQG+Ab4BvQG+AQsgAUEBaiIBIAJHDQALQSshHgzmAgtBKyEeDOUCCwNAAkAgAS0AACIeQSBGDQAgHkEJRw0DCyABQQFqIgEgAkcNAAtBLyEeDOQCCwNAAkAgAS0AACIeQSBGDQACQAJAIB5BdmoOBL4BAQG+AQALIB5BLEYNvwELIAEhAQwECyABQQFqIgEgAkcNAAtBMiEeDOMCCyABIQEMvwELQTMhHiABIiYgAkYN4QIgAiAmayAAKAIAIiNqISQgJiEiICMhAQJAA0AgIi0AAEEgciABQYCkgIAAai0AAEcNASABQQZGDdACIAFBAWohASAiQQFqIiIgAkcNAAsgACAkNgIADOICCyAAQQA2AgAgIiEBC0ErIR4M0AILAkAgASIdIAJHDQBBNCEeDOACCyAAQYqAgIAANgIIIAAgHTYCBCAdIQEgAC0ALEF/ag4ErwG5AbsBvQHHAgsgAUEBaiEBDK4BCwJAIAEiASACRg0AA0ACQCABLQAAIh5BIHIgHiAeQb9/akH/AXFBGkkbQf8BcSIeQQlGDQAgHkEgRg0AAkACQAJAAkAgHkGdf2oOEwADAwMDAwMDAQMDAwMDAwMDAwIDCyABQQFqIQFBJiEeDNMCCyABQQFqIQFBJyEeDNICCyABQQFqIQFBKCEeDNECCyABIQEMsgELIAFBAWoiASACRw0AC0EoIR4M3gILQSghHgzdAgsCQCABIgEgAkYNAANAAkAgAS0AAEGAoICAAGotAABBAUYNACABIQEMtwELIAFBAWoiASACRw0AC0EwIR4M3QILQTAhHgzcAgsCQANAAkAgAS0AAEF3ag4YAALBAsECxwLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQIAwQILIAFBAWoiASACRw0AC0E1IR4M3AILIAFBAWohAQtBISEeDMoCCyABIgEgAkcNuQFBNyEeDNkCCwNAAkAgAS0AAEGQpICAAGotAABBAUYNACABIQEMkAILIAFBAWoiASACRw0AC0E4IR4M2AILIBwtAAAiHkEgRg2aASAeQTpHDcYCIAAoAgQhASAAQQA2AgQgACABIBwQqICAgAAiAQ22ASAcQQFqIQEMuAELIAAgASACEKmAgIAAGgtBCiEeDMUCC0E6IR4gASImIAJGDdQCIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBkKaAgABqLQAARw3EAiABQQVGDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM1QILIABBADYCACAAQQE6ACwgJiAja0EGaiEBDL4CC0E7IR4gASImIAJGDdMCIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBlqaAgABqLQAARw3DAiABQQlGDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM1AILIABBADYCACAAQQI6ACwgJiAja0EKaiEBDL0CCwJAIAEiHCACRw0AQTwhHgzTAgsCQAJAIBwtAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAMMCwwLDAsMCwwIBwwILIBxBAWohAUEyIR4MwwILIBxBAWohAUEzIR4MwgILQT0hHiABIiYgAkYN0QIgAiAmayAAKAIAIiNqISQgJiEcICMhAQNAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBoKaAgABqLQAARw3AAiABQQFGDbQCIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNECC0E+IR4gASImIAJGDdACIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBoqaAgABqLQAARw3AAiABQQ5GDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM0QILIABBADYCACAAQQE6ACwgJiAja0EPaiEBDLoCC0E/IR4gASImIAJGDc8CIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBwKaAgABqLQAARw2/AiABQQ9GDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM0AILIABBADYCACAAQQM6ACwgJiAja0EQaiEBDLkCC0HAACEeIAEiJiACRg3OAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQdCmgIAAai0AAEcNvgIgAUEFRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADM8CCyAAQQA2AgAgAEEEOgAsICYgI2tBBmohAQy4AgsCQCABIhwgAkcNAEHBACEeDM4CCwJAAkACQAJAIBwtAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAMACwALAAsACwALAAsACwALAAsACwALAAgHAAsACwAICA8ACCyAcQQFqIQFBNSEeDMACCyAcQQFqIQFBNiEeDL8CCyAcQQFqIQFBNyEeDL4CCyAcQQFqIQFBOCEeDL0CCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUE5IR4MvQILQcIAIR4MzAILIAEiASACRw2vAUHEACEeDMsCC0HFACEeIAEiJiACRg3KAiACICZrIAAoAgAiI2ohJCAmISIgIyEBAkADQCAiLQAAIAFB1qaAgABqLQAARw20ASABQQFGDQEgAUEBaiEBICJBAWoiIiACRw0ACyAAICQ2AgAMywILIABBADYCACAmICNrQQJqIQEMrwELAkAgASIBIAJHDQBBxwAhHgzKAgsgAS0AAEEKRw2zASABQQFqIQEMrwELAkAgASIBIAJHDQBByAAhHgzJAgsCQAJAIAEtAABBdmoOBAG0AbQBALQBCyABQQFqIQFBPSEeDLkCCyABQQFqIQEMrgELAkAgASIBIAJHDQBByQAhHgzIAgtBACEeAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgq7AboBAAECAwQFBge8AQtBAiEeDLoBC0EDIR4MuQELQQQhHgy4AQtBBSEeDLcBC0EGIR4MtgELQQchHgy1AQtBCCEeDLQBC0EJIR4MswELAkAgASIBIAJHDQBBygAhHgzHAgsgAS0AAEEuRw20ASABQQFqIQEMgAILAkAgASIBIAJHDQBBywAhHgzGAgtBACEeAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgq9AbwBAAECAwQFBge+AQtBAiEeDLwBC0EDIR4MuwELQQQhHgy6AQtBBSEeDLkBC0EGIR4MuAELQQchHgy3AQtBCCEeDLYBC0EJIR4MtQELQcwAIR4gASImIAJGDcQCIAIgJmsgACgCACIjaiEkICYhASAjISIDQCABLQAAICJB4qaAgABqLQAARw24ASAiQQNGDbcBICJBAWohIiABQQFqIgEgAkcNAAsgACAkNgIADMQCC0HNACEeIAEiJiACRg3DAiACICZrIAAoAgAiI2ohJCAmIQEgIyEiA0AgAS0AACAiQeamgIAAai0AAEcNtwEgIkECRg25ASAiQQFqISIgAUEBaiIBIAJHDQALIAAgJDYCAAzDAgtBzgAhHiABIiYgAkYNwgIgAiAmayAAKAIAIiNqISQgJiEBICMhIgNAIAEtAAAgIkHppoCAAGotAABHDbYBICJBA0YNuQEgIkEBaiEiIAFBAWoiASACRw0ACyAAICQ2AgAMwgILA0ACQCABLQAAIh5BIEYNAAJAAkACQCAeQbh/ag4LAAG6AboBugG6AboBugG6AboBAroBCyABQQFqIQFBwgAhHgy1AgsgAUEBaiEBQcMAIR4MtAILIAFBAWohAUHEACEeDLMCCyABQQFqIgEgAkcNAAtBzwAhHgzBAgsCQCABIgEgAkYNACAAIAFBAWoiASACEKWAgIAAGiABIQFBByEeDLECC0HQACEeDMACCwNAAkAgAS0AAEHwpoCAAGotAAAiHkEBRg0AIB5BfmoOA7kBugG7AbwBCyABQQFqIgEgAkcNAAtB0QAhHgy/AgsCQCABIgEgAkYNACABQQFqIQEMAwtB0gAhHgy+AgsDQAJAIAEtAABB8KiAgABqLQAAIh5BAUYNAAJAIB5BfmoOBLwBvQG+AQC/AQsgASEBQcYAIR4MrwILIAFBAWoiASACRw0AC0HTACEeDL0CCwJAIAEiASACRw0AQdQAIR4MvQILAkAgAS0AACIeQXZqDhqkAb8BvwGmAb8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/AbQBvwG/AQC9AQsgAUEBaiEBC0EGIR4MqwILA0ACQCABLQAAQfCqgIAAai0AAEEBRg0AIAEhAQz6AQsgAUEBaiIBIAJHDQALQdUAIR4MugILAkAgASIBIAJGDQAgAUEBaiEBDAMLQdYAIR4MuQILAkAgASIBIAJHDQBB1wAhHgy5AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB2AAhHgy4AgsgAUEBaiEBC0EEIR4MpgILAkAgASIiIAJHDQBB2QAhHgy2AgsgIiEBAkACQAJAICItAABB8KyAgABqLQAAQX9qDge+Ab8BwAEA+AEBAsEBCyAiQQFqIQEMCgsgIkEBaiEBDLcBC0EAIR4gAEEANgIcIABB8Y6AgAA2AhAgAEEHNgIMIAAgIkEBajYCFAy1AgsCQANAAkAgAS0AAEHwrICAAGotAAAiHkEERg0AAkACQCAeQX9qDge8Ab0BvgHDAQAEAcMBCyABIQFByQAhHgyoAgsgAUEBaiEBQcsAIR4MpwILIAFBAWoiASACRw0AC0HaACEeDLUCCyABQQFqIQEMtQELAkAgASIiIAJHDQBB2wAhHgy0AgsgIi0AAEEvRw2+ASAiQQFqIQEMBgsCQCABIiIgAkcNAEHcACEeDLMCCwJAICItAAAiAUEvRw0AICJBAWohAUHMACEeDKMCCyABQXZqIgFBFksNvQFBASABdEGJgIACcUUNvQEMkwILAkAgASIBIAJGDQAgAUEBaiEBQc0AIR4MogILQd0AIR4MsQILAkAgASIiIAJHDQBB3wAhHgyxAgsgIiEBAkAgIi0AAEHwsICAAGotAABBf2oOA5IC8AEAvgELQdAAIR4MoAILAkAgASIiIAJGDQADQAJAICItAABB8K6AgABqLQAAIgFBA0YNAAJAIAFBf2oOApQCAL8BCyAiIQFBzgAhHgyiAgsgIkEBaiIiIAJHDQALQd4AIR4MsAILQd4AIR4MrwILAkAgASIBIAJGDQAgAEGMgICAADYCCCAAIAE2AgQgASEBQc8AIR4MnwILQeAAIR4MrgILAkAgASIBIAJHDQBB4QAhHgyuAgsgAEGMgICAADYCCCAAIAE2AgQgASEBC0EDIR4MnAILA0AgAS0AAEEgRw2MAiABQQFqIgEgAkcNAAtB4gAhHgyrAgsCQCABIgEgAkcNAEHjACEeDKsCCyABLQAAQSBHDbgBIAFBAWohAQzUAQsCQCABIgggAkcNAEHkACEeDKoCCyAILQAAQcwARw27ASAIQQFqIQFBEyEeDLkBC0HlACEeIAEiIiACRg2oAiACICJrIAAoAgAiJmohIyAiIQggJiEBA0AgCC0AACABQfCygIAAai0AAEcNugEgAUEFRg24ASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAyoAgsCQCABIgggAkcNAEHmACEeDKgCCwJAAkAgCC0AAEG9f2oODAC7AbsBuwG7AbsBuwG7AbsBuwG7AQG7AQsgCEEBaiEBQdQAIR4MmAILIAhBAWohAUHVACEeDJcCC0HnACEeIAEiIiACRg2mAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB7bOAgABqLQAARw25ASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpwILIABBADYCACAiICZrQQNqIQFBECEeDLYBC0HoACEeIAEiIiACRg2lAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB9rKAgABqLQAARw24ASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpgILIABBADYCACAiICZrQQZqIQFBFiEeDLUBC0HpACEeIAEiIiACRg2kAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB/LKAgABqLQAARw23ASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpQILIABBADYCACAiICZrQQRqIQFBBSEeDLQBCwJAIAEiCCACRw0AQeoAIR4MpAILIAgtAABB2QBHDbUBIAhBAWohAUEIIR4MswELAkAgASIIIAJHDQBB6wAhHgyjAgsCQAJAIAgtAABBsn9qDgMAtgEBtgELIAhBAWohAUHZACEeDJMCCyAIQQFqIQFB2gAhHgySAgsCQCABIgggAkcNAEHsACEeDKICCwJAAkAgCC0AAEG4f2oOCAC1AbUBtQG1AbUBtQEBtQELIAhBAWohAUHYACEeDJICCyAIQQFqIQFB2wAhHgyRAgtB7QAhHiABIiIgAkYNoAIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQYCzgIAAai0AAEcNswEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKECC0EAIR4gAEEANgIAICIgJmtBA2ohAQywAQtB7gAhHiABIiIgAkYNnwIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQYOzgIAAai0AAEcNsgEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKACCyAAQQA2AgAgIiAma0EFaiEBQSMhHgyvAQsCQCABIgggAkcNAEHvACEeDJ8CCwJAAkAgCC0AAEG0f2oOCACyAbIBsgGyAbIBsgEBsgELIAhBAWohAUHdACEeDI8CCyAIQQFqIQFB3gAhHgyOAgsCQCABIgggAkcNAEHwACEeDJ4CCyAILQAAQcUARw2vASAIQQFqIQEM3gELQfEAIR4gASIiIAJGDZwCIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUGIs4CAAGotAABHDa8BIAFBA0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAydAgsgAEEANgIAICIgJmtBBGohAUEtIR4MrAELQfIAIR4gASIiIAJGDZsCIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUHQs4CAAGotAABHDa4BIAFBCEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAycAgsgAEEANgIAICIgJmtBCWohAUEpIR4MqwELAkAgASIBIAJHDQBB8wAhHgybAgtBASEeIAEtAABB3wBHDaoBIAFBAWohAQzcAQtB9AAhHiABIiIgAkYNmQIgAiAiayAAKAIAIiZqISMgIiEIICYhAQNAIAgtAAAgAUGMs4CAAGotAABHDasBIAFBAUYN9wEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMmQILAkAgASIeIAJHDQBB9QAhHgyZAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQY6zgIAAai0AAEcNqwEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfUAIR4MmQILIABBADYCACAeICJrQQNqIQFBAiEeDKgBCwJAIAEiHiACRw0AQfYAIR4MmAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHws4CAAGotAABHDaoBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH2ACEeDJgCCyAAQQA2AgAgHiAia0ECaiEBQR8hHgynAQsCQCABIh4gAkcNAEH3ACEeDJcCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFB8rOAgABqLQAARw2pASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB9wAhHgyXAgsgAEEANgIAIB4gImtBAmohAUEJIR4MpgELAkAgASIIIAJHDQBB+AAhHgyWAgsCQAJAIAgtAABBt39qDgcAqQGpAakBqQGpAQGpAQsgCEEBaiEBQeYAIR4MhgILIAhBAWohAUHnACEeDIUCCwJAIAEiHiACRw0AQfkAIR4MlQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGRs4CAAGotAABHDacBIAFBBUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH5ACEeDJUCCyAAQQA2AgAgHiAia0EGaiEBQRghHgykAQsCQCABIh4gAkcNAEH6ACEeDJQCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBl7OAgABqLQAARw2mASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB+gAhHgyUAgsgAEEANgIAIB4gImtBA2ohAUEXIR4MowELAkAgASIeIAJHDQBB+wAhHgyTAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQZqzgIAAai0AAEcNpQEgAUEGRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfsAIR4MkwILIABBADYCACAeICJrQQdqIQFBFSEeDKIBCwJAIAEiHiACRw0AQfwAIR4MkgILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGhs4CAAGotAABHDaQBIAFBBUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH8ACEeDJICCyAAQQA2AgAgHiAia0EGaiEBQR4hHgyhAQsCQCABIgggAkcNAEH9ACEeDJECCyAILQAAQcwARw2iASAIQQFqIQFBCiEeDKABCwJAIAEiCCACRw0AQf4AIR4MkAILAkACQCAILQAAQb9/ag4PAKMBowGjAaMBowGjAaMBowGjAaMBowGjAaMBAaMBCyAIQQFqIQFB7AAhHgyAAgsgCEEBaiEBQe0AIR4M/wELAkAgASIIIAJHDQBB/wAhHgyPAgsCQAJAIAgtAABBv39qDgMAogEBogELIAhBAWohAUHrACEeDP8BCyAIQQFqIQFB7gAhHgz+AQsCQCABIh4gAkcNAEGAASEeDI4CCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBp7OAgABqLQAARw2gASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBgAEhHgyOAgsgAEEANgIAIB4gImtBAmohAUELIR4MnQELAkAgASIIIAJHDQBBgQEhHgyNAgsCQAJAAkACQCAILQAAQVNqDiMAogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAQGiAaIBogGiAaIBAqIBogGiAQOiAQsgCEEBaiEBQekAIR4M/wELIAhBAWohAUHqACEeDP4BCyAIQQFqIQFB7wAhHgz9AQsgCEEBaiEBQfAAIR4M/AELAkAgASIeIAJHDQBBggEhHgyMAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQamzgIAAai0AAEcNngEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYIBIR4MjAILIABBADYCACAeICJrQQVqIQFBGSEeDJsBCwJAIAEiIiACRw0AQYMBIR4MiwILIAIgImsgACgCACImaiEeICIhCCAmIQECQANAIAgtAAAgAUGus4CAAGotAABHDZ0BIAFBBUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgHjYCAEGDASEeDIsCCyAAQQA2AgBBBiEeICIgJmtBBmohAQyaAQsCQCABIh4gAkcNAEGEASEeDIoCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBtLOAgABqLQAARw2cASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBhAEhHgyKAgsgAEEANgIAIB4gImtBAmohAUEcIR4MmQELAkAgASIeIAJHDQBBhQEhHgyJAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbazgIAAai0AAEcNmwEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYUBIR4MiQILIABBADYCACAeICJrQQJqIQFBJyEeDJgBCwJAIAEiCCACRw0AQYYBIR4MiAILAkACQCAILQAAQax/ag4CAAGbAQsgCEEBaiEBQfQAIR4M+AELIAhBAWohAUH1ACEeDPcBCwJAIAEiHiACRw0AQYcBIR4MhwILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUG4s4CAAGotAABHDZkBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGHASEeDIcCCyAAQQA2AgAgHiAia0ECaiEBQSYhHgyWAQsCQCABIh4gAkcNAEGIASEeDIYCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBurOAgABqLQAARw2YASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBiAEhHgyGAgsgAEEANgIAIB4gImtBAmohAUEDIR4MlQELAkAgASIeIAJHDQBBiQEhHgyFAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQe2zgIAAai0AAEcNlwEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYkBIR4MhQILIABBADYCACAeICJrQQNqIQFBDCEeDJQBCwJAIAEiHiACRw0AQYoBIR4MhAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUG8s4CAAGotAABHDZYBIAFBA0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGKASEeDIQCCyAAQQA2AgAgHiAia0EEaiEBQQ0hHgyTAQsCQCABIgggAkcNAEGLASEeDIMCCwJAAkAgCC0AAEG6f2oOCwCWAZYBlgGWAZYBlgGWAZYBlgEBlgELIAhBAWohAUH5ACEeDPMBCyAIQQFqIQFB+gAhHgzyAQsCQCABIgggAkcNAEGMASEeDIICCyAILQAAQdAARw2TASAIQQFqIQEMxAELAkAgASIIIAJHDQBBjQEhHgyBAgsCQAJAIAgtAABBt39qDgcBlAGUAZQBlAGUAQCUAQsgCEEBaiEBQfwAIR4M8QELIAhBAWohAUEiIR4MkAELAkAgASIeIAJHDQBBjgEhHgyAAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQcCzgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQY4BIR4MgAILIABBADYCACAeICJrQQJqIQFBHSEeDI8BCwJAIAEiCCACRw0AQY8BIR4M/wELAkACQCAILQAAQa5/ag4DAJIBAZIBCyAIQQFqIQFB/gAhHgzvAQsgCEEBaiEBQQQhHgyOAQsCQCABIgggAkcNAEGQASEeDP4BCwJAAkACQAJAAkAgCC0AAEG/f2oOFQCUAZQBlAGUAZQBlAGUAZQBlAGUAQGUAZQBApQBlAEDlAGUAQSUAQsgCEEBaiEBQfYAIR4M8QELIAhBAWohAUH3ACEeDPABCyAIQQFqIQFB+AAhHgzvAQsgCEEBaiEBQf0AIR4M7gELIAhBAWohAUH/ACEeDO0BCwJAIAQgAkcNAEGRASEeDP0BCyACIARrIAAoAgAiHmohIiAEIQggHiEBAkADQCAILQAAIAFB7bOAgABqLQAARw2PASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBkQEhHgz9AQsgAEEANgIAIAQgHmtBA2ohAUERIR4MjAELAkAgBSACRw0AQZIBIR4M/AELIAIgBWsgACgCACIeaiEiIAUhCCAeIQECQANAIAgtAAAgAUHCs4CAAGotAABHDY4BIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGSASEeDPwBCyAAQQA2AgAgBSAea0EDaiEBQSwhHgyLAQsCQCAGIAJHDQBBkwEhHgz7AQsgAiAGayAAKAIAIh5qISIgBiEIIB4hAQJAA0AgCC0AACABQcWzgIAAai0AAEcNjQEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZMBIR4M+wELIABBADYCACAGIB5rQQVqIQFBKyEeDIoBCwJAIAcgAkcNAEGUASEeDPoBCyACIAdrIAAoAgAiHmohIiAHIQggHiEBAkADQCAILQAAIAFByrOAgABqLQAARw2MASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBlAEhHgz6AQsgAEEANgIAIAcgHmtBA2ohAUEUIR4MiQELAkAgCCACRw0AQZUBIR4M+QELAkACQAJAAkAgCC0AAEG+f2oODwABAo4BjgGOAY4BjgGOAY4BjgGOAY4BjgEDjgELIAhBAWohBEGBASEeDOsBCyAIQQFqIQVBggEhHgzqAQsgCEEBaiEGQYMBIR4M6QELIAhBAWohB0GEASEeDOgBCwJAIAggAkcNAEGWASEeDPgBCyAILQAAQcUARw2JASAIQQFqIQgMuwELAkAgCSACRw0AQZcBIR4M9wELIAIgCWsgACgCACIeaiEiIAkhCCAeIQECQANAIAgtAAAgAUHNs4CAAGotAABHDYkBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGXASEeDPcBCyAAQQA2AgAgCSAea0EDaiEBQQ4hHgyGAQsCQCAIIAJHDQBBmAEhHgz2AQsgCC0AAEHQAEcNhwEgCEEBaiEBQSUhHgyFAQsCQCAKIAJHDQBBmQEhHgz1AQsgAiAKayAAKAIAIh5qISIgCiEIIB4hAQJAA0AgCC0AACABQdCzgIAAai0AAEcNhwEgAUEIRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZkBIR4M9QELIABBADYCACAKIB5rQQlqIQFBKiEeDIQBCwJAIAggAkcNAEGaASEeDPQBCwJAAkAgCC0AAEGrf2oOCwCHAYcBhwGHAYcBhwGHAYcBhwEBhwELIAhBAWohCEGIASEeDOQBCyAIQQFqIQpBiQEhHgzjAQsCQCAIIAJHDQBBmwEhHgzzAQsCQAJAIAgtAABBv39qDhQAhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBAYYBCyAIQQFqIQlBhwEhHgzjAQsgCEEBaiEIQYoBIR4M4gELAkAgCyACRw0AQZwBIR4M8gELIAIgC2sgACgCACIeaiEiIAshCCAeIQECQANAIAgtAAAgAUHZs4CAAGotAABHDYQBIAFBA0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGcASEeDPIBCyAAQQA2AgAgCyAea0EEaiEBQSEhHgyBAQsCQCAMIAJHDQBBnQEhHgzxAQsgAiAMayAAKAIAIh5qISIgDCEIIB4hAQJAA0AgCC0AACABQd2zgIAAai0AAEcNgwEgAUEGRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZ0BIR4M8QELIABBADYCACAMIB5rQQdqIQFBGiEeDIABCwJAIAggAkcNAEGeASEeDPABCwJAAkACQCAILQAAQbt/ag4RAIQBhAGEAYQBhAGEAYQBhAGEAQGEAYQBhAGEAYQBAoQBCyAIQQFqIQhBiwEhHgzhAQsgCEEBaiELQYwBIR4M4AELIAhBAWohDEGNASEeDN8BCwJAIA0gAkcNAEGfASEeDO8BCyACIA1rIAAoAgAiHmohIiANIQggHiEBAkADQCAILQAAIAFB5LOAgABqLQAARw2BASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBnwEhHgzvAQsgAEEANgIAIA0gHmtBBmohAUEoIR4MfgsCQCAOIAJHDQBBoAEhHgzuAQsgAiAOayAAKAIAIh5qISIgDiEIIB4hAQJAA0AgCC0AACABQeqzgIAAai0AAEcNgAEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQaABIR4M7gELIABBADYCACAOIB5rQQNqIQFBByEeDH0LAkAgCCACRw0AQaEBIR4M7QELAkACQCAILQAAQbt/ag4OAIABgAGAAYABgAGAAYABgAGAAYABgAGAAQGAAQsgCEEBaiENQY8BIR4M3QELIAhBAWohDkGQASEeDNwBCwJAIA8gAkcNAEGiASEeDOwBCyACIA9rIAAoAgAiHmohIiAPIQggHiEBAkADQCAILQAAIAFB7bOAgABqLQAARw1+IAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGiASEeDOwBCyAAQQA2AgAgDyAea0EDaiEBQRIhHgx7CwJAIBAgAkcNAEGjASEeDOsBCyACIBBrIAAoAgAiHmohIiAQIQggHiEBAkADQCAILQAAIAFB8LOAgABqLQAARw19IAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGjASEeDOsBCyAAQQA2AgAgECAea0ECaiEBQSAhHgx6CwJAIBEgAkcNAEGkASEeDOoBCyACIBFrIAAoAgAiHmohIiARIQggHiEBAkADQCAILQAAIAFB8rOAgABqLQAARw18IAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGkASEeDOoBCyAAQQA2AgAgESAea0ECaiEBQQ8hHgx5CwJAIAggAkcNAEGlASEeDOkBCwJAAkAgCC0AAEG3f2oOBwB8fHx8fAF8CyAIQQFqIRBBkwEhHgzZAQsgCEEBaiERQZQBIR4M2AELAkAgEiACRw0AQaYBIR4M6AELIAIgEmsgACgCACIeaiEiIBIhCCAeIQECQANAIAgtAAAgAUH0s4CAAGotAABHDXogAUEHRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQaYBIR4M6AELIABBADYCACASIB5rQQhqIQFBGyEeDHcLAkAgCCACRw0AQacBIR4M5wELAkACQAJAIAgtAABBvn9qDhIAe3t7e3t7e3t7AXt7e3t7ewJ7CyAIQQFqIQ9BkgEhHgzYAQsgCEEBaiEIQZUBIR4M1wELIAhBAWohEkGWASEeDNYBCwJAIAggAkcNAEGoASEeDOYBCyAILQAAQc4ARw13IAhBAWohCAyqAQsCQCAIIAJHDQBBqQEhHgzlAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAILQAAQb9/ag4VAAECA4YBBAUGhgGGAYYBBwgJCguGAQwNDg+GAQsgCEEBaiEBQdYAIR4M4wELIAhBAWohAUHXACEeDOIBCyAIQQFqIQFB3AAhHgzhAQsgCEEBaiEBQeAAIR4M4AELIAhBAWohAUHhACEeDN8BCyAIQQFqIQFB5AAhHgzeAQsgCEEBaiEBQeUAIR4M3QELIAhBAWohAUHoACEeDNwBCyAIQQFqIQFB8QAhHgzbAQsgCEEBaiEBQfIAIR4M2gELIAhBAWohAUHzACEeDNkBCyAIQQFqIQFBgAEhHgzYAQsgCEEBaiEIQYYBIR4M1wELIAhBAWohCEGOASEeDNYBCyAIQQFqIQhBkQEhHgzVAQsgCEEBaiEIQZgBIR4M1AELAkAgFCACRw0AQasBIR4M5AELIBRBAWohEwx3CwNAAkAgHi0AAEF2ag4EdwAAegALIB5BAWoiHiACRw0AC0GsASEeDOIBCwJAIBUgAkYNACAAQY2AgIAANgIIIAAgFTYCBCAVIQFBASEeDNIBC0GtASEeDOEBCwJAIBUgAkcNAEGuASEeDOEBCwJAAkAgFS0AAEF2ag4EAasBqwEAqwELIBVBAWohFAx4CyAVQQFqIRMMdAsgACATIAIQp4CAgAAaIBMhAQxFCwJAIBUgAkcNAEGvASEeDN8BCwJAAkAgFS0AAEF2ag4XAXl5AXl5eXl5eXl5eXl5eXl5eXl5eQB5CyAVQQFqIRULQZwBIR4MzgELAkAgFiACRw0AQbEBIR4M3gELIBYtAABBIEcNdyAAQQA7ATIgFkEBaiEBQaABIR4MzQELIAEhJgJAA0AgJiIVIAJGDQEgFS0AAEFQakH/AXEiHkEKTw2oAQJAIAAvATIiIkGZM0sNACAAICJBCmwiIjsBMiAeQf//A3MgIkH+/wNxSQ0AIBVBAWohJiAAICIgHmoiHjsBMiAeQf//A3FB6AdJDQELC0EAIR4gAEEANgIcIABBnYmAgAA2AhAgAEENNgIMIAAgFUEBajYCFAzdAQtBsAEhHgzcAQsCQCAXIAJHDQBBsgEhHgzcAQtBACEeAkACQAJAAkACQAJAAkACQCAXLQAAQVBqDgp/fgABAgMEBQYHgAELQQIhHgx+C0EDIR4MfQtBBCEeDHwLQQUhHgx7C0EGIR4MegtBByEeDHkLQQghHgx4C0EJIR4MdwsCQCAYIAJHDQBBswEhHgzbAQsgGC0AAEEuRw14IBhBAWohFwymAQsCQCAZIAJHDQBBtAEhHgzaAQtBACEeAkACQAJAAkACQAJAAkACQCAZLQAAQVBqDgqBAYABAAECAwQFBgeCAQtBAiEeDIABC0EDIR4MfwtBBCEeDH4LQQUhHgx9C0EGIR4MfAtBByEeDHsLQQghHgx6C0EJIR4MeQsCQCAIIAJHDQBBtQEhHgzZAQsgAiAIayAAKAIAIiJqISYgCCEZICIhHgNAIBktAAAgHkH8s4CAAGotAABHDXsgHkEERg20ASAeQQFqIR4gGUEBaiIZIAJHDQALIAAgJjYCAEG1ASEeDNgBCwJAIBogAkcNAEG2ASEeDNgBCyACIBprIAAoAgAiHmohIiAaIQggHiEBA0AgCC0AACABQYG0gIAAai0AAEcNeyABQQFGDbYBIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQbYBIR4M1wELAkAgGyACRw0AQbcBIR4M1wELIAIgG2sgACgCACIZaiEiIBshCCAZIR4DQCAILQAAIB5Bg7SAgABqLQAARw16IB5BAkYNfCAeQQFqIR4gCEEBaiIIIAJHDQALIAAgIjYCAEG3ASEeDNYBCwJAIAggAkcNAEG4ASEeDNYBCwJAAkAgCC0AAEG7f2oOEAB7e3t7e3t7e3t7e3t7ewF7CyAIQQFqIRpBpQEhHgzGAQsgCEEBaiEbQaYBIR4MxQELAkAgCCACRw0AQbkBIR4M1QELIAgtAABByABHDXggCEEBaiEIDKIBCwJAIAggAkcNAEG6ASEeDNQBCyAILQAAQcgARg2iASAAQQE6ACgMmQELA0ACQCAILQAAQXZqDgQAenoAegsgCEEBaiIIIAJHDQALQbwBIR4M0gELIABBADoALyAALQAtQQRxRQ3IAQsgAEEAOgAvIAEhAQx5CyAeQRVGDakBIABBADYCHCAAIAE2AhQgAEGrjICAADYCECAAQRI2AgxBACEeDM8BCwJAIAAgHiACEK2AgIAAIgENACAeIQEMxQELAkAgAUEVRw0AIABBAzYCHCAAIB42AhQgAEHWkoCAADYCECAAQRU2AgxBACEeDM8BCyAAQQA2AhwgACAeNgIUIABBq4yAgAA2AhAgAEESNgIMQQAhHgzOAQsgHkEVRg2lASAAQQA2AhwgACABNgIUIABBiIyAgAA2AhAgAEEUNgIMQQAhHgzNAQsgACgCBCEmIABBADYCBCAeIB+naiIjIQEgACAmIB4gIyAiGyIeEK6AgIAAIiJFDXogAEEHNgIcIAAgHjYCFCAAICI2AgxBACEeDMwBCyAAIAAvATBBgAFyOwEwIAEhAQwxCyAeQRVGDaEBIABBADYCHCAAIAE2AhQgAEHFi4CAADYCECAAQRM2AgxBACEeDMoBCyAAQQA2AhwgACABNgIUIABBi4uAgAA2AhAgAEECNgIMQQAhHgzJAQsgHkE7Rw0BIAFBAWohAQtBCCEeDLcBC0EAIR4gAEEANgIcIAAgATYCFCAAQaOQgIAANgIQIABBDDYCDAzGAQtCASEfCyAeQQFqIQECQCAAKQMgIiBC//////////8PVg0AIAAgIEIEhiAfhDcDICABIQEMdwsgAEEANgIcIAAgATYCFCAAQYmJgIAANgIQIABBDDYCDEEAIR4MxAELIABBADYCHCAAIB42AhQgAEGjkICAADYCECAAQQw2AgxBACEeDMMBCyAAKAIEISYgAEEANgIEIB4gH6dqIiMhASAAICYgHiAjICIbIh4QroCAgAAiIkUNbiAAQQU2AhwgACAeNgIUIAAgIjYCDEEAIR4MwgELIABBADYCHCAAIB42AhQgAEHdlICAADYCECAAQQ82AgxBACEeDMEBCyAAIB4gAhCtgICAACIBDQEgHiEBC0EPIR4MrwELAkAgAUEVRw0AIABBAjYCHCAAIB42AhQgAEHWkoCAADYCECAAQRU2AgxBACEeDL8BCyAAQQA2AhwgACAeNgIUIABBq4yAgAA2AhAgAEESNgIMQQAhHgy+AQsgAUEBaiEeAkAgAC8BMCIBQYABcUUNAAJAIAAgHiACELCAgIAAIgENACAeIQEMawsgAUEVRw2XASAAQQU2AhwgACAeNgIUIABBvpKAgAA2AhAgAEEVNgIMQQAhHgy+AQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgHjYCFCAAQeyPgIAANgIQIABBBDYCDEEAIR4MvgELIAAgHiACELGAgIAAGiAeIQECQAJAAkACQAJAIAAgHiACEKyAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIB4hAQtBHSEeDK8BCyAAQRU2AhwgACAeNgIUIABB4ZGAgAA2AhAgAEEVNgIMQQAhHgy+AQsgAEEANgIcIAAgHjYCFCAAQbGLgIAANgIQIABBETYCDEEAIR4MvQELIAAtAC1BAXFFDQFBqgEhHgysAQsCQCAcIAJGDQADQAJAIBwtAABBIEYNACAcIQEMqAELIBxBAWoiHCACRw0AC0EXIR4MvAELQRchHgy7AQsgACgCBCEBIABBADYCBCAAIAEgHBCogICAACIBRQ2QASAAQRg2AhwgACABNgIMIAAgHEEBajYCFEEAIR4MugELIABBGTYCHCAAIAE2AhQgACAeNgIMQQAhHgy5AQsgHiEBQQEhIgJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEiDAELQQQhIgsgAEEBOgAsIAAgAC8BMCAicjsBMAsgHiEBC0EgIR4MqQELIABBADYCHCAAIB42AhQgAEGBj4CAADYCECAAQQs2AgxBACEeDLgBCyAeIQFBASEiAkACQAJAAkACQCAALQAsQXtqDgQCAAEDBQtBAiEiDAELQQQhIgsgAEEBOgAsIAAgAC8BMCAicjsBMAwBCyAAIAAvATBBCHI7ATALIB4hAQtBqwEhHgymAQsgACABIAIQq4CAgAAaDBsLAkAgASIeIAJGDQAgHiEBAkACQCAeLQAAQXZqDgQBamoAagsgHkEBaiEBC0EeIR4MpQELQcMAIR4MtAELIABBADYCHCAAIAE2AhQgAEGRkYCAADYCECAAQQM2AgxBACEeDLMBCwJAIAEtAABBDUcNACAAKAIEIR4gAEEANgIEAkAgACAeIAEQqoCAgAAiHg0AIAFBAWohAQxpCyAAQR42AhwgACAeNgIMIAAgAUEBajYCFEEAIR4MswELIAEhASAALQAtQQFxRQ2uAUGtASEeDKIBCwJAIAEiASACRw0AQR8hHgyyAQsCQAJAA0ACQCABLQAAQXZqDgQCAAADAAsgAUEBaiIBIAJHDQALQR8hHgyzAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABIQEMaAsgAEEeNgIcIAAgATYCFCAAIB42AgxBACEeDLIBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQqoCAgAAiHg0AIAFBAWohAQxnCyAAQR42AhwgACAeNgIMIAAgAUEBajYCFEEAIR4MsQELIB5BLEcNASABQQFqIR5BASEBAkACQAJAAkACQCAALQAsQXtqDgQDAQIEAAsgHiEBDAQLQQIhAQwBC0EEIQELIABBAToALCAAIAAvATAgAXI7ATAgHiEBDAELIAAgAC8BMEEIcjsBMCAeIQELQS4hHgyfAQsgAEEAOgAsIAEhAQtBKSEeDJ0BCyAAQQA2AgAgIyAka0EJaiEBQQUhHgyYAQsgAEEANgIAICMgJGtBBmohAUEHIR4MlwELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEIIABBADYCBAJAIAAgCCABEKqAgIAAIggNACABIQEMnQELIABBKjYCHCAAIAE2AhQgACAINgIMQQAhHgypAQsgAEEIOgAsIAEhAQtBJSEeDJcBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNeCABIQEMAwsgAC0AMEEgcQ15Qa4BIR4MlQELAkAgHSACRg0AAkADQAJAIB0tAABBUGoiAUH/AXFBCkkNACAdIQFBKiEeDJgBCyAAKQMgIh9CmbPmzJmz5swZVg0BIAAgH0IKfiIfNwMgIB8gAa0iIEJ/hUKAfoRWDQEgACAfICBC/wGDfDcDICAdQQFqIh0gAkcNAAtBLCEeDKYBCyAAKAIEIQggAEEANgIEIAAgCCAdQQFqIgEQqoCAgAAiCA16IAEhAQyZAQtBLCEeDKQBCwJAIAAvATAiAUEIcUUNACAALQAoQQFHDQAgAC0ALUEIcUUNdQsgACABQff7A3FBgARyOwEwIB0hAQtBLCEeDJIBCyAAIAAvATBBEHI7ATAMhwELIABBNjYCHCAAIAE2AgwgACAcQQFqNgIUQQAhHgygAQsgAS0AAEE6Rw0CIAAoAgQhHiAAQQA2AgQgACAeIAEQqICAgAAiHg0BIAFBAWohAQtBMSEeDI4BCyAAQTY2AhwgACAeNgIMIAAgAUEBajYCFEEAIR4MnQELIABBADYCHCAAIAE2AhQgAEGHjoCAADYCECAAQQo2AgxBACEeDJwBCyABQQFqIQELIABBgBI7ASogACABIAIQpYCAgAAaIAEhAQtBrAEhHgyJAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMUAsgAEHEADYCHCAAIAE2AhQgACAeNgIMQQAhHgyYAQsgAEEANgIcIAAgIjYCFCAAQeWYgIAANgIQIABBBzYCDCAAQQA2AgBBACEeDJcBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQxPCyAAQcUANgIcIAAgATYCFCAAIB42AgxBACEeDJYBC0EAIR4gAEEANgIcIAAgATYCFCAAQeuNgIAANgIQIABBCTYCDAyVAQtBASEeCyAAIB46ACsgAUEBaiEBIAAtAClBIkYNiwEMTAsgAEEANgIcIAAgATYCFCAAQaKNgIAANgIQIABBCTYCDEEAIR4MkgELIABBADYCHCAAIAE2AhQgAEHFioCAADYCECAAQQk2AgxBACEeDJEBC0EBIR4LIAAgHjoAKiABQQFqIQEMSgsgAEEANgIcIAAgATYCFCAAQbiNgIAANgIQIABBCTYCDEEAIR4MjgELIABBADYCACAmICNrQQRqIQECQCAALQApQSNPDQAgASEBDEoLIABBADYCHCAAIAE2AhQgAEGviYCAADYCECAAQQg2AgxBACEeDI0BCyAAQQA2AgALQQAhHiAAQQA2AhwgACABNgIUIABBuZuAgAA2AhAgAEEINgIMDIsBCyAAQQA2AgAgJiAja0EDaiEBAkAgAC0AKUEhRw0AIAEhAQxHCyAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMQQAhHgyKAQsgAEEANgIAICYgI2tBBGohAQJAIAAtACkiHkFdakELTw0AIAEhAQxGCwJAIB5BBksNAEEBIB50QcoAcUUNACABIQEMRgtBACEeIABBADYCHCAAIAE2AhQgAEHTiYCAADYCECAAQQg2AgwMiQELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDEYLIABB0AA2AhwgACABNgIUIAAgHjYCDEEAIR4MiAELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDD8LIABBxAA2AhwgACABNgIUIAAgHjYCDEEAIR4MhwELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDD8LIABBxQA2AhwgACABNgIUIAAgHjYCDEEAIR4MhgELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDEMLIABB0AA2AhwgACABNgIUIAAgHjYCDEEAIR4MhQELIABBADYCHCAAIAE2AhQgAEGiioCAADYCECAAQQc2AgxBACEeDIQBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw7CyAAQcQANgIcIAAgATYCFCAAIB42AgxBACEeDIMBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw7CyAAQcUANgIcIAAgATYCFCAAIB42AgxBACEeDIIBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw/CyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDIEBCyAAQQA2AhwgACABNgIUIABBuIiAgAA2AhAgAEEHNgIMQQAhHgyAAQsgHkE/Rw0BIAFBAWohAQtBBSEeDG4LQQAhHiAAQQA2AhwgACABNgIUIABB04+AgAA2AhAgAEEHNgIMDH0LIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDDQLIABBxAA2AhwgACABNgIUIAAgHjYCDEEAIR4MfAsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMNAsgAEHFADYCHCAAIAE2AhQgACAeNgIMQQAhHgx7CyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw4CyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDHoLIAAoAgQhASAAQQA2AgQCQCAAIAEgIhCkgICAACIBDQAgIiEBDDELIABBxAA2AhwgACAiNgIUIAAgATYCDEEAIR4MeQsgACgCBCEBIABBADYCBAJAIAAgASAiEKSAgIAAIgENACAiIQEMMQsgAEHFADYCHCAAICI2AhQgACABNgIMQQAhHgx4CyAAKAIEIQEgAEEANgIEAkAgACABICIQpICAgAAiAQ0AICIhAQw1CyAAQdAANgIcIAAgIjYCFCAAIAE2AgxBACEeDHcLIABBADYCHCAAICI2AhQgAEHQjICAADYCECAAQQc2AgxBACEeDHYLIABBADYCHCAAIAE2AhQgAEHQjICAADYCECAAQQc2AgxBACEeDHULQQAhHiAAQQA2AhwgACAiNgIUIABBv5SAgAA2AhAgAEEHNgIMDHQLIABBADYCHCAAICI2AhQgAEG/lICAADYCECAAQQc2AgxBACEeDHMLIABBADYCHCAAICI2AhQgAEHUjoCAADYCECAAQQc2AgxBACEeDHILIABBADYCHCAAIAE2AhQgAEHBk4CAADYCECAAQQY2AgxBACEeDHELIABBADYCACAiICZrQQZqIQFBJCEeCyAAIB46ACkgASEBDE4LIABBADYCAAtBACEeIABBADYCHCAAIAg2AhQgAEGklICAADYCECAAQQY2AgwMbQsgACgCBCETIABBADYCBCAAIBMgHhCmgICAACITDQEgHkEBaiETC0GdASEeDFsLIABBqgE2AhwgACATNgIMIAAgHkEBajYCFEEAIR4MagsgACgCBCEUIABBADYCBCAAIBQgHhCmgICAACIUDQEgHkEBaiEUC0GaASEeDFgLIABBqwE2AhwgACAUNgIMIAAgHkEBajYCFEEAIR4MZwsgAEEANgIcIAAgFTYCFCAAQfOKgIAANgIQIABBDTYCDEEAIR4MZgsgAEEANgIcIAAgFjYCFCAAQc6NgIAANgIQIABBCTYCDEEAIR4MZQtBASEeCyAAIB46ACsgF0EBaiEWDC4LIABBADYCHCAAIBc2AhQgAEGijYCAADYCECAAQQk2AgxBACEeDGILIABBADYCHCAAIBg2AhQgAEHFioCAADYCECAAQQk2AgxBACEeDGELQQEhHgsgACAeOgAqIBlBAWohGAwsCyAAQQA2AhwgACAZNgIUIABBuI2AgAA2AhAgAEEJNgIMQQAhHgxeCyAAQQA2AhwgACAZNgIUIABBuZuAgAA2AhAgAEEINgIMIABBADYCAEEAIR4MXQsgAEEANgIAC0EAIR4gAEEANgIcIAAgCDYCFCAAQYuUgIAANgIQIABBCDYCDAxbCyAAQQI6ACggAEEANgIAIBsgGWtBA2ohGQw2CyAAQQI6AC8gACAIIAIQo4CAgAAiHg0BQa8BIR4MSQsgAC0AKEF/ag4CHiAfCyAeQRVHDScgAEG7ATYCHCAAIAg2AhQgAEGnkoCAADYCECAAQRU2AgxBACEeDFcLQQAhHgxGC0ECIR4MRQtBDiEeDEQLQRAhHgxDC0EcIR4MQgtBFCEeDEELQRYhHgxAC0EXIR4MPwtBGSEeDD4LQRohHgw9C0E6IR4MPAtBIyEeDDsLQSQhHgw6C0EwIR4MOQtBOyEeDDgLQTwhHgw3C0E+IR4MNgtBPyEeDDULQcAAIR4MNAtBwQAhHgwzC0HFACEeDDILQccAIR4MMQtByAAhHgwwC0HKACEeDC8LQd8AIR4MLgtB4gAhHgwtC0H7ACEeDCwLQYUBIR4MKwtBlwEhHgwqC0GZASEeDCkLQakBIR4MKAtBpAEhHgwnC0GbASEeDCYLQZ4BIR4MJQtBnwEhHgwkC0GhASEeDCMLQaIBIR4MIgtBpwEhHgwhC0GoASEeDCALIABBADYCHCAAIAg2AhQgAEHmi4CAADYCECAAQRA2AgxBACEeDC8LIABBADYCBCAAIB0gHRCqgICAACIBRQ0BIABBLTYCHCAAIAE2AgwgACAdQQFqNgIUQQAhHgwuCyAAKAIEIQggAEEANgIEAkAgACAIIAEQqoCAgAAiCEUNACAAQS42AhwgACAINgIMIAAgAUEBajYCFEEAIR4MLgsgAUEBaiEBDB4LIB1BAWohAQweCyAAQQA2AhwgACAdNgIUIABBuo+AgAA2AhAgAEEENgIMQQAhHgwrCyAAQSk2AhwgACABNgIUIAAgCDYCDEEAIR4MKgsgHEEBaiEBDB4LIABBCjYCHCAAIAE2AhQgAEGRkoCAADYCECAAQRU2AgxBACEeDCgLIABBEDYCHCAAIAE2AhQgAEG+koCAADYCECAAQRU2AgxBACEeDCcLIABBADYCHCAAIB42AhQgAEGIjICAADYCECAAQRQ2AgxBACEeDCYLIABBBDYCHCAAIAE2AhQgAEHWkoCAADYCECAAQRU2AgxBACEeDCULIABBADYCACAIICJrQQVqIRkLQaMBIR4MEwsgAEEANgIAICIgJmtBAmohAUHjACEeDBILIABBADYCACAAQYEEOwEoIBogHmtBAmohAQtB0wAhHgwQCyABIQECQCAALQApQQVHDQBB0gAhHgwQC0HRACEeDA8LQQAhHiAAQQA2AhwgAEG6joCAADYCECAAQQc2AgwgACAiQQFqNgIUDB4LIABBADYCACAmICNrQQJqIQFBNCEeDA0LIAEhAQtBLSEeDAsLAkAgASIdIAJGDQADQAJAIB0tAABBgKKAgABqLQAAIgFBAUYNACABQQJHDQMgHUEBaiEBDAQLIB1BAWoiHSACRw0AC0ExIR4MGwtBMSEeDBoLIABBADoALCAdIQEMAQtBDCEeDAgLQS8hHgwHCyABQQFqIQFBIiEeDAYLQR8hHgwFCyAAQQA2AgAgIyAka0EEaiEBQQYhHgsgACAeOgAsIAEhAUENIR4MAwsgAEEANgIAICYgI2tBB2ohAUELIR4MAgsgAEEANgIACyAAQQA6ACwgHCEBQQkhHgwACwtBACEeIABBADYCHCAAIAE2AhQgAEG4kYCAADYCECAAQQ82AgwMDgtBACEeIABBADYCHCAAIAE2AhQgAEG4kYCAADYCECAAQQ82AgwMDQtBACEeIABBADYCHCAAIAE2AhQgAEGWj4CAADYCECAAQQs2AgwMDAtBACEeIABBADYCHCAAIAE2AhQgAEHxiICAADYCECAAQQs2AgwMCwtBACEeIABBADYCHCAAIAE2AhQgAEGIjYCAADYCECAAQQo2AgwMCgsgAEECNgIcIAAgATYCFCAAQfCSgIAANgIQIABBFjYCDEEAIR4MCQtBASEeDAgLQcYAIR4gASIBIAJGDQcgA0EIaiAAIAEgAkHYpoCAAEEKELmAgIAAIAMoAgwhASADKAIIDgMBBwIACxC/gICAAAALIABBADYCHCAAQYmTgIAANgIQIABBFzYCDCAAIAFBAWo2AhRBACEeDAULIABBADYCHCAAIAE2AhQgAEGek4CAADYCECAAQQk2AgxBACEeDAQLAkAgASIBIAJHDQBBISEeDAQLAkAgAS0AAEEKRg0AIABBADYCHCAAIAE2AhQgAEHujICAADYCECAAQQo2AgxBACEeDAQLIAAoAgQhCCAAQQA2AgQgACAIIAEQqoCAgAAiCA0BIAFBAWohAQtBACEeIABBADYCHCAAIAE2AhQgAEHqkICAADYCECAAQRk2AgwMAgsgAEEgNgIcIAAgCDYCDCAAIAFBAWo2AhRBACEeDAELAkAgASIBIAJHDQBBFCEeDAELIABBiYCAgAA2AgggACABNgIEQRMhHgsgA0EQaiSAgICAACAeC68BAQJ/IAEoAgAhBgJAAkAgAiADRg0AIAQgBmohBCAGIANqIAJrIQcgAiAGQX9zIAVqIgZqIQUDQAJAIAItAAAgBC0AAEYNAEECIQQMAwsCQCAGDQBBACEEIAUhAgwDCyAGQX9qIQYgBEEBaiEEIAJBAWoiAiADRw0ACyAHIQYgAyECCyAAQQE2AgAgASAGNgIAIAAgAjYCBA8LIAFBADYCACAAIAQ2AgAgACACNgIECwoAIAAQu4CAgAALlTcBC38jgICAgABBEGsiASSAgICAAAJAQQAoAqC0gIAADQBBABC+gICAAEGAuISAAGsiAkHZAEkNAEEAIQMCQEEAKALgt4CAACIEDQBBAEJ/NwLst4CAAEEAQoCAhICAgMAANwLkt4CAAEEAIAFBCGpBcHFB2KrVqgVzIgQ2AuC3gIAAQQBBADYC9LeAgABBAEEANgLEt4CAAAtBACACNgLMt4CAAEEAQYC4hIAANgLIt4CAAEEAQYC4hIAANgKYtICAAEEAIAQ2Aqy0gIAAQQBBfzYCqLSAgAADQCADQcS0gIAAaiADQbi0gIAAaiIENgIAIAQgA0GwtICAAGoiBTYCACADQby0gIAAaiAFNgIAIANBzLSAgABqIANBwLSAgABqIgU2AgAgBSAENgIAIANB1LSAgABqIANByLSAgABqIgQ2AgAgBCAFNgIAIANB0LSAgABqIAQ2AgAgA0EgaiIDQYACRw0AC0GAuISAAEF4QYC4hIAAa0EPcUEAQYC4hIAAQQhqQQ9xGyIDaiIEQQRqIAIgA2tBSGoiA0EBcjYCAEEAQQAoAvC3gIAANgKktICAAEEAIAQ2AqC0gIAAQQAgAzYClLSAgAAgAkGAuISAAGpBTGpBODYCAAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAoi0gIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNACADQQFxIARyQQFzIgVBA3QiAEG4tICAAGooAgAiBEEIaiEDAkACQCAEKAIIIgIgAEGwtICAAGoiAEcNAEEAIAZBfiAFd3E2Aoi0gIAADAELIAAgAjYCCCACIAA2AgwLIAQgBUEDdCIFQQNyNgIEIAQgBWpBBGoiBCAEKAIAQQFyNgIADAwLIAJBACgCkLSAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBUEDdCIAQbi0gIAAaigCACIEKAIIIgMgAEGwtICAAGoiAEcNAEEAIAZBfiAFd3EiBjYCiLSAgAAMAQsgACADNgIIIAMgADYCDAsgBEEIaiEDIAQgAkEDcjYCBCAEIAVBA3QiBWogBSACayIFNgIAIAQgAmoiACAFQQFyNgIEAkAgB0UNACAHQQN2IghBA3RBsLSAgABqIQJBACgCnLSAgAAhBAJAAkAgBkEBIAh0IghxDQBBACAGIAhyNgKItICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLQQAgADYCnLSAgABBACAFNgKQtICAAAwMC0EAKAKMtICAACIJRQ0BIAlBACAJa3FBf2oiAyADQQx2QRBxIgN2IgRBBXZBCHEiBSADciAEIAV2IgNBAnZBBHEiBHIgAyAEdiIDQQF2QQJxIgRyIAMgBHYiA0EBdkEBcSIEciADIAR2akECdEG4toCAAGooAgAiACgCBEF4cSACayEEIAAhBQJAA0ACQCAFKAIQIgMNACAFQRRqKAIAIgNFDQILIAMoAgRBeHEgAmsiBSAEIAUgBEkiBRshBCADIAAgBRshACADIQUMAAsLIAAoAhghCgJAIAAoAgwiCCAARg0AQQAoApi0gIAAIAAoAggiA0saIAggAzYCCCADIAg2AgwMCwsCQCAAQRRqIgUoAgAiAw0AIAAoAhAiA0UNAyAAQRBqIQULA0AgBSELIAMiCEEUaiIFKAIAIgMNACAIQRBqIQUgCCgCECIDDQALIAtBADYCAAwKC0F/IQIgAEG/f0sNACAAQRNqIgNBcHEhAkEAKAKMtICAACIHRQ0AQQAhCwJAIAJBgAJJDQBBHyELIAJB////B0sNACADQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgQgBEGA4B9qQRB2QQRxIgR0IgUgBUGAgA9qQRB2QQJxIgV0QQ92IAMgBHIgBXJrIgNBAXQgAiADQRVqdkEBcXJBHGohCwtBACACayEEAkACQAJAAkAgC0ECdEG4toCAAGooAgAiBQ0AQQAhA0EAIQgMAQtBACEDIAJBAEEZIAtBAXZrIAtBH0YbdCEAQQAhCANAAkAgBSgCBEF4cSACayIGIARPDQAgBiEEIAUhCCAGDQBBACEEIAUhCCAFIQMMAwsgAyAFQRRqKAIAIgYgBiAFIABBHXZBBHFqQRBqKAIAIgVGGyADIAYbIQMgAEEBdCEAIAUNAAsLAkAgAyAIcg0AQQAhCEECIAt0IgNBACADa3IgB3EiA0UNAyADQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIFQQV2QQhxIgAgA3IgBSAAdiIDQQJ2QQRxIgVyIAMgBXYiA0EBdkECcSIFciADIAV2IgNBAXZBAXEiBXIgAyAFdmpBAnRBuLaAgABqKAIAIQMLIANFDQELA0AgAygCBEF4cSACayIGIARJIQACQCADKAIQIgUNACADQRRqKAIAIQULIAYgBCAAGyEEIAMgCCAAGyEIIAUhAyAFDQALCyAIRQ0AIARBACgCkLSAgAAgAmtPDQAgCCgCGCELAkAgCCgCDCIAIAhGDQBBACgCmLSAgAAgCCgCCCIDSxogACADNgIIIAMgADYCDAwJCwJAIAhBFGoiBSgCACIDDQAgCCgCECIDRQ0DIAhBEGohBQsDQCAFIQYgAyIAQRRqIgUoAgAiAw0AIABBEGohBSAAKAIQIgMNAAsgBkEANgIADAgLAkBBACgCkLSAgAAiAyACSQ0AQQAoApy0gIAAIQQCQAJAIAMgAmsiBUEQSQ0AIAQgAmoiACAFQQFyNgIEQQAgBTYCkLSAgABBACAANgKctICAACAEIANqIAU2AgAgBCACQQNyNgIEDAELIAQgA0EDcjYCBCADIARqQQRqIgMgAygCAEEBcjYCAEEAQQA2Apy0gIAAQQBBADYCkLSAgAALIARBCGohAwwKCwJAQQAoApS0gIAAIgAgAk0NAEEAKAKgtICAACIDIAJqIgQgACACayIFQQFyNgIEQQAgBTYClLSAgABBACAENgKgtICAACADIAJBA3I2AgQgA0EIaiEDDAoLAkACQEEAKALgt4CAAEUNAEEAKALot4CAACEEDAELQQBCfzcC7LeAgABBAEKAgISAgIDAADcC5LeAgABBACABQQxqQXBxQdiq1aoFczYC4LeAgABBAEEANgL0t4CAAEEAQQA2AsS3gIAAQYCABCEEC0EAIQMCQCAEIAJBxwBqIgdqIgZBACAEayILcSIIIAJLDQBBAEEwNgL4t4CAAAwKCwJAQQAoAsC3gIAAIgNFDQACQEEAKAK4t4CAACIEIAhqIgUgBE0NACAFIANNDQELQQAhA0EAQTA2Avi3gIAADAoLQQAtAMS3gIAAQQRxDQQCQAJAAkBBACgCoLSAgAAiBEUNAEHIt4CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIARLDQMLIAMoAggiAw0ACwtBABC+gICAACIAQX9GDQUgCCEGAkBBACgC5LeAgAAiA0F/aiIEIABxRQ0AIAggAGsgBCAAakEAIANrcWohBgsgBiACTQ0FIAZB/v///wdLDQUCQEEAKALAt4CAACIDRQ0AQQAoAri3gIAAIgQgBmoiBSAETQ0GIAUgA0sNBgsgBhC+gICAACIDIABHDQEMBwsgBiAAayALcSIGQf7///8HSw0EIAYQvoCAgAAiACADKAIAIAMoAgRqRg0DIAAhAwsCQCADQX9GDQAgAkHIAGogBk0NAAJAIAcgBmtBACgC6LeAgAAiBGpBACAEa3EiBEH+////B00NACADIQAMBwsCQCAEEL6AgIAAQX9GDQAgBCAGaiEGIAMhAAwHC0EAIAZrEL6AgIAAGgwECyADIQAgA0F/Rw0FDAMLQQAhCAwHC0EAIQAMBQsgAEF/Rw0CC0EAQQAoAsS3gIAAQQRyNgLEt4CAAAsgCEH+////B0sNASAIEL6AgIAAIQBBABC+gICAACEDIABBf0YNASADQX9GDQEgACADTw0BIAMgAGsiBiACQThqTQ0BC0EAQQAoAri3gIAAIAZqIgM2Ari3gIAAAkAgA0EAKAK8t4CAAE0NAEEAIAM2Ary3gIAACwJAAkACQAJAQQAoAqC0gIAAIgRFDQBByLeAgAAhAwNAIAAgAygCACIFIAMoAgQiCGpGDQIgAygCCCIDDQAMAwsLAkACQEEAKAKYtICAACIDRQ0AIAAgA08NAQtBACAANgKYtICAAAtBACEDQQAgBjYCzLeAgABBACAANgLIt4CAAEEAQX82Aqi0gIAAQQBBACgC4LeAgAA2Aqy0gIAAQQBBADYC1LeAgAADQCADQcS0gIAAaiADQbi0gIAAaiIENgIAIAQgA0GwtICAAGoiBTYCACADQby0gIAAaiAFNgIAIANBzLSAgABqIANBwLSAgABqIgU2AgAgBSAENgIAIANB1LSAgABqIANByLSAgABqIgQ2AgAgBCAFNgIAIANB0LSAgABqIAQ2AgAgA0EgaiIDQYACRw0ACyAAQXggAGtBD3FBACAAQQhqQQ9xGyIDaiIEIAYgA2tBSGoiA0EBcjYCBEEAQQAoAvC3gIAANgKktICAAEEAIAQ2AqC0gIAAQQAgAzYClLSAgAAgBiAAakFMakE4NgIADAILIAMtAAxBCHENACAFIARLDQAgACAETQ0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClLSAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvC3gIAANgKktICAAEEAIAU2ApS0gIAAQQAgADYCoLSAgAAgCyAEakEEakE4NgIADAELAkAgAEEAKAKYtICAACILTw0AQQAgADYCmLSAgAAgACELCyAAIAZqIQhByLeAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAIRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HIt4CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiIGIAJBA3I2AgQgCEF4IAhrQQ9xQQAgCEEIakEPcRtqIgggBiACaiICayEFAkAgBCAIRw0AQQAgAjYCoLSAgABBAEEAKAKUtICAACAFaiIDNgKUtICAACACIANBAXI2AgQMAwsCQEEAKAKctICAACAIRw0AQQAgAjYCnLSAgABBAEEAKAKQtICAACAFaiIDNgKQtICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgCCgCBCIDQQNxQQFHDQAgA0F4cSEHAkACQCADQf8BSw0AIAgoAggiBCADQQN2IgtBA3RBsLSAgABqIgBGGgJAIAgoAgwiAyAERw0AQQBBACgCiLSAgABBfiALd3E2Aoi0gIAADAILIAMgAEYaIAMgBDYCCCAEIAM2AgwMAQsgCCgCGCEJAkACQCAIKAIMIgAgCEYNACALIAgoAggiA0saIAAgAzYCCCADIAA2AgwMAQsCQCAIQRRqIgMoAgAiBA0AIAhBEGoiAygCACIEDQBBACEADAELA0AgAyELIAQiAEEUaiIDKAIAIgQNACAAQRBqIQMgACgCECIEDQALIAtBADYCAAsgCUUNAAJAAkAgCCgCHCIEQQJ0Qbi2gIAAaiIDKAIAIAhHDQAgAyAANgIAIAANAUEAQQAoAoy0gIAAQX4gBHdxNgKMtICAAAwCCyAJQRBBFCAJKAIQIAhGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCCgCFCIDRQ0AIABBFGogAzYCACADIAA2AhgLIAcgBWohBSAIIAdqIQgLIAggCCgCBEF+cTYCBCACIAVqIAU2AgAgAiAFQQFyNgIEAkAgBUH/AUsNACAFQQN2IgRBA3RBsLSAgABqIQMCQAJAQQAoAoi0gIAAIgVBASAEdCIEcQ0AQQAgBSAEcjYCiLSAgAAgAyEEDAELIAMoAgghBAsgBCACNgIMIAMgAjYCCCACIAM2AgwgAiAENgIIDAMLQR8hAwJAIAVB////B0sNACAFQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgQgBEGA4B9qQRB2QQRxIgR0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAMgBHIgAHJrIgNBAXQgBSADQRVqdkEBcXJBHGohAwsgAiADNgIcIAJCADcCECADQQJ0Qbi2gIAAaiEEAkBBACgCjLSAgAAiAEEBIAN0IghxDQAgBCACNgIAQQAgACAIcjYCjLSAgAAgAiAENgIYIAIgAjYCCCACIAI2AgwMAwsgBUEAQRkgA0EBdmsgA0EfRht0IQMgBCgCACEAA0AgACIEKAIEQXhxIAVGDQIgA0EddiEAIANBAXQhAyAEIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAENgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGIANrQUhqIgNBAXI2AgQgCEFMakE4NgIAIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8LeAgAA2AqS0gIAAQQAgCzYCoLSAgABBACADNgKUtICAACAIQRBqQQApAtC3gIAANwIAIAhBACkCyLeAgAA3AghBACAIQQhqNgLQt4CAAEEAIAY2Asy3gIAAQQAgADYCyLeAgABBAEEANgLUt4CAACAIQSRqIQMDQCADQQc2AgAgBSADQQRqIgNLDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgY2AgAgBCAGQQFyNgIEAkAgBkH/AUsNACAGQQN2IgVBA3RBsLSAgABqIQMCQAJAQQAoAoi0gIAAIgBBASAFdCIFcQ0AQQAgACAFcjYCiLSAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIAZB////B0sNACAGQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAMgBXIgAHJrIgNBAXQgBiADQRVqdkEBcXJBHGohAwsgBEIANwIQIARBHGogAzYCACADQQJ0Qbi2gIAAaiEFAkBBACgCjLSAgAAiAEEBIAN0IghxDQAgBSAENgIAQQAgACAIcjYCjLSAgAAgBEEYaiAFNgIAIAQgBDYCCCAEIAQ2AgwMBAsgBkEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEAA0AgACIFKAIEQXhxIAZGDQMgA0EddiEAIANBAXQhAyAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAQ2AgAgBEEYaiAFNgIAIAQgBDYCDCAEIAQ2AggMAwsgBCgCCCIDIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiADNgIICyAGQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBGGpBADYCACAEIAU2AgwgBCADNgIIC0EAKAKUtICAACIDIAJNDQBBACgCoLSAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApS0gIAAQQAgBTYCoLSAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL4t4CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0Qbi2gIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2Aoy0gIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCADIAhqQQRqIgMgAygCAEEBcjYCAAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQQN2IgRBA3RBsLSAgABqIQMCQAJAQQAoAoi0gIAAIgVBASAEdCIEcQ0AQQAgBSAEcjYCiLSAgAAgAyEEDAELIAMoAgghBAsgBCAANgIMIAMgADYCCCAAIAM2AgwgACAENgIIDAELQR8hAwJAIARB////B0sNACAEQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBXIgAnJrIgNBAXQgBCADQRVqdkEBcXJBHGohAwsgACADNgIcIABCADcCECADQQJ0Qbi2gIAAaiEFAkAgB0EBIAN0IgJxDQAgBSAANgIAQQAgByACcjYCjLSAgAAgACAFNgIYIAAgADYCCCAAIAA2AgwMAQsgBEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACECAkADQCACIgUoAgRBeHEgBEYNASADQR12IQIgA0EBdCEDIAUgAkEEcWpBEGoiBigCACICDQALIAYgADYCACAAIAU2AhggACAANgIMIAAgADYCCAwBCyAFKAIIIgMgADYCDCAFIAA2AgggAEEANgIYIAAgBTYCDCAAIAM2AggLIAhBCGohAwwBCwJAIApFDQACQAJAIAAgACgCHCIFQQJ0Qbi2gIAAaiIDKAIARw0AIAMgCDYCACAIDQFBACAJQX4gBXdxNgKMtICAAAwCCyAKQRBBFCAKKAIQIABGG2ogCDYCACAIRQ0BCyAIIAo2AhgCQCAAKAIQIgNFDQAgCCADNgIQIAMgCDYCGAsgAEEUaigCACIDRQ0AIAhBFGogAzYCACADIAg2AhgLAkACQCAEQQ9LDQAgACAEIAJqIgNBA3I2AgQgAyAAakEEaiIDIAMoAgBBAXI2AgAMAQsgACACaiIFIARBAXI2AgQgACACQQNyNgIEIAUgBGogBDYCAAJAIAdFDQAgB0EDdiIIQQN0QbC0gIAAaiECQQAoApy0gIAAIQMCQAJAQQEgCHQiCCAGcQ0AQQAgCCAGcjYCiLSAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2Apy0gIAAQQAgBDYCkLSAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQvYCAgAAL8A0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApi0gIAAIgRJDQEgAiAAaiEAAkBBACgCnLSAgAAgAUYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGwtICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKItICAAEF+IAV3cTYCiLSAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAQgASgCCCICSxogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABKAIcIgRBAnRBuLaAgABqIgIoAgAgAUcNACACIAY2AgAgBg0BQQBBACgCjLSAgABBfiAEd3E2Aoy0gIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQtICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgAyABTQ0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkBBACgCoLSAgAAgA0cNAEEAIAE2AqC0gIAAQQBBACgClLSAgAAgAGoiADYClLSAgAAgASAAQQFyNgIEIAFBACgCnLSAgABHDQNBAEEANgKQtICAAEEAQQA2Apy0gIAADwsCQEEAKAKctICAACADRw0AQQAgATYCnLSAgABBAEEAKAKQtICAACAAaiIANgKQtICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsLSAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiLSAgABBfiAFd3E2Aoi0gIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNAEEAKAKYtICAACADKAIIIgJLGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMoAhwiBEECdEG4toCAAGoiAigCACADRw0AIAIgBjYCACAGDQFBAEEAKAKMtICAAEF+IAR3cTYCjLSAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnLSAgABHDQFBACAANgKQtICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEEDdiICQQN0QbC0gIAAaiEAAkACQEEAKAKItICAACIEQQEgAnQiAnENAEEAIAQgAnI2Aoi0gIAAIAAhAgwBCyAAKAIIIQILIAIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgAUIANwIQIAFBHGogAjYCACACQQJ0Qbi2gIAAaiEEAkACQEEAKAKMtICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKMtICAACABQRhqIAQ2AgAgASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAFBGGogBDYCACABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQRhqQQA2AgAgASAENgIMIAEgADYCCAtBAEEAKAKotICAAEF/aiIBQX8gARs2Aqi0gIAACwtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+LeAgABBfw8LIABBEHQPCxC/gICAAAALBAAAAAsLjiwBAEGACAuGLAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgcGFyYW1ldGVycwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABNS0FDVElWSVRZAENPUFkATk9USUZZAFBMQVkAUFVUAENIRUNLT1VUAFBPU1QAUkVQT1JUAEhQRV9JTlZBTElEX0NPTlNUQU5UAEdFVABIUEVfU1RSSUNUAFJFRElSRUNUAENPTk5FQ1QASFBFX0lOVkFMSURfU1RBVFVTAE9QVElPTlMAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASFBFX0lOVkFMSURfVVJMAE1LQ09MAEFDTABIUEVfSU5URVJOQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBQQVVTRQBQVVJHRQBNRVJHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAFBST1BGSU5EAFVOQklORABSRUJJTkQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABIUEVfUEFVU0VEAEhFQUQARXhwZWN0ZWQgSFRUUC8A3AsAAM8LAADTCgAAmQ0AABAMAABdCwAAXw0AALULAAC6CgAAcwsAAJwLAAD1CwAAcwwAAO8KAADcDAAARwwAAIcLAACPDAAAvQwAAC8LAACnDAAAqQ0AAAQNAAAXDQAAJgsAAIkNAADVDAAAzwoAALQNAACuCgAAoQoAAOcKAAACCwAAPQ0AAJAKAADsCwAAxQsAAIoMAAByDQAANAwAAEAMAADqCwAAhA0AAIINAAB7DQAAywsAALMKAACFCgAApQoAAP4MAAA+DAAAlQoAAE4NAABMDQAAOAwAAPgMAABDCwAA5QsAAOMLAAAtDQAA8QsAAEMNAAA0DQAATgsAAJwKAADyDAAAVAsAABgLAAAKCwAA3goAAFgNAAAuDAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGAuAQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mADMJEwEAQQELDQECAwQFCwYHLiooJCYKuKgCOAIACwgAEIiAgIAACxkAIAAQtoCAgAAaIAAgAjYCNCAAIAE6ACgLHAAgACAALwEyIAAtAC4gABC1gICAABCAgICAAAspAQF/QTgQuoCAgAAiARC2gICAABogAUGAiICAADYCNCABIAA6ACggAQsKACAAELyAgIAACwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BMgsHACAALQAuC0UBBH8gACgCGCEBIAAtAC0hAiAALQAoIQMgACgCNCEEIAAQtoCAgAAaIAAgBDYCNCAAIAM6ACggACACOgAtIAAgATYCGAsRACAAIAEgASACahC3gICAAAs+AQF7IAD9DAAAAAAAAAAAAAAAAAAAAAAiAf0LAgAgAEEwakIANwIAIABBIGogAf0LAgAgAEEQaiAB/QsCAAtnAQF/QQAhAQJAIAAoAgwNAAJAAkACQAJAIAAtAC8OAwEAAwILIAAoAjQiAUUNACABKAIcIgFFDQAgACABEYCAgIAAACIBDQMLQQAPCxC/gICAAAALIABB/5GAgAA2AhBBDiEBCyABCx4AAkAgACgCDA0AIABBhJSAgAA2AhAgAEEVNgIMCwsWAAJAIAAoAgxBFUcNACAAQQA2AgwLCxYAAkAgACgCDEEWRw0AIABBADYCDAsLBwAgACgCDAsHACAAKAIQCwkAIAAgATYCEAsHACAAKAIUCyIAAkAgAEEaSQ0AEL+AgIAAAAsgAEECdEHIm4CAAGooAgALIgACQCAAQS5JDQAQv4CAgAAACyAAQQJ0QbCcgIAAaigCAAsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCACIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIEIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBnI6AgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAigiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI0IgRFDQAgBCgCCCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQdKKgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCNCIERQ0AIAQoAgwiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEHdk4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCMCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIQIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBw5CAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAjQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCFCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIcIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCNCIERQ0AIAQoAhgiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEHSiICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCICIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIkIgRFDQAgACAEEYCAgIAAACEDCyADC0UBAX8CQAJAIAAvATBBFHFBFEcNAEEBIQMgAC0AKEEBRg0BIAAvATJB5QBGIQMMAQsgAC0AKUEFRiEDCyAAIAM6AC5BAAvyAQEDf0EBIQMCQCAALwEwIgRBCHENACAAKQMgQgBSIQMLAkACQCAALQAuRQ0AQQEhBSAALQApQQVGDQFBASEFIARBwABxRSADcUEBRw0BC0EAIQUgBEHAAHENAEECIQUgBEEIcQ0AAkAgBEGABHFFDQACQCAALQAoQQFHDQAgAC0ALUEKcQ0AQQUPC0EEDwsCQCAEQSBxDQACQCAALQAoQQFGDQAgAC8BMiIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQBBBCEFIARBiARxQYAERg0CIARBKHFFDQILQQAPC0EAQQMgACkDIFAbIQULIAULXQECf0EAIQECQCAALQAoQQFGDQAgAC8BMiICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6IBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMiIFQZx/akHkAEkNACAFQcwBRg0AIAVBsAJGDQAgBEHAAHENAEEAIQMgBEGIBHFBgARGDQAgBEEocUEARyEDCyAAQQA7ATAgAEEAOgAvIAMLlAEBAn8CQAJAAkAgAC0AKkUNACAALQArRQ0AQQAhASAALwEwIgJBAnFFDQEMAgtBACEBIAAvATAiAkEBcUUNAQtBASEBIAAtAChBAUYNACAALwEyIgBBnH9qQeQASQ0AIABBzAFGDQAgAEGwAkYNACACQcAAcQ0AQQAhASACQYgEcUGABEYNACACQShxQQBHIQELIAELSAEBeyAAQRBq/QwAAAAAAAAAAAAAAAAAAAAAIgH9CwMAIAAgAf0LAwAgAEEwakIANwMAIABBIGogAf0LAwAgAEG8ATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACELiAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvTzgEDHH8DfgV/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8gASEQIAEhESABIRIgASETIAEhFCABIRUgASEWIAEhFyABIRggASEZIAEhGiABIRsgASEcIAEhHQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAhwiHkF/ag68AbcBAbYBAgMEBQYHCAkKCwwNDg8QwAG/ARESE7UBFBUWFxgZGr0BvAEbHB0eHyAhtAGzASIjsgGxASQlJicoKSorLC0uLzAxMjM0NTY3ODk6uAE7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwEAuQELQQAhHgyvAQtBDyEeDK4BC0EOIR4MrQELQRAhHgysAQtBESEeDKsBC0EUIR4MqgELQRUhHgypAQtBFiEeDKgBC0EXIR4MpwELQRghHgymAQtBCCEeDKUBC0EZIR4MpAELQRohHgyjAQtBEyEeDKIBC0ESIR4MoQELQRshHgygAQtBHCEeDJ8BC0EdIR4MngELQR4hHgydAQtBqgEhHgycAQtBqwEhHgybAQtBICEeDJoBC0EhIR4MmQELQSIhHgyYAQtBIyEeDJcBC0EkIR4MlgELQa0BIR4MlQELQSUhHgyUAQtBKSEeDJMBC0ENIR4MkgELQSYhHgyRAQtBJyEeDJABC0EoIR4MjwELQS4hHgyOAQtBKiEeDI0BC0GuASEeDIwBC0EMIR4MiwELQS8hHgyKAQtBKyEeDIkBC0ELIR4MiAELQSwhHgyHAQtBLSEeDIYBC0EKIR4MhQELQTEhHgyEAQtBMCEeDIMBC0EJIR4MggELQR8hHgyBAQtBMiEeDIABC0EzIR4MfwtBNCEeDH4LQTUhHgx9C0E2IR4MfAtBNyEeDHsLQTghHgx6C0E5IR4MeQtBOiEeDHgLQawBIR4MdwtBOyEeDHYLQTwhHgx1C0E9IR4MdAtBPiEeDHMLQT8hHgxyC0HAACEeDHELQcEAIR4McAtBwgAhHgxvC0HDACEeDG4LQcQAIR4MbQtBByEeDGwLQcUAIR4MawtBBiEeDGoLQcYAIR4MaQtBBSEeDGgLQccAIR4MZwtBBCEeDGYLQcgAIR4MZQtByQAhHgxkC0HKACEeDGMLQcsAIR4MYgtBAyEeDGELQcwAIR4MYAtBzQAhHgxfC0HOACEeDF4LQdAAIR4MXQtBzwAhHgxcC0HRACEeDFsLQdIAIR4MWgtBAiEeDFkLQdMAIR4MWAtB1AAhHgxXC0HVACEeDFYLQdYAIR4MVQtB1wAhHgxUC0HYACEeDFMLQdkAIR4MUgtB2gAhHgxRC0HbACEeDFALQdwAIR4MTwtB3QAhHgxOC0HeACEeDE0LQd8AIR4MTAtB4AAhHgxLC0HhACEeDEoLQeIAIR4MSQtB4wAhHgxIC0HkACEeDEcLQeUAIR4MRgtB5gAhHgxFC0HnACEeDEQLQegAIR4MQwtB6QAhHgxCC0HqACEeDEELQesAIR4MQAtB7AAhHgw/C0HtACEeDD4LQe4AIR4MPQtB7wAhHgw8C0HwACEeDDsLQfEAIR4MOgtB8gAhHgw5C0HzACEeDDgLQfQAIR4MNwtB9QAhHgw2C0H2ACEeDDULQfcAIR4MNAtB+AAhHgwzC0H5ACEeDDILQfoAIR4MMQtB+wAhHgwwC0H8ACEeDC8LQf0AIR4MLgtB/gAhHgwtC0H/ACEeDCwLQYABIR4MKwtBgQEhHgwqC0GCASEeDCkLQYMBIR4MKAtBhAEhHgwnC0GFASEeDCYLQYYBIR4MJQtBhwEhHgwkC0GIASEeDCMLQYkBIR4MIgtBigEhHgwhC0GLASEeDCALQYwBIR4MHwtBjQEhHgweC0GOASEeDB0LQY8BIR4MHAtBkAEhHgwbC0GRASEeDBoLQZIBIR4MGQtBkwEhHgwYC0GUASEeDBcLQZUBIR4MFgtBlgEhHgwVC0GXASEeDBQLQZgBIR4MEwtBmQEhHgwSC0GdASEeDBELQZoBIR4MEAtBASEeDA8LQZsBIR4MDgtBnAEhHgwNC0GeASEeDAwLQaABIR4MCwtBnwEhHgwKC0GhASEeDAkLQaIBIR4MCAtBowEhHgwHC0GkASEeDAYLQaUBIR4MBQtBpgEhHgwEC0GnASEeDAMLQagBIR4MAgtBqQEhHgwBC0GvASEeCwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIB4OsAEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGhweHyAjJCUmJygpKiwtLi8w+wI0Njg5PD9BQkNERUZHSElKS0xNTk9QUVJTVVdZXF1eYGJjZGVmZ2hrbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHaAeAB4QHkAfEBvQK9AgsgASIIIAJHDcIBQbwBIR4MlQMLIAEiHiACRw2xAUGsASEeDJQDCyABIgEgAkcNZ0HiACEeDJMDCyABIgEgAkcNXUHaACEeDJIDCyABIgEgAkcNVkHVACEeDJEDCyABIgEgAkcNUkHTACEeDJADCyABIgEgAkcNT0HRACEeDI8DCyABIgEgAkcNTEHPACEeDI4DCyABIgEgAkcNEEEMIR4MjQMLIAEiASACRw0zQTghHgyMAwsgASIBIAJHDS9BNSEeDIsDCyABIgEgAkcNJkEyIR4MigMLIAEiASACRw0kQS8hHgyJAwsgASIBIAJHDR1BJCEeDIgDCyAALQAuQQFGDf0CDMcBCyAAIAEiASACELSAgIAAQQFHDbQBDLUBCyAAIAEiASACEK2AgIAAIh4NtQEgASEBDLACCwJAIAEiASACRw0AQQYhHgyFAwsgACABQQFqIgEgAhCwgICAACIeDbYBIAEhAQwPCyAAQgA3AyBBEyEeDPMCCyABIh4gAkcNCUEPIR4MggMLAkAgASIBIAJGDQAgAUEBaiEBQREhHgzyAgtBByEeDIEDCyAAQgAgACkDICIfIAIgASIea60iIH0iISAhIB9WGzcDICAfICBWIiJFDbMBQQghHgyAAwsCQCABIgEgAkYNACAAQYmAgIAANgIIIAAgATYCBCABIQFBFSEeDPACC0EJIR4M/wILIAEhASAAKQMgUA2yASABIQEMrQILAkAgASIBIAJHDQBBCyEeDP4CCyAAIAFBAWoiASACEK+AgIAAIh4NsgEgASEBDK0CCwNAAkAgAS0AAEHwnYCAAGotAAAiHkEBRg0AIB5BAkcNtAEgAUEBaiEBDAMLIAFBAWoiASACRw0AC0EMIR4M/AILAkAgASIBIAJHDQBBDSEeDPwCCwJAAkAgAS0AACIeQXNqDhQBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBALQBCyABQQFqIQEMtAELIAFBAWohAQtBGCEeDOoCCwJAIAEiHiACRw0AQQ4hHgz6AgtCACEfIB4hAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgHi0AAEFQag43yAHHAQABAgMEBQYHvgK+Ar4CvgK+Ar4CvgIICQoLDA2+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CDg8QERITvgILQgIhHwzHAQtCAyEfDMYBC0IEIR8MxQELQgUhHwzEAQtCBiEfDMMBC0IHIR8MwgELQgghHwzBAQtCCSEfDMABC0IKIR8MvwELQgshHwy+AQtCDCEfDL0BC0INIR8MvAELQg4hHwy7AQtCDyEfDLoBC0IKIR8MuQELQgshHwy4AQtCDCEfDLcBC0INIR8MtgELQg4hHwy1AQtCDyEfDLQBC0IAIR8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIB4tAABBUGoON8cBxgEAAQIDBAUGB8gByAHIAcgByAHIAcgBCAkKCwwNyAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAQ4PEBESE8gBC0ICIR8MxgELQgMhHwzFAQtCBCEfDMQBC0IFIR8MwwELQgYhHwzCAQtCByEfDMEBC0IIIR8MwAELQgkhHwy/AQtCCiEfDL4BC0ILIR8MvQELQgwhHwy8AQtCDSEfDLsBC0IOIR8MugELQg8hHwy5AQtCCiEfDLgBC0ILIR8MtwELQgwhHwy2AQtCDSEfDLUBC0IOIR8MtAELQg8hHwyzAQsgAEIAIAApAyAiHyACIAEiHmutIiB9IiEgISAfVhs3AyAgHyAgViIiRQ20AUERIR4M9wILAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRshHgznAgtBEiEeDPYCCyAAIAEiHiACELKAgIAAQX9qDgWmAQCiAgGzAbQBC0ESIR4M5AILIABBAToALyAeIQEM8gILIAEiASACRw20AUEWIR4M8gILIAEiHCACRw0ZQTkhHgzxAgsCQCABIgEgAkcNAEEaIR4M8QILIABBADYCBCAAQYqAgIAANgIIIAAgASABEKqAgIAAIh4NtgEgASEBDLkBCwJAIAEiHiACRw0AQRshHgzwAgsCQCAeLQAAIgFBIEcNACAeQQFqIQEMGgsgAUEJRw22ASAeQQFqIQEMGQsCQCABIgEgAkYNACABQQFqIQEMFAtBHCEeDO4CCwJAIAEiHiACRw0AQR0hHgzuAgsCQCAeLQAAIgFBCUcNACAeIQEM0gILIAFBIEcNtQEgHiEBDNECCwJAIAEiASACRw0AQR4hHgztAgsgAS0AAEEKRw24ASABQQFqIQEMoAILIAEiASACRw24AUEiIR4M6wILA0ACQCABLQAAIh5BIEYNAAJAIB5BdmoOBAC+Ab4BALwBCyABIQEMxAELIAFBAWoiASACRw0AC0EkIR4M6gILQSUhHiABIiMgAkYN6QIgAiAjayAAKAIAIiRqISUgIyEmICQhAQJAA0AgJi0AACIiQSByICIgIkG/f2pB/wFxQRpJG0H/AXEgAUHwn4CAAGotAABHDQEgAUEDRg3WAiABQQFqIQEgJkEBaiImIAJHDQALIAAgJTYCAAzqAgsgAEEANgIAICYhAQy7AQtBJiEeIAEiIyACRg3oAiACICNrIAAoAgAiJGohJSAjISYgJCEBAkADQCAmLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQfSfgIAAai0AAEcNASABQQhGDb0BIAFBAWohASAmQQFqIiYgAkcNAAsgACAlNgIADOkCCyAAQQA2AgAgJiEBDLoBC0EnIR4gASIjIAJGDecCIAIgI2sgACgCACIkaiElICMhJiAkIQECQANAICYtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFB0KaAgABqLQAARw0BIAFBBUYNvQEgAUEBaiEBICZBAWoiJiACRw0ACyAAICU2AgAM6AILIABBADYCACAmIQEMuQELAkAgASIBIAJGDQADQAJAIAEtAABBgKKAgABqLQAAIh5BAUYNACAeQQJGDQogASEBDMEBCyABQQFqIgEgAkcNAAtBIyEeDOcCC0EjIR4M5gILAkAgASIBIAJGDQADQAJAIAEtAAAiHkEgRg0AIB5BdmoOBL0BvgG+Ab0BvgELIAFBAWoiASACRw0AC0ErIR4M5gILQSshHgzlAgsDQAJAIAEtAAAiHkEgRg0AIB5BCUcNAwsgAUEBaiIBIAJHDQALQS8hHgzkAgsDQAJAIAEtAAAiHkEgRg0AAkACQCAeQXZqDgS+AQEBvgEACyAeQSxGDb8BCyABIQEMBAsgAUEBaiIBIAJHDQALQTIhHgzjAgsgASEBDL8BC0EzIR4gASImIAJGDeECIAIgJmsgACgCACIjaiEkICYhIiAjIQECQANAICItAABBIHIgAUGApICAAGotAABHDQEgAUEGRg3QAiABQQFqIQEgIkEBaiIiIAJHDQALIAAgJDYCAAziAgsgAEEANgIAICIhAQtBKyEeDNACCwJAIAEiHSACRw0AQTQhHgzgAgsgAEGKgICAADYCCCAAIB02AgQgHSEBIAAtACxBf2oOBK8BuQG7Ab0BxwILIAFBAWohAQyuAQsCQCABIgEgAkYNAANAAkAgAS0AACIeQSByIB4gHkG/f2pB/wFxQRpJG0H/AXEiHkEJRg0AIB5BIEYNAAJAAkACQAJAIB5BnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQSYhHgzTAgsgAUEBaiEBQSchHgzSAgsgAUEBaiEBQSghHgzRAgsgASEBDLIBCyABQQFqIgEgAkcNAAtBKCEeDN4CC0EoIR4M3QILAkAgASIBIAJGDQADQAJAIAEtAABBgKCAgABqLQAAQQFGDQAgASEBDLcBCyABQQFqIgEgAkcNAAtBMCEeDN0CC0EwIR4M3AILAkADQAJAIAEtAABBd2oOGAACwQLBAscCwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECAMECCyABQQFqIgEgAkcNAAtBNSEeDNwCCyABQQFqIQELQSEhHgzKAgsgASIBIAJHDbkBQTchHgzZAgsDQAJAIAEtAABBkKSAgABqLQAAQQFGDQAgASEBDJACCyABQQFqIgEgAkcNAAtBOCEeDNgCCyAcLQAAIh5BIEYNmgEgHkE6Rw3GAiAAKAIEIQEgAEEANgIEIAAgASAcEKiAgIAAIgENtgEgHEEBaiEBDLgBCyAAIAEgAhCpgICAABoLQQohHgzFAgtBOiEeIAEiJiACRg3UAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQZCmgIAAai0AAEcNxAIgAUEFRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNUCCyAAQQA2AgAgAEEBOgAsICYgI2tBBmohAQy+AgtBOyEeIAEiJiACRg3TAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQZamgIAAai0AAEcNwwIgAUEJRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNQCCyAAQQA2AgAgAEECOgAsICYgI2tBCmohAQy9AgsCQCABIhwgAkcNAEE8IR4M0wILAkACQCAcLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwDDAsMCwwLDAsMCAcMCCyAcQQFqIQFBMiEeDMMCCyAcQQFqIQFBMyEeDMICC0E9IR4gASImIAJGDdECIAIgJmsgACgCACIjaiEkICYhHCAjIQEDQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQaCmgIAAai0AAEcNwAIgAUEBRg20AiABQQFqIQEgHEEBaiIcIAJHDQALIAAgJDYCAAzRAgtBPiEeIAEiJiACRg3QAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQaKmgIAAai0AAEcNwAIgAUEORg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNECCyAAQQA2AgAgAEEBOgAsICYgI2tBD2ohAQy6AgtBPyEeIAEiJiACRg3PAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQcCmgIAAai0AAEcNvwIgAUEPRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNACCyAAQQA2AgAgAEEDOgAsICYgI2tBEGohAQy5AgtBwAAhHiABIiYgAkYNzgIgAiAmayAAKAIAIiNqISQgJiEcICMhAQJAA0AgHC0AACIiQSByICIgIkG/f2pB/wFxQRpJG0H/AXEgAUHQpoCAAGotAABHDb4CIAFBBUYNASABQQFqIQEgHEEBaiIcIAJHDQALIAAgJDYCAAzPAgsgAEEANgIAIABBBDoALCAmICNrQQZqIQEMuAILAkAgASIcIAJHDQBBwQAhHgzOAgsCQAJAAkACQCAcLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGdf2oOEwDAAsACwALAAsACwALAAsACwALAAsACwAIBwALAAsACAgPAAgsgHEEBaiEBQTUhHgzAAgsgHEEBaiEBQTYhHgy/AgsgHEEBaiEBQTchHgy+AgsgHEEBaiEBQTghHgy9AgsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBOSEeDL0CC0HCACEeDMwCCyABIgEgAkcNrwFBxAAhHgzLAgtBxQAhHiABIiYgAkYNygIgAiAmayAAKAIAIiNqISQgJiEiICMhAQJAA0AgIi0AACABQdamgIAAai0AAEcNtAEgAUEBRg0BIAFBAWohASAiQQFqIiIgAkcNAAsgACAkNgIADMsCCyAAQQA2AgAgJiAja0ECaiEBDK8BCwJAIAEiASACRw0AQccAIR4MygILIAEtAABBCkcNswEgAUEBaiEBDK8BCwJAIAEiASACRw0AQcgAIR4MyQILAkACQCABLQAAQXZqDgQBtAG0AQC0AQsgAUEBaiEBQT0hHgy5AgsgAUEBaiEBDK4BCwJAIAEiASACRw0AQckAIR4MyAILQQAhHgJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4KuwG6AQABAgMEBQYHvAELQQIhHgy6AQtBAyEeDLkBC0EEIR4MuAELQQUhHgy3AQtBBiEeDLYBC0EHIR4MtQELQQghHgy0AQtBCSEeDLMBCwJAIAEiASACRw0AQcoAIR4MxwILIAEtAABBLkcNtAEgAUEBaiEBDIACCwJAIAEiASACRw0AQcsAIR4MxgILQQAhHgJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4KvQG8AQABAgMEBQYHvgELQQIhHgy8AQtBAyEeDLsBC0EEIR4MugELQQUhHgy5AQtBBiEeDLgBC0EHIR4MtwELQQghHgy2AQtBCSEeDLUBC0HMACEeIAEiJiACRg3EAiACICZrIAAoAgAiI2ohJCAmIQEgIyEiA0AgAS0AACAiQeKmgIAAai0AAEcNuAEgIkEDRg23ASAiQQFqISIgAUEBaiIBIAJHDQALIAAgJDYCAAzEAgtBzQAhHiABIiYgAkYNwwIgAiAmayAAKAIAIiNqISQgJiEBICMhIgNAIAEtAAAgIkHmpoCAAGotAABHDbcBICJBAkYNuQEgIkEBaiEiIAFBAWoiASACRw0ACyAAICQ2AgAMwwILQc4AIR4gASImIAJGDcICIAIgJmsgACgCACIjaiEkICYhASAjISIDQCABLQAAICJB6aaAgABqLQAARw22ASAiQQNGDbkBICJBAWohIiABQQFqIgEgAkcNAAsgACAkNgIADMICCwNAAkAgAS0AACIeQSBGDQACQAJAAkAgHkG4f2oOCwABugG6AboBugG6AboBugG6AQK6AQsgAUEBaiEBQcIAIR4MtQILIAFBAWohAUHDACEeDLQCCyABQQFqIQFBxAAhHgyzAgsgAUEBaiIBIAJHDQALQc8AIR4MwQILAkAgASIBIAJGDQAgACABQQFqIgEgAhClgICAABogASEBQQchHgyxAgtB0AAhHgzAAgsDQAJAIAEtAABB8KaAgABqLQAAIh5BAUYNACAeQX5qDgO5AboBuwG8AQsgAUEBaiIBIAJHDQALQdEAIR4MvwILAkAgASIBIAJGDQAgAUEBaiEBDAMLQdIAIR4MvgILA0ACQCABLQAAQfCogIAAai0AACIeQQFGDQACQCAeQX5qDgS8Ab0BvgEAvwELIAEhAUHGACEeDK8CCyABQQFqIgEgAkcNAAtB0wAhHgy9AgsCQCABIgEgAkcNAEHUACEeDL0CCwJAIAEtAAAiHkF2ag4apAG/Ab8BpgG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG0Ab8BvwEAvQELIAFBAWohAQtBBiEeDKsCCwNAAkAgAS0AAEHwqoCAAGotAABBAUYNACABIQEM+gELIAFBAWoiASACRw0AC0HVACEeDLoCCwJAIAEiASACRg0AIAFBAWohAQwDC0HWACEeDLkCCwJAIAEiASACRw0AQdcAIR4MuQILIAFBAWohAQwBCwJAIAEiASACRw0AQdgAIR4MuAILIAFBAWohAQtBBCEeDKYCCwJAIAEiIiACRw0AQdkAIR4MtgILICIhAQJAAkACQCAiLQAAQfCsgIAAai0AAEF/ag4HvgG/AcABAPgBAQLBAQsgIkEBaiEBDAoLICJBAWohAQy3AQtBACEeIABBADYCHCAAQfGOgIAANgIQIABBBzYCDCAAICJBAWo2AhQMtQILAkADQAJAIAEtAABB8KyAgABqLQAAIh5BBEYNAAJAAkAgHkF/ag4HvAG9Ab4BwwEABAHDAQsgASEBQckAIR4MqAILIAFBAWohAUHLACEeDKcCCyABQQFqIgEgAkcNAAtB2gAhHgy1AgsgAUEBaiEBDLUBCwJAIAEiIiACRw0AQdsAIR4MtAILICItAABBL0cNvgEgIkEBaiEBDAYLAkAgASIiIAJHDQBB3AAhHgyzAgsCQCAiLQAAIgFBL0cNACAiQQFqIQFBzAAhHgyjAgsgAUF2aiIBQRZLDb0BQQEgAXRBiYCAAnFFDb0BDJMCCwJAIAEiASACRg0AIAFBAWohAUHNACEeDKICC0HdACEeDLECCwJAIAEiIiACRw0AQd8AIR4MsQILICIhAQJAICItAABB8LCAgABqLQAAQX9qDgOSAvABAL4BC0HQACEeDKACCwJAIAEiIiACRg0AA0ACQCAiLQAAQfCugIAAai0AACIBQQNGDQACQCABQX9qDgKUAgC/AQsgIiEBQc4AIR4MogILICJBAWoiIiACRw0AC0HeACEeDLACC0HeACEeDK8CCwJAIAEiASACRg0AIABBjICAgAA2AgggACABNgIEIAEhAUHPACEeDJ8CC0HgACEeDK4CCwJAIAEiASACRw0AQeEAIR4MrgILIABBjICAgAA2AgggACABNgIEIAEhAQtBAyEeDJwCCwNAIAEtAABBIEcNjAIgAUEBaiIBIAJHDQALQeIAIR4MqwILAkAgASIBIAJHDQBB4wAhHgyrAgsgAS0AAEEgRw24ASABQQFqIQEM1AELAkAgASIIIAJHDQBB5AAhHgyqAgsgCC0AAEHMAEcNuwEgCEEBaiEBQRMhHgy5AQtB5QAhHiABIiIgAkYNqAIgAiAiayAAKAIAIiZqISMgIiEIICYhAQNAIAgtAAAgAUHwsoCAAGotAABHDboBIAFBBUYNuAEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMqAILAkAgASIIIAJHDQBB5gAhHgyoAgsCQAJAIAgtAABBvX9qDgwAuwG7AbsBuwG7AbsBuwG7AbsBuwEBuwELIAhBAWohAUHUACEeDJgCCyAIQQFqIQFB1QAhHgyXAgtB5wAhHiABIiIgAkYNpgIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQe2zgIAAai0AAEcNuQEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKcCCyAAQQA2AgAgIiAma0EDaiEBQRAhHgy2AQtB6AAhHiABIiIgAkYNpQIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQfaygIAAai0AAEcNuAEgAUEFRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKYCCyAAQQA2AgAgIiAma0EGaiEBQRYhHgy1AQtB6QAhHiABIiIgAkYNpAIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQfyygIAAai0AAEcNtwEgAUEDRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKUCCyAAQQA2AgAgIiAma0EEaiEBQQUhHgy0AQsCQCABIgggAkcNAEHqACEeDKQCCyAILQAAQdkARw21ASAIQQFqIQFBCCEeDLMBCwJAIAEiCCACRw0AQesAIR4MowILAkACQCAILQAAQbJ/ag4DALYBAbYBCyAIQQFqIQFB2QAhHgyTAgsgCEEBaiEBQdoAIR4MkgILAkAgASIIIAJHDQBB7AAhHgyiAgsCQAJAIAgtAABBuH9qDggAtQG1AbUBtQG1AbUBAbUBCyAIQQFqIQFB2AAhHgySAgsgCEEBaiEBQdsAIR4MkQILQe0AIR4gASIiIAJGDaACIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUGAs4CAAGotAABHDbMBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAyhAgtBACEeIABBADYCACAiICZrQQNqIQEMsAELQe4AIR4gASIiIAJGDZ8CIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUGDs4CAAGotAABHDbIBIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAygAgsgAEEANgIAICIgJmtBBWohAUEjIR4MrwELAkAgASIIIAJHDQBB7wAhHgyfAgsCQAJAIAgtAABBtH9qDggAsgGyAbIBsgGyAbIBAbIBCyAIQQFqIQFB3QAhHgyPAgsgCEEBaiEBQd4AIR4MjgILAkAgASIIIAJHDQBB8AAhHgyeAgsgCC0AAEHFAEcNrwEgCEEBaiEBDN4BC0HxACEeIAEiIiACRg2cAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFBiLOAgABqLQAARw2vASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMnQILIABBADYCACAiICZrQQRqIQFBLSEeDKwBC0HyACEeIAEiIiACRg2bAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB0LOAgABqLQAARw2uASABQQhGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMnAILIABBADYCACAiICZrQQlqIQFBKSEeDKsBCwJAIAEiASACRw0AQfMAIR4MmwILQQEhHiABLQAAQd8ARw2qASABQQFqIQEM3AELQfQAIR4gASIiIAJGDZkCIAIgImsgACgCACImaiEjICIhCCAmIQEDQCAILQAAIAFBjLOAgABqLQAARw2rASABQQFGDfcBIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADJkCCwJAIAEiHiACRw0AQfUAIR4MmQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGOs4CAAGotAABHDasBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH1ACEeDJkCCyAAQQA2AgAgHiAia0EDaiEBQQIhHgyoAQsCQCABIh4gAkcNAEH2ACEeDJgCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFB8LOAgABqLQAARw2qASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB9gAhHgyYAgsgAEEANgIAIB4gImtBAmohAUEfIR4MpwELAkAgASIeIAJHDQBB9wAhHgyXAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQfKzgIAAai0AAEcNqQEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfcAIR4MlwILIABBADYCACAeICJrQQJqIQFBCSEeDKYBCwJAIAEiCCACRw0AQfgAIR4MlgILAkACQCAILQAAQbd/ag4HAKkBqQGpAakBqQEBqQELIAhBAWohAUHmACEeDIYCCyAIQQFqIQFB5wAhHgyFAgsCQCABIh4gAkcNAEH5ACEeDJUCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBkbOAgABqLQAARw2nASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB+QAhHgyVAgsgAEEANgIAIB4gImtBBmohAUEYIR4MpAELAkAgASIeIAJHDQBB+gAhHgyUAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQZezgIAAai0AAEcNpgEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfoAIR4MlAILIABBADYCACAeICJrQQNqIQFBFyEeDKMBCwJAIAEiHiACRw0AQfsAIR4MkwILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGas4CAAGotAABHDaUBIAFBBkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH7ACEeDJMCCyAAQQA2AgAgHiAia0EHaiEBQRUhHgyiAQsCQCABIh4gAkcNAEH8ACEeDJICCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBobOAgABqLQAARw2kASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB/AAhHgySAgsgAEEANgIAIB4gImtBBmohAUEeIR4MoQELAkAgASIIIAJHDQBB/QAhHgyRAgsgCC0AAEHMAEcNogEgCEEBaiEBQQohHgygAQsCQCABIgggAkcNAEH+ACEeDJACCwJAAkAgCC0AAEG/f2oODwCjAaMBowGjAaMBowGjAaMBowGjAaMBowGjAQGjAQsgCEEBaiEBQewAIR4MgAILIAhBAWohAUHtACEeDP8BCwJAIAEiCCACRw0AQf8AIR4MjwILAkACQCAILQAAQb9/ag4DAKIBAaIBCyAIQQFqIQFB6wAhHgz/AQsgCEEBaiEBQe4AIR4M/gELAkAgASIeIAJHDQBBgAEhHgyOAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQaezgIAAai0AAEcNoAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYABIR4MjgILIABBADYCACAeICJrQQJqIQFBCyEeDJ0BCwJAIAEiCCACRw0AQYEBIR4MjQILAkACQAJAAkAgCC0AAEFTag4jAKIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogEBogGiAaIBogGiAQKiAaIBogEDogELIAhBAWohAUHpACEeDP8BCyAIQQFqIQFB6gAhHgz+AQsgCEEBaiEBQe8AIR4M/QELIAhBAWohAUHwACEeDPwBCwJAIAEiHiACRw0AQYIBIR4MjAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGps4CAAGotAABHDZ4BIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGCASEeDIwCCyAAQQA2AgAgHiAia0EFaiEBQRkhHgybAQsCQCABIiIgAkcNAEGDASEeDIsCCyACICJrIAAoAgAiJmohHiAiIQggJiEBAkADQCAILQAAIAFBrrOAgABqLQAARw2dASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAIB42AgBBgwEhHgyLAgsgAEEANgIAQQYhHiAiICZrQQZqIQEMmgELAkAgASIeIAJHDQBBhAEhHgyKAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbSzgIAAai0AAEcNnAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYQBIR4MigILIABBADYCACAeICJrQQJqIQFBHCEeDJkBCwJAIAEiHiACRw0AQYUBIR4MiQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUG2s4CAAGotAABHDZsBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGFASEeDIkCCyAAQQA2AgAgHiAia0ECaiEBQSchHgyYAQsCQCABIgggAkcNAEGGASEeDIgCCwJAAkAgCC0AAEGsf2oOAgABmwELIAhBAWohAUH0ACEeDPgBCyAIQQFqIQFB9QAhHgz3AQsCQCABIh4gAkcNAEGHASEeDIcCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBuLOAgABqLQAARw2ZASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBhwEhHgyHAgsgAEEANgIAIB4gImtBAmohAUEmIR4MlgELAkAgASIeIAJHDQBBiAEhHgyGAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbqzgIAAai0AAEcNmAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYgBIR4MhgILIABBADYCACAeICJrQQJqIQFBAyEeDJUBCwJAIAEiHiACRw0AQYkBIR4MhQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHts4CAAGotAABHDZcBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGJASEeDIUCCyAAQQA2AgAgHiAia0EDaiEBQQwhHgyUAQsCQCABIh4gAkcNAEGKASEeDIQCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBvLOAgABqLQAARw2WASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBigEhHgyEAgsgAEEANgIAIB4gImtBBGohAUENIR4MkwELAkAgASIIIAJHDQBBiwEhHgyDAgsCQAJAIAgtAABBun9qDgsAlgGWAZYBlgGWAZYBlgGWAZYBAZYBCyAIQQFqIQFB+QAhHgzzAQsgCEEBaiEBQfoAIR4M8gELAkAgASIIIAJHDQBBjAEhHgyCAgsgCC0AAEHQAEcNkwEgCEEBaiEBDMQBCwJAIAEiCCACRw0AQY0BIR4MgQILAkACQCAILQAAQbd/ag4HAZQBlAGUAZQBlAEAlAELIAhBAWohAUH8ACEeDPEBCyAIQQFqIQFBIiEeDJABCwJAIAEiHiACRw0AQY4BIR4MgAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHAs4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGOASEeDIACCyAAQQA2AgAgHiAia0ECaiEBQR0hHgyPAQsCQCABIgggAkcNAEGPASEeDP8BCwJAAkAgCC0AAEGuf2oOAwCSAQGSAQsgCEEBaiEBQf4AIR4M7wELIAhBAWohAUEEIR4MjgELAkAgASIIIAJHDQBBkAEhHgz+AQsCQAJAAkACQAJAIAgtAABBv39qDhUAlAGUAZQBlAGUAZQBlAGUAZQBlAEBlAGUAQKUAZQBA5QBlAEElAELIAhBAWohAUH2ACEeDPEBCyAIQQFqIQFB9wAhHgzwAQsgCEEBaiEBQfgAIR4M7wELIAhBAWohAUH9ACEeDO4BCyAIQQFqIQFB/wAhHgztAQsCQCAEIAJHDQBBkQEhHgz9AQsgAiAEayAAKAIAIh5qISIgBCEIIB4hAQJAA0AgCC0AACABQe2zgIAAai0AAEcNjwEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZEBIR4M/QELIABBADYCACAEIB5rQQNqIQFBESEeDIwBCwJAIAUgAkcNAEGSASEeDPwBCyACIAVrIAAoAgAiHmohIiAFIQggHiEBAkADQCAILQAAIAFBwrOAgABqLQAARw2OASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBkgEhHgz8AQsgAEEANgIAIAUgHmtBA2ohAUEsIR4MiwELAkAgBiACRw0AQZMBIR4M+wELIAIgBmsgACgCACIeaiEiIAYhCCAeIQECQANAIAgtAAAgAUHFs4CAAGotAABHDY0BIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGTASEeDPsBCyAAQQA2AgAgBiAea0EFaiEBQSshHgyKAQsCQCAHIAJHDQBBlAEhHgz6AQsgAiAHayAAKAIAIh5qISIgByEIIB4hAQJAA0AgCC0AACABQcqzgIAAai0AAEcNjAEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZQBIR4M+gELIABBADYCACAHIB5rQQNqIQFBFCEeDIkBCwJAIAggAkcNAEGVASEeDPkBCwJAAkACQAJAIAgtAABBvn9qDg8AAQKOAY4BjgGOAY4BjgGOAY4BjgGOAY4BA44BCyAIQQFqIQRBgQEhHgzrAQsgCEEBaiEFQYIBIR4M6gELIAhBAWohBkGDASEeDOkBCyAIQQFqIQdBhAEhHgzoAQsCQCAIIAJHDQBBlgEhHgz4AQsgCC0AAEHFAEcNiQEgCEEBaiEIDLsBCwJAIAkgAkcNAEGXASEeDPcBCyACIAlrIAAoAgAiHmohIiAJIQggHiEBAkADQCAILQAAIAFBzbOAgABqLQAARw2JASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBlwEhHgz3AQsgAEEANgIAIAkgHmtBA2ohAUEOIR4MhgELAkAgCCACRw0AQZgBIR4M9gELIAgtAABB0ABHDYcBIAhBAWohAUElIR4MhQELAkAgCiACRw0AQZkBIR4M9QELIAIgCmsgACgCACIeaiEiIAohCCAeIQECQANAIAgtAAAgAUHQs4CAAGotAABHDYcBIAFBCEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGZASEeDPUBCyAAQQA2AgAgCiAea0EJaiEBQSohHgyEAQsCQCAIIAJHDQBBmgEhHgz0AQsCQAJAIAgtAABBq39qDgsAhwGHAYcBhwGHAYcBhwGHAYcBAYcBCyAIQQFqIQhBiAEhHgzkAQsgCEEBaiEKQYkBIR4M4wELAkAgCCACRw0AQZsBIR4M8wELAkACQCAILQAAQb9/ag4UAIYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAQGGAQsgCEEBaiEJQYcBIR4M4wELIAhBAWohCEGKASEeDOIBCwJAIAsgAkcNAEGcASEeDPIBCyACIAtrIAAoAgAiHmohIiALIQggHiEBAkADQCAILQAAIAFB2bOAgABqLQAARw2EASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBnAEhHgzyAQsgAEEANgIAIAsgHmtBBGohAUEhIR4MgQELAkAgDCACRw0AQZ0BIR4M8QELIAIgDGsgACgCACIeaiEiIAwhCCAeIQECQANAIAgtAAAgAUHds4CAAGotAABHDYMBIAFBBkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGdASEeDPEBCyAAQQA2AgAgDCAea0EHaiEBQRohHgyAAQsCQCAIIAJHDQBBngEhHgzwAQsCQAJAAkAgCC0AAEG7f2oOEQCEAYQBhAGEAYQBhAGEAYQBhAEBhAGEAYQBhAGEAQKEAQsgCEEBaiEIQYsBIR4M4QELIAhBAWohC0GMASEeDOABCyAIQQFqIQxBjQEhHgzfAQsCQCANIAJHDQBBnwEhHgzvAQsgAiANayAAKAIAIh5qISIgDSEIIB4hAQJAA0AgCC0AACABQeSzgIAAai0AAEcNgQEgAUEFRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZ8BIR4M7wELIABBADYCACANIB5rQQZqIQFBKCEeDH4LAkAgDiACRw0AQaABIR4M7gELIAIgDmsgACgCACIeaiEiIA4hCCAeIQECQANAIAgtAAAgAUHqs4CAAGotAABHDYABIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGgASEeDO4BCyAAQQA2AgAgDiAea0EDaiEBQQchHgx9CwJAIAggAkcNAEGhASEeDO0BCwJAAkAgCC0AAEG7f2oODgCAAYABgAGAAYABgAGAAYABgAGAAYABgAEBgAELIAhBAWohDUGPASEeDN0BCyAIQQFqIQ5BkAEhHgzcAQsCQCAPIAJHDQBBogEhHgzsAQsgAiAPayAAKAIAIh5qISIgDyEIIB4hAQJAA0AgCC0AACABQe2zgIAAai0AAEcNfiABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBogEhHgzsAQsgAEEANgIAIA8gHmtBA2ohAUESIR4MewsCQCAQIAJHDQBBowEhHgzrAQsgAiAQayAAKAIAIh5qISIgECEIIB4hAQJAA0AgCC0AACABQfCzgIAAai0AAEcNfSABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBowEhHgzrAQsgAEEANgIAIBAgHmtBAmohAUEgIR4MegsCQCARIAJHDQBBpAEhHgzqAQsgAiARayAAKAIAIh5qISIgESEIIB4hAQJAA0AgCC0AACABQfKzgIAAai0AAEcNfCABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBpAEhHgzqAQsgAEEANgIAIBEgHmtBAmohAUEPIR4MeQsCQCAIIAJHDQBBpQEhHgzpAQsCQAJAIAgtAABBt39qDgcAfHx8fHwBfAsgCEEBaiEQQZMBIR4M2QELIAhBAWohEUGUASEeDNgBCwJAIBIgAkcNAEGmASEeDOgBCyACIBJrIAAoAgAiHmohIiASIQggHiEBAkADQCAILQAAIAFB9LOAgABqLQAARw16IAFBB0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGmASEeDOgBCyAAQQA2AgAgEiAea0EIaiEBQRshHgx3CwJAIAggAkcNAEGnASEeDOcBCwJAAkACQCAILQAAQb5/ag4SAHt7e3t7e3t7ewF7e3t7e3sCewsgCEEBaiEPQZIBIR4M2AELIAhBAWohCEGVASEeDNcBCyAIQQFqIRJBlgEhHgzWAQsCQCAIIAJHDQBBqAEhHgzmAQsgCC0AAEHOAEcNdyAIQQFqIQgMqgELAkAgCCACRw0AQakBIR4M5QELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCC0AAEG/f2oOFQABAgOGAQQFBoYBhgGGAQcICQoLhgEMDQ4PhgELIAhBAWohAUHWACEeDOMBCyAIQQFqIQFB1wAhHgziAQsgCEEBaiEBQdwAIR4M4QELIAhBAWohAUHgACEeDOABCyAIQQFqIQFB4QAhHgzfAQsgCEEBaiEBQeQAIR4M3gELIAhBAWohAUHlACEeDN0BCyAIQQFqIQFB6AAhHgzcAQsgCEEBaiEBQfEAIR4M2wELIAhBAWohAUHyACEeDNoBCyAIQQFqIQFB8wAhHgzZAQsgCEEBaiEBQYABIR4M2AELIAhBAWohCEGGASEeDNcBCyAIQQFqIQhBjgEhHgzWAQsgCEEBaiEIQZEBIR4M1QELIAhBAWohCEGYASEeDNQBCwJAIBQgAkcNAEGrASEeDOQBCyAUQQFqIRMMdwsDQAJAIB4tAABBdmoOBHcAAHoACyAeQQFqIh4gAkcNAAtBrAEhHgziAQsCQCAVIAJGDQAgAEGNgICAADYCCCAAIBU2AgQgFSEBQQEhHgzSAQtBrQEhHgzhAQsCQCAVIAJHDQBBrgEhHgzhAQsCQAJAIBUtAABBdmoOBAGrAasBAKsBCyAVQQFqIRQMeAsgFUEBaiETDHQLIAAgEyACEKeAgIAAGiATIQEMRQsCQCAVIAJHDQBBrwEhHgzfAQsCQAJAIBUtAABBdmoOFwF5eQF5eXl5eXl5eXl5eXl5eXl5eXkAeQsgFUEBaiEVC0GcASEeDM4BCwJAIBYgAkcNAEGxASEeDN4BCyAWLQAAQSBHDXcgAEEAOwEyIBZBAWohAUGgASEeDM0BCyABISYCQANAICYiFSACRg0BIBUtAABBUGpB/wFxIh5BCk8NqAECQCAALwEyIiJBmTNLDQAgACAiQQpsIiI7ATIgHkH//wNzICJB/v8DcUkNACAVQQFqISYgACAiIB5qIh47ATIgHkH//wNxQegHSQ0BCwtBACEeIABBADYCHCAAQZ2JgIAANgIQIABBDTYCDCAAIBVBAWo2AhQM3QELQbABIR4M3AELAkAgFyACRw0AQbIBIR4M3AELQQAhHgJAAkACQAJAAkACQAJAAkAgFy0AAEFQag4Kf34AAQIDBAUGB4ABC0ECIR4MfgtBAyEeDH0LQQQhHgx8C0EFIR4MewtBBiEeDHoLQQchHgx5C0EIIR4MeAtBCSEeDHcLAkAgGCACRw0AQbMBIR4M2wELIBgtAABBLkcNeCAYQQFqIRcMpgELAkAgGSACRw0AQbQBIR4M2gELQQAhHgJAAkACQAJAAkACQAJAAkAgGS0AAEFQag4KgQGAAQABAgMEBQYHggELQQIhHgyAAQtBAyEeDH8LQQQhHgx+C0EFIR4MfQtBBiEeDHwLQQchHgx7C0EIIR4MegtBCSEeDHkLAkAgCCACRw0AQbUBIR4M2QELIAIgCGsgACgCACIiaiEmIAghGSAiIR4DQCAZLQAAIB5B/LOAgABqLQAARw17IB5BBEYNtAEgHkEBaiEeIBlBAWoiGSACRw0ACyAAICY2AgBBtQEhHgzYAQsCQCAaIAJHDQBBtgEhHgzYAQsgAiAaayAAKAIAIh5qISIgGiEIIB4hAQNAIAgtAAAgAUGBtICAAGotAABHDXsgAUEBRg22ASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEG2ASEeDNcBCwJAIBsgAkcNAEG3ASEeDNcBCyACIBtrIAAoAgAiGWohIiAbIQggGSEeA0AgCC0AACAeQYO0gIAAai0AAEcNeiAeQQJGDXwgHkEBaiEeIAhBAWoiCCACRw0ACyAAICI2AgBBtwEhHgzWAQsCQCAIIAJHDQBBuAEhHgzWAQsCQAJAIAgtAABBu39qDhAAe3t7e3t7e3t7e3t7e3sBewsgCEEBaiEaQaUBIR4MxgELIAhBAWohG0GmASEeDMUBCwJAIAggAkcNAEG5ASEeDNUBCyAILQAAQcgARw14IAhBAWohCAyiAQsCQCAIIAJHDQBBugEhHgzUAQsgCC0AAEHIAEYNogEgAEEBOgAoDJkBCwNAAkAgCC0AAEF2ag4EAHp6AHoLIAhBAWoiCCACRw0AC0G8ASEeDNIBCyAAQQA6AC8gAC0ALUEEcUUNyAELIABBADoALyABIQEMeQsgHkEVRg2pASAAQQA2AhwgACABNgIUIABBq4yAgAA2AhAgAEESNgIMQQAhHgzPAQsCQCAAIB4gAhCtgICAACIBDQAgHiEBDMUBCwJAIAFBFUcNACAAQQM2AhwgACAeNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgzPAQsgAEEANgIcIAAgHjYCFCAAQauMgIAANgIQIABBEjYCDEEAIR4MzgELIB5BFUYNpQEgAEEANgIcIAAgATYCFCAAQYiMgIAANgIQIABBFDYCDEEAIR4MzQELIAAoAgQhJiAAQQA2AgQgHiAfp2oiIyEBIAAgJiAeICMgIhsiHhCugICAACIiRQ16IABBBzYCHCAAIB42AhQgACAiNgIMQQAhHgzMAQsgACAALwEwQYABcjsBMCABIQEMMQsgHkEVRg2hASAAQQA2AhwgACABNgIUIABBxYuAgAA2AhAgAEETNgIMQQAhHgzKAQsgAEEANgIcIAAgATYCFCAAQYuLgIAANgIQIABBAjYCDEEAIR4MyQELIB5BO0cNASABQQFqIQELQQghHgy3AQtBACEeIABBADYCHCAAIAE2AhQgAEGjkICAADYCECAAQQw2AgwMxgELQgEhHwsgHkEBaiEBAkAgACkDICIgQv//////////D1YNACAAICBCBIYgH4Q3AyAgASEBDHcLIABBADYCHCAAIAE2AhQgAEGJiYCAADYCECAAQQw2AgxBACEeDMQBCyAAQQA2AhwgACAeNgIUIABBo5CAgAA2AhAgAEEMNgIMQQAhHgzDAQsgACgCBCEmIABBADYCBCAeIB+naiIjIQEgACAmIB4gIyAiGyIeEK6AgIAAIiJFDW4gAEEFNgIcIAAgHjYCFCAAICI2AgxBACEeDMIBCyAAQQA2AhwgACAeNgIUIABB3ZSAgAA2AhAgAEEPNgIMQQAhHgzBAQsgACAeIAIQrYCAgAAiAQ0BIB4hAQtBDyEeDK8BCwJAIAFBFUcNACAAQQI2AhwgACAeNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgy/AQsgAEEANgIcIAAgHjYCFCAAQauMgIAANgIQIABBEjYCDEEAIR4MvgELIAFBAWohHgJAIAAvATAiAUGAAXFFDQACQCAAIB4gAhCwgICAACIBDQAgHiEBDGsLIAFBFUcNlwEgAEEFNgIcIAAgHjYCFCAAQb6SgIAANgIQIABBFTYCDEEAIR4MvgELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIB42AhQgAEHsj4CAADYCECAAQQQ2AgxBACEeDL4BCyAAIB4gAhCxgICAABogHiEBAkACQAJAAkACQCAAIB4gAhCsgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAeIQELQR0hHgyvAQsgAEEVNgIcIAAgHjYCFCAAQeGRgIAANgIQIABBFTYCDEEAIR4MvgELIABBADYCHCAAIB42AhQgAEGxi4CAADYCECAAQRE2AgxBACEeDL0BCyAALQAtQQFxRQ0BQaoBIR4MrAELAkAgHCACRg0AA0ACQCAcLQAAQSBGDQAgHCEBDKgBCyAcQQFqIhwgAkcNAAtBFyEeDLwBC0EXIR4MuwELIAAoAgQhASAAQQA2AgQgACABIBwQqICAgAAiAUUNkAEgAEEYNgIcIAAgATYCDCAAIBxBAWo2AhRBACEeDLoBCyAAQRk2AhwgACABNgIUIAAgHjYCDEEAIR4MuQELIB4hAUEBISICQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhIgwBC0EEISILIABBAToALCAAIAAvATAgInI7ATALIB4hAQtBICEeDKkBCyAAQQA2AhwgACAeNgIUIABBgY+AgAA2AhAgAEELNgIMQQAhHgy4AQsgHiEBQQEhIgJAAkACQAJAAkAgAC0ALEF7ag4EAgABAwULQQIhIgwBC0EEISILIABBAToALCAAIAAvATAgInI7ATAMAQsgACAALwEwQQhyOwEwCyAeIQELQasBIR4MpgELIAAgASACEKuAgIAAGgwbCwJAIAEiHiACRg0AIB4hAQJAAkAgHi0AAEF2ag4EAWpqAGoLIB5BAWohAQtBHiEeDKUBC0HDACEeDLQBCyAAQQA2AhwgACABNgIUIABBkZGAgAA2AhAgAEEDNgIMQQAhHgyzAQsCQCABLQAAQQ1HDQAgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABQQFqIQEMaQsgAEEeNgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDLMBCyABIQEgAC0ALUEBcUUNrgFBrQEhHgyiAQsCQCABIgEgAkcNAEEfIR4MsgELAkACQANAAkAgAS0AAEF2ag4EAgAAAwALIAFBAWoiASACRw0AC0EfIR4MswELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCqgICAACIeDQAgASEBDGgLIABBHjYCHCAAIAE2AhQgACAeNgIMQQAhHgyyAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABQQFqIQEMZwsgAEEeNgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDLEBCyAeQSxHDQEgAUEBaiEeQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIB4hAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIB4hAQwBCyAAIAAvATBBCHI7ATAgHiEBC0EuIR4MnwELIABBADoALCABIQELQSkhHgydAQsgAEEANgIAICMgJGtBCWohAUEFIR4MmAELIABBADYCACAjICRrQQZqIQFBByEeDJcBCyAAIAAvATBBIHI7ATAgASEBDAILIAAoAgQhCCAAQQA2AgQCQCAAIAggARCqgICAACIIDQAgASEBDJ0BCyAAQSo2AhwgACABNgIUIAAgCDYCDEEAIR4MqQELIABBCDoALCABIQELQSUhHgyXAQsCQCAALQAoQQFGDQAgASEBDAQLIAAtAC1BCHFFDXggASEBDAMLIAAtADBBIHENeUGuASEeDJUBCwJAIB0gAkYNAAJAA0ACQCAdLQAAQVBqIgFB/wFxQQpJDQAgHSEBQSohHgyYAQsgACkDICIfQpmz5syZs+bMGVYNASAAIB9CCn4iHzcDICAfIAGtIiBCf4VCgH6EVg0BIAAgHyAgQv8Bg3w3AyAgHUEBaiIdIAJHDQALQSwhHgymAQsgACgCBCEIIABBADYCBCAAIAggHUEBaiIBEKqAgIAAIggNeiABIQEMmQELQSwhHgykAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDXULIAAgAUH3+wNxQYAEcjsBMCAdIQELQSwhHgySAQsgACAALwEwQRByOwEwDIcBCyAAQTY2AhwgACABNgIMIAAgHEEBajYCFEEAIR4MoAELIAEtAABBOkcNAiAAKAIEIR4gAEEANgIEIAAgHiABEKiAgIAAIh4NASABQQFqIQELQTEhHgyOAQsgAEE2NgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDJ0BCyAAQQA2AhwgACABNgIUIABBh46AgAA2AhAgAEEKNgIMQQAhHgycAQsgAUEBaiEBCyAAQYASOwEqIAAgASACEKWAgIAAGiABIQELQawBIR4MiQELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDFALIABBxAA2AhwgACABNgIUIAAgHjYCDEEAIR4MmAELIABBADYCHCAAICI2AhQgAEHlmICAADYCECAAQQc2AgwgAEEANgIAQQAhHgyXAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMTwsgAEHFADYCHCAAIAE2AhQgACAeNgIMQQAhHgyWAQtBACEeIABBADYCHCAAIAE2AhQgAEHrjYCAADYCECAAQQk2AgwMlQELQQEhHgsgACAeOgArIAFBAWohASAALQApQSJGDYsBDEwLIABBADYCHCAAIAE2AhQgAEGijYCAADYCECAAQQk2AgxBACEeDJIBCyAAQQA2AhwgACABNgIUIABBxYqAgAA2AhAgAEEJNgIMQQAhHgyRAQtBASEeCyAAIB46ACogAUEBaiEBDEoLIABBADYCHCAAIAE2AhQgAEG4jYCAADYCECAAQQk2AgxBACEeDI4BCyAAQQA2AgAgJiAja0EEaiEBAkAgAC0AKUEjTw0AIAEhAQxKCyAAQQA2AhwgACABNgIUIABBr4mAgAA2AhAgAEEINgIMQQAhHgyNAQsgAEEANgIAC0EAIR4gAEEANgIcIAAgATYCFCAAQbmbgIAANgIQIABBCDYCDAyLAQsgAEEANgIAICYgI2tBA2ohAQJAIAAtAClBIUcNACABIQEMRwsgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDEEAIR4MigELIABBADYCACAmICNrQQRqIQECQCAALQApIh5BXWpBC08NACABIQEMRgsCQCAeQQZLDQBBASAedEHKAHFFDQAgASEBDEYLQQAhHiAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMDIkBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQxGCyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDIgBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw/CyAAQcQANgIcIAAgATYCFCAAIB42AgxBACEeDIcBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw/CyAAQcUANgIcIAAgATYCFCAAIB42AgxBACEeDIYBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQxDCyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDIUBCyAAQQA2AhwgACABNgIUIABBooqAgAA2AhAgAEEHNgIMQQAhHgyEAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMOwsgAEHEADYCHCAAIAE2AhQgACAeNgIMQQAhHgyDAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMOwsgAEHFADYCHCAAIAE2AhQgACAeNgIMQQAhHgyCAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMPwsgAEHQADYCHCAAIAE2AhQgACAeNgIMQQAhHgyBAQsgAEEANgIcIAAgATYCFCAAQbiIgIAANgIQIABBBzYCDEEAIR4MgAELIB5BP0cNASABQQFqIQELQQUhHgxuC0EAIR4gAEEANgIcIAAgATYCFCAAQdOPgIAANgIQIABBBzYCDAx9CyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw0CyAAQcQANgIcIAAgATYCFCAAIB42AgxBACEeDHwLIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDDQLIABBxQA2AhwgACABNgIUIAAgHjYCDEEAIR4MewsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMOAsgAEHQADYCHCAAIAE2AhQgACAeNgIMQQAhHgx6CyAAKAIEIQEgAEEANgIEAkAgACABICIQpICAgAAiAQ0AICIhAQwxCyAAQcQANgIcIAAgIjYCFCAAIAE2AgxBACEeDHkLIAAoAgQhASAAQQA2AgQCQCAAIAEgIhCkgICAACIBDQAgIiEBDDELIABBxQA2AhwgACAiNgIUIAAgATYCDEEAIR4MeAsgACgCBCEBIABBADYCBAJAIAAgASAiEKSAgIAAIgENACAiIQEMNQsgAEHQADYCHCAAICI2AhQgACABNgIMQQAhHgx3CyAAQQA2AhwgACAiNgIUIABB0IyAgAA2AhAgAEEHNgIMQQAhHgx2CyAAQQA2AhwgACABNgIUIABB0IyAgAA2AhAgAEEHNgIMQQAhHgx1C0EAIR4gAEEANgIcIAAgIjYCFCAAQb+UgIAANgIQIABBBzYCDAx0CyAAQQA2AhwgACAiNgIUIABBv5SAgAA2AhAgAEEHNgIMQQAhHgxzCyAAQQA2AhwgACAiNgIUIABB1I6AgAA2AhAgAEEHNgIMQQAhHgxyCyAAQQA2AhwgACABNgIUIABBwZOAgAA2AhAgAEEGNgIMQQAhHgxxCyAAQQA2AgAgIiAma0EGaiEBQSQhHgsgACAeOgApIAEhAQxOCyAAQQA2AgALQQAhHiAAQQA2AhwgACAINgIUIABBpJSAgAA2AhAgAEEGNgIMDG0LIAAoAgQhEyAAQQA2AgQgACATIB4QpoCAgAAiEw0BIB5BAWohEwtBnQEhHgxbCyAAQaoBNgIcIAAgEzYCDCAAIB5BAWo2AhRBACEeDGoLIAAoAgQhFCAAQQA2AgQgACAUIB4QpoCAgAAiFA0BIB5BAWohFAtBmgEhHgxYCyAAQasBNgIcIAAgFDYCDCAAIB5BAWo2AhRBACEeDGcLIABBADYCHCAAIBU2AhQgAEHzioCAADYCECAAQQ02AgxBACEeDGYLIABBADYCHCAAIBY2AhQgAEHOjYCAADYCECAAQQk2AgxBACEeDGULQQEhHgsgACAeOgArIBdBAWohFgwuCyAAQQA2AhwgACAXNgIUIABBoo2AgAA2AhAgAEEJNgIMQQAhHgxiCyAAQQA2AhwgACAYNgIUIABBxYqAgAA2AhAgAEEJNgIMQQAhHgxhC0EBIR4LIAAgHjoAKiAZQQFqIRgMLAsgAEEANgIcIAAgGTYCFCAAQbiNgIAANgIQIABBCTYCDEEAIR4MXgsgAEEANgIcIAAgGTYCFCAAQbmbgIAANgIQIABBCDYCDCAAQQA2AgBBACEeDF0LIABBADYCAAtBACEeIABBADYCHCAAIAg2AhQgAEGLlICAADYCECAAQQg2AgwMWwsgAEECOgAoIABBADYCACAbIBlrQQNqIRkMNgsgAEECOgAvIAAgCCACEKOAgIAAIh4NAUGvASEeDEkLIAAtAChBf2oOAh4gHwsgHkEVRw0nIABBuwE2AhwgACAINgIUIABBp5KAgAA2AhAgAEEVNgIMQQAhHgxXC0EAIR4MRgtBAiEeDEULQQ4hHgxEC0EQIR4MQwtBHCEeDEILQRQhHgxBC0EWIR4MQAtBFyEeDD8LQRkhHgw+C0EaIR4MPQtBOiEeDDwLQSMhHgw7C0EkIR4MOgtBMCEeDDkLQTshHgw4C0E8IR4MNwtBPiEeDDYLQT8hHgw1C0HAACEeDDQLQcEAIR4MMwtBxQAhHgwyC0HHACEeDDELQcgAIR4MMAtBygAhHgwvC0HfACEeDC4LQeIAIR4MLQtB+wAhHgwsC0GFASEeDCsLQZcBIR4MKgtBmQEhHgwpC0GpASEeDCgLQaQBIR4MJwtBmwEhHgwmC0GeASEeDCULQZ8BIR4MJAtBoQEhHgwjC0GiASEeDCILQacBIR4MIQtBqAEhHgwgCyAAQQA2AhwgACAINgIUIABB5ouAgAA2AhAgAEEQNgIMQQAhHgwvCyAAQQA2AgQgACAdIB0QqoCAgAAiAUUNASAAQS02AhwgACABNgIMIAAgHUEBajYCFEEAIR4MLgsgACgCBCEIIABBADYCBAJAIAAgCCABEKqAgIAAIghFDQAgAEEuNgIcIAAgCDYCDCAAIAFBAWo2AhRBACEeDC4LIAFBAWohAQweCyAdQQFqIQEMHgsgAEEANgIcIAAgHTYCFCAAQbqPgIAANgIQIABBBDYCDEEAIR4MKwsgAEEpNgIcIAAgATYCFCAAIAg2AgxBACEeDCoLIBxBAWohAQweCyAAQQo2AhwgACABNgIUIABBkZKAgAA2AhAgAEEVNgIMQQAhHgwoCyAAQRA2AhwgACABNgIUIABBvpKAgAA2AhAgAEEVNgIMQQAhHgwnCyAAQQA2AhwgACAeNgIUIABBiIyAgAA2AhAgAEEUNgIMQQAhHgwmCyAAQQQ2AhwgACABNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgwlCyAAQQA2AgAgCCAia0EFaiEZC0GjASEeDBMLIABBADYCACAiICZrQQJqIQFB4wAhHgwSCyAAQQA2AgAgAEGBBDsBKCAaIB5rQQJqIQELQdMAIR4MEAsgASEBAkAgAC0AKUEFRw0AQdIAIR4MEAtB0QAhHgwPC0EAIR4gAEEANgIcIABBuo6AgAA2AhAgAEEHNgIMIAAgIkEBajYCFAweCyAAQQA2AgAgJiAja0ECaiEBQTQhHgwNCyABIQELQS0hHgwLCwJAIAEiHSACRg0AA0ACQCAdLQAAQYCigIAAai0AACIBQQFGDQAgAUECRw0DIB1BAWohAQwECyAdQQFqIh0gAkcNAAtBMSEeDBsLQTEhHgwaCyAAQQA6ACwgHSEBDAELQQwhHgwIC0EvIR4MBwsgAUEBaiEBQSIhHgwGC0EfIR4MBQsgAEEANgIAICMgJGtBBGohAUEGIR4LIAAgHjoALCABIQFBDSEeDAMLIABBADYCACAmICNrQQdqIQFBCyEeDAILIABBADYCAAsgAEEAOgAsIBwhAUEJIR4MAAsLQQAhHiAAQQA2AhwgACABNgIUIABBuJGAgAA2AhAgAEEPNgIMDA4LQQAhHiAAQQA2AhwgACABNgIUIABBuJGAgAA2AhAgAEEPNgIMDA0LQQAhHiAAQQA2AhwgACABNgIUIABBlo+AgAA2AhAgAEELNgIMDAwLQQAhHiAAQQA2AhwgACABNgIUIABB8YiAgAA2AhAgAEELNgIMDAsLQQAhHiAAQQA2AhwgACABNgIUIABBiI2AgAA2AhAgAEEKNgIMDAoLIABBAjYCHCAAIAE2AhQgAEHwkoCAADYCECAAQRY2AgxBACEeDAkLQQEhHgwIC0HGACEeIAEiASACRg0HIANBCGogACABIAJB2KaAgABBChC5gICAACADKAIMIQEgAygCCA4DAQcCAAsQv4CAgAAACyAAQQA2AhwgAEGJk4CAADYCECAAQRc2AgwgACABQQFqNgIUQQAhHgwFCyAAQQA2AhwgACABNgIUIABBnpOAgAA2AhAgAEEJNgIMQQAhHgwECwJAIAEiASACRw0AQSEhHgwECwJAIAEtAABBCkYNACAAQQA2AhwgACABNgIUIABB7oyAgAA2AhAgAEEKNgIMQQAhHgwECyAAKAIEIQggAEEANgIEIAAgCCABEKqAgIAAIggNASABQQFqIQELQQAhHiAAQQA2AhwgACABNgIUIABB6pCAgAA2AhAgAEEZNgIMDAILIABBIDYCHCAAIAg2AgwgACABQQFqNgIUQQAhHgwBCwJAIAEiASACRw0AQRQhHgwBCyAAQYmAgIAANgIIIAAgATYCBEETIR4LIANBEGokgICAgAAgHguvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAELuAgIAAC5U3AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKgtICAAA0AQQAQvoCAgABBgLiEgABrIgJB2QBJDQBBACEDAkBBACgC4LeAgAAiBA0AQQBCfzcC7LeAgABBAEKAgISAgIDAADcC5LeAgABBACABQQhqQXBxQdiq1aoFcyIENgLgt4CAAEEAQQA2AvS3gIAAQQBBADYCxLeAgAALQQAgAjYCzLeAgABBAEGAuISAADYCyLeAgABBAEGAuISAADYCmLSAgABBACAENgKstICAAEEAQX82Aqi0gIAAA0AgA0HEtICAAGogA0G4tICAAGoiBDYCACAEIANBsLSAgABqIgU2AgAgA0G8tICAAGogBTYCACADQcy0gIAAaiADQcC0gIAAaiIFNgIAIAUgBDYCACADQdS0gIAAaiADQci0gIAAaiIENgIAIAQgBTYCACADQdC0gIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgLiEgABBeEGAuISAAGtBD3FBAEGAuISAAEEIakEPcRsiA2oiBEEEaiACIANrQUhqIgNBAXI2AgBBAEEAKALwt4CAADYCpLSAgABBACAENgKgtICAAEEAIAM2ApS0gIAAIAJBgLiEgABqQUxqQTg2AgALAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKItICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQAgA0EBcSAEckEBcyIFQQN0IgBBuLSAgABqKAIAIgRBCGohAwJAAkAgBCgCCCICIABBsLSAgABqIgBHDQBBACAGQX4gBXdxNgKItICAAAwBCyAAIAI2AgggAiAANgIMCyAEIAVBA3QiBUEDcjYCBCAEIAVqQQRqIgQgBCgCAEEBcjYCAAwMCyACQQAoApC0gIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgVBA3QiAEG4tICAAGooAgAiBCgCCCIDIABBsLSAgABqIgBHDQBBACAGQX4gBXdxIgY2Aoi0gIAADAELIAAgAzYCCCADIAA2AgwLIARBCGohAyAEIAJBA3I2AgQgBCAFQQN0IgVqIAUgAmsiBTYCACAEIAJqIgAgBUEBcjYCBAJAIAdFDQAgB0EDdiIIQQN0QbC0gIAAaiECQQAoApy0gIAAIQQCQAJAIAZBASAIdCIIcQ0AQQAgBiAIcjYCiLSAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIIC0EAIAA2Apy0gIAAQQAgBTYCkLSAgAAMDAtBACgCjLSAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuLaAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNAEEAKAKYtICAACAAKAIIIgNLGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjLSAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuLaAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0Qbi2gIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApC0gIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AQQAoApi0gIAAIAgoAggiA0saIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApC0gIAAIgMgAkkNAEEAKAKctICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApC0gIAAQQAgADYCnLSAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgAyAEakEEaiIDIAMoAgBBAXI2AgBBAEEANgKctICAAEEAQQA2ApC0gIAACyAEQQhqIQMMCgsCQEEAKAKUtICAACIAIAJNDQBBACgCoLSAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApS0gIAAQQAgBDYCoLSAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4LeAgABFDQBBACgC6LeAgAAhBAwBC0EAQn83Auy3gIAAQQBCgICEgICAwAA3AuS3gIAAQQAgAUEMakFwcUHYqtWqBXM2AuC3gIAAQQBBADYC9LeAgABBAEEANgLEt4CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+LeAgAAMCgsCQEEAKALAt4CAACIDRQ0AAkBBACgCuLeAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL4t4CAAAwKC0EALQDEt4CAAEEEcQ0EAkACQAJAQQAoAqC0gIAAIgRFDQBByLeAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQvoCAgAAiAEF/Rg0FIAghBgJAQQAoAuS3gIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwLeAgAAiA0UNAEEAKAK4t4CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQvoCAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEL6AgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAui3gIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBC+gICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxC+gICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALEt4CAAEEEcjYCxLeAgAALIAhB/v///wdLDQEgCBC+gICAACEAQQAQvoCAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK4t4CAACAGaiIDNgK4t4CAAAJAIANBACgCvLeAgABNDQBBACADNgK8t4CAAAsCQAJAAkACQEEAKAKgtICAACIERQ0AQci3gIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmLSAgAAiA0UNACAAIANPDQELQQAgADYCmLSAgAALQQAhA0EAIAY2Asy3gIAAQQAgADYCyLeAgABBAEF/NgKotICAAEEAQQAoAuC3gIAANgKstICAAEEAQQA2AtS3gIAAA0AgA0HEtICAAGogA0G4tICAAGoiBDYCACAEIANBsLSAgABqIgU2AgAgA0G8tICAAGogBTYCACADQcy0gIAAaiADQcC0gIAAaiIFNgIAIAUgBDYCACADQdS0gIAAaiADQci0gIAAaiIENgIAIAQgBTYCACADQdC0gIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGIANrQUhqIgNBAXI2AgRBAEEAKALwt4CAADYCpLSAgABBACAENgKgtICAAEEAIAM2ApS0gIAAIAYgAGpBTGpBODYCAAwCCyADLQAMQQhxDQAgBSAESw0AIAAgBE0NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApS0gIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALwt4CAADYCpLSAgABBACAFNgKUtICAAEEAIAA2AqC0gIAAIAsgBGpBBGpBODYCAAwBCwJAIABBACgCmLSAgAAiC08NAEEAIAA2Api0gIAAIAAhCwsgACAGaiEIQci3gIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgCEYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByLeAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiBiACQQNyNgIEIAhBeCAIa0EPcUEAIAhBCGpBD3EbaiIIIAYgAmoiAmshBQJAIAQgCEcNAEEAIAI2AqC0gIAAQQBBACgClLSAgAAgBWoiAzYClLSAgAAgAiADQQFyNgIEDAMLAkBBACgCnLSAgAAgCEcNAEEAIAI2Apy0gIAAQQBBACgCkLSAgAAgBWoiAzYCkLSAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAgoAgQiA0EDcUEBRw0AIANBeHEhBwJAAkAgA0H/AUsNACAIKAIIIgQgA0EDdiILQQN0QbC0gIAAaiIARhoCQCAIKAIMIgMgBEcNAEEAQQAoAoi0gIAAQX4gC3dxNgKItICAAAwCCyADIABGGiADIAQ2AgggBCADNgIMDAELIAgoAhghCQJAAkAgCCgCDCIAIAhGDQAgCyAIKAIIIgNLGiAAIAM2AgggAyAANgIMDAELAkAgCEEUaiIDKAIAIgQNACAIQRBqIgMoAgAiBA0AQQAhAAwBCwNAIAMhCyAEIgBBFGoiAygCACIEDQAgAEEQaiEDIAAoAhAiBA0ACyALQQA2AgALIAlFDQACQAJAIAgoAhwiBEECdEG4toCAAGoiAygCACAIRw0AIAMgADYCACAADQFBAEEAKAKMtICAAEF+IAR3cTYCjLSAgAAMAgsgCUEQQRQgCSgCECAIRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgCCgCECIDRQ0AIAAgAzYCECADIAA2AhgLIAgoAhQiA0UNACAAQRRqIAM2AgAgAyAANgIYCyAHIAVqIQUgCCAHaiEICyAIIAgoAgRBfnE2AgQgAiAFaiAFNgIAIAIgBUEBcjYCBAJAIAVB/wFLDQAgBUEDdiIEQQN0QbC0gIAAaiEDAkACQEEAKAKItICAACIFQQEgBHQiBHENAEEAIAUgBHI2Aoi0gIAAIAMhBAwBCyADKAIIIQQLIAQgAjYCDCADIAI2AgggAiADNgIMIAIgBDYCCAwDC0EfIQMCQCAFQf///wdLDQAgBUEIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIAIABBgIAPakEQdkECcSIAdEEPdiADIARyIAByayIDQQF0IAUgA0EVanZBAXFyQRxqIQMLIAIgAzYCHCACQgA3AhAgA0ECdEG4toCAAGohBAJAQQAoAoy0gIAAIgBBASADdCIIcQ0AIAQgAjYCAEEAIAAgCHI2Aoy0gIAAIAIgBDYCGCACIAI2AgggAiACNgIMDAMLIAVBAEEZIANBAXZrIANBH0YbdCEDIAQoAgAhAANAIAAiBCgCBEF4cSAFRg0CIANBHXYhACADQQF0IQMgBCAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBDYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBiADa0FIaiIDQQFyNgIEIAhBTGpBODYCACAEIAVBNyAFa0EPcUEAIAVBSWpBD3EbakFBaiIIIAggBEEQakkbIghBIzYCBEEAQQAoAvC3gIAANgKktICAAEEAIAs2AqC0gIAAQQAgAzYClLSAgAAgCEEQakEAKQLQt4CAADcCACAIQQApAsi3gIAANwIIQQAgCEEIajYC0LeAgABBACAGNgLMt4CAAEEAIAA2Asi3gIAAQQBBADYC1LeAgAAgCEEkaiEDA0AgA0EHNgIAIAUgA0EEaiIDSw0ACyAIIARGDQMgCCAIKAIEQX5xNgIEIAggCCAEayIGNgIAIAQgBkEBcjYCBAJAIAZB/wFLDQAgBkEDdiIFQQN0QbC0gIAAaiEDAkACQEEAKAKItICAACIAQQEgBXQiBXENAEEAIAAgBXI2Aoi0gIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAGQf///wdLDQAgBkEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiADIAVyIAByayIDQQF0IAYgA0EVanZBAXFyQRxqIQMLIARCADcCECAEQRxqIAM2AgAgA0ECdEG4toCAAGohBQJAQQAoAoy0gIAAIgBBASADdCIIcQ0AIAUgBDYCAEEAIAAgCHI2Aoy0gIAAIARBGGogBTYCACAEIAQ2AgggBCAENgIMDAQLIAZBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAANAIAAiBSgCBEF4cSAGRg0DIANBHXYhACADQQF0IQMgBSAAQQRxakEQaiIIKAIAIgANAAsgCCAENgIAIARBGGogBTYCACAEIAQ2AgwgBCAENgIIDAMLIAQoAggiAyACNgIMIAQgAjYCCCACQQA2AhggAiAENgIMIAIgAzYCCAsgBkEIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQRhqQQA2AgAgBCAFNgIMIAQgAzYCCAtBACgClLSAgAAiAyACTQ0AQQAoAqC0gIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKUtICAAEEAIAU2AqC0gIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+LeAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG4toCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKMtICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgAyAIakEEaiIDIAMoAgBBAXI2AgAMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEEDdiIEQQN0QbC0gIAAaiEDAkACQEEAKAKItICAACIFQQEgBHQiBHENAEEAIAUgBHI2Aoi0gIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG4toCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2Aoy0gIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG4toCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjLSAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAMgAGpBBGoiAyADKAIAQQFyNgIADAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBA3YiCEEDdEGwtICAAGohAkEAKAKctICAACEDAkACQEEBIAh0IgggBnENAEEAIAggBnI2Aoi0gIAAIAIhCAwBCyACKAIIIQgLIAggAzYCDCACIAM2AgggAyACNgIMIAMgCDYCCAtBACAFNgKctICAAEEAIAQ2ApC0gIAACyAAQQhqIQMLIAFBEGokgICAgAAgAwsKACAAEL2AgIAAC/ANAQd/AkAgAEUNACAAQXhqIgEgAEF8aigCACICQXhxIgBqIQMCQCACQQFxDQAgAkEDcUUNASABIAEoAgAiAmsiAUEAKAKYtICAACIESQ0BIAIgAGohAAJAQQAoApy0gIAAIAFGDQACQCACQf8BSw0AIAEoAggiBCACQQN2IgVBA3RBsLSAgABqIgZGGgJAIAEoAgwiAiAERw0AQQBBACgCiLSAgABBfiAFd3E2Aoi0gIAADAMLIAIgBkYaIAIgBDYCCCAEIAI2AgwMAgsgASgCGCEHAkACQCABKAIMIgYgAUYNACAEIAEoAggiAksaIAYgAjYCCCACIAY2AgwMAQsCQCABQRRqIgIoAgAiBA0AIAFBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAQJAAkAgASgCHCIEQQJ0Qbi2gIAAaiICKAIAIAFHDQAgAiAGNgIAIAYNAUEAQQAoAoy0gIAAQX4gBHdxNgKMtICAAAwDCyAHQRBBFCAHKAIQIAFGG2ogBjYCACAGRQ0CCyAGIAc2AhgCQCABKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgASgCFCICRQ0BIAZBFGogAjYCACACIAY2AhgMAQsgAygCBCICQQNxQQNHDQAgAyACQX5xNgIEQQAgADYCkLSAgAAgASAAaiAANgIAIAEgAEEBcjYCBA8LIAMgAU0NACADKAIEIgJBAXFFDQACQAJAIAJBAnENAAJAQQAoAqC0gIAAIANHDQBBACABNgKgtICAAEEAQQAoApS0gIAAIABqIgA2ApS0gIAAIAEgAEEBcjYCBCABQQAoApy0gIAARw0DQQBBADYCkLSAgABBAEEANgKctICAAA8LAkBBACgCnLSAgAAgA0cNAEEAIAE2Apy0gIAAQQBBACgCkLSAgAAgAGoiADYCkLSAgAAgASAAQQFyNgIEIAEgAGogADYCAA8LIAJBeHEgAGohAAJAAkAgAkH/AUsNACADKAIIIgQgAkEDdiIFQQN0QbC0gIAAaiIGRhoCQCADKAIMIgIgBEcNAEEAQQAoAoi0gIAAQX4gBXdxNgKItICAAAwCCyACIAZGGiACIAQ2AgggBCACNgIMDAELIAMoAhghBwJAAkAgAygCDCIGIANGDQBBACgCmLSAgAAgAygCCCICSxogBiACNgIIIAIgBjYCDAwBCwJAIANBFGoiAigCACIEDQAgA0EQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0AAkACQCADKAIcIgRBAnRBuLaAgABqIgIoAgAgA0cNACACIAY2AgAgBg0BQQBBACgCjLSAgABBfiAEd3E2Aoy0gIAADAILIAdBEEEUIAcoAhAgA0YbaiAGNgIAIAZFDQELIAYgBzYCGAJAIAMoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyADKAIUIgJFDQAgBkEUaiACNgIAIAIgBjYCGAsgASAAaiAANgIAIAEgAEEBcjYCBCABQQAoApy0gIAARw0BQQAgADYCkLSAgAAPCyADIAJBfnE2AgQgASAAaiAANgIAIAEgAEEBcjYCBAsCQCAAQf8BSw0AIABBA3YiAkEDdEGwtICAAGohAAJAAkBBACgCiLSAgAAiBEEBIAJ0IgJxDQBBACAEIAJyNgKItICAACAAIQIMAQsgACgCCCECCyACIAE2AgwgACABNgIIIAEgADYCDCABIAI2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAFCADcCECABQRxqIAI2AgAgAkECdEG4toCAAGohBAJAAkBBACgCjLSAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjLSAgAAgAUEYaiAENgIAIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABQRhqIAQ2AgAgASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEYakEANgIAIAEgBDYCDCABIAA2AggLQQBBACgCqLSAgABBf2oiAUF/IAEbNgKotICAAAsLTgACQCAADQA/AEEQdA8LAkAgAEH//wNxDQAgAEF/TA0AAkAgAEEQdkAAIgBBf0cNAEEAQTA2Avi3gIAAQX8PCyAAQRB0DwsQv4CAgAAACwQAAAALC44sAQBBgAgLhiwBAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHBhcmFtZXRlcnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AATUtBQ1RJVklUWQBDT1BZAE5PVElGWQBQTEFZAFBVVABDSEVDS09VVABQT1NUAFJFUE9SVABIUEVfSU5WQUxJRF9DT05TVEFOVABHRVQASFBFX1NUUklDVABSRURJUkVDVABDT05ORUNUAEhQRV9JTlZBTElEX1NUQVRVUwBPUFRJT05TAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAEhQRV9JTlZBTElEX1VSTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUAUEFVU0UAUFVSR0UATUVSR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABQUk9QRklORABVTkJJTkQAUkVCSU5EAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQASFBFX1BBVVNFRABIRUFEAEV4cGVjdGVkIEhUVFAvANwLAADPCwAA0woAAJkNAAAQDAAAXQsAAF8NAAC1CwAAugoAAHMLAACcCwAA9QsAAHMMAADvCgAA3AwAAEcMAACHCwAAjwwAAL0MAAAvCwAApwwAAKkNAAAEDQAAFw0AACYLAACJDQAA1QwAAM8KAAC0DQAArgoAAKEKAADnCgAAAgsAAD0NAACQCgAA7AsAAMULAACKDAAAcg0AADQMAABADAAA6gsAAIQNAACCDQAAew0AAMsLAACzCgAAhQoAAKUKAAD+DAAAPgwAAJUKAABODQAATA0AADgMAAD4DAAAQwsAAOULAADjCwAALQ0AAPELAABDDQAANA0AAE4LAACcCgAA8gwAAFQLAAAYCwAACgsAAN4KAABYDQAALgwAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWxvc2VlZXAtYWxpdmUAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWN0aW9uZW50LWxlbmd0aG9ucm94eS1jb25uZWN0aW9uAAAAAAAAAAAAAAAAAAAAcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAAAAAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAADBAAABAQEBAQEBAQEBAQFBAQEBAQEBAQEBAQEAAQABgcEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAACAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv'\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumToMap = void 0;\nfunction enumToMap(obj) {\n const res = {};\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (typeof value === 'number') {\n res[key] = value;\n }\n });\n return res;\n}\nexports.enumToMap = enumToMap;\n//# sourceMappingURL=utils.js.map","'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n","'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n","'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n","'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n","'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n","'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n","'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [...keyValuePairs, key, value], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const responseData = getResponseData(\n typeof data === 'function' ? data({ ...opts, headers: optsHeaders }) : data\n )\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n","'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(…)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '✅' : '❌',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n","'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n","/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n","'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n","const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n","'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n","'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Client = require('./client')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = {}\n\n if (opts.auth) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = new Client(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"async_hooks\");","module.exports = require(\"buffer\");","module.exports = require(\"console\");","module.exports = require(\"crypto\");","module.exports = require(\"diagnostics_channel\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"module\");","module.exports = require(\"net\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"perf_hooks\");","module.exports = require(\"punycode\");","module.exports = require(\"querystring\");","module.exports = require(\"stream\");","module.exports = require(\"stream/web\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"util/types\");","module.exports = require(\"zlib\");","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","const COMMENT_RE = /\\*\\//g;\nconst LB_RE = /\\r?\\n/g;\nconst DOUBLE_QUOTE_RE = /\"/g;\nconst SINGLE_QUOTE_RE = /'/g;\nconst ESC_0_RE = /\\~0/g;\nconst ESC_1_RE = /\\~1/g;\nconst TILDE_RE = /\\~/g;\nconst FS_RE = /\\//g;\nexport function prepareComment(v) {\n const commentsArray = [];\n if (v.title)\n commentsArray.push(`${v.title} `);\n if (v.format)\n commentsArray.push(`Format: ${v.format} `);\n if (v.deprecated)\n commentsArray.push(`@deprecated `);\n const supportedJsDocTags = [\"description\", \"default\", \"example\"];\n for (let index = 0; index < supportedJsDocTags.length; index++) {\n const field = supportedJsDocTags[index];\n const allowEmptyString = field === \"default\" || field === \"example\";\n if (v[field] === undefined) {\n continue;\n }\n if (v[field] === \"\" && !allowEmptyString) {\n continue;\n }\n const serialized = typeof v[field] === \"object\" ? JSON.stringify(v[field], null, 2) : v[field];\n commentsArray.push(`@${field} ${serialized} `);\n }\n if (v.const)\n commentsArray.push(`@constant `);\n if (v.enum) {\n const canBeNull = v.nullable ? `|${null}` : \"\";\n commentsArray.push(`@enum {${v.type}${canBeNull}}`);\n }\n if (!commentsArray.length)\n return;\n return comment(commentsArray.join(\"\\n\"));\n}\nexport function comment(text) {\n const commentText = text.trim().replace(COMMENT_RE, \"*\\\\/\");\n if (commentText.indexOf(\"\\n\") === -1) {\n return `/** ${commentText} */\\n`;\n }\n return `/**\n * ${commentText.replace(LB_RE, \"\\n * \")}\n */\\n`;\n}\nexport function parseRef(ref) {\n if (typeof ref !== \"string\" || !ref.includes(\"#\"))\n return { parts: [] };\n const [url, parts] = ref.split(\"#\");\n return {\n url: url || undefined,\n parts: parts\n .split(\"/\")\n .filter((p) => !!p)\n .map(decodeRef),\n };\n}\nexport function isRef(obj) {\n return !!obj.$ref;\n}\nexport function parseSingleSimpleValue(value, isNodeNullable = false) {\n if (typeof value === \"string\")\n return `'${value.replace(SINGLE_QUOTE_RE, \"\\\\'\")}'`;\n if (typeof value === \"number\" || typeof value === \"boolean\")\n return value;\n if (typeof value === \"object\")\n return JSON.stringify(value);\n if (value === null && !isNodeNullable)\n return \"null\";\n return `${value}`;\n}\nexport function nodeType(obj) {\n if (!obj || typeof obj !== \"object\") {\n return \"unknown\";\n }\n if (obj.$ref) {\n return \"ref\";\n }\n if (obj.const) {\n return \"const\";\n }\n if (Array.isArray(obj.enum) && obj.enum.length) {\n return \"enum\";\n }\n if (obj.type === \"boolean\") {\n return \"boolean\";\n }\n if (obj.type === \"string\" ||\n obj.type === \"binary\" ||\n obj.type === \"byte\" ||\n obj.type === \"date\" ||\n obj.type === \"dateTime\" ||\n obj.type === \"password\") {\n return \"string\";\n }\n if (obj.type === \"integer\" || obj.type === \"number\" || obj.type === \"float\" || obj.type === \"double\") {\n return \"number\";\n }\n if (obj.type === \"array\" || obj.items) {\n return \"array\";\n }\n if (obj.type === \"object\" ||\n obj.hasOwnProperty(\"allOf\") ||\n obj.hasOwnProperty(\"anyOf\") ||\n obj.hasOwnProperty(\"oneOf\") ||\n obj.hasOwnProperty(\"properties\") ||\n obj.hasOwnProperty(\"additionalProperties\")) {\n return \"object\";\n }\n return \"unknown\";\n}\nexport function swaggerVersion(definition) {\n if (\"openapi\" in definition) {\n if (parseInt(definition.openapi, 10) === 3) {\n return 3;\n }\n }\n if (\"swagger\" in definition) {\n if (typeof definition.swagger === \"number\" && Math.round(definition.swagger) === 2) {\n return 2;\n }\n if (parseInt(definition.swagger, 10) === 2) {\n return 2;\n }\n }\n throw new Error(`✘ version missing from schema; specify whether this is OpenAPI v3 or v2 https://swagger.io/specification`);\n}\nexport function decodeRef(ref) {\n return ref.replace(ESC_0_RE, \"~\").replace(ESC_1_RE, \"/\").replace(DOUBLE_QUOTE_RE, '\\\\\"');\n}\nexport function encodeRef(ref) {\n return ref.replace(TILDE_RE, \"~0\").replace(FS_RE, \"~1\");\n}\nexport function tsArrayOf(type) {\n return `(${type})[]`;\n}\nexport function tsTupleOf(types) {\n return `[${types.join(\", \")}]`;\n}\nexport function tsIntersectionOf(types) {\n const typesWithValues = types.filter(Boolean);\n if (!typesWithValues.length)\n return \"undefined\";\n if (typesWithValues.length === 1)\n return typesWithValues[0];\n return `(${typesWithValues.join(\") & (\")})`;\n}\nexport function tsPartial(type) {\n return `Partial<${type}>`;\n}\nexport function tsReadonly(immutable) {\n return immutable ? \"readonly \" : \"\";\n}\nexport function tsUnionOf(types) {\n if (!types.length)\n return \"undefined\";\n if (types.length === 1)\n return `${types[0]}`;\n return `(${types.join(\") | (\")})`;\n}\n//# sourceMappingURL=utils.js.map","import fs from \"fs\";\nimport yaml from \"js-yaml\";\nimport mime from \"mime\";\nimport path from \"path\";\nimport { Readable } from \"stream\";\nimport { request } from \"undici\";\nimport { URL } from \"url\";\nimport { parseRef } from \"./utils.js\";\nconst RED = \"\\u001b[31m\";\nconst RESET = \"\\u001b[0m\";\nexport const VIRTUAL_JSON_URL = `file:///_json`;\nfunction parseSchema(schema, type) {\n if (type === \"YAML\") {\n try {\n return yaml.load(schema);\n }\n catch (err) {\n throw new Error(`YAML: ${err.toString()}`);\n }\n }\n else {\n try {\n return JSON.parse(schema);\n }\n catch (err) {\n throw new Error(`JSON: ${err.toString()}`);\n }\n }\n}\nfunction isFile(url) {\n return url.protocol === \"file:\";\n}\nexport function resolveSchema(url) {\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n return new URL(url);\n }\n const localPath = path.isAbsolute(url) ? new URL(\"\", `file://${url}`) : new URL(url, `file://${process.cwd()}/`);\n if (!fs.existsSync(localPath)) {\n throw new Error(`Could not locate ${url}`);\n }\n else if (fs.statSync(localPath).isDirectory()) {\n throw new Error(`${localPath} is a directory not a file`);\n }\n return localPath;\n}\nfunction parseHttpHeaders(httpHeaders) {\n const finalHeaders = {};\n for (const [k, v] of Object.entries(httpHeaders)) {\n if (typeof v === \"string\") {\n finalHeaders[k] = v;\n }\n else {\n try {\n const stringVal = JSON.stringify(v);\n finalHeaders[k] = stringVal;\n }\n catch (err) {\n console.error(`${RED}Cannot parse key: ${k} into JSON format. Continuing with the next HTTP header that is specified${RESET}`);\n }\n }\n }\n return finalHeaders;\n}\nexport default async function load(schema, options) {\n const urlCache = options.urlCache || new Set();\n const isJSON = schema instanceof URL == false && schema instanceof Readable == false;\n let schemaID = isJSON || schema instanceof Readable ? new URL(VIRTUAL_JSON_URL).href : schema.href;\n const schemas = options.schemas;\n if (isJSON) {\n schemas[schemaID] = schema;\n }\n else {\n if (urlCache.has(schemaID))\n return options.schemas;\n urlCache.add(schemaID);\n let contents = \"\";\n let contentType = \"\";\n const schemaURL = schema instanceof Readable ? new URL(VIRTUAL_JSON_URL) : schema;\n if (schema instanceof Readable) {\n const readable = schema;\n contents = await new Promise((resolve) => {\n readable.resume();\n readable.setEncoding(\"utf8\");\n let content = \"\";\n readable.on(\"data\", (chunk) => {\n content += chunk;\n });\n readable.on(\"end\", () => {\n resolve(content);\n });\n });\n contentType = \"text/yaml\";\n }\n else if (isFile(schemaURL)) {\n contents = fs.readFileSync(schemaURL, \"utf8\");\n contentType = mime.getType(schemaID) || \"\";\n }\n else {\n const headers = {\n \"User-Agent\": \"openapi-typescript\",\n };\n if (options.auth)\n headers.Authorization = options.auth;\n if (options.httpHeaders) {\n const parsedHeaders = parseHttpHeaders(options.httpHeaders);\n for (const [k, v] of Object.entries(parsedHeaders)) {\n headers[k] = v;\n }\n }\n const res = await request(schemaID, { method: options.httpMethod || \"GET\", headers });\n if (Array.isArray(res.headers[\"Content-Type\"]))\n contentType = res.headers[\"Content-Type\"][0];\n else if (res.headers[\"Content-Type\"])\n contentType = res.headers[\"Content-Type\"];\n contents = await res.body.text();\n }\n const isYAML = contentType === \"application/openapi+yaml\" || contentType === \"text/yaml\";\n const isJSON = contentType === \"application/json\" ||\n contentType === \"application/json5\" ||\n contentType === \"application/openapi+json\";\n if (isYAML) {\n schemas[schemaID] = parseSchema(contents, \"YAML\");\n }\n else if (isJSON) {\n schemas[schemaID] = parseSchema(contents, \"JSON\");\n }\n else {\n try {\n schemas[schemaID] = parseSchema(contents, \"JSON\");\n }\n catch (err1) {\n try {\n schemas[schemaID] = parseSchema(contents, \"YAML\");\n }\n catch (err2) {\n throw new Error(`Unknown format${contentType ? `: \"${contentType}\"` : \"\"}. Only YAML or JSON supported.`);\n }\n }\n }\n }\n const refPromises = [];\n schemas[schemaID] = JSON.parse(JSON.stringify(schemas[schemaID]), (k, v) => {\n if (k !== \"$ref\" || typeof v !== \"string\")\n return v;\n const { url: refURL } = parseRef(v);\n if (refURL) {\n const isRemoteURL = refURL.startsWith(\"http://\") || refURL.startsWith(\"https://\");\n if (isJSON && !isRemoteURL) {\n throw new Error(`Can’t load URL \"${refURL}\" from dynamic JSON. Load this schema from a URL instead.`);\n }\n const nextURL = isRemoteURL ? new URL(refURL) : new URL(refURL, schema);\n refPromises.push(load(nextURL, { ...options, urlCache }).then((subschemas) => {\n for (const subschemaURL of Object.keys(subschemas)) {\n schemas[subschemaURL] = subschemas[subschemaURL];\n }\n }));\n return v.replace(refURL, nextURL.href);\n }\n return v;\n });\n await Promise.all(refPromises);\n if (schemaID === options.rootURL.href) {\n for (const subschemaURL of Object.keys(schemas)) {\n schemas[subschemaURL] = JSON.parse(JSON.stringify(schemas[subschemaURL]), (k, v) => {\n if (k !== \"$ref\" || typeof v !== \"string\")\n return v;\n if (!v.includes(\"#\"))\n return v;\n const { url, parts } = parseRef(v);\n if (url && new URL(url).href !== options.rootURL.href) {\n const relativeURL = isFile(new URL(url)) && isFile(options.rootURL)\n ? path.posix.relative(path.posix.dirname(options.rootURL.href), url)\n : url;\n return `external[\"${relativeURL}\"][\"${parts.join('\"][\"')}\"]`;\n }\n if (!url && subschemaURL !== options.rootURL.href) {\n const relativeURL = isFile(new URL(subschemaURL)) && isFile(options.rootURL)\n ? path.posix.relative(path.posix.dirname(options.rootURL.href), subschemaURL)\n : subschemaURL;\n return `external[\"${relativeURL}\"][\"${parts.join('\"][\"')}\"]`;\n }\n if (parts[parts.length - 2] === \"properties\") {\n parts.splice(parts.length - 2, 1);\n }\n const [base, ...rest] = parts;\n return `${base}[\"${rest.join('\"][\"')}\"]`;\n });\n if (subschemaURL !== options.rootURL.href) {\n const relativeURL = isFile(new URL(subschemaURL)) && isFile(options.rootURL)\n ? path.posix.relative(path.posix.dirname(options.rootURL.href), subschemaURL)\n : subschemaURL;\n if (relativeURL !== subschemaURL) {\n schemas[relativeURL] = schemas[subschemaURL];\n delete schemas[subschemaURL];\n }\n }\n }\n }\n return schemas;\n}\n//# sourceMappingURL=load.js.map","import { prepareComment, nodeType, tsArrayOf, tsIntersectionOf, tsPartial, tsReadonly, tsTupleOf, tsUnionOf, parseSingleSimpleValue, } from \"../utils.js\";\nconst EOF_RE = /\\n+$/;\nfunction hasDefaultValue(node) {\n if (node.hasOwnProperty(\"default\"))\n return true;\n return false;\n}\nexport function transformSchemaObjMap(obj, options) {\n let output = \"\";\n for (const k of Object.keys(obj)) {\n const v = obj[k];\n const comment = prepareComment(v);\n if (comment)\n output += comment;\n const readonly = tsReadonly(options.immutableTypes);\n const required = options.required.has(k) || (options.defaultNonNullable && hasDefaultValue(v.schema || v)) ? \"\" : \"?\";\n output += `${readonly}\"${k}\"${required}: `;\n output += transformSchemaObj(v.schema || v, options);\n output += `;\\n`;\n }\n return output.replace(EOF_RE, \"\\n\");\n}\nexport function addRequiredProps(properties, required) {\n const missingRequired = [...required].filter((r) => !(r in properties));\n if (missingRequired.length == 0) {\n return [];\n }\n let output = \"\";\n for (const r of missingRequired) {\n output += `${r}: unknown;\\n`;\n }\n return [`{\\n${output}}`];\n}\nexport function transformAnyOf(anyOf, options) {\n const schemas = anyOf.filter((s) => {\n if (Object.keys(s).length > 1)\n return true;\n if (s.required)\n return false;\n return true;\n });\n if (schemas.length === 0) {\n return \"\";\n }\n return tsIntersectionOf(schemas.map((s) => tsPartial(transformSchemaObj(s, options))));\n}\nexport function transformOneOf(oneOf, options) {\n return tsUnionOf(oneOf.map((value) => transformSchemaObj(value, options)));\n}\nexport function transformSchemaObj(node, options) {\n var _a;\n const readonly = tsReadonly(options.immutableTypes);\n let output = \"\";\n const overriddenType = options.formatter && options.formatter(node);\n if (node.nullable) {\n output += \"(\";\n }\n if (overriddenType) {\n output += overriddenType;\n }\n else {\n switch (nodeType(node)) {\n case \"ref\": {\n output += node.$ref;\n break;\n }\n case \"string\":\n case \"number\":\n case \"boolean\":\n case \"unknown\": {\n output += nodeType(node);\n break;\n }\n case \"const\": {\n output += parseSingleSimpleValue(node.const, node.nullable);\n break;\n }\n case \"enum\": {\n const items = [];\n node.enum.forEach((item) => {\n const value = parseSingleSimpleValue(item, node.nullable);\n items.push(value);\n });\n output += tsUnionOf(items);\n break;\n }\n case \"object\": {\n const isAnyOfOrOneOfOrAllOf = \"anyOf\" in node || \"oneOf\" in node || \"allOf\" in node;\n const missingRequired = addRequiredProps(node.properties || {}, node.required || []);\n if (!isAnyOfOrOneOfOrAllOf &&\n (!node.properties || !Object.keys(node.properties).length) &&\n !node.additionalProperties) {\n const emptyObj = `{ ${readonly}[key: string]: unknown }`;\n output += tsIntersectionOf([emptyObj, ...missingRequired]);\n break;\n }\n let properties = transformSchemaObjMap(node.properties || {}, {\n ...options,\n required: new Set(node.required || []),\n });\n let additionalProperties;\n if (node.additionalProperties ||\n (node.additionalProperties === undefined && options.additionalProperties && options.version === 3)) {\n if (((_a = node.additionalProperties) !== null && _a !== void 0 ? _a : true) === true || Object.keys(node.additionalProperties).length === 0) {\n additionalProperties = `{ ${readonly}[key: string]: unknown }`;\n }\n else if (typeof node.additionalProperties === \"object\") {\n const oneOf = node.additionalProperties.oneOf || undefined;\n const anyOf = node.additionalProperties.anyOf || undefined;\n if (oneOf) {\n additionalProperties = `{ ${readonly}[key: string]: ${transformOneOf(oneOf, options)}; }`;\n }\n else if (anyOf) {\n additionalProperties = `{ ${readonly}[key: string]: ${transformAnyOf(anyOf, options)}; }`;\n }\n else {\n additionalProperties = `{ ${readonly}[key: string]: ${transformSchemaObj(node.additionalProperties, options) || \"unknown\"}; }`;\n }\n }\n }\n output += tsIntersectionOf([\n ...(node.allOf ? node.allOf.map((node) => transformSchemaObj(node, options)) : []),\n ...(node.anyOf ? [transformAnyOf(node.anyOf, options)] : []),\n ...(node.oneOf ? [transformOneOf(node.oneOf, options)] : []),\n ...(properties ? [`{\\n${properties}\\n}`] : []),\n ...missingRequired,\n ...(additionalProperties ? [additionalProperties] : []),\n ]);\n break;\n }\n case \"array\": {\n if (Array.isArray(node.items)) {\n output += `${readonly}${tsTupleOf(node.items.map((node) => transformSchemaObj(node, options)))}`;\n }\n else {\n const minItems = Number.isInteger(node.minItems) && node.minItems >= 0 ? node.minItems : 0;\n const maxItems = Number.isInteger(node.maxItems) && node.maxItems >= 0 && minItems <= node.maxItems\n ? node.maxItems\n : undefined;\n const estimateCodeSize = maxItems === undefined ? minItems : (maxItems * (maxItems + 1) - minItems * (minItems - 1)) / 2;\n const items = node.items ? transformSchemaObj(node.items, options) : \"unknown\";\n if ((minItems !== 0 || maxItems !== undefined) && options.supportArrayLength && estimateCodeSize < 30) {\n if (maxItems === undefined) {\n output += `${readonly}${tsTupleOf([\n ...Array.from({ length: minItems }).map(() => items),\n `...${tsArrayOf(items)}`,\n ])}`;\n }\n else {\n output += tsUnionOf(Array.from({ length: maxItems - minItems + 1 })\n .map((_, i) => i + minItems)\n .map((n) => `${readonly}${tsTupleOf(Array.from({ length: n }).map(() => items))}`));\n }\n }\n else {\n output += `${readonly}${tsArrayOf(items)}`;\n }\n }\n break;\n }\n }\n }\n if (node.nullable) {\n output += \") | null\";\n }\n return output;\n}\n//# sourceMappingURL=schema.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nexport function transformHeaderObjMap(headerMap, options) {\n let output = \"\";\n for (const k of Object.keys(headerMap)) {\n const v = headerMap[k];\n if (!v.schema)\n continue;\n if (v.description)\n output += comment(v.description);\n const readonly = tsReadonly(options.immutableTypes);\n const required = v.required ? \"\" : \"?\";\n output += ` ${readonly}\"${k}\"${required}: ${transformSchemaObj(v.schema, options)}\\n`;\n }\n return output;\n}\n//# sourceMappingURL=headers.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nconst PARAM_END_RE = /\"\\]$/;\nexport function transformParametersArray(parameters, options) {\n const { globalParameters = {}, ...ctx } = options;\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n let mappedParams = {};\n for (const paramObj of parameters) {\n if (paramObj.$ref && globalParameters) {\n const paramName = paramObj.$ref.split('[\"').pop().replace(PARAM_END_RE, \"\");\n if (globalParameters[paramName]) {\n const reference = globalParameters[paramName];\n if (!mappedParams[reference.in])\n mappedParams[reference.in] = {};\n switch (ctx.version) {\n case 3: {\n mappedParams[reference.in][reference.name || paramName] = {\n ...reference,\n schema: { $ref: paramObj.$ref },\n };\n break;\n }\n case 2: {\n mappedParams[reference.in][reference.name || paramName] = {\n ...reference,\n $ref: paramObj.$ref,\n };\n break;\n }\n }\n }\n continue;\n }\n if (!paramObj.in || !paramObj.name)\n continue;\n if (!mappedParams[paramObj.in])\n mappedParams[paramObj.in] = {};\n mappedParams[paramObj.in][paramObj.name] = paramObj;\n }\n for (const [paramIn, paramGroup] of Object.entries(mappedParams)) {\n output += ` ${readonly}${paramIn}: {\\n`;\n for (const [paramName, paramObj] of Object.entries(paramGroup)) {\n let paramComment = \"\";\n if (paramObj.deprecated)\n paramComment += `@deprecated `;\n if (paramObj.description)\n paramComment += paramObj.description;\n if (paramComment)\n output += comment(paramComment);\n const required = paramObj.required ? `` : `?`;\n let paramType = ``;\n switch (ctx.version) {\n case 3: {\n paramType = paramObj.schema\n ? transformSchemaObj(paramObj.schema, { ...ctx, required: new Set() })\n : \"unknown\";\n break;\n }\n case 2: {\n if (paramObj.in === \"body\" && paramObj.schema) {\n paramType = transformSchemaObj(paramObj.schema, { ...ctx, required: new Set() });\n }\n else if (paramObj.type) {\n paramType = transformSchemaObj(paramObj, { ...ctx, required: new Set() });\n }\n else {\n paramType = \"unknown\";\n }\n break;\n }\n }\n output += ` ${readonly}\"${paramName}\"${required}: ${paramType};\\n`;\n }\n output += ` }\\n`;\n }\n return output;\n}\n//# sourceMappingURL=parameters.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nexport function transformRequestBodies(requestBodies, ctx) {\n let output = \"\";\n for (const [name, requestBody] of Object.entries(requestBodies)) {\n if (requestBody && requestBody.description)\n output += ` ${comment(requestBody.description)}`;\n output += ` \"${name}\": {\\n ${transformRequestBodyObj(requestBody, ctx)}\\n }\\n`;\n }\n return output;\n}\nexport function transformRequestBodyObj(requestBody, ctx) {\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n if (requestBody.content && Object.keys(requestBody.content).length) {\n output += ` ${readonly}content: {\\n`;\n for (const [k, v] of Object.entries(requestBody.content)) {\n output += ` ${readonly}\"${k}\": ${transformSchemaObj(v.schema, { ...ctx, required: new Set() })};\\n`;\n }\n output += ` }\\n`;\n }\n else {\n output += ` unknown;\\n`;\n }\n return output;\n}\n//# sourceMappingURL=request.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformHeaderObjMap } from \"./headers.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nexport function transformResponsesObj(responsesObj, ctx) {\n const readonly = tsReadonly(ctx.immutableTypes);\n const resType = (res) => {\n if (tsReadonly(ctx.contentNever)) {\n return \"never\";\n }\n else {\n return res === 204 || (res >= 300 && res < 400) ? \"never\" : \"unknown\";\n }\n };\n let output = \"\";\n for (const httpStatusCode of Object.keys(responsesObj)) {\n const statusCode = Number(httpStatusCode) || `\"${httpStatusCode}\"`;\n const response = responsesObj[httpStatusCode];\n if (response.description)\n output += comment(response.description);\n if (response.$ref) {\n output += ` ${readonly}${statusCode}: ${response.$ref};\\n`;\n continue;\n }\n if ((!response.content && !response.schema) || (response.content && !Object.keys(response.content).length)) {\n output += ` ${readonly}${statusCode}: ${resType(statusCode)};\\n`;\n continue;\n }\n output += ` ${readonly}${statusCode}: {\\n`;\n if (response.headers && Object.keys(response.headers).length) {\n if (response.headers.$ref) {\n output += ` ${readonly}headers: ${response.headers.$ref};\\n`;\n }\n else {\n output += ` ${readonly}headers: {\\n ${transformHeaderObjMap(response.headers, {\n ...ctx,\n required: new Set(),\n })}\\n }\\n`;\n }\n }\n switch (ctx.version) {\n case 3: {\n output += ` ${readonly}content: {\\n`;\n for (const contentType of Object.keys(response.content)) {\n const contentResponse = response.content[contentType];\n const responseType = contentResponse && (contentResponse === null || contentResponse === void 0 ? void 0 : contentResponse.schema)\n ? transformSchemaObj(contentResponse.schema, { ...ctx, required: new Set() })\n : \"unknown\";\n output += ` ${readonly}\"${contentType}\": ${responseType};\\n`;\n }\n output += ` }\\n`;\n break;\n }\n case 2: {\n output += ` ${readonly} schema: ${transformSchemaObj(response.schema, {\n ...ctx,\n required: new Set(),\n })};\\n`;\n break;\n }\n }\n output += ` }\\n`;\n }\n return output;\n}\n//# sourceMappingURL=responses.js.map","import { comment, isRef, tsReadonly } from \"../utils.js\";\nimport { transformParametersArray } from \"./parameters.js\";\nimport { transformRequestBodyObj } from \"./request.js\";\nimport { transformResponsesObj } from \"./responses.js\";\nexport function transformOperationObj(operation, options) {\n const { pathItem = {}, globalParameters, ...ctx } = options;\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n if (operation.parameters || pathItem.parameters) {\n const parameters = (pathItem.parameters || []).concat(operation.parameters || []);\n output += ` ${readonly}parameters: {\\n ${transformParametersArray(parameters, {\n ...ctx,\n globalParameters,\n })}\\n }\\n`;\n }\n if (operation.responses) {\n output += ` ${readonly}responses: {\\n ${transformResponsesObj(operation.responses, ctx)}\\n }\\n`;\n }\n if (operation.requestBody) {\n if (isRef(operation.requestBody)) {\n output += ` ${readonly}requestBody: ${operation.requestBody.$ref};\\n`;\n }\n else {\n if (operation.requestBody.description)\n output += comment(operation.requestBody.description);\n output += ` ${readonly}requestBody: {\\n ${transformRequestBodyObj(operation.requestBody, ctx)} }\\n`;\n }\n }\n return output;\n}\n//# sourceMappingURL=operation.js.map","import { comment, tsReadonly, nodeType } from \"../utils.js\";\nimport { transformOperationObj } from \"./operation.js\";\nimport { transformParametersArray } from \"./parameters.js\";\nconst httpMethods = [\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"];\nfunction replacePathParamsWithTypes(url, params) {\n let result = url;\n params.forEach((param) => {\n if (\"in\" in param && param.in === \"path\") {\n if (param.schema && \"type\" in param.schema) {\n result = result.replace(`{${param.name}}`, `\\${${nodeType(param.schema)}}`);\n }\n else if (param.type) {\n result = result.replace(`{${param.name}}`, `\\${${nodeType({ type: param.type })}}`);\n }\n }\n });\n return result;\n}\nexport function transformPathsObj(paths, options) {\n const { globalParameters, operations, ...ctx } = options;\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n for (const [url, pathItem] of Object.entries(paths)) {\n if (pathItem.description)\n output += comment(pathItem.description);\n if (pathItem.$ref) {\n output += ` ${readonly}\"${url}\": ${pathItem.$ref};\\n`;\n continue;\n }\n let key = `\"${url}\"`;\n if (url.includes(\"{\") && url.includes(\"}\") && ctx.pathParamsAsTypes) {\n let params;\n if (pathItem.parameters) {\n params = pathItem.parameters;\n }\n else {\n const firstMethodParams = Object.values(pathItem)\n .map((props) => typeof props === \"object\" && props.parameters)\n .filter(Boolean)[0];\n if (firstMethodParams) {\n params = firstMethodParams;\n }\n }\n key = `[key: \\`${replacePathParamsWithTypes(url, params)}\\`]`;\n }\n output += ` ${readonly}${key}: {\\n`;\n for (const method of httpMethods) {\n const operation = pathItem[method];\n if (!operation)\n continue;\n if (operation.description)\n output += comment(operation.description);\n if (operation.operationId) {\n operations[operation.operationId] = { operation, pathItem };\n const namespace = ctx.namespace ? `external[\"${ctx.namespace}\"][\"operations\"]` : `operations`;\n output += ` ${readonly}\"${method}\": ${namespace}[\"${operation.operationId}\"];\\n`;\n }\n else {\n output += ` ${readonly}\"${method}\": {\\n ${transformOperationObj(operation, {\n ...ctx,\n globalParameters,\n pathItem,\n })}\\n }\\n`;\n }\n }\n if (pathItem.parameters) {\n output += ` ${readonly}parameters: {\\n ${transformParametersArray(pathItem.parameters, {\n ...ctx,\n globalParameters,\n })}\\n }\\n`;\n }\n output += ` }\\n`;\n }\n return output;\n}\nexport function makeApiPathsEnum(paths) {\n let output = \"export enum ApiPaths {\\n\";\n for (const [url, pathItem] of Object.entries(paths)) {\n for (const [method, operation] of Object.entries(pathItem)) {\n if (![\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"].includes(method))\n continue;\n let pathName;\n if (operation.operationId)\n pathName = operation.operationId;\n else {\n pathName = (method + url)\n .split(\"/\")\n .map((part) => {\n const capitalised = part.charAt(0).toUpperCase() + part.slice(1);\n return capitalised.replace(/{.*}|:.*|[^a-zA-Z\\d_]+/, \"\");\n })\n .join(\"\");\n }\n const adaptedUrl = url.replace(/{(\\w+)}/g, \":$1\");\n output += ` ${pathName} = \"${adaptedUrl}\",\\n`;\n }\n }\n output += \"\\n}\";\n return output;\n}\n//# sourceMappingURL=paths.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformHeaderObjMap } from \"./headers.js\";\nimport { transformOperationObj } from \"./operation.js\";\nimport { transformPathsObj } from \"./paths.js\";\nimport { transformRequestBodies } from \"./request.js\";\nimport { transformResponsesObj } from \"./responses.js\";\nimport { transformSchemaObjMap } from \"./schema.js\";\nexport function transformAll(schema, ctx) {\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = {};\n let operations = {};\n if (ctx.rawSchema) {\n const required = new Set(Object.keys(schema));\n switch (ctx.version) {\n case 2: {\n output.definitions = transformSchemaObjMap(schema, { ...ctx, required });\n return output;\n }\n case 3: {\n output.schemas = transformSchemaObjMap(schema, { ...ctx, required });\n return output;\n }\n }\n }\n output.paths = \"\";\n if (schema.paths) {\n output.paths += transformPathsObj(schema.paths, {\n ...ctx,\n globalParameters: (schema.components && schema.components.parameters) || schema.parameters,\n operations,\n });\n }\n switch (ctx.version) {\n case 2: {\n if (schema.definitions) {\n output.definitions = transformSchemaObjMap(schema.definitions, {\n ...ctx,\n required: new Set(Object.keys(schema.definitions)),\n });\n }\n if (schema.parameters) {\n output.parameters = transformSchemaObjMap(schema.parameters, {\n ...ctx,\n required: new Set(Object.keys(schema.parameters)),\n });\n }\n if (schema.responses) {\n output.responses = transformResponsesObj(schema.responses, ctx);\n }\n break;\n }\n case 3: {\n output.components = \"\";\n if (schema.components) {\n if (schema.components.schemas) {\n output.components += ` ${readonly}schemas: {\\n ${transformSchemaObjMap(schema.components.schemas, {\n ...ctx,\n required: new Set(Object.keys(schema.components.schemas)),\n })}\\n }\\n`;\n }\n if (schema.components.responses) {\n output.components += ` ${readonly}responses: {\\n ${transformResponsesObj(schema.components.responses, ctx)}\\n }\\n`;\n }\n if (schema.components.parameters) {\n output.components += ` ${readonly}parameters: {\\n ${transformSchemaObjMap(schema.components.parameters, {\n ...ctx,\n required: new Set(Object.keys(schema.components.parameters)),\n })}\\n }\\n`;\n }\n if (schema.components.requestBodies) {\n output.components += ` ${readonly}requestBodies: {\\n ${transformRequestBodies(schema.components.requestBodies, ctx)}\\n }\\n`;\n }\n if (schema.components.headers) {\n output.components += ` ${readonly}headers: {\\n ${transformHeaderObjMap(schema.components.headers, {\n ...ctx,\n required: new Set(),\n })}\\n }\\n`;\n }\n }\n break;\n }\n }\n output.operations = \"\";\n if (Object.keys(operations).length) {\n for (const id of Object.keys(operations)) {\n const { operation, pathItem } = operations[id];\n if (operation.description)\n output.operations += comment(operation.description);\n output.operations += ` ${readonly}\"${id}\": {\\n ${transformOperationObj(operation, {\n ...ctx,\n pathItem,\n globalParameters: (schema.components && schema.components.parameters) || schema.parameters,\n })}\\n }\\n`;\n }\n }\n for (const k of Object.keys(output)) {\n if (typeof output[k] === \"string\") {\n output[k] = output[k].trim();\n }\n }\n return output;\n}\n//# sourceMappingURL=index.js.map","import path from \"path\";\nimport fs from \"fs\";\nimport prettier from \"prettier\";\nimport parserTypescript from \"prettier/parser-typescript.js\";\nimport { URL } from \"url\";\nimport load, { resolveSchema, VIRTUAL_JSON_URL } from \"./load.js\";\nimport { swaggerVersion } from \"./utils.js\";\nimport { transformAll } from \"./transform/index.js\";\nimport { makeApiPathsEnum } from \"./transform/paths.js\";\nexport * from \"./types.js\";\nexport const COMMENT_HEADER = `/**\n * This file was auto-generated by openapi-typescript.\n * Do not make direct changes to the file.\n */\n\n\n`;\nasync function openapiTS(schema, options = {}) {\n const ctx = {\n additionalProperties: options.additionalProperties || false,\n auth: options.auth,\n commentHeader: typeof options.commentHeader === \"string\" ? options.commentHeader : COMMENT_HEADER,\n defaultNonNullable: options.defaultNonNullable || false,\n formatter: options && typeof options.formatter === \"function\" ? options.formatter : undefined,\n immutableTypes: options.immutableTypes || false,\n contentNever: options.contentNever || false,\n makePathsEnum: options.makePathsEnum || false,\n pathParamsAsTypes: options.pathParamsAsTypes,\n rawSchema: options.rawSchema || false,\n supportArrayLength: options.supportArrayLength,\n version: options.version || 3,\n };\n const isInlineSchema = typeof schema != \"string\" && schema instanceof URL == false;\n let rootSchema = {};\n let external = {};\n const allSchemas = {};\n const schemaURL = typeof schema === \"string\" ? resolveSchema(schema) : schema;\n await load(schemaURL, {\n ...ctx,\n schemas: allSchemas,\n rootURL: isInlineSchema ? new URL(VIRTUAL_JSON_URL) : schemaURL,\n httpHeaders: options.httpHeaders,\n httpMethod: options.httpMethod,\n });\n for (const k of Object.keys(allSchemas)) {\n const rootSchemaID = isInlineSchema ? VIRTUAL_JSON_URL : schemaURL.href;\n if (k === rootSchemaID) {\n rootSchema = allSchemas[k];\n }\n else {\n external[k] = allSchemas[k];\n }\n }\n let output = ctx.commentHeader;\n if (!(options === null || options === void 0 ? void 0 : options.version) && !ctx.rawSchema)\n ctx.version = swaggerVersion(rootSchema);\n const rootTypes = transformAll(rootSchema, { ...ctx });\n const exportedKind = options.exportType === true ? \"type\" : \"interface\";\n const exportedKindOperator = options.exportType === true ? \" =\" : \"\";\n const exportedKindSemicolon = options.exportType === true ? \";\" : \"\";\n for (const k of Object.keys(rootTypes)) {\n if (typeof rootTypes[k] === \"string\") {\n output += `export ${exportedKind} ${k}${exportedKindOperator} {\\n ${rootTypes[k]}\\n}\\n\\n`;\n }\n }\n output += `export ${exportedKind} external${exportedKindOperator} {\\n`;\n const externalKeys = Object.keys(external);\n externalKeys.sort((a, b) => a.localeCompare(b, \"en\", { numeric: true }));\n for (const subschemaURL of externalKeys) {\n output += ` \"${subschemaURL}\": {\\n`;\n const subschemaTypes = transformAll(external[subschemaURL], { ...ctx, namespace: subschemaURL });\n for (const k of Object.keys(subschemaTypes)) {\n output += ` \"${k}\": {\\n ${subschemaTypes[k]}\\n }\\n`;\n }\n output += ` }\\n`;\n }\n output += `}${exportedKindSemicolon}\\n\\n`;\n if (ctx.makePathsEnum && rootSchema.paths)\n output += makeApiPathsEnum(rootSchema.paths);\n let prettierOptions = {\n parser: \"typescript\",\n plugins: [parserTypescript],\n };\n if (options && options.prettierConfig) {\n try {\n const prettierConfigFile = path.resolve(process.cwd(), options.prettierConfig);\n await fs.promises.access(prettierConfigFile, fs.constants.F_OK);\n const userOptions = await prettier.resolveConfig(prettierConfigFile);\n prettierOptions = {\n ...(userOptions || {}),\n ...prettierOptions,\n plugins: [...prettierOptions.plugins, ...((userOptions && userOptions.plugins) || [])],\n };\n }\n catch (err) {\n console.error(`❌ ${err}`);\n process.exit(1);\n }\n }\n return prettier.format(output, prettierOptions);\n}\nexport default openapiTS;\n//# sourceMappingURL=index.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4748);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5oBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7VA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;;;;;;;;ACHA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/2CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4xMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4kSA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAw7EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoilBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACp0oCA;AACA;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA;;;;;;;;;AASA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1QA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChsDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5+DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACt6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9xBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrRA;;;;;;;;ACAA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1wHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;AEDA;AACA;AACA;AACA","sources":[".././lib/create-openapi-types.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@octokit/request/node_modules/node-fetch/lib/index.js",".././node_modules/@octokit/request/node_modules/tr46/index.js",".././node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/busboy/lib/index.js",".././node_modules/busboy/lib/types/multipart.js",".././node_modules/busboy/lib/types/urlencoded.js",".././node_modules/busboy/lib/utils.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/is-plain-object/dist/is-plain-object.js",".././node_modules/mime/Mime.js",".././node_modules/mime/index.js",".././node_modules/mime/types/other.js",".././node_modules/mime/types/standard.js",".././node_modules/once/once.js",".././node_modules/openapi-typescript/node_modules/prettier/doc.js",".././node_modules/openapi-typescript/node_modules/prettier/index.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-angular.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-babel.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-espree.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-flow.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-glimmer.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-graphql.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-html.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-markdown.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-meriyah.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-postcss.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-typescript.js",".././node_modules/openapi-typescript/node_modules/prettier/parser-yaml.js",".././node_modules/openapi-typescript/node_modules/prettier/third-party.js",".././node_modules/streamsearch/lib/sbmh.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/undici/index.js",".././node_modules/undici/lib/agent.js",".././node_modules/undici/lib/api/abort-signal.js",".././node_modules/undici/lib/api/api-connect.js",".././node_modules/undici/lib/api/api-pipeline.js",".././node_modules/undici/lib/api/api-request.js",".././node_modules/undici/lib/api/api-stream.js",".././node_modules/undici/lib/api/api-upgrade.js",".././node_modules/undici/lib/api/index.js",".././node_modules/undici/lib/api/readable.js",".././node_modules/undici/lib/balanced-pool.js",".././node_modules/undici/lib/client.js",".././node_modules/undici/lib/compat/dispatcher-weakref.js",".././node_modules/undici/lib/core/connect.js",".././node_modules/undici/lib/core/errors.js",".././node_modules/undici/lib/core/request.js",".././node_modules/undici/lib/core/symbols.js",".././node_modules/undici/lib/core/util.js",".././node_modules/undici/lib/dispatcher-base.js",".././node_modules/undici/lib/dispatcher.js",".././node_modules/undici/lib/fetch/body.js",".././node_modules/undici/lib/fetch/constants.js",".././node_modules/undici/lib/fetch/dataURL.js",".././node_modules/undici/lib/fetch/file.js",".././node_modules/undici/lib/fetch/formdata.js",".././node_modules/undici/lib/fetch/global.js",".././node_modules/undici/lib/fetch/headers.js",".././node_modules/undici/lib/fetch/index.js",".././node_modules/undici/lib/fetch/request.js",".././node_modules/undici/lib/fetch/response.js",".././node_modules/undici/lib/fetch/symbols.js",".././node_modules/undici/lib/fetch/util.js",".././node_modules/undici/lib/fetch/webidl.js",".././node_modules/undici/lib/global.js",".././node_modules/undici/lib/handler/DecoratorHandler.js",".././node_modules/undici/lib/handler/RedirectHandler.js",".././node_modules/undici/lib/interceptor/redirectInterceptor.js",".././node_modules/undici/lib/llhttp/constants.js",".././node_modules/undici/lib/llhttp/llhttp.wasm.js",".././node_modules/undici/lib/llhttp/llhttp_simd.wasm.js",".././node_modules/undici/lib/llhttp/utils.js",".././node_modules/undici/lib/mock/mock-agent.js",".././node_modules/undici/lib/mock/mock-client.js",".././node_modules/undici/lib/mock/mock-errors.js",".././node_modules/undici/lib/mock/mock-interceptor.js",".././node_modules/undici/lib/mock/mock-pool.js",".././node_modules/undici/lib/mock/mock-symbols.js",".././node_modules/undici/lib/mock/mock-utils.js",".././node_modules/undici/lib/mock/pending-interceptors-formatter.js",".././node_modules/undici/lib/mock/pluralizer.js",".././node_modules/undici/lib/node/fixed-queue.js",".././node_modules/undici/lib/pool-base.js",".././node_modules/undici/lib/pool-stats.js",".././node_modules/undici/lib/pool.js",".././node_modules/undici/lib/proxy-agent.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/wrappy/wrappy.js",".././node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../external node-commonjs \"assert\"","../external node-commonjs \"async_hooks\"","../external node-commonjs \"buffer\"","../external node-commonjs \"console\"","../external node-commonjs \"crypto\"","../external node-commonjs \"diagnostics_channel\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"module\"","../external node-commonjs \"net\"","../external node-commonjs \"node:fs/promises\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"perf_hooks\"","../external node-commonjs \"punycode\"","../external node-commonjs \"querystring\"","../external node-commonjs \"stream\"","../external node-commonjs \"stream/web\"","../external node-commonjs \"tls\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"util/types\"","../external node-commonjs \"zlib\"",".././node_modules/js-yaml/dist/js-yaml.mjs",".././node_modules/openapi-typescript/dist/utils.js",".././node_modules/openapi-typescript/dist/load.js",".././node_modules/openapi-typescript/dist/transform/schema.js",".././node_modules/openapi-typescript/dist/transform/headers.js",".././node_modules/openapi-typescript/dist/transform/parameters.js",".././node_modules/openapi-typescript/dist/transform/request.js",".././node_modules/openapi-typescript/dist/transform/responses.js",".././node_modules/openapi-typescript/dist/transform/operation.js",".././node_modules/openapi-typescript/dist/transform/paths.js",".././node_modules/openapi-typescript/dist/transform/index.js",".././node_modules/openapi-typescript/dist/index.js","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/compat","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst promises_1 = __importDefault(require(\"node:fs/promises\"));\nconst util_1 = require(\"util\");\nconst openapi_typescript_1 = __importDefault(require(\"openapi-typescript\"));\nasync function run() {\n // async function run() {\n const repo = core.getInput('repo') || github.context.repo.repo;\n const path = core.getInput('spec-path');\n const outputPath = core.getInput('def-path');\n const token = core.getInput('github-token');\n // const repo = process.env.REPO || 'api-deux'\n // const path = process.env.SPEC_PATH || 'openapi/api.json'\n // const outputPath = process.env.DEF_PATH || 'openapi-types.ts'\n // const token = process.env.GITHUB_TOKEN\n try {\n const octokit = github.getOctokit(token || '');\n const response = await octokit.rest.repos.getContent({\n owner: 'KittyCAD',\n repo,\n path,\n ref: 'main'\n });\n const specRaw = Buffer.from(response?.data?.content, \n // (response?.data)?.content,\n 'base64').toString('utf8');\n const spec = JSON.parse(specRaw);\n const output = await (0, openapi_typescript_1.default)(spec);\n await promises_1.default.writeFile(outputPath, output);\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nconst { parseContentType } = require('./utils.js');\n\nfunction getInstance(cfg) {\n const headers = cfg.headers;\n const conType = parseContentType(headers['content-type']);\n if (!conType)\n throw new Error('Malformed content type');\n\n for (const type of TYPES) {\n const matched = type.detect(conType);\n if (!matched)\n continue;\n\n const instanceCfg = {\n limits: cfg.limits,\n headers,\n conType,\n highWaterMark: undefined,\n fileHwm: undefined,\n defCharset: undefined,\n defParamCharset: undefined,\n preservePath: false,\n };\n if (cfg.highWaterMark)\n instanceCfg.highWaterMark = cfg.highWaterMark;\n if (cfg.fileHwm)\n instanceCfg.fileHwm = cfg.fileHwm;\n instanceCfg.defCharset = cfg.defCharset;\n instanceCfg.defParamCharset = cfg.defParamCharset;\n instanceCfg.preservePath = cfg.preservePath;\n return new type(instanceCfg);\n }\n\n throw new Error(`Unsupported content type: ${headers['content-type']}`);\n}\n\n// Note: types are explicitly listed here for easier bundling\n// See: https://github.com/mscdex/busboy/issues/121\nconst TYPES = [\n require('./types/multipart'),\n require('./types/urlencoded'),\n].filter(function(typemod) { return typeof typemod.detect === 'function'; });\n\nmodule.exports = (cfg) => {\n if (typeof cfg !== 'object' || cfg === null)\n cfg = {};\n\n if (typeof cfg.headers !== 'object'\n || cfg.headers === null\n || typeof cfg.headers['content-type'] !== 'string') {\n throw new Error('Missing Content-Type');\n }\n\n return getInstance(cfg);\n};\n","'use strict';\n\nconst { Readable, Writable } = require('stream');\n\nconst StreamSearch = require('streamsearch');\n\nconst {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n} = require('../utils.js');\n\nconst BUF_CRLF = Buffer.from('\\r\\n');\nconst BUF_CR = Buffer.from('\\r');\nconst BUF_DASH = Buffer.from('-');\n\nfunction noop() {}\n\nconst MAX_HEADER_PAIRS = 2000; // From node\nconst MAX_HEADER_SIZE = 16 * 1024; // From node (its default value)\n\nconst HPARSER_NAME = 0;\nconst HPARSER_PRE_OWS = 1;\nconst HPARSER_VALUE = 2;\nclass HeaderParser {\n constructor(cb) {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n this.cb = cb;\n }\n\n reset() {\n this.header = Object.create(null);\n this.pairCount = 0;\n this.byteCount = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n this.crlf = 0;\n }\n\n push(chunk, pos, end) {\n let start = pos;\n while (pos < end) {\n switch (this.state) {\n case HPARSER_NAME: {\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (TOKEN[code] !== 1) {\n if (code !== 58/* ':' */)\n return -1;\n this.name += chunk.latin1Slice(start, pos);\n if (this.name.length === 0)\n return -1;\n ++pos;\n done = true;\n this.state = HPARSER_PRE_OWS;\n break;\n }\n }\n if (!done) {\n this.name += chunk.latin1Slice(start, pos);\n break;\n }\n // FALLTHROUGH\n }\n case HPARSER_PRE_OWS: {\n // Skip optional whitespace\n let done = false;\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */) {\n start = pos;\n done = true;\n this.state = HPARSER_VALUE;\n break;\n }\n }\n if (!done)\n break;\n // FALLTHROUGH\n }\n case HPARSER_VALUE:\n switch (this.crlf) {\n case 0: // Nothing yet\n for (; pos < end; ++pos) {\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (FIELD_VCHAR[code] !== 1) {\n if (code !== 13/* '\\r' */)\n return -1;\n ++this.crlf;\n break;\n }\n }\n this.value += chunk.latin1Slice(start, pos++);\n break;\n case 1: // Received CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n ++this.crlf;\n break;\n case 2: { // Received CR LF\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n const code = chunk[pos];\n if (code === 32/* ' ' */ || code === 9/* '\\t' */) {\n // Folded value\n start = pos;\n this.crlf = 0;\n } else {\n if (++this.pairCount < MAX_HEADER_PAIRS) {\n this.name = this.name.toLowerCase();\n if (this.header[this.name] === undefined)\n this.header[this.name] = [this.value];\n else\n this.header[this.name].push(this.value);\n }\n if (code === 13/* '\\r' */) {\n ++this.crlf;\n ++pos;\n } else {\n // Assume start of next header field name\n start = pos;\n this.crlf = 0;\n this.state = HPARSER_NAME;\n this.name = '';\n this.value = '';\n }\n }\n break;\n }\n case 3: { // Received CR LF CR\n if (this.byteCount === MAX_HEADER_SIZE)\n return -1;\n ++this.byteCount;\n if (chunk[pos++] !== 10/* '\\n' */)\n return -1;\n // End of header\n const header = this.header;\n this.reset();\n this.cb(header);\n return pos;\n }\n }\n break;\n }\n }\n\n return pos;\n }\n}\n\nclass FileStream extends Readable {\n constructor(opts, owner) {\n super(opts);\n this.truncated = false;\n this._readcb = null;\n this.once('end', () => {\n // We need to make sure that we call any outstanding _writecb() that is\n // associated with this file so that processing of the rest of the form\n // can continue. This may not happen if the file stream ends right after\n // backpressure kicks in, so we force it here.\n this._read();\n if (--owner._fileEndsLeft === 0 && owner._finalcb) {\n const cb = owner._finalcb;\n owner._finalcb = null;\n // Make sure other 'end' event handlers get a chance to be executed\n // before busboy's 'finish' event is emitted\n process.nextTick(cb);\n }\n });\n }\n _read(n) {\n const cb = this._readcb;\n if (cb) {\n this._readcb = null;\n cb();\n }\n }\n}\n\nconst ignoreData = {\n push: (chunk, pos) => {},\n destroy: () => {},\n};\n\nfunction callAndUnsetCb(self, err) {\n const cb = self._writecb;\n self._writecb = null;\n if (err)\n self.destroy(err);\n else if (cb)\n cb();\n}\n\nfunction nullDecoder(val, hint) {\n return val;\n}\n\nclass Multipart extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n if (!cfg.conType.params || typeof cfg.conType.params.boundary !== 'string')\n throw new Error('Multipart: Boundary not found');\n\n const boundary = cfg.conType.params.boundary;\n const paramDecoder = (typeof cfg.defParamCharset === 'string'\n && cfg.defParamCharset\n ? getDecoder(cfg.defParamCharset)\n : nullDecoder);\n const defCharset = (cfg.defCharset || 'utf8');\n const preservePath = cfg.preservePath;\n const fileOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.fileHwm === 'number'\n ? cfg.fileHwm\n : undefined),\n };\n\n const limits = cfg.limits;\n const fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n const fileSizeLimit = (limits && typeof limits.fileSize === 'number'\n ? limits.fileSize\n : Infinity);\n const filesLimit = (limits && typeof limits.files === 'number'\n ? limits.files\n : Infinity);\n const fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n const partsLimit = (limits && typeof limits.parts === 'number'\n ? limits.parts\n : Infinity);\n\n let parts = -1; // Account for initial boundary\n let fields = 0;\n let files = 0;\n let skipPart = false;\n\n this._fileEndsLeft = 0;\n this._fileStream = undefined;\n this._complete = false;\n let fileSize = 0;\n\n let field;\n let fieldSize = 0;\n let partCharset;\n let partEncoding;\n let partType;\n let partName;\n let partTruncated = false;\n\n let hitFilesLimit = false;\n let hitFieldsLimit = false;\n\n this._hparser = null;\n const hparser = new HeaderParser((header) => {\n this._hparser = null;\n skipPart = false;\n\n partType = 'text/plain';\n partCharset = defCharset;\n partEncoding = '7bit';\n partName = undefined;\n partTruncated = false;\n\n let filename;\n if (!header['content-disposition']) {\n skipPart = true;\n return;\n }\n\n const disp = parseDisposition(header['content-disposition'][0],\n paramDecoder);\n if (!disp || disp.type !== 'form-data') {\n skipPart = true;\n return;\n }\n\n if (disp.params) {\n if (disp.params.name)\n partName = disp.params.name;\n\n if (disp.params['filename*'])\n filename = disp.params['filename*'];\n else if (disp.params.filename)\n filename = disp.params.filename;\n\n if (filename !== undefined && !preservePath)\n filename = basename(filename);\n }\n\n if (header['content-type']) {\n const conType = parseContentType(header['content-type'][0]);\n if (conType) {\n partType = `${conType.type}/${conType.subtype}`;\n if (conType.params && typeof conType.params.charset === 'string')\n partCharset = conType.params.charset.toLowerCase();\n }\n }\n\n if (header['content-transfer-encoding'])\n partEncoding = header['content-transfer-encoding'][0].toLowerCase();\n\n if (partType === 'application/octet-stream' || filename !== undefined) {\n // File\n\n if (files === filesLimit) {\n if (!hitFilesLimit) {\n hitFilesLimit = true;\n this.emit('filesLimit');\n }\n skipPart = true;\n return;\n }\n ++files;\n\n if (this.listenerCount('file') === 0) {\n skipPart = true;\n return;\n }\n\n fileSize = 0;\n this._fileStream = new FileStream(fileOpts, this);\n ++this._fileEndsLeft;\n this.emit(\n 'file',\n partName,\n this._fileStream,\n { filename,\n encoding: partEncoding,\n mimeType: partType }\n );\n } else {\n // Non-file\n\n if (fields === fieldsLimit) {\n if (!hitFieldsLimit) {\n hitFieldsLimit = true;\n this.emit('fieldsLimit');\n }\n skipPart = true;\n return;\n }\n ++fields;\n\n if (this.listenerCount('field') === 0) {\n skipPart = true;\n return;\n }\n\n field = [];\n fieldSize = 0;\n }\n });\n\n let matchPostBoundary = 0;\n const ssCb = (isMatch, data, start, end, isDataSafe) => {\nretrydata:\n while (data) {\n if (this._hparser !== null) {\n const ret = this._hparser.push(data, start, end);\n if (ret === -1) {\n this._hparser = null;\n hparser.reset();\n this.emit('error', new Error('Malformed part header'));\n break;\n }\n start = ret;\n }\n\n if (start === end)\n break;\n\n if (matchPostBoundary !== 0) {\n if (matchPostBoundary === 1) {\n switch (data[start]) {\n case 45: // '-'\n // Try matching '--' after boundary\n matchPostBoundary = 2;\n ++start;\n break;\n case 13: // '\\r'\n // Try matching CR LF before header\n matchPostBoundary = 3;\n ++start;\n break;\n default:\n matchPostBoundary = 0;\n }\n if (start === end)\n return;\n }\n\n if (matchPostBoundary === 2) {\n matchPostBoundary = 0;\n if (data[start] === 45/* '-' */) {\n // End of multipart data\n this._complete = true;\n this._bparser = ignoreData;\n return;\n }\n // We saw something other than '-', so put the dash we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_DASH, 0, 1, false);\n this._writecb = writecb;\n } else if (matchPostBoundary === 3) {\n matchPostBoundary = 0;\n if (data[start] === 10/* '\\n' */) {\n ++start;\n if (parts >= partsLimit)\n break;\n // Prepare the header parser\n this._hparser = hparser;\n if (start === end)\n break;\n // Process the remaining data as a header\n continue retrydata;\n } else {\n // We saw something other than LF, so put the CR we consumed\n // \"back\"\n const writecb = this._writecb;\n this._writecb = noop;\n ssCb(false, BUF_CR, 0, 1, false);\n this._writecb = writecb;\n }\n }\n }\n\n if (!skipPart) {\n if (this._fileStream) {\n let chunk;\n const actualLen = Math.min(end - start, fileSizeLimit - fileSize);\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fileSize += chunk.length;\n if (fileSize === fileSizeLimit) {\n if (chunk.length > 0)\n this._fileStream.push(chunk);\n this._fileStream.emit('limit');\n this._fileStream.truncated = true;\n skipPart = true;\n } else if (!this._fileStream.push(chunk)) {\n if (this._writecb)\n this._fileStream._readcb = this._writecb;\n this._writecb = null;\n }\n } else if (field !== undefined) {\n let chunk;\n const actualLen = Math.min(\n end - start,\n fieldSizeLimit - fieldSize\n );\n if (!isDataSafe) {\n chunk = Buffer.allocUnsafe(actualLen);\n data.copy(chunk, 0, start, start + actualLen);\n } else {\n chunk = data.slice(start, start + actualLen);\n }\n\n fieldSize += actualLen;\n field.push(chunk);\n if (fieldSize === fieldSizeLimit) {\n skipPart = true;\n partTruncated = true;\n }\n }\n }\n\n break;\n }\n\n if (isMatch) {\n matchPostBoundary = 1;\n\n if (this._fileStream) {\n // End the active file stream if the previous part was a file\n this._fileStream.push(null);\n this._fileStream = null;\n } else if (field !== undefined) {\n let data;\n switch (field.length) {\n case 0:\n data = '';\n break;\n case 1:\n data = convertToUTF8(field[0], partCharset, 0);\n break;\n default:\n data = convertToUTF8(\n Buffer.concat(field, fieldSize),\n partCharset,\n 0\n );\n }\n field = undefined;\n fieldSize = 0;\n this.emit(\n 'field',\n partName,\n data,\n { nameTruncated: false,\n valueTruncated: partTruncated,\n encoding: partEncoding,\n mimeType: partType }\n );\n }\n\n if (++parts === partsLimit)\n this.emit('partsLimit');\n }\n };\n this._bparser = new StreamSearch(`\\r\\n--${boundary}`, ssCb);\n\n this._writecb = null;\n this._finalcb = null;\n\n // Just in case there is no preamble\n this.write(BUF_CRLF);\n }\n\n static detect(conType) {\n return (conType.type === 'multipart' && conType.subtype === 'form-data');\n }\n\n _write(chunk, enc, cb) {\n this._writecb = cb;\n this._bparser.push(chunk, 0);\n if (this._writecb)\n callAndUnsetCb(this);\n }\n\n _destroy(err, cb) {\n this._hparser = null;\n this._bparser = ignoreData;\n if (!err)\n err = checkEndState(this);\n const fileStream = this._fileStream;\n if (fileStream) {\n this._fileStream = null;\n fileStream.destroy(err);\n }\n cb(err);\n }\n\n _final(cb) {\n this._bparser.destroy();\n if (!this._complete)\n return cb(new Error('Unexpected end of form'));\n if (this._fileEndsLeft)\n this._finalcb = finalcb.bind(null, this, cb);\n else\n finalcb(this, cb);\n }\n}\n\nfunction finalcb(self, cb, err) {\n if (err)\n return cb(err);\n err = checkEndState(self);\n cb(err);\n}\n\nfunction checkEndState(self) {\n if (self._hparser)\n return new Error('Malformed part header');\n const fileStream = self._fileStream;\n if (fileStream) {\n self._fileStream = null;\n fileStream.destroy(new Error('Unexpected end of file'));\n }\n if (!self._complete)\n return new Error('Unexpected end of form');\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst FIELD_VCHAR = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nmodule.exports = Multipart;\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst { getDecoder } = require('../utils.js');\n\nclass URLEncoded extends Writable {\n constructor(cfg) {\n const streamOpts = {\n autoDestroy: true,\n emitClose: true,\n highWaterMark: (typeof cfg.highWaterMark === 'number'\n ? cfg.highWaterMark\n : undefined),\n };\n super(streamOpts);\n\n let charset = (cfg.defCharset || 'utf8');\n if (cfg.conType.params && typeof cfg.conType.params.charset === 'string')\n charset = cfg.conType.params.charset;\n\n this.charset = charset;\n\n const limits = cfg.limits;\n this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'\n ? limits.fieldSize\n : 1 * 1024 * 1024);\n this.fieldsLimit = (limits && typeof limits.fields === 'number'\n ? limits.fields\n : Infinity);\n this.fieldNameSizeLimit = (\n limits && typeof limits.fieldNameSize === 'number'\n ? limits.fieldNameSize\n : 100\n );\n\n this._inKey = true;\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n this._fields = 0;\n this._key = '';\n this._val = '';\n this._byte = -2;\n this._lastPos = 0;\n this._encode = 0;\n this._decoder = getDecoder(charset);\n }\n\n static detect(conType) {\n return (conType.type === 'application'\n && conType.subtype === 'x-www-form-urlencoded');\n }\n\n _write(chunk, enc, cb) {\n if (this._fields >= this.fieldsLimit)\n return cb();\n\n let i = 0;\n const len = chunk.length;\n this._lastPos = 0;\n\n // Check if we last ended mid-percent-encoded byte\n if (this._byte !== -2) {\n i = readPctEnc(this, chunk, i, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n if (this._inKey)\n ++this._bytesKey;\n else\n ++this._bytesVal;\n }\n\nmain:\n while (i < len) {\n if (this._inKey) {\n // Parsing key\n\n i = skipKeyBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 61: // '='\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n this._inKey = false;\n continue main;\n case 38: // '&'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._key = this._decoder(this._key, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0) {\n this.emit(\n 'field',\n this._key,\n '',\n { nameTruncated: this._keyTrunc,\n valueTruncated: false,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue;\n case 43: // '+'\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._key += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesKey;\n i = skipKeyBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._key += chunk.latin1Slice(this._lastPos, i);\n } else {\n // Parsing value\n\n i = skipValBytes(this, chunk, i, len);\n\n while (i < len) {\n switch (chunk[i]) {\n case 38: // '&'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = ++i;\n this._inKey = true;\n this._val = this._decoder(this._val, this._encode);\n this._encode = 0;\n if (this._bytesKey > 0 || this._bytesVal > 0) {\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n this._key = '';\n this._val = '';\n this._keyTrunc = false;\n this._valTrunc = false;\n this._bytesKey = 0;\n this._bytesVal = 0;\n if (++this._fields >= this.fieldsLimit) {\n this.emit('fieldsLimit');\n return cb();\n }\n continue main;\n case 43: // '+'\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._val += ' ';\n this._lastPos = i + 1;\n break;\n case 37: // '%'\n if (this._encode === 0)\n this._encode = 1;\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n this._lastPos = i + 1;\n this._byte = -1;\n i = readPctEnc(this, chunk, i + 1, len);\n if (i === -1)\n return cb(new Error('Malformed urlencoded form'));\n if (i >= len)\n return cb();\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n continue;\n }\n ++i;\n ++this._bytesVal;\n i = skipValBytes(this, chunk, i, len);\n }\n if (this._lastPos < i)\n this._val += chunk.latin1Slice(this._lastPos, i);\n }\n }\n\n cb();\n }\n\n _final(cb) {\n if (this._byte !== -2)\n return cb(new Error('Malformed urlencoded form'));\n if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {\n if (this._inKey)\n this._key = this._decoder(this._key, this._encode);\n else\n this._val = this._decoder(this._val, this._encode);\n this.emit(\n 'field',\n this._key,\n this._val,\n { nameTruncated: this._keyTrunc,\n valueTruncated: this._valTrunc,\n encoding: this.charset,\n mimeType: 'text/plain' }\n );\n }\n cb();\n }\n}\n\nfunction readPctEnc(self, chunk, pos, len) {\n if (pos >= len)\n return len;\n\n if (self._byte === -1) {\n // We saw a '%' but no hex characters yet\n const hexUpper = HEX_VALUES[chunk[pos++]];\n if (hexUpper === -1)\n return -1;\n\n if (hexUpper >= 8)\n self._encode = 2; // Indicate high bits detected\n\n if (pos < len) {\n // Both hex characters are in this chunk\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((hexUpper << 4) + hexLower);\n else\n self._val += String.fromCharCode((hexUpper << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n } else {\n // Only one hex character was available in this chunk\n self._byte = hexUpper;\n }\n } else {\n // We saw only one hex character so far\n const hexLower = HEX_VALUES[chunk[pos++]];\n if (hexLower === -1)\n return -1;\n\n if (self._inKey)\n self._key += String.fromCharCode((self._byte << 4) + hexLower);\n else\n self._val += String.fromCharCode((self._byte << 4) + hexLower);\n\n self._byte = -2;\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipKeyBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesKey > self.fieldNameSizeLimit) {\n if (!self._keyTrunc) {\n if (self._lastPos < pos)\n self._key += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._keyTrunc = true;\n for (; pos < len; ++pos) {\n const code = chunk[pos];\n if (code === 61/* '=' */ || code === 38/* '&' */)\n break;\n ++self._bytesKey;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\nfunction skipValBytes(self, chunk, pos, len) {\n // Skip bytes if we've truncated\n if (self._bytesVal > self.fieldSizeLimit) {\n if (!self._valTrunc) {\n if (self._lastPos < pos)\n self._val += chunk.latin1Slice(self._lastPos, pos - 1);\n }\n self._valTrunc = true;\n for (; pos < len; ++pos) {\n if (chunk[pos] === 38/* '&' */)\n break;\n ++self._bytesVal;\n }\n self._lastPos = pos;\n }\n\n return pos;\n}\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = URLEncoded;\n","'use strict';\n\nfunction parseContentType(str) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n // Parse type\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 47/* '/' */ || i === 0)\n return;\n break;\n }\n }\n // Check for type without subtype\n if (i === str.length)\n return;\n\n const type = str.slice(0, i).toLowerCase();\n\n // Parse subtype\n const subtypeStart = ++i;\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n if (parseContentTypeParams(str, i, params) === undefined)\n return;\n break;\n }\n }\n // Make sure we have a subtype\n if (i === subtypeStart)\n return;\n\n const subtype = str.slice(subtypeStart, i).toLowerCase();\n\n return { type, subtype, params };\n}\n\nfunction parseContentTypeParams(str, i, params) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code !== 61/* '=' */)\n return;\n break;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n name = str.slice(nameStart, i);\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction parseDisposition(str, defDecoder) {\n if (str.length === 0)\n return;\n\n const params = Object.create(null);\n let i = 0;\n\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (parseDispositionParams(str, i, params, defDecoder) === undefined)\n return;\n break;\n }\n }\n\n const type = str.slice(0, i).toLowerCase();\n\n return { type, params };\n}\n\nfunction parseDispositionParams(str, i, params, defDecoder) {\n while (i < str.length) {\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace\n if (i === str.length)\n break;\n\n // Check for malformed parameter\n if (str.charCodeAt(i++) !== 59/* ';' */)\n return;\n\n // Consume whitespace\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code !== 32/* ' ' */ && code !== 9/* '\\t' */)\n break;\n }\n\n // Ended on whitespace (malformed)\n if (i === str.length)\n return;\n\n let name;\n const nameStart = i;\n // Parse parameter name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n if (code === 61/* '=' */)\n break;\n return;\n }\n }\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n let value = '';\n let valueStart;\n let charset;\n //~ let lang;\n name = str.slice(nameStart, i);\n if (name.charCodeAt(name.length - 1) === 42/* '*' */) {\n // Extended value\n\n const charsetStart = ++i;\n // Parse charset name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (CHARSET[code] !== 1) {\n if (code !== 39/* '\\'' */)\n return;\n break;\n }\n }\n\n // Incomplete charset (malformed)\n if (i === str.length)\n return;\n\n charset = str.slice(charsetStart, i);\n ++i; // Skip over the '\\''\n\n //~ const langStart = ++i;\n // Parse language name\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 39/* '\\'' */)\n break;\n }\n\n // Incomplete language (malformed)\n if (i === str.length)\n return;\n\n //~ lang = str.slice(langStart, i);\n ++i; // Skip over the '\\''\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n valueStart = i;\n\n let encode = 0;\n // Parse value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (EXTENDED_VALUE[code] !== 1) {\n if (code === 37/* '%' */) {\n let hexUpper;\n let hexLower;\n if (i + 2 < str.length\n && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1\n && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {\n const byteVal = (hexUpper << 4) + hexLower;\n value += str.slice(valueStart, i);\n value += String.fromCharCode(byteVal);\n i += 2;\n valueStart = i + 1;\n if (byteVal >= 128)\n encode = 2;\n else if (encode === 0)\n encode = 1;\n continue;\n }\n // '%' disallowed in non-percent encoded contexts (malformed)\n return;\n }\n break;\n }\n }\n\n value += str.slice(valueStart, i);\n value = convertToUTF8(value, charset, encode);\n if (value === undefined)\n return;\n } else {\n // Non-extended value\n\n ++i; // Skip over '='\n\n // No value (malformed)\n if (i === str.length)\n return;\n\n if (str.charCodeAt(i) === 34/* '\"' */) {\n valueStart = ++i;\n let escaping = false;\n // Parse quoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (code === 92/* '\\\\' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n } else {\n value += str.slice(valueStart, i);\n escaping = true;\n }\n continue;\n }\n if (code === 34/* '\"' */) {\n if (escaping) {\n valueStart = i;\n escaping = false;\n continue;\n }\n value += str.slice(valueStart, i);\n break;\n }\n if (escaping) {\n valueStart = i - 1;\n escaping = false;\n }\n // Invalid unescaped quoted character (malformed)\n if (QDTEXT[code] !== 1)\n return;\n }\n\n // No end quote (malformed)\n if (i === str.length)\n return;\n\n ++i; // Skip over double quote\n } else {\n valueStart = i;\n // Parse unquoted value\n for (; i < str.length; ++i) {\n const code = str.charCodeAt(i);\n if (TOKEN[code] !== 1) {\n // No value (malformed)\n if (i === valueStart)\n return;\n break;\n }\n }\n value = str.slice(valueStart, i);\n }\n\n value = defDecoder(value, 2);\n if (value === undefined)\n return;\n }\n\n name = name.toLowerCase();\n if (params[name] === undefined)\n params[name] = value;\n }\n\n return params;\n}\n\nfunction getDecoder(charset) {\n let lc;\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8;\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1;\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le;\n case 'base64':\n return decoders.base64;\n default:\n if (lc === undefined) {\n lc = true;\n charset = charset.toLowerCase();\n continue;\n }\n return decoders.other.bind(charset);\n }\n }\n}\n\nconst decoders = {\n utf8: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string') {\n // If `data` never had any percent-encoded bytes or never had any that\n // were outside of the ASCII range, then we can safely just return the\n // input since UTF-8 is ASCII compatible\n if (hint < 2)\n return data;\n\n data = Buffer.from(data, 'latin1');\n }\n return data.utf8Slice(0, data.length);\n },\n\n latin1: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n return data;\n return data.latin1Slice(0, data.length);\n },\n\n utf16le: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.ucs2Slice(0, data.length);\n },\n\n base64: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n return data.base64Slice(0, data.length);\n },\n\n other: (data, hint) => {\n if (data.length === 0)\n return '';\n if (typeof data === 'string')\n data = Buffer.from(data, 'latin1');\n try {\n const decoder = new TextDecoder(this);\n return decoder.decode(data);\n } catch {}\n },\n};\n\nfunction convertToUTF8(data, charset, hint) {\n const decode = getDecoder(charset);\n if (decode)\n return decode(data, hint);\n}\n\nfunction basename(path) {\n if (typeof path !== 'string')\n return '';\n for (let i = path.length - 1; i >= 0; --i) {\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1);\n return (path === '..' || path === '.' ? '' : path);\n }\n }\n return (path === '..' || path === '.' ? '' : path);\n}\n\nconst TOKEN = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst QDTEXT = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\n\nconst CHARSET = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\nconst EXTENDED_VALUE = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n];\n\n/* eslint-disable no-multi-spaces */\nconst HEX_VALUES = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n/* eslint-enable no-multi-spaces */\n\nmodule.exports = {\n basename,\n convertToUTF8,\n getDecoder,\n parseContentType,\n parseDisposition,\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'), require('./types/other'));\n","module.exports = {\"application/prs.cww\":[\"cww\"],\"application/vnd.1000minds.decision-model+xml\":[\"1km\"],\"application/vnd.3gpp.pic-bw-large\":[\"plb\"],\"application/vnd.3gpp.pic-bw-small\":[\"psb\"],\"application/vnd.3gpp.pic-bw-var\":[\"pvb\"],\"application/vnd.3gpp2.tcap\":[\"tcap\"],\"application/vnd.3m.post-it-notes\":[\"pwn\"],\"application/vnd.accpac.simply.aso\":[\"aso\"],\"application/vnd.accpac.simply.imp\":[\"imp\"],\"application/vnd.acucobol\":[\"acu\"],\"application/vnd.acucorp\":[\"atc\",\"acutc\"],\"application/vnd.adobe.air-application-installer-package+zip\":[\"air\"],\"application/vnd.adobe.formscentral.fcdt\":[\"fcdt\"],\"application/vnd.adobe.fxp\":[\"fxp\",\"fxpl\"],\"application/vnd.adobe.xdp+xml\":[\"xdp\"],\"application/vnd.adobe.xfdf\":[\"xfdf\"],\"application/vnd.ahead.space\":[\"ahead\"],\"application/vnd.airzip.filesecure.azf\":[\"azf\"],\"application/vnd.airzip.filesecure.azs\":[\"azs\"],\"application/vnd.amazon.ebook\":[\"azw\"],\"application/vnd.americandynamics.acc\":[\"acc\"],\"application/vnd.amiga.ami\":[\"ami\"],\"application/vnd.android.package-archive\":[\"apk\"],\"application/vnd.anser-web-certificate-issue-initiation\":[\"cii\"],\"application/vnd.anser-web-funds-transfer-initiation\":[\"fti\"],\"application/vnd.antix.game-component\":[\"atx\"],\"application/vnd.apple.installer+xml\":[\"mpkg\"],\"application/vnd.apple.keynote\":[\"key\"],\"application/vnd.apple.mpegurl\":[\"m3u8\"],\"application/vnd.apple.numbers\":[\"numbers\"],\"application/vnd.apple.pages\":[\"pages\"],\"application/vnd.apple.pkpass\":[\"pkpass\"],\"application/vnd.aristanetworks.swi\":[\"swi\"],\"application/vnd.astraea-software.iota\":[\"iota\"],\"application/vnd.audiograph\":[\"aep\"],\"application/vnd.balsamiq.bmml+xml\":[\"bmml\"],\"application/vnd.blueice.multipass\":[\"mpm\"],\"application/vnd.bmi\":[\"bmi\"],\"application/vnd.businessobjects\":[\"rep\"],\"application/vnd.chemdraw+xml\":[\"cdxml\"],\"application/vnd.chipnuts.karaoke-mmd\":[\"mmd\"],\"application/vnd.cinderella\":[\"cdy\"],\"application/vnd.citationstyles.style+xml\":[\"csl\"],\"application/vnd.claymore\":[\"cla\"],\"application/vnd.cloanto.rp9\":[\"rp9\"],\"application/vnd.clonk.c4group\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"],\"application/vnd.cluetrust.cartomobile-config\":[\"c11amc\"],\"application/vnd.cluetrust.cartomobile-config-pkg\":[\"c11amz\"],\"application/vnd.commonspace\":[\"csp\"],\"application/vnd.contact.cmsg\":[\"cdbcmsg\"],\"application/vnd.cosmocaller\":[\"cmc\"],\"application/vnd.crick.clicker\":[\"clkx\"],\"application/vnd.crick.clicker.keyboard\":[\"clkk\"],\"application/vnd.crick.clicker.palette\":[\"clkp\"],\"application/vnd.crick.clicker.template\":[\"clkt\"],\"application/vnd.crick.clicker.wordbank\":[\"clkw\"],\"application/vnd.criticaltools.wbs+xml\":[\"wbs\"],\"application/vnd.ctc-posml\":[\"pml\"],\"application/vnd.cups-ppd\":[\"ppd\"],\"application/vnd.curl.car\":[\"car\"],\"application/vnd.curl.pcurl\":[\"pcurl\"],\"application/vnd.dart\":[\"dart\"],\"application/vnd.data-vision.rdz\":[\"rdz\"],\"application/vnd.dbf\":[\"dbf\"],\"application/vnd.dece.data\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"],\"application/vnd.dece.ttml+xml\":[\"uvt\",\"uvvt\"],\"application/vnd.dece.unspecified\":[\"uvx\",\"uvvx\"],\"application/vnd.dece.zip\":[\"uvz\",\"uvvz\"],\"application/vnd.denovo.fcselayout-link\":[\"fe_launch\"],\"application/vnd.dna\":[\"dna\"],\"application/vnd.dolby.mlp\":[\"mlp\"],\"application/vnd.dpgraph\":[\"dpg\"],\"application/vnd.dreamfactory\":[\"dfac\"],\"application/vnd.ds-keypoint\":[\"kpxx\"],\"application/vnd.dvb.ait\":[\"ait\"],\"application/vnd.dvb.service\":[\"svc\"],\"application/vnd.dynageo\":[\"geo\"],\"application/vnd.ecowin.chart\":[\"mag\"],\"application/vnd.enliven\":[\"nml\"],\"application/vnd.epson.esf\":[\"esf\"],\"application/vnd.epson.msf\":[\"msf\"],\"application/vnd.epson.quickanime\":[\"qam\"],\"application/vnd.epson.salt\":[\"slt\"],\"application/vnd.epson.ssf\":[\"ssf\"],\"application/vnd.eszigno3+xml\":[\"es3\",\"et3\"],\"application/vnd.ezpix-album\":[\"ez2\"],\"application/vnd.ezpix-package\":[\"ez3\"],\"application/vnd.fdf\":[\"fdf\"],\"application/vnd.fdsn.mseed\":[\"mseed\"],\"application/vnd.fdsn.seed\":[\"seed\",\"dataless\"],\"application/vnd.flographit\":[\"gph\"],\"application/vnd.fluxtime.clip\":[\"ftc\"],\"application/vnd.framemaker\":[\"fm\",\"frame\",\"maker\",\"book\"],\"application/vnd.frogans.fnc\":[\"fnc\"],\"application/vnd.frogans.ltf\":[\"ltf\"],\"application/vnd.fsc.weblaunch\":[\"fsc\"],\"application/vnd.fujitsu.oasys\":[\"oas\"],\"application/vnd.fujitsu.oasys2\":[\"oa2\"],\"application/vnd.fujitsu.oasys3\":[\"oa3\"],\"application/vnd.fujitsu.oasysgp\":[\"fg5\"],\"application/vnd.fujitsu.oasysprs\":[\"bh2\"],\"application/vnd.fujixerox.ddd\":[\"ddd\"],\"application/vnd.fujixerox.docuworks\":[\"xdw\"],\"application/vnd.fujixerox.docuworks.binder\":[\"xbd\"],\"application/vnd.fuzzysheet\":[\"fzs\"],\"application/vnd.genomatix.tuxedo\":[\"txd\"],\"application/vnd.geogebra.file\":[\"ggb\"],\"application/vnd.geogebra.tool\":[\"ggt\"],\"application/vnd.geometry-explorer\":[\"gex\",\"gre\"],\"application/vnd.geonext\":[\"gxt\"],\"application/vnd.geoplan\":[\"g2w\"],\"application/vnd.geospace\":[\"g3w\"],\"application/vnd.gmx\":[\"gmx\"],\"application/vnd.google-apps.document\":[\"gdoc\"],\"application/vnd.google-apps.presentation\":[\"gslides\"],\"application/vnd.google-apps.spreadsheet\":[\"gsheet\"],\"application/vnd.google-earth.kml+xml\":[\"kml\"],\"application/vnd.google-earth.kmz\":[\"kmz\"],\"application/vnd.grafeq\":[\"gqf\",\"gqs\"],\"application/vnd.groove-account\":[\"gac\"],\"application/vnd.groove-help\":[\"ghf\"],\"application/vnd.groove-identity-message\":[\"gim\"],\"application/vnd.groove-injector\":[\"grv\"],\"application/vnd.groove-tool-message\":[\"gtm\"],\"application/vnd.groove-tool-template\":[\"tpl\"],\"application/vnd.groove-vcard\":[\"vcg\"],\"application/vnd.hal+xml\":[\"hal\"],\"application/vnd.handheld-entertainment+xml\":[\"zmm\"],\"application/vnd.hbci\":[\"hbci\"],\"application/vnd.hhe.lesson-player\":[\"les\"],\"application/vnd.hp-hpgl\":[\"hpgl\"],\"application/vnd.hp-hpid\":[\"hpid\"],\"application/vnd.hp-hps\":[\"hps\"],\"application/vnd.hp-jlyt\":[\"jlt\"],\"application/vnd.hp-pcl\":[\"pcl\"],\"application/vnd.hp-pclxl\":[\"pclxl\"],\"application/vnd.hydrostatix.sof-data\":[\"sfd-hdstx\"],\"application/vnd.ibm.minipay\":[\"mpy\"],\"application/vnd.ibm.modcap\":[\"afp\",\"listafp\",\"list3820\"],\"application/vnd.ibm.rights-management\":[\"irm\"],\"application/vnd.ibm.secure-container\":[\"sc\"],\"application/vnd.iccprofile\":[\"icc\",\"icm\"],\"application/vnd.igloader\":[\"igl\"],\"application/vnd.immervision-ivp\":[\"ivp\"],\"application/vnd.immervision-ivu\":[\"ivu\"],\"application/vnd.insors.igm\":[\"igm\"],\"application/vnd.intercon.formnet\":[\"xpw\",\"xpx\"],\"application/vnd.intergeo\":[\"i2g\"],\"application/vnd.intu.qbo\":[\"qbo\"],\"application/vnd.intu.qfx\":[\"qfx\"],\"application/vnd.ipunplugged.rcprofile\":[\"rcprofile\"],\"application/vnd.irepository.package+xml\":[\"irp\"],\"application/vnd.is-xpr\":[\"xpr\"],\"application/vnd.isac.fcs\":[\"fcs\"],\"application/vnd.jam\":[\"jam\"],\"application/vnd.jcp.javame.midlet-rms\":[\"rms\"],\"application/vnd.jisp\":[\"jisp\"],\"application/vnd.joost.joda-archive\":[\"joda\"],\"application/vnd.kahootz\":[\"ktz\",\"ktr\"],\"application/vnd.kde.karbon\":[\"karbon\"],\"application/vnd.kde.kchart\":[\"chrt\"],\"application/vnd.kde.kformula\":[\"kfo\"],\"application/vnd.kde.kivio\":[\"flw\"],\"application/vnd.kde.kontour\":[\"kon\"],\"application/vnd.kde.kpresenter\":[\"kpr\",\"kpt\"],\"application/vnd.kde.kspread\":[\"ksp\"],\"application/vnd.kde.kword\":[\"kwd\",\"kwt\"],\"application/vnd.kenameaapp\":[\"htke\"],\"application/vnd.kidspiration\":[\"kia\"],\"application/vnd.kinar\":[\"kne\",\"knp\"],\"application/vnd.koan\":[\"skp\",\"skd\",\"skt\",\"skm\"],\"application/vnd.kodak-descriptor\":[\"sse\"],\"application/vnd.las.las+xml\":[\"lasxml\"],\"application/vnd.llamagraphics.life-balance.desktop\":[\"lbd\"],\"application/vnd.llamagraphics.life-balance.exchange+xml\":[\"lbe\"],\"application/vnd.lotus-1-2-3\":[\"123\"],\"application/vnd.lotus-approach\":[\"apr\"],\"application/vnd.lotus-freelance\":[\"pre\"],\"application/vnd.lotus-notes\":[\"nsf\"],\"application/vnd.lotus-organizer\":[\"org\"],\"application/vnd.lotus-screencam\":[\"scm\"],\"application/vnd.lotus-wordpro\":[\"lwp\"],\"application/vnd.macports.portpkg\":[\"portpkg\"],\"application/vnd.mapbox-vector-tile\":[\"mvt\"],\"application/vnd.mcd\":[\"mcd\"],\"application/vnd.medcalcdata\":[\"mc1\"],\"application/vnd.mediastation.cdkey\":[\"cdkey\"],\"application/vnd.mfer\":[\"mwf\"],\"application/vnd.mfmp\":[\"mfm\"],\"application/vnd.micrografx.flo\":[\"flo\"],\"application/vnd.micrografx.igx\":[\"igx\"],\"application/vnd.mif\":[\"mif\"],\"application/vnd.mobius.daf\":[\"daf\"],\"application/vnd.mobius.dis\":[\"dis\"],\"application/vnd.mobius.mbk\":[\"mbk\"],\"application/vnd.mobius.mqy\":[\"mqy\"],\"application/vnd.mobius.msl\":[\"msl\"],\"application/vnd.mobius.plc\":[\"plc\"],\"application/vnd.mobius.txf\":[\"txf\"],\"application/vnd.mophun.application\":[\"mpn\"],\"application/vnd.mophun.certificate\":[\"mpc\"],\"application/vnd.mozilla.xul+xml\":[\"xul\"],\"application/vnd.ms-artgalry\":[\"cil\"],\"application/vnd.ms-cab-compressed\":[\"cab\"],\"application/vnd.ms-excel\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"],\"application/vnd.ms-excel.addin.macroenabled.12\":[\"xlam\"],\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":[\"xlsb\"],\"application/vnd.ms-excel.sheet.macroenabled.12\":[\"xlsm\"],\"application/vnd.ms-excel.template.macroenabled.12\":[\"xltm\"],\"application/vnd.ms-fontobject\":[\"eot\"],\"application/vnd.ms-htmlhelp\":[\"chm\"],\"application/vnd.ms-ims\":[\"ims\"],\"application/vnd.ms-lrm\":[\"lrm\"],\"application/vnd.ms-officetheme\":[\"thmx\"],\"application/vnd.ms-outlook\":[\"msg\"],\"application/vnd.ms-pki.seccat\":[\"cat\"],\"application/vnd.ms-pki.stl\":[\"*stl\"],\"application/vnd.ms-powerpoint\":[\"ppt\",\"pps\",\"pot\"],\"application/vnd.ms-powerpoint.addin.macroenabled.12\":[\"ppam\"],\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":[\"pptm\"],\"application/vnd.ms-powerpoint.slide.macroenabled.12\":[\"sldm\"],\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":[\"ppsm\"],\"application/vnd.ms-powerpoint.template.macroenabled.12\":[\"potm\"],\"application/vnd.ms-project\":[\"mpp\",\"mpt\"],\"application/vnd.ms-word.document.macroenabled.12\":[\"docm\"],\"application/vnd.ms-word.template.macroenabled.12\":[\"dotm\"],\"application/vnd.ms-works\":[\"wps\",\"wks\",\"wcm\",\"wdb\"],\"application/vnd.ms-wpl\":[\"wpl\"],\"application/vnd.ms-xpsdocument\":[\"xps\"],\"application/vnd.mseq\":[\"mseq\"],\"application/vnd.musician\":[\"mus\"],\"application/vnd.muvee.style\":[\"msty\"],\"application/vnd.mynfc\":[\"taglet\"],\"application/vnd.neurolanguage.nlu\":[\"nlu\"],\"application/vnd.nitf\":[\"ntf\",\"nitf\"],\"application/vnd.noblenet-directory\":[\"nnd\"],\"application/vnd.noblenet-sealer\":[\"nns\"],\"application/vnd.noblenet-web\":[\"nnw\"],\"application/vnd.nokia.n-gage.ac+xml\":[\"*ac\"],\"application/vnd.nokia.n-gage.data\":[\"ngdat\"],\"application/vnd.nokia.n-gage.symbian.install\":[\"n-gage\"],\"application/vnd.nokia.radio-preset\":[\"rpst\"],\"application/vnd.nokia.radio-presets\":[\"rpss\"],\"application/vnd.novadigm.edm\":[\"edm\"],\"application/vnd.novadigm.edx\":[\"edx\"],\"application/vnd.novadigm.ext\":[\"ext\"],\"application/vnd.oasis.opendocument.chart\":[\"odc\"],\"application/vnd.oasis.opendocument.chart-template\":[\"otc\"],\"application/vnd.oasis.opendocument.database\":[\"odb\"],\"application/vnd.oasis.opendocument.formula\":[\"odf\"],\"application/vnd.oasis.opendocument.formula-template\":[\"odft\"],\"application/vnd.oasis.opendocument.graphics\":[\"odg\"],\"application/vnd.oasis.opendocument.graphics-template\":[\"otg\"],\"application/vnd.oasis.opendocument.image\":[\"odi\"],\"application/vnd.oasis.opendocument.image-template\":[\"oti\"],\"application/vnd.oasis.opendocument.presentation\":[\"odp\"],\"application/vnd.oasis.opendocument.presentation-template\":[\"otp\"],\"application/vnd.oasis.opendocument.spreadsheet\":[\"ods\"],\"application/vnd.oasis.opendocument.spreadsheet-template\":[\"ots\"],\"application/vnd.oasis.opendocument.text\":[\"odt\"],\"application/vnd.oasis.opendocument.text-master\":[\"odm\"],\"application/vnd.oasis.opendocument.text-template\":[\"ott\"],\"application/vnd.oasis.opendocument.text-web\":[\"oth\"],\"application/vnd.olpc-sugar\":[\"xo\"],\"application/vnd.oma.dd2+xml\":[\"dd2\"],\"application/vnd.openblox.game+xml\":[\"obgx\"],\"application/vnd.openofficeorg.extension\":[\"oxt\"],\"application/vnd.openstreetmap.data+xml\":[\"osm\"],\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":[\"pptx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slide\":[\"sldx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":[\"ppsx\"],\"application/vnd.openxmlformats-officedocument.presentationml.template\":[\"potx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":[\"xlsx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":[\"xltx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":[\"docx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":[\"dotx\"],\"application/vnd.osgeo.mapguide.package\":[\"mgp\"],\"application/vnd.osgi.dp\":[\"dp\"],\"application/vnd.osgi.subsystem\":[\"esa\"],\"application/vnd.palm\":[\"pdb\",\"pqa\",\"oprc\"],\"application/vnd.pawaafile\":[\"paw\"],\"application/vnd.pg.format\":[\"str\"],\"application/vnd.pg.osasli\":[\"ei6\"],\"application/vnd.picsel\":[\"efif\"],\"application/vnd.pmi.widget\":[\"wg\"],\"application/vnd.pocketlearn\":[\"plf\"],\"application/vnd.powerbuilder6\":[\"pbd\"],\"application/vnd.previewsystems.box\":[\"box\"],\"application/vnd.proteus.magazine\":[\"mgz\"],\"application/vnd.publishare-delta-tree\":[\"qps\"],\"application/vnd.pvi.ptid1\":[\"ptid\"],\"application/vnd.quark.quarkxpress\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"],\"application/vnd.rar\":[\"rar\"],\"application/vnd.realvnc.bed\":[\"bed\"],\"application/vnd.recordare.musicxml\":[\"mxl\"],\"application/vnd.recordare.musicxml+xml\":[\"musicxml\"],\"application/vnd.rig.cryptonote\":[\"cryptonote\"],\"application/vnd.rim.cod\":[\"cod\"],\"application/vnd.rn-realmedia\":[\"rm\"],\"application/vnd.rn-realmedia-vbr\":[\"rmvb\"],\"application/vnd.route66.link66+xml\":[\"link66\"],\"application/vnd.sailingtracker.track\":[\"st\"],\"application/vnd.seemail\":[\"see\"],\"application/vnd.sema\":[\"sema\"],\"application/vnd.semd\":[\"semd\"],\"application/vnd.semf\":[\"semf\"],\"application/vnd.shana.informed.formdata\":[\"ifm\"],\"application/vnd.shana.informed.formtemplate\":[\"itp\"],\"application/vnd.shana.informed.interchange\":[\"iif\"],\"application/vnd.shana.informed.package\":[\"ipk\"],\"application/vnd.simtech-mindmapper\":[\"twd\",\"twds\"],\"application/vnd.smaf\":[\"mmf\"],\"application/vnd.smart.teacher\":[\"teacher\"],\"application/vnd.software602.filler.form+xml\":[\"fo\"],\"application/vnd.solent.sdkm+xml\":[\"sdkm\",\"sdkd\"],\"application/vnd.spotfire.dxp\":[\"dxp\"],\"application/vnd.spotfire.sfs\":[\"sfs\"],\"application/vnd.stardivision.calc\":[\"sdc\"],\"application/vnd.stardivision.draw\":[\"sda\"],\"application/vnd.stardivision.impress\":[\"sdd\"],\"application/vnd.stardivision.math\":[\"smf\"],\"application/vnd.stardivision.writer\":[\"sdw\",\"vor\"],\"application/vnd.stardivision.writer-global\":[\"sgl\"],\"application/vnd.stepmania.package\":[\"smzip\"],\"application/vnd.stepmania.stepchart\":[\"sm\"],\"application/vnd.sun.wadl+xml\":[\"wadl\"],\"application/vnd.sun.xml.calc\":[\"sxc\"],\"application/vnd.sun.xml.calc.template\":[\"stc\"],\"application/vnd.sun.xml.draw\":[\"sxd\"],\"application/vnd.sun.xml.draw.template\":[\"std\"],\"application/vnd.sun.xml.impress\":[\"sxi\"],\"application/vnd.sun.xml.impress.template\":[\"sti\"],\"application/vnd.sun.xml.math\":[\"sxm\"],\"application/vnd.sun.xml.writer\":[\"sxw\"],\"application/vnd.sun.xml.writer.global\":[\"sxg\"],\"application/vnd.sun.xml.writer.template\":[\"stw\"],\"application/vnd.sus-calendar\":[\"sus\",\"susp\"],\"application/vnd.svd\":[\"svd\"],\"application/vnd.symbian.install\":[\"sis\",\"sisx\"],\"application/vnd.syncml+xml\":[\"xsm\"],\"application/vnd.syncml.dm+wbxml\":[\"bdm\"],\"application/vnd.syncml.dm+xml\":[\"xdm\"],\"application/vnd.syncml.dmddf+xml\":[\"ddf\"],\"application/vnd.tao.intent-module-archive\":[\"tao\"],\"application/vnd.tcpdump.pcap\":[\"pcap\",\"cap\",\"dmp\"],\"application/vnd.tmobile-livetv\":[\"tmo\"],\"application/vnd.trid.tpt\":[\"tpt\"],\"application/vnd.triscape.mxs\":[\"mxs\"],\"application/vnd.trueapp\":[\"tra\"],\"application/vnd.ufdl\":[\"ufd\",\"ufdl\"],\"application/vnd.uiq.theme\":[\"utz\"],\"application/vnd.umajin\":[\"umj\"],\"application/vnd.unity\":[\"unityweb\"],\"application/vnd.uoml+xml\":[\"uoml\"],\"application/vnd.vcx\":[\"vcx\"],\"application/vnd.visio\":[\"vsd\",\"vst\",\"vss\",\"vsw\"],\"application/vnd.visionary\":[\"vis\"],\"application/vnd.vsf\":[\"vsf\"],\"application/vnd.wap.wbxml\":[\"wbxml\"],\"application/vnd.wap.wmlc\":[\"wmlc\"],\"application/vnd.wap.wmlscriptc\":[\"wmlsc\"],\"application/vnd.webturbo\":[\"wtb\"],\"application/vnd.wolfram.player\":[\"nbp\"],\"application/vnd.wordperfect\":[\"wpd\"],\"application/vnd.wqd\":[\"wqd\"],\"application/vnd.wt.stf\":[\"stf\"],\"application/vnd.xara\":[\"xar\"],\"application/vnd.xfdl\":[\"xfdl\"],\"application/vnd.yamaha.hv-dic\":[\"hvd\"],\"application/vnd.yamaha.hv-script\":[\"hvs\"],\"application/vnd.yamaha.hv-voice\":[\"hvp\"],\"application/vnd.yamaha.openscoreformat\":[\"osf\"],\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":[\"osfpvg\"],\"application/vnd.yamaha.smaf-audio\":[\"saf\"],\"application/vnd.yamaha.smaf-phrase\":[\"spf\"],\"application/vnd.yellowriver-custom-menu\":[\"cmp\"],\"application/vnd.zul\":[\"zir\",\"zirz\"],\"application/vnd.zzazz.deck+xml\":[\"zaz\"],\"application/x-7z-compressed\":[\"7z\"],\"application/x-abiword\":[\"abw\"],\"application/x-ace-compressed\":[\"ace\"],\"application/x-apple-diskimage\":[\"*dmg\"],\"application/x-arj\":[\"arj\"],\"application/x-authorware-bin\":[\"aab\",\"x32\",\"u32\",\"vox\"],\"application/x-authorware-map\":[\"aam\"],\"application/x-authorware-seg\":[\"aas\"],\"application/x-bcpio\":[\"bcpio\"],\"application/x-bdoc\":[\"*bdoc\"],\"application/x-bittorrent\":[\"torrent\"],\"application/x-blorb\":[\"blb\",\"blorb\"],\"application/x-bzip\":[\"bz\"],\"application/x-bzip2\":[\"bz2\",\"boz\"],\"application/x-cbr\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"],\"application/x-cdlink\":[\"vcd\"],\"application/x-cfs-compressed\":[\"cfs\"],\"application/x-chat\":[\"chat\"],\"application/x-chess-pgn\":[\"pgn\"],\"application/x-chrome-extension\":[\"crx\"],\"application/x-cocoa\":[\"cco\"],\"application/x-conference\":[\"nsc\"],\"application/x-cpio\":[\"cpio\"],\"application/x-csh\":[\"csh\"],\"application/x-debian-package\":[\"*deb\",\"udeb\"],\"application/x-dgc-compressed\":[\"dgc\"],\"application/x-director\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"],\"application/x-doom\":[\"wad\"],\"application/x-dtbncx+xml\":[\"ncx\"],\"application/x-dtbook+xml\":[\"dtb\"],\"application/x-dtbresource+xml\":[\"res\"],\"application/x-dvi\":[\"dvi\"],\"application/x-envoy\":[\"evy\"],\"application/x-eva\":[\"eva\"],\"application/x-font-bdf\":[\"bdf\"],\"application/x-font-ghostscript\":[\"gsf\"],\"application/x-font-linux-psf\":[\"psf\"],\"application/x-font-pcf\":[\"pcf\"],\"application/x-font-snf\":[\"snf\"],\"application/x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"application/x-freearc\":[\"arc\"],\"application/x-futuresplash\":[\"spl\"],\"application/x-gca-compressed\":[\"gca\"],\"application/x-glulx\":[\"ulx\"],\"application/x-gnumeric\":[\"gnumeric\"],\"application/x-gramps-xml\":[\"gramps\"],\"application/x-gtar\":[\"gtar\"],\"application/x-hdf\":[\"hdf\"],\"application/x-httpd-php\":[\"php\"],\"application/x-install-instructions\":[\"install\"],\"application/x-iso9660-image\":[\"*iso\"],\"application/x-iwork-keynote-sffkey\":[\"*key\"],\"application/x-iwork-numbers-sffnumbers\":[\"*numbers\"],\"application/x-iwork-pages-sffpages\":[\"*pages\"],\"application/x-java-archive-diff\":[\"jardiff\"],\"application/x-java-jnlp-file\":[\"jnlp\"],\"application/x-keepass2\":[\"kdbx\"],\"application/x-latex\":[\"latex\"],\"application/x-lua-bytecode\":[\"luac\"],\"application/x-lzh-compressed\":[\"lzh\",\"lha\"],\"application/x-makeself\":[\"run\"],\"application/x-mie\":[\"mie\"],\"application/x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"application/x-ms-application\":[\"application\"],\"application/x-ms-shortcut\":[\"lnk\"],\"application/x-ms-wmd\":[\"wmd\"],\"application/x-ms-wmz\":[\"wmz\"],\"application/x-ms-xbap\":[\"xbap\"],\"application/x-msaccess\":[\"mdb\"],\"application/x-msbinder\":[\"obd\"],\"application/x-mscardfile\":[\"crd\"],\"application/x-msclip\":[\"clp\"],\"application/x-msdos-program\":[\"*exe\"],\"application/x-msdownload\":[\"*exe\",\"*dll\",\"com\",\"bat\",\"*msi\"],\"application/x-msmediaview\":[\"mvb\",\"m13\",\"m14\"],\"application/x-msmetafile\":[\"*wmf\",\"*wmz\",\"*emf\",\"emz\"],\"application/x-msmoney\":[\"mny\"],\"application/x-mspublisher\":[\"pub\"],\"application/x-msschedule\":[\"scd\"],\"application/x-msterminal\":[\"trm\"],\"application/x-mswrite\":[\"wri\"],\"application/x-netcdf\":[\"nc\",\"cdf\"],\"application/x-ns-proxy-autoconfig\":[\"pac\"],\"application/x-nzb\":[\"nzb\"],\"application/x-perl\":[\"pl\",\"pm\"],\"application/x-pilot\":[\"*prc\",\"*pdb\"],\"application/x-pkcs12\":[\"p12\",\"pfx\"],\"application/x-pkcs7-certificates\":[\"p7b\",\"spc\"],\"application/x-pkcs7-certreqresp\":[\"p7r\"],\"application/x-rar-compressed\":[\"*rar\"],\"application/x-redhat-package-manager\":[\"rpm\"],\"application/x-research-info-systems\":[\"ris\"],\"application/x-sea\":[\"sea\"],\"application/x-sh\":[\"sh\"],\"application/x-shar\":[\"shar\"],\"application/x-shockwave-flash\":[\"swf\"],\"application/x-silverlight-app\":[\"xap\"],\"application/x-sql\":[\"sql\"],\"application/x-stuffit\":[\"sit\"],\"application/x-stuffitx\":[\"sitx\"],\"application/x-subrip\":[\"srt\"],\"application/x-sv4cpio\":[\"sv4cpio\"],\"application/x-sv4crc\":[\"sv4crc\"],\"application/x-t3vm-image\":[\"t3\"],\"application/x-tads\":[\"gam\"],\"application/x-tar\":[\"tar\"],\"application/x-tcl\":[\"tcl\",\"tk\"],\"application/x-tex\":[\"tex\"],\"application/x-tex-tfm\":[\"tfm\"],\"application/x-texinfo\":[\"texinfo\",\"texi\"],\"application/x-tgif\":[\"*obj\"],\"application/x-ustar\":[\"ustar\"],\"application/x-virtualbox-hdd\":[\"hdd\"],\"application/x-virtualbox-ova\":[\"ova\"],\"application/x-virtualbox-ovf\":[\"ovf\"],\"application/x-virtualbox-vbox\":[\"vbox\"],\"application/x-virtualbox-vbox-extpack\":[\"vbox-extpack\"],\"application/x-virtualbox-vdi\":[\"vdi\"],\"application/x-virtualbox-vhd\":[\"vhd\"],\"application/x-virtualbox-vmdk\":[\"vmdk\"],\"application/x-wais-source\":[\"src\"],\"application/x-web-app-manifest+json\":[\"webapp\"],\"application/x-x509-ca-cert\":[\"der\",\"crt\",\"pem\"],\"application/x-xfig\":[\"fig\"],\"application/x-xliff+xml\":[\"*xlf\"],\"application/x-xpinstall\":[\"xpi\"],\"application/x-xz\":[\"xz\"],\"application/x-zmachine\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"],\"audio/vnd.dece.audio\":[\"uva\",\"uvva\"],\"audio/vnd.digital-winds\":[\"eol\"],\"audio/vnd.dra\":[\"dra\"],\"audio/vnd.dts\":[\"dts\"],\"audio/vnd.dts.hd\":[\"dtshd\"],\"audio/vnd.lucent.voice\":[\"lvp\"],\"audio/vnd.ms-playready.media.pya\":[\"pya\"],\"audio/vnd.nuera.ecelp4800\":[\"ecelp4800\"],\"audio/vnd.nuera.ecelp7470\":[\"ecelp7470\"],\"audio/vnd.nuera.ecelp9600\":[\"ecelp9600\"],\"audio/vnd.rip\":[\"rip\"],\"audio/x-aac\":[\"aac\"],\"audio/x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"audio/x-caf\":[\"caf\"],\"audio/x-flac\":[\"flac\"],\"audio/x-m4a\":[\"*m4a\"],\"audio/x-matroska\":[\"mka\"],\"audio/x-mpegurl\":[\"m3u\"],\"audio/x-ms-wax\":[\"wax\"],\"audio/x-ms-wma\":[\"wma\"],\"audio/x-pn-realaudio\":[\"ram\",\"ra\"],\"audio/x-pn-realaudio-plugin\":[\"rmp\"],\"audio/x-realaudio\":[\"*ra\"],\"audio/x-wav\":[\"*wav\"],\"chemical/x-cdx\":[\"cdx\"],\"chemical/x-cif\":[\"cif\"],\"chemical/x-cmdf\":[\"cmdf\"],\"chemical/x-cml\":[\"cml\"],\"chemical/x-csml\":[\"csml\"],\"chemical/x-xyz\":[\"xyz\"],\"image/prs.btif\":[\"btif\"],\"image/prs.pti\":[\"pti\"],\"image/vnd.adobe.photoshop\":[\"psd\"],\"image/vnd.airzip.accelerator.azv\":[\"azv\"],\"image/vnd.dece.graphic\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"],\"image/vnd.djvu\":[\"djvu\",\"djv\"],\"image/vnd.dvb.subtitle\":[\"*sub\"],\"image/vnd.dwg\":[\"dwg\"],\"image/vnd.dxf\":[\"dxf\"],\"image/vnd.fastbidsheet\":[\"fbs\"],\"image/vnd.fpx\":[\"fpx\"],\"image/vnd.fst\":[\"fst\"],\"image/vnd.fujixerox.edmics-mmr\":[\"mmr\"],\"image/vnd.fujixerox.edmics-rlc\":[\"rlc\"],\"image/vnd.microsoft.icon\":[\"ico\"],\"image/vnd.ms-dds\":[\"dds\"],\"image/vnd.ms-modi\":[\"mdi\"],\"image/vnd.ms-photo\":[\"wdp\"],\"image/vnd.net-fpx\":[\"npx\"],\"image/vnd.pco.b16\":[\"b16\"],\"image/vnd.tencent.tap\":[\"tap\"],\"image/vnd.valve.source.texture\":[\"vtf\"],\"image/vnd.wap.wbmp\":[\"wbmp\"],\"image/vnd.xiff\":[\"xif\"],\"image/vnd.zbrush.pcx\":[\"pcx\"],\"image/x-3ds\":[\"3ds\"],\"image/x-cmu-raster\":[\"ras\"],\"image/x-cmx\":[\"cmx\"],\"image/x-freehand\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"],\"image/x-icon\":[\"*ico\"],\"image/x-jng\":[\"jng\"],\"image/x-mrsid-image\":[\"sid\"],\"image/x-ms-bmp\":[\"*bmp\"],\"image/x-pcx\":[\"*pcx\"],\"image/x-pict\":[\"pic\",\"pct\"],\"image/x-portable-anymap\":[\"pnm\"],\"image/x-portable-bitmap\":[\"pbm\"],\"image/x-portable-graymap\":[\"pgm\"],\"image/x-portable-pixmap\":[\"ppm\"],\"image/x-rgb\":[\"rgb\"],\"image/x-tga\":[\"tga\"],\"image/x-xbitmap\":[\"xbm\"],\"image/x-xpixmap\":[\"xpm\"],\"image/x-xwindowdump\":[\"xwd\"],\"message/vnd.wfa.wsc\":[\"wsc\"],\"model/vnd.collada+xml\":[\"dae\"],\"model/vnd.dwf\":[\"dwf\"],\"model/vnd.gdl\":[\"gdl\"],\"model/vnd.gtw\":[\"gtw\"],\"model/vnd.mts\":[\"mts\"],\"model/vnd.opengex\":[\"ogex\"],\"model/vnd.parasolid.transmit.binary\":[\"x_b\"],\"model/vnd.parasolid.transmit.text\":[\"x_t\"],\"model/vnd.sap.vds\":[\"vds\"],\"model/vnd.usdz+zip\":[\"usdz\"],\"model/vnd.valve.source.compiled-map\":[\"bsp\"],\"model/vnd.vtu\":[\"vtu\"],\"text/prs.lines.tag\":[\"dsc\"],\"text/vnd.curl\":[\"curl\"],\"text/vnd.curl.dcurl\":[\"dcurl\"],\"text/vnd.curl.mcurl\":[\"mcurl\"],\"text/vnd.curl.scurl\":[\"scurl\"],\"text/vnd.dvb.subtitle\":[\"sub\"],\"text/vnd.fly\":[\"fly\"],\"text/vnd.fmi.flexstor\":[\"flx\"],\"text/vnd.graphviz\":[\"gv\"],\"text/vnd.in3d.3dml\":[\"3dml\"],\"text/vnd.in3d.spot\":[\"spot\"],\"text/vnd.sun.j2me.app-descriptor\":[\"jad\"],\"text/vnd.wap.wml\":[\"wml\"],\"text/vnd.wap.wmlscript\":[\"wmls\"],\"text/x-asm\":[\"s\",\"asm\"],\"text/x-c\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"],\"text/x-component\":[\"htc\"],\"text/x-fortran\":[\"f\",\"for\",\"f77\",\"f90\"],\"text/x-handlebars-template\":[\"hbs\"],\"text/x-java-source\":[\"java\"],\"text/x-lua\":[\"lua\"],\"text/x-markdown\":[\"mkd\"],\"text/x-nfo\":[\"nfo\"],\"text/x-opml\":[\"opml\"],\"text/x-org\":[\"*org\"],\"text/x-pascal\":[\"p\",\"pas\"],\"text/x-processing\":[\"pde\"],\"text/x-sass\":[\"sass\"],\"text/x-scss\":[\"scss\"],\"text/x-setext\":[\"etx\"],\"text/x-sfv\":[\"sfv\"],\"text/x-suse-ymp\":[\"ymp\"],\"text/x-uuencode\":[\"uu\"],\"text/x-vcalendar\":[\"vcs\"],\"text/x-vcard\":[\"vcf\"],\"video/vnd.dece.hd\":[\"uvh\",\"uvvh\"],\"video/vnd.dece.mobile\":[\"uvm\",\"uvvm\"],\"video/vnd.dece.pd\":[\"uvp\",\"uvvp\"],\"video/vnd.dece.sd\":[\"uvs\",\"uvvs\"],\"video/vnd.dece.video\":[\"uvv\",\"uvvv\"],\"video/vnd.dvb.file\":[\"dvb\"],\"video/vnd.fvt\":[\"fvt\"],\"video/vnd.mpegurl\":[\"mxu\",\"m4u\"],\"video/vnd.ms-playready.media.pyv\":[\"pyv\"],\"video/vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"video/vnd.vivo\":[\"viv\"],\"video/x-f4v\":[\"f4v\"],\"video/x-fli\":[\"fli\"],\"video/x-flv\":[\"flv\"],\"video/x-m4v\":[\"m4v\"],\"video/x-matroska\":[\"mkv\",\"mk3d\",\"mks\"],\"video/x-mng\":[\"mng\"],\"video/x-ms-asf\":[\"asf\",\"asx\"],\"video/x-ms-vob\":[\"vob\"],\"video/x-ms-wm\":[\"wm\"],\"video/x-ms-wmv\":[\"wmv\"],\"video/x-ms-wmx\":[\"wmx\"],\"video/x-ms-wvx\":[\"wvx\"],\"video/x-msvideo\":[\"avi\"],\"video/x-sgi-movie\":[\"movie\"],\"video/x-smv\":[\"smv\"],\"x-conference/x-cooltalk\":[\"ice\"]};","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","(function (factory) {\n if (typeof exports === \"object\" && typeof module === \"object\") {\n module.exports = factory();\n } else if (typeof define === \"function\" && define.amd) {\n define(factory);\n } else {\n var root =\n typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof global !== \"undefined\"\n ? global\n : typeof self !== \"undefined\"\n ? self\n : this || {};\n root.doc = factory();\n }\n})(function() {\n \"use strict\";\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n };\n\n // dist/_doc.js.umd.js\n var require_doc_js_umd = __commonJS({\n \"dist/_doc.js.umd.js\"(exports, module) {\n var __create = Object.create;\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames2 = Object.getOwnPropertyNames;\n var __getProtoOf = Object.getPrototypeOf;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res;\n };\n var __commonJS2 = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = {\n exports: {}\n }).exports, mod), mod.exports;\n };\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, {\n get: all[name],\n enumerable: true\n });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames2(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, {\n get: () => from[key],\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n return to;\n };\n var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n value: mod,\n enumerable: true\n }) : target, mod));\n var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", {\n value: true\n }), mod);\n var init_define_process = __esm({\n \"\"() {\n }\n });\n var require_doc_builders = __commonJS2({\n \"src/document/doc-builders.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n function concat(parts) {\n if (false) {\n for (const part of parts) {\n assertDoc(part);\n }\n }\n return {\n type: \"concat\",\n parts\n };\n }\n function indent(contents) {\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"indent\",\n contents\n };\n }\n function align(widthOrString, contents) {\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"align\",\n contents,\n n: widthOrString\n };\n }\n function group(contents) {\n let opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"group\",\n id: opts.id,\n contents,\n break: Boolean(opts.shouldBreak),\n expandedStates: opts.expandedStates\n };\n }\n function dedentToRoot(contents) {\n return align(Number.NEGATIVE_INFINITY, contents);\n }\n function markAsRoot(contents) {\n return align({\n type: \"root\"\n }, contents);\n }\n function dedent(contents) {\n return align(-1, contents);\n }\n function conditionalGroup(states, opts) {\n return group(states[0], Object.assign(Object.assign({}, opts), {}, {\n expandedStates: states\n }));\n }\n function fill(parts) {\n if (false) {\n for (const part of parts) {\n assertDoc(part);\n }\n }\n return {\n type: \"fill\",\n parts\n };\n }\n function ifBreak(breakContents, flatContents) {\n let opts = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n if (false) {\n if (breakContents) {\n assertDoc(breakContents);\n }\n if (flatContents) {\n assertDoc(flatContents);\n }\n }\n return {\n type: \"if-break\",\n breakContents,\n flatContents,\n groupId: opts.groupId\n };\n }\n function indentIfBreak(contents, opts) {\n return {\n type: \"indent-if-break\",\n contents,\n groupId: opts.groupId,\n negate: opts.negate\n };\n }\n function lineSuffix(contents) {\n if (false) {\n assertDoc(contents);\n }\n return {\n type: \"line-suffix\",\n contents\n };\n }\n var lineSuffixBoundary = {\n type: \"line-suffix-boundary\"\n };\n var breakParent = {\n type: \"break-parent\"\n };\n var trim = {\n type: \"trim\"\n };\n var hardlineWithoutBreakParent = {\n type: \"line\",\n hard: true\n };\n var literallineWithoutBreakParent = {\n type: \"line\",\n hard: true,\n literal: true\n };\n var line = {\n type: \"line\"\n };\n var softline = {\n type: \"line\",\n soft: true\n };\n var hardline = concat([hardlineWithoutBreakParent, breakParent]);\n var literalline = concat([literallineWithoutBreakParent, breakParent]);\n var cursor = {\n type: \"cursor\",\n placeholder: Symbol(\"cursor\")\n };\n function join(sep, arr) {\n const res = [];\n for (let i = 0; i < arr.length; i++) {\n if (i !== 0) {\n res.push(sep);\n }\n res.push(arr[i]);\n }\n return concat(res);\n }\n function addAlignmentToDoc(doc, size, tabWidth) {\n let aligned = doc;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n }\n function label(label2, contents) {\n return {\n type: \"label\",\n label: label2,\n contents\n };\n }\n module2.exports = {\n concat,\n join,\n line,\n softline,\n hardline,\n literalline,\n group,\n conditionalGroup,\n fill,\n lineSuffix,\n lineSuffixBoundary,\n cursor,\n breakParent,\n ifBreak,\n trim,\n indent,\n indentIfBreak,\n align,\n addAlignmentToDoc,\n markAsRoot,\n dedentToRoot,\n dedent,\n hardlineWithoutBreakParent,\n literallineWithoutBreakParent,\n label\n };\n }\n });\n var require_end_of_line = __commonJS2({\n \"src/common/end-of-line.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n function guessEndOfLine(text) {\n const index = text.indexOf(\"\\r\");\n if (index >= 0) {\n return text.charAt(index + 1) === \"\\n\" ? \"crlf\" : \"cr\";\n }\n return \"lf\";\n }\n function convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\n\";\n }\n }\n function countEndOfLineChars(text, eol) {\n let regex;\n switch (eol) {\n case \"\\n\":\n regex = /\\n/g;\n break;\n case \"\\r\":\n regex = /\\r/g;\n break;\n case \"\\r\\n\":\n regex = /\\r\\n/g;\n break;\n default:\n throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(eol), \".\"));\n }\n const endOfLines = text.match(regex);\n return endOfLines ? endOfLines.length : 0;\n }\n function normalizeEndOfLine(text) {\n return text.replace(/\\r\\n?/g, \"\\n\");\n }\n module2.exports = {\n guessEndOfLine,\n convertEndOfLineToChars,\n countEndOfLineChars,\n normalizeEndOfLine\n };\n }\n });\n var require_get_last = __commonJS2({\n \"src/utils/get-last.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var getLast = (arr) => arr[arr.length - 1];\n module2.exports = getLast;\n }\n });\n function ansiRegex() {\n let {\n onlyFirst = false\n } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n const pattern = [\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\", \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");\n return new RegExp(pattern, onlyFirst ? void 0 : \"g\");\n }\n var init_ansi_regex = __esm({\n \"node_modules/strip-ansi/node_modules/ansi-regex/index.js\"() {\n init_define_process();\n }\n });\n function stripAnsi(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a `string`, got `\".concat(typeof string, \"`\"));\n }\n return string.replace(ansiRegex(), \"\");\n }\n var init_strip_ansi = __esm({\n \"node_modules/strip-ansi/index.js\"() {\n init_define_process();\n init_ansi_regex();\n }\n });\n function isFullwidthCodePoint(codePoint) {\n if (!Number.isInteger(codePoint)) {\n return false;\n }\n return codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141);\n }\n var init_is_fullwidth_code_point = __esm({\n \"node_modules/is-fullwidth-code-point/index.js\"() {\n init_define_process();\n }\n });\n var require_emoji_regex = __commonJS2({\n \"node_modules/emoji-regex/index.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n module2.exports = function() {\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n };\n }\n });\n var string_width_exports = {};\n __export(string_width_exports, {\n default: () => stringWidth\n });\n function stringWidth(string) {\n if (typeof string !== \"string\" || string.length === 0) {\n return 0;\n }\n string = stripAnsi(string);\n if (string.length === 0) {\n return 0;\n }\n string = string.replace((0, import_emoji_regex.default)(), \" \");\n let width = 0;\n for (let index = 0; index < string.length; index++) {\n const codePoint = string.codePointAt(index);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n if (codePoint > 65535) {\n index++;\n }\n width += isFullwidthCodePoint(codePoint) ? 2 : 1;\n }\n return width;\n }\n var import_emoji_regex;\n var init_string_width = __esm({\n \"node_modules/string-width/index.js\"() {\n init_define_process();\n init_strip_ansi();\n init_is_fullwidth_code_point();\n import_emoji_regex = __toESM(require_emoji_regex());\n }\n });\n var require_get_string_width = __commonJS2({\n \"src/utils/get-string-width.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var stringWidth2 = (init_string_width(), __toCommonJS(string_width_exports)).default;\n var notAsciiRegex = /[^\\x20-\\x7F]/;\n function getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n return stringWidth2(text);\n }\n module2.exports = getStringWidth;\n }\n });\n var require_doc_utils = __commonJS2({\n \"src/document/doc-utils.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var getLast = require_get_last();\n var {\n literalline,\n join\n } = require_doc_builders();\n var isConcat = (doc) => Array.isArray(doc) || doc && doc.type === \"concat\";\n var getDocParts = (doc) => {\n if (Array.isArray(doc)) {\n return doc;\n }\n if (doc.type !== \"concat\" && doc.type !== \"fill\") {\n throw new Error(\"Expect doc type to be `concat` or `fill`.\");\n }\n return doc.parts;\n };\n var traverseDocOnExitStackMarker = {};\n function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {\n const docsStack = [doc];\n while (docsStack.length > 0) {\n const doc2 = docsStack.pop();\n if (doc2 === traverseDocOnExitStackMarker) {\n onExit(docsStack.pop());\n continue;\n }\n if (onExit) {\n docsStack.push(doc2, traverseDocOnExitStackMarker);\n }\n if (!onEnter || onEnter(doc2) !== false) {\n if (isConcat(doc2) || doc2.type === \"fill\") {\n const parts = getDocParts(doc2);\n for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(parts[i]);\n }\n } else if (doc2.type === \"if-break\") {\n if (doc2.flatContents) {\n docsStack.push(doc2.flatContents);\n }\n if (doc2.breakContents) {\n docsStack.push(doc2.breakContents);\n }\n } else if (doc2.type === \"group\" && doc2.expandedStates) {\n if (shouldTraverseConditionalGroups) {\n for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(doc2.expandedStates[i]);\n }\n } else {\n docsStack.push(doc2.contents);\n }\n } else if (doc2.contents) {\n docsStack.push(doc2.contents);\n }\n }\n }\n }\n function mapDoc(doc, cb) {\n const mapped = /* @__PURE__ */ new Map();\n return rec(doc);\n function rec(doc2) {\n if (mapped.has(doc2)) {\n return mapped.get(doc2);\n }\n const result = process2(doc2);\n mapped.set(doc2, result);\n return result;\n }\n function process2(doc2) {\n if (Array.isArray(doc2)) {\n return cb(doc2.map(rec));\n }\n if (doc2.type === \"concat\" || doc2.type === \"fill\") {\n const parts = doc2.parts.map(rec);\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n parts\n }));\n }\n if (doc2.type === \"if-break\") {\n const breakContents = doc2.breakContents && rec(doc2.breakContents);\n const flatContents = doc2.flatContents && rec(doc2.flatContents);\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n breakContents,\n flatContents\n }));\n }\n if (doc2.type === \"group\" && doc2.expandedStates) {\n const expandedStates = doc2.expandedStates.map(rec);\n const contents = expandedStates[0];\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n contents,\n expandedStates\n }));\n }\n if (doc2.contents) {\n const contents = rec(doc2.contents);\n return cb(Object.assign(Object.assign({}, doc2), {}, {\n contents\n }));\n }\n return cb(doc2);\n }\n }\n function findInDoc(doc, fn, defaultValue) {\n let result = defaultValue;\n let hasStopped = false;\n function findInDocOnEnterFn(doc2) {\n const maybeResult = fn(doc2);\n if (maybeResult !== void 0) {\n hasStopped = true;\n result = maybeResult;\n }\n if (hasStopped) {\n return false;\n }\n }\n traverseDoc(doc, findInDocOnEnterFn);\n return result;\n }\n function willBreakFn(doc) {\n if (doc.type === \"group\" && doc.break) {\n return true;\n }\n if (doc.type === \"line\" && doc.hard) {\n return true;\n }\n if (doc.type === \"break-parent\") {\n return true;\n }\n }\n function willBreak(doc) {\n return findInDoc(doc, willBreakFn, false);\n }\n function breakParentGroup(groupStack) {\n if (groupStack.length > 0) {\n const parentGroup = getLast(groupStack);\n if (!parentGroup.expandedStates && !parentGroup.break) {\n parentGroup.break = \"propagated\";\n }\n }\n return null;\n }\n function propagateBreaks(doc) {\n const alreadyVisitedSet = /* @__PURE__ */ new Set();\n const groupStack = [];\n function propagateBreaksOnEnterFn(doc2) {\n if (doc2.type === \"break-parent\") {\n breakParentGroup(groupStack);\n }\n if (doc2.type === \"group\") {\n groupStack.push(doc2);\n if (alreadyVisitedSet.has(doc2)) {\n return false;\n }\n alreadyVisitedSet.add(doc2);\n }\n }\n function propagateBreaksOnExitFn(doc2) {\n if (doc2.type === \"group\") {\n const group = groupStack.pop();\n if (group.break) {\n breakParentGroup(groupStack);\n }\n }\n }\n traverseDoc(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, true);\n }\n function removeLinesFn(doc) {\n if (doc.type === \"line\" && !doc.hard) {\n return doc.soft ? \"\" : \" \";\n }\n if (doc.type === \"if-break\") {\n return doc.flatContents || \"\";\n }\n return doc;\n }\n function removeLines(doc) {\n return mapDoc(doc, removeLinesFn);\n }\n var isHardline = (doc, nextDoc) => doc && doc.type === \"line\" && doc.hard && nextDoc && nextDoc.type === \"break-parent\";\n function stripDocTrailingHardlineFromDoc(doc) {\n if (!doc) {\n return doc;\n }\n if (isConcat(doc) || doc.type === \"fill\") {\n const parts = getDocParts(doc);\n while (parts.length > 1 && isHardline(...parts.slice(-2))) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripDocTrailingHardlineFromDoc(getLast(parts));\n parts[parts.length - 1] = lastPart;\n }\n return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, {\n parts\n });\n }\n switch (doc.type) {\n case \"align\":\n case \"indent\":\n case \"indent-if-break\":\n case \"group\":\n case \"line-suffix\":\n case \"label\": {\n const contents = stripDocTrailingHardlineFromDoc(doc.contents);\n return Object.assign(Object.assign({}, doc), {}, {\n contents\n });\n }\n case \"if-break\": {\n const breakContents = stripDocTrailingHardlineFromDoc(doc.breakContents);\n const flatContents = stripDocTrailingHardlineFromDoc(doc.flatContents);\n return Object.assign(Object.assign({}, doc), {}, {\n breakContents,\n flatContents\n });\n }\n }\n return doc;\n }\n function stripTrailingHardline(doc) {\n return stripDocTrailingHardlineFromDoc(cleanDoc(doc));\n }\n function cleanDocFn(doc) {\n switch (doc.type) {\n case \"fill\":\n if (doc.parts.every((part) => part === \"\")) {\n return \"\";\n }\n break;\n case \"group\":\n if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {\n return \"\";\n }\n if (doc.contents.type === \"group\" && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {\n return doc.contents;\n }\n break;\n case \"align\":\n case \"indent\":\n case \"indent-if-break\":\n case \"line-suffix\":\n if (!doc.contents) {\n return \"\";\n }\n break;\n case \"if-break\":\n if (!doc.flatContents && !doc.breakContents) {\n return \"\";\n }\n break;\n }\n if (!isConcat(doc)) {\n return doc;\n }\n const parts = [];\n for (const part of getDocParts(doc)) {\n if (!part) {\n continue;\n }\n const [currentPart, ...restParts] = isConcat(part) ? getDocParts(part) : [part];\n if (typeof currentPart === \"string\" && typeof getLast(parts) === \"string\") {\n parts[parts.length - 1] += currentPart;\n } else {\n parts.push(currentPart);\n }\n parts.push(...restParts);\n }\n if (parts.length === 0) {\n return \"\";\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, {\n parts\n });\n }\n function cleanDoc(doc) {\n return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));\n }\n function normalizeParts(parts) {\n const newParts = [];\n const restParts = parts.filter(Boolean);\n while (restParts.length > 0) {\n const part = restParts.shift();\n if (!part) {\n continue;\n }\n if (isConcat(part)) {\n restParts.unshift(...getDocParts(part));\n continue;\n }\n if (newParts.length > 0 && typeof getLast(newParts) === \"string\" && typeof part === \"string\") {\n newParts[newParts.length - 1] += part;\n continue;\n }\n newParts.push(part);\n }\n return newParts;\n }\n function normalizeDoc(doc) {\n return mapDoc(doc, (currentDoc) => {\n if (Array.isArray(currentDoc)) {\n return normalizeParts(currentDoc);\n }\n if (!currentDoc.parts) {\n return currentDoc;\n }\n return Object.assign(Object.assign({}, currentDoc), {}, {\n parts: normalizeParts(currentDoc.parts)\n });\n });\n }\n function replaceEndOfLine(doc) {\n return mapDoc(doc, (currentDoc) => typeof currentDoc === \"string\" && currentDoc.includes(\"\\n\") ? replaceTextEndOfLine(currentDoc) : currentDoc);\n }\n function replaceTextEndOfLine(text) {\n let replacement = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : literalline;\n return join(replacement, text.split(\"\\n\")).parts;\n }\n function canBreakFn(doc) {\n if (doc.type === \"line\") {\n return true;\n }\n }\n function canBreak(doc) {\n return findInDoc(doc, canBreakFn, false);\n }\n module2.exports = {\n isConcat,\n getDocParts,\n willBreak,\n traverseDoc,\n findInDoc,\n mapDoc,\n propagateBreaks,\n removeLines,\n stripTrailingHardline,\n normalizeParts,\n normalizeDoc,\n cleanDoc,\n replaceTextEndOfLine,\n replaceEndOfLine,\n canBreak\n };\n }\n });\n var require_doc_printer = __commonJS2({\n \"src/document/doc-printer.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var {\n convertEndOfLineToChars\n } = require_end_of_line();\n var getLast = require_get_last();\n var getStringWidth = require_get_string_width();\n var {\n fill,\n cursor,\n indent\n } = require_doc_builders();\n var {\n isConcat,\n getDocParts\n } = require_doc_utils();\n var groupModeMap;\n var MODE_BREAK = 1;\n var MODE_FLAT = 2;\n function rootIndent() {\n return {\n value: \"\",\n length: 0,\n queue: []\n };\n }\n function makeIndent(ind, options) {\n return generateInd(ind, {\n type: \"indent\"\n }, options);\n }\n function makeAlign(indent2, widthOrDoc, options) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, {\n type: \"dedent\"\n }, options);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return Object.assign(Object.assign({}, indent2), {}, {\n root: indent2\n });\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, {\n type: alignType,\n n: widthOrDoc\n }, options);\n }\n function generateInd(ind, newPart, options) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(\"Unexpected type '\".concat(part.type, \"'\"));\n }\n }\n flushSpaces();\n return Object.assign(Object.assign({}, ind), {}, {\n value,\n length,\n queue\n });\n function addTabs(count) {\n value += \"\t\".repeat(count);\n length += options.tabWidth * count;\n }\n function addSpaces(count) {\n value += \" \".repeat(count);\n length += count;\n }\n function flush() {\n if (options.useTabs) {\n flushTabs();\n } else {\n flushSpaces();\n }\n }\n function flushTabs() {\n if (lastTabs > 0) {\n addTabs(lastTabs);\n }\n resetLast();\n }\n function flushSpaces() {\n if (lastSpaces > 0) {\n addSpaces(lastSpaces);\n }\n resetLast();\n }\n function resetLast() {\n lastTabs = 0;\n lastSpaces = 0;\n }\n }\n function trim(out) {\n if (out.length === 0) {\n return 0;\n }\n let trimCount = 0;\n while (out.length > 0 && typeof getLast(out) === \"string\" && /^[\\t ]*$/.test(getLast(out))) {\n trimCount += out.pop().length;\n }\n if (out.length > 0 && typeof getLast(out) === \"string\") {\n const trimmed = getLast(out).replace(/[\\t ]*$/, \"\");\n trimCount += getLast(out).length - trimmed.length;\n out[out.length - 1] = trimmed;\n }\n return trimCount;\n }\n function fits(next, restCommands, width, options, hasLineSuffix, mustBeFlat) {\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[restIdx - 1]);\n restIdx--;\n continue;\n }\n const [ind, mode, doc] = cmds.pop();\n if (typeof doc === \"string\") {\n out.push(doc);\n width -= getStringWidth(doc);\n } else if (isConcat(doc)) {\n const parts = getDocParts(doc);\n for (let i = parts.length - 1; i >= 0; i--) {\n cmds.push([ind, mode, parts[i]]);\n }\n } else {\n switch (doc.type) {\n case \"indent\":\n cmds.push([makeIndent(ind, options), mode, doc.contents]);\n break;\n case \"align\":\n cmds.push([makeAlign(ind, doc.n, options), mode, doc.contents]);\n break;\n case \"trim\":\n width += trim(out);\n break;\n case \"group\": {\n if (mustBeFlat && doc.break) {\n return false;\n }\n const groupMode = doc.break ? MODE_BREAK : mode;\n cmds.push([ind, groupMode, doc.expandedStates && groupMode === MODE_BREAK ? getLast(doc.expandedStates) : doc.contents]);\n if (doc.id) {\n groupModeMap[doc.id] = groupMode;\n }\n break;\n }\n case \"fill\":\n for (let i = doc.parts.length - 1; i >= 0; i--) {\n cmds.push([ind, mode, doc.parts[i]]);\n }\n break;\n case \"if-break\":\n case \"indent-if-break\": {\n const groupMode = doc.groupId ? groupModeMap[doc.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc.type === \"if-break\" ? doc.breakContents : doc.negate ? doc.contents : indent(doc.contents);\n if (breakContents) {\n cmds.push([ind, mode, breakContents]);\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc.type === \"if-break\" ? doc.flatContents : doc.negate ? indent(doc.contents) : doc.contents;\n if (flatContents) {\n cmds.push([ind, mode, flatContents]);\n }\n }\n break;\n }\n case \"line\":\n switch (mode) {\n case MODE_FLAT:\n if (!doc.hard) {\n if (!doc.soft) {\n out.push(\" \");\n width -= 1;\n }\n break;\n }\n return true;\n case MODE_BREAK:\n return true;\n }\n break;\n case \"line-suffix\":\n hasLineSuffix = true;\n break;\n case \"line-suffix-boundary\":\n if (hasLineSuffix) {\n return false;\n }\n break;\n case \"label\":\n cmds.push([ind, mode, doc.contents]);\n break;\n }\n }\n }\n return false;\n }\n function printDocToString(doc, options) {\n groupModeMap = {};\n const width = options.printWidth;\n const newLine = convertEndOfLineToChars(options.endOfLine);\n let pos = 0;\n const cmds = [[rootIndent(), MODE_BREAK, doc]];\n const out = [];\n let shouldRemeasure = false;\n let lineSuffix = [];\n while (cmds.length > 0) {\n const [ind, mode, doc2] = cmds.pop();\n if (typeof doc2 === \"string\") {\n const formatted = newLine !== \"\\n\" ? doc2.replace(/\\n/g, newLine) : doc2;\n out.push(formatted);\n pos += getStringWidth(formatted);\n } else if (isConcat(doc2)) {\n const parts = getDocParts(doc2);\n for (let i = parts.length - 1; i >= 0; i--) {\n cmds.push([ind, mode, parts[i]]);\n }\n } else {\n switch (doc2.type) {\n case \"cursor\":\n out.push(cursor.placeholder);\n break;\n case \"indent\":\n cmds.push([makeIndent(ind, options), mode, doc2.contents]);\n break;\n case \"align\":\n cmds.push([makeAlign(ind, doc2.n, options), mode, doc2.contents]);\n break;\n case \"trim\":\n pos -= trim(out);\n break;\n case \"group\":\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push([ind, doc2.break ? MODE_BREAK : MODE_FLAT, doc2.contents]);\n break;\n }\n case MODE_BREAK: {\n shouldRemeasure = false;\n const next = [ind, MODE_FLAT, doc2.contents];\n const rem = width - pos;\n const hasLineSuffix = lineSuffix.length > 0;\n if (!doc2.break && fits(next, cmds, rem, options, hasLineSuffix)) {\n cmds.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = getLast(doc2.expandedStates);\n if (doc2.break) {\n cmds.push([ind, MODE_BREAK, mostExpanded]);\n break;\n } else {\n for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n if (i >= doc2.expandedStates.length) {\n cmds.push([ind, MODE_BREAK, mostExpanded]);\n break;\n } else {\n const state = doc2.expandedStates[i];\n const cmd = [ind, MODE_FLAT, state];\n if (fits(cmd, cmds, rem, options, hasLineSuffix)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push([ind, MODE_BREAK, doc2.contents]);\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = getLast(cmds)[1];\n }\n break;\n case \"fill\": {\n const rem = width - pos;\n const {\n parts\n } = doc2;\n if (parts.length === 0) {\n break;\n }\n const [content, whitespace] = parts;\n const contentFlatCmd = [ind, MODE_FLAT, content];\n const contentBreakCmd = [ind, MODE_BREAK, content];\n const contentFits = fits(contentFlatCmd, [], rem, options, lineSuffix.length > 0, true);\n if (parts.length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = [ind, MODE_FLAT, whitespace];\n const whitespaceBreakCmd = [ind, MODE_BREAK, whitespace];\n if (parts.length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n parts.splice(0, 2);\n const remainingCmd = [ind, mode, fill(parts)];\n const secondContent = parts[0];\n const firstAndSecondContentFlatCmd = [ind, MODE_FLAT, [content, whitespace, secondContent]];\n const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, options, lineSuffix.length > 0, true);\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n case \"if-break\":\n case \"indent-if-break\": {\n const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc2.type === \"if-break\" ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);\n if (breakContents) {\n cmds.push([ind, mode, breakContents]);\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc2.type === \"if-break\" ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;\n if (flatContents) {\n cmds.push([ind, mode, flatContents]);\n }\n }\n break;\n }\n case \"line-suffix\":\n lineSuffix.push([ind, mode, doc2.contents]);\n break;\n case \"line-suffix-boundary\":\n if (lineSuffix.length > 0) {\n cmds.push([ind, mode, {\n type: \"line\",\n hard: true\n }]);\n }\n break;\n case \"line\":\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n out.push(\" \");\n pos += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n case MODE_BREAK:\n if (lineSuffix.length > 0) {\n cmds.push([ind, mode, doc2], ...lineSuffix.reverse());\n lineSuffix = [];\n break;\n }\n if (doc2.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos = ind.root.length;\n } else {\n out.push(newLine);\n pos = 0;\n }\n } else {\n pos -= trim(out);\n out.push(newLine + ind.value);\n pos = ind.length;\n }\n break;\n }\n break;\n case \"label\":\n cmds.push([ind, mode, doc2.contents]);\n break;\n default:\n }\n }\n if (cmds.length === 0 && lineSuffix.length > 0) {\n cmds.push(...lineSuffix.reverse());\n lineSuffix = [];\n }\n }\n const cursorPlaceholderIndex = out.indexOf(cursor.placeholder);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(cursor.placeholder, cursorPlaceholderIndex + 1);\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return {\n formatted: out.join(\"\")\n };\n }\n module2.exports = {\n printDocToString\n };\n }\n });\n var require_doc_debug = __commonJS2({\n \"src/document/doc-debug.js\"(exports2, module2) {\n \"use strict\";\n init_define_process();\n var {\n isConcat,\n getDocParts\n } = require_doc_utils();\n function flattenDoc(doc) {\n if (!doc) {\n return \"\";\n }\n if (isConcat(doc)) {\n const res = [];\n for (const part of getDocParts(doc)) {\n if (isConcat(part)) {\n res.push(...flattenDoc(part).parts);\n } else {\n const flattened = flattenDoc(part);\n if (flattened !== \"\") {\n res.push(flattened);\n }\n }\n }\n return {\n type: \"concat\",\n parts: res\n };\n }\n if (doc.type === \"if-break\") {\n return Object.assign(Object.assign({}, doc), {}, {\n breakContents: flattenDoc(doc.breakContents),\n flatContents: flattenDoc(doc.flatContents)\n });\n }\n if (doc.type === \"group\") {\n return Object.assign(Object.assign({}, doc), {}, {\n contents: flattenDoc(doc.contents),\n expandedStates: doc.expandedStates && doc.expandedStates.map(flattenDoc)\n });\n }\n if (doc.type === \"fill\") {\n return {\n type: \"fill\",\n parts: doc.parts.map(flattenDoc)\n };\n }\n if (doc.contents) {\n return Object.assign(Object.assign({}, doc), {}, {\n contents: flattenDoc(doc.contents)\n });\n }\n return doc;\n }\n function printDocToDebug(doc) {\n const printedSymbols = /* @__PURE__ */ Object.create(null);\n const usedKeysForSymbols = /* @__PURE__ */ new Set();\n return printDoc(flattenDoc(doc));\n function printDoc(doc2, index, parentParts) {\n if (typeof doc2 === \"string\") {\n return JSON.stringify(doc2);\n }\n if (isConcat(doc2)) {\n const printed = getDocParts(doc2).map(printDoc).filter(Boolean);\n return printed.length === 1 ? printed[0] : \"[\".concat(printed.join(\", \"), \"]\");\n }\n if (doc2.type === \"line\") {\n const withBreakParent = Array.isArray(parentParts) && parentParts[index + 1] && parentParts[index + 1].type === \"break-parent\";\n if (doc2.literal) {\n return withBreakParent ? \"literalline\" : \"literallineWithoutBreakParent\";\n }\n if (doc2.hard) {\n return withBreakParent ? \"hardline\" : \"hardlineWithoutBreakParent\";\n }\n if (doc2.soft) {\n return \"softline\";\n }\n return \"line\";\n }\n if (doc2.type === \"break-parent\") {\n const afterHardline = Array.isArray(parentParts) && parentParts[index - 1] && parentParts[index - 1].type === \"line\" && parentParts[index - 1].hard;\n return afterHardline ? void 0 : \"breakParent\";\n }\n if (doc2.type === \"trim\") {\n return \"trim\";\n }\n if (doc2.type === \"indent\") {\n return \"indent(\" + printDoc(doc2.contents) + \")\";\n }\n if (doc2.type === \"align\") {\n return doc2.n === Number.NEGATIVE_INFINITY ? \"dedentToRoot(\" + printDoc(doc2.contents) + \")\" : doc2.n < 0 ? \"dedent(\" + printDoc(doc2.contents) + \")\" : doc2.n.type === \"root\" ? \"markAsRoot(\" + printDoc(doc2.contents) + \")\" : \"align(\" + JSON.stringify(doc2.n) + \", \" + printDoc(doc2.contents) + \")\";\n }\n if (doc2.type === \"if-break\") {\n return \"ifBreak(\" + printDoc(doc2.breakContents) + (doc2.flatContents ? \", \" + printDoc(doc2.flatContents) : \"\") + (doc2.groupId ? (!doc2.flatContents ? ', \"\"' : \"\") + \", { groupId: \".concat(printGroupId(doc2.groupId), \" }\") : \"\") + \")\";\n }\n if (doc2.type === \"indent-if-break\") {\n const optionsParts = [];\n if (doc2.negate) {\n optionsParts.push(\"negate: true\");\n }\n if (doc2.groupId) {\n optionsParts.push(\"groupId: \".concat(printGroupId(doc2.groupId)));\n }\n const options = optionsParts.length > 0 ? \", { \".concat(optionsParts.join(\", \"), \" }\") : \"\";\n return \"indentIfBreak(\".concat(printDoc(doc2.contents)).concat(options, \")\");\n }\n if (doc2.type === \"group\") {\n const optionsParts = [];\n if (doc2.break && doc2.break !== \"propagated\") {\n optionsParts.push(\"shouldBreak: true\");\n }\n if (doc2.id) {\n optionsParts.push(\"id: \".concat(printGroupId(doc2.id)));\n }\n const options = optionsParts.length > 0 ? \", { \".concat(optionsParts.join(\", \"), \" }\") : \"\";\n if (doc2.expandedStates) {\n return \"conditionalGroup([\".concat(doc2.expandedStates.map((part) => printDoc(part)).join(\",\"), \"]\").concat(options, \")\");\n }\n return \"group(\".concat(printDoc(doc2.contents)).concat(options, \")\");\n }\n if (doc2.type === \"fill\") {\n return \"fill([\".concat(doc2.parts.map((part) => printDoc(part)).join(\", \"), \"])\");\n }\n if (doc2.type === \"line-suffix\") {\n return \"lineSuffix(\" + printDoc(doc2.contents) + \")\";\n }\n if (doc2.type === \"line-suffix-boundary\") {\n return \"lineSuffixBoundary\";\n }\n if (doc2.type === \"label\") {\n return \"label(\".concat(JSON.stringify(doc2.label), \", \").concat(printDoc(doc2.contents), \")\");\n }\n throw new Error(\"Unknown doc type \" + doc2.type);\n }\n function printGroupId(id) {\n if (typeof id !== \"symbol\") {\n return JSON.stringify(String(id));\n }\n if (id in printedSymbols) {\n return printedSymbols[id];\n }\n const prefix = String(id).slice(7, -1) || \"symbol\";\n for (let counter = 0; ; counter++) {\n const key = prefix + (counter > 0 ? \" #\".concat(counter) : \"\");\n if (!usedKeysForSymbols.has(key)) {\n usedKeysForSymbols.add(key);\n return printedSymbols[id] = \"Symbol.for(\".concat(JSON.stringify(key), \")\");\n }\n }\n }\n }\n module2.exports = {\n printDocToDebug\n };\n }\n });\n init_define_process();\n module.exports = {\n builders: require_doc_builders(),\n printer: require_doc_printer(),\n utils: require_doc_utils(),\n debug: require_doc_debug()\n };\n }\n });\n return require_doc_js_umd();\n});",null,"(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.angular=e()}})(function(){\"use strict\";var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Mn=un((jn,on)=>{var ze=Object.defineProperty,hn=Object.getOwnPropertyDescriptor,He=Object.getOwnPropertyNames,ln=Object.prototype.hasOwnProperty,Y=(e,t)=>function(){return e&&(t=(0,e[He(e)[0]])(e=0)),t},q=(e,t)=>function(){return t||(0,e[He(e)[0]])((t={exports:{}}).exports,t),t.exports},Xe=(e,t)=>{for(var n in t)ze(e,n,{get:t[n],enumerable:!0})},pn=(e,t,n,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let s of He(t))!ln.call(e,s)&&s!==n&&ze(e,s,{get:()=>t[s],enumerable:!(r=hn(t,s))||r.enumerable});return e},be=e=>pn(ze({},\"__esModule\",{value:!0}),e),L=Y({\"\"(){}}),dn=q({\"src/utils/is-non-empty-array.js\"(e,t){\"use strict\";L();function n(r){return Array.isArray(r)&&r.length>0}t.exports=n}}),fn=q({\"src/language-js/loc.js\"(e,t){\"use strict\";L();var n=dn();function r(h,P){let{ignoreDecorators:p}=P||{};if(!p){let x=h.declaration&&h.declaration.decorators||h.decorators;if(n(x))return r(x[0])}return h.range?h.range[0]:h.start}function s(h){return h.range?h.range[1]:h.end}function a(h,P){let p=r(h);return Number.isInteger(p)&&p===r(P)}function i(h,P){let p=s(h);return Number.isInteger(p)&&p===s(P)}function l(h,P){return a(h,P)&&i(h,P)}t.exports={locStart:r,locEnd:s,hasSameLocStart:a,hasSameLoc:l}}}),gn=q({\"node_modules/angular-estree-parser/node_modules/lines-and-columns/build/index.js\"(e){\"use strict\";L(),e.__esModule=!0,e.LinesAndColumns=void 0;var t=`\n`,n=\"\\r\",r=function(){function s(a){this.string=a;for(var i=[0],l=0;lthis.string.length)return null;for(var i=0,l=this.offsets;l[i+1]<=a;)i++;var h=a-l[i];return{line:i,column:h}},s.prototype.indexForLocation=function(a){var i=a.line,l=a.column;return i<0||i>=this.offsets.length||l<0||l>this.lengthOfLine(i)?null:this.offsets[i]+l},s.prototype.lengthOfLine=function(a){var i=this.offsets[a],l=a===this.offsets.length-1?this.string.length:this.offsets[a+1];return l-i},s}();e.LinesAndColumns=r,e.default=r}}),vn=q({\"node_modules/angular-estree-parser/lib/context.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.Context=void 0;var t=gn(),n=class{constructor(s){this.text=s,this.locator=new r(this.text)}};e.Context=n;var r=class{constructor(s){this._lineAndColumn=new t.default(s)}locationForIndex(s){let{line:a,column:i}=this._lineAndColumn.locationForIndex(s);return{line:a+1,column:i}}}}}),Je={};Xe(Je,{AST:()=>k,ASTWithName:()=>W,ASTWithSource:()=>G,AbsoluteSourceSpan:()=>U,AstMemoryEfficientTransformer:()=>Ct,AstTransformer:()=>Pt,Binary:()=>K,BindingPipe:()=>fe,BoundElementProperty:()=>It,Chain:()=>oe,Conditional:()=>ce,EmptyExpr:()=>M,ExpressionBinding:()=>Ze,FunctionCall:()=>Pe,ImplicitReceiver:()=>Oe,Interpolation:()=>me,KeyedRead:()=>le,KeyedWrite:()=>de,LiteralArray:()=>ge,LiteralMap:()=>ve,LiteralPrimitive:()=>B,MethodCall:()=>ye,NonNullAssert:()=>Se,ParseSpan:()=>V,ParsedEvent:()=>At,ParsedProperty:()=>Et,ParsedPropertyType:()=>se,ParsedVariable:()=>_t,ParserError:()=>ae,PrefixNot:()=>xe,PropertyRead:()=>re,PropertyWrite:()=>ue,Quote:()=>Le,RecursiveAstVisitor:()=>et,SafeKeyedRead:()=>pe,SafeMethodCall:()=>we,SafePropertyRead:()=>he,ThisReceiver:()=>Ye,Unary:()=>F,VariableBinding:()=>Re});var ae,V,k,W,Le,M,Oe,Ye,oe,ce,re,ue,he,le,pe,de,fe,B,ge,ve,me,K,F,xe,Se,ye,we,Pe,U,G,Re,Ze,et,Pt,Ct,Et,se,At,_t,It,tt=Y({\"node_modules/@angular/compiler/esm2015/src/expression_parser/ast.js\"(){L(),ae=class{constructor(e,t,n,r){this.input=t,this.errLocation=n,this.ctxLocation=r,this.message=\"Parser Error: \".concat(e,\" \").concat(n,\" [\").concat(t,\"] in \").concat(r)}},V=class{constructor(e,t){this.start=e,this.end=t}toAbsolute(e){return new U(e+this.start,e+this.end)}},k=class{constructor(e,t){this.span=e,this.sourceSpan=t}toString(){return\"AST\"}},W=class extends k{constructor(e,t,n){super(e,t),this.nameSpan=n}},Le=class extends k{constructor(e,t,n,r,s){super(e,t),this.prefix=n,this.uninterpretedExpression=r,this.location=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitQuote(this,t)}toString(){return\"Quote\"}},M=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null}},Oe=class extends k{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitImplicitReceiver(this,t)}},Ye=class extends Oe{visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;var n;return(n=e.visitThisReceiver)===null||n===void 0?void 0:n.call(e,this,t)}},oe=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitChain(this,t)}},ce=class extends k{constructor(e,t,n,r,s){super(e,t),this.condition=n,this.trueExp=r,this.falseExp=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitConditional(this,t)}},re=class extends W{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyRead(this,t)}},ue=class extends W{constructor(e,t,n,r,s,a){super(e,t,n),this.receiver=r,this.name=s,this.value=a}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPropertyWrite(this,t)}},he=class extends W{constructor(e,t,n,r,s){super(e,t,n),this.receiver=r,this.name=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafePropertyRead(this,t)}},le=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedRead(this,t)}},pe=class extends k{constructor(e,t,n,r){super(e,t),this.receiver=n,this.key=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeKeyedRead(this,t)}},de=class extends k{constructor(e,t,n,r,s){super(e,t),this.receiver=n,this.key=r,this.value=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitKeyedWrite(this,t)}},fe=class extends W{constructor(e,t,n,r,s,a){super(e,t,a),this.exp=n,this.name=r,this.args=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPipe(this,t)}},B=class extends k{constructor(e,t,n){super(e,t),this.value=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralPrimitive(this,t)}},ge=class extends k{constructor(e,t,n){super(e,t),this.expressions=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralArray(this,t)}},ve=class extends k{constructor(e,t,n,r){super(e,t),this.keys=n,this.values=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitLiteralMap(this,t)}},me=class extends k{constructor(e,t,n,r){super(e,t),this.strings=n,this.expressions=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitInterpolation(this,t)}},K=class extends k{constructor(e,t,n,r,s){super(e,t),this.operation=n,this.left=r,this.right=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitBinary(this,t)}},F=class extends K{constructor(e,t,n,r,s,a,i){super(e,t,s,a,i),this.operator=n,this.expr=r}static createMinus(e,t,n){return new F(e,t,\"-\",n,\"-\",new B(e,t,0),n)}static createPlus(e,t,n){return new F(e,t,\"+\",n,\"-\",n,new B(e,t,0))}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitUnary!==void 0?e.visitUnary(this,t):e.visitBinary(this,t)}},xe=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitPrefixNot(this,t)}},Se=class extends k{constructor(e,t,n){super(e,t),this.expression=n}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitNonNullAssert(this,t)}},ye=class extends W{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitMethodCall(this,t)}},we=class extends W{constructor(e,t,n,r,s,a,i){super(e,t,n),this.receiver=r,this.name=s,this.args=a,this.argumentSpan=i}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitSafeMethodCall(this,t)}},Pe=class extends k{constructor(e,t,n,r){super(e,t),this.target=n,this.args=r}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitFunctionCall(this,t)}},U=class{constructor(e,t){this.start=e,this.end=t}},G=class extends k{constructor(e,t,n,r,s){super(new V(0,t===null?0:t.length),new U(r,t===null?r:r+t.length)),this.ast=e,this.source=t,this.location=n,this.errors=s}visit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.visitASTWithSource?e.visitASTWithSource(this,t):this.ast.visit(e,t)}toString(){return\"\".concat(this.source,\" in \").concat(this.location)}},Re=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},Ze=class{constructor(e,t,n){this.sourceSpan=e,this.key=t,this.value=n}},et=class{visit(e,t){e.visit(this,t)}visitUnary(e,t){this.visit(e.expr,t)}visitBinary(e,t){this.visit(e.left,t),this.visit(e.right,t)}visitChain(e,t){this.visitAll(e.expressions,t)}visitConditional(e,t){this.visit(e.condition,t),this.visit(e.trueExp,t),this.visit(e.falseExp,t)}visitPipe(e,t){this.visit(e.exp,t),this.visitAll(e.args,t)}visitFunctionCall(e,t){e.target&&this.visit(e.target,t),this.visitAll(e.args,t)}visitImplicitReceiver(e,t){}visitThisReceiver(e,t){}visitInterpolation(e,t){this.visitAll(e.expressions,t)}visitKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitKeyedWrite(e,t){this.visit(e.receiver,t),this.visit(e.key,t),this.visit(e.value,t)}visitLiteralArray(e,t){this.visitAll(e.expressions,t)}visitLiteralMap(e,t){this.visitAll(e.values,t)}visitLiteralPrimitive(e,t){}visitMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitPrefixNot(e,t){this.visit(e.expression,t)}visitNonNullAssert(e,t){this.visit(e.expression,t)}visitPropertyRead(e,t){this.visit(e.receiver,t)}visitPropertyWrite(e,t){this.visit(e.receiver,t),this.visit(e.value,t)}visitSafePropertyRead(e,t){this.visit(e.receiver,t)}visitSafeMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitSafeKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitQuote(e,t){}visitAll(e,t){for(let n of e)this.visit(n,t)}},Pt=class{visitImplicitReceiver(e,t){return e}visitThisReceiver(e,t){return e}visitInterpolation(e,t){return new me(e.span,e.sourceSpan,e.strings,this.visitAll(e.expressions))}visitLiteralPrimitive(e,t){return new B(e.span,e.sourceSpan,e.value)}visitPropertyRead(e,t){return new re(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitPropertyWrite(e,t){return new ue(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,e.value.visit(this))}visitSafePropertyRead(e,t){return new he(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitMethodCall(e,t){return new ye(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitSafeMethodCall(e,t){return new we(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitFunctionCall(e,t){return new Pe(e.span,e.sourceSpan,e.target.visit(this),this.visitAll(e.args))}visitLiteralArray(e,t){return new ge(e.span,e.sourceSpan,this.visitAll(e.expressions))}visitLiteralMap(e,t){return new ve(e.span,e.sourceSpan,e.keys,this.visitAll(e.values))}visitUnary(e,t){switch(e.operator){case\"+\":return F.createPlus(e.span,e.sourceSpan,e.expr.visit(this));case\"-\":return F.createMinus(e.span,e.sourceSpan,e.expr.visit(this));default:throw new Error(\"Unknown unary operator \".concat(e.operator))}}visitBinary(e,t){return new K(e.span,e.sourceSpan,e.operation,e.left.visit(this),e.right.visit(this))}visitPrefixNot(e,t){return new xe(e.span,e.sourceSpan,e.expression.visit(this))}visitNonNullAssert(e,t){return new Se(e.span,e.sourceSpan,e.expression.visit(this))}visitConditional(e,t){return new ce(e.span,e.sourceSpan,e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this))}visitPipe(e,t){return new fe(e.span,e.sourceSpan,e.exp.visit(this),e.name,this.visitAll(e.args),e.nameSpan)}visitKeyedRead(e,t){return new le(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this))}visitKeyedWrite(e,t){return new de(e.span,e.sourceSpan,e.receiver.visit(this),e.key.visit(this),e.value.visit(this))}visitAll(e){let t=[];for(let n=0;n=nt&&e<=rt||e==dt}function Q(e){return $t<=e&&e<=jt}function xn(e){return e>=lt&&e<=pt||e>=ut&&e<=ht}function mt(e){return e===at||e===st||e===Xt}var Ce,nt,Ot,kt,Nt,bt,rt,Lt,st,Rt,it,Tt,je,at,Ee,z,Bt,ot,ee,ct,H,Te,X,te,Kt,ie,Mt,Fe,$t,jt,ut,Ft,ht,Ae,Ut,ne,Wt,Ke,lt,Gt,Vt,qt,Qt,Dt,zt,Ht,pt,Be,Ue,_e,dt,Xt,Jt=Y({\"node_modules/@angular/compiler/esm2015/src/chars.js\"(){L(),Ce=0,nt=9,Ot=10,kt=11,Nt=12,bt=13,rt=32,Lt=33,st=34,Rt=35,it=36,Tt=37,je=38,at=39,Ee=40,z=41,Bt=42,ot=43,ee=44,ct=45,H=46,Te=47,X=58,te=59,Kt=60,ie=61,Mt=62,Fe=63,$t=48,jt=57,ut=65,Ft=69,ht=90,Ae=91,Ut=92,ne=93,Wt=94,Ke=95,lt=97,Gt=101,Vt=102,qt=110,Qt=114,Dt=116,zt=117,Ht=118,pt=122,Be=123,Ue=124,_e=125,dt=160,Xt=96}}),Yt={};Xe(Yt,{EOF:()=>Ie,Lexer:()=>en,Token:()=>$,TokenType:()=>S,isIdentifier:()=>Zt});function xt(e,t,n){return new $(e,t,S.Character,n,String.fromCharCode(n))}function Sn(e,t,n){return new $(e,t,S.Identifier,0,n)}function yn(e,t,n){return new $(e,t,S.PrivateIdentifier,0,n)}function wn(e,t,n){return new $(e,t,S.Keyword,0,n)}function Me(e,t,n){return new $(e,t,S.Operator,0,n)}function Pn(e,t,n){return new $(e,t,S.String,0,n)}function Cn(e,t,n){return new $(e,t,S.Number,n,\"\")}function En(e,t,n){return new $(e,t,S.Error,0,n)}function We(e){return lt<=e&&e<=pt||ut<=e&&e<=ht||e==Ke||e==it}function Zt(e){if(e.length==0)return!1;let t=new Ve(e);if(!We(t.peek))return!1;for(t.advance();t.peek!==Ce;){if(!Ge(t.peek))return!1;t.advance()}return!0}function Ge(e){return xn(e)||Q(e)||e==Ke||e==it}function An(e){return e==Gt||e==Ft}function _n(e){return e==ct||e==ot}function In(e){switch(e){case qt:return Ot;case Vt:return Nt;case Qt:return bt;case Dt:return nt;case Ht:return kt;default:return e}}function On(e){let t=parseInt(e);if(isNaN(t))throw new Error(\"Invalid integer literal when parsing \"+e);return t}var S,St,en,$,Ie,Ve,tn=Y({\"node_modules/@angular/compiler/esm2015/src/expression_parser/lexer.js\"(){L(),Jt(),function(e){e[e.Character=0]=\"Character\",e[e.Identifier=1]=\"Identifier\",e[e.PrivateIdentifier=2]=\"PrivateIdentifier\",e[e.Keyword=3]=\"Keyword\",e[e.String=4]=\"String\",e[e.Operator=5]=\"Operator\",e[e.Number=6]=\"Number\",e[e.Error=7]=\"Error\"}(S||(S={})),St=[\"var\",\"let\",\"as\",\"null\",\"undefined\",\"true\",\"false\",\"if\",\"else\",\"this\"],en=class{tokenize(e){let t=new Ve(e),n=[],r=t.scanToken();for(;r!=null;)n.push(r),r=t.scanToken();return n}},$=class{constructor(e,t,n,r,s){this.index=e,this.end=t,this.type=n,this.numValue=r,this.strValue=s}isCharacter(e){return this.type==S.Character&&this.numValue==e}isNumber(){return this.type==S.Number}isString(){return this.type==S.String}isOperator(e){return this.type==S.Operator&&this.strValue==e}isIdentifier(){return this.type==S.Identifier}isPrivateIdentifier(){return this.type==S.PrivateIdentifier}isKeyword(){return this.type==S.Keyword}isKeywordLet(){return this.type==S.Keyword&&this.strValue==\"let\"}isKeywordAs(){return this.type==S.Keyword&&this.strValue==\"as\"}isKeywordNull(){return this.type==S.Keyword&&this.strValue==\"null\"}isKeywordUndefined(){return this.type==S.Keyword&&this.strValue==\"undefined\"}isKeywordTrue(){return this.type==S.Keyword&&this.strValue==\"true\"}isKeywordFalse(){return this.type==S.Keyword&&this.strValue==\"false\"}isKeywordThis(){return this.type==S.Keyword&&this.strValue==\"this\"}isError(){return this.type==S.Error}toNumber(){return this.type==S.Number?this.numValue:-1}toString(){switch(this.type){case S.Character:case S.Identifier:case S.Keyword:case S.Operator:case S.PrivateIdentifier:case S.String:case S.Error:return this.strValue;case S.Number:return this.numValue.toString();default:return null}}},Ie=new $(-1,-1,S.Character,0,\"\"),Ve=class{constructor(e){this.input=e,this.peek=0,this.index=-1,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?Ce:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,t=this.length,n=this.peek,r=this.index;for(;n<=rt;)if(++r>=t){n=Ce;break}else n=e.charCodeAt(r);if(this.peek=n,this.index=r,r>=t)return null;if(We(n))return this.scanIdentifier();if(Q(n))return this.scanNumber(r);let s=r;switch(n){case H:return this.advance(),Q(this.peek)?this.scanNumber(s):xt(s,this.index,H);case Ee:case z:case Be:case _e:case Ae:case ne:case ee:case X:case te:return this.scanCharacter(s,n);case at:case st:return this.scanString();case Rt:return this.scanPrivateIdentifier();case ot:case ct:case Bt:case Te:case Tt:case Wt:return this.scanOperator(s,String.fromCharCode(n));case Fe:return this.scanQuestion(s);case Kt:case Mt:return this.scanComplexOperator(s,String.fromCharCode(n),ie,\"=\");case Lt:case ie:return this.scanComplexOperator(s,String.fromCharCode(n),ie,\"=\",ie,\"=\");case je:return this.scanComplexOperator(s,\"&\",je,\"&\");case Ue:return this.scanComplexOperator(s,\"|\",Ue,\"|\");case dt:for(;mn(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(\"Unexpected character [\".concat(String.fromCharCode(n),\"]\"),0)}scanCharacter(e,t){return this.advance(),xt(e,this.index,t)}scanOperator(e,t){return this.advance(),Me(e,this.index,t)}scanComplexOperator(e,t,n,r,s,a){this.advance();let i=t;return this.peek==n&&(this.advance(),i+=r),s!=null&&this.peek==s&&(this.advance(),i+=a),Me(e,this.index,i)}scanIdentifier(){let e=this.index;for(this.advance();Ge(this.peek);)this.advance();let t=this.input.substring(e,this.index);return St.indexOf(t)>-1?wn(e,this.index,t):Sn(e,this.index,t)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!We(this.peek))return this.error(\"Invalid character [#]\",-1);for(;Ge(this.peek);)this.advance();let t=this.input.substring(e,this.index);return yn(e,this.index,t)}scanNumber(e){let t=this.index===e,n=!1;for(this.advance();;){if(!Q(this.peek))if(this.peek===Ke){if(!Q(this.input.charCodeAt(this.index-1))||!Q(this.input.charCodeAt(this.index+1)))return this.error(\"Invalid numeric separator\",0);n=!0}else if(this.peek===H)t=!1;else if(An(this.peek)){if(this.advance(),_n(this.peek)&&this.advance(),!Q(this.peek))return this.error(\"Invalid exponent\",-1);t=!1}else break;this.advance()}let r=this.input.substring(e,this.index);n&&(r=r.replace(/_/g,\"\"));let s=t?On(r):parseFloat(r);return Cn(e,this.index,s)}scanString(){let e=this.index,t=this.peek;this.advance();let n=\"\",r=this.index,s=this.input;for(;this.peek!=t;)if(this.peek==Ut){n+=s.substring(r,this.index),this.advance();let i;if(this.peek=this.peek,this.peek==zt){let l=s.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(l))i=parseInt(l,16);else return this.error(\"Invalid unicode escape [\\\\u\".concat(l,\"]\"),0);for(let h=0;h<5;h++)this.advance()}else i=In(this.peek),this.advance();n+=String.fromCharCode(i),r=this.index}else{if(this.peek==Ce)return this.error(\"Unterminated quote\",0);this.advance()}let a=s.substring(r,this.index);return this.advance(),Pn(e,this.index,n+a)}scanQuestion(e){this.advance();let t=\"?\";return(this.peek===Fe||this.peek===H)&&(t+=this.peek===H?\".\":\"?\",this.advance()),Me(e,this.index,t)}error(e,t){let n=this.index+t;return En(n,this.index,\"Lexer Error: \".concat(e,\" at column \").concat(n,\" in expression [\").concat(this.input,\"]\"))}}}});function kn(e,t){if(t!=null&&!(Array.isArray(t)&&t.length==2))throw new Error(\"Expected '\".concat(e,\"' to be an array, [start, end].\"));if(t!=null){let n=t[0],r=t[1];nn.forEach(s=>{if(s.test(n)||s.test(r))throw new Error(\"['\".concat(n,\"', '\").concat(r,\"'] contains unusable interpolation symbol.\"))})}}var nn,Nn=Y({\"node_modules/@angular/compiler/esm2015/src/assertions.js\"(){L(),nn=[/^\\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//]}}),$e,J,bn=Y({\"node_modules/@angular/compiler/esm2015/src/ml_parser/interpolation_config.js\"(){L(),Nn(),$e=class{constructor(e,t){this.start=e,this.end=t}static fromArray(e){return e?(kn(\"interpolation\",e),new $e(e[0],e[1])):J}},J=new $e(\"{{\",\"}}\")}}),rn={};Xe(rn,{IvyParser:()=>sn,Parser:()=>De,SplitInterpolation:()=>qe,TemplateBindingParseResult:()=>Qe,_ParseAST:()=>D});var qe,Qe,De,sn,Z,D,yt,wt,Ln=Y({\"node_modules/@angular/compiler/esm2015/src/expression_parser/parser.js\"(){L(),Jt(),bn(),tt(),tn(),qe=class{constructor(e,t,n){this.strings=e,this.expressions=t,this.offsets=n}},Qe=class{constructor(e,t,n){this.templateBindings=e,this.warnings=t,this.errors=n}},De=class{constructor(e){this._lexer=e,this.errors=[],this.simpleExpressionChecker=yt}parseAction(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J;this._checkNoInterpolation(e,t,r);let s=this._stripComments(e),a=this._lexer.tokenize(this._stripComments(e)),i=new D(e,t,n,a,s.length,!0,this.errors,e.length-s.length).parseChain();return new G(i,e,t,n,this.errors)}parseBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r);return new G(s,e,t,n,this.errors)}checkSimpleExpression(e){let t=new this.simpleExpressionChecker;return e.visit(t),t.errors}parseSimpleBinding(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,s=this._parseBindingAst(e,t,n,r),a=this.checkSimpleExpression(s);return a.length>0&&this._reportError(\"Host binding expression cannot contain \".concat(a.join(\" \")),e,t),new G(s,e,t,n,this.errors)}_reportError(e,t,n,r){this.errors.push(new ae(e,t,n,r))}_parseBindingAst(e,t,n,r){let s=this._parseQuote(e,t,n);if(s!=null)return s;this._checkNoInterpolation(e,t,r);let a=this._stripComments(e),i=this._lexer.tokenize(a);return new D(e,t,n,i,a.length,!1,this.errors,e.length-a.length).parseChain()}_parseQuote(e,t,n){if(e==null)return null;let r=e.indexOf(\":\");if(r==-1)return null;let s=e.substring(0,r).trim();if(!Zt(s))return null;let a=e.substring(r+1),i=new V(0,e.length);return new Le(i,i.toAbsolute(n),s,a,t)}parseTemplateBindings(e,t,n,r,s){let a=this._lexer.tokenize(t);return new D(t,n,s,a,t.length,!1,this.errors,0).parseTemplateBindings({source:e,span:new U(r,r+e.length)})}parseInterpolation(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:J,{strings:s,expressions:a,offsets:i}=this.splitInterpolation(e,t,r);if(a.length===0)return null;let l=[];for(let h=0;hh.text),l,e,t,n)}parseInterpolationExpression(e,t,n){let r=this._stripComments(e),s=this._lexer.tokenize(r),a=new D(e,t,n,s,r.length,!1,this.errors,0).parseChain(),i=[\"\",\"\"];return this.createInterpolationAst(i,[a],e,t,n)}createInterpolationAst(e,t,n,r,s){let a=new V(0,n.length),i=new me(a,a.toAbsolute(s),e,t);return new G(i,n,r,s,this.errors)}splitInterpolation(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:J,r=[],s=[],a=[],i=0,l=!1,h=!1,{start:P,end:p}=n;for(;i-1)break;a>-1&&i>-1&&this._reportError(\"Got interpolation (\".concat(r).concat(s,\") where expression was expected\"),e,\"at column \".concat(a,\" in\"),t)}_getInterpolationEndIndex(e,t,n){for(let r of this._forEachUnquotedChar(e,n)){if(e.startsWith(t,r))return r;if(e.startsWith(\"//\",r))return e.indexOf(t,r)}return-1}*_forEachUnquotedChar(e,t){let n=null,r=0;for(let s=t;s=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.inputLength+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,t){let n=this.currentEndIndex;if(t!==void 0&&t>this.currentEndIndex&&(n=t),e>n){let r=n;n=e,e=r}return new V(e,n)}sourceSpan(e,t){let n=\"\".concat(e,\"@\").concat(this.inputIndex,\":\").concat(t);return this.sourceSpanCache.has(n)||this.sourceSpanCache.set(n,this.span(e,t).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(n)}advance(){this.index++}withContext(e,t){this.context|=e;let n=t();return this.context^=e,n}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(\"Missing expected \".concat(String.fromCharCode(e)))}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error(\"Missing expected operator \".concat(e))}prettyPrintToken(e){return e===Ie?\"end of input\":\"token \".concat(e)}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,\"expected identifier or keyword\"):this.error(\"Unexpected \".concat(this.prettyPrintToken(e),\", expected identifier or keyword\")),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,\"expected identifier, keyword or string\"):this.error(\"Unexpected \".concat(this.prettyPrintToken(e),\", expected identifier, keyword, or string\")),\"\"):(this.advance(),e.toString())}parseChain(){let e=[],t=this.inputIndex;for(;this.index\":case\"<=\":case\">=\":this.advance();let r=this.parseAdditive();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseAdditive(){let e=this.inputIndex,t=this.parseMultiplicative();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case\"+\":case\"-\":this.advance();let r=this.parseMultiplicative();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parseMultiplicative(){let e=this.inputIndex,t=this.parsePrefix();for(;this.next.type==S.Operator;){let n=this.next.strValue;switch(n){case\"*\":case\"%\":case\"/\":this.advance();let r=this.parsePrefix();t=new K(this.span(e),this.sourceSpan(e),n,t,r);continue}break}return t}parsePrefix(){if(this.next.type==S.Operator){let e=this.inputIndex,t=this.next.strValue,n;switch(t){case\"+\":return this.advance(),n=this.parsePrefix(),F.createPlus(this.span(e),this.sourceSpan(e),n);case\"-\":return this.advance(),n=this.parsePrefix(),F.createMinus(this.span(e),this.sourceSpan(e),n);case\"!\":return this.advance(),n=this.parsePrefix(),new xe(this.span(e),this.sourceSpan(e),n)}}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,t=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(H))t=this.parseAccessMemberOrMethodCall(t,e,!1);else if(this.consumeOptionalOperator(\"?.\"))t=this.consumeOptionalCharacter(Ae)?this.parseKeyedReadOrWrite(t,e,!0):this.parseAccessMemberOrMethodCall(t,e,!0);else if(this.consumeOptionalCharacter(Ae))t=this.parseKeyedReadOrWrite(t,e,!1);else if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let n=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(z),t=new Pe(this.span(e),this.sourceSpan(e),t,n)}else if(this.consumeOptionalOperator(\"!\"))t=new Se(this.span(e),this.sourceSpan(e),t);else return t}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(Ee)){this.rparensExpected++;let t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(z),t}else{if(this.next.isKeywordNull())return this.advance(),new B(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new B(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new B(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new B(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Ye(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(Ae)){this.rbracketsExpected++;let t=this.parseExpressionList(ne);return this.rbracketsExpected--,this.expectCharacter(ne),new ge(this.span(e),this.sourceSpan(e),t)}else{if(this.next.isCharacter(Be))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Oe(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let t=this.next.toNumber();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else if(this.next.isString()){let t=this.next.toString();return this.advance(),new B(this.span(e),this.sourceSpan(e),t)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new M(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(\"Unexpected end of expression: \".concat(this.input)),new M(this.span(e),this.sourceSpan(e))):(this.error(\"Unexpected token \".concat(this.next)),new M(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let t=[];do if(!this.next.isCharacter(e))t.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(ee));return t}parseLiteralMap(){let e=[],t=[],n=this.inputIndex;if(this.expectCharacter(Be),!this.consumeOptionalCharacter(_e)){this.rbracesExpected++;do{let r=this.inputIndex,s=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(e.push({key:a,quoted:s}),s)this.expectCharacter(X),t.push(this.parsePipe());else if(this.consumeOptionalCharacter(X))t.push(this.parsePipe());else{let i=this.span(r),l=this.sourceSpan(r);t.push(new re(i,l,l,new Oe(i,l),a))}}while(this.consumeOptionalCharacter(ee));this.rbracesExpected--,this.expectCharacter(_e)}return new ve(this.span(n),this.sourceSpan(n),e,t)}parseAccessMemberOrMethodCall(e,t,n){let r=this.inputIndex,s=this.withContext(Z.Writable,()=>{var i;let l=(i=this.expectIdentifierOrKeyword())!==null&&i!==void 0?i:\"\";return l.length===0&&this.error(\"Expected identifier for property access\",e.span.end),l}),a=this.sourceSpan(r);if(this.consumeOptionalCharacter(Ee)){let i=this.inputIndex;this.rparensExpected++;let l=this.parseCallArguments(),h=this.span(i,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(z),this.rparensExpected--;let P=this.span(t),p=this.sourceSpan(t);return n?new we(P,p,a,e,s,l,h):new ye(P,p,a,e,s,l,h)}else{if(n)return this.consumeOptionalOperator(\"=\")?(this.error(\"The '?.' operator cannot be used in the assignment\"),new M(this.span(t),this.sourceSpan(t))):new he(this.span(t),this.sourceSpan(t),a,e,s);if(this.consumeOptionalOperator(\"=\")){if(!this.parseAction)return this.error(\"Bindings cannot contain assignments\"),new M(this.span(t),this.sourceSpan(t));let i=this.parseConditional();return new ue(this.span(t),this.sourceSpan(t),a,e,s,i)}else return new re(this.span(t),this.sourceSpan(t),a,e,s)}}parseCallArguments(){if(this.next.isCharacter(z))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(ee));return e}expectTemplateBindingKey(){let e=\"\",t=!1,n=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),t=this.consumeOptionalOperator(\"-\"),t&&(e+=\"-\");while(t);return{source:e,span:new U(n,n+e.length)}}parseTemplateBindings(e){let t=[];for(t.push(...this.parseDirectiveKeywordBindings(e));this.index{this.rbracketsExpected++;let r=this.parsePipe();if(r instanceof M&&this.error(\"Key access cannot be empty\"),this.rbracketsExpected--,this.expectCharacter(ne),this.consumeOptionalOperator(\"=\"))if(n)this.error(\"The '?.' operator cannot be used in the assignment\");else{let s=this.parseConditional();return new de(this.span(t),this.sourceSpan(t),e,r,s)}else return n?new pe(this.span(t),this.sourceSpan(t),e,r):new le(this.span(t),this.sourceSpan(t),e,r);return new M(this.span(t),this.sourceSpan(t))})}parseDirectiveKeywordBindings(e){let t=[];this.consumeOptionalCharacter(X);let n=this.getDirectiveBoundTarget(),r=this.currentAbsoluteOffset,s=this.parseAsBinding(e);s||(this.consumeStatementTerminator(),r=this.currentAbsoluteOffset);let a=new U(e.span.start,r);return t.push(new Ze(a,e,n)),s&&t.push(s),t}getDirectiveBoundTarget(){if(this.next===Ie||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:t,end:n}=e.span,r=this.input.substring(t,n);return new G(e,r,this.location,this.absoluteOffset+t,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let t=this.expectTemplateBindingKey();this.consumeStatementTerminator();let n=new U(e.span.start,this.currentAbsoluteOffset);return new Re(n,t,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let t=this.expectTemplateBindingKey(),n=null;this.consumeOptionalOperator(\"=\")&&(n=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let r=new U(e,this.currentAbsoluteOffset);return new Re(r,t,n)}consumeStatementTerminator(){this.consumeOptionalCharacter(te)||this.consumeOptionalCharacter(ee)}error(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.errors.push(new ae(e,this.input,this.locationText(t),this.location)),this.skip()}locationText(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return e==null&&(e=this.index),en.visit(this,t))}visitChain(e,t){}visitQuote(e,t){}visitSafeKeyedRead(e,t){}},wt=class extends et{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push(\"pipes\")}}}}),ft=q({\"node_modules/angular-estree-parser/lib/utils.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.getLast=e.toLowerCamelCase=e.findBackChar=e.findFrontChar=e.fitSpans=e.getNgType=e.parseNgInterpolation=e.parseNgTemplateBindings=e.parseNgAction=e.parseNgSimpleBinding=e.parseNgBinding=e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX=void 0;var t=(tt(),be(Je)),n=(tn(),be(Yt)),r=(Ln(),be(rn)),s=\"angular-estree-parser\";e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX=\"NgEstreeParser\";var a=0,i=[s,a];function l(){return new r.Parser(new n.Lexer)}function h(o,d){let y=l(),{astInput:C,comments:E}=T(o,y),{ast:I,errors:j}=d(C,y);return R(j),{ast:I,comments:E}}function P(o){return h(o,(d,y)=>y.parseBinding(d,...i))}e.parseNgBinding=P;function p(o){return h(o,(d,y)=>y.parseSimpleBinding(d,...i))}e.parseNgSimpleBinding=p;function x(o){return h(o,(d,y)=>y.parseAction(d,...i))}e.parseNgAction=x;function A(o){let d=l(),{templateBindings:y,errors:C}=d.parseTemplateBindings(e.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX,o,s,a,a);return R(C),y}e.parseNgTemplateBindings=A;function b(o){let d=l(),{astInput:y,comments:C}=T(o,d),E=\"{{\",I=\"}}\",{ast:j,errors:cn}=d.parseInterpolation(E+y+I,...i);R(cn);let gt=j.expressions[0],vt=new Set;return _(gt,ke=>{vt.has(ke)||(ke.start-=E.length,ke.end-=E.length,vt.add(ke))}),{ast:gt,comments:C}}e.parseNgInterpolation=b;function _(o,d){if(!(!o||typeof o!=\"object\")){if(Array.isArray(o))return o.forEach(y=>_(y,d));for(let y of Object.keys(o)){let C=o[y];y===\"span\"?d(C):_(C,d)}}}function R(o){if(o.length!==0){let[{message:d}]=o;throw new SyntaxError(d.replace(/^Parser Error: | at column \\d+ in [^]*$/g,\"\"))}}function T(o,d){let y=d._commentStart(o);return y===null?{astInput:o,comments:[]}:{astInput:o.slice(0,y),comments:[{type:\"Comment\",value:o.slice(y+2),span:{start:y,end:o.length}}]}}function O(o){return t.Unary&&o instanceof t.Unary?\"Unary\":o instanceof t.Binary?\"Binary\":o instanceof t.BindingPipe?\"BindingPipe\":o instanceof t.Chain?\"Chain\":o instanceof t.Conditional?\"Conditional\":o instanceof t.EmptyExpr?\"EmptyExpr\":o instanceof t.FunctionCall?\"FunctionCall\":o instanceof t.ImplicitReceiver?\"ImplicitReceiver\":o instanceof t.KeyedRead?\"KeyedRead\":o instanceof t.KeyedWrite?\"KeyedWrite\":o instanceof t.LiteralArray?\"LiteralArray\":o instanceof t.LiteralMap?\"LiteralMap\":o instanceof t.LiteralPrimitive?\"LiteralPrimitive\":o instanceof t.MethodCall?\"MethodCall\":o instanceof t.NonNullAssert?\"NonNullAssert\":o instanceof t.PrefixNot?\"PrefixNot\":o instanceof t.PropertyRead?\"PropertyRead\":o instanceof t.PropertyWrite?\"PropertyWrite\":o instanceof t.Quote?\"Quote\":o instanceof t.SafeMethodCall?\"SafeMethodCall\":o instanceof t.SafePropertyRead?\"SafePropertyRead\":o.type}e.getNgType=O;function N(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==E&&/\\s/.test(d[I-1]);)I--;for(;E!==I&&/\\s/.test(d[E]);)E++;return{start:E,end:I}}function c(o,d){let{start:y,end:C}=o,E=y,I=C;for(;I!==d.length&&/\\s/.test(d[I]);)I++;for(;E!==0&&/\\s/.test(d[E-1]);)E--;return{start:E,end:I}}function g(o,d){return d[o.start-1]===\"(\"&&d[o.end]===\")\"?{start:o.start-1,end:o.end+1}:o}function u(o,d,y){let C=0,E={start:o.start,end:o.end};for(;;){let I=c(E,d),j=g(I,d);if(I.start===j.start&&I.end===j.end)break;E.start=j.start,E.end=j.end,C++}return{hasParens:(y?C-1:C)!==0,outerSpan:N(y?{start:E.start+1,end:E.end-1}:E,d),innerSpan:N(o,d)}}e.fitSpans=u;function v(o,d,y){let C=d;for(;!o.test(y[C]);)if(--C<0)throw new Error(\"Cannot find front char \".concat(o,\" from index \").concat(d,\" in \").concat(JSON.stringify(y)));return C}e.findFrontChar=v;function m(o,d,y){let C=d;for(;!o.test(y[C]);)if(++C>=y.length)throw new Error(\"Cannot find back char \".concat(o,\" from index \").concat(d,\" in \").concat(JSON.stringify(y)));return C}e.findBackChar=m;function f(o){return o.slice(0,1).toLowerCase()+o.slice(1)}e.toLowerCamelCase=f;function w(o){return o.length===0?void 0:o[o.length-1]}e.getLast=w}}),an=q({\"node_modules/angular-estree-parser/lib/transform.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.transformSpan=e.transform=void 0;var t=ft(),n=function(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,l=t.getNgType(s);switch(l){case\"Unary\":{let{operator:c,expr:g}=s,u=h(g);return p(\"UnaryExpression\",{prefix:!0,argument:u,operator:c},s.span,{hasParentParens:i})}case\"Binary\":{let{left:c,operation:g,right:u}=s,v=u.span.start===u.span.end,m=c.span.start===c.span.end;if(v||m){let o=c.span.start===c.span.end?h(u):h(c);return p(\"UnaryExpression\",{prefix:!0,argument:o,operator:v?\"+\":\"-\"},{start:s.span.start,end:N(o)},{hasParentParens:i})}let f=h(c),w=h(u);return p(g===\"&&\"||g===\"||\"?\"LogicalExpression\":\"BinaryExpression\",{left:f,right:w,operator:g},{start:O(f),end:N(w)},{hasParentParens:i})}case\"BindingPipe\":{let{exp:c,name:g,args:u}=s,v=h(c),m=b(/\\S/,b(/\\|/,N(v))+1),f=p(\"Identifier\",{name:g},{start:m,end:m+g.length}),w=u.map(h);return p(\"NGPipeExpression\",{left:v,right:f,arguments:w},{start:O(v),end:N(w.length===0?f:t.getLast(w))},{hasParentParens:i})}case\"Chain\":{let{expressions:c}=s;return p(\"NGChainedExpression\",{expressions:c.map(h)},s.span,{hasParentParens:i})}case\"Comment\":{let{value:c}=s;return p(\"CommentLine\",{value:c},s.span,{processSpan:!1})}case\"Conditional\":{let{condition:c,trueExp:g,falseExp:u}=s,v=h(c),m=h(g),f=h(u);return p(\"ConditionalExpression\",{test:v,consequent:m,alternate:f},{start:O(v),end:N(f)},{hasParentParens:i})}case\"EmptyExpr\":return p(\"NGEmptyExpression\",{},s.span,{hasParentParens:i});case\"FunctionCall\":{let{target:c,args:g}=s,u=g.length===1?[P(g[0])]:g.map(h),v=h(c);return p(\"CallExpression\",{callee:v,arguments:u},{start:O(v),end:s.span.end},{hasParentParens:i})}case\"ImplicitReceiver\":return p(\"ThisExpression\",{},s.span,{hasParentParens:i});case\"KeyedRead\":{let{key:c}=s,g=Object.prototype.hasOwnProperty.call(s,\"receiver\")?s.receiver:s.obj,u=h(c);return x(g,u,{computed:!0,optional:!1},{end:s.span.end,hasParentParens:i})}case\"LiteralArray\":{let{expressions:c}=s;return p(\"ArrayExpression\",{elements:c.map(h)},s.span,{hasParentParens:i})}case\"LiteralMap\":{let{keys:c,values:g}=s,u=g.map(m=>h(m)),v=c.map((m,f)=>{let{key:w,quoted:o}=m,d=u[f],y=b(/\\S/,f===0?s.span.start+1:b(/,/,N(u[f-1]))+1),C=A(/\\S/,A(/:/,O(d)-1)-1)+1,E={start:y,end:C},I=o?p(\"StringLiteral\",{value:w},E):p(\"Identifier\",{name:w},E),j=I.end3&&arguments[3]!==void 0?arguments[3]:{},f=Object.assign(Object.assign({type:c},r(u,a,v,m)),g);switch(c){case\"Identifier\":{let w=f;w.loc.identifierName=w.name;break}case\"NumericLiteral\":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}case\"StringLiteral\":{let w=f;w.extra=Object.assign(Object.assign({},w.extra),{raw:a.text.slice(w.start,w.end),rawValue:w.value});break}}return f}function x(c,g,u){let{end:v=N(g),hasParentParens:m=!1}=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};if(_(c)||c.span.start===g.start)return g;let f=h(c),w=R(f);return p(u.optional||w?\"OptionalMemberExpression\":\"MemberExpression\",Object.assign({object:f,property:g,computed:u.computed},u.optional?{optional:!0}:w?{optional:!1}:null),{start:O(f),end:v},{hasParentParens:m})}function A(c,g){return t.findFrontChar(c,g,a.text)}function b(c,g){return t.findBackChar(c,g,a.text)}function _(c){return c.span.start>=c.span.end||/^\\s+$/.test(a.text.slice(c.span.start,c.span.end))}function R(c){return(c.type===\"OptionalCallExpression\"||c.type===\"OptionalMemberExpression\")&&!T(c)}function T(c){return c.extra&&c.extra.parenthesized}function O(c){return T(c)?c.extra.parenStart:c.start}function N(c){return T(c)?c.extra.parenEnd:c.end}};e.transform=n;function r(s,a){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!i){let{start:x,end:A}=s;return{start:x,end:A,loc:{start:a.locator.locationForIndex(x),end:a.locator.locationForIndex(A)}}}let{outerSpan:h,innerSpan:P,hasParens:p}=t.fitSpans(s,a.text,l);return Object.assign({start:P.start,end:P.end,loc:{start:a.locator.locationForIndex(P.start),end:a.locator.locationForIndex(P.end)}},p&&{extra:{parenthesized:!0,parenStart:h.start,parenEnd:h.end}})}e.transformSpan=r}}),Rn=q({\"node_modules/angular-estree-parser/lib/transform-microsyntax.js\"(e){\"use strict\";L(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.transformTemplateBindings=void 0;var t=(tt(),be(Je)),n=an(),r=ft();function s(a,i){a.forEach(N);let[l]=a,{key:h}=l,P=i.text.slice(l.sourceSpan.start,l.sourceSpan.end).trim().length===0?a.slice(1):a,p=[],x=null;for(let u=0;uObject.assign(Object.assign({},d),n.transformSpan({start:d.start,end:y},i)),w=d=>Object.assign(Object.assign({},f(d,m.end)),{alias:m}),o=p.pop();if(o.type===\"NGMicrosyntaxExpression\")p.push(w(o));else if(o.type===\"NGMicrosyntaxKeyedExpression\"){let d=w(o.expression);p.push(f(Object.assign(Object.assign({},o),{expression:d}),d.end))}else throw new Error(\"Unexpected type \".concat(o.type))}else p.push(A(v,u));x=v}return _(\"NGMicrosyntax\",{body:p},p.length===0?a[0].sourceSpan:{start:p[0].start,end:p[p.length-1].end});function A(u,v){if(T(u)){let{key:m,value:f}=u;return f?v===0?_(\"NGMicrosyntaxExpression\",{expression:b(f.ast),alias:null},f.sourceSpan):_(\"NGMicrosyntaxKeyedExpression\",{key:_(\"NGMicrosyntaxKey\",{name:R(m.source)},m.span),expression:_(\"NGMicrosyntaxExpression\",{expression:b(f.ast),alias:null},f.sourceSpan)},{start:m.span.start,end:f.sourceSpan.end}):_(\"NGMicrosyntaxKey\",{name:R(m.source)},m.span)}else{let{key:m,sourceSpan:f}=u;if(/^let\\s$/.test(i.text.slice(f.start,f.start+4))){let{value:o}=u;return _(\"NGMicrosyntaxLet\",{key:_(\"NGMicrosyntaxKey\",{name:m.source},m.span),value:o?_(\"NGMicrosyntaxKey\",{name:o.source},o.span):null},{start:f.start,end:o?o.span.end:m.span.end})}else{let o=g(u);return _(\"NGMicrosyntaxAs\",{key:_(\"NGMicrosyntaxKey\",{name:o.source},o.span),alias:_(\"NGMicrosyntaxKey\",{name:m.source},m.span)},{start:o.span.start,end:m.span.end})}}}function b(u){return n.transform(u,i)}function _(u,v,m){let f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Object.assign(Object.assign({type:u},n.transformSpan(m,i,f)),v)}function R(u){return r.toLowerCamelCase(u.slice(h.source.length))}function T(u){return u instanceof t.ExpressionBinding}function O(u){return u instanceof t.VariableBinding}function N(u){c(u.key.span),O(u)&&u.value&&c(u.value.span)}function c(u){if(i.text[u.start]!=='\"'&&i.text[u.start]!==\"'\")return;let v=i.text[u.start],m=!1;for(let f=u.start+1;fn.transform(N,R),O=T(b);return O.comments=_.map(T),O}function i(x){return a(x,s.parseNgBinding)}e.parseBinding=i;function l(x){return a(x,s.parseNgSimpleBinding)}e.parseSimpleBinding=l;function h(x){return a(x,s.parseNgInterpolation)}e.parseInterpolation=h;function P(x){return a(x,s.parseNgAction)}e.parseAction=P;function p(x){return r.transformTemplateBindings(s.parseNgTemplateBindings(x),new t.Context(x))}e.parseTemplateBindings=p}});L();var{locStart:Bn,locEnd:Kn}=fn();function Ne(e){return{astFormat:\"estree\",parse:(n,r,s)=>{let a=Tn(),i=e(n,a);return{type:\"NGRoot\",node:s.parser===\"__ng_action\"&&i.type!==\"NGChainedExpression\"?Object.assign(Object.assign({},i),{},{type:\"NGChainedExpression\",expressions:[i]}):i}},locStart:Bn,locEnd:Kn}}on.exports={parsers:{__ng_action:Ne((e,t)=>t.parseAction(e)),__ng_binding:Ne((e,t)=>t.parseBinding(e)),__ng_interpolation:Ne((e,t)=>t.parseInterpolation(e)),__ng_directive:Ne((e,t)=>t.parseTemplateBindings(e))}}});return Mn();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.babel=e()}})(function(){\"use strict\";var b=(h,l)=>()=>(l||h((l={exports:{}}).exports,l),l.exports);var G=b((zf,Jr)=>{var Tt=function(h){return h&&h.Math==Math&&h};Jr.exports=Tt(typeof globalThis==\"object\"&&globalThis)||Tt(typeof window==\"object\"&&window)||Tt(typeof self==\"object\"&&self)||Tt(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var Ae=b((Kf,Yr)=>{Yr.exports=function(h){try{return!!h()}catch{return!0}}});var ke=b((Vf,$r)=>{var hl=Ae();$r.exports=!hl(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Et=b((Hf,Qr)=>{var ll=Ae();Qr.exports=!ll(function(){var h=function(){}.bind();return typeof h!=\"function\"||h.hasOwnProperty(\"prototype\")})});var bt=b((Wf,Zr)=>{var ul=Et(),Ct=Function.prototype.call;Zr.exports=ul?Ct.bind(Ct):function(){return Ct.apply(Ct,arguments)}});var ri=b(si=>{\"use strict\";var ei={}.propertyIsEnumerable,ti=Object.getOwnPropertyDescriptor,cl=ti&&!ei.call({1:2},1);si.f=cl?function(l){var p=ti(this,l);return!!p&&p.enumerable}:ei});var ms=b((Xf,ii)=>{ii.exports=function(h,l){return{enumerable:!(h&1),configurable:!(h&2),writable:!(h&4),value:l}}});var ie=b((Jf,oi)=>{var ai=Et(),ni=Function.prototype,pl=ni.bind,ys=ni.call,fl=ai&&pl.bind(ys,ys);oi.exports=ai?function(h){return h&&fl(h)}:function(h){return h&&function(){return ys.apply(h,arguments)}}});var vt=b((Yf,li)=>{var hi=ie(),dl=hi({}.toString),ml=hi(\"\".slice);li.exports=function(h){return ml(dl(h),8,-1)}});var ci=b(($f,ui)=>{var yl=G(),xl=ie(),gl=Ae(),Al=vt(),xs=yl.Object,Pl=xl(\"\".split);ui.exports=gl(function(){return!xs(\"z\").propertyIsEnumerable(0)})?function(h){return Al(h)==\"String\"?Pl(h,\"\"):xs(h)}:xs});var gs=b((Qf,pi)=>{var Tl=G(),El=Tl.TypeError;pi.exports=function(h){if(h==null)throw El(\"Can't call method on \"+h);return h}});var St=b((Zf,fi)=>{var Cl=ci(),bl=gs();fi.exports=function(h){return Cl(bl(h))}});var ae=b((ed,di)=>{di.exports=function(h){return typeof h==\"function\"}});var De=b((td,mi)=>{var vl=ae();mi.exports=function(h){return typeof h==\"object\"?h!==null:vl(h)}});var Qe=b((sd,yi)=>{var As=G(),Sl=ae(),wl=function(h){return Sl(h)?h:void 0};yi.exports=function(h,l){return arguments.length<2?wl(As[h]):As[h]&&As[h][l]}});var gi=b((rd,xi)=>{var Nl=ie();xi.exports=Nl({}.isPrototypeOf)});var Pi=b((id,Ai)=>{var Il=Qe();Ai.exports=Il(\"navigator\",\"userAgent\")||\"\"});var wi=b((ad,Si)=>{var vi=G(),Ps=Pi(),Ti=vi.process,Ei=vi.Deno,Ci=Ti&&Ti.versions||Ei&&Ei.version,bi=Ci&&Ci.v8,oe,wt;bi&&(oe=bi.split(\".\"),wt=oe[0]>0&&oe[0]<4?1:+(oe[0]+oe[1]));!wt&&Ps&&(oe=Ps.match(/Edge\\/(\\d+)/),(!oe||oe[1]>=74)&&(oe=Ps.match(/Chrome\\/(\\d+)/),oe&&(wt=+oe[1])));Si.exports=wt});var Ts=b((nd,Ii)=>{var Ni=wi(),kl=Ae();Ii.exports=!!Object.getOwnPropertySymbols&&!kl(function(){var h=Symbol();return!String(h)||!(Object(h)instanceof Symbol)||!Symbol.sham&&Ni&&Ni<41})});var Es=b((od,ki)=>{var Dl=Ts();ki.exports=Dl&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Cs=b((hd,Di)=>{var Fl=G(),Ll=Qe(),Ol=ae(),Bl=gi(),Ml=Es(),Rl=Fl.Object;Di.exports=Ml?function(h){return typeof h==\"symbol\"}:function(h){var l=Ll(\"Symbol\");return Ol(l)&&Bl(l.prototype,Rl(h))}});var Li=b((ld,Fi)=>{var jl=G(),ql=jl.String;Fi.exports=function(h){try{return ql(h)}catch{return\"Object\"}}});var Nt=b((ud,Oi)=>{var Ul=G(),_l=ae(),zl=Li(),Kl=Ul.TypeError;Oi.exports=function(h){if(_l(h))return h;throw Kl(zl(h)+\" is not a function\")}});var Mi=b((cd,Bi)=>{var Vl=Nt();Bi.exports=function(h,l){var p=h[l];return p==null?void 0:Vl(p)}});var ji=b((pd,Ri)=>{var Hl=G(),bs=bt(),vs=ae(),Ss=De(),Wl=Hl.TypeError;Ri.exports=function(h,l){var p,d;if(l===\"string\"&&vs(p=h.toString)&&!Ss(d=bs(p,h))||vs(p=h.valueOf)&&!Ss(d=bs(p,h))||l!==\"string\"&&vs(p=h.toString)&&!Ss(d=bs(p,h)))return d;throw Wl(\"Can't convert object to primitive value\")}});var Ui=b((fd,qi)=>{qi.exports=!1});var It=b((dd,zi)=>{var _i=G(),Gl=Object.defineProperty;zi.exports=function(h,l){try{Gl(_i,h,{value:l,configurable:!0,writable:!0})}catch{_i[h]=l}return l}});var kt=b((md,Vi)=>{var Xl=G(),Jl=It(),Ki=\"__core-js_shared__\",Yl=Xl[Ki]||Jl(Ki,{});Vi.exports=Yl});var ws=b((yd,Wi)=>{var $l=Ui(),Hi=kt();(Wi.exports=function(h,l){return Hi[h]||(Hi[h]=l!==void 0?l:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:$l?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var Ns=b((xd,Gi)=>{var Ql=G(),Zl=gs(),eu=Ql.Object;Gi.exports=function(h){return eu(Zl(h))}});var be=b((gd,Xi)=>{var tu=ie(),su=Ns(),ru=tu({}.hasOwnProperty);Xi.exports=Object.hasOwn||function(l,p){return ru(su(l),p)}});var Is=b((Ad,Ji)=>{var iu=ie(),au=0,nu=Math.random(),ou=iu(1 .toString);Ji.exports=function(h){return\"Symbol(\"+(h===void 0?\"\":h)+\")_\"+ou(++au+nu,36)}});var Ze=b((Pd,ea)=>{var hu=G(),lu=ws(),Yi=be(),uu=Is(),$i=Ts(),Zi=Es(),_e=lu(\"wks\"),Fe=hu.Symbol,Qi=Fe&&Fe.for,cu=Zi?Fe:Fe&&Fe.withoutSetter||uu;ea.exports=function(h){if(!Yi(_e,h)||!($i||typeof _e[h]==\"string\")){var l=\"Symbol.\"+h;$i&&Yi(Fe,h)?_e[h]=Fe[h]:Zi&&Qi?_e[h]=Qi(l):_e[h]=cu(l)}return _e[h]}});var ia=b((Td,ra)=>{var pu=G(),fu=bt(),ta=De(),sa=Cs(),du=Mi(),mu=ji(),yu=Ze(),xu=pu.TypeError,gu=yu(\"toPrimitive\");ra.exports=function(h,l){if(!ta(h)||sa(h))return h;var p=du(h,gu),d;if(p){if(l===void 0&&(l=\"default\"),d=fu(p,h,l),!ta(d)||sa(d))return d;throw xu(\"Can't convert object to primitive value\")}return l===void 0&&(l=\"number\"),mu(h,l)}});var ks=b((Ed,aa)=>{var Au=ia(),Pu=Cs();aa.exports=function(h){var l=Au(h,\"string\");return Pu(l)?l:l+\"\"}});var ha=b((Cd,oa)=>{var Tu=G(),na=De(),Ds=Tu.document,Eu=na(Ds)&&na(Ds.createElement);oa.exports=function(h){return Eu?Ds.createElement(h):{}}});var Fs=b((bd,la)=>{var Cu=ke(),bu=Ae(),vu=ha();la.exports=!Cu&&!bu(function(){return Object.defineProperty(vu(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Ls=b(ca=>{var Su=ke(),wu=bt(),Nu=ri(),Iu=ms(),ku=St(),Du=ks(),Fu=be(),Lu=Fs(),ua=Object.getOwnPropertyDescriptor;ca.f=Su?ua:function(l,p){if(l=ku(l),p=Du(p),Lu)try{return ua(l,p)}catch{}if(Fu(l,p))return Iu(!wu(Nu.f,l,p),l[p])}});var fa=b((Sd,pa)=>{var Ou=ke(),Bu=Ae();pa.exports=Ou&&Bu(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var Os=b((wd,ma)=>{var da=G(),Mu=De(),Ru=da.String,ju=da.TypeError;ma.exports=function(h){if(Mu(h))return h;throw ju(Ru(h)+\" is not an object\")}});var qs=b(xa=>{var qu=G(),Uu=ke(),_u=Fs(),zu=fa(),Dt=Os(),ya=ks(),Ku=qu.TypeError,Bs=Object.defineProperty,Vu=Object.getOwnPropertyDescriptor,Ms=\"enumerable\",Rs=\"configurable\",js=\"writable\";xa.f=Uu?zu?function(l,p,d){if(Dt(l),p=ya(p),Dt(d),typeof l==\"function\"&&p===\"prototype\"&&\"value\"in d&&js in d&&!d[js]){var m=Vu(l,p);m&&m[js]&&(l[p]=d.value,d={configurable:Rs in d?d[Rs]:m[Rs],enumerable:Ms in d?d[Ms]:m[Ms],writable:!1})}return Bs(l,p,d)}:Bs:function(l,p,d){if(Dt(l),p=ya(p),Dt(d),_u)try{return Bs(l,p,d)}catch{}if(\"get\"in d||\"set\"in d)throw Ku(\"Accessors not supported\");return\"value\"in d&&(l[p]=d.value),l}});var Ft=b((Id,ga)=>{var Hu=ke(),Wu=qs(),Gu=ms();ga.exports=Hu?function(h,l,p){return Wu.f(h,l,Gu(1,p))}:function(h,l,p){return h[l]=p,h}});var Lt=b((kd,Aa)=>{var Xu=ie(),Ju=ae(),Us=kt(),Yu=Xu(Function.toString);Ju(Us.inspectSource)||(Us.inspectSource=function(h){return Yu(h)});Aa.exports=Us.inspectSource});var Ea=b((Dd,Ta)=>{var $u=G(),Qu=ae(),Zu=Lt(),Pa=$u.WeakMap;Ta.exports=Qu(Pa)&&/native code/.test(Zu(Pa))});var va=b((Fd,ba)=>{var ec=ws(),tc=Is(),Ca=ec(\"keys\");ba.exports=function(h){return Ca[h]||(Ca[h]=tc(h))}});var _s=b((Ld,Sa)=>{Sa.exports={}});var Fa=b((Od,Da)=>{var sc=Ea(),ka=G(),zs=ie(),rc=De(),ic=Ft(),Ks=be(),Vs=kt(),ac=va(),nc=_s(),wa=\"Object already initialized\",Ws=ka.TypeError,oc=ka.WeakMap,Ot,et,Bt,hc=function(h){return Bt(h)?et(h):Ot(h,{})},lc=function(h){return function(l){var p;if(!rc(l)||(p=et(l)).type!==h)throw Ws(\"Incompatible receiver, \"+h+\" required\");return p}};sc||Vs.state?(ve=Vs.state||(Vs.state=new oc),Na=zs(ve.get),Hs=zs(ve.has),Ia=zs(ve.set),Ot=function(h,l){if(Hs(ve,h))throw new Ws(wa);return l.facade=h,Ia(ve,h,l),l},et=function(h){return Na(ve,h)||{}},Bt=function(h){return Hs(ve,h)}):(Le=ac(\"state\"),nc[Le]=!0,Ot=function(h,l){if(Ks(h,Le))throw new Ws(wa);return l.facade=h,ic(h,Le,l),l},et=function(h){return Ks(h,Le)?h[Le]:{}},Bt=function(h){return Ks(h,Le)});var ve,Na,Hs,Ia,Le;Da.exports={set:Ot,get:et,has:Bt,enforce:hc,getterFor:lc}});var Ba=b((Bd,Oa)=>{var Gs=ke(),uc=be(),La=Function.prototype,cc=Gs&&Object.getOwnPropertyDescriptor,Xs=uc(La,\"name\"),pc=Xs&&function(){}.name===\"something\",fc=Xs&&(!Gs||Gs&&cc(La,\"name\").configurable);Oa.exports={EXISTS:Xs,PROPER:pc,CONFIGURABLE:fc}});var Ua=b((Md,qa)=>{var dc=G(),Ma=ae(),mc=be(),Ra=Ft(),yc=It(),xc=Lt(),ja=Fa(),gc=Ba().CONFIGURABLE,Ac=ja.get,Pc=ja.enforce,Tc=String(String).split(\"String\");(qa.exports=function(h,l,p,d){var m=d?!!d.unsafe:!1,A=d?!!d.enumerable:!1,g=d?!!d.noTargetGet:!1,x=d&&d.name!==void 0?d.name:l,T;if(Ma(p)&&(String(x).slice(0,7)===\"Symbol(\"&&(x=\"[\"+String(x).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!mc(p,\"name\")||gc&&p.name!==x)&&Ra(p,\"name\",x),T=Pc(p),T.source||(T.source=Tc.join(typeof x==\"string\"?x:\"\"))),h===dc){A?h[l]=p:yc(l,p);return}else m?!g&&h[l]&&(A=!0):delete h[l];A?h[l]=p:Ra(h,l,p)})(Function.prototype,\"toString\",function(){return Ma(this)&&Ac(this).source||xc(this)})});var Js=b((Rd,_a)=>{var Ec=Math.ceil,Cc=Math.floor;_a.exports=function(h){var l=+h;return l!==l||l===0?0:(l>0?Cc:Ec)(l)}});var Ka=b((jd,za)=>{var bc=Js(),vc=Math.max,Sc=Math.min;za.exports=function(h,l){var p=bc(h);return p<0?vc(p+l,0):Sc(p,l)}});var Ha=b((qd,Va)=>{var wc=Js(),Nc=Math.min;Va.exports=function(h){return h>0?Nc(wc(h),9007199254740991):0}});var Mt=b((Ud,Wa)=>{var Ic=Ha();Wa.exports=function(h){return Ic(h.length)}});var Ja=b((_d,Xa)=>{var kc=St(),Dc=Ka(),Fc=Mt(),Ga=function(h){return function(l,p,d){var m=kc(l),A=Fc(m),g=Dc(d,A),x;if(h&&p!=p){for(;A>g;)if(x=m[g++],x!=x)return!0}else for(;A>g;g++)if((h||g in m)&&m[g]===p)return h||g||0;return!h&&-1}};Xa.exports={includes:Ga(!0),indexOf:Ga(!1)}});var Qa=b((zd,$a)=>{var Lc=ie(),Ys=be(),Oc=St(),Bc=Ja().indexOf,Mc=_s(),Ya=Lc([].push);$a.exports=function(h,l){var p=Oc(h),d=0,m=[],A;for(A in p)!Ys(Mc,A)&&Ys(p,A)&&Ya(m,A);for(;l.length>d;)Ys(p,A=l[d++])&&(~Bc(m,A)||Ya(m,A));return m}});var en=b((Kd,Za)=>{Za.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var sn=b(tn=>{var Rc=Qa(),jc=en(),qc=jc.concat(\"length\",\"prototype\");tn.f=Object.getOwnPropertyNames||function(l){return Rc(l,qc)}});var an=b(rn=>{rn.f=Object.getOwnPropertySymbols});var on=b((Wd,nn)=>{var Uc=Qe(),_c=ie(),zc=sn(),Kc=an(),Vc=Os(),Hc=_c([].concat);nn.exports=Uc(\"Reflect\",\"ownKeys\")||function(l){var p=zc.f(Vc(l)),d=Kc.f;return d?Hc(p,d(l)):p}});var un=b((Gd,ln)=>{var hn=be(),Wc=on(),Gc=Ls(),Xc=qs();ln.exports=function(h,l,p){for(var d=Wc(l),m=Xc.f,A=Gc.f,g=0;g{var Jc=Ae(),Yc=ae(),$c=/#|\\.prototype\\./,tt=function(h,l){var p=Zc[Qc(h)];return p==tp?!0:p==ep?!1:Yc(l)?Jc(l):!!l},Qc=tt.normalize=function(h){return String(h).replace($c,\".\").toLowerCase()},Zc=tt.data={},ep=tt.NATIVE=\"N\",tp=tt.POLYFILL=\"P\";cn.exports=tt});var Qs=b((Jd,fn)=>{var $s=G(),sp=Ls().f,rp=Ft(),ip=Ua(),ap=It(),np=un(),op=pn();fn.exports=function(h,l){var p=h.target,d=h.global,m=h.stat,A,g,x,T,k,D;if(d?g=$s:m?g=$s[p]||ap(p,{}):g=($s[p]||{}).prototype,g)for(x in l){if(k=l[x],h.noTargetGet?(D=sp(g,x),T=D&&D.value):T=g[x],A=op(d?x:p+(m?\".\":\"#\")+x,h.forced),!A&&T!==void 0){if(typeof k==typeof T)continue;np(k,T)}(h.sham||T&&T.sham)&&rp(k,\"sham\",!0),ip(g,x,k,h)}}});var dn=b(()=>{var hp=Qs(),lp=G();hp({global:!0},{globalThis:lp})});var mn=b(()=>{dn()});var Zs=b((em,yn)=>{var up=vt();yn.exports=Array.isArray||function(l){return up(l)==\"Array\"}});var An=b((tm,gn)=>{var xn=ie(),cp=Nt(),pp=Et(),fp=xn(xn.bind);gn.exports=function(h,l){return cp(h),l===void 0?h:pp?fp(h,l):function(){return h.apply(l,arguments)}}});var En=b((sm,Tn)=>{\"use strict\";var dp=G(),mp=Zs(),yp=Mt(),xp=An(),gp=dp.TypeError,Pn=function(h,l,p,d,m,A,g,x){for(var T=m,k=0,D=g?xp(g,x):!1,E,L;k0&&mp(E))L=yp(E),T=Pn(h,l,E,L,T,A-1)-1;else{if(T>=9007199254740991)throw gp(\"Exceed the acceptable array length\");h[T]=E}T++}k++}return T};Tn.exports=Pn});var vn=b((rm,bn)=>{var Ap=Ze(),Pp=Ap(\"toStringTag\"),Cn={};Cn[Pp]=\"z\";bn.exports=String(Cn)===\"[object z]\"});var wn=b((im,Sn)=>{var Tp=G(),Ep=vn(),Cp=ae(),Rt=vt(),bp=Ze(),vp=bp(\"toStringTag\"),Sp=Tp.Object,wp=Rt(function(){return arguments}())==\"Arguments\",Np=function(h,l){try{return h[l]}catch{}};Sn.exports=Ep?Rt:function(h){var l,p,d;return h===void 0?\"Undefined\":h===null?\"Null\":typeof(p=Np(l=Sp(h),vp))==\"string\"?p:wp?Rt(l):(d=Rt(l))==\"Object\"&&Cp(l.callee)?\"Arguments\":d}});var Ln=b((am,Fn)=>{var Ip=ie(),kp=Ae(),Nn=ae(),Dp=wn(),Fp=Qe(),Lp=Lt(),In=function(){},Op=[],kn=Fp(\"Reflect\",\"construct\"),er=/^\\s*(?:class|function)\\b/,Bp=Ip(er.exec),Mp=!er.exec(In),st=function(l){if(!Nn(l))return!1;try{return kn(In,Op,l),!0}catch{return!1}},Dn=function(l){if(!Nn(l))return!1;switch(Dp(l)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return Mp||!!Bp(er,Lp(l))}catch{return!0}};Dn.sham=!0;Fn.exports=!kn||kp(function(){var h;return st(st.call)||!st(Object)||!st(function(){h=!0})||h})?Dn:st});var Rn=b((nm,Mn)=>{var Rp=G(),On=Zs(),jp=Ln(),qp=De(),Up=Ze(),_p=Up(\"species\"),Bn=Rp.Array;Mn.exports=function(h){var l;return On(h)&&(l=h.constructor,jp(l)&&(l===Bn||On(l.prototype))?l=void 0:qp(l)&&(l=l[_p],l===null&&(l=void 0))),l===void 0?Bn:l}});var qn=b((om,jn)=>{var zp=Rn();jn.exports=function(h,l){return new(zp(h))(l===0?0:l)}});var Un=b(()=>{\"use strict\";var Kp=Qs(),Vp=En(),Hp=Nt(),Wp=Ns(),Gp=Mt(),Xp=qn();Kp({target:\"Array\",proto:!0},{flatMap:function(l){var p=Wp(this),d=Gp(p),m;return Hp(l),m=Xp(p,0),m.length=Vp(m,p,p,d,0,1,l,arguments.length>1?arguments[1]:void 0),m}})});var qf=b((um,Eo)=>{var _n,zn,Kn,Vn,Hn;function rt(h,l){return l||(l=h.slice(0)),Object.freeze(Object.defineProperties(h,{raw:{value:Object.freeze(l)}}))}mn();Un();var ir=Object.defineProperty,Jp=Object.getOwnPropertyDescriptor,ar=Object.getOwnPropertyNames,Yp=Object.prototype.hasOwnProperty,$n=(h,l)=>function(){return h&&(l=(0,h[ar(h)[0]])(h=0)),l},H=(h,l)=>function(){return l||(0,h[ar(h)[0]])((l={exports:{}}).exports,l),l.exports},$p=(h,l)=>{for(var p in l)ir(h,p,{get:l[p],enumerable:!0})},Qp=(h,l,p,d)=>{if(l&&typeof l==\"object\"||typeof l==\"function\")for(let m of ar(l))!Yp.call(h,m)&&m!==p&&ir(h,m,{get:()=>l[m],enumerable:!(d=Jp(l,m))||d.enumerable});return h},Zp=h=>Qp(ir({},\"__esModule\",{value:!0}),h),V=$n({\"\"(){}}),ef=H({\"src/utils/try-combinations.js\"(h,l){\"use strict\";V();function p(){let d;for(var m=arguments.length,A=new Array(m),g=0;g{let E=D&&D.backwards;if(k===!1)return!1;let{length:L}=T,R=k;for(;R>=0&&Rrr,arch:()=>nf,cpus:()=>oo,default:()=>po,endianness:()=>to,freemem:()=>ao,getNetworkInterfaces:()=>co,hostname:()=>so,loadavg:()=>ro,networkInterfaces:()=>uo,platform:()=>of,release:()=>lo,tmpDir:()=>tr,tmpdir:()=>sr,totalmem:()=>no,type:()=>ho,uptime:()=>io});function to(){if(typeof jt>\"u\"){var h=new ArrayBuffer(2),l=new Uint8Array(h),p=new Uint16Array(h);if(l[0]=1,l[1]=2,p[0]===258)jt=\"BE\";else if(p[0]===513)jt=\"LE\";else throw new Error(\"unable to figure out endianess\")}return jt}function so(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function ro(){return[]}function io(){return 0}function ao(){return Number.MAX_VALUE}function no(){return Number.MAX_VALUE}function oo(){return[]}function ho(){return\"Browser\"}function lo(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function uo(){}function co(){}function nf(){return\"javascript\"}function of(){return\"browser\"}function tr(){return\"/tmp\"}var jt,sr,rr,po,hf=$n({\"node-modules-polyfills:os\"(){V(),sr=tr,rr=`\n`,po={EOL:rr,tmpdir:sr,tmpDir:tr,networkInterfaces:uo,getNetworkInterfaces:co,release:lo,type:ho,cpus:oo,totalmem:no,freemem:ao,uptime:io,loadavg:ro,hostname:so,endianness:to}}}),lf=H({\"node-modules-polyfills-commonjs:os\"(h,l){V();var p=(hf(),Zp(eo));if(p&&p.default){l.exports=p.default;for(let d in p)l.exports[d]=p[d]}else p&&(l.exports=p)}}),uf=H({\"node_modules/detect-newline/index.js\"(h,l){\"use strict\";V();var p=d=>{if(typeof d!=\"string\")throw new TypeError(\"Expected a string\");let m=d.match(/(?:\\r?\\n)/g)||[];if(m.length===0)return;let A=m.filter(x=>x===`\\r\n`).length,g=m.length-A;return A>g?`\\r\n`:`\n`};l.exports=p,l.exports.graceful=d=>typeof d==\"string\"&&p(d)||`\n`}}),cf=H({\"node_modules/jest-docblock/build/index.js\"(h){\"use strict\";V(),Object.defineProperty(h,\"__esModule\",{value:!0}),h.extract=R,h.parse=W,h.parseWithComments=Y,h.print=M,h.strip=F;function l(){let u=lf();return l=function(){return u},u}function p(){let u=d(uf());return p=function(){return u},u}function d(u){return u&&u.__esModule?u:{default:u}}var m=/\\*\\/$/,A=/^\\/\\*\\*/,g=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,x=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,T=/^(\\r?\\n)+/,k=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,D=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,E=/(\\r?\\n|^) *\\* ?/g,L=[];function R(u){let X=u.match(g);return X?X[0].trimLeft():\"\"}function F(u){let X=u.match(g);return X&&X[0]?u.substring(X[0].length):u}function W(u){return Y(u).pragmas}function Y(u){let X=(0,p().default)(u)||l().EOL;u=u.replace(A,\"\").replace(m,\"\").replace(E,\"$1\");let se=\"\";for(;se!==u;)se=u,u=u.replace(k,\"\".concat(X,\"$1 $2\").concat(X));u=u.replace(T,\"\").trimRight();let J=Object.create(null),Oe=u.replace(D,\"\").replace(T,\"\").trimRight(),$;for(;$=D.exec(u);){let z=$[2].replace(x,\"\");typeof J[$[1]]==\"string\"||Array.isArray(J[$[1]])?J[$[1]]=L.concat(J[$[1]],z):J[$[1]]=z}return{comments:Oe,pragmas:J}}function M(u){let{comments:X=\"\",pragmas:se={}}=u,J=(0,p().default)(X)||l().EOL,Oe=\"/**\",$=\" *\",z=\" */\",O=Object.keys(se),C=O.map(Z=>j(Z,se[Z])).reduce((Z,he)=>Z.concat(he),[]).map(Z=>$+\" \"+Z+J).join(\"\");if(!X){if(O.length===0)return\"\";if(O.length===1&&!Array.isArray(se[O[0]])){let Z=se[O[0]];return\"\".concat(Oe,\" \").concat(j(O[0],Z)[0]).concat(z)}}let Ve=X.split(J).map(Z=>\"\".concat($,\" \").concat(Z)).join(J)+J;return Oe+J+(X?Ve:\"\")+(X&&O.length?$+J:\"\")+C+z}function j(u,X){return L.concat(X).map(se=>\"@\".concat(u,\" \").concat(se).trim())}}}),pf=H({\"src/common/end-of-line.js\"(h,l){\"use strict\";V();function p(g){let x=g.indexOf(\"\\r\");return x>=0?g.charAt(x+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function d(g){switch(g){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function m(g,x){let T;switch(x){case`\n`:T=/\\n/g;break;case\"\\r\":T=/\\r/g;break;case`\\r\n`:T=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(x),\".\"))}let k=g.match(T);return k?k.length:0}function A(g){return g.replace(/\\r\\n?/g,`\n`)}l.exports={guessEndOfLine:p,convertEndOfLineToChars:d,countEndOfLineChars:m,normalizeEndOfLine:A}}}),ff=H({\"src/language-js/pragma.js\"(h,l){\"use strict\";V();var{parseWithComments:p,strip:d,extract:m,print:A}=cf(),{normalizeEndOfLine:g}=pf(),x=Qn();function T(E){let L=x(E);L&&(E=E.slice(L.length+1));let R=m(E),{pragmas:F,comments:W}=p(R);return{shebang:L,text:E,pragmas:F,comments:W}}function k(E){let L=Object.keys(T(E).pragmas);return L.includes(\"prettier\")||L.includes(\"format\")}function D(E){let{shebang:L,text:R,pragmas:F,comments:W}=T(E),Y=d(R),M=A({pragmas:Object.assign({format:\"\"},F),comments:W.trimStart()});return(L?\"\".concat(L,`\n`):\"\")+g(M)+(Y.startsWith(`\n`)?`\n`:`\n\n`)+Y}l.exports={hasPragma:k,insertPragma:D}}}),fo=H({\"src/utils/is-non-empty-array.js\"(h,l){\"use strict\";V();function p(d){return Array.isArray(d)&&d.length>0}l.exports=p}}),mo=H({\"src/language-js/loc.js\"(h,l){\"use strict\";V();var p=fo();function d(T,k){let{ignoreDecorators:D}=k||{};if(!D){let E=T.declaration&&T.declaration.decorators||T.decorators;if(p(E))return d(E[0])}return T.range?T.range[0]:T.start}function m(T){return T.range?T.range[1]:T.end}function A(T,k){let D=d(T);return Number.isInteger(D)&&D===d(k)}function g(T,k){let D=m(T);return Number.isInteger(D)&&D===m(k)}function x(T,k){return A(T,k)&&g(T,k)}l.exports={locStart:d,locEnd:m,hasSameLocStart:A,hasSameLoc:x}}}),yo=H({\"src/language-js/parse/utils/create-parser.js\"(h,l){\"use strict\";V();var{hasPragma:p}=ff(),{locStart:d,locEnd:m}=mo();function A(g){return g=typeof g==\"function\"?{parse:g}:g,Object.assign({astFormat:\"estree\",hasPragma:p,locStart:d,locEnd:m},g)}l.exports=A}}),nr=H({\"src/common/parser-create-error.js\"(h,l){\"use strict\";V();function p(d,m){let A=new SyntaxError(d+\" (\"+m.start.line+\":\"+m.start.column+\")\");return A.loc=m,A}l.exports=p}}),xo=H({\"src/language-js/parse/utils/create-babel-parse-error.js\"(h,l){\"use strict\";V();var p=nr();function d(m){let{message:A,loc:g}=m;return p(A.replace(/ \\(.*\\)/,\"\"),{start:{line:g?g.line:0,column:g?g.column+1:0}})}l.exports=d}}),df=H({\"src/language-js/utils/is-ts-keyword-type.js\"(h,l){\"use strict\";V();function p(d){let{type:m}=d;return m.startsWith(\"TS\")&&m.endsWith(\"Keyword\")}l.exports=p}}),mf=H({\"src/language-js/utils/is-block-comment.js\"(h,l){\"use strict\";V();var p=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),d=m=>p.has(m==null?void 0:m.type);l.exports=d}}),yf=H({\"src/language-js/utils/is-type-cast-comment.js\"(h,l){\"use strict\";V();var p=mf();function d(m){return p(m)&&m.value[0]===\"*\"&&/@type\\b/.test(m.value)}l.exports=d}}),xf=H({\"src/utils/get-last.js\"(h,l){\"use strict\";V();var p=d=>d[d.length-1];l.exports=p}}),go=H({\"src/language-js/parse/postprocess/visit-node.js\"(h,l){\"use strict\";V();function p(d,m){if(Array.isArray(d)){for(let A=0;A{let R=k.get(L);return!R||!E.includes(R)}))&&d(T,\"Leading decorators must be attached to a class declaration\")}function A(x,T){x.kind!==167||x.modifiers&&!x.modifiers.some(E=>E.kind===126)||x.initializer&&T.value===null&&d(T,\"Abstract property cannot have an initializer\")}function g(x,T){let{esTreeNodeToTSNodeMap:k,tsNodeToESTreeNodeMap:D}=T.tsParseResult;p(x,E=>{let L=k.get(E);if(!L)return;let R=D.get(L);R===E&&(m(L,R,D),A(L,R))})}l.exports={throwErrorForInvalidNodes:g}}}),Af=H({\"src/language-js/parse/postprocess/index.js\"(h,l){\"use strict\";V();var{locStart:p,locEnd:d}=mo(),m=df(),A=yf(),g=xf(),x=go(),{throwErrorForInvalidNodes:T}=gf(),k=Ao();function D(F,W){if(W.parser===\"typescript\"&&/@|abstract/.test(W.originalText)&&T(F,W),W.parser!==\"typescript\"&&W.parser!==\"flow\"&&W.parser!==\"acorn\"&&W.parser!==\"espree\"&&W.parser!==\"meriyah\"){let M=new Set;F=x(F,j=>{j.leadingComments&&j.leadingComments.some(A)&&M.add(p(j))}),F=x(F,j=>{if(j.type===\"ParenthesizedExpression\"){let{expression:u}=j;if(u.type===\"TypeCastExpression\")return u.range=j.range,u;let X=p(j);if(!M.has(X))return u.extra=Object.assign(Object.assign({},u.extra),{},{parenthesized:!0}),u}})}return F=x(F,M=>{switch(M.type){case\"ChainExpression\":return E(M.expression);case\"LogicalExpression\":{if(L(M))return R(M);break}case\"VariableDeclaration\":{let j=g(M.declarations);j&&j.init&&Y(M,j);break}case\"TSParenthesizedType\":return m(M.typeAnnotation)||M.typeAnnotation.type===\"TSThisType\"||(M.typeAnnotation.range=[p(M),d(M)]),M.typeAnnotation;case\"TSTypeParameter\":if(typeof M.name==\"string\"){let j=p(M);M.name={type:\"Identifier\",name:M.name,range:[j,j+M.name.length]}}break;case\"ObjectExpression\":if(W.parser===\"typescript\"){let j=M.properties.find(u=>u.type===\"Property\"&&u.value.type===\"TSEmptyBodyFunctionExpression\");j&&k(j.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let j=g(M.expressions);M.range=[p(M),Math.min(d(j),d(M))];break}case\"TopicReference\":W.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:j}=M;if(W.parser===\"meriyah\"&&j&&j.type===\"Identifier\"){let u=W.originalText.slice(p(j),d(j));(u.startsWith('\"')||u.startsWith(\"'\"))&&(M.exported=Object.assign(Object.assign({},M.exported),{},{type:\"Literal\",value:M.exported.name,raw:u}))}break}}}),F;function Y(M,j){W.originalText[d(j)]!==\";\"&&(M.range=[p(M),d(j)])}}function E(F){switch(F.type){case\"CallExpression\":F.type=\"OptionalCallExpression\",F.callee=E(F.callee);break;case\"MemberExpression\":F.type=\"OptionalMemberExpression\",F.object=E(F.object);break;case\"TSNonNullExpression\":F.expression=E(F.expression);break}return F}function L(F){return F.type===\"LogicalExpression\"&&F.right.type===\"LogicalExpression\"&&F.operator===F.right.operator}function R(F){return L(F)?R({type:\"LogicalExpression\",operator:F.operator,left:R({type:\"LogicalExpression\",operator:F.operator,left:F.left,right:F.right.left,range:[p(F.left),d(F.right.left)]}),right:F.right.right,range:[p(F),d(F)]}):F}l.exports=D}}),Po=H({\"node_modules/@babel/parser/lib/index.js\"(h){\"use strict\";V(),Object.defineProperty(h,\"__esModule\",{value:!0});function l(t,e){if(t==null)return{};var s={},r=Object.keys(t),i,a;for(a=0;a=0)&&(s[i]=t[i]);return s}var p=class{constructor(t,e,s){this.line=void 0,this.column=void 0,this.index=void 0,this.line=t,this.column=e,this.index=s}},d=class{constructor(t,e){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=t,this.end=e}};function m(t,e){let{line:s,column:r,index:i}=t;return new p(s,r+e,i+e)}var A=Object.freeze({SyntaxError:\"BABEL_PARSER_SYNTAX_ERROR\",SourceTypeModuleError:\"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\"}),g=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t.length-1;return{get(){return t.reduce((s,r)=>s[r],this)},set(s){t.reduce((r,i,a)=>a===e?r[i]=s:r[i],this)}}},x=(t,e,s)=>Object.keys(s).map(r=>[r,s[r]]).filter(r=>{let[,i]=r;return!!i}).map(r=>{let[i,a]=r;return[i,typeof a==\"function\"?{value:a,enumerable:!1}:typeof a.reflect==\"string\"?Object.assign({},a,g(a.reflect.split(\".\"))):a]}).reduce((r,i)=>{let[a,n]=i;return Object.defineProperty(r,a,Object.assign({configurable:!0},n))},Object.assign(new t,e)),T=t=>({ImportMetaOutsideModule:t(`import.meta may appear only with 'sourceType: \"module\"'`,{code:A.SourceTypeModuleError}),ImportOutsideModule:t(`'import' and 'export' may appear only with 'sourceType: \"module\"'`,{code:A.SourceTypeModuleError})}),k={ArrayPattern:\"array destructuring pattern\",AssignmentExpression:\"assignment expression\",AssignmentPattern:\"assignment expression\",ArrowFunctionExpression:\"arrow function expression\",ConditionalExpression:\"conditional expression\",ForOfStatement:\"for-of statement\",ForInStatement:\"for-in statement\",ForStatement:\"for-loop\",FormalParameters:\"function parameter list\",Identifier:\"identifier\",ObjectPattern:\"object destructuring pattern\",ParenthesizedExpression:\"parenthesized expression\",RestElement:\"rest element\",UpdateExpression:{true:\"prefix operation\",false:\"postfix operation\"},VariableDeclarator:\"variable declaration\",YieldExpression:\"yield expression\"},D=t=>{let{type:e,prefix:s}=t;return e===\"UpdateExpression\"?k.UpdateExpression[String(s)]:k[e]},E=t=>({AccessorIsGenerator:t(e=>{let{kind:s}=e;return\"A \".concat(s,\"ter cannot be a generator.\")}),ArgumentsInClass:t(\"'arguments' is only allowed in functions and class methods.\"),AsyncFunctionInSingleStatementContext:t(\"Async functions can only be declared at the top level or inside a block.\"),AwaitBindingIdentifier:t(\"Can not use 'await' as identifier inside an async function.\"),AwaitBindingIdentifierInStaticBlock:t(\"Can not use 'await' as identifier inside a static block.\"),AwaitExpressionFormalParameter:t(\"'await' is not allowed in async function parameters.\"),AwaitNotInAsyncContext:t(\"'await' is only allowed within async functions and at the top levels of modules.\"),AwaitNotInAsyncFunction:t(\"'await' is only allowed within async functions.\"),BadGetterArity:t(\"A 'get' accesor must not have any formal parameters.\"),BadSetterArity:t(\"A 'set' accesor must have exactly one formal parameter.\"),BadSetterRestParameter:t(\"A 'set' accesor function argument must not be a rest parameter.\"),ConstructorClassField:t(\"Classes may not have a field named 'constructor'.\"),ConstructorClassPrivateField:t(\"Classes may not have a private field named '#constructor'.\"),ConstructorIsAccessor:t(\"Class constructor may not be an accessor.\"),ConstructorIsAsync:t(\"Constructor can't be an async function.\"),ConstructorIsGenerator:t(\"Constructor can't be a generator.\"),DeclarationMissingInitializer:t(e=>{let{kind:s}=e;return\"Missing initializer in \".concat(s,\" declaration.\")}),DecoratorBeforeExport:t(\"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax.\"),DecoratorConstructor:t(\"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\"),DecoratorExportClass:t(\"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\"),DecoratorSemicolon:t(\"Decorators must not be followed by a semicolon.\"),DecoratorStaticBlock:t(\"Decorators can't be used with a static block.\"),DeletePrivateField:t(\"Deleting a private field is not allowed.\"),DestructureNamedImport:t(\"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\"),DuplicateConstructor:t(\"Duplicate constructor in the same class.\"),DuplicateDefaultExport:t(\"Only one default export allowed per module.\"),DuplicateExport:t(e=>{let{exportName:s}=e;return\"`\".concat(s,\"` has already been exported. Exported identifiers must be unique.\")}),DuplicateProto:t(\"Redefinition of __proto__ property.\"),DuplicateRegExpFlags:t(\"Duplicate regular expression flag.\"),ElementAfterRest:t(\"Rest element must be last element.\"),EscapedCharNotAnIdentifier:t(\"Invalid Unicode escape.\"),ExportBindingIsString:t(e=>{let{localName:s,exportName:r}=e;return\"A string literal cannot be used as an exported binding without `from`.\\n- Did you mean `export { '\".concat(s,\"' as '\").concat(r,\"' } from 'some-module'`?\")}),ExportDefaultFromAsIdentifier:t(\"'from' is not allowed as an identifier after 'export default'.\"),ForInOfLoopInitializer:t(e=>{let{type:s}=e;return\"'\".concat(s===\"ForInStatement\"?\"for-in\":\"for-of\",\"' loop variable declaration may not have an initializer.\")}),ForOfAsync:t(\"The left-hand side of a for-of loop may not be 'async'.\"),ForOfLet:t(\"The left-hand side of a for-of loop may not start with 'let'.\"),GeneratorInSingleStatementContext:t(\"Generators can only be declared at the top level or inside a block.\"),IllegalBreakContinue:t(e=>{let{type:s}=e;return\"Unsyntactic \".concat(s===\"BreakStatement\"?\"break\":\"continue\",\".\")}),IllegalLanguageModeDirective:t(\"Illegal 'use strict' directive in function with non-simple parameter list.\"),IllegalReturn:t(\"'return' outside of function.\"),ImportBindingIsString:t(e=>{let{importName:s}=e;return'A string literal cannot be used as an imported binding.\\n- Did you mean `import { \"'.concat(s,'\" as foo }`?')}),ImportCallArgumentTrailingComma:t(\"Trailing comma is disallowed inside import(...) arguments.\"),ImportCallArity:t(e=>{let{maxArgumentCount:s}=e;return\"`import()` requires exactly \".concat(s===1?\"one argument\":\"one or two arguments\",\".\")}),ImportCallNotNewExpression:t(\"Cannot use new with import(...).\"),ImportCallSpreadArgument:t(\"`...` is not allowed in `import()`.\"),IncompatibleRegExpUVFlags:t(\"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\"),InvalidBigIntLiteral:t(\"Invalid BigIntLiteral.\"),InvalidCodePoint:t(\"Code point out of bounds.\"),InvalidCoverInitializedName:t(\"Invalid shorthand property initializer.\"),InvalidDecimal:t(\"Invalid decimal.\"),InvalidDigit:t(e=>{let{radix:s}=e;return\"Expected number in radix \".concat(s,\".\")}),InvalidEscapeSequence:t(\"Bad character escape sequence.\"),InvalidEscapeSequenceTemplate:t(\"Invalid escape sequence in template.\"),InvalidEscapedReservedWord:t(e=>{let{reservedWord:s}=e;return\"Escape sequence in keyword \".concat(s,\".\")}),InvalidIdentifier:t(e=>{let{identifierName:s}=e;return\"Invalid identifier \".concat(s,\".\")}),InvalidLhs:t(e=>{let{ancestor:s}=e;return\"Invalid left-hand side in \".concat(D(s),\".\")}),InvalidLhsBinding:t(e=>{let{ancestor:s}=e;return\"Binding invalid left-hand side in \".concat(D(s),\".\")}),InvalidNumber:t(\"Invalid number.\"),InvalidOrMissingExponent:t(\"Floating-point numbers require a valid exponent after the 'e'.\"),InvalidOrUnexpectedToken:t(e=>{let{unexpected:s}=e;return\"Unexpected character '\".concat(s,\"'.\")}),InvalidParenthesizedAssignment:t(\"Invalid parenthesized assignment pattern.\"),InvalidPrivateFieldResolution:t(e=>{let{identifierName:s}=e;return\"Private name #\".concat(s,\" is not defined.\")}),InvalidPropertyBindingPattern:t(\"Binding member expression.\"),InvalidRecordProperty:t(\"Only properties and spread elements are allowed in record definitions.\"),InvalidRestAssignmentPattern:t(\"Invalid rest operator's argument.\"),LabelRedeclaration:t(e=>{let{labelName:s}=e;return\"Label '\".concat(s,\"' is already declared.\")}),LetInLexicalBinding:t(\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),LineTerminatorBeforeArrow:t(\"No line break is allowed before '=>'.\"),MalformedRegExpFlags:t(\"Invalid regular expression flag.\"),MissingClassName:t(\"A class name is required.\"),MissingEqInAssignment:t(\"Only '=' operator can be used for specifying default value.\"),MissingSemicolon:t(\"Missing semicolon.\"),MissingPlugin:t(e=>{let{missingPlugin:s}=e;return\"This experimental syntax requires enabling the parser plugin: \".concat(s.map(r=>JSON.stringify(r)).join(\", \"),\".\")}),MissingOneOfPlugins:t(e=>{let{missingPlugin:s}=e;return\"This experimental syntax requires enabling one of the following parser plugin(s): \".concat(s.map(r=>JSON.stringify(r)).join(\", \"),\".\")}),MissingUnicodeEscape:t(\"Expecting Unicode escape sequence \\\\uXXXX.\"),MixingCoalesceWithLogical:t(\"Nullish coalescing operator(??) requires parens when mixing with logical operators.\"),ModuleAttributeDifferentFromType:t(\"The only accepted module attribute is `type`.\"),ModuleAttributeInvalidValue:t(\"Only string literals are allowed as module attribute values.\"),ModuleAttributesWithDuplicateKeys:t(e=>{let{key:s}=e;return'Duplicate key \"'.concat(s,'\" is not allowed in module attributes.')}),ModuleExportNameHasLoneSurrogate:t(e=>{let{surrogateCharCode:s}=e;return\"An export name cannot include a lone surrogate, found '\\\\u\".concat(s.toString(16),\"'.\")}),ModuleExportUndefined:t(e=>{let{localName:s}=e;return\"Export '\".concat(s,\"' is not defined.\")}),MultipleDefaultsInSwitch:t(\"Multiple default clauses.\"),NewlineAfterThrow:t(\"Illegal newline after throw.\"),NoCatchOrFinally:t(\"Missing catch or finally clause.\"),NumberIdentifier:t(\"Identifier directly after number.\"),NumericSeparatorInEscapeSequence:t(\"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\"),ObsoleteAwaitStar:t(\"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\"),OptionalChainingNoNew:t(\"Constructors in/after an Optional Chain are not allowed.\"),OptionalChainingNoTemplate:t(\"Tagged Template Literals are not allowed in optionalChain.\"),OverrideOnConstructor:t(\"'override' modifier cannot appear on a constructor declaration.\"),ParamDupe:t(\"Argument name clash.\"),PatternHasAccessor:t(\"Object pattern can't contain getter or setter.\"),PatternHasMethod:t(\"Object pattern can't contain methods.\"),PrivateInExpectedIn:t(e=>{let{identifierName:s}=e;return\"Private names are only allowed in property accesses (`obj.#\".concat(s,\"`) or in `in` expressions (`#\").concat(s,\" in obj`).\")}),PrivateNameRedeclaration:t(e=>{let{identifierName:s}=e;return\"Duplicate private name #\".concat(s,\".\")}),RecordExpressionBarIncorrectEndSyntaxType:t(\"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),RecordExpressionBarIncorrectStartSyntaxType:t(\"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),RecordExpressionHashIncorrectStartSyntaxType:t(\"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\"),RecordNoProto:t(\"'__proto__' is not allowed in Record expressions.\"),RestTrailingComma:t(\"Unexpected trailing comma after rest element.\"),SloppyFunction:t(\"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\"),StaticPrototype:t(\"Classes may not have static property named prototype.\"),SuperNotAllowed:t(\"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\"),SuperPrivateField:t(\"Private fields can't be accessed on super.\"),TrailingDecorator:t(\"Decorators must be attached to a class element.\"),TupleExpressionBarIncorrectEndSyntaxType:t(\"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),TupleExpressionBarIncorrectStartSyntaxType:t(\"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\"),TupleExpressionHashIncorrectStartSyntaxType:t(\"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\"),UnexpectedArgumentPlaceholder:t(\"Unexpected argument placeholder.\"),UnexpectedAwaitAfterPipelineBody:t('Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.'),UnexpectedDigitAfterHash:t(\"Unexpected digit after hash token.\"),UnexpectedImportExport:t(\"'import' and 'export' may only appear at the top level.\"),UnexpectedKeyword:t(e=>{let{keyword:s}=e;return\"Unexpected keyword '\".concat(s,\"'.\")}),UnexpectedLeadingDecorator:t(\"Leading decorators must be attached to a class declaration.\"),UnexpectedLexicalDeclaration:t(\"Lexical declaration cannot appear in a single-statement context.\"),UnexpectedNewTarget:t(\"`new.target` can only be used in functions or class properties.\"),UnexpectedNumericSeparator:t(\"A numeric separator is only allowed between two digits.\"),UnexpectedPrivateField:t(\"Unexpected private name.\"),UnexpectedReservedWord:t(e=>{let{reservedWord:s}=e;return\"Unexpected reserved word '\".concat(s,\"'.\")}),UnexpectedSuper:t(\"'super' is only allowed in object methods and classes.\"),UnexpectedToken:t(e=>{let{expected:s,unexpected:r}=e;return\"Unexpected token\".concat(r?\" '\".concat(r,\"'.\"):\"\").concat(s?', expected \"'.concat(s,'\"'):\"\")}),UnexpectedTokenUnaryExponentiation:t(\"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\"),UnsupportedBind:t(\"Binding should be performed on object property.\"),UnsupportedDecoratorExport:t(\"A decorated export must export a class declaration.\"),UnsupportedDefaultExport:t(\"Only expressions, functions or classes are allowed as the `default` export.\"),UnsupportedImport:t(\"`import` can only be used in `import()` or `import.meta`.\"),UnsupportedMetaProperty:t(e=>{let{target:s,onlyValidPropertyName:r}=e;return\"The only valid meta property for \".concat(s,\" is \").concat(s,\".\").concat(r,\".\")}),UnsupportedParameterDecorator:t(\"Decorators cannot be used to decorate parameters.\"),UnsupportedPropertyDecorator:t(\"Decorators cannot be used to decorate object literal properties.\"),UnsupportedSuper:t(\"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\"),UnterminatedComment:t(\"Unterminated comment.\"),UnterminatedRegExp:t(\"Unterminated regular expression.\"),UnterminatedString:t(\"Unterminated string constant.\"),UnterminatedTemplate:t(\"Unterminated template.\"),VarRedeclaration:t(e=>{let{identifierName:s}=e;return\"Identifier '\".concat(s,\"' has already been declared.\")}),YieldBindingIdentifier:t(\"Can not use 'yield' as identifier inside a generator.\"),YieldInParameter:t(\"Yield expression is not allowed in formal parameters.\"),ZeroDigitNumericSeparator:t(\"Numeric separator can not be used after leading 0.\")}),L=t=>({StrictDelete:t(\"Deleting local variable in strict mode.\"),StrictEvalArguments:t(e=>{let{referenceName:s}=e;return\"Assigning to '\".concat(s,\"' in strict mode.\")}),StrictEvalArgumentsBinding:t(e=>{let{bindingName:s}=e;return\"Binding '\".concat(s,\"' in strict mode.\")}),StrictFunction:t(\"In strict mode code, functions can only be declared at top level or inside a block.\"),StrictNumericEscape:t(\"The only valid numeric escape in strict mode is '\\\\0'.\"),StrictOctalLiteral:t(\"Legacy octal literals are not allowed in strict mode.\"),StrictWith:t(\"'with' in strict mode.\")}),R=new Set([\"ArrowFunctionExpression\",\"AssignmentExpression\",\"ConditionalExpression\",\"YieldExpression\"]),F=t=>({PipeBodyIsTighter:t(\"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\"),PipeTopicRequiresHackPipes:t('Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.'),PipeTopicUnbound:t(\"Topic reference is unbound; it must be inside a pipe body.\"),PipeTopicUnconfiguredToken:t(e=>{let{token:s}=e;return\"Invalid topic token \".concat(s,\". In order to use \").concat(s,' as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"').concat(s,'\" }.')}),PipeTopicUnused:t(\"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\"),PipeUnparenthesizedBody:t(e=>{let{type:s}=e;return\"Hack-style pipe body cannot be an unparenthesized \".concat(D({type:s}),\"; please wrap it in parentheses.\")}),PipelineBodyNoArrow:t('Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.'),PipelineBodySequenceExpression:t(\"Pipeline body may not be a comma-separated sequence expression.\"),PipelineHeadSequenceExpression:t(\"Pipeline head should not be a comma-separated sequence expression.\"),PipelineTopicUnused:t(\"Pipeline is in topic style but does not use topic reference.\"),PrimaryTopicNotAllowed:t(\"Topic reference was used in a lexical context without topic binding.\"),PrimaryTopicRequiresSmartPipeline:t('Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.')}),W=[\"toMessage\"];function Y(t){let{toMessage:e}=t,s=l(t,W);return function r(i){let{loc:a,details:n}=i;return x(SyntaxError,Object.assign({},s,{loc:a}),{clone(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o.loc||{};return r({loc:new p(\"line\"in c?c.line:this.loc.line,\"column\"in c?c.column:this.loc.column,\"index\"in c?c.index:this.loc.index),details:Object.assign({},this.details,o.details)})},details:{value:n,enumerable:!1},message:{get(){return\"\".concat(e(this.details),\" (\").concat(this.loc.line,\":\").concat(this.loc.column,\")\")},set(o){Object.defineProperty(this,\"message\",{value:o})}},pos:{reflect:\"loc.index\",enumerable:!0},missingPlugin:\"missingPlugin\"in n&&{reflect:\"details.missingPlugin\",enumerable:!0}})}}function M(t,e){return Object.assign({toMessage:typeof t==\"string\"?()=>t:t},e)}function j(t,e){if(Array.isArray(t))return i=>j(i,t[0]);let s=t(M),r={};for(let i of Object.keys(s))r[i]=Y(Object.assign({code:A.SyntaxError,reasonCode:i},e?{syntaxPlugin:e}:{},s[i]));return r}var u=Object.assign({},j(T),j(E),j(L),j(_n||(_n=rt([\"pipelineOperator\"])))(F)),{defineProperty:X}=Object,se=(t,e)=>X(t,e,{enumerable:!1,value:t[e]});function J(t){return se(t.loc.start,\"index\"),se(t.loc.end,\"index\"),t}var Oe=t=>class extends t{parse(){let e=J(super.parse());return this.options.tokens&&(e.tokens=e.tokens.map(J)),e}parseRegExpLiteral(e){let{pattern:s,flags:r}=e,i=null;try{i=new RegExp(s,r)}catch{}let a=this.estreeParseLiteral(i);return a.regex={pattern:s,flags:r},a}parseBigIntLiteral(e){let s;try{s=BigInt(e)}catch{s=null}let r=this.estreeParseLiteral(s);return r.bigint=String(r.value||e),r}parseDecimalLiteral(e){let r=this.estreeParseLiteral(null);return r.decimal=String(r.value||e),r}estreeParseLiteral(e){return this.parseLiteral(e,\"Literal\")}parseStringLiteral(e){return this.estreeParseLiteral(e)}parseNumericLiteral(e){return this.estreeParseLiteral(e)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(e){return this.estreeParseLiteral(e)}directiveToStmt(e){let s=e.value,r=this.startNodeAt(e.start,e.loc.start),i=this.startNodeAt(s.start,s.loc.start);return i.value=s.extra.expressionValue,i.raw=s.extra.raw,r.expression=this.finishNodeAt(i,\"Literal\",s.loc.end),r.directive=s.extra.raw.slice(1,-1),this.finishNodeAt(r,\"ExpressionStatement\",e.loc.end)}initFunction(e,s){super.initFunction(e,s),e.expression=!1}checkDeclaration(e){e!=null&&this.isObjectProperty(e)?this.checkDeclaration(e.value):super.checkDeclaration(e)}getObjectOrClassMethodParams(e){return e.value.params}isValidDirective(e){var s;return e.type===\"ExpressionStatement\"&&e.expression.type===\"Literal\"&&typeof e.expression.value==\"string\"&&!((s=e.expression.extra)!=null&&s.parenthesized)}parseBlockBody(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;ithis.directiveToStmt(n));e.body=a.concat(e.body),delete e.directives}pushClassMethod(e,s,r,i,a,n){this.parseMethod(s,r,i,a,n,\"ClassMethod\",!0),s.typeParameters&&(s.value.typeParameters=s.typeParameters,delete s.typeParameters),e.body.push(s)}parsePrivateName(){let e=super.parsePrivateName();return this.getPluginOption(\"estree\",\"classFeatures\")?this.convertPrivateNameToPrivateIdentifier(e):e}convertPrivateNameToPrivateIdentifier(e){let s=super.getPrivateNameSV(e);return e=e,delete e.id,e.name=s,e.type=\"PrivateIdentifier\",e}isPrivateName(e){return this.getPluginOption(\"estree\",\"classFeatures\")?e.type===\"PrivateIdentifier\":super.isPrivateName(e)}getPrivateNameSV(e){return this.getPluginOption(\"estree\",\"classFeatures\")?e.name:super.getPrivateNameSV(e)}parseLiteral(e,s){let r=super.parseLiteral(e,s);return r.raw=r.extra.raw,delete r.extra,r}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;super.parseFunctionBody(e,s,r),e.expression=e.body.type!==\"BlockStatement\"}parseMethod(e,s,r,i,a,n){let o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1,c=this.startNode();return c.kind=e.kind,c=super.parseMethod(c,s,r,i,a,n,o),c.type=\"FunctionExpression\",delete c.kind,e.value=c,n===\"ClassPrivateMethod\"&&(e.computed=!1),n=\"MethodDefinition\",this.finishNode(e,n)}parseClassProperty(){let e=super.parseClassProperty(...arguments);return this.getPluginOption(\"estree\",\"classFeatures\")&&(e.type=\"PropertyDefinition\"),e}parseClassPrivateProperty(){let e=super.parseClassPrivateProperty(...arguments);return this.getPluginOption(\"estree\",\"classFeatures\")&&(e.type=\"PropertyDefinition\",e.computed=!1),e}parseObjectMethod(e,s,r,i,a){let n=super.parseObjectMethod(e,s,r,i,a);return n&&(n.type=\"Property\",n.kind===\"method\"&&(n.kind=\"init\"),n.shorthand=!1),n}parseObjectProperty(e,s,r,i,a){let n=super.parseObjectProperty(e,s,r,i,a);return n&&(n.kind=\"init\",n.type=\"Property\"),n}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:!1;if(e!=null&&this.isObjectProperty(e)){let{key:r,value:i}=e;this.isPrivateName(r)&&this.classScope.usePrivateName(this.getPrivateNameSV(r),r.loc.start),this.toAssignable(i,s)}else super.toAssignable(e,s)}toAssignableObjectExpressionProp(e){e.kind===\"get\"||e.kind===\"set\"?this.raise(u.PatternHasAccessor,{at:e.key}):e.method?this.raise(u.PatternHasMethod,{at:e.key}):super.toAssignableObjectExpressionProp(...arguments)}finishCallExpression(e,s){if(super.finishCallExpression(e,s),e.callee.type===\"Import\"){if(e.type=\"ImportExpression\",e.source=e.arguments[0],this.hasPlugin(\"importAssertions\")){var r;e.attributes=(r=e.arguments[1])!=null?r:null}delete e.arguments,delete e.callee}return e}toReferencedArguments(e){e.type!==\"ImportExpression\"&&super.toReferencedArguments(e)}parseExport(e){switch(super.parseExport(e),e.type){case\"ExportAllDeclaration\":e.exported=null;break;case\"ExportNamedDeclaration\":e.specifiers.length===1&&e.specifiers[0].type===\"ExportNamespaceSpecifier\"&&(e.type=\"ExportAllDeclaration\",e.exported=e.specifiers[0].exported,delete e.specifiers);break}return e}parseSubscript(e,s,r,i,a){let n=super.parseSubscript(e,s,r,i,a);if(a.optionalChainMember){if((n.type===\"OptionalMemberExpression\"||n.type===\"OptionalCallExpression\")&&(n.type=n.type.substring(8)),a.stop){let o=this.startNodeAtNode(n);return o.expression=n,this.finishNode(o,\"ChainExpression\")}}else(n.type===\"MemberExpression\"||n.type===\"CallExpression\")&&(n.optional=!1);return n}hasPropertyAsPrivateName(e){return e.type===\"ChainExpression\"&&(e=e.expression),super.hasPropertyAsPrivateName(e)}isOptionalChain(e){return e.type===\"ChainExpression\"}isObjectProperty(e){return e.type===\"Property\"&&e.kind===\"init\"&&!e.method}isObjectMethod(e){return e.method||e.kind===\"get\"||e.kind===\"set\"}finishNodeAt(e,s,r){return J(super.finishNodeAt(e,s,r))}resetEndLocation(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;super.resetEndLocation(e,s),J(e)}},$=class{constructor(t,e){this.token=void 0,this.preserveSpace=void 0,this.token=t,this.preserveSpace=!!e}},z={brace:new $(\"{\"),j_oTag:new $(\"...\",!0)};z.template=new $(\"`\",!0);var O=!0,C=!0,Ve=!0,Z=!0,he=!0,Co=!0,or=class{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.rightAssociative=!!e.rightAssociative,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop!=null?e.binop:null,this.updateContext=null}},qt=new Map;function q(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.keyword=t;let s=w(t,e);return qt.set(t,s),s}function te(t,e){return w(t,{beforeExpr:O,binop:e})}var He=-1,ce=[],Ut=[],it=[],_t=[],zt=[],Kt=[];function w(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++He,Ut.push(t),it.push((s=e.binop)!=null?s:-1),_t.push((r=e.beforeExpr)!=null?r:!1),zt.push((i=e.startsExpr)!=null?i:!1),Kt.push((a=e.prefix)!=null?a:!1),ce.push(new or(t,e)),He}function U(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var s,r,i,a;return++He,qt.set(t,He),Ut.push(t),it.push((s=e.binop)!=null?s:-1),_t.push((r=e.beforeExpr)!=null?r:!1),zt.push((i=e.startsExpr)!=null?i:!1),Kt.push((a=e.prefix)!=null?a:!1),ce.push(new or(\"name\",e)),He}var bo={bracketL:w(\"[\",{beforeExpr:O,startsExpr:C}),bracketHashL:w(\"#[\",{beforeExpr:O,startsExpr:C}),bracketBarL:w(\"[|\",{beforeExpr:O,startsExpr:C}),bracketR:w(\"]\"),bracketBarR:w(\"|]\"),braceL:w(\"{\",{beforeExpr:O,startsExpr:C}),braceBarL:w(\"{|\",{beforeExpr:O,startsExpr:C}),braceHashL:w(\"#{\",{beforeExpr:O,startsExpr:C}),braceR:w(\"}\"),braceBarR:w(\"|}\"),parenL:w(\"(\",{beforeExpr:O,startsExpr:C}),parenR:w(\")\"),comma:w(\",\",{beforeExpr:O}),semi:w(\";\",{beforeExpr:O}),colon:w(\":\",{beforeExpr:O}),doubleColon:w(\"::\",{beforeExpr:O}),dot:w(\".\"),question:w(\"?\",{beforeExpr:O}),questionDot:w(\"?.\"),arrow:w(\"=>\",{beforeExpr:O}),template:w(\"template\"),ellipsis:w(\"...\",{beforeExpr:O}),backQuote:w(\"`\",{startsExpr:C}),dollarBraceL:w(\"${\",{beforeExpr:O,startsExpr:C}),templateTail:w(\"...`\",{startsExpr:C}),templateNonTail:w(\"...${\",{beforeExpr:O,startsExpr:C}),at:w(\"@\"),hash:w(\"#\",{startsExpr:C}),interpreterDirective:w(\"#!...\"),eq:w(\"=\",{beforeExpr:O,isAssign:Z}),assign:w(\"_=\",{beforeExpr:O,isAssign:Z}),slashAssign:w(\"_=\",{beforeExpr:O,isAssign:Z}),xorAssign:w(\"_=\",{beforeExpr:O,isAssign:Z}),moduloAssign:w(\"_=\",{beforeExpr:O,isAssign:Z}),incDec:w(\"++/--\",{prefix:he,postfix:Co,startsExpr:C}),bang:w(\"!\",{beforeExpr:O,prefix:he,startsExpr:C}),tilde:w(\"~\",{beforeExpr:O,prefix:he,startsExpr:C}),doubleCaret:w(\"^^\",{startsExpr:C}),doubleAt:w(\"@@\",{startsExpr:C}),pipeline:te(\"|>\",0),nullishCoalescing:te(\"??\",1),logicalOR:te(\"||\",1),logicalAND:te(\"&&\",2),bitwiseOR:te(\"|\",3),bitwiseXOR:te(\"^\",4),bitwiseAND:te(\"&\",5),equality:te(\"==/!=/===/!==\",6),lt:te(\"/<=/>=\",7),gt:te(\"/<=/>=\",7),relational:te(\"/<=/>=\",7),bitShift:te(\"<>/>>>\",8),bitShiftL:te(\"<>/>>>\",8),bitShiftR:te(\"<>/>>>\",8),plusMin:w(\"+/-\",{beforeExpr:O,binop:9,prefix:he,startsExpr:C}),modulo:w(\"%\",{binop:10,startsExpr:C}),star:w(\"*\",{binop:10}),slash:te(\"/\",10),exponent:w(\"**\",{beforeExpr:O,binop:11,rightAssociative:!0}),_in:q(\"in\",{beforeExpr:O,binop:7}),_instanceof:q(\"instanceof\",{beforeExpr:O,binop:7}),_break:q(\"break\"),_case:q(\"case\",{beforeExpr:O}),_catch:q(\"catch\"),_continue:q(\"continue\"),_debugger:q(\"debugger\"),_default:q(\"default\",{beforeExpr:O}),_else:q(\"else\",{beforeExpr:O}),_finally:q(\"finally\"),_function:q(\"function\",{startsExpr:C}),_if:q(\"if\"),_return:q(\"return\",{beforeExpr:O}),_switch:q(\"switch\"),_throw:q(\"throw\",{beforeExpr:O,prefix:he,startsExpr:C}),_try:q(\"try\"),_var:q(\"var\"),_const:q(\"const\"),_with:q(\"with\"),_new:q(\"new\",{beforeExpr:O,startsExpr:C}),_this:q(\"this\",{startsExpr:C}),_super:q(\"super\",{startsExpr:C}),_class:q(\"class\",{startsExpr:C}),_extends:q(\"extends\",{beforeExpr:O}),_export:q(\"export\"),_import:q(\"import\",{startsExpr:C}),_null:q(\"null\",{startsExpr:C}),_true:q(\"true\",{startsExpr:C}),_false:q(\"false\",{startsExpr:C}),_typeof:q(\"typeof\",{beforeExpr:O,prefix:he,startsExpr:C}),_void:q(\"void\",{beforeExpr:O,prefix:he,startsExpr:C}),_delete:q(\"delete\",{beforeExpr:O,prefix:he,startsExpr:C}),_do:q(\"do\",{isLoop:Ve,beforeExpr:O}),_for:q(\"for\",{isLoop:Ve}),_while:q(\"while\",{isLoop:Ve}),_as:U(\"as\",{startsExpr:C}),_assert:U(\"assert\",{startsExpr:C}),_async:U(\"async\",{startsExpr:C}),_await:U(\"await\",{startsExpr:C}),_from:U(\"from\",{startsExpr:C}),_get:U(\"get\",{startsExpr:C}),_let:U(\"let\",{startsExpr:C}),_meta:U(\"meta\",{startsExpr:C}),_of:U(\"of\",{startsExpr:C}),_sent:U(\"sent\",{startsExpr:C}),_set:U(\"set\",{startsExpr:C}),_static:U(\"static\",{startsExpr:C}),_yield:U(\"yield\",{startsExpr:C}),_asserts:U(\"asserts\",{startsExpr:C}),_checks:U(\"checks\",{startsExpr:C}),_exports:U(\"exports\",{startsExpr:C}),_global:U(\"global\",{startsExpr:C}),_implements:U(\"implements\",{startsExpr:C}),_intrinsic:U(\"intrinsic\",{startsExpr:C}),_infer:U(\"infer\",{startsExpr:C}),_is:U(\"is\",{startsExpr:C}),_mixins:U(\"mixins\",{startsExpr:C}),_proto:U(\"proto\",{startsExpr:C}),_require:U(\"require\",{startsExpr:C}),_keyof:U(\"keyof\",{startsExpr:C}),_readonly:U(\"readonly\",{startsExpr:C}),_unique:U(\"unique\",{startsExpr:C}),_abstract:U(\"abstract\",{startsExpr:C}),_declare:U(\"declare\",{startsExpr:C}),_enum:U(\"enum\",{startsExpr:C}),_module:U(\"module\",{startsExpr:C}),_namespace:U(\"namespace\",{startsExpr:C}),_interface:U(\"interface\",{startsExpr:C}),_type:U(\"type\",{startsExpr:C}),_opaque:U(\"opaque\",{startsExpr:C}),name:w(\"name\",{startsExpr:C}),string:w(\"string\",{startsExpr:C}),num:w(\"num\",{startsExpr:C}),bigint:w(\"bigint\",{startsExpr:C}),decimal:w(\"decimal\",{startsExpr:C}),regexp:w(\"regexp\",{startsExpr:C}),privateName:w(\"#name\",{startsExpr:C}),eof:w(\"eof\"),jsxName:w(\"jsxName\"),jsxText:w(\"jsxText\",{beforeExpr:!0}),jsxTagStart:w(\"jsxTagStart\",{startsExpr:!0}),jsxTagEnd:w(\"jsxTagEnd\"),placeholder:w(\"%%\",{startsExpr:!0})};function K(t){return t>=93&&t<=128}function vo(t){return t<=92}function pe(t){return t>=58&&t<=128}function hr(t){return t>=58&&t<=132}function So(t){return _t[t]}function Vt(t){return zt[t]}function wo(t){return t>=29&&t<=33}function lr(t){return t>=125&&t<=127}function No(t){return t>=90&&t<=92}function Ht(t){return t>=58&&t<=92}function Io(t){return t>=39&&t<=59}function ko(t){return t===34}function Do(t){return Kt[t]}function Fo(t){return t>=117&&t<=119}function Lo(t){return t>=120&&t<=126}function Pe(t){return Ut[t]}function at(t){return it[t]}function Oo(t){return it[t]!==-1}function Bo(t){return t===57}function nt(t){return t>=24&&t<=25}function fe(t){return ce[t]}ce[8].updateContext=t=>{t.pop()},ce[5].updateContext=ce[7].updateContext=ce[23].updateContext=t=>{t.push(z.brace)},ce[22].updateContext=t=>{t[t.length-1]===z.template?t.pop():t.push(z.template)},ce[138].updateContext=t=>{t.push(z.j_expr,z.j_oTag)};var Wt=\"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",ur=\"\\u200C\\u200D\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\",Mo=new RegExp(\"[\"+Wt+\"]\"),Ro=new RegExp(\"[\"+Wt+ur+\"]\");Wt=ur=null;var cr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],jo=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function Gt(t,e){let s=65536;for(let r=0,i=e.length;rt)return!1;if(s+=e[r+1],s>=t)return!0}return!1}function de(t){return t<65?t===36:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&Mo.test(String.fromCharCode(t)):Gt(t,cr)}function Be(t){return t<48?t===36:t<58?!0:t<65?!1:t<=90?!0:t<97?t===95:t<=122?!0:t<=65535?t>=170&&Ro.test(String.fromCharCode(t)):Gt(t,cr)||Gt(t,jo)}var Xt={keyword:[\"break\",\"case\",\"catch\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"function\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"var\",\"const\",\"while\",\"with\",\"new\",\"this\",\"super\",\"class\",\"extends\",\"export\",\"import\",\"null\",\"true\",\"false\",\"in\",\"instanceof\",\"typeof\",\"void\",\"delete\"],strict:[\"implements\",\"interface\",\"let\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\"],strictBind:[\"eval\",\"arguments\"]},qo=new Set(Xt.keyword),Uo=new Set(Xt.strict),_o=new Set(Xt.strictBind);function pr(t,e){return e&&t===\"await\"||t===\"enum\"}function fr(t,e){return pr(t,e)||Uo.has(t)}function dr(t){return _o.has(t)}function mr(t,e){return fr(t,e)||dr(t)}function zo(t){return qo.has(t)}function Ko(t,e,s){return t===64&&e===64&&de(s)}var Vo=new Set([\"break\",\"case\",\"catch\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"function\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"var\",\"const\",\"while\",\"with\",\"new\",\"this\",\"super\",\"class\",\"extends\",\"export\",\"import\",\"null\",\"true\",\"false\",\"in\",\"instanceof\",\"typeof\",\"void\",\"delete\",\"implements\",\"interface\",\"let\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\",\"eval\",\"arguments\",\"enum\",\"await\"]);function Ho(t){return Vo.has(t)}var Me=0,We=1,me=2,Jt=4,yr=8,ot=16,xr=32,Se=64,Yt=128,ht=256,lt=We|me|ht,ye=1,Re=2,gr=4,Te=8,ut=16,Ar=64,ct=128,$t=256,Qt=512,Zt=1024,es=2048,Pr=ye|Re|Te|ct,xe=ye|0|Te|0,pt=ye|0|gr|0,Tr=ye|0|ut|0,Wo=0|Re|0|ct,Go=0|Re|0|0,Er=ye|Re|Te|$t,Cr=0|Zt,we=0|Ar,Xo=ye|0|0|Ar,Jo=Er|Qt,Yo=0|Zt,$o=es,ft=4,ts=2,ss=1,rs=ts|ss,Qo=ts|ft,Zo=ss|ft,eh=ts,th=ss,is=0,sh=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(t){if(typeof t==\"string\")return this.plugins.has(t);{let[e,s]=t;if(!this.hasPlugin(e))return!1;let r=this.plugins.get(e);for(let i of Object.keys(s))if((r==null?void 0:r[i])!==s[i])return!1;return!0}}getPluginOption(t,e){var s;return(s=this.plugins.get(t))==null?void 0:s[e]}};function br(t,e){t.trailingComments===void 0?t.trailingComments=e:t.trailingComments.unshift(...e)}function rh(t,e){t.leadingComments===void 0?t.leadingComments=e:t.leadingComments.unshift(...e)}function Ge(t,e){t.innerComments===void 0?t.innerComments=e:t.innerComments.unshift(...e)}function Xe(t,e,s){let r=null,i=e.length;for(;r===null&&i>0;)r=e[--i];r===null||r.start>s.start?Ge(t,s.comments):br(r,s.comments)}var ih=class extends sh{addComment(t){this.filename&&(t.loc.filename=this.filename),this.state.comments.push(t)}processComment(t){let{commentStack:e}=this.state,s=e.length;if(s===0)return;let r=s-1,i=e[r];i.start===t.end&&(i.leadingNode=t,r--);let{start:a}=t;for(;r>=0;r--){let n=e[r],o=n.end;if(o>a)n.containingNode=t,this.finalizeComment(n),e.splice(r,1);else{o===a&&(n.trailingNode=t);break}}}finalizeComment(t){let{comments:e}=t;if(t.leadingNode!==null||t.trailingNode!==null)t.leadingNode!==null&&br(t.leadingNode,e),t.trailingNode!==null&&rh(t.trailingNode,e);else{let{containingNode:s,start:r}=t;if(this.input.charCodeAt(r-1)===44)switch(s.type){case\"ObjectExpression\":case\"ObjectPattern\":case\"RecordExpression\":Xe(s,s.properties,t);break;case\"CallExpression\":case\"OptionalCallExpression\":Xe(s,s.arguments,t);break;case\"FunctionDeclaration\":case\"FunctionExpression\":case\"ArrowFunctionExpression\":case\"ObjectMethod\":case\"ClassMethod\":case\"ClassPrivateMethod\":Xe(s,s.params,t);break;case\"ArrayExpression\":case\"ArrayPattern\":case\"TupleExpression\":Xe(s,s.elements,t);break;case\"ExportNamedDeclaration\":case\"ImportDeclaration\":Xe(s,s.specifiers,t);break;default:Ge(s,e)}else Ge(s,e)}}finalizeRemainingComments(){let{commentStack:t}=this.state;for(let e=t.length-1;e>=0;e--)this.finalizeComment(t[e]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(t){let{commentStack:e}=this.state,{length:s}=e;if(s===0)return;let r=e[s-1];r.leadingNode===t&&(r.leadingNode=null)}takeSurroundingComments(t,e,s){let{commentStack:r}=this.state,i=r.length;if(i===0)return;let a=i-1;for(;a>=0;a--){let n=r[a],o=n.end;if(n.start===s)n.leadingNode=t;else if(o===e)n.trailingNode=t;else if(o=48&&e<=57},uh=new Set([103,109,115,105,121,117,100,118]),wr={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},mt={bin:t=>t===48||t===49,oct:t=>t>=48&&t<=55,dec:t=>t>=48&&t<=57,hex:t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102},Ee=class{constructor(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new d(t.startLoc,t.endLoc)}},ch=class extends ih{constructor(t,e){super(),this.isLookahead=void 0,this.tokens=[],this.state=new Sr,this.state.init(t),this.input=e,this.length=e.length,this.isLookahead=!1}pushToken(t){this.tokens.length=this.state.tokensLength,this.tokens.push(t),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new Ee(this.state)),this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(t){return this.match(t)?(this.next(),!0):!1}match(t){return this.state.type===t}createLookaheadState(t){return{pos:t.pos,value:null,type:t.type,start:t.start,end:t.end,context:[this.curContext()],inType:t.inType,startLoc:t.startLoc,lastTokEndLoc:t.lastTokEndLoc,curLine:t.curLine,lineStart:t.lineStart,curPosition:t.curPosition}}lookahead(){let t=this.state;this.state=this.createLookaheadState(t),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;let e=this.state;return this.state=t,e}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(t){return ns.lastIndex=t,ns.test(this.input)?ns.lastIndex:t}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}codePointAtPos(t){let e=this.input.charCodeAt(t);if((e&64512)===55296&&++t{let[s,r]=e;return this.raise(s,{at:r})}),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(135);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(){let t;this.isLookahead||(t=this.state.curPosition());let e=this.state.pos,s=this.input.indexOf(\"*/\",e+2);if(s===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()});for(this.state.pos=s+2,dt.lastIndex=e+2;dt.test(this.input)&&dt.lastIndex<=s;)++this.state.curLine,this.state.lineStart=dt.lastIndex;if(this.isLookahead)return;let r={type:\"CommentBlock\",value:this.input.slice(e+2,s),start:e,end:s+2,loc:new d(t,this.state.curPosition())};return this.options.tokens&&this.pushToken(r),r}skipLineComment(t){let e=this.state.pos,s;this.isLookahead||(s=this.state.curPosition());let r=this.input.charCodeAt(this.state.pos+=t);if(this.state.post)){let i=this.skipLineComment(3);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else if(s===60&&!this.inModule){let r=this.state.pos;if(this.input.charCodeAt(r+1)===33&&this.input.charCodeAt(r+2)===45&&this.input.charCodeAt(r+3)===45){let i=this.skipLineComment(4);i!==void 0&&(this.addComment(i),this.options.attachComment&&e.push(i))}else break e}else break e}}if(e.length>0){let s=this.state.pos,r={start:t,end:s,comments:e,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(r)}}finishToken(t,e){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();let s=this.state.type;this.state.type=t,this.state.value=e,this.isLookahead||this.updateContext(s)}replaceToken(t){this.state.type=t,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;let t=this.state.pos+1,e=this.codePointAtPos(t);if(e>=48&&e<=57)throw this.raise(u.UnexpectedDigitAfterHash,{at:this.state.curPosition()});if(e===123||e===91&&this.hasPlugin(\"recordAndTuple\")){if(this.expectPlugin(\"recordAndTuple\"),this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"hash\")throw this.raise(e===123?u.RecordExpressionHashIncorrectStartSyntaxType:u.TupleExpressionHashIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,e===123?this.finishToken(7):this.finishToken(1)}else de(e)?(++this.state.pos,this.finishToken(134,this.readWord1(e))):e===92?(++this.state.pos,this.finishToken(134,this.readWord1())):this.finishOp(27,1)}readToken_dot(){let t=this.input.charCodeAt(this.state.pos+1);if(t>=48&&t<=57){this.readNumber(!0);return}t===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let t=this.input.charCodeAt(this.state.pos+1);if(t!==33)return!1;let e=this.state.pos;for(this.state.pos+=1;!Ne(t)&&++this.state.pos=48&&e<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(t){switch(t){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin(\"recordAndTuple\")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"bar\")throw this.raise(u.TupleExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin(\"recordAndTuple\")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption(\"recordAndTuple\",\"syntaxType\")!==\"bar\")throw this.raise(u.RecordExpressionBarIncorrectStartSyntaxType,{at:this.state.curPosition()});this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin(\"functionBind\")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{let e=this.input.charCodeAt(this.state.pos+1);if(e===120||e===88){this.readRadixNumber(16);return}if(e===111||e===79){this.readRadixNumber(8);return}if(e===98||e===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(t);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(t);return;case 124:case 38:this.readToken_pipe_amp(t);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(t);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(t);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(de(t)){this.readWord(t);return}}throw this.raise(u.InvalidOrUnexpectedToken,{at:this.state.curPosition(),unexpected:String.fromCodePoint(t)})}finishOp(t,e){let s=this.input.slice(this.state.pos,this.state.pos+e);this.state.pos+=e,this.finishToken(t,s)}readRegexp(){let t=this.state.startLoc,e=this.state.start+1,s,r,{pos:i}=this.state;for(;;++i){if(i>=this.length)throw this.raise(u.UnterminatedRegExp,{at:m(t,1)});let c=this.input.charCodeAt(i);if(Ne(c))throw this.raise(u.UnterminatedRegExp,{at:m(t,1)});if(s)s=!1;else{if(c===91)r=!0;else if(c===93&&r)r=!1;else if(c===47&&!r)break;s=c===92}}let a=this.input.slice(e,i);++i;let n=\"\",o=()=>m(t,i+2-e);for(;i3&&arguments[3]!==void 0?arguments[3]:!0,i=this.state.pos,a=t===16?wr.hex:wr.decBinOct,n=t===16?mt.hex:t===10?mt.dec:t===8?mt.oct:mt.bin,o=!1,c=0;for(let f=0,y=e==null?1/0:e;f=97?v=P-97+10:P>=65?v=P-65+10:lh(P)?v=P-48:v=1/0,v>=t)if(this.options.errorRecovery&&v<=9)v=0,this.raise(u.InvalidDigit,{at:this.state.curPosition(),radix:t});else if(s)v=0,o=!0;else break;++this.state.pos,c=c*t+v}return this.state.pos===i||e!=null&&this.state.pos-i!==e||o?null:c}readRadixNumber(t){let e=this.state.curPosition(),s=!1;this.state.pos+=2;let r=this.readInt(t);r==null&&this.raise(u.InvalidDigit,{at:m(e,2),radix:t});let i=this.input.charCodeAt(this.state.pos);if(i===110)++this.state.pos,s=!0;else if(i===109)throw this.raise(u.InvalidDecimal,{at:e});if(de(this.codePointAtPos(this.state.pos)))throw this.raise(u.NumberIdentifier,{at:this.state.curPosition()});if(s){let a=this.input.slice(e.index,this.state.pos).replace(/[_n]/g,\"\");this.finishToken(131,a);return}this.finishToken(130,r)}readNumber(t){let e=this.state.pos,s=this.state.curPosition(),r=!1,i=!1,a=!1,n=!1,o=!1;!t&&this.readInt(10)===null&&this.raise(u.InvalidNumber,{at:this.state.curPosition()});let c=this.state.pos-e>=2&&this.input.charCodeAt(e)===48;if(c){let v=this.input.slice(e,this.state.pos);if(this.recordStrictModeErrors(u.StrictOctalLiteral,{at:s}),!this.state.strict){let N=v.indexOf(\"_\");N>0&&this.raise(u.ZeroDigitNumericSeparator,{at:m(s,N)})}o=c&&!/[89]/.test(v)}let f=this.input.charCodeAt(this.state.pos);if(f===46&&!o&&(++this.state.pos,this.readInt(10),r=!0,f=this.input.charCodeAt(this.state.pos)),(f===69||f===101)&&!o&&(f=this.input.charCodeAt(++this.state.pos),(f===43||f===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(u.InvalidOrMissingExponent,{at:s}),r=!0,n=!0,f=this.input.charCodeAt(this.state.pos)),f===110&&((r||c)&&this.raise(u.InvalidBigIntLiteral,{at:s}),++this.state.pos,i=!0),f===109&&(this.expectPlugin(\"decimal\",this.state.curPosition()),(n||c)&&this.raise(u.InvalidDecimal,{at:s}),++this.state.pos,a=!0),de(this.codePointAtPos(this.state.pos)))throw this.raise(u.NumberIdentifier,{at:this.state.curPosition()});let y=this.input.slice(e,this.state.pos).replace(/[_mn]/g,\"\");if(i){this.finishToken(131,y);return}if(a){this.finishToken(132,y);return}let P=o?parseInt(y,8):parseFloat(y);this.finishToken(130,P)}readCodePoint(t){let e=this.input.charCodeAt(this.state.pos),s;if(e===123){if(++this.state.pos,s=this.readHexChar(this.input.indexOf(\"}\",this.state.pos)-this.state.pos,!0,t),++this.state.pos,s!==null&&s>1114111)if(t)this.raise(u.InvalidCodePoint,{at:this.state.curPosition()});else return null}else s=this.readHexChar(4,!1,t);return s}readString(t){let e=\"\",s=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedString,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);if(r===t)break;if(r===92)e+=this.input.slice(s,this.state.pos),e+=this.readEscapedChar(!1),s=this.state.pos;else if(r===8232||r===8233)++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;else{if(Ne(r))throw this.raise(u.UnterminatedString,{at:this.state.startLoc});++this.state.pos}}e+=this.input.slice(s,this.state.pos++),this.finishToken(129,e)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){let t=\"\",e=this.state.pos,s=!1;for(++this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedTemplate,{at:m(this.state.startLoc,1)});let r=this.input.charCodeAt(this.state.pos);if(r===96){++this.state.pos,t+=this.input.slice(e,this.state.pos),this.finishToken(24,s?null:t);return}if(r===36&&this.input.charCodeAt(this.state.pos+1)===123){this.state.pos+=2,t+=this.input.slice(e,this.state.pos),this.finishToken(25,s?null:t);return}if(r===92){t+=this.input.slice(e,this.state.pos);let i=this.readEscapedChar(!0);i===null?s=!0:t+=i,e=this.state.pos}else if(Ne(r)){switch(t+=this.input.slice(e,this.state.pos),++this.state.pos,r){case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:t+=`\n`;break;default:t+=String.fromCharCode(r);break}++this.state.curLine,this.state.lineStart=this.state.pos,e=this.state.pos}else++this.state.pos}}recordStrictModeErrors(t,e){let{at:s}=e,r=s.index;this.state.strict&&!this.state.strictErrors.has(r)?this.raise(t,{at:s}):this.state.strictErrors.set(r,[t,s])}readEscapedChar(t){let e=!t,s=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,s){case 110:return`\n`;case 114:return\"\\r\";case 120:{let r=this.readHexChar(2,!1,e);return r===null?null:String.fromCharCode(r)}case 117:{let r=this.readCodePoint(e);return r===null?null:String.fromCodePoint(r)}case 116:return\"\t\";case 98:return\"\\b\";case 118:return\"\\v\";case 102:return\"\\f\";case 13:this.input.charCodeAt(this.state.pos)===10&&++this.state.pos;case 10:this.state.lineStart=this.state.pos,++this.state.curLine;case 8232:case 8233:return\"\";case 56:case 57:if(t)return null;this.recordStrictModeErrors(u.StrictNumericEscape,{at:m(this.state.curPosition(),-1)});default:if(s>=48&&s<=55){let r=m(this.state.curPosition(),-1),a=this.input.slice(this.state.pos-1,this.state.pos+2).match(/^[0-7]+/)[0],n=parseInt(a,8);n>255&&(a=a.slice(0,-1),n=parseInt(a,8)),this.state.pos+=a.length-1;let o=this.input.charCodeAt(this.state.pos);if(a!==\"0\"||o===56||o===57){if(t)return null;this.recordStrictModeErrors(u.StrictNumericEscape,{at:r})}return String.fromCharCode(n)}return String.fromCharCode(s)}}readHexChar(t,e,s){let r=this.state.curPosition(),i=this.readInt(16,t,e,!1);return i===null&&(s?this.raise(u.InvalidEscapeSequence,{at:r}):this.state.pos=r.index-1),i}readWord1(t){this.state.containsEsc=!1;let e=\"\",s=this.state.pos,r=this.state.pos;for(t!==void 0&&(this.state.pos+=t<=65535?1:2);this.state.pos=0;o--){let c=n[o];if(c.loc.index===a)return n[o]=t({loc:i,details:r});if(c.loc.indexthis.hasPlugin(e)))throw this.raise(u.MissingOneOfPlugins,{at:this.state.startLoc,missingPlugin:t})}},os=class{constructor(t){this.var=new Set,this.lexical=new Set,this.functions=new Set,this.flags=t}},hs=class{constructor(t,e){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=t,this.inModule=e}get inFunction(){return(this.currentVarScopeFlags()&me)>0}get allowSuper(){return(this.currentThisScopeFlags()&ot)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&xr)>0}get inClass(){return(this.currentThisScopeFlags()&Se)>0}get inClassAndNotInNonArrowFunction(){let t=this.currentThisScopeFlags();return(t&Se)>0&&(t&me)===0}get inStaticBlock(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&Yt)return!0;if(e&(lt|Se))return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&me)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(t){return new os(t)}enter(t){this.scopeStack.push(this.createScope(t))}exit(){this.scopeStack.pop()}treatFunctionsAsVarInScope(t){return!!(t.flags&(me|Yt)||!this.parser.inModule&&t.flags&We)}declareName(t,e,s){let r=this.currentScope();if(e&Te||e&ut)this.checkRedeclarationInScope(r,t,e,s),e&ut?r.functions.add(t):r.lexical.add(t),e&Te&&this.maybeExportDefined(r,t);else if(e&gr)for(let i=this.scopeStack.length-1;i>=0&&(r=this.scopeStack[i],this.checkRedeclarationInScope(r,t,e,s),r.var.add(t),this.maybeExportDefined(r,t),!(r.flags<));--i);this.parser.inModule&&r.flags&We&&this.undefinedExports.delete(t)}maybeExportDefined(t,e){this.parser.inModule&&t.flags&We&&this.undefinedExports.delete(e)}checkRedeclarationInScope(t,e,s,r){this.isRedeclaredInScope(t,e,s)&&this.parser.raise(u.VarRedeclaration,{at:r,identifierName:e})}isRedeclaredInScope(t,e,s){return s&ye?s&Te?t.lexical.has(e)||t.functions.has(e)||t.var.has(e):s&ut?t.lexical.has(e)||!this.treatFunctionsAsVarInScope(t)&&t.var.has(e):t.lexical.has(e)&&!(t.flags&yr&&t.lexical.values().next().value===e)||!this.treatFunctionsAsVarInScope(t)&&t.functions.has(e):!1}checkLocalExport(t){let{name:e}=t,s=this.scopeStack[0];!s.lexical.has(e)&&!s.var.has(e)&&!s.functions.has(e)&&this.undefinedExports.set(e,t.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e<)return e}}currentThisScopeFlags(){for(let t=this.scopeStack.length-1;;t--){let{flags:e}=this.scopeStack[t];if(e&(lt|Se)&&!(e&Jt))return e}}},ph=class extends os{constructor(){super(...arguments),this.declareFunctions=new Set}},fh=class extends hs{createScope(t){return new ph(t)}declareName(t,e,s){let r=this.currentScope();if(e&es){this.checkRedeclarationInScope(r,t,e,s),this.maybeExportDefined(r,t),r.declareFunctions.add(t);return}super.declareName(...arguments)}isRedeclaredInScope(t,e,s){return super.isRedeclaredInScope(...arguments)?!0:s&es?!t.declareFunctions.has(e)&&(t.lexical.has(e)||t.functions.has(e)):!1}checkLocalExport(t){this.scopeStack[0].declareFunctions.has(t.name)||super.checkLocalExport(t)}},dh=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},mh=class{constructor(t){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=t}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new dh)}exit(){let t=this.stack.pop(),e=this.current();for(let[s,r]of Array.from(t.undefinedPrivateNames))e?e.undefinedPrivateNames.has(s)||e.undefinedPrivateNames.set(s,r):this.parser.raise(u.InvalidPrivateFieldResolution,{at:r,identifierName:s})}declarePrivateName(t,e,s){let{privateNames:r,loneAccessors:i,undefinedPrivateNames:a}=this.current(),n=r.has(t);if(e&rs){let o=n&&i.get(t);if(o){let c=o&ft,f=e&ft,y=o&rs,P=e&rs;n=y===P||c!==f,n||i.delete(t)}else n||i.set(t,e)}n&&this.parser.raise(u.PrivateNameRedeclaration,{at:s,identifierName:t}),r.add(t),a.delete(t)}usePrivateName(t,e){let s;for(s of this.stack)if(s.privateNames.has(t))return;s?s.undefinedPrivateNames.set(t,e):this.parser.raise(u.InvalidPrivateFieldResolution,{at:e,identifierName:t})}},yh=0,Nr=1,ls=2,Ir=3,yt=class{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:yh;this.type=void 0,this.type=t}canBeArrowParameterDeclaration(){return this.type===ls||this.type===Nr}isCertainlyParameterDeclaration(){return this.type===Ir}},kr=class extends yt{constructor(t){super(t),this.declarationErrors=new Map}recordDeclarationError(t,e){let{at:s}=e,r=s.index;this.declarationErrors.set(r,[t,s])}clearDeclarationError(t){this.declarationErrors.delete(t)}iterateErrors(t){this.declarationErrors.forEach(t)}},xh=class{constructor(t){this.parser=void 0,this.stack=[new yt],this.parser=t}enter(t){this.stack.push(t)}exit(){this.stack.pop()}recordParameterInitializerError(t,e){let{at:s}=e,r={at:s.loc.start},{stack:i}=this,a=i.length-1,n=i[a];for(;!n.isCertainlyParameterDeclaration();){if(n.canBeArrowParameterDeclaration())n.recordDeclarationError(t,r);else return;n=i[--a]}this.parser.raise(t,r)}recordArrowParemeterBindingError(t,e){let{at:s}=e,{stack:r}=this,i=r[r.length-1],a={at:s.loc.start};if(i.isCertainlyParameterDeclaration())this.parser.raise(t,a);else if(i.canBeArrowParameterDeclaration())i.recordDeclarationError(t,a);else return}recordAsyncArrowParametersError(t){let{at:e}=t,{stack:s}=this,r=s.length-1,i=s[r];for(;i.canBeArrowParameterDeclaration();)i.type===ls&&i.recordDeclarationError(u.AwaitBindingIdentifier,{at:e}),i=s[--r]}validateAsPattern(){let{stack:t}=this,e=t[t.length-1];!e.canBeArrowParameterDeclaration()||e.iterateErrors(s=>{let[r,i]=s;this.parser.raise(r,{at:i});let a=t.length-2,n=t[a];for(;n.canBeArrowParameterDeclaration();)n.clearDeclarationError(i.index),n=t[--a]})}};function gh(){return new yt(Ir)}function Ah(){return new kr(Nr)}function Ph(){return new kr(ls)}function Dr(){return new yt}var je=0,Fr=1,xt=2,Lr=4,qe=8,Th=class{constructor(){this.stacks=[]}enter(t){this.stacks.push(t)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&xt)>0}get hasYield(){return(this.currentFlags()&Fr)>0}get hasReturn(){return(this.currentFlags()&Lr)>0}get hasIn(){return(this.currentFlags()&qe)>0}};function gt(t,e){return(t?xt:0)|(e?Fr:0)}var Eh=class extends ch{addExtra(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;if(!t)return;let i=t.extra=t.extra||{};r?i[e]=s:Object.defineProperty(i,e,{enumerable:r,value:s})}isContextual(t){return this.state.type===t&&!this.state.containsEsc}isUnparsedContextual(t,e){let s=t+e.length;if(this.input.slice(t,s)===e){let r=this.input.charCodeAt(s);return!(Be(r)||(r&64512)===55296)}return!1}isLookaheadContextual(t){let e=this.nextTokenStart();return this.isUnparsedContextual(e,t)}eatContextual(t){return this.isContextual(t)?(this.next(),!0):!1}expectContextual(t,e){if(!this.eatContextual(t))throw e!=null?this.raise(e,{at:this.state.startLoc}):this.unexpected(null,t)}canInsertSemicolon(){return this.match(135)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return as.test(this.input.slice(this.state.lastTokEndLoc.index,this.state.start))}hasFollowingLineBreak(){return vr.lastIndex=this.state.end,vr.test(this.input)}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(){((arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)?this.isLineTerminator():this.eat(13))||this.raise(u.MissingSemicolon,{at:this.state.lastTokEndLoc})}expect(t,e){this.eat(t)||this.unexpected(e,t)}tryParse(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.state.clone(),s={node:null};try{let r=t(function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;throw s.node=i,s});if(this.state.errors.length>e.errors.length){let i=this.state;return this.state=e,this.state.tokensLength=i.tokensLength,{node:r,error:i.errors[e.errors.length],thrown:!1,aborted:!1,failState:i}}return{node:r,error:null,thrown:!1,aborted:!1,failState:null}}catch(r){let i=this.state;if(this.state=e,r instanceof SyntaxError)return{node:null,error:r,thrown:!0,aborted:!1,failState:i};if(r===s)return{node:s.node,error:null,thrown:!1,aborted:!0,failState:i};throw r}}checkExpressionErrors(t,e){if(!t)return!1;let{shorthandAssignLoc:s,doubleProtoLoc:r,privateKeyLoc:i,optionalParametersLoc:a}=t,n=!!s||!!r||!!a||!!i;if(!e)return n;s!=null&&this.raise(u.InvalidCoverInitializedName,{at:s}),r!=null&&this.raise(u.DuplicateProto,{at:r}),i!=null&&this.raise(u.UnexpectedPrivateField,{at:i}),a!=null&&this.unexpected(a)}isLiteralPropertyName(){return hr(this.state.type)}isPrivateName(t){return t.type===\"PrivateName\"}getPrivateNameSV(t){return t.id.name}hasPropertyAsPrivateName(t){return(t.type===\"MemberExpression\"||t.type===\"OptionalMemberExpression\")&&this.isPrivateName(t.property)}isOptionalChain(t){return t.type===\"OptionalMemberExpression\"||t.type===\"OptionalCallExpression\"}isObjectProperty(t){return t.type===\"ObjectProperty\"}isObjectMethod(t){return t.type===\"ObjectMethod\"}initializeScopes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.sourceType===\"module\",e=this.state.labels;this.state.labels=[];let s=this.exportedIdentifiers;this.exportedIdentifiers=new Set;let r=this.inModule;this.inModule=t;let i=this.scope,a=this.getScopeHandler();this.scope=new a(this,t);let n=this.prodParam;this.prodParam=new Th;let o=this.classScope;this.classScope=new mh(this);let c=this.expressionScope;return this.expressionScope=new xh(this),()=>{this.state.labels=e,this.exportedIdentifiers=s,this.inModule=r,this.scope=i,this.prodParam=n,this.classScope=o,this.expressionScope=c}}enterInitialScopes(){let t=je;this.inModule&&(t|=xt),this.scope.enter(We),this.prodParam.enter(t)}checkDestructuringPrivate(t){let{privateKeyLoc:e}=t;e!==null&&this.expectPlugin(\"destructuringPrivate\",e)}},At=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},Pt=class{constructor(t,e,s){this.type=\"\",this.start=e,this.end=0,this.loc=new d(s),t!=null&&t.options.ranges&&(this.range=[e,0]),t!=null&&t.filename&&(this.loc.filename=t.filename)}},us=Pt.prototype;us.__clone=function(){let t=new Pt,e=Object.keys(this);for(let s=0,r=e.length;s1&&arguments[1]!==void 0?arguments[1]:this.state.lastTokEndLoc;t.end=e.index,t.loc.end=e,this.options.ranges&&(t.range[1]=e.index)}resetStartLocationFromNode(t,e){this.resetStartLocation(t,e.start,e.loc.start)}},Sh=new Set([\"_\",\"any\",\"bool\",\"boolean\",\"empty\",\"extends\",\"false\",\"interface\",\"mixed\",\"null\",\"number\",\"static\",\"string\",\"true\",\"typeof\",\"void\"]),I=j(zn||(zn=rt([\"flow\"])))(t=>({AmbiguousConditionalArrow:t(\"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\"),AmbiguousDeclareModuleKind:t(\"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.\"),AssignReservedType:t(e=>{let{reservedType:s}=e;return\"Cannot overwrite reserved type \".concat(s,\".\")}),DeclareClassElement:t(\"The `declare` modifier can only appear on class fields.\"),DeclareClassFieldInitializer:t(\"Initializers are not allowed in fields with the `declare` modifier.\"),DuplicateDeclareModuleExports:t(\"Duplicate `declare module.exports` statement.\"),EnumBooleanMemberNotInitialized:t(e=>{let{memberName:s,enumName:r}=e;return\"Boolean enum members need to be initialized. Use either `\".concat(s,\" = true,` or `\").concat(s,\" = false,` in enum `\").concat(r,\"`.\")}),EnumDuplicateMemberName:t(e=>{let{memberName:s,enumName:r}=e;return\"Enum member names need to be unique, but the name `\".concat(s,\"` has already been used before in enum `\").concat(r,\"`.\")}),EnumInconsistentMemberValues:t(e=>{let{enumName:s}=e;return\"Enum `\".concat(s,\"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\")}),EnumInvalidExplicitType:t(e=>{let{invalidEnumType:s,enumName:r}=e;return\"Enum type `\".concat(s,\"` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `\").concat(r,\"`.\")}),EnumInvalidExplicitTypeUnknownSupplied:t(e=>{let{enumName:s}=e;return\"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `\".concat(s,\"`.\")}),EnumInvalidMemberInitializerPrimaryType:t(e=>{let{enumName:s,memberName:r,explicitType:i}=e;return\"Enum `\".concat(s,\"` has type `\").concat(i,\"`, so the initializer of `\").concat(r,\"` needs to be a \").concat(i,\" literal.\")}),EnumInvalidMemberInitializerSymbolType:t(e=>{let{enumName:s,memberName:r}=e;return\"Symbol enum members cannot be initialized. Use `\".concat(r,\",` in enum `\").concat(s,\"`.\")}),EnumInvalidMemberInitializerUnknownType:t(e=>{let{enumName:s,memberName:r}=e;return\"The enum member initializer for `\".concat(r,\"` needs to be a literal (either a boolean, number, or string) in enum `\").concat(s,\"`.\")}),EnumInvalidMemberName:t(e=>{let{enumName:s,memberName:r,suggestion:i}=e;return\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `\".concat(r,\"`, consider using `\").concat(i,\"`, in enum `\").concat(s,\"`.\")}),EnumNumberMemberNotInitialized:t(e=>{let{enumName:s,memberName:r}=e;return\"Number enum members need to be initialized, e.g. `\".concat(r,\" = 1` in enum `\").concat(s,\"`.\")}),EnumStringMemberInconsistentlyInitailized:t(e=>{let{enumName:s}=e;return\"String enum members need to consistently either all use initializers, or use no initializers, in enum `\".concat(s,\"`.\")}),GetterMayNotHaveThisParam:t(\"A getter cannot have a `this` parameter.\"),ImportTypeShorthandOnlyInPureImport:t(\"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.\"),InexactInsideExact:t(\"Explicit inexact syntax cannot appear inside an explicit exact object type.\"),InexactInsideNonObject:t(\"Explicit inexact syntax cannot appear in class or interface definitions.\"),InexactVariance:t(\"Explicit inexact syntax cannot have variance.\"),InvalidNonTypeImportInDeclareModule:t(\"Imports within a `declare module` body must always be `import type` or `import typeof`.\"),MissingTypeParamDefault:t(\"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\"),NestedDeclareModule:t(\"`declare module` cannot be used inside another `declare module`.\"),NestedFlowComment:t(\"Cannot have a flow comment inside another flow comment.\"),PatternIsOptional:t(\"A binding pattern parameter cannot be optional in an implementation signature.\",{reasonCode:\"OptionalBindingPattern\"}),SetterMayNotHaveThisParam:t(\"A setter cannot have a `this` parameter.\"),SpreadVariance:t(\"Spread properties cannot have variance.\"),ThisParamAnnotationRequired:t(\"A type annotation is required for the `this` parameter.\"),ThisParamBannedInConstructor:t(\"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\"),ThisParamMayNotBeOptional:t(\"The `this` parameter cannot be optional.\"),ThisParamMustBeFirst:t(\"The `this` parameter must be the first function parameter.\"),ThisParamNoDefault:t(\"The `this` parameter may not have a default value.\"),TypeBeforeInitializer:t(\"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\"),TypeCastInPattern:t(\"The type cast expression is expected to be wrapped with parenthesis.\"),UnexpectedExplicitInexactInObject:t(\"Explicit inexact syntax must appear at the end of an inexact object.\"),UnexpectedReservedType:t(e=>{let{reservedType:s}=e;return\"Unexpected reserved type \".concat(s,\".\")}),UnexpectedReservedUnderscore:t(\"`_` is only allowed as a type argument to call or new.\"),UnexpectedSpaceBetweenModuloChecks:t(\"Spaces between `%` and `checks` are not allowed here.\"),UnexpectedSpreadType:t(\"Spread operator cannot appear in class or interface definitions.\"),UnexpectedSubtractionOperand:t('Unexpected token, expected \"number\" or \"bigint\".'),UnexpectedTokenAfterTypeParameter:t(\"Expected an arrow function after this type parameter declaration.\"),UnexpectedTypeParameterBeforeAsyncArrowFunction:t(\"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.\"),UnsupportedDeclareExportKind:t(e=>{let{unsupportedExportKind:s,suggestion:r}=e;return\"`declare export \".concat(s,\"` is not supported. Use `\").concat(r,\"` instead.\")}),UnsupportedStatementInDeclareModule:t(\"Only declares and type imports are allowed inside declare module.\"),UnterminatedFlowComment:t(\"Unterminated flow-comment.\")}));function wh(t){return t.type===\"DeclareExportAllDeclaration\"||t.type===\"DeclareExportDeclaration\"&&(!t.declaration||t.declaration.type!==\"TypeAlias\"&&t.declaration.type!==\"InterfaceDeclaration\")}function cs(t){return t.importKind===\"type\"||t.importKind===\"typeof\"}function Or(t){return pe(t)&&t!==97}var Nh={const:\"declare export var\",let:\"declare export var\",type:\"export type\",interface:\"export interface\"};function Ih(t,e){let s=[],r=[];for(let i=0;iclass extends t{constructor(){super(...arguments),this.flowPragma=void 0}getScopeHandler(){return fh}shouldParseTypes(){return this.getPluginOption(\"flow\",\"all\")||this.flowPragma===\"flow\"}shouldParseEnums(){return!!this.getPluginOption(\"flow\",\"enums\")}finishToken(e,s){return e!==129&&e!==13&&e!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(e,s)}addComment(e){if(this.flowPragma===void 0){let s=kh.exec(e.value);if(s)if(s[1]===\"flow\")this.flowPragma=\"flow\";else if(s[1]===\"noflow\")this.flowPragma=\"noflow\";else throw new Error(\"Unexpected flow pragma\")}return super.addComment(e)}flowParseTypeInitialiser(e){let s=this.state.inType;this.state.inType=!0,this.expect(e||14);let r=this.flowParseType();return this.state.inType=s,r}flowParsePredicate(){let e=this.startNode(),s=this.state.startLoc;return this.next(),this.expectContextual(107),this.state.lastTokStart>s.index+1&&this.raise(I.UnexpectedSpaceBetweenModuloChecks,{at:s}),this.eat(10)?(e.value=this.parseExpression(),this.expect(11),this.finishNode(e,\"DeclaredPredicate\")):this.finishNode(e,\"InferredPredicate\")}flowParseTypeAndPredicateInitialiser(){let e=this.state.inType;this.state.inType=!0,this.expect(14);let s=null,r=null;return this.match(54)?(this.state.inType=e,r=this.flowParsePredicate()):(s=this.flowParseType(),this.state.inType=e,this.match(54)&&(r=this.flowParsePredicate())),[s,r]}flowParseDeclareClass(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,\"DeclareClass\")}flowParseDeclareFunction(e){this.next();let s=e.id=this.parseIdentifier(),r=this.startNode(),i=this.startNode();this.match(47)?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(10);let a=this.flowParseFunctionTypeParams();return r.params=a.params,r.rest=a.rest,r.this=a._this,this.expect(11),[r.returnType,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),i.typeAnnotation=this.finishNode(r,\"FunctionTypeAnnotation\"),s.typeAnnotation=this.finishNode(i,\"TypeAnnotation\"),this.resetEndLocation(s),this.semicolon(),this.scope.declareName(e.id.name,$o,e.id.loc.start),this.finishNode(e,\"DeclareFunction\")}flowParseDeclare(e,s){if(this.match(80))return this.flowParseDeclareClass(e);if(this.match(68))return this.flowParseDeclareFunction(e);if(this.match(74))return this.flowParseDeclareVariable(e);if(this.eatContextual(123))return this.match(16)?this.flowParseDeclareModuleExports(e):(s&&this.raise(I.NestedDeclareModule,{at:this.state.lastTokStartLoc}),this.flowParseDeclareModule(e));if(this.isContextual(126))return this.flowParseDeclareTypeAlias(e);if(this.isContextual(127))return this.flowParseDeclareOpaqueType(e);if(this.isContextual(125))return this.flowParseDeclareInterface(e);if(this.match(82))return this.flowParseDeclareExportDeclaration(e,s);throw this.unexpected()}flowParseDeclareVariable(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(e.id.name,pt,e.id.loc.start),this.semicolon(),this.finishNode(e,\"DeclareVariable\")}flowParseDeclareModule(e){this.scope.enter(Me),this.match(129)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();let s=e.body=this.startNode(),r=s.body=[];for(this.expect(5);!this.match(8);){let n=this.startNode();this.match(83)?(this.next(),!this.isContextual(126)&&!this.match(87)&&this.raise(I.InvalidNonTypeImportInDeclareModule,{at:this.state.lastTokStartLoc}),this.parseImport(n)):(this.expectContextual(121,I.UnsupportedStatementInDeclareModule),n=this.flowParseDeclare(n,!0)),r.push(n)}this.scope.exit(),this.expect(8),this.finishNode(s,\"BlockStatement\");let i=null,a=!1;return r.forEach(n=>{wh(n)?(i===\"CommonJS\"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i=\"ES\"):n.type===\"DeclareModuleExports\"&&(a&&this.raise(I.DuplicateDeclareModuleExports,{at:n}),i===\"ES\"&&this.raise(I.AmbiguousDeclareModuleKind,{at:n}),i=\"CommonJS\",a=!0)}),e.kind=i||\"CommonJS\",this.finishNode(e,\"DeclareModule\")}flowParseDeclareExportDeclaration(e,s){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?e.declaration=this.flowParseDeclare(this.startNode()):(e.declaration=this.flowParseType(),this.semicolon()),e.default=!0,this.finishNode(e,\"DeclareExportDeclaration\");if(this.match(75)||this.isLet()||(this.isContextual(126)||this.isContextual(125))&&!s){let r=this.state.value;throw this.raise(I.UnsupportedDeclareExportKind,{at:this.state.startLoc,unsupportedExportKind:r,suggestion:Nh[r]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(127))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,\"DeclareExportDeclaration\");if(this.match(55)||this.match(5)||this.isContextual(125)||this.isContextual(126)||this.isContextual(127))return e=this.parseExport(e),e.type===\"ExportNamedDeclaration\"&&(e.type=\"ExportDeclaration\",e.default=!1,delete e.exportKind),e.type=\"Declare\"+e.type,e;throw this.unexpected()}flowParseDeclareModuleExports(e){return this.next(),this.expectContextual(108),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,\"DeclareModuleExports\")}flowParseDeclareTypeAlias(e){return this.next(),this.flowParseTypeAlias(e),e.type=\"DeclareTypeAlias\",e}flowParseDeclareOpaqueType(e){return this.next(),this.flowParseOpaqueType(e,!0),e.type=\"DeclareOpaqueType\",e}flowParseDeclareInterface(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,\"DeclareInterface\")}flowParseInterfaceish(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.flowParseRestrictedIdentifier(!s,!0),this.scope.declareName(e.id.name,s?Tr:xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.implements=[],e.mixins=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(!s&&this.eat(12));if(this.isContextual(114)){this.next();do e.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12))}if(this.isContextual(110)){this.next();do e.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}e.body=this.flowParseObjectType({allowStatic:s,allowExact:!1,allowSpread:!1,allowProto:s,allowInexact:!1})}flowParseInterfaceExtends(){let e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,\"InterfaceExtends\")}flowParseInterface(e){return this.flowParseInterfaceish(e),this.finishNode(e,\"InterfaceDeclaration\")}checkNotUnderscore(e){e===\"_\"&&this.raise(I.UnexpectedReservedUnderscore,{at:this.state.startLoc})}checkReservedType(e,s,r){!Sh.has(e)||this.raise(r?I.AssignReservedType:I.UnexpectedReservedType,{at:s,reservedType:e})}flowParseRestrictedIdentifier(e,s){return this.checkReservedType(this.state.value,this.state.startLoc,s),this.parseIdentifier(e)}flowParseTypeAlias(e){return e.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(e.id.name,xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(e,\"TypeAlias\")}flowParseOpaqueType(e,s){return this.expectContextual(126),e.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(e.id.name,xe,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(14)&&(e.supertype=this.flowParseTypeInitialiser(14)),e.impltype=null,s||(e.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(e,\"OpaqueType\")}flowParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,s=this.state.startLoc,r=this.startNode(),i=this.flowParseVariance(),a=this.flowParseTypeAnnotatableIdentifier();return r.name=a.name,r.variance=i,r.bound=a.typeAnnotation,this.match(29)?(this.eat(29),r.default=this.flowParseType()):e&&this.raise(I.MissingTypeParamDefault,{at:s}),this.finishNode(r,\"TypeParameter\")}flowParseTypeParameterDeclaration(){let e=this.state.inType,s=this.startNode();s.params=[],this.state.inType=!0,this.match(47)||this.match(138)?this.next():this.unexpected();let r=!1;do{let i=this.flowParseTypeParameter(r);s.params.push(i),i.default&&(r=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=e,this.finishNode(s,\"TypeParameterDeclaration\")}flowParseTypeParameterInstantiation(){let e=this.startNode(),s=this.state.inType;e.params=[],this.state.inType=!0,this.expect(47);let r=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)e.params.push(this.flowParseType()),this.match(48)||this.expect(12);return this.state.noAnonFunctionType=r,this.expect(48),this.state.inType=s,this.finishNode(e,\"TypeParameterInstantiation\")}flowParseTypeParameterInstantiationCallOrNew(){let e=this.startNode(),s=this.state.inType;for(e.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)e.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=s,this.finishNode(e,\"TypeParameterInstantiation\")}flowParseInterfaceType(){let e=this.startNode();if(this.expectContextual(125),e.extends=[],this.eat(81))do e.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return e.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(e,\"InterfaceTypeAnnotation\")}flowParseObjectPropertyKey(){return this.match(130)||this.match(129)?this.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(e,s,r){return e.static=s,this.lookahead().type===14?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(3),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.finishNode(e,\"ObjectTypeIndexer\")}flowParseObjectTypeInternalSlot(e,s){return e.static=s,e.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(e.method=!0,e.optional=!1,e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start))):(e.method=!1,this.eat(17)&&(e.optional=!0),e.value=this.flowParseTypeInitialiser()),this.finishNode(e,\"ObjectTypeInternalSlot\")}flowParseObjectTypeMethodish(e){for(e.params=[],e.rest=null,e.typeParameters=null,e.this=null,this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(e.this=this.flowParseFunctionTypeParam(!0),e.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(e.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,\"FunctionTypeAnnotation\")}flowParseObjectTypeCallProperty(e,s){let r=this.startNode();return e.static=s,e.value=this.flowParseObjectTypeMethodish(r),this.finishNode(e,\"ObjectTypeCallProperty\")}flowParseObjectType(e){let{allowStatic:s,allowExact:r,allowSpread:i,allowProto:a,allowInexact:n}=e,o=this.state.inType;this.state.inType=!0;let c=this.startNode();c.callProperties=[],c.properties=[],c.indexers=[],c.internalSlots=[];let f,y,P=!1;for(r&&this.match(6)?(this.expect(6),f=9,y=!0):(this.expect(5),f=8,y=!1),c.exact=y;!this.match(f);){let N=!1,B=null,_=null,Q=this.startNode();if(a&&this.isContextual(115)){let ne=this.lookahead();ne.type!==14&&ne.type!==17&&(this.next(),B=this.state.startLoc,s=!1)}if(s&&this.isContextual(104)){let ne=this.lookahead();ne.type!==14&&ne.type!==17&&(this.next(),N=!0)}let re=this.flowParseVariance();if(this.eat(0))B!=null&&this.unexpected(B),this.eat(0)?(re&&this.unexpected(re.loc.start),c.internalSlots.push(this.flowParseObjectTypeInternalSlot(Q,N))):c.indexers.push(this.flowParseObjectTypeIndexer(Q,N,re));else if(this.match(10)||this.match(47))B!=null&&this.unexpected(B),re&&this.unexpected(re.loc.start),c.callProperties.push(this.flowParseObjectTypeCallProperty(Q,N));else{let ne=\"init\";if(this.isContextual(98)||this.isContextual(103)){let le=this.lookahead();hr(le.type)&&(ne=this.state.value,this.next())}let $e=this.flowParseObjectTypeProperty(Q,N,B,re,ne,i,n!=null?n:!y);$e===null?(P=!0,_=this.state.lastTokStartLoc):c.properties.push($e)}this.flowObjectTypeSemicolon(),_&&!this.match(8)&&!this.match(9)&&this.raise(I.UnexpectedExplicitInexactInObject,{at:_})}this.expect(f),i&&(c.inexact=P);let v=this.finishNode(c,\"ObjectTypeAnnotation\");return this.state.inType=o,v}flowParseObjectTypeProperty(e,s,r,i,a,n,o){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(n?o||this.raise(I.InexactInsideExact,{at:this.state.lastTokStartLoc}):this.raise(I.InexactInsideNonObject,{at:this.state.lastTokStartLoc}),i&&this.raise(I.InexactVariance,{at:i}),null):(n||this.raise(I.UnexpectedSpreadType,{at:this.state.lastTokStartLoc}),r!=null&&this.unexpected(r),i&&this.raise(I.SpreadVariance,{at:i}),e.argument=this.flowParseType(),this.finishNode(e,\"ObjectTypeSpreadProperty\"));{e.key=this.flowParseObjectPropertyKey(),e.static=s,e.proto=r!=null,e.kind=a;let c=!1;return this.match(47)||this.match(10)?(e.method=!0,r!=null&&this.unexpected(r),i&&this.unexpected(i.loc.start),e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start)),(a===\"get\"||a===\"set\")&&this.flowCheckGetterSetterParams(e),!n&&e.key.name===\"constructor\"&&e.value.this&&this.raise(I.ThisParamBannedInConstructor,{at:e.value.this})):(a!==\"init\"&&this.unexpected(),e.method=!1,this.eat(17)&&(c=!0),e.value=this.flowParseTypeInitialiser(),e.variance=i),e.optional=c,this.finishNode(e,\"ObjectTypeProperty\")}}flowCheckGetterSetterParams(e){let s=e.kind===\"get\"?0:1,r=e.value.params.length+(e.value.rest?1:0);e.value.this&&this.raise(e.kind===\"get\"?I.GetterMayNotHaveThisParam:I.SetterMayNotHaveThisParam,{at:e.value.this}),r!==s&&this.raise(e.kind===\"get\"?u.BadGetterArity:u.BadSetterArity,{at:e}),e.kind===\"set\"&&e.value.rest&&this.raise(u.BadSetterRestParameter,{at:e})}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(e,s,r){e=e||this.state.start,s=s||this.state.startLoc;let i=r||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){let a=this.startNodeAt(e,s);a.qualification=i,a.id=this.flowParseRestrictedIdentifier(!0),i=this.finishNode(a,\"QualifiedTypeIdentifier\")}return i}flowParseGenericType(e,s,r){let i=this.startNodeAt(e,s);return i.typeParameters=null,i.id=this.flowParseQualifiedTypeIdentifier(e,s,r),this.match(47)&&(i.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(i,\"GenericTypeAnnotation\")}flowParseTypeofType(){let e=this.startNode();return this.expect(87),e.argument=this.flowParsePrimaryType(),this.finishNode(e,\"TypeofTypeAnnotation\")}flowParseTupleType(){let e=this.startNode();for(e.types=[],this.expect(0);this.state.pos0&&arguments[0]!==void 0?arguments[0]:[],s=null,r=null;for(this.match(78)&&(r=this.flowParseFunctionTypeParam(!0),r.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(s=this.flowParseFunctionTypeParam(!1)),{params:e,rest:s,_this:r}}flowIdentToTypeAnnotation(e,s,r,i){switch(i.name){case\"any\":return this.finishNode(r,\"AnyTypeAnnotation\");case\"bool\":case\"boolean\":return this.finishNode(r,\"BooleanTypeAnnotation\");case\"mixed\":return this.finishNode(r,\"MixedTypeAnnotation\");case\"empty\":return this.finishNode(r,\"EmptyTypeAnnotation\");case\"number\":return this.finishNode(r,\"NumberTypeAnnotation\");case\"string\":return this.finishNode(r,\"StringTypeAnnotation\");case\"symbol\":return this.finishNode(r,\"SymbolTypeAnnotation\");default:return this.checkNotUnderscore(i.name),this.flowParseGenericType(e,s,i)}}flowParsePrimaryType(){let e=this.state.start,s=this.state.startLoc,r=this.startNode(),i,a,n=!1,o=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,a=this.flowParseTupleType(),this.state.noAnonFunctionType=o,a;case 47:return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),this.finishNode(r,\"FunctionTypeAnnotation\");case 10:if(this.next(),!this.match(11)&&!this.match(21))if(K(this.state.type)||this.match(78)){let c=this.lookahead().type;n=c!==17&&c!==14}else n=!0;if(n){if(this.state.noAnonFunctionType=!1,a=this.flowParseType(),this.state.noAnonFunctionType=o,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&this.lookahead().type===19))return this.expect(11),a;this.eat(12)}return a?i=this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(a)]):i=this.flowParseFunctionTypeParams(),r.params=i.params,r.rest=i.rest,r.this=i._this,this.expect(11),this.expect(19),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,\"FunctionTypeAnnotation\");case 129:return this.parseLiteral(this.state.value,\"StringLiteralTypeAnnotation\");case 85:case 86:return r.value=this.match(85),this.next(),this.finishNode(r,\"BooleanLiteralTypeAnnotation\");case 53:if(this.state.value===\"-\"){if(this.next(),this.match(130))return this.parseLiteralAtNode(-this.state.value,\"NumberLiteralTypeAnnotation\",r);if(this.match(131))return this.parseLiteralAtNode(-this.state.value,\"BigIntLiteralTypeAnnotation\",r);throw this.raise(I.UnexpectedSubtractionOperand,{at:this.state.startLoc})}throw this.unexpected();case 130:return this.parseLiteral(this.state.value,\"NumberLiteralTypeAnnotation\");case 131:return this.parseLiteral(this.state.value,\"BigIntLiteralTypeAnnotation\");case 88:return this.next(),this.finishNode(r,\"VoidTypeAnnotation\");case 84:return this.next(),this.finishNode(r,\"NullLiteralTypeAnnotation\");case 78:return this.next(),this.finishNode(r,\"ThisTypeAnnotation\");case 55:return this.next(),this.finishNode(r,\"ExistsTypeAnnotation\");case 87:return this.flowParseTypeofType();default:if(Ht(this.state.type)){let c=Pe(this.state.type);return this.next(),super.createIdentifier(r,c)}else if(K(this.state.type))return this.isContextual(125)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(e,s,r,this.parseIdentifier())}throw this.unexpected()}flowParsePostfixType(){let e=this.state.start,s=this.state.startLoc,r=this.flowParsePrimaryType(),i=!1;for(;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){let a=this.startNodeAt(e,s),n=this.eat(18);i=i||n,this.expect(0),!n&&this.match(3)?(a.elementType=r,this.next(),r=this.finishNode(a,\"ArrayTypeAnnotation\")):(a.objectType=r,a.indexType=this.flowParseType(),this.expect(3),i?(a.optional=n,r=this.finishNode(a,\"OptionalIndexedAccessType\")):r=this.finishNode(a,\"IndexedAccessType\"))}return r}flowParsePrefixType(){let e=this.startNode();return this.eat(17)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,\"NullableTypeAnnotation\")):this.flowParsePostfixType()}flowParseAnonFunctionWithoutParens(){let e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){let s=this.startNodeAt(e.start,e.loc.start);return s.params=[this.reinterpretTypeAsFunctionTypeParam(e)],s.rest=null,s.this=null,s.returnType=this.flowParseType(),s.typeParameters=null,this.finishNode(s,\"FunctionTypeAnnotation\")}return e}flowParseIntersectionType(){let e=this.startNode();this.eat(45);let s=this.flowParseAnonFunctionWithoutParens();for(e.types=[s];this.eat(45);)e.types.push(this.flowParseAnonFunctionWithoutParens());return e.types.length===1?s:this.finishNode(e,\"IntersectionTypeAnnotation\")}flowParseUnionType(){let e=this.startNode();this.eat(43);let s=this.flowParseIntersectionType();for(e.types=[s];this.eat(43);)e.types.push(this.flowParseIntersectionType());return e.types.length===1?s:this.finishNode(e,\"UnionTypeAnnotation\")}flowParseType(){let e=this.state.inType;this.state.inType=!0;let s=this.flowParseUnionType();return this.state.inType=e,s}flowParseTypeOrImplicitInstantiation(){if(this.state.type===128&&this.state.value===\"_\"){let e=this.state.start,s=this.state.startLoc,r=this.parseIdentifier();return this.flowParseGenericType(e,s,r)}else return this.flowParseType()}flowParseTypeAnnotation(){let e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,\"TypeAnnotation\")}flowParseTypeAnnotatableIdentifier(e){let s=e?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(s.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(s)),s}typeCastToParameter(e){return e.expression.typeAnnotation=e.typeAnnotation,this.resetEndLocation(e.expression,e.typeAnnotation.loc.end),e.expression}flowParseVariance(){let e=null;return this.match(53)&&(e=this.startNode(),this.state.value===\"+\"?e.kind=\"plus\":e.kind=\"minus\",this.next(),this.finishNode(e,\"Variance\")),e}parseFunctionBody(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return s?this.forwardNoArrowParamsConversionAt(e,()=>super.parseFunctionBody(e,!0,r)):super.parseFunctionBody(e,!1,r)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(this.match(14)){let i=this.startNode();[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),e.returnType=i.typeAnnotation?this.finishNode(i,\"TypeAnnotation\"):null}super.parseFunctionBodyAndFinish(e,s,r)}parseStatement(e,s){if(this.state.strict&&this.isContextual(125)){let i=this.lookahead();if(pe(i.type)){let a=this.startNode();return this.next(),this.flowParseInterface(a)}}else if(this.shouldParseEnums()&&this.isContextual(122)){let i=this.startNode();return this.next(),this.flowParseEnumDeclaration(i)}let r=super.parseStatement(e,s);return this.flowPragma===void 0&&!this.isValidDirective(r)&&(this.flowPragma=null),r}parseExpressionStatement(e,s){if(s.type===\"Identifier\"){if(s.name===\"declare\"){if(this.match(80)||K(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(e)}else if(K(this.state.type)){if(s.name===\"interface\")return this.flowParseInterface(e);if(s.name===\"type\")return this.flowParseTypeAlias(e);if(s.name===\"opaque\")return this.flowParseOpaqueType(e,!1)}}return super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){let{type:e}=this.state;return lr(e)||this.shouldParseEnums()&&e===122?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){let{type:e}=this.state;return lr(e)||this.shouldParseEnums()&&e===122?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual(122)){let e=this.startNode();return this.next(),this.flowParseEnumDeclaration(e)}return super.parseExportDefaultExpression()}parseConditional(e,s,r,i){if(!this.match(17))return e;if(this.state.maybeInArrowParameters){let v=this.lookaheadCharCode();if(v===44||v===61||v===58||v===41)return this.setOptionalParametersError(i),e}this.expect(17);let a=this.state.clone(),n=this.state.noArrowAt,o=this.startNodeAt(s,r),{consequent:c,failed:f}=this.tryParseConditionalConsequent(),[y,P]=this.getArrowLikeExpressions(c);if(f||P.length>0){let v=[...n];if(P.length>0){this.state=a,this.state.noArrowAt=v;for(let N=0;N1&&this.raise(I.AmbiguousConditionalArrow,{at:a.startLoc}),f&&y.length===1&&(this.state=a,v.push(y[0].start),this.state.noArrowAt=v,{consequent:c,failed:f}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(c,!0),this.state.noArrowAt=n,this.expect(14),o.test=e,o.consequent=c,o.alternate=this.forwardNoArrowParamsConversionAt(o,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(o,\"ConditionalExpression\")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);let e=this.parseMaybeAssignAllowIn(),s=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:e,failed:s}}getArrowLikeExpressions(e,s){let r=[e],i=[];for(;r.length!==0;){let a=r.pop();a.type===\"ArrowFunctionExpression\"?(a.typeParameters||!a.returnType?this.finishArrowValidation(a):i.push(a),r.push(a.body)):a.type===\"ConditionalExpression\"&&(r.push(a.consequent),r.push(a.alternate))}return s?(i.forEach(a=>this.finishArrowValidation(a)),[i,[]]):Ih(i,a=>a.params.every(n=>this.isAssignable(n,!0)))}finishArrowValidation(e){var s;this.toAssignableList(e.params,(s=e.extra)==null?void 0:s.trailingCommaLoc,!1),this.scope.enter(me|Jt),super.checkParams(e,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(e,s){let r;return this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?(this.state.noArrowParamsConversionAt.push(this.state.start),r=s(),this.state.noArrowParamsConversionAt.pop()):r=s(),r}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,\"TypeCastExpression\")}return e}assertModuleNodeAllowed(e){e.type===\"ImportDeclaration\"&&(e.importKind===\"type\"||e.importKind===\"typeof\")||e.type===\"ExportNamedDeclaration\"&&e.exportKind===\"type\"||e.type===\"ExportAllDeclaration\"&&e.exportKind===\"type\"||super.assertModuleNodeAllowed(e)}parseExport(e){let s=super.parseExport(e);return(s.type===\"ExportNamedDeclaration\"||s.type===\"ExportAllDeclaration\")&&(s.exportKind=s.exportKind||\"value\"),s}parseExportDeclaration(e){if(this.isContextual(126)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.match(5)?(e.specifiers=this.parseExportSpecifiers(!0),this.parseExportFrom(e),null):this.flowParseTypeAlias(s)}else if(this.isContextual(127)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.flowParseOpaqueType(s,!1)}else if(this.isContextual(125)){e.exportKind=\"type\";let s=this.startNode();return this.next(),this.flowParseInterface(s)}else if(this.shouldParseEnums()&&this.isContextual(122)){e.exportKind=\"value\";let s=this.startNode();return this.next(),this.flowParseEnumDeclaration(s)}else return super.parseExportDeclaration(e)}eatExportStar(e){return super.eatExportStar(...arguments)?!0:this.isContextual(126)&&this.lookahead().type===55?(e.exportKind=\"type\",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(e){let{startLoc:s}=this.state,r=super.maybeParseExportNamespaceSpecifier(e);return r&&e.exportKind===\"type\"&&this.unexpected(s),r}parseClassId(e,s,r){super.parseClassId(e,s,r),this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(e,s,r){let{startLoc:i}=this.state;if(this.isContextual(121)){if(this.parseClassMemberFromModifier(e,s))return;s.declare=!0}super.parseClassMember(e,s,r),s.declare&&(s.type!==\"ClassProperty\"&&s.type!==\"ClassPrivateProperty\"&&s.type!==\"PropertyDefinition\"?this.raise(I.DeclareClassElement,{at:i}):s.value&&this.raise(I.DeclareClassFieldInitializer,{at:s.value}))}isIterator(e){return e===\"iterator\"||e===\"asyncIterator\"}readIterator(){let e=super.readWord1(),s=\"@@\"+e;(!this.isIterator(e)||!this.state.inType)&&this.raise(u.InvalidIdentifier,{at:this.state.curPosition(),identifierName:s}),this.finishToken(128,s)}getTokenFromCode(e){let s=this.input.charCodeAt(this.state.pos+1);return e===123&&s===124?this.finishOp(6,2):this.state.inType&&(e===62||e===60)?this.finishOp(e===62?48:47,1):this.state.inType&&e===63?s===46?this.finishOp(18,2):this.finishOp(17,1):Ko(e,s,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(e)}isAssignable(e,s){return e.type===\"TypeCastExpression\"?this.isAssignable(e.expression,s):super.isAssignable(e,s)}toAssignable(e){!(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)&&e.type===\"AssignmentExpression\"&&e.left.type===\"TypeCastExpression\"&&(e.left=this.typeCastToParameter(e.left)),super.toAssignable(...arguments)}toAssignableList(e,s,r){for(let i=0;i1||!s)&&this.raise(I.TypeCastInPattern,{at:a.typeAnnotation})}return e}parseArrayLike(e,s,r,i){let a=super.parseArrayLike(e,s,r,i);return s&&!this.state.maybeInArrowParameters&&this.toReferencedList(a.elements),a}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}else if(s.type===\"MethodDefinition\"&&a&&s.value.params){let o=s.value.params;o.length>0&&this.isThisParam(o[0])&&this.raise(I.ThisParamBannedInConstructor,{at:s})}}pushClassPrivateMethod(e,s,r,i){s.variance&&this.unexpected(s.variance.loc.start),delete s.variance,this.match(47)&&(s.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(e,s,r,i)}parseClassSuper(e){if(super.parseClassSuper(e),e.superClass&&this.match(47)&&(e.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual(110)){this.next();let s=e.implements=[];do{let r=this.startNode();r.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?r.typeParameters=this.flowParseTypeParameterInstantiation():r.typeParameters=null,s.push(this.finishNode(r,\"ClassImplements\"))}while(this.eat(12))}}checkGetterSetterParams(e){super.checkGetterSetterParams(e);let s=this.getObjectOrClassMethodParams(e);if(s.length>0){let r=s[0];this.isThisParam(r)&&e.kind===\"get\"?this.raise(I.GetterMayNotHaveThisParam,{at:r}):this.isThisParam(r)&&this.raise(I.SetterMayNotHaveThisParam,{at:r})}}parsePropertyNamePrefixOperator(e){e.variance=this.flowParseVariance()}parseObjPropValue(e,s,r,i,a,n,o,c){e.variance&&this.unexpected(e.variance.loc.start),delete e.variance;let f;this.match(47)&&!o&&(f=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected()),super.parseObjPropValue(e,s,r,i,a,n,o,c),f&&((e.value||e).typeParameters=f)}parseAssignableListItemTypes(e){return this.eat(17)&&(e.type!==\"Identifier\"&&this.raise(I.PatternIsOptional,{at:e}),this.isThisParam(e)&&this.raise(I.ThisParamMayNotBeOptional,{at:e}),e.optional=!0),this.match(14)?e.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(e)&&this.raise(I.ThisParamAnnotationRequired,{at:e}),this.match(29)&&this.isThisParam(e)&&this.raise(I.ThisParamNoDefault,{at:e}),this.resetEndLocation(e),e}parseMaybeDefault(e,s,r){let i=super.parseMaybeDefault(e,s,r);return i.type===\"AssignmentPattern\"&&i.typeAnnotation&&i.right.startsuper.parseMaybeAssign(e,s),i),!a.error)return a.node;let{context:c}=this.state,f=c[c.length-1];(f===z.j_oTag||f===z.j_expr)&&c.pop()}if((r=a)!=null&&r.error||this.match(47)){var n,o;i=i||this.state.clone();let c,f=this.tryParse(P=>{var v;c=this.flowParseTypeParameterDeclaration();let N=this.forwardNoArrowParamsConversionAt(c,()=>{let _=super.parseMaybeAssign(e,s);return this.resetStartLocationFromNode(_,c),_});(v=N.extra)!=null&&v.parenthesized&&P();let B=this.maybeUnwrapTypeCastExpression(N);return B.type!==\"ArrowFunctionExpression\"&&P(),B.typeParameters=c,this.resetStartLocationFromNode(B,c),N},i),y=null;if(f.node&&this.maybeUnwrapTypeCastExpression(f.node).type===\"ArrowFunctionExpression\"){if(!f.error&&!f.aborted)return f.node.async&&this.raise(I.UnexpectedTypeParameterBeforeAsyncArrowFunction,{at:c}),f.node;y=f.node}if((n=a)!=null&&n.node)return this.state=a.failState,a.node;if(y)return this.state=f.failState,y;throw(o=a)!=null&&o.thrown?a.error:f.thrown?f.error:this.raise(I.UnexpectedTokenAfterTypeParameter,{at:c})}return super.parseMaybeAssign(e,s)}parseArrow(e){if(this.match(14)){let s=this.tryParse(()=>{let r=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;let i=this.startNode();return[i.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=r,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),i});if(s.thrown)return null;s.error&&(this.state=s.failState),e.returnType=s.node.typeAnnotation?this.finishNode(s.node,\"TypeAnnotation\"):null}return super.parseArrow(e)}shouldParseArrow(e){return this.match(14)||super.shouldParseArrow(e)}setArrowFunctionParameters(e,s){this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1?e.params=s:super.setArrowFunctionParameters(e,s)}checkParams(e,s,r){if(!(r&&this.state.noArrowParamsConversionAt.indexOf(e.start)!==-1)){for(let i=0;i0&&this.raise(I.ThisParamMustBeFirst,{at:e.params[i]});return super.checkParams(...arguments)}}parseParenAndDistinguishExpression(e){return super.parseParenAndDistinguishExpression(e&&this.state.noArrowAt.indexOf(this.state.start)===-1)}parseSubscripts(e,s,r,i){if(e.type===\"Identifier\"&&e.name===\"async\"&&this.state.noArrowAt.indexOf(s)!==-1){this.next();let a=this.startNodeAt(s,r);a.callee=e,a.arguments=this.parseCallExpressionArguments(11,!1),e=this.finishNode(a,\"CallExpression\")}else if(e.type===\"Identifier\"&&e.name===\"async\"&&this.match(47)){let a=this.state.clone(),n=this.tryParse(c=>this.parseAsyncArrowWithTypeParameters(s,r)||c(),a);if(!n.error&&!n.aborted)return n.node;let o=this.tryParse(()=>super.parseSubscripts(e,s,r,i),a);if(o.node&&!o.error)return o.node;if(n.node)return this.state=n.failState,n.node;if(o.node)return this.state=o.failState,o.node;throw n.error||o.error}return super.parseSubscripts(e,s,r,i)}parseSubscript(e,s,r,i,a){if(this.match(18)&&this.isLookaheadToken_lt()){if(a.optionalChainMember=!0,i)return a.stop=!0,e;this.next();let n=this.startNodeAt(s,r);return n.callee=e,n.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),n.optional=!0,this.finishCallExpression(n,!0)}else if(!i&&this.shouldParseTypes()&&this.match(47)){let n=this.startNodeAt(s,r);n.callee=e;let o=this.tryParse(()=>(n.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),n.arguments=this.parseCallExpressionArguments(11,!1),a.optionalChainMember&&(n.optional=!1),this.finishCallExpression(n,a.optionalChainMember)));if(o.node)return o.error&&(this.state=o.failState),o.node}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){super.parseNewCallee(e);let s=null;this.shouldParseTypes()&&this.match(47)&&(s=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),e.typeArguments=s}parseAsyncArrowWithTypeParameters(e,s){let r=this.startNodeAt(e,s);if(this.parseFunctionParams(r),!!this.parseArrow(r))return this.parseArrowExpression(r,void 0,!0)}readToken_mult_modulo(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===42&&s===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(e)}readToken_pipe_amp(e){let s=this.input.charCodeAt(this.state.pos+1);if(e===124&&s===125){this.finishOp(9,2);return}super.readToken_pipe_amp(e)}parseTopLevel(e,s){let r=super.parseTopLevel(e,s);return this.state.hasFlowComment&&this.raise(I.UnterminatedFlowComment,{at:this.state.curPosition()}),r}skipBlockComment(){if(this.hasPlugin(\"flowComments\")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(I.NestedFlowComment,{at:this.state.startLoc});this.hasFlowCommentCompletion(),this.state.pos+=this.skipFlowComment(),this.state.hasFlowComment=!0;return}if(this.state.hasFlowComment){let e=this.input.indexOf(\"*-/\",this.state.pos+2);if(e===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()});this.state.pos=e+2+3;return}return super.skipBlockComment()}skipFlowComment(){let{pos:e}=this.state,s=2;for(;[32,9].includes(this.input.charCodeAt(e+s));)s++;let r=this.input.charCodeAt(s+e),i=this.input.charCodeAt(s+e+1);return r===58&&i===58?s+2:this.input.slice(s+e,s+e+12)===\"flow-include\"?s+12:r===58&&i!==58?s:!1}hasFlowCommentCompletion(){if(this.input.indexOf(\"*/\",this.state.pos)===-1)throw this.raise(u.UnterminatedComment,{at:this.state.curPosition()})}flowEnumErrorBooleanMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumBooleanMemberNotInitialized,{at:e,memberName:i,enumName:r})}flowEnumErrorInvalidMemberInitializer(e,s){return this.raise(s.explicitType?s.explicitType===\"symbol\"?I.EnumInvalidMemberInitializerSymbolType:I.EnumInvalidMemberInitializerPrimaryType:I.EnumInvalidMemberInitializerUnknownType,Object.assign({at:e},s))}flowEnumErrorNumberMemberNotInitialized(e,s){let{enumName:r,memberName:i}=s;this.raise(I.EnumNumberMemberNotInitialized,{at:e,enumName:r,memberName:i})}flowEnumErrorStringMemberInconsistentlyInitailized(e,s){let{enumName:r}=s;this.raise(I.EnumStringMemberInconsistentlyInitailized,{at:e,enumName:r})}flowEnumMemberInit(){let e=this.state.startLoc,s=()=>this.match(12)||this.match(8);switch(this.state.type){case 130:{let r=this.parseNumericLiteral(this.state.value);return s()?{type:\"number\",loc:r.loc.start,value:r}:{type:\"invalid\",loc:e}}case 129:{let r=this.parseStringLiteral(this.state.value);return s()?{type:\"string\",loc:r.loc.start,value:r}:{type:\"invalid\",loc:e}}case 85:case 86:{let r=this.parseBooleanLiteral(this.match(85));return s()?{type:\"boolean\",loc:r.loc.start,value:r}:{type:\"invalid\",loc:e}}default:return{type:\"invalid\",loc:e}}}flowEnumMemberRaw(){let e=this.state.startLoc,s=this.parseIdentifier(!0),r=this.eat(29)?this.flowEnumMemberInit():{type:\"none\",loc:e};return{id:s,init:r}}flowEnumCheckExplicitTypeMismatch(e,s,r){let{explicitType:i}=s;i!==null&&i!==r&&this.flowEnumErrorInvalidMemberInitializer(e,s)}flowEnumMembers(e){let{enumName:s,explicitType:r}=e,i=new Set,a={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},n=!1;for(;!this.match(8);){if(this.eat(21)){n=!0;break}let o=this.startNode(),{id:c,init:f}=this.flowEnumMemberRaw(),y=c.name;if(y===\"\")continue;/^[a-z]/.test(y)&&this.raise(I.EnumInvalidMemberName,{at:c,memberName:y,suggestion:y[0].toUpperCase()+y.slice(1),enumName:s}),i.has(y)&&this.raise(I.EnumDuplicateMemberName,{at:c,memberName:y,enumName:s}),i.add(y);let P={enumName:s,explicitType:r,memberName:y};switch(o.id=c,f.type){case\"boolean\":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,\"boolean\"),o.init=f.value,a.booleanMembers.push(this.finishNode(o,\"EnumBooleanMember\"));break}case\"number\":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,\"number\"),o.init=f.value,a.numberMembers.push(this.finishNode(o,\"EnumNumberMember\"));break}case\"string\":{this.flowEnumCheckExplicitTypeMismatch(f.loc,P,\"string\"),o.init=f.value,a.stringMembers.push(this.finishNode(o,\"EnumStringMember\"));break}case\"invalid\":throw this.flowEnumErrorInvalidMemberInitializer(f.loc,P);case\"none\":switch(r){case\"boolean\":this.flowEnumErrorBooleanMemberNotInitialized(f.loc,P);break;case\"number\":this.flowEnumErrorNumberMemberNotInitialized(f.loc,P);break;default:a.defaultedMembers.push(this.finishNode(o,\"EnumDefaultedMember\"))}}this.match(8)||this.expect(12)}return{members:a,hasUnknownMembers:n}}flowEnumStringMembers(e,s,r){let{enumName:i}=r;if(e.length===0)return s;if(s.length===0)return e;if(s.length>e.length){for(let a of e)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return s}else{for(let a of s)this.flowEnumErrorStringMemberInconsistentlyInitailized(a,{enumName:i});return e}}flowEnumParseExplicitType(e){let{enumName:s}=e;if(!this.eatContextual(101))return null;if(!K(this.state.type))throw this.raise(I.EnumInvalidExplicitTypeUnknownSupplied,{at:this.state.startLoc,enumName:s});let{value:r}=this.state;return this.next(),r!==\"boolean\"&&r!==\"number\"&&r!==\"string\"&&r!==\"symbol\"&&this.raise(I.EnumInvalidExplicitType,{at:this.state.startLoc,enumName:s,invalidEnumType:r}),r}flowEnumBody(e,s){let r=s.name,i=s.loc.start,a=this.flowEnumParseExplicitType({enumName:r});this.expect(5);let{members:n,hasUnknownMembers:o}=this.flowEnumMembers({enumName:r,explicitType:a});switch(e.hasUnknownMembers=o,a){case\"boolean\":return e.explicitType=!0,e.members=n.booleanMembers,this.expect(8),this.finishNode(e,\"EnumBooleanBody\");case\"number\":return e.explicitType=!0,e.members=n.numberMembers,this.expect(8),this.finishNode(e,\"EnumNumberBody\");case\"string\":return e.explicitType=!0,e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,\"EnumStringBody\");case\"symbol\":return e.members=n.defaultedMembers,this.expect(8),this.finishNode(e,\"EnumSymbolBody\");default:{let c=()=>(e.members=[],this.expect(8),this.finishNode(e,\"EnumStringBody\"));e.explicitType=!1;let f=n.booleanMembers.length,y=n.numberMembers.length,P=n.stringMembers.length,v=n.defaultedMembers.length;if(!f&&!y&&!P&&!v)return c();if(!f&&!y)return e.members=this.flowEnumStringMembers(n.stringMembers,n.defaultedMembers,{enumName:r}),this.expect(8),this.finishNode(e,\"EnumStringBody\");if(!y&&!P&&f>=v){for(let N of n.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.booleanMembers,this.expect(8),this.finishNode(e,\"EnumBooleanBody\")}else if(!f&&!P&&y>=v){for(let N of n.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(N.loc.start,{enumName:r,memberName:N.id.name});return e.members=n.numberMembers,this.expect(8),this.finishNode(e,\"EnumNumberBody\")}else return this.raise(I.EnumInconsistentMemberValues,{at:i,enumName:r}),c()}}}flowParseEnumDeclaration(e){let s=this.parseIdentifier();return e.id=s,e.body=this.flowEnumBody(this.startNode(),s),this.finishNode(e,\"EnumDeclaration\")}isLookaheadToken_lt(){let e=this.nextTokenStart();if(this.input.charCodeAt(e)===60){let s=this.input.charCodeAt(e+1);return s!==60&&s!==61}return!1}maybeUnwrapTypeCastExpression(e){return e.type===\"TypeCastExpression\"?e.expression:e}},Fh={__proto__:null,quot:'\"',amp:\"&\",apos:\"'\",lt:\"<\",gt:\">\",nbsp:\"\\xA0\",iexcl:\"\\xA1\",cent:\"\\xA2\",pound:\"\\xA3\",curren:\"\\xA4\",yen:\"\\xA5\",brvbar:\"\\xA6\",sect:\"\\xA7\",uml:\"\\xA8\",copy:\"\\xA9\",ordf:\"\\xAA\",laquo:\"\\xAB\",not:\"\\xAC\",shy:\"\\xAD\",reg:\"\\xAE\",macr:\"\\xAF\",deg:\"\\xB0\",plusmn:\"\\xB1\",sup2:\"\\xB2\",sup3:\"\\xB3\",acute:\"\\xB4\",micro:\"\\xB5\",para:\"\\xB6\",middot:\"\\xB7\",cedil:\"\\xB8\",sup1:\"\\xB9\",ordm:\"\\xBA\",raquo:\"\\xBB\",frac14:\"\\xBC\",frac12:\"\\xBD\",frac34:\"\\xBE\",iquest:\"\\xBF\",Agrave:\"\\xC0\",Aacute:\"\\xC1\",Acirc:\"\\xC2\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Aring:\"\\xC5\",AElig:\"\\xC6\",Ccedil:\"\\xC7\",Egrave:\"\\xC8\",Eacute:\"\\xC9\",Ecirc:\"\\xCA\",Euml:\"\\xCB\",Igrave:\"\\xCC\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Iuml:\"\\xCF\",ETH:\"\\xD0\",Ntilde:\"\\xD1\",Ograve:\"\\xD2\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",times:\"\\xD7\",Oslash:\"\\xD8\",Ugrave:\"\\xD9\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",THORN:\"\\xDE\",szlig:\"\\xDF\",agrave:\"\\xE0\",aacute:\"\\xE1\",acirc:\"\\xE2\",atilde:\"\\xE3\",auml:\"\\xE4\",aring:\"\\xE5\",aelig:\"\\xE6\",ccedil:\"\\xE7\",egrave:\"\\xE8\",eacute:\"\\xE9\",ecirc:\"\\xEA\",euml:\"\\xEB\",igrave:\"\\xEC\",iacute:\"\\xED\",icirc:\"\\xEE\",iuml:\"\\xEF\",eth:\"\\xF0\",ntilde:\"\\xF1\",ograve:\"\\xF2\",oacute:\"\\xF3\",ocirc:\"\\xF4\",otilde:\"\\xF5\",ouml:\"\\xF6\",divide:\"\\xF7\",oslash:\"\\xF8\",ugrave:\"\\xF9\",uacute:\"\\xFA\",ucirc:\"\\xFB\",uuml:\"\\xFC\",yacute:\"\\xFD\",thorn:\"\\xFE\",yuml:\"\\xFF\",OElig:\"\\u0152\",oelig:\"\\u0153\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Yuml:\"\\u0178\",fnof:\"\\u0192\",circ:\"\\u02C6\",tilde:\"\\u02DC\",Alpha:\"\\u0391\",Beta:\"\\u0392\",Gamma:\"\\u0393\",Delta:\"\\u0394\",Epsilon:\"\\u0395\",Zeta:\"\\u0396\",Eta:\"\\u0397\",Theta:\"\\u0398\",Iota:\"\\u0399\",Kappa:\"\\u039A\",Lambda:\"\\u039B\",Mu:\"\\u039C\",Nu:\"\\u039D\",Xi:\"\\u039E\",Omicron:\"\\u039F\",Pi:\"\\u03A0\",Rho:\"\\u03A1\",Sigma:\"\\u03A3\",Tau:\"\\u03A4\",Upsilon:\"\\u03A5\",Phi:\"\\u03A6\",Chi:\"\\u03A7\",Psi:\"\\u03A8\",Omega:\"\\u03A9\",alpha:\"\\u03B1\",beta:\"\\u03B2\",gamma:\"\\u03B3\",delta:\"\\u03B4\",epsilon:\"\\u03B5\",zeta:\"\\u03B6\",eta:\"\\u03B7\",theta:\"\\u03B8\",iota:\"\\u03B9\",kappa:\"\\u03BA\",lambda:\"\\u03BB\",mu:\"\\u03BC\",nu:\"\\u03BD\",xi:\"\\u03BE\",omicron:\"\\u03BF\",pi:\"\\u03C0\",rho:\"\\u03C1\",sigmaf:\"\\u03C2\",sigma:\"\\u03C3\",tau:\"\\u03C4\",upsilon:\"\\u03C5\",phi:\"\\u03C6\",chi:\"\\u03C7\",psi:\"\\u03C8\",omega:\"\\u03C9\",thetasym:\"\\u03D1\",upsih:\"\\u03D2\",piv:\"\\u03D6\",ensp:\"\\u2002\",emsp:\"\\u2003\",thinsp:\"\\u2009\",zwnj:\"\\u200C\",zwj:\"\\u200D\",lrm:\"\\u200E\",rlm:\"\\u200F\",ndash:\"\\u2013\",mdash:\"\\u2014\",lsquo:\"\\u2018\",rsquo:\"\\u2019\",sbquo:\"\\u201A\",ldquo:\"\\u201C\",rdquo:\"\\u201D\",bdquo:\"\\u201E\",dagger:\"\\u2020\",Dagger:\"\\u2021\",bull:\"\\u2022\",hellip:\"\\u2026\",permil:\"\\u2030\",prime:\"\\u2032\",Prime:\"\\u2033\",lsaquo:\"\\u2039\",rsaquo:\"\\u203A\",oline:\"\\u203E\",frasl:\"\\u2044\",euro:\"\\u20AC\",image:\"\\u2111\",weierp:\"\\u2118\",real:\"\\u211C\",trade:\"\\u2122\",alefsym:\"\\u2135\",larr:\"\\u2190\",uarr:\"\\u2191\",rarr:\"\\u2192\",darr:\"\\u2193\",harr:\"\\u2194\",crarr:\"\\u21B5\",lArr:\"\\u21D0\",uArr:\"\\u21D1\",rArr:\"\\u21D2\",dArr:\"\\u21D3\",hArr:\"\\u21D4\",forall:\"\\u2200\",part:\"\\u2202\",exist:\"\\u2203\",empty:\"\\u2205\",nabla:\"\\u2207\",isin:\"\\u2208\",notin:\"\\u2209\",ni:\"\\u220B\",prod:\"\\u220F\",sum:\"\\u2211\",minus:\"\\u2212\",lowast:\"\\u2217\",radic:\"\\u221A\",prop:\"\\u221D\",infin:\"\\u221E\",ang:\"\\u2220\",and:\"\\u2227\",or:\"\\u2228\",cap:\"\\u2229\",cup:\"\\u222A\",int:\"\\u222B\",there4:\"\\u2234\",sim:\"\\u223C\",cong:\"\\u2245\",asymp:\"\\u2248\",ne:\"\\u2260\",equiv:\"\\u2261\",le:\"\\u2264\",ge:\"\\u2265\",sub:\"\\u2282\",sup:\"\\u2283\",nsub:\"\\u2284\",sube:\"\\u2286\",supe:\"\\u2287\",oplus:\"\\u2295\",otimes:\"\\u2297\",perp:\"\\u22A5\",sdot:\"\\u22C5\",lceil:\"\\u2308\",rceil:\"\\u2309\",lfloor:\"\\u230A\",rfloor:\"\\u230B\",lang:\"\\u2329\",rang:\"\\u232A\",loz:\"\\u25CA\",spades:\"\\u2660\",clubs:\"\\u2663\",hearts:\"\\u2665\",diams:\"\\u2666\"},Ie=j(Kn||(Kn=rt([\"jsx\"])))(t=>({AttributeIsEmpty:t(\"JSX attributes must only be assigned a non-empty expression.\"),MissingClosingTagElement:t(e=>{let{openingTagName:s}=e;return\"Expected corresponding JSX closing tag for <\".concat(s,\">.\")}),MissingClosingTagFragment:t(\"Expected corresponding JSX closing tag for <>.\"),UnexpectedSequenceExpression:t(\"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\"),UnexpectedToken:t(e=>{let{unexpected:s,HTMLEntity:r}=e;return\"Unexpected token `\".concat(s,\"`. Did you mean `\").concat(r,\"` or `{'\").concat(s,\"'}`?\")}),UnsupportedJsxValue:t(\"JSX value should be either an expression or a quoted JSX text.\"),UnterminatedJsxContent:t(\"Unterminated JSX contents.\"),UnwrappedAdjacentJSXElements:t(\"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?\")}));function Ce(t){return t?t.type===\"JSXOpeningFragment\"||t.type===\"JSXClosingFragment\":!1}function Ue(t){if(t.type===\"JSXIdentifier\")return t.name;if(t.type===\"JSXNamespacedName\")return t.namespace.name+\":\"+t.name.name;if(t.type===\"JSXMemberExpression\")return Ue(t.object)+\".\"+Ue(t.property);throw new Error(\"Node had unexpected type: \"+t.type)}var Lh=t=>class extends t{jsxReadToken(){let e=\"\",s=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(Ie.UnterminatedJsxContent,{at:this.state.startLoc});let r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?r===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(138)):super.getTokenFromCode(r):(e+=this.input.slice(s,this.state.pos),this.finishToken(137,e));case 38:e+=this.input.slice(s,this.state.pos),e+=this.jsxReadEntity(),s=this.state.pos;break;case 62:case 125:default:Ne(r)?(e+=this.input.slice(s,this.state.pos),e+=this.jsxReadNewLine(!0),s=this.state.pos):++this.state.pos}}}jsxReadNewLine(e){let s=this.input.charCodeAt(this.state.pos),r;return++this.state.pos,s===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,r=e?`\n`:`\\r\n`):r=String.fromCharCode(s),++this.state.curLine,this.state.lineStart=this.state.pos,r}jsxReadString(e){let s=\"\",r=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(u.UnterminatedString,{at:this.state.startLoc});let i=this.input.charCodeAt(this.state.pos);if(i===e)break;i===38?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadEntity(),r=this.state.pos):Ne(i)?(s+=this.input.slice(r,this.state.pos),s+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return s+=this.input.slice(r,this.state.pos++),this.finishToken(129,s)}jsxReadEntity(){let e=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let s=10;this.codePointAtPos(this.state.pos)===120&&(s=16,++this.state.pos);let r=this.readInt(s,void 0,!1,\"bail\");if(r!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(r)}else{let s=0,r=!1;for(;s++<10&&this.state.posObject.hasOwnProperty.call(t,e)&&t[e];function Rh(t){if(t==null)throw new Error(\"Unexpected \".concat(t,\" value.\"));return t}function Br(t){if(!t)throw new Error(\"Assert fail\")}function jh(t){return Vt(t)||Oo(t)}var S=j(Vn||(Vn=rt([\"typescript\"])))(t=>({AbstractMethodHasImplementation:t(e=>{let{methodName:s}=e;return\"Method '\".concat(s,\"' cannot have an implementation because it is marked abstract.\")}),AbstractPropertyHasInitializer:t(e=>{let{propertyName:s}=e;return\"Property '\".concat(s,\"' cannot have an initializer because it is marked abstract.\")}),AccesorCannotDeclareThisParameter:t(\"'get' and 'set' accessors cannot declare 'this' parameters.\"),AccesorCannotHaveTypeParameters:t(\"An accessor cannot have type parameters.\"),CannotFindName:t(e=>{let{name:s}=e;return\"Cannot find name '\".concat(s,\"'.\")}),ClassMethodHasDeclare:t(\"Class methods cannot have the 'declare' modifier.\"),ClassMethodHasReadonly:t(\"Class methods cannot have the 'readonly' modifier.\"),ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:t(\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),ConstructorHasTypeParameters:t(\"Type parameters cannot appear on a constructor declaration.\"),DeclareAccessor:t(e=>{let{kind:s}=e;return\"'declare' is not allowed in \".concat(s,\"ters.\")}),DeclareClassFieldHasInitializer:t(\"Initializers are not allowed in ambient contexts.\"),DeclareFunctionHasImplementation:t(\"An implementation cannot be declared in ambient contexts.\"),DuplicateAccessibilityModifier:t(e=>{let{modifier:s}=e;return\"Accessibility modifier already seen.\"}),DuplicateModifier:t(e=>{let{modifier:s}=e;return\"Duplicate modifier: '\".concat(s,\"'.\")}),EmptyHeritageClauseType:t(e=>{let{token:s}=e;return\"'\".concat(s,\"' list cannot be empty.\")}),EmptyTypeArguments:t(\"Type argument list cannot be empty.\"),EmptyTypeParameters:t(\"Type parameter list cannot be empty.\"),ExpectedAmbientAfterExportDeclare:t(\"'export declare' must be followed by an ambient declaration.\"),ImportAliasHasImportType:t(\"An import alias can not use 'import type'.\"),IncompatibleModifiers:t(e=>{let{modifiers:s}=e;return\"'\".concat(s[0],\"' modifier cannot be used with '\").concat(s[1],\"' modifier.\")}),IndexSignatureHasAbstract:t(\"Index signatures cannot have the 'abstract' modifier.\"),IndexSignatureHasAccessibility:t(e=>{let{modifier:s}=e;return\"Index signatures cannot have an accessibility modifier ('\".concat(s,\"').\")}),IndexSignatureHasDeclare:t(\"Index signatures cannot have the 'declare' modifier.\"),IndexSignatureHasOverride:t(\"'override' modifier cannot appear on an index signature.\"),IndexSignatureHasStatic:t(\"Index signatures cannot have the 'static' modifier.\"),InitializerNotAllowedInAmbientContext:t(\"Initializers are not allowed in ambient contexts.\"),InvalidModifierOnTypeMember:t(e=>{let{modifier:s}=e;return\"'\".concat(s,\"' modifier cannot appear on a type member.\")}),InvalidModifierOnTypeParameter:t(e=>{let{modifier:s}=e;return\"'\".concat(s,\"' modifier cannot appear on a type parameter.\")}),InvalidModifierOnTypeParameterPositions:t(e=>{let{modifier:s}=e;return\"'\".concat(s,\"' modifier can only appear on a type parameter of a class, interface or type alias.\")}),InvalidModifiersOrder:t(e=>{let{orderedModifiers:s}=e;return\"'\".concat(s[0],\"' modifier must precede '\").concat(s[1],\"' modifier.\")}),InvalidTupleMemberLabel:t(\"Tuple members must be labeled with a simple identifier.\"),MissingInterfaceName:t(\"'interface' declarations must be followed by an identifier.\"),MixedLabeledAndUnlabeledElements:t(\"Tuple members must all have names or all not have names.\"),NonAbstractClassHasAbstractMethod:t(\"Abstract methods can only appear within an abstract class.\"),NonClassMethodPropertyHasAbstractModifer:t(\"'abstract' modifier can only appear on a class, method, or property declaration.\"),OptionalTypeBeforeRequired:t(\"A required element cannot follow an optional element.\"),OverrideNotInSubClass:t(\"This member cannot have an 'override' modifier because its containing class does not extend another class.\"),PatternIsOptional:t(\"A binding pattern parameter cannot be optional in an implementation signature.\"),PrivateElementHasAbstract:t(\"Private elements cannot have the 'abstract' modifier.\"),PrivateElementHasAccessibility:t(e=>{let{modifier:s}=e;return\"Private elements cannot have an accessibility modifier ('\".concat(s,\"').\")}),ReadonlyForMethodSignature:t(\"'readonly' modifier can only appear on a property declaration or index signature.\"),ReservedArrowTypeParam:t(\"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.\"),ReservedTypeAssertion:t(\"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\"),SetAccesorCannotHaveOptionalParameter:t(\"A 'set' accessor cannot have an optional parameter.\"),SetAccesorCannotHaveRestParameter:t(\"A 'set' accessor cannot have rest parameter.\"),SetAccesorCannotHaveReturnType:t(\"A 'set' accessor cannot have a return type annotation.\"),SingleTypeParameterWithoutTrailingComma:t(e=>{let{typeParameterName:s}=e;return\"Single type parameter \".concat(s,\" should have a trailing comma. Example usage: <\").concat(s,\",>.\")}),StaticBlockCannotHaveModifier:t(\"Static class blocks cannot have any modifier.\"),TypeAnnotationAfterAssign:t(\"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\"),TypeImportCannotSpecifyDefaultAndNamed:t(\"A type-only import can specify a default import or named bindings, but not both.\"),TypeModifierIsUsedInTypeExports:t(\"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\"),TypeModifierIsUsedInTypeImports:t(\"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\"),UnexpectedParameterModifier:t(\"A parameter property is only allowed in a constructor implementation.\"),UnexpectedReadonly:t(\"'readonly' type modifier is only permitted on array and tuple literal types.\"),UnexpectedTypeAnnotation:t(\"Did not expect a type annotation here.\"),UnexpectedTypeCastInParameter:t(\"Unexpected type cast in parameter position.\"),UnsupportedImportTypeArgument:t(\"Argument in a type import must be a string literal.\"),UnsupportedParameterPropertyKind:t(\"A parameter property may not be declared using a binding pattern.\"),UnsupportedSignatureParameterKind:t(e=>{let{type:s}=e;return\"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got \".concat(s,\".\")})}));function qh(t){switch(t){case\"any\":return\"TSAnyKeyword\";case\"boolean\":return\"TSBooleanKeyword\";case\"bigint\":return\"TSBigIntKeyword\";case\"never\":return\"TSNeverKeyword\";case\"number\":return\"TSNumberKeyword\";case\"object\":return\"TSObjectKeyword\";case\"string\":return\"TSStringKeyword\";case\"symbol\":return\"TSSymbolKeyword\";case\"undefined\":return\"TSUndefinedKeyword\";case\"unknown\":return\"TSUnknownKeyword\";default:return}}function Mr(t){return t===\"private\"||t===\"public\"||t===\"protected\"}function Uh(t){return t===\"in\"||t===\"out\"}var _h=t=>class extends t{getScopeHandler(){return Bh}tsIsIdentifier(){return K(this.state.type)}tsTokenCanFollowModifier(){return(this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(134)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()}tsNextTokenCanFollowModifier(){return this.next(),this.tsTokenCanFollowModifier()}tsParseModifier(e,s){if(!K(this.state.type)&&this.state.type!==58)return;let r=this.state.value;if(e.indexOf(r)!==-1){if(s&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return r}}tsParseModifiers(e){let{modified:s,allowedModifiers:r,disallowedModifiers:i,stopOnStartOfClassStaticBlock:a,errorTemplate:n=S.InvalidModifierOnTypeMember}=e,o=(f,y,P,v)=>{y===P&&s[v]&&this.raise(S.InvalidModifiersOrder,{at:f,orderedModifiers:[P,v]})},c=(f,y,P,v)=>{(s[P]&&y===v||s[v]&&y===P)&&this.raise(S.IncompatibleModifiers,{at:f,modifiers:[P,v]})};for(;;){let{startLoc:f}=this.state,y=this.tsParseModifier(r.concat(i!=null?i:[]),a);if(!y)break;Mr(y)?s.accessibility?this.raise(S.DuplicateAccessibilityModifier,{at:f,modifier:y}):(o(f,y,y,\"override\"),o(f,y,y,\"static\"),o(f,y,y,\"readonly\"),s.accessibility=y):Uh(y)?(s[y]&&this.raise(S.DuplicateModifier,{at:f,modifier:y}),s[y]=!0,o(f,y,\"in\",\"out\")):(Object.hasOwnProperty.call(s,y)?this.raise(S.DuplicateModifier,{at:f,modifier:y}):(o(f,y,\"static\",\"readonly\"),o(f,y,\"static\",\"override\"),o(f,y,\"override\",\"readonly\"),o(f,y,\"abstract\",\"override\"),c(f,y,\"declare\",\"override\"),c(f,y,\"static\",\"abstract\")),s[y]=!0),i!=null&&i.includes(y)&&this.raise(n,{at:f,modifier:y})}}tsIsListTerminator(e){switch(e){case\"EnumMembers\":case\"TypeMembers\":return this.match(8);case\"HeritageClauseElement\":return this.match(5);case\"TupleElementTypes\":return this.match(3);case\"TypeParametersOrArguments\":return this.match(48)}throw new Error(\"Unreachable\")}tsParseList(e,s){let r=[];for(;!this.tsIsListTerminator(e);)r.push(s());return r}tsParseDelimitedList(e,s,r){return Rh(this.tsParseDelimitedListWorker(e,s,!0,r))}tsParseDelimitedListWorker(e,s,r,i){let a=[],n=-1;for(;!this.tsIsListTerminator(e);){n=-1;let o=s();if(o==null)return;if(a.push(o),this.eat(12)){n=this.state.lastTokStart;continue}if(this.tsIsListTerminator(e))break;r&&this.expect(12);return}return i&&(i.value=n),a}tsParseBracketedList(e,s,r,i,a){i||(r?this.expect(0):this.expect(47));let n=this.tsParseDelimitedList(e,s,a);return r?this.expect(3):this.expect(48),n}tsParseImportType(){let e=this.startNode();return this.expect(83),this.expect(10),this.match(129)||this.raise(S.UnsupportedImportTypeArgument,{at:this.state.startLoc}),e.argument=this.parseExprAtom(),this.expect(11),this.eat(16)&&(e.qualifier=this.tsParseEntityName()),this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSImportType\")}tsParseEntityName(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=this.parseIdentifier(e);for(;this.eat(16);){let r=this.startNodeAtNode(s);r.left=s,r.right=this.parseIdentifier(e),s=this.finishNode(r,\"TSQualifiedName\")}return s}tsParseTypeReference(){let e=this.startNode();return e.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSTypeReference\")}tsParseThisTypePredicate(e){this.next();let s=this.startNodeAtNode(e);return s.parameterName=e,s.typeAnnotation=this.tsParseTypeAnnotation(!1),s.asserts=!1,this.finishNode(s,\"TSTypePredicate\")}tsParseThisTypeNode(){let e=this.startNode();return this.next(),this.finishNode(e,\"TSThisType\")}tsParseTypeQuery(){let e=this.startNode();return this.expect(87),this.match(83)?e.exprName=this.tsParseImportType():e.exprName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,\"TSTypeQuery\")}tsParseInOutModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:[\"in\",\"out\"],disallowedModifiers:[\"public\",\"private\",\"protected\",\"readonly\",\"declare\",\"abstract\",\"override\"],errorTemplate:S.InvalidModifierOnTypeParameter})}tsParseNoneModifiers(e){this.tsParseModifiers({modified:e,allowedModifiers:[],disallowedModifiers:[\"in\",\"out\"],errorTemplate:S.InvalidModifierOnTypeParameterPositions})}tsParseTypeParameter(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.tsParseNoneModifiers.bind(this),s=this.startNode();return e(s),s.name=this.tsParseTypeParameterName(),s.constraint=this.tsEatThenParseType(81),s.default=this.tsEatThenParseType(29),this.finishNode(s,\"TSTypeParameter\")}tsTryParseTypeParameters(e){if(this.match(47))return this.tsParseTypeParameters(e)}tsParseTypeParameters(e){let s=this.startNode();this.match(47)||this.match(138)?this.next():this.unexpected();let r={value:-1};return s.params=this.tsParseBracketedList(\"TypeParametersOrArguments\",this.tsParseTypeParameter.bind(this,e),!1,!0,r),s.params.length===0&&this.raise(S.EmptyTypeParameters,{at:s}),r.value!==-1&&this.addExtra(s,\"trailingComma\",r.value),this.finishNode(s,\"TSTypeParameterDeclaration\")}tsTryNextParseConstantContext(){if(this.lookahead().type!==75)return null;this.next();let e=this.tsParseTypeReference();return e.typeParameters&&this.raise(S.CannotFindName,{at:e.typeName,name:\"const\"}),e}tsFillSignature(e,s){let r=e===19,i=\"parameters\",a=\"typeAnnotation\";s.typeParameters=this.tsTryParseTypeParameters(),this.expect(10),s[i]=this.tsParseBindingListForSignature(),r?s[a]=this.tsParseTypeOrTypePredicateAnnotation(e):this.match(e)&&(s[a]=this.tsParseTypeOrTypePredicateAnnotation(e))}tsParseBindingListForSignature(){return this.parseBindingList(11,41).map(e=>(e.type!==\"Identifier\"&&e.type!==\"RestElement\"&&e.type!==\"ObjectPattern\"&&e.type!==\"ArrayPattern\"&&this.raise(S.UnsupportedSignatureParameterKind,{at:e,type:e.type}),e))}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(e,s){return this.tsFillSignature(14,s),this.tsParseTypeMemberSemicolon(),this.finishNode(s,e)}tsIsUnambiguouslyIndexSignature(){return this.next(),K(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(e){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);let s=this.parseIdentifier();s.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(s),this.expect(3),e.parameters=[s];let r=this.tsTryParseTypeAnnotation();return r&&(e.typeAnnotation=r),this.tsParseTypeMemberSemicolon(),this.finishNode(e,\"TSIndexSignature\")}tsParsePropertyOrMethodSignature(e,s){this.eat(17)&&(e.optional=!0);let r=e;if(this.match(10)||this.match(47)){s&&this.raise(S.ReadonlyForMethodSignature,{at:e});let i=r;i.kind&&this.match(47)&&this.raise(S.AccesorCannotHaveTypeParameters,{at:this.state.curPosition()}),this.tsFillSignature(14,i),this.tsParseTypeMemberSemicolon();let a=\"parameters\",n=\"typeAnnotation\";if(i.kind===\"get\")i[a].length>0&&(this.raise(u.BadGetterArity,{at:this.state.curPosition()}),this.isThisParam(i[a][0])&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}));else if(i.kind===\"set\"){if(i[a].length!==1)this.raise(u.BadSetterArity,{at:this.state.curPosition()});else{let o=i[a][0];this.isThisParam(o)&&this.raise(S.AccesorCannotDeclareThisParameter,{at:this.state.curPosition()}),o.type===\"Identifier\"&&o.optional&&this.raise(S.SetAccesorCannotHaveOptionalParameter,{at:this.state.curPosition()}),o.type===\"RestElement\"&&this.raise(S.SetAccesorCannotHaveRestParameter,{at:this.state.curPosition()})}i[n]&&this.raise(S.SetAccesorCannotHaveReturnType,{at:i[n]})}else i.kind=\"method\";return this.finishNode(i,\"TSMethodSignature\")}else{let i=r;s&&(i.readonly=!0);let a=this.tsTryParseTypeAnnotation();return a&&(i.typeAnnotation=a),this.tsParseTypeMemberSemicolon(),this.finishNode(i,\"TSPropertySignature\")}}tsParseTypeMember(){let e=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\",e);if(this.match(77)){let r=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember(\"TSConstructSignatureDeclaration\",e):(e.key=this.createIdentifier(r,\"new\"),this.tsParsePropertyOrMethodSignature(e,!1))}this.tsParseModifiers({modified:e,allowedModifiers:[\"readonly\"],disallowedModifiers:[\"declare\",\"abstract\",\"private\",\"protected\",\"public\",\"static\",\"override\"]});let s=this.tsTryParseIndexSignature(e);return s||(this.parsePropertyName(e),!e.computed&&e.key.type===\"Identifier\"&&(e.key.name===\"get\"||e.key.name===\"set\")&&this.tsTokenCanFollowModifier()&&(e.kind=e.key.name,this.parsePropertyName(e)),this.tsParsePropertyOrMethodSignature(e,!!e.readonly))}tsParseTypeLiteral(){let e=this.startNode();return e.members=this.tsParseObjectTypeMembers(),this.finishNode(e,\"TSTypeLiteral\")}tsParseObjectTypeMembers(){this.expect(5);let e=this.tsParseList(\"TypeMembers\",this.tsParseTypeMember.bind(this));return this.expect(8),e}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(118):(this.isContextual(118)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedTypeParameter(){let e=this.startNode();return e.name=this.tsParseTypeParameterName(),e.constraint=this.tsExpectThenParseType(58),this.finishNode(e,\"TSTypeParameter\")}tsParseMappedType(){let e=this.startNode();return this.expect(5),this.match(53)?(e.readonly=this.state.value,this.next(),this.expectContextual(118)):this.eatContextual(118)&&(e.readonly=!0),this.expect(0),e.typeParameter=this.tsParseMappedTypeParameter(),e.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(e.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(e.optional=!0),e.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(e,\"TSMappedType\")}tsParseTupleType(){let e=this.startNode();e.elementTypes=this.tsParseBracketedList(\"TupleElementTypes\",this.tsParseTupleElementType.bind(this),!0,!1);let s=!1,r=null;return e.elementTypes.forEach(i=>{var a;let{type:n}=i;s&&n!==\"TSRestType\"&&n!==\"TSOptionalType\"&&!(n===\"TSNamedTupleMember\"&&i.optional)&&this.raise(S.OptionalTypeBeforeRequired,{at:i}),s=s||n===\"TSNamedTupleMember\"&&i.optional||n===\"TSOptionalType\",n===\"TSRestType\"&&(i=i.typeAnnotation,n=i.type);let o=n===\"TSNamedTupleMember\";r=(a=r)!=null?a:o,r!==o&&this.raise(S.MixedLabeledAndUnlabeledElements,{at:i})}),this.finishNode(e,\"TSTupleType\")}tsParseTupleElementType(){let{start:e,startLoc:s}=this.state,r=this.eat(21),i=this.tsParseType(),a=this.eat(17);if(this.eat(14)){let o=this.startNodeAtNode(i);o.optional=a,i.type===\"TSTypeReference\"&&!i.typeParameters&&i.typeName.type===\"Identifier\"?o.label=i.typeName:(this.raise(S.InvalidTupleMemberLabel,{at:i}),o.label=i),o.elementType=this.tsParseType(),i=this.finishNode(o,\"TSNamedTupleMember\")}else if(a){let o=this.startNodeAtNode(i);o.typeAnnotation=i,i=this.finishNode(o,\"TSOptionalType\")}if(r){let o=this.startNodeAt(e,s);o.typeAnnotation=i,i=this.finishNode(o,\"TSRestType\")}return i}tsParseParenthesizedType(){let e=this.startNode();return this.expect(10),e.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(e,\"TSParenthesizedType\")}tsParseFunctionOrConstructorType(e,s){let r=this.startNode();return e===\"TSConstructorType\"&&(r.abstract=!!s,s&&this.next(),this.next()),this.tsFillSignature(19,r),this.finishNode(r,e)}tsParseLiteralTypeNode(){let e=this.startNode();return e.literal=(()=>{switch(this.state.type){case 130:case 131:case 129:case 85:case 86:return this.parseExprAtom();default:throw this.unexpected()}})(),this.finishNode(e,\"TSLiteralType\")}tsParseTemplateLiteralType(){let e=this.startNode();return e.literal=this.parseTemplate(!1),this.finishNode(e,\"TSLiteralType\")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){let e=this.tsParseThisTypeNode();return this.isContextual(113)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(e):e}tsParseNonArrayType(){switch(this.state.type){case 129:case 130:case 131:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value===\"-\"){let e=this.startNode(),s=this.lookahead();if(s.type!==130&&s.type!==131)throw this.unexpected();return e.literal=this.parseMaybeUnary(),this.finishNode(e,\"TSLiteralType\")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{let{type:e}=this.state;if(K(e)||e===88||e===84){let s=e===88?\"TSVoidKeyword\":e===84?\"TSNullKeyword\":qh(this.state.value);if(s!==void 0&&this.lookaheadCharCode()!==46){let r=this.startNode();return this.next(),this.finishNode(r,s)}return this.tsParseTypeReference()}}}throw this.unexpected()}tsParseArrayTypeOrHigher(){let e=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){let s=this.startNodeAtNode(e);s.elementType=e,this.expect(3),e=this.finishNode(s,\"TSArrayType\")}else{let s=this.startNodeAtNode(e);s.objectType=e,s.indexType=this.tsParseType(),this.expect(3),e=this.finishNode(s,\"TSIndexedAccessType\")}return e}tsParseTypeOperator(){let e=this.startNode(),s=this.state.value;return this.next(),e.operator=s,e.typeAnnotation=this.tsParseTypeOperatorOrHigher(),s===\"readonly\"&&this.tsCheckTypeAnnotationForReadOnly(e),this.finishNode(e,\"TSTypeOperator\")}tsCheckTypeAnnotationForReadOnly(e){switch(e.typeAnnotation.type){case\"TSTupleType\":case\"TSArrayType\":return;default:this.raise(S.UnexpectedReadonly,{at:e})}}tsParseInferType(){let e=this.startNode();this.expectContextual(112);let s=this.startNode();return s.name=this.tsParseTypeParameterName(),s.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),e.typeParameter=this.finishNode(s,\"TSTypeParameter\"),this.finishNode(e,\"TSInferType\")}tsParseConstraintForInferType(){if(this.eat(81)){let e=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return e}}tsParseTypeOperatorOrHigher(){return Fo(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(112)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(e,s,r){let i=this.startNode(),a=this.eat(r),n=[];do n.push(s());while(this.eat(r));return n.length===1&&!a?n[0]:(i.types=n,this.finishNode(i,e))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType(\"TSIntersectionType\",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType(\"TSUnionType\",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(K(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){let{errors:e}=this.state,s=e.length;try{return this.parseObjectLike(8,!0),e.length===s}catch{return!1}}if(this.match(0)){this.next();let{errors:e}=this.state,s=e.length;try{return this.parseBindingList(3,93,!0),e.length===s}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(e){return this.tsInType(()=>{let s=this.startNode();this.expect(e);let r=this.startNode(),i=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(i&&this.match(78)){let o=this.tsParseThisTypeOrThisTypePredicate();return o.type===\"TSThisType\"?(r.parameterName=o,r.asserts=!0,r.typeAnnotation=null,o=this.finishNode(r,\"TSTypePredicate\")):(this.resetStartLocationFromNode(o,r),o.asserts=!0),s.typeAnnotation=o,this.finishNode(s,\"TSTypeAnnotation\")}let a=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!a)return i?(r.parameterName=this.parseIdentifier(),r.asserts=i,r.typeAnnotation=null,s.typeAnnotation=this.finishNode(r,\"TSTypePredicate\"),this.finishNode(s,\"TSTypeAnnotation\")):this.tsParseTypeAnnotation(!1,s);let n=this.tsParseTypeAnnotation(!1);return r.parameterName=a,r.typeAnnotation=n,r.asserts=i,s.typeAnnotation=this.finishNode(r,\"TSTypePredicate\"),this.finishNode(s,\"TSTypeAnnotation\")})}tsTryParseTypeOrTypePredicateAnnotation(){return this.match(14)?this.tsParseTypeOrTypePredicateAnnotation(14):void 0}tsTryParseTypeAnnotation(){return this.match(14)?this.tsParseTypeAnnotation():void 0}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){let e=this.parseIdentifier();if(this.isContextual(113)&&!this.hasPrecedingLineBreak())return this.next(),e}tsParseTypePredicateAsserts(){if(this.state.type!==106)return!1;let e=this.state.containsEsc;return this.next(),!K(this.state.type)&&!this.match(78)?!1:(e&&this.raise(u.InvalidEscapedReservedWord,{at:this.state.lastTokStartLoc,reservedWord:\"asserts\"}),!0)}tsParseTypeAnnotation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.startNode();return this.tsInType(()=>{e&&this.expect(14),s.typeAnnotation=this.tsParseType()}),this.finishNode(s,\"TSTypeAnnotation\")}tsParseType(){Br(this.state.inType);let e=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return e;let s=this.startNodeAtNode(e);return s.checkType=e,s.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),s.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),s.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(s,\"TSConditionalType\")}isAbstractConstructorSignature(){return this.isContextual(120)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType(\"TSFunctionType\"):this.match(77)?this.tsParseFunctionOrConstructorType(\"TSConstructorType\"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType(\"TSConstructorType\",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption(\"typescript\",\"disallowAmbiguousJSXLike\")&&this.raise(S.ReservedTypeAssertion,{at:this.state.startLoc});let e=this.startNode(),s=this.tsTryNextParseConstantContext();return e.typeAnnotation=s||this.tsNextThenParseType(),this.expect(48),e.expression=this.parseMaybeUnary(),this.finishNode(e,\"TSTypeAssertion\")}tsParseHeritageClause(e){let s=this.state.startLoc,r=this.tsParseDelimitedList(\"HeritageClauseElement\",()=>{let i=this.startNode();return i.expression=this.tsParseEntityName(),this.match(47)&&(i.typeParameters=this.tsParseTypeArguments()),this.finishNode(i,\"TSExpressionWithTypeArguments\")});return r.length||this.raise(S.EmptyHeritageClauseType,{at:s,token:e}),r}tsParseInterfaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.hasFollowingLineBreak())return null;this.expectContextual(125),s.declare&&(e.declare=!0),K(this.state.type)?(e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Wo)):(e.id=null,this.raise(S.MissingInterfaceName,{at:this.state.startLoc})),e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.eat(81)&&(e.extends=this.tsParseHeritageClause(\"extends\"));let r=this.startNode();return r.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),e.body=this.finishNode(r,\"TSInterfaceBody\"),this.finishNode(e,\"TSInterfaceDeclaration\")}tsParseTypeAliasDeclaration(e){return e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Go),e.typeAnnotation=this.tsInType(()=>{if(e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.expect(29),this.isContextual(111)&&this.lookahead().type!==16){let s=this.startNode();return this.next(),this.finishNode(s,\"TSIntrinsicKeyword\")}return this.tsParseType()}),this.semicolon(),this.finishNode(e,\"TSTypeAliasDeclaration\")}tsInNoContext(e){let s=this.state.context;this.state.context=[s[0]];try{return e()}finally{this.state.context=s}}tsInType(e){let s=this.state.inType;this.state.inType=!0;try{return e()}finally{this.state.inType=s}}tsInDisallowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsInAllowConditionalTypesContext(e){let s=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return e()}finally{this.state.inDisallowConditionalTypesContext=s}}tsEatThenParseType(e){return this.match(e)?this.tsNextThenParseType():void 0}tsExpectThenParseType(e){return this.tsDoThenParseType(()=>this.expect(e))}tsNextThenParseType(){return this.tsDoThenParseType(()=>this.next())}tsDoThenParseType(e){return this.tsInType(()=>(e(),this.tsParseType()))}tsParseEnumMember(){let e=this.startNode();return e.id=this.match(129)?this.parseExprAtom():this.parseIdentifier(!0),this.eat(29)&&(e.initializer=this.parseMaybeAssignAllowIn()),this.finishNode(e,\"TSEnumMember\")}tsParseEnumDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return s.const&&(e.const=!0),s.declare&&(e.declare=!0),this.expectContextual(122),e.id=this.parseIdentifier(),this.checkIdentifier(e.id,e.const?Jo:Er),this.expect(5),e.members=this.tsParseDelimitedList(\"EnumMembers\",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(e,\"TSEnumDeclaration\")}tsParseModuleBlock(){let e=this.startNode();return this.scope.enter(Me),this.expect(5),this.parseBlockOrModuleBlockBody(e.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(e,\"TSModuleBlock\")}tsParseModuleOrNamespaceDeclaration(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.id=this.parseIdentifier(),s||this.checkIdentifier(e.id,Yo),this.eat(16)){let r=this.startNode();this.tsParseModuleOrNamespaceDeclaration(r,!0),e.body=r}else this.scope.enter(ht),this.prodParam.enter(je),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(e,\"TSModuleDeclaration\")}tsParseAmbientExternalModuleDeclaration(e){return this.isContextual(109)?(e.global=!0,e.id=this.parseIdentifier()):this.match(129)?e.id=this.parseExprAtom():this.unexpected(),this.match(5)?(this.scope.enter(ht),this.prodParam.enter(je),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(e,\"TSModuleDeclaration\")}tsParseImportEqualsDeclaration(e,s){e.isExport=s||!1,e.id=this.parseIdentifier(),this.checkIdentifier(e.id,xe),this.expect(29);let r=this.tsParseModuleReference();return e.importKind===\"type\"&&r.type!==\"TSExternalModuleReference\"&&this.raise(S.ImportAliasHasImportType,{at:r}),e.moduleReference=r,this.semicolon(),this.finishNode(e,\"TSImportEqualsDeclaration\")}tsIsExternalModuleReference(){return this.isContextual(116)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){let e=this.startNode();if(this.expectContextual(116),this.expect(10),!this.match(129))throw this.unexpected();return e.expression=this.parseExprAtom(),this.expect(11),this.finishNode(e,\"TSExternalModuleReference\")}tsLookAhead(e){let s=this.state.clone(),r=e();return this.state=s,r}tsTryParseAndCatch(e){let s=this.tryParse(r=>e()||r());if(!(s.aborted||!s.node))return s.error&&(this.state=s.failState),s.node}tsTryParse(e){let s=this.state.clone(),r=e();if(r!==void 0&&r!==!1)return r;this.state=s}tsTryParseDeclare(e){if(this.isLineTerminator())return;let s=this.state.type,r;return this.isContextual(99)&&(s=74,r=\"let\"),this.tsInAmbientContext(()=>{if(s===68)return e.declare=!0,this.parseFunctionStatement(e,!1,!0);if(s===80)return e.declare=!0,this.parseClass(e,!0,!1);if(s===122)return this.tsParseEnumDeclaration(e,{declare:!0});if(s===109)return this.tsParseAmbientExternalModuleDeclaration(e);if(s===75||s===74)return!this.match(75)||!this.isLookaheadContextual(\"enum\")?(e.declare=!0,this.parseVarStatement(e,r||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(e,{const:!0,declare:!0}));if(s===125){let i=this.tsParseInterfaceDeclaration(e,{declare:!0});if(i)return i}if(K(s))return this.tsParseDeclaration(e,this.state.value,!0)})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0)}tsParseExpressionStatement(e,s){switch(s.name){case\"declare\":{let r=this.tsTryParseDeclare(e);if(r)return r.declare=!0,r;break}case\"global\":if(this.match(5)){this.scope.enter(ht),this.prodParam.enter(je);let r=e;return r.global=!0,r.id=s,r.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(r,\"TSModuleDeclaration\")}break;default:return this.tsParseDeclaration(e,s.name,!1)}}tsParseDeclaration(e,s,r){switch(s){case\"abstract\":if(this.tsCheckLineTerminator(r)&&(this.match(80)||K(this.state.type)))return this.tsParseAbstractDeclaration(e);break;case\"module\":if(this.tsCheckLineTerminator(r)){if(this.match(129))return this.tsParseAmbientExternalModuleDeclaration(e);if(K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e)}break;case\"namespace\":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseModuleOrNamespaceDeclaration(e);break;case\"type\":if(this.tsCheckLineTerminator(r)&&K(this.state.type))return this.tsParseTypeAliasDeclaration(e);break}}tsCheckLineTerminator(e){return e?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(e,s){if(!this.match(47))return;let r=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;let i=this.tsTryParseAndCatch(()=>{let a=this.startNodeAt(e,s);return a.typeParameters=this.tsParseTypeParameters(),super.parseFunctionParams(a),a.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),a});if(this.state.maybeInArrowParameters=r,!!i)return this.parseArrowExpression(i,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){let e=this.startNode();return e.params=this.tsInType(()=>this.tsInNoContext(()=>(this.expect(47),this.tsParseDelimitedList(\"TypeParametersOrArguments\",this.tsParseType.bind(this))))),e.params.length===0&&this.raise(S.EmptyTypeArguments,{at:e}),this.expect(48),this.finishNode(e,\"TSTypeParameterInstantiation\")}tsIsDeclarationStart(){return Lo(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(e,s){let r=this.state.start,i=this.state.startLoc,a,n=!1,o=!1;if(e!==void 0){let y={};this.tsParseModifiers({modified:y,allowedModifiers:[\"public\",\"private\",\"protected\",\"override\",\"readonly\"]}),a=y.accessibility,o=y.override,n=y.readonly,e===!1&&(a||n||o)&&this.raise(S.UnexpectedParameterModifier,{at:i})}let c=this.parseMaybeDefault();this.parseAssignableListItemTypes(c);let f=this.parseMaybeDefault(c.start,c.loc.start,c);if(a||n||o){let y=this.startNodeAt(r,i);return s.length&&(y.decorators=s),a&&(y.accessibility=a),n&&(y.readonly=n),o&&(y.override=o),f.type!==\"Identifier\"&&f.type!==\"AssignmentPattern\"&&this.raise(S.UnsupportedParameterPropertyKind,{at:y}),y.parameter=f,this.finishNode(y,\"TSParameterProperty\")}return s.length&&(c.decorators=s),f}isSimpleParameter(e){return e.type===\"TSParameterProperty\"&&super.isSimpleParameter(e.parameter)||super.isSimpleParameter(e)}parseFunctionBodyAndFinish(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.match(14)&&(e.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));let i=s===\"FunctionDeclaration\"?\"TSDeclareFunction\":s===\"ClassMethod\"||s===\"ClassPrivateMethod\"?\"TSDeclareMethod\":void 0;if(i&&!this.match(5)&&this.isLineTerminator()){this.finishNode(e,i);return}if(i===\"TSDeclareFunction\"&&this.state.isAmbientContext&&(this.raise(S.DeclareFunctionHasImplementation,{at:e}),e.declare)){super.parseFunctionBodyAndFinish(e,i,r);return}super.parseFunctionBodyAndFinish(e,s,r)}registerFunctionStatementId(e){!e.body&&e.id?this.checkIdentifier(e.id,Cr):super.registerFunctionStatementId(...arguments)}tsCheckForInvalidTypeCasts(e){e.forEach(s=>{(s==null?void 0:s.type)===\"TSTypeCastExpression\"&&this.raise(S.UnexpectedTypeAnnotation,{at:s.typeAnnotation})})}toReferencedList(e,s){return this.tsCheckForInvalidTypeCasts(e),e}parseArrayLike(){let e=super.parseArrayLike(...arguments);return e.type===\"ArrayExpression\"&&this.tsCheckForInvalidTypeCasts(e.elements),e}parseSubscript(e,s,r,i,a){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();let o=this.startNodeAt(s,r);return o.expression=e,this.finishNode(o,\"TSNonNullExpression\")}let n=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(i)return a.stop=!0,e;a.optionalChainMember=n=!0,this.next()}if(this.match(47)||this.match(51)){let o,c=this.tsTryParseAndCatch(()=>{if(!i&&this.atPossibleAsyncArrow(e)){let P=this.tsTryParseGenericAsyncArrowFunction(s,r);if(P)return P}let f=this.tsParseTypeArgumentsInExpression();if(!f)throw this.unexpected();if(n&&!this.match(10))throw o=this.state.curPosition(),this.unexpected();if(nt(this.state.type)){let P=this.parseTaggedTemplateExpression(e,s,r,a);return P.typeParameters=f,P}if(!i&&this.eat(10)){let P=this.startNodeAt(s,r);return P.callee=e,P.arguments=this.parseCallExpressionArguments(11,!1),this.tsCheckForInvalidTypeCasts(P.arguments),P.typeParameters=f,a.optionalChainMember&&(P.optional=n),this.finishCallExpression(P,a.optionalChainMember)}if(jh(this.state.type)&&this.state.type!==10)throw this.unexpected();let y=this.startNodeAt(s,r);return y.expression=e,y.typeParameters=f,this.finishNode(y,\"TSInstantiationExpression\")});if(o&&this.unexpected(o,10),c)return c}return super.parseSubscript(e,s,r,i,a)}parseNewCallee(e){var s;super.parseNewCallee(e);let{callee:r}=e;r.type===\"TSInstantiationExpression\"&&!((s=r.extra)!=null&&s.parenthesized)&&(e.typeParameters=r.typeParameters,e.callee=r.expression)}parseExprOp(e,s,r,i){if(at(58)>i&&!this.hasPrecedingLineBreak()&&this.isContextual(93)){let a=this.startNodeAt(s,r);a.expression=e;let n=this.tsTryNextParseConstantContext();return n?a.typeAnnotation=n:a.typeAnnotation=this.tsNextThenParseType(),this.finishNode(a,\"TSAsExpression\"),this.reScan_lt_gt(),this.parseExprOp(a,s,r,i)}return super.parseExprOp(e,s,r,i)}checkReservedWord(e,s,r,i){this.state.isAmbientContext||super.checkReservedWord(e,s,r,i)}checkDuplicateExports(){}parseImport(e){if(e.importKind=\"value\",K(this.state.type)||this.match(55)||this.match(5)){let r=this.lookahead();if(this.isContextual(126)&&r.type!==12&&r.type!==97&&r.type!==29&&(e.importKind=\"type\",this.next(),r=this.lookahead()),K(this.state.type)&&r.type===29)return this.tsParseImportEqualsDeclaration(e)}let s=super.parseImport(e);return s.importKind===\"type\"&&s.specifiers.length>1&&s.specifiers[0].type===\"ImportDefaultSpecifier\"&&this.raise(S.TypeImportCannotSpecifyDefaultAndNamed,{at:s}),s}parseExport(e){if(this.match(83))return this.next(),this.isContextual(126)&&this.lookaheadCharCode()!==61?(e.importKind=\"type\",this.next()):e.importKind=\"value\",this.tsParseImportEqualsDeclaration(e,!0);if(this.eat(29)){let s=e;return s.expression=this.parseExpression(),this.semicolon(),this.finishNode(s,\"TSExportAssignment\")}else if(this.eatContextual(93)){let s=e;return this.expectContextual(124),s.id=this.parseIdentifier(),this.semicolon(),this.finishNode(s,\"TSNamespaceExportDeclaration\")}else return this.isContextual(126)&&this.lookahead().type===5?(this.next(),e.exportKind=\"type\"):e.exportKind=\"value\",super.parseExport(e)}isAbstractClass(){return this.isContextual(120)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){let e=this.startNode();return this.next(),e.abstract=!0,this.parseClass(e,!0,!0),e}if(this.match(125)){let e=this.tsParseInterfaceDeclaration(this.startNode());if(e)return e}return super.parseExportDefaultExpression()}parseVarStatement(e,s){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,{isAmbientContext:i}=this.state,a=super.parseVarStatement(e,s,r||i);if(!i)return a;for(let{id:n,init:o}of a.declarations)!o||(s!==\"const\"||!!n.typeAnnotation?this.raise(S.InitializerNotAllowedInAmbientContext,{at:o}):o.type!==\"StringLiteral\"&&o.type!==\"BooleanLiteral\"&&o.type!==\"NumericLiteral\"&&o.type!==\"BigIntLiteral\"&&(o.type!==\"TemplateLiteral\"||o.expressions.length>0)&&!zh(o)&&this.raise(S.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,{at:o}));return a}parseStatementContent(e,s){if(this.match(75)&&this.isLookaheadContextual(\"enum\")){let r=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(r,{const:!0})}if(this.isContextual(122))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(125)){let r=this.tsParseInterfaceDeclaration(this.startNode());if(r)return r}return super.parseStatementContent(e,s)}parseAccessModifier(){return this.tsParseModifier([\"public\",\"protected\",\"private\"])}tsHasSomeModifiers(e,s){return s.some(r=>Mr(r)?e.accessibility===r:!!e[r])}tsIsStartOfStaticBlocks(){return this.isContextual(104)&&this.lookaheadCharCode()===123}parseClassMember(e,s,r){let i=[\"declare\",\"private\",\"public\",\"protected\",\"override\",\"abstract\",\"readonly\",\"static\"];this.tsParseModifiers({modified:s,allowedModifiers:i,disallowedModifiers:[\"in\",\"out\"],stopOnStartOfClassStaticBlock:!0,errorTemplate:S.InvalidModifierOnTypeParameterPositions});let a=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(s,i)&&this.raise(S.StaticBlockCannotHaveModifier,{at:this.state.curPosition()}),this.parseClassStaticBlock(e,s)):this.parseClassMemberWithIsStatic(e,s,r,!!s.static)};s.declare?this.tsInAmbientContext(a):a()}parseClassMemberWithIsStatic(e,s,r,i){let a=this.tsTryParseIndexSignature(s);if(a){e.body.push(a),s.abstract&&this.raise(S.IndexSignatureHasAbstract,{at:s}),s.accessibility&&this.raise(S.IndexSignatureHasAccessibility,{at:s,modifier:s.accessibility}),s.declare&&this.raise(S.IndexSignatureHasDeclare,{at:s}),s.override&&this.raise(S.IndexSignatureHasOverride,{at:s});return}!this.state.inAbstractClass&&s.abstract&&this.raise(S.NonAbstractClassHasAbstractMethod,{at:s}),s.override&&(r.hadSuperClass||this.raise(S.OverrideNotInSubClass,{at:s})),super.parseClassMemberWithIsStatic(e,s,r,i)}parsePostMemberNameModifiers(e){this.eat(17)&&(e.optional=!0),e.readonly&&this.match(10)&&this.raise(S.ClassMethodHasReadonly,{at:e}),e.declare&&this.match(10)&&this.raise(S.ClassMethodHasDeclare,{at:e})}parseExpressionStatement(e,s){return(s.type===\"Identifier\"?this.tsParseExpressionStatement(e,s):void 0)||super.parseExpressionStatement(e,s)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(e,s,r,i){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(e,s,r,i);let a=this.tryParse(()=>super.parseConditional(e,s,r));return a.node?(a.error&&(this.state=a.failState),a.node):(a.error&&super.setOptionalParametersError(i,a.error),e)}parseParenItem(e,s,r){if(e=super.parseParenItem(e,s,r),this.eat(17)&&(e.optional=!0,this.resetEndLocation(e)),this.match(14)){let i=this.startNodeAt(s,r);return i.expression=e,i.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(i,\"TSTypeCastExpression\")}return e}parseExportDeclaration(e){if(!this.state.isAmbientContext&&this.isContextual(121))return this.tsInAmbientContext(()=>this.parseExportDeclaration(e));let s=this.state.start,r=this.state.startLoc,i=this.eatContextual(121);if(i&&(this.isContextual(121)||!this.shouldParseExportDeclaration()))throw this.raise(S.ExpectedAmbientAfterExportDeclare,{at:this.state.startLoc});let n=K(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(e);return n?((n.type===\"TSInterfaceDeclaration\"||n.type===\"TSTypeAliasDeclaration\"||i)&&(e.exportKind=\"type\"),i&&(this.resetStartLocation(n,s,r),n.declare=!0),n):null}parseClassId(e,s,r){if((!s||r)&&this.isContextual(110))return;super.parseClassId(e,s,r,e.declare?Cr:Pr);let i=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this));i&&(e.typeParameters=i)}parseClassPropertyAnnotation(e){!e.optional&&this.eat(35)&&(e.definite=!0);let s=this.tsTryParseTypeAnnotation();s&&(e.typeAnnotation=s)}parseClassProperty(e){if(this.parseClassPropertyAnnotation(e),this.state.isAmbientContext&&this.match(29)&&this.raise(S.DeclareClassFieldHasInitializer,{at:this.state.startLoc}),e.abstract&&this.match(29)){let{key:s}=e;this.raise(S.AbstractPropertyHasInitializer,{at:this.state.startLoc,propertyName:s.type===\"Identifier\"&&!e.computed?s.name:\"[\".concat(this.input.slice(s.start,s.end),\"]\")})}return super.parseClassProperty(e)}parseClassPrivateProperty(e){return e.abstract&&this.raise(S.PrivateElementHasAbstract,{at:e}),e.accessibility&&this.raise(S.PrivateElementHasAccessibility,{at:e,modifier:e.accessibility}),this.parseClassPropertyAnnotation(e),super.parseClassPrivateProperty(e)}pushClassMethod(e,s,r,i,a,n){let o=this.tsTryParseTypeParameters();o&&a&&this.raise(S.ConstructorHasTypeParameters,{at:o});let{declare:c=!1,kind:f}=s;c&&(f===\"get\"||f===\"set\")&&this.raise(S.DeclareAccessor,{at:s,kind:f}),o&&(s.typeParameters=o),super.pushClassMethod(e,s,r,i,a,n)}pushClassPrivateMethod(e,s,r,i){let a=this.tsTryParseTypeParameters();a&&(s.typeParameters=a),super.pushClassPrivateMethod(e,s,r,i)}declareClassPrivateMethodInScope(e,s){e.type!==\"TSDeclareMethod\"&&(e.type===\"MethodDefinition\"&&!e.value.body||super.declareClassPrivateMethodInScope(e,s))}parseClassSuper(e){super.parseClassSuper(e),e.superClass&&(this.match(47)||this.match(51))&&(e.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(110)&&(e.implements=this.tsParseHeritageClause(\"implements\"))}parseObjPropValue(e){let s=this.tsTryParseTypeParameters();s&&(e.typeParameters=s);for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;asuper.parseMaybeAssign(...s),P),!v.error)return v.node;let{context:Q}=this.state,re=Q[Q.length-1];(re===z.j_oTag||re===z.j_expr)&&Q.pop()}if(!((i=v)!=null&&i.error)&&!this.match(47))return super.parseMaybeAssign(...s);let B;P=P||this.state.clone();let _=this.tryParse(Q=>{var re,ne,$e;B=this.tsParseTypeParameters();let le=super.parseMaybeAssign(...s);return(le.type!==\"ArrowFunctionExpression\"||(re=le.extra)!=null&&re.parenthesized)&&Q(),((ne=B)==null?void 0:ne.params.length)!==0&&this.resetStartLocationFromNode(le,B),le.typeParameters=B,this.hasPlugin(\"jsx\")&&le.typeParameters.params.length===1&&!(($e=le.typeParameters.extra)!=null&&$e.trailingComma)&&le.typeParameters.params[0].constraint,le},P);if(!_.error&&!_.aborted)return B&&this.reportReservedArrowTypeParam(B),_.node;if(!v&&(Br(!this.hasPlugin(\"jsx\")),N=this.tryParse(()=>super.parseMaybeAssign(...s),P),!N.error))return N.node;if((a=v)!=null&&a.node)return this.state=v.failState,v.node;if(_.node)return this.state=_.failState,B&&this.reportReservedArrowTypeParam(B),_.node;if((n=N)!=null&&n.node)return this.state=N.failState,N.node;throw(o=v)!=null&&o.thrown?v.error:_.thrown?_.error:(c=N)!=null&&c.thrown?N.error:((f=v)==null?void 0:f.error)||_.error||((y=N)==null?void 0:y.error)}reportReservedArrowTypeParam(e){var s;e.params.length===1&&!((s=e.extra)!=null&&s.trailingComma)&&this.getPluginOption(\"typescript\",\"disallowAmbiguousJSXLike\")&&this.raise(S.ReservedArrowTypeParam,{at:e})}parseMaybeUnary(e){return!this.hasPlugin(\"jsx\")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(e)}parseArrow(e){if(this.match(14)){let s=this.tryParse(r=>{let i=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&r(),i});if(s.aborted)return;s.thrown||(s.error&&(this.state=s.failState),e.returnType=s.node)}return super.parseArrow(e)}parseAssignableListItemTypes(e){this.eat(17)&&(e.type!==\"Identifier\"&&!this.state.isAmbientContext&&!this.state.inType&&this.raise(S.PatternIsOptional,{at:e}),e.optional=!0);let s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s),this.resetEndLocation(e),e}isAssignable(e,s){switch(e.type){case\"TSTypeCastExpression\":return this.isAssignable(e.expression,s);case\"TSParameterProperty\":return!0;default:return super.isAssignable(e,s)}}toAssignable(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;switch(e.type){case\"ParenthesizedExpression\":this.toAssignableParenthesizedExpression(e,s);break;case\"TSAsExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":s?this.expressionScope.recordArrowParemeterBindingError(S.UnexpectedTypeCastInParameter,{at:e}):this.raise(S.UnexpectedTypeCastInParameter,{at:e}),this.toAssignable(e.expression,s);break;case\"AssignmentExpression\":!s&&e.left.type===\"TSTypeCastExpression\"&&(e.left=this.typeCastToParameter(e.left));default:super.toAssignable(e,s)}}toAssignableParenthesizedExpression(e,s){switch(e.expression.type){case\"TSAsExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":case\"ParenthesizedExpression\":this.toAssignable(e.expression,s);break;default:super.toAssignable(e,s)}}checkToRestConversion(e,s){switch(e.type){case\"TSAsExpression\":case\"TSTypeAssertion\":case\"TSNonNullExpression\":this.checkToRestConversion(e.expression,!1);break;default:super.checkToRestConversion(e,s)}}isValidLVal(e,s,r){return Mh({TSTypeCastExpression:!0,TSParameterProperty:\"parameter\",TSNonNullExpression:\"expression\",TSAsExpression:(r!==we||!s)&&[\"expression\",!0],TSTypeAssertion:(r!==we||!s)&&[\"expression\",!0]},e)||super.isValidLVal(e,s,r)}parseBindingAtom(){switch(this.state.type){case 78:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseMaybeDecoratorArguments(e){if(this.match(47)||this.match(51)){let s=this.tsParseTypeArgumentsInExpression();if(this.match(10)){let r=super.parseMaybeDecoratorArguments(e);return r.typeParameters=s,r}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(e)}checkCommaAfterRest(e){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===e?(this.next(),!1):super.checkCommaAfterRest(e)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(){let e=super.parseMaybeDefault(...arguments);return e.type===\"AssignmentPattern\"&&e.typeAnnotation&&e.right.startthis.isAssignable(s,!0)):super.shouldParseArrow(e)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(e){if(this.match(47)||this.match(51)){let s=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());s&&(e.typeParameters=s)}return super.jsxParseOpeningElementAfterName(e)}getGetterSetterExpectedParamCount(e){let s=super.getGetterSetterExpectedParamCount(e),i=this.getObjectOrClassMethodParams(e)[0];return i&&this.isThisParam(i)?s+1:s}parseCatchClauseParam(){let e=super.parseCatchClauseParam(),s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s,this.resetEndLocation(e)),e}tsInAmbientContext(e){let s=this.state.isAmbientContext;this.state.isAmbientContext=!0;try{return e()}finally{this.state.isAmbientContext=s}}parseClass(e){let s=this.state.inAbstractClass;this.state.inAbstractClass=!!e.abstract;try{for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a0)?!1:Rr(t.object)}function Rr(t){return t.type===\"Identifier\"?!0:t.type!==\"MemberExpression\"||t.computed?!1:Rr(t.object)}var jr=j(Hn||(Hn=rt([\"placeholders\"])))(t=>({ClassNameIsRequired:t(\"A class name is required.\"),UnexpectedSpace:t(\"Unexpected space in placeholder.\")})),Kh=t=>class extends t{parsePlaceholder(e){if(this.match(140)){let s=this.startNode();return this.next(),this.assertNoSpace(),s.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(140),this.finishPlaceholder(s,e)}}finishPlaceholder(e,s){let r=!!(e.expectedNode&&e.type===\"Placeholder\");return e.expectedNode=s,r?e:this.finishNode(e,\"Placeholder\")}getTokenFromCode(e){return e===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(140,2):super.getTokenFromCode(...arguments)}parseExprAtom(){return this.parsePlaceholder(\"Expression\")||super.parseExprAtom(...arguments)}parseIdentifier(){return this.parsePlaceholder(\"Identifier\")||super.parseIdentifier(...arguments)}checkReservedWord(e){e!==void 0&&super.checkReservedWord(...arguments)}parseBindingAtom(){return this.parsePlaceholder(\"Pattern\")||super.parseBindingAtom(...arguments)}isValidLVal(e){for(var s=arguments.length,r=new Array(s>1?s-1:0),i=1;i0?!0:super.maybeParseExportDefaultSpecifier(...arguments)}checkExport(e){let{specifiers:s}=e;s!=null&&s.length&&(e.specifiers=s.filter(r=>r.exported.type===\"Placeholder\")),super.checkExport(e),e.specifiers=s}parseImport(e){let s=this.parsePlaceholder(\"Identifier\");if(!s)return super.parseImport(...arguments);if(e.specifiers=[],!this.isContextual(97)&&!this.match(12))return e.source=this.finishPlaceholder(s,\"StringLiteral\"),this.semicolon(),this.finishNode(e,\"ImportDeclaration\");let r=this.startNodeAtNode(s);return r.local=s,this.finishNode(r,\"ImportDefaultSpecifier\"),e.specifiers.push(r),this.eat(12)&&(this.maybeParseStarImportSpecifier(e)||this.parseNamedImportSpecifiers(e)),this.expectContextual(97),e.source=this.parseImportSource(),this.semicolon(),this.finishNode(e,\"ImportDeclaration\")}parseImportSource(){return this.parsePlaceholder(\"StringLiteral\")||super.parseImportSource(...arguments)}assertNoSpace(){this.state.start>this.state.lastTokEndLoc.index&&this.raise(jr.UnexpectedSpace,{at:this.state.lastTokEndLoc})}},Vh=t=>class extends t{parseV8Intrinsic(){if(this.match(54)){let e=this.state.startLoc,s=this.startNode();if(this.next(),K(this.state.type)){let r=this.parseIdentifierName(this.state.start),i=this.createIdentifier(s,r);if(i.type=\"V8IntrinsicIdentifier\",this.match(10))return i}this.unexpected(e)}}parseExprAtom(){return this.parseV8Intrinsic()||super.parseExprAtom(...arguments)}};function ee(t,e){let[s,r]=typeof e==\"string\"?[e,{}]:e,i=Object.keys(r),a=i.length===0;return t.some(n=>{if(typeof n==\"string\")return a&&n===s;{let[o,c]=n;if(o!==s)return!1;for(let f of i)if(c[f]!==r[f])return!1;return!0}})}function Je(t,e,s){let r=t.find(i=>Array.isArray(i)?i[0]===e:i===e);return r&&Array.isArray(r)?r[1][s]:null}var qr=[\"minimal\",\"fsharp\",\"hack\",\"smart\"],Ur=[\"^^\",\"@@\",\"^\",\"%\",\"#\"],_r=[\"hash\",\"bar\"];function Hh(t){if(ee(t,\"decorators\")){if(ee(t,\"decorators-legacy\"))throw new Error(\"Cannot use the decorators and decorators-legacy plugin together\");let e=Je(t,\"decorators\",\"decoratorsBeforeExport\");if(e==null)throw new Error(\"The 'decorators' plugin requires a 'decoratorsBeforeExport' option, whose value must be a boolean. If you are migrating from Babylon/Babel 6 or want to use the old decorators proposal, you should use the 'decorators-legacy' plugin instead of 'decorators'.\");if(typeof e!=\"boolean\")throw new Error(\"'decoratorsBeforeExport' must be a boolean.\")}if(ee(t,\"flow\")&&ee(t,\"typescript\"))throw new Error(\"Cannot combine flow and typescript plugins.\");if(ee(t,\"placeholders\")&&ee(t,\"v8intrinsic\"))throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");if(ee(t,\"pipelineOperator\")){let e=Je(t,\"pipelineOperator\",\"proposal\");if(!qr.includes(e)){let r=qr.map(i=>'\"'.concat(i,'\"')).join(\", \");throw new Error('\"pipelineOperator\" requires \"proposal\" option whose value must be one of: '.concat(r,\".\"))}let s=ee(t,[\"recordAndTuple\",{syntaxType:\"hash\"}]);if(e===\"hack\"){if(ee(t,\"placeholders\"))throw new Error(\"Cannot combine placeholders plugin and Hack-style pipes.\");if(ee(t,\"v8intrinsic\"))throw new Error(\"Cannot combine v8intrinsic plugin and Hack-style pipes.\");let r=Je(t,\"pipelineOperator\",\"topicToken\");if(!Ur.includes(r)){let i=Ur.map(a=>'\"'.concat(a,'\"')).join(\", \");throw new Error('\"pipelineOperator\" in \"proposal\": \"hack\" mode also requires a \"topicToken\" option whose value must be one of: '.concat(i,\".\"))}if(r===\"#\"&&s)throw new Error('Plugin conflict between `[\"pipelineOperator\", { proposal: \"hack\", topicToken: \"#\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.')}else if(e===\"smart\"&&s)throw new Error('Plugin conflict between `[\"pipelineOperator\", { proposal: \"smart\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.')}if(ee(t,\"moduleAttributes\")){if(ee(t,\"importAssertions\"))throw new Error(\"Cannot combine importAssertions and moduleAttributes plugins.\");if(Je(t,\"moduleAttributes\",\"version\")!==\"may-2020\")throw new Error(\"The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.\")}if(ee(t,\"recordAndTuple\")&&!_r.includes(Je(t,\"recordAndTuple\",\"syntaxType\")))throw new Error(\"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \"+_r.map(e=>\"'\".concat(e,\"'\")).join(\", \"));if(ee(t,\"asyncDoExpressions\")&&!ee(t,\"doExpressions\")){let e=new Error(\"'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.\");throw e.missingPlugins=\"doExpressions\",e}}var zr={estree:Oe,jsx:Lh,flow:Dh,typescript:_h,v8intrinsic:Vh,placeholders:Kh},Wh=Object.keys(zr),Kr={sourceType:\"script\",sourceFilename:void 0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0};function Gh(t){let e={};for(let s of Object.keys(Kr))e[s]=t&&t[s]!=null?t[s]:Kr[s];return e}var Xh=(t,e)=>Object.hasOwnProperty.call(t,e)&&t[e],Vr=t=>t.type===\"ParenthesizedExpression\"?Vr(t.expression):t,Jh=class extends vh{toAssignable(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;var s,r;let i;switch((t.type===\"ParenthesizedExpression\"||(s=t.extra)!=null&&s.parenthesized)&&(i=Vr(t),e?i.type===\"Identifier\"?this.expressionScope.recordArrowParemeterBindingError(u.InvalidParenthesizedAssignment,{at:t}):i.type!==\"MemberExpression\"&&this.raise(u.InvalidParenthesizedAssignment,{at:t}):this.raise(u.InvalidParenthesizedAssignment,{at:t})),t.type){case\"Identifier\":case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":break;case\"ObjectExpression\":t.type=\"ObjectPattern\";for(let n=0,o=t.properties.length,c=o-1;nr.type!==\"ObjectMethod\"&&(i===s||r.type!==\"SpreadElement\")&&this.isAssignable(r))}case\"ObjectProperty\":return this.isAssignable(t.value);case\"SpreadElement\":return this.isAssignable(t.argument);case\"ArrayExpression\":return t.elements.every(s=>s===null||this.isAssignable(s));case\"AssignmentExpression\":return t.operator===\"=\";case\"ParenthesizedExpression\":return this.isAssignable(t.expression);case\"MemberExpression\":case\"OptionalMemberExpression\":return!e;default:return!1}}toReferencedList(t,e){return t}toReferencedListDeep(t,e){this.toReferencedList(t,e);for(let s of t)(s==null?void 0:s.type)===\"ArrayExpression\"&&this.toReferencedListDeep(s.elements)}parseSpread(t,e){let s=this.startNode();return this.next(),s.argument=this.parseMaybeAssignAllowIn(t,void 0,e),this.finishNode(s,\"SpreadElement\")}parseRestBinding(){let t=this.startNode();return this.next(),t.argument=this.parseBindingAtom(),this.finishNode(t,\"RestElement\")}parseBindingAtom(){switch(this.state.type){case 0:{let t=this.startNode();return this.next(),t.elements=this.parseBindingList(3,93,!0),this.finishNode(t,\"ArrayPattern\")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);)if(a?a=!1:this.expect(12),s&&this.match(12))i.push(null);else{if(this.eat(t))break;if(this.match(21)){if(i.push(this.parseAssignableListItemTypes(this.parseRestBinding())),!this.checkCommaAfterRest(e)){this.expect(t);break}}else{let n=[];for(this.match(26)&&this.hasPlugin(\"decorators\")&&this.raise(u.UnsupportedParameterDecorator,{at:this.state.startLoc});this.match(26);)n.push(this.parseDecorator());i.push(this.parseAssignableListItem(r,n))}}return i}parseBindingRestProperty(t){return this.next(),t.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(t,\"RestElement\")}parseBindingProperty(){let t=this.startNode(),{type:e,start:s,startLoc:r}=this.state;return e===21?this.parseBindingRestProperty(t):(e===134?(this.expectPlugin(\"destructuringPrivate\",r),this.classScope.usePrivateName(this.state.value,r),t.key=this.parsePrivateName()):this.parsePropertyName(t),t.method=!1,this.parseObjPropValue(t,s,r,!1,!1,!0,!1),t)}parseAssignableListItem(t,e){let s=this.parseMaybeDefault();this.parseAssignableListItemTypes(s);let r=this.parseMaybeDefault(s.start,s.loc.start,s);return e.length&&(s.decorators=e),r}parseAssignableListItemTypes(t){return t}parseMaybeDefault(t,e,s){var r,i,a;if(e=(r=e)!=null?r:this.state.startLoc,t=(i=t)!=null?i:this.state.start,s=(a=s)!=null?a:this.parseBindingAtom(),!this.eat(29))return s;let n=this.startNodeAt(t,e);return n.left=s,n.right=this.parseMaybeAssignAllowIn(),this.finishNode(n,\"AssignmentPattern\")}isValidLVal(t,e,s){return Xh({AssignmentPattern:\"left\",RestElement:\"argument\",ObjectProperty:\"value\",ParenthesizedExpression:\"expression\",ArrayPattern:\"elements\",ObjectPattern:\"properties\"},t)}checkLVal(t,e){let{in:s,binding:r=we,checkClashes:i=!1,strictModeChanged:a=!1,allowingSloppyLetBinding:n=!(r&Te),hasParenthesizedAncestor:o=!1}=e;var c;let f=t.type;if(this.isObjectMethod(t))return;if(f===\"MemberExpression\"){r!==we&&this.raise(u.InvalidPropertyBindingPattern,{at:t});return}if(t.type===\"Identifier\"){this.checkIdentifier(t,r,a,n);let{name:B}=t;i&&(i.has(B)?this.raise(u.ParamDupe,{at:t}):i.add(B));return}let y=this.isValidLVal(t.type,!(o||(c=t.extra)!=null&&c.parenthesized)&&s.type===\"AssignmentExpression\",r);if(y===!0)return;if(y===!1){let B=r===we?u.InvalidLhs:u.InvalidLhsBinding;this.raise(B,{at:t,ancestor:s.type===\"UpdateExpression\"?{type:\"UpdateExpression\",prefix:s.prefix}:{type:s.type}});return}let[P,v]=Array.isArray(y)?y:[y,f===\"ParenthesizedExpression\"],N=t.type===\"ArrayPattern\"||t.type===\"ObjectPattern\"||t.type===\"ParenthesizedExpression\"?t:s;for(let B of[].concat(t[P]))B&&this.checkLVal(B,{in:N,binding:r,checkClashes:i,allowingSloppyLetBinding:n,strictModeChanged:a,hasParenthesizedAncestor:v})}checkIdentifier(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!(e&Te);this.state.strict&&(s?mr(t.name,this.inModule):dr(t.name))&&(e===we?this.raise(u.StrictEvalArguments,{at:t,referenceName:t.name}):this.raise(u.StrictEvalArgumentsBinding,{at:t,bindingName:t.name})),!r&&t.name===\"let\"&&this.raise(u.LetInLexicalBinding,{at:t}),e&we||this.declareNameFromIdentifier(t,e)}declareNameFromIdentifier(t,e){this.scope.declareName(t.name,e,t.loc.start)}checkToRestConversion(t,e){switch(t.type){case\"ParenthesizedExpression\":this.checkToRestConversion(t.expression,e);break;case\"Identifier\":case\"MemberExpression\":break;case\"ArrayExpression\":case\"ObjectExpression\":if(e)break;default:this.raise(u.InvalidRestAssignmentPattern,{at:t})}}checkCommaAfterRest(t){return this.match(12)?(this.raise(this.lookaheadCharCode()===t?u.RestTrailingComma:u.ElementAfterRest,{at:this.state.startLoc}),!0):!1}},Yh=class extends Jh{checkProto(t,e,s,r){if(t.type===\"SpreadElement\"||this.isObjectMethod(t)||t.computed||t.shorthand)return;let i=t.key;if((i.type===\"Identifier\"?i.name:i.value)===\"__proto__\"){if(e){this.raise(u.RecordNoProto,{at:i});return}s.used&&(r?r.doubleProtoLoc===null&&(r.doubleProtoLoc=i.loc.start):this.raise(u.DuplicateProto,{at:i})),s.used=!0}}shouldExitDescending(t,e){return t.type===\"ArrowFunctionExpression\"&&t.start===e}getExpression(){this.enterInitialScopes(),this.nextToken();let t=this.parseExpression();return this.match(135)||this.unexpected(),this.finalizeRemainingComments(),t.comments=this.state.comments,t.errors=this.state.errors,this.options.tokens&&(t.tokens=this.tokens),t}parseExpression(t,e){return t?this.disallowInAnd(()=>this.parseExpressionBase(e)):this.allowInAnd(()=>this.parseExpressionBase(e))}parseExpressionBase(t){let e=this.state.start,s=this.state.startLoc,r=this.parseMaybeAssign(t);if(this.match(12)){let i=this.startNodeAt(e,s);for(i.expressions=[r];this.eat(12);)i.expressions.push(this.parseMaybeAssign(t));return this.toReferencedList(i.expressions),this.finishNode(i,\"SequenceExpression\")}return r}parseMaybeAssignDisallowIn(t,e){return this.disallowInAnd(()=>this.parseMaybeAssign(t,e))}parseMaybeAssignAllowIn(t,e){return this.allowInAnd(()=>this.parseMaybeAssign(t,e))}setOptionalParametersError(t,e){var s;t.optionalParametersLoc=(s=e==null?void 0:e.loc)!=null?s:this.state.startLoc}parseMaybeAssign(t,e){let s=this.state.start,r=this.state.startLoc;if(this.isContextual(105)&&this.prodParam.hasYield){let o=this.parseYield();return e&&(o=e.call(this,o,s,r)),o}let i;t?i=!1:(t=new At,i=!0);let{type:a}=this.state;(a===10||K(a))&&(this.state.potentialArrowAt=this.state.start);let n=this.parseMaybeConditional(t);if(e&&(n=e.call(this,n,s,r)),wo(this.state.type)){let o=this.startNodeAt(s,r),c=this.state.value;return o.operator=c,this.match(29)?(this.toAssignable(n,!0),o.left=n,t.doubleProtoLoc!=null&&t.doubleProtoLoc.index>=s&&(t.doubleProtoLoc=null),t.shorthandAssignLoc!=null&&t.shorthandAssignLoc.index>=s&&(t.shorthandAssignLoc=null),t.privateKeyLoc!=null&&t.privateKeyLoc.index>=s&&(this.checkDestructuringPrivate(t),t.privateKeyLoc=null)):o.left=n,this.next(),o.right=this.parseMaybeAssign(),this.checkLVal(n,{in:this.finishNode(o,\"AssignmentExpression\")}),o}else i&&this.checkExpressionErrors(t,!0);return n}parseMaybeConditional(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprOps(t);return this.shouldExitDescending(i,r)?i:this.parseConditional(i,e,s,t)}parseConditional(t,e,s,r){if(this.eat(17)){let i=this.startNodeAt(e,s);return i.test=t,i.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),i.alternate=this.parseMaybeAssign(),this.finishNode(i,\"ConditionalExpression\")}return t}parseMaybeUnaryOrPrivate(t){return this.match(134)?this.parsePrivateName():this.parseMaybeUnary(t)}parseExprOps(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseMaybeUnaryOrPrivate(t);return this.shouldExitDescending(i,r)?i:this.parseExprOp(i,e,s,-1)}parseExprOp(t,e,s,r){if(this.isPrivateName(t)){let a=this.getPrivateNameSV(t);(r>=at(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(u.PrivateInExpectedIn,{at:t,identifierName:a}),this.classScope.usePrivateName(a,t.loc.start)}let i=this.state.type;if(Io(i)&&(this.prodParam.hasIn||!this.match(58))){let a=at(i);if(a>r){if(i===39){if(this.expectPlugin(\"pipelineOperator\"),this.state.inFSharpPipelineDirectBody)return t;this.checkPipelineAtInfixOperator(t,s)}let n=this.startNodeAt(e,s);n.left=t,n.operator=this.state.value;let o=i===41||i===42,c=i===40;if(c&&(a=at(42)),this.next(),i===39&&this.hasPlugin([\"pipelineOperator\",{proposal:\"minimal\"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(u.UnexpectedAwaitAfterPipelineBody,{at:this.state.startLoc});n.right=this.parseExprOpRightExpr(i,a),this.finishNode(n,o||c?\"LogicalExpression\":\"BinaryExpression\");let f=this.state.type;if(c&&(f===41||f===42)||o&&f===40)throw this.raise(u.MixingCoalesceWithLogical,{at:this.state.startLoc});return this.parseExprOp(n,e,s,r)}}return t}parseExprOpRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;switch(t){case 39:switch(this.getPluginOption(\"pipelineOperator\",\"proposal\")){case\"hack\":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case\"smart\":return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(105))throw this.raise(u.PipeBodyIsTighter,{at:this.state.startLoc});return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(t,e),s,r)});case\"fsharp\":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(e))}default:return this.parseExprOpBaseRightExpr(t,e)}}parseExprOpBaseRightExpr(t,e){let s=this.state.start,r=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),s,r,Bo(t)?e-1:e)}parseHackPipeBody(){var t;let{startLoc:e}=this.state,s=this.parseMaybeAssign();return R.has(s.type)&&!((t=s.extra)!=null&&t.parenthesized)&&this.raise(u.PipeUnparenthesizedBody,{at:e,type:s.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(u.PipeTopicUnused,{at:e}),s}checkExponentialAfterUnary(t){this.match(57)&&this.raise(u.UnexpectedTokenUnaryExponentiation,{at:t.argument})}parseMaybeUnary(t,e){let s=this.state.start,r=this.state.startLoc,i=this.isContextual(96);if(i&&this.isAwaitAllowed()){this.next();let c=this.parseAwait(s,r);return e||this.checkExponentialAfterUnary(c),c}let a=this.match(34),n=this.startNode();if(Do(this.state.type)){n.operator=this.state.value,n.prefix=!0,this.match(72)&&this.expectPlugin(\"throwExpressions\");let c=this.match(89);if(this.next(),n.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),this.state.strict&&c){let f=n.argument;f.type===\"Identifier\"?this.raise(u.StrictDelete,{at:n}):this.hasPropertyAsPrivateName(f)&&this.raise(u.DeletePrivateField,{at:n})}if(!a)return e||this.checkExponentialAfterUnary(n),this.finishNode(n,\"UnaryExpression\")}let o=this.parseUpdate(n,a,t);if(i){let{type:c}=this.state;if((this.hasPlugin(\"v8intrinsic\")?Vt(c):Vt(c)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(u.AwaitNotInAsyncContext,{at:r}),this.parseAwait(s,r)}return o}parseUpdate(t,e,s){if(e)return this.checkLVal(t.argument,{in:this.finishNode(t,\"UpdateExpression\")}),t;let r=this.state.start,i=this.state.startLoc,a=this.parseExprSubscripts(s);if(this.checkExpressionErrors(s,!1))return a;for(;ko(this.state.type)&&!this.canInsertSemicolon();){let n=this.startNodeAt(r,i);n.operator=this.state.value,n.prefix=!1,n.argument=a,this.next(),this.checkLVal(a,{in:a=this.finishNode(n,\"UpdateExpression\")})}return a}parseExprSubscripts(t){let e=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprAtom(t);return this.shouldExitDescending(i,r)?i:this.parseSubscripts(i,e,s)}parseSubscripts(t,e,s,r){let i={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(t),stop:!1};do t=this.parseSubscript(t,e,s,r,i),i.maybeAsyncArrow=!1;while(!i.stop);return t}parseSubscript(t,e,s,r,i){let{type:a}=this.state;if(!r&&a===15)return this.parseBind(t,e,s,r,i);if(nt(a))return this.parseTaggedTemplateExpression(t,e,s,i);let n=!1;if(a===18){if(r&&this.lookaheadCharCode()===40)return i.stop=!0,t;i.optionalChainMember=n=!0,this.next()}if(!r&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(t,e,s,i,n);{let o=this.eat(0);return o||n||this.eat(16)?this.parseMember(t,e,s,i,o,n):(i.stop=!0,t)}}parseMember(t,e,s,r,i,a){let n=this.startNodeAt(e,s);return n.object=t,n.computed=i,i?(n.property=this.parseExpression(),this.expect(3)):this.match(134)?(t.type===\"Super\"&&this.raise(u.SuperPrivateField,{at:s}),this.classScope.usePrivateName(this.state.value,this.state.startLoc),n.property=this.parsePrivateName()):n.property=this.parseIdentifier(!0),r.optionalChainMember?(n.optional=a,this.finishNode(n,\"OptionalMemberExpression\")):this.finishNode(n,\"MemberExpression\")}parseBind(t,e,s,r,i){let a=this.startNodeAt(e,s);return a.object=t,this.next(),a.callee=this.parseNoCallExpr(),i.stop=!0,this.parseSubscripts(this.finishNode(a,\"BindExpression\"),e,s,r)}parseCoverCallAndAsyncArrowHead(t,e,s,r,i){let a=this.state.maybeInArrowParameters,n=null;this.state.maybeInArrowParameters=!0,this.next();let o=this.startNodeAt(e,s);o.callee=t;let{maybeAsyncArrow:c,optionalChainMember:f}=r;return c&&(this.expressionScope.enter(Ph()),n=new At),f&&(o.optional=i),i?o.arguments=this.parseCallExpressionArguments(11):o.arguments=this.parseCallExpressionArguments(11,t.type===\"Import\",t.type!==\"Super\",o,n),this.finishCallExpression(o,f),c&&this.shouldParseAsyncArrow()&&!i?(r.stop=!0,this.checkDestructuringPrivate(n),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),o=this.parseAsyncArrowFromCallExpression(this.startNodeAt(e,s),o)):(c&&(this.checkExpressionErrors(n,!0),this.expressionScope.exit()),this.toReferencedArguments(o)),this.state.maybeInArrowParameters=a,o}toReferencedArguments(t,e){this.toReferencedListDeep(t.arguments,e)}parseTaggedTemplateExpression(t,e,s,r){let i=this.startNodeAt(e,s);return i.tag=t,i.quasi=this.parseTemplate(!0),r.optionalChainMember&&this.raise(u.OptionalChainingNoTemplate,{at:s}),this.finishNode(i,\"TaggedTemplateExpression\")}atPossibleAsyncArrow(t){return t.type===\"Identifier\"&&t.name===\"async\"&&this.state.lastTokEndLoc.index===t.end&&!this.canInsertSemicolon()&&t.end-t.start===5&&t.start===this.state.potentialArrowAt}finishCallExpression(t,e){if(t.callee.type===\"Import\")if(t.arguments.length===2&&(this.hasPlugin(\"moduleAttributes\")||this.expectPlugin(\"importAssertions\")),t.arguments.length===0||t.arguments.length>2)this.raise(u.ImportCallArity,{at:t,maxArgumentCount:this.hasPlugin(\"importAssertions\")||this.hasPlugin(\"moduleAttributes\")?2:1});else for(let s of t.arguments)s.type===\"SpreadElement\"&&this.raise(u.ImportCallSpreadArgument,{at:s});return this.finishNode(t,e?\"OptionalCallExpression\":\"CallExpression\")}parseCallExpressionArguments(t,e,s,r,i){let a=[],n=!0,o=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){e&&!this.hasPlugin(\"importAssertions\")&&!this.hasPlugin(\"moduleAttributes\")&&this.raise(u.ImportCallArgumentTrailingComma,{at:this.state.lastTokStartLoc}),r&&this.addTrailingCommaExtraToNode(r),this.next();break}a.push(this.parseExprListItem(!1,i,s))}return this.state.inFSharpPipelineDirectBody=o,a}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(t,e){var s;return this.resetPreviousNodeTrailingComments(e),this.expect(19),this.parseArrowExpression(t,e.arguments,!0,(s=e.extra)==null?void 0:s.trailingCommaLoc),e.innerComments&&Ge(t,e.innerComments),e.callee.trailingComments&&Ge(t,e.callee.trailingComments),t}parseNoCallExpr(){let t=this.state.start,e=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),t,e,!0)}parseExprAtom(t){let e,{type:s}=this.state;switch(s){case 79:return this.parseSuper();case 83:return e=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(e):(this.match(10)||this.raise(u.UnsupportedImport,{at:this.state.lastTokStartLoc}),this.finishNode(e,\"Import\"));case 78:return e=this.startNode(),this.next(),this.finishNode(e,\"ThisExpression\");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 130:return this.parseNumericLiteral(this.state.value);case 131:return this.parseBigIntLiteral(this.state.value);case 132:return this.parseDecimalLiteral(this.state.value);case 129:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{let r=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(r)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,t);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,t);case 68:return this.parseFunctionOrFunctionSent();case 26:this.parseDecorators();case 80:return e=this.startNode(),this.takeDecorators(e),this.parseClass(e,!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{e=this.startNode(),this.next(),e.object=null;let r=e.callee=this.parseNoCallExpr();if(r.type===\"MemberExpression\")return this.finishNode(e,\"BindExpression\");throw this.raise(u.UnsupportedBind,{at:r})}case 134:return this.raise(u.PrivateInExpectedIn,{at:this.state.startLoc,identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,\"%\");case 32:return this.parseTopicReferenceThenEqualsSign(44,\"^\");case 37:case 38:return this.parseTopicReference(\"hack\");case 44:case 54:case 27:{let r=this.getPluginOption(\"pipelineOperator\",\"proposal\");if(r)return this.parseTopicReference(r);throw this.unexpected()}case 47:{let r=this.input.codePointAt(this.nextTokenStart());if(de(r)||r===62){this.expectOnePlugin([\"jsx\",\"flow\",\"typescript\"]);break}else throw this.unexpected()}default:if(K(s)){if(this.isContextual(123)&&this.lookaheadCharCode()===123&&!this.hasFollowingLineBreak())return this.parseModuleExpression();let r=this.state.potentialArrowAt===this.state.start,i=this.state.containsEsc,a=this.parseIdentifier();if(!i&&a.name===\"async\"&&!this.canInsertSemicolon()){let{type:n}=this.state;if(n===68)return this.resetPreviousNodeTrailingComments(a),this.next(),this.parseFunction(this.startNodeAtNode(a),void 0,!0);if(K(n))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(a)):a;if(n===90)return this.resetPreviousNodeTrailingComments(a),this.parseDo(this.startNodeAtNode(a),!0)}return r&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(a),[a],!1)):a}else throw this.unexpected()}}parseTopicReferenceThenEqualsSign(t,e){let s=this.getPluginOption(\"pipelineOperator\",\"proposal\");if(s)return this.state.type=t,this.state.value=e,this.state.pos--,this.state.end--,this.state.endLoc=m(this.state.endLoc,-1),this.parseTopicReference(s);throw this.unexpected()}parseTopicReference(t){let e=this.startNode(),s=this.state.startLoc,r=this.state.type;return this.next(),this.finishTopicReference(e,s,t,r)}finishTopicReference(t,e,s,r){if(this.testTopicReferenceConfiguration(s,e,r)){let i=s===\"smart\"?\"PipelinePrimaryTopicReference\":\"TopicReference\";return this.topicReferenceIsAllowedInCurrentContext()||this.raise(s===\"smart\"?u.PrimaryTopicNotAllowed:u.PipeTopicUnbound,{at:e}),this.registerTopicReference(),this.finishNode(t,i)}else throw this.raise(u.PipeTopicUnconfiguredToken,{at:e,token:Pe(r)})}testTopicReferenceConfiguration(t,e,s){switch(t){case\"hack\":return this.hasPlugin([\"pipelineOperator\",{topicToken:Pe(s)}]);case\"smart\":return s===27;default:throw this.raise(u.PipeTopicRequiresHackPipes,{at:e})}}parseAsyncArrowUnaryFunction(t){this.prodParam.enter(gt(!0,this.prodParam.hasYield));let e=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(u.LineTerminatorBeforeArrow,{at:this.state.curPosition()}),this.expect(19),this.parseArrowExpression(t,e,!0),t}parseDo(t,e){this.expectPlugin(\"doExpressions\"),e&&this.expectPlugin(\"asyncDoExpressions\"),t.async=e,this.next();let s=this.state.labels;return this.state.labels=[],e?(this.prodParam.enter(xt),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=s,this.finishNode(t,\"DoExpression\")}parseSuper(){let t=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!this.options.allowSuperOutsideMethod?this.raise(u.SuperNotAllowed,{at:t}):!this.scope.allowSuper&&!this.options.allowSuperOutsideMethod&&this.raise(u.UnexpectedSuper,{at:t}),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(u.UnsupportedSuper,{at:t}),this.finishNode(t,\"Super\")}parsePrivateName(){let t=this.startNode(),e=this.startNodeAt(this.state.start+1,new p(this.state.curLine,this.state.start+1-this.state.lineStart,this.state.start+1)),s=this.state.value;return this.next(),t.id=this.createIdentifier(e,s),this.finishNode(t,\"PrivateName\")}parseFunctionOrFunctionSent(){let t=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),\"function\");return this.next(),this.match(102)?this.expectPlugin(\"functionSent\"):this.hasPlugin(\"functionSent\")||this.unexpected(),this.parseMetaProperty(t,e,\"sent\")}return this.parseFunction(t)}parseMetaProperty(t,e,s){t.meta=e;let r=this.state.containsEsc;return t.property=this.parseIdentifier(!0),(t.property.name!==s||r)&&this.raise(u.UnsupportedMetaProperty,{at:t.property,target:e.name,onlyValidPropertyName:s}),this.finishNode(t,\"MetaProperty\")}parseImportMetaProperty(t){let e=this.createIdentifier(this.startNodeAtNode(t),\"import\");return this.next(),this.isContextual(100)&&(this.inModule||this.raise(u.ImportMetaOutsideModule,{at:e}),this.sawUnambiguousESM=!0),this.parseMetaProperty(t,e,\"meta\")}parseLiteralAtNode(t,e,s){return this.addExtra(s,\"rawValue\",t),this.addExtra(s,\"raw\",this.input.slice(s.start,this.state.end)),s.value=t,this.next(),this.finishNode(s,e)}parseLiteral(t,e){let s=this.startNode();return this.parseLiteralAtNode(t,e,s)}parseStringLiteral(t){return this.parseLiteral(t,\"StringLiteral\")}parseNumericLiteral(t){return this.parseLiteral(t,\"NumericLiteral\")}parseBigIntLiteral(t){return this.parseLiteral(t,\"BigIntLiteral\")}parseDecimalLiteral(t){return this.parseLiteral(t,\"DecimalLiteral\")}parseRegExpLiteral(t){let e=this.parseLiteral(t.value,\"RegExpLiteral\");return e.pattern=t.pattern,e.flags=t.flags,e}parseBooleanLiteral(t){let e=this.startNode();return e.value=t,this.next(),this.finishNode(e,\"BooleanLiteral\")}parseNullLiteral(){let t=this.startNode();return this.next(),this.finishNode(t,\"NullLiteral\")}parseParenAndDistinguishExpression(t){let e=this.state.start,s=this.state.startLoc,r;this.next(),this.expressionScope.enter(Ah());let i=this.state.maybeInArrowParameters,a=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;let n=this.state.start,o=this.state.startLoc,c=[],f=new At,y=!0,P,v;for(;!this.match(11);){if(y)y=!1;else if(this.expect(12,f.optionalParametersLoc===null?null:f.optionalParametersLoc),this.match(11)){v=this.state.startLoc;break}if(this.match(21)){let _=this.state.start,Q=this.state.startLoc;if(P=this.state.startLoc,c.push(this.parseParenItem(this.parseRestBinding(),_,Q)),!this.checkCommaAfterRest(41))break}else c.push(this.parseMaybeAssignAllowIn(f,this.parseParenItem))}let N=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=i,this.state.inFSharpPipelineDirectBody=a;let B=this.startNodeAt(e,s);return t&&this.shouldParseArrow(c)&&(B=this.parseArrow(B))?(this.checkDestructuringPrivate(f),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(B,c,!1),B):(this.expressionScope.exit(),c.length||this.unexpected(this.state.lastTokStartLoc),v&&this.unexpected(v),P&&this.unexpected(P),this.checkExpressionErrors(f,!0),this.toReferencedListDeep(c,!0),c.length>1?(r=this.startNodeAt(n,o),r.expressions=c,this.finishNode(r,\"SequenceExpression\"),this.resetEndLocation(r,N)):r=c[0],this.wrapParenthesis(e,s,r))}wrapParenthesis(t,e,s){if(!this.options.createParenthesizedExpressions)return this.addExtra(s,\"parenthesized\",!0),this.addExtra(s,\"parenStart\",t),this.takeSurroundingComments(s,t,this.state.lastTokEndLoc.index),s;let r=this.startNodeAt(t,e);return r.expression=s,this.finishNode(r,\"ParenthesizedExpression\"),r}shouldParseArrow(t){return!this.canInsertSemicolon()}parseArrow(t){if(this.eat(19))return t}parseParenItem(t,e,s){return t}parseNewOrNewTarget(){let t=this.startNode();if(this.next(),this.match(16)){let e=this.createIdentifier(this.startNodeAtNode(t),\"new\");this.next();let s=this.parseMetaProperty(t,e,\"target\");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&this.raise(u.UnexpectedNewTarget,{at:s}),s}return this.parseNew(t)}parseNew(t){if(this.parseNewCallee(t),this.eat(10)){let e=this.parseExprList(11);this.toReferencedList(e),t.arguments=e}else t.arguments=[];return this.finishNode(t,\"NewExpression\")}parseNewCallee(t){t.callee=this.parseNoCallExpr(),t.callee.type===\"Import\"?this.raise(u.ImportCallNotNewExpression,{at:t.callee}):this.isOptionalChain(t.callee)?this.raise(u.OptionalChainingNoNew,{at:this.state.lastTokEndLoc}):this.eat(18)&&this.raise(u.OptionalChainingNoNew,{at:this.state.startLoc})}parseTemplateElement(t){let{start:e,startLoc:s,end:r,value:i}=this.state,a=e+1,n=this.startNodeAt(a,m(s,1));i===null&&(t||this.raise(u.InvalidEscapeSequenceTemplate,{at:m(s,2)}));let o=this.match(24),c=o?-1:-2,f=r+c;return n.value={raw:this.input.slice(a,f).replace(/\\r\\n?/g,`\n`),cooked:i===null?null:i.slice(1,c)},n.tail=o,this.next(),this.finishNode(n,\"TemplateElement\"),this.resetEndLocation(n,m(this.state.lastTokEndLoc,c)),n}parseTemplate(t){let e=this.startNode();e.expressions=[];let s=this.parseTemplateElement(t);for(e.quasis=[s];!s.tail;)e.expressions.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),e.quasis.push(s=this.parseTemplateElement(t));return this.finishNode(e,\"TemplateLiteral\")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(t,e,s,r){s&&this.expectPlugin(\"recordAndTuple\");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=Object.create(null),n=!0,o=this.startNode();for(o.properties=[],this.next();!this.match(t);){if(n)n=!1;else if(this.expect(12),this.match(t)){this.addTrailingCommaExtraToNode(o);break}let f;e?f=this.parseBindingProperty():(f=this.parsePropertyDefinition(r),this.checkProto(f,s,a,r)),s&&!this.isObjectProperty(f)&&f.type!==\"SpreadElement\"&&this.raise(u.InvalidRecordProperty,{at:f}),f.shorthand&&this.addExtra(f,\"shorthand\",!0),o.properties.push(f)}this.next(),this.state.inFSharpPipelineDirectBody=i;let c=\"ObjectExpression\";return e?c=\"ObjectPattern\":s&&(c=\"RecordExpression\"),this.finishNode(o,c)}addTrailingCommaExtraToNode(t){this.addExtra(t,\"trailingComma\",this.state.lastTokStart),this.addExtra(t,\"trailingCommaLoc\",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(t){return!t.computed&&t.key.type===\"Identifier\"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(t){let e=[];if(this.match(26))for(this.hasPlugin(\"decorators\")&&this.raise(u.UnsupportedPropertyDecorator,{at:this.state.startLoc});this.match(26);)e.push(this.parseDecorator());let s=this.startNode(),r=!1,i=!1,a,n;if(this.match(21))return e.length&&this.unexpected(),this.parseSpread();e.length&&(s.decorators=e,e=[]),s.method=!1,t&&(a=this.state.start,n=this.state.startLoc);let o=this.eat(55);this.parsePropertyNamePrefixOperator(s);let c=this.state.containsEsc,f=this.parsePropertyName(s,t);if(!o&&!c&&this.maybeAsyncOrAccessorProp(s)){let y=f.name;y===\"async\"&&!this.hasPrecedingLineBreak()&&(r=!0,this.resetPreviousNodeTrailingComments(f),o=this.eat(55),this.parsePropertyName(s)),(y===\"get\"||y===\"set\")&&(i=!0,this.resetPreviousNodeTrailingComments(f),s.kind=y,this.match(55)&&(o=!0,this.raise(u.AccessorIsGenerator,{at:this.state.curPosition(),kind:y}),this.next()),this.parsePropertyName(s))}return this.parseObjPropValue(s,a,n,o,r,!1,i,t),s}getGetterSetterExpectedParamCount(t){return t.kind===\"get\"?0:1}getObjectOrClassMethodParams(t){return t.params}checkGetterSetterParams(t){var e;let s=this.getGetterSetterExpectedParamCount(t),r=this.getObjectOrClassMethodParams(t);r.length!==s&&this.raise(t.kind===\"get\"?u.BadGetterArity:u.BadSetterArity,{at:t}),t.kind===\"set\"&&((e=r[r.length-1])==null?void 0:e.type)===\"RestElement\"&&this.raise(u.BadSetterRestParameter,{at:t})}parseObjectMethod(t,e,s,r,i){if(i)return this.parseMethod(t,e,!1,!1,!1,\"ObjectMethod\"),this.checkGetterSetterParams(t),t;if(s||e||this.match(10))return r&&this.unexpected(),t.kind=\"method\",t.method=!0,this.parseMethod(t,e,s,!1,!1,\"ObjectMethod\")}parseObjectProperty(t,e,s,r,i){if(t.shorthand=!1,this.eat(14))return t.value=r?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssignAllowIn(i),this.finishNode(t,\"ObjectProperty\");if(!t.computed&&t.key.type===\"Identifier\"){if(this.checkReservedWord(t.key.name,t.key.loc.start,!0,!1),r)t.value=this.parseMaybeDefault(e,s,ge(t.key));else if(this.match(29)){let a=this.state.startLoc;i!=null?i.shorthandAssignLoc===null&&(i.shorthandAssignLoc=a):this.raise(u.InvalidCoverInitializedName,{at:a}),t.value=this.parseMaybeDefault(e,s,ge(t.key))}else t.value=ge(t.key);return t.shorthand=!0,this.finishNode(t,\"ObjectProperty\")}}parseObjPropValue(t,e,s,r,i,a,n,o){let c=this.parseObjectMethod(t,r,i,a,n)||this.parseObjectProperty(t,e,s,a,o);return c||this.unexpected(),c}parsePropertyName(t,e){if(this.eat(0))t.computed=!0,t.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{let{type:s,value:r}=this.state,i;if(pe(s))i=this.parseIdentifier(!0);else switch(s){case 130:i=this.parseNumericLiteral(r);break;case 129:i=this.parseStringLiteral(r);break;case 131:i=this.parseBigIntLiteral(r);break;case 132:i=this.parseDecimalLiteral(r);break;case 134:{let a=this.state.startLoc;e!=null?e.privateKeyLoc===null&&(e.privateKeyLoc=a):this.raise(u.UnexpectedPrivateField,{at:a}),i=this.parsePrivateName();break}default:throw this.unexpected()}t.key=i,s!==134&&(t.computed=!1)}return t.key}initFunction(t,e){t.id=null,t.generator=!1,t.async=!!e}parseMethod(t,e,s,r,i,a){let n=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1;this.initFunction(t,s),t.generator=!!e;let o=r;return this.scope.enter(me|ot|(n?Se:0)|(i?xr:0)),this.prodParam.enter(gt(s,t.generator)),this.parseFunctionParams(t,o),this.parseFunctionBodyAndFinish(t,a,!0),this.prodParam.exit(),this.scope.exit(),t}parseArrayLike(t,e,s,r){s&&this.expectPlugin(\"recordAndTuple\");let i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let a=this.startNode();return this.next(),a.elements=this.parseExprList(t,!s,r,a),this.state.inFSharpPipelineDirectBody=i,this.finishNode(a,s?\"TupleExpression\":\"ArrayExpression\")}parseArrowExpression(t,e,s,r){this.scope.enter(me|Jt);let i=gt(s,!1);!this.match(5)&&this.prodParam.hasIn&&(i|=qe),this.prodParam.enter(i),this.initFunction(t,s);let a=this.state.maybeInArrowParameters;return e&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(t,e,r)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=a,this.finishNode(t,\"ArrowFunctionExpression\")}setArrowFunctionParameters(t,e,s){this.toAssignableList(e,s,!1),t.params=e}parseFunctionBodyAndFinish(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parseFunctionBody(t,!1,s),this.finishNode(t,e)}parseFunctionBody(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&&!this.match(5);if(this.expressionScope.enter(Dr()),r)t.body=this.parseMaybeAssign(),this.checkParams(t,!1,e,!1);else{let i=this.state.strict,a=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|Lr),t.body=this.parseBlock(!0,!1,n=>{let o=!this.isSimpleParamList(t.params);n&&o&&this.raise(u.IllegalLanguageModeDirective,{at:(t.kind===\"method\"||t.kind===\"constructor\")&&!!t.key?t.key.loc.end:t});let c=!i&&this.state.strict;this.checkParams(t,!this.state.strict&&!e&&!s&&!o,e,c),this.state.strict&&t.id&&this.checkIdentifier(t.id,Xo,c)}),this.prodParam.exit(),this.state.labels=a}this.expressionScope.exit()}isSimpleParameter(t){return t.type===\"Identifier\"}isSimpleParamList(t){for(let e=0,s=t.length;e3&&arguments[3]!==void 0?arguments[3]:!0,i=!e&&new Set,a={type:\"FormalParameters\"};for(let n of t.params)this.checkLVal(n,{in:a,binding:pt,checkClashes:i,strictModeChanged:r})}parseExprList(t,e,s,r){let i=[],a=!0;for(;!this.eat(t);){if(a)a=!1;else if(this.expect(12),this.match(t)){r&&this.addTrailingCommaExtraToNode(r),this.next();break}i.push(this.parseExprListItem(e,s))}return i}parseExprListItem(t,e,s){let r;if(this.match(12))t||this.raise(u.UnexpectedToken,{at:this.state.curPosition(),unexpected:\",\"}),r=null;else if(this.match(21)){let i=this.state.start,a=this.state.startLoc;r=this.parseParenItem(this.parseSpread(e),i,a)}else if(this.match(17)){this.expectPlugin(\"partialApplication\"),s||this.raise(u.UnexpectedArgumentPlaceholder,{at:this.state.startLoc});let i=this.startNode();this.next(),r=this.finishNode(i,\"ArgumentPlaceholder\")}else r=this.parseMaybeAssignAllowIn(e,this.parseParenItem);return r}parseIdentifier(t){let e=this.startNode(),s=this.parseIdentifierName(e.start,t);return this.createIdentifier(e,s)}createIdentifier(t,e){return t.name=e,t.loc.identifierName=e,this.finishNode(t,\"Identifier\")}parseIdentifierName(t,e){let s,{startLoc:r,type:i}=this.state;if(pe(i))s=this.state.value;else throw this.unexpected();let a=vo(i);return e?a&&this.replaceToken(128):this.checkReservedWord(s,r,a,!1),this.next(),s}checkReservedWord(t,e,s,r){if(t.length>10||!Ho(t))return;if(t===\"yield\"){if(this.prodParam.hasYield){this.raise(u.YieldBindingIdentifier,{at:e});return}}else if(t===\"await\"){if(this.prodParam.hasAwait){this.raise(u.AwaitBindingIdentifier,{at:e});return}if(this.scope.inStaticBlock){this.raise(u.AwaitBindingIdentifierInStaticBlock,{at:e});return}this.expressionScope.recordAsyncArrowParametersError({at:e})}else if(t===\"arguments\"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(u.ArgumentsInClass,{at:e});return}if(s&&zo(t)){this.raise(u.UnexpectedKeyword,{at:e,keyword:t});return}(this.state.strict?r?mr:fr:pr)(t,this.inModule)&&this.raise(u.UnexpectedReservedWord,{at:e,reservedWord:t})}isAwaitAllowed(){return!!(this.prodParam.hasAwait||this.options.allowAwaitOutsideFunction&&!this.scope.inFunction)}parseAwait(t,e){let s=this.startNodeAt(t,e);return this.expressionScope.recordParameterInitializerError(u.AwaitExpressionFormalParameter,{at:s}),this.eat(55)&&this.raise(u.ObsoleteAwaitStar,{at:s}),!this.scope.inFunction&&!this.options.allowAwaitOutsideFunction&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(s.argument=this.parseMaybeUnary(null,!0)),this.finishNode(s,\"AwaitExpression\")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:t}=this.state;return t===53||t===10||t===0||nt(t)||t===133||t===56||this.hasPlugin(\"v8intrinsic\")&&t===54}parseYield(){let t=this.startNode();this.expressionScope.recordParameterInitializerError(u.YieldInParameter,{at:t}),this.next();let e=!1,s=null;if(!this.hasPrecedingLineBreak())switch(e=this.eat(55),this.state.type){case 13:case 135:case 8:case 11:case 3:case 9:case 14:case 12:if(!e)break;default:s=this.parseMaybeAssign()}return t.delegate=e,t.argument=s,this.finishNode(t,\"YieldExpression\")}checkPipelineAtInfixOperator(t,e){this.hasPlugin([\"pipelineOperator\",{proposal:\"smart\"}])&&t.type===\"SequenceExpression\"&&this.raise(u.PipelineHeadSequenceExpression,{at:e})}parseSmartPipelineBodyInStyle(t,e,s){let r=this.startNodeAt(e,s);return this.isSimpleReference(t)?(r.callee=t,this.finishNode(r,\"PipelineBareFunction\")):(this.checkSmartPipeTopicBodyEarlyErrors(s),r.expression=t,this.finishNode(r,\"PipelineTopicExpression\"))}isSimpleReference(t){switch(t.type){case\"MemberExpression\":return!t.computed&&this.isSimpleReference(t.object);case\"Identifier\":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(t){if(this.match(19))throw this.raise(u.PipelineBodyNoArrow,{at:this.state.startLoc});this.topicReferenceWasUsedInCurrentContext()||this.raise(u.PipelineTopicUnused,{at:t})}withTopicBindingContext(t){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}withSmartMixTopicForbiddingContext(t){if(this.hasPlugin([\"pipelineOperator\",{proposal:\"smart\"}])){let e=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return t()}finally{this.state.topicContext=e}}else return t()}withSoloAwaitPermittingContext(t){let e=this.state.soloAwait;this.state.soloAwait=!0;try{return t()}finally{this.state.soloAwait=e}}allowInAnd(t){let e=this.prodParam.currentFlags();if(qe&~e){this.prodParam.enter(e|qe);try{return t()}finally{this.prodParam.exit()}}return t()}disallowInAnd(t){let e=this.prodParam.currentFlags();if(qe&e){this.prodParam.enter(e&~qe);try{return t()}finally{this.prodParam.exit()}}return t()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(t){let e=this.state.start,s=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let i=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),e,s,t);return this.state.inFSharpPipelineDirectBody=r,i}parseModuleExpression(){this.expectPlugin(\"moduleBlocks\");let t=this.startNode();this.next(),this.eat(5);let e=this.initializeScopes(!0);this.enterInitialScopes();let s=this.startNode();try{t.body=this.parseProgram(s,8,\"module\")}finally{e()}return this.eat(8),this.finishNode(t,\"ModuleExpression\")}parsePropertyNamePrefixOperator(t){}},ps={kind:\"loop\"},$h={kind:\"switch\"},Qh=0,fs=1,Hr=2,Wr=4,Zh=/[\\uD800-\\uDFFF]/u,ds=/in(?:stanceof)?/y;function el(t,e){for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:135,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.options.sourceType;if(t.sourceType=s,t.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(t,!0,!0,e),this.inModule&&!this.options.allowUndeclaredExports&&this.scope.undefinedExports.size>0)for(let[r,i]of Array.from(this.scope.undefinedExports))this.raise(u.ModuleExportUndefined,{at:i,localName:r});return this.finishNode(t,\"Program\")}stmtToDirective(t){let e=t;e.type=\"Directive\",e.value=e.expression,delete e.expression;let s=e.value,r=s.value,i=this.input.slice(s.start,s.end),a=s.value=i.slice(1,-1);return this.addExtra(s,\"raw\",i),this.addExtra(s,\"rawValue\",a),this.addExtra(s,\"expressionValue\",r),s.type=\"DirectiveLiteral\",e}parseInterpreterDirective(){if(!this.match(28))return null;let t=this.startNode();return t.value=this.state.value,this.next(),this.finishNode(t,\"InterpreterDirective\")}isLet(t){return this.isContextual(99)?this.isLetKeyword(t):!1}isLetKeyword(t){let e=this.nextTokenStart(),s=this.codePointAtPos(e);if(s===92||s===91)return!0;if(t)return!1;if(s===123)return!0;if(de(s)){if(ds.lastIndex=e,ds.test(this.input)){let r=this.codePointAtPos(ds.lastIndex);if(!Be(r)&&r!==92)return!1}return!0}return!1}parseStatement(t,e){return this.match(26)&&this.parseDecorators(!0),this.parseStatementContent(t,e)}parseStatementContent(t,e){let s=this.state.type,r=this.startNode(),i;switch(this.isLet(t)&&(s=74,i=\"let\"),s){case 60:return this.parseBreakContinueStatement(r,!0);case 63:return this.parseBreakContinueStatement(r,!1);case 64:return this.parseDebuggerStatement(r);case 90:return this.parseDoStatement(r);case 91:return this.parseForStatement(r);case 68:if(this.lookaheadCharCode()===46)break;return t&&(this.state.strict?this.raise(u.StrictFunction,{at:this.state.startLoc}):t!==\"if\"&&t!==\"label\"&&this.raise(u.SloppyFunction,{at:this.state.startLoc})),this.parseFunctionStatement(r,!1,!t);case 80:return t&&this.unexpected(),this.parseClass(r,!0);case 69:return this.parseIfStatement(r);case 70:return this.parseReturnStatement(r);case 71:return this.parseSwitchStatement(r);case 72:return this.parseThrowStatement(r);case 73:return this.parseTryStatement(r);case 75:case 74:return i=i||this.state.value,t&&i!==\"var\"&&this.raise(u.UnexpectedLexicalDeclaration,{at:this.state.startLoc}),this.parseVarStatement(r,i);case 92:return this.parseWhileStatement(r);case 76:return this.parseWithStatement(r);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(r);case 83:{let o=this.lookaheadCharCode();if(o===40||o===46)break}case 82:{!this.options.allowImportExportEverywhere&&!e&&this.raise(u.UnexpectedImportExport,{at:this.state.startLoc}),this.next();let o;return s===83?(o=this.parseImport(r),o.type===\"ImportDeclaration\"&&(!o.importKind||o.importKind===\"value\")&&(this.sawUnambiguousESM=!0)):(o=this.parseExport(r),(o.type===\"ExportNamedDeclaration\"&&(!o.exportKind||o.exportKind===\"value\")||o.type===\"ExportAllDeclaration\"&&(!o.exportKind||o.exportKind===\"value\")||o.type===\"ExportDefaultDeclaration\")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(r),o}default:if(this.isAsyncFunction())return t&&this.raise(u.AsyncFunctionInSingleStatementContext,{at:this.state.startLoc}),this.next(),this.parseFunctionStatement(r,!0,!t)}let a=this.state.value,n=this.parseExpression();return K(s)&&n.type===\"Identifier\"&&this.eat(14)?this.parseLabeledStatement(r,a,n,t):this.parseExpressionStatement(r,n)}assertModuleNodeAllowed(t){!this.options.allowImportExportEverywhere&&!this.inModule&&this.raise(u.ImportOutsideModule,{at:t})}takeDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];e.length&&(t.decorators=e,this.resetStartLocationFromNode(t,e[0]),this.state.decoratorStack[this.state.decoratorStack.length-1]=[])}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(t){let e=this.state.decoratorStack[this.state.decoratorStack.length-1];for(;this.match(26);){let s=this.parseDecorator();e.push(s)}if(this.match(82))t||this.unexpected(),this.hasPlugin(\"decorators\")&&!this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")&&this.raise(u.DecoratorExportClass,{at:this.state.startLoc});else if(!this.canHaveLeadingDecorator())throw this.raise(u.UnexpectedLeadingDecorator,{at:this.state.startLoc})}parseDecorator(){this.expectOnePlugin([\"decorators-legacy\",\"decorators\"]);let t=this.startNode();if(this.next(),this.hasPlugin(\"decorators\")){this.state.decoratorStack.push([]);let e=this.state.start,s=this.state.startLoc,r;if(this.match(10)){let i=this.state.start,a=this.state.startLoc;this.next(),r=this.parseExpression(),this.expect(11),r=this.wrapParenthesis(i,a,r)}else for(r=this.parseIdentifier(!1);this.eat(16);){let i=this.startNodeAt(e,s);i.object=r,i.property=this.parseIdentifier(!0),i.computed=!1,r=this.finishNode(i,\"MemberExpression\")}t.expression=this.parseMaybeDecoratorArguments(r),this.state.decoratorStack.pop()}else t.expression=this.parseExprSubscripts();return this.finishNode(t,\"Decorator\")}parseMaybeDecoratorArguments(t){if(this.eat(10)){let e=this.startNodeAtNode(t);return e.callee=t,e.arguments=this.parseCallExpressionArguments(11,!1),this.toReferencedList(e.arguments),this.finishNode(e,\"CallExpression\")}return t}parseBreakContinueStatement(t,e){return this.next(),this.isLineTerminator()?t.label=null:(t.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(t,e),this.finishNode(t,e?\"BreakStatement\":\"ContinueStatement\")}verifyBreakContinue(t,e){let s;for(s=0;sthis.parseStatement(\"do\")),this.state.labels.pop(),this.expect(92),t.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(t,\"DoWhileStatement\")}parseForStatement(t){this.next(),this.state.labels.push(ps);let e=null;if(this.isAwaitAllowed()&&this.eatContextual(96)&&(e=this.state.lastTokStartLoc),this.scope.enter(Me),this.expect(10),this.match(13))return e!==null&&this.unexpected(e),this.parseFor(t,null);let s=this.isContextual(99),r=s&&this.isLetKeyword();if(this.match(74)||this.match(75)||r){let c=this.startNode(),f=r?\"let\":this.state.value;return this.next(),this.parseVar(c,!0,f),this.finishNode(c,\"VariableDeclaration\"),(this.match(58)||this.isContextual(101))&&c.declarations.length===1?this.parseForIn(t,c,e):(e!==null&&this.unexpected(e),this.parseFor(t,c))}let i=this.isContextual(95),a=new At,n=this.parseExpression(!0,a),o=this.isContextual(101);if(o&&(s&&this.raise(u.ForOfLet,{at:n}),e===null&&i&&n.type===\"Identifier\"&&this.raise(u.ForOfAsync,{at:n})),o||this.match(58)){this.checkDestructuringPrivate(a),this.toAssignable(n,!0);let c=o?\"ForOfStatement\":\"ForInStatement\";return this.checkLVal(n,{in:{type:c}}),this.parseForIn(t,n,e)}else this.checkExpressionErrors(a,!0);return e!==null&&this.unexpected(e),this.parseFor(t,n)}parseFunctionStatement(t,e,s){return this.next(),this.parseFunction(t,fs|(s?0:Hr),e)}parseIfStatement(t){return this.next(),t.test=this.parseHeaderExpression(),t.consequent=this.parseStatement(\"if\"),t.alternate=this.eat(66)?this.parseStatement(\"if\"):null,this.finishNode(t,\"IfStatement\")}parseReturnStatement(t){return!this.prodParam.hasReturn&&!this.options.allowReturnOutsideFunction&&this.raise(u.IllegalReturn,{at:this.state.startLoc}),this.next(),this.isLineTerminator()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,\"ReturnStatement\")}parseSwitchStatement(t){this.next(),t.discriminant=this.parseHeaderExpression();let e=t.cases=[];this.expect(5),this.state.labels.push($h),this.scope.enter(Me);let s;for(let r;!this.match(8);)if(this.match(61)||this.match(65)){let i=this.match(61);s&&this.finishNode(s,\"SwitchCase\"),e.push(s=this.startNode()),s.consequent=[],this.next(),i?s.test=this.parseExpression():(r&&this.raise(u.MultipleDefaultsInSwitch,{at:this.state.lastTokStartLoc}),r=!0,s.test=null),this.expect(14)}else s?s.consequent.push(this.parseStatement(null)):this.unexpected();return this.scope.exit(),s&&this.finishNode(s,\"SwitchCase\"),this.next(),this.state.labels.pop(),this.finishNode(t,\"SwitchStatement\")}parseThrowStatement(t){return this.next(),this.hasPrecedingLineBreak()&&this.raise(u.NewlineAfterThrow,{at:this.state.lastTokEndLoc}),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,\"ThrowStatement\")}parseCatchClauseParam(){let t=this.parseBindingAtom(),e=t.type===\"Identifier\";return this.scope.enter(e?yr:0),this.checkLVal(t,{in:{type:\"CatchClause\"},binding:xe,allowingSloppyLetBinding:!0}),t}parseTryStatement(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.match(62)){let e=this.startNode();this.next(),this.match(10)?(this.expect(10),e.param=this.parseCatchClauseParam(),this.expect(11)):(e.param=null,this.scope.enter(Me)),e.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),t.handler=this.finishNode(e,\"CatchClause\")}return t.finalizer=this.eat(67)?this.parseBlock():null,!t.handler&&!t.finalizer&&this.raise(u.NoCatchOrFinally,{at:t}),this.finishNode(t,\"TryStatement\")}parseVarStatement(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this.next(),this.parseVar(t,!1,e,s),this.semicolon(),this.finishNode(t,\"VariableDeclaration\")}parseWhileStatement(t){return this.next(),t.test=this.parseHeaderExpression(),this.state.labels.push(ps),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"while\")),this.state.labels.pop(),this.finishNode(t,\"WhileStatement\")}parseWithStatement(t){return this.state.strict&&this.raise(u.StrictWith,{at:this.state.startLoc}),this.next(),t.object=this.parseHeaderExpression(),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"with\")),this.finishNode(t,\"WithStatement\")}parseEmptyStatement(t){return this.next(),this.finishNode(t,\"EmptyStatement\")}parseLabeledStatement(t,e,s,r){for(let a of this.state.labels)a.name===e&&this.raise(u.LabelRedeclaration,{at:s,labelName:e});let i=No(this.state.type)?\"loop\":this.match(71)?\"switch\":null;for(let a=this.state.labels.length-1;a>=0;a--){let n=this.state.labels[a];if(n.statementStart===t.start)n.statementStart=this.state.start,n.kind=i;else break}return this.state.labels.push({name:e,kind:i,statementStart:this.state.start}),t.body=this.parseStatement(r?r.indexOf(\"label\")===-1?r+\"label\":r:\"label\"),this.state.labels.pop(),t.label=s,this.finishNode(t,\"LabeledStatement\")}parseExpressionStatement(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,\"ExpressionStatement\")}parseBlock(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=arguments.length>2?arguments[2]:void 0,r=this.startNode();return t&&this.state.strictErrors.clear(),this.expect(5),e&&this.scope.enter(Me),this.parseBlockBody(r,t,!1,8,s),e&&this.scope.exit(),this.finishNode(r,\"BlockStatement\")}isValidDirective(t){return t.type===\"ExpressionStatement\"&&t.expression.type===\"StringLiteral\"&&!t.expression.extra.parenthesized}parseBlockBody(t,e,s,r,i){let a=t.body=[],n=t.directives=[];this.parseBlockOrModuleBlockBody(a,e?n:void 0,s,r,i)}parseBlockOrModuleBlockBody(t,e,s,r,i){let a=this.state.strict,n=!1,o=!1;for(;!this.match(r);){let c=this.parseStatement(null,s);if(e&&!o){if(this.isValidDirective(c)){let f=this.stmtToDirective(c);e.push(f),!n&&f.value.value===\"use strict\"&&(n=!0,this.setStrict(!0));continue}o=!0,this.state.strictErrors.clear()}t.push(c)}i&&i.call(this,n),a||this.setStrict(!1),this.next()}parseFor(t,e){return t.init=e,this.semicolon(!1),t.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),t.update=this.match(11)?null:this.parseExpression(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"for\")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,\"ForStatement\")}parseForIn(t,e,s){let r=this.match(58);return this.next(),r?s!==null&&this.unexpected(s):t.await=s!==null,e.type===\"VariableDeclaration\"&&e.declarations[0].init!=null&&(!r||this.state.strict||e.kind!==\"var\"||e.declarations[0].id.type!==\"Identifier\")&&this.raise(u.ForInOfLoopInitializer,{at:e,type:r?\"ForInStatement\":\"ForOfStatement\"}),e.type===\"AssignmentPattern\"&&this.raise(u.InvalidLhs,{at:e,ancestor:{type:\"ForStatement\"}}),t.left=e,t.right=r?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),t.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement(\"for\")),this.scope.exit(),this.state.labels.pop(),this.finishNode(t,r?\"ForInStatement\":\"ForOfStatement\")}parseVar(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=t.declarations=[];for(t.kind=s;;){let a=this.startNode();if(this.parseVarId(a,s),a.init=this.eat(29)?e?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,a.init===null&&!r&&(a.id.type!==\"Identifier\"&&!(e&&(this.match(58)||this.isContextual(101)))?this.raise(u.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:\"destructuring\"}):s===\"const\"&&!(this.match(58)||this.isContextual(101))&&this.raise(u.DeclarationMissingInitializer,{at:this.state.lastTokEndLoc,kind:\"const\"})),i.push(this.finishNode(a,\"VariableDeclarator\")),!this.eat(12))break}return t}parseVarId(t,e){t.id=this.parseBindingAtom(),this.checkLVal(t.id,{in:{type:\"VariableDeclarator\"},binding:e===\"var\"?pt:xe})}parseFunction(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Qh,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e&fs,i=e&Hr,a=!!r&&!(e&Wr);this.initFunction(t,s),this.match(55)&&i&&this.raise(u.GeneratorInSingleStatementContext,{at:this.state.startLoc}),t.generator=this.eat(55),r&&(t.id=this.parseFunctionId(a));let n=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(me),this.prodParam.enter(gt(s,t.generator)),r||(t.id=this.parseFunctionId()),this.parseFunctionParams(t,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(t,r?\"FunctionDeclaration\":\"FunctionExpression\")}),this.prodParam.exit(),this.scope.exit(),r&&!i&&this.registerFunctionStatementId(t),this.state.maybeInArrowParameters=n,t}parseFunctionId(t){return t||K(this.state.type)?this.parseIdentifier():null}parseFunctionParams(t,e){this.expect(10),this.expressionScope.enter(gh()),t.params=this.parseBindingList(11,41,!1,e),this.expressionScope.exit()}registerFunctionStatementId(t){!t.id||this.scope.declareName(t.id.name,this.state.strict||t.generator||t.async?this.scope.treatFunctionsAsVar?pt:xe:Tr,t.id.loc.start)}parseClass(t,e,s){this.next(),this.takeDecorators(t);let r=this.state.strict;return this.state.strict=!0,this.parseClassId(t,e,s),this.parseClassSuper(t),t.body=this.parseClassBody(!!t.superClass,r),this.finishNode(t,e?\"ClassDeclaration\":\"ClassExpression\")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}isNonstaticConstructor(t){return!t.computed&&!t.static&&(t.key.name===\"constructor\"||t.key.value===\"constructor\")}parseClassBody(t,e){this.classScope.enter();let s={hadConstructor:!1,hadSuperClass:t},r=[],i=this.startNode();if(i.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(r.length>0)throw this.raise(u.DecoratorSemicolon,{at:this.state.lastTokEndLoc});continue}if(this.match(26)){r.push(this.parseDecorator());continue}let a=this.startNode();r.length&&(a.decorators=r,this.resetStartLocationFromNode(a,r[0]),r=[]),this.parseClassMember(i,a,s),a.kind===\"constructor\"&&a.decorators&&a.decorators.length>0&&this.raise(u.DecoratorConstructor,{at:a})}}),this.state.strict=e,this.next(),r.length)throw this.raise(u.TrailingDecorator,{at:this.state.startLoc});return this.classScope.exit(),this.finishNode(i,\"ClassBody\")}parseClassMemberFromModifier(t,e){let s=this.parseIdentifier(!0);if(this.isClassMethod()){let r=e;return r.kind=\"method\",r.computed=!1,r.key=s,r.static=!1,this.pushClassMethod(t,r,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let r=e;return r.computed=!1,r.key=s,r.static=!1,t.body.push(this.parseClassProperty(r)),!0}return this.resetPreviousNodeTrailingComments(s),!1}parseClassMember(t,e,s){let r=this.isContextual(104);if(r){if(this.parseClassMemberFromModifier(t,e))return;if(this.eat(5)){this.parseClassStaticBlock(t,e);return}}this.parseClassMemberWithIsStatic(t,e,s,r)}parseClassMemberWithIsStatic(t,e,s,r){let i=e,a=e,n=e,o=e,c=e,f=i,y=i;if(e.static=r,this.parsePropertyNamePrefixOperator(e),this.eat(55)){f.kind=\"method\";let _=this.match(134);if(this.parseClassElementName(f),_){this.pushClassPrivateMethod(t,a,!0,!1);return}this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsGenerator,{at:i.key}),this.pushClassMethod(t,i,!0,!1,!1,!1);return}let P=K(this.state.type)&&!this.state.containsEsc,v=this.match(134),N=this.parseClassElementName(e),B=this.state.startLoc;if(this.parsePostMemberNameModifiers(y),this.isClassMethod()){if(f.kind=\"method\",v){this.pushClassPrivateMethod(t,a,!1,!1);return}let _=this.isNonstaticConstructor(i),Q=!1;_&&(i.kind=\"constructor\",s.hadConstructor&&!this.hasPlugin(\"typescript\")&&this.raise(u.DuplicateConstructor,{at:N}),_&&this.hasPlugin(\"typescript\")&&e.override&&this.raise(u.OverrideOnConstructor,{at:N}),s.hadConstructor=!0,Q=s.hadSuperClass),this.pushClassMethod(t,i,!1,!1,_,Q)}else if(this.isClassProperty())v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n);else if(P&&N.name===\"async\"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(N);let _=this.eat(55);y.optional&&this.unexpected(B),f.kind=\"method\";let Q=this.match(134);this.parseClassElementName(f),this.parsePostMemberNameModifiers(y),Q?this.pushClassPrivateMethod(t,a,_,!0):(this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsAsync,{at:i.key}),this.pushClassMethod(t,i,_,!0,!1,!1))}else if(P&&(N.name===\"get\"||N.name===\"set\")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(N),f.kind=N.name;let _=this.match(134);this.parseClassElementName(i),_?this.pushClassPrivateMethod(t,a,!1,!1):(this.isNonstaticConstructor(i)&&this.raise(u.ConstructorIsAccessor,{at:i.key}),this.pushClassMethod(t,i,!1,!1,!1,!1)),this.checkGetterSetterParams(i)}else if(P&&N.name===\"accessor\"&&!this.isLineTerminator()){this.expectPlugin(\"decoratorAutoAccessors\"),this.resetPreviousNodeTrailingComments(N);let _=this.match(134);this.parseClassElementName(n),this.pushClassAccessorProperty(t,c,_)}else this.isLineTerminator()?v?this.pushClassPrivateProperty(t,o):this.pushClassProperty(t,n):this.unexpected()}parseClassElementName(t){let{type:e,value:s}=this.state;if((e===128||e===129)&&t.static&&s===\"prototype\"&&this.raise(u.StaticPrototype,{at:this.state.startLoc}),e===134){s===\"constructor\"&&this.raise(u.ConstructorClassPrivateField,{at:this.state.startLoc});let r=this.parsePrivateName();return t.key=r,r}return this.parsePropertyName(t)}parseClassStaticBlock(t,e){var s;this.scope.enter(Se|Yt|ot);let r=this.state.labels;this.state.labels=[],this.prodParam.enter(je);let i=e.body=[];this.parseBlockOrModuleBlockBody(i,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=r,t.body.push(this.finishNode(e,\"StaticBlock\")),(s=e.decorators)!=null&&s.length&&this.raise(u.DecoratorStaticBlock,{at:e})}pushClassProperty(t,e){!e.computed&&(e.key.name===\"constructor\"||e.key.value===\"constructor\")&&this.raise(u.ConstructorClassField,{at:e.key}),t.body.push(this.parseClassProperty(e))}pushClassPrivateProperty(t,e){let s=this.parseClassPrivateProperty(e);t.body.push(s),this.classScope.declarePrivateName(this.getPrivateNameSV(s.key),is,s.key.loc.start)}pushClassAccessorProperty(t,e,s){if(!s&&!e.computed){let i=e.key;(i.name===\"constructor\"||i.value===\"constructor\")&&this.raise(u.ConstructorClassField,{at:i})}let r=this.parseClassAccessorProperty(e);t.body.push(r),s&&this.classScope.declarePrivateName(this.getPrivateNameSV(r.key),is,r.key.loc.start)}pushClassMethod(t,e,s,r,i,a){t.body.push(this.parseMethod(e,s,r,i,a,\"ClassMethod\",!0))}pushClassPrivateMethod(t,e,s,r){let i=this.parseMethod(e,s,r,!1,!1,\"ClassPrivateMethod\",!0);t.body.push(i);let a=i.kind===\"get\"?i.static?Qo:eh:i.kind===\"set\"?i.static?Zo:th:is;this.declareClassPrivateMethodInScope(i,a)}declareClassPrivateMethodInScope(t,e){this.classScope.declarePrivateName(this.getPrivateNameSV(t.key),e,t.key.loc.start)}parsePostMemberNameModifiers(t){}parseClassPrivateProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassPrivateProperty\")}parseClassProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassProperty\")}parseClassAccessorProperty(t){return this.parseInitializer(t),this.semicolon(),this.finishNode(t,\"ClassAccessorProperty\")}parseInitializer(t){this.scope.enter(Se|ot),this.expressionScope.enter(Dr()),this.prodParam.enter(je),t.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(t,e,s){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Pr;if(K(this.state.type))t.id=this.parseIdentifier(),e&&this.declareNameFromIdentifier(t.id,r);else if(s||!e)t.id=null;else throw this.raise(u.MissingClassName,{at:this.state.startLoc})}parseClassSuper(t){t.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(t){let e=this.maybeParseExportDefaultSpecifier(t),s=!e||this.eat(12),r=s&&this.eatExportStar(t),i=r&&this.maybeParseExportNamespaceSpecifier(t),a=s&&(!i||this.eat(12)),n=e||r;if(r&&!i)return e&&this.unexpected(),this.parseExportFrom(t,!0),this.finishNode(t,\"ExportAllDeclaration\");let o=this.maybeParseExportNamedSpecifiers(t);if(e&&s&&!r&&!o||i&&a&&!o)throw this.unexpected(null,5);let c;if(n||o?(c=!1,this.parseExportFrom(t,n)):c=this.maybeParseExportDeclaration(t),n||o||c)return this.checkExport(t,!0,!1,!!t.source),this.finishNode(t,\"ExportNamedDeclaration\");if(this.eat(65))return t.declaration=this.parseExportDefaultExpression(),this.checkExport(t,!0,!0),this.finishNode(t,\"ExportDefaultDeclaration\");throw this.unexpected(null,5)}eatExportStar(t){return this.eat(55)}maybeParseExportDefaultSpecifier(t){if(this.isExportDefaultSpecifier()){this.expectPlugin(\"exportDefaultFrom\");let e=this.startNode();return e.exported=this.parseIdentifier(!0),t.specifiers=[this.finishNode(e,\"ExportDefaultSpecifier\")],!0}return!1}maybeParseExportNamespaceSpecifier(t){if(this.isContextual(93)){t.specifiers||(t.specifiers=[]);let e=this.startNodeAt(this.state.lastTokStart,this.state.lastTokStartLoc);return this.next(),e.exported=this.parseModuleExportName(),t.specifiers.push(this.finishNode(e,\"ExportNamespaceSpecifier\")),!0}return!1}maybeParseExportNamedSpecifiers(t){if(this.match(5)){t.specifiers||(t.specifiers=[]);let e=t.exportKind===\"type\";return t.specifiers.push(...this.parseExportSpecifiers(e)),t.source=null,t.declaration=null,this.hasPlugin(\"importAssertions\")&&(t.assertions=[]),!0}return!1}maybeParseExportDeclaration(t){return this.shouldParseExportDeclaration()?(t.specifiers=[],t.source=null,this.hasPlugin(\"importAssertions\")&&(t.assertions=[]),t.declaration=this.parseExportDeclaration(t),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let t=this.nextTokenStart();return!as.test(this.input.slice(this.state.pos,t))&&this.isUnparsedContextual(t,\"function\")}parseExportDefaultExpression(){let t=this.startNode(),e=this.isAsyncFunction();if(this.match(68)||e)return this.next(),e&&this.next(),this.parseFunction(t,fs|Wr,e);if(this.match(80))return this.parseClass(t,!0,!0);if(this.match(26))return this.hasPlugin(\"decorators\")&&this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\")&&this.raise(u.DecoratorBeforeExport,{at:this.state.startLoc}),this.parseDecorators(!1),this.parseClass(t,!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(u.UnsupportedDefaultExport,{at:this.state.startLoc});let s=this.parseMaybeAssignAllowIn();return this.semicolon(),s}parseExportDeclaration(t){return this.parseStatement(null)}isExportDefaultSpecifier(){let{type:t}=this.state;if(K(t)){if(t===95&&!this.state.containsEsc||t===99)return!1;if((t===126||t===125)&&!this.state.containsEsc){let{type:r}=this.lookahead();if(K(r)&&r!==97||r===5)return this.expectOnePlugin([\"flow\",\"typescript\"]),!1}}else if(!this.match(65))return!1;let e=this.nextTokenStart(),s=this.isUnparsedContextual(e,\"from\");if(this.input.charCodeAt(e)===44||K(this.state.type)&&s)return!0;if(this.match(65)&&s){let r=this.input.charCodeAt(this.nextTokenStartSince(e+4));return r===34||r===39}return!1}parseExportFrom(t,e){if(this.eatContextual(97)){t.source=this.parseImportSource(),this.checkExport(t);let s=this.maybeParseImportAssertions();s&&(t.assertions=s)}else e&&this.unexpected();this.semicolon()}shouldParseExportDeclaration(){let{type:t}=this.state;if(t===26&&(this.expectOnePlugin([\"decorators\",\"decorators-legacy\"]),this.hasPlugin(\"decorators\"))){if(this.getPluginOption(\"decorators\",\"decoratorsBeforeExport\"))throw this.raise(u.DecoratorBeforeExport,{at:this.state.startLoc});return!0}return t===74||t===75||t===68||t===80||this.isLet()||this.isAsyncFunction()}checkExport(t,e,s,r){if(e){if(s){if(this.checkDuplicateExports(t,\"default\"),this.hasPlugin(\"exportDefaultFrom\")){var i;let n=t.declaration;n.type===\"Identifier\"&&n.name===\"from\"&&n.end-n.start===4&&!((i=n.extra)!=null&&i.parenthesized)&&this.raise(u.ExportDefaultFromAsIdentifier,{at:n})}}else if(t.specifiers&&t.specifiers.length)for(let n of t.specifiers){let{exported:o}=n,c=o.type===\"Identifier\"?o.name:o.value;if(this.checkDuplicateExports(n,c),!r&&n.local){let{local:f}=n;f.type!==\"Identifier\"?this.raise(u.ExportBindingIsString,{at:n,localName:f.value,exportName:c}):(this.checkReservedWord(f.name,f.loc.start,!0,!1),this.scope.checkLocalExport(f))}}else if(t.declaration){if(t.declaration.type===\"FunctionDeclaration\"||t.declaration.type===\"ClassDeclaration\"){let n=t.declaration.id;if(!n)throw new Error(\"Assertion failure\");this.checkDuplicateExports(t,n.name)}else if(t.declaration.type===\"VariableDeclaration\")for(let n of t.declaration.declarations)this.checkDeclaration(n.id)}}if(this.state.decoratorStack[this.state.decoratorStack.length-1].length)throw this.raise(u.UnsupportedDecoratorExport,{at:t})}checkDeclaration(t){if(t.type===\"Identifier\")this.checkDuplicateExports(t,t.name);else if(t.type===\"ObjectPattern\")for(let e of t.properties)this.checkDeclaration(e);else if(t.type===\"ArrayPattern\")for(let e of t.elements)e&&this.checkDeclaration(e);else t.type===\"ObjectProperty\"?this.checkDeclaration(t.value):t.type===\"RestElement\"?this.checkDeclaration(t.argument):t.type===\"AssignmentPattern\"&&this.checkDeclaration(t.left)}checkDuplicateExports(t,e){this.exportedIdentifiers.has(e)&&(e===\"default\"?this.raise(u.DuplicateDefaultExport,{at:t}):this.raise(u.DuplicateExport,{at:t,exportName:e})),this.exportedIdentifiers.add(e)}parseExportSpecifiers(t){let e=[],s=!0;for(this.expect(5);!this.eat(8);){if(s)s=!1;else if(this.expect(12),this.eat(8))break;let r=this.isContextual(126),i=this.match(129),a=this.startNode();a.local=this.parseModuleExportName(),e.push(this.parseExportSpecifier(a,i,t,r))}return e}parseExportSpecifier(t,e,s,r){return this.eatContextual(93)?t.exported=this.parseModuleExportName():e?t.exported=bh(t.local):t.exported||(t.exported=ge(t.local)),this.finishNode(t,\"ExportSpecifier\")}parseModuleExportName(){if(this.match(129)){let t=this.parseStringLiteral(this.state.value),e=t.value.match(Zh);return e&&this.raise(u.ModuleExportNameHasLoneSurrogate,{at:t,surrogateCharCode:e[0].charCodeAt(0)}),t}return this.parseIdentifier(!0)}parseImport(t){if(t.specifiers=[],!this.match(129)){let r=!this.maybeParseDefaultImportSpecifier(t)||this.eat(12),i=r&&this.maybeParseStarImportSpecifier(t);r&&!i&&this.parseNamedImportSpecifiers(t),this.expectContextual(97)}t.source=this.parseImportSource();let e=this.maybeParseImportAssertions();if(e)t.assertions=e;else{let s=this.maybeParseModuleAttributes();s&&(t.attributes=s)}return this.semicolon(),this.finishNode(t,\"ImportDeclaration\")}parseImportSource(){return this.match(129)||this.unexpected(),this.parseExprAtom()}shouldParseDefaultImport(t){return K(this.state.type)}parseImportSpecifierLocal(t,e,s){e.local=this.parseIdentifier(),t.specifiers.push(this.finishImportSpecifier(e,s))}finishImportSpecifier(t,e){return this.checkLVal(t.local,{in:t,binding:xe}),this.finishNode(t,e)}parseAssertEntries(){let t=[],e=new Set;do{if(this.match(8))break;let s=this.startNode(),r=this.state.value;if(e.has(r)&&this.raise(u.ModuleAttributesWithDuplicateKeys,{at:this.state.startLoc,key:r}),e.add(r),this.match(129)?s.key=this.parseStringLiteral(r):s.key=this.parseIdentifier(!0),this.expect(14),!this.match(129))throw this.raise(u.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,\"ImportAttribute\"),t.push(s)}while(this.eat(12));return t}maybeParseModuleAttributes(){if(this.match(76)&&!this.hasPrecedingLineBreak())this.expectPlugin(\"moduleAttributes\"),this.next();else return this.hasPlugin(\"moduleAttributes\")?[]:null;let t=[],e=new Set;do{let s=this.startNode();if(s.key=this.parseIdentifier(!0),s.key.name!==\"type\"&&this.raise(u.ModuleAttributeDifferentFromType,{at:s.key}),e.has(s.key.name)&&this.raise(u.ModuleAttributesWithDuplicateKeys,{at:s.key,key:s.key.name}),e.add(s.key.name),this.expect(14),!this.match(129))throw this.raise(u.ModuleAttributeInvalidValue,{at:this.state.startLoc});s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,\"ImportAttribute\"),t.push(s)}while(this.eat(12));return t}maybeParseImportAssertions(){if(this.isContextual(94)&&!this.hasPrecedingLineBreak())this.expectPlugin(\"importAssertions\"),this.next();else return this.hasPlugin(\"importAssertions\")?[]:null;this.eat(5);let t=this.parseAssertEntries();return this.eat(8),t}maybeParseDefaultImportSpecifier(t){return this.shouldParseDefaultImport(t)?(this.parseImportSpecifierLocal(t,this.startNode(),\"ImportDefaultSpecifier\"),!0):!1}maybeParseStarImportSpecifier(t){if(this.match(55)){let e=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(t,e,\"ImportNamespaceSpecifier\"),!0}return!1}parseNamedImportSpecifiers(t){let e=!0;for(this.expect(5);!this.eat(8);){if(e)e=!1;else{if(this.eat(14))throw this.raise(u.DestructureNamedImport,{at:this.state.startLoc});if(this.expect(12),this.eat(8))break}let s=this.startNode(),r=this.match(129),i=this.isContextual(126);s.imported=this.parseModuleExportName();let a=this.parseImportSpecifier(s,r,t.importKind===\"type\"||t.importKind===\"typeof\",i);t.specifiers.push(a)}}parseImportSpecifier(t,e,s,r){if(this.eatContextual(93))t.local=this.parseIdentifier();else{let{imported:i}=t;if(e)throw this.raise(u.ImportBindingIsString,{at:t,importName:i.value});this.checkReservedWord(i.name,t.loc.start,!0,!0),t.local||(t.local=ge(i))}return this.finishImportSpecifier(t,\"ImportSpecifier\")}isThisParam(t){return t.type===\"Identifier\"&&t.name===\"this\"}},Gr=class extends tl{constructor(t,e){t=Gh(t),super(t,e),this.options=t,this.initializeScopes(),this.plugins=sl(this.options.plugins),this.filename=t.sourceFilename}getScopeHandler(){return hs}parse(){this.enterInitialScopes();let t=this.startNode(),e=this.startNode();return this.nextToken(),t.errors=null,this.parseTopLevel(t,e),t.errors=this.state.errors,t}};function sl(t){let e=new Map;for(let s of t){let[r,i]=Array.isArray(s)?s:[s,{}];e.has(r)||e.set(r,i||{})}return e}function rl(t,e){var s;if(((s=e)==null?void 0:s.sourceType)===\"unambiguous\"){e=Object.assign({},e);try{e.sourceType=\"module\";let r=Ye(e,t),i=r.parse();if(r.sawUnambiguousESM)return i;if(r.ambiguousScriptDifferentAst)try{return e.sourceType=\"script\",Ye(e,t).parse()}catch{}else i.program.sourceType=\"script\";return i}catch(r){try{return e.sourceType=\"script\",Ye(e,t).parse()}catch{}throw r}}else return Ye(e,t).parse()}function il(t,e){let s=Ye(e,t);return s.options.strictMode&&(s.state.strict=!0),s.getExpression()}function al(t){let e={};for(let s of Object.keys(t))e[s]=fe(t[s]);return e}var nl=al(bo);function Ye(t,e){let s=Gr;return t!=null&&t.plugins&&(Hh(t.plugins),s=ol(t.plugins)),new s(t,e)}var Xr={};function ol(t){let e=Wh.filter(i=>ee(t,i)),s=e.join(\"/\"),r=Xr[s];if(!r){r=Gr;for(let i of e)r=zr[i](r);Xr[s]=r}return r}h.parse=rl,h.parseExpression=il,h.tokTypes=nl}}),Pf=H({\"src/language-js/parse/json.js\"(h,l){\"use strict\";V();var p=fo(),d=nr(),m=yo(),A=xo();function g(){let E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{allowComments:L=!0}=E;return function(F){let{parseExpression:W}=Po(),Y;try{Y=W(F,{tokens:!0,ranges:!0})}catch(M){throw A(M)}if(!L&&p(Y.comments))throw x(Y.comments[0],\"Comment\");return T(Y),Y}}function x(E,L){let[R,F]=[E.loc.start,E.loc.end].map(W=>{let{line:Y,column:M}=W;return{line:Y,column:M+1}});return d(\"\".concat(L,\" is not allowed in JSON.\"),{start:R,end:F})}function T(E){switch(E.type){case\"ArrayExpression\":for(let L of E.elements)L!==null&&T(L);return;case\"ObjectExpression\":for(let L of E.properties)T(L);return;case\"ObjectProperty\":if(E.computed)throw x(E.key,\"Computed key\");if(E.shorthand)throw x(E.key,\"Shorthand property\");E.key.type!==\"Identifier\"&&T(E.key),T(E.value);return;case\"UnaryExpression\":{let{operator:L,argument:R}=E;if(L!==\"+\"&&L!==\"-\")throw x(E,\"Operator '\".concat(E.operator,\"'\"));if(R.type===\"NumericLiteral\"||R.type===\"Identifier\"&&(R.name===\"Infinity\"||R.name===\"NaN\"))return;throw x(R,\"Operator '\".concat(L,\"' before '\").concat(R.type,\"'\"))}case\"Identifier\":if(E.name!==\"Infinity\"&&E.name!==\"NaN\"&&E.name!==\"undefined\")throw x(E,\"Identifier '\".concat(E.name,\"'\"));return;case\"TemplateLiteral\":if(p(E.expressions))throw x(E.expressions[0],\"'TemplateLiteral' with expression\");for(let L of E.quasis)T(L);return;case\"NullLiteral\":case\"BooleanLiteral\":case\"NumericLiteral\":case\"StringLiteral\":case\"TemplateElement\":return;default:throw x(E,\"'\".concat(E.type,\"'\"))}}var k=g(),D={json:m({parse:k,hasPragma(){return!0}}),json5:m(k),\"json-stringify\":m({parse:g({allowComments:!1}),astFormat:\"estree-json\"})};l.exports=D}});V();var Tf=ef(),Ef=Qn(),Cf=af(),ze=yo(),bf=xo(),vf=Af(),Sf=Pf(),wf={sourceType:\"module\",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,plugins:[\"doExpressions\",\"exportDefaultFrom\",\"functionBind\",\"functionSent\",\"throwExpressions\",\"partialApplication\",[\"decorators\",{decoratorsBeforeExport:!1}],\"importAssertions\",\"decimal\",\"moduleBlocks\",\"asyncDoExpressions\",\"regexpUnicodeSets\",\"destructuringPrivate\",\"decoratorAutoAccessors\"],tokens:!0,ranges:!0},Nf=[\"recordAndTuple\",{syntaxType:\"hash\"}],Wn=\"v8intrinsic\",Gn=[[\"pipelineOperator\",{proposal:\"hack\",topicToken:\"%\"}],[\"pipelineOperator\",{proposal:\"minimal\"}],[\"pipelineOperator\",{proposal:\"fsharp\"}]],ue=function(h){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:wf;return Object.assign(Object.assign({},l),{},{plugins:[...l.plugins,...h]})},If=/@(?:no)?flow\\b/;function kf(h,l){if(l.filepath&&l.filepath.endsWith(\".js.flow\"))return!0;let p=Ef(h);p&&(h=h.slice(p.length));let d=Cf(h,0);return d!==!1&&(h=h.slice(0,d)),If.test(h)}function Df(h,l,p){let m=Po()[h](l,p),A=m.errors.find(g=>!Rf.has(g.reasonCode));if(A)throw A;return m}function Ke(h){for(var l=arguments.length,p=new Array(l>1?l-1:0),d=1;d2&&arguments[2]!==void 0?arguments[2]:{};if((g.parser===\"babel\"||g.parser===\"__babel_estree\")&&kf(m,g))return g.parser=\"babel-flow\",To(m,A,g);let x=p;g.__babelSourceType===\"script\"&&(x=x.map(E=>Object.assign(Object.assign({},E),{},{sourceType:\"script\"}))),/#[[{]/.test(m)&&(x=x.map(E=>ue([Nf],E)));let T=/%[A-Z]/.test(m);m.includes(\"|>\")?x=(T?[...Gn,Wn]:Gn).flatMap(L=>x.map(R=>ue([L],R))):T&&(x=x.map(E=>ue([Wn],E)));let{result:k,error:D}=Tf(...x.map(E=>()=>Df(h,m,E)));if(!k)throw bf(D);return g.originalText=m,vf(k,g)}}var Ff=Ke(\"parse\",ue([\"jsx\",\"flow\"])),To=Ke(\"parse\",ue([\"jsx\",[\"flow\",{all:!0,enums:!0}]])),Lf=Ke(\"parse\",ue([\"jsx\",\"typescript\"]),ue([\"typescript\"])),Of=Ke(\"parse\",ue([\"jsx\",\"flow\",\"estree\"])),Bf=Ke(\"parseExpression\",ue([\"jsx\"])),Mf=Ke(\"parseExpression\",ue([\"typescript\"])),Rf=new Set([\"StrictNumericEscape\",\"StrictWith\",\"StrictOctalLiteral\",\"StrictDelete\",\"StrictEvalArguments\",\"StrictEvalArgumentsBinding\",\"StrictFunction\",\"EmptyTypeArguments\",\"EmptyTypeParameters\",\"ConstructorHasTypeParameters\",\"UnsupportedParameterPropertyKind\",\"UnexpectedParameterModifier\",\"MixedLabeledAndUnlabeledElements\",\"InvalidTupleMemberLabel\",\"NonClassMethodPropertyHasAbstractModifer\",\"ReadonlyForMethodSignature\",\"ClassMethodHasDeclare\",\"ClassMethodHasReadonly\",\"InvalidModifierOnTypeMember\",\"DuplicateAccessibilityModifier\",\"IndexSignatureHasDeclare\",\"DecoratorExportClass\",\"ParamDupe\",\"InvalidDecimal\",\"RestTrailingComma\",\"UnsupportedParameterDecorator\",\"UnterminatedJsxContent\",\"UnexpectedReservedWord\",\"ModuleAttributesWithDuplicateKeys\",\"LineTerminatorBeforeArrow\",\"InvalidEscapeSequenceTemplate\",\"NonAbstractClassHasAbstractMethod\",\"UnsupportedPropertyDecorator\",\"OptionalTypeBeforeRequired\",\"PatternIsOptional\",\"OptionalBindingPattern\",\"DeclareClassFieldHasInitializer\",\"TypeImportCannotSpecifyDefaultAndNamed\",\"DeclareFunctionHasImplementation\",\"ConstructorClassField\",\"VarRedeclaration\",\"InvalidPrivateFieldResolution\",\"DuplicateExport\"]),Xn=ze(Ff),Jn=ze(Lf),Yn=ze(Bf),jf=ze(Mf);Eo.exports={parsers:Object.assign(Object.assign({babel:Xn,\"babel-flow\":ze(To),\"babel-ts\":Jn},Sf),{},{__js_expression:Yn,__vue_expression:Yn,__vue_ts_expression:jf,__vue_event_binding:Xn,__vue_ts_event_binding:Jn,__babel_estree:ze(Of)})}});return qf();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.espree=e()}})(function(){\"use strict\";var S=(n,o)=>()=>(o||n((o={exports:{}}).exports,o),o.exports);var $=S((Dh,qr)=>{var Ze=function(n){return n&&n.Math==Math&&n};qr.exports=Ze(typeof globalThis==\"object\"&&globalThis)||Ze(typeof window==\"object\"&&window)||Ze(typeof self==\"object\"&&self)||Ze(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var ye=S((Oh,Mr)=>{Mr.exports=function(n){try{return!!n()}catch{return!0}}});var _e=S((Lh,Ur)=>{var tn=ye();Ur.exports=!tn(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Ct=S((Vh,zr)=>{var rn=ye();zr.exports=!rn(function(){var n=function(){}.bind();return typeof n!=\"function\"||n.hasOwnProperty(\"prototype\")})});var et=S((Rh,Wr)=>{var sn=Ct(),$e=Function.prototype.call;Wr.exports=sn?$e.bind($e):function(){return $e.apply($e,arguments)}});var Hr=S(Xr=>{\"use strict\";var Gr={}.propertyIsEnumerable,Kr=Object.getOwnPropertyDescriptor,an=Kr&&!Gr.call({1:2},1);Xr.f=an?function(o){var u=Kr(this,o);return!!u&&u.enumerable}:Gr});var Et=S((qh,Jr)=>{Jr.exports=function(n,o){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:o}}});var ce=S((Mh,Zr)=>{var Yr=Ct(),Qr=Function.prototype,nn=Qr.bind,bt=Qr.call,on=Yr&&nn.bind(bt,bt);Zr.exports=Yr?function(n){return n&&on(n)}:function(n){return n&&function(){return bt.apply(n,arguments)}}});var ti=S((Uh,ei)=>{var $r=ce(),un=$r({}.toString),hn=$r(\"\".slice);ei.exports=function(n){return hn(un(n),8,-1)}});var ii=S((zh,ri)=>{var ln=$(),cn=ce(),pn=ye(),fn=ti(),_t=ln.Object,dn=cn(\"\".split);ri.exports=pn(function(){return!_t(\"z\").propertyIsEnumerable(0)})?function(n){return fn(n)==\"String\"?dn(n,\"\"):_t(n)}:_t});var St=S((Wh,si)=>{var mn=$(),vn=mn.TypeError;si.exports=function(n){if(n==null)throw vn(\"Can't call method on \"+n);return n}});var tt=S((Gh,ai)=>{var gn=ii(),xn=St();ai.exports=function(n){return gn(xn(n))}});var pe=S((Kh,ni)=>{ni.exports=function(n){return typeof n==\"function\"}});var Ie=S((Xh,oi)=>{var yn=pe();oi.exports=function(n){return typeof n==\"object\"?n!==null:yn(n)}});var rt=S((Hh,ui)=>{var wt=$(),An=pe(),Cn=function(n){return An(n)?n:void 0};ui.exports=function(n,o){return arguments.length<2?Cn(wt[n]):wt[n]&&wt[n][o]}});var li=S((Jh,hi)=>{var En=ce();hi.exports=En({}.isPrototypeOf)});var pi=S((Yh,ci)=>{var bn=rt();ci.exports=bn(\"navigator\",\"userAgent\")||\"\"});var yi=S((Qh,xi)=>{var gi=$(),kt=pi(),fi=gi.process,di=gi.Deno,mi=fi&&fi.versions||di&&di.version,vi=mi&&mi.v8,he,it;vi&&(he=vi.split(\".\"),it=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!it&&kt&&(he=kt.match(/Edge\\/(\\d+)/),(!he||he[1]>=74)&&(he=kt.match(/Chrome\\/(\\d+)/),he&&(it=+he[1])));xi.exports=it});var Ft=S((Zh,Ci)=>{var Ai=yi(),_n=ye();Ci.exports=!!Object.getOwnPropertySymbols&&!_n(function(){var n=Symbol();return!String(n)||!(Object(n)instanceof Symbol)||!Symbol.sham&&Ai&&Ai<41})});var Bt=S(($h,Ei)=>{var Sn=Ft();Ei.exports=Sn&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Tt=S((el,bi)=>{var wn=$(),kn=rt(),Fn=pe(),Bn=li(),Tn=Bt(),In=wn.Object;bi.exports=Tn?function(n){return typeof n==\"symbol\"}:function(n){var o=kn(\"Symbol\");return Fn(o)&&Bn(o.prototype,In(n))}});var Si=S((tl,_i)=>{var Pn=$(),Nn=Pn.String;_i.exports=function(n){try{return Nn(n)}catch{return\"Object\"}}});var ki=S((rl,wi)=>{var Dn=$(),On=pe(),Ln=Si(),Vn=Dn.TypeError;wi.exports=function(n){if(On(n))return n;throw Vn(Ln(n)+\" is not a function\")}});var Bi=S((il,Fi)=>{var Rn=ki();Fi.exports=function(n,o){var u=n[o];return u==null?void 0:Rn(u)}});var Ii=S((sl,Ti)=>{var jn=$(),It=et(),Pt=pe(),Nt=Ie(),qn=jn.TypeError;Ti.exports=function(n,o){var u,l;if(o===\"string\"&&Pt(u=n.toString)&&!Nt(l=It(u,n))||Pt(u=n.valueOf)&&!Nt(l=It(u,n))||o!==\"string\"&&Pt(u=n.toString)&&!Nt(l=It(u,n)))return l;throw qn(\"Can't convert object to primitive value\")}});var Ni=S((al,Pi)=>{Pi.exports=!1});var st=S((nl,Oi)=>{var Di=$(),Mn=Object.defineProperty;Oi.exports=function(n,o){try{Mn(Di,n,{value:o,configurable:!0,writable:!0})}catch{Di[n]=o}return o}});var at=S((ol,Vi)=>{var Un=$(),zn=st(),Li=\"__core-js_shared__\",Wn=Un[Li]||zn(Li,{});Vi.exports=Wn});var Dt=S((ul,ji)=>{var Gn=Ni(),Ri=at();(ji.exports=function(n,o){return Ri[n]||(Ri[n]=o!==void 0?o:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:Gn?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var Mi=S((hl,qi)=>{var Kn=$(),Xn=St(),Hn=Kn.Object;qi.exports=function(n){return Hn(Xn(n))}});var Ae=S((ll,Ui)=>{var Jn=ce(),Yn=Mi(),Qn=Jn({}.hasOwnProperty);Ui.exports=Object.hasOwn||function(o,u){return Qn(Yn(o),u)}});var Ot=S((cl,zi)=>{var Zn=ce(),$n=0,eo=Math.random(),to=Zn(1 .toString);zi.exports=function(n){return\"Symbol(\"+(n===void 0?\"\":n)+\")_\"+to(++$n+eo,36)}});var Ji=S((pl,Hi)=>{var ro=$(),io=Dt(),Wi=Ae(),so=Ot(),Gi=Ft(),Xi=Bt(),Pe=io(\"wks\"),Se=ro.Symbol,Ki=Se&&Se.for,ao=Xi?Se:Se&&Se.withoutSetter||so;Hi.exports=function(n){if(!Wi(Pe,n)||!(Gi||typeof Pe[n]==\"string\")){var o=\"Symbol.\"+n;Gi&&Wi(Se,n)?Pe[n]=Se[n]:Xi&&Ki?Pe[n]=Ki(o):Pe[n]=ao(o)}return Pe[n]}});var $i=S((fl,Zi)=>{var no=$(),oo=et(),Yi=Ie(),Qi=Tt(),uo=Bi(),ho=Ii(),lo=Ji(),co=no.TypeError,po=lo(\"toPrimitive\");Zi.exports=function(n,o){if(!Yi(n)||Qi(n))return n;var u=uo(n,po),l;if(u){if(o===void 0&&(o=\"default\"),l=oo(u,n,o),!Yi(l)||Qi(l))return l;throw co(\"Can't convert object to primitive value\")}return o===void 0&&(o=\"number\"),ho(n,o)}});var Lt=S((dl,es)=>{var fo=$i(),mo=Tt();es.exports=function(n){var o=fo(n,\"string\");return mo(o)?o:o+\"\"}});var is=S((ml,rs)=>{var vo=$(),ts=Ie(),Vt=vo.document,go=ts(Vt)&&ts(Vt.createElement);rs.exports=function(n){return go?Vt.createElement(n):{}}});var Rt=S((vl,ss)=>{var xo=_e(),yo=ye(),Ao=is();ss.exports=!xo&&!yo(function(){return Object.defineProperty(Ao(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var jt=S(ns=>{var Co=_e(),Eo=et(),bo=Hr(),_o=Et(),So=tt(),wo=Lt(),ko=Ae(),Fo=Rt(),as=Object.getOwnPropertyDescriptor;ns.f=Co?as:function(o,u){if(o=So(o),u=wo(u),Fo)try{return as(o,u)}catch{}if(ko(o,u))return _o(!Eo(bo.f,o,u),o[u])}});var us=S((xl,os)=>{var Bo=_e(),To=ye();os.exports=Bo&&To(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var qt=S((yl,ls)=>{var hs=$(),Io=Ie(),Po=hs.String,No=hs.TypeError;ls.exports=function(n){if(Io(n))return n;throw No(Po(n)+\" is not an object\")}});var Gt=S(ps=>{var Do=$(),Oo=_e(),Lo=Rt(),Vo=us(),nt=qt(),cs=Lt(),Ro=Do.TypeError,Mt=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,Ut=\"enumerable\",zt=\"configurable\",Wt=\"writable\";ps.f=Oo?Vo?function(o,u,l){if(nt(o),u=cs(u),nt(l),typeof o==\"function\"&&u===\"prototype\"&&\"value\"in l&&Wt in l&&!l[Wt]){var m=jo(o,u);m&&m[Wt]&&(o[u]=l.value,l={configurable:zt in l?l[zt]:m[zt],enumerable:Ut in l?l[Ut]:m[Ut],writable:!1})}return Mt(o,u,l)}:Mt:function(o,u,l){if(nt(o),u=cs(u),nt(l),Lo)try{return Mt(o,u,l)}catch{}if(\"get\"in l||\"set\"in l)throw Ro(\"Accessors not supported\");return\"value\"in l&&(o[u]=l.value),o}});var ot=S((Cl,fs)=>{var qo=_e(),Mo=Gt(),Uo=Et();fs.exports=qo?function(n,o,u){return Mo.f(n,o,Uo(1,u))}:function(n,o,u){return n[o]=u,n}});var Xt=S((El,ds)=>{var zo=ce(),Wo=pe(),Kt=at(),Go=zo(Function.toString);Wo(Kt.inspectSource)||(Kt.inspectSource=function(n){return Go(n)});ds.exports=Kt.inspectSource});var gs=S((bl,vs)=>{var Ko=$(),Xo=pe(),Ho=Xt(),ms=Ko.WeakMap;vs.exports=Xo(ms)&&/native code/.test(Ho(ms))});var As=S((_l,ys)=>{var Jo=Dt(),Yo=Ot(),xs=Jo(\"keys\");ys.exports=function(n){return xs[n]||(xs[n]=Yo(n))}});var Ht=S((Sl,Cs)=>{Cs.exports={}});var ks=S((wl,ws)=>{var Qo=gs(),Ss=$(),Jt=ce(),Zo=Ie(),$o=ot(),Yt=Ae(),Qt=at(),eu=As(),tu=Ht(),Es=\"Object already initialized\",$t=Ss.TypeError,ru=Ss.WeakMap,ut,qe,ht,iu=function(n){return ht(n)?qe(n):ut(n,{})},su=function(n){return function(o){var u;if(!Zo(o)||(u=qe(o)).type!==n)throw $t(\"Incompatible receiver, \"+n+\" required\");return u}};Qo||Qt.state?(Ce=Qt.state||(Qt.state=new ru),bs=Jt(Ce.get),Zt=Jt(Ce.has),_s=Jt(Ce.set),ut=function(n,o){if(Zt(Ce,n))throw new $t(Es);return o.facade=n,_s(Ce,n,o),o},qe=function(n){return bs(Ce,n)||{}},ht=function(n){return Zt(Ce,n)}):(we=eu(\"state\"),tu[we]=!0,ut=function(n,o){if(Yt(n,we))throw new $t(Es);return o.facade=n,$o(n,we,o),o},qe=function(n){return Yt(n,we)?n[we]:{}},ht=function(n){return Yt(n,we)});var Ce,bs,Zt,_s,we;ws.exports={set:ut,get:qe,has:ht,enforce:iu,getterFor:su}});var Ts=S((kl,Bs)=>{var er=_e(),au=Ae(),Fs=Function.prototype,nu=er&&Object.getOwnPropertyDescriptor,tr=au(Fs,\"name\"),ou=tr&&function(){}.name===\"something\",uu=tr&&(!er||er&&nu(Fs,\"name\").configurable);Bs.exports={EXISTS:tr,PROPER:ou,CONFIGURABLE:uu}});var Os=S((Fl,Ds)=>{var hu=$(),Is=pe(),lu=Ae(),Ps=ot(),cu=st(),pu=Xt(),Ns=ks(),fu=Ts().CONFIGURABLE,du=Ns.get,mu=Ns.enforce,vu=String(String).split(\"String\");(Ds.exports=function(n,o,u,l){var m=l?!!l.unsafe:!1,E=l?!!l.enumerable:!1,y=l?!!l.noTargetGet:!1,A=l&&l.name!==void 0?l.name:o,b;if(Is(u)&&(String(A).slice(0,7)===\"Symbol(\"&&(A=\"[\"+String(A).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!lu(u,\"name\")||fu&&u.name!==A)&&Ps(u,\"name\",A),b=mu(u),b.source||(b.source=vu.join(typeof A==\"string\"?A:\"\"))),n===hu){E?n[o]=u:cu(o,u);return}else m?!y&&n[o]&&(E=!0):delete n[o];E?n[o]=u:Ps(n,o,u)})(Function.prototype,\"toString\",function(){return Is(this)&&du(this).source||pu(this)})});var rr=S((Bl,Ls)=>{var gu=Math.ceil,xu=Math.floor;Ls.exports=function(n){var o=+n;return o!==o||o===0?0:(o>0?xu:gu)(o)}});var Rs=S((Tl,Vs)=>{var yu=rr(),Au=Math.max,Cu=Math.min;Vs.exports=function(n,o){var u=yu(n);return u<0?Au(u+o,0):Cu(u,o)}});var qs=S((Il,js)=>{var Eu=rr(),bu=Math.min;js.exports=function(n){return n>0?bu(Eu(n),9007199254740991):0}});var Us=S((Pl,Ms)=>{var _u=qs();Ms.exports=function(n){return _u(n.length)}});var Gs=S((Nl,Ws)=>{var Su=tt(),wu=Rs(),ku=Us(),zs=function(n){return function(o,u,l){var m=Su(o),E=ku(m),y=wu(l,E),A;if(n&&u!=u){for(;E>y;)if(A=m[y++],A!=A)return!0}else for(;E>y;y++)if((n||y in m)&&m[y]===u)return n||y||0;return!n&&-1}};Ws.exports={includes:zs(!0),indexOf:zs(!1)}});var Hs=S((Dl,Xs)=>{var Fu=ce(),ir=Ae(),Bu=tt(),Tu=Gs().indexOf,Iu=Ht(),Ks=Fu([].push);Xs.exports=function(n,o){var u=Bu(n),l=0,m=[],E;for(E in u)!ir(Iu,E)&&ir(u,E)&&Ks(m,E);for(;o.length>l;)ir(u,E=o[l++])&&(~Tu(m,E)||Ks(m,E));return m}});var Ys=S((Ol,Js)=>{Js.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var Zs=S(Qs=>{var Pu=Hs(),Nu=Ys(),Du=Nu.concat(\"length\",\"prototype\");Qs.f=Object.getOwnPropertyNames||function(o){return Pu(o,Du)}});var ea=S($s=>{$s.f=Object.getOwnPropertySymbols});var ra=S((Rl,ta)=>{var Ou=rt(),Lu=ce(),Vu=Zs(),Ru=ea(),ju=qt(),qu=Lu([].concat);ta.exports=Ou(\"Reflect\",\"ownKeys\")||function(o){var u=Vu.f(ju(o)),l=Ru.f;return l?qu(u,l(o)):u}});var aa=S((jl,sa)=>{var ia=Ae(),Mu=ra(),Uu=jt(),zu=Gt();sa.exports=function(n,o,u){for(var l=Mu(o),m=zu.f,E=Uu.f,y=0;y{var Wu=ye(),Gu=pe(),Ku=/#|\\.prototype\\./,Me=function(n,o){var u=Hu[Xu(n)];return u==Yu?!0:u==Ju?!1:Gu(o)?Wu(o):!!o},Xu=Me.normalize=function(n){return String(n).replace(Ku,\".\").toLowerCase()},Hu=Me.data={},Ju=Me.NATIVE=\"N\",Yu=Me.POLYFILL=\"P\";na.exports=Me});var ha=S((Ml,ua)=>{var sr=$(),Qu=jt().f,Zu=ot(),$u=Os(),eh=st(),th=aa(),rh=oa();ua.exports=function(n,o){var u=n.target,l=n.global,m=n.stat,E,y,A,b,g,V;if(l?y=sr:m?y=sr[u]||eh(u,{}):y=(sr[u]||{}).prototype,y)for(A in o){if(g=o[A],n.noTargetGet?(V=Qu(y,A),b=V&&V.value):b=y[A],E=rh(l?A:u+(m?\".\":\"#\")+A,n.forced),!E&&b!==void 0){if(typeof g==typeof b)continue;th(g,b)}(n.sham||b&&b.sham)&&Zu(g,\"sham\",!0),$u(y,A,g,n)}}});var la=S(()=>{var ih=ha(),sh=$();ih({global:!0},{globalThis:sh})});var ca=S(()=>{la()});var Ph=S((Xl,Na)=>{ca();var ur=Object.defineProperty,ah=Object.getOwnPropertyDescriptor,hr=Object.getOwnPropertyNames,nh=Object.prototype.hasOwnProperty,pa=(n,o)=>function(){return n&&(o=(0,n[hr(n)[0]])(n=0)),o},Y=(n,o)=>function(){return o||(0,n[hr(n)[0]])((o={exports:{}}).exports,o),o.exports},oh=(n,o)=>{for(var u in o)ur(n,u,{get:o[u],enumerable:!0})},uh=(n,o,u,l)=>{if(o&&typeof o==\"object\"||typeof o==\"function\")for(let m of hr(o))!nh.call(n,m)&&m!==u&&ur(n,m,{get:()=>o[m],enumerable:!(l=ah(o,m))||l.enumerable});return n},hh=n=>uh(ur({},\"__esModule\",{value:!0}),n),J=pa({\"\"(){}}),lr=Y({\"src/common/parser-create-error.js\"(n,o){\"use strict\";J();function u(l,m){let E=new SyntaxError(l+\" (\"+m.start.line+\":\"+m.start.column+\")\");return E.loc=m,E}o.exports=u}}),fa=Y({\"src/utils/try-combinations.js\"(n,o){\"use strict\";J();function u(){let l;for(var m=arguments.length,E=new Array(m),y=0;yor,arch:()=>lh,cpus:()=>Ca,default:()=>wa,endianness:()=>ma,freemem:()=>ya,getNetworkInterfaces:()=>Sa,hostname:()=>va,loadavg:()=>ga,networkInterfaces:()=>_a,platform:()=>ch,release:()=>ba,tmpDir:()=>ar,tmpdir:()=>nr,totalmem:()=>Aa,type:()=>Ea,uptime:()=>xa});function ma(){if(typeof lt>\"u\"){var n=new ArrayBuffer(2),o=new Uint8Array(n),u=new Uint16Array(n);if(o[0]=1,o[1]=2,u[0]===258)lt=\"BE\";else if(u[0]===513)lt=\"LE\";else throw new Error(\"unable to figure out endianess\")}return lt}function va(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function ga(){return[]}function xa(){return 0}function ya(){return Number.MAX_VALUE}function Aa(){return Number.MAX_VALUE}function Ca(){return[]}function Ea(){return\"Browser\"}function ba(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function _a(){}function Sa(){}function lh(){return\"javascript\"}function ch(){return\"browser\"}function ar(){return\"/tmp\"}var lt,nr,or,wa,ph=pa({\"node-modules-polyfills:os\"(){J(),nr=ar,or=`\n`,wa={EOL:or,tmpdir:nr,tmpDir:ar,networkInterfaces:_a,getNetworkInterfaces:Sa,release:ba,type:Ea,cpus:Ca,totalmem:Aa,freemem:ya,uptime:xa,loadavg:ga,hostname:va,endianness:ma}}}),fh=Y({\"node-modules-polyfills-commonjs:os\"(n,o){J();var u=(ph(),hh(da));if(u&&u.default){o.exports=u.default;for(let l in u)o.exports[l]=u[l]}else u&&(o.exports=u)}}),dh=Y({\"node_modules/detect-newline/index.js\"(n,o){\"use strict\";J();var u=l=>{if(typeof l!=\"string\")throw new TypeError(\"Expected a string\");let m=l.match(/(?:\\r?\\n)/g)||[];if(m.length===0)return;let E=m.filter(A=>A===`\\r\n`).length,y=m.length-E;return E>y?`\\r\n`:`\n`};o.exports=u,o.exports.graceful=l=>typeof l==\"string\"&&u(l)||`\n`}}),mh=Y({\"node_modules/jest-docblock/build/index.js\"(n){\"use strict\";J(),Object.defineProperty(n,\"__esModule\",{value:!0}),n.extract=T,n.parse=q,n.parseWithComments=B,n.print=I,n.strip=v;function o(){let C=fh();return o=function(){return C},C}function u(){let C=l(dh());return u=function(){return C},C}function l(C){return C&&C.__esModule?C:{default:C}}var m=/\\*\\/$/,E=/^\\/\\*\\*/,y=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,A=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,b=/^(\\r?\\n)+/,g=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,V=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,R=/(\\r?\\n|^) *\\* ?/g,N=[];function T(C){let H=C.match(y);return H?H[0].trimLeft():\"\"}function v(C){let H=C.match(y);return H&&H[0]?C.substring(H[0].length):C}function q(C){return B(C).pragmas}function B(C){let H=(0,u().default)(C)||o().EOL;C=C.replace(E,\"\").replace(m,\"\").replace(R,\"$1\");let L=\"\";for(;L!==C;)L=C,C=C.replace(g,\"\".concat(H,\"$1 $2\").concat(H));C=C.replace(b,\"\").trimRight();let i=Object.create(null),_=C.replace(V,\"\").replace(b,\"\").trimRight(),P;for(;P=V.exec(C);){let M=P[2].replace(A,\"\");typeof i[P[1]]==\"string\"||Array.isArray(i[P[1]])?i[P[1]]=N.concat(i[P[1]],M):i[P[1]]=M}return{comments:_,pragmas:i}}function I(C){let{comments:H=\"\",pragmas:L={}}=C,i=(0,u().default)(H)||o().EOL,_=\"/**\",P=\" *\",M=\" */\",ee=Object.keys(L),ae=ee.map(ie=>k(ie,L[ie])).reduce((ie,Ne)=>ie.concat(Ne),[]).map(ie=>P+\" \"+ie+i).join(\"\");if(!H){if(ee.length===0)return\"\";if(ee.length===1&&!Array.isArray(L[ee[0]])){let ie=L[ee[0]];return\"\".concat(_,\" \").concat(k(ee[0],ie)[0]).concat(M)}}let te=H.split(i).map(ie=>\"\".concat(P,\" \").concat(ie)).join(i)+i;return _+i+(H?te:\"\")+(H&&ee.length?P+i:\"\")+ae+M}function k(C,H){return N.concat(H).map(L=>\"@\".concat(C,\" \").concat(L).trim())}}}),vh=Y({\"src/common/end-of-line.js\"(n,o){\"use strict\";J();function u(y){let A=y.indexOf(\"\\r\");return A>=0?y.charAt(A+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function l(y){switch(y){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function m(y,A){let b;switch(A){case`\n`:b=/\\n/g;break;case\"\\r\":b=/\\r/g;break;case`\\r\n`:b=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(A),\".\"))}let g=y.match(b);return g?g.length:0}function E(y){return y.replace(/\\r\\n?/g,`\n`)}o.exports={guessEndOfLine:u,convertEndOfLineToChars:l,countEndOfLineChars:m,normalizeEndOfLine:E}}}),gh=Y({\"src/language-js/utils/get-shebang.js\"(n,o){\"use strict\";J();function u(l){if(!l.startsWith(\"#!\"))return\"\";let m=l.indexOf(`\n`);return m===-1?l:l.slice(0,m)}o.exports=u}}),xh=Y({\"src/language-js/pragma.js\"(n,o){\"use strict\";J();var{parseWithComments:u,strip:l,extract:m,print:E}=mh(),{normalizeEndOfLine:y}=vh(),A=gh();function b(R){let N=A(R);N&&(R=R.slice(N.length+1));let T=m(R),{pragmas:v,comments:q}=u(T);return{shebang:N,text:R,pragmas:v,comments:q}}function g(R){let N=Object.keys(b(R).pragmas);return N.includes(\"prettier\")||N.includes(\"format\")}function V(R){let{shebang:N,text:T,pragmas:v,comments:q}=b(R),B=l(T),I=E({pragmas:Object.assign({format:\"\"},v),comments:q.trimStart()});return(N?\"\".concat(N,`\n`):\"\")+y(I)+(B.startsWith(`\n`)?`\n`:`\n\n`)+B}o.exports={hasPragma:g,insertPragma:V}}}),yh=Y({\"src/utils/is-non-empty-array.js\"(n,o){\"use strict\";J();function u(l){return Array.isArray(l)&&l.length>0}o.exports=u}}),ka=Y({\"src/language-js/loc.js\"(n,o){\"use strict\";J();var u=yh();function l(b,g){let{ignoreDecorators:V}=g||{};if(!V){let R=b.declaration&&b.declaration.decorators||b.decorators;if(u(R))return l(R[0])}return b.range?b.range[0]:b.start}function m(b){return b.range?b.range[1]:b.end}function E(b,g){let V=l(b);return Number.isInteger(V)&&V===l(g)}function y(b,g){let V=m(b);return Number.isInteger(V)&&V===m(g)}function A(b,g){return E(b,g)&&y(b,g)}o.exports={locStart:l,locEnd:m,hasSameLocStart:E,hasSameLoc:A}}}),Fa=Y({\"src/language-js/parse/utils/create-parser.js\"(n,o){\"use strict\";J();var{hasPragma:u}=xh(),{locStart:l,locEnd:m}=ka();function E(y){return y=typeof y==\"function\"?{parse:y}:y,Object.assign({astFormat:\"estree\",hasPragma:u,locStart:l,locEnd:m},y)}o.exports=E}}),Ah=Y({\"src/language-js/utils/is-ts-keyword-type.js\"(n,o){\"use strict\";J();function u(l){let{type:m}=l;return m.startsWith(\"TS\")&&m.endsWith(\"Keyword\")}o.exports=u}}),Ch=Y({\"src/language-js/utils/is-block-comment.js\"(n,o){\"use strict\";J();var u=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),l=m=>u.has(m==null?void 0:m.type);o.exports=l}}),Eh=Y({\"src/language-js/utils/is-type-cast-comment.js\"(n,o){\"use strict\";J();var u=Ch();function l(m){return u(m)&&m.value[0]===\"*\"&&/@type\\b/.test(m.value)}o.exports=l}}),bh=Y({\"src/utils/get-last.js\"(n,o){\"use strict\";J();var u=l=>l[l.length-1];o.exports=u}}),Ba=Y({\"src/language-js/parse/postprocess/visit-node.js\"(n,o){\"use strict\";J();function u(l,m){if(Array.isArray(l)){for(let E=0;E{let T=g.get(N);return!T||!R.includes(T)}))&&l(b,\"Leading decorators must be attached to a class declaration\")}function E(A,b){A.kind!==167||A.modifiers&&!A.modifiers.some(R=>R.kind===126)||A.initializer&&b.value===null&&l(b,\"Abstract property cannot have an initializer\")}function y(A,b){let{esTreeNodeToTSNodeMap:g,tsNodeToESTreeNodeMap:V}=b.tsParseResult;u(A,R=>{let N=g.get(R);if(!N)return;let T=V.get(N);T===R&&(m(N,T,V),E(N,T))})}o.exports={throwErrorForInvalidNodes:y}}}),Ia=Y({\"src/language-js/parse/postprocess/index.js\"(n,o){\"use strict\";J();var{locStart:u,locEnd:l}=ka(),m=Ah(),E=Eh(),y=bh(),A=Ba(),{throwErrorForInvalidNodes:b}=_h(),g=Ta();function V(v,q){if(q.parser===\"typescript\"&&/@|abstract/.test(q.originalText)&&b(v,q),q.parser!==\"typescript\"&&q.parser!==\"flow\"&&q.parser!==\"acorn\"&&q.parser!==\"espree\"&&q.parser!==\"meriyah\"){let I=new Set;v=A(v,k=>{k.leadingComments&&k.leadingComments.some(E)&&I.add(u(k))}),v=A(v,k=>{if(k.type===\"ParenthesizedExpression\"){let{expression:C}=k;if(C.type===\"TypeCastExpression\")return C.range=k.range,C;let H=u(k);if(!I.has(H))return C.extra=Object.assign(Object.assign({},C.extra),{},{parenthesized:!0}),C}})}return v=A(v,I=>{switch(I.type){case\"ChainExpression\":return R(I.expression);case\"LogicalExpression\":{if(N(I))return T(I);break}case\"VariableDeclaration\":{let k=y(I.declarations);k&&k.init&&B(I,k);break}case\"TSParenthesizedType\":return m(I.typeAnnotation)||I.typeAnnotation.type===\"TSThisType\"||(I.typeAnnotation.range=[u(I),l(I)]),I.typeAnnotation;case\"TSTypeParameter\":if(typeof I.name==\"string\"){let k=u(I);I.name={type:\"Identifier\",name:I.name,range:[k,k+I.name.length]}}break;case\"ObjectExpression\":if(q.parser===\"typescript\"){let k=I.properties.find(C=>C.type===\"Property\"&&C.value.type===\"TSEmptyBodyFunctionExpression\");k&&g(k.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let k=y(I.expressions);I.range=[u(I),Math.min(l(k),l(I))];break}case\"TopicReference\":q.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:k}=I;if(q.parser===\"meriyah\"&&k&&k.type===\"Identifier\"){let C=q.originalText.slice(u(k),l(k));(C.startsWith('\"')||C.startsWith(\"'\"))&&(I.exported=Object.assign(Object.assign({},I.exported),{},{type:\"Literal\",value:I.exported.name,raw:C}))}break}}}),v;function B(I,k){q.originalText[l(k)]!==\";\"&&(I.range=[u(I),l(k)])}}function R(v){switch(v.type){case\"CallExpression\":v.type=\"OptionalCallExpression\",v.callee=R(v.callee);break;case\"MemberExpression\":v.type=\"OptionalMemberExpression\",v.object=R(v.object);break;case\"TSNonNullExpression\":v.expression=R(v.expression);break}return v}function N(v){return v.type===\"LogicalExpression\"&&v.right.type===\"LogicalExpression\"&&v.operator===v.right.operator}function T(v){return N(v)?T({type:\"LogicalExpression\",operator:v.operator,left:T({type:\"LogicalExpression\",operator:v.operator,left:v.left,right:v.right.left,range:[u(v.left),l(v.right.left)]}),right:v.right.right,range:[u(v),l(v)]}):v}o.exports=V}}),ct=Y({\"node_modules/acorn/dist/acorn.js\"(n,o){J(),function(u,l){typeof n==\"object\"&&typeof o<\"u\"?l(n):typeof define==\"function\"&&define.amd?define([\"exports\"],l):(u=typeof globalThis<\"u\"?globalThis:u||self,l(u.acorn={}))}(n,function(u){\"use strict\";var l={3:\"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",5:\"class enum extends super const export import\",6:\"enum\",strict:\"implements interface let package private protected public static yield\",strictBind:\"eval arguments\"},m=\"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\",E={5:m,\"5module\":m+\" export import\",6:m+\" const class extends export import super\"},y=/^in(stanceof)?$/,A=\"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\",b=\"\\u200C\\u200D\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\",g=new RegExp(\"[\"+A+\"]\"),V=new RegExp(\"[\"+A+b+\"]\");A=b=null;var R=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938],N=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];function T(e,t){for(var r=65536,s=0;se)return!1;if(r+=t[s+1],r>=e)return!0}}function v(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&g.test(String.fromCharCode(e)):t===!1?!1:T(e,R)}function q(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&V.test(String.fromCharCode(e)):t===!1?!1:T(e,R)||T(e,N)}var B=function(t,r){r===void 0&&(r={}),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null};function I(e,t){return new B(e,{beforeExpr:!0,binop:t})}var k={beforeExpr:!0},C={startsExpr:!0},H={};function L(e,t){return t===void 0&&(t={}),t.keyword=e,H[e]=new B(e,t)}var i={num:new B(\"num\",C),regexp:new B(\"regexp\",C),string:new B(\"string\",C),name:new B(\"name\",C),privateId:new B(\"privateId\",C),eof:new B(\"eof\"),bracketL:new B(\"[\",{beforeExpr:!0,startsExpr:!0}),bracketR:new B(\"]\"),braceL:new B(\"{\",{beforeExpr:!0,startsExpr:!0}),braceR:new B(\"}\"),parenL:new B(\"(\",{beforeExpr:!0,startsExpr:!0}),parenR:new B(\")\"),comma:new B(\",\",k),semi:new B(\";\",k),colon:new B(\":\",k),dot:new B(\".\"),question:new B(\"?\",k),questionDot:new B(\"?.\"),arrow:new B(\"=>\",k),template:new B(\"template\"),invalidTemplate:new B(\"invalidTemplate\"),ellipsis:new B(\"...\",k),backQuote:new B(\"`\",C),dollarBraceL:new B(\"${\",{beforeExpr:!0,startsExpr:!0}),eq:new B(\"=\",{beforeExpr:!0,isAssign:!0}),assign:new B(\"_=\",{beforeExpr:!0,isAssign:!0}),incDec:new B(\"++/--\",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new B(\"!/~\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:I(\"||\",1),logicalAND:I(\"&&\",2),bitwiseOR:I(\"|\",3),bitwiseXOR:I(\"^\",4),bitwiseAND:I(\"&\",5),equality:I(\"==/!=/===/!==\",6),relational:I(\"/<=/>=\",7),bitShift:I(\"<>/>>>\",8),plusMin:new B(\"+/-\",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:I(\"%\",10),star:I(\"*\",10),slash:I(\"/\",10),starstar:new B(\"**\",{beforeExpr:!0}),coalesce:I(\"??\",1),_break:L(\"break\"),_case:L(\"case\",k),_catch:L(\"catch\"),_continue:L(\"continue\"),_debugger:L(\"debugger\"),_default:L(\"default\",k),_do:L(\"do\",{isLoop:!0,beforeExpr:!0}),_else:L(\"else\",k),_finally:L(\"finally\"),_for:L(\"for\",{isLoop:!0}),_function:L(\"function\",C),_if:L(\"if\"),_return:L(\"return\",k),_switch:L(\"switch\"),_throw:L(\"throw\",k),_try:L(\"try\"),_var:L(\"var\"),_const:L(\"const\"),_while:L(\"while\",{isLoop:!0}),_with:L(\"with\"),_new:L(\"new\",{beforeExpr:!0,startsExpr:!0}),_this:L(\"this\",C),_super:L(\"super\",C),_class:L(\"class\",C),_extends:L(\"extends\",k),_export:L(\"export\"),_import:L(\"import\",C),_null:L(\"null\",C),_true:L(\"true\",C),_false:L(\"false\",C),_in:L(\"in\",{beforeExpr:!0,binop:7}),_instanceof:L(\"instanceof\",{beforeExpr:!0,binop:7}),_typeof:L(\"typeof\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:L(\"void\",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:L(\"delete\",{beforeExpr:!0,prefix:!0,startsExpr:!0})},_=/\\r\\n?|\\n|\\u2028|\\u2029/,P=new RegExp(_.source,\"g\");function M(e){return e===10||e===13||e===8232||e===8233}function ee(e,t,r){r===void 0&&(r=e.length);for(var s=t;s=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),w(t.onToken)){var s=t.onToken;t.onToken=function(a){return s.push(a)}}return w(t.onComment)&&(t.onComment=ft(t,t.onComment)),t}function ft(e,t){return function(r,s,a,h,c,d){var x={type:r?\"Block\":\"Line\",value:s,start:a,end:h};e.locations&&(x.loc=new X(this,c,d)),e.ranges&&(x.range=[a,h]),t.push(x)}}var Ee=1,ge=2,De=4,Ue=8,cr=16,pr=32,dt=64,fr=128,Oe=256,mt=Ee|ge|Oe;function vt(e,t){return ge|(e?De:0)|(t?Ue:0)}var ze=0,gt=1,fe=2,dr=3,mr=4,vr=5,Z=function(t,r,s){this.options=t=pt(t),this.sourceFile=t.sourceFile,this.keywords=f(E[t.ecmaVersion>=6?6:t.sourceType===\"module\"?\"5module\":5]);var a=\"\";t.allowReserved!==!0&&(a=l[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType===\"module\"&&(a+=\" await\")),this.reservedWords=f(a);var h=(a?a+\" \":\"\")+l.strict;this.reservedWordsStrict=f(h),this.reservedWordsStrictBind=f(h+\" \"+l.strictBind),this.input=String(r),this.containsEsc=!1,s?(this.pos=s,this.lineStart=this.input.lastIndexOf(`\n`,s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(_).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=i.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType===\"module\",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&t.allowHashBang&&this.input.slice(0,2)===\"#!\"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(Ee),this.regexpState=null,this.privateNameStack=[]},le={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};Z.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},le.inFunction.get=function(){return(this.currentVarScope().flags&ge)>0},le.inGenerator.get=function(){return(this.currentVarScope().flags&Ue)>0&&!this.currentVarScope().inClassFieldInit},le.inAsync.get=function(){return(this.currentVarScope().flags&De)>0&&!this.currentVarScope().inClassFieldInit},le.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e];if(t.inClassFieldInit||t.flags&Oe)return!1;if(t.flags&ge)return(t.flags&De)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},le.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&dt)>0||r||this.options.allowSuperOutsideMethod},le.allowDirectSuper.get=function(){return(this.currentThisScope().flags&fr)>0},le.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},le.allowNewDotTarget.get=function(){var e=this.currentThisScope(),t=e.flags,r=e.inClassFieldInit;return(t&(ge|Oe))>0||r},le.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&Oe)>0},Z.extend=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];for(var s=this,a=0;a=,?^&]/.test(a)||a===\"!\"&&this.input.charAt(s+1)===\"=\")}e+=t[0].length,te.lastIndex=e,e+=te.exec(this.input)[0].length,this.input[e]===\";\"&&e++}},se.eat=function(e){return this.type===e?(this.next(),!0):!1},se.isContextual=function(e){return this.type===i.name&&this.value===e&&!this.containsEsc},se.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1},se.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},se.canInsertSemicolon=function(){return this.type===i.eof||this.type===i.braceR||_.test(this.input.slice(this.lastTokEnd,this.start))},se.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},se.semicolon=function(){!this.eat(i.semi)&&!this.insertSemicolon()&&this.unexpected()},se.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},se.expect=function(e){this.eat(e)||this.unexpected()},se.unexpected=function(e){this.raise(e!=null?e:this.start,\"Unexpected token\")};function We(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}se.checkPatternErrors=function(e,t){if(!!e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,\"Comma is not permitted after the rest element\");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,\"Parenthesized pattern\")}},se.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,s=e.doubleProto;if(!t)return r>=0||s>=0;r>=0&&this.raise(r,\"Shorthand property assignments are valid only in destructuring patterns\"),s>=0&&this.raiseRecoverable(s,\"Redefinition of __proto__ property\")},se.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&s<56320)return!0;if(e)return!1;if(s===123)return!0;if(v(s,!0)){for(var a=r+1;q(s=this.input.charCodeAt(a),!0);)++a;if(s===92||s>55295&&s<56320)return!0;var h=this.input.slice(r,a);if(!y.test(h))return!0}return!1},j.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual(\"async\"))return!1;te.lastIndex=this.pos;var e=te.exec(this.input),t=this.pos+e[0].length,r;return!_.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)===\"function\"&&(t+8===this.input.length||!(q(r=this.input.charCodeAt(t+8))||r>55295&&r<56320))},j.parseStatement=function(e,t,r){var s=this.type,a=this.startNode(),h;switch(this.isLet(e)&&(s=i._var,h=\"let\"),s){case i._break:case i._continue:return this.parseBreakContinueStatement(a,s.keyword);case i._debugger:return this.parseDebuggerStatement(a);case i._do:return this.parseDoStatement(a);case i._for:return this.parseForStatement(a);case i._function:return e&&(this.strict||e!==\"if\"&&e!==\"label\")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1,!e);case i._class:return e&&this.unexpected(),this.parseClass(a,!0);case i._if:return this.parseIfStatement(a);case i._return:return this.parseReturnStatement(a);case i._switch:return this.parseSwitchStatement(a);case i._throw:return this.parseThrowStatement(a);case i._try:return this.parseTryStatement(a);case i._const:case i._var:return h=h||this.value,e&&h!==\"var\"&&this.unexpected(),this.parseVarStatement(a,h);case i._while:return this.parseWhileStatement(a);case i._with:return this.parseWithStatement(a);case i.braceL:return this.parseBlock(!0,a);case i.semi:return this.parseEmptyStatement(a);case i._export:case i._import:if(this.options.ecmaVersion>10&&s===i._import){te.lastIndex=this.pos;var c=te.exec(this.input),d=this.pos+c[0].length,x=this.input.charCodeAt(d);if(x===40||x===46)return this.parseExpressionStatement(a,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,\"'import' and 'export' may only appear at the top level\"),this.inModule||this.raise(this.start,\"'import' and 'export' may appear only with 'sourceType: module'\")),s===i._import?this.parseImport(a):this.parseExport(a,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(a,!0,!e);var U=this.value,W=this.parseExpression();return s===i.name&&W.type===\"Identifier\"&&this.eat(i.colon)?this.parseLabeledStatement(a,U,W,e):this.parseExpressionStatement(a,W)}},j.parseBreakContinueStatement=function(e,t){var r=t===\"break\";this.next(),this.eat(i.semi)||this.insertSemicolon()?e.label=null:this.type!==i.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var s=0;s=6?this.eat(i.semi):this.semicolon(),this.finishNode(e,\"DoWhileStatement\")},j.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual(\"await\")?this.lastTokStart:-1;if(this.labels.push(xt),this.enterScope(0),this.expect(i.parenL),this.type===i.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===i._var||this.type===i._const||r){var s=this.startNode(),a=r?\"let\":this.value;return this.next(),this.parseVar(s,!0,a),this.finishNode(s,\"VariableDeclaration\"),(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\"))&&s.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,s)):(t>-1&&this.unexpected(t),this.parseFor(e,s))}var h=this.isContextual(\"let\"),c=!1,d=new We,x=this.parseExpression(t>-1?\"await\":!0,d);return this.type===i._in||(c=this.options.ecmaVersion>=6&&this.isContextual(\"of\"))?(this.options.ecmaVersion>=9&&(this.type===i._in?t>-1&&this.unexpected(t):e.await=t>-1),h&&c&&this.raise(x.start,\"The left-hand side of a for-of loop may not start with 'let'.\"),this.toAssignable(x,!1,d),this.checkLValPattern(x),this.parseForIn(e,x)):(this.checkExpressionErrors(d,!0),t>-1&&this.unexpected(t),this.parseFor(e,x))},j.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,Le|(r?0:yt),!1,t)},j.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(\"if\"),e.alternate=this.eat(i._else)?this.parseStatement(\"if\"):null,this.finishNode(e,\"IfStatement\")},j.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,\"'return' outside of function\"),this.next(),this.eat(i.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,\"ReturnStatement\")},j.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(i.braceL),this.labels.push(Oa),this.enterScope(0);for(var t,r=!1;this.type!==i.braceR;)if(this.type===i._case||this.type===i._default){var s=this.type===i._case;t&&this.finishNode(t,\"SwitchCase\"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),s?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,\"Multiple default clauses\"),r=!0,t.test=null),this.expect(i.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,\"SwitchCase\"),this.next(),this.labels.pop(),this.finishNode(e,\"SwitchStatement\")},j.parseThrowStatement=function(e){return this.next(),_.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,\"Illegal newline after throw\"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,\"ThrowStatement\")};var La=[];j.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===i._catch){var t=this.startNode();if(this.next(),this.eat(i.parenL)){t.param=this.parseBindingAtom();var r=t.param.type===\"Identifier\";this.enterScope(r?pr:0),this.checkLValPattern(t.param,r?mr:fe),this.expect(i.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,\"CatchClause\")}return e.finalizer=this.eat(i._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,\"Missing catch or finally clause\"),this.finishNode(e,\"TryStatement\")},j.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,\"VariableDeclaration\")},j.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(xt),e.body=this.parseStatement(\"while\"),this.labels.pop(),this.finishNode(e,\"WhileStatement\")},j.parseWithStatement=function(e){return this.strict&&this.raise(this.start,\"'with' in strict mode\"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(\"with\"),this.finishNode(e,\"WithStatement\")},j.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,\"EmptyStatement\")},j.parseLabeledStatement=function(e,t,r,s){for(var a=0,h=this.labels;a=0;x--){var U=this.labels[x];if(U.statementStart===e.start)U.statementStart=this.start,U.kind=d;else break}return this.labels.push({name:t,kind:d,statementStart:this.start}),e.body=this.parseStatement(s?s.indexOf(\"label\")===-1?s+\"label\":s:\"label\"),this.labels.pop(),e.label=r,this.finishNode(e,\"LabeledStatement\")},j.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,\"ExpressionStatement\")},j.parseBlock=function(e,t,r){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(i.braceL),e&&this.enterScope(0);this.type!==i.braceR;){var s=this.parseStatement(null);t.body.push(s)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,\"BlockStatement\")},j.parseFor=function(e,t){return e.init=t,this.expect(i.semi),e.test=this.type===i.semi?null:this.parseExpression(),this.expect(i.semi),e.update=this.type===i.parenR?null:this.parseExpression(),this.expect(i.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,\"ForStatement\")},j.parseForIn=function(e,t){var r=this.type===i._in;return this.next(),t.type===\"VariableDeclaration\"&&t.declarations[0].init!=null&&(!r||this.options.ecmaVersion<8||this.strict||t.kind!==\"var\"||t.declarations[0].id.type!==\"Identifier\")&&this.raise(t.start,(r?\"for-in\":\"for-of\")+\" loop variable declaration may not have an initializer\"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(i.parenR),e.body=this.parseStatement(\"for\"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?\"ForInStatement\":\"ForOfStatement\")},j.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r;;){var s=this.startNode();if(this.parseVarId(s,r),this.eat(i.eq)?s.init=this.parseMaybeAssign(t):r===\"const\"&&!(this.type===i._in||this.options.ecmaVersion>=6&&this.isContextual(\"of\"))?this.unexpected():s.id.type!==\"Identifier\"&&!(t&&(this.type===i._in||this.isContextual(\"of\")))?this.raise(this.lastTokEnd,\"Complex binding patterns require an initialization value\"):s.init=null,e.declarations.push(this.finishNode(s,\"VariableDeclarator\")),!this.eat(i.comma))break}return e},j.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,t===\"var\"?gt:fe,!1)};var Le=1,yt=2,gr=4;j.parseFunction=function(e,t,r,s,a){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(this.type===i.star&&t&yt&&this.unexpected(),e.generator=this.eat(i.star)),this.options.ecmaVersion>=8&&(e.async=!!s),t&Le&&(e.id=t&gr&&this.type!==i.name?null:this.parseIdent(),e.id&&!(t&yt)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?gt:fe:dr));var h=this.yieldPos,c=this.awaitPos,d=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(e.async,e.generator)),t&Le||(e.id=this.type===i.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1,a),this.yieldPos=h,this.awaitPos=c,this.awaitIdentPos=d,this.finishNode(e,t&Le?\"FunctionDeclaration\":\"FunctionExpression\")},j.parseFunctionParams=function(e){this.expect(i.parenL),e.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},j.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var s=this.enterClassBody(),a=this.startNode(),h=!1;for(a.body=[],this.expect(i.braceL);this.type!==i.braceR;){var c=this.parseClassElement(e.superClass!==null);c&&(a.body.push(c),c.type===\"MethodDefinition\"&&c.kind===\"constructor\"?(h&&this.raise(c.start,\"Duplicate constructor in the same class\"),h=!0):c.key&&c.key.type===\"PrivateIdentifier\"&&Va(s,c)&&this.raiseRecoverable(c.key.start,\"Identifier '#\"+c.key.name+\"' has already been declared\"))}return this.strict=r,this.next(),e.body=this.finishNode(a,\"ClassBody\"),this.exitClassBody(),this.finishNode(e,t?\"ClassDeclaration\":\"ClassExpression\")},j.parseClassElement=function(e){if(this.eat(i.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),s=\"\",a=!1,h=!1,c=\"method\",d=!1;if(this.eatContextual(\"static\")){if(t>=13&&this.eat(i.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===i.star?d=!0:s=\"static\"}if(r.static=d,!s&&t>=8&&this.eatContextual(\"async\")&&((this.isClassElementNameStart()||this.type===i.star)&&!this.canInsertSemicolon()?h=!0:s=\"async\"),!s&&(t>=9||!h)&&this.eat(i.star)&&(a=!0),!s&&!h&&!a){var x=this.value;(this.eatContextual(\"get\")||this.eatContextual(\"set\"))&&(this.isClassElementNameStart()?c=x:s=x)}if(s?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=s,this.finishNode(r.key,\"Identifier\")):this.parseClassElementName(r),t<13||this.type===i.parenL||c!==\"method\"||a||h){var U=!r.static&&Ge(r,\"constructor\"),W=U&&e;U&&c!==\"method\"&&this.raise(r.key.start,\"Constructor can't have get/set modifier\"),r.kind=U?\"constructor\":c,this.parseClassMethod(r,a,h,W)}else this.parseClassField(r);return r},j.isClassElementNameStart=function(){return this.type===i.name||this.type===i.privateId||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword},j.parseClassElementName=function(e){this.type===i.privateId?(this.value===\"constructor\"&&this.raise(this.start,\"Classes can't have an element named '#constructor'\"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},j.parseClassMethod=function(e,t,r,s){var a=e.key;e.kind===\"constructor\"?(t&&this.raise(a.start,\"Constructor can't be a generator\"),r&&this.raise(a.start,\"Constructor can't be an async method\")):e.static&&Ge(e,\"prototype\")&&this.raise(a.start,\"Classes may not have a static property named prototype\");var h=e.value=this.parseMethod(t,r,s);return e.kind===\"get\"&&h.params.length!==0&&this.raiseRecoverable(h.start,\"getter should have no params\"),e.kind===\"set\"&&h.params.length!==1&&this.raiseRecoverable(h.start,\"setter should have exactly one param\"),e.kind===\"set\"&&h.params[0].type===\"RestElement\"&&this.raiseRecoverable(h.params[0].start,\"Setter cannot use rest params\"),this.finishNode(e,\"MethodDefinition\")},j.parseClassField=function(e){if(Ge(e,\"constructor\")?this.raise(e.key.start,\"Classes can't have a field named 'constructor'\"):e.static&&Ge(e,\"prototype\")&&this.raise(e.key.start,\"Classes can't have a static field named 'prototype'\"),this.eat(i.eq)){var t=this.currentThisScope(),r=t.inClassFieldInit;t.inClassFieldInit=!0,e.value=this.parseMaybeAssign(),t.inClassFieldInit=r}else e.value=null;return this.semicolon(),this.finishNode(e,\"PropertyDefinition\")},j.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(Oe|dt);this.type!==i.braceR;){var r=this.parseStatement(null);e.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,\"StaticBlock\")},j.parseClassId=function(e,t){this.type===i.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,fe,!1)):(t===!0&&this.unexpected(),e.id=null)},j.parseClassSuper=function(e){e.superClass=this.eat(i._extends)?this.parseExprSubscripts(!1):null},j.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},j.exitClassBody=function(){for(var e=this.privateNameStack.pop(),t=e.declared,r=e.used,s=this.privateNameStack.length,a=s===0?null:this.privateNameStack[s-1],h=0;h=11&&(this.eatContextual(\"as\")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual(\"from\"),this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,\"ExportAllDeclaration\");if(this.eat(i._default)){this.checkExport(t,\"default\",this.lastTokStart);var r;if(this.type===i._function||(r=this.isAsyncFunction())){var s=this.startNode();this.next(),r&&this.next(),e.declaration=this.parseFunction(s,Le|gr,!1,r)}else if(this.type===i._class){var a=this.startNode();e.declaration=this.parseClass(a,\"nullableID\")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,\"ExportDefaultDeclaration\")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),e.declaration.type===\"VariableDeclaration\"?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual(\"from\"))this.type!==i.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var h=0,c=e.specifiers;h=13&&this.type===i.string){var e=this.parseLiteral(this.value);return F.test(e.value)&&this.raise(e.start,\"An export name cannot include a lone surrogate.\"),e}return this.parseIdent(!0)},j.adaptDirectivePrologue=function(e){for(var t=0;t=6&&e)switch(e.type){case\"Identifier\":this.inAsync&&e.name===\"await\"&&this.raise(e.start,\"Cannot use 'await' as identifier inside an async function\");break;case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":break;case\"ObjectExpression\":e.type=\"ObjectPattern\",r&&this.checkPatternErrors(r,!0);for(var s=0,a=e.properties;s=8&&!c&&d.name===\"async\"&&!this.canInsertSemicolon()&&this.eat(i._function))return this.overrideContext(Q.f_expr),this.parseFunction(this.startNodeAt(a,h),0,!1,!0,t);if(s&&!this.canInsertSemicolon()){if(this.eat(i.arrow))return this.parseArrowExpression(this.startNodeAt(a,h),[d],!1,t);if(this.options.ecmaVersion>=8&&d.name===\"async\"&&this.type===i.name&&!c&&(!this.potentialArrowInForAwait||this.value!==\"of\"||this.containsEsc))return d=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(i.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,h),[d],!0,t)}return d;case i.regexp:var x=this.value;return r=this.parseLiteral(x.value),r.regex={pattern:x.pattern,flags:x.flags},r;case i.num:case i.string:return this.parseLiteral(this.value);case i._null:case i._true:case i._false:return r=this.startNode(),r.value=this.type===i._null?null:this.type===i._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,\"Literal\");case i.parenL:var U=this.start,W=this.parseParenAndDistinguishExpression(s,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(W)&&(e.parenthesizedAssign=U),e.parenthesizedBind<0&&(e.parenthesizedBind=U)),W;case i.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(i.bracketR,!0,!0,e),this.finishNode(r,\"ArrayExpression\");case i.braceL:return this.overrideContext(Q.b_expr),this.parseObj(!1,e);case i._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case i._class:return this.parseClass(this.startNode(),!1);case i._new:return this.parseNew();case i.backQuote:return this.parseTemplate();case i._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},z.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword import\");var t=this.parseIdent(!0);switch(this.type){case i.parenL:return this.parseDynamicImport(e);case i.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},z.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(i.parenR)){var t=this.start;this.eat(i.comma)&&this.eat(i.parenR)?this.raiseRecoverable(t,\"Trailing comma is not allowed in import()\"):this.unexpected(t)}return this.finishNode(e,\"ImportExpression\")},z.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==\"meta\"&&this.raiseRecoverable(e.property.start,\"The only valid meta property for import is 'import.meta'\"),t&&this.raiseRecoverable(e.start,\"'import.meta' must not contain escaped characters\"),this.options.sourceType!==\"module\"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,\"Cannot use 'import.meta' outside a module\"),this.finishNode(e,\"MetaProperty\")},z.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,\"\")),this.next(),this.finishNode(t,\"Literal\")},z.parseParenExpression=function(){this.expect(i.parenL);var e=this.parseExpression();return this.expect(i.parenR),e},z.parseParenAndDistinguishExpression=function(e,t){var r=this.start,s=this.startLoc,a,h=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var c=this.start,d=this.startLoc,x=[],U=!0,W=!1,re=new We,be=this.yieldPos,je=this.awaitPos,Fe;for(this.yieldPos=0,this.awaitPos=0;this.type!==i.parenR;)if(U?U=!1:this.expect(i.comma),h&&this.afterTrailingComma(i.parenR,!0)){W=!0;break}else if(this.type===i.ellipsis){Fe=this.start,x.push(this.parseParenItem(this.parseRestBinding())),this.type===i.comma&&this.raise(this.start,\"Comma is not permitted after the rest element\");break}else x.push(this.parseMaybeAssign(!1,re,this.parseParenItem));var Qe=this.lastTokEnd,Be=this.lastTokEndLoc;if(this.expect(i.parenR),e&&!this.canInsertSemicolon()&&this.eat(i.arrow))return this.checkPatternErrors(re,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=be,this.awaitPos=je,this.parseParenArrowList(r,s,x,t);(!x.length||W)&&this.unexpected(this.lastTokStart),Fe&&this.unexpected(Fe),this.checkExpressionErrors(re,!0),this.yieldPos=be||this.yieldPos,this.awaitPos=je||this.awaitPos,x.length>1?(a=this.startNodeAt(c,d),a.expressions=x,this.finishNodeAt(a,\"SequenceExpression\",Qe,Be)):a=x[0]}else a=this.parseParenExpression();if(this.options.preserveParens){var Te=this.startNodeAt(r,s);return Te.expression=a,this.finishNode(Te,\"ParenthesizedExpression\")}else return a},z.parseParenItem=function(e){return e},z.parseParenArrowList=function(e,t,r,s){return this.parseArrowExpression(this.startNodeAt(e,t),r,!1,s)};var Ra=[];z.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword new\");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(i.dot)){e.meta=t;var r=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==\"target\"&&this.raiseRecoverable(e.property.start,\"The only valid meta property for new is 'new.target'\"),r&&this.raiseRecoverable(e.start,\"'new.target' must not contain escaped characters\"),this.allowNewDotTarget||this.raiseRecoverable(e.start,\"'new.target' can only be used in functions and class static block\"),this.finishNode(e,\"MetaProperty\")}var s=this.start,a=this.startLoc,h=this.type===i._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),s,a,!0,!1),h&&e.callee.type===\"ImportExpression\"&&this.raise(s,\"Cannot use new with import()\"),this.eat(i.parenL)?e.arguments=this.parseExprList(i.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Ra,this.finishNode(e,\"NewExpression\")},z.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===i.invalidTemplate?(t||this.raiseRecoverable(this.start,\"Bad escape sequence in untagged template literal\"),r.value={raw:this.value,cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\\r\\n?/g,`\n`),cooked:this.value},this.next(),r.tail=this.type===i.backQuote,this.finishNode(r,\"TemplateElement\")},z.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var s=this.parseTemplateElement({isTagged:t});for(r.quasis=[s];!s.tail;)this.type===i.eof&&this.raise(this.pos,\"Unterminated template literal\"),this.expect(i.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(i.braceR),r.quasis.push(s=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,\"TemplateLiteral\")},z.isAsyncProp=function(e){return!e.computed&&e.key.type===\"Identifier\"&&e.key.name===\"async\"&&(this.type===i.name||this.type===i.num||this.type===i.string||this.type===i.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===i.star)&&!_.test(this.input.slice(this.lastTokEnd,this.start))},z.parseObj=function(e,t){var r=this.startNode(),s=!0,a={};for(r.properties=[],this.next();!this.eat(i.braceR);){if(s)s=!1;else if(this.expect(i.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(i.braceR))break;var h=this.parseProperty(e,t);e||this.checkPropClash(h,a,t),r.properties.push(h)}return this.finishNode(r,e?\"ObjectPattern\":\"ObjectExpression\")},z.parseProperty=function(e,t){var r=this.startNode(),s,a,h,c;if(this.options.ecmaVersion>=9&&this.eat(i.ellipsis))return e?(r.argument=this.parseIdent(!1),this.type===i.comma&&this.raise(this.start,\"Comma is not permitted after the rest element\"),this.finishNode(r,\"RestElement\")):(this.type===i.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),r.argument=this.parseMaybeAssign(!1,t),this.type===i.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(r,\"SpreadElement\"));this.options.ecmaVersion>=6&&(r.method=!1,r.shorthand=!1,(e||t)&&(h=this.start,c=this.startLoc),e||(s=this.eat(i.star)));var d=this.containsEsc;return this.parsePropertyName(r),!e&&!d&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(r)?(a=!0,s=this.options.ecmaVersion>=9&&this.eat(i.star),this.parsePropertyName(r,t)):a=!1,this.parsePropertyValue(r,e,s,a,h,c,t,d),this.finishNode(r,\"Property\")},z.parsePropertyValue=function(e,t,r,s,a,h,c,d){if((r||s)&&this.type===i.colon&&this.unexpected(),this.eat(i.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,c),e.kind=\"init\";else if(this.options.ecmaVersion>=6&&this.type===i.parenL)t&&this.unexpected(),e.kind=\"init\",e.method=!0,e.value=this.parseMethod(r,s);else if(!t&&!d&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type===\"Identifier\"&&(e.key.name===\"get\"||e.key.name===\"set\")&&this.type!==i.comma&&this.type!==i.braceR&&this.type!==i.eq){(r||s)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var x=e.kind===\"get\"?0:1;if(e.value.params.length!==x){var U=e.value.start;e.kind===\"get\"?this.raiseRecoverable(U,\"getter should have no params\"):this.raiseRecoverable(U,\"setter should have exactly one param\")}else e.kind===\"set\"&&e.value.params[0].type===\"RestElement\"&&this.raiseRecoverable(e.value.params[0].start,\"Setter cannot use rest params\")}else this.options.ecmaVersion>=6&&!e.computed&&e.key.type===\"Identifier\"?((r||s)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name===\"await\"&&!this.awaitIdentPos&&(this.awaitIdentPos=a),e.kind=\"init\",t?e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key)):this.type===i.eq&&c?(c.shorthandAssign<0&&(c.shorthandAssign=this.start),e.value=this.parseMaybeDefault(a,h,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected()},z.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(i.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(i.bracketR),e.key;e.computed=!1}return e.key=this.type===i.num||this.type===i.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==\"never\")},z.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},z.parseMethod=function(e,t,r){var s=this.startNode(),a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=e),this.options.ecmaVersion>=8&&(s.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(vt(t,s.generator)|dt|(r?fr:0)),this.expect(i.parenL),s.params=this.parseBindingList(i.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1,!0,!1),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(s,\"FunctionExpression\")},z.parseArrowExpression=function(e,t,r,s){var a=this.yieldPos,h=this.awaitPos,c=this.awaitIdentPos;return this.enterScope(vt(r,!1)|cr),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,s),this.yieldPos=a,this.awaitPos=h,this.awaitIdentPos=c,this.finishNode(e,\"ArrowFunctionExpression\")},z.parseFunctionBody=function(e,t,r,s){var a=t&&this.type!==i.braceL,h=this.strict,c=!1;if(a)e.body=this.parseMaybeAssign(s),e.expression=!0,this.checkParams(e,!1);else{var d=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!h||d)&&(c=this.strictDirective(this.end),c&&d&&this.raiseRecoverable(e.start,\"Illegal 'use strict' directive in function with non-simple parameter list\"));var x=this.labels;this.labels=[],c&&(this.strict=!0),this.checkParams(e,!h&&!c&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,vr),e.body=this.parseBlock(!1,void 0,c&&!h),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=x}this.exitScope()},z.isSimpleParamList=function(e){for(var t=0,r=e;t-1||a.functions.indexOf(e)>-1||a.var.indexOf(e)>-1,a.lexical.push(e),this.inModule&&a.flags&Ee&&delete this.undefinedExports[e]}else if(t===mr){var h=this.currentScope();h.lexical.push(e)}else if(t===dr){var c=this.currentScope();this.treatFunctionsAsVar?s=c.lexical.indexOf(e)>-1:s=c.lexical.indexOf(e)>-1||c.var.indexOf(e)>-1,c.functions.push(e)}else for(var d=this.scopeStack.length-1;d>=0;--d){var x=this.scopeStack[d];if(x.lexical.indexOf(e)>-1&&!(x.flags&pr&&x.lexical[0]===e)||!this.treatFunctionsAsVarInScope(x)&&x.functions.indexOf(e)>-1){s=!0;break}if(x.var.push(e),this.inModule&&x.flags&Ee&&delete this.undefinedExports[e],x.flags&mt)break}s&&this.raiseRecoverable(r,\"Identifier '\"+e+\"' has already been declared\")},xe.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},xe.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},xe.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt)return t}},xe.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&mt&&!(t.flags&cr))return t}};var Ve=function(t,r,s){this.type=\"\",this.start=r,this.end=0,t.options.locations&&(this.loc=new X(t,s)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[r,0])},Re=Z.prototype;Re.startNode=function(){return new Ve(this,this.start,this.startLoc)},Re.startNodeAt=function(e,t){return new Ve(this,e,t)};function yr(e,t,r,s){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=s),this.options.ranges&&(e.range[1]=r),e}Re.finishNode=function(e,t){return yr.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},Re.finishNodeAt=function(e,t,r,s){return yr.call(this,e,t,r,s)},Re.copyNode=function(e){var t=new Ve(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var Ar=\"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\",Cr=Ar+\" Extended_Pictographic\",Er=Cr,br=Er+\" EBase EComp EMod EPres ExtPict\",qa=br,Ma={9:Ar,10:Cr,11:Er,12:br,13:qa},_r=\"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\",Sr=\"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\",wr=Sr+\" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\",kr=wr+\" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\",Fr=kr+\" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\",Ua=Fr+\" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\",za={9:Sr,10:wr,11:kr,12:Fr,13:Ua},Br={};function Wa(e){var t=Br[e]={binary:f(Ma[e]+\" \"+_r),nonBinary:{General_Category:f(_r),Script:f(za[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var At=0,Tr=[9,10,11,12,13];At=6?\"uy\":\"\")+(t.options.ecmaVersion>=9?\"s\":\"\")+(t.options.ecmaVersion>=13?\"d\":\"\"),this.unicodeProperties=Br[t.options.ecmaVersion>=13?13:t.options.ecmaVersion],this.source=\"\",this.flags=\"\",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=\"\",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};de.prototype.reset=function(t,r,s){var a=s.indexOf(\"u\")!==-1;this.start=t|0,this.source=r+\"\",this.flags=s,this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchN=a&&this.parser.options.ecmaVersion>=9},de.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,\"Invalid regular expression: /\"+this.source+\"/: \"+t)},de.prototype.at=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return-1;var h=s.charCodeAt(t);if(!(r||this.switchU)||h<=55295||h>=57344||t+1>=a)return h;var c=s.charCodeAt(t+1);return c>=56320&&c<=57343?(h<<10)+c-56613888:h},de.prototype.nextIndex=function(t,r){r===void 0&&(r=!1);var s=this.source,a=s.length;if(t>=a)return a;var h=s.charCodeAt(t),c;return!(r||this.switchU)||h<=55295||h>=57344||t+1>=a||(c=s.charCodeAt(t+1))<56320||c>57343?t+1:t+2},de.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)},de.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},de.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)},de.prototype.eat=function(t,r){return r===void 0&&(r=!1),this.current(r)===t?(this.advance(r),!0):!1};function Xe(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}O.validateRegExpFlags=function(e){for(var t=e.validFlags,r=e.flags,s=0;s-1&&this.raise(e.start,\"Duplicate regular expression flag\")}},O.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},O.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue=\"\",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise(\"Unmatched ')'\"),(e.eat(93)||e.eat(125))&&e.raise(\"Lone quantifier brackets\")),e.maxBackReference>e.numCapturingParens&&e.raise(\"Invalid escape\");for(var t=0,r=e.backReferenceNames;t=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise(\"Unterminated group\"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1},O.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1},O.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},O.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var s=0,a=-1;if(this.regexp_eatDecimalDigits(e)&&(s=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(a=e.lastIntValue),e.eat(125)))return a!==-1&&a=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise(\"Invalid group\"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise(\"Unterminated group\")}return!1},O.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},O.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise(\"Nothing to repeat\"),!1},O.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ir(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ir(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}O.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;(r=e.current())!==-1&&!Ir(r);)e.advance();return e.pos!==t},O.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1},O.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e)){e.groupNames.indexOf(e.lastStringValue)!==-1&&e.raise(\"Duplicate capture group name\"),e.groupNames.push(e.lastStringValue);return}e.raise(\"Invalid group\")}},O.regexp_eatGroupName=function(e){if(e.lastStringValue=\"\",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise(\"Invalid capture group name\")}return!1},O.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue=\"\",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=Xe(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Xe(e.lastIntValue);return!0}return!1},O.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Ka(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Ka(e){return v(e,!0)||e===36||e===95}O.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,s=e.current(r);return e.advance(r),s===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(s=e.lastIntValue),Xa(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)};function Xa(e){return q(e,!0)||e===36||e===95||e===8204||e===8205}O.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise(\"Invalid unicode escape\"),e.raise(\"Invalid escape\")),!1)},O.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1},O.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise(\"Invalid named reference\")}return!1},O.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},O.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},O.regexp_eatZero=function(e){return e.current()===48&&!He(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1},O.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1},O.regexp_eatControlLetter=function(e){var t=e.current();return Pr(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Pr(e){return e>=65&&e<=90||e>=97&&e<=122}O.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var r=e.pos,s=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(s&&a>=55296&&a<=56319){var h=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var c=e.lastIntValue;if(c>=56320&&c<=57343)return e.lastIntValue=(a-55296)*1024+(c-56320)+65536,!0}e.pos=h,e.lastIntValue=a}return!0}if(s&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Ha(e.lastIntValue))return!0;s&&e.raise(\"Invalid unicode escape\"),e.pos=r}return!1};function Ha(e){return e>=0&&e<=1114111}O.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1},O.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1},O.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Ja(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(t===80||t===112)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise(\"Invalid property name\")}return!1};function Ja(e){return e===100||e===68||e===115||e===83||e===119||e===87}O.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var s=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,s),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var a=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,a),!0}return!1},O.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){D(e.unicodeProperties.nonBinary,t)||e.raise(\"Invalid property name\"),e.unicodeProperties.nonBinary[t].test(r)||e.raise(\"Invalid property value\")},O.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise(\"Invalid property name\")},O.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue=\"\";Nr(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==\"\"};function Nr(e){return Pr(e)||e===95}O.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=\"\";Ya(t=e.current());)e.lastStringValue+=Xe(t),e.advance();return e.lastStringValue!==\"\"};function Ya(e){return Nr(e)||He(e)}O.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},O.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise(\"Unterminated character class\")}return!1},O.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;e.switchU&&(t===-1||r===-1)&&e.raise(\"Invalid character class\"),t!==-1&&r!==-1&&t>r&&e.raise(\"Range out of order in character class\")}}},O.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(r===99||Lr(r))&&e.raise(\"Invalid class escape\"),e.raise(\"Invalid escape\")}e.pos=t}var s=e.current();return s!==93?(e.lastIntValue=s,e.advance(),!0):!1},O.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},O.regexp_eatClassControlLetter=function(e){var t=e.current();return He(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1},O.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise(\"Invalid escape\"),e.pos=t}return!1},O.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;He(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t};function He(e){return e>=48&&e<=57}O.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Dr(r=e.current());)e.lastIntValue=16*e.lastIntValue+Or(r),e.advance();return e.pos!==t};function Dr(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Or(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}O.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+r*8+e.lastIntValue:e.lastIntValue=t*8+r}else e.lastIntValue=t;return!0}return!1},O.regexp_eatOctalDigit=function(e){var t=e.current();return Lr(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Lr(e){return e>=48&&e<=55}O.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var s=0;s=this.input.length)return this.finishToken(i.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())},G.readToken=function(e){return v(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)},G.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888},G.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,r=this.input.indexOf(\"*/\",this.pos+=2);if(r===-1&&this.raise(this.pos-2,\"Unterminated comment\"),this.pos=r+2,this.options.locations)for(var s=void 0,a=t;(s=ee(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=s;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,e,this.curPosition())},G.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),s=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&ae.test(String.fromCharCode(e)))++this.pos;else break e}}},G.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)},G.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(i.ellipsis)):(++this.pos,this.finishToken(i.dot))},G.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(i.assign,2):this.finishOp(i.slash,1)},G.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,s=e===42?i.star:i.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++r,s=i.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(i.assign,r+1):this.finishOp(s,r)},G.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(i.assign,3)}return this.finishOp(e===124?i.logicalOR:i.logicalAND,2)}return t===61?this.finishOp(i.assign,2):this.finishOp(e===124?i.bitwiseOR:i.bitwiseAND,1)},G.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(i.assign,2):this.finishOp(i.bitwiseXOR,1)},G.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||_.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(i.incDec,2):t===61?this.finishOp(i.assign,2):this.finishOp(i.plusMin,1)},G.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+r)===61?this.finishOp(i.assign,r+1):this.finishOp(i.bitShift,r)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(r=2),this.finishOp(i.relational,r))},G.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(i.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(i.arrow)):this.finishOp(e===61?i.eq:i.prefix,1)},G.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(i.questionDot,2)}if(t===63){if(e>=12){var s=this.input.charCodeAt(this.pos+2);if(s===61)return this.finishOp(i.assign,3)}return this.finishOp(i.coalesce,2)}}return this.finishOp(i.question,1)},G.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),v(t,!0)||t===92))return this.finishToken(i.privateId,this.readWord1());this.raise(this.pos,\"Unexpected character '\"+Ye(t)+\"'\")},G.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(i.parenL);case 41:return++this.pos,this.finishToken(i.parenR);case 59:return++this.pos,this.finishToken(i.semi);case 44:return++this.pos,this.finishToken(i.comma);case 91:return++this.pos,this.finishToken(i.bracketL);case 93:return++this.pos,this.finishToken(i.bracketR);case 123:return++this.pos,this.finishToken(i.braceL);case 125:return++this.pos,this.finishToken(i.braceR);case 58:return++this.pos,this.finishToken(i.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(i.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(i.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,\"Unexpected character '\"+Ye(e)+\"'\")},G.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)},G.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,\"Unterminated regular expression\");var s=this.input.charAt(this.pos);if(_.test(s)&&this.raise(r,\"Unterminated regular expression\"),e)e=!1;else{if(s===\"[\")t=!0;else if(s===\"]\"&&t)t=!1;else if(s===\"/\"&&!t)break;e=s===\"\\\\\"}++this.pos}var a=this.input.slice(r,this.pos);++this.pos;var h=this.pos,c=this.readWord1();this.containsEsc&&this.unexpected(h);var d=this.regexpState||(this.regexpState=new de(this));d.reset(r,a,c),this.validateRegExpFlags(d),this.validateRegExpPattern(d);var x=null;try{x=new RegExp(a,c)}catch{}return this.finishToken(i.regexp,{pattern:a,flags:c,value:x})},G.readInt=function(e,t,r){for(var s=this.options.ecmaVersion>=12&&t===void 0,a=r&&this.input.charCodeAt(this.pos)===48,h=this.pos,c=0,d=0,x=0,U=t==null?1/0:t;x=97?re=W-97+10:W>=65?re=W-65+10:W>=48&&W<=57?re=W-48:re=1/0,re>=e)break;d=W,c=c*e+re}return s&&d===95&&this.raiseRecoverable(this.pos-1,\"Numeric separator is not allowed at the last of digits\"),this.pos===h||t!=null&&this.pos-h!==t?null:c};function Qa(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,\"\"))}function Vr(e){return typeof BigInt!=\"function\"?null:BigInt(e.replace(/_/g,\"\"))}G.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return r==null&&this.raise(this.start+2,\"Expected number in radix \"+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(r=Vr(this.input.slice(t,this.pos)),++this.pos):v(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(i.num,r)},G.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,\"Invalid number\");var r=this.pos-t>=2&&this.input.charCodeAt(t)===48;r&&this.strict&&this.raise(t,\"Invalid number\");var s=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&s===110){var a=Vr(this.input.slice(t,this.pos));return++this.pos,v(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\"),this.finishToken(i.num,a)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),s===46&&!r&&(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),(s===69||s===101)&&!r&&(s=this.input.charCodeAt(++this.pos),(s===43||s===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,\"Invalid number\")),v(this.fullCharCodeAtPos())&&this.raise(this.pos,\"Identifier directly after number\");var h=Qa(this.input.slice(t,this.pos),r);return this.finishToken(i.num,h)},G.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var r=++this.pos;t=this.readHexChar(this.input.indexOf(\"}\",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(r,\"Code point out of bounds\")}else t=this.readHexChar(4);return t};function Ye(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}G.readString=function(e){for(var t=\"\",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");var s=this.input.charCodeAt(this.pos);if(s===e)break;s===92?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):s===8232||s===8233?(this.options.ecmaVersion<10&&this.raise(this.start,\"Unterminated string constant\"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(M(s)&&this.raise(this.start,\"Unterminated string constant\"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(i.string,t)};var Rr={};G.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Rr)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},G.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Rr;this.raise(e,t)},G.readTmplToken=function(){for(var e=\"\",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated template\");var r=this.input.charCodeAt(this.pos);if(r===96||r===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===i.template||this.type===i.invalidTemplate)?r===36?(this.pos+=2,this.finishToken(i.dollarBraceL)):(++this.pos,this.finishToken(i.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(i.template,e));if(r===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(M(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=`\n`;break;default:e+=String.fromCharCode(r);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},G.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(s,8);return a>255&&(s=s.slice(0,-1),a=parseInt(s,8)),this.pos+=s.length-1,t=this.input.charCodeAt(this.pos),(s!==\"0\"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-s.length,e?\"Octal literal in template string\":\"Octal literal in strict mode\"),String.fromCharCode(a)}return M(t)?\"\":String.fromCharCode(t)}},G.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return r===null&&this.invalidStringToken(t,\"Bad character escape sequence\"),r},G.readWord1=function(){this.containsEsc=!1;for(var e=\"\",t=!0,r=this.pos,s=this.options.ecmaVersion>=6;this.pos\",nbsp:\"\\xA0\",iexcl:\"\\xA1\",cent:\"\\xA2\",pound:\"\\xA3\",curren:\"\\xA4\",yen:\"\\xA5\",brvbar:\"\\xA6\",sect:\"\\xA7\",uml:\"\\xA8\",copy:\"\\xA9\",ordf:\"\\xAA\",laquo:\"\\xAB\",not:\"\\xAC\",shy:\"\\xAD\",reg:\"\\xAE\",macr:\"\\xAF\",deg:\"\\xB0\",plusmn:\"\\xB1\",sup2:\"\\xB2\",sup3:\"\\xB3\",acute:\"\\xB4\",micro:\"\\xB5\",para:\"\\xB6\",middot:\"\\xB7\",cedil:\"\\xB8\",sup1:\"\\xB9\",ordm:\"\\xBA\",raquo:\"\\xBB\",frac14:\"\\xBC\",frac12:\"\\xBD\",frac34:\"\\xBE\",iquest:\"\\xBF\",Agrave:\"\\xC0\",Aacute:\"\\xC1\",Acirc:\"\\xC2\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Aring:\"\\xC5\",AElig:\"\\xC6\",Ccedil:\"\\xC7\",Egrave:\"\\xC8\",Eacute:\"\\xC9\",Ecirc:\"\\xCA\",Euml:\"\\xCB\",Igrave:\"\\xCC\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Iuml:\"\\xCF\",ETH:\"\\xD0\",Ntilde:\"\\xD1\",Ograve:\"\\xD2\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",times:\"\\xD7\",Oslash:\"\\xD8\",Ugrave:\"\\xD9\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",THORN:\"\\xDE\",szlig:\"\\xDF\",agrave:\"\\xE0\",aacute:\"\\xE1\",acirc:\"\\xE2\",atilde:\"\\xE3\",auml:\"\\xE4\",aring:\"\\xE5\",aelig:\"\\xE6\",ccedil:\"\\xE7\",egrave:\"\\xE8\",eacute:\"\\xE9\",ecirc:\"\\xEA\",euml:\"\\xEB\",igrave:\"\\xEC\",iacute:\"\\xED\",icirc:\"\\xEE\",iuml:\"\\xEF\",eth:\"\\xF0\",ntilde:\"\\xF1\",ograve:\"\\xF2\",oacute:\"\\xF3\",ocirc:\"\\xF4\",otilde:\"\\xF5\",ouml:\"\\xF6\",divide:\"\\xF7\",oslash:\"\\xF8\",ugrave:\"\\xF9\",uacute:\"\\xFA\",ucirc:\"\\xFB\",uuml:\"\\xFC\",yacute:\"\\xFD\",thorn:\"\\xFE\",yuml:\"\\xFF\",OElig:\"\\u0152\",oelig:\"\\u0153\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Yuml:\"\\u0178\",fnof:\"\\u0192\",circ:\"\\u02C6\",tilde:\"\\u02DC\",Alpha:\"\\u0391\",Beta:\"\\u0392\",Gamma:\"\\u0393\",Delta:\"\\u0394\",Epsilon:\"\\u0395\",Zeta:\"\\u0396\",Eta:\"\\u0397\",Theta:\"\\u0398\",Iota:\"\\u0399\",Kappa:\"\\u039A\",Lambda:\"\\u039B\",Mu:\"\\u039C\",Nu:\"\\u039D\",Xi:\"\\u039E\",Omicron:\"\\u039F\",Pi:\"\\u03A0\",Rho:\"\\u03A1\",Sigma:\"\\u03A3\",Tau:\"\\u03A4\",Upsilon:\"\\u03A5\",Phi:\"\\u03A6\",Chi:\"\\u03A7\",Psi:\"\\u03A8\",Omega:\"\\u03A9\",alpha:\"\\u03B1\",beta:\"\\u03B2\",gamma:\"\\u03B3\",delta:\"\\u03B4\",epsilon:\"\\u03B5\",zeta:\"\\u03B6\",eta:\"\\u03B7\",theta:\"\\u03B8\",iota:\"\\u03B9\",kappa:\"\\u03BA\",lambda:\"\\u03BB\",mu:\"\\u03BC\",nu:\"\\u03BD\",xi:\"\\u03BE\",omicron:\"\\u03BF\",pi:\"\\u03C0\",rho:\"\\u03C1\",sigmaf:\"\\u03C2\",sigma:\"\\u03C3\",tau:\"\\u03C4\",upsilon:\"\\u03C5\",phi:\"\\u03C6\",chi:\"\\u03C7\",psi:\"\\u03C8\",omega:\"\\u03C9\",thetasym:\"\\u03D1\",upsih:\"\\u03D2\",piv:\"\\u03D6\",ensp:\"\\u2002\",emsp:\"\\u2003\",thinsp:\"\\u2009\",zwnj:\"\\u200C\",zwj:\"\\u200D\",lrm:\"\\u200E\",rlm:\"\\u200F\",ndash:\"\\u2013\",mdash:\"\\u2014\",lsquo:\"\\u2018\",rsquo:\"\\u2019\",sbquo:\"\\u201A\",ldquo:\"\\u201C\",rdquo:\"\\u201D\",bdquo:\"\\u201E\",dagger:\"\\u2020\",Dagger:\"\\u2021\",bull:\"\\u2022\",hellip:\"\\u2026\",permil:\"\\u2030\",prime:\"\\u2032\",Prime:\"\\u2033\",lsaquo:\"\\u2039\",rsaquo:\"\\u203A\",oline:\"\\u203E\",frasl:\"\\u2044\",euro:\"\\u20AC\",image:\"\\u2111\",weierp:\"\\u2118\",real:\"\\u211C\",trade:\"\\u2122\",alefsym:\"\\u2135\",larr:\"\\u2190\",uarr:\"\\u2191\",rarr:\"\\u2192\",darr:\"\\u2193\",harr:\"\\u2194\",crarr:\"\\u21B5\",lArr:\"\\u21D0\",uArr:\"\\u21D1\",rArr:\"\\u21D2\",dArr:\"\\u21D3\",hArr:\"\\u21D4\",forall:\"\\u2200\",part:\"\\u2202\",exist:\"\\u2203\",empty:\"\\u2205\",nabla:\"\\u2207\",isin:\"\\u2208\",notin:\"\\u2209\",ni:\"\\u220B\",prod:\"\\u220F\",sum:\"\\u2211\",minus:\"\\u2212\",lowast:\"\\u2217\",radic:\"\\u221A\",prop:\"\\u221D\",infin:\"\\u221E\",ang:\"\\u2220\",and:\"\\u2227\",or:\"\\u2228\",cap:\"\\u2229\",cup:\"\\u222A\",int:\"\\u222B\",there4:\"\\u2234\",sim:\"\\u223C\",cong:\"\\u2245\",asymp:\"\\u2248\",ne:\"\\u2260\",equiv:\"\\u2261\",le:\"\\u2264\",ge:\"\\u2265\",sub:\"\\u2282\",sup:\"\\u2283\",nsub:\"\\u2284\",sube:\"\\u2286\",supe:\"\\u2287\",oplus:\"\\u2295\",otimes:\"\\u2297\",perp:\"\\u22A5\",sdot:\"\\u22C5\",lceil:\"\\u2308\",rceil:\"\\u2309\",lfloor:\"\\u230A\",rfloor:\"\\u230B\",lang:\"\\u2329\",rang:\"\\u232A\",loz:\"\\u25CA\",spades:\"\\u2660\",clubs:\"\\u2663\",hearts:\"\\u2665\",diams:\"\\u2666\"}}}),Pa=Y({\"node_modules/acorn-jsx/index.js\"(n,o){\"use strict\";J();var u=Sh(),l=/^[\\da-fA-F]+$/,m=/^\\d+$/,E=new WeakMap;function y(g){g=g.Parser.acorn||g;let V=E.get(g);if(!V){let R=g.tokTypes,N=g.TokContext,T=g.TokenType,v=new N(\"...\",!0,!0),I={tc_oTag:v,tc_cTag:q,tc_expr:B},k={jsxName:new T(\"jsxName\"),jsxText:new T(\"jsxText\",{beforeExpr:!0}),jsxTagStart:new T(\"jsxTagStart\",{startsExpr:!0}),jsxTagEnd:new T(\"jsxTagEnd\")};k.jsxTagStart.updateContext=function(){this.context.push(B),this.context.push(v),this.exprAllowed=!1},k.jsxTagEnd.updateContext=function(C){let H=this.context.pop();H===v&&C===R.slash||H===q?(this.context.pop(),this.exprAllowed=this.curContext()===B):this.exprAllowed=!0},V={tokContexts:I,tokTypes:k},E.set(g,V)}return V}function A(g){if(!g)return g;if(g.type===\"JSXIdentifier\")return g.name;if(g.type===\"JSXNamespacedName\")return g.namespace.name+\":\"+g.name.name;if(g.type===\"JSXMemberExpression\")return A(g.object)+\".\"+A(g.property)}o.exports=function(g){return g=g||{},function(V){return b({allowNamespaces:g.allowNamespaces!==!1,allowNamespacedObjects:!!g.allowNamespacedObjects},V)}},Object.defineProperty(o.exports,\"tokTypes\",{get:function(){return y(ct()).tokTypes},configurable:!0,enumerable:!0});function b(g,V){let R=V.acorn||ct(),N=y(R),T=R.tokTypes,v=N.tokTypes,q=R.tokContexts,B=N.tokContexts.tc_oTag,I=N.tokContexts.tc_cTag,k=N.tokContexts.tc_expr,C=R.isNewLine,H=R.isIdentifierStart,L=R.isIdentifierChar;return class extends V{static get acornJsx(){return N}jsx_readToken(){let i=\"\",_=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated JSX contents\");let P=this.input.charCodeAt(this.pos);switch(P){case 60:case 123:return this.pos===this.start?P===60&&this.exprAllowed?(++this.pos,this.finishToken(v.jsxTagStart)):this.getTokenFromCode(P):(i+=this.input.slice(_,this.pos),this.finishToken(v.jsxText,i));case 38:i+=this.input.slice(_,this.pos),i+=this.jsx_readEntity(),_=this.pos;break;case 62:case 125:this.raise(this.pos,\"Unexpected token `\"+this.input[this.pos]+\"`. Did you mean `\"+(P===62?\">\":\"}\")+'` or `{\"'+this.input[this.pos]+'\"}`?');default:C(P)?(i+=this.input.slice(_,this.pos),i+=this.jsx_readNewLine(!0),_=this.pos):++this.pos}}}jsx_readNewLine(i){let _=this.input.charCodeAt(this.pos),P;return++this.pos,_===13&&this.input.charCodeAt(this.pos)===10?(++this.pos,P=i?`\n`:`\\r\n`):P=String.fromCharCode(_),this.options.locations&&(++this.curLine,this.lineStart=this.pos),P}jsx_readString(i){let _=\"\",P=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");let M=this.input.charCodeAt(this.pos);if(M===i)break;M===38?(_+=this.input.slice(P,this.pos),_+=this.jsx_readEntity(),P=this.pos):C(M)?(_+=this.input.slice(P,this.pos),_+=this.jsx_readNewLine(!1),P=this.pos):++this.pos}return _+=this.input.slice(P,this.pos++),this.finishToken(T.string,_)}jsx_readEntity(){let i=\"\",_=0,P,M=this.input[this.pos];M!==\"&\"&&this.raise(this.pos,\"Entity must start with an ampersand\");let ee=++this.pos;for(;this.pos\")}let te=ee.name?\"Element\":\"Fragment\";return P[\"opening\"+te]=ee,P[\"closing\"+te]=ae,P.children=M,this.type===T.relational&&this.value===\"<\"&&this.raise(this.start,\"Adjacent JSX elements must be wrapped in an enclosing tag\"),this.finishNode(P,\"JSX\"+te)}jsx_parseText(){let i=this.parseLiteral(this.value);return i.type=\"JSXText\",i}jsx_parseElement(){let i=this.start,_=this.startLoc;return this.next(),this.jsx_parseElementAt(i,_)}parseExprAtom(i){return this.type===v.jsxText?this.jsx_parseText():this.type===v.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(i)}readToken(i){let _=this.curContext();if(_===k)return this.jsx_readToken();if(_===B||_===I){if(H(i))return this.jsx_readWord();if(i==62)return++this.pos,this.finishToken(v.jsxTagEnd);if((i===34||i===39)&&_==B)return this.jsx_readString(i)}return i===60&&this.exprAllowed&&this.input.charCodeAt(this.pos+1)!==33?(++this.pos,this.finishToken(v.jsxTagStart)):super.readToken(i)}updateContext(i){if(this.type==T.braceL){var _=this.curContext();_==B?this.context.push(q.b_expr):_==k?this.context.push(q.b_tmpl):super.updateContext(i),this.exprAllowed=!0}else if(this.type===T.slash&&i===v.jsxTagStart)this.context.length-=2,this.context.push(I),this.exprAllowed=!1;else return super.updateContext(i)}}}}}),wh=Y({\"src/language-js/parse/acorn.js\"(n,o){\"use strict\";J();var u=lr(),l=fa(),m=Fa(),E=Ia(),y={ecmaVersion:\"latest\",sourceType:\"module\",allowReserved:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,allowAwaitOutsideFunction:!0,allowSuperOutsideMethod:!0,allowHashBang:!0,locations:!0,ranges:!0};function A(N){let{message:T,loc:v}=N;if(!v)return N;let{line:q,column:B}=v;return u(T.replace(/ \\(\\d+:\\d+\\)$/,\"\"),{start:{line:q,column:B+1}})}var b,g=()=>{if(!b){let{Parser:N}=ct(),T=Pa();b=N.extend(T())}return b};function V(N,T){let v=g(),q=[],B=[],I=v.parse(N,Object.assign(Object.assign({},y),{},{sourceType:T,onComment:q,onToken:B}));return I.comments=q,I.tokens=B,I}function R(N,T){let v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:q,error:B}=l(()=>V(N,\"module\"),()=>V(N,\"script\"));if(!q)throw A(B);return v.originalText=N,E(q,v)}o.exports=m(R)}}),kh=Y({\"src/language-js/parse/utils/replace-hashbang.js\"(n,o){\"use strict\";J();function u(l){return l.charAt(0)===\"#\"&&l.charAt(1)===\"!\"?\"//\"+l.slice(2):l}o.exports=u}}),Fh=Y({\"node_modules/espree/dist/espree.cjs\"(n){\"use strict\";J(),Object.defineProperty(n,\"__esModule\",{value:!0});var o=ct(),u=Pa(),l;function m(p){return p&&typeof p==\"object\"&&\"default\"in p?p:{default:p}}function E(p){if(p&&p.__esModule)return p;var D=Object.create(null);return p&&Object.keys(p).forEach(function(w){if(w!==\"default\"){var f=Object.getOwnPropertyDescriptor(p,w);Object.defineProperty(D,w,f.get?f:{enumerable:!0,get:function(){return p[w]}})}}),D.default=p,Object.freeze(D)}var y=E(o),A=m(u),b=E(l),g={Boolean:\"Boolean\",EOF:\"\",Identifier:\"Identifier\",PrivateIdentifier:\"PrivateIdentifier\",Keyword:\"Keyword\",Null:\"Null\",Numeric:\"Numeric\",Punctuator:\"Punctuator\",String:\"String\",RegularExpression:\"RegularExpression\",Template:\"Template\",JSXIdentifier:\"JSXIdentifier\",JSXText:\"JSXText\"};function V(p,D){let w=p[0],f=p[p.length-1],F={type:g.Template,value:D.slice(w.start,f.end)};return w.loc&&(F.loc={start:w.loc.start,end:f.loc.end}),w.range&&(F.start=w.range[0],F.end=f.range[1],F.range=[F.start,F.end]),F}function R(p,D){this._acornTokTypes=p,this._tokens=[],this._curlyBrace=null,this._code=D}R.prototype={constructor:R,translate(p,D){let w=p.type,f=this._acornTokTypes;if(w===f.name)p.type=g.Identifier,p.value===\"static\"&&(p.type=g.Keyword),D.ecmaVersion>5&&(p.value===\"yield\"||p.value===\"let\")&&(p.type=g.Keyword);else if(w===f.privateId)p.type=g.PrivateIdentifier;else if(w===f.semi||w===f.comma||w===f.parenL||w===f.parenR||w===f.braceL||w===f.braceR||w===f.dot||w===f.bracketL||w===f.colon||w===f.question||w===f.bracketR||w===f.ellipsis||w===f.arrow||w===f.jsxTagStart||w===f.incDec||w===f.starstar||w===f.jsxTagEnd||w===f.prefix||w===f.questionDot||w.binop&&!w.keyword||w.isAssign)p.type=g.Punctuator,p.value=this._code.slice(p.start,p.end);else if(w===f.jsxName)p.type=g.JSXIdentifier;else if(w.label===\"jsxText\"||w===f.jsxAttrValueToken)p.type=g.JSXText;else if(w.keyword)w.keyword===\"true\"||w.keyword===\"false\"?p.type=g.Boolean:w.keyword===\"null\"?p.type=g.Null:p.type=g.Keyword;else if(w===f.num)p.type=g.Numeric,p.value=this._code.slice(p.start,p.end);else if(w===f.string)D.jsxAttrValueToken?(D.jsxAttrValueToken=!1,p.type=g.JSXText):p.type=g.String,p.value=this._code.slice(p.start,p.end);else if(w===f.regexp){p.type=g.RegularExpression;let F=p.value;p.regex={flags:F.flags,pattern:F.pattern},p.value=\"/\".concat(F.pattern,\"/\").concat(F.flags)}return p},onToken(p,D){let w=this,f=this._acornTokTypes,F=D.tokens,K=this._tokens;function X(){F.push(V(w._tokens,w._code)),w._tokens=[]}if(p.type===f.eof){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D));return}if(p.type===f.backQuote){this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),K.push(p),K.length>1&&X();return}if(p.type===f.dollarBraceL){K.push(p),X();return}if(p.type===f.braceR){this._curlyBrace&&F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=p;return}if(p.type===f.template||p.type===f.invalidTemplate){this._curlyBrace&&(K.push(this._curlyBrace),this._curlyBrace=null),K.push(p);return}this._curlyBrace&&(F.push(this.translate(this._curlyBrace,D)),this._curlyBrace=null),F.push(this.translate(p,D))}};var N=[3,5,6,7,8,9,10,11,12,13];function T(){return N[N.length-1]}function v(){return[...N]}function q(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:5,D=p===\"latest\"?T():p;if(typeof D!=\"number\")throw new Error('ecmaVersion must be a number or \"latest\". Received value of type '.concat(typeof p,\" instead.\"));if(D>=2015&&(D-=2009),!N.includes(D))throw new Error(\"Invalid ecmaVersion.\");return D}function B(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:\"script\";if(p===\"script\"||p===\"module\")return p;if(p===\"commonjs\")return\"script\";throw new Error(\"Invalid sourceType.\")}function I(p){let D=q(p.ecmaVersion),w=B(p.sourceType),f=p.range===!0,F=p.loc===!0;if(D!==3&&p.allowReserved)throw new Error(\"`allowReserved` is only supported when ecmaVersion is 3\");if(typeof p.allowReserved<\"u\"&&typeof p.allowReserved!=\"boolean\")throw new Error(\"`allowReserved`, when present, must be `true` or `false`\");let K=D===3?p.allowReserved||\"never\":!1,X=p.ecmaFeatures||{},oe=p.sourceType===\"commonjs\"||Boolean(X.globalReturn);if(w===\"module\"&&D<6)throw new Error(\"sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options.\");return Object.assign({},p,{ecmaVersion:D,sourceType:w,ranges:f,locations:F,allowReserved:K,allowReturnOutsideFunction:oe})}var k=Symbol(\"espree's internal state\"),C=Symbol(\"espree's esprimaFinishNode\");function H(p,D,w,f,F,K){let X={type:p?\"Block\":\"Line\",value:D};return typeof w==\"number\"&&(X.start=w,X.end=f,X.range=[w,f]),typeof F==\"object\"&&(X.loc={start:F,end:K}),X}var L=()=>p=>{let D=Object.assign({},p.acorn.tokTypes);return p.acornJsx&&Object.assign(D,p.acornJsx.tokTypes),class extends p{constructor(f,F){(typeof f!=\"object\"||f===null)&&(f={}),typeof F!=\"string\"&&!(F instanceof String)&&(F=String(F));let K=f.sourceType,X=I(f),oe=X.ecmaFeatures||{},me=X.tokens===!0?new R(D,F):null;super({ecmaVersion:X.ecmaVersion,sourceType:X.sourceType,ranges:X.ranges,locations:X.locations,allowReserved:X.allowReserved,allowReturnOutsideFunction:X.allowReturnOutsideFunction,onToken:ve=>{me&&me.onToken(ve,this[k]),ve.type!==D.eof&&(this[k].lastToken=ve)},onComment:(ve,pt,ft,Ee,ge,De)=>{if(this[k].comments){let Ue=H(ve,pt,ft,Ee,ge,De);this[k].comments.push(Ue)}}},F),this[k]={originalSourceType:K||X.sourceType,tokens:me?[]:null,comments:X.comment===!0?[]:null,impliedStrict:oe.impliedStrict===!0&&this.options.ecmaVersion>=5,ecmaVersion:this.options.ecmaVersion,jsxAttrValueToken:!1,lastToken:null,templateElements:[]}}tokenize(){do this.next();while(this.type!==D.eof);this.next();let f=this[k],F=f.tokens;return f.comments&&(F.comments=f.comments),F}finishNode(){let f=super.finishNode(...arguments);return this[C](f)}finishNodeAt(){let f=super.finishNodeAt(...arguments);return this[C](f)}parse(){let f=this[k],F=super.parse();if(F.sourceType=f.originalSourceType,f.comments&&(F.comments=f.comments),f.tokens&&(F.tokens=f.tokens),F.body.length){let[K]=F.body;F.range&&(F.range[0]=K.range[0]),F.loc&&(F.loc.start=K.loc.start),F.start=K.start}return f.lastToken&&(F.range&&(F.range[1]=f.lastToken.range[1]),F.loc&&(F.loc.end=f.lastToken.loc.end),F.end=f.lastToken.end),this[k].templateElements.forEach(K=>{let oe=K.tail?1:2;K.start+=-1,K.end+=oe,K.range&&(K.range[0]+=-1,K.range[1]+=oe),K.loc&&(K.loc.start.column+=-1,K.loc.end.column+=oe)}),F}parseTopLevel(f){return this[k].impliedStrict&&(this.strict=!0),super.parseTopLevel(f)}raise(f,F){let K=p.acorn.getLineInfo(this.input,f),X=new SyntaxError(F);throw X.index=f,X.lineNumber=K.line,X.column=K.column+1,X}raiseRecoverable(f,F){this.raise(f,F)}unexpected(f){let F=\"Unexpected token\";if(f!=null){if(this.pos=f,this.options.locations)for(;this.posthis.start&&(F+=\" \".concat(this.input.slice(this.start,this.end))),this.raise(this.start,F)}jsx_readString(f){let F=super.jsx_readString(f);return this.type===D.string&&(this[k].jsxAttrValueToken=!0),F}[C](f){return f.type===\"TemplateElement\"&&this[k].templateElements.push(f),f.type.includes(\"Function\")&&!f.generator&&(f.generator=!1),f}}},i=\"9.3.1\",_={_regular:null,_jsx:null,get regular(){return this._regular===null&&(this._regular=y.Parser.extend(L())),this._regular},get jsx(){return this._jsx===null&&(this._jsx=y.Parser.extend(A.default(),L())),this._jsx},get(p){return Boolean(p&&p.ecmaFeatures&&p.ecmaFeatures.jsx)?this.jsx:this.regular}};function P(p,D){let w=_.get(D);return(!D||D.tokens!==!0)&&(D=Object.assign({},D,{tokens:!0})),new w(D,p).tokenize()}function M(p,D){let w=_.get(D);return new w(D,p).parse()}var ee=i,ae=function(){return b.KEYS}(),te=void 0,ie=T(),Ne=v();n.Syntax=te,n.VisitorKeys=ae,n.latestEcmaVersion=ie,n.parse=M,n.supportedEcmaVersions=Ne,n.tokenize=P,n.version=ee}}),Bh=Y({\"src/language-js/parse/espree.js\"(n,o){\"use strict\";J();var u=lr(),l=fa(),m=Fa(),E=kh(),y=Ia(),A={ecmaVersion:\"latest\",range:!0,loc:!0,comment:!0,tokens:!0,sourceType:\"module\",ecmaFeatures:{jsx:!0,globalReturn:!0,impliedStrict:!1}};function b(V){let{message:R,lineNumber:N,column:T}=V;return typeof N!=\"number\"?V:u(R,{start:{line:N,column:T}})}function g(V,R){let N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:T}=Fh(),v=E(V),{result:q,error:B}=l(()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:\"module\"})),()=>T(v,Object.assign(Object.assign({},A),{},{sourceType:\"script\"})));if(!q)throw b(B);return N.originalText=V,y(q,N)}o.exports=m(g)}});J();var Th=wh(),Ih=Bh();Na.exports={parsers:{acorn:Th,espree:Ih}}});return Ph();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.flow=e()}})(function(){\"use strict\";var Be=(H0,z0)=>()=>(z0||H0((z0={exports:{}}).exports,z0),z0.exports);var ru=Be((_oe,rn0)=>{var h_=function(H0){return H0&&H0.Math==Math&&H0};rn0.exports=h_(typeof globalThis==\"object\"&&globalThis)||h_(typeof window==\"object\"&&window)||h_(typeof self==\"object\"&&self)||h_(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var Qs=Be((yoe,en0)=>{en0.exports=function(H0){try{return!!H0()}catch{return!0}}});var fv=Be((hoe,nn0)=>{var N7e=Qs();nn0.exports=!N7e(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var jR=Be((doe,tn0)=>{var C7e=Qs();tn0.exports=!C7e(function(){var H0=function(){}.bind();return typeof H0!=\"function\"||H0.hasOwnProperty(\"prototype\")})});var k_=Be((koe,un0)=>{var P7e=jR(),d_=Function.prototype.call;un0.exports=P7e?d_.bind(d_):function(){return d_.apply(d_,arguments)}});var on0=Be(xn0=>{\"use strict\";var in0={}.propertyIsEnumerable,fn0=Object.getOwnPropertyDescriptor,D7e=fn0&&!in0.call({1:2},1);xn0.f=D7e?function(z0){var xr=fn0(this,z0);return!!xr&&xr.enumerable}:in0});var GR=Be((Eoe,an0)=>{an0.exports=function(H0,z0){return{enumerable:!(H0&1),configurable:!(H0&2),writable:!(H0&4),value:z0}}});var zc=Be((Soe,vn0)=>{var cn0=jR(),sn0=Function.prototype,L7e=sn0.bind,MR=sn0.call,R7e=cn0&&L7e.bind(MR,MR);vn0.exports=cn0?function(H0){return H0&&R7e(H0)}:function(H0){return H0&&function(){return MR.apply(H0,arguments)}}});var pn0=Be((goe,bn0)=>{var ln0=zc(),j7e=ln0({}.toString),G7e=ln0(\"\".slice);bn0.exports=function(H0){return G7e(j7e(H0),8,-1)}});var _n0=Be((Foe,mn0)=>{var M7e=ru(),B7e=zc(),q7e=Qs(),U7e=pn0(),BR=M7e.Object,H7e=B7e(\"\".split);mn0.exports=q7e(function(){return!BR(\"z\").propertyIsEnumerable(0)})?function(H0){return U7e(H0)==\"String\"?H7e(H0,\"\"):BR(H0)}:BR});var qR=Be((Toe,yn0)=>{var X7e=ru(),Y7e=X7e.TypeError;yn0.exports=function(H0){if(H0==null)throw Y7e(\"Can't call method on \"+H0);return H0}});var w_=Be((Ooe,hn0)=>{var V7e=_n0(),z7e=qR();hn0.exports=function(H0){return V7e(z7e(H0))}});var Kc=Be((Ioe,dn0)=>{dn0.exports=function(H0){return typeof H0==\"function\"}});var S2=Be((Aoe,kn0)=>{var K7e=Kc();kn0.exports=function(H0){return typeof H0==\"object\"?H0!==null:K7e(H0)}});var E_=Be((Noe,wn0)=>{var UR=ru(),W7e=Kc(),J7e=function(H0){return W7e(H0)?H0:void 0};wn0.exports=function(H0,z0){return arguments.length<2?J7e(UR[H0]):UR[H0]&&UR[H0][z0]}});var Sn0=Be((Coe,En0)=>{var $7e=zc();En0.exports=$7e({}.isPrototypeOf)});var Fn0=Be((Poe,gn0)=>{var Z7e=E_();gn0.exports=Z7e(\"navigator\",\"userAgent\")||\"\"});var Pn0=Be((Doe,Cn0)=>{var Nn0=ru(),HR=Fn0(),Tn0=Nn0.process,On0=Nn0.Deno,In0=Tn0&&Tn0.versions||On0&&On0.version,An0=In0&&In0.v8,$i,S_;An0&&($i=An0.split(\".\"),S_=$i[0]>0&&$i[0]<4?1:+($i[0]+$i[1]));!S_&&HR&&($i=HR.match(/Edge\\/(\\d+)/),(!$i||$i[1]>=74)&&($i=HR.match(/Chrome\\/(\\d+)/),$i&&(S_=+$i[1])));Cn0.exports=S_});var XR=Be((Loe,Ln0)=>{var Dn0=Pn0(),Q7e=Qs();Ln0.exports=!!Object.getOwnPropertySymbols&&!Q7e(function(){var H0=Symbol();return!String(H0)||!(Object(H0)instanceof Symbol)||!Symbol.sham&&Dn0&&Dn0<41})});var YR=Be((Roe,Rn0)=>{var rie=XR();Rn0.exports=rie&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var VR=Be((joe,jn0)=>{var eie=ru(),nie=E_(),tie=Kc(),uie=Sn0(),iie=YR(),fie=eie.Object;jn0.exports=iie?function(H0){return typeof H0==\"symbol\"}:function(H0){var z0=nie(\"Symbol\");return tie(z0)&&uie(z0.prototype,fie(H0))}});var Mn0=Be((Goe,Gn0)=>{var xie=ru(),oie=xie.String;Gn0.exports=function(H0){try{return oie(H0)}catch{return\"Object\"}}});var qn0=Be((Moe,Bn0)=>{var aie=ru(),cie=Kc(),sie=Mn0(),vie=aie.TypeError;Bn0.exports=function(H0){if(cie(H0))return H0;throw vie(sie(H0)+\" is not a function\")}});var Hn0=Be((Boe,Un0)=>{var lie=qn0();Un0.exports=function(H0,z0){var xr=H0[z0];return xr==null?void 0:lie(xr)}});var Yn0=Be((qoe,Xn0)=>{var bie=ru(),zR=k_(),KR=Kc(),WR=S2(),pie=bie.TypeError;Xn0.exports=function(H0,z0){var xr,gr;if(z0===\"string\"&&KR(xr=H0.toString)&&!WR(gr=zR(xr,H0))||KR(xr=H0.valueOf)&&!WR(gr=zR(xr,H0))||z0!==\"string\"&&KR(xr=H0.toString)&&!WR(gr=zR(xr,H0)))return gr;throw pie(\"Can't convert object to primitive value\")}});var zn0=Be((Uoe,Vn0)=>{Vn0.exports=!1});var g_=Be((Hoe,Wn0)=>{var Kn0=ru(),mie=Object.defineProperty;Wn0.exports=function(H0,z0){try{mie(Kn0,H0,{value:z0,configurable:!0,writable:!0})}catch{Kn0[H0]=z0}return z0}});var F_=Be((Xoe,$n0)=>{var _ie=ru(),yie=g_(),Jn0=\"__core-js_shared__\",hie=_ie[Jn0]||yie(Jn0,{});$n0.exports=hie});var JR=Be((Yoe,Qn0)=>{var die=zn0(),Zn0=F_();(Qn0.exports=function(H0,z0){return Zn0[H0]||(Zn0[H0]=z0!==void 0?z0:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:die?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var et0=Be((Voe,rt0)=>{var kie=ru(),wie=qR(),Eie=kie.Object;rt0.exports=function(H0){return Eie(wie(H0))}});var r1=Be((zoe,nt0)=>{var Sie=zc(),gie=et0(),Fie=Sie({}.hasOwnProperty);nt0.exports=Object.hasOwn||function(z0,xr){return Fie(gie(z0),xr)}});var $R=Be((Koe,tt0)=>{var Tie=zc(),Oie=0,Iie=Math.random(),Aie=Tie(1 .toString);tt0.exports=function(H0){return\"Symbol(\"+(H0===void 0?\"\":H0)+\")_\"+Aie(++Oie+Iie,36)}});var at0=Be((Woe,ot0)=>{var Nie=ru(),Cie=JR(),ut0=r1(),Pie=$R(),it0=XR(),xt0=YR(),g2=Cie(\"wks\"),xv=Nie.Symbol,ft0=xv&&xv.for,Die=xt0?xv:xv&&xv.withoutSetter||Pie;ot0.exports=function(H0){if(!ut0(g2,H0)||!(it0||typeof g2[H0]==\"string\")){var z0=\"Symbol.\"+H0;it0&&ut0(xv,H0)?g2[H0]=xv[H0]:xt0&&ft0?g2[H0]=ft0(z0):g2[H0]=Die(z0)}return g2[H0]}});var lt0=Be((Joe,vt0)=>{var Lie=ru(),Rie=k_(),ct0=S2(),st0=VR(),jie=Hn0(),Gie=Yn0(),Mie=at0(),Bie=Lie.TypeError,qie=Mie(\"toPrimitive\");vt0.exports=function(H0,z0){if(!ct0(H0)||st0(H0))return H0;var xr=jie(H0,qie),gr;if(xr){if(z0===void 0&&(z0=\"default\"),gr=Rie(xr,H0,z0),!ct0(gr)||st0(gr))return gr;throw Bie(\"Can't convert object to primitive value\")}return z0===void 0&&(z0=\"number\"),Gie(H0,z0)}});var ZR=Be(($oe,bt0)=>{var Uie=lt0(),Hie=VR();bt0.exports=function(H0){var z0=Uie(H0,\"string\");return Hie(z0)?z0:z0+\"\"}});var _t0=Be((Zoe,mt0)=>{var Xie=ru(),pt0=S2(),QR=Xie.document,Yie=pt0(QR)&&pt0(QR.createElement);mt0.exports=function(H0){return Yie?QR.createElement(H0):{}}});var rj=Be((Qoe,yt0)=>{var Vie=fv(),zie=Qs(),Kie=_t0();yt0.exports=!Vie&&!zie(function(){return Object.defineProperty(Kie(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var ej=Be(dt0=>{var Wie=fv(),Jie=k_(),$ie=on0(),Zie=GR(),Qie=w_(),rfe=ZR(),efe=r1(),nfe=rj(),ht0=Object.getOwnPropertyDescriptor;dt0.f=Wie?ht0:function(z0,xr){if(z0=Qie(z0),xr=rfe(xr),nfe)try{return ht0(z0,xr)}catch{}if(efe(z0,xr))return Zie(!Jie($ie.f,z0,xr),z0[xr])}});var wt0=Be((eae,kt0)=>{var tfe=fv(),ufe=Qs();kt0.exports=tfe&&ufe(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var nj=Be((nae,St0)=>{var Et0=ru(),ife=S2(),ffe=Et0.String,xfe=Et0.TypeError;St0.exports=function(H0){if(ife(H0))return H0;throw xfe(ffe(H0)+\" is not an object\")}});var xj=Be(Ft0=>{var ofe=ru(),afe=fv(),cfe=rj(),sfe=wt0(),T_=nj(),gt0=ZR(),vfe=ofe.TypeError,tj=Object.defineProperty,lfe=Object.getOwnPropertyDescriptor,uj=\"enumerable\",ij=\"configurable\",fj=\"writable\";Ft0.f=afe?sfe?function(z0,xr,gr){if(T_(z0),xr=gt0(xr),T_(gr),typeof z0==\"function\"&&xr===\"prototype\"&&\"value\"in gr&&fj in gr&&!gr[fj]){var de=lfe(z0,xr);de&&de[fj]&&(z0[xr]=gr.value,gr={configurable:ij in gr?gr[ij]:de[ij],enumerable:uj in gr?gr[uj]:de[uj],writable:!1})}return tj(z0,xr,gr)}:tj:function(z0,xr,gr){if(T_(z0),xr=gt0(xr),T_(gr),cfe)try{return tj(z0,xr,gr)}catch{}if(\"get\"in gr||\"set\"in gr)throw vfe(\"Accessors not supported\");return\"value\"in gr&&(z0[xr]=gr.value),z0}});var O_=Be((uae,Tt0)=>{var bfe=fv(),pfe=xj(),mfe=GR();Tt0.exports=bfe?function(H0,z0,xr){return pfe.f(H0,z0,mfe(1,xr))}:function(H0,z0,xr){return H0[z0]=xr,H0}});var aj=Be((iae,Ot0)=>{var _fe=zc(),yfe=Kc(),oj=F_(),hfe=_fe(Function.toString);yfe(oj.inspectSource)||(oj.inspectSource=function(H0){return hfe(H0)});Ot0.exports=oj.inspectSource});var Nt0=Be((fae,At0)=>{var dfe=ru(),kfe=Kc(),wfe=aj(),It0=dfe.WeakMap;At0.exports=kfe(It0)&&/native code/.test(wfe(It0))});var Dt0=Be((xae,Pt0)=>{var Efe=JR(),Sfe=$R(),Ct0=Efe(\"keys\");Pt0.exports=function(H0){return Ct0[H0]||(Ct0[H0]=Sfe(H0))}});var cj=Be((oae,Lt0)=>{Lt0.exports={}});var qt0=Be((aae,Bt0)=>{var gfe=Nt0(),Mt0=ru(),sj=zc(),Ffe=S2(),Tfe=O_(),vj=r1(),lj=F_(),Ofe=Dt0(),Ife=cj(),Rt0=\"Object already initialized\",pj=Mt0.TypeError,Afe=Mt0.WeakMap,I_,a4,A_,Nfe=function(H0){return A_(H0)?a4(H0):I_(H0,{})},Cfe=function(H0){return function(z0){var xr;if(!Ffe(z0)||(xr=a4(z0)).type!==H0)throw pj(\"Incompatible receiver, \"+H0+\" required\");return xr}};gfe||lj.state?(e1=lj.state||(lj.state=new Afe),jt0=sj(e1.get),bj=sj(e1.has),Gt0=sj(e1.set),I_=function(H0,z0){if(bj(e1,H0))throw new pj(Rt0);return z0.facade=H0,Gt0(e1,H0,z0),z0},a4=function(H0){return jt0(e1,H0)||{}},A_=function(H0){return bj(e1,H0)}):(ov=Ofe(\"state\"),Ife[ov]=!0,I_=function(H0,z0){if(vj(H0,ov))throw new pj(Rt0);return z0.facade=H0,Tfe(H0,ov,z0),z0},a4=function(H0){return vj(H0,ov)?H0[ov]:{}},A_=function(H0){return vj(H0,ov)});var e1,jt0,bj,Gt0,ov;Bt0.exports={set:I_,get:a4,has:A_,enforce:Nfe,getterFor:Cfe}});var Xt0=Be((cae,Ht0)=>{var mj=fv(),Pfe=r1(),Ut0=Function.prototype,Dfe=mj&&Object.getOwnPropertyDescriptor,_j=Pfe(Ut0,\"name\"),Lfe=_j&&function(){}.name===\"something\",Rfe=_j&&(!mj||mj&&Dfe(Ut0,\"name\").configurable);Ht0.exports={EXISTS:_j,PROPER:Lfe,CONFIGURABLE:Rfe}});var Wt0=Be((sae,Kt0)=>{var jfe=ru(),Yt0=Kc(),Gfe=r1(),Vt0=O_(),Mfe=g_(),Bfe=aj(),zt0=qt0(),qfe=Xt0().CONFIGURABLE,Ufe=zt0.get,Hfe=zt0.enforce,Xfe=String(String).split(\"String\");(Kt0.exports=function(H0,z0,xr,gr){var de=gr?!!gr.unsafe:!1,Ve=gr?!!gr.enumerable:!1,De=gr?!!gr.noTargetGet:!1,Ke=gr&&gr.name!==void 0?gr.name:z0,tn;if(Yt0(xr)&&(String(Ke).slice(0,7)===\"Symbol(\"&&(Ke=\"[\"+String(Ke).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!Gfe(xr,\"name\")||qfe&&xr.name!==Ke)&&Vt0(xr,\"name\",Ke),tn=Hfe(xr),tn.source||(tn.source=Xfe.join(typeof Ke==\"string\"?Ke:\"\"))),H0===jfe){Ve?H0[z0]=xr:Mfe(z0,xr);return}else de?!De&&H0[z0]&&(Ve=!0):delete H0[z0];Ve?H0[z0]=xr:Vt0(H0,z0,xr)})(Function.prototype,\"toString\",function(){return Yt0(this)&&Ufe(this).source||Bfe(this)})});var yj=Be((vae,Jt0)=>{var Yfe=Math.ceil,Vfe=Math.floor;Jt0.exports=function(H0){var z0=+H0;return z0!==z0||z0===0?0:(z0>0?Vfe:Yfe)(z0)}});var Zt0=Be((lae,$t0)=>{var zfe=yj(),Kfe=Math.max,Wfe=Math.min;$t0.exports=function(H0,z0){var xr=zfe(H0);return xr<0?Kfe(xr+z0,0):Wfe(xr,z0)}});var ru0=Be((bae,Qt0)=>{var Jfe=yj(),$fe=Math.min;Qt0.exports=function(H0){return H0>0?$fe(Jfe(H0),9007199254740991):0}});var nu0=Be((pae,eu0)=>{var Zfe=ru0();eu0.exports=function(H0){return Zfe(H0.length)}});var iu0=Be((mae,uu0)=>{var Qfe=w_(),rxe=Zt0(),exe=nu0(),tu0=function(H0){return function(z0,xr,gr){var de=Qfe(z0),Ve=exe(de),De=rxe(gr,Ve),Ke;if(H0&&xr!=xr){for(;Ve>De;)if(Ke=de[De++],Ke!=Ke)return!0}else for(;Ve>De;De++)if((H0||De in de)&&de[De]===xr)return H0||De||0;return!H0&&-1}};uu0.exports={includes:tu0(!0),indexOf:tu0(!1)}});var ou0=Be((_ae,xu0)=>{var nxe=zc(),hj=r1(),txe=w_(),uxe=iu0().indexOf,ixe=cj(),fu0=nxe([].push);xu0.exports=function(H0,z0){var xr=txe(H0),gr=0,de=[],Ve;for(Ve in xr)!hj(ixe,Ve)&&hj(xr,Ve)&&fu0(de,Ve);for(;z0.length>gr;)hj(xr,Ve=z0[gr++])&&(~uxe(de,Ve)||fu0(de,Ve));return de}});var cu0=Be((yae,au0)=>{au0.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var vu0=Be(su0=>{var fxe=ou0(),xxe=cu0(),oxe=xxe.concat(\"length\",\"prototype\");su0.f=Object.getOwnPropertyNames||function(z0){return fxe(z0,oxe)}});var bu0=Be(lu0=>{lu0.f=Object.getOwnPropertySymbols});var mu0=Be((kae,pu0)=>{var axe=E_(),cxe=zc(),sxe=vu0(),vxe=bu0(),lxe=nj(),bxe=cxe([].concat);pu0.exports=axe(\"Reflect\",\"ownKeys\")||function(z0){var xr=sxe.f(lxe(z0)),gr=vxe.f;return gr?bxe(xr,gr(z0)):xr}});var hu0=Be((wae,yu0)=>{var _u0=r1(),pxe=mu0(),mxe=ej(),_xe=xj();yu0.exports=function(H0,z0,xr){for(var gr=pxe(z0),de=_xe.f,Ve=mxe.f,De=0;De{var yxe=Qs(),hxe=Kc(),dxe=/#|\\.prototype\\./,c4=function(H0,z0){var xr=wxe[kxe(H0)];return xr==Sxe?!0:xr==Exe?!1:hxe(z0)?yxe(z0):!!z0},kxe=c4.normalize=function(H0){return String(H0).replace(dxe,\".\").toLowerCase()},wxe=c4.data={},Exe=c4.NATIVE=\"N\",Sxe=c4.POLYFILL=\"P\";du0.exports=c4});var Eu0=Be((Sae,wu0)=>{var dj=ru(),gxe=ej().f,Fxe=O_(),Txe=Wt0(),Oxe=g_(),Ixe=hu0(),Axe=ku0();wu0.exports=function(H0,z0){var xr=H0.target,gr=H0.global,de=H0.stat,Ve,De,Ke,tn,Qn,rt;if(gr?De=dj:de?De=dj[xr]||Oxe(xr,{}):De=(dj[xr]||{}).prototype,De)for(Ke in z0){if(Qn=z0[Ke],H0.noTargetGet?(rt=gxe(De,Ke),tn=rt&&rt.value):tn=De[Ke],Ve=Axe(gr?Ke:xr+(de?\".\":\"#\")+Ke,H0.forced),!Ve&&tn!==void 0){if(typeof Qn==typeof tn)continue;Ixe(Qn,tn)}(H0.sham||tn&&tn.sham)&&Fxe(Qn,\"sham\",!0),Txe(De,Ke,Qn,H0)}}});var Su0=Be(()=>{var Nxe=Eu0(),Cxe=ru();Nxe({global:!0},{globalThis:Cxe})});var gu0=Be(()=>{Su0()});var soe=Be((Iae,zu0)=>{gu0();var Zq=Object.defineProperty,Pxe=Object.getOwnPropertyDescriptor,Qq=Object.getOwnPropertyNames,Dxe=Object.prototype.hasOwnProperty,C_=(H0,z0)=>function(){return H0&&(z0=(0,H0[Qq(H0)[0]])(H0=0)),z0},eu=(H0,z0)=>function(){return z0||(0,H0[Qq(H0)[0]])((z0={exports:{}}).exports,z0),z0.exports},rU=(H0,z0)=>{for(var xr in z0)Zq(H0,xr,{get:z0[xr],enumerable:!0})},Lxe=(H0,z0,xr,gr)=>{if(z0&&typeof z0==\"object\"||typeof z0==\"function\")for(let de of Qq(z0))!Dxe.call(H0,de)&&de!==xr&&Zq(H0,de,{get:()=>z0[de],enumerable:!(gr=Pxe(z0,de))||gr.enumerable});return H0},eU=H0=>Lxe(Zq({},\"__esModule\",{value:!0}),H0),Pt=C_({\"\"(){}}),Fu0=eu({\"src/common/parser-create-error.js\"(H0,z0){\"use strict\";Pt();function xr(gr,de){let Ve=new SyntaxError(gr+\" (\"+de.start.line+\":\"+de.start.column+\")\");return Ve.loc=de,Ve}z0.exports=xr}}),Tu0={};rU(Tu0,{EOL:()=>Sj,arch:()=>Rxe,cpus:()=>Du0,default:()=>Mu0,endianness:()=>Ou0,freemem:()=>Cu0,getNetworkInterfaces:()=>Gu0,hostname:()=>Iu0,loadavg:()=>Au0,networkInterfaces:()=>ju0,platform:()=>jxe,release:()=>Ru0,tmpDir:()=>wj,tmpdir:()=>Ej,totalmem:()=>Pu0,type:()=>Lu0,uptime:()=>Nu0});function Ou0(){if(typeof N_>\"u\"){var H0=new ArrayBuffer(2),z0=new Uint8Array(H0),xr=new Uint16Array(H0);if(z0[0]=1,z0[1]=2,xr[0]===258)N_=\"BE\";else if(xr[0]===513)N_=\"LE\";else throw new Error(\"unable to figure out endianess\")}return N_}function Iu0(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function Au0(){return[]}function Nu0(){return 0}function Cu0(){return Number.MAX_VALUE}function Pu0(){return Number.MAX_VALUE}function Du0(){return[]}function Lu0(){return\"Browser\"}function Ru0(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function ju0(){}function Gu0(){}function Rxe(){return\"javascript\"}function jxe(){return\"browser\"}function wj(){return\"/tmp\"}var N_,Ej,Sj,Mu0,Gxe=C_({\"node-modules-polyfills:os\"(){Pt(),Ej=wj,Sj=`\n`,Mu0={EOL:Sj,tmpdir:Ej,tmpDir:wj,networkInterfaces:ju0,getNetworkInterfaces:Gu0,release:Ru0,type:Lu0,cpus:Du0,totalmem:Pu0,freemem:Cu0,uptime:Nu0,loadavg:Au0,hostname:Iu0,endianness:Ou0}}}),Mxe=eu({\"node-modules-polyfills-commonjs:os\"(H0,z0){Pt();var xr=(Gxe(),eU(Tu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),Bxe=eu({\"node_modules/detect-newline/index.js\"(H0,z0){\"use strict\";Pt();var xr=gr=>{if(typeof gr!=\"string\")throw new TypeError(\"Expected a string\");let de=gr.match(/(?:\\r?\\n)/g)||[];if(de.length===0)return;let Ve=de.filter(Ke=>Ke===`\\r\n`).length,De=de.length-Ve;return Ve>De?`\\r\n`:`\n`};z0.exports=xr,z0.exports.graceful=gr=>typeof gr==\"string\"&&xr(gr)||`\n`}}),qxe=eu({\"node_modules/jest-docblock/build/index.js\"(H0){\"use strict\";Pt(),Object.defineProperty(H0,\"__esModule\",{value:!0}),H0.extract=au,H0.parse=Kt,H0.parseWithComments=Zi,H0.print=Ln,H0.strip=En;function z0(){let fn=Mxe();return z0=function(){return fn},fn}function xr(){let fn=gr(Bxe());return xr=function(){return fn},fn}function gr(fn){return fn&&fn.__esModule?fn:{default:fn}}var de=/\\*\\/$/,Ve=/^\\/\\*\\*/,De=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,Ke=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,tn=/^(\\r?\\n)+/,Qn=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,rt=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,tt=/(\\r?\\n|^) *\\* ?/g,Ot=[];function au(fn){let Ht=fn.match(De);return Ht?Ht[0].trimLeft():\"\"}function En(fn){let Ht=fn.match(De);return Ht&&Ht[0]?fn.substring(Ht[0].length):fn}function Kt(fn){return Zi(fn).pragmas}function Zi(fn){let Ht=(0,xr().default)(fn)||z0().EOL;fn=fn.replace(Ve,\"\").replace(de,\"\").replace(tt,\"$1\");let S7=\"\";for(;S7!==fn;)S7=fn,fn=fn.replace(Qn,\"\".concat(Ht,\"$1 $2\").concat(Ht));fn=fn.replace(tn,\"\").trimRight();let Dt=Object.create(null),ks=fn.replace(rt,\"\").replace(tn,\"\").trimRight(),In;for(;In=rt.exec(fn);){let Wc=In[2].replace(Ke,\"\");typeof Dt[In[1]]==\"string\"||Array.isArray(Dt[In[1]])?Dt[In[1]]=Ot.concat(Dt[In[1]],Wc):Dt[In[1]]=Wc}return{comments:ks,pragmas:Dt}}function Ln(fn){let{comments:Ht=\"\",pragmas:S7={}}=fn,Dt=(0,xr().default)(Ht)||z0().EOL,ks=\"/**\",In=\" *\",Wc=\" */\",Ai=Object.keys(S7),li=Ai.map(g7=>Tn(g7,S7[g7])).reduce((g7,av)=>g7.concat(av),[]).map(g7=>In+\" \"+g7+Dt).join(\"\");if(!Ht){if(Ai.length===0)return\"\";if(Ai.length===1&&!Array.isArray(S7[Ai[0]])){let g7=S7[Ai[0]];return\"\".concat(ks,\" \").concat(Tn(Ai[0],g7)[0]).concat(Wc)}}let jt=Ht.split(Dt).map(g7=>\"\".concat(In,\" \").concat(g7)).join(Dt)+Dt;return ks+Dt+(Ht?jt:\"\")+(Ht&&Ai.length?In+Dt:\"\")+li+Wc}function Tn(fn,Ht){return Ot.concat(Ht).map(S7=>\"@\".concat(fn,\" \").concat(S7).trim())}}}),Uxe=eu({\"src/common/end-of-line.js\"(H0,z0){\"use strict\";Pt();function xr(De){let Ke=De.indexOf(\"\\r\");return Ke>=0?De.charAt(Ke+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function gr(De){switch(De){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function de(De,Ke){let tn;switch(Ke){case`\n`:tn=/\\n/g;break;case\"\\r\":tn=/\\r/g;break;case`\\r\n`:tn=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(Ke),\".\"))}let Qn=De.match(tn);return Qn?Qn.length:0}function Ve(De){return De.replace(/\\r\\n?/g,`\n`)}z0.exports={guessEndOfLine:xr,convertEndOfLineToChars:gr,countEndOfLineChars:de,normalizeEndOfLine:Ve}}}),Hxe=eu({\"src/language-js/utils/get-shebang.js\"(H0,z0){\"use strict\";Pt();function xr(gr){if(!gr.startsWith(\"#!\"))return\"\";let de=gr.indexOf(`\n`);return de===-1?gr:gr.slice(0,de)}z0.exports=xr}}),Xxe=eu({\"src/language-js/pragma.js\"(H0,z0){\"use strict\";Pt();var{parseWithComments:xr,strip:gr,extract:de,print:Ve}=qxe(),{normalizeEndOfLine:De}=Uxe(),Ke=Hxe();function tn(tt){let Ot=Ke(tt);Ot&&(tt=tt.slice(Ot.length+1));let au=de(tt),{pragmas:En,comments:Kt}=xr(au);return{shebang:Ot,text:tt,pragmas:En,comments:Kt}}function Qn(tt){let Ot=Object.keys(tn(tt).pragmas);return Ot.includes(\"prettier\")||Ot.includes(\"format\")}function rt(tt){let{shebang:Ot,text:au,pragmas:En,comments:Kt}=tn(tt),Zi=gr(au),Ln=Ve({pragmas:Object.assign({format:\"\"},En),comments:Kt.trimStart()});return(Ot?\"\".concat(Ot,`\n`):\"\")+De(Ln)+(Zi.startsWith(`\n`)?`\n`:`\n\n`)+Zi}z0.exports={hasPragma:Qn,insertPragma:rt}}}),Yxe=eu({\"src/utils/is-non-empty-array.js\"(H0,z0){\"use strict\";Pt();function xr(gr){return Array.isArray(gr)&&gr.length>0}z0.exports=xr}}),Bu0=eu({\"src/language-js/loc.js\"(H0,z0){\"use strict\";Pt();var xr=Yxe();function gr(tn,Qn){let{ignoreDecorators:rt}=Qn||{};if(!rt){let tt=tn.declaration&&tn.declaration.decorators||tn.decorators;if(xr(tt))return gr(tt[0])}return tn.range?tn.range[0]:tn.start}function de(tn){return tn.range?tn.range[1]:tn.end}function Ve(tn,Qn){let rt=gr(tn);return Number.isInteger(rt)&&rt===gr(Qn)}function De(tn,Qn){let rt=de(tn);return Number.isInteger(rt)&&rt===de(Qn)}function Ke(tn,Qn){return Ve(tn,Qn)&&De(tn,Qn)}z0.exports={locStart:gr,locEnd:de,hasSameLocStart:Ve,hasSameLoc:Ke}}}),Vxe=eu({\"src/language-js/parse/utils/create-parser.js\"(H0,z0){\"use strict\";Pt();var{hasPragma:xr}=Xxe(),{locStart:gr,locEnd:de}=Bu0();function Ve(De){return De=typeof De==\"function\"?{parse:De}:De,Object.assign({astFormat:\"estree\",hasPragma:xr,locStart:gr,locEnd:de},De)}z0.exports=Ve}}),zxe=eu({\"src/language-js/parse/utils/replace-hashbang.js\"(H0,z0){\"use strict\";Pt();function xr(gr){return gr.charAt(0)===\"#\"&&gr.charAt(1)===\"!\"?\"//\"+gr.slice(2):gr}z0.exports=xr}}),Kxe=eu({\"src/language-js/utils/is-ts-keyword-type.js\"(H0,z0){\"use strict\";Pt();function xr(gr){let{type:de}=gr;return de.startsWith(\"TS\")&&de.endsWith(\"Keyword\")}z0.exports=xr}}),Wxe=eu({\"src/language-js/utils/is-block-comment.js\"(H0,z0){\"use strict\";Pt();var xr=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),gr=de=>xr.has(de==null?void 0:de.type);z0.exports=gr}}),Jxe=eu({\"src/language-js/utils/is-type-cast-comment.js\"(H0,z0){\"use strict\";Pt();var xr=Wxe();function gr(de){return xr(de)&&de.value[0]===\"*\"&&/@type\\b/.test(de.value)}z0.exports=gr}}),$xe=eu({\"src/utils/get-last.js\"(H0,z0){\"use strict\";Pt();var xr=gr=>gr[gr.length-1];z0.exports=xr}}),qu0=eu({\"src/language-js/parse/postprocess/visit-node.js\"(H0,z0){\"use strict\";Pt();function xr(gr,de){if(Array.isArray(gr)){for(let Ve=0;Ve{let au=Qn.get(Ot);return!au||!tt.includes(au)}))&&gr(tn,\"Leading decorators must be attached to a class declaration\")}function Ve(Ke,tn){Ke.kind!==167||Ke.modifiers&&!Ke.modifiers.some(tt=>tt.kind===126)||Ke.initializer&&tn.value===null&&gr(tn,\"Abstract property cannot have an initializer\")}function De(Ke,tn){let{esTreeNodeToTSNodeMap:Qn,tsNodeToESTreeNodeMap:rt}=tn.tsParseResult;xr(Ke,tt=>{let Ot=Qn.get(tt);if(!Ot)return;let au=rt.get(Ot);au===tt&&(de(Ot,au,rt),Ve(Ot,au))})}z0.exports={throwErrorForInvalidNodes:De}}}),Qxe=eu({\"src/language-js/parse/postprocess/index.js\"(H0,z0){\"use strict\";Pt();var{locStart:xr,locEnd:gr}=Bu0(),de=Kxe(),Ve=Jxe(),De=$xe(),Ke=qu0(),{throwErrorForInvalidNodes:tn}=Zxe(),Qn=Uu0();function rt(En,Kt){if(Kt.parser===\"typescript\"&&/@|abstract/.test(Kt.originalText)&&tn(En,Kt),Kt.parser!==\"typescript\"&&Kt.parser!==\"flow\"&&Kt.parser!==\"acorn\"&&Kt.parser!==\"espree\"&&Kt.parser!==\"meriyah\"){let Ln=new Set;En=Ke(En,Tn=>{Tn.leadingComments&&Tn.leadingComments.some(Ve)&&Ln.add(xr(Tn))}),En=Ke(En,Tn=>{if(Tn.type===\"ParenthesizedExpression\"){let{expression:fn}=Tn;if(fn.type===\"TypeCastExpression\")return fn.range=Tn.range,fn;let Ht=xr(Tn);if(!Ln.has(Ht))return fn.extra=Object.assign(Object.assign({},fn.extra),{},{parenthesized:!0}),fn}})}return En=Ke(En,Ln=>{switch(Ln.type){case\"ChainExpression\":return tt(Ln.expression);case\"LogicalExpression\":{if(Ot(Ln))return au(Ln);break}case\"VariableDeclaration\":{let Tn=De(Ln.declarations);Tn&&Tn.init&&Zi(Ln,Tn);break}case\"TSParenthesizedType\":return de(Ln.typeAnnotation)||Ln.typeAnnotation.type===\"TSThisType\"||(Ln.typeAnnotation.range=[xr(Ln),gr(Ln)]),Ln.typeAnnotation;case\"TSTypeParameter\":if(typeof Ln.name==\"string\"){let Tn=xr(Ln);Ln.name={type:\"Identifier\",name:Ln.name,range:[Tn,Tn+Ln.name.length]}}break;case\"ObjectExpression\":if(Kt.parser===\"typescript\"){let Tn=Ln.properties.find(fn=>fn.type===\"Property\"&&fn.value.type===\"TSEmptyBodyFunctionExpression\");Tn&&Qn(Tn.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let Tn=De(Ln.expressions);Ln.range=[xr(Ln),Math.min(gr(Tn),gr(Ln))];break}case\"TopicReference\":Kt.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:Tn}=Ln;if(Kt.parser===\"meriyah\"&&Tn&&Tn.type===\"Identifier\"){let fn=Kt.originalText.slice(xr(Tn),gr(Tn));(fn.startsWith('\"')||fn.startsWith(\"'\"))&&(Ln.exported=Object.assign(Object.assign({},Ln.exported),{},{type:\"Literal\",value:Ln.exported.name,raw:fn}))}break}}}),En;function Zi(Ln,Tn){Kt.originalText[gr(Tn)]!==\";\"&&(Ln.range=[xr(Ln),gr(Tn)])}}function tt(En){switch(En.type){case\"CallExpression\":En.type=\"OptionalCallExpression\",En.callee=tt(En.callee);break;case\"MemberExpression\":En.type=\"OptionalMemberExpression\",En.object=tt(En.object);break;case\"TSNonNullExpression\":En.expression=tt(En.expression);break}return En}function Ot(En){return En.type===\"LogicalExpression\"&&En.right.type===\"LogicalExpression\"&&En.operator===En.right.operator}function au(En){return Ot(En)?au({type:\"LogicalExpression\",operator:En.operator,left:au({type:\"LogicalExpression\",operator:En.operator,left:En.left,right:En.right.left,range:[xr(En.left),gr(En.right.left)]}),right:En.right.right,range:[xr(En),gr(En)]}):En}z0.exports=rt}}),Hu0={};rU(Hu0,{default:()=>Xu0});var Xu0,roe=C_({\"node-modules-polyfills:fs\"(){Pt(),Xu0={}}}),kj=eu({\"node-modules-polyfills-commonjs:fs\"(H0,z0){Pt();var xr=(roe(),eU(Hu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),Yu0={};rU(Yu0,{ALPN_ENABLED:()=>Pq,COPYFILE_EXCL:()=>CB,COPYFILE_FICLONE:()=>DB,COPYFILE_FICLONE_FORCE:()=>RB,DH_CHECK_P_NOT_PRIME:()=>Aq,DH_CHECK_P_NOT_SAFE_PRIME:()=>Iq,DH_NOT_SUITABLE_GENERATOR:()=>Cq,DH_UNABLE_TO_CHECK_GENERATOR:()=>Nq,E2BIG:()=>Ij,EACCES:()=>Aj,EADDRINUSE:()=>Nj,EADDRNOTAVAIL:()=>Cj,EAFNOSUPPORT:()=>Pj,EAGAIN:()=>Dj,EALREADY:()=>Lj,EBADF:()=>Rj,EBADMSG:()=>jj,EBUSY:()=>Gj,ECANCELED:()=>Mj,ECHILD:()=>Bj,ECONNABORTED:()=>qj,ECONNREFUSED:()=>Uj,ECONNRESET:()=>Hj,EDEADLK:()=>Xj,EDESTADDRREQ:()=>Yj,EDOM:()=>Vj,EDQUOT:()=>zj,EEXIST:()=>Kj,EFAULT:()=>Wj,EFBIG:()=>Jj,EHOSTUNREACH:()=>$j,EIDRM:()=>Zj,EILSEQ:()=>Qj,EINPROGRESS:()=>rG,EINTR:()=>eG,EINVAL:()=>nG,EIO:()=>tG,EISCONN:()=>uG,EISDIR:()=>iG,ELOOP:()=>fG,EMFILE:()=>xG,EMLINK:()=>oG,EMSGSIZE:()=>aG,EMULTIHOP:()=>cG,ENAMETOOLONG:()=>sG,ENETDOWN:()=>vG,ENETRESET:()=>lG,ENETUNREACH:()=>bG,ENFILE:()=>pG,ENGINE_METHOD_ALL:()=>Tq,ENGINE_METHOD_CIPHERS:()=>Eq,ENGINE_METHOD_DH:()=>dq,ENGINE_METHOD_DIGESTS:()=>Sq,ENGINE_METHOD_DSA:()=>hq,ENGINE_METHOD_EC:()=>wq,ENGINE_METHOD_NONE:()=>Oq,ENGINE_METHOD_PKEY_ASN1_METHS:()=>Fq,ENGINE_METHOD_PKEY_METHS:()=>gq,ENGINE_METHOD_RAND:()=>kq,ENGINE_METHOD_RSA:()=>yq,ENOBUFS:()=>mG,ENODATA:()=>_G,ENODEV:()=>yG,ENOENT:()=>hG,ENOEXEC:()=>dG,ENOLCK:()=>kG,ENOLINK:()=>wG,ENOMEM:()=>EG,ENOMSG:()=>SG,ENOPROTOOPT:()=>gG,ENOSPC:()=>FG,ENOSR:()=>TG,ENOSTR:()=>OG,ENOSYS:()=>IG,ENOTCONN:()=>AG,ENOTDIR:()=>NG,ENOTEMPTY:()=>CG,ENOTSOCK:()=>PG,ENOTSUP:()=>DG,ENOTTY:()=>LG,ENXIO:()=>RG,EOPNOTSUPP:()=>jG,EOVERFLOW:()=>GG,EPERM:()=>MG,EPIPE:()=>BG,EPROTO:()=>qG,EPROTONOSUPPORT:()=>UG,EPROTOTYPE:()=>HG,ERANGE:()=>XG,EROFS:()=>YG,ESPIPE:()=>VG,ESRCH:()=>zG,ESTALE:()=>KG,ETIME:()=>WG,ETIMEDOUT:()=>JG,ETXTBSY:()=>$G,EWOULDBLOCK:()=>ZG,EXDEV:()=>QG,F_OK:()=>TB,OPENSSL_VERSION_NUMBER:()=>jB,O_APPEND:()=>oB,O_CREAT:()=>uB,O_DIRECTORY:()=>aB,O_DSYNC:()=>vB,O_EXCL:()=>iB,O_NOCTTY:()=>fB,O_NOFOLLOW:()=>cB,O_NONBLOCK:()=>bB,O_RDONLY:()=>MM,O_RDWR:()=>qM,O_SYMLINK:()=>lB,O_SYNC:()=>sB,O_TRUNC:()=>xB,O_WRONLY:()=>BM,POINT_CONVERSION_COMPRESSED:()=>Kq,POINT_CONVERSION_HYBRID:()=>Jq,POINT_CONVERSION_UNCOMPRESSED:()=>Wq,PRIORITY_ABOVE_NORMAL:()=>tM,PRIORITY_BELOW_NORMAL:()=>eM,PRIORITY_HIGH:()=>uM,PRIORITY_HIGHEST:()=>iM,PRIORITY_LOW:()=>rM,PRIORITY_NORMAL:()=>nM,RSA_NO_PADDING:()=>Rq,RSA_PKCS1_OAEP_PADDING:()=>jq,RSA_PKCS1_PADDING:()=>Dq,RSA_PKCS1_PSS_PADDING:()=>Mq,RSA_PSS_SALTLEN_AUTO:()=>Uq,RSA_PSS_SALTLEN_DIGEST:()=>Bq,RSA_PSS_SALTLEN_MAX_SIGN:()=>qq,RSA_SSLV23_PADDING:()=>Lq,RSA_X931_PADDING:()=>Gq,RTLD_GLOBAL:()=>Tj,RTLD_LAZY:()=>gj,RTLD_LOCAL:()=>Oj,RTLD_NOW:()=>Fj,R_OK:()=>OB,SIGABRT:()=>sM,SIGALRM:()=>dM,SIGBUS:()=>lM,SIGCHLD:()=>wM,SIGCONT:()=>EM,SIGFPE:()=>bM,SIGHUP:()=>fM,SIGILL:()=>aM,SIGINFO:()=>LM,SIGINT:()=>xM,SIGIO:()=>DM,SIGIOT:()=>vM,SIGKILL:()=>pM,SIGPIPE:()=>hM,SIGPROF:()=>CM,SIGQUIT:()=>oM,SIGSEGV:()=>_M,SIGSTOP:()=>SM,SIGSYS:()=>RM,SIGTERM:()=>kM,SIGTRAP:()=>cM,SIGTSTP:()=>gM,SIGTTIN:()=>FM,SIGTTOU:()=>TM,SIGURG:()=>OM,SIGUSR1:()=>mM,SIGUSR2:()=>yM,SIGVTALRM:()=>NM,SIGWINCH:()=>PM,SIGXCPU:()=>IM,SIGXFSZ:()=>AM,SSL_OP_ALL:()=>GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:()=>MB,SSL_OP_CIPHER_SERVER_PREFERENCE:()=>BB,SSL_OP_CISCO_ANYCONNECT:()=>qB,SSL_OP_COOKIE_EXCHANGE:()=>UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:()=>HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:()=>XB,SSL_OP_EPHEMERAL_RSA:()=>YB,SSL_OP_LEGACY_SERVER_CONNECT:()=>VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:()=>zB,SSL_OP_MICROSOFT_SESS_ID_BUG:()=>KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:()=>WB,SSL_OP_NETSCAPE_CA_DN_BUG:()=>JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:()=>$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:()=>ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:()=>QB,SSL_OP_NO_COMPRESSION:()=>rq,SSL_OP_NO_QUERY_MTU:()=>eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:()=>nq,SSL_OP_NO_SSLv2:()=>tq,SSL_OP_NO_SSLv3:()=>uq,SSL_OP_NO_TICKET:()=>iq,SSL_OP_NO_TLSv1:()=>fq,SSL_OP_NO_TLSv1_1:()=>xq,SSL_OP_NO_TLSv1_2:()=>oq,SSL_OP_PKCS1_CHECK_1:()=>aq,SSL_OP_PKCS1_CHECK_2:()=>cq,SSL_OP_SINGLE_DH_USE:()=>sq,SSL_OP_SINGLE_ECDH_USE:()=>vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:()=>lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:()=>bq,SSL_OP_TLS_BLOCK_PADDING_BUG:()=>pq,SSL_OP_TLS_D5_BUG:()=>mq,SSL_OP_TLS_ROLLBACK_BUG:()=>_q,S_IFBLK:()=>rB,S_IFCHR:()=>QM,S_IFDIR:()=>ZM,S_IFIFO:()=>eB,S_IFLNK:()=>nB,S_IFMT:()=>JM,S_IFREG:()=>$M,S_IFSOCK:()=>tB,S_IRGRP:()=>dB,S_IROTH:()=>SB,S_IRUSR:()=>mB,S_IRWXG:()=>hB,S_IRWXO:()=>EB,S_IRWXU:()=>pB,S_IWGRP:()=>kB,S_IWOTH:()=>gB,S_IWUSR:()=>_B,S_IXGRP:()=>wB,S_IXOTH:()=>FB,S_IXUSR:()=>yB,TLS1_1_VERSION:()=>Yq,TLS1_2_VERSION:()=>Vq,TLS1_3_VERSION:()=>zq,TLS1_VERSION:()=>Xq,UV_DIRENT_BLOCK:()=>WM,UV_DIRENT_CHAR:()=>KM,UV_DIRENT_DIR:()=>XM,UV_DIRENT_FIFO:()=>VM,UV_DIRENT_FILE:()=>HM,UV_DIRENT_LINK:()=>YM,UV_DIRENT_SOCKET:()=>zM,UV_DIRENT_UNKNOWN:()=>UM,UV_FS_COPYFILE_EXCL:()=>NB,UV_FS_COPYFILE_FICLONE:()=>PB,UV_FS_COPYFILE_FICLONE_FORCE:()=>LB,UV_FS_SYMLINK_DIR:()=>jM,UV_FS_SYMLINK_JUNCTION:()=>GM,W_OK:()=>IB,X_OK:()=>AB,default:()=>Vu0,defaultCipherList:()=>$q,defaultCoreCipherList:()=>Hq});var gj,Fj,Tj,Oj,Ij,Aj,Nj,Cj,Pj,Dj,Lj,Rj,jj,Gj,Mj,Bj,qj,Uj,Hj,Xj,Yj,Vj,zj,Kj,Wj,Jj,$j,Zj,Qj,rG,eG,nG,tG,uG,iG,fG,xG,oG,aG,cG,sG,vG,lG,bG,pG,mG,_G,yG,hG,dG,kG,wG,EG,SG,gG,FG,TG,OG,IG,AG,NG,CG,PG,DG,LG,RG,jG,GG,MG,BG,qG,UG,HG,XG,YG,VG,zG,KG,WG,JG,$G,ZG,QG,rM,eM,nM,tM,uM,iM,fM,xM,oM,aM,cM,sM,vM,lM,bM,pM,mM,_M,yM,hM,dM,kM,wM,EM,SM,gM,FM,TM,OM,IM,AM,NM,CM,PM,DM,LM,RM,jM,GM,MM,BM,qM,UM,HM,XM,YM,VM,zM,KM,WM,JM,$M,ZM,QM,rB,eB,nB,tB,uB,iB,fB,xB,oB,aB,cB,sB,vB,lB,bB,pB,mB,_B,yB,hB,dB,kB,wB,EB,SB,gB,FB,TB,OB,IB,AB,NB,CB,PB,DB,LB,RB,jB,GB,MB,BB,qB,UB,HB,XB,YB,VB,zB,KB,WB,JB,$B,ZB,QB,rq,eq,nq,tq,uq,iq,fq,xq,oq,aq,cq,sq,vq,lq,bq,pq,mq,_q,yq,hq,dq,kq,wq,Eq,Sq,gq,Fq,Tq,Oq,Iq,Aq,Nq,Cq,Pq,Dq,Lq,Rq,jq,Gq,Mq,Bq,qq,Uq,Hq,Xq,Yq,Vq,zq,Kq,Wq,Jq,$q,Vu0,eoe=C_({\"node-modules-polyfills:constants\"(){Pt(),gj=1,Fj=2,Tj=8,Oj=4,Ij=7,Aj=13,Nj=48,Cj=49,Pj=47,Dj=35,Lj=37,Rj=9,jj=94,Gj=16,Mj=89,Bj=10,qj=53,Uj=61,Hj=54,Xj=11,Yj=39,Vj=33,zj=69,Kj=17,Wj=14,Jj=27,$j=65,Zj=90,Qj=92,rG=36,eG=4,nG=22,tG=5,uG=56,iG=21,fG=62,xG=24,oG=31,aG=40,cG=95,sG=63,vG=50,lG=52,bG=51,pG=23,mG=55,_G=96,yG=19,hG=2,dG=8,kG=77,wG=97,EG=12,SG=91,gG=42,FG=28,TG=98,OG=99,IG=78,AG=57,NG=20,CG=66,PG=38,DG=45,LG=25,RG=6,jG=102,GG=84,MG=1,BG=32,qG=100,UG=43,HG=41,XG=34,YG=30,VG=29,zG=3,KG=70,WG=101,JG=60,$G=26,ZG=35,QG=18,rM=19,eM=10,nM=0,tM=-7,uM=-14,iM=-20,fM=1,xM=2,oM=3,aM=4,cM=5,sM=6,vM=6,lM=10,bM=8,pM=9,mM=30,_M=11,yM=31,hM=13,dM=14,kM=15,wM=20,EM=19,SM=17,gM=18,FM=21,TM=22,OM=16,IM=24,AM=25,NM=26,CM=27,PM=28,DM=23,LM=29,RM=12,jM=1,GM=2,MM=0,BM=1,qM=2,UM=0,HM=1,XM=2,YM=3,VM=4,zM=5,KM=6,WM=7,JM=61440,$M=32768,ZM=16384,QM=8192,rB=24576,eB=4096,nB=40960,tB=49152,uB=512,iB=2048,fB=131072,xB=1024,oB=8,aB=1048576,cB=256,sB=128,vB=4194304,lB=2097152,bB=4,pB=448,mB=256,_B=128,yB=64,hB=56,dB=32,kB=16,wB=8,EB=7,SB=4,gB=2,FB=1,TB=0,OB=4,IB=2,AB=1,NB=1,CB=1,PB=2,DB=2,LB=4,RB=4,jB=269488175,GB=2147485780,MB=262144,BB=4194304,qB=32768,UB=8192,HB=2147483648,XB=2048,YB=0,VB=4,zB=0,KB=0,WB=0,JB=0,$B=0,ZB=0,QB=0,rq=131072,eq=4096,nq=65536,tq=0,uq=33554432,iq=16384,fq=67108864,xq=268435456,oq=134217728,aq=0,cq=0,sq=0,vq=0,lq=0,bq=0,pq=0,mq=0,_q=8388608,yq=1,hq=2,dq=4,kq=8,wq=2048,Eq=64,Sq=128,gq=512,Fq=1024,Tq=65535,Oq=0,Iq=2,Aq=1,Nq=4,Cq=8,Pq=1,Dq=1,Lq=2,Rq=3,jq=4,Gq=5,Mq=6,Bq=-1,qq=-2,Uq=-2,Hq=\"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA\",Xq=769,Yq=770,Vq=771,zq=772,Kq=2,Wq=4,Jq=6,$q=\"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA\",Vu0={RTLD_LAZY:gj,RTLD_NOW:Fj,RTLD_GLOBAL:Tj,RTLD_LOCAL:Oj,E2BIG:Ij,EACCES:Aj,EADDRINUSE:Nj,EADDRNOTAVAIL:Cj,EAFNOSUPPORT:Pj,EAGAIN:Dj,EALREADY:Lj,EBADF:Rj,EBADMSG:jj,EBUSY:Gj,ECANCELED:Mj,ECHILD:Bj,ECONNABORTED:qj,ECONNREFUSED:Uj,ECONNRESET:Hj,EDEADLK:Xj,EDESTADDRREQ:Yj,EDOM:Vj,EDQUOT:zj,EEXIST:Kj,EFAULT:Wj,EFBIG:Jj,EHOSTUNREACH:$j,EIDRM:Zj,EILSEQ:Qj,EINPROGRESS:rG,EINTR:eG,EINVAL:nG,EIO:tG,EISCONN:uG,EISDIR:iG,ELOOP:fG,EMFILE:xG,EMLINK:oG,EMSGSIZE:aG,EMULTIHOP:cG,ENAMETOOLONG:sG,ENETDOWN:vG,ENETRESET:lG,ENETUNREACH:bG,ENFILE:pG,ENOBUFS:mG,ENODATA:_G,ENODEV:yG,ENOENT:hG,ENOEXEC:dG,ENOLCK:kG,ENOLINK:wG,ENOMEM:EG,ENOMSG:SG,ENOPROTOOPT:gG,ENOSPC:FG,ENOSR:TG,ENOSTR:OG,ENOSYS:IG,ENOTCONN:AG,ENOTDIR:NG,ENOTEMPTY:CG,ENOTSOCK:PG,ENOTSUP:DG,ENOTTY:LG,ENXIO:RG,EOPNOTSUPP:jG,EOVERFLOW:GG,EPERM:MG,EPIPE:BG,EPROTO:qG,EPROTONOSUPPORT:UG,EPROTOTYPE:HG,ERANGE:XG,EROFS:YG,ESPIPE:VG,ESRCH:zG,ESTALE:KG,ETIME:WG,ETIMEDOUT:JG,ETXTBSY:$G,EWOULDBLOCK:ZG,EXDEV:QG,PRIORITY_LOW:rM,PRIORITY_BELOW_NORMAL:eM,PRIORITY_NORMAL:nM,PRIORITY_ABOVE_NORMAL:tM,PRIORITY_HIGH:uM,PRIORITY_HIGHEST:iM,SIGHUP:fM,SIGINT:xM,SIGQUIT:oM,SIGILL:aM,SIGTRAP:cM,SIGABRT:sM,SIGIOT:vM,SIGBUS:lM,SIGFPE:bM,SIGKILL:pM,SIGUSR1:mM,SIGSEGV:_M,SIGUSR2:yM,SIGPIPE:hM,SIGALRM:dM,SIGTERM:kM,SIGCHLD:wM,SIGCONT:EM,SIGSTOP:SM,SIGTSTP:gM,SIGTTIN:FM,SIGTTOU:TM,SIGURG:OM,SIGXCPU:IM,SIGXFSZ:AM,SIGVTALRM:NM,SIGPROF:CM,SIGWINCH:PM,SIGIO:DM,SIGINFO:LM,SIGSYS:RM,UV_FS_SYMLINK_DIR:jM,UV_FS_SYMLINK_JUNCTION:GM,O_RDONLY:MM,O_WRONLY:BM,O_RDWR:qM,UV_DIRENT_UNKNOWN:UM,UV_DIRENT_FILE:HM,UV_DIRENT_DIR:XM,UV_DIRENT_LINK:YM,UV_DIRENT_FIFO:VM,UV_DIRENT_SOCKET:zM,UV_DIRENT_CHAR:KM,UV_DIRENT_BLOCK:WM,S_IFMT:JM,S_IFREG:$M,S_IFDIR:ZM,S_IFCHR:QM,S_IFBLK:rB,S_IFIFO:eB,S_IFLNK:nB,S_IFSOCK:tB,O_CREAT:uB,O_EXCL:iB,O_NOCTTY:fB,O_TRUNC:xB,O_APPEND:oB,O_DIRECTORY:aB,O_NOFOLLOW:cB,O_SYNC:sB,O_DSYNC:vB,O_SYMLINK:lB,O_NONBLOCK:bB,S_IRWXU:pB,S_IRUSR:mB,S_IWUSR:_B,S_IXUSR:yB,S_IRWXG:hB,S_IRGRP:dB,S_IWGRP:kB,S_IXGRP:wB,S_IRWXO:EB,S_IROTH:SB,S_IWOTH:gB,S_IXOTH:FB,F_OK:TB,R_OK:OB,W_OK:IB,X_OK:AB,UV_FS_COPYFILE_EXCL:NB,COPYFILE_EXCL:CB,UV_FS_COPYFILE_FICLONE:PB,COPYFILE_FICLONE:DB,UV_FS_COPYFILE_FICLONE_FORCE:LB,COPYFILE_FICLONE_FORCE:RB,OPENSSL_VERSION_NUMBER:jB,SSL_OP_ALL:GB,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:MB,SSL_OP_CIPHER_SERVER_PREFERENCE:BB,SSL_OP_CISCO_ANYCONNECT:qB,SSL_OP_COOKIE_EXCHANGE:UB,SSL_OP_CRYPTOPRO_TLSEXT_BUG:HB,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:XB,SSL_OP_EPHEMERAL_RSA:YB,SSL_OP_LEGACY_SERVER_CONNECT:VB,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:zB,SSL_OP_MICROSOFT_SESS_ID_BUG:KB,SSL_OP_MSIE_SSLV2_RSA_PADDING:WB,SSL_OP_NETSCAPE_CA_DN_BUG:JB,SSL_OP_NETSCAPE_CHALLENGE_BUG:$B,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:ZB,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:QB,SSL_OP_NO_COMPRESSION:rq,SSL_OP_NO_QUERY_MTU:eq,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:nq,SSL_OP_NO_SSLv2:tq,SSL_OP_NO_SSLv3:uq,SSL_OP_NO_TICKET:iq,SSL_OP_NO_TLSv1:fq,SSL_OP_NO_TLSv1_1:xq,SSL_OP_NO_TLSv1_2:oq,SSL_OP_PKCS1_CHECK_1:aq,SSL_OP_PKCS1_CHECK_2:cq,SSL_OP_SINGLE_DH_USE:sq,SSL_OP_SINGLE_ECDH_USE:vq,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:lq,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:bq,SSL_OP_TLS_BLOCK_PADDING_BUG:pq,SSL_OP_TLS_D5_BUG:mq,SSL_OP_TLS_ROLLBACK_BUG:_q,ENGINE_METHOD_RSA:yq,ENGINE_METHOD_DSA:hq,ENGINE_METHOD_DH:dq,ENGINE_METHOD_RAND:kq,ENGINE_METHOD_EC:wq,ENGINE_METHOD_CIPHERS:Eq,ENGINE_METHOD_DIGESTS:Sq,ENGINE_METHOD_PKEY_METHS:gq,ENGINE_METHOD_PKEY_ASN1_METHS:Fq,ENGINE_METHOD_ALL:Tq,ENGINE_METHOD_NONE:Oq,DH_CHECK_P_NOT_SAFE_PRIME:Iq,DH_CHECK_P_NOT_PRIME:Aq,DH_UNABLE_TO_CHECK_GENERATOR:Nq,DH_NOT_SUITABLE_GENERATOR:Cq,ALPN_ENABLED:Pq,RSA_PKCS1_PADDING:Dq,RSA_SSLV23_PADDING:Lq,RSA_NO_PADDING:Rq,RSA_PKCS1_OAEP_PADDING:jq,RSA_X931_PADDING:Gq,RSA_PKCS1_PSS_PADDING:Mq,RSA_PSS_SALTLEN_DIGEST:Bq,RSA_PSS_SALTLEN_MAX_SIGN:qq,RSA_PSS_SALTLEN_AUTO:Uq,defaultCoreCipherList:Hq,TLS1_VERSION:Xq,TLS1_1_VERSION:Yq,TLS1_2_VERSION:Vq,TLS1_3_VERSION:zq,POINT_CONVERSION_COMPRESSED:Kq,POINT_CONVERSION_UNCOMPRESSED:Wq,POINT_CONVERSION_HYBRID:Jq,defaultCipherList:$q}}}),noe=eu({\"node-modules-polyfills-commonjs:constants\"(H0,z0){Pt();var xr=(eoe(),eU(Yu0));if(xr&&xr.default){z0.exports=xr.default;for(let gr in xr)z0.exports[gr]=xr[gr]}else xr&&(z0.exports=xr)}}),toe=eu({\"node_modules/flow-parser/flow_parser.js\"(H0){Pt(),function(z0){\"use strict\";var xr=\"member_property_expression\",gr=8483,de=12538,Ve=\"children\",De=\"predicate_expression\",Ke=\"??\",tn=\"Identifier\",Qn=64311,rt=192,tt=11710,Ot=122654,au=110947,En=67591,Kt=\"!\",Zi=\"directive\",Ln=163,Tn=\"block\",fn=126553,Ht=12735,S7=68096,Dt=\"params\",ks=93071,In=122,Wc=72767,Ai=181,li=\"for_statement\",jt=128,g7=\"start\",av=43867,nU=\"_method\",P_=70414,cv=\">\",Qi=\"catch_body\",D_=120121,tU=\"the end of an expression statement (`;`)\",L_=124907,uU=1027,s4=126558,rf=\"jsx_fragment\",R_=42527,j_=\"decorators\",G_=82943,M_=71039,B_=110882,q_=67514,iU=8472,fU=\"update\",U_=12783,H_=12438,X_=12352,Y_=8511,V_=42961,F2=\"method\",v4=120713,ef=8191,nf=\"function_param\",z_=67871,F7=\"throw\",K_=11507,tf=\"class_extends\",W_=43470,uf=\"object_key_literal\",J_=71903,$_=65437,ff=\"jsx_child\",Z_=43311,l4=119995,Q_=67637,b4=68116,ry=66204,ey=65470,xU=\"<<=\",ny=\"e\",ty=67391,p4=11631,m4=69956,sv=\"tparams\",uy=66735,iy=64217,fy=43697,oU=\"Invalid binary/octal \",xy=-43,oy=43255,_4=\"do\",ay=43301,xf=\"binding_pattern\",cy=120487,of=\"jsx_attribute_value_literal\",y4=\"package\",af=\"interface_declaration\",sy=72750,vy=119892,aU=\"tail\",cU=-53,cf=111,sU=180,ly=119807,by=71959,vU=8206,py=65613,Jc=\"type\",my=55215,_y=-42,sf=\"export_default_declaration_decl\",h4=72970,lU=\"filtered_out\",yy=70416,bU=229,vf=\"function_this_param\",pU=\"module\",d4=\"try\",hy=70143,dy=125183,ky=70412,d0=\"@])\",lf=\"binary\",mU=\"infinity\",k4=\"private\",wy=65500,w4=\"has_unknown_members\",bf=\"pattern_array_rest_element\",_U=\"Property\",ws=\"implements\",Ey=12548,yU=211,pf=\"if_alternate_statement\",Sy=124903,gy=43395,vv=\"src/parser/type_parser.ml\",Fy=66915,E4=126552,Ty=120712,S4=126555,Oy=120596,c7=\"raw\",T7=112,mf=\"class_declaration\",_f=\"statement\",Iy=126624,Ay=71235,yf=\"meta_property\",Ny=44002,Cy=8467,hf=\"class_property_value\",Py=8318,df=\"optional_call\",Dy=43761,$c=\"kind\",kf=\"class_identifier\",Ly=69955,Ry=66378,jy=120512,Gy=68220,Xt=110,My=123583,T2=\"declare\",wf=\"typeof_member_identifier\",Ef=\"catch_clause\",By=11742,qy=70831,g4=8468,Sf=\"for_in_assignment_pattern\",hU=-32,gf=\"object_\",Uy=43262,Hy=\"mixins\",Ff=\"type_param\",dU=\"visit_trailing_comment\",Xy=71839,O2=\"boolean\",Tf=\"call\",kU=\"expected *\",Yy=43010,Vy=241,Nu=\"expression\",I2=\"column\",zy=43595,Ky=43258,Wy=191456,Of=\"member_type_identifier\",A2=117,Jy=43754,F4=126544,wU=\"Assert_failure\",$y=66517,Zy=42964,If=\"enum_number_member\",EU=\"a string\",Qy=65855,rh=119993,eh=\"opaque\",SU=870530776,nh=67711,th=66994,Af=\"enum_symbol_body\",gU=185,FU=219,T4=\"filter\",uh=43615,O4=126560,ih=19903,n1=\"get\",fh=64316,TU=`Fatal error: exception %s\n`,I4=\"exported\",OU=\">=\",Ju=\"return\",A4=\"members\",N4=256,xh=66962,oh=64279,ah=67829,IU=\"Enum `\",AU=\"&&=\",Nf=\"object_property\",ch=67589,Cf=\"pattern_object_property\",Pf=\"template_literal_element\",sh=69551,Ni=127343600,C4=70452,Df=\"class_element\",vh=\"ENOENT\",lh=71131,NU=200,bh=120137,ph=94098,P4=72349,CU=1328,Lf=\"function_identifier\",mh=126543,Rf=\"jsx_attribute_name\",_h=43487,dr=\"@[<2>{ \",PU=\"ENOTEMPTY\",yh=65908,hh=72191,D4=120513,dh=92909,DU=\"bound\",kh=162,LU=172,L4=120070,jf=\"enum_number_body\",Gf=\"update_expression\",Mf=\"spread_element\",Bf=\"for_in_left_declaration\",R4=64319,N2=\"%d\",wh=12703,j4=11687,RU=\"@,))@]\",Eh=42239,qf=\"type_cast\",Sh=42508,Uf=\"class_implements_interface\",gh=67640,Fh=605857695,jU=\"Cygwin\",GU=\"buffer.ml\",Th=124908,MU=\"handler\",Oh=66207,Ih=66963,G4=11558,BU=\"-=\",Pn=113,Ah=113775,qU=\"collect_comments\",M4=126540,lv=\"set\",Hf=\"assignment_pattern\",Cu=\"right\",Xf=\"object_key_identifier\",B4=120133,Nh=\"Invalid number \",Ch=42963,q4=12539,Ph=68023,Dh=43798,ti=100,Yf=\"pattern_literal\",Vf=\"generic_type\",UU=\"*\",Lh=42783,Rh=42890,jh=230,U4=\"else\",Gh=70851,Mh=69289,HU=\"the start of a statement\",H4=\"properties\",Bh=43696,qh=110959,zf=\"declare_function\",X4=120597,Kf=\"object_indexer_property_type\",Uh=70492,Hh=2048,C2=\"arguments\",Xr=\"comments\",Xh=43042,Zc=107,Yh=110575,XU=161,Vh=67431,Y4=\"line\",P2=\"declaration\",nu=\"static\",Wf=\"pattern_identifier\",zh=69958,YU=\"the\",Kh=\"Unix.Unix_error\",Wh=43814,Qc=\"annot\",Jh=65786,$h=66303,Zh=64967,Qh=64255,rd=8584,V4=120655,VU=\"Stack_overflow\",ed=43700,Jf=\"syntax_opt\",zU=\"/static/\",$f=\"comprehension\",nd=253,KU=\"Not_found\",WU=\"+=\",JU=235,td=68680,ud=66954,id=64324,fd=72966,$U=174,ZU=-1053382366,xd=\"rest\",Zf=\"pattern_array_element\",Qf=\"jsx_attribute_value_expression\",z4=65595,rx=\"pattern_array_e\",QU=243,od=43711,ad=\"rmdir\",K4=\"symbol\",cd=69926,W4=\"*dummy method*\",sd=43741,O7=\"typeParameters\",D2=\"const\",rH=1026,eH=149,vd=12341,ld=72847,bd=66993,nH=202,Ci=\"false\",Yt=106,pd=120076,md=186,Pi=128,_d=125124,yd=\"Fatal error: exception \",J4=67593,hd=69297,dd=44031,tH=234,kd=92927,wd=68095,$u=8231,ex=\"object_key_computed\",nx=\"labeled_statement\",tx=\"function_param_pattern\",$4=126590,Ed=65481,Sd=43442,uH=\"collect_comments_opt\",ux=\"variable_declarator\",bv=\"_\",gd=\"compare: functional value\",Fd=67967,pv=\"computed\",ix=\"object_property_type\",mt=\"id\",Td=126562,t1=114,iH=\"comment_bounds\",Od=70853,Id=69247,fx=\"class_private_field\",Ad=42237,Nd=72329,fH=\"Invalid_argument\",Cd=113770,Z4=94031,Pd=120092,xx=\"declare_class\",Dd=67839,Ld=72250,xH=\"%ni\",Rd=92879,oH=\"prototype\",Es=\"`.\",ox=8287,Q4=65344,jd=\"&\",I7=\"debugger\",ax=\"type_identifier_reference\",aH=\"Internal Error: Found private field in object props\",cx=\"sequence\",sx=\"call_type_args\",cH=238,Gd=12348,sH=\"++\",Md=68863,Bd=72001,qd=70084,Ud=\"label\",mv=-45,vx=\"jsx_opening_attribute\",Hd=43583,r8=\"%F\",Xd=43784,Yd=113791,lx=\"call_arguments\",e8=126503,Vd=43743,Zu=\"0\",zd=119967,n8=126538,bx=\"new_\",_v=449540197,Kd=64109,Wd=68466,Jd=177983,wt=248,px=\"program\",Xe=\"@,]@]\",$d=68031,mx=\"function_type\",_x=\"type_\",t8=8484,Zd=67382,Qd=42537,rk=226,ek=66559,nk=42993,tk=64274,u8=71236,uk=120069,ik=72105,fk=126570,xk=\"object\",ok=42959,A7=\"break\",yx=\"for_of_statement\",ak=43695,i8=126551,ck=66955,f8=126520,sk=66499,L2=1024,vk=67455,lk=43018,vH=198,x8=126522,hx=\"function_declaration\",bk=73064,dx=\"await\",pk=92728,mk=70418,_k=68119,kx=\"function_rest_param\",yk=42653,o8=11703,bi=\"left\",a8=70449,hk=184,wx=\"declare_type_alias\",Ex=16777215,c8=70302,lH=\"/=\",bH=\"|=\",dk=55242,kk=126583,wk=124927,Ek=124895,Sk=72959,gk=65497,pH=\"Invalid legacy octal \",rs=\"typeof\",Fk=\"explicit_type\",Sx=\"statement_list\",Tk=65495,gx=\"class_method\",s8=8526,v8=244,Ok=67861,l8=119994,b8=\"enum\",mH=2147483647,Ik=69762,_H=208,R2=\"in\",Ak=11702,p8=67638,yH=\", characters \",Nk=70753,yv=\"super\",Ck=92783,Pk=8304,m8=126504,Fx=\"import_specifier\",Dk=68324,Lk=101589,Rk=67646,Tx=\"expression_or_spread\",jk=74879,Gk=43792,_8=43260,Mk=93052,hH=\"{\",Bk=65574,qk=125258,hv=224,Ox=\"jsx_element_name_member_expression\",j2=\"instanceof\",Uk=69599,Hk=43560,Ix=\"function_expression\",y8=223,Xk=72242,Yk=11498,Vk=126467,zk=73112,dH=140,h8=70107,Kk=13311,Ax=\"jsx_children\",d8=126548,Wk=63743,k8=43471,Nx=\"jsx_expression\",Jk=69864,$k=71998,Zk=72e3,w8=126591,E8=12592,Cx=\"type_params\",Qk=126578,S8=126537,kr=\"{ \",rw=123627,Px=\"jsx_spread_attribute\",Ce=\"@,\",ew=70161,nw=187,g8=126500,Dx=\"label_identifier\",tw=42606,Lx=\"number_literal_type\",F8=42999,uw=64310,kH=-594953737,iw=122623,T8=\"hasUnknownMembers\",Rx=\"array\",wH=\"^=\",jx=\"enum_string_member\",fw=65536,xw=65615,es=\"void\",ow=65135,Z0=\")\",EH=138,aw=70002,G2=\"let\",cw=70271,sw=\"nan\",W=\"@[%s =@ \",vw=194559,lw=110579,Gx=\"binding_type_identifier\",bw=42735,SH=57343,Qu=\"/\",Mx=\"for_in_statement_lhs\",pw=43503,mw=8516,_w=66938,yw=\"ENOTDIR\",gH=\"TypeParameterInstantiation\",hw=69749,dw=65381,kw=83526,dv=\"number\",ww=12447,FH=154,O8=70286,Ew=72160,Sw=43493,TH=206,Bx=\"enum_member_identifier\",I8=70280,M2=\"function\",A8=70162,gw=255,Fw=67702,Tw=66771,Ow=70312,OH=\"|\",Iw=93759,IH=\"End_of_file\",Aw=43709,u1=\"new\",AH=\"Failure\",B2=\"local\",Nw=101631,N8=8489,C8=\"with\",qx=\"enum_declaration\",Cw=218,Pw=70457,P8=8488,Ux=\"member\",D8=64325,Dw=247,Lw=70448,Rw=69967,L8=126535,jw=71934,Hx=\"import_named_specifier\",Gw=65312,Mw=126619,Xx=\"type_annotation\",NH=56320,Bw=131071,qw=120770,Uw=67002,Yx=\"with_\",Vx=\"statement_fork_point\",CH=\"finalizer\",Hw=12320,PH=\"elements\",zx=\"literal\",Xw=68607,Yw=8507,R8=\"each\",DH=\"Sys_error\",Vw=123535,zw=130,Kx=\"bigint_literal_type\",Kw=64829,j8=11727,Ww=120538,Wx=\"member_private_name\",Jx=\"type_alias\",LH=\"Printexc.handle_uncaught_exception\",G8=126556,$x=\"tagged_template\",Zx=\"pattern_object_property_literal_key\",Jw=43881,M8=72192,$w=67826,Zw=124910,Qw=66511,ns=\"int_of_string\",rE=43249,nr=\"None\",RH=\"FunctionTypeParam\",ui=\"name\",eE=70285,s7=103,nE=120744,Qx=12288,ro=\"intersection_type\",tE=11679,B8=11559,jH=\"callee\",uE=71295,iE=70018,fE=11567,xE=42954,GH=\"*-/\",r7=\"predicate\",eo=\"expression_statement\",MH=\"regexp\",oE=65479,BH=132,aE=11389,qu=\"optional\",qH=-602162310,z=\"@]\",cE=120003,sE=72249,UH=\"Unexpected \",vE=73008,q8=\"finally\",no=\"toplevel_statement_list\",HH=\"end\",lE=178207,XH=\"&=\",bE=70301,YH=\"%Li\",pE=72161,mE=69746,_E=70460,yE=12799,U8=65535,hE=\"loc\",dE=69375,kE=43518,VH=205,wE=65487,to=\"while_\",EE=183983,uo=\"typeof_expression\",SE=-673950933,gE=42559,zH=\"||\",FE=124926,TE=55291,io=\"jsx_element_name_identifier\",fo=8239,H8=\"mixed\",KH=136,OE=-253313196,IE=11734,X8=67827,AE=68287,NE=119976,WH=\"**\",J=\" =\",Y8=888960333,CE=124902,xo=\"tuple_type\",JH=227,PE=70726,DE=73111,V8=126602,LE=126529,oo=\"object_property_value_type\",N0=\"%a\",$H=\", \",ZH=\"<=\",RE=69423,QH=199,z8=11695,jE=12294,K8=11711,GE=67583,rX=710,W8=126584,ME=68295,BE=72703,qE=\"prefix\",eX=-80,J8=69415,UE=11492,q2=\"class\",$8=65575,N7=\"continue\",HE=65663,nX=2047,Z8=68120,XE=71086,YE=19967,Di=782176664,VE=120779,Q8=8486,pi=\" \",tX=\"||=\",uX=\"Undefined_recursive_module\",zE=66863,iX=\"RestElement\",r3=126634,KE=66377,WE=74751,ao=\"jsx_element_name_namespaced\",JE=43334,$E=66815,C7=\"typeAnnotation\",ZE=120126,co=\"array_element\",e3=64285,fX=189,xX=\"**=\",Yr=\"()\",QE=8543,so=\"declare_module\",vo=\"export_batch_specifier\",oX=\"%i\",aX=\">>>=\",rS=68029,cX=\"importKind\",P7=\"extends\",eS=64296,n3=43259,nS=71679,tS=64913,uS=119969,iS=94175,fS=72440,t3=65141,lo=\"function_\",xS=43071,oS=42888,aS=69807,cu=\"variance\",ts=123,bo=\"import_default_specifier\",sX=\">>>\",cS=43764,mi=\"pattern\",sS=71947,vS=70655,kv=\"consequent\",vX=4096,lS=183,bS=68447,pS=65473,us=255,mS=73648,po=\"call_type_arg\",mo=8238,_S=68899,yS=93026,Ye=\"@[<2>[\",hS=110588,_o=\"comment\",lX=191,yo=\"switch_case\",bX=175,dS=71942,ho=\"do_while\",wv=\"constructor\",kS=43587,wS=43586,Eu=\"yield\",ES=67462,pX=\"fd \",SS=-61,gS=\"target\",u3=72272,U2=\"var\",mX=\"impltype\",i3=70108,H2=\"0o\",FS=119972,TS=92991,f3=70441,x3=8450,OS=120074,IS=66717,ko=\"interface_type\",o3=43880,An=\"%B\",AS=111355,Ev=5760,NS=11630,a3=126499,CS=\"of\",_X=\">>\",yX=\"Popping lex mode from empty stack\",c3=120629,is=108,PS=43002,hX=\"%=\",s3=126539,DS=126502,wo=\"template_literal\",LS=\"src/parser/statement_parser.ml\",RS=\": Not a directory\",dX=\"b\",jS=67461,GS=11519,kX=\"src/parser/flow_lexer.ml\",wX=\"Out_of_memory\",MS=120570,Eo=12287,BS=126534,qS=\"index out of bounds\",US=73029,v3=\"_bigarr02\",l3=126571,EX=\"))\",So=\"for_statement_init\",SX=\"supertype\",go=\"class_property\",b3=\"}\",i1=\"this\",Fo=\"declare_module_exports\",gX=\"@\",To=\"union_type\",Li=65535,Oo=\"variance_opt\",HS=94032,FX=222,XS=42124,Io=\"this_expression\",Ao=\"jsx_element\",TX=\"typeArguments\",YS=65019,VS=125251,zS=64111,KS=8471,No=\"typeof_qualified_identifier\",WS=70497,OX=\"EnumDefaultedMember\",Co=8202,JS=66927,D7=\"switch\",$S=69634,Po=\"unary_expression\",ZS=71215,IX=126,QS=67679,rg=65597,AX=207,eg=120686,p3=72163,ng=67001,tg=42962,ug=64262,X2=124,Do=65279,ig=126495,NX=169,fg=71944,CX=-10,m3=\"alternate\",xg=92975,og=65489,Y2=252,ag=67807,cg=43187,sg=68850,_3=\"export\",vg=66383,PX=\"===\",Lo=\".\",Ro=\"type_args\",DX=147,lg=92159,LX=240,jo=\"jsx_element_name\",bg=72283,pg=171,f1=116,mg=110587,y3=70279,_g=75075,yg=65338,Go=\"function_params\",hg=126627,RX=213,h3=73065,dg=71352,d3=119970,kg=70005,wg=12295,k3=120771,Eg=71494,Sg=11557,gg=42191,jX=\"flags\",Fg=68437,Tg=70730,Mo=\"optional_indexed_access\",Bo=\"pattern_object_p\",Og=42785,qo=\"nullable_type\",Bn=\"value\",Ig=12343,Ag=68415,Ng=11694,GX=221,Cg=11726,Uo=\"syntax\",Pg=119964,MX=\"&&\",Dg=68497,Lg=73097,fs=\"null\",w3=126523,Rg=120084,jg=126601,Gg=8454,Mg=\"expressions\",Bg=72144,V2='\"',Zr=\"(@[\",BX=1022,qX=231,qg=170,E3=12448,Ug=68786,S3=\"<\",UX=931,HX=\"(\",XX=196,YX=2048,g3=\"an identifier\",F3=69959,Hg=68799,VX=\"leadingComments\",Xg=72969,Yg=182,Vg=100351,Ho=\"enum_defaulted_member\",zg=69839,Kg=94026,Wg=209,zX=\">>=\",Jg=131,T3=12336,v7=\"empty\",KX=331416730,WX=204,$g=70479,Zg=69487,Qg=101640,rF=43123,JX=\"([^/]+)\",O3=8319,$X=165,Xo=\"object_type_property_setter\",ZX=909,eF=15,nF=12591,br=125,tF=92735,QX=\"cases\",uF=183969,x1=\"bigint\",rY=\"Division_by_zero\",iF=67071,fF=12329,I3=120004,xF=69414,A3=\"if\",oF=126519,aF=\"immediately within another function.\",cF=55238,sF=126498,eY=\"qualification\",vF=66256,wr=\"@ }@]\",z2=118,N3=11565,C3=120122,Yo=\"pattern_object_rest_property\",lF=74862,P3=\"'\",bF=-26065557,pF=124911,Sv=119,L7=104,Vo=\"assignment\",mF=8457,K2=\"from\",_F=64321,yF=113817,hF=65629,dF=42655,Ri=102,kF=43137,wF=11502,a0=\";@ \",R7=101,zo=\"pattern_array_element_pattern\",Wn=\"body\",Ko=\"jsx_member_expression\",EF=65547,Wo=\"jsx_attribute_value\",Jo=\"jsx_namespaced_name\",D3=72967,SF=126550,gv=254,gF=43807,FF=43738,L3=126589,R3=8455,j3=126628,TF=11670,nY=\"*=\",G3=120134,$o=\"conditional\",tY=\" : flags Open_text and Open_binary are not compatible\",M3=119965,OF=69890,IF=72817,AF=164,NF=43822,B3=69744,uY=\"\\\\\\\\\",CF=43638,PF=93047,DF=\"AssignmentPattern\",q3=64322,LF=123190,iY=188,Zo=\"object_spread_property_type\",RF=70783,jF=113663,fY=160,U3=42622,H3=43823,ji=\"init\",Fv=109,GF=66503,X3=\"proto\",MF=74649,Qo=\"optional_member\",BF=40981,qF=120654,v=\"@ \",ra=\"enum_boolean_body\",ea=\"export_named_specifier\",na=\"declare_interface\",UF=70451,ta=\"pattern_object_property_computed_key\",Y3=-97,V3=120539,z3=64317,HF=12543,ua=\"export_named_declaration_specifier\",XF=43359,K3=126530,W3=72713,YF=113800,xY=195,VF=72367,zF=72103,KF=70278,ia=\"if_consequent_statement\",W2=-85,J3=126496,fa=\"try_catch\",xa=\"computed_key\",oa=\"class_\",WF=173823,aa=\"pattern_object_property_identifier_key\",oY=\"f\",ca=\"arrow_function\",$3=8485,JF=126546,sa=\"enum_boolean_member\",$F=94177,J2=\"delete\",ZF=232,aY=\"blocks\",va=\"pattern_array_rest_element_pattern\",QF=78894,Z3=66512,rT=94111,Tv=\"string\",Ss=\"test\",eT=69572,nT=66463,tT=66335,uT=72348,iT=73061,o1=\":\",la=\"enum_body\",fT=110590,ba=\"function_this_param_type\",xT=215,oT=77823,cY=\"minus\",sY=201,aT=119980,pa=\"private_name\",ma=\"object_key\",_a=\"function_param_type\",vY=\"<<\",cT=11718,a1=\"as\",lY=\"delegate\",Gi=\"true\",sT=67413,Q3=70854,vT=73439,lT=43776,bT=71723,pT=11505,mT=214,_T=120628,yT=43513,ya=\"jsx_attribute_name_namespaced\",r6=120127,e6=\"Map.bal\",n6=\"any\",bY=\"@[\",pY=\"camlinternalMod.ml\",t6=126559,Uu=\"import\",u6=70404,ha=\"jsx_spread_child\",hT=233,dT=67897,kT=119974,Hu=8233,wT=68405,i6=239,mY=\"attributes\",_Y=173,da=\"object_internal_slot_property_type\",ET=71351,ST=242,gT=67643,f6=\"shorthand\",ka=\"for_in_statement\",FT=126463,TT=71338,OT=69445,IT=65370,AT=73055,NT=167,CT=64911,wa=\"pattern_object_property_pattern\",yY=212,hY=197,x6=126579,PT=64286,DT=\"explicitType\",LT=67669,RT=43866,dY=\"Sys_blocked_io\",o6=\"catch\",jT=123197,GT=64466,MT=65140,BT=73030,qT=69404,a6=\"protected\",kY=8204,UT=67504,HT=193,$2=246,XT=43713,c6=120571,Ea=\"array_type\",wY=\"%u\",Sa=\"export_default_declaration\",ga=\"class_expression\",EY=\"quasi\",Vt=\"%S\",YT=8525,s6=126515,VT=120485,v6=43519,l6=120745,b6=94178,zT=126588,zn=127,KT=66855,SY=\"@{\",gY=\"visit_leading_comment\",WT=67742,FY=\" : flags Open_rdonly and Open_wronly are not compatible\",JT=120144,p6=\"returnType\",c1=-744106340,s1=240,Fa=\"-\",m6=8469,gs=\"async\",_6=126521,$T=72095,y6=216,TY=\" : file already exists\",ZT=178205,QT=8449,h6=94179,rO=42774,d6=\"case\",eO=66965,nO=66431,OY=190,Ta=\"declare_export_declaration\",Z2=\"targs\",Oa=\"type_identifier\",tO=64284,uO=43013,k6=43815,Ia=\"function_body_any\",iO=66966,w6=120687,fO=66939,xO=66978,IY=168,E6=\"public\",oO=68115,aO=43712,S6=65598,g6=126547,cO=110591,Aa=\"indexed_access\",AY=12520,e7=\"interface\",NY=`(Program not linked with -g, cannot print stack backtrace)\n`,v1=-46,Na=\"string_literal_type\",Ca=\"import_namespace_specifier\",sO=120132,F6=11735,vO=67505,T6=119893,O6=\"bool\",Q2=1e3,_i=\"default\",lO=236,C=\"\",bO=\"exportKind\",CY=\"trailingComments\",I6=\"^\",pO=71983,mO=8348,_O=66977,yO=65594,Pa=\"logical\",Da=\"jsx_member_expression_identifier\",A6=210,PY=\"cooked\",La=\"for_of_left_declaration\",Ov=63,hO=72202,l7=\"argument\",dO=12442,kO=43645,N6=120085,wO=42539,C6=126468,DY=166,LY=\"Match_failure\",EO=68191,Su=\"src/parser/flow_ast.ml\",P6=11647,Ra=\"declare_variable\",xs=\"+\",SO=71127,D6=120145,ja=\"declare_export_declaration_decl\",L6=64318,RY=179,Ga=\"class_implements\",jY=\"!=\",GY=\"inexact\",MY=\"%li\",BY=237,rl=\"a\",R6=73062,gO=178,Ma=65278,Ba=\"function_rest_param_type\",FO=77711,TO=70066,OO=43714,qY=-696510241,j6=70480,IO=69748,AO=113788,NO=94207,UY=`\\r\n`,qa=\"class_body\",CO=126651,PO=68735,DO=43273,G6=119996,M6=67644,HY=224,Ua=\"catch_clause_pattern\",Ha=\"boolean_literal_type\",B6=126554,q6=126557,LO=113807,U6=126536,XY=\"%\",Iv=\"property\",RO=71956,YY=\"#\",jO=123213,el=\"meta\",Xa=\"for_of_assignment_pattern\",Ya=\"if_statement\",GO=66421,MO=8505,BO=225,nl=250,qO=100343,H6=\"Literal\",UO=42887,Av=115,VY=\";\",HO=1255,XO=\"=\",YO=126566,VO=93823,Va=\"opaque_type\",zY=\"!==\",za=\"jsx_attribute\",Ka=\"type_annotation_hint\",Mi=32768,zO=73727,KY=\"range\",WY=245,KO=\"jsError\",X6=70006,WO=43492,Y6=\"@]}\",tr=\"(Some \",JO=8477,JY=129,$O=71487,V6=126564,$Y=`\n`,ZO=126514,QO=70080,Wa=\"generic_identifier_type\",rI=66811,Ja=\"typeof_identifier\",ZY=\"~\",eI=65007,$a=\"pattern_object_rest_property_pattern\",nI=194,QY=1039100673,tI=66461,uI=70319,z6=11719,iI=72271,Wt=-48,Za=\"enum_string_body\",fI=70461,Qa=\"export_named_declaration\",xI=110930,oI=92862,rV=\"??=\",aI=70440,K6=\"while\",su=\"camlinternalFormat.ml\",cI=43782,eV=203,sI=173791,vI=11263,lI=1114111,bI=42969,W6=70750,rc=\"jsx_identifier\",pI=70105,mI=43014,_I=11564,ec=\"typeof_type\",nV=\"EEXIST\",yI=64847,hI=71167,dI=42511,kI=72712,wI=92995,EI=43704,tl=121,nc=\"object_call_property_type\",SI=64433,ul=\"operator\",J6=68296,tc=\"class_decorator\",uc=120,ic=\"for_of_statement_lhs\",gI=11623,FI=67004,TI=71999,OI=70708,II=512,AI=110927,NI=71423,tV=32752,CI=93951,PI=12292,fc=\"object_type\",$6=\"types\",DI=110580,uV=177,LI=126633,RI=12686,xc=8286,iV=144,jI=73647,fV=228,Z6=70855,l1=\"0x\",GI=70366,MI=`\n`,oc=\"variable_declaration\",BI=65276,Q6=119981,qI=71945,UI=43887,j7=105,HI=8335,XI=123565,YI=69505,VI=70187,ac=\"jsx_attribute_name_identifier\",cc=\"source\",sc=\"pattern_object_property_key\",rp=65548,zI=66175,KI=92766,vc=\"pattern_assignment_pattern\",lc=\"object_type_property_getter\",ep=8305,G7=\"generator\",np=\"for\",xV=\"PropertyDefinition\",oV=\"--\",vu=-36,WI=\"mkdir\",JI=68223,bc=\"generic_qualified_identifier_type\",$I=11686,pc=\"jsx_closing_element\",ZI=43790,tp=\": No such file or directory\",QI=69687,rA=66348,up=72162,eA=43388,nA=72768,tA=68351,h=\"<2>\",ip=64297,uA=125259,iA=220,zr=\",@ \",aV=\"win32\",fp=70281,mc=\"member_property_identifier\",fA=68149,xA=68111,oA=71450,aA=43009,_c=\"member_property\",cA=73458,yi=\"identifier\",sA=67423,vA=66775,lA=110951,cV=\"Internal Error: Found object private prop\",yc=\"super_expression\",hc=\"jsx_opening_element\",bA=177976,dc=\"variable_declarator_pattern\",kc=\"pattern_expression\",wc=\"jsx_member_expression_object\",pA=68252,mA=77808,Nv=-835925911,Ec=\"import_declaration\",_A=55203,sV=\"Pervasives.do_at_exit\",vV=\"utf8\",ii=\"key\",yA=43702,Sc=\"spread_property\",xp=126563,hA=863850040,dA=70106,op=67592,gc=\"function_expression_or_method\",kA=71958,Fc=\"for_init_declaration\",wA=71955,ap=123214,EA=68479,lV=\"==\",SA=43019,gA=123180,cp=217,Cv=\"specifiers\",Tc=\"function_body\",FA=69622,sp=8487,TA=43641,bV=\"Unexpected token `\",pV=\"v\",OA=123135,IA=69295,vp=120093,AA=8521,lp=43642,mV=176;function Ku0(t,n,e,i,x){if(i<=n)for(var c=1;c<=x;c++)e[i+c]=t[n+c];else for(var c=x;c>=1;c--)e[i+c]=t[n+c];return 0}function Wu0(t){for(var n=[0];t!==0;){for(var e=t[1],i=1;i=e.l||e.t==2&&x>=e.c.length))e.c=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else if(e.t==2&&i==e.c.length)e.c+=t.t==4?NA(t.c,n,x):n==0&&t.c.length==x?t.c:t.c.substr(n,x),e.t=e.c.length==e.l?0:2;else{e.t!=4&&bp(e);var c=t.c,s=e.c;if(t.t==4)if(i<=n)for(var p=0;p=0;p--)s[i+p]=c[n+p];else{for(var y=Math.min(x,c.length-n),p=0;p>=1,t==0)return e;n+=n,i++,i==9&&n.slice(0,1)}}function Dv(t){t.t==2?t.c+=Pv(t.l-t.c.length,\"\\0\"):t.c=NA(t.c,0,t.c.length),t.t=0}function _V(t){if(t.length<24){for(var n=0;nzn)return!1;return!0}else return!/[^\\x00-\\x7f]/.test(t)}function CA(t){for(var n=C,e=C,i,x,c,s,p=0,y=t.length;pII?(e.substr(0,1),n+=e,e=C,n+=t.slice(p,T)):e+=t.slice(p,T),T==y)break;p=T}s=1,++p=55295&&s<57344)&&(s=2)):(s=3,++p1114111)&&(s=3)))))),s<4?(p-=s,e+=\"\\uFFFD\"):s>Li?e+=String.fromCharCode(55232+(s>>10),NH+(s&1023)):e+=String.fromCharCode(s),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function Oc(t,n,e){this.t=t,this.c=n,this.l=e}Oc.prototype.toString=function(){switch(this.t){case 9:return this.c;default:Dv(this);case 0:if(_V(this.c))return this.t=9,this.c;this.t=8;case 8:return this.c}},Oc.prototype.toUtf16=function(){var t=this.toString();return this.t==9?t:CA(t)},Oc.prototype.slice=function(){var t=this.t==4?this.c.slice():this.c;return new Oc(this.t,t,this.l)};function yV(t){return new Oc(0,t,t.length)}function r(t){return yV(t)}function PA(t,n){$u0(t,r(n))}var zt=[0];function lu(t){PA(zt.Invalid_argument,t)}function hV(){lu(qS)}function Jn(t,n,e){if(e&=us,t.t!=4){if(n==t.c.length)return t.c+=String.fromCharCode(e),n+1==t.l&&(t.t=0),0;bp(t)}return t.c[n]=e,0}function b1(t,n,e){return n>>>0>=t.l&&hV(),Jn(t,n,e)}function Xu(t,n){switch(t.t&6){default:if(n>=t.c.length)return 0;case 0:return t.c.charCodeAt(n);case 4:return t.c[n]}}function os(t,n){if(t.fun)return os(t.fun,n);if(typeof t!=\"function\")return t;var e=t.length|0;if(e===0)return t.apply(null,n);var i=n.length|0,x=e-i|0;return x==0?t.apply(null,n):x<0?os(t.apply(null,n.slice(0,e)),n.slice(e)):function(){for(var c=arguments.length==0?1:arguments.length,s=new Array(n.length+c),p=0;p>>0>=t.length-1&&il(),t}function Zu0(t){return isFinite(t)?Math.abs(t)>=22250738585072014e-324?0:t!=0?1:2:isNaN(t)?4:3}function Ic(t){return(t.t&6)!=0&&Dv(t),t.c}var Qu0=Math.log2&&Math.log2(11235582092889474e291)==1020;function r70(t){if(Qu0)return Math.floor(Math.log2(t));var n=0;if(t==0)return-1/0;if(t>=1)for(;t>=2;)t/=2,n++;else for(;t<1;)t*=2,n--;return n}function DA(t){var n=new z0.Float32Array(1);n[0]=t;var e=new z0.Int32Array(n.buffer);return e[0]|0}var dV=Math.pow(2,-24);function kV(t){throw t}function wV(){kV(zt.Division_by_zero)}function sn(t,n,e){this.lo=t&Ex,this.mi=n&Ex,this.hi=e&Li}sn.prototype.caml_custom=\"_j\",sn.prototype.copy=function(){return new sn(this.lo,this.mi,this.hi)},sn.prototype.ucompare=function(t){return this.hi>t.hi?1:this.hit.mi?1:this.mit.lo?1:this.loe?1:nt.mi?1:this.mit.lo?1:this.lo>24),e=-this.hi+(n>>24);return new sn(t,n,e)},sn.prototype.add=function(t){var n=this.lo+t.lo,e=this.mi+t.mi+(n>>24),i=this.hi+t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.sub=function(t){var n=this.lo-t.lo,e=this.mi-t.mi+(n>>24),i=this.hi-t.hi+(e>>24);return new sn(n,e,i)},sn.prototype.mul=function(t){var n=this.lo*t.lo,e=(n*dV|0)+this.mi*t.lo+this.lo*t.mi,i=(e*dV|0)+this.hi*t.lo+this.mi*t.mi+this.lo*t.hi;return new sn(n,e,i)},sn.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0},sn.prototype.isNeg=function(){return this.hi<<16<0},sn.prototype.and=function(t){return new sn(this.lo&t.lo,this.mi&t.mi,this.hi&t.hi)},sn.prototype.or=function(t){return new sn(this.lo|t.lo,this.mi|t.mi,this.hi|t.hi)},sn.prototype.xor=function(t){return new sn(this.lo^t.lo,this.mi^t.mi,this.hi^t.hi)},sn.prototype.shift_left=function(t){return t=t&63,t==0?this:t<24?new sn(this.lo<>24-t,this.hi<>24-t):t<48?new sn(0,this.lo<>48-t):new sn(0,0,this.lo<>t|this.mi<<24-t,this.mi>>t|this.hi<<24-t,this.hi>>t):t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi>>t-24,0):new sn(this.hi>>t-48,0,0)},sn.prototype.shift_right=function(t){if(t=t&63,t==0)return this;var n=this.hi<<16>>16;if(t<24)return new sn(this.lo>>t|this.mi<<24-t,this.mi>>t|n<<24-t,this.hi<<16>>t>>>16);var e=this.hi<<16>>31;return t<48?new sn(this.mi>>t-24|this.hi<<48-t,this.hi<<16>>t-24>>16,e&Li):new sn(this.hi<<16>>t-32,e,e)},sn.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&Ex,this.lo=this.lo<<1&Ex},sn.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&Ex,this.mi=(this.mi>>>1|this.hi<<23)&Ex,this.hi=this.hi>>>1},sn.prototype.udivmod=function(t){for(var n=0,e=this.copy(),i=t.copy(),x=new sn(0,0,0);e.ucompare(i)>0;)n++,i.lsl1();for(;n>=0;)n--,x.lsl1(),e.ucompare(i)>=0&&(x.lo++,e=e.sub(i)),i.lsr1();return{quotient:x,modulus:e}},sn.prototype.div=function(t){var n=this;t.isZero()&&wV();var e=n.hi^t.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).quotient;return e&Mi&&(i=i.neg()),i},sn.prototype.mod=function(t){var n=this;t.isZero()&&wV();var e=n.hi;n.hi&Mi&&(n=n.neg()),t.hi&Mi&&(t=t.neg());var i=n.udivmod(t).modulus;return e&Mi&&(i=i.neg()),i},sn.prototype.toInt=function(){return this.lo|this.mi<<24},sn.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo},sn.prototype.toArray=function(){return[this.hi>>8,this.hi&us,this.mi>>16,this.mi>>8&us,this.mi&us,this.lo>>16,this.lo>>8&us,this.lo&us]},sn.prototype.lo32=function(){return this.lo|(this.mi&us)<<24},sn.prototype.hi32=function(){return this.mi>>>8&Li|this.hi<<16};function pp(t,n,e){return new sn(t,n,e)}function mp(t){if(!isFinite(t))return isNaN(t)?pp(1,0,tV):t>0?pp(0,0,tV):pp(0,0,65520);var n=t==0&&1/t==-1/0?Mi:t>=0?0:Mi;n&&(t=-t);var e=r70(t)+1023;e<=0?(e=0,t/=Math.pow(2,-rH)):(t/=Math.pow(2,e-uU),t<16&&(t*=2,e-=1),e==0&&(t/=2));var i=Math.pow(2,24),x=t|0;t=(t-x)*i;var c=t|0;t=(t-c)*i;var s=t|0;return x=x&eF|n|e<<4,pp(s,c,x)}function fl(t){return t.toArray()}function EV(t,n,e){if(t.write(32,n.dims.length),t.write(32,n.kind|n.layout<<8),n.caml_custom==v3)for(var i=0;i>4;if(x==nX)return(n|e|i&eF)==0?i&Mi?-1/0:1/0:NaN;var c=Math.pow(2,-24),s=(n*c+e)*c+(i&eF);return x>0?(s+=16,s*=Math.pow(2,x-uU)):s*=Math.pow(2,-rH),i&Mi&&(s=-s),s}function jA(t){for(var n=t.length,e=1,i=0;i>>24&us|(n&Li)<<8,n>>>16&Li)}function GA(t){return t.hi32()}function MA(t){return t.lo32()}var t70=v3;function Os(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Os.prototype.caml_custom=t70,Os.prototype.offset=function(t){var n=0;if(typeof t==\"number\"&&(t=[t]),t instanceof Array||lu(\"bigarray.js: invalid offset\"),this.dims.length!=t.length&&lu(\"Bigarray.get/set: bad number of dimensions\"),this.layout==0)for(var e=0;e=this.dims[e])&&il(),n=n*this.dims[e]+t[e];else for(var e=this.dims.length-1;e>=0;e--)(t[e]<1||t[e]>this.dims[e])&&il(),n=n*this.dims[e]+(t[e]-1);return n},Os.prototype.get=function(t){switch(this.kind){case 7:var n=this.data[t*2+0],e=this.data[t*2+1];return n70(n,e);case 10:case 11:var i=this.data[t*2+0],x=this.data[t*2+1];return[gv,i,x];default:return this.data[t]}},Os.prototype.set=function(t,n){switch(this.kind){case 7:this.data[t*2+0]=MA(n),this.data[t*2+1]=GA(n);break;case 10:case 11:this.data[t*2+0]=n[1],this.data[t*2+1]=n[2];break;default:this.data[t]=n;break}return 0},Os.prototype.fill=function(t){switch(this.kind){case 7:var n=MA(t),e=GA(t);if(n==e)this.data.fill(n);else for(var i=0;is)return 1;if(c!=s){if(!n)return NaN;if(c==c)return 1;if(s==s)return-1}}break;case 7:for(var x=0;xt.data[x+1])return 1;if(this.data[x]>>>0>>0)return-1;if(this.data[x]>>>0>t.data[x]>>>0)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(var x=0;xt.data[x])return 1}break}return 0};function Lv(t,n,e,i){this.kind=t,this.layout=n,this.dims=e,this.data=i}Lv.prototype=new Os,Lv.prototype.offset=function(t){return typeof t!=\"number\"&&(t instanceof Array&&t.length==1?t=t[0]:lu(\"Ml_Bigarray_c_1_1.offset\")),(t<0||t>=this.dims[0])&&il(),t},Lv.prototype.get=function(t){return this.data[t]},Lv.prototype.set=function(t,n){return this.data[t]=n,0},Lv.prototype.fill=function(t){return this.data.fill(t),0};function gV(t,n,e,i){var x=SV(t);return jA(e)*x!=i.length&&lu(\"length doesn't match dims\"),n==0&&e.length==1&&x==1?new Lv(t,n,e,i):new Os(t,n,e,i)}function n7(t){PA(zt.Failure,t)}function FV(t,n,e){var i=t.read32s();(i<0||i>16)&&n7(\"input_value: wrong number of bigarray dimensions\");var x=t.read32s(),c=x&us,s=x>>8&1,p=[];if(e==v3)for(var y=0;y>>32-15,n=OV(n,461845907),t^=n,t=t<<13|t>>>32-13,(t+(t<<2)|0)+-430675100|0}function u70(t,n){return t=as(t,MA(n)),t=as(t,GA(n)),t}function IV(t,n){return u70(t,mp(n))}function AV(t){var n=jA(t.dims),e=0;switch(t.kind){case 2:case 3:case 12:n>N4&&(n=N4);var i=0,x=0;for(x=0;x+4<=t.data.length;x+=4)i=t.data[x+0]|t.data[x+1]<<8|t.data[x+2]<<16|t.data[x+3]<<24,e=as(e,i);switch(i=0,n&3){case 3:i=t.data[x+2]<<16;case 2:i|=t.data[x+1]<<8;case 1:i|=t.data[x+0],e=as(e,i)}break;case 4:case 5:n>jt&&(n=jt);var i=0,x=0;for(x=0;x+2<=t.data.length;x+=2)i=t.data[x+0]|t.data[x+1]<<16,e=as(e,i);(n&1)!=0&&(e=as(e,t.data[x]));break;case 6:n>64&&(n=64);for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32),n*=2;for(var x=0;x64&&(n=64);for(var x=0;x32&&(n=32);for(var x=0;x0?x(n,t,i):x(t,n,i);if(i&&c!=c)return e;if(+c!=+c)return+c;if((c|0)!=0)return c|0}return e}function _p(t){return t instanceof Oc}function qA(t){return _p(t)}function PV(t){if(typeof t==\"number\")return Q2;if(_p(t))return Y2;if(qA(t))return 1252;if(t instanceof Array&&t[0]===t[0]>>>0&&t[0]<=gw){var n=t[0]|0;return n==gv?0:n}else{if(t instanceof String)return AY;if(typeof t==\"string\")return AY;if(t instanceof Number)return Q2;if(t&&t.caml_custom)return HO;if(t&&t.compare)return 1256;if(typeof t==\"function\")return 1247;if(typeof t==\"symbol\")return 1251}return 1001}function Ac(t,n){return tn.c?1:0}function Ee(t,n){return DV(t,n)}function yp(t,n,e){for(var i=[];;){if(!(e&&t===n)){var x=PV(t);if(x==nl){t=t[1];continue}var c=PV(n);if(c==nl){n=n[1];continue}if(x!==c)return x==Q2?c==HO?CV(t,n,-1,e):-1:c==Q2?x==HO?CV(n,t,1,e):1:xn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1001:if(tn)return 1;if(t!=n){if(!e)return NaN;if(t==t)return 1;if(n==n)return-1}break;case 1251:if(t!==n)return e?1:NaN;break;case 1252:var t=Ic(t),n=Ic(n);if(t!==n){if(tn)return 1}break;case 12520:var t=t.toString(),n=n.toString();if(t!==n){if(tn)return 1}break;case 246:case 254:default:if(t.length!=n.length)return t.length1&&i.push(t,n,1);break}}if(i.length==0)return 0;var y=i.pop();n=i.pop(),t=i.pop(),y+10)if(n==0&&(e>=t.l||t.t==2&&e>=t.c.length))i==0?(t.c=C,t.t=2):(t.c=Pv(e,String.fromCharCode(i)),t.t=e==t.l?0:2);else for(t.t!=4&&bp(t),e+=n;n0&&n===n||(t=t.replace(/_/g,C),n=+t,t.length>0&&n===n||/^[+-]?nan$/i.test(t)))return n;var e=/^ *([+-]?)0x([0-9a-f]+)\\.?([0-9a-f]*)p([+-]?[0-9]+)/i.exec(t);if(e){var i=e[3].replace(/0+$/,C),x=parseInt(e[1]+e[2]+i,16),c=(e[4]|0)-4*i.length;return n=x*Math.pow(2,c),n}if(/^\\+?inf(inity)?$/i.test(t))return 1/0;if(/^-inf(inity)?$/i.test(t))return-1/0;n7(\"float_of_string\")}function UA(t){t=Ic(t);var n=t.length;n>31&&lu(\"format_int: format too long\");for(var e={justify:xs,signstyle:Fa,filler:pi,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:oY},i=0;i=0&&x<=9;)e.width=e.width*10+x,i++;i--;break;case\".\":for(e.prec=0,i++;x=t.charCodeAt(i)-48,x>=0&&x<=9;)e.prec=e.prec*10+x,i++;i--;case\"d\":case\"i\":e.signedconv=!0;case\"u\":e.base=10;break;case\"x\":e.base=16;break;case\"X\":e.base=16,e.uppercase=!0;break;case\"o\":e.base=8;break;case\"e\":case\"f\":case\"g\":e.signedconv=!0,e.conv=x;break;case\"E\":case\"F\":case\"G\":e.signedconv=!0,e.uppercase=!0,e.conv=x.toLowerCase();break}}return e}function HA(t,n){t.uppercase&&(n=n.toUpperCase());var e=n.length;t.signedconv&&(t.sign<0||t.signstyle!=Fa)&&e++,t.alternate&&(t.base==8&&(e+=1),t.base==16&&(e+=2));var i=C;if(t.justify==xs&&t.filler==pi)for(var x=e;x20?(w-=20,E/=Math.pow(10,w),E+=new Array(w+1).join(Zu),d>0&&(E=E+Lo+new Array(d+1).join(Zu)),E):E.toFixed(d)}var i,x=UA(t),c=x.prec<0?6:x.prec;if((n<0||n==0&&1/n==-1/0)&&(x.sign=-1,n=-n),isNaN(n))i=sw,x.filler=pi;else if(!isFinite(n))i=\"inf\",x.filler=pi;else switch(x.conv){case\"e\":var i=n.toExponential(c),s=i.length;i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break;case\"f\":i=e(n,c);break;case\"g\":c=c||1,i=n.toExponential(c-1);var p=i.indexOf(ny),y=+i.slice(p+1);if(y<-4||n>=1e21||n.toFixed(0).length>c){for(var s=p-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)+i.slice(p),s=i.length,i.charAt(s-3)==ny&&(i=i.slice(0,s-1)+Zu+i.slice(s-1));break}else{var T=c;if(y<0)T-=y+1,i=n.toFixed(T);else for(;i=n.toFixed(T),i.length>c+1;)T--;if(T){for(var s=i.length-1;i.charAt(s)==Zu;)s--;i.charAt(s)==Lo&&s--,i=i.slice(0,s+1)}}break}return HA(x,i)}function hp(t,n){if(Ic(t)==N2)return r(C+n);var e=UA(t);n<0&&(e.signedconv?(e.sign=-1,n=-n):n>>>=0);var i=n.toString(e.base);if(e.prec>=0){e.filler=pi;var x=e.prec-i.length;x>0&&(i=Pv(x,Zu)+i)}return HA(e,i)}var jV=0;function M7(){return jV++}function l70(){return 0}function GV(){return[0]}var dp=[];function Qe(t,n,e){var i=t[1],x=dp[e];if(x===void 0)for(var c=dp.length;c>1|1,nII?(e.substr(0,1),n+=e,e=C,n+=t.slice(c,p)):e+=t.slice(c,p),p==s)break;c=p}i>6),e+=String.fromCharCode(Pi|i&Ov)):i<55296||i>=SH?e+=String.fromCharCode(HY|i>>12,Pi|i>>6&Ov,Pi|i&Ov):i>=56319||c+1==s||(x=t.charCodeAt(c+1))SH?e+=\"\\xEF\\xBF\\xBD\":(c++,i=(i<<10)+x-56613888,e+=String.fromCharCode(LX|i>>18,Pi|i>>12&Ov,Pi|i>>6&Ov,Pi|i&Ov)),e.length>L2&&(e.substr(0,1),n+=e,e=C)}return n+e}function p70(t){var n=9;return _V(t)||(n=8,t=b70(t)),new Oc(n,t,t.length)}function B7(t){return p70(t)}function m70(t,n,e){if(!isFinite(t))return isNaN(t)?B7(sw):B7(t>0?mU:\"-infinity\");var i=t==0&&1/t==-1/0?1:t>=0?0:1;i&&(t=-t);var x=0;if(t!=0)if(t<1)for(;t<1&&x>-BX;)t*=2,x--;else for(;t>=2;)t/=2,x++;var c=x<0?C:xs,s=C;if(i)s=Fa;else switch(e){case 43:s=xs;break;case 32:s=pi;break;default:break}if(n>=0&&n<13){var p=Math.pow(2,n*4);t=Math.round(t*p)/p}var y=t.toString(16);if(n>=0){var T=y.indexOf(Lo);if(T<0)y+=Lo+Pv(n,Zu);else{var E=T+1+n;y.length>24&Ex,t>>31&Li)}function y70(t){return t.toInt()}function h70(t){return+t.isNeg()}function MV(t){return t.neg()}function d70(t,n){var e=UA(t);e.signedconv&&h70(n)&&(e.sign=-1,n=MV(n));var i=C,x=kp(e.base),c=\"0123456789abcdef\";do{var s=n.udivmod(x);n=s.quotient,i=c.charAt(y70(s.modulus))+i}while(!_70(n));if(e.prec>=0){e.filler=pi;var p=e.prec-i.length;p>0&&(i=Pv(p,Zu)+i)}return HA(e,i)}function b7(t){return t.l}function un(t){return b7(t)}function Vr(t,n){return Xu(t,n)}function k70(t,n){return t.add(n)}function w70(t,n){return t.mul(n)}function YA(t,n){return t.ucompare(n)<0}function BV(t){var n=0,e=un(t),i=10,x=1;if(e>0)switch(Vr(t,n)){case 45:n++,x=-1;break;case 43:n++,x=1;break}if(n+1=48&&t<=57?t-48:t>=65&&t<=90?t-55:t>=97&&t<=In?t-87:-1}function Rv(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=kp(x),s=new sn(Ex,268435455,Li).udivmod(c).quotient,p=Vr(t,e),y=wp(p);(y<0||y>=x)&&n7(ns);for(var T=kp(y);;)if(e++,p=Vr(t,e),p!=95){if(y=wp(p),y<0||y>=x)break;YA(s,T)&&n7(ns),y=kp(y),T=k70(w70(c,T),y),YA(T,y)&&n7(ns)}return e!=un(t)&&n7(ns),x==10&&YA(new sn(0,0,Mi),T)&&n7(ns),i<0&&(T=MV(T)),T}function jv(t){return t.toFloat()}function Bi(t){var n=BV(t),e=n[0],i=n[1],x=n[2],c=un(t),s=-1>>>0,p=e=x)&&n7(ns);var T=y;for(e++;e=x)break;T=x*T+y,T>s&&n7(ns)}return e!=c&&n7(ns),T=i*T,x==10&&(T|0)!=T&&n7(ns),T|0}function E70(t){return t.slice(1)}function S70(t){return!!t}function bn(t){return t.toUtf16()}function g70(t){for(var n={},e=1;e1&&i.pop();break;case\".\":break;default:i.push(e[x]);break}return i.unshift(n[0]),i.orig=t,i}var A70=[\"E2BIG\",\"EACCES\",\"EAGAIN\",\"EBADF\",\"EBUSY\",\"ECHILD\",\"EDEADLK\",\"EDOM\",nV,\"EFAULT\",\"EFBIG\",\"EINTR\",\"EINVAL\",\"EIO\",\"EISDIR\",\"EMFILE\",\"EMLINK\",\"ENAMETOOLONG\",\"ENFILE\",\"ENODEV\",vh,\"ENOEXEC\",\"ENOLCK\",\"ENOMEM\",\"ENOSPC\",\"ENOSYS\",yw,PU,\"ENOTTY\",\"ENXIO\",\"EPERM\",\"EPIPE\",\"ERANGE\",\"EROFS\",\"ESPIPE\",\"ESRCH\",\"EXDEV\",\"EWOULDBLOCK\",\"EINPROGRESS\",\"EALREADY\",\"ENOTSOCK\",\"EDESTADDRREQ\",\"EMSGSIZE\",\"EPROTOTYPE\",\"ENOPROTOOPT\",\"EPROTONOSUPPORT\",\"ESOCKTNOSUPPORT\",\"EOPNOTSUPP\",\"EPFNOSUPPORT\",\"EAFNOSUPPORT\",\"EADDRINUSE\",\"EADDRNOTAVAIL\",\"ENETDOWN\",\"ENETUNREACH\",\"ENETRESET\",\"ECONNABORTED\",\"ECONNRESET\",\"ENOBUFS\",\"EISCONN\",\"ENOTCONN\",\"ESHUTDOWN\",\"ETOOMANYREFS\",\"ETIMEDOUT\",\"ECONNREFUSED\",\"EHOSTDOWN\",\"EHOSTUNREACH\",\"ELOOP\",\"EOVERFLOW\"];function m1(t,n,e,i){var x=A70.indexOf(t);x<0&&(i==null&&(i=-9999),x=[0,i]);var c=[x,B7(n||C),B7(e||C)];return c}var HV={};function _1(t){return HV[t]}function y1(t,n){throw[0,t].concat(n)}function N70(t){return new Oc(4,t,t.length)}function C70(t){t=Ic(t),at(t+tp)}function P70(t,n){return n>>>0>=t.l&&hV(),Xu(t,n)}function XV(){}function gu(t){this.data=t}gu.prototype=new XV,gu.prototype.truncate=function(t){var n=this.data;this.data=Lt(t|0),Fs(n,0,this.data,0,t)},gu.prototype.length=function(){return b7(this.data)},gu.prototype.write=function(t,n,e,i){var x=this.length();if(t+i>=x){var c=Lt(t+i),s=this.data;this.data=c,Fs(s,0,this.data,0,x)}return Ts(n,e,this.data,t,i),0},gu.prototype.read=function(t,n,e,i){var x=this.length();return Fs(this.data,t,n,e,i),0},gu.prototype.read_one=function(t){return P70(this.data,t)},gu.prototype.close=function(){},gu.prototype.constructor=gu;function t7(t,n){this.content={},this.root=t,this.lookupFun=n}t7.prototype.nm=function(t){return this.root+t},t7.prototype.create_dir_if_needed=function(t){for(var n=t.split(Qu),e=C,i=0;izt.fd_last_idx)&&(zt.fd_last_idx=t),t}function loe(t,n,e){for(var i={};n;){switch(n[1]){case 0:i.rdonly=1;break;case 1:i.wronly=1;break;case 2:i.append=1;break;case 3:i.create=1;break;case 4:i.truncate=1;break;case 5:i.excl=1;break;case 6:i.binary=1;break;case 7:i.text=1;break;case 8:i.nonblock=1;break}n=n[2]}i.rdonly&&i.wronly&&at(Ic(t)+FY),i.text&&i.binary&&at(Ic(t)+tY);var x=R70(t),c=x.device.open(x.rest,i),s=zt.fd_last_idx?zt.fd_last_idx:0;return Sp(s+1,VV,c,i)}Sp(0,VV,new gu(Lt(0))),Sp(1,G70,new gu(Lt(0))),Sp(2,j70,new gu(Lt(0)));function M70(t){var n=zt.fds[t];n.flags.wronly&&at(pX+t+\" is writeonly\");var e=null;if(t==0&&qV()){var i=kj();e=function(){return B7(i.readFileSync(0,vV))}}var x={file:n.file,offset:n.offset,fd:t,opened:!0,out:!1,refill:e};return Nc[x.fd]=x,x.fd}function zV(t){var n=zt.fds[t];n.flags.rdonly&&at(pX+t+\" is readonly\");var e={file:n.file,offset:n.offset,fd:t,opened:!0,out:!0,buffer:C};return Nc[e.fd]=e,e.fd}function B70(){for(var t=0,n=0;n>>0?t[0]:_p(t)||qA(t)?Y2:t instanceof Function||typeof t==\"function\"?Dw:t&&t.caml_custom?gw:Q2}function hi(t,n,e){e&&z0.toplevelReloc&&(t=z0.toplevelReloc(e)),zt[t+1]=n,e&&(zt[e]=n)}function WA(t,n){return HV[Ic(t)]=n,0}function H70(t){return t[2]=jV++,t}function X70(t,n){return t===n?1:(t.t&6&&Dv(t),n.t&6&&Dv(n),t.c==n.c?1:0)}function qn(t,n){return X70(t,n)}function Y70(){lu(qS)}function It(t,n){return n>>>0>=un(t)&&Y70(),Vr(t,n)}function n0(t,n){return 1-qn(t,n)}function V70(){return[0,r(\"js_of_ocaml\")]}function z70(){return 2147483647/4|0}function K70(t){return 0}var W70=z0.process&&z0.process.platform&&z0.process.platform==aV?jU:\"Unix\";function J70(){return[0,r(W70),32,0]}function $70(){kV(zt.Not_found)}function WV(t){var n=z0,e=bn(t);if(n.process&&n.process.env&&n.process.env[e]!=null)return B7(n.process.env[e]);if(z0.jsoo_static_env&&z0.jsoo_static_env[e])return B7(z0.jsoo_static_env[e]);$70()}function JA(t){for(var n=1;t&&t.joo_tramp;)t=t.joo_tramp.apply(null,t.joo_args),n++;return t}function Tu(t,n){return{joo_tramp:t,joo_args:n}}function N(t,n){if(typeof n==\"function\")return t.fun=n,0;if(n.fun)return t.fun=n.fun,0;for(var e=n.length;e--;)t[e]=n[e];return 0}function poe(t){return t}function Et(t){return t instanceof Array?t:z0.RangeError&&t instanceof z0.RangeError&&t.message&&t.message.match(/maximum call stack/i)||z0.InternalError&&t instanceof z0.InternalError&&t.message&&t.message.match(/too much recursion/i)?zt.Stack_overflow:t instanceof z0.Error&&_1(KO)?[0,_1(KO),t]:[0,zt.Failure,B7(String(t))]}function Z70(t){switch(t[2]){case-8:case-11:case-12:return 1;default:return 0}}function Q70(t){var n=C;if(t[0]==0){if(n+=t[1][1],t.length==3&&t[2][0]==0&&Z70(t[1]))var i=t[2],e=1;else var e=2,i=t;n+=HX;for(var x=e;xe&&(n+=$H);var c=i[x];typeof c==\"number\"?n+=c.toString():c instanceof Oc||typeof c==\"string\"?n+=V2+c.toString()+V2:n+=bv}n+=Z0}else t[0]==wt&&(n+=t[1]);return n}function JV(t){if(t instanceof Array&&(t[0]==0||t[0]==wt)){var n=_1(LH);if(n)n(t,!1);else{var e=Q70(t),i=_1(sV);i&&i(0),z0.console.error(yd+e+$Y)}}else throw t}function ri0(){var t=z0;t.process&&t.process.on?t.process.on(\"uncaughtException\",function(n,e){JV(n),t.process.exit(2)}):t.addEventListener&&t.addEventListener(\"error\",function(n){n.error&&JV(n.error)})}ri0();function u(t,n){return t.length==1?t(n):os(t,[n])}function o(t,n,e){return t.length==2?t(n,e):os(t,[n,e])}function ur(t,n,e,i){return t.length==3?t(n,e,i):os(t,[n,e,i])}function R(t,n,e,i,x){return t.length==4?t(n,e,i,x):os(t,[n,e,i,x])}function p7(t,n,e,i,x,c){return t.length==5?t(n,e,i,x,c):os(t,[n,e,i,x,c])}function ei0(t,n,e,i,x,c,s,p){return t.length==7?t(n,e,i,x,c,s,p):os(t,[n,e,i,x,c,s,p])}var $A=[wt,r(wX),-1],$V=[wt,r(DH),-2],q7=[wt,r(AH),-3],ZA=[wt,r(fH),-4],Jt=[wt,r(KU),-7],ZV=[wt,r(LY),-8],QV=[wt,r(VU),-9],Sn=[wt,r(wU),-11],sl=[wt,r(uX),-12],rz=[0,s7],ni0=[4,0,0,0,[12,45,[4,0,0,0,0]]],QA=[0,[11,r('File \"'),[2,0,[11,r('\", line '),[4,0,0,0,[11,r(yH),[4,0,0,0,[12,45,[4,0,0,0,[11,r(\": \"),[2,0,0]]]]]]]]]],r('File \"%s\", line %d, characters %d-%d: %s')],ez=[0,0,[0,0,0],[0,0,0]],rN=r(\"\u0001\u0002\"),eN=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),Bv=[0,0,0,0,1,0],nz=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(De),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],tz=[0,r(\"first_leading\"),r(\"last_trailing\")],uz=[0,0];hi(11,sl,uX),hi(10,Sn,wU),hi(9,[wt,r(dY),CX],dY),hi(8,QV,VU),hi(7,ZV,LY),hi(6,Jt,KU),hi(5,[wt,r(rY),-6],rY),hi(4,[wt,r(IH),-5],IH),hi(3,ZA,fH),hi(2,q7,AH),hi(1,$V,DH),hi(0,$A,wX);var ti0=r(\"output_substring\"),ui0=r(\"%.12g\"),ii0=r(Lo),fi0=r(Gi),xi0=r(Ci),oi0=r(uY),ai0=r(\"\\\\'\"),ci0=r(\"\\\\b\"),si0=r(\"\\\\t\"),vi0=r(\"\\\\n\"),li0=r(\"\\\\r\"),bi0=r(\"List.iter2\"),pi0=r(\"tl\"),mi0=r(\"hd\"),_i0=r(\"String.blit / Bytes.blit_string\"),yi0=r(\"Bytes.blit\"),hi0=r(\"String.sub / Bytes.sub\"),di0=r(\"Array.blit\"),ki0=r(\"Array.sub\"),wi0=r(\"Map.remove_min_elt\"),Ei0=[0,0,0,0],Si0=[0,r(\"map.ml\"),400,10],gi0=[0,0,0],Fi0=r(e6),Ti0=r(e6),Oi0=r(e6),Ii0=r(e6),Ai0=r(\"Stdlib.Queue.Empty\"),Ni0=r(\"CamlinternalLazy.Undefined\"),Ci0=r(\"Buffer.add_substring/add_subbytes\"),Pi0=r(\"Buffer.add: cannot grow buffer\"),Di0=[0,r(GU),93,2],Li0=[0,r(GU),94,2],Ri0=r(\"Buffer.sub\"),ji0=r(\"%c\"),Gi0=r(\"%s\"),Mi0=r(oX),Bi0=r(MY),qi0=r(xH),Ui0=r(YH),Hi0=r(\"%f\"),Xi0=r(An),Yi0=r(\"%{\"),Vi0=r(\"%}\"),zi0=r(\"%(\"),Ki0=r(\"%)\"),Wi0=r(N0),Ji0=r(\"%t\"),$i0=r(\"%?\"),Zi0=r(\"%r\"),Qi0=r(\"%_r\"),rf0=[0,r(su),850,23],ef0=[0,r(su),814,21],nf0=[0,r(su),815,21],tf0=[0,r(su),818,21],uf0=[0,r(su),819,21],if0=[0,r(su),822,19],ff0=[0,r(su),823,19],xf0=[0,r(su),826,22],of0=[0,r(su),827,22],af0=[0,r(su),831,30],cf0=[0,r(su),832,30],sf0=[0,r(su),836,26],vf0=[0,r(su),837,26],lf0=[0,r(su),846,28],bf0=[0,r(su),847,28],pf0=[0,r(su),851,23],mf0=r(wY),_f0=[0,r(su),1558,4],yf0=r(\"Printf: bad conversion %[\"),hf0=[0,r(su),1626,39],df0=[0,r(su),1649,31],kf0=[0,r(su),1650,31],wf0=r(\"Printf: bad conversion %_\"),Ef0=r(SY),Sf0=r(bY),gf0=r(SY),Ff0=r(bY),Tf0=[0,[11,r(\"invalid box description \"),[3,0,0]],r(\"invalid box description %S\")],Of0=r(C),If0=[0,0,4],Af0=r(C),Nf0=r(dX),Cf0=r(\"h\"),Pf0=r(\"hov\"),Df0=r(\"hv\"),Lf0=r(pV),Rf0=r(sw),jf0=r(\"neg_infinity\"),Gf0=r(mU),Mf0=r(Lo),Bf0=r(\"%+nd\"),qf0=r(\"% nd\"),Uf0=r(\"%+ni\"),Hf0=r(\"% ni\"),Xf0=r(\"%nx\"),Yf0=r(\"%#nx\"),Vf0=r(\"%nX\"),zf0=r(\"%#nX\"),Kf0=r(\"%no\"),Wf0=r(\"%#no\"),Jf0=r(\"%nd\"),$f0=r(xH),Zf0=r(\"%nu\"),Qf0=r(\"%+ld\"),rx0=r(\"% ld\"),ex0=r(\"%+li\"),nx0=r(\"% li\"),tx0=r(\"%lx\"),ux0=r(\"%#lx\"),ix0=r(\"%lX\"),fx0=r(\"%#lX\"),xx0=r(\"%lo\"),ox0=r(\"%#lo\"),ax0=r(\"%ld\"),cx0=r(MY),sx0=r(\"%lu\"),vx0=r(\"%+Ld\"),lx0=r(\"% Ld\"),bx0=r(\"%+Li\"),px0=r(\"% Li\"),mx0=r(\"%Lx\"),_x0=r(\"%#Lx\"),yx0=r(\"%LX\"),hx0=r(\"%#LX\"),dx0=r(\"%Lo\"),kx0=r(\"%#Lo\"),wx0=r(\"%Ld\"),Ex0=r(YH),Sx0=r(\"%Lu\"),gx0=r(\"%+d\"),Fx0=r(\"% d\"),Tx0=r(\"%+i\"),Ox0=r(\"% i\"),Ix0=r(\"%x\"),Ax0=r(\"%#x\"),Nx0=r(\"%X\"),Cx0=r(\"%#X\"),Px0=r(\"%o\"),Dx0=r(\"%#o\"),Lx0=r(N2),Rx0=r(oX),jx0=r(wY),Gx0=r(z),Mx0=r(\"@}\"),Bx0=r(\"@?\"),qx0=r(`@\n`),Ux0=r(\"@.\"),Hx0=r(\"@@\"),Xx0=r(\"@%\"),Yx0=r(gX),Vx0=r(\"CamlinternalFormat.Type_mismatch\"),zx0=r(C),Kx0=[0,[11,r($H),[2,0,[2,0,0]]],r(\", %s%s\")],Wx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],Jx0=[0,[11,r(\"Fatal error in uncaught exception handler: exception \"),[2,0,[12,10,0]]],r(`Fatal error in uncaught exception handler: exception %s\n`)],$x0=r(\"Fatal error: out of memory in uncaught exception handler\"),Zx0=[0,[11,r(yd),[2,0,[12,10,0]]],r(TU)],Qx0=[0,[2,0,[12,10,0]],r(`%s\n`)],ro0=[0,[11,r(NY),0],r(NY)],eo0=r(\"Raised at\"),no0=r(\"Re-raised at\"),to0=r(\"Raised by primitive operation at\"),uo0=r(\"Called from\"),io0=r(\" (inlined)\"),fo0=r(C),xo0=[0,[2,0,[12,32,[2,0,[11,r(' in file \"'),[2,0,[12,34,[2,0,[11,r(\", line \"),[4,0,0,0,[11,r(yH),ni0]]]]]]]]]],r('%s %s in file \"%s\"%s, line %d, characters %d-%d')],oo0=[0,[2,0,[11,r(\" unknown location\"),0]],r(\"%s unknown location\")],ao0=r(\"Out of memory\"),co0=r(\"Stack overflow\"),so0=r(\"Pattern matching failed\"),vo0=r(\"Assertion failed\"),lo0=r(\"Undefined recursive module\"),bo0=[0,[12,40,[2,0,[2,0,[12,41,0]]]],r(\"(%s%s)\")],po0=r(C),mo0=r(C),_o0=[0,[12,40,[2,0,[12,41,0]]],r(\"(%s)\")],yo0=[0,[4,0,0,0,0],r(N2)],ho0=[0,[3,0,0],r(Vt)],do0=r(bv),ko0=[0,r(C),r(`(Cannot print locations:\n bytecode executable program file not found)`),r(`(Cannot print locations:\n bytecode executable program file appears to be corrupt)`),r(`(Cannot print locations:\n bytecode executable program file has wrong magic number)`),r(`(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)`)],wo0=[3,0,3],Eo0=r(Lo),So0=r(cv),go0=r(\"Flow_ast.Function.BodyBlock@ \")],Ca0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Pa0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Da0=[0,[17,0,[12,41,0]],r(d0)],La0=[0,[17,0,[12,41,0]],r(d0)],Ra0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Function.BodyExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Function.BodyExpression@ \")],ja0=[0,[17,0,[12,41,0]],r(d0)],Ga0=[0,[15,0],r(N0)],Ma0=r(Yr),Ba0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qa0=r(\"Flow_ast.Function.id\"),Ua0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ha0=r(tr),Xa0=r(Z0),Ya0=r(nr),Va0=[0,[17,0,0],r(z)],za0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ka0=r(Dt),Wa0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ja0=[0,[17,0,0],r(z)],$a0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Za0=r(Wn),Qa0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rc0=[0,[17,0,0],r(z)],ec0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nc0=r(gs),tc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uc0=[0,[9,0,0],r(An)],ic0=[0,[17,0,0],r(z)],fc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xc0=r(G7),oc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ac0=[0,[9,0,0],r(An)],cc0=[0,[17,0,0],r(z)],sc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vc0=r(r7),lc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bc0=r(tr),pc0=r(Z0),mc0=r(nr),_c0=[0,[17,0,0],r(z)],yc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hc0=r(Ju),dc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kc0=[0,[17,0,0],r(z)],wc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ec0=r(sv),Sc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gc0=r(tr),Fc0=r(Z0),Tc0=r(nr),Oc0=[0,[17,0,0],r(z)],Ic0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ac0=r(Xr),Nc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cc0=r(tr),Pc0=r(Z0),Dc0=r(nr),Lc0=[0,[17,0,0],r(z)],Rc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jc0=r(\"sig_loc\"),Gc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Mc0=[0,[17,0,0],r(z)],Bc0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qc0=[0,[15,0],r(N0)],Uc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Xc0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Yc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vc0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zc0=r(\"Flow_ast.Function.Params.this_\"),Kc0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wc0=r(tr),Jc0=r(Z0),$c0=r(nr),Zc0=[0,[17,0,0],r(z)],Qc0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rs0=r(Dt),es0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ns0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ts0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],us0=[0,[17,0,0],r(z)],is0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fs0=r(xd),xs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],os0=r(tr),as0=r(Z0),cs0=r(nr),ss0=[0,[17,0,0],r(z)],vs0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ls0=r(Xr),bs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ps0=r(tr),ms0=r(Z0),_s0=r(nr),ys0=[0,[17,0,0],r(z)],hs0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ds0=[0,[15,0],r(N0)],ks0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],ws0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Es0=[0,[17,0,[12,41,0]],r(d0)],Ss0=[0,[15,0],r(N0)],gs0=r(Yr),Fs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ts0=r(\"Flow_ast.Function.ThisParam.annot\"),Os0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Is0=[0,[17,0,0],r(z)],As0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ns0=r(Xr),Cs0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ps0=r(tr),Ds0=r(Z0),Ls0=r(nr),Rs0=[0,[17,0,0],r(z)],js0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Gs0=[0,[15,0],r(N0)],Ms0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Bs0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],qs0=[0,[17,0,[12,41,0]],r(d0)],Us0=[0,[15,0],r(N0)],Hs0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xs0=r(\"Flow_ast.Function.Param.argument\"),Ys0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vs0=[0,[17,0,0],r(z)],zs0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ks0=r(_i),Ws0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Js0=r(tr),$s0=r(Z0),Zs0=r(nr),Qs0=[0,[17,0,0],r(z)],r10=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],e10=[0,[15,0],r(N0)],n10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],t10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],u10=[0,[17,0,[12,41,0]],r(d0)],i10=[0,[15,0],r(N0)],f10=r(Yr),x10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],o10=r(\"Flow_ast.Function.RestParam.argument\"),a10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],c10=[0,[17,0,0],r(z)],s10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],v10=r(Xr),l10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b10=r(tr),p10=r(Z0),m10=r(nr),_10=[0,[17,0,0],r(z)],y10=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],h10=[0,[15,0],r(N0)],d10=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],k10=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],w10=[0,[17,0,[12,41,0]],r(d0)],E10=[0,[15,0],r(N0)],S10=r(Yr),g10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F10=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],T10=r(\"Flow_ast.Class.id\"),O10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],I10=r(tr),A10=r(Z0),N10=r(nr),C10=[0,[17,0,0],r(z)],P10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],D10=r(Wn),L10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R10=[0,[17,0,0],r(z)],j10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G10=r(sv),M10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B10=r(tr),q10=r(Z0),U10=r(nr),H10=[0,[17,0,0],r(z)],X10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Y10=r(P7),V10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],z10=r(tr),K10=r(Z0),W10=r(nr),J10=[0,[17,0,0],r(z)],$10=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Z10=r(ws),Q10=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rv0=r(tr),ev0=r(Z0),nv0=r(nr),tv0=[0,[17,0,0],r(z)],uv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iv0=r(\"class_decorators\"),fv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ov0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],av0=[0,[17,0,0],r(z)],cv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sv0=r(Xr),vv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lv0=r(tr),bv0=r(Z0),pv0=r(nr),mv0=[0,[17,0,0],r(z)],_v0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yv0=[0,[15,0],r(N0)],hv0=r(Yr),dv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],kv0=r(\"Flow_ast.Class.Decorator.expression\"),wv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ev0=[0,[17,0,0],r(z)],Sv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gv0=r(Xr),Fv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tv0=r(tr),Ov0=r(Z0),Iv0=r(nr),Av0=[0,[17,0,0],r(z)],Nv0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Cv0=[0,[15,0],r(N0)],Pv0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dv0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Lv0=[0,[17,0,[12,41,0]],r(d0)],Rv0=[0,[15,0],r(N0)],jv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Body.Method\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Body.Method@ \")],Gv0=[0,[17,0,[12,41,0]],r(d0)],Mv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Body.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Body.Property@ \")],Bv0=[0,[17,0,[12,41,0]],r(d0)],qv0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Body.PrivateField\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Body.PrivateField@ \")],Uv0=[0,[17,0,[12,41,0]],r(d0)],Hv0=[0,[15,0],r(N0)],Xv0=r(Yr),Yv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zv0=r(\"Flow_ast.Class.Body.body\"),Kv0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wv0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Jv0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$v0=[0,[17,0,0],r(z)],Zv0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qv0=r(Xr),r20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e20=r(tr),n20=r(Z0),t20=r(nr),u20=[0,[17,0,0],r(z)],i20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],f20=[0,[15,0],r(N0)],x20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],o20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],a20=[0,[17,0,[12,41,0]],r(d0)],c20=[0,[15,0],r(N0)],s20=r(Yr),v20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],l20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],b20=r(\"Flow_ast.Class.Implements.interfaces\"),p20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],_20=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],y20=[0,[17,0,0],r(z)],h20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],d20=r(Xr),k20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w20=r(tr),E20=r(Z0),S20=r(nr),g20=[0,[17,0,0],r(z)],F20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],T20=[0,[15,0],r(N0)],O20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],I20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],A20=[0,[17,0,[12,41,0]],r(d0)],N20=[0,[15,0],r(N0)],C20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P20=r(\"Flow_ast.Class.Implements.Interface.id\"),D20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L20=[0,[17,0,0],r(z)],R20=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j20=r(Z2),G20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],M20=r(tr),B20=r(Z0),q20=r(nr),U20=[0,[17,0,0],r(z)],H20=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],X20=[0,[15,0],r(N0)],Y20=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],V20=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],z20=[0,[17,0,[12,41,0]],r(d0)],K20=[0,[15,0],r(N0)],W20=r(Yr),J20=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$20=r(\"Flow_ast.Class.Extends.expr\"),Z20=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q20=[0,[17,0,0],r(z)],rl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],el0=r(Z2),nl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tl0=r(tr),ul0=r(Z0),il0=r(nr),fl0=[0,[17,0,0],r(z)],xl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ol0=r(Xr),al0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cl0=r(tr),sl0=r(Z0),vl0=r(nr),ll0=[0,[17,0,0],r(z)],bl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pl0=[0,[15,0],r(N0)],ml0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_l0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yl0=[0,[17,0,[12,41,0]],r(d0)],hl0=[0,[15,0],r(N0)],dl0=r(Yr),kl0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wl0=r(\"Flow_ast.Class.PrivateField.key\"),El0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sl0=[0,[17,0,0],r(z)],gl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fl0=r(Bn),Tl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ol0=[0,[17,0,0],r(z)],Il0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Al0=r(Qc),Nl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cl0=[0,[17,0,0],r(z)],Pl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dl0=r(nu),Ll0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rl0=[0,[9,0,0],r(An)],jl0=[0,[17,0,0],r(z)],Gl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ml0=r(cu),Bl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ql0=r(tr),Ul0=r(Z0),Hl0=r(nr),Xl0=[0,[17,0,0],r(z)],Yl0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vl0=r(Xr),zl0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Kl0=r(tr),Wl0=r(Z0),Jl0=r(nr),$l0=[0,[17,0,0],r(z)],Zl0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ql0=[0,[15,0],r(N0)],rb0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eb0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nb0=[0,[17,0,[12,41,0]],r(d0)],tb0=[0,[15,0],r(N0)],ub0=r(\"Flow_ast.Class.Property.Uninitialized\"),ib0=r(\"Flow_ast.Class.Property.Declared\"),fb0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Class.Property.Initialized\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Class.Property.Initialized@ \")],xb0=[0,[17,0,[12,41,0]],r(d0)],ob0=[0,[15,0],r(N0)],ab0=r(Yr),cb0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sb0=r(\"Flow_ast.Class.Property.key\"),vb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lb0=[0,[17,0,0],r(z)],bb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pb0=r(Bn),mb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_b0=[0,[17,0,0],r(z)],yb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hb0=r(Qc),db0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kb0=[0,[17,0,0],r(z)],wb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eb0=r(nu),Sb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gb0=[0,[9,0,0],r(An)],Fb0=[0,[17,0,0],r(z)],Tb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ob0=r(cu),Ib0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ab0=r(tr),Nb0=r(Z0),Cb0=r(nr),Pb0=[0,[17,0,0],r(z)],Db0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Lb0=r(Xr),Rb0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jb0=r(tr),Gb0=r(Z0),Mb0=r(nr),Bb0=[0,[17,0,0],r(z)],qb0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ub0=[0,[15,0],r(N0)],Hb0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xb0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yb0=[0,[17,0,[12,41,0]],r(d0)],Vb0=[0,[15,0],r(N0)],zb0=r(Yr),Kb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wb0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Jb0=r(\"Flow_ast.Class.Method.kind\"),$b0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zb0=[0,[17,0,0],r(z)],Qb0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r40=r(ii),e40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n40=[0,[17,0,0],r(z)],t40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u40=r(Bn),i40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],x40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],o40=[0,[17,0,[12,41,0]],r(d0)],a40=[0,[17,0,0],r(z)],c40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],s40=r(nu),v40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l40=[0,[9,0,0],r(An)],b40=[0,[17,0,0],r(z)],p40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],m40=r(j_),_40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],y40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],h40=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],d40=[0,[17,0,0],r(z)],k40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],w40=r(Xr),E40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S40=r(tr),g40=r(Z0),F40=r(nr),T40=[0,[17,0,0],r(z)],O40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],I40=[0,[15,0],r(N0)],A40=r(\"Flow_ast.Class.Method.Constructor\"),N40=r(\"Flow_ast.Class.Method.Method\"),C40=r(\"Flow_ast.Class.Method.Get\"),P40=r(\"Flow_ast.Class.Method.Set\"),D40=[0,[15,0],r(N0)],L40=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R40=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j40=[0,[17,0,[12,41,0]],r(d0)],G40=[0,[15,0],r(N0)],M40=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],B40=r(\"Flow_ast.Comment.kind\"),q40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U40=[0,[17,0,0],r(z)],H40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X40=r(\"text\"),Y40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V40=[0,[3,0,0],r(Vt)],z40=[0,[17,0,0],r(z)],K40=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],W40=r(\"on_newline\"),J40=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$40=[0,[9,0,0],r(An)],Z40=[0,[17,0,0],r(z)],Q40=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],r80=[0,[15,0],r(N0)],e80=r(\"Flow_ast.Comment.Line\"),n80=r(\"Flow_ast.Comment.Block\"),t80=[0,[15,0],r(N0)],u80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],i80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],f80=[0,[17,0,[12,41,0]],r(d0)],x80=[0,[15,0],r(N0)],o80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object@ \")],a80=[0,[17,0,[12,41,0]],r(d0)],c80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array@ \")],s80=[0,[17,0,[12,41,0]],r(d0)],v80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Identifier@ \")],l80=[0,[17,0,[12,41,0]],r(d0)],b80=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Expression@ \")],p80=[0,[17,0,[12,41,0]],r(d0)],m80=[0,[15,0],r(N0)],_80=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],y80=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],h80=[0,[17,0,[12,41,0]],r(d0)],d80=[0,[15,0],r(N0)],k80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w80=r(\"Flow_ast.Pattern.Identifier.name\"),E80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S80=[0,[17,0,0],r(z)],g80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F80=r(Qc),T80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O80=[0,[17,0,0],r(z)],I80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],A80=r(qu),N80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],C80=[0,[9,0,0],r(An)],P80=[0,[17,0,0],r(z)],D80=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],L80=[0,[15,0],r(N0)],R80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],G80=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],M80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],B80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q80=r(\"Flow_ast.Pattern.Array.elements\"),U80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H80=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],X80=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Y80=[0,[17,0,0],r(z)],V80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],z80=r(Qc),K80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],W80=[0,[17,0,0],r(z)],J80=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$80=r(Xr),Z80=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q80=r(tr),r30=r(Z0),e30=r(nr),n30=[0,[17,0,0],r(z)],t30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],u30=[0,[15,0],r(N0)],i30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array.Element\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array.Element@ \")],f30=[0,[17,0,[12,41,0]],r(d0)],x30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array.RestElement\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array.RestElement@ \")],o30=[0,[17,0,[12,41,0]],r(d0)],a30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Array.Hole\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Array.Hole@ \")],c30=[0,[17,0,[12,41,0]],r(d0)],s30=[0,[15,0],r(N0)],v30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],l30=r(\"Flow_ast.Pattern.Array.Element.argument\"),b30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],p30=[0,[17,0,0],r(z)],m30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_30=r(_i),y30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],h30=r(tr),d30=r(Z0),k30=r(nr),w30=[0,[17,0,0],r(z)],E30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],S30=[0,[15,0],r(N0)],g30=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],F30=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],T30=[0,[17,0,[12,41,0]],r(d0)],O30=[0,[15,0],r(N0)],I30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],A30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],N30=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],C30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],P30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D30=r(\"Flow_ast.Pattern.Object.properties\"),L30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R30=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],j30=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],G30=[0,[17,0,0],r(z)],M30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],B30=r(Qc),q30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],U30=[0,[17,0,0],r(z)],H30=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X30=r(Xr),Y30=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V30=r(tr),z30=r(Z0),K30=r(nr),W30=[0,[17,0,0],r(z)],J30=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$30=[0,[15,0],r(N0)],Z30=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property@ \")],Q30=[0,[17,0,[12,41,0]],r(d0)],r60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.RestElement\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.RestElement@ \")],e60=[0,[17,0,[12,41,0]],r(d0)],n60=[0,[15,0],r(N0)],t60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],u60=r(\"Flow_ast.Pattern.Object.Property.key\"),i60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f60=[0,[17,0,0],r(z)],x60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],o60=r(mi),a60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],c60=[0,[17,0,0],r(z)],s60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],v60=r(_i),l60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],b60=r(tr),p60=r(Z0),m60=r(nr),_60=[0,[17,0,0],r(z)],y60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],h60=r(f6),d60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],k60=[0,[9,0,0],r(An)],w60=[0,[17,0,0],r(z)],E60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],S60=[0,[15,0],r(N0)],g60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],F60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],T60=[0,[17,0,[12,41,0]],r(d0)],O60=[0,[15,0],r(N0)],I60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property.Literal@ \")],A60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],N60=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],C60=[0,[17,0,[12,41,0]],r(d0)],P60=[0,[17,0,[12,41,0]],r(d0)],D60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property.Identifier@ \")],L60=[0,[17,0,[12,41,0]],r(d0)],R60=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Pattern.Object.Property.Computed\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Pattern.Object.Property.Computed@ \")],j60=[0,[17,0,[12,41,0]],r(d0)],G60=[0,[15,0],r(N0)],M60=r(Yr),B60=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q60=r(\"Flow_ast.Pattern.RestElement.argument\"),U60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H60=[0,[17,0,0],r(z)],X60=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Y60=r(Xr),V60=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],z60=r(tr),K60=r(Z0),W60=r(nr),J60=[0,[17,0,0],r(z)],$60=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z60=[0,[15,0],r(N0)],Q60=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],rp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ep0=[0,[17,0,[12,41,0]],r(d0)],np0=[0,[15,0],r(N0)],tp0=r(Yr),up0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ip0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],fp0=r(\"Flow_ast.JSX.frag_opening_element\"),xp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],op0=[0,[17,0,0],r(z)],ap0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cp0=r(\"frag_closing_element\"),sp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vp0=[0,[17,0,0],r(z)],lp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bp0=r(\"frag_children\"),pp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_p0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],hp0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],dp0=[0,[17,0,[12,41,0]],r(d0)],kp0=[0,[17,0,0],r(z)],wp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ep0=r(\"frag_comments\"),Sp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gp0=r(tr),Fp0=r(Z0),Tp0=r(nr),Op0=[0,[17,0,0],r(z)],Ip0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ap0=[0,[15,0],r(N0)],Np0=r(Yr),Cp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Dp0=r(\"Flow_ast.JSX.opening_element\"),Lp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rp0=[0,[17,0,0],r(z)],jp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gp0=r(\"closing_element\"),Mp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bp0=r(tr),qp0=r(Z0),Up0=r(nr),Hp0=[0,[17,0,0],r(z)],Xp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yp0=r(Ve),Vp0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zp0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Kp0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Wp0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Jp0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$p0=[0,[17,0,[12,41,0]],r(d0)],Zp0=[0,[17,0,0],r(z)],Qp0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r50=r(Xr),e50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n50=r(tr),t50=r(Z0),u50=r(nr),i50=[0,[17,0,0],r(z)],f50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],x50=[0,[15,0],r(N0)],o50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Element\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Element@ \")],a50=[0,[17,0,[12,41,0]],r(d0)],c50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Fragment\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Fragment@ \")],s50=[0,[17,0,[12,41,0]],r(d0)],v50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.ExpressionContainer\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.ExpressionContainer@ \")],l50=[0,[17,0,[12,41,0]],r(d0)],b50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.SpreadChild\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.SpreadChild@ \")],p50=[0,[17,0,[12,41,0]],r(d0)],m50=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Text\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Text@ \")],_50=[0,[17,0,[12,41,0]],r(d0)],y50=[0,[15,0],r(N0)],h50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],d50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],k50=[0,[17,0,[12,41,0]],r(d0)],w50=[0,[15,0],r(N0)],E50=r(Yr),S50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],g50=r(\"Flow_ast.JSX.SpreadChild.expression\"),F50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],T50=[0,[17,0,0],r(z)],O50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],I50=r(Xr),A50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N50=r(tr),C50=r(Z0),P50=r(nr),D50=[0,[17,0,0],r(z)],L50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],R50=[0,[15,0],r(N0)],j50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],G50=r(\"Flow_ast.JSX.Closing.name\"),M50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B50=[0,[17,0,0],r(z)],q50=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],U50=[0,[15,0],r(N0)],H50=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],X50=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Y50=[0,[17,0,[12,41,0]],r(d0)],V50=[0,[15,0],r(N0)],z50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K50=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],W50=r(\"Flow_ast.JSX.Opening.name\"),J50=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$50=[0,[17,0,0],r(z)],Z50=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q50=r(\"self_closing\"),rm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],em0=[0,[9,0,0],r(An)],nm0=[0,[17,0,0],r(z)],tm0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],um0=r(mY),im0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],xm0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],om0=[0,[17,0,0],r(z)],am0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cm0=[0,[15,0],r(N0)],sm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Opening.Attribute\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Opening.Attribute@ \")],vm0=[0,[17,0,[12,41,0]],r(d0)],lm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Opening.SpreadAttribute\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Opening.SpreadAttribute@ \")],bm0=[0,[17,0,[12,41,0]],r(d0)],pm0=[0,[15,0],r(N0)],mm0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_m0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ym0=[0,[17,0,[12,41,0]],r(d0)],hm0=[0,[15,0],r(N0)],dm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Identifier@ \")],km0=[0,[17,0,[12,41,0]],r(d0)],wm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.NamespacedName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.NamespacedName@ \")],Em0=[0,[17,0,[12,41,0]],r(d0)],Sm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.MemberExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.MemberExpression@ \")],gm0=[0,[17,0,[12,41,0]],r(d0)],Fm0=[0,[15,0],r(N0)],Tm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Om0=r(\"Flow_ast.JSX.MemberExpression._object\"),Im0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Am0=[0,[17,0,0],r(z)],Nm0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Cm0=r(Iv),Pm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dm0=[0,[17,0,0],r(z)],Lm0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Rm0=[0,[15,0],r(N0)],jm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.MemberExpression.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.MemberExpression.Identifier@ \")],Gm0=[0,[17,0,[12,41,0]],r(d0)],Mm0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.MemberExpression.MemberExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.MemberExpression.MemberExpression@ \")],Bm0=[0,[17,0,[12,41,0]],r(d0)],qm0=[0,[15,0],r(N0)],Um0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Hm0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Xm0=[0,[17,0,[12,41,0]],r(d0)],Ym0=[0,[15,0],r(N0)],Vm0=r(Yr),zm0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Km0=r(\"Flow_ast.JSX.SpreadAttribute.argument\"),Wm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jm0=[0,[17,0,0],r(z)],$m0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zm0=r(Xr),Qm0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],r90=r(tr),e90=r(Z0),n90=r(nr),t90=[0,[17,0,0],r(z)],u90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],i90=[0,[15,0],r(N0)],f90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],x90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],o90=[0,[17,0,[12,41,0]],r(d0)],a90=[0,[15,0],r(N0)],c90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],s90=r(\"Flow_ast.JSX.Attribute.name\"),v90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],l90=[0,[17,0,0],r(z)],b90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],p90=r(Bn),m90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_90=r(tr),y90=r(Z0),h90=r(nr),d90=[0,[17,0,0],r(z)],k90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],w90=[0,[15,0],r(N0)],E90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.Literal (\"),[17,[0,r(Ce),0,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.Literal (@,\")],S90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],g90=[0,[17,[0,r(Ce),0,0],[11,r(EX),[17,0,0]]],r(RU)],F90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.ExpressionContainer (\"),[17,[0,r(Ce),0,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.ExpressionContainer (@,\")],T90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O90=[0,[17,[0,r(Ce),0,0],[11,r(EX),[17,0,0]]],r(RU)],I90=[0,[15,0],r(N0)],A90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.Identifier@ \")],N90=[0,[17,0,[12,41,0]],r(d0)],C90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.Attribute.NamespacedName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.Attribute.NamespacedName@ \")],P90=[0,[17,0,[12,41,0]],r(d0)],D90=[0,[15,0],r(N0)],L90=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R90=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j90=[0,[17,0,[12,41,0]],r(d0)],G90=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M90=r(\"Flow_ast.JSX.Text.value\"),B90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q90=[0,[3,0,0],r(Vt)],U90=[0,[17,0,0],r(z)],H90=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X90=r(c7),Y90=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V90=[0,[3,0,0],r(Vt)],z90=[0,[17,0,0],r(z)],K90=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],W90=[0,[15,0],r(N0)],J90=[0,[15,0],r(N0)],$90=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.JSX.ExpressionContainer.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.JSX.ExpressionContainer.Expression@ \")],Z90=[0,[17,0,[12,41,0]],r(d0)],Q90=r(\"Flow_ast.JSX.ExpressionContainer.EmptyExpression\"),r_0=[0,[15,0],r(N0)],e_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],n_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],t_0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],u_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],i_0=r(\"Flow_ast.JSX.ExpressionContainer.expression\"),f_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],x_0=[0,[17,0,0],r(z)],o_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],a_0=r(Xr),c_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],s_0=r(tr),v_0=r(Z0),l_0=r(nr),b_0=[0,[17,0,0],r(z)],p_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],m_0=[0,[15,0],r(N0)],__0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],y_0=r(\"Flow_ast.JSX.NamespacedName.namespace\"),h_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d_0=[0,[17,0,0],r(z)],k_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],w_0=r(ui),E_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S_0=[0,[17,0,0],r(z)],g_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],F_0=[0,[15,0],r(N0)],T_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],O_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],I_0=[0,[17,0,[12,41,0]],r(d0)],A_0=[0,[15,0],r(N0)],N_0=r(Yr),C_0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P_0=r(\"Flow_ast.JSX.Identifier.name\"),D_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L_0=[0,[3,0,0],r(Vt)],R_0=[0,[17,0,0],r(z)],j_0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G_0=r(Xr),M_0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B_0=r(tr),q_0=r(Z0),U_0=r(nr),H_0=[0,[17,0,0],r(z)],X_0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Y_0=[0,[15,0],r(N0)],V_0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],z_0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],K_0=[0,[17,0,[12,41,0]],r(d0)],W_0=[0,[15,0],r(N0)],J_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array@ \")],$_0=[0,[17,0,[12,41,0]],r(d0)],Z_0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.ArrowFunction\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.ArrowFunction@ \")],Q_0=[0,[17,0,[12,41,0]],r(d0)],ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Assignment\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Assignment@ \")],ey0=[0,[17,0,[12,41,0]],r(d0)],ny0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Binary\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Binary@ \")],ty0=[0,[17,0,[12,41,0]],r(d0)],uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Call\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Call@ \")],iy0=[0,[17,0,[12,41,0]],r(d0)],fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Class\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Class@ \")],xy0=[0,[17,0,[12,41,0]],r(d0)],oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Comprehension\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Comprehension@ \")],ay0=[0,[17,0,[12,41,0]],r(d0)],cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Conditional\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Conditional@ \")],sy0=[0,[17,0,[12,41,0]],r(d0)],vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Function\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Function@ \")],ly0=[0,[17,0,[12,41,0]],r(d0)],by0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Generator\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Generator@ \")],py0=[0,[17,0,[12,41,0]],r(d0)],my0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Identifier@ \")],_y0=[0,[17,0,[12,41,0]],r(d0)],yy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Import\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Import@ \")],hy0=[0,[17,0,[12,41,0]],r(d0)],dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.JSXElement\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.JSXElement@ \")],ky0=[0,[17,0,[12,41,0]],r(d0)],wy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.JSXFragment\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.JSXFragment@ \")],Ey0=[0,[17,0,[12,41,0]],r(d0)],Sy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Literal@ \")],gy0=[0,[17,0,[12,41,0]],r(d0)],Fy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Logical\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Logical@ \")],Ty0=[0,[17,0,[12,41,0]],r(d0)],Oy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member@ \")],Iy0=[0,[17,0,[12,41,0]],r(d0)],Ay0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.MetaProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.MetaProperty@ \")],Ny0=[0,[17,0,[12,41,0]],r(d0)],Cy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.New\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.New@ \")],Py0=[0,[17,0,[12,41,0]],r(d0)],Dy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object@ \")],Ly0=[0,[17,0,[12,41,0]],r(d0)],Ry0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.OptionalCall\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.OptionalCall@ \")],jy0=[0,[17,0,[12,41,0]],r(d0)],Gy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.OptionalMember\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.OptionalMember@ \")],My0=[0,[17,0,[12,41,0]],r(d0)],By0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Sequence\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Sequence@ \")],qy0=[0,[17,0,[12,41,0]],r(d0)],Uy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Super\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Super@ \")],Hy0=[0,[17,0,[12,41,0]],r(d0)],Xy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.TaggedTemplate\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.TaggedTemplate@ \")],Yy0=[0,[17,0,[12,41,0]],r(d0)],Vy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.TemplateLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.TemplateLiteral@ \")],zy0=[0,[17,0,[12,41,0]],r(d0)],Ky0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.This\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.This@ \")],Wy0=[0,[17,0,[12,41,0]],r(d0)],Jy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.TypeCast\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.TypeCast@ \")],$y0=[0,[17,0,[12,41,0]],r(d0)],Zy0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Unary\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Unary@ \")],Qy0=[0,[17,0,[12,41,0]],r(d0)],rh0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Update\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Update@ \")],eh0=[0,[17,0,[12,41,0]],r(d0)],nh0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Yield\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Yield@ \")],th0=[0,[17,0,[12,41,0]],r(d0)],uh0=[0,[15,0],r(N0)],ih0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],fh0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],xh0=[0,[17,0,[12,41,0]],r(d0)],oh0=[0,[15,0],r(N0)],ah0=r(Yr),ch0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sh0=r(\"Flow_ast.Expression.Import.argument\"),vh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lh0=[0,[17,0,0],r(z)],bh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ph0=r(Xr),mh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_h0=r(tr),yh0=r(Z0),hh0=r(nr),dh0=[0,[17,0,0],r(z)],kh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wh0=[0,[15,0],r(N0)],Eh0=r(Yr),Sh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],gh0=r(\"Flow_ast.Expression.Super.comments\"),Fh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Th0=r(tr),Oh0=r(Z0),Ih0=r(nr),Ah0=[0,[17,0,0],r(z)],Nh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ch0=[0,[15,0],r(N0)],Ph0=r(Yr),Dh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lh0=r(\"Flow_ast.Expression.This.comments\"),Rh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jh0=r(tr),Gh0=r(Z0),Mh0=r(nr),Bh0=[0,[17,0,0],r(z)],qh0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Uh0=[0,[15,0],r(N0)],Hh0=r(Yr),Xh0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Yh0=r(\"Flow_ast.Expression.MetaProperty.meta\"),Vh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zh0=[0,[17,0,0],r(z)],Kh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wh0=r(Iv),Jh0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$h0=[0,[17,0,0],r(z)],Zh0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qh0=r(Xr),rd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ed0=r(tr),nd0=r(Z0),td0=r(nr),ud0=[0,[17,0,0],r(z)],id0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],fd0=[0,[15,0],r(N0)],xd0=r(Yr),od0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ad0=r(\"Flow_ast.Expression.TypeCast.expression\"),cd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sd0=[0,[17,0,0],r(z)],vd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ld0=r(Qc),bd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pd0=[0,[17,0,0],r(z)],md0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_d0=r(Xr),yd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hd0=r(tr),dd0=r(Z0),kd0=r(nr),wd0=[0,[17,0,0],r(z)],Ed0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Sd0=[0,[15,0],r(N0)],gd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Td0=r(\"Flow_ast.Expression.Generator.blocks\"),Od0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Id0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Ad0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Nd0=[0,[17,0,0],r(z)],Cd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pd0=r(T4),Dd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ld0=r(tr),Rd0=r(Z0),jd0=r(nr),Gd0=[0,[17,0,0],r(z)],Md0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Bd0=[0,[15,0],r(N0)],qd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ud0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Hd0=r(\"Flow_ast.Expression.Comprehension.blocks\"),Xd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yd0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Vd0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],zd0=[0,[17,0,0],r(z)],Kd0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Wd0=r(T4),Jd0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$d0=r(tr),Zd0=r(Z0),Qd0=r(nr),rk0=[0,[17,0,0],r(z)],ek0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],nk0=[0,[15,0],r(N0)],tk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],uk0=r(\"Flow_ast.Expression.Comprehension.Block.left\"),ik0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fk0=[0,[17,0,0],r(z)],xk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ok0=r(Cu),ak0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ck0=[0,[17,0,0],r(z)],sk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vk0=r(R8),lk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bk0=[0,[9,0,0],r(An)],pk0=[0,[17,0,0],r(z)],mk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_k0=[0,[15,0],r(N0)],yk0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],hk0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],dk0=[0,[17,0,[12,41,0]],r(d0)],kk0=[0,[15,0],r(N0)],wk0=r(Yr),Ek0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Sk0=r(\"Flow_ast.Expression.Yield.argument\"),gk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fk0=r(tr),Tk0=r(Z0),Ok0=r(nr),Ik0=[0,[17,0,0],r(z)],Ak0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Nk0=r(Xr),Ck0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pk0=r(tr),Dk0=r(Z0),Lk0=r(nr),Rk0=[0,[17,0,0],r(z)],jk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gk0=r(lY),Mk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bk0=[0,[9,0,0],r(An)],qk0=[0,[17,0,0],r(z)],Uk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hk0=r(\"result_out\"),Xk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yk0=[0,[17,0,0],r(z)],Vk0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zk0=[0,[15,0],r(N0)],Kk0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Wk0=r(\"Flow_ast.Expression.OptionalMember.member\"),Jk0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$k0=[0,[17,0,0],r(z)],Zk0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qk0=r(lU),rw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ew0=[0,[17,0,0],r(z)],nw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tw0=r(qu),uw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iw0=[0,[9,0,0],r(An)],fw0=[0,[17,0,0],r(z)],xw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ow0=[0,[15,0],r(N0)],aw0=r(Yr),cw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sw0=r(\"Flow_ast.Expression.Member._object\"),vw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lw0=[0,[17,0,0],r(z)],bw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pw0=r(Iv),mw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_w0=[0,[17,0,0],r(z)],yw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hw0=r(Xr),dw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kw0=r(tr),ww0=r(Z0),Ew0=r(nr),Sw0=[0,[17,0,0],r(z)],gw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Fw0=[0,[15,0],r(N0)],Tw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member.PropertyIdentifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member.PropertyIdentifier@ \")],Ow0=[0,[17,0,[12,41,0]],r(d0)],Iw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member.PropertyPrivateName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member.PropertyPrivateName@ \")],Aw0=[0,[17,0,[12,41,0]],r(d0)],Nw0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Member.PropertyExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Member.PropertyExpression@ \")],Cw0=[0,[17,0,[12,41,0]],r(d0)],Pw0=[0,[15,0],r(N0)],Dw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lw0=r(\"Flow_ast.Expression.OptionalCall.call\"),Rw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jw0=[0,[17,0,0],r(z)],Gw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Mw0=r(lU),Bw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qw0=[0,[17,0,0],r(z)],Uw0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hw0=r(qu),Xw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yw0=[0,[9,0,0],r(An)],Vw0=[0,[17,0,0],r(z)],zw0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Kw0=[0,[15,0],r(N0)],Ww0=r(Yr),Jw0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$w0=r(\"Flow_ast.Expression.Call.callee\"),Zw0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qw0=[0,[17,0,0],r(z)],rE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eE0=r(Z2),nE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tE0=r(tr),uE0=r(Z0),iE0=r(nr),fE0=[0,[17,0,0],r(z)],xE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oE0=r(C2),aE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cE0=[0,[17,0,0],r(z)],sE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vE0=r(Xr),lE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bE0=r(tr),pE0=r(Z0),mE0=r(nr),_E0=[0,[17,0,0],r(z)],yE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],hE0=[0,[15,0],r(N0)],dE0=r(Yr),kE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wE0=r(\"Flow_ast.Expression.New.callee\"),EE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],SE0=[0,[17,0,0],r(z)],gE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FE0=r(Z2),TE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OE0=r(tr),IE0=r(Z0),AE0=r(nr),NE0=[0,[17,0,0],r(z)],CE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PE0=r(C2),DE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LE0=r(tr),RE0=r(Z0),jE0=r(nr),GE0=[0,[17,0,0],r(z)],ME0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BE0=r(Xr),qE0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UE0=r(tr),HE0=r(Z0),XE0=r(nr),YE0=[0,[17,0,0],r(z)],VE0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zE0=[0,[15,0],r(N0)],KE0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],JE0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],$E0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZE0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],QE0=r(\"Flow_ast.Expression.ArgList.arguments\"),rS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],nS0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],tS0=[0,[17,0,0],r(z)],uS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iS0=r(Xr),fS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xS0=r(tr),oS0=r(Z0),aS0=r(nr),cS0=[0,[17,0,0],r(z)],sS0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vS0=[0,[15,0],r(N0)],lS0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],bS0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],pS0=[0,[17,0,[12,41,0]],r(d0)],mS0=[0,[15,0],r(N0)],_S0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Expression@ \")],yS0=[0,[17,0,[12,41,0]],r(d0)],hS0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Spread\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Spread@ \")],dS0=[0,[17,0,[12,41,0]],r(d0)],kS0=[0,[15,0],r(N0)],wS0=r(Yr),ES0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],SS0=r(\"Flow_ast.Expression.Conditional.test\"),gS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],FS0=[0,[17,0,0],r(z)],TS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OS0=r(kv),IS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AS0=[0,[17,0,0],r(z)],NS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CS0=r(m3),PS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DS0=[0,[17,0,0],r(z)],LS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RS0=r(Xr),jS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GS0=r(tr),MS0=r(Z0),BS0=r(nr),qS0=[0,[17,0,0],r(z)],US0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],HS0=[0,[15,0],r(N0)],XS0=r(Yr),YS0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VS0=r(\"Flow_ast.Expression.Logical.operator\"),zS0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KS0=[0,[17,0,0],r(z)],WS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JS0=r(bi),$S0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZS0=[0,[17,0,0],r(z)],QS0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rg0=r(Cu),eg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ng0=[0,[17,0,0],r(z)],tg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ug0=r(Xr),ig0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fg0=r(tr),xg0=r(Z0),og0=r(nr),ag0=[0,[17,0,0],r(z)],cg0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],sg0=[0,[15,0],r(N0)],vg0=r(\"Flow_ast.Expression.Logical.Or\"),lg0=r(\"Flow_ast.Expression.Logical.And\"),bg0=r(\"Flow_ast.Expression.Logical.NullishCoalesce\"),pg0=[0,[15,0],r(N0)],mg0=r(Yr),_g0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yg0=r(\"Flow_ast.Expression.Update.operator\"),hg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dg0=[0,[17,0,0],r(z)],kg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wg0=r(l7),Eg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sg0=[0,[17,0,0],r(z)],gg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Fg0=r(qE),Tg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Og0=[0,[9,0,0],r(An)],Ig0=[0,[17,0,0],r(z)],Ag0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ng0=r(Xr),Cg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pg0=r(tr),Dg0=r(Z0),Lg0=r(nr),Rg0=[0,[17,0,0],r(z)],jg0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Gg0=[0,[15,0],r(N0)],Mg0=r(\"Flow_ast.Expression.Update.Decrement\"),Bg0=r(\"Flow_ast.Expression.Update.Increment\"),qg0=[0,[15,0],r(N0)],Ug0=r(Yr),Hg0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xg0=r(\"Flow_ast.Expression.Assignment.operator\"),Yg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vg0=r(tr),zg0=r(Z0),Kg0=r(nr),Wg0=[0,[17,0,0],r(z)],Jg0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$g0=r(bi),Zg0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qg0=[0,[17,0,0],r(z)],rF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eF0=r(Cu),nF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tF0=[0,[17,0,0],r(z)],uF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iF0=r(Xr),fF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xF0=r(tr),oF0=r(Z0),aF0=r(nr),cF0=[0,[17,0,0],r(z)],sF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vF0=[0,[15,0],r(N0)],lF0=r(\"Flow_ast.Expression.Assignment.PlusAssign\"),bF0=r(\"Flow_ast.Expression.Assignment.MinusAssign\"),pF0=r(\"Flow_ast.Expression.Assignment.MultAssign\"),mF0=r(\"Flow_ast.Expression.Assignment.ExpAssign\"),_F0=r(\"Flow_ast.Expression.Assignment.DivAssign\"),yF0=r(\"Flow_ast.Expression.Assignment.ModAssign\"),hF0=r(\"Flow_ast.Expression.Assignment.LShiftAssign\"),dF0=r(\"Flow_ast.Expression.Assignment.RShiftAssign\"),kF0=r(\"Flow_ast.Expression.Assignment.RShift3Assign\"),wF0=r(\"Flow_ast.Expression.Assignment.BitOrAssign\"),EF0=r(\"Flow_ast.Expression.Assignment.BitXorAssign\"),SF0=r(\"Flow_ast.Expression.Assignment.BitAndAssign\"),gF0=r(\"Flow_ast.Expression.Assignment.NullishAssign\"),FF0=r(\"Flow_ast.Expression.Assignment.AndAssign\"),TF0=r(\"Flow_ast.Expression.Assignment.OrAssign\"),OF0=[0,[15,0],r(N0)],IF0=r(Yr),AF0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],NF0=r(\"Flow_ast.Expression.Binary.operator\"),CF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PF0=[0,[17,0,0],r(z)],DF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LF0=r(bi),RF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jF0=[0,[17,0,0],r(z)],GF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MF0=r(Cu),BF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qF0=[0,[17,0,0],r(z)],UF0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],HF0=r(Xr),XF0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YF0=r(tr),VF0=r(Z0),zF0=r(nr),KF0=[0,[17,0,0],r(z)],WF0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],JF0=[0,[15,0],r(N0)],$F0=r(\"Flow_ast.Expression.Binary.Equal\"),ZF0=r(\"Flow_ast.Expression.Binary.NotEqual\"),QF0=r(\"Flow_ast.Expression.Binary.StrictEqual\"),rT0=r(\"Flow_ast.Expression.Binary.StrictNotEqual\"),eT0=r(\"Flow_ast.Expression.Binary.LessThan\"),nT0=r(\"Flow_ast.Expression.Binary.LessThanEqual\"),tT0=r(\"Flow_ast.Expression.Binary.GreaterThan\"),uT0=r(\"Flow_ast.Expression.Binary.GreaterThanEqual\"),iT0=r(\"Flow_ast.Expression.Binary.LShift\"),fT0=r(\"Flow_ast.Expression.Binary.RShift\"),xT0=r(\"Flow_ast.Expression.Binary.RShift3\"),oT0=r(\"Flow_ast.Expression.Binary.Plus\"),aT0=r(\"Flow_ast.Expression.Binary.Minus\"),cT0=r(\"Flow_ast.Expression.Binary.Mult\"),sT0=r(\"Flow_ast.Expression.Binary.Exp\"),vT0=r(\"Flow_ast.Expression.Binary.Div\"),lT0=r(\"Flow_ast.Expression.Binary.Mod\"),bT0=r(\"Flow_ast.Expression.Binary.BitOr\"),pT0=r(\"Flow_ast.Expression.Binary.Xor\"),mT0=r(\"Flow_ast.Expression.Binary.BitAnd\"),_T0=r(\"Flow_ast.Expression.Binary.In\"),yT0=r(\"Flow_ast.Expression.Binary.Instanceof\"),hT0=[0,[15,0],r(N0)],dT0=r(Yr),kT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],wT0=r(\"Flow_ast.Expression.Unary.operator\"),ET0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ST0=[0,[17,0,0],r(z)],gT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FT0=r(l7),TT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OT0=[0,[17,0,0],r(z)],IT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],AT0=r(Xr),NT0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],CT0=r(tr),PT0=r(Z0),DT0=r(nr),LT0=[0,[17,0,0],r(z)],RT0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jT0=[0,[15,0],r(N0)],GT0=r(\"Flow_ast.Expression.Unary.Minus\"),MT0=r(\"Flow_ast.Expression.Unary.Plus\"),BT0=r(\"Flow_ast.Expression.Unary.Not\"),qT0=r(\"Flow_ast.Expression.Unary.BitNot\"),UT0=r(\"Flow_ast.Expression.Unary.Typeof\"),HT0=r(\"Flow_ast.Expression.Unary.Void\"),XT0=r(\"Flow_ast.Expression.Unary.Delete\"),YT0=r(\"Flow_ast.Expression.Unary.Await\"),VT0=[0,[15,0],r(N0)],zT0=r(Yr),KT0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JT0=r(\"Flow_ast.Expression.Sequence.expressions\"),$T0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZT0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QT0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rO0=[0,[17,0,0],r(z)],eO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nO0=r(Xr),tO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uO0=r(tr),iO0=r(Z0),fO0=r(nr),xO0=[0,[17,0,0],r(z)],oO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aO0=[0,[15,0],r(N0)],cO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],vO0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],lO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],pO0=r(\"Flow_ast.Expression.Object.properties\"),mO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_O0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],yO0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],hO0=[0,[17,0,0],r(z)],dO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kO0=r(Xr),wO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EO0=r(tr),SO0=r(Z0),gO0=r(nr),FO0=[0,[17,0,0],r(z)],TO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OO0=[0,[15,0],r(N0)],IO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property@ \")],AO0=[0,[17,0,[12,41,0]],r(d0)],NO0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.SpreadProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.SpreadProperty@ \")],CO0=[0,[17,0,[12,41,0]],r(d0)],PO0=[0,[15,0],r(N0)],DO0=r(Yr),LO0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],RO0=r(\"Flow_ast.Expression.Object.SpreadProperty.argument\"),jO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GO0=[0,[17,0,0],r(z)],MO0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BO0=r(Xr),qO0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UO0=r(tr),HO0=r(Z0),XO0=r(nr),YO0=[0,[17,0,0],r(z)],VO0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zO0=[0,[15,0],r(N0)],KO0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],WO0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],JO0=[0,[17,0,[12,41,0]],r(d0)],$O0=[0,[15,0],r(N0)],ZO0=r(Yr),QO0=r(Yr),rI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Init {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Init {@,\")],eI0=r(ii),nI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tI0=[0,[17,0,0],r(z)],uI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iI0=r(Bn),fI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xI0=[0,[17,0,0],r(z)],oI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aI0=r(f6),cI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sI0=[0,[9,0,0],r(An)],vI0=[0,[17,0,0],r(z)],lI0=[0,[17,0,[12,br,0]],r(Y6)],bI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Method {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Method {@,\")],pI0=r(ii),mI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_I0=[0,[17,0,0],r(z)],yI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hI0=r(Bn),dI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],EI0=[0,[17,0,[12,41,0]],r(d0)],SI0=[0,[17,0,0],r(z)],gI0=[0,[17,0,[12,br,0]],r(Y6)],FI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Get {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Get {@,\")],TI0=r(ii),OI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],II0=[0,[17,0,0],r(z)],AI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NI0=r(Bn),CI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],DI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],LI0=[0,[17,0,[12,41,0]],r(d0)],RI0=[0,[17,0,0],r(z)],jI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GI0=r(Xr),MI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BI0=r(tr),qI0=r(Z0),UI0=r(nr),HI0=[0,[17,0,0],r(z)],XI0=[0,[17,0,[12,br,0]],r(Y6)],YI0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Set {\"),[17,[0,r(Ce),0,0],0]]],r(\"@[<2>Flow_ast.Expression.Object.Property.Set {@,\")],VI0=r(ii),zI0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KI0=[0,[17,0,0],r(z)],WI0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JI0=r(Bn),$I0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZI0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],QI0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rA0=[0,[17,0,[12,41,0]],r(d0)],eA0=[0,[17,0,0],r(z)],nA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tA0=r(Xr),uA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iA0=r(tr),fA0=r(Z0),xA0=r(nr),oA0=[0,[17,0,0],r(z)],aA0=[0,[17,0,[12,br,0]],r(Y6)],cA0=[0,[15,0],r(N0)],sA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],vA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],lA0=[0,[17,0,[12,41,0]],r(d0)],bA0=[0,[15,0],r(N0)],pA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.Literal@ \")],mA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],_A0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],yA0=[0,[17,0,[12,41,0]],r(d0)],hA0=[0,[17,0,[12,41,0]],r(d0)],dA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.Identifier@ \")],kA0=[0,[17,0,[12,41,0]],r(d0)],wA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.PrivateName\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.PrivateName@ \")],EA0=[0,[17,0,[12,41,0]],r(d0)],SA0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Object.Property.Computed\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Object.Property.Computed@ \")],gA0=[0,[17,0,[12,41,0]],r(d0)],FA0=[0,[15,0],r(N0)],TA0=r(Yr),OA0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IA0=r(\"Flow_ast.Expression.TaggedTemplate.tag\"),AA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NA0=[0,[17,0,0],r(z)],CA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PA0=r(EY),DA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],LA0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],RA0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jA0=[0,[17,0,[12,41,0]],r(d0)],GA0=[0,[17,0,0],r(z)],MA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BA0=r(Xr),qA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UA0=r(tr),HA0=r(Z0),XA0=r(nr),YA0=[0,[17,0,0],r(z)],VA0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zA0=[0,[15,0],r(N0)],KA0=r(Yr),WA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JA0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$A0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ZA0=r(\"Flow_ast.Expression.TemplateLiteral.quasis\"),QA0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],eN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],nN0=[0,[17,0,0],r(z)],tN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uN0=r(Mg),iN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],xN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],oN0=[0,[17,0,0],r(z)],aN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cN0=r(Xr),sN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vN0=r(tr),lN0=r(Z0),bN0=r(nr),pN0=[0,[17,0,0],r(z)],mN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_N0=[0,[15,0],r(N0)],yN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hN0=r(\"Flow_ast.Expression.TemplateLiteral.Element.value\"),dN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kN0=[0,[17,0,0],r(z)],wN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EN0=r(aU),SN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gN0=[0,[9,0,0],r(An)],FN0=[0,[17,0,0],r(z)],TN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ON0=[0,[15,0],r(N0)],IN0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AN0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NN0=[0,[17,0,[12,41,0]],r(d0)],CN0=[0,[15,0],r(N0)],PN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DN0=r(\"Flow_ast.Expression.TemplateLiteral.Element.raw\"),LN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RN0=[0,[3,0,0],r(Vt)],jN0=[0,[17,0,0],r(z)],GN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MN0=r(PY),BN0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qN0=[0,[3,0,0],r(Vt)],UN0=[0,[17,0,0],r(z)],HN0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],XN0=[0,[15,0],r(N0)],YN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],zN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],KN0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],JN0=r(\"Flow_ast.Expression.Array.elements\"),$N0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZN0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QN0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rC0=[0,[17,0,0],r(z)],eC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nC0=r(Xr),tC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uC0=r(tr),iC0=r(Z0),fC0=r(nr),xC0=[0,[17,0,0],r(z)],oC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aC0=[0,[15,0],r(N0)],cC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array.Expression@ \")],sC0=[0,[17,0,[12,41,0]],r(d0)],vC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array.Spread\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array.Spread@ \")],lC0=[0,[17,0,[12,41,0]],r(d0)],bC0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.Array.Hole\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.Array.Hole@ \")],pC0=[0,[17,0,[12,41,0]],r(d0)],mC0=[0,[15,0],r(N0)],_C0=r(Yr),yC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hC0=r(\"Flow_ast.Expression.SpreadElement.argument\"),dC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kC0=[0,[17,0,0],r(z)],wC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EC0=r(Xr),SC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gC0=r(tr),FC0=r(Z0),TC0=r(nr),OC0=[0,[17,0,0],r(z)],IC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AC0=[0,[15,0],r(N0)],NC0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],CC0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],PC0=[0,[17,0,[12,41,0]],r(d0)],DC0=[0,[15,0],r(N0)],LC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jC0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],BC0=r(\"Flow_ast.Expression.CallTypeArgs.arguments\"),qC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UC0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],HC0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],XC0=[0,[17,0,0],r(z)],YC0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VC0=r(Xr),zC0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KC0=r(tr),WC0=r(Z0),JC0=r(nr),$C0=[0,[17,0,0],r(z)],ZC0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],QC0=[0,[15,0],r(N0)],rP0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eP0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nP0=[0,[17,0,[12,41,0]],r(d0)],tP0=[0,[15,0],r(N0)],uP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.CallTypeArg.Explicit\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.CallTypeArg.Explicit@ \")],iP0=[0,[17,0,[12,41,0]],r(d0)],fP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Expression.CallTypeArg.Implicit\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Expression.CallTypeArg.Implicit@ \")],xP0=[0,[17,0,[12,41,0]],r(d0)],oP0=[0,[15,0],r(N0)],aP0=r(Yr),cP0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sP0=r(\"Flow_ast.Expression.CallTypeArg.Implicit.comments\"),vP0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lP0=r(tr),bP0=r(Z0),pP0=r(nr),mP0=[0,[17,0,0],r(z)],_P0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],yP0=[0,[15,0],r(N0)],hP0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],dP0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],kP0=[0,[17,0,[12,41,0]],r(d0)],wP0=[0,[15,0],r(N0)],EP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Block\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Block@ \")],SP0=[0,[17,0,[12,41,0]],r(d0)],gP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Break\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Break@ \")],FP0=[0,[17,0,[12,41,0]],r(d0)],TP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ClassDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ClassDeclaration@ \")],OP0=[0,[17,0,[12,41,0]],r(d0)],IP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Continue\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Continue@ \")],AP0=[0,[17,0,[12,41,0]],r(d0)],NP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Debugger\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Debugger@ \")],CP0=[0,[17,0,[12,41,0]],r(d0)],PP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareClass\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareClass@ \")],DP0=[0,[17,0,[12,41,0]],r(d0)],LP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration@ \")],RP0=[0,[17,0,[12,41,0]],r(d0)],jP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareFunction\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareFunction@ \")],GP0=[0,[17,0,[12,41,0]],r(d0)],MP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareInterface\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareInterface@ \")],BP0=[0,[17,0,[12,41,0]],r(d0)],qP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModule\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModule@ \")],UP0=[0,[17,0,[12,41,0]],r(d0)],HP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModuleExports\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModuleExports@ \")],XP0=[0,[17,0,[12,41,0]],r(d0)],YP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareTypeAlias\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareTypeAlias@ \")],VP0=[0,[17,0,[12,41,0]],r(d0)],zP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareOpaqueType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareOpaqueType@ \")],KP0=[0,[17,0,[12,41,0]],r(d0)],WP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareVariable\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareVariable@ \")],JP0=[0,[17,0,[12,41,0]],r(d0)],$P0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DoWhile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DoWhile@ \")],ZP0=[0,[17,0,[12,41,0]],r(d0)],QP0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Empty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Empty@ \")],rD0=[0,[17,0,[12,41,0]],r(d0)],eD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration@ \")],nD0=[0,[17,0,[12,41,0]],r(d0)],tD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportDefaultDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration@ \")],uD0=[0,[17,0,[12,41,0]],r(d0)],iD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportNamedDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportNamedDeclaration@ \")],fD0=[0,[17,0,[12,41,0]],r(d0)],xD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Expression@ \")],oD0=[0,[17,0,[12,41,0]],r(d0)],aD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.For\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.For@ \")],cD0=[0,[17,0,[12,41,0]],r(d0)],sD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForIn\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForIn@ \")],vD0=[0,[17,0,[12,41,0]],r(d0)],lD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForOf\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForOf@ \")],bD0=[0,[17,0,[12,41,0]],r(d0)],pD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.FunctionDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.FunctionDeclaration@ \")],mD0=[0,[17,0,[12,41,0]],r(d0)],_D0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.If\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.If@ \")],yD0=[0,[17,0,[12,41,0]],r(d0)],hD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ImportDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ImportDeclaration@ \")],dD0=[0,[17,0,[12,41,0]],r(d0)],kD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.InterfaceDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.InterfaceDeclaration@ \")],wD0=[0,[17,0,[12,41,0]],r(d0)],ED0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Labeled\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Labeled@ \")],SD0=[0,[17,0,[12,41,0]],r(d0)],gD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Return\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Return@ \")],FD0=[0,[17,0,[12,41,0]],r(d0)],TD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Switch\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Switch@ \")],OD0=[0,[17,0,[12,41,0]],r(d0)],ID0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Throw\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Throw@ \")],AD0=[0,[17,0,[12,41,0]],r(d0)],ND0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.Try\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.Try@ \")],CD0=[0,[17,0,[12,41,0]],r(d0)],PD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.TypeAlias\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.TypeAlias@ \")],DD0=[0,[17,0,[12,41,0]],r(d0)],LD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.OpaqueType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.OpaqueType@ \")],RD0=[0,[17,0,[12,41,0]],r(d0)],jD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.VariableDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.VariableDeclaration@ \")],GD0=[0,[17,0,[12,41,0]],r(d0)],MD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.While\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.While@ \")],BD0=[0,[17,0,[12,41,0]],r(d0)],qD0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.With\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.With@ \")],UD0=[0,[17,0,[12,41,0]],r(d0)],HD0=[0,[15,0],r(N0)],XD0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],YD0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],VD0=[0,[17,0,[12,41,0]],r(d0)],zD0=[0,[15,0],r(N0)],KD0=r(\"Flow_ast.Statement.ExportValue\"),WD0=r(\"Flow_ast.Statement.ExportType\"),JD0=[0,[15,0],r(N0)],$D0=r(Yr),ZD0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],QD0=r(\"Flow_ast.Statement.Empty.comments\"),rL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eL0=r(tr),nL0=r(Z0),tL0=r(nr),uL0=[0,[17,0,0],r(z)],iL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],fL0=[0,[15,0],r(N0)],xL0=r(Yr),oL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aL0=r(\"Flow_ast.Statement.Expression.expression\"),cL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sL0=[0,[17,0,0],r(z)],vL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lL0=r(Zi),bL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pL0=r(tr),mL0=[0,[3,0,0],r(Vt)],_L0=r(Z0),yL0=r(nr),hL0=[0,[17,0,0],r(z)],dL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kL0=r(Xr),wL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EL0=r(tr),SL0=r(Z0),gL0=r(nr),FL0=[0,[17,0,0],r(z)],TL0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],OL0=[0,[15,0],r(N0)],IL0=r(Yr),AL0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],NL0=r(\"Flow_ast.Statement.ImportDeclaration.import_kind\"),CL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],PL0=[0,[17,0,0],r(z)],DL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LL0=r(cc),RL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jL0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],GL0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],ML0=[0,[17,0,[12,41,0]],r(d0)],BL0=[0,[17,0,0],r(z)],qL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],UL0=r(_i),HL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XL0=r(tr),YL0=r(Z0),VL0=r(nr),zL0=[0,[17,0,0],r(z)],KL0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WL0=r(Cv),JL0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$L0=r(tr),ZL0=r(Z0),QL0=r(nr),rR0=[0,[17,0,0],r(z)],eR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nR0=r(Xr),tR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uR0=r(tr),iR0=r(Z0),fR0=r(nr),xR0=[0,[17,0,0],r(z)],oR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aR0=[0,[15,0],r(N0)],cR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],sR0=r(\"Flow_ast.Statement.ImportDeclaration.kind\"),vR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lR0=r(tr),bR0=r(Z0),pR0=r(nr),mR0=[0,[17,0,0],r(z)],_R0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yR0=r(B2),hR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dR0=r(tr),kR0=r(Z0),wR0=r(nr),ER0=[0,[17,0,0],r(z)],SR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gR0=r(\"remote\"),FR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TR0=[0,[17,0,0],r(z)],OR0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],IR0=[0,[15,0],r(N0)],AR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],NR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers@ \")],CR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],PR0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],DR0=[0,[17,0,[12,41,0]],r(d0)],LR0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier@ \")],RR0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jR0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],GR0=[0,[17,0,[12,41,0]],r(d0)],MR0=[0,[17,0,[12,41,0]],r(d0)],BR0=[0,[15,0],r(N0)],qR0=r(\"Flow_ast.Statement.ImportDeclaration.ImportType\"),UR0=r(\"Flow_ast.Statement.ImportDeclaration.ImportTypeof\"),HR0=r(\"Flow_ast.Statement.ImportDeclaration.ImportValue\"),XR0=[0,[15,0],r(N0)],YR0=r(Yr),VR0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],zR0=r(\"Flow_ast.Statement.DeclareExportDeclaration.default\"),KR0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],WR0=r(tr),JR0=r(Z0),$R0=r(nr),ZR0=[0,[17,0,0],r(z)],QR0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rj0=r(P2),ej0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nj0=r(tr),tj0=r(Z0),uj0=r(nr),ij0=[0,[17,0,0],r(z)],fj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xj0=r(Cv),oj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aj0=r(tr),cj0=r(Z0),sj0=r(nr),vj0=[0,[17,0,0],r(z)],lj0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bj0=r(cc),pj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mj0=r(tr),_j0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],yj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],hj0=[0,[17,0,[12,41,0]],r(d0)],dj0=r(Z0),kj0=r(nr),wj0=[0,[17,0,0],r(z)],Ej0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sj0=r(Xr),gj0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fj0=r(tr),Tj0=r(Z0),Oj0=r(nr),Ij0=[0,[17,0,0],r(z)],Aj0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Nj0=[0,[15,0],r(N0)],Cj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Variable\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Variable@ \")],Pj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Lj0=[0,[17,0,[12,41,0]],r(d0)],Rj0=[0,[17,0,[12,41,0]],r(d0)],jj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Function\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Function@ \")],Gj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Mj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Bj0=[0,[17,0,[12,41,0]],r(d0)],qj0=[0,[17,0,[12,41,0]],r(d0)],Uj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Class\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Class@ \")],Hj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xj0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yj0=[0,[17,0,[12,41,0]],r(d0)],Vj0=[0,[17,0,[12,41,0]],r(d0)],zj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.DefaultType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.DefaultType@ \")],Kj0=[0,[17,0,[12,41,0]],r(d0)],Wj0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.NamedType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedType@ \")],Jj0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$j0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Zj0=[0,[17,0,[12,41,0]],r(d0)],Qj0=[0,[17,0,[12,41,0]],r(d0)],rG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType@ \")],eG0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],nG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],tG0=[0,[17,0,[12,41,0]],r(d0)],uG0=[0,[17,0,[12,41,0]],r(d0)],iG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareExportDeclaration.Interface\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Interface@ \")],fG0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],xG0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],oG0=[0,[17,0,[12,41,0]],r(d0)],aG0=[0,[17,0,[12,41,0]],r(d0)],cG0=[0,[15,0],r(N0)],sG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportDefaultDeclaration.Declaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Declaration@ \")],vG0=[0,[17,0,[12,41,0]],r(d0)],lG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportDefaultDeclaration.Expression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Expression@ \")],bG0=[0,[17,0,[12,41,0]],r(d0)],pG0=[0,[15,0],r(N0)],mG0=r(Yr),_G0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yG0=r(\"Flow_ast.Statement.ExportDefaultDeclaration.default\"),hG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dG0=[0,[17,0,0],r(z)],kG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wG0=r(P2),EG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],SG0=[0,[17,0,0],r(z)],gG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FG0=r(Xr),TG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OG0=r(tr),IG0=r(Z0),AG0=r(nr),NG0=[0,[17,0,0],r(z)],CG0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],PG0=[0,[15,0],r(N0)],DG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers@ \")],RG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jG0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GG0=[0,[17,0,[12,41,0]],r(d0)],MG0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier@ \")],BG0=[0,[17,0,[12,41,0]],r(d0)],qG0=[0,[15,0],r(N0)],UG0=r(Yr),HG0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],XG0=r(\"Flow_ast.Statement.ExportNamedDeclaration.declaration\"),YG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VG0=r(tr),zG0=r(Z0),KG0=r(nr),WG0=[0,[17,0,0],r(z)],JG0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],$G0=r(Cv),ZG0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],QG0=r(tr),rM0=r(Z0),eM0=r(nr),nM0=[0,[17,0,0],r(z)],tM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uM0=r(cc),iM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fM0=r(tr),xM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aM0=[0,[17,0,[12,41,0]],r(d0)],cM0=r(Z0),sM0=r(nr),vM0=[0,[17,0,0],r(z)],lM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bM0=r(\"export_kind\"),pM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mM0=[0,[17,0,0],r(z)],_M0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yM0=r(Xr),hM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dM0=r(tr),kM0=r(Z0),wM0=r(nr),EM0=[0,[17,0,0],r(z)],SM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],gM0=[0,[15,0],r(N0)],FM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],TM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],OM0=r(tr),IM0=r(Z0),AM0=r(nr),NM0=[0,[17,0,[12,41,0]],r(d0)],CM0=[0,[15,0],r(N0)],PM0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],DM0=r(\"Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifier.local\"),LM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RM0=[0,[17,0,0],r(z)],jM0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GM0=r(I4),MM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BM0=r(tr),qM0=r(Z0),UM0=r(nr),HM0=[0,[17,0,0],r(z)],XM0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],YM0=[0,[15,0],r(N0)],VM0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],zM0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],KM0=[0,[17,0,[12,41,0]],r(d0)],WM0=[0,[15,0],r(N0)],JM0=r(Yr),$M0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ZM0=r(\"Flow_ast.Statement.DeclareModuleExports.annot\"),QM0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rB0=[0,[17,0,0],r(z)],eB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nB0=r(Xr),tB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uB0=r(tr),iB0=r(Z0),fB0=r(nr),xB0=[0,[17,0,0],r(z)],oB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],aB0=[0,[15,0],r(N0)],cB0=r(Yr),sB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vB0=r(\"Flow_ast.Statement.DeclareModule.id\"),lB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bB0=[0,[17,0,0],r(z)],pB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],mB0=r(Wn),_B0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],hB0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],dB0=[0,[17,0,[12,41,0]],r(d0)],kB0=[0,[17,0,0],r(z)],wB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EB0=r($c),SB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gB0=[0,[17,0,0],r(z)],FB0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],TB0=r(Xr),OB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IB0=r(tr),AB0=r(Z0),NB0=r(nr),CB0=[0,[17,0,0],r(z)],PB0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],DB0=[0,[15,0],r(N0)],LB0=r(\"Flow_ast.Statement.DeclareModule.ES\"),RB0=r(\"Flow_ast.Statement.DeclareModule.CommonJS\"),jB0=[0,[15,0],r(N0)],GB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModule.Identifier\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModule.Identifier@ \")],MB0=[0,[17,0,[12,41,0]],r(d0)],BB0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.DeclareModule.Literal\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.DeclareModule.Literal@ \")],qB0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],UB0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],HB0=[0,[17,0,[12,41,0]],r(d0)],XB0=[0,[17,0,[12,41,0]],r(d0)],YB0=[0,[15,0],r(N0)],VB0=r(Yr),zB0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KB0=r(\"Flow_ast.Statement.DeclareFunction.id\"),WB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JB0=[0,[17,0,0],r(z)],$B0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZB0=r(Qc),QB0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rq0=[0,[17,0,0],r(z)],eq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],nq0=r(r7),tq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uq0=r(tr),iq0=r(Z0),fq0=r(nr),xq0=[0,[17,0,0],r(z)],oq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],aq0=r(Xr),cq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sq0=r(tr),vq0=r(Z0),lq0=r(nr),bq0=[0,[17,0,0],r(z)],pq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],mq0=[0,[15,0],r(N0)],_q0=r(Yr),yq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],hq0=r(\"Flow_ast.Statement.DeclareVariable.id\"),dq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kq0=[0,[17,0,0],r(z)],wq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eq0=r(Qc),Sq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gq0=[0,[17,0,0],r(z)],Fq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tq0=r(Xr),Oq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Iq0=r(tr),Aq0=r(Z0),Nq0=r(nr),Cq0=[0,[17,0,0],r(z)],Pq0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Dq0=[0,[15,0],r(N0)],Lq0=r(Yr),Rq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jq0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Gq0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Mq0=[0,[17,0,[12,41,0]],r(d0)],Bq0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qq0=r(\"Flow_ast.Statement.DeclareClass.id\"),Uq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hq0=[0,[17,0,0],r(z)],Xq0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yq0=r(sv),Vq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zq0=r(tr),Kq0=r(Z0),Wq0=r(nr),Jq0=[0,[17,0,0],r(z)],$q0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Zq0=r(Wn),Qq0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],eU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],nU0=[0,[17,0,[12,41,0]],r(d0)],tU0=[0,[17,0,0],r(z)],uU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iU0=r(P7),fU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xU0=r(tr),oU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],aU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],cU0=[0,[17,0,[12,41,0]],r(d0)],sU0=r(Z0),vU0=r(nr),lU0=[0,[17,0,0],r(z)],bU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pU0=r(Hy),mU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_U0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],yU0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],hU0=[0,[17,0,0],r(z)],dU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kU0=r(ws),wU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EU0=r(tr),SU0=r(Z0),gU0=r(nr),FU0=[0,[17,0,0],r(z)],TU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OU0=r(Xr),IU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AU0=r(tr),NU0=r(Z0),CU0=r(nr),PU0=[0,[17,0,0],r(z)],DU0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],LU0=[0,[15,0],r(N0)],RU0=r(Yr),jU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],GU0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],MU0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],BU0=[0,[17,0,[12,41,0]],r(d0)],qU0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],UU0=r(\"Flow_ast.Statement.Interface.id\"),HU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XU0=[0,[17,0,0],r(z)],YU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VU0=r(sv),zU0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KU0=r(tr),WU0=r(Z0),JU0=r(nr),$U0=[0,[17,0,0],r(z)],ZU0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QU0=r(P7),rH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],eH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],nH0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],tH0=[0,[17,0,0],r(z)],uH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iH0=r(Wn),fH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aH0=[0,[17,0,[12,41,0]],r(d0)],cH0=[0,[17,0,0],r(z)],sH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vH0=r(Xr),lH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bH0=r(tr),pH0=r(Z0),mH0=r(nr),_H0=[0,[17,0,0],r(z)],yH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],hH0=[0,[15,0],r(N0)],dH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.BooleanBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.BooleanBody@ \")],kH0=[0,[17,0,[12,41,0]],r(d0)],wH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.NumberBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.NumberBody@ \")],EH0=[0,[17,0,[12,41,0]],r(d0)],SH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.StringBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody@ \")],gH0=[0,[17,0,[12,41,0]],r(d0)],FH0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.SymbolBody\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.SymbolBody@ \")],TH0=[0,[17,0,[12,41,0]],r(d0)],OH0=[0,[15,0],r(N0)],IH0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AH0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NH0=[0,[17,0,[12,41,0]],r(d0)],CH0=[0,[15,0],r(N0)],PH0=r(Yr),DH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],LH0=r(\"Flow_ast.Statement.EnumDeclaration.id\"),RH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jH0=[0,[17,0,0],r(z)],GH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MH0=r(Wn),BH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qH0=[0,[17,0,0],r(z)],UH0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],HH0=r(Xr),XH0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],YH0=r(tr),VH0=r(Z0),zH0=r(nr),KH0=[0,[17,0,0],r(z)],WH0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],JH0=[0,[15,0],r(N0)],$H0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZH0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],QH0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],rX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],nX0=r(\"Flow_ast.Statement.EnumDeclaration.SymbolBody.members\"),tX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],iX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],fX0=[0,[17,0,0],r(z)],xX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oX0=r(w4),aX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cX0=[0,[9,0,0],r(An)],sX0=[0,[17,0,0],r(z)],vX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lX0=r(Xr),bX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pX0=r(tr),mX0=r(Z0),_X0=r(nr),yX0=[0,[17,0,0],r(z)],hX0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dX0=[0,[15,0],r(N0)],kX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],EX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted@ \")],SX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],gX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],FX0=[0,[17,0,[12,41,0]],r(d0)],TX0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.EnumDeclaration.StringBody.Initialized\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Initialized@ \")],OX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],IX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],AX0=[0,[17,0,[12,41,0]],r(d0)],NX0=[0,[15,0],r(N0)],CX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],PX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],DX0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],LX0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],RX0=r(\"Flow_ast.Statement.EnumDeclaration.StringBody.members\"),jX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GX0=[0,[17,0,0],r(z)],MX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BX0=r(Fk),qX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UX0=[0,[9,0,0],r(An)],HX0=[0,[17,0,0],r(z)],XX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],YX0=r(w4),VX0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zX0=[0,[9,0,0],r(An)],KX0=[0,[17,0,0],r(z)],WX0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JX0=r(Xr),$X0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZX0=r(tr),QX0=r(Z0),rY0=r(nr),eY0=[0,[17,0,0],r(z)],nY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],tY0=[0,[15,0],r(N0)],uY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],iY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],xY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aY0=r(\"Flow_ast.Statement.EnumDeclaration.NumberBody.members\"),cY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],vY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],lY0=[0,[17,0,0],r(z)],bY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pY0=r(Fk),mY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],_Y0=[0,[9,0,0],r(An)],yY0=[0,[17,0,0],r(z)],hY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],dY0=r(w4),kY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wY0=[0,[9,0,0],r(An)],EY0=[0,[17,0,0],r(z)],SY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gY0=r(Xr),FY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TY0=r(tr),OY0=r(Z0),IY0=r(nr),AY0=[0,[17,0,0],r(z)],NY0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],CY0=[0,[15,0],r(N0)],PY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],LY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],RY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],jY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],GY0=r(\"Flow_ast.Statement.EnumDeclaration.BooleanBody.members\"),MY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],BY0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],qY0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],UY0=[0,[17,0,0],r(z)],HY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],XY0=r(Fk),YY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],VY0=[0,[9,0,0],r(An)],zY0=[0,[17,0,0],r(z)],KY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WY0=r(w4),JY0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$Y0=[0,[9,0,0],r(An)],ZY0=[0,[17,0,0],r(z)],QY0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],rV0=r(Xr),eV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nV0=r(tr),tV0=r(Z0),uV0=r(nr),iV0=[0,[17,0,0],r(z)],fV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],xV0=[0,[15,0],r(N0)],oV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],aV0=r(\"Flow_ast.Statement.EnumDeclaration.InitializedMember.id\"),cV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],sV0=[0,[17,0,0],r(z)],vV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lV0=r(ji),bV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],pV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_V0=[0,[17,0,[12,41,0]],r(d0)],yV0=[0,[17,0,0],r(z)],hV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dV0=[0,[15,0],r(N0)],kV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],EV0=[0,[17,0,[12,41,0]],r(d0)],SV0=[0,[15,0],r(N0)],gV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],FV0=r(\"Flow_ast.Statement.EnumDeclaration.DefaultedMember.id\"),TV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OV0=[0,[17,0,0],r(z)],IV0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],AV0=[0,[15,0],r(N0)],NV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],CV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],PV0=[0,[17,0,[12,41,0]],r(d0)],DV0=[0,[15,0],r(N0)],LV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForOf.LeftDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForOf.LeftDeclaration@ \")],RV0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],jV0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],GV0=[0,[17,0,[12,41,0]],r(d0)],MV0=[0,[17,0,[12,41,0]],r(d0)],BV0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForOf.LeftPattern\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForOf.LeftPattern@ \")],qV0=[0,[17,0,[12,41,0]],r(d0)],UV0=[0,[15,0],r(N0)],HV0=r(Yr),XV0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],YV0=r(\"Flow_ast.Statement.ForOf.left\"),VV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zV0=[0,[17,0,0],r(z)],KV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],WV0=r(Cu),JV0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$V0=[0,[17,0,0],r(z)],ZV0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QV0=r(Wn),rz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ez0=[0,[17,0,0],r(z)],nz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tz0=r(dx),uz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],iz0=[0,[9,0,0],r(An)],fz0=[0,[17,0,0],r(z)],xz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oz0=r(Xr),az0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cz0=r(tr),sz0=r(Z0),vz0=r(nr),lz0=[0,[17,0,0],r(z)],bz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],pz0=[0,[15,0],r(N0)],mz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForIn.LeftDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForIn.LeftDeclaration@ \")],_z0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],yz0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],hz0=[0,[17,0,[12,41,0]],r(d0)],dz0=[0,[17,0,[12,41,0]],r(d0)],kz0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.ForIn.LeftPattern\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.ForIn.LeftPattern@ \")],wz0=[0,[17,0,[12,41,0]],r(d0)],Ez0=[0,[15,0],r(N0)],Sz0=r(Yr),gz0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Fz0=r(\"Flow_ast.Statement.ForIn.left\"),Tz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Oz0=[0,[17,0,0],r(z)],Iz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Az0=r(Cu),Nz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cz0=[0,[17,0,0],r(z)],Pz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dz0=r(Wn),Lz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rz0=[0,[17,0,0],r(z)],jz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gz0=r(R8),Mz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bz0=[0,[9,0,0],r(An)],qz0=[0,[17,0,0],r(z)],Uz0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Hz0=r(Xr),Xz0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Yz0=r(tr),Vz0=r(Z0),zz0=r(nr),Kz0=[0,[17,0,0],r(z)],Wz0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Jz0=[0,[15,0],r(N0)],$z0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.For.InitDeclaration\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.For.InitDeclaration@ \")],Zz0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Qz0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],rK0=[0,[17,0,[12,41,0]],r(d0)],eK0=[0,[17,0,[12,41,0]],r(d0)],nK0=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Statement.For.InitExpression\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Statement.For.InitExpression@ \")],tK0=[0,[17,0,[12,41,0]],r(d0)],uK0=[0,[15,0],r(N0)],iK0=r(Yr),fK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],xK0=r(\"Flow_ast.Statement.For.init\"),oK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aK0=r(tr),cK0=r(Z0),sK0=r(nr),vK0=[0,[17,0,0],r(z)],lK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bK0=r(Ss),pK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mK0=r(tr),_K0=r(Z0),yK0=r(nr),hK0=[0,[17,0,0],r(z)],dK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],kK0=r(fU),wK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],EK0=r(tr),SK0=r(Z0),gK0=r(nr),FK0=[0,[17,0,0],r(z)],TK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OK0=r(Wn),IK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],AK0=[0,[17,0,0],r(z)],NK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],CK0=r(Xr),PK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],DK0=r(tr),LK0=r(Z0),RK0=r(nr),jK0=[0,[17,0,0],r(z)],GK0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],MK0=[0,[15,0],r(N0)],BK0=r(Yr),qK0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],UK0=r(\"Flow_ast.Statement.DoWhile.body\"),HK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],XK0=[0,[17,0,0],r(z)],YK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VK0=r(Ss),zK0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KK0=[0,[17,0,0],r(z)],WK0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JK0=r(Xr),$K0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZK0=r(tr),QK0=r(Z0),rW0=r(nr),eW0=[0,[17,0,0],r(z)],nW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],tW0=[0,[15,0],r(N0)],uW0=r(Yr),iW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],fW0=r(\"Flow_ast.Statement.While.test\"),xW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oW0=[0,[17,0,0],r(z)],aW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cW0=r(Wn),sW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vW0=[0,[17,0,0],r(z)],lW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],bW0=r(Xr),pW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mW0=r(tr),_W0=r(Z0),yW0=r(nr),hW0=[0,[17,0,0],r(z)],dW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],kW0=[0,[15,0],r(N0)],wW0=r(\"Flow_ast.Statement.VariableDeclaration.Var\"),EW0=r(\"Flow_ast.Statement.VariableDeclaration.Let\"),SW0=r(\"Flow_ast.Statement.VariableDeclaration.Const\"),gW0=[0,[15,0],r(N0)],FW0=r(Yr),TW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],OW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],IW0=r(\"Flow_ast.Statement.VariableDeclaration.declarations\"),AW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],NW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],CW0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],PW0=[0,[17,0,0],r(z)],DW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],LW0=r($c),RW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jW0=[0,[17,0,0],r(z)],GW0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MW0=r(Xr),BW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qW0=r(tr),UW0=r(Z0),HW0=r(nr),XW0=[0,[17,0,0],r(z)],YW0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],VW0=[0,[15,0],r(N0)],zW0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],KW0=r(\"Flow_ast.Statement.VariableDeclaration.Declarator.id\"),WW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],JW0=[0,[17,0,0],r(z)],$W0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ZW0=r(ji),QW0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rJ0=r(tr),eJ0=r(Z0),nJ0=r(nr),tJ0=[0,[17,0,0],r(z)],uJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],iJ0=[0,[15,0],r(N0)],fJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],xJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],oJ0=[0,[17,0,[12,41,0]],r(d0)],aJ0=[0,[15,0],r(N0)],cJ0=r(Yr),sJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],vJ0=r(\"Flow_ast.Statement.Try.block\"),lJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],pJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],mJ0=[0,[17,0,[12,41,0]],r(d0)],_J0=[0,[17,0,0],r(z)],yJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hJ0=r(MU),dJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kJ0=r(tr),wJ0=r(Z0),EJ0=r(nr),SJ0=[0,[17,0,0],r(z)],gJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FJ0=r(CH),TJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],OJ0=r(tr),IJ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],AJ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],NJ0=[0,[17,0,[12,41,0]],r(d0)],CJ0=r(Z0),PJ0=r(nr),DJ0=[0,[17,0,0],r(z)],LJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],RJ0=r(Xr),jJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],GJ0=r(tr),MJ0=r(Z0),BJ0=r(nr),qJ0=[0,[17,0,0],r(z)],UJ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],HJ0=[0,[15,0],r(N0)],XJ0=r(Yr),YJ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],VJ0=r(\"Flow_ast.Statement.Try.CatchClause.param\"),zJ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KJ0=r(tr),WJ0=r(Z0),JJ0=r(nr),$J0=[0,[17,0,0],r(z)],ZJ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],QJ0=r(Wn),r$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e$0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],n$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],t$0=[0,[17,0,[12,41,0]],r(d0)],u$0=[0,[17,0,0],r(z)],i$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],f$0=r(Xr),x$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o$0=r(tr),a$0=r(Z0),c$0=r(nr),s$0=[0,[17,0,0],r(z)],v$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],l$0=[0,[15,0],r(N0)],b$0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],p$0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],m$0=[0,[17,0,[12,41,0]],r(d0)],_$0=[0,[15,0],r(N0)],y$0=r(Yr),h$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],d$0=r(\"Flow_ast.Statement.Throw.argument\"),k$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],w$0=[0,[17,0,0],r(z)],E$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],S$0=r(Xr),g$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F$0=r(tr),T$0=r(Z0),O$0=r(nr),I$0=[0,[17,0,0],r(z)],A$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],N$0=[0,[15,0],r(N0)],C$0=r(Yr),P$0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D$0=r(\"Flow_ast.Statement.Return.argument\"),L$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R$0=r(tr),j$0=r(Z0),G$0=r(nr),M$0=[0,[17,0,0],r(z)],B$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],q$0=r(Xr),U$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H$0=r(tr),X$0=r(Z0),Y$0=r(nr),V$0=[0,[17,0,0],r(z)],z$0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K$0=r(\"return_out\"),W$0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],J$0=[0,[17,0,0],r(z)],$$0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Z$0=[0,[15,0],r(N0)],Q$0=r(Yr),rZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],eZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],nZ0=r(\"Flow_ast.Statement.Switch.discriminant\"),tZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],uZ0=[0,[17,0,0],r(z)],iZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fZ0=r(QX),xZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],oZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],aZ0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],cZ0=[0,[17,0,0],r(z)],sZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vZ0=r(Xr),lZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bZ0=r(tr),pZ0=r(Z0),mZ0=r(nr),_Z0=[0,[17,0,0],r(z)],yZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],hZ0=r(\"exhaustive_out\"),dZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],kZ0=[0,[17,0,0],r(z)],wZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],EZ0=[0,[15,0],r(N0)],SZ0=r(Yr),gZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],FZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],TZ0=r(\"Flow_ast.Statement.Switch.Case.test\"),OZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],IZ0=r(tr),AZ0=r(Z0),NZ0=r(nr),CZ0=[0,[17,0,0],r(z)],PZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],DZ0=r(kv),LZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],RZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jZ0=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],GZ0=[0,[17,0,0],r(z)],MZ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],BZ0=r(Xr),qZ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],UZ0=r(tr),HZ0=r(Z0),XZ0=r(nr),YZ0=[0,[17,0,0],r(z)],VZ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],zZ0=[0,[15,0],r(N0)],KZ0=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],WZ0=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],JZ0=[0,[17,0,[12,41,0]],r(d0)],$Z0=[0,[15,0],r(N0)],ZZ0=r(Yr),QZ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rQ0=r(\"Flow_ast.Statement.OpaqueType.id\"),eQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nQ0=[0,[17,0,0],r(z)],tQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],uQ0=r(sv),iQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],fQ0=r(tr),xQ0=r(Z0),oQ0=r(nr),aQ0=[0,[17,0,0],r(z)],cQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],sQ0=r(mX),vQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lQ0=r(tr),bQ0=r(Z0),pQ0=r(nr),mQ0=[0,[17,0,0],r(z)],_Q0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yQ0=r(SX),hQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dQ0=r(tr),kQ0=r(Z0),wQ0=r(nr),EQ0=[0,[17,0,0],r(z)],SQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gQ0=r(Xr),FQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],TQ0=r(tr),OQ0=r(Z0),IQ0=r(nr),AQ0=[0,[17,0,0],r(z)],NQ0=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],CQ0=[0,[15,0],r(N0)],PQ0=r(Yr),DQ0=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],LQ0=r(\"Flow_ast.Statement.TypeAlias.id\"),RQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jQ0=[0,[17,0,0],r(z)],GQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],MQ0=r(sv),BQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qQ0=r(tr),UQ0=r(Z0),HQ0=r(nr),XQ0=[0,[17,0,0],r(z)],YQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],VQ0=r(Cu),zQ0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],KQ0=[0,[17,0,0],r(z)],WQ0=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],JQ0=r(Xr),$Q0=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ZQ0=r(tr),QQ0=r(Z0),r0r=r(nr),e0r=[0,[17,0,0],r(z)],n0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],t0r=[0,[15,0],r(N0)],u0r=r(Yr),i0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],f0r=r(\"Flow_ast.Statement.With._object\"),x0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o0r=[0,[17,0,0],r(z)],a0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],c0r=r(Wn),s0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],v0r=[0,[17,0,0],r(z)],l0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],b0r=r(Xr),p0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m0r=r(tr),_0r=r(Z0),y0r=r(nr),h0r=[0,[17,0,0],r(z)],d0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],k0r=[0,[15,0],r(N0)],w0r=r(Yr),E0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],S0r=r(\"Flow_ast.Statement.Debugger.comments\"),g0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],F0r=r(tr),T0r=r(Z0),O0r=r(nr),I0r=[0,[17,0,0],r(z)],A0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],N0r=[0,[15,0],r(N0)],C0r=r(Yr),P0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],D0r=r(\"Flow_ast.Statement.Continue.label\"),L0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R0r=r(tr),j0r=r(Z0),G0r=r(nr),M0r=[0,[17,0,0],r(z)],B0r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],q0r=r(Xr),U0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H0r=r(tr),X0r=r(Z0),Y0r=r(nr),V0r=[0,[17,0,0],r(z)],z0r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],K0r=[0,[15,0],r(N0)],W0r=r(Yr),J0r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$0r=r(\"Flow_ast.Statement.Break.label\"),Z0r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Q0r=r(tr),rrr=r(Z0),err=r(nr),nrr=[0,[17,0,0],r(z)],trr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],urr=r(Xr),irr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],frr=r(tr),xrr=r(Z0),orr=r(nr),arr=[0,[17,0,0],r(z)],crr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],srr=[0,[15,0],r(N0)],vrr=r(Yr),lrr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],brr=r(\"Flow_ast.Statement.Labeled.label\"),prr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mrr=[0,[17,0,0],r(z)],_rr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yrr=r(Wn),hrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],drr=[0,[17,0,0],r(z)],krr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wrr=r(Xr),Err=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Srr=r(tr),grr=r(Z0),Frr=r(nr),Trr=[0,[17,0,0],r(z)],Orr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Irr=[0,[15,0],r(N0)],Arr=r(Yr),Nrr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Crr=r(\"Flow_ast.Statement.If.test\"),Prr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Drr=[0,[17,0,0],r(z)],Lrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rrr=r(kv),jrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Grr=[0,[17,0,0],r(z)],Mrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Brr=r(m3),qrr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Urr=r(tr),Hrr=r(Z0),Xrr=r(nr),Yrr=[0,[17,0,0],r(z)],Vrr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zrr=r(Xr),Krr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wrr=r(tr),Jrr=r(Z0),$rr=r(nr),Zrr=[0,[17,0,0],r(z)],Qrr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],rer=[0,[15,0],r(N0)],eer=r(Yr),ner=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ter=r(\"Flow_ast.Statement.If.Alternate.body\"),uer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ier=[0,[17,0,0],r(z)],fer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xer=r(Xr),oer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],aer=r(tr),cer=r(Z0),ser=r(nr),ver=[0,[17,0,0],r(z)],ler=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ber=[0,[15,0],r(N0)],per=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],mer=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],_er=[0,[17,0,[12,41,0]],r(d0)],yer=[0,[15,0],r(N0)],her=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],der=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],ker=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],wer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Eer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ser=r(\"Flow_ast.Statement.Block.body\"),ger=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fer=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Ter=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Oer=[0,[17,0,0],r(z)],Ier=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Aer=r(Xr),Ner=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cer=r(tr),Per=r(Z0),Der=r(nr),Ler=[0,[17,0,0],r(z)],Rer=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jer=[0,[15,0],r(N0)],Ger=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Predicate.Declared\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Predicate.Declared@ \")],Mer=[0,[17,0,[12,41,0]],r(d0)],Ber=r(\"Flow_ast.Type.Predicate.Inferred\"),qer=[0,[15,0],r(N0)],Uer=r(Yr),Her=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Xer=r(\"Flow_ast.Type.Predicate.kind\"),Yer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ver=[0,[17,0,0],r(z)],zer=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ker=r(Xr),Wer=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jer=r(tr),$er=r(Z0),Zer=r(nr),Qer=[0,[17,0,0],r(z)],rnr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],enr=[0,[15,0],r(N0)],nnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],tnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],unr=[0,[17,0,[12,41,0]],r(d0)],inr=[0,[15,0],r(N0)],fnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],onr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],anr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],snr=r(\"Flow_ast.Type.TypeArgs.arguments\"),vnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],lnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],bnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],pnr=[0,[17,0,0],r(z)],mnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_nr=r(Xr),ynr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hnr=r(tr),dnr=r(Z0),knr=r(nr),wnr=[0,[17,0,0],r(z)],Enr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Snr=[0,[15,0],r(N0)],gnr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Fnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Tnr=[0,[17,0,[12,41,0]],r(d0)],Onr=[0,[15,0],r(N0)],Inr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Anr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Nnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Cnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Pnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Dnr=r(\"Flow_ast.Type.TypeParams.params\"),Lnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rnr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],jnr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Gnr=[0,[17,0,0],r(z)],Mnr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bnr=r(Xr),qnr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Unr=r(tr),Hnr=r(Z0),Xnr=r(nr),Ynr=[0,[17,0,0],r(z)],Vnr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],znr=[0,[15,0],r(N0)],Knr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Wnr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Jnr=[0,[17,0,[12,41,0]],r(d0)],$nr=[0,[15,0],r(N0)],Znr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Qnr=r(\"Flow_ast.Type.TypeParam.name\"),rtr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],etr=[0,[17,0,0],r(z)],ntr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ttr=r(DU),utr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],itr=[0,[17,0,0],r(z)],ftr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xtr=r(cu),otr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],atr=r(tr),ctr=r(Z0),str=r(nr),vtr=[0,[17,0,0],r(z)],ltr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],btr=r(_i),ptr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mtr=r(tr),_tr=r(Z0),ytr=r(nr),htr=[0,[17,0,0],r(z)],dtr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ktr=[0,[15,0],r(N0)],wtr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Etr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Str=[0,[17,0,[12,41,0]],r(d0)],gtr=[0,[15,0],r(N0)],Ftr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Missing\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Missing@ \")],Ttr=[0,[17,0,[12,41,0]],r(d0)],Otr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Available\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Available@ \")],Itr=[0,[17,0,[12,41,0]],r(d0)],Atr=[0,[15,0],r(N0)],Ntr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ctr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Ptr=[0,[17,0,[12,41,0]],r(d0)],Dtr=[0,[15,0],r(N0)],Ltr=r(Yr),Rtr=r(Yr),jtr=r(Yr),Gtr=r(Yr),Mtr=r(Yr),Btr=r(Yr),qtr=r(Yr),Utr=r(Yr),Htr=r(Yr),Xtr=r(Yr),Ytr=r(Yr),Vtr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Any\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Any@ \")],ztr=r(tr),Ktr=r(Z0),Wtr=r(nr),Jtr=[0,[17,0,[12,41,0]],r(d0)],$tr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Mixed\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Mixed@ \")],Ztr=r(tr),Qtr=r(Z0),rur=r(nr),eur=[0,[17,0,[12,41,0]],r(d0)],nur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Empty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Empty@ \")],tur=r(tr),uur=r(Z0),iur=r(nr),fur=[0,[17,0,[12,41,0]],r(d0)],xur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Void\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Void@ \")],our=r(tr),aur=r(Z0),cur=r(nr),sur=[0,[17,0,[12,41,0]],r(d0)],vur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Null\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Null@ \")],lur=r(tr),bur=r(Z0),pur=r(nr),mur=[0,[17,0,[12,41,0]],r(d0)],_ur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Number\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Number@ \")],yur=r(tr),hur=r(Z0),dur=r(nr),kur=[0,[17,0,[12,41,0]],r(d0)],wur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.BigInt\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.BigInt@ \")],Eur=r(tr),Sur=r(Z0),gur=r(nr),Fur=[0,[17,0,[12,41,0]],r(d0)],Tur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.String\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.String@ \")],Our=r(tr),Iur=r(Z0),Aur=r(nr),Nur=[0,[17,0,[12,41,0]],r(d0)],Cur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Boolean\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Boolean@ \")],Pur=r(tr),Dur=r(Z0),Lur=r(nr),Rur=[0,[17,0,[12,41,0]],r(d0)],jur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Symbol\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Symbol@ \")],Gur=r(tr),Mur=r(Z0),Bur=r(nr),qur=[0,[17,0,[12,41,0]],r(d0)],Uur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Exists\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Exists@ \")],Hur=r(tr),Xur=r(Z0),Yur=r(nr),Vur=[0,[17,0,[12,41,0]],r(d0)],zur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Nullable\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Nullable@ \")],Kur=[0,[17,0,[12,41,0]],r(d0)],Wur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Function\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Function@ \")],Jur=[0,[17,0,[12,41,0]],r(d0)],$ur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object@ \")],Zur=[0,[17,0,[12,41,0]],r(d0)],Qur=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Interface\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Interface@ \")],r7r=[0,[17,0,[12,41,0]],r(d0)],e7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Array\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Array@ \")],n7r=[0,[17,0,[12,41,0]],r(d0)],t7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Generic\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Generic@ \")],u7r=[0,[17,0,[12,41,0]],r(d0)],i7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.IndexedAccess\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.IndexedAccess@ \")],f7r=[0,[17,0,[12,41,0]],r(d0)],x7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.OptionalIndexedAccess\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.OptionalIndexedAccess@ \")],o7r=[0,[17,0,[12,41,0]],r(d0)],a7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Union\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Union@ \")],c7r=[0,[17,0,[12,41,0]],r(d0)],s7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Intersection\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Intersection@ \")],v7r=[0,[17,0,[12,41,0]],r(d0)],l7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Typeof\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Typeof@ \")],b7r=[0,[17,0,[12,41,0]],r(d0)],p7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Tuple\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Tuple@ \")],m7r=[0,[17,0,[12,41,0]],r(d0)],_7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.StringLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.StringLiteral@ \")],y7r=[0,[17,0,[12,41,0]],r(d0)],h7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.NumberLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.NumberLiteral@ \")],d7r=[0,[17,0,[12,41,0]],r(d0)],k7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.BigIntLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.BigIntLiteral@ \")],w7r=[0,[17,0,[12,41,0]],r(d0)],E7r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.BooleanLiteral\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.BooleanLiteral@ \")],S7r=[0,[17,0,[12,41,0]],r(d0)],g7r=[0,[15,0],r(N0)],F7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],T7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O7r=[0,[17,0,[12,41,0]],r(d0)],I7r=[0,[15,0],r(N0)],A7r=r(Yr),N7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],C7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],P7r=r(\"Flow_ast.Type.Intersection.types\"),D7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],L7r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],R7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],j7r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],G7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],M7r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],B7r=[0,[17,0,[12,41,0]],r(d0)],q7r=[0,[17,0,0],r(z)],U7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],H7r=r(Xr),X7r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Y7r=r(tr),V7r=r(Z0),z7r=r(nr),K7r=[0,[17,0,0],r(z)],W7r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],J7r=[0,[15,0],r(N0)],$7r=r(Yr),Z7r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q7r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rir=r(\"Flow_ast.Type.Union.types\"),eir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nir=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],tir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],uir=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],iir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],fir=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],xir=[0,[17,0,[12,41,0]],r(d0)],oir=[0,[17,0,0],r(z)],air=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cir=r(Xr),sir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vir=r(tr),lir=r(Z0),bir=r(nr),pir=[0,[17,0,0],r(z)],mir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_ir=[0,[15,0],r(N0)],yir=r(Yr),hir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dir=r(\"Flow_ast.Type.Array.argument\"),kir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wir=[0,[17,0,0],r(z)],Eir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Sir=r(Xr),gir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Fir=r(tr),Tir=r(Z0),Oir=r(nr),Iir=[0,[17,0,0],r(z)],Air=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Nir=[0,[15,0],r(N0)],Cir=r(Yr),Pir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Lir=r(\"Flow_ast.Type.Tuple.types\"),Rir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],jir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Gir=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Mir=[0,[17,0,0],r(z)],Bir=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qir=r(Xr),Uir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hir=r(tr),Xir=r(Z0),Yir=r(nr),Vir=[0,[17,0,0],r(z)],zir=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Kir=[0,[15,0],r(N0)],Wir=r(Yr),Jir=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],$ir=r(\"Flow_ast.Type.Typeof.argument\"),Zir=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Qir=[0,[17,0,0],r(z)],rfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],efr=r(Xr),nfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tfr=r(tr),ufr=r(Z0),ifr=r(nr),ffr=[0,[17,0,0],r(z)],xfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ofr=[0,[15,0],r(N0)],afr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],cfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],sfr=[0,[17,0,[12,41,0]],r(d0)],vfr=[0,[15,0],r(N0)],lfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],bfr=r(\"Flow_ast.Type.Typeof.Target.qualification\"),pfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],mfr=[0,[17,0,0],r(z)],_fr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],yfr=r(mt),hfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dfr=[0,[17,0,0],r(z)],kfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],wfr=[0,[15,0],r(N0)],Efr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Typeof.Target.Unqualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Typeof.Target.Unqualified@ \")],Sfr=[0,[17,0,[12,41,0]],r(d0)],gfr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Typeof.Target.Qualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Typeof.Target.Qualified@ \")],Ffr=[0,[17,0,[12,41,0]],r(d0)],Tfr=[0,[15,0],r(N0)],Ofr=r(Yr),Ifr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Afr=r(\"Flow_ast.Type.Nullable.argument\"),Nfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cfr=[0,[17,0,0],r(z)],Pfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Dfr=r(Xr),Lfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Rfr=r(tr),jfr=r(Z0),Gfr=r(nr),Mfr=[0,[17,0,0],r(z)],Bfr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],qfr=[0,[15,0],r(N0)],Ufr=r(Yr),Hfr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Yfr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Vfr=[0,[17,0,[12,41,0]],r(d0)],zfr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Kfr=r(\"Flow_ast.Type.Interface.body\"),Wfr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jfr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],$fr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Zfr=[0,[17,0,[12,41,0]],r(d0)],Qfr=[0,[17,0,0],r(z)],rxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],exr=r(P7),nxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],txr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],uxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],ixr=[0,[17,0,0],r(z)],fxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],xxr=r(Xr),oxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],axr=r(tr),cxr=r(Z0),sxr=r(nr),vxr=[0,[17,0,0],r(z)],lxr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],bxr=[0,[15,0],r(N0)],pxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property@ \")],mxr=[0,[17,0,[12,41,0]],r(d0)],_xr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.SpreadProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.SpreadProperty@ \")],yxr=[0,[17,0,[12,41,0]],r(d0)],hxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Indexer\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Indexer@ \")],dxr=[0,[17,0,[12,41,0]],r(d0)],kxr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.CallProperty\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.CallProperty@ \")],wxr=[0,[17,0,[12,41,0]],r(d0)],Exr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.InternalSlot\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.InternalSlot@ \")],Sxr=[0,[17,0,[12,41,0]],r(d0)],gxr=[0,[15,0],r(N0)],Fxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Txr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Oxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Ixr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Axr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Nxr=r(\"Flow_ast.Type.Object.exact\"),Cxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Pxr=[0,[9,0,0],r(An)],Dxr=[0,[17,0,0],r(z)],Lxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rxr=r(GY),jxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gxr=[0,[9,0,0],r(An)],Mxr=[0,[17,0,0],r(z)],Bxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],qxr=r(H4),Uxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hxr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Xxr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Yxr=[0,[17,0,0],r(z)],Vxr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],zxr=r(Xr),Kxr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Wxr=r(tr),Jxr=r(Z0),$xr=r(nr),Zxr=[0,[17,0,0],r(z)],Qxr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],ror=[0,[15,0],r(N0)],eor=r(Yr),nor=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],tor=r(\"Flow_ast.Type.Object.InternalSlot.id\"),uor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ior=[0,[17,0,0],r(z)],xor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],oor=r(Bn),aor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],cor=[0,[17,0,0],r(z)],sor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vor=r(qu),lor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],bor=[0,[9,0,0],r(An)],por=[0,[17,0,0],r(z)],mor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],_or=r(nu),yor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],hor=[0,[9,0,0],r(An)],dor=[0,[17,0,0],r(z)],kor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wor=r(nU),Eor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Sor=[0,[9,0,0],r(An)],gor=[0,[17,0,0],r(z)],For=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Tor=r(Xr),Oor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ior=r(tr),Aor=r(Z0),Nor=r(nr),Cor=[0,[17,0,0],r(z)],Por=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Dor=[0,[15,0],r(N0)],Lor=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Ror=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],jor=[0,[17,0,[12,41,0]],r(d0)],Gor=[0,[15,0],r(N0)],Mor=r(Yr),Bor=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],qor=r(\"Flow_ast.Type.Object.CallProperty.value\"),Uor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Hor=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Xor=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Yor=[0,[17,0,[12,41,0]],r(d0)],Vor=[0,[17,0,0],r(z)],zor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Kor=r(nu),Wor=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Jor=[0,[9,0,0],r(An)],$or=[0,[17,0,0],r(z)],Zor=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Qor=r(Xr),rar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ear=r(tr),nar=r(Z0),tar=r(nr),uar=[0,[17,0,0],r(z)],iar=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],far=[0,[15,0],r(N0)],xar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],oar=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],aar=[0,[17,0,[12,41,0]],r(d0)],car=[0,[15,0],r(N0)],sar=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],lar=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],bar=[0,[17,0,[12,41,0]],r(d0)],par=[0,[15,0],r(N0)],mar=r(Yr),_ar=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],yar=r(\"Flow_ast.Type.Object.Indexer.id\"),har=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dar=r(tr),kar=r(Z0),war=r(nr),Ear=[0,[17,0,0],r(z)],Sar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gar=r(ii),Far=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tar=[0,[17,0,0],r(z)],Oar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Iar=r(Bn),Aar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nar=[0,[17,0,0],r(z)],Car=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Par=r(nu),Dar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Lar=[0,[9,0,0],r(An)],Rar=[0,[17,0,0],r(z)],jar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Gar=r(cu),Mar=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bar=r(tr),qar=r(Z0),Uar=r(nr),Har=[0,[17,0,0],r(z)],Xar=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Yar=r(Xr),Var=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zar=r(tr),Kar=r(Z0),War=r(nr),Jar=[0,[17,0,0],r(z)],$ar=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Zar=[0,[15,0],r(N0)],Qar=r(Yr),rcr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ecr=r(\"Flow_ast.Type.Object.SpreadProperty.argument\"),ncr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tcr=[0,[17,0,0],r(z)],ucr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],icr=r(Xr),fcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xcr=r(tr),ocr=r(Z0),acr=r(nr),ccr=[0,[17,0,0],r(z)],scr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],vcr=[0,[15,0],r(N0)],lcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],bcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],pcr=[0,[17,0,[12,41,0]],r(d0)],mcr=[0,[15,0],r(N0)],_cr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property.Init\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property.Init@ \")],ycr=[0,[17,0,[12,41,0]],r(d0)],hcr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property.Get\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property.Get@ \")],dcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],kcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],wcr=[0,[17,0,[12,41,0]],r(d0)],Ecr=[0,[17,0,[12,41,0]],r(d0)],Scr=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Object.Property.Set\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Object.Property.Set@ \")],gcr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Fcr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Tcr=[0,[17,0,[12,41,0]],r(d0)],Ocr=[0,[17,0,[12,41,0]],r(d0)],Icr=[0,[15,0],r(N0)],Acr=r(Yr),Ncr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Ccr=r(\"Flow_ast.Type.Object.Property.key\"),Pcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Dcr=[0,[17,0,0],r(z)],Lcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rcr=r(Bn),jcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gcr=[0,[17,0,0],r(z)],Mcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Bcr=r(qu),qcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ucr=[0,[9,0,0],r(An)],Hcr=[0,[17,0,0],r(z)],Xcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ycr=r(nu),Vcr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zcr=[0,[9,0,0],r(An)],Kcr=[0,[17,0,0],r(z)],Wcr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jcr=r(X3),$cr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zcr=[0,[9,0,0],r(An)],Qcr=[0,[17,0,0],r(z)],rsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],esr=r(nU),nsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],tsr=[0,[9,0,0],r(An)],usr=[0,[17,0,0],r(z)],isr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],fsr=r(cu),xsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],osr=r(tr),asr=r(Z0),csr=r(nr),ssr=[0,[17,0,0],r(z)],vsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],lsr=r(Xr),bsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],psr=r(tr),msr=r(Z0),_sr=r(nr),ysr=[0,[17,0,0],r(z)],hsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],dsr=[0,[15,0],r(N0)],ksr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],wsr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Esr=[0,[17,0,[12,41,0]],r(d0)],Ssr=[0,[15,0],r(N0)],gsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Fsr=r(\"Flow_ast.Type.OptionalIndexedAccess.indexed_access\"),Tsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Osr=[0,[17,0,0],r(z)],Isr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Asr=r(qu),Nsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Csr=[0,[9,0,0],r(An)],Psr=[0,[17,0,0],r(z)],Dsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Lsr=[0,[15,0],r(N0)],Rsr=r(Yr),jsr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Gsr=r(\"Flow_ast.Type.IndexedAccess._object\"),Msr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Bsr=[0,[17,0,0],r(z)],qsr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Usr=r(\"index\"),Hsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Xsr=[0,[17,0,0],r(z)],Ysr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Vsr=r(Xr),zsr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ksr=r(tr),Wsr=r(Z0),Jsr=r(nr),$sr=[0,[17,0,0],r(z)],Zsr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Qsr=[0,[15,0],r(N0)],r1r=r(Yr),e1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],n1r=r(\"Flow_ast.Type.Generic.id\"),t1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],u1r=[0,[17,0,0],r(z)],i1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],f1r=r(Z2),x1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],o1r=r(tr),a1r=r(Z0),c1r=r(nr),s1r=[0,[17,0,0],r(z)],v1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],l1r=r(Xr),b1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],p1r=r(tr),m1r=r(Z0),_1r=r(nr),y1r=[0,[17,0,0],r(z)],h1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],d1r=[0,[15,0],r(N0)],k1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w1r=r(\"Flow_ast.Type.Generic.Identifier.qualification\"),E1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S1r=[0,[17,0,0],r(z)],g1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F1r=r(mt),T1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O1r=[0,[17,0,0],r(z)],I1r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],A1r=[0,[15,0],r(N0)],N1r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],C1r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],P1r=[0,[17,0,[12,41,0]],r(d0)],D1r=[0,[15,0],r(N0)],L1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Generic.Identifier.Unqualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Generic.Identifier.Unqualified@ \")],R1r=[0,[17,0,[12,41,0]],r(d0)],j1r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Type.Generic.Identifier.Qualified\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Type.Generic.Identifier.Qualified@ \")],G1r=[0,[17,0,[12,41,0]],r(d0)],M1r=[0,[15,0],r(N0)],B1r=r(Yr),q1r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],U1r=r(\"Flow_ast.Type.Function.tparams\"),H1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X1r=r(tr),Y1r=r(Z0),V1r=r(nr),z1r=[0,[17,0,0],r(z)],K1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],W1r=r(Dt),J1r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],$1r=[0,[17,0,0],r(z)],Z1r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Q1r=r(Ju),rvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],evr=[0,[17,0,0],r(z)],nvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],tvr=r(Xr),uvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],ivr=r(tr),fvr=r(Z0),xvr=r(nr),ovr=[0,[17,0,0],r(z)],avr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],cvr=[0,[15,0],r(N0)],svr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],vvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],lvr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],bvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],pvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],mvr=r(\"Flow_ast.Type.Function.Params.this_\"),_vr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],yvr=r(tr),hvr=r(Z0),dvr=r(nr),kvr=[0,[17,0,0],r(z)],wvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Evr=r(Dt),Svr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],gvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],Fvr=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],Tvr=[0,[17,0,0],r(z)],Ovr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ivr=r(xd),Avr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Nvr=r(tr),Cvr=r(Z0),Pvr=r(nr),Dvr=[0,[17,0,0],r(z)],Lvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Rvr=r(Xr),jvr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Gvr=r(tr),Mvr=r(Z0),Bvr=r(nr),qvr=[0,[17,0,0],r(z)],Uvr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Hvr=[0,[15,0],r(N0)],Xvr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Yvr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Vvr=[0,[17,0,[12,41,0]],r(d0)],zvr=[0,[15,0],r(N0)],Kvr=r(Yr),Wvr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Jvr=r(\"Flow_ast.Type.Function.ThisParam.annot\"),$vr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zvr=[0,[17,0,0],r(z)],Qvr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],r2r=r(Xr),e2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],n2r=r(tr),t2r=r(Z0),u2r=r(nr),i2r=[0,[17,0,0],r(z)],f2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],x2r=[0,[15,0],r(N0)],o2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],a2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],c2r=[0,[17,0,[12,41,0]],r(d0)],s2r=[0,[15,0],r(N0)],v2r=r(Yr),l2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],b2r=r(\"Flow_ast.Type.Function.RestParam.argument\"),p2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],m2r=[0,[17,0,0],r(z)],_2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],y2r=r(Xr),h2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d2r=r(tr),k2r=r(Z0),w2r=r(nr),E2r=[0,[17,0,0],r(z)],S2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],g2r=[0,[15,0],r(N0)],F2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],T2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],O2r=[0,[17,0,[12,41,0]],r(d0)],I2r=[0,[15,0],r(N0)],A2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],N2r=r(\"Flow_ast.Type.Function.Param.name\"),C2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P2r=r(tr),D2r=r(Z0),L2r=r(nr),R2r=[0,[17,0,0],r(z)],j2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],G2r=r(Qc),M2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B2r=[0,[17,0,0],r(z)],q2r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],U2r=r(qu),H2r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],X2r=[0,[9,0,0],r(An)],Y2r=[0,[17,0,0],r(z)],V2r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],z2r=[0,[15,0],r(N0)],K2r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],W2r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],J2r=[0,[17,0,[12,41,0]],r(d0)],$2r=[0,[15,0],r(N0)],Z2r=r(Yr),Q2r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rlr=r(\"Flow_ast.ComputedKey.expression\"),elr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nlr=[0,[17,0,0],r(z)],tlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ulr=r(Xr),ilr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],flr=r(tr),xlr=r(Z0),olr=r(nr),alr=[0,[17,0,0],r(z)],clr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],slr=[0,[15,0],r(N0)],vlr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],llr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],blr=[0,[17,0,[12,41,0]],r(d0)],plr=[0,[15,0],r(N0)],mlr=r(Yr),_lr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],ylr=r(\"Flow_ast.Variance.kind\"),hlr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],dlr=[0,[17,0,0],r(z)],klr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],wlr=r(Xr),Elr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Slr=r(tr),glr=r(Z0),Flr=r(nr),Tlr=[0,[17,0,0],r(z)],Olr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],Ilr=[0,[15,0],r(N0)],Alr=r(\"Flow_ast.Variance.Minus\"),Nlr=r(\"Flow_ast.Variance.Plus\"),Clr=[0,[15,0],r(N0)],Plr=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],Dlr=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],Llr=[0,[17,0,[12,41,0]],r(d0)],Rlr=[0,[15,0],r(N0)],jlr=r(Yr),Glr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Mlr=r(\"Flow_ast.BooleanLiteral.value\"),Blr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],qlr=[0,[9,0,0],r(An)],Ulr=[0,[17,0,0],r(z)],Hlr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xlr=r(Xr),Ylr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Vlr=r(tr),zlr=r(Z0),Klr=r(nr),Wlr=[0,[17,0,0],r(z)],Jlr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],$lr=[0,[15,0],r(N0)],Zlr=r(Yr),Qlr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],rbr=r(\"Flow_ast.BigIntLiteral.approx_value\"),ebr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],nbr=[0,[8,[0,0,5],0,0,0],r(r8)],tbr=[0,[17,0,0],r(z)],ubr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],ibr=r(x1),fbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],xbr=[0,[3,0,0],r(Vt)],obr=[0,[17,0,0],r(z)],abr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],cbr=r(Xr),sbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],vbr=r(tr),lbr=r(Z0),bbr=r(nr),pbr=[0,[17,0,0],r(z)],mbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],_br=[0,[15,0],r(N0)],ybr=r(Yr),hbr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],dbr=r(\"Flow_ast.NumberLiteral.value\"),kbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],wbr=[0,[8,[0,0,5],0,0,0],r(r8)],Ebr=[0,[17,0,0],r(z)],Sbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],gbr=r(c7),Fbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Tbr=[0,[3,0,0],r(Vt)],Obr=[0,[17,0,0],r(z)],Ibr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Abr=r(Xr),Nbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Cbr=r(tr),Pbr=r(Z0),Dbr=r(nr),Lbr=[0,[17,0,0],r(z)],Rbr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],jbr=[0,[15,0],r(N0)],Gbr=r(Yr),Mbr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Bbr=r(\"Flow_ast.StringLiteral.value\"),qbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Ubr=[0,[3,0,0],r(Vt)],Hbr=[0,[17,0,0],r(z)],Xbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Ybr=r(c7),Vbr=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],zbr=[0,[3,0,0],r(Vt)],Kbr=[0,[17,0,0],r(z)],Wbr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Jbr=r(Xr),$br=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Zbr=r(tr),Qbr=r(Z0),r4r=r(nr),e4r=[0,[17,0,0],r(z)],n4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],t4r=[0,[15,0],r(N0)],u4r=r(\"Flow_ast.Literal.Null\"),i4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.String\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.String@ \")],f4r=[0,[3,0,0],r(Vt)],x4r=[0,[17,0,[12,41,0]],r(d0)],o4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.Boolean\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.Boolean@ \")],a4r=[0,[9,0,0],r(An)],c4r=[0,[17,0,[12,41,0]],r(d0)],s4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.Number\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.Number@ \")],v4r=[0,[8,[0,0,5],0,0,0],r(r8)],l4r=[0,[17,0,[12,41,0]],r(d0)],b4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.BigInt\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.BigInt@ \")],p4r=[0,[8,[0,0,5],0,0,0],r(r8)],m4r=[0,[17,0,[12,41,0]],r(d0)],_4r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"Flow_ast.Literal.RegExp\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>Flow_ast.Literal.RegExp@ \")],y4r=[0,[17,0,[12,41,0]],r(d0)],h4r=[0,[15,0],r(N0)],d4r=r(Yr),k4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],w4r=r(\"Flow_ast.Literal.value\"),E4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],S4r=[0,[17,0,0],r(z)],g4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],F4r=r(c7),T4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],O4r=[0,[3,0,0],r(Vt)],I4r=[0,[17,0,0],r(z)],A4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],N4r=r(Xr),C4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],P4r=r(tr),D4r=r(Z0),L4r=r(nr),R4r=[0,[17,0,0],r(z)],j4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],G4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],M4r=r(\"Flow_ast.Literal.RegExp.pattern\"),B4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],q4r=[0,[3,0,0],r(Vt)],U4r=[0,[17,0,0],r(z)],H4r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X4r=r(jX),Y4r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V4r=[0,[3,0,0],r(Vt)],z4r=[0,[17,0,0],r(z)],K4r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],W4r=[0,[15,0],r(N0)],J4r=[0,[15,0],r(N0)],$4r=r(Yr),Z4r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],Q4r=r(\"Flow_ast.PrivateName.name\"),r8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],e8r=[0,[3,0,0],r(Vt)],n8r=[0,[17,0,0],r(z)],t8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],u8r=r(Xr),i8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],f8r=r(tr),x8r=r(Z0),o8r=r(nr),a8r=[0,[17,0,0],r(z)],c8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],s8r=[0,[15,0],r(N0)],v8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],l8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],b8r=[0,[17,0,[12,41,0]],r(d0)],p8r=[0,[15,0],r(N0)],m8r=r(Yr),_8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],y8r=r(\"Flow_ast.Identifier.name\"),h8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],d8r=[0,[3,0,0],r(Vt)],k8r=[0,[17,0,0],r(z)],w8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],E8r=r(Xr),S8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],g8r=r(tr),F8r=r(Z0),T8r=r(nr),O8r=[0,[17,0,0],r(z)],I8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],A8r=[0,[15,0],r(N0)],N8r=[0,[12,40,[18,[1,[0,0,r(C)]],0]],r(Zr)],C8r=[0,[12,44,[17,[0,r(v),1,0],0]],r(zr)],P8r=[0,[17,0,[12,41,0]],r(d0)],D8r=[0,[15,0],r(N0)],L8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],R8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],j8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],G8r=r(\"Flow_ast.Syntax.leading\"),M8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],B8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],q8r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],U8r=[0,[17,0,0],r(z)],H8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],X8r=r(\"trailing\"),Y8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],V8r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,91,0]],r(Ye)],z8r=[0,[17,[0,r(Ce),0,0],[12,93,[17,0,0]]],r(Xe)],K8r=[0,[17,0,0],r(z)],W8r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],J8r=r(\"internal\"),$8r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],Z8r=[0,[17,0,0],r(z)],Q8r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],r3r=[0,[0,0,0]],e3r=[0,r(Su),21,2],n3r=[0,[0,0,0,0,0]],t3r=[0,r(Su),32,2],u3r=[0,[0,0,0,0,0]],i3r=[0,r(Su),43,2],f3r=[0,[0,[0,[0,0,0]],0,0,0,0]],x3r=[0,r(Su),70,2],o3r=[0,[0,0,0]],a3r=[0,r(Su),80,2],c3r=[0,[0,0,0]],s3r=[0,r(Su),90,2],v3r=[0,[0,0,0]],l3r=[0,r(Su),R7,2],b3r=[0,[0,0,0]],p3r=[0,r(Su),Xt,2],m3r=[0,[0,0,0,0,0,0,0]],_3r=[0,r(Su),br,2],y3r=[0,[0,0,0,0,0]],h3r=[0,r(Su),KH,2],d3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],k3r=[0,r(Su),485,2],w3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],E3r=[0,r(Su),BX,2],S3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],g3r=[0,r(Su),1460,2],F3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],T3r=[0,r(Su),1604,2],O3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],I3r=[0,r(Su),1689,2],A3r=[0,[0,0,0,0,0,0,0]],N3r=[0,r(Su),1705,2],C3r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],P3r=[0,r(Su),1828,2],D3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],L3r=[0,r(Su),1895,2],R3r=[0,[0,0,0,0,0]],j3r=[0,r(Su),1907,2],G3r=[0,[0,0,0]],M3r=[0,[0,0,0,0,0]],B3r=[0,[0,0,0,0,0]],q3r=[0,[0,[0,[0,0,0]],0,0,0,0]],U3r=[0,[0,0,0]],H3r=[0,[0,0,0]],X3r=[0,[0,0,0]],Y3r=[0,[0,0,0]],V3r=[0,[0,0,0,0,0,0,0]],z3r=[0,[0,0,0,0,0]],K3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],W3r=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],J3r=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],$3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],Z3r=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],Q3r=[0,[0,0,0,0,0,0,0]],r6r=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],e6r=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],n6r=[0,[0,0,0,0,0]],t6r=[0,1],u6r=[0,0],i6r=[0,2],f6r=[0,0],x6r=[0,1],o6r=[0,1],a6r=[0,1],c6r=[0,1],s6r=[0,1],v6r=[0,0,0],l6r=[0,0,0],b6r=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],p6r=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],m6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.LibFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.LibFile@ \")],_6r=[0,[3,0,0],r(Vt)],y6r=[0,[17,0,[12,41,0]],r(d0)],h6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.SourceFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.SourceFile@ \")],d6r=[0,[3,0,0],r(Vt)],k6r=[0,[17,0,[12,41,0]],r(d0)],w6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.JsonFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.JsonFile@ \")],E6r=[0,[3,0,0],r(Vt)],S6r=[0,[17,0,[12,41,0]],r(d0)],g6r=[0,[12,40,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(\"File_key.ResourceFile\"),[17,[0,r(v),1,0],0]]]],r(\"(@[<2>File_key.ResourceFile@ \")],F6r=[0,[3,0,0],r(Vt)],T6r=[0,[17,0,[12,41,0]],r(d0)],O6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],I6r=r(\"Loc.line\"),A6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],N6r=[0,[4,0,0,0,0],r(N2)],C6r=[0,[17,0,0],r(z)],P6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],D6r=r(I2),L6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],R6r=[0,[4,0,0,0,0],r(N2)],j6r=[0,[17,0,0],r(z)],G6r=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],M6r=[0,[15,0],r(N0)],B6r=[0,[18,[1,[0,[11,r(h),0],r(h)]],[11,r(kr),0]],r(dr)],q6r=r(\"Loc.source\"),U6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],H6r=r(tr),X6r=r(Z0),Y6r=r(nr),V6r=[0,[17,0,0],r(z)],z6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],K6r=r(g7),W6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],J6r=[0,[17,0,0],r(z)],$6r=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Z6r=r(\"_end\"),Q6r=[0,[18,[1,[0,0,r(C)]],[2,0,[11,r(J),[17,[0,r(v),1,0],0]]]],r(W)],rpr=[0,[17,0,0],r(z)],epr=[0,[17,[0,r(v),1,0],[12,br,[17,0,0]]],r(wr)],npr=[0,r(Rx),r(co),r(Ea),r(ca),r(Vo),r(Hf),r(Kx),r(lf),r(xf),r(Gx),r(Tn),r(Ha),r(A7),r(Tf),r(lx),r(po),r(sx),r(Qi),r(Ef),r(Ua),r(oa),r(qa),r(mf),r(tc),r(Df),r(ga),r(tf),r(kf),r(Ga),r(Uf),r(gx),r(fx),r(go),r(hf),r(_o),r($f),r(xa),r($o),r(N7),r(I7),r(xx),r(Ta),r(ja),r(zf),r(na),r(so),r(Fo),r(wx),r(Ra),r(ho),r(v7),r(la),r(ra),r(sa),r(qx),r(Ho),r(Bx),r(jf),r(If),r(Za),r(jx),r(Af),r(vo),r(Sa),r(sf),r(Qa),r(ua),r(ea),r(Nu),r(Tx),r(eo),r(Sf),r(Bf),r(ka),r(Mx),r(Fc),r(Xa),r(La),r(yx),r(ic),r(li),r(So),r(lo),r(Tc),r(Ia),r(hx),r(Ix),r(gc),r(Lf),r(nf),r(tx),r(_a),r(Go),r(kx),r(Ba),r(vf),r(ba),r(mx),r(G7),r(Wa),r(bc),r(Vf),r(yi),r(pf),r(ia),r(Ya),r(Uu),r(Ec),r(bo),r(Hx),r(Ca),r(Fx),r(Aa),r(e7),r(af),r(ko),r(ro),r(za),r(Rf),r(ac),r(ya),r(Wo),r(Qf),r(of),r(ff),r(Ax),r(pc),r(Ao),r(jo),r(io),r(Ox),r(ao),r(Nx),r(rf),r(rc),r(Ko),r(Da),r(wc),r(Jo),r(vx),r(hc),r(Px),r(ha),r(Dx),r(nx),r(zx),r(Pa),r(Ux),r(Wx),r(_c),r(xr),r(mc),r(Of),r(yf),r(bx),r(qo),r(Lx),r(gf),r(nc),r(Kf),r(da),r(ma),r(ex),r(Xf),r(uf),r(Nf),r(ix),r(oo),r(Zo),r(fc),r(lc),r(Xo),r(Va),r(df),r(Mo),r(Qo),r(mi),r(rx),r(Zf),r(zo),r(bf),r(va),r(vc),r(kc),r(Wf),r(Yf),r(Bo),r(Cf),r(ta),r(aa),r(sc),r(Zx),r(wa),r(Yo),r($a),r(r7),r(De),r(pa),r(px),r(Ju),r(cx),r(Mf),r(Sc),r(_f),r(Vx),r(Sx),r(Na),r(yc),r(D7),r(yo),r(Uo),r(Jf),r($x),r(wo),r(Pf),r(Io),r(F7),r(no),r(fa),r(xo),r(_x),r(Jx),r(Xx),r(Ka),r(Ro),r(qf),r(Oa),r(ax),r(Ff),r(Cx),r(uo),r(Ja),r(wf),r(No),r(ec),r(Po),r(To),r(Gf),r(oc),r(ux),r(dc),r(cu),r(Oo),r(to),r(Yx),r(Eu)],tpr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],upr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],ipr=r(lV),fpr=r(jY),xpr=r(PX),opr=r(zY),apr=r(S3),cpr=r(ZH),spr=r(cv),vpr=r(OU),lpr=r(vY),bpr=r(_X),ppr=r(sX),mpr=r(xs),_pr=r(Fa),ypr=r(UU),hpr=r(WH),dpr=r(Qu),kpr=r(XY),wpr=r(OH),Epr=r(I6),Spr=r(jd),gpr=r(R2),Fpr=r(j2),Tpr=r(WU),Opr=r(BU),Ipr=r(nY),Apr=r(xX),Npr=r(lH),Cpr=r(hX),Ppr=r(xU),Dpr=r(zX),Lpr=r(aX),Rpr=r(bH),jpr=r(wH),Gpr=r(XH),Mpr=r(rV),Bpr=r(AU),qpr=r(tX),Upr=r(\"Set.remove_min_elt\"),Hpr=[0,[12,59,[17,[0,r(v),1,0],0]],r(a0)],Xpr=[0,[18,[1,[0,[11,r(h),0],r(h)]],[12,ts,0]],r(\"@[<2>{\")],Ypr=[0,[12,32,0],r(pi)],Vpr=[0,[12,32,0],r(pi)],zpr=[0,[17,[0,r(Ce),0,0],[12,br,[17,0,0]]],r(\"@,}@]\")],Kpr=[0,r(\"src/hack_forked/utils/collections/flow_set.ml\"),363,14],Wpr=[0,[0,36,37],[0,48,58],[0,65,91],[0,95,96],[0,97,ts],[0,qg,pg],[0,Ai,Yg],[0,lS,hk],[0,md,nw],[0,rt,xT],[0,y6,Dw],[0,wt,706],[0,rX,722],[0,736,741],[0,748,749],[0,750,751],[0,768,885],[0,886,888],[0,890,894],[0,895,896],[0,902,907],[0,908,ZX],[0,910,930],[0,UX,1014],[0,1015,1154],[0,1155,1160],[0,1162,CU],[0,1329,1367],[0,1369,1370],[0,1376,1417],[0,1425,1470],[0,1471,1472],[0,1473,1475],[0,1476,1478],[0,1479,1480],[0,1488,1515],[0,1519,1523],[0,1552,1563],[0,1568,1642],[0,1646,1748],[0,1749,1757],[0,1759,1769],[0,1770,1789],[0,1791,1792],[0,1808,1867],[0,1869,1970],[0,1984,2038],[0,2042,2043],[0,2045,2046],[0,Hh,2094],[0,2112,2140],[0,2144,2155],[0,2208,2229],[0,2230,2238],[0,2259,2274],[0,2275,2404],[0,2406,2416],[0,2417,2436],[0,2437,2445],[0,2447,2449],[0,2451,2473],[0,2474,2481],[0,2482,2483],[0,2486,2490],[0,2492,2501],[0,2503,2505],[0,2507,2511],[0,2519,2520],[0,2524,2526],[0,2527,2532],[0,2534,2546],[0,2556,2557],[0,2558,2559],[0,2561,2564],[0,2565,2571],[0,2575,2577],[0,2579,2601],[0,2602,2609],[0,2610,2612],[0,2613,2615],[0,2616,2618],[0,2620,2621],[0,2622,2627],[0,2631,2633],[0,2635,2638],[0,2641,2642],[0,2649,2653],[0,2654,2655],[0,2662,2678],[0,2689,2692],[0,2693,2702],[0,2703,2706],[0,2707,2729],[0,2730,2737],[0,2738,2740],[0,2741,2746],[0,2748,2758],[0,2759,2762],[0,2763,2766],[0,2768,2769],[0,2784,2788],[0,2790,2800],[0,2809,2816],[0,2817,2820],[0,2821,2829],[0,2831,2833],[0,2835,2857],[0,2858,2865],[0,2866,2868],[0,2869,2874],[0,2876,2885],[0,2887,2889],[0,2891,2894],[0,2902,2904],[0,2908,2910],[0,2911,2916],[0,2918,2928],[0,2929,2930],[0,2946,2948],[0,2949,2955],[0,2958,2961],[0,2962,2966],[0,2969,2971],[0,2972,2973],[0,2974,2976],[0,2979,2981],[0,2984,2987],[0,2990,3002],[0,3006,3011],[0,3014,3017],[0,3018,3022],[0,3024,3025],[0,3031,3032],[0,3046,3056],[0,3072,3085],[0,3086,3089],[0,3090,3113],[0,3114,3130],[0,3133,3141],[0,3142,3145],[0,3146,3150],[0,3157,3159],[0,3160,3163],[0,3168,3172],[0,3174,3184],[0,3200,3204],[0,3205,3213],[0,3214,3217],[0,3218,3241],[0,3242,3252],[0,3253,3258],[0,3260,3269],[0,3270,3273],[0,3274,3278],[0,3285,3287],[0,3294,3295],[0,3296,3300],[0,3302,3312],[0,3313,3315],[0,3328,3332],[0,3333,3341],[0,3342,3345],[0,3346,3397],[0,3398,3401],[0,3402,3407],[0,3412,3416],[0,3423,3428],[0,3430,3440],[0,3450,3456],[0,3458,3460],[0,3461,3479],[0,3482,3506],[0,3507,3516],[0,3517,3518],[0,3520,3527],[0,3530,3531],[0,3535,3541],[0,3542,3543],[0,3544,3552],[0,3558,3568],[0,3570,3572],[0,3585,3643],[0,3648,3663],[0,3664,3674],[0,3713,3715],[0,3716,3717],[0,3718,3723],[0,3724,3748],[0,3749,3750],[0,3751,3774],[0,3776,3781],[0,3782,3783],[0,3784,3790],[0,3792,3802],[0,3804,3808],[0,3840,3841],[0,3864,3866],[0,3872,3882],[0,3893,3894],[0,3895,3896],[0,3897,3898],[0,3902,3912],[0,3913,3949],[0,3953,3973],[0,3974,3992],[0,3993,4029],[0,4038,4039],[0,vX,4170],[0,4176,4254],[0,4256,4294],[0,4295,4296],[0,4301,4302],[0,4304,4347],[0,4348,4681],[0,4682,4686],[0,4688,4695],[0,4696,4697],[0,4698,4702],[0,4704,4745],[0,4746,4750],[0,4752,4785],[0,4786,4790],[0,4792,4799],[0,4800,4801],[0,4802,4806],[0,4808,4823],[0,4824,4881],[0,4882,4886],[0,4888,4955],[0,4957,4960],[0,4969,4978],[0,4992,5008],[0,5024,5110],[0,5112,5118],[0,5121,5741],[0,5743,Ev],[0,5761,5787],[0,5792,5867],[0,5870,5881],[0,5888,5901],[0,5902,5909],[0,5920,5941],[0,5952,5972],[0,5984,5997],[0,5998,6001],[0,6002,6004],[0,6016,6100],[0,6103,6104],[0,6108,6110],[0,6112,6122],[0,6155,6158],[0,6160,6170],[0,6176,6265],[0,6272,6315],[0,6320,6390],[0,6400,6431],[0,6432,6444],[0,6448,6460],[0,6470,6510],[0,6512,6517],[0,6528,6572],[0,6576,6602],[0,6608,6619],[0,6656,6684],[0,6688,6751],[0,6752,6781],[0,6783,6794],[0,6800,6810],[0,6823,6824],[0,6832,6846],[0,6912,6988],[0,6992,7002],[0,7019,7028],[0,7040,7156],[0,7168,7224],[0,7232,7242],[0,7245,7294],[0,7296,7305],[0,7312,7355],[0,7357,7360],[0,7376,7379],[0,7380,7419],[0,7424,7674],[0,7675,7958],[0,7960,7966],[0,7968,8006],[0,8008,8014],[0,8016,8024],[0,8025,8026],[0,8027,8028],[0,8029,8030],[0,8031,8062],[0,8064,8117],[0,8118,8125],[0,8126,8127],[0,8130,8133],[0,8134,8141],[0,8144,8148],[0,8150,8156],[0,8160,8173],[0,8178,8181],[0,8182,8189],[0,kY,vU],[0,8255,8257],[0,8276,8277],[0,ep,8306],[0,O3,8320],[0,8336,8349],[0,8400,8413],[0,8417,8418],[0,8421,8433],[0,x3,8451],[0,R3,8456],[0,8458,g4],[0,m6,8470],[0,iU,8478],[0,t8,$3],[0,Q8,sp],[0,P8,N8],[0,8490,8506],[0,8508,8512],[0,8517,8522],[0,s8,8527],[0,8544,8585],[0,11264,11311],[0,11312,11359],[0,11360,11493],[0,11499,11508],[0,11520,G4],[0,B8,11560],[0,N3,11566],[0,11568,11624],[0,p4,11632],[0,P6,11671],[0,11680,j4],[0,11688,z8],[0,11696,o8],[0,11704,K8],[0,11712,z6],[0,11720,j8],[0,11728,F6],[0,11736,11743],[0,11744,11776],[0,12293,12296],[0,12321,T3],[0,12337,12342],[0,12344,12349],[0,12353,12439],[0,12441,E3],[0,12449,q4],[0,12540,12544],[0,12549,E8],[0,12593,12687],[0,12704,12731],[0,12784,12800],[0,13312,19894],[0,19968,40944],[0,40960,42125],[0,42192,42238],[0,42240,42509],[0,42512,42540],[0,42560,42608],[0,42612,U3],[0,42623,42738],[0,42775,42784],[0,42786,42889],[0,42891,42944],[0,42946,42951],[0,F8,43048],[0,43072,43124],[0,43136,43206],[0,43216,43226],[0,43232,43256],[0,n3,_8],[0,43261,43310],[0,43312,43348],[0,43360,43389],[0,43392,43457],[0,k8,43482],[0,43488,v6],[0,43520,43575],[0,43584,43598],[0,43600,43610],[0,43616,43639],[0,lp,43715],[0,43739,43742],[0,43744,43760],[0,43762,43767],[0,43777,43783],[0,43785,43791],[0,43793,43799],[0,43808,k6],[0,43816,H3],[0,43824,av],[0,43868,o3],[0,43888,44011],[0,44012,44014],[0,44016,44026],[0,44032,55204],[0,55216,55239],[0,55243,55292],[0,63744,64110],[0,64112,64218],[0,64256,64263],[0,64275,64280],[0,e3,ip],[0,64298,Qn],[0,64312,z3],[0,L6,R4],[0,64320,q3],[0,64323,D8],[0,64326,64434],[0,64467,64830],[0,64848,64912],[0,64914,64968],[0,65008,65020],[0,65024,65040],[0,65056,65072],[0,65075,65077],[0,65101,65104],[0,65136,t3],[0,65142,65277],[0,65296,65306],[0,65313,65339],[0,65343,Q4],[0,65345,65371],[0,65382,65471],[0,65474,65480],[0,65482,65488],[0,65490,65496],[0,65498,65501],[0,fw,rp],[0,65549,$8],[0,65576,z4],[0,65596,S6],[0,65599,65614],[0,65616,65630],[0,65664,65787],[0,65856,65909],[0,66045,66046],[0,66176,66205],[0,66208,66257],[0,66272,66273],[0,66304,66336],[0,66349,66379],[0,66384,66427],[0,66432,66462],[0,66464,66500],[0,66504,Z3],[0,66513,66518],[0,66560,66718],[0,66720,66730],[0,66736,66772],[0,66776,66812],[0,66816,66856],[0,66864,66916],[0,67072,67383],[0,67392,67414],[0,67424,67432],[0,67584,67590],[0,op,J4],[0,67594,p8],[0,67639,67641],[0,M6,67645],[0,67647,67670],[0,67680,67703],[0,67712,67743],[0,67808,X8],[0,67828,67830],[0,67840,67862],[0,67872,67898],[0,67968,68024],[0,68030,68032],[0,S7,68100],[0,68101,68103],[0,68108,b4],[0,68117,Z8],[0,68121,68150],[0,68152,68155],[0,68159,68160],[0,68192,68221],[0,68224,68253],[0,68288,J6],[0,68297,68327],[0,68352,68406],[0,68416,68438],[0,68448,68467],[0,68480,68498],[0,68608,68681],[0,68736,68787],[0,68800,68851],[0,68864,68904],[0,68912,68922],[0,69376,69405],[0,J8,69416],[0,69424,69457],[0,69600,69623],[0,69632,69703],[0,69734,B3],[0,69759,69819],[0,69840,69865],[0,69872,69882],[0,69888,69941],[0,69942,69952],[0,m4,F3],[0,69968,70004],[0,X6,70007],[0,70016,70085],[0,70089,70093],[0,70096,h8],[0,i3,70109],[0,70144,A8],[0,70163,70200],[0,70206,70207],[0,70272,y3],[0,I8,fp],[0,70282,O8],[0,70287,c8],[0,70303,70313],[0,70320,70379],[0,70384,70394],[0,70400,u6],[0,70405,70413],[0,70415,70417],[0,70419,f3],[0,70442,a8],[0,70450,C4],[0,70453,70458],[0,70459,70469],[0,70471,70473],[0,70475,70478],[0,j6,70481],[0,70487,70488],[0,70493,70500],[0,70502,70509],[0,70512,70517],[0,70656,70731],[0,70736,70746],[0,W6,70752],[0,70784,Q3],[0,Z6,70856],[0,70864,70874],[0,71040,71094],[0,71096,71105],[0,71128,71134],[0,71168,71233],[0,u8,71237],[0,71248,71258],[0,71296,71353],[0,71360,71370],[0,71424,71451],[0,71453,71468],[0,71472,71482],[0,71680,71739],[0,71840,71914],[0,71935,71936],[0,72096,72104],[0,72106,72152],[0,72154,up],[0,p3,72165],[0,M8,72255],[0,72263,72264],[0,u3,72346],[0,P4,72350],[0,72384,72441],[0,72704,W3],[0,72714,72759],[0,72760,72769],[0,72784,72794],[0,72818,72848],[0,72850,72872],[0,72873,72887],[0,72960,D3],[0,72968,h4],[0,72971,73015],[0,73018,73019],[0,73020,73022],[0,73023,73032],[0,73040,73050],[0,73056,R6],[0,73063,h3],[0,73066,73103],[0,73104,73106],[0,73107,73113],[0,73120,73130],[0,73440,73463],[0,73728,74650],[0,74752,74863],[0,74880,75076],[0,77824,78895],[0,82944,83527],[0,92160,92729],[0,92736,92767],[0,92768,92778],[0,92880,92910],[0,92912,92917],[0,92928,92983],[0,92992,92996],[0,93008,93018],[0,93027,93048],[0,93053,93072],[0,93760,93824],[0,93952,94027],[0,Z4,94088],[0,94095,94112],[0,94176,b6],[0,h6,94180],[0,94208,100344],[0,100352,101107],[0,110592,110879],[0,110928,110931],[0,110948,110952],[0,110960,111356],[0,113664,113771],[0,113776,113789],[0,113792,113801],[0,113808,113818],[0,113821,113823],[0,119141,119146],[0,119149,119155],[0,119163,119171],[0,119173,119180],[0,119210,119214],[0,119362,119365],[0,119808,T6],[0,119894,M3],[0,119966,119968],[0,d3,119971],[0,119973,119975],[0,119977,Q6],[0,119982,l8],[0,l4,G6],[0,119997,I3],[0,120005,L4],[0,120071,120075],[0,120077,N6],[0,120086,vp],[0,120094,C3],[0,120123,r6],[0,120128,B4],[0,G3,120135],[0,120138,D6],[0,120146,120486],[0,120488,D4],[0,120514,V3],[0,120540,c6],[0,120572,X4],[0,120598,c3],[0,120630,V4],[0,120656,w6],[0,120688,v4],[0,120714,l6],[0,120746,k3],[0,120772,120780],[0,120782,120832],[0,121344,121399],[0,121403,121453],[0,121461,121462],[0,121476,121477],[0,121499,121504],[0,121505,121520],[0,122880,122887],[0,122888,122905],[0,122907,122914],[0,122915,122917],[0,122918,122923],[0,123136,123181],[0,123184,123198],[0,123200,123210],[0,ap,123215],[0,123584,123642],[0,124928,125125],[0,125136,125143],[0,125184,125260],[0,125264,125274],[0,126464,C6],[0,126469,J3],[0,126497,a3],[0,g8,126501],[0,e8,m8],[0,126505,s6],[0,126516,f8],[0,_6,x8],[0,w3,126524],[0,K3,126531],[0,L8,U6],[0,S8,n8],[0,s3,M4],[0,126541,F4],[0,126545,g6],[0,d8,126549],[0,i8,E4],[0,fn,B6],[0,S4,G8],[0,q6,s4],[0,t6,O4],[0,126561,xp],[0,V6,126565],[0,126567,l3],[0,126572,x6],[0,126580,W8],[0,126585,L3],[0,$4,w8],[0,126592,V8],[0,126603,126620],[0,126625,j3],[0,126629,r3],[0,126635,126652],[0,131072,173783],[0,173824,177973],[0,177984,178206],[0,178208,183970],[0,183984,191457],[0,194560,195102],[0,917760,918e3]],Jpr=r(O2),$pr=r(dv),Zpr=r(Tv),Qpr=r(K4),r5r=r(\"Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead.\"),e5r=r(\"Enum members are separated with `,`. Replace `;` with `,`.\"),n5r=r(\"Unexpected reserved word\"),t5r=r(\"Unexpected reserved type\"),u5r=r(\"Unexpected `super` outside of a class method\"),i5r=r(\"`super()` is only valid in a class constructor\"),f5r=r(\"Unexpected end of input\"),x5r=r(\"Unexpected variance sigil\"),o5r=r(\"Unexpected static modifier\"),a5r=r(\"Unexpected proto modifier\"),c5r=r(\"Type aliases are not allowed in untyped mode\"),s5r=r(\"Opaque type aliases are not allowed in untyped mode\"),v5r=r(\"Type annotations are not allowed in untyped mode\"),l5r=r(\"Type declarations are not allowed in untyped mode\"),b5r=r(\"Type imports are not allowed in untyped mode\"),p5r=r(\"Type exports are not allowed in untyped mode\"),m5r=r(\"Interfaces are not allowed in untyped mode\"),_5r=r(\"Spreading a type is only allowed inside an object type\"),y5r=r(\"Explicit inexact syntax must come at the end of an object type\"),h5r=r(\"Explicit inexact syntax cannot appear inside an explicit exact object type\"),d5r=r(\"Explicit inexact syntax can only appear inside an object type\"),k5r=r(\"Illegal newline after throw\"),w5r=r(\"A bigint literal must be an integer\"),E5r=r(\"A bigint literal cannot use exponential notation\"),S5r=r(\"Invalid regular expression\"),g5r=r(\"Invalid regular expression: missing /\"),F5r=r(\"Invalid left-hand side in assignment\"),T5r=r(\"Invalid left-hand side in exponentiation expression\"),O5r=r(\"Invalid left-hand side in for-in\"),I5r=r(\"Invalid left-hand side in for-of\"),A5r=r(\"Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`.\"),N5r=r(\"found an expression instead\"),C5r=r(\"Expected an object pattern, array pattern, or an identifier but \"),P5r=r(\"More than one default clause in switch statement\"),D5r=r(\"Missing catch or finally after try\"),L5r=r(\"Illegal continue statement\"),R5r=r(\"Illegal break statement\"),j5r=r(\"Illegal return statement\"),G5r=r(\"Illegal Unicode escape\"),M5r=r(\"Strict mode code may not include a with statement\"),B5r=r(\"Catch variable may not be eval or arguments in strict mode\"),q5r=r(\"Variable name may not be eval or arguments in strict mode\"),U5r=r(\"Parameter name eval or arguments is not allowed in strict mode\"),H5r=r(\"Strict mode function may not have duplicate parameter names\"),X5r=r('Illegal \"use strict\" directive in function with non-simple parameter list'),Y5r=r(\"Function name may not be eval or arguments in strict mode\"),V5r=r(\"Octal literals are not allowed in strict mode.\"),z5r=r(\"Number literals with leading zeros are not allowed in strict mode.\"),K5r=r(\"Delete of an unqualified identifier in strict mode.\"),W5r=r(\"Duplicate data property in object literal not allowed in strict mode\"),J5r=r(\"Object literal may not have data and accessor property with the same name\"),$5r=r(\"Object literal may not have multiple get/set accessors with the same name\"),Z5r=r(\"`typeof` can only be used to get the type of variables.\"),Q5r=r(\"Assignment to eval or arguments is not allowed in strict mode\"),rmr=r(\"Postfix increment/decrement may not have eval or arguments operand in strict mode\"),emr=r(\"Prefix increment/decrement may not have eval or arguments operand in strict mode\"),nmr=r(\"Use of future reserved word in strict mode\"),tmr=r(\"JSX attributes must only be assigned a non-empty expression\"),umr=r(\"JSX value should be either an expression or a quoted JSX text\"),imr=r(\"Const must be initialized\"),fmr=r(\"Destructuring assignment must be initialized\"),xmr=r(\"Illegal newline before arrow\"),omr=r(aF),amr=r(\"Async functions can only be declared at top level or \"),cmr=r(aF),smr=r(\"Generators can only be declared at top level or \"),vmr=r(\"elements must be wrapped in an enclosing parent tag\"),lmr=r(\"Unexpected token <. Remember, adjacent JSX \"),bmr=r(\"Rest parameter must be final parameter of an argument list\"),pmr=r(\"Rest element must be final element of an array pattern\"),mmr=r(\"Rest property must be final property of an object pattern\"),_mr=r(\"async is an implementation detail and isn't necessary for your declare function statement. It is sufficient for your declare function to just have a Promise return type.\"),ymr=r(\"`declare` modifier can only appear on class fields.\"),hmr=r(\"Unexpected token `=`. Initializers are not allowed in a `declare`.\"),dmr=r(\"Unexpected token `=`. Initializers are not allowed in a `declare opaque type`.\"),kmr=r(\"`declare export let` is not supported. Use `declare export var` instead.\"),wmr=r(\"`declare export const` is not supported. Use `declare export var` instead.\"),Emr=r(\"`declare export type` is not supported. Use `export type` instead.\"),Smr=r(\"`declare export interface` is not supported. Use `export interface` instead.\"),gmr=r(\"`export * as` is an early-stage proposal and is not enabled by default. To enable support in the parser, use the `esproposal_export_star_as` option\"),Fmr=r(\"Found a decorator in an unsupported position.\"),Tmr=r(\"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\"),Omr=r(\"Duplicate `declare module.exports` statement!\"),Imr=r(\"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module xor they are a CommonJS module.\"),Amr=r(\"Getter should have zero parameters\"),Nmr=r(\"Setter should have exactly one parameter\"),Cmr=r(\"`import type` or `import typeof`!\"),Pmr=r(\"Imports within a `declare module` body must always be \"),Dmr=r(\"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\"),Lmr=r(\"Missing comma between import specifiers\"),Rmr=r(\"Missing comma between export specifiers\"),jmr=r(\"Malformed unicode\"),Gmr=r(\"Classes may only have one constructor\"),Mmr=r(\"Private fields may not be deleted.\"),Bmr=r(\"Private fields can only be referenced from within a class.\"),qmr=r(\"You may not access a private field through the `super` keyword.\"),Umr=r(\"Yield expression not allowed in formal parameter\"),Hmr=r(\"`await` is an invalid identifier in async functions\"),Xmr=r(\"`yield` is an invalid identifier in generators\"),Ymr=r(\"either a `let` binding pattern, or a member expression.\"),Vmr=r(\"`let [` is ambiguous in this position because it is \"),zmr=r(\"Literals cannot be used as shorthand properties.\"),Kmr=r(\"Computed properties must have a value.\"),Wmr=r(\"Object pattern can't contain methods\"),Jmr=r(\"A trailing comma is not permitted after the rest element\"),$mr=r(\"An optional chain may not be used in a `new` expression.\"),Zmr=r(\"Template literals may not be used in an optional chain.\"),Qmr=r(\"Unexpected whitespace between `#` and identifier\"),r9r=r(\"A type annotation is required for the `this` parameter.\"),e9r=r(\"The `this` parameter must be the first function parameter.\"),n9r=r(\"The `this` parameter cannot be optional.\"),t9r=r(\"A getter cannot have a `this` parameter.\"),u9r=r(\"A setter cannot have a `this` parameter.\"),i9r=r(\"Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared.\"),f9r=r(\"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\"),x9r=[0,[11,r(\"Boolean enum members need to be initialized. Use either `\"),[2,0,[11,r(\" = true,` or `\"),[2,0,[11,r(\" = false,` in enum `\"),[2,0,[11,r(Es),0]]]]]]],r(\"Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`.\")],o9r=[0,[11,r(\"Enum member names need to be unique, but the name `\"),[2,0,[11,r(\"` has already been used before in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`.\")],a9r=[0,[11,r(IU),[2,0,[11,r(\"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\"),0]]],r(\"Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\")],c9r=[0,[11,r(\"Use one of `boolean`, `number`, `string`, or `symbol` in enum `\"),[2,0,[11,r(Es),0]]],r(\"Use one of `boolean`, `number`, `string`, or `symbol` in enum `%s`.\")],s9r=[0,[11,r(\"Enum type `\"),[2,0,[11,r(\"` is not valid. \"),[2,0,0]]]],r(\"Enum type `%s` is not valid. %s\")],v9r=[0,[11,r(\"Supplied enum type is not valid. \"),[2,0,0]],r(\"Supplied enum type is not valid. %s\")],l9r=[0,[11,r(\"Enum member names and initializers are separated with `=`. Replace `\"),[2,0,[11,r(\":` with `\"),[2,0,[11,r(\" =`.\"),0]]]]],r(\"Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`.\")],b9r=[0,[11,r(\"Symbol enum members cannot be initialized. Use `\"),[2,0,[11,r(\",` in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"Symbol enum members cannot be initialized. Use `%s,` in enum `%s`.\")],p9r=[0,[11,r(IU),[2,0,[11,r(\"` has type `\"),[2,0,[11,r(\"`, so the initializer of `\"),[2,0,[11,r(\"` needs to be a \"),[2,0,[11,r(\" literal.\"),0]]]]]]]]],r(\"Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal.\")],m9r=[0,[11,r(\"The enum member initializer for `\"),[2,0,[11,r(\"` needs to be a literal (either a boolean, number, or string) in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`.\")],_9r=[0,[11,r(\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `\"),[2,0,[11,r(\"`, consider using `\"),[2,0,[11,r(\"`, in enum `\"),[2,0,[11,r(Es),0]]]]]]],r(\"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`.\")],y9r=r(\"The `...` must come at the end of the enum body. Remove the trailing comma.\"),h9r=r(\"The `...` must come after all enum members. Move it to the end of the enum body.\"),d9r=[0,[11,r(\"Number enum members need to be initialized, e.g. `\"),[2,0,[11,r(\" = 1,` in enum `\"),[2,0,[11,r(Es),0]]]]],r(\"Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`.\")],k9r=[0,[11,r(\"String enum members need to consistently either all use initializers, or use no initializers, in enum \"),[2,0,[12,46,0]]],r(\"String enum members need to consistently either all use initializers, or use no initializers, in enum %s.\")],w9r=[0,[11,r(UH),[2,0,0]],r(\"Unexpected %s\")],E9r=[0,[11,r(UH),[2,0,[11,r(\", expected \"),[2,0,0]]]],r(\"Unexpected %s, expected %s\")],S9r=[0,[11,r(bV),[2,0,[11,r(\"`. Did you mean `\"),[2,0,[11,r(\"`?\"),0]]]]],r(\"Unexpected token `%s`. Did you mean `%s`?\")],g9r=r(P3),F9r=r(\"Invalid flags supplied to RegExp constructor '\"),T9r=r(\"Remove the period.\"),O9r=r(\"Indexed access uses bracket notation.\"),I9r=[0,[11,r(\"Invalid indexed access. \"),[2,0,[11,r(\" Use the format `T[K]`.\"),0]]],r(\"Invalid indexed access. %s Use the format `T[K]`.\")],A9r=r(P3),N9r=r(\"Undefined label '\"),C9r=r(\"' has already been declared\"),P9r=r(\" '\"),D9r=r(\"Expected corresponding JSX closing tag for \"),L9r=r(aF),R9r=r(\"In strict mode code, functions can only be declared at top level or \"),j9r=r(\"inside a block, or as the body of an if statement.\"),G9r=r(\"In non-strict mode code, functions can only be declared at top level, \"),M9r=[0,[11,r(\"Duplicate export for `\"),[2,0,[12,96,0]]],r(\"Duplicate export for `%s`\")],B9r=r(\"` is declared more than once.\"),q9r=r(\"Private fields may only be declared once. `#\"),U9r=r(\"static \"),H9r=r(C),X9r=r(YY),Y9r=r(\"methods\"),V9r=r(\"fields\"),z9r=r(Es),K9r=r(\" named `\"),W9r=r(\"Classes may not have \"),J9r=r(\"` has not been declared.\"),$9r=r(\"Private fields must be declared before they can be referenced. `#\"),Z9r=[0,[11,r(bV),[2,0,[11,r(\"`. Parentheses are required to combine `??` with `&&` or `||` expressions.\"),0]]],r(\"Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions.\")],Q9r=r(\"Parse_error.Error\"),r_r=[0,r(\"src/third-party/sedlex/flow_sedlexing.ml\"),s1,4],e_r=r(\"Flow_sedlexing.MalFormed\"),n_r=[0,1,0],t_r=[0,0,[0,1,0],[0,1,0]],u_r=r(YU),i_r=r(\"end of input\"),f_r=r(rl),x_r=r(\"template literal part\"),o_r=r(rl),a_r=r(MH),c_r=r(YU),s_r=r(rl),v_r=r(dv),l_r=r(rl),b_r=r(x1),p_r=r(rl),m_r=r(Tv),__r=r(\"an\"),y_r=r(yi),h_r=r(pi),d_r=[0,[11,r(\"token `\"),[2,0,[12,96,0]]],r(\"token `%s`\")],k_r=r(hH),w_r=r(b3),E_r=r(\"{|\"),S_r=r(\"|}\"),g_r=r(HX),F_r=r(Z0),T_r=r(\"[\"),O_r=r(\"]\"),I_r=r(VY),A_r=r(\",\"),N_r=r(Lo),C_r=r(\"=>\"),P_r=r(\"...\"),D_r=r(gX),L_r=r(YY),R_r=r(M2),j_r=r(A3),G_r=r(R2),M_r=r(j2),B_r=r(Ju),q_r=r(D7),U_r=r(i1),H_r=r(F7),X_r=r(d4),Y_r=r(U2),V_r=r(K6),z_r=r(C8),K_r=r(D2),W_r=r(G2),J_r=r(fs),$_r=r(Ci),Z_r=r(Gi),Q_r=r(A7),ryr=r(d6),eyr=r(o6),nyr=r(N7),tyr=r(_i),uyr=r(_4),iyr=r(q8),fyr=r(np),xyr=r(q2),oyr=r(P7),ayr=r(nu),cyr=r(U4),syr=r(u1),vyr=r(J2),lyr=r(rs),byr=r(es),pyr=r(b8),myr=r(_3),_yr=r(Uu),yyr=r(yv),hyr=r(ws),dyr=r(e7),kyr=r(y4),wyr=r(k4),Eyr=r(a6),Syr=r(E6),gyr=r(Eu),Fyr=r(I7),Tyr=r(T2),Oyr=r(Jc),Iyr=r(eh),Ayr=r(CS),Nyr=r(gs),Cyr=r(dx),Pyr=r(\"%checks\"),Dyr=r(aX),Lyr=r(zX),Ryr=r(xU),jyr=r(wH),Gyr=r(bH),Myr=r(XH),Byr=r(hX),qyr=r(lH),Uyr=r(nY),Hyr=r(xX),Xyr=r(BU),Yyr=r(WU),Vyr=r(rV),zyr=r(AU),Kyr=r(tX),Wyr=r(XO),Jyr=r(\"?.\"),$yr=r(Ke),Zyr=r(\"?\"),Qyr=r(o1),rhr=r(zH),ehr=r(MX),nhr=r(OH),thr=r(I6),uhr=r(jd),ihr=r(lV),fhr=r(jY),xhr=r(PX),ohr=r(zY),ahr=r(ZH),chr=r(OU),shr=r(S3),vhr=r(cv),lhr=r(vY),bhr=r(_X),phr=r(sX),mhr=r(xs),_hr=r(Fa),yhr=r(Qu),hhr=r(UU),dhr=r(WH),khr=r(XY),whr=r(Kt),Ehr=r(ZY),Shr=r(sH),ghr=r(oV),Fhr=r(C),Thr=r(n6),Ohr=r(H8),Ihr=r(v7),Ahr=r(dv),Nhr=r(x1),Chr=r(Tv),Phr=r(es),Dhr=r(K4),Lhr=r(Qu),Rhr=r(Qu),jhr=r(O2),Ghr=r(O6),Mhr=r(\"T_LCURLY\"),Bhr=r(\"T_RCURLY\"),qhr=r(\"T_LCURLYBAR\"),Uhr=r(\"T_RCURLYBAR\"),Hhr=r(\"T_LPAREN\"),Xhr=r(\"T_RPAREN\"),Yhr=r(\"T_LBRACKET\"),Vhr=r(\"T_RBRACKET\"),zhr=r(\"T_SEMICOLON\"),Khr=r(\"T_COMMA\"),Whr=r(\"T_PERIOD\"),Jhr=r(\"T_ARROW\"),$hr=r(\"T_ELLIPSIS\"),Zhr=r(\"T_AT\"),Qhr=r(\"T_POUND\"),rdr=r(\"T_FUNCTION\"),edr=r(\"T_IF\"),ndr=r(\"T_IN\"),tdr=r(\"T_INSTANCEOF\"),udr=r(\"T_RETURN\"),idr=r(\"T_SWITCH\"),fdr=r(\"T_THIS\"),xdr=r(\"T_THROW\"),odr=r(\"T_TRY\"),adr=r(\"T_VAR\"),cdr=r(\"T_WHILE\"),sdr=r(\"T_WITH\"),vdr=r(\"T_CONST\"),ldr=r(\"T_LET\"),bdr=r(\"T_NULL\"),pdr=r(\"T_FALSE\"),mdr=r(\"T_TRUE\"),_dr=r(\"T_BREAK\"),ydr=r(\"T_CASE\"),hdr=r(\"T_CATCH\"),ddr=r(\"T_CONTINUE\"),kdr=r(\"T_DEFAULT\"),wdr=r(\"T_DO\"),Edr=r(\"T_FINALLY\"),Sdr=r(\"T_FOR\"),gdr=r(\"T_CLASS\"),Fdr=r(\"T_EXTENDS\"),Tdr=r(\"T_STATIC\"),Odr=r(\"T_ELSE\"),Idr=r(\"T_NEW\"),Adr=r(\"T_DELETE\"),Ndr=r(\"T_TYPEOF\"),Cdr=r(\"T_VOID\"),Pdr=r(\"T_ENUM\"),Ddr=r(\"T_EXPORT\"),Ldr=r(\"T_IMPORT\"),Rdr=r(\"T_SUPER\"),jdr=r(\"T_IMPLEMENTS\"),Gdr=r(\"T_INTERFACE\"),Mdr=r(\"T_PACKAGE\"),Bdr=r(\"T_PRIVATE\"),qdr=r(\"T_PROTECTED\"),Udr=r(\"T_PUBLIC\"),Hdr=r(\"T_YIELD\"),Xdr=r(\"T_DEBUGGER\"),Ydr=r(\"T_DECLARE\"),Vdr=r(\"T_TYPE\"),zdr=r(\"T_OPAQUE\"),Kdr=r(\"T_OF\"),Wdr=r(\"T_ASYNC\"),Jdr=r(\"T_AWAIT\"),$dr=r(\"T_CHECKS\"),Zdr=r(\"T_RSHIFT3_ASSIGN\"),Qdr=r(\"T_RSHIFT_ASSIGN\"),rkr=r(\"T_LSHIFT_ASSIGN\"),ekr=r(\"T_BIT_XOR_ASSIGN\"),nkr=r(\"T_BIT_OR_ASSIGN\"),tkr=r(\"T_BIT_AND_ASSIGN\"),ukr=r(\"T_MOD_ASSIGN\"),ikr=r(\"T_DIV_ASSIGN\"),fkr=r(\"T_MULT_ASSIGN\"),xkr=r(\"T_EXP_ASSIGN\"),okr=r(\"T_MINUS_ASSIGN\"),akr=r(\"T_PLUS_ASSIGN\"),ckr=r(\"T_NULLISH_ASSIGN\"),skr=r(\"T_AND_ASSIGN\"),vkr=r(\"T_OR_ASSIGN\"),lkr=r(\"T_ASSIGN\"),bkr=r(\"T_PLING_PERIOD\"),pkr=r(\"T_PLING_PLING\"),mkr=r(\"T_PLING\"),_kr=r(\"T_COLON\"),ykr=r(\"T_OR\"),hkr=r(\"T_AND\"),dkr=r(\"T_BIT_OR\"),kkr=r(\"T_BIT_XOR\"),wkr=r(\"T_BIT_AND\"),Ekr=r(\"T_EQUAL\"),Skr=r(\"T_NOT_EQUAL\"),gkr=r(\"T_STRICT_EQUAL\"),Fkr=r(\"T_STRICT_NOT_EQUAL\"),Tkr=r(\"T_LESS_THAN_EQUAL\"),Okr=r(\"T_GREATER_THAN_EQUAL\"),Ikr=r(\"T_LESS_THAN\"),Akr=r(\"T_GREATER_THAN\"),Nkr=r(\"T_LSHIFT\"),Ckr=r(\"T_RSHIFT\"),Pkr=r(\"T_RSHIFT3\"),Dkr=r(\"T_PLUS\"),Lkr=r(\"T_MINUS\"),Rkr=r(\"T_DIV\"),jkr=r(\"T_MULT\"),Gkr=r(\"T_EXP\"),Mkr=r(\"T_MOD\"),Bkr=r(\"T_NOT\"),qkr=r(\"T_BIT_NOT\"),Ukr=r(\"T_INCR\"),Hkr=r(\"T_DECR\"),Xkr=r(\"T_EOF\"),Ykr=r(\"T_ANY_TYPE\"),Vkr=r(\"T_MIXED_TYPE\"),zkr=r(\"T_EMPTY_TYPE\"),Kkr=r(\"T_NUMBER_TYPE\"),Wkr=r(\"T_BIGINT_TYPE\"),Jkr=r(\"T_STRING_TYPE\"),$kr=r(\"T_VOID_TYPE\"),Zkr=r(\"T_SYMBOL_TYPE\"),Qkr=r(\"T_NUMBER\"),rwr=r(\"T_BIGINT\"),ewr=r(\"T_STRING\"),nwr=r(\"T_TEMPLATE_PART\"),twr=r(\"T_IDENTIFIER\"),uwr=r(\"T_REGEXP\"),iwr=r(\"T_ERROR\"),fwr=r(\"T_JSX_IDENTIFIER\"),xwr=r(\"T_JSX_TEXT\"),owr=r(\"T_BOOLEAN_TYPE\"),awr=r(\"T_NUMBER_SINGLETON_TYPE\"),cwr=r(\"T_BIGINT_SINGLETON_TYPE\"),swr=[0,r(kX),HT,9],vwr=[0,r(kX),A6,9],lwr=r(GH),bwr=r(\"*/\"),pwr=r(GH),mwr=r(\"unreachable line_comment\"),_wr=r(\"unreachable string_quote\"),ywr=r(\"\\\\\"),hwr=r(\"unreachable template_part\"),dwr=r(\"${\"),kwr=r(UY),wwr=r(UY),Ewr=r(MI),Swr=r(\"unreachable regexp_class\"),gwr=r(uY),Fwr=r(\"unreachable regexp_body\"),Twr=r(C),Owr=r(C),Iwr=r(C),Awr=r(C),Nwr=r(\"unreachable jsxtext\"),Cwr=r(P3),Pwr=r(V2),Dwr=r(S3),Lwr=r(cv),Rwr=r(hH),jwr=r(b3),Gwr=r(\"{'}'}\"),Mwr=r(b3),Bwr=r(\"{'>'}\"),qwr=r(cv),Uwr=r(l1),Hwr=r(\"iexcl\"),Xwr=r(\"aelig\"),Ywr=r(\"Nu\"),Vwr=r(\"Eacute\"),zwr=r(\"Atilde\"),Kwr=r(\"'int'\"),Wwr=r(\"AElig\"),Jwr=r(\"Aacute\"),$wr=r(\"Acirc\"),Zwr=r(\"Agrave\"),Qwr=r(\"Alpha\"),rEr=r(\"Aring\"),eEr=[0,hY],nEr=[0,913],tEr=[0,rt],uEr=[0,nI],iEr=[0,HT],fEr=[0,vH],xEr=[0,8747],oEr=r(\"Auml\"),aEr=r(\"Beta\"),cEr=r(\"Ccedil\"),sEr=r(\"Chi\"),vEr=r(\"Dagger\"),lEr=r(\"Delta\"),bEr=r(\"ETH\"),pEr=[0,_H],mEr=[0,916],_Er=[0,8225],yEr=[0,935],hEr=[0,QH],dEr=[0,914],kEr=[0,XX],wEr=[0,xY],EEr=r(\"Icirc\"),SEr=r(\"Ecirc\"),gEr=r(\"Egrave\"),FEr=r(\"Epsilon\"),TEr=r(\"Eta\"),OEr=r(\"Euml\"),IEr=r(\"Gamma\"),AEr=r(\"Iacute\"),NEr=[0,VH],CEr=[0,915],PEr=[0,eV],DEr=[0,919],LEr=[0,917],REr=[0,NU],jEr=[0,nH],GEr=r(\"Igrave\"),MEr=r(\"Iota\"),BEr=r(\"Iuml\"),qEr=r(\"Kappa\"),UEr=r(\"Lambda\"),HEr=r(\"Mu\"),XEr=r(\"Ntilde\"),YEr=[0,Wg],VEr=[0,924],zEr=[0,923],KEr=[0,922],WEr=[0,AX],JEr=[0,921],$Er=[0,WX],ZEr=[0,TH],QEr=[0,sY],rSr=r(\"Sigma\"),eSr=r(\"Otilde\"),nSr=r(\"OElig\"),tSr=r(\"Oacute\"),uSr=r(\"Ocirc\"),iSr=r(\"Ograve\"),fSr=r(\"Omega\"),xSr=r(\"Omicron\"),oSr=r(\"Oslash\"),aSr=[0,y6],cSr=[0,927],sSr=[0,937],vSr=[0,A6],lSr=[0,yY],bSr=[0,yU],pSr=[0,338],mSr=r(\"Ouml\"),_Sr=r(\"Phi\"),ySr=r(\"Pi\"),hSr=r(\"Prime\"),dSr=r(\"Psi\"),kSr=r(\"Rho\"),wSr=r(\"Scaron\"),ESr=[0,352],SSr=[0,929],gSr=[0,936],FSr=[0,8243],TSr=[0,928],OSr=[0,934],ISr=[0,mT],ASr=[0,RX],NSr=r(\"Uuml\"),CSr=r(\"THORN\"),PSr=r(\"Tau\"),DSr=r(\"Theta\"),LSr=r(\"Uacute\"),RSr=r(\"Ucirc\"),jSr=r(\"Ugrave\"),GSr=r(\"Upsilon\"),MSr=[0,933],BSr=[0,cp],qSr=[0,FU],USr=[0,Cw],HSr=[0,920],XSr=[0,932],YSr=[0,FX],VSr=r(\"Xi\"),zSr=r(\"Yacute\"),KSr=r(\"Yuml\"),WSr=r(\"Zeta\"),JSr=r(\"aacute\"),$Sr=r(\"acirc\"),ZSr=r(\"acute\"),QSr=[0,sU],rgr=[0,rk],egr=[0,BO],ngr=[0,918],tgr=[0,376],ugr=[0,GX],igr=[0,926],fgr=[0,iA],xgr=[0,UX],ogr=[0,925],agr=r(\"delta\"),cgr=r(\"cap\"),sgr=r(\"aring\"),vgr=r(\"agrave\"),lgr=r(\"alefsym\"),bgr=r(\"alpha\"),pgr=r(\"amp\"),mgr=r(\"and\"),_gr=r(\"ang\"),ygr=r(\"apos\"),hgr=[0,39],dgr=[0,8736],kgr=[0,8743],wgr=[0,38],Egr=[0,945],Sgr=[0,8501],ggr=[0,hv],Fgr=r(\"asymp\"),Tgr=r(\"atilde\"),Ogr=r(\"auml\"),Igr=r(\"bdquo\"),Agr=r(\"beta\"),Ngr=r(\"brvbar\"),Cgr=r(\"bull\"),Pgr=[0,8226],Dgr=[0,DY],Lgr=[0,946],Rgr=[0,8222],jgr=[0,fV],Ggr=[0,JH],Mgr=[0,8776],Bgr=[0,bU],qgr=r(\"copy\"),Ugr=r(\"ccedil\"),Hgr=r(\"cedil\"),Xgr=r(\"cent\"),Ygr=r(\"chi\"),Vgr=r(\"circ\"),zgr=r(\"clubs\"),Kgr=r(\"cong\"),Wgr=[0,8773],Jgr=[0,9827],$gr=[0,rX],Zgr=[0,967],Qgr=[0,kh],rFr=[0,hk],eFr=[0,qX],nFr=r(\"crarr\"),tFr=r(\"cup\"),uFr=r(\"curren\"),iFr=r(\"dArr\"),fFr=r(\"dagger\"),xFr=r(\"darr\"),oFr=r(\"deg\"),aFr=[0,mV],cFr=[0,8595],sFr=[0,8224],vFr=[0,8659],lFr=[0,AF],bFr=[0,8746],pFr=[0,8629],mFr=[0,NX],_Fr=[0,8745],yFr=r(\"fnof\"),hFr=r(\"ensp\"),dFr=r(\"diams\"),kFr=r(\"divide\"),wFr=r(\"eacute\"),EFr=r(\"ecirc\"),SFr=r(\"egrave\"),gFr=r(v7),FFr=r(\"emsp\"),TFr=[0,8195],OFr=[0,8709],IFr=[0,ZF],AFr=[0,tH],NFr=[0,hT],CFr=[0,Dw],PFr=[0,9830],DFr=r(\"epsilon\"),LFr=r(\"equiv\"),RFr=r(\"eta\"),jFr=r(\"eth\"),GFr=r(\"euml\"),MFr=r(\"euro\"),BFr=r(\"exist\"),qFr=[0,8707],UFr=[0,8364],HFr=[0,JU],XFr=[0,s1],YFr=[0,951],VFr=[0,8801],zFr=[0,949],KFr=[0,8194],WFr=r(\"gt\"),JFr=r(\"forall\"),$Fr=r(\"frac12\"),ZFr=r(\"frac14\"),QFr=r(\"frac34\"),rTr=r(\"frasl\"),eTr=r(\"gamma\"),nTr=r(\"ge\"),tTr=[0,8805],uTr=[0,947],iTr=[0,8260],fTr=[0,OY],xTr=[0,iY],oTr=[0,fX],aTr=[0,8704],cTr=r(\"hArr\"),sTr=r(\"harr\"),vTr=r(\"hearts\"),lTr=r(\"hellip\"),bTr=r(\"iacute\"),pTr=r(\"icirc\"),mTr=[0,cH],_Tr=[0,BY],yTr=[0,8230],hTr=[0,9829],dTr=[0,8596],kTr=[0,8660],wTr=[0,62],ETr=[0,402],STr=[0,948],gTr=[0,jh],FTr=r(\"prime\"),TTr=r(\"ndash\"),OTr=r(\"le\"),ITr=r(\"kappa\"),ATr=r(\"igrave\"),NTr=r(\"image\"),CTr=r(\"infin\"),PTr=r(\"iota\"),DTr=r(\"iquest\"),LTr=r(\"isin\"),RTr=r(\"iuml\"),jTr=[0,i6],GTr=[0,8712],MTr=[0,lX],BTr=[0,953],qTr=[0,8734],UTr=[0,8465],HTr=[0,lO],XTr=r(\"lArr\"),YTr=r(\"lambda\"),VTr=r(\"lang\"),zTr=r(\"laquo\"),KTr=r(\"larr\"),WTr=r(\"lceil\"),JTr=r(\"ldquo\"),$Tr=[0,8220],ZTr=[0,8968],QTr=[0,8592],rOr=[0,pg],eOr=[0,10216],nOr=[0,955],tOr=[0,8656],uOr=[0,954],iOr=r(\"macr\"),fOr=r(\"lfloor\"),xOr=r(\"lowast\"),oOr=r(\"loz\"),aOr=r(\"lrm\"),cOr=r(\"lsaquo\"),sOr=r(\"lsquo\"),vOr=r(\"lt\"),lOr=[0,60],bOr=[0,8216],pOr=[0,8249],mOr=[0,vU],_Or=[0,9674],yOr=[0,8727],hOr=[0,8970],dOr=r(\"mdash\"),kOr=r(\"micro\"),wOr=r(\"middot\"),EOr=r(cY),SOr=r(\"mu\"),gOr=r(\"nabla\"),FOr=r(\"nbsp\"),TOr=[0,fY],OOr=[0,8711],IOr=[0,956],AOr=[0,8722],NOr=[0,lS],COr=[0,Ai],POr=[0,8212],DOr=[0,bX],LOr=[0,8804],ROr=r(\"or\"),jOr=r(\"oacute\"),GOr=r(\"ne\"),MOr=r(\"ni\"),BOr=r(\"not\"),qOr=r(\"notin\"),UOr=r(\"nsub\"),HOr=r(\"ntilde\"),XOr=r(\"nu\"),YOr=[0,957],VOr=[0,Vy],zOr=[0,8836],KOr=[0,8713],WOr=[0,LU],JOr=[0,8715],$Or=[0,8800],ZOr=r(\"ocirc\"),QOr=r(\"oelig\"),rIr=r(\"ograve\"),eIr=r(\"oline\"),nIr=r(\"omega\"),tIr=r(\"omicron\"),uIr=r(\"oplus\"),iIr=[0,8853],fIr=[0,959],xIr=[0,969],oIr=[0,8254],aIr=[0,ST],cIr=[0,339],sIr=[0,v8],vIr=[0,QU],lIr=r(\"part\"),bIr=r(\"ordf\"),pIr=r(\"ordm\"),mIr=r(\"oslash\"),_Ir=r(\"otilde\"),yIr=r(\"otimes\"),hIr=r(\"ouml\"),dIr=r(\"para\"),kIr=[0,Yg],wIr=[0,$2],EIr=[0,8855],SIr=[0,WY],gIr=[0,wt],FIr=[0,md],TIr=[0,qg],OIr=r(\"permil\"),IIr=r(\"perp\"),AIr=r(\"phi\"),NIr=r(\"pi\"),CIr=r(\"piv\"),PIr=r(\"plusmn\"),DIr=r(\"pound\"),LIr=[0,Ln],RIr=[0,uV],jIr=[0,982],GIr=[0,960],MIr=[0,966],BIr=[0,8869],qIr=[0,8240],UIr=[0,8706],HIr=[0,8744],XIr=[0,8211],YIr=r(\"sup1\"),VIr=r(\"rlm\"),zIr=r(\"raquo\"),KIr=r(\"prod\"),WIr=r(\"prop\"),JIr=r(\"psi\"),$Ir=r(\"quot\"),ZIr=r(\"rArr\"),QIr=r(\"radic\"),rAr=r(\"rang\"),eAr=[0,10217],nAr=[0,8730],tAr=[0,8658],uAr=[0,34],iAr=[0,968],fAr=[0,8733],xAr=[0,8719],oAr=r(\"rarr\"),aAr=r(\"rceil\"),cAr=r(\"rdquo\"),sAr=r(\"real\"),vAr=r(\"reg\"),lAr=r(\"rfloor\"),bAr=r(\"rho\"),pAr=[0,961],mAr=[0,8971],_Ar=[0,$U],yAr=[0,8476],hAr=[0,8221],dAr=[0,8969],kAr=[0,8594],wAr=[0,nw],EAr=r(\"sigma\"),SAr=r(\"rsaquo\"),gAr=r(\"rsquo\"),FAr=r(\"sbquo\"),TAr=r(\"scaron\"),OAr=r(\"sdot\"),IAr=r(\"sect\"),AAr=r(\"shy\"),NAr=[0,_Y],CAr=[0,NT],PAr=[0,8901],DAr=[0,353],LAr=[0,8218],RAr=[0,8217],jAr=[0,8250],GAr=r(\"sigmaf\"),MAr=r(\"sim\"),BAr=r(\"spades\"),qAr=r(\"sub\"),UAr=r(\"sube\"),HAr=r(\"sum\"),XAr=r(\"sup\"),YAr=[0,8835],VAr=[0,8721],zAr=[0,8838],KAr=[0,8834],WAr=[0,9824],JAr=[0,8764],$Ar=[0,962],ZAr=[0,963],QAr=[0,8207],rNr=r(\"uarr\"),eNr=r(\"thetasym\"),nNr=r(\"sup2\"),tNr=r(\"sup3\"),uNr=r(\"supe\"),iNr=r(\"szlig\"),fNr=r(\"tau\"),xNr=r(\"there4\"),oNr=r(\"theta\"),aNr=[0,952],cNr=[0,8756],sNr=[0,964],vNr=[0,y8],lNr=[0,8839],bNr=[0,RY],pNr=[0,gO],mNr=r(\"thinsp\"),_Nr=r(\"thorn\"),yNr=r(\"tilde\"),hNr=r(\"times\"),dNr=r(\"trade\"),kNr=r(\"uArr\"),wNr=r(\"uacute\"),ENr=[0,nl],SNr=[0,8657],gNr=[0,8482],FNr=[0,xT],TNr=[0,732],ONr=[0,gv],INr=[0,8201],ANr=[0,977],NNr=r(\"xi\"),CNr=r(\"ucirc\"),PNr=r(\"ugrave\"),DNr=r(\"uml\"),LNr=r(\"upsih\"),RNr=r(\"upsilon\"),jNr=r(\"uuml\"),GNr=r(\"weierp\"),MNr=[0,iU],BNr=[0,Y2],qNr=[0,965],UNr=[0,978],HNr=[0,IY],XNr=[0,249],YNr=[0,251],VNr=r(\"yacute\"),zNr=r(\"yen\"),KNr=r(\"yuml\"),WNr=r(\"zeta\"),JNr=r(\"zwj\"),$Nr=r(\"zwnj\"),ZNr=[0,kY],QNr=[0,8205],rCr=[0,950],eCr=[0,gw],nCr=[0,$X],tCr=[0,nd],uCr=[0,958],iCr=[0,8593],fCr=[0,gU],xCr=[0,8242],oCr=[0,XU],aCr=r(VY),cCr=r(jd),sCr=r(\"unreachable jsx_child\"),vCr=r(\"unreachable type_token wholenumber\"),lCr=r(\"unreachable type_token wholebigint\"),bCr=r(\"unreachable type_token floatbigint\"),pCr=r(\"unreachable type_token scinumber\"),mCr=r(\"unreachable type_token scibigint\"),_Cr=r(\"unreachable type_token hexnumber\"),yCr=r(\"unreachable type_token hexbigint\"),hCr=r(\"unreachable type_token legacyoctnumber\"),dCr=r(\"unreachable type_token octnumber\"),kCr=r(\"unreachable type_token octbigint\"),wCr=r(\"unreachable type_token binnumber\"),ECr=r(\"unreachable type_token bigbigint\"),SCr=r(\"unreachable type_token\"),gCr=r(o1),FCr=r(o1),TCr=r(kU),OCr=r(H8),ICr=r(n6),ACr=r(x1),NCr=r(O6),CCr=r(O2),PCr=r(v7),DCr=r(P7),LCr=r(Ci),RCr=r(e7),jCr=[9,1],GCr=[9,0],MCr=r(fs),BCr=r(dv),qCr=r(nu),UCr=r(Tv),HCr=r(K4),XCr=r(Gi),YCr=r(rs),VCr=r(es),zCr=r(\"unreachable template_tail\"),KCr=r(b3),WCr=[0,r(C),r(C),r(C)],JCr=r(\"unreachable jsx_tag\"),$Cr=r(P3),ZCr=r(\"unreachable regexp\"),QCr=r(\"unreachable token wholenumber\"),rPr=r(\"unreachable token wholebigint\"),ePr=r(\"unreachable token floatbigint\"),nPr=r(\"unreachable token scinumber\"),tPr=r(\"unreachable token scibigint\"),uPr=r(\"unreachable token hexnumber\"),iPr=r(\"unreachable token hexbigint\"),fPr=r(\"unreachable token legacyoctnumber\"),xPr=r(\"unreachable token legacynonoctnumber\"),oPr=r(\"unreachable token octnumber\"),aPr=r(\"unreachable token octbigint\"),cPr=r(\"unreachable token bignumber\"),sPr=r(\"unreachable token bigint\"),vPr=r(\"unreachable token\"),lPr=r(o1),bPr=r(o1),pPr=r(kU),mPr=[6,r(\"#!\")],_Pr=r(\"expected ?\"),yPr=r(j2),hPr=r(_4),dPr=r(D2),kPr=r(gs),wPr=r(dx),EPr=r(A7),SPr=r(d6),gPr=r(o6),FPr=r(q2),TPr=r(N7),OPr=r(I7),IPr=r(T2),APr=r(_i),NPr=r(J2),CPr=r(np),PPr=r(U4),DPr=r(b8),LPr=r(_3),RPr=r(P7),jPr=r(Ci),GPr=r(q8),MPr=r(M2),BPr=r(A3),qPr=r(ws),UPr=r(Uu),HPr=r(R2),XPr=r(yv),YPr=r(y4),VPr=r(e7),zPr=r(G2),KPr=r(u1),WPr=r(fs),JPr=r(CS),$Pr=r(eh),ZPr=r(k4),QPr=r(a6),rDr=r(E6),eDr=r(Ju),nDr=r(nu),tDr=r(rs),uDr=r(D7),iDr=r(i1),fDr=r(F7),xDr=r(Gi),oDr=r(d4),aDr=r(Jc),cDr=r(U2),sDr=r(es),vDr=r(K6),lDr=r(C8),bDr=r(Eu),pDr=r(\"unreachable string_escape\"),mDr=r(Zu),_Dr=r(H2),yDr=r(H2),hDr=r(Zu),dDr=r(dX),kDr=r(oY),wDr=r(\"n\"),EDr=r(\"r\"),SDr=r(\"t\"),gDr=r(pV),FDr=r(H2),TDr=r(l1),ODr=r(l1),IDr=r(\"unreachable id_char\"),ADr=r(l1),NDr=r(l1),CDr=r(\"Invalid (lexer) bigint \"),PDr=r(\"Invalid (lexer) bigint binary/octal \"),DDr=r(H2),LDr=r(pH),RDr=r(oU),jDr=r(Nh),GDr=[10,r(\"token ILLEGAL\")],MDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\"),BDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),qDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),UDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),HDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),XDr=r(\"\u0001\\0\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),YDr=r(\"\u0001\\0\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\"),VDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\"),zDr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),KDr=r(\"\u0001\u0002\\0\u0003\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\"),WDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),JDr=r(\"\u0001\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),$Dr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\"),ZDr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),QDr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0006\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\\x07\"),rLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),eLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),nLr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0006\u0006\u0006\u0006\u0006\u0006\u0006\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\b\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\n\u0002\u0002\u0002\\v\u0002\\f\\r\u000e\u0002\u000f`),tLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0003\u0002\u0002\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),uLr=r(\"\u0001\\0\u0001\\0\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),iLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0002\"),fLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),xLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0003\"),oLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\"),aLr=r(\"\u0001\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),cLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0002\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),sLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),vLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),lLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),bLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),pLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0005\\0\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),mLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),_Lr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),yLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0004\\0\u0001\u0001\u0001\u0001\u0003\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),hLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),dLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\u0001\u0005\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\x07\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\b\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0005\u0001\u0001\u0006\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\t\\x07\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\b\u0001\u0001\"),kLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),wLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),ELr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),SLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0004\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),gLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),FLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0005\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),TLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\u0003\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0004\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),OLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),ILr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0006\\x07\\b\t\n\\v\\x07\\f\\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0015\u0015\u0015\u0015\u0015\u0015\u0015\u0015\u0016\u0017\u0018\u0019\u001a\\x1B\u001c\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u001d\u001e\u001f \t!\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"#$%\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\u0002\t\t\u0002\u0002\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\t\t\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\u0002\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\t\u0002\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\t\u0002\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\u0002\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\t\u0002\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\u0002\t\t\t\t\u0002\u0002\u0002\t\t\u0002\t\u0002\t\t\u0002\u0002\u0002\t\t\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\t\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\t\u0002\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\u0002\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\u0002\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0003\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\u0002\t\t\t\t\t\t\u0002\t\t\u0002\u0002\u0002\t\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\u0002\t\u0002\t\u0002\t\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\t\t\t\t\t\t\t\u0002\t\u0002\u0002\u0002\t\t\t\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002\t\t\t\t\u0002\u0002\t\t\t\t\t\t\u0002\u0002\u0002\u0002\t\t\t\t\t\t\t\t\t\t\t\t\t\u0002\u0002\u0002\u0002\u0002\t\t\t\u0002\t\t\t\t\t\t\t\u0002\u0002\u0002`),ALr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),NLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\"),CLr=r(\"\u0001\\0\\0\\0\\0\u0002\"),PLr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0006\u0002\\x07\\b\t\u0006\n\\v\\f\\r\u000e\u000f\u0010\u0011\u0012\u0013\u0013\u0013\u0013\u0013\u0013\u0013\u0013\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u001a\\x1B\u001c\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u001d\u001e\u001f\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0003\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002`),DLr=r(`\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0004\u0003\u0003\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0006\u0002\\x07\u0002\u0002\u0006\u0002\u0002\u0002\u0002\u0002\u0002\\b\t\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\n\u0002\\v\\f\\r\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u000e\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u000f\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0003\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\u0002\u0002\u0002\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\\x07\u0002\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\\x07\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\\x07\\x07\\x07\\x07\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002\u0002\u0002\\x07\\x07\\x07\u0002\\x07\\x07\\x07\\x07\\x07\\x07\\x07\u0002\u0002\u0002`),LLr=r(\"\u0001\\0\\0\u0002\"),RLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\"),jLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\"),GLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\\x07\"),MLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),BLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),qLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\\0\\0\\0\\0\\0\u0002\"),ULr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),HLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0003\"),XLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),YLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),VLr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\u0002\"),zLr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\u0002\u0002\u0002\\x07\"),KLr=r(\"\u0001\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),WLr=r(\"\u0001\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\\0\\0\\0\\0\\0\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),JLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),$Lr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\"),ZLr=r(\"\u0001\\0\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),QLr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\u0001\u0001\u0001\u0001\u0001\u0001\"),rRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0002\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\"),eRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),nRr=r(\"\u0001\\0\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),tRr=r(\"\u0001\\0\\0\\0\\0\\0\\0\u0002\\0\u0002\\0\\0\u0003\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\u0004\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),uRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0002\"),iRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),fRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0004\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0005\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0006\"),xRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0004\u0002\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),oRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0002\u0004\u0002\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\"),aRr=r(\"\u0001\\0\u0002\"),cRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\"),sRr=r(\"\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),vRr=r(\"\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\"),lRr=r(\"\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0003\"),bRr=r(\"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0001\u0001\u0001\u0001\u0001\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),pRr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),mRr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),_Rr=r(\"\u0001\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\u0002\"),yRr=[0,[11,r(\"the identifier `\"),[2,0,[12,96,0]]],r(\"the identifier `%s`\")],hRr=[0,1],dRr=[0,1],kRr=r(\"@flow\"),wRr=r(yX),ERr=r(yX),SRr=[0,[11,r(\"an identifier. When exporting a \"),[2,0,[11,r(\" as a named export, you must specify a \"),[2,0,[11,r(\" name. Did you mean `export default \"),[2,0,[11,r(\" ...`?\"),0]]]]]]],r(\"an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?\")],gRr=r(g3),FRr=r(\"Peeking current location when not available\"),TRr=r(e7),ORr=r(bv),IRr=r(n6),ARr=r(x1),NRr=r(O6),CRr=r(O2),PRr=r(v7),DRr=r(P7),LRr=r(Ci),RRr=r(H8),jRr=r(fs),GRr=r(dv),MRr=r(nu),BRr=r(Tv),qRr=r(Gi),URr=r(rs),HRr=r(es),XRr=r(Ci),YRr=r(fs),VRr=r(Gi),zRr=r(Ci),KRr=r(fs),WRr=r(Gi),JRr=r(C2),$Rr=r(\"eval\"),ZRr=r(ws),QRr=r(e7),rjr=r(y4),ejr=r(k4),njr=r(a6),tjr=r(E6),ujr=r(nu),ijr=r(Eu),fjr=r(b8),xjr=r(A3),ojr=r(_i),ajr=r(dx),cjr=r(A7),sjr=r(d6),vjr=r(o6),ljr=r(q2),bjr=r(D2),pjr=r(N7),mjr=r(I7),_jr=r(J2),yjr=r(_4),hjr=r(U4),djr=r(_3),kjr=r(P7),wjr=r(q8),Ejr=r(np),Sjr=r(M2),gjr=r(F7),Fjr=r(Uu),Tjr=r(R2),Ojr=r(j2),Ijr=r(u1),Ajr=r(Ju),Njr=r(yv),Cjr=r(D7),Pjr=r(i1),Djr=r(d4),Ljr=r(rs),Rjr=r(U2),jjr=r(es),Gjr=r(K6),Mjr=r(C8),Bjr=r(Eu),qjr=[0,r(\"src/parser/parser_env.ml\"),343,9],Ujr=r(\"Internal Error: Tried to add_declared_private with outside of class scope.\"),Hjr=r(\"Internal Error: `exit_class` called before a matching `enter_class`\"),Xjr=r(C),Yjr=[0,0,0],Vjr=[0,0,0],zjr=r(\"Parser_env.Try.Rollback\"),Kjr=r(C),Wjr=r(C),Jjr=[0,r(Eu),r(Yx),r(to),r(dU),r(gY),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(iH),r(_o),r(uH),r(qU),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],$jr=[0,r(Eu),r(Yx),r(to),r(Oo),r(cu),r(dc),r(ux),r(oc),r(Gf),r(To),r(Po),r(ec),r(No),r(wf),r(Ja),r(uo),r(Cx),r(Ff),r(ax),r(Oa),r(qf),r(Ro),r(Ka),r(Xx),r(Jx),r(_x),r(xo),r(fa),r(no),r(F7),r(Io),r(Pf),r(wo),r($x),r(Jf),r(Uo),r(yo),r(D7),r(yc),r(Na),r(Sx),r(Vx),r(_f),r(Sc),r(Mf),r(cx),r(Ju),r(px),r(pa),r(De),r(r7),r($a),r(Yo),r(wa),r(Zx),r(sc),r(aa),r(ta),r(Cf),r(Bo),r(Yf),r(Wf),r(kc),r(vc),r(va),r(bf),r(zo),r(Zf),r(rx),r(mi),r(Qo),r(Mo),r(df),r(Va),r(Xo),r(lc),r(fc),r(Zo),r(oo),r(ix),r(Nf),r(uf),r(Xf),r(ex),r(ma),r(da),r(Kf),r(nc),r(gf),r(Lx),r(qo),r(bx),r(yf),r(Of),r(mc),r(xr),r(_c),r(Wx),r(Ux),r(Pa),r(zx),r(nx),r(Dx),r(ha),r(Px),r(hc),r(vx),r(Jo),r(wc),r(Da),r(Ko),r(rc),r(rf),r(Nx),r(ao),r(Ox),r(io),r(jo),r(Ao),r(pc),r(Ax),r(ff),r(of),r(Qf),r(Wo),r(ya),r(ac),r(Rf),r(za),r(ro),r(ko),r(af),r(e7),r(Aa),r(Fx),r(Ca),r(Hx),r(bo),r(Ec),r(Uu),r(Ya),r(ia),r(pf),r(yi),r(Vf),r(bc),r(Wa),r(G7),r(mx),r(ba),r(vf),r(Ba),r(kx),r(Go),r(_a),r(tx),r(nf),r(Lf),r(gc),r(Ix),r(hx),r(Ia),r(Tc),r(lo),r(So),r(li),r(ic),r(yx),r(La),r(Xa),r(Fc),r(Mx),r(ka),r(Bf),r(Sf),r(eo),r(Tx),r(Nu),r(ea),r(ua),r(Qa),r(sf),r(Sa),r(vo),r(Af),r(jx),r(Za),r(If),r(jf),r(Bx),r(Ho),r(qx),r(sa),r(ra),r(la),r(v7),r(ho),r(Ra),r(wx),r(Fo),r(so),r(na),r(zf),r(ja),r(Ta),r(xx),r(I7),r(N7),r($o),r(xa),r($f),r(_o),r(hf),r(go),r(fx),r(gx),r(Uf),r(Ga),r(kf),r(tf),r(ga),r(Df),r(tc),r(mf),r(qa),r(oa),r(Ua),r(Ef),r(Qi),r(sx),r(po),r(lx),r(Tf),r(A7),r(Ha),r(Tn),r(Gx),r(xf),r(lf),r(Kx),r(Hf),r(Vo),r(ca),r(Ea),r(co),r(Rx),r(W4)],Zjr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(Rx),r(ux),r(Ef),r(qf),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],Qjr=[0,r(_f),r(Qf),r(_a),r(Vf),r(Tf),r(Yf),r(qo),r(ex),r(Nx),r(ko),r(Ka),r(D7),r(Xo),r(ea),r(tc),r(pc),r(bx),r(ff),r(ra),r(Bx),r(Yx),r(li),r(hc),r(Lx),r(Wa),r(sa),r(Of),r(yi),r(Oo),r(gY),r(Mx),r(ta),r(zf),r(sx),r(tx),r(Qi),r(jo),r(Af),r(ba),r(vc),r(ic),r(yo),r(Kx),r(ma),r(ia),r(Sx),r(la),r(Px),r(yf),r(tf),r(go),r(Qo),r(wa),r(uH),r(Xf),r(Yo),r(Ko),r(Uf),r(fc),r(r7),r(Nf),r(Ba),r(mc),r(ao),r(Ao),r(bc),r(nx),r($o),r(Jx),r(If),r(uf),r(rc),r($f),r(Dx),r(Go),r(aa),r(Ea),r(so),r(Sa),r(Wx),r(rx),r(co),r(po),r(cx),r(cu),r($a),r(uo),r(Ya),r(lf),r(So),r(no),r(ac),r(Df),r(nc),r(Uo),r(v7),r(Xa),r(Xx),r(Eu),r(fa),r(Ta),r(ec),r(zo),r(px),r(Po),r(hf),r(ja),r(oc),r(Ax),r(Zx),r(ro),r(Ho),r(Sf),r(lc),r(ua),r(ha),r(bf),r(ka),r(Ff),r(xo),r(dc),r(Sc),r(Cx),r(To),r(Ga),r(yx),r(fx),r(Pa),r(kx),r(Gf),r(_o),r(gf),r(Jo),r(Hf),r(Ux),r(oa),r(ga),r(Aa),r(va),r(Mo),r(wc),r(_c),r(Uu),r(Ju),r(Ha),r(Ja),r(ax),r(yc),r(kc),r(F7),r(I7),r(pf),r(Va),r(Tx),r(of),r(mi),r(Ix),r(qx),r(Fx),r(gx),r(nf),r(zx),r(Wo),r(G7),r(vf),r(wf),r(jf),r(De),r(Tc),r(bo),r(Za),r(sf),r(Kf),r(Mf),r(Ca),r(oo),r(Cf),r(_x),r(ix),r(Oa),r(lx),r(Fo),r(Ua),r(na),r(Gx),r(Rf),r(qU),r(Jf),r(mx),r(pa),r(Ec),r(qa),r(da),r(io),r(kf),r(af),r(ho),r(Ro),r(iH),r(Rx),r(ux),r(Ef),r(qf),r(dU),r(Ra),r(Ox),r(ya),r(xa),r(vx),r(Bo),r(za),r(Bf),r(Da),r(wo),r(Vo),r(Wf),r(xf),r(Nu),r(Zf),r(eo),r(hx),r(Ia),r(Vx),r(N7),r(Lf),r(sc),r(vo),r(wx),r(Pf),r($x),r(Na),r(lo),r(Qa),r(No),r(La),r(df),r(Tn),r(Hx),r(mf),r(rf),r(Zo),r(gc),r(xx),r(jx),r(A7),r(ca),r(e7),r(to),r(Fc),r(Io),r(xr)],rGr=r(Y4),eGr=r(I2),nGr=[0,[11,r(\"Failure while looking up \"),[2,0,[11,r(\". Index: \"),[4,0,0,0,[11,r(\". Length: \"),[4,0,0,0,[12,46,0]]]]]]],r(\"Failure while looking up %s. Index: %d. Length: %d.\")],tGr=[0,0,0,0],uGr=r(\"Offset_utils.Offset_lookup_failed\"),iGr=r(KY),fGr=r(hE),xGr=r(CY),oGr=r(VX),aGr=r(VX),cGr=r(CY),sGr=r(Jc),vGr=r(Xr),lGr=r(Wn),bGr=r(\"Program\"),pGr=r(Ud),mGr=r(\"BreakStatement\"),_Gr=r(Ud),yGr=r(\"ContinueStatement\"),hGr=r(\"DebuggerStatement\"),dGr=r(cc),kGr=r(\"DeclareExportAllDeclaration\"),wGr=r(cc),EGr=r(Cv),SGr=r(P2),gGr=r(_i),FGr=r(\"DeclareExportDeclaration\"),TGr=r($c),OGr=r(Wn),IGr=r(mt),AGr=r(\"DeclareModule\"),NGr=r(C7),CGr=r(\"DeclareModuleExports\"),PGr=r(Ss),DGr=r(Wn),LGr=r(\"DoWhileStatement\"),RGr=r(\"EmptyStatement\"),jGr=r(bO),GGr=r(P2),MGr=r(\"ExportDefaultDeclaration\"),BGr=r(bO),qGr=r(I4),UGr=r(cc),HGr=r(\"ExportAllDeclaration\"),XGr=r(bO),YGr=r(cc),VGr=r(Cv),zGr=r(P2),KGr=r(\"ExportNamedDeclaration\"),WGr=r(Zi),JGr=r(Nu),$Gr=r(\"ExpressionStatement\"),ZGr=r(Wn),QGr=r(fU),rMr=r(Ss),eMr=r(ji),nMr=r(\"ForStatement\"),tMr=r(R8),uMr=r(Wn),iMr=r(Cu),fMr=r(bi),xMr=r(\"ForInStatement\"),oMr=r(dx),aMr=r(Wn),cMr=r(Cu),sMr=r(bi),vMr=r(\"ForOfStatement\"),lMr=r(m3),bMr=r(kv),pMr=r(Ss),mMr=r(\"IfStatement\"),_Mr=r(Jc),yMr=r(rs),hMr=r(Bn),dMr=r(cX),kMr=r(cc),wMr=r(Cv),EMr=r(\"ImportDeclaration\"),SMr=r(Wn),gMr=r(Ud),FMr=r(\"LabeledStatement\"),TMr=r(l7),OMr=r(\"ReturnStatement\"),IMr=r(QX),AMr=r(\"discriminant\"),NMr=r(\"SwitchStatement\"),CMr=r(l7),PMr=r(\"ThrowStatement\"),DMr=r(CH),LMr=r(MU),RMr=r(Tn),jMr=r(\"TryStatement\"),GMr=r(Wn),MMr=r(Ss),BMr=r(\"WhileStatement\"),qMr=r(Wn),UMr=r(xk),HMr=r(\"WithStatement\"),XMr=r(PH),YMr=r(\"ArrayExpression\"),VMr=r(O7),zMr=r(p6),KMr=r(Nu),WMr=r(r7),JMr=r(G7),$Mr=r(gs),ZMr=r(Wn),QMr=r(Dt),rBr=r(mt),eBr=r(\"ArrowFunctionExpression\"),nBr=r(XO),tBr=r(Cu),uBr=r(bi),iBr=r(ul),fBr=r(\"AssignmentExpression\"),xBr=r(Cu),oBr=r(bi),aBr=r(ul),cBr=r(\"BinaryExpression\"),sBr=r(\"CallExpression\"),vBr=r(T4),lBr=r(aY),bBr=r(\"ComprehensionExpression\"),pBr=r(m3),mBr=r(kv),_Br=r(Ss),yBr=r(\"ConditionalExpression\"),hBr=r(T4),dBr=r(aY),kBr=r(\"GeneratorExpression\"),wBr=r(cc),EBr=r(\"ImportExpression\"),SBr=r(zH),gBr=r(MX),FBr=r(Ke),TBr=r(Cu),OBr=r(bi),IBr=r(ul),ABr=r(\"LogicalExpression\"),NBr=r(\"MemberExpression\"),CBr=r(Iv),PBr=r(el),DBr=r(\"MetaProperty\"),LBr=r(C2),RBr=r(TX),jBr=r(jH),GBr=r(\"NewExpression\"),MBr=r(H4),BBr=r(\"ObjectExpression\"),qBr=r(qu),UBr=r(\"OptionalCallExpression\"),HBr=r(qu),XBr=r(\"OptionalMemberExpression\"),YBr=r(Mg),VBr=r(\"SequenceExpression\"),zBr=r(\"Super\"),KBr=r(\"ThisExpression\"),WBr=r(C7),JBr=r(Nu),$Br=r(\"TypeCastExpression\"),ZBr=r(l7),QBr=r(\"AwaitExpression\"),rqr=r(Fa),eqr=r(xs),nqr=r(Kt),tqr=r(ZY),uqr=r(rs),iqr=r(es),fqr=r(J2),xqr=r(\"matched above\"),oqr=r(l7),aqr=r(qE),cqr=r(ul),sqr=r(\"UnaryExpression\"),vqr=r(oV),lqr=r(sH),bqr=r(qE),pqr=r(l7),mqr=r(ul),_qr=r(\"UpdateExpression\"),yqr=r(lY),hqr=r(l7),dqr=r(\"YieldExpression\"),kqr=r(\"Unexpected FunctionDeclaration with BodyExpression\"),wqr=r(O7),Eqr=r(p6),Sqr=r(Nu),gqr=r(r7),Fqr=r(G7),Tqr=r(gs),Oqr=r(Wn),Iqr=r(Dt),Aqr=r(mt),Nqr=r(\"FunctionDeclaration\"),Cqr=r(\"Unexpected FunctionExpression with BodyExpression\"),Pqr=r(O7),Dqr=r(p6),Lqr=r(Nu),Rqr=r(r7),jqr=r(G7),Gqr=r(gs),Mqr=r(Wn),Bqr=r(Dt),qqr=r(mt),Uqr=r(\"FunctionExpression\"),Hqr=r(qu),Xqr=r(C7),Yqr=r(ui),Vqr=r(tn),zqr=r(qu),Kqr=r(C7),Wqr=r(ui),Jqr=r(\"PrivateIdentifier\"),$qr=r(qu),Zqr=r(C7),Qqr=r(ui),rUr=r(tn),eUr=r(kv),nUr=r(Ss),tUr=r(\"SwitchCase\"),uUr=r(Wn),iUr=r(\"param\"),fUr=r(\"CatchClause\"),xUr=r(Wn),oUr=r(\"BlockStatement\"),aUr=r(mt),cUr=r(\"DeclareVariable\"),sUr=r(r7),vUr=r(mt),lUr=r(\"DeclareFunction\"),bUr=r(Hy),pUr=r(ws),mUr=r(P7),_Ur=r(Wn),yUr=r(O7),hUr=r(mt),dUr=r(\"DeclareClass\"),kUr=r(P7),wUr=r(Wn),EUr=r(O7),SUr=r(mt),gUr=r(\"DeclareInterface\"),FUr=r(Bn),TUr=r(Jc),OUr=r(I4),IUr=r(\"ExportNamespaceSpecifier\"),AUr=r(Cu),NUr=r(O7),CUr=r(mt),PUr=r(\"DeclareTypeAlias\"),DUr=r(Cu),LUr=r(O7),RUr=r(mt),jUr=r(\"TypeAlias\"),GUr=r(\"DeclareOpaqueType\"),MUr=r(\"OpaqueType\"),BUr=r(SX),qUr=r(mX),UUr=r(O7),HUr=r(mt),XUr=r(\"ClassDeclaration\"),YUr=r(\"ClassExpression\"),VUr=r(j_),zUr=r(ws),KUr=r(\"superTypeParameters\"),WUr=r(\"superClass\"),JUr=r(O7),$Ur=r(Wn),ZUr=r(mt),QUr=r(Nu),rHr=r(\"Decorator\"),eHr=r(O7),nHr=r(mt),tHr=r(\"ClassImplements\"),uHr=r(Wn),iHr=r(\"ClassBody\"),fHr=r(wv),xHr=r(F2),oHr=r(n1),aHr=r(lv),cHr=r(j_),sHr=r(pv),vHr=r(nu),lHr=r($c),bHr=r(Bn),pHr=r(ii),mHr=r(\"MethodDefinition\"),_Hr=r(T2),yHr=r(cu),hHr=r(nu),dHr=r(pv),kHr=r(C7),wHr=r(Bn),EHr=r(ii),SHr=r(xV),gHr=r(\"Internal Error: Private name found in class prop\"),FHr=r(T2),THr=r(cu),OHr=r(nu),IHr=r(pv),AHr=r(C7),NHr=r(Bn),CHr=r(ii),PHr=r(xV),DHr=r(mt),LHr=r(OX),RHr=r(ji),jHr=r(mt),GHr=r(\"EnumStringMember\"),MHr=r(mt),BHr=r(OX),qHr=r(ji),UHr=r(mt),HHr=r(\"EnumNumberMember\"),XHr=r(ji),YHr=r(mt),VHr=r(\"EnumBooleanMember\"),zHr=r(T8),KHr=r(DT),WHr=r(A4),JHr=r(\"EnumBooleanBody\"),$Hr=r(T8),ZHr=r(DT),QHr=r(A4),rXr=r(\"EnumNumberBody\"),eXr=r(T8),nXr=r(DT),tXr=r(A4),uXr=r(\"EnumStringBody\"),iXr=r(T8),fXr=r(A4),xXr=r(\"EnumSymbolBody\"),oXr=r(Wn),aXr=r(mt),cXr=r(\"EnumDeclaration\"),sXr=r(P7),vXr=r(Wn),lXr=r(O7),bXr=r(mt),pXr=r(\"InterfaceDeclaration\"),mXr=r(O7),_Xr=r(mt),yXr=r(\"InterfaceExtends\"),hXr=r(C7),dXr=r(H4),kXr=r(\"ObjectPattern\"),wXr=r(C7),EXr=r(PH),SXr=r(\"ArrayPattern\"),gXr=r(Cu),FXr=r(bi),TXr=r(DF),OXr=r(C7),IXr=r(ui),AXr=r(tn),NXr=r(l7),CXr=r(iX),PXr=r(l7),DXr=r(iX),LXr=r(Cu),RXr=r(bi),jXr=r(DF),GXr=r(ji),MXr=r(ji),BXr=r(n1),qXr=r(lv),UXr=r(aH),HXr=r(pv),XXr=r(f6),YXr=r(F2),VXr=r($c),zXr=r(Bn),KXr=r(ii),WXr=r(_U),JXr=r(l7),$Xr=r(\"SpreadProperty\"),ZXr=r(Cu),QXr=r(bi),rYr=r(DF),eYr=r(pv),nYr=r(f6),tYr=r(F2),uYr=r($c),iYr=r(Bn),fYr=r(ii),xYr=r(_U),oYr=r(l7),aYr=r(\"SpreadElement\"),cYr=r(R8),sYr=r(Cu),vYr=r(bi),lYr=r(\"ComprehensionBlock\"),bYr=r(\"We should not create Literal nodes for bigints\"),pYr=r(jX),mYr=r(mi),_Yr=r(\"regex\"),yYr=r(c7),hYr=r(Bn),dYr=r(c7),kYr=r(Bn),wYr=r(H6),EYr=r(c7),SYr=r(Bn),gYr=r(H6),FYr=r(x1),TYr=r(Bn),OYr=r(\"BigIntLiteral\"),IYr=r(c7),AYr=r(Bn),NYr=r(H6),CYr=r(Gi),PYr=r(Ci),DYr=r(c7),LYr=r(Bn),RYr=r(H6),jYr=r(Mg),GYr=r(\"quasis\"),MYr=r(\"TemplateLiteral\"),BYr=r(PY),qYr=r(c7),UYr=r(aU),HYr=r(Bn),XYr=r(\"TemplateElement\"),YYr=r(EY),VYr=r(\"tag\"),zYr=r(\"TaggedTemplateExpression\"),KYr=r(U2),WYr=r(G2),JYr=r(D2),$Yr=r($c),ZYr=r(\"declarations\"),QYr=r(\"VariableDeclaration\"),rVr=r(ji),eVr=r(mt),nVr=r(\"VariableDeclarator\"),tVr=r($c),uVr=r(\"Variance\"),iVr=r(\"AnyTypeAnnotation\"),fVr=r(\"MixedTypeAnnotation\"),xVr=r(\"EmptyTypeAnnotation\"),oVr=r(\"VoidTypeAnnotation\"),aVr=r(\"NullLiteralTypeAnnotation\"),cVr=r(\"SymbolTypeAnnotation\"),sVr=r(\"NumberTypeAnnotation\"),vVr=r(\"BigIntTypeAnnotation\"),lVr=r(\"StringTypeAnnotation\"),bVr=r(\"BooleanTypeAnnotation\"),pVr=r(C7),mVr=r(\"NullableTypeAnnotation\"),_Vr=r(O7),yVr=r(xd),hVr=r(p6),dVr=r(i1),kVr=r(Dt),wVr=r(\"FunctionTypeAnnotation\"),EVr=r(qu),SVr=r(C7),gVr=r(ui),FVr=r(RH),TVr=r(qu),OVr=r(C7),IVr=r(ui),AVr=r(RH),NVr=[0,0,0,0,0],CVr=r(\"internalSlots\"),PVr=r(\"callProperties\"),DVr=r(\"indexers\"),LVr=r(H4),RVr=r(\"exact\"),jVr=r(GY),GVr=r(\"ObjectTypeAnnotation\"),MVr=r(aH),BVr=r(\"There should not be computed object type property keys\"),qVr=r(ji),UVr=r(n1),HVr=r(lv),XVr=r($c),YVr=r(cu),VVr=r(X3),zVr=r(nu),KVr=r(qu),WVr=r(F2),JVr=r(Bn),$Vr=r(ii),ZVr=r(\"ObjectTypeProperty\"),QVr=r(l7),rzr=r(\"ObjectTypeSpreadProperty\"),ezr=r(cu),nzr=r(nu),tzr=r(Bn),uzr=r(ii),izr=r(mt),fzr=r(\"ObjectTypeIndexer\"),xzr=r(nu),ozr=r(Bn),azr=r(\"ObjectTypeCallProperty\"),czr=r(Bn),szr=r(F2),vzr=r(nu),lzr=r(qu),bzr=r(mt),pzr=r(\"ObjectTypeInternalSlot\"),mzr=r(Wn),_zr=r(P7),yzr=r(\"InterfaceTypeAnnotation\"),hzr=r(\"elementType\"),dzr=r(\"ArrayTypeAnnotation\"),kzr=r(mt),wzr=r(eY),Ezr=r(\"QualifiedTypeIdentifier\"),Szr=r(O7),gzr=r(mt),Fzr=r(\"GenericTypeAnnotation\"),Tzr=r(\"indexType\"),Ozr=r(\"objectType\"),Izr=r(\"IndexedAccessType\"),Azr=r(qu),Nzr=r(\"OptionalIndexedAccessType\"),Czr=r($6),Pzr=r(\"UnionTypeAnnotation\"),Dzr=r($6),Lzr=r(\"IntersectionTypeAnnotation\"),Rzr=r(l7),jzr=r(\"TypeofTypeAnnotation\"),Gzr=r(mt),Mzr=r(eY),Bzr=r(\"QualifiedTypeofIdentifier\"),qzr=r($6),Uzr=r(\"TupleTypeAnnotation\"),Hzr=r(c7),Xzr=r(Bn),Yzr=r(\"StringLiteralTypeAnnotation\"),Vzr=r(c7),zzr=r(Bn),Kzr=r(\"NumberLiteralTypeAnnotation\"),Wzr=r(c7),Jzr=r(Bn),$zr=r(\"BigIntLiteralTypeAnnotation\"),Zzr=r(Gi),Qzr=r(Ci),rKr=r(c7),eKr=r(Bn),nKr=r(\"BooleanLiteralTypeAnnotation\"),tKr=r(\"ExistsTypeAnnotation\"),uKr=r(C7),iKr=r(\"TypeAnnotation\"),fKr=r(Dt),xKr=r(\"TypeParameterDeclaration\"),oKr=r(_i),aKr=r(cu),cKr=r(DU),sKr=r(ui),vKr=r(\"TypeParameter\"),lKr=r(Dt),bKr=r(gH),pKr=r(Dt),mKr=r(gH),_Kr=r(bv),yKr=r(Ve),hKr=r(\"closingElement\"),dKr=r(\"openingElement\"),kKr=r(\"JSXElement\"),wKr=r(\"closingFragment\"),EKr=r(Ve),SKr=r(\"openingFragment\"),gKr=r(\"JSXFragment\"),FKr=r(\"selfClosing\"),TKr=r(mY),OKr=r(ui),IKr=r(\"JSXOpeningElement\"),AKr=r(\"JSXOpeningFragment\"),NKr=r(ui),CKr=r(\"JSXClosingElement\"),PKr=r(\"JSXClosingFragment\"),DKr=r(Bn),LKr=r(ui),RKr=r(\"JSXAttribute\"),jKr=r(l7),GKr=r(\"JSXSpreadAttribute\"),MKr=r(\"JSXEmptyExpression\"),BKr=r(Nu),qKr=r(\"JSXExpressionContainer\"),UKr=r(Nu),HKr=r(\"JSXSpreadChild\"),XKr=r(c7),YKr=r(Bn),VKr=r(\"JSXText\"),zKr=r(Iv),KKr=r(xk),WKr=r(\"JSXMemberExpression\"),JKr=r(ui),$Kr=r(\"namespace\"),ZKr=r(\"JSXNamespacedName\"),QKr=r(ui),rWr=r(\"JSXIdentifier\"),eWr=r(I4),nWr=r(B2),tWr=r(\"ExportSpecifier\"),uWr=r(B2),iWr=r(\"ImportDefaultSpecifier\"),fWr=r(B2),xWr=r(\"ImportNamespaceSpecifier\"),oWr=r(cX),aWr=r(B2),cWr=r(\"imported\"),sWr=r(\"ImportSpecifier\"),vWr=r(\"Line\"),lWr=r(\"Block\"),bWr=r(Bn),pWr=r(Bn),mWr=r(\"DeclaredPredicate\"),_Wr=r(\"InferredPredicate\"),yWr=r(C2),hWr=r(TX),dWr=r(jH),kWr=r(pv),wWr=r(Iv),EWr=r(xk),SWr=r(\"message\"),gWr=r(hE),FWr=r(HH),TWr=r(g7),OWr=r(cc),IWr=r(I2),AWr=r(Y4),NWr=[0,[3,0,0],r(Vt)],CWr=r(M2),PWr=r(A3),DWr=r(R2),LWr=r(j2),RWr=r(Ju),jWr=r(D7),GWr=r(i1),MWr=r(F7),BWr=r(d4),qWr=r(U2),UWr=r(K6),HWr=r(C8),XWr=r(D2),YWr=r(G2),VWr=r(fs),zWr=r(Ci),KWr=r(Gi),WWr=r(A7),JWr=r(d6),$Wr=r(o6),ZWr=r(N7),QWr=r(_i),rJr=r(_4),eJr=r(q8),nJr=r(np),tJr=r(q2),uJr=r(P7),iJr=r(nu),fJr=r(U4),xJr=r(u1),oJr=r(J2),aJr=r(rs),cJr=r(es),sJr=r(b8),vJr=r(_3),lJr=r(Uu),bJr=r(yv),pJr=r(ws),mJr=r(e7),_Jr=r(y4),yJr=r(k4),hJr=r(a6),dJr=r(E6),kJr=r(Eu),wJr=r(I7),EJr=r(T2),SJr=r(Jc),gJr=r(eh),FJr=r(CS),TJr=r(gs),OJr=r(dx),IJr=r(n6),AJr=r(H8),NJr=r(v7),CJr=r(dv),PJr=r(x1),DJr=r(Tv),LJr=r(es),RJr=r(K4),jJr=r(O2),GJr=r(O6),MJr=[0,r(g3)],BJr=r(C),qJr=[7,0],UJr=r(C),HJr=[0,1],XJr=[0,2],YJr=[0,3],VJr=[0,0],zJr=[0,0],KJr=[0,0,0,0,0],WJr=[0,r(vv),906,6],JJr=[0,r(vv),ZX,6],$Jr=[0,0],ZJr=[0,r(vv),1012,8],QJr=r(X3),r$r=[0,r(vv),1029,8],e$r=r(\"Can not have both `static` and `proto`\"),n$r=r(nu),t$r=r(X3),u$r=r(n1),i$r=r(lv),f$r=r(n1),x$r=r(wv),o$r=r(oH),a$r=[0,0,0,0],c$r=[0,[0,0,0,0,0]],s$r=r(i1),v$r=[0,r(\"a type\")],l$r=[0,0],b$r=[0,0],p$r=[14,1],m$r=[14,0],_$r=[0,r(vv),EH,15],y$r=[0,r(vv),L7,15],h$r=[0,44],d$r=[0,44],k$r=r(M2),w$r=[0,r(C),0],E$r=[0,0,0],S$r=[0,0,0],g$r=[0,0,0],F$r=[0,41],T$r=r(Qu),O$r=r(Qu),I$r=[0,r(\"a regular expression\")],A$r=r(C),N$r=r(C),C$r=r(C),P$r=[0,r(\"src/parser/expression_parser.ml\"),CU,17],D$r=[0,r(\"a template literal part\")],L$r=[0,[0,r(C),r(C)],1],R$r=r(fs),j$r=r(fs),G$r=r(Gi),M$r=r(Ci),B$r=r(\"Invalid bigint \"),q$r=r(\"Invalid bigint binary/octal \"),U$r=r(H2),H$r=r(pH),X$r=r(Nh),Y$r=r(Nh),V$r=r(oU),z$r=[0,44],K$r=[0,1],W$r=[0,1],J$r=[0,1],$$r=[0,1],Z$r=[0,0],Q$r=r(bv),rZr=r(bv),eZr=r(u1),nZr=r(gS),tZr=[0,r(\"the identifier `target`\")],uZr=[0,0],iZr=r(Uu),fZr=r(el),xZr=r(el),oZr=r(yv),aZr=[0,0],cZr=[0,r(\"either a call or access of `super`\")],sZr=r(yv),vZr=[0,0],lZr=[0,1],bZr=[0,0],pZr=[0,1],mZr=[0,0],_Zr=[0,1],yZr=[0,0],hZr=[0,2],dZr=[0,3],kZr=[0,7],wZr=[0,6],EZr=[0,4],SZr=[0,5],gZr=[0,[0,17,[0,2]]],FZr=[0,[0,18,[0,3]]],TZr=[0,[0,19,[0,4]]],OZr=[0,[0,0,[0,5]]],IZr=[0,[0,1,[0,5]]],AZr=[0,[0,2,[0,5]]],NZr=[0,[0,3,[0,5]]],CZr=[0,[0,5,[0,6]]],PZr=[0,[0,7,[0,6]]],DZr=[0,[0,4,[0,6]]],LZr=[0,[0,6,[0,6]]],RZr=[0,[0,8,[0,7]]],jZr=[0,[0,9,[0,7]]],GZr=[0,[0,10,[0,7]]],MZr=[0,[0,11,[0,8]]],BZr=[0,[0,12,[0,8]]],qZr=[0,[0,15,[0,9]]],UZr=[0,[0,13,[0,9]]],HZr=[0,[0,14,[1,10]]],XZr=[0,[0,16,[0,9]]],YZr=[0,[0,21,[0,6]]],VZr=[0,[0,20,[0,6]]],zZr=[23,r(Ke)],KZr=[0,[0,8]],WZr=[0,[0,7]],JZr=[0,[0,6]],$Zr=[0,[0,10]],ZZr=[0,[0,9]],QZr=[0,[0,11]],rQr=[0,[0,5]],eQr=[0,[0,4]],nQr=[0,[0,2]],tQr=[0,[0,3]],uQr=[0,[0,1]],iQr=[0,[0,0]],fQr=[0,[0,12]],xQr=[0,[0,13]],oQr=[0,[0,14]],aQr=[0,0],cQr=r(Uu),sQr=r(u1),vQr=r(gS),lQr=r(el),bQr=r(gs),pQr=r(Uu),mQr=r(u1),_Qr=r(gS),yQr=r(el),hQr=r(o1),dQr=r(Lo),kQr=[17,r(\"JSX fragment\")],wQr=[0,Ni],EQr=[1,Ni],SQr=r(C),gQr=[0,r(C)],FQr=[0,r(g3)],TQr=r(C),OQr=[0,0,0,0],IQr=[0,r(\"src/hack_forked/utils/collections/flow_map.ml\"),717,36],AQr=[0,0,0],NQr=r(q2),CQr=[0,r(C),0],PQr=r(\"unexpected PrivateName in Property, expected a PrivateField\"),DQr=r(wv),LQr=r(oH),RQr=[0,0,0],jQr=r(wv),GQr=r(wv),MQr=r(n1),BQr=r(lv),qQr=[0,1],UQr=[0,1],HQr=[0,1],XQr=r(wv),YQr=r(n1),VQr=r(lv),zQr=r(XO),KQr=r(Eu),WQr=r(dx),JQr=r(\"Internal Error: private name found in object props\"),$Qr=r(cV),ZQr=[0,r(g3)],QQr=r(Eu),r0e=r(dx),e0e=r(Eu),n0e=r(dx),t0e=r(cV),u0e=[10,r(yi)],i0e=[0,1],f0e=r(a1),x0e=r(K2),o0e=[0,r(LS),1763,21],a0e=r(K2),c0e=r(a1),s0e=[0,r(\"a declaration, statement or export specifiers\")],v0e=[0,40],l0e=r(a1),b0e=r(K2),p0e=[0,r(C),r(C),0],m0e=[0,r(EU)],_0e=r(pU),y0e=r(\"exports\"),h0e=[0,1],d0e=[0,1],k0e=[0,0],w0e=r(pU),E0e=[0,40],S0e=r(Hy),g0e=[0,0],F0e=[0,1],T0e=[0,83],O0e=[0,0],I0e=[0,1],A0e=r(a1),N0e=r(a1),C0e=r(K2),P0e=r(a1),D0e=[0,r(\"the keyword `as`\")],L0e=r(a1),R0e=r(K2),j0e=[0,r(EU)],G0e=[0,r(\"the keyword `from`\")],M0e=[0,r(C),r(C),0],B0e=[0,r(tU)],q0e=r(\"Label\"),U0e=[0,r(tU)],H0e=[0,0,0],X0e=[0,29],Y0e=[0,r(LS),431,22],V0e=[0,28],z0e=[0,r(LS),450,22],K0e=[0,0],W0e=r(\"the token `;`\"),J0e=[0,0],$0e=[0,0],Z0e=r(dx),Q0e=r(G2),rre=r(Eu),ere=[0,r(HU)],nre=[15,[0,0]],tre=[0,r(HU)],ure=r(\"use strict\"),ire=[0,0,0,0],fre=r(MI),xre=r(\"Nooo: \"),ore=r(_i),are=r(\"Parser error: No such thing as an expression pattern!\"),cre=r(C),sre=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],vre=[0,r(\"src/parser/parser_flow.ml\"),NT,28],lre=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],bre=r(Bn),pre=r(KY),mre=r(I2),_re=r(Y4),yre=r(HH),hre=r(I2),dre=r(Y4),kre=r(g7),wre=r(hE),Ere=r(\"normal\"),Sre=r(Jc),gre=r(\"jsxTag\"),Fre=r(\"jsxChild\"),Tre=r(\"template\"),Ore=r(MH),Ire=r(\"context\"),Are=r(Jc),Nre=r(\"use_strict\"),Cre=r($6),Pre=r(\"esproposal_export_star_as\"),Dre=r(\"esproposal_decorators\"),Lre=r(\"enums\"),Rre=r(\"Internal error: \");function Gt(t){if(typeof t==\"number\")return 0;switch(t[0]){case 0:return[0,Gt(t[1])];case 1:return[1,Gt(t[1])];case 2:return[2,Gt(t[1])];case 3:return[3,Gt(t[1])];case 4:return[4,Gt(t[1])];case 5:return[5,Gt(t[1])];case 6:return[6,Gt(t[1])];case 7:return[7,Gt(t[1])];case 8:var n=t[1];return[8,n,Gt(t[2])];case 9:var e=t[1];return[9,e,e,Gt(t[3])];case 10:return[10,Gt(t[1])];case 11:return[11,Gt(t[1])];case 12:return[12,Gt(t[1])];case 13:return[13,Gt(t[1])];default:return[14,Gt(t[1])]}}function u7(t,n){if(typeof t==\"number\")return n;switch(t[0]){case 0:return[0,u7(t[1],n)];case 1:return[1,u7(t[1],n)];case 2:return[2,u7(t[1],n)];case 3:return[3,u7(t[1],n)];case 4:return[4,u7(t[1],n)];case 5:return[5,u7(t[1],n)];case 6:return[6,u7(t[1],n)];case 7:return[7,u7(t[1],n)];case 8:var e=t[1];return[8,e,u7(t[2],n)];case 9:var i=t[2],x=t[1];return[9,x,i,u7(t[3],n)];case 10:return[10,u7(t[1],n)];case 11:return[11,u7(t[1],n)];case 12:return[12,u7(t[1],n)];case 13:return[13,u7(t[1],n)];default:return[14,u7(t[1],n)]}}function At(t,n){if(typeof t==\"number\")return n;switch(t[0]){case 0:return[0,At(t[1],n)];case 1:return[1,At(t[1],n)];case 2:var e=t[1];return[2,e,At(t[2],n)];case 3:var i=t[1];return[3,i,At(t[2],n)];case 4:var x=t[3],c=t[2],s=t[1];return[4,s,c,x,At(t[4],n)];case 5:var p=t[3],y=t[2],T=t[1];return[5,T,y,p,At(t[4],n)];case 6:var E=t[3],d=t[2],w=t[1];return[6,w,d,E,At(t[4],n)];case 7:var G=t[3],A=t[2],S=t[1];return[7,S,A,G,At(t[4],n)];case 8:var M=t[3],K=t[2],V=t[1];return[8,V,K,M,At(t[4],n)];case 9:var f0=t[1];return[9,f0,At(t[2],n)];case 10:return[10,At(t[1],n)];case 11:var m0=t[1];return[11,m0,At(t[2],n)];case 12:var k0=t[1];return[12,k0,At(t[2],n)];case 13:var g0=t[2],e0=t[1];return[13,e0,g0,At(t[3],n)];case 14:var x0=t[2],l=t[1];return[14,l,x0,At(t[3],n)];case 15:return[15,At(t[1],n)];case 16:return[16,At(t[1],n)];case 17:var c0=t[1];return[17,c0,At(t[2],n)];case 18:var t0=t[1];return[18,t0,At(t[2],n)];case 19:return[19,At(t[1],n)];case 20:var o0=t[2],w0=t[1];return[20,w0,o0,At(t[3],n)];case 21:var _0=t[1];return[21,_0,At(t[2],n)];case 22:return[22,At(t[1],n)];case 23:var E0=t[1];return[23,E0,At(t[2],n)];default:var U0=t[2],b=t[1];return[24,b,U0,At(t[3],n)]}}function nN(t,n,e){return t[1]===n?(t[1]=e,1):0}function ke(t){throw[0,q7,t]}function Pu(t){throw[0,ZA,t]}M7(0);function gp(t){return 0<=t?t:-t|0}var jre=mH;function Te(t,n){var e=un(t),i=un(n),x=Lt(e+i|0);return Ts(t,0,x,0,e),Ts(n,0,x,e,i),x}function Gre(t){return t?fi0:xi0}function on(t,n){if(t){var e=t[1];return[0,e,on(t[2],n)]}return n}M70(0);var Mre=zV(1),Pc=zV(2);function Bre(t){function n(e){for(var i=e;;){if(i){var x=i[2],c=i[1];try{p1(c)}catch(y){if(y=Et(y),y[1]!==$V)throw y;var s=y}var i=x;continue}return 0}}return n(B70(0))}function vl(t,n){return zA(t,n,0,un(n))}function iz(t){return vl(Pc,t),KV(Pc,10),p1(Pc)}var tN=[0,Bre];function fz(t){for(;;){var n=tN[1],e=[0,1],i=1-nN(tN,n,function(x,c){return function(s){return nN(x,1,0)&&u(t,0),u(c,0)}}(e,n));if(!i)return i}}function uN(t){return u(tN[1],0)}WA(r(sV),uN),K70(0)&&fz(function(t){return l70(t)});function xz(t){return 25<(t+Y3|0)>>>0?t:t+hU|0}var oz=J70(0)[1],ll=(4*z70(0)|0)-1|0;M7(0);var qre=V70(0);function Dc(t){for(var n=0,e=t;;){if(e){var n=n+1|0,e=e[2];continue}return n}}function bl(t){return t?t[1]:ke(mi0)}function az(t){return t?t[2]:ke(pi0)}function Lc(t,n){for(var e=t,i=n;;){if(e){var x=[0,e[1],i],e=e[2],i=x;continue}return i}}function ye(t){return Lc(t,0)}function pl(t){if(t){var n=t[1];return on(n,pl(t[2]))}return 0}function d1(t,n){if(n){var e=n[2],i=u(t,n[1]);return[0,i,d1(t,e)]}return 0}function Fp(t,n){for(var e=0,i=n;;){if(i){var x=i[2],e=[0,u(t,i[1]),e],i=x;continue}return e}}function Du(t,n){for(var e=n;;){if(e){var i=e[2];u(t,e[1]);var e=i;continue}return 0}}function le(t,n,e){for(var i=n,x=e;;){if(x){var c=x[2],i=o(t,i,x[1]),x=c;continue}return i}}function iN(t,n,e){if(n){var i=n[1];return o(t,i,iN(t,n[2],e))}return e}function cz(t,n,e){for(var i=n,x=e;;){if(i){if(x){var c=x[2],s=i[2];o(t,i[1],x[1]);var i=s,x=c;continue}}else if(!x)return 0;return Pu(bi0)}}function fN(t,n){for(var e=n;;){if(e){var i=e[2],x=LV(e[1],t)===0?1:0;if(x)return x;var e=i;continue}return 0}}function Ure(t,n){for(var e=n;;){if(e){var i=e[1],x=e[2],c=i[2];if(LV(i[1],t)===0)return c;var e=x;continue}throw Jt}}function ml(t){var n=0;return function(e){for(var i=n,x=e;;){if(x){var c=x[2],s=x[1];if(u(t,s)){var i=[0,s,i],x=c;continue}var x=c;continue}return ye(i)}}}function k1(t,n){var e=Lt(t);return v70(e,0,t,n),e}function sz(t){var n=b7(t),e=Lt(n);return Fs(t,0,e,0,n),e}function vz(t,n,e){if(0<=n&&0<=e&&!((b7(t)-e|0)>>0||(c=1):65<=x&&(c=1);else{var s=0;if(x!==32)if(43<=x)switch(x+xy|0){case 5:if(i<(e+2|0)&&1>>0?33<(x+SS|0)>>>0&&(c=1):x===2&&(c=1),!c){var n=n+1|0;continue}var s=t,p=[0,0],y=b7(s)-1|0,T=0;if(!(y<0))for(var E=T;;){var d=Xu(s,E),w=0;if(32<=d){var G=d-34|0,A=0;if(58>>0?93<=G&&(A=1):56<(G-1|0)>>>0&&(w=1,A=1),!A){var S=1;w=2}}else 11<=d?d===13&&(w=1):8<=d&&(w=1);switch(w){case 0:var S=4;break;case 1:var S=2;break}p[1]=p[1]+S|0;var M=E+1|0;if(y!==E){var E=M;continue}break}if(p[1]===b7(s))var K=sz(s);else{var V=Lt(p[1]);p[1]=0;var f0=b7(s)-1|0,m0=0;if(!(f0<0))for(var k0=m0;;){var g0=Xu(s,k0),e0=0;if(35<=g0)g0===92?e0=2:zn<=g0?e0=1:e0=3;else if(32<=g0)34<=g0?e0=2:e0=3;else if(14<=g0)e0=1;else switch(g0){case 8:Jn(V,p[1],92),p[1]++,Jn(V,p[1],98);break;case 9:Jn(V,p[1],92),p[1]++,Jn(V,p[1],f1);break;case 10:Jn(V,p[1],92),p[1]++,Jn(V,p[1],Xt);break;case 13:Jn(V,p[1],92),p[1]++,Jn(V,p[1],t1);break;default:e0=1}switch(e0){case 1:Jn(V,p[1],92),p[1]++,Jn(V,p[1],48+(g0/ti|0)|0),p[1]++,Jn(V,p[1],48+((g0/10|0)%10|0)|0),p[1]++,Jn(V,p[1],48+(g0%10|0)|0);break;case 2:Jn(V,p[1],92),p[1]++,Jn(V,p[1],g0);break;case 3:Jn(V,p[1],g0);break}p[1]++;var x0=k0+1|0;if(f0!==k0){var k0=x0;continue}break}var K=V}var i=K}var l=un(i),c0=k1(l+2|0,34);return Ts(i,0,c0,1,l),c0}}function wz(t,n){var e=gp(n),i=rz?rz[1]:70;switch(t[2]){case 0:var x=Ri;break;case 1:var x=R7;break;case 2:var x=69;break;case 3:var x=s7;break;case 4:var x=71;break;case 5:var x=i;break;case 6:var x=L7;break;case 7:var x=72;break;default:var x=70}var c=yz(16);switch(Xv(c,37),t[1]){case 0:break;case 1:Xv(c,43);break;default:Xv(c,32)}return 8<=t[2]&&Xv(c,35),Xv(c,46),Lu(c,r(C+e)),Xv(c,x),dz(c)}function Ap(t,n){if(13<=t){var e=[0,0],i=un(n)-1|0,x=0;if(!(i<0))for(var c=x;;){9<(Vr(n,c)+Wt|0)>>>0||e[1]++;var s=c+1|0;if(i!==c){var c=s;continue}break}var p=e[1],y=Lt(un(n)+((p-1|0)/3|0)|0),T=[0,0],E=function(K){return b1(y,T[1],K),T[1]++,0},d=[0,((p-1|0)%3|0)+1|0],w=un(n)-1|0,G=0;if(!(w<0))for(var A=G;;){var S=Vr(n,A);9<(S+Wt|0)>>>0||(d[1]===0&&(E(95),d[1]=3),d[1]+=-1),E(S);var M=A+1|0;if(w!==A){var A=M;continue}break}return y}return n}function Kre(t,n){switch(t){case 1:var e=gx0;break;case 2:var e=Fx0;break;case 4:var e=Tx0;break;case 5:var e=Ox0;break;case 6:var e=Ix0;break;case 7:var e=Ax0;break;case 8:var e=Nx0;break;case 9:var e=Cx0;break;case 10:var e=Px0;break;case 11:var e=Dx0;break;case 0:case 13:var e=Lx0;break;case 3:case 14:var e=Rx0;break;default:var e=jx0}return Ap(t,hp(e,n))}function Wre(t,n){switch(t){case 1:var e=Qf0;break;case 2:var e=rx0;break;case 4:var e=ex0;break;case 5:var e=nx0;break;case 6:var e=tx0;break;case 7:var e=ux0;break;case 8:var e=ix0;break;case 9:var e=fx0;break;case 10:var e=xx0;break;case 11:var e=ox0;break;case 0:case 13:var e=ax0;break;case 3:case 14:var e=cx0;break;default:var e=sx0}return Ap(t,hp(e,n))}function Jre(t,n){switch(t){case 1:var e=Bf0;break;case 2:var e=qf0;break;case 4:var e=Uf0;break;case 5:var e=Hf0;break;case 6:var e=Xf0;break;case 7:var e=Yf0;break;case 8:var e=Vf0;break;case 9:var e=zf0;break;case 10:var e=Kf0;break;case 11:var e=Wf0;break;case 0:case 13:var e=Jf0;break;case 3:case 14:var e=$f0;break;default:var e=Zf0}return Ap(t,hp(e,n))}function $re(t,n){switch(t){case 1:var e=vx0;break;case 2:var e=lx0;break;case 4:var e=bx0;break;case 5:var e=px0;break;case 6:var e=mx0;break;case 7:var e=_x0;break;case 8:var e=yx0;break;case 9:var e=hx0;break;case 10:var e=dx0;break;case 11:var e=kx0;break;case 0:case 13:var e=wx0;break;case 3:case 14:var e=Ex0;break;default:var e=Sx0}return Ap(t,d70(e,n))}function ss(t,n,e){function i(m0){switch(t[1]){case 0:var k0=45;break;case 1:var k0=43;break;default:var k0=32}return m70(e,n,k0)}function x(m0){var k0=Zu0(e);return k0===3?e<0?jf0:Gf0:4<=k0?Rf0:m0}switch(t[2]){case 5:for(var c=XA(wz(t,n),e),s=0,p=un(c);;){if(s===p)var y=0;else{var T=It(c,s)+v1|0,E=0;if(23>>0?T===55&&(E=1):21<(T-1|0)>>>0&&(E=1),!E){var s=s+1|0;continue}var y=1}var d=y?c:Te(c,Mf0);return x(d)}case 6:return i(0);case 7:var w=i(0),G=b7(w);if(G===0)var A=w;else{var S=Lt(G),M=G-1|0,K=0;if(!(M<0))for(var V=K;;){Jn(S,V,xz(Xu(w,V)));var f0=V+1|0;if(M!==V){var V=f0;continue}break}var A=S}return A;case 8:return x(i(0));default:return XA(wz(t,n),e)}}function kl(t,n,e,i){for(var x=n,c=e,s=i;;){if(typeof s==\"number\")return u(x,c);switch(s[0]){case 0:var p=s[1];return function(ar){return Xn(x,[5,c,ar],p)};case 1:var y=s[1];return function(ar){var _r=0;if(40<=ar)if(ar===92)var Ir=oi0;else zn<=ar?_r=1:_r=2;else if(32<=ar)if(39<=ar)var Ir=ai0;else _r=2;else if(14<=ar)_r=1;else switch(ar){case 8:var Ir=ci0;break;case 9:var Ir=si0;break;case 10:var Ir=vi0;break;case 13:var Ir=li0;break;default:_r=1}switch(_r){case 1:var fe=Lt(4);Jn(fe,0,92),Jn(fe,1,48+(ar/ti|0)|0),Jn(fe,2,48+((ar/10|0)%10|0)|0),Jn(fe,3,48+(ar%10|0)|0);var Ir=fe;break;case 2:var v0=Lt(1);Jn(v0,0,ar);var Ir=v0;break}var P=un(Ir),L=k1(P+2|0,39);return Ts(Ir,0,L,1,P),Xn(x,[4,c,L],y)};case 2:var T=s[2],E=s[1];return mN(x,c,T,E,function(ar){return ar});case 3:return mN(x,c,s[2],s[1],zre);case 4:return Np(x,c,s[4],s[2],s[3],Kre,s[1]);case 5:return Np(x,c,s[4],s[2],s[3],Wre,s[1]);case 6:return Np(x,c,s[4],s[2],s[3],Jre,s[1]);case 7:return Np(x,c,s[4],s[2],s[3],$re,s[1]);case 8:var d=s[4],w=s[3],G=s[2],A=s[1];if(typeof G==\"number\"){if(typeof w==\"number\")return w?function(ar,_r){return Xn(x,[4,c,ss(A,ar,_r)],d)}:function(ar){return Xn(x,[4,c,ss(A,vN(A),ar)],d)};var S=w[1];return function(ar){return Xn(x,[4,c,ss(A,S,ar)],d)}}else{if(G[0]===0){var M=G[2],K=G[1];if(typeof w==\"number\")return w?function(ar,_r){return Xn(x,[4,c,H7(K,M,ss(A,ar,_r))],d)}:function(ar){return Xn(x,[4,c,H7(K,M,ss(A,vN(A),ar))],d)};var V=w[1];return function(ar){return Xn(x,[4,c,H7(K,M,ss(A,V,ar))],d)}}var f0=G[1];if(typeof w==\"number\")return w?function(ar,_r,Ir){return Xn(x,[4,c,H7(f0,ar,ss(A,_r,Ir))],d)}:function(ar,_r){return Xn(x,[4,c,H7(f0,ar,ss(A,vN(A),_r))],d)};var m0=w[1];return function(ar,_r){return Xn(x,[4,c,H7(f0,ar,ss(A,m0,_r))],d)}}case 9:return mN(x,c,s[2],s[1],Gre);case 10:var c=[7,c],s=s[1];continue;case 11:var c=[2,c,s[1]],s=s[2];continue;case 12:var c=[3,c,s[1]],s=s[2];continue;case 13:var k0=s[3],g0=s[2],e0=yz(16);lN(e0,g0);var x0=dz(e0);return function(ar){return Xn(x,[4,c,x0],k0)};case 14:var l=s[3],c0=s[2];return function(ar){var _r=ar[1],Ir=_t(_r,Gt(uu(c0)));if(typeof Ir[2]==\"number\")return Xn(x,c,At(Ir[1],l));throw Ou};case 15:var t0=s[1];return function(ar,_r){return Xn(x,[6,c,function(Ir){return o(ar,Ir,_r)}],t0)};case 16:var o0=s[1];return function(ar){return Xn(x,[6,c,ar],o0)};case 17:var c=[0,c,s[1]],s=s[2];continue;case 18:var w0=s[1];if(w0[0]===0){var _0=s[2],E0=w0[1][1],U0=0,x=function(fe,v0,P){return function(L){return Xn(v0,[1,fe,[0,L]],P)}}(c,x,_0),c=U0,s=E0;continue}var b=s[2],R0=w0[1][1],X=0,x=function(ar,_r,Ir){return function(fe){return Xn(_r,[1,ar,[1,fe]],Ir)}}(c,x,b),c=X,s=R0;continue;case 19:throw[0,Sn,_f0];case 20:var s0=s[3],hr=[8,c,yf0];return function(ar){return Xn(x,hr,s0)};case 21:var Ar=s[2];return function(ar){return Xn(x,[4,c,hp(mf0,ar)],Ar)};case 22:var or=s[1];return function(ar){return Xn(x,[5,c,ar],or)};case 23:var W0=s[2],Lr=s[1];if(typeof Lr==\"number\")switch(Lr){case 0:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 1:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 2:throw[0,Sn,hf0];default:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0])}else switch(Lr[0]){case 0:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 1:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 2:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 3:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 4:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 5:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 6:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 7:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 8:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);case 9:var Tr=Lr[2];return t<50?bN(t+1|0,x,c,Tr,W0):Tu(bN,[0,x,c,Tr,W0]);case 10:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0]);default:return t<50?ct(t+1|0,x,c,W0):Tu(ct,[0,x,c,W0])}default:var Hr=s[3],Or=s[1],fr=u(s[2],0);return t<50?pN(t+1|0,x,c,Hr,Or,fr):Tu(pN,[0,x,c,Hr,Or,fr])}}}function bN(t,n,e,i,x){if(typeof i==\"number\")return t<50?ct(t+1|0,n,e,x):Tu(ct,[0,n,e,x]);switch(i[0]){case 0:var c=i[1];return function(m0){return fi(n,e,c,x)};case 1:var s=i[1];return function(m0){return fi(n,e,s,x)};case 2:var p=i[1];return function(m0){return fi(n,e,p,x)};case 3:var y=i[1];return function(m0){return fi(n,e,y,x)};case 4:var T=i[1];return function(m0){return fi(n,e,T,x)};case 5:var E=i[1];return function(m0){return fi(n,e,E,x)};case 6:var d=i[1];return function(m0){return fi(n,e,d,x)};case 7:var w=i[1];return function(m0){return fi(n,e,w,x)};case 8:var G=i[2];return function(m0){return fi(n,e,G,x)};case 9:var A=i[3],S=i[2],M=bu(uu(i[1]),S);return function(m0){return fi(n,e,u7(M,A),x)};case 10:var K=i[1];return function(m0,k0){return fi(n,e,K,x)};case 11:var V=i[1];return function(m0){return fi(n,e,V,x)};case 12:var f0=i[1];return function(m0){return fi(n,e,f0,x)};case 13:throw[0,Sn,df0];default:throw[0,Sn,kf0]}}function ct(t,n,e,i){var x=[8,e,wf0];return t<50?kl(t+1|0,n,x,i):Tu(kl,[0,n,x,i])}function pN(t,n,e,i,x,c){if(x){var s=x[1];return function(y){return Zre(n,e,i,s,u(c,y))}}var p=[4,e,c];return t<50?kl(t+1|0,n,p,i):Tu(kl,[0,n,p,i])}function Xn(t,n,e){return JA(kl(0,t,n,e))}function fi(t,n,e,i){return JA(bN(0,t,n,e,i))}function Zre(t,n,e,i,x){return JA(pN(0,t,n,e,i,x))}function mN(t,n,e,i,x){if(typeof i==\"number\")return function(y){return Xn(t,[4,n,u(x,y)],e)};if(i[0]===0){var c=i[2],s=i[1];return function(y){return Xn(t,[4,n,H7(s,c,u(x,y))],e)}}var p=i[1];return function(y,T){return Xn(t,[4,n,H7(p,y,u(x,T))],e)}}function Np(t,n,e,i,x,c,s){if(typeof i==\"number\"){if(typeof x==\"number\")return x?function(G,A){return Xn(t,[4,n,Yv(G,o(c,s,A))],e)}:function(G){return Xn(t,[4,n,o(c,s,G)],e)};var p=x[1];return function(G){return Xn(t,[4,n,Yv(p,o(c,s,G))],e)}}else{if(i[0]===0){var y=i[2],T=i[1];if(typeof x==\"number\")return x?function(G,A){return Xn(t,[4,n,H7(T,y,Yv(G,o(c,s,A)))],e)}:function(G){return Xn(t,[4,n,H7(T,y,o(c,s,G))],e)};var E=x[1];return function(G){return Xn(t,[4,n,H7(T,y,Yv(E,o(c,s,G)))],e)}}var d=i[1];if(typeof x==\"number\")return x?function(G,A,S){return Xn(t,[4,n,H7(d,G,Yv(A,o(c,s,S)))],e)}:function(G,A){return Xn(t,[4,n,H7(d,G,o(c,s,A))],e)};var w=x[1];return function(G,A){return Xn(t,[4,n,H7(d,G,Yv(w,o(c,s,A)))],e)}}}function vs(t,n){for(var e=n;;){if(typeof e==\"number\")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return vs(t,i),vl(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];vs(t,s),vl(t,Ef0);var e=p;continue}var y=c[1];vs(t,s),vl(t,Sf0);var e=y;continue;case 6:var T=e[2];return vs(t,e[1]),u(T,t);case 7:return vs(t,e[1]),p1(t);case 8:var E=e[2];return vs(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return vs(t,e[1]),vl(t,d);default:var w=e[2];return vs(t,e[1]),KV(t,w)}}}function ls(t,n){for(var e=n;;){if(typeof e==\"number\")return 0;switch(e[0]){case 0:var i=e[1],x=kz(e[2]);return ls(t,i),hn(t,x);case 1:var c=e[2],s=e[1];if(c[0]===0){var p=c[1];ls(t,s),hn(t,gf0);var e=p;continue}var y=c[1];ls(t,s),hn(t,Ff0);var e=y;continue;case 6:var T=e[2];return ls(t,e[1]),hn(t,u(T,0));case 7:var e=e[1];continue;case 8:var E=e[2];return ls(t,e[1]),Pu(E);case 2:case 4:var d=e[2];return ls(t,e[1]),hn(t,d);default:var w=e[2];return ls(t,e[1]),qi(t,w)}}}function Qre(t){if(qn(t,Of0))return If0;var n=un(t);function e(S){var M=Tf0[1],K=$n(N4);return u(Xn(function(V){return ls(K,V),ke(Mt(K))},0,M),t)}function i(S){for(var M=S;;){if(M===n)return M;var K=It(t,M);if(K!==9&&K!==32)return M;var M=M+1|0}}function x(S,M){for(var K=M;;){if(K===n||25<(It(t,K)+Y3|0)>>>0)return K;var K=K+1|0}}function c(S,M){for(var K=M;;){if(K===n)return K;var V=It(t,K),f0=0;if(48<=V?58<=V||(f0=1):V===45&&(f0=1),f0){var K=K+1|0;continue}return K}}var s=i(0),p=x(s,s),y=m7(t,s,p-s|0),T=i(p),E=c(T,T);if(T===E)var d=0;else try{var w=Bi(m7(t,T,E-T|0)),d=w}catch(S){if(S=Et(S),S[1]!==q7)throw S;var d=e(0)}i(E)!==n&&e(0);var G=0;if(n0(y,Af0)&&n0(y,Nf0))var A=n0(y,Cf0)?n0(y,Pf0)?n0(y,Df0)?n0(y,Lf0)?e(0):1:2:3:0;else G=1;if(G)var A=4;return[0,d,A]}function _N(t,n){var e=n[1],i=0;return Xn(function(x){return vs(t,x),0},i,e)}function yN(t){return _N(Pc,t)}function et(t){var n=t[1];return Xn(function(e){var i=$n(64);return ls(i,e),Mt(i)},0,n)}var hN=[0,0];function dN(t,n){var e=t[1+n];if(1-(typeof e==\"number\"?1:0)){if(h1(e)===Y2)return u(et(ho0),e);if(h1(e)===nd)for(var i=XA(ui0,e),x=0,c=un(i);;){if(c<=x)return Te(i,ii0);var s=It(i,x),p=0;if(48<=s?58<=s||(p=1):s===45&&(p=1),p){var x=x+1|0;continue}return i}return do0}return u(et(yo0),e)}function Ez(t,n){if(t.length-1<=n)return zx0;var e=Ez(t,n+1|0),i=dN(t,n);return o(et(Kx0),i,e)}function Cp(t){function n(k0){for(var g0=k0;;){if(g0){var e0=g0[2],x0=g0[1];try{var l=0,c0=u(x0,t);l=1}catch{}if(l&&c0)return[0,c0[1]];var g0=e0;continue}return 0}}var e=n(hN[1]);if(e)return e[1];if(t===$A)return ao0;if(t===QV)return co0;if(t[1]===ZV){var i=t[2],x=i[3],c=i[2],s=i[1];return p7(et(QA),s,c,x,x+5|0,so0)}if(t[1]===Sn){var p=t[2],y=p[3],T=p[2],E=p[1];return p7(et(QA),E,T,y,y+6|0,vo0)}if(t[1]===sl){var d=t[2],w=d[3],G=d[2],A=d[1];return p7(et(QA),A,G,w,w+6|0,lo0)}if(h1(t)===0){var S=t.length-1,M=t[1][1];if(2>>0)var K=Ez(t,2),V=dN(t,1),f0=o(et(bo0),V,K);else switch(S){case 0:var f0=po0;break;case 1:var f0=mo0;break;default:var m0=dN(t,1),f0=u(et(_o0),m0)}return Te(M,f0)}return t[1]}function kN(t,n){var e=s70(n),i=e.length-1-1|0,x=0;if(!(i<0))for(var c=x;;){var s=tu(e,c)[1+c],p=function(f0){return function(m0){return m0?f0===0?eo0:no0:f0===0?to0:uo0}}(c);if(s[0]===0)var y=s[5],T=s[4],E=s[3],d=s[6]?io0:fo0,w=s[2],G=s[7],A=p(s[1]),M=[0,ei0(et(xo0),A,G,w,d,E,T,y)];else if(s[1])var M=0;else var S=p(0),M=[0,u(et(oo0),S)];if(M){var K=M[1];u(_N(t,Qx0),K)}var V=c+1|0;if(i!==c){var c=V;continue}break}return 0}function Sz(t){for(;;){var n=hN[1],e=1-nN(hN,n,[0,t,n]);if(!e)return e}}var ree=ko0.slice();function eee(t,n){var e=Cp(t);u(yN(Zx0),e),kN(Pc,n);var i=T70(0);if(i<0){var x=gp(i);iz(tu(ree,x)[1+x])}return p1(Pc)}var nee=[0];WA(r(LH),function(t,n){try{try{var e=n?nee:GV(0);try{uN(0)}catch{}try{var i=eee(t,e),x=i}catch(y){y=Et(y);var c=Cp(t);u(yN(Wx0),c),kN(Pc,e);var s=Cp(y);u(yN(Jx0),s),kN(Pc,GV(0));var x=p1(Pc)}var p=x}catch(y){if(y=Et(y),y!==$A)throw y;var p=iz($x0)}return p}catch{return 0}});var wN=[wt,Uo0,M7(0)],Pp=0,gz=-1;function wl(t,n){return t[13]=t[13]+n[3]|0,aN(n,t[28])}var Fz=1000000010;function EN(t,n){return ur(t[17],n,0,un(n))}function Dp(t){return u(t[19],0)}function Tz(t,n,e){return t[9]=t[9]-n|0,EN(t,e),t[11]=0,0}function Lp(t,n){var e=n0(n,qo0);return e&&Tz(t,un(n),n)}function Vv(t,n,e){var i=n[3],x=n[2];Lp(t,n[1]),Dp(t),t[11]=1;var c=(t[6]-e|0)+x|0,s=t[8],p=s<=c?s:c;return t[10]=p,t[9]=t[6]-t[10]|0,u(t[21],t[10]),Lp(t,i)}function Oz(t,n){return Vv(t,Bo0,n)}function El(t,n){var e=n[2],i=n[3];return Lp(t,n[1]),t[9]=t[9]-e|0,u(t[20],e),Lp(t,i)}function Iz(t){for(;;){var n=t[28][2],e=n?[0,n[1]]:0;if(e){var i=e[1],x=i[1],c=i[2],s=0<=x?1:0,p=i[3],y=t[13]-t[12]|0,T=s||(t[9]<=y?1:0);if(T){var E=t[28],d=E[2];if(d){if(d[2]){var w=d[2];E[1]=E[1]-1|0,E[2]=w}else oN(E);var G=0<=x?x:Fz;if(typeof c==\"number\")switch(c){case 0:var A=Hv(t[3]);if(A){var S=A[1][1],M=function(L,Q){if(Q){var i0=Q[1],l0=Q[2];return F70(L,i0)?[0,L,Q]:[0,i0,M(L,l0)]}return[0,L,0]};S[1]=M(t[6]-t[9]|0,S[1])}break;case 1:Uv(t[2]);break;case 2:Uv(t[3]);break;case 3:var K=Hv(t[2]);K?Oz(t,K[1][2]):Dp(t);break;case 4:if(t[10]!==(t[6]-t[9]|0)){var V=t[28],f0=V[2];if(f0){var m0=f0[1];if(f0[2]){var k0=f0[2];V[1]=V[1]-1|0,V[2]=k0;var g0=[0,m0]}else{oN(V);var g0=[0,m0]}}else var g0=0;if(g0){var e0=g0[1],x0=e0[1];t[12]=t[12]-e0[3]|0,t[9]=t[9]+x0|0}}break;default:var l=Uv(t[5]);l&&EN(t,u(t[25],l[1]))}else switch(c[0]){case 0:Tz(t,G,c[1]);break;case 1:var c0=c[2],t0=c[1],o0=c0[1],w0=c0[2],_0=Hv(t[2]);if(_0){var E0=_0[1],U0=E0[2];switch(E0[1]){case 0:El(t,t0);break;case 1:Vv(t,c0,U0);break;case 2:Vv(t,c0,U0);break;case 3:t[9]<(G+un(o0)|0)?Vv(t,c0,U0):El(t,t0);break;case 4:t[11]||!(t[9]<(G+un(o0)|0)||((t[6]-U0|0)+w0|0)>>0)&&Oz(t,_r)}else Dp(t)}var fe=t[9]-Wr|0,v0=Rr===1?1:t[9]>>18|0),e(jt|(n>>>12|0)&63),e(jt|(n>>>6|0)&63),e(jt|n&63)):Hh<=n?(e(hv|n>>>12|0),e(jt|(n>>>6|0)&63),e(jt|n&63)):jt<=n?(e(rt|n>>>6|0),e(jt|n&63)):e(n)}var GN=z0,i7=null,Jz=void 0;function Mp(t){return t!==Jz?1:0}var hee=GN.Array,MN=[wt,ra0,M7(0)],dee=GN.Error;see(ea0,[0,MN,{}]);function $z(t){throw t}Sz(function(t){return t[1]===MN?[0,B7(t[2].toString())]:0}),Sz(function(t){return t instanceof hee?0:[0,B7(t.toString())]});var Dr=pu(e3r,r3r),Rn=pu(t3r,n3r),Bp=pu(i3r,u3r),Tl=pu(x3r,f3r),g1=pu(a3r,o3r),BN=pu(s3r,c3r),Zz=pu(l3r,v3r),qN=pu(p3r,b3r),zv=pu(_3r,m3r),qp=pu(h3r,y3r),$e=pu(k3r,d3r),Yu=pu(E3r,w3r),qe=pu(g3r,S3r),UN=pu(T3r,F3r),di=pu(I3r,O3r),iu=pu(N3r,A3r),F1=pu(P3r,C3r),As=pu(L3r,D3r),HN=function t(n,e,i,x){return t.fun(n,e,i,x)},Qz=function t(n,e,i){return t.fun(n,e,i)},kee=pu(j3r,R3r);N(HN,function(t,n,e,i){u(f(e),j8r),o(f(e),M8r,G8r);var x=i[1];u(f(e),B8r);var c=0;le(function(y,T){y&&u(f(e),R8r);function E(d){return u(t,d)}return ur(iu[1],E,e,T),1},c,x),u(f(e),q8r),u(f(e),U8r),u(f(e),H8r),o(f(e),Y8r,X8r);var s=i[2];u(f(e),V8r);var p=0;return le(function(y,T){y&&u(f(e),L8r);function E(d){return u(t,d)}return ur(iu[1],E,e,T),1},p,s),u(f(e),z8r),u(f(e),K8r),u(f(e),W8r),o(f(e),$8r,J8r),o(n,e,i[3]),u(f(e),Z8r),u(f(e),Q8r)}),N(Qz,function(t,n,e){var i=o(HN,t,n);return o(C0(D8r),i,e)}),mu(G3r,Dr,[0,HN,Qz]);var XN=function t(n,e,i,x){return t.fun(n,e,i,x)},rK=function t(n,e,i){return t.fun(n,e,i)},Up=function t(n,e,i){return t.fun(n,e,i)},eK=function t(n,e){return t.fun(n,e)};N(XN,function(t,n,e,i){u(f(e),N8r),o(n,e,i[1]),u(f(e),C8r);var x=i[2];return ur(Up,function(c){return u(t,c)},e,x),u(f(e),P8r)}),N(rK,function(t,n,e){var i=o(XN,t,n);return o(C0(A8r),i,e)}),N(Up,function(t,n,e){u(f(n),_8r),o(f(n),h8r,y8r);var i=e[1];o(f(n),d8r,i),u(f(n),k8r),u(f(n),w8r),o(f(n),S8r,E8r);var x=e[2];if(x){g(n,g8r);var c=x[1],s=function(y,T){return g(y,m8r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,F8r)}else g(n,T8r);return u(f(n),O8r),u(f(n),I8r)}),N(eK,function(t,n){var e=u(Up,t);return o(C0(p8r),e,n)}),mu(M3r,Rn,[0,XN,rK,Up,eK]);var YN=function t(n,e,i){return t.fun(n,e,i)},nK=function t(n,e){return t.fun(n,e)},Hp=function t(n,e,i){return t.fun(n,e,i)},tK=function t(n,e){return t.fun(n,e)};N(YN,function(t,n,e){u(f(n),v8r),o(t,n,e[1]),u(f(n),l8r);var i=e[2];return ur(Hp,function(x){return u(t,x)},n,i),u(f(n),b8r)}),N(nK,function(t,n){var e=u(YN,t);return o(C0(s8r),e,n)}),N(Hp,function(t,n,e){u(f(n),Z4r),o(f(n),r8r,Q4r);var i=e[1];o(f(n),e8r,i),u(f(n),n8r),u(f(n),t8r),o(f(n),i8r,u8r);var x=e[2];if(x){g(n,f8r);var c=x[1],s=function(y,T){return g(y,$4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,x8r)}else g(n,o8r);return u(f(n),a8r),u(f(n),c8r)}),N(tK,function(t,n){var e=u(Hp,t);return o(C0(J4r),e,n)}),mu(B3r,Bp,[0,YN,nK,Hp,tK]);function uK(t,n){u(f(t),G4r),o(f(t),B4r,M4r);var e=n[1];o(f(t),q4r,e),u(f(t),U4r),u(f(t),H4r),o(f(t),Y4r,X4r);var i=n[2];return o(f(t),V4r,i),u(f(t),z4r),u(f(t),K4r)}var iK=[0,uK,function(t){return o(C0(W4r),uK,t)}],VN=function t(n,e,i){return t.fun(n,e,i)},fK=function t(n,e){return t.fun(n,e)},Xp=function t(n,e){return t.fun(n,e)},xK=function t(n){return t.fun(n)};N(VN,function(t,n,e){u(f(n),k4r),o(f(n),E4r,w4r),o(Xp,n,e[1]),u(f(n),S4r),u(f(n),g4r),o(f(n),T4r,F4r);var i=e[2];o(f(n),O4r,i),u(f(n),I4r),u(f(n),A4r),o(f(n),C4r,N4r);var x=e[3];if(x){g(n,P4r);var c=x[1],s=function(y,T){return g(y,d4r)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,D4r)}else g(n,L4r);return u(f(n),R4r),u(f(n),j4r)}),N(fK,function(t,n){var e=u(VN,t);return o(C0(h4r),e,n)}),N(Xp,function(t,n){if(typeof n==\"number\")return g(t,u4r);switch(n[0]){case 0:u(f(t),i4r);var e=n[1];return o(f(t),f4r,e),u(f(t),x4r);case 1:u(f(t),o4r);var i=n[1];return o(f(t),a4r,i),u(f(t),c4r);case 2:u(f(t),s4r);var x=n[1];return o(f(t),v4r,x),u(f(t),l4r);case 3:u(f(t),b4r);var c=n[1];return o(f(t),p4r,c),u(f(t),m4r);default:return u(f(t),_4r),o(iK[1],t,n[1]),u(f(t),y4r)}}),N(xK,function(t){return o(C0(t4r),Xp,t)}),mu(q3r,Tl,[0,iK,VN,fK,Xp,xK]);var zN=function t(n,e,i){return t.fun(n,e,i)},oK=function t(n,e){return t.fun(n,e)};N(zN,function(t,n,e){u(f(n),Mbr),o(f(n),qbr,Bbr);var i=e[1];o(f(n),Ubr,i),u(f(n),Hbr),u(f(n),Xbr),o(f(n),Vbr,Ybr);var x=e[2];o(f(n),zbr,x),u(f(n),Kbr),u(f(n),Wbr),o(f(n),$br,Jbr);var c=e[3];if(c){g(n,Zbr);var s=c[1],p=function(T,E){return g(T,Gbr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,Qbr)}else g(n,r4r);return u(f(n),e4r),u(f(n),n4r)}),N(oK,function(t,n){var e=u(zN,t);return o(C0(jbr),e,n)}),mu(U3r,g1,[0,zN,oK]);var KN=function t(n,e,i){return t.fun(n,e,i)},aK=function t(n,e){return t.fun(n,e)};N(KN,function(t,n,e){u(f(n),hbr),o(f(n),kbr,dbr);var i=e[1];o(f(n),wbr,i),u(f(n),Ebr),u(f(n),Sbr),o(f(n),Fbr,gbr);var x=e[2];o(f(n),Tbr,x),u(f(n),Obr),u(f(n),Ibr),o(f(n),Nbr,Abr);var c=e[3];if(c){g(n,Cbr);var s=c[1],p=function(T,E){return g(T,ybr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,Pbr)}else g(n,Dbr);return u(f(n),Lbr),u(f(n),Rbr)}),N(aK,function(t,n){var e=u(KN,t);return o(C0(_br),e,n)}),mu(H3r,BN,[0,KN,aK]);var WN=function t(n,e,i){return t.fun(n,e,i)},cK=function t(n,e){return t.fun(n,e)};N(WN,function(t,n,e){u(f(n),Qlr),o(f(n),ebr,rbr);var i=e[1];o(f(n),nbr,i),u(f(n),tbr),u(f(n),ubr),o(f(n),fbr,ibr);var x=e[2];o(f(n),xbr,x),u(f(n),obr),u(f(n),abr),o(f(n),sbr,cbr);var c=e[3];if(c){g(n,vbr);var s=c[1],p=function(T,E){return g(T,Zlr)},y=function(T){return u(t,T)};R(Dr[1],y,p,n,s),g(n,lbr)}else g(n,bbr);return u(f(n),pbr),u(f(n),mbr)}),N(cK,function(t,n){var e=u(WN,t);return o(C0($lr),e,n)}),mu(X3r,Zz,[0,WN,cK]);var JN=function t(n,e,i){return t.fun(n,e,i)},sK=function t(n,e){return t.fun(n,e)};N(JN,function(t,n,e){u(f(n),Glr),o(f(n),Blr,Mlr);var i=e[1];o(f(n),qlr,i),u(f(n),Ulr),u(f(n),Hlr),o(f(n),Ylr,Xlr);var x=e[2];if(x){g(n,Vlr);var c=x[1],s=function(y,T){return g(y,jlr)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,zlr)}else g(n,Klr);return u(f(n),Wlr),u(f(n),Jlr)}),N(sK,function(t,n){var e=u(JN,t);return o(C0(Rlr),e,n)}),mu(Y3r,qN,[0,JN,sK]);var $N=function t(n,e,i){return t.fun(n,e,i)},vK=function t(n,e){return t.fun(n,e)},Yp=function t(n,e){return t.fun(n,e)},lK=function t(n){return t.fun(n)},Vp=function t(n,e,i){return t.fun(n,e,i)},bK=function t(n,e){return t.fun(n,e)};N($N,function(t,n,e){u(f(n),Plr),o(t,n,e[1]),u(f(n),Dlr);var i=e[2];return ur(Vp,function(x){return u(t,x)},n,i),u(f(n),Llr)}),N(vK,function(t,n){var e=u($N,t);return o(C0(Clr),e,n)}),N(Yp,function(t,n){return n?g(t,Alr):g(t,Nlr)}),N(lK,function(t){return o(C0(Ilr),Yp,t)}),N(Vp,function(t,n,e){u(f(n),_lr),o(f(n),hlr,ylr),o(Yp,n,e[1]),u(f(n),dlr),u(f(n),klr),o(f(n),Elr,wlr);var i=e[2];if(i){g(n,Slr);var x=i[1],c=function(p,y){return g(p,mlr)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,glr)}else g(n,Flr);return u(f(n),Tlr),u(f(n),Olr)}),N(bK,function(t,n){var e=u(Vp,t);return o(C0(plr),e,n)}),mu(V3r,zv,[0,$N,vK,Yp,lK,Vp,bK]);var ZN=function t(n,e,i,x){return t.fun(n,e,i,x)},pK=function t(n,e,i){return t.fun(n,e,i)},QN=function t(n,e,i,x){return t.fun(n,e,i,x)},mK=function t(n,e,i){return t.fun(n,e,i)};N(ZN,function(t,n,e,i){u(f(e),vlr),o(t,e,i[1]),u(f(e),llr);var x=i[2];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(qp[3],s,c,e,x),u(f(e),blr)}),N(pK,function(t,n,e){var i=o(ZN,t,n);return o(C0(slr),i,e)}),N(QN,function(t,n,e,i){u(f(e),Q2r),o(f(e),elr,rlr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),nlr),u(f(e),tlr),o(f(e),ilr,ulr);var p=i[2];if(p){g(e,flr);var y=p[1],T=function(d,w){return g(d,Z2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,xlr)}else g(e,olr);return u(f(e),alr),u(f(e),clr)}),N(mK,function(t,n,e){var i=o(QN,t,n);return o(C0($2r),i,e)}),mu(z3r,qp,[0,ZN,pK,QN,mK]);var rC=function t(n,e,i,x){return t.fun(n,e,i,x)},_K=function t(n,e,i){return t.fun(n,e,i)},zp=function t(n,e,i,x){return t.fun(n,e,i,x)},yK=function t(n,e,i){return t.fun(n,e,i)};N(rC,function(t,n,e,i){u(f(e),K2r),o(t,e,i[1]),u(f(e),W2r);var x=i[2];function c(s){return u(n,s)}return R(zp,function(s){return u(t,s)},c,e,x),u(f(e),J2r)}),N(_K,function(t,n,e){var i=o(rC,t,n);return o(C0(z2r),i,e)}),N(zp,function(t,n,e,i){u(f(e),A2r),o(f(e),C2r,N2r);var x=i[1];if(x){g(e,P2r);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(Rn[1],p,s,e,c),g(e,D2r)}else g(e,L2r);u(f(e),R2r),u(f(e),j2r),o(f(e),M2r,G2r);var y=i[2];function T(w){return u(n,w)}function E(w){return u(t,w)}R($e[13],E,T,e,y),u(f(e),B2r),u(f(e),q2r),o(f(e),H2r,U2r);var d=i[3];return o(f(e),X2r,d),u(f(e),Y2r),u(f(e),V2r)}),N(yK,function(t,n,e){var i=o(zp,t,n);return o(C0(I2r),i,e)});var eC=[0,rC,_K,zp,yK],nC=function t(n,e,i,x){return t.fun(n,e,i,x)},hK=function t(n,e,i){return t.fun(n,e,i)},Kp=function t(n,e,i,x){return t.fun(n,e,i,x)},dK=function t(n,e,i){return t.fun(n,e,i)};N(nC,function(t,n,e,i){u(f(e),F2r),o(t,e,i[1]),u(f(e),T2r);var x=i[2];function c(s){return u(n,s)}return R(Kp,function(s){return u(t,s)},c,e,x),u(f(e),O2r)}),N(hK,function(t,n,e){var i=o(nC,t,n);return o(C0(g2r),i,e)}),N(Kp,function(t,n,e,i){u(f(e),l2r),o(f(e),p2r,b2r);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(eC[1],s,c,e,x),u(f(e),m2r),u(f(e),_2r),o(f(e),h2r,y2r);var p=i[2];if(p){g(e,d2r);var y=p[1],T=function(d,w){return g(d,v2r)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,k2r)}else g(e,w2r);return u(f(e),E2r),u(f(e),S2r)}),N(dK,function(t,n,e){var i=o(Kp,t,n);return o(C0(s2r),i,e)});var kK=[0,nC,hK,Kp,dK],tC=function t(n,e,i,x){return t.fun(n,e,i,x)},wK=function t(n,e,i){return t.fun(n,e,i)},Wp=function t(n,e,i,x){return t.fun(n,e,i,x)},EK=function t(n,e,i){return t.fun(n,e,i)};N(tC,function(t,n,e,i){u(f(e),o2r),o(t,e,i[1]),u(f(e),a2r);var x=i[2];function c(s){return u(n,s)}return R(Wp,function(s){return u(t,s)},c,e,x),u(f(e),c2r)}),N(wK,function(t,n,e){var i=o(tC,t,n);return o(C0(x2r),i,e)}),N(Wp,function(t,n,e,i){u(f(e),Wvr),o(f(e),$vr,Jvr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Zvr),u(f(e),Qvr),o(f(e),e2r,r2r);var p=i[2];if(p){g(e,n2r);var y=p[1],T=function(d,w){return g(d,Kvr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,t2r)}else g(e,u2r);return u(f(e),i2r),u(f(e),f2r)}),N(EK,function(t,n,e){var i=o(Wp,t,n);return o(C0(zvr),i,e)});var SK=[0,tC,wK,Wp,EK],uC=function t(n,e,i,x){return t.fun(n,e,i,x)},gK=function t(n,e,i){return t.fun(n,e,i)},Jp=function t(n,e,i,x){return t.fun(n,e,i,x)},FK=function t(n,e,i){return t.fun(n,e,i)};N(uC,function(t,n,e,i){u(f(e),Xvr),o(t,e,i[1]),u(f(e),Yvr);var x=i[2];function c(s){return u(n,s)}return R(Jp,function(s){return u(t,s)},c,e,x),u(f(e),Vvr)}),N(gK,function(t,n,e){var i=o(uC,t,n);return o(C0(Hvr),i,e)}),N(Jp,function(t,n,e,i){u(f(e),pvr),o(f(e),_vr,mvr);var x=i[1];if(x){g(e,yvr);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(SK[1],p,s,e,c),g(e,hvr)}else g(e,dvr);u(f(e),kvr),u(f(e),wvr),o(f(e),Svr,Evr);var y=i[2];u(f(e),gvr);var T=0;le(function(V,f0){V&&u(f(e),bvr);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(eC[1],k0,m0,e,f0),1},T,y),u(f(e),Fvr),u(f(e),Tvr),u(f(e),Ovr),o(f(e),Avr,Ivr);var E=i[3];if(E){g(e,Nvr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(kK[1],G,w,e,d),g(e,Cvr)}else g(e,Pvr);u(f(e),Dvr),u(f(e),Lvr),o(f(e),jvr,Rvr);var A=i[4];if(A){g(e,Gvr);var S=A[1],M=function(V,f0){u(f(V),vvr);var m0=0;return le(function(k0,g0){k0&&u(f(V),svr);function e0(x0){return u(t,x0)}return ur(iu[1],e0,V,g0),1},m0,f0),u(f(V),lvr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,Mvr)}else g(e,Bvr);return u(f(e),qvr),u(f(e),Uvr)}),N(FK,function(t,n,e){var i=o(Jp,t,n);return o(C0(cvr),i,e)});var TK=[0,uC,gK,Jp,FK],iC=function t(n,e,i,x){return t.fun(n,e,i,x)},OK=function t(n,e,i){return t.fun(n,e,i)};N(iC,function(t,n,e,i){u(f(e),q1r),o(f(e),H1r,U1r);var x=i[1];if(x){g(e,X1r);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R($e[22][1],p,s,e,c),g(e,Y1r)}else g(e,V1r);u(f(e),z1r),u(f(e),K1r),o(f(e),J1r,W1r);var y=i[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(TK[1],E,T,e,y),u(f(e),$1r),u(f(e),Z1r),o(f(e),rvr,Q1r);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),evr),u(f(e),nvr),o(f(e),uvr,tvr);var A=i[4];if(A){g(e,ivr);var S=A[1],M=function(V,f0){return g(V,B1r)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,fvr)}else g(e,xvr);return u(f(e),ovr),u(f(e),avr)}),N(OK,function(t,n,e){var i=o(iC,t,n);return o(C0(M1r),i,e)});var Ol=[0,eC,kK,SK,TK,iC,OK],$p=function t(n,e,i,x){return t.fun(n,e,i,x)},IK=function t(n,e,i){return t.fun(n,e,i)},Zp=function t(n,e,i,x){return t.fun(n,e,i,x)},AK=function t(n,e,i){return t.fun(n,e,i)},Qp=function t(n,e,i,x){return t.fun(n,e,i,x)},NK=function t(n,e,i){return t.fun(n,e,i)};N($p,function(t,n,e,i){if(i[0]===0){u(f(e),L1r);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),R1r)}u(f(e),j1r);var p=i[1];function y(T){return u(n,T)}return R(Zp,function(T){return u(t,T)},y,e,p),u(f(e),G1r)}),N(IK,function(t,n,e){var i=o($p,t,n);return o(C0(D1r),i,e)}),N(Zp,function(t,n,e,i){u(f(e),N1r),o(t,e,i[1]),u(f(e),C1r);var x=i[2];function c(s){return u(n,s)}return R(Qp,function(s){return u(t,s)},c,e,x),u(f(e),P1r)}),N(AK,function(t,n,e){var i=o(Zp,t,n);return o(C0(A1r),i,e)}),N(Qp,function(t,n,e,i){u(f(e),k1r),o(f(e),E1r,w1r);var x=i[1];function c(T){return u(n,T)}R($p,function(T){return u(t,T)},c,e,x),u(f(e),S1r),u(f(e),g1r),o(f(e),T1r,F1r);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),O1r),u(f(e),I1r)}),N(NK,function(t,n,e){var i=o(Qp,t,n);return o(C0(d1r),i,e)});var CK=[0,$p,IK,Zp,AK,Qp,NK],fC=function t(n,e,i,x){return t.fun(n,e,i,x)},PK=function t(n,e,i){return t.fun(n,e,i)};N(fC,function(t,n,e,i){u(f(e),e1r),o(f(e),t1r,n1r);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(CK[1],s,c,e,x),u(f(e),u1r),u(f(e),i1r),o(f(e),x1r,f1r);var p=i[2];if(p){g(e,o1r);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,a1r)}else g(e,c1r);u(f(e),s1r),u(f(e),v1r),o(f(e),b1r,l1r);var d=i[3];if(d){g(e,p1r);var w=d[1],G=function(S,M){return g(S,r1r)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,m1r)}else g(e,_1r);return u(f(e),y1r),u(f(e),h1r)}),N(PK,function(t,n,e){var i=o(fC,t,n);return o(C0(Qsr),i,e)});var xC=[0,CK,fC,PK],oC=function t(n,e,i,x){return t.fun(n,e,i,x)},DK=function t(n,e,i){return t.fun(n,e,i)};N(oC,function(t,n,e,i){u(f(e),jsr),o(f(e),Msr,Gsr);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R($e[13],s,c,e,x),u(f(e),Bsr),u(f(e),qsr),o(f(e),Hsr,Usr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[13],T,y,e,p),u(f(e),Xsr),u(f(e),Ysr),o(f(e),zsr,Vsr);var E=i[3];if(E){g(e,Ksr);var d=E[1],w=function(A,S){return g(A,Rsr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Wsr)}else g(e,Jsr);return u(f(e),$sr),u(f(e),Zsr)}),N(DK,function(t,n,e){var i=o(oC,t,n);return o(C0(Lsr),i,e)});var aC=[0,oC,DK],cC=function t(n,e,i,x){return t.fun(n,e,i,x)},LK=function t(n,e,i){return t.fun(n,e,i)};N(cC,function(t,n,e,i){u(f(e),gsr),o(f(e),Tsr,Fsr);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(aC[1],s,c,e,x),u(f(e),Osr),u(f(e),Isr),o(f(e),Nsr,Asr);var p=i[2];return o(f(e),Csr,p),u(f(e),Psr),u(f(e),Dsr)}),N(LK,function(t,n,e){var i=o(cC,t,n);return o(C0(Ssr),i,e)});var RK=[0,cC,LK],sC=function t(n,e,i,x){return t.fun(n,e,i,x)},jK=function t(n,e,i){return t.fun(n,e,i)},r5=function t(n,e,i,x){return t.fun(n,e,i,x)},GK=function t(n,e,i){return t.fun(n,e,i)},e5=function t(n,e,i,x){return t.fun(n,e,i,x)},MK=function t(n,e,i){return t.fun(n,e,i)};N(sC,function(t,n,e,i){u(f(e),ksr),o(t,e,i[1]),u(f(e),wsr);var x=i[2];function c(s){return u(n,s)}return R(r5,function(s){return u(t,s)},c,e,x),u(f(e),Esr)}),N(jK,function(t,n,e){var i=o(sC,t,n);return o(C0(dsr),i,e)}),N(r5,function(t,n,e,i){u(f(e),Ncr),o(f(e),Pcr,Ccr);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(qe[7][1][1],s,c,e,x),u(f(e),Dcr),u(f(e),Lcr),o(f(e),jcr,Rcr);var p=i[2];function y(m0){return u(n,m0)}R(e5,function(m0){return u(t,m0)},y,e,p),u(f(e),Gcr),u(f(e),Mcr),o(f(e),qcr,Bcr);var T=i[3];o(f(e),Ucr,T),u(f(e),Hcr),u(f(e),Xcr),o(f(e),Vcr,Ycr);var E=i[4];o(f(e),zcr,E),u(f(e),Kcr),u(f(e),Wcr),o(f(e),$cr,Jcr);var d=i[5];o(f(e),Zcr,d),u(f(e),Qcr),u(f(e),rsr),o(f(e),nsr,esr);var w=i[6];o(f(e),tsr,w),u(f(e),usr),u(f(e),isr),o(f(e),xsr,fsr);var G=i[7];if(G){g(e,osr);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,asr)}else g(e,csr);u(f(e),ssr),u(f(e),vsr),o(f(e),bsr,lsr);var M=i[8];if(M){g(e,psr);var K=M[1],V=function(m0,k0){return g(m0,Acr)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,msr)}else g(e,_sr);return u(f(e),ysr),u(f(e),hsr)}),N(GK,function(t,n,e){var i=o(r5,t,n);return o(C0(Icr),i,e)}),N(e5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),_cr);var x=i[1],c=function(S){return u(n,S)},s=function(S){return u(t,S)};return R($e[13],s,c,e,x),u(f(e),ycr);case 1:var p=i[1];u(f(e),hcr),u(f(e),dcr),o(t,e,p[1]),u(f(e),kcr);var y=p[2],T=function(S){return u(n,S)},E=function(S){return u(t,S)};return R(Ol[5],E,T,e,y),u(f(e),wcr),u(f(e),Ecr);default:var d=i[1];u(f(e),Scr),u(f(e),gcr),o(t,e,d[1]),u(f(e),Fcr);var w=d[2],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(Ol[5],A,G,e,w),u(f(e),Tcr),u(f(e),Ocr)}}),N(MK,function(t,n,e){var i=o(e5,t,n);return o(C0(mcr),i,e)});var BK=[0,sC,jK,r5,GK,e5,MK],vC=function t(n,e,i,x){return t.fun(n,e,i,x)},qK=function t(n,e,i){return t.fun(n,e,i)},n5=function t(n,e,i,x){return t.fun(n,e,i,x)},UK=function t(n,e,i){return t.fun(n,e,i)};N(vC,function(t,n,e,i){u(f(e),lcr),o(t,e,i[1]),u(f(e),bcr);var x=i[2];function c(s){return u(n,s)}return R(n5,function(s){return u(t,s)},c,e,x),u(f(e),pcr)}),N(qK,function(t,n,e){var i=o(vC,t,n);return o(C0(vcr),i,e)}),N(n5,function(t,n,e,i){u(f(e),rcr),o(f(e),ncr,ecr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),tcr),u(f(e),ucr),o(f(e),fcr,icr);var p=i[2];if(p){g(e,xcr);var y=p[1],T=function(d,w){return g(d,Qar)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,ocr)}else g(e,acr);return u(f(e),ccr),u(f(e),scr)}),N(UK,function(t,n,e){var i=o(n5,t,n);return o(C0(Zar),i,e)});var HK=[0,vC,qK,n5,UK],t5=function t(n,e,i,x){return t.fun(n,e,i,x)},XK=function t(n,e,i){return t.fun(n,e,i)},lC=function t(n,e,i,x){return t.fun(n,e,i,x)},YK=function t(n,e,i){return t.fun(n,e,i)};N(t5,function(t,n,e,i){u(f(e),_ar),o(f(e),har,yar);var x=i[1];if(x){g(e,dar);var c=x[1],s=function(g0){return u(t,g0)},p=function(g0){return u(t,g0)};R(Rn[1],p,s,e,c),g(e,kar)}else g(e,war);u(f(e),Ear),u(f(e),Sar),o(f(e),Far,gar);var y=i[2];function T(g0){return u(n,g0)}function E(g0){return u(t,g0)}R($e[13],E,T,e,y),u(f(e),Tar),u(f(e),Oar),o(f(e),Aar,Iar);var d=i[3];function w(g0){return u(n,g0)}function G(g0){return u(t,g0)}R($e[13],G,w,e,d),u(f(e),Nar),u(f(e),Car),o(f(e),Dar,Par);var A=i[4];o(f(e),Lar,A),u(f(e),Rar),u(f(e),jar),o(f(e),Mar,Gar);var S=i[5];if(S){g(e,Bar);var M=S[1],K=function(g0){return u(t,g0)};ur(zv[1],K,e,M),g(e,qar)}else g(e,Uar);u(f(e),Har),u(f(e),Xar),o(f(e),Var,Yar);var V=i[6];if(V){g(e,zar);var f0=V[1],m0=function(g0,e0){return g(g0,mar)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,Kar)}else g(e,War);return u(f(e),Jar),u(f(e),$ar)}),N(XK,function(t,n,e){var i=o(t5,t,n);return o(C0(par),i,e)}),N(lC,function(t,n,e,i){u(f(e),sar),o(t,e,i[1]),u(f(e),lar);var x=i[2];function c(s){return u(n,s)}return R(t5,function(s){return u(t,s)},c,e,x),u(f(e),bar)}),N(YK,function(t,n,e){var i=o(lC,t,n);return o(C0(car),i,e)});var VK=[0,t5,XK,lC,YK],bC=function t(n,e,i,x){return t.fun(n,e,i,x)},zK=function t(n,e,i){return t.fun(n,e,i)},u5=function t(n,e,i,x){return t.fun(n,e,i,x)},KK=function t(n,e,i){return t.fun(n,e,i)};N(bC,function(t,n,e,i){u(f(e),xar),o(t,e,i[1]),u(f(e),oar);var x=i[2];function c(s){return u(n,s)}return R(u5,function(s){return u(t,s)},c,e,x),u(f(e),aar)}),N(zK,function(t,n,e){var i=o(bC,t,n);return o(C0(far),i,e)}),N(u5,function(t,n,e,i){u(f(e),Bor),o(f(e),Uor,qor);var x=i[1];u(f(e),Hor),o(t,e,x[1]),u(f(e),Xor);var c=x[2];function s(G){return u(n,G)}function p(G){return u(t,G)}R(Ol[5],p,s,e,c),u(f(e),Yor),u(f(e),Vor),u(f(e),zor),o(f(e),Wor,Kor);var y=i[2];o(f(e),Jor,y),u(f(e),$or),u(f(e),Zor),o(f(e),rar,Qor);var T=i[3];if(T){g(e,ear);var E=T[1],d=function(G,A){return g(G,Mor)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,nar)}else g(e,tar);return u(f(e),uar),u(f(e),iar)}),N(KK,function(t,n,e){var i=o(u5,t,n);return o(C0(Gor),i,e)});var WK=[0,bC,zK,u5,KK],pC=function t(n,e,i,x){return t.fun(n,e,i,x)},JK=function t(n,e,i){return t.fun(n,e,i)},i5=function t(n,e,i,x){return t.fun(n,e,i,x)},$K=function t(n,e,i){return t.fun(n,e,i)};N(pC,function(t,n,e,i){u(f(e),Lor),o(t,e,i[1]),u(f(e),Ror);var x=i[2];function c(s){return u(n,s)}return R(i5,function(s){return u(t,s)},c,e,x),u(f(e),jor)}),N(JK,function(t,n,e){var i=o(pC,t,n);return o(C0(Dor),i,e)}),N(i5,function(t,n,e,i){u(f(e),nor),o(f(e),uor,tor);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),ior),u(f(e),xor),o(f(e),aor,oor);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[13],T,y,e,p),u(f(e),cor),u(f(e),sor),o(f(e),lor,vor);var E=i[3];o(f(e),bor,E),u(f(e),por),u(f(e),mor),o(f(e),yor,_or);var d=i[4];o(f(e),hor,d),u(f(e),dor),u(f(e),kor),o(f(e),Eor,wor);var w=i[5];o(f(e),Sor,w),u(f(e),gor),u(f(e),For),o(f(e),Oor,Tor);var G=i[6];if(G){g(e,Ior);var A=G[1],S=function(K,V){return g(K,eor)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Aor)}else g(e,Nor);return u(f(e),Cor),u(f(e),Por)}),N($K,function(t,n,e){var i=o(i5,t,n);return o(C0(ror),i,e)});var ZK=[0,pC,JK,i5,$K],mC=function t(n,e,i,x){return t.fun(n,e,i,x)},QK=function t(n,e,i){return t.fun(n,e,i)},f5=function t(n,e,i,x){return t.fun(n,e,i,x)},rW=function t(n,e,i){return t.fun(n,e,i)};N(mC,function(t,n,e,i){u(f(e),Axr),o(f(e),Cxr,Nxr);var x=i[1];o(f(e),Pxr,x),u(f(e),Dxr),u(f(e),Lxr),o(f(e),jxr,Rxr);var c=i[2];o(f(e),Gxr,c),u(f(e),Mxr),u(f(e),Bxr),o(f(e),Uxr,qxr);var s=i[3];u(f(e),Hxr);var p=0;le(function(w,G){w&&u(f(e),Ixr);function A(S){return u(n,S)}return R(f5,function(S){return u(t,S)},A,e,G),1},p,s),u(f(e),Xxr),u(f(e),Yxr),u(f(e),Vxr),o(f(e),Kxr,zxr);var y=i[4];if(y){g(e,Wxr);var T=y[1],E=function(w,G){u(f(w),Txr);var A=0;return le(function(S,M){S&&u(f(w),Fxr);function K(V){return u(t,V)}return ur(iu[1],K,w,M),1},A,G),u(f(w),Oxr)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Jxr)}else g(e,$xr);return u(f(e),Zxr),u(f(e),Qxr)}),N(QK,function(t,n,e){var i=o(mC,t,n);return o(C0(gxr),i,e)}),N(f5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),pxr);var x=i[1],c=function(f0){return u(n,f0)},s=function(f0){return u(t,f0)};return R(BK[1],s,c,e,x),u(f(e),mxr);case 1:u(f(e),_xr);var p=i[1],y=function(f0){return u(n,f0)},T=function(f0){return u(t,f0)};return R(HK[1],T,y,e,p),u(f(e),yxr);case 2:u(f(e),hxr);var E=i[1],d=function(f0){return u(n,f0)},w=function(f0){return u(t,f0)};return R(VK[3],w,d,e,E),u(f(e),dxr);case 3:u(f(e),kxr);var G=i[1],A=function(f0){return u(n,f0)},S=function(f0){return u(t,f0)};return R(WK[1],S,A,e,G),u(f(e),wxr);default:u(f(e),Exr);var M=i[1],K=function(f0){return u(n,f0)},V=function(f0){return u(t,f0)};return R(ZK[1],V,K,e,M),u(f(e),Sxr)}}),N(rW,function(t,n,e){var i=o(f5,t,n);return o(C0(bxr),i,e)});var _C=[0,BK,HK,VK,WK,ZK,mC,QK,f5,rW],yC=function t(n,e,i,x){return t.fun(n,e,i,x)},eW=function t(n,e,i){return t.fun(n,e,i)};N(yC,function(t,n,e,i){u(f(e),zfr),o(f(e),Wfr,Kfr);var x=i[1];u(f(e),Jfr),o(t,e,x[1]),u(f(e),$fr);var c=x[2];function s(A){return u(n,A)}function p(A){return u(t,A)}R(_C[6],p,s,e,c),u(f(e),Zfr),u(f(e),Qfr),u(f(e),rxr),o(f(e),nxr,exr);var y=i[2];u(f(e),txr);var T=0;le(function(A,S){A&&u(f(e),Hfr),u(f(e),Xfr),o(t,e,S[1]),u(f(e),Yfr);var M=S[2];function K(f0){return u(n,f0)}function V(f0){return u(t,f0)}return R(xC[2],V,K,e,M),u(f(e),Vfr),1},T,y),u(f(e),uxr),u(f(e),ixr),u(f(e),fxr),o(f(e),oxr,xxr);var E=i[3];if(E){g(e,axr);var d=E[1],w=function(A,S){return g(A,Ufr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,cxr)}else g(e,sxr);return u(f(e),vxr),u(f(e),lxr)}),N(eW,function(t,n,e){var i=o(yC,t,n);return o(C0(qfr),i,e)});var nW=[0,yC,eW],hC=function t(n,e,i,x){return t.fun(n,e,i,x)},tW=function t(n,e,i){return t.fun(n,e,i)};N(hC,function(t,n,e,i){u(f(e),Ifr),o(f(e),Nfr,Afr);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),Cfr),u(f(e),Pfr),o(f(e),Lfr,Dfr);var p=i[2];if(p){g(e,Rfr);var y=p[1],T=function(d,w){return g(d,Ofr)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,jfr)}else g(e,Gfr);return u(f(e),Mfr),u(f(e),Bfr)}),N(tW,function(t,n,e){var i=o(hC,t,n);return o(C0(Tfr),i,e)});var uW=[0,hC,tW],x5=function t(n,e,i,x){return t.fun(n,e,i,x)},iW=function t(n,e,i){return t.fun(n,e,i)},o5=function t(n,e,i,x){return t.fun(n,e,i,x)},fW=function t(n,e,i){return t.fun(n,e,i)},a5=function t(n,e,i,x){return t.fun(n,e,i,x)},xW=function t(n,e,i){return t.fun(n,e,i)};N(x5,function(t,n,e,i){if(i[0]===0){u(f(e),Efr);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(Rn[1],s,c,e,x),u(f(e),Sfr)}u(f(e),gfr);var p=i[1];function y(T){return u(n,T)}return R(a5,function(T){return u(t,T)},y,e,p),u(f(e),Ffr)}),N(iW,function(t,n,e){var i=o(x5,t,n);return o(C0(wfr),i,e)}),N(o5,function(t,n,e,i){u(f(e),lfr),o(f(e),pfr,bfr);var x=i[1];function c(T){return u(n,T)}R(x5,function(T){return u(t,T)},c,e,x),u(f(e),mfr),u(f(e),_fr),o(f(e),hfr,yfr);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(Rn[1],y,p,e,s),u(f(e),dfr),u(f(e),kfr)}),N(fW,function(t,n,e){var i=o(o5,t,n);return o(C0(vfr),i,e)}),N(a5,function(t,n,e,i){u(f(e),afr),o(n,e,i[1]),u(f(e),cfr);var x=i[2];function c(s){return u(n,s)}return R(o5,function(s){return u(t,s)},c,e,x),u(f(e),sfr)}),N(xW,function(t,n,e){var i=o(a5,t,n);return o(C0(ofr),i,e)});var oW=[0,x5,iW,o5,fW,a5,xW],dC=function t(n,e,i,x){return t.fun(n,e,i,x)},aW=function t(n,e,i){return t.fun(n,e,i)};N(dC,function(t,n,e,i){u(f(e),Jir),o(f(e),Zir,$ir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(oW[1],s,c,e,x),u(f(e),Qir),u(f(e),rfr),o(f(e),nfr,efr);var p=i[2];if(p){g(e,tfr);var y=p[1],T=function(d,w){return g(d,Wir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,ufr)}else g(e,ifr);return u(f(e),ffr),u(f(e),xfr)}),N(aW,function(t,n,e){var i=o(dC,t,n);return o(C0(Kir),i,e)});var cW=[0,oW,dC,aW],kC=function t(n,e,i,x){return t.fun(n,e,i,x)},sW=function t(n,e,i){return t.fun(n,e,i)};N(kC,function(t,n,e,i){u(f(e),Dir),o(f(e),Rir,Lir);var x=i[1];u(f(e),jir);var c=0;le(function(E,d){E&&u(f(e),Pir);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),Gir),u(f(e),Mir),u(f(e),Bir),o(f(e),Uir,qir);var s=i[2];if(s){g(e,Hir);var p=s[1],y=function(E,d){return g(E,Cir)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Xir)}else g(e,Yir);return u(f(e),Vir),u(f(e),zir)}),N(sW,function(t,n,e){var i=o(kC,t,n);return o(C0(Nir),i,e)});var vW=[0,kC,sW],wC=function t(n,e,i,x){return t.fun(n,e,i,x)},lW=function t(n,e,i){return t.fun(n,e,i)};N(wC,function(t,n,e,i){u(f(e),hir),o(f(e),kir,dir);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[13],s,c,e,x),u(f(e),wir),u(f(e),Eir),o(f(e),gir,Sir);var p=i[2];if(p){g(e,Fir);var y=p[1],T=function(d,w){return g(d,yir)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Tir)}else g(e,Oir);return u(f(e),Iir),u(f(e),Air)}),N(lW,function(t,n,e){var i=o(wC,t,n);return o(C0(_ir),i,e)});var bW=[0,wC,lW],EC=function t(n,e,i,x){return t.fun(n,e,i,x)},pW=function t(n,e,i){return t.fun(n,e,i)};N(EC,function(t,n,e,i){u(f(e),Q7r),o(f(e),eir,rir);var x=i[1];u(f(e),nir);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),tir);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),uir),u(f(e),iir);var d=x[3],w=0;le(function(K,V){K&&u(f(e),Z7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),fir),u(f(e),xir),u(f(e),oir),u(f(e),air),o(f(e),sir,cir);var G=i[2];if(G){g(e,vir);var A=G[1],S=function(K,V){return g(K,$7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,lir)}else g(e,bir);return u(f(e),pir),u(f(e),mir)}),N(pW,function(t,n,e){var i=o(EC,t,n);return o(C0(J7r),i,e)});var mW=[0,EC,pW],SC=function t(n,e,i,x){return t.fun(n,e,i,x)},_W=function t(n,e,i){return t.fun(n,e,i)};N(SC,function(t,n,e,i){u(f(e),C7r),o(f(e),D7r,P7r);var x=i[1];u(f(e),L7r);var c=x[1];function s(K){return u(n,K)}function p(K){return u(t,K)}R($e[13],p,s,e,c),u(f(e),R7r);var y=x[2];function T(K){return u(n,K)}function E(K){return u(t,K)}R($e[13],E,T,e,y),u(f(e),j7r),u(f(e),G7r);var d=x[3],w=0;le(function(K,V){K&&u(f(e),N7r);function f0(k0){return u(n,k0)}function m0(k0){return u(t,k0)}return R($e[13],m0,f0,e,V),1},w,d),u(f(e),M7r),u(f(e),B7r),u(f(e),q7r),u(f(e),U7r),o(f(e),X7r,H7r);var G=i[2];if(G){g(e,Y7r);var A=G[1],S=function(K,V){return g(K,A7r)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,V7r)}else g(e,z7r);return u(f(e),K7r),u(f(e),W7r)}),N(_W,function(t,n,e){var i=o(SC,t,n);return o(C0(I7r),i,e)});var yW=[0,SC,_W],c5=function t(n,e,i,x){return t.fun(n,e,i,x)},hW=function t(n,e,i){return t.fun(n,e,i)},s5=function t(n,e,i,x){return t.fun(n,e,i,x)},dW=function t(n,e,i){return t.fun(n,e,i)},gC=function t(n,e,i,x){return t.fun(n,e,i,x)},kW=function t(n,e,i){return t.fun(n,e,i)},FC=function t(n,e,i,x){return t.fun(n,e,i,x)},wW=function t(n,e,i){return t.fun(n,e,i)};N(c5,function(t,n,e,i){u(f(e),F7r),o(n,e,i[1]),u(f(e),T7r);var x=i[2];function c(s){return u(n,s)}return R(s5,function(s){return u(t,s)},c,e,x),u(f(e),O7r)}),N(hW,function(t,n,e){var i=o(c5,t,n);return o(C0(g7r),i,e)}),N(s5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];if(u(f(e),Vtr),x){g(e,ztr);var c=x[1],s=function(U,Y){return g(U,Ytr)},p=function(U){return u(t,U)};R(Dr[1],p,s,e,c),g(e,Ktr)}else g(e,Wtr);return u(f(e),Jtr);case 1:var y=i[1];if(u(f(e),$tr),y){g(e,Ztr);var T=y[1],E=function(U,Y){return g(U,Xtr)},d=function(U){return u(t,U)};R(Dr[1],d,E,e,T),g(e,Qtr)}else g(e,rur);return u(f(e),eur);case 2:var w=i[1];if(u(f(e),nur),w){g(e,tur);var G=w[1],A=function(U,Y){return g(U,Htr)},S=function(U){return u(t,U)};R(Dr[1],S,A,e,G),g(e,uur)}else g(e,iur);return u(f(e),fur);case 3:var M=i[1];if(u(f(e),xur),M){g(e,our);var K=M[1],V=function(U,Y){return g(U,Utr)},f0=function(U){return u(t,U)};R(Dr[1],f0,V,e,K),g(e,aur)}else g(e,cur);return u(f(e),sur);case 4:var m0=i[1];if(u(f(e),vur),m0){g(e,lur);var k0=m0[1],g0=function(U,Y){return g(U,qtr)},e0=function(U){return u(t,U)};R(Dr[1],e0,g0,e,k0),g(e,bur)}else g(e,pur);return u(f(e),mur);case 5:var x0=i[1];if(u(f(e),_ur),x0){g(e,yur);var l=x0[1],c0=function(U,Y){return g(U,Btr)},t0=function(U){return u(t,U)};R(Dr[1],t0,c0,e,l),g(e,hur)}else g(e,dur);return u(f(e),kur);case 6:var o0=i[1];if(u(f(e),wur),o0){g(e,Eur);var w0=o0[1],_0=function(U,Y){return g(U,Mtr)},E0=function(U){return u(t,U)};R(Dr[1],E0,_0,e,w0),g(e,Sur)}else g(e,gur);return u(f(e),Fur);case 7:var U0=i[1];if(u(f(e),Tur),U0){g(e,Our);var b=U0[1],R0=function(U,Y){return g(U,Gtr)},X=function(U){return u(t,U)};R(Dr[1],X,R0,e,b),g(e,Iur)}else g(e,Aur);return u(f(e),Nur);case 8:var s0=i[1];if(u(f(e),Cur),s0){g(e,Pur);var hr=s0[1],Ar=function(U,Y){return g(U,jtr)},or=function(U){return u(t,U)};R(Dr[1],or,Ar,e,hr),g(e,Dur)}else g(e,Lur);return u(f(e),Rur);case 9:var W0=i[1];if(u(f(e),jur),W0){g(e,Gur);var Lr=W0[1],Tr=function(U,Y){return g(U,Rtr)},Hr=function(U){return u(t,U)};R(Dr[1],Hr,Tr,e,Lr),g(e,Mur)}else g(e,Bur);return u(f(e),qur);case 10:var Or=i[1];if(u(f(e),Uur),Or){g(e,Hur);var fr=Or[1],Rr=function(U,Y){return g(U,Ltr)},Wr=function(U){return u(t,U)};R(Dr[1],Wr,Rr,e,fr),g(e,Xur)}else g(e,Yur);return u(f(e),Vur);case 11:u(f(e),zur);var Jr=i[1],ar=function(U){return u(n,U)},_r=function(U){return u(t,U)};return R(uW[1],_r,ar,e,Jr),u(f(e),Kur);case 12:u(f(e),Wur);var Ir=i[1],fe=function(U){return u(n,U)},v0=function(U){return u(t,U)};return R(Ol[5],v0,fe,e,Ir),u(f(e),Jur);case 13:u(f(e),$ur);var P=i[1],L=function(U){return u(n,U)},Q=function(U){return u(t,U)};return R(_C[6],Q,L,e,P),u(f(e),Zur);case 14:u(f(e),Qur);var i0=i[1],l0=function(U){return u(n,U)},S0=function(U){return u(t,U)};return R(nW[1],S0,l0,e,i0),u(f(e),r7r);case 15:u(f(e),e7r);var T0=i[1],rr=function(U){return u(n,U)},L0=function(U){return u(t,U)};return R(bW[1],L0,rr,e,T0),u(f(e),n7r);case 16:u(f(e),t7r);var B=i[1],Z=function(U){return u(n,U)},p0=function(U){return u(t,U)};return R(xC[2],p0,Z,e,B),u(f(e),u7r);case 17:u(f(e),i7r);var b0=i[1],O0=function(U){return u(n,U)},M0=function(U){return u(t,U)};return R(aC[1],M0,O0,e,b0),u(f(e),f7r);case 18:u(f(e),x7r);var er=i[1],yr=function(U){return u(n,U)},vr=function(U){return u(t,U)};return R(RK[1],vr,yr,e,er),u(f(e),o7r);case 19:u(f(e),a7r);var $0=i[1],Er=function(U){return u(n,U)},Mr=function(U){return u(t,U)};return R(mW[1],Mr,Er,e,$0),u(f(e),c7r);case 20:u(f(e),s7r);var Br=i[1],qr=function(U){return u(n,U)},jr=function(U){return u(t,U)};return R(yW[1],jr,qr,e,Br),u(f(e),v7r);case 21:u(f(e),l7r);var $r=i[1],ne=function(U){return u(n,U)},Qr=function(U){return u(t,U)};return R(cW[2],Qr,ne,e,$r),u(f(e),b7r);case 22:u(f(e),p7r);var be=i[1],ae=function(U){return u(n,U)},pe=function(U){return u(t,U)};return R(vW[1],pe,ae,e,be),u(f(e),m7r);case 23:u(f(e),_7r);var oe=i[1],ce=function(U){return u(t,U)};return ur(g1[1],ce,e,oe),u(f(e),y7r);case 24:u(f(e),h7r);var ge=i[1],q0=function(U){return u(t,U)};return ur(BN[1],q0,e,ge),u(f(e),d7r);case 25:u(f(e),k7r);var Fr=i[1],_=function(U){return u(t,U)};return ur(Zz[1],_,e,Fr),u(f(e),w7r);default:u(f(e),E7r);var k=i[1],I=function(U){return u(t,U)};return ur(qN[1],I,e,k),u(f(e),S7r)}}),N(dW,function(t,n,e){var i=o(s5,t,n);return o(C0(Dtr),i,e)}),N(gC,function(t,n,e,i){u(f(e),Ntr),o(t,e,i[1]),u(f(e),Ctr);var x=i[2];function c(s){return u(n,s)}return R(c5,function(s){return u(t,s)},c,e,x),u(f(e),Ptr)}),N(kW,function(t,n,e){var i=o(gC,t,n);return o(C0(Atr),i,e)}),N(FC,function(t,n,e,i){if(i[0]===0)return u(f(e),Ftr),o(n,e,i[1]),u(f(e),Ttr);u(f(e),Otr);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R($e[17],s,c,e,x),u(f(e),Itr)}),N(wW,function(t,n,e){var i=o(FC,t,n);return o(C0(gtr),i,e)});var TC=function t(n,e,i,x){return t.fun(n,e,i,x)},EW=function t(n,e,i){return t.fun(n,e,i)},v5=function t(n,e,i,x){return t.fun(n,e,i,x)},SW=function t(n,e,i){return t.fun(n,e,i)};N(TC,function(t,n,e,i){u(f(e),wtr),o(t,e,i[1]),u(f(e),Etr);var x=i[2];function c(s){return u(n,s)}return R(v5,function(s){return u(t,s)},c,e,x),u(f(e),Str)}),N(EW,function(t,n,e){var i=o(TC,t,n);return o(C0(ktr),i,e)}),N(v5,function(t,n,e,i){u(f(e),Znr),o(f(e),rtr,Qnr);var x=i[1];function c(K){return u(t,K)}function s(K){return u(t,K)}R(Rn[1],s,c,e,x),u(f(e),etr),u(f(e),ntr),o(f(e),utr,ttr);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R($e[19],T,y,e,p),u(f(e),itr),u(f(e),ftr),o(f(e),otr,xtr);var E=i[3];if(E){g(e,atr);var d=E[1],w=function(K){return u(t,K)};ur(zv[1],w,e,d),g(e,ctr)}else g(e,str);u(f(e),vtr),u(f(e),ltr),o(f(e),ptr,btr);var G=i[4];if(G){g(e,mtr);var A=G[1],S=function(K){return u(n,K)},M=function(K){return u(t,K)};R($e[13],M,S,e,A),g(e,_tr)}else g(e,ytr);return u(f(e),htr),u(f(e),dtr)}),N(SW,function(t,n,e){var i=o(v5,t,n);return o(C0($nr),i,e)});var gW=[0,TC,EW,v5,SW],OC=function t(n,e,i,x){return t.fun(n,e,i,x)},FW=function t(n,e,i){return t.fun(n,e,i)},l5=function t(n,e,i,x){return t.fun(n,e,i,x)},TW=function t(n,e,i){return t.fun(n,e,i)};N(OC,function(t,n,e,i){u(f(e),Knr),o(t,e,i[1]),u(f(e),Wnr);var x=i[2];function c(s){return u(n,s)}return R(l5,function(s){return u(t,s)},c,e,x),u(f(e),Jnr)}),N(FW,function(t,n,e){var i=o(OC,t,n);return o(C0(znr),i,e)}),N(l5,function(t,n,e,i){u(f(e),Pnr),o(f(e),Lnr,Dnr);var x=i[1];u(f(e),Rnr);var c=0;le(function(E,d){E&&u(f(e),Cnr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(gW[1],G,w,e,d),1},c,x),u(f(e),jnr),u(f(e),Gnr),u(f(e),Mnr),o(f(e),qnr,Bnr);var s=i[2];if(s){g(e,Unr);var p=s[1],y=function(E,d){u(f(E),Anr);var w=0;return le(function(G,A){G&&u(f(E),Inr);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),Nnr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Hnr)}else g(e,Xnr);return u(f(e),Ynr),u(f(e),Vnr)}),N(TW,function(t,n,e){var i=o(l5,t,n);return o(C0(Onr),i,e)});var IC=function t(n,e,i,x){return t.fun(n,e,i,x)},OW=function t(n,e,i){return t.fun(n,e,i)},b5=function t(n,e,i,x){return t.fun(n,e,i,x)},IW=function t(n,e,i){return t.fun(n,e,i)},wee=[0,OC,FW,l5,TW];N(IC,function(t,n,e,i){u(f(e),gnr),o(t,e,i[1]),u(f(e),Fnr);var x=i[2];function c(s){return u(n,s)}return R(b5,function(s){return u(t,s)},c,e,x),u(f(e),Tnr)}),N(OW,function(t,n,e){var i=o(IC,t,n);return o(C0(Snr),i,e)}),N(b5,function(t,n,e,i){u(f(e),cnr),o(f(e),vnr,snr);var x=i[1];u(f(e),lnr);var c=0;le(function(E,d){E&&u(f(e),anr);function w(A){return u(n,A)}function G(A){return u(t,A)}return R($e[13],G,w,e,d),1},c,x),u(f(e),bnr),u(f(e),pnr),u(f(e),mnr),o(f(e),ynr,_nr);var s=i[2];if(s){g(e,hnr);var p=s[1],y=function(E,d){u(f(E),xnr);var w=0;return le(function(G,A){G&&u(f(E),fnr);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),onr)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,dnr)}else g(e,knr);return u(f(e),wnr),u(f(e),Enr)}),N(IW,function(t,n,e){var i=o(b5,t,n);return o(C0(inr),i,e)});var AC=function t(n,e,i,x){return t.fun(n,e,i,x)},AW=function t(n,e,i){return t.fun(n,e,i)},p5=function t(n,e,i,x){return t.fun(n,e,i,x)},NW=function t(n,e,i){return t.fun(n,e,i)},m5=function t(n,e,i,x){return t.fun(n,e,i,x)},CW=function t(n,e,i){return t.fun(n,e,i)},Eee=[0,IC,OW,b5,IW];N(AC,function(t,n,e,i){u(f(e),nnr),o(t,e,i[1]),u(f(e),tnr);var x=i[2];function c(s){return u(n,s)}return R(p5,function(s){return u(t,s)},c,e,x),u(f(e),unr)}),N(AW,function(t,n,e){var i=o(AC,t,n);return o(C0(enr),i,e)}),N(p5,function(t,n,e,i){u(f(e),Her),o(f(e),Yer,Xer);var x=i[1];function c(E){return u(n,E)}R(m5,function(E){return u(t,E)},c,e,x),u(f(e),Ver),u(f(e),zer),o(f(e),Wer,Ker);var s=i[2];if(s){g(e,Jer);var p=s[1],y=function(E,d){return g(E,Uer)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,$er)}else g(e,Zer);return u(f(e),Qer),u(f(e),rnr)}),N(NW,function(t,n,e){var i=o(p5,t,n);return o(C0(qer),i,e)}),N(m5,function(t,n,e,i){if(i){u(f(e),Ger);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(qe[31],s,c,e,x),u(f(e),Mer)}return g(e,Ber)}),N(CW,function(t,n,e){var i=o(m5,t,n);return o(C0(jer),i,e)}),mu(K3r,$e,[0,Ol,xC,aC,RK,_C,nW,uW,cW,vW,bW,mW,yW,c5,hW,s5,dW,gC,kW,FC,wW,gW,wee,Eee,[0,AC,AW,p5,NW,m5,CW]]);var NC=function t(n,e,i,x){return t.fun(n,e,i,x)},PW=function t(n,e,i){return t.fun(n,e,i)};N(NC,function(t,n,e,i){u(f(e),Eer),o(f(e),ger,Ser);var x=i[1];u(f(e),Fer);var c=0;le(function(E,d){E&&u(f(e),wer);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(Yu[35],G,w,e,d),1},c,x),u(f(e),Ter),u(f(e),Oer),u(f(e),Ier),o(f(e),Ner,Aer);var s=i[2];if(s){g(e,Cer);var p=s[1],y=function(E,d){u(f(E),der);var w=0;return le(function(G,A){G&&u(f(E),her);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),ker)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,Per)}else g(e,Der);return u(f(e),Ler),u(f(e),Rer)}),N(PW,function(t,n,e){var i=o(NC,t,n);return o(C0(yer),i,e)});var Kv=[0,NC,PW],CC=function t(n,e,i,x){return t.fun(n,e,i,x)},DW=function t(n,e,i){return t.fun(n,e,i)},_5=function t(n,e,i,x){return t.fun(n,e,i,x)},LW=function t(n,e,i){return t.fun(n,e,i)};N(CC,function(t,n,e,i){u(f(e),per),o(t,e,i[1]),u(f(e),mer);var x=i[2];function c(s){return u(n,s)}return R(_5,function(s){return u(t,s)},c,e,x),u(f(e),_er)}),N(DW,function(t,n,e){var i=o(CC,t,n);return o(C0(ber),i,e)}),N(_5,function(t,n,e,i){u(f(e),ner),o(f(e),uer,ter);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Yu[35],s,c,e,x),u(f(e),ier),u(f(e),fer),o(f(e),oer,xer);var p=i[2];if(p){g(e,aer);var y=p[1],T=function(d,w){return g(d,eer)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,cer)}else g(e,ser);return u(f(e),ver),u(f(e),ler)}),N(LW,function(t,n,e){var i=o(_5,t,n);return o(C0(rer),i,e)});var RW=[0,CC,DW,_5,LW],PC=function t(n,e,i,x){return t.fun(n,e,i,x)},jW=function t(n,e,i){return t.fun(n,e,i)};N(PC,function(t,n,e,i){u(f(e),Nrr),o(f(e),Prr,Crr);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[31],s,c,e,x),u(f(e),Drr),u(f(e),Lrr),o(f(e),jrr,Rrr);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R(Yu[35],T,y,e,p),u(f(e),Grr),u(f(e),Mrr),o(f(e),qrr,Brr);var E=i[3];if(E){g(e,Urr);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(RW[1],G,w,e,d),g(e,Hrr)}else g(e,Xrr);u(f(e),Yrr),u(f(e),Vrr),o(f(e),Krr,zrr);var A=i[4];if(A){g(e,Wrr);var S=A[1],M=function(V,f0){return g(V,Arr)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,Jrr)}else g(e,$rr);return u(f(e),Zrr),u(f(e),Qrr)}),N(jW,function(t,n,e){var i=o(PC,t,n);return o(C0(Irr),i,e)});var GW=[0,RW,PC,jW],DC=function t(n,e,i,x){return t.fun(n,e,i,x)},MW=function t(n,e,i){return t.fun(n,e,i)};N(DC,function(t,n,e,i){u(f(e),lrr),o(f(e),prr,brr);var x=i[1];function c(A){return u(t,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),mrr),u(f(e),_rr),o(f(e),hrr,yrr);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),drr),u(f(e),krr),o(f(e),Err,wrr);var E=i[3];if(E){g(e,Srr);var d=E[1],w=function(A,S){return g(A,vrr)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,grr)}else g(e,Frr);return u(f(e),Trr),u(f(e),Orr)}),N(MW,function(t,n,e){var i=o(DC,t,n);return o(C0(srr),i,e)});var BW=[0,DC,MW],LC=function t(n,e,i){return t.fun(n,e,i)},qW=function t(n,e){return t.fun(n,e)};N(LC,function(t,n,e){u(f(n),J0r),o(f(n),Z0r,$0r);var i=e[1];if(i){g(n,Q0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,rrr)}else g(n,err);u(f(n),nrr),u(f(n),trr),o(f(n),irr,urr);var p=e[2];if(p){g(n,frr);var y=p[1],T=function(d,w){return g(d,W0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,xrr)}else g(n,orr);return u(f(n),arr),u(f(n),crr)}),N(qW,function(t,n){var e=u(LC,t);return o(C0(K0r),e,n)});var UW=[0,LC,qW],RC=function t(n,e,i){return t.fun(n,e,i)},HW=function t(n,e){return t.fun(n,e)};N(RC,function(t,n,e){u(f(n),P0r),o(f(n),L0r,D0r);var i=e[1];if(i){g(n,R0r);var x=i[1],c=function(d){return u(t,d)},s=function(d){return u(t,d)};R(Rn[1],s,c,n,x),g(n,j0r)}else g(n,G0r);u(f(n),M0r),u(f(n),B0r),o(f(n),U0r,q0r);var p=e[2];if(p){g(n,H0r);var y=p[1],T=function(d,w){return g(d,C0r)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,X0r)}else g(n,Y0r);return u(f(n),V0r),u(f(n),z0r)}),N(HW,function(t,n){var e=u(RC,t);return o(C0(N0r),e,n)});var XW=[0,RC,HW],jC=function t(n,e,i){return t.fun(n,e,i)},YW=function t(n,e){return t.fun(n,e)};N(jC,function(t,n,e){u(f(n),E0r),o(f(n),g0r,S0r);var i=e[1];if(i){g(n,F0r);var x=i[1],c=function(p,y){return g(p,w0r)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,T0r)}else g(n,O0r);return u(f(n),I0r),u(f(n),A0r)}),N(YW,function(t,n){var e=u(jC,t);return o(C0(k0r),e,n)});var VW=[0,jC,YW],GC=function t(n,e,i,x){return t.fun(n,e,i,x)},zW=function t(n,e,i){return t.fun(n,e,i)};N(GC,function(t,n,e,i){u(f(e),i0r),o(f(e),x0r,f0r);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),o0r),u(f(e),a0r),o(f(e),s0r,c0r);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),v0r),u(f(e),l0r),o(f(e),p0r,b0r);var E=i[3];if(E){g(e,m0r);var d=E[1],w=function(A,S){return g(A,u0r)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,_0r)}else g(e,y0r);return u(f(e),h0r),u(f(e),d0r)}),N(zW,function(t,n,e){var i=o(GC,t,n);return o(C0(t0r),i,e)});var KW=[0,GC,zW],MC=function t(n,e,i,x){return t.fun(n,e,i,x)},WW=function t(n,e,i){return t.fun(n,e,i)};N(MC,function(t,n,e,i){u(f(e),DQ0),o(f(e),RQ0,LQ0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),jQ0),u(f(e),GQ0),o(f(e),BQ0,MQ0);var p=i[2];if(p){g(e,qQ0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R($e[22][1],E,T,e,y),g(e,UQ0)}else g(e,HQ0);u(f(e),XQ0),u(f(e),YQ0),o(f(e),zQ0,VQ0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R($e[13],G,w,e,d),u(f(e),KQ0),u(f(e),WQ0),o(f(e),$Q0,JQ0);var A=i[4];if(A){g(e,ZQ0);var S=A[1],M=function(V,f0){return g(V,PQ0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,QQ0)}else g(e,r0r);return u(f(e),e0r),u(f(e),n0r)}),N(WW,function(t,n,e){var i=o(MC,t,n);return o(C0(CQ0),i,e)});var y5=[0,MC,WW],BC=function t(n,e,i,x){return t.fun(n,e,i,x)},JW=function t(n,e,i){return t.fun(n,e,i)};N(BC,function(t,n,e,i){u(f(e),QZ0),o(f(e),eQ0,rQ0);var x=i[1];function c(e0){return u(n,e0)}function s(e0){return u(t,e0)}R(Rn[1],s,c,e,x),u(f(e),nQ0),u(f(e),tQ0),o(f(e),iQ0,uQ0);var p=i[2];if(p){g(e,fQ0);var y=p[1],T=function(e0){return u(n,e0)},E=function(e0){return u(t,e0)};R($e[22][1],E,T,e,y),g(e,xQ0)}else g(e,oQ0);u(f(e),aQ0),u(f(e),cQ0),o(f(e),vQ0,sQ0);var d=i[3];if(d){g(e,lQ0);var w=d[1],G=function(e0){return u(n,e0)},A=function(e0){return u(t,e0)};R($e[13],A,G,e,w),g(e,bQ0)}else g(e,pQ0);u(f(e),mQ0),u(f(e),_Q0),o(f(e),hQ0,yQ0);var S=i[4];if(S){g(e,dQ0);var M=S[1],K=function(e0){return u(n,e0)},V=function(e0){return u(t,e0)};R($e[13],V,K,e,M),g(e,kQ0)}else g(e,wQ0);u(f(e),EQ0),u(f(e),SQ0),o(f(e),FQ0,gQ0);var f0=i[5];if(f0){g(e,TQ0);var m0=f0[1],k0=function(e0,x0){return g(e0,ZZ0)},g0=function(e0){return u(t,e0)};R(Dr[1],g0,k0,e,m0),g(e,OQ0)}else g(e,IQ0);return u(f(e),AQ0),u(f(e),NQ0)}),N(JW,function(t,n,e){var i=o(BC,t,n);return o(C0($Z0),i,e)});var h5=[0,BC,JW],qC=function t(n,e,i,x){return t.fun(n,e,i,x)},$W=function t(n,e,i){return t.fun(n,e,i)},d5=function t(n,e,i,x){return t.fun(n,e,i,x)},ZW=function t(n,e,i){return t.fun(n,e,i)};N(qC,function(t,n,e,i){u(f(e),KZ0),o(t,e,i[1]),u(f(e),WZ0);var x=i[2];function c(s){return u(n,s)}return R(d5,function(s){return u(t,s)},c,e,x),u(f(e),JZ0)}),N($W,function(t,n,e){var i=o(qC,t,n);return o(C0(zZ0),i,e)}),N(d5,function(t,n,e,i){u(f(e),FZ0),o(f(e),OZ0,TZ0);var x=i[1];if(x){g(e,IZ0);var c=x[1],s=function(A){return u(n,A)},p=function(A){return u(t,A)};R(qe[31],p,s,e,c),g(e,AZ0)}else g(e,NZ0);u(f(e),CZ0),u(f(e),PZ0),o(f(e),LZ0,DZ0);var y=i[2];u(f(e),RZ0);var T=0;le(function(A,S){A&&u(f(e),gZ0);function M(V){return u(n,V)}function K(V){return u(t,V)}return R(Yu[35],K,M,e,S),1},T,y),u(f(e),jZ0),u(f(e),GZ0),u(f(e),MZ0),o(f(e),qZ0,BZ0);var E=i[3];if(E){g(e,UZ0);var d=E[1],w=function(A,S){return g(A,SZ0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,HZ0)}else g(e,XZ0);return u(f(e),YZ0),u(f(e),VZ0)}),N(ZW,function(t,n,e){var i=o(d5,t,n);return o(C0(EZ0),i,e)});var QW=[0,qC,$W,d5,ZW],UC=function t(n,e,i,x){return t.fun(n,e,i,x)},rJ=function t(n,e,i){return t.fun(n,e,i)};N(UC,function(t,n,e,i){u(f(e),eZ0),o(f(e),tZ0,nZ0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),uZ0),u(f(e),iZ0),o(f(e),xZ0,fZ0);var p=i[2];u(f(e),oZ0);var y=0;le(function(G,A){G&&u(f(e),rZ0);function S(K){return u(n,K)}function M(K){return u(t,K)}return R(QW[1],M,S,e,A),1},y,p),u(f(e),aZ0),u(f(e),cZ0),u(f(e),sZ0),o(f(e),lZ0,vZ0);var T=i[3];if(T){g(e,bZ0);var E=T[1],d=function(G,A){return g(G,Q$0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,pZ0)}else g(e,mZ0);return u(f(e),_Z0),u(f(e),yZ0),o(f(e),dZ0,hZ0),o(n,e,i[4]),u(f(e),kZ0),u(f(e),wZ0)}),N(rJ,function(t,n,e){var i=o(UC,t,n);return o(C0(Z$0),i,e)});var eJ=[0,QW,UC,rJ],HC=function t(n,e,i,x){return t.fun(n,e,i,x)},nJ=function t(n,e,i){return t.fun(n,e,i)};N(HC,function(t,n,e,i){u(f(e),P$0),o(f(e),L$0,D$0);var x=i[1];if(x){g(e,R$0);var c=x[1],s=function(w){return u(n,w)},p=function(w){return u(t,w)};R(qe[31],p,s,e,c),g(e,j$0)}else g(e,G$0);u(f(e),M$0),u(f(e),B$0),o(f(e),U$0,q$0);var y=i[2];if(y){g(e,H$0);var T=y[1],E=function(w,G){return g(w,C$0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,X$0)}else g(e,Y$0);return u(f(e),V$0),u(f(e),z$0),o(f(e),W$0,K$0),o(n,e,i[3]),u(f(e),J$0),u(f(e),$$0)}),N(nJ,function(t,n,e){var i=o(HC,t,n);return o(C0(N$0),i,e)});var tJ=[0,HC,nJ],XC=function t(n,e,i,x){return t.fun(n,e,i,x)},uJ=function t(n,e,i){return t.fun(n,e,i)};N(XC,function(t,n,e,i){u(f(e),h$0),o(f(e),k$0,d$0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),w$0),u(f(e),E$0),o(f(e),g$0,S$0);var p=i[2];if(p){g(e,F$0);var y=p[1],T=function(d,w){return g(d,y$0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,T$0)}else g(e,O$0);return u(f(e),I$0),u(f(e),A$0)}),N(uJ,function(t,n,e){var i=o(XC,t,n);return o(C0(_$0),i,e)});var iJ=[0,XC,uJ],YC=function t(n,e,i,x){return t.fun(n,e,i,x)},fJ=function t(n,e,i){return t.fun(n,e,i)},k5=function t(n,e,i,x){return t.fun(n,e,i,x)},xJ=function t(n,e,i){return t.fun(n,e,i)};N(YC,function(t,n,e,i){u(f(e),b$0),o(t,e,i[1]),u(f(e),p$0);var x=i[2];function c(s){return u(n,s)}return R(k5,function(s){return u(t,s)},c,e,x),u(f(e),m$0)}),N(fJ,function(t,n,e){var i=o(YC,t,n);return o(C0(l$0),i,e)}),N(k5,function(t,n,e,i){u(f(e),YJ0),o(f(e),zJ0,VJ0);var x=i[1];if(x){g(e,KJ0);var c=x[1],s=function(M){return u(n,M)},p=function(M){return u(t,M)};R(di[5],p,s,e,c),g(e,WJ0)}else g(e,JJ0);u(f(e),$J0),u(f(e),ZJ0),o(f(e),r$0,QJ0);var y=i[2];u(f(e),e$0),o(t,e,y[1]),u(f(e),n$0);var T=y[2];function E(M){return u(n,M)}function d(M){return u(t,M)}R(Kv[1],d,E,e,T),u(f(e),t$0),u(f(e),u$0),u(f(e),i$0),o(f(e),x$0,f$0);var w=i[3];if(w){g(e,o$0);var G=w[1],A=function(M,K){return g(M,XJ0)},S=function(M){return u(t,M)};R(Dr[1],S,A,e,G),g(e,a$0)}else g(e,c$0);return u(f(e),s$0),u(f(e),v$0)}),N(xJ,function(t,n,e){var i=o(k5,t,n);return o(C0(HJ0),i,e)});var oJ=[0,YC,fJ,k5,xJ],VC=function t(n,e,i,x){return t.fun(n,e,i,x)},aJ=function t(n,e,i){return t.fun(n,e,i)};N(VC,function(t,n,e,i){u(f(e),sJ0),o(f(e),lJ0,vJ0);var x=i[1];u(f(e),bJ0),o(t,e,x[1]),u(f(e),pJ0);var c=x[2];function s(k0){return u(n,k0)}function p(k0){return u(t,k0)}R(Kv[1],p,s,e,c),u(f(e),mJ0),u(f(e),_J0),u(f(e),yJ0),o(f(e),dJ0,hJ0);var y=i[2];if(y){g(e,kJ0);var T=y[1],E=function(k0){return u(n,k0)},d=function(k0){return u(t,k0)};R(oJ[1],d,E,e,T),g(e,wJ0)}else g(e,EJ0);u(f(e),SJ0),u(f(e),gJ0),o(f(e),TJ0,FJ0);var w=i[3];if(w){var G=w[1];g(e,OJ0),u(f(e),IJ0),o(t,e,G[1]),u(f(e),AJ0);var A=G[2],S=function(k0){return u(n,k0)},M=function(k0){return u(t,k0)};R(Kv[1],M,S,e,A),u(f(e),NJ0),g(e,CJ0)}else g(e,PJ0);u(f(e),DJ0),u(f(e),LJ0),o(f(e),jJ0,RJ0);var K=i[4];if(K){g(e,GJ0);var V=K[1],f0=function(k0,g0){return g(k0,cJ0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,MJ0)}else g(e,BJ0);return u(f(e),qJ0),u(f(e),UJ0)}),N(aJ,function(t,n,e){var i=o(VC,t,n);return o(C0(aJ0),i,e)});var cJ=[0,oJ,VC,aJ],zC=function t(n,e,i,x){return t.fun(n,e,i,x)},sJ=function t(n,e,i){return t.fun(n,e,i)},w5=function t(n,e,i,x){return t.fun(n,e,i,x)},vJ=function t(n,e,i){return t.fun(n,e,i)};N(zC,function(t,n,e,i){u(f(e),fJ0),o(t,e,i[1]),u(f(e),xJ0);var x=i[2];function c(s){return u(n,s)}return R(w5,function(s){return u(t,s)},c,e,x),u(f(e),oJ0)}),N(sJ,function(t,n,e){var i=o(zC,t,n);return o(C0(iJ0),i,e)}),N(w5,function(t,n,e,i){u(f(e),zW0),o(f(e),WW0,KW0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),JW0),u(f(e),$W0),o(f(e),QW0,ZW0);var p=i[2];if(p){g(e,rJ0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,eJ0)}else g(e,nJ0);return u(f(e),tJ0),u(f(e),uJ0)}),N(vJ,function(t,n,e){var i=o(w5,t,n);return o(C0(VW0),i,e)});var lJ=[0,zC,sJ,w5,vJ],KC=function t(n,e,i,x){return t.fun(n,e,i,x)},bJ=function t(n,e,i){return t.fun(n,e,i)},E5=function t(n,e){return t.fun(n,e)},pJ=function t(n){return t.fun(n)};N(KC,function(t,n,e,i){u(f(e),OW0),o(f(e),AW0,IW0);var x=i[1];u(f(e),NW0);var c=0;le(function(E,d){E&&u(f(e),TW0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(lJ[1],G,w,e,d),1},c,x),u(f(e),CW0),u(f(e),PW0),u(f(e),DW0),o(f(e),RW0,LW0),o(E5,e,i[2]),u(f(e),jW0),u(f(e),GW0),o(f(e),BW0,MW0);var s=i[3];if(s){g(e,qW0);var p=s[1],y=function(E,d){return g(E,FW0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,UW0)}else g(e,HW0);return u(f(e),XW0),u(f(e),YW0)}),N(bJ,function(t,n,e){var i=o(KC,t,n);return o(C0(gW0),i,e)}),N(E5,function(t,n){switch(n){case 0:return g(t,wW0);case 1:return g(t,EW0);default:return g(t,SW0)}}),N(pJ,function(t){return o(C0(kW0),E5,t)});var Il=[0,lJ,KC,bJ,E5,pJ],WC=function t(n,e,i,x){return t.fun(n,e,i,x)},mJ=function t(n,e,i){return t.fun(n,e,i)};N(WC,function(t,n,e,i){u(f(e),iW0),o(f(e),xW0,fW0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),oW0),u(f(e),aW0),o(f(e),sW0,cW0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Yu[35],T,y,e,p),u(f(e),vW0),u(f(e),lW0),o(f(e),pW0,bW0);var E=i[3];if(E){g(e,mW0);var d=E[1],w=function(A,S){return g(A,uW0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,_W0)}else g(e,yW0);return u(f(e),hW0),u(f(e),dW0)}),N(mJ,function(t,n,e){var i=o(WC,t,n);return o(C0(tW0),i,e)});var _J=[0,WC,mJ],JC=function t(n,e,i,x){return t.fun(n,e,i,x)},yJ=function t(n,e,i){return t.fun(n,e,i)};N(JC,function(t,n,e,i){u(f(e),qK0),o(f(e),HK0,UK0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Yu[35],s,c,e,x),u(f(e),XK0),u(f(e),YK0),o(f(e),zK0,VK0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),KK0),u(f(e),WK0),o(f(e),$K0,JK0);var E=i[3];if(E){g(e,ZK0);var d=E[1],w=function(A,S){return g(A,BK0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,QK0)}else g(e,rW0);return u(f(e),eW0),u(f(e),nW0)}),N(yJ,function(t,n,e){var i=o(JC,t,n);return o(C0(MK0),i,e)});var hJ=[0,JC,yJ],$C=function t(n,e,i,x){return t.fun(n,e,i,x)},dJ=function t(n,e,i){return t.fun(n,e,i)},S5=function t(n,e,i,x){return t.fun(n,e,i,x)},kJ=function t(n,e,i){return t.fun(n,e,i)};N($C,function(t,n,e,i){u(f(e),fK0),o(f(e),oK0,xK0);var x=i[1];if(x){g(e,aK0);var c=x[1],s=function(g0){return u(n,g0)};R(S5,function(g0){return u(t,g0)},s,e,c),g(e,cK0)}else g(e,sK0);u(f(e),vK0),u(f(e),lK0),o(f(e),pK0,bK0);var p=i[2];if(p){g(e,mK0);var y=p[1],T=function(g0){return u(n,g0)},E=function(g0){return u(t,g0)};R(qe[31],E,T,e,y),g(e,_K0)}else g(e,yK0);u(f(e),hK0),u(f(e),dK0),o(f(e),wK0,kK0);var d=i[3];if(d){g(e,EK0);var w=d[1],G=function(g0){return u(n,g0)},A=function(g0){return u(t,g0)};R(qe[31],A,G,e,w),g(e,SK0)}else g(e,gK0);u(f(e),FK0),u(f(e),TK0),o(f(e),IK0,OK0);var S=i[4];function M(g0){return u(n,g0)}function K(g0){return u(t,g0)}R(Yu[35],K,M,e,S),u(f(e),AK0),u(f(e),NK0),o(f(e),PK0,CK0);var V=i[5];if(V){g(e,DK0);var f0=V[1],m0=function(g0,e0){return g(g0,iK0)},k0=function(g0){return u(t,g0)};R(Dr[1],k0,m0,e,f0),g(e,LK0)}else g(e,RK0);return u(f(e),jK0),u(f(e),GK0)}),N(dJ,function(t,n,e){var i=o($C,t,n);return o(C0(uK0),i,e)}),N(S5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),$z0),u(f(e),Zz0),o(t,e,x[1]),u(f(e),Qz0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),rK0),u(f(e),eK0)}u(f(e),nK0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(qe[31],E,T,e,y),u(f(e),tK0)}),N(kJ,function(t,n,e){var i=o(S5,t,n);return o(C0(Jz0),i,e)});var wJ=[0,$C,dJ,S5,kJ],ZC=function t(n,e,i,x){return t.fun(n,e,i,x)},EJ=function t(n,e,i){return t.fun(n,e,i)},g5=function t(n,e,i,x){return t.fun(n,e,i,x)},SJ=function t(n,e,i){return t.fun(n,e,i)};N(ZC,function(t,n,e,i){u(f(e),gz0),o(f(e),Tz0,Fz0);var x=i[1];function c(K){return u(n,K)}R(g5,function(K){return u(t,K)},c,e,x),u(f(e),Oz0),u(f(e),Iz0),o(f(e),Nz0,Az0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(qe[31],y,p,e,s),u(f(e),Cz0),u(f(e),Pz0),o(f(e),Lz0,Dz0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),Rz0),u(f(e),jz0),o(f(e),Mz0,Gz0);var w=i[4];o(f(e),Bz0,w),u(f(e),qz0),u(f(e),Uz0),o(f(e),Xz0,Hz0);var G=i[5];if(G){g(e,Yz0);var A=G[1],S=function(K,V){return g(K,Sz0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,Vz0)}else g(e,zz0);return u(f(e),Kz0),u(f(e),Wz0)}),N(EJ,function(t,n,e){var i=o(ZC,t,n);return o(C0(Ez0),i,e)}),N(g5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),mz0),u(f(e),_z0),o(t,e,x[1]),u(f(e),yz0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),hz0),u(f(e),dz0)}u(f(e),kz0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),wz0)}),N(SJ,function(t,n,e){var i=o(g5,t,n);return o(C0(pz0),i,e)});var gJ=[0,ZC,EJ,g5,SJ],QC=function t(n,e,i,x){return t.fun(n,e,i,x)},FJ=function t(n,e,i){return t.fun(n,e,i)},F5=function t(n,e,i,x){return t.fun(n,e,i,x)},TJ=function t(n,e,i){return t.fun(n,e,i)};N(QC,function(t,n,e,i){u(f(e),XV0),o(f(e),VV0,YV0);var x=i[1];function c(K){return u(n,K)}R(F5,function(K){return u(t,K)},c,e,x),u(f(e),zV0),u(f(e),KV0),o(f(e),JV0,WV0);var s=i[2];function p(K){return u(n,K)}function y(K){return u(t,K)}R(qe[31],y,p,e,s),u(f(e),$V0),u(f(e),ZV0),o(f(e),rz0,QV0);var T=i[3];function E(K){return u(n,K)}function d(K){return u(t,K)}R(Yu[35],d,E,e,T),u(f(e),ez0),u(f(e),nz0),o(f(e),uz0,tz0);var w=i[4];o(f(e),iz0,w),u(f(e),fz0),u(f(e),xz0),o(f(e),az0,oz0);var G=i[5];if(G){g(e,cz0);var A=G[1],S=function(K,V){return g(K,HV0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,sz0)}else g(e,vz0);return u(f(e),lz0),u(f(e),bz0)}),N(FJ,function(t,n,e){var i=o(QC,t,n);return o(C0(UV0),i,e)}),N(F5,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),LV0),u(f(e),RV0),o(t,e,x[1]),u(f(e),jV0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Il[2],p,s,e,c),u(f(e),GV0),u(f(e),MV0)}u(f(e),BV0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(di[5],E,T,e,y),u(f(e),qV0)}),N(TJ,function(t,n,e){var i=o(F5,t,n);return o(C0(DV0),i,e)});var OJ=[0,QC,FJ,F5,TJ],rP=function t(n,e,i){return t.fun(n,e,i)},IJ=function t(n,e){return t.fun(n,e)},T5=function t(n,e,i){return t.fun(n,e,i)},AJ=function t(n,e){return t.fun(n,e)};N(rP,function(t,n,e){u(f(n),NV0),o(t,n,e[1]),u(f(n),CV0);var i=e[2];return ur(T5,function(x){return u(t,x)},n,i),u(f(n),PV0)}),N(IJ,function(t,n){var e=u(rP,t);return o(C0(AV0),e,n)}),N(T5,function(t,n,e){u(f(n),gV0),o(f(n),TV0,FV0);var i=e[1];function x(s){return u(t,s)}function c(s){return u(t,s)}return R(Rn[1],c,x,n,i),u(f(n),OV0),u(f(n),IV0)}),N(AJ,function(t,n){var e=u(T5,t);return o(C0(SV0),e,n)});var eP=[0,rP,IJ,T5,AJ],nP=function t(n,e,i,x){return t.fun(n,e,i,x)},NJ=function t(n,e,i){return t.fun(n,e,i)},O5=function t(n,e,i,x){return t.fun(n,e,i,x)},CJ=function t(n,e,i){return t.fun(n,e,i)};N(nP,function(t,n,e,i){u(f(e),kV0),o(n,e,i[1]),u(f(e),wV0);var x=i[2];function c(s){return u(n,s)}return R(O5,function(s){return u(t,s)},c,e,x),u(f(e),EV0)}),N(NJ,function(t,n,e){var i=o(nP,t,n);return o(C0(dV0),i,e)}),N(O5,function(t,n,e,i){u(f(e),oV0),o(f(e),cV0,aV0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(n,y)}R(Rn[1],s,c,e,x),u(f(e),sV0),u(f(e),vV0),o(f(e),bV0,lV0);var p=i[2];return u(f(e),pV0),o(n,e,p[1]),u(f(e),mV0),o(t,e,p[2]),u(f(e),_V0),u(f(e),yV0),u(f(e),hV0)}),N(CJ,function(t,n,e){var i=o(O5,t,n);return o(C0(xV0),i,e)});var I5=[0,nP,NJ,O5,CJ],tP=function t(n,e,i){return t.fun(n,e,i)},PJ=function t(n,e){return t.fun(n,e)};N(tP,function(t,n,e){u(f(n),jY0),o(f(n),MY0,GY0);var i=e[1];u(f(n),BY0);var x=0;le(function(d,w){d&&u(f(n),RY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(qN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),qY0),u(f(n),UY0),u(f(n),HY0),o(f(n),YY0,XY0);var c=e[2];o(f(n),VY0,c),u(f(n),zY0),u(f(n),KY0),o(f(n),JY0,WY0);var s=e[3];o(f(n),$Y0,s),u(f(n),ZY0),u(f(n),QY0),o(f(n),eV0,rV0);var p=e[4];if(p){g(n,nV0);var y=p[1],T=function(d,w){u(f(d),DY0);var G=0;return le(function(A,S){A&&u(f(d),PY0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),LY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,tV0)}else g(n,uV0);return u(f(n),iV0),u(f(n),fV0)}),N(PJ,function(t,n){var e=u(tP,t);return o(C0(CY0),e,n)});var DJ=[0,tP,PJ],uP=function t(n,e,i){return t.fun(n,e,i)},LJ=function t(n,e){return t.fun(n,e)};N(uP,function(t,n,e){u(f(n),oY0),o(f(n),cY0,aY0);var i=e[1];u(f(n),sY0);var x=0;le(function(d,w){d&&u(f(n),xY0);function G(S){return u(t,S)}function A(S){function M(K){return u(t,K)}return o(BN[1],M,S)}return R(I5[1],A,G,n,w),1},x,i),u(f(n),vY0),u(f(n),lY0),u(f(n),bY0),o(f(n),mY0,pY0);var c=e[2];o(f(n),_Y0,c),u(f(n),yY0),u(f(n),hY0),o(f(n),kY0,dY0);var s=e[3];o(f(n),wY0,s),u(f(n),EY0),u(f(n),SY0),o(f(n),FY0,gY0);var p=e[4];if(p){g(n,TY0);var y=p[1],T=function(d,w){u(f(d),iY0);var G=0;return le(function(A,S){A&&u(f(d),uY0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),fY0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,OY0)}else g(n,IY0);return u(f(n),AY0),u(f(n),NY0)}),N(LJ,function(t,n){var e=u(uP,t);return o(C0(tY0),e,n)});var RJ=[0,uP,LJ],iP=function t(n,e,i){return t.fun(n,e,i)},jJ=function t(n,e){return t.fun(n,e)},A5=function t(n,e,i,x){return t.fun(n,e,i,x)},GJ=function t(n,e,i){return t.fun(n,e,i)};N(iP,function(t,n,e){u(f(n),LX0),o(f(n),jX0,RX0);var i=e[1];function x(d){return u(t,d)}R(A5,function(d){function w(G){return u(t,G)}return o(g1[1],w,d)},x,n,i),u(f(n),GX0),u(f(n),MX0),o(f(n),qX0,BX0);var c=e[2];o(f(n),UX0,c),u(f(n),HX0),u(f(n),XX0),o(f(n),VX0,YX0);var s=e[3];o(f(n),zX0,s),u(f(n),KX0),u(f(n),WX0),o(f(n),$X0,JX0);var p=e[4];if(p){g(n,ZX0);var y=p[1],T=function(d,w){u(f(d),PX0);var G=0;return le(function(A,S){A&&u(f(d),CX0);function M(K){return u(t,K)}return ur(iu[1],M,d,S),1},G,w),u(f(d),DX0)},E=function(d){return u(t,d)};R(Dr[1],E,T,n,y),g(n,QX0)}else g(n,rY0);return u(f(n),eY0),u(f(n),nY0)}),N(jJ,function(t,n){var e=u(iP,t);return o(C0(NX0),e,n)}),N(A5,function(t,n,e,i){if(i[0]===0){u(f(e),EX0),u(f(e),SX0);var x=i[1],c=0;return le(function(y,T){y&&u(f(e),wX0);function E(d){return u(n,d)}return ur(eP[1],E,e,T),1},c,x),u(f(e),gX0),u(f(e),FX0)}u(f(e),TX0),u(f(e),OX0);var s=i[1],p=0;return le(function(y,T){y&&u(f(e),kX0);function E(w){return u(n,w)}function d(w){return u(t,w)}return R(I5[1],d,E,e,T),1},p,s),u(f(e),IX0),u(f(e),AX0)}),N(GJ,function(t,n,e){var i=o(A5,t,n);return o(C0(dX0),i,e)});var MJ=[0,iP,jJ,A5,GJ],fP=function t(n,e,i){return t.fun(n,e,i)},BJ=function t(n,e){return t.fun(n,e)};N(fP,function(t,n,e){u(f(n),eX0),o(f(n),tX0,nX0);var i=e[1];u(f(n),uX0);var x=0;le(function(E,d){E&&u(f(n),rX0);function w(G){return u(t,G)}return ur(eP[1],w,n,d),1},x,i),u(f(n),iX0),u(f(n),fX0),u(f(n),xX0),o(f(n),aX0,oX0);var c=e[2];o(f(n),cX0,c),u(f(n),sX0),u(f(n),vX0),o(f(n),bX0,lX0);var s=e[3];if(s){g(n,pX0);var p=s[1],y=function(E,d){u(f(E),ZH0);var w=0;return le(function(G,A){G&&u(f(E),$H0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),QH0)},T=function(E){return u(t,E)};R(Dr[1],T,y,n,p),g(n,mX0)}else g(n,_X0);return u(f(n),yX0),u(f(n),hX0)}),N(BJ,function(t,n){var e=u(fP,t);return o(C0(JH0),e,n)});var qJ=[0,fP,BJ],xP=function t(n,e,i,x){return t.fun(n,e,i,x)},UJ=function t(n,e,i){return t.fun(n,e,i)},N5=function t(n,e,i){return t.fun(n,e,i)},HJ=function t(n,e){return t.fun(n,e)},C5=function t(n,e,i){return t.fun(n,e,i)},XJ=function t(n,e){return t.fun(n,e)};N(xP,function(t,n,e,i){u(f(e),DH0),o(f(e),RH0,LH0);var x=i[1];function c(w){return u(n,w)}function s(w){return u(t,w)}R(Rn[1],s,c,e,x),u(f(e),jH0),u(f(e),GH0),o(f(e),BH0,MH0);var p=i[2];ur(N5,function(w){return u(t,w)},e,p),u(f(e),qH0),u(f(e),UH0),o(f(e),XH0,HH0);var y=i[3];if(y){g(e,YH0);var T=y[1],E=function(w,G){return g(w,PH0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,VH0)}else g(e,zH0);return u(f(e),KH0),u(f(e),WH0)}),N(UJ,function(t,n,e){var i=o(xP,t,n);return o(C0(CH0),i,e)}),N(N5,function(t,n,e){u(f(n),IH0),o(t,n,e[1]),u(f(n),AH0);var i=e[2];return ur(C5,function(x){return u(t,x)},n,i),u(f(n),NH0)}),N(HJ,function(t,n){var e=u(N5,t);return o(C0(OH0),e,n)}),N(C5,function(t,n,e){switch(e[0]){case 0:u(f(n),dH0);var i=e[1],x=function(d){return u(t,d)};return ur(DJ[1],x,n,i),u(f(n),kH0);case 1:u(f(n),wH0);var c=e[1],s=function(d){return u(t,d)};return ur(RJ[1],s,n,c),u(f(n),EH0);case 2:u(f(n),SH0);var p=e[1],y=function(d){return u(t,d)};return ur(MJ[1],y,n,p),u(f(n),gH0);default:u(f(n),FH0);var T=e[1],E=function(d){return u(t,d)};return ur(qJ[1],E,n,T),u(f(n),TH0)}}),N(XJ,function(t,n){var e=u(C5,t);return o(C0(hH0),e,n)});var YJ=[0,eP,I5,DJ,RJ,MJ,qJ,xP,UJ,N5,HJ,C5,XJ],oP=function t(n,e,i,x){return t.fun(n,e,i,x)},VJ=function t(n,e,i){return t.fun(n,e,i)};N(oP,function(t,n,e,i){u(f(e),qU0),o(f(e),HU0,UU0);var x=i[1];function c(k0){return u(n,k0)}function s(k0){return u(t,k0)}R(Rn[1],s,c,e,x),u(f(e),XU0),u(f(e),YU0),o(f(e),zU0,VU0);var p=i[2];if(p){g(e,KU0);var y=p[1],T=function(k0){return u(n,k0)},E=function(k0){return u(t,k0)};R($e[22][1],E,T,e,y),g(e,WU0)}else g(e,JU0);u(f(e),$U0),u(f(e),ZU0),o(f(e),rH0,QU0);var d=i[3];u(f(e),eH0);var w=0;le(function(k0,g0){k0&&u(f(e),jU0),u(f(e),GU0),o(t,e,g0[1]),u(f(e),MU0);var e0=g0[2];function x0(c0){return u(n,c0)}function l(c0){return u(t,c0)}return R($e[2][2],l,x0,e,e0),u(f(e),BU0),1},w,d),u(f(e),nH0),u(f(e),tH0),u(f(e),uH0),o(f(e),fH0,iH0);var G=i[4];u(f(e),xH0),o(t,e,G[1]),u(f(e),oH0);var A=G[2];function S(k0){return u(n,k0)}function M(k0){return u(t,k0)}R($e[5][6],M,S,e,A),u(f(e),aH0),u(f(e),cH0),u(f(e),sH0),o(f(e),lH0,vH0);var K=i[5];if(K){g(e,bH0);var V=K[1],f0=function(k0,g0){return g(k0,RU0)},m0=function(k0){return u(t,k0)};R(Dr[1],m0,f0,e,V),g(e,pH0)}else g(e,mH0);return u(f(e),_H0),u(f(e),yH0)}),N(VJ,function(t,n,e){var i=o(oP,t,n);return o(C0(LU0),i,e)});var P5=[0,oP,VJ],aP=function t(n,e,i,x){return t.fun(n,e,i,x)},zJ=function t(n,e,i){return t.fun(n,e,i)};N(aP,function(t,n,e,i){u(f(e),Bq0),o(f(e),Uq0,qq0);var x=i[1];function c(_0){return u(n,_0)}function s(_0){return u(t,_0)}R(Rn[1],s,c,e,x),u(f(e),Hq0),u(f(e),Xq0),o(f(e),Vq0,Yq0);var p=i[2];if(p){g(e,zq0);var y=p[1],T=function(_0){return u(n,_0)},E=function(_0){return u(t,_0)};R($e[22][1],E,T,e,y),g(e,Kq0)}else g(e,Wq0);u(f(e),Jq0),u(f(e),$q0),o(f(e),Qq0,Zq0);var d=i[3];u(f(e),rU0),o(t,e,d[1]),u(f(e),eU0);var w=d[2];function G(_0){return u(n,_0)}function A(_0){return u(t,_0)}R($e[5][6],A,G,e,w),u(f(e),nU0),u(f(e),tU0),u(f(e),uU0),o(f(e),fU0,iU0);var S=i[4];if(S){var M=S[1];g(e,xU0),u(f(e),oU0),o(t,e,M[1]),u(f(e),aU0);var K=M[2],V=function(_0){return u(n,_0)},f0=function(_0){return u(t,_0)};R($e[2][2],f0,V,e,K),u(f(e),cU0),g(e,sU0)}else g(e,vU0);u(f(e),lU0),u(f(e),bU0),o(f(e),mU0,pU0);var m0=i[5];u(f(e),_U0);var k0=0;le(function(_0,E0){_0&&u(f(e),Rq0),u(f(e),jq0),o(t,e,E0[1]),u(f(e),Gq0);var U0=E0[2];function b(X){return u(n,X)}function R0(X){return u(t,X)}return R($e[2][2],R0,b,e,U0),u(f(e),Mq0),1},k0,m0),u(f(e),yU0),u(f(e),hU0),u(f(e),dU0),o(f(e),wU0,kU0);var g0=i[6];if(g0){g(e,EU0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R(F1[5][2],l,x0,e,e0),g(e,SU0)}else g(e,gU0);u(f(e),FU0),u(f(e),TU0),o(f(e),IU0,OU0);var c0=i[7];if(c0){g(e,AU0);var t0=c0[1],o0=function(_0,E0){return g(_0,Lq0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,NU0)}else g(e,CU0);return u(f(e),PU0),u(f(e),DU0)}),N(zJ,function(t,n,e){var i=o(aP,t,n);return o(C0(Dq0),i,e)});var cP=[0,aP,zJ],sP=function t(n,e,i,x){return t.fun(n,e,i,x)},KJ=function t(n,e,i){return t.fun(n,e,i)};N(sP,function(t,n,e,i){u(f(e),yq0),o(f(e),dq0,hq0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(Rn[1],s,c,e,x),u(f(e),kq0),u(f(e),wq0),o(f(e),Sq0,Eq0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),gq0),u(f(e),Fq0),o(f(e),Oq0,Tq0);var E=i[3];if(E){g(e,Iq0);var d=E[1],w=function(A,S){return g(A,_q0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,Aq0)}else g(e,Nq0);return u(f(e),Cq0),u(f(e),Pq0)}),N(KJ,function(t,n,e){var i=o(sP,t,n);return o(C0(mq0),i,e)});var vP=[0,sP,KJ],lP=function t(n,e,i,x){return t.fun(n,e,i,x)},WJ=function t(n,e,i){return t.fun(n,e,i)};N(lP,function(t,n,e,i){u(f(e),zB0),o(f(e),WB0,KB0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(Rn[1],s,c,e,x),u(f(e),JB0),u(f(e),$B0),o(f(e),QB0,ZB0);var p=i[2];function y(V){return u(n,V)}function T(V){return u(t,V)}R($e[17],T,y,e,p),u(f(e),rq0),u(f(e),eq0),o(f(e),tq0,nq0);var E=i[3];if(E){g(e,uq0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R($e[24][1],G,w,e,d),g(e,iq0)}else g(e,fq0);u(f(e),xq0),u(f(e),oq0),o(f(e),cq0,aq0);var A=i[4];if(A){g(e,sq0);var S=A[1],M=function(V,f0){return g(V,VB0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,vq0)}else g(e,lq0);return u(f(e),bq0),u(f(e),pq0)}),N(WJ,function(t,n,e){var i=o(lP,t,n);return o(C0(YB0),i,e)});var bP=[0,lP,WJ],D5=function t(n,e,i,x){return t.fun(n,e,i,x)},JJ=function t(n,e,i){return t.fun(n,e,i)},L5=function t(n,e){return t.fun(n,e)},$J=function t(n){return t.fun(n)},pP=function t(n,e,i,x){return t.fun(n,e,i,x)},ZJ=function t(n,e,i){return t.fun(n,e,i)};N(D5,function(t,n,e,i){if(i[0]===0){u(f(e),GB0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Rn[1],s,c,e,x),u(f(e),MB0)}var p=i[1];u(f(e),BB0),u(f(e),qB0),o(n,e,p[1]),u(f(e),UB0);var y=p[2];function T(E){return u(t,E)}return ur(g1[1],T,e,y),u(f(e),HB0),u(f(e),XB0)}),N(JJ,function(t,n,e){var i=o(D5,t,n);return o(C0(jB0),i,e)}),N(L5,function(t,n){return n?g(t,LB0):g(t,RB0)}),N($J,function(t){return o(C0(DB0),L5,t)}),N(pP,function(t,n,e,i){u(f(e),sB0),o(f(e),lB0,vB0);var x=i[1];function c(A){return u(n,A)}R(D5,function(A){return u(t,A)},c,e,x),u(f(e),bB0),u(f(e),pB0),o(f(e),_B0,mB0);var s=i[2];u(f(e),yB0),o(t,e,s[1]),u(f(e),hB0);var p=s[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R(Kv[1],T,y,e,p),u(f(e),dB0),u(f(e),kB0),u(f(e),wB0),o(f(e),SB0,EB0),o(L5,e,i[3]),u(f(e),gB0),u(f(e),FB0),o(f(e),OB0,TB0);var E=i[4];if(E){g(e,IB0);var d=E[1],w=function(A,S){return g(A,cB0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,AB0)}else g(e,NB0);return u(f(e),CB0),u(f(e),PB0)}),N(ZJ,function(t,n,e){var i=o(pP,t,n);return o(C0(aB0),i,e)});var QJ=[0,D5,JJ,L5,$J,pP,ZJ],mP=function t(n,e,i,x){return t.fun(n,e,i,x)},r$=function t(n,e,i){return t.fun(n,e,i)};N(mP,function(t,n,e,i){u(f(e),$M0),o(f(e),QM0,ZM0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),rB0),u(f(e),eB0),o(f(e),tB0,nB0);var p=i[2];if(p){g(e,uB0);var y=p[1],T=function(d,w){return g(d,JM0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,iB0)}else g(e,fB0);return u(f(e),xB0),u(f(e),oB0)}),N(r$,function(t,n,e){var i=o(mP,t,n);return o(C0(WM0),i,e)});var e$=[0,mP,r$],_P=function t(n,e,i){return t.fun(n,e,i)},n$=function t(n,e){return t.fun(n,e)},R5=function t(n,e,i){return t.fun(n,e,i)},t$=function t(n,e){return t.fun(n,e)};N(_P,function(t,n,e){u(f(n),VM0),o(t,n,e[1]),u(f(n),zM0);var i=e[2];return ur(R5,function(x){return u(t,x)},n,i),u(f(n),KM0)}),N(n$,function(t,n){var e=u(_P,t);return o(C0(YM0),e,n)}),N(R5,function(t,n,e){u(f(n),PM0),o(f(n),LM0,DM0);var i=e[1];function x(E){return u(t,E)}function c(E){return u(t,E)}R(Rn[1],c,x,n,i),u(f(n),RM0),u(f(n),jM0),o(f(n),MM0,GM0);var s=e[2];if(s){g(n,BM0);var p=s[1],y=function(E){return u(t,E)},T=function(E){return u(t,E)};R(Rn[1],T,y,n,p),g(n,qM0)}else g(n,UM0);return u(f(n),HM0),u(f(n),XM0)}),N(t$,function(t,n){var e=u(R5,t);return o(C0(CM0),e,n)});var u$=[0,_P,n$,R5,t$],yP=function t(n,e,i){return t.fun(n,e,i)},i$=function t(n,e){return t.fun(n,e)};N(yP,function(t,n,e){var i=e[2];if(u(f(n),FM0),o(t,n,e[1]),u(f(n),TM0),i){g(n,OM0);var x=i[1],c=function(p){return u(t,p)},s=function(p){return u(t,p)};R(Rn[1],s,c,n,x),g(n,IM0)}else g(n,AM0);return u(f(n),NM0)}),N(i$,function(t,n){var e=u(yP,t);return o(C0(gM0),e,n)});var f$=[0,yP,i$],hP=function t(n,e,i,x){return t.fun(n,e,i,x)},x$=function t(n,e,i){return t.fun(n,e,i)},j5=function t(n,e,i){return t.fun(n,e,i)},o$=function t(n,e){return t.fun(n,e)};N(hP,function(t,n,e,i){u(f(e),HG0),o(f(e),YG0,XG0);var x=i[1];if(x){g(e,VG0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(Yu[35],p,s,e,c),g(e,zG0)}else g(e,KG0);u(f(e),WG0),u(f(e),JG0),o(f(e),ZG0,$G0);var y=i[2];if(y){g(e,QG0);var T=y[1];ur(j5,function(V){return u(t,V)},e,T),g(e,rM0)}else g(e,eM0);u(f(e),nM0),u(f(e),tM0),o(f(e),iM0,uM0);var E=i[3];if(E){var d=E[1];g(e,fM0),u(f(e),xM0),o(t,e,d[1]),u(f(e),oM0);var w=d[2],G=function(V){return u(t,V)};ur(g1[1],G,e,w),u(f(e),aM0),g(e,cM0)}else g(e,sM0);u(f(e),vM0),u(f(e),lM0),o(f(e),pM0,bM0),o(Yu[33],e,i[4]),u(f(e),mM0),u(f(e),_M0),o(f(e),hM0,yM0);var A=i[5];if(A){g(e,dM0);var S=A[1],M=function(V,f0){return g(V,UG0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,kM0)}else g(e,wM0);return u(f(e),EM0),u(f(e),SM0)}),N(x$,function(t,n,e){var i=o(hP,t,n);return o(C0(qG0),i,e)}),N(j5,function(t,n,e){if(e[0]===0){u(f(n),LG0),u(f(n),RG0);var i=e[1],x=0;return le(function(p,y){p&&u(f(n),DG0);function T(E){return u(t,E)}return ur(u$[1],T,n,y),1},x,i),u(f(n),jG0),u(f(n),GG0)}u(f(n),MG0);var c=e[1];function s(p){return u(t,p)}return ur(f$[1],s,n,c),u(f(n),BG0)}),N(o$,function(t,n){var e=u(j5,t);return o(C0(PG0),e,n)});var dP=[0,u$,f$,hP,x$,j5,o$],kP=function t(n,e,i,x){return t.fun(n,e,i,x)},a$=function t(n,e,i){return t.fun(n,e,i)},G5=function t(n,e,i,x){return t.fun(n,e,i,x)},c$=function t(n,e,i){return t.fun(n,e,i)};N(kP,function(t,n,e,i){u(f(e),_G0),o(f(e),hG0,yG0),o(t,e,i[1]),u(f(e),dG0),u(f(e),kG0),o(f(e),EG0,wG0);var x=i[2];function c(E){return u(n,E)}R(G5,function(E){return u(t,E)},c,e,x),u(f(e),SG0),u(f(e),gG0),o(f(e),TG0,FG0);var s=i[3];if(s){g(e,OG0);var p=s[1],y=function(E,d){return g(E,mG0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,IG0)}else g(e,AG0);return u(f(e),NG0),u(f(e),CG0)}),N(a$,function(t,n,e){var i=o(kP,t,n);return o(C0(pG0),i,e)}),N(G5,function(t,n,e,i){if(i[0]===0){u(f(e),sG0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(Yu[35],s,c,e,x),u(f(e),vG0)}u(f(e),lG0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(qe[31],T,y,e,p),u(f(e),bG0)}),N(c$,function(t,n,e){var i=o(G5,t,n);return o(C0(cG0),i,e)});var s$=[0,kP,a$,G5,c$],M5=function t(n,e,i,x){return t.fun(n,e,i,x)},v$=function t(n,e,i){return t.fun(n,e,i)},wP=function t(n,e,i,x){return t.fun(n,e,i,x)},l$=function t(n,e,i){return t.fun(n,e,i)};N(M5,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),Cj0),u(f(e),Pj0),o(t,e,x[1]),u(f(e),Dj0);var c=x[2],s=function(E0){return u(n,E0)},p=function(E0){return u(t,E0)};return R(vP[1],p,s,e,c),u(f(e),Lj0),u(f(e),Rj0);case 1:var y=i[1];u(f(e),jj0),u(f(e),Gj0),o(t,e,y[1]),u(f(e),Mj0);var T=y[2],E=function(E0){return u(n,E0)},d=function(E0){return u(t,E0)};return R(bP[1],d,E,e,T),u(f(e),Bj0),u(f(e),qj0);case 2:var w=i[1];u(f(e),Uj0),u(f(e),Hj0),o(t,e,w[1]),u(f(e),Xj0);var G=w[2],A=function(E0){return u(n,E0)},S=function(E0){return u(t,E0)};return R(cP[1],S,A,e,G),u(f(e),Yj0),u(f(e),Vj0);case 3:u(f(e),zj0);var M=i[1],K=function(E0){return u(n,E0)},V=function(E0){return u(t,E0)};return R($e[13],V,K,e,M),u(f(e),Kj0);case 4:var f0=i[1];u(f(e),Wj0),u(f(e),Jj0),o(t,e,f0[1]),u(f(e),$j0);var m0=f0[2],k0=function(E0){return u(n,E0)},g0=function(E0){return u(t,E0)};return R(y5[1],g0,k0,e,m0),u(f(e),Zj0),u(f(e),Qj0);case 5:var e0=i[1];u(f(e),rG0),u(f(e),eG0),o(t,e,e0[1]),u(f(e),nG0);var x0=e0[2],l=function(E0){return u(n,E0)},c0=function(E0){return u(t,E0)};return R(h5[1],c0,l,e,x0),u(f(e),tG0),u(f(e),uG0);default:var t0=i[1];u(f(e),iG0),u(f(e),fG0),o(t,e,t0[1]),u(f(e),xG0);var o0=t0[2],w0=function(E0){return u(n,E0)},_0=function(E0){return u(t,E0)};return R(P5[1],_0,w0,e,o0),u(f(e),oG0),u(f(e),aG0)}}),N(v$,function(t,n,e){var i=o(M5,t,n);return o(C0(Nj0),i,e)}),N(wP,function(t,n,e,i){u(f(e),VR0),o(f(e),KR0,zR0);var x=i[1];x?(g(e,WR0),o(t,e,x[1]),g(e,JR0)):g(e,$R0),u(f(e),ZR0),u(f(e),QR0),o(f(e),ej0,rj0);var c=i[2];if(c){g(e,nj0);var s=c[1],p=function(f0){return u(n,f0)};R(M5,function(f0){return u(t,f0)},p,e,s),g(e,tj0)}else g(e,uj0);u(f(e),ij0),u(f(e),fj0),o(f(e),oj0,xj0);var y=i[3];if(y){g(e,aj0);var T=y[1],E=function(f0){return u(t,f0)};ur(dP[5],E,e,T),g(e,cj0)}else g(e,sj0);u(f(e),vj0),u(f(e),lj0),o(f(e),pj0,bj0);var d=i[4];if(d){var w=d[1];g(e,mj0),u(f(e),_j0),o(t,e,w[1]),u(f(e),yj0);var G=w[2],A=function(f0){return u(t,f0)};ur(g1[1],A,e,G),u(f(e),hj0),g(e,dj0)}else g(e,kj0);u(f(e),wj0),u(f(e),Ej0),o(f(e),gj0,Sj0);var S=i[5];if(S){g(e,Fj0);var M=S[1],K=function(f0,m0){return g(f0,YR0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,Tj0)}else g(e,Oj0);return u(f(e),Ij0),u(f(e),Aj0)}),N(l$,function(t,n,e){var i=o(wP,t,n);return o(C0(XR0),i,e)});var b$=[0,M5,v$,wP,l$],Al=function t(n,e){return t.fun(n,e)},p$=function t(n){return t.fun(n)},B5=function t(n,e,i,x){return t.fun(n,e,i,x)},m$=function t(n,e,i){return t.fun(n,e,i)},q5=function t(n,e,i,x){return t.fun(n,e,i,x)},_$=function t(n,e,i){return t.fun(n,e,i)},EP=function t(n,e,i,x){return t.fun(n,e,i,x)},y$=function t(n,e,i){return t.fun(n,e,i)};N(Al,function(t,n){switch(n){case 0:return g(t,qR0);case 1:return g(t,UR0);default:return g(t,HR0)}}),N(p$,function(t){return o(C0(BR0),Al,t)}),N(B5,function(t,n,e,i){if(i[0]===0){u(f(e),NR0),u(f(e),CR0);var x=i[1],c=0;return le(function(E,d){E&&u(f(e),AR0);function w(G){return u(n,G)}return R(q5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),PR0),u(f(e),DR0)}var s=i[1];u(f(e),LR0),u(f(e),RR0),o(t,e,s[1]),u(f(e),jR0);var p=s[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Rn[1],T,y,e,p),u(f(e),GR0),u(f(e),MR0)}),N(m$,function(t,n,e){var i=o(B5,t,n);return o(C0(IR0),i,e)}),N(q5,function(t,n,e,i){u(f(e),cR0),o(f(e),vR0,sR0);var x=i[1];x?(g(e,lR0),o(Al,e,x[1]),g(e,bR0)):g(e,pR0),u(f(e),mR0),u(f(e),_R0),o(f(e),hR0,yR0);var c=i[2];if(c){g(e,dR0);var s=c[1],p=function(w){return u(n,w)},y=function(w){return u(t,w)};R(Rn[1],y,p,e,s),g(e,kR0)}else g(e,wR0);u(f(e),ER0),u(f(e),SR0),o(f(e),FR0,gR0);var T=i[3];function E(w){return u(n,w)}function d(w){return u(t,w)}return R(Rn[1],d,E,e,T),u(f(e),TR0),u(f(e),OR0)}),N(_$,function(t,n,e){var i=o(q5,t,n);return o(C0(aR0),i,e)}),N(EP,function(t,n,e,i){u(f(e),AL0),o(f(e),CL0,NL0),o(Al,e,i[1]),u(f(e),PL0),u(f(e),DL0),o(f(e),RL0,LL0);var x=i[2];u(f(e),jL0),o(t,e,x[1]),u(f(e),GL0);var c=x[2];function s(V){return u(t,V)}ur(g1[1],s,e,c),u(f(e),ML0),u(f(e),BL0),u(f(e),qL0),o(f(e),HL0,UL0);var p=i[3];if(p){g(e,XL0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(Rn[1],E,T,e,y),g(e,YL0)}else g(e,VL0);u(f(e),zL0),u(f(e),KL0),o(f(e),JL0,WL0);var d=i[4];if(d){g(e,$L0);var w=d[1],G=function(V){return u(n,V)};R(B5,function(V){return u(t,V)},G,e,w),g(e,ZL0)}else g(e,QL0);u(f(e),rR0),u(f(e),eR0),o(f(e),tR0,nR0);var A=i[5];if(A){g(e,uR0);var S=A[1],M=function(V,f0){return g(V,IL0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,iR0)}else g(e,fR0);return u(f(e),xR0),u(f(e),oR0)}),N(y$,function(t,n,e){var i=o(EP,t,n);return o(C0(OL0),i,e)});var h$=[0,Al,p$,B5,m$,q5,_$,EP,y$],SP=function t(n,e,i,x){return t.fun(n,e,i,x)},d$=function t(n,e,i){return t.fun(n,e,i)};N(SP,function(t,n,e,i){u(f(e),oL0),o(f(e),cL0,aL0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),sL0),u(f(e),vL0),o(f(e),bL0,lL0);var p=i[2];if(p){g(e,pL0);var y=p[1];o(f(e),mL0,y),g(e,_L0)}else g(e,yL0);u(f(e),hL0),u(f(e),dL0),o(f(e),wL0,kL0);var T=i[3];if(T){g(e,EL0);var E=T[1],d=function(G,A){return g(G,xL0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,SL0)}else g(e,gL0);return u(f(e),FL0),u(f(e),TL0)}),N(d$,function(t,n,e){var i=o(SP,t,n);return o(C0(fL0),i,e)});var k$=[0,SP,d$],gP=function t(n,e,i){return t.fun(n,e,i)},w$=function t(n,e){return t.fun(n,e)};N(gP,function(t,n,e){u(f(n),ZD0),o(f(n),rL0,QD0);var i=e[1];if(i){g(n,eL0);var x=i[1],c=function(p,y){return g(p,$D0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,nL0)}else g(n,tL0);return u(f(n),uL0),u(f(n),iL0)}),N(w$,function(t,n){var e=u(gP,t);return o(C0(JD0),e,n)});var E$=[0,gP,w$],FP=function t(n,e){return t.fun(n,e)},S$=function t(n){return t.fun(n)},TP=function t(n,e,i,x){return t.fun(n,e,i,x)},g$=function t(n,e,i){return t.fun(n,e,i)},U5=function t(n,e,i,x){return t.fun(n,e,i,x)},F$=function t(n,e,i){return t.fun(n,e,i)};N(FP,function(t,n){return n?g(t,KD0):g(t,WD0)}),N(S$,function(t){return o(C0(zD0),FP,t)}),N(TP,function(t,n,e,i){u(f(e),XD0),o(t,e,i[1]),u(f(e),YD0);var x=i[2];function c(s){return u(n,s)}return R(U5,function(s){return u(t,s)},c,e,x),u(f(e),VD0)}),N(g$,function(t,n,e){var i=o(TP,t,n);return o(C0(HD0),i,e)}),N(U5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),EP0);var x=i[1],c=function(h0){return u(n,h0)},s=function(h0){return u(t,h0)};return R(Kv[1],s,c,e,x),u(f(e),SP0);case 1:u(f(e),gP0);var p=i[1],y=function(h0){return u(t,h0)};return ur(UW[1],y,e,p),u(f(e),FP0);case 2:u(f(e),TP0);var T=i[1],E=function(h0){return u(n,h0)},d=function(h0){return u(t,h0)};return R(F1[8],d,E,e,T),u(f(e),OP0);case 3:u(f(e),IP0);var w=i[1],G=function(h0){return u(t,h0)};return ur(XW[1],G,e,w),u(f(e),AP0);case 4:u(f(e),NP0);var A=i[1],S=function(h0){return u(t,h0)};return ur(VW[1],S,e,A),u(f(e),CP0);case 5:u(f(e),PP0);var M=i[1],K=function(h0){return u(n,h0)},V=function(h0){return u(t,h0)};return R(cP[1],V,K,e,M),u(f(e),DP0);case 6:u(f(e),LP0);var f0=i[1],m0=function(h0){return u(n,h0)},k0=function(h0){return u(t,h0)};return R(b$[3],k0,m0,e,f0),u(f(e),RP0);case 7:u(f(e),jP0);var g0=i[1],e0=function(h0){return u(n,h0)},x0=function(h0){return u(t,h0)};return R(bP[1],x0,e0,e,g0),u(f(e),GP0);case 8:u(f(e),MP0);var l=i[1],c0=function(h0){return u(n,h0)},t0=function(h0){return u(t,h0)};return R(P5[1],t0,c0,e,l),u(f(e),BP0);case 9:u(f(e),qP0);var o0=i[1],w0=function(h0){return u(n,h0)},_0=function(h0){return u(t,h0)};return R(QJ[5],_0,w0,e,o0),u(f(e),UP0);case 10:u(f(e),HP0);var E0=i[1],U0=function(h0){return u(n,h0)},b=function(h0){return u(t,h0)};return R(e$[1],b,U0,e,E0),u(f(e),XP0);case 11:u(f(e),YP0);var R0=i[1],X=function(h0){return u(n,h0)},s0=function(h0){return u(t,h0)};return R(y5[1],s0,X,e,R0),u(f(e),VP0);case 12:u(f(e),zP0);var hr=i[1],Ar=function(h0){return u(n,h0)},or=function(h0){return u(t,h0)};return R(h5[1],or,Ar,e,hr),u(f(e),KP0);case 13:u(f(e),WP0);var W0=i[1],Lr=function(h0){return u(n,h0)},Tr=function(h0){return u(t,h0)};return R(vP[1],Tr,Lr,e,W0),u(f(e),JP0);case 14:u(f(e),$P0);var Hr=i[1],Or=function(h0){return u(n,h0)},fr=function(h0){return u(t,h0)};return R(hJ[1],fr,Or,e,Hr),u(f(e),ZP0);case 15:u(f(e),QP0);var Rr=i[1],Wr=function(h0){return u(t,h0)};return ur(E$[1],Wr,e,Rr),u(f(e),rD0);case 16:u(f(e),eD0);var Jr=i[1],ar=function(h0){return u(n,h0)},_r=function(h0){return u(t,h0)};return R(YJ[7],_r,ar,e,Jr),u(f(e),nD0);case 17:u(f(e),tD0);var Ir=i[1],fe=function(h0){return u(n,h0)},v0=function(h0){return u(t,h0)};return R(s$[1],v0,fe,e,Ir),u(f(e),uD0);case 18:u(f(e),iD0);var P=i[1],L=function(h0){return u(n,h0)},Q=function(h0){return u(t,h0)};return R(dP[3],Q,L,e,P),u(f(e),fD0);case 19:u(f(e),xD0);var i0=i[1],l0=function(h0){return u(n,h0)},S0=function(h0){return u(t,h0)};return R(k$[1],S0,l0,e,i0),u(f(e),oD0);case 20:u(f(e),aD0);var T0=i[1],rr=function(h0){return u(n,h0)},L0=function(h0){return u(t,h0)};return R(wJ[1],L0,rr,e,T0),u(f(e),cD0);case 21:u(f(e),sD0);var B=i[1],Z=function(h0){return u(n,h0)},p0=function(h0){return u(t,h0)};return R(gJ[1],p0,Z,e,B),u(f(e),vD0);case 22:u(f(e),lD0);var b0=i[1],O0=function(h0){return u(n,h0)},M0=function(h0){return u(t,h0)};return R(OJ[1],M0,O0,e,b0),u(f(e),bD0);case 23:u(f(e),pD0);var er=i[1],yr=function(h0){return u(n,h0)},vr=function(h0){return u(t,h0)};return R(As[5],vr,yr,e,er),u(f(e),mD0);case 24:u(f(e),_D0);var $0=i[1],Er=function(h0){return u(n,h0)},Mr=function(h0){return u(t,h0)};return R(GW[2],Mr,Er,e,$0),u(f(e),yD0);case 25:u(f(e),hD0);var Br=i[1],qr=function(h0){return u(n,h0)},jr=function(h0){return u(t,h0)};return R(h$[7],jr,qr,e,Br),u(f(e),dD0);case 26:u(f(e),kD0);var $r=i[1],ne=function(h0){return u(n,h0)},Qr=function(h0){return u(t,h0)};return R(P5[1],Qr,ne,e,$r),u(f(e),wD0);case 27:u(f(e),ED0);var be=i[1],ae=function(h0){return u(n,h0)},pe=function(h0){return u(t,h0)};return R(BW[1],pe,ae,e,be),u(f(e),SD0);case 28:u(f(e),gD0);var oe=i[1],ce=function(h0){return u(n,h0)},ge=function(h0){return u(t,h0)};return R(tJ[1],ge,ce,e,oe),u(f(e),FD0);case 29:u(f(e),TD0);var q0=i[1],Fr=function(h0){return u(n,h0)},_=function(h0){return u(t,h0)};return R(eJ[2],_,Fr,e,q0),u(f(e),OD0);case 30:u(f(e),ID0);var k=i[1],I=function(h0){return u(n,h0)},U=function(h0){return u(t,h0)};return R(iJ[1],U,I,e,k),u(f(e),AD0);case 31:u(f(e),ND0);var Y=i[1],y0=function(h0){return u(n,h0)},P0=function(h0){return u(t,h0)};return R(cJ[2],P0,y0,e,Y),u(f(e),CD0);case 32:u(f(e),PD0);var I0=i[1],D=function(h0){return u(n,h0)},u0=function(h0){return u(t,h0)};return R(y5[1],u0,D,e,I0),u(f(e),DD0);case 33:u(f(e),LD0);var X0=i[1],J0=function(h0){return u(n,h0)},ir=function(h0){return u(t,h0)};return R(h5[1],ir,J0,e,X0),u(f(e),RD0);case 34:u(f(e),jD0);var Q0=i[1],F0=function(h0){return u(n,h0)},Sr=function(h0){return u(t,h0)};return R(Il[2],Sr,F0,e,Q0),u(f(e),GD0);case 35:u(f(e),MD0);var mr=i[1],Cr=function(h0){return u(n,h0)},sr=function(h0){return u(t,h0)};return R(_J[1],sr,Cr,e,mr),u(f(e),BD0);default:u(f(e),qD0);var Pr=i[1],K0=function(h0){return u(n,h0)},Ur=function(h0){return u(t,h0)};return R(KW[1],Ur,K0,e,Pr),u(f(e),UD0)}}),N(F$,function(t,n,e){var i=o(U5,t,n);return o(C0(wP0),i,e)}),mu(W3r,Yu,[0,Kv,GW,BW,UW,XW,VW,KW,y5,h5,eJ,tJ,iJ,cJ,Il,_J,hJ,wJ,gJ,OJ,YJ,P5,cP,vP,bP,QJ,e$,dP,s$,b$,h$,k$,E$,FP,S$,TP,g$,U5,F$]);var OP=function t(n,e,i,x){return t.fun(n,e,i,x)},T$=function t(n,e,i){return t.fun(n,e,i)},H5=function t(n,e,i){return t.fun(n,e,i)},O$=function t(n,e){return t.fun(n,e)};N(OP,function(t,n,e,i){u(f(e),hP0),o(n,e,i[1]),u(f(e),dP0);var x=i[2];return ur(H5,function(c){return u(t,c)},e,x),u(f(e),kP0)}),N(T$,function(t,n,e){var i=o(OP,t,n);return o(C0(yP0),i,e)}),N(H5,function(t,n,e){u(f(n),cP0),o(f(n),vP0,sP0);var i=e[1];if(i){g(n,lP0);var x=i[1],c=function(p,y){return g(p,aP0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,bP0)}else g(n,pP0);return u(f(n),mP0),u(f(n),_P0)}),N(O$,function(t,n){var e=u(H5,t);return o(C0(oP0),e,n)});var I$=[0,OP,T$,H5,O$],IP=function t(n,e,i,x){return t.fun(n,e,i,x)},A$=function t(n,e,i){return t.fun(n,e,i)};N(IP,function(t,n,e,i){if(i[0]===0){u(f(e),uP0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R($e[13],s,c,e,x),u(f(e),iP0)}u(f(e),fP0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(I$[1],T,y,e,p),u(f(e),xP0)}),N(A$,function(t,n,e){var i=o(IP,t,n);return o(C0(tP0),i,e)});var N$=[0,I$,IP,A$],AP=function t(n,e,i,x){return t.fun(n,e,i,x)},C$=function t(n,e,i){return t.fun(n,e,i)},X5=function t(n,e,i,x){return t.fun(n,e,i,x)},P$=function t(n,e,i){return t.fun(n,e,i)};N(AP,function(t,n,e,i){u(f(e),rP0),o(t,e,i[1]),u(f(e),eP0);var x=i[2];function c(s){return u(n,s)}return R(X5,function(s){return u(t,s)},c,e,x),u(f(e),nP0)}),N(C$,function(t,n,e){var i=o(AP,t,n);return o(C0(QC0),i,e)}),N(X5,function(t,n,e,i){u(f(e),MC0),o(f(e),qC0,BC0);var x=i[1];u(f(e),UC0);var c=0;le(function(E,d){E&&u(f(e),GC0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(N$[2],G,w,e,d),1},c,x),u(f(e),HC0),u(f(e),XC0),u(f(e),YC0),o(f(e),zC0,VC0);var s=i[2];if(s){g(e,KC0);var p=s[1],y=function(E,d){u(f(E),RC0);var w=0;return le(function(G,A){G&&u(f(E),LC0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),jC0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,WC0)}else g(e,JC0);return u(f(e),$C0),u(f(e),ZC0)}),N(P$,function(t,n,e){var i=o(X5,t,n);return o(C0(DC0),i,e)});var NP=function t(n,e,i,x){return t.fun(n,e,i,x)},D$=function t(n,e,i){return t.fun(n,e,i)},Y5=function t(n,e,i,x){return t.fun(n,e,i,x)},L$=function t(n,e,i){return t.fun(n,e,i)},See=[0,AP,C$,X5,P$];N(NP,function(t,n,e,i){u(f(e),NC0),o(t,e,i[1]),u(f(e),CC0);var x=i[2];function c(s){return u(n,s)}return R(Y5,function(s){return u(t,s)},c,e,x),u(f(e),PC0)}),N(D$,function(t,n,e){var i=o(NP,t,n);return o(C0(AC0),i,e)}),N(Y5,function(t,n,e,i){u(f(e),yC0),o(f(e),dC0,hC0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),kC0),u(f(e),wC0),o(f(e),SC0,EC0);var p=i[2];if(p){g(e,gC0);var y=p[1],T=function(d,w){return g(d,_C0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,FC0)}else g(e,TC0);return u(f(e),OC0),u(f(e),IC0)}),N(L$,function(t,n,e){var i=o(Y5,t,n);return o(C0(mC0),i,e)});var CP=[0,NP,D$,Y5,L$],V5=function t(n,e,i,x){return t.fun(n,e,i,x)},R$=function t(n,e,i){return t.fun(n,e,i)};N(V5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),cC0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(qe[31],s,c,e,x),u(f(e),sC0);case 1:u(f(e),vC0);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(CP[1],T,y,e,p),u(f(e),lC0);default:return u(f(e),bC0),o(t,e,i[1]),u(f(e),pC0)}}),N(R$,function(t,n,e){var i=o(V5,t,n);return o(C0(aC0),i,e)});var PP=function t(n,e,i,x){return t.fun(n,e,i,x)},j$=function t(n,e,i){return t.fun(n,e,i)};N(PP,function(t,n,e,i){u(f(e),WN0),o(f(e),$N0,JN0);var x=i[1];u(f(e),ZN0);var c=0;le(function(E,d){E&&u(f(e),KN0);function w(G){return u(n,G)}return R(V5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),QN0),u(f(e),rC0),u(f(e),eC0),o(f(e),tC0,nC0);var s=i[2];if(s){g(e,uC0);var p=s[1],y=function(E,d){u(f(E),VN0);var w=0;return le(function(G,A){G&&u(f(E),YN0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),zN0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,iC0)}else g(e,fC0);return u(f(e),xC0),u(f(e),oC0)}),N(j$,function(t,n,e){var i=o(PP,t,n);return o(C0(XN0),i,e)});var G$=[0,V5,R$,PP,j$],z5=function t(n,e){return t.fun(n,e)},M$=function t(n){return t.fun(n)},DP=function t(n,e,i){return t.fun(n,e,i)},B$=function t(n,e){return t.fun(n,e)},K5=function t(n,e){return t.fun(n,e)},q$=function t(n){return t.fun(n)};N(z5,function(t,n){u(f(t),PN0),o(f(t),LN0,DN0);var e=n[1];o(f(t),RN0,e),u(f(t),jN0),u(f(t),GN0),o(f(t),BN0,MN0);var i=n[2];return o(f(t),qN0,i),u(f(t),UN0),u(f(t),HN0)}),N(M$,function(t){return o(C0(CN0),z5,t)}),N(DP,function(t,n,e){return u(f(n),IN0),o(t,n,e[1]),u(f(n),AN0),o(K5,n,e[2]),u(f(n),NN0)}),N(B$,function(t,n){var e=u(DP,t);return o(C0(ON0),e,n)}),N(K5,function(t,n){u(f(t),yN0),o(f(t),dN0,hN0),o(z5,t,n[1]),u(f(t),kN0),u(f(t),wN0),o(f(t),SN0,EN0);var e=n[2];return o(f(t),gN0,e),u(f(t),FN0),u(f(t),TN0)}),N(q$,function(t){return o(C0(_N0),K5,t)});var U$=[0,z5,M$,DP,B$,K5,q$],LP=function t(n,e,i,x){return t.fun(n,e,i,x)},H$=function t(n,e,i){return t.fun(n,e,i)};N(LP,function(t,n,e,i){u(f(e),$A0),o(f(e),QA0,ZA0);var x=i[1];u(f(e),rN0);var c=0;le(function(w,G){w&&u(f(e),JA0);function A(S){return u(t,S)}return ur(U$[3],A,e,G),1},c,x),u(f(e),eN0),u(f(e),nN0),u(f(e),tN0),o(f(e),iN0,uN0);var s=i[2];u(f(e),fN0);var p=0;le(function(w,G){w&&u(f(e),WA0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(qe[31],S,A,e,G),1},p,s),u(f(e),xN0),u(f(e),oN0),u(f(e),aN0),o(f(e),sN0,cN0);var y=i[3];if(y){g(e,vN0);var T=y[1],E=function(w,G){return g(w,KA0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,lN0)}else g(e,bN0);return u(f(e),pN0),u(f(e),mN0)}),N(H$,function(t,n,e){var i=o(LP,t,n);return o(C0(zA0),i,e)});var RP=[0,U$,LP,H$],jP=function t(n,e,i,x){return t.fun(n,e,i,x)},X$=function t(n,e,i){return t.fun(n,e,i)};N(jP,function(t,n,e,i){u(f(e),OA0),o(f(e),AA0,IA0);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(qe[31],s,c,e,x),u(f(e),NA0),u(f(e),CA0),o(f(e),DA0,PA0);var p=i[2];u(f(e),LA0),o(t,e,p[1]),u(f(e),RA0);var y=p[2];function T(S){return u(n,S)}function E(S){return u(t,S)}R(RP[2],E,T,e,y),u(f(e),jA0),u(f(e),GA0),u(f(e),MA0),o(f(e),qA0,BA0);var d=i[3];if(d){g(e,UA0);var w=d[1],G=function(S,M){return g(S,TA0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,HA0)}else g(e,XA0);return u(f(e),YA0),u(f(e),VA0)}),N(X$,function(t,n,e){var i=o(jP,t,n);return o(C0(FA0),i,e)});var Y$=[0,jP,X$],T1=function t(n,e,i,x){return t.fun(n,e,i,x)},V$=function t(n,e,i){return t.fun(n,e,i)},GP=function t(n,e,i,x){return t.fun(n,e,i,x)},z$=function t(n,e,i){return t.fun(n,e,i)},W5=function t(n,e,i,x){return t.fun(n,e,i,x)},K$=function t(n,e,i){return t.fun(n,e,i)};N(T1,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),pA0),u(f(e),mA0),o(n,e,x[1]),u(f(e),_A0);var c=x[2],s=function(S){return u(t,S)};return ur(Tl[2],s,e,c),u(f(e),yA0),u(f(e),hA0);case 1:u(f(e),dA0);var p=i[1],y=function(S){return u(n,S)},T=function(S){return u(t,S)};return R(Rn[1],T,y,e,p),u(f(e),kA0);case 2:u(f(e),wA0);var E=i[1],d=function(S){return u(t,S)};return ur(Bp[1],d,e,E),u(f(e),EA0);default:u(f(e),SA0);var w=i[1],G=function(S){return u(n,S)},A=function(S){return u(t,S)};return R(qp[1],A,G,e,w),u(f(e),gA0)}}),N(V$,function(t,n,e){var i=o(T1,t,n);return o(C0(bA0),i,e)}),N(GP,function(t,n,e,i){u(f(e),sA0),o(t,e,i[1]),u(f(e),vA0);var x=i[2];function c(s){return u(n,s)}return R(W5,function(s){return u(t,s)},c,e,x),u(f(e),lA0)}),N(z$,function(t,n,e){var i=o(GP,t,n);return o(C0(cA0),i,e)}),N(W5,function(t,n,e,i){switch(i[0]){case 0:u(f(e),rI0),o(f(e),nI0,eI0);var x=i[1],c=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},c,e,x),u(f(e),tI0),u(f(e),uI0),o(f(e),fI0,iI0);var s=i[2],p=function(s0){return u(n,s0)},y=function(s0){return u(t,s0)};R(qe[31],y,p,e,s),u(f(e),xI0),u(f(e),oI0),o(f(e),cI0,aI0);var T=i[3];return o(f(e),sI0,T),u(f(e),vI0),u(f(e),lI0);case 1:var E=i[2];u(f(e),bI0),o(f(e),mI0,pI0);var d=i[1],w=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w,e,d),u(f(e),_I0),u(f(e),yI0),o(f(e),dI0,hI0),u(f(e),kI0),o(t,e,E[1]),u(f(e),wI0);var G=E[2],A=function(s0){return u(n,s0)},S=function(s0){return u(t,s0)};return R(As[5],S,A,e,G),u(f(e),EI0),u(f(e),SI0),u(f(e),gI0);case 2:var M=i[3],K=i[2];u(f(e),FI0),o(f(e),OI0,TI0);var V=i[1],f0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},f0,e,V),u(f(e),II0),u(f(e),AI0),o(f(e),CI0,NI0),u(f(e),PI0),o(t,e,K[1]),u(f(e),DI0);var m0=K[2],k0=function(s0){return u(n,s0)},g0=function(s0){return u(t,s0)};if(R(As[5],g0,k0,e,m0),u(f(e),LI0),u(f(e),RI0),u(f(e),jI0),o(f(e),MI0,GI0),M){g(e,BI0);var e0=M[1],x0=function(s0,hr){return g(s0,QO0)},l=function(s0){return u(t,s0)};R(Dr[1],l,x0,e,e0),g(e,qI0)}else g(e,UI0);return u(f(e),HI0),u(f(e),XI0);default:var c0=i[3],t0=i[2];u(f(e),YI0),o(f(e),zI0,VI0);var o0=i[1],w0=function(s0){return u(n,s0)};R(T1,function(s0){return u(t,s0)},w0,e,o0),u(f(e),KI0),u(f(e),WI0),o(f(e),$I0,JI0),u(f(e),ZI0),o(t,e,t0[1]),u(f(e),QI0);var _0=t0[2],E0=function(s0){return u(n,s0)},U0=function(s0){return u(t,s0)};if(R(As[5],U0,E0,e,_0),u(f(e),rA0),u(f(e),eA0),u(f(e),nA0),o(f(e),uA0,tA0),c0){g(e,iA0);var b=c0[1],R0=function(s0,hr){return g(s0,ZO0)},X=function(s0){return u(t,s0)};R(Dr[1],X,R0,e,b),g(e,fA0)}else g(e,xA0);return u(f(e),oA0),u(f(e),aA0)}}),N(K$,function(t,n,e){var i=o(W5,t,n);return o(C0($O0),i,e)});var W$=[0,T1,V$,GP,z$,W5,K$],MP=function t(n,e,i,x){return t.fun(n,e,i,x)},J$=function t(n,e,i){return t.fun(n,e,i)},J5=function t(n,e,i,x){return t.fun(n,e,i,x)},$$=function t(n,e,i){return t.fun(n,e,i)};N(MP,function(t,n,e,i){u(f(e),KO0),o(t,e,i[1]),u(f(e),WO0);var x=i[2];function c(s){return u(n,s)}return R(J5,function(s){return u(t,s)},c,e,x),u(f(e),JO0)}),N(J$,function(t,n,e){var i=o(MP,t,n);return o(C0(zO0),i,e)}),N(J5,function(t,n,e,i){u(f(e),LO0),o(f(e),jO0,RO0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),GO0),u(f(e),MO0),o(f(e),qO0,BO0);var p=i[2];if(p){g(e,UO0);var y=p[1],T=function(d,w){return g(d,DO0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,HO0)}else g(e,XO0);return u(f(e),YO0),u(f(e),VO0)}),N($$,function(t,n,e){var i=o(J5,t,n);return o(C0(PO0),i,e)});var Z$=[0,MP,J$,J5,$$],$5=function t(n,e,i,x){return t.fun(n,e,i,x)},Q$=function t(n,e,i){return t.fun(n,e,i)},BP=function t(n,e,i,x){return t.fun(n,e,i,x)},rZ=function t(n,e,i){return t.fun(n,e,i)};N($5,function(t,n,e,i){if(i[0]===0){u(f(e),IO0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(W$[3],s,c,e,x),u(f(e),AO0)}u(f(e),NO0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(Z$[1],T,y,e,p),u(f(e),CO0)}),N(Q$,function(t,n,e){var i=o($5,t,n);return o(C0(OO0),i,e)}),N(BP,function(t,n,e,i){u(f(e),bO0),o(f(e),mO0,pO0);var x=i[1];u(f(e),_O0);var c=0;le(function(E,d){E&&u(f(e),lO0);function w(G){return u(n,G)}return R($5,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),yO0),u(f(e),hO0),u(f(e),dO0),o(f(e),wO0,kO0);var s=i[2];if(s){g(e,EO0);var p=s[1],y=function(E,d){u(f(E),sO0);var w=0;return le(function(G,A){G&&u(f(E),cO0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),vO0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,SO0)}else g(e,gO0);return u(f(e),FO0),u(f(e),TO0)}),N(rZ,function(t,n,e){var i=o(BP,t,n);return o(C0(aO0),i,e)});var eZ=[0,W$,Z$,$5,Q$,BP,rZ],qP=function t(n,e,i,x){return t.fun(n,e,i,x)},nZ=function t(n,e,i){return t.fun(n,e,i)};N(qP,function(t,n,e,i){u(f(e),WT0),o(f(e),$T0,JT0);var x=i[1];u(f(e),ZT0);var c=0;le(function(E,d){E&&u(f(e),KT0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(qe[31],G,w,e,d),1},c,x),u(f(e),QT0),u(f(e),rO0),u(f(e),eO0),o(f(e),tO0,nO0);var s=i[2];if(s){g(e,uO0);var p=s[1],y=function(E,d){return g(E,zT0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,iO0)}else g(e,fO0);return u(f(e),xO0),u(f(e),oO0)}),N(nZ,function(t,n,e){var i=o(qP,t,n);return o(C0(VT0),i,e)});var tZ=[0,qP,nZ],Z5=function t(n,e){return t.fun(n,e)},uZ=function t(n){return t.fun(n)},UP=function t(n,e,i,x){return t.fun(n,e,i,x)},iZ=function t(n,e,i){return t.fun(n,e,i)};N(Z5,function(t,n){switch(n){case 0:return g(t,GT0);case 1:return g(t,MT0);case 2:return g(t,BT0);case 3:return g(t,qT0);case 4:return g(t,UT0);case 5:return g(t,HT0);case 6:return g(t,XT0);default:return g(t,YT0)}}),N(uZ,function(t){return o(C0(jT0),Z5,t)}),N(UP,function(t,n,e,i){u(f(e),kT0),o(f(e),ET0,wT0),o(Z5,e,i[1]),u(f(e),ST0),u(f(e),gT0),o(f(e),TT0,FT0);var x=i[2];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),OT0),u(f(e),IT0),o(f(e),NT0,AT0);var p=i[3];if(p){g(e,CT0);var y=p[1],T=function(d,w){return g(d,dT0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,PT0)}else g(e,DT0);return u(f(e),LT0),u(f(e),RT0)}),N(iZ,function(t,n,e){var i=o(UP,t,n);return o(C0(hT0),i,e)});var fZ=[0,Z5,uZ,UP,iZ],Q5=function t(n,e){return t.fun(n,e)},xZ=function t(n){return t.fun(n)},HP=function t(n,e,i,x){return t.fun(n,e,i,x)},oZ=function t(n,e,i){return t.fun(n,e,i)};N(Q5,function(t,n){switch(n){case 0:return g(t,$F0);case 1:return g(t,ZF0);case 2:return g(t,QF0);case 3:return g(t,rT0);case 4:return g(t,eT0);case 5:return g(t,nT0);case 6:return g(t,tT0);case 7:return g(t,uT0);case 8:return g(t,iT0);case 9:return g(t,fT0);case 10:return g(t,xT0);case 11:return g(t,oT0);case 12:return g(t,aT0);case 13:return g(t,cT0);case 14:return g(t,sT0);case 15:return g(t,vT0);case 16:return g(t,lT0);case 17:return g(t,bT0);case 18:return g(t,pT0);case 19:return g(t,mT0);case 20:return g(t,_T0);default:return g(t,yT0)}}),N(xZ,function(t){return o(C0(JF0),Q5,t)}),N(HP,function(t,n,e,i){u(f(e),AF0),o(f(e),CF0,NF0),o(Q5,e,i[1]),u(f(e),PF0),u(f(e),DF0),o(f(e),RF0,LF0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),jF0),u(f(e),GF0),o(f(e),BF0,MF0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),qF0),u(f(e),UF0),o(f(e),XF0,HF0);var E=i[4];if(E){g(e,YF0);var d=E[1],w=function(A,S){return g(A,IF0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,VF0)}else g(e,zF0);return u(f(e),KF0),u(f(e),WF0)}),N(oZ,function(t,n,e){var i=o(HP,t,n);return o(C0(OF0),i,e)});var aZ=[0,Q5,xZ,HP,oZ],rm=function t(n,e){return t.fun(n,e)},cZ=function t(n){return t.fun(n)},XP=function t(n,e,i,x){return t.fun(n,e,i,x)},sZ=function t(n,e,i){return t.fun(n,e,i)};N(rm,function(t,n){switch(n){case 0:return g(t,lF0);case 1:return g(t,bF0);case 2:return g(t,pF0);case 3:return g(t,mF0);case 4:return g(t,_F0);case 5:return g(t,yF0);case 6:return g(t,hF0);case 7:return g(t,dF0);case 8:return g(t,kF0);case 9:return g(t,wF0);case 10:return g(t,EF0);case 11:return g(t,SF0);case 12:return g(t,gF0);case 13:return g(t,FF0);default:return g(t,TF0)}}),N(cZ,function(t){return o(C0(vF0),rm,t)}),N(XP,function(t,n,e,i){u(f(e),Hg0),o(f(e),Yg0,Xg0);var x=i[1];x?(g(e,Vg0),o(rm,e,x[1]),g(e,zg0)):g(e,Kg0),u(f(e),Wg0),u(f(e),Jg0),o(f(e),Zg0,$g0);var c=i[2];function s(S){return u(n,S)}function p(S){return u(t,S)}R(di[5],p,s,e,c),u(f(e),Qg0),u(f(e),rF0),o(f(e),nF0,eF0);var y=i[3];function T(S){return u(n,S)}function E(S){return u(t,S)}R(qe[31],E,T,e,y),u(f(e),tF0),u(f(e),uF0),o(f(e),fF0,iF0);var d=i[4];if(d){g(e,xF0);var w=d[1],G=function(S,M){return g(S,Ug0)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,oF0)}else g(e,aF0);return u(f(e),cF0),u(f(e),sF0)}),N(sZ,function(t,n,e){var i=o(XP,t,n);return o(C0(qg0),i,e)});var vZ=[0,rm,cZ,XP,sZ],em=function t(n,e){return t.fun(n,e)},lZ=function t(n){return t.fun(n)},YP=function t(n,e,i,x){return t.fun(n,e,i,x)},bZ=function t(n,e,i){return t.fun(n,e,i)};N(em,function(t,n){return n?g(t,Mg0):g(t,Bg0)}),N(lZ,function(t){return o(C0(Gg0),em,t)}),N(YP,function(t,n,e,i){u(f(e),_g0),o(f(e),hg0,yg0),o(em,e,i[1]),u(f(e),dg0),u(f(e),kg0),o(f(e),Eg0,wg0);var x=i[2];function c(w){return u(n,w)}function s(w){return u(t,w)}R(qe[31],s,c,e,x),u(f(e),Sg0),u(f(e),gg0),o(f(e),Tg0,Fg0);var p=i[3];o(f(e),Og0,p),u(f(e),Ig0),u(f(e),Ag0),o(f(e),Cg0,Ng0);var y=i[4];if(y){g(e,Pg0);var T=y[1],E=function(w,G){return g(w,mg0)},d=function(w){return u(t,w)};R(Dr[1],d,E,e,T),g(e,Dg0)}else g(e,Lg0);return u(f(e),Rg0),u(f(e),jg0)}),N(bZ,function(t,n,e){var i=o(YP,t,n);return o(C0(pg0),i,e)});var pZ=[0,em,lZ,YP,bZ],nm=function t(n,e){return t.fun(n,e)},mZ=function t(n){return t.fun(n)},VP=function t(n,e,i,x){return t.fun(n,e,i,x)},_Z=function t(n,e,i){return t.fun(n,e,i)};N(nm,function(t,n){switch(n){case 0:return g(t,vg0);case 1:return g(t,lg0);default:return g(t,bg0)}}),N(mZ,function(t){return o(C0(sg0),nm,t)}),N(VP,function(t,n,e,i){u(f(e),YS0),o(f(e),zS0,VS0),o(nm,e,i[1]),u(f(e),KS0),u(f(e),WS0),o(f(e),$S0,JS0);var x=i[2];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),ZS0),u(f(e),QS0),o(f(e),eg0,rg0);var p=i[3];function y(A){return u(n,A)}function T(A){return u(t,A)}R(qe[31],T,y,e,p),u(f(e),ng0),u(f(e),tg0),o(f(e),ig0,ug0);var E=i[4];if(E){g(e,fg0);var d=E[1],w=function(A,S){return g(A,XS0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,xg0)}else g(e,og0);return u(f(e),ag0),u(f(e),cg0)}),N(_Z,function(t,n,e){var i=o(VP,t,n);return o(C0(HS0),i,e)});var yZ=[0,nm,mZ,VP,_Z],zP=function t(n,e,i,x){return t.fun(n,e,i,x)},hZ=function t(n,e,i){return t.fun(n,e,i)};N(zP,function(t,n,e,i){u(f(e),ES0),o(f(e),gS0,SS0);var x=i[1];function c(K){return u(n,K)}function s(K){return u(t,K)}R(qe[31],s,c,e,x),u(f(e),FS0),u(f(e),TS0),o(f(e),IS0,OS0);var p=i[2];function y(K){return u(n,K)}function T(K){return u(t,K)}R(qe[31],T,y,e,p),u(f(e),AS0),u(f(e),NS0),o(f(e),PS0,CS0);var E=i[3];function d(K){return u(n,K)}function w(K){return u(t,K)}R(qe[31],w,d,e,E),u(f(e),DS0),u(f(e),LS0),o(f(e),jS0,RS0);var G=i[4];if(G){g(e,GS0);var A=G[1],S=function(K,V){return g(K,wS0)},M=function(K){return u(t,K)};R(Dr[1],M,S,e,A),g(e,MS0)}else g(e,BS0);return u(f(e),qS0),u(f(e),US0)}),N(hZ,function(t,n,e){var i=o(zP,t,n);return o(C0(kS0),i,e)});var dZ=[0,zP,hZ],tm=function t(n,e,i,x){return t.fun(n,e,i,x)},kZ=function t(n,e,i){return t.fun(n,e,i)};N(tm,function(t,n,e,i){if(i[0]===0){u(f(e),_S0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(qe[31],s,c,e,x),u(f(e),yS0)}u(f(e),hS0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(CP[1],T,y,e,p),u(f(e),dS0)}),N(kZ,function(t,n,e){var i=o(tm,t,n);return o(C0(mS0),i,e)});var KP=function t(n,e,i,x){return t.fun(n,e,i,x)},wZ=function t(n,e,i){return t.fun(n,e,i)},um=function t(n,e,i,x){return t.fun(n,e,i,x)},EZ=function t(n,e,i){return t.fun(n,e,i)};N(KP,function(t,n,e,i){u(f(e),lS0),o(t,e,i[1]),u(f(e),bS0);var x=i[2];function c(s){return u(n,s)}return R(um,function(s){return u(t,s)},c,e,x),u(f(e),pS0)}),N(wZ,function(t,n,e){var i=o(KP,t,n);return o(C0(vS0),i,e)}),N(um,function(t,n,e,i){u(f(e),ZE0),o(f(e),rS0,QE0);var x=i[1];u(f(e),eS0);var c=0;le(function(E,d){E&&u(f(e),$E0);function w(G){return u(n,G)}return R(tm,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),nS0),u(f(e),tS0),u(f(e),uS0),o(f(e),fS0,iS0);var s=i[2];if(s){g(e,xS0);var p=s[1],y=function(E,d){u(f(E),WE0);var w=0;return le(function(G,A){G&&u(f(E),KE0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),JE0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,oS0)}else g(e,aS0);return u(f(e),cS0),u(f(e),sS0)}),N(EZ,function(t,n,e){var i=o(um,t,n);return o(C0(zE0),i,e)});var WP=[0,KP,wZ,um,EZ],JP=function t(n,e,i,x){return t.fun(n,e,i,x)},SZ=function t(n,e,i){return t.fun(n,e,i)};N(JP,function(t,n,e,i){u(f(e),kE0),o(f(e),EE0,wE0);var x=i[1];function c(f0){return u(n,f0)}function s(f0){return u(t,f0)}R(qe[31],s,c,e,x),u(f(e),SE0),u(f(e),gE0),o(f(e),TE0,FE0);var p=i[2];if(p){g(e,OE0);var y=p[1],T=function(f0){return u(n,f0)},E=function(f0){return u(t,f0)};R(qe[2][1],E,T,e,y),g(e,IE0)}else g(e,AE0);u(f(e),NE0),u(f(e),CE0),o(f(e),DE0,PE0);var d=i[3];if(d){g(e,LE0);var w=d[1],G=function(f0){return u(n,f0)},A=function(f0){return u(t,f0)};R(WP[1],A,G,e,w),g(e,RE0)}else g(e,jE0);u(f(e),GE0),u(f(e),ME0),o(f(e),qE0,BE0);var S=i[4];if(S){g(e,UE0);var M=S[1],K=function(f0,m0){return g(f0,dE0)},V=function(f0){return u(t,f0)};R(Dr[1],V,K,e,M),g(e,HE0)}else g(e,XE0);return u(f(e),YE0),u(f(e),VE0)}),N(SZ,function(t,n,e){var i=o(JP,t,n);return o(C0(hE0),i,e)});var gZ=[0,JP,SZ],$P=function t(n,e,i,x){return t.fun(n,e,i,x)},FZ=function t(n,e,i){return t.fun(n,e,i)};N($P,function(t,n,e,i){u(f(e),Jw0),o(f(e),Zw0,$w0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[31],s,c,e,x),u(f(e),Qw0),u(f(e),rE0),o(f(e),nE0,eE0);var p=i[2];if(p){g(e,tE0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(qe[2][1],E,T,e,y),g(e,uE0)}else g(e,iE0);u(f(e),fE0),u(f(e),xE0),o(f(e),aE0,oE0);var d=i[3];function w(V){return u(n,V)}function G(V){return u(t,V)}R(WP[1],G,w,e,d),u(f(e),cE0),u(f(e),sE0),o(f(e),lE0,vE0);var A=i[4];if(A){g(e,bE0);var S=A[1],M=function(V,f0){return g(V,Ww0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,pE0)}else g(e,mE0);return u(f(e),_E0),u(f(e),yE0)}),N(FZ,function(t,n,e){var i=o($P,t,n);return o(C0(Kw0),i,e)});var ZP=[0,$P,FZ],QP=function t(n,e,i,x){return t.fun(n,e,i,x)},TZ=function t(n,e,i){return t.fun(n,e,i)};N(QP,function(t,n,e,i){u(f(e),Dw0),o(f(e),Rw0,Lw0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(ZP[1],s,c,e,x),u(f(e),jw0),u(f(e),Gw0),o(f(e),Bw0,Mw0),o(n,e,i[2]),u(f(e),qw0),u(f(e),Uw0),o(f(e),Xw0,Hw0);var p=i[3];return o(f(e),Yw0,p),u(f(e),Vw0),u(f(e),zw0)}),N(TZ,function(t,n,e){var i=o(QP,t,n);return o(C0(Pw0),i,e)});var OZ=[0,QP,TZ],im=function t(n,e,i,x){return t.fun(n,e,i,x)},IZ=function t(n,e,i){return t.fun(n,e,i)},rD=function t(n,e,i,x){return t.fun(n,e,i,x)},AZ=function t(n,e,i){return t.fun(n,e,i)};N(im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),Tw0);var x=i[1],c=function(w){return u(n,w)},s=function(w){return u(t,w)};return R(Rn[1],s,c,e,x),u(f(e),Ow0);case 1:u(f(e),Iw0);var p=i[1],y=function(w){return u(t,w)};return ur(Bp[1],y,e,p),u(f(e),Aw0);default:u(f(e),Nw0);var T=i[1],E=function(w){return u(n,w)},d=function(w){return u(t,w)};return R(qe[31],d,E,e,T),u(f(e),Cw0)}}),N(IZ,function(t,n,e){var i=o(im,t,n);return o(C0(Fw0),i,e)}),N(rD,function(t,n,e,i){u(f(e),cw0),o(f(e),vw0,sw0);var x=i[1];function c(G){return u(n,G)}function s(G){return u(t,G)}R(qe[31],s,c,e,x),u(f(e),lw0),u(f(e),bw0),o(f(e),mw0,pw0);var p=i[2];function y(G){return u(n,G)}R(im,function(G){return u(t,G)},y,e,p),u(f(e),_w0),u(f(e),yw0),o(f(e),dw0,hw0);var T=i[3];if(T){g(e,kw0);var E=T[1],d=function(G,A){return g(G,aw0)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,ww0)}else g(e,Ew0);return u(f(e),Sw0),u(f(e),gw0)}),N(AZ,function(t,n,e){var i=o(rD,t,n);return o(C0(ow0),i,e)});var eD=[0,im,IZ,rD,AZ],nD=function t(n,e,i,x){return t.fun(n,e,i,x)},NZ=function t(n,e,i){return t.fun(n,e,i)};N(nD,function(t,n,e,i){u(f(e),Kk0),o(f(e),Jk0,Wk0);var x=i[1];function c(y){return u(n,y)}function s(y){return u(t,y)}R(eD[3],s,c,e,x),u(f(e),$k0),u(f(e),Zk0),o(f(e),rw0,Qk0),o(n,e,i[2]),u(f(e),ew0),u(f(e),nw0),o(f(e),uw0,tw0);var p=i[3];return o(f(e),iw0,p),u(f(e),fw0),u(f(e),xw0)}),N(NZ,function(t,n,e){var i=o(nD,t,n);return o(C0(zk0),i,e)});var CZ=[0,nD,NZ],tD=function t(n,e,i,x){return t.fun(n,e,i,x)},PZ=function t(n,e,i){return t.fun(n,e,i)};N(tD,function(t,n,e,i){u(f(e),Ek0),o(f(e),gk0,Sk0);var x=i[1];if(x){g(e,Fk0);var c=x[1],s=function(G){return u(n,G)},p=function(G){return u(t,G)};R(qe[31],p,s,e,c),g(e,Tk0)}else g(e,Ok0);u(f(e),Ik0),u(f(e),Ak0),o(f(e),Ck0,Nk0);var y=i[2];if(y){g(e,Pk0);var T=y[1],E=function(G,A){return g(G,wk0)},d=function(G){return u(t,G)};R(Dr[1],d,E,e,T),g(e,Dk0)}else g(e,Lk0);u(f(e),Rk0),u(f(e),jk0),o(f(e),Mk0,Gk0);var w=i[3];return o(f(e),Bk0,w),u(f(e),qk0),u(f(e),Uk0),o(f(e),Xk0,Hk0),o(n,e,i[4]),u(f(e),Yk0),u(f(e),Vk0)}),N(PZ,function(t,n,e){var i=o(tD,t,n);return o(C0(kk0),i,e)});var DZ=[0,tD,PZ],uD=function t(n,e,i,x){return t.fun(n,e,i,x)},LZ=function t(n,e,i){return t.fun(n,e,i)},fm=function t(n,e,i,x){return t.fun(n,e,i,x)},RZ=function t(n,e,i){return t.fun(n,e,i)};N(uD,function(t,n,e,i){u(f(e),yk0),o(t,e,i[1]),u(f(e),hk0);var x=i[2];function c(s){return u(n,s)}return R(fm,function(s){return u(t,s)},c,e,x),u(f(e),dk0)}),N(LZ,function(t,n,e){var i=o(uD,t,n);return o(C0(_k0),i,e)}),N(fm,function(t,n,e,i){u(f(e),tk0),o(f(e),ik0,uk0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),fk0),u(f(e),xk0),o(f(e),ak0,ok0);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R(qe[31],T,y,e,p),u(f(e),ck0),u(f(e),sk0),o(f(e),lk0,vk0);var E=i[3];return o(f(e),bk0,E),u(f(e),pk0),u(f(e),mk0)}),N(RZ,function(t,n,e){var i=o(fm,t,n);return o(C0(nk0),i,e)});var jZ=[0,uD,LZ,fm,RZ],iD=function t(n,e,i,x){return t.fun(n,e,i,x)},GZ=function t(n,e,i){return t.fun(n,e,i)};N(iD,function(t,n,e,i){u(f(e),Ud0),o(f(e),Xd0,Hd0);var x=i[1];u(f(e),Yd0);var c=0;le(function(E,d){E&&u(f(e),qd0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(jZ[1],G,w,e,d),1},c,x),u(f(e),Vd0),u(f(e),zd0),u(f(e),Kd0),o(f(e),Jd0,Wd0);var s=i[2];if(s){g(e,$d0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(qe[31],T,y,e,p),g(e,Zd0)}else g(e,Qd0);return u(f(e),rk0),u(f(e),ek0)}),N(GZ,function(t,n,e){var i=o(iD,t,n);return o(C0(Bd0),i,e)});var fD=[0,jZ,iD,GZ],xD=function t(n,e,i,x){return t.fun(n,e,i,x)},MZ=function t(n,e,i){return t.fun(n,e,i)};N(xD,function(t,n,e,i){u(f(e),Fd0),o(f(e),Od0,Td0);var x=i[1];u(f(e),Id0);var c=0;le(function(E,d){E&&u(f(e),gd0);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(fD[1][1],G,w,e,d),1},c,x),u(f(e),Ad0),u(f(e),Nd0),u(f(e),Cd0),o(f(e),Dd0,Pd0);var s=i[2];if(s){g(e,Ld0);var p=s[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};R(qe[31],T,y,e,p),g(e,Rd0)}else g(e,jd0);return u(f(e),Gd0),u(f(e),Md0)}),N(MZ,function(t,n,e){var i=o(xD,t,n);return o(C0(Sd0),i,e)});var BZ=[0,xD,MZ],oD=function t(n,e,i,x){return t.fun(n,e,i,x)},qZ=function t(n,e,i){return t.fun(n,e,i)};N(oD,function(t,n,e,i){u(f(e),od0),o(f(e),cd0,ad0);var x=i[1];function c(A){return u(n,A)}function s(A){return u(t,A)}R(qe[31],s,c,e,x),u(f(e),sd0),u(f(e),vd0),o(f(e),bd0,ld0);var p=i[2];function y(A){return u(n,A)}function T(A){return u(t,A)}R($e[17],T,y,e,p),u(f(e),pd0),u(f(e),md0),o(f(e),yd0,_d0);var E=i[3];if(E){g(e,hd0);var d=E[1],w=function(A,S){return g(A,xd0)},G=function(A){return u(t,A)};R(Dr[1],G,w,e,d),g(e,dd0)}else g(e,kd0);return u(f(e),wd0),u(f(e),Ed0)}),N(qZ,function(t,n,e){var i=o(oD,t,n);return o(C0(fd0),i,e)});var UZ=[0,oD,qZ],aD=function t(n,e,i){return t.fun(n,e,i)},HZ=function t(n,e){return t.fun(n,e)};N(aD,function(t,n,e){u(f(n),Xh0),o(f(n),Vh0,Yh0);var i=e[1];function x(G){return u(t,G)}function c(G){return u(t,G)}R(Rn[1],c,x,n,i),u(f(n),zh0),u(f(n),Kh0),o(f(n),Jh0,Wh0);var s=e[2];function p(G){return u(t,G)}function y(G){return u(t,G)}R(Rn[1],y,p,n,s),u(f(n),$h0),u(f(n),Zh0),o(f(n),rd0,Qh0);var T=e[3];if(T){g(n,ed0);var E=T[1],d=function(G,A){return g(G,Hh0)},w=function(G){return u(t,G)};R(Dr[1],w,d,n,E),g(n,nd0)}else g(n,td0);return u(f(n),ud0),u(f(n),id0)}),N(HZ,function(t,n){var e=u(aD,t);return o(C0(Uh0),e,n)});var XZ=[0,aD,HZ],cD=function t(n,e,i){return t.fun(n,e,i)},YZ=function t(n,e){return t.fun(n,e)};N(cD,function(t,n,e){u(f(n),Dh0),o(f(n),Rh0,Lh0);var i=e[1];if(i){g(n,jh0);var x=i[1],c=function(p,y){return g(p,Ph0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Gh0)}else g(n,Mh0);return u(f(n),Bh0),u(f(n),qh0)}),N(YZ,function(t,n){var e=u(cD,t);return o(C0(Ch0),e,n)});var VZ=[0,cD,YZ],sD=function t(n,e,i){return t.fun(n,e,i)},zZ=function t(n,e){return t.fun(n,e)};N(sD,function(t,n,e){u(f(n),Sh0),o(f(n),Fh0,gh0);var i=e[1];if(i){g(n,Th0);var x=i[1],c=function(p,y){return g(p,Eh0)},s=function(p){return u(t,p)};R(Dr[1],s,c,n,x),g(n,Oh0)}else g(n,Ih0);return u(f(n),Ah0),u(f(n),Nh0)}),N(zZ,function(t,n){var e=u(sD,t);return o(C0(wh0),e,n)});var KZ=[0,sD,zZ],vD=function t(n,e,i,x){return t.fun(n,e,i,x)},WZ=function t(n,e,i){return t.fun(n,e,i)};N(vD,function(t,n,e,i){u(f(e),ch0),o(f(e),vh0,sh0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),lh0),u(f(e),bh0),o(f(e),mh0,ph0);var p=i[2];if(p){g(e,_h0);var y=p[1],T=function(d,w){return g(d,ah0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,yh0)}else g(e,hh0);return u(f(e),dh0),u(f(e),kh0)}),N(WZ,function(t,n,e){var i=o(vD,t,n);return o(C0(oh0),i,e)});var JZ=[0,vD,WZ],lD=function t(n,e,i,x){return t.fun(n,e,i,x)},$Z=function t(n,e,i){return t.fun(n,e,i)},xm=function t(n,e,i,x){return t.fun(n,e,i,x)},ZZ=function t(n,e,i){return t.fun(n,e,i)};N(lD,function(t,n,e,i){u(f(e),ih0),o(n,e,i[1]),u(f(e),fh0);var x=i[2];function c(s){return u(n,s)}return R(xm,function(s){return u(t,s)},c,e,x),u(f(e),xh0)}),N($Z,function(t,n,e){var i=o(lD,t,n);return o(C0(uh0),i,e)}),N(xm,function(t,n,e,i){switch(i[0]){case 0:u(f(e),J_0);var x=i[1],c=function(Y){return u(n,Y)},s=function(Y){return u(t,Y)};return R(G$[3],s,c,e,x),u(f(e),$_0);case 1:u(f(e),Z_0);var p=i[1],y=function(Y){return u(n,Y)},T=function(Y){return u(t,Y)};return R(As[5],T,y,e,p),u(f(e),Q_0);case 2:u(f(e),ry0);var E=i[1],d=function(Y){return u(n,Y)},w=function(Y){return u(t,Y)};return R(vZ[3],w,d,e,E),u(f(e),ey0);case 3:u(f(e),ny0);var G=i[1],A=function(Y){return u(n,Y)},S=function(Y){return u(t,Y)};return R(aZ[3],S,A,e,G),u(f(e),ty0);case 4:u(f(e),uy0);var M=i[1],K=function(Y){return u(n,Y)},V=function(Y){return u(t,Y)};return R(ZP[1],V,K,e,M),u(f(e),iy0);case 5:u(f(e),fy0);var f0=i[1],m0=function(Y){return u(n,Y)},k0=function(Y){return u(t,Y)};return R(F1[8],k0,m0,e,f0),u(f(e),xy0);case 6:u(f(e),oy0);var g0=i[1],e0=function(Y){return u(n,Y)},x0=function(Y){return u(t,Y)};return R(fD[2],x0,e0,e,g0),u(f(e),ay0);case 7:u(f(e),cy0);var l=i[1],c0=function(Y){return u(n,Y)},t0=function(Y){return u(t,Y)};return R(dZ[1],t0,c0,e,l),u(f(e),sy0);case 8:u(f(e),vy0);var o0=i[1],w0=function(Y){return u(n,Y)},_0=function(Y){return u(t,Y)};return R(As[5],_0,w0,e,o0),u(f(e),ly0);case 9:u(f(e),by0);var E0=i[1],U0=function(Y){return u(n,Y)},b=function(Y){return u(t,Y)};return R(BZ[1],b,U0,e,E0),u(f(e),py0);case 10:u(f(e),my0);var R0=i[1],X=function(Y){return u(n,Y)},s0=function(Y){return u(t,Y)};return R(Rn[1],s0,X,e,R0),u(f(e),_y0);case 11:u(f(e),yy0);var hr=i[1],Ar=function(Y){return u(n,Y)},or=function(Y){return u(t,Y)};return R(JZ[1],or,Ar,e,hr),u(f(e),hy0);case 12:u(f(e),dy0);var W0=i[1],Lr=function(Y){return u(n,Y)},Tr=function(Y){return u(t,Y)};return R(UN[17],Tr,Lr,e,W0),u(f(e),ky0);case 13:u(f(e),wy0);var Hr=i[1],Or=function(Y){return u(n,Y)},fr=function(Y){return u(t,Y)};return R(UN[19],fr,Or,e,Hr),u(f(e),Ey0);case 14:u(f(e),Sy0);var Rr=i[1],Wr=function(Y){return u(t,Y)};return ur(Tl[2],Wr,e,Rr),u(f(e),gy0);case 15:u(f(e),Fy0);var Jr=i[1],ar=function(Y){return u(n,Y)},_r=function(Y){return u(t,Y)};return R(yZ[3],_r,ar,e,Jr),u(f(e),Ty0);case 16:u(f(e),Oy0);var Ir=i[1],fe=function(Y){return u(n,Y)},v0=function(Y){return u(t,Y)};return R(eD[3],v0,fe,e,Ir),u(f(e),Iy0);case 17:u(f(e),Ay0);var P=i[1],L=function(Y){return u(t,Y)};return ur(XZ[1],L,e,P),u(f(e),Ny0);case 18:u(f(e),Cy0);var Q=i[1],i0=function(Y){return u(n,Y)},l0=function(Y){return u(t,Y)};return R(gZ[1],l0,i0,e,Q),u(f(e),Py0);case 19:u(f(e),Dy0);var S0=i[1],T0=function(Y){return u(n,Y)},rr=function(Y){return u(t,Y)};return R(eZ[5],rr,T0,e,S0),u(f(e),Ly0);case 20:u(f(e),Ry0);var L0=i[1],B=function(Y){return u(n,Y)},Z=function(Y){return u(t,Y)};return R(OZ[1],Z,B,e,L0),u(f(e),jy0);case 21:u(f(e),Gy0);var p0=i[1],b0=function(Y){return u(n,Y)},O0=function(Y){return u(t,Y)};return R(CZ[1],O0,b0,e,p0),u(f(e),My0);case 22:u(f(e),By0);var M0=i[1],er=function(Y){return u(n,Y)},yr=function(Y){return u(t,Y)};return R(tZ[1],yr,er,e,M0),u(f(e),qy0);case 23:u(f(e),Uy0);var vr=i[1],$0=function(Y){return u(t,Y)};return ur(KZ[1],$0,e,vr),u(f(e),Hy0);case 24:u(f(e),Xy0);var Er=i[1],Mr=function(Y){return u(n,Y)},Br=function(Y){return u(t,Y)};return R(Y$[1],Br,Mr,e,Er),u(f(e),Yy0);case 25:u(f(e),Vy0);var qr=i[1],jr=function(Y){return u(n,Y)},$r=function(Y){return u(t,Y)};return R(RP[2],$r,jr,e,qr),u(f(e),zy0);case 26:u(f(e),Ky0);var ne=i[1],Qr=function(Y){return u(t,Y)};return ur(VZ[1],Qr,e,ne),u(f(e),Wy0);case 27:u(f(e),Jy0);var be=i[1],ae=function(Y){return u(n,Y)},pe=function(Y){return u(t,Y)};return R(UZ[1],pe,ae,e,be),u(f(e),$y0);case 28:u(f(e),Zy0);var oe=i[1],ce=function(Y){return u(n,Y)},ge=function(Y){return u(t,Y)};return R(fZ[3],ge,ce,e,oe),u(f(e),Qy0);case 29:u(f(e),rh0);var q0=i[1],Fr=function(Y){return u(n,Y)},_=function(Y){return u(t,Y)};return R(pZ[3],_,Fr,e,q0),u(f(e),eh0);default:u(f(e),nh0);var k=i[1],I=function(Y){return u(n,Y)},U=function(Y){return u(t,Y)};return R(DZ[1],U,I,e,k),u(f(e),th0)}}),N(ZZ,function(t,n,e){var i=o(xm,t,n);return o(C0(W_0),i,e)}),mu(J3r,qe,[0,N$,See,CP,G$,RP,Y$,eZ,tZ,fZ,aZ,vZ,pZ,yZ,dZ,tm,kZ,WP,gZ,ZP,OZ,eD,CZ,DZ,fD,BZ,UZ,XZ,VZ,KZ,JZ,lD,$Z,xm,ZZ]);var bD=function t(n,e,i,x){return t.fun(n,e,i,x)},QZ=function t(n,e,i){return t.fun(n,e,i)},om=function t(n,e,i){return t.fun(n,e,i)},rQ=function t(n,e){return t.fun(n,e)};N(bD,function(t,n,e,i){u(f(e),V_0),o(n,e,i[1]),u(f(e),z_0);var x=i[2];return ur(om,function(c){return u(t,c)},e,x),u(f(e),K_0)}),N(QZ,function(t,n,e){var i=o(bD,t,n);return o(C0(Y_0),i,e)}),N(om,function(t,n,e){u(f(n),C_0),o(f(n),D_0,P_0);var i=e[1];o(f(n),L_0,i),u(f(n),R_0),u(f(n),j_0),o(f(n),M_0,G_0);var x=e[2];if(x){g(n,B_0);var c=x[1],s=function(y,T){return g(y,N_0)},p=function(y){return u(t,y)};R(Dr[1],p,s,n,c),g(n,q_0)}else g(n,U_0);return u(f(n),H_0),u(f(n),X_0)}),N(rQ,function(t,n){var e=u(om,t);return o(C0(A_0),e,n)});var O1=[0,bD,QZ,om,rQ],pD=function t(n,e,i,x){return t.fun(n,e,i,x)},eQ=function t(n,e,i){return t.fun(n,e,i)},am=function t(n,e,i,x){return t.fun(n,e,i,x)},nQ=function t(n,e,i){return t.fun(n,e,i)};N(pD,function(t,n,e,i){u(f(e),T_0),o(t,e,i[1]),u(f(e),O_0);var x=i[2];function c(s){return u(n,s)}return R(am,function(s){return u(t,s)},c,e,x),u(f(e),I_0)}),N(eQ,function(t,n,e){var i=o(pD,t,n);return o(C0(F_0),i,e)}),N(am,function(t,n,e,i){u(f(e),__0),o(f(e),h_0,y_0);var x=i[1];function c(E){return u(n,E)}function s(E){return u(t,E)}R(O1[1],s,c,e,x),u(f(e),d_0),u(f(e),k_0),o(f(e),E_0,w_0);var p=i[2];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(O1[1],T,y,e,p),u(f(e),S_0),u(f(e),g_0)}),N(nQ,function(t,n,e){var i=o(am,t,n);return o(C0(m_0),i,e)});var mD=[0,pD,eQ,am,nQ],_D=function t(n,e,i,x){return t.fun(n,e,i,x)},tQ=function t(n,e,i){return t.fun(n,e,i)},cm=function t(n,e,i,x){return t.fun(n,e,i,x)},uQ=function t(n,e,i){return t.fun(n,e,i)};N(_D,function(t,n,e,i){u(f(e),u_0),o(f(e),f_0,i_0);var x=i[1];function c(E){return u(n,E)}R(cm,function(E){return u(t,E)},c,e,x),u(f(e),x_0),u(f(e),o_0),o(f(e),c_0,a_0);var s=i[2];if(s){g(e,s_0);var p=s[1],y=function(E,d){u(f(E),n_0);var w=0;return le(function(G,A){G&&u(f(E),e_0);function S(M){return u(t,M)}return ur(iu[1],S,E,A),1},w,d),u(f(E),t_0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,v_0)}else g(e,l_0);return u(f(e),b_0),u(f(e),p_0)}),N(tQ,function(t,n,e){var i=o(_D,t,n);return o(C0(r_0),i,e)}),N(cm,function(t,n,e,i){if(i){u(f(e),$90);var x=i[1],c=function(p){return u(n,p)},s=function(p){return u(t,p)};return R(qe[31],s,c,e,x),u(f(e),Z90)}return g(e,Q90)}),N(uQ,function(t,n,e){var i=o(cm,t,n);return o(C0(J90),i,e)});var yD=[0,_D,tQ,cm,uQ];function iQ(t,n){u(f(t),G90),o(f(t),B90,M90);var e=n[1];o(f(t),q90,e),u(f(t),U90),u(f(t),H90),o(f(t),Y90,X90);var i=n[2];return o(f(t),V90,i),u(f(t),z90),u(f(t),K90)}var fQ=[0,iQ,function(t){return o(C0(W90),iQ,t)}],hD=function t(n,e,i,x){return t.fun(n,e,i,x)},xQ=function t(n,e,i){return t.fun(n,e,i)},sm=function t(n,e,i,x){return t.fun(n,e,i,x)},oQ=function t(n,e,i){return t.fun(n,e,i)},vm=function t(n,e,i,x){return t.fun(n,e,i,x)},aQ=function t(n,e,i){return t.fun(n,e,i)},lm=function t(n,e,i,x){return t.fun(n,e,i,x)},cQ=function t(n,e,i){return t.fun(n,e,i)};N(hD,function(t,n,e,i){u(f(e),L90),o(t,e,i[1]),u(f(e),R90);var x=i[2];function c(s){return u(n,s)}return R(lm,function(s){return u(t,s)},c,e,x),u(f(e),j90)}),N(xQ,function(t,n,e){var i=o(hD,t,n);return o(C0(D90),i,e)}),N(sm,function(t,n,e,i){if(i[0]===0){u(f(e),A90);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(O1[1],s,c,e,x),u(f(e),N90)}u(f(e),C90);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(mD[1],T,y,e,p),u(f(e),P90)}),N(oQ,function(t,n,e){var i=o(sm,t,n);return o(C0(I90),i,e)}),N(vm,function(t,n,e,i){if(i[0]===0){u(f(e),E90),o(n,e,i[1]),u(f(e),S90);var x=i[2],c=function(T){return u(t,T)};return ur(Tl[2],c,e,x),u(f(e),g90)}u(f(e),F90),o(n,e,i[1]),u(f(e),T90);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(yD[1],y,p,e,s),u(f(e),O90)}),N(aQ,function(t,n,e){var i=o(vm,t,n);return o(C0(w90),i,e)}),N(lm,function(t,n,e,i){u(f(e),c90),o(f(e),v90,s90);var x=i[1];function c(T){return u(n,T)}R(sm,function(T){return u(t,T)},c,e,x),u(f(e),l90),u(f(e),b90),o(f(e),m90,p90);var s=i[2];if(s){g(e,_90);var p=s[1],y=function(T){return u(n,T)};R(vm,function(T){return u(t,T)},y,e,p),g(e,y90)}else g(e,h90);return u(f(e),d90),u(f(e),k90)}),N(cQ,function(t,n,e){var i=o(lm,t,n);return o(C0(a90),i,e)});var sQ=[0,hD,xQ,sm,oQ,vm,aQ,lm,cQ],dD=function t(n,e,i,x){return t.fun(n,e,i,x)},vQ=function t(n,e,i){return t.fun(n,e,i)},bm=function t(n,e,i,x){return t.fun(n,e,i,x)},lQ=function t(n,e,i){return t.fun(n,e,i)};N(dD,function(t,n,e,i){u(f(e),f90),o(t,e,i[1]),u(f(e),x90);var x=i[2];function c(s){return u(n,s)}return R(bm,function(s){return u(t,s)},c,e,x),u(f(e),o90)}),N(vQ,function(t,n,e){var i=o(dD,t,n);return o(C0(i90),i,e)}),N(bm,function(t,n,e,i){u(f(e),zm0),o(f(e),Wm0,Km0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),Jm0),u(f(e),$m0),o(f(e),Qm0,Zm0);var p=i[2];if(p){g(e,r90);var y=p[1],T=function(d,w){return g(d,Vm0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,e90)}else g(e,n90);return u(f(e),t90),u(f(e),u90)}),N(lQ,function(t,n,e){var i=o(bm,t,n);return o(C0(Ym0),i,e)});var bQ=[0,dD,vQ,bm,lQ],pm=function t(n,e,i,x){return t.fun(n,e,i,x)},pQ=function t(n,e,i){return t.fun(n,e,i)},mm=function t(n,e,i,x){return t.fun(n,e,i,x)},mQ=function t(n,e,i){return t.fun(n,e,i)},_m=function t(n,e,i,x){return t.fun(n,e,i,x)},_Q=function t(n,e,i){return t.fun(n,e,i)};N(pm,function(t,n,e,i){u(f(e),Um0),o(t,e,i[1]),u(f(e),Hm0);var x=i[2];function c(s){return u(n,s)}return R(_m,function(s){return u(t,s)},c,e,x),u(f(e),Xm0)}),N(pQ,function(t,n,e){var i=o(pm,t,n);return o(C0(qm0),i,e)}),N(mm,function(t,n,e,i){if(i[0]===0){u(f(e),jm0);var x=i[1],c=function(T){return u(n,T)},s=function(T){return u(t,T)};return R(O1[1],s,c,e,x),u(f(e),Gm0)}u(f(e),Mm0);var p=i[1];function y(T){return u(n,T)}return R(pm,function(T){return u(t,T)},y,e,p),u(f(e),Bm0)}),N(mQ,function(t,n,e){var i=o(mm,t,n);return o(C0(Rm0),i,e)}),N(_m,function(t,n,e,i){u(f(e),Tm0),o(f(e),Im0,Om0);var x=i[1];function c(T){return u(n,T)}R(mm,function(T){return u(t,T)},c,e,x),u(f(e),Am0),u(f(e),Nm0),o(f(e),Pm0,Cm0);var s=i[2];function p(T){return u(n,T)}function y(T){return u(t,T)}return R(O1[1],y,p,e,s),u(f(e),Dm0),u(f(e),Lm0)}),N(_Q,function(t,n,e){var i=o(_m,t,n);return o(C0(Fm0),i,e)});var yQ=[0,pm,pQ,mm,mQ,_m,_Q],Nl=function t(n,e,i,x){return t.fun(n,e,i,x)},hQ=function t(n,e,i){return t.fun(n,e,i)};N(Nl,function(t,n,e,i){switch(i[0]){case 0:u(f(e),dm0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(O1[1],s,c,e,x),u(f(e),km0);case 1:u(f(e),wm0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(mD[1],T,y,e,p),u(f(e),Em0);default:u(f(e),Sm0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(yQ[1],w,d,e,E),u(f(e),gm0)}}),N(hQ,function(t,n,e){var i=o(Nl,t,n);return o(C0(hm0),i,e)});var kD=function t(n,e,i,x){return t.fun(n,e,i,x)},dQ=function t(n,e,i){return t.fun(n,e,i)},ym=function t(n,e,i,x){return t.fun(n,e,i,x)},kQ=function t(n,e,i){return t.fun(n,e,i)},hm=function t(n,e,i,x){return t.fun(n,e,i,x)},wQ=function t(n,e,i){return t.fun(n,e,i)};N(kD,function(t,n,e,i){u(f(e),mm0),o(t,e,i[1]),u(f(e),_m0);var x=i[2];function c(s){return u(n,s)}return R(hm,function(s){return u(t,s)},c,e,x),u(f(e),ym0)}),N(dQ,function(t,n,e){var i=o(kD,t,n);return o(C0(pm0),i,e)}),N(ym,function(t,n,e,i){if(i[0]===0){u(f(e),sm0);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(sQ[1],s,c,e,x),u(f(e),vm0)}u(f(e),lm0);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(bQ[1],T,y,e,p),u(f(e),bm0)}),N(kQ,function(t,n,e){var i=o(ym,t,n);return o(C0(cm0),i,e)}),N(hm,function(t,n,e,i){u(f(e),K50),o(f(e),J50,W50);var x=i[1];function c(T){return u(n,T)}R(Nl,function(T){return u(t,T)},c,e,x),u(f(e),$50),u(f(e),Z50),o(f(e),rm0,Q50);var s=i[2];o(f(e),em0,s),u(f(e),nm0),u(f(e),tm0),o(f(e),im0,um0);var p=i[3];u(f(e),fm0);var y=0;return le(function(T,E){T&&u(f(e),z50);function d(w){return u(n,w)}return R(ym,function(w){return u(t,w)},d,e,E),1},y,p),u(f(e),xm0),u(f(e),om0),u(f(e),am0)}),N(wQ,function(t,n,e){var i=o(hm,t,n);return o(C0(V50),i,e)});var EQ=[0,kD,dQ,ym,kQ,hm,wQ],wD=function t(n,e,i,x){return t.fun(n,e,i,x)},SQ=function t(n,e,i){return t.fun(n,e,i)},dm=function t(n,e,i,x){return t.fun(n,e,i,x)},gQ=function t(n,e,i){return t.fun(n,e,i)};N(wD,function(t,n,e,i){u(f(e),H50),o(t,e,i[1]),u(f(e),X50);var x=i[2];function c(s){return u(n,s)}return R(dm,function(s){return u(t,s)},c,e,x),u(f(e),Y50)}),N(SQ,function(t,n,e){var i=o(wD,t,n);return o(C0(U50),i,e)}),N(dm,function(t,n,e,i){u(f(e),j50),o(f(e),M50,G50);var x=i[1];function c(s){return u(n,s)}return R(Nl,function(s){return u(t,s)},c,e,x),u(f(e),B50),u(f(e),q50)}),N(gQ,function(t,n,e){var i=o(dm,t,n);return o(C0(R50),i,e)});var FQ=[0,wD,SQ,dm,gQ],ED=function t(n,e,i,x){return t.fun(n,e,i,x)},TQ=function t(n,e,i){return t.fun(n,e,i)};N(ED,function(t,n,e,i){u(f(e),S50),o(f(e),F50,g50);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),T50),u(f(e),O50),o(f(e),A50,I50);var p=i[2];if(p){g(e,N50);var y=p[1],T=function(d,w){return g(d,E50)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,C50)}else g(e,P50);return u(f(e),D50),u(f(e),L50)}),N(TQ,function(t,n,e){var i=o(ED,t,n);return o(C0(w50),i,e)});var OQ=[0,ED,TQ],Cl=function t(n,e,i,x){return t.fun(n,e,i,x)},IQ=function t(n,e,i){return t.fun(n,e,i)},km=function t(n,e,i,x){return t.fun(n,e,i,x)},AQ=function t(n,e,i){return t.fun(n,e,i)},wm=function t(n,e,i,x){return t.fun(n,e,i,x)},NQ=function t(n,e,i){return t.fun(n,e,i)},Em=function t(n,e,i,x){return t.fun(n,e,i,x)},CQ=function t(n,e,i){return t.fun(n,e,i)};N(Cl,function(t,n,e,i){u(f(e),h50),o(t,e,i[1]),u(f(e),d50);var x=i[2];function c(s){return u(n,s)}return R(km,function(s){return u(t,s)},c,e,x),u(f(e),k50)}),N(IQ,function(t,n,e){var i=o(Cl,t,n);return o(C0(y50),i,e)}),N(km,function(t,n,e,i){switch(i[0]){case 0:u(f(e),o50);var x=i[1],c=function(A){return u(n,A)};return R(wm,function(A){return u(t,A)},c,e,x),u(f(e),a50);case 1:u(f(e),c50);var s=i[1],p=function(A){return u(n,A)};return R(Em,function(A){return u(t,A)},p,e,s),u(f(e),s50);case 2:u(f(e),v50);var y=i[1],T=function(A){return u(n,A)},E=function(A){return u(t,A)};return R(yD[1],E,T,e,y),u(f(e),l50);case 3:u(f(e),b50);var d=i[1],w=function(A){return u(n,A)},G=function(A){return u(t,A)};return R(OQ[1],G,w,e,d),u(f(e),p50);default:return u(f(e),m50),o(fQ[1],e,i[1]),u(f(e),_50)}}),N(AQ,function(t,n,e){var i=o(km,t,n);return o(C0(x50),i,e)}),N(wm,function(t,n,e,i){u(f(e),Pp0),o(f(e),Lp0,Dp0);var x=i[1];function c(V){return u(n,V)}function s(V){return u(t,V)}R(EQ[1],s,c,e,x),u(f(e),Rp0),u(f(e),jp0),o(f(e),Mp0,Gp0);var p=i[2];if(p){g(e,Bp0);var y=p[1],T=function(V){return u(n,V)},E=function(V){return u(t,V)};R(FQ[1],E,T,e,y),g(e,qp0)}else g(e,Up0);u(f(e),Hp0),u(f(e),Xp0),o(f(e),Vp0,Yp0);var d=i[3];u(f(e),zp0),o(t,e,d[1]),u(f(e),Kp0),u(f(e),Wp0);var w=d[2],G=0;le(function(V,f0){V&&u(f(e),Cp0);function m0(k0){return u(n,k0)}return R(Cl,function(k0){return u(t,k0)},m0,e,f0),1},G,w),u(f(e),Jp0),u(f(e),$p0),u(f(e),Zp0),u(f(e),Qp0),o(f(e),e50,r50);var A=i[4];if(A){g(e,n50);var S=A[1],M=function(V,f0){return g(V,Np0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,t50)}else g(e,u50);return u(f(e),i50),u(f(e),f50)}),N(NQ,function(t,n,e){var i=o(wm,t,n);return o(C0(Ap0),i,e)}),N(Em,function(t,n,e,i){u(f(e),ip0),o(f(e),xp0,fp0),o(t,e,i[1]),u(f(e),op0),u(f(e),ap0),o(f(e),sp0,cp0),o(t,e,i[2]),u(f(e),vp0),u(f(e),lp0),o(f(e),pp0,bp0);var x=i[3];u(f(e),mp0),o(t,e,x[1]),u(f(e),_p0),u(f(e),yp0);var c=x[2],s=0;le(function(d,w){d&&u(f(e),up0);function G(A){return u(n,A)}return R(Cl,function(A){return u(t,A)},G,e,w),1},s,c),u(f(e),hp0),u(f(e),dp0),u(f(e),kp0),u(f(e),wp0),o(f(e),Sp0,Ep0);var p=i[4];if(p){g(e,gp0);var y=p[1],T=function(d,w){return g(d,tp0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Fp0)}else g(e,Tp0);return u(f(e),Op0),u(f(e),Ip0)}),N(CQ,function(t,n,e){var i=o(Em,t,n);return o(C0(np0),i,e)}),mu($3r,UN,[0,O1,mD,yD,fQ,sQ,bQ,yQ,Nl,hQ,EQ,FQ,OQ,Cl,IQ,km,AQ,wm,NQ,Em,CQ]);var SD=function t(n,e,i,x){return t.fun(n,e,i,x)},PQ=function t(n,e,i){return t.fun(n,e,i)},Sm=function t(n,e,i,x){return t.fun(n,e,i,x)},DQ=function t(n,e,i){return t.fun(n,e,i)};N(SD,function(t,n,e,i){u(f(e),Q60),o(t,e,i[1]),u(f(e),rp0);var x=i[2];function c(s){return u(n,s)}return R(Sm,function(s){return u(t,s)},c,e,x),u(f(e),ep0)}),N(PQ,function(t,n,e){var i=o(SD,t,n);return o(C0(Z60),i,e)}),N(Sm,function(t,n,e,i){u(f(e),B60),o(f(e),U60,q60);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),H60),u(f(e),X60),o(f(e),V60,Y60);var p=i[2];if(p){g(e,z60);var y=p[1],T=function(d,w){return g(d,M60)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,K60)}else g(e,W60);return u(f(e),J60),u(f(e),$60)}),N(DQ,function(t,n,e){var i=o(Sm,t,n);return o(C0(G60),i,e)});var gD=[0,SD,PQ,Sm,DQ],gm=function t(n,e,i,x){return t.fun(n,e,i,x)},LQ=function t(n,e,i){return t.fun(n,e,i)},FD=function t(n,e,i,x){return t.fun(n,e,i,x)},RQ=function t(n,e,i){return t.fun(n,e,i)},Fm=function t(n,e,i,x){return t.fun(n,e,i,x)},jQ=function t(n,e,i){return t.fun(n,e,i)};N(gm,function(t,n,e,i){switch(i[0]){case 0:var x=i[1];u(f(e),I60),u(f(e),A60),o(t,e,x[1]),u(f(e),N60);var c=x[2],s=function(G){return u(t,G)};return ur(Tl[2],s,e,c),u(f(e),C60),u(f(e),P60);case 1:u(f(e),D60);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(Rn[1],T,y,e,p),u(f(e),L60);default:u(f(e),R60);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(qp[1],w,d,e,E),u(f(e),j60)}}),N(LQ,function(t,n,e){var i=o(gm,t,n);return o(C0(O60),i,e)}),N(FD,function(t,n,e,i){u(f(e),g60),o(t,e,i[1]),u(f(e),F60);var x=i[2];function c(s){return u(n,s)}return R(Fm,function(s){return u(t,s)},c,e,x),u(f(e),T60)}),N(RQ,function(t,n,e){var i=o(FD,t,n);return o(C0(S60),i,e)}),N(Fm,function(t,n,e,i){u(f(e),t60),o(f(e),i60,u60);var x=i[1];function c(A){return u(n,A)}R(gm,function(A){return u(t,A)},c,e,x),u(f(e),f60),u(f(e),x60),o(f(e),a60,o60);var s=i[2];function p(A){return u(n,A)}function y(A){return u(t,A)}R(di[5],y,p,e,s),u(f(e),c60),u(f(e),s60),o(f(e),l60,v60);var T=i[3];if(T){g(e,b60);var E=T[1],d=function(A){return u(n,A)},w=function(A){return u(t,A)};R(qe[31],w,d,e,E),g(e,p60)}else g(e,m60);u(f(e),_60),u(f(e),y60),o(f(e),d60,h60);var G=i[4];return o(f(e),k60,G),u(f(e),w60),u(f(e),E60)}),N(jQ,function(t,n,e){var i=o(Fm,t,n);return o(C0(n60),i,e)});var GQ=[0,gm,LQ,FD,RQ,Fm,jQ],Tm=function t(n,e,i,x){return t.fun(n,e,i,x)},MQ=function t(n,e,i){return t.fun(n,e,i)},TD=function t(n,e,i,x){return t.fun(n,e,i,x)},BQ=function t(n,e,i){return t.fun(n,e,i)};N(Tm,function(t,n,e,i){if(i[0]===0){u(f(e),Z30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(GQ[3],s,c,e,x),u(f(e),Q30)}u(f(e),r60);var p=i[1];function y(E){return u(n,E)}function T(E){return u(t,E)}return R(gD[1],T,y,e,p),u(f(e),e60)}),N(MQ,function(t,n,e){var i=o(Tm,t,n);return o(C0($30),i,e)}),N(TD,function(t,n,e,i){u(f(e),P30),o(f(e),L30,D30);var x=i[1];u(f(e),R30);var c=0;le(function(G,A){G&&u(f(e),C30);function S(M){return u(n,M)}return R(Tm,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),j30),u(f(e),G30),u(f(e),M30),o(f(e),q30,B30);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),U30),u(f(e),H30),o(f(e),Y30,X30);var T=i[3];if(T){g(e,V30);var E=T[1],d=function(G,A){u(f(G),A30);var S=0;return le(function(M,K){M&&u(f(G),I30);function V(f0){return u(t,f0)}return ur(iu[1],V,G,K),1},S,A),u(f(G),N30)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,z30)}else g(e,K30);return u(f(e),W30),u(f(e),J30)}),N(BQ,function(t,n,e){var i=o(TD,t,n);return o(C0(O30),i,e)});var qQ=[0,GQ,Tm,MQ,TD,BQ],OD=function t(n,e,i,x){return t.fun(n,e,i,x)},UQ=function t(n,e,i){return t.fun(n,e,i)},Om=function t(n,e,i,x){return t.fun(n,e,i,x)},HQ=function t(n,e,i){return t.fun(n,e,i)};N(OD,function(t,n,e,i){u(f(e),g30),o(t,e,i[1]),u(f(e),F30);var x=i[2];function c(s){return u(n,s)}return R(Om,function(s){return u(t,s)},c,e,x),u(f(e),T30)}),N(UQ,function(t,n,e){var i=o(OD,t,n);return o(C0(S30),i,e)}),N(Om,function(t,n,e,i){u(f(e),v30),o(f(e),b30,l30);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),p30),u(f(e),m30),o(f(e),y30,_30);var p=i[2];if(p){g(e,h30);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,d30)}else g(e,k30);return u(f(e),w30),u(f(e),E30)}),N(HQ,function(t,n,e){var i=o(Om,t,n);return o(C0(s30),i,e)});var XQ=[0,OD,UQ,Om,HQ],Im=function t(n,e,i,x){return t.fun(n,e,i,x)},YQ=function t(n,e,i){return t.fun(n,e,i)},ID=function t(n,e,i,x){return t.fun(n,e,i,x)},VQ=function t(n,e,i){return t.fun(n,e,i)};N(Im,function(t,n,e,i){switch(i[0]){case 0:u(f(e),i30);var x=i[1],c=function(E){return u(n,E)},s=function(E){return u(t,E)};return R(XQ[1],s,c,e,x),u(f(e),f30);case 1:u(f(e),x30);var p=i[1],y=function(E){return u(n,E)},T=function(E){return u(t,E)};return R(gD[1],T,y,e,p),u(f(e),o30);default:return u(f(e),a30),o(t,e,i[1]),u(f(e),c30)}}),N(YQ,function(t,n,e){var i=o(Im,t,n);return o(C0(u30),i,e)}),N(ID,function(t,n,e,i){u(f(e),B80),o(f(e),U80,q80);var x=i[1];u(f(e),H80);var c=0;le(function(G,A){G&&u(f(e),M80);function S(M){return u(n,M)}return R(Im,function(M){return u(t,M)},S,e,A),1},c,x),u(f(e),X80),u(f(e),Y80),u(f(e),V80),o(f(e),K80,z80);var s=i[2];function p(G){return u(n,G)}function y(G){return u(t,G)}R($e[19],y,p,e,s),u(f(e),W80),u(f(e),J80),o(f(e),Z80,$80);var T=i[3];if(T){g(e,Q80);var E=T[1],d=function(G,A){u(f(G),j80);var S=0;return le(function(M,K){M&&u(f(G),R80);function V(f0){return u(t,f0)}return ur(iu[1],V,G,K),1},S,A),u(f(G),G80)},w=function(G){return u(t,G)};R(Dr[1],w,d,e,E),g(e,r30)}else g(e,e30);return u(f(e),n30),u(f(e),t30)}),N(VQ,function(t,n,e){var i=o(ID,t,n);return o(C0(L80),i,e)});var zQ=[0,XQ,Im,YQ,ID,VQ],AD=function t(n,e,i,x){return t.fun(n,e,i,x)},KQ=function t(n,e,i){return t.fun(n,e,i)};N(AD,function(t,n,e,i){u(f(e),k80),o(f(e),E80,w80);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),S80),u(f(e),g80),o(f(e),T80,F80);var p=i[2];function y(d){return u(n,d)}function T(d){return u(t,d)}R($e[19],T,y,e,p),u(f(e),O80),u(f(e),I80),o(f(e),N80,A80);var E=i[3];return o(f(e),C80,E),u(f(e),P80),u(f(e),D80)}),N(KQ,function(t,n,e){var i=o(AD,t,n);return o(C0(d80),i,e)});var WQ=[0,AD,KQ],ND=function t(n,e,i,x){return t.fun(n,e,i,x)},JQ=function t(n,e,i){return t.fun(n,e,i)},Am=function t(n,e,i,x){return t.fun(n,e,i,x)},$Q=function t(n,e,i){return t.fun(n,e,i)};N(ND,function(t,n,e,i){u(f(e),_80),o(n,e,i[1]),u(f(e),y80);var x=i[2];function c(s){return u(n,s)}return R(Am,function(s){return u(t,s)},c,e,x),u(f(e),h80)}),N(JQ,function(t,n,e){var i=o(ND,t,n);return o(C0(m80),i,e)}),N(Am,function(t,n,e,i){switch(i[0]){case 0:u(f(e),o80);var x=i[1],c=function(M){return u(n,M)},s=function(M){return u(t,M)};return R(qQ[4],s,c,e,x),u(f(e),a80);case 1:u(f(e),c80);var p=i[1],y=function(M){return u(n,M)},T=function(M){return u(t,M)};return R(zQ[4],T,y,e,p),u(f(e),s80);case 2:u(f(e),v80);var E=i[1],d=function(M){return u(n,M)},w=function(M){return u(t,M)};return R(WQ[1],w,d,e,E),u(f(e),l80);default:u(f(e),b80);var G=i[1],A=function(M){return u(n,M)},S=function(M){return u(t,M)};return R(qe[31],S,A,e,G),u(f(e),p80)}}),N($Q,function(t,n,e){var i=o(Am,t,n);return o(C0(x80),i,e)}),mu(Z3r,di,[0,gD,qQ,zQ,WQ,ND,JQ,Am,$Q]);var CD=function t(n,e,i){return t.fun(n,e,i)},ZQ=function t(n,e){return t.fun(n,e)},Nm=function t(n,e){return t.fun(n,e)},QQ=function t(n){return t.fun(n)},Cm=function t(n,e){return t.fun(n,e)},r00=function t(n){return t.fun(n)};N(CD,function(t,n,e){return u(f(n),u80),o(t,n,e[1]),u(f(n),i80),o(Cm,n,e[2]),u(f(n),f80)}),N(ZQ,function(t,n){var e=u(CD,t);return o(C0(t80),e,n)}),N(Nm,function(t,n){return n?g(t,e80):g(t,n80)}),N(QQ,function(t){return o(C0(r80),Nm,t)}),N(Cm,function(t,n){u(f(t),M40),o(f(t),q40,B40),o(Nm,t,n[1]),u(f(t),U40),u(f(t),H40),o(f(t),Y40,X40);var e=n[2];o(f(t),V40,e),u(f(t),z40),u(f(t),K40),o(f(t),J40,W40);var i=n[3];return o(f(t),$40,i),u(f(t),Z40),u(f(t),Q40)}),N(r00,function(t){return o(C0(G40),Cm,t)}),mu(Q3r,iu,[0,CD,ZQ,Nm,QQ,Cm,r00]);var PD=function t(n,e,i,x){return t.fun(n,e,i,x)},e00=function t(n,e,i){return t.fun(n,e,i)},Pm=function t(n,e){return t.fun(n,e)},n00=function t(n){return t.fun(n)},Dm=function t(n,e,i,x){return t.fun(n,e,i,x)},t00=function t(n,e,i){return t.fun(n,e,i)};N(PD,function(t,n,e,i){u(f(e),L40),o(n,e,i[1]),u(f(e),R40);var x=i[2];function c(s){return u(n,s)}return R(Dm,function(s){return u(t,s)},c,e,x),u(f(e),j40)}),N(e00,function(t,n,e){var i=o(PD,t,n);return o(C0(D40),i,e)}),N(Pm,function(t,n){switch(n){case 0:return g(t,A40);case 1:return g(t,N40);case 2:return g(t,C40);default:return g(t,P40)}}),N(n00,function(t){return o(C0(I40),Pm,t)}),N(Dm,function(t,n,e,i){u(f(e),Wb0),o(f(e),$b0,Jb0),o(Pm,e,i[1]),u(f(e),Zb0),u(f(e),Qb0),o(f(e),e40,r40);var x=i[2];function c(V){return u(n,V)}function s(V){return u(t,V)}R(qe[7][1][1],s,c,e,x),u(f(e),n40),u(f(e),t40),o(f(e),i40,u40);var p=i[3];u(f(e),f40),o(t,e,p[1]),u(f(e),x40);var y=p[2];function T(V){return u(n,V)}function E(V){return u(t,V)}R(As[5],E,T,e,y),u(f(e),o40),u(f(e),a40),u(f(e),c40),o(f(e),v40,s40);var d=i[4];o(f(e),l40,d),u(f(e),b40),u(f(e),p40),o(f(e),_40,m40);var w=i[5];u(f(e),y40);var G=0;le(function(V,f0){V&&u(f(e),Kb0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(F1[7][1],k0,m0,e,f0),1},G,w),u(f(e),h40),u(f(e),d40),u(f(e),k40),o(f(e),E40,w40);var A=i[6];if(A){g(e,S40);var S=A[1],M=function(V,f0){return g(V,zb0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,g40)}else g(e,F40);return u(f(e),T40),u(f(e),O40)}),N(t00,function(t,n,e){var i=o(Dm,t,n);return o(C0(Vb0),i,e)});var u00=[0,PD,e00,Pm,n00,Dm,t00],DD=function t(n,e,i,x){return t.fun(n,e,i,x)},i00=function t(n,e,i){return t.fun(n,e,i)},Lm=function t(n,e,i,x){return t.fun(n,e,i,x)},f00=function t(n,e,i){return t.fun(n,e,i)},Rm=function t(n,e,i,x){return t.fun(n,e,i,x)},x00=function t(n,e,i){return t.fun(n,e,i)};N(DD,function(t,n,e,i){u(f(e),Hb0),o(n,e,i[1]),u(f(e),Xb0);var x=i[2];function c(s){return u(n,s)}return R(Lm,function(s){return u(t,s)},c,e,x),u(f(e),Yb0)}),N(i00,function(t,n,e){var i=o(DD,t,n);return o(C0(Ub0),i,e)}),N(Lm,function(t,n,e,i){u(f(e),cb0),o(f(e),vb0,sb0);var x=i[1];function c(m0){return u(n,m0)}function s(m0){return u(t,m0)}R(qe[7][1][1],s,c,e,x),u(f(e),lb0),u(f(e),bb0),o(f(e),mb0,pb0);var p=i[2];function y(m0){return u(n,m0)}R(Rm,function(m0){return u(t,m0)},y,e,p),u(f(e),_b0),u(f(e),yb0),o(f(e),db0,hb0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),kb0),u(f(e),wb0),o(f(e),Sb0,Eb0);var w=i[4];o(f(e),gb0,w),u(f(e),Fb0),u(f(e),Tb0),o(f(e),Ib0,Ob0);var G=i[5];if(G){g(e,Ab0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Nb0)}else g(e,Cb0);u(f(e),Pb0),u(f(e),Db0),o(f(e),Rb0,Lb0);var M=i[6];if(M){g(e,jb0);var K=M[1],V=function(m0,k0){return g(m0,ab0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,Gb0)}else g(e,Mb0);return u(f(e),Bb0),u(f(e),qb0)}),N(f00,function(t,n,e){var i=o(Lm,t,n);return o(C0(ob0),i,e)}),N(Rm,function(t,n,e,i){if(typeof i==\"number\")return i?g(e,ub0):g(e,ib0);u(f(e),fb0);var x=i[1];function c(p){return u(n,p)}function s(p){return u(t,p)}return R(qe[31],s,c,e,x),u(f(e),xb0)}),N(x00,function(t,n,e){var i=o(Rm,t,n);return o(C0(tb0),i,e)});var o00=[0,DD,i00,Lm,f00,Rm,x00],LD=function t(n,e,i,x){return t.fun(n,e,i,x)},a00=function t(n,e,i){return t.fun(n,e,i)},jm=function t(n,e,i,x){return t.fun(n,e,i,x)},c00=function t(n,e,i){return t.fun(n,e,i)};N(LD,function(t,n,e,i){u(f(e),rb0),o(n,e,i[1]),u(f(e),eb0);var x=i[2];function c(s){return u(n,s)}return R(jm,function(s){return u(t,s)},c,e,x),u(f(e),nb0)}),N(a00,function(t,n,e){var i=o(LD,t,n);return o(C0(Ql0),i,e)}),N(jm,function(t,n,e,i){u(f(e),kl0),o(f(e),El0,wl0);var x=i[1];function c(m0){return u(t,m0)}ur(Bp[1],c,e,x),u(f(e),Sl0),u(f(e),gl0),o(f(e),Tl0,Fl0);var s=i[2];function p(m0){return u(n,m0)}function y(m0){return u(t,m0)}R(F1[2][5],y,p,e,s),u(f(e),Ol0),u(f(e),Il0),o(f(e),Nl0,Al0);var T=i[3];function E(m0){return u(n,m0)}function d(m0){return u(t,m0)}R($e[19],d,E,e,T),u(f(e),Cl0),u(f(e),Pl0),o(f(e),Ll0,Dl0);var w=i[4];o(f(e),Rl0,w),u(f(e),jl0),u(f(e),Gl0),o(f(e),Bl0,Ml0);var G=i[5];if(G){g(e,ql0);var A=G[1],S=function(m0){return u(t,m0)};ur(zv[1],S,e,A),g(e,Ul0)}else g(e,Hl0);u(f(e),Xl0),u(f(e),Yl0),o(f(e),zl0,Vl0);var M=i[6];if(M){g(e,Kl0);var K=M[1],V=function(m0,k0){return g(m0,dl0)},f0=function(m0){return u(t,m0)};R(Dr[1],f0,V,e,K),g(e,Wl0)}else g(e,Jl0);return u(f(e),$l0),u(f(e),Zl0)}),N(c00,function(t,n,e){var i=o(jm,t,n);return o(C0(hl0),i,e)});var s00=[0,LD,a00,jm,c00],RD=function t(n,e,i,x){return t.fun(n,e,i,x)},v00=function t(n,e,i){return t.fun(n,e,i)},Gm=function t(n,e,i,x){return t.fun(n,e,i,x)},l00=function t(n,e,i){return t.fun(n,e,i)};N(RD,function(t,n,e,i){u(f(e),ml0),o(t,e,i[1]),u(f(e),_l0);var x=i[2];function c(s){return u(n,s)}return R(Gm,function(s){return u(t,s)},c,e,x),u(f(e),yl0)}),N(v00,function(t,n,e){var i=o(RD,t,n);return o(C0(pl0),i,e)}),N(Gm,function(t,n,e,i){u(f(e),J20),o(f(e),Z20,$20);var x=i[1];function c(S){return u(n,S)}function s(S){return u(t,S)}R(qe[31],s,c,e,x),u(f(e),Q20),u(f(e),rl0),o(f(e),nl0,el0);var p=i[2];if(p){g(e,tl0);var y=p[1],T=function(S){return u(n,S)},E=function(S){return u(t,S)};R($e[23][1],E,T,e,y),g(e,ul0)}else g(e,il0);u(f(e),fl0),u(f(e),xl0),o(f(e),al0,ol0);var d=i[3];if(d){g(e,cl0);var w=d[1],G=function(S,M){return g(S,W20)},A=function(S){return u(t,S)};R(Dr[1],A,G,e,w),g(e,sl0)}else g(e,vl0);return u(f(e),ll0),u(f(e),bl0)}),N(l00,function(t,n,e){var i=o(Gm,t,n);return o(C0(K20),i,e)});var b00=[0,RD,v00,Gm,l00],jD=function t(n,e,i,x){return t.fun(n,e,i,x)},p00=function t(n,e,i){return t.fun(n,e,i)},Mm=function t(n,e,i,x){return t.fun(n,e,i,x)},m00=function t(n,e,i){return t.fun(n,e,i)};N(jD,function(t,n,e,i){u(f(e),Y20),o(t,e,i[1]),u(f(e),V20);var x=i[2];function c(s){return u(n,s)}return R(Mm,function(s){return u(t,s)},c,e,x),u(f(e),z20)}),N(p00,function(t,n,e){var i=o(jD,t,n);return o(C0(X20),i,e)}),N(Mm,function(t,n,e,i){u(f(e),C20),o(f(e),D20,P20);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(Rn[1],s,c,e,x),u(f(e),L20),u(f(e),R20),o(f(e),G20,j20);var p=i[2];if(p){g(e,M20);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R($e[23][1],E,T,e,y),g(e,B20)}else g(e,q20);return u(f(e),U20),u(f(e),H20)}),N(m00,function(t,n,e){var i=o(Mm,t,n);return o(C0(N20),i,e)});var _00=[0,jD,p00,Mm,m00],GD=function t(n,e,i,x){return t.fun(n,e,i,x)},y00=function t(n,e,i){return t.fun(n,e,i)},Bm=function t(n,e,i,x){return t.fun(n,e,i,x)},h00=function t(n,e,i){return t.fun(n,e,i)};N(GD,function(t,n,e,i){u(f(e),O20),o(t,e,i[1]),u(f(e),I20);var x=i[2];function c(s){return u(n,s)}return R(Bm,function(s){return u(t,s)},c,e,x),u(f(e),A20)}),N(y00,function(t,n,e){var i=o(GD,t,n);return o(C0(T20),i,e)}),N(Bm,function(t,n,e,i){u(f(e),l20),o(f(e),p20,b20);var x=i[1];u(f(e),m20);var c=0;le(function(E,d){E&&u(f(e),v20);function w(A){return u(n,A)}function G(A){return u(t,A)}return R(_00[1],G,w,e,d),1},c,x),u(f(e),_20),u(f(e),y20),u(f(e),h20),o(f(e),k20,d20);var s=i[2];if(s){g(e,w20);var p=s[1],y=function(E,d){return g(E,s20)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,E20)}else g(e,S20);return u(f(e),g20),u(f(e),F20)}),N(h00,function(t,n,e){var i=o(Bm,t,n);return o(C0(c20),i,e)});var d00=[0,_00,GD,y00,Bm,h00],MD=function t(n,e,i,x){return t.fun(n,e,i,x)},k00=function t(n,e,i){return t.fun(n,e,i)},qm=function t(n,e,i,x){return t.fun(n,e,i,x)},w00=function t(n,e,i){return t.fun(n,e,i)},Um=function t(n,e,i,x){return t.fun(n,e,i,x)},E00=function t(n,e,i){return t.fun(n,e,i)};N(MD,function(t,n,e,i){u(f(e),x20),o(t,e,i[1]),u(f(e),o20);var x=i[2];function c(s){return u(n,s)}return R(qm,function(s){return u(t,s)},c,e,x),u(f(e),a20)}),N(k00,function(t,n,e){var i=o(MD,t,n);return o(C0(f20),i,e)}),N(qm,function(t,n,e,i){u(f(e),Vv0),o(f(e),Kv0,zv0);var x=i[1];u(f(e),Wv0);var c=0;le(function(E,d){E&&u(f(e),Yv0);function w(G){return u(n,G)}return R(Um,function(G){return u(t,G)},w,e,d),1},c,x),u(f(e),Jv0),u(f(e),$v0),u(f(e),Zv0),o(f(e),r20,Qv0);var s=i[2];if(s){g(e,e20);var p=s[1],y=function(E,d){return g(E,Xv0)},T=function(E){return u(t,E)};R(Dr[1],T,y,e,p),g(e,n20)}else g(e,t20);return u(f(e),u20),u(f(e),i20)}),N(w00,function(t,n,e){var i=o(qm,t,n);return o(C0(Hv0),i,e)}),N(Um,function(t,n,e,i){switch(i[0]){case 0:u(f(e),jv0);var x=i[1],c=function(G){return u(n,G)},s=function(G){return u(t,G)};return R(u00[1],s,c,e,x),u(f(e),Gv0);case 1:u(f(e),Mv0);var p=i[1],y=function(G){return u(n,G)},T=function(G){return u(t,G)};return R(o00[1],T,y,e,p),u(f(e),Bv0);default:u(f(e),qv0);var E=i[1],d=function(G){return u(n,G)},w=function(G){return u(t,G)};return R(s00[1],w,d,e,E),u(f(e),Uv0)}}),N(E00,function(t,n,e){var i=o(Um,t,n);return o(C0(Rv0),i,e)});var BD=function t(n,e,i,x){return t.fun(n,e,i,x)},S00=function t(n,e,i){return t.fun(n,e,i)},Hm=function t(n,e,i,x){return t.fun(n,e,i,x)},g00=function t(n,e,i){return t.fun(n,e,i)},gee=[0,MD,k00,qm,w00,Um,E00];N(BD,function(t,n,e,i){u(f(e),Pv0),o(t,e,i[1]),u(f(e),Dv0);var x=i[2];function c(s){return u(n,s)}return R(Hm,function(s){return u(t,s)},c,e,x),u(f(e),Lv0)}),N(S00,function(t,n,e){var i=o(BD,t,n);return o(C0(Cv0),i,e)}),N(Hm,function(t,n,e,i){u(f(e),dv0),o(f(e),wv0,kv0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(qe[31],s,c,e,x),u(f(e),Ev0),u(f(e),Sv0),o(f(e),Fv0,gv0);var p=i[2];if(p){g(e,Tv0);var y=p[1],T=function(d,w){return g(d,hv0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Ov0)}else g(e,Iv0);return u(f(e),Av0),u(f(e),Nv0)}),N(g00,function(t,n,e){var i=o(Hm,t,n);return o(C0(yv0),i,e)});var F00=[0,BD,S00,Hm,g00],qD=function t(n,e,i,x){return t.fun(n,e,i,x)},T00=function t(n,e,i){return t.fun(n,e,i)};N(qD,function(t,n,e,i){u(f(e),F10),o(f(e),O10,T10);var x=i[1];if(x){g(e,I10);var c=x[1],s=function(w0){return u(n,w0)},p=function(w0){return u(t,w0)};R(Rn[1],p,s,e,c),g(e,A10)}else g(e,N10);u(f(e),C10),u(f(e),P10),o(f(e),L10,D10);var y=i[2];function T(w0){return u(n,w0)}function E(w0){return u(t,w0)}R(F1[6][1],E,T,e,y),u(f(e),R10),u(f(e),j10),o(f(e),M10,G10);var d=i[3];if(d){g(e,B10);var w=d[1],G=function(w0){return u(n,w0)},A=function(w0){return u(t,w0)};R($e[22][1],A,G,e,w),g(e,q10)}else g(e,U10);u(f(e),H10),u(f(e),X10),o(f(e),V10,Y10);var S=i[4];if(S){g(e,z10);var M=S[1],K=function(w0){return u(n,w0)},V=function(w0){return u(t,w0)};R(b00[1],V,K,e,M),g(e,K10)}else g(e,W10);u(f(e),J10),u(f(e),$10),o(f(e),Q10,Z10);var f0=i[5];if(f0){g(e,rv0);var m0=f0[1],k0=function(w0){return u(n,w0)},g0=function(w0){return u(t,w0)};R(d00[2],g0,k0,e,m0),g(e,ev0)}else g(e,nv0);u(f(e),tv0),u(f(e),uv0),o(f(e),fv0,iv0);var e0=i[6];u(f(e),xv0);var x0=0;le(function(w0,_0){w0&&u(f(e),g10);function E0(b){return u(n,b)}function U0(b){return u(t,b)}return R(F00[1],U0,E0,e,_0),1},x0,e0),u(f(e),ov0),u(f(e),av0),u(f(e),cv0),o(f(e),vv0,sv0);var l=i[7];if(l){g(e,lv0);var c0=l[1],t0=function(w0,_0){return g(w0,S10)},o0=function(w0){return u(t,w0)};R(Dr[1],o0,t0,e,c0),g(e,bv0)}else g(e,pv0);return u(f(e),mv0),u(f(e),_v0)}),N(T00,function(t,n,e){var i=o(qD,t,n);return o(C0(E10),i,e)}),mu(r6r,F1,[0,u00,o00,s00,b00,d00,gee,F00,qD,T00]);var UD=function t(n,e,i,x){return t.fun(n,e,i,x)},O00=function t(n,e,i){return t.fun(n,e,i)},Xm=function t(n,e,i,x){return t.fun(n,e,i,x)},I00=function t(n,e,i){return t.fun(n,e,i)};N(UD,function(t,n,e,i){u(f(e),d10),o(t,e,i[1]),u(f(e),k10);var x=i[2];function c(s){return u(n,s)}return R(Xm,function(s){return u(t,s)},c,e,x),u(f(e),w10)}),N(O00,function(t,n,e){var i=o(UD,t,n);return o(C0(h10),i,e)}),N(Xm,function(t,n,e,i){u(f(e),x10),o(f(e),a10,o10);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),c10),u(f(e),s10),o(f(e),l10,v10);var p=i[2];if(p){g(e,b10);var y=p[1],T=function(d,w){return g(d,f10)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,p10)}else g(e,m10);return u(f(e),_10),u(f(e),y10)}),N(I00,function(t,n,e){var i=o(Xm,t,n);return o(C0(i10),i,e)});var A00=[0,UD,O00,Xm,I00],HD=function t(n,e,i,x){return t.fun(n,e,i,x)},N00=function t(n,e,i){return t.fun(n,e,i)},Ym=function t(n,e,i,x){return t.fun(n,e,i,x)},C00=function t(n,e,i){return t.fun(n,e,i)};N(HD,function(t,n,e,i){u(f(e),n10),o(t,e,i[1]),u(f(e),t10);var x=i[2];function c(s){return u(n,s)}return R(Ym,function(s){return u(t,s)},c,e,x),u(f(e),u10)}),N(N00,function(t,n,e){var i=o(HD,t,n);return o(C0(e10),i,e)}),N(Ym,function(t,n,e,i){u(f(e),Hs0),o(f(e),Ys0,Xs0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R(di[5],s,c,e,x),u(f(e),Vs0),u(f(e),zs0),o(f(e),Ws0,Ks0);var p=i[2];if(p){g(e,Js0);var y=p[1],T=function(d){return u(n,d)},E=function(d){return u(t,d)};R(qe[31],E,T,e,y),g(e,$s0)}else g(e,Zs0);return u(f(e),Qs0),u(f(e),r10)}),N(C00,function(t,n,e){var i=o(Ym,t,n);return o(C0(Us0),i,e)});var P00=[0,HD,N00,Ym,C00],XD=function t(n,e,i,x){return t.fun(n,e,i,x)},D00=function t(n,e,i){return t.fun(n,e,i)},Vm=function t(n,e,i,x){return t.fun(n,e,i,x)},L00=function t(n,e,i){return t.fun(n,e,i)};N(XD,function(t,n,e,i){u(f(e),Ms0),o(t,e,i[1]),u(f(e),Bs0);var x=i[2];function c(s){return u(n,s)}return R(Vm,function(s){return u(t,s)},c,e,x),u(f(e),qs0)}),N(D00,function(t,n,e){var i=o(XD,t,n);return o(C0(Gs0),i,e)}),N(Vm,function(t,n,e,i){u(f(e),Fs0),o(f(e),Os0,Ts0);var x=i[1];function c(d){return u(n,d)}function s(d){return u(t,d)}R($e[17],s,c,e,x),u(f(e),Is0),u(f(e),As0),o(f(e),Cs0,Ns0);var p=i[2];if(p){g(e,Ps0);var y=p[1],T=function(d,w){return g(d,gs0)},E=function(d){return u(t,d)};R(Dr[1],E,T,e,y),g(e,Ds0)}else g(e,Ls0);return u(f(e),Rs0),u(f(e),js0)}),N(L00,function(t,n,e){var i=o(Vm,t,n);return o(C0(Ss0),i,e)});var R00=[0,XD,D00,Vm,L00],YD=function t(n,e,i,x){return t.fun(n,e,i,x)},j00=function t(n,e,i){return t.fun(n,e,i)},zm=function t(n,e,i,x){return t.fun(n,e,i,x)},G00=function t(n,e,i){return t.fun(n,e,i)};N(YD,function(t,n,e,i){u(f(e),ks0),o(t,e,i[1]),u(f(e),ws0);var x=i[2];function c(s){return u(n,s)}return R(zm,function(s){return u(t,s)},c,e,x),u(f(e),Es0)}),N(j00,function(t,n,e){var i=o(YD,t,n);return o(C0(ds0),i,e)}),N(zm,function(t,n,e,i){u(f(e),Vc0),o(f(e),Kc0,zc0);var x=i[1];if(x){g(e,Wc0);var c=x[1],s=function(V){return u(n,V)},p=function(V){return u(t,V)};R(R00[1],p,s,e,c),g(e,Jc0)}else g(e,$c0);u(f(e),Zc0),u(f(e),Qc0),o(f(e),es0,rs0);var y=i[2];u(f(e),ns0);var T=0;le(function(V,f0){V&&u(f(e),Yc0);function m0(g0){return u(n,g0)}function k0(g0){return u(t,g0)}return R(P00[1],k0,m0,e,f0),1},T,y),u(f(e),ts0),u(f(e),us0),u(f(e),is0),o(f(e),xs0,fs0);var E=i[3];if(E){g(e,os0);var d=E[1],w=function(V){return u(n,V)},G=function(V){return u(t,V)};R(A00[1],G,w,e,d),g(e,as0)}else g(e,cs0);u(f(e),ss0),u(f(e),vs0),o(f(e),bs0,ls0);var A=i[4];if(A){g(e,ps0);var S=A[1],M=function(V,f0){u(f(V),Hc0);var m0=0;return le(function(k0,g0){k0&&u(f(V),Uc0);function e0(x0){return u(t,x0)}return ur(iu[1],e0,V,g0),1},m0,f0),u(f(V),Xc0)},K=function(V){return u(t,V)};R(Dr[1],K,M,e,S),g(e,ms0)}else g(e,_s0);return u(f(e),ys0),u(f(e),hs0)}),N(G00,function(t,n,e){var i=o(zm,t,n);return o(C0(qc0),i,e)});var M00=[0,YD,j00,zm,G00],VD=function t(n,e,i,x){return t.fun(n,e,i,x)},B00=function t(n,e,i){return t.fun(n,e,i)},Km=function t(n,e,i,x){return t.fun(n,e,i,x)},q00=function t(n,e,i){return t.fun(n,e,i)};N(VD,function(t,n,e,i){u(f(e),Ba0),o(f(e),Ua0,qa0);var x=i[1];if(x){g(e,Ha0);var c=x[1],s=function(_0){return u(n,_0)},p=function(_0){return u(t,_0)};R(Rn[1],p,s,e,c),g(e,Xa0)}else g(e,Ya0);u(f(e),Va0),u(f(e),za0),o(f(e),Wa0,Ka0);var y=i[2];function T(_0){return u(n,_0)}function E(_0){return u(t,_0)}R(M00[1],E,T,e,y),u(f(e),Ja0),u(f(e),$a0),o(f(e),Qa0,Za0);var d=i[3];function w(_0){return u(n,_0)}R(Km,function(_0){return u(t,_0)},w,e,d),u(f(e),rc0),u(f(e),ec0),o(f(e),tc0,nc0);var G=i[4];o(f(e),uc0,G),u(f(e),ic0),u(f(e),fc0),o(f(e),oc0,xc0);var A=i[5];o(f(e),ac0,A),u(f(e),cc0),u(f(e),sc0),o(f(e),lc0,vc0);var S=i[6];if(S){g(e,bc0);var M=S[1],K=function(_0){return u(n,_0)},V=function(_0){return u(t,_0)};R($e[24][1],V,K,e,M),g(e,pc0)}else g(e,mc0);u(f(e),_c0),u(f(e),yc0),o(f(e),dc0,hc0);var f0=i[7];function m0(_0){return u(n,_0)}function k0(_0){return u(t,_0)}R($e[19],k0,m0,e,f0),u(f(e),kc0),u(f(e),wc0),o(f(e),Sc0,Ec0);var g0=i[8];if(g0){g(e,gc0);var e0=g0[1],x0=function(_0){return u(n,_0)},l=function(_0){return u(t,_0)};R($e[22][1],l,x0,e,e0),g(e,Fc0)}else g(e,Tc0);u(f(e),Oc0),u(f(e),Ic0),o(f(e),Nc0,Ac0);var c0=i[9];if(c0){g(e,Cc0);var t0=c0[1],o0=function(_0,E0){return g(_0,Ma0)},w0=function(_0){return u(t,_0)};R(Dr[1],w0,o0,e,t0),g(e,Pc0)}else g(e,Dc0);return u(f(e),Lc0),u(f(e),Rc0),o(f(e),Gc0,jc0),o(t,e,i[10]),u(f(e),Mc0),u(f(e),Bc0)}),N(B00,function(t,n,e){var i=o(VD,t,n);return o(C0(Ga0),i,e)}),N(Km,function(t,n,e,i){if(i[0]===0){var x=i[1];u(f(e),Na0),u(f(e),Ca0),o(t,e,x[1]),u(f(e),Pa0);var c=x[2],s=function(d){return u(n,d)},p=function(d){return u(t,d)};return R(Yu[1][1],p,s,e,c),u(f(e),Da0),u(f(e),La0)}u(f(e),Ra0);var y=i[1];function T(d){return u(n,d)}function E(d){return u(t,d)}return R(qe[31],E,T,e,y),u(f(e),ja0)}),N(q00,function(t,n,e){var i=o(Km,t,n);return o(C0(Aa0),i,e)}),mu(e6r,As,[0,A00,P00,R00,M00,VD,B00,Km,q00]);var zD=function t(n,e,i,x){return t.fun(n,e,i,x)},U00=function t(n,e,i){return t.fun(n,e,i)},Wm=function t(n,e,i,x){return t.fun(n,e,i,x)},H00=function t(n,e,i){return t.fun(n,e,i)};N(zD,function(t,n,e,i){u(f(e),Ta0),o(t,e,i[1]),u(f(e),Oa0);var x=i[2];function c(s){return u(n,s)}return R(Wm,function(s){return u(t,s)},c,e,x),u(f(e),Ia0)}),N(U00,function(t,n,e){var i=o(zD,t,n);return o(C0(Fa0),i,e)}),N(Wm,function(t,n,e,i){u(f(e),fa0),o(f(e),oa0,xa0);var x=i[1];u(f(e),aa0);var c=0;le(function(w,G){w&&u(f(e),ia0);function A(M){return u(n,M)}function S(M){return u(t,M)}return R(Yu[35],S,A,e,G),1},c,x),u(f(e),ca0),u(f(e),sa0),u(f(e),va0),o(f(e),ba0,la0);var s=i[2];if(s){g(e,pa0);var p=s[1],y=function(w,G){return g(w,ua0)},T=function(w){return u(t,w)};R(Dr[1],T,y,e,p),g(e,ma0)}else g(e,_a0);u(f(e),ya0),u(f(e),ha0),o(f(e),ka0,da0);var E=i[3];u(f(e),wa0);var d=0;return le(function(w,G){w&&u(f(e),ta0);function A(S){return u(t,S)}return ur(iu[1],A,e,G),1},d,E),u(f(e),Ea0),u(f(e),Sa0),u(f(e),ga0)}),N(H00,function(t,n,e){var i=o(Wm,t,n);return o(C0(na0),i,e)}),mu(n6r,kee,[0,zD,U00,Wm,H00]);function ze(t,n){if(n){var e=n[1],i=u(t,e);return e===i?n:[0,i]}return n}function te(t,n,e,i,x){var c=o(t,n,e);return e===c?i:u(x,c)}function ee(t,n,e,i){var x=u(t,n);return n===x?e:u(i,x)}function _u(t,n){var e=n[1];function i(x){return[0,e,x]}return te(t,e,n[2],n,i)}function Un(t,n){var e=le(function(i,x){var c=u(t,x),s=i[2],p=s||(c!==x?1:0);return[0,[0,c,i[1]],p]},l6r,n);return e[2]?ye(e[1]):n}var KD=Rp(p6r,function(t){var n=NN(t,b6r),e=n[1],i=n[2],x=n[3],c=n[4],s=n[5],p=n[6],y=n[7],T=n[8],E=n[9],d=n[10],w=n[11],G=n[12],A=n[13],S=n[14],M=n[15],K=n[16],V=n[17],f0=n[18],m0=n[19],k0=n[20],g0=n[21],e0=n[22],x0=n[23],l=n[24],c0=n[25],t0=n[26],o0=n[27],w0=n[28],_0=n[29],E0=n[30],U0=n[31],b=n[32],R0=n[33],X=n[34],s0=n[35],hr=n[36],Ar=n[37],or=n[38],W0=n[39],Lr=n[40],Tr=n[41],Hr=n[42],Or=n[43],fr=n[44],Rr=n[45],Wr=n[46],Jr=n[47],ar=n[49],_r=n[50],Ir=n[51],fe=n[52],v0=n[53],P=n[54],L=n[55],Q=n[56],i0=n[57],l0=n[58],S0=n[59],T0=n[60],rr=n[61],L0=n[62],B=n[63],Z=n[65],p0=n[66],b0=n[67],O0=n[68],M0=n[69],er=n[70],yr=n[71],vr=n[72],$0=n[73],Er=n[74],Mr=n[75],Br=n[76],qr=n[77],jr=n[78],$r=n[79],ne=n[80],Qr=n[81],be=n[82],ae=n[83],pe=n[84],oe=n[85],ce=n[86],ge=n[87],q0=n[88],Fr=n[89],_=n[90],k=n[91],I=n[92],U=n[93],Y=n[94],y0=n[95],P0=n[96],I0=n[97],D=n[98],u0=n[99],X0=n[ti],J0=n[R7],ir=n[Ri],Q0=n[s7],F0=n[L7],Sr=n[j7],mr=n[Yt],Cr=n[Zc],sr=n[is],Pr=n[Fv],K0=n[Xt],Ur=n[cf],h0=n[T7],Kr=n[Pn],re=n[t1],xe=n[Av],Re=n[f1],ve=n[A2],Ie=n[z2],Ge=n[Sv],Me=n[uc],an=n[tl],We=n[In],Ae=n[ts],cn=n[X2],rn=n[br],kn=n[IX],vn=n[zn],Ne=n[jt],Je=n[JY],en=n[zw],_n=n[Jg],Cn=n[BH],Hn=n[133],Fn=n[134],vt=n[135],Nt=n[KH],gt=n[137],Zt=n[EH],qt=n[139],Ft=n[dH],Ct=n[141],du=n[142],Wu=n[143],lt=n[iV],ou=n[145],Bu=n[146],K7=n[DX],Yi=n[148],a7=n[eH],Hc=n[150],W7=n[151],Ut=n[152],bt=n[153],B0=n[FH],D0=n[155],Le=n[156],He=n[157],he=n[158],me=n[159],Zn=n[fY],wn=n[XU],ft=n[kh],xt=n[Ln],jn=n[AF],ut=n[$X],dt=n[DY],xn=n[NT],ln=n[IY],it=n[NX],Tt=n[qg],Ti=n[pg],hs=n[LU],Au=n[_Y],Hs=n[$U],Vi=n[bX],Xs=n[mV],Ys=n[uV],nn=n[gO],si=n[RY],Vs=n[sU],c2=n[Ai],M9=n[Yg],B9=n[lS],q9=n[hk],zs=n[gU],s2=n[md],U9=n[nw],H9=n[iY],X9=n[fX],H1=n[OY],vi=n[lX],ab=n[rt],cb=n[HT],sb=n[nI],Y9=n[xY],V9=n[XX],z9=n[hY],vb=n[vH],K9=n[QH],W9=n[NU],J9=n[sY],$9=n[nH],lb=n[eV],Z9=n[WX],X1=n[VH],v2=n[TH],bb=n[AX],pb=n[_H],mb=n[Wg],On=n[A6],Gn=n[yU],Y1=n[yY],_b=n[RX],yb=n[mT],Q9=n[xT],Xc=n[y6],r_=n[cp],l2=n[Cw],hb=n[FU],Yc=n[iA],e_=n[GX],Ks=n[FX],db=n[y8],V1=n[hv],n_=n[BO],ds=n[rk],t_=n[JH],z1=n[fV],u_=n[bU],b2=n[jh],i_=n[qX],Ws=n[ZF],kb=n[hT],Js=n[tH],f_=n[JU],zi=n[lO],Vc=n[BY],$s=n[cH],x_=n[i6],p2=n[s1],m2=n[Vy],_2=n[ST],o_=n[QU],Zs=n[v8],a_=n[WY],y2=n[$2],qL=n[48],K1=n[64];function UL(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return O===r0&&H===$?m:[0,$,r0,m[3],m[4]]}function W1(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+Vc],a,r0),V0=ze(u(a[1][1+V],a),$),Nr=o(a[1][1+t0],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&H===Nr&&$===V0&&O===Gr?m:[0,j0,V0,Nr,Gr]}function HL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function J1(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_r],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function XL(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+p],a,F,$),j0=ze(u(a[1][1+nn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Oi(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Un(o(a[1][1+y],a,H),$),j0=o(a[1][1+s0],a,O);return $===r0&&O===j0?m:[0,r0,H,j0]}function YL(a,F,m){var O=m[4],H=m[2],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,m[3],r0]}function VL(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],$,r0]}function h2(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+l],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function zL(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=_u(u(a[1][1+zi],a),r0);if($)var V0=$[1],Nr=V0[1],Gr=function(Qt){return[0,[0,Nr,Qt]]},Fe=V0[2],_e=te(u(a[1][1+z1],a),Nr,Fe,$,Gr);else var _e=$;if(H)var Dn=H[1],yn=Dn[1],ot=function(Qt){return[0,[0,yn,Qt]]},pt=Dn[2],kt=te(u(a[1][1+zi],a),yn,pt,H,ot);else var kt=H;var Kn=o(a[1][1+s0],a,O);return r0===j0&&$===_e&&H===kt&&O===Kn?m:[0,j0,_e,kt,Kn]}function $1(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function KL(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Z1(a,F){return F}function WL(a,F,m){var O=m[3],H=m[2],$=m[1],r0=Un(u(a[1][1+b],a),$),j0=Un(u(a[1][1+nn],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function wb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=_u(u(a[1][1+R0],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function JL(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+nn],a),$),j0=o(a[1][1+Tr],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,V0]]}function Eb(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=Un(u(a[1][1+Ar],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0,m[4]]}function $L(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function ZL(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function d2(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function QL(a,F){return[0,o(a[1][1+Or],a,F),0]}function rR(a,F){var m=u(a[1][1+Hr],a),O=le(function(H,$){var r0=H[1],j0=u(m,$);if(j0){if(j0[2])return[0,Lc(j0,r0),1];var V0=j0[1],Nr=H[2],Gr=Nr||($!==V0?1:0);return[0,[0,V0,r0],Gr]}return[0,r0,1]},v6r,F);return O[2]?ye(O[1]):F}function c_(a,F){return o(a[1][1+Tr],a,F)}function eR(a,F,m){var O=m[2],H=m[1],$=Un(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function k2(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+nn],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0,m[3]]}function nR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function w2(a,F){return o(a[1][1+nn],a,F)}function tR(a,F){var m=F[2],O=m[2],H=m[1];if(H)var $=function(Nr){return[0,Nr]},r0=H[1],j0=ee(u(a[1][1+nn],a),r0,H,$);else var j0=H;var V0=o(a[1][1+s0],a,O);return H===j0&&O===V0?F:[0,F[1],[0,j0,V0]]}function Q1(a,F){return o(a[1][1+nn],a,F)}function uR(a,F,m){return ur(a[1][1+er],a,F,m)}function Sb(a,F,m){return ur(a[1][1+er],a,F,m)}function iR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+Z],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function gb(a,F,m){return ur(a[1][1+er],a,F,m)}function fR(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+b0],a,F,$),j0=ze(u(a[1][1+nn],a),H);return $===r0&&H===j0?m:[0,m[1],[0,r0,j0]]}function Fb(a,F,m){switch(m[0]){case 0:var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+O0],a,F),H,m,O);case 1:var $=function(j0){return[1,j0]},r0=m[1];return ee(o(a[1][1+p0],a,F),r0,m,$);default:return m}}function xR(a,F,m){return ur(a[1][1+er],a,F,m)}function Mn(a,F,m){return ur(a[1][1+er],a,F,m)}function s_(a,F,m){var O=m[2],H=O[2],$=O[1],r0=ur(a[1][1+fe],a,F,$),j0=o(a[1][1+s0],a,H);return r0===$&&H===j0?m:[0,m[1],[0,r0,j0]]}function oR(a,F,m){return o(a[1][1+On],a,m)}function aR(a,F,m){return ur(a[1][1+L0],a,F,m)}function rv(a,F,m){var O=m[1];function H(r0){return[0,O,r0]}var $=m[2];return te(o(a[1][1+rr],a,F),O,$,m,H)}function Tb(a,F,m){switch(m[0]){case 0:var O=function(Nr){return[0,Nr]},H=m[1];return ee(o(a[1][1+L],a,F),H,m,O);case 1:var $=function(Nr){return[1,Nr]},r0=m[1];return ee(o(a[1][1+i0],a,F),r0,m,$);default:var j0=function(Nr){return[2,Nr]},V0=m[1];return ee(o(a[1][1+l0],a,F),V0,m,j0)}}function v_(a,F,m){var O=m[2],H=O[4],$=O[3],r0=O[2],j0=O[1],V0=ur(a[1][1+Q],a,F,j0),Nr=ur(a[1][1+P],a,F,r0),Gr=ze(u(a[1][1+nn],a),$);if(H){var Fe=0;if(V0[0]===1){var _e=Nr[2];if(_e[0]===2)var yn=qn(V0[1][2][1],_e[1][1][2][1]);else Fe=1}else Fe=1;if(Fe)var Dn=j0===V0?1:0,yn=Dn&&(r0===Nr?1:0)}else var yn=H;return V0===j0&&Nr===r0&&Gr===$&&H===yn?m:[0,m[1],[0,V0,Nr,Gr,yn]]}function Ob(a,F,m){if(m[0]===0){var O=function(j0){return[0,j0]},H=m[1];return ee(o(a[1][1+S0],a,F),H,m,O)}function $(j0){return[1,j0]}var r0=m[1];return ee(o(a[1][1+v0],a,F),r0,m,$)}function cR(a,F,m,O){return ur(a[1][1+J0],a,m,O)}function l_(a,F,m){return o(a[1][1+lt],a,m)}function sR(a,F,m){var O=m[2];switch(O[0]){case 0:var H=O[1],$=H[3],r0=H[2],j0=H[1],V0=Un(o(a[1][1+T0],a,F),j0),Nr=o(a[1][1+x0],a,r0),Gr=o(a[1][1+s0],a,$),Fe=0;if(V0===j0&&Nr===r0&&Gr===$){var _e=O;Fe=1}if(!Fe)var _e=[0,[0,V0,Nr,Gr]];var Ji=_e;break;case 1:var Dn=O[1],yn=Dn[3],ot=Dn[2],pt=Dn[1],kt=Un(o(a[1][1+M0],a,F),pt),Kn=o(a[1][1+x0],a,ot),Qt=o(a[1][1+s0],a,yn),J7=0;if(yn===Qt&&kt===pt&&Kn===ot){var $7=O;J7=1}if(!J7)var $7=[1,[0,kt,Kn,Qt]];var Ji=$7;break;case 2:var E7=O[1],Z7=E7[2],Q7=E7[1],ri=ur(a[1][1+L0],a,F,Q7),ei=o(a[1][1+x0],a,Z7),ni=0;if(Q7===ri&&Z7===ei){var Wi=O;ni=1}if(!ni)var Wi=[2,[0,ri,ei,E7[3]]];var Ji=Wi;break;default:var tv=function(iv){return[3,iv]},uv=O[1],Ji=ee(u(a[1][1+B],a),uv,O,tv)}return O===Ji?m:[0,m[1],Ji]}function b_(a,F){return ur(a[1][1+er],a,0,F)}function Ib(a,F,m){var O=F&&F[1];return ur(a[1][1+er],a,[0,O],m)}function p_(a,F){return o(a[1][1+m2],a,F)}function vR(a,F){return o(a[1][1+m2],a,F)}function m_(a,F){return ur(a[1][1+$s],a,s6r,F)}function Ab(a,F,m){return ur(a[1][1+$s],a,[0,F],m)}function lR(a,F){return ur(a[1][1+$s],a,c6r,F)}function bR(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=ze(u(a[1][1+t0],a),$),Fe=ze(u(a[1][1+t0],a),H),_e=o(a[1][1+s0],a,O);return j0===V0&&$===Gr&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,V0,Nr,Gr,Fe,_e]}function pR(a,F){return o(a[1][1+On],a,F)}function Nb(a,F){return o(a[1][1+lt],a,F)}function mR(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+J0],a),m,H,F,O)}function _R(a,F){switch(F[0]){case 0:var m=function(Gr){return[0,Gr]},O=F[1];return ee(u(a[1][1+be],a),O,F,m);case 1:var H=function(Gr){return[1,Gr]},$=F[1];return ee(u(a[1][1+ae],a),$,F,H);case 2:var r0=function(Gr){return[2,Gr]},j0=F[1];return ee(u(a[1][1+ar],a),j0,F,r0);default:var V0=function(Gr){return[3,Gr]},Nr=F[1];return ee(u(a[1][1+pe],a),Nr,F,V0)}}function __(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),V0=o(a[1][1+nn],a,$);if(H){var Nr=0;if(j0[0]===1){var Gr=V0[2];if(Gr[0]===10)var _e=qn(j0[1][2][1],Gr[1][2][1]);else Nr=1}else Nr=1;if(Nr)var Fe=r0===j0?1:0,_e=Fe&&($===V0?1:0)}else var _e=H;return r0===j0&&$===V0&&H===_e?F:[0,O,[0,j0,V0,_e]];case 1:var Dn=m[2],yn=m[1],ot=o(a[1][1+oe],a,yn),pt=_u(u(a[1][1+me],a),Dn);return yn===ot&&Dn===pt?F:[0,O,[1,ot,pt]];case 2:var kt=m[3],Kn=m[2],Qt=m[1],J7=o(a[1][1+oe],a,Qt),$7=_u(u(a[1][1+me],a),Kn),E7=o(a[1][1+s0],a,kt);return Qt===J7&&Kn===$7&&kt===E7?F:[0,O,[2,J7,$7,E7]];default:var Z7=m[3],Q7=m[2],ri=m[1],ei=o(a[1][1+oe],a,ri),ni=_u(u(a[1][1+me],a),Q7),Wi=o(a[1][1+s0],a,Z7);return ri===ei&&Q7===ni&&Z7===Wi?F:[0,O,[3,ei,ni,Wi]]}}function yR(a,F,m){var O=m[2],H=m[1],$=Un(function(j0){if(j0[0]===0){var V0=j0[1],Nr=o(a[1][1+Qr],a,V0);return V0===Nr?j0:[0,Nr]}var Gr=j0[1],Fe=o(a[1][1+fr],a,Gr);return Gr===Fe?j0:[1,Fe]},H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Cb(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+nn],a,r0),V0=ze(u(a[1][1+b2],a),$),Nr=ze(u(a[1][1+Ws],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function hR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+lt],a,$),j0=o(a[1][1+lt],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function dR(a,F){return o(a[1][1+nn],a,F)}function y_(a,F){return o(a[1][1+ar],a,F)}function kR(a,F){return o(a[1][1+lt],a,F)}function E2(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+y0],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+D],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+P0],a),j0,F,r0)}}function wR(a,F,m){var O=m[1],H=ur(a[1][1+u0],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function ER(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+I0],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function SR(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function Pb(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function gR(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Q0],a,$),j0=o(a[1][1+Or],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function FR(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Db(a,F){return o(a[1][1+ve],a,F)}function TR(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+K0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Ur],a),$,F,H)}function OR(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Pr],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function ku(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+h0],a,H),r0=o(a[1][1+h0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function wu(a,F){return o(a[1][1+Ur],a,F)}function Ii(a,F){return o(a[1][1+sr],a,F)}function w7(a,F){return o(a[1][1+h0],a,F)}function Ki(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+ve],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+xe],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+Re],a),j0,F,r0)}}function ev(a,F){var m=F[2],O=F[1],H=o(a[1][1+nn],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function Lb(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+s0],a,O);if(H){var r0=H[1],j0=o(a[1][1+nn],a,r0);return r0===j0&&O===$?m:[0,[0,j0],$]}return O===$?m:[0,0,$]}function nv(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return te(u(a[1][1+Ge],a),O,$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return te(u(a[1][1+Kr],a),O,j0,F,r0);case 2:var V0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return te(u(a[1][1+re],a),O,Nr,F,V0);case 3:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+F0],a),Fe,F,Gr);default:return F}}function Rb(a,F){var m=F[2],O=Un(u(a[1][1+We],a),m);return m===O?F:[0,F[1],O]}function jb(a,F,m){return ur(a[1][1+J0],a,F,m)}function IR(a,F,m){return ur(a[1][1+re],a,F,m)}function Sne(a,F){if(F[0]===0){var m=F[1],O=function(V0){return[0,m,V0]},H=F[2];return te(u(a[1][1+Ae],a),m,H,F,O)}var $=F[1];function r0(V0){return[1,$,V0]}var j0=F[2];return te(u(a[1][1+cn],a),$,j0,F,r0)}function gne(a,F){return o(a[1][1+sr],a,F)}function Fne(a,F){return o(a[1][1+h0],a,F)}function Tne(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+vn],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+kn],a),$,F,H)}function One(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Ne],a,H),r0=ze(u(a[1][1+rn],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Ine(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Ane(a,F){if(F[0]===0){var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+Je],a),O,F,m)}var H=F[1],$=H[1];function r0(V0){return[1,[0,$,V0]]}var j0=H[2];return te(u(a[1][1+Sr],a),$,j0,F,r0)}function Nne(a,F){var m=F[2][1],O=o(a[1][1+Ie],a,m);return m===O?F:[0,F[1],[0,O]]}function Cne(a,F){var m=F[2],O=m[3],H=m[1],$=o(a[1][1+Ie],a,H),r0=Un(u(a[1][1+Cr],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,m[2],r0]]}function Pne(a,F,m){var O=m[4],H=m[3],$=o(a[1][1+an],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,m[1],m[2],$,r0]}function Dne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+mr],a,r0),V0=ze(u(a[1][1+Me],a),$),Nr=o(a[1][1+an],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function Lne(a,F,m,O){var H=2<=F?o(a[1][1+L0],a,a6r):u(a[1][1+Vc],a);return u(H,O)}function Rne(a,F,m){var O=2<=F?o(a[1][1+L0],a,o6r):u(a[1][1+Vc],a);return u(O,m)}function jne(a,F,m){var O=m[3],H=m[2],$=m[1],r0=0;if(F){var j0=0;if($)switch($[1]){case 2:break;case 0:r0=1,j0=2;break;default:j0=1}var V0=0;switch(j0){case 2:V0=1;break;case 0:if(2<=F){var Nr=0,Gr=0;V0=1}break}if(!V0)var Nr=1,Gr=0}else r0=1;if(r0)var Nr=1,Gr=1;var Fe=o(Gr?a[1][1+m0]:a[1][1+lt],a,O);if(H)var _e=Nr?u(a[1][1+Vc],a):o(a[1][1+L0],a,x6r),Dn=function(ot){return[0,ot]},yn=ee(_e,H[1],H,Dn);else var yn=H;return H===yn&&O===Fe?m:[0,$,yn,Fe]}function Gne(a,F,m){if(m[0]===0){var O=m[1],H=Un(o(a[1][1+gt],a,F),O);return O===H?m:[0,H]}var $=m[1],r0=$[1];function j0(Nr){return[1,[0,r0,Nr]]}var V0=$[2];return te(o(a[1][1+Nt],a,F),r0,V0,m,j0)}function Mne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[1],j0=ze(o(a[1][1+vt],a,r0),H),V0=ze(o(a[1][1+Zt],a,r0),$),Nr=o(a[1][1+s0],a,O);return H===j0&&$===V0&&O===Nr?m:[0,r0,m[2],V0,j0,Nr]}function Bne(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),V0=ur(a[1][1+du],a,H!==0?1:0,$),Nr=u(a[1][1+Wu],a),Gr=ze(function(_e){return _u(Nr,_e)},H),Fe=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Gr&&O===Fe?m:[0,j0,V0,Gr,Fe]}function qne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Or],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Une(a,F,m){return o(a[1][1+Or],a,m)}function Hne(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Xne(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Yne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Vne(a,F,m){return ur(a[1][1+Hn],a,F,m)}function zne(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+Vc],a,j0),Nr=ze(u(a[1][1+V],a),r0),Gr=u(a[1][1+ou],a),Fe=Un(function(yn){return _u(Gr,yn)},$),_e=_u(u(a[1][1+qr],a),H),Dn=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Fe===$&&_e===H&&Dn===O?m:[0,V0,Nr,Fe,_e,Dn]}function Kne(a,F){return o(a[1][1+k0],a,F)}function Wne(a,F){return o(a[1][1+k0],a,F)}function Jne(a,F){return o(a[1][1+lt],a,F)}function $ne(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Zne(a,F,m){return m}function Qne(a,F){return ur(a[1][1+L0],a,f6r,F)}function rte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+zi],a),m,H,F,O)}function ete(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+xt],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function nte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+Le],a,H),r0=ze(u(a[1][1+nn],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function tte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function ute(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=Un(u(a[1][1+He],a),$),V0=ze(u(a[1][1+bt],a),H),Nr=ze(u(a[1][1+W7],a),r0),Gr=o(a[1][1+s0],a,O);return $===j0&&H===V0&&O===Gr&&r0===Nr?F:[0,F[1],[0,Nr,j0,V0,Gr]]}function ite(a,F,m){var O=m[9],H=m[8],$=m[7],r0=m[6],j0=m[3],V0=m[2],Nr=m[1],Gr=ze(u(a[1][1+he],a),Nr),Fe=o(a[1][1+B0],a,V0),_e=o(a[1][1+x0],a,$),Dn=o(a[1][1+ft],a,j0),yn=ze(u(a[1][1+Ir],a),r0),ot=ze(u(a[1][1+V],a),H),pt=o(a[1][1+s0],a,O);return Nr===Gr&&V0===Fe&&j0===Dn&&r0===yn&&$===_e&&H===ot&&O===pt?m:[0,Gr,Fe,Dn,m[4],m[5],yn,_e,ot,pt,m[10]]}function fte(a,F,m){return ur(a[1][1+jn],a,F,m)}function xte(a,F,m){return ur(a[1][1+me],a,F,m)}function ote(a,F,m){return ur(a[1][1+jn],a,F,m)}function ate(a,F){if(F[0]===0)return F;var m=F[1],O=o(a[1][1+l],a,m);return O===m?F:[1,O]}function cte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return ee(u(a[1][1+t0],a),H,F,O)}function ste(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Ze){return[0,O,[0,Ze]]},$=m[1];return ee(u(a[1][1+s0],a),$,F,H);case 1:var r0=function(Ze){return[0,O,[1,Ze]]},j0=m[1];return ee(u(a[1][1+s0],a),j0,F,r0);case 2:var V0=function(Ze){return[0,O,[2,Ze]]},Nr=m[1];return ee(u(a[1][1+s0],a),Nr,F,V0);case 3:var Gr=function(Ze){return[0,O,[3,Ze]]},Fe=m[1];return ee(u(a[1][1+s0],a),Fe,F,Gr);case 4:var _e=function(Ze){return[0,O,[4,Ze]]},Dn=m[1];return ee(u(a[1][1+s0],a),Dn,F,_e);case 5:var yn=function(Ze){return[0,O,[5,Ze]]},ot=m[1];return ee(u(a[1][1+s0],a),ot,F,yn);case 6:var pt=function(Ze){return[0,O,[6,Ze]]},kt=m[1];return ee(u(a[1][1+s0],a),kt,F,pt);case 7:var Kn=function(Ze){return[0,O,[7,Ze]]},Qt=m[1];return ee(u(a[1][1+s0],a),Qt,F,Kn);case 8:var J7=function(Ze){return[0,O,[8,Ze]]},$7=m[1];return ee(u(a[1][1+s0],a),$7,F,J7);case 9:var E7=function(Ze){return[0,O,[9,Ze]]},Z7=m[1];return ee(u(a[1][1+s0],a),Z7,F,E7);case 10:var Q7=function(Ze){return[0,O,[10,Ze]]},ri=m[1];return ee(u(a[1][1+s0],a),ri,F,Q7);case 11:var ei=function(Ze){return[0,O,[11,Ze]]},ni=m[1];return ee(u(a[1][1+k],a),ni,F,ei);case 12:var Wi=function(Ze){return[0,O,[12,Ze]]},tv=m[1];return te(u(a[1][1+a7],a),O,tv,F,Wi);case 13:var uv=function(Ze){return[0,O,[13,Ze]]},Ji=m[1];return te(u(a[1][1+qr],a),O,Ji,F,uv);case 14:var iv=function(Ze){return[0,O,[14,Ze]]},Gb=m[1];return te(u(a[1][1+_n],a),O,Gb,F,iv);case 15:var Mb=function(Ze){return[0,O,[15,Ze]]},Bb=m[1];return ee(u(a[1][1+Zs],a),Bb,F,Mb);case 16:var qb=function(Ze){return[0,O,[16,Ze]]},Ub=m[1];return te(u(a[1][1+ou],a),O,Ub,F,qb);case 17:var Hb=function(Ze){return[0,O,[17,Ze]]},Xb=m[1];return te(u(a[1][1+Fn],a),O,Xb,F,Hb);case 18:var Yb=function(Ze){return[0,O,[18,Ze]]},Vb=m[1];return te(u(a[1][1+vr],a),O,Vb,F,Yb);case 19:var zb=function(Ze){return[0,O,[19,Ze]]},Kb=m[1];return te(u(a[1][1+d],a),O,Kb,F,zb);case 20:var Wb=function(Ze){return[0,O,[20,Ze]]},Jb=m[1];return te(u(a[1][1+en],a),O,Jb,F,Wb);case 21:var $b=function(Ze){return[0,O,[21,Ze]]},Zb=m[1];return ee(u(a[1][1+G],a),Zb,F,$b);case 22:var Qb=function(Ze){return[0,O,[22,Ze]]},r4=m[1];return ee(u(a[1][1+o0],a),r4,F,Qb);case 23:var e4=function(Ze){return[0,O,[23,Ze]]},n4=m[1];return te(u(a[1][1+Lr],a),O,n4,F,e4);case 24:var t4=function(Ze){return[0,O,[24,Ze]]},u4=m[1];return te(u(a[1][1+_],a),O,u4,F,t4);case 25:var i4=function(Ze){return[0,O,[25,Ze]]},f4=m[1];return te(u(a[1][1+p2],a),O,f4,F,i4);default:var x4=function(Ze){return[0,O,[26,Ze]]},o4=m[1];return te(u(a[1][1+f_],a),O,o4,F,x4)}}function vte(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],V0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Un(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,V0,Nr,Gr],Fe]}function lte(a,F,m){var O=m[2],H=m[1],$=H[3],r0=H[2],j0=H[1],V0=o(a[1][1+t0],a,j0),Nr=o(a[1][1+t0],a,r0),Gr=Un(u(a[1][1+t0],a),$),Fe=o(a[1][1+s0],a,O);return V0===j0&&Nr===r0&&Gr===$&&Fe===O?m:[0,[0,V0,Nr,Gr],Fe]}function bte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function pte(a,F){var m=F[2],O=F[1],H=Un(u(a[1][1+t0],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function mte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K],a,H),r0=o(a[1][1+S],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function _te(a,F){return o(a[1][1+lt],a,F)}function yte(a,F){return o(a[1][1+lt],a,F)}function hte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+M],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+A],a),$,F,H)}function dte(a,F){var m=F[2],O=F[1],H=o(a[1][1+K],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function kte(a,F){var m=F[2],O=F[1],H=o(a[1][1+t0],a,O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,$]}function wte(a,F,m){var O=m[2],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],H]}function Ete(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Ste(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function gte(a,F,m){var O=m[3],H=o(a[1][1+s0],a,O);return O===H?m:[0,m[1],m[2],H]}function Fte(a,F,m){var O=m[1],H=ur(a[1][1+Fn],a,F,O);return H===O?m:[0,H,m[2]]}function Tte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+t0],a,$),j0=o(a[1][1+t0],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Ote(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+K7],a,$),j0=ze(u(a[1][1+e0],a),H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Ite(a,F){var m=F[2],O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+x0],a,$),V0=o(a[1][1+c],a,H),Nr=ze(u(a[1][1+t0],a),O),Gr=o(a[1][1+Vc],a,r0);return Gr===r0&&j0===$&&V0===H&&Nr===O?F:[0,F[1],[0,Gr,j0,V0,Nr]]}function Ate(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+f0],a),H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Nte(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+t0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Cte(a,F){return ze(u(a[1][1+s],a),F)}function Pte(a,F){var m=F[2],O=m[2],H=o(a[1][1+s0],a,O);return O===H?F:[0,F[1],[0,m[1],H]]}function Dte(a,F){return o(a[1][1+lt],a,F)}function Lte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+K7],a,H),r0=o(a[1][1+Y],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Rte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+m0],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Bu],a),$,F,H)}function jte(a,F,m){var O=m[3],H=m[2],$=m[1],r0=u(a[1][1+ou],a),j0=Un(function(Gr){return _u(r0,Gr)},H),V0=_u(u(a[1][1+qr],a),$),Nr=o(a[1][1+s0],a,O);return j0===H&&V0===$&&O===Nr?m:[0,V0,j0,Nr]}function Gte(a,F,m){var O=m[4],H=m[3],$=Un(function(j0){switch(j0[0]){case 0:var V0=function(Kn){return[0,Kn]},Nr=j0[1];return ee(u(a[1][1+ne],a),Nr,j0,V0);case 1:var Gr=function(Kn){return[1,Kn]},Fe=j0[1];return ee(u(a[1][1+jr],a),Fe,j0,Gr);case 2:var _e=function(Kn){return[2,Kn]},Dn=j0[1];return ee(u(a[1][1+ge],a),Dn,j0,_e);case 3:var yn=function(Kn){return[3,Kn]},ot=j0[1];return ee(u(a[1][1+q0],a),ot,j0,yn);default:var pt=function(Kn){return[4,Kn]},kt=j0[1];return ee(u(a[1][1+ce],a),kt,j0,pt)}},H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],m[2],$,r0]}function Mte(a,F){var m=F[2],O=m[3],H=m[1],$=H[2],r0=H[1],j0=ur(a[1][1+a7],a,r0,$),V0=o(a[1][1+s0],a,O);return $===j0&&O===V0?F:[0,F[1],[0,[0,r0,j0],m[2],V0]]}function Bte(a,F){var m=F[2],O=m[6],H=m[2],$=m[1],r0=o(a[1][1+lt],a,$),j0=o(a[1][1+t0],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,m[3],m[4],m[5],V0]]}function qte(a,F){var m=F[2],O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+t0],a,r0),V0=o(a[1][1+t0],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,m[1],j0,V0,m[4],Nr,Gr]]}function Ute(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?F:[0,F[1],[0,$,r0]]}function Hte(a,F){var m=F[2],O=m[8],H=m[7],$=m[2],r0=m[1],j0=o(a[1][1+oe],a,r0),V0=o(a[1][1+$r],a,$),Nr=o(a[1][1+c],a,H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?F:[0,F[1],[0,j0,V0,m[3],m[4],m[5],m[6],Nr,Gr]]}function Xte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Yte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+a7],a),m,H,F,O)}function Vte(a,F){switch(F[0]){case 0:var m=function(V0){return[0,V0]},O=F[1];return ee(u(a[1][1+t0],a),O,F,m);case 1:var H=function(V0){return[1,V0]},$=F[1];return ee(u(a[1][1+Br],a),$,F,H);default:var r0=function(V0){return[2,V0]},j0=F[1];return ee(u(a[1][1+Mr],a),j0,F,r0)}}function zte(a,F){return o(a[1][1+lt],a,F)}function Kte(a,F,m){var O=m[4],H=m[3],$=m[2],r0=$[2],j0=r0[4],V0=r0[3],Nr=r0[2],Gr=r0[1],Fe=m[1],_e=ze(u(a[1][1+Hc],a),Gr),Dn=Un(u(a[1][1+D0],a),Nr),yn=ze(u(a[1][1+Ut],a),V0),ot=o(a[1][1+t0],a,H),pt=ze(u(a[1][1+V],a),Fe),kt=o(a[1][1+s0],a,O),Kn=o(a[1][1+s0],a,j0);return Dn===Nr&&yn===V0&&ot===H&&pt===Fe&&kt===O&&Kn===j0&&_e===Gr?m:[0,pt,[0,$[1],[0,_e,Dn,yn,Kn]],ot,kt]}function Wte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function Jte(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+D0],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?F:[0,F[1],[0,$,r0]]}function $te(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+t0],a,O),r0=ze(u(a[1][1+lt],a),H);return $===O&&r0===H?F:[0,F[1],[0,r0,$,m[3]]]}function Zte(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function Qte(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Ti],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function rue(a,F,m){var O=m[5],H=m[4],$=m[3],r0=m[2],j0=m[1],V0=ze(u(a[1][1+ut],a),j0),Nr=ze(u(a[1][1+_r],a),r0),Gr=ze(u(a[1][1+nn],a),$),Fe=o(a[1][1+Or],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&$===Gr&&H===Fe&&O===_e?m:[0,V0,Nr,Gr,Fe,_e]}function eue(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function nue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+it],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Tt],a),$,F,H)}function tue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+xn],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,m[4],Gr]}function uue(a,F){var m=F[1];function O($){return[0,m,$]}var H=F[2];return te(u(a[1][1+T],a),m,H,F,O)}function iue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Hs],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Vi],a),$,F,H)}function fue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+hs],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+Or],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,m[4],Gr]}function xue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+nn],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+Rr],a),$,F,H)}function oue(a,F,m){var O=m[3],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,m[2],r0]}function aue(a,F){if(F[0]===0){var m=F[1],O=Un(u(a[1][1+Vs],a),m);return m===O?F:[0,O]}var H=F[1],$=o(a[1][1+q9],a,H);return H===$?F:[1,$]}function cue(a,F){var m=F[2],O=ze(u(a[1][1+lt],a),m);return m===O?F:[0,F[1],O]}function sue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+lt],a,H),r0=ze(u(a[1][1+lt],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function vue(a,F,m){var O=m[5],H=m[2],$=m[1],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Or],a),$),V0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===V0?m:[0,j0,r0,m[3],m[4],V0]}function lue(a,F){if(F[0]===0){var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+Or],a),O,F,m)}function H(r0){return[1,r0]}var $=F[1];return ee(u(a[1][1+nn],a),$,F,H)}function bue(a,F,m){var O=m[3],H=m[2],$=o(a[1][1+M9],a,H),r0=o(a[1][1+s0],a,O);return $===H&&r0===O?m:[0,m[1],$,r0]}function pue(a,F){return o(a[1][1+lt],a,F)}function mue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function _ue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function yue(a,F){var m=F[2],O=m[1],H=o(a[1][1+H1],a,O);return O===H?F:[0,F[1],[0,H,m[2]]]}function hue(a,F){var m=F[2][1],O=o(a[1][1+H1],a,m);return m===O?F:[0,F[1],[0,O]]}function due(a,F){var m=F[3],O=F[1],H=Un(u(a[1][1+vi],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],$]}function kue(a,F){var m=F[4],O=F[1];if(O[0]===0)var H=function(_e){return[0,_e]},$=O[1],r0=u(a[1][1+vi],a),Gr=ee(function(_e){return Un(r0,_e)},$,O,H);else var j0=function(_e){return[1,_e]},V0=O[1],Nr=u(a[1][1+s2],a),Gr=ee(function(_e){return Un(Nr,_e)},V0,O,j0);var Fe=o(a[1][1+s0],a,m);return O===Gr&&m===Fe?F:[0,Gr,F[2],F[3],Fe]}function wue(a,F){var m=F[4],O=F[1],H=Un(u(a[1][1+H9],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function Eue(a,F){var m=F[4],O=F[1],H=Un(u(a[1][1+cb],a),O),$=o(a[1][1+s0],a,m);return O===H&&m===$?F:[0,H,F[2],F[3],$]}function Sue(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(_e){return[0,O,[0,_e]]},$=m[1];return ee(u(a[1][1+sb],a),$,F,H);case 1:var r0=function(_e){return[0,O,[1,_e]]},j0=m[1];return ee(u(a[1][1+X9],a),j0,F,r0);case 2:var V0=function(_e){return[0,O,[2,_e]]},Nr=m[1];return ee(u(a[1][1+U9],a),Nr,F,V0);default:var Gr=function(_e){return[0,O,[3,_e]]},Fe=m[1];return ee(u(a[1][1+zs],a),Fe,F,Gr)}}function gue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,i6r,$),j0=o(a[1][1+Y9],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Fue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Tue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+Or],a,$),j0=o(a[1][1+_r],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Oue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ur(a[1][1+L0],a,u6r,$),j0=o(a[1][1+l],a,H),V0=o(a[1][1+s0],a,O);return r0===$&&j0===H&&V0===O?m:[0,r0,j0,V0]}function Iue(a,F,m){return ur(a[1][1+c0],a,F,m)}function Aue(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+l],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Nue(a,F,m){var O=m[4],H=m[2],$=_u(u(a[1][1+zi],a),H),r0=o(a[1][1+s0],a,O);return $===H&&O===r0?m:[0,m[1],$,m[3],r0]}function Cue(a,F,m){return ur(a[1][1+Hn],a,F,m)}function Pue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+he],a,r0),V0=o(a[1][1+l],a,$),Nr=ze(u(a[1][1+Ir],a),H),Gr=o(a[1][1+s0],a,O);return j0===r0&&V0===$&&Nr===H&&Gr===O?m:[0,j0,V0,Nr,Gr]}function Due(a,F){switch(F[0]){case 0:var m=F[1],O=m[2],H=m[1],$=ur(a[1][1+vb],a,H,O);return $===O?F:[0,[0,H,$]];case 1:var r0=F[1],j0=r0[2],V0=r0[1],Nr=ur(a[1][1+lb],a,V0,j0);return Nr===j0?F:[1,[0,V0,Nr]];case 2:var Gr=F[1],Fe=Gr[2],_e=Gr[1],Dn=ur(a[1][1+v2],a,_e,Fe);return Dn===Fe?F:[2,[0,_e,Dn]];case 3:var yn=F[1],ot=o(a[1][1+t0],a,yn);return ot===yn?F:[3,ot];case 4:var pt=F[1],kt=pt[2],Kn=pt[1],Qt=ur(a[1][1+c0],a,Kn,kt);return Qt===kt?F:[4,[0,Kn,Qt]];case 5:var J7=F[1],$7=J7[2],E7=J7[1],Z7=ur(a[1][1+Er],a,E7,$7);return Z7===$7?F:[5,[0,E7,Z7]];default:var Q7=F[1],ri=Q7[2],ei=Q7[1],ni=ur(a[1][1+Hn],a,ei,ri);return ni===ri?F:[6,[0,ei,ni]]}}function Lue(a,F,m){var O=m[5],H=m[3],$=m[2],r0=ze(u(a[1][1+si],a),H),j0=ze(u(a[1][1+Z9],a),$),V0=o(a[1][1+s0],a,O);return H===r0&&$===j0&&O===V0?m:[0,m[1],j0,r0,m[4],V0]}function Rue(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],V0=m[2],Nr=m[1],Gr=o(a[1][1+hb],a,Nr),Fe=ze(u(a[1][1+V],a),V0),_e=_u(u(a[1][1+qr],a),j0),Dn=u(a[1][1+ou],a),yn=ze(function(Qt){return _u(Dn,Qt)},r0),ot=u(a[1][1+ou],a),pt=Un(function(Qt){return _u(ot,Qt)},$),kt=ze(u(a[1][1+l2],a),H),Kn=o(a[1][1+s0],a,O);return Gr===Nr&&Fe===V0&&_e===j0&&yn===r0&&pt===$&&kt===H&&Kn===O?m:[0,Gr,Fe,_e,yn,pt,kt,Kn]}function jue(a,F,m){var O=m[1],H=o(a[1][1+s0],a,O);return O===H?m:[0,H]}function Gue(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function Mue(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+_r],a,r0),V0=o(a[1][1+nn],a,$),Nr=o(a[1][1+nn],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function Bue(a,F,m){return m}function que(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+ar],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,V0,Nr,Gr,m[4],Fe,_e]}function Uue(a,F){if(typeof F==\"number\")return F;var m=F[1],O=o(a[1][1+nn],a,m);return m===O?F:[0,O]}function Hue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=m[1],V0=o(a[1][1+oe],a,j0),Nr=o(a[1][1+_b],a,r0),Gr=o(a[1][1+x0],a,$),Fe=o(a[1][1+c],a,H),_e=o(a[1][1+s0],a,O);return j0===V0&&r0===Nr&&Gr===$&&Fe===H&&_e===O?m:[0,V0,Nr,Gr,m[4],Fe,_e]}function Xue(a,F,m){var O=m[6],H=m[5],$=m[3],r0=m[2],j0=o(a[1][1+oe],a,r0),V0=_u(u(a[1][1+me],a),$),Nr=Un(u(a[1][1+db],a),H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,m[1],j0,V0,m[4],Nr,Gr]}function Yue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+m0],a,H),r0=ze(u(a[1][1+e0],a),O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Vue(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+r_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function zue(a,F){switch(F[0]){case 0:var m=F[1],O=m[1],H=function(yn){return[0,[0,O,yn]]},$=m[2];return te(u(a[1][1+Xc],a),O,$,F,H);case 1:var r0=F[1],j0=r0[1],V0=function(yn){return[1,[0,j0,yn]]},Nr=r0[2];return te(u(a[1][1+yb],a),j0,Nr,F,V0);default:var Gr=F[1],Fe=Gr[1],_e=function(yn){return[2,[0,Fe,yn]]},Dn=Gr[2];return te(u(a[1][1+Q9],a),Fe,Dn,F,_e)}}function Kue(a,F){var m=F[2],O=m[2],H=m[1],$=o(a[1][1+nn],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Wue(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+Ks],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function Jue(a,F){return ur(a[1][1+L0],a,t6r,F)}function $ue(a,F,m){var O=m[3],H=m[2],$=m[1],r0=o(a[1][1+nn],a,$),j0=ze(u(a[1][1+e0],a),H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function Zue(a,F,m){var O=m[7],H=m[6],$=m[5],r0=m[4],j0=m[3],V0=m[2],Nr=m[1],Gr=ze(u(a[1][1+hb],a),Nr),Fe=o(a[1][1+n_],a,V0),_e=ze(u(a[1][1+V],a),j0),Dn=u(a[1][1+Yc],a),yn=ze(function(Kn){return _u(Dn,Kn)},r0),ot=ze(u(a[1][1+l2],a),$),pt=Un(u(a[1][1+db],a),H),kt=o(a[1][1+s0],a,O);return Nr===Gr&&V0===Fe&&r0===yn&&$===ot&&H===pt&&O===kt&&j0===_e?m:[0,Gr,Fe,_e,yn,ot,pt,kt]}function Que(a,F,m){return ur(a[1][1+ds],a,F,m)}function r7e(a,F,m){return ur(a[1][1+ds],a,F,m)}function e7e(a,F,m){var O=m[3],H=m[2],$=m[1],r0=ze(u(a[1][1+t_],a),$),j0=o(a[1][1+u_],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,r0,j0,V0]}function n7e(a,F){return _u(u(a[1][1+zi],a),F)}function t7e(a,F){if(F[0]===0){var m=F[1],O=o(a[1][1+t0],a,m);return O===m?F:[0,O]}var H=F[1],$=H[2][1],r0=o(a[1][1+s0],a,$);return $===r0?F:[1,[0,H[1],[0,r0]]]}function u7e(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+i_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function i7e(a,F,m){var O=m[1],H=ur(a[1][1+kb],a,F,O);return O===H?m:[0,H,m[2],m[3]]}function f7e(a,F){var m=F[2],O=m[2],H=m[1],$=Un(u(a[1][1+Ys],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?F:[0,F[1],[0,$,r0]]}function x7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=m[1],j0=o(a[1][1+nn],a,r0),V0=ze(u(a[1][1+b2],a),$),Nr=o(a[1][1+Ws],a,H),Gr=o(a[1][1+s0],a,O);return r0===j0&&$===V0&&H===Nr&&O===Gr?m:[0,j0,V0,Nr,Gr]}function o7e(a,F,m){var O=m[2],H=m[1],$=ze(u(a[1][1+Q0],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function a7e(a,F,m){var O=m[2],H=m[1],$=o(a[1][1+Tr],a,H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function c7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+nn],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function s7e(a,F,m){var O=m[4],H=m[3],$=m[2],r0=o(a[1][1+m2],a,$),j0=o(a[1][1+nn],a,H),V0=o(a[1][1+s0],a,O);return $===r0&&H===j0&&O===V0?m:[0,m[1],r0,j0,V0]}function v7e(a,F,m){return ur(a[1][1+jn],a,F,m)}function l7e(a,F){switch(F[0]){case 0:var m=function(r0){return[0,r0]},O=F[1];return ee(u(a[1][1+nn],a),O,F,m);case 1:var H=function(r0){return[1,r0]},$=F[1];return ee(u(a[1][1+Rr],a),$,F,H);default:return F}}function b7e(a,F,m){var O=m[2],H=m[1],$=Un(u(a[1][1+a_],a),H),r0=o(a[1][1+s0],a,O);return H===$&&O===r0?m:[0,$,r0]}function p7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Ue){return[0,O,[0,Ue]]},$=m[1];return te(u(a[1][1+y2],a),O,$,F,H);case 1:var r0=function(Ue){return[0,O,[1,Ue]]},j0=m[1];return te(u(a[1][1+o_],a),O,j0,F,r0);case 2:var V0=function(Ue){return[0,O,[2,Ue]]},Nr=m[1];return te(u(a[1][1+_2],a),O,Nr,F,V0);case 3:var Gr=function(Ue){return[0,O,[3,Ue]]},Fe=m[1];return te(u(a[1][1+x_],a),O,Fe,F,Gr);case 4:var _e=function(Ue){return[0,O,[4,Ue]]},Dn=m[1];return te(u(a[1][1+kb],a),O,Dn,F,_e);case 5:var yn=function(Ue){return[0,O,[5,Ue]]},ot=m[1];return te(u(a[1][1+e_],a),O,ot,F,yn);case 6:var pt=function(Ue){return[0,O,[6,Ue]]},kt=m[1];return te(u(a[1][1+Gn],a),O,kt,F,pt);case 7:var Kn=function(Ue){return[0,O,[7,Ue]]},Qt=m[1];return te(u(a[1][1+mb],a),O,Qt,F,Kn);case 8:var J7=function(Ue){return[0,O,[8,Ue]]},$7=m[1];return te(u(a[1][1+Zn],a),O,$7,F,J7);case 9:var E7=function(Ue){return[0,O,[9,Ue]]},Z7=m[1];return te(u(a[1][1+Yi],a),O,Z7,F,E7);case 10:var Q7=function(Ue){return[0,O,[10,Ue]]},ri=m[1];return ee(u(a[1][1+lt],a),ri,F,Q7);case 11:var ei=function(Ue){return[0,O,[11,Ue]]},ni=m[1];return ee(o(a[1][1+Ft],a,O),ni,F,ei);case 12:var Wi=function(Ue){return[0,O,[12,Ue]]},tv=m[1];return te(u(a[1][1+Ge],a),O,tv,F,Wi);case 13:var uv=function(Ue){return[0,O,[13,Ue]]},Ji=m[1];return te(u(a[1][1+Kr],a),O,Ji,F,uv);case 14:var iv=function(Ue){return[0,O,[14,Ue]]},Gb=m[1];return te(u(a[1][1+J0],a),O,Gb,F,iv);case 15:var Mb=function(Ue){return[0,O,[15,Ue]]},Bb=m[1];return te(u(a[1][1+X0],a),O,Bb,F,Mb);case 16:var qb=function(Ue){return[0,O,[16,Ue]]},Ub=m[1];return te(u(a[1][1+u0],a),O,Ub,F,qb);case 17:var Hb=function(Ue){return[0,O,[17,Ue]]},Xb=m[1];return te(u(a[1][1+U],a),O,Xb,F,Hb);case 18:var Yb=function(Ue){return[0,O,[18,Ue]]},Vb=m[1];return te(u(a[1][1+I],a),O,Vb,F,Yb);case 19:var zb=function(Ue){return[0,O,[19,Ue]]},Kb=m[1];return te(u(a[1][1+Fr],a),O,Kb,F,zb);case 20:var Wb=function(Ue){return[0,O,[20,Ue]]},Jb=m[1];return ee(o(a[1][1+$0],a,O),Jb,F,Wb);case 21:var $b=function(Ue){return[0,O,[21,Ue]]},Zb=m[1];return te(u(a[1][1+yr],a),O,Zb,F,$b);case 22:var Qb=function(Ue){return[0,O,[22,Ue]]},r4=m[1];return te(u(a[1][1+Wr],a),O,r4,F,Qb);case 23:var e4=function(Ue){return[0,O,[23,Ue]]},n4=m[1];return te(u(a[1][1+W0],a),O,n4,F,e4);case 24:var t4=function(Ue){return[0,O,[24,Ue]]},u4=m[1];return te(u(a[1][1+X],a),O,u4,F,t4);case 25:var i4=function(Ue){return[0,O,[25,Ue]]},f4=m[1];return te(u(a[1][1+R0],a),O,f4,F,i4);case 26:var x4=function(Ue){return[0,O,[26,Ue]]},o4=m[1];return te(u(a[1][1+U0],a),O,o4,F,x4);case 27:var Ze=function(Ue){return[0,O,[27,Ue]]},AR=m[1];return te(u(a[1][1+g0],a),O,AR,F,Ze);case 28:var NR=function(Ue){return[0,O,[28,Ue]]},CR=m[1];return te(u(a[1][1+w],a),O,CR,F,NR);case 29:var PR=function(Ue){return[0,O,[29,Ue]]},DR=m[1];return te(u(a[1][1+E],a),O,DR,F,PR);default:var LR=function(Ue){return[0,O,[30,Ue]]},RR=m[1];return te(u(a[1][1+e],a),O,RR,F,LR)}}function m7e(a,F){var m=F[2],O=F[1],H=Un(u(a[1][1+Y1],a),O),$=Un(u(a[1][1+Y1],a),m);return O===H&&m===$?F:[0,H,$,F[3]]}var _7e=8;function y7e(a,F){return F}function h7e(a,F){var m=F[2],O=F[1];switch(m[0]){case 0:var H=function(Oe){return[0,O,[0,Oe]]},$=m[1];return te(u(a[1][1+zi],a),O,$,F,H);case 1:var r0=function(Oe){return[0,O,[1,Oe]]},j0=m[1];return te(u(a[1][1+Js],a),O,j0,F,r0);case 2:var V0=function(Oe){return[0,O,[2,Oe]]},Nr=m[1];return te(u(a[1][1+V1],a),O,Nr,F,V0);case 3:var Gr=function(Oe){return[0,O,[3,Oe]]},Fe=m[1];return te(u(a[1][1+pb],a),O,Fe,F,Gr);case 4:var _e=function(Oe){return[0,O,[4,Oe]]},Dn=m[1];return te(u(a[1][1+bb],a),O,Dn,F,_e);case 5:var yn=function(Oe){return[0,O,[5,Oe]]},ot=m[1];return te(u(a[1][1+v2],a),O,ot,F,yn);case 6:var pt=function(Oe){return[0,O,[6,Oe]]},kt=m[1];return te(u(a[1][1+X1],a),O,kt,F,pt);case 7:var Kn=function(Oe){return[0,O,[7,Oe]]},Qt=m[1];return te(u(a[1][1+lb],a),O,Qt,F,Kn);case 8:var J7=function(Oe){return[0,O,[8,Oe]]},$7=m[1];return te(u(a[1][1+$9],a),O,$7,F,J7);case 9:var E7=function(Oe){return[0,O,[9,Oe]]},Z7=m[1];return te(u(a[1][1+J9],a),O,Z7,F,E7);case 10:var Q7=function(Oe){return[0,O,[10,Oe]]},ri=m[1];return te(u(a[1][1+W9],a),O,ri,F,Q7);case 11:var ei=function(Oe){return[0,O,[11,Oe]]},ni=m[1];return te(u(a[1][1+K9],a),O,ni,F,ei);case 12:var Wi=function(Oe){return[0,O,[33,Oe]]},tv=m[1];return te(u(a[1][1+Er],a),O,tv,F,Wi);case 13:var uv=function(Oe){return[0,O,[13,Oe]]},Ji=m[1];return te(u(a[1][1+vb],a),O,Ji,F,uv);case 14:var iv=function(Oe){return[0,O,[14,Oe]]},Gb=m[1];return te(u(a[1][1+z9],a),O,Gb,F,iv);case 15:var Mb=function(Oe){return[0,O,[15,Oe]]},Bb=m[1];return te(u(a[1][1+V9],a),O,Bb,F,Mb);case 16:var qb=function(Oe){return[0,O,[16,Oe]]},Ub=m[1];return te(u(a[1][1+ab],a),O,Ub,F,qb);case 17:var Hb=function(Oe){return[0,O,[17,Oe]]},Xb=m[1];return te(u(a[1][1+B9],a),O,Xb,F,Hb);case 18:var Yb=function(Oe){return[0,O,[18,Oe]]},Vb=m[1];return te(u(a[1][1+c2],a),O,Vb,F,Yb);case 19:var zb=function(Oe){return[0,O,[19,Oe]]},Kb=m[1];return te(u(a[1][1+Xs],a),O,Kb,F,zb);case 20:var Wb=function(Oe){return[0,O,[20,Oe]]},Jb=m[1];return te(u(a[1][1+dt],a),O,Jb,F,Wb);case 21:var $b=function(Oe){return[0,O,[21,Oe]]},Zb=m[1];return te(u(a[1][1+Au],a),O,Zb,F,$b);case 22:var Qb=function(Oe){return[0,O,[22,Oe]]},r4=m[1];return te(u(a[1][1+ln],a),O,r4,F,Qb);case 23:var e4=function(Oe){return[0,O,[23,Oe]]},n4=m[1];return te(u(a[1][1+wn],a),O,n4,F,e4);case 24:var t4=function(Oe){return[0,O,[24,Oe]]},u4=m[1];return te(u(a[1][1+Ct],a),O,u4,F,t4);case 25:var i4=function(Oe){return[0,O,[25,Oe]]},f4=m[1];return te(u(a[1][1+qt],a),O,f4,F,i4);case 26:var x4=function(Oe){return[0,O,[26,Oe]]},o4=m[1];return te(u(a[1][1+Cn],a),O,o4,F,x4);case 27:var Ze=function(Oe){return[0,O,[27,Oe]]},AR=m[1];return te(u(a[1][1+ir],a),O,AR,F,Ze);case 28:var NR=function(Oe){return[0,O,[28,Oe]]},CR=m[1];return te(u(a[1][1+Jr],a),O,CR,F,NR);case 29:var PR=function(Oe){return[0,O,[29,Oe]]},DR=m[1];return te(u(a[1][1+or],a),O,DR,F,PR);case 30:var LR=function(Oe){return[0,O,[30,Oe]]},RR=m[1];return te(u(a[1][1+E0],a),O,RR,F,LR);case 31:var Ue=function(Oe){return[0,O,[31,Oe]]},d7e=m[1];return te(u(a[1][1+w0],a),O,d7e,F,Ue);case 32:var k7e=function(Oe){return[0,O,[32,Oe]]},w7e=m[1];return te(u(a[1][1+c0],a),O,w7e,F,k7e);case 33:var E7e=function(Oe){return[0,O,[33,Oe]]},S7e=m[1];return te(u(a[1][1+Er],a),O,S7e,F,E7e);case 34:var g7e=function(Oe){return[0,O,[34,Oe]]},F7e=m[1];return te(u(a[1][1+T],a),O,F7e,F,g7e);case 35:var T7e=function(Oe){return[0,O,[35,Oe]]},O7e=m[1];return te(u(a[1][1+x],a),O,O7e,F,T7e);default:var I7e=function(Oe){return[0,O,[36,Oe]]},A7e=m[1];return te(u(a[1][1+i],a),O,A7e,F,I7e)}}return jN(t,[0,qL,function(a,F){var m=F[2],O=m[3],H=m[2],$=m[1],r0=o(a[1][1+_0],a,$),j0=o(a[1][1+s0],a,H),V0=Un(u(a[1][1+Y1],a),O);return $===r0&&H===j0&&O===V0?F:[0,F[1],[0,r0,j0,V0]]},Or,h7e,Y1,y7e,s0,_7e,ze,hr,hr,m7e,nn,p7e,y2,b7e,a_,l7e,o_,v7e,_2,s7e,x_,c7e,zi,a7e,Js,o7e,kb,x7e,Ws,f7e,$0,i7e,b2,u7e,i_,t7e,u_,n7e,z1,e7e,V1,r7e,e_,Que,ds,Zue,Yc,$ue,hb,Jue,n_,Wue,db,Kue,Ks,zue,l2,Vue,r_,Yue,Xc,Xue,yb,Hue,_b,Uue,Q9,que,Gn,Bue,mb,Mue,pb,Gue,bb,jue,v2,Rue,X1,Lue,Z9,Due,lb,Pue,$9,Cue,J9,Nue,W9,Aue,K9,Iue,vb,Oue,z9,Tue,V9,Fue,ab,gue,Y9,Sue,sb,Eue,X9,wue,U9,kue,zs,due,vi,hue,cb,yue,H9,_ue,s2,mue,H1,pue,B9,bue,M9,lue,c2,vue,Vs,sue,q9,cue,si,aue,Xs,oue,Ys,xue,Au,fue,hs,iue,Hs,uue,ln,tue,xn,nue,it,eue,dt,rue,ut,Qte,Ti,Zte,D0,$te,Ut,Jte,Hc,Wte,a7,Kte,Q0,zte,$r,Vte,Br,Yte,Mr,Xte,ne,Hte,jr,Ute,ge,qte,ce,Bte,q0,Mte,qr,Gte,_n,jte,K7,Rte,Bu,Lte,Y,Dte,s,Pte,c,Cte,e0,Nte,V,Ate,f0,Ite,ou,Ote,Fn,Tte,vr,Fte,Lr,gte,_,Ste,p2,Ete,f_,wte,k,kte,G,dte,K,hte,M,yte,S,_te,A,mte,o0,pte,Zs,bte,d,lte,en,vte,t0,ste,l,cte,x0,ate,wn,ote,Zn,xte,me,fte,jn,ite,B0,ute,W7,tte,He,nte,ft,ete,xt,rte,he,Qne,Yi,Zne,lt,$ne,k0,Jne,m0,Wne,Vc,Kne,Hn,zne,Cn,Vne,ar,Yne,On,Xne,Ft,Hne,du,Une,Wu,qne,Ct,Bne,qt,Mne,vt,Gne,gt,jne,Zt,Rne,Nt,Lne,Ge,Dne,Kr,Pne,mr,Cne,Me,Nne,Cr,Ane,Sr,Ine,Je,One,Ne,Tne,vn,Fne,kn,gne,rn,Sne,cn,IR,Ae,jb,an,Rb,We,nv,re,Lb,F0,ev,Ie,Ki,ve,w7,xe,Ii,Re,wu,sr,ku,Ur,OR,Pr,TR,K0,Db,h0,FR,ir,gR,J0,Pb,X0,SR,u0,ER,yr,wR,I0,E2,y0,kR,D,y_,P0,dR,U,hR,I,Cb,Fr,yR,Qr,__,oe,_R,be,mR,ae,Nb,pe,pR,Er,bR,Le,lR,p,Ab,t_,m_,Vi,vR,Tt,p_,$s,Ib,m2,b_,er,sR,L0,l_,rr,cR,T0,Ob,S0,v_,Q,Tb,L,rv,i0,aR,l0,oR,v0,s_,P,Mn,fe,xR,M0,Fb,O0,fR,b0,gb,p0,iR,Z,Sb,K1,uR,B,Q1,Ir,tR,_r,w2,bt,nR,Jr,k2,Wr,eR,_0,c_,Tr,rR,Hr,QL,Rr,d2,fr,ZL,W0,$L,or,Eb,Ar,JL,X,wb,R0,WL,b,Z1,U0,KL,E0,$1,w0,zL,g0,h2,w,VL,E,YL,T,Oi,y,XL,x,J1,i,HL,c0,W1,e,UL]),function(a,F){return jp(F,t)}});function X00(t){switch(t[0]){case 0:return 1;case 3:return 3;default:return 2}}function Y00(t,n){u(f(t),O6r),o(f(t),A6r,I6r);var e=n[1];o(f(t),N6r,e),u(f(t),C6r),u(f(t),P6r),o(f(t),L6r,D6r);var i=n[2];return o(f(t),R6r,i),u(f(t),j6r),u(f(t),G6r)}var V00=function t(n,e){return t.fun(n,e)},Fee=function t(n){return t.fun(n)};N(V00,function(t,n){u(f(t),B6r),o(f(t),U6r,q6r);var e=n[1];if(e){g(t,H6r);var i=e[1];switch(i[0]){case 0:u(f(t),m6r);var x=i[1];o(f(t),_6r,x),u(f(t),y6r);break;case 1:u(f(t),h6r);var c=i[1];o(f(t),d6r,c),u(f(t),k6r);break;case 2:u(f(t),w6r);var s=i[1];o(f(t),E6r,s),u(f(t),S6r);break;default:u(f(t),g6r);var p=i[1];o(f(t),F6r,p),u(f(t),T6r)}g(t,X6r)}else g(t,Y6r);return u(f(t),V6r),u(f(t),z6r),o(f(t),W6r,K6r),Y00(t,n[2]),u(f(t),J6r),u(f(t),$6r),o(f(t),Q6r,Z6r),Y00(t,n[3]),u(f(t),rpr),u(f(t),epr)}),N(Fee,function(t){return o(C0(M6r),V00,t)});function yt(t,n){return[0,t[1],t[2],n[3]]}function ps(t,n){var e=t[1]-n[1]|0;return e===0?t[2]-n[2]|0:e}function z00(t,n){var e=n[1],i=t[1];if(i)if(e)var x=e[1],c=i[1],s=X00(x),p=X00(c)-s|0,T=p===0?Ee(c[1],x[1]):p;else var T=-1;else var y=e&&1,T=y;if(T===0){var E=ps(t[2],n[2]);return E===0?ps(t[3],n[3]):E}return T}function Wv(t,n){return z00(t,n)===0?1:0}var WD=function t(n,e,i){return t.fun(n,e,i)},Tee=Rp(upr,function(t){var n=NN(t,tpr)[35],e=LN(t,0,0,npr,KD,1)[1];return zz(t,n,function(i,x){return 0}),function(i,x){var c=jp(x,t);return u(e,c),RN(x,c,t)}});N(WD,function(t,n,e){var i=e[2];switch(i[0]){case 0:var x=i[1][1];return le(function(s,p){var y=p[0]===0?p[1][2][2]:p[1][2][1];return ur(WD,t,s,y)},n,x);case 1:var c=i[1][1];return le(function(s,p){return p[0]===2?s:ur(WD,t,s,p[1][2][1])},n,c);case 2:return o(t,n,i[1][1]);default:return n}});function Rc(t,n){return[0,n[1],[0,n[2],t]]}function K00(t,n,e){var i=t&&t[1],x=n&&n[1];return[0,i,x,e]}function lr(t,n,e){var i=t&&t[1],x=n&&n[1];return!i&&!x?x:[0,K00([0,i],[0,x],0)]}function yu(t,n,e,i){var x=t&&t[1],c=n&&n[1];return!x&&!c&&!e?e:[0,K00([0,x],[0,c],e)]}function y7(t,n){if(t){if(n){var e=n[1],i=t[1],x=[0,on(i[2],e[2])];return lr([0,on(e[1],i[1])],x,0)}var c=t}else var c=n;return c}function JD(t,n){if(n){if(t){var e=n[1],i=t[1],x=i[3],c=[0,on(i[2],e[2])];return yu([0,on(e[1],i[1])],c,x,0)}var s=n[1];return yu([0,s[1]],[0,s[2]],0,0)}return t}function Jv(t,n){for(var e=t,i=n;;){if(typeof e==\"number\")return i;if(e[0]===0)return[0,e[1],0,i];var x=[0,e[2],e[4],i],e=e[3],i=x}}function W00(t,n){if(t)var e=Jv(t[2],t[3]),i=function(c){return W00(e,c)},x=[0,t[1],i];else var x=t;return x}function Oee(t){var n=Jv(t,0);return function(e){return W00(n,e)}}function ms(t){return typeof t==\"number\"?0:t[0]===0?1:t[1]}function Iee(t){return[0,t]}function Y7(t,n,e){var i=0;if(typeof t==\"number\"){if(typeof e==\"number\")return[0,n];e[0]===1&&(i=1)}else if(t[0]===0)typeof e!=\"number\"&&e[0]===1&&(i=1);else{var x=t[1];if(typeof e!=\"number\"&&e[0]===1){var c=e[1],s=c<=x?x+1|0:c+1|0;return[1,s,n,t,e]}var p=x;i=2}switch(i){case 1:var p=e[1];break;case 0:return[1,2,n,t,e]}return[1,p+1|0,n,t,e]}function Ns(t,n,e){var i=ms(t),x=ms(e),c=x<=i?i+1|0:x+1|0;return[1,c,n,t,e]}function $D(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=$D(t,i),c=u(t,0),s=$D(t,(n-i|0)-1|0);return[1,ms(x)+1|0,c,x,s]}var p=[0,u(t,0)]}else var p=e;return p}function ki(t,n,e){var i=ms(t),x=ms(e);if((x+2|0)>1,b0=R0(p0,W0),O0=b0[1],M0=R0(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0<=jr){var yr=Er,vr=[0,Mr,vr];continue}var er=Br,vr=[0,qr,vr];continue}var $r=Lc(er,vr)}else var $r=Lc(yr,vr);return[0,$r,$0]}},R0=function(or,W0){if(or===2){if(W0){var Lr=W0[2];if(Lr){var Tr=Lr[1],Hr=W0[1],Or=Lr[2],fr=o(U0,Hr,Tr),Rr=fr===0?[0,Hr,0]:0<=fr?[0,Tr,[0,Hr,0]]:[0,Hr,[0,Tr,0]];return[0,Rr,Or]}}}else if(or===3&&W0){var Wr=W0[2];if(Wr){var Jr=Wr[2];if(Jr){var ar=Jr[1],_r=Wr[1],Ir=W0[1],fe=Jr[2],v0=o(U0,Ir,_r);if(v0===0)var P=o(U0,_r,ar),L=P===0?[0,_r,0]:0<=P?[0,ar,[0,_r,0]]:[0,_r,[0,ar,0]],Q=L;else if(0<=v0){var i0=o(U0,Ir,ar);if(i0===0)var T0=[0,_r,[0,Ir,0]];else if(0<=i0)var l0=o(U0,_r,ar),S0=l0===0?[0,_r,[0,Ir,0]]:0<=l0?[0,ar,[0,_r,[0,Ir,0]]]:[0,_r,[0,ar,[0,Ir,0]]],T0=S0;else var T0=[0,_r,[0,Ir,[0,ar,0]]];var Q=T0}else{var rr=o(U0,_r,ar);if(rr===0)var Z=[0,Ir,[0,_r,0]];else if(0<=rr)var L0=o(U0,Ir,ar),B=L0===0?[0,Ir,[0,_r,0]]:0<=L0?[0,ar,[0,Ir,[0,_r,0]]]:[0,Ir,[0,ar,[0,_r,0]]],Z=B;else var Z=[0,Ir,[0,_r,[0,ar,0]]];var Q=Z}return[0,Q,fe]}}}for(var p0=or>>1,b0=b(p0,W0),O0=b0[1],M0=b(or-p0|0,b0[2]),er=O0,yr=M0[1],vr=0,$0=M0[2];;){if(er){if(yr){var Er=yr[2],Mr=yr[1],Br=er[2],qr=er[1],jr=o(U0,qr,Mr);if(jr===0){var er=Br,yr=Er,vr=[0,qr,vr];continue}if(0>>0))switch(or){case 0:return[0,0,W0];case 1:if(W0)return[0,[0,W0[1]],W0[2]];break;case 2:if(W0){var Lr=W0[2];if(Lr)return[0,[1,2,Lr[1],[0,W0[1]],0],Lr[2]]}break;default:if(W0){var Tr=W0[2];if(Tr){var Hr=Tr[2];if(Hr)return[0,[1,2,Tr[1],[0,W0[1]],[0,Hr[1]]],Hr[2]]}}}var Or=or/2|0,fr=hr(Or,W0),Rr=fr[2];if(Rr){var Wr=hr((or-Or|0)-1|0,Rr[2]),Jr=Wr[2];return[0,Ns(fr[1],Rr[1],Wr[1]),Jr]}throw[0,Sn,Kpr]};return hr(Dc(s0),s0)[1]}var Ar=n(E0,n(w0,n(t0,[0,l])));return n(_0[1],Ar)}return n(E0,n(w0,n(t0,[0,l])))}return n(w0,n(t0,[0,l]))}return n(t0,[0,l])}return[0,l]}return st}return[0,st,rL,i,n,Iee,x,c,s,y,T,E,d,w,G,k0,A,S,M,K,V,QD,er0,Pl,Z00,Q00,Aee,Pl,Z00,f0,m0,Oee,g0,function(e0,x0,l){u(f(x0),Xpr);var c0=er0(l);c0&&u(f(x0),Ypr);var t0=0;return le(function(o0,w0){return o0&&u(f(x0),Hpr),o(e0,x0,w0),1},t0,c0),c0&&u(f(x0),Vpr),u(f(x0),zpr)},$D]}var nr0=Wpr.slice();function nL(t){for(var n=0,e=nr0.length-1-1|0;;){if(e>>18|0),Jn(i,x+1|0,jt|(p>>>12|0)&63),Jn(i,x+2|0,jt|(p>>>6|0)&63),Jn(i,x+3|0,jt|p&63);var y=x+4|0}else{Jn(i,x,hv|p>>>12|0),Jn(i,x+1|0,jt|(p>>>6|0)&63),Jn(i,x+2|0,jt|p&63);var y=x+3|0}else{Jn(i,x,rt|p>>>6|0),Jn(i,x+1|0,jt|p&63);var y=x+2|0}else{Jn(i,x,p);var y=x+1|0}var x=y,c=c-1|0,s=s+1|0;continue}throw I1}return x}}function pr0(t){for(var n=un(t),e=Gv(n,0),i=0,x=0;;){if(x>>6|0)!==2?1:0;if(E)var w=E;else var d=(y>>>6|0)!==2?1:0,w=d||((T>>>6|0)!==2?1:0);if(w)throw I1;e[1+i]=(c&7)<<18|(p&63)<<12|(y&63)<<6|T&63;var G=x+4|0}else if(hv<=c){var A=Vr(t,x+1|0),S=Vr(t,x+2|0),M=(c&15)<<12|(A&63)<<6|S&63,K=(A>>>6|0)!==2?1:0,V=K||((S>>>6|0)!==2?1:0);if(V)var m0=V;else var f0=55296<=M?1:0,m0=f0&&(M<=57088?1:0);if(m0)throw I1;e[1+i]=M;var G=x+3|0}else{var k0=Vr(t,x+1|0);if((k0>>>6|0)!==2)throw I1;e[1+i]=(c&31)<<6|k0&63;var G=x+2|0}else if(jt<=c)s=1;else{e[1+i]=c;var G=x+1|0}if(s)throw I1;var i=i+1|0,x=G;continue}return[0,e,i,lr0,vr0,sr0,cr0,ar0,or0,xr0,fr0,ir0,ur0]}}function jl(t,n,e){var i=t[6]+n|0,x=Lt(e*4|0),c=t[1];if((i+e|0)<=c.length-1)return qv(x,0,Rl(c,i,e,x));throw[0,Sn,r_r]}function Se(t){var n=t[6],e=t[3]-n|0,i=Lt(e*4|0);return qv(i,0,Rl(t[1],n,e,i))}function Gl(t,n){var e=t[6],i=t[3]-e|0,x=Lt(i*4|0);return sN(n,x,0,Rl(t[1],e,i,x))}function uL(t){var n=t.length-1,e=Lt(n*4|0);return qv(e,0,Rl(t,0,n,e))}function mr0(t,n){return t[3]=t[3]-n|0,0}var _r0=0;function Cee(t,n,e){return[0,t,n,n_r,0,e,_r0,t_r]}function yr0(t){var n=t[2];return[0,t[1],[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12]],t[3],t[4],t[5],t[6],t[7]]}function hr0(t){return t[3][1]}function $m(t,n){return t!==n[4]?[0,n[1],n[2],n[3],t,n[5],n[6],n[7]]:n}var iL=function t(n,e){return t.fun(n,e)},dr0=function t(n,e){return t.fun(n,e)},fL=function t(n,e){return t.fun(n,e)},xL=function t(n,e){return t.fun(n,e)},kr0=function t(n,e){return t.fun(n,e)};N(iL,function(t,n){if(typeof t==\"number\"){var e=t;if(61<=e)if(92<=e)switch(e){case 92:if(typeof n==\"number\"&&n===92)return 1;break;case 93:if(typeof n==\"number\"&&n===93)return 1;break;case 94:if(typeof n==\"number\"&&n===94)return 1;break;case 95:if(typeof n==\"number\"&&n===95)return 1;break;case 96:if(typeof n==\"number\"&&n===96)return 1;break;case 97:if(typeof n==\"number\"&&n===97)return 1;break;case 98:if(typeof n==\"number\"&&n===98)return 1;break;case 99:if(typeof n==\"number\"&&n===99)return 1;break;case 100:if(typeof n==\"number\"&&ti===n)return 1;break;case 101:if(typeof n==\"number\"&&R7===n)return 1;break;case 102:if(typeof n==\"number\"&&Ri===n)return 1;break;case 103:if(typeof n==\"number\"&&s7===n)return 1;break;case 104:if(typeof n==\"number\"&&L7===n)return 1;break;case 105:if(typeof n==\"number\"&&j7===n)return 1;break;case 106:if(typeof n==\"number\"&&Yt===n)return 1;break;case 107:if(typeof n==\"number\"&&Zc===n)return 1;break;case 108:if(typeof n==\"number\"&&is===n)return 1;break;case 109:if(typeof n==\"number\"&&Fv===n)return 1;break;case 110:if(typeof n==\"number\"&&Xt===n)return 1;break;case 111:if(typeof n==\"number\"&&cf===n)return 1;break;case 112:if(typeof n==\"number\"&&T7===n)return 1;break;case 113:if(typeof n==\"number\"&&Pn===n)return 1;break;case 114:if(typeof n==\"number\"&&t1===n)return 1;break;case 115:if(typeof n==\"number\"&&Av===n)return 1;break;case 116:if(typeof n==\"number\"&&f1===n)return 1;break;case 117:if(typeof n==\"number\"&&A2===n)return 1;break;case 118:if(typeof n==\"number\"&&z2===n)return 1;break;case 119:if(typeof n==\"number\"&&Sv===n)return 1;break;case 120:if(typeof n==\"number\"&&uc===n)return 1;break;default:if(typeof n==\"number\"&&tl<=n)return 1}else switch(e){case 61:if(typeof n==\"number\"&&n===61)return 1;break;case 62:if(typeof n==\"number\"&&n===62)return 1;break;case 63:if(typeof n==\"number\"&&n===63)return 1;break;case 64:if(typeof n==\"number\"&&n===64)return 1;break;case 65:if(typeof n==\"number\"&&n===65)return 1;break;case 66:if(typeof n==\"number\"&&n===66)return 1;break;case 67:if(typeof n==\"number\"&&n===67)return 1;break;case 68:if(typeof n==\"number\"&&n===68)return 1;break;case 69:if(typeof n==\"number\"&&n===69)return 1;break;case 70:if(typeof n==\"number\"&&n===70)return 1;break;case 71:if(typeof n==\"number\"&&n===71)return 1;break;case 72:if(typeof n==\"number\"&&n===72)return 1;break;case 73:if(typeof n==\"number\"&&n===73)return 1;break;case 74:if(typeof n==\"number\"&&n===74)return 1;break;case 75:if(typeof n==\"number\"&&n===75)return 1;break;case 76:if(typeof n==\"number\"&&n===76)return 1;break;case 77:if(typeof n==\"number\"&&n===77)return 1;break;case 78:if(typeof n==\"number\"&&n===78)return 1;break;case 79:if(typeof n==\"number\"&&n===79)return 1;break;case 80:if(typeof n==\"number\"&&n===80)return 1;break;case 81:if(typeof n==\"number\"&&n===81)return 1;break;case 82:if(typeof n==\"number\"&&n===82)return 1;break;case 83:if(typeof n==\"number\"&&n===83)return 1;break;case 84:if(typeof n==\"number\"&&n===84)return 1;break;case 85:if(typeof n==\"number\"&&n===85)return 1;break;case 86:if(typeof n==\"number\"&&n===86)return 1;break;case 87:if(typeof n==\"number\"&&n===87)return 1;break;case 88:if(typeof n==\"number\"&&n===88)return 1;break;case 89:if(typeof n==\"number\"&&n===89)return 1;break;case 90:if(typeof n==\"number\"&&n===90)return 1;break;default:if(typeof n==\"number\"&&n===91)return 1}else if(31<=e)switch(e){case 31:if(typeof n==\"number\"&&n===31)return 1;break;case 32:if(typeof n==\"number\"&&n===32)return 1;break;case 33:if(typeof n==\"number\"&&n===33)return 1;break;case 34:if(typeof n==\"number\"&&n===34)return 1;break;case 35:if(typeof n==\"number\"&&n===35)return 1;break;case 36:if(typeof n==\"number\"&&n===36)return 1;break;case 37:if(typeof n==\"number\"&&n===37)return 1;break;case 38:if(typeof n==\"number\"&&n===38)return 1;break;case 39:if(typeof n==\"number\"&&n===39)return 1;break;case 40:if(typeof n==\"number\"&&n===40)return 1;break;case 41:if(typeof n==\"number\"&&n===41)return 1;break;case 42:if(typeof n==\"number\"&&n===42)return 1;break;case 43:if(typeof n==\"number\"&&n===43)return 1;break;case 44:if(typeof n==\"number\"&&n===44)return 1;break;case 45:if(typeof n==\"number\"&&n===45)return 1;break;case 46:if(typeof n==\"number\"&&n===46)return 1;break;case 47:if(typeof n==\"number\"&&n===47)return 1;break;case 48:if(typeof n==\"number\"&&n===48)return 1;break;case 49:if(typeof n==\"number\"&&n===49)return 1;break;case 50:if(typeof n==\"number\"&&n===50)return 1;break;case 51:if(typeof n==\"number\"&&n===51)return 1;break;case 52:if(typeof n==\"number\"&&n===52)return 1;break;case 53:if(typeof n==\"number\"&&n===53)return 1;break;case 54:if(typeof n==\"number\"&&n===54)return 1;break;case 55:if(typeof n==\"number\"&&n===55)return 1;break;case 56:if(typeof n==\"number\"&&n===56)return 1;break;case 57:if(typeof n==\"number\"&&n===57)return 1;break;case 58:if(typeof n==\"number\"&&n===58)return 1;break;case 59:if(typeof n==\"number\"&&n===59)return 1;break;default:if(typeof n==\"number\"&&n===60)return 1}else switch(e){case 0:if(typeof n==\"number\"&&!n)return 1;break;case 1:if(typeof n==\"number\"&&n===1)return 1;break;case 2:if(typeof n==\"number\"&&n===2)return 1;break;case 3:if(typeof n==\"number\"&&n===3)return 1;break;case 4:if(typeof n==\"number\"&&n===4)return 1;break;case 5:if(typeof n==\"number\"&&n===5)return 1;break;case 6:if(typeof n==\"number\"&&n===6)return 1;break;case 7:if(typeof n==\"number\"&&n===7)return 1;break;case 8:if(typeof n==\"number\"&&n===8)return 1;break;case 9:if(typeof n==\"number\"&&n===9)return 1;break;case 10:if(typeof n==\"number\"&&n===10)return 1;break;case 11:if(typeof n==\"number\"&&n===11)return 1;break;case 12:if(typeof n==\"number\"&&n===12)return 1;break;case 13:if(typeof n==\"number\"&&n===13)return 1;break;case 14:if(typeof n==\"number\"&&n===14)return 1;break;case 15:if(typeof n==\"number\"&&n===15)return 1;break;case 16:if(typeof n==\"number\"&&n===16)return 1;break;case 17:if(typeof n==\"number\"&&n===17)return 1;break;case 18:if(typeof n==\"number\"&&n===18)return 1;break;case 19:if(typeof n==\"number\"&&n===19)return 1;break;case 20:if(typeof n==\"number\"&&n===20)return 1;break;case 21:if(typeof n==\"number\"&&n===21)return 1;break;case 22:if(typeof n==\"number\"&&n===22)return 1;break;case 23:if(typeof n==\"number\"&&n===23)return 1;break;case 24:if(typeof n==\"number\"&&n===24)return 1;break;case 25:if(typeof n==\"number\"&&n===25)return 1;break;case 26:if(typeof n==\"number\"&&n===26)return 1;break;case 27:if(typeof n==\"number\"&&n===27)return 1;break;case 28:if(typeof n==\"number\"&&n===28)return 1;break;case 29:if(typeof n==\"number\"&&n===29)return 1;break;default:if(typeof n==\"number\"&&n===30)return 1}}else switch(t[0]){case 0:if(typeof n!=\"number\"&&n[0]===0){var i=n[1],x=u(u(fL,t[1]),i),c=x&&qn(t[2],n[2]);return c}break;case 1:if(typeof n!=\"number\"&&n[0]===1){var s=n[1],p=u(u(xL,t[1]),s),y=p&&qn(t[2],n[2]);return y}break;case 2:if(typeof n!=\"number\"&&n[0]===2){var T=n[1],E=t[1],d=Wv(E[1],T[1]),w=d&&qn(E[2],T[2]),G=w&&qn(E[3],T[3]),A=G&&(E[4]===T[4]?1:0);return A}break;case 3:if(typeof n!=\"number\"&&n[0]===3){var S=n[1],M=t[1],K=Wv(M[1],S[1]);if(K)var V=S[2],f0=u(u(kr0,M[2]),V);else var f0=K;var m0=f0&&(M[3]===S[3]?1:0);return m0}break;case 4:if(typeof n!=\"number\"&&n[0]===4){var k0=Wv(t[1],n[1]),g0=k0&&qn(t[2],n[2]),e0=g0&&qn(t[3],n[3]);return e0}break;case 5:if(typeof n!=\"number\"&&n[0]===5){var x0=Wv(t[1],n[1]),l=x0&&qn(t[2],n[2]),c0=l&&qn(t[3],n[3]);return c0}break;case 6:if(typeof n!=\"number\"&&n[0]===6)return qn(t[1],n[1]);break;case 7:if(typeof n!=\"number\"&&n[0]===7){var t0=qn(t[1],n[1]);return t0&&Wv(t[2],n[2])}break;case 8:if(typeof n!=\"number\"&&n[0]===8){var o0=Wv(t[1],n[1]),w0=o0&&qn(t[2],n[2]),_0=w0&&qn(t[3],n[3]);return _0}break;case 9:if(typeof n!=\"number\"&&n[0]===9){var E0=n[1];return u(u(dr0,t[1]),E0)}break;case 10:if(typeof n!=\"number\"&&n[0]===10){var U0=n[1],b=u(u(fL,t[1]),U0),R0=b&&(t[2]==n[2]?1:0),X=R0&&qn(t[3],n[3]);return X}break;default:if(typeof n!=\"number\"&&n[0]===11){var s0=n[1],hr=u(u(xL,t[1]),s0),Ar=hr&&(t[2]==n[2]?1:0),or=Ar&&qn(t[3],n[3]);return or}}return 0}),N(dr0,function(t,n){if(t){if(n)return 1}else if(!n)return 1;return 0}),N(fL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;case 2:if(n===2)return 1;break;case 3:if(n===3)return 1;break;default:if(4<=n)return 1}return 0}),N(xL,function(t,n){switch(t){case 0:if(!n)return 1;break;case 1:if(n===1)return 1;break;default:if(2<=n)return 1}return 0}),N(kr0,function(t,n){var e=qn(t[1],n[1]),i=e&&qn(t[2],n[2]),x=i&&qn(t[3],n[3]);return x});function wr0(t){if(typeof t==\"number\"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return Ekr;case 93:return Skr;case 94:return gkr;case 95:return Fkr;case 96:return Tkr;case 97:return Okr;case 98:return Ikr;case 99:return Akr;case 100:return Nkr;case 101:return Ckr;case 102:return Pkr;case 103:return Dkr;case 104:return Lkr;case 105:return Rkr;case 106:return jkr;case 107:return Gkr;case 108:return Mkr;case 109:return Bkr;case 110:return qkr;case 111:return Ukr;case 112:return Hkr;case 113:return Xkr;case 114:return Ykr;case 115:return Vkr;case 116:return zkr;case 117:return Kkr;case 118:return Wkr;case 119:return Jkr;case 120:return $kr;default:return Zkr}switch(n){case 61:return Vdr;case 62:return zdr;case 63:return Kdr;case 64:return Wdr;case 65:return Jdr;case 66:return $dr;case 67:return Zdr;case 68:return Qdr;case 69:return rkr;case 70:return ekr;case 71:return nkr;case 72:return tkr;case 73:return ukr;case 74:return ikr;case 75:return fkr;case 76:return xkr;case 77:return okr;case 78:return akr;case 79:return ckr;case 80:return skr;case 81:return vkr;case 82:return lkr;case 83:return bkr;case 84:return pkr;case 85:return mkr;case 86:return _kr;case 87:return ykr;case 88:return hkr;case 89:return dkr;case 90:return kkr;default:return wkr}}if(31<=n)switch(n){case 31:return mdr;case 32:return _dr;case 33:return ydr;case 34:return hdr;case 35:return ddr;case 36:return kdr;case 37:return wdr;case 38:return Edr;case 39:return Sdr;case 40:return gdr;case 41:return Fdr;case 42:return Tdr;case 43:return Odr;case 44:return Idr;case 45:return Adr;case 46:return Ndr;case 47:return Cdr;case 48:return Pdr;case 49:return Ddr;case 50:return Ldr;case 51:return Rdr;case 52:return jdr;case 53:return Gdr;case 54:return Mdr;case 55:return Bdr;case 56:return qdr;case 57:return Udr;case 58:return Hdr;case 59:return Xdr;default:return Ydr}switch(n){case 0:return Mhr;case 1:return Bhr;case 2:return qhr;case 3:return Uhr;case 4:return Hhr;case 5:return Xhr;case 6:return Yhr;case 7:return Vhr;case 8:return zhr;case 9:return Khr;case 10:return Whr;case 11:return Jhr;case 12:return $hr;case 13:return Zhr;case 14:return Qhr;case 15:return rdr;case 16:return edr;case 17:return ndr;case 18:return tdr;case 19:return udr;case 20:return idr;case 21:return fdr;case 22:return xdr;case 23:return odr;case 24:return adr;case 25:return cdr;case 26:return sdr;case 27:return vdr;case 28:return ldr;case 29:return bdr;default:return pdr}}else switch(t[0]){case 0:return Qkr;case 1:return rwr;case 2:return ewr;case 3:return nwr;case 4:return twr;case 5:return uwr;case 6:return iwr;case 7:return fwr;case 8:return xwr;case 9:return owr;case 10:return awr;default:return cwr}}function oL(t){if(typeof t==\"number\"){var n=t;if(61<=n){if(92<=n)switch(n){case 92:return ihr;case 93:return fhr;case 94:return xhr;case 95:return ohr;case 96:return ahr;case 97:return chr;case 98:return shr;case 99:return vhr;case 100:return lhr;case 101:return bhr;case 102:return phr;case 103:return mhr;case 104:return _hr;case 105:return yhr;case 106:return hhr;case 107:return dhr;case 108:return khr;case 109:return whr;case 110:return Ehr;case 111:return Shr;case 112:return ghr;case 113:return Fhr;case 114:return Thr;case 115:return Ohr;case 116:return Ihr;case 117:return Ahr;case 118:return Nhr;case 119:return Chr;case 120:return Phr;default:return Dhr}switch(n){case 61:return Oyr;case 62:return Iyr;case 63:return Ayr;case 64:return Nyr;case 65:return Cyr;case 66:return Pyr;case 67:return Dyr;case 68:return Lyr;case 69:return Ryr;case 70:return jyr;case 71:return Gyr;case 72:return Myr;case 73:return Byr;case 74:return qyr;case 75:return Uyr;case 76:return Hyr;case 77:return Xyr;case 78:return Yyr;case 79:return Vyr;case 80:return zyr;case 81:return Kyr;case 82:return Wyr;case 83:return Jyr;case 84:return $yr;case 85:return Zyr;case 86:return Qyr;case 87:return rhr;case 88:return ehr;case 89:return nhr;case 90:return thr;default:return uhr}}if(31<=n)switch(n){case 31:return Z_r;case 32:return Q_r;case 33:return ryr;case 34:return eyr;case 35:return nyr;case 36:return tyr;case 37:return uyr;case 38:return iyr;case 39:return fyr;case 40:return xyr;case 41:return oyr;case 42:return ayr;case 43:return cyr;case 44:return syr;case 45:return vyr;case 46:return lyr;case 47:return byr;case 48:return pyr;case 49:return myr;case 50:return _yr;case 51:return yyr;case 52:return hyr;case 53:return dyr;case 54:return kyr;case 55:return wyr;case 56:return Eyr;case 57:return Syr;case 58:return gyr;case 59:return Fyr;default:return Tyr}switch(n){case 0:return k_r;case 1:return w_r;case 2:return E_r;case 3:return S_r;case 4:return g_r;case 5:return F_r;case 6:return T_r;case 7:return O_r;case 8:return I_r;case 9:return A_r;case 10:return N_r;case 11:return C_r;case 12:return P_r;case 13:return D_r;case 14:return L_r;case 15:return R_r;case 16:return j_r;case 17:return G_r;case 18:return M_r;case 19:return B_r;case 20:return q_r;case 21:return U_r;case 22:return H_r;case 23:return X_r;case 24:return Y_r;case 25:return V_r;case 26:return z_r;case 27:return K_r;case 28:return W_r;case 29:return J_r;default:return $_r}}else switch(t[0]){case 2:return t[1][3];case 3:return t[1][2][3];case 5:var e=Te(Lhr,t[3]);return Te(Rhr,Te(t[2],e));case 9:return t[1]?jhr:Ghr;case 0:case 1:return t[2];case 6:case 7:return t[1];default:return t[3]}}function Ml(t){return u(et(d_r),t)}function aL(t,n){var e=t&&t[1],i=0;if(typeof n==\"number\")if(Pn===n)var x=u_r,c=i_r;else i=1;else switch(n[0]){case 3:var x=f_r,c=x_r;break;case 5:var x=o_r,c=a_r;break;case 6:case 9:i=1;break;case 0:case 10:var x=s_r,c=v_r;break;case 1:case 11:var x=l_r,c=b_r;break;case 2:case 8:var x=p_r,c=m_r;break;default:var x=__r,c=y_r}if(i)var x=c_r,c=Ml(oL(n));return e?Te(x,Te(h_r,c)):c}function cL(t){return 45>>0)var i=q(t);else switch(e){case 0:var i=1;break;case 1:var i=2;break;case 2:var i=0;break;default:if(G0(t,2),Ls(j(t))===0){var x=L1(j(t));if(x===0)if(Nn(j(t))===0&&Nn(j(t))===0)var c=Nn(j(t))!==0?1:0,i=c&&q(t);else var i=q(t);else if(x===1&&Nn(j(t))===0)for(;;){var s=A1(j(t));if(s!==0){var p=s!==1?1:0,i=p&&q(t);break}}else var i=q(t)}else var i=q(t)}if(2>>0)throw[0,Sn,swr];switch(i){case 0:continue;case 1:return 1;default:if(nL(br0(t)))continue;return mr0(t,1),0}}}function S9(t,n){var e=n-t[3][2]|0;return[0,hr0(t),e]}function Hl(t,n,e){var i=S9(t,e),x=S9(t,n);return[0,t[1],x,i]}function ju(t,n){return S9(t,n[6])}function h7(t,n){return S9(t,n[3])}function nt(t,n){return Hl(t,n[6],n[3])}function Xr0(t,n){var e=0;if(typeof n==\"number\")e=1;else switch(n[0]){case 2:var i=n[1][1];break;case 3:return n[1][1];case 4:var i=n[1];break;case 7:var i=n[2];break;case 5:case 8:return n[1];default:e=1}return e?nt(t,t[2]):i}function Gu(t,n,e){return[0,t[1],t[2],t[3],t[4],t[5],[0,[0,n,e],t[6]],t[7]]}function Yr0(t,n,e){return Gu(t,n,[10,Ml(e)])}function bL(t,n,e,i){return Gu(t,n,[12,e,i])}function Ei(t,n){return Gu(t,n,GDr)}function d7(t,n){var e=n[3],i=[0,hr0(t)+1|0,e];return[0,t[1],t[2],i,t[4],t[5],t[6],t[7]]}function Vr0(t){var n=un(t);return n!==0&&Xt===It(t,n-1|0)?m7(t,0,n-1|0):t}function Si(t,n,e,i,x){var c=[0,t[1],n,e],s=Mt(i),p=x?0:1;return[0,c,[0,p,s,t[7][3][1]>>0)var y=q(i);else switch(p){case 0:var y=2;break;case 1:for(;;){G0(i,3);var T=j(i);if(-1>>0)return ke(IDr);switch(y){case 0:var S=Kr0(c,e,i,2,0),M=S[1],K=Bi(Te(ADr,S[2])),V=0<=K?1:0,f0=V&&(K<=55295?1:0);if(f0)var k0=f0;else var m0=57344<=K?1:0,k0=m0&&(K<=lI?1:0);var g0=k0?zr0(c,M,K):Gu(c,M,37);S1(x,K);var c=g0;continue;case 1:var e0=Kr0(c,e,i,3,1),x0=Bi(Te(NDr,e0[2])),l=zr0(c,e0[1],x0);S1(x,x0);var c=l;continue;case 2:return[0,c,Mt(x)];default:Gl(i,x);continue}}}function Rt(t,n,e){var i=Ei(t,nt(t,n));return $v(n),o(e,i,n)}function R1(t,n,e){for(var i=t;;){gn(e);var x=j(e);if(-1>>0)var p=q(e);else switch(s){case 0:for(;;){G0(e,3);var y=j(e);if(-1>>0){var A=Ei(i,nt(i,e));return[0,A,h7(A,e)]}switch(p){case 0:var S=d7(i,e);Gl(e,n);var i=S;continue;case 1:var M=i[4]?bL(i,nt(i,e),bwr,lwr):i;return[0,M,h7(M,e)];case 2:if(i[4])return[0,i,h7(i,e)];hn(n,pwr);continue;default:Gl(e,n);continue}}}function e2(t,n,e){for(;;){gn(e);var i=j(e),x=13>>0)var c=q(e);else switch(x){case 0:var c=0;break;case 1:for(;;){G0(e,2);var s=j(e);if(-1>>0)return ke(mwr);switch(c){case 0:return[0,t,h7(t,e)];case 1:var T=h7(t,e),E=d7(t,e),d=Jm(e);return[0,E,[0,T[1],T[2]-d|0]];default:Gl(e,n);continue}}}function Jr0(t,n){function e(k0){return G0(k0,3),zu(j(k0))===0?2:q(k0)}gn(n);var i=j(n),x=uc>>0)var c=q(n);else switch(x){case 1:var c=16;break;case 2:var c=15;break;case 3:G0(n,15);var c=xi(j(n))===0?15:q(n);break;case 4:G0(n,4);var c=zu(j(n))===0?e(n):q(n);break;case 5:G0(n,11);var c=zu(j(n))===0?e(n):q(n);break;case 7:var c=5;break;case 8:var c=6;break;case 9:var c=7;break;case 10:var c=8;break;case 11:var c=9;break;case 12:G0(n,14);var s=L1(j(n));if(s===0)var c=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?12:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var c=p===1?13:q(n);break}}else var c=q(n);break;case 13:var c=10;break;case 14:G0(n,14);var c=Nn(j(n))===0&&Nn(j(n))===0?1:q(n);break;default:var c=0}if(16>>0)return ke(pDr);switch(c){case 1:var y=Se(n);return[0,t,y,[0,Bi(Te(mDr,y))],0];case 2:var T=Se(n),E=Bi(Te(_Dr,T));return N4<=E?[0,t,T,[0,E>>>3|0,48+(E&7)|0],1]:[0,t,T,[0,E],1];case 3:var d=Se(n);return[0,t,d,[0,Bi(Te(yDr,d))],1];case 4:return[0,t,hDr,[0,0],0];case 5:return[0,t,dDr,[0,8],0];case 6:return[0,t,kDr,[0,12],0];case 7:return[0,t,wDr,[0,10],0];case 8:return[0,t,EDr,[0,13],0];case 9:return[0,t,SDr,[0,9],0];case 10:return[0,t,gDr,[0,11],0];case 11:var w=Se(n);return[0,t,w,[0,Bi(Te(FDr,w))],1];case 12:var G=Se(n);return[0,t,G,[0,Bi(Te(TDr,m7(G,1,un(G)-1|0)))],0];case 13:var A=Se(n),S=Bi(Te(ODr,m7(A,2,un(A)-3|0))),M=lI>>0)var E=q(c);else switch(T){case 0:var E=3;break;case 1:for(;;){G0(c,4);var d=j(c);if(-1>>0)return ke(_wr);switch(E){case 0:var A=Se(c);if(hn(i,A),qn(n,A))return[0,s,h7(s,c),p];hn(e,A);continue;case 1:hn(i,ywr);var S=Jr0(s,c),M=S[4],K=M||p;hn(i,S[2]);var V=S[3];pz(function(w0){return S1(e,w0)},V);var s=S[1],p=K;continue;case 2:var f0=Se(c);hn(i,f0);var m0=d7(Ei(s,nt(s,c)),c);return hn(e,f0),[0,m0,h7(m0,c),p];case 3:var k0=Se(c);hn(i,k0);var g0=Ei(s,nt(s,c));return hn(e,k0),[0,g0,h7(g0,c),p];default:var e0=c[6],x0=c[3]-e0|0,l=Lt(x0*4|0),c0=Rl(c[1],e0,x0,l);sN(i,l,0,c0),sN(e,l,0,c0);continue}}}function Zr0(t,n,e,i,x){for(var c=t;;){gn(x);var s=j(x),p=96>>0)var y=q(x);else switch(p){case 0:var y=0;break;case 1:for(;;){G0(x,6);var T=j(x);if(-1>>0)return ke(hwr);switch(y){case 0:return[0,Ei(c,nt(c,x)),1];case 1:return qi(i,96),[0,c,1];case 2:return hn(i,dwr),[0,c,0];case 3:qi(e,92),qi(i,92);var A=Jr0(c,x),S=A[2];hn(e,S),hn(i,S);var M=A[3];pz(function(m0){return S1(n,m0)},M);var c=A[1];continue;case 4:hn(e,kwr),hn(i,wwr),hn(n,Ewr);var c=d7(c,x);continue;case 5:var K=Se(x);hn(e,K),hn(i,K),qi(n,10);var c=d7(c,x);continue;default:var V=Se(x);hn(e,V),hn(i,V),hn(n,V);continue}}}function Pee(t,n){function e(B0){for(;;)if(G0(B0,33),dn(j(B0))!==0)return q(B0)}function i(B0){for(;;)if(G0(B0,27),dn(j(B0))!==0)return q(B0)}function x(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),dn(j(B0))!==0)return q(B0)}return D0===1?i(B0):q(B0)}function c(B0){for(;;)if(G0(B0,27),dn(j(B0))!==0)return q(B0)}function s(B0){G0(B0,26);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,25),dn(j(B0))!==0)return q(B0)}return D0===1?c(B0):q(B0)}function p(B0){r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,28);var D0=Mc(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return c(B0);case 1:continue;case 2:continue r;default:return s(B0)}}return q(B0)}}function y(B0){G0(B0,33);var D0=Gr0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:var Le=C1(j(B0));if(Le===0)for(;;){G0(B0,28);var He=Qv(j(B0));if(2>>0)return q(B0);switch(He){case 0:return c(B0);case 1:continue;default:return s(B0)}}if(Le===1)for(;;){G0(B0,28);var he=Mc(j(B0));if(3>>0)return q(B0);switch(he){case 0:return c(B0);case 1:continue;case 2:return p(B0);default:return s(B0)}}return q(B0);case 2:for(;;){G0(B0,28);var me=Qv(j(B0));if(2>>0)return q(B0);switch(me){case 0:return i(B0);case 1:continue;default:return x(B0)}}default:for(;;){G0(B0,28);var Zn=Mc(j(B0));if(3>>0)return q(B0);switch(Zn){case 0:return i(B0);case 1:continue;case 2:return p(B0);default:return x(B0)}}}}function T(B0){G0(B0,31);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,29),dn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function E(B0){return G0(B0,3),Ur0(j(B0))===0?3:q(B0)}function d(B0){return m9(j(B0))===0&&v9(j(B0))===0&&Br0(j(B0))===0&&Ar0(j(B0))===0&&Nr0(j(B0))===0&&vL(j(B0))===0&&Bl(j(B0))===0&&m9(j(B0))===0&&Ls(j(B0))===0&&Cr0(j(B0))===0&&Ul(j(B0))===0?3:q(B0)}function w(B0){G0(B0,34);var D0=Or0(j(B0));if(3>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Ps(j(B0));if(4>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var He=Ps(j(B0));if(4>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:return y(B0);case 3:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}case 2:return y(B0);default:return T(B0)}}function G(B0){for(;;)if(G0(B0,19),dn(j(B0))!==0)return q(B0)}function A(B0){G0(B0,34);var D0=Qv(j(B0));if(2>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:for(;;){G0(B0,34);var Le=Mc(j(B0));if(3>>0)return q(B0);switch(Le){case 0:return e(B0);case 1:continue;case 2:r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var He=Mc(j(B0));if(3>>0)return q(B0);switch(He){case 0:return e(B0);case 1:continue;case 2:continue r;default:return T(B0)}}return q(B0)}default:return T(B0)}}default:return T(B0)}}function S(B0){for(;;)if(G0(B0,17),dn(j(B0))!==0)return q(B0)}function M(B0){for(;;)if(G0(B0,17),dn(j(B0))!==0)return q(B0)}function K(B0){for(;;)if(G0(B0,11),dn(j(B0))!==0)return q(B0)}function V(B0){for(;;)if(G0(B0,11),dn(j(B0))!==0)return q(B0)}function f0(B0){for(;;)if(G0(B0,15),dn(j(B0))!==0)return q(B0)}function m0(B0){for(;;)if(G0(B0,15),dn(j(B0))!==0)return q(B0)}function k0(B0){for(;;)if(G0(B0,23),dn(j(B0))!==0)return q(B0)}function g0(B0){for(;;)if(G0(B0,23),dn(j(B0))!==0)return q(B0)}function e0(B0){G0(B0,32);var D0=Bt(j(B0));if(D0===0){for(;;)if(G0(B0,30),dn(j(B0))!==0)return q(B0)}return D0===1?e(B0):q(B0)}function x0(B0){r:for(;;){if(pn(j(B0))===0)for(;;){G0(B0,34);var D0=Rr0(j(B0));if(4>>0)return q(B0);switch(D0){case 0:return e(B0);case 1:return A(B0);case 2:continue;case 3:continue r;default:return e0(B0)}}return q(B0)}}gn(n);var l=j(n),c0=ef>>0)var t0=q(n);else switch(c0){case 0:var t0=98;break;case 1:var t0=99;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var t0=q(n);break}}else var t0=q(n);break;case 3:var t0=0;break;case 4:G0(n,0);var o0=xi(j(n))!==0?1:0,t0=o0&&q(n);break;case 5:G0(n,88);var t0=Ui(j(n))===0?(G0(n,58),Ui(j(n))===0?54:q(n)):q(n);break;case 6:var t0=7;break;case 7:G0(n,95);var w0=j(n),_0=32>>0)var t0=q(n);else switch(b){case 0:G0(n,83);var t0=Ui(j(n))===0?70:q(n);break;case 1:var t0=4;break;default:var t0=69}break;case 14:G0(n,80);var R0=j(n),X=42>>0)var t0=q(n);else switch(or){case 0:var t0=e(n);break;case 1:continue;case 2:var t0=y(n);break;case 3:r:for(;;){if(pn(j(n))===0)for(;;){G0(n,34);var W0=Ps(j(n));if(4>>0)var Lr=q(n);else switch(W0){case 0:var Lr=e(n);break;case 1:continue;case 2:var Lr=y(n);break;case 3:continue r;default:var Lr=T(n)}break}else var Lr=q(n);var t0=Lr;break}break;default:var t0=T(n)}break}else var t0=q(n);break;case 18:G0(n,93);var Tr=Ir0(j(n));if(2>>0)var t0=q(n);else switch(Tr){case 0:G0(n,2);var Hr=i9(j(n));if(2
>>0)var t0=q(n);else switch(Hr){case 0:for(;;){var Or=i9(j(n));if(2>>0)var t0=q(n);else switch(Or){case 0:continue;case 1:var t0=E(n);break;default:var t0=d(n)}break}break;case 1:var t0=E(n);break;default:var t0=d(n)}break;case 1:var t0=5;break;default:var t0=92}break;case 19:G0(n,34);var fr=lL(j(n));if(8>>0)var t0=q(n);else switch(fr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,20);var Rr=Mr0(j(n));if(4>>0)var t0=q(n);else switch(Rr){case 0:var t0=G(n);break;case 1:var t0=A(n);break;case 2:continue;case 3:for(;;){G0(n,18);var Wr=u9(j(n));if(3>>0)var t0=q(n);else switch(Wr){case 0:var t0=S(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Jr=Bt(j(n));if(Jr===0){for(;;)if(G0(n,17),dn(j(n))!==0){var t0=q(n);break}}else var t0=Jr===1?S(n):q(n)}break}break;default:G0(n,19);var ar=Bt(j(n));if(ar===0){for(;;)if(G0(n,19),dn(j(n))!==0){var t0=q(n);break}}else var t0=ar===1?G(n):q(n)}break}break;case 3:for(;;){G0(n,18);var _r=u9(j(n));if(3<_r>>>0)var t0=q(n);else switch(_r){case 0:var t0=M(n);break;case 1:var t0=A(n);break;case 2:continue;default:G0(n,17);var Ir=Bt(j(n));if(Ir===0){for(;;)if(G0(n,17),dn(j(n))!==0){var t0=q(n);break}}else var t0=Ir===1?M(n):q(n)}break}break;case 4:G0(n,33);var fe=Pr0(j(n));if(fe===0)var t0=e(n);else if(fe===1)for(;;){G0(n,12);var v0=k9(j(n));if(3>>0)var t0=q(n);else switch(v0){case 0:var t0=K(n);break;case 1:continue;case 2:r:for(;;){if(Gc(j(n))===0)for(;;){G0(n,12);var P=k9(j(n));if(3

>>0)var Q=q(n);else switch(P){case 0:var Q=V(n);break;case 1:continue;case 2:continue r;default:G0(n,10);var L=Bt(j(n));if(L===0){for(;;)if(G0(n,9),dn(j(n))!==0){var Q=q(n);break}}else var Q=L===1?V(n):q(n)}break}else var Q=q(n);var t0=Q;break}break;default:G0(n,10);var i0=Bt(j(n));if(i0===0){for(;;)if(G0(n,9),dn(j(n))!==0){var t0=q(n);break}}else var t0=i0===1?K(n):q(n)}break}else var t0=q(n);break;case 5:var t0=y(n);break;case 6:G0(n,33);var l0=Dr0(j(n));if(l0===0)var t0=e(n);else if(l0===1)for(;;){G0(n,16);var S0=h9(j(n));if(3>>0)var t0=q(n);else switch(S0){case 0:var t0=f0(n);break;case 1:continue;case 2:r:for(;;){if(zu(j(n))===0)for(;;){G0(n,16);var T0=h9(j(n));if(3>>0)var L0=q(n);else switch(T0){case 0:var L0=m0(n);break;case 1:continue;case 2:continue r;default:G0(n,14);var rr=Bt(j(n));if(rr===0){for(;;)if(G0(n,13),dn(j(n))!==0){var L0=q(n);break}}else var L0=rr===1?m0(n):q(n)}break}else var L0=q(n);var t0=L0;break}break;default:G0(n,14);var B=Bt(j(n));if(B===0){for(;;)if(G0(n,13),dn(j(n))!==0){var t0=q(n);break}}else var t0=B===1?f0(n):q(n)}break}else var t0=q(n);break;case 7:G0(n,33);var Z=Er0(j(n));if(Z===0)var t0=e(n);else if(Z===1)for(;;){G0(n,24);var p0=w9(j(n));if(3>>0)var t0=q(n);else switch(p0){case 0:var t0=k0(n);break;case 1:continue;case 2:r:for(;;){if(Nn(j(n))===0)for(;;){G0(n,24);var b0=w9(j(n));if(3>>0)var M0=q(n);else switch(b0){case 0:var M0=g0(n);break;case 1:continue;case 2:continue r;default:G0(n,22);var O0=Bt(j(n));if(O0===0){for(;;)if(G0(n,21),dn(j(n))!==0){var M0=q(n);break}}else var M0=O0===1?g0(n):q(n)}break}else var M0=q(n);var t0=M0;break}break;default:G0(n,22);var er=Bt(j(n));if(er===0){for(;;)if(G0(n,21),dn(j(n))!==0){var t0=q(n);break}}else var t0=er===1?k0(n):q(n)}break}else var t0=q(n);break;default:var t0=e0(n)}break;case 20:G0(n,34);var yr=o9(j(n));if(5>>0)var t0=q(n);else switch(yr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:for(;;){G0(n,34);var vr=o9(j(n));if(5>>0)var t0=q(n);else switch(vr){case 0:var t0=e(n);break;case 1:var t0=w(n);break;case 2:continue;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break}break;case 3:var t0=y(n);break;case 4:var t0=x0(n);break;default:var t0=e0(n)}break;case 21:var t0=46;break;case 22:var t0=44;break;case 23:G0(n,78);var $0=j(n),Er=59<$0?61<$0?-1:Vr(rN,$0-60|0)-1|0:-1,t0=Er===0?(G0(n,62),Ui(j(n))===0?61:q(n)):Er===1?55:q(n);break;case 24:G0(n,90);var Mr=sL(j(n)),t0=Mr===0?(G0(n,57),Ui(j(n))===0?53:q(n)):Mr===1?91:q(n);break;case 25:G0(n,79);var Br=sL(j(n));if(Br===0)var t0=56;else if(Br===1){G0(n,66);var qr=sL(j(n)),t0=qr===0?63:qr===1?(G0(n,65),Ui(j(n))===0?64:q(n)):q(n)}else var t0=q(n);break;case 26:G0(n,50);var jr=j(n),$r=45>>0)return ke(vPr);var I=t0;if(50<=I)switch(I){case 50:return[0,t,85];case 51:return[0,t,88];case 52:return[0,t,87];case 53:return[0,t,94];case 54:return[0,t,95];case 55:return[0,t,96];case 56:return[0,t,97];case 57:return[0,t,92];case 58:return[0,t,93];case 59:return[0,t,cf];case 60:return[0,t,T7];case 61:return[0,t,69];case 62:return[0,t,ti];case 63:return[0,t,68];case 64:return[0,t,67];case 65:return[0,t,Ri];case 66:return[0,t,R7];case 67:return[0,t,78];case 68:return[0,t,77];case 69:return[0,t,75];case 70:return[0,t,76];case 71:return[0,t,73];case 72:return[0,t,72];case 73:return[0,t,71];case 74:return[0,t,70];case 75:return[0,t,79];case 76:return[0,t,80];case 77:return[0,t,81];case 78:return[0,t,98];case 79:return[0,t,99];case 80:return[0,t,s7];case 81:return[0,t,L7];case 82:return[0,t,Yt];case 83:return[0,t,Zc];case 84:return[0,t,is];case 85:return[0,t,89];case 86:return[0,t,91];case 87:return[0,t,90];case 88:return[0,t,Fv];case 89:return[0,t,Xt];case 90:return[0,t,82];case 91:return[0,t,11];case 92:return[0,t,74];case 93:return[0,t,j7];case 94:return[0,t,13];case 95:return[0,t,14];case 96:return[2,Ei(t,nt(t,n))];case 97:var U=n[6];Hr0(n);var Y=Hl(t,U,n[3]);tL(n,U);var y0=Ll(n),P0=Wr0(t,y0),I0=P0[2],D=Ee(I0,yPr);if(0<=D){if(!(0>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Gc(j(D0))===0)for(;;){var He=n9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,0,Se(D0)]]:ke(sPr)});case 10:return[0,t,[1,0,Se(n)]];case 11:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&c9(j(D0))===0&&Gc(j(D0))===0)for(;;){G0(D0,0);var Le=e9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Gc(j(D0))===0)for(;;){G0(D0,0);var He=e9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,0,Se(D0)]]:ke(cPr)});case 12:return[0,t,[0,0,Se(n)]];case 13:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){var Le=a9(j(D0));if(2>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(zu(j(D0))===0)for(;;){var He=a9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,1,Se(D0)]]:ke(aPr)});case 14:return[0,t,[1,1,Se(n)]];case 15:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&b9(j(D0))===0&&zu(j(D0))===0)for(;;){G0(D0,0);var Le=x9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(zu(j(D0))===0)for(;;){G0(D0,0);var He=x9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,3,Se(D0)]]:ke(oPr)});case 16:return[0,t,[0,3,Se(n)]];case 17:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0)for(;;){var Le=j(D0),He=47>>0)var me=q(D0);else switch(Le){case 0:continue;case 1:r:for(;;){if(Nn(j(D0))===0)for(;;){var He=t9(j(D0));if(2>>0)var he=q(D0);else switch(He){case 0:continue;case 1:continue r;default:var he=0}break}else var he=q(D0);var me=he;break}break;default:var me=0}break}else var me=q(D0);return me===0?[0,B0,[1,2,Se(D0)]]:ke(iPr)});case 23:return Rt(t,n,function(B0,D0){if(gn(D0),Cs(j(D0))===0&&Zm(j(D0))===0&&Nn(j(D0))===0)for(;;){G0(D0,0);var Le=_9(j(D0));if(Le!==0){if(Le===1)r:for(;;){if(Nn(j(D0))===0)for(;;){G0(D0,0);var He=_9(j(D0));if(He!==0){if(He===1)continue r;var he=q(D0);break}}else var he=q(D0);var me=he;break}else var me=q(D0);break}}else var me=q(D0);return me===0?[0,B0,[0,4,Se(D0)]]:ke(uPr)});case 25:return Rt(t,n,function(B0,D0){function Le(ln){for(;;){var it=wi(j(ln));if(2>>0)return q(ln);switch(it){case 0:continue;case 1:r:for(;;){if(pn(j(ln))===0)for(;;){var Tt=wi(j(ln));if(2>>0)return q(ln);switch(Tt){case 0:continue;case 1:continue r;default:return 0}}return q(ln)}default:return 0}}}function He(ln){for(;;){var it=r2(j(ln));if(it!==0){var Tt=it!==1?1:0;return Tt&&q(ln)}}}function he(ln){var it=E9(j(ln));if(2>>0)return q(ln);switch(it){case 0:var Tt=C1(j(ln));return Tt===0?He(ln):Tt===1?Le(ln):q(ln);case 1:return He(ln);default:return Le(ln)}}function me(ln){var it=p9(j(ln));if(it===0)for(;;){var Tt=f7(j(ln));if(2>>0)return q(ln);switch(Tt){case 0:continue;case 1:return he(ln);default:r:for(;;){if(pn(j(ln))===0)for(;;){var Ti=f7(j(ln));if(2>>0)return q(ln);switch(Ti){case 0:continue;case 1:return he(ln);default:continue r}}return q(ln)}}}return it===1?he(ln):q(ln)}gn(D0);var Zn=Qm(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:if(pn(j(D0))===0)for(;;){var ft=f7(j(D0));if(2>>0)var wn=q(D0);else switch(ft){case 0:continue;case 1:var wn=he(D0);break;default:r:for(;;){if(pn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var jn=q(D0);else switch(xt){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var wn=jn;break}}break}else var wn=q(D0);break;case 1:var ut=r9(j(D0)),wn=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var dt=l9(j(D0));if(2

>>0)var wn=q(D0);else switch(dt){case 0:var wn=me(D0);break;case 1:continue;default:var wn=he(D0)}break}}if(wn===0){var xn=Gu(B0,nt(B0,D0),23);return[0,xn,[1,2,Se(D0)]]}return ke(tPr)});case 26:var Bu=Gu(t,nt(t,n),23);return[0,Bu,[1,2,Se(n)]];case 27:return Rt(t,n,function(B0,D0){function Le(xn){for(;;){G0(xn,0);var ln=Ds(j(xn));if(ln!==0){if(ln===1)r:for(;;){if(pn(j(xn))===0)for(;;){G0(xn,0);var it=Ds(j(xn));if(it!==0){if(it===1)continue r;return q(xn)}}return q(xn)}return q(xn)}}}function He(xn){for(;;)if(G0(xn,0),pn(j(xn))!==0)return q(xn)}function he(xn){var ln=E9(j(xn));if(2>>0)return q(xn);switch(ln){case 0:var it=C1(j(xn));return it===0?He(xn):it===1?Le(xn):q(xn);case 1:return He(xn);default:return Le(xn)}}function me(xn){var ln=p9(j(xn));if(ln===0)for(;;){var it=f7(j(xn));if(2>>0)return q(xn);switch(it){case 0:continue;case 1:return he(xn);default:r:for(;;){if(pn(j(xn))===0)for(;;){var Tt=f7(j(xn));if(2>>0)return q(xn);switch(Tt){case 0:continue;case 1:return he(xn);default:continue r}}return q(xn)}}}return ln===1?he(xn):q(xn)}gn(D0);var Zn=Qm(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:if(pn(j(D0))===0)for(;;){var ft=f7(j(D0));if(2>>0)var wn=q(D0);else switch(ft){case 0:continue;case 1:var wn=he(D0);break;default:r:for(;;){if(pn(j(D0))===0)for(;;){var xt=f7(j(D0));if(2>>0)var jn=q(D0);else switch(xt){case 0:continue;case 1:var jn=he(D0);break;default:continue r}break}else var jn=q(D0);var wn=jn;break}}break}else var wn=q(D0);break;case 1:var ut=r9(j(D0)),wn=ut===0?me(D0):ut===1?he(D0):q(D0);break;default:for(;;){var dt=l9(j(D0));if(2
>>0)var wn=q(D0);else switch(dt){case 0:var wn=me(D0);break;case 1:continue;default:var wn=he(D0)}break}}return wn===0?[0,B0,[0,4,Se(D0)]]:ke(nPr)});case 29:return Rt(t,n,function(B0,D0){function Le(ut){for(;;){var dt=wi(j(ut));if(2
>>0)return q(ut);switch(dt){case 0:continue;case 1:r:for(;;){if(pn(j(ut))===0)for(;;){var xn=wi(j(ut));if(2>>0)return q(ut);switch(xn){case 0:continue;case 1:continue r;default:return 0}}return q(ut)}default:return 0}}}function He(ut){var dt=r2(j(ut));if(dt===0)return Le(ut);var xn=dt!==1?1:0;return xn&&q(ut)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=pn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){var Zn=D1(j(D0));if(Zn===0)var me=He(D0);else{if(Zn===1)continue;var me=q(D0)}break}break;default:for(;;){var wn=Bc(j(D0));if(2>>0)var me=q(D0);else switch(wn){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(pn(j(D0))===0)for(;;){var ft=Bc(j(D0));if(2>>0)var xt=q(D0);else switch(ft){case 0:var xt=He(D0);break;case 1:continue;default:continue r}break}else var xt=q(D0);var me=xt;break}}break}}if(me===0){var jn=Gu(B0,nt(B0,D0),22);return[0,jn,[1,2,Se(D0)]]}return ke(ePr)});case 30:return Rt(t,n,function(B0,D0){gn(D0);var Le=C1(j(D0));if(Le===0)for(;;){var He=r2(j(D0));if(He!==0){var he=He!==1?1:0,ft=he&&q(D0);break}}else if(Le===1)for(;;){var me=wi(j(D0));if(2>>0)var ft=q(D0);else switch(me){case 0:continue;case 1:r:for(;;){if(pn(j(D0))===0)for(;;){var Zn=wi(j(D0));if(2>>0)var wn=q(D0);else switch(Zn){case 0:continue;case 1:continue r;default:var wn=0}break}else var wn=q(D0);var ft=wn;break}break;default:var ft=0}break}else var ft=q(D0);return ft===0?[0,B0,[1,2,Se(D0)]]:ke(rPr)});case 31:var K7=Gu(t,nt(t,n),22);return[0,K7,[1,2,Se(n)]];case 33:return Rt(t,n,function(B0,D0){function Le(jn){for(;;){G0(jn,0);var ut=Ds(j(jn));if(ut!==0){if(ut===1)r:for(;;){if(pn(j(jn))===0)for(;;){G0(jn,0);var dt=Ds(j(jn));if(dt!==0){if(dt===1)continue r;return q(jn)}}return q(jn)}return q(jn)}}}function He(jn){return G0(jn,0),pn(j(jn))===0?Le(jn):q(jn)}gn(D0);var he=Qm(j(D0));if(2>>0)var me=q(D0);else switch(he){case 0:var me=pn(j(D0))===0?Le(D0):q(D0);break;case 1:for(;;){G0(D0,0);var Zn=D1(j(D0));if(Zn===0)var me=He(D0);else{if(Zn===1)continue;var me=q(D0)}break}break;default:for(;;){G0(D0,0);var wn=Bc(j(D0));if(2>>0)var me=q(D0);else switch(wn){case 0:var me=He(D0);break;case 1:continue;default:r:for(;;){if(pn(j(D0))===0)for(;;){G0(D0,0);var ft=Bc(j(D0));if(2>>0)var xt=q(D0);else switch(ft){case 0:var xt=He(D0);break;case 1:continue;default:continue r}break}else var xt=q(D0);var me=xt;break}}break}}return me===0?[0,B0,[0,4,Se(D0)]]:ke(QCr)});case 35:var Yi=nt(t,n),a7=Se(n);return[0,t,[4,Yi,a7,a7]];case 36:return[0,t,0];case 37:return[0,t,1];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,6];case 41:return[0,t,7];case 42:return[0,t,12];case 43:return[0,t,10];case 44:return[0,t,8];case 45:return[0,t,9];case 46:return[0,t,86];case 47:$v(n),gn(n);var Hc=j(n),W7=62>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=6;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;default:G0(n,5);var c=d9(j(n)),x=c===0?4:c===1?3:q(n)}if(6>>0)return ke(ZCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var s=ju(t,n),p=$n(zn),y=e2(t,p,n),T=y[1];return[1,T,Si(T,s,y[2],p,0)];case 4:var E=ju(t,n),d=$n(zn),w=R1(t,d,n),G=w[1];return[1,G,Si(G,E,w[2],d,1)];case 5:var A=ju(t,n),S=$n(zn),M=t;r:for(;;){gn(n);var K=j(n),V=92>>0)var f0=q(n);else switch(V){case 0:var f0=0;break;case 1:for(;;){G0(n,7);var m0=j(n);if(-1>>0)var f0=q(n);else switch(l){case 0:var f0=2;break;case 1:var f0=1;break;default:G0(n,1);var f0=xi(j(n))===0?1:q(n)}}if(7>>0)var c0=ke(Fwr);else switch(f0){case 0:var c0=[0,Gu(M,nt(M,n),25),Twr];break;case 1:var c0=[0,d7(Gu(M,nt(M,n),25),n),Owr];break;case 3:var t0=Se(n),c0=[0,M,m7(t0,1,un(t0)-1|0)];break;case 4:var c0=[0,M,Iwr];break;case 5:for(qi(S,91);;){gn(n);var o0=j(n),w0=93>>0)var _0=q(n);else switch(w0){case 0:var _0=0;break;case 1:for(;;){G0(n,4);var E0=j(n);if(-1>>0)var s0=ke(Swr);else switch(_0){case 0:var s0=M;break;case 1:hn(S,gwr);continue;case 2:qi(S,92),qi(S,93);continue;case 3:qi(S,93);var s0=M;break;default:hn(S,Se(n));continue}var M=s0;continue r}case 6:var c0=[0,d7(Gu(M,nt(M,n),25),n),Awr];break;default:hn(S,Se(n));continue}var hr=c0[1],Ar=h7(hr,n),or=[0,hr[1],A,Ar],W0=c0[2];return[0,hr,[5,or,Mt(S),W0]]}default:var Lr=Ei(t,nt(t,n));return[0,Lr,[6,Se(n)]]}}function pL(t,n,e,i,x){for(var c=t;;){var s=function(Cn){for(;;)if(G0(Cn,6),Fr0(j(Cn))!==0)return q(Cn)};gn(x);var p=j(x),y=br>>0)var T=q(x);else switch(y){case 0:var T=1;break;case 1:var T=s(x);break;case 2:var T=2;break;case 3:G0(x,2);var T=xi(j(x))===0?2:q(x);break;case 4:var T=0;break;case 5:G0(x,6);var E=j(x),d=34>>0)return ke(Nwr);switch(T){case 0:var c0=Se(x),t0=0;switch(n){case 0:n0(c0,Cwr)||(t0=1);break;case 1:n0(c0,Pwr)||(t0=1);break;default:var o0=0;if(n0(c0,Dwr)){if(!n0(c0,Lwr))return bL(c,nt(c,x),qwr,Bwr);if(n0(c0,Rwr)){if(!n0(c0,jwr))return bL(c,nt(c,x),Mwr,Gwr);o0=1}}if(!o0)return $v(x),c}if(t0)return c;hn(i,c0),hn(e,c0);continue;case 1:return Ei(c,nt(c,x));case 2:var w0=Se(x);hn(i,w0),hn(e,w0);var c=d7(c,x);continue;case 3:var _0=Se(x),E0=m7(_0,3,un(_0)-4|0);hn(i,_0),S1(e,Bi(Te(Uwr,E0)));continue;case 4:var U0=Se(x),b=m7(U0,2,un(U0)-3|0);hn(i,U0),S1(e,Bi(b));continue;case 5:var R0=Se(x),X=m7(R0,1,un(R0)-2|0);hn(i,R0);var s0=Ee(X,Hwr),hr=0;if(0<=s0)if(0>>0)var x=q(n);else switch(i){case 0:var x=0;break;case 1:var x=14;break;case 2:if(G0(n,2),jc(j(n))===0){for(;;)if(G0(n,2),jc(j(n))!==0){var x=q(n);break}}else var x=q(n);break;case 3:var x=1;break;case 4:G0(n,1);var x=xi(j(n))===0?1:q(n);break;case 5:var x=12;break;case 6:var x=13;break;case 7:var x=10;break;case 8:G0(n,6);var c=d9(j(n)),x=c===0?4:c===1?3:q(n);break;case 9:var x=9;break;case 10:var x=5;break;case 11:var x=11;break;case 12:var x=7;break;case 13:if(G0(n,14),Ls(j(n))===0){var s=L1(j(n));if(s===0)var x=Nn(j(n))===0&&Nn(j(n))===0&&Nn(j(n))===0?13:q(n);else if(s===1&&Nn(j(n))===0)for(;;){var p=A1(j(n));if(p!==0){var x=p===1?13:q(n);break}}else var x=q(n)}else var x=q(n);break;default:var x=8}if(14>>0)return ke(JCr);switch(x){case 0:return[0,t,Pn];case 1:return[2,d7(t,n)];case 2:return[2,t];case 3:var y=ju(t,n),T=$n(zn),E=e2(t,T,n),d=E[1];return[1,d,Si(d,y,E[2],T,0)];case 4:var w=ju(t,n),G=$n(zn),A=R1(t,G,n),S=A[1];return[1,S,Si(S,w,A[2],G,1)];case 5:return[0,t,98];case 6:return[0,t,j7];case 7:return[0,t,99];case 8:return[0,t,0];case 9:return[0,t,86];case 10:return[0,t,10];case 11:return[0,t,82];case 12:var M=Se(n),K=ju(t,n),V=$n(zn),f0=$n(zn);hn(f0,M);var m0=qn(M,$Cr)?0:1,k0=pL(t,m0,V,f0,n),g0=h7(k0,n);hn(f0,M);var e0=Mt(V),x0=Mt(f0);return[0,k0,[8,[0,k0[1],K,g0],e0,x0]];case 13:for(var l=n[6];;){gn(n);var c0=j(n),t0=In>>0)var o0=q(n);else switch(t0){case 0:var o0=1;break;case 1:var o0=2;break;case 2:var o0=0;break;default:if(G0(n,2),Ls(j(n))===0){var w0=L1(j(n));if(w0===0)if(Nn(j(n))===0&&Nn(j(n))===0)var _0=Nn(j(n))!==0?1:0,o0=_0&&q(n);else var o0=q(n);else if(w0===1&&Nn(j(n))===0)for(;;){var E0=A1(j(n));if(E0!==0){var U0=E0!==1?1:0,o0=U0&&q(n);break}}else var o0=q(n)}else var o0=q(n)}if(2>>0)throw[0,Sn,vwr];switch(o0){case 0:continue;case 1:break;default:if(nL(br0(n)))continue;mr0(n,1)}var b=n[3];tL(n,l);var R0=Ll(n),X=Hl(t,l,b);return[0,t,[7,uL(R0),X]]}default:return[0,t,[6,Se(n)]]}}function Ree(t,n){gn(n);var e=j(n);if(-1>>0)var E=q(n);else switch(T){case 0:var E=5;break;case 1:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var E=q(n);break}}else var E=q(n);break;case 2:var E=0;break;case 3:G0(n,0);var d=xi(j(n))!==0?1:0,E=d&&q(n);break;case 4:G0(n,5);var w=d9(j(n)),E=w===0?3:w===1?2:q(n);break;default:var E=4}if(5>>0)return ke(zCr);switch(E){case 0:return[2,d7(t,n)];case 1:return[2,t];case 2:var G=ju(t,n),A=$n(zn),S=e2(t,A,n),M=S[1];return[1,M,Si(M,G,S[2],A,0)];case 3:var K=ju(t,n),V=$n(zn),f0=R1(t,V,n),m0=f0[1];return[1,m0,Si(m0,K,f0[2],V,1)];case 4:var k0=ju(t,n),g0=$n(zn),e0=$n(zn),x0=$n(zn);hn(x0,KCr);var l=Zr0(t,g0,e0,x0,n),c0=l[1],t0=h7(c0,n),o0=[0,c0[1],k0,t0],w0=l[2],_0=Mt(x0),E0=Mt(e0);return[0,c0,[3,[0,o0,[0,Mt(g0),E0,_0],w0]]];default:var U0=Ei(t,nt(t,n));return[0,U0,[3,[0,nt(U0,n),WCr,1]]]}}function jee(t,n){function e(D){for(;;)if(G0(D,29),dn(j(D))!==0)return q(D)}function i(D){G0(D,27);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,25),dn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function x(D){for(;;)if(G0(D,23),dn(j(D))!==0)return q(D)}function c(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),dn(j(D))!==0)return q(D)}return u0===1?x(D):q(D)}function s(D){for(;;)if(G0(D,23),dn(j(D))!==0)return q(D)}function p(D){G0(D,22);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,21),dn(j(D))!==0)return q(D)}return u0===1?s(D):q(D)}function y(D){r:for(;;){if(pn(j(D))===0)for(;;){G0(D,24);var u0=Mc(j(D));if(3>>0)return q(D);switch(u0){case 0:return s(D);case 1:continue;case 2:continue r;default:return p(D)}}return q(D)}}function T(D){G0(D,29);var u0=Gr0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:var X0=C1(j(D));if(X0===0)for(;;){G0(D,24);var J0=Qv(j(D));if(2>>0)return q(D);switch(J0){case 0:return s(D);case 1:continue;default:return p(D)}}if(X0===1)for(;;){G0(D,24);var ir=Mc(j(D));if(3>>0)return q(D);switch(ir){case 0:return s(D);case 1:continue;case 2:return y(D);default:return p(D)}}return q(D);case 2:for(;;){G0(D,24);var Q0=Qv(j(D));if(2>>0)return q(D);switch(Q0){case 0:return x(D);case 1:continue;default:return c(D)}}default:for(;;){G0(D,24);var F0=Mc(j(D));if(3>>0)return q(D);switch(F0){case 0:return x(D);case 1:continue;case 2:return y(D);default:return c(D)}}}}function E(D){for(;;){G0(D,30);var u0=Ps(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var X0=Ps(j(D));if(4>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}}function d(D){return pn(j(D))===0?E(D):q(D)}function w(D){for(;;)if(G0(D,19),dn(j(D))!==0)return q(D)}function G(D){for(;;)if(G0(D,19),dn(j(D))!==0)return q(D)}function A(D){G0(D,29);var u0=Er0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,20);var X0=w9(j(D));if(3>>0)return q(D);switch(X0){case 0:return G(D);case 1:continue;case 2:r:for(;;){if(Nn(j(D))===0)for(;;){G0(D,20);var J0=w9(j(D));if(3>>0)return q(D);switch(J0){case 0:return w(D);case 1:continue;case 2:continue r;default:G0(D,18);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,17),dn(j(D))!==0)return q(D)}return ir===1?w(D):q(D)}}return q(D)}default:G0(D,18);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,17),dn(j(D))!==0)return q(D)}return Q0===1?G(D):q(D)}}return q(D)}function S(D){for(;;)if(G0(D,13),dn(j(D))!==0)return q(D)}function M(D){for(;;)if(G0(D,13),dn(j(D))!==0)return q(D)}function K(D){G0(D,29);var u0=Dr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,14);var X0=h9(j(D));if(3>>0)return q(D);switch(X0){case 0:return M(D);case 1:continue;case 2:r:for(;;){if(zu(j(D))===0)for(;;){G0(D,14);var J0=h9(j(D));if(3>>0)return q(D);switch(J0){case 0:return S(D);case 1:continue;case 2:continue r;default:G0(D,12);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,11),dn(j(D))!==0)return q(D)}return ir===1?S(D):q(D)}}return q(D)}default:G0(D,12);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,11),dn(j(D))!==0)return q(D)}return Q0===1?M(D):q(D)}}return q(D)}function V(D){for(;;)if(G0(D,9),dn(j(D))!==0)return q(D)}function f0(D){for(;;)if(G0(D,9),dn(j(D))!==0)return q(D)}function m0(D){G0(D,29);var u0=Pr0(j(D));if(u0===0)return e(D);if(u0===1)for(;;){G0(D,10);var X0=k9(j(D));if(3>>0)return q(D);switch(X0){case 0:return f0(D);case 1:continue;case 2:r:for(;;){if(Gc(j(D))===0)for(;;){G0(D,10);var J0=k9(j(D));if(3>>0)return q(D);switch(J0){case 0:return V(D);case 1:continue;case 2:continue r;default:G0(D,8);var ir=Bt(j(D));if(ir===0){for(;;)if(G0(D,7),dn(j(D))!==0)return q(D)}return ir===1?V(D):q(D)}}return q(D)}default:G0(D,8);var Q0=Bt(j(D));if(Q0===0){for(;;)if(G0(D,7),dn(j(D))!==0)return q(D)}return Q0===1?f0(D):q(D)}}return q(D)}function k0(D){G0(D,28);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,26),dn(j(D))!==0)return q(D)}return u0===1?e(D):q(D)}function g0(D){G0(D,30);var u0=Qv(j(D));if(2>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var X0=Mc(j(D));if(3>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var J0=Mc(j(D));if(3>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:continue r;default:return i(D)}}return q(D)}default:return i(D)}}default:return i(D)}}function e0(D){for(;;){G0(D,30);var u0=u9(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;default:return k0(D)}}}function x0(D){for(;;)if(G0(D,15),dn(j(D))!==0)return q(D)}function l(D){G0(D,15);var u0=Bt(j(D));if(u0===0){for(;;)if(G0(D,15),dn(j(D))!==0)return q(D)}return u0===1?x0(D):q(D)}function c0(D){for(;;){G0(D,16);var u0=Mr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return x0(D);case 1:return g0(D);case 2:continue;case 3:for(;;){G0(D,15);var X0=u9(j(D));if(3>>0)return q(D);switch(X0){case 0:return x0(D);case 1:return g0(D);case 2:continue;default:return l(D)}}default:return l(D)}}}function t0(D){G0(D,30);var u0=Or0(j(D));if(3>>0)return q(D);switch(u0){case 0:return e(D);case 1:for(;;){G0(D,30);var X0=Ps(j(D));if(4>>0)return q(D);switch(X0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var J0=Ps(j(D));if(4>>0)return q(D);switch(J0){case 0:return e(D);case 1:continue;case 2:return T(D);case 3:continue r;default:return i(D)}}return q(D)}default:return i(D)}}case 2:return T(D);default:return i(D)}}function o0(D){G0(D,30);var u0=lL(j(D));if(8>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:return c0(D);case 3:return e0(D);case 4:return m0(D);case 5:return T(D);case 6:return K(D);case 7:return A(D);default:return k0(D)}}function w0(D){r:for(;;){if(pn(j(D))===0)for(;;){G0(D,30);var u0=Rr0(j(D));if(4>>0)return q(D);switch(u0){case 0:return e(D);case 1:return g0(D);case 2:continue;case 3:continue r;default:return k0(D)}}return q(D)}}function _0(D){for(;;){G0(D,30);var u0=o9(j(D));if(5>>0)return q(D);switch(u0){case 0:return e(D);case 1:return t0(D);case 2:continue;case 3:return T(D);case 4:return w0(D);default:return k0(D)}}}function E0(D){return G0(D,3),Ur0(j(D))===0?3:q(D)}function U0(D){return m9(j(D))===0&&v9(j(D))===0&&Br0(j(D))===0&&Ar0(j(D))===0&&Nr0(j(D))===0&&vL(j(D))===0&&Bl(j(D))===0&&m9(j(D))===0&&Ls(j(D))===0&&Cr0(j(D))===0&&Ul(j(D))===0?3:q(D)}gn(n);var b=j(n),R0=ef>>0)var X=q(n);else switch(R0){case 0:var X=62;break;case 1:var X=63;break;case 2:if(G0(n,1),jc(j(n))===0){for(;;)if(G0(n,1),jc(j(n))!==0){var X=q(n);break}}else var X=q(n);break;case 3:var X=0;break;case 4:G0(n,0);var s0=xi(j(n))!==0?1:0,X=s0&&q(n);break;case 5:var X=6;break;case 6:var X=61;break;case 7:if(G0(n,63),Bl(j(n))===0){var hr=j(n),Ar=s7>>0)var X=q(n);else switch(Lr){case 0:for(;;){var Tr=ql(j(n));if(3>>0)var X=q(n);else switch(Tr){case 0:continue;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break}break;case 1:var X=d(n);break;case 2:var X=o0(n);break;default:var X=_0(n)}break;case 15:G0(n,41);var Hr=D1(j(n)),X=Hr===0?cL(j(n))===0?40:q(n):Hr===1?E(n):q(n);break;case 16:G0(n,63);var Or=d9(j(n));if(Or===0){G0(n,2);var fr=i9(j(n));if(2>>0)var X=q(n);else switch(fr){case 0:for(;;){var Rr=i9(j(n));if(2>>0)var X=q(n);else switch(Rr){case 0:continue;case 1:var X=E0(n);break;default:var X=U0(n)}break}break;case 1:var X=E0(n);break;default:var X=U0(n)}}else var X=Or===1?5:q(n);break;case 17:G0(n,30);var Wr=lL(j(n));if(8>>0)var X=q(n);else switch(Wr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=c0(n);break;case 3:var X=e0(n);break;case 4:var X=m0(n);break;case 5:var X=T(n);break;case 6:var X=K(n);break;case 7:var X=A(n);break;default:var X=k0(n)}break;case 18:G0(n,30);var Jr=o9(j(n));if(5>>0)var X=q(n);else switch(Jr){case 0:var X=e(n);break;case 1:var X=t0(n);break;case 2:var X=_0(n);break;case 3:var X=T(n);break;case 4:var X=w0(n);break;default:var X=k0(n)}break;case 19:var X=44;break;case 20:var X=42;break;case 21:var X=49;break;case 22:G0(n,51);var ar=j(n),_r=61>>0)return ke(SCr);var i0=X;if(32<=i0)switch(i0){case 34:return[0,t,0];case 35:return[0,t,1];case 36:return[0,t,2];case 37:return[0,t,3];case 38:return[0,t,4];case 39:return[0,t,5];case 40:return[0,t,12];case 41:return[0,t,10];case 42:return[0,t,8];case 43:return[0,t,9];case 45:return[0,t,83];case 49:return[0,t,98];case 50:return[0,t,99];case 53:return[0,t,Yt];case 55:return[0,t,89];case 56:return[0,t,91];case 57:return[0,t,11];case 59:return[0,t,s7];case 60:return[0,t,L7];case 61:var l0=n[6];Hr0(n);var S0=Hl(t,l0,n[3]);tL(n,l0);var T0=Ll(n),rr=Wr0(t,T0),L0=rr[2],B=rr[1],Z=Ee(L0,OCr);if(0<=Z){if(!(0>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Gc(j(F0))===0)for(;;){var mr=n9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(0,Se(u0))]:ke(ECr)});case 8:return[0,t,Hi(0,Se(n))];case 9:return Rt(t,n,function(D,u0){function X0(F0){if(c9(j(F0))===0){if(Gc(j(F0))===0)for(;;){G0(F0,0);var Sr=e9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Gc(j(F0))===0)for(;;){G0(F0,0);var mr=e9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(0,Se(u0))]:ke(wCr)});case 10:return[0,t,qc(0,Se(n))];case 11:return Rt(t,n,function(D,u0){function X0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){var Sr=a9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(zu(j(F0))===0)for(;;){var mr=a9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(1,Se(u0))]:ke(kCr)});case 12:return[0,t,Hi(1,Se(n))];case 13:return Rt(t,n,function(D,u0){function X0(F0){if(b9(j(F0))===0){if(zu(j(F0))===0)for(;;){G0(F0,0);var Sr=x9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(zu(j(F0))===0)for(;;){G0(F0,0);var mr=x9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(3,Se(u0))]:ke(dCr)});case 14:return[0,t,qc(3,Se(n))];case 15:return Rt(t,n,function(D,u0){function X0(F0){if(zu(j(F0))===0){for(;;)if(G0(F0,0),zu(j(F0))!==0)return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(1,Se(u0))]:ke(hCr)});case 16:return[0,t,qc(1,Se(n))];case 17:return Rt(t,n,function(D,u0){function X0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){var Sr=t9(j(F0));if(2>>0)return q(F0);switch(Sr){case 0:continue;case 1:r:for(;;){if(Nn(j(F0))===0)for(;;){var mr=t9(j(F0));if(2>>0)return q(F0);switch(mr){case 0:continue;case 1:continue r;default:return 0}}return q(F0)}default:return 0}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,Hi(2,Se(u0))]:ke(yCr)});case 19:return Rt(t,n,function(D,u0){function X0(F0){if(Zm(j(F0))===0){if(Nn(j(F0))===0)for(;;){G0(F0,0);var Sr=_9(j(F0));if(Sr!==0){if(Sr===1)r:for(;;){if(Nn(j(F0))===0)for(;;){G0(F0,0);var mr=_9(j(F0));if(mr!==0){if(mr===1)continue r;return q(F0)}}return q(F0)}return q(F0)}}return q(F0)}return q(F0)}gn(u0);var J0=P1(j(u0));if(J0===0)for(;;){var ir=N1(j(u0));if(ir!==0){var Q0=ir===1?X0(u0):q(u0);break}}else var Q0=J0===1?X0(u0):q(u0);return Q0===0?[0,D,qc(4,Se(u0))]:ke(_Cr)});case 21:return Rt(t,n,function(D,u0){function X0(h0){for(;;){var Kr=wi(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:r:for(;;){if(pn(j(h0))===0)for(;;){var re=wi(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:continue r;default:return 0}}return q(h0)}default:return 0}}}function J0(h0){for(;;){var Kr=r2(j(h0));if(Kr!==0){var re=Kr!==1?1:0;return re&&q(h0)}}}function ir(h0){var Kr=E9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:var re=C1(j(h0));return re===0?J0(h0):re===1?X0(h0):q(h0);case 1:return J0(h0);default:return X0(h0)}}function Q0(h0){if(pn(j(h0))===0)for(;;){var Kr=f7(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(pn(j(h0))===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return q(h0)}function F0(h0){var Kr=p9(j(h0));if(Kr===0)for(;;){var re=f7(j(h0));if(2>>0)return q(h0);switch(re){case 0:continue;case 1:return ir(h0);default:r:for(;;){if(pn(j(h0))===0)for(;;){var xe=f7(j(h0));if(2>>0)return q(h0);switch(xe){case 0:continue;case 1:return ir(h0);default:continue r}}return q(h0)}}}return Kr===1?ir(h0):q(h0)}function Sr(h0){var Kr=r9(j(h0));return Kr===0?F0(h0):Kr===1?ir(h0):q(h0)}function mr(h0){for(;;){var Kr=l9(j(h0));if(2>>0)return q(h0);switch(Kr){case 0:return F0(h0);case 1:continue;default:return ir(h0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}if(sr===0){var K0=Se(u0),Ur=Gu(D,nt(D,u0),23);return[0,Ur,Hi(2,K0)]}return ke(mCr)});case 22:var Y=Se(n),y0=Gu(t,nt(t,n),23);return[0,y0,Hi(2,Y)];case 23:return Rt(t,n,function(D,u0){function X0(K0){for(;;){G0(K0,0);var Ur=Ds(j(K0));if(Ur!==0){if(Ur===1)r:for(;;){if(pn(j(K0))===0)for(;;){G0(K0,0);var h0=Ds(j(K0));if(h0!==0){if(h0===1)continue r;return q(K0)}}return q(K0)}return q(K0)}}}function J0(K0){for(;;)if(G0(K0,0),pn(j(K0))!==0)return q(K0)}function ir(K0){var Ur=E9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:var h0=C1(j(K0));return h0===0?J0(K0):h0===1?X0(K0):q(K0);case 1:return J0(K0);default:return X0(K0)}}function Q0(K0){if(pn(j(K0))===0)for(;;){var Ur=f7(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return q(K0)}function F0(K0){var Ur=p9(j(K0));if(Ur===0)for(;;){var h0=f7(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:return ir(K0);default:r:for(;;){if(pn(j(K0))===0)for(;;){var Kr=f7(j(K0));if(2>>0)return q(K0);switch(Kr){case 0:continue;case 1:return ir(K0);default:continue r}}return q(K0)}}}return Ur===1?ir(K0):q(K0)}function Sr(K0){var Ur=r9(j(K0));return Ur===0?F0(K0):Ur===1?ir(K0):q(K0)}function mr(K0){for(;;){var Ur=l9(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return F0(K0);case 1:continue;default:return ir(K0)}}}gn(u0);var Cr=f9(j(u0));if(3>>0)var sr=q(u0);else switch(Cr){case 0:for(;;){var Pr=ql(j(u0));if(3>>0)var sr=q(u0);else switch(Pr){case 0:continue;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}break}break;case 1:var sr=Q0(u0);break;case 2:var sr=Sr(u0);break;default:var sr=mr(u0)}return sr===0?[0,D,qc(4,Se(u0))]:ke(pCr)});case 25:return Rt(t,n,function(D,u0){function X0(K0){for(;;){var Ur=wi(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:continue;case 1:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=wi(j(K0));if(2>>0)return q(K0);switch(h0){case 0:continue;case 1:continue r;default:return 0}}return q(K0)}default:return 0}}}function J0(K0){return pn(j(K0))===0?X0(K0):q(K0)}function ir(K0){var Ur=r2(j(K0));if(Ur===0)return X0(K0);var h0=Ur!==1?1:0;return h0&&q(K0)}function Q0(K0){for(;;){var Ur=D1(j(K0));if(Ur===0)return ir(K0);if(Ur!==1)return q(K0)}}function F0(K0){for(;;){var Ur=Bc(j(K0));if(2>>0)return q(K0);switch(Ur){case 0:return ir(K0);case 1:continue;default:r:for(;;){if(pn(j(K0))===0)for(;;){var h0=Bc(j(K0));if(2>>0)return q(K0);switch(h0){case 0:return ir(K0);case 1:continue;default:continue r}}return q(K0)}}}}gn(u0);var Sr=f9(j(u0));if(3>>0)var mr=q(u0);else switch(Sr){case 0:for(;;){var Cr=ql(j(u0));if(3>>0)var mr=q(u0);else switch(Cr){case 0:continue;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}break}break;case 1:var mr=J0(u0);break;case 2:var mr=Q0(u0);break;default:var mr=F0(u0)}if(mr===0){var sr=Se(u0),Pr=Gu(D,nt(D,u0),22);return[0,Pr,Hi(2,sr)]}return ke(bCr)});case 26:return Rt(t,n,function(D,u0){function X0(mr){for(;;){var Cr=r2(j(mr));if(Cr!==0){var sr=Cr!==1?1:0;return sr&&q(mr)}}}function J0(mr){for(;;){var Cr=wi(j(mr));if(2>>0)return q(mr);switch(Cr){case 0:continue;case 1:r:for(;;){if(pn(j(mr))===0)for(;;){var sr=wi(j(mr));if(2>>0)return q(mr);switch(sr){case 0:continue;case 1:continue r;default:return 0}}return q(mr)}default:return 0}}}gn(u0);var ir=j(u0),Q0=44>>0)var F0=q(u0);else switch(Q0){case 0:for(;;){var Sr=jr0(j(u0));if(2>>0)var F0=q(u0);else switch(Sr){case 0:continue;case 1:var F0=X0(u0);break;default:var F0=J0(u0)}break}break;case 1:var F0=X0(u0);break;default:var F0=J0(u0)}return F0===0?[0,D,Hi(2,Se(u0))]:ke(lCr)});case 27:var P0=Se(n),I0=Gu(t,nt(t,n),22);return[0,I0,Hi(2,P0)];case 29:return Rt(t,n,function(D,u0){function X0(re){for(;;){G0(re,0);var xe=Ds(j(re));if(xe!==0){if(xe===1)r:for(;;){if(pn(j(re))===0)for(;;){G0(re,0);var Re=Ds(j(re));if(Re!==0){if(Re===1)continue r;return q(re)}}return q(re)}return q(re)}}}function J0(re){return G0(re,0),pn(j(re))===0?X0(re):q(re)}gn(u0);var ir=f9(j(u0));if(3>>0)var Q0=q(u0);else switch(ir){case 0:for(;;){var F0=jr0(j(u0));if(2>>0)var Q0=q(u0);else switch(F0){case 0:continue;case 1:for(;;){G0(u0,0);var Sr=D1(j(u0)),mr=Sr!==0?1:0;if(mr){if(Sr===1)continue;var Q0=q(u0)}else var Q0=mr;break}break;default:for(;;){G0(u0,0);var Cr=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Cr){case 0:var Q0=0;break;case 1:continue;default:r:for(;;){if(pn(j(u0))===0)for(;;){G0(u0,0);var sr=Bc(j(u0));if(2>>0)var Pr=q(u0);else switch(sr){case 0:var Pr=0;break;case 1:continue;default:continue r}break}else var Pr=q(u0);var Q0=Pr;break}}break}}break}break;case 1:var Q0=pn(j(u0))===0?X0(u0):q(u0);break;case 2:for(;;){G0(u0,0);var K0=D1(j(u0));if(K0===0)var Q0=J0(u0);else{if(K0===1)continue;var Q0=q(u0)}break}break;default:for(;;){G0(u0,0);var Ur=Bc(j(u0));if(2>>0)var Q0=q(u0);else switch(Ur){case 0:var Q0=J0(u0);break;case 1:continue;default:r:for(;;){if(pn(j(u0))===0)for(;;){G0(u0,0);var h0=Bc(j(u0));if(2>>0)var Kr=q(u0);else switch(h0){case 0:var Kr=J0(u0);break;case 1:continue;default:continue r}break}else var Kr=q(u0);var Q0=Kr;break}}break}}return Q0===0?[0,D,qc(4,Se(u0))]:ke(vCr)});case 31:return[0,t,66];case 18:case 28:return[0,t,Hi(2,Se(n))];default:return[0,t,qc(4,Se(n))]}}function Xl(t){return function(n){for(var e=0,i=n;;){var x=o(t,i,i[2]);switch(x[0]){case 0:var c=x[2],s=x[1],p=Xr0(s,c),y=e===0?0:ye(e),T=s[6];if(T===0)return[0,[0,s[1],s[2],s[3],s[4],s[5],s[6],p],[0,c,p,0,y]];var E=[0,c,p,ye(T),y];return[0,[0,s[1],s[2],s[3],s[4],s[5],_r0,p],E];case 1:var d=x[2],w=x[1],e=[0,d,e],i=[0,w[1],w[2],w[3],w[4],w[5],w[6],d[1]];continue;default:var i=x[1];continue}}}}var Gee=Xl(Dee),Mee=Xl(Lee),Bee=Xl(Ree),qee=Xl(jee),Uee=Xl(Pee),Mu=eL([0,bz]);function Yl(t,n){return[0,0,0,n,yr0(t)]}function g9(t){var n=t[4];switch(t[3]){case 0:var c0=u(Uee,n);break;case 1:var c0=u(qee,n);break;case 2:var c0=u(Mee,n);break;case 3:var e=h7(n,n[2]),i=$n(zn),x=$n(zn),c=n[2];gn(c);var s=j(c),p=ts>>0)var y=q(c);else switch(p){case 0:var y=1;break;case 1:var y=4;break;case 2:var y=0;break;case 3:G0(c,0);var T=xi(j(c))!==0?1:0,y=T&&q(c);break;case 4:var y=2;break;default:var y=3}if(4>>0)var E=ke(sCr);else switch(y){case 0:var d=Se(c);hn(x,d),hn(i,d);var w=pL(d7(n,c),2,i,x,c),G=h7(w,c),A=Mt(i),S=Mt(x),E=[0,w,[8,[0,w[1],e,G],A,S]];break;case 1:var E=[0,n,Pn];break;case 2:var E=[0,n,98];break;case 3:var E=[0,n,0];break;default:$v(c);var M=pL(n,2,i,x,c),K=h7(M,c),V=Mt(i),f0=Mt(x),E=[0,M,[8,[0,M[1],e,K],V,f0]]}var m0=E[2],k0=E[1],g0=Xr0(k0,m0),e0=k0[6];if(e0===0)var l=[0,k0,[0,m0,g0,0,0]];else var x0=[0,m0,g0,ye(e0),0],l=[0,[0,k0[1],k0[2],k0[3],k0[4],k0[5],0,k0[7]],x0];var c0=l;break;case 4:var c0=u(Bee,n);break;default:var c0=u(Gee,n)}var t0=c0[1],o0=yr0(t0),w0=[0,o0,c0[2]];return t[4]=t0,t[1]?t[2]=[0,w0]:t[1]=[0,w0],w0}function Qr0(t){var n=t[1];return n?n[1][2]:g9(t)[2]}function Hee(t,n,e,i){var x=t&&t[1],c=n&&n[1];try{var s=0,p=pr0(i),y=s,T=p}catch(A){if(A=Et(A),A!==I1)throw A;var E=[0,[0,[0,e,ez[2],ez[3]],86],0],y=E,T=pr0(Xjr)}var d=c?c[1]:Bv,w=Cee(e,T,d[4]),G=[0,Yl(w,0)];return[0,[0,y],[0,0],Mu[1],[0,0],d[5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,[0,Vjr],[0,w],G,[0,x],d,e,[0,0],[0,Yjr]]}function n2(t){return bl(t[23][1])}function fu(t){return t[27][4]}function ue(t,n){var e=n[2];t[1][1]=[0,[0,n[1],e],t[1][1]];var i=t[22];return i&&o(i[1],t,e)}function Vl(t,n){return t[30][1]=n,0}function Rs(t,n){if(t===0)return Qr0(n[25][1]);if(t===1){var e=n[25][1];e[1]||g9(e);var i=e[2];return i?i[1][2]:g9(e)[2]}throw[0,Sn,qjr]}function _s(t,n){return t===n[5]?n:[0,n[1],n[2],n[3],n[4],t,n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function mL(t,n){return t===n[17]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],t,n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function re0(t,n){return t===n[18]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],t,n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ee0(t,n){return t===n[19]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],t,n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function t2(t,n){return t===n[21]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],t,n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function F9(t,n){return t===n[14]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],t,n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function zl(t,n){return t===n[8]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],t,n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function Kl(t,n){return t===n[12]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],t,n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function u2(t,n){return t===n[15]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],t,n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function ne0(t,n){return t===n[6]?n:[0,n[1],n[2],n[3],n[4],n[5],t,n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function te0(t,n){return t===n[7]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],t,n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function _L(t,n){return t===n[13]?n:[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],t,n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],n[22],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function T9(t,n){return[0,n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15],n[16],n[17],n[18],n[19],n[20],n[21],[0,t],n[23],n[24],n[25],n[26],n[27],n[28],n[29],n[30]]}function yL(t){function n(e){return ue(t,e)}return function(e){return Du(n,e)}}function i2(t){var n=t[4][1],e=n&&[0,n[1][2]];return e}function ue0(t){var n=t[4][1],e=n&&[0,n[1][1]];return e}function ie0(t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],0,t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function fe0(t,n,e,i){return[0,t[1],t[2],Mu[1],t[4],t[5],0,0,0,0,0,1,t[12],t[13],t[14],t[15],t[16],e,n,t[19],i,t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29],t[30]]}function xe0(t){var n=Ee(t,xjr),e=0;if(0<=n){if(0>>0){if(!(T7<(i+1|0)>>>0))return 1}else{var x=i!==6?1:0;if(!x)return x}}return Jl(t,n)}function x2(t){return se0(0,t)}function I9(t,n){var e=Yn(t,n);if(dL(e)||hL(e)||oe0(e))return 1;var i=0;if(typeof e==\"number\")switch(e){case 14:case 28:case 60:case 61:case 62:case 63:case 64:case 65:i=1;break}else e[0]===4&&(i=1);return i?1:0}function ve0(t,n){var e=n2(n);if(e===1){var i=Yn(t,n);return typeof i!=\"number\"&&i[0]===4?1:0}if(e)return 0;var x=Yn(t,n);if(typeof x==\"number\")switch(x){case 42:case 46:case 47:return 0;case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:break;default:return 0}else switch(x[0]){case 4:if(ae0(x[3]))return 0;break;case 9:case 10:case 11:break;default:return 0}return 1}function G1(t){return I9(0,t)}function Gs(t){var n=A0(t)===15?1:0;if(n)var e=n;else{var i=A0(t)===64?1:0;if(i){var x=Yn(1,t)===15?1:0;if(x)var c=Wl(1,t)[2][1],e=Pe(t)[3][1]===c?1:0;else var e=x}else var e=i}return e}function $l(t){var n=A0(t);if(typeof n==\"number\"){var e=0;if((n===13||n===40)&&(e=1),e)return 1}return 0}function je(t,n){return ue(t,[0,Pe(t),n])}function le0(t,n){if(hL(n))return 2;if(dL(n))return 55;var e=aL(0,n);return t?[11,e,t[1]]:[10,e]}function St(t,n){var e=wL(n);return u(yL(n),e),je(n,le0(t,A0(n)))}function A9(t){function n(e){return ue(t,[0,e[1],76])}return function(e){return Du(n,e)}}function be0(t,n){var e=t[6]?ur(et(SRr),n,n,n):gRr;return St([0,e],t)}function gi(t,n){var e=t[5];return e&&je(t,n)}function V7(t,n){var e=t[5];return e&&ue(t,[0,n[1],n[2]])}function M1(t,n){return ue(t,[0,n,[18,t[5]]])}function ie(t){var n=t[26][1];if(n){var e=n2(t),i=A0(t),x=[0,Pe(t),i,e];u(n[1],x)}var c=t[25][1],s=c[1],p=s?s[1][1]:g9(c)[1];t[24][1]=p;var y=wL(t);u(yL(t),y);var T=t[2][1],E=Lc(Rs(0,t)[4],T);t[2][1]=E;var d=[0,Rs(0,t)];t[4][1]=d;var w=t[25][1];return w[2]?(w[1]=w[2],w[2]=0,0):(Qr0(w),w[1]=0,0)}function xu(t,n){var e=o(iL,A0(t),n);return e&&ie(t),e}function Ku(t,n){t[23][1]=[0,n,t[23][1]];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function k7(t){var n=t[23][1],e=n?n[2]:ke(ERr);t[23][1]=e;var i=n2(t),x=Yl(t[24][1],i);return t[25][1]=x,0}function we(t){var n=Pe(t);if(A0(t)===9&&Jl(1,t)){var e=pr(t),i=Rs(1,t)[4],x=on(e,u(ml(function(s){return s[1][2][1]<=n[3][1]?1:0}),i));return Vl(t,[0,n[3][1]+1|0,0]),x}var c=pr(t);return Vl(t,n[3]),c}function Ms(t){var n=t[4][1];if(n){var e=n[1][2],i=pr(t),x=u(ml(function(p){return p[1][2][1]<=e[3][1]?1:0}),i);Vl(t,[0,e[3][1]+1|0,0]);var c=x}else var c=n;return c}function B1(t,n){return St([0,aL(hRr,n)],t)}function Y0(t,n){return 1-o(iL,A0(t),n)&&B1(t,n),ie(t)}function pe0(t,n){var e=xu(t,n);return 1-e&&B1(t,n),e}function Zl(t,n){var e=A0(t),i=0;return typeof e!=\"number\"&&e[0]===4&&qn(e[3],n)&&(i=1),i||St([0,u(et(yRr),n)],t),ie(t)}var Bs=[wt,zjr,M7(0)];function Xee(t){var n=t[26][1];if(n){var e=mz(0),i=[0,function(s){return aN(s,e)}];t[26][1]=i;var x=[0,[0,n[1],e]]}else var x=n;return[0,t[1][1],t[2][1],t[4][1],t[23][1],t[24][1],t[30][1],x]}function me0(t,n,e){if(e){var i=e[1],x=i[1];if(n[26][1]=[0,x],t)for(var c=i[2][2];;){if(c){var s=c[2];u(x,c[1]);var c=s;continue}return 0}var p=t}else var p=e;return p}function Yee(t,n){me0(0,t,n[7]),t[1][1]=n[1],t[2][1]=n[2],t[4][1]=n[3],t[23][1]=n[4],t[24][1]=n[5],t[30][1]=n[6];var e=n2(t),i=Yl(t[24][1],e);return t[25][1]=i,0}function Vee(t,n,e){return me0(1,t,n[7]),[0,e]}function EL(t,n){var e=Xee(t);try{var i=Vee(t,e,u(n,t));return i}catch(x){if(x=Et(x),x===Bs)return Yee(t,e);throw x}}function _e0(t,n,e){var i=EL(t,e);return i?i[1]:n}function Ql(t,n){var e=ye(n);if(e){var i=e[1],x=u(t,i);return i===x?n:ye([0,x,e[2]])}return n}var ye0=Rp(Zjr,function(t){var n=PN(t,Wjr),e=NN(t,$jr),i=e[22],x=e[26],c=e[35],s=e[77],p=e[iV],y=e[gO],T=e[cp],E=e[BO],d=e[jh],w=e[ZF],G=e[6],A=e[7],S=e[10],M=e[17],K=e[21],V=e[27],f0=e[33],m0=e[36],k0=e[46],g0=e[51],e0=e[89],x0=e[92],l=e[97],c0=e[99],t0=e[ti],o0=e[Pn],w0=e[Sv],_0=e[zw],E0=e[Jg],U0=e[dH],b=e[DX],R0=e[eH],X=e[FH],s0=e[kh],hr=e[AF],Ar=e[Wg],or=e[A6],W0=e[Cw],Lr=e[iA],Tr=e[rk],Hr=e[hT],Or=e[lO],fr=e[i6],Rr=e[ST],Wr=e[v8],Jr=e[$2],ar=LN(t,0,0,nz,KD,1)[1];function _r(q0,Fr,_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(I){var y0=function(D){return[0,Y,[0,U,[0,D]]]},P0=I[1];return ee(u(q0[1][1+y],q0),P0,_,y0)}function I0(D){return[0,Y,[0,D,I]]}return ee(o(q0[1][1+G],q0,Fr),U,_,I0)}function Ir(q0,Fr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function fe(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function v0(q0,Fr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function P(q0,Fr){function _(I){return[0,Fr[1],I]}var k=Fr[2];return ee(u(q0[1][1+c],q0),k,Fr,_)}function L(q0,Fr,_){function k(U){return[0,_[1],_[2],U]}var I=_[3];return ee(u(q0[1][1+c],q0),I,_,k)}function Q(q0,Fr,_){var k=_[2],I=_[1],U=Ql(u(q0[1][1+y],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,Y]}function i0(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function l0(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function S0(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function T0(q0,Fr,_){var k=_[3],I=_[2],U=o(q0[1][1+l],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,Y]}function rr(q0,Fr,_){var k=_[4],I=_[3],U=_[2],Y=_[1],y0=o(q0[1][1+c],q0,k);if(I){var P0=ze(u(q0[1][1+w],q0),I);return I===P0&&k===y0?_:[0,_[1],_[2],P0,y0]}if(U){var I0=ze(u(q0[1][1+d],q0),U);return U===I0&&k===y0?_:[0,_[1],I0,_[3],y0]}var D=o(q0[1][1+y],q0,Y);return Y===D&&k===y0?_:[0,D,_[2],_[3],y0]}function L0(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function B(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function Z(q0,Fr,_){function k(U){return[0,_[1],_[2],_[3],U]}var I=_[4];return ee(u(q0[1][1+c],q0),I,_,k)}function p0(q0,Fr,_){var k=_[2],I=_[1],U=I[3],Y=I[2];if(U)var y0=Ql(u(q0[1][1+x],q0),U),P0=Y;else var y0=0,P0=o(q0[1][1+x],q0,Y);var I0=o(q0[1][1+c],q0,k);return Y===P0&&U===y0&&k===I0?_:[0,[0,I[1],P0,y0],I0]}function b0(q0,Fr,_){var k=_[3],I=_[1],U=_u(u(q0[1][1+s],q0),I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,U,_[2],Y]}function O0(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function M0(q0,Fr){if(Fr[0]===0){var _=function(P0){return[0,P0]},k=Fr[1];return ee(u(q0[1][1+p],q0),k,Fr,_)}var I=Fr[1],U=I[2],Y=U[2],y0=o(q0[1][1+p],q0,Y);return Y===y0?Fr:[1,[0,I[1],[0,U[1],y0]]]}function er(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+x],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function yr(q0,Fr){var _=Fr[2],k=Fr[1];function I(Y){return[0,k,[0,_[1],_[2],_[3],Y]]}var U=_[4];return ee(u(q0[1][1+c],q0),U,[0,k,_],I)}function vr(q0,Fr,_){var k=_[9],I=_[3],U=o(q0[1][1+s0],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,_[4],_[5],_[6],_[7],_[8],Y,_[10]]}function $0(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function Er(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function Mr(q0,Fr){var _=Fr[2],k=_[2],I=_[1],U=Fr[1];if(k===0){var Y=function(I0){return[0,U,[0,I0,k]]};return ee(u(q0[1][1+p],q0),I,Fr,Y)}function y0(I0){return[0,U,[0,I,I0]]}var P0=u(q0[1][1+i],q0);return ee(function(I0){return ze(P0,I0)},k,Fr,y0)}function Br(q0,Fr){var _=Fr[2],k=_[2],I=Fr[1];function U(P0){return[0,I,[0,P0,k]]}var Y=_[1],y0=u(q0[1][1+T],q0);return ee(function(P0){return Ql(y0,P0)},Y,Fr,U)}function qr(q0,Fr,_){var k=_[2];if(k===0){var I=function(P0){return[0,P0,_[2],_[3]]},U=_[1];return ee(u(q0[1][1+y],q0),U,_,I)}function Y(P0){return[0,_[1],P0,_[3]]}var y0=u(q0[1][1+i],q0);return ee(function(P0){return ze(y0,P0)},k,_,Y)}function jr(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function $r(q0,Fr,_){var k=_[7],I=_[2],U=o(q0[1][1+E],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],U,_[3],_[4],_[5],_[6],Y]}function ne(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function Qr(q0,Fr){var _=Fr[2],k=_[1],I=Fr[1];function U(y0){return[0,I,[0,k,y0]]}var Y=_[2];return ee(u(q0[1][1+c],q0),Y,Fr,U)}function be(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+w],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ae(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}function pe(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function oe(q0,Fr,_){var k=_[4],I=_[3],U=o(q0[1][1+y],q0,I),Y=o(q0[1][1+c],q0,k);return I===U&&k===Y?_:[0,_[1],_[2],U,Y]}function ce(q0,Fr){function _(I){return[0,Fr[1],I]}var k=Fr[2];return ee(u(q0[1][1+c],q0),k,Fr,_)}function ge(q0,Fr,_){function k(U){return[0,_[1],U]}var I=_[2];return ee(u(q0[1][1+c],q0),I,_,k)}return jN(t,[0,m0,function(q0,Fr){var _=Fr[2],k=u(ml(function(U){return ps(U[1][2],q0[1+n])<0?1:0}),_),I=Dc(k);return Dc(_)===I?Fr:[0,Fr[1],k,Fr[3]]},Jr,ge,Wr,ce,Rr,oe,fr,pe,Or,ae,Hr,be,w,Qr,d,ne,Tr,$r,E,jr,Lr,qr,W0,Br,T,Mr,or,Er,Ar,$0,hr,vr,X,yr,R0,er,b,M0,U0,O0,E0,b0,_0,p0,w0,Z,o0,B,t0,L0,x0,rr,c0,T0,e0,S0,s,l0,g0,i0,k0,Q,f0,L,V,P,K,v0,M,fe,S,Ir,A,_r]),function(q0,Fr,_){var k=jp(Fr,t);return k[1+n]=_,u(ar,k),RN(Fr,k,t)}});function N9(t){var n=i2(t);if(n)var e=n[1],i=ce0(t)?(Vl(t,e[3]),[0,o(ye0[1],0,e[3])]):0,x=i;else var x=n;return[0,0,function(c,s){return x?o(s,x[1],c):c}]}function rb(t){var n=i2(t);if(n){var e=n[1];if(ce0(t)){Vl(t,e[3]);var i=Ms(t),x=[0,o(ye0[1],0,[0,e[3][1]+1|0,0])],c=i}else var x=0,c=Ms(t)}else var x=0,c=0;return[0,c,function(s,p){return x?o(p,x[1],s):s}]}function $t(t){return x7(t)?rb(t):N9(t)}function ys(t,n){var e=$t(t);function i(x,c){return o(Qe(x,Nv,27),x,c)}return o(e[2],n,i)}function oi(t,n){if(n)var e=$t(t),i=function(c,s){return o(Qe(c,bF,30),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function o2(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-983660142,32),x,c)}return o(e[2],n,i)}function eb(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-455772979,33),x,c)}return o(e[2],n,i)}function he0(t,n){if(n)var e=$t(t),i=function(c,s){return o(Qe(c,kH,34),c,s)},x=[0,o(e[2],n[1],i)];else var x=n;return x}function Xi(t,n){var e=$t(t);function i(x,c){return o(Qe(x,qY,35),x,c)}return o(e[2],n,i)}function de0(t,n){var e=$t(t);function i(x,c){var s=u(Qe(x,ZU,37),x);return Ql(function(p){return _u(s,p)},c)}return o(e[2],n,i)}function ke0(t,n){var e=$t(t);function i(x,c){return o(Qe(x,-21476009,38),x,c)}return o(e[2],n,i)}Rp(Qjr,function(t){var n=PN(t,Kjr),e=DN(Jjr),i=e.length-1,x=tz.length-1,c=Gv(i+x|0,0),s=i-1|0,p=0;if(!(s<0))for(var y=p;;){var T=Fl(t,tu(e,y)[1+y]);tu(c,y)[1+y]=T;var E=y+1|0;if(s!==y){var y=E;continue}break}var d=x-1|0,w=0;if(!(d<0))for(var G=w;;){var A=G+i|0,S=PN(t,tu(tz,G)[1+G]);tu(c,A)[1+A]=S;var M=G+1|0;if(d!==G){var G=M;continue}break}var K=c[4],V=c[5],f0=c[y6],m0=c[cp],k0=c[nd],g0=c[gv],e0=c[38],x0=c[mT],l=c[Vy],c0=LN(t,0,0,nz,KD,1)[1];function t0(b,R0,X){return o(b[1][1+f0],b,X[2]),X}function o0(b,R0){return o(b[1][1+m0],b,R0),R0}function w0(b,R0){var X=R0[1],s0=b[1+g0];if(s0){var hr=ps(s0[1][1][2],X[2])<0?1:0,Ar=hr&&(b[1+g0]=[0,R0],0);return Ar}var or=0<=ps(X[2],b[1+n][3])?1:0,W0=or&&(b[1+g0]=[0,R0],0);return W0}function _0(b,R0){var X=R0[1],s0=b[1+k0];if(s0){var hr=ps(X[2],s0[1][1][2])<0?1:0,Ar=hr&&(b[1+k0]=[0,R0],0);return Ar}var or=ps(X[2],b[1+n][2])<0?1:0,W0=or&&(b[1+k0]=[0,R0],0);return W0}function E0(b,R0){return R0&&o(b[1][1+m0],b,R0[1])}function U0(b,R0){var X=R0[1];Du(u(b[1][1+V],b),X);var s0=R0[2];return Du(u(b[1][1+K],b),s0)}return jN(t,[0,x0,function(b){return[0,b[1+k0],b[1+g0]]},m0,U0,f0,E0,V,_0,K,w0,e0,o0,l,t0]),function(b,R0,X){var s0=jp(R0,t);return s0[1+n]=X,u(c0,s0),s0[1+k0]=0,s0[1+g0]=0,RN(R0,s0,t)}});function we0(t){return t===3?2:(4<=t,1)}function SL(t,n,e){if(e){var i=e[1],x=0;if(i===8232||Hu===i)x=1;else if(i===10)var s=6;else if(i===13)var s=5;else if(fw<=i)var s=3;else if(Hh<=i)var s=2;else var c=jt<=i?1:0,s=c&&1;if(x)var s=7;var p=s}else var p=4;return[0,p,t]}var zee=[wt,uGr,M7(0)];function Ee0(t,n,e,i){try{var x=tu(t,n)[1+n];return x}catch(c){throw c=Et(c),c[1]===ZA?[0,zee,e,ur(et(nGr),i,n,t.length-1)]:c}}function C9(t,n){if(n[1]===0&&n[2]===0)return 0;var e=Ee0(t,n[1]-1|0,n,rGr);return Ee0(e,n[2],n,eGr)}var Kee=Ee;function Wee(t,n){return o(f(t),NWr,n)}u(eL([0,Kee])[33],Wee);function Se0(t){var n=A0(t),e=0;if(typeof n==\"number\")switch(n){case 15:var i=CWr;break;case 16:var i=PWr;break;case 17:var i=DWr;break;case 18:var i=LWr;break;case 19:var i=RWr;break;case 20:var i=jWr;break;case 21:var i=GWr;break;case 22:var i=MWr;break;case 23:var i=BWr;break;case 24:var i=qWr;break;case 25:var i=UWr;break;case 26:var i=HWr;break;case 27:var i=XWr;break;case 28:var i=YWr;break;case 29:var i=VWr;break;case 30:var i=zWr;break;case 31:var i=KWr;break;case 32:var i=WWr;break;case 33:var i=JWr;break;case 34:var i=$Wr;break;case 35:var i=ZWr;break;case 36:var i=QWr;break;case 37:var i=rJr;break;case 38:var i=eJr;break;case 39:var i=nJr;break;case 40:var i=tJr;break;case 41:var i=uJr;break;case 42:var i=iJr;break;case 43:var i=fJr;break;case 44:var i=xJr;break;case 45:var i=oJr;break;case 46:var i=aJr;break;case 47:var i=cJr;break;case 48:var i=sJr;break;case 49:var i=vJr;break;case 50:var i=lJr;break;case 51:var i=bJr;break;case 52:var i=pJr;break;case 53:var i=mJr;break;case 54:var i=_Jr;break;case 55:var i=yJr;break;case 56:var i=hJr;break;case 57:var i=dJr;break;case 58:var i=kJr;break;case 59:var i=wJr;break;case 60:var i=EJr;break;case 61:var i=SJr;break;case 62:var i=gJr;break;case 63:var i=FJr;break;case 64:var i=TJr;break;case 65:var i=OJr;break;case 114:var i=IJr;break;case 115:var i=AJr;break;case 116:var i=NJr;break;case 117:var i=CJr;break;case 118:var i=PJr;break;case 119:var i=DJr;break;case 120:var i=LJr;break;case 121:var i=RJr;break;default:e=1}else switch(n[0]){case 4:var i=n[2];break;case 9:var i=n[1]?jJr:GJr;break;default:e=1}if(e){St(MJr,t);var i=BJr}return ie(t),i}function z7(t){var n=Pe(t),e=pr(t),i=Se0(t);return[0,n,[0,i,lr([0,e],[0,we(t)],0)]]}function ge0(t){var n=Pe(t),e=pr(t);Y0(t,14);var i=Pe(t),x=Se0(t),c=lr([0,e],[0,we(t)],0),s=yt(n,i),p=i[2],y=n[3],T=y[1]===p[1]?1:0,E=T&&(y[2]===p[2]?1:0);return 1-E&&ue(t,[0,s,R7]),[0,s,[0,x,c]]}function q1(t){var n=t[2],e=n[3]===0?1:0;if(e)for(var i=n[2];;){if(i){var x=i[1][2],c=0,s=i[2];if(x[1][2][0]===2&&!x[2]){var p=1;c=1}if(!c)var p=0;if(p){var i=s;continue}return p}return 1}return e}function nb(t){for(var n=t;;){var e=n[2];if(e[0]===27){var i=e[1][2];if(i[2][0]===23)return 1;var n=i;continue}return 0}}function cr(t,n,e){var i=t?t[1]:Pe(e),x=u(n,e),c=i2(e),s=c?yt(i,c[1]):i;return[0,s,x]}function gL(t,n,e){var i=cr(t,n,e),x=i[2];return[0,[0,i[1],x[1]],x[2]]}function Jee(t){function n(B){var Z=Pe(B),p0=A0(B);if(typeof p0==\"number\"){if(s7===p0){var b0=pr(B);return ie(B),[0,[0,Z,[0,0,lr([0,b0],0,0)]]]}if(L7===p0){var O0=pr(B);return ie(B),[0,[0,Z,[0,1,lr([0,O0],0,0)]]]}}return 0}var e=function B(Z){return B.fun(Z)},i=function B(Z){return B.fun(Z)},x=function B(Z){return B.fun(Z)},c=function B(Z,p0,b0){return B.fun(Z,p0,b0)},s=function B(Z){return B.fun(Z)},p=function B(Z,p0,b0){return B.fun(Z,p0,b0)},y=function B(Z){return B.fun(Z)},T=function B(Z,p0){return B.fun(Z,p0)},E=function B(Z){return B.fun(Z)},d=function B(Z){return B.fun(Z)},w=function B(Z,p0,b0){return B.fun(Z,p0,b0)},G=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},A=function B(Z){return B.fun(Z)},S=function B(Z,p0){return B.fun(Z,p0)},M=function B(Z){return B.fun(Z)},K=function B(Z){return B.fun(Z)},V=function B(Z){return B.fun(Z)},f0=function B(Z){return B.fun(Z)},m0=function B(Z){return B.fun(Z)},k0=function B(Z){return B.fun(Z)},g0=function B(Z,p0){return B.fun(Z,p0)},e0=function B(Z){return B.fun(Z)},x0=function B(Z){return B.fun(Z)},l=function B(Z){return B.fun(Z)},c0=function B(Z){return B.fun(Z)},t0=function B(Z){return B.fun(Z)},o0=function B(Z){return B.fun(Z)},w0=function B(Z){return B.fun(Z)},_0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},E0=function B(Z,p0,b0,O0){return B.fun(Z,p0,b0,O0)},U0=function B(Z){return B.fun(Z)},b=function B(Z){return B.fun(Z)},R0=function B(Z){return B.fun(Z)},X=function B(Z){return B.fun(Z)},s0=function B(Z){return B.fun(Z)},hr=function B(Z){return B.fun(Z)},Ar=function B(Z,p0){return B.fun(Z,p0)},or=function B(Z,p0){return B.fun(Z,p0)},W0=function B(Z){return B.fun(Z)},Lr=function B(Z,p0,b0){return B.fun(Z,p0,b0)};N(e,function(B){return u(x,B)}),N(i,function(B){return 1-fu(B)&&je(B,12),cr(0,function(Z){return Y0(Z,86),u(e,Z)},B)}),N(x,function(B){var Z=A0(B)===89?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(c,B,[0,b0],u(s,B))}),N(c,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===89){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr==\"number\"&&vr===89){Y0(er,89);var yr=[0,u(s,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[19,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,y$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(s,function(B){var Z=A0(B)===91?1:0;if(Z){var p0=pr(B);ie(B);var b0=p0}else var b0=Z;return ur(p,B,[0,b0],u(y,B))}),N(p,function(B,Z,p0){var b0=Z&&Z[1];if(A0(B)===91){var O0=[0,p0,0],M0=function(er){for(var yr=O0;;){var vr=A0(er);if(typeof vr==\"number\"&&vr===91){Y0(er,91);var yr=[0,u(y,er),yr];continue}var $0=ye(yr);if($0){var Er=$0[2];if(Er){var Mr=lr([0,b0],0,0);return[20,[0,[0,$0[1],Er[1],Er[2]],Mr]]}}throw[0,Sn,_$r]}};return cr([0,p0[1]],M0,B)}return p0}),N(y,function(B){return o(T,B,u(E,B))}),N(T,function(B,Z){var p0=A0(B);if(typeof p0==\"number\"&&p0===11&&!B[15]){var b0=o(g0,B,Z);return R(_0,B,b0[1],0,[0,b0[1],[0,0,[0,b0,0],0,0]])}return Z}),N(E,function(B){var Z=A0(B);return typeof Z==\"number\"&&Z===85?cr(0,function(p0){var b0=pr(p0);Y0(p0,85);var O0=lr([0,b0],0,0);return[11,[0,u(E,p0),O0]]},B):u(d,B)}),N(d,function(B){return ur(w,0,B,u(V,B))}),N(w,function(B,Z,p0){var b0=B&&B[1];if(x7(Z))return p0;var O0=A0(Z);if(typeof O0==\"number\"){if(O0===6)return ie(Z),R(G,b0,0,Z,p0);if(O0===10){var M0=Yn(1,Z);return typeof M0==\"number\"&&M0===6?(je(Z,p$r),Y0(Z,10),Y0(Z,6),R(G,b0,0,Z,p0)):(je(Z,m$r),p0)}if(O0===83)return ie(Z),A0(Z)!==6&&je(Z,30),Y0(Z,6),R(G,1,1,Z,p0)}return p0}),N(G,function(B,Z,p0,b0){function O0(M0){if(!Z&&xu(M0,7))return[15,[0,b0,lr(0,[0,we(M0)],0)]];var er=u(e,M0);Y0(M0,7);var yr=[0,b0,er,lr(0,[0,we(M0)],0)];return B?[18,[0,yr,Z]]:[17,yr]}return ur(w,[0,B],p0,cr([0,b0[1]],O0,p0))}),N(A,function(B){return o(S,B,o(t[13],0,B))}),N(S,function(B,Z){for(var p0=[0,Z[1],[0,Z]];;){var b0=p0[2];if(A0(B)===10&&I9(1,B)){var O0=function(vr){return function($0){return Y0($0,10),[0,vr,z7($0)]}}(b0),M0=cr([0,p0[1]],O0,B),er=M0[1],p0=[0,er,[1,[0,er,M0[2]]]];continue}return b0}}),N(M,function(B){var Z=A0(B);if(typeof Z==\"number\"){if(Z===4){ie(B);var p0=u(M,B);return Y0(B,5),p0}}else if(Z[0]===4)return[0,u(A,B)];return je(B,51),0}),N(K,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,46);var b0=u(M,Z);if(b0){var O0=lr([0,p0],0,0);return[21,[0,b0[1],O0]]}return b$r},B)}),N(V,function(B){var Z=Pe(B),p0=A0(B),b0=0;if(typeof p0==\"number\")switch(p0){case 4:return u(o0,B);case 6:return u(k0,B);case 46:return u(K,B);case 53:return cr(0,function(ge){var q0=pr(ge);Y0(ge,53);var Fr=u(U0,ge),_=lr([0,q0],0,0);return[14,[0,Fr[2],Fr[1],_]]},B);case 98:return u(w0,B);case 106:var O0=pr(B);return Y0(B,Yt),[0,Z,[10,lr([0,O0],[0,we(B)],0)]];case 42:b0=1;break;case 0:case 2:var M0=R(E0,0,1,1,B);return[0,M0[1],[13,M0[2]]];case 30:case 31:var er=pr(B);return Y0(B,p0),[0,Z,[26,[0,p0===31?1:0,lr([0,er],[0,we(B)],0)]]]}else switch(p0[0]){case 2:var yr=p0[1],vr=yr[4],$0=yr[3],Er=yr[2],Mr=yr[1];vr&&gi(B,45);var Br=pr(B);return Y0(B,[2,[0,Mr,Er,$0,vr]]),[0,Mr,[23,[0,Er,$0,lr([0,Br],[0,we(B)],0)]]];case 10:var qr=p0[3],jr=p0[2],$r=p0[1],ne=pr(B);Y0(B,[10,$r,jr,qr]);var Qr=we(B);return $r===1&&gi(B,45),[0,Z,[24,[0,jr,qr,lr([0,ne],[0,Qr],0)]]];case 11:var be=p0[3],ae=p0[2],pe=pr(B);return Y0(B,[11,p0[1],ae,be]),[0,Z,[25,[0,ae,be,lr([0,pe],[0,we(B)],0)]]];case 4:b0=1;break}if(b0){var oe=u(hr,B);return[0,oe[1],[16,oe[2]]]}var ce=u(m0,B);return ce?[0,Z,ce[1]]:(St(v$r,B),[0,Z,l$r])}),N(f0,function(B){var Z=0;if(typeof B==\"number\")switch(B){case 29:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:Z=1;break}else B[0]===9&&(Z=1);return Z?1:0}),N(m0,function(B){var Z=pr(B),p0=A0(B);if(typeof p0==\"number\")switch(p0){case 29:return ie(B),[0,[4,lr([0,Z],[0,we(B)],0)]];case 114:return ie(B),[0,[0,lr([0,Z],[0,we(B)],0)]];case 115:return ie(B),[0,[1,lr([0,Z],[0,we(B)],0)]];case 116:return ie(B),[0,[2,lr([0,Z],[0,we(B)],0)]];case 117:return ie(B),[0,[5,lr([0,Z],[0,we(B)],0)]];case 118:return ie(B),[0,[6,lr([0,Z],[0,we(B)],0)]];case 119:return ie(B),[0,[7,lr([0,Z],[0,we(B)],0)]];case 120:return ie(B),[0,[3,lr([0,Z],[0,we(B)],0)]];case 121:return ie(B),[0,[9,lr([0,Z],[0,we(B)],0)]]}else if(p0[0]===9)return ie(B),[0,[8,lr([0,Z],[0,we(B)],0)]];return 0}),N(k0,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,6);for(var b0=u2(0,Z),O0=0;;){var M0=A0(b0);if(typeof M0==\"number\"){var er=0;if((M0===7||Pn===M0)&&(er=1),er){var yr=ye(O0);return Y0(Z,7),[22,[0,yr,lr([0,p0],[0,we(Z)],0)]]}}var vr=[0,u(e,b0),O0];A0(b0)!==7&&Y0(b0,9);var O0=vr}},B)}),N(g0,function(B,Z){return[0,Z[1],[0,0,Z,0]]}),N(e0,function(B){return cr(0,function(Z){Ku(Z,0);var p0=o(t[13],0,Z);k7(Z),1-fu(Z)&&je(Z,12);var b0=xu(Z,85);return Y0(Z,86),[0,[0,p0],u(e,Z),b0]},B)});function Tr(B){var Z=Yn(1,B);return typeof Z==\"number\"&&!(1<(Z+W2|0)>>>0)?u(e0,B):o(g0,B,u(e,B))}N(x0,function(B){var Z=0;return function(p0){for(var b0=Z,O0=p0;;){var M0=A0(B);if(typeof M0==\"number\")switch(M0){case 5:case 12:case 113:var er=M0===12?1:0,yr=er&&[0,cr(0,function(jr){var $r=pr(jr);Y0(jr,12);var ne=lr([0,$r],0,0);return[0,Tr(jr),ne]},B)];return[0,b0,ye(O0),yr,0]}else if(M0[0]===4&&!n0(M0[3],s$r)){var vr=0;if((Yn(1,B)===86||Yn(1,B)===85)&&(vr=1),vr){var $0=b0!==0?1:0,Er=$0||(O0!==0?1:0);Er&&je(B,s7);var Mr=cr(0,function($r){var ne=pr($r);ie($r),A0($r)===85&&je($r,L7);var Qr=lr([0,ne],0,0);return[0,u(i,$r),Qr]},B);A0(B)!==5&&Y0(B,9);var b0=[0,Mr];continue}}var Br=[0,Tr(B),O0];A0(B)!==5&&Y0(B,9);var O0=Br}}}),N(l,function(B){return cr(0,function(Z){var p0=pr(Z);Y0(Z,4);var b0=o(x0,Z,0),O0=pr(Z);Y0(Z,5);var M0=yu([0,p0],[0,we(Z)],O0,0);return[0,b0[1],b0[2],b0[3],M0]},B)}),N(c0,function(B){var Z=pr(B);Y0(B,4);var p0=u2(0,B),b0=A0(p0),O0=0;if(typeof b0==\"number\")switch(b0){case 5:var M0=c$r;break;case 42:O0=2;break;case 12:case 113:var M0=[0,o(x0,p0,0)];break;default:O0=1}else b0[0]===4?O0=2:O0=1;switch(O0){case 1:if(u(f0,b0)){var er=Yn(1,p0),yr=0;if(typeof er==\"number\"&&!(1<(er+W2|0)>>>0)){var vr=[0,o(x0,p0,0)];yr=1}if(!yr)var vr=[1,u(e,p0)];var M0=vr}else var M0=[1,u(e,p0)];break;case 2:var M0=u(t0,p0);break}if(M0[0]===0)var $0=M0;else{var Er=M0[1];if(B[15])var Mr=M0;else{var Br=A0(B),qr=0;if(typeof Br==\"number\")if(Br===5)var jr=Yn(1,B)===11?[0,o(x0,B,[0,o(g0,B,Er),0])]:[1,Er];else if(Br===9){Y0(B,9);var jr=[0,o(x0,B,[0,o(g0,B,Er),0])]}else qr=1;else qr=1;if(qr)var jr=M0;var Mr=jr}var $0=Mr}var $r=pr(B);Y0(B,5);var ne=we(B);if($0[0]===0){var Qr=$0[1],be=yu([0,Z],[0,ne],$r,0);return[0,[0,Qr[1],Qr[2],Qr[3],be]]}return[1,ur(Lr,$0[1],Z,ne)]}),N(t0,function(B){var Z=Yn(1,B);return typeof Z==\"number\"&&!(1<(Z+W2|0)>>>0)?[0,o(x0,B,0)]:[1,ur(c,B,0,ur(p,B,0,o(T,B,ur(w,0,B,o(or,B,u(b,B))))))]}),N(o0,function(B){var Z=Pe(B),p0=cr(0,c0,B),b0=p0[2];return b0[0]===0?R(_0,B,Z,0,[0,p0[1],b0[1]]):b0[1]}),N(w0,function(B){var Z=Pe(B),p0=oi(B,u(X,B));return R(_0,B,Z,p0,u(l,B))}),N(_0,function(B,Z,p0,b0){return cr([0,Z],function(O0){return Y0(O0,11),[12,[0,p0,b0,u(e,O0),0]]},B)});function Hr(B,Z,p0){return cr([0,Z],function(b0){var O0=u(l,b0);return Y0(b0,86),[0,p0,O0,u(e,b0),0]},B)}function Or(B,Z){var p0=A0(Z);if(typeof p0==\"number\"&&!(10<=p0))switch(p0){case 1:if(!B)return 0;break;case 3:if(B)return 0;break;case 8:case 9:return ie(Z)}return B1(Z,9)}function fr(B,Z){return Z&&ue(B,[0,Z[1][1],7])}function Rr(B,Z){return Z&&ue(B,[0,Z[1],9])}N(E0,function(B,Z,p0,b0){var O0=Z&&(A0(b0)===2?1:0),M0=Z&&1-O0;return cr(0,function(er){var yr=pr(er),vr=O0&&2;Y0(er,vr);var $0=u2(0,er),Er=a$r;r:for(;;){var Mr=Er[3],Br=Er[2],qr=Er[1];if(B&&p0)throw[0,Sn,WJr];if(M0&&!p0)throw[0,Sn,JJr];var jr=Pe($0),$r=A0($0);if(typeof $r==\"number\"){var ne=0;if(13<=$r){if(Pn===$r){var Qr=[0,ye(qr),Br,Mr];ne=1}}else if($r)switch($r-1|0){case 0:if(!O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 2:if(O0){var Qr=[0,ye(qr),Br,Mr];ne=1}break;case 11:if(!p0){ie($0);var be=A0($0);if(typeof be==\"number\"&&!(10<=be))switch(be){case 1:case 3:case 8:case 9:ue($0,[0,jr,20]),Or(O0,$0);continue}var ae=wL($0);u(yL($0),ae),ue($0,[0,jr,17]),ie($0),Or(O0,$0);continue}var pe=pr($0);ie($0);var oe=A0($0),ce=0;if(typeof oe==\"number\"&&!(10<=oe))switch(oe){case 1:case 3:case 8:case 9:Or(O0,$0);var ge=A0($0),q0=0;if(typeof ge==\"number\"){var Fr=ge-1|0;if(!(2>>0))switch(Fr){case 0:if(M0){var Qr=[0,ye(qr),1,pe];ne=1,ce=1,q0=1}break;case 1:break;default:ue($0,[0,jr,19]);var Qr=[0,ye(qr),Br,Mr];ne=1,ce=1,q0=1}}if(!q0){ue($0,[0,jr,18]);continue}break}if(!ce){var _=[1,cr([0,jr],function(W7){return function(Ut){var bt=lr([0,W7],0,0);return[0,u(e,Ut),bt]}}(pe),$0)];Or(O0,$0);var Er=[0,[0,_,qr],Br,Mr];continue}break}if(ne){var k=pr(er),I=on(Qr[3],k),U=O0?3:1;Y0(er,U);var Y=yu([0,yr],[0,we(er)],I,0);return[0,O0,Qr[2],Qr[1],Y]}}for(var y0=B,P0=B,I0=0,D=0,u0=0,X0=0;;){var J0=A0($0),ir=0;if(typeof J0==\"number\")switch(J0){case 6:Rr($0,u0);var Q0=Yn(1,$0),F0=0;if(typeof Q0==\"number\"&&Q0===6){fr($0,I0);var Cr=[4,cr([0,jr],function(Ut,bt,B0){return function(D0){var Le=on(bt,pr(D0));Y0(D0,6),Y0(D0,6);var He=z7(D0);Y0(D0,7),Y0(D0,7);var he=A0(D0),me=0;if(typeof he==\"number\"){var Zn=0;if(he!==4&&he!==98&&(Zn=1),!Zn){var wn=Hr(D0,Ut,oi(D0,u(X,D0))),ft=0,xt=[0,wn[1],[12,wn[2]]],jn=1,ut=0;me=1}}if(!me){var dt=xu(D0,85),xn=we(D0);Y0(D0,86);var ft=xn,xt=u(e,D0),jn=0,ut=dt}return[0,He,xt,ut,B0!==0?1:0,jn,lr([0,Le],[0,ft],0)]}}(jr,X0,D),$0)];F0=1}if(!F0)var Cr=[2,cr([0,jr],function(W7,Ut,bt){return function(B0){var D0=on(W7,pr(B0));Y0(B0,6);var Le=Yn(1,B0)===86?1:0;if(Le){var He=z7(B0);Y0(B0,86);var he=[0,He]}else var he=Le;var me=u(e,B0);Y0(B0,7);var Zn=we(B0);Y0(B0,86);var wn=u(e,B0);return[0,he,me,wn,Ut!==0?1:0,bt,lr([0,D0],[0,Zn],0)]}}(X0,D,I0),$0)];break;case 42:if(y0){if(I0===0){var Sr=[0,Pe($0)],mr=on(X0,pr($0));ie($0);var y0=0,P0=0,D=Sr,X0=mr;continue}throw[0,Sn,ZJr]}ir=1;break;case 103:case 104:if(I0===0){var y0=0,P0=0,I0=n($0);continue}ir=1;break;case 4:case 98:Rr($0,u0),fr($0,I0);var Cr=[3,cr([0,jr],function(W7,Ut){return function(bt){var B0=Pe(bt),D0=Hr(bt,B0,oi(bt,u(X,bt)));return[0,D0,Ut!==0?1:0,lr([0,W7],0,0)]}}(X0,D),$0)];break;default:ir=1}else if(J0[0]===4&&!n0(J0[3],QJr)){if(P0){if(I0===0){var sr=[0,Pe($0)],Pr=on(X0,pr($0));ie($0);var y0=0,P0=0,u0=sr,X0=Pr;continue}throw[0,Sn,r$r]}ir=1}else ir=1;if(ir){var K0=0;if(D){var Ur=D[1];if(u0){var Cr=ke(e$r);K0=1}else if(typeof J0==\"number\"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Ur,[1,Rc(lr([0,X0],0,0),[0,Ur,n$r])]],Kr=0,re=u0,xe=0;K0=2}}else if(u0){var Re=u0[1];if(typeof J0==\"number\"&&!(1<(J0+W2|0)>>>0)){var h0=[0,Re,[1,Rc(lr([0,X0],0,0),[0,Re,t$r])]],Kr=0,re=0,xe=D;K0=2}}var ve=0;switch(K0){case 0:var Ie=function(Ut){Ku(Ut,0);var bt=o(t[20],0,Ut);return k7(Ut),bt},Ge=pr($0),Me=Ie($0),an=Me[1],We=Me[2],Ae=0;if(We[0]===1){var cn=We[1][2][1],rn=0;if(n0(cn,u$r)&&n0(cn,i$r)&&(rn=1),!rn){var kn=A0($0),vn=0;if(typeof kn==\"number\"){var Ne=kn-5|0;if(92>>0){if(!(94<(Ne+1|0)>>>0)){Rr($0,u0),fr($0,I0);var Je=We;Ae=1,vn=1}}else if(!(1<(Ne+eX|0)>>>0)){var h0=[0,an,We],Kr=X0,re=u0,xe=D;ve=1,Ae=2,vn=1}}if(!vn){Xi($0,We);var en=Ie($0),_n=qn(cn,f$r),Cn=on(X0,Ge);Rr($0,u0),fr($0,I0);var Cr=[0,cr([0,jr],function(bt,B0,D0,Le,He){return function(he){var me=D0[1],Zn=Xi(he,D0[2]),wn=Hr(he,bt,0),ft=wn[2][2];if(Le){var xt=ft[2],jn=0;if(xt[1])ue(he,[0,me,j7]),jn=1;else{var ut=0;!xt[2]&&!xt[3]&&(jn=1,ut=1),ut||ue(he,[0,me,80])}}else{var dt=ft[2],xn=0;if(dt[1])ue(he,[0,me,Yt]),xn=1;else{var ln=dt[2],it=0;if(dt[3])ue(he,[0,me,81]);else{var Tt=0;ln&&!ln[2]&&(Tt=1),Tt||(ue(he,[0,me,81]),it=1)}it||(xn=1)}}var Ti=lr([0,He],0,0),hs=0,Au=0,Hs=0,Vi=B0!==0?1:0,Xs=0,Ys=Le?[1,wn]:[2,wn];return[0,Zn,Ys,Xs,Vi,Hs,Au,hs,Ti]}}(jr,D,en,_n,Cn),$0)];Ae=2}}}var Hn=0;switch(Ae){case 2:Hn=1;break;case 0:var Fn=Me[2],vt=A0($0),Nt=0;if(typeof vt==\"number\"){var gt=0;if(vt!==4&&vt!==98&&(gt=1),!gt){Rr($0,u0),fr($0,I0);var Je=Fn;Nt=1}}if(!Nt){var Zt=D!==0?1:0,qt=0;if(Fn[0]===1){var Ft=Fn[1],Ct=Ft[2][1],du=0;if(B){var Wu=0;!qn(x$r,Ct)&&(!Zt||!qn(o$r,Ct))&&(Wu=1),Wu||(ue($0,[0,Ft[1],[21,Ct,Zt,0,0]]),qt=1,du=1)}}var h0=[0,an,Fn],Kr=X0,re=u0,xe=D;ve=1,Hn=1}break}if(!Hn)var lt=Xi($0,Je),ou=Hr($0,jr,oi($0,u(X,$0))),Bu=[0,ou[1],[12,ou[2]]],K7=[0,lt,[0,Bu],0,D!==0?1:0,0,1,0,lr([0,X0],0,0)],Cr=[0,[0,Bu[1],K7]];break;case 2:ve=1;break}if(ve){var Yi=h0[2],a7=h0[1];1-fu($0)&&je($0,12);var Cr=[0,cr([0,jr],function(Ut,bt,B0,D0,Le,He){return function(he){var me=xu(he,85),Zn=pe0(he,86)?u(e,he):[0,He,$Jr];return[0,Le,[0,Zn],me,bt!==0?1:0,B0!==0?1:0,0,Ut,lr([0,D0],0,0)]}}(I0,xe,re,Kr,Yi,a7),$0)]}}Or(O0,$0);var Er=[0,[0,Cr,qr],Br,Mr];continue r}}},b0)}),N(U0,function(B){var Z=A0(B)===41?1:0;if(Z){Y0(B,41);for(var p0=0;;){var b0=[0,u(hr,B),p0],O0=A0(B);if(typeof O0==\"number\"&&O0===9){Y0(B,9);var p0=b0;continue}var M0=de0(B,ye(b0));break}}else var M0=Z;return[0,M0,R(E0,0,0,0,B)]}),N(b,function(B){var Z=z7(B),p0=Z[2],b0=p0[1],O0=Z[1];return ae0(b0)&&ue(B,[0,O0,3]),[0,O0,[0,b0,p0[2]]]}),N(R0,function(B){return cr(0,function(Z){var p0=u(b,Z),b0=A0(Z)===86?[1,u(i,Z)]:[0,j1(Z)];return[0,p0,b0]},B)}),N(X,function(B){var Z=A0(B)===98?1:0;if(Z){1-fu(B)&&je(B,12);var p0=[0,cr(0,function(O0){var M0=pr(O0);Y0(O0,98);for(var er=0,yr=0;;){var vr=cr(0,function(ne){return function(Qr){var be=n(Qr),ae=u(R0,Qr),pe=ae[2],oe=A0(Qr),ce=0;if(typeof oe==\"number\"&&oe===82){ie(Qr);var ge=1,q0=[0,u(e,Qr)];ce=1}if(!ce){ne&&ue(Qr,[0,ae[1],77]);var ge=ne,q0=0}return[0,be,pe[1],pe[2],q0,ge]}}(er),O0),$0=vr[2],Er=[0,[0,vr[1],[0,$0[2],$0[3],$0[1],$0[4]]],yr],Mr=A0(O0),Br=0;if(typeof Mr==\"number\"){var qr=0;if(Mr!==99&&Pn!==Mr&&(qr=1),!qr){var jr=ye(Er);Br=1}}if(!Br){if(Y0(O0,9),A0(O0)!==99){var er=$0[5],yr=Er;continue}var jr=ye(Er)}var $r=pr(O0);return Y0(O0,99),[0,jr,yu([0,M0],[0,we(O0)],$r,0)]}},B)]}else var p0=Z;return p0}),N(s0,function(B){var Z=A0(B)===98?1:0,p0=Z&&[0,cr(0,function(b0){var O0=pr(b0);Y0(b0,98);for(var M0=u2(0,b0),er=0;;){var yr=A0(M0);if(typeof yr==\"number\"){var vr=0;if((yr===99||Pn===yr)&&(vr=1),vr){var $0=ye(er),Er=pr(M0);return Y0(M0,99),[0,$0,yu([0,O0],[0,we(M0)],Er,0)]}}var Mr=[0,u(e,M0),er];A0(M0)!==99&&Y0(M0,9);var er=Mr}},B)];return p0}),N(hr,function(B){return o(Ar,B,u(b,B))}),N(Ar,function(B,Z){function p0(b0){for(var O0=[0,Z[1],[0,Z]];;){var M0=O0[2],er=O0[1];if(A0(b0)===10&&ve0(1,b0)){var yr=cr([0,er],function(qr){return function(jr){return Y0(jr,10),[0,qr,u(b,jr)]}}(M0),b0),vr=yr[1],O0=[0,vr,[1,[0,vr,yr[2]]]];continue}if(A0(b0)===98)var $0=$t(b0),Er=function(Br,qr){return o(Qe(Br,-860373976,77),Br,qr)},Mr=o($0[2],M0,Er);else var Mr=M0;return[0,Mr,u(s0,b0),0]}}return cr([0,Z[1]],p0,B)}),N(or,function(B,Z){var p0=o(Ar,B,Z);return[0,p0[1],[16,p0[2]]]}),N(W0,function(B){var Z=A0(B);return typeof Z==\"number\"&&Z===86?[1,u(i,B)]:[0,j1(B)]}),N(Lr,function(B,Z,p0){var b0=B[2];function O0(Sr){return y7(Sr,lr([0,Z],[0,p0],0))}switch(b0[0]){case 0:var F0=[0,O0(b0[1])];break;case 1:var F0=[1,O0(b0[1])];break;case 2:var F0=[2,O0(b0[1])];break;case 3:var F0=[3,O0(b0[1])];break;case 4:var F0=[4,O0(b0[1])];break;case 5:var F0=[5,O0(b0[1])];break;case 6:var F0=[6,O0(b0[1])];break;case 7:var F0=[7,O0(b0[1])];break;case 8:var F0=[8,O0(b0[1])];break;case 9:var F0=[9,O0(b0[1])];break;case 10:var F0=[10,O0(b0[1])];break;case 11:var M0=b0[1],er=O0(M0[2]),F0=[11,[0,M0[1],er]];break;case 12:var yr=b0[1],vr=O0(yr[4]),F0=[12,[0,yr[1],yr[2],yr[3],vr]];break;case 13:var $0=b0[1],Er=lr([0,Z],[0,p0],0),Mr=JD($0[4],Er),F0=[13,[0,$0[1],$0[2],$0[3],Mr]];break;case 14:var Br=b0[1],qr=O0(Br[3]),F0=[14,[0,Br[1],Br[2],qr]];break;case 15:var jr=b0[1],$r=O0(jr[2]),F0=[15,[0,jr[1],$r]];break;case 16:var ne=b0[1],Qr=O0(ne[3]),F0=[16,[0,ne[1],ne[2],Qr]];break;case 17:var be=b0[1],ae=O0(be[3]),F0=[17,[0,be[1],be[2],ae]];break;case 18:var pe=b0[1],oe=pe[1],ce=pe[2],ge=O0(oe[3]),F0=[18,[0,[0,oe[1],oe[2],ge],ce]];break;case 19:var q0=b0[1],Fr=O0(q0[2]),F0=[19,[0,q0[1],Fr]];break;case 20:var _=b0[1],k=O0(_[2]),F0=[20,[0,_[1],k]];break;case 21:var I=b0[1],U=O0(I[2]),F0=[21,[0,I[1],U]];break;case 22:var Y=b0[1],y0=O0(Y[2]),F0=[22,[0,Y[1],y0]];break;case 23:var P0=b0[1],I0=O0(P0[3]),F0=[23,[0,P0[1],P0[2],I0]];break;case 24:var D=b0[1],u0=O0(D[3]),F0=[24,[0,D[1],D[2],u0]];break;case 25:var X0=b0[1],J0=O0(X0[3]),F0=[25,[0,X0[1],X0[2],J0]];break;default:var ir=b0[1],Q0=O0(ir[2]),F0=[26,[0,ir[1],Q0]]}return[0,B[1],F0]});function Wr(B){var Z=pr(B);if(Y0(B,66),A0(B)===4){var p0=on(Z,pr(B));Y0(B,4),Ku(B,0);var b0=u(t[9],B);return k7(B),Y0(B,5),[0,[0,b0],lr([0,p0],[0,we(B)],0)]}return[0,0,lr([0,Z],[0,we(B)],0)]}var Jr=0;function ar(B){var Z=u2(0,B),p0=A0(Z);return typeof p0==\"number\"&&p0===66?[0,cr(Jr,Wr,Z)]:0}function _r(B){var Z=A0(B),p0=Yn(1,B);if(typeof Z==\"number\"&&Z===86){if(typeof p0==\"number\"&&p0===66){Y0(B,86);var b0=ar(B);return[0,[0,j1(B)],b0]}var O0=u(W0,B),M0=A0(B)===66?o2(B,O0):O0;return[0,M0,ar(B)]}return[0,[0,j1(B)],0]}function Ir(B,Z){var p0=_s(1,Z);Ku(p0,1);var b0=u(B,p0);return k7(p0),b0}function fe(B){return Ir(e,B)}function v0(B){return Ir(b,B)}function P(B){return Ir(X,B)}function L(B){return Ir(s0,B)}function Q(B,Z){return Ir(ur(E0,B,0,0),Z)}function i0(B){return Ir(U0,B)}function l0(B){return Ir(l,B)}function S0(B){return Ir(i,B)}function T0(B){return Ir(W0,B)}function rr(B){return Ir(ar,B)}function L0(B){return Ir(_r,B)}return[0,fe,v0,P,L,function(B){return Ir(hr,B)},Q,i0,l0,S0,T0,rr,L0]}function $ee(t){function n(c,s){if(s[0]===0)return s[1];var p=s[2][1];return Du(function(y){return ue(c,y)},p),s[1]}function e(c,s,p){var y=c?c[1]:26;if(p[0]===0)var T=p[1];else{var E=p[2][2];Du(function(A){return ue(s,A)},E);var T=p[1]}1-u(t[23],T)&&ue(s,[0,T[1],y]);var d=T[2],w=0;return d[0]===10&&js(d[1][2][1])&&(V7(s,[0,T[1],52]),w=1),o(t[19],s,T)}function i(c,s){return[0,[0,c,s[1]],[0,c,s[2]]]}function x(c,s){var p=Lc(c[2],s[2]);return[0,Lc(c[1],s[1]),p]}return[0,n,e,g$r,i,x,function(c){var s=ye(c[2]);return[0,ye(c[1]),s]}]}function Zee(t){function n(S){var M=A0(S);if(typeof M==\"number\"){var K=M-99|0,V=0;if(6>>0?K===14&&(V=1):4<(K-1|0)>>>0&&(V=1),V)return we(S)}var f0=x7(S);return f0&&Ms(S)}function e(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){Y0(f0,0),Y0(f0,12);var m0=u(t[10],f0);return Y0(f0,1),m0},S);k7(S);var V=lr([0,M],[0,n(S)],0);return[0,K[1],[0,K[2],V]]}function i(S){return A0(S)===1?0:[0,u(t[7],S)]}function x(S){var M=pr(S);Ku(S,0);var K=cr(0,function(f0){Y0(f0,0);var m0=i(f0);return Y0(f0,1),m0},S);k7(S);var V=yu([0,M],[0,n(S)],0,0);return[0,K[1],[0,K[2],V]]}function c(S){Ku(S,0);var M=cr(0,function(K){Y0(K,0);var V=A0(K),f0=0;if(typeof V==\"number\"&&V===12){var m0=pr(K);Y0(K,12);var k0=u(t[10],K),x0=[3,[0,k0,lr([0,m0],0,0)]];f0=1}if(!f0)var g0=i(K),e0=g0?0:pr(K),x0=[2,[0,g0,yu(0,0,e0,0)]];return Y0(K,1),x0},S);return k7(S),[0,M[1],M[2]]}function s(S){var M=Pe(S),K=A0(S),V=0;if(typeof K!=\"number\"&&K[0]===7){var f0=K[1];V=1}if(!V){St(FQr,S);var f0=TQr}var m0=pr(S);ie(S);var k0=A0(S),g0=0;if(typeof k0==\"number\"){var e0=k0+CX|0,x0=0;if(72>>0?e0!==76&&(x0=1):70<(e0-1|0)>>>0||(x0=1),!x0){var l=we(S);g0=1}}if(!g0)var l=n(S);return[0,M,[0,f0,lr([0,m0],[0,l],0)]]}function p(S){var M=Yn(1,S);if(typeof M==\"number\"){if(M===10)for(var K=cr(0,function(m0){var k0=[0,s(m0)];return Y0(m0,10),[0,k0,s(m0)]},S);;){var V=A0(S);if(typeof V==\"number\"&&V===10){var f0=function(k0){return function(g0){return Y0(g0,10),[0,[1,k0],s(g0)]}}(K),K=cr([0,K[1]],f0,S);continue}return[2,K]}if(M===86)return[1,cr(0,function(m0){var k0=s(m0);return Y0(m0,86),[0,k0,s(m0)]},S)]}return[0,s(S)]}function y(S){return cr(0,function(M){var K=Yn(1,M),V=0;if(typeof K==\"number\"&&K===86){var f0=[1,cr(0,function(b){var R0=s(b);return Y0(b,86),[0,R0,s(b)]},M)];V=1}if(!V)var f0=[0,s(M)];var m0=A0(M),k0=0;if(typeof m0==\"number\"&&m0===82){Y0(M,82);var g0=pr(M),e0=A0(M),x0=0;if(typeof e0==\"number\")if(e0===0){var l=x(M),c0=l[2],t0=l[1];c0[1]||ue(M,[0,t0,56]);var o0=[0,[1,t0,c0]]}else x0=1;else if(e0[0]===8){Y0(M,e0);var w0=[0,e0[2]],_0=lr([0,g0],[0,n(M)],0),o0=[0,[0,e0[1],[0,w0,e0[3],_0]]]}else x0=1;if(x0){je(M,57);var o0=[0,[0,Pe(M),[0,gQr,SQr,0]]]}var E0=o0;k0=1}if(!k0)var E0=0;return[0,f0,E0]},S)}function T(S){return cr(0,function(M){Y0(M,98);var K=A0(M);if(typeof K==\"number\"){if(K===99)return ie(M),wQr}else if(K[0]===7)for(var V=0,f0=p(M);;){var m0=A0(M);if(typeof m0==\"number\"){if(m0===0){var V=[0,[1,e(M)],V];continue}}else if(m0[0]===7){var V=[0,[0,y(M)],V];continue}var k0=ye(V),g0=[0,c1,[0,f0,xu(M,j7),k0]];return xu(M,99)?[0,g0]:(B1(M,99),[1,g0])}return B1(M,99),EQr},S)}function E(S){return cr(0,function(M){Y0(M,98),Y0(M,j7);var K=A0(M);if(typeof K==\"number\"){if(K===99)return ie(M),Ni}else if(K[0]===7){var V=p(M);return pe0(M,99),[0,c1,[0,V]]}return B1(M,99),Ni},S)}var d=function S(M){return S.fun(M)},w=function S(M){return S.fun(M)},G=function S(M){return S.fun(M)};N(d,function(S){var M=A0(S);if(typeof M==\"number\"){if(M===0)return c(S)}else if(M[0]===8)return Y0(S,M),[0,M[1],[4,[0,M[2],M[3]]]];var K=u(G,S),V=K[2],f0=K[1];return Ni<=V[1]?[0,f0,[1,V[2]]]:[0,f0,[0,V[2]]]});function A(S){switch(S[0]){case 0:return S[1][2][1];case 1:var M=S[1][2],K=Te(hQr,M[2][2][1]);return Te(M[1][2][1],K);default:var V=S[1][2],f0=V[1],m0=f0[0]===0?f0[1][2][1]:A([2,f0[1]]);return Te(m0,Te(dQr,V[2][2][1]))}}return N(w,function(S){var M=pr(S),K=T(S);k7(S);var V=K[2];if(V[0]===0)var f0=V[1],m0=typeof f0==\"number\"?0:f0[2][2],k0=m0;else var k0=1;if(k0)var g0=SU,e0=g0,x0=cr(0,function(qr){return 0},S);else{Ku(S,3);for(var l=Pe(S),c0=0;;){var t0=i2(S),o0=A0(S),w0=0;if(typeof o0==\"number\"){var _0=0;if(o0===98){Ku(S,2);var E0=A0(S),U0=Yn(1,S),b=0;if(typeof E0==\"number\"&&E0===98&&typeof U0==\"number\"){var R0=0;if(j7!==U0&&Pn!==U0&&(R0=1),!R0){var X=E(S),s0=X[2],hr=X[1],Ar=typeof s0==\"number\"?[0,Ni,hr]:[0,c1,[0,hr,s0[2]]],or=S[23][1],W0=0;if(or){var Lr=or[2];if(Lr){var Tr=Lr[2];W0=1}}if(!W0)var Tr=ke(wRr);S[23][1]=Tr;var Hr=n2(S),Or=Yl(S[24][1],Hr);S[25][1]=Or;var fr=[0,ye(c0),t0,Ar];b=1}}if(!b){var Rr=u(w,S),Wr=Rr[2],Jr=Rr[1],ar=Ni<=Wr[1]?[0,Jr,[1,Wr[2]]]:[0,Jr,[0,Wr[2]]],c0=[0,ar,c0];continue}}else if(Pn===o0){St(0,S);var fr=[0,ye(c0),t0,SU]}else w0=1,_0=1;if(!_0)var _r=t0?t0[1]:l,Ir=yt(l,_r),e0=fr[3],x0=[0,Ir,fr[1]]}else w0=1;if(w0){var c0=[0,u(d,S),c0];continue}break}}var fe=we(S),v0=0;if(typeof e0!=\"number\"){var P=e0[1],L=0;if(c1===P){var Q=e0[2],i0=K[2];if(i0[0]===0){var l0=i0[1];if(typeof l0==\"number\")je(S,kQr);else{var S0=A(l0[2][1]);n0(A(Q[2][1]),S0)&&je(S,[17,S0])}}var T0=Q[1]}else if(Ni===P){var rr=K[2];if(rr[0]===0){var L0=rr[1];typeof L0!=\"number\"&&je(S,[17,A(L0[2][1])])}var T0=e0[2]}else L=1;if(!L){var B=T0;v0=1}}if(!v0)var B=K[1];var Z=K[2][1],p0=K[1];if(typeof Z==\"number\"){var b0=0,O0=lr([0,M],[0,fe],0);if(typeof e0!=\"number\"){var M0=e0[1],er=0;if(c1===M0)var yr=e0[2][1];else if(Ni===M0)var yr=e0[2];else er=1;if(!er){var vr=yr;b0=1}}if(!b0)var vr=B;var $0=[0,Ni,[0,p0,vr,x0,O0]]}else{var Er=0,Mr=lr([0,M],[0,fe],0);if(typeof e0!=\"number\"&&c1===e0[1]){var Br=[0,e0[2]];Er=1}if(!Er)var Br=0;var $0=[0,c1,[0,[0,p0,Z[2]],Br,x0,Mr]]}return[0,yt(K[1],B),$0]}),N(G,function(S){return Ku(S,2),u(w,S)}),[0,n,e,i,x,c,s,p,y,T,E,d,w,G]}function Fi(t){return typeof t==\"number\"?0:t[0]===0?1:t[1]}function Qee(t,n){return[0,t,n]}function tb(t,n,e){return[1,2,n,e,t,0]}function ub(t,n,e){return[1,2,t,n,0,e]}function Uc(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return s===1?[0,n,e]:[1,s,n,e,t,i]}function FL(t,n){var e=n!==0?1:0;if(e){if(n!==1){var i=n>>>1|0,x=FL(t,i),c=u(t,0),s=FL(t,(n-i|0)-1|0),p=c[2],y=c[1];return[1,Fi(x)+1|0,y,p,x,s]}var T=u(t,0),E=[0,T[1],T[2]]}else var E=e;return E}function P9(t,n,e,i){var x=Fi(t),c=Fi(i),s=c<=x?x+1|0:c+1|0;return[1,s,n,e,t,i]}function Iu(t,n,e,i){var x=Fi(t),c=Fi(i);if((c+2|0)>>0){if(!(T7<(Or+1|0)>>>0)){var fr=Tr[3],Rr=Tr[4],Wr=ye(Tr[1][4]),Jr=ye(Tr[1][3]),ar=ye(Tr[1][2]),_r=ye(Tr[1][1]),Ir=on(Rr,pr(R0));Y0(R0,1);var fe=A0(R0),v0=0;if(typeof fe==\"number\"){var P=0;if(fe!==1&&Pn!==fe&&(v0=1,P=1),!P)var Q=we(R0)}else v0=1;if(v0)var L=x7(R0),Q=L&&Ms(R0);var i0=yu([0,Lr],[0,Q],Ir,0);if(or)switch(or[1]){case 0:return[0,[0,_r,1,fr,i0]];case 1:return[1,[0,ar,1,fr,i0]];case 2:var l0=1;break;default:return[3,[0,Wr,fr,i0]]}else{var S0=Dc(_r),T0=Dc(ar),rr=Dc(Jr),L0=Dc(Wr),B=0;if(S0===0&&T0===0){var Z=0;if(rr===0&&L0===0&&(B=1,Z=1),!Z){var l0=0;B=2}}var p0=0;switch(B){case 0:if(T0===0&&rr===0&&L0<=S0)return Du(function(K0){return ue(R0,[0,K0[1],[0,E0,K0[2][1][2][1]]])},Wr),[0,[0,_r,0,fr,i0]];if(S0===0&&rr===0&&L0<=T0)return Du(function(K0){return ue(R0,[0,K0[1],[8,E0,K0[2][1][2][1]]])},Wr),[1,[0,ar,0,fr,i0]];ue(R0,[0,U0,[2,E0]]);break;case 1:break;default:p0=1}if(!p0)return[2,[0,zJr,0,fr,i0]]}var b0=Dc(Jr),O0=Dc(Wr);if(b0!==0){var M0=0;if(O0!==0&&(b0>>0)T7<(Er+1|0)>>>0&&(Mr=1);else if(Er===7){Y0(R0,9);var Br=A0(R0),qr=0;if(typeof Br==\"number\"){var jr=0;if(Br!==1&&Pn!==Br&&(jr=1),!jr){var $r=1;qr=1}}if(!qr)var $r=0;ue(R0,[0,er,[7,$r]])}else Mr=1;Mr||($0=1)}$0||ue(R0,[0,er,qJr]);var Tr=[0,Tr[1],Tr[2],1,yr];continue}}var ne=Tr[2],Qr=Tr[1],be=cr(x,i,R0),ae=be[2],pe=ae[1],oe=pe[2][1];if(qn(oe,UJr))var ce=Tr;else{var ge=pe[1],q0=ae[2],Fr=be[1],_=It(oe,0),k=97<=_?1:0,I=k&&(_<=In?1:0);I&&ue(R0,[0,ge,[6,E0,oe]]),o(Mu[3],oe,ne)&&ue(R0,[0,ge,[1,E0,oe]]);var U=Tr[4],Y=Tr[3],y0=o(Mu[4],oe,ne),P0=[0,Tr[1],y0,Y,U],I0=function(Ur){return function(h0,Kr){return or&&or[1]!==h0?ue(R0,[0,Kr,[5,E0,or,Ur]]):0}}(oe);if(typeof q0==\"number\"){var D=0;if(or){var u0=or[1],X0=0;if(u0===1?ue(R0,[0,Fr,[8,E0,oe]]):u0?(D=1,X0=1):ue(R0,[0,Fr,[0,E0,oe]]),!X0)var J0=P0}else D=1;if(D)var J0=[0,[0,Qr[1],Qr[2],Qr[3],[0,[0,Fr,[0,pe]],Qr[4]]],y0,Y,U]}else switch(q0[0]){case 0:ue(R0,[0,q0[1],[5,E0,or,oe]]);var J0=P0;break;case 1:var ir=q0[1];I0(0,ir);var J0=[0,[0,[0,[0,Fr,[0,pe,[0,ir,q0[2]]]],Qr[1]],Qr[2],Qr[3],Qr[4]],y0,Y,U];break;case 2:var Q0=q0[1];I0(1,Q0);var J0=[0,[0,Qr[1],[0,[0,Fr,[0,pe,[0,Q0,q0[2]]]],Qr[2]],Qr[3],Qr[4]],y0,Y,U];break;default:var F0=q0[1];I0(2,F0);var J0=[0,[0,Qr[1],Qr[2],[0,[0,Fr,[0,pe,[0,F0,q0[2]]]],Qr[3]],Qr[4]],y0,Y,U]}var ce=J0}var Sr=A0(R0),mr=0;if(typeof Sr==\"number\"){var Cr=Sr-2|0,sr=0;Xt>>0?T7<(Cr+1|0)>>>0&&(sr=1):Cr===6?(je(R0,1),Y0(R0,8)):sr=1,sr||(mr=1)}mr||Y0(R0,9);var Tr=ce}},o0);return[16,[0,_0,b,lr([0,w0],0,0)]]}var s=0;function p(o0){return cr(s,c,o0)}function y(o0,w0){var _0=w0[2][1],E0=w0[1],U0=o0[1];js(_0)&&V7(U0,[0,E0,41]);var b=O9(_0),R0=b||f2(_0);return R0&&V7(U0,[0,E0,55]),[0,U0,o0[2]]}function T(o0,w0){var _0=w0[2];switch(_0[0]){case 0:return le(E,o0,_0[1][1]);case 1:return le(d,o0,_0[1][1]);case 2:var E0=_0[1][1],U0=E0[2][1],b=o0[2],R0=o0[1];o(Mu[3],U0,b)&&ue(R0,[0,E0[1],42]);var X=y([0,R0,b],E0),s0=o(Mu[4],U0,X[2]);return[0,X[1],s0];default:return ue(o0[1],[0,w0[1],31]),o0}}function E(o0,w0){if(w0[0]===0){var _0=w0[1][2],E0=_0[1],U0=E0[0]===1?y(o0,E0[1]):o0;return T(U0,_0[2])}return T(o0,w0[1][2][1])}function d(o0,w0){return w0[0]===2?o0:T(o0,w0[1][2][1])}function w(o0,w0,_0,E0){var U0=o0[5],b=q1(E0),R0=E0[2],X=R0[3],s0=_s(U0?0:w0,o0),hr=w0||U0||1-b;if(hr){if(_0){var Ar=_0[1],or=Ar[2][1],W0=Ar[1];js(or)&&V7(s0,[0,W0,44]);var Lr=O9(or),Tr=Lr||f2(or);Tr&&V7(s0,[0,W0,55])}var Hr=R0[2],Or=[0,s0,Mu[1]],fr=le(function(ar,_r){return T(ar,_r[2][1])},Or,Hr),Rr=X&&(T(fr,X[1][2][1]),0),Wr=Rr}else var Wr=hr;return Wr}var G=function o0(w0,_0){return o0.fun(w0,_0)};function A(o0){A0(o0)===21&&je(o0,s7);var w0=o(se[18],o0,41),_0=A0(o0)===82?1:0,E0=_0&&(Y0(o0,82),[0,u(se[10],o0)]);return[0,w0,E0]}var S=0;N(G,function(o0,w0){var _0=A0(o0);if(typeof _0==\"number\"){var E0=_0-5|0,U0=0;if(7>>0?is===E0&&(U0=1):5<(E0-1|0)>>>0&&(U0=1),U0){var b=_0===12?1:0;if(b)var R0=pr(o0),X=cr(0,function(or){return Y0(or,12),o(se[18],or,41)},o0),s0=lr([0,R0],0,0),hr=[0,[0,X[1],[0,X[2],s0]]];else var hr=b;return A0(o0)!==5&&je(o0,64),[0,ye(w0),hr]}}var Ar=cr(S,A,o0);return A0(o0)!==5&&Y0(o0,9),o(G,o0,[0,Ar,w0])});function M(o0,w0){function _0(U0){var b=mL(w0,re0(o0,U0)),R0=1,X=b[10]===1?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],R0,b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30]],s0=pr(X);Y0(X,4);var hr=fu(X),Ar=hr&&(A0(X)===21?1:0);if(Ar){var or=pr(X),W0=cr(0,function(ar){return Y0(ar,21),A0(ar)===86?[0,u(t[9],ar)]:(je(ar,Ri),0)},X),Lr=W0[2];if(Lr){A0(X)===9&&ie(X);var Tr=lr([0,or],0,0),Hr=[0,[0,W0[1],[0,Lr[1],Tr]]]}else var Hr=Lr;var Or=Hr}else var Or=Ar;var fr=o(G,X,0),Rr=pr(X);Y0(X,5);var Wr=yu([0,s0],[0,we(X)],Rr,0);return[0,Or,fr[1],fr[2],Wr]}var E0=0;return function(U0){return cr(E0,_0,U0)}}function K(o0,w0,_0,E0,U0){var b=fe0(o0,w0,_0,U0),R0=o(se[16],E0,b);return[0,[0,R0[1]],R0[2]]}function V(o0,w0,_0){var E0=Pe(o0),U0=A0(o0),b=0;if(typeof U0==\"number\")if(s7===U0){var R0=pr(o0);ie(o0);var s0=[0,[0,E0,[0,0,lr([0,R0],0,0)]]]}else if(L7===U0){var X=pr(o0);ie(o0);var s0=[0,[0,E0,[0,1,lr([0,X],0,0)]]]}else b=1;else b=1;if(b)var s0=0;if(s0){var hr=0;if(!w0&&!_0&&(hr=1),!hr)return ue(o0,[0,s0[1][1],7]),0}return s0}function f0(o0){if(Yt===A0(o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return S$r}function m0(o0){if(A0(o0)===64&&!Jl(1,o0)){var w0=pr(o0);return ie(o0),[0,1,w0]}return E$r}function k0(o0){var w0=m0(o0),_0=w0[1],E0=w0[2],U0=cr(0,function(W0){var Lr=pr(W0);Y0(W0,15);var Tr=f0(W0),Hr=Tr[1],Or=pl([0,E0,[0,Lr,[0,Tr[2],0]]]),fr=W0[7],Rr=A0(W0),Wr=0;if(fr&&typeof Rr==\"number\"){if(Rr===4){var Ir=0,fe=0;Wr=1}else if(Rr===98){var Jr=oi(W0,u(t[3],W0)),ar=A0(W0)===4?0:[0,ys(W0,o(se[13],h$r,W0))],Ir=ar,fe=Jr;Wr=1}}if(!Wr)var _r=G1(W0)?ys(W0,o(se[13],d$r,W0)):(be0(W0,k$r),[0,Pe(W0),w$r]),Ir=[0,_r],fe=oi(W0,u(t[3],W0));var v0=u(M(_0,Hr),W0),P=A0(W0)===86?v0:eb(W0,v0),L=u(t[12],W0),Q=L[2],i0=L[1];if(Q)var l0=he0(W0,Q),S0=i0;else var l0=Q,S0=o2(W0,i0);return[0,Hr,fe,Ir,P,S0,l0,Or]},o0),b=U0[2],R0=b[4],X=b[3],s0=b[1],hr=K(o0,_0,s0,0,q1(R0));w(o0,hr[2],X,R0);var Ar=U0[1],or=lr([0,b[7]],0,0);return[23,[0,X,R0,hr[1],_0,s0,b[6],b[5],b[2],or,Ar]]}var g0=0;function e0(o0){return cr(g0,k0,o0)}function x0(o0,w0){var _0=pr(w0);Y0(w0,o0);for(var E0=0,U0=0;;){var b=cr(0,function(or){var W0=o(se[18],or,40);if(xu(or,82))var Lr=0,Tr=[0,u(se[10],or)];else if(W0[2][0]===2)var Lr=0,Tr=0;else var Lr=[0,[0,W0[1],59]],Tr=0;return[0,[0,W0,Tr],Lr]},w0),R0=b[2],X=R0[2],s0=[0,[0,b[1],R0[1]],E0],hr=X?[0,X[1],U0]:U0;if(xu(w0,9)){var E0=s0,U0=hr;continue}var Ar=ye(hr);return[0,ye(s0),_0,Ar]}}var l=24;function c0(o0){return x0(l,o0)}function t0(o0){var w0=x0(27,F9(1,o0)),_0=w0[1],E0=w0[3],U0=ye(le(function(b,R0){return R0[2][2]?b:[0,[0,R0[1],58],b]},E0,_0));return[0,_0,w0[2],U0]}return[0,m0,f0,V,M,K,w,function(o0){return x0(28,F9(1,o0))},t0,c0,e0,p]}(mn),R9=$ee(se),ci=function(t){function n(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,pQr)){if(!n0(i0,mQr)){var l0=n0(Q[2][2][1],_Qr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],yQr);if(!S0)return S0}break;case 0:case 10:case 16:case 19:break;default:return 0}return 1}var e=t[1],i=function P(L){return P.fun(L)},x=function P(L){return P.fun(L)},c=function P(L){return P.fun(L)},s=function P(L){return P.fun(L)},p=function P(L){return P.fun(L)},y=function P(L){return P.fun(L)},T=function P(L){return P.fun(L)},E=function P(L){return P.fun(L)},d=function P(L){return P.fun(L)},w=function P(L){return P.fun(L)},G=function P(L){return P.fun(L)},A=function P(L){return P.fun(L)},S=function P(L){return P.fun(L)},M=function P(L){return P.fun(L)},K=function P(L){return P.fun(L)},V=function P(L){return P.fun(L)},f0=function P(L){return P.fun(L)},m0=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},k0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},g0=function P(L){return P.fun(L)},e0=function P(L){return P.fun(L)},x0=function P(L){return P.fun(L)},l=function P(L,Q,i0,l0,S0){return P.fun(L,Q,i0,l0,S0)},c0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},t0=function P(L){return P.fun(L)},o0=function P(L,Q,i0){return P.fun(L,Q,i0)},w0=function P(L){return P.fun(L)},_0=function P(L,Q,i0){return P.fun(L,Q,i0)},E0=function P(L){return P.fun(L)},U0=function P(L){return P.fun(L)},b=function P(L,Q){return P.fun(L,Q)},R0=function P(L,Q,i0,l0){return P.fun(L,Q,i0,l0)},X=function P(L){return P.fun(L)},s0=function P(L,Q,i0){return P.fun(L,Q,i0)},hr=function P(L){return P.fun(L)},Ar=function P(L){return P.fun(L)},or=function P(L){return P.fun(L)},W0=function P(L,Q,i0){return P.fun(L,Q,i0)},Lr=t[2];function Tr(P){var L=Pe(P),Q=u(y,P),i0=u(p,P);if(i0){var l0=i0[1];return[0,cr([0,L],function(S0){var T0=ur(Lr,0,S0,Q);return[2,[0,l0,T0,u(x,S0),0]]},P)]}return Q}function Hr(P,L){if(typeof L==\"number\"){var Q=L!==55?1:0;if(!Q)return Q}throw Bs}function Or(P){var L=T9(Hr,P),Q=Tr(L),i0=A0(L);if(typeof i0==\"number\"){if(i0===11)throw Bs;if(i0===86){var l0=ue0(L),S0=0;if(l0){var T0=l0[1];if(typeof T0==\"number\"&&T0===5){var rr=1;S0=1}}if(!S0)var rr=0;if(rr)throw Bs}}if(G1(L)){if(Q[0]===0){var L0=Q[1][2];if(L0[0]===10&&!n0(L0[1][2][1],bQr)&&!x7(L))throw Bs}return Q}return Q}N(i,function(P){var L=A0(P),Q=0,i0=G1(P);if(typeof L==\"number\"){var l0=0;if(22<=L)if(L===58){if(P[17])return[0,u(c,P)];l0=1}else L!==98&&(l0=1);else L!==4&&!(21<=L)&&(l0=1);l0||(Q=1)}if(!Q&&!i0)return Tr(P);var S0=0;if(L===64&&fu(P)&&Yn(1,P)===98){var T0=Or,rr=or;S0=1}if(!S0)var T0=or,rr=Or;var L0=EL(P,rr);if(L0)return L0[1];var B=EL(P,T0);return B?B[1]:Tr(P)}),N(x,function(P){return o(e,P,u(i,P))}),N(c,function(P){return cr(0,function(L){L[10]&&je(L,91);var Q=pr(L),i0=Pe(L);Y0(L,58);var l0=Pe(L);if(x2(L))var S0=0,T0=0;else{var rr=xu(L,Yt),L0=A0(L),B=0;if(typeof L0==\"number\"){var Z=0;if(L0!==86)if(10<=L0)Z=1;else switch(L0){case 0:case 2:case 3:case 4:case 6:Z=1;break}if(!Z){var p0=0;B=1}}if(!B)var p0=1;var b0=rr||p0,O0=b0&&[0,u(x,L)],S0=rr,T0=O0}var M0=T0?0:we(L),er=yt(i0,l0);return[30,[0,T0,lr([0,Q],[0,M0],0),S0,er]]},P)}),N(s,function(P){var L=P[2];switch(L[0]){case 17:var Q=L[1],i0=Q[1][2][1];if(n0(i0,cQr)){if(!n0(i0,sQr)){var l0=n0(Q[2][2][1],vQr);if(!l0)return l0}}else{var S0=n0(Q[2][2][1],lQr);if(!S0)return S0}break;case 10:case 16:break;default:return 0}return 1}),N(p,function(P){var L=A0(P),Q=0;if(typeof L==\"number\"){var i0=L-67|0;if(!(15>>0)){switch(i0){case 0:var l0=KZr;break;case 1:var l0=WZr;break;case 2:var l0=JZr;break;case 3:var l0=$Zr;break;case 4:var l0=ZZr;break;case 5:var l0=QZr;break;case 6:var l0=rQr;break;case 7:var l0=eQr;break;case 8:var l0=nQr;break;case 9:var l0=tQr;break;case 10:var l0=uQr;break;case 11:var l0=iQr;break;case 12:var l0=fQr;break;case 13:var l0=xQr;break;case 14:var l0=oQr;break;default:var l0=aQr}var S0=l0;Q=1}}if(!Q)var S0=0;return S0!==0&&ie(P),S0}),N(y,function(P){var L=Pe(P),Q=u(E,P);if(A0(P)===85){ie(P);var i0=u(x,Kl(0,P));Y0(P,86);var l0=cr(0,x,P),S0=yt(L,l0[1]),T0=l0[2];return[0,[0,S0,[7,[0,o(e,P,Q),i0,T0,0]]]]}return Q}),N(T,function(P){return o(e,P,u(y,P))});function fr(P,L,Q,i0,l0){var S0=o(e,P,L);return[0,[0,l0,[15,[0,i0,S0,o(e,P,Q),0]]]]}function Rr(P,L,Q,i0){for(var l0=P,S0=Q,T0=i0;;){var rr=A0(L);if(typeof rr==\"number\"&&rr===84){1-l0&&je(L,zZr),Y0(L,84);var L0=cr(0,d,L),B=L0[2],Z=L0[1],p0=A0(L),b0=0;if(typeof p0==\"number\"&&!(1<(p0-87|0)>>>0)){je(L,[23,oL(p0)]);var O0=Jr(L,B,Z),M0=Wr(L,O0[2],O0[1]),er=M0[2],yr=M0[1];b0=1}if(!b0)var er=B,yr=Z;var vr=yt(T0,yr),l0=1,S0=fr(L,S0,er,2,vr),T0=vr;continue}return[0,T0,S0]}}function Wr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0==\"number\"&&S0===87){ie(P);var T0=cr(0,d,P),rr=Jr(P,T0[2],T0[1]),L0=yt(l0,rr[1]),B=Rr(0,P,fr(P,i0,rr[2],0,L0),L0),i0=B[2],l0=B[1];continue}return[0,l0,i0]}}function Jr(P,L,Q){for(var i0=L,l0=Q;;){var S0=A0(P);if(typeof S0==\"number\"&&S0===88){ie(P);var T0=cr(0,d,P),rr=yt(l0,T0[1]),L0=Rr(0,P,fr(P,i0,T0[2],1,rr),rr),i0=L0[2],l0=L0[1];continue}return[0,l0,i0]}}N(E,function(P){var L=cr(0,d,P),Q=L[2],i0=L[1],l0=A0(P),S0=0;if(typeof l0==\"number\"&&l0===84){var rr=Rr(1,P,Q,i0);S0=1}if(!S0)var T0=Jr(P,Q,i0),rr=Wr(P,T0[2],T0[1]);return rr[2]});function ar(P,L,Q,i0){return[0,i0,[3,[0,Q,P,L,0]]]}N(d,function(P){var L=0;r:for(;;){var Q=cr(0,function(k){var I=u(w,k)!==0?1:0;return[0,I,u(G,Kl(0,k))]},P),i0=Q[2],l0=i0[2],S0=Q[1];if(A0(P)===98){var T0=0;l0[0]===0&&l0[1][2][0]===12?je(P,63):T0=1}var rr=A0(P),L0=0;if(typeof rr==\"number\"){var B=rr-17|0,Z=0;if(1>>0)if(72<=B)switch(B-72|0){case 0:var p0=gZr;break;case 1:var p0=FZr;break;case 2:var p0=TZr;break;case 3:var p0=OZr;break;case 4:var p0=IZr;break;case 5:var p0=AZr;break;case 6:var p0=NZr;break;case 7:var p0=CZr;break;case 8:var p0=PZr;break;case 9:var p0=DZr;break;case 10:var p0=LZr;break;case 11:var p0=RZr;break;case 12:var p0=jZr;break;case 13:var p0=GZr;break;case 14:var p0=MZr;break;case 15:var p0=BZr;break;case 16:var p0=qZr;break;case 17:var p0=UZr;break;case 18:var p0=HZr;break;case 19:var p0=XZr;break;default:Z=1}else Z=1;else var p0=B?YZr:P[12]?0:VZr;if(!Z){var b0=p0;L0=1}}if(!L0)var b0=0;if(b0!==0&&ie(P),!L&&!b0)return l0;if(b0){var O0=b0[1],M0=O0[1],er=i0[1],yr=er&&(M0===14?1:0);yr&&ue(P,[0,S0,27]);for(var vr=o(e,P,l0),$0=vr,Er=[0,M0,O0[2]],Mr=S0,Br=L;;){var qr=Er[2],jr=Er[1];if(Br){var $r=Br[1],ne=$r[2],Qr=ne[2],be=Qr[0]===0?Qr[1]:Qr[1]-1|0;if(qr[1]<=be){var ae=yt($r[3],Mr),pe=ar($r[1],$0,ne[1],ae),$0=pe,Er=[0,jr,qr],Mr=ae,Br=Br[2];continue}}var L=[0,[0,$0,[0,jr,qr],Mr],Br];continue r}}for(var oe=o(e,P,l0),ce=S0,ge=L;;){if(ge){var q0=ge[1],Fr=yt(q0[3],ce),_=ge[2],oe=ar(q0[1],oe,q0[2][1],Fr),ce=Fr,ge=_;continue}return[0,oe]}}}),N(w,function(P){var L=A0(P);if(typeof L==\"number\"){if(48<=L){if(s7<=L){if(!(cf<=L))switch(L-103|0){case 0:return _Zr;case 1:return yZr;case 6:return hZr;case 7:return dZr}}else if(L===65&&P[18])return kZr}else if(45<=L)switch(L+mv|0){case 0:return wZr;case 1:return EZr;default:return SZr}}return 0}),N(G,function(P){var L=Pe(P),Q=pr(P),i0=u(w,P);if(i0){var l0=i0[1];ie(P);var S0=cr(0,A,P),T0=S0[2],rr=yt(L,S0[1]),L0=0;if(l0===6){var B=T0[2],Z=0;switch(B[0]){case 10:V7(P,[0,rr,47]);break;case 16:B[1][2][0]===1&&ue(P,[0,rr,88]);break;default:Z=1}Z||(L0=1)}return[0,[0,rr,[28,[0,l0,T0,lr([0,Q],0,0)]]]]}var p0=A0(P),b0=0;if(typeof p0==\"number\")if(cf===p0)var O0=mZr;else if(T7===p0)var O0=pZr;else b0=1;else b0=1;if(b0)var O0=0;if(O0){ie(P);var M0=cr(0,A,P),er=M0[2];1-u(s,er)&&ue(P,[0,er[1],26]);var yr=er[2],vr=0;yr[0]===10&&js(yr[1][2][1])&&(gi(P,54),vr=1);var $0=yt(L,M0[1]),Er=lr([0,Q],0,0);return[0,[0,$0,[29,[0,O0[1],er,1,Er]]]]}return u(S,P)}),N(A,function(P){return o(e,P,u(G,P))}),N(S,function(P){var L=u(M,P);if(x7(P))return L;var Q=A0(P),i0=0;if(typeof Q==\"number\")if(cf===Q)var l0=bZr;else if(T7===Q)var l0=lZr;else i0=1;else i0=1;if(i0)var l0=0;if(l0){var S0=o(e,P,L);1-u(s,S0)&&ue(P,[0,S0[1],26]);var T0=S0[2],rr=0;T0[0]===10&&js(T0[1][2][1])&&(gi(P,53),rr=1);var L0=Pe(P);ie(P);var B=we(P),Z=yt(S0[1],L0),p0=lr(0,[0,B],0);return[0,[0,Z,[29,[0,l0[1],S0,0,p0]]]]}return L}),N(M,function(P){var L=Pe(P),Q=1-P[16],i0=0,l0=P[16]===0?P:[0,P[1],P[2],P[3],P[4],P[5],P[6],P[7],P[8],P[9],P[10],P[11],P[12],P[13],P[14],P[15],i0,P[17],P[18],P[19],P[20],P[21],P[22],P[23],P[24],P[25],P[26],P[27],P[28],P[29],P[30]],S0=A0(l0),T0=0;if(typeof S0==\"number\"){var rr=S0-44|0;if(!(7>>0)){var L0=0;switch(rr){case 0:if(Q)var B=[0,u(g0,l0)];else L0=1;break;case 6:var B=[0,u(f0,l0)];break;case 7:var B=[0,u(V,l0)];break;default:L0=1}if(!L0){var Z=B;T0=1}}}if(!T0)var Z=Gs(l0)?[0,u(t0,l0)]:u(E0,l0);return p7(m0,0,0,l0,L,Z)}),N(K,function(P){return o(e,P,u(M,P))}),N(V,function(P){switch(P[21]){case 0:var L=0,Q=0;break;case 1:var L=0,Q=1;break;default:var L=1,Q=1}var i0=Pe(P),l0=pr(P);Y0(P,51);var S0=[0,i0,[23,[0,lr([0,l0],[0,we(P)],0)]]],T0=A0(P);if(typeof T0==\"number\"&&!(11<=T0))switch(T0){case 4:var rr=L?S0:(ue(P,[0,i0,5]),[0,i0,[10,Rc(0,[0,i0,oZr])]]);return R(k0,aZr,P,i0,rr);case 6:case 10:var L0=Q?S0:(ue(P,[0,i0,4]),[0,i0,[10,Rc(0,[0,i0,sZr])]]);return R(k0,vZr,P,i0,L0)}return Q?St(cZr,P):ue(P,[0,i0,4]),S0}),N(f0,function(P){return cr(0,function(L){var Q=pr(L),i0=Pe(L);if(Y0(L,50),xu(L,10)){var l0=Rc(0,[0,i0,iZr]),S0=Pe(L);Zl(L,fZr);var T0=Rc(0,[0,S0,xZr]);return[17,[0,l0,T0,lr([0,Q],[0,we(L)],0)]]}var rr=pr(L);Y0(L,4);var L0=ur(s0,[0,rr],0,u(x,Kl(0,L)));return Y0(L,5),[11,[0,L0,lr([0,Q],[0,we(L)],0)]]},P)}),N(m0,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=p7(l,[0,S0],[0,T0],Q,i0,l0),L0=ue0(Q),B=0;if(L0){var Z=L0[1];if(typeof Z==\"number\"&&Z===83){var p0=1;B=1}}if(!B)var p0=0;function b0(vr){var $0=$t(vr);function Er(Br,qr){return o(Qe(Br,Di,78),Br,qr)}var Mr=o(e,vr,rr);return o($0[2],Mr,Er)}function O0(vr,$0,Er){var Mr=u(x0,$0),Br=Mr[1],qr=yt(i0,Br),jr=[0,Er,vr,[0,Br,Mr[2]],0],$r=0;if(!p0&&!T0){var ne=[4,jr];$r=1}if(!$r)var ne=[20,[0,jr,qr,p0]];var Qr=T0||p0;return p7(m0,[0,S0],[0,Qr],$0,i0,[0,[0,qr,ne]])}if(Q[13])return rr;var M0=A0(Q);if(typeof M0==\"number\"){var er=M0-98|0;if(2>>0){if(er===-94)return O0(0,Q,b0(Q))}else if(er!==1&&fu(Q)){var yr=T9(function(vr,$0){throw Bs},Q);return _e0(yr,rr,function(vr){var $0=b0(vr);return O0(u(e0,vr),vr,$0)})}}return rr}),N(k0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(m0,[0,l0],0,L,Q,[0,i0]))}),N(g0,function(P){return cr(0,function(L){var Q=Pe(L),i0=pr(L);if(Y0(L,44),L[11]&&A0(L)===10){var l0=we(L);ie(L);var S0=Rc(lr([0,i0],[0,l0],0),[0,Q,eZr]),T0=A0(L);return typeof T0!=\"number\"&&T0[0]===4&&!n0(T0[3],nZr)?[17,[0,S0,o(se[13],0,L),0]]:(St(tZr,L),ie(L),[10,S0])}var rr=Pe(L),L0=A0(L),B=0;if(typeof L0==\"number\")if(L0===44)var Z=u(g0,L);else if(L0===51)var Z=u(V,_L(1,L));else B=1;else B=1;if(B)var Z=Gs(L)?u(t0,L):u(U0,L);var p0=R(c0,uZr,_L(1,L),rr,Z),b0=A0(L),O0=0;if(typeof b0!=\"number\"&&b0[0]===3){var M0=R(R0,L,rr,p0,b0[1]);O0=1}if(!O0)var M0=p0;var er=0;if(A0(L)!==4){var yr=0;if(fu(L)&&A0(L)===98&&(yr=1),!yr){var Er=M0;er=1}}if(!er)var vr=$t(L),$0=function(ne,Qr){return o(Qe(ne,Di,79),ne,Qr)},Er=o(vr[2],M0,$0);var Mr=fu(L),Br=Mr&&_e0(T9(function(ne,Qr){throw Bs},L),0,e0),qr=A0(L),jr=0;if(typeof qr==\"number\"&&qr===4){var $r=[0,u(x0,L)];jr=1}if(!jr)var $r=0;return[18,[0,Er,Br,$r,lr([0,i0],0,0)]]},P)});function _r(P){var L=pr(P);Y0(P,98);for(var Q=0;;){var i0=A0(P);if(typeof i0==\"number\"){var l0=0;if((i0===99||Pn===i0)&&(l0=1),l0){var S0=ye(Q),T0=pr(P);Y0(P,99);var rr=A0(P)===4?$t(P)[1]:we(P);return[0,S0,yu([0,L],[0,rr],T0,0)]}}var L0=A0(P),B=0;if(typeof L0!=\"number\"&&L0[0]===4&&!n0(L0[2],Q$r)){var Z=Pe(P),p0=pr(P);Zl(P,rZr);var b0=[1,[0,Z,[0,lr([0,p0],[0,we(P)],0)]]];B=1}if(!B)var b0=[0,u(mn[1],P)];var O0=[0,b0,Q];A0(P)!==99&&Y0(P,9);var Q=O0}}N(e0,function(P){Ku(P,1);var L=A0(P)===98?1:0,Q=L&&[0,cr(0,_r,P)];return k7(P),Q});function Ir(P){var L=pr(P);Y0(P,12);var Q=u(x,P);return[0,Q,lr([0,L],0,0)]}N(x0,function(P){return cr(0,function(L){var Q=pr(L);Y0(L,4);for(var i0=0;;){var l0=A0(L);if(typeof l0==\"number\"){var S0=0;if((l0===5||Pn===l0)&&(S0=1),S0){var T0=ye(i0),rr=pr(L);return Y0(L,5),[0,T0,yu([0,Q],[0,we(L)],rr,0)]}}var L0=A0(L),B=0;if(typeof L0==\"number\"&&L0===12){var Z=[1,cr(0,Ir,L)];B=1}if(!B)var Z=[0,u(x,L)];var p0=[0,Z,i0];A0(L)!==5&&Y0(L,9);var i0=p0}},P)}),N(l,function(P,L,Q,i0,l0){var S0=P?P[1]:1,T0=L&&L[1],rr=A0(Q),L0=0;if(typeof rr==\"number\")switch(rr){case 6:ie(Q);var B=0,Z=[0,T0],p0=[0,S0];L0=2;break;case 10:ie(Q);var b0=0,O0=[0,T0],M0=[0,S0];L0=1;break;case 83:1-S0&&je(Q,99),Y0(Q,83);var er=0,yr=A0(Q);if(typeof yr==\"number\")switch(yr){case 4:return l0;case 6:ie(Q);var B=K$r,Z=W$r,p0=[0,S0];L0=2,er=1;break;case 98:if(fu(Q))return l0;break}else if(yr[0]===3)return je(Q,ti),l0;if(!er){var b0=J$r,O0=$$r,M0=[0,S0];L0=1}break}else if(rr[0]===3){T0&&je(Q,ti);var vr=rr[1];return p7(m0,Z$r,0,Q,i0,[0,R(R0,Q,i0,o(e,Q,l0),vr)])}switch(L0){case 0:return l0;case 1:var $0=M0?S0:1,Er=O0&&O0[1],Mr=b0&&b0[1],Br=A0(Q),qr=0;if(typeof Br==\"number\"&&Br===14){var jr=ge0(Q),$r=jr[1],ne=Q[29][1],Qr=jr[2][1];if(ne){var be=ne[1];Q[29][1]=[0,[0,be[1],[0,[0,Qr,$r],be[2]]],ne[2]]}else ue(Q,[0,$r,89]);var pe=[1,jr],oe=$r;qr=1}if(!qr)var ae=z7(Q),pe=[0,ae],oe=ae[1];var ce=yt(i0,oe),ge=0;l0[0]===0&&l0[1][2][0]===23&&pe[0]===1&&(ue(Q,[0,ce,90]),ge=1);var q0=[0,o(e,Q,l0),pe,0],Fr=Er?[21,[0,q0,ce,Mr]]:[16,q0];return p7(m0,[0,$0],[0,Er],Q,i0,[0,[0,ce,Fr]]);default:var _=p0?S0:1,k=Z&&Z[1],I=B&&B[1],U=_L(0,Q),Y=u(se[7],U),y0=Pe(Q);Y0(Q,7);var P0=we(Q),I0=yt(i0,y0),D=lr(0,[0,P0],0),u0=[0,o(e,Q,l0),[2,Y],D],X0=k?[21,[0,u0,I0,I]]:[16,u0];return p7(m0,[0,_],[0,k],Q,i0,[0,[0,I0,X0]])}}),N(c0,function(P,L,Q,i0){var l0=P?P[1]:1;return o(e,L,p7(l,[0,l0],0,L,Q,[0,i0]))}),N(t0,function(P){return cr(0,function(L){var Q=u(Vn[1],L),i0=Q[1],l0=Q[2],S0=cr(0,function(M0){var er=pr(M0);Y0(M0,15);var yr=u(Vn[2],M0),vr=yr[1],$0=pl([0,l0,[0,er,[0,yr[2],0]]]);if(A0(M0)===4)var Er=0,Mr=0;else{var Br=A0(M0),qr=0;if(typeof Br==\"number\"){var jr=Br!==98?1:0;if(!jr){var ne=jr;qr=1}}if(!qr)var $r=mL(vr,re0(i0,M0)),ne=[0,ys($r,o(se[13],z$r,$r))];var Er=oi(M0,u(mn[3],M0)),Mr=ne}var Qr=t2(0,M0),be=ur(Vn[4],i0,vr,Qr),ae=A0(Qr)===86?be:eb(Qr,be),pe=u(mn[12],Qr),oe=pe[2],ce=pe[1];if(oe)var ge=he0(Qr,oe),q0=ce;else var ge=oe,q0=o2(Qr,ce);return[0,Mr,ae,vr,ge,q0,Er,$0]},L),T0=S0[2],rr=T0[3],L0=T0[2],B=T0[1],Z=q1(L0),p0=p7(Vn[5],L,i0,rr,1,Z);R(Vn[6],L,p0[2],B,L0);var b0=S0[1],O0=lr([0,T0[7]],0,0);return[8,[0,B,L0,p0[1],i0,rr,T0[4],T0[5],T0[6],O0,b0]]},P)}),N(o0,function(P,L,Q){switch(L){case 1:gi(P,45);try{var i0=jv(Rv(Te(U$r,Q))),l0=i0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(H$r,Q))}break;case 2:gi(P,46);try{var S0=ol(Q),l0=S0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(X$r,Q))}break;case 4:try{var T0=ol(Q),l0=T0}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(Y$r,Q))}break;default:try{var rr=jv(Rv(Q)),l0=rr}catch(L0){if(L0=Et(L0),L0[1]!==q7)throw L0;var l0=ke(Te(V$r,Q))}}return Y0(P,[0,L,Q]),l0}),N(w0,function(P){var L=un(P);return L!==0&&Xt===It(P,L-1|0)?m7(P,0,L-1|0):P}),N(_0,function(P,L,Q){if(2<=L){var i0=u(w0,Q);try{var l0=ol(i0),S0=l0}catch(Z){if(Z=Et(Z),Z[1]!==q7)throw Z;var S0=ke(Te(B$r,i0))}var T0=S0}else{var rr=u(w0,Q);try{var L0=jv(Rv(rr)),B=L0}catch(p0){if(p0=Et(p0),p0[1]!==q7)throw p0;var B=ke(Te(q$r,rr))}var T0=B}return Y0(P,[1,L,Q]),T0}),N(E0,function(P){var L=Pe(P),Q=pr(P),i0=A0(P);if(typeof i0==\"number\")switch(i0){case 0:var l0=u(se[12],P);return[1,[0,l0[1],[19,l0[2]]],l0[3]];case 4:return[0,u(X,P)];case 6:var S0=cr(0,hr,P),T0=S0[2];return[1,[0,S0[1],[0,T0[1]]],T0[2]];case 21:return ie(P),[0,[0,L,[26,[0,lr([0,Q],[0,we(P)],0)]]]];case 29:return ie(P),[0,[0,L,[14,[0,0,R$r,lr([0,Q],[0,we(P)],0)]]]];case 40:return[0,u(se[22],P)];case 98:var rr=u(se[17],P),L0=rr[2],B=rr[1],Z=Ni<=L0[1]?[13,L0[2]]:[12,L0[2]];return[0,[0,B,Z]];case 30:case 31:ie(P);var p0=i0===31?1:0,b0=p0?G$r:M$r;return[0,[0,L,[14,[0,[1,p0],b0,lr([0,Q],[0,we(P)],0)]]]];case 74:case 105:return[0,u(Ar,P)]}else switch(i0[0]){case 0:var O0=i0[2],M0=[2,ur(o0,P,i0[1],O0)];return[0,[0,L,[14,[0,M0,O0,lr([0,Q],[0,we(P)],0)]]]];case 1:var er=i0[2],yr=[3,ur(_0,P,i0[1],er)];return[0,[0,L,[14,[0,yr,er,lr([0,Q],[0,we(P)],0)]]]];case 2:var vr=i0[1];vr[4]&&gi(P,45),ie(P);var $0=[0,vr[2]],Er=lr([0,Q],[0,we(P)],0);return[0,[0,vr[1],[14,[0,$0,vr[3],Er]]]];case 3:var Mr=o(b,P,i0[1]);return[0,[0,Mr[1],[25,Mr[2]]]]}if(G1(P)){var Br=o(se[13],0,P);return[0,[0,Br[1],[10,Br]]]}St(0,P);var qr=0;return typeof i0!=\"number\"&&i0[0]===6&&(ie(P),qr=1),[0,[0,L,[14,[0,0,j$r,lr([0,Q],[0,0],0)]]]]}),N(U0,function(P){return o(e,P,u(E0,P))}),N(b,function(P,L){var Q=L[3],i0=L[2],l0=L[1],S0=pr(P);Y0(P,[3,L]);var T0=[0,l0,[0,[0,i0[2],i0[1]],Q]];if(Q)var rr=0,L0=[0,T0,0],B=l0;else for(var Z=[0,T0,0],p0=0;;){var b0=u(se[7],P),O0=[0,b0,p0],M0=A0(P),er=0;if(typeof M0==\"number\"&&M0===1){Ku(P,4);var yr=A0(P),vr=0;if(typeof yr!=\"number\"&&yr[0]===3){var $0=yr[1],Er=$0[3],Mr=$0[2],Br=$0[1];ie(P);var qr=[0,[0,Mr[2],Mr[1]],Er];k7(P);var jr=[0,[0,Br,qr],Z];if(!Er){var Z=jr,p0=O0;continue}var $r=ye(O0),ne=[0,Br,ye(jr),$r];er=1,vr=1}if(!vr)throw[0,Sn,P$r]}if(!er){St(D$r,P);var Qr=[0,b0[1],L$r],be=ye(O0),ae=ye([0,Qr,Z]),ne=[0,b0[1],ae,be]}var rr=ne[3],L0=ne[2],B=ne[1];break}var pe=we(P),oe=yt(l0,B);return[0,oe,[0,L0,rr,lr([0,S0],[0,pe],0)]]}),N(R0,function(P,L,Q,i0){var l0=$t(P);function S0(L0,B){return o(Qe(L0,Di,28),L0,B)}var T0=o(l0[2],Q,S0),rr=o(b,P,i0);return[0,yt(L,rr[1]),[24,[0,T0,rr,0]]]}),N(X,function(P){var L=pr(P),Q=cr(0,function(T0){Y0(T0,4);var rr=Pe(T0),L0=u(x,T0),B=A0(T0),Z=0;if(typeof B==\"number\")if(B===9)var p0=[0,ur(W0,T0,rr,[0,L0,0])];else if(B===86)var p0=[1,[0,L0,u(mn[9],T0),0]];else Z=1;else Z=1;if(Z)var p0=[0,L0];return Y0(T0,5),p0},P),i0=Q[2],l0=we(P),S0=i0[0]===0?i0[1]:[0,Q[1],[27,i0[1]]];return ur(s0,[0,L],[0,l0],S0)}),N(s0,function(P,L,Q){var i0=Q[2],l0=P&&P[1],S0=L&&L[1];function T0(Je){return y7(Je,lr([0,l0],[0,S0],0))}function rr(Je){return JD(Je,lr([0,l0],[0,S0],0))}switch(i0[0]){case 0:var L0=i0[1],B=rr(L0[2]),Ne=[0,[0,L0[1],B]];break;case 1:var Z=i0[1],p0=Z[10],b0=T0(Z[9]),Ne=[1,[0,Z[1],Z[2],Z[3],Z[4],Z[5],Z[6],Z[7],Z[8],b0,p0]];break;case 2:var O0=i0[1],M0=T0(O0[4]),Ne=[2,[0,O0[1],O0[2],O0[3],M0]];break;case 3:var er=i0[1],yr=T0(er[4]),Ne=[3,[0,er[1],er[2],er[3],yr]];break;case 4:var vr=i0[1],$0=T0(vr[4]),Ne=[4,[0,vr[1],vr[2],vr[3],$0]];break;case 5:var Er=i0[1],Mr=T0(Er[7]),Ne=[5,[0,Er[1],Er[2],Er[3],Er[4],Er[5],Er[6],Mr]];break;case 7:var Br=i0[1],qr=T0(Br[4]),Ne=[7,[0,Br[1],Br[2],Br[3],qr]];break;case 8:var jr=i0[1],$r=jr[10],ne=T0(jr[9]),Ne=[8,[0,jr[1],jr[2],jr[3],jr[4],jr[5],jr[6],jr[7],jr[8],ne,$r]];break;case 10:var Qr=i0[1],be=Qr[2],ae=T0(be[2]),Ne=[10,[0,Qr[1],[0,be[1],ae]]];break;case 11:var pe=i0[1],oe=T0(pe[2]),Ne=[11,[0,pe[1],oe]];break;case 12:var ce=i0[1],ge=T0(ce[4]),Ne=[12,[0,ce[1],ce[2],ce[3],ge]];break;case 13:var q0=i0[1],Fr=T0(q0[4]),Ne=[13,[0,q0[1],q0[2],q0[3],Fr]];break;case 14:var _=i0[1],k=T0(_[3]),Ne=[14,[0,_[1],_[2],k]];break;case 15:var I=i0[1],U=T0(I[4]),Ne=[15,[0,I[1],I[2],I[3],U]];break;case 16:var Y=i0[1],y0=T0(Y[3]),Ne=[16,[0,Y[1],Y[2],y0]];break;case 17:var P0=i0[1],I0=T0(P0[3]),Ne=[17,[0,P0[1],P0[2],I0]];break;case 18:var D=i0[1],u0=T0(D[4]),Ne=[18,[0,D[1],D[2],D[3],u0]];break;case 19:var X0=i0[1],J0=rr(X0[2]),Ne=[19,[0,X0[1],J0]];break;case 20:var ir=i0[1],Q0=ir[1],F0=ir[3],Sr=ir[2],mr=T0(Q0[4]),Ne=[20,[0,[0,Q0[1],Q0[2],Q0[3],mr],Sr,F0]];break;case 21:var Cr=i0[1],sr=Cr[1],Pr=Cr[3],K0=Cr[2],Ur=T0(sr[3]),Ne=[21,[0,[0,sr[1],sr[2],Ur],K0,Pr]];break;case 22:var h0=i0[1],Kr=T0(h0[2]),Ne=[22,[0,h0[1],Kr]];break;case 23:var Ne=[23,[0,T0(i0[1][1])]];break;case 24:var re=i0[1],xe=T0(re[3]),Ne=[24,[0,re[1],re[2],xe]];break;case 25:var Re=i0[1],ve=T0(Re[3]),Ne=[25,[0,Re[1],Re[2],ve]];break;case 26:var Ne=[26,[0,T0(i0[1][1])]];break;case 27:var Ie=i0[1],Ge=T0(Ie[3]),Ne=[27,[0,Ie[1],Ie[2],Ge]];break;case 28:var Me=i0[1],an=T0(Me[3]),Ne=[28,[0,Me[1],Me[2],an]];break;case 29:var We=i0[1],Ae=T0(We[4]),Ne=[29,[0,We[1],We[2],We[3],Ae]];break;case 30:var cn=i0[1],rn=cn[4],kn=cn[3],vn=T0(cn[2]),Ne=[30,[0,cn[1],vn,kn,rn]];break;default:var Ne=i0}return[0,Q[1],Ne]}),N(hr,function(P){var L=pr(P);Y0(P,6);for(var Q=[0,0,t[3]];;){var i0=Q[2],l0=Q[1],S0=A0(P);if(typeof S0==\"number\"){var T0=0;if(13<=S0)Pn===S0&&(T0=1);else if(7<=S0)switch(S0-7|0){case 2:var rr=Pe(P);ie(P);var Q=[0,[0,[2,rr],l0],i0];continue;case 5:var L0=pr(P),B=cr(0,function(Qr){ie(Qr);var be=u(i,Qr);return be[0]===0?[0,be[1],t[3]]:[0,be[1],be[2]]},P),Z=B[2],p0=Z[2],b0=B[1],O0=lr([0,L0],0,0),M0=[1,[0,b0,[0,Z[1],O0]]],er=A0(P)===7?1:0,yr=0;if(!er&&Yn(1,P)===7){var vr=[0,p0[1],[0,[0,b0,65],p0[2]]];yr=1}if(!yr)var vr=p0;1-er&&Y0(P,9);var Q=[0,[0,M0,l0],o(t[5],vr,i0)];continue;case 0:T0=1;break}if(T0){var $0=u(t[6],i0),Er=ye(l0),Mr=pr(P);return Y0(P,7),[0,[0,Er,yu([0,L],[0,we(P)],Mr,0)],$0]}}var Br=u(i,P);if(Br[0]===0)var qr=t[3],jr=Br[1];else var qr=Br[2],jr=Br[1];A0(P)!==7&&Y0(P,9);var Q=[0,[0,[0,jr],l0],o(t[5],qr,i0)]}}),N(Ar,function(P){Ku(P,5);var L=Pe(P),Q=pr(P),i0=A0(P),l0=0;if(typeof i0!=\"number\"&&i0[0]===5){var S0=i0[3],T0=i0[2];ie(P);var rr=we(P),L0=rr,B=S0,Z=T0,p0=Te(O$r,Te(T0,Te(T$r,S0)));l0=1}if(!l0){St(I$r,P);var L0=0,B=A$r,Z=N$r,p0=C$r}k7(P);var b0=$n(un(B)),O0=un(B)-1|0,M0=0;if(!(O0<0))for(var er=M0;;){var yr=Vr(B,er),vr=yr-100|0,$0=0;if(!(21>>0))switch(vr){case 0:case 3:case 5:case 9:case 15:case 17:case 21:qi(b0,yr),$0=1;break}var Er=er+1|0;if(O0!==er){var er=Er;continue}break}var Mr=Mt(b0);return n0(Mr,B)&&je(P,[13,B]),[0,L,[14,[0,[4,[0,Z,Mr]],p0,lr([0,Q],[0,L0],0)]]]});function fe(P,L){if(typeof L==\"number\"){var Q=0;if(61<=L){var i0=L-64|0;27>>0?i0===43&&(Q=1):25<(i0-1|0)>>>0&&(Q=1)}else{var l0=L+_y|0;17>>0?-1<=l0&&(Q=1):l0===13&&(Q=1)}if(Q)return 0}throw Bs}function v0(P){var L=A0(P);if(typeof L==\"number\"&&!L){var Q=o(se[16],1,P);return[0,[0,Q[1]],Q[2]]}return[0,[1,u(se[10],P)],0]}return N(or,function(P){var L=T9(fe,P),Q=Pe(L);if(Yn(1,L)===11)var l0=0,S0=0;else var i0=u(Vn[1],L),l0=i0[2],S0=i0[1];var T0=cr(0,function(ne){var Qr=oi(ne,u(mn[3],ne));if(G1(ne)&&Qr===0){var be=o(se[13],F$r,ne),ae=be[1],pe=[0,ae,[0,[0,ae,[2,[0,be,[0,j1(ne)],0]]],0]];return[0,Qr,[0,ae,[0,0,[0,pe,0],0,0]],[0,[0,ae[1],ae[3],ae[3]]],0]}var oe=ur(Vn[4],ne[18],ne[17],ne),ce=u2(1,ne),ge=u(mn[12],ce);return[0,Qr,oe,ge[1],ge[2]]},L),rr=T0[2],L0=rr[2],B=L0[2],Z=0;if(!B[1]){var p0=0;if(!B[3]&&B[2]&&(p0=1),!p0){var b0=ie0(L);Z=1}}if(!Z)var b0=L;var O0=L0[2],M0=O0[1],er=M0?(ue(b0,[0,M0[1][1],Zc]),[0,L0[1],[0,0,O0[2],O0[3],O0[4]]]):L0,yr=q1(er),vr=x7(b0),$0=vr&&(A0(b0)===11?1:0);$0&&je(b0,60),Y0(b0,11);var Er=fe0(ie0(b0),S0,0,yr),Mr=cr(0,v0,Er),Br=Mr[2];R(Vn[6],Er,Br[2],0,er);var qr=yt(Q,Mr[1]),jr=T0[1],$r=lr([0,l0],0,0);return[0,[0,qr,[1,[0,0,er,Br[1],S0,0,rr[4],rr[3],rr[1],$r,jr]]]]}),N(W0,function(P,L,Q){return cr([0,L],function(i0){for(var l0=Q;;){var S0=A0(i0);if(typeof S0==\"number\"&&S0===9){ie(i0);var l0=[0,u(x,i0),l0];continue}return[22,[0,ye(l0),0]]}},P)}),[0,x,i,T,n,K,o0,W0]}(R9),Us=function(t){function n(e0){var x0=pr(e0);ie(e0);var l=lr([0,x0],0,0),c0=u(ci[5],e0),t0=x7(e0)?rb(e0):N9(e0);function o0(w0,_0){return o(Qe(w0,Di,80),w0,_0)}return[0,o(t0[2],c0,o0),l]}function e(e0){var x0=e0[27][2];if(x0)for(var l=0;;){var c0=A0(e0);if(typeof c0==\"number\"&&c0===13){var l=[0,cr(0,n,e0),l];continue}return ye(l)}return x0}function i(e0,x0){var l=e0&&e0[1],c0=pr(x0),t0=A0(x0);if(typeof t0==\"number\")switch(t0){case 6:var o0=cr(0,function(Jr){var ar=pr(Jr);Y0(Jr,6);var _r=Kl(0,Jr),Ir=u(se[10],_r);return Y0(Jr,7),[0,Ir,lr([0,ar],[0,we(Jr)],0)]},x0),w0=o0[1];return[0,w0,[3,[0,w0,o0[2]]]];case 14:if(l){var _0=ge0(x0),E0=x0[29][1],U0=_0[2][1];if(E0){var b=E0[1],R0=E0[2],X=b[2],s0=[0,[0,o(Mu[4],U0,b[1]),X],R0];x0[29][1]=s0}else ke(Ujr);return[0,_0[1],[2,_0]]}var hr=cr(0,function(Jr){return ie(Jr),[1,z7(Jr)]},x0),Ar=hr[1];return ue(x0,[0,Ar,89]),[0,Ar,hr[2]]}else switch(t0[0]){case 0:var or=t0[2],W0=Pe(x0),Lr=[2,ur(ci[6],x0,t0[1],or)];return[0,W0,[0,[0,W0,[0,Lr,or,lr([0,c0],[0,we(x0)],0)]]]];case 2:var Tr=t0[1],Hr=Tr[4],Or=Tr[3],fr=Tr[2],Rr=Tr[1];return Hr&&gi(x0,45),Y0(x0,[2,[0,Rr,fr,Or,Hr]]),[0,Rr,[0,[0,Rr,[0,[0,fr],Or,lr([0,c0],[0,we(x0)],0)]]]]}var Wr=z7(x0);return[0,Wr[1],[1,Wr]]}function x(e0,x0,l){var c0=u(Vn[2],e0),t0=c0[1],o0=c0[2],w0=i([0,x0],e0),_0=w0[1],E0=0,U0=Xi(e0,w0[2]);return[0,U0,cr(0,function(b){var R0=t2(1,b),X=cr(0,function(Tr){var Hr=ur(Vn[4],0,0,Tr),Or=0,fr=A0(Tr)===86?Hr:eb(Tr,Hr);if(l){var Rr=fr[2],Wr=0;if(Rr[1])ue(Tr,[0,_0,j7]),Wr=1;else{var Jr=0;!Rr[2]&&!Rr[3]&&(Wr=1,Jr=1),Jr||ue(Tr,[0,_0,80])}}else{var ar=fr[2];if(ar[1])ue(Tr,[0,_0,Yt]);else{var _r=ar[2],Ir=0;(!_r||_r[2]||ar[3])&&(Ir=1),Ir&&(ar[3]?ue(Tr,[0,_0,81]):ue(Tr,[0,_0,81]))}}return[0,Or,fr,o2(Tr,u(mn[10],Tr))]},R0),s0=X[2],hr=s0[2],Ar=q1(hr),or=p7(Vn[5],R0,E0,t0,0,Ar);R(Vn[6],R0,or[2],0,hr);var W0=X[1],Lr=lr([0,o0],0,0);return[0,0,hr,or[1],E0,t0,0,s0[3],s0[1],Lr,W0]},e0)]}function c(e0){var x0=u(ci[2],e0);return x0[0]===0?[0,x0[1],t[3]]:[0,x0[1],x0[2]]}function s(e0,x0){switch(x0[0]){case 0:var l=x0[1],c0=l[1];return ue(e0,[0,c0,95]),[0,c0,[14,l[2]]];case 1:var t0=x0[1],o0=t0[2][1],w0=t0[1],_0=0;return kL(o0)&&n0(o0,KQr)&&n0(o0,WQr)&&(ue(e0,[0,w0,2]),_0=1),!_0&&f2(o0)&&V7(e0,[0,w0,55]),[0,w0,[10,t0]];case 2:return ke(JQr);default:var E0=x0[1][2][1];return ue(e0,[0,E0[1],96]),E0}}function p(e0,x0,l){function c0(o0){var w0=t2(1,o0),_0=cr(0,function(hr){var Ar=oi(hr,u(mn[3],hr));if(e0)if(x0)var or=1,W0=1;else var or=hr[18],W0=0;else if(x0)var or=0,W0=1;else var or=0,W0=0;var Lr=ur(Vn[4],or,W0,hr),Tr=A0(hr)===86?Lr:eb(hr,Lr);return[0,Ar,Tr,o2(hr,u(mn[10],hr))]},w0),E0=_0[2],U0=E0[2],b=q1(U0),R0=p7(Vn[5],w0,e0,x0,0,b);R(Vn[6],w0,R0[2],0,U0);var X=_0[1],s0=lr([0,l],0,0);return[0,0,U0,R0[1],e0,x0,0,E0[3],E0[1],s0,X]}var t0=0;return function(o0){return cr(t0,c0,o0)}}function y(e0){return Y0(e0,86),c(e0)}function T(e0,x0,l,c0,t0,o0){var w0=cr([0,x0],function(E0){if(!c0&&!t0){var U0=A0(E0);if(typeof U0==\"number\"){var b=0;if(86<=U0){if(U0===98)b=1;else if(!(87<=U0)){var R0=y(E0);return[0,[0,l,R0[1],0],R0[2]]}}else{if(U0===82){if(l[0]===1)var X=l[1],s0=Pe(E0),hr=function(Rr){var Wr=pr(Rr);Y0(Rr,82);var Jr=we(Rr),ar=o(se[19],Rr,[0,X[1],[10,X]]),_r=u(se[10],Rr);return[2,[0,0,ar,_r,lr([0,Wr],[0,Jr],0)]]},Ar=cr([0,X[1]],hr,E0),or=[0,Ar,[0,[0,[0,s0,[10,Ml(zQr)]],0],0]];else var or=y(E0);return[0,[0,l,or[1],1],or[2]]}if(!(10<=U0))switch(U0){case 4:b=1;break;case 1:case 9:var W0=[0,l,s(E0,l),1];return[0,W0,t[3]]}}if(b){var Lr=Xi(E0,l),Tr=[1,Lr,u(p(c0,t0,o0),E0)];return[0,Tr,t[3]]}}var Hr=[0,l,s(E0,l),1];return[0,Hr,t[3]]}var Or=Xi(E0,l),fr=[1,Or,u(p(c0,t0,o0),E0)];return[0,fr,t[3]]},e0),_0=w0[2];return[0,[0,[0,w0[1],_0[1]]],_0[2]]}function E(e0){var x0=cr(0,function(c0){var t0=pr(c0);Y0(c0,0);for(var o0=0,w0=[0,0,t[3]];;){var _0=w0[2],E0=w0[1],U0=A0(c0);if(typeof U0==\"number\"){var b=0;if((U0===1||Pn===U0)&&(b=1),b){var R0=o0?[0,_0[1],[0,[0,o0[1],98],_0[2]]]:_0,X=u(t[6],R0),s0=ye(E0),hr=pr(c0);return Y0(c0,1),[0,[0,s0,yu([0,t0],[0,we(c0)],hr,0)],X]}}if(A0(c0)===12)var Ar=pr(c0),or=cr(0,function(y0){return Y0(y0,12),c(y0)},c0),W0=or[2],Lr=W0[2],Tr=lr([0,Ar],0,0),Hr=[0,[1,[0,or[1],[0,W0[1],Tr]]],Lr];else{var Or=Pe(c0),fr=Yn(1,c0),Rr=0;if(typeof fr==\"number\"){var Wr=0;if(86<=fr)fr!==98&&87<=fr&&(Wr=1);else if(fr!==82)if(10<=fr)Wr=1;else switch(fr){case 1:case 4:case 9:break;default:Wr=1}if(!Wr){var ar=0,_r=0;Rr=1}}if(!Rr)var Jr=u(Vn[1],c0),ar=Jr[2],_r=Jr[1];var Ir=u(Vn[2],c0),fe=Ir[1],v0=on(ar,Ir[2]),P=A0(c0),L=0;if(!_r&&!fe&&typeof P!=\"number\"&&P[0]===4){var Q=P[3],i0=0;if(n0(Q,YQr))if(n0(Q,VQr))i0=1;else{var l0=pr(c0),S0=i(0,c0)[2],T0=A0(c0),rr=0;if(typeof T0==\"number\"){var L0=0;if(86<=T0)T0!==98&&87<=T0&&(L0=1);else if(T0!==82)if(10<=T0)L0=1;else switch(T0){case 1:case 4:case 9:break;default:L0=1}if(!L0){var B=T(c0,Or,S0,0,0,0);rr=1}}if(!rr){Xi(c0,S0);var Z=t[3],p0=cr([0,Or],function(I0){return x(I0,0,0)},c0),b0=p0[2],O0=lr([0,l0],0,0),B=[0,[0,[0,p0[1],[3,b0[1],b0[2],O0]]],Z]}var M0=B}else{var er=pr(c0),yr=i(0,c0)[2],vr=A0(c0),$0=0;if(typeof vr==\"number\"){var Er=0;if(86<=vr)vr!==98&&87<=vr&&(Er=1);else if(vr!==82)if(10<=vr)Er=1;else switch(vr){case 1:case 4:case 9:break;default:Er=1}if(!Er){var Mr=T(c0,Or,yr,0,0,0);$0=1}}if(!$0){Xi(c0,yr);var Br=t[3],qr=cr([0,Or],function(D){return x(D,0,1)},c0),jr=qr[2],$r=lr([0,er],0,0),Mr=[0,[0,[0,qr[1],[2,jr[1],jr[2],$r]]],Br]}var M0=Mr}if(!i0){var ne=M0;L=1}}if(!L)var ne=T(c0,Or,i(0,c0)[2],_r,fe,v0);var Hr=ne}var Qr=Hr[1],be=0;if(Qr[0]===1&&A0(c0)===9){var ae=[0,Pe(c0)];be=1}if(!be)var ae=0;var pe=o(t[5],Hr[2],_0),oe=A0(c0),ce=0;if(typeof oe==\"number\"){var ge=oe-2|0,q0=0;if(Xt>>0?T7<(ge+1|0)>>>0&&(q0=1):ge===7?ie(c0):q0=1,!q0){var Fr=pe;ce=1}}if(!ce){var _=aL(dRr,9),k=le0([0,_],A0(c0)),I=[0,Pe(c0),k];xu(c0,8);var Fr=o(t[4],I,pe)}var o0=ae,w0=[0,[0,Qr,E0],Fr]}},e0),l=x0[2];return[0,x0[1],l[1],l[2]]}function d(e0,x0,l,c0){var t0=l[2][1],o0=l[1];if(qn(t0,XQr))return ue(e0,[0,o0,[21,t0,0,QY===c0?1:0,1]]),x0;var w0=o(L9[32],t0,x0);if(w0){var _0=w0[1],E0=0;return SE===c0?Fh===_0&&(E0=1):Fh===c0&&SE===_0&&(E0=1),E0||ue(e0,[0,o0,[20,t0]]),ur(L9[4],t0,KX,x0)}return ur(L9[4],t0,c0,x0)}function w(e0,x0){return cr(0,function(l){var c0=x0&&pr(l);Y0(l,52);for(var t0=0;;){var o0=[0,cr(0,function(E0){var U0=u(mn[2],E0);if(A0(E0)===98)var b=$t(E0),R0=function(s0,hr){return o(Qe(s0,Nv,81),s0,hr)},X=o(b[2],U0,R0);else var X=U0;return[0,X,u(mn[4],E0)]},l),t0],w0=A0(l);if(typeof w0==\"number\"&&w0===9){Y0(l,9);var t0=o0;continue}var _0=ye(o0);return[0,_0,lr([0,c0],0,0)]}},e0)}function G(e0,x0){return x0&&ue(e0,[0,x0[1][1],7])}function A(e0,x0){return x0&&ue(e0,[0,x0[1],68])}function S(e0,x0,l,c0,t0,o0,w0,_0,E0,U0){for(;;){var b=A0(e0),R0=0;if(typeof b==\"number\"){var X=b-1|0,s0=0;if(7>>0){var hr=X-81|0;if(4
>>0)s0=1;else switch(hr){case 3:St(0,e0),ie(e0);continue;case 0:case 4:break;default:s0=1}}else 5<(X-1|0)>>>0||(s0=1);!s0&&!t0&&!o0&&(R0=1)}if(!R0){var Ar=A0(e0),or=0;if(typeof Ar==\"number\"){var W0=0;if(Ar!==4&&Ar!==98&&(or=1,W0=1),!W0)var Tr=0}else or=1;if(or)var Lr=x2(e0),Tr=Lr&&1;if(!Tr){A(e0,_0),G(e0,E0);var Hr=0;if(!w0){var Or=0;switch(c0[0]){case 0:var fr=c0[1][2][1],Rr=0;typeof fr!=\"number\"&&fr[0]===0&&(n0(fr[1],jQr)&&(Or=1),Rr=1),Rr||(Or=1);break;case 1:n0(c0[1][2][1],GQr)&&(Or=1);break;default:Or=1}if(!Or){var Wr=t2(2,e0),Jr=0;Hr=1}}if(!Hr)var Wr=t2(1,e0),Jr=1;var ar=Xi(Wr,c0),_r=cr(0,function(S0){var T0=cr(0,function(p0){var b0=oi(p0,u(mn[3],p0));if(t0)if(o0)var O0=1,M0=1;else var O0=p0[18],M0=0;else if(o0)var O0=0,M0=1;else var O0=0,M0=0;var er=ur(Vn[4],O0,M0,p0),yr=A0(p0)===86?er:eb(p0,er),vr=yr[2],$0=vr[1],Er=0;if($0&&Jr===0){ue(p0,[0,$0[1][1],is]);var Mr=[0,yr[1],[0,0,vr[2],vr[3],vr[4]]];Er=1}if(!Er)var Mr=yr;return[0,b0,Mr,o2(p0,u(mn[10],p0))]},S0),rr=T0[2],L0=rr[2],B=q1(L0),Z=p7(Vn[5],S0,t0,o0,0,B);return R(Vn[6],S0,Z[2],0,L0),[0,0,L0,Z[1],t0,o0,0,rr[3],rr[1],0,T0[1]]},Wr),Ir=[0,Jr,ar,_r,w0,l,lr([0,U0],0,0)];return[0,[0,yt(x0,_r[1]),Ir]]}}var fe=cr([0,x0],function(S0){var T0=u(mn[10],S0),rr=A0(S0);if(_0){var L0=0;if(typeof rr==\"number\"&&rr===82){je(S0,69),ie(S0);var B=0}else L0=1;if(L0)var B=0}else{var Z=0;if(typeof rr==\"number\"&&rr===82){ie(S0);var p0=t2(1,S0),B=[0,u(se[7],p0)]}else Z=1;if(Z)var B=1}var b0=A0(S0),O0=0;if(typeof b0==\"number\"&&!(9<=b0))switch(b0){case 8:ie(S0);var M0=A0(S0),er=0;if(typeof M0==\"number\"){var yr=0;if(M0!==1&&Pn!==M0&&(er=1,yr=1),!yr)var $0=we(S0)}else er=1;if(er)var vr=x7(S0),$0=vr&&Ms(S0);var Er=[0,c0,T0,B,$0];O0=1;break;case 4:case 6:St(0,S0);var Er=[0,c0,T0,B,0];O0=1;break}if(!O0){var Mr=A0(S0),Br=0;if(typeof Mr==\"number\"){var qr=0;if(Mr!==1&&Pn!==Mr&&(Br=1,qr=1),!qr)var jr=[0,0,function(q0,Fr){return q0}]}else Br=1;if(Br)var jr=x7(S0)?rb(S0):N9(S0);if(typeof B==\"number\")if(T0[0]===0)var $r=function(_,k){return o(Qe(_,qY,83),_,k)},be=B,ae=T0,pe=o(jr[2],c0,$r);else var ne=function(_,k){return o(Qe(_,OE,84),_,k)},be=B,ae=[1,o(jr[2],T0[1],ne)],pe=c0;else var Qr=function(ge,q0){return o(Qe(ge,Di,85),ge,q0)},be=[0,o(jr[2],B[1],Qr)],ae=T0,pe=c0;var Er=[0,pe,ae,be,0]}var oe=lr([0,U0],[0,Er[4]],0);return[0,Er[1],Er[2],Er[3],oe]},e0),v0=fe[2],P=v0[4],L=v0[3],Q=v0[2],i0=v0[1],l0=fe[1];return i0[0]===2?[2,[0,l0,[0,i0[1],L,Q,w0,E0,P]]]:[1,[0,l0,[0,i0,L,Q,w0,E0,P]]]}}function M(e0,x0){var l=Yn(e0,x0);if(typeof l==\"number\"){var c0=0;if(86<=l)(l===98||!(87<=l))&&(c0=1);else if(l===82)c0=1;else if(!(9<=l))switch(l){case 1:case 4:case 8:c0=1;break}if(c0)return 1}return 0}var K=0;function V(e0){return M(K,e0)}function f0(e0,x0,l,c0){var t0=e0&&e0[1],o0=_s(1,x0),w0=on(t0,e(o0)),_0=pr(o0);Y0(o0,40);var E0=F9(1,o0),U0=A0(E0),b=0;if(l&&typeof U0==\"number\"){var R0=0;if(52<=U0?U0!==98&&53<=U0&&(R0=1):U0!==41&&U0&&(R0=1),!R0){var Ar=0;b=1}}if(!b)if(G1(o0))var X=o(se[13],0,E0),s0=$t(o0),hr=function(v0,P){return o(Qe(v0,Nv,88),v0,P)},Ar=[0,o(s0[2],X,hr)];else{be0(o0,NQr);var Ar=[0,[0,Pe(o0),CQr]]}var or=u(mn[3],o0);if(or)var W0=$t(o0),Lr=function(v0,P){return o(Qe(v0,bF,86),v0,P)},Tr=[0,o(W0[2],or[1],Lr)];else var Tr=or;var Hr=pr(o0),Or=xu(o0,41);if(Or)var fr=cr(0,function(v0){var P=mL(0,v0),L=u(ci[5],P);if(A0(v0)===98)var Q=$t(v0),i0=function(T0,rr){return o(Qe(T0,Di,82),T0,rr)},l0=o(Q[2],L,i0);else var l0=L;var S0=u(mn[4],v0);return[0,l0,S0,lr([0,Hr],0,0)]},o0),Rr=fr[1],Wr=$t(o0),Jr=function(v0,P){return ur(Qe(v0,-663447790,87),v0,Rr,P)},ar=[0,[0,Rr,o(Wr[2],fr[2],Jr)]];else var ar=Or;var _r=A0(o0)===52?1:0;if(_r){1-fu(o0)&&je(o0,16);var Ir=[0,ke0(o0,w(o0,1))]}else var Ir=_r;var fe=cr(0,function(v0){var P=pr(v0);if(xu(v0,0)){v0[29][1]=[0,[0,Mu[1],0],v0[29][1]];for(var L=0,Q=L9[1],i0=0;;){var l0=A0(v0);if(typeof l0==\"number\"){var S0=l0-2|0;if(Xt>>0){if(!(T7<(S0+1|0)>>>0)){var T0=ye(i0),rr=function(ou,Bu){return u(ml(function(K7){return 1-o(Mu[3],K7[1],ou)}),Bu)},L0=v0[29][1];if(L0){var B=L0[1],Z=B[1];if(L0[2]){var p0=L0[2],b0=rr(Z,B[2]),O0=bl(p0),M0=az(p0),er=on(O0[2],b0);v0[29][1]=[0,[0,O0[1],er],M0]}else{var yr=rr(Z,B[2]);Du(function(ou){return ue(v0,[0,ou[2],[22,ou[1]]])},yr),v0[29][1]=0}}else ke(Hjr);Y0(v0,1);var vr=A0(v0),$0=0;if(!c0){var Er=0;if(typeof vr==\"number\"&&(vr===1||Pn===vr)&&(Er=1),!Er){var Mr=x7(v0);if(Mr){var Br=Ms(v0);$0=1}else{var Br=Mr;$0=1}}}if(!$0)var Br=we(v0);return[0,T0,lr([0,P],[0,Br],0)]}}else if(S0===6){Y0(v0,8);continue}}var qr=Pe(v0),jr=e(v0),$r=A0(v0),ne=0;if(typeof $r==\"number\"&&$r===60&&!M(1,v0)){var Qr=[0,Pe(v0)],be=pr(v0);ie(v0);var ae=be,pe=Qr;ne=1}if(!ne)var ae=0,pe=0;var oe=Yn(1,v0)!==4?1:0;if(oe)var ce=Yn(1,v0)!==98?1:0,ge=ce&&(A0(v0)===42?1:0);else var ge=oe;if(ge){var q0=pr(v0);ie(v0);var Fr=q0}else var Fr=ge;var _=A0(v0)===64?1:0;if(_)var k=1-M(1,v0),I=k&&1-Jl(1,v0);else var I=_;if(I){var U=pr(v0);ie(v0);var Y=U}else var Y=I;var y0=u(Vn[2],v0),P0=y0[1],I0=ur(Vn[3],v0,I,P0),D=0;if(!P0&&I0){var u0=u(Vn[2],v0),X0=u0[2],J0=u0[1];D=1}if(!D)var X0=y0[2],J0=P0;var ir=pl([0,ae,[0,Fr,[0,Y,[0,X0,0]]]]),Q0=A0(v0),F0=0;if(!I&&!J0&&typeof Q0!=\"number\"&&Q0[0]===4){var Sr=Q0[3];if(n0(Sr,MQr)){if(!n0(Sr,BQr)){var mr=pr(v0),Cr=i(qQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Cr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Cr);var sr=on(ir,mr),Pr=cr([0,qr],function(Bu){return x(Bu,1,0)},v0),K0=Pr[2],Ur=lr([0,sr],0,0),Ie=[0,[0,Pr[1],[0,3,K0[1],K0[2],ge,jr,Ur]]];F0=1}}}else{var h0=pr(v0),Kr=i(UQr,v0)[2];if(V(v0)){var Ie=S(v0,qr,jr,Kr,I,J0,ge,pe,I0,ir);F0=1}else{A(v0,pe),G(v0,I0),Xi(v0,Kr);var re=on(ir,h0),xe=cr([0,qr],function(Bu){return x(Bu,1,1)},v0),Re=xe[2],ve=lr([0,re],0,0),Ie=[0,[0,xe[1],[0,2,Re[1],Re[2],ge,jr,ve]]];F0=1}}}if(!F0)var Ie=S(v0,qr,jr,i(HQr,v0)[2],I,J0,ge,pe,I0,ir);switch(Ie[0]){case 0:var Ge=Ie[1],Me=Ge[2];switch(Me[1]){case 0:if(Me[4])var Ft=Q,Ct=L;else{L&&ue(v0,[0,Ge[1],87]);var Ft=Q,Ct=1}break;case 1:var an=Me[2],We=an[0]===2?d(v0,Q,an[1],QY):Q,Ft=We,Ct=L;break;case 2:var Ae=Me[2],cn=Ae[0]===2?d(v0,Q,Ae[1],SE):Q,Ft=cn,Ct=L;break;default:var rn=Me[2],kn=rn[0]===2?d(v0,Q,rn[1],Fh):Q,Ft=kn,Ct=L}break;case 1:var vn=Ie[1][2],Ne=vn[4],Je=vn[1],en=0;switch(Je[0]){case 0:var _n=Je[1],Cn=_n[2][1],Hn=0;if(typeof Cn!=\"number\"&&Cn[0]===0){var vt=Cn[1],Nt=_n[1];en=1,Hn=1}Hn||(en=2);break;case 1:var Fn=Je[1],vt=Fn[2][1],Nt=Fn[1];en=1;break;case 2:ke(PQr);break;default:en=2}switch(en){case 1:var gt=qn(vt,DQr);if(gt)var qt=gt;else var Zt=qn(vt,LQr),qt=Zt&&Ne;qt&&ue(v0,[0,Nt,[21,vt,Ne,0,0]]);break;case 2:break}var Ft=Q,Ct=L;break;default:var Ft=d(v0,Q,Ie[1][2][1],KX),Ct=L}var L=Ct,Q=Ft,i0=[0,Ie,i0]}}return B1(v0,0),RQr},o0);return[0,Ar,fe,Tr,ar,Ir,w0,lr([0,_0],0,0)]}function m0(e0,x0){return cr(0,function(l){return[2,f0([0,x0],l,l[7],0)]},e0)}function k0(e0){return[5,f0(0,e0,1,1)]}var g0=0;return[0,i,E,m0,function(e0){return cr(g0,k0,e0)},w,e]}(R9),ht=function(t){function n(_){var k=u(Vn[10],_);if(_[5])M1(_,k[1]);else{var I=k[2],U=0;if(I[0]===23){var Y=I[1],y0=k[1],P0=0;Y[4]?ue(_,[0,y0,61]):Y[5]?ue(_,[0,y0,62]):(U=1,P0=1)}else U=1}return k}function e(_,k,I){var U=I[2][1],Y=I[1];if(n0(U,Z0e)){if(n0(U,Q0e))return n0(U,rre)?f2(U)?V7(k,[0,Y,55]):kL(U)?ue(k,[0,Y,[10,Ml(U)]]):_&&js(U)?V7(k,[0,Y,_[1]]):0:k[17]?ue(k,[0,Y,2]):V7(k,[0,Y,55]);if(k[5])return V7(k,[0,Y,55]);var y0=k[14];return y0&&ue(k,[0,Y,[10,Ml(U)]])}var P0=k[18];return P0&&ue(k,[0,Y,2])}function i(_,k){var I=k[4],U=k[3],Y=k[2],y0=k[1];I&&gi(_,45);var P0=pr(_);return Y0(_,[2,[0,y0,Y,U,I]]),[0,y0,[0,Y,U,lr([0,P0],[0,we(_)],0)]]}function x(_,k,I){var U=_?_[1]:W0e,Y=k?k[1]:1,y0=A0(I);if(typeof y0==\"number\"){var P0=y0-2|0;if(Xt>>0){if(!(T7<(P0+1|0)>>>0)){var I0=function(X0,J0){return X0};return[1,[0,we(I),I0]]}}else if(P0===6){ie(I);var D=A0(I);if(typeof D==\"number\"){var u0=0;if((D===1||Pn===D)&&(u0=1),u0)return[0,we(I)]}return x7(I)?[0,Ms(I)]:J0e}}return x7(I)?[1,rb(I)]:(Y&&St([0,U],I),$0e)}function c(_){var k=A0(_);if(typeof k==\"number\"){var I=0;if((k===1||Pn===k)&&(I=1),I){var U=function(Y,y0){return Y};return[0,we(_),U]}}return x7(_)?rb(_):N9(_)}function s(_,k,I){var U=x(0,0,k);if(U[0]===0)return[0,U[1],I];var Y=ye(I);if(Y)var y0=function(D,u0){return ur(Qe(D,634872468,89),D,_,u0)},P0=o(U[1][2],Y[1],y0),I0=ye([0,P0,Y[2]]);else var I0=Y;return[0,0,I0]}var p=function _(k){return _.fun(k)},y=function _(k){return _.fun(k)},T=function _(k){return _.fun(k)},E=function _(k){return _.fun(k)},d=function _(k){return _.fun(k)},w=function _(k,I){return _.fun(k,I)},G=function _(k){return _.fun(k)},A=function _(k){return _.fun(k)},S=function _(k,I,U){return _.fun(k,I,U)},M=function _(k){return _.fun(k)},K=function _(k){return _.fun(k)},V=function _(k,I){return _.fun(k,I)},f0=function _(k){return _.fun(k)},m0=function _(k){return _.fun(k)},k0=function _(k,I){return _.fun(k,I)},g0=function _(k){return _.fun(k)},e0=function _(k,I){return _.fun(k,I)},x0=function _(k){return _.fun(k)},l=function _(k,I){return _.fun(k,I)},c0=function _(k){return _.fun(k)},t0=function _(k,I){return _.fun(k,I)},o0=function _(k,I){return _.fun(k,I)},w0=function _(k,I){return _.fun(k,I)},_0=function _(k){return _.fun(k)},E0=function _(k){return _.fun(k)},U0=function _(k,I,U){return _.fun(k,I,U)},b=function _(k,I){return _.fun(k,I)},R0=function _(k,I){return _.fun(k,I)},X=function _(k){return _.fun(k)};function s0(_){var k=pr(_);Y0(_,59);var I=A0(_)===8?1:0,U=I&&we(_),Y=x(0,0,_),y0=Y[0]===0?Y[1]:Y[1][1];return[4,[0,lr([0,k],[0,on(U,y0)],0)]]}var hr=0;function Ar(_){return cr(hr,s0,_)}function or(_){var k=pr(_);Y0(_,37);var I=zl(1,_),U=u(se[2],I),Y=1-_[5],y0=Y&&nb(U);y0&&M1(_,U[1]);var P0=we(_);Y0(_,25);var I0=we(_);Y0(_,4);var D=u(se[7],_);Y0(_,5);var u0=A0(_)===8?1:0,X0=u0&&we(_),J0=x(0,K0e,_),ir=J0[0]===0?on(X0,J0[1]):J0[1][1];return[14,[0,U,D,lr([0,k],[0,on(P0,on(I0,ir))],0)]]}var W0=0;function Lr(_){return cr(W0,or,_)}function Tr(_,k,I){var U=I[2][1];if(U&&!U[1][2][2]){var Y=U[2];if(!Y)return Y}return ue(_,[0,I[1],k])}function Hr(_,k){var I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1])}function Or(_){var k=pr(_);Y0(_,39);var I=_[18],U=I&&xu(_,65),Y=on(k,pr(_));Y0(_,4);var y0=lr([0,Y],0,0),P0=Kl(1,_),I0=A0(P0),D=0;if(typeof I0==\"number\")if(24<=I0)if(29<=I0)D=1;else switch(I0-24|0){case 0:var u0=cr(0,Vn[9],P0),X0=u0[2],J0=lr([0,X0[2]],0,0),Pr=X0[3],K0=[0,[1,[0,u0[1],[0,X0[1],0,J0]]]];break;case 3:var ir=cr(0,Vn[8],P0),Q0=ir[2],F0=lr([0,Q0[2]],0,0),Pr=Q0[3],K0=[0,[1,[0,ir[1],[0,Q0[1],2,F0]]]];break;case 4:var Sr=cr(0,Vn[7],P0),mr=Sr[2],Cr=lr([0,mr[2]],0,0),Pr=mr[3],K0=[0,[1,[0,Sr[1],[0,mr[1],1,Cr]]]];break;default:D=1}else if(I0===8)var Pr=0,K0=0;else D=1;else D=1;if(D)var sr=F9(1,P0),Pr=0,K0=[0,[0,u(se[8],sr)]];var Ur=A0(_);if(typeof Ur==\"number\"){if(Ur===17){if(K0){var h0=K0[1];if(h0[0]===0)var Kr=[1,ur(t[2],V0e,_,h0[1])];else{var re=h0[1];Tr(_,28,re);var Kr=[0,re]}U?Y0(_,63):Y0(_,17);var xe=u(se[7],_);Y0(_,5);var Re=zl(1,_),ve=u(se[2],Re);return Hr(_,ve),[21,[0,Kr,xe,ve,0,y0]]}throw[0,Sn,z0e]}if(Ur===63){if(K0){var Ie=K0[1];if(Ie[0]===0)var Ge=[1,ur(t[2],X0e,_,Ie[1])];else{var Me=Ie[1];Tr(_,29,Me);var Ge=[0,Me]}Y0(_,63);var an=u(se[10],_);Y0(_,5);var We=zl(1,_),Ae=u(se[2],We);return Hr(_,Ae),[22,[0,Ge,an,Ae,U,y0]]}throw[0,Sn,Y0e]}}if(Du(function(gt){return ue(_,gt)},Pr),U?Y0(_,63):Y0(_,8),K0)var cn=K0[1],rn=cn[0]===0?[0,[1,o(t[1],_,cn[1])]]:[0,[0,cn[1]]],kn=rn;else var kn=K0;var vn=A0(_),Ne=0;if(typeof vn==\"number\"){var Je=vn!==8?1:0;if(!Je){var en=Je;Ne=1}}if(!Ne)var en=[0,u(se[7],_)];Y0(_,8);var _n=A0(_),Cn=0;if(typeof _n==\"number\"){var Hn=_n!==5?1:0;if(!Hn){var Fn=Hn;Cn=1}}if(!Cn)var Fn=[0,u(se[7],_)];Y0(_,5);var vt=zl(1,_),Nt=u(se[2],vt);return Hr(_,Nt),[20,[0,kn,en,Fn,Nt,y0]]}var fr=0;function Rr(_){return cr(fr,Or,_)}function Wr(_){var k=Gs(_)?n(_):u(se[2],_),I=1-_[5],U=I&&nb(k);return U&&M1(_,k[1]),k}function Jr(_){var k=pr(_);Y0(_,43);var I=Wr(_);return[0,I,lr([0,k],0,0)]}function ar(_){var k=pr(_);Y0(_,16);var I=on(k,pr(_));Y0(_,4);var U=u(se[7],_);Y0(_,5);var Y=Wr(_),y0=A0(_)===43?1:0,P0=y0&&[0,cr(0,Jr,_)];return[24,[0,U,Y,P0,lr([0,I],0,0)]]}var _r=0;function Ir(_){return cr(_r,ar,_)}function fe(_){1-_[11]&&je(_,36);var k=pr(_),I=Pe(_);Y0(_,19);var U=A0(_)===8?1:0,Y=U&&we(_),y0=0;if(A0(_)!==8&&!x2(_)){var P0=[0,u(se[7],_)];y0=1}if(!y0)var P0=0;var I0=yt(I,Pe(_)),D=x(0,0,_),u0=0;if(D[0]===0)var X0=D[1];else{var J0=D[1];if(P0){var ir=function(sr,Pr){return o(Qe(sr,Di,90),sr,Pr)},Q0=[0,o(J0[2],P0[1],ir)],F0=Y;u0=1}else var X0=J0[1]}if(!u0)var Q0=P0,F0=on(Y,X0);return[28,[0,Q0,lr([0,k],[0,F0],0),I0]]}var v0=0;function P(_){return cr(v0,fe,_)}function L(_){var k=pr(_);Y0(_,20),Y0(_,4);var I=u(se[7],_);Y0(_,5),Y0(_,0);for(var U=H0e;;){var Y=U[2],y0=A0(_);if(typeof y0==\"number\"){var P0=0;if((y0===1||Pn===y0)&&(P0=1),P0){var I0=ye(Y);Y0(_,1);var D=c(_),u0=I[1];return[29,[0,I,I0,lr([0,k],[0,D[1]],0),u0]]}}var X0=U[1],J0=gL(0,function(Q0){return function(F0){var Sr=pr(F0),mr=A0(F0),Cr=0;if(typeof mr==\"number\"&&mr===36){Q0&&je(F0,32),Y0(F0,36);var sr=we(F0),Pr=0;Cr=1}if(!Cr){Y0(F0,33);var sr=0,Pr=[0,u(se[7],F0)]}var K0=Q0||(Pr===0?1:0);Y0(F0,86);var Ur=on(sr,c(F0)[1]);function h0(Re){if(typeof Re==\"number\"){var ve=Re-1|0,Ie=0;if(32>>0?ve===35&&(Ie=1):30<(ve-1|0)>>>0&&(Ie=1),Ie)return 1}return 0}var Kr=1,re=F0[9]===1?F0:[0,F0[1],F0[2],F0[3],F0[4],F0[5],F0[6],F0[7],F0[8],Kr,F0[10],F0[11],F0[12],F0[13],F0[14],F0[15],F0[16],F0[17],F0[18],F0[19],F0[20],F0[21],F0[22],F0[23],F0[24],F0[25],F0[26],F0[27],F0[28],F0[29],F0[30]],xe=o(se[4],h0,re);return[0,[0,Pr,xe,lr([0,Sr],[0,Ur],0)],K0]}}(X0),_),U=[0,J0[2],[0,J0[1],Y]]}}var Q=0;function i0(_){return cr(Q,L,_)}function l0(_){var k=pr(_),I=Pe(_);Y0(_,22),x7(_)&&ue(_,[0,I,21]);var U=u(se[7],_),Y=x(0,0,_);if(Y[0]===0)var P0=U,I0=Y[1];else var y0=function(D,u0){return o(Qe(D,Di,91),D,u0)},P0=o(Y[1][2],U,y0),I0=0;return[30,[0,P0,lr([0,k],[0,I0],0)]]}var S0=0;function T0(_){return cr(S0,l0,_)}function rr(_){var k=pr(_);Y0(_,23);var I=u(se[15],_);if(A0(_)===34)var U=$t(_),Y=function(sr,Pr){var K0=Pr[1];return[0,K0,ur(Qe(sr,Y8,29),sr,K0,Pr[2])]},y0=o(U[2],I,Y);else var y0=I;var P0=A0(_),I0=0;if(typeof P0==\"number\"&&P0===34){var D=[0,cr(0,function(Pr){var K0=pr(Pr);Y0(Pr,34);var Ur=we(Pr),h0=A0(Pr)===4?1:0;if(h0){Y0(Pr,4);var Kr=[0,o(se[18],Pr,39)];Y0(Pr,5);var re=Kr}else var re=h0;var xe=u(se[15],Pr);if(A0(Pr)===38)var Ie=xe;else var Re=c(Pr),ve=function(Ge,Me){var an=Me[1];return[0,an,ur(Qe(Ge,Y8,92),Ge,an,Me[2])]},Ie=o(Re[2],xe,ve);return[0,re,Ie,lr([0,K0],[0,Ur],0)]},_)];I0=1}if(!I0)var D=0;var u0=A0(_),X0=0;if(typeof u0==\"number\"&&u0===38){Y0(_,38);var J0=u(se[15],_),ir=J0[1],Q0=c(_),F0=function(Pr,K0){return ur(Qe(Pr,Y8,93),Pr,ir,K0)},Sr=[0,[0,ir,o(Q0[2],J0[2],F0)]];X0=1}if(!X0)var Sr=0;var mr=D===0?1:0,Cr=mr&&(Sr===0?1:0);return Cr&&ue(_,[0,y0[1],33]),[31,[0,y0,D,Sr,lr([0,k],0,0)]]}var L0=0;function B(_){return cr(L0,rr,_)}function Z(_){var k=u(Vn[9],_),I=s(0,_,k[1]),U=0,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var p0=0;function b0(_){return cr(p0,Z,_)}function O0(_){var k=u(Vn[8],_),I=s(2,_,k[1]),U=2,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var M0=0;function er(_){return cr(M0,O0,_)}function yr(_){var k=u(Vn[7],_),I=s(1,_,k[1]),U=1,Y=k[3];Du(function(P0){return ue(_,P0)},Y);var y0=lr([0,k[2]],[0,I[1]],0);return[34,[0,I[2],U,y0]]}var vr=0;function $0(_){return cr(vr,yr,_)}function Er(_){var k=pr(_);Y0(_,25);var I=on(k,pr(_));Y0(_,4);var U=u(se[7],_);Y0(_,5);var Y=zl(1,_),y0=u(se[2],Y),P0=1-_[5],I0=P0&&nb(y0);return I0&&M1(_,y0[1]),[35,[0,U,y0,lr([0,I],0,0)]]}var Mr=0;function Br(_){return cr(Mr,Er,_)}function qr(_){var k=pr(_),I=u(se[7],_),U=A0(_),Y=I[2];if(Y[0]===10&&typeof U==\"number\"&&U===86){var y0=Y[1],P0=y0[2][1];Y0(_,86),o(Mu[3],P0,_[3])&&ue(_,[0,I[1],[16,q0e,P0]]);var I0=_[30],D=_[29],u0=_[28],X0=_[27],J0=_[26],ir=_[25],Q0=_[24],F0=_[23],Sr=_[22],mr=_[21],Cr=_[20],sr=_[19],Pr=_[18],K0=_[17],Ur=_[16],h0=_[15],Kr=_[14],re=_[13],xe=_[12],Re=_[11],ve=_[10],Ie=_[9],Ge=_[8],Me=_[7],an=_[6],We=_[5],Ae=_[4],cn=o(Mu[4],P0,_[3]),rn=[0,_[1],_[2],cn,Ae,We,an,Me,Ge,Ie,ve,Re,xe,re,Kr,h0,Ur,K0,Pr,sr,Cr,mr,Sr,F0,Q0,ir,J0,X0,u0,D,I0],kn=Gs(rn)?n(rn):u(se[2],rn);return[27,[0,y0,kn,lr([0,k],0,0)]]}var vn=x(U0e,0,_);if(vn[0]===0)var Je=I,en=vn[1];else var Ne=function(_n,Cn){return o(Qe(_n,Di,94),_n,Cn)},Je=o(vn[1][2],I,Ne),en=0;return[19,[0,Je,0,lr(0,[0,en],0)]]}var jr=0;function $r(_){return cr(jr,qr,_)}function ne(_){var k=u(se[7],_),I=x(B0e,0,_);if(I[0]===0)var Y=k,y0=I[1];else var U=function(sr,Pr){return o(Qe(sr,Di,95),sr,Pr)},Y=o(I[1][2],k,U),y0=0;var P0=_[19];if(P0){var I0=Y[2],D=0;if(I0[0]===14){var u0=I0[1],X0=0,J0=u0[1];if(typeof J0!=\"number\"&&J0[0]===0){var ir=u0[2],Q0=1>>0))switch(K0){case 21:var Ur=on(I0,pr(P0)),h0=cr(0,function(Ct){return Y0(Ct,36)},P0),Kr=te0(1,P0),re=A0(Kr),xe=0;if(typeof re==\"number\")if(re===15)var Re=0,ve=Re,Ie=[0,[1,cr(0,function(Ct){return o(e0,0,Ct)},Kr)]];else if(re===40)var ve=0,Ie=[0,[2,cr(0,u(k0,0),Kr)]];else xe=1;else xe=1;if(xe){var Ge=u(mn[1],Kr),Me=x(0,0,Kr);if(Me[0]===0)var Ae=Me[1],cn=Ge;else var an=0,We=function(Wu,lt){return o(Qe(Wu,_v,Pn),Wu,lt)},Ae=an,cn=o(Me[1][2],Ge,We);var ve=Ae,Ie=[0,[3,cn]]}var rn=lr([0,Ur],[0,ve],0);return[6,[0,[0,h0[1]],Ie,0,0,rn]];case 0:case 9:case 12:case 13:case 25:var kn=A0(P0);if(typeof kn==\"number\"){var vn=0;if(25<=kn)if(29<=kn){if(kn===40){var Ne=[0,[2,cr(0,u(k0,0),P0)]];vn=1}}else 27<=kn&&(vn=2);else if(kn===15){var Ne=[0,[1,cr(0,function(du){return o(e0,0,du)},P0)]];vn=1}else 24<=kn&&(vn=2);var Je=0;switch(vn){case 0:break;case 2:var en=0;typeof kn==\"number\"?kn===27?je(P0,72):kn===28?je(P0,71):en=1:en=1;var Ne=[0,[0,cr(0,function(du){return o(l,du,0)},P0)]];Je=1;break;default:Je=1}if(Je)return[6,[0,0,Ne,0,0,lr([0,I0],0,0)]]}throw[0,Sn,o0e]}}var _n=A0(P0),Cn=0;typeof _n==\"number\"?_n===53?je(P0,74):_n===61?je(P0,73):Cn=1:Cn=1,Y0(P0,0);var Hn=ur(U0,0,P0,0);Y0(P0,1);var Fn=A0(P0),vt=0;if(typeof Fn!=\"number\"&&Fn[0]===4&&!n0(Fn[3],x0e)){var Nt=u(E0,P0),gt=Nt[2],Zt=[0,Nt[1]];vt=1}if(!vt){o(b,P0,Hn);var qt=x(0,0,P0),Ft=qt[0]===0?qt[1]:qt[1][1],gt=Ft,Zt=0}return[6,[0,0,0,[0,[0,Hn]],Zt,lr([0,I0],[0,gt],0)]]}var U=0;return function(Y){return cr(U,I,Y)}}),[0,Rr,Ir,$0,B,Br,E,d,y,T,Ar,w0,X,M,Lr,p,R0,be,Fr,m0,$r,K,P,i0,T0,A,b0,er]}(R9),Ge0=function(t){var n=function y(T,E){return y.fun(T,E)},e=function y(T,E){return y.fun(T,E)},i=function y(T,E){return y.fun(T,E)};N(n,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];if(S[0]===0){var M=S[1],K=M[2];switch(K[0]){case 0:var V=K[2],f0=K[1];switch(f0[0]){case 0:var m0=[0,f0[1]];break;case 1:var m0=[1,f0[1]];break;case 2:var m0=ke(t0e);break;default:var m0=[2,f0[1]]}var k0=V[2],g0=0;if(k0[0]===2){var e0=k0[1];if(!e0[1]){var x0=[0,e0[3]],l=e0[2];g0=1}}if(!g0)var x0=0,l=o(i,y,V);var c0=[0,[0,[0,M[1],[0,m0,l,x0,K[3]]]],G];break;case 1:ue(y,[0,K[2][1],97]);var c0=G;break;default:ue(y,[0,K[2][1],u0e]);var c0=G}var G=c0,A=A[2];continue}var t0=S[1],o0=t0[1];if(A[2]){ue(y,[0,o0,66]);var A=A[2];continue}var w0=t0[2],_0=w0[2],G=[0,[1,[0,o0,[0,o(i,y,w0[1]),_0]]],G],A=0;continue}var E0=[0,[0,ye(G),w,d]];return[0,T[1],E0]}});function x(y,T){return u(se[23],T)?[0,o(i,y,T)]:(ue(y,[0,T[1],26]),0)}N(e,function(y,T){for(var E=T[2],d=E[2],w=a2(y),G=0,A=E[1];;){if(A){var S=A[1];switch(S[0]){case 0:var M=S[1],K=M[2];if(K[0]===2){var V=K[1];if(!V[1]){var G=[0,[0,[0,M[1],[0,V[2],[0,V[3]]]]],G],A=A[2];continue}}var f0=x(y,M);if(f0)var m0=f0[1],k0=[0,[0,[0,m0[1],[0,m0,0]]],G];else var k0=G;var G=k0,A=A[2];continue;case 1:var g0=S[1],e0=g0[1];if(A[2]){ue(y,[0,e0,65]);var A=A[2];continue}var x0=g0[2],l=x(y,x0[1]),c0=l?[0,[1,[0,e0,[0,l[1],x0[2]]]],G]:G,G=c0,A=0;continue;default:var G=[0,[2,S[1]],G],A=A[2];continue}}var t0=[1,[0,ye(G),w,d]];return[0,T[1],t0]}}),N(i,function(y,T){var E=T[2],d=T[1];switch(E[0]){case 0:return o(e,y,[0,d,E[1]]);case 10:var w=E[1],G=w[2][1],A=w[1],S=0;if(y[5]&&js(G)?ue(y,[0,A,52]):S=1,S&&1-y[5]){var M=0;if(y[17]&&qn(G,e0e)?ue(y,[0,A,93]):M=1,M){var K=y[18],V=K&&qn(G,n0e);V&&ue(y,[0,A,92])}}return[0,d,[2,[0,w,a2(y),0]]];case 19:return o(n,y,[0,d,E[1]]);default:return[0,d,[3,[0,d,E]]]}});function c(y){function T(w){var G=A0(w);return typeof G==\"number\"&&G===82?(Y0(w,82),[0,u(se[10],w)]):0}function E(w){var G=pr(w);Y0(w,0);for(var A=0,S=0,M=0;;){var K=A0(w);if(typeof K==\"number\"){var V=0;if((K===1||Pn===K)&&(V=1),V){S&&ue(w,[0,S[1],98]);var f0=ye(M),m0=pr(w);Y0(w,1);var k0=we(w),g0=A0(w)===86?[1,u(t[9],w)]:a2(w);return[0,[0,f0,g0,yu([0,G],[0,k0],m0,0)]]}}if(A0(w)===12)var e0=pr(w),x0=cr(0,function(Jr){return Y0(Jr,12),p(Jr,y)},w),l=lr([0,e0],0,0),c0=[0,[1,[0,x0[1],[0,x0[2],l]]]];else{var t0=Pe(w),o0=o(se[20],0,w),w0=A0(w),_0=0;if(typeof w0==\"number\"&&w0===86){Y0(w,86);var E0=cr([0,t0],function(ar){var _r=p(ar,y);return[0,_r,T(ar)]},w),U0=E0[2],b=o0[2];switch(b[0]){case 0:var R0=[0,b[1]];break;case 1:var R0=[1,b[1]];break;case 2:var R0=ke($Qr);break;default:var R0=[2,b[1]]}var c0=[0,[0,[0,E0[1],[0,R0,U0[1],U0[2],0]]]]}else _0=1;if(_0){var X=o0[2];if(X[0]===1){var s0=X[1],hr=s0[2][1],Ar=s0[1],or=0;kL(hr)&&n0(hr,QQr)&&n0(hr,r0e)&&(ue(w,[0,Ar,2]),or=1),!or&&f2(hr)&&V7(w,[0,Ar,55]);var W0=cr([0,t0],function(ar,_r){return function(Ir){var fe=[0,_r,[2,[0,ar,a2(Ir),0]]];return[0,fe,T(Ir)]}}(s0,Ar),w),Lr=W0[2],c0=[0,[0,[0,W0[1],[0,[1,s0],Lr[1],Lr[2],1]]]]}else{St(ZQr,w);var c0=0}}}if(c0){var Tr=c0[1],Hr=A?(ue(w,[0,Tr[1][1],66]),0):S;if(Tr[0]===0)var Rr=Hr,Wr=A;else var Or=A0(w)===9?1:0,fr=Or&&[0,Pe(w)],Rr=fr,Wr=1;A0(w)!==1&&Y0(w,9);var A=Wr,S=Rr,M=[0,Tr,M];continue}}}var d=0;return function(w){return cr(d,E,w)}}function s(y){function T(d){var w=pr(d);Y0(d,6);for(var G=0;;){var A=A0(d);if(typeof A==\"number\"){var S=0;if(13<=A)Pn===A&&(S=1);else if(7<=A)switch(A-7|0){case 2:var M=Pe(d);Y0(d,9);var G=[0,[2,M],G];continue;case 5:var K=pr(d),V=cr(0,function(_0){return Y0(_0,12),p(_0,y)},d),f0=V[1],m0=lr([0,K],0,0),k0=[1,[0,f0,[0,V[2],m0]]];A0(d)!==7&&(ue(d,[0,f0,65]),A0(d)===9&&ie(d));var G=[0,k0,G];continue;case 0:S=1;break}if(S){var g0=ye(G),e0=pr(d);Y0(d,7);var x0=A0(d)===86?[1,u(t[9],d)]:a2(d);return[1,[0,g0,x0,yu([0,w],[0,we(d)],e0,0)]]}}var l=cr(0,function(w0){var _0=p(w0,y),E0=A0(w0),U0=0;if(typeof E0==\"number\"&&E0===82){Y0(w0,82);var b=[0,u(se[10],w0)];U0=1}if(!U0)var b=0;return[0,_0,b]},d),c0=l[2],t0=[0,[0,l[1],[0,c0[1],c0[2]]]];A0(d)!==7&&Y0(d,9);var G=[0,t0,G]}}var E=0;return function(d){return cr(E,T,d)}}function p(y,T){var E=A0(y);if(typeof E==\"number\"){if(E===6)return u(s(T),y);if(!E)return u(c(T),y)}var d=ur(se[14],y,0,T);return[0,d[1],[2,d[2]]]}return[0,n,e,i,c,s,p]}(mn),une=Zee(se),ine=mn[9];function Me0(t,n){var e=A0(n),i=0;if(typeof e==\"number\"?e===28?n[5]?je(n,55):n[14]&&St(0,n):e===58?n[17]?je(n,2):n[5]&&je(n,55):e===65?n[18]&&je(n,2):i=1:i=1,i)if(dL(e))gi(n,55);else{var x=0;if(typeof e==\"number\")switch(e){case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 46:case 47:case 49:case 50:case 51:case 58:case 59:case 65:var c=1;x=1;break}else if(e[0]===4&&xe0(e[3])){var c=1;x=1}if(!x)var c=0;var s=0;if(c)var p=c;else{var y=hL(e);if(y)var p=y;else{var T=0;if(typeof e==\"number\")switch(e){case 29:case 30:case 31:break;default:T=1}else if(e[0]===4){var E=e[3];n0(E,XRr)&&n0(E,YRr)&&n0(E,VRr)&&(T=1)}else T=1;if(T){var d=0;s=1}else var p=1}}if(!s)var d=p;if(d)St(0,n);else{var w=0;t&&oe0(e)?gi(n,t[1]):w=1}}return z7(n)}var Be0=function t(n){return t.fun(n)},jL=function t(n,e,i){return t.fun(n,e,i)},GL=function t(n){return t.fun(n)},qe0=function t(n,e){return t.fun(n,e)},ML=function t(n,e){return t.fun(n,e)},BL=function t(n,e){return t.fun(n,e)},j9=function t(n,e){return t.fun(n,e)},xb=function t(n,e){return t.fun(n,e)},G9=function t(n){return t.fun(n)},Ue0=function t(n){return t.fun(n)},He0=function t(n){return t.fun(n)},Xe0=function t(n,e,i){return t.fun(n,e,i)},Ye0=function t(n){return t.fun(n)},Ve0=function t(n){return t.fun(n)},ze0=Us[3],fne=ci[3],xne=ci[1],one=ci[5],ane=Us[2],cne=Us[1],sne=Us[4],vne=ci[4],lne=ci[6],bne=une[13],pne=Ge0[6],mne=Ge0[3];N(Be0,function(t){var n=pr(t),e=ye(n),i=5;r:for(;;){if(e)for(var x=e[2],c=e[1],s=c[2],p=c[1],y=s[2],T=0,E=un(y);;){if(E<(T+5|0))var d=0;else{var w=qn(m7(y,T,i),kRr);if(!w){var T=T+1|0;continue}var d=w}if(!d){var e=x;continue r}t[30][1]=p[3];var G=ye([0,[0,p,s],x]);break}else var G=e;if(G===0){var A=0;if(n){var S=n[1],M=S[2];if(!M[1]){var K=M[2],V=0;if(1<=un(K)&&It(K,0)===42){t[30][1]=S[1][3];var f0=[0,S,0];A=1,V=1}}}if(!A)var f0=0}else var f0=G;var m0=o(qe0,t,function(c0){return 0}),k0=Pe(t);Y0(t,Pn);var g0=Mu[1];if(le(function(c0,t0){var o0=t0[2];switch(o0[0]){case 17:return fb(t,c0,Rc(0,[0,o0[1][1],ore]));case 18:var w0=o0[1],_0=w0[1];if(_0){if(!w0[2]){var E0=_0[1],U0=E0[2],b=0;switch(U0[0]){case 34:var R0=U0[1][1],X=0,s0=le(function(Tr,Hr){return le(RL,Tr,[0,Hr[2][1],0])},X,R0);return le(function(Tr,Hr){return fb(t,Tr,Hr)},c0,s0);case 2:case 23:var hr=U0[1][1];if(hr)var Ar=hr[1];else b=1;break;case 16:case 26:case 32:case 33:var Ar=U0[1][1];break;default:b=1}return b?c0:fb(t,c0,Rc(0,[0,E0[1],Ar[2][1]]))}}else{var or=w0[2];if(or){var W0=or[1];if(W0[0]===0){var Lr=W0[1];return le(function(Tr,Hr){var Or=Hr[2],fr=Or[2];return fr?fb(t,Tr,fr[1]):fb(t,Tr,Or[1])},c0,Lr)}return c0}}return c0;default:return c0}},g0,m0),m0)var e0=bl(ye(m0))[1],x0=yt(bl(m0)[1],e0);else var x0=k0;var l=ye(t[2][1]);return[0,x0,[0,m0,lr([0,f0],0,0),l]]}}),N(jL,function(t,n,e){for(var i=ee0(1,t),x=ire;;){var c=x[3],s=x[2],p=x[1],y=A0(i),T=0;if(typeof y==\"number\"&&Pn===y)var E=[0,i,p,s,c];else T=1;if(T)if(u(n,y))var E=[0,i,p,s,c];else{var d=0;if(typeof y==\"number\"||y[0]!==2)d=1;else{var w=u(e,i),G=[0,w,s],A=w[2];if(A[0]===19){var S=A[1][2];if(S){var M=qn(S[1],ure),K=M&&1-i[20];K&&ue(i,[0,w[1],43]);var V=M?_s(1,i):i,f0=[0,y,p],m0=c||M,i=V,x=[0,f0,G,m0];continue}}var E=[0,i,p,G,c]}if(d)var E=[0,i,p,s,c]}var k0=ee0(0,i),g0=ye(p);return Du(function(e0){if(typeof e0!=\"number\"&&e0[0]===2){var x0=e0[1],l=x0[4];return l&&V7(k0,[0,x0[1],45])}return ke(Te(xre,Te(wr0(e0),fre)))},g0),[0,k0,E[3],c]}}),N(GL,function(t){var n=u(Us[6],t),e=A0(t);if(typeof e==\"number\"){var i=e-49|0;if(!(11>>0))switch(i){case 0:return o(ht[16],n,t);case 1:u(A9(t),n);var x=Yn(1,t);if(typeof x==\"number\"){var c=0;if((x===4||x===10)&&(c=1),c)return u(ht[17],t)}return u(ht[18],t);case 11:if(Yn(1,t)===49)return u(A9(t),n),o(ht[12],0,t);break}}return o(xb,[0,n],t)}),N(qe0,function(t,n){var e=ur(jL,t,n,GL),i=o(ML,n,e[1]),x=e[2];return le(function(c,s){return[0,s,c]},i,x)}),N(ML,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i==\"number\"&&Pn===i||u(t,i))return ye(e);var e=[0,u(GL,n),e]}}),N(BL,function(t,n){var e=ur(jL,n,t,function(s){return o(xb,0,s)}),i=o(j9,t,e[1]),x=e[2],c=le(function(s,p){return[0,p,s]},i,x);return[0,c,e[3]]}),N(j9,function(t,n){for(var e=0;;){var i=A0(n);if(typeof i==\"number\"&&Pn===i||u(t,i))return ye(e);var e=[0,o(xb,0,n),e]}}),N(xb,function(t,n){var e=t&&t[1];1-$l(n)&&u(A9(n),e);var i=A0(n);if(typeof i==\"number\"){if(i===27)return u(ht[27],n);if(i===28)return u(ht[3],n)}if(Gs(n))return u(Vn[10],n);if($l(n))return o(ze0,n,e);if(typeof i==\"number\"){var x=i+Wt|0;if(!(14>>0))switch(x){case 0:if(n[27][1])return u(Vn[11],n);break;case 5:return u(ht[19],n);case 12:return o(ht[11],0,n);case 13:return u(ht[25],n);case 14:return u(ht[21],n)}}return u(G9,n)}),N(G9,function(t){var n=A0(t);if(typeof n==\"number\")switch(n){case 0:return u(ht[7],t);case 8:return u(ht[15],t);case 19:return u(ht[22],t);case 20:return u(ht[23],t);case 22:return u(ht[24],t);case 23:return u(ht[4],t);case 24:return u(ht[26],t);case 25:return u(ht[5],t);case 26:return u(ht[6],t);case 32:return u(ht[8],t);case 35:return u(ht[9],t);case 37:return u(ht[14],t);case 39:return u(ht[1],t);case 59:return u(ht[10],t);case 113:return St(ere,t),[0,Pe(t),nre];case 16:case 43:return u(ht[2],t);case 1:case 5:case 7:case 9:case 10:case 11:case 12:case 17:case 18:case 33:case 34:case 36:case 38:case 41:case 42:case 49:case 83:case 86:return St(tre,t),ie(t),u(G9,t)}if(Gs(t)){var e=u(Vn[10],t);return M1(t,e[1]),e}if(typeof n==\"number\"&&n===28&&Yn(1,t)===6){var i=Wl(1,t);return ue(t,[0,yt(Pe(t),i),94]),u(ht[17],t)}return G1(t)?u(ht[20],t):($l(t)&&(St(0,t),ie(t)),u(ht[17],t))}),N(Ue0,function(t){var n=Pe(t),e=u(ci[1],t),i=A0(t);return typeof i==\"number\"&&i===9?ur(ci[7],t,n,[0,e,0]):e}),N(He0,function(t){var n=Pe(t),e=u(ci[2],t),i=A0(t);if(typeof i==\"number\"&&i===9){var x=[0,o(R9[1],t,e),0];return[0,ur(ci[7],t,n,x)]}return e}),N(Xe0,function(t,n,e){var i=n&&n[1];return cr(0,function(x){var c=1-i,s=Me0([0,e],x),p=c&&(A0(x)===85?1:0);return p&&(1-fu(x)&&je(x,12),Y0(x,85)),[0,s,u(mn[10],x),p]},t)}),N(Ye0,function(t){var n=Pe(t),e=pr(t);Y0(t,0);var i=o(j9,function(y){return y===1?1:0},t),x=i===0?1:0,c=Pe(t),s=x&&pr(t);Y0(t,1);var p=[0,i,yu([0,e],[0,we(t)],s,0)];return[0,yt(n,c),p]}),N(Ve0,function(t){function n(i){var x=pr(i);Y0(i,0);var c=o(BL,function(S){return S===1?1:0},i),s=c[1],p=s===0?1:0,y=p&&pr(i);Y0(i,1);var T=A0(i),E=0;if(!t){var d=0;if(typeof T==\"number\"&&(T===1||Pn===T)&&(d=1),!d){var w=x7(i);if(w){var G=Ms(i);E=1}else{var G=w;E=1}}}if(!E)var G=we(i);var A=yu([0,x],[0,G],y,0);return[0,[0,s,A],c[2]]}var e=0;return function(i){return gL(e,n,i)}}),mu(lre,se,[0,Be0,G9,xb,j9,BL,ML,Ue0,He0,fne,xne,one,ane,Me0,Xe0,Ye0,Ve0,bne,pne,mne,cne,ze0,sne,vne,lne,ine]);var Ke0=[0,0],We0=bn;function _ne(t){function n(e,i){var x=i[2],c=i[1],s=oL(x),p=[0,[0,bre,u(t[1],s)],0],y=C9(e,c[3]),T=[0,u(t[5],y),0],E=C9(e,c[2]),d=[0,u(t[5],E),T],w=[0,[0,pre,u(t[4],d)],p],G=[0,[0,mre,u(t[5],c[3][2])],0],A=[0,[0,_re,u(t[5],c[3][1])],G],S=[0,[0,yre,u(t[3],A)],0],M=[0,[0,hre,u(t[5],c[2][2])],0],K=[0,[0,dre,u(t[5],c[2][1])],M],V=[0,[0,kre,u(t[3],K)],S],f0=[0,[0,wre,u(t[3],V)],w];switch(i[3]){case 0:var m0=Ere;break;case 1:var m0=Sre;break;case 2:var m0=gre;break;case 3:var m0=Fre;break;case 4:var m0=Tre;break;default:var m0=Ore}var k0=[0,[0,Ire,u(t[1],m0)],f0],g0=wr0(x),e0=[0,[0,Are,u(t[1],g0)],k0];return u(t[3],e0)}return[0,n,function(e,i){var x=ye(Fp(function(c){return n(e,c)},i));return u(t[4],x)}]}var yne=S70;function U1(t){return g70(_l(t))}function hu(t){return E70(_l(t))}function hne(t){return t}function dne(t){return t}function Je0(t,n,e){try{var i=new RegExp(bn(n),bn(e));return i}catch{return i7}}var kne=_ne([0,We0,yne,U1,hu,hne,dne,i7,Je0]),wne=[0,1],$e0=function(t){function n(E,d){return hu(ye(Fp(E,d)))}function e(E,d){return d?u(E,d[1]):i7}function i(E,d){return d[0]===0?i7:u(E,d[1])}function x(E){return U1([0,[0,AWr,E[1]],[0,[0,IWr,E[2]],0]])}function c(E){var d=E[1],w=d?bn(d[1][1]):i7,G=[0,[0,FWr,x(E[3])],0];return U1([0,[0,OWr,w],[0,[0,TWr,x(E[2])],G]])}function s(E){return n(function(d){var w=d[2],G=0;if(typeof w==\"number\"){var A=w;if(55<=A)switch(A){case 55:var S=nmr;break;case 56:var S=tmr;break;case 57:var S=umr;break;case 58:var S=imr;break;case 59:var S=fmr;break;case 60:var S=xmr;break;case 61:var S=Te(amr,omr);break;case 62:var S=Te(smr,cmr);break;case 63:var S=Te(lmr,vmr);break;case 64:var S=bmr;break;case 65:var S=pmr;break;case 66:var S=mmr;break;case 67:var S=_mr;break;case 68:var S=ymr;break;case 69:var S=hmr;break;case 70:var S=dmr;break;case 71:var S=kmr;break;case 72:var S=wmr;break;case 73:var S=Emr;break;case 74:var S=Smr;break;case 75:var S=gmr;break;case 76:var S=Fmr;break;case 77:var S=Tmr;break;case 78:var S=Omr;break;case 79:var S=Imr;break;case 80:var S=Amr;break;case 81:var S=Nmr;break;case 82:var S=Te(Pmr,Cmr);break;case 83:var S=Dmr;break;case 84:var S=Lmr;break;case 85:var S=Rmr;break;case 86:var S=jmr;break;case 87:var S=Gmr;break;case 88:var S=Mmr;break;case 89:var S=Bmr;break;case 90:var S=qmr;break;case 91:var S=Umr;break;case 92:var S=Hmr;break;case 93:var S=Xmr;break;case 94:var S=Te(Vmr,Ymr);break;case 95:var S=zmr;break;case 96:var S=Kmr;break;case 97:var S=Wmr;break;case 98:var S=Jmr;break;case 99:var S=$mr;break;case 100:var S=Zmr;break;case 101:var S=Qmr;break;case 102:var S=r9r;break;case 103:var S=e9r;break;case 104:var S=n9r;break;case 105:var S=t9r;break;case 106:var S=u9r;break;case 107:var S=i9r;break;default:var S=f9r}else switch(A){case 0:var S=r5r;break;case 1:var S=e5r;break;case 2:var S=n5r;break;case 3:var S=t5r;break;case 4:var S=u5r;break;case 5:var S=i5r;break;case 6:var S=f5r;break;case 7:var S=x5r;break;case 8:var S=o5r;break;case 9:var S=a5r;break;case 10:var S=c5r;break;case 11:var S=s5r;break;case 12:var S=v5r;break;case 13:var S=l5r;break;case 14:var S=b5r;break;case 15:var S=p5r;break;case 16:var S=m5r;break;case 17:var S=_5r;break;case 18:var S=y5r;break;case 19:var S=h5r;break;case 20:var S=d5r;break;case 21:var S=k5r;break;case 22:var S=w5r;break;case 23:var S=E5r;break;case 24:var S=S5r;break;case 25:var S=g5r;break;case 26:var S=F5r;break;case 27:var S=T5r;break;case 28:var S=O5r;break;case 29:var S=I5r;break;case 30:var S=A5r;break;case 31:var S=Te(C5r,N5r);break;case 32:var S=P5r;break;case 33:var S=D5r;break;case 34:var S=L5r;break;case 35:var S=R5r;break;case 36:var S=j5r;break;case 37:var S=G5r;break;case 38:var S=M5r;break;case 39:var S=B5r;break;case 40:var S=q5r;break;case 41:var S=U5r;break;case 42:var S=H5r;break;case 43:var S=X5r;break;case 44:var S=Y5r;break;case 45:var S=V5r;break;case 46:var S=z5r;break;case 47:var S=K5r;break;case 48:var S=W5r;break;case 49:var S=J5r;break;case 50:var S=$5r;break;case 51:var S=Z5r;break;case 52:var S=Q5r;break;case 53:var S=rmr;break;default:var S=emr}}else switch(w[0]){case 0:var M=w[2],K=w[1],S=ur(et(x9r),M,M,K);break;case 1:var V=w[1],f0=w[2],S=o(et(o9r),f0,V);break;case 2:var m0=w[1],S=u(et(a9r),m0);break;case 3:var k0=w[2],g0=w[1],e0=u(et(c9r),g0);if(k0)var x0=k0[1],S=o(et(s9r),x0,e0);else var S=u(et(v9r),e0);break;case 4:var l=w[1],S=o(et(l9r),l,l);break;case 5:var c0=w[3],t0=w[2],o0=w[1];if(t0){var w0=t0[1];if(3<=w0)var S=o(et(b9r),c0,o0);else{switch(w0){case 0:var _0=Jpr;break;case 1:var _0=$pr;break;case 2:var _0=Zpr;break;default:var _0=Qpr}var S=R(et(p9r),o0,_0,c0,_0)}}else var S=o(et(m9r),c0,o0);break;case 6:var E0=w[2],U0=E0;if(b7(U0)===0)var b=U0;else{var R0=sz(U0);Jn(R0,0,xz(Xu(U0,0)));var b=R0}var X=b,s0=w[1],S=ur(et(_9r),E0,X,s0);break;case 7:var S=w[1]?y9r:h9r;break;case 8:var hr=w[1],Ar=w[2],S=o(et(d9r),Ar,hr);break;case 9:var or=w[1],S=u(et(k9r),or);break;case 10:var W0=w[1],S=u(et(w9r),W0);break;case 11:var Lr=w[2],Tr=w[1],S=o(et(E9r),Tr,Lr);break;case 12:var Hr=w[2],Or=w[1],S=o(et(S9r),Or,Hr);break;case 13:var S=Te(F9r,Te(w[1],g9r));break;case 14:var fr=w[1]?T9r:O9r,S=u(et(I9r),fr);break;case 15:var S=Te(N9r,Te(w[1],A9r));break;case 16:var Rr=Te(P9r,Te(w[2],C9r)),S=Te(w[1],Rr);break;case 17:var S=Te(D9r,w[1]);break;case 18:var S=w[1]?Te(R9r,L9r):Te(G9r,j9r);break;case 19:var Wr=w[1],S=u(et(M9r),Wr);break;case 20:var S=Te(q9r,Te(w[1],B9r));break;case 21:var Jr=w[1],ar=w[2]?U9r:H9r,_r=w[4]?Te(X9r,Jr):Jr,Ir=w[3]?Y9r:V9r,S=Te(W9r,Te(ar,Te(Ir,Te(K9r,Te(_r,z9r)))));break;case 22:var S=Te($9r,Te(w[1],J9r));break;default:var fe=w[1],S=u(et(Z9r),fe)}var v0=[0,[0,SWr,bn(S)],G];return U1([0,[0,gWr,c(d[1])],v0])},E)}function p(E){if(E){var d=E[1],w=[0,on(d[3],d[2])];return lr([0,d[1]],w,0)}return E}function y(E){function d(_){return n(q0,_)}function w(_,k,I,U){var Y=t[1];if(Y){if(E)var y0=E[1],P0=[0,C9(y0,k[3]),0],I0=[0,[0,iGr,hu([0,C9(y0,k[2]),P0])],0];else var I0=E;var D=on(I0,[0,[0,fGr,c(k)],0])}else var D=Y;if(I){var u0=I[1],X0=u0[1];if(X0){var J0=u0[2];if(J0)var ir=[0,[0,xGr,d(J0)],0],Q0=[0,[0,oGr,d(X0)],ir];else var Q0=[0,[0,aGr,d(X0)],0];var mr=Q0}else var F0=u0[2],Sr=F0&&[0,[0,cGr,d(F0)],0],mr=Sr;var Cr=mr}else var Cr=I;return U1(Lc(on(D,on(Cr,[0,[0,sGr,bn(_)],0])),U))}function G(_){return n(Q,_)}function A(_){var k=_[2],I=G(k[1]),U=[0,[0,lGr,I],[0,[0,vGr,d(k[3])],0]];return w(bGr,_[1],k[2],U)}function S(_){var k=_[2];return w(Vqr,_[1],k[2],[0,[0,Yqr,bn(k[1])],[0,[0,Xqr,i7],[0,[0,Hqr,!1],0]]])}function M(_){if(_[0]===0)return S(_[1]);var k=_[1],I=k[2],U=M(I[1]),Y=[0,[0,Mzr,U],[0,[0,Gzr,S(I[2])],0]];return w(Bzr,k[1],0,Y)}function K(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,wzr,U],[0,[0,kzr,S(k[2])],0]];return w(Ezr,_[1],0,Y)}function V(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,gzr,U],[0,[0,Szr,e($r,k[2])],0]];return w(Fzr,_[1],k[3],Y)}function f0(_){var k=_[2],I=k[2],U=k[1],Y=_[1];if(typeof U==\"number\")var y0=i7;else switch(U[0]){case 0:var y0=bn(U[1]);break;case 1:var y0=!!U[1];break;case 2:var y0=U[1];break;case 3:var y0=ke(bYr);break;default:var P0=U[1],y0=Je0(Y,P0[1],P0[2])}var I0=0;if(typeof U!=\"number\"&&U[0]===4){var D=U[1],u0=[0,[0,_Yr,U1([0,[0,mYr,bn(D[1])],[0,[0,pYr,bn(D[2])],0]])],0],X0=[0,[0,hYr,y0],[0,[0,yYr,bn(I)],u0]];I0=1}if(!I0)var X0=[0,[0,kYr,y0],[0,[0,dYr,bn(I)],0]];return w(wYr,Y,k[3],X0)}function m0(_){var k=[0,[0,Tzr,g0(_[2])],0];return[0,[0,Ozr,g0(_[1])],k]}function k0(_,k){var I=k[2],U=[0,[0,EVr,!!I[3]],0],Y=[0,[0,SVr,g0(I[2])],U],y0=[0,[0,gVr,e(S,I[1])],Y];return w(FVr,k[1],_,y0)}function g0(_){var k=_[2],I=_[1];switch(k[0]){case 0:return w(iVr,I,k[1],0);case 1:return w(fVr,I,k[1],0);case 2:return w(xVr,I,k[1],0);case 3:return w(oVr,I,k[1],0);case 4:return w(aVr,I,k[1],0);case 5:return w(sVr,I,k[1],0);case 6:return w(vVr,I,k[1],0);case 7:return w(lVr,I,k[1],0);case 8:return w(bVr,I,k[1],0);case 9:return w(cVr,I,k[1],0);case 10:return w(tKr,I,k[1],0);case 11:var U=k[1],Y=[0,[0,pVr,g0(U[1])],0];return w(mVr,I,U[2],Y);case 12:return e0([0,I,k[1]]);case 13:return x0(1,[0,I,k[1]]);case 14:var y0=k[1],P0=[0,[0,mzr,x0(0,y0[1])],0],I0=[0,[0,_zr,n(fe,y0[2])],P0];return w(yzr,I,y0[3],I0);case 15:var D=k[1],u0=[0,[0,hzr,g0(D[1])],0];return w(dzr,I,D[2],u0);case 16:return V([0,I,k[1]]);case 17:var X0=k[1],J0=m0(X0);return w(Izr,I,X0[3],J0);case 18:var ir=k[1],Q0=ir[1],F0=[0,[0,Azr,!!ir[2]],0],Sr=on(m0(Q0),F0);return w(Nzr,I,Q0[3],Sr);case 19:var mr=k[1],Cr=mr[1],sr=[0,[0,Czr,n(g0,[0,Cr[1],[0,Cr[2],Cr[3]]])],0];return w(Pzr,I,mr[2],sr);case 20:var Pr=k[1],K0=Pr[1],Ur=[0,[0,Dzr,n(g0,[0,K0[1],[0,K0[2],K0[3]]])],0];return w(Lzr,I,Pr[2],Ur);case 21:var h0=k[1],Kr=[0,[0,Rzr,M(h0[1])],0];return w(jzr,I,h0[2],Kr);case 22:var re=k[1],xe=[0,[0,qzr,n(g0,re[1])],0];return w(Uzr,I,re[2],xe);case 23:var Re=k[1];return w(Yzr,I,Re[3],[0,[0,Xzr,bn(Re[1])],[0,[0,Hzr,bn(Re[2])],0]]);case 24:var ve=k[1];return w(Kzr,I,ve[3],[0,[0,zzr,ve[1]],[0,[0,Vzr,bn(ve[2])],0]]);case 25:var Ie=k[1];return w($zr,I,Ie[3],[0,[0,Jzr,i7],[0,[0,Wzr,bn(Ie[2])],0]]);default:var Ge=k[1],Me=Ge[1],an=0,We=Me?Zzr:Qzr;return w(nKr,I,Ge[2],[0,[0,eKr,!!Me],[0,[0,rKr,bn(We)],an]])}}function e0(_){var k=_[2],I=k[2][2],U=k[4],Y=y7(p(I[4]),U),y0=[0,[0,_Vr,e(qr,k[1])],0],P0=[0,[0,yVr,e(Mr,I[3])],y0],I0=[0,[0,hVr,g0(k[3])],P0],D=[0,[0,dVr,e(Br,I[1])],I0],u0=I[2],X0=[0,[0,kVr,n(function(J0){return k0(0,J0)},u0)],D];return w(wVr,_[1],Y,X0)}function x0(_,k){var I=k[2],U=I[3],Y=le(function(ir,Q0){var F0=ir[4],Sr=ir[3],mr=ir[2],Cr=ir[1];switch(Q0[0]){case 0:var sr=Q0[1],Pr=sr[2],K0=Pr[2],Ur=Pr[1];switch(Ur[0]){case 0:var h0=f0(Ur[1]);break;case 1:var h0=S(Ur[1]);break;case 2:var h0=ke(MVr);break;default:var h0=ke(BVr)}switch(K0[0]){case 0:var xe=qVr,Re=g0(K0[1]);break;case 1:var Kr=K0[1],xe=UVr,Re=e0([0,Kr[1],Kr[2]]);break;default:var re=K0[1],xe=HVr,Re=e0([0,re[1],re[2]])}var ve=[0,[0,XVr,bn(xe)],0],Ie=[0,[0,YVr,e(Er,Pr[7])],ve];return[0,[0,w(ZVr,sr[1],Pr[8],[0,[0,$Vr,h0],[0,[0,JVr,Re],[0,[0,WVr,!!Pr[6]],[0,[0,KVr,!!Pr[3]],[0,[0,zVr,!!Pr[4]],[0,[0,VVr,!!Pr[5]],Ie]]]]]]),Cr],mr,Sr,F0];case 1:var Ge=Q0[1],Me=Ge[2],an=[0,[0,QVr,g0(Me[1])],0];return[0,[0,w(rzr,Ge[1],Me[2],an),Cr],mr,Sr,F0];case 2:var We=Q0[1],Ae=We[2],cn=[0,[0,ezr,e(Er,Ae[5])],0],rn=[0,[0,nzr,!!Ae[4]],cn],kn=[0,[0,tzr,g0(Ae[3])],rn],vn=[0,[0,uzr,g0(Ae[2])],kn],Ne=[0,[0,izr,e(S,Ae[1])],vn];return[0,Cr,[0,w(fzr,We[1],Ae[6],Ne),mr],Sr,F0];case 3:var Je=Q0[1],en=Je[2],_n=[0,[0,xzr,!!en[2]],0],Cn=[0,[0,ozr,e0(en[1])],_n];return[0,Cr,mr,[0,w(azr,Je[1],en[3],Cn),Sr],F0];default:var Hn=Q0[1],Fn=Hn[2],vt=[0,[0,czr,g0(Fn[2])],0],Nt=[0,[0,lzr,!!Fn[3]],[0,[0,vzr,!!Fn[4]],[0,[0,szr,!!Fn[5]],vt]]],gt=[0,[0,bzr,S(Fn[1])],Nt];return[0,Cr,mr,Sr,[0,w(pzr,Hn[1],Fn[6],gt),F0]]}},NVr,U),y0=[0,[0,CVr,hu(ye(Y[4]))],0],P0=[0,[0,PVr,hu(ye(Y[3]))],y0],I0=[0,[0,DVr,hu(ye(Y[2]))],P0],D=[0,[0,LVr,hu(ye(Y[1]))],I0],u0=[0,[0,RVr,!!I[1]],D],X0=_?[0,[0,jVr,!!I[2]],u0]:u0,J0=p(I[4]);return w(GVr,k[1],J0,X0)}function l(_){var k=[0,[0,uKr,g0(_[2])],0];return w(iKr,_[1],0,k)}function c0(_){var k=_[2];switch(k[2]){case 0:var I=KYr;break;case 1:var I=WYr;break;default:var I=JYr}var U=[0,[0,$Yr,bn(I)],0],Y=[0,[0,ZYr,n($0,k[1])],U];return w(QYr,_[1],k[3],Y)}function t0(_){var k=_[2];return w(NYr,_[1],k[3],[0,[0,AYr,bn(k[1])],[0,[0,IYr,bn(k[2])],0]])}function o0(_){var k=_[2],I=[0,[0,IXr,i1],[0,[0,OXr,l(k[1])],0]];return w(AXr,_[1],k[2],I)}function w0(_,k){var I=k[1][2],U=[0,[0,$qr,!!k[3]],0],Y=[0,[0,Zqr,i(l,k[2])],U];return w(rUr,_,I[2],[0,[0,Qqr,bn(I[1])],Y])}function _0(_){var k=_[2];return w(Jqr,_[1],k[2],[0,[0,Wqr,bn(k[1])],[0,[0,Kqr,i7],[0,[0,zqr,!1],0]]])}function E0(_){return n(M0,_[2][1])}function U0(_){var k=_[2],I=[0,[0,wKr,w(PKr,k[2],0,0)],0],U=[0,[0,EKr,n(oe,k[3][2])],I],Y=[0,[0,SKr,w(AKr,k[1],0,0)],U];return w(gKr,_[1],k[4],Y)}function b(_){var k=_[2];return w(rWr,_[1],k[2],[0,[0,QKr,bn(k[1])],0])}function R0(_){var k=_[2],I=[0,[0,JKr,b(k[2])],0],U=[0,[0,$Kr,b(k[1])],I];return w(ZKr,_[1],0,U)}function X(_){var k=_[2],I=k[1],U=I[0]===0?b(I[1]):X(I[1]),Y=[0,[0,KKr,U],[0,[0,zKr,b(k[2])],0]];return w(WKr,_[1],0,Y)}function s0(_){switch(_[0]){case 0:return b(_[1]);case 1:return R0(_[1]);default:return X(_[1])}}function hr(_){var k=_[2],I=[0,[0,yKr,n(oe,k[3][2])],0],U=[0,[0,hKr,e(ae,k[2])],I],Y=k[1],y0=Y[2],P0=[0,[0,FKr,!!y0[2]],0],I0=[0,[0,TKr,n(be,y0[3])],P0],D=[0,[0,OKr,s0(y0[1])],I0],u0=[0,[0,dKr,w(IKr,Y[1],0,D)],U];return w(kKr,_[1],k[4],u0)}function Ar(_){var k=_[2],I=[0,[0,jYr,n(fr,k[2])],0],U=[0,[0,GYr,n(vr,k[1])],I];return w(MYr,_[1],k[3],U)}function or(_,k){var I=k[2],U=I[7],Y=I[5],y0=I[4];if(y0)var P0=y0[1][2],I0=y7(P0[3],U),D=I0,u0=P0[2],X0=[0,P0[1]];else var D=U,u0=0,X0=0;if(Y)var J0=Y[1][2],ir=y7(J0[2],D),Q0=ir,F0=n(T0,J0[1]);else var Q0=D,F0=hu(0);var Sr=[0,[0,zUr,F0],[0,[0,VUr,n(S0,I[6])],0]],mr=[0,[0,KUr,e($r,u0)],Sr],Cr=[0,[0,WUr,e(fr,X0)],mr],sr=[0,[0,JUr,e(qr,I[3])],Cr],Pr=I[2],K0=Pr[2],Ur=[0,[0,uHr,n(rr,K0[1])],0],h0=[0,[0,$Ur,w(iHr,Pr[1],K0[2],Ur)],sr],Kr=[0,[0,ZUr,e(S,I[1])],h0];return w(_,k[1],Q0,Kr)}function W0(_){var k=_[2],I=[0,[0,xUr,G(k[1])],0],U=p(k[2]);return w(oUr,_[1],U,I)}function Lr(_){var k=_[2];switch(k[0]){case 0:var I=0,U=S(k[1]);break;case 1:var I=0,U=_0(k[1]);break;default:var I=1,U=fr(k[1])}return[0,[0,EWr,fr(_[1])],[0,[0,wWr,U],[0,[0,kWr,!!I],0]]]}function Tr(_){var k=[0,[0,yWr,E0(_[3])],0],I=[0,[0,hWr,e(ne,_[2])],k];return[0,[0,dWr,fr(_[1])],I]}function Hr(_){var k=_[2],I=k[3],U=k[2],Y=k[1];if(I){var y0=I[1],P0=y0[2],I0=[0,[0,NXr,Or(P0[1])],0],D=w(CXr,y0[1],P0[2],I0),u0=ye([0,D,Fp(L0,U)]),X0=Y?[0,o0(Y[1]),u0]:u0;return hu(X0)}var J0=d1(L0,U),ir=Y?[0,o0(Y[1]),J0]:J0;return hu(ir)}function Or(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,hXr,i(l,U[2])],0],y0=[0,[0,dXr,n(b0,U[1])],Y];return w(kXr,I,p(U[3]),y0);case 1:var P0=k[1],I0=[0,[0,wXr,i(l,P0[2])],0],D=[0,[0,EXr,n(Z,P0[1])],I0];return w(SXr,I,p(P0[3]),D);case 2:return w0(I,k[1]);default:return fr(k[1])}}function fr(_){var k=_[2],I=_[1];switch(k[0]){case 0:var U=k[1],Y=[0,[0,XMr,n(er,U[1])],0];return w(YMr,I,p(U[2]),Y);case 1:var y0=k[1],P0=y0[7],I0=y0[3],D=y0[2];if(I0[0]===0)var u0=0,X0=W0(I0[1]);else var u0=1,X0=fr(I0[1]);var J0=P0[0]===0?0:[0,P0[1]],ir=y0[9],Q0=y7(p(D[2][4]),ir),F0=[0,[0,VMr,e(qr,y0[8])],0],Sr=[0,[0,KMr,!!u0],[0,[0,zMr,e(l,J0)],F0]],mr=[0,[0,JMr,!1],[0,[0,WMr,e(Fr,y0[6])],Sr]],Cr=[0,[0,ZMr,X0],[0,[0,$Mr,!!y0[4]],mr]];return w(eBr,I,Q0,[0,[0,rBr,i7],[0,[0,QMr,Hr(D)],Cr]]);case 2:var sr=k[1],Pr=sr[1];if(Pr){switch(Pr[1]){case 0:var K0=Tpr;break;case 1:var K0=Opr;break;case 2:var K0=Ipr;break;case 3:var K0=Apr;break;case 4:var K0=Npr;break;case 5:var K0=Cpr;break;case 6:var K0=Ppr;break;case 7:var K0=Dpr;break;case 8:var K0=Lpr;break;case 9:var K0=Rpr;break;case 10:var K0=jpr;break;case 11:var K0=Gpr;break;case 12:var K0=Mpr;break;case 13:var K0=Bpr;break;default:var K0=qpr}var Ur=K0}else var Ur=nBr;var h0=[0,[0,tBr,fr(sr[3])],0],Kr=[0,[0,uBr,Or(sr[2])],h0];return w(fBr,I,sr[4],[0,[0,iBr,bn(Ur)],Kr]);case 3:var re=k[1],xe=[0,[0,xBr,fr(re[3])],0],Re=[0,[0,oBr,fr(re[2])],xe];switch(re[1]){case 0:var ve=ipr;break;case 1:var ve=fpr;break;case 2:var ve=xpr;break;case 3:var ve=opr;break;case 4:var ve=apr;break;case 5:var ve=cpr;break;case 6:var ve=spr;break;case 7:var ve=vpr;break;case 8:var ve=lpr;break;case 9:var ve=bpr;break;case 10:var ve=ppr;break;case 11:var ve=mpr;break;case 12:var ve=_pr;break;case 13:var ve=ypr;break;case 14:var ve=hpr;break;case 15:var ve=dpr;break;case 16:var ve=kpr;break;case 17:var ve=wpr;break;case 18:var ve=Epr;break;case 19:var ve=Spr;break;case 20:var ve=gpr;break;default:var ve=Fpr}return w(cBr,I,re[4],[0,[0,aBr,bn(ve)],Re]);case 4:var Ie=k[1],Ge=Ie[4],Me=y7(p(Ie[3][2][2]),Ge);return w(sBr,I,Me,Tr(Ie));case 5:return or(YUr,[0,I,k[1]]);case 6:var an=k[1],We=[0,[0,vBr,e(fr,an[2])],0];return w(bBr,I,0,[0,[0,lBr,n(yr,an[1])],We]);case 7:var Ae=k[1],cn=[0,[0,pBr,fr(Ae[3])],0],rn=[0,[0,mBr,fr(Ae[2])],cn],kn=[0,[0,_Br,fr(Ae[1])],rn];return w(yBr,I,Ae[4],kn);case 8:return Rr([0,I,k[1]]);case 9:var vn=k[1],Ne=[0,[0,hBr,e(fr,vn[2])],0];return w(kBr,I,0,[0,[0,dBr,n(yr,vn[1])],Ne]);case 10:return S(k[1]);case 11:var Je=k[1],en=[0,[0,wBr,fr(Je[1])],0];return w(EBr,I,Je[2],en);case 12:return hr([0,I,k[1]]);case 13:return U0([0,I,k[1]]);case 14:var _n=k[1],Cn=_n[1];return typeof Cn!=\"number\"&&Cn[0]===3?w(OYr,I,_n[3],[0,[0,TYr,i7],[0,[0,FYr,bn(_n[2])],0]]):f0([0,I,_n]);case 15:var Hn=k[1];switch(Hn[1]){case 0:var Fn=SBr;break;case 1:var Fn=gBr;break;default:var Fn=FBr}var vt=[0,[0,TBr,fr(Hn[3])],0],Nt=[0,[0,OBr,fr(Hn[2])],vt];return w(ABr,I,Hn[4],[0,[0,IBr,bn(Fn)],Nt]);case 16:var gt=k[1],Zt=Lr(gt);return w(NBr,I,gt[3],Zt);case 17:var qt=k[1],Ft=[0,[0,CBr,S(qt[2])],0],Ct=[0,[0,PBr,S(qt[1])],Ft];return w(DBr,I,qt[3],Ct);case 18:var du=k[1],Wu=du[4],lt=du[3];if(lt)var ou=lt[1],Bu=y7(p(ou[2][2]),Wu),K7=Bu,Yi=E0(ou);else var K7=Wu,Yi=hu(0);var a7=[0,[0,RBr,e(ne,du[2])],[0,[0,LBr,Yi],0]];return w(GBr,I,K7,[0,[0,jBr,fr(du[1])],a7]);case 19:var Hc=k[1],W7=[0,[0,MBr,n(p0,Hc[1])],0];return w(BBr,I,p(Hc[2]),W7);case 20:var Ut=k[1],bt=Ut[1],B0=bt[4],D0=y7(p(bt[3][2][2]),B0),Le=[0,[0,qBr,!!Ut[3]],0];return w(UBr,I,D0,on(Tr(bt),Le));case 21:var He=k[1],he=He[1],me=[0,[0,HBr,!!He[3]],0],Zn=on(Lr(he),me);return w(XBr,I,he[3],Zn);case 22:var wn=k[1],ft=[0,[0,YBr,n(fr,wn[1])],0];return w(VBr,I,wn[2],ft);case 23:return w(zBr,I,k[1][1],0);case 24:var xt=k[1],jn=[0,[0,YYr,Ar(xt[2])],0],ut=[0,[0,VYr,fr(xt[1])],jn];return w(zYr,I,xt[3],ut);case 25:return Ar([0,I,k[1]]);case 26:return w(KBr,I,k[1][1],0);case 27:var dt=k[1],xn=[0,[0,WBr,l(dt[2])],0],ln=[0,[0,JBr,fr(dt[1])],xn];return w($Br,I,dt[3],ln);case 28:var it=k[1],Tt=it[3],Ti=it[2],hs=it[1];if(7<=hs)return w(QBr,I,Tt,[0,[0,ZBr,fr(Ti)],0]);switch(hs){case 0:var Au=rqr;break;case 1:var Au=eqr;break;case 2:var Au=nqr;break;case 3:var Au=tqr;break;case 4:var Au=uqr;break;case 5:var Au=iqr;break;case 6:var Au=fqr;break;default:var Au=ke(xqr)}var Hs=[0,[0,aqr,!0],[0,[0,oqr,fr(Ti)],0]];return w(sqr,I,Tt,[0,[0,cqr,bn(Au)],Hs]);case 29:var Vi=k[1],Xs=Vi[1]?vqr:lqr,Ys=[0,[0,bqr,!!Vi[3]],0],nn=[0,[0,pqr,fr(Vi[2])],Ys];return w(_qr,I,Vi[4],[0,[0,mqr,bn(Xs)],nn]);default:var si=k[1],Vs=[0,[0,yqr,!!si[3]],0],c2=[0,[0,hqr,e(fr,si[1])],Vs];return w(dqr,I,si[2],c2)}}function Rr(_){var k=_[2],I=k[7],U=k[3],Y=k[2],y0=U[0]===0?U[1]:ke(Cqr),P0=I[0]===0?0:[0,I[1]],I0=k[9],D=y7(p(Y[2][4]),I0),u0=[0,[0,Pqr,e(qr,k[8])],0],X0=[0,[0,Lqr,!1],[0,[0,Dqr,e(l,P0)],u0]],J0=[0,[0,Rqr,e(Fr,k[6])],X0],ir=[0,[0,Gqr,!!k[4]],[0,[0,jqr,!!k[5]],J0]],Q0=[0,[0,Mqr,W0(y0)],ir],F0=[0,[0,Bqr,Hr(Y)],Q0],Sr=[0,[0,qqr,e(S,k[1])],F0];return w(Uqr,_[1],D,Sr)}function Wr(_){var k=_[2],I=[0,[0,sXr,n(fe,k[3])],0],U=[0,[0,vXr,x0(0,k[4])],I],Y=[0,[0,lXr,e(qr,k[2])],U],y0=[0,[0,bXr,S(k[1])],Y];return w(pXr,_[1],k[5],y0)}function Jr(_,k){var I=k[2],U=_?GUr:MUr,Y=[0,[0,BUr,e(g0,I[4])],0],y0=[0,[0,qUr,e(g0,I[3])],Y],P0=[0,[0,UUr,e(qr,I[2])],y0],I0=[0,[0,HUr,S(I[1])],P0];return w(U,k[1],I[5],I0)}function ar(_){var k=_[2],I=[0,[0,DUr,g0(k[3])],0],U=[0,[0,LUr,e(qr,k[2])],I],Y=[0,[0,RUr,S(k[1])],U];return w(jUr,_[1],k[4],Y)}function _r(_){if(_){var k=_[1];if(k[0]===0)return n(ge,k[1]);var I=k[1],U=I[2];if(U){var Y=[0,[0,OUr,S(U[1])],0];return hu([0,w(IUr,I[1],0,Y),0])}return hu(0)}return hu(0)}function Ir(_){return _?FUr:TUr}function fe(_){var k=_[2],I=k[1],U=I[0]===0?S(I[1]):K(I[1]),Y=[0,[0,_Xr,U],[0,[0,mXr,e($r,k[2])],0]];return w(yXr,_[1],k[3],Y)}function v0(_){var k=_[2],I=k[6],U=k[4],Y=hu(U?[0,fe(U[1]),0]:0),y0=I?n(T0,I[1][2][1]):hu(0),P0=[0,[0,mUr,Y],[0,[0,pUr,y0],[0,[0,bUr,n(fe,k[5])],0]]],I0=[0,[0,_Ur,x0(0,k[3])],P0],D=[0,[0,yUr,e(qr,k[2])],I0],u0=[0,[0,hUr,S(k[1])],D];return w(dUr,_[1],k[7],u0)}function P(_){var k=_[2],I=k[2],U=k[1],Y=yt(U[1],I[1]),y0=[0,[0,sUr,e(Fr,k[3])],0],P0=[0,[0,vUr,w0(Y,[0,U,[1,I],0])],y0];return w(lUr,_[1],k[4],P0)}function L(_){var k=_[2],I=k[2],U=k[1],Y=[0,[0,aUr,w0(yt(U[1],I[1]),[0,U,[1,I],0])],0];return w(cUr,_[1],k[3],Y)}function Q(_){var k=_[2],I=_[1];switch(k[0]){case 0:return W0([0,I,k[1]]);case 1:var U=k[1],Y=[0,[0,pGr,e(S,U[1])],0];return w(mGr,I,U[2],Y);case 2:return or(XUr,[0,I,k[1]]);case 3:var y0=k[1],P0=[0,[0,_Gr,e(S,y0[1])],0];return w(yGr,I,y0[2],P0);case 4:return w(hGr,I,k[1][1],0);case 5:return v0([0,I,k[1]]);case 6:var I0=k[1],D=I0[5],u0=I0[4],X0=I0[3],J0=I0[2];if(X0){var ir=X0[1];if(ir[0]!==0&&!ir[1][2])return w(kGr,I,D,[0,[0,dGr,e(t0,u0)],0])}if(J0){var Q0=J0[1];switch(Q0[0]){case 0:var F0=L(Q0[1]);break;case 1:var F0=P(Q0[1]);break;case 2:var F0=v0(Q0[1]);break;case 3:var F0=g0(Q0[1]);break;case 4:var F0=ar(Q0[1]);break;case 5:var F0=Jr(1,Q0[1]);break;default:var F0=Wr(Q0[1])}var Sr=F0}else var Sr=i7;var mr=[0,[0,wGr,e(t0,u0)],0],Cr=[0,[0,SGr,Sr],[0,[0,EGr,_r(X0)],mr]],sr=I0[1],Pr=sr&&1;return w(FGr,I,D,[0,[0,gGr,!!Pr],Cr]);case 7:return P([0,I,k[1]]);case 8:var K0=k[1],Ur=[0,[0,kUr,n(fe,K0[3])],0],h0=[0,[0,wUr,x0(0,K0[4])],Ur],Kr=[0,[0,EUr,e(qr,K0[2])],h0],re=[0,[0,SUr,S(K0[1])],Kr];return w(gUr,I,K0[5],re);case 9:var xe=k[1],Re=xe[1],ve=Re[0]===0?S(Re[1]):t0(Re[1]),Ie=0,Ge=xe[3]?\"ES\":\"CommonJS\",Me=[0,[0,IGr,ve],[0,[0,OGr,W0(xe[2])],[0,[0,TGr,Ge],Ie]]];return w(AGr,I,xe[4],Me);case 10:var an=k[1],We=[0,[0,NGr,l(an[1])],0];return w(CGr,I,an[2],We);case 11:var Ae=k[1],cn=[0,[0,AUr,g0(Ae[3])],0],rn=[0,[0,NUr,e(qr,Ae[2])],cn],kn=[0,[0,CUr,S(Ae[1])],rn];return w(PUr,I,Ae[4],kn);case 12:return Jr(1,[0,I,k[1]]);case 13:return L([0,I,k[1]]);case 14:var vn=k[1],Ne=[0,[0,PGr,fr(vn[2])],0],Je=[0,[0,DGr,Q(vn[1])],Ne];return w(LGr,I,vn[3],Je);case 15:return w(RGr,I,k[1][1],0);case 16:var en=k[1],_n=en[2],Cn=_n[2],Hn=_n[1];switch(Cn[0]){case 0:var Fn=Cn[1],vt=[0,[0,KHr,!!Fn[2]],[0,[0,zHr,!!Fn[3]],0]],Nt=Fn[1],gt=[0,[0,WHr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=w7[1],ev=0,Lb=Ki?CYr:PYr,nv=[0,[0,XHr,w(RYr,Ii[1],w7[2],[0,[0,LYr,!!Ki],[0,[0,DYr,bn(Lb)],0]])],ev],Rb=[0,[0,YHr,S(wu[1])],nv];return w(VHr,ku[1],0,Rb)},Nt)],vt],bt=w(JHr,Hn,p(Fn[4]),gt);break;case 1:var Zt=Cn[1],qt=[0,[0,ZHr,!!Zt[2]],[0,[0,$Hr,!!Zt[3]],0]],Ft=Zt[1],Ct=[0,[0,QHr,n(function(ku){var wu=ku[2],Ii=wu[2],w7=Ii[2],Ki=[0,[0,qHr,w(gYr,Ii[1],w7[3],[0,[0,SYr,w7[1]],[0,[0,EYr,bn(w7[2])],0]])],0],ev=[0,[0,UHr,S(wu[1])],Ki];return w(HHr,ku[1],0,ev)},Ft)],qt],bt=w(rXr,Hn,p(Zt[4]),Ct);break;case 2:var du=Cn[1],Wu=du[1];if(Wu[0]===0)var lt=Wu[1],Bu=d1(function(ku){var wu=[0,[0,MHr,S(ku[2][1])],0];return w(BHr,ku[1],0,wu)},lt);else var ou=Wu[1],Bu=d1(function(ku){var wu=ku[2],Ii=[0,[0,RHr,t0(wu[2])],0],w7=[0,[0,jHr,S(wu[1])],Ii];return w(GHr,ku[1],0,w7)},ou);var K7=[0,[0,nXr,!!du[2]],[0,[0,eXr,!!du[3]],0]],Yi=[0,[0,tXr,hu(Bu)],K7],bt=w(uXr,Hn,p(du[4]),Yi);break;default:var a7=Cn[1],Hc=[0,[0,iXr,!!a7[2]],0],W7=a7[1],Ut=[0,[0,fXr,n(function(ku){var wu=[0,[0,DHr,S(ku[2][1])],0];return w(LHr,ku[1],0,wu)},W7)],Hc],bt=w(xXr,Hn,p(a7[3]),Ut)}var B0=[0,[0,aXr,S(en[1])],[0,[0,oXr,bt],0]];return w(cXr,I,en[3],B0);case 17:var D0=k[1],Le=D0[2],He=Le[0]===0?Q(Le[1]):fr(Le[1]),he=[0,[0,GGr,He],[0,[0,jGr,bn(Ir(1))],0]];return w(MGr,I,D0[3],he);case 18:var me=k[1],Zn=me[5],wn=me[4],ft=me[3],xt=me[2];if(xt){var jn=xt[1];if(jn[0]!==0){var ut=[0,[0,BGr,bn(Ir(wn))],0],dt=[0,[0,qGr,e(S,jn[1][2])],ut];return w(HGr,I,Zn,[0,[0,UGr,e(t0,ft)],dt])}}var xn=[0,[0,XGr,bn(Ir(wn))],0],ln=[0,[0,YGr,e(t0,ft)],xn],it=[0,[0,VGr,_r(xt)],ln];return w(KGr,I,Zn,[0,[0,zGr,e(Q,me[1])],it]);case 19:var Tt=k[1],Ti=[0,[0,WGr,e(We0,Tt[2])],0],hs=[0,[0,JGr,fr(Tt[1])],Ti];return w($Gr,I,Tt[3],hs);case 20:var Au=k[1],Hs=function(ku){return ku[0]===0?c0(ku[1]):fr(ku[1])},Vi=[0,[0,ZGr,Q(Au[4])],0],Xs=[0,[0,QGr,e(fr,Au[3])],Vi],Ys=[0,[0,rMr,e(fr,Au[2])],Xs],nn=[0,[0,eMr,e(Hs,Au[1])],Ys];return w(nMr,I,Au[5],nn);case 21:var si=k[1],Vs=si[1],c2=Vs[0]===0?c0(Vs[1]):Or(Vs[1]),M9=[0,[0,tMr,!!si[4]],0],B9=[0,[0,uMr,Q(si[3])],M9],q9=[0,[0,fMr,c2],[0,[0,iMr,fr(si[2])],B9]];return w(xMr,I,si[5],q9);case 22:var zs=k[1],s2=zs[1],U9=s2[0]===0?c0(s2[1]):Or(s2[1]),H9=[0,[0,oMr,!!zs[4]],0],X9=[0,[0,aMr,Q(zs[3])],H9],H1=[0,[0,sMr,U9],[0,[0,cMr,fr(zs[2])],X9]];return w(vMr,I,zs[5],H1);case 23:var vi=k[1],ab=vi[7],cb=vi[3],sb=vi[2],Y9=cb[0]===0?cb[1]:ke(kqr),V9=ab[0]===0?0:[0,ab[1]],z9=vi[9],vb=y7(p(sb[2][4]),z9),K9=[0,[0,wqr,e(qr,vi[8])],0],W9=[0,[0,Sqr,!1],[0,[0,Eqr,e(l,V9)],K9]],J9=[0,[0,gqr,e(Fr,vi[6])],W9],$9=[0,[0,Tqr,!!vi[4]],[0,[0,Fqr,!!vi[5]],J9]],lb=[0,[0,Oqr,W0(Y9)],$9],Z9=[0,[0,Iqr,Hr(sb)],lb];return w(Nqr,I,vb,[0,[0,Aqr,e(S,vi[1])],Z9]);case 24:var X1=k[1],v2=X1[3];if(v2){var bb=v2[1][2],pb=bb[2],mb=bb[1],On=mb[2],Gn=function(wu){return y7(wu,pb)};switch(On[0]){case 0:var Y1=On[1],_b=JD(Y1[2],pb),Mn=[0,[0,Y1[1],_b]];break;case 1:var yb=On[1],Q9=Gn(yb[2]),Mn=[1,[0,yb[1],Q9]];break;case 2:var Xc=On[1],r_=Gn(Xc[7]),Mn=[2,[0,Xc[1],Xc[2],Xc[3],Xc[4],Xc[5],Xc[6],r_]];break;case 3:var l2=On[1],hb=Gn(l2[2]),Mn=[3,[0,l2[1],hb]];break;case 4:var Mn=[4,[0,Gn(On[1][1])]];break;case 5:var Yc=On[1],e_=Gn(Yc[7]),Mn=[5,[0,Yc[1],Yc[2],Yc[3],Yc[4],Yc[5],Yc[6],e_]];break;case 6:var Ks=On[1],db=Gn(Ks[5]),Mn=[6,[0,Ks[1],Ks[2],Ks[3],Ks[4],db]];break;case 7:var V1=On[1],n_=Gn(V1[4]),Mn=[7,[0,V1[1],V1[2],V1[3],n_]];break;case 8:var ds=On[1],t_=Gn(ds[5]),Mn=[8,[0,ds[1],ds[2],ds[3],ds[4],t_]];break;case 9:var z1=On[1],u_=Gn(z1[4]),Mn=[9,[0,z1[1],z1[2],z1[3],u_]];break;case 10:var b2=On[1],i_=Gn(b2[2]),Mn=[10,[0,b2[1],i_]];break;case 11:var Ws=On[1],kb=Gn(Ws[4]),Mn=[11,[0,Ws[1],Ws[2],Ws[3],kb]];break;case 12:var Js=On[1],f_=Gn(Js[5]),Mn=[12,[0,Js[1],Js[2],Js[3],Js[4],f_]];break;case 13:var zi=On[1],Vc=Gn(zi[3]),Mn=[13,[0,zi[1],zi[2],Vc]];break;case 14:var $s=On[1],x_=Gn($s[3]),Mn=[14,[0,$s[1],$s[2],x_]];break;case 15:var Mn=[15,[0,Gn(On[1][1])]];break;case 16:var p2=On[1],m2=Gn(p2[3]),Mn=[16,[0,p2[1],p2[2],m2]];break;case 17:var _2=On[1],o_=Gn(_2[3]),Mn=[17,[0,_2[1],_2[2],o_]];break;case 18:var Zs=On[1],a_=Gn(Zs[5]),Mn=[18,[0,Zs[1],Zs[2],Zs[3],Zs[4],a_]];break;case 19:var y2=On[1],qL=Gn(y2[3]),Mn=[19,[0,y2[1],y2[2],qL]];break;case 20:var K1=On[1],UL=Gn(K1[5]),Mn=[20,[0,K1[1],K1[2],K1[3],K1[4],UL]];break;case 21:var W1=On[1],HL=Gn(W1[5]),Mn=[21,[0,W1[1],W1[2],W1[3],W1[4],HL]];break;case 22:var J1=On[1],XL=Gn(J1[5]),Mn=[22,[0,J1[1],J1[2],J1[3],J1[4],XL]];break;case 23:var Oi=On[1],YL=Oi[10],VL=Gn(Oi[9]),Mn=[23,[0,Oi[1],Oi[2],Oi[3],Oi[4],Oi[5],Oi[6],Oi[7],Oi[8],VL,YL]];break;case 24:var h2=On[1],zL=Gn(h2[4]),Mn=[24,[0,h2[1],h2[2],h2[3],zL]];break;case 25:var $1=On[1],KL=Gn($1[5]),Mn=[25,[0,$1[1],$1[2],$1[3],$1[4],KL]];break;case 26:var Z1=On[1],WL=Gn(Z1[5]),Mn=[26,[0,Z1[1],Z1[2],Z1[3],Z1[4],WL]];break;case 27:var wb=On[1],JL=Gn(wb[3]),Mn=[27,[0,wb[1],wb[2],JL]];break;case 28:var Eb=On[1],$L=Eb[3],ZL=Gn(Eb[2]),Mn=[28,[0,Eb[1],ZL,$L]];break;case 29:var d2=On[1],QL=d2[4],rR=Gn(d2[3]),Mn=[29,[0,d2[1],d2[2],rR,QL]];break;case 30:var c_=On[1],eR=Gn(c_[2]),Mn=[30,[0,c_[1],eR]];break;case 31:var k2=On[1],nR=Gn(k2[4]),Mn=[31,[0,k2[1],k2[2],k2[3],nR]];break;case 32:var w2=On[1],tR=Gn(w2[4]),Mn=[32,[0,w2[1],w2[2],w2[3],tR]];break;case 33:var Q1=On[1],uR=Gn(Q1[5]),Mn=[33,[0,Q1[1],Q1[2],Q1[3],Q1[4],uR]];break;case 34:var Sb=On[1],iR=Gn(Sb[3]),Mn=[34,[0,Sb[1],Sb[2],iR]];break;case 35:var gb=On[1],fR=Gn(gb[3]),Mn=[35,[0,gb[1],gb[2],fR]];break;default:var Fb=On[1],xR=Gn(Fb[3]),Mn=[36,[0,Fb[1],Fb[2],xR]]}var s_=Q([0,mb[1],Mn])}else var s_=i7;var oR=[0,[0,bMr,Q(X1[2])],[0,[0,lMr,s_],0]],aR=[0,[0,pMr,fr(X1[1])],oR];return w(mMr,I,X1[4],aR);case 25:var rv=k[1],Tb=rv[4],v_=rv[3];if(Tb){var Ob=Tb[1];if(Ob[0]===0)var cR=Ob[1],b_=d1(function(wu){var Ii=wu[1],w7=wu[3],Ki=wu[2],ev=Ki?yt(w7[1],Ki[1][1]):w7[1],Lb=Ki?Ki[1]:w7,nv=0,Rb=0;if(Ii)switch(Ii[1]){case 0:var jb=Jc;break;case 1:var jb=rs;break;default:nv=1}else nv=1;if(nv)var jb=i7;var IR=[0,[0,aWr,S(Lb)],[0,[0,oWr,jb],Rb]];return w(sWr,ev,0,[0,[0,cWr,S(w7)],IR])},cR);else var l_=Ob[1],sR=[0,[0,fWr,S(l_[2])],0],b_=[0,w(xWr,l_[1],0,sR),0];var Ib=b_}else var Ib=Tb;if(v_)var p_=v_[1],vR=[0,[0,uWr,S(p_)],0],m_=[0,w(iWr,p_[1],0,vR),Ib];else var m_=Ib;switch(rv[1]){case 0:var Ab=_Mr;break;case 1:var Ab=yMr;break;default:var Ab=hMr}var lR=[0,[0,dMr,bn(Ab)],0],bR=[0,[0,kMr,t0(rv[2])],lR],pR=[0,[0,wMr,hu(m_)],bR];return w(EMr,I,rv[5],pR);case 26:return Wr([0,I,k[1]]);case 27:var Nb=k[1],mR=[0,[0,SMr,Q(Nb[2])],0],_R=[0,[0,gMr,S(Nb[1])],mR];return w(FMr,I,Nb[3],_R);case 28:var __=k[1],yR=[0,[0,TMr,e(fr,__[1])],0];return w(OMr,I,__[2],yR);case 29:var Cb=k[1],hR=[0,[0,IMr,n(i0,Cb[2])],0],dR=[0,[0,AMr,fr(Cb[1])],hR];return w(NMr,I,Cb[3],dR);case 30:var y_=k[1],kR=[0,[0,CMr,fr(y_[1])],0];return w(PMr,I,y_[2],kR);case 31:var E2=k[1],wR=[0,[0,DMr,e(W0,E2[3])],0],ER=[0,[0,LMr,e(l0,E2[2])],wR],SR=[0,[0,RMr,W0(E2[1])],ER];return w(jMr,I,E2[4],SR);case 32:return ar([0,I,k[1]]);case 33:return Jr(0,[0,I,k[1]]);case 34:return c0([0,I,k[1]]);case 35:var Pb=k[1],gR=[0,[0,GMr,Q(Pb[2])],0],FR=[0,[0,MMr,fr(Pb[1])],gR];return w(BMr,I,Pb[3],FR);default:var Db=k[1],TR=[0,[0,qMr,Q(Db[2])],0],OR=[0,[0,UMr,fr(Db[1])],TR];return w(HMr,I,Db[3],OR)}}function i0(_){var k=_[2],I=[0,[0,eUr,n(Q,k[2])],0],U=[0,[0,nUr,e(fr,k[1])],I];return w(tUr,_[1],k[3],U)}function l0(_){var k=_[2],I=[0,[0,uUr,W0(k[2])],0],U=[0,[0,iUr,e(Or,k[1])],I];return w(fUr,_[1],k[3],U)}function S0(_){var k=_[2],I=[0,[0,QUr,fr(k[1])],0];return w(rHr,_[1],k[2],I)}function T0(_){var k=_[2],I=[0,[0,eHr,e($r,k[2])],0],U=[0,[0,nHr,S(k[1])],I];return w(tHr,_[1],0,U)}function rr(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[6],Y=I[2];switch(Y[0]){case 0:var I0=U,D=0,u0=f0(Y[1]);break;case 1:var I0=U,D=0,u0=S(Y[1]);break;case 2:var I0=U,D=0,u0=_0(Y[1]);break;default:var y0=Y[1][2],P0=y7(y0[2],U),I0=P0,D=1,u0=fr(y0[1])}switch(I[1]){case 0:var X0=fHr;break;case 1:var X0=xHr;break;case 2:var X0=oHr;break;default:var X0=aHr}var J0=[0,[0,sHr,!!D],[0,[0,cHr,n(S0,I[5])],0]],ir=[0,[0,lHr,bn(X0)],[0,[0,vHr,!!I[4]],J0]],Q0=[0,[0,pHr,u0],[0,[0,bHr,Rr(I[3])],ir]];return w(mHr,k[1],I0,Q0);case 1:var F0=_[1],Sr=F0[2],mr=Sr[6],Cr=Sr[2],sr=Sr[1];switch(sr[0]){case 0:var h0=mr,Kr=0,re=f0(sr[1]);break;case 1:var h0=mr,Kr=0,re=S(sr[1]);break;case 2:var Pr=ke(gHr),h0=Pr[3],Kr=Pr[2],re=Pr[1];break;default:var K0=sr[1][2],Ur=y7(K0[2],mr),h0=Ur,Kr=1,re=fr(K0[1])}if(typeof Cr==\"number\")if(Cr)var xe=0,Re=0;else var xe=1,Re=0;else var xe=0,Re=[0,Cr[1]];var ve=xe&&[0,[0,FHr,!!xe],0],Ie=[0,[0,THr,e(Er,Sr[5])],0],Ge=[0,[0,IHr,!!Kr],[0,[0,OHr,!!Sr[4]],Ie]],Me=[0,[0,AHr,i(l,Sr[3])],Ge],an=on([0,[0,CHr,re],[0,[0,NHr,e(fr,Re)],Me]],ve);return w(PHr,F0[1],h0,an);default:var We=_[1],Ae=We[2],cn=Ae[2];if(typeof cn==\"number\")if(cn)var rn=0,kn=0;else var rn=1,kn=0;else var rn=0,kn=[0,cn[1]];var vn=rn&&[0,[0,_Hr,!!rn],0],Ne=[0,[0,yHr,e(Er,Ae[5])],0],Je=[0,[0,dHr,!1],[0,[0,hHr,!!Ae[4]],Ne]],en=[0,[0,kHr,i(l,Ae[3])],Je],_n=[0,[0,wHr,e(fr,kn)],en],Cn=on([0,[0,EHr,_0(Ae[1])],_n],vn);return w(SHr,We[1],Ae[6],Cn)}}function L0(_){var k=_[2],I=k[2],U=k[1];if(I){var Y=[0,[0,gXr,fr(I[1])],0],y0=[0,[0,FXr,Or(U)],Y];return w(TXr,_[1],0,y0)}return Or(U)}function B(_,k){var I=[0,[0,PXr,Or(k[1])],0];return w(DXr,_,k[2],I)}function Z(_){switch(_[0]){case 0:var k=_[1],I=k[2],U=I[2],Y=I[1];if(U){var y0=[0,[0,LXr,fr(U[1])],0],P0=[0,[0,RXr,Or(Y)],y0];return w(jXr,k[1],0,P0)}return Or(Y);case 1:var I0=_[1];return B(I0[1],I0[2]);default:return i7}}function p0(_){if(_[0]===0){var k=_[1],I=k[2];switch(I[0]){case 0:var U=fr(I[2]),X0=0,J0=I[3],ir=0,Q0=GXr,F0=U,Sr=I[1];break;case 1:var Y=I[2],y0=Rr([0,Y[1],Y[2]]),X0=0,J0=0,ir=1,Q0=MXr,F0=y0,Sr=I[1];break;case 2:var P0=I[2],I0=Rr([0,P0[1],P0[2]]),X0=I[3],J0=0,ir=0,Q0=BXr,F0=I0,Sr=I[1];break;default:var D=I[2],u0=Rr([0,D[1],D[2]]),X0=I[3],J0=0,ir=0,Q0=qXr,F0=u0,Sr=I[1]}switch(Sr[0]){case 0:var Pr=X0,K0=0,Ur=f0(Sr[1]);break;case 1:var Pr=X0,K0=0,Ur=S(Sr[1]);break;case 2:var mr=ke(UXr),Pr=mr[3],K0=mr[2],Ur=mr[1];break;default:var Cr=Sr[1][2],sr=y7(Cr[2],X0),Pr=sr,K0=1,Ur=fr(Cr[1])}return w(WXr,k[1],Pr,[0,[0,KXr,Ur],[0,[0,zXr,F0],[0,[0,VXr,bn(Q0)],[0,[0,YXr,!!ir],[0,[0,XXr,!!J0],[0,[0,HXr,!!K0],0]]]]]])}var h0=_[1],Kr=h0[2],re=[0,[0,JXr,fr(Kr[1])],0];return w($Xr,h0[1],Kr[2],re)}function b0(_){if(_[0]===0){var k=_[1],I=k[2],U=I[3],Y=I[2],y0=I[1];switch(y0[0]){case 0:var D=0,u0=0,X0=f0(y0[1]);break;case 1:var D=0,u0=0,X0=S(y0[1]);break;default:var P0=y0[1][2],I0=fr(P0[1]),D=P0[2],u0=1,X0=I0}if(U)var J0=U[1],ir=yt(Y[1],J0[1]),Q0=[0,[0,ZXr,fr(J0)],0],F0=w(rYr,ir,0,[0,[0,QXr,Or(Y)],Q0]);else var F0=Or(Y);return w(xYr,k[1],D,[0,[0,fYr,X0],[0,[0,iYr,F0],[0,[0,uYr,ji],[0,[0,tYr,!1],[0,[0,nYr,!!I[4]],[0,[0,eYr,!!u0],0]]]]]])}var Sr=_[1];return B(Sr[1],Sr[2])}function O0(_){var k=_[2],I=[0,[0,oYr,fr(k[1])],0];return w(aYr,_[1],k[2],I)}function M0(_){return _[0]===0?fr(_[1]):O0(_[1])}function er(_){switch(_[0]){case 0:return fr(_[1]);case 1:return O0(_[1]);default:return i7}}function yr(_){var k=_[2],I=[0,[0,cYr,!!k[3]],0],U=[0,[0,sYr,fr(k[2])],I],Y=[0,[0,vYr,Or(k[1])],U];return w(lYr,_[1],0,Y)}function vr(_){var k=_[2],I=k[1],U=U1([0,[0,qYr,bn(I[1])],[0,[0,BYr,bn(I[2])],0]]);return w(XYr,_[1],0,[0,[0,HYr,U],[0,[0,UYr,!!k[2]],0]])}function $0(_){var k=_[2],I=[0,[0,rVr,e(fr,k[2])],0],U=[0,[0,eVr,Or(k[1])],I];return w(nVr,_[1],0,U)}function Er(_){var k=_[2],I=k[1]?cY:\"plus\";return w(uVr,_[1],k[2],[0,[0,tVr,I],0])}function Mr(_){var k=_[2];return k0(k[2],k[1])}function Br(_){var k=_[2],I=[0,[0,OVr,g0(k[1][2])],[0,[0,TVr,!1],0]],U=[0,[0,IVr,e(S,0)],I];return w(AVr,_[1],k[2],U)}function qr(_){var k=_[2],I=[0,[0,fKr,n(jr,k[1])],0],U=p(k[2]);return w(xKr,_[1],U,I)}function jr(_){var k=_[2],I=k[1][2],U=[0,[0,oKr,e(g0,k[4])],0],Y=[0,[0,aKr,e(Er,k[3])],U],y0=[0,[0,cKr,i(l,k[2])],Y];return w(vKr,_[1],I[2],[0,[0,sKr,bn(I[1])],y0])}function $r(_){var k=_[2],I=[0,[0,lKr,n(g0,k[1])],0],U=p(k[2]);return w(bKr,_[1],U,I)}function ne(_){var k=_[2],I=[0,[0,pKr,n(Qr,k[1])],0],U=p(k[2]);return w(mKr,_[1],U,I)}function Qr(_){if(_[0]===0)return g0(_[1]);var k=_[1],I=k[1],U=k[2][1];return V([0,I,[0,[0,Rc(0,[0,I,_Kr])],0,U]])}function be(_){if(_[0]===0){var k=_[1],I=k[2],U=I[1],Y=U[0]===0?b(U[1]):R0(U[1]),y0=[0,[0,LKr,Y],[0,[0,DKr,e(ce,I[2])],0]];return w(RKr,k[1],0,y0)}var P0=_[1],I0=P0[2],D=[0,[0,jKr,fr(I0[1])],0];return w(GKr,P0[1],I0[2],D)}function ae(_){var k=[0,[0,NKr,s0(_[2][1])],0];return w(CKr,_[1],0,k)}function pe(_){var k=_[2],I=k[1],U=_[1],Y=I?fr(I[1]):w(MKr,[0,U[1],[0,U[2][1],U[2][2]+1|0],[0,U[3][1],U[3][2]-1|0]],0,0);return w(qKr,U,p(k[2]),[0,[0,BKr,Y],0])}function oe(_){var k=_[2],I=_[1];switch(k[0]){case 0:return hr([0,I,k[1]]);case 1:return U0([0,I,k[1]]);case 2:return pe([0,I,k[1]]);case 3:var U=k[1],Y=[0,[0,UKr,fr(U[1])],0];return w(HKr,I,U[2],Y);default:var y0=k[1];return w(VKr,I,0,[0,[0,YKr,bn(y0[1])],[0,[0,XKr,bn(y0[2])],0]])}}function ce(_){return _[0]===0?f0([0,_[1],_[2]]):pe([0,_[1],_[2]])}function ge(_){var k=_[2],I=k[2],U=k[1],Y=S(I?I[1]:U),y0=[0,[0,nWr,S(U)],[0,[0,eWr,Y],0]];return w(tWr,_[1],0,y0)}function q0(_){var k=_[2];if(k[1])var I=k[2],U=vWr;else var I=k[2],U=lWr;return w(U,_[1],0,[0,[0,bWr,bn(I)],0])}function Fr(_){var k=_[2],I=k[1];if(I)var U=[0,[0,pWr,fr(I[1])],0],Y=mWr;else var U=0,Y=_Wr;return w(Y,_[1],k[2],U)}return[0,A,fr]}function T(E){return y(E)[1]}return[0,T,function(E){return y(E)[2]},s]}(wne);function ob(t,n,e){var i=n[e];return Mp(i)?i|0:t}function Ene(t,n){var e=RV(n,Jz)?{}:n,i=B7(t),x=ob(Bv[5],e,Nre),c=ob(Bv[4],e,Cre),s=ob(Bv[3],e,Pre),p=ob(Bv[2],e,Dre),y=[0,[0,ob(Bv[1],e,Lre),p,s,c,x]],T=e.tokens,E=Mp(T),d=E&&T|0,w=e.comments,G=Mp(w)?w|0:1,A=e.all_comments,S=Mp(A)?A|0:1,M=[0,0],K=d&&[0,function(b0){return M[1]=[0,b0,M[1]],0}],V=[0,y],f0=[0,K],m0=uz?uz[1]:1,k0=f0&&f0[1],g0=V&&V[1],e0=[0,g0],x0=[0,k0],l=0,c0=x0&&x0[1],t0=e0&&e0[1],o0=Hee([0,c0],[0,t0],l,i),w0=u(se[1],o0),_0=ye(o0[1][1]),E0=[0,LL[1],0],U0=ye(le(function(b0,O0){var M0=b0[2],er=b0[1];return o(LL[3],O0,er)?[0,er,M0]:[0,o(LL[4],O0,er),[0,O0,M0]]},E0,_0)[2]);if(U0&&m0)throw[0,Nee,U0[1],U0[2]];Ke0[1]=0;for(var b=un(i)-0|0,R0=i,X=0,s0=0;;){if(s0===b)var hr=X;else{var Ar=Xu(R0,s0),or=0;if(0<=Ar&&!(zn>>0)throw[0,Sn,Qo0];switch(Or){case 0:var Rr=Xu(R0,s0);break;case 1:var Rr=(Xu(R0,s0)&31)<<6|Xu(R0,s0+1|0)&63;break;case 2:var Rr=(Xu(R0,s0)&15)<<12|(Xu(R0,s0+1|0)&63)<<6|Xu(R0,s0+2|0)&63;break;default:var Rr=(Xu(R0,s0)&7)<<18|(Xu(R0,s0+1|0)&63)<<12|(Xu(R0,s0+2|0)&63)<<6|Xu(R0,s0+3|0)&63}var X=SL(X,s0,[0,Rr]),s0=fr;continue}var hr=SL(X,s0,0)}for(var Wr=tGr,Jr=ye([0,6,hr]);;){var ar=Wr[3],_r=Wr[2],Ir=Wr[1];if(Jr){var fe=Jr[1];if(fe===5){var v0=Jr[2];if(v0&&v0[1]===6){var P=_l(ye([0,Ir,_r])),Wr=[0,Ir+2|0,0,[0,P,ar]],Jr=v0[2];continue}}else if(!(6<=fe)){var L=Jr[2],Wr=[0,Ir+we0(fe)|0,[0,Ir,_r],ar],Jr=L;continue}var Q=_l(ye([0,Ir,_r])),i0=Jr[2],Wr=[0,Ir+we0(fe)|0,0,[0,Q,ar]],Jr=i0;continue}var l0=_l(ye(ar));if(G)var T0=w0;else var S0=u(Tee[1],0),T0=o(Qe(S0,-201766268,25),S0,w0);if(S)var L0=T0;else var rr=T0[2],L0=[0,T0[1],[0,rr[1],rr[2],0]];var B=o($e0[1],[0,l0],L0),Z=on(U0,Ke0[1]);if(B.errors=u($e0[3],Z),d){var p0=M[1];B.tokens=hu(Fp(u(kne[1],l0),p0))}return B}}}if(typeof H0<\"u\")var Ze0=H0;else{var Qe0={};GN.flow=Qe0;var Ze0=Qe0}Ze0.parse=function(t,n){try{var e=Ene(t,n);return e}catch(i){return i=Et(i),i[1]===MN?u($z,i[2]):u($z,new dee(bn(Te(Rre,Cp(i)))))}},uN(0)}(globalThis)}});Pt();var uoe=Fu0(),ioe=Vxe(),foe=zxe(),xoe=Qxe(),ooe={comments:!1,enums:!0,esproposal_decorators:!0,esproposal_export_star_as:!0,tokens:!0};function aoe(H0){let{message:z0,loc:{start:xr,end:gr}}=H0;return uoe(z0,{start:{line:xr.line,column:xr.column+1},end:{line:gr.line,column:gr.column+1}})}function coe(H0,z0){let xr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:gr}=toe(),de=gr(foe(H0),ooe),[Ve]=de.errors;if(Ve)throw aoe(Ve);return xr.originalText=H0,xoe(de,xr)}zu0.exports={parsers:{flow:ioe(coe)}}});return soe();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.glimmer=e()}})(function(){\"use strict\";var it=(t,f)=>()=>(f||t((f={exports:{}}).exports,f),f.exports);var Zt=it((nr,$e)=>{var xe=Object.getOwnPropertyNames,at=(t,f)=>function(){return t&&(f=(0,t[xe(t)[0]])(t=0)),f},I=(t,f)=>function(){return f||(0,t[xe(t)[0]])((f={exports:{}}).exports,f),f.exports},F=at({\"\"(){}}),st=I({\"node_modules/lines-and-columns/build/index.cjs\"(t){\"use strict\";F(),t.__esModule=!0,t.LinesAndColumns=void 0;var f=`\n`,h=\"\\r\",d=function(){function c(o){this.length=o.length;for(var e=[0],r=0;rthis.length)return null;for(var e=0,r=this.offsets;r[e+1]<=o;)e++;var s=o-r[e];return{line:e,column:s}},c.prototype.indexForLocation=function(o){var e=o.line,r=o.column;return e<0||e>=this.offsets.length||r<0||r>this.lengthOfLine(e)?null:this.offsets[e]+r},c.prototype.lengthOfLine=function(o){var e=this.offsets[o],r=o===this.offsets.length-1?this.length:this.offsets[o+1];return r-e},c}();t.LinesAndColumns=d}}),ut=I({\"src/common/parser-create-error.js\"(t,f){\"use strict\";F();function h(d,c){let o=new SyntaxError(d+\" (\"+c.start.line+\":\"+c.start.column+\")\");return o.loc=c,o}f.exports=h}}),ot=I({\"src/language-handlebars/loc.js\"(t,f){\"use strict\";F();function h(c){return c.loc.start.offset}function d(c){return c.loc.end.offset}f.exports={locStart:h,locEnd:d}}}),fe=I({\"node_modules/@glimmer/env/dist/commonjs/es5/index.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f=t.DEBUG=!1,h=t.CI=!1}}),lt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/array-utils.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.emptyArray=h,t.isEmptyArray=o,t.EMPTY_NUMBER_ARRAY=t.EMPTY_STRING_ARRAY=t.EMPTY_ARRAY=void 0;var f=Object.freeze([]);t.EMPTY_ARRAY=f;function h(){return f}var d=h();t.EMPTY_STRING_ARRAY=d;var c=h();t.EMPTY_NUMBER_ARRAY=c;function o(e){return e===f}}}),Pe=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/assert.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.debugAssert=h,t.prodAssert=d,t.deprecate=c,t.default=void 0;var f=X();function h(e,r){if(!e)throw new Error(r||\"assertion failure\")}function d(){}function c(e){f.LOCAL_LOGGER.warn(\"DEPRECATION: \".concat(e))}var o=h;t.default=o}}),ct=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/collections.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.dict=f,t.isDict=h,t.isObject=d,t.StackImpl=void 0;function f(){return Object.create(null)}function h(o){return o!=null}function d(o){return typeof o==\"function\"||typeof o==\"object\"&&o!==null}var c=class{constructor(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this.current=null,this.stack=o}get size(){return this.stack.length}push(o){this.current=o,this.stack.push(o)}pop(){let o=this.stack.pop(),e=this.stack.length;return this.current=e===0?null:this.stack[e-1],o===void 0?null:o}nth(o){let e=this.stack.length;return e0&&arguments[0]!==void 0?arguments[0]:\"unreachable\";return new Error(i)}function p(i){throw new Error(\"Exhausted \".concat(i))}var n=function(){for(var i=arguments.length,l=new Array(i),b=0;b1?c-1:0),e=1;e=0}function d(l){return l>3}function c(){for(var l=arguments.length,b=new Array(l),P=0;P=-536870912}function e(l){return l&-536870913}function r(l){return l|536870912}function s(l){return~l}function p(l){return~l}function n(l){return l}function a(l){return l}function u(l){return l|=0,l<0?e(l):s(l)}function i(l){return l|=0,l>-536870913?p(l):r(l)}[1,2,3].forEach(l=>l),[1,-1].forEach(l=>i(u(l)))}}),gt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/template.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.unwrapHandle=f,t.unwrapTemplate=h,t.extractHandle=d,t.isOkHandle=c,t.isErrHandle=o;function f(e){if(typeof e==\"number\")return e;{let r=e.errors[0];throw new Error(\"Compile Error: \".concat(r.problem,\" @ \").concat(r.span.start,\"..\").concat(r.span.end))}}function h(e){if(e.result===\"error\")throw new Error(\"Compile Error: \".concat(e.problem,\" @ \").concat(e.span.start,\"..\").concat(e.span.end));return e}function d(e){return typeof e==\"number\"?e:e.handle}function c(e){return typeof e==\"number\"}function o(e){return typeof e==\"number\"}}}),bt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/weak-set.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=typeof WeakSet==\"function\"?WeakSet:class{constructor(){this._map=new WeakMap}add(d){return this._map.set(d,!0),this}delete(d){return this._map.delete(d)}has(d){return this._map.has(d)}};t.default=f}}),vt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/simple-cast.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.castToSimple=h,t.castToBrowser=d,t.checkNode=r;var f=me();function h(p){return o(p)||e(p),p}function d(p,n){if(p==null)return null;if(typeof document===void 0)throw new Error(\"Attempted to cast to a browser node in a non-browser context\");if(o(p))return p;if(p.ownerDocument!==document)throw new Error(\"Attempted to cast to a browser node with a node that was not created from this document\");return r(p,n)}function c(p,n){return new Error(\"cannot cast a \".concat(p,\" into \").concat(n))}function o(p){return p.nodeType===9}function e(p){return p.nodeType===1}function r(p,n){let a=!1;if(p!==null)if(typeof n==\"string\")a=s(p,n);else if(Array.isArray(n))a=n.some(u=>s(p,u));else throw(0,f.unreachable)();if(a)return p;throw c(\"SimpleElement(\".concat(p,\")\"),n)}function s(p,n){switch(n){case\"NODE\":return!0;case\"HTML\":return p instanceof HTMLElement;case\"SVG\":return p instanceof SVGElement;case\"ELEMENT\":return p instanceof Element;default:if(n.toUpperCase()===n)throw new Error(\"BUG: this code is missing handling for a generic node type\");return p instanceof Element&&p.tagName.toLowerCase()===n}}}}),yt=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/present.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isPresent=f,t.ifPresent=h,t.toPresentOption=d,t.assertPresent=c,t.mapPresent=o;function f(e){return e.length>0}function h(e,r,s){return f(e)?r(e):s()}function d(e){return f(e)?e:null}function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"unexpected empty list\";if(!f(e))throw new Error(r)}function o(e,r){if(e===null)return null;let s=[];for(let p of e)s.push(r(p));return s}}}),At=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/untouchable-this.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=d;var f=fe(),h=me();function d(c){let o=null;if(f.DEBUG&&h.HAS_NATIVE_PROXY){let e=r=>{throw new Error(\"You accessed `this.\".concat(String(r),\"` from a function passed to the \").concat(c,\", but the function itself was not bound to a valid `this` context. Consider updating to use a bound function (for instance, use an arrow function, `() => {}`).\"))};o=new Proxy({},{get(r,s){e(s)},set(r,s){return e(s),!1},has(r,s){return e(s),!1}})}return o}}}),Et=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-to-string.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=fe(),h;if(f.DEBUG){let c=r=>{let s=r.name;if(s===void 0){let p=Function.prototype.toString.call(r).match(/function (\\w+)\\s*\\(/);s=p&&p[1]||\"\"}return s.replace(/^bound /,\"\")},o=r=>{let s,p;return r.constructor&&typeof r.constructor==\"function\"&&(p=c(r.constructor)),\"toString\"in r&&r.toString!==Object.prototype.toString&&r.toString!==Function.prototype.toString&&(s=r.toString()),s&&s.match(/<.*:ember\\d+>/)&&p&&p[0]!==\"_\"&&p.length>2&&p!==\"Class\"?s.replace(/<.*:/,\"<\".concat(p,\":\")):s||p},e=r=>String(r);h=r=>typeof r==\"function\"?c(r)||\"(unknown function)\":typeof r==\"object\"&&r!==null?o(r)||\"(unknown object)\":e(r)}var d=h;t.default=d}}),_t=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/lib/debug-steps.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.logStep=t.verifySteps=t.endTestSteps=t.beginTestSteps=void 0;var f=d(Pe()),h=me();function d(s){return s&&s.__esModule?s:{default:s}}var c;t.beginTestSteps=c;var o;t.endTestSteps=o;var e;t.verifySteps=e;var r;t.logStep=r}}),X=I({\"node_modules/@glimmer/util/dist/commonjs/es2017/index.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f={LOCAL_LOGGER:!0,LOGGER:!0,assertNever:!0,assert:!0,deprecate:!0,dict:!0,isDict:!0,isObject:!0,Stack:!0,isSerializationFirstNode:!0,SERIALIZATION_FIRST_NODE_STRING:!0,assign:!0,fillNulls:!0,values:!0,_WeakSet:!0,castToSimple:!0,castToBrowser:!0,checkNode:!0,intern:!0,buildUntouchableThis:!0,debugToString:!0,beginTestSteps:!0,endTestSteps:!0,logStep:!0,verifySteps:!0};t.assertNever=x,Object.defineProperty(t,\"assert\",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,\"deprecate\",{enumerable:!0,get:function(){return d.deprecate}}),Object.defineProperty(t,\"dict\",{enumerable:!0,get:function(){return c.dict}}),Object.defineProperty(t,\"isDict\",{enumerable:!0,get:function(){return c.isDict}}),Object.defineProperty(t,\"isObject\",{enumerable:!0,get:function(){return c.isObject}}),Object.defineProperty(t,\"Stack\",{enumerable:!0,get:function(){return c.StackImpl}}),Object.defineProperty(t,\"isSerializationFirstNode\",{enumerable:!0,get:function(){return e.isSerializationFirstNode}}),Object.defineProperty(t,\"SERIALIZATION_FIRST_NODE_STRING\",{enumerable:!0,get:function(){return e.SERIALIZATION_FIRST_NODE_STRING}}),Object.defineProperty(t,\"assign\",{enumerable:!0,get:function(){return r.assign}}),Object.defineProperty(t,\"fillNulls\",{enumerable:!0,get:function(){return r.fillNulls}}),Object.defineProperty(t,\"values\",{enumerable:!0,get:function(){return r.values}}),Object.defineProperty(t,\"_WeakSet\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,\"castToSimple\",{enumerable:!0,get:function(){return i.castToSimple}}),Object.defineProperty(t,\"castToBrowser\",{enumerable:!0,get:function(){return i.castToBrowser}}),Object.defineProperty(t,\"checkNode\",{enumerable:!0,get:function(){return i.checkNode}}),Object.defineProperty(t,\"intern\",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(t,\"buildUntouchableThis\",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,\"debugToString\",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(t,\"beginTestSteps\",{enumerable:!0,get:function(){return v.beginTestSteps}}),Object.defineProperty(t,\"endTestSteps\",{enumerable:!0,get:function(){return v.endTestSteps}}),Object.defineProperty(t,\"logStep\",{enumerable:!0,get:function(){return v.logStep}}),Object.defineProperty(t,\"verifySteps\",{enumerable:!0,get:function(){return v.verifySteps}}),t.LOGGER=t.LOCAL_LOGGER=void 0;var h=lt();Object.keys(h).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return h[w]}})});var d=g(Pe()),c=ct(),o=ht();Object.keys(o).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return o[w]}})});var e=dt(),r=pt(),s=me();Object.keys(s).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return s[w]}})});var p=ft();Object.keys(p).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return p[w]}})});var n=mt();Object.keys(n).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return n[w]}})});var a=gt();Object.keys(a).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return a[w]}})});var u=_(bt()),i=vt(),l=yt();Object.keys(l).forEach(function(w){w===\"default\"||w===\"__esModule\"||Object.prototype.hasOwnProperty.call(f,w)||Object.defineProperty(t,w,{enumerable:!0,get:function(){return l[w]}})});var b=_(je()),P=_(At()),E=_(Et()),v=_t();function _(w){return w&&w.__esModule?w:{default:w}}function y(){if(typeof WeakMap!=\"function\")return null;var w=new WeakMap;return y=function(){return w},w}function g(w){if(w&&w.__esModule)return w;if(w===null||typeof w!=\"object\"&&typeof w!=\"function\")return{default:w};var H=y();if(H&&H.has(w))return H.get(w);var m={},C=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var S in w)if(Object.prototype.hasOwnProperty.call(w,S)){var R=C?Object.getOwnPropertyDescriptor(w,S):null;R&&(R.get||R.set)?Object.defineProperty(m,S,R):m[S]=w[S]}return m.default=w,H&&H.set(w,m),m}var L=console;t.LOCAL_LOGGER=L;var j=console;t.LOGGER=j;function x(w){let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"unexpected unreachable branch\";throw j.log(\"unreachable\",w),j.log(\"\".concat(H,\" :: \").concat(JSON.stringify(w),\" (\").concat(w,\")\")),new Error(\"code reached unreachable\")}}}),ge=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/location.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isLocatedWithPositionsArray=s,t.isLocatedWithPositions=p,t.BROKEN_LOCATION=t.NON_EXISTENT_LOCATION=t.TEMPORARY_LOCATION=t.SYNTHETIC=t.SYNTHETIC_LOCATION=t.UNKNOWN_POSITION=void 0;var f=X(),h=Object.freeze({line:1,column:0});t.UNKNOWN_POSITION=h;var d=Object.freeze({source:\"(synthetic)\",start:h,end:h});t.SYNTHETIC_LOCATION=d;var c=d;t.SYNTHETIC=c;var o=Object.freeze({source:\"(temporary)\",start:h,end:h});t.TEMPORARY_LOCATION=o;var e=Object.freeze({source:\"(nonexistent)\",start:h,end:h});t.NON_EXISTENT_LOCATION=e;var r=Object.freeze({source:\"(broken)\",start:h,end:h});t.BROKEN_LOCATION=r;function s(n){return(0,f.isPresent)(n)&&n.every(p)}function p(n){return n.loc!==void 0}}}),le=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/slice.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.SourceSlice=void 0;var f=ue(),h=class{constructor(d){this.loc=d.loc,this.chars=d.chars}static synthetic(d){let c=f.SourceSpan.synthetic(d);return new h({loc:c,chars:d})}static load(d,c){return new h({loc:f.SourceSpan.load(d,c[1]),chars:c[0]})}getString(){return this.chars}serialize(){return[this.chars,this.loc.serialize()]}};t.SourceSlice=h}}),Me=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/match.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.match=e,t.IsInvisible=t.MatchAny=void 0;var f=X(),h=\"MATCH_ANY\";t.MatchAny=h;var d=\"IS_INVISIBLE\";t.IsInvisible=d;var c=class{constructor(p){this._whens=p}first(p){for(let n of this._whens){let a=n.match(p);if((0,f.isPresent)(a))return a[0]}return null}},o=class{constructor(){this._map=new Map}get(p,n){let a=this._map.get(p);return a||(a=n(),this._map.set(p,a),a)}add(p,n){this._map.set(p,n)}match(p){let n=s(p),a=[],u=this._map.get(n),i=this._map.get(h);return u&&a.push(u),i&&a.push(i),a}};function e(p){return p(new r).check()}var r=class{constructor(){this._whens=new o}check(){return(p,n)=>this.matchFor(p.kind,n.kind)(p,n)}matchFor(p,n){let a=this._whens.match(p);return new c(a).first(n)}when(p,n,a){return this._whens.get(p,()=>new o).add(n,a),this}};function s(p){switch(p){case\"Broken\":case\"InternalsSynthetic\":case\"NonExistent\":return d;default:return p}}}}),He=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/offset.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.InvisiblePosition=t.HbsPosition=t.CharPosition=t.SourceOffset=t.BROKEN=void 0;var f=ge(),h=Me(),d=Ve(),c=\"BROKEN\";t.BROKEN=c;var o=class{constructor(n){this.data=n}static forHbsPos(n,a){return new r(n,a,null).wrap()}static broken(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f.UNKNOWN_POSITION;return new s(\"Broken\",n).wrap()}get offset(){let n=this.data.toCharPos();return n===null?null:n.offset}eql(n){return p(this.data,n.data)}until(n){return(0,d.span)(this.data,n.data)}move(n){let a=this.data.toCharPos();if(a===null)return o.broken();{let u=a.offset+n;return a.source.check(u)?new e(a.source,u).wrap():o.broken()}}collapsed(){return(0,d.span)(this.data,this.data)}toJSON(){return this.data.toJSON()}};t.SourceOffset=o;var e=class{constructor(n,a){this.source=n,this.charPos=a,this.kind=\"CharPosition\",this._locPos=null}toCharPos(){return this}toJSON(){let n=this.toHbsPos();return n===null?f.UNKNOWN_POSITION:n.toJSON()}wrap(){return new o(this)}get offset(){return this.charPos}toHbsPos(){let n=this._locPos;if(n===null){let a=this.source.hbsPosFor(this.charPos);a===null?this._locPos=n=c:this._locPos=n=new r(this.source,a,this.charPos)}return n===c?null:n}};t.CharPosition=e;var r=class{constructor(n,a){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=n,this.hbsPos=a,this.kind=\"HbsPosition\",this._charPos=u===null?null:new e(n,u)}toCharPos(){let n=this._charPos;if(n===null){let a=this.source.charPosFor(this.hbsPos);a===null?this._charPos=n=c:this._charPos=n=new e(this.source,a)}return n===c?null:n}toJSON(){return this.hbsPos}wrap(){return new o(this)}toHbsPos(){return this}};t.HbsPosition=r;var s=class{constructor(n,a){this.kind=n,this.pos=a}toCharPos(){return null}toJSON(){return this.pos}wrap(){return new o(this)}get offset(){return null}};t.InvisiblePosition=s;var p=(0,h.match)(n=>n.when(\"HbsPosition\",\"HbsPosition\",(a,u)=>{let{hbsPos:i}=a,{hbsPos:l}=u;return i.column===l.column&&i.line===l.line}).when(\"CharPosition\",\"CharPosition\",(a,u)=>{let{charPos:i}=a,{charPos:l}=u;return i===l}).when(\"CharPosition\",\"HbsPosition\",(a,u)=>{let{offset:i}=a;var l;return i===((l=u.toCharPos())===null||l===void 0?void 0:l.offset)}).when(\"HbsPosition\",\"CharPosition\",(a,u)=>{let{offset:i}=u;var l;return((l=a.toCharPos())===null||l===void 0?void 0:l.offset)===i}).when(h.MatchAny,h.MatchAny,()=>!1))}}),Ve=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/loc/span.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.span=t.HbsSpan=t.SourceSpan=void 0;var f=fe(),h=X(),d=ge(),c=le(),o=Me(),e=He(),r=class{constructor(u){this.data=u,this.isInvisible=u.kind!==\"CharPosition\"&&u.kind!==\"HbsPosition\"}static get NON_EXISTENT(){return new n(\"NonExistent\",d.NON_EXISTENT_LOCATION).wrap()}static load(u,i){if(typeof i==\"number\")return r.forCharPositions(u,i,i);if(typeof i==\"string\")return r.synthetic(i);if(Array.isArray(i))return r.forCharPositions(u,i[0],i[1]);if(i===\"NonExistent\")return r.NON_EXISTENT;if(i===\"Broken\")return r.broken(d.BROKEN_LOCATION);(0,h.assertNever)(i)}static forHbsLoc(u,i){let l=new e.HbsPosition(u,i.start),b=new e.HbsPosition(u,i.end);return new p(u,{start:l,end:b},i).wrap()}static forCharPositions(u,i,l){let b=new e.CharPosition(u,i),P=new e.CharPosition(u,l);return new s(u,{start:b,end:P}).wrap()}static synthetic(u){return new n(\"InternalsSynthetic\",d.NON_EXISTENT_LOCATION,u).wrap()}static broken(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d.BROKEN_LOCATION;return new n(\"Broken\",u).wrap()}getStart(){return this.data.getStart().wrap()}getEnd(){return this.data.getEnd().wrap()}get loc(){let u=this.data.toHbsSpan();return u===null?d.BROKEN_LOCATION:u.toHbsLoc()}get module(){return this.data.getModule()}get startPosition(){return this.loc.start}get endPosition(){return this.loc.end}toJSON(){return this.loc}withStart(u){return a(u.data,this.data.getEnd())}withEnd(u){return a(this.data.getStart(),u.data)}asString(){return this.data.asString()}toSlice(u){let i=this.data.asString();return f.DEBUG&&u!==void 0&&i!==u&&console.warn(\"unexpectedly found \".concat(JSON.stringify(i),\" when slicing source, but expected \").concat(JSON.stringify(u))),new c.SourceSlice({loc:this,chars:u||i})}get start(){return this.loc.start}set start(u){this.data.locDidUpdate({start:u})}get end(){return this.loc.end}set end(u){this.data.locDidUpdate({end:u})}get source(){return this.module}collapse(u){switch(u){case\"start\":return this.getStart().collapsed();case\"end\":return this.getEnd().collapsed()}}extend(u){return a(this.data.getStart(),u.data.getEnd())}serialize(){return this.data.serialize()}slice(u){let{skipStart:i=0,skipEnd:l=0}=u;return a(this.getStart().move(i).data,this.getEnd().move(-l).data)}sliceStartChars(u){let{skipStart:i=0,chars:l}=u;return a(this.getStart().move(i).data,this.getStart().move(i+l).data)}sliceEndChars(u){let{skipEnd:i=0,chars:l}=u;return a(this.getEnd().move(i-l).data,this.getStart().move(-i).data)}};t.SourceSpan=r;var s=class{constructor(u,i){this.source=u,this.charPositions=i,this.kind=\"CharPosition\",this._locPosSpan=null}wrap(){return new r(this)}asString(){return this.source.slice(this.charPositions.start.charPos,this.charPositions.end.charPos)}getModule(){return this.source.module}getStart(){return this.charPositions.start}getEnd(){return this.charPositions.end}locDidUpdate(){}toHbsSpan(){let u=this._locPosSpan;if(u===null){let i=this.charPositions.start.toHbsPos(),l=this.charPositions.end.toHbsPos();i===null||l===null?u=this._locPosSpan=e.BROKEN:u=this._locPosSpan=new p(this.source,{start:i,end:l})}return u===e.BROKEN?null:u}serialize(){let{start:{charPos:u},end:{charPos:i}}=this.charPositions;return u===i?u:[u,i]}toCharPosSpan(){return this}},p=class{constructor(u,i){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.source=u,this.hbsPositions=i,this.kind=\"HbsPosition\",this._charPosSpan=null,this._providedHbsLoc=l}serialize(){let u=this.toCharPosSpan();return u===null?\"Broken\":u.wrap().serialize()}wrap(){return new r(this)}updateProvided(u,i){this._providedHbsLoc&&(this._providedHbsLoc[i]=u),this._charPosSpan=null,this._providedHbsLoc={start:u,end:u}}locDidUpdate(u){let{start:i,end:l}=u;i!==void 0&&(this.updateProvided(i,\"start\"),this.hbsPositions.start=new e.HbsPosition(this.source,i,null)),l!==void 0&&(this.updateProvided(l,\"end\"),this.hbsPositions.end=new e.HbsPosition(this.source,l,null))}asString(){let u=this.toCharPosSpan();return u===null?\"\":u.asString()}getModule(){return this.source.module}getStart(){return this.hbsPositions.start}getEnd(){return this.hbsPositions.end}toHbsLoc(){return{start:this.hbsPositions.start.hbsPos,end:this.hbsPositions.end.hbsPos}}toHbsSpan(){return this}toCharPosSpan(){let u=this._charPosSpan;if(u===null){let i=this.hbsPositions.start.toCharPos(),l=this.hbsPositions.end.toCharPos();if(i&&l)u=this._charPosSpan=new s(this.source,{start:i,end:l});else return u=this._charPosSpan=e.BROKEN,null}return u===e.BROKEN?null:u}};t.HbsSpan=p;var n=class{constructor(u,i){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.kind=u,this.loc=i,this.string=l}serialize(){switch(this.kind){case\"Broken\":case\"NonExistent\":return this.kind;case\"InternalsSynthetic\":return this.string||\"\"}}wrap(){return new r(this)}asString(){return this.string||\"\"}locDidUpdate(u){let{start:i,end:l}=u;i!==void 0&&(this.loc.start=i),l!==void 0&&(this.loc.end=l)}getModule(){return\"an unknown module\"}getStart(){return new e.InvisiblePosition(this.kind,this.loc.start)}getEnd(){return new e.InvisiblePosition(this.kind,this.loc.end)}toCharPosSpan(){return this}toHbsSpan(){return null}toHbsLoc(){return d.BROKEN_LOCATION}},a=(0,o.match)(u=>u.when(\"HbsPosition\",\"HbsPosition\",(i,l)=>new p(i.source,{start:i,end:l}).wrap()).when(\"CharPosition\",\"CharPosition\",(i,l)=>new s(i.source,{start:i,end:l}).wrap()).when(\"CharPosition\",\"HbsPosition\",(i,l)=>{let b=l.toCharPos();return b===null?new n(\"Broken\",d.BROKEN_LOCATION).wrap():a(i,b)}).when(\"HbsPosition\",\"CharPosition\",(i,l)=>{let b=i.toCharPos();return b===null?new n(\"Broken\",d.BROKEN_LOCATION).wrap():a(b,l)}).when(o.IsInvisible,o.MatchAny,i=>new n(i.kind,d.BROKEN_LOCATION).wrap()).when(o.MatchAny,o.IsInvisible,(i,l)=>new n(l.kind,d.BROKEN_LOCATION).wrap()));t.span=a}}),ue=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),Object.defineProperty(t,\"SourceSpan\",{enumerable:!0,get:function(){return f.SourceSpan}}),Object.defineProperty(t,\"SourceOffset\",{enumerable:!0,get:function(){return h.SourceOffset}});var f=Ve(),h=He()}}),De=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/source.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.Source=void 0;var f=fe(),h=X(),d=ue(),c=class{constructor(o){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"an unknown module\";this.source=o,this.module=e}check(o){return o>=0&&o<=this.source.length}slice(o,e){return this.source.slice(o,e)}offsetFor(o,e){return d.SourceOffset.forHbsPos(this,{line:o,column:e})}spanFor(o){let{start:e,end:r}=o;return d.SourceSpan.forHbsLoc(this,{start:{line:e.line,column:e.column},end:{line:r.line,column:r.column}})}hbsPosFor(o){let e=0,r=0;if(o>this.source.length)return null;for(;;){let s=this.source.indexOf(`\n`,r);if(o<=s||s===-1)return{line:e+1,column:o-r};e+=1,r=s+1}}charPosFor(o){let{line:e,column:r}=o,p=this.source.length,n=0,a=0;for(;;){if(a>=p)return p;let u=this.source.indexOf(`\n`,a);if(u===-1&&(u=this.source.length),n===e-1){if(a+r>u)return u;if(f.DEBUG){let i=this.hbsPosFor(a+r)}return a+r}else{if(u===-1)return 0;n+=1,a=u+1}}}};t.Source=c}}),we=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/legacy-interop.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.PathExpressionImplV1=void 0;var f=h(ke());function h(c){return c&&c.__esModule?c:{default:c}}var d=class{constructor(c,o,e,r){this.original=c,this.loc=r,this.type=\"PathExpression\",this.this=!1,this.data=!1,this._head=void 0;let s=e.slice();o.type===\"ThisHead\"?this.this=!0:o.type===\"AtHead\"?(this.data=!0,s.unshift(o.name.slice(1))):s.unshift(o.name),this.parts=s}get head(){if(this._head)return this._head;let c;this.this?c=\"this\":this.data?c=\"@\".concat(this.parts[0]):c=this.parts[0];let o=this.loc.collapse(\"start\").sliceStartChars({chars:c.length}).loc;return this._head=f.default.head(c,o)}get tail(){return this.this?this.parts:this.parts.slice(1)}};t.PathExpressionImplV1=d}}),ke=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/public-builders.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=X(),h=ge(),d=De(),c=ue(),o=we(),e;function r(){return e||(e=new d.Source(\"\",\"(synthetic)\")),e}function s(T,N,k,B,O,q){return typeof T==\"string\"&&(T=m(T)),{type:\"MustacheStatement\",path:T,params:N||[],hash:k||S([]),escaped:!B,trusting:!!B,loc:U(O||null),strip:q||{open:!1,close:!1}}}function p(T,N,k,B,O,q,z,A,Q){let D,$;return B.type===\"Template\"?D=(0,f.assign)({},B,{type:\"Block\"}):D=B,O!=null&&O.type===\"Template\"?$=(0,f.assign)({},O,{type:\"Block\"}):$=O,{type:\"BlockStatement\",path:m(T),params:N||[],hash:k||S([]),program:D||null,inverse:$||null,loc:U(q||null),openStrip:z||{open:!1,close:!1},inverseStrip:A||{open:!1,close:!1},closeStrip:Q||{open:!1,close:!1}}}function n(T,N,k,B){return{type:\"ElementModifierStatement\",path:m(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function a(T,N,k,B,O){return{type:\"PartialStatement\",name:T,params:N||[],hash:k||S([]),indent:B||\"\",strip:{open:!1,close:!1},loc:U(O||null)}}function u(T,N){return{type:\"CommentStatement\",value:T,loc:U(N||null)}}function i(T,N){return{type:\"MustacheCommentStatement\",value:T,loc:U(N||null)}}function l(T,N){if(!(0,f.isPresent)(T))throw new Error(\"b.concat requires at least one part\");return{type:\"ConcatStatement\",parts:T||[],loc:U(N||null)}}function b(T){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{attrs:k,blockParams:B,modifiers:O,comments:q,children:z,loc:A}=N,Q,D=!1;return typeof T==\"object\"?(D=T.selfClosing,Q=T.name):T.slice(-1)===\"/\"?(Q=T.slice(0,-1),D=!0):Q=T,{type:\"ElementNode\",tag:Q,selfClosing:D,attributes:k||[],blockParams:B||[],modifiers:O||[],comments:q||[],children:z||[],loc:U(A||null)}}function P(T,N,k){return{type:\"AttrNode\",name:T,value:N,loc:U(k||null)}}function E(T,N){return{type:\"TextNode\",chars:T||\"\",loc:U(N||null)}}function v(T,N,k,B){return{type:\"SubExpression\",path:m(T),params:N||[],hash:k||S([]),loc:U(B||null)}}function _(T){switch(T.type){case\"AtHead\":return{original:T.name,parts:[T.name]};case\"ThisHead\":return{original:\"this\",parts:[]};case\"VarHead\":return{original:T.name,parts:[T.name]}}}function y(T,N){let[k,...B]=T.split(\".\"),O;return k===\"this\"?O={type:\"ThisHead\",loc:U(N||null)}:k[0]===\"@\"?O={type:\"AtHead\",name:k,loc:U(N||null)}:O={type:\"VarHead\",name:k,loc:U(N||null)},{head:O,tail:B}}function g(T){return{type:\"ThisHead\",loc:U(T||null)}}function L(T,N){return{type:\"AtHead\",name:T,loc:U(N||null)}}function j(T,N){return{type:\"VarHead\",name:T,loc:U(N||null)}}function x(T,N){return T[0]===\"@\"?L(T,N):T===\"this\"?g(N):j(T,N)}function w(T,N){return{type:\"NamedBlockName\",name:T,loc:U(N||null)}}function H(T,N,k){let{original:B,parts:O}=_(T),q=[...O,...N],z=[...B,...q].join(\".\");return new o.PathExpressionImplV1(z,T,N,U(k||null))}function m(T,N){if(typeof T!=\"string\"){if(\"type\"in T)return T;{let{head:O,tail:q}=y(T.head,c.SourceSpan.broken()),{original:z}=_(O);return new o.PathExpressionImplV1([z,...q].join(\".\"),O,q,U(N||null))}}let{head:k,tail:B}=y(T,c.SourceSpan.broken());return new o.PathExpressionImplV1(T,k,B,U(N||null))}function C(T,N,k){return{type:T,value:N,original:N,loc:U(k||null)}}function S(T,N){return{type:\"Hash\",pairs:T||[],loc:U(N||null)}}function R(T,N,k){return{type:\"HashPair\",key:T,value:N,loc:U(k||null)}}function M(T,N,k){return{type:\"Template\",body:T||[],blockParams:N||[],loc:U(k||null)}}function V(T,N){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,B=arguments.length>3?arguments[3]:void 0;return{type:\"Block\",body:T||[],blockParams:N||[],chained:k,loc:U(B||null)}}function G(T,N,k){return{type:\"Template\",body:T||[],blockParams:N||[],loc:U(k||null)}}function K(T,N){return{line:T,column:N}}function U(){for(var T=arguments.length,N=new Array(T),k=0;k1&&arguments[1]!==void 0?arguments[1]:!1;this.ambiguity=e,this.isAngleBracket=r}static namespaced(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return new d({namespaces:[e],fallback:!1},r)}static fallback(){return new d({namespaces:[],fallback:!0})}static append(e){let{invoke:r}=e;return new d({namespaces:[\"Component\",\"Helper\"],fallback:!r})}static trustingAppend(e){let{invoke:r}=e;return new d({namespaces:[\"Helper\"],fallback:!r})}static attr(){return new d({namespaces:[\"Helper\"],fallback:!0})}resolution(){if(this.ambiguity.namespaces.length===0)return 31;if(this.ambiguity.namespaces.length===1){if(this.ambiguity.fallback)return 36;switch(this.ambiguity.namespaces[0]){case\"Helper\":return 37;case\"Modifier\":return 38;case\"Component\":return 39}}else return this.ambiguity.fallback?34:35}serialize(){return this.ambiguity.namespaces.length===0?\"Loose\":this.ambiguity.namespaces.length===1?this.ambiguity.fallback?[\"ambiguous\",\"Attr\"]:[\"ns\",this.ambiguity.namespaces[0]]:this.ambiguity.fallback?[\"ambiguous\",\"Append\"]:[\"ambiguous\",\"Invoke\"]}};t.LooseModeResolution=d;var c=d.fallback();t.ARGUMENT_RESOLUTION=c;function o(e){if(typeof e==\"string\")switch(e){case\"Loose\":return d.fallback();case\"Strict\":return h}switch(e[0]){case\"ambiguous\":switch(e[1]){case\"Append\":return d.append({invoke:!1});case\"Attr\":return d.attr();case\"Invoke\":return d.append({invoke:!0})}case\"ns\":return d.namespaced(e[1])}}}}),ne=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/node.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.node=h;var f=X();function h(d){if(d!==void 0){let c=d;return{fields(){return class{constructor(o){this.type=c,(0,f.assign)(this,o)}}}}}else return{fields(){return class{constructor(c){(0,f.assign)(this,c)}}}}}}}),be=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/args.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.NamedArgument=t.NamedArguments=t.PositionalArguments=t.Args=void 0;var f=ne(),h=class extends(0,f.node)().fields(){static empty(e){return new h({loc:e,positional:d.empty(e),named:c.empty(e)})}static named(e){return new h({loc:e.loc,positional:d.empty(e.loc.collapse(\"end\")),named:e})}nth(e){return this.positional.nth(e)}get(e){return this.named.get(e)}isEmpty(){return this.positional.isEmpty()&&this.named.isEmpty()}};t.Args=h;var d=class extends(0,f.node)().fields(){static empty(e){return new d({loc:e,exprs:[]})}get size(){return this.exprs.length}nth(e){return this.exprs[e]||null}isEmpty(){return this.exprs.length===0}};t.PositionalArguments=d;var c=class extends(0,f.node)().fields(){static empty(e){return new c({loc:e,entries:[]})}get size(){return this.entries.length}get(e){let r=this.entries.filter(s=>s.name.chars===e)[0];return r?r.value:null}isEmpty(){return this.entries.length===0}};t.NamedArguments=c;var o=class{constructor(e){this.loc=e.name.loc.extend(e.value.loc),this.name=e.name,this.value=e.value}};t.NamedArgument=o}}),Dt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/attr-block.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.ElementModifier=t.ComponentArg=t.SplatAttr=t.HtmlAttr=void 0;var f=be(),h=ne(),d=class extends(0,h.node)(\"HtmlAttr\").fields(){};t.HtmlAttr=d;var c=class extends(0,h.node)(\"SplatAttr\").fields(){};t.SplatAttr=c;var o=class extends(0,h.node)().fields(){toNamedArgument(){return new f.NamedArgument({name:this.name,value:this.value})}};t.ComponentArg=o;var e=class extends(0,h.node)(\"ElementModifier\").fields(){};t.ElementModifier=e}}),wt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/base.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0})}}),ce=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/source/span-list.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.loc=d,t.hasSpan=c,t.maybeLoc=o,t.SpanList=void 0;var f=ue(),h=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];this._span=e}static range(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:f.SourceSpan.NON_EXISTENT;return new h(e.map(d)).getRangeOffset(r)}add(e){this._span.push(e)}getRangeOffset(e){if(this._span.length===0)return e;{let r=this._span[0],s=this._span[this._span.length-1];return r.extend(s)}}};t.SpanList=h;function d(e){if(Array.isArray(e)){let r=e[0],s=e[e.length-1];return d(r).extend(d(s))}else return e instanceof f.SourceSpan?e:e.loc}function c(e){return!(Array.isArray(e)&&e.length===0)}function o(e,r){return c(e)?d(e):r}}}),kt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/content.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.SimpleElement=t.InvokeComponent=t.InvokeBlock=t.AppendContent=t.HtmlComment=t.HtmlText=t.GlimmerComment=void 0;var f=ce(),h=be(),d=ne(),c=class extends(0,d.node)(\"GlimmerComment\").fields(){};t.GlimmerComment=c;var o=class extends(0,d.node)(\"HtmlText\").fields(){};t.HtmlText=o;var e=class extends(0,d.node)(\"HtmlComment\").fields(){};t.HtmlComment=e;var r=class extends(0,d.node)(\"AppendContent\").fields(){get callee(){return this.value.type===\"Call\"?this.value.callee:this.value}get args(){return this.value.type===\"Call\"?this.value.args:h.Args.empty(this.value.loc.collapse(\"end\"))}};t.AppendContent=r;var s=class extends(0,d.node)(\"InvokeBlock\").fields(){};t.InvokeBlock=s;var p=class extends(0,d.node)(\"InvokeComponent\").fields(){get args(){let a=this.componentArgs.map(u=>u.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(a,this.callee.loc.collapse(\"end\")),entries:a}))}};t.InvokeComponent=p;var n=class extends(0,d.node)(\"SimpleElement\").fields(){get args(){let a=this.componentArgs.map(u=>u.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(a,this.tag.loc.collapse(\"end\")),entries:a}))}};t.SimpleElement=n}}),Tt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/expr.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isLiteral=c,t.InterpolateExpression=t.DeprecatedCallExpression=t.CallExpression=t.PathExpression=t.LiteralExpression=void 0;var f=le(),h=ne(),d=class extends(0,h.node)(\"Literal\").fields(){toSlice(){return new f.SourceSlice({loc:this.loc,chars:this.value})}};t.LiteralExpression=d;function c(p,n){return p.type===\"Literal\"?n===void 0?!0:n===\"null\"?p.value===null:typeof p.value===n:!1}var o=class extends(0,h.node)(\"Path\").fields(){};t.PathExpression=o;var e=class extends(0,h.node)(\"Call\").fields(){};t.CallExpression=e;var r=class extends(0,h.node)(\"DeprecatedCall\").fields(){};t.DeprecatedCallExpression=r;var s=class extends(0,h.node)(\"Interpolate\").fields(){};t.InterpolateExpression=s}}),Bt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/refs.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.FreeVarReference=t.LocalVarReference=t.ArgReference=t.ThisReference=void 0;var f=ne(),h=class extends(0,f.node)(\"This\").fields(){};t.ThisReference=h;var d=class extends(0,f.node)(\"Arg\").fields(){};t.ArgReference=d;var c=class extends(0,f.node)(\"Local\").fields(){};t.LocalVarReference=c;var o=class extends(0,f.node)(\"Free\").fields(){};t.FreeVarReference=o}}),Ot=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/objects/internal-node.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.NamedBlock=t.NamedBlocks=t.Block=t.Template=void 0;var f=ce(),h=be(),d=ne(),c=class extends(0,d.node)().fields(){};t.Template=c;var o=class extends(0,d.node)().fields(){};t.Block=o;var e=class extends(0,d.node)().fields(){get(s){return this.blocks.filter(p=>p.name.chars===s)[0]||null}};t.NamedBlocks=e;var r=class extends(0,d.node)().fields(){get args(){let s=this.componentArgs.map(p=>p.toNamedArgument());return h.Args.named(new h.NamedArguments({loc:f.SpanList.range(s,this.name.loc.collapse(\"end\")),entries:s}))}};t.NamedBlock=r}}),ve=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/api.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f=Pt();Object.keys(f).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return f[n]}})});var h=ne();Object.keys(h).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return h[n]}})});var d=be();Object.keys(d).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return d[n]}})});var c=Dt();Object.keys(c).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return c[n]}})});var o=wt();Object.keys(o).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return o[n]}})});var e=kt();Object.keys(e).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})});var r=Tt();Object.keys(r).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[n]}})});var s=Bt();Object.keys(s).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return s[n]}})});var p=Ot();Object.keys(p).forEach(function(n){n===\"default\"||n===\"__esModule\"||Object.defineProperty(t,n,{enumerable:!0,get:function(){return p[n]}})})}}),Ue=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/generation/util.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.escapeAttrValue=r,t.escapeText=s,t.sortByLoc=p;var f=/[\\xA0\"&]/,h=new RegExp(f.source,\"g\"),d=/[\\xA0&<>]/,c=new RegExp(d.source,\"g\");function o(n){switch(n.charCodeAt(0)){case 160:return\" \";case 34:return\""\";case 38:return\"&\";default:return n}}function e(n){switch(n.charCodeAt(0)){case 160:return\" \";case 38:return\"&\";case 60:return\"<\";case 62:return\">\";default:return n}}function r(n){return f.test(n)?n.replace(h,o):n}function s(n){return d.test(n)?n.replace(c,e):n}function p(n,a){return n.loc.isInvisible||a.loc.isInvisible?0:n.loc.startPosition.line{h[e]=!0});var c=/\\S/,o=class{constructor(e){this.buffer=\"\",this.options=e}handledByOverride(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.options.override!==void 0){let s=this.options.override(e,this.options);if(typeof s==\"string\")return r&&s!==\"\"&&c.test(s[0])&&(s=\" \".concat(s)),this.buffer+=s,!0}return!1}Node(e){switch(e.type){case\"MustacheStatement\":case\"BlockStatement\":case\"PartialStatement\":case\"MustacheCommentStatement\":case\"CommentStatement\":case\"TextNode\":case\"ElementNode\":case\"AttrNode\":case\"Block\":case\"Template\":return this.TopLevelStatement(e);case\"StringLiteral\":case\"BooleanLiteral\":case\"NumberLiteral\":case\"UndefinedLiteral\":case\"NullLiteral\":case\"PathExpression\":case\"SubExpression\":return this.Expression(e);case\"Program\":return this.Block(e);case\"ConcatStatement\":return this.ConcatStatement(e);case\"Hash\":return this.Hash(e);case\"HashPair\":return this.HashPair(e);case\"ElementModifierStatement\":return this.ElementModifierStatement(e)}}Expression(e){switch(e.type){case\"StringLiteral\":case\"BooleanLiteral\":case\"NumberLiteral\":case\"UndefinedLiteral\":case\"NullLiteral\":return this.Literal(e);case\"PathExpression\":return this.PathExpression(e);case\"SubExpression\":return this.SubExpression(e)}}Literal(e){switch(e.type){case\"StringLiteral\":return this.StringLiteral(e);case\"BooleanLiteral\":return this.BooleanLiteral(e);case\"NumberLiteral\":return this.NumberLiteral(e);case\"UndefinedLiteral\":return this.UndefinedLiteral(e);case\"NullLiteral\":return this.NullLiteral(e)}}TopLevelStatement(e){switch(e.type){case\"MustacheStatement\":return this.MustacheStatement(e);case\"BlockStatement\":return this.BlockStatement(e);case\"PartialStatement\":return this.PartialStatement(e);case\"MustacheCommentStatement\":return this.MustacheCommentStatement(e);case\"CommentStatement\":return this.CommentStatement(e);case\"TextNode\":return this.TextNode(e);case\"ElementNode\":return this.ElementNode(e);case\"Block\":case\"Template\":return this.Block(e);case\"AttrNode\":return this.AttrNode(e)}}Block(e){if(e.chained){let r=e.body[0];r.chained=!0}this.handledByOverride(e)||this.TopLevelStatements(e.body)}TopLevelStatements(e){e.forEach(r=>this.TopLevelStatement(r))}ElementNode(e){this.handledByOverride(e)||(this.OpenElementNode(e),this.TopLevelStatements(e.children),this.CloseElementNode(e))}OpenElementNode(e){this.buffer+=\"<\".concat(e.tag);let r=[...e.attributes,...e.modifiers,...e.comments].sort(f.sortByLoc);for(let s of r)switch(this.buffer+=\" \",s.type){case\"AttrNode\":this.AttrNode(s);break;case\"ElementModifierStatement\":this.ElementModifierStatement(s);break;case\"MustacheCommentStatement\":this.MustacheCommentStatement(s);break}e.blockParams.length&&this.BlockParams(e.blockParams),e.selfClosing&&(this.buffer+=\" /\"),this.buffer+=\">\"}CloseElementNode(e){e.selfClosing||h[e.tag.toLowerCase()]||(this.buffer+=\"\"))}AttrNode(e){if(this.handledByOverride(e))return;let{name:r,value:s}=e;this.buffer+=r,(s.type!==\"TextNode\"||s.chars.length>0)&&(this.buffer+=\"=\",this.AttrNodeValue(s))}AttrNodeValue(e){e.type===\"TextNode\"?(this.buffer+='\"',this.TextNode(e,!0),this.buffer+='\"'):this.Node(e)}TextNode(e,r){this.handledByOverride(e)||(this.options.entityEncoding===\"raw\"?this.buffer+=e.chars:r?this.buffer+=(0,f.escapeAttrValue)(e.chars):this.buffer+=(0,f.escapeText)(e.chars))}MustacheStatement(e){this.handledByOverride(e)||(this.buffer+=e.escaped?\"{{\":\"{{{\",e.strip.open&&(this.buffer+=\"~\"),this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.strip.close&&(this.buffer+=\"~\"),this.buffer+=e.escaped?\"}}\":\"}}}\")}BlockStatement(e){this.handledByOverride(e)||(e.chained?(this.buffer+=e.inverseStrip.open?\"{{~\":\"{{\",this.buffer+=\"else \"):this.buffer+=e.openStrip.open?\"{{~#\":\"{{#\",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.program.blockParams.length&&this.BlockParams(e.program.blockParams),e.chained?this.buffer+=e.inverseStrip.close?\"~}}\":\"}}\":this.buffer+=e.openStrip.close?\"~}}\":\"}}\",this.Block(e.program),e.inverse&&(e.inverse.chained||(this.buffer+=e.inverseStrip.open?\"{{~\":\"{{\",this.buffer+=\"else\",this.buffer+=e.inverseStrip.close?\"~}}\":\"}}\"),this.Block(e.inverse)),e.chained||(this.buffer+=e.closeStrip.open?\"{{~/\":\"{{/\",this.Expression(e.path),this.buffer+=e.closeStrip.close?\"~}}\":\"}}\"))}BlockParams(e){this.buffer+=\" as |\".concat(e.join(\" \"),\"|\")}PartialStatement(e){this.handledByOverride(e)||(this.buffer+=\"{{>\",this.Expression(e.name),this.Params(e.params),this.Hash(e.hash),this.buffer+=\"}}\")}ConcatStatement(e){this.handledByOverride(e)||(this.buffer+='\"',e.parts.forEach(r=>{r.type===\"TextNode\"?this.TextNode(r,!0):this.Node(r)}),this.buffer+='\"')}MustacheCommentStatement(e){this.handledByOverride(e)||(this.buffer+=\"{{!--\".concat(e.value,\"--}}\"))}ElementModifierStatement(e){this.handledByOverride(e)||(this.buffer+=\"{{\",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+=\"}}\")}CommentStatement(e){this.handledByOverride(e)||(this.buffer+=\"\"))}PathExpression(e){this.handledByOverride(e)||(this.buffer+=e.original)}SubExpression(e){this.handledByOverride(e)||(this.buffer+=\"(\",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+=\")\")}Params(e){e.length&&e.forEach(r=>{this.buffer+=\" \",this.Expression(r)})}Hash(e){this.handledByOverride(e,!0)||e.pairs.forEach(r=>{this.buffer+=\" \",this.HashPair(r)})}HashPair(e){this.handledByOverride(e)||(this.buffer+=e.key,this.buffer+=\"=\",this.Node(e.value))}StringLiteral(e){this.handledByOverride(e)||(this.buffer+=JSON.stringify(e.value))}BooleanLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}NumberLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}UndefinedLiteral(e){this.handledByOverride(e)||(this.buffer+=\"undefined\")}NullLiteral(e){this.handledByOverride(e)||(this.buffer+=\"null\")}print(e){let{options:r}=this;if(r.override){let s=r.override(e,r);if(s!==void 0)return s}return this.buffer=\"\",this.Node(e),this.buffer}};t.default=o}}),Be=I({\"node_modules/@handlebars/parser/dist/cjs/exception.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0});var f=[\"description\",\"fileName\",\"lineNumber\",\"endLineNumber\",\"message\",\"name\",\"number\",\"stack\"];function h(d,c){var o=c&&c.loc,e,r,s,p;o&&(e=o.start.line,r=o.end.line,s=o.start.column,p=o.end.column,d+=\" - \"+e+\":\"+s);for(var n=Error.prototype.constructor.call(this,d),a=0;a\"u\"&&(Y.yylloc={});var Ee=Y.yylloc;A.push(Ee);var rt=Y.options&&Y.options.ranges;typeof ie.yy.parseError==\"function\"?this.parseError=ie.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function $t(te){O.length=O.length-2*te,z.length=z.length-te,A.length=A.length-te}e:var nt=function(){var te;return te=Y.lex()||Re,typeof te!=\"number\"&&(te=B.symbols_[te]||te),te};for(var J,_e,ae,ee,er,Se,se={},de,re,qe,pe;;){if(ae=O[O.length-1],this.defaultActions[ae]?ee=this.defaultActions[ae]:((J===null||typeof J>\"u\")&&(J=nt()),ee=Q[ae]&&Q[ae][J]),typeof ee>\"u\"||!ee.length||!ee[0]){var Ce=\"\";pe=[];for(de in Q[ae])this.terminals_[de]&&de>et&&pe.push(\"'\"+this.terminals_[de]+\"'\");Y.showPosition?Ce=\"Parse error on line \"+($+1)+`:\n`+Y.showPosition()+`\nExpecting `+pe.join(\", \")+\", got '\"+(this.terminals_[J]||J)+\"'\":Ce=\"Parse error on line \"+($+1)+\": Unexpected \"+(J==Re?\"end of input\":\"'\"+(this.terminals_[J]||J)+\"'\"),this.parseError(Ce,{text:Y.match,token:this.terminals_[J]||J,line:Y.yylineno,loc:Ee,expected:pe})}if(ee[0]instanceof Array&&ee.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+ae+\", token: \"+J);switch(ee[0]){case 1:O.push(J),z.push(Y.yytext),A.push(Y.yylloc),O.push(ee[1]),J=null,_e?(J=_e,_e=null):(oe=Y.yyleng,D=Y.yytext,$=Y.yylineno,Ee=Y.yylloc,Ie>0&&Ie--);break;case 2:if(re=this.productions_[ee[1]][1],se.$=z[z.length-re],se._$={first_line:A[A.length-(re||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(re||1)].first_column,last_column:A[A.length-1].last_column},rt&&(se._$.range=[A[A.length-(re||1)].range[0],A[A.length-1].range[1]]),Se=this.performAction.apply(se,[D,oe,$,ie.yy,ee[1],z,A].concat(tt)),typeof Se<\"u\")return Se;re&&(O=O.slice(0,-1*re*2),z=z.slice(0,-1*re),A=A.slice(0,-1*re)),O.push(this.productions_[ee[1]][0]),z.push(se.$),A.push(se._$),qe=Q[O[O.length-2]][O[O.length-1]],O.push(qe);break;case 3:return!0}}return!0}},W=function(){var N={EOF:1,parseError:function(B,O){if(this.yy.parser)this.yy.parser.parseError(B,O);else throw new Error(B)},setInput:function(k,B){return this.yy=B||this.yy||{},this._input=k,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var k=this._input[0];this.yytext+=k,this.yyleng++,this.offset++,this.match+=k,this.matched+=k;var B=k.match(/(?:\\r\\n?|\\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),k},unput:function(k){var B=k.length,O=k.split(/(?:\\r\\n?|\\n)/g);this._input=k+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;var q=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),O.length-1&&(this.yylineno-=O.length-1);var z=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:O?(O.length===q.length?this.yylloc.first_column:0)+q[q.length-O.length].length-O[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[z[0],z[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno});return this},less:function(k){this.unput(this.match.slice(k))},pastInput:function(){var k=this.matched.substr(0,this.matched.length-this.match.length);return(k.length>20?\"...\":\"\")+k.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var k=this.match;return k.length<20&&(k+=this._input.substr(0,20-k.length)),(k.substr(0,20)+(k.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var k=this.pastInput(),B=new Array(k.length+1).join(\"-\");return k+this.upcomingInput()+`\n`+B+\"^\"},test_match:function(k,B){var O,q,z;if(this.options.backtrack_lexer&&(z={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(z.yylloc.range=this.yylloc.range.slice(0))),q=k[0].match(/(?:\\r\\n?|\\n).*/g),q&&(this.yylineno+=q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:q?q[q.length-1].length-q[q.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+k[0].length},this.yytext+=k[0],this.match+=k[0],this.matches=k,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(k[0].length),this.matched+=k[0],O=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),O)return O;if(this._backtrack){for(var A in z)this[A]=z[A];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var k,B,O,q;this._more||(this.yytext=\"\",this.match=\"\");for(var z=this._currentRules(),A=0;AB[0].length)){if(B=O,q=A,this.options.backtrack_lexer){if(k=this.test_match(O,z[A]),k!==!1)return k;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(k=this.test_match(B,z[q]),k!==!1?k:!1):this._input===\"\"?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+`. Unrecognized text.\n`+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var B=this.next();return B||this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:\"INITIAL\"},pushState:function(B){this.begin(B)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(B,O,q,z){function A(D,$){return O.yytext=O.yytext.substring(D,O.yyleng-$+D)}var Q=z;switch(q){case 0:if(O.yytext.slice(-2)===\"\\\\\\\\\"?(A(0,1),this.begin(\"mu\")):O.yytext.slice(-1)===\"\\\\\"?(A(0,1),this.begin(\"emu\")):this.begin(\"mu\"),O.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;break;case 3:return this.begin(\"raw\"),15;break;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]===\"raw\"?15:(A(5,9),18);case 5:return 15;case 6:return this.popState(),14;break;case 7:return 64;case 8:return 67;case 9:return 19;case 10:return this.popState(),this.begin(\"raw\"),23;break;case 11:return 56;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;break;case 16:return this.popState(),44;break;case 17:return 34;case 18:return 39;case 19:return 52;case 20:return 48;case 21:this.unput(O.yytext),this.popState(),this.begin(\"com\");break;case 22:return this.popState(),14;break;case 23:return 48;case 24:return 72;case 25:return 71;case 26:return 71;case 27:return 86;case 28:break;case 29:return this.popState(),55;break;case 30:return this.popState(),33;break;case 31:return O.yytext=A(1,2).replace(/\\\\\"/g,'\"'),79;break;case 32:return O.yytext=A(1,2).replace(/\\\\'/g,\"'\"),79;break;case 33:return 84;case 34:return 81;case 35:return 81;case 36:return 82;case 37:return 83;case 38:return 80;case 39:return 74;case 40:return 76;case 41:return 71;case 42:return O.yytext=O.yytext.replace(/\\\\([\\\\\\]])/g,\"$1\"),71;break;case 43:return\"INVALID\";case 44:return 5}},rules:[/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:\\{\\{\\{\\{(?=[^/]))/,/^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/,/^(?:[^\\x00]+?(?=(\\{\\{\\{\\{)))/,/^(?:[\\s\\S]*?--(~)?\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{\\{\\{)/,/^(?:\\}\\}\\}\\})/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#>)/,/^(?:\\{\\{(~)?#\\*?)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\s*else\\s*(~)?\\}\\})/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{(~)?!--)/,/^(?:\\{\\{(~)?![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?\\*?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)|])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:undefined(?=([~}\\s)])))/,/^(?:null(?=([~}\\s)])))/,/^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/,/^(?:as\\s+\\|)/,/^(?:\\|)/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)|]))))/,/^(?:\\[(\\\\\\]|[^\\]])*\\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return N}();Z.lexer=W;function T(){this.yy={}}return T.prototype=Z,Z.Parser=T,new T}();t.default=f}}),Nt=I({\"node_modules/@handlebars/parser/dist/cjs/printer.js\"(t){\"use strict\";F();var f=t&&t.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.PrintVisitor=t.print=void 0;var h=f(Oe());function d(o){return new c().accept(o)}t.print=d;function c(){this.padding=0}t.PrintVisitor=c,c.prototype=new h.default,c.prototype.pad=function(o){for(var e=\"\",r=0,s=this.padding;r \"+e+\" }}\")},c.prototype.PartialBlockStatement=function(o){var e=\"PARTIAL BLOCK:\"+o.name.original;return o.params[0]&&(e+=\" \"+this.accept(o.params[0])),o.hash&&(e+=\" \"+this.accept(o.hash)),e+=\" \"+this.pad(\"PROGRAM:\"),this.padding++,e+=this.accept(o.program),this.padding--,this.pad(\"{{> \"+e+\" }}\")},c.prototype.ContentStatement=function(o){return this.pad(\"CONTENT[ '\"+o.value+\"' ]\")},c.prototype.CommentStatement=function(o){return this.pad(\"{{! '\"+o.value+\"' }}\")},c.prototype.SubExpression=function(o){for(var e=o.params,r=[],s,p=0,n=e.length;p0)throw new h.default(\"Invalid path: \"+E,{loc:P});L===\"..\"&&_++}else v.push(L)}return{type:\"PathExpression\",data:l,depth:_,parts:v,original:E,loc:P}}t.preparePath=s;function p(l,b,P,E,v,_){var y=E.charAt(3)||E.charAt(2),g=y!==\"{\"&&y!==\"&\",L=/\\*/.test(E);return{type:L?\"Decorator\":\"MustacheStatement\",path:l,params:b,hash:P,escaped:g,strip:v,loc:this.locInfo(_)}}t.prepareMustache=p;function n(l,b,P,E){d(l,P),E=this.locInfo(E);var v={type:\"Program\",body:b,strip:{},loc:E};return{type:\"BlockStatement\",path:l.path,params:l.params,hash:l.hash,program:v,openStrip:{},inverseStrip:{},closeStrip:{},loc:E}}t.prepareRawBlock=n;function a(l,b,P,E,v,_){E&&E.path&&d(l,E);var y=/\\*/.test(l.open);b.blockParams=l.blockParams;var g,L;if(P){if(y)throw new h.default(\"Unexpected inverse block on decorator\",P);P.chain&&(P.program.body[0].closeStrip=E.strip),L=P.strip,g=P.program}return v&&(v=g,g=b,b=v),{type:y?\"DecoratorBlock\":\"BlockStatement\",path:l.path,params:l.params,hash:l.hash,program:b,inverse:g,openStrip:l.strip,inverseStrip:L,closeStrip:E&&E.strip,loc:this.locInfo(_)}}t.prepareBlock=a;function u(l,b){if(!b&&l.length){var P=l[0].loc,E=l[l.length-1].loc;P&&E&&(b={source:P.source,start:{line:P.start.line,column:P.start.column},end:{line:E.end.line,column:E.end.column}})}return{type:\"Program\",body:l,strip:{},loc:b}}t.prepareProgram=u;function i(l,b,P,E){return d(l,P),{type:\"PartialBlockStatement\",name:l.path,params:l.params,hash:l.hash,program:b,openStrip:l.strip,closeStrip:P&&P.strip,loc:this.locInfo(E)}}t.preparePartialBlock=i}}),Ft=I({\"node_modules/@handlebars/parser/dist/cjs/parse.js\"(t){\"use strict\";F();var f=t&&t.__createBinding||(Object.create?function(u,i,l,b){b===void 0&&(b=l),Object.defineProperty(u,b,{enumerable:!0,get:function(){return i[l]}})}:function(u,i,l,b){b===void 0&&(b=l),u[b]=i[l]}),h=t&&t.__setModuleDefault||(Object.create?function(u,i){Object.defineProperty(u,\"default\",{enumerable:!0,value:i})}:function(u,i){u.default=i}),d=t&&t.__importStar||function(u){if(u&&u.__esModule)return u;var i={};if(u!=null)for(var l in u)l!==\"default\"&&Object.prototype.hasOwnProperty.call(u,l)&&f(i,u,l);return h(i,u),i},c=t&&t.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.parse=t.parseWithoutProcessing=void 0;var o=c(Ge()),e=c(ze()),r=d(Lt()),s={};for(p in r)Object.prototype.hasOwnProperty.call(r,p)&&(s[p]=r[p]);var p;function n(u,i){if(u.type===\"Program\")return u;o.default.yy=s,o.default.yy.locInfo=function(b){return new r.SourceLocation(i&&i.srcName,b)};var l=o.default.parse(u);return l}t.parseWithoutProcessing=n;function a(u,i){var l=n(u,i),b=new e.default(i);return b.accept(l)}t.parse=a}}),It=I({\"node_modules/@handlebars/parser/dist/cjs/index.js\"(t){\"use strict\";F();var f=t&&t.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.parseWithoutProcessing=t.parse=t.PrintVisitor=t.print=t.Exception=t.parser=t.WhitespaceControl=t.Visitor=void 0;var h=Oe();Object.defineProperty(t,\"Visitor\",{enumerable:!0,get:function(){return f(h).default}});var d=ze();Object.defineProperty(t,\"WhitespaceControl\",{enumerable:!0,get:function(){return f(d).default}});var c=Ge();Object.defineProperty(t,\"parser\",{enumerable:!0,get:function(){return f(c).default}});var o=Be();Object.defineProperty(t,\"Exception\",{enumerable:!0,get:function(){return f(o).default}});var e=Nt();Object.defineProperty(t,\"print\",{enumerable:!0,get:function(){return e.print}}),Object.defineProperty(t,\"PrintVisitor\",{enumerable:!0,get:function(){return e.PrintVisitor}});var r=Ft();Object.defineProperty(t,\"parse\",{enumerable:!0,get:function(){return r.parse}}),Object.defineProperty(t,\"parseWithoutProcessing\",{enumerable:!0,get:function(){return r.parseWithoutProcessing}})}}),Ke=I({\"node_modules/simple-html-tokenizer/dist/simple-html-tokenizer.js\"(t,f){F(),function(h,d){typeof t==\"object\"&&typeof f<\"u\"?d(t):typeof define==\"function\"&&define.amd?define([\"exports\"],d):d(h.HTML5Tokenizer={})}(t,function(h){\"use strict\";var d={Aacute:\"\\xC1\",aacute:\"\\xE1\",Abreve:\"\\u0102\",abreve:\"\\u0103\",ac:\"\\u223E\",acd:\"\\u223F\",acE:\"\\u223E\\u0333\",Acirc:\"\\xC2\",acirc:\"\\xE2\",acute:\"\\xB4\",Acy:\"\\u0410\",acy:\"\\u0430\",AElig:\"\\xC6\",aelig:\"\\xE6\",af:\"\\u2061\",Afr:\"\\u{1D504}\",afr:\"\\u{1D51E}\",Agrave:\"\\xC0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",Alpha:\"\\u0391\",alpha:\"\\u03B1\",Amacr:\"\\u0100\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",amp:\"&\",AMP:\"&\",andand:\"\\u2A55\",And:\"\\u2A53\",and:\"\\u2227\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angmsd:\"\\u2221\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",Aogon:\"\\u0104\",aogon:\"\\u0105\",Aopf:\"\\u{1D538}\",aopf:\"\\u{1D552}\",apacir:\"\\u2A6F\",ap:\"\\u2248\",apE:\"\\u2A70\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",ApplyFunction:\"\\u2061\",approx:\"\\u2248\",approxeq:\"\\u224A\",Aring:\"\\xC5\",aring:\"\\xE5\",Ascr:\"\\u{1D49C}\",ascr:\"\\u{1D4B6}\",Assign:\"\\u2254\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",Atilde:\"\\xC3\",atilde:\"\\xE3\",Auml:\"\\xC4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",barvee:\"\\u22BD\",barwed:\"\\u2305\",Barwed:\"\\u2306\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",Bcy:\"\\u0411\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",Because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",Bfr:\"\\u{1D505}\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bNot:\"\\u2AED\",bnot:\"\\u2310\",Bopf:\"\\u{1D539}\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxbox:\"\\u29C9\",boxdl:\"\\u2510\",boxdL:\"\\u2555\",boxDl:\"\\u2556\",boxDL:\"\\u2557\",boxdr:\"\\u250C\",boxdR:\"\\u2552\",boxDr:\"\\u2553\",boxDR:\"\\u2554\",boxh:\"\\u2500\",boxH:\"\\u2550\",boxhd:\"\\u252C\",boxHd:\"\\u2564\",boxhD:\"\\u2565\",boxHD:\"\\u2566\",boxhu:\"\\u2534\",boxHu:\"\\u2567\",boxhU:\"\\u2568\",boxHU:\"\\u2569\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxul:\"\\u2518\",boxuL:\"\\u255B\",boxUl:\"\\u255C\",boxUL:\"\\u255D\",boxur:\"\\u2514\",boxuR:\"\\u2558\",boxUr:\"\\u2559\",boxUR:\"\\u255A\",boxv:\"\\u2502\",boxV:\"\\u2551\",boxvh:\"\\u253C\",boxvH:\"\\u256A\",boxVh:\"\\u256B\",boxVH:\"\\u256C\",boxvl:\"\\u2524\",boxvL:\"\\u2561\",boxVl:\"\\u2562\",boxVL:\"\\u2563\",boxvr:\"\\u251C\",boxvR:\"\\u255E\",boxVr:\"\\u255F\",boxVR:\"\\u2560\",bprime:\"\\u2035\",breve:\"\\u02D8\",Breve:\"\\u02D8\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",Bscr:\"\\u212C\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsolb:\"\\u29C5\",bsol:\"\\\\\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",Bumpeq:\"\\u224E\",bumpeq:\"\\u224F\",Cacute:\"\\u0106\",cacute:\"\\u0107\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",cap:\"\\u2229\",Cap:\"\\u22D2\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",CapitalDifferentialD:\"\\u2145\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",Cayleys:\"\\u212D\",ccaps:\"\\u2A4D\",Ccaron:\"\\u010C\",ccaron:\"\\u010D\",Ccedil:\"\\xC7\",ccedil:\"\\xE7\",Ccirc:\"\\u0108\",ccirc:\"\\u0109\",Cconint:\"\\u2230\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",Cdot:\"\\u010A\",cdot:\"\\u010B\",cedil:\"\\xB8\",Cedilla:\"\\xB8\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",centerdot:\"\\xB7\",CenterDot:\"\\xB7\",cfr:\"\\u{1D520}\",Cfr:\"\\u212D\",CHcy:\"\\u0427\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",Chi:\"\\u03A7\",chi:\"\\u03C7\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",CircleDot:\"\\u2299\",circledR:\"\\xAE\",circledS:\"\\u24C8\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",cir:\"\\u25CB\",cirE:\"\\u29C3\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",Colon:\"\\u2237\",Colone:\"\\u2A74\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",Congruent:\"\\u2261\",conint:\"\\u222E\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",copf:\"\\u{1D554}\",Copf:\"\\u2102\",coprod:\"\\u2210\",Coproduct:\"\\u2210\",copy:\"\\xA9\",COPY:\"\\xA9\",copysr:\"\\u2117\",CounterClockwiseContourIntegral:\"\\u2233\",crarr:\"\\u21B5\",cross:\"\\u2717\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",CupCap:\"\\u224D\",cup:\"\\u222A\",Cup:\"\\u22D3\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dagger:\"\\u2020\",Dagger:\"\\u2021\",daleth:\"\\u2138\",darr:\"\\u2193\",Darr:\"\\u21A1\",dArr:\"\\u21D3\",dash:\"\\u2010\",Dashv:\"\\u2AE4\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",Dcaron:\"\\u010E\",dcaron:\"\\u010F\",Dcy:\"\\u0414\",dcy:\"\\u0434\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",DD:\"\\u2145\",dd:\"\\u2146\",DDotrahd:\"\\u2911\",ddotseq:\"\\u2A77\",deg:\"\\xB0\",Del:\"\\u2207\",Delta:\"\\u0394\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",Dfr:\"\\u{1D507}\",dfr:\"\\u{1D521}\",dHar:\"\\u2965\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",diam:\"\\u22C4\",diamond:\"\\u22C4\",Diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",DifferentialD:\"\\u2146\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",DJcy:\"\\u0402\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",Dopf:\"\\u{1D53B}\",dopf:\"\\u{1D555}\",Dot:\"\\xA8\",dot:\"\\u02D9\",DotDot:\"\\u20DC\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",DotEqual:\"\\u2250\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrowBar:\"\\u2913\",downarrow:\"\\u2193\",DownArrow:\"\\u2193\",Downarrow:\"\\u21D3\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVectorBar:\"\\u2956\",DownLeftVector:\"\\u21BD\",DownRightTeeVector:\"\\u295F\",DownRightVectorBar:\"\\u2957\",DownRightVector:\"\\u21C1\",DownTeeArrow:\"\\u21A7\",DownTee:\"\\u22A4\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",Dscr:\"\\u{1D49F}\",dscr:\"\\u{1D4B9}\",DScy:\"\\u0405\",dscy:\"\\u0455\",dsol:\"\\u29F6\",Dstrok:\"\\u0110\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",DZcy:\"\\u040F\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",Eacute:\"\\xC9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",Ecaron:\"\\u011A\",ecaron:\"\\u011B\",Ecirc:\"\\xCA\",ecirc:\"\\xEA\",ecir:\"\\u2256\",ecolon:\"\\u2255\",Ecy:\"\\u042D\",ecy:\"\\u044D\",eDDot:\"\\u2A77\",Edot:\"\\u0116\",edot:\"\\u0117\",eDot:\"\\u2251\",ee:\"\\u2147\",efDot:\"\\u2252\",Efr:\"\\u{1D508}\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",Egrave:\"\\xC8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",Element:\"\\u2208\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",Emacr:\"\\u0112\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",EmptySmallSquare:\"\\u25FB\",emptyv:\"\\u2205\",EmptyVerySmallSquare:\"\\u25AB\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",ENG:\"\\u014A\",eng:\"\\u014B\",ensp:\"\\u2002\",Eogon:\"\\u0118\",eogon:\"\\u0119\",Eopf:\"\\u{1D53C}\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",Epsilon:\"\\u0395\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",Equal:\"\\u2A75\",equals:\"=\",EqualTilde:\"\\u2242\",equest:\"\\u225F\",Equilibrium:\"\\u21CC\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erarr:\"\\u2971\",erDot:\"\\u2253\",escr:\"\\u212F\",Escr:\"\\u2130\",esdot:\"\\u2250\",Esim:\"\\u2A73\",esim:\"\\u2242\",Eta:\"\\u0397\",eta:\"\\u03B7\",ETH:\"\\xD0\",eth:\"\\xF0\",Euml:\"\\xCB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",Exists:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",ExponentialE:\"\\u2147\",fallingdotseq:\"\\u2252\",Fcy:\"\\u0424\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",Ffr:\"\\u{1D509}\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",Fopf:\"\\u{1D53D}\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",ForAll:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",Fouriertrf:\"\\u2131\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",Fscr:\"\\u2131\",gacute:\"\\u01F5\",Gamma:\"\\u0393\",gamma:\"\\u03B3\",Gammad:\"\\u03DC\",gammad:\"\\u03DD\",gap:\"\\u2A86\",Gbreve:\"\\u011E\",gbreve:\"\\u011F\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",gcirc:\"\\u011D\",Gcy:\"\\u0413\",gcy:\"\\u0433\",Gdot:\"\\u0120\",gdot:\"\\u0121\",ge:\"\\u2265\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",gescc:\"\\u2AA9\",ges:\"\\u2A7E\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",Gfr:\"\\u{1D50A}\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",Gg:\"\\u22D9\",ggg:\"\\u22D9\",gimel:\"\\u2137\",GJcy:\"\\u0403\",gjcy:\"\\u0453\",gla:\"\\u2AA5\",gl:\"\\u2277\",glE:\"\\u2A92\",glj:\"\\u2AA4\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gnE:\"\\u2269\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",Gopf:\"\\u{1D53E}\",gopf:\"\\u{1D558}\",grave:\"`\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gt:\">\",GT:\">\",Gt:\"\\u226B\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",Hacek:\"\\u02C7\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",HARDcy:\"\\u042A\",hardcy:\"\\u044A\",harrcir:\"\\u2948\",harr:\"\\u2194\",hArr:\"\\u21D4\",harrw:\"\\u21AD\",Hat:\"^\",hbar:\"\\u210F\",Hcirc:\"\\u0124\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",Hopf:\"\\u210D\",horbar:\"\\u2015\",HorizontalLine:\"\\u2500\",hscr:\"\\u{1D4BD}\",Hscr:\"\\u210B\",hslash:\"\\u210F\",Hstrok:\"\\u0126\",hstrok:\"\\u0127\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",hybull:\"\\u2043\",hyphen:\"\\u2010\",Iacute:\"\\xCD\",iacute:\"\\xED\",ic:\"\\u2063\",Icirc:\"\\xCE\",icirc:\"\\xEE\",Icy:\"\\u0418\",icy:\"\\u0438\",Idot:\"\\u0130\",IEcy:\"\\u0415\",iecy:\"\\u0435\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",Ifr:\"\\u2111\",Igrave:\"\\xCC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",IJlig:\"\\u0132\",ijlig:\"\\u0133\",Imacr:\"\\u012A\",imacr:\"\\u012B\",image:\"\\u2111\",ImaginaryI:\"\\u2148\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",Im:\"\\u2111\",imof:\"\\u22B7\",imped:\"\\u01B5\",Implies:\"\\u21D2\",incare:\"\\u2105\",in:\"\\u2208\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",intcal:\"\\u22BA\",int:\"\\u222B\",Int:\"\\u222C\",integers:\"\\u2124\",Integral:\"\\u222B\",intercal:\"\\u22BA\",Intersection:\"\\u22C2\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",IOcy:\"\\u0401\",iocy:\"\\u0451\",Iogon:\"\\u012E\",iogon:\"\\u012F\",Iopf:\"\\u{1D540}\",iopf:\"\\u{1D55A}\",Iota:\"\\u0399\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",Iscr:\"\\u2110\",isin:\"\\u2208\",isindot:\"\\u22F5\",isinE:\"\\u22F9\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",Itilde:\"\\u0128\",itilde:\"\\u0129\",Iukcy:\"\\u0406\",iukcy:\"\\u0456\",Iuml:\"\\xCF\",iuml:\"\\xEF\",Jcirc:\"\\u0134\",jcirc:\"\\u0135\",Jcy:\"\\u0419\",jcy:\"\\u0439\",Jfr:\"\\u{1D50D}\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",Jopf:\"\\u{1D541}\",jopf:\"\\u{1D55B}\",Jscr:\"\\u{1D4A5}\",jscr:\"\\u{1D4BF}\",Jsercy:\"\\u0408\",jsercy:\"\\u0458\",Jukcy:\"\\u0404\",jukcy:\"\\u0454\",Kappa:\"\\u039A\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",Kcedil:\"\\u0136\",kcedil:\"\\u0137\",Kcy:\"\\u041A\",kcy:\"\\u043A\",Kfr:\"\\u{1D50E}\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",KHcy:\"\\u0425\",khcy:\"\\u0445\",KJcy:\"\\u040C\",kjcy:\"\\u045C\",Kopf:\"\\u{1D542}\",kopf:\"\\u{1D55C}\",Kscr:\"\\u{1D4A6}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",Lacute:\"\\u0139\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",Lambda:\"\\u039B\",lambda:\"\\u03BB\",lang:\"\\u27E8\",Lang:\"\\u27EA\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",Laplacetrf:\"\\u2112\",laquo:\"\\xAB\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larr:\"\\u2190\",Larr:\"\\u219E\",lArr:\"\\u21D0\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",latail:\"\\u2919\",lAtail:\"\\u291B\",lat:\"\\u2AAB\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lBarr:\"\\u290E\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",Lcaron:\"\\u013D\",lcaron:\"\\u013E\",Lcedil:\"\\u013B\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",Lcy:\"\\u041B\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",lE:\"\\u2266\",LeftAngleBracket:\"\\u27E8\",LeftArrowBar:\"\\u21E4\",leftarrow:\"\\u2190\",LeftArrow:\"\\u2190\",Leftarrow:\"\\u21D0\",LeftArrowRightArrow:\"\\u21C6\",leftarrowtail:\"\\u21A2\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVectorBar:\"\\u2959\",LeftDownVector:\"\\u21C3\",LeftFloor:\"\\u230A\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",LeftRightArrow:\"\\u2194\",Leftrightarrow:\"\\u21D4\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",LeftRightVector:\"\\u294E\",LeftTeeArrow:\"\\u21A4\",LeftTee:\"\\u22A3\",LeftTeeVector:\"\\u295A\",leftthreetimes:\"\\u22CB\",LeftTriangleBar:\"\\u29CF\",LeftTriangle:\"\\u22B2\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVectorBar:\"\\u2958\",LeftUpVector:\"\\u21BF\",LeftVectorBar:\"\\u2952\",LeftVector:\"\\u21BC\",lEg:\"\\u2A8B\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",lescc:\"\\u2AA8\",les:\"\\u2A7D\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",LessLess:\"\\u2AA1\",lesssim:\"\\u2272\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",Lfr:\"\\u{1D50F}\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lHar:\"\\u2962\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",LJcy:\"\\u0409\",ljcy:\"\\u0459\",llarr:\"\\u21C7\",ll:\"\\u226A\",Ll:\"\\u22D8\",llcorner:\"\\u231E\",Lleftarrow:\"\\u21DA\",llhard:\"\\u296B\",lltri:\"\\u25FA\",Lmidot:\"\\u013F\",lmidot:\"\\u0140\",lmoustache:\"\\u23B0\",lmoust:\"\\u23B0\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lnE:\"\\u2268\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",LongLeftArrow:\"\\u27F5\",Longleftarrow:\"\\u27F8\",longleftrightarrow:\"\\u27F7\",LongLeftRightArrow:\"\\u27F7\",Longleftrightarrow:\"\\u27FA\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",LongRightArrow:\"\\u27F6\",Longrightarrow:\"\\u27F9\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",Lopf:\"\\u{1D543}\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",Lscr:\"\\u2112\",lsh:\"\\u21B0\",Lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",Lstrok:\"\\u0141\",lstrok:\"\\u0142\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",lt:\"<\",LT:\"<\",Lt:\"\\u226A\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",ltrPar:\"\\u2996\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",Map:\"\\u2905\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",Mcy:\"\\u041C\",mcy:\"\\u043C\",mdash:\"\\u2014\",mDDot:\"\\u223A\",measuredangle:\"\\u2221\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",midast:\"*\",midcir:\"\\u2AF0\",mid:\"\\u2223\",middot:\"\\xB7\",minusb:\"\\u229F\",minus:\"\\u2212\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",MinusPlus:\"\\u2213\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",Mopf:\"\\u{1D544}\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",Mscr:\"\\u2133\",mstpos:\"\\u223E\",Mu:\"\\u039C\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nabla:\"\\u2207\",Nacute:\"\\u0143\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natural:\"\\u266E\",naturals:\"\\u2115\",natur:\"\\u266E\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",Ncaron:\"\\u0147\",ncaron:\"\\u0148\",Ncedil:\"\\u0145\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",Ncy:\"\\u041D\",ncy:\"\\u043D\",ndash:\"\\u2013\",nearhk:\"\\u2924\",nearr:\"\\u2197\",neArr:\"\\u21D7\",nearrow:\"\\u2197\",ne:\"\\u2260\",nedot:\"\\u2250\\u0338\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,nexist:\"\\u2204\",nexists:\"\\u2204\",Nfr:\"\\u{1D511}\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",nGg:\"\\u22D9\\u0338\",ngsim:\"\\u2275\",nGt:\"\\u226B\\u20D2\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nGtv:\"\\u226B\\u0338\",nharr:\"\\u21AE\",nhArr:\"\\u21CE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",NJcy:\"\\u040A\",njcy:\"\\u045A\",nlarr:\"\\u219A\",nlArr:\"\\u21CD\",nldr:\"\\u2025\",nlE:\"\\u2266\\u0338\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nLeftarrow:\"\\u21CD\",nleftrightarrow:\"\\u21AE\",nLeftrightarrow:\"\\u21CE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nLl:\"\\u22D8\\u0338\",nlsim:\"\\u2274\",nLt:\"\\u226A\\u20D2\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nLtv:\"\\u226A\\u0338\",nmid:\"\\u2224\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",nopf:\"\\u{1D55F}\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",not:\"\\xAC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",notin:\"\\u2209\",notindot:\"\\u22F5\\u0338\",notinE:\"\\u22F9\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangle:\"\\u22EB\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",nparallel:\"\\u2226\",npar:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",npre:\"\\u2AAF\\u0338\",nrarrc:\"\\u2933\\u0338\",nrarr:\"\\u219B\",nrArr:\"\\u21CF\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nRightarrow:\"\\u21CF\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",Nscr:\"\\u{1D4A9}\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",Ntilde:\"\\xD1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",Nu:\"\\u039D\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvDash:\"\\u22AD\",nVdash:\"\\u22AE\",nVDash:\"\\u22AF\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvHarr:\"\\u2904\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwArr:\"\\u21D6\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",Oacute:\"\\xD3\",oacute:\"\\xF3\",oast:\"\\u229B\",Ocirc:\"\\xD4\",ocirc:\"\\xF4\",ocir:\"\\u229A\",Ocy:\"\\u041E\",ocy:\"\\u043E\",odash:\"\\u229D\",Odblac:\"\\u0150\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",OElig:\"\\u0152\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",Ofr:\"\\u{1D512}\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",Ograve:\"\\xD2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",Omacr:\"\\u014C\",omacr:\"\\u014D\",Omega:\"\\u03A9\",omega:\"\\u03C9\",Omicron:\"\\u039F\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",Oopf:\"\\u{1D546}\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",operp:\"\\u29B9\",oplus:\"\\u2295\",orarr:\"\\u21BB\",Or:\"\\u2A54\",or:\"\\u2228\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oS:\"\\u24C8\",Oscr:\"\\u{1D4AA}\",oscr:\"\\u2134\",Oslash:\"\\xD8\",oslash:\"\\xF8\",osol:\"\\u2298\",Otilde:\"\\xD5\",otilde:\"\\xF5\",otimesas:\"\\u2A36\",Otimes:\"\\u2A37\",otimes:\"\\u2297\",Ouml:\"\\xD6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",para:\"\\xB6\",parallel:\"\\u2225\",par:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",Pfr:\"\\u{1D513}\",pfr:\"\\u{1D52D}\",Phi:\"\\u03A6\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",Pi:\"\\u03A0\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plus:\"+\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",Poincareplane:\"\\u210C\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",Popf:\"\\u2119\",pound:\"\\xA3\",prap:\"\\u2AB7\",Pr:\"\\u2ABB\",pr:\"\\u227A\",prcue:\"\\u227C\",precapprox:\"\\u2AB7\",prec:\"\\u227A\",preccurlyeq:\"\\u227C\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",pre:\"\\u2AAF\",prE:\"\\u2AB3\",precsim:\"\\u227E\",prime:\"\\u2032\",Prime:\"\\u2033\",primes:\"\\u2119\",prnap:\"\\u2AB9\",prnE:\"\\u2AB5\",prnsim:\"\\u22E8\",prod:\"\\u220F\",Product:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",Proportional:\"\\u221D\",Proportion:\"\\u2237\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",Pscr:\"\\u{1D4AB}\",pscr:\"\\u{1D4C5}\",Psi:\"\\u03A8\",psi:\"\\u03C8\",puncsp:\"\\u2008\",Qfr:\"\\u{1D514}\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",Qopf:\"\\u211A\",qprime:\"\\u2057\",Qscr:\"\\u{1D4AC}\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quot:'\"',QUOT:'\"',rAarr:\"\\u21DB\",race:\"\\u223D\\u0331\",Racute:\"\\u0154\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",Rang:\"\\u27EB\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raquo:\"\\xBB\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarr:\"\\u2192\",Rarr:\"\\u21A0\",rArr:\"\\u21D2\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",Rarrtl:\"\\u2916\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",rAtail:\"\\u291C\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rBarr:\"\\u290F\",RBarr:\"\\u2910\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",Rcaron:\"\\u0158\",rcaron:\"\\u0159\",Rcedil:\"\\u0156\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",Rcy:\"\\u0420\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",Re:\"\\u211C\",rect:\"\\u25AD\",reg:\"\\xAE\",REG:\"\\xAE\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",Rfr:\"\\u211C\",rHar:\"\\u2964\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",Rho:\"\\u03A1\",rho:\"\\u03C1\",rhov:\"\\u03F1\",RightAngleBracket:\"\\u27E9\",RightArrowBar:\"\\u21E5\",rightarrow:\"\\u2192\",RightArrow:\"\\u2192\",Rightarrow:\"\\u21D2\",RightArrowLeftArrow:\"\\u21C4\",rightarrowtail:\"\\u21A3\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVectorBar:\"\\u2955\",RightDownVector:\"\\u21C2\",RightFloor:\"\\u230B\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",RightTeeArrow:\"\\u21A6\",RightTee:\"\\u22A2\",RightTeeVector:\"\\u295B\",rightthreetimes:\"\\u22CC\",RightTriangleBar:\"\\u29D0\",RightTriangle:\"\\u22B3\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVectorBar:\"\\u2954\",RightUpVector:\"\\u21BE\",RightVectorBar:\"\\u2953\",RightVector:\"\\u21C0\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoustache:\"\\u23B1\",rmoust:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",Ropf:\"\\u211D\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",RoundImplies:\"\\u2970\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",Rrightarrow:\"\\u21DB\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",Rscr:\"\\u211B\",rsh:\"\\u21B1\",Rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",RuleDelayed:\"\\u29F4\",ruluhar:\"\\u2968\",rx:\"\\u211E\",Sacute:\"\\u015A\",sacute:\"\\u015B\",sbquo:\"\\u201A\",scap:\"\\u2AB8\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Sc:\"\\u2ABC\",sc:\"\\u227B\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scE:\"\\u2AB4\",Scedil:\"\\u015E\",scedil:\"\\u015F\",Scirc:\"\\u015C\",scirc:\"\\u015D\",scnap:\"\\u2ABA\",scnE:\"\\u2AB6\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",Scy:\"\\u0421\",scy:\"\\u0441\",sdotb:\"\\u22A1\",sdot:\"\\u22C5\",sdote:\"\\u2A66\",searhk:\"\\u2925\",searr:\"\\u2198\",seArr:\"\\u21D8\",searrow:\"\\u2198\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",Sfr:\"\\u{1D516}\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",SHCHcy:\"\\u0429\",shchcy:\"\\u0449\",SHcy:\"\\u0428\",shcy:\"\\u0448\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",shy:\"\\xAD\",Sigma:\"\\u03A3\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",SmallCircle:\"\\u2218\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",SOFTcy:\"\\u042C\",softcy:\"\\u044C\",solbar:\"\\u233F\",solb:\"\\u29C4\",sol:\"/\",Sopf:\"\\u{1D54A}\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",Sqrt:\"\\u221A\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",square:\"\\u25A1\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",squarf:\"\\u25AA\",squ:\"\\u25A1\",squf:\"\\u25AA\",srarr:\"\\u2192\",Sscr:\"\\u{1D4AE}\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",Star:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",Sub:\"\\u22D0\",subdot:\"\\u2ABD\",subE:\"\\u2AC5\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",Subset:\"\\u22D0\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",SubsetEqual:\"\\u2286\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succapprox:\"\\u2AB8\",succ:\"\\u227B\",succcurlyeq:\"\\u227D\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",SuchThat:\"\\u220B\",sum:\"\\u2211\",Sum:\"\\u2211\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",sup:\"\\u2283\",Sup:\"\\u22D1\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supE:\"\\u2AC6\",supe:\"\\u2287\",supedot:\"\\u2AC4\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",Supset:\"\\u22D1\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swArr:\"\\u21D9\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szlig:\"\\xDF\",Tab:\"\t\",target:\"\\u2316\",Tau:\"\\u03A4\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",Tcaron:\"\\u0164\",tcaron:\"\\u0165\",Tcedil:\"\\u0162\",tcedil:\"\\u0163\",Tcy:\"\\u0422\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",Tfr:\"\\u{1D517}\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",Therefore:\"\\u2234\",Theta:\"\\u0398\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",THORN:\"\\xDE\",thorn:\"\\xFE\",tilde:\"\\u02DC\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",timesbar:\"\\u2A31\",timesb:\"\\u22A0\",times:\"\\xD7\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",top:\"\\u22A4\",Topf:\"\\u{1D54B}\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",TRADE:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",TripleDot:\"\\u20DB\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",Tscr:\"\\u{1D4AF}\",tscr:\"\\u{1D4C9}\",TScy:\"\\u0426\",tscy:\"\\u0446\",TSHcy:\"\\u040B\",tshcy:\"\\u045B\",Tstrok:\"\\u0166\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",Uacute:\"\\xDA\",uacute:\"\\xFA\",uarr:\"\\u2191\",Uarr:\"\\u219F\",uArr:\"\\u21D1\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",ubrcy:\"\\u045E\",Ubreve:\"\\u016C\",ubreve:\"\\u016D\",Ucirc:\"\\xDB\",ucirc:\"\\xFB\",Ucy:\"\\u0423\",ucy:\"\\u0443\",udarr:\"\\u21C5\",Udblac:\"\\u0170\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",Ufr:\"\\u{1D518}\",ufr:\"\\u{1D532}\",Ugrave:\"\\xD9\",ugrave:\"\\xF9\",uHar:\"\\u2963\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",Umacr:\"\\u016A\",umacr:\"\\u016B\",uml:\"\\xA8\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",uogon:\"\\u0173\",Uopf:\"\\u{1D54C}\",uopf:\"\\u{1D566}\",UpArrowBar:\"\\u2912\",uparrow:\"\\u2191\",UpArrow:\"\\u2191\",Uparrow:\"\\u21D1\",UpArrowDownArrow:\"\\u21C5\",updownarrow:\"\\u2195\",UpDownArrow:\"\\u2195\",Updownarrow:\"\\u21D5\",UpEquilibrium:\"\\u296E\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",upsi:\"\\u03C5\",Upsi:\"\\u03D2\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",upsilon:\"\\u03C5\",UpTeeArrow:\"\\u21A5\",UpTee:\"\\u22A5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",Uring:\"\\u016E\",uring:\"\\u016F\",urtri:\"\\u25F9\",Uscr:\"\\u{1D4B0}\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",Utilde:\"\\u0168\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",Uuml:\"\\xDC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",vArr:\"\\u21D5\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vBar:\"\\u2AE8\",Vbar:\"\\u2AEB\",vBarv:\"\\u2AE9\",Vcy:\"\\u0412\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vDash:\"\\u22A8\",Vdash:\"\\u22A9\",VDash:\"\\u22AB\",Vdashl:\"\\u2AE6\",veebar:\"\\u22BB\",vee:\"\\u2228\",Vee:\"\\u22C1\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",Verbar:\"\\u2016\",vert:\"|\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",Vopf:\"\\u{1D54D}\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",Vscr:\"\\u{1D4B1}\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",Vvdash:\"\\u22AA\",vzigzag:\"\\u299A\",Wcirc:\"\\u0174\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",Wedge:\"\\u22C0\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",Wfr:\"\\u{1D51A}\",wfr:\"\\u{1D534}\",Wopf:\"\\u{1D54E}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",Wscr:\"\\u{1D4B2}\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",Xfr:\"\\u{1D51B}\",xfr:\"\\u{1D535}\",xharr:\"\\u27F7\",xhArr:\"\\u27FA\",Xi:\"\\u039E\",xi:\"\\u03BE\",xlarr:\"\\u27F5\",xlArr:\"\\u27F8\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",Xopf:\"\\u{1D54F}\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrarr:\"\\u27F6\",xrArr:\"\\u27F9\",Xscr:\"\\u{1D4B3}\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",Yacute:\"\\xDD\",yacute:\"\\xFD\",YAcy:\"\\u042F\",yacy:\"\\u044F\",Ycirc:\"\\u0176\",ycirc:\"\\u0177\",Ycy:\"\\u042B\",ycy:\"\\u044B\",yen:\"\\xA5\",Yfr:\"\\u{1D51C}\",yfr:\"\\u{1D536}\",YIcy:\"\\u0407\",yicy:\"\\u0457\",Yopf:\"\\u{1D550}\",yopf:\"\\u{1D56A}\",Yscr:\"\\u{1D4B4}\",yscr:\"\\u{1D4CE}\",YUcy:\"\\u042E\",yucy:\"\\u044E\",yuml:\"\\xFF\",Yuml:\"\\u0178\",Zacute:\"\\u0179\",zacute:\"\\u017A\",Zcaron:\"\\u017D\",zcaron:\"\\u017E\",Zcy:\"\\u0417\",zcy:\"\\u0437\",Zdot:\"\\u017B\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",Zfr:\"\\u2128\",ZHcy:\"\\u0416\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},c=/^#[xX]([A-Fa-f0-9]+)$/,o=/^#([0-9]+)$/,e=/^([A-Za-z0-9]+)$/,r=function(){function E(v){this.named=v}return E.prototype.parse=function(v){if(!!v){var _=v.match(c);if(_)return String.fromCharCode(parseInt(_[1],16));if(_=v.match(o),_)return String.fromCharCode(parseInt(_[1],10));if(_=v.match(e),_)return this.named[_[1]]}},E}(),s=/[\\t\\n\\f ]/,p=/[A-Za-z]/,n=/\\r\\n?/g;function a(E){return s.test(E)}function u(E){return p.test(E)}function i(E){return E.replace(n,`\n`)}var l=function(){function E(v,_,y){y===void 0&&(y=\"precompile\"),this.delegate=v,this.entityParser=_,this.mode=y,this.state=\"beforeData\",this.line=-1,this.column=-1,this.input=\"\",this.index=-1,this.tagNameBuffer=\"\",this.states={beforeData:function(){var g=this.peek();if(g===\"<\"&&!this.isIgnoredEndTag())this.transitionTo(\"tagOpen\"),this.markTagStart(),this.consume();else{if(this.mode===\"precompile\"&&g===`\n`){var L=this.tagNameBuffer.toLowerCase();(L===\"pre\"||L===\"textarea\")&&this.consume()}this.transitionTo(\"data\"),this.delegate.beginData()}},data:function(){var g=this.peek(),L=this.tagNameBuffer;g===\"<\"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo(\"tagOpen\"),this.markTagStart(),this.consume()):g===\"&\"&&L!==\"script\"&&L!==\"style\"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||\"&\")):(this.consume(),this.delegate.appendToData(g))},tagOpen:function(){var g=this.consume();g===\"!\"?this.transitionTo(\"markupDeclarationOpen\"):g===\"/\"?this.transitionTo(\"endTagOpen\"):(g===\"@\"||g===\":\"||u(g))&&(this.transitionTo(\"tagName\"),this.tagNameBuffer=\"\",this.delegate.beginStartTag(),this.appendToTagName(g))},markupDeclarationOpen:function(){var g=this.consume();if(g===\"-\"&&this.peek()===\"-\")this.consume(),this.transitionTo(\"commentStart\"),this.delegate.beginComment();else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();L===\"DOCTYPE\"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo(\"doctype\"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var g=this.consume();a(g)&&this.transitionTo(\"beforeDoctypeName\")},beforeDoctypeName:function(){var g=this.consume();a(g)||(this.transitionTo(\"doctypeName\"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase()))},doctypeName:function(){var g=this.consume();a(g)?this.transitionTo(\"afterDoctypeName\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(g.toLowerCase())},afterDoctypeName:function(){var g=this.consume();if(!a(g))if(g===\">\")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\");else{var L=g.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),j=L.toUpperCase()===\"PUBLIC\",x=L.toUpperCase()===\"SYSTEM\";(j||x)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),j?this.transitionTo(\"afterDoctypePublicKeyword\"):x&&this.transitionTo(\"afterDoctypeSystemKeyword\")}},afterDoctypePublicKeyword:function(){var g=this.peek();a(g)?(this.transitionTo(\"beforeDoctypePublicIdentifier\"),this.consume()):g==='\"'?(this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"),this.consume()):g===\"'\"?(this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"),this.consume()):g===\">\"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\"))},doctypePublicIdentifierDoubleQuoted:function(){var g=this.consume();g==='\"'?this.transitionTo(\"afterDoctypePublicIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},doctypePublicIdentifierSingleQuoted:function(){var g=this.consume();g===\"'\"?this.transitionTo(\"afterDoctypePublicIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(g)},afterDoctypePublicIdentifier:function(){var g=this.consume();a(g)?this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):g==='\"'?this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"):g===\"'\"&&this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\")},betweenDoctypePublicAndSystemIdentifiers:function(){var g=this.consume();a(g)||(g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):g==='\"'?this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"):g===\"'\"&&this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"))},doctypeSystemIdentifierDoubleQuoted:function(){var g=this.consume();g==='\"'?this.transitionTo(\"afterDoctypeSystemIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},doctypeSystemIdentifierSingleQuoted:function(){var g=this.consume();g===\"'\"?this.transitionTo(\"afterDoctypeSystemIdentifier\"):g===\">\"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(g)},afterDoctypeSystemIdentifier:function(){var g=this.consume();a(g)||g===\">\"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo(\"beforeData\"))},commentStart:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentStartDash\"):g===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(g),this.transitionTo(\"comment\"))},commentStartDash:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentEnd\"):g===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(\"-\"),this.transitionTo(\"comment\"))},comment:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentEndDash\"):this.delegate.appendToCommentData(g)},commentEndDash:function(){var g=this.consume();g===\"-\"?this.transitionTo(\"commentEnd\"):(this.delegate.appendToCommentData(\"-\"+g),this.transitionTo(\"comment\"))},commentEnd:function(){var g=this.consume();g===\">\"?(this.delegate.finishComment(),this.transitionTo(\"beforeData\")):(this.delegate.appendToCommentData(\"--\"+g),this.transitionTo(\"comment\"))},tagName:function(){var g=this.consume();a(g)?this.transitionTo(\"beforeAttributeName\"):g===\"/\"?this.transitionTo(\"selfClosingStartTag\"):g===\">\"?(this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.appendToTagName(g)},endTagName:function(){var g=this.consume();a(g)?(this.transitionTo(\"beforeAttributeName\"),this.tagNameBuffer=\"\"):g===\"/\"?(this.transitionTo(\"selfClosingStartTag\"),this.tagNameBuffer=\"\"):g===\">\"?(this.delegate.finishTag(),this.transitionTo(\"beforeData\"),this.tagNameBuffer=\"\"):this.appendToTagName(g)},beforeAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g===\"/\"?(this.transitionTo(\"selfClosingStartTag\"),this.consume()):g===\">\"?(this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):g===\"=\"?(this.delegate.reportSyntaxError(\"attribute name cannot start with equals sign\"),this.transitionTo(\"attributeName\"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g)):(this.transitionTo(\"attributeName\"),this.delegate.beginAttribute())},attributeName:function(){var g=this.peek();a(g)?(this.transitionTo(\"afterAttributeName\"),this.consume()):g===\"/\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\"=\"?(this.transitionTo(\"beforeAttributeValue\"),this.consume()):g===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):g==='\"'||g===\"'\"||g===\"<\"?(this.delegate.reportSyntaxError(g+\" is not a valid character within attribute names\"),this.consume(),this.delegate.appendToAttributeName(g)):(this.consume(),this.delegate.appendToAttributeName(g))},afterAttributeName:function(){var g=this.peek();if(a(g)){this.consume();return}else g===\"/\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\"=\"?(this.consume(),this.transitionTo(\"beforeAttributeValue\")):g===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo(\"attributeName\"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(g))},beforeAttributeValue:function(){var g=this.peek();a(g)?this.consume():g==='\"'?(this.transitionTo(\"attributeValueDoubleQuoted\"),this.delegate.beginAttributeValue(!0),this.consume()):g===\"'\"?(this.transitionTo(\"attributeValueSingleQuoted\"),this.delegate.beginAttributeValue(!0),this.consume()):g===\">\"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.transitionTo(\"attributeValueUnquoted\"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(g))},attributeValueDoubleQuoted:function(){var g=this.consume();g==='\"'?(this.delegate.finishAttributeValue(),this.transitionTo(\"afterAttributeValueQuoted\")):g===\"&\"?this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\"):this.delegate.appendToAttributeValue(g)},attributeValueSingleQuoted:function(){var g=this.consume();g===\"'\"?(this.delegate.finishAttributeValue(),this.transitionTo(\"afterAttributeValueQuoted\")):g===\"&\"?this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\"):this.delegate.appendToAttributeValue(g)},attributeValueUnquoted:function(){var g=this.peek();a(g)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"beforeAttributeName\")):g===\"/\"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\"&\"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||\"&\")):g===\">\"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):(this.consume(),this.delegate.appendToAttributeValue(g))},afterAttributeValueQuoted:function(){var g=this.peek();a(g)?(this.consume(),this.transitionTo(\"beforeAttributeName\")):g===\"/\"?(this.consume(),this.transitionTo(\"selfClosingStartTag\")):g===\">\"?(this.consume(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.transitionTo(\"beforeAttributeName\")},selfClosingStartTag:function(){var g=this.peek();g===\">\"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo(\"beforeData\")):this.transitionTo(\"beforeAttributeName\")},endTagOpen:function(){var g=this.consume();(g===\"@\"||g===\":\"||u(g))&&(this.transitionTo(\"endTagName\"),this.tagNameBuffer=\"\",this.delegate.beginEndTag(),this.appendToTagName(g))}},this.reset()}return E.prototype.reset=function(){this.transitionTo(\"beforeData\"),this.input=\"\",this.tagNameBuffer=\"\",this.index=0,this.line=1,this.column=0,this.delegate.reset()},E.prototype.transitionTo=function(v){this.state=v},E.prototype.tokenize=function(v){this.reset(),this.tokenizePart(v),this.tokenizeEOF()},E.prototype.tokenizePart=function(v){for(this.input+=i(v);this.index\"||v===\"style\"&&this.input.substring(this.index,this.index+8)!==\"\"||v===\"script\"&&this.input.substring(this.index,this.index+9)!==\"<\\/script>\"},E}(),b=function(){function E(v,_){_===void 0&&(_={}),this.options=_,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new l(this,v,_.mode),this._currentAttribute=void 0}return E.prototype.tokenize=function(v){return this.tokens=[],this.tokenizer.tokenize(v),this.tokens},E.prototype.tokenizePart=function(v){return this.tokens=[],this.tokenizer.tokenizePart(v),this.tokens},E.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},E.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},E.prototype.current=function(){var v=this.token;if(v===null)throw new Error(\"token was unexpectedly null\");if(arguments.length===0)return v;for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:{entityEncoding:\"transformed\"};return c?new f.default(o).print(c):\"\"}}}),he=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/syntax-error.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.generateSyntaxError=f;function f(h,d){let{module:c,loc:o}=d,{line:e,column:r}=o.start,s=d.asString(),p=s?`\n\n|\n| `.concat(s.split(`\n`).join(`\n| `),`\n|\n\n`):\"\",n=new Error(\"\".concat(h,\": \").concat(p,\"(error occurred in '\").concat(c,\"' @ line \").concat(e,\" : column \").concat(r,\")\"));return n.name=\"SyntaxError\",n.location=d,n.code=s,n}}}),Rt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v1/visitor-keys.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=X(),h={Program:(0,f.tuple)(\"body\"),Template:(0,f.tuple)(\"body\"),Block:(0,f.tuple)(\"body\"),MustacheStatement:(0,f.tuple)(\"path\",\"params\",\"hash\"),BlockStatement:(0,f.tuple)(\"path\",\"params\",\"hash\",\"program\",\"inverse\"),ElementModifierStatement:(0,f.tuple)(\"path\",\"params\",\"hash\"),PartialStatement:(0,f.tuple)(\"name\",\"params\",\"hash\"),CommentStatement:(0,f.tuple)(),MustacheCommentStatement:(0,f.tuple)(),ElementNode:(0,f.tuple)(\"attributes\",\"modifiers\",\"children\",\"comments\"),AttrNode:(0,f.tuple)(\"value\"),TextNode:(0,f.tuple)(),ConcatStatement:(0,f.tuple)(\"parts\"),SubExpression:(0,f.tuple)(\"path\",\"params\",\"hash\"),PathExpression:(0,f.tuple)(),PathHead:(0,f.tuple)(),StringLiteral:(0,f.tuple)(),BooleanLiteral:(0,f.tuple)(),NumberLiteral:(0,f.tuple)(),NullLiteral:(0,f.tuple)(),UndefinedLiteral:(0,f.tuple)(),Hash:(0,f.tuple)(\"pairs\"),HashPair:(0,f.tuple)(\"value\"),NamedBlock:(0,f.tuple)(\"attributes\",\"modifiers\",\"children\",\"comments\"),SimpleElement:(0,f.tuple)(\"attributes\",\"modifiers\",\"children\",\"comments\"),Component:(0,f.tuple)(\"head\",\"attributes\",\"modifiers\",\"children\",\"comments\")},d=h;t.default=d}}),Ye=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/errors.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.cannotRemoveNode=d,t.cannotReplaceNode=c,t.cannotReplaceOrRemoveInKeyHandlerYet=o,t.default=void 0;var f=function(){e.prototype=Object.create(Error.prototype),e.prototype.constructor=e;function e(r,s,p,n){let a=Error.call(this,r);this.key=n,this.message=r,this.node=s,this.parent=p,this.stack=a.stack}return e}(),h=f;t.default=h;function d(e,r,s){return new f(\"Cannot remove a node unless it is part of an array\",e,r,s)}function c(e,r,s){return new f(\"Cannot replace a node with multiple nodes unless it is part of an array\",e,r,s)}function o(e,r){return new f(\"Replacing and removing in key handlers is not yet supported.\",e,null,r)}}}),Qe=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/path.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var f=class{constructor(d){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;this.node=d,this.parent=c,this.parentKey=o}get parentNode(){return this.parent?this.parent.node:null}parents(){return{[Symbol.iterator]:()=>new h(this)}}};t.default=f;var h=class{constructor(d){this.path=d}next(){return this.path.parent?(this.path=this.path.parent,{done:!1,value:this.path}):{done:!0,value:null}}}}}),Ne=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/traversal/traverse.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=E;var f=X(),h=o(Rt()),d=Ye(),c=o(Qe());function o(v){return v&&v.__esModule?v:{default:v}}function e(v){return typeof v==\"function\"?v:v.enter}function r(v){if(typeof v!=\"function\")return v.exit}function s(v,_){let y=typeof v!=\"function\"?v.keys:void 0;if(y===void 0)return;let g=y[_];return g!==void 0?g:y.All}function p(v,_){if((_===\"Template\"||_===\"Block\")&&v.Program)return v.Program;let y=v[_];return y!==void 0?y:v.All}function n(v,_){let{node:y,parent:g,parentKey:L}=_,j=p(v,y.type),x,w;j!==void 0&&(x=e(j),w=r(j));let H;if(x!==void 0&&(H=x(y,_)),H!=null)if(JSON.stringify(y)===JSON.stringify(H))H=void 0;else{if(Array.isArray(H))return l(v,H,g,L),H;{let m=new c.default(H,g,L);return n(v,m)||H}}if(H===void 0){let m=h.default[y.type];for(let C=0;C@\\[-\\^`\\{-~]/;function d(a){let u=c(a);u&&(a.blockParams=u)}function c(a){let u=a.attributes.length,i=[];for(let b=0;b0&&i[i.length-1].charAt(0)===\"|\")throw(0,f.generateSyntaxError)(\"Block parameters must be preceded by the `as` keyword, detected block parameters without `as`\",a.loc);if(l!==-1&&u>l&&i[l+1].charAt(0)===\"|\"){let b=i.slice(l).join(\" \");if(b.charAt(b.length-1)!==\"|\"||b.match(/\\|/g).length!==2)throw(0,f.generateSyntaxError)(\"Invalid block parameters syntax, '\"+b+\"'\",a.loc);let P=[];for(let E=l+1;E1&&arguments[1]!==void 0?arguments[1]:new h.EntityParser(h.HTML5NamedCharRefs),e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"precompile\";this.elementStack=[],this.currentAttribute=null,this.currentNode=null,this.source=c,this.lines=c.source.split(/(?:\\r\\n?|\\n)/g),this.tokenizer=new h.EventedTokenizer(this,o,e)}offset(){let{line:c,column:o}=this.tokenizer;return this.source.offsetFor(c,o)}pos(c){let{line:o,column:e}=c;return this.source.offsetFor(o,e)}finish(c){return(0,f.assign)({},c,{loc:c.loc.until(this.offset())})}get currentAttr(){return this.currentAttribute}get currentTag(){return this.currentNode}get currentStartTag(){return this.currentNode}get currentEndTag(){return this.currentNode}get currentComment(){return this.currentNode}get currentData(){return this.currentNode}acceptTemplate(c){return this[c.type](c)}acceptNode(c){return this[c.type](c)}currentElement(){return this.elementStack[this.elementStack.length-1]}sourceForNode(c,o){let e=c.loc.start.line-1,r=e-1,s=c.loc.start.column,p=[],n,a,u;for(o?(a=o.loc.end.line-1,u=o.loc.end.column):(a=c.loc.end.line-1,u=c.loc.end.column);ri.acceptNode(_)):[],E=P.length>0?P[P.length-1].loc:b.loc,v=l.hash?i.Hash(l.hash):{type:\"Hash\",pairs:[],loc:i.source.spanFor(E).collapse(\"end\")};return{path:b,params:P,hash:v}}function u(i,l){let{path:b,params:P,hash:E,loc:v}=l;if((0,c.isHBSLiteral)(b)){let y=\"{{\".concat((0,c.printLiteral)(b),\"}}\"),g=\"<\".concat(i.name,\" ... \").concat(y,\" ...\");throw(0,d.generateSyntaxError)(\"In \".concat(g,\", \").concat(y,\" is not a valid modifier\"),l.loc)}let _=e.default.elementModifier({path:b,params:P,hash:E,loc:v});i.modifiers.push(_)}}}),Fe=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/parser/tokenizer-event-handlers.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.preprocess=_,t.TokenizerEventHandlers=void 0;var f=X(),h=It(),d=Ke(),c=b(We()),o=Te(),e=De(),r=ue(),s=he(),p=b(Ne()),n=b(Je()),a=ye(),u=b(Le()),i=b(ke()),l=xt();function b(y){return y&&y.__esModule?y:{default:y}}var P=class extends l.HandlebarsNodeVisitors{constructor(){super(...arguments),this.tagOpenLine=0,this.tagOpenColumn=0}reset(){this.currentNode=null}beginComment(){this.currentNode=u.default.comment(\"\",this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn))}appendToCommentData(y){this.currentComment.value+=y}finishComment(){(0,a.appendChild)(this.currentElement(),this.finish(this.currentComment))}beginData(){this.currentNode=u.default.text({chars:\"\",loc:this.offset().collapsed()})}appendToData(y){this.currentData.chars+=y}finishData(){this.currentData.loc=this.currentData.loc.withEnd(this.offset()),(0,a.appendChild)(this.currentElement(),this.currentData)}tagOpen(){this.tagOpenLine=this.tokenizer.line,this.tagOpenColumn=this.tokenizer.column}beginStartTag(){this.currentNode={type:\"StartTag\",name:\"\",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}beginEndTag(){this.currentNode={type:\"EndTag\",name:\"\",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}finishTag(){let y=this.finish(this.currentTag);if(y.type===\"StartTag\"){if(this.finishStartTag(),y.name===\":\")throw(0,s.generateSyntaxError)(\"Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter\",this.source.spanFor({start:this.currentTag.loc.toJSON(),end:this.offset().toJSON()}));(o.voidMap[y.name]||y.selfClosing)&&this.finishEndTag(!0)}else y.type===\"EndTag\"&&this.finishEndTag(!1)}finishStartTag(){let{name:y,attributes:g,modifiers:L,comments:j,selfClosing:x,loc:w}=this.finish(this.currentStartTag),H=u.default.element({tag:y,selfClosing:x,attrs:g,modifiers:L,comments:j,children:[],blockParams:[],loc:w});this.elementStack.push(H)}finishEndTag(y){let g=this.finish(this.currentTag),L=this.elementStack.pop(),j=this.currentElement();this.validateEndTag(g,L,y),L.loc=L.loc.withEnd(this.offset()),(0,a.parseElementBlockParams)(L),(0,a.appendChild)(j,L)}markTagAsSelfClosing(){this.currentTag.selfClosing=!0}appendToTagName(y){this.currentTag.name+=y}beginAttribute(){let y=this.offset();this.currentAttribute={name:\"\",parts:[],currentPart:null,isQuoted:!1,isDynamic:!1,start:y,valueSpan:y.collapsed()}}appendToAttributeName(y){this.currentAttr.name+=y}beginAttributeValue(y){this.currentAttr.isQuoted=y,this.startTextPart(),this.currentAttr.valueSpan=this.offset().collapsed()}appendToAttributeValue(y){let g=this.currentAttr.parts,L=g[g.length-1],j=this.currentAttr.currentPart;if(j)j.chars+=y,j.loc=j.loc.withEnd(this.offset());else{let x=this.offset();y===`\n`?x=L?L.loc.getEnd():this.currentAttr.valueSpan.getStart():x=x.move(-1),this.currentAttr.currentPart=u.default.text({chars:y,loc:x.collapsed()})}}finishAttributeValue(){this.finalizeTextPart();let y=this.currentTag,g=this.offset();if(y.type===\"EndTag\")throw(0,s.generateSyntaxError)(\"Invalid end tag: closing tag must not have attributes\",this.source.spanFor({start:y.loc.toJSON(),end:g.toJSON()}));let{name:L,parts:j,start:x,isQuoted:w,isDynamic:H,valueSpan:m}=this.currentAttr,C=this.assembleAttributeValue(j,w,H,x.until(g));C.loc=m.withEnd(g);let S=u.default.attr({name:L,value:C,loc:x.until(g)});this.currentStartTag.attributes.push(S)}reportSyntaxError(y){throw(0,s.generateSyntaxError)(y,this.offset().collapsed())}assembleConcatenatedValue(y){for(let j=0;j elements do not need end tags. You should remove it\"):g.tag===void 0?j=\"Closing tag without an open tag\"):g.tag!==y.name&&(j=\"Closing tag did not match last open tag <\").concat(g.tag,\"> (on line \").concat(g.loc.startPosition.line,\")\")),j)throw(0,s.generateSyntaxError)(j,y.loc)}assembleAttributeValue(y,g,L,j){if(L){if(g)return this.assembleConcatenatedValue(y);if(y.length===1||y.length===2&&y[1].type===\"TextNode\"&&y[1].chars===\"/\")return y[0];throw(0,s.generateSyntaxError)(\"An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'\",j)}else return y.length>0?y[0]:u.default.text({chars:\"\",loc:j})}};t.TokenizerEventHandlers=P;var E={parse:_,builders:i.default,print:c.default,traverse:p.default,Walker:n.default},v=class extends d.EntityParser{constructor(){super({})}parse(){}};function _(y){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var L,j,x;let w=g.mode||\"precompile\",H,m;typeof y==\"string\"?(H=new e.Source(y,(L=g.meta)===null||L===void 0?void 0:L.moduleName),w===\"codemod\"?m=(0,h.parseWithoutProcessing)(y,g.parseOptions):m=(0,h.parse)(y,g.parseOptions)):y instanceof e.Source?(H=y,w===\"codemod\"?m=(0,h.parseWithoutProcessing)(y.source,g.parseOptions):m=(0,h.parse)(y.source,g.parseOptions)):(H=new e.Source(\"\",(j=g.meta)===null||j===void 0?void 0:j.moduleName),m=y);let C;w===\"codemod\"&&(C=new v);let S=r.SourceSpan.forCharPositions(H,0,H.source.length);m.loc={source:\"(program)\",start:S.startPosition,end:S.endPosition};let R=new P(H,C,w).acceptTemplate(m);if(g.strictMode&&(R.blockParams=(x=g.locals)!==null&&x!==void 0?x:[]),g&&g.plugins&&g.plugins.ast)for(let M=0,V=g.plugins.ast.length;Mthis.allocate(s));return new o(this,e,r)}};t.SymbolTable=d;var c=class extends d{constructor(e,r){super(),this.templateLocals=e,this.customizeComponentName=r,this.symbols=[],this.upvars=[],this.size=1,this.named=(0,f.dict)(),this.blocks=(0,f.dict)(),this.usedTemplateLocals=[],this._hasEval=!1}getUsedTemplateLocals(){return this.usedTemplateLocals}setHasEval(){this._hasEval=!0}get hasEval(){return this._hasEval}has(e){return this.templateLocals.indexOf(e)!==-1}get(e){let r=this.usedTemplateLocals.indexOf(e);return r!==-1?[r,!0]:(r=this.usedTemplateLocals.length,this.usedTemplateLocals.push(e),[r,!0])}getLocalsMap(){return(0,f.dict)()}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}allocateFree(e,r){r.resolution()===39&&r.isAngleBracket&&(0,h.isUpperCase)(e)&&(e=this.customizeComponentName(e));let s=this.upvars.indexOf(e);return s!==-1||(s=this.upvars.length,this.upvars.push(e)),s}allocateNamed(e){let r=this.named[e];return r||(r=this.named[e]=this.allocate(e)),r}allocateBlock(e){e===\"inverse\"&&(e=\"else\");let r=this.blocks[e];return r||(r=this.blocks[e]=this.allocate(\"&\".concat(e))),r}allocate(e){return this.symbols.push(e),this.size++}};t.ProgramSymbolTable=c;var o=class extends d{constructor(e,r,s){super(),this.parent=e,this.symbols=r,this.slots=s}get locals(){return this.symbols}has(e){return this.symbols.indexOf(e)!==-1||this.parent.has(e)}get(e){let r=this.symbols.indexOf(e);return r===-1?this.parent.get(e):[this.slots[r],!1]}getLocalsMap(){let e=this.parent.getLocalsMap();return this.symbols.forEach(r=>e[r]=this.get(r)[0]),e}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map(r=>e[r])}setHasEval(){this.parent.setHasEval()}allocateFree(e,r){return this.parent.allocateFree(e,r)}allocateNamed(e){return this.parent.allocateNamed(e)}allocateBlock(e){return this.parent.allocateBlock(e)}allocate(e){return this.parent.allocate(e)}};t.BlockSymbolTable=o}}),jt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/builders.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.BuildElement=t.Builder=void 0;var f=X(),h=le(),d=ce(),c=e(ve());function o(){if(typeof WeakMap!=\"function\")return null;var n=new WeakMap;return o=function(){return n},n}function e(n){if(n&&n.__esModule)return n;if(n===null||typeof n!=\"object\"&&typeof n!=\"function\")return{default:n};var a=o();if(a&&a.has(n))return a.get(n);var u={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in n)if(Object.prototype.hasOwnProperty.call(n,l)){var b=i?Object.getOwnPropertyDescriptor(n,l):null;b&&(b.get||b.set)?Object.defineProperty(u,l,b):u[l]=n[l]}return u.default=n,a&&a.set(n,u),u}var r=function(n,a){var u={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&a.indexOf(i)<0&&(u[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var l=0,i=Object.getOwnPropertySymbols(n);l0||i.hash.pairs.length>0}}}),Ht=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/v2-a/normalize.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.normalize=P,t.BlockContext=void 0;var f=X(),h=b(Te()),d=Fe(),c=le(),o=ce(),e=Xe(),r=he(),s=ye(),p=b(Le()),n=l(ve()),a=jt(),u=Mt();function i(){if(typeof WeakMap!=\"function\")return null;var m=new WeakMap;return i=function(){return m},m}function l(m){if(m&&m.__esModule)return m;if(m===null||typeof m!=\"object\"&&typeof m!=\"function\")return{default:m};var C=i();if(C&&C.has(m))return C.get(m);var S={},R=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var M in m)if(Object.prototype.hasOwnProperty.call(m,M)){var V=R?Object.getOwnPropertyDescriptor(m,M):null;V&&(V.get||V.set)?Object.defineProperty(S,M,V):S[M]=m[M]}return S.default=m,C&&C.set(m,S),S}function b(m){return m&&m.__esModule?m:{default:m}}function P(m){let C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var S;let R=(0,d.preprocess)(m,C),M=(0,f.assign)({strictMode:!1,locals:[]},C),V=e.SymbolTable.top(M.locals,(S=C.customizeComponentName)!==null&&S!==void 0?S:W=>W),G=new E(m,M,V),K=new _(G),U=new L(G.loc(R.loc),R.body.map(W=>K.normalize(W)),G).assertTemplate(V),Z=V.getUsedTemplateLocals();return[U,Z]}var E=class{constructor(m,C,S){this.source=m,this.options=C,this.table=S,this.builder=new a.Builder}get strict(){return this.options.strictMode||!1}loc(m){return this.source.spanFor(m)}resolutionFor(m,C){if(this.strict)return{resolution:n.STRICT_RESOLUTION};if(this.isFreeVar(m)){let S=C(m);return S===null?{resolution:\"error\",path:w(m),head:H(m)}:{resolution:S}}else return{resolution:n.STRICT_RESOLUTION}}isFreeVar(m){return m.type===\"PathExpression\"?m.head.type!==\"VarHead\"?!1:!this.table.has(m.head.name):m.path.type===\"PathExpression\"?this.isFreeVar(m.path):!1}hasBinding(m){return this.table.has(m)}child(m){return new E(this.source,this.options,this.table.child(m))}customizeComponentName(m){return this.options.customizeComponentName?this.options.customizeComponentName(m):m}};t.BlockContext=E;var v=class{constructor(m){this.block=m}normalize(m,C){switch(m.type){case\"NullLiteral\":case\"BooleanLiteral\":case\"NumberLiteral\":case\"StringLiteral\":case\"UndefinedLiteral\":return this.block.builder.literal(m.value,this.block.loc(m.loc));case\"PathExpression\":return this.path(m,C);case\"SubExpression\":{let S=this.block.resolutionFor(m,u.SexpSyntaxContext);if(S.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`\".concat(S.path,\"`) but \").concat(S.head,\" was not in scope\"),m.loc);return this.block.builder.sexp(this.callParts(m,S.resolution),this.block.loc(m.loc))}}}path(m,C){let S=this.block.loc(m.head.loc),R=[],M=S;for(let V of m.tail)M=M.sliceStartChars({chars:V.length,skipStart:1}),R.push(new c.SourceSlice({loc:M,chars:V}));return this.block.builder.path(this.ref(m.head,C),R,this.block.loc(m.loc))}callParts(m,C){let{path:S,params:R,hash:M}=m,V=this.normalize(S,C),G=R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K=o.SpanList.range(G,V.loc.collapse(\"end\")),U=this.block.loc(M.loc),Z=o.SpanList.range([K,U]),W=this.block.builder.positional(R.map(N=>this.normalize(N,n.ARGUMENT_RESOLUTION)),K),T=this.block.builder.named(M.pairs.map(N=>this.namedArgument(N)),this.block.loc(M.loc));return{callee:V,args:this.block.builder.args(W,T,Z)}}namedArgument(m){let S=this.block.loc(m.loc).sliceStartChars({chars:m.key.length});return this.block.builder.namedArgument(new c.SourceSlice({chars:m.key,loc:S}),this.normalize(m.value,n.ARGUMENT_RESOLUTION))}ref(m,C){let{block:S}=this,{builder:R,table:M}=S,V=S.loc(m.loc);switch(m.type){case\"ThisHead\":return R.self(V);case\"AtHead\":{let G=M.allocateNamed(m.name);return R.at(m.name,G,V)}case\"VarHead\":if(S.hasBinding(m.name)){let[G,K]=M.get(m.name);return S.builder.localVar(m.name,G,K,V)}else{let G=S.strict?n.STRICT_RESOLUTION:C,K=S.table.allocateFree(m.name,G);return S.builder.freeVar({name:m.name,context:G,symbol:K,loc:V})}}}},_=class{constructor(m){this.block=m}normalize(m){switch(m.type){case\"PartialStatement\":throw new Error(\"Handlebars partial syntax ({{> ...}}) is not allowed in Glimmer\");case\"BlockStatement\":return this.BlockStatement(m);case\"ElementNode\":return new y(this.block).ElementNode(m);case\"MustacheStatement\":return this.MustacheStatement(m);case\"MustacheCommentStatement\":return this.MustacheCommentStatement(m);case\"CommentStatement\":{let C=this.block.loc(m.loc);return new n.HtmlComment({loc:C,text:C.slice({skipStart:4,skipEnd:3}).toSlice(m.value)})}case\"TextNode\":return new n.HtmlText({loc:this.block.loc(m.loc),chars:m.chars})}}MustacheCommentStatement(m){let C=this.block.loc(m.loc),S;return C.asString().slice(0,5)===\"{{!--\"?S=C.slice({skipStart:5,skipEnd:4}):S=C.slice({skipStart:3,skipEnd:2}),new n.GlimmerComment({loc:C,text:S.toSlice(m.value)})}MustacheStatement(m){let{escaped:C}=m,S=this.block.loc(m.loc),R=this.expr.callParts({path:m.path,params:m.params,hash:m.hash},(0,u.AppendSyntaxContext)(m)),M=R.args.isEmpty()?R.callee:this.block.builder.sexp(R,S);return this.block.builder.append({table:this.block.table,trusting:!C,value:M},S)}BlockStatement(m){let{program:C,inverse:S}=m,R=this.block.loc(m.loc),M=this.block.resolutionFor(m,u.BlockSyntaxContext);if(M.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`{{#\".concat(M.path,\"}}`) but \").concat(M.head,\" was not in scope\"),R);let V=this.expr.callParts(m,M.resolution);return this.block.builder.blockStatement((0,f.assign)({symbols:this.block.table,program:this.Block(C),inverse:S?this.Block(S):null},V),R)}Block(m){let{body:C,loc:S,blockParams:R}=m,M=this.block.child(R),V=new _(M);return new j(this.block.loc(S),C.map(G=>V.normalize(G)),this.block).assertBlock(M.table)}get expr(){return new v(this.block)}},y=class{constructor(m){this.ctx=m}ElementNode(m){let{tag:C,selfClosing:S,comments:R}=m,M=this.ctx.loc(m.loc),[V,...G]=C.split(\".\"),K=this.classifyTag(V,G,m.loc),U=m.attributes.filter(A=>A.name[0]!==\"@\").map(A=>this.attr(A)),Z=m.attributes.filter(A=>A.name[0]===\"@\").map(A=>this.arg(A)),W=m.modifiers.map(A=>this.modifier(A)),T=this.ctx.child(m.blockParams),N=new _(T),k=m.children.map(A=>N.normalize(A)),B=this.ctx.builder.element({selfClosing:S,attrs:U,componentArgs:Z,modifiers:W,comments:R.map(A=>new _(this.ctx).MustacheCommentStatement(A))}),O=new x(B,M,k,this.ctx),z=this.ctx.loc(m.loc).sliceStartChars({chars:C.length,skipStart:1});if(K===\"ElementHead\")return C[0]===\":\"?O.assertNamedBlock(z.slice({skipStart:1}).toSlice(C.slice(1)),T.table):O.assertElement(z.toSlice(C),m.blockParams.length>0);if(m.selfClosing)return B.selfClosingComponent(K,M);{let A=O.assertComponent(C,T.table,m.blockParams.length>0);return B.componentWithNamedBlocks(K,A,M)}}modifier(m){let C=this.ctx.resolutionFor(m,u.ModifierSyntaxContext);if(C.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`{{#\".concat(C.path,\"}}`) as a modifier, but \").concat(C.head,\" was not in scope. Try adding `this` to the beginning of the path\"),m.loc);let S=this.expr.callParts(m,C.resolution);return this.ctx.builder.modifier(S,this.ctx.loc(m.loc))}mustacheAttr(m){let C=this.ctx.builder.sexp(this.expr.callParts(m,(0,u.AttrValueSyntaxContext)(m)),this.ctx.loc(m.loc));return C.args.isEmpty()?C.callee:C}attrPart(m){switch(m.type){case\"MustacheStatement\":return{expr:this.mustacheAttr(m),trusting:!m.escaped};case\"TextNode\":return{expr:this.ctx.builder.literal(m.chars,this.ctx.loc(m.loc)),trusting:!0}}}attrValue(m){switch(m.type){case\"ConcatStatement\":{let C=m.parts.map(S=>this.attrPart(S).expr);return{expr:this.ctx.builder.interpolate(C,this.ctx.loc(m.loc)),trusting:!1}}default:return this.attrPart(m)}}attr(m){if(m.name===\"...attributes\")return this.ctx.builder.splatAttr(this.ctx.table.allocateBlock(\"attrs\"),this.ctx.loc(m.loc));let C=this.ctx.loc(m.loc),S=C.sliceStartChars({chars:m.name.length}).toSlice(m.name),R=this.attrValue(m.value);return this.ctx.builder.attr({name:S,value:R.expr,trusting:R.trusting},C)}maybeDeprecatedCall(m,C){if(this.ctx.strict||C.type!==\"MustacheStatement\")return null;let{path:S}=C;if(S.type!==\"PathExpression\"||S.head.type!==\"VarHead\")return null;let{name:R}=S.head;if(R===\"has-block\"||R===\"has-block-params\"||this.ctx.hasBinding(R)||S.tail.length!==0||C.params.length!==0||C.hash.pairs.length!==0)return null;let M=n.LooseModeResolution.attr(),V=this.ctx.builder.freeVar({name:R,context:M,symbol:this.ctx.table.allocateFree(R,M),loc:S.loc});return{expr:this.ctx.builder.deprecatedCall(m,V,C.loc),trusting:!1}}arg(m){let C=this.ctx.loc(m.loc),S=C.sliceStartChars({chars:m.name.length}).toSlice(m.name),R=this.maybeDeprecatedCall(S,m.value)||this.attrValue(m.value);return this.ctx.builder.arg({name:S,value:R.expr,trusting:R.trusting},C)}classifyTag(m,C,S){let R=(0,s.isUpperCase)(m),M=m[0]===\"@\"||m===\"this\"||this.ctx.hasBinding(m);if(this.ctx.strict&&!M){if(R)throw(0,r.generateSyntaxError)(\"Attempted to invoke a component that was not in scope in a strict mode template, `<\".concat(m,\">`. If you wanted to create an element with that name, convert it to lowercase - `<\").concat(m.toLowerCase(),\">`\"),S);return\"ElementHead\"}let V=M||R,G=S.sliceStartChars({skipStart:1,chars:m.length}),K=C.reduce((W,T)=>W+1+T.length,0),U=G.getEnd().move(K),Z=G.withEnd(U);if(V){let W=p.default.path({head:p.default.head(m,G),tail:C,loc:Z}),T=this.ctx.resolutionFor(W,u.ComponentSyntaxContext);if(T.resolution===\"error\")throw(0,r.generateSyntaxError)(\"You attempted to invoke a path (`<\".concat(T.path,\">`) but \").concat(T.head,\" was not in scope\"),S);return new v(this.ctx).normalize(W,T.resolution)}if(C.length>0)throw(0,r.generateSyntaxError)(\"You used \".concat(m,\".\").concat(C.join(\".\"),\" as a tag name, but \").concat(m,\" is not in scope\"),S);return\"ElementHead\"}get expr(){return new v(this.ctx)}},g=class{constructor(m,C,S){this.loc=m,this.children=C,this.block=S,this.namedBlocks=C.filter(R=>R instanceof n.NamedBlock),this.hasSemanticContent=Boolean(C.filter(R=>{if(R instanceof n.NamedBlock)return!1;switch(R.type){case\"GlimmerComment\":case\"HtmlComment\":return!1;case\"HtmlText\":return!/^\\s*$/.exec(R.chars);default:return!0}}).length),this.nonBlockChildren=C.filter(R=>!(R instanceof n.NamedBlock))}},L=class extends g{assertTemplate(m){if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)(\"Unexpected named block at the top-level of a template\",this.loc);return this.block.builder.template(m,this.nonBlockChildren,this.block.loc(this.loc))}},j=class extends g{assertBlock(m){if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)(\"Unexpected named block nested in a normal block\",this.loc);return this.block.builder.block(m,this.nonBlockChildren,this.loc)}},x=class extends g{constructor(m,C,S,R){super(C,S,R),this.el=m}assertNamedBlock(m,C){if(this.el.base.selfClosing)throw(0,r.generateSyntaxError)(\"<:\".concat(m.chars,\"/> is not a valid named block: named blocks cannot be self-closing\"),this.loc);if((0,f.isPresent)(this.namedBlocks))throw(0,r.generateSyntaxError)(\"Unexpected named block inside <:\".concat(m.chars,\"> named block: named blocks cannot contain nested named blocks\"),this.loc);if(!(0,s.isLowerCase)(m.chars))throw(0,r.generateSyntaxError)(\"<:\".concat(m.chars,\"> is not a valid named block, and named blocks must begin with a lowercase letter\"),this.loc);if(this.el.base.attrs.length>0||this.el.base.componentArgs.length>0||this.el.base.modifiers.length>0)throw(0,r.generateSyntaxError)(\"named block <:\".concat(m.chars,\"> cannot have attributes, arguments, or modifiers\"),this.loc);let S=o.SpanList.range(this.nonBlockChildren,this.loc);return this.block.builder.namedBlock(m,this.block.builder.block(C,this.nonBlockChildren,S),this.loc)}assertElement(m,C){if(C)throw(0,r.generateSyntaxError)(\"Unexpected block params in <\".concat(m,\">: simple elements cannot have block params\"),this.loc);if((0,f.isPresent)(this.namedBlocks)){let S=this.namedBlocks.map(R=>R.name);if(S.length===1)throw(0,r.generateSyntaxError)(\"Unexpected named block <:foo> inside <\".concat(m.chars,\"> HTML element\"),this.loc);{let R=S.map(M=>\"<:\".concat(M.chars,\">\")).join(\", \");throw(0,r.generateSyntaxError)(\"Unexpected named blocks inside <\".concat(m.chars,\"> HTML element (\").concat(R,\")\"),this.loc)}}return this.el.simple(m,this.nonBlockChildren,this.loc)}assertComponent(m,C,S){if((0,f.isPresent)(this.namedBlocks)&&this.hasSemanticContent)throw(0,r.generateSyntaxError)(\"Unexpected content inside <\".concat(m,\"> component invocation: when using named blocks, the tag cannot contain other content\"),this.loc);if((0,f.isPresent)(this.namedBlocks)){if(S)throw(0,r.generateSyntaxError)(\"Unexpected block params list on <\".concat(m,\"> component invocation: when passing named blocks, the invocation tag cannot take block params\"),this.loc);let R=new Set;for(let M of this.namedBlocks){let V=M.name.chars;if(R.has(V))throw(0,r.generateSyntaxError)(\"Component had two named blocks with the same name, `<:\".concat(V,\">`. Only one block with a given name may be passed\"),this.loc);if(V===\"inverse\"&&R.has(\"else\")||V===\"else\"&&R.has(\"inverse\"))throw(0,r.generateSyntaxError)(\"Component has both <:else> and <:inverse> block. <:inverse> is an alias for <:else>\",this.loc);R.add(V)}return this.namedBlocks}else return[this.block.builder.namedBlock(c.SourceSlice.synthetic(\"default\"),this.block.builder.block(C,this.nonBlockChildren,this.loc),this.loc)]}};function w(m){return m.type!==\"PathExpression\"&&m.path.type===\"PathExpression\"?w(m.path):new h.default({entityEncoding:\"raw\"}).print(m)}function H(m){if(m.type===\"PathExpression\")switch(m.head.type){case\"AtHead\":case\"VarHead\":return m.head.name;case\"ThisHead\":return\"this\"}else return m.path.type===\"PathExpression\"?H(m.path):new h.default({entityEncoding:\"raw\"}).print(m)}}}),Ze=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/keywords.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.isKeyword=f,t.KEYWORDS_TYPES=void 0;function f(d){return d in h}var h={component:[\"Call\",\"Append\",\"Block\"],debugger:[\"Append\"],\"each-in\":[\"Block\"],each:[\"Block\"],\"has-block-params\":[\"Call\",\"Append\"],\"has-block\":[\"Call\",\"Append\"],helper:[\"Call\",\"Append\"],if:[\"Call\",\"Append\",\"Block\"],\"in-element\":[\"Block\"],let:[\"Block\"],\"link-to\":[\"Append\",\"Block\"],log:[\"Call\",\"Append\"],modifier:[\"Call\"],mount:[\"Append\"],mut:[\"Call\",\"Append\"],outlet:[\"Append\"],\"query-params\":[\"Call\"],readonly:[\"Call\",\"Append\"],unbound:[\"Call\",\"Append\"],unless:[\"Call\",\"Append\",\"Block\"],with:[\"Block\"],yield:[\"Append\"]};t.KEYWORDS_TYPES=h}}),Vt=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/lib/get-template-locals.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),t.getTemplateLocals=r;var f=Ze(),h=Fe(),d=c(Ne());function c(s){return s&&s.__esModule?s:{default:s}}function o(s,p,n){if(s.type===\"PathExpression\"){if(s.head.type===\"AtHead\"||s.head.type===\"ThisHead\")return;let a=s.head.name;if(p.indexOf(a)===-1)return a}else if(s.type===\"ElementNode\"){let{tag:a}=s,u=a.charAt(0);return u===\":\"||u===\"@\"||!n.includeHtmlElements&&a.indexOf(\".\")===-1&&a.toLowerCase()===a||a.substr(0,5)===\"this.\"||p.indexOf(a)!==-1?void 0:a}}function e(s,p,n,a){let u=o(p,n,a);(Array.isArray(u)?u:[u]).forEach(i=>{i!==void 0&&i[0]!==\"@\"&&s.add(i.split(\".\")[0])})}function r(s){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{includeHtmlElements:!1,includeKeywords:!1},n=(0,h.preprocess)(s),a=new Set,u=[];(0,d.default)(n,{Block:{enter(l){let{blockParams:b}=l;b.forEach(P=>{u.push(P)})},exit(l){let{blockParams:b}=l;b.forEach(()=>{u.pop()})}},ElementNode:{enter(l){l.blockParams.forEach(b=>{u.push(b)}),e(a,l,u,p)},exit(l){let{blockParams:b}=l;b.forEach(()=>{u.pop()})}},PathExpression(l){e(a,l,u,p)}});let i=[];return a.forEach(l=>i.push(l)),p!=null&&p.includeKeywords||(i=i.filter(l=>!(0,f.isKeyword)(l))),i}}}),Ut=I({\"node_modules/@glimmer/syntax/dist/commonjs/es2017/index.js\"(t){\"use strict\";F(),Object.defineProperty(t,\"__esModule\",{value:!0}),Object.defineProperty(t,\"Source\",{enumerable:!0,get:function(){return f.Source}}),Object.defineProperty(t,\"builders\",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,\"normalize\",{enumerable:!0,get:function(){return o.normalize}}),Object.defineProperty(t,\"SymbolTable\",{enumerable:!0,get:function(){return e.SymbolTable}}),Object.defineProperty(t,\"BlockSymbolTable\",{enumerable:!0,get:function(){return e.BlockSymbolTable}}),Object.defineProperty(t,\"ProgramSymbolTable\",{enumerable:!0,get:function(){return e.ProgramSymbolTable}}),Object.defineProperty(t,\"generateSyntaxError\",{enumerable:!0,get:function(){return r.generateSyntaxError}}),Object.defineProperty(t,\"preprocess\",{enumerable:!0,get:function(){return s.preprocess}}),Object.defineProperty(t,\"print\",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,\"sortByLoc\",{enumerable:!0,get:function(){return n.sortByLoc}}),Object.defineProperty(t,\"Walker\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,\"Path\",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,\"traverse\",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,\"cannotRemoveNode\",{enumerable:!0,get:function(){return i.cannotRemoveNode}}),Object.defineProperty(t,\"cannotReplaceNode\",{enumerable:!0,get:function(){return i.cannotReplaceNode}}),Object.defineProperty(t,\"WalkerPath\",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,\"isKeyword\",{enumerable:!0,get:function(){return b.isKeyword}}),Object.defineProperty(t,\"KEYWORDS_TYPES\",{enumerable:!0,get:function(){return b.KEYWORDS_TYPES}}),Object.defineProperty(t,\"getTemplateLocals\",{enumerable:!0,get:function(){return P.getTemplateLocals}}),Object.defineProperty(t,\"SourceSlice\",{enumerable:!0,get:function(){return E.SourceSlice}}),Object.defineProperty(t,\"SourceSpan\",{enumerable:!0,get:function(){return v.SourceSpan}}),Object.defineProperty(t,\"SpanList\",{enumerable:!0,get:function(){return _.SpanList}}),Object.defineProperty(t,\"maybeLoc\",{enumerable:!0,get:function(){return _.maybeLoc}}),Object.defineProperty(t,\"loc\",{enumerable:!0,get:function(){return _.loc}}),Object.defineProperty(t,\"hasSpan\",{enumerable:!0,get:function(){return _.hasSpan}}),Object.defineProperty(t,\"node\",{enumerable:!0,get:function(){return y.node}}),t.ASTv2=t.AST=t.ASTv1=void 0;var f=De(),h=j(ke()),d=L(Ct());t.ASTv1=d,t.AST=d;var c=L(ve());t.ASTv2=c;var o=Ht(),e=Xe(),r=he(),s=Fe(),p=j(We()),n=Ue(),a=j(Je()),u=j(Ne()),i=Ye(),l=j(Qe()),b=Ze(),P=Vt(),E=le(),v=ue(),_=ce(),y=ne();function g(){if(typeof WeakMap!=\"function\")return null;var x=new WeakMap;return g=function(){return x},x}function L(x){if(x&&x.__esModule)return x;if(x===null||typeof x!=\"object\"&&typeof x!=\"function\")return{default:x};var w=g();if(w&&w.has(x))return w.get(x);var H={},m=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var C in x)if(Object.prototype.hasOwnProperty.call(x,C)){var S=m?Object.getOwnPropertyDescriptor(x,C):null;S&&(S.get||S.set)?Object.defineProperty(H,C,S):H[C]=x[C]}return H.default=x,w&&w.set(x,H),H}function j(x){return x&&x.__esModule?x:{default:x}}}});F();var{LinesAndColumns:zt}=st(),Gt=ut(),{locStart:Kt,locEnd:Wt}=ot();function Yt(){return{name:\"addBackslash\",visitor:{All(t){var f;let h=(f=t.children)!==null&&f!==void 0?f:t.body;if(h)for(let d=0;d{let{line:c,column:o}=d;return f.indexForLocation({line:c-1,column:o})};return()=>({name:\"addOffset\",visitor:{All(d){let{start:c,end:o}=d.loc;c.offset=h(c),o.offset=h(o)}}})}function Jt(t){let{preprocess:f}=Ut(),h;try{h=f(t,{mode:\"codemod\",plugins:{ast:[Yt,Qt(t)]}})}catch(d){let c=Xt(d);throw c?Gt(d.message,c):d}return h}function Xt(t){let{location:f,hash:h}=t;if(f){let{start:d,end:c}=f;return typeof c.line!=\"number\"?{start:d}:f}if(h){let{loc:{last_line:d,last_column:c}}=h;return{start:{line:d,column:c+1}}}}$e.exports={parsers:{glimmer:{parse:Jt,astFormat:\"glimmer\",locStart:Kt,locEnd:Wt}}}});return Zt();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.graphql=e()}})(function(){\"use strict\";var oe=(a,d)=>()=>(d||a((d={exports:{}}).exports,d),d.exports);var be=oe((Ce,ae)=>{var H=Object.getOwnPropertyNames,se=(a,d)=>function(){return a&&(d=(0,a[H(a)[0]])(a=0)),d},L=(a,d)=>function(){return d||(0,a[H(a)[0]])((d={exports:{}}).exports,d),d.exports},K=se({\"\"(){}}),ce=L({\"src/common/parser-create-error.js\"(a,d){\"use strict\";K();function i(c,r){let _=new SyntaxError(c+\" (\"+r.start.line+\":\"+r.start.column+\")\");return _.loc=r,_}d.exports=i}}),ue=L({\"src/utils/try-combinations.js\"(a,d){\"use strict\";K();function i(){let c;for(var r=arguments.length,_=new Array(r),E=0;E120){for(var t=Math.floor(s/80),u=s%80,y=[],f=0;f\"u\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function e(f){return Function.toString.call(f).indexOf(\"[native code]\")!==-1}function n(f,m){return n=Object.setPrototypeOf||function(h,l){return h.__proto__=l,h},n(f,m)}function t(f){return t=Object.setPrototypeOf?Object.getPrototypeOf:function(o){return o.__proto__||Object.getPrototypeOf(o)},t(f)}var u=function(f){N(o,f);var m=g(o);function o(h,l,T,S,x,b,M){var U,V,q,G,C;k(this,o),C=m.call(this,h);var R=Array.isArray(l)?l.length!==0?l:void 0:l?[l]:void 0,Y=T;if(!Y&&R){var J;Y=(J=R[0].loc)===null||J===void 0?void 0:J.source}var F=S;!F&&R&&(F=R.reduce(function(w,P){return P.loc&&w.push(P.loc.start),w},[])),F&&F.length===0&&(F=void 0);var B;S&&T?B=S.map(function(w){return(0,r.getLocation)(T,w)}):R&&(B=R.reduce(function(w,P){return P.loc&&w.push((0,r.getLocation)(P.loc.source,P.loc.start)),w},[]));var j=M;if(j==null&&b!=null){var Q=b.extensions;(0,i.default)(Q)&&(j=Q)}return Object.defineProperties(v(C),{name:{value:\"GraphQLError\"},message:{value:h,enumerable:!0,writable:!0},locations:{value:(U=B)!==null&&U!==void 0?U:void 0,enumerable:B!=null},path:{value:x!=null?x:void 0,enumerable:x!=null},nodes:{value:R!=null?R:void 0},source:{value:(V=Y)!==null&&V!==void 0?V:void 0},positions:{value:(q=F)!==null&&q!==void 0?q:void 0},originalError:{value:b},extensions:{value:(G=j)!==null&&G!==void 0?G:void 0,enumerable:j!=null}}),b!=null&&b.stack?(Object.defineProperty(v(C),\"stack\",{value:b.stack,writable:!0,configurable:!0}),D(C)):(Error.captureStackTrace?Error.captureStackTrace(v(C),o):Object.defineProperty(v(C),\"stack\",{value:Error().stack,writable:!0,configurable:!0}),C)}return A(o,[{key:\"toString\",value:function(){return y(this)}},{key:c.SYMBOL_TO_STRING_TAG,get:function(){return\"Object\"}}]),o}(I(Error));a.GraphQLError=u;function y(f){var m=f.message;if(f.nodes)for(var o=0,h=f.nodes;o\",EOF:\"\",BANG:\"!\",DOLLAR:\"$\",AMP:\"&\",PAREN_L:\"(\",PAREN_R:\")\",SPREAD:\"...\",COLON:\":\",EQUALS:\"=\",AT:\"@\",BRACKET_L:\"[\",BRACKET_R:\"]\",BRACE_L:\"{\",PIPE:\"|\",BRACE_R:\"}\",NAME:\"Name\",INT:\"Int\",FLOAT:\"Float\",STRING:\"String\",BLOCK_STRING:\"BlockString\",COMMENT:\"Comment\"});a.TokenKind=d}}),re=L({\"node_modules/graphql/jsutils/inspect.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.default=E;var d=i(ee());function i(v){return v&&v.__esModule?v:{default:v}}function c(v){return typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?c=function(s){return typeof s}:c=function(s){return s&&typeof Symbol==\"function\"&&s.constructor===Symbol&&s!==Symbol.prototype?\"symbol\":typeof s},c(v)}var r=10,_=2;function E(v){return k(v,[])}function k(v,I){switch(c(v)){case\"string\":return JSON.stringify(v);case\"function\":return v.name?\"[function \".concat(v.name,\"]\"):\"[function]\";case\"object\":return v===null?\"null\":O(v,I);default:return String(v)}}function O(v,I){if(I.indexOf(v)!==-1)return\"[Circular]\";var s=[].concat(I,[v]),p=g(v);if(p!==void 0){var e=p.call(v);if(e!==v)return typeof e==\"string\"?e:k(e,s)}else if(Array.isArray(v))return N(v,s);return A(v,s)}function A(v,I){var s=Object.keys(v);if(s.length===0)return\"{}\";if(I.length>_)return\"[\"+D(v)+\"]\";var p=s.map(function(e){var n=k(v[e],I);return e+\": \"+n});return\"{ \"+p.join(\", \")+\" }\"}function N(v,I){if(v.length===0)return\"[]\";if(I.length>_)return\"[Array]\";for(var s=Math.min(r,v.length),p=v.length-s,e=[],n=0;n1&&e.push(\"... \".concat(p,\" more items\")),\"[\"+e.join(\", \")+\"]\"}function g(v){var I=v[String(d.default)];if(typeof I==\"function\")return I;if(typeof v.inspect==\"function\")return v.inspect}function D(v){var I=Object.prototype.toString.call(v).replace(/^\\[object /,\"\").replace(/]$/,\"\");if(I===\"Object\"&&typeof v.constructor==\"function\"){var s=v.constructor.name;if(typeof s==\"string\"&&s!==\"\")return s}return I}}}),_e=L({\"node_modules/graphql/jsutils/devAssert.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.default=d;function d(i,c){var r=Boolean(i);if(!r)throw new Error(c)}}}),Ee=L({\"node_modules/graphql/jsutils/instanceOf.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.default=void 0;var d=i(re());function i(r){return r&&r.__esModule?r:{default:r}}var c=function(_,E){return _ instanceof E};a.default=c}}),me=L({\"node_modules/graphql/language/source.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.isSource=A,a.Source=void 0;var d=z(),i=_(re()),c=_(_e()),r=_(Ee());function _(N){return N&&N.__esModule?N:{default:N}}function E(N,g){for(var D=0;D1&&arguments[1]!==void 0?arguments[1]:\"GraphQL request\",v=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{line:1,column:1};typeof g==\"string\"||(0,c.default)(0,\"Body must be a string. Received: \".concat((0,i.default)(g),\".\")),this.body=g,this.name=D,this.locationOffset=v,this.locationOffset.line>0||(0,c.default)(0,\"line in locationOffset is 1-indexed and must be positive.\"),this.locationOffset.column>0||(0,c.default)(0,\"column in locationOffset is 1-indexed and must be positive.\")}return k(N,[{key:d.SYMBOL_TO_STRING_TAG,get:function(){return\"Source\"}}]),N}();a.Source=O;function A(N){return(0,r.default)(N,O)}}}),ye=L({\"node_modules/graphql/language/directiveLocation.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.DirectiveLocation=void 0;var d=Object.freeze({QUERY:\"QUERY\",MUTATION:\"MUTATION\",SUBSCRIPTION:\"SUBSCRIPTION\",FIELD:\"FIELD\",FRAGMENT_DEFINITION:\"FRAGMENT_DEFINITION\",FRAGMENT_SPREAD:\"FRAGMENT_SPREAD\",INLINE_FRAGMENT:\"INLINE_FRAGMENT\",VARIABLE_DEFINITION:\"VARIABLE_DEFINITION\",SCHEMA:\"SCHEMA\",SCALAR:\"SCALAR\",OBJECT:\"OBJECT\",FIELD_DEFINITION:\"FIELD_DEFINITION\",ARGUMENT_DEFINITION:\"ARGUMENT_DEFINITION\",INTERFACE:\"INTERFACE\",UNION:\"UNION\",ENUM:\"ENUM\",ENUM_VALUE:\"ENUM_VALUE\",INPUT_OBJECT:\"INPUT_OBJECT\",INPUT_FIELD_DEFINITION:\"INPUT_FIELD_DEFINITION\"});a.DirectiveLocation=d}}),ke=L({\"node_modules/graphql/language/blockString.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.dedentBlockStringValue=d,a.getBlockStringIndentation=c,a.printBlockString=r;function d(_){var E=_.split(/\\r\\n|[\\n\\r]/g),k=c(_);if(k!==0)for(var O=1;OA&&i(E[N-1]);)--N;return E.slice(A,N).join(`\n`)}function i(_){for(var E=0;E<_.length;++E)if(_[E]!==\" \"&&_[E]!==\"\t\")return!1;return!0}function c(_){for(var E,k=!0,O=!0,A=0,N=null,g=0;g<_.length;++g)switch(_.charCodeAt(g)){case 13:_.charCodeAt(g+1)===10&&++g;case 10:k=!1,O=!0,A=0;break;case 9:case 32:++A;break;default:O&&!k&&(N===null||A1&&arguments[1]!==void 0?arguments[1]:\"\",k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,O=_.indexOf(`\n`)===-1,A=_[0]===\" \"||_[0]===\"\t\",N=_[_.length-1]==='\"',g=_[_.length-1]===\"\\\\\",D=!O||N||g||k,v=\"\";return D&&!(O&&A)&&(v+=`\n`+E),v+=E?_.replace(/\\n/g,`\n`+E):_,D&&(v+=`\n`),'\"\"\"'+v.replace(/\"\"\"/g,'\\\\\"\"\"')+'\"\"\"'}}}),Ne=L({\"node_modules/graphql/language/lexer.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.isPunctuatorTokenKind=E,a.Lexer=void 0;var d=Z(),i=te(),c=ne(),r=ke(),_=function(){function t(y){var f=new i.Token(c.TokenKind.SOF,0,0,0,0,null);this.source=y,this.lastToken=f,this.token=f,this.line=1,this.lineStart=0}var u=t.prototype;return u.advance=function(){this.lastToken=this.token;var f=this.token=this.lookahead();return f},u.lookahead=function(){var f=this.token;if(f.kind!==c.TokenKind.EOF)do{var m;f=(m=f.next)!==null&&m!==void 0?m:f.next=O(this,f)}while(f.kind===c.TokenKind.COMMENT);return f},t}();a.Lexer=_;function E(t){return t===c.TokenKind.BANG||t===c.TokenKind.DOLLAR||t===c.TokenKind.AMP||t===c.TokenKind.PAREN_L||t===c.TokenKind.PAREN_R||t===c.TokenKind.SPREAD||t===c.TokenKind.COLON||t===c.TokenKind.EQUALS||t===c.TokenKind.AT||t===c.TokenKind.BRACKET_L||t===c.TokenKind.BRACKET_R||t===c.TokenKind.BRACE_L||t===c.TokenKind.PIPE||t===c.TokenKind.BRACE_R}function k(t){return isNaN(t)?c.TokenKind.EOF:t<127?JSON.stringify(String.fromCharCode(t)):'\"\\\\u'.concat((\"00\"+t.toString(16).toUpperCase()).slice(-4),'\"')}function O(t,u){for(var y=t.source,f=y.body,m=f.length,o=u.end;o31||h===9));return new i.Token(c.TokenKind.COMMENT,u,l,y,f,m,o.slice(u+1,l))}function g(t,u,y,f,m,o){var h=t.body,l=y,T=u,S=!1;if(l===45&&(l=h.charCodeAt(++T)),l===48){if(l=h.charCodeAt(++T),l>=48&&l<=57)throw(0,d.syntaxError)(t,T,\"Invalid number, unexpected digit after 0: \".concat(k(l),\".\"))}else T=D(t,T,l),l=h.charCodeAt(T);if(l===46&&(S=!0,l=h.charCodeAt(++T),T=D(t,T,l),l=h.charCodeAt(T)),(l===69||l===101)&&(S=!0,l=h.charCodeAt(++T),(l===43||l===45)&&(l=h.charCodeAt(++T)),T=D(t,T,l),l=h.charCodeAt(T)),l===46||n(l))throw(0,d.syntaxError)(t,T,\"Invalid number, expected digit but got: \".concat(k(l),\".\"));return new i.Token(S?c.TokenKind.FLOAT:c.TokenKind.INT,u,T,f,m,o,h.slice(u,T))}function D(t,u,y){var f=t.body,m=u,o=y;if(o>=48&&o<=57){do o=f.charCodeAt(++m);while(o>=48&&o<=57);return m}throw(0,d.syntaxError)(t,m,\"Invalid number, expected digit but got: \".concat(k(o),\".\"))}function v(t,u,y,f,m){for(var o=t.body,h=u+1,l=h,T=0,S=\"\";h=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:-1}function e(t,u,y,f,m){for(var o=t.body,h=o.length,l=u+1,T=0;l!==h&&!isNaN(T=o.charCodeAt(l))&&(T===95||T>=48&&T<=57||T>=65&&T<=90||T>=97&&T<=122);)++l;return new i.Token(c.TokenKind.NAME,u,l,y,f,m,o.slice(u,l))}function n(t){return t===95||t>=65&&t<=90||t>=97&&t<=122}}}),Oe=L({\"node_modules/graphql/language/parser.js\"(a){\"use strict\";K(),Object.defineProperty(a,\"__esModule\",{value:!0}),a.parse=O,a.parseValue=A,a.parseType=N,a.Parser=void 0;var d=Z(),i=he(),c=te(),r=ne(),_=me(),E=ye(),k=Ne();function O(I,s){var p=new g(I,s);return p.parseDocument()}function A(I,s){var p=new g(I,s);p.expectToken(r.TokenKind.SOF);var e=p.parseValueLiteral(!1);return p.expectToken(r.TokenKind.EOF),e}function N(I,s){var p=new g(I,s);p.expectToken(r.TokenKind.SOF);var e=p.parseTypeReference();return p.expectToken(r.TokenKind.EOF),e}var g=function(){function I(p,e){var n=(0,_.isSource)(p)?p:new _.Source(p);this._lexer=new k.Lexer(n),this._options=e}var s=I.prototype;return s.parseName=function(){var e=this.expectToken(r.TokenKind.NAME);return{kind:i.Kind.NAME,value:e.value,loc:this.loc(e)}},s.parseDocument=function(){var e=this._lexer.token;return{kind:i.Kind.DOCUMENT,definitions:this.many(r.TokenKind.SOF,this.parseDefinition,r.TokenKind.EOF),loc:this.loc(e)}},s.parseDefinition=function(){if(this.peek(r.TokenKind.NAME))switch(this._lexer.token.value){case\"query\":case\"mutation\":case\"subscription\":return this.parseOperationDefinition();case\"fragment\":return this.parseFragmentDefinition();case\"schema\":case\"scalar\":case\"type\":case\"interface\":case\"union\":case\"enum\":case\"input\":case\"directive\":return this.parseTypeSystemDefinition();case\"extend\":return this.parseTypeSystemExtension()}else{if(this.peek(r.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},s.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(r.TokenKind.BRACE_L))return{kind:i.Kind.OPERATION_DEFINITION,operation:\"query\",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var n=this.parseOperationType(),t;return this.peek(r.TokenKind.NAME)&&(t=this.parseName()),{kind:i.Kind.OPERATION_DEFINITION,operation:n,name:t,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},s.parseOperationType=function(){var e=this.expectToken(r.TokenKind.NAME);switch(e.value){case\"query\":return\"query\";case\"mutation\":return\"mutation\";case\"subscription\":return\"subscription\"}throw this.unexpected(e)},s.parseVariableDefinitions=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseVariableDefinition,r.TokenKind.PAREN_R)},s.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:i.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(r.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(r.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},s.parseVariable=function(){var e=this._lexer.token;return this.expectToken(r.TokenKind.DOLLAR),{kind:i.Kind.VARIABLE,name:this.parseName(),loc:this.loc(e)}},s.parseSelectionSet=function(){var e=this._lexer.token;return{kind:i.Kind.SELECTION_SET,selections:this.many(r.TokenKind.BRACE_L,this.parseSelection,r.TokenKind.BRACE_R),loc:this.loc(e)}},s.parseSelection=function(){return this.peek(r.TokenKind.SPREAD)?this.parseFragment():this.parseField()},s.parseField=function(){var e=this._lexer.token,n=this.parseName(),t,u;return this.expectOptionalToken(r.TokenKind.COLON)?(t=n,u=this.parseName()):u=n,{kind:i.Kind.FIELD,alias:t,name:u,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(r.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(e)}},s.parseArguments=function(e){var n=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(r.TokenKind.PAREN_L,n,r.TokenKind.PAREN_R)},s.parseArgument=function(){var e=this._lexer.token,n=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:i.Kind.ARGUMENT,name:n,value:this.parseValueLiteral(!1),loc:this.loc(e)}},s.parseConstArgument=function(){var e=this._lexer.token;return{kind:i.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(r.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},s.parseFragment=function(){var e=this._lexer.token;this.expectToken(r.TokenKind.SPREAD);var n=this.expectOptionalKeyword(\"on\");return!n&&this.peek(r.TokenKind.NAME)?{kind:i.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:i.Kind.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},s.parseFragmentDefinition=function(){var e,n=this._lexer.token;return this.expectKeyword(\"fragment\"),((e=this._options)===null||e===void 0?void 0:e.experimentalFragmentVariables)===!0?{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}:{kind:i.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},s.parseFragmentName=function(){if(this._lexer.token.value===\"on\")throw this.unexpected();return this.parseName()},s.parseValueLiteral=function(e){var n=this._lexer.token;switch(n.kind){case r.TokenKind.BRACKET_L:return this.parseList(e);case r.TokenKind.BRACE_L:return this.parseObject(e);case r.TokenKind.INT:return this._lexer.advance(),{kind:i.Kind.INT,value:n.value,loc:this.loc(n)};case r.TokenKind.FLOAT:return this._lexer.advance(),{kind:i.Kind.FLOAT,value:n.value,loc:this.loc(n)};case r.TokenKind.STRING:case r.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case r.TokenKind.NAME:switch(this._lexer.advance(),n.value){case\"true\":return{kind:i.Kind.BOOLEAN,value:!0,loc:this.loc(n)};case\"false\":return{kind:i.Kind.BOOLEAN,value:!1,loc:this.loc(n)};case\"null\":return{kind:i.Kind.NULL,loc:this.loc(n)};default:return{kind:i.Kind.ENUM,value:n.value,loc:this.loc(n)}}case r.TokenKind.DOLLAR:if(!e)return this.parseVariable();break}throw this.unexpected()},s.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:i.Kind.STRING,value:e.value,block:e.kind===r.TokenKind.BLOCK_STRING,loc:this.loc(e)}},s.parseList=function(e){var n=this,t=this._lexer.token,u=function(){return n.parseValueLiteral(e)};return{kind:i.Kind.LIST,values:this.any(r.TokenKind.BRACKET_L,u,r.TokenKind.BRACKET_R),loc:this.loc(t)}},s.parseObject=function(e){var n=this,t=this._lexer.token,u=function(){return n.parseObjectField(e)};return{kind:i.Kind.OBJECT,fields:this.any(r.TokenKind.BRACE_L,u,r.TokenKind.BRACE_R),loc:this.loc(t)}},s.parseObjectField=function(e){var n=this._lexer.token,t=this.parseName();return this.expectToken(r.TokenKind.COLON),{kind:i.Kind.OBJECT_FIELD,name:t,value:this.parseValueLiteral(e),loc:this.loc(n)}},s.parseDirectives=function(e){for(var n=[];this.peek(r.TokenKind.AT);)n.push(this.parseDirective(e));return n},s.parseDirective=function(e){var n=this._lexer.token;return this.expectToken(r.TokenKind.AT),{kind:i.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(n)}},s.parseTypeReference=function(){var e=this._lexer.token,n;return this.expectOptionalToken(r.TokenKind.BRACKET_L)?(n=this.parseTypeReference(),this.expectToken(r.TokenKind.BRACKET_R),n={kind:i.Kind.LIST_TYPE,type:n,loc:this.loc(e)}):n=this.parseNamedType(),this.expectOptionalToken(r.TokenKind.BANG)?{kind:i.Kind.NON_NULL_TYPE,type:n,loc:this.loc(e)}:n},s.parseNamedType=function(){var e=this._lexer.token;return{kind:i.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},s.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===r.TokenKind.NAME)switch(e.value){case\"schema\":return this.parseSchemaDefinition();case\"scalar\":return this.parseScalarTypeDefinition();case\"type\":return this.parseObjectTypeDefinition();case\"interface\":return this.parseInterfaceTypeDefinition();case\"union\":return this.parseUnionTypeDefinition();case\"enum\":return this.parseEnumTypeDefinition();case\"input\":return this.parseInputObjectTypeDefinition();case\"directive\":return this.parseDirectiveDefinition()}throw this.unexpected(e)},s.peekDescription=function(){return this.peek(r.TokenKind.STRING)||this.peek(r.TokenKind.BLOCK_STRING)},s.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},s.parseSchemaDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"schema\");var t=this.parseDirectives(!0),u=this.many(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);return{kind:i.Kind.SCHEMA_DEFINITION,description:n,directives:t,operationTypes:u,loc:this.loc(e)}},s.parseOperationTypeDefinition=function(){var e=this._lexer.token,n=this.parseOperationType();this.expectToken(r.TokenKind.COLON);var t=this.parseNamedType();return{kind:i.Kind.OPERATION_TYPE_DEFINITION,operation:n,type:t,loc:this.loc(e)}},s.parseScalarTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"scalar\");var t=this.parseName(),u=this.parseDirectives(!0);return{kind:i.Kind.SCALAR_TYPE_DEFINITION,description:n,name:t,directives:u,loc:this.loc(e)}},s.parseObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"type\");var t=this.parseName(),u=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:i.Kind.OBJECT_TYPE_DEFINITION,description:n,name:t,interfaces:u,directives:y,fields:f,loc:this.loc(e)}},s.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword(\"implements\"))return[];if(((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLImplementsInterfaces)===!0){var n=[];this.expectOptionalToken(r.TokenKind.AMP);do n.push(this.parseNamedType());while(this.expectOptionalToken(r.TokenKind.AMP)||this.peek(r.TokenKind.NAME));return n}return this.delimitedMany(r.TokenKind.AMP,this.parseNamedType)},s.parseFieldsDefinition=function(){var e;return((e=this._options)===null||e===void 0?void 0:e.allowLegacySDLEmptyFields)===!0&&this.peek(r.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===r.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(r.TokenKind.BRACE_L,this.parseFieldDefinition,r.TokenKind.BRACE_R)},s.parseFieldDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),u=this.parseArgumentDefs();this.expectToken(r.TokenKind.COLON);var y=this.parseTypeReference(),f=this.parseDirectives(!0);return{kind:i.Kind.FIELD_DEFINITION,description:n,name:t,arguments:u,type:y,directives:f,loc:this.loc(e)}},s.parseArgumentDefs=function(){return this.optionalMany(r.TokenKind.PAREN_L,this.parseInputValueDef,r.TokenKind.PAREN_R)},s.parseInputValueDef=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName();this.expectToken(r.TokenKind.COLON);var u=this.parseTypeReference(),y;this.expectOptionalToken(r.TokenKind.EQUALS)&&(y=this.parseValueLiteral(!0));var f=this.parseDirectives(!0);return{kind:i.Kind.INPUT_VALUE_DEFINITION,description:n,name:t,type:u,defaultValue:y,directives:f,loc:this.loc(e)}},s.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"interface\");var t=this.parseName(),u=this.parseImplementsInterfaces(),y=this.parseDirectives(!0),f=this.parseFieldsDefinition();return{kind:i.Kind.INTERFACE_TYPE_DEFINITION,description:n,name:t,interfaces:u,directives:y,fields:f,loc:this.loc(e)}},s.parseUnionTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"union\");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseUnionMemberTypes();return{kind:i.Kind.UNION_TYPE_DEFINITION,description:n,name:t,directives:u,types:y,loc:this.loc(e)}},s.parseUnionMemberTypes=function(){return this.expectOptionalToken(r.TokenKind.EQUALS)?this.delimitedMany(r.TokenKind.PIPE,this.parseNamedType):[]},s.parseEnumTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"enum\");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseEnumValuesDefinition();return{kind:i.Kind.ENUM_TYPE_DEFINITION,description:n,name:t,directives:u,values:y,loc:this.loc(e)}},s.parseEnumValuesDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseEnumValueDefinition,r.TokenKind.BRACE_R)},s.parseEnumValueDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),u=this.parseDirectives(!0);return{kind:i.Kind.ENUM_VALUE_DEFINITION,description:n,name:t,directives:u,loc:this.loc(e)}},s.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"input\");var t=this.parseName(),u=this.parseDirectives(!0),y=this.parseInputFieldsDefinition();return{kind:i.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:t,directives:u,fields:y,loc:this.loc(e)}},s.parseInputFieldsDefinition=function(){return this.optionalMany(r.TokenKind.BRACE_L,this.parseInputValueDef,r.TokenKind.BRACE_R)},s.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===r.TokenKind.NAME)switch(e.value){case\"schema\":return this.parseSchemaExtension();case\"scalar\":return this.parseScalarTypeExtension();case\"type\":return this.parseObjectTypeExtension();case\"interface\":return this.parseInterfaceTypeExtension();case\"union\":return this.parseUnionTypeExtension();case\"enum\":return this.parseEnumTypeExtension();case\"input\":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},s.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"schema\");var n=this.parseDirectives(!0),t=this.optionalMany(r.TokenKind.BRACE_L,this.parseOperationTypeDefinition,r.TokenKind.BRACE_R);if(n.length===0&&t.length===0)throw this.unexpected();return{kind:i.Kind.SCHEMA_EXTENSION,directives:n,operationTypes:t,loc:this.loc(e)}},s.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"scalar\");var n=this.parseName(),t=this.parseDirectives(!0);if(t.length===0)throw this.unexpected();return{kind:i.Kind.SCALAR_TYPE_EXTENSION,name:n,directives:t,loc:this.loc(e)}},s.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"type\");var n=this.parseName(),t=this.parseImplementsInterfaces(),u=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&u.length===0&&y.length===0)throw this.unexpected();return{kind:i.Kind.OBJECT_TYPE_EXTENSION,name:n,interfaces:t,directives:u,fields:y,loc:this.loc(e)}},s.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"interface\");var n=this.parseName(),t=this.parseImplementsInterfaces(),u=this.parseDirectives(!0),y=this.parseFieldsDefinition();if(t.length===0&&u.length===0&&y.length===0)throw this.unexpected();return{kind:i.Kind.INTERFACE_TYPE_EXTENSION,name:n,interfaces:t,directives:u,fields:y,loc:this.loc(e)}},s.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"union\");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseUnionMemberTypes();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.UNION_TYPE_EXTENSION,name:n,directives:t,types:u,loc:this.loc(e)}},s.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"enum\");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseEnumValuesDefinition();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.ENUM_TYPE_EXTENSION,name:n,directives:t,values:u,loc:this.loc(e)}},s.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"input\");var n=this.parseName(),t=this.parseDirectives(!0),u=this.parseInputFieldsDefinition();if(t.length===0&&u.length===0)throw this.unexpected();return{kind:i.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:t,fields:u,loc:this.loc(e)}},s.parseDirectiveDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"directive\"),this.expectToken(r.TokenKind.AT);var t=this.parseName(),u=this.parseArgumentDefs(),y=this.expectOptionalKeyword(\"repeatable\");this.expectKeyword(\"on\");var f=this.parseDirectiveLocations();return{kind:i.Kind.DIRECTIVE_DEFINITION,description:n,name:t,arguments:u,repeatable:y,locations:f,loc:this.loc(e)}},s.parseDirectiveLocations=function(){return this.delimitedMany(r.TokenKind.PIPE,this.parseDirectiveLocation)},s.parseDirectiveLocation=function(){var e=this._lexer.token,n=this.parseName();if(E.DirectiveLocation[n.value]!==void 0)return n;throw this.unexpected(e)},s.loc=function(e){var n;if(((n=this._options)===null||n===void 0?void 0:n.noLocation)!==!0)return new c.Location(e,this._lexer.lastToken,this._lexer.source)},s.peek=function(e){return this._lexer.token.kind===e},s.expectToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n;throw(0,d.syntaxError)(this._lexer.source,n.start,\"Expected \".concat(v(e),\", found \").concat(D(n),\".\"))},s.expectOptionalToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n},s.expectKeyword=function(e){var n=this._lexer.token;if(n.kind===r.TokenKind.NAME&&n.value===e)this._lexer.advance();else throw(0,d.syntaxError)(this._lexer.source,n.start,'Expected \"'.concat(e,'\", found ').concat(D(n),\".\"))},s.expectOptionalKeyword=function(e){var n=this._lexer.token;return n.kind===r.TokenKind.NAME&&n.value===e?(this._lexer.advance(),!0):!1},s.unexpected=function(e){var n=e!=null?e:this._lexer.token;return(0,d.syntaxError)(this._lexer.source,n.start,\"Unexpected \".concat(D(n),\".\"))},s.any=function(e,n,t){this.expectToken(e);for(var u=[];!this.expectOptionalToken(t);)u.push(n.call(this));return u},s.optionalMany=function(e,n,t){if(this.expectOptionalToken(e)){var u=[];do u.push(n.call(this));while(!this.expectOptionalToken(t));return u}return[]},s.many=function(e,n,t){this.expectToken(e);var u=[];do u.push(n.call(this));while(!this.expectOptionalToken(t));return u},s.delimitedMany=function(e,n){this.expectOptionalToken(e);var t=[];do t.push(n.call(this));while(this.expectOptionalToken(e));return t},I}();a.Parser=g;function D(I){var s=I.value;return v(I.kind)+(s!=null?' \"'.concat(s,'\"'):\"\")}function v(I){return(0,k.isPunctuatorTokenKind)(I)?'\"'.concat(I,'\"'):I}}});K();var Ie=ce(),ge=ue(),{hasPragma:Se}=le(),{locStart:Ae,locEnd:De}=pe();function Ke(a){let d=[],{startToken:i}=a.loc,{next:c}=i;for(;c.kind!==\"\";)c.kind===\"Comment\"&&(Object.assign(c,{column:c.column-1}),d.push(c)),c=c.next;return d}function ie(a){if(a&&typeof a==\"object\"){delete a.startToken,delete a.endToken,delete a.prev,delete a.next;for(let d in a)ie(a[d])}return a}var X={allowLegacySDLImplementsInterfaces:!1,experimentalFragmentVariables:!0};function Le(a){let{GraphQLError:d}=W();if(a instanceof d){let{message:i,locations:[c]}=a;return Ie(i,{start:c})}return a}function xe(a){let{parse:d}=Oe(),{result:i,error:c}=ge(()=>d(a,Object.assign({},X)),()=>d(a,Object.assign(Object.assign({},X),{},{allowLegacySDLImplementsInterfaces:!0})));if(!i)throw Le(c);return i.comments=Ke(i),ie(i),i}ae.exports={parsers:{graphql:{parse:xe,astFormat:\"graphql\",hasPragma:Se,locStart:Ae,locEnd:De}}}});return be();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.html=e()}})(function(){\"use strict\";var y=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var G=y((cl,zr)=>{var we=function(e){return e&&e.Math==Math&&e};zr.exports=we(typeof globalThis==\"object\"&&globalThis)||we(typeof window==\"object\"&&window)||we(typeof self==\"object\"&&self)||we(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var se=y((Dl,Wr)=>{Wr.exports=function(e){try{return!!e()}catch{return!0}}});var oe=y((ll,Yr)=>{var bs=se();Yr.exports=!bs(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Ne=y((hl,Qr)=>{var ws=se();Qr.exports=!ws(function(){var e=function(){}.bind();return typeof e!=\"function\"||e.hasOwnProperty(\"prototype\")})});var ce=y((pl,Kr)=>{var Ns=Ne(),Oe=Function.prototype.call;Kr.exports=Ns?Oe.bind(Oe):function(){return Oe.apply(Oe,arguments)}});var rt=y(et=>{\"use strict\";var Jr={}.propertyIsEnumerable,Zr=Object.getOwnPropertyDescriptor,Os=Zr&&!Jr.call({1:2},1);et.f=Os?function(r){var t=Zr(this,r);return!!t&&t.enumerable}:Jr});var qe=y((dl,tt)=>{tt.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var Q=y((El,st)=>{var ut=Ne(),nt=Function.prototype,qs=nt.bind,er=nt.call,Is=ut&&qs.bind(er,er);st.exports=ut?function(e){return e&&Is(e)}:function(e){return e&&function(){return er.apply(e,arguments)}}});var Ie=y((Cl,it)=>{var at=Q(),Rs=at({}.toString),xs=at(\"\".slice);it.exports=function(e){return xs(Rs(e),8,-1)}});var ct=y((ml,ot)=>{var Ps=G(),ks=Q(),Ls=se(),Ms=Ie(),rr=Ps.Object,js=ks(\"\".split);ot.exports=Ls(function(){return!rr(\"z\").propertyIsEnumerable(0)})?function(e){return Ms(e)==\"String\"?js(e,\"\"):rr(e)}:rr});var tr=y((gl,Dt)=>{var $s=G(),Us=$s.TypeError;Dt.exports=function(e){if(e==null)throw Us(\"Can't call method on \"+e);return e}});var Re=y((Fl,lt)=>{var Gs=ct(),Vs=tr();lt.exports=function(e){return Gs(Vs(e))}});var K=y((Al,ht)=>{ht.exports=function(e){return typeof e==\"function\"}});var De=y((vl,pt)=>{var Xs=K();pt.exports=function(e){return typeof e==\"object\"?e!==null:Xs(e)}});var ge=y((_l,ft)=>{var ur=G(),Hs=K(),zs=function(e){return Hs(e)?e:void 0};ft.exports=function(e,r){return arguments.length<2?zs(ur[e]):ur[e]&&ur[e][r]}});var nr=y((Sl,dt)=>{var Ws=Q();dt.exports=Ws({}.isPrototypeOf)});var Ct=y((yl,Et)=>{var Ys=ge();Et.exports=Ys(\"navigator\",\"userAgent\")||\"\"});var St=y((Tl,_t)=>{var vt=G(),sr=Ct(),mt=vt.process,gt=vt.Deno,Ft=mt&&mt.versions||gt&>.version,At=Ft&&Ft.v8,te,xe;At&&(te=At.split(\".\"),xe=te[0]>0&&te[0]<4?1:+(te[0]+te[1]));!xe&&sr&&(te=sr.match(/Edge\\/(\\d+)/),(!te||te[1]>=74)&&(te=sr.match(/Chrome\\/(\\d+)/),te&&(xe=+te[1])));_t.exports=xe});var ar=y((Bl,Tt)=>{var yt=St(),Qs=se();Tt.exports=!!Object.getOwnPropertySymbols&&!Qs(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&yt&&yt<41})});var ir=y((bl,Bt)=>{var Ks=ar();Bt.exports=Ks&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var or=y((wl,bt)=>{var Js=G(),Zs=ge(),ea=K(),ra=nr(),ta=ir(),ua=Js.Object;bt.exports=ta?function(e){return typeof e==\"symbol\"}:function(e){var r=Zs(\"Symbol\");return ea(r)&&ra(r.prototype,ua(e))}});var Pe=y((Nl,wt)=>{var na=G(),sa=na.String;wt.exports=function(e){try{return sa(e)}catch{return\"Object\"}}});var Fe=y((Ol,Nt)=>{var aa=G(),ia=K(),oa=Pe(),ca=aa.TypeError;Nt.exports=function(e){if(ia(e))return e;throw ca(oa(e)+\" is not a function\")}});var ke=y((ql,Ot)=>{var Da=Fe();Ot.exports=function(e,r){var t=e[r];return t==null?void 0:Da(t)}});var It=y((Il,qt)=>{var la=G(),cr=ce(),Dr=K(),lr=De(),ha=la.TypeError;qt.exports=function(e,r){var t,s;if(r===\"string\"&&Dr(t=e.toString)&&!lr(s=cr(t,e))||Dr(t=e.valueOf)&&!lr(s=cr(t,e))||r!==\"string\"&&Dr(t=e.toString)&&!lr(s=cr(t,e)))return s;throw ha(\"Can't convert object to primitive value\")}});var xt=y((Rl,Rt)=>{Rt.exports=!1});var Le=y((xl,kt)=>{var Pt=G(),pa=Object.defineProperty;kt.exports=function(e,r){try{pa(Pt,e,{value:r,configurable:!0,writable:!0})}catch{Pt[e]=r}return r}});var Me=y((Pl,Mt)=>{var fa=G(),da=Le(),Lt=\"__core-js_shared__\",Ea=fa[Lt]||da(Lt,{});Mt.exports=Ea});var hr=y((kl,$t)=>{var Ca=xt(),jt=Me();($t.exports=function(e,r){return jt[e]||(jt[e]=r!==void 0?r:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:Ca?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var pr=y((Ll,Ut)=>{var ma=G(),ga=tr(),Fa=ma.Object;Ut.exports=function(e){return Fa(ga(e))}});var ae=y((Ml,Gt)=>{var Aa=Q(),va=pr(),_a=Aa({}.hasOwnProperty);Gt.exports=Object.hasOwn||function(r,t){return _a(va(r),t)}});var fr=y((jl,Vt)=>{var Sa=Q(),ya=0,Ta=Math.random(),Ba=Sa(1 .toString);Vt.exports=function(e){return\"Symbol(\"+(e===void 0?\"\":e)+\")_\"+Ba(++ya+Ta,36)}});var he=y(($l,Yt)=>{var ba=G(),wa=hr(),Xt=ae(),Na=fr(),Ht=ar(),Wt=ir(),fe=wa(\"wks\"),le=ba.Symbol,zt=le&&le.for,Oa=Wt?le:le&&le.withoutSetter||Na;Yt.exports=function(e){if(!Xt(fe,e)||!(Ht||typeof fe[e]==\"string\")){var r=\"Symbol.\"+e;Ht&&Xt(le,e)?fe[e]=le[e]:Wt&&zt?fe[e]=zt(r):fe[e]=Oa(r)}return fe[e]}});var Zt=y((Ul,Jt)=>{var qa=G(),Ia=ce(),Qt=De(),Kt=or(),Ra=ke(),xa=It(),Pa=he(),ka=qa.TypeError,La=Pa(\"toPrimitive\");Jt.exports=function(e,r){if(!Qt(e)||Kt(e))return e;var t=Ra(e,La),s;if(t){if(r===void 0&&(r=\"default\"),s=Ia(t,e,r),!Qt(s)||Kt(s))return s;throw ka(\"Can't convert object to primitive value\")}return r===void 0&&(r=\"number\"),xa(e,r)}});var je=y((Gl,eu)=>{var Ma=Zt(),ja=or();eu.exports=function(e){var r=Ma(e,\"string\");return ja(r)?r:r+\"\"}});var uu=y((Vl,tu)=>{var $a=G(),ru=De(),dr=$a.document,Ua=ru(dr)&&ru(dr.createElement);tu.exports=function(e){return Ua?dr.createElement(e):{}}});var Er=y((Xl,nu)=>{var Ga=oe(),Va=se(),Xa=uu();nu.exports=!Ga&&!Va(function(){return Object.defineProperty(Xa(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Cr=y(au=>{var Ha=oe(),za=ce(),Wa=rt(),Ya=qe(),Qa=Re(),Ka=je(),Ja=ae(),Za=Er(),su=Object.getOwnPropertyDescriptor;au.f=Ha?su:function(r,t){if(r=Qa(r),t=Ka(t),Za)try{return su(r,t)}catch{}if(Ja(r,t))return Ya(!za(Wa.f,r,t),r[t])}});var ou=y((zl,iu)=>{var ei=oe(),ri=se();iu.exports=ei&&ri(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var de=y((Wl,Du)=>{var cu=G(),ti=De(),ui=cu.String,ni=cu.TypeError;Du.exports=function(e){if(ti(e))return e;throw ni(ui(e)+\" is not an object\")}});var Ue=y(hu=>{var si=G(),ai=oe(),ii=Er(),oi=ou(),$e=de(),lu=je(),ci=si.TypeError,mr=Object.defineProperty,Di=Object.getOwnPropertyDescriptor,gr=\"enumerable\",Fr=\"configurable\",Ar=\"writable\";hu.f=ai?oi?function(r,t,s){if($e(r),t=lu(t),$e(s),typeof r==\"function\"&&t===\"prototype\"&&\"value\"in s&&Ar in s&&!s[Ar]){var c=Di(r,t);c&&c[Ar]&&(r[t]=s.value,s={configurable:Fr in s?s[Fr]:c[Fr],enumerable:gr in s?s[gr]:c[gr],writable:!1})}return mr(r,t,s)}:mr:function(r,t,s){if($e(r),t=lu(t),$e(s),ii)try{return mr(r,t,s)}catch{}if(\"get\"in s||\"set\"in s)throw ci(\"Accessors not supported\");return\"value\"in s&&(r[t]=s.value),r}});var Ge=y((Ql,pu)=>{var li=oe(),hi=Ue(),pi=qe();pu.exports=li?function(e,r,t){return hi.f(e,r,pi(1,t))}:function(e,r,t){return e[r]=t,e}});var Ve=y((Kl,fu)=>{var fi=Q(),di=K(),vr=Me(),Ei=fi(Function.toString);di(vr.inspectSource)||(vr.inspectSource=function(e){return Ei(e)});fu.exports=vr.inspectSource});var Cu=y((Jl,Eu)=>{var Ci=G(),mi=K(),gi=Ve(),du=Ci.WeakMap;Eu.exports=mi(du)&&/native code/.test(gi(du))});var Fu=y((Zl,gu)=>{var Fi=hr(),Ai=fr(),mu=Fi(\"keys\");gu.exports=function(e){return mu[e]||(mu[e]=Ai(e))}});var _r=y((e2,Au)=>{Au.exports={}});var Bu=y((r2,Tu)=>{var vi=Cu(),yu=G(),Sr=Q(),_i=De(),Si=Ge(),yr=ae(),Tr=Me(),yi=Fu(),Ti=_r(),vu=\"Object already initialized\",br=yu.TypeError,Bi=yu.WeakMap,Xe,Ae,He,bi=function(e){return He(e)?Ae(e):Xe(e,{})},wi=function(e){return function(r){var t;if(!_i(r)||(t=Ae(r)).type!==e)throw br(\"Incompatible receiver, \"+e+\" required\");return t}};vi||Tr.state?(ie=Tr.state||(Tr.state=new Bi),_u=Sr(ie.get),Br=Sr(ie.has),Su=Sr(ie.set),Xe=function(e,r){if(Br(ie,e))throw new br(vu);return r.facade=e,Su(ie,e,r),r},Ae=function(e){return _u(ie,e)||{}},He=function(e){return Br(ie,e)}):(pe=yi(\"state\"),Ti[pe]=!0,Xe=function(e,r){if(yr(e,pe))throw new br(vu);return r.facade=e,Si(e,pe,r),r},Ae=function(e){return yr(e,pe)?e[pe]:{}},He=function(e){return yr(e,pe)});var ie,_u,Br,Su,pe;Tu.exports={set:Xe,get:Ae,has:He,enforce:bi,getterFor:wi}});var Nu=y((t2,wu)=>{var wr=oe(),Ni=ae(),bu=Function.prototype,Oi=wr&&Object.getOwnPropertyDescriptor,Nr=Ni(bu,\"name\"),qi=Nr&&function(){}.name===\"something\",Ii=Nr&&(!wr||wr&&Oi(bu,\"name\").configurable);wu.exports={EXISTS:Nr,PROPER:qi,CONFIGURABLE:Ii}});var xu=y((u2,Ru)=>{var Ri=G(),Ou=K(),xi=ae(),qu=Ge(),Pi=Le(),ki=Ve(),Iu=Bu(),Li=Nu().CONFIGURABLE,Mi=Iu.get,ji=Iu.enforce,$i=String(String).split(\"String\");(Ru.exports=function(e,r,t,s){var c=s?!!s.unsafe:!1,n=s?!!s.enumerable:!1,a=s?!!s.noTargetGet:!1,p=s&&s.name!==void 0?s.name:r,D;if(Ou(t)&&(String(p).slice(0,7)===\"Symbol(\"&&(p=\"[\"+String(p).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!xi(t,\"name\")||Li&&t.name!==p)&&qu(t,\"name\",p),D=ji(t),D.source||(D.source=$i.join(typeof p==\"string\"?p:\"\"))),e===Ri){n?e[r]=t:Pi(r,t);return}else c?!a&&e[r]&&(n=!0):delete e[r];n?e[r]=t:qu(e,r,t)})(Function.prototype,\"toString\",function(){return Ou(this)&&Mi(this).source||ki(this)})});var Or=y((n2,Pu)=>{var Ui=Math.ceil,Gi=Math.floor;Pu.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?Gi:Ui)(r)}});var Lu=y((s2,ku)=>{var Vi=Or(),Xi=Math.max,Hi=Math.min;ku.exports=function(e,r){var t=Vi(e);return t<0?Xi(t+r,0):Hi(t,r)}});var ju=y((a2,Mu)=>{var zi=Or(),Wi=Math.min;Mu.exports=function(e){return e>0?Wi(zi(e),9007199254740991):0}});var ve=y((i2,$u)=>{var Yi=ju();$u.exports=function(e){return Yi(e.length)}});var Vu=y((o2,Gu)=>{var Qi=Re(),Ki=Lu(),Ji=ve(),Uu=function(e){return function(r,t,s){var c=Qi(r),n=Ji(c),a=Ki(s,n),p;if(e&&t!=t){for(;n>a;)if(p=c[a++],p!=p)return!0}else for(;n>a;a++)if((e||a in c)&&c[a]===t)return e||a||0;return!e&&-1}};Gu.exports={includes:Uu(!0),indexOf:Uu(!1)}});var zu=y((c2,Hu)=>{var Zi=Q(),qr=ae(),eo=Re(),ro=Vu().indexOf,to=_r(),Xu=Zi([].push);Hu.exports=function(e,r){var t=eo(e),s=0,c=[],n;for(n in t)!qr(to,n)&&qr(t,n)&&Xu(c,n);for(;r.length>s;)qr(t,n=r[s++])&&(~ro(c,n)||Xu(c,n));return c}});var Yu=y((D2,Wu)=>{Wu.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var Ku=y(Qu=>{var uo=zu(),no=Yu(),so=no.concat(\"length\",\"prototype\");Qu.f=Object.getOwnPropertyNames||function(r){return uo(r,so)}});var Zu=y(Ju=>{Ju.f=Object.getOwnPropertySymbols});var rn=y((p2,en)=>{var ao=ge(),io=Q(),oo=Ku(),co=Zu(),Do=de(),lo=io([].concat);en.exports=ao(\"Reflect\",\"ownKeys\")||function(r){var t=oo.f(Do(r)),s=co.f;return s?lo(t,s(r)):t}});var nn=y((f2,un)=>{var tn=ae(),ho=rn(),po=Cr(),fo=Ue();un.exports=function(e,r,t){for(var s=ho(r),c=fo.f,n=po.f,a=0;a{var Eo=se(),Co=K(),mo=/#|\\.prototype\\./,_e=function(e,r){var t=Fo[go(e)];return t==vo?!0:t==Ao?!1:Co(r)?Eo(r):!!r},go=_e.normalize=function(e){return String(e).replace(mo,\".\").toLowerCase()},Fo=_e.data={},Ao=_e.NATIVE=\"N\",vo=_e.POLYFILL=\"P\";sn.exports=_e});var ze=y((E2,on)=>{var Ir=G(),_o=Cr().f,So=Ge(),yo=xu(),To=Le(),Bo=nn(),bo=an();on.exports=function(e,r){var t=e.target,s=e.global,c=e.stat,n,a,p,D,g,i;if(s?a=Ir:c?a=Ir[t]||To(t,{}):a=(Ir[t]||{}).prototype,a)for(p in r){if(g=r[p],e.noTargetGet?(i=_o(a,p),D=i&&i.value):D=a[p],n=bo(s?p:t+(c?\".\":\"#\")+p,e.forced),!n&&D!==void 0){if(typeof g==typeof D)continue;Bo(g,D)}(e.sham||D&&D.sham)&&So(g,\"sham\",!0),yo(a,p,g,e)}}});var cn=y(()=>{var wo=ze(),No=G();wo({global:!0},{globalThis:No})});var Dn=y(()=>{cn()});var Rr=y((A2,ln)=>{var Oo=Ie();ln.exports=Array.isArray||function(r){return Oo(r)==\"Array\"}});var xr=y((v2,pn)=>{var hn=Q(),qo=Fe(),Io=Ne(),Ro=hn(hn.bind);pn.exports=function(e,r){return qo(e),r===void 0?e:Io?Ro(e,r):function(){return e.apply(r,arguments)}}});var En=y((_2,dn)=>{\"use strict\";var xo=G(),Po=Rr(),ko=ve(),Lo=xr(),Mo=xo.TypeError,fn=function(e,r,t,s,c,n,a,p){for(var D=c,g=0,i=a?Lo(a,p):!1,l,h;g0&&Po(l))h=ko(l),D=fn(e,r,l,h,D,n-1)-1;else{if(D>=9007199254740991)throw Mo(\"Exceed the acceptable array length\");e[D]=l}D++}g++}return D};dn.exports=fn});var gn=y((S2,mn)=>{var jo=he(),$o=jo(\"toStringTag\"),Cn={};Cn[$o]=\"z\";mn.exports=String(Cn)===\"[object z]\"});var Pr=y((y2,Fn)=>{var Uo=G(),Go=gn(),Vo=K(),We=Ie(),Xo=he(),Ho=Xo(\"toStringTag\"),zo=Uo.Object,Wo=We(function(){return arguments}())==\"Arguments\",Yo=function(e,r){try{return e[r]}catch{}};Fn.exports=Go?We:function(e){var r,t,s;return e===void 0?\"Undefined\":e===null?\"Null\":typeof(t=Yo(r=zo(e),Ho))==\"string\"?t:Wo?We(r):(s=We(r))==\"Object\"&&Vo(r.callee)?\"Arguments\":s}});var Tn=y((T2,yn)=>{var Qo=Q(),Ko=se(),An=K(),Jo=Pr(),Zo=ge(),ec=Ve(),vn=function(){},rc=[],_n=Zo(\"Reflect\",\"construct\"),kr=/^\\s*(?:class|function)\\b/,tc=Qo(kr.exec),uc=!kr.exec(vn),Se=function(r){if(!An(r))return!1;try{return _n(vn,rc,r),!0}catch{return!1}},Sn=function(r){if(!An(r))return!1;switch(Jo(r)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return uc||!!tc(kr,ec(r))}catch{return!0}};Sn.sham=!0;yn.exports=!_n||Ko(function(){var e;return Se(Se.call)||!Se(Object)||!Se(function(){e=!0})||e})?Sn:Se});var Nn=y((B2,wn)=>{var nc=G(),Bn=Rr(),sc=Tn(),ac=De(),ic=he(),oc=ic(\"species\"),bn=nc.Array;wn.exports=function(e){var r;return Bn(e)&&(r=e.constructor,sc(r)&&(r===bn||Bn(r.prototype))?r=void 0:ac(r)&&(r=r[oc],r===null&&(r=void 0))),r===void 0?bn:r}});var qn=y((b2,On)=>{var cc=Nn();On.exports=function(e,r){return new(cc(e))(r===0?0:r)}});var In=y(()=>{\"use strict\";var Dc=ze(),lc=En(),hc=Fe(),pc=pr(),fc=ve(),dc=qn();Dc({target:\"Array\",proto:!0},{flatMap:function(r){var t=pc(this),s=fc(t),c;return hc(r),c=dc(t,0),c.length=lc(c,t,t,s,0,1,r,arguments.length>1?arguments[1]:void 0),c}})});var Lr=y((O2,Rn)=>{Rn.exports={}});var Pn=y((q2,xn)=>{var Ec=he(),Cc=Lr(),mc=Ec(\"iterator\"),gc=Array.prototype;xn.exports=function(e){return e!==void 0&&(Cc.Array===e||gc[mc]===e)}});var Mr=y((I2,Ln)=>{var Fc=Pr(),kn=ke(),Ac=Lr(),vc=he(),_c=vc(\"iterator\");Ln.exports=function(e){if(e!=null)return kn(e,_c)||kn(e,\"@@iterator\")||Ac[Fc(e)]}});var jn=y((R2,Mn)=>{var Sc=G(),yc=ce(),Tc=Fe(),Bc=de(),bc=Pe(),wc=Mr(),Nc=Sc.TypeError;Mn.exports=function(e,r){var t=arguments.length<2?wc(e):r;if(Tc(t))return Bc(yc(t,e));throw Nc(bc(e)+\" is not iterable\")}});var Gn=y((x2,Un)=>{var Oc=ce(),$n=de(),qc=ke();Un.exports=function(e,r,t){var s,c;$n(e);try{if(s=qc(e,\"return\"),!s){if(r===\"throw\")throw t;return t}s=Oc(s,e)}catch(n){c=!0,s=n}if(r===\"throw\")throw t;if(c)throw s;return $n(s),t}});var Wn=y((P2,zn)=>{var Ic=G(),Rc=xr(),xc=ce(),Pc=de(),kc=Pe(),Lc=Pn(),Mc=ve(),Vn=nr(),jc=jn(),$c=Mr(),Xn=Gn(),Uc=Ic.TypeError,Ye=function(e,r){this.stopped=e,this.result=r},Hn=Ye.prototype;zn.exports=function(e,r,t){var s=t&&t.that,c=!!(t&&t.AS_ENTRIES),n=!!(t&&t.IS_ITERATOR),a=!!(t&&t.INTERRUPTED),p=Rc(r,s),D,g,i,l,h,C,d,m=function(B){return D&&Xn(D,\"normal\",B),new Ye(!0,B)},T=function(B){return c?(Pc(B),a?p(B[0],B[1],m):p(B[0],B[1])):a?p(B,m):p(B)};if(n)D=e;else{if(g=$c(e),!g)throw Uc(kc(e)+\" is not iterable\");if(Lc(g)){for(i=0,l=Mc(e);l>i;i++)if(h=T(e[i]),h&&Vn(Hn,h))return h;return new Ye(!1)}D=jc(e,g)}for(C=D.next;!(d=xc(C,D)).done;){try{h=T(d.value)}catch(B){Xn(D,\"throw\",B)}if(typeof h==\"object\"&&h&&Vn(Hn,h))return h}return new Ye(!1)}});var Qn=y((k2,Yn)=>{\"use strict\";var Gc=je(),Vc=Ue(),Xc=qe();Yn.exports=function(e,r,t){var s=Gc(r);s in e?Vc.f(e,s,Xc(0,t)):e[s]=t}});var Kn=y(()=>{var Hc=ze(),zc=Wn(),Wc=Qn();Hc({target:\"Object\",stat:!0},{fromEntries:function(r){var t={};return zc(r,function(s,c){Wc(t,s,c)},{AS_ENTRIES:!0}),t}})});var il=y((j2,Bs)=>{var Yc=[\"cliName\",\"cliCategory\",\"cliDescription\"],Jn,Zn,es,rs,ts,us;function Qc(e,r){if(e==null)return{};var t=Kc(e,r),s,c;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(c=0;c=0)&&(!Object.prototype.propertyIsEnumerable.call(e,s)||(t[s]=e[s]))}return t}function Kc(e,r){if(e==null)return{};var t={},s=Object.keys(e),c,n;for(n=0;n=0)&&(t[c]=e[c]);return t}function Ee(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}Dn();In();Kn();var Jc=Object.create,Je=Object.defineProperty,Zc=Object.getOwnPropertyDescriptor,$r=Object.getOwnPropertyNames,eD=Object.getPrototypeOf,rD=Object.prototype.hasOwnProperty,Ce=(e,r)=>function(){return e&&(r=(0,e[$r(e)[0]])(e=0)),r},I=(e,r)=>function(){return r||(0,e[$r(e)[0]])((r={exports:{}}).exports,r),r.exports},cs=(e,r)=>{for(var t in r)Je(e,t,{get:r[t],enumerable:!0})},Ds=(e,r,t,s)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let c of $r(r))!rD.call(e,c)&&c!==t&&Je(e,c,{get:()=>r[c],enumerable:!(s=Zc(r,c))||s.enumerable});return e},tD=(e,r,t)=>(t=e!=null?Jc(eD(e)):{},Ds(r||!e||!e.__esModule?Je(t,\"default\",{value:e,enumerable:!0}):t,e)),ls=e=>Ds(Je({},\"__esModule\",{value:!0}),e),ns,ss,ye,q=Ce({\"\"(){ns={},ss=[],ye={env:ns,argv:ss}}}),hs=I({\"node_modules/angular-html-parser/lib/compiler/src/chars.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.$EOF=0,e.$BSPACE=8,e.$TAB=9,e.$LF=10,e.$VTAB=11,e.$FF=12,e.$CR=13,e.$SPACE=32,e.$BANG=33,e.$DQ=34,e.$HASH=35,e.$$=36,e.$PERCENT=37,e.$AMPERSAND=38,e.$SQ=39,e.$LPAREN=40,e.$RPAREN=41,e.$STAR=42,e.$PLUS=43,e.$COMMA=44,e.$MINUS=45,e.$PERIOD=46,e.$SLASH=47,e.$COLON=58,e.$SEMICOLON=59,e.$LT=60,e.$EQ=61,e.$GT=62,e.$QUESTION=63,e.$0=48,e.$7=55,e.$9=57,e.$A=65,e.$E=69,e.$F=70,e.$X=88,e.$Z=90,e.$LBRACKET=91,e.$BACKSLASH=92,e.$RBRACKET=93,e.$CARET=94,e.$_=95,e.$a=97,e.$b=98,e.$e=101,e.$f=102,e.$n=110,e.$r=114,e.$t=116,e.$u=117,e.$v=118,e.$x=120,e.$z=122,e.$LBRACE=123,e.$BAR=124,e.$RBRACE=125,e.$NBSP=160,e.$PIPE=124,e.$TILDA=126,e.$AT=64,e.$BT=96;function r(p){return p>=e.$TAB&&p<=e.$SPACE||p==e.$NBSP}e.isWhitespace=r;function t(p){return e.$0<=p&&p<=e.$9}e.isDigit=t;function s(p){return p>=e.$a&&p<=e.$z||p>=e.$A&&p<=e.$Z}e.isAsciiLetter=s;function c(p){return p>=e.$a&&p<=e.$f||p>=e.$A&&p<=e.$F||t(p)}e.isAsciiHexDigit=c;function n(p){return p===e.$LF||p===e.$CR}e.isNewLine=n;function a(p){return e.$0<=p&&p<=e.$7}e.isOctalDigit=a}}),uD=I({\"node_modules/angular-html-parser/lib/compiler/src/aot/static_symbol.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=class{constructor(s,c,n){this.filePath=s,this.name=c,this.members=n}assertNoMembers(){if(this.members.length)throw new Error(\"Illegal state: symbol without members expected, but got \".concat(JSON.stringify(this),\".\"))}};e.StaticSymbol=r;var t=class{constructor(){this.cache=new Map}get(s,c,n){n=n||[];let a=n.length?\".\".concat(n.join(\".\")):\"\",p='\"'.concat(s,'\".').concat(c).concat(a),D=this.cache.get(p);return D||(D=new r(s,c,n),this.cache.set(p,D)),D}};e.StaticSymbolCache=t}}),nD=I({\"node_modules/angular-html-parser/lib/compiler/src/util.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=/-+([a-z0-9])/g;function t(o){return o.replace(r,function(){for(var E=arguments.length,f=new Array(E),F=0;Fa(f,this,E))}visitStringMap(o,E){let f={};return Object.keys(o).forEach(F=>{f[F]=a(o[F],this,E)}),f}visitPrimitive(o,E){return o}visitOther(o,E){return o}};e.ValueTransformer=g,e.SyncAsync={assertSync:o=>{if(_(o))throw new Error(\"Illegal state: value cannot be a promise\");return o},then:(o,E)=>_(o)?o.then(E):E(o),all:o=>o.some(_)?Promise.all(o):o};function i(o){throw new Error(\"Internal Error: \".concat(o))}e.error=i;function l(o,E){let f=Error(o);return f[h]=!0,E&&(f[C]=E),f}e.syntaxError=l;var h=\"ngSyntaxError\",C=\"ngParseErrors\";function d(o){return o[h]}e.isSyntaxError=d;function m(o){return o[C]||[]}e.getParseErrors=m;function T(o){return o.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g,\"\\\\$1\")}e.escapeRegExp=T;var B=Object.getPrototypeOf({});function A(o){return typeof o==\"object\"&&o!==null&&Object.getPrototypeOf(o)===B}function N(o){let E=\"\";for(let f=0;f=55296&&F<=56319&&o.length>f+1){let P=o.charCodeAt(f+1);P>=56320&&P<=57343&&(f++,F=(F-55296<<10)+P-56320+65536)}F<=127?E+=String.fromCharCode(F):F<=2047?E+=String.fromCharCode(F>>6&31|192,F&63|128):F<=65535?E+=String.fromCharCode(F>>12|224,F>>6&63|128,F&63|128):F<=2097151&&(E+=String.fromCharCode(F>>18&7|240,F>>12&63|128,F>>6&63|128,F&63|128))}return E}e.utf8Encode=N;function R(o){if(typeof o==\"string\")return o;if(o instanceof Array)return\"[\"+o.map(R).join(\", \")+\"]\";if(o==null)return\"\"+o;if(o.overriddenName)return\"\".concat(o.overriddenName);if(o.name)return\"\".concat(o.name);if(!o.toString)return\"object\";let E=o.toString();if(E==null)return\"\"+E;let f=E.indexOf(`\n`);return f===-1?E:E.substring(0,f)}e.stringify=R;function $(o){return typeof o==\"function\"&&o.hasOwnProperty(\"__forward_ref__\")?o():o}e.resolveForwardRef=$;function _(o){return!!o&&typeof o.then==\"function\"}e.isPromise=_;var O=class{constructor(o){this.full=o;let E=o.split(\".\");this.major=E[0],this.minor=E[1],this.patch=E.slice(2).join(\".\")}};e.Version=O;var x=typeof window<\"u\"&&window,k=typeof self<\"u\"&&typeof WorkerGlobalScope<\"u\"&&self instanceof WorkerGlobalScope&&self,M=typeof globalThis<\"u\"&&globalThis,u=M||x||k;e.global=u}}),sD=I({\"node_modules/angular-html-parser/lib/compiler/src/compile_metadata.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=uD(),t=nD(),s=/^(?:(?:\\[([^\\]]+)\\])|(?:\\(([^\\)]+)\\)))|(\\@[-\\w]+)$/;function c(f){return f.replace(/\\W/g,\"_\")}e.sanitizeIdentifier=c;var n=0;function a(f){if(!f||!f.reference)return null;let F=f.reference;if(F instanceof r.StaticSymbol)return F.name;if(F.__anonymousType)return F.__anonymousType;let P=t.stringify(F);return P.indexOf(\"(\")>=0?(P=\"anonymous_\".concat(n++),F.__anonymousType=P):P=c(P),P}e.identifierName=a;function p(f){let F=f.reference;return F instanceof r.StaticSymbol?F.filePath:\"./\".concat(t.stringify(F))}e.identifierModuleUrl=p;function D(f,F){return\"View_\".concat(a({reference:f}),\"_\").concat(F)}e.viewClassName=D;function g(f){return\"RenderType_\".concat(a({reference:f}))}e.rendererTypeName=g;function i(f){return\"HostView_\".concat(a({reference:f}))}e.hostViewClassName=i;function l(f){return\"\".concat(a({reference:f}),\"NgFactory\")}e.componentFactoryName=l;var h;(function(f){f[f.Pipe=0]=\"Pipe\",f[f.Directive=1]=\"Directive\",f[f.NgModule=2]=\"NgModule\",f[f.Injectable=3]=\"Injectable\"})(h=e.CompileSummaryKind||(e.CompileSummaryKind={}));function C(f){return f.value!=null?c(f.value):a(f.identifier)}e.tokenName=C;function d(f){return f.identifier!=null?f.identifier.reference:f.value}e.tokenReference=d;var m=class{constructor(){let{moduleUrl:f,styles:F,styleUrls:P}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.moduleUrl=f||null,this.styles=_(F),this.styleUrls=_(P)}};e.CompileStylesheetMetadata=m;var T=class{constructor(f){let{encapsulation:F,template:P,templateUrl:j,htmlAst:W,styles:X,styleUrls:H,externalStylesheets:z,animations:J,ngContentSelectors:Z,interpolation:ee,isInline:v,preserveWhitespaces:S}=f;if(this.encapsulation=F,this.template=P,this.templateUrl=j,this.htmlAst=W,this.styles=_(X),this.styleUrls=_(H),this.externalStylesheets=_(z),this.animations=J?x(J):[],this.ngContentSelectors=Z||[],ee&&ee.length!=2)throw new Error(\"'interpolation' should have a start and an end symbol.\");this.interpolation=ee,this.isInline=v,this.preserveWhitespaces=S}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};e.CompileTemplateMetadata=T;var B=class{static create(f){let{isHost:F,type:P,isComponent:j,selector:W,exportAs:X,changeDetection:H,inputs:z,outputs:J,host:Z,providers:ee,viewProviders:v,queries:S,guards:b,viewQueries:w,entryComponents:L,template:U,componentViewType:V,rendererType:Y,componentFactory:ue}=f,Be={},be={},Vr={};Z!=null&&Object.keys(Z).forEach(re=>{let ne=Z[re],me=re.match(s);me===null?Vr[re]=ne:me[1]!=null?be[me[1]]=ne:me[2]!=null&&(Be[me[2]]=ne)});let Xr={};z!=null&&z.forEach(re=>{let ne=t.splitAtColon(re,[re,re]);Xr[ne[0]]=ne[1]});let Hr={};return J!=null&&J.forEach(re=>{let ne=t.splitAtColon(re,[re,re]);Hr[ne[0]]=ne[1]}),new B({isHost:F,type:P,isComponent:!!j,selector:W,exportAs:X,changeDetection:H,inputs:Xr,outputs:Hr,hostListeners:Be,hostProperties:be,hostAttributes:Vr,providers:ee,viewProviders:v,queries:S,guards:b,viewQueries:w,entryComponents:L,template:U,componentViewType:V,rendererType:Y,componentFactory:ue})}constructor(f){let{isHost:F,type:P,isComponent:j,selector:W,exportAs:X,changeDetection:H,inputs:z,outputs:J,hostListeners:Z,hostProperties:ee,hostAttributes:v,providers:S,viewProviders:b,queries:w,guards:L,viewQueries:U,entryComponents:V,template:Y,componentViewType:ue,rendererType:Be,componentFactory:be}=f;this.isHost=!!F,this.type=P,this.isComponent=j,this.selector=W,this.exportAs=X,this.changeDetection=H,this.inputs=z,this.outputs=J,this.hostListeners=Z,this.hostProperties=ee,this.hostAttributes=v,this.providers=_(S),this.viewProviders=_(b),this.queries=_(w),this.guards=L,this.viewQueries=_(U),this.entryComponents=_(V),this.template=Y,this.componentViewType=ue,this.rendererType=Be,this.componentFactory=be}toSummary(){return{summaryKind:h.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}};e.CompileDirectiveMetadata=B;var A=class{constructor(f){let{type:F,name:P,pure:j}=f;this.type=F,this.name=P,this.pure=!!j}toSummary(){return{summaryKind:h.Pipe,type:this.type,name:this.name,pure:this.pure}}};e.CompilePipeMetadata=A;var N=class{};e.CompileShallowModuleMetadata=N;var R=class{constructor(f){let{type:F,providers:P,declaredDirectives:j,exportedDirectives:W,declaredPipes:X,exportedPipes:H,entryComponents:z,bootstrapComponents:J,importedModules:Z,exportedModules:ee,schemas:v,transitiveModule:S,id:b}=f;this.type=F||null,this.declaredDirectives=_(j),this.exportedDirectives=_(W),this.declaredPipes=_(X),this.exportedPipes=_(H),this.providers=_(P),this.entryComponents=_(z),this.bootstrapComponents=_(J),this.importedModules=_(Z),this.exportedModules=_(ee),this.schemas=_(v),this.id=b||null,this.transitiveModule=S||null}toSummary(){let f=this.transitiveModule;return{summaryKind:h.NgModule,type:this.type,entryComponents:f.entryComponents,providers:f.providers,modules:f.modules,exportedDirectives:f.exportedDirectives,exportedPipes:f.exportedPipes}}};e.CompileNgModuleMetadata=R;var $=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(f,F){this.providers.push({provider:f,module:F})}addDirective(f){this.directivesSet.has(f.reference)||(this.directivesSet.add(f.reference),this.directives.push(f))}addExportedDirective(f){this.exportedDirectivesSet.has(f.reference)||(this.exportedDirectivesSet.add(f.reference),this.exportedDirectives.push(f))}addPipe(f){this.pipesSet.has(f.reference)||(this.pipesSet.add(f.reference),this.pipes.push(f))}addExportedPipe(f){this.exportedPipesSet.has(f.reference)||(this.exportedPipesSet.add(f.reference),this.exportedPipes.push(f))}addModule(f){this.modulesSet.has(f.reference)||(this.modulesSet.add(f.reference),this.modules.push(f))}addEntryComponent(f){this.entryComponentsSet.has(f.componentType)||(this.entryComponentsSet.add(f.componentType),this.entryComponents.push(f))}};e.TransitiveCompileNgModuleMetadata=$;function _(f){return f||[]}var O=class{constructor(f,F){let{useClass:P,useValue:j,useExisting:W,useFactory:X,deps:H,multi:z}=F;this.token=f,this.useClass=P||null,this.useValue=j,this.useExisting=W,this.useFactory=X||null,this.dependencies=H||null,this.multi=!!z}};e.ProviderMeta=O;function x(f){return f.reduce((F,P)=>{let j=Array.isArray(P)?x(P):P;return F.concat(j)},[])}e.flatten=x;function k(f){return f.replace(/(\\w+:\\/\\/[\\w:-]+)?(\\/+)?/,\"ng:///\")}function M(f,F,P){let j;return P.isInline?F.type.reference instanceof r.StaticSymbol?j=\"\".concat(F.type.reference.filePath,\".\").concat(F.type.reference.name,\".html\"):j=\"\".concat(a(f),\"/\").concat(a(F.type),\".html\"):j=P.templateUrl,F.type.reference instanceof r.StaticSymbol?j:k(j)}e.templateSourceUrl=M;function u(f,F){let P=f.moduleUrl.split(/\\/\\\\/g),j=P[P.length-1];return k(\"css/\".concat(F).concat(j,\".ngstyle.js\"))}e.sharedStylesheetJitUrl=u;function o(f){return k(\"\".concat(a(f.type),\"/module.ngfactory.js\"))}e.ngModuleJitUrl=o;function E(f,F){return k(\"\".concat(a(f),\"/\").concat(a(F.type),\".ngfactory.js\"))}e.templateJitUrl=E}}),Te=I({\"node_modules/angular-html-parser/lib/compiler/src/parse_util.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=hs(),t=sD(),s=class{constructor(i,l,h,C){this.file=i,this.offset=l,this.line=h,this.col=C}toString(){return this.offset!=null?\"\".concat(this.file.url,\"@\").concat(this.line,\":\").concat(this.col):this.file.url}moveBy(i){let l=this.file.content,h=l.length,C=this.offset,d=this.line,m=this.col;for(;C>0&&i<0;)if(C--,i++,l.charCodeAt(C)==r.$LF){d--;let B=l.substr(0,C-1).lastIndexOf(String.fromCharCode(r.$LF));m=B>0?C-B:C}else m--;for(;C0;){let T=l.charCodeAt(C);C++,i--,T==r.$LF?(d++,m=0):m++}return new s(this.file,C,d,m)}getContext(i,l){let h=this.file.content,C=this.offset;if(C!=null){C>h.length-1&&(C=h.length-1);let d=C,m=0,T=0;for(;m0&&(C--,m++,!(h[C]==`\n`&&++T==l)););for(m=0,T=0;m2&&arguments[2]!==void 0?arguments[2]:null;this.start=i,this.end=l,this.details=h}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}};e.ParseSourceSpan=n,e.EMPTY_PARSE_LOCATION=new s(new c(\"\",\"\"),0,0,0),e.EMPTY_SOURCE_SPAN=new n(e.EMPTY_PARSE_LOCATION,e.EMPTY_PARSE_LOCATION);var a;(function(i){i[i.WARNING=0]=\"WARNING\",i[i.ERROR=1]=\"ERROR\"})(a=e.ParseErrorLevel||(e.ParseErrorLevel={}));var p=class{constructor(i,l){let h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:a.ERROR;this.span=i,this.msg=l,this.level=h}contextualMessage(){let i=this.span.start.getContext(100,3);return i?\"\".concat(this.msg,' (\"').concat(i.before,\"[\").concat(a[this.level],\" ->]\").concat(i.after,'\")'):this.msg}toString(){let i=this.span.details?\", \".concat(this.span.details):\"\";return\"\".concat(this.contextualMessage(),\": \").concat(this.span.start).concat(i)}};e.ParseError=p;function D(i,l){let h=t.identifierModuleUrl(l),C=h!=null?\"in \".concat(i,\" \").concat(t.identifierName(l),\" in \").concat(h):\"in \".concat(i,\" \").concat(t.identifierName(l)),d=new c(\"\",C);return new n(new s(d,-1,-1,-1),new s(d,-1,-1,-1))}e.typeSourceSpan=D;function g(i,l,h){let C=\"in \".concat(i,\" \").concat(l,\" in \").concat(h),d=new c(\"\",C);return new n(new s(d,-1,-1,-1),new s(d,-1,-1,-1))}e.r3JitTypeSourceSpan=g}}),aD=I({\"src/utils/front-matter/parse.js\"(e,r){\"use strict\";q();var t=new RegExp(\"^(?-{3}|\\\\+{3})(?[^\\\\n]*)\\\\n(?:|(?.*?)\\\\n)(?\\\\k|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function s(c){let n=c.match(t);if(!n)return{content:c};let{startDelimiter:a,language:p,value:D=\"\",endDelimiter:g}=n.groups,i=p.trim()||\"yaml\";if(a===\"+++\"&&(i=\"toml\"),i!==\"yaml\"&&a!==g)return{content:c};let[l]=n;return{frontMatter:{type:\"front-matter\",lang:i,value:D,startDelimiter:a,endDelimiter:g,raw:l.replace(/\\n$/,\"\")},content:l.replace(/[^\\n]/g,\" \")+c.slice(l.length)}}r.exports=s}}),ps=I({\"src/utils/get-last.js\"(e,r){\"use strict\";q();var t=s=>s[s.length-1];r.exports=t}}),iD=I({\"src/common/parser-create-error.js\"(e,r){\"use strict\";q();function t(s,c){let n=new SyntaxError(s+\" (\"+c.start.line+\":\"+c.start.column+\")\");return n.loc=c,n}r.exports=t}}),fs={};cs(fs,{default:()=>oD});function oD(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var cD=Ce({\"node_modules/escape-string-regexp/index.js\"(){q()}}),ds=I({\"node_modules/semver/internal/debug.js\"(e,r){q();var t=typeof ye==\"object\"&&ye.env&&ye.env.NODE_DEBUG&&/\\bsemver\\b/i.test(ye.env.NODE_DEBUG)?function(){for(var s=arguments.length,c=new Array(s),n=0;n{};r.exports=t}}),Es=I({\"node_modules/semver/internal/constants.js\"(e,r){q();var t=\"2.0.0\",s=256,c=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:t,MAX_LENGTH:s,MAX_SAFE_INTEGER:c,MAX_SAFE_COMPONENT_LENGTH:n}}}),DD=I({\"node_modules/semver/internal/re.js\"(e,r){q();var{MAX_SAFE_COMPONENT_LENGTH:t}=Es(),s=ds();e=r.exports={};var c=e.re=[],n=e.src=[],a=e.t={},p=0,D=(g,i,l)=>{let h=p++;s(g,h,i),a[g]=h,n[h]=i,c[h]=new RegExp(i,l?\"g\":void 0)};D(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\"),D(\"NUMERICIDENTIFIERLOOSE\",\"[0-9]+\"),D(\"NONNUMERICIDENTIFIER\",\"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\"),D(\"MAINVERSION\",\"(\".concat(n[a.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIER],\")\")),D(\"MAINVERSIONLOOSE\",\"(\".concat(n[a.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[a.NUMERICIDENTIFIERLOOSE],\")\")),D(\"PRERELEASEIDENTIFIER\",\"(?:\".concat(n[a.NUMERICIDENTIFIER],\"|\").concat(n[a.NONNUMERICIDENTIFIER],\")\")),D(\"PRERELEASEIDENTIFIERLOOSE\",\"(?:\".concat(n[a.NUMERICIDENTIFIERLOOSE],\"|\").concat(n[a.NONNUMERICIDENTIFIER],\")\")),D(\"PRERELEASE\",\"(?:-(\".concat(n[a.PRERELEASEIDENTIFIER],\"(?:\\\\.\").concat(n[a.PRERELEASEIDENTIFIER],\")*))\")),D(\"PRERELEASELOOSE\",\"(?:-?(\".concat(n[a.PRERELEASEIDENTIFIERLOOSE],\"(?:\\\\.\").concat(n[a.PRERELEASEIDENTIFIERLOOSE],\")*))\")),D(\"BUILDIDENTIFIER\",\"[0-9A-Za-z-]+\"),D(\"BUILD\",\"(?:\\\\+(\".concat(n[a.BUILDIDENTIFIER],\"(?:\\\\.\").concat(n[a.BUILDIDENTIFIER],\")*))\")),D(\"FULLPLAIN\",\"v?\".concat(n[a.MAINVERSION]).concat(n[a.PRERELEASE],\"?\").concat(n[a.BUILD],\"?\")),D(\"FULL\",\"^\".concat(n[a.FULLPLAIN],\"$\")),D(\"LOOSEPLAIN\",\"[v=\\\\s]*\".concat(n[a.MAINVERSIONLOOSE]).concat(n[a.PRERELEASELOOSE],\"?\").concat(n[a.BUILD],\"?\")),D(\"LOOSE\",\"^\".concat(n[a.LOOSEPLAIN],\"$\")),D(\"GTLT\",\"((?:<|>)?=?)\"),D(\"XRANGEIDENTIFIERLOOSE\",\"\".concat(n[a.NUMERICIDENTIFIERLOOSE],\"|x|X|\\\\*\")),D(\"XRANGEIDENTIFIER\",\"\".concat(n[a.NUMERICIDENTIFIER],\"|x|X|\\\\*\")),D(\"XRANGEPLAIN\",\"[v=\\\\s]*(\".concat(n[a.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIER],\")(?:\").concat(n[a.PRERELEASE],\")?\").concat(n[a.BUILD],\"?)?)?\")),D(\"XRANGEPLAINLOOSE\",\"[v=\\\\s]*(\".concat(n[a.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[a.XRANGEIDENTIFIERLOOSE],\")(?:\").concat(n[a.PRERELEASELOOSE],\")?\").concat(n[a.BUILD],\"?)?)?\")),D(\"XRANGE\",\"^\".concat(n[a.GTLT],\"\\\\s*\").concat(n[a.XRANGEPLAIN],\"$\")),D(\"XRANGELOOSE\",\"^\".concat(n[a.GTLT],\"\\\\s*\").concat(n[a.XRANGEPLAINLOOSE],\"$\")),D(\"COERCE\",\"(^|[^\\\\d])(\\\\d{1,\".concat(t,\"})(?:\\\\.(\\\\d{1,\").concat(t,\"}))?(?:\\\\.(\\\\d{1,\").concat(t,\"}))?(?:$|[^\\\\d])\")),D(\"COERCERTL\",n[a.COERCE],!0),D(\"LONETILDE\",\"(?:~>?)\"),D(\"TILDETRIM\",\"(\\\\s*)\".concat(n[a.LONETILDE],\"\\\\s+\"),!0),e.tildeTrimReplace=\"$1~\",D(\"TILDE\",\"^\".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAIN],\"$\")),D(\"TILDELOOSE\",\"^\".concat(n[a.LONETILDE]).concat(n[a.XRANGEPLAINLOOSE],\"$\")),D(\"LONECARET\",\"(?:\\\\^)\"),D(\"CARETTRIM\",\"(\\\\s*)\".concat(n[a.LONECARET],\"\\\\s+\"),!0),e.caretTrimReplace=\"$1^\",D(\"CARET\",\"^\".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAIN],\"$\")),D(\"CARETLOOSE\",\"^\".concat(n[a.LONECARET]).concat(n[a.XRANGEPLAINLOOSE],\"$\")),D(\"COMPARATORLOOSE\",\"^\".concat(n[a.GTLT],\"\\\\s*(\").concat(n[a.LOOSEPLAIN],\")$|^$\")),D(\"COMPARATOR\",\"^\".concat(n[a.GTLT],\"\\\\s*(\").concat(n[a.FULLPLAIN],\")$|^$\")),D(\"COMPARATORTRIM\",\"(\\\\s*)\".concat(n[a.GTLT],\"\\\\s*(\").concat(n[a.LOOSEPLAIN],\"|\").concat(n[a.XRANGEPLAIN],\")\"),!0),e.comparatorTrimReplace=\"$1$2$3\",D(\"HYPHENRANGE\",\"^\\\\s*(\".concat(n[a.XRANGEPLAIN],\")\\\\s+-\\\\s+(\").concat(n[a.XRANGEPLAIN],\")\\\\s*$\")),D(\"HYPHENRANGELOOSE\",\"^\\\\s*(\".concat(n[a.XRANGEPLAINLOOSE],\")\\\\s+-\\\\s+(\").concat(n[a.XRANGEPLAINLOOSE],\")\\\\s*$\")),D(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\"),D(\"GTE0\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\"),D(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\")}}),lD=I({\"node_modules/semver/internal/parse-options.js\"(e,r){q();var t=[\"includePrerelease\",\"loose\",\"rtl\"],s=c=>c?typeof c!=\"object\"?{loose:!0}:t.filter(n=>c[n]).reduce((n,a)=>(n[a]=!0,n),{}):{};r.exports=s}}),hD=I({\"node_modules/semver/internal/identifiers.js\"(e,r){q();var t=/^[0-9]+$/,s=(n,a)=>{let p=t.test(n),D=t.test(a);return p&&D&&(n=+n,a=+a),n===a?0:p&&!D?-1:D&&!p?1:ns(a,n);r.exports={compareIdentifiers:s,rcompareIdentifiers:c}}}),pD=I({\"node_modules/semver/classes/semver.js\"(e,r){q();var t=ds(),{MAX_LENGTH:s,MAX_SAFE_INTEGER:c}=Es(),{re:n,t:a}=DD(),p=lD(),{compareIdentifiers:D}=hD(),g=class{constructor(i,l){if(l=p(l),i instanceof g){if(i.loose===!!l.loose&&i.includePrerelease===!!l.includePrerelease)return i;i=i.version}else if(typeof i!=\"string\")throw new TypeError(\"Invalid Version: \".concat(i));if(i.length>s)throw new TypeError(\"version is longer than \".concat(s,\" characters\"));t(\"SemVer\",i,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let h=i.trim().match(l.loose?n[a.LOOSE]:n[a.FULL]);if(!h)throw new TypeError(\"Invalid Version: \".concat(i));if(this.raw=i,this.major=+h[1],this.minor=+h[2],this.patch=+h[3],this.major>c||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>c||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>c||this.patch<0)throw new TypeError(\"Invalid patch version\");h[4]?this.prerelease=h[4].split(\".\").map(C=>{if(/^[0-9]+$/.test(C)){let d=+C;if(d>=0&&d=0;)typeof this.prerelease[h]==\"number\"&&(this.prerelease[h]++,h=-2);h===-1&&this.prerelease.push(0)}l&&(D(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error(\"invalid increment argument: \".concat(i))}return this.format(),this.raw=this.version,this}};r.exports=g}}),Ur=I({\"node_modules/semver/functions/compare.js\"(e,r){q();var t=pD(),s=(c,n,a)=>new t(c,a).compare(new t(n,a));r.exports=s}}),fD=I({\"node_modules/semver/functions/lt.js\"(e,r){q();var t=Ur(),s=(c,n,a)=>t(c,n,a)<0;r.exports=s}}),dD=I({\"node_modules/semver/functions/gte.js\"(e,r){q();var t=Ur(),s=(c,n,a)=>t(c,n,a)>=0;r.exports=s}}),ED=I({\"src/utils/arrayify.js\"(e,r){\"use strict\";q(),r.exports=(t,s)=>Object.entries(t).map(c=>{let[n,a]=c;return Object.assign({[s]:n},a)})}}),CD=I({\"package.json\"(e,r){r.exports={version:\"2.7.1\"}}}),mD=I({\"node_modules/outdent/lib/index.js\"(e,r){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.outdent=void 0;function t(){for(var A=[],N=0;Ntypeof l==\"string\"||typeof l==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",since:\"1.16.0\",description:\"JavaScript\"},{value:\"babel-flow\",since:\"1.16.0\",description:\"Flow\"},{value:\"babel-ts\",since:\"2.0.0\",description:\"TypeScript\"},{value:\"typescript\",since:\"1.4.0\",description:\"TypeScript\"},{value:\"acorn\",since:\"2.6.0\",description:\"JavaScript\"},{value:\"espree\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"meriyah\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"css\",since:\"1.7.1\",description:\"CSS\"},{value:\"less\",since:\"1.7.1\",description:\"Less\"},{value:\"scss\",since:\"1.7.1\",description:\"SCSS\"},{value:\"json\",since:\"1.5.0\",description:\"JSON\"},{value:\"json5\",since:\"1.13.0\",description:\"JSON5\"},{value:\"json-stringify\",since:\"1.13.0\",description:\"JSON.stringify\"},{value:\"graphql\",since:\"1.5.0\",description:\"GraphQL\"},{value:\"markdown\",since:\"1.8.0\",description:\"Markdown\"},{value:\"mdx\",since:\"1.15.0\",description:\"MDX\"},{value:\"vue\",since:\"1.10.0\",description:\"Vue\"},{value:\"yaml\",since:\"1.14.0\",description:\"YAML\"},{value:\"glimmer\",since:\"2.3.0\",description:\"Ember / Handlebars\"},{value:\"html\",since:\"1.15.0\",description:\"HTML\"},{value:\"angular\",since:\"1.15.0\",description:\"Angular\"},{value:\"lwc\",since:\"1.17.0\",description:\"Lightning Web Components\"}]},plugins:{since:\"1.10.0\",type:\"path\",array:!0,default:[{value:[]}],category:D,description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin\",cliCategory:s},pluginSearchDirs:{since:\"1.13.0\",type:\"path\",array:!0,default:[{value:[]}],category:D,description:t(es||(es=Ee([`\n Custom directory that contains prettier plugins in node_modules subdirectory.\n Overrides default behavior when plugins are searched relatively to the location of Prettier.\n Multiple values are accepted.\n `]))),exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin-search-dir\",cliCategory:s},printWidth:{since:\"0.0.0\",category:D,type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:\"1.4.0\",category:g,type:\"int\",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(rs||(rs=Ee([`\n Format code ending at a given character offset (exclusive).\n The range will extend forwards to the end of the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:c},rangeStart:{since:\"1.4.0\",category:g,type:\"int\",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:t(ts||(ts=Ee([`\n Format code starting at a given character offset.\n The range will extend backwards to the start of the first line containing the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:c},requirePragma:{since:\"1.7.0\",category:g,type:\"boolean\",default:!1,description:t(us||(us=Ee([`\n Require either '@prettier' or '@format' to be present in the file's first docblock comment\n in order for it to be formatted.\n `]))),cliCategory:a},tabWidth:{type:\"int\",category:D,default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:\"1.0.0\",category:D,type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{since:\"2.1.0\",category:D,type:\"choice\",default:[{since:\"2.1.0\",value:\"auto\"}],description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};r.exports={CATEGORY_CONFIG:s,CATEGORY_EDITOR:c,CATEGORY_FORMAT:n,CATEGORY_OTHER:a,CATEGORY_OUTPUT:p,CATEGORY_GLOBAL:D,CATEGORY_SPECIAL:g,options:i}}}),FD=I({\"src/main/support.js\"(e,r){\"use strict\";q();var t={compare:Ur(),lt:fD(),gte:dD()},s=ED(),c=CD().version,n=gD().options;function a(){let{plugins:D=[],showUnreleased:g=!1,showDeprecated:i=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},h=c.split(\"-\",1)[0],C=D.flatMap(A=>A.languages||[]).filter(m),d=s(Object.assign({},...D.map(A=>{let{options:N}=A;return N}),n),\"name\").filter(A=>m(A)&&T(A)).sort((A,N)=>A.name===N.name?0:A.name{A=Object.assign({},A),Array.isArray(A.default)&&(A.default=A.default.length===1?A.default[0].value:A.default.filter(m).sort((R,$)=>t.compare($.since,R.since))[0].value),Array.isArray(A.choices)&&(A.choices=A.choices.filter(R=>m(R)&&T(R)),A.name===\"parser\"&&p(A,C,D));let N=Object.fromEntries(D.filter(R=>R.defaultOptions&&R.defaultOptions[A.name]!==void 0).map(R=>[R.name,R.defaultOptions[A.name]]));return Object.assign(Object.assign({},A),{},{pluginDefaults:N})});return{languages:C,options:d};function m(A){return g||!(\"since\"in A)||A.since&&t.gte(h,A.since)}function T(A){return i||!(\"deprecated\"in A)||A.deprecated&&t.lt(h,A.deprecated)}function B(A){if(l)return A;let{cliName:N,cliCategory:R,cliDescription:$}=A;return Qc(A,Yc)}}function p(D,g,i){let l=new Set(D.choices.map(h=>h.value));for(let h of g)if(h.parsers){for(let C of h.parsers)if(!l.has(C)){l.add(C);let d=i.find(T=>T.parsers&&T.parsers[C]),m=h.name;d&&d.name&&(m+=\" (plugin: \".concat(d.name,\")\")),D.choices.push({value:C,description:m})}}}r.exports={getSupportInfo:a}}}),AD=I({\"src/utils/is-non-empty-array.js\"(e,r){\"use strict\";q();function t(s){return Array.isArray(s)&&s.length>0}r.exports=t}});function vD(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(r,e?void 0:\"g\")}var _D=Ce({\"node_modules/strip-ansi/node_modules/ansi-regex/index.js\"(){q()}});function SD(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a `string`, got `\".concat(typeof e,\"`\"));return e.replace(vD(),\"\")}var yD=Ce({\"node_modules/strip-ansi/index.js\"(){q(),_D()}});function TD(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var BD=Ce({\"node_modules/is-fullwidth-code-point/index.js\"(){q()}}),bD=I({\"node_modules/emoji-regex/index.js\"(e,r){\"use strict\";q(),r.exports=function(){return/\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g}}}),Cs={};cs(Cs,{default:()=>wD});function wD(e){if(typeof e!=\"string\"||e.length===0||(e=SD(e),e.length===0))return 0;e=e.replace((0,ms.default)(),\" \");let r=0;for(let t=0;t=127&&s<=159||s>=768&&s<=879||(s>65535&&t++,r+=TD(s)?2:1)}return r}var ms,ND=Ce({\"node_modules/string-width/index.js\"(){q(),yD(),BD(),ms=tD(bD())}}),OD=I({\"src/utils/get-string-width.js\"(e,r){\"use strict\";q();var t=(ND(),ls(Cs)).default,s=/[^\\x20-\\x7F]/;function c(n){return n?s.test(n)?t(n):n.length:0}r.exports=c}}),Gr=I({\"src/utils/text/skip.js\"(e,r){\"use strict\";q();function t(p){return(D,g,i)=>{let l=i&&i.backwards;if(g===!1)return!1;let{length:h}=D,C=g;for(;C>=0&&Cv[v.length-2];function T(v){return(S,b,w)=>{let L=w&&w.backwards;if(b===!1)return!1;let{length:U}=S,V=b;for(;V>=0&&V2&&arguments[2]!==void 0?arguments[2]:{},w=D(v,b.backwards?S-1:S,b),L=C(v,w,b);return w!==L}function A(v,S,b){for(let w=S;w2&&arguments[2]!==void 0?arguments[2]:{};return D(v,b.backwards?S-1:S,b)!==S}function k(v,S){let b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,w=0;for(let L=b;Lue?U:L}return V}function o(v,S){let b=v.slice(1,-1),w=S.parser===\"json\"||S.parser===\"json5\"&&S.quoteProps===\"preserve\"&&!S.singleQuote?'\"':S.__isInHtmlAttribute?\"'\":u(b,S.singleQuote?\"'\":'\"').quote;return E(b,w,!(S.parser===\"css\"||S.parser===\"less\"||S.parser===\"scss\"||S.__embeddedInHtml))}function E(v,S,b){let w=S==='\"'?\"'\":'\"',L=/\\\\(.)|([\"'])/gs,U=v.replace(L,(V,Y,ue)=>Y===w?Y:ue===S?\"\\\\\"+ue:ue||(b&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(Y)?Y:\"\\\\\"+Y));return S+U+S}function f(v){return v.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(\\d)/,\"$1$2$3\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/,\"$1\").replace(/^([+-])?\\./,\"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/,\"$1\").replace(/\\.(?=e|$)/,\"\")}function F(v,S){let b=v.match(new RegExp(\"(\".concat(t(S),\")+\"),\"g\"));return b===null?0:b.reduce((w,L)=>Math.max(w,L.length/S.length),0)}function P(v,S){let b=v.match(new RegExp(\"(\".concat(t(S),\")+\"),\"g\"));if(b===null)return 0;let w=new Map,L=0;for(let U of b){let V=U.length/S.length;w.set(V,!0),V>L&&(L=V)}for(let U=1;U{let{name:U}=L;return U.toLowerCase()===v})||b.find(L=>{let{aliases:U}=L;return Array.isArray(U)&&U.includes(v)})||b.find(L=>{let{extensions:U}=L;return Array.isArray(U)&&U.includes(\".\".concat(v))});return w&&w.parsers[0]}function J(v){return v&&v.type===\"front-matter\"}function Z(v){let S=new WeakMap;return function(b){return S.has(b)||S.set(b,Symbol(v)),S.get(b)}}function ee(v){let S=v.type||v.kind||\"(unknown type)\",b=String(v.name||v.id&&(typeof v.id==\"object\"?v.id.name:v.id)||v.key&&(typeof v.key==\"object\"?v.key.name:v.key)||v.value&&(typeof v.value==\"object\"?\"\":String(v.value))||v.operator||\"\");return b.length>20&&(b=b.slice(0,19)+\"\\u2026\"),S+(b?\" \"+b:\"\")}r.exports={inferParserByLanguage:z,getStringWidth:a,getMaxContinuousCount:F,getMinNotPresentContinuousCount:P,getPenultimate:m,getLast:s,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:d,getNextNonSpaceNonCommentCharacterIndex:_,getNextNonSpaceNonCommentCharacter:O,skip:T,skipWhitespace:p,skipSpaces:D,skipToLineEnd:g,skipEverythingButNewLine:i,skipInlineComment:l,skipTrailingComment:h,skipNewline:C,isNextLineEmptyAfterIndex:R,isNextLineEmpty:$,isPreviousLineEmpty:N,hasNewline:B,hasNewlineInRange:A,hasSpaces:x,getAlignmentSize:k,getIndentSize:M,getPreferredQuote:u,printString:o,printNumber:f,makeString:E,addLeadingComment:W,addDanglingComment:X,addTrailingComment:H,isFrontMatterNode:J,isNonEmptyArray:n,createGroupIdMapper:Z}}}),RD=I({\"vendors/html-tag-names.json\"(e,r){r.exports={htmlTagNames:[\"a\",\"abbr\",\"acronym\",\"address\",\"applet\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"basefont\",\"bdi\",\"bdo\",\"bgsound\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"command\",\"content\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"image\",\"img\",\"input\",\"ins\",\"isindex\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"listing\",\"main\",\"map\",\"mark\",\"marquee\",\"math\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"multicol\",\"nav\",\"nextid\",\"nobr\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"plaintext\",\"pre\",\"progress\",\"q\",\"rb\",\"rbc\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"shadow\",\"slot\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"xmp\"]}}}),vs=I({\"src/language-html/utils/array-to-map.js\"(e,r){\"use strict\";q();function t(s){let c=Object.create(null);for(let n of s)c[n]=!0;return c}r.exports=t}}),xD=I({\"src/language-html/utils/html-tag-names.js\"(e,r){\"use strict\";q();var{htmlTagNames:t}=RD(),s=vs(),c=s(t);r.exports=c}}),PD=I({\"vendors/html-element-attributes.json\"(e,r){r.exports={htmlElementAttributes:{\"*\":[\"accesskey\",\"autocapitalize\",\"autofocus\",\"class\",\"contenteditable\",\"dir\",\"draggable\",\"enterkeyhint\",\"hidden\",\"id\",\"inputmode\",\"is\",\"itemid\",\"itemprop\",\"itemref\",\"itemscope\",\"itemtype\",\"lang\",\"nonce\",\"slot\",\"spellcheck\",\"style\",\"tabindex\",\"title\",\"translate\"],a:[\"charset\",\"coords\",\"download\",\"href\",\"hreflang\",\"name\",\"ping\",\"referrerpolicy\",\"rel\",\"rev\",\"shape\",\"target\",\"type\"],applet:[\"align\",\"alt\",\"archive\",\"code\",\"codebase\",\"height\",\"hspace\",\"name\",\"object\",\"vspace\",\"width\"],area:[\"alt\",\"coords\",\"download\",\"href\",\"hreflang\",\"nohref\",\"ping\",\"referrerpolicy\",\"rel\",\"shape\",\"target\",\"type\"],audio:[\"autoplay\",\"controls\",\"crossorigin\",\"loop\",\"muted\",\"preload\",\"src\"],base:[\"href\",\"target\"],basefont:[\"color\",\"face\",\"size\"],blockquote:[\"cite\"],body:[\"alink\",\"background\",\"bgcolor\",\"link\",\"text\",\"vlink\"],br:[\"clear\"],button:[\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"name\",\"type\",\"value\"],canvas:[\"height\",\"width\"],caption:[\"align\"],col:[\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"],colgroup:[\"align\",\"char\",\"charoff\",\"span\",\"valign\",\"width\"],data:[\"value\"],del:[\"cite\",\"datetime\"],details:[\"open\"],dialog:[\"open\"],dir:[\"compact\"],div:[\"align\"],dl:[\"compact\"],embed:[\"height\",\"src\",\"type\",\"width\"],fieldset:[\"disabled\",\"form\",\"name\"],font:[\"color\",\"face\",\"size\"],form:[\"accept\",\"accept-charset\",\"action\",\"autocomplete\",\"enctype\",\"method\",\"name\",\"novalidate\",\"target\"],frame:[\"frameborder\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"noresize\",\"scrolling\",\"src\"],frameset:[\"cols\",\"rows\"],h1:[\"align\"],h2:[\"align\"],h3:[\"align\"],h4:[\"align\"],h5:[\"align\"],h6:[\"align\"],head:[\"profile\"],hr:[\"align\",\"noshade\",\"size\",\"width\"],html:[\"manifest\",\"version\"],iframe:[\"align\",\"allow\",\"allowfullscreen\",\"allowpaymentrequest\",\"allowusermedia\",\"frameborder\",\"height\",\"loading\",\"longdesc\",\"marginheight\",\"marginwidth\",\"name\",\"referrerpolicy\",\"sandbox\",\"scrolling\",\"src\",\"srcdoc\",\"width\"],img:[\"align\",\"alt\",\"border\",\"crossorigin\",\"decoding\",\"height\",\"hspace\",\"ismap\",\"loading\",\"longdesc\",\"name\",\"referrerpolicy\",\"sizes\",\"src\",\"srcset\",\"usemap\",\"vspace\",\"width\"],input:[\"accept\",\"align\",\"alt\",\"autocomplete\",\"checked\",\"dirname\",\"disabled\",\"form\",\"formaction\",\"formenctype\",\"formmethod\",\"formnovalidate\",\"formtarget\",\"height\",\"ismap\",\"list\",\"max\",\"maxlength\",\"min\",\"minlength\",\"multiple\",\"name\",\"pattern\",\"placeholder\",\"readonly\",\"required\",\"size\",\"src\",\"step\",\"type\",\"usemap\",\"value\",\"width\"],ins:[\"cite\",\"datetime\"],isindex:[\"prompt\"],label:[\"for\",\"form\"],legend:[\"align\"],li:[\"type\",\"value\"],link:[\"as\",\"charset\",\"color\",\"crossorigin\",\"disabled\",\"href\",\"hreflang\",\"imagesizes\",\"imagesrcset\",\"integrity\",\"media\",\"referrerpolicy\",\"rel\",\"rev\",\"sizes\",\"target\",\"type\"],map:[\"name\"],menu:[\"compact\"],meta:[\"charset\",\"content\",\"http-equiv\",\"media\",\"name\",\"scheme\"],meter:[\"high\",\"low\",\"max\",\"min\",\"optimum\",\"value\"],object:[\"align\",\"archive\",\"border\",\"classid\",\"codebase\",\"codetype\",\"data\",\"declare\",\"form\",\"height\",\"hspace\",\"name\",\"standby\",\"type\",\"typemustmatch\",\"usemap\",\"vspace\",\"width\"],ol:[\"compact\",\"reversed\",\"start\",\"type\"],optgroup:[\"disabled\",\"label\"],option:[\"disabled\",\"label\",\"selected\",\"value\"],output:[\"for\",\"form\",\"name\"],p:[\"align\"],param:[\"name\",\"type\",\"value\",\"valuetype\"],pre:[\"width\"],progress:[\"max\",\"value\"],q:[\"cite\"],script:[\"async\",\"charset\",\"crossorigin\",\"defer\",\"integrity\",\"language\",\"nomodule\",\"referrerpolicy\",\"src\",\"type\"],select:[\"autocomplete\",\"disabled\",\"form\",\"multiple\",\"name\",\"required\",\"size\"],slot:[\"name\"],source:[\"height\",\"media\",\"sizes\",\"src\",\"srcset\",\"type\",\"width\"],style:[\"media\",\"type\"],table:[\"align\",\"bgcolor\",\"border\",\"cellpadding\",\"cellspacing\",\"frame\",\"rules\",\"summary\",\"width\"],tbody:[\"align\",\"char\",\"charoff\",\"valign\"],td:[\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"],textarea:[\"autocomplete\",\"cols\",\"dirname\",\"disabled\",\"form\",\"maxlength\",\"minlength\",\"name\",\"placeholder\",\"readonly\",\"required\",\"rows\",\"wrap\"],tfoot:[\"align\",\"char\",\"charoff\",\"valign\"],th:[\"abbr\",\"align\",\"axis\",\"bgcolor\",\"char\",\"charoff\",\"colspan\",\"headers\",\"height\",\"nowrap\",\"rowspan\",\"scope\",\"valign\",\"width\"],thead:[\"align\",\"char\",\"charoff\",\"valign\"],time:[\"datetime\"],tr:[\"align\",\"bgcolor\",\"char\",\"charoff\",\"valign\"],track:[\"default\",\"kind\",\"label\",\"src\",\"srclang\"],ul:[\"compact\",\"type\"],video:[\"autoplay\",\"controls\",\"crossorigin\",\"height\",\"loop\",\"muted\",\"playsinline\",\"poster\",\"preload\",\"src\",\"width\"]}}}}),kD=I({\"src/language-html/utils/map-object.js\"(e,r){\"use strict\";q();function t(s,c){let n=Object.create(null);for(let[a,p]of Object.entries(s))n[a]=c(p,a);return n}r.exports=t}}),LD=I({\"src/language-html/utils/html-elements-attributes.js\"(e,r){\"use strict\";q();var{htmlElementAttributes:t}=PD(),s=kD(),c=vs(),n=s(t,c);r.exports=n}}),MD=I({\"src/language-html/utils/is-unknown-namespace.js\"(e,r){\"use strict\";q();function t(s){return s.type===\"element\"&&!s.hasExplicitNamespace&&![\"html\",\"svg\"].includes(s.namespace)}r.exports=t}}),jD=I({\"src/language-html/pragma.js\"(e,r){\"use strict\";q();function t(c){return/^\\s*/.test(c)}function s(c){return`\n\n`+c.replace(/^\\s*\\n/,\"\")}r.exports={hasPragma:t,insertPragma:s}}}),$D=I({\"src/language-html/ast.js\"(e,r){\"use strict\";q();var t={attrs:!0,children:!0},s=new Set([\"parent\"]),c=class{constructor(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};for(let p of new Set([...s,...Object.keys(a)]))this.setProperty(p,a[p])}setProperty(a,p){if(this[a]!==p){if(a in t&&(p=p.map(D=>this.createChild(D))),!s.has(a)){this[a]=p;return}Object.defineProperty(this,a,{value:p,enumerable:!1,configurable:!0})}}map(a){let p;for(let D in t){let g=this[D];if(g){let i=n(g,l=>l.map(a));p!==g&&(p||(p=new c({parent:this.parent})),p.setProperty(D,i))}}if(p)for(let D in this)D in t||(p[D]=this[D]);return a(p||this)}walk(a){for(let p in t){let D=this[p];if(D)for(let g=0;g[a.fullName,a.value]))}};function n(a,p){let D=a.map(p);return D.some((g,i)=>g!==a[i])?D:a}r.exports={Node:c}}}),UD=I({\"src/language-html/conditional-comment.js\"(e,r){\"use strict\";q();var{ParseSourceSpan:t}=Te(),s=[{regex:/^(\\[if([^\\]]*)]>)(.*?){try{return[!0,g(C,m).children]}catch{let N={type:\"text\",value:C,sourceSpan:new t(m,T)};return[!1,[N]]}})();return{type:\"ieConditionalComment\",complete:B,children:A,condition:h.trim().replace(/\\s+/g,\" \"),sourceSpan:D.sourceSpan,startSourceSpan:new t(D.sourceSpan.start,m),endSourceSpan:new t(T,D.sourceSpan.end)}}function a(D,g,i){let[,l]=i;return{type:\"ieConditionalStartComment\",condition:l.trim().replace(/\\s+/g,\" \"),sourceSpan:D.sourceSpan}}function p(D){return{type:\"ieConditionalEndComment\",sourceSpan:D.sourceSpan}}r.exports={parseIeConditionalComment:c}}}),GD=I({\"src/language-html/loc.js\"(e,r){\"use strict\";q();function t(c){return c.sourceSpan.start.offset}function s(c){return c.sourceSpan.end.offset}r.exports={locStart:t,locEnd:s}}}),Ze=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/tags.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r;(function(D){D[D.RAW_TEXT=0]=\"RAW_TEXT\",D[D.ESCAPABLE_RAW_TEXT=1]=\"ESCAPABLE_RAW_TEXT\",D[D.PARSABLE_DATA=2]=\"PARSABLE_DATA\"})(r=e.TagContentType||(e.TagContentType={}));function t(D){if(D[0]!=\":\")return[null,D];let g=D.indexOf(\":\",1);if(g==-1)throw new Error('Unsupported format \"'.concat(D,'\" expecting \":namespace:name\"'));return[D.slice(1,g),D.slice(g+1)]}e.splitNsName=t;function s(D){return t(D)[1]===\"ng-container\"}e.isNgContainer=s;function c(D){return t(D)[1]===\"ng-content\"}e.isNgContent=c;function n(D){return t(D)[1]===\"ng-template\"}e.isNgTemplate=n;function a(D){return D===null?null:t(D)[0]}e.getNsPrefix=a;function p(D,g){return D?\":\".concat(D,\":\").concat(g):g}e.mergeNsAndName=p,e.NAMED_ENTITIES={Aacute:\"\\xC1\",aacute:\"\\xE1\",Abreve:\"\\u0102\",abreve:\"\\u0103\",ac:\"\\u223E\",acd:\"\\u223F\",acE:\"\\u223E\\u0333\",Acirc:\"\\xC2\",acirc:\"\\xE2\",acute:\"\\xB4\",Acy:\"\\u0410\",acy:\"\\u0430\",AElig:\"\\xC6\",aelig:\"\\xE6\",af:\"\\u2061\",Afr:\"\\u{1D504}\",afr:\"\\u{1D51E}\",Agrave:\"\\xC0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",Alpha:\"\\u0391\",alpha:\"\\u03B1\",Amacr:\"\\u0100\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",AMP:\"&\",amp:\"&\",And:\"\\u2A53\",and:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsd:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",Aogon:\"\\u0104\",aogon:\"\\u0105\",Aopf:\"\\u{1D538}\",aopf:\"\\u{1D552}\",ap:\"\\u2248\",apacir:\"\\u2A6F\",apE:\"\\u2A70\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",ApplyFunction:\"\\u2061\",approx:\"\\u2248\",approxeq:\"\\u224A\",Aring:\"\\xC5\",aring:\"\\xE5\",Ascr:\"\\u{1D49C}\",ascr:\"\\u{1D4B6}\",Assign:\"\\u2254\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",Atilde:\"\\xC3\",atilde:\"\\xE3\",Auml:\"\\xC4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",barvee:\"\\u22BD\",Barwed:\"\\u2306\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",Bcy:\"\\u0411\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",Because:\"\\u2235\",because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",Bfr:\"\\u{1D505}\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bNot:\"\\u2AED\",bnot:\"\\u2310\",Bopf:\"\\u{1D539}\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxbox:\"\\u29C9\",boxDL:\"\\u2557\",boxDl:\"\\u2556\",boxdL:\"\\u2555\",boxdl:\"\\u2510\",boxDR:\"\\u2554\",boxDr:\"\\u2553\",boxdR:\"\\u2552\",boxdr:\"\\u250C\",boxH:\"\\u2550\",boxh:\"\\u2500\",boxHD:\"\\u2566\",boxHd:\"\\u2564\",boxhD:\"\\u2565\",boxhd:\"\\u252C\",boxHU:\"\\u2569\",boxHu:\"\\u2567\",boxhU:\"\\u2568\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxUL:\"\\u255D\",boxUl:\"\\u255C\",boxuL:\"\\u255B\",boxul:\"\\u2518\",boxUR:\"\\u255A\",boxUr:\"\\u2559\",boxuR:\"\\u2558\",boxur:\"\\u2514\",boxV:\"\\u2551\",boxv:\"\\u2502\",boxVH:\"\\u256C\",boxVh:\"\\u256B\",boxvH:\"\\u256A\",boxvh:\"\\u253C\",boxVL:\"\\u2563\",boxVl:\"\\u2562\",boxvL:\"\\u2561\",boxvl:\"\\u2524\",boxVR:\"\\u2560\",boxVr:\"\\u255F\",boxvR:\"\\u255E\",boxvr:\"\\u251C\",bprime:\"\\u2035\",Breve:\"\\u02D8\",breve:\"\\u02D8\",brvbar:\"\\xA6\",Bscr:\"\\u212C\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",Bumpeq:\"\\u224E\",bumpeq:\"\\u224F\",Cacute:\"\\u0106\",cacute:\"\\u0107\",Cap:\"\\u22D2\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",CapitalDifferentialD:\"\\u2145\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",Cayleys:\"\\u212D\",ccaps:\"\\u2A4D\",Ccaron:\"\\u010C\",ccaron:\"\\u010D\",Ccedil:\"\\xC7\",ccedil:\"\\xE7\",Ccirc:\"\\u0108\",ccirc:\"\\u0109\",Cconint:\"\\u2230\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",Cdot:\"\\u010A\",cdot:\"\\u010B\",cedil:\"\\xB8\",Cedilla:\"\\xB8\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",CenterDot:\"\\xB7\",centerdot:\"\\xB7\",Cfr:\"\\u212D\",cfr:\"\\u{1D520}\",CHcy:\"\\u0427\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",Chi:\"\\u03A7\",chi:\"\\u03C7\",cir:\"\\u25CB\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",CircleDot:\"\\u2299\",circledR:\"\\xAE\",circledS:\"\\u24C8\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",cirE:\"\\u29C3\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",Colon:\"\\u2237\",colon:\":\",Colone:\"\\u2A74\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",Congruent:\"\\u2261\",Conint:\"\\u222F\",conint:\"\\u222E\",ContourIntegral:\"\\u222E\",Copf:\"\\u2102\",copf:\"\\u{1D554}\",coprod:\"\\u2210\",Coproduct:\"\\u2210\",COPY:\"\\xA9\",copy:\"\\xA9\",copysr:\"\\u2117\",CounterClockwiseContourIntegral:\"\\u2233\",crarr:\"\\u21B5\",Cross:\"\\u2A2F\",cross:\"\\u2717\",Cscr:\"\\u{1D49E}\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",Cup:\"\\u22D3\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",CupCap:\"\\u224D\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",Dagger:\"\\u2021\",dagger:\"\\u2020\",daleth:\"\\u2138\",Darr:\"\\u21A1\",dArr:\"\\u21D3\",darr:\"\\u2193\",dash:\"\\u2010\",Dashv:\"\\u2AE4\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",Dcaron:\"\\u010E\",dcaron:\"\\u010F\",Dcy:\"\\u0414\",dcy:\"\\u0434\",DD:\"\\u2145\",dd:\"\\u2146\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",DDotrahd:\"\\u2911\",ddotseq:\"\\u2A77\",deg:\"\\xB0\",Del:\"\\u2207\",Delta:\"\\u0394\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",Dfr:\"\\u{1D507}\",dfr:\"\\u{1D521}\",dHar:\"\\u2965\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",diam:\"\\u22C4\",Diamond:\"\\u22C4\",diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",DifferentialD:\"\\u2146\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",DJcy:\"\\u0402\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",Dopf:\"\\u{1D53B}\",dopf:\"\\u{1D555}\",Dot:\"\\xA8\",dot:\"\\u02D9\",DotDot:\"\\u20DC\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",DotEqual:\"\\u2250\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrow:\"\\u2193\",Downarrow:\"\\u21D3\",downarrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",Dscr:\"\\u{1D49F}\",dscr:\"\\u{1D4B9}\",DScy:\"\\u0405\",dscy:\"\\u0455\",dsol:\"\\u29F6\",Dstrok:\"\\u0110\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",DZcy:\"\\u040F\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",Eacute:\"\\xC9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",Ecaron:\"\\u011A\",ecaron:\"\\u011B\",ecir:\"\\u2256\",Ecirc:\"\\xCA\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",Ecy:\"\\u042D\",ecy:\"\\u044D\",eDDot:\"\\u2A77\",Edot:\"\\u0116\",eDot:\"\\u2251\",edot:\"\\u0117\",ee:\"\\u2147\",efDot:\"\\u2252\",Efr:\"\\u{1D508}\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",Egrave:\"\\xC8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",Element:\"\\u2208\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",Emacr:\"\\u0112\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",EmptySmallSquare:\"\\u25FB\",emptyv:\"\\u2205\",EmptyVerySmallSquare:\"\\u25AB\",emsp:\"\\u2003\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",ENG:\"\\u014A\",eng:\"\\u014B\",ensp:\"\\u2002\",Eogon:\"\\u0118\",eogon:\"\\u0119\",Eopf:\"\\u{1D53C}\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",Epsilon:\"\\u0395\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",Equal:\"\\u2A75\",equals:\"=\",EqualTilde:\"\\u2242\",equest:\"\\u225F\",Equilibrium:\"\\u21CC\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erarr:\"\\u2971\",erDot:\"\\u2253\",Escr:\"\\u2130\",escr:\"\\u212F\",esdot:\"\\u2250\",Esim:\"\\u2A73\",esim:\"\\u2242\",Eta:\"\\u0397\",eta:\"\\u03B7\",ETH:\"\\xD0\",eth:\"\\xF0\",Euml:\"\\xCB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",Exists:\"\\u2203\",expectation:\"\\u2130\",ExponentialE:\"\\u2147\",exponentiale:\"\\u2147\",fallingdotseq:\"\\u2252\",Fcy:\"\\u0424\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",Ffr:\"\\u{1D509}\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",Fopf:\"\\u{1D53D}\",fopf:\"\\u{1D557}\",ForAll:\"\\u2200\",forall:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",Fouriertrf:\"\\u2131\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",Fscr:\"\\u2131\",fscr:\"\\u{1D4BB}\",gacute:\"\\u01F5\",Gamma:\"\\u0393\",gamma:\"\\u03B3\",Gammad:\"\\u03DC\",gammad:\"\\u03DD\",gap:\"\\u2A86\",Gbreve:\"\\u011E\",gbreve:\"\\u011F\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",gcirc:\"\\u011D\",Gcy:\"\\u0413\",gcy:\"\\u0433\",Gdot:\"\\u0120\",gdot:\"\\u0121\",gE:\"\\u2267\",ge:\"\\u2265\",gEl:\"\\u2A8C\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",Gfr:\"\\u{1D50A}\",gfr:\"\\u{1D524}\",Gg:\"\\u22D9\",gg:\"\\u226B\",ggg:\"\\u22D9\",gimel:\"\\u2137\",GJcy:\"\\u0403\",gjcy:\"\\u0453\",gl:\"\\u2277\",gla:\"\\u2AA5\",glE:\"\\u2A92\",glj:\"\\u2AA4\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gnE:\"\\u2269\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",Gopf:\"\\u{1D53E}\",gopf:\"\\u{1D558}\",grave:\"`\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",GT:\">\",Gt:\"\\u226B\",gt:\">\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",Hacek:\"\\u02C7\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",HARDcy:\"\\u042A\",hardcy:\"\\u044A\",hArr:\"\\u21D4\",harr:\"\\u2194\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",Hat:\"^\",hbar:\"\\u210F\",Hcirc:\"\\u0124\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",Hfr:\"\\u210C\",hfr:\"\\u{1D525}\",HilbertSpace:\"\\u210B\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",Hopf:\"\\u210D\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",HorizontalLine:\"\\u2500\",Hscr:\"\\u210B\",hscr:\"\\u{1D4BD}\",hslash:\"\\u210F\",Hstrok:\"\\u0126\",hstrok:\"\\u0127\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",hybull:\"\\u2043\",hyphen:\"\\u2010\",Iacute:\"\\xCD\",iacute:\"\\xED\",ic:\"\\u2063\",Icirc:\"\\xCE\",icirc:\"\\xEE\",Icy:\"\\u0418\",icy:\"\\u0438\",Idot:\"\\u0130\",IEcy:\"\\u0415\",iecy:\"\\u0435\",iexcl:\"\\xA1\",iff:\"\\u21D4\",Ifr:\"\\u2111\",ifr:\"\\u{1D526}\",Igrave:\"\\xCC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",IJlig:\"\\u0132\",ijlig:\"\\u0133\",Im:\"\\u2111\",Imacr:\"\\u012A\",imacr:\"\\u012B\",image:\"\\u2111\",ImaginaryI:\"\\u2148\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",Implies:\"\\u21D2\",in:\"\\u2208\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",Int:\"\\u222C\",int:\"\\u222B\",intcal:\"\\u22BA\",integers:\"\\u2124\",Integral:\"\\u222B\",intercal:\"\\u22BA\",Intersection:\"\\u22C2\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",IOcy:\"\\u0401\",iocy:\"\\u0451\",Iogon:\"\\u012E\",iogon:\"\\u012F\",Iopf:\"\\u{1D540}\",iopf:\"\\u{1D55A}\",Iota:\"\\u0399\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iquest:\"\\xBF\",Iscr:\"\\u2110\",iscr:\"\\u{1D4BE}\",isin:\"\\u2208\",isindot:\"\\u22F5\",isinE:\"\\u22F9\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",Itilde:\"\\u0128\",itilde:\"\\u0129\",Iukcy:\"\\u0406\",iukcy:\"\\u0456\",Iuml:\"\\xCF\",iuml:\"\\xEF\",Jcirc:\"\\u0134\",jcirc:\"\\u0135\",Jcy:\"\\u0419\",jcy:\"\\u0439\",Jfr:\"\\u{1D50D}\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",Jopf:\"\\u{1D541}\",jopf:\"\\u{1D55B}\",Jscr:\"\\u{1D4A5}\",jscr:\"\\u{1D4BF}\",Jsercy:\"\\u0408\",jsercy:\"\\u0458\",Jukcy:\"\\u0404\",jukcy:\"\\u0454\",Kappa:\"\\u039A\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",Kcedil:\"\\u0136\",kcedil:\"\\u0137\",Kcy:\"\\u041A\",kcy:\"\\u043A\",Kfr:\"\\u{1D50E}\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",KHcy:\"\\u0425\",khcy:\"\\u0445\",KJcy:\"\\u040C\",kjcy:\"\\u045C\",Kopf:\"\\u{1D542}\",kopf:\"\\u{1D55C}\",Kscr:\"\\u{1D4A6}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",Lacute:\"\\u0139\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",Lambda:\"\\u039B\",lambda:\"\\u03BB\",Lang:\"\\u27EA\",lang:\"\\u27E8\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",Laplacetrf:\"\\u2112\",laquo:\"\\xAB\",Larr:\"\\u219E\",lArr:\"\\u21D0\",larr:\"\\u2190\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",lat:\"\\u2AAB\",lAtail:\"\\u291B\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lBarr:\"\\u290E\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",Lcaron:\"\\u013D\",lcaron:\"\\u013E\",Lcedil:\"\\u013B\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",Lcy:\"\\u041B\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",lE:\"\\u2266\",le:\"\\u2264\",LeftAngleBracket:\"\\u27E8\",LeftArrow:\"\\u2190\",Leftarrow:\"\\u21D0\",leftarrow:\"\\u2190\",LeftArrowBar:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",leftarrowtail:\"\\u21A2\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",LeftRightArrow:\"\\u2194\",Leftrightarrow:\"\\u21D4\",leftrightarrow:\"\\u2194\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",LeftTeeVector:\"\\u295A\",leftthreetimes:\"\\u22CB\",LeftTriangle:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",LeftVectorBar:\"\\u2952\",lEg:\"\\u2A8B\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",lessgtr:\"\\u2276\",LessLess:\"\\u2AA1\",lesssim:\"\\u2272\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",Lfr:\"\\u{1D50F}\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lHar:\"\\u2962\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",LJcy:\"\\u0409\",ljcy:\"\\u0459\",Ll:\"\\u22D8\",ll:\"\\u226A\",llarr:\"\\u21C7\",llcorner:\"\\u231E\",Lleftarrow:\"\\u21DA\",llhard:\"\\u296B\",lltri:\"\\u25FA\",Lmidot:\"\\u013F\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lnE:\"\\u2268\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",LongLeftArrow:\"\\u27F5\",Longleftarrow:\"\\u27F8\",longleftarrow:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",Longleftrightarrow:\"\\u27FA\",longleftrightarrow:\"\\u27F7\",longmapsto:\"\\u27FC\",LongRightArrow:\"\\u27F6\",Longrightarrow:\"\\u27F9\",longrightarrow:\"\\u27F6\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",Lopf:\"\\u{1D543}\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",Lscr:\"\\u2112\",lscr:\"\\u{1D4C1}\",Lsh:\"\\u21B0\",lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",Lstrok:\"\\u0141\",lstrok:\"\\u0142\",LT:\"<\",Lt:\"\\u226A\",lt:\"<\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",ltrPar:\"\\u2996\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",Map:\"\\u2905\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",Mcy:\"\\u041C\",mcy:\"\\u043C\",mdash:\"\\u2014\",mDDot:\"\\u223A\",measuredangle:\"\\u2221\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",mid:\"\\u2223\",midast:\"*\",midcir:\"\\u2AF0\",middot:\"\\xB7\",minus:\"\\u2212\",minusb:\"\\u229F\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",MinusPlus:\"\\u2213\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",Mopf:\"\\u{1D544}\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",Mscr:\"\\u2133\",mscr:\"\\u{1D4C2}\",mstpos:\"\\u223E\",Mu:\"\\u039C\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nabla:\"\\u2207\",Nacute:\"\\u0143\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natur:\"\\u266E\",natural:\"\\u266E\",naturals:\"\\u2115\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",Ncaron:\"\\u0147\",ncaron:\"\\u0148\",Ncedil:\"\\u0145\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",Ncy:\"\\u041D\",ncy:\"\\u043D\",ndash:\"\\u2013\",ne:\"\\u2260\",nearhk:\"\\u2924\",neArr:\"\\u21D7\",nearr:\"\\u2197\",nearrow:\"\\u2197\",nedot:\"\\u2250\\u0338\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,nexist:\"\\u2204\",nexists:\"\\u2204\",Nfr:\"\\u{1D511}\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",nGg:\"\\u22D9\\u0338\",ngsim:\"\\u2275\",nGt:\"\\u226B\\u20D2\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nGtv:\"\\u226B\\u0338\",nhArr:\"\\u21CE\",nharr:\"\\u21AE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",NJcy:\"\\u040A\",njcy:\"\\u045A\",nlArr:\"\\u21CD\",nlarr:\"\\u219A\",nldr:\"\\u2025\",nlE:\"\\u2266\\u0338\",nle:\"\\u2270\",nLeftarrow:\"\\u21CD\",nleftarrow:\"\\u219A\",nLeftrightarrow:\"\\u21CE\",nleftrightarrow:\"\\u21AE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nLl:\"\\u22D8\\u0338\",nlsim:\"\\u2274\",nLt:\"\\u226A\\u20D2\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nLtv:\"\\u226A\\u0338\",nmid:\"\\u2224\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",Nopf:\"\\u2115\",nopf:\"\\u{1D55F}\",Not:\"\\u2AEC\",not:\"\\xAC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",notin:\"\\u2209\",notindot:\"\\u22F5\\u0338\",notinE:\"\\u22F9\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangle:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",npar:\"\\u2226\",nparallel:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",npre:\"\\u2AAF\\u0338\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",nrArr:\"\\u21CF\",nrarr:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nRightarrow:\"\\u21CF\",nrightarrow:\"\\u219B\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",Nscr:\"\\u{1D4A9}\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",Ntilde:\"\\xD1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",Nu:\"\\u039D\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvap:\"\\u224D\\u20D2\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nvDash:\"\\u22AD\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvHarr:\"\\u2904\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwarhk:\"\\u2923\",nwArr:\"\\u21D6\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",Oacute:\"\\xD3\",oacute:\"\\xF3\",oast:\"\\u229B\",ocir:\"\\u229A\",Ocirc:\"\\xD4\",ocirc:\"\\xF4\",Ocy:\"\\u041E\",ocy:\"\\u043E\",odash:\"\\u229D\",Odblac:\"\\u0150\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",OElig:\"\\u0152\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",Ofr:\"\\u{1D512}\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",Ograve:\"\\xD2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",Omacr:\"\\u014C\",omacr:\"\\u014D\",Omega:\"\\u03A9\",omega:\"\\u03C9\",Omicron:\"\\u039F\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",Oopf:\"\\u{1D546}\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",operp:\"\\u29B9\",oplus:\"\\u2295\",Or:\"\\u2A54\",or:\"\\u2228\",orarr:\"\\u21BB\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oS:\"\\u24C8\",Oscr:\"\\u{1D4AA}\",oscr:\"\\u2134\",Oslash:\"\\xD8\",oslash:\"\\xF8\",osol:\"\\u2298\",Otilde:\"\\xD5\",otilde:\"\\xF5\",Otimes:\"\\u2A37\",otimes:\"\\u2297\",otimesas:\"\\u2A36\",Ouml:\"\\xD6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",par:\"\\u2225\",para:\"\\xB6\",parallel:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",Pfr:\"\\u{1D513}\",pfr:\"\\u{1D52D}\",Phi:\"\\u03A6\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",Pi:\"\\u03A0\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plus:\"+\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",PlusMinus:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",Poincareplane:\"\\u210C\",pointint:\"\\u2A15\",Popf:\"\\u2119\",popf:\"\\u{1D561}\",pound:\"\\xA3\",Pr:\"\\u2ABB\",pr:\"\\u227A\",prap:\"\\u2AB7\",prcue:\"\\u227C\",prE:\"\\u2AB3\",pre:\"\\u2AAF\",prec:\"\\u227A\",precapprox:\"\\u2AB7\",preccurlyeq:\"\\u227C\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",precsim:\"\\u227E\",Prime:\"\\u2033\",prime:\"\\u2032\",primes:\"\\u2119\",prnap:\"\\u2AB9\",prnE:\"\\u2AB5\",prnsim:\"\\u22E8\",prod:\"\\u220F\",Product:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",Proportion:\"\\u2237\",Proportional:\"\\u221D\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",Pscr:\"\\u{1D4AB}\",pscr:\"\\u{1D4C5}\",Psi:\"\\u03A8\",psi:\"\\u03C8\",puncsp:\"\\u2008\",Qfr:\"\\u{1D514}\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",Qopf:\"\\u211A\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",Qscr:\"\\u{1D4AC}\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",QUOT:'\"',quot:'\"',rAarr:\"\\u21DB\",race:\"\\u223D\\u0331\",Racute:\"\\u0154\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",Rang:\"\\u27EB\",rang:\"\\u27E9\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raquo:\"\\xBB\",Rarr:\"\\u21A0\",rArr:\"\\u21D2\",rarr:\"\\u2192\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",Rarrtl:\"\\u2916\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",rAtail:\"\\u291C\",ratail:\"\\u291A\",ratio:\"\\u2236\",rationals:\"\\u211A\",RBarr:\"\\u2910\",rBarr:\"\\u290F\",rbarr:\"\\u290D\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",Rcaron:\"\\u0158\",rcaron:\"\\u0159\",Rcedil:\"\\u0156\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",Rcy:\"\\u0420\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",Re:\"\\u211C\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",rect:\"\\u25AD\",REG:\"\\xAE\",reg:\"\\xAE\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",Rfr:\"\\u211C\",rfr:\"\\u{1D52F}\",rHar:\"\\u2964\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",Rho:\"\\u03A1\",rho:\"\\u03C1\",rhov:\"\\u03F1\",RightAngleBracket:\"\\u27E9\",RightArrow:\"\\u2192\",Rightarrow:\"\\u21D2\",rightarrow:\"\\u2192\",RightArrowBar:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",rightarrowtail:\"\\u21A3\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",RightTee:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",RightTeeVector:\"\\u295B\",rightthreetimes:\"\\u22CC\",RightTriangle:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",RightVectorBar:\"\\u2953\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",Ropf:\"\\u211D\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",RoundImplies:\"\\u2970\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",Rrightarrow:\"\\u21DB\",rsaquo:\"\\u203A\",Rscr:\"\\u211B\",rscr:\"\\u{1D4C7}\",Rsh:\"\\u21B1\",rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",RuleDelayed:\"\\u29F4\",ruluhar:\"\\u2968\",rx:\"\\u211E\",Sacute:\"\\u015A\",sacute:\"\\u015B\",sbquo:\"\\u201A\",Sc:\"\\u2ABC\",sc:\"\\u227B\",scap:\"\\u2AB8\",Scaron:\"\\u0160\",scaron:\"\\u0161\",sccue:\"\\u227D\",scE:\"\\u2AB4\",sce:\"\\u2AB0\",Scedil:\"\\u015E\",scedil:\"\\u015F\",Scirc:\"\\u015C\",scirc:\"\\u015D\",scnap:\"\\u2ABA\",scnE:\"\\u2AB6\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",Scy:\"\\u0421\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdotb:\"\\u22A1\",sdote:\"\\u2A66\",searhk:\"\\u2925\",seArr:\"\\u21D8\",searr:\"\\u2198\",searrow:\"\\u2198\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",Sfr:\"\\u{1D516}\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",SHCHcy:\"\\u0429\",shchcy:\"\\u0449\",SHcy:\"\\u0428\",shcy:\"\\u0448\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",shy:\"\\xAD\",Sigma:\"\\u03A3\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",SmallCircle:\"\\u2218\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",SOFTcy:\"\\u042C\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",Sopf:\"\\u{1D54A}\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",Sqrt:\"\\u221A\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",squ:\"\\u25A1\",Square:\"\\u25A1\",square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",squarf:\"\\u25AA\",squf:\"\\u25AA\",srarr:\"\\u2192\",Sscr:\"\\u{1D4AE}\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",Star:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",Sub:\"\\u22D0\",sub:\"\\u2282\",subdot:\"\\u2ABD\",subE:\"\\u2AC5\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",Subset:\"\\u22D0\",subset:\"\\u2282\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",SubsetEqual:\"\\u2286\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succ:\"\\u227B\",succapprox:\"\\u2AB8\",succcurlyeq:\"\\u227D\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",SuchThat:\"\\u220B\",Sum:\"\\u2211\",sum:\"\\u2211\",sung:\"\\u266A\",Sup:\"\\u22D1\",sup:\"\\u2283\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supE:\"\\u2AC6\",supe:\"\\u2287\",supedot:\"\\u2AC4\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",Supset:\"\\u22D1\",supset:\"\\u2283\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swarhk:\"\\u2926\",swArr:\"\\u21D9\",swarr:\"\\u2199\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szlig:\"\\xDF\",Tab:\"\t\",target:\"\\u2316\",Tau:\"\\u03A4\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",Tcaron:\"\\u0164\",tcaron:\"\\u0165\",Tcedil:\"\\u0162\",tcedil:\"\\u0163\",Tcy:\"\\u0422\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",Tfr:\"\\u{1D517}\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",Therefore:\"\\u2234\",therefore:\"\\u2234\",Theta:\"\\u0398\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",ThickSpace:\"\\u205F\\u200A\",thinsp:\"\\u2009\",ThinSpace:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",THORN:\"\\xDE\",thorn:\"\\xFE\",Tilde:\"\\u223C\",tilde:\"\\u02DC\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",times:\"\\xD7\",timesb:\"\\u22A0\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",top:\"\\u22A4\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",Topf:\"\\u{1D54B}\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",TRADE:\"\\u2122\",trade:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",TripleDot:\"\\u20DB\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",Tscr:\"\\u{1D4AF}\",tscr:\"\\u{1D4C9}\",TScy:\"\\u0426\",tscy:\"\\u0446\",TSHcy:\"\\u040B\",tshcy:\"\\u045B\",Tstrok:\"\\u0166\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",Uacute:\"\\xDA\",uacute:\"\\xFA\",Uarr:\"\\u219F\",uArr:\"\\u21D1\",uarr:\"\\u2191\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",ubrcy:\"\\u045E\",Ubreve:\"\\u016C\",ubreve:\"\\u016D\",Ucirc:\"\\xDB\",ucirc:\"\\xFB\",Ucy:\"\\u0423\",ucy:\"\\u0443\",udarr:\"\\u21C5\",Udblac:\"\\u0170\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",Ufr:\"\\u{1D518}\",ufr:\"\\u{1D532}\",Ugrave:\"\\xD9\",ugrave:\"\\xF9\",uHar:\"\\u2963\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",Umacr:\"\\u016A\",umacr:\"\\u016B\",uml:\"\\xA8\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",uogon:\"\\u0173\",Uopf:\"\\u{1D54C}\",uopf:\"\\u{1D566}\",UpArrow:\"\\u2191\",Uparrow:\"\\u21D1\",uparrow:\"\\u2191\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",UpDownArrow:\"\\u2195\",Updownarrow:\"\\u21D5\",updownarrow:\"\\u2195\",UpEquilibrium:\"\\u296E\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",Upsi:\"\\u03D2\",upsi:\"\\u03C5\",upsih:\"\\u03D2\",Upsilon:\"\\u03A5\",upsilon:\"\\u03C5\",UpTee:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",Uring:\"\\u016E\",uring:\"\\u016F\",urtri:\"\\u25F9\",Uscr:\"\\u{1D4B0}\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",Utilde:\"\\u0168\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",Uuml:\"\\xDC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",vArr:\"\\u21D5\",varr:\"\\u2195\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",Vbar:\"\\u2AEB\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",Vcy:\"\\u0412\",vcy:\"\\u0432\",VDash:\"\\u22AB\",Vdash:\"\\u22A9\",vDash:\"\\u22A8\",vdash:\"\\u22A2\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",vee:\"\\u2228\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",Verbar:\"\\u2016\",verbar:\"|\",Vert:\"\\u2016\",vert:\"|\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",Vopf:\"\\u{1D54D}\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",Vscr:\"\\u{1D4B1}\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",Vvdash:\"\\u22AA\",vzigzag:\"\\u299A\",Wcirc:\"\\u0174\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",Wedge:\"\\u22C0\",wedge:\"\\u2227\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",Wfr:\"\\u{1D51A}\",wfr:\"\\u{1D534}\",Wopf:\"\\u{1D54E}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",Wscr:\"\\u{1D4B2}\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",Xfr:\"\\u{1D51B}\",xfr:\"\\u{1D535}\",xhArr:\"\\u27FA\",xharr:\"\\u27F7\",Xi:\"\\u039E\",xi:\"\\u03BE\",xlArr:\"\\u27F8\",xlarr:\"\\u27F5\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",Xopf:\"\\u{1D54F}\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrArr:\"\\u27F9\",xrarr:\"\\u27F6\",Xscr:\"\\u{1D4B3}\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",Yacute:\"\\xDD\",yacute:\"\\xFD\",YAcy:\"\\u042F\",yacy:\"\\u044F\",Ycirc:\"\\u0176\",ycirc:\"\\u0177\",Ycy:\"\\u042B\",ycy:\"\\u044B\",yen:\"\\xA5\",Yfr:\"\\u{1D51C}\",yfr:\"\\u{1D536}\",YIcy:\"\\u0407\",yicy:\"\\u0457\",Yopf:\"\\u{1D550}\",yopf:\"\\u{1D56A}\",Yscr:\"\\u{1D4B4}\",yscr:\"\\u{1D4CE}\",YUcy:\"\\u042E\",yucy:\"\\u044E\",Yuml:\"\\u0178\",yuml:\"\\xFF\",Zacute:\"\\u0179\",zacute:\"\\u017A\",Zcaron:\"\\u017D\",zcaron:\"\\u017E\",Zcy:\"\\u0417\",zcy:\"\\u0437\",Zdot:\"\\u017B\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",zeta:\"\\u03B6\",Zfr:\"\\u2128\",zfr:\"\\u{1D537}\",ZHcy:\"\\u0416\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",Zopf:\"\\u2124\",zopf:\"\\u{1D56B}\",Zscr:\"\\u{1D4B5}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},e.NGSP_UNICODE=\"\\uE500\",e.NAMED_ENTITIES.ngsp=e.NGSP_UNICODE}}),_s=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_tags.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=Ze(),t=class{constructor(){let{closedByChildren:a,implicitNamespacePrefix:p,contentType:D=r.TagContentType.PARSABLE_DATA,closedByParent:g=!1,isVoid:i=!1,ignoreFirstLf:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,a&&a.length>0&&a.forEach(h=>this.closedByChildren[h]=!0),this.isVoid=i,this.closedByParent=g||i,this.implicitNamespacePrefix=p||null,this.contentType=D,this.ignoreFirstLf=l}isClosedByChild(a){return this.isVoid||a.toLowerCase()in this.closedByChildren}};e.HtmlTagDefinition=t;var s,c;function n(a){return c||(s=new t,c={base:new t({isVoid:!0}),meta:new t({isVoid:!0}),area:new t({isVoid:!0}),embed:new t({isVoid:!0}),link:new t({isVoid:!0}),img:new t({isVoid:!0}),input:new t({isVoid:!0}),param:new t({isVoid:!0}),hr:new t({isVoid:!0}),br:new t({isVoid:!0}),source:new t({isVoid:!0}),track:new t({isVoid:!0}),wbr:new t({isVoid:!0}),p:new t({closedByChildren:[\"address\",\"article\",\"aside\",\"blockquote\",\"div\",\"dl\",\"fieldset\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"main\",\"nav\",\"ol\",\"p\",\"pre\",\"section\",\"table\",\"ul\"],closedByParent:!0}),thead:new t({closedByChildren:[\"tbody\",\"tfoot\"]}),tbody:new t({closedByChildren:[\"tbody\",\"tfoot\"],closedByParent:!0}),tfoot:new t({closedByChildren:[\"tbody\"],closedByParent:!0}),tr:new t({closedByChildren:[\"tr\"],closedByParent:!0}),td:new t({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),th:new t({closedByChildren:[\"td\",\"th\"],closedByParent:!0}),col:new t({isVoid:!0}),svg:new t({implicitNamespacePrefix:\"svg\"}),math:new t({implicitNamespacePrefix:\"math\"}),li:new t({closedByChildren:[\"li\"],closedByParent:!0}),dt:new t({closedByChildren:[\"dt\",\"dd\"]}),dd:new t({closedByChildren:[\"dt\",\"dd\"],closedByParent:!0}),rb:new t({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rt:new t({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),rtc:new t({closedByChildren:[\"rb\",\"rtc\",\"rp\"],closedByParent:!0}),rp:new t({closedByChildren:[\"rb\",\"rt\",\"rtc\",\"rp\"],closedByParent:!0}),optgroup:new t({closedByChildren:[\"optgroup\"],closedByParent:!0}),option:new t({closedByChildren:[\"option\",\"optgroup\"],closedByParent:!0}),pre:new t({ignoreFirstLf:!0}),listing:new t({ignoreFirstLf:!0}),style:new t({contentType:r.TagContentType.RAW_TEXT}),script:new t({contentType:r.TagContentType.RAW_TEXT}),title:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT}),textarea:new t({contentType:r.TagContentType.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),c[a]||s}e.getHtmlTagDefinition=n}}),VD=I({\"node_modules/angular-html-parser/lib/compiler/src/ast_path.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=class{constructor(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1;this.path=t,this.position=s}get empty(){return!this.path||!this.path.length}get head(){return this.path[0]}get tail(){return this.path[this.path.length-1]}parentOf(t){return t&&this.path[this.path.indexOf(t)-1]}childOf(t){return this.path[this.path.indexOf(t)+1]}first(t){for(let s=this.path.length-1;s>=0;s--){let c=this.path[s];if(c instanceof t)return c}}push(t){this.path.push(t)}pop(){return this.path.pop()}};e.AstPath=r}}),Ss=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/ast.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=VD(),t=class{constructor(d,m,T){this.value=d,this.sourceSpan=m,this.i18n=T,this.type=\"text\"}visit(d,m){return d.visitText(this,m)}};e.Text=t;var s=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type=\"cdata\"}visit(d,m){return d.visitCdata(this,m)}};e.CDATA=s;var c=class{constructor(d,m,T,B,A,N){this.switchValue=d,this.type=m,this.cases=T,this.sourceSpan=B,this.switchValueSourceSpan=A,this.i18n=N}visit(d,m){return d.visitExpansion(this,m)}};e.Expansion=c;var n=class{constructor(d,m,T,B,A){this.value=d,this.expression=m,this.sourceSpan=T,this.valueSourceSpan=B,this.expSourceSpan=A}visit(d,m){return d.visitExpansionCase(this,m)}};e.ExpansionCase=n;var a=class{constructor(d,m,T){let B=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null;this.name=d,this.value=m,this.sourceSpan=T,this.valueSpan=B,this.nameSpan=A,this.i18n=N,this.type=\"attribute\"}visit(d,m){return d.visitAttribute(this,m)}};e.Attribute=a;var p=class{constructor(d,m,T,B){let A=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:null,R=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,$=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null;this.name=d,this.attrs=m,this.children=T,this.sourceSpan=B,this.startSourceSpan=A,this.endSourceSpan=N,this.nameSpan=R,this.i18n=$,this.type=\"element\"}visit(d,m){return d.visitElement(this,m)}};e.Element=p;var D=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type=\"comment\"}visit(d,m){return d.visitComment(this,m)}};e.Comment=D;var g=class{constructor(d,m){this.value=d,this.sourceSpan=m,this.type=\"docType\"}visit(d,m){return d.visitDocType(this,m)}};e.DocType=g;function i(d,m){let T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,B=[],A=d.visit?N=>d.visit(N,T)||N.visit(d,T):N=>N.visit(d,T);return m.forEach(N=>{let R=A(N);R&&B.push(R)}),B}e.visitAll=i;var l=class{constructor(){}visitElement(d,m){this.visitChildren(m,T=>{T(d.attrs),T(d.children)})}visitAttribute(d,m){}visitText(d,m){}visitCdata(d,m){}visitComment(d,m){}visitDocType(d,m){}visitExpansion(d,m){return this.visitChildren(m,T=>{T(d.cases)})}visitExpansionCase(d,m){}visitChildren(d,m){let T=[],B=this;function A(N){N&&T.push(i(B,N,d))}return m(A),Array.prototype.concat.apply([],T)}};e.RecursiveVisitor=l;function h(d){let m=d.sourceSpan.start.offset,T=d.sourceSpan.end.offset;return d instanceof p&&(d.endSourceSpan?T=d.endSourceSpan.end.offset:d.children&&d.children.length&&(T=h(d.children[d.children.length-1]).end)),{start:m,end:T}}function C(d,m){let T=[],B=new class extends l{visit(A,N){let R=h(A);if(R.start<=m&&m]/,/^[{}]$/,/&(#|[a-z])/i,/^\\/\\//];function s(c,n){if(n!=null&&!(Array.isArray(n)&&n.length==2))throw new Error(\"Expected '\".concat(c,\"' to be an array, [start, end].\"));if(n!=null){let a=n[0],p=n[1];t.forEach(D=>{if(D.test(a)||D.test(p))throw new Error(\"['\".concat(a,\"', '\").concat(p,\"'] contains unusable interpolation symbol.\"))})}}e.assertInterpolationSymbols=s}}),HD=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/interpolation_config.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=XD(),t=class{constructor(s,c){this.start=s,this.end=c}static fromArray(s){return s?(r.assertInterpolationSymbols(\"interpolation\",s),new t(s[0],s[1])):e.DEFAULT_INTERPOLATION_CONFIG}};e.InterpolationConfig=t,e.DEFAULT_INTERPOLATION_CONFIG=new t(\"{{\",\"}}\")}}),zD=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/lexer.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=hs(),t=Te(),s=HD(),c=Ze(),n;(function(u){u[u.TAG_OPEN_START=0]=\"TAG_OPEN_START\",u[u.TAG_OPEN_END=1]=\"TAG_OPEN_END\",u[u.TAG_OPEN_END_VOID=2]=\"TAG_OPEN_END_VOID\",u[u.TAG_CLOSE=3]=\"TAG_CLOSE\",u[u.TEXT=4]=\"TEXT\",u[u.ESCAPABLE_RAW_TEXT=5]=\"ESCAPABLE_RAW_TEXT\",u[u.RAW_TEXT=6]=\"RAW_TEXT\",u[u.COMMENT_START=7]=\"COMMENT_START\",u[u.COMMENT_END=8]=\"COMMENT_END\",u[u.CDATA_START=9]=\"CDATA_START\",u[u.CDATA_END=10]=\"CDATA_END\",u[u.ATTR_NAME=11]=\"ATTR_NAME\",u[u.ATTR_QUOTE=12]=\"ATTR_QUOTE\",u[u.ATTR_VALUE=13]=\"ATTR_VALUE\",u[u.DOC_TYPE_START=14]=\"DOC_TYPE_START\",u[u.DOC_TYPE_END=15]=\"DOC_TYPE_END\",u[u.EXPANSION_FORM_START=16]=\"EXPANSION_FORM_START\",u[u.EXPANSION_CASE_VALUE=17]=\"EXPANSION_CASE_VALUE\",u[u.EXPANSION_CASE_EXP_START=18]=\"EXPANSION_CASE_EXP_START\",u[u.EXPANSION_CASE_EXP_END=19]=\"EXPANSION_CASE_EXP_END\",u[u.EXPANSION_FORM_END=20]=\"EXPANSION_FORM_END\",u[u.EOF=21]=\"EOF\"})(n=e.TokenType||(e.TokenType={}));var a=class{constructor(u,o,E){this.type=u,this.parts=o,this.sourceSpan=E}};e.Token=a;var p=class extends t.ParseError{constructor(u,o,E){super(E,u),this.tokenType=o}};e.TokenError=p;var D=class{constructor(u,o){this.tokens=u,this.errors=o}};e.TokenizeResult=D;function g(u,o,E){let f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return new d(new t.ParseSourceFile(u,o),E,f).tokenize()}e.tokenize=g;var i=/\\r\\n?/g;function l(u){let o=u===r.$EOF?\"EOF\":String.fromCharCode(u);return'Unexpected character \"'.concat(o,'\"')}function h(u){return'Unknown entity \"'.concat(u,'\" - use the \"&#;\" or \"&#x;\" syntax')}var C=class{constructor(u){this.error=u}},d=class{constructor(u,o,E){this._getTagContentType=o,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this._tokenizeIcu=E.tokenizeExpansionForms||!1,this._interpolationConfig=E.interpolationConfig||s.DEFAULT_INTERPOLATION_CONFIG,this._leadingTriviaCodePoints=E.leadingTriviaChars&&E.leadingTriviaChars.map(F=>F.codePointAt(0)||0),this._canSelfClose=E.canSelfClose||!1,this._allowHtmComponentClosingTags=E.allowHtmComponentClosingTags||!1;let f=E.range||{endPos:u.content.length,startPos:0,startLine:0,startCol:0};this._cursor=E.escapedString?new k(u,f):new x(u,f);try{this._cursor.init()}catch(F){this.handleError(F)}}_processCarriageReturns(u){return u.replace(i,`\n`)}tokenize(){for(;this._cursor.peek()!==r.$EOF;){let u=this._cursor.clone();try{if(this._attemptCharCode(r.$LT))if(this._attemptCharCode(r.$BANG))this._attemptStr(\"[CDATA[\")?this._consumeCdata(u):this._attemptStr(\"--\")?this._consumeComment(u):this._attemptStrCaseInsensitive(\"doctype\")?this._consumeDocType(u):this._consumeBogusComment(u);else if(this._attemptCharCode(r.$SLASH))this._consumeTagClose(u);else{let o=this._cursor.clone();this._attemptCharCode(r.$QUESTION)?(this._cursor=o,this._consumeBogusComment(u)):this._consumeTagOpen(u)}else this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(o){this.handleError(o)}}return this._beginToken(n.EOF),this._endToken([]),new D(O(this.tokens),this.errors)}_tokenizeExpansionForm(){if(this.isExpansionFormStart())return this._consumeExpansionFormStart(),!0;if(R(this._cursor.peek())&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._cursor.peek()===r.$RBRACE){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_beginToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();this._currentTokenStart=o,this._currentTokenType=u}_endToken(u){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._cursor.clone();if(this._currentTokenStart===null)throw new p(\"Programming error - attempted to end a token when there was no start to the token\",this._currentTokenType,this._cursor.getSpan(o));if(this._currentTokenType===null)throw new p(\"Programming error - attempted to end a token which has no token type\",null,this._cursor.getSpan(this._currentTokenStart));let E=new a(this._currentTokenType,u,this._cursor.getSpan(this._currentTokenStart,this._leadingTriviaCodePoints));return this.tokens.push(E),this._currentTokenStart=null,this._currentTokenType=null,E}_createError(u,o){this._isInExpansionForm()&&(u+=` (Do you have an unescaped \"{\" in your template? Use \"{{ '{' }}\") to escape it.)`);let E=new p(u,this._currentTokenType,o);return this._currentTokenStart=null,this._currentTokenType=null,new C(E)}handleError(u){if(u instanceof M&&(u=this._createError(u.msg,this._cursor.getSpan(u.cursor))),u instanceof C)this.errors.push(u.error);else throw u}_attemptCharCode(u){return this._cursor.peek()===u?(this._cursor.advance(),!0):!1}_attemptCharCodeCaseInsensitive(u){return $(this._cursor.peek(),u)?(this._cursor.advance(),!0):!1}_requireCharCode(u){let o=this._cursor.clone();if(!this._attemptCharCode(u))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(o))}_attemptStr(u){let o=u.length;if(this._cursor.charsLeft()this._attemptStr(\"-->\")),this._beginToken(n.COMMENT_END),this._requireStr(\"-->\"),this._endToken([])}_consumeBogusComment(u){this._beginToken(n.COMMENT_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.COMMENT_END),this._cursor.advance(),this._endToken([])}_consumeCdata(u){this._beginToken(n.CDATA_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._attemptStr(\"]]>\")),this._beginToken(n.CDATA_END),this._requireStr(\"]]>\"),this._endToken([])}_consumeDocType(u){this._beginToken(n.DOC_TYPE_START,u),this._endToken([]),this._consumeRawText(!1,()=>this._cursor.peek()===r.$GT),this._beginToken(n.DOC_TYPE_END),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){let u=this._cursor.clone(),o=\"\";for(;this._cursor.peek()!==r.$COLON&&!B(this._cursor.peek());)this._cursor.advance();let E;this._cursor.peek()===r.$COLON?(o=this._cursor.getChars(u),this._cursor.advance(),E=this._cursor.clone()):E=u,this._requireCharCodeUntilFn(T,o===\"\"?0:1);let f=this._cursor.getChars(E);return[o,f]}_consumeTagOpen(u){let o,E,f,F=this.tokens.length,P=this._cursor.clone(),j=[];try{if(!r.isAsciiLetter(this._cursor.peek()))throw this._createError(l(this._cursor.peek()),this._cursor.getSpan(u));for(f=this._consumeTagOpenStart(u),E=f.parts[0],o=f.parts[1],this._attemptCharCodeUntilFn(m);this._cursor.peek()!==r.$SLASH&&this._cursor.peek()!==r.$GT;){let[X,H]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$EQ)){this._attemptCharCodeUntilFn(m);let z=this._consumeAttributeValue();j.push({prefix:X,name:H,value:z})}else j.push({prefix:X,name:H});this._attemptCharCodeUntilFn(m)}this._consumeTagOpenEnd()}catch(X){if(X instanceof C){this._cursor=P,f&&(this.tokens.length=F),this._beginToken(n.TEXT,u),this._endToken([\"<\"]);return}throw X}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===n.TAG_OPEN_END_VOID)return;let W=this._getTagContentType(o,E,this._fullNameStack.length>0,j);this._handleFullNameStackForTagOpen(E,o),W===c.TagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(E,o,!1):W===c.TagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(E,o,!0)}_consumeRawTextWithTagClose(u,o,E){let f=this._consumeRawText(E,()=>!this._attemptCharCode(r.$LT)||!this._attemptCharCode(r.$SLASH)||(this._attemptCharCodeUntilFn(m),!this._attemptStrCaseInsensitive(u?\"\".concat(u,\":\").concat(o):o))?!1:(this._attemptCharCodeUntilFn(m),this._attemptCharCode(r.$GT)));this._beginToken(n.TAG_CLOSE),this._requireCharCodeUntilFn(F=>F===r.$GT,3),this._cursor.advance(),this._endToken([u,o]),this._handleFullNameStackForTagClose(u,o)}_consumeTagOpenStart(u){this._beginToken(n.TAG_OPEN_START,u);let o=this._consumePrefixAndName();return this._endToken(o)}_consumeAttributeName(){let u=this._cursor.peek();if(u===r.$SQ||u===r.$DQ)throw this._createError(l(u),this._cursor.getSpan());this._beginToken(n.ATTR_NAME);let o=this._consumePrefixAndName();return this._endToken(o),o}_consumeAttributeValue(){let u;if(this._cursor.peek()===r.$SQ||this._cursor.peek()===r.$DQ){this._beginToken(n.ATTR_QUOTE);let o=this._cursor.peek();this._cursor.advance(),this._endToken([String.fromCodePoint(o)]),this._beginToken(n.ATTR_VALUE);let E=[];for(;this._cursor.peek()!==o;)E.push(this._readChar(!0));u=this._processCarriageReturns(E.join(\"\")),this._endToken([u]),this._beginToken(n.ATTR_QUOTE),this._cursor.advance(),this._endToken([String.fromCodePoint(o)])}else{this._beginToken(n.ATTR_VALUE);let o=this._cursor.clone();this._requireCharCodeUntilFn(T,1),u=this._processCarriageReturns(this._cursor.getChars(o)),this._endToken([u])}return u}_consumeTagOpenEnd(){let u=this._attemptCharCode(r.$SLASH)?n.TAG_OPEN_END_VOID:n.TAG_OPEN_END;this._beginToken(u),this._requireCharCode(r.$GT),this._endToken([])}_consumeTagClose(u){if(this._beginToken(n.TAG_CLOSE,u),this._attemptCharCodeUntilFn(m),this._allowHtmComponentClosingTags&&this._attemptCharCode(r.$SLASH))this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([]);else{let[o,E]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(m),this._requireCharCode(r.$GT),this._endToken([o,E]),this._handleFullNameStackForTagClose(o,E)}}_consumeExpansionFormStart(){this._beginToken(n.EXPANSION_FORM_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._expansionCaseStack.push(n.EXPANSION_FORM_START),this._beginToken(n.RAW_TEXT);let u=this._readUntil(r.$COMMA);this._endToken([u]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m),this._beginToken(n.RAW_TEXT);let o=this._readUntil(r.$COMMA);this._endToken([o]),this._requireCharCode(r.$COMMA),this._attemptCharCodeUntilFn(m)}_consumeExpansionCaseStart(){this._beginToken(n.EXPANSION_CASE_VALUE);let u=this._readUntil(r.$LBRACE).trim();this._endToken([u]),this._attemptCharCodeUntilFn(m),this._beginToken(n.EXPANSION_CASE_EXP_START),this._requireCharCode(r.$LBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.push(n.EXPANSION_CASE_EXP_START)}_consumeExpansionCaseEnd(){this._beginToken(n.EXPANSION_CASE_EXP_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._attemptCharCodeUntilFn(m),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(n.EXPANSION_FORM_END),this._requireCharCode(r.$RBRACE),this._endToken([]),this._expansionCaseStack.pop()}_consumeText(){let u=this._cursor.clone();this._beginToken(n.TEXT,u);let o=[];do this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(o.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(o.push(this._interpolationConfig.end),this._inInterpolation=!1):o.push(this._readChar(!0));while(!this._isTextEnd());this._endToken([this._processCarriageReturns(o.join(\"\"))])}_isTextEnd(){return!!(this._cursor.peek()===r.$LT||this._cursor.peek()===r.$EOF||this._tokenizeIcu&&!this._inInterpolation&&(this.isExpansionFormStart()||this._cursor.peek()===r.$RBRACE&&this._isInExpansionCase()))}_readUntil(u){let o=this._cursor.clone();return this._attemptUntilChar(u),this._cursor.getChars(o)}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_CASE_EXP_START}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===n.EXPANSION_FORM_START}isExpansionFormStart(){if(this._cursor.peek()!==r.$LBRACE)return!1;if(this._interpolationConfig){let u=this._cursor.clone(),o=this._attemptStr(this._interpolationConfig.start);return this._cursor=u,!o}return!0}_handleFullNameStackForTagOpen(u,o){let E=c.mergeNsAndName(u,o);(this._fullNameStack.length===0||this._fullNameStack[this._fullNameStack.length-1]===E)&&this._fullNameStack.push(E)}_handleFullNameStackForTagClose(u,o){let E=c.mergeNsAndName(u,o);this._fullNameStack.length!==0&&this._fullNameStack[this._fullNameStack.length-1]===E&&this._fullNameStack.pop()}};function m(u){return!r.isWhitespace(u)||u===r.$EOF}function T(u){return r.isWhitespace(u)||u===r.$GT||u===r.$SLASH||u===r.$SQ||u===r.$DQ||u===r.$EQ}function B(u){return(ur.$9)}function A(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiHexDigit(u)}function N(u){return u==r.$SEMICOLON||u==r.$EOF||!r.isAsciiLetter(u)}function R(u){return u===r.$EQ||r.isAsciiLetter(u)||r.isDigit(u)}function $(u,o){return _(u)==_(o)}function _(u){return u>=r.$a&&u<=r.$z?u-r.$a+r.$A:u}function O(u){let o=[],E;for(let f=0;f0&&o.indexOf(u.peek())!==-1;)u.advance();return new t.ParseSourceSpan(new t.ParseLocation(u.file,u.state.offset,u.state.line,u.state.column),new t.ParseLocation(this.file,this.state.offset,this.state.line,this.state.column))}getChars(u){return this.input.substring(u.state.offset,this.state.offset)}charAt(u){return this.input.charCodeAt(u)}advanceState(u){if(u.offset>=this.end)throw this.state=u,new M('Unexpected character \"EOF\"',this);let o=this.charAt(u.offset);o===r.$LF?(u.line++,u.column=0):r.isNewLine(o)||u.column++,u.offset++,this.updatePeek(u)}updatePeek(u){u.peek=u.offset>=this.end?r.$EOF:this.charAt(u.offset)}},k=class extends x{constructor(u,o){u instanceof k?(super(u),this.internalState=Object.assign({},u.internalState)):(super(u,o),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new k(this)}getChars(u){let o=u.clone(),E=\"\";for(;o.internalState.offsetthis.internalState.peek;if(u()===r.$BACKSLASH)if(this.internalState=Object.assign({},this.state),this.advanceState(this.internalState),u()===r.$n)this.state.peek=r.$LF;else if(u()===r.$r)this.state.peek=r.$CR;else if(u()===r.$v)this.state.peek=r.$VTAB;else if(u()===r.$t)this.state.peek=r.$TAB;else if(u()===r.$b)this.state.peek=r.$BSPACE;else if(u()===r.$f)this.state.peek=r.$FF;else if(u()===r.$u)if(this.advanceState(this.internalState),u()===r.$LBRACE){this.advanceState(this.internalState);let o=this.clone(),E=0;for(;u()!==r.$RBRACE;)this.advanceState(this.internalState),E++;this.state.peek=this.decodeHexDigits(o,E)}else{let o=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,4)}else if(u()===r.$x){this.advanceState(this.internalState);let o=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(o,2)}else if(r.isOctalDigit(u())){let o=\"\",E=0,f=this.clone();for(;r.isOctalDigit(u())&&E<3;)f=this.clone(),o+=String.fromCodePoint(u()),this.advanceState(this.internalState),E++;this.state.peek=parseInt(o,8),this.internalState=f.internalState}else r.isNewLine(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(u,o){let E=this.input.substr(u.internalState.offset,o),f=parseInt(E,16);if(isNaN(f))throw u.state=u.internalState,new M(\"Invalid hexadecimal escape sequence\",u);return f}},M=class{constructor(u,o){this.msg=u,this.cursor=o}};e.CursorError=M}}),as=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/parser.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=Te(),t=Ss(),s=zD(),c=Ze(),n=class extends r.ParseError{constructor(i,l,h){super(l,h),this.elementName=i}static create(i,l,h){return new n(i,l,h)}};e.TreeError=n;var a=class{constructor(i,l){this.rootNodes=i,this.errors=l}};e.ParseTreeResult=a;var p=class{constructor(i){this.getTagDefinition=i}parse(i,l,h){let C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,d=arguments.length>4?arguments[4]:void 0,m=x=>function(k){for(var M=arguments.length,u=new Array(M>1?M-1:0),o=1;oT(x).contentType,A=C?d:m(d),N=d?(x,k,M,u)=>{let o=A(x,k,M,u);return o!==void 0?o:B(x)}:B,R=s.tokenize(i,l,N,h),$=h&&h.canSelfClose||!1,_=h&&h.allowHtmComponentClosingTags||!1,O=new D(R.tokens,T,$,_,C).build();return new a(O.rootNodes,R.errors.concat(O.errors))}};e.Parser=p;var D=class{constructor(i,l,h,C,d){this.tokens=i,this.getTagDefinition=l,this.canSelfClose=h,this.allowHtmComponentClosingTags=C,this.isTagNameCaseSensitive=d,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}build(){for(;this._peek.type!==s.TokenType.EOF;)this._peek.type===s.TokenType.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===s.TokenType.TAG_CLOSE?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===s.TokenType.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===s.TokenType.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===s.TokenType.TEXT||this._peek.type===s.TokenType.RAW_TEXT||this._peek.type===s.TokenType.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===s.TokenType.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._peek.type===s.TokenType.DOC_TYPE_START?this._consumeDocType(this._advance()):this._advance();return new a(this._rootNodes,this._errors)}_advance(){let i=this._peek;return this._index0)return this._errors=this._errors.concat(d.errors),null;let m=new r.ParseSourceSpan(i.sourceSpan.start,C.sourceSpan.end),T=new r.ParseSourceSpan(l.sourceSpan.start,C.sourceSpan.end);return new t.ExpansionCase(i.parts[0],d.rootNodes,m,i.sourceSpan,T)}_collectExpansionExpTokens(i){let l=[],h=[s.TokenType.EXPANSION_CASE_EXP_START];for(;;){if((this._peek.type===s.TokenType.EXPANSION_FORM_START||this._peek.type===s.TokenType.EXPANSION_CASE_EXP_START)&&h.push(this._peek.type),this._peek.type===s.TokenType.EXPANSION_CASE_EXP_END)if(g(h,s.TokenType.EXPANSION_CASE_EXP_START)){if(h.pop(),h.length==0)return l}else return this._errors.push(n.create(null,i.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===s.TokenType.EXPANSION_FORM_END)if(g(h,s.TokenType.EXPANSION_FORM_START))h.pop();else return this._errors.push(n.create(null,i.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;if(this._peek.type===s.TokenType.EOF)return this._errors.push(n.create(null,i.sourceSpan,\"Invalid ICU message. Missing '}'.\")),null;l.push(this._advance())}}_getText(i){let l=i.parts[0];if(l.length>0&&l[0]==`\n`){let h=this._getParentElement();h!=null&&h.children.length==0&&this.getTagDefinition(h.name).ignoreFirstLf&&(l=l.substring(1))}return l}_consumeText(i){let l=this._getText(i);l.length>0&&this._addToParent(new t.Text(l,i.sourceSpan))}_closeVoidElement(){let i=this._getParentElement();i&&this.getTagDefinition(i.name).isVoid&&this._elementStack.pop()}_consumeStartTag(i){let l=i.parts[0],h=i.parts[1],C=[];for(;this._peek.type===s.TokenType.ATTR_NAME;)C.push(this._consumeAttr(this._advance()));let d=this._getElementFullName(l,h,this._getParentElement()),m=!1;if(this._peek.type===s.TokenType.TAG_OPEN_END_VOID){this._advance(),m=!0;let R=this.getTagDefinition(d);this.canSelfClose||R.canSelfClose||c.getNsPrefix(d)!==null||R.isVoid||this._errors.push(n.create(d,i.sourceSpan,'Only void and foreign elements can be self closed \"'.concat(i.parts[1],'\"')))}else this._peek.type===s.TokenType.TAG_OPEN_END&&(this._advance(),m=!1);let T=this._peek.sourceSpan.start,B=new r.ParseSourceSpan(i.sourceSpan.start,T),A=new r.ParseSourceSpan(i.sourceSpan.start.moveBy(1),i.sourceSpan.end),N=new t.Element(d,C,[],B,B,void 0,A);this._pushElement(N),m&&(this._popElement(d),N.endSourceSpan=B)}_pushElement(i){let l=this._getParentElement();l&&this.getTagDefinition(l.name).isClosedByChild(i.name)&&this._elementStack.pop(),this._addToParent(i),this._elementStack.push(i)}_consumeEndTag(i){let l=this.allowHtmComponentClosingTags&&i.parts.length===0?null:this._getElementFullName(i.parts[0],i.parts[1],this._getParentElement());if(this._getParentElement()&&(this._getParentElement().endSourceSpan=i.sourceSpan),l&&this.getTagDefinition(l).isVoid)this._errors.push(n.create(l,i.sourceSpan,'Void elements do not have end tags \"'.concat(i.parts[1],'\"')));else if(!this._popElement(l)){let h='Unexpected closing tag \"'.concat(l,'\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags');this._errors.push(n.create(l,i.sourceSpan,h))}}_popElement(i){for(let l=this._elementStack.length-1;l>=0;l--){let h=this._elementStack[l];if(!i||(c.getNsPrefix(h.name)?h.name==i:h.name.toLowerCase()==i.toLowerCase()))return this._elementStack.splice(l,this._elementStack.length-l),!0;if(!this.getTagDefinition(h.name).closedByParent)return!1}return!1}_consumeAttr(i){let l=c.mergeNsAndName(i.parts[0],i.parts[1]),h=i.sourceSpan.end,C=\"\",d,m;if(this._peek.type===s.TokenType.ATTR_QUOTE&&(m=this._advance().sourceSpan.start),this._peek.type===s.TokenType.ATTR_VALUE){let T=this._advance();C=T.parts[0],h=T.sourceSpan.end,d=T.sourceSpan}return this._peek.type===s.TokenType.ATTR_QUOTE&&(h=this._advance().sourceSpan.end,d=new r.ParseSourceSpan(m,h)),new t.Attribute(l,C,new r.ParseSourceSpan(i.sourceSpan.start,h),d,i.sourceSpan)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_getParentElementSkippingContainers(){let i=null;for(let l=this._elementStack.length-1;l>=0;l--){if(!c.isNgContainer(this._elementStack[l].name))return{parent:this._elementStack[l],container:i};i=this._elementStack[l]}return{parent:null,container:i}}_addToParent(i){let l=this._getParentElement();l!=null?l.children.push(i):this._rootNodes.push(i)}_insertBeforeContainer(i,l,h){if(!l)this._addToParent(h),this._elementStack.push(h);else{if(i){let C=i.children.indexOf(l);i.children[C]=h}else this._rootNodes.push(h);h.children.push(l),this._elementStack.splice(this._elementStack.indexOf(l),0,h)}}_getElementFullName(i,l,h){return i===\"\"&&(i=this.getTagDefinition(l).implicitNamespacePrefix||\"\",i===\"\"&&h!=null&&(i=c.getNsPrefix(h.name))),c.mergeNsAndName(i,l)}};function g(i,l){return i.length>0&&i[i.length-1]===l}}}),WD=I({\"node_modules/angular-html-parser/lib/compiler/src/ml_parser/html_parser.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=_s(),t=as(),s=as();e.ParseTreeResult=s.ParseTreeResult,e.TreeError=s.TreeError;var c=class extends t.Parser{constructor(){super(r.getHtmlTagDefinition)}parse(n,a,p){let D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,g=arguments.length>4?arguments[4]:void 0;return super.parse(n,a,p,D,g)}};e.HtmlParser=c}}),ys=I({\"node_modules/angular-html-parser/lib/angular-html-parser/src/index.js\"(e){\"use strict\";q(),Object.defineProperty(e,\"__esModule\",{value:!0});var r=WD(),t=Ze();e.TagContentType=t.TagContentType;var s=null,c=()=>(s||(s=new r.HtmlParser),s);function n(a){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{canSelfClose:D=!1,allowHtmComponentClosingTags:g=!1,isTagNameCaseSensitive:i=!1,getTagContentType:l}=p;return c().parse(a,\"angular-html-parser\",{tokenizeExpansionForms:!1,interpolationConfig:void 0,canSelfClose:D,allowHtmComponentClosingTags:g},i,l)}e.parse=n}});q();var{ParseSourceSpan:Qe,ParseLocation:is,ParseSourceFile:YD}=Te(),QD=aD(),KD=ps(),JD=iD(),{inferParserByLanguage:ZD}=ID(),el=xD(),jr=LD(),os=MD(),{hasPragma:rl}=jD(),{Node:tl}=$D(),{parseIeConditionalComment:ul}=UD(),{locStart:nl,locEnd:sl}=GD();function al(e,r,t){let{recognizeSelfClosing:s,normalizeTagName:c,normalizeAttributeName:n,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p,getTagContentType:D}=r,g=ys(),{RecursiveVisitor:i,visitAll:l}=Ss(),{ParseSourceSpan:h}=Te(),{getHtmlTagDefinition:C}=_s(),{rootNodes:d,errors:m}=g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p,getTagContentType:D});if(t.parser===\"vue\")if(d.some(O=>O.type===\"docType\"&&O.value===\"html\"||O.type===\"element\"&&O.name.toLowerCase()===\"html\")){s=!0,c=!0,n=!0,a=!0,p=!1;let O=g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p});d=O.rootNodes,m=O.errors}else{let O=x=>{if(!x||x.type!==\"element\"||x.name!==\"template\")return!1;let k=x.attrs.find(u=>u.name===\"lang\"),M=k&&k.value;return!M||ZD(M,t)===\"html\"};if(d.some(O)){let x,k=()=>g.parse(e,{canSelfClose:s,allowHtmComponentClosingTags:a,isTagNameCaseSensitive:p}),M=()=>x||(x=k()),u=o=>M().rootNodes.find(E=>{let{startSourceSpan:f}=E;return f&&f.start.offset===o.startSourceSpan.start.offset});for(let o=0;o0){let{msg:_,span:{start:O,end:x}}=m[0];throw JD(_,{start:{line:O.line+1,column:O.col+1},end:{line:x.line+1,column:x.col+1}})}let T=_=>{let O=_.name.startsWith(\":\")?_.name.slice(1).split(\":\")[0]:null,x=_.nameSpan.toString(),k=O!==null&&x.startsWith(\"\".concat(O,\":\")),M=k?x.slice(O.length+1):x;_.name=M,_.namespace=O,_.hasExplicitNamespace=k},B=_=>{switch(_.type){case\"element\":T(_);for(let O of _.attrs)T(O),O.valueSpan?(O.value=O.valueSpan.toString(),/[\"']/.test(O.value[0])&&(O.value=O.value.slice(1,-1))):O.value=null;break;case\"comment\":_.value=_.sourceSpan.toString().slice(4,-3);break;case\"text\":_.value=_.sourceSpan.toString();break}},A=(_,O)=>{let x=_.toLowerCase();return O(x)?x:_},N=_=>{if(_.type===\"element\"&&(c&&(!_.namespace||_.namespace===_.tagDefinition.implicitNamespacePrefix||os(_))&&(_.name=A(_.name,O=>O in el)),n)){let O=jr[_.name]||Object.create(null);for(let x of _.attrs)x.namespace||(x.name=A(x.name,k=>_.name in jr&&(k in jr[\"*\"]||k in O)))}},R=_=>{_.sourceSpan&&_.endSourceSpan&&(_.sourceSpan=new h(_.sourceSpan.start,_.endSourceSpan.end))},$=_=>{if(_.type===\"element\"){let O=C(p?_.name:_.name.toLowerCase());!_.namespace||_.namespace===O.implicitNamespacePrefix||os(_)?_.tagDefinition=O:_.tagDefinition=C(\"\")}};return l(new class extends i{visit(_){B(_),$(_),N(_),R(_)}},d),d}function Ts(e,r,t){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,{frontMatter:c,content:n}=s?QD(e):{frontMatter:null,content:e},a=new YD(e,r.filepath),p=new is(a,0,0,0),D=p.moveBy(e.length),g={type:\"root\",sourceSpan:new Qe(p,D),children:al(n,t,r)};if(c){let h=new is(a,0,0,0),C=h.moveBy(c.raw.length);c.sourceSpan=new Qe(h,C),g.children.unshift(c)}let i=new tl(g),l=(h,C)=>{let{offset:d}=C,m=e.slice(0,d).replace(/[^\\n\\r]/g,\" \"),B=Ts(m+h,r,t,!1);B.sourceSpan=new Qe(C,KD(B.children).sourceSpan.end);let A=B.children[0];return A.length===d?B.children.shift():(A.sourceSpan=new Qe(A.sourceSpan.start.moveBy(d),A.sourceSpan.end),A.value=A.value.slice(d)),B};return i.walk(h=>{if(h.type===\"comment\"){let C=ul(h,l);C&&h.parent.replaceChild(h,C)}}),i}function Ke(){let{name:e,recognizeSelfClosing:r=!1,normalizeTagName:t=!1,normalizeAttributeName:s=!1,allowHtmComponentClosingTags:c=!1,isTagNameCaseSensitive:n=!1,getTagContentType:a}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{parse:(p,D,g)=>Ts(p,Object.assign({parser:e},g),{recognizeSelfClosing:r,normalizeTagName:t,normalizeAttributeName:s,allowHtmComponentClosingTags:c,isTagNameCaseSensitive:n,getTagContentType:a}),hasPragma:rl,astFormat:\"html\",locStart:nl,locEnd:sl}}Bs.exports={parsers:{html:Ke({name:\"html\",recognizeSelfClosing:!0,normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0}),angular:Ke({name:\"angular\"}),vue:Ke({name:\"vue\",recognizeSelfClosing:!0,isTagNameCaseSensitive:!0,getTagContentType:(e,r,t,s)=>{if(e.toLowerCase()!==\"html\"&&!t&&(e!==\"template\"||s.some(c=>{let{name:n,value:a}=c;return n===\"lang\"&&a!==\"html\"&&a!==\"\"&&a!==void 0})))return ys().TagContentType.RAW_TEXT}}),lwc:Ke({name:\"lwc\"})}}});return il();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.markdown=e()}})(function(){\"use strict\";var H=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var ue=H((uf,Au)=>{var ur=function(e){return e&&e.Math==Math&&e};Au.exports=ur(typeof globalThis==\"object\"&&globalThis)||ur(typeof window==\"object\"&&window)||ur(typeof self==\"object\"&&self)||ur(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var Ae=H((tf,xu)=>{xu.exports=function(e){try{return!!e()}catch{return!0}}});var _e=H((nf,bu)=>{var ca=Ae();bu.exports=!ca(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var tr=H((af,yu)=>{var la=Ae();yu.exports=!la(function(){var e=function(){}.bind();return typeof e!=\"function\"||e.hasOwnProperty(\"prototype\")})});var Oe=H((of,Bu)=>{var Da=tr(),nr=Function.prototype.call;Bu.exports=Da?nr.bind(nr):function(){return nr.apply(nr,arguments)}});var _u=H(qu=>{\"use strict\";var wu={}.propertyIsEnumerable,ku=Object.getOwnPropertyDescriptor,fa=ku&&!wu.call({1:2},1);qu.f=fa?function(r){var u=ku(this,r);return!!u&&u.enumerable}:wu});var ir=H((cf,Ou)=>{Ou.exports=function(e,r){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:r}}});var ve=H((lf,Tu)=>{var Iu=tr(),Su=Function.prototype,pa=Su.bind,Br=Su.call,da=Iu&&pa.bind(Br,Br);Tu.exports=Iu?function(e){return e&&da(e)}:function(e){return e&&function(){return Br.apply(e,arguments)}}});var ar=H((Df,Lu)=>{var Nu=ve(),ha=Nu({}.toString),va=Nu(\"\".slice);Lu.exports=function(e){return va(ha(e),8,-1)}});var ju=H((ff,Ru)=>{var ma=ue(),Ea=ve(),Ca=Ae(),ga=ar(),wr=ma.Object,Fa=Ea(\"\".split);Ru.exports=Ca(function(){return!wr(\"z\").propertyIsEnumerable(0)})?function(e){return ga(e)==\"String\"?Fa(e,\"\"):wr(e)}:wr});var kr=H((pf,Pu)=>{var Aa=ue(),xa=Aa.TypeError;Pu.exports=function(e){if(e==null)throw xa(\"Can't call method on \"+e);return e}});var or=H((df,Mu)=>{var ba=ju(),ya=kr();Mu.exports=function(e){return ba(ya(e))}});var me=H((hf,zu)=>{zu.exports=function(e){return typeof e==\"function\"}});var Ie=H((vf,Gu)=>{var Ba=me();Gu.exports=function(e){return typeof e==\"object\"?e!==null:Ba(e)}});var He=H((mf,Uu)=>{var qr=ue(),wa=me(),ka=function(e){return wa(e)?e:void 0};Uu.exports=function(e,r){return arguments.length<2?ka(qr[e]):qr[e]&&qr[e][r]}});var _r=H((Ef,Vu)=>{var qa=ve();Vu.exports=qa({}.isPrototypeOf)});var Hu=H((Cf,$u)=>{var _a=He();$u.exports=_a(\"navigator\",\"userAgent\")||\"\"});var Qu=H((gf,Zu)=>{var Ju=ue(),Or=Hu(),Xu=Ju.process,Wu=Ju.Deno,Ku=Xu&&Xu.versions||Wu&&Wu.version,Yu=Ku&&Ku.v8,Ee,sr;Yu&&(Ee=Yu.split(\".\"),sr=Ee[0]>0&&Ee[0]<4?1:+(Ee[0]+Ee[1]));!sr&&Or&&(Ee=Or.match(/Edge\\/(\\d+)/),(!Ee||Ee[1]>=74)&&(Ee=Or.match(/Chrome\\/(\\d+)/),Ee&&(sr=+Ee[1])));Zu.exports=sr});var Ir=H((Ff,rt)=>{var et=Qu(),Oa=Ae();rt.exports=!!Object.getOwnPropertySymbols&&!Oa(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&et&&et<41})});var Sr=H((Af,ut)=>{var Ia=Ir();ut.exports=Ia&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Tr=H((xf,tt)=>{var Sa=ue(),Ta=He(),Na=me(),La=_r(),Ra=Sr(),ja=Sa.Object;tt.exports=Ra?function(e){return typeof e==\"symbol\"}:function(e){var r=Ta(\"Symbol\");return Na(r)&&La(r.prototype,ja(e))}});var cr=H((bf,nt)=>{var Pa=ue(),Ma=Pa.String;nt.exports=function(e){try{return Ma(e)}catch{return\"Object\"}}});var Xe=H((yf,it)=>{var za=ue(),Ga=me(),Ua=cr(),Va=za.TypeError;it.exports=function(e){if(Ga(e))return e;throw Va(Ua(e)+\" is not a function\")}});var lr=H((Bf,at)=>{var $a=Xe();at.exports=function(e,r){var u=e[r];return u==null?void 0:$a(u)}});var st=H((wf,ot)=>{var Ha=ue(),Nr=Oe(),Lr=me(),Rr=Ie(),Xa=Ha.TypeError;ot.exports=function(e,r){var u,t;if(r===\"string\"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e))||Lr(u=e.valueOf)&&!Rr(t=Nr(u,e))||r!==\"string\"&&Lr(u=e.toString)&&!Rr(t=Nr(u,e)))return t;throw Xa(\"Can't convert object to primitive value\")}});var lt=H((kf,ct)=>{ct.exports=!1});var Dr=H((qf,ft)=>{var Dt=ue(),Wa=Object.defineProperty;ft.exports=function(e,r){try{Wa(Dt,e,{value:r,configurable:!0,writable:!0})}catch{Dt[e]=r}return r}});var fr=H((_f,dt)=>{var Ka=ue(),Ya=Dr(),pt=\"__core-js_shared__\",Ja=Ka[pt]||Ya(pt,{});dt.exports=Ja});var jr=H((Of,vt)=>{var Za=lt(),ht=fr();(vt.exports=function(e,r){return ht[e]||(ht[e]=r!==void 0?r:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:Za?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var Pr=H((If,mt)=>{var Qa=ue(),eo=kr(),ro=Qa.Object;mt.exports=function(e){return ro(eo(e))}});var Be=H((Sf,Et)=>{var uo=ve(),to=Pr(),no=uo({}.hasOwnProperty);Et.exports=Object.hasOwn||function(r,u){return no(to(r),u)}});var Mr=H((Tf,Ct)=>{var io=ve(),ao=0,oo=Math.random(),so=io(1 .toString);Ct.exports=function(e){return\"Symbol(\"+(e===void 0?\"\":e)+\")_\"+so(++ao+oo,36)}});var Te=H((Nf,bt)=>{var co=ue(),lo=jr(),gt=Be(),Do=Mr(),Ft=Ir(),xt=Sr(),Le=lo(\"wks\"),Se=co.Symbol,At=Se&&Se.for,fo=xt?Se:Se&&Se.withoutSetter||Do;bt.exports=function(e){if(!gt(Le,e)||!(Ft||typeof Le[e]==\"string\")){var r=\"Symbol.\"+e;Ft&>(Se,e)?Le[e]=Se[e]:xt&&At?Le[e]=At(r):Le[e]=fo(r)}return Le[e]}});var kt=H((Lf,wt)=>{var po=ue(),ho=Oe(),yt=Ie(),Bt=Tr(),vo=lr(),mo=st(),Eo=Te(),Co=po.TypeError,go=Eo(\"toPrimitive\");wt.exports=function(e,r){if(!yt(e)||Bt(e))return e;var u=vo(e,go),t;if(u){if(r===void 0&&(r=\"default\"),t=ho(u,e,r),!yt(t)||Bt(t))return t;throw Co(\"Can't convert object to primitive value\")}return r===void 0&&(r=\"number\"),mo(e,r)}});var pr=H((Rf,qt)=>{var Fo=kt(),Ao=Tr();qt.exports=function(e){var r=Fo(e,\"string\");return Ao(r)?r:r+\"\"}});var It=H((jf,Ot)=>{var xo=ue(),_t=Ie(),zr=xo.document,bo=_t(zr)&&_t(zr.createElement);Ot.exports=function(e){return bo?zr.createElement(e):{}}});var Gr=H((Pf,St)=>{var yo=_e(),Bo=Ae(),wo=It();St.exports=!yo&&!Bo(function(){return Object.defineProperty(wo(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Ur=H(Nt=>{var ko=_e(),qo=Oe(),_o=_u(),Oo=ir(),Io=or(),So=pr(),To=Be(),No=Gr(),Tt=Object.getOwnPropertyDescriptor;Nt.f=ko?Tt:function(r,u){if(r=Io(r),u=So(u),No)try{return Tt(r,u)}catch{}if(To(r,u))return Oo(!qo(_o.f,r,u),r[u])}});var Rt=H((zf,Lt)=>{var Lo=_e(),Ro=Ae();Lt.exports=Lo&&Ro(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var Re=H((Gf,Pt)=>{var jt=ue(),jo=Ie(),Po=jt.String,Mo=jt.TypeError;Pt.exports=function(e){if(jo(e))return e;throw Mo(Po(e)+\" is not an object\")}});var hr=H(zt=>{var zo=ue(),Go=_e(),Uo=Gr(),Vo=Rt(),dr=Re(),Mt=pr(),$o=zo.TypeError,Vr=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$r=\"enumerable\",Hr=\"configurable\",Xr=\"writable\";zt.f=Go?Vo?function(r,u,t){if(dr(r),u=Mt(u),dr(t),typeof r==\"function\"&&u===\"prototype\"&&\"value\"in t&&Xr in t&&!t[Xr]){var o=Ho(r,u);o&&o[Xr]&&(r[u]=t.value,t={configurable:Hr in t?t[Hr]:o[Hr],enumerable:$r in t?t[$r]:o[$r],writable:!1})}return Vr(r,u,t)}:Vr:function(r,u,t){if(dr(r),u=Mt(u),dr(t),Uo)try{return Vr(r,u,t)}catch{}if(\"get\"in t||\"set\"in t)throw $o(\"Accessors not supported\");return\"value\"in t&&(r[u]=t.value),r}});var vr=H((Vf,Gt)=>{var Xo=_e(),Wo=hr(),Ko=ir();Gt.exports=Xo?function(e,r,u){return Wo.f(e,r,Ko(1,u))}:function(e,r,u){return e[r]=u,e}});var mr=H(($f,Ut)=>{var Yo=ve(),Jo=me(),Wr=fr(),Zo=Yo(Function.toString);Jo(Wr.inspectSource)||(Wr.inspectSource=function(e){return Zo(e)});Ut.exports=Wr.inspectSource});var Ht=H((Hf,$t)=>{var Qo=ue(),es=me(),rs=mr(),Vt=Qo.WeakMap;$t.exports=es(Vt)&&/native code/.test(rs(Vt))});var Kt=H((Xf,Wt)=>{var us=jr(),ts=Mr(),Xt=us(\"keys\");Wt.exports=function(e){return Xt[e]||(Xt[e]=ts(e))}});var Kr=H((Wf,Yt)=>{Yt.exports={}});var un=H((Kf,rn)=>{var ns=Ht(),en=ue(),Yr=ve(),is=Ie(),as=vr(),Jr=Be(),Zr=fr(),os=Kt(),ss=Kr(),Jt=\"Object already initialized\",eu=en.TypeError,cs=en.WeakMap,Er,We,Cr,ls=function(e){return Cr(e)?We(e):Er(e,{})},Ds=function(e){return function(r){var u;if(!is(r)||(u=We(r)).type!==e)throw eu(\"Incompatible receiver, \"+e+\" required\");return u}};ns||Zr.state?(we=Zr.state||(Zr.state=new cs),Zt=Yr(we.get),Qr=Yr(we.has),Qt=Yr(we.set),Er=function(e,r){if(Qr(we,e))throw new eu(Jt);return r.facade=e,Qt(we,e,r),r},We=function(e){return Zt(we,e)||{}},Cr=function(e){return Qr(we,e)}):(Ne=os(\"state\"),ss[Ne]=!0,Er=function(e,r){if(Jr(e,Ne))throw new eu(Jt);return r.facade=e,as(e,Ne,r),r},We=function(e){return Jr(e,Ne)?e[Ne]:{}},Cr=function(e){return Jr(e,Ne)});var we,Zt,Qr,Qt,Ne;rn.exports={set:Er,get:We,has:Cr,enforce:ls,getterFor:Ds}});var an=H((Yf,nn)=>{var ru=_e(),fs=Be(),tn=Function.prototype,ps=ru&&Object.getOwnPropertyDescriptor,uu=fs(tn,\"name\"),ds=uu&&function(){}.name===\"something\",hs=uu&&(!ru||ru&&ps(tn,\"name\").configurable);nn.exports={EXISTS:uu,PROPER:ds,CONFIGURABLE:hs}});var Dn=H((Jf,ln)=>{var vs=ue(),on=me(),ms=Be(),sn=vr(),Es=Dr(),Cs=mr(),cn=un(),gs=an().CONFIGURABLE,Fs=cn.get,As=cn.enforce,xs=String(String).split(\"String\");(ln.exports=function(e,r,u,t){var o=t?!!t.unsafe:!1,n=t?!!t.enumerable:!1,s=t?!!t.noTargetGet:!1,c=t&&t.name!==void 0?t.name:r,i;if(on(u)&&(String(c).slice(0,7)===\"Symbol(\"&&(c=\"[\"+String(c).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!ms(u,\"name\")||gs&&u.name!==c)&&sn(u,\"name\",c),i=As(u),i.source||(i.source=xs.join(typeof c==\"string\"?c:\"\"))),e===vs){n?e[r]=u:Es(r,u);return}else o?!s&&e[r]&&(n=!0):delete e[r];n?e[r]=u:sn(e,r,u)})(Function.prototype,\"toString\",function(){return on(this)&&Fs(this).source||Cs(this)})});var tu=H((Zf,fn)=>{var bs=Math.ceil,ys=Math.floor;fn.exports=function(e){var r=+e;return r!==r||r===0?0:(r>0?ys:bs)(r)}});var dn=H((Qf,pn)=>{var Bs=tu(),ws=Math.max,ks=Math.min;pn.exports=function(e,r){var u=Bs(e);return u<0?ws(u+r,0):ks(u,r)}});var vn=H((ep,hn)=>{var qs=tu(),_s=Math.min;hn.exports=function(e){return e>0?_s(qs(e),9007199254740991):0}});var Ke=H((rp,mn)=>{var Os=vn();mn.exports=function(e){return Os(e.length)}});var gn=H((up,Cn)=>{var Is=or(),Ss=dn(),Ts=Ke(),En=function(e){return function(r,u,t){var o=Is(r),n=Ts(o),s=Ss(t,n),c;if(e&&u!=u){for(;n>s;)if(c=o[s++],c!=c)return!0}else for(;n>s;s++)if((e||s in o)&&o[s]===u)return e||s||0;return!e&&-1}};Cn.exports={includes:En(!0),indexOf:En(!1)}});var xn=H((tp,An)=>{var Ns=ve(),nu=Be(),Ls=or(),Rs=gn().indexOf,js=Kr(),Fn=Ns([].push);An.exports=function(e,r){var u=Ls(e),t=0,o=[],n;for(n in u)!nu(js,n)&&nu(u,n)&&Fn(o,n);for(;r.length>t;)nu(u,n=r[t++])&&(~Rs(o,n)||Fn(o,n));return o}});var yn=H((np,bn)=>{bn.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var wn=H(Bn=>{var Ps=xn(),Ms=yn(),zs=Ms.concat(\"length\",\"prototype\");Bn.f=Object.getOwnPropertyNames||function(r){return Ps(r,zs)}});var qn=H(kn=>{kn.f=Object.getOwnPropertySymbols});var On=H((op,_n)=>{var Gs=He(),Us=ve(),Vs=wn(),$s=qn(),Hs=Re(),Xs=Us([].concat);_n.exports=Gs(\"Reflect\",\"ownKeys\")||function(r){var u=Vs.f(Hs(r)),t=$s.f;return t?Xs(u,t(r)):u}});var Tn=H((sp,Sn)=>{var In=Be(),Ws=On(),Ks=Ur(),Ys=hr();Sn.exports=function(e,r,u){for(var t=Ws(r),o=Ys.f,n=Ks.f,s=0;s{var Js=Ae(),Zs=me(),Qs=/#|\\.prototype\\./,Ye=function(e,r){var u=rc[ec(e)];return u==tc?!0:u==uc?!1:Zs(r)?Js(r):!!r},ec=Ye.normalize=function(e){return String(e).replace(Qs,\".\").toLowerCase()},rc=Ye.data={},uc=Ye.NATIVE=\"N\",tc=Ye.POLYFILL=\"P\";Nn.exports=Ye});var au=H((lp,Rn)=>{var iu=ue(),nc=Ur().f,ic=vr(),ac=Dn(),oc=Dr(),sc=Tn(),cc=Ln();Rn.exports=function(e,r){var u=e.target,t=e.global,o=e.stat,n,s,c,i,D,a;if(t?s=iu:o?s=iu[u]||oc(u,{}):s=(iu[u]||{}).prototype,s)for(c in r){if(D=r[c],e.noTargetGet?(a=nc(s,c),i=a&&a.value):i=s[c],n=cc(t?c:u+(o?\".\":\"#\")+c,e.forced),!n&&i!==void 0){if(typeof D==typeof i)continue;sc(D,i)}(e.sham||i&&i.sham)&&ic(D,\"sham\",!0),ac(s,c,D,e)}}});var ou=H((Dp,jn)=>{var lc=ar();jn.exports=Array.isArray||function(r){return lc(r)==\"Array\"}});var su=H((fp,Mn)=>{var Pn=ve(),Dc=Xe(),fc=tr(),pc=Pn(Pn.bind);Mn.exports=function(e,r){return Dc(e),r===void 0?e:fc?pc(e,r):function(){return e.apply(r,arguments)}}});var Un=H((pp,Gn)=>{\"use strict\";var dc=ue(),hc=ou(),vc=Ke(),mc=su(),Ec=dc.TypeError,zn=function(e,r,u,t,o,n,s,c){for(var i=o,D=0,a=s?mc(s,c):!1,l,p;D0&&hc(l))p=vc(l),i=zn(e,r,l,p,i,n-1)-1;else{if(i>=9007199254740991)throw Ec(\"Exceed the acceptable array length\");e[i]=l}i++}D++}return i};Gn.exports=zn});var Hn=H((dp,$n)=>{var Cc=Te(),gc=Cc(\"toStringTag\"),Vn={};Vn[gc]=\"z\";$n.exports=String(Vn)===\"[object z]\"});var cu=H((hp,Xn)=>{var Fc=ue(),Ac=Hn(),xc=me(),gr=ar(),bc=Te(),yc=bc(\"toStringTag\"),Bc=Fc.Object,wc=gr(function(){return arguments}())==\"Arguments\",kc=function(e,r){try{return e[r]}catch{}};Xn.exports=Ac?gr:function(e){var r,u,t;return e===void 0?\"Undefined\":e===null?\"Null\":typeof(u=kc(r=Bc(e),yc))==\"string\"?u:wc?gr(r):(t=gr(r))==\"Object\"&&xc(r.callee)?\"Arguments\":t}});var Qn=H((vp,Zn)=>{var qc=ve(),_c=Ae(),Wn=me(),Oc=cu(),Ic=He(),Sc=mr(),Kn=function(){},Tc=[],Yn=Ic(\"Reflect\",\"construct\"),lu=/^\\s*(?:class|function)\\b/,Nc=qc(lu.exec),Lc=!lu.exec(Kn),Je=function(r){if(!Wn(r))return!1;try{return Yn(Kn,Tc,r),!0}catch{return!1}},Jn=function(r){if(!Wn(r))return!1;switch(Oc(r)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return Lc||!!Nc(lu,Sc(r))}catch{return!0}};Jn.sham=!0;Zn.exports=!Yn||_c(function(){var e;return Je(Je.call)||!Je(Object)||!Je(function(){e=!0})||e})?Jn:Je});var ti=H((mp,ui)=>{var Rc=ue(),ei=ou(),jc=Qn(),Pc=Ie(),Mc=Te(),zc=Mc(\"species\"),ri=Rc.Array;ui.exports=function(e){var r;return ei(e)&&(r=e.constructor,jc(r)&&(r===ri||ei(r.prototype))?r=void 0:Pc(r)&&(r=r[zc],r===null&&(r=void 0))),r===void 0?ri:r}});var ii=H((Ep,ni)=>{var Gc=ti();ni.exports=function(e,r){return new(Gc(e))(r===0?0:r)}});var ai=H(()=>{\"use strict\";var Uc=au(),Vc=Un(),$c=Xe(),Hc=Pr(),Xc=Ke(),Wc=ii();Uc({target:\"Array\",proto:!0},{flatMap:function(r){var u=Hc(this),t=Xc(u),o;return $c(r),o=Wc(u,0),o.length=Vc(o,u,u,t,0,1,r,arguments.length>1?arguments[1]:void 0),o}})});var Du=H((Fp,oi)=>{oi.exports={}});var ci=H((Ap,si)=>{var Kc=Te(),Yc=Du(),Jc=Kc(\"iterator\"),Zc=Array.prototype;si.exports=function(e){return e!==void 0&&(Yc.Array===e||Zc[Jc]===e)}});var fu=H((xp,Di)=>{var Qc=cu(),li=lr(),el=Du(),rl=Te(),ul=rl(\"iterator\");Di.exports=function(e){if(e!=null)return li(e,ul)||li(e,\"@@iterator\")||el[Qc(e)]}});var pi=H((bp,fi)=>{var tl=ue(),nl=Oe(),il=Xe(),al=Re(),ol=cr(),sl=fu(),cl=tl.TypeError;fi.exports=function(e,r){var u=arguments.length<2?sl(e):r;if(il(u))return al(nl(u,e));throw cl(ol(e)+\" is not iterable\")}});var vi=H((yp,hi)=>{var ll=Oe(),di=Re(),Dl=lr();hi.exports=function(e,r,u){var t,o;di(e);try{if(t=Dl(e,\"return\"),!t){if(r===\"throw\")throw u;return u}t=ll(t,e)}catch(n){o=!0,t=n}if(r===\"throw\")throw u;if(o)throw t;return di(t),u}});var Fi=H((Bp,gi)=>{var fl=ue(),pl=su(),dl=Oe(),hl=Re(),vl=cr(),ml=ci(),El=Ke(),mi=_r(),Cl=pi(),gl=fu(),Ei=vi(),Fl=fl.TypeError,Fr=function(e,r){this.stopped=e,this.result=r},Ci=Fr.prototype;gi.exports=function(e,r,u){var t=u&&u.that,o=!!(u&&u.AS_ENTRIES),n=!!(u&&u.IS_ITERATOR),s=!!(u&&u.INTERRUPTED),c=pl(r,t),i,D,a,l,p,d,g,F=function(x){return i&&Ei(i,\"normal\",x),new Fr(!0,x)},E=function(x){return o?(hl(x),s?c(x[0],x[1],F):c(x[0],x[1])):s?c(x,F):c(x)};if(n)i=e;else{if(D=gl(e),!D)throw Fl(vl(e)+\" is not iterable\");if(ml(D)){for(a=0,l=El(e);l>a;a++)if(p=E(e[a]),p&&mi(Ci,p))return p;return new Fr(!1)}i=Cl(e,D)}for(d=i.next;!(g=dl(d,i)).done;){try{p=E(g.value)}catch(x){Ei(i,\"throw\",x)}if(typeof p==\"object\"&&p&&mi(Ci,p))return p}return new Fr(!1)}});var xi=H((wp,Ai)=>{\"use strict\";var Al=pr(),xl=hr(),bl=ir();Ai.exports=function(e,r,u){var t=Al(r);t in e?xl.f(e,t,bl(0,u)):e[t]=u}});var bi=H(()=>{var yl=au(),Bl=Fi(),wl=xi();yl({target:\"Object\",stat:!0},{fromEntries:function(r){var u={};return Bl(r,function(t,o){wl(u,t,o)},{AS_ENTRIES:!0}),u}})});var ef=H((_p,oa)=>{var kl=[\"cliName\",\"cliCategory\",\"cliDescription\"],yi,Bi,wi,ki,qi,_i;function ql(e,r){if(e==null)return{};var u=_l(e,r),t,o;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(e,t)||(u[t]=e[t]))}return u}function _l(e,r){if(e==null)return{};var u={},t=Object.keys(e),o,n;for(n=0;n=0)&&(u[o]=e[o]);return u}ai();bi();function je(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}var Ol=Object.create,Ar=Object.defineProperty,Il=Object.getOwnPropertyDescriptor,pu=Object.getOwnPropertyNames,Sl=Object.getPrototypeOf,Tl=Object.prototype.hasOwnProperty,Pe=(e,r)=>function(){return e&&(r=(0,e[pu(e)[0]])(e=0)),r},S=(e,r)=>function(){return r||(0,e[pu(e)[0]])((r={exports:{}}).exports,r),r.exports},Li=(e,r)=>{for(var u in r)Ar(e,u,{get:r[u],enumerable:!0})},Ri=(e,r,u,t)=>{if(r&&typeof r==\"object\"||typeof r==\"function\")for(let o of pu(r))!Tl.call(e,o)&&o!==u&&Ar(e,o,{get:()=>r[o],enumerable:!(t=Il(r,o))||t.enumerable});return e},Nl=(e,r,u)=>(u=e!=null?Ol(Sl(e)):{},Ri(r||!e||!e.__esModule?Ar(u,\"default\",{value:e,enumerable:!0}):u,e)),ji=e=>Ri(Ar({},\"__esModule\",{value:!0}),e),Oi,Ii,Ze,I=Pe({\"\"(){Oi={},Ii=[],Ze={env:Oi,argv:Ii}}}),Me=S({\"node_modules/xtend/immutable.js\"(e,r){I(),r.exports=t;var u=Object.prototype.hasOwnProperty;function t(){for(var o={},n=0;n-1&&DD)return{line:a+1,column:D-(n[a-1]||0)+1,offset:D}}return{}}function i(D){var a=D&&D.line,l=D&&D.column,p;return!isNaN(a)&&!isNaN(l)&&a-1 in n&&(p=(n[a-2]||0)+l-1||0),p>-1&&p\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Igrave:\"\\xCC\",Iuml:\"\\xCF\",LT:\"<\",Ntilde:\"\\xD1\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ograve:\"\\xD2\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",QUOT:'\"',REG:\"\\xAE\",THORN:\"\\xDE\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Ugrave:\"\\xD9\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",aacute:\"\\xE1\",acirc:\"\\xE2\",acute:\"\\xB4\",aelig:\"\\xE6\",agrave:\"\\xE0\",amp:\"&\",aring:\"\\xE5\",atilde:\"\\xE3\",auml:\"\\xE4\",brvbar:\"\\xA6\",ccedil:\"\\xE7\",cedil:\"\\xB8\",cent:\"\\xA2\",copy:\"\\xA9\",curren:\"\\xA4\",deg:\"\\xB0\",divide:\"\\xF7\",eacute:\"\\xE9\",ecirc:\"\\xEA\",egrave:\"\\xE8\",eth:\"\\xF0\",euml:\"\\xEB\",frac12:\"\\xBD\",frac14:\"\\xBC\",frac34:\"\\xBE\",gt:\">\",iacute:\"\\xED\",icirc:\"\\xEE\",iexcl:\"\\xA1\",igrave:\"\\xEC\",iquest:\"\\xBF\",iuml:\"\\xEF\",laquo:\"\\xAB\",lt:\"<\",macr:\"\\xAF\",micro:\"\\xB5\",middot:\"\\xB7\",nbsp:\"\\xA0\",not:\"\\xAC\",ntilde:\"\\xF1\",oacute:\"\\xF3\",ocirc:\"\\xF4\",ograve:\"\\xF2\",ordf:\"\\xAA\",ordm:\"\\xBA\",oslash:\"\\xF8\",otilde:\"\\xF5\",ouml:\"\\xF6\",para:\"\\xB6\",plusmn:\"\\xB1\",pound:\"\\xA3\",quot:'\"',raquo:\"\\xBB\",reg:\"\\xAE\",sect:\"\\xA7\",shy:\"\\xAD\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",szlig:\"\\xDF\",thorn:\"\\xFE\",times:\"\\xD7\",uacute:\"\\xFA\",ucirc:\"\\xFB\",ugrave:\"\\xF9\",uml:\"\\xA8\",uuml:\"\\xFC\",yacute:\"\\xFD\",yen:\"\\xA5\",yuml:\"\\xFF\"}}}),Gl=S({\"node_modules/character-reference-invalid/index.json\"(e,r){r.exports={0:\"\\uFFFD\",128:\"\\u20AC\",130:\"\\u201A\",131:\"\\u0192\",132:\"\\u201E\",133:\"\\u2026\",134:\"\\u2020\",135:\"\\u2021\",136:\"\\u02C6\",137:\"\\u2030\",138:\"\\u0160\",139:\"\\u2039\",140:\"\\u0152\",142:\"\\u017D\",145:\"\\u2018\",146:\"\\u2019\",147:\"\\u201C\",148:\"\\u201D\",149:\"\\u2022\",150:\"\\u2013\",151:\"\\u2014\",152:\"\\u02DC\",153:\"\\u2122\",154:\"\\u0161\",155:\"\\u203A\",156:\"\\u0153\",158:\"\\u017E\",159:\"\\u0178\"}}}),ze=S({\"node_modules/is-decimal/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){var o=typeof t==\"string\"?t.charCodeAt(0):t;return o>=48&&o<=57}}}),Ul=S({\"node_modules/is-hexadecimal/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){var o=typeof t==\"string\"?t.charCodeAt(0):t;return o>=97&&o<=102||o>=65&&o<=70||o>=48&&o<=57}}}),Qe=S({\"node_modules/is-alphabetical/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){var o=typeof t==\"string\"?t.charCodeAt(0):t;return o>=97&&o<=122||o>=65&&o<=90}}}),Vl=S({\"node_modules/is-alphanumerical/index.js\"(e,r){\"use strict\";I();var u=Qe(),t=ze();r.exports=o;function o(n){return u(n)||t(n)}}}),$l=S({\"node_modules/character-entities/index.json\"(e,r){r.exports={AEli:\"\\xC6\",AElig:\"\\xC6\",AM:\"&\",AMP:\"&\",Aacut:\"\\xC1\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acir:\"\\xC2\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrav:\"\\xC0\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",Arin:\"\\xC5\",Aring:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",Atild:\"\\xC3\",Atilde:\"\\xC3\",Aum:\"\\xC4\",Auml:\"\\xC4\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",Bscr:\"\\u212C\",Bumpeq:\"\\u224E\",CHcy:\"\\u0427\",COP:\"\\xA9\",COPY:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",Cayleys:\"\\u212D\",Ccaron:\"\\u010C\",Ccedi:\"\\xC7\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",CenterDot:\"\\xB7\",Cfr:\"\\u212D\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",Colon:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",Copf:\"\\u2102\",Coproduct:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",DD:\"\\u2145\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",Diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",Downarrow:\"\\u21D3\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ET:\"\\xD0\",ETH:\"\\xD0\",Eacut:\"\\xC9\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecir:\"\\xCA\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrav:\"\\xC8\",Egrave:\"\\xC8\",Element:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",Equilibrium:\"\\u21CC\",Escr:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Eum:\"\\xCB\",Euml:\"\\xCB\",Exists:\"\\u2203\",ExponentialE:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",G:\">\",GT:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",Hopf:\"\\u210D\",HorizontalLine:\"\\u2500\",Hscr:\"\\u210B\",Hstrok:\"\\u0126\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacut:\"\\xCD\",Iacute:\"\\xCD\",Icir:\"\\xCE\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Igrav:\"\\xCC\",Igrave:\"\\xCC\",Im:\"\\u2111\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",Implies:\"\\u21D2\",Int:\"\\u222C\",Integral:\"\\u222B\",Intersection:\"\\u22C2\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Ium:\"\\xCF\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",L:\"<\",LT:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Larr:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",LeftArrow:\"\\u2190\",LeftArrowBar:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",LeftVectorBar:\"\\u2952\",Leftarrow:\"\\u21D0\",Leftrightarrow:\"\\u21D4\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",LongRightArrow:\"\\u27F6\",Longleftarrow:\"\\u27F8\",Longleftrightarrow:\"\\u27FA\",Longrightarrow:\"\\u27F9\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",Lscr:\"\\u2112\",Lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",Mopf:\"\\u{1D544}\",Mscr:\"\\u2133\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangle:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntild:\"\\xD1\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacut:\"\\xD3\",Oacute:\"\\xD3\",Ocir:\"\\xD4\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograv:\"\\xD2\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslas:\"\\xD8\",Oslash:\"\\xD8\",Otild:\"\\xD5\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Oum:\"\\xD6\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",Poincareplane:\"\\u210C\",Popf:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",Proportion:\"\\u2237\",Proportional:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUO:'\"',QUOT:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",RE:\"\\xAE\",REG:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",Rfr:\"\\u211C\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",RightArrow:\"\\u2192\",RightArrowBar:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",RightTee:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",RightVectorBar:\"\\u2953\",Rightarrow:\"\\u21D2\",Ropf:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",Rscr:\"\\u211B\",Rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",SuchThat:\"\\u220B\",Sum:\"\\u2211\",Sup:\"\\u22D1\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",Supset:\"\\u22D1\",THOR:\"\\xDE\",THORN:\"\\xDE\",TRADE:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacut:\"\\xDA\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucir:\"\\xDB\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrav:\"\\xD9\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrow:\"\\u2191\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",UpDownArrow:\"\\u2195\",UpEquilibrium:\"\\u296E\",UpTee:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",Uparrow:\"\\u21D1\",Updownarrow:\"\\u21D5\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",Upsi:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uum:\"\\xDC\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacut:\"\\xDD\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacut:\"\\xE1\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acir:\"\\xE2\",acirc:\"\\xE2\",acut:\"\\xB4\",acute:\"\\xB4\",acy:\"\\u0430\",aeli:\"\\xE6\",aelig:\"\\xE6\",af:\"\\u2061\",afr:\"\\u{1D51E}\",agrav:\"\\xE0\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",am:\"&\",amp:\"&\",and:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsd:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",ap:\"\\u2248\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",approx:\"\\u2248\",approxeq:\"\\u224A\",arin:\"\\xE5\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",atild:\"\\xE3\",atilde:\"\\xE3\",aum:\"\\xE4\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxh:\"\\u2500\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",bprime:\"\\u2035\",breve:\"\\u02D8\",brvba:\"\\xA6\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedi:\"\\xE7\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cedi:\"\\xB8\",cedil:\"\\xB8\",cemptyv:\"\\u29B2\",cen:\"\\xA2\",cent:\"\\xA2\",centerdot:\"\\xB7\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledR:\"\\xAE\",circledS:\"\\u24C8\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",conint:\"\\u222E\",copf:\"\\u{1D554}\",coprod:\"\\u2210\",cop:\"\\xA9\",copy:\"\\xA9\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curre:\"\\xA4\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dArr:\"\\u21D3\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",darr:\"\\u2193\",dash:\"\\u2010\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",dcaron:\"\\u010F\",dcy:\"\\u0434\",dd:\"\\u2146\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",ddotseq:\"\\u2A77\",de:\"\\xB0\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",diam:\"\\u22C4\",diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divid:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",dot:\"\\u02D9\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",downarrow:\"\\u2193\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eDDot:\"\\u2A77\",eDot:\"\\u2251\",eacut:\"\\xE9\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\xEA\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",ee:\"\\u2147\",efDot:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrav:\"\\xE8\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",equals:\"=\",equest:\"\\u225F\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",esdot:\"\\u2250\",esim:\"\\u2242\",eta:\"\\u03B7\",et:\"\\xF0\",eth:\"\\xF0\",eum:\"\\xEB\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",fallingdotseq:\"\\u2252\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac1:\"\\xBC\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac3:\"\\xBE\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gammad:\"\\u03DD\",gap:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",ge:\"\\u2265\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",ggg:\"\\u22D9\",gimel:\"\\u2137\",gjcy:\"\\u0453\",gl:\"\\u2277\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",grave:\"`\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",g:\">\",gt:\">\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hArr:\"\\u21D4\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",hardcy:\"\\u044A\",harr:\"\\u2194\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",hbar:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hslash:\"\\u210F\",hstrok:\"\\u0127\",hybull:\"\\u2043\",hyphen:\"\\u2010\",iacut:\"\\xED\",iacute:\"\\xED\",ic:\"\\u2063\",icir:\"\\xEE\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexc:\"\\xA1\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",igrav:\"\\xEC\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",image:\"\\u2111\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",in:\"\\u2208\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",int:\"\\u222B\",intcal:\"\\u22BA\",integers:\"\\u2124\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iques:\"\\xBF\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isin:\"\\u2208\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",itilde:\"\\u0129\",iukcy:\"\\u0456\",ium:\"\\xEF\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",lArr:\"\\u21D0\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lE:\"\\u2266\",lEg:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",lambda:\"\\u03BB\",lang:\"\\u27E8\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",laqu:\"\\xAB\",laquo:\"\\xAB\",larr:\"\\u2190\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leftarrow:\"\\u2190\",leftarrowtail:\"\\u21A2\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",leftthreetimes:\"\\u22CB\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",lessgtr:\"\\u2276\",lesssim:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",ll:\"\\u226A\",llarr:\"\\u21C7\",llcorner:\"\\u231E\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",longleftrightarrow:\"\\u27F7\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",lstrok:\"\\u0142\",l:\"<\",lt:\"<\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",mac:\"\\xAF\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",measuredangle:\"\\u2221\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micr:\"\\xB5\",micro:\"\\xB5\",mid:\"\\u2223\",midast:\"*\",midcir:\"\\u2AF0\",middo:\"\\xB7\",middot:\"\\xB7\",minus:\"\\u2212\",minusb:\"\\u229F\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",mstpos:\"\\u223E\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nGtv:\"\\u226B\\u0338\",nLeftarrow:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nLtv:\"\\u226A\\u0338\",nRightarrow:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nabla:\"\\u2207\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natur:\"\\u266E\",natural:\"\\u266E\",naturals:\"\\u2115\",nbs:\"\\xA0\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",ne:\"\\u2260\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nearr:\"\\u2197\",nearrow:\"\\u2197\",nedot:\"\\u2250\\u0338\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",nexist:\"\\u2204\",nexists:\"\\u2204\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",ngsim:\"\\u2275\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nhArr:\"\\u21CE\",nharr:\"\\u21AE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",njcy:\"\\u045A\",nlArr:\"\\u21CD\",nlE:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nldr:\"\\u2025\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nleftrightarrow:\"\\u21AE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nlsim:\"\\u2274\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nmid:\"\\u2224\",nopf:\"\\u{1D55F}\",no:\"\\xAC\",not:\"\\xAC\",notin:\"\\u2209\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",npar:\"\\u2226\",nparallel:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",npre:\"\\u2AAF\\u0338\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",nrArr:\"\\u21CF\",nrarr:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",ntild:\"\\xF1\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",oS:\"\\u24C8\",oacut:\"\\xF3\",oacute:\"\\xF3\",oast:\"\\u229B\",ocir:\"\\xF4\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odash:\"\\u229D\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograv:\"\\xF2\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",oplus:\"\\u2295\",or:\"\\u2228\",orarr:\"\\u21BB\",ord:\"\\xBA\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oscr:\"\\u2134\",oslas:\"\\xF8\",oslash:\"\\xF8\",osol:\"\\u2298\",otild:\"\\xF5\",otilde:\"\\xF5\",otimes:\"\\u2297\",otimesas:\"\\u2A36\",oum:\"\\xF6\",ouml:\"\\xF6\",ovbar:\"\\u233D\",par:\"\\xB6\",para:\"\\xB6\",parallel:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plus:\"+\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plusm:\"\\xB1\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",poun:\"\\xA3\",pound:\"\\xA3\",pr:\"\\u227A\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",prcue:\"\\u227C\",pre:\"\\u2AAF\",prec:\"\\u227A\",precapprox:\"\\u2AB7\",preccurlyeq:\"\\u227C\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",precsim:\"\\u227E\",prime:\"\\u2032\",primes:\"\\u2119\",prnE:\"\\u2AB5\",prnap:\"\\u2AB9\",prnsim:\"\\u22E8\",prod:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quo:'\"',quot:'\"',rAarr:\"\\u21DB\",rArr:\"\\u21D2\",rAtail:\"\\u291C\",rBarr:\"\\u290F\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raqu:\"\\xBB\",raquo:\"\\xBB\",rarr:\"\\u2192\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",rect:\"\\u25AD\",re:\"\\xAE\",reg:\"\\xAE\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",rightarrow:\"\\u2192\",rightarrowtail:\"\\u21A3\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",rightthreetimes:\"\\u22CC\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",sbquo:\"\\u201A\",sc:\"\\u227B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",scaron:\"\\u0161\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",scnap:\"\\u2ABA\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdotb:\"\\u22A1\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",searhk:\"\\u2925\",searr:\"\\u2198\",searrow:\"\\u2198\",sec:\"\\xA7\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",sh:\"\\xAD\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",squ:\"\\u25A1\",square:\"\\u25A1\",squarf:\"\\u25AA\",squf:\"\\u25AA\",srarr:\"\\u2192\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",subE:\"\\u2AC5\",subdot:\"\\u2ABD\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succ:\"\\u227B\",succapprox:\"\\u2AB8\",succcurlyeq:\"\\u227D\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",sum:\"\\u2211\",sung:\"\\u266A\",sup:\"\\u2283\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",supE:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supe:\"\\u2287\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szli:\"\\xDF\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",thor:\"\\xFE\",thorn:\"\\xFE\",tilde:\"\\u02DC\",time:\"\\xD7\",times:\"\\xD7\",timesb:\"\\u22A0\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",top:\"\\u22A4\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",uArr:\"\\u21D1\",uHar:\"\\u2963\",uacut:\"\\xFA\",uacute:\"\\xFA\",uarr:\"\\u2191\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucir:\"\\xFB\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udarr:\"\\u21C5\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrav:\"\\xF9\",ugrave:\"\\xF9\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",um:\"\\xA8\",uml:\"\\xA8\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",uparrow:\"\\u2191\",updownarrow:\"\\u2195\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",upsi:\"\\u03C5\",upsih:\"\\u03D2\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",uum:\"\\xFC\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vArr:\"\\u21D5\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vDash:\"\\u22A8\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vee:\"\\u2228\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",vert:\"|\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",xfr:\"\\u{1D535}\",xhArr:\"\\u27FA\",xharr:\"\\u27F7\",xi:\"\\u03BE\",xlArr:\"\\u27F8\",xlarr:\"\\u27F5\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrArr:\"\\u27F9\",xrarr:\"\\u27F6\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",yacut:\"\\xFD\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",ye:\"\\xA5\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yum:\"\\xFF\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"}}}),Hl=S({\"node_modules/parse-entities/decode-entity.js\"(e,r){\"use strict\";I();var u=$l();r.exports=o;var t={}.hasOwnProperty;function o(n){return t.call(u,n)?u[n]:!1}}}),xr=S({\"node_modules/parse-entities/index.js\"(e,r){\"use strict\";I();var u=zl(),t=Gl(),o=ze(),n=Ul(),s=Vl(),c=Hl();r.exports=J;var i={}.hasOwnProperty,D=String.fromCharCode,a=Function.prototype,l={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},p=9,d=10,g=12,F=32,E=38,x=59,f=60,b=61,v=35,h=88,m=120,C=65533,B=\"named\",q=\"hexadecimal\",L=\"decimal\",w={};w[q]=16,w[L]=10;var O={};O[B]=s,O[L]=o,O[q]=n;var T=1,P=2,A=3,j=4,$=5,U=6,X=7,R={};R[T]=\"Named character references must be terminated by a semicolon\",R[P]=\"Numeric character references must be terminated by a semicolon\",R[A]=\"Named character references cannot be empty\",R[j]=\"Numeric character references cannot be empty\",R[$]=\"Named character references must be known\",R[U]=\"Numeric character references cannot be disallowed\",R[X]=\"Numeric character references cannot be outside the permissible Unicode range\";function J(k,y){var _={},N,V;y||(y={});for(V in l)N=y[V],_[V]=N==null?l[V]:N;return(_.position.indent||_.position.start)&&(_.indent=_.position.indent||[],_.position=_.position.start),z(k,_)}function z(k,y){var _=y.additional,N=y.nonTerminated,V=y.text,W=y.reference,K=y.warning,ee=y.textContext,Y=y.referenceContext,te=y.warningContext,De=y.position,le=y.indent||[],ne=k.length,Z=0,Q=-1,fe=De.column||1,be=De.line||1,pe=\"\",he=[],oe,de,ie,re,ye,se,ae,Ce,er,br,ke,Ue,qe,Fe,Eu,Ve,rr,ge,ce;for(typeof _==\"string\"&&(_=_.charCodeAt(0)),Ve=$e(),Ce=K?sa:a,Z--,ne++;++Z65535&&(se-=65536,br+=D(se>>>10|55296),se=56320|se&1023),se=br+D(se))):Fe!==B&&Ce(j,ge)),se?(Cu(),Ve=$e(),Z=ce-1,fe+=ce-qe+1,he.push(se),rr=$e(),rr.offset++,W&&W.call(Y,se,{start:Ve,end:rr},k.slice(qe-1,ce)),Ve=rr):(re=k.slice(qe-1,ce),pe+=re,fe+=re.length,Z=ce-1)}else ye===10&&(be++,Q++,fe=0),ye===ye?(pe+=D(ye),fe++):Cu();return he.join(\"\");function $e(){return{line:be,column:fe,offset:Z+(De.offset||0)}}function sa(gu,Fu){var yr=$e();yr.column+=Fu,yr.offset+=Fu,K.call(te,R[gu],yr,gu)}function Cu(){pe&&(he.push(pe),V&&V.call(ee,pe,{start:Ve,end:$e()}),pe=\"\")}}function M(k){return k>=55296&&k<=57343||k>1114111}function G(k){return k>=1&&k<=8||k===11||k>=13&&k<=31||k>=127&&k<=159||k>=64976&&k<=65007||(k&65535)===65535||(k&65535)===65534}}}),Xl=S({\"node_modules/remark-parse/lib/decode.js\"(e,r){\"use strict\";I();var u=Me(),t=xr();r.exports=o;function o(n){return c.raw=i,c;function s(a){for(var l=n.offset,p=a.line,d=[];++p&&p in l;)d.push((l[p]||0)+1);return{start:a,indent:d}}function c(a,l,p){t(a,{position:s(l),warning:D,text:p,reference:p,textContext:n,referenceContext:n})}function i(a,l,p){return t(a,u(p,{position:s(l),warning:D}))}function D(a,l,p){p!==3&&n.file.message(a,l)}}}}),Wl=S({\"node_modules/remark-parse/lib/tokenizer.js\"(e,r){\"use strict\";I(),r.exports=u;function u(s){return c;function c(i,D){var a=this,l=a.offset,p=[],d=a[s+\"Methods\"],g=a[s+\"Tokenizers\"],F=D.line,E=D.column,x,f,b,v,h,m;if(!i)return p;for(P.now=q,P.file=a.file,C(\"\");i;){for(x=-1,f=d.length,h=!1;++x\"],t=u.concat([\"~\",\"|\"]),o=t.concat([`\n`,'\"',\"$\",\"%\",\"&\",\"'\",\",\",\"/\",\":\",\";\",\"<\",\"=\",\"?\",\"@\",\"^\"]);n.default=u,n.gfm=t,n.commonmark=o;function n(s){var c=s||{};return c.commonmark?o:c.gfm?t:u}}}),Yl=S({\"node_modules/remark-parse/lib/block-elements.js\"(e,r){\"use strict\";I(),r.exports=[\"address\",\"article\",\"aside\",\"base\",\"basefont\",\"blockquote\",\"body\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"iframe\",\"legend\",\"li\",\"link\",\"main\",\"menu\",\"menuitem\",\"meta\",\"nav\",\"noframes\",\"ol\",\"optgroup\",\"option\",\"p\",\"param\",\"pre\",\"section\",\"source\",\"title\",\"summary\",\"table\",\"tbody\",\"td\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\"]}}),Pi=S({\"node_modules/remark-parse/lib/defaults.js\"(e,r){\"use strict\";I(),r.exports={position:!0,gfm:!0,commonmark:!1,pedantic:!1,blocks:Yl()}}}),Jl=S({\"node_modules/remark-parse/lib/set-options.js\"(e,r){\"use strict\";I();var u=Me(),t=Kl(),o=Pi();r.exports=n;function n(s){var c=this,i=c.options,D,a;if(s==null)s={};else if(typeof s==\"object\")s=u(s);else throw new Error(\"Invalid value `\"+s+\"` for setting `options`\");for(D in o){if(a=s[D],a==null&&(a=i[D]),D!==\"blocks\"&&typeof a!=\"boolean\"||D===\"blocks\"&&typeof a!=\"object\")throw new Error(\"Invalid value `\"+a+\"` for setting `options.\"+D+\"`\");s[D]=a}return c.options=s,c.escape=t(s),c}}}),Zl=S({\"node_modules/unist-util-is/convert.js\"(e,r){\"use strict\";I(),r.exports=u;function u(c){if(c==null)return s;if(typeof c==\"string\")return n(c);if(typeof c==\"object\")return\"length\"in c?o(c):t(c);if(typeof c==\"function\")return c;throw new Error(\"Expected function, string, or object as test\")}function t(c){return i;function i(D){var a;for(a in c)if(D[a]!==c[a])return!1;return!0}}function o(c){for(var i=[],D=-1;++D\":\"\"))+\")\"),h;function h(){var m=f.concat(E),C=[],B,q;if((!a||g(E,x,f[f.length-1]||null))&&(C=i(l(E,f)),C[0]===s))return C;if(E.children&&C[0]!==n)for(q=(p?E.children.length:-1)+d;q>-1&&q\"u\")t=n,u=\"\";else if(u.length>=c)return u.substr(0,c);for(;c>u.length&&s>1;)s&1&&(u+=n),s>>=1,n+=n;return u+=n,u=u.substr(0,c),u}}}),Mi=S({\"node_modules/trim-trailing-lines/index.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t){return String(t).replace(/\\n+$/,\"\")}}}),iD=S({\"node_modules/remark-parse/lib/tokenize/code-indented.js\"(e,r){\"use strict\";I();var u=du(),t=Mi();r.exports=D;var o=`\n`,n=\"\t\",s=\" \",c=4,i=u(s,c);function D(a,l,p){for(var d=-1,g=l.length,F=\"\",E=\"\",x=\"\",f=\"\",b,v,h;++d=i)){for(B=\"\";E\";function i(D,a,l){for(var p=this,d=p.offset,g=p.blockTokenizers,F=p.interruptBlockquote,E=D.now(),x=E.line,f=a.length,b=[],v=[],h=[],m,C=0,B,q,L,w,O,T,P,A;Cs)&&!(!v||!p&&D.charAt(g+1)===n)){for(d=D.length+1,b=\"\";++g=i&&(!E||E===t)?(F+=b,p?!0:a(F)({type:\"thematicBreak\"})):void 0}}}),zi=S({\"node_modules/remark-parse/lib/util/get-indentation.js\"(e,r){\"use strict\";I(),r.exports=s;var u=\"\t\",t=\" \",o=1,n=4;function s(c){for(var i=0,D=0,a=c.charAt(i),l={},p,d=0;a===u||a===t;){for(p=a===u?n:o,D+=p,p>1&&(D=Math.floor(D/p)*p);d0&&E.indent=Q.indent&&(ie=!0),y=T.charAt(R),K=null,!ie){if(y===i||y===a||y===l)K=y,R++,M++;else{for(G=\"\";R=Q.indent||M>f),W=!1,R=V;if(Y=T.slice(V,N),ee=V===R?Y:T.slice(R,N),(K===i||K===D||K===l)&&U.thematicBreak.call(A,O,Y,!0))break;if(te=De,De=!W&&!u(ee).length,ie&&Q)Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[];else if(W)Z.length!==0&&(pe=!0,Q.value.push(\"\"),Q.trail=Z.concat()),Q={value:[Y],indent:M,trail:[]},le.push(Q),ne=ne.concat(Z,Y),Z=[];else if(De){if(te&&!j)break;Z.push(Y)}else{if(te||c(X,U,A,[O,Y,!0]))break;Q.value=Q.value.concat(Z,Y),ne=ne.concat(Z,Y),Z=[]}R=N+1}for(he=O(ne.join(g)).reset({type:\"list\",ordered:k,start:z,spread:pe,children:[]}),fe=A.enterList(),be=A.enterBlock(),R=-1,J=le.length;++R=c){x--;break}f+=h}for(b=\"\",v=\"\";++x`\\\\u0000-\\\\u0020]+\",t=\"'[^']*'\",o='\"[^\"]*\"',n=\"(?:\"+u+\"|\"+t+\"|\"+o+\")\",s=\"(?:\\\\s+\"+r+\"(?:\\\\s*=\\\\s*\"+n+\")?)\",c=\"<[A-Za-z][A-Za-z0-9\\\\-]*\"+s+\"*\\\\s*\\\\/?>\",i=\"<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>\",D=\"|\",a=\"<[?].*?[?]>\",l=\"]*>\",p=\"\";e.openCloseTag=new RegExp(\"^(?:\"+c+\"|\"+i+\")\"),e.tag=new RegExp(\"^(?:\"+c+\"|\"+i+\"|\"+D+\"|\"+a+\"|\"+l+\"|\"+p+\")\")}}),pD=S({\"node_modules/remark-parse/lib/tokenize/html-block.js\"(e,r){\"use strict\";I();var u=Gi().openCloseTag;r.exports=b;var t=\"\t\",o=\" \",n=`\n`,s=\"<\",c=/^<(script|pre|style)(?=(\\s|>|$))/i,i=/<\\/(script|pre|style)>/i,D=/^/,l=/^<\\?/,p=/\\?>/,d=/^/,F=/^/,x=/^$/,f=new RegExp(u.source+\"\\\\s*$\");function b(v,h,m){for(var C=this,B=C.options.blocks.join(\"|\"),q=new RegExp(\"^|$))\",\"i\"),L=h.length,w=0,O,T,P,A,j,$,U,X=[[c,i,!0],[D,a,!0],[l,p,!0],[d,g,!0],[F,E,!0],[q,x,!0],[f,x,!1]];w\";function x(v,h,m){for(var C=this,B=C.options.commonmark,q=0,L=h.length,w=\"\",O,T,P,A,j,$,U,X;qM){if(X1&&(O?(C+=w.slice(0,-1),w=w.charAt(w.length-1)):(C+=w,w=\"\")),$=E.now(),E(C)({type:\"tableCell\",children:b.tokenizeInline(A,$)},B)),E(w+O),w=\"\",A=\"\"):(w&&(A+=w,w=\"\"),A+=O,O===i&&v!==q-2&&(A+=R.charAt(v+1),v++)),j=!1,v++}U||E(o+h)}return z}}}}}),mD=S({\"node_modules/remark-parse/lib/tokenize/paragraph.js\"(e,r){\"use strict\";I();var u=Ge(),t=Mi(),o=hu();r.exports=D;var n=\"\t\",s=`\n`,c=\" \",i=4;function D(a,l,p){for(var d=this,g=d.options,F=g.commonmark,E=d.blockTokenizers,x=d.interruptParagraph,f=l.indexOf(s),b=l.length,v,h,m,C,B;f=i&&m!==s){f=l.indexOf(s,f+1);continue}}if(h=l.slice(f+1),o(x,E,d,[a,h,!0]))break;if(v=f,f=l.indexOf(s,f+1),f!==-1&&u(l.slice(v,f))===\"\"){f=v;break}}return h=l.slice(0,f),p?!0:(B=a.now(),h=t(h),a(h)({type:\"paragraph\",children:d.tokenizeInline(h,B)}))}}}),ED=S({\"node_modules/remark-parse/lib/locate/escape.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t,o){return t.indexOf(\"\\\\\",o)}}}),CD=S({\"node_modules/remark-parse/lib/tokenize/escape.js\"(e,r){\"use strict\";I();var u=ED();r.exports=n,n.locator=u;var t=`\n`,o=\"\\\\\";function n(s,c,i){var D=this,a,l;if(c.charAt(0)===o&&(a=c.charAt(1),D.escape.indexOf(a)!==-1))return i?!0:(a===t?l={type:\"break\"}:l={type:\"text\",value:a},s(o+a)(l))}}}),Vi=S({\"node_modules/remark-parse/lib/locate/tag.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t,o){return t.indexOf(\"<\",o)}}}),gD=S({\"node_modules/remark-parse/lib/tokenize/auto-link.js\"(e,r){\"use strict\";I();var u=xe(),t=xr(),o=Vi();r.exports=l,l.locator=o,l.notInLink=!0;var n=\"<\",s=\">\",c=\"@\",i=\"/\",D=\"mailto:\",a=D.length;function l(p,d,g){var F=this,E=\"\",x=d.length,f=0,b=\"\",v=!1,h=\"\",m,C,B,q,L;if(d.charAt(0)===n){for(f++,E=n;fk;)R=J+z.lastIndexOf(m),z=q.slice(J,R),y--;if(q.charCodeAt(R-1)===E&&(R--,n(q.charCodeAt(R-1)))){for(G=R-2;n(q.charCodeAt(G));)G--;q.charCodeAt(G)===D&&(R=G)}return _=q.slice(0,R),V=t(_,{nonTerminated:!1}),j&&(V=\"http://\"+V),W=w.enterLink(),w.inlineTokenizers={text:T.text},N=w.tokenizeInline(_,B.now()),w.inlineTokenizers=T,W(),B(_)({type:\"link\",title:null,url:V,children:N})}}}}}),bD=S({\"node_modules/remark-parse/lib/locate/email.js\"(e,r){\"use strict\";I();var u=ze(),t=Qe(),o=43,n=45,s=46,c=95;r.exports=i;function i(a,l){var p=this,d,g;if(!this.options.gfm||(d=a.indexOf(\"@\",l),d===-1))return-1;if(g=d,g===l||!D(a.charCodeAt(g-1)))return i.call(p,a,d+1);for(;g>l&&D(a.charCodeAt(g-1));)g--;return g}function D(a){return u(a)||t(a)||a===o||a===n||a===s||a===c}}}),yD=S({\"node_modules/remark-parse/lib/tokenize/email.js\"(e,r){\"use strict\";I();var u=xr(),t=ze(),o=Qe(),n=bD();r.exports=l,l.locator=n,l.notInLink=!0;var s=43,c=45,i=46,D=64,a=95;function l(p,d,g){var F=this,E=F.options.gfm,x=F.inlineTokenizers,f=0,b=d.length,v=-1,h,m,C,B;if(!!E){for(h=d.charCodeAt(f);t(h)||o(h)||h===s||h===c||h===i||h===a;)h=d.charCodeAt(++f);if(f!==0&&h===D){for(f++;f/i;function l(p,d,g){var F=this,E=d.length,x,f;if(!(d.charAt(0)!==n||E<3)&&(x=d.charAt(1),!(!u(x)&&x!==s&&x!==c&&x!==i)&&(f=d.match(o),!!f)))return g?!0:(f=f[0],!F.inLink&&D.test(f)?F.inLink=!0:F.inLink&&a.test(f)&&(F.inLink=!1),p(f)({type:\"html\",value:f}))}}}),$i=S({\"node_modules/remark-parse/lib/locate/link.js\"(e,r){\"use strict\";I(),r.exports=u;function u(t,o){var n=t.indexOf(\"[\",o),s=t.indexOf(\"![\",o);return s===-1||n\",p=\"[\",d=\"\\\\\",g=\"]\",F=\"`\";function E(x,f,b){var v=this,h=\"\",m=0,C=f.charAt(0),B=v.options.pedantic,q=v.options.commonmark,L=v.options.gfm,w,O,T,P,A,j,$,U,X,R,J,z,M,G,k,y,_,N;if(C===n&&(U=!0,h=C,C=f.charAt(++m)),C===p&&!(!U&&v.inLink)){for(h+=C,G=\"\",m++,J=f.length,y=x.now(),M=0,y.column+=m,y.offset+=m;m=T&&(T=0):T=O}else if(C===d)m++,j+=f.charAt(m);else if((!T||L)&&C===p)M++;else if((!T||L)&&C===g)if(M)M--;else{if(f.charAt(m+1)!==i)return;j+=i,w=!0,m++;break}G+=j,j=\"\",m++}if(!!w){for(X=G,h+=G+j,m++;m2&&(F===o||F===t)&&(E===o||E===t)){for(l++,a--;lo&&t.charAt(n-1)===\" \";)n--;return n}}}),PD=S({\"node_modules/remark-parse/lib/tokenize/break.js\"(e,r){\"use strict\";I();var u=jD();r.exports=s,s.locator=u;var t=\" \",o=`\n`,n=2;function s(c,i,D){for(var a=i.length,l=-1,p=\"\",d;++l\"u\"||u.call(l,g)},i=function(l,p){o&&p.name===\"__proto__\"?o(l,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):l[p.name]=p.newValue},D=function(l,p){if(p===\"__proto__\")if(u.call(l,p)){if(n)return n(l,p).value}else return;return l[p]};r.exports=function a(){var l,p,d,g,F,E,x=arguments[0],f=1,b=arguments.length,v=!1;for(typeof x==\"boolean\"&&(v=x,x=arguments[1]||{},f=2),(x==null||typeof x!=\"object\"&&typeof x!=\"function\")&&(x={});f{if(Object.prototype.toString.call(u)!==\"[object Object]\")return!1;let t=Object.getPrototypeOf(u);return t===null||t===Object.prototype}}}),HD=S({\"node_modules/trough/wrap.js\"(e,r){\"use strict\";I();var u=[].slice;r.exports=t;function t(o,n){var s;return c;function c(){var a=u.call(arguments,0),l=o.length>a.length,p;l&&a.push(i);try{p=o.apply(null,a)}catch(d){if(l&&s)throw d;return i(d)}l||(p&&typeof p.then==\"function\"?p.then(D,i):p instanceof Error?i(p):D(p))}function i(){s||(s=!0,n.apply(null,arguments))}function D(a){i(null,a)}}}}),XD=S({\"node_modules/trough/index.js\"(e,r){\"use strict\";I();var u=HD();r.exports=o,o.wrap=u;var t=[].slice;function o(){var n=[],s={};return s.run=c,s.use=i,s;function c(){var D=-1,a=t.call(arguments,0,-1),l=arguments[arguments.length-1];if(typeof l!=\"function\")throw new Error(\"Expected function as last argument, not \"+l);p.apply(null,[null].concat(a));function p(d){var g=n[++D],F=t.call(arguments,0),E=F.slice(1),x=a.length,f=-1;if(d){l(d);return}for(;++fi.length){for(;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else l<0&&(g=!0,l=p+1);return l<0?\"\":i.slice(a,l)}if(D===i)return\"\";for(d=-1,F=D.length-1;p--;)if(i.charCodeAt(p)===47){if(g){a=p+1;break}}else d<0&&(g=!0,d=p+1),F>-1&&(i.charCodeAt(p)===D.charCodeAt(F--)?F<0&&(l=p):(F=-1,l=d));return a===l?l=d:l<0&&(l=i.length),i.slice(a,l)}function u(i){var D,a,l;if(c(i),!i.length)return\".\";for(D=-1,l=i.length;--l;)if(i.charCodeAt(l)===47){if(a){D=l;break}}else a||(a=!0);return D<0?i.charCodeAt(0)===47?\"/\":\".\":D===1&&i.charCodeAt(0)===47?\"//\":i.slice(0,D)}function t(i){var D=-1,a=0,l=-1,p=0,d,g,F;for(c(i),F=i.length;F--;){if(g=i.charCodeAt(F),g===47){if(d){a=F+1;break}continue}l<0&&(d=!0,l=F+1),g===46?D<0?D=F:p!==1&&(p=1):D>-1&&(p=-1)}return D<0||l<0||p===0||p===1&&D===l-1&&D===a+1?\"\":i.slice(D,l)}function o(){for(var i=-1,D;++i2){if(E=a.lastIndexOf(\"/\"),E!==a.length-1){E<0?(a=\"\",l=0):(a=a.slice(0,E),l=a.length-1-a.lastIndexOf(\"/\")),p=g,d=0;continue}}else if(a.length){a=\"\",l=0,p=g,d=0;continue}}D&&(a=a.length?a+\"/..\":\"..\",l=2)}else a.length?a+=\"/\"+i.slice(p+1,g):a=i.slice(p+1,g),l=g-p-1;p=g,d=0}else F===46&&d>-1?d++:d=-1}return a}function c(i){if(typeof i!=\"string\")throw new TypeError(\"Path must be a string. Received \"+JSON.stringify(i))}}}),JD=S({\"node_modules/vfile/lib/minproc.browser.js\"(e){\"use strict\";I(),e.cwd=r;function r(){return\"/\"}}}),ZD=S({\"node_modules/vfile/lib/core.js\"(e,r){\"use strict\";I();var u=YD(),t=JD(),o=Hi();r.exports=c;var n={}.hasOwnProperty,s=[\"history\",\"path\",\"basename\",\"stem\",\"extname\",\"dirname\"];c.prototype.toString=f,Object.defineProperty(c.prototype,\"path\",{get:i,set:D}),Object.defineProperty(c.prototype,\"dirname\",{get:a,set:l}),Object.defineProperty(c.prototype,\"basename\",{get:p,set:d}),Object.defineProperty(c.prototype,\"extname\",{get:g,set:F}),Object.defineProperty(c.prototype,\"stem\",{get:E,set:x});function c(m){var C,B;if(!m)m={};else if(typeof m==\"string\"||o(m))m={contents:m};else if(\"message\"in m&&\"messages\"in m)return m;if(!(this instanceof c))return new c(m);for(this.data={},this.messages=[],this.history=[],this.cwd=t.cwd(),B=-1;++B-1)throw new Error(\"`extname` cannot contain multiple dots\")}this.path=u.join(this.dirname,this.stem+(m||\"\"))}function E(){return typeof this.path==\"string\"?u.basename(this.path,this.extname):void 0}function x(m){v(m,\"stem\"),b(m,\"stem\"),this.path=u.join(this.dirname||\"\",m+(this.extname||\"\"))}function f(m){return(this.contents||\"\").toString(m)}function b(m,C){if(m&&m.indexOf(u.sep)>-1)throw new Error(\"`\"+C+\"` cannot be a path: did not expect `\"+u.sep+\"`\")}function v(m,C){if(!m)throw new Error(\"`\"+C+\"` cannot be empty\")}function h(m,C){if(!m)throw new Error(\"Setting `\"+C+\"` requires `path` to be set too\")}}}),QD=S({\"node_modules/vfile/lib/index.js\"(e,r){\"use strict\";I();var u=KD(),t=ZD();r.exports=t,t.prototype.message=o,t.prototype.info=s,t.prototype.fail=n;function o(c,i,D){var a=new u(c,i,D);return this.path&&(a.name=this.path+\":\"+a.name,a.file=this.path),a.fatal=!1,this.messages.push(a),a}function n(){var c=this.message.apply(this,arguments);throw c.fatal=!0,c}function s(){var c=this.message.apply(this,arguments);return c.fatal=null,c}}}),e2=S({\"node_modules/vfile/index.js\"(e,r){\"use strict\";I(),r.exports=QD()}}),r2=S({\"node_modules/unified/index.js\"(e,r){\"use strict\";I();var u=UD(),t=Hi(),o=VD(),n=$D(),s=XD(),c=e2();r.exports=g().freeze();var i=[].slice,D={}.hasOwnProperty,a=s().use(l).use(p).use(d);function l(m,C){C.tree=m.parse(C.file)}function p(m,C,B){m.run(C.tree,C.file,q);function q(L,w,O){L?B(L):(C.tree=w,C.file=O,B())}}function d(m,C){var B=m.stringify(C.tree,C.file);B==null||(typeof B==\"string\"||t(B)?C.file.contents=B:C.file.result=B)}function g(){var m=[],C=s(),B={},q=-1,L;return w.data=T,w.freeze=O,w.attachers=m,w.use=P,w.parse=j,w.stringify=X,w.run=$,w.runSync=U,w.process=R,w.processSync=J,w;function w(){for(var z=g(),M=-1;++Mc)&&(!B||T===n)){A=L-1,L++,B&&L++,j=L;break}}else O===i&&(L++,T=h.charCodeAt(L+1));L++}if(j!==void 0)return m?!0:($=h.slice(P,A+1),v(h.slice(0,j))({type:\"inlineMath\",value:$,data:{hName:\"span\",hProperties:{className:D.concat(B&&F.inlineMathDouble?[a]:[])},hChildren:[{type:\"text\",value:$}]}}))}}}}function d(g){let F=g.prototype;F.visitors.inlineMath=E;function E(x){let f=\"$\";return(x.data&&x.data.hProperties&&x.data.hProperties.className||[]).includes(a)&&(f=\"$$\"),f+x.value+f}}}}),t2=S({\"node_modules/remark-math/block.js\"(e,r){I();var u=Xi();r.exports=a;var t=10,o=32,n=36,s=`\n`,c=\"$\",i=2,D=[\"math\",\"math-display\"];function a(){let d=this.Parser,g=this.Compiler;u.isRemarkParser(d)&&l(d),u.isRemarkCompiler(g)&&p(g)}function l(d){let g=d.prototype,F=g.blockMethods,E=g.interruptParagraph,x=g.interruptList,f=g.interruptBlockquote;g.blockTokenizers.math=b,F.splice(F.indexOf(\"fencedCode\")+1,0,\"math\"),E.splice(E.indexOf(\"fencedCode\")+1,0,[\"math\"]),x.splice(x.indexOf(\"fencedCode\")+1,0,[\"math\"]),f.splice(f.indexOf(\"fencedCode\")+1,0,[\"math\"]);function b(v,h,m){var C=h.length,B=0;let q,L,w,O,T,P,A,j,$,U,X;for(;BU&&h.charCodeAt(O-1)===o;)O--;for(;O>U&&h.charCodeAt(O-1)===n;)$++,O--;for(P<=$&&h.indexOf(c,U)===O&&(j=!0,X=O);U<=X&&U-BU&&h.charCodeAt(X-1)===o;)X--;if((!j||U!==X)&&L.push(h.slice(U,X)),j)break;B=w+1,w=h.indexOf(s,B+1),w=w===-1?C:w}return L=L.join(`\n`),v(h.slice(0,w))({type:\"math\",value:L,data:{hName:\"div\",hProperties:{className:D.concat()},hChildren:[{type:\"text\",value:L}]}})}}}}function p(d){let g=d.prototype;g.visitors.math=F;function F(E){return`$$\n`+E.value+`\n$$`}}}}),n2=S({\"node_modules/remark-math/index.js\"(e,r){I();var u=u2(),t=t2();r.exports=o;function o(n){var s=n||{};t.call(this,s),u.call(this,s)}}}),i2=S({\"node_modules/remark-footnotes/index.js\"(e,r){\"use strict\";I(),r.exports=g;var u=9,t=10,o=32,n=33,s=58,c=91,i=92,D=93,a=94,l=96,p=4,d=1024;function g(h){var m=this.Parser,C=this.Compiler;F(m)&&x(m,h),E(C)&&f(C)}function F(h){return Boolean(h&&h.prototype&&h.prototype.blockTokenizers)}function E(h){return Boolean(h&&h.prototype&&h.prototype.visitors)}function x(h,m){for(var C=m||{},B=h.prototype,q=B.blockTokenizers,L=B.inlineTokenizers,w=B.blockMethods,O=B.inlineMethods,T=q.definition,P=L.reference,A=[],j=-1,$=w.length,U;++j<$;)U=w[j],!(U===\"newline\"||U===\"indentedCode\"||U===\"paragraph\"||U===\"footnoteDefinition\")&&A.push([U]);A.push([\"footnoteDefinition\"]),C.inlineNotes&&(b(O,\"reference\",\"inlineNote\"),L.inlineNote=J),b(w,\"definition\",\"footnoteDefinition\"),b(O,\"reference\",\"footnoteCall\"),q.definition=M,q.footnoteDefinition=X,L.footnoteCall=R,L.reference=z,B.interruptFootnoteDefinition=A,z.locator=P.locator,R.locator=G,J.locator=k;function X(y,_,N){for(var V=this,W=V.interruptFootnoteDefinition,K=V.offset,ee=_.length+1,Y=0,te=[],De,le,ne,Z,Q,fe,be,pe,he,oe,de,ie,re;Yp&&(oe=void 0,de=Y);else{if(oe0&&(re=ie[ee-1],re.contentStart===re.contentEnd);)ee--;for(fe=y(_.slice(0,re.contentEnd));++Y-{3}|\\\\+{3})(?[^\\\\n]*)\\\\n(?:|(?.*?)\\\\n)(?\\\\k|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function t(o){let n=o.match(u);if(!n)return{content:o};let{startDelimiter:s,language:c,value:i=\"\",endDelimiter:D}=n.groups,a=c.trim()||\"yaml\";if(s===\"+++\"&&(a=\"toml\"),a!==\"yaml\"&&s!==D)return{content:o};let[l]=n;return{frontMatter:{type:\"front-matter\",lang:a,value:i,startDelimiter:s,endDelimiter:D,raw:l.replace(/\\n$/,\"\")},content:l.replace(/[^\\n]/g,\" \")+o.slice(l.length)}}r.exports=t}}),a2=S({\"src/language-markdown/pragma.js\"(e,r){\"use strict\";I();var u=Wi(),t=[\"format\",\"prettier\"];function o(n){let s=\"@(\".concat(t.join(\"|\"),\")\"),c=new RegExp([\"\"),\"{\\\\s*\\\\/\\\\*\\\\s*\".concat(s,\"\\\\s*\\\\*\\\\/\\\\s*}\"),``)].join(\"|\"),\"m\"),i=n.match(c);return(i==null?void 0:i.index)===0}r.exports={startWithPragma:o,hasPragma:n=>o(u(n).content.trimStart()),insertPragma:n=>{let s=u(n),c=\"\");return s.frontMatter?\"\".concat(s.frontMatter.raw,`\n\n`).concat(c,`\n\n`).concat(s.content):\"\".concat(c,`\n\n`).concat(s.content)}}}}),Ki=S({\"src/language-markdown/loc.js\"(e,r){\"use strict\";I();function u(o){return o.position.start.offset}function t(o){return o.position.end.offset}r.exports={locStart:u,locEnd:t}}}),Yi=S({\"src/language-markdown/mdx.js\"(e,r){\"use strict\";I();var u=/^import\\s/,t=/^export\\s/,o=\"[a-z][a-z0-9]*(\\\\.[a-z][a-z0-9]*)*|\",n=/|/,s=/^{\\s*\\/\\*(.*)\\*\\/\\s*}/,c=`\n\n`,i=d=>u.test(d),D=d=>t.test(d),a=(d,g)=>{let F=g.indexOf(c),E=g.slice(0,F);if(D(E)||i(E))return d(E)({type:D(E)?\"export\":\"import\",value:E})},l=(d,g)=>{let F=s.exec(g);if(F)return d(F[0])({type:\"esComment\",value:F[1].trim()})};a.locator=d=>D(d)||i(d)?-1:1,l.locator=(d,g)=>d.indexOf(\"{\",g);function p(){let{Parser:d}=this,{blockTokenizers:g,blockMethods:F,inlineTokenizers:E,inlineMethods:x}=d.prototype;g.esSyntax=a,E.esComment=l,F.splice(F.indexOf(\"paragraph\"),0,\"esSyntax\"),x.splice(x.indexOf(\"text\"),0,\"esComment\")}r.exports={esSyntax:p,BLOCKS_REGEX:o,COMMENT_REGEX:n}}}),Ji={};Li(Ji,{default:()=>o2});function o2(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}var s2=Pe({\"node_modules/escape-string-regexp/index.js\"(){I()}}),c2=S({\"src/utils/get-last.js\"(e,r){\"use strict\";I();var u=t=>t[t.length-1];r.exports=u}}),Zi=S({\"node_modules/semver/internal/debug.js\"(e,r){I();var u=typeof Ze==\"object\"&&Ze.env&&Ze.env.NODE_DEBUG&&/\\bsemver\\b/i.test(Ze.env.NODE_DEBUG)?function(){for(var t=arguments.length,o=new Array(t),n=0;n{};r.exports=u}}),Qi=S({\"node_modules/semver/internal/constants.js\"(e,r){I();var u=\"2.0.0\",t=256,o=Number.MAX_SAFE_INTEGER||9007199254740991,n=16;r.exports={SEMVER_SPEC_VERSION:u,MAX_LENGTH:t,MAX_SAFE_INTEGER:o,MAX_SAFE_COMPONENT_LENGTH:n}}}),l2=S({\"node_modules/semver/internal/re.js\"(e,r){I();var{MAX_SAFE_COMPONENT_LENGTH:u}=Qi(),t=Zi();e=r.exports={};var o=e.re=[],n=e.src=[],s=e.t={},c=0,i=(D,a,l)=>{let p=c++;t(D,p,a),s[D]=p,n[p]=a,o[p]=new RegExp(a,l?\"g\":void 0)};i(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\"),i(\"NUMERICIDENTIFIERLOOSE\",\"[0-9]+\"),i(\"NONNUMERICIDENTIFIER\",\"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\"),i(\"MAINVERSION\",\"(\".concat(n[s.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIER],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIER],\")\")),i(\"MAINVERSIONLOOSE\",\"(\".concat(n[s.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(n[s.NUMERICIDENTIFIERLOOSE],\")\")),i(\"PRERELEASEIDENTIFIER\",\"(?:\".concat(n[s.NUMERICIDENTIFIER],\"|\").concat(n[s.NONNUMERICIDENTIFIER],\")\")),i(\"PRERELEASEIDENTIFIERLOOSE\",\"(?:\".concat(n[s.NUMERICIDENTIFIERLOOSE],\"|\").concat(n[s.NONNUMERICIDENTIFIER],\")\")),i(\"PRERELEASE\",\"(?:-(\".concat(n[s.PRERELEASEIDENTIFIER],\"(?:\\\\.\").concat(n[s.PRERELEASEIDENTIFIER],\")*))\")),i(\"PRERELEASELOOSE\",\"(?:-?(\".concat(n[s.PRERELEASEIDENTIFIERLOOSE],\"(?:\\\\.\").concat(n[s.PRERELEASEIDENTIFIERLOOSE],\")*))\")),i(\"BUILDIDENTIFIER\",\"[0-9A-Za-z-]+\"),i(\"BUILD\",\"(?:\\\\+(\".concat(n[s.BUILDIDENTIFIER],\"(?:\\\\.\").concat(n[s.BUILDIDENTIFIER],\")*))\")),i(\"FULLPLAIN\",\"v?\".concat(n[s.MAINVERSION]).concat(n[s.PRERELEASE],\"?\").concat(n[s.BUILD],\"?\")),i(\"FULL\",\"^\".concat(n[s.FULLPLAIN],\"$\")),i(\"LOOSEPLAIN\",\"[v=\\\\s]*\".concat(n[s.MAINVERSIONLOOSE]).concat(n[s.PRERELEASELOOSE],\"?\").concat(n[s.BUILD],\"?\")),i(\"LOOSE\",\"^\".concat(n[s.LOOSEPLAIN],\"$\")),i(\"GTLT\",\"((?:<|>)?=?)\"),i(\"XRANGEIDENTIFIERLOOSE\",\"\".concat(n[s.NUMERICIDENTIFIERLOOSE],\"|x|X|\\\\*\")),i(\"XRANGEIDENTIFIER\",\"\".concat(n[s.NUMERICIDENTIFIER],\"|x|X|\\\\*\")),i(\"XRANGEPLAIN\",\"[v=\\\\s]*(\".concat(n[s.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIER],\")(?:\").concat(n[s.PRERELEASE],\")?\").concat(n[s.BUILD],\"?)?)?\")),i(\"XRANGEPLAINLOOSE\",\"[v=\\\\s]*(\".concat(n[s.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(n[s.XRANGEIDENTIFIERLOOSE],\")(?:\").concat(n[s.PRERELEASELOOSE],\")?\").concat(n[s.BUILD],\"?)?)?\")),i(\"XRANGE\",\"^\".concat(n[s.GTLT],\"\\\\s*\").concat(n[s.XRANGEPLAIN],\"$\")),i(\"XRANGELOOSE\",\"^\".concat(n[s.GTLT],\"\\\\s*\").concat(n[s.XRANGEPLAINLOOSE],\"$\")),i(\"COERCE\",\"(^|[^\\\\d])(\\\\d{1,\".concat(u,\"})(?:\\\\.(\\\\d{1,\").concat(u,\"}))?(?:\\\\.(\\\\d{1,\").concat(u,\"}))?(?:$|[^\\\\d])\")),i(\"COERCERTL\",n[s.COERCE],!0),i(\"LONETILDE\",\"(?:~>?)\"),i(\"TILDETRIM\",\"(\\\\s*)\".concat(n[s.LONETILDE],\"\\\\s+\"),!0),e.tildeTrimReplace=\"$1~\",i(\"TILDE\",\"^\".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAIN],\"$\")),i(\"TILDELOOSE\",\"^\".concat(n[s.LONETILDE]).concat(n[s.XRANGEPLAINLOOSE],\"$\")),i(\"LONECARET\",\"(?:\\\\^)\"),i(\"CARETTRIM\",\"(\\\\s*)\".concat(n[s.LONECARET],\"\\\\s+\"),!0),e.caretTrimReplace=\"$1^\",i(\"CARET\",\"^\".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAIN],\"$\")),i(\"CARETLOOSE\",\"^\".concat(n[s.LONECARET]).concat(n[s.XRANGEPLAINLOOSE],\"$\")),i(\"COMPARATORLOOSE\",\"^\".concat(n[s.GTLT],\"\\\\s*(\").concat(n[s.LOOSEPLAIN],\")$|^$\")),i(\"COMPARATOR\",\"^\".concat(n[s.GTLT],\"\\\\s*(\").concat(n[s.FULLPLAIN],\")$|^$\")),i(\"COMPARATORTRIM\",\"(\\\\s*)\".concat(n[s.GTLT],\"\\\\s*(\").concat(n[s.LOOSEPLAIN],\"|\").concat(n[s.XRANGEPLAIN],\")\"),!0),e.comparatorTrimReplace=\"$1$2$3\",i(\"HYPHENRANGE\",\"^\\\\s*(\".concat(n[s.XRANGEPLAIN],\")\\\\s+-\\\\s+(\").concat(n[s.XRANGEPLAIN],\")\\\\s*$\")),i(\"HYPHENRANGELOOSE\",\"^\\\\s*(\".concat(n[s.XRANGEPLAINLOOSE],\")\\\\s+-\\\\s+(\").concat(n[s.XRANGEPLAINLOOSE],\")\\\\s*$\")),i(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\"),i(\"GTE0\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\"),i(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\")}}),D2=S({\"node_modules/semver/internal/parse-options.js\"(e,r){I();var u=[\"includePrerelease\",\"loose\",\"rtl\"],t=o=>o?typeof o!=\"object\"?{loose:!0}:u.filter(n=>o[n]).reduce((n,s)=>(n[s]=!0,n),{}):{};r.exports=t}}),f2=S({\"node_modules/semver/internal/identifiers.js\"(e,r){I();var u=/^[0-9]+$/,t=(n,s)=>{let c=u.test(n),i=u.test(s);return c&&i&&(n=+n,s=+s),n===s?0:c&&!i?-1:i&&!c?1:nt(s,n);r.exports={compareIdentifiers:t,rcompareIdentifiers:o}}}),p2=S({\"node_modules/semver/classes/semver.js\"(e,r){I();var u=Zi(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:o}=Qi(),{re:n,t:s}=l2(),c=D2(),{compareIdentifiers:i}=f2(),D=class{constructor(a,l){if(l=c(l),a instanceof D){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if(typeof a!=\"string\")throw new TypeError(\"Invalid Version: \".concat(a));if(a.length>t)throw new TypeError(\"version is longer than \".concat(t,\" characters\"));u(\"SemVer\",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;let p=a.trim().match(l.loose?n[s.LOOSE]:n[s.FULL]);if(!p)throw new TypeError(\"Invalid Version: \".concat(a));if(this.raw=a,this.major=+p[1],this.minor=+p[2],this.patch=+p[3],this.major>o||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>o||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>o||this.patch<0)throw new TypeError(\"Invalid patch version\");p[4]?this.prerelease=p[4].split(\".\").map(d=>{if(/^[0-9]+$/.test(d)){let g=+d;if(g>=0&&g=0;)typeof this.prerelease[p]==\"number\"&&(this.prerelease[p]++,p=-2);p===-1&&this.prerelease.push(0)}l&&(i(this.prerelease[0],l)===0?isNaN(this.prerelease[1])&&(this.prerelease=[l,0]):this.prerelease=[l,0]);break;default:throw new Error(\"invalid increment argument: \".concat(a))}return this.format(),this.raw=this.version,this}};r.exports=D}}),vu=S({\"node_modules/semver/functions/compare.js\"(e,r){I();var u=p2(),t=(o,n,s)=>new u(o,s).compare(new u(n,s));r.exports=t}}),d2=S({\"node_modules/semver/functions/lt.js\"(e,r){I();var u=vu(),t=(o,n,s)=>u(o,n,s)<0;r.exports=t}}),h2=S({\"node_modules/semver/functions/gte.js\"(e,r){I();var u=vu(),t=(o,n,s)=>u(o,n,s)>=0;r.exports=t}}),v2=S({\"src/utils/arrayify.js\"(e,r){\"use strict\";I(),r.exports=(u,t)=>Object.entries(u).map(o=>{let[n,s]=o;return Object.assign({[t]:n},s)})}}),m2=S({\"package.json\"(e,r){r.exports={version:\"2.7.1\"}}}),E2=S({\"node_modules/outdent/lib/index.js\"(e,r){\"use strict\";I(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.outdent=void 0;function u(){for(var f=[],b=0;btypeof l==\"string\"||typeof l==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",since:\"1.16.0\",description:\"JavaScript\"},{value:\"babel-flow\",since:\"1.16.0\",description:\"Flow\"},{value:\"babel-ts\",since:\"2.0.0\",description:\"TypeScript\"},{value:\"typescript\",since:\"1.4.0\",description:\"TypeScript\"},{value:\"acorn\",since:\"2.6.0\",description:\"JavaScript\"},{value:\"espree\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"meriyah\",since:\"2.2.0\",description:\"JavaScript\"},{value:\"css\",since:\"1.7.1\",description:\"CSS\"},{value:\"less\",since:\"1.7.1\",description:\"Less\"},{value:\"scss\",since:\"1.7.1\",description:\"SCSS\"},{value:\"json\",since:\"1.5.0\",description:\"JSON\"},{value:\"json5\",since:\"1.13.0\",description:\"JSON5\"},{value:\"json-stringify\",since:\"1.13.0\",description:\"JSON.stringify\"},{value:\"graphql\",since:\"1.5.0\",description:\"GraphQL\"},{value:\"markdown\",since:\"1.8.0\",description:\"Markdown\"},{value:\"mdx\",since:\"1.15.0\",description:\"MDX\"},{value:\"vue\",since:\"1.10.0\",description:\"Vue\"},{value:\"yaml\",since:\"1.14.0\",description:\"YAML\"},{value:\"glimmer\",since:\"2.3.0\",description:\"Ember / Handlebars\"},{value:\"html\",since:\"1.15.0\",description:\"HTML\"},{value:\"angular\",since:\"1.15.0\",description:\"Angular\"},{value:\"lwc\",since:\"1.17.0\",description:\"Lightning Web Components\"}]},plugins:{since:\"1.10.0\",type:\"path\",array:!0,default:[{value:[]}],category:i,description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin\",cliCategory:t},pluginSearchDirs:{since:\"1.13.0\",type:\"path\",array:!0,default:[{value:[]}],category:i,description:u(wi||(wi=je([`\n Custom directory that contains prettier plugins in node_modules subdirectory.\n Overrides default behavior when plugins are searched relatively to the location of Prettier.\n Multiple values are accepted.\n `]))),exception:l=>typeof l==\"string\"||typeof l==\"object\",cliName:\"plugin-search-dir\",cliCategory:t},printWidth:{since:\"0.0.0\",category:i,type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:\"1.4.0\",category:D,type:\"int\",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(ki||(ki=je([`\n Format code ending at a given character offset (exclusive).\n The range will extend forwards to the end of the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:o},rangeStart:{since:\"1.4.0\",category:D,type:\"int\",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:u(qi||(qi=je([`\n Format code starting at a given character offset.\n The range will extend backwards to the start of the first line containing the selected statement.\n This option cannot be used with --cursor-offset.\n `]))),cliCategory:o},requirePragma:{since:\"1.7.0\",category:D,type:\"boolean\",default:!1,description:u(_i||(_i=je([`\n Require either '@prettier' or '@format' to be present in the file's first docblock comment\n in order for it to be formatted.\n `]))),cliCategory:s},tabWidth:{type:\"int\",category:i,default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:\"1.0.0\",category:i,type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{since:\"2.1.0\",category:i,type:\"choice\",default:[{since:\"2.1.0\",value:\"auto\"}],description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};r.exports={CATEGORY_CONFIG:t,CATEGORY_EDITOR:o,CATEGORY_FORMAT:n,CATEGORY_OTHER:s,CATEGORY_OUTPUT:c,CATEGORY_GLOBAL:i,CATEGORY_SPECIAL:D,options:a}}}),g2=S({\"src/main/support.js\"(e,r){\"use strict\";I();var u={compare:vu(),lt:d2(),gte:h2()},t=v2(),o=m2().version,n=C2().options;function s(){let{plugins:i=[],showUnreleased:D=!1,showDeprecated:a=!1,showInternal:l=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},p=o.split(\"-\",1)[0],d=i.flatMap(f=>f.languages||[]).filter(F),g=t(Object.assign({},...i.map(f=>{let{options:b}=f;return b}),n),\"name\").filter(f=>F(f)&&E(f)).sort((f,b)=>f.name===b.name?0:f.name{f=Object.assign({},f),Array.isArray(f.default)&&(f.default=f.default.length===1?f.default[0].value:f.default.filter(F).sort((v,h)=>u.compare(h.since,v.since))[0].value),Array.isArray(f.choices)&&(f.choices=f.choices.filter(v=>F(v)&&E(v)),f.name===\"parser\"&&c(f,d,i));let b=Object.fromEntries(i.filter(v=>v.defaultOptions&&v.defaultOptions[f.name]!==void 0).map(v=>[v.name,v.defaultOptions[f.name]]));return Object.assign(Object.assign({},f),{},{pluginDefaults:b})});return{languages:d,options:g};function F(f){return D||!(\"since\"in f)||f.since&&u.gte(p,f.since)}function E(f){return a||!(\"deprecated\"in f)||f.deprecated&&u.lt(p,f.deprecated)}function x(f){if(l)return f;let{cliName:b,cliCategory:v,cliDescription:h}=f;return ql(f,kl)}}function c(i,D,a){let l=new Set(i.choices.map(p=>p.value));for(let p of D)if(p.parsers){for(let d of p.parsers)if(!l.has(d)){l.add(d);let g=a.find(E=>E.parsers&&E.parsers[d]),F=p.name;g&&g.name&&(F+=\" (plugin: \".concat(g.name,\")\")),i.choices.push({value:d,description:F})}}}r.exports={getSupportInfo:s}}}),F2=S({\"src/utils/is-non-empty-array.js\"(e,r){\"use strict\";I();function u(t){return Array.isArray(t)&&t.length>0}r.exports=u}});function A2(){let{onlyFirst:e=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"].join(\"|\");return new RegExp(r,e?void 0:\"g\")}var x2=Pe({\"node_modules/strip-ansi/node_modules/ansi-regex/index.js\"(){I()}});function b2(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a `string`, got `\".concat(typeof e,\"`\"));return e.replace(A2(),\"\")}var y2=Pe({\"node_modules/strip-ansi/index.js\"(){I(),x2()}});function B2(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var w2=Pe({\"node_modules/is-fullwidth-code-point/index.js\"(){I()}}),k2=S({\"node_modules/emoji-regex/index.js\"(e,r){\"use strict\";I(),r.exports=function(){return/\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\uD83D[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3])\\uFE0F|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g}}}),ea={};Li(ea,{default:()=>q2});function q2(e){if(typeof e!=\"string\"||e.length===0||(e=b2(e),e.length===0))return 0;e=e.replace((0,ra.default)(),\" \");let r=0;for(let u=0;u=127&&t<=159||t>=768&&t<=879||(t>65535&&u++,r+=B2(t)?2:1)}return r}var ra,_2=Pe({\"node_modules/string-width/index.js\"(){I(),y2(),w2(),ra=Nl(k2())}}),O2=S({\"src/utils/get-string-width.js\"(e,r){\"use strict\";I();var u=(_2(),ji(ea)).default,t=/[^\\x20-\\x7F]/;function o(n){return n?t.test(n)?u(n):n.length:0}r.exports=o}}),mu=S({\"src/utils/text/skip.js\"(e,r){\"use strict\";I();function u(c){return(i,D,a)=>{let l=a&&a.backwards;if(D===!1)return!1;let{length:p}=i,d=D;for(;d>=0&&dk[k.length-2];function E(k){return(y,_,N)=>{let V=N&&N.backwards;if(_===!1)return!1;let{length:W}=y,K=_;for(;K>=0&&K2&&arguments[2]!==void 0?arguments[2]:{},N=i(k,_.backwards?y-1:y,_),V=d(k,N,_);return N!==V}function f(k,y,_){for(let N=y;N<_;++N)if(k.charAt(N)===`\n`)return!0;return!1}function b(k,y,_){let N=_(y)-1;N=i(k,N,{backwards:!0}),N=d(k,N,{backwards:!0}),N=i(k,N,{backwards:!0});let V=d(k,N,{backwards:!0});return N!==V}function v(k,y){let _=null,N=y;for(;N!==_;)_=N,N=D(k,N),N=l(k,N),N=i(k,N);return N=p(k,N),N=d(k,N),N!==!1&&x(k,N)}function h(k,y,_){return v(k,_(y))}function m(k,y,_){return g(k,_(y))}function C(k,y,_){return k.charAt(m(k,y,_))}function B(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return i(k,_.backwards?y-1:y,_)!==y}function q(k,y){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,N=0;for(let V=_;VY?W:V}return K}function O(k,y){let _=k.slice(1,-1),N=y.parser===\"json\"||y.parser===\"json5\"&&y.quoteProps===\"preserve\"&&!y.singleQuote?'\"':y.__isInHtmlAttribute?\"'\":w(_,y.singleQuote?\"'\":'\"').quote;return T(_,N,!(y.parser===\"css\"||y.parser===\"less\"||y.parser===\"scss\"||y.__embeddedInHtml))}function T(k,y,_){let N=y==='\"'?\"'\":'\"',V=/\\\\(.)|([\"'])/gs,W=k.replace(V,(K,ee,Y)=>ee===N?ee:Y===y?\"\\\\\"+Y:Y||(_&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(ee)?ee:\"\\\\\"+ee));return y+W+y}function P(k){return k.toLowerCase().replace(/^([+-]?[\\d.]+e)(?:\\+|(-))?0*(\\d)/,\"$1$2$3\").replace(/^([+-]?[\\d.]+)e[+-]?0+$/,\"$1\").replace(/^([+-])?\\./,\"$10.\").replace(/(\\.\\d+?)0+(?=e|$)/,\"$1\").replace(/\\.(?=e|$)/,\"\")}function A(k,y){let _=k.match(new RegExp(\"(\".concat(u(y),\")+\"),\"g\"));return _===null?0:_.reduce((N,V)=>Math.max(N,V.length/y.length),0)}function j(k,y){let _=k.match(new RegExp(\"(\".concat(u(y),\")+\"),\"g\"));if(_===null)return 0;let N=new Map,V=0;for(let W of _){let K=W.length/y.length;N.set(K,!0),K>V&&(V=K)}for(let W=1;W{let{name:W}=V;return W.toLowerCase()===k})||_.find(V=>{let{aliases:W}=V;return Array.isArray(W)&&W.includes(k)})||_.find(V=>{let{extensions:W}=V;return Array.isArray(W)&&W.includes(\".\".concat(k))});return N&&N.parsers[0]}function z(k){return k&&k.type===\"front-matter\"}function M(k){let y=new WeakMap;return function(_){return y.has(_)||y.set(_,Symbol(k)),y.get(_)}}function G(k){let y=k.type||k.kind||\"(unknown type)\",_=String(k.name||k.id&&(typeof k.id==\"object\"?k.id.name:k.id)||k.key&&(typeof k.key==\"object\"?k.key.name:k.key)||k.value&&(typeof k.value==\"object\"?\"\":String(k.value))||k.operator||\"\");return _.length>20&&(_=_.slice(0,19)+\"\\u2026\"),y+(_?\" \"+_:\"\")}r.exports={inferParserByLanguage:J,getStringWidth:s,getMaxContinuousCount:A,getMinNotPresentContinuousCount:j,getPenultimate:F,getLast:t,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:g,getNextNonSpaceNonCommentCharacterIndex:m,getNextNonSpaceNonCommentCharacter:C,skip:E,skipWhitespace:c,skipSpaces:i,skipToLineEnd:D,skipEverythingButNewLine:a,skipInlineComment:l,skipTrailingComment:p,skipNewline:d,isNextLineEmptyAfterIndex:v,isNextLineEmpty:h,isPreviousLineEmpty:b,hasNewline:x,hasNewlineInRange:f,hasSpaces:B,getAlignmentSize:q,getIndentSize:L,getPreferredQuote:w,printString:O,printNumber:P,makeString:T,addLeadingComment:U,addDanglingComment:X,addTrailingComment:R,isFrontMatterNode:z,isNonEmptyArray:n,createGroupIdMapper:M}}}),T2=S({\"src/language-markdown/constants.evaluate.js\"(e,r){r.exports={cjkPattern:\"(?:[\\\\u02ea-\\\\u02eb\\\\u1100-\\\\u11ff\\\\u2e80-\\\\u2e99\\\\u2e9b-\\\\u2ef3\\\\u2f00-\\\\u2fd5\\\\u2ff0-\\\\u303f\\\\u3041-\\\\u3096\\\\u3099-\\\\u309f\\\\u30a1-\\\\u30fa\\\\u30fc-\\\\u30ff\\\\u3105-\\\\u312f\\\\u3131-\\\\u318e\\\\u3190-\\\\u3191\\\\u3196-\\\\u31ba\\\\u31c0-\\\\u31e3\\\\u31f0-\\\\u321e\\\\u322a-\\\\u3247\\\\u3260-\\\\u327e\\\\u328a-\\\\u32b0\\\\u32c0-\\\\u32cb\\\\u32d0-\\\\u3370\\\\u337b-\\\\u337f\\\\u33e0-\\\\u33fe\\\\u3400-\\\\u4db5\\\\u4e00-\\\\u9fef\\\\ua960-\\\\ua97c\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\uf900-\\\\ufa6d\\\\ufa70-\\\\ufad9\\\\ufe10-\\\\ufe1f\\\\ufe30-\\\\ufe6f\\\\uff00-\\\\uffef]|[\\\\ud840-\\\\ud868\\\\ud86a-\\\\ud86c\\\\ud86f-\\\\ud872\\\\ud874-\\\\ud879][\\\\udc00-\\\\udfff]|\\\\ud82c[\\\\udc00-\\\\udd1e\\\\udd50-\\\\udd52\\\\udd64-\\\\udd67]|\\\\ud83c[\\\\ude00\\\\ude50-\\\\ude51]|\\\\ud869[\\\\udc00-\\\\uded6\\\\udf00-\\\\udfff]|\\\\ud86d[\\\\udc00-\\\\udf34\\\\udf40-\\\\udfff]|\\\\ud86e[\\\\udc00-\\\\udc1d\\\\udc20-\\\\udfff]|\\\\ud873[\\\\udc00-\\\\udea1\\\\udeb0-\\\\udfff]|\\\\ud87a[\\\\udc00-\\\\udfe0]|\\\\ud87e[\\\\udc00-\\\\ude1d])(?:[\\\\ufe00-\\\\ufe0f]|\\\\udb40[\\\\udd00-\\\\uddef])?\",kPattern:\"[\\\\u1100-\\\\u11ff\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3013-\\\\u301f\\\\u302e-\\\\u3030\\\\u3037\\\\u30fb\\\\u3131-\\\\u318e\\\\u3200-\\\\u321e\\\\u3260-\\\\u327e\\\\ua960-\\\\ua97c\\\\uac00-\\\\ud7a3\\\\ud7b0-\\\\ud7c6\\\\ud7cb-\\\\ud7fb\\\\ufe45-\\\\ufe46\\\\uff61-\\\\uff65\\\\uffa0-\\\\uffbe\\\\uffc2-\\\\uffc7\\\\uffca-\\\\uffcf\\\\uffd2-\\\\uffd7\\\\uffda-\\\\uffdc]\",punctuationPattern:\"[\\\\u0021-\\\\u002f\\\\u003a-\\\\u0040\\\\u005b-\\\\u0060\\\\u007b-\\\\u007e\\\\u00a1\\\\u00a7\\\\u00ab\\\\u00b6-\\\\u00b7\\\\u00bb\\\\u00bf\\\\u037e\\\\u0387\\\\u055a-\\\\u055f\\\\u0589-\\\\u058a\\\\u05be\\\\u05c0\\\\u05c3\\\\u05c6\\\\u05f3-\\\\u05f4\\\\u0609-\\\\u060a\\\\u060c-\\\\u060d\\\\u061b\\\\u061e-\\\\u061f\\\\u066a-\\\\u066d\\\\u06d4\\\\u0700-\\\\u070d\\\\u07f7-\\\\u07f9\\\\u0830-\\\\u083e\\\\u085e\\\\u0964-\\\\u0965\\\\u0970\\\\u09fd\\\\u0a76\\\\u0af0\\\\u0c77\\\\u0c84\\\\u0df4\\\\u0e4f\\\\u0e5a-\\\\u0e5b\\\\u0f04-\\\\u0f12\\\\u0f14\\\\u0f3a-\\\\u0f3d\\\\u0f85\\\\u0fd0-\\\\u0fd4\\\\u0fd9-\\\\u0fda\\\\u104a-\\\\u104f\\\\u10fb\\\\u1360-\\\\u1368\\\\u1400\\\\u166e\\\\u169b-\\\\u169c\\\\u16eb-\\\\u16ed\\\\u1735-\\\\u1736\\\\u17d4-\\\\u17d6\\\\u17d8-\\\\u17da\\\\u1800-\\\\u180a\\\\u1944-\\\\u1945\\\\u1a1e-\\\\u1a1f\\\\u1aa0-\\\\u1aa6\\\\u1aa8-\\\\u1aad\\\\u1b5a-\\\\u1b60\\\\u1bfc-\\\\u1bff\\\\u1c3b-\\\\u1c3f\\\\u1c7e-\\\\u1c7f\\\\u1cc0-\\\\u1cc7\\\\u1cd3\\\\u2010-\\\\u2027\\\\u2030-\\\\u2043\\\\u2045-\\\\u2051\\\\u2053-\\\\u205e\\\\u207d-\\\\u207e\\\\u208d-\\\\u208e\\\\u2308-\\\\u230b\\\\u2329-\\\\u232a\\\\u2768-\\\\u2775\\\\u27c5-\\\\u27c6\\\\u27e6-\\\\u27ef\\\\u2983-\\\\u2998\\\\u29d8-\\\\u29db\\\\u29fc-\\\\u29fd\\\\u2cf9-\\\\u2cfc\\\\u2cfe-\\\\u2cff\\\\u2d70\\\\u2e00-\\\\u2e2e\\\\u2e30-\\\\u2e4f\\\\u3001-\\\\u3003\\\\u3008-\\\\u3011\\\\u3014-\\\\u301f\\\\u3030\\\\u303d\\\\u30a0\\\\u30fb\\\\ua4fe-\\\\ua4ff\\\\ua60d-\\\\ua60f\\\\ua673\\\\ua67e\\\\ua6f2-\\\\ua6f7\\\\ua874-\\\\ua877\\\\ua8ce-\\\\ua8cf\\\\ua8f8-\\\\ua8fa\\\\ua8fc\\\\ua92e-\\\\ua92f\\\\ua95f\\\\ua9c1-\\\\ua9cd\\\\ua9de-\\\\ua9df\\\\uaa5c-\\\\uaa5f\\\\uaade-\\\\uaadf\\\\uaaf0-\\\\uaaf1\\\\uabeb\\\\ufd3e-\\\\ufd3f\\\\ufe10-\\\\ufe19\\\\ufe30-\\\\ufe52\\\\ufe54-\\\\ufe61\\\\ufe63\\\\ufe68\\\\ufe6a-\\\\ufe6b\\\\uff01-\\\\uff03\\\\uff05-\\\\uff0a\\\\uff0c-\\\\uff0f\\\\uff1a-\\\\uff1b\\\\uff1f-\\\\uff20\\\\uff3b-\\\\uff3d\\\\uff3f\\\\uff5b\\\\uff5d\\\\uff5f-\\\\uff65]|\\\\ud800[\\\\udd00-\\\\udd02\\\\udf9f\\\\udfd0]|\\\\ud801[\\\\udd6f]|\\\\ud802[\\\\udc57\\\\udd1f\\\\udd3f\\\\ude50-\\\\ude58\\\\ude7f\\\\udef0-\\\\udef6\\\\udf39-\\\\udf3f\\\\udf99-\\\\udf9c]|\\\\ud803[\\\\udf55-\\\\udf59]|\\\\ud804[\\\\udc47-\\\\udc4d\\\\udcbb-\\\\udcbc\\\\udcbe-\\\\udcc1\\\\udd40-\\\\udd43\\\\udd74-\\\\udd75\\\\uddc5-\\\\uddc8\\\\uddcd\\\\udddb\\\\udddd-\\\\udddf\\\\ude38-\\\\ude3d\\\\udea9]|\\\\ud805[\\\\udc4b-\\\\udc4f\\\\udc5b\\\\udc5d\\\\udcc6\\\\uddc1-\\\\uddd7\\\\ude41-\\\\ude43\\\\ude60-\\\\ude6c\\\\udf3c-\\\\udf3e]|\\\\ud806[\\\\udc3b\\\\udde2\\\\ude3f-\\\\ude46\\\\ude9a-\\\\ude9c\\\\ude9e-\\\\udea2]|\\\\ud807[\\\\udc41-\\\\udc45\\\\udc70-\\\\udc71\\\\udef7-\\\\udef8\\\\udfff]|\\\\ud809[\\\\udc70-\\\\udc74]|\\\\ud81a[\\\\ude6e-\\\\ude6f\\\\udef5\\\\udf37-\\\\udf3b\\\\udf44]|\\\\ud81b[\\\\ude97-\\\\ude9a\\\\udfe2]|\\\\ud82f[\\\\udc9f]|\\\\ud836[\\\\ude87-\\\\ude8b]|\\\\ud83a[\\\\udd5e-\\\\udd5f]\"}}}),N2=S({\"src/language-markdown/utils.js\"(e,r){\"use strict\";I();var{getLast:u}=S2(),{locStart:t,locEnd:o}=Ki(),{cjkPattern:n,kPattern:s,punctuationPattern:c}=T2(),i=[\"liquidNode\",\"inlineCode\",\"emphasis\",\"esComment\",\"strong\",\"delete\",\"wikiLink\",\"link\",\"linkReference\",\"image\",\"imageReference\",\"footnote\",\"footnoteReference\",\"sentence\",\"whitespace\",\"word\",\"break\",\"inlineMath\"],D=[...i,\"tableCell\",\"paragraph\",\"heading\"],a=new RegExp(s),l=new RegExp(c);function p(f,b){let v=\"non-cjk\",h=\"cj-letter\",m=\"k-letter\",C=\"cjk-punctuation\",B=[],q=(b.proseWrap===\"preserve\"?f:f.replace(new RegExp(\"(\".concat(n,`)\n(`).concat(n,\")\"),\"g\"),\"$1$2\")).split(/([\\t\\n ]+)/);for(let[w,O]of q.entries()){if(w%2===1){B.push({type:\"whitespace\",value:/\\n/.test(O)?`\n`:\" \"});continue}if((w===0||w===q.length-1)&&O===\"\")continue;let T=O.split(new RegExp(\"(\".concat(n,\")\")));for(let[P,A]of T.entries())if(!((P===0||P===T.length-1)&&A===\"\")){if(P%2===0){A!==\"\"&&L({type:\"word\",value:A,kind:v,hasLeadingPunctuation:l.test(A[0]),hasTrailingPunctuation:l.test(u(A))});continue}L(l.test(A)?{type:\"word\",value:A,kind:C,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:\"word\",value:A,kind:a.test(A)?m:h,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1})}}return B;function L(w){let O=u(B);O&&O.type===\"word\"&&(O.kind===v&&w.kind===h&&!O.hasTrailingPunctuation||O.kind===h&&w.kind===v&&!w.hasLeadingPunctuation?B.push({type:\"whitespace\",value:\" \"}):!T(v,C)&&![O.value,w.value].some(P=>/\\u3000/.test(P))&&B.push({type:\"whitespace\",value:\"\"})),B.push(w);function T(P,A){return O.kind===P&&w.kind===A||O.kind===A&&w.kind===P}}}function d(f,b){let[,v,h,m]=b.slice(f.position.start.offset,f.position.end.offset).match(/^\\s*(\\d+)(\\.|\\))(\\s*)/);return{numberText:v,marker:h,leadingSpaces:m}}function g(f,b){if(!f.ordered||f.children.length<2)return!1;let v=Number(d(f.children[0],b.originalText).numberText),h=Number(d(f.children[1],b.originalText).numberText);if(v===0&&f.children.length>2){let m=Number(d(f.children[2],b.originalText).numberText);return h===1&&m===1}return h===1}function F(f,b){let{value:v}=f;return f.position.end.offset===b.length&&v.endsWith(`\n`)&&b.endsWith(`\n`)?v.slice(0,-1):v}function E(f,b){return function v(h,m,C){let B=Object.assign({},b(h,m,C));return B.children&&(B.children=B.children.map((q,L)=>v(q,L,[B,...C]))),B}(f,null,[])}function x(f){if((f==null?void 0:f.type)!==\"link\"||f.children.length!==1)return!1;let[b]=f.children;return t(f)===t(b)&&o(f)===o(b)}r.exports={mapAst:E,splitText:p,punctuationPattern:c,getFencedCodeBlockValue:F,getOrderedListItemInfo:d,hasGitDiffFriendlyOrderedList:g,INLINE_NODE_TYPES:i,INLINE_NODE_WRAPPER_TYPES:D,isAutolink:x}}}),L2=S({\"src/language-markdown/unified-plugins/html-to-jsx.js\"(e,r){\"use strict\";I();var u=Yi(),{mapAst:t,INLINE_NODE_WRAPPER_TYPES:o}=N2();function n(){return s=>t(s,(c,i,D)=>{let[a]=D;return c.type!==\"html\"||u.COMMENT_REGEX.test(c.value)||o.includes(a.type)?c:Object.assign(Object.assign({},c),{},{type:\"jsx\"})})}r.exports=n}}),R2=S({\"src/language-markdown/unified-plugins/front-matter.js\"(e,r){\"use strict\";I();var u=Wi();function t(){let o=this.Parser.prototype;o.blockMethods=[\"frontMatter\",...o.blockMethods],o.blockTokenizers.frontMatter=n;function n(s,c){let i=u(c);if(i.frontMatter)return s(i.frontMatter.raw)(i.frontMatter)}n.onlyAtStart=!0}r.exports=t}}),j2=S({\"src/language-markdown/unified-plugins/liquid.js\"(e,r){\"use strict\";I();function u(){let t=this.Parser.prototype,o=t.inlineMethods;o.splice(o.indexOf(\"text\"),0,\"liquid\"),t.inlineTokenizers.liquid=n;function n(s,c){let i=c.match(/^({%.*?%}|{{.*?}})/s);if(i)return s(i[0])({type:\"liquidNode\",value:i[0]})}n.locator=function(s,c){return s.indexOf(\"{\",c)}}r.exports=u}}),P2=S({\"src/language-markdown/unified-plugins/wiki-link.js\"(e,r){\"use strict\";I();function u(){let t=\"wikiLink\",o=/^\\[\\[(?.+?)]]/s,n=this.Parser.prototype,s=n.inlineMethods;s.splice(s.indexOf(\"link\"),0,t),n.inlineTokenizers.wikiLink=c;function c(i,D){let a=o.exec(D);if(a){let l=a.groups.linkContents.trim();return i(a[0])({type:t,value:l})}}c.locator=function(i,D){return i.indexOf(\"[\",D)}}r.exports=u}}),M2=S({\"src/language-markdown/unified-plugins/loose-items.js\"(e,r){\"use strict\";I();function u(){let t=this.Parser.prototype,o=t.blockTokenizers.list;function n(s,c,i){return c.type===\"listItem\"&&(c.loose=c.spread||s.charAt(s.length-1)===`\n`,c.loose&&(i.loose=!0)),c}t.blockTokenizers.list=function(c,i,D){function a(l){let p=c(l);function d(g,F){return p(n(l,g,F),F)}return d.reset=function(g,F){return p.reset(n(l,g,F),F)},d}return a.now=c.now,o.call(this,a,i,D)}}r.exports=u}});I();var z2=GD(),G2=r2(),U2=n2(),V2=i2(),$2=a2(),{locStart:H2,locEnd:X2}=Ki(),Si=Yi(),W2=L2(),K2=R2(),Y2=j2(),J2=P2(),Z2=M2();function ia(e){let{isMDX:r}=e;return u=>{let t=G2().use(z2,Object.assign({commonmark:!0},r&&{blocks:[Si.BLOCKS_REGEX]})).use(V2).use(K2).use(U2).use(r?Si.esSyntax:Ti).use(Y2).use(r?W2:Ti).use(J2).use(Z2);return t.runSync(t.parse(u))}}function Ti(e){return e}var aa={astFormat:\"mdast\",hasPragma:$2.hasPragma,locStart:H2,locEnd:X2},Ni=Object.assign(Object.assign({},aa),{},{parse:ia({isMDX:!1})}),Q2=Object.assign(Object.assign({},aa),{},{parse:ia({isMDX:!0})});oa.exports={parsers:{remark:Ni,markdown:Ni,mdx:Q2}}});return ef();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.meriyah=e()}})(function(){\"use strict\";var F=(d,m)=>()=>(m||d((m={exports:{}}).exports,m),m.exports);var i2=F((E3,Ce)=>{var A1=function(d){return d&&d.Math==Math&&d};Ce.exports=A1(typeof globalThis==\"object\"&&globalThis)||A1(typeof window==\"object\"&&window)||A1(typeof self==\"object\"&&self)||A1(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var L2=F((D3,we)=>{we.exports=function(d){try{return!!d()}catch{return!0}}});var J2=F((C3,qe)=>{var Ut=L2();qe.exports=!Ut(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var x1=F((w3,Be)=>{var Jt=L2();Be.exports=!Jt(function(){var d=function(){}.bind();return typeof d!=\"function\"||d.hasOwnProperty(\"prototype\")})});var P1=F((q3,Se)=>{var Xt=x1(),y1=Function.prototype.call;Se.exports=Xt?y1.bind(y1):function(){return y1.apply(y1,arguments)}});var Oe=F(Le=>{\"use strict\";var Fe={}.propertyIsEnumerable,Te=Object.getOwnPropertyDescriptor,zt=Te&&!Fe.call({1:2},1);Le.f=zt?function(m){var k=Te(this,m);return!!k&&k.enumerable}:Fe});var p1=F((S3,Ie)=>{Ie.exports=function(d,m){return{enumerable:!(d&1),configurable:!(d&2),writable:!(d&4),value:m}}});var D2=F((F3,Ve)=>{var Re=x1(),Ne=Function.prototype,Ht=Ne.bind,uu=Ne.call,Kt=Re&&Ht.bind(uu,uu);Ve.exports=Re?function(d){return d&&Kt(d)}:function(d){return d&&function(){return uu.apply(d,arguments)}}});var Me=F((T3,_e)=>{var je=D2(),Wt=je({}.toString),Yt=je(\"\".slice);_e.exports=function(d){return Yt(Wt(d),8,-1)}});var Je=F((L3,Ue)=>{var $t=i2(),Zt=D2(),Qt=L2(),Gt=Me(),eu=$t.Object,xt=Zt(\"\".split);Ue.exports=Qt(function(){return!eu(\"z\").propertyIsEnumerable(0)})?function(d){return Gt(d)==\"String\"?xt(d,\"\"):eu(d)}:eu});var iu=F((O3,Xe)=>{var pt=i2(),uo=pt.TypeError;Xe.exports=function(d){if(d==null)throw uo(\"Can't call method on \"+d);return d}});var E1=F((I3,ze)=>{var eo=Je(),io=iu();ze.exports=function(d){return eo(io(d))}});var C2=F((R3,He)=>{He.exports=function(d){return typeof d==\"function\"}});var Z2=F((N3,Ke)=>{var no=C2();Ke.exports=function(d){return typeof d==\"object\"?d!==null:no(d)}});var D1=F((V3,We)=>{var nu=i2(),to=C2(),oo=function(d){return to(d)?d:void 0};We.exports=function(d,m){return arguments.length<2?oo(nu[d]):nu[d]&&nu[d][m]}});var $e=F((j3,Ye)=>{var lo=D2();Ye.exports=lo({}.isPrototypeOf)});var Qe=F((_3,Ze)=>{var fo=D1();Ze.exports=fo(\"navigator\",\"userAgent\")||\"\"});var ni=F((M3,ii)=>{var ei=i2(),tu=Qe(),Ge=ei.process,xe=ei.Deno,pe=Ge&&Ge.versions||xe&&xe.version,ui=pe&&pe.v8,P2,C1;ui&&(P2=ui.split(\".\"),C1=P2[0]>0&&P2[0]<4?1:+(P2[0]+P2[1]));!C1&&tu&&(P2=tu.match(/Edge\\/(\\d+)/),(!P2||P2[1]>=74)&&(P2=tu.match(/Chrome\\/(\\d+)/),P2&&(C1=+P2[1])));ii.exports=C1});var ou=F((U3,oi)=>{var ti=ni(),co=L2();oi.exports=!!Object.getOwnPropertySymbols&&!co(function(){var d=Symbol();return!String(d)||!(Object(d)instanceof Symbol)||!Symbol.sham&&ti&&ti<41})});var lu=F((J3,li)=>{var so=ou();li.exports=so&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var fu=F((X3,fi)=>{var ao=i2(),go=D1(),ho=C2(),mo=$e(),bo=lu(),ko=ao.Object;fi.exports=bo?function(d){return typeof d==\"symbol\"}:function(d){var m=go(\"Symbol\");return ho(m)&&mo(m.prototype,ko(d))}});var si=F((z3,ci)=>{var ro=i2(),vo=ro.String;ci.exports=function(d){try{return vo(d)}catch{return\"Object\"}}});var di=F((H3,ai)=>{var Ao=i2(),yo=C2(),Po=si(),Eo=Ao.TypeError;ai.exports=function(d){if(yo(d))return d;throw Eo(Po(d)+\" is not a function\")}});var hi=F((K3,gi)=>{var Do=di();gi.exports=function(d,m){var k=d[m];return k==null?void 0:Do(k)}});var bi=F((W3,mi)=>{var Co=i2(),cu=P1(),su=C2(),au=Z2(),wo=Co.TypeError;mi.exports=function(d,m){var k,f;if(m===\"string\"&&su(k=d.toString)&&!au(f=cu(k,d))||su(k=d.valueOf)&&!au(f=cu(k,d))||m!==\"string\"&&su(k=d.toString)&&!au(f=cu(k,d)))return f;throw wo(\"Can't convert object to primitive value\")}});var ri=F((Y3,ki)=>{ki.exports=!1});var w1=F(($3,Ai)=>{var vi=i2(),qo=Object.defineProperty;Ai.exports=function(d,m){try{qo(vi,d,{value:m,configurable:!0,writable:!0})}catch{vi[d]=m}return m}});var q1=F((Z3,Pi)=>{var Bo=i2(),So=w1(),yi=\"__core-js_shared__\",Fo=Bo[yi]||So(yi,{});Pi.exports=Fo});var du=F((Q3,Di)=>{var To=ri(),Ei=q1();(Di.exports=function(d,m){return Ei[d]||(Ei[d]=m!==void 0?m:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:To?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var wi=F((G3,Ci)=>{var Lo=i2(),Oo=iu(),Io=Lo.Object;Ci.exports=function(d){return Io(Oo(d))}});var O2=F((x3,qi)=>{var Ro=D2(),No=wi(),Vo=Ro({}.hasOwnProperty);qi.exports=Object.hasOwn||function(m,k){return Vo(No(m),k)}});var gu=F((p3,Bi)=>{var jo=D2(),_o=0,Mo=Math.random(),Uo=jo(1 .toString);Bi.exports=function(d){return\"Symbol(\"+(d===void 0?\"\":d)+\")_\"+Uo(++_o+Mo,36)}});var Ii=F((u6,Oi)=>{var Jo=i2(),Xo=du(),Si=O2(),zo=gu(),Fi=ou(),Li=lu(),Q2=Xo(\"wks\"),X2=Jo.Symbol,Ti=X2&&X2.for,Ho=Li?X2:X2&&X2.withoutSetter||zo;Oi.exports=function(d){if(!Si(Q2,d)||!(Fi||typeof Q2[d]==\"string\")){var m=\"Symbol.\"+d;Fi&&Si(X2,d)?Q2[d]=X2[d]:Li&&Ti?Q2[d]=Ti(m):Q2[d]=Ho(m)}return Q2[d]}});var ji=F((e6,Vi)=>{var Ko=i2(),Wo=P1(),Ri=Z2(),Ni=fu(),Yo=hi(),$o=bi(),Zo=Ii(),Qo=Ko.TypeError,Go=Zo(\"toPrimitive\");Vi.exports=function(d,m){if(!Ri(d)||Ni(d))return d;var k=Yo(d,Go),f;if(k){if(m===void 0&&(m=\"default\"),f=Wo(k,d,m),!Ri(f)||Ni(f))return f;throw Qo(\"Can't convert object to primitive value\")}return m===void 0&&(m=\"number\"),$o(d,m)}});var hu=F((i6,_i)=>{var xo=ji(),po=fu();_i.exports=function(d){var m=xo(d,\"string\");return po(m)?m:m+\"\"}});var Ji=F((n6,Ui)=>{var ul=i2(),Mi=Z2(),mu=ul.document,el=Mi(mu)&&Mi(mu.createElement);Ui.exports=function(d){return el?mu.createElement(d):{}}});var bu=F((t6,Xi)=>{var il=J2(),nl=L2(),tl=Ji();Xi.exports=!il&&!nl(function(){return Object.defineProperty(tl(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var ku=F(Hi=>{var ol=J2(),ll=P1(),fl=Oe(),cl=p1(),sl=E1(),al=hu(),dl=O2(),gl=bu(),zi=Object.getOwnPropertyDescriptor;Hi.f=ol?zi:function(m,k){if(m=sl(m),k=al(k),gl)try{return zi(m,k)}catch{}if(dl(m,k))return cl(!ll(fl.f,m,k),m[k])}});var Wi=F((l6,Ki)=>{var hl=J2(),ml=L2();Ki.exports=hl&&ml(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var ru=F((f6,$i)=>{var Yi=i2(),bl=Z2(),kl=Yi.String,rl=Yi.TypeError;$i.exports=function(d){if(bl(d))return d;throw rl(kl(d)+\" is not an object\")}});var Eu=F(Qi=>{var vl=i2(),Al=J2(),yl=bu(),Pl=Wi(),B1=ru(),Zi=hu(),El=vl.TypeError,vu=Object.defineProperty,Dl=Object.getOwnPropertyDescriptor,Au=\"enumerable\",yu=\"configurable\",Pu=\"writable\";Qi.f=Al?Pl?function(m,k,f){if(B1(m),k=Zi(k),B1(f),typeof m==\"function\"&&k===\"prototype\"&&\"value\"in f&&Pu in f&&!f[Pu]){var P=Dl(m,k);P&&P[Pu]&&(m[k]=f.value,f={configurable:yu in f?f[yu]:P[yu],enumerable:Au in f?f[Au]:P[Au],writable:!1})}return vu(m,k,f)}:vu:function(m,k,f){if(B1(m),k=Zi(k),B1(f),yl)try{return vu(m,k,f)}catch{}if(\"get\"in f||\"set\"in f)throw El(\"Accessors not supported\");return\"value\"in f&&(m[k]=f.value),m}});var S1=F((s6,Gi)=>{var Cl=J2(),wl=Eu(),ql=p1();Gi.exports=Cl?function(d,m,k){return wl.f(d,m,ql(1,k))}:function(d,m,k){return d[m]=k,d}});var Cu=F((a6,xi)=>{var Bl=D2(),Sl=C2(),Du=q1(),Fl=Bl(Function.toString);Sl(Du.inspectSource)||(Du.inspectSource=function(d){return Fl(d)});xi.exports=Du.inspectSource});var en=F((d6,un)=>{var Tl=i2(),Ll=C2(),Ol=Cu(),pi=Tl.WeakMap;un.exports=Ll(pi)&&/native code/.test(Ol(pi))});var on=F((g6,tn)=>{var Il=du(),Rl=gu(),nn=Il(\"keys\");tn.exports=function(d){return nn[d]||(nn[d]=Rl(d))}});var wu=F((h6,ln)=>{ln.exports={}});var gn=F((m6,dn)=>{var Nl=en(),an=i2(),qu=D2(),Vl=Z2(),jl=S1(),Bu=O2(),Su=q1(),_l=on(),Ml=wu(),fn=\"Object already initialized\",Tu=an.TypeError,Ul=an.WeakMap,F1,e1,T1,Jl=function(d){return T1(d)?e1(d):F1(d,{})},Xl=function(d){return function(m){var k;if(!Vl(m)||(k=e1(m)).type!==d)throw Tu(\"Incompatible receiver, \"+d+\" required\");return k}};Nl||Su.state?(I2=Su.state||(Su.state=new Ul),cn=qu(I2.get),Fu=qu(I2.has),sn=qu(I2.set),F1=function(d,m){if(Fu(I2,d))throw new Tu(fn);return m.facade=d,sn(I2,d,m),m},e1=function(d){return cn(I2,d)||{}},T1=function(d){return Fu(I2,d)}):(z2=_l(\"state\"),Ml[z2]=!0,F1=function(d,m){if(Bu(d,z2))throw new Tu(fn);return m.facade=d,jl(d,z2,m),m},e1=function(d){return Bu(d,z2)?d[z2]:{}},T1=function(d){return Bu(d,z2)});var I2,cn,Fu,sn,z2;dn.exports={set:F1,get:e1,has:T1,enforce:Jl,getterFor:Xl}});var bn=F((b6,mn)=>{var Lu=J2(),zl=O2(),hn=Function.prototype,Hl=Lu&&Object.getOwnPropertyDescriptor,Ou=zl(hn,\"name\"),Kl=Ou&&function(){}.name===\"something\",Wl=Ou&&(!Lu||Lu&&Hl(hn,\"name\").configurable);mn.exports={EXISTS:Ou,PROPER:Kl,CONFIGURABLE:Wl}});var yn=F((k6,An)=>{var Yl=i2(),kn=C2(),$l=O2(),rn=S1(),Zl=w1(),Ql=Cu(),vn=gn(),Gl=bn().CONFIGURABLE,xl=vn.get,pl=vn.enforce,u4=String(String).split(\"String\");(An.exports=function(d,m,k,f){var P=f?!!f.unsafe:!1,S=f?!!f.enumerable:!1,q=f?!!f.noTargetGet:!1,T=f&&f.name!==void 0?f.name:m,r;if(kn(k)&&(String(T).slice(0,7)===\"Symbol(\"&&(T=\"[\"+String(T).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!$l(k,\"name\")||Gl&&k.name!==T)&&rn(k,\"name\",T),r=pl(k),r.source||(r.source=u4.join(typeof T==\"string\"?T:\"\"))),d===Yl){S?d[m]=k:Zl(m,k);return}else P?!q&&d[m]&&(S=!0):delete d[m];S?d[m]=k:rn(d,m,k)})(Function.prototype,\"toString\",function(){return kn(this)&&xl(this).source||Ql(this)})});var Iu=F((r6,Pn)=>{var e4=Math.ceil,i4=Math.floor;Pn.exports=function(d){var m=+d;return m!==m||m===0?0:(m>0?i4:e4)(m)}});var Dn=F((v6,En)=>{var n4=Iu(),t4=Math.max,o4=Math.min;En.exports=function(d,m){var k=n4(d);return k<0?t4(k+m,0):o4(k,m)}});var wn=F((A6,Cn)=>{var l4=Iu(),f4=Math.min;Cn.exports=function(d){return d>0?f4(l4(d),9007199254740991):0}});var Bn=F((y6,qn)=>{var c4=wn();qn.exports=function(d){return c4(d.length)}});var Tn=F((P6,Fn)=>{var s4=E1(),a4=Dn(),d4=Bn(),Sn=function(d){return function(m,k,f){var P=s4(m),S=d4(P),q=a4(f,S),T;if(d&&k!=k){for(;S>q;)if(T=P[q++],T!=T)return!0}else for(;S>q;q++)if((d||q in P)&&P[q]===k)return d||q||0;return!d&&-1}};Fn.exports={includes:Sn(!0),indexOf:Sn(!1)}});var In=F((E6,On)=>{var g4=D2(),Ru=O2(),h4=E1(),m4=Tn().indexOf,b4=wu(),Ln=g4([].push);On.exports=function(d,m){var k=h4(d),f=0,P=[],S;for(S in k)!Ru(b4,S)&&Ru(k,S)&&Ln(P,S);for(;m.length>f;)Ru(k,S=m[f++])&&(~m4(P,S)||Ln(P,S));return P}});var Nn=F((D6,Rn)=>{Rn.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var jn=F(Vn=>{var k4=In(),r4=Nn(),v4=r4.concat(\"length\",\"prototype\");Vn.f=Object.getOwnPropertyNames||function(m){return k4(m,v4)}});var Mn=F(_n=>{_n.f=Object.getOwnPropertySymbols});var Jn=F((q6,Un)=>{var A4=D1(),y4=D2(),P4=jn(),E4=Mn(),D4=ru(),C4=y4([].concat);Un.exports=A4(\"Reflect\",\"ownKeys\")||function(m){var k=P4.f(D4(m)),f=E4.f;return f?C4(k,f(m)):k}});var Hn=F((B6,zn)=>{var Xn=O2(),w4=Jn(),q4=ku(),B4=Eu();zn.exports=function(d,m,k){for(var f=w4(m),P=B4.f,S=q4.f,q=0;q{var S4=L2(),F4=C2(),T4=/#|\\.prototype\\./,i1=function(d,m){var k=O4[L4(d)];return k==R4?!0:k==I4?!1:F4(m)?S4(m):!!m},L4=i1.normalize=function(d){return String(d).replace(T4,\".\").toLowerCase()},O4=i1.data={},I4=i1.NATIVE=\"N\",R4=i1.POLYFILL=\"P\";Kn.exports=i1});var $n=F((F6,Yn)=>{var Nu=i2(),N4=ku().f,V4=S1(),j4=yn(),_4=w1(),M4=Hn(),U4=Wn();Yn.exports=function(d,m){var k=d.target,f=d.global,P=d.stat,S,q,T,r,K,Y;if(f?q=Nu:P?q=Nu[k]||_4(k,{}):q=(Nu[k]||{}).prototype,q)for(T in m){if(K=m[T],d.noTargetGet?(Y=N4(q,T),r=Y&&Y.value):r=q[T],S=U4(f?T:k+(P?\".\":\"#\")+T,d.forced),!S&&r!==void 0){if(typeof K==typeof r)continue;M4(K,r)}(d.sham||r&&r.sham)&&V4(K,\"sham\",!0),j4(q,T,K,d)}}});var Zn=F(()=>{var J4=$n(),X4=i2();J4({global:!0},{globalThis:X4})});var Qn=F(()=>{Zn()});var y3=F((R6,k0)=>{Qn();var Mu=Object.defineProperty,z4=Object.getOwnPropertyDescriptor,Uu=Object.getOwnPropertyNames,H4=Object.prototype.hasOwnProperty,xn=(d,m)=>function(){return d&&(m=(0,d[Uu(d)[0]])(d=0)),m},l2=(d,m)=>function(){return m||(0,d[Uu(d)[0]])((m={exports:{}}).exports,m),m.exports},K4=(d,m)=>{for(var k in m)Mu(d,k,{get:m[k],enumerable:!0})},W4=(d,m,k,f)=>{if(m&&typeof m==\"object\"||typeof m==\"function\")for(let P of Uu(m))!H4.call(d,P)&&P!==k&&Mu(d,P,{get:()=>m[P],enumerable:!(f=z4(m,P))||f.enumerable});return d},Y4=d=>W4(Mu({},\"__esModule\",{value:!0}),d),n2=xn({\"\"(){}}),pn=l2({\"src/common/parser-create-error.js\"(d,m){\"use strict\";n2();function k(f,P){let S=new SyntaxError(f+\" (\"+P.start.line+\":\"+P.start.column+\")\");return S.loc=P,S}m.exports=k}}),$4=l2({\"src/utils/try-combinations.js\"(d,m){\"use strict\";n2();function k(){let f;for(var P=arguments.length,S=new Array(P),q=0;q_u,arch:()=>Z4,cpus:()=>f0,default:()=>g0,endianness:()=>e0,freemem:()=>o0,getNetworkInterfaces:()=>d0,hostname:()=>i0,loadavg:()=>n0,networkInterfaces:()=>a0,platform:()=>Q4,release:()=>s0,tmpDir:()=>Vu,tmpdir:()=>ju,totalmem:()=>l0,type:()=>c0,uptime:()=>t0});function e0(){if(typeof L1>\"u\"){var d=new ArrayBuffer(2),m=new Uint8Array(d),k=new Uint16Array(d);if(m[0]=1,m[1]=2,k[0]===258)L1=\"BE\";else if(k[0]===513)L1=\"LE\";else throw new Error(\"unable to figure out endianess\")}return L1}function i0(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function n0(){return[]}function t0(){return 0}function o0(){return Number.MAX_VALUE}function l0(){return Number.MAX_VALUE}function f0(){return[]}function c0(){return\"Browser\"}function s0(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function a0(){}function d0(){}function Z4(){return\"javascript\"}function Q4(){return\"browser\"}function Vu(){return\"/tmp\"}var L1,ju,_u,g0,G4=xn({\"node-modules-polyfills:os\"(){n2(),ju=Vu,_u=`\n`,g0={EOL:_u,tmpdir:ju,tmpDir:Vu,networkInterfaces:a0,getNetworkInterfaces:d0,release:s0,type:c0,cpus:f0,totalmem:l0,freemem:o0,uptime:t0,loadavg:n0,hostname:i0,endianness:e0}}}),x4=l2({\"node-modules-polyfills-commonjs:os\"(d,m){n2();var k=(G4(),Y4(u0));if(k&&k.default){m.exports=k.default;for(let f in k)m.exports[f]=k[f]}else k&&(m.exports=k)}}),p4=l2({\"node_modules/detect-newline/index.js\"(d,m){\"use strict\";n2();var k=f=>{if(typeof f!=\"string\")throw new TypeError(\"Expected a string\");let P=f.match(/(?:\\r?\\n)/g)||[];if(P.length===0)return;let S=P.filter(T=>T===`\\r\n`).length,q=P.length-S;return S>q?`\\r\n`:`\n`};m.exports=k,m.exports.graceful=f=>typeof f==\"string\"&&k(f)||`\n`}}),u3=l2({\"node_modules/jest-docblock/build/index.js\"(d){\"use strict\";n2(),Object.defineProperty(d,\"__esModule\",{value:!0}),d.extract=Z,d.parse=t2,d.parseWithComments=V,d.print=J,d.strip=L;function m(){let I=x4();return m=function(){return I},I}function k(){let I=f(p4());return k=function(){return I},I}function f(I){return I&&I.__esModule?I:{default:I}}var P=/\\*\\/$/,S=/^\\/\\*\\*/,q=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,T=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,r=/^(\\r?\\n)+/,K=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,Y=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,X=/(\\r?\\n|^) *\\* ?/g,p=[];function Z(I){let u2=I.match(q);return u2?u2[0].trimLeft():\"\"}function L(I){let u2=I.match(q);return u2&&u2[0]?I.substring(u2[0].length):I}function t2(I){return V(I).pragmas}function V(I){let u2=(0,k().default)(I)||m().EOL;I=I.replace(S,\"\").replace(P,\"\").replace(X,\"$1\");let m2=\"\";for(;m2!==I;)m2=I,I=I.replace(K,\"\".concat(u2,\"$1 $2\").concat(u2));I=I.replace(r,\"\").trimRight();let c2=Object.create(null),R2=I.replace(Y,\"\").replace(r,\"\").trimRight(),s2;for(;s2=Y.exec(I);){let N2=s2[2].replace(T,\"\");typeof c2[s2[1]]==\"string\"||Array.isArray(c2[s2[1]])?c2[s2[1]]=p.concat(c2[s2[1]],N2):c2[s2[1]]=N2}return{comments:R2,pragmas:c2}}function J(I){let{comments:u2=\"\",pragmas:m2={}}=I,c2=(0,k().default)(u2)||m().EOL,R2=\"/**\",s2=\" *\",N2=\" */\",w2=Object.keys(m2),O1=w2.map(g2=>H(g2,m2[g2])).reduce((g2,n1)=>g2.concat(n1),[]).map(g2=>s2+\" \"+g2+c2).join(\"\");if(!u2){if(w2.length===0)return\"\";if(w2.length===1&&!Array.isArray(m2[w2[0]])){let g2=m2[w2[0]];return\"\".concat(R2,\" \").concat(H(w2[0],g2)[0]).concat(N2)}}let I1=u2.split(c2).map(g2=>\"\".concat(s2,\" \").concat(g2)).join(c2)+c2;return R2+c2+(u2?I1:\"\")+(u2&&w2.length?s2+c2:\"\")+O1+N2}function H(I,u2){return p.concat(u2).map(m2=>\"@\".concat(I,\" \").concat(m2).trim())}}}),e3=l2({\"src/common/end-of-line.js\"(d,m){\"use strict\";n2();function k(q){let T=q.indexOf(\"\\r\");return T>=0?q.charAt(T+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function f(q){switch(q){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function P(q,T){let r;switch(T){case`\n`:r=/\\n/g;break;case\"\\r\":r=/\\r/g;break;case`\\r\n`:r=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(T),\".\"))}let K=q.match(r);return K?K.length:0}function S(q){return q.replace(/\\r\\n?/g,`\n`)}m.exports={guessEndOfLine:k,convertEndOfLineToChars:f,countEndOfLineChars:P,normalizeEndOfLine:S}}}),i3=l2({\"src/language-js/utils/get-shebang.js\"(d,m){\"use strict\";n2();function k(f){if(!f.startsWith(\"#!\"))return\"\";let P=f.indexOf(`\n`);return P===-1?f:f.slice(0,P)}m.exports=k}}),n3=l2({\"src/language-js/pragma.js\"(d,m){\"use strict\";n2();var{parseWithComments:k,strip:f,extract:P,print:S}=u3(),{normalizeEndOfLine:q}=e3(),T=i3();function r(X){let p=T(X);p&&(X=X.slice(p.length+1));let Z=P(X),{pragmas:L,comments:t2}=k(Z);return{shebang:p,text:X,pragmas:L,comments:t2}}function K(X){let p=Object.keys(r(X).pragmas);return p.includes(\"prettier\")||p.includes(\"format\")}function Y(X){let{shebang:p,text:Z,pragmas:L,comments:t2}=r(X),V=f(Z),J=S({pragmas:Object.assign({format:\"\"},L),comments:t2.trimStart()});return(p?\"\".concat(p,`\n`):\"\")+q(J)+(V.startsWith(`\n`)?`\n`:`\n\n`)+V}m.exports={hasPragma:K,insertPragma:Y}}}),t3=l2({\"src/utils/is-non-empty-array.js\"(d,m){\"use strict\";n2();function k(f){return Array.isArray(f)&&f.length>0}m.exports=k}}),h0=l2({\"src/language-js/loc.js\"(d,m){\"use strict\";n2();var k=t3();function f(r,K){let{ignoreDecorators:Y}=K||{};if(!Y){let X=r.declaration&&r.declaration.decorators||r.decorators;if(k(X))return f(X[0])}return r.range?r.range[0]:r.start}function P(r){return r.range?r.range[1]:r.end}function S(r,K){let Y=f(r);return Number.isInteger(Y)&&Y===f(K)}function q(r,K){let Y=P(r);return Number.isInteger(Y)&&Y===P(K)}function T(r,K){return S(r,K)&&q(r,K)}m.exports={locStart:f,locEnd:P,hasSameLocStart:S,hasSameLoc:T}}}),o3=l2({\"src/language-js/parse/utils/create-parser.js\"(d,m){\"use strict\";n2();var{hasPragma:k}=n3(),{locStart:f,locEnd:P}=h0();function S(q){return q=typeof q==\"function\"?{parse:q}:q,Object.assign({astFormat:\"estree\",hasPragma:k,locStart:f,locEnd:P},q)}m.exports=S}}),l3=l2({\"src/language-js/utils/is-ts-keyword-type.js\"(d,m){\"use strict\";n2();function k(f){let{type:P}=f;return P.startsWith(\"TS\")&&P.endsWith(\"Keyword\")}m.exports=k}}),f3=l2({\"src/language-js/utils/is-block-comment.js\"(d,m){\"use strict\";n2();var k=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),f=P=>k.has(P==null?void 0:P.type);m.exports=f}}),c3=l2({\"src/language-js/utils/is-type-cast-comment.js\"(d,m){\"use strict\";n2();var k=f3();function f(P){return k(P)&&P.value[0]===\"*\"&&/@type\\b/.test(P.value)}m.exports=f}}),s3=l2({\"src/utils/get-last.js\"(d,m){\"use strict\";n2();var k=f=>f[f.length-1];m.exports=k}}),m0=l2({\"src/language-js/parse/postprocess/visit-node.js\"(d,m){\"use strict\";n2();function k(f,P){if(Array.isArray(f)){for(let S=0;S{let Z=K.get(p);return!Z||!X.includes(Z)}))&&f(r,\"Leading decorators must be attached to a class declaration\")}function S(T,r){T.kind!==167||T.modifiers&&!T.modifiers.some(X=>X.kind===126)||T.initializer&&r.value===null&&f(r,\"Abstract property cannot have an initializer\")}function q(T,r){let{esTreeNodeToTSNodeMap:K,tsNodeToESTreeNodeMap:Y}=r.tsParseResult;k(T,X=>{let p=K.get(X);if(!p)return;let Z=Y.get(p);Z===X&&(P(p,Z,Y),S(p,Z))})}m.exports={throwErrorForInvalidNodes:q}}}),d3=l2({\"src/language-js/parse/postprocess/index.js\"(d,m){\"use strict\";n2();var{locStart:k,locEnd:f}=h0(),P=l3(),S=c3(),q=s3(),T=m0(),{throwErrorForInvalidNodes:r}=a3(),K=b0();function Y(L,t2){if(t2.parser===\"typescript\"&&/@|abstract/.test(t2.originalText)&&r(L,t2),t2.parser!==\"typescript\"&&t2.parser!==\"flow\"&&t2.parser!==\"acorn\"&&t2.parser!==\"espree\"&&t2.parser!==\"meriyah\"){let J=new Set;L=T(L,H=>{H.leadingComments&&H.leadingComments.some(S)&&J.add(k(H))}),L=T(L,H=>{if(H.type===\"ParenthesizedExpression\"){let{expression:I}=H;if(I.type===\"TypeCastExpression\")return I.range=H.range,I;let u2=k(H);if(!J.has(u2))return I.extra=Object.assign(Object.assign({},I.extra),{},{parenthesized:!0}),I}})}return L=T(L,J=>{switch(J.type){case\"ChainExpression\":return X(J.expression);case\"LogicalExpression\":{if(p(J))return Z(J);break}case\"VariableDeclaration\":{let H=q(J.declarations);H&&H.init&&V(J,H);break}case\"TSParenthesizedType\":return P(J.typeAnnotation)||J.typeAnnotation.type===\"TSThisType\"||(J.typeAnnotation.range=[k(J),f(J)]),J.typeAnnotation;case\"TSTypeParameter\":if(typeof J.name==\"string\"){let H=k(J);J.name={type:\"Identifier\",name:J.name,range:[H,H+J.name.length]}}break;case\"ObjectExpression\":if(t2.parser===\"typescript\"){let H=J.properties.find(I=>I.type===\"Property\"&&I.value.type===\"TSEmptyBodyFunctionExpression\");H&&K(H.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let H=q(J.expressions);J.range=[k(J),Math.min(f(H),f(J))];break}case\"TopicReference\":t2.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:H}=J;if(t2.parser===\"meriyah\"&&H&&H.type===\"Identifier\"){let I=t2.originalText.slice(k(H),f(H));(I.startsWith('\"')||I.startsWith(\"'\"))&&(J.exported=Object.assign(Object.assign({},J.exported),{},{type:\"Literal\",value:J.exported.name,raw:I}))}break}}}),L;function V(J,H){t2.originalText[f(H)]!==\";\"&&(J.range=[k(J),f(H)])}}function X(L){switch(L.type){case\"CallExpression\":L.type=\"OptionalCallExpression\",L.callee=X(L.callee);break;case\"MemberExpression\":L.type=\"OptionalMemberExpression\",L.object=X(L.object);break;case\"TSNonNullExpression\":L.expression=X(L.expression);break}return L}function p(L){return L.type===\"LogicalExpression\"&&L.right.type===\"LogicalExpression\"&&L.operator===L.right.operator}function Z(L){return p(L)?Z({type:\"LogicalExpression\",operator:L.operator,left:Z({type:\"LogicalExpression\",operator:L.operator,left:L.left,right:L.right.left,range:[k(L.left),f(L.right.left)]}),right:L.right.right,range:[k(L),f(L)]}):L}m.exports=Y}}),g3=l2({\"node_modules/meriyah/dist/meriyah.cjs\"(d){\"use strict\";n2(),Object.defineProperty(d,\"__esModule\",{value:!0});var m={[0]:\"Unexpected token\",[28]:\"Unexpected token: '%0'\",[1]:\"Octal escape sequences are not allowed in strict mode\",[2]:\"Octal escape sequences are not allowed in template strings\",[3]:\"Unexpected token `#`\",[4]:\"Illegal Unicode escape sequence\",[5]:\"Invalid code point %0\",[6]:\"Invalid hexadecimal escape sequence\",[8]:\"Octal literals are not allowed in strict mode\",[7]:\"Decimal integer literals with a leading zero are forbidden in strict mode\",[9]:\"Expected number in radix %0\",[145]:\"Invalid left-hand side assignment to a destructible right-hand side\",[10]:\"Non-number found after exponent indicator\",[11]:\"Invalid BigIntLiteral\",[12]:\"No identifiers allowed directly after numeric literal\",[13]:\"Escapes \\\\8 or \\\\9 are not syntactically valid escapes\",[14]:\"Unterminated string literal\",[15]:\"Unterminated template literal\",[16]:\"Multiline comment was not closed properly\",[17]:\"The identifier contained dynamic unicode escape that was not closed\",[18]:\"Illegal character '%0'\",[19]:\"Missing hexadecimal digits\",[20]:\"Invalid implicit octal\",[21]:\"Invalid line break in string literal\",[22]:\"Only unicode escapes are legal in identifier names\",[23]:\"Expected '%0'\",[24]:\"Invalid left-hand side in assignment\",[25]:\"Invalid left-hand side in async arrow\",[26]:'Calls to super must be in the \"constructor\" method of a class expression or class declaration that has a superclass',[27]:\"Member access on super must be in a method\",[29]:\"Await expression not allowed in formal parameter\",[30]:\"Yield expression not allowed in formal parameter\",[92]:\"Unexpected token: 'escaped keyword'\",[31]:\"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses\",[119]:\"Async functions can only be declared at the top level or inside a block\",[32]:\"Unterminated regular expression\",[33]:\"Unexpected regular expression flag\",[34]:\"Duplicate regular expression flag '%0'\",[35]:\"%0 functions must have exactly %1 argument%2\",[36]:\"Setter function argument must not be a rest parameter\",[37]:\"%0 declaration must have a name in this context\",[38]:\"Function name may not contain any reserved words or be eval or arguments in strict mode\",[39]:\"The rest operator is missing an argument\",[40]:\"A getter cannot be a generator\",[41]:\"A computed property name must be followed by a colon or paren\",[130]:\"Object literal keys that are strings or numbers must be a method or have a colon\",[43]:\"Found `* async x(){}` but this should be `async * x(){}`\",[42]:\"Getters and setters can not be generators\",[44]:\"'%0' can not be generator method\",[45]:\"No line break is allowed after '=>'\",[46]:\"The left-hand side of the arrow can only be destructed through assignment\",[47]:\"The binding declaration is not destructible\",[48]:\"Async arrow can not be followed by new expression\",[49]:\"Classes may not have a static property named 'prototype'\",[50]:\"Class constructor may not be a %0\",[51]:\"Duplicate constructor method in class\",[52]:\"Invalid increment/decrement operand\",[53]:\"Invalid use of `new` keyword on an increment/decrement expression\",[54]:\"`=>` is an invalid assignment target\",[55]:\"Rest element may not have a trailing comma\",[56]:\"Missing initializer in %0 declaration\",[57]:\"'for-%0' loop head declarations can not have an initializer\",[58]:\"Invalid left-hand side in for-%0 loop: Must have a single binding\",[59]:\"Invalid shorthand property initializer\",[60]:\"Property name __proto__ appears more than once in object literal\",[61]:\"Let is disallowed as a lexically bound name\",[62]:\"Invalid use of '%0' inside new expression\",[63]:\"Illegal 'use strict' directive in function with non-simple parameter list\",[64]:'Identifier \"let\" disallowed as left-hand side expression in strict mode',[65]:\"Illegal continue statement\",[66]:\"Illegal break statement\",[67]:\"Cannot have `let[...]` as a var name in strict mode\",[68]:\"Invalid destructuring assignment target\",[69]:\"Rest parameter may not have a default initializer\",[70]:\"The rest argument must the be last parameter\",[71]:\"Invalid rest argument\",[73]:\"In strict mode code, functions can only be declared at top level or inside a block\",[74]:\"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",[75]:\"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement\",[76]:\"Class declaration can't appear in single-statement context\",[77]:\"Invalid left-hand side in for-%0\",[78]:\"Invalid assignment in for-%0\",[79]:\"for await (... of ...) is only valid in async functions and async generators\",[80]:\"The first token after the template expression should be a continuation of the template\",[82]:\"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode\",[81]:\"`let \\n [` is a restricted production at the start of a statement\",[83]:\"Catch clause requires exactly one parameter, not more (and no trailing comma)\",[84]:\"Catch clause parameter does not support default values\",[85]:\"Missing catch or finally after try\",[86]:\"More than one default clause in switch statement\",[87]:\"Illegal newline after throw\",[88]:\"Strict mode code may not include a with statement\",[89]:\"Illegal return statement\",[90]:\"The left hand side of the for-header binding declaration is not destructible\",[91]:\"new.target only allowed within functions\",[93]:\"'#' not followed by identifier\",[99]:\"Invalid keyword\",[98]:\"Can not use 'let' as a class name\",[97]:\"'A lexical declaration can't define a 'let' binding\",[96]:\"Can not use `let` as variable name in strict mode\",[94]:\"'%0' may not be used as an identifier in this context\",[95]:\"Await is only valid in async functions\",[100]:\"The %0 keyword can only be used with the module goal\",[101]:\"Unicode codepoint must not be greater than 0x10FFFF\",[102]:\"%0 source must be string\",[103]:\"Only a identifier can be used to indicate alias\",[104]:\"Only '*' or '{...}' can be imported after default\",[105]:\"Trailing decorator may be followed by method\",[106]:\"Decorators can't be used with a constructor\",[108]:\"HTML comments are only allowed with web compatibility (Annex B)\",[109]:\"The identifier 'let' must not be in expression position in strict mode\",[110]:\"Cannot assign to `eval` and `arguments` in strict mode\",[111]:\"The left-hand side of a for-of loop may not start with 'let'\",[112]:\"Block body arrows can not be immediately invoked without a group\",[113]:\"Block body arrows can not be immediately accessed without a group\",[114]:\"Unexpected strict mode reserved word\",[115]:\"Unexpected eval or arguments in strict mode\",[116]:\"Decorators must not be followed by a semicolon\",[117]:\"Calling delete on expression not allowed in strict mode\",[118]:\"Pattern can not have a tail\",[120]:\"Can not have a `yield` expression on the left side of a ternary\",[121]:\"An arrow function can not have a postfix update operator\",[122]:\"Invalid object literal key character after generator star\",[123]:\"Private fields can not be deleted\",[125]:\"Classes may not have a field called constructor\",[124]:\"Classes may not have a private element named constructor\",[126]:\"A class field initializer may not contain arguments\",[127]:\"Generators can only be declared at the top level or inside a block\",[128]:\"Async methods are a restricted production and cannot have a newline following it\",[129]:\"Unexpected character after object literal property name\",[131]:\"Invalid key token\",[132]:\"Label '%0' has already been declared\",[133]:\"continue statement must be nested within an iteration statement\",[134]:\"Undefined label '%0'\",[135]:\"Trailing comma is disallowed inside import(...) arguments\",[136]:\"import() requires exactly one argument\",[137]:\"Cannot use new with import(...)\",[138]:\"... is not allowed in import()\",[139]:\"Expected '=>'\",[140]:\"Duplicate binding '%0'\",[141]:\"Cannot export a duplicate name '%0'\",[144]:\"Duplicate %0 for-binding\",[142]:\"Exported binding '%0' needs to refer to a top-level declared variable\",[143]:\"Unexpected private field\",[147]:\"Numeric separators are not allowed at the end of numeric literals\",[146]:\"Only one underscore is allowed as numeric separator\",[148]:\"JSX value should be either an expression or a quoted JSX text\",[149]:\"Expected corresponding JSX closing tag for %0\",[150]:\"Adjacent JSX elements must be wrapped in an enclosing tag\",[151]:\"JSX attributes must only be assigned a non-empty 'expression'\",[152]:\"'%0' has already been declared\",[153]:\"'%0' shadowed a catch clause binding\",[154]:\"Dot property must be an identifier\",[155]:\"Encountered invalid input after spread/rest argument\",[156]:\"Catch without try\",[157]:\"Finally without try\",[158]:\"Expected corresponding closing tag for JSX fragment\",[159]:\"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses\",[160]:\"Invalid tagged template on optional chain\",[161]:\"Invalid optional chain from super property\",[162]:\"Invalid optional chain from new expression\",[163]:'Cannot use \"import.meta\" outside a module',[164]:\"Leading decorators must be attached to a class declaration\"},k=class extends SyntaxError{constructor(u,e,i,n){for(var t=arguments.length,o=new Array(t>4?t-4:0),l=4;lo[h]);super(\"\".concat(c)),this.index=u,this.line=e,this.column=i,this.description=c,this.loc={line:e,column:i}}};function f(u,e){for(var i=arguments.length,n=new Array(i>2?i-2:0),t=2;t4?t-4:0),l=4;l{let i=new Uint32Array(104448),n=0,t=0;for(;n<3540;){let o=u[n++];if(o<0)t-=o;else{let l=u[n++];o&2&&(l=e[l]),o&1?i.fill(l,t,t+=u[n++]):i[t++]=l}}return i})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function r(u){return u.column++,u.currentChar=u.source.charCodeAt(++u.index)}function K(u,e){if((e&64512)!==55296)return 0;let i=u.source.charCodeAt(u.index+1);return(i&64512)!==56320?0:(e=u.currentChar=65536+((e&1023)<<10)+(i&1023),(T[(e>>>5)+0]>>>e&31&1)===0&&f(u,18,Z(e)),u.index++,u.column++,1)}function Y(u,e){u.currentChar=u.source.charCodeAt(++u.index),u.flags|=1,(e&4)===0&&(u.column=0,u.line++)}function X(u){u.flags|=1,u.currentChar=u.source.charCodeAt(++u.index),u.column=0,u.line++}function p(u){return u===160||u===65279||u===133||u===5760||u>=8192&&u<=8203||u===8239||u===8287||u===12288||u===8201||u===65519}function Z(u){return u<=65535?String.fromCharCode(u):String.fromCharCode(u>>>10)+String.fromCharCode(u&1023)}function L(u){return u<65?u-48:u-65+10&15}function t2(u){switch(u){case 134283266:return\"NumericLiteral\";case 134283267:return\"StringLiteral\";case 86021:case 86022:return\"BooleanLiteral\";case 86023:return\"NullLiteral\";case 65540:return\"RegularExpression\";case 67174408:case 67174409:case 132:return\"TemplateLiteral\";default:return(u&143360)===143360?\"Identifier\":(u&4096)===4096?\"Keyword\":\"Punctuator\"}}var V=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],J=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],H=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function I(u){return u<=127?J[u]:T[(u>>>5)+34816]>>>u&31&1}function u2(u){return u<=127?H[u]:T[(u>>>5)+0]>>>u&31&1||u===8204||u===8205}var m2=[\"SingleLine\",\"MultiLine\",\"HTMLOpen\",\"HTMLClose\",\"HashbangComment\"];function c2(u){let e=u.source;u.currentChar===35&&e.charCodeAt(u.index+1)===33&&(r(u),r(u),s2(u,e,0,4,u.tokenPos,u.linePos,u.colPos))}function R2(u,e,i,n,t,o,l,c){return n&2048&&f(u,0),s2(u,e,i,t,o,l,c)}function s2(u,e,i,n,t,o,l){let{index:c}=u;for(u.tokenPos=u.index,u.linePos=u.line,u.colPos=u.column;u.index=u.source.length)return f(u,32)}let t=u.index-1,o=0,l=u.currentChar,{index:c}=u;for(;u2(l);){switch(l){case 103:o&2&&f(u,34,\"g\"),o|=2;break;case 105:o&1&&f(u,34,\"i\"),o|=1;break;case 109:o&4&&f(u,34,\"m\"),o|=4;break;case 117:o&16&&f(u,34,\"g\"),o|=16;break;case 121:o&8&&f(u,34,\"y\"),o|=8;break;case 115:o&32&&f(u,34,\"s\"),o|=32;break;default:f(u,33)}l=r(u)}let s=u.source.slice(c,u.index),h=u.source.slice(i,t);return u.tokenRegExp={pattern:h,flags:s},e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),u.tokenValue=O1(u,h,s),65540}function O1(u,e,i){try{return new RegExp(e,i)}catch{f(u,32)}}function I1(u,e,i){let{index:n}=u,t=\"\",o=r(u),l=u.index;for(;(V[o]&8)===0;){if(o===i)return t+=u.source.slice(l,u.index),r(u),e&512&&(u.tokenRaw=u.source.slice(n,u.index)),u.tokenValue=t,134283267;if((o&8)===8&&o===92){if(t+=u.source.slice(l,u.index),o=r(u),o<127||o===8232||o===8233){let c=g2(u,e,o);c>=0?t+=Z(c):n1(u,c,0)}else t+=Z(o);l=u.index+1}u.index>=u.end&&f(u,14),o=r(u)}f(u,14)}function g2(u,e,i){switch(i){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(u.index1114111)return-5;return u.currentChar<1||u.currentChar!==125?-4:t}else{if((V[n]&64)===0)return-4;let t=u.source.charCodeAt(u.index+1);if((V[t]&64)===0)return-4;let o=u.source.charCodeAt(u.index+2);if((V[o]&64)===0)return-4;let l=u.source.charCodeAt(u.index+3);return(V[l]&64)===0?-4:(u.index+=3,u.column+=3,u.currentChar=u.source.charCodeAt(u.index),L(n)<<12|L(t)<<8|L(o)<<4|L(l))}}case 56:case 57:if((e&256)===0)return-3;default:return i}}function n1(u,e,i){switch(e){case-1:return;case-2:f(u,i?2:1);case-3:f(u,13);case-4:f(u,6);case-5:f(u,101)}}function Ju(u,e){let{index:i}=u,n=67174409,t=\"\",o=r(u);for(;o!==96;){if(o===36&&u.source.charCodeAt(u.index+1)===123){r(u),n=67174408;break}else if((o&8)===8&&o===92)if(o=r(u),o>126)t+=Z(o);else{let l=g2(u,e|1024,o);if(l>=0)t+=Z(l);else if(l!==-1&&e&65536){t=void 0,o=r0(u,o),o<0&&(n=67174408);break}else n1(u,l,1)}else u.index=u.end&&f(u,15),o=r(u)}return r(u),u.tokenValue=t,u.tokenRaw=u.source.slice(i+1,u.index-(n===67174409?1:2)),n}function r0(u,e){for(;e!==96;){switch(e){case 36:{let i=u.index+1;if(i=u.end&&f(u,15),e=r(u)}return e}function v0(u,e){return u.index>=u.end&&f(u,0),u.index--,u.column--,Ju(u,e)}function Xu(u,e,i){let n=u.currentChar,t=0,o=9,l=i&64?0:1,c=0,s=0;if(i&64)t=\".\"+t1(u,n),n=u.currentChar,n===110&&f(u,11);else{if(n===48)if(n=r(u),(n|32)===120){for(i=136,n=r(u);V[n]&4160;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*16+L(n),c++,n=r(u)}(c<1||!s)&&f(u,c<1?19:147)}else if((n|32)===111){for(i=132,n=r(u);V[n]&4128;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*8+(n-48),c++,n=r(u)}(c<1||!s)&&f(u,c<1?0:147)}else if((n|32)===98){for(i=130,n=r(u);V[n]&4224;){if(n===95){s||f(u,146),s=0,n=r(u);continue}s=1,t=t*2+(n-48),c++,n=r(u)}(c<1||!s)&&f(u,c<1?0:147)}else if(V[n]&32)for(e&1024&&f(u,1),i=1;V[n]&16;){if(V[n]&512){i=32,l=0;break}t=t*8+(n-48),n=r(u)}else V[n]&512?(e&1024&&f(u,1),u.flags|=64,i=32):n===95&&f(u,0);if(i&48){if(l){for(;o>=0&&V[n]&4112;){if(n===95){n=r(u),(n===95||i&32)&&q(u.index,u.line,u.index+1,146),s=1;continue}s=0,t=10*t+(n-48),n=r(u),--o}if(s&&q(u.index,u.line,u.index+1,147),o>=0&&!I(n)&&n!==46)return u.tokenValue=t,e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283266}t+=t1(u,n),n=u.currentChar,n===46&&(r(u)===95&&f(u,0),i=64,t+=\".\"+t1(u,u.currentChar),n=u.currentChar)}}let h=u.index,b=0;if(n===110&&i&128)b=1,n=r(u);else if((n|32)===101){n=r(u),V[n]&256&&(n=r(u));let{index:g}=u;(V[n]&16)<1&&f(u,10),t+=u.source.substring(h,g)+t1(u,n),n=u.currentChar}return(u.index\",\"(\",\"{\",\".\",\"...\",\"}\",\")\",\";\",\",\",\"[\",\"]\",\":\",\"?\",\"'\",'\"',\"\",\"++\",\"--\",\"=\",\"<<=\",\">>=\",\">>>=\",\"**=\",\"+=\",\"-=\",\"*=\",\"/=\",\"%=\",\"^=\",\"|=\",\"&=\",\"||=\",\"&&=\",\"??=\",\"typeof\",\"delete\",\"void\",\"!\",\"~\",\"+\",\"-\",\"in\",\"instanceof\",\"*\",\"%\",\"/\",\"**\",\"&&\",\"||\",\"===\",\"!==\",\"==\",\"!=\",\"<=\",\">=\",\"<\",\">\",\"<<\",\">>\",\">>>\",\"&\",\"|\",\"^\",\"var\",\"let\",\"const\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"debugger\",\"default\",\"do\",\"else\",\"export\",\"extends\",\"finally\",\"for\",\"function\",\"if\",\"import\",\"new\",\"return\",\"super\",\"switch\",\"this\",\"throw\",\"try\",\"while\",\"with\",\"implements\",\"interface\",\"package\",\"private\",\"protected\",\"public\",\"static\",\"yield\",\"as\",\"async\",\"await\",\"constructor\",\"get\",\"set\",\"from\",\"of\",\"enum\",\"eval\",\"arguments\",\"escaped keyword\",\"escaped future reserved keyword\",\"reserved if strict\",\"#\",\"BigIntLiteral\",\"??\",\"?.\",\"WhiteSpace\",\"Illegal\",\"LineTerminator\",\"PrivateField\",\"Template\",\"@\",\"target\",\"meta\",\"LineFeed\",\"Escaped\",\"JSXText\"],zu=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function Hu(u,e,i){for(;H[r(u)];);return u.tokenValue=u.source.slice(u.tokenPos,u.index),u.currentChar!==92&&u.currentChar<126?zu[u.tokenValue]||208897:R1(u,e,0,i)}function A0(u,e){let i=Ku(u);return u2(i)||f(u,4),u.tokenValue=Z(i),R1(u,e,1,V[i]&4)}function R1(u,e,i,n){let t=u.index;for(;u.index=2&&o<=11){let l=zu[u.tokenValue];return l===void 0?208897:i?e&1024?l===209008&&(e&4196352)===0?l:l===36972||(l&36864)===36864?122:121:e&1073741824&&(e&8192)===0&&(l&20480)===20480?l:l===241773?e&1073741824?143483:e&2097152?121:l:l===209007&&e&1073741824?143483:(l&36864)===36864||l===209008&&(e&4194304)===0?l:121:l}return 208897}function y0(u){return I(r(u))||f(u,93),131}function Ku(u){return u.source.charCodeAt(u.index+1)!==117&&f(u,4),u.currentChar=u.source.charCodeAt(u.index+=2),P0(u)}function P0(u){let e=0,i=u.currentChar;if(i===123){let l=u.index-2;for(;V[r(u)]&64;)e=e<<4|L(u.currentChar),e>1114111&&q(l,u.line,u.index+1,101);return u.currentChar!==125&&q(l,u.line,u.index-1,6),r(u),e}(V[i]&64)===0&&f(u,6);let n=u.source.charCodeAt(u.index+1);(V[n]&64)===0&&f(u,6);let t=u.source.charCodeAt(u.index+2);(V[t]&64)===0&&f(u,6);let o=u.source.charCodeAt(u.index+3);return(V[o]&64)===0&&f(u,6),e=L(i)<<12|L(n)<<8|L(t)<<4|L(o),u.currentChar=u.source.charCodeAt(u.index+=4),e}var Wu=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function E(u,e){if(u.flags=(u.flags|1)^1,u.startPos=u.index,u.startColumn=u.column,u.startLine=u.line,u.token=Yu(u,e,0),u.onToken&&u.token!==1048576){let i={start:{line:u.linePos,column:u.colPos},end:{line:u.line,column:u.column}};u.onToken(t2(u.token),u.tokenPos,u.index,i)}}function Yu(u,e,i){let n=u.index===0,t=u.source,o=u.index,l=u.line,c=u.column;for(;u.index=u.end)return 8457014;let a=u.currentChar;return a===61?(r(u),4194340):a!==42?8457014:r(u)!==61?8457273:(r(u),4194337)}case 8455497:return r(u)!==61?8455497:(r(u),4194343);case 25233970:{r(u);let a=u.currentChar;return a===43?(r(u),33619995):a===61?(r(u),4194338):25233970}case 25233971:{r(u);let a=u.currentChar;if(a===45){if(r(u),(i&1||n)&&u.currentChar===62){(e&256)===0&&f(u,108),r(u),i=R2(u,t,i,e,3,o,l,c),o=u.tokenPos,l=u.linePos,c=u.colPos;continue}return 33619996}return a===61?(r(u),4194339):25233971}case 8457016:{if(r(u),u.index=48&&g<=57)return Xu(u,e,80);if(g===46){let a=u.index+1;if(a=48&&a<=57)))return r(u),67108991}return 22}}}else{if((s^8232)<=1){i=i&-5|1,X(u);continue}if((s&64512)===55296||(T[(s>>>5)+34816]>>>s&31&1)!==0)return(s&64512)===56320&&(s=(s&1023)<<10|s&1023|65536,(T[(s>>>5)+0]>>>s&31&1)===0&&f(u,18,Z(s)),u.index++,u.currentChar=s),u.column++,u.tokenValue=\"\",R1(u,e,0,0);if(p(s)){r(u);continue}f(u,18,Z(s))}}return 1048576}var E0={AElig:\"\\xC6\",AMP:\"&\",Aacute:\"\\xC1\",Abreve:\"\\u0102\",Acirc:\"\\xC2\",Acy:\"\\u0410\",Afr:\"\\u{1D504}\",Agrave:\"\\xC0\",Alpha:\"\\u0391\",Amacr:\"\\u0100\",And:\"\\u2A53\",Aogon:\"\\u0104\",Aopf:\"\\u{1D538}\",ApplyFunction:\"\\u2061\",Aring:\"\\xC5\",Ascr:\"\\u{1D49C}\",Assign:\"\\u2254\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Backslash:\"\\u2216\",Barv:\"\\u2AE7\",Barwed:\"\\u2306\",Bcy:\"\\u0411\",Because:\"\\u2235\",Bernoullis:\"\\u212C\",Beta:\"\\u0392\",Bfr:\"\\u{1D505}\",Bopf:\"\\u{1D539}\",Breve:\"\\u02D8\",Bscr:\"\\u212C\",Bumpeq:\"\\u224E\",CHcy:\"\\u0427\",COPY:\"\\xA9\",Cacute:\"\\u0106\",Cap:\"\\u22D2\",CapitalDifferentialD:\"\\u2145\",Cayleys:\"\\u212D\",Ccaron:\"\\u010C\",Ccedil:\"\\xC7\",Ccirc:\"\\u0108\",Cconint:\"\\u2230\",Cdot:\"\\u010A\",Cedilla:\"\\xB8\",CenterDot:\"\\xB7\",Cfr:\"\\u212D\",Chi:\"\\u03A7\",CircleDot:\"\\u2299\",CircleMinus:\"\\u2296\",CirclePlus:\"\\u2295\",CircleTimes:\"\\u2297\",ClockwiseContourIntegral:\"\\u2232\",CloseCurlyDoubleQuote:\"\\u201D\",CloseCurlyQuote:\"\\u2019\",Colon:\"\\u2237\",Colone:\"\\u2A74\",Congruent:\"\\u2261\",Conint:\"\\u222F\",ContourIntegral:\"\\u222E\",Copf:\"\\u2102\",Coproduct:\"\\u2210\",CounterClockwiseContourIntegral:\"\\u2233\",Cross:\"\\u2A2F\",Cscr:\"\\u{1D49E}\",Cup:\"\\u22D3\",CupCap:\"\\u224D\",DD:\"\\u2145\",DDotrahd:\"\\u2911\",DJcy:\"\\u0402\",DScy:\"\\u0405\",DZcy:\"\\u040F\",Dagger:\"\\u2021\",Darr:\"\\u21A1\",Dashv:\"\\u2AE4\",Dcaron:\"\\u010E\",Dcy:\"\\u0414\",Del:\"\\u2207\",Delta:\"\\u0394\",Dfr:\"\\u{1D507}\",DiacriticalAcute:\"\\xB4\",DiacriticalDot:\"\\u02D9\",DiacriticalDoubleAcute:\"\\u02DD\",DiacriticalGrave:\"`\",DiacriticalTilde:\"\\u02DC\",Diamond:\"\\u22C4\",DifferentialD:\"\\u2146\",Dopf:\"\\u{1D53B}\",Dot:\"\\xA8\",DotDot:\"\\u20DC\",DotEqual:\"\\u2250\",DoubleContourIntegral:\"\\u222F\",DoubleDot:\"\\xA8\",DoubleDownArrow:\"\\u21D3\",DoubleLeftArrow:\"\\u21D0\",DoubleLeftRightArrow:\"\\u21D4\",DoubleLeftTee:\"\\u2AE4\",DoubleLongLeftArrow:\"\\u27F8\",DoubleLongLeftRightArrow:\"\\u27FA\",DoubleLongRightArrow:\"\\u27F9\",DoubleRightArrow:\"\\u21D2\",DoubleRightTee:\"\\u22A8\",DoubleUpArrow:\"\\u21D1\",DoubleUpDownArrow:\"\\u21D5\",DoubleVerticalBar:\"\\u2225\",DownArrow:\"\\u2193\",DownArrowBar:\"\\u2913\",DownArrowUpArrow:\"\\u21F5\",DownBreve:\"\\u0311\",DownLeftRightVector:\"\\u2950\",DownLeftTeeVector:\"\\u295E\",DownLeftVector:\"\\u21BD\",DownLeftVectorBar:\"\\u2956\",DownRightTeeVector:\"\\u295F\",DownRightVector:\"\\u21C1\",DownRightVectorBar:\"\\u2957\",DownTee:\"\\u22A4\",DownTeeArrow:\"\\u21A7\",Downarrow:\"\\u21D3\",Dscr:\"\\u{1D49F}\",Dstrok:\"\\u0110\",ENG:\"\\u014A\",ETH:\"\\xD0\",Eacute:\"\\xC9\",Ecaron:\"\\u011A\",Ecirc:\"\\xCA\",Ecy:\"\\u042D\",Edot:\"\\u0116\",Efr:\"\\u{1D508}\",Egrave:\"\\xC8\",Element:\"\\u2208\",Emacr:\"\\u0112\",EmptySmallSquare:\"\\u25FB\",EmptyVerySmallSquare:\"\\u25AB\",Eogon:\"\\u0118\",Eopf:\"\\u{1D53C}\",Epsilon:\"\\u0395\",Equal:\"\\u2A75\",EqualTilde:\"\\u2242\",Equilibrium:\"\\u21CC\",Escr:\"\\u2130\",Esim:\"\\u2A73\",Eta:\"\\u0397\",Euml:\"\\xCB\",Exists:\"\\u2203\",ExponentialE:\"\\u2147\",Fcy:\"\\u0424\",Ffr:\"\\u{1D509}\",FilledSmallSquare:\"\\u25FC\",FilledVerySmallSquare:\"\\u25AA\",Fopf:\"\\u{1D53D}\",ForAll:\"\\u2200\",Fouriertrf:\"\\u2131\",Fscr:\"\\u2131\",GJcy:\"\\u0403\",GT:\">\",Gamma:\"\\u0393\",Gammad:\"\\u03DC\",Gbreve:\"\\u011E\",Gcedil:\"\\u0122\",Gcirc:\"\\u011C\",Gcy:\"\\u0413\",Gdot:\"\\u0120\",Gfr:\"\\u{1D50A}\",Gg:\"\\u22D9\",Gopf:\"\\u{1D53E}\",GreaterEqual:\"\\u2265\",GreaterEqualLess:\"\\u22DB\",GreaterFullEqual:\"\\u2267\",GreaterGreater:\"\\u2AA2\",GreaterLess:\"\\u2277\",GreaterSlantEqual:\"\\u2A7E\",GreaterTilde:\"\\u2273\",Gscr:\"\\u{1D4A2}\",Gt:\"\\u226B\",HARDcy:\"\\u042A\",Hacek:\"\\u02C7\",Hat:\"^\",Hcirc:\"\\u0124\",Hfr:\"\\u210C\",HilbertSpace:\"\\u210B\",Hopf:\"\\u210D\",HorizontalLine:\"\\u2500\",Hscr:\"\\u210B\",Hstrok:\"\\u0126\",HumpDownHump:\"\\u224E\",HumpEqual:\"\\u224F\",IEcy:\"\\u0415\",IJlig:\"\\u0132\",IOcy:\"\\u0401\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Icy:\"\\u0418\",Idot:\"\\u0130\",Ifr:\"\\u2111\",Igrave:\"\\xCC\",Im:\"\\u2111\",Imacr:\"\\u012A\",ImaginaryI:\"\\u2148\",Implies:\"\\u21D2\",Int:\"\\u222C\",Integral:\"\\u222B\",Intersection:\"\\u22C2\",InvisibleComma:\"\\u2063\",InvisibleTimes:\"\\u2062\",Iogon:\"\\u012E\",Iopf:\"\\u{1D540}\",Iota:\"\\u0399\",Iscr:\"\\u2110\",Itilde:\"\\u0128\",Iukcy:\"\\u0406\",Iuml:\"\\xCF\",Jcirc:\"\\u0134\",Jcy:\"\\u0419\",Jfr:\"\\u{1D50D}\",Jopf:\"\\u{1D541}\",Jscr:\"\\u{1D4A5}\",Jsercy:\"\\u0408\",Jukcy:\"\\u0404\",KHcy:\"\\u0425\",KJcy:\"\\u040C\",Kappa:\"\\u039A\",Kcedil:\"\\u0136\",Kcy:\"\\u041A\",Kfr:\"\\u{1D50E}\",Kopf:\"\\u{1D542}\",Kscr:\"\\u{1D4A6}\",LJcy:\"\\u0409\",LT:\"<\",Lacute:\"\\u0139\",Lambda:\"\\u039B\",Lang:\"\\u27EA\",Laplacetrf:\"\\u2112\",Larr:\"\\u219E\",Lcaron:\"\\u013D\",Lcedil:\"\\u013B\",Lcy:\"\\u041B\",LeftAngleBracket:\"\\u27E8\",LeftArrow:\"\\u2190\",LeftArrowBar:\"\\u21E4\",LeftArrowRightArrow:\"\\u21C6\",LeftCeiling:\"\\u2308\",LeftDoubleBracket:\"\\u27E6\",LeftDownTeeVector:\"\\u2961\",LeftDownVector:\"\\u21C3\",LeftDownVectorBar:\"\\u2959\",LeftFloor:\"\\u230A\",LeftRightArrow:\"\\u2194\",LeftRightVector:\"\\u294E\",LeftTee:\"\\u22A3\",LeftTeeArrow:\"\\u21A4\",LeftTeeVector:\"\\u295A\",LeftTriangle:\"\\u22B2\",LeftTriangleBar:\"\\u29CF\",LeftTriangleEqual:\"\\u22B4\",LeftUpDownVector:\"\\u2951\",LeftUpTeeVector:\"\\u2960\",LeftUpVector:\"\\u21BF\",LeftUpVectorBar:\"\\u2958\",LeftVector:\"\\u21BC\",LeftVectorBar:\"\\u2952\",Leftarrow:\"\\u21D0\",Leftrightarrow:\"\\u21D4\",LessEqualGreater:\"\\u22DA\",LessFullEqual:\"\\u2266\",LessGreater:\"\\u2276\",LessLess:\"\\u2AA1\",LessSlantEqual:\"\\u2A7D\",LessTilde:\"\\u2272\",Lfr:\"\\u{1D50F}\",Ll:\"\\u22D8\",Lleftarrow:\"\\u21DA\",Lmidot:\"\\u013F\",LongLeftArrow:\"\\u27F5\",LongLeftRightArrow:\"\\u27F7\",LongRightArrow:\"\\u27F6\",Longleftarrow:\"\\u27F8\",Longleftrightarrow:\"\\u27FA\",Longrightarrow:\"\\u27F9\",Lopf:\"\\u{1D543}\",LowerLeftArrow:\"\\u2199\",LowerRightArrow:\"\\u2198\",Lscr:\"\\u2112\",Lsh:\"\\u21B0\",Lstrok:\"\\u0141\",Lt:\"\\u226A\",Map:\"\\u2905\",Mcy:\"\\u041C\",MediumSpace:\"\\u205F\",Mellintrf:\"\\u2133\",Mfr:\"\\u{1D510}\",MinusPlus:\"\\u2213\",Mopf:\"\\u{1D544}\",Mscr:\"\\u2133\",Mu:\"\\u039C\",NJcy:\"\\u040A\",Nacute:\"\\u0143\",Ncaron:\"\\u0147\",Ncedil:\"\\u0145\",Ncy:\"\\u041D\",NegativeMediumSpace:\"\\u200B\",NegativeThickSpace:\"\\u200B\",NegativeThinSpace:\"\\u200B\",NegativeVeryThinSpace:\"\\u200B\",NestedGreaterGreater:\"\\u226B\",NestedLessLess:\"\\u226A\",NewLine:`\n`,Nfr:\"\\u{1D511}\",NoBreak:\"\\u2060\",NonBreakingSpace:\"\\xA0\",Nopf:\"\\u2115\",Not:\"\\u2AEC\",NotCongruent:\"\\u2262\",NotCupCap:\"\\u226D\",NotDoubleVerticalBar:\"\\u2226\",NotElement:\"\\u2209\",NotEqual:\"\\u2260\",NotEqualTilde:\"\\u2242\\u0338\",NotExists:\"\\u2204\",NotGreater:\"\\u226F\",NotGreaterEqual:\"\\u2271\",NotGreaterFullEqual:\"\\u2267\\u0338\",NotGreaterGreater:\"\\u226B\\u0338\",NotGreaterLess:\"\\u2279\",NotGreaterSlantEqual:\"\\u2A7E\\u0338\",NotGreaterTilde:\"\\u2275\",NotHumpDownHump:\"\\u224E\\u0338\",NotHumpEqual:\"\\u224F\\u0338\",NotLeftTriangle:\"\\u22EA\",NotLeftTriangleBar:\"\\u29CF\\u0338\",NotLeftTriangleEqual:\"\\u22EC\",NotLess:\"\\u226E\",NotLessEqual:\"\\u2270\",NotLessGreater:\"\\u2278\",NotLessLess:\"\\u226A\\u0338\",NotLessSlantEqual:\"\\u2A7D\\u0338\",NotLessTilde:\"\\u2274\",NotNestedGreaterGreater:\"\\u2AA2\\u0338\",NotNestedLessLess:\"\\u2AA1\\u0338\",NotPrecedes:\"\\u2280\",NotPrecedesEqual:\"\\u2AAF\\u0338\",NotPrecedesSlantEqual:\"\\u22E0\",NotReverseElement:\"\\u220C\",NotRightTriangle:\"\\u22EB\",NotRightTriangleBar:\"\\u29D0\\u0338\",NotRightTriangleEqual:\"\\u22ED\",NotSquareSubset:\"\\u228F\\u0338\",NotSquareSubsetEqual:\"\\u22E2\",NotSquareSuperset:\"\\u2290\\u0338\",NotSquareSupersetEqual:\"\\u22E3\",NotSubset:\"\\u2282\\u20D2\",NotSubsetEqual:\"\\u2288\",NotSucceeds:\"\\u2281\",NotSucceedsEqual:\"\\u2AB0\\u0338\",NotSucceedsSlantEqual:\"\\u22E1\",NotSucceedsTilde:\"\\u227F\\u0338\",NotSuperset:\"\\u2283\\u20D2\",NotSupersetEqual:\"\\u2289\",NotTilde:\"\\u2241\",NotTildeEqual:\"\\u2244\",NotTildeFullEqual:\"\\u2247\",NotTildeTilde:\"\\u2249\",NotVerticalBar:\"\\u2224\",Nscr:\"\\u{1D4A9}\",Ntilde:\"\\xD1\",Nu:\"\\u039D\",OElig:\"\\u0152\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Ocy:\"\\u041E\",Odblac:\"\\u0150\",Ofr:\"\\u{1D512}\",Ograve:\"\\xD2\",Omacr:\"\\u014C\",Omega:\"\\u03A9\",Omicron:\"\\u039F\",Oopf:\"\\u{1D546}\",OpenCurlyDoubleQuote:\"\\u201C\",OpenCurlyQuote:\"\\u2018\",Or:\"\\u2A54\",Oscr:\"\\u{1D4AA}\",Oslash:\"\\xD8\",Otilde:\"\\xD5\",Otimes:\"\\u2A37\",Ouml:\"\\xD6\",OverBar:\"\\u203E\",OverBrace:\"\\u23DE\",OverBracket:\"\\u23B4\",OverParenthesis:\"\\u23DC\",PartialD:\"\\u2202\",Pcy:\"\\u041F\",Pfr:\"\\u{1D513}\",Phi:\"\\u03A6\",Pi:\"\\u03A0\",PlusMinus:\"\\xB1\",Poincareplane:\"\\u210C\",Popf:\"\\u2119\",Pr:\"\\u2ABB\",Precedes:\"\\u227A\",PrecedesEqual:\"\\u2AAF\",PrecedesSlantEqual:\"\\u227C\",PrecedesTilde:\"\\u227E\",Prime:\"\\u2033\",Product:\"\\u220F\",Proportion:\"\\u2237\",Proportional:\"\\u221D\",Pscr:\"\\u{1D4AB}\",Psi:\"\\u03A8\",QUOT:'\"',Qfr:\"\\u{1D514}\",Qopf:\"\\u211A\",Qscr:\"\\u{1D4AC}\",RBarr:\"\\u2910\",REG:\"\\xAE\",Racute:\"\\u0154\",Rang:\"\\u27EB\",Rarr:\"\\u21A0\",Rarrtl:\"\\u2916\",Rcaron:\"\\u0158\",Rcedil:\"\\u0156\",Rcy:\"\\u0420\",Re:\"\\u211C\",ReverseElement:\"\\u220B\",ReverseEquilibrium:\"\\u21CB\",ReverseUpEquilibrium:\"\\u296F\",Rfr:\"\\u211C\",Rho:\"\\u03A1\",RightAngleBracket:\"\\u27E9\",RightArrow:\"\\u2192\",RightArrowBar:\"\\u21E5\",RightArrowLeftArrow:\"\\u21C4\",RightCeiling:\"\\u2309\",RightDoubleBracket:\"\\u27E7\",RightDownTeeVector:\"\\u295D\",RightDownVector:\"\\u21C2\",RightDownVectorBar:\"\\u2955\",RightFloor:\"\\u230B\",RightTee:\"\\u22A2\",RightTeeArrow:\"\\u21A6\",RightTeeVector:\"\\u295B\",RightTriangle:\"\\u22B3\",RightTriangleBar:\"\\u29D0\",RightTriangleEqual:\"\\u22B5\",RightUpDownVector:\"\\u294F\",RightUpTeeVector:\"\\u295C\",RightUpVector:\"\\u21BE\",RightUpVectorBar:\"\\u2954\",RightVector:\"\\u21C0\",RightVectorBar:\"\\u2953\",Rightarrow:\"\\u21D2\",Ropf:\"\\u211D\",RoundImplies:\"\\u2970\",Rrightarrow:\"\\u21DB\",Rscr:\"\\u211B\",Rsh:\"\\u21B1\",RuleDelayed:\"\\u29F4\",SHCHcy:\"\\u0429\",SHcy:\"\\u0428\",SOFTcy:\"\\u042C\",Sacute:\"\\u015A\",Sc:\"\\u2ABC\",Scaron:\"\\u0160\",Scedil:\"\\u015E\",Scirc:\"\\u015C\",Scy:\"\\u0421\",Sfr:\"\\u{1D516}\",ShortDownArrow:\"\\u2193\",ShortLeftArrow:\"\\u2190\",ShortRightArrow:\"\\u2192\",ShortUpArrow:\"\\u2191\",Sigma:\"\\u03A3\",SmallCircle:\"\\u2218\",Sopf:\"\\u{1D54A}\",Sqrt:\"\\u221A\",Square:\"\\u25A1\",SquareIntersection:\"\\u2293\",SquareSubset:\"\\u228F\",SquareSubsetEqual:\"\\u2291\",SquareSuperset:\"\\u2290\",SquareSupersetEqual:\"\\u2292\",SquareUnion:\"\\u2294\",Sscr:\"\\u{1D4AE}\",Star:\"\\u22C6\",Sub:\"\\u22D0\",Subset:\"\\u22D0\",SubsetEqual:\"\\u2286\",Succeeds:\"\\u227B\",SucceedsEqual:\"\\u2AB0\",SucceedsSlantEqual:\"\\u227D\",SucceedsTilde:\"\\u227F\",SuchThat:\"\\u220B\",Sum:\"\\u2211\",Sup:\"\\u22D1\",Superset:\"\\u2283\",SupersetEqual:\"\\u2287\",Supset:\"\\u22D1\",THORN:\"\\xDE\",TRADE:\"\\u2122\",TSHcy:\"\\u040B\",TScy:\"\\u0426\",Tab:\"\t\",Tau:\"\\u03A4\",Tcaron:\"\\u0164\",Tcedil:\"\\u0162\",Tcy:\"\\u0422\",Tfr:\"\\u{1D517}\",Therefore:\"\\u2234\",Theta:\"\\u0398\",ThickSpace:\"\\u205F\\u200A\",ThinSpace:\"\\u2009\",Tilde:\"\\u223C\",TildeEqual:\"\\u2243\",TildeFullEqual:\"\\u2245\",TildeTilde:\"\\u2248\",Topf:\"\\u{1D54B}\",TripleDot:\"\\u20DB\",Tscr:\"\\u{1D4AF}\",Tstrok:\"\\u0166\",Uacute:\"\\xDA\",Uarr:\"\\u219F\",Uarrocir:\"\\u2949\",Ubrcy:\"\\u040E\",Ubreve:\"\\u016C\",Ucirc:\"\\xDB\",Ucy:\"\\u0423\",Udblac:\"\\u0170\",Ufr:\"\\u{1D518}\",Ugrave:\"\\xD9\",Umacr:\"\\u016A\",UnderBar:\"_\",UnderBrace:\"\\u23DF\",UnderBracket:\"\\u23B5\",UnderParenthesis:\"\\u23DD\",Union:\"\\u22C3\",UnionPlus:\"\\u228E\",Uogon:\"\\u0172\",Uopf:\"\\u{1D54C}\",UpArrow:\"\\u2191\",UpArrowBar:\"\\u2912\",UpArrowDownArrow:\"\\u21C5\",UpDownArrow:\"\\u2195\",UpEquilibrium:\"\\u296E\",UpTee:\"\\u22A5\",UpTeeArrow:\"\\u21A5\",Uparrow:\"\\u21D1\",Updownarrow:\"\\u21D5\",UpperLeftArrow:\"\\u2196\",UpperRightArrow:\"\\u2197\",Upsi:\"\\u03D2\",Upsilon:\"\\u03A5\",Uring:\"\\u016E\",Uscr:\"\\u{1D4B0}\",Utilde:\"\\u0168\",Uuml:\"\\xDC\",VDash:\"\\u22AB\",Vbar:\"\\u2AEB\",Vcy:\"\\u0412\",Vdash:\"\\u22A9\",Vdashl:\"\\u2AE6\",Vee:\"\\u22C1\",Verbar:\"\\u2016\",Vert:\"\\u2016\",VerticalBar:\"\\u2223\",VerticalLine:\"|\",VerticalSeparator:\"\\u2758\",VerticalTilde:\"\\u2240\",VeryThinSpace:\"\\u200A\",Vfr:\"\\u{1D519}\",Vopf:\"\\u{1D54D}\",Vscr:\"\\u{1D4B1}\",Vvdash:\"\\u22AA\",Wcirc:\"\\u0174\",Wedge:\"\\u22C0\",Wfr:\"\\u{1D51A}\",Wopf:\"\\u{1D54E}\",Wscr:\"\\u{1D4B2}\",Xfr:\"\\u{1D51B}\",Xi:\"\\u039E\",Xopf:\"\\u{1D54F}\",Xscr:\"\\u{1D4B3}\",YAcy:\"\\u042F\",YIcy:\"\\u0407\",YUcy:\"\\u042E\",Yacute:\"\\xDD\",Ycirc:\"\\u0176\",Ycy:\"\\u042B\",Yfr:\"\\u{1D51C}\",Yopf:\"\\u{1D550}\",Yscr:\"\\u{1D4B4}\",Yuml:\"\\u0178\",ZHcy:\"\\u0416\",Zacute:\"\\u0179\",Zcaron:\"\\u017D\",Zcy:\"\\u0417\",Zdot:\"\\u017B\",ZeroWidthSpace:\"\\u200B\",Zeta:\"\\u0396\",Zfr:\"\\u2128\",Zopf:\"\\u2124\",Zscr:\"\\u{1D4B5}\",aacute:\"\\xE1\",abreve:\"\\u0103\",ac:\"\\u223E\",acE:\"\\u223E\\u0333\",acd:\"\\u223F\",acirc:\"\\xE2\",acute:\"\\xB4\",acy:\"\\u0430\",aelig:\"\\xE6\",af:\"\\u2061\",afr:\"\\u{1D51E}\",agrave:\"\\xE0\",alefsym:\"\\u2135\",aleph:\"\\u2135\",alpha:\"\\u03B1\",amacr:\"\\u0101\",amalg:\"\\u2A3F\",amp:\"&\",and:\"\\u2227\",andand:\"\\u2A55\",andd:\"\\u2A5C\",andslope:\"\\u2A58\",andv:\"\\u2A5A\",ang:\"\\u2220\",ange:\"\\u29A4\",angle:\"\\u2220\",angmsd:\"\\u2221\",angmsdaa:\"\\u29A8\",angmsdab:\"\\u29A9\",angmsdac:\"\\u29AA\",angmsdad:\"\\u29AB\",angmsdae:\"\\u29AC\",angmsdaf:\"\\u29AD\",angmsdag:\"\\u29AE\",angmsdah:\"\\u29AF\",angrt:\"\\u221F\",angrtvb:\"\\u22BE\",angrtvbd:\"\\u299D\",angsph:\"\\u2222\",angst:\"\\xC5\",angzarr:\"\\u237C\",aogon:\"\\u0105\",aopf:\"\\u{1D552}\",ap:\"\\u2248\",apE:\"\\u2A70\",apacir:\"\\u2A6F\",ape:\"\\u224A\",apid:\"\\u224B\",apos:\"'\",approx:\"\\u2248\",approxeq:\"\\u224A\",aring:\"\\xE5\",ascr:\"\\u{1D4B6}\",ast:\"*\",asymp:\"\\u2248\",asympeq:\"\\u224D\",atilde:\"\\xE3\",auml:\"\\xE4\",awconint:\"\\u2233\",awint:\"\\u2A11\",bNot:\"\\u2AED\",backcong:\"\\u224C\",backepsilon:\"\\u03F6\",backprime:\"\\u2035\",backsim:\"\\u223D\",backsimeq:\"\\u22CD\",barvee:\"\\u22BD\",barwed:\"\\u2305\",barwedge:\"\\u2305\",bbrk:\"\\u23B5\",bbrktbrk:\"\\u23B6\",bcong:\"\\u224C\",bcy:\"\\u0431\",bdquo:\"\\u201E\",becaus:\"\\u2235\",because:\"\\u2235\",bemptyv:\"\\u29B0\",bepsi:\"\\u03F6\",bernou:\"\\u212C\",beta:\"\\u03B2\",beth:\"\\u2136\",between:\"\\u226C\",bfr:\"\\u{1D51F}\",bigcap:\"\\u22C2\",bigcirc:\"\\u25EF\",bigcup:\"\\u22C3\",bigodot:\"\\u2A00\",bigoplus:\"\\u2A01\",bigotimes:\"\\u2A02\",bigsqcup:\"\\u2A06\",bigstar:\"\\u2605\",bigtriangledown:\"\\u25BD\",bigtriangleup:\"\\u25B3\",biguplus:\"\\u2A04\",bigvee:\"\\u22C1\",bigwedge:\"\\u22C0\",bkarow:\"\\u290D\",blacklozenge:\"\\u29EB\",blacksquare:\"\\u25AA\",blacktriangle:\"\\u25B4\",blacktriangledown:\"\\u25BE\",blacktriangleleft:\"\\u25C2\",blacktriangleright:\"\\u25B8\",blank:\"\\u2423\",blk12:\"\\u2592\",blk14:\"\\u2591\",blk34:\"\\u2593\",block:\"\\u2588\",bne:\"=\\u20E5\",bnequiv:\"\\u2261\\u20E5\",bnot:\"\\u2310\",bopf:\"\\u{1D553}\",bot:\"\\u22A5\",bottom:\"\\u22A5\",bowtie:\"\\u22C8\",boxDL:\"\\u2557\",boxDR:\"\\u2554\",boxDl:\"\\u2556\",boxDr:\"\\u2553\",boxH:\"\\u2550\",boxHD:\"\\u2566\",boxHU:\"\\u2569\",boxHd:\"\\u2564\",boxHu:\"\\u2567\",boxUL:\"\\u255D\",boxUR:\"\\u255A\",boxUl:\"\\u255C\",boxUr:\"\\u2559\",boxV:\"\\u2551\",boxVH:\"\\u256C\",boxVL:\"\\u2563\",boxVR:\"\\u2560\",boxVh:\"\\u256B\",boxVl:\"\\u2562\",boxVr:\"\\u255F\",boxbox:\"\\u29C9\",boxdL:\"\\u2555\",boxdR:\"\\u2552\",boxdl:\"\\u2510\",boxdr:\"\\u250C\",boxh:\"\\u2500\",boxhD:\"\\u2565\",boxhU:\"\\u2568\",boxhd:\"\\u252C\",boxhu:\"\\u2534\",boxminus:\"\\u229F\",boxplus:\"\\u229E\",boxtimes:\"\\u22A0\",boxuL:\"\\u255B\",boxuR:\"\\u2558\",boxul:\"\\u2518\",boxur:\"\\u2514\",boxv:\"\\u2502\",boxvH:\"\\u256A\",boxvL:\"\\u2561\",boxvR:\"\\u255E\",boxvh:\"\\u253C\",boxvl:\"\\u2524\",boxvr:\"\\u251C\",bprime:\"\\u2035\",breve:\"\\u02D8\",brvbar:\"\\xA6\",bscr:\"\\u{1D4B7}\",bsemi:\"\\u204F\",bsim:\"\\u223D\",bsime:\"\\u22CD\",bsol:\"\\\\\",bsolb:\"\\u29C5\",bsolhsub:\"\\u27C8\",bull:\"\\u2022\",bullet:\"\\u2022\",bump:\"\\u224E\",bumpE:\"\\u2AAE\",bumpe:\"\\u224F\",bumpeq:\"\\u224F\",cacute:\"\\u0107\",cap:\"\\u2229\",capand:\"\\u2A44\",capbrcup:\"\\u2A49\",capcap:\"\\u2A4B\",capcup:\"\\u2A47\",capdot:\"\\u2A40\",caps:\"\\u2229\\uFE00\",caret:\"\\u2041\",caron:\"\\u02C7\",ccaps:\"\\u2A4D\",ccaron:\"\\u010D\",ccedil:\"\\xE7\",ccirc:\"\\u0109\",ccups:\"\\u2A4C\",ccupssm:\"\\u2A50\",cdot:\"\\u010B\",cedil:\"\\xB8\",cemptyv:\"\\u29B2\",cent:\"\\xA2\",centerdot:\"\\xB7\",cfr:\"\\u{1D520}\",chcy:\"\\u0447\",check:\"\\u2713\",checkmark:\"\\u2713\",chi:\"\\u03C7\",cir:\"\\u25CB\",cirE:\"\\u29C3\",circ:\"\\u02C6\",circeq:\"\\u2257\",circlearrowleft:\"\\u21BA\",circlearrowright:\"\\u21BB\",circledR:\"\\xAE\",circledS:\"\\u24C8\",circledast:\"\\u229B\",circledcirc:\"\\u229A\",circleddash:\"\\u229D\",cire:\"\\u2257\",cirfnint:\"\\u2A10\",cirmid:\"\\u2AEF\",cirscir:\"\\u29C2\",clubs:\"\\u2663\",clubsuit:\"\\u2663\",colon:\":\",colone:\"\\u2254\",coloneq:\"\\u2254\",comma:\",\",commat:\"@\",comp:\"\\u2201\",compfn:\"\\u2218\",complement:\"\\u2201\",complexes:\"\\u2102\",cong:\"\\u2245\",congdot:\"\\u2A6D\",conint:\"\\u222E\",copf:\"\\u{1D554}\",coprod:\"\\u2210\",copy:\"\\xA9\",copysr:\"\\u2117\",crarr:\"\\u21B5\",cross:\"\\u2717\",cscr:\"\\u{1D4B8}\",csub:\"\\u2ACF\",csube:\"\\u2AD1\",csup:\"\\u2AD0\",csupe:\"\\u2AD2\",ctdot:\"\\u22EF\",cudarrl:\"\\u2938\",cudarrr:\"\\u2935\",cuepr:\"\\u22DE\",cuesc:\"\\u22DF\",cularr:\"\\u21B6\",cularrp:\"\\u293D\",cup:\"\\u222A\",cupbrcap:\"\\u2A48\",cupcap:\"\\u2A46\",cupcup:\"\\u2A4A\",cupdot:\"\\u228D\",cupor:\"\\u2A45\",cups:\"\\u222A\\uFE00\",curarr:\"\\u21B7\",curarrm:\"\\u293C\",curlyeqprec:\"\\u22DE\",curlyeqsucc:\"\\u22DF\",curlyvee:\"\\u22CE\",curlywedge:\"\\u22CF\",curren:\"\\xA4\",curvearrowleft:\"\\u21B6\",curvearrowright:\"\\u21B7\",cuvee:\"\\u22CE\",cuwed:\"\\u22CF\",cwconint:\"\\u2232\",cwint:\"\\u2231\",cylcty:\"\\u232D\",dArr:\"\\u21D3\",dHar:\"\\u2965\",dagger:\"\\u2020\",daleth:\"\\u2138\",darr:\"\\u2193\",dash:\"\\u2010\",dashv:\"\\u22A3\",dbkarow:\"\\u290F\",dblac:\"\\u02DD\",dcaron:\"\\u010F\",dcy:\"\\u0434\",dd:\"\\u2146\",ddagger:\"\\u2021\",ddarr:\"\\u21CA\",ddotseq:\"\\u2A77\",deg:\"\\xB0\",delta:\"\\u03B4\",demptyv:\"\\u29B1\",dfisht:\"\\u297F\",dfr:\"\\u{1D521}\",dharl:\"\\u21C3\",dharr:\"\\u21C2\",diam:\"\\u22C4\",diamond:\"\\u22C4\",diamondsuit:\"\\u2666\",diams:\"\\u2666\",die:\"\\xA8\",digamma:\"\\u03DD\",disin:\"\\u22F2\",div:\"\\xF7\",divide:\"\\xF7\",divideontimes:\"\\u22C7\",divonx:\"\\u22C7\",djcy:\"\\u0452\",dlcorn:\"\\u231E\",dlcrop:\"\\u230D\",dollar:\"$\",dopf:\"\\u{1D555}\",dot:\"\\u02D9\",doteq:\"\\u2250\",doteqdot:\"\\u2251\",dotminus:\"\\u2238\",dotplus:\"\\u2214\",dotsquare:\"\\u22A1\",doublebarwedge:\"\\u2306\",downarrow:\"\\u2193\",downdownarrows:\"\\u21CA\",downharpoonleft:\"\\u21C3\",downharpoonright:\"\\u21C2\",drbkarow:\"\\u2910\",drcorn:\"\\u231F\",drcrop:\"\\u230C\",dscr:\"\\u{1D4B9}\",dscy:\"\\u0455\",dsol:\"\\u29F6\",dstrok:\"\\u0111\",dtdot:\"\\u22F1\",dtri:\"\\u25BF\",dtrif:\"\\u25BE\",duarr:\"\\u21F5\",duhar:\"\\u296F\",dwangle:\"\\u29A6\",dzcy:\"\\u045F\",dzigrarr:\"\\u27FF\",eDDot:\"\\u2A77\",eDot:\"\\u2251\",eacute:\"\\xE9\",easter:\"\\u2A6E\",ecaron:\"\\u011B\",ecir:\"\\u2256\",ecirc:\"\\xEA\",ecolon:\"\\u2255\",ecy:\"\\u044D\",edot:\"\\u0117\",ee:\"\\u2147\",efDot:\"\\u2252\",efr:\"\\u{1D522}\",eg:\"\\u2A9A\",egrave:\"\\xE8\",egs:\"\\u2A96\",egsdot:\"\\u2A98\",el:\"\\u2A99\",elinters:\"\\u23E7\",ell:\"\\u2113\",els:\"\\u2A95\",elsdot:\"\\u2A97\",emacr:\"\\u0113\",empty:\"\\u2205\",emptyset:\"\\u2205\",emptyv:\"\\u2205\",emsp13:\"\\u2004\",emsp14:\"\\u2005\",emsp:\"\\u2003\",eng:\"\\u014B\",ensp:\"\\u2002\",eogon:\"\\u0119\",eopf:\"\\u{1D556}\",epar:\"\\u22D5\",eparsl:\"\\u29E3\",eplus:\"\\u2A71\",epsi:\"\\u03B5\",epsilon:\"\\u03B5\",epsiv:\"\\u03F5\",eqcirc:\"\\u2256\",eqcolon:\"\\u2255\",eqsim:\"\\u2242\",eqslantgtr:\"\\u2A96\",eqslantless:\"\\u2A95\",equals:\"=\",equest:\"\\u225F\",equiv:\"\\u2261\",equivDD:\"\\u2A78\",eqvparsl:\"\\u29E5\",erDot:\"\\u2253\",erarr:\"\\u2971\",escr:\"\\u212F\",esdot:\"\\u2250\",esim:\"\\u2242\",eta:\"\\u03B7\",eth:\"\\xF0\",euml:\"\\xEB\",euro:\"\\u20AC\",excl:\"!\",exist:\"\\u2203\",expectation:\"\\u2130\",exponentiale:\"\\u2147\",fallingdotseq:\"\\u2252\",fcy:\"\\u0444\",female:\"\\u2640\",ffilig:\"\\uFB03\",fflig:\"\\uFB00\",ffllig:\"\\uFB04\",ffr:\"\\u{1D523}\",filig:\"\\uFB01\",fjlig:\"fj\",flat:\"\\u266D\",fllig:\"\\uFB02\",fltns:\"\\u25B1\",fnof:\"\\u0192\",fopf:\"\\u{1D557}\",forall:\"\\u2200\",fork:\"\\u22D4\",forkv:\"\\u2AD9\",fpartint:\"\\u2A0D\",frac12:\"\\xBD\",frac13:\"\\u2153\",frac14:\"\\xBC\",frac15:\"\\u2155\",frac16:\"\\u2159\",frac18:\"\\u215B\",frac23:\"\\u2154\",frac25:\"\\u2156\",frac34:\"\\xBE\",frac35:\"\\u2157\",frac38:\"\\u215C\",frac45:\"\\u2158\",frac56:\"\\u215A\",frac58:\"\\u215D\",frac78:\"\\u215E\",frasl:\"\\u2044\",frown:\"\\u2322\",fscr:\"\\u{1D4BB}\",gE:\"\\u2267\",gEl:\"\\u2A8C\",gacute:\"\\u01F5\",gamma:\"\\u03B3\",gammad:\"\\u03DD\",gap:\"\\u2A86\",gbreve:\"\\u011F\",gcirc:\"\\u011D\",gcy:\"\\u0433\",gdot:\"\\u0121\",ge:\"\\u2265\",gel:\"\\u22DB\",geq:\"\\u2265\",geqq:\"\\u2267\",geqslant:\"\\u2A7E\",ges:\"\\u2A7E\",gescc:\"\\u2AA9\",gesdot:\"\\u2A80\",gesdoto:\"\\u2A82\",gesdotol:\"\\u2A84\",gesl:\"\\u22DB\\uFE00\",gesles:\"\\u2A94\",gfr:\"\\u{1D524}\",gg:\"\\u226B\",ggg:\"\\u22D9\",gimel:\"\\u2137\",gjcy:\"\\u0453\",gl:\"\\u2277\",glE:\"\\u2A92\",gla:\"\\u2AA5\",glj:\"\\u2AA4\",gnE:\"\\u2269\",gnap:\"\\u2A8A\",gnapprox:\"\\u2A8A\",gne:\"\\u2A88\",gneq:\"\\u2A88\",gneqq:\"\\u2269\",gnsim:\"\\u22E7\",gopf:\"\\u{1D558}\",grave:\"`\",gscr:\"\\u210A\",gsim:\"\\u2273\",gsime:\"\\u2A8E\",gsiml:\"\\u2A90\",gt:\">\",gtcc:\"\\u2AA7\",gtcir:\"\\u2A7A\",gtdot:\"\\u22D7\",gtlPar:\"\\u2995\",gtquest:\"\\u2A7C\",gtrapprox:\"\\u2A86\",gtrarr:\"\\u2978\",gtrdot:\"\\u22D7\",gtreqless:\"\\u22DB\",gtreqqless:\"\\u2A8C\",gtrless:\"\\u2277\",gtrsim:\"\\u2273\",gvertneqq:\"\\u2269\\uFE00\",gvnE:\"\\u2269\\uFE00\",hArr:\"\\u21D4\",hairsp:\"\\u200A\",half:\"\\xBD\",hamilt:\"\\u210B\",hardcy:\"\\u044A\",harr:\"\\u2194\",harrcir:\"\\u2948\",harrw:\"\\u21AD\",hbar:\"\\u210F\",hcirc:\"\\u0125\",hearts:\"\\u2665\",heartsuit:\"\\u2665\",hellip:\"\\u2026\",hercon:\"\\u22B9\",hfr:\"\\u{1D525}\",hksearow:\"\\u2925\",hkswarow:\"\\u2926\",hoarr:\"\\u21FF\",homtht:\"\\u223B\",hookleftarrow:\"\\u21A9\",hookrightarrow:\"\\u21AA\",hopf:\"\\u{1D559}\",horbar:\"\\u2015\",hscr:\"\\u{1D4BD}\",hslash:\"\\u210F\",hstrok:\"\\u0127\",hybull:\"\\u2043\",hyphen:\"\\u2010\",iacute:\"\\xED\",ic:\"\\u2063\",icirc:\"\\xEE\",icy:\"\\u0438\",iecy:\"\\u0435\",iexcl:\"\\xA1\",iff:\"\\u21D4\",ifr:\"\\u{1D526}\",igrave:\"\\xEC\",ii:\"\\u2148\",iiiint:\"\\u2A0C\",iiint:\"\\u222D\",iinfin:\"\\u29DC\",iiota:\"\\u2129\",ijlig:\"\\u0133\",imacr:\"\\u012B\",image:\"\\u2111\",imagline:\"\\u2110\",imagpart:\"\\u2111\",imath:\"\\u0131\",imof:\"\\u22B7\",imped:\"\\u01B5\",in:\"\\u2208\",incare:\"\\u2105\",infin:\"\\u221E\",infintie:\"\\u29DD\",inodot:\"\\u0131\",int:\"\\u222B\",intcal:\"\\u22BA\",integers:\"\\u2124\",intercal:\"\\u22BA\",intlarhk:\"\\u2A17\",intprod:\"\\u2A3C\",iocy:\"\\u0451\",iogon:\"\\u012F\",iopf:\"\\u{1D55A}\",iota:\"\\u03B9\",iprod:\"\\u2A3C\",iquest:\"\\xBF\",iscr:\"\\u{1D4BE}\",isin:\"\\u2208\",isinE:\"\\u22F9\",isindot:\"\\u22F5\",isins:\"\\u22F4\",isinsv:\"\\u22F3\",isinv:\"\\u2208\",it:\"\\u2062\",itilde:\"\\u0129\",iukcy:\"\\u0456\",iuml:\"\\xEF\",jcirc:\"\\u0135\",jcy:\"\\u0439\",jfr:\"\\u{1D527}\",jmath:\"\\u0237\",jopf:\"\\u{1D55B}\",jscr:\"\\u{1D4BF}\",jsercy:\"\\u0458\",jukcy:\"\\u0454\",kappa:\"\\u03BA\",kappav:\"\\u03F0\",kcedil:\"\\u0137\",kcy:\"\\u043A\",kfr:\"\\u{1D528}\",kgreen:\"\\u0138\",khcy:\"\\u0445\",kjcy:\"\\u045C\",kopf:\"\\u{1D55C}\",kscr:\"\\u{1D4C0}\",lAarr:\"\\u21DA\",lArr:\"\\u21D0\",lAtail:\"\\u291B\",lBarr:\"\\u290E\",lE:\"\\u2266\",lEg:\"\\u2A8B\",lHar:\"\\u2962\",lacute:\"\\u013A\",laemptyv:\"\\u29B4\",lagran:\"\\u2112\",lambda:\"\\u03BB\",lang:\"\\u27E8\",langd:\"\\u2991\",langle:\"\\u27E8\",lap:\"\\u2A85\",laquo:\"\\xAB\",larr:\"\\u2190\",larrb:\"\\u21E4\",larrbfs:\"\\u291F\",larrfs:\"\\u291D\",larrhk:\"\\u21A9\",larrlp:\"\\u21AB\",larrpl:\"\\u2939\",larrsim:\"\\u2973\",larrtl:\"\\u21A2\",lat:\"\\u2AAB\",latail:\"\\u2919\",late:\"\\u2AAD\",lates:\"\\u2AAD\\uFE00\",lbarr:\"\\u290C\",lbbrk:\"\\u2772\",lbrace:\"{\",lbrack:\"[\",lbrke:\"\\u298B\",lbrksld:\"\\u298F\",lbrkslu:\"\\u298D\",lcaron:\"\\u013E\",lcedil:\"\\u013C\",lceil:\"\\u2308\",lcub:\"{\",lcy:\"\\u043B\",ldca:\"\\u2936\",ldquo:\"\\u201C\",ldquor:\"\\u201E\",ldrdhar:\"\\u2967\",ldrushar:\"\\u294B\",ldsh:\"\\u21B2\",le:\"\\u2264\",leftarrow:\"\\u2190\",leftarrowtail:\"\\u21A2\",leftharpoondown:\"\\u21BD\",leftharpoonup:\"\\u21BC\",leftleftarrows:\"\\u21C7\",leftrightarrow:\"\\u2194\",leftrightarrows:\"\\u21C6\",leftrightharpoons:\"\\u21CB\",leftrightsquigarrow:\"\\u21AD\",leftthreetimes:\"\\u22CB\",leg:\"\\u22DA\",leq:\"\\u2264\",leqq:\"\\u2266\",leqslant:\"\\u2A7D\",les:\"\\u2A7D\",lescc:\"\\u2AA8\",lesdot:\"\\u2A7F\",lesdoto:\"\\u2A81\",lesdotor:\"\\u2A83\",lesg:\"\\u22DA\\uFE00\",lesges:\"\\u2A93\",lessapprox:\"\\u2A85\",lessdot:\"\\u22D6\",lesseqgtr:\"\\u22DA\",lesseqqgtr:\"\\u2A8B\",lessgtr:\"\\u2276\",lesssim:\"\\u2272\",lfisht:\"\\u297C\",lfloor:\"\\u230A\",lfr:\"\\u{1D529}\",lg:\"\\u2276\",lgE:\"\\u2A91\",lhard:\"\\u21BD\",lharu:\"\\u21BC\",lharul:\"\\u296A\",lhblk:\"\\u2584\",ljcy:\"\\u0459\",ll:\"\\u226A\",llarr:\"\\u21C7\",llcorner:\"\\u231E\",llhard:\"\\u296B\",lltri:\"\\u25FA\",lmidot:\"\\u0140\",lmoust:\"\\u23B0\",lmoustache:\"\\u23B0\",lnE:\"\\u2268\",lnap:\"\\u2A89\",lnapprox:\"\\u2A89\",lne:\"\\u2A87\",lneq:\"\\u2A87\",lneqq:\"\\u2268\",lnsim:\"\\u22E6\",loang:\"\\u27EC\",loarr:\"\\u21FD\",lobrk:\"\\u27E6\",longleftarrow:\"\\u27F5\",longleftrightarrow:\"\\u27F7\",longmapsto:\"\\u27FC\",longrightarrow:\"\\u27F6\",looparrowleft:\"\\u21AB\",looparrowright:\"\\u21AC\",lopar:\"\\u2985\",lopf:\"\\u{1D55D}\",loplus:\"\\u2A2D\",lotimes:\"\\u2A34\",lowast:\"\\u2217\",lowbar:\"_\",loz:\"\\u25CA\",lozenge:\"\\u25CA\",lozf:\"\\u29EB\",lpar:\"(\",lparlt:\"\\u2993\",lrarr:\"\\u21C6\",lrcorner:\"\\u231F\",lrhar:\"\\u21CB\",lrhard:\"\\u296D\",lrm:\"\\u200E\",lrtri:\"\\u22BF\",lsaquo:\"\\u2039\",lscr:\"\\u{1D4C1}\",lsh:\"\\u21B0\",lsim:\"\\u2272\",lsime:\"\\u2A8D\",lsimg:\"\\u2A8F\",lsqb:\"[\",lsquo:\"\\u2018\",lsquor:\"\\u201A\",lstrok:\"\\u0142\",lt:\"<\",ltcc:\"\\u2AA6\",ltcir:\"\\u2A79\",ltdot:\"\\u22D6\",lthree:\"\\u22CB\",ltimes:\"\\u22C9\",ltlarr:\"\\u2976\",ltquest:\"\\u2A7B\",ltrPar:\"\\u2996\",ltri:\"\\u25C3\",ltrie:\"\\u22B4\",ltrif:\"\\u25C2\",lurdshar:\"\\u294A\",luruhar:\"\\u2966\",lvertneqq:\"\\u2268\\uFE00\",lvnE:\"\\u2268\\uFE00\",mDDot:\"\\u223A\",macr:\"\\xAF\",male:\"\\u2642\",malt:\"\\u2720\",maltese:\"\\u2720\",map:\"\\u21A6\",mapsto:\"\\u21A6\",mapstodown:\"\\u21A7\",mapstoleft:\"\\u21A4\",mapstoup:\"\\u21A5\",marker:\"\\u25AE\",mcomma:\"\\u2A29\",mcy:\"\\u043C\",mdash:\"\\u2014\",measuredangle:\"\\u2221\",mfr:\"\\u{1D52A}\",mho:\"\\u2127\",micro:\"\\xB5\",mid:\"\\u2223\",midast:\"*\",midcir:\"\\u2AF0\",middot:\"\\xB7\",minus:\"\\u2212\",minusb:\"\\u229F\",minusd:\"\\u2238\",minusdu:\"\\u2A2A\",mlcp:\"\\u2ADB\",mldr:\"\\u2026\",mnplus:\"\\u2213\",models:\"\\u22A7\",mopf:\"\\u{1D55E}\",mp:\"\\u2213\",mscr:\"\\u{1D4C2}\",mstpos:\"\\u223E\",mu:\"\\u03BC\",multimap:\"\\u22B8\",mumap:\"\\u22B8\",nGg:\"\\u22D9\\u0338\",nGt:\"\\u226B\\u20D2\",nGtv:\"\\u226B\\u0338\",nLeftarrow:\"\\u21CD\",nLeftrightarrow:\"\\u21CE\",nLl:\"\\u22D8\\u0338\",nLt:\"\\u226A\\u20D2\",nLtv:\"\\u226A\\u0338\",nRightarrow:\"\\u21CF\",nVDash:\"\\u22AF\",nVdash:\"\\u22AE\",nabla:\"\\u2207\",nacute:\"\\u0144\",nang:\"\\u2220\\u20D2\",nap:\"\\u2249\",napE:\"\\u2A70\\u0338\",napid:\"\\u224B\\u0338\",napos:\"\\u0149\",napprox:\"\\u2249\",natur:\"\\u266E\",natural:\"\\u266E\",naturals:\"\\u2115\",nbsp:\"\\xA0\",nbump:\"\\u224E\\u0338\",nbumpe:\"\\u224F\\u0338\",ncap:\"\\u2A43\",ncaron:\"\\u0148\",ncedil:\"\\u0146\",ncong:\"\\u2247\",ncongdot:\"\\u2A6D\\u0338\",ncup:\"\\u2A42\",ncy:\"\\u043D\",ndash:\"\\u2013\",ne:\"\\u2260\",neArr:\"\\u21D7\",nearhk:\"\\u2924\",nearr:\"\\u2197\",nearrow:\"\\u2197\",nedot:\"\\u2250\\u0338\",nequiv:\"\\u2262\",nesear:\"\\u2928\",nesim:\"\\u2242\\u0338\",nexist:\"\\u2204\",nexists:\"\\u2204\",nfr:\"\\u{1D52B}\",ngE:\"\\u2267\\u0338\",nge:\"\\u2271\",ngeq:\"\\u2271\",ngeqq:\"\\u2267\\u0338\",ngeqslant:\"\\u2A7E\\u0338\",nges:\"\\u2A7E\\u0338\",ngsim:\"\\u2275\",ngt:\"\\u226F\",ngtr:\"\\u226F\",nhArr:\"\\u21CE\",nharr:\"\\u21AE\",nhpar:\"\\u2AF2\",ni:\"\\u220B\",nis:\"\\u22FC\",nisd:\"\\u22FA\",niv:\"\\u220B\",njcy:\"\\u045A\",nlArr:\"\\u21CD\",nlE:\"\\u2266\\u0338\",nlarr:\"\\u219A\",nldr:\"\\u2025\",nle:\"\\u2270\",nleftarrow:\"\\u219A\",nleftrightarrow:\"\\u21AE\",nleq:\"\\u2270\",nleqq:\"\\u2266\\u0338\",nleqslant:\"\\u2A7D\\u0338\",nles:\"\\u2A7D\\u0338\",nless:\"\\u226E\",nlsim:\"\\u2274\",nlt:\"\\u226E\",nltri:\"\\u22EA\",nltrie:\"\\u22EC\",nmid:\"\\u2224\",nopf:\"\\u{1D55F}\",not:\"\\xAC\",notin:\"\\u2209\",notinE:\"\\u22F9\\u0338\",notindot:\"\\u22F5\\u0338\",notinva:\"\\u2209\",notinvb:\"\\u22F7\",notinvc:\"\\u22F6\",notni:\"\\u220C\",notniva:\"\\u220C\",notnivb:\"\\u22FE\",notnivc:\"\\u22FD\",npar:\"\\u2226\",nparallel:\"\\u2226\",nparsl:\"\\u2AFD\\u20E5\",npart:\"\\u2202\\u0338\",npolint:\"\\u2A14\",npr:\"\\u2280\",nprcue:\"\\u22E0\",npre:\"\\u2AAF\\u0338\",nprec:\"\\u2280\",npreceq:\"\\u2AAF\\u0338\",nrArr:\"\\u21CF\",nrarr:\"\\u219B\",nrarrc:\"\\u2933\\u0338\",nrarrw:\"\\u219D\\u0338\",nrightarrow:\"\\u219B\",nrtri:\"\\u22EB\",nrtrie:\"\\u22ED\",nsc:\"\\u2281\",nsccue:\"\\u22E1\",nsce:\"\\u2AB0\\u0338\",nscr:\"\\u{1D4C3}\",nshortmid:\"\\u2224\",nshortparallel:\"\\u2226\",nsim:\"\\u2241\",nsime:\"\\u2244\",nsimeq:\"\\u2244\",nsmid:\"\\u2224\",nspar:\"\\u2226\",nsqsube:\"\\u22E2\",nsqsupe:\"\\u22E3\",nsub:\"\\u2284\",nsubE:\"\\u2AC5\\u0338\",nsube:\"\\u2288\",nsubset:\"\\u2282\\u20D2\",nsubseteq:\"\\u2288\",nsubseteqq:\"\\u2AC5\\u0338\",nsucc:\"\\u2281\",nsucceq:\"\\u2AB0\\u0338\",nsup:\"\\u2285\",nsupE:\"\\u2AC6\\u0338\",nsupe:\"\\u2289\",nsupset:\"\\u2283\\u20D2\",nsupseteq:\"\\u2289\",nsupseteqq:\"\\u2AC6\\u0338\",ntgl:\"\\u2279\",ntilde:\"\\xF1\",ntlg:\"\\u2278\",ntriangleleft:\"\\u22EA\",ntrianglelefteq:\"\\u22EC\",ntriangleright:\"\\u22EB\",ntrianglerighteq:\"\\u22ED\",nu:\"\\u03BD\",num:\"#\",numero:\"\\u2116\",numsp:\"\\u2007\",nvDash:\"\\u22AD\",nvHarr:\"\\u2904\",nvap:\"\\u224D\\u20D2\",nvdash:\"\\u22AC\",nvge:\"\\u2265\\u20D2\",nvgt:\">\\u20D2\",nvinfin:\"\\u29DE\",nvlArr:\"\\u2902\",nvle:\"\\u2264\\u20D2\",nvlt:\"<\\u20D2\",nvltrie:\"\\u22B4\\u20D2\",nvrArr:\"\\u2903\",nvrtrie:\"\\u22B5\\u20D2\",nvsim:\"\\u223C\\u20D2\",nwArr:\"\\u21D6\",nwarhk:\"\\u2923\",nwarr:\"\\u2196\",nwarrow:\"\\u2196\",nwnear:\"\\u2927\",oS:\"\\u24C8\",oacute:\"\\xF3\",oast:\"\\u229B\",ocir:\"\\u229A\",ocirc:\"\\xF4\",ocy:\"\\u043E\",odash:\"\\u229D\",odblac:\"\\u0151\",odiv:\"\\u2A38\",odot:\"\\u2299\",odsold:\"\\u29BC\",oelig:\"\\u0153\",ofcir:\"\\u29BF\",ofr:\"\\u{1D52C}\",ogon:\"\\u02DB\",ograve:\"\\xF2\",ogt:\"\\u29C1\",ohbar:\"\\u29B5\",ohm:\"\\u03A9\",oint:\"\\u222E\",olarr:\"\\u21BA\",olcir:\"\\u29BE\",olcross:\"\\u29BB\",oline:\"\\u203E\",olt:\"\\u29C0\",omacr:\"\\u014D\",omega:\"\\u03C9\",omicron:\"\\u03BF\",omid:\"\\u29B6\",ominus:\"\\u2296\",oopf:\"\\u{1D560}\",opar:\"\\u29B7\",operp:\"\\u29B9\",oplus:\"\\u2295\",or:\"\\u2228\",orarr:\"\\u21BB\",ord:\"\\u2A5D\",order:\"\\u2134\",orderof:\"\\u2134\",ordf:\"\\xAA\",ordm:\"\\xBA\",origof:\"\\u22B6\",oror:\"\\u2A56\",orslope:\"\\u2A57\",orv:\"\\u2A5B\",oscr:\"\\u2134\",oslash:\"\\xF8\",osol:\"\\u2298\",otilde:\"\\xF5\",otimes:\"\\u2297\",otimesas:\"\\u2A36\",ouml:\"\\xF6\",ovbar:\"\\u233D\",par:\"\\u2225\",para:\"\\xB6\",parallel:\"\\u2225\",parsim:\"\\u2AF3\",parsl:\"\\u2AFD\",part:\"\\u2202\",pcy:\"\\u043F\",percnt:\"%\",period:\".\",permil:\"\\u2030\",perp:\"\\u22A5\",pertenk:\"\\u2031\",pfr:\"\\u{1D52D}\",phi:\"\\u03C6\",phiv:\"\\u03D5\",phmmat:\"\\u2133\",phone:\"\\u260E\",pi:\"\\u03C0\",pitchfork:\"\\u22D4\",piv:\"\\u03D6\",planck:\"\\u210F\",planckh:\"\\u210E\",plankv:\"\\u210F\",plus:\"+\",plusacir:\"\\u2A23\",plusb:\"\\u229E\",pluscir:\"\\u2A22\",plusdo:\"\\u2214\",plusdu:\"\\u2A25\",pluse:\"\\u2A72\",plusmn:\"\\xB1\",plussim:\"\\u2A26\",plustwo:\"\\u2A27\",pm:\"\\xB1\",pointint:\"\\u2A15\",popf:\"\\u{1D561}\",pound:\"\\xA3\",pr:\"\\u227A\",prE:\"\\u2AB3\",prap:\"\\u2AB7\",prcue:\"\\u227C\",pre:\"\\u2AAF\",prec:\"\\u227A\",precapprox:\"\\u2AB7\",preccurlyeq:\"\\u227C\",preceq:\"\\u2AAF\",precnapprox:\"\\u2AB9\",precneqq:\"\\u2AB5\",precnsim:\"\\u22E8\",precsim:\"\\u227E\",prime:\"\\u2032\",primes:\"\\u2119\",prnE:\"\\u2AB5\",prnap:\"\\u2AB9\",prnsim:\"\\u22E8\",prod:\"\\u220F\",profalar:\"\\u232E\",profline:\"\\u2312\",profsurf:\"\\u2313\",prop:\"\\u221D\",propto:\"\\u221D\",prsim:\"\\u227E\",prurel:\"\\u22B0\",pscr:\"\\u{1D4C5}\",psi:\"\\u03C8\",puncsp:\"\\u2008\",qfr:\"\\u{1D52E}\",qint:\"\\u2A0C\",qopf:\"\\u{1D562}\",qprime:\"\\u2057\",qscr:\"\\u{1D4C6}\",quaternions:\"\\u210D\",quatint:\"\\u2A16\",quest:\"?\",questeq:\"\\u225F\",quot:'\"',rAarr:\"\\u21DB\",rArr:\"\\u21D2\",rAtail:\"\\u291C\",rBarr:\"\\u290F\",rHar:\"\\u2964\",race:\"\\u223D\\u0331\",racute:\"\\u0155\",radic:\"\\u221A\",raemptyv:\"\\u29B3\",rang:\"\\u27E9\",rangd:\"\\u2992\",range:\"\\u29A5\",rangle:\"\\u27E9\",raquo:\"\\xBB\",rarr:\"\\u2192\",rarrap:\"\\u2975\",rarrb:\"\\u21E5\",rarrbfs:\"\\u2920\",rarrc:\"\\u2933\",rarrfs:\"\\u291E\",rarrhk:\"\\u21AA\",rarrlp:\"\\u21AC\",rarrpl:\"\\u2945\",rarrsim:\"\\u2974\",rarrtl:\"\\u21A3\",rarrw:\"\\u219D\",ratail:\"\\u291A\",ratio:\"\\u2236\",rationals:\"\\u211A\",rbarr:\"\\u290D\",rbbrk:\"\\u2773\",rbrace:\"}\",rbrack:\"]\",rbrke:\"\\u298C\",rbrksld:\"\\u298E\",rbrkslu:\"\\u2990\",rcaron:\"\\u0159\",rcedil:\"\\u0157\",rceil:\"\\u2309\",rcub:\"}\",rcy:\"\\u0440\",rdca:\"\\u2937\",rdldhar:\"\\u2969\",rdquo:\"\\u201D\",rdquor:\"\\u201D\",rdsh:\"\\u21B3\",real:\"\\u211C\",realine:\"\\u211B\",realpart:\"\\u211C\",reals:\"\\u211D\",rect:\"\\u25AD\",reg:\"\\xAE\",rfisht:\"\\u297D\",rfloor:\"\\u230B\",rfr:\"\\u{1D52F}\",rhard:\"\\u21C1\",rharu:\"\\u21C0\",rharul:\"\\u296C\",rho:\"\\u03C1\",rhov:\"\\u03F1\",rightarrow:\"\\u2192\",rightarrowtail:\"\\u21A3\",rightharpoondown:\"\\u21C1\",rightharpoonup:\"\\u21C0\",rightleftarrows:\"\\u21C4\",rightleftharpoons:\"\\u21CC\",rightrightarrows:\"\\u21C9\",rightsquigarrow:\"\\u219D\",rightthreetimes:\"\\u22CC\",ring:\"\\u02DA\",risingdotseq:\"\\u2253\",rlarr:\"\\u21C4\",rlhar:\"\\u21CC\",rlm:\"\\u200F\",rmoust:\"\\u23B1\",rmoustache:\"\\u23B1\",rnmid:\"\\u2AEE\",roang:\"\\u27ED\",roarr:\"\\u21FE\",robrk:\"\\u27E7\",ropar:\"\\u2986\",ropf:\"\\u{1D563}\",roplus:\"\\u2A2E\",rotimes:\"\\u2A35\",rpar:\")\",rpargt:\"\\u2994\",rppolint:\"\\u2A12\",rrarr:\"\\u21C9\",rsaquo:\"\\u203A\",rscr:\"\\u{1D4C7}\",rsh:\"\\u21B1\",rsqb:\"]\",rsquo:\"\\u2019\",rsquor:\"\\u2019\",rthree:\"\\u22CC\",rtimes:\"\\u22CA\",rtri:\"\\u25B9\",rtrie:\"\\u22B5\",rtrif:\"\\u25B8\",rtriltri:\"\\u29CE\",ruluhar:\"\\u2968\",rx:\"\\u211E\",sacute:\"\\u015B\",sbquo:\"\\u201A\",sc:\"\\u227B\",scE:\"\\u2AB4\",scap:\"\\u2AB8\",scaron:\"\\u0161\",sccue:\"\\u227D\",sce:\"\\u2AB0\",scedil:\"\\u015F\",scirc:\"\\u015D\",scnE:\"\\u2AB6\",scnap:\"\\u2ABA\",scnsim:\"\\u22E9\",scpolint:\"\\u2A13\",scsim:\"\\u227F\",scy:\"\\u0441\",sdot:\"\\u22C5\",sdotb:\"\\u22A1\",sdote:\"\\u2A66\",seArr:\"\\u21D8\",searhk:\"\\u2925\",searr:\"\\u2198\",searrow:\"\\u2198\",sect:\"\\xA7\",semi:\";\",seswar:\"\\u2929\",setminus:\"\\u2216\",setmn:\"\\u2216\",sext:\"\\u2736\",sfr:\"\\u{1D530}\",sfrown:\"\\u2322\",sharp:\"\\u266F\",shchcy:\"\\u0449\",shcy:\"\\u0448\",shortmid:\"\\u2223\",shortparallel:\"\\u2225\",shy:\"\\xAD\",sigma:\"\\u03C3\",sigmaf:\"\\u03C2\",sigmav:\"\\u03C2\",sim:\"\\u223C\",simdot:\"\\u2A6A\",sime:\"\\u2243\",simeq:\"\\u2243\",simg:\"\\u2A9E\",simgE:\"\\u2AA0\",siml:\"\\u2A9D\",simlE:\"\\u2A9F\",simne:\"\\u2246\",simplus:\"\\u2A24\",simrarr:\"\\u2972\",slarr:\"\\u2190\",smallsetminus:\"\\u2216\",smashp:\"\\u2A33\",smeparsl:\"\\u29E4\",smid:\"\\u2223\",smile:\"\\u2323\",smt:\"\\u2AAA\",smte:\"\\u2AAC\",smtes:\"\\u2AAC\\uFE00\",softcy:\"\\u044C\",sol:\"/\",solb:\"\\u29C4\",solbar:\"\\u233F\",sopf:\"\\u{1D564}\",spades:\"\\u2660\",spadesuit:\"\\u2660\",spar:\"\\u2225\",sqcap:\"\\u2293\",sqcaps:\"\\u2293\\uFE00\",sqcup:\"\\u2294\",sqcups:\"\\u2294\\uFE00\",sqsub:\"\\u228F\",sqsube:\"\\u2291\",sqsubset:\"\\u228F\",sqsubseteq:\"\\u2291\",sqsup:\"\\u2290\",sqsupe:\"\\u2292\",sqsupset:\"\\u2290\",sqsupseteq:\"\\u2292\",squ:\"\\u25A1\",square:\"\\u25A1\",squarf:\"\\u25AA\",squf:\"\\u25AA\",srarr:\"\\u2192\",sscr:\"\\u{1D4C8}\",ssetmn:\"\\u2216\",ssmile:\"\\u2323\",sstarf:\"\\u22C6\",star:\"\\u2606\",starf:\"\\u2605\",straightepsilon:\"\\u03F5\",straightphi:\"\\u03D5\",strns:\"\\xAF\",sub:\"\\u2282\",subE:\"\\u2AC5\",subdot:\"\\u2ABD\",sube:\"\\u2286\",subedot:\"\\u2AC3\",submult:\"\\u2AC1\",subnE:\"\\u2ACB\",subne:\"\\u228A\",subplus:\"\\u2ABF\",subrarr:\"\\u2979\",subset:\"\\u2282\",subseteq:\"\\u2286\",subseteqq:\"\\u2AC5\",subsetneq:\"\\u228A\",subsetneqq:\"\\u2ACB\",subsim:\"\\u2AC7\",subsub:\"\\u2AD5\",subsup:\"\\u2AD3\",succ:\"\\u227B\",succapprox:\"\\u2AB8\",succcurlyeq:\"\\u227D\",succeq:\"\\u2AB0\",succnapprox:\"\\u2ABA\",succneqq:\"\\u2AB6\",succnsim:\"\\u22E9\",succsim:\"\\u227F\",sum:\"\\u2211\",sung:\"\\u266A\",sup1:\"\\xB9\",sup2:\"\\xB2\",sup3:\"\\xB3\",sup:\"\\u2283\",supE:\"\\u2AC6\",supdot:\"\\u2ABE\",supdsub:\"\\u2AD8\",supe:\"\\u2287\",supedot:\"\\u2AC4\",suphsol:\"\\u27C9\",suphsub:\"\\u2AD7\",suplarr:\"\\u297B\",supmult:\"\\u2AC2\",supnE:\"\\u2ACC\",supne:\"\\u228B\",supplus:\"\\u2AC0\",supset:\"\\u2283\",supseteq:\"\\u2287\",supseteqq:\"\\u2AC6\",supsetneq:\"\\u228B\",supsetneqq:\"\\u2ACC\",supsim:\"\\u2AC8\",supsub:\"\\u2AD4\",supsup:\"\\u2AD6\",swArr:\"\\u21D9\",swarhk:\"\\u2926\",swarr:\"\\u2199\",swarrow:\"\\u2199\",swnwar:\"\\u292A\",szlig:\"\\xDF\",target:\"\\u2316\",tau:\"\\u03C4\",tbrk:\"\\u23B4\",tcaron:\"\\u0165\",tcedil:\"\\u0163\",tcy:\"\\u0442\",tdot:\"\\u20DB\",telrec:\"\\u2315\",tfr:\"\\u{1D531}\",there4:\"\\u2234\",therefore:\"\\u2234\",theta:\"\\u03B8\",thetasym:\"\\u03D1\",thetav:\"\\u03D1\",thickapprox:\"\\u2248\",thicksim:\"\\u223C\",thinsp:\"\\u2009\",thkap:\"\\u2248\",thksim:\"\\u223C\",thorn:\"\\xFE\",tilde:\"\\u02DC\",times:\"\\xD7\",timesb:\"\\u22A0\",timesbar:\"\\u2A31\",timesd:\"\\u2A30\",tint:\"\\u222D\",toea:\"\\u2928\",top:\"\\u22A4\",topbot:\"\\u2336\",topcir:\"\\u2AF1\",topf:\"\\u{1D565}\",topfork:\"\\u2ADA\",tosa:\"\\u2929\",tprime:\"\\u2034\",trade:\"\\u2122\",triangle:\"\\u25B5\",triangledown:\"\\u25BF\",triangleleft:\"\\u25C3\",trianglelefteq:\"\\u22B4\",triangleq:\"\\u225C\",triangleright:\"\\u25B9\",trianglerighteq:\"\\u22B5\",tridot:\"\\u25EC\",trie:\"\\u225C\",triminus:\"\\u2A3A\",triplus:\"\\u2A39\",trisb:\"\\u29CD\",tritime:\"\\u2A3B\",trpezium:\"\\u23E2\",tscr:\"\\u{1D4C9}\",tscy:\"\\u0446\",tshcy:\"\\u045B\",tstrok:\"\\u0167\",twixt:\"\\u226C\",twoheadleftarrow:\"\\u219E\",twoheadrightarrow:\"\\u21A0\",uArr:\"\\u21D1\",uHar:\"\\u2963\",uacute:\"\\xFA\",uarr:\"\\u2191\",ubrcy:\"\\u045E\",ubreve:\"\\u016D\",ucirc:\"\\xFB\",ucy:\"\\u0443\",udarr:\"\\u21C5\",udblac:\"\\u0171\",udhar:\"\\u296E\",ufisht:\"\\u297E\",ufr:\"\\u{1D532}\",ugrave:\"\\xF9\",uharl:\"\\u21BF\",uharr:\"\\u21BE\",uhblk:\"\\u2580\",ulcorn:\"\\u231C\",ulcorner:\"\\u231C\",ulcrop:\"\\u230F\",ultri:\"\\u25F8\",umacr:\"\\u016B\",uml:\"\\xA8\",uogon:\"\\u0173\",uopf:\"\\u{1D566}\",uparrow:\"\\u2191\",updownarrow:\"\\u2195\",upharpoonleft:\"\\u21BF\",upharpoonright:\"\\u21BE\",uplus:\"\\u228E\",upsi:\"\\u03C5\",upsih:\"\\u03D2\",upsilon:\"\\u03C5\",upuparrows:\"\\u21C8\",urcorn:\"\\u231D\",urcorner:\"\\u231D\",urcrop:\"\\u230E\",uring:\"\\u016F\",urtri:\"\\u25F9\",uscr:\"\\u{1D4CA}\",utdot:\"\\u22F0\",utilde:\"\\u0169\",utri:\"\\u25B5\",utrif:\"\\u25B4\",uuarr:\"\\u21C8\",uuml:\"\\xFC\",uwangle:\"\\u29A7\",vArr:\"\\u21D5\",vBar:\"\\u2AE8\",vBarv:\"\\u2AE9\",vDash:\"\\u22A8\",vangrt:\"\\u299C\",varepsilon:\"\\u03F5\",varkappa:\"\\u03F0\",varnothing:\"\\u2205\",varphi:\"\\u03D5\",varpi:\"\\u03D6\",varpropto:\"\\u221D\",varr:\"\\u2195\",varrho:\"\\u03F1\",varsigma:\"\\u03C2\",varsubsetneq:\"\\u228A\\uFE00\",varsubsetneqq:\"\\u2ACB\\uFE00\",varsupsetneq:\"\\u228B\\uFE00\",varsupsetneqq:\"\\u2ACC\\uFE00\",vartheta:\"\\u03D1\",vartriangleleft:\"\\u22B2\",vartriangleright:\"\\u22B3\",vcy:\"\\u0432\",vdash:\"\\u22A2\",vee:\"\\u2228\",veebar:\"\\u22BB\",veeeq:\"\\u225A\",vellip:\"\\u22EE\",verbar:\"|\",vert:\"|\",vfr:\"\\u{1D533}\",vltri:\"\\u22B2\",vnsub:\"\\u2282\\u20D2\",vnsup:\"\\u2283\\u20D2\",vopf:\"\\u{1D567}\",vprop:\"\\u221D\",vrtri:\"\\u22B3\",vscr:\"\\u{1D4CB}\",vsubnE:\"\\u2ACB\\uFE00\",vsubne:\"\\u228A\\uFE00\",vsupnE:\"\\u2ACC\\uFE00\",vsupne:\"\\u228B\\uFE00\",vzigzag:\"\\u299A\",wcirc:\"\\u0175\",wedbar:\"\\u2A5F\",wedge:\"\\u2227\",wedgeq:\"\\u2259\",weierp:\"\\u2118\",wfr:\"\\u{1D534}\",wopf:\"\\u{1D568}\",wp:\"\\u2118\",wr:\"\\u2240\",wreath:\"\\u2240\",wscr:\"\\u{1D4CC}\",xcap:\"\\u22C2\",xcirc:\"\\u25EF\",xcup:\"\\u22C3\",xdtri:\"\\u25BD\",xfr:\"\\u{1D535}\",xhArr:\"\\u27FA\",xharr:\"\\u27F7\",xi:\"\\u03BE\",xlArr:\"\\u27F8\",xlarr:\"\\u27F5\",xmap:\"\\u27FC\",xnis:\"\\u22FB\",xodot:\"\\u2A00\",xopf:\"\\u{1D569}\",xoplus:\"\\u2A01\",xotime:\"\\u2A02\",xrArr:\"\\u27F9\",xrarr:\"\\u27F6\",xscr:\"\\u{1D4CD}\",xsqcup:\"\\u2A06\",xuplus:\"\\u2A04\",xutri:\"\\u25B3\",xvee:\"\\u22C1\",xwedge:\"\\u22C0\",yacute:\"\\xFD\",yacy:\"\\u044F\",ycirc:\"\\u0177\",ycy:\"\\u044B\",yen:\"\\xA5\",yfr:\"\\u{1D536}\",yicy:\"\\u0457\",yopf:\"\\u{1D56A}\",yscr:\"\\u{1D4CE}\",yucy:\"\\u044E\",yuml:\"\\xFF\",zacute:\"\\u017A\",zcaron:\"\\u017E\",zcy:\"\\u0437\",zdot:\"\\u017C\",zeetrf:\"\\u2128\",zeta:\"\\u03B6\",zfr:\"\\u{1D537}\",zhcy:\"\\u0436\",zigrarr:\"\\u21DD\",zopf:\"\\u{1D56B}\",zscr:\"\\u{1D4CF}\",zwj:\"\\u200D\",zwnj:\"\\u200C\"},$u={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function D0(u){return u.replace(/&(?:[a-zA-Z]+|#[xX][\\da-fA-F]+|#\\d+);/g,e=>{if(e.charAt(1)===\"#\"){let i=e.charAt(2),n=i===\"X\"||i===\"x\"?parseInt(e.slice(3),16):parseInt(e.slice(2),10);return C0(n)}return E0[e.slice(1,-1)]||e})}function C0(u){return u>=55296&&u<=57343||u>1114111?\"\\uFFFD\":(u in $u&&(u=$u[u]),String.fromCodePoint(u))}function w0(u,e){return u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.token=V[u.currentChar]&8192?q0(u,e):Yu(u,e,0),u.token}function q0(u,e){let i=u.currentChar,n=r(u),t=u.index;for(;n!==i;)u.index>=u.end&&f(u,14),n=r(u);return n!==i&&f(u,14),u.tokenValue=u.source.slice(t,u.index),r(u),e&512&&(u.tokenRaw=u.source.slice(u.tokenPos,u.index)),134283267}function V2(u,e){if(u.startPos=u.tokenPos=u.index,u.startColumn=u.colPos=u.column,u.startLine=u.linePos=u.line,u.index>=u.end)return u.token=1048576;switch(Wu[u.source.charCodeAt(u.index)]){case 8456258:{r(u),u.currentChar===47?(r(u),u.token=25):u.token=8456258;break}case 2162700:{r(u),u.token=2162700;break}default:{let n=0;for(;u.index2?o-2:0),c=2;c1&&t&32&&u.token&262144&&f(u,58,G[u.token&255]),l}function ne(u,e,i,n,t){let{token:o,tokenPos:l,linePos:c,colPos:s}=u,h=null,b=Ae(u,e,i,n,t,l,c,s);return u.token===1077936157?(E(u,e|32768),h=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),(t&32||(o&2097152)<1)&&(u.token===274549||u.token===8738868&&(o&2097152||(n&4)<1||e&1024))&&S(l,u.line,u.index-3,57,u.token===274549?\"of\":\"in\")):(n&16||(o&2097152)>0)&&(u.token&262144)!==262144&&f(u,56,n&16?\"const\":\"destructuring\"),v(u,e,l,c,s,{type:\"VariableDeclarator\",id:b,init:h})}function G0(u,e,i,n,t,o,l){E(u,e);let c=(e&4194304)>0&&U(u,e,209008);w(u,e|32768,67174411),i&&(i=o2(i,1));let s=null,h=null,b=0,g=null,a=u.token===86090||u.token===241739||u.token===86092,A,{token:C,tokenPos:D,linePos:B,colPos:O}=u;if(a?C===241739?(g=z(u,e,0),u.token&2240512?(u.token===8738868?e&1024&&f(u,64):g=v(u,e,D,B,O,{type:\"VariableDeclaration\",kind:\"let\",declarations:K2(u,e|134217728,i,8,32)}),u.assignable=1):e&1024?f(u,64):(a=!1,u.assignable=1,g=W(u,e,g,0,0,D,B,O),u.token===274549&&f(u,111))):(E(u,e),g=v(u,e,D,B,O,C===86090?{type:\"VariableDeclaration\",kind:\"var\",declarations:K2(u,e|134217728,i,4,32)}:{type:\"VariableDeclaration\",kind:\"const\",declarations:K2(u,e|134217728,i,16,32)}),u.assignable=1):C===1074790417?c&&f(u,79):(C&2097152)===2097152?(g=C===2162700?r2(u,e,void 0,1,0,0,2,32,D,B,O):k2(u,e,void 0,1,0,0,2,32,D,B,O),b=u.destructible,e&256&&b&64&&f(u,60),u.assignable=b&16?2:1,g=W(u,e|134217728,g,0,0,u.tokenPos,u.linePos,u.colPos)):g=b2(u,e|134217728,1,0,1,D,B,O),(u.token&262144)===262144){if(u.token===274549){u.assignable&2&&f(u,77,c?\"await\":\"of\"),v2(u,g),E(u,e|32768),A=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let R=p2(u,e,i,n);return v(u,e,t,o,l,{type:\"ForOfStatement\",left:g,right:A,body:R,await:c})}u.assignable&2&&f(u,77,\"in\"),v2(u,g),E(u,e|32768),c&&f(u,79),A=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos),w(u,e|32768,16);let e2=p2(u,e,i,n);return v(u,e,t,o,l,{type:\"ForInStatement\",body:e2,left:g,right:A})}c&&f(u,79),a||(b&8&&u.token!==1077936157&&f(u,77,\"loop\"),g=x(u,e|134217728,0,0,D,B,O,g)),u.token===18&&(g=S2(u,e,0,u.tokenPos,u.linePos,u.colPos,g)),w(u,e|32768,1074790417),u.token!==1074790417&&(s=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,1074790417),u.token!==16&&(h=f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),w(u,e|32768,16);let j=p2(u,e,i,n);return v(u,e,t,o,l,{type:\"ForStatement\",init:g,test:s,update:h,body:j})}function te(u,e,i){return _1(e,u.token)||f(u,114),(u.token&537079808)===537079808&&f(u,115),i&&B2(u,e,i,u.tokenValue,8,0),z(u,e,0)}function x0(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;E(u,e);let l=null,{tokenPos:c,linePos:s,colPos:h}=u,b=[];if(u.token===134283267)l=a2(u,e);else{if(u.token&143360){let g=te(u,e,i);if(b=[v(u,e,c,s,h,{type:\"ImportDefaultSpecifier\",local:g})],U(u,e,18))switch(u.token){case 8457014:b.push(oe(u,e,i));break;case 2162700:le(u,e,i,b);break;default:f(u,104)}}else switch(u.token){case 8457014:b=[oe(u,e,i)];break;case 2162700:le(u,e,i,b);break;case 67174411:return ce(u,e,n,t,o);case 67108877:return fe(u,e,n,t,o);default:f(u,28,G[u.token&255])}l=p0(u,e)}return d2(u,e|32768),v(u,e,n,t,o,{type:\"ImportDeclaration\",specifiers:b,source:l})}function oe(u,e,i){let{tokenPos:n,linePos:t,colPos:o}=u;return E(u,e),w(u,e,77934),(u.token&134217728)===134217728&&S(n,u.line,u.index,28,G[u.token&255]),v(u,e,n,t,o,{type:\"ImportNamespaceSpecifier\",local:te(u,e,i)})}function p0(u,e){return U(u,e,12404),u.token!==134283267&&f(u,102,\"Import\"),a2(u,e)}function le(u,e,i,n){for(E(u,e);u.token&143360;){let{token:t,tokenValue:o,tokenPos:l,linePos:c,colPos:s}=u,h=z(u,e,0),b;U(u,e,77934)?((u.token&134217728)===134217728||u.token===18?f(u,103):o1(u,e,16,u.token,0),o=u.tokenValue,b=z(u,e,0)):(o1(u,e,16,t,0),b=h),i&&B2(u,e,i,o,8,0),n.push(v(u,e,l,c,s,{type:\"ImportSpecifier\",local:b,imported:h})),u.token!==1074790415&&w(u,e,18)}return w(u,e,1074790415),n}function fe(u,e,i,n,t){let o=ae(u,e,v(u,e,i,n,t,{type:\"Identifier\",name:\"import\"}),i,n,t);return o=W(u,e,o,0,0,i,n,t),o=x(u,e,0,0,i,n,t,o),H2(u,e,o,i,n,t)}function ce(u,e,i,n,t){let o=de(u,e,0,i,n,t);return o=W(u,e,o,0,0,i,n,t),H2(u,e,o,i,n,t)}function ut(u,e,i){let n=u.tokenPos,t=u.linePos,o=u.colPos;E(u,e|32768);let l=[],c=null,s=null,h;if(U(u,e|32768,20563)){switch(u.token){case 86106:{c=T2(u,e,i,4,1,1,0,u.tokenPos,u.linePos,u.colPos);break}case 133:case 86096:c=Z1(u,e,i,1,u.tokenPos,u.linePos,u.colPos);break;case 209007:let{tokenPos:b,linePos:g,colPos:a}=u;c=z(u,e,0);let{flags:A}=u;(A&1)<1&&(u.token===86106?c=T2(u,e,i,4,1,1,1,b,g,a):u.token===67174411?(c=$1(u,e,c,1,1,0,A,b,g,a),c=W(u,e,c,0,0,b,g,a),c=x(u,e,0,0,b,g,a,c)):u.token&143360&&(i&&(i=f1(u,e,u.tokenValue)),c=z(u,e,0),c=u1(u,e,i,[c],1,b,g,a)));break;default:c=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos),d2(u,e|32768)}return i&&_2(u,\"default\"),v(u,e,n,t,o,{type:\"ExportDefaultDeclaration\",declaration:c})}switch(u.token){case 8457014:{E(u,e);let A=null;return U(u,e,77934)&&(i&&_2(u,u.tokenValue),A=z(u,e,0)),w(u,e,12404),u.token!==134283267&&f(u,102,\"Export\"),s=a2(u,e),d2(u,e|32768),v(u,e,n,t,o,{type:\"ExportAllDeclaration\",source:s,exported:A})}case 2162700:{E(u,e);let A=[],C=[];for(;u.token&143360;){let{tokenPos:D,tokenValue:B,linePos:O,colPos:j}=u,e2=z(u,e,0),R;u.token===77934?(E(u,e),(u.token&134217728)===134217728&&f(u,103),i&&(A.push(u.tokenValue),C.push(B)),R=z(u,e,0)):(i&&(A.push(u.tokenValue),C.push(u.tokenValue)),R=e2),l.push(v(u,e,D,O,j,{type:\"ExportSpecifier\",local:e2,exported:R})),u.token!==1074790415&&w(u,e,18)}if(w(u,e,1074790415),U(u,e,12404))u.token!==134283267&&f(u,102,\"Export\"),s=a2(u,e);else if(i){let D=0,B=A.length;for(;D0)&8738868,b,g;for(u.assignable=2;u.token&8454144&&(b=u.token,g=b&3840,(b&524288&&c&268435456||c&524288&&b&268435456)&&f(u,159),!(g+((b===8457273)<<8)-((h===b)<<12)<=l));)E(u,e|32768),s=v(u,e,n,t,o,{type:b&524288||b&268435456?\"LogicalExpression\":\"BinaryExpression\",left:s,right:F2(u,e,i,u.tokenPos,u.linePos,u.colPos,g,b,b2(u,e,0,i,1,u.tokenPos,u.linePos,u.colPos)),operator:G[b&255]});return u.token===1077936157&&f(u,24),s}function et(u,e,i,n,t,o,l){i||f(u,0);let c=u.token;E(u,e|32768);let s=b2(u,e,0,l,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),e&1024&&c===16863278&&(s.type===\"Identifier\"?f(u,117):B0(s)&&f(u,123)),u.assignable=2,v(u,e,n,t,o,{type:\"UnaryExpression\",operator:G[c&255],argument:s,prefix:!0})}function it(u,e,i,n,t,o,l,c,s,h){let{token:b}=u,g=z(u,e,o),{flags:a}=u;if((a&1)<1){if(u.token===86106)return he(u,e,1,i,c,s,h);if((u.token&143360)===143360)return n||f(u,0),ke(u,e,t,c,s,h)}return!l&&u.token===67174411?$1(u,e,g,t,1,0,a,c,s,h):u.token===10?(M1(u,e,b,1),l&&f(u,48),g1(u,e,u.tokenValue,g,l,t,0,c,s,h)):g}function nt(u,e,i,n,t,o,l){if(i&&(u.destructible|=256),e&2097152){E(u,e|32768),e&8388608&&f(u,30),n||f(u,24),u.token===22&&f(u,120);let c=null,s=!1;return(u.flags&1)<1&&(s=U(u,e|32768,8457014),(u.token&77824||s)&&(c=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos))),u.assignable=2,v(u,e,t,o,l,{type:\"YieldExpression\",argument:c,delegate:s})}return e&1024&&f(u,94,\"yield\"),Y1(u,e,t,o,l)}function tt(u,e,i,n,t,o,l){if(n&&(u.destructible|=128),e&4194304||e&2048&&e&8192){i&&f(u,0),e&8388608&&S(u.index,u.line,u.index,29),E(u,e|32768);let c=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.token===8457273&&f(u,31),u.assignable=2,v(u,e,t,o,l,{type:\"AwaitExpression\",argument:c})}return e&2048&&f(u,95),Y1(u,e,t,o,l)}function a1(u,e,i,n,t,o){let{tokenPos:l,linePos:c,colPos:s}=u;w(u,e|32768,2162700);let h=[],b=e;if(u.token!==1074790415){for(;u.token===134283267;){let{index:g,tokenPos:a,tokenValue:A,token:C}=u,D=a2(u,e);Zu(u,g,a,A)&&(e|=1024,u.flags&128&&S(u.index,u.line,u.tokenPos,63),u.flags&64&&S(u.index,u.line,u.tokenPos,8)),h.push(X1(u,e,D,C,a,u.linePos,u.colPos))}e&1024&&(t&&((t&537079808)===537079808&&f(u,115),(t&36864)===36864&&f(u,38)),u.flags&512&&f(u,115),u.flags&256&&f(u,114)),e&64&&i&&o!==void 0&&(b&1024)<1&&(e&8192)<1&&P(o)}for(u.flags=(u.flags|512|256|64)^832,u.destructible=(u.destructible|256)^256;u.token!==1074790415;)h.push(G2(u,e,i,4,{}));return w(u,n&24?e|32768:e,1074790415),u.flags&=-193,u.token===1077936157&&f(u,24),v(u,e,l,c,s,{type:\"BlockStatement\",body:h})}function ot(u,e,i,n,t){switch(E(u,e),u.token){case 67108991:f(u,161);case 67174411:{(e&524288)<1&&f(u,26),e&16384&&f(u,27),u.assignable=2;break}case 69271571:case 67108877:{(e&262144)<1&&f(u,27),e&16384&&f(u,27),u.assignable=1;break}default:f(u,28,\"super\")}return v(u,e,i,n,t,{type:\"Super\"})}function b2(u,e,i,n,t,o,l,c){let s=h2(u,e,2,0,i,0,n,t,o,l,c);return W(u,e,s,n,0,o,l,c)}function lt(u,e,i,n,t,o){u.assignable&2&&f(u,52);let{token:l}=u;return E(u,e),u.assignable=2,v(u,e,n,t,o,{type:\"UpdateExpression\",argument:i,operator:G[l&255],prefix:!1})}function W(u,e,i,n,t,o,l,c){if((u.token&33619968)===33619968&&(u.flags&1)<1)i=lt(u,e,i,o,l,c);else if((u.token&67108864)===67108864){switch(e=(e|134217728)^134217728,u.token){case 67108877:{E(u,(e|1073741824|8192)^8192),u.assignable=1;let s=se(u,e);i=v(u,e,o,l,c,{type:\"MemberExpression\",object:i,computed:!1,property:s});break}case 69271571:{let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048),E(u,e|32768);let{tokenPos:h,linePos:b,colPos:g}=u,a=f2(u,e,n,1,h,b,g);w(u,e,20),u.assignable=1,i=v(u,e,o,l,c,{type:\"MemberExpression\",object:i,computed:!0,property:a}),s&&(u.flags|=2048);break}case 67174411:{if((u.flags&1024)===1024)return u.flags=(u.flags|1024)^1024,i;let s=!1;(u.flags&2048)===2048&&(s=!0,u.flags=(u.flags|2048)^2048);let h=W1(u,e,n);u.assignable=2,i=v(u,e,o,l,c,{type:\"CallExpression\",callee:i,arguments:h}),s&&(u.flags|=2048);break}case 67108991:{E(u,(e|1073741824|8192)^8192),u.flags|=2048,u.assignable=2,i=ft(u,e,i,o,l,c);break}default:(u.flags&2048)===2048&&f(u,160),u.assignable=2,i=v(u,e,o,l,c,{type:\"TaggedTemplateExpression\",tag:i,quasi:u.token===67174408?K1(u,e|65536):H1(u,e,u.tokenPos,u.linePos,u.colPos)})}i=W(u,e,i,0,1,o,l,c)}return t===0&&(u.flags&2048)===2048&&(u.flags=(u.flags|2048)^2048,i=v(u,e,o,l,c,{type:\"ChainExpression\",expression:i})),i}function ft(u,e,i,n,t,o){let l=!1,c;if((u.token===69271571||u.token===67174411)&&(u.flags&2048)===2048&&(l=!0,u.flags=(u.flags|2048)^2048),u.token===69271571){E(u,e|32768);let{tokenPos:s,linePos:h,colPos:b}=u,g=f2(u,e,0,1,s,h,b);w(u,e,20),u.assignable=2,c=v(u,e,n,t,o,{type:\"MemberExpression\",object:i,computed:!0,optional:!0,property:g})}else if(u.token===67174411){let s=W1(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:\"CallExpression\",callee:i,arguments:s,optional:!0})}else{(u.token&143360)<1&&f(u,154);let s=z(u,e,0);u.assignable=2,c=v(u,e,n,t,o,{type:\"MemberExpression\",object:i,computed:!1,optional:!0,property:s})}return l&&(u.flags|=2048),c}function se(u,e){return(u.token&143360)<1&&u.token!==131&&f(u,154),e&1&&u.token===131?k1(u,e,u.tokenPos,u.linePos,u.colPos):z(u,e,0)}function ct(u,e,i,n,t,o,l){i&&f(u,53),n||f(u,0);let{token:c}=u;E(u,e|32768);let s=b2(u,e,0,0,1,u.tokenPos,u.linePos,u.colPos);return u.assignable&2&&f(u,52),u.assignable=2,v(u,e,t,o,l,{type:\"UpdateExpression\",argument:s,operator:G[c&255],prefix:!0})}function h2(u,e,i,n,t,o,l,c,s,h,b){if((u.token&143360)===143360){switch(u.token){case 209008:return tt(u,e,n,l,s,h,b);case 241773:return nt(u,e,l,t,s,h,b);case 209007:return it(u,e,l,c,t,o,n,s,h,b)}let{token:g,tokenValue:a}=u,A=z(u,e|65536,o);return u.token===10?(c||f(u,0),M1(u,e,g,1),g1(u,e,a,A,n,t,0,s,h,b)):(e&16384&&g===537079928&&f(u,126),g===241739&&(e&1024&&f(u,109),i&24&&f(u,97)),u.assignable=e&1024&&(g&537079808)===537079808?2:1,A)}if((u.token&134217728)===134217728)return a2(u,e);switch(u.token){case 33619995:case 33619996:return ct(u,e,n,c,s,h,b);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return et(u,e,c,s,h,b,l);case 86106:return he(u,e,0,l,s,h,b);case 2162700:return mt(u,e,t?0:1,l,s,h,b);case 69271571:return ht(u,e,t?0:1,l,s,h,b);case 67174411:return kt(u,e,t,1,0,s,h,b);case 86021:case 86022:case 86023:return dt(u,e,s,h,b);case 86113:return gt(u,e);case 65540:return At(u,e,s,h,b);case 133:case 86096:return yt(u,e,l,s,h,b);case 86111:return ot(u,e,s,h,b);case 67174409:return H1(u,e,s,h,b);case 67174408:return K1(u,e);case 86109:return rt(u,e,l,s,h,b);case 134283389:return ge(u,e,s,h,b);case 131:return k1(u,e,s,h,b);case 86108:return st(u,e,n,l,s,h,b);case 8456258:if(e&16)return G1(u,e,1,s,h,b);default:if(_1(e,u.token))return Y1(u,e,s,h,b);f(u,28,G[u.token&255])}}function st(u,e,i,n,t,o,l){let c=z(u,e,0);return u.token===67108877?ae(u,e,c,t,o,l):(i&&f(u,137),c=de(u,e,n,t,o,l),u.assignable=2,W(u,e,c,n,0,t,o,l))}function ae(u,e,i,n,t,o){return(e&2048)===0&&f(u,163),E(u,e),u.token!==143495&&u.tokenValue!==\"meta\"&&f(u,28,G[u.token&255]),u.assignable=2,v(u,e,n,t,o,{type:\"MetaProperty\",meta:i,property:z(u,e,0)})}function de(u,e,i,n,t,o){w(u,e|32768,67174411),u.token===14&&f(u,138);let l=Q(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,16),v(u,e,n,t,o,{type:\"ImportExpression\",source:l})}function ge(u,e,i,n,t){let{tokenRaw:o,tokenValue:l}=u;return E(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:\"Literal\",value:l,bigint:o.slice(0,-1),raw:o}:{type:\"Literal\",value:l,bigint:o.slice(0,-1)})}function H1(u,e,i,n,t){u.assignable=2;let{tokenValue:o,tokenRaw:l,tokenPos:c,linePos:s,colPos:h}=u;w(u,e,67174409);let b=[d1(u,e,o,l,c,s,h,!0)];return v(u,e,i,n,t,{type:\"TemplateLiteral\",expressions:[],quasis:b})}function K1(u,e){e=(e|134217728)^134217728;let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;w(u,e|32768,67174408);let c=[d1(u,e,i,n,t,o,l,!1)],s=[f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)];for(u.token!==1074790415&&f(u,80);(u.token=v0(u,e))!==67174409;){let{tokenValue:h,tokenRaw:b,tokenPos:g,linePos:a,colPos:A}=u;w(u,e|32768,67174408),c.push(d1(u,e,h,b,g,a,A,!1)),s.push(f2(u,e,0,1,u.tokenPos,u.linePos,u.colPos)),u.token!==1074790415&&f(u,80)}{let{tokenValue:h,tokenRaw:b,tokenPos:g,linePos:a,colPos:A}=u;w(u,e,67174409),c.push(d1(u,e,h,b,g,a,A,!0))}return v(u,e,t,o,l,{type:\"TemplateLiteral\",expressions:s,quasis:c})}function d1(u,e,i,n,t,o,l,c){let s=v(u,e,t,o,l,{type:\"TemplateElement\",value:{cooked:i,raw:n},tail:c}),h=c?1:2;return e&2&&(s.start+=1,s.range[0]+=1,s.end-=h,s.range[1]-=h),e&4&&(s.loc.start.column+=1,s.loc.end.column-=h),s}function at(u,e,i,n,t){e=(e|134217728)^134217728,w(u,e|32768,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return u.assignable=1,v(u,e,i,n,t,{type:\"SpreadElement\",argument:o})}function W1(u,e,i){E(u,e|32768);let n=[];if(u.token===16)return E(u,e),n;for(;u.token!==16&&(u.token===14?n.push(at(u,e,u.tokenPos,u.linePos,u.colPos)):n.push(Q(u,e,1,0,i,u.tokenPos,u.linePos,u.colPos)),!(u.token!==18||(E(u,e|32768),u.token===16))););return w(u,e,16),n}function z(u,e,i){let{tokenValue:n,tokenPos:t,linePos:o,colPos:l}=u;return E(u,e),v(u,e,t,o,l,e&268435456?{type:\"Identifier\",name:n,pattern:i===1}:{type:\"Identifier\",name:n})}function a2(u,e){let{tokenValue:i,tokenRaw:n,tokenPos:t,linePos:o,colPos:l}=u;return u.token===134283389?ge(u,e,t,o,l):(E(u,e),u.assignable=2,v(u,e,t,o,l,e&512?{type:\"Literal\",value:i,raw:n}:{type:\"Literal\",value:i}))}function dt(u,e,i,n,t){let o=G[u.token&255],l=u.token===86023?null:o===\"true\";return E(u,e),u.assignable=2,v(u,e,i,n,t,e&512?{type:\"Literal\",value:l,raw:o}:{type:\"Literal\",value:l})}function gt(u,e){let{tokenPos:i,linePos:n,colPos:t}=u;return E(u,e),u.assignable=2,v(u,e,i,n,t,{type:\"ThisExpression\"})}function T2(u,e,i,n,t,o,l,c,s,h){E(u,e|32768);let b=t?V1(u,e,8457014):0,g=null,a,A=i?j2():void 0;if(u.token===67174411)(o&1)<1&&f(u,37,\"Function\");else{let B=n&4&&((e&8192)<1||(e&2048)<1)?4:64;Qu(u,e|(e&3072)<<11,u.token),i&&(B&4?pu(u,e,i,u.tokenValue,B):B2(u,e,i,u.tokenValue,B,n),A=o2(A,256),o&&o&2&&_2(u,u.tokenValue)),a=u.token,u.token&143360?g=z(u,e,0):f(u,28,G[u.token&255])}e=(e|32243712)^32243712|67108864|l*2+b<<21|(b?0:1073741824),i&&(A=o2(A,512));let C=be(u,e|8388608,A,0,1),D=a1(u,(e|8192|4096|131072)^143360,i?o2(A,128):A,8,a,i?A.scopeError:void 0);return v(u,e,c,s,h,{type:\"FunctionDeclaration\",id:g,params:C,body:D,async:l===1,generator:b===1})}function he(u,e,i,n,t,o,l){E(u,e|32768);let c=V1(u,e,8457014),s=i*2+c<<21,h=null,b,g=e&64?j2():void 0;(u.token&176128)>0&&(Qu(u,(e|32243712)^32243712|s,u.token),g&&(g=o2(g,256)),b=u.token,h=z(u,e,0)),e=(e|32243712)^32243712|67108864|s|(c?0:1073741824),g&&(g=o2(g,512));let a=be(u,e|8388608,g,n,1),A=a1(u,e&-134377473,g&&o2(g,128),0,b,void 0);return u.assignable=2,v(u,e,t,o,l,{type:\"FunctionExpression\",id:h,params:a,body:A,async:i===1,generator:c===1})}function ht(u,e,i,n,t,o,l){let c=k2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function k2(u,e,i,n,t,o,l,c,s,h,b){E(u,e|32768);let g=[],a=0;for(e=(e|134217728)^134217728;u.token!==20;)if(U(u,e|32768,18))g.push(null);else{let C,{token:D,tokenPos:B,linePos:O,colPos:j,tokenValue:e2}=u;if(D&143360)if(C=h2(u,e,l,0,1,0,t,1,B,O,j),u.token===1077936157){u.assignable&2&&f(u,24),E(u,e|32768),i&&q2(u,e,i,e2,l,c);let R=Q(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);C=v(u,e,B,O,j,o?{type:\"AssignmentPattern\",left:C,right:R}:{type:\"AssignmentExpression\",operator:\"=\",left:C,right:R}),a|=u.destructible&256?256:0|u.destructible&128?128:0}else u.token===18||u.token===20?(u.assignable&2?a|=16:i&&q2(u,e,i,e2,l,c),a|=u.destructible&256?256:0|u.destructible&128?128:0):(a|=l&1?32:(l&2)<1?16:0,C=W(u,e,C,t,0,B,O,j),u.token!==18&&u.token!==20?(u.token!==1077936157&&(a|=16),C=x(u,e,t,o,B,O,j,C)):u.token!==1077936157&&(a|=u.assignable&2?16:32));else D&2097152?(C=u.token===2162700?r2(u,e,i,0,t,o,l,c,B,O,j):k2(u,e,i,0,t,o,l,c,B,O,j),a|=u.destructible,u.assignable=u.destructible&16?2:1,u.token===18||u.token===20?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(C=W(u,e,C,t,0,B,O,j),a=u.assignable&2?16:0,u.token!==18&&u.token!==20?C=x(u,e,t,o,B,O,j,C):u.token!==1077936157&&(a|=u.assignable&2?16:32))):D===14?(C=W2(u,e,i,20,l,c,0,t,o,B,O,j),a|=u.destructible,u.token!==18&&u.token!==20&&f(u,28,G[u.token&255])):(C=b2(u,e,1,0,1,B,O,j),u.token!==18&&u.token!==20?(C=x(u,e,t,o,B,O,j,C),(l&3)<1&&D===67174411&&(a|=16)):u.assignable&2?a|=16:D===67174411&&(a|=u.assignable&1&&l&3?32:16));if(g.push(C),U(u,e|32768,18)){if(u.token===20)break}else break}w(u,e,20);let A=v(u,e,s,h,b,{type:o?\"ArrayPattern\":\"ArrayExpression\",elements:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,b,A):(u.destructible=a,A)}function me(u,e,i,n,t,o,l,c,s){u.token!==1077936157&&f(u,24),E(u,e|32768),i&16&&f(u,24),t||v2(u,s);let{tokenPos:h,linePos:b,colPos:g}=u,a=Q(u,e,1,1,n,h,b,g);return u.destructible=(i|64|8)^72|(u.destructible&128?128:0)|(u.destructible&256?256:0),v(u,e,o,l,c,t?{type:\"AssignmentPattern\",left:s,right:a}:{type:\"AssignmentExpression\",left:s,operator:\"=\",right:a})}function W2(u,e,i,n,t,o,l,c,s,h,b,g){E(u,e|32768);let a=null,A=0,{token:C,tokenValue:D,tokenPos:B,linePos:O,colPos:j}=u;if(C&143360)u.assignable=1,a=h2(u,e,t,0,1,0,c,1,B,O,j),C=u.token,a=W(u,e,a,c,0,B,O,j),u.token!==18&&u.token!==n&&(u.assignable&2&&u.token===1077936157&&f(u,68),A|=16,a=x(u,e,c,s,B,O,j,a)),u.assignable&2?A|=16:C===n||C===18?i&&q2(u,e,i,D,t,o):A|=32,A|=u.destructible&128?128:0;else if(C===n)f(u,39);else if(C&2097152)a=u.token===2162700?r2(u,e,i,1,c,s,t,o,B,O,j):k2(u,e,i,1,c,s,t,o,B,O,j),C=u.token,C!==1077936157&&C!==n&&C!==18?(u.destructible&8&&f(u,68),a=W(u,e,a,c,0,B,O,j),A|=u.assignable&2?16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(A|=16),a=x(u,e,c,s,B,O,j,a)):((u.token&8454144)===8454144&&(a=F2(u,e,1,B,O,j,4,C,a)),U(u,e|32768,22)&&(a=M2(u,e,a,B,O,j)),A|=u.assignable&2?16:32)):A|=n===1074790415&&C!==1077936157?16:u.destructible;else{A|=32,a=b2(u,e,1,c,1,u.tokenPos,u.linePos,u.colPos);let{token:e2,tokenPos:R,linePos:$,colPos:y}=u;return e2===1077936157&&e2!==n&&e2!==18?(u.assignable&2&&f(u,24),a=x(u,e,c,s,R,$,y,a),A|=16):(e2===18?A|=16:e2!==n&&(a=x(u,e,c,s,R,$,y,a)),A|=u.assignable&1?32:16),u.destructible=A,u.token!==n&&u.token!==18&&f(u,155),v(u,e,h,b,g,{type:s?\"RestElement\":\"SpreadElement\",argument:a})}if(u.token!==n)if(t&1&&(A|=l?16:32),U(u,e|32768,1077936157)){A&16&&f(u,24),v2(u,a);let e2=Q(u,e,1,1,c,u.tokenPos,u.linePos,u.colPos);a=v(u,e,B,O,j,s?{type:\"AssignmentPattern\",left:a,right:e2}:{type:\"AssignmentExpression\",left:a,operator:\"=\",right:e2}),A=16}else A|=16;return u.destructible=A,v(u,e,h,b,g,{type:s?\"RestElement\":\"SpreadElement\",argument:a})}function A2(u,e,i,n,t,o,l){let c=(i&64)<1?31981568:14680064;e=(e|c)^c|(i&88)<<18|100925440;let s=e&64?o2(j2(),512):void 0,h=bt(u,e|8388608,s,i,1,n);s&&(s=o2(s,128));let b=a1(u,e&-134230017,s,0,void 0,void 0);return v(u,e,t,o,l,{type:\"FunctionExpression\",params:h,body:b,async:(i&16)>0,generator:(i&8)>0,id:null})}function mt(u,e,i,n,t,o,l){let c=r2(u,e,void 0,i,n,0,2,0,t,o,l);return e&256&&u.destructible&64&&f(u,60),u.destructible&8&&f(u,59),c}function r2(u,e,i,n,t,o,l,c,s,h,b){E(u,e);let g=[],a=0,A=0;for(e=(e|134217728)^134217728;u.token!==1074790415;){let{token:D,tokenValue:B,linePos:O,colPos:j,tokenPos:e2}=u;if(D===14)g.push(W2(u,e,i,1074790415,l,c,0,t,o,e2,O,j));else{let R=0,$=null,y,y2=u.token;if(u.token&143360||u.token===121)if($=z(u,e,0),u.token===18||u.token===1074790415||u.token===1077936157)if(R|=4,e&1024&&(D&537079808)===537079808?a|=16:o1(u,e,l,D,0),i&&q2(u,e,i,B,l,c),U(u,e|32768,1077936157)){a|=8;let N=Q(u,e,1,1,t,u.tokenPos,u.linePos,u.colPos);a|=u.destructible&256?256:0|u.destructible&128?128:0,y=v(u,e,e2,O,j,{type:\"AssignmentPattern\",left:e&-2147483648?Object.assign({},$):$,right:N})}else a|=(D===209008?128:0)|(D===121?16:0),y=e&-2147483648?Object.assign({},$):$;else if(U(u,e|32768,21)){let{tokenPos:N,linePos:M,colPos:_}=u;if(B===\"__proto__\"&&A++,u.token&143360){let U2=u.token,$2=u.tokenValue;a|=y2===121?16:0,y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;y=W(u,e,y,t,0,N,M,_),u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?(a|=u.destructible&128?128:0,u.assignable&2?a|=16:i&&(U2&143360)===143360&&q2(u,e,i,$2,l,c)):a|=u.assignable&1?32:16:(u.token&4194304)===4194304?(u.assignable&2?a|=16:E2!==1077936157?a|=32:i&&q2(u,e,i,$2,l,c),y=x(u,e,t,o,N,M,_,y)):(a|=16,(u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,E2,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):u.destructible&8?f(u,68):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?y=s1(u,e,t,o,N,M,_,y):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,t,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,u.token!==18&&D!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===69271571?(a|=16,D===209007&&(R|=16),R|=(D===12402?256:D===12403?512:1)|2,$=Y2(u,e,t),a|=u.assignable,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token&143360?(a|=16,D===121&&f(u,92),D===209007&&(u.flags&1&&f(u,128),R|=16),$=z(u,e,0),R|=D===12402?256:D===12403?512:1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===67174411?(a|=16,R|=1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):u.token===8457014?(a|=16,D===12402||D===12403?f(u,40):D===143483&&f(u,92),E(u,e),R|=9|(D===209007?16:0),u.token&143360?$=z(u,e,0):(u.token&134217728)===134217728?$=a2(u,e):u.token===69271571?(R|=2,$=Y2(u,e,t),a|=u.assignable):f(u,28,G[u.token&255]),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):(u.token&134217728)===134217728?(D===209007&&(R|=16),R|=D===12402?256:D===12403?512:1,a|=16,$=a2(u,e),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,129);else if((u.token&134217728)===134217728)if($=a2(u,e),u.token===21){w(u,e|32768,21);let{tokenPos:N,linePos:M,colPos:_}=u;if(B===\"__proto__\"&&A++,u.token&143360){y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:U2,tokenValue:$2}=u;y=W(u,e,y,t,0,N,M,_),u.token===18||u.token===1074790415?U2===1077936157||U2===1074790415||U2===18?u.assignable&2?a|=16:i&&q2(u,e,i,$2,l,c):a|=u.assignable&1?32:16:u.token===1077936157?(u.assignable&2&&(a|=16),y=x(u,e,t,o,N,M,_,y)):(a|=16,y=x(u,e,t,o,N,M,_,y))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(u.destructible&8)!==8&&(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?16:0,(u.token&4194304)===4194304?y=s1(u,e,t,o,N,M,_,y):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===67174411?(R|=1,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos),a=u.assignable|16):f(u,130);else if(u.token===69271571)if($=Y2(u,e,t),a|=u.destructible&256?256:0,R|=2,u.token===21){E(u,e|32768);let{tokenPos:N,linePos:M,colPos:_,tokenValue:U2,token:$2}=u;if(u.token&143360){y=h2(u,e,l,0,1,0,t,1,N,M,_);let{token:E2}=u;y=W(u,e,y,t,0,N,M,_),(u.token&4194304)===4194304?(a|=u.assignable&2?16:E2===1077936157?0:32,y=s1(u,e,t,o,N,M,_,y)):u.token===18||u.token===1074790415?E2===1077936157||E2===1074790415||E2===18?u.assignable&2?a|=16:i&&($2&143360)===143360&&q2(u,e,i,U2,l,c):a|=u.assignable&1?32:16:(a|=16,y=x(u,e,t,o,N,M,_,y))}else(u.token&2097152)===2097152?(y=u.token===69271571?k2(u,e,i,0,t,o,l,c,N,M,_):r2(u,e,i,0,t,o,l,c,N,M,_),a=u.destructible,u.assignable=a&16?2:1,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):a&8?f(u,59):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&2?a|16:0,(u.token&4194304)===4194304?(u.token!==1077936157&&(a|=16),y=s1(u,e,t,o,N,M,_,y)):((u.token&8454144)===8454144&&(y=F2(u,e,1,N,M,_,4,D,y)),U(u,e|32768,22)&&(y=M2(u,e,y,N,M,_)),a|=u.assignable&2?16:32))):(y=b2(u,e,1,0,1,N,M,_),a|=u.assignable&1?32:16,u.token===18||u.token===1074790415?u.assignable&2&&(a|=16):(y=W(u,e,y,t,0,N,M,_),a=u.assignable&1?0:16,u.token!==18&&u.token!==1074790415&&(u.token!==1077936157&&(a|=16),y=x(u,e,t,o,N,M,_,y))))}else u.token===67174411?(R|=1,y=A2(u,e,R,t,u.tokenPos,O,j),a=16):f(u,41);else if(D===8457014)if(w(u,e|32768,8457014),R|=8,u.token&143360){let{token:N,line:M,index:_}=u;$=z(u,e,0),R|=1,u.token===67174411?(a|=16,y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):S(_,M,_,N===209007?43:N===12402||u.token===12403?42:44,G[N&255])}else(u.token&134217728)===134217728?(a|=16,$=a2(u,e),R|=1,y=A2(u,e,R,t,e2,O,j)):u.token===69271571?(a|=16,R|=3,$=Y2(u,e,t),y=A2(u,e,R,t,u.tokenPos,u.linePos,u.colPos)):f(u,122);else f(u,28,G[D&255]);a|=u.destructible&128?128:0,u.destructible=a,g.push(v(u,e,e2,O,j,{type:\"Property\",key:$,value:y,kind:R&768?R&512?\"set\":\"get\":\"init\",computed:(R&2)>0,method:(R&1)>0,shorthand:(R&4)>0}))}if(a|=u.destructible,u.token!==18)break;E(u,e)}w(u,e,1074790415),A>1&&(a|=64);let C=v(u,e,s,h,b,{type:o?\"ObjectPattern\":\"ObjectExpression\",properties:g});return!n&&u.token&4194304?me(u,e,a,t,o,s,h,b,C):(u.destructible=a,C)}function bt(u,e,i,n,t,o){w(u,e,67174411);let l=[];if(u.flags=(u.flags|128)^128,u.token===16)return n&512&&f(u,35,\"Setter\",\"one\",\"\"),E(u,e),l;n&256&&f(u,35,\"Getter\",\"no\",\"s\"),n&512&&u.token===14&&f(u,36),e=(e|134217728)^134217728;let c=0,s=0;for(;u.token!==18;){let h=null,{tokenPos:b,linePos:g,colPos:a}=u;if(u.token&143360?((e&1024)<1&&((u.token&36864)===36864&&(u.flags|=256),(u.token&537079808)===537079808&&(u.flags|=512)),h=Q1(u,e,i,n|1,0,b,g,a)):(u.token===2162700?h=r2(u,e,i,1,o,1,t,0,b,g,a):u.token===69271571?h=k2(u,e,i,1,o,1,t,0,b,g,a):u.token===14&&(h=W2(u,e,i,16,t,0,0,o,1,b,g,a)),s=1,u.destructible&48&&f(u,47)),u.token===1077936157){E(u,e|32768),s=1;let A=Q(u,e,1,1,0,u.tokenPos,u.linePos,u.colPos);h=v(u,e,b,g,a,{type:\"AssignmentPattern\",left:h,right:A})}if(c++,l.push(h),!U(u,e,18)||u.token===16)break}return n&512&&c!==1&&f(u,35,\"Setter\",\"one\",\"\"),i&&i.scopeError!==void 0&&P(i.scopeError),s&&(u.flags|=128),w(u,e,16),l}function Y2(u,e,i){E(u,e|32768);let n=Q(u,(e|134217728)^134217728,1,0,i,u.tokenPos,u.linePos,u.colPos);return w(u,e,20),n}function kt(u,e,i,n,t,o,l,c){u.flags=(u.flags|128)^128;let{tokenPos:s,linePos:h,colPos:b}=u;E(u,e|32768|1073741824);let g=e&64?o2(j2(),1024):void 0;if(e=(e|134217728)^134217728,U(u,e,16))return h1(u,e,g,[],i,0,o,l,c);let a=0;u.destructible&=-385;let A,C=[],D=0,B=0,{tokenPos:O,linePos:j,colPos:e2}=u;for(u.assignable=1;u.token!==16;){let{token:R,tokenPos:$,linePos:y,colPos:y2}=u;if(R&143360)g&&B2(u,e,g,u.tokenValue,1,0),A=h2(u,e,n,0,1,0,1,1,$,y,y2),u.token===16||u.token===18?u.assignable&2?(a|=16,B=1):((R&537079808)===537079808||(R&36864)===36864)&&(B=1):(u.token===1077936157?B=1:a|=16,A=W(u,e,A,1,0,$,y,y2),u.token!==16&&u.token!==18&&(A=x(u,e,1,0,$,y,y2,A)));else if((R&2097152)===2097152)A=R===2162700?r2(u,e|1073741824,g,0,1,0,n,t,$,y,y2):k2(u,e|1073741824,g,0,1,0,n,t,$,y,y2),a|=u.destructible,B=1,u.assignable=2,u.token!==16&&u.token!==18&&(a&8&&f(u,118),A=W(u,e,A,0,0,$,y,y2),a|=16,u.token!==16&&u.token!==18&&(A=x(u,e,0,0,$,y,y2,A)));else if(R===14){A=W2(u,e,g,16,n,t,0,1,0,$,y,y2),u.destructible&16&&f(u,71),B=1,D&&(u.token===16||u.token===18)&&C.push(A),a|=8;break}else{if(a|=16,A=Q(u,e,1,0,1,$,y,y2),D&&(u.token===16||u.token===18)&&C.push(A),u.token===18&&(D||(D=1,C=[A])),D){for(;U(u,e|32768,18);)C.push(Q(u,e,1,0,1,u.tokenPos,u.linePos,u.colPos));u.assignable=2,A=v(u,e,O,j,e2,{type:\"SequenceExpression\",expressions:C})}return w(u,e,16),u.destructible=a,A}if(D&&(u.token===16||u.token===18)&&C.push(A),!U(u,e|32768,18))break;if(D||(D=1,C=[A]),u.token===16){a|=8;break}}return D&&(u.assignable=2,A=v(u,e,O,j,e2,{type:\"SequenceExpression\",expressions:C})),w(u,e,16),a&16&&a&8&&f(u,145),a|=u.destructible&256?256:0|u.destructible&128?128:0,u.token===10?(a&48&&f(u,46),e&4196352&&a&128&&f(u,29),e&2098176&&a&256&&f(u,30),B&&(u.flags|=128),h1(u,e,g,D?C:[A],i,0,o,l,c)):(a&8&&f(u,139),u.destructible=(u.destructible|256)^256|a,e&128?v(u,e,s,h,b,{type:\"ParenthesizedExpression\",expression:A}):A)}function Y1(u,e,i,n,t){let{tokenValue:o}=u,l=z(u,e,0);if(u.assignable=1,u.token===10){let c;return e&64&&(c=f1(u,e,o)),u.flags=(u.flags|128)^128,u1(u,e,c,[l],0,i,n,t)}return l}function g1(u,e,i,n,t,o,l,c,s,h){o||f(u,54),t&&f(u,48),u.flags&=-129;let b=e&64?f1(u,e,i):void 0;return u1(u,e,b,[n],l,c,s,h)}function h1(u,e,i,n,t,o,l,c,s){t||f(u,54);for(let h=0;h0&&u.tokenValue===\"constructor\"&&f(u,106),u.token===1074790415&&f(u,105),U(u,e,1074790417)){a>0&&f(u,116);continue}b.push(ve(u,e,n,i,t,g,0,l,u.tokenPos,u.linePos,u.colPos))}return w(u,o&8?e|32768:e,1074790415),v(u,e,c,s,h,{type:\"ClassBody\",body:b})}function ve(u,e,i,n,t,o,l,c,s,h,b){let g=l?32:0,a=null,{token:A,tokenPos:C,linePos:D,colPos:B}=u;if(A&176128)switch(a=z(u,e,0),A){case 36972:if(!l&&u.token!==67174411)return ve(u,e,i,n,t,o,1,c,s,h,b);break;case 209007:if(u.token!==67174411&&(u.flags&1)<1){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=16|(V1(u,e,8457014)?8:0)}break;case 12402:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=256}break;case 12403:if(u.token!==67174411){if(e&1&&(u.token&1073741824)===1073741824)return r1(u,e,a,g,o,C,D,B);g|=512}break}else A===69271571?(g|=2,a=Y2(u,n,c)):(A&134217728)===134217728?a=a2(u,e):A===8457014?(g|=8,E(u,e)):e&1&&u.token===131?(g|=4096,a=k1(u,e|16384,C,D,B)):e&1&&(u.token&1073741824)===1073741824?g|=128:A===122?(a=z(u,e,0),u.token!==67174411&&f(u,28,G[u.token&255])):f(u,28,G[u.token&255]);if(g&792&&(u.token&143360?a=z(u,e,0):(u.token&134217728)===134217728?a=a2(u,e):u.token===69271571?(g|=2,a=Y2(u,e,0)):u.token===122?a=z(u,e,0):e&1&&u.token===131?(g|=4096,a=k1(u,e,C,D,B)):f(u,131)),(g&2)<1&&(u.tokenValue===\"constructor\"?((u.token&1073741824)===1073741824?f(u,125):(g&32)<1&&u.token===67174411&&(g&920?f(u,50,\"accessor\"):(e&524288)<1&&(u.flags&32?f(u,51):u.flags|=32)),g|=64):(g&4096)<1&&g&824&&u.tokenValue===\"prototype\"&&f(u,49)),e&1&&u.token!==67174411)return r1(u,e,a,g,o,C,D,B);let O=A2(u,e,g,c,u.tokenPos,u.linePos,u.colPos);return v(u,e,s,h,b,e&1?{type:\"MethodDefinition\",kind:(g&32)<1&&g&64?\"constructor\":g&256?\"get\":g&512?\"set\":\"method\",static:(g&32)>0,computed:(g&2)>0,key:a,decorators:o,value:O}:{type:\"MethodDefinition\",kind:(g&32)<1&&g&64?\"constructor\":g&256?\"get\":g&512?\"set\":\"method\",static:(g&32)>0,computed:(g&2)>0,key:a,value:O})}function k1(u,e,i,n,t){E(u,e);let{tokenValue:o}=u;return o===\"constructor\"&&f(u,124),E(u,e),v(u,e,i,n,t,{type:\"PrivateIdentifier\",name:o})}function r1(u,e,i,n,t,o,l,c){let s=null;if(n&8&&f(u,0),u.token===1077936157){E(u,e|32768);let{tokenPos:h,linePos:b,colPos:g}=u;u.token===537079928&&f(u,115),s=h2(u,e|16384,2,0,1,0,0,1,h,b,g),(u.token&1073741824)!==1073741824&&(s=W(u,e|16384,s,0,0,h,b,g),s=x(u,e|16384,0,0,h,b,g,s),u.token===18&&(s=S2(u,e,0,o,l,c,s)))}return v(u,e,o,l,c,{type:\"PropertyDefinition\",key:i,value:s,static:(n&32)>0,computed:(n&2)>0,decorators:t})}function Ae(u,e,i,n,t,o,l,c){if(u.token&143360)return Q1(u,e,i,n,t,o,l,c);(u.token&2097152)!==2097152&&f(u,28,G[u.token&255]);let s=u.token===69271571?k2(u,e,i,1,0,1,n,t,o,l,c):r2(u,e,i,1,0,1,n,t,o,l,c);return u.destructible&16&&f(u,47),u.destructible&32&&f(u,47),s}function Q1(u,e,i,n,t,o,l,c){let{tokenValue:s,token:h}=u;return e&1024&&((h&537079808)===537079808?f(u,115):(h&36864)===36864&&f(u,114)),(h&20480)===20480&&f(u,99),e&2099200&&h===241773&&f(u,30),h===241739&&n&24&&f(u,97),e&4196352&&h===209008&&f(u,95),E(u,e),i&&q2(u,e,i,s,n,t),v(u,e,o,l,c,{type:\"Identifier\",name:s})}function G1(u,e,i,n,t,o){if(E(u,e),u.token===8456259)return v(u,e,n,t,o,{type:\"JSXFragment\",openingFragment:Et(u,e,n,t,o),children:ye(u,e),closingFragment:Ct(u,e,i,u.tokenPos,u.linePos,u.colPos)});let l=null,c=[],s=Bt(u,e,i,n,t,o);if(!s.selfClosing){c=ye(u,e),l=Dt(u,e,i,u.tokenPos,u.linePos,u.colPos);let h=l1(l.name);l1(s.name)!==h&&f(u,149,h)}return v(u,e,n,t,o,{type:\"JSXElement\",children:c,openingElement:s,closingElement:l})}function Et(u,e,i,n,t){return V2(u,e),v(u,e,i,n,t,{type:\"JSXOpeningFragment\"})}function Dt(u,e,i,n,t,o){w(u,e,25);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos);return i?w(u,e,8456259):u.token=V2(u,e),v(u,e,n,t,o,{type:\"JSXClosingElement\",name:l})}function Ct(u,e,i,n,t,o){return w(u,e,25),w(u,e,8456259),v(u,e,n,t,o,{type:\"JSXClosingFragment\"})}function ye(u,e){let i=[];for(;u.token!==25;)u.index=u.tokenPos=u.startPos,u.column=u.colPos=u.startColumn,u.line=u.linePos=u.startLine,V2(u,e),i.push(wt(u,e,u.tokenPos,u.linePos,u.colPos));return i}function wt(u,e,i,n,t){if(u.token===138)return qt(u,e,i,n,t);if(u.token===2162700)return De(u,e,0,0,i,n,t);if(u.token===8456258)return G1(u,e,0,i,n,t);f(u,0)}function qt(u,e,i,n,t){V2(u,e);let o={type:\"JSXText\",value:u.tokenValue};return e&512&&(o.raw=u.tokenRaw),v(u,e,i,n,t,o)}function Bt(u,e,i,n,t,o){(u.token&143360)!==143360&&(u.token&4096)!==4096&&f(u,0);let l=Pe(u,e,u.tokenPos,u.linePos,u.colPos),c=Ft(u,e),s=u.token===8457016;return u.token===8456259?V2(u,e):(w(u,e,8457016),i?w(u,e,8456259):V2(u,e)),v(u,e,n,t,o,{type:\"JSXOpeningElement\",name:l,attributes:c,selfClosing:s})}function Pe(u,e,i,n,t){N1(u);let o=v1(u,e,i,n,t);if(u.token===21)return Ee(u,e,o,i,n,t);for(;U(u,e,67108877);)N1(u),o=St(u,e,o,i,n,t);return o}function St(u,e,i,n,t,o){let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:\"JSXMemberExpression\",object:i,property:l})}function Ft(u,e){let i=[];for(;u.token!==8457016&&u.token!==8456259&&u.token!==1048576;)i.push(Lt(u,e,u.tokenPos,u.linePos,u.colPos));return i}function Tt(u,e,i,n,t){E(u,e),w(u,e,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:\"JSXSpreadAttribute\",argument:o})}function Lt(u,e,i,n,t){if(u.token===2162700)return Tt(u,e,i,n,t);N1(u);let o=null,l=v1(u,e,i,n,t);if(u.token===21&&(l=Ee(u,e,l,i,n,t)),u.token===1077936157){let c=w0(u,e),{tokenPos:s,linePos:h,colPos:b}=u;switch(c){case 134283267:o=a2(u,e);break;case 8456258:o=G1(u,e,1,s,h,b);break;case 2162700:o=De(u,e,1,1,s,h,b);break;default:f(u,148)}}return v(u,e,i,n,t,{type:\"JSXAttribute\",value:o,name:l})}function Ee(u,e,i,n,t,o){w(u,e,21);let l=v1(u,e,u.tokenPos,u.linePos,u.colPos);return v(u,e,n,t,o,{type:\"JSXNamespacedName\",namespace:i,name:l})}function De(u,e,i,n,t,o,l){E(u,e|32768);let{tokenPos:c,linePos:s,colPos:h}=u;if(u.token===14)return Ot(u,e,c,s,h);let b=null;return u.token===1074790415?(n&&f(u,151),b=It(u,e,u.startPos,u.startLine,u.startColumn)):b=Q(u,e,1,0,0,c,s,h),i?w(u,e,1074790415):V2(u,e),v(u,e,t,o,l,{type:\"JSXExpressionContainer\",expression:b})}function Ot(u,e,i,n,t){w(u,e,14);let o=Q(u,e,1,0,0,u.tokenPos,u.linePos,u.colPos);return w(u,e,1074790415),v(u,e,i,n,t,{type:\"JSXSpreadChild\",expression:o})}function It(u,e,i,n,t){return u.startPos=u.tokenPos,u.startLine=u.linePos,u.startColumn=u.colPos,v(u,e,i,n,t,{type:\"JSXEmptyExpression\"})}function v1(u,e,i,n,t){let{tokenValue:o}=u;return E(u,e),v(u,e,i,n,t,{type:\"JSXIdentifier\",name:o})}var Rt=Object.freeze({__proto__:null}),Nt=\"4.2.1\",Vt=Nt;function jt(u,e){return U1(u,e,0)}function _t(u,e){return U1(u,e,3072)}function Mt(u,e){return U1(u,e,0)}d.ESTree=Rt,d.parse=Mt,d.parseModule=_t,d.parseScript=jt,d.version=Vt}});n2();var h3=pn(),m3=$4(),b3=o3(),k3=d3(),r3={module:!0,next:!0,ranges:!0,webcompat:!0,loc:!0,raw:!0,directives:!0,globalReturn:!0,impliedStrict:!1,preserveParens:!1,lexical:!1,identifierPattern:!1,jsx:!0,specDeviation:!0,uniqueKeyInPattern:!1};function Gn(d,m){let{parse:k}=g3(),f=[],P=[],S=k(d,Object.assign(Object.assign({},r3),{},{module:m,onComment:f,onToken:P}));return S.comments=f,S.tokens=P,S}function v3(d){let{message:m,line:k,column:f}=d,P=(m.match(/^\\[(?\\d+):(?\\d+)]: (?.*)$/)||{}).groups;return P&&(m=P.message,typeof k!=\"number\"&&(k=Number(P.line),f=Number(P.column))),typeof k!=\"number\"?d:h3(m,{start:{line:k,column:f}})}function A3(d,m){let k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{result:f,error:P}=m3(()=>Gn(d,!0),()=>Gn(d,!1));if(!f)throw v3(P);return k.originalText=d,k3(f,k)}k0.exports={parsers:{meriyah:b3(A3)}}});return y3();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.postcss=e()}})(function(){\"use strict\";var V=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var ee=V((pp,Ut)=>{var er=function(e){return e&&e.Math==Math&&e};Ut.exports=er(typeof globalThis==\"object\"&&globalThis)||er(typeof window==\"object\"&&window)||er(typeof self==\"object\"&&self)||er(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var ke=V((hp,Wt)=>{Wt.exports=function(e){try{return!!e()}catch{return!0}}});var Te=V((dp,$t)=>{var fa=ke();$t.exports=!fa(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Sr=V((vp,Vt)=>{var pa=ke();Vt.exports=!pa(function(){var e=function(){}.bind();return typeof e!=\"function\"||e.hasOwnProperty(\"prototype\")})});var tr=V((mp,Gt)=>{var ha=Sr(),rr=Function.prototype.call;Gt.exports=ha?rr.bind(rr):function(){return rr.apply(rr,arguments)}});var Qt=V(Kt=>{\"use strict\";var Ht={}.propertyIsEnumerable,Jt=Object.getOwnPropertyDescriptor,da=Jt&&!Ht.call({1:2},1);Kt.f=da?function(n){var i=Jt(this,n);return!!i&&i.enumerable}:Ht});var Or=V((yp,Yt)=>{Yt.exports=function(e,n){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:n}}});var de=V((wp,en)=>{var Xt=Sr(),Zt=Function.prototype,va=Zt.bind,Tr=Zt.call,ma=Xt&&va.bind(Tr,Tr);en.exports=Xt?function(e){return e&&ma(e)}:function(e){return e&&function(){return Tr.apply(e,arguments)}}});var nn=V((_p,tn)=>{var rn=de(),ga=rn({}.toString),ya=rn(\"\".slice);tn.exports=function(e){return ya(ga(e),8,-1)}});var on=V((bp,sn)=>{var wa=ee(),_a=de(),ba=ke(),xa=nn(),Er=wa.Object,ka=_a(\"\".split);sn.exports=ba(function(){return!Er(\"z\").propertyIsEnumerable(0)})?function(e){return xa(e)==\"String\"?ka(e,\"\"):Er(e)}:Er});var qr=V((xp,an)=>{var Sa=ee(),Oa=Sa.TypeError;an.exports=function(e){if(e==null)throw Oa(\"Can't call method on \"+e);return e}});var nr=V((kp,un)=>{var Ta=on(),Ea=qr();un.exports=function(e){return Ta(Ea(e))}});var ve=V((Sp,cn)=>{cn.exports=function(e){return typeof e==\"function\"}});var Me=V((Op,ln)=>{var qa=ve();ln.exports=function(e){return typeof e==\"object\"?e!==null:qa(e)}});var ir=V((Tp,fn)=>{var Ar=ee(),Aa=ve(),Pa=function(e){return Aa(e)?e:void 0};fn.exports=function(e,n){return arguments.length<2?Pa(Ar[e]):Ar[e]&&Ar[e][n]}});var hn=V((Ep,pn)=>{var Ra=de();pn.exports=Ra({}.isPrototypeOf)});var vn=V((qp,dn)=>{var Ia=ir();dn.exports=Ia(\"navigator\",\"userAgent\")||\"\"});var xn=V((Ap,bn)=>{var _n=ee(),Pr=vn(),mn=_n.process,gn=_n.Deno,yn=mn&&mn.versions||gn&&gn.version,wn=yn&&yn.v8,he,sr;wn&&(he=wn.split(\".\"),sr=he[0]>0&&he[0]<4?1:+(he[0]+he[1]));!sr&&Pr&&(he=Pr.match(/Edge\\/(\\d+)/),(!he||he[1]>=74)&&(he=Pr.match(/Chrome\\/(\\d+)/),he&&(sr=+he[1])));bn.exports=sr});var Rr=V((Pp,Sn)=>{var kn=xn(),Ca=ke();Sn.exports=!!Object.getOwnPropertySymbols&&!Ca(function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&kn&&kn<41})});var Ir=V((Rp,On)=>{var Na=Rr();On.exports=Na&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var Cr=V((Ip,Tn)=>{var ja=ee(),Ma=ir(),Da=ve(),La=hn(),za=Ir(),Ba=ja.Object;Tn.exports=za?function(e){return typeof e==\"symbol\"}:function(e){var n=Ma(\"Symbol\");return Da(n)&&La(n.prototype,Ba(e))}});var qn=V((Cp,En)=>{var Fa=ee(),Ua=Fa.String;En.exports=function(e){try{return Ua(e)}catch{return\"Object\"}}});var Pn=V((Np,An)=>{var Wa=ee(),$a=ve(),Va=qn(),Ga=Wa.TypeError;An.exports=function(e){if($a(e))return e;throw Ga(Va(e)+\" is not a function\")}});var In=V((jp,Rn)=>{var Ha=Pn();Rn.exports=function(e,n){var i=e[n];return i==null?void 0:Ha(i)}});var Nn=V((Mp,Cn)=>{var Ja=ee(),Nr=tr(),jr=ve(),Mr=Me(),Ka=Ja.TypeError;Cn.exports=function(e,n){var i,a;if(n===\"string\"&&jr(i=e.toString)&&!Mr(a=Nr(i,e))||jr(i=e.valueOf)&&!Mr(a=Nr(i,e))||n!==\"string\"&&jr(i=e.toString)&&!Mr(a=Nr(i,e)))return a;throw Ka(\"Can't convert object to primitive value\")}});var Mn=V((Dp,jn)=>{jn.exports=!1});var or=V((Lp,Ln)=>{var Dn=ee(),Qa=Object.defineProperty;Ln.exports=function(e,n){try{Qa(Dn,e,{value:n,configurable:!0,writable:!0})}catch{Dn[e]=n}return n}});var ar=V((zp,Bn)=>{var Ya=ee(),Xa=or(),zn=\"__core-js_shared__\",Za=Ya[zn]||Xa(zn,{});Bn.exports=Za});var Dr=V((Bp,Un)=>{var eu=Mn(),Fn=ar();(Un.exports=function(e,n){return Fn[e]||(Fn[e]=n!==void 0?n:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:eu?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var $n=V((Fp,Wn)=>{var ru=ee(),tu=qr(),nu=ru.Object;Wn.exports=function(e){return nu(tu(e))}});var Se=V((Up,Vn)=>{var iu=de(),su=$n(),ou=iu({}.hasOwnProperty);Vn.exports=Object.hasOwn||function(n,i){return ou(su(n),i)}});var Lr=V((Wp,Gn)=>{var au=de(),uu=0,cu=Math.random(),lu=au(1 .toString);Gn.exports=function(e){return\"Symbol(\"+(e===void 0?\"\":e)+\")_\"+lu(++uu+cu,36)}});var Xn=V(($p,Yn)=>{var fu=ee(),pu=Dr(),Hn=Se(),hu=Lr(),Jn=Rr(),Qn=Ir(),De=pu(\"wks\"),Ee=fu.Symbol,Kn=Ee&&Ee.for,du=Qn?Ee:Ee&&Ee.withoutSetter||hu;Yn.exports=function(e){if(!Hn(De,e)||!(Jn||typeof De[e]==\"string\")){var n=\"Symbol.\"+e;Jn&&Hn(Ee,e)?De[e]=Ee[e]:Qn&&Kn?De[e]=Kn(n):De[e]=du(n)}return De[e]}});var ti=V((Vp,ri)=>{var vu=ee(),mu=tr(),Zn=Me(),ei=Cr(),gu=In(),yu=Nn(),wu=Xn(),_u=vu.TypeError,bu=wu(\"toPrimitive\");ri.exports=function(e,n){if(!Zn(e)||ei(e))return e;var i=gu(e,bu),a;if(i){if(n===void 0&&(n=\"default\"),a=mu(i,e,n),!Zn(a)||ei(a))return a;throw _u(\"Can't convert object to primitive value\")}return n===void 0&&(n=\"number\"),yu(e,n)}});var zr=V((Gp,ni)=>{var xu=ti(),ku=Cr();ni.exports=function(e){var n=xu(e,\"string\");return ku(n)?n:n+\"\"}});var oi=V((Hp,si)=>{var Su=ee(),ii=Me(),Br=Su.document,Ou=ii(Br)&&ii(Br.createElement);si.exports=function(e){return Ou?Br.createElement(e):{}}});var Fr=V((Jp,ai)=>{var Tu=Te(),Eu=ke(),qu=oi();ai.exports=!Tu&&!Eu(function(){return Object.defineProperty(qu(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var Ur=V(ci=>{var Au=Te(),Pu=tr(),Ru=Qt(),Iu=Or(),Cu=nr(),Nu=zr(),ju=Se(),Mu=Fr(),ui=Object.getOwnPropertyDescriptor;ci.f=Au?ui:function(n,i){if(n=Cu(n),i=Nu(i),Mu)try{return ui(n,i)}catch{}if(ju(n,i))return Iu(!Pu(Ru.f,n,i),n[i])}});var fi=V((Qp,li)=>{var Du=Te(),Lu=ke();li.exports=Du&&Lu(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var Wr=V((Yp,hi)=>{var pi=ee(),zu=Me(),Bu=pi.String,Fu=pi.TypeError;hi.exports=function(e){if(zu(e))return e;throw Fu(Bu(e)+\" is not an object\")}});var Jr=V(vi=>{var Uu=ee(),Wu=Te(),$u=Fr(),Vu=fi(),ur=Wr(),di=zr(),Gu=Uu.TypeError,$r=Object.defineProperty,Hu=Object.getOwnPropertyDescriptor,Vr=\"enumerable\",Gr=\"configurable\",Hr=\"writable\";vi.f=Wu?Vu?function(n,i,a){if(ur(n),i=di(i),ur(a),typeof n==\"function\"&&i===\"prototype\"&&\"value\"in a&&Hr in a&&!a[Hr]){var o=Hu(n,i);o&&o[Hr]&&(n[i]=a.value,a={configurable:Gr in a?a[Gr]:o[Gr],enumerable:Vr in a?a[Vr]:o[Vr],writable:!1})}return $r(n,i,a)}:$r:function(n,i,a){if(ur(n),i=di(i),ur(a),$u)try{return $r(n,i,a)}catch{}if(\"get\"in a||\"set\"in a)throw Gu(\"Accessors not supported\");return\"value\"in a&&(n[i]=a.value),n}});var cr=V((Zp,mi)=>{var Ju=Te(),Ku=Jr(),Qu=Or();mi.exports=Ju?function(e,n,i){return Ku.f(e,n,Qu(1,i))}:function(e,n,i){return e[n]=i,e}});var Qr=V((eh,gi)=>{var Yu=de(),Xu=ve(),Kr=ar(),Zu=Yu(Function.toString);Xu(Kr.inspectSource)||(Kr.inspectSource=function(e){return Zu(e)});gi.exports=Kr.inspectSource});var _i=V((rh,wi)=>{var ec=ee(),rc=ve(),tc=Qr(),yi=ec.WeakMap;wi.exports=rc(yi)&&/native code/.test(tc(yi))});var ki=V((th,xi)=>{var nc=Dr(),ic=Lr(),bi=nc(\"keys\");xi.exports=function(e){return bi[e]||(bi[e]=ic(e))}});var Yr=V((nh,Si)=>{Si.exports={}});var Pi=V((ih,Ai)=>{var sc=_i(),qi=ee(),Xr=de(),oc=Me(),ac=cr(),Zr=Se(),et=ar(),uc=ki(),cc=Yr(),Oi=\"Object already initialized\",tt=qi.TypeError,lc=qi.WeakMap,lr,Fe,fr,fc=function(e){return fr(e)?Fe(e):lr(e,{})},pc=function(e){return function(n){var i;if(!oc(n)||(i=Fe(n)).type!==e)throw tt(\"Incompatible receiver, \"+e+\" required\");return i}};sc||et.state?(Oe=et.state||(et.state=new lc),Ti=Xr(Oe.get),rt=Xr(Oe.has),Ei=Xr(Oe.set),lr=function(e,n){if(rt(Oe,e))throw new tt(Oi);return n.facade=e,Ei(Oe,e,n),n},Fe=function(e){return Ti(Oe,e)||{}},fr=function(e){return rt(Oe,e)}):(qe=uc(\"state\"),cc[qe]=!0,lr=function(e,n){if(Zr(e,qe))throw new tt(Oi);return n.facade=e,ac(e,qe,n),n},Fe=function(e){return Zr(e,qe)?e[qe]:{}},fr=function(e){return Zr(e,qe)});var Oe,Ti,rt,Ei,qe;Ai.exports={set:lr,get:Fe,has:fr,enforce:fc,getterFor:pc}});var Ci=V((sh,Ii)=>{var nt=Te(),hc=Se(),Ri=Function.prototype,dc=nt&&Object.getOwnPropertyDescriptor,it=hc(Ri,\"name\"),vc=it&&function(){}.name===\"something\",mc=it&&(!nt||nt&&dc(Ri,\"name\").configurable);Ii.exports={EXISTS:it,PROPER:vc,CONFIGURABLE:mc}});var Li=V((oh,Di)=>{var gc=ee(),Ni=ve(),yc=Se(),ji=cr(),wc=or(),_c=Qr(),Mi=Pi(),bc=Ci().CONFIGURABLE,xc=Mi.get,kc=Mi.enforce,Sc=String(String).split(\"String\");(Di.exports=function(e,n,i,a){var o=a?!!a.unsafe:!1,f=a?!!a.enumerable:!1,p=a?!!a.noTargetGet:!1,h=a&&a.name!==void 0?a.name:n,g;if(Ni(i)&&(String(h).slice(0,7)===\"Symbol(\"&&(h=\"[\"+String(h).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!yc(i,\"name\")||bc&&i.name!==h)&&ji(i,\"name\",h),g=kc(i),g.source||(g.source=Sc.join(typeof h==\"string\"?h:\"\"))),e===gc){f?e[n]=i:wc(n,i);return}else o?!p&&e[n]&&(f=!0):delete e[n];f?e[n]=i:ji(e,n,i)})(Function.prototype,\"toString\",function(){return Ni(this)&&xc(this).source||_c(this)})});var st=V((ah,zi)=>{var Oc=Math.ceil,Tc=Math.floor;zi.exports=function(e){var n=+e;return n!==n||n===0?0:(n>0?Tc:Oc)(n)}});var Fi=V((uh,Bi)=>{var Ec=st(),qc=Math.max,Ac=Math.min;Bi.exports=function(e,n){var i=Ec(e);return i<0?qc(i+n,0):Ac(i,n)}});var Wi=V((ch,Ui)=>{var Pc=st(),Rc=Math.min;Ui.exports=function(e){return e>0?Rc(Pc(e),9007199254740991):0}});var Vi=V((lh,$i)=>{var Ic=Wi();$i.exports=function(e){return Ic(e.length)}});var Ji=V((fh,Hi)=>{var Cc=nr(),Nc=Fi(),jc=Vi(),Gi=function(e){return function(n,i,a){var o=Cc(n),f=jc(o),p=Nc(a,f),h;if(e&&i!=i){for(;f>p;)if(h=o[p++],h!=h)return!0}else for(;f>p;p++)if((e||p in o)&&o[p]===i)return e||p||0;return!e&&-1}};Hi.exports={includes:Gi(!0),indexOf:Gi(!1)}});var Yi=V((ph,Qi)=>{var Mc=de(),ot=Se(),Dc=nr(),Lc=Ji().indexOf,zc=Yr(),Ki=Mc([].push);Qi.exports=function(e,n){var i=Dc(e),a=0,o=[],f;for(f in i)!ot(zc,f)&&ot(i,f)&&Ki(o,f);for(;n.length>a;)ot(i,f=n[a++])&&(~Lc(o,f)||Ki(o,f));return o}});var Zi=V((hh,Xi)=>{Xi.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var rs=V(es=>{var Bc=Yi(),Fc=Zi(),Uc=Fc.concat(\"length\",\"prototype\");es.f=Object.getOwnPropertyNames||function(n){return Bc(n,Uc)}});var ns=V(ts=>{ts.f=Object.getOwnPropertySymbols});var ss=V((mh,is)=>{var Wc=ir(),$c=de(),Vc=rs(),Gc=ns(),Hc=Wr(),Jc=$c([].concat);is.exports=Wc(\"Reflect\",\"ownKeys\")||function(n){var i=Vc.f(Hc(n)),a=Gc.f;return a?Jc(i,a(n)):i}});var us=V((gh,as)=>{var os=Se(),Kc=ss(),Qc=Ur(),Yc=Jr();as.exports=function(e,n,i){for(var a=Kc(n),o=Yc.f,f=Qc.f,p=0;p{var Xc=ke(),Zc=ve(),el=/#|\\.prototype\\./,Ue=function(e,n){var i=tl[rl(e)];return i==il?!0:i==nl?!1:Zc(n)?Xc(n):!!n},rl=Ue.normalize=function(e){return String(e).replace(el,\".\").toLowerCase()},tl=Ue.data={},nl=Ue.NATIVE=\"N\",il=Ue.POLYFILL=\"P\";cs.exports=Ue});var ps=V((wh,fs)=>{var at=ee(),sl=Ur().f,ol=cr(),al=Li(),ul=or(),cl=us(),ll=ls();fs.exports=function(e,n){var i=e.target,a=e.global,o=e.stat,f,p,h,g,c,t;if(a?p=at:o?p=at[i]||ul(i,{}):p=(at[i]||{}).prototype,p)for(h in n){if(c=n[h],e.noTargetGet?(t=sl(p,h),g=t&&t.value):g=p[h],f=ll(a?h:i+(o?\".\":\"#\")+h,e.forced),!f&&g!==void 0){if(typeof c==typeof g)continue;cl(c,g)}(e.sham||g&&g.sham)&&ol(c,\"sham\",!0),al(p,h,c,e)}}});var hs=V(()=>{var fl=ps(),pl=ee();fl({global:!0},{globalThis:pl})});var ds=V(()=>{hs()});var lp=V((Ph,la)=>{ds();var kt=Object.defineProperty,hl=Object.getOwnPropertyDescriptor,St=Object.getOwnPropertyNames,dl=Object.prototype.hasOwnProperty,Le=(e,n)=>function(){return e&&(n=(0,e[St(e)[0]])(e=0)),n},R=(e,n)=>function(){return n||(0,e[St(e)[0]])((n={exports:{}}).exports,n),n.exports},Ot=(e,n)=>{for(var i in n)kt(e,i,{get:n[i],enumerable:!0})},vl=(e,n,i,a)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let o of St(n))!dl.call(e,o)&&o!==i&&kt(e,o,{get:()=>n[o],enumerable:!(a=hl(n,o))||a.enumerable});return e},Tt=e=>vl(kt({},\"__esModule\",{value:!0}),e),A=Le({\"\"(){}}),ml=R({\"src/common/parser-create-error.js\"(e,n){\"use strict\";A();function i(a,o){let f=new SyntaxError(a+\" (\"+o.start.line+\":\"+o.start.column+\")\");return f.loc=o,f}n.exports=i}}),Cs=R({\"src/utils/get-last.js\"(e,n){\"use strict\";A();var i=a=>a[a.length-1];n.exports=i}}),Ns=R({\"src/utils/front-matter/parse.js\"(e,n){\"use strict\";A();var i=new RegExp(\"^(?-{3}|\\\\+{3})(?[^\\\\n]*)\\\\n(?:|(?.*?)\\\\n)(?\\\\k|\\\\.{3})[^\\\\S\\\\n]*(?:\\\\n|$)\",\"s\");function a(o){let f=o.match(i);if(!f)return{content:o};let{startDelimiter:p,language:h,value:g=\"\",endDelimiter:c}=f.groups,t=h.trim()||\"yaml\";if(p===\"+++\"&&(t=\"toml\"),t!==\"yaml\"&&p!==c)return{content:o};let[r]=f;return{frontMatter:{type:\"front-matter\",lang:t,value:g,startDelimiter:p,endDelimiter:c,raw:r.replace(/\\n$/,\"\")},content:r.replace(/[^\\n]/g,\" \")+o.slice(r.length)}}n.exports=a}}),js={};Ot(js,{EOL:()=>gt,arch:()=>gl,cpus:()=>Us,default:()=>Hs,endianness:()=>Ms,freemem:()=>Bs,getNetworkInterfaces:()=>Gs,hostname:()=>Ds,loadavg:()=>Ls,networkInterfaces:()=>Vs,platform:()=>yl,release:()=>$s,tmpDir:()=>vt,tmpdir:()=>mt,totalmem:()=>Fs,type:()=>Ws,uptime:()=>zs});function Ms(){if(typeof pr>\"u\"){var e=new ArrayBuffer(2),n=new Uint8Array(e),i=new Uint16Array(e);if(n[0]=1,n[1]=2,i[0]===258)pr=\"BE\";else if(i[0]===513)pr=\"LE\";else throw new Error(\"unable to figure out endianess\")}return pr}function Ds(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function Ls(){return[]}function zs(){return 0}function Bs(){return Number.MAX_VALUE}function Fs(){return Number.MAX_VALUE}function Us(){return[]}function Ws(){return\"Browser\"}function $s(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function Vs(){}function Gs(){}function gl(){return\"javascript\"}function yl(){return\"browser\"}function vt(){return\"/tmp\"}var pr,mt,gt,Hs,wl=Le({\"node-modules-polyfills:os\"(){A(),mt=vt,gt=`\n`,Hs={EOL:gt,tmpdir:mt,tmpDir:vt,networkInterfaces:Vs,getNetworkInterfaces:Gs,release:$s,type:Ws,cpus:Us,totalmem:Fs,freemem:Bs,uptime:zs,loadavg:Ls,hostname:Ds,endianness:Ms}}}),_l=R({\"node-modules-polyfills-commonjs:os\"(e,n){A();var i=(wl(),Tt(js));if(i&&i.default){n.exports=i.default;for(let a in i)n.exports[a]=i[a]}else i&&(n.exports=i)}}),bl=R({\"node_modules/detect-newline/index.js\"(e,n){\"use strict\";A();var i=a=>{if(typeof a!=\"string\")throw new TypeError(\"Expected a string\");let o=a.match(/(?:\\r?\\n)/g)||[];if(o.length===0)return;let f=o.filter(h=>h===`\\r\n`).length,p=o.length-f;return f>p?`\\r\n`:`\n`};n.exports=i,n.exports.graceful=a=>typeof a==\"string\"&&i(a)||`\n`}}),xl=R({\"node_modules/jest-docblock/build/index.js\"(e){\"use strict\";A(),Object.defineProperty(e,\"__esModule\",{value:!0}),e.extract=s,e.parse=m,e.parseWithComments=v,e.print=y,e.strip=l;function n(){let d=_l();return n=function(){return d},d}function i(){let d=a(bl());return i=function(){return d},d}function a(d){return d&&d.__esModule?d:{default:d}}var o=/\\*\\/$/,f=/^\\/\\*\\*/,p=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,h=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,g=/^(\\r?\\n)+/,c=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,t=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,r=/(\\r?\\n|^) *\\* ?/g,u=[];function s(d){let _=d.match(p);return _?_[0].trimLeft():\"\"}function l(d){let _=d.match(p);return _&&_[0]?d.substring(_[0].length):d}function m(d){return v(d).pragmas}function v(d){let _=(0,i().default)(d)||n().EOL;d=d.replace(f,\"\").replace(o,\"\").replace(r,\"$1\");let S=\"\";for(;S!==d;)S=d,d=d.replace(c,\"\".concat(_,\"$1 $2\").concat(_));d=d.replace(g,\"\").trimRight();let x=Object.create(null),N=d.replace(t,\"\").replace(g,\"\").trimRight(),P;for(;P=t.exec(d);){let W=P[2].replace(h,\"\");typeof x[P[1]]==\"string\"||Array.isArray(x[P[1]])?x[P[1]]=u.concat(x[P[1]],W):x[P[1]]=W}return{comments:N,pragmas:x}}function y(d){let{comments:_=\"\",pragmas:S={}}=d,x=(0,i().default)(_)||n().EOL,N=\"/**\",P=\" *\",W=\" */\",U=Object.keys(S),H=U.map($=>w($,S[$])).reduce(($,B)=>$.concat(B),[]).map($=>P+\" \"+$+x).join(\"\");if(!_){if(U.length===0)return\"\";if(U.length===1&&!Array.isArray(S[U[0]])){let $=S[U[0]];return\"\".concat(N,\" \").concat(w(U[0],$)[0]).concat(W)}}let D=_.split(x).map($=>\"\".concat(P,\" \").concat($)).join(x)+x;return N+x+(_?D:\"\")+(_&&U.length?P+x:\"\")+H+W}function w(d,_){return u.concat(_).map(S=>\"@\".concat(d,\" \").concat(S).trim())}}}),kl=R({\"src/common/end-of-line.js\"(e,n){\"use strict\";A();function i(p){let h=p.indexOf(\"\\r\");return h>=0?p.charAt(h+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function a(p){switch(p){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function o(p,h){let g;switch(h){case`\n`:g=/\\n/g;break;case\"\\r\":g=/\\r/g;break;case`\\r\n`:g=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(h),\".\"))}let c=p.match(g);return c?c.length:0}function f(p){return p.replace(/\\r\\n?/g,`\n`)}n.exports={guessEndOfLine:i,convertEndOfLineToChars:a,countEndOfLineChars:o,normalizeEndOfLine:f}}}),Sl=R({\"src/language-js/utils/get-shebang.js\"(e,n){\"use strict\";A();function i(a){if(!a.startsWith(\"#!\"))return\"\";let o=a.indexOf(`\n`);return o===-1?a:a.slice(0,o)}n.exports=i}}),Ol=R({\"src/language-js/pragma.js\"(e,n){\"use strict\";A();var{parseWithComments:i,strip:a,extract:o,print:f}=xl(),{normalizeEndOfLine:p}=kl(),h=Sl();function g(r){let u=h(r);u&&(r=r.slice(u.length+1));let s=o(r),{pragmas:l,comments:m}=i(s);return{shebang:u,text:r,pragmas:l,comments:m}}function c(r){let u=Object.keys(g(r).pragmas);return u.includes(\"prettier\")||u.includes(\"format\")}function t(r){let{shebang:u,text:s,pragmas:l,comments:m}=g(r),v=a(s),y=f({pragmas:Object.assign({format:\"\"},l),comments:m.trimStart()});return(u?\"\".concat(u,`\n`):\"\")+p(y)+(v.startsWith(`\n`)?`\n`:`\n\n`)+v}n.exports={hasPragma:c,insertPragma:t}}}),Tl=R({\"src/language-css/pragma.js\"(e,n){\"use strict\";A();var i=Ol(),a=Ns();function o(p){return i.hasPragma(a(p).content)}function f(p){let{frontMatter:h,content:g}=a(p);return(h?h.raw+`\n\n`:\"\")+i.insertPragma(g)}n.exports={hasPragma:o,insertPragma:f}}}),El=R({\"src/utils/text/skip.js\"(e,n){\"use strict\";A();function i(h){return(g,c,t)=>{let r=t&&t.backwards;if(c===!1)return!1;let{length:u}=g,s=c;for(;s>=0&&s0}n.exports=i}}),Pl=R({\"src/language-css/utils/has-scss-interpolation.js\"(e,n){\"use strict\";A();var i=Al();function a(o){if(i(o)){for(let f=o.length-1;f>0;f--)if(o[f].type===\"word\"&&o[f].value===\"{\"&&o[f-1].type===\"word\"&&o[f-1].value.endsWith(\"#\"))return!0}return!1}n.exports=a}}),Rl=R({\"src/language-css/utils/has-string-or-function.js\"(e,n){\"use strict\";A();function i(a){return a.some(o=>o.type===\"string\"||o.type===\"func\")}n.exports=i}}),Il=R({\"src/language-css/utils/is-less-parser.js\"(e,n){\"use strict\";A();function i(a){return a.parser===\"css\"||a.parser===\"less\"}n.exports=i}}),Cl=R({\"src/language-css/utils/is-scss.js\"(e,n){\"use strict\";A();function i(a,o){return a===\"less\"||a===\"scss\"?a===\"scss\":/(?:\\w\\s*:\\s*[^:}]+|#){|@import[^\\n]+(?:url|,)/.test(o)}n.exports=i}}),Nl=R({\"src/language-css/utils/is-scss-nested-property-node.js\"(e,n){\"use strict\";A();function i(a){return a.selector?a.selector.replace(/\\/\\*.*?\\*\\//,\"\").replace(/\\/\\/.*\\n/,\"\").trim().endsWith(\":\"):!1}n.exports=i}}),jl=R({\"src/language-css/utils/is-scss-variable.js\"(e,n){\"use strict\";A();function i(a){return Boolean((a==null?void 0:a.type)===\"word\"&&a.value.startsWith(\"$\"))}n.exports=i}}),Ml=R({\"src/language-css/utils/stringify-node.js\"(e,n){\"use strict\";A();function i(a){var o,f,p;if(a.groups){var h,g,c;let y=((h=a.open)===null||h===void 0?void 0:h.value)||\"\",w=a.groups.map(_=>i(_)).join(((g=a.groups[0])===null||g===void 0?void 0:g.type)===\"comma_group\"?\",\":\"\"),d=((c=a.close)===null||c===void 0?void 0:c.value)||\"\";return y+w+d}let t=((o=a.raws)===null||o===void 0?void 0:o.before)||\"\",r=((f=a.raws)===null||f===void 0?void 0:f.quote)||\"\",u=a.type===\"atword\"?\"@\":\"\",s=a.value||\"\",l=a.unit||\"\",m=a.group?i(a.group):\"\",v=((p=a.raws)===null||p===void 0?void 0:p.after)||\"\";return t+r+u+s+r+l+m+v}n.exports=i}}),Dl=R({\"src/language-css/utils/is-module-rule-name.js\"(e,n){\"use strict\";A();var i=new Set([\"import\",\"use\",\"forward\"]);function a(o){return i.has(o)}n.exports=a}}),we=R({\"node_modules/postcss-values-parser/lib/node.js\"(e,n){\"use strict\";A();var i=function(a,o){let f=new a.constructor;for(let p in a){if(!a.hasOwnProperty(p))continue;let h=a[p],g=typeof h;p===\"parent\"&&g===\"object\"?o&&(f[p]=o):p===\"source\"?f[p]=h:h instanceof Array?f[p]=h.map(c=>i(c,f)):p!==\"before\"&&p!==\"after\"&&p!==\"between\"&&p!==\"semicolon\"&&(g===\"object\"&&h!==null&&(h=i(h)),f[p]=h)}return f};n.exports=class{constructor(o){o=o||{},this.raws={before:\"\",after:\"\"};for(let f in o)this[f]=o[f]}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(){return[this.raws.before,String(this.value),this.raws.after].join(\"\")}clone(o){o=o||{};let f=i(this);for(let p in o)f[p]=o[p];return f}cloneBefore(o){o=o||{};let f=this.clone(o);return this.parent.insertBefore(this,f),f}cloneAfter(o){o=o||{};let f=this.clone(o);return this.parent.insertAfter(this,f),f}replaceWith(){let o=Array.prototype.slice.call(arguments);if(this.parent){for(let f of o)this.parent.insertBefore(this,f);this.remove()}return this}moveTo(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.append(this),this}moveBefore(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertBefore(o,this),this}moveAfter(o){return this.cleanRaws(this.root()===o.root()),this.remove(),o.parent.insertAfter(o,this),this}next(){let o=this.parent.index(this);return this.parent.nodes[o+1]}prev(){let o=this.parent.index(this);return this.parent.nodes[o-1]}toJSON(){let o={};for(let f in this){if(!this.hasOwnProperty(f)||f===\"parent\")continue;let p=this[f];p instanceof Array?o[f]=p.map(h=>typeof h==\"object\"&&h.toJSON?h.toJSON():h):typeof p==\"object\"&&p.toJSON?o[f]=p.toJSON():o[f]=p}return o}root(){let o=this;for(;o.parent;)o=o.parent;return o}cleanRaws(o){delete this.raws.before,delete this.raws.after,o||delete this.raws.between}positionInside(o){let f=this.toString(),p=this.source.start.column,h=this.source.start.line;for(let g=0;g{let h=o(f,p);return h!==!1&&f.walk&&(h=f.walk(o)),h})}walkType(o,f){if(!o||!f)throw new Error(\"Parameters {type} and {callback} are required.\");let p=typeof o==\"function\";return this.walk((h,g)=>{if(p&&h instanceof o||!p&&h.type===o)return f.call(this,h,g)})}append(o){return o.parent=this,this.nodes.push(o),this}prepend(o){return o.parent=this,this.nodes.unshift(o),this}cleanRaws(o){if(super.cleanRaws(o),this.nodes)for(let f of this.nodes)f.cleanRaws(o)}insertAfter(o,f){let p=this.index(o),h;this.nodes.splice(p+1,0,f);for(let g in this.indexes)h=this.indexes[g],p<=h&&(this.indexes[g]=h+this.nodes.length);return this}insertBefore(o,f){let p=this.index(o),h;this.nodes.splice(p,0,f);for(let g in this.indexes)h=this.indexes[g],p<=h&&(this.indexes[g]=h+this.nodes.length);return this}removeChild(o){o=this.index(o),this.nodes[o].parent=void 0,this.nodes.splice(o,1);let f;for(let p in this.indexes)f=this.indexes[p],f>=o&&(this.indexes[p]=f-1);return this}removeAll(){for(let o of this.nodes)o.parent=void 0;return this.nodes=[],this}every(o){return this.nodes.every(o)}some(o){return this.nodes.some(o)}index(o){return typeof o==\"number\"?o:this.nodes.indexOf(o)}get first(){if(!!this.nodes)return this.nodes[0]}get last(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}toString(){let o=this.nodes.map(String).join(\"\");return this.value&&(o=this.value+o),this.raws.before&&(o=this.raws.before+o),this.raws.after&&(o+=this.raws.after),o}};a.registerWalker=o=>{let f=\"walk\"+o.name;f.lastIndexOf(\"s\")!==f.length-1&&(f+=\"s\"),!a.prototype[f]&&(a.prototype[f]=function(p){return this.walkType(o,p)})},n.exports=a}}),Ll=R({\"node_modules/postcss-values-parser/lib/root.js\"(e,n){\"use strict\";A();var i=ue();n.exports=class extends i{constructor(o){super(o),this.type=\"root\"}}}}),Ks=R({\"node_modules/postcss-values-parser/lib/value.js\"(e,n){\"use strict\";A();var i=ue();n.exports=class extends i{constructor(o){super(o),this.type=\"value\",this.unbalanced=0}}}}),Qs=R({\"node_modules/postcss-values-parser/lib/atword.js\"(e,n){\"use strict\";A();var i=ue(),a=class extends i{constructor(o){super(o),this.type=\"atword\"}toString(){let o=this.quoted?this.raws.quote:\"\";return[this.raws.before,\"@\",String.prototype.toString.call(this.value),this.raws.after].join(\"\")}};i.registerWalker(a),n.exports=a}}),Ys=R({\"node_modules/postcss-values-parser/lib/colon.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"colon\"}};i.registerWalker(o),n.exports=o}}),Xs=R({\"node_modules/postcss-values-parser/lib/comma.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"comma\"}};i.registerWalker(o),n.exports=o}}),Zs=R({\"node_modules/postcss-values-parser/lib/comment.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"comment\",this.inline=Object(f).inline||!1}toString(){return[this.raws.before,this.inline?\"//\":\"/*\",String(this.value),this.inline?\"\":\"*/\",this.raws.after].join(\"\")}};i.registerWalker(o),n.exports=o}}),eo=R({\"node_modules/postcss-values-parser/lib/function.js\"(e,n){\"use strict\";A();var i=ue(),a=class extends i{constructor(o){super(o),this.type=\"func\",this.unbalanced=-1}};i.registerWalker(a),n.exports=a}}),ro=R({\"node_modules/postcss-values-parser/lib/number.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"number\",this.unit=Object(f).unit||\"\"}toString(){return[this.raws.before,String(this.value),this.unit,this.raws.after].join(\"\")}};i.registerWalker(o),n.exports=o}}),to=R({\"node_modules/postcss-values-parser/lib/operator.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"operator\"}};i.registerWalker(o),n.exports=o}}),no=R({\"node_modules/postcss-values-parser/lib/paren.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"paren\",this.parenType=\"\"}};i.registerWalker(o),n.exports=o}}),io=R({\"node_modules/postcss-values-parser/lib/string.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"string\"}toString(){let f=this.quoted?this.raws.quote:\"\";return[this.raws.before,f,this.value+\"\",f,this.raws.after].join(\"\")}};i.registerWalker(o),n.exports=o}}),so=R({\"node_modules/postcss-values-parser/lib/word.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"word\"}};i.registerWalker(o),n.exports=o}}),oo=R({\"node_modules/postcss-values-parser/lib/unicode-range.js\"(e,n){\"use strict\";A();var i=ue(),a=we(),o=class extends a{constructor(f){super(f),this.type=\"unicode-range\"}};i.registerWalker(o),n.exports=o}});function ao(){throw new Error(\"setTimeout has not been defined\")}function uo(){throw new Error(\"clearTimeout has not been defined\")}function co(e){if(be===setTimeout)return setTimeout(e,0);if((be===ao||!be)&&setTimeout)return be=setTimeout,setTimeout(e,0);try{return be(e,0)}catch{try{return be.call(null,e,0)}catch{return be.call(this,e,0)}}}function zl(e){if(xe===clearTimeout)return clearTimeout(e);if((xe===uo||!xe)&&clearTimeout)return xe=clearTimeout,clearTimeout(e);try{return xe(e)}catch{try{return xe.call(null,e)}catch{return xe.call(this,e)}}}function Bl(){!Ne||!Ce||(Ne=!1,Ce.length?me=Ce.concat(me):$e=-1,me.length&&lo())}function lo(){if(!Ne){var e=co(Bl);Ne=!0;for(var n=me.length;n;){for(Ce=me,me=[];++$e1)for(var i=1;iIt,debuglog:()=>mo,default:()=>Oo,deprecate:()=>qt,format:()=>gr,inherits:()=>Et,inspect:()=>ye,isArray:()=>At,isBoolean:()=>yr,isBuffer:()=>_o,isDate:()=>vr,isError:()=>He,isFunction:()=>Je,isNull:()=>Ke,isNullOrUndefined:()=>go,isNumber:()=>Pt,isObject:()=>je,isPrimitive:()=>wo,isRegExp:()=>Ge,isString:()=>Qe,isSymbol:()=>yo,isUndefined:()=>ge,log:()=>bo});function gr(e){if(!Qe(e)){for(var n=[],i=0;i=o)return h;switch(h){case\"%s\":return String(a[i++]);case\"%d\":return Number(a[i++]);case\"%j\":try{return JSON.stringify(a[i++])}catch{return\"[Circular]\"}default:return h}}),p=a[i];i=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),yr(n)?i.showHidden=n:n&&It(i,n),ge(i.showHidden)&&(i.showHidden=!1),ge(i.depth)&&(i.depth=2),ge(i.colors)&&(i.colors=!1),ge(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=Ql),dr(i,e,i.depth)}function Ql(e,n){var i=ye.styles[n];return i?\"\\x1B[\"+ye.colors[i][0]+\"m\"+e+\"\\x1B[\"+ye.colors[i][1]+\"m\":e}function Yl(e,n){return e}function Xl(e){var n={};return e.forEach(function(i,a){n[i]=!0}),n}function dr(e,n,i){if(e.customInspect&&n&&Je(n.inspect)&&n.inspect!==ye&&!(n.constructor&&n.constructor.prototype===n)){var a=n.inspect(i,e);return Qe(a)||(a=dr(e,a,i)),a}var o=Zl(e,n);if(o)return o;var f=Object.keys(n),p=Xl(f);if(e.showHidden&&(f=Object.getOwnPropertyNames(n)),He(n)&&(f.indexOf(\"message\")>=0||f.indexOf(\"description\")>=0))return ct(n);if(f.length===0){if(Je(n)){var h=n.name?\": \"+n.name:\"\";return e.stylize(\"[Function\"+h+\"]\",\"special\")}if(Ge(n))return e.stylize(RegExp.prototype.toString.call(n),\"regexp\");if(vr(n))return e.stylize(Date.prototype.toString.call(n),\"date\");if(He(n))return ct(n)}var g=\"\",c=!1,t=[\"{\",\"}\"];if(At(n)&&(c=!0,t=[\"[\",\"]\"]),Je(n)){var r=n.name?\": \"+n.name:\"\";g=\" [Function\"+r+\"]\"}if(Ge(n)&&(g=\" \"+RegExp.prototype.toString.call(n)),vr(n)&&(g=\" \"+Date.prototype.toUTCString.call(n)),He(n)&&(g=\" \"+ct(n)),f.length===0&&(!c||n.length==0))return t[0]+g+t[1];if(i<0)return Ge(n)?e.stylize(RegExp.prototype.toString.call(n),\"regexp\"):e.stylize(\"[Object]\",\"special\");e.seen.push(n);var u;return c?u=ef(e,n,i,p,f):u=f.map(function(s){return yt(e,n,i,p,s,c)}),e.seen.pop(),rf(u,g,t)}function Zl(e,n){if(ge(n))return e.stylize(\"undefined\",\"undefined\");if(Qe(n)){var i=\"'\"+JSON.stringify(n).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(i,\"string\")}if(Pt(n))return e.stylize(\"\"+n,\"number\");if(yr(n))return e.stylize(\"\"+n,\"boolean\");if(Ke(n))return e.stylize(\"null\",\"null\")}function ct(e){return\"[\"+Error.prototype.toString.call(e)+\"]\"}function ef(e,n,i,a,o){for(var f=[],p=0,h=n.length;p-1&&(f?h=h.split(`\n`).map(function(c){return\" \"+c}).join(`\n`).substr(2):h=`\n`+h.split(`\n`).map(function(c){return\" \"+c}).join(`\n`))):h=e.stylize(\"[Circular]\",\"special\")),ge(p)){if(f&&o.match(/^\\d+$/))return h;p=JSON.stringify(\"\"+o),p.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(p=p.substr(1,p.length-2),p=e.stylize(p,\"name\")):(p=p.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),p=e.stylize(p,\"string\"))}return p+\": \"+h}function rf(e,n,i){var a=0,o=e.reduce(function(f,p){return a++,p.indexOf(`\n`)>=0&&a++,f+p.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0);return o>60?i[0]+(n===\"\"?\"\":n+`\n `)+\" \"+e.join(`,\n `)+\" \"+i[1]:i[0]+n+\" \"+e.join(\", \")+\" \"+i[1]}function At(e){return Array.isArray(e)}function yr(e){return typeof e==\"boolean\"}function Ke(e){return e===null}function go(e){return e==null}function Pt(e){return typeof e==\"number\"}function Qe(e){return typeof e==\"string\"}function yo(e){return typeof e==\"symbol\"}function ge(e){return e===void 0}function Ge(e){return je(e)&&Rt(e)===\"[object RegExp]\"}function je(e){return typeof e==\"object\"&&e!==null}function vr(e){return je(e)&&Rt(e)===\"[object Date]\"}function He(e){return je(e)&&(Rt(e)===\"[object Error]\"||e instanceof Error)}function Je(e){return typeof e==\"function\"}function wo(e){return e===null||typeof e==\"boolean\"||typeof e==\"number\"||typeof e==\"string\"||typeof e==\"symbol\"||typeof e>\"u\"}function _o(e){return Buffer.isBuffer(e)}function Rt(e){return Object.prototype.toString.call(e)}function lt(e){return e<10?\"0\"+e.toString(10):e.toString(10)}function tf(){var e=new Date,n=[lt(e.getHours()),lt(e.getMinutes()),lt(e.getSeconds())].join(\":\");return[e.getDate(),So[e.getMonth()],n].join(\" \")}function bo(){console.log(\"%s - %s\",tf(),gr.apply(null,arguments))}function It(e,n){if(!n||!je(n))return e;for(var i=Object.keys(n),a=i.length;a--;)e[i[a]]=n[i[a]];return e}function xo(e,n){return Object.prototype.hasOwnProperty.call(e,n)}var ko,We,ft,So,Oo,nf=Le({\"node-modules-polyfills:util\"(){A(),Jl(),Kl(),ko=/%[sdj%]/g,We={},ye.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},ye.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},So=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],Oo={inherits:Et,_extend:It,log:bo,isBuffer:_o,isPrimitive:wo,isFunction:Je,isError:He,isDate:vr,isObject:je,isRegExp:Ge,isUndefined:ge,isSymbol:yo,isString:Qe,isNumber:Pt,isNullOrUndefined:go,isNull:Ke,isBoolean:yr,isArray:At,inspect:ye,deprecate:qt,format:gr,debuglog:mo}}}),sf=R({\"node-modules-polyfills-commonjs:util\"(e,n){A();var i=(nf(),Tt(vo));if(i&&i.default){n.exports=i.default;for(let a in i)n.exports[a]=i[a]}else i&&(n.exports=i)}}),of=R({\"node_modules/postcss-values-parser/lib/errors/TokenizeError.js\"(e,n){\"use strict\";A();var i=class extends Error{constructor(a){super(a),this.name=this.constructor.name,this.message=a||\"An error ocurred while tokzenizing.\",typeof Error.captureStackTrace==\"function\"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(a).stack}};n.exports=i}}),af=R({\"node_modules/postcss-values-parser/lib/tokenize.js\"(e,n){\"use strict\";A();var i=\"{\".charCodeAt(0),a=\"}\".charCodeAt(0),o=\"(\".charCodeAt(0),f=\")\".charCodeAt(0),p=\"'\".charCodeAt(0),h='\"'.charCodeAt(0),g=\"\\\\\".charCodeAt(0),c=\"/\".charCodeAt(0),t=\".\".charCodeAt(0),r=\",\".charCodeAt(0),u=\":\".charCodeAt(0),s=\"*\".charCodeAt(0),l=\"-\".charCodeAt(0),m=\"+\".charCodeAt(0),v=\"#\".charCodeAt(0),y=`\n`.charCodeAt(0),w=\" \".charCodeAt(0),d=\"\\f\".charCodeAt(0),_=\"\t\".charCodeAt(0),S=\"\\r\".charCodeAt(0),x=\"@\".charCodeAt(0),N=\"e\".charCodeAt(0),P=\"E\".charCodeAt(0),W=\"0\".charCodeAt(0),U=\"9\".charCodeAt(0),H=\"u\".charCodeAt(0),D=\"U\".charCodeAt(0),$=/[ \\n\\t\\r\\{\\(\\)'\"\\\\;,/]/g,B=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\+\\|~>,\\[\\]\\\\]|\\/(?=\\*)/g,O=/[ \\n\\t\\r\\(\\)\\{\\}\\*:;@!&'\"\\-\\+\\|~>,\\[\\]\\\\]|\\//g,j=/^[a-z0-9]/i,C=/^[a-f0-9?\\-]/i,I=sf(),X=of();n.exports=function(Q,K){K=K||{};let J=[],M=Q.valueOf(),Y=M.length,G=-1,E=1,k=0,b=0,L=null,q,T,F,z,re,ne,ce,fe,te,ie,ae,se;function le(Ze){let _e=I.format(\"Unclosed %s at line: %d, column: %d, token: %d\",Ze,E,k-G,k);throw new X(_e)}function pe(){let Ze=I.format(\"Syntax error at line: %d, column: %d, token: %d\",E,k-G,k);throw new X(Ze)}for(;k0&&J[J.length-1][0]===\"word\"&&J[J.length-1][1]===\"url\",J.push([\"(\",\"(\",E,k-G,E,T-G,k]);break;case f:b--,L=L&&b>0,J.push([\")\",\")\",E,k-G,E,T-G,k]);break;case p:case h:F=q===p?\"'\":'\"',T=k;do for(ie=!1,T=M.indexOf(F,T+1),T===-1&&le(\"quote\",F),ae=T;M.charCodeAt(ae-1)===g;)ae-=1,ie=!ie;while(ie);J.push([\"string\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case x:$.lastIndex=k+1,$.test(M),$.lastIndex===0?T=M.length-1:T=$.lastIndex-2,J.push([\"atword\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case g:T=k,q=M.charCodeAt(T+1),ce&&q!==c&&q!==w&&q!==y&&q!==_&&q!==S&&q!==d&&(T+=1),J.push([\"word\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T;break;case m:case l:case s:T=k+1,se=M.slice(k+1,T+1);let Ze=M.slice(k-1,k);if(q===l&&se.charCodeAt(0)===l){T++,J.push([\"word\",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;break}J.push([\"operator\",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;break;default:if(q===c&&(M.charCodeAt(k+1)===s||K.loose&&!L&&M.charCodeAt(k+1)===c)){if(M.charCodeAt(k+1)===s)T=M.indexOf(\"*/\",k+2)+1,T===0&&le(\"comment\",\"*/\");else{let Be=M.indexOf(`\n`,k+2);T=Be!==-1?Be-1:Y}ne=M.slice(k,T+1),z=ne.split(`\n`),re=z.length-1,re>0?(fe=E+re,te=T-z[re].length):(fe=E,te=G),J.push([\"comment\",ne,E,k-G,fe,T-te,k]),G=te,E=fe,k=T}else if(q===v&&!j.test(M.slice(k+1,k+2)))T=k+1,J.push([\"#\",M.slice(k,T),E,k-G,E,T-G,k]),k=T-1;else if((q===H||q===D)&&M.charCodeAt(k+1)===m){T=k+2;do T+=1,q=M.charCodeAt(T);while(T=W&&q<=U&&(_e=O),_e.lastIndex=k+1,_e.test(M),_e.lastIndex===0?T=M.length-1:T=_e.lastIndex-2,_e===O||q===t){let Be=M.charCodeAt(T),Bt=M.charCodeAt(T+1),Ft=M.charCodeAt(T+2);(Be===N||Be===P)&&(Bt===l||Bt===m)&&Ft>=W&&Ft<=U&&(O.lastIndex=T+2,O.test(M),O.lastIndex===0?T=M.length-1:T=O.lastIndex-2)}J.push([\"word\",M.slice(k,T+1),E,k-G,E,T-G,k]),k=T}break}k++}return J}}}),To=R({\"node_modules/flatten/index.js\"(e,n){A(),n.exports=function(a,o){if(o=typeof o==\"number\"?o:1/0,!o)return Array.isArray(a)?a.map(function(p){return p}):a;return f(a,1);function f(p,h){return p.reduce(function(g,c){return Array.isArray(c)&&hx-N)}n.exports=class{constructor(x,N){let P={loose:!1};this.cache=[],this.input=x,this.options=Object.assign({},P,N),this.position=0,this.unbalanced=0,this.root=new i;let W=new a;this.root.append(W),this.current=W,this.tokens=m(x,this.options)}parse(){return this.loop()}colon(){let x=this.currToken;this.newNode(new f({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}comma(){let x=this.currToken;this.newNode(new p({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}comment(){let x=!1,N=this.currToken[1].replace(/\\/\\*|\\*\\//g,\"\"),P;this.options.loose&&N.startsWith(\"//\")&&(N=N.substring(2),x=!0),P=new h({value:N,inline:x,source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]}),this.newNode(P),this.position++}error(x,N){throw new d(x+\" at line: \".concat(N[2],\", column \").concat(N[3]))}loop(){for(;this.position0&&(this.current.type===\"func\"&&this.current.value===\"calc\"?this.prevToken[0]!==\"space\"&&this.prevToken[0]!==\"(\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]!==\"space\"&&this.nextToken[0]!==\"word\"?this.error(\"Syntax Error\",this.currToken):this.nextToken[0]===\"word\"&&this.current.last.type!==\"operator\"&&this.current.last.value!==\"(\"&&this.error(\"Syntax Error\",this.currToken):(this.nextToken[0]===\"space\"||this.nextToken[0]===\"operator\"||this.prevToken[0]===\"operator\")&&this.error(\"Syntax Error\",this.currToken)),this.options.loose){if((!this.current.nodes.length||this.current.last&&this.current.last.type===\"operator\")&&this.nextToken[0]===\"word\")return this.word()}else if(this.nextToken[0]===\"word\")return this.word()}return N=new t({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),this.position++,this.newNode(N)}parseTokens(){switch(this.currToken[0]){case\"space\":this.space();break;case\"colon\":this.colon();break;case\"comma\":this.comma();break;case\"comment\":this.comment();break;case\"(\":this.parenOpen();break;case\")\":this.parenClose();break;case\"atword\":case\"word\":this.word();break;case\"operator\":this.operator();break;case\"string\":this.string();break;case\"unicoderange\":this.unicodeRange();break;default:this.word();break}}parenOpen(){let x=1,N=this.position+1,P=this.currToken,W;for(;N=this.tokens.length-1&&!this.current.unbalanced)&&(this.current.unbalanced--,this.current.unbalanced<0&&this.error(\"Expected opening parenthesis\",x),!this.current.unbalanced&&this.cache.length&&(this.current=this.cache.pop()))}space(){let x=this.currToken;this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.raws.after+=x[1],this.position++):(this.spaces=x[1],this.position++)}unicodeRange(){let x=this.currToken;this.newNode(new l({value:x[1],source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6]})),this.position++}splitWord(){let x=this.nextToken,N=this.currToken[1],P=/^[\\+\\-]?((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\+\\-]?\\d+)?/,W=/^(?!\\#([a-z0-9]+))[\\#\\{\\}]/gi,U,H;if(!W.test(N))for(;x&&x[0]===\"word\";)this.position++,N+=this.currToken[1],x=this.nextToken;U=y(N,\"@\"),H=_(w(v([[0],U]))),H.forEach((D,$)=>{let B=H[$+1]||N.length,O=N.slice(D,B),j;if(~U.indexOf(D))j=new o({value:O.slice(1),source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$]});else if(P.test(this.currToken[1])){let C=O.replace(P,\"\");j=new c({value:O.replace(C,\"\"),source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$],unit:C})}else j=new(x&&x[0]===\"(\"?g:s)({value:O,source:{start:{line:this.currToken[2],column:this.currToken[3]+D},end:{line:this.currToken[4],column:this.currToken[3]+(B-1)}},sourceIndex:this.currToken[6]+H[$]}),j.type===\"word\"?(j.isHex=/^#(.+)/.test(O),j.isColor=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(O)):this.cache.push(this.current);this.newNode(j)}),this.position++}string(){let x=this.currToken,N=this.currToken[1],P=/^(\\\"|\\')/,W=P.test(N),U=\"\",H;W&&(U=N.match(P)[0],N=N.slice(1,N.length-1)),H=new u({value:N,source:{start:{line:x[2],column:x[3]},end:{line:x[4],column:x[5]}},sourceIndex:x[6],quoted:W}),H.raws.quote=U,this.newNode(H),this.position++}word(){return this.splitWord()}newNode(x){return this.spaces&&(x.raws.before+=this.spaces,this.spaces=\"\"),this.current.append(x)}get currToken(){return this.tokens[this.position]}get nextToken(){return this.tokens[this.position+1]}get prevToken(){return this.tokens[this.position-1]}}}}),lf=R({\"node_modules/postcss-values-parser/lib/index.js\"(e,n){\"use strict\";A();var i=cf(),a=Qs(),o=Ys(),f=Xs(),p=Zs(),h=eo(),g=ro(),c=to(),t=no(),r=io(),u=oo(),s=Ks(),l=so(),m=function(v,y){return new i(v,y)};m.atword=function(v){return new a(v)},m.colon=function(v){return new o(Object.assign({value:\":\"},v))},m.comma=function(v){return new f(Object.assign({value:\",\"},v))},m.comment=function(v){return new p(v)},m.func=function(v){return new h(v)},m.number=function(v){return new g(v)},m.operator=function(v){return new c(v)},m.paren=function(v){return new t(Object.assign({value:\"(\"},v))},m.string=function(v){return new r(Object.assign({quote:\"'\"},v))},m.value=function(v){return new s(v)},m.word=function(v){return new l(v)},m.unicodeRange=function(v){return new u(v)},n.exports=m}}),ze=R({\"node_modules/postcss-selector-parser/dist/selectors/node.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(p){return typeof p}:function(p){return p&&typeof Symbol==\"function\"&&p.constructor===Symbol&&p!==Symbol.prototype?\"symbol\":typeof p};function a(p,h){if(!(p instanceof h))throw new TypeError(\"Cannot call a class as a function\")}var o=function p(h,g){if((typeof h>\"u\"?\"undefined\":i(h))!==\"object\")return h;var c=new h.constructor;for(var t in h)if(!!h.hasOwnProperty(t)){var r=h[t],u=typeof r>\"u\"?\"undefined\":i(r);t===\"parent\"&&u===\"object\"?g&&(c[t]=g):r instanceof Array?c[t]=r.map(function(s){return p(s,c)}):c[t]=p(r,c)}return c},f=function(){function p(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};a(this,p);for(var g in h)this[g]=h[g];var c=h.spaces;c=c===void 0?{}:c;var t=c.before,r=t===void 0?\"\":t,u=c.after,s=u===void 0?\"\":u;this.spaces={before:r,after:s}}return p.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},p.prototype.replaceWith=function(){if(this.parent){for(var g in arguments)this.parent.insertBefore(this,arguments[g]);this.remove()}return this},p.prototype.next=function(){return this.parent.at(this.parent.index(this)+1)},p.prototype.prev=function(){return this.parent.at(this.parent.index(this)-1)},p.prototype.clone=function(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=o(this);for(var t in g)c[t]=g[t];return c},p.prototype.toString=function(){return[this.spaces.before,String(this.value),this.spaces.after].join(\"\")},p}();e.default=f,n.exports=e.default}}),oe=R({\"node_modules/postcss-selector-parser/dist/selectors/types.js\"(e){\"use strict\";A(),e.__esModule=!0;var n=e.TAG=\"tag\",i=e.STRING=\"string\",a=e.SELECTOR=\"selector\",o=e.ROOT=\"root\",f=e.PSEUDO=\"pseudo\",p=e.NESTING=\"nesting\",h=e.ID=\"id\",g=e.COMMENT=\"comment\",c=e.COMBINATOR=\"combinator\",t=e.CLASS=\"class\",r=e.ATTRIBUTE=\"attribute\",u=e.UNIVERSAL=\"universal\"}}),Ct=R({\"node_modules/postcss-selector-parser/dist/selectors/container.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=function(){function s(l,m){for(var v=0;v=v&&(this.indexes[w]=y-1);return this},l.prototype.removeAll=function(){for(var w=this.nodes,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;_.parent=void 0}return this.nodes=[],this},l.prototype.empty=function(){return this.removeAll()},l.prototype.insertAfter=function(v,y){var w=this.index(v);this.nodes.splice(w+1,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},l.prototype.insertBefore=function(v,y){var w=this.index(v);this.nodes.splice(w,0,y);var d=void 0;for(var _ in this.indexes)d=this.indexes[_],w<=d&&(this.indexes[_]=d+this.nodes.length);return this},l.prototype.each=function(v){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var y=this.lastEach;if(this.indexes[y]=0,!!this.length){for(var w=void 0,d=void 0;this.indexes[y],\\[\\]\\\\]|\\/(?=\\*)/g;function H(D){for(var $=[],B=D.css.valueOf(),O=void 0,j=void 0,C=void 0,I=void 0,X=void 0,Z=void 0,Q=void 0,K=void 0,J=void 0,M=void 0,Y=void 0,G=B.length,E=-1,k=1,b=0,L=function(T,F){if(D.safe)B+=F,j=B.length-1;else throw D.error(\"Unclosed \"+T,k,b-E,b)};b0?(K=k+X,J=j-I[X].length):(K=k,J=E),$.push([\"comment\",Z,k,b-E,K,j-J,b]),E=J,k=K,b=j):(U.lastIndex=b+1,U.test(B),U.lastIndex===0?j=B.length-1:j=U.lastIndex-2,$.push([\"word\",B.slice(b,j+1),k,b-E,k,j-E,b]),b=j);break}b++}return $}n.exports=e.default}}),hf=R({\"node_modules/postcss-selector-parser/dist/parser.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=function(){function E(k,b){for(var L=0;L1?(F[0]===\"\"&&(F[0]=!0),z.attribute=this.parseValue(F[2]),z.namespace=this.parseNamespace(F[0])):z.attribute=this.parseValue(T[0]),L=new U.default(z),T[2]){var re=T[2].split(/(\\s+i\\s*?)$/),ne=re[0].trim();L.value=this.lossy?ne:re[0],re[1]&&(L.insensitive=!0,this.lossy||(L.raws.insensitive=re[1])),L.quoted=ne[0]===\"'\"||ne[0]==='\"',L.raws.unquoted=L.quoted?ne.slice(1,-1):ne}this.newNode(L),this.position++},E.prototype.combinator=function(){if(this.currToken[1]===\"|\")return this.namespace();for(var b=new B.default({value:\"\",source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]});this.position1&&b.nextToken&&b.nextToken[0]===\"(\"&&b.error(\"Misplaced parenthesis.\")})}else this.error('Unexpected \"'+this.currToken[0]+'\" found.')},E.prototype.space=function(){var b=this.currToken;this.position===0||this.prevToken[0]===\",\"||this.prevToken[0]===\"(\"?(this.spaces=this.parseSpace(b[1]),this.position++):this.position===this.tokens.length-1||this.nextToken[0]===\",\"||this.nextToken[0]===\")\"?(this.current.last.spaces.after=this.parseSpace(b[1]),this.position++):this.combinator()},E.prototype.string=function(){var b=this.currToken;this.newNode(new x.default({value:this.currToken[1],source:{start:{line:b[2],column:b[3]},end:{line:b[4],column:b[5]}},sourceIndex:b[6]})),this.position++},E.prototype.universal=function(b){var L=this.nextToken;if(L&&L[1]===\"|\")return this.position++,this.namespace();this.newNode(new D.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),b),this.position++},E.prototype.splitWord=function(b,L){for(var q=this,T=this.nextToken,F=this.currToken[1];T&&T[0]===\"word\";){this.position++;var z=this.currToken[1];if(F+=z,z.lastIndexOf(\"\\\\\")===z.length-1){var re=this.nextToken;re&&re[0]===\"space\"&&(F+=this.parseSpace(re[1],\" \"),this.position++)}T=this.nextToken}var ne=(0,p.default)(F,\".\"),ce=(0,p.default)(F,\"#\"),fe=(0,p.default)(F,\"#{\");fe.length&&(ce=ce.filter(function(ie){return!~fe.indexOf(ie)}));var te=(0,I.default)((0,g.default)((0,o.default)([[0],ne,ce])));te.forEach(function(ie,ae){var se=te[ae+1]||F.length,le=F.slice(ie,se);if(ae===0&&L)return L.call(q,le,te.length);var pe=void 0;~ne.indexOf(ie)?pe=new l.default({value:le.slice(1),source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}):~ce.indexOf(ie)?pe=new w.default({value:le.slice(1),source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}):pe=new _.default({value:le,source:{start:{line:q.currToken[2],column:q.currToken[3]+ie},end:{line:q.currToken[4],column:q.currToken[3]+(se-1)}},sourceIndex:q.currToken[6]+te[ae]}),q.newNode(pe,b)}),this.position++},E.prototype.word=function(b){var L=this.nextToken;return L&&L[1]===\"|\"?(this.position++,this.namespace()):this.splitWord(b)},E.prototype.loop=function(){for(;this.position1&&arguments[1]!==void 0?arguments[1]:{},u=new o.default({css:t,error:function(l){throw new Error(l)},options:r});return this.res=u,this.func(u),this},i(g,[{key:\"result\",get:function(){return String(this.res)}}]),g}();e.default=h,n.exports=e.default}}),vf=R({\"node_modules/postcss-selector-parser/dist/index.js\"(e,n){\"use strict\";A(),e.__esModule=!0;var i=df(),a=O(i),o=Do(),f=O(o),p=Ro(),h=O(p),g=zo(),c=O(g),t=Io(),r=O(t),u=Co(),s=O(u),l=Bo(),m=O(l),v=Mo(),y=O(v),w=Ao(),d=O(w),_=Po(),S=O(_),x=jo(),N=O(x),P=No(),W=O(P),U=Lo(),H=O(U),D=oe(),$=B(D);function B(C){if(C&&C.__esModule)return C;var I={};if(C!=null)for(var X in C)Object.prototype.hasOwnProperty.call(C,X)&&(I[X]=C[X]);return I.default=C,I}function O(C){return C&&C.__esModule?C:{default:C}}var j=function(I){return new a.default(I)};j.attribute=function(C){return new f.default(C)},j.className=function(C){return new h.default(C)},j.combinator=function(C){return new c.default(C)},j.comment=function(C){return new r.default(C)},j.id=function(C){return new s.default(C)},j.nesting=function(C){return new m.default(C)},j.pseudo=function(C){return new y.default(C)},j.root=function(C){return new d.default(C)},j.selector=function(C){return new S.default(C)},j.string=function(C){return new N.default(C)},j.tag=function(C){return new W.default(C)},j.universal=function(C){return new H.default(C)},Object.keys($).forEach(function(C){C!==\"__esModule\"&&(j[C]=$[C])}),e.default=j,n.exports=e.default}}),Fo=R({\"node_modules/postcss-media-query-parser/dist/nodes/Node.js\"(e){\"use strict\";A(),Object.defineProperty(e,\"__esModule\",{value:!0});function n(i){this.after=i.after,this.before=i.before,this.type=i.type,this.value=i.value,this.sourceIndex=i.sourceIndex}e.default=n}}),Uo=R({\"node_modules/postcss-media-query-parser/dist/nodes/Container.js\"(e){\"use strict\";A(),Object.defineProperty(e,\"__esModule\",{value:!0});var n=Fo(),i=a(n);function a(f){return f&&f.__esModule?f:{default:f}}function o(f){var p=this;this.constructor(f),this.nodes=f.nodes,this.after===void 0&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:\"\"),this.before===void 0&&(this.before=this.nodes.length>0?this.nodes[0].before:\"\"),this.sourceIndex===void 0&&(this.sourceIndex=this.before.length),this.nodes.forEach(function(h){h.parent=p})}o.prototype=Object.create(i.default.prototype),o.constructor=i.default,o.prototype.walk=function(p,h){for(var g=typeof p==\"string\"||p instanceof RegExp,c=g?h:p,t=typeof p==\"string\"?new RegExp(p):p,r=0;r0&&(r[w-1].after=l.before),l.type===void 0){if(w>0){if(r[w-1].type===\"media-feature-expression\"){l.type=\"keyword\";continue}if(r[w-1].value===\"not\"||r[w-1].value===\"only\"){l.type=\"media-type\";continue}if(r[w-1].value===\"and\"){l.type=\"media-feature-expression\";continue}r[w-1].type===\"media-type\"&&(r[w+1]?l.type=r[w+1].type===\"media-feature-expression\"?\"keyword\":\"media-feature-expression\":l.type=\"media-feature-expression\")}if(w===0){if(!r[w+1]){l.type=\"media-type\";continue}if(r[w+1]&&(r[w+1].type===\"media-feature-expression\"||r[w+1].type===\"keyword\")){l.type=\"media-type\";continue}if(r[w+2]){if(r[w+2].type===\"media-feature-expression\"){l.type=\"media-type\",r[w+1].type=\"keyword\";continue}if(r[w+2].type===\"keyword\"){l.type=\"keyword\",r[w+1].type=\"media-type\";continue}}if(r[w+3]&&r[w+3].type===\"media-feature-expression\"){l.type=\"keyword\",r[w+1].type=\"media-type\",r[w+2].type=\"keyword\";continue}}}return r}function g(c){var t=[],r=0,u=0,s=/^(\\s*)url\\s*\\(/.exec(c);if(s!==null){for(var l=s[0].length,m=1;m>0;){var v=c[l];v===\"(\"&&m++,v===\")\"&&m--,l++}t.unshift(new i.default({type:\"url\",value:c.substring(0,l).trim(),sourceIndex:s[1].length,before:s[1],after:/^(\\s*)/.exec(c.substring(l))[1]})),r=l}for(var y=r;yJo,default:()=>Qo,delimiter:()=>_t,dirname:()=>Ho,extname:()=>Ko,isAbsolute:()=>jt,join:()=>Vo,normalize:()=>Nt,relative:()=>Go,resolve:()=>mr,sep:()=>wt});function $o(e,n){for(var i=0,a=e.length-1;a>=0;a--){var o=e[a];o===\".\"?e.splice(a,1):o===\"..\"?(e.splice(a,1),i++):i&&(e.splice(a,1),i--)}if(n)for(;i--;i)e.unshift(\"..\");return e}function mr(){for(var e=\"\",n=!1,i=arguments.length-1;i>=-1&&!n;i--){var a=i>=0?arguments[i]:\"/\";if(typeof a!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!a)continue;e=a+\"/\"+e,n=a.charAt(0)===\"/\"}return e=$o(Mt(e.split(\"/\"),function(o){return!!o}),!n).join(\"/\"),(n?\"/\":\"\")+e||\".\"}function Nt(e){var n=jt(e),i=Yo(e,-1)===\"/\";return e=$o(Mt(e.split(\"/\"),function(a){return!!a}),!n).join(\"/\"),!e&&!n&&(e=\".\"),e&&i&&(e+=\"/\"),(n?\"/\":\"\")+e}function jt(e){return e.charAt(0)===\"/\"}function Vo(){var e=Array.prototype.slice.call(arguments,0);return Nt(Mt(e,function(n,i){if(typeof n!=\"string\")throw new TypeError(\"Arguments to path.join must be strings\");return n}).join(\"/\"))}function Go(e,n){e=mr(e).substr(1),n=mr(n).substr(1);function i(c){for(var t=0;t=0&&c[r]===\"\";r--);return t>r?[]:c.slice(t,r-t+1)}for(var a=i(e.split(\"/\")),o=i(n.split(\"/\")),f=Math.min(a.length,o.length),p=f,h=0;h\"u\"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==\"function\")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function t(m){return Function.toString.call(m).indexOf(\"[native code]\")!==-1}function r(m,v){return r=Object.setPrototypeOf||function(w,d){return w.__proto__=d,w},r(m,v)}function u(m){return u=Object.setPrototypeOf?Object.getPrototypeOf:function(y){return y.__proto__||Object.getPrototypeOf(y)},u(m)}var s=function(m){p(v,m);function v(w,d,_,S,x,N){var P;return P=m.call(this,w)||this,P.name=\"CssSyntaxError\",P.reason=w,x&&(P.file=x),S&&(P.source=S),N&&(P.plugin=N),typeof d<\"u\"&&typeof _<\"u\"&&(P.line=d,P.column=_),P.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(f(P),v),P}var y=v.prototype;return y.setMessage=function(){this.message=this.plugin?this.plugin+\": \":\"\",this.message+=this.file?this.file:\"\",typeof this.line<\"u\"&&(this.message+=\":\"+this.line+\":\"+this.column),this.message+=\": \"+this.reason},y.showSourceCode=function(d){var _=this;if(!this.source)return\"\";var S=this.source;a.default&&(typeof d>\"u\"&&(d=i.default.isColorSupported),d&&(S=(0,a.default)(S)));var x=S.split(/\\r?\\n/),N=Math.max(this.line-3,0),P=Math.min(this.line+2,x.length),W=String(P).length;function U(D){return d&&i.default.red?i.default.red(i.default.bold(D)):D}function H(D){return d&&i.default.gray?i.default.gray(D):D}return x.slice(N,P).map(function(D,$){var B=N+1+$,O=\" \"+(\" \"+B).slice(-W)+\" | \";if(B===_.line){var j=H(O.replace(/\\d/g,\" \"))+D.slice(0,_.column-1).replace(/[^\\t]/g,\" \");return U(\">\")+H(O)+D+`\n `+j+U(\"^\")}return\" \"+H(O)+D}).join(`\n`)},y.toString=function(){var d=this.showSourceCode();return d&&(d=`\n\n`+d+`\n`),this.name+\": \"+this.message+d},v}(h(Error)),l=s;e.default=l,n.exports=e.default}}),xf=R({\"node_modules/postcss/lib/previous-map.js\"(e,n){A(),n.exports=class{}}}),_r=R({\"node_modules/postcss/lib/input.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=f(wf()),a=f(Xo()),o=f(xf());function f(r){return r&&r.__esModule?r:{default:r}}function p(r,u){for(var s=0;s\"u\"||typeof s==\"object\"&&!s.toString)throw new Error(\"PostCSS received \"+s+\" instead of CSS string\");this.css=s.toString(),this.css[0]===\"\\uFEFF\"||this.css[0]===\"\\uFFFE\"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,l.from&&(/^\\w+:\\/\\//.test(l.from)||i.default.isAbsolute(l.from)?this.file=l.from:this.file=i.default.resolve(l.from));var m=new o.default(this.css,l);if(m.text){this.map=m;var v=m.consumer().file;!this.file&&v&&(this.file=this.mapResolve(v))}this.file||(g+=1,this.id=\"\"),this.map&&(this.map.file=this.from)}var u=r.prototype;return u.error=function(l,m,v,y){y===void 0&&(y={});var w,d=this.origin(m,v);return d?w=new a.default(l,d.line,d.column,d.source,d.file,y.plugin):w=new a.default(l,m,v,this.css,this.file,y.plugin),w.input={line:m,column:v,source:this.css},this.file&&(w.input.file=this.file),w},u.origin=function(l,m){if(!this.map)return!1;var v=this.map.consumer(),y=v.originalPositionFor({line:l,column:m});if(!y.source)return!1;var w={file:this.mapResolve(y.source),line:y.line,column:y.column},d=v.sourceContentFor(y.source);return d&&(w.source=d),w},u.mapResolve=function(l){return/^\\w+:\\/\\//.test(l)?l:i.default.resolve(this.map.consumer().sourceRoot||\".\",l)},h(r,[{key:\"from\",get:function(){return this.file||this.id}}]),r}(),t=c;e.default=t,n.exports=e.default}}),br=R({\"node_modules/postcss/lib/stringifier.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i={colon:\": \",indent:\" \",beforeDecl:`\n`,beforeRule:`\n`,beforeOpen:\" \",beforeClose:`\n`,beforeComment:`\n`,after:`\n`,emptyBody:\"\",commentLeft:\" \",commentRight:\" \",semicolon:!1};function a(p){return p[0].toUpperCase()+p.slice(1)}var o=function(){function p(g){this.builder=g}var h=p.prototype;return h.stringify=function(c,t){this[c.type](c,t)},h.root=function(c){this.body(c),c.raws.after&&this.builder(c.raws.after)},h.comment=function(c){var t=this.raw(c,\"left\",\"commentLeft\"),r=this.raw(c,\"right\",\"commentRight\");this.builder(\"/*\"+t+c.text+r+\"*/\",c)},h.decl=function(c,t){var r=this.raw(c,\"between\",\"colon\"),u=c.prop+r+this.rawValue(c,\"value\");c.important&&(u+=c.raws.important||\" !important\"),t&&(u+=\";\"),this.builder(u,c)},h.rule=function(c){this.block(c,this.rawValue(c,\"selector\")),c.raws.ownSemicolon&&this.builder(c.raws.ownSemicolon,c,\"end\")},h.atrule=function(c,t){var r=\"@\"+c.name,u=c.params?this.rawValue(c,\"params\"):\"\";if(typeof c.raws.afterName<\"u\"?r+=c.raws.afterName:u&&(r+=\" \"),c.nodes)this.block(c,r+u);else{var s=(c.raws.between||\"\")+(t?\";\":\"\");this.builder(r+u+s,c)}},h.body=function(c){for(var t=c.nodes.length-1;t>0&&c.nodes[t].type===\"comment\";)t-=1;for(var r=this.raw(c,\"semicolon\"),u=0;u\"u\"&&(u=i[r]),l.rawCache[r]=u,u},h.rawSemicolon=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length&&r.last.type===\"decl\"&&(t=r.raws.semicolon,typeof t<\"u\"))return!1}),t},h.rawEmptyBody=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length===0&&(t=r.raws.after,typeof t<\"u\"))return!1}),t},h.rawIndent=function(c){if(c.raws.indent)return c.raws.indent;var t;return c.walk(function(r){var u=r.parent;if(u&&u!==c&&u.parent&&u.parent===c&&typeof r.raws.before<\"u\"){var s=r.raws.before.split(`\n`);return t=s[s.length-1],t=t.replace(/[^\\s]/g,\"\"),!1}}),t},h.rawBeforeComment=function(c,t){var r;return c.walkComments(function(u){if(typeof u.raws.before<\"u\")return r=u.raws.before,r.indexOf(`\n`)!==-1&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(t,null,\"beforeDecl\"):r&&(r=r.replace(/[^\\s]/g,\"\")),r},h.rawBeforeDecl=function(c,t){var r;return c.walkDecls(function(u){if(typeof u.raws.before<\"u\")return r=u.raws.before,r.indexOf(`\n`)!==-1&&(r=r.replace(/[^\\n]+$/,\"\")),!1}),typeof r>\"u\"?r=this.raw(t,null,\"beforeRule\"):r&&(r=r.replace(/[^\\s]/g,\"\")),r},h.rawBeforeRule=function(c){var t;return c.walk(function(r){if(r.nodes&&(r.parent!==c||c.first!==r)&&typeof r.raws.before<\"u\")return t=r.raws.before,t.indexOf(`\n`)!==-1&&(t=t.replace(/[^\\n]+$/,\"\")),!1}),t&&(t=t.replace(/[^\\s]/g,\"\")),t},h.rawBeforeClose=function(c){var t;return c.walk(function(r){if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<\"u\")return t=r.raws.after,t.indexOf(`\n`)!==-1&&(t=t.replace(/[^\\n]+$/,\"\")),!1}),t&&(t=t.replace(/[^\\s]/g,\"\")),t},h.rawBeforeOpen=function(c){var t;return c.walk(function(r){if(r.type!==\"decl\"&&(t=r.raws.between,typeof t<\"u\"))return!1}),t},h.rawColon=function(c){var t;return c.walkDecls(function(r){if(typeof r.raws.between<\"u\")return t=r.raws.between.replace(/[^\\s:]/g,\"\"),!1}),t},h.beforeAfter=function(c,t){var r;c.type===\"decl\"?r=this.raw(c,null,\"beforeDecl\"):c.type===\"comment\"?r=this.raw(c,null,\"beforeComment\"):t===\"before\"?r=this.raw(c,null,\"beforeRule\"):r=this.raw(c,null,\"beforeClose\");for(var u=c.parent,s=0;u&&u.type!==\"root\";)s+=1,u=u.parent;if(r.indexOf(`\n`)!==-1){var l=this.raw(c,null,\"indent\");if(l.length)for(var m=0;m=k}function ce(te){if(F.length)return F.pop();if(!(q>=k)){var ie=te?te.ignoreUnclosed:!1;switch(B=D.charCodeAt(q),(B===p||B===g||B===t&&D.charCodeAt(q+1)!==p)&&(b=q,L+=1),B){case p:case h:case c:case t:case g:O=q;do O+=1,B=D.charCodeAt(O),B===p&&(b=O,L+=1);while(B===h||B===p||B===c||B===t||B===g);E=[\"space\",D.slice(q,O)],q=O-1;break;case r:case u:case m:case v:case d:case y:case l:var ae=String.fromCharCode(B);E=[ae,ae,L,q-b];break;case s:if(Y=T.length?T.pop()[1]:\"\",G=D.charCodeAt(q+1),Y===\"url\"&&G!==i&&G!==a&&G!==h&&G!==p&&G!==c&&G!==g&&G!==t){O=q;do{if(J=!1,O=D.indexOf(\")\",O+1),O===-1)if($||ie){O=q;break}else re(\"bracket\");for(M=O;D.charCodeAt(M-1)===o;)M-=1,J=!J}while(J);E=[\"brackets\",D.slice(q,O+1),L,q-b,L,O-b],q=O}else O=D.indexOf(\")\",q+1),X=D.slice(q,O+1),O===-1||N.test(X)?E=[\"(\",\"(\",L,q-b]:(E=[\"brackets\",X,L,q-b,L,O-b],q=O);break;case i:case a:j=B===i?\"'\":'\"',O=q;do{if(J=!1,O=D.indexOf(j,O+1),O===-1)if($||ie){O=q+1;break}else re(\"string\");for(M=O;D.charCodeAt(M-1)===o;)M-=1,J=!J}while(J);X=D.slice(q,O+1),C=X.split(`\n`),I=C.length-1,I>0?(Q=L+I,K=O-C[I].length):(Q=L,K=b),E=[\"string\",D.slice(q,O+1),L,q-b,Q,O-K],b=K,L=Q,q=O;break;case _:S.lastIndex=q+1,S.test(D),S.lastIndex===0?O=D.length-1:O=S.lastIndex-2,E=[\"at-word\",D.slice(q,O+1),L,q-b,L,O-b],q=O;break;case o:for(O=q,Z=!0;D.charCodeAt(O+1)===o;)O+=1,Z=!Z;if(B=D.charCodeAt(O+1),Z&&B!==f&&B!==h&&B!==p&&B!==c&&B!==t&&B!==g&&(O+=1,P.test(D.charAt(O)))){for(;P.test(D.charAt(O+1));)O+=1;D.charCodeAt(O+1)===h&&(O+=1)}E=[\"word\",D.slice(q,O+1),L,q-b,L,O-b],q=O;break;default:B===f&&D.charCodeAt(q+1)===w?(O=D.indexOf(\"*/\",q+2)+1,O===0&&($||ie?O=D.length:re(\"comment\")),X=D.slice(q,O+1),C=X.split(`\n`),I=C.length-1,I>0?(Q=L+I,K=O-C[I].length):(Q=L,K=b),E=[\"comment\",X,L,q-b,Q,O-K],b=K,L=Q,q=O):(x.lastIndex=q+1,x.test(D),x.lastIndex===0?O=D.length-1:O=x.lastIndex-2,E=[\"word\",D.slice(q,O+1),L,q-b,L,O-b],T.push(E),q=O);break}return q++,E}}function fe(te){F.push(te)}return{back:fe,nextToken:ce,endOfFile:ne,position:z}}n.exports=e.default}}),ra=R({\"node_modules/postcss/lib/parse.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=o(zt()),a=o(_r());function o(h){return h&&h.__esModule?h:{default:h}}function f(h,g){var c=new a.default(h,g),t=new i.default(c);try{t.parse()}catch(r){throw r}return t.root}var p=f;e.default=p,n.exports=e.default}}),kf=R({\"node_modules/postcss/lib/list.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i={split:function(f,p,h){for(var g=[],c=\"\",t=!1,r=0,u=!1,s=!1,l=0;l0&&(r-=1):r===0&&p.indexOf(m)!==-1&&(t=!0),t?(c!==\"\"&&g.push(c.trim()),c=\"\",t=!1):c+=m}return(h||c!==\"\")&&g.push(c.trim()),g},space:function(f){var p=[\" \",`\n`,\"\t\"];return i.split(f,p)},comma:function(f){return i.split(f,[\",\"],!0)}},a=i;e.default=a,n.exports=e.default}}),ta=R({\"node_modules/postcss/lib/rule.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=o(kr()),a=o(kf());function o(t){return t&&t.__esModule?t:{default:t}}function f(t,r){for(var u=0;u\"u\"||m[Symbol.iterator]==null){if(Array.isArray(m)||(y=h(m))||v&&m&&typeof m.length==\"number\"){y&&(m=y);var w=0;return function(){return w>=m.length?{done:!0}:{done:!1,value:m[w++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return y=m[Symbol.iterator](),y.next.bind(y)}function h(m,v){if(!!m){if(typeof m==\"string\")return g(m,v);var y=Object.prototype.toString.call(m).slice(8,-1);if(y===\"Object\"&&m.constructor&&(y=m.constructor.name),y===\"Map\"||y===\"Set\")return Array.from(m);if(y===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return g(m,v)}}function g(m,v){(v==null||v>m.length)&&(v=m.length);for(var y=0,w=new Array(v);y=d&&(this.indexes[S]=_-1);return this},y.removeAll=function(){for(var d=p(this.nodes),_;!(_=d()).done;){var S=_.value;S.parent=void 0}return this.nodes=[],this},y.replaceValues=function(d,_,S){return S||(S=_,_={}),this.walkDecls(function(x){_.props&&_.props.indexOf(x.prop)===-1||_.fast&&x.value.indexOf(_.fast)===-1||(x.value=x.value.replace(d,S))}),this},y.every=function(d){return this.nodes.every(d)},y.some=function(d){return this.nodes.some(d)},y.index=function(d){return typeof d==\"number\"?d:this.nodes.indexOf(d)},y.normalize=function(d,_){var S=this;if(typeof d==\"string\"){var x=ra();d=u(x(d).nodes)}else if(Array.isArray(d)){d=d.slice(0);for(var N=p(d),P;!(P=N()).done;){var W=P.value;W.parent&&W.parent.removeChild(W,\"ignore\")}}else if(d.type===\"root\"){d=d.nodes.slice(0);for(var U=p(d),H;!(H=U()).done;){var D=H.value;D.parent&&D.parent.removeChild(D,\"ignore\")}}else if(d.type)d=[d];else if(d.prop){if(typeof d.value>\"u\")throw new Error(\"Value field is missed in node creation\");typeof d.value!=\"string\"&&(d.value=String(d.value)),d=[new i.default(d)]}else if(d.selector){var $=ta();d=[new $(d)]}else if(d.name){var B=na();d=[new B(d)]}else if(d.text)d=[new a.default(d)];else throw new Error(\"Unknown node type in node creation\");var O=d.map(function(j){return j.parent&&j.parent.removeChild(j),typeof j.raws.before>\"u\"&&_&&typeof _.raws.before<\"u\"&&(j.raws.before=_.raws.before.replace(/[^\\s]/g,\"\")),j.parent=S,j});return O},t(v,[{key:\"first\",get:function(){if(!!this.nodes)return this.nodes[0]}},{key:\"last\",get:function(){if(!!this.nodes)return this.nodes[this.nodes.length-1]}}]),v}(o.default),l=s;e.default=l,n.exports=e.default}}),na=R({\"node_modules/postcss/lib/at-rule.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=a(kr());function a(h){return h&&h.__esModule?h:{default:h}}function o(h,g){h.prototype=Object.create(g.prototype),h.prototype.constructor=h,h.__proto__=g}var f=function(h){o(g,h);function g(t){var r;return r=h.call(this,t)||this,r.type=\"atrule\",r}var c=g.prototype;return c.append=function(){var r;this.nodes||(this.nodes=[]);for(var u=arguments.length,s=new Array(u),l=0;l\"u\"||v[Symbol.iterator]==null){if(Array.isArray(v)||(w=c(v))||y&&v&&typeof v.length==\"number\"){w&&(v=w);var d=0;return function(){return d>=v.length?{done:!0}:{done:!1,value:v[d++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return w=v[Symbol.iterator](),w.next.bind(w)}function c(v,y){if(!!v){if(typeof v==\"string\")return t(v,y);var w=Object.prototype.toString.call(v).slice(8,-1);if(w===\"Object\"&&v.constructor&&(w=v.constructor.name),w===\"Map\"||w===\"Set\")return Array.from(v);if(w===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w))return t(v,y)}}function t(v,y){(y==null||y>v.length)&&(y=v.length);for(var w=0,d=new Array(y);w\"u\"&&(_.map={}),_.map.inline||(_.map.inline=!1),_.map.prev=d.map);else{var x=p.default;_.syntax&&(x=_.syntax.parse),_.parser&&(x=_.parser),x.parse&&(x=x.parse);try{S=x(d,_)}catch(N){this.error=N}}this.result=new f.default(w,S,_)}var y=v.prototype;return y.warnings=function(){return this.sync().warnings()},y.toString=function(){return this.css},y.then=function(d,_){return this.async().then(d,_)},y.catch=function(d){return this.async().catch(d)},y.finally=function(d){return this.async().then(d,d)},y.handleError=function(d,_){try{if(this.error=d,d.name===\"CssSyntaxError\"&&!d.plugin)d.plugin=_.postcssPlugin,d.setMessage();else if(_.postcssVersion&&!1)var S,x,N,P,W}catch(U){console&&console.error&&console.error(U)}},y.asyncTick=function(d,_){var S=this;if(this.plugin>=this.processor.plugins.length)return this.processed=!0,d();try{var x=this.processor.plugins[this.plugin],N=this.run(x);this.plugin+=1,s(N)?N.then(function(){S.asyncTick(d,_)}).catch(function(P){S.handleError(P,x),S.processed=!0,_(P)}):this.asyncTick(d,_)}catch(P){this.processed=!0,_(P)}},y.async=function(){var d=this;return this.processed?new Promise(function(_,S){d.error?S(d.error):_(d.stringify())}):this.processing?this.processing:(this.processing=new Promise(function(_,S){if(d.error)return S(d.error);d.plugin=0,d.asyncTick(_,S)}).then(function(){return d.processed=!0,d.stringify()}),this.processing)},y.sync=function(){if(this.processed)return this.result;if(this.processed=!0,this.processing)throw new Error(\"Use process(css).then(cb) to work with async plugins\");if(this.error)throw this.error;for(var d=g(this.result.processor.plugins),_;!(_=d()).done;){var S=_.value,x=this.run(S);if(s(x))throw new Error(\"Use process(css).then(cb) to work with async plugins\")}return this.result},y.run=function(d){this.result.lastPlugin=d;try{return d(this.result.root,this.result)}catch(_){throw this.handleError(_,d),_}},y.stringify=function(){if(this.stringified)return this.result;this.stringified=!0,this.sync();var d=this.result.opts,_=a.default;d.syntax&&(_=d.syntax.stringify),d.stringifier&&(_=d.stringifier),_.stringify&&(_=_.stringify);var S=new i.default(_,this.result.root,this.result.opts),x=S.generate();return this.result.css=x[0],this.result.map=x[1],this.result},u(v,[{key:\"processor\",get:function(){return this.result.processor}},{key:\"opts\",get:function(){return this.result.opts}},{key:\"css\",get:function(){return this.stringify().css}},{key:\"content\",get:function(){return this.stringify().content}},{key:\"map\",get:function(){return this.stringify().map}},{key:\"root\",get:function(){return this.sync().root}},{key:\"messages\",get:function(){return this.sync().messages}}]),v}(),m=l;e.default=m,n.exports=e.default}}),qf=R({\"node_modules/postcss/lib/processor.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=a(ia());function a(c){return c&&c.__esModule?c:{default:c}}function o(c,t){var r;if(typeof Symbol>\"u\"||c[Symbol.iterator]==null){if(Array.isArray(c)||(r=f(c))||t&&c&&typeof c.length==\"number\"){r&&(c=r);var u=0;return function(){return u>=c.length?{done:!0}:{done:!1,value:c[u++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return r=c[Symbol.iterator](),r.next.bind(r)}function f(c,t){if(!!c){if(typeof c==\"string\")return p(c,t);var r=Object.prototype.toString.call(c).slice(8,-1);if(r===\"Object\"&&c.constructor&&(r=c.constructor.name),r===\"Map\"||r===\"Set\")return Array.from(c);if(r===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(c,t)}}function p(c,t){(t==null||t>c.length)&&(t=c.length);for(var r=0,u=new Array(t);r\"u\"||t[Symbol.iterator]==null){if(Array.isArray(t)||(u=f(t))||r&&t&&typeof t.length==\"number\"){u&&(t=u);var s=0;return function(){return s>=t.length?{done:!0}:{done:!1,value:t[s++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}return u=t[Symbol.iterator](),u.next.bind(u)}function f(t,r){if(!!t){if(typeof t==\"string\")return p(t,r);var u=Object.prototype.toString.call(t).slice(8,-1);if(u===\"Object\"&&t.constructor&&(u=t.constructor.name),u===\"Map\"||u===\"Set\")return Array.from(t);if(u===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u))return p(t,r)}}function p(t,r){(r==null||r>t.length)&&(r=t.length);for(var u=0,s=new Array(r);u1&&(this.nodes[1].raws.before=this.nodes[v].raws.before),t.prototype.removeChild.call(this,l)},u.normalize=function(l,m,v){var y=t.prototype.normalize.call(this,l);if(m){if(v===\"prepend\")this.nodes.length>1?m.raws.before=this.nodes[1].raws.before:delete m.raws.before;else if(this.first!==m)for(var w=o(y),d;!(d=w()).done;){var _=d.value;_.raws.before=m.raws.before}}return y},u.toResult=function(l){l===void 0&&(l={});var m=ia(),v=qf(),y=new m(new v,this,l);return y.stringify()},r}(i.default),c=g;e.default=c,n.exports=e.default}}),zt=R({\"node_modules/postcss/lib/parser.js\"(e,n){\"use strict\";A(),e.__esModule=!0,e.default=void 0;var i=g(ea()),a=g(Lt()),o=g(xr()),f=g(na()),p=g(Af()),h=g(ta());function g(t){return t&&t.__esModule?t:{default:t}}var c=function(){function t(u){this.input=u,this.root=new p.default,this.current=this.root,this.spaces=\"\",this.semicolon=!1,this.createTokenizer(),this.root.source={input:u,start:{line:1,column:1}}}var r=t.prototype;return r.createTokenizer=function(){this.tokenizer=(0,a.default)(this.input)},r.parse=function(){for(var s;!this.tokenizer.endOfFile();)switch(s=this.tokenizer.nextToken(),s[0]){case\"space\":this.spaces+=s[1];break;case\";\":this.freeSemicolon(s);break;case\"}\":this.end(s);break;case\"comment\":this.comment(s);break;case\"at-word\":this.atrule(s);break;case\"{\":this.emptyRule(s);break;default:this.other(s);break}this.endFile()},r.comment=function(s){var l=new o.default;this.init(l,s[2],s[3]),l.source.end={line:s[4],column:s[5]};var m=s[1].slice(2,-2);if(/^\\s*$/.test(m))l.text=\"\",l.raws.left=m,l.raws.right=\"\";else{var v=m.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);l.text=v[2],l.raws.left=v[1],l.raws.right=v[3]}},r.emptyRule=function(s){var l=new h.default;this.init(l,s[2],s[3]),l.selector=\"\",l.raws.between=\"\",this.current=l},r.other=function(s){for(var l=!1,m=null,v=!1,y=null,w=[],d=[],_=s;_;){if(m=_[0],d.push(_),m===\"(\"||m===\"[\")y||(y=_),w.push(m===\"(\"?\")\":\"]\");else if(w.length===0)if(m===\";\")if(v){this.decl(d);return}else break;else if(m===\"{\"){this.rule(d);return}else if(m===\"}\"){this.tokenizer.back(d.pop()),l=!0;break}else m===\":\"&&(v=!0);else m===w[w.length-1]&&(w.pop(),w.length===0&&(y=null));_=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(l=!0),w.length>0&&this.unclosedBracket(y),l&&v){for(;d.length&&(_=d[d.length-1][0],!(_!==\"space\"&&_!==\"comment\"));)this.tokenizer.back(d.pop());this.decl(d)}else this.unknownWord(d)},r.rule=function(s){s.pop();var l=new h.default;this.init(l,s[0][2],s[0][3]),l.raws.between=this.spacesAndCommentsFromEnd(s),this.raw(l,\"selector\",s),this.current=l},r.decl=function(s){var l=new i.default;this.init(l);var m=s[s.length-1];for(m[0]===\";\"&&(this.semicolon=!0,s.pop()),m[4]?l.source.end={line:m[4],column:m[5]}:l.source.end={line:m[2],column:m[3]};s[0][0]!==\"word\";)s.length===1&&this.unknownWord(s),l.raws.before+=s.shift()[1];for(l.source.start={line:s[0][2],column:s[0][3]},l.prop=\"\";s.length;){var v=s[0][0];if(v===\":\"||v===\"space\"||v===\"comment\")break;l.prop+=s.shift()[1]}l.raws.between=\"\";for(var y;s.length;)if(y=s.shift(),y[0]===\":\"){l.raws.between+=y[1];break}else y[0]===\"word\"&&/\\w/.test(y[1])&&this.unknownWord([y]),l.raws.between+=y[1];(l.prop[0]===\"_\"||l.prop[0]===\"*\")&&(l.raws.before+=l.prop[0],l.prop=l.prop.slice(1)),l.raws.between+=this.spacesAndCommentsFromStart(s),this.precheckMissedSemicolon(s);for(var w=s.length-1;w>0;w--){if(y=s[w],y[1].toLowerCase()===\"!important\"){l.important=!0;var d=this.stringFrom(s,w);d=this.spacesFromEnd(s)+d,d!==\" !important\"&&(l.raws.important=d);break}else if(y[1].toLowerCase()===\"important\"){for(var _=s.slice(0),S=\"\",x=w;x>0;x--){var N=_[x][0];if(S.trim().indexOf(\"!\")===0&&N!==\"space\")break;S=_.pop()[1]+S}S.trim().indexOf(\"!\")===0&&(l.important=!0,l.raws.important=S,s=_)}if(y[0]!==\"space\"&&y[0]!==\"comment\")break}this.raw(l,\"value\",s),l.value.indexOf(\":\")!==-1&&this.checkMissedSemicolon(s)},r.atrule=function(s){var l=new f.default;l.name=s[1].slice(1),l.name===\"\"&&this.unnamedAtrule(l,s),this.init(l,s[2],s[3]);for(var m,v,y=!1,w=!1,d=[];!this.tokenizer.endOfFile();){if(s=this.tokenizer.nextToken(),s[0]===\";\"){l.source.end={line:s[2],column:s[3]},this.semicolon=!0;break}else if(s[0]===\"{\"){w=!0;break}else if(s[0]===\"}\"){if(d.length>0){for(v=d.length-1,m=d[v];m&&m[0]===\"space\";)m=d[--v];m&&(l.source.end={line:m[4],column:m[5]})}this.end(s);break}else d.push(s);if(this.tokenizer.endOfFile()){y=!0;break}}l.raws.between=this.spacesAndCommentsFromEnd(d),d.length?(l.raws.afterName=this.spacesAndCommentsFromStart(d),this.raw(l,\"params\",d),y&&(s=d[d.length-1],l.source.end={line:s[4],column:s[5]},this.spaces=l.raws.between,l.raws.between=\"\")):(l.raws.afterName=\"\",l.params=\"\"),w&&(l.nodes=[],this.current=l)},r.end=function(s){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||\"\")+this.spaces,this.spaces=\"\",this.current.parent?(this.current.source.end={line:s[2],column:s[3]},this.current=this.current.parent):this.unexpectedClose(s)},r.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||\"\")+this.spaces},r.freeSemicolon=function(s){if(this.spaces+=s[1],this.current.nodes){var l=this.current.nodes[this.current.nodes.length-1];l&&l.type===\"rule\"&&!l.raws.ownSemicolon&&(l.raws.ownSemicolon=this.spaces,this.spaces=\"\")}},r.init=function(s,l,m){this.current.push(s),s.source={start:{line:l,column:m},input:this.input},s.raws.before=this.spaces,this.spaces=\"\",s.type!==\"comment\"&&(this.semicolon=!1)},r.raw=function(s,l,m){for(var v,y,w=m.length,d=\"\",_=!0,S,x,N=/^([.|#])?([\\w])+/i,P=0;P=0&&(v=s[y],!(v[0]!==\"space\"&&(m+=1,m===2)));y--);throw this.input.error(\"Missed semicolon\",v[2],v[3])}},t}();e.default=c,n.exports=e.default}}),Pf=R({\"node_modules/postcss-less/lib/nodes/inline-comment.js\"(e,n){A();var i=Lt(),a=_r();n.exports={isInlineComment(o){if(o[0]===\"word\"&&o[1].slice(0,2)===\"//\"){let f=o,p=[],h;for(;o;){if(/\\r?\\n/.test(o[1])){if(/['\"].*\\r?\\n/.test(o[1])){p.push(o[1].substring(0,o[1].indexOf(`\n`)));let c=o[1].substring(o[1].indexOf(`\n`));c+=this.input.css.valueOf().substring(this.tokenizer.position()),this.input=new a(c),this.tokenizer=i(this.input)}else this.tokenizer.back(o);break}p.push(o[1]),h=o,o=this.tokenizer.nextToken({ignoreUnclosed:!0})}let g=[\"comment\",p.join(\"\"),f[2],f[3],h[2],h[3]];return this.inlineComment(g),!0}else if(o[1]===\"/\"){let f=this.tokenizer.nextToken({ignoreUnclosed:!0});if(f[0]===\"comment\"&&/^\\/\\*/.test(f[1]))return f[0]=\"word\",f[1]=f[1].slice(1),o[1]=\"//\",this.tokenizer.back(f),n.exports.isInlineComment.bind(this)(o)}return!1}}}}),Rf=R({\"node_modules/postcss-less/lib/nodes/interpolation.js\"(e,n){A(),n.exports={interpolation(i){let a=i,o=[i],f=[\"word\",\"{\",\"}\"];if(i=this.tokenizer.nextToken(),a[1].length>1||i[0]!==\"{\")return this.tokenizer.back(i),!1;for(;i&&f.includes(i[0]);)o.push(i),i=this.tokenizer.nextToken();let p=o.map(r=>r[1]);[a]=o;let h=o.pop(),g=[a[2],a[3]],c=[h[4]||h[2],h[5]||h[3]],t=[\"word\",p.join(\"\")].concat(g,c);return this.tokenizer.back(i),this.tokenizer.back(t),!0}}}}),If=R({\"node_modules/postcss-less/lib/nodes/mixin.js\"(e,n){A();var i=/^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/,a=/\\.[0-9]/,o=f=>{let[,p]=f,[h]=p;return(h===\".\"||h===\"#\")&&i.test(p)===!1&&a.test(p)===!1};n.exports={isMixinToken:o}}}),Cf=R({\"node_modules/postcss-less/lib/nodes/import.js\"(e,n){A();var i=Lt(),a=/^url\\((.+)\\)/;n.exports=o=>{let{name:f,params:p=\"\"}=o;if(f===\"import\"&&p.length){o.import=!0;let h=i({css:p});for(o.filename=p.replace(a,\"$1\");!h.endOfFile();){let[g,c]=h.nextToken();if(g===\"word\"&&c===\"url\")return;if(g===\"brackets\"){o.options=c,o.filename=p.replace(c,\"\").trim();break}}}}}}),Nf=R({\"node_modules/postcss-less/lib/nodes/variable.js\"(e,n){A();var i=/:$/,a=/^:(\\s+)?/;n.exports=o=>{let{name:f,params:p=\"\"}=o;if(o.name.slice(-1)===\":\"){if(i.test(f)){let[h]=f.match(i);o.name=f.replace(h,\"\"),o.raws.afterName=h+(o.raws.afterName||\"\"),o.variable=!0,o.value=o.params}if(a.test(p)){let[h]=p.match(a);o.value=p.replace(h,\"\"),o.raws.afterName=(o.raws.afterName||\"\")+h,o.variable=!0}}}}}),jf=R({\"node_modules/postcss-less/lib/LessParser.js\"(e,n){A();var i=xr(),a=zt(),{isInlineComment:o}=Pf(),{interpolation:f}=Rf(),{isMixinToken:p}=If(),h=Cf(),g=Nf(),c=/(!\\s*important)$/i;n.exports=class extends a{constructor(){super(...arguments),this.lastNode=null}atrule(r){f.bind(this)(r)||(super.atrule(r),h(this.lastNode),g(this.lastNode))}decl(){super.decl(...arguments),/extend\\(.+\\)/i.test(this.lastNode.value)&&(this.lastNode.extend=!0)}each(r){r[0][1]=\" \".concat(r[0][1]);let u=r.findIndex(y=>y[0]===\"(\"),s=r.reverse().find(y=>y[0]===\")\"),l=r.reverse().indexOf(s),v=r.splice(u,l).map(y=>y[1]).join(\"\");for(let y of r.reverse())this.tokenizer.back(y);this.atrule(this.tokenizer.nextToken()),this.lastNode.function=!0,this.lastNode.params=v}init(r,u,s){super.init(r,u,s),this.lastNode=r}inlineComment(r){let u=new i,s=r[1].slice(2);if(this.init(u,r[2],r[3]),u.source.end={line:r[4],column:r[5]},u.inline=!0,u.raws.begin=\"//\",/^\\s*$/.test(s))u.text=\"\",u.raws.left=s,u.raws.right=\"\";else{let l=s.match(/^(\\s*)([^]*[^\\s])(\\s*)$/);[,u.raws.left,u.text,u.raws.right]=l}}mixin(r){let[u]=r,s=u[1].slice(0,1),l=r.findIndex(d=>d[0]===\"brackets\"),m=r.findIndex(d=>d[0]===\"(\"),v=\"\";if((l<0||l>3)&&m>0){let d=r.reduce(($,B,O)=>B[0]===\")\"?O:$),S=r.slice(m,d+m).map($=>$[1]).join(\"\"),[x]=r.slice(m),N=[x[2],x[3]],[P]=r.slice(d,d+1),W=[P[2],P[3]],U=[\"brackets\",S].concat(N,W),H=r.slice(0,m),D=r.slice(d+1);r=H,r.push(U),r=r.concat(D)}let y=[];for(let d of r)if((d[1]===\"!\"||y.length)&&y.push(d),d[1]===\"important\")break;if(y.length){let[d]=y,_=r.indexOf(d),S=y[y.length-1],x=[d[2],d[3]],N=[S[4],S[5]],P=y.map(U=>U[1]).join(\"\"),W=[\"word\",P].concat(x,N);r.splice(_,y.length,W)}let w=r.findIndex(d=>c.test(d[1]));w>0&&([,v]=r[w],r.splice(w,1));for(let d of r.reverse())this.tokenizer.back(d);this.atrule(this.tokenizer.nextToken()),this.lastNode.mixin=!0,this.lastNode.raws.identifier=s,v&&(this.lastNode.important=!0,this.lastNode.raws.important=v)}other(r){o.bind(this)(r)||super.other(r)}rule(r){let u=r[r.length-1],s=r[r.length-2];if(s[0]===\"at-word\"&&u[0]===\"{\"&&(this.tokenizer.back(u),f.bind(this)(s))){let m=this.tokenizer.nextToken();r=r.slice(0,r.length-2).concat([m]);for(let v of r.reverse())this.tokenizer.back(v);return}super.rule(r),/:extend\\(.+\\)/i.test(this.lastNode.selector)&&(this.lastNode.extend=!0)}unknownWord(r){let[u]=r;if(r[0][1]===\"each\"&&r[1][0]===\"(\"){this.each(r);return}if(p(u)){this.mixin(r);return}super.unknownWord(r)}}}}),Mf=R({\"node_modules/postcss-less/lib/LessStringifier.js\"(e,n){A();var i=br();n.exports=class extends i{atrule(o,f){if(!o.mixin&&!o.variable&&!o.function){super.atrule(o,f);return}let p=o.function?\"\":o.raws.identifier||\"@\",h=\"\".concat(p).concat(o.name),g=o.params?this.rawValue(o,\"params\"):\"\",c=o.raws.important||\"\";if(o.variable&&(g=o.value),typeof o.raws.afterName<\"u\"?h+=o.raws.afterName:g&&(h+=\" \"),o.nodes)this.block(o,h+g+c);else{let t=(o.raws.between||\"\")+c+(f?\";\":\"\");this.builder(h+g+t,o)}}comment(o){if(o.inline){let f=this.raw(o,\"left\",\"commentLeft\"),p=this.raw(o,\"right\",\"commentRight\");this.builder(\"//\".concat(f).concat(o.text).concat(p),o)}else super.comment(o)}}}}),Df=R({\"node_modules/postcss-less/lib/index.js\"(e,n){A();var i=_r(),a=jf(),o=Mf();n.exports={parse(f,p){let h=new i(f,p),g=new a(h);return g.parse(),g.root},stringify(f,p){new o(p).stringify(f)},nodeToString(f){let p=\"\";return n.exports.stringify(f,h=>{p+=h}),p}}}}),Lf=R({\"node_modules/postcss-scss/lib/scss-stringifier.js\"(e,n){\"use strict\";A();function i(f,p){f.prototype=Object.create(p.prototype),f.prototype.constructor=f,f.__proto__=p}var a=br(),o=function(f){i(p,f);function p(){return f.apply(this,arguments)||this}var h=p.prototype;return h.comment=function(c){var t=this.raw(c,\"left\",\"commentLeft\"),r=this.raw(c,\"right\",\"commentRight\");if(c.raws.inline){var u=c.raws.text||c.text;this.builder(\"//\"+t+u+r,c)}else this.builder(\"/*\"+t+c.text+r+\"*/\",c)},h.decl=function(c,t){if(!c.isNested)f.prototype.decl.call(this,c,t);else{var r=this.raw(c,\"between\",\"colon\"),u=c.prop+r+this.rawValue(c,\"value\");c.important&&(u+=c.raws.important||\" !important\"),this.builder(u+\"{\",c,\"start\");var s;c.nodes&&c.nodes.length?(this.body(c),s=this.raw(c,\"after\")):s=this.raw(c,\"after\",\"emptyBody\"),s&&this.builder(s),this.builder(\"}\",c,\"end\")}},h.rawValue=function(c,t){var r=c[t],u=c.raws[t];return u&&u.value===r?u.scss?u.scss:u.raw:r},p}(a);n.exports=o}}),zf=R({\"node_modules/postcss-scss/lib/scss-stringify.js\"(e,n){\"use strict\";A();var i=Lf();n.exports=function(o,f){var p=new i(f);p.stringify(o)}}}),Bf=R({\"node_modules/postcss-scss/lib/nested-declaration.js\"(e,n){\"use strict\";A();function i(f,p){f.prototype=Object.create(p.prototype),f.prototype.constructor=f,f.__proto__=p}var a=kr(),o=function(f){i(p,f);function p(h){var g;return g=f.call(this,h)||this,g.type=\"decl\",g.isNested=!0,g.nodes||(g.nodes=[]),g}return p}(a);n.exports=o}}),Ff=R({\"node_modules/postcss-scss/lib/scss-tokenize.js\"(e,n){\"use strict\";A();var i=\"'\".charCodeAt(0),a='\"'.charCodeAt(0),o=\"\\\\\".charCodeAt(0),f=\"/\".charCodeAt(0),p=`\n`.charCodeAt(0),h=\" \".charCodeAt(0),g=\"\\f\".charCodeAt(0),c=\"\t\".charCodeAt(0),t=\"\\r\".charCodeAt(0),r=\"[\".charCodeAt(0),u=\"]\".charCodeAt(0),s=\"(\".charCodeAt(0),l=\")\".charCodeAt(0),m=\"{\".charCodeAt(0),v=\"}\".charCodeAt(0),y=\";\".charCodeAt(0),w=\"*\".charCodeAt(0),d=\":\".charCodeAt(0),_=\"@\".charCodeAt(0),S=\",\".charCodeAt(0),x=\"#\".charCodeAt(0),N=/[ \\n\\t\\r\\f{}()'\"\\\\;/[\\]#]/g,P=/[ \\n\\t\\r\\f(){}:;@!'\"\\\\\\][#]|\\/(?=\\*)/g,W=/.[\\\\/(\"'\\n]/,U=/[a-f0-9]/i,H=/[\\r\\f\\n]/g;n.exports=function($,B){B===void 0&&(B={});var O=$.css.valueOf(),j=B.ignoreErrors,C,I,X,Z,Q,K,J,M,Y,G,E,k,b,L,q=O.length,T=-1,F=1,z=0,re=[],ne=[];function ce(se){throw $.error(\"Unclosed \"+se,F,z-T)}function fe(){return ne.length===0&&z>=q}function te(){for(var se=1,le=!1,pe=!1;se>0;)I+=1,O.length<=I&&ce(\"interpolation\"),C=O.charCodeAt(I),k=O.charCodeAt(I+1),le?!pe&&C===le?(le=!1,pe=!1):C===o?pe=!G:pe&&(pe=!1):C===i||C===a?le=C:C===v?se-=1:C===x&&k===m&&(se+=1)}function ie(){if(ne.length)return ne.pop();if(!(z>=q)){switch(C=O.charCodeAt(z),(C===p||C===g||C===t&&O.charCodeAt(z+1)!==p)&&(T=z,F+=1),C){case p:case h:case c:case t:case g:I=z;do I+=1,C=O.charCodeAt(I),C===p&&(T=I,F+=1);while(C===h||C===p||C===c||C===t||C===g);b=[\"space\",O.slice(z,I)],z=I-1;break;case r:b=[\"[\",\"[\",F,z-T];break;case u:b=[\"]\",\"]\",F,z-T];break;case m:b=[\"{\",\"{\",F,z-T];break;case v:b=[\"}\",\"}\",F,z-T];break;case S:b=[\"word\",\",\",F,z-T,F,z-T+1];break;case d:b=[\":\",\":\",F,z-T];break;case y:b=[\";\",\";\",F,z-T];break;case s:if(E=re.length?re.pop()[1]:\"\",k=O.charCodeAt(z+1),E===\"url\"&&k!==i&&k!==a){for(L=1,G=!1,I=z+1;I<=O.length-1;){if(k=O.charCodeAt(I),k===o)G=!G;else if(k===s)L+=1;else if(k===l&&(L-=1,L===0))break;I+=1}K=O.slice(z,I+1),Z=K.split(`\n`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"brackets\",K,F,z-T,M,I-Y],T=Y,F=M,z=I}else I=O.indexOf(\")\",z+1),K=O.slice(z,I+1),I===-1||W.test(K)?b=[\"(\",\"(\",F,z-T]:(b=[\"brackets\",K,F,z-T,F,I-T],z=I);break;case l:b=[\")\",\")\",F,z-T];break;case i:case a:for(X=C,I=z,G=!1;I0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"string\",O.slice(z,I+1),F,z-T,M,I-Y],T=Y,F=M,z=I;break;case _:N.lastIndex=z+1,N.test(O),N.lastIndex===0?I=O.length-1:I=N.lastIndex-2,b=[\"at-word\",O.slice(z,I+1),F,z-T,F,I-T],z=I;break;case o:for(I=z,J=!0;O.charCodeAt(I+1)===o;)I+=1,J=!J;if(C=O.charCodeAt(I+1),J&&C!==f&&C!==h&&C!==p&&C!==c&&C!==t&&C!==g&&(I+=1,U.test(O.charAt(I)))){for(;U.test(O.charAt(I+1));)I+=1;O.charCodeAt(I+1)===h&&(I+=1)}b=[\"word\",O.slice(z,I+1),F,z-T,F,I-T],z=I;break;default:k=O.charCodeAt(z+1),C===x&&k===m?(I=z,te(),K=O.slice(z,I+1),Z=K.split(`\n`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"word\",K,F,z-T,M,I-Y],T=Y,F=M,z=I):C===f&&k===w?(I=O.indexOf(\"*/\",z+2)+1,I===0&&(j?I=O.length:ce(\"comment\")),K=O.slice(z,I+1),Z=K.split(`\n`),Q=Z.length-1,Q>0?(M=F+Q,Y=I-Z[Q].length):(M=F,Y=T),b=[\"comment\",K,F,z-T,M,I-Y],T=Y,F=M,z=I):C===f&&k===f?(H.lastIndex=z+1,H.test(O),H.lastIndex===0?I=O.length-1:I=H.lastIndex-2,K=O.slice(z,I+1),b=[\"comment\",K,F,z-T,F,I-T,\"inline\"],z=I):(P.lastIndex=z+1,P.test(O),P.lastIndex===0?I=O.length-1:I=P.lastIndex-2,b=[\"word\",O.slice(z,I+1),F,z-T,F,I-T],re.push(b),z=I);break}return z++,b}}function ae(se){ne.push(se)}return{back:ae,nextToken:ie,endOfFile:fe}}}}),Uf=R({\"node_modules/postcss-scss/lib/scss-parser.js\"(e,n){\"use strict\";A();function i(g,c){g.prototype=Object.create(c.prototype),g.prototype.constructor=g,g.__proto__=c}var a=xr(),o=zt(),f=Bf(),p=Ff(),h=function(g){i(c,g);function c(){return g.apply(this,arguments)||this}var t=c.prototype;return t.createTokenizer=function(){this.tokenizer=p(this.input)},t.rule=function(u){for(var s=!1,l=0,m=\"\",w=u,v=Array.isArray(w),y=0,w=v?w:w[Symbol.iterator]();;){var d;if(v){if(y>=w.length)break;d=w[y++]}else{if(y=w.next(),y.done)break;d=y.value}var _=d;if(s)_[0]!==\"comment\"&&_[0]!==\"{\"&&(m+=_[1]);else{if(_[0]===\"space\"&&_[1].indexOf(`\n`)!==-1)break;_[0]===\"(\"?l+=1:_[0]===\")\"?l-=1:l===0&&_[0]===\":\"&&(s=!0)}}if(!s||m.trim()===\"\"||/^[a-zA-Z-:#]/.test(m))g.prototype.rule.call(this,u);else{u.pop();var S=new f;this.init(S);var x=u[u.length-1];for(x[4]?S.source.end={line:x[4],column:x[5]}:S.source.end={line:x[2],column:x[3]};u[0][0]!==\"word\";)S.raws.before+=u.shift()[1];for(S.source.start={line:u[0][2],column:u[0][3]},S.prop=\"\";u.length;){var N=u[0][0];if(N===\":\"||N===\"space\"||N===\"comment\")break;S.prop+=u.shift()[1]}S.raws.between=\"\";for(var P;u.length;)if(P=u.shift(),P[0]===\":\"){S.raws.between+=P[1];break}else S.raws.between+=P[1];(S.prop[0]===\"_\"||S.prop[0]===\"*\")&&(S.raws.before+=S.prop[0],S.prop=S.prop.slice(1)),S.raws.between+=this.spacesAndCommentsFromStart(u),this.precheckMissedSemicolon(u);for(var W=u.length-1;W>0;W--){if(P=u[W],P[1]===\"!important\"){S.important=!0;var U=this.stringFrom(u,W);U=this.spacesFromEnd(u)+U,U!==\" !important\"&&(S.raws.important=U);break}else if(P[1]===\"important\"){for(var H=u.slice(0),D=\"\",$=W;$>0;$--){var B=H[$][0];if(D.trim().indexOf(\"!\")===0&&B!==\"space\")break;D=H.pop()[1]+D}D.trim().indexOf(\"!\")===0&&(S.important=!0,S.raws.important=D,u=H)}if(P[0]!==\"space\"&&P[0]!==\"comment\")break}this.raw(S,\"value\",u),S.value.indexOf(\":\")!==-1&&this.checkMissedSemicolon(u),this.current=S}},t.comment=function(u){if(u[6]===\"inline\"){var s=new a;this.init(s,u[2],u[3]),s.raws.inline=!0,s.source.end={line:u[4],column:u[5]};var l=u[1].slice(2);if(/^\\s*$/.test(l))s.text=\"\",s.raws.left=l,s.raws.right=\"\";else{var m=l.match(/^(\\s*)([^]*[^\\s])(\\s*)$/),v=m[2].replace(/(\\*\\/|\\/\\*)/g,\"*//*\");s.text=v,s.raws.left=m[1],s.raws.right=m[3],s.raws.text=m[2]}}else g.prototype.comment.call(this,u)},t.raw=function(u,s,l){if(g.prototype.raw.call(this,u,s,l),u.raws[s]){var m=u.raws[s].raw;u.raws[s].raw=l.reduce(function(v,y){if(y[0]===\"comment\"&&y[6]===\"inline\"){var w=y[1].slice(2).replace(/(\\*\\/|\\/\\*)/g,\"*//*\");return v+\"/*\"+w+\"*/\"}else return v+y[1]},\"\"),m!==u.raws[s].raw&&(u.raws[s].scss=m)}},c}(o);n.exports=h}}),Wf=R({\"node_modules/postcss-scss/lib/scss-parse.js\"(e,n){\"use strict\";A();var i=_r(),a=Uf();n.exports=function(f,p){var h=new i(f,p),g=new a(h);return g.parse(),g.root}}}),$f=R({\"node_modules/postcss-scss/lib/scss-syntax.js\"(e,n){\"use strict\";A();var i=zf(),a=Wf();n.exports={parse:a,stringify:i}}});A();var Vf=ml(),pt=Cs(),Gf=Ns(),{hasPragma:Hf}=Tl(),{locStart:Jf,locEnd:Kf}=Js(),{calculateLoc:Qf,replaceQuotesInInlineComments:Yf}=Js(),Xf=Pl(),Zf=Rl(),ht=Il(),sa=Cl(),ep=Nl(),rp=jl(),tp=Ml(),np=Dl(),ip=e=>{for(;e.parent;)e=e.parent;return e};function sp(e,n){let{nodes:i}=e,a={open:null,close:null,groups:[],type:\"paren_group\"},o=[a],f=a,p={groups:[],type:\"comma_group\"},h=[p];for(let g=0;g0&&a.groups.push(p),a.close=c,h.length===1)throw new Error(\"Unbalanced parenthesis\");h.pop(),p=pt(h),p.groups.push(a),o.pop(),a=pt(o)}else c.type===\"comma\"?(a.groups.push(p),p={groups:[],type:\"comma_group\"},h[h.length-1]=p):p.groups.push(c)}return p.groups.length>0&&a.groups.push(p),f}function hr(e){return e.type===\"paren_group\"&&!e.open&&!e.close&&e.groups.length===1||e.type===\"comma_group\"&&e.groups.length===1?hr(e.groups[0]):e.type===\"paren_group\"||e.type===\"comma_group\"?Object.assign(Object.assign({},e),{},{groups:e.groups.map(hr)}):e}function Xe(e,n,i){if(e&&typeof e==\"object\"){delete e.parent;for(let a in e)Xe(e[a],n,i),a===\"type\"&&typeof e[a]==\"string\"&&!e[a].startsWith(n)&&(!i||!i.test(e[a]))&&(e[a]=n+e[a])}return e}function oa(e){if(e&&typeof e==\"object\"){delete e.parent;for(let n in e)oa(e[n]);!Array.isArray(e)&&e.value&&!e.type&&(e.type=\"unknown\")}return e}function aa(e,n){if(e&&typeof e==\"object\"){for(let i in e)i!==\"parent\"&&(aa(e[i],n),i===\"nodes\"&&(e.group=hr(sp(e,n)),delete e[i]));delete e.parent}return e}function Pe(e,n){let i=lf(),a=null;try{a=i(e,{loose:!0}).parse()}catch{return{type:\"value-unknown\",value:e}}a.text=e;let o=aa(a,n);return Xe(o,\"value-\",/^selector-/)}function Ie(e){if(/\\/\\/|\\/\\*/.test(e))return{type:\"selector-unknown\",value:e.trim()};let n=vf(),i=null;try{n(a=>{i=a}).process(e)}catch{return{type:\"selector-unknown\",value:e}}return Xe(i,\"selector-\")}function op(e){let n=gf().default,i=null;try{i=n(e)}catch{return{type:\"selector-unknown\",value:e}}return Xe(oa(i),\"media-\")}var ap=/(\\s*)(!default).*$/,up=/(\\s*)(!global).*$/;function ua(e,n){if(e&&typeof e==\"object\"){delete e.parent;for(let f in e)ua(e[f],n);if(!e.type)return e;e.raws||(e.raws={});let i=\"\";typeof e.selector==\"string\"&&(i=e.raws.selector?e.raws.selector.scss?e.raws.selector.scss:e.raws.selector.raw:e.selector,e.raws.between&&e.raws.between.trim().length>0&&(i+=e.raws.between),e.raws.selector=i);let a=\"\";typeof e.value==\"string\"&&(a=e.raws.value?e.raws.value.scss?e.raws.value.scss:e.raws.value.raw:e.value,a=a.trim(),e.raws.value=a);let o=\"\";if(typeof e.params==\"string\"&&(o=e.raws.params?e.raws.params.scss?e.raws.params.scss:e.raws.params.raw:e.params,e.raws.afterName&&e.raws.afterName.trim().length>0&&(o=e.raws.afterName+o),e.raws.between&&e.raws.between.trim().length>0&&(o=o+e.raws.between),o=o.trim(),e.raws.params=o),i.trim().length>0)return i.startsWith(\"@\")&&i.endsWith(\":\")?e:e.mixin?(e.selector=Pe(i,n),e):(ep(e)&&(e.isSCSSNesterProperty=!0),e.selector=Ie(i),e);if(a.length>0){let f=a.match(ap);f&&(a=a.slice(0,f.index),e.scssDefault=!0,f[0].trim()!==\"!default\"&&(e.raws.scssDefault=f[0]));let p=a.match(up);if(p&&(a=a.slice(0,p.index),e.scssGlobal=!0,p[0].trim()!==\"!global\"&&(e.raws.scssGlobal=p[0])),a.startsWith(\"progid:\"))return{type:\"value-unknown\",value:a};e.value=Pe(a,n)}if(ht(n)&&e.type===\"css-decl\"&&a.startsWith(\"extend(\")&&(e.extend||(e.extend=e.raws.between===\":\"),e.extend&&!e.selector&&(delete e.value,e.selector=Ie(a.slice(7,-1)))),e.type===\"css-atrule\"){if(ht(n)){if(e.mixin){let f=e.raws.identifier+e.name+e.raws.afterName+e.raws.params;return e.selector=Ie(f),delete e.params,e}if(e.function)return e}if(n.parser===\"css\"&&e.name===\"custom-selector\"){let f=e.params.match(/:--\\S+\\s+/)[0].trim();return e.customSelector=f,e.selector=Ie(e.params.slice(f.length).trim()),delete e.params,e}if(ht(n)){if(e.name.includes(\":\")&&!e.params){e.variable=!0;let f=e.name.split(\":\");e.name=f[0],e.value=Pe(f.slice(1).join(\":\"),n)}if(![\"page\",\"nest\",\"keyframes\"].includes(e.name)&&e.params&&e.params[0]===\":\"&&(e.variable=!0,e.value=Pe(e.params.slice(1),n),e.raws.afterName+=\":\"),e.variable)return delete e.params,e}}if(e.type===\"css-atrule\"&&o.length>0){let{name:f}=e,p=e.name.toLowerCase();return f===\"warn\"||f===\"error\"?(e.params={type:\"media-unknown\",value:o},e):f===\"extend\"||f===\"nest\"?(e.selector=Ie(o),delete e.params,e):f===\"at-root\"?(/^\\(\\s*(?:without|with)\\s*:.+\\)$/s.test(o)?e.params=Pe(o,n):(e.selector=Ie(o),delete e.params),e):np(p)?(e.import=!0,delete e.filename,e.params=Pe(o,n),e):[\"namespace\",\"supports\",\"if\",\"else\",\"for\",\"each\",\"while\",\"debug\",\"mixin\",\"include\",\"function\",\"return\",\"define-mixin\",\"add-mixin\"].includes(f)?(o=o.replace(/(\\$\\S+?)(\\s+)?\\.{3}/,\"$1...$2\"),o=o.replace(/^(?!if)(\\S+)(\\s+)\\(/,\"$1($2\"),e.value=Pe(o,n),delete e.params,e):[\"media\",\"custom-media\"].includes(p)?o.includes(\"#{\")?{type:\"media-unknown\",value:o}:(e.params=op(o),e):(e.params=o,e)}}return e}function ca(e,n,i){let a=Gf(n),{frontMatter:o}=a;n=a.content;let f;try{f=e(n)}catch(p){let{name:h,reason:g,line:c,column:t}=p;throw typeof c!=\"number\"?p:Vf(\"\".concat(h,\": \").concat(g),{start:{line:c,column:t}})}return f=ua(Xe(f,\"css-\"),i),Qf(f,n),o&&(o.source={startOffset:0,endOffset:o.raw.length},f.nodes.unshift(o)),f}function cp(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=sa(i.parser,e)?[xt,bt]:[bt,xt],f;for(let p of o)try{return p(e,n,i)}catch(h){f=f||h}if(f)throw f}function bt(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=Df();return ca(o=>a.parse(Yf(o)),e,i)}function xt(e,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{parse:a}=$f();return ca(a,e,i)}var dt={astFormat:\"postcss\",hasPragma:Hf,locStart:Jf,locEnd:Kf};la.exports={parsers:{css:Object.assign(Object.assign({},dt),{},{parse:cp}),less:Object.assign(Object.assign({},dt),{},{parse:bt}),scss:Object.assign(Object.assign({},dt),{},{parse:xt})}}});return lp();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.typescript=e()}})(function(){\"use strict\";var Bn=(M,re)=>()=>(re||M((re={exports:{}}).exports,re),re.exports);var qc=Bn((Sz,CA)=>{var $0=function(M){return M&&M.Math==Math&&M};CA.exports=$0(typeof globalThis==\"object\"&&globalThis)||$0(typeof window==\"object\"&&window)||$0(typeof self==\"object\"&&self)||$0(typeof global==\"object\"&&global)||function(){return this}()||Function(\"return this\")()});var cg=Bn((Tz,kA)=>{kA.exports=function(M){try{return!!M()}catch{return!0}}});var Am=Bn((xz,AA)=>{var OL=cg();AA.exports=!OL(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var Z0=Bn((Ez,NA)=>{var FL=cg();NA.exports=!FL(function(){var M=function(){}.bind();return typeof M!=\"function\"||M.hasOwnProperty(\"prototype\")})});var r1=Bn((Cz,PA)=>{var ML=Z0(),e1=Function.prototype.call;PA.exports=ML?e1.bind(e1):function(){return e1.apply(e1,arguments)}});var FA=Bn(OA=>{\"use strict\";var IA={}.propertyIsEnumerable,wA=Object.getOwnPropertyDescriptor,LL=wA&&!IA.call({1:2},1);OA.f=LL?function(re){var Ve=wA(this,re);return!!Ve&&Ve.enumerable}:IA});var XS=Bn((Az,MA)=>{MA.exports=function(M,re){return{enumerable:!(M&1),configurable:!(M&2),writable:!(M&4),value:re}}});var dp=Bn((Nz,BA)=>{var LA=Z0(),RA=Function.prototype,RL=RA.bind,QS=RA.call,BL=LA&&RL.bind(QS,QS);BA.exports=LA?function(M){return M&&BL(M)}:function(M){return M&&function(){return QS.apply(M,arguments)}}});var i1=Bn((Pz,jA)=>{var JA=dp(),JL=JA({}.toString),jL=JA(\"\".slice);jA.exports=function(M){return jL(JL(M),8,-1)}});var zA=Bn((Iz,UA)=>{var UL=qc(),zL=dp(),WL=cg(),qL=i1(),YS=UL.Object,VL=zL(\"\".split);UA.exports=WL(function(){return!YS(\"z\").propertyIsEnumerable(0)})?function(M){return qL(M)==\"String\"?VL(M,\"\"):YS(M)}:YS});var $S=Bn((wz,WA)=>{var KL=qc(),GL=KL.TypeError;WA.exports=function(M){if(M==null)throw GL(\"Can't call method on \"+M);return M}});var t1=Bn((Oz,qA)=>{var HL=zA(),XL=$S();qA.exports=function(M){return HL(XL(M))}});var gp=Bn((Fz,VA)=>{VA.exports=function(M){return typeof M==\"function\"}});var Nm=Bn((Mz,KA)=>{var QL=gp();KA.exports=function(M){return typeof M==\"object\"?M!==null:QL(M)}});var qy=Bn((Lz,GA)=>{var ZS=qc(),YL=gp(),$L=function(M){return YL(M)?M:void 0};GA.exports=function(M,re){return arguments.length<2?$L(ZS[M]):ZS[M]&&ZS[M][re]}});var XA=Bn((Rz,HA)=>{var ZL=dp();HA.exports=ZL({}.isPrototypeOf)});var YA=Bn((Bz,QA)=>{var eR=qy();QA.exports=eR(\"navigator\",\"userAgent\")||\"\"});var aN=Bn((Jz,tN)=>{var iN=qc(),eT=YA(),$A=iN.process,ZA=iN.Deno,eN=$A&&$A.versions||ZA&&ZA.version,rN=eN&&eN.v8,ad,a1;rN&&(ad=rN.split(\".\"),a1=ad[0]>0&&ad[0]<4?1:+(ad[0]+ad[1]));!a1&&eT&&(ad=eT.match(/Edge\\/(\\d+)/),(!ad||ad[1]>=74)&&(ad=eT.match(/Chrome\\/(\\d+)/),ad&&(a1=+ad[1])));tN.exports=a1});var rT=Bn((jz,oN)=>{var nN=aN(),rR=cg();oN.exports=!!Object.getOwnPropertySymbols&&!rR(function(){var M=Symbol();return!String(M)||!(Object(M)instanceof Symbol)||!Symbol.sham&&nN&&nN<41})});var iT=Bn((Uz,sN)=>{var iR=rT();sN.exports=iR&&!Symbol.sham&&typeof Symbol.iterator==\"symbol\"});var tT=Bn((zz,cN)=>{var tR=qc(),aR=qy(),nR=gp(),oR=XA(),sR=iT(),cR=tR.Object;cN.exports=sR?function(M){return typeof M==\"symbol\"}:function(M){var re=aR(\"Symbol\");return nR(re)&&oR(re.prototype,cR(M))}});var lN=Bn((Wz,uN)=>{var uR=qc(),lR=uR.String;uN.exports=function(M){try{return lR(M)}catch{return\"Object\"}}});var n1=Bn((qz,fN)=>{var fR=qc(),_R=gp(),pR=lN(),dR=fR.TypeError;fN.exports=function(M){if(_R(M))return M;throw dR(pR(M)+\" is not a function\")}});var pN=Bn((Vz,_N)=>{var gR=n1();_N.exports=function(M,re){var Ve=M[re];return Ve==null?void 0:gR(Ve)}});var gN=Bn((Kz,dN)=>{var mR=qc(),aT=r1(),nT=gp(),oT=Nm(),vR=mR.TypeError;dN.exports=function(M,re){var Ve,Ke;if(re===\"string\"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M))||nT(Ve=M.valueOf)&&!oT(Ke=aT(Ve,M))||re!==\"string\"&&nT(Ve=M.toString)&&!oT(Ke=aT(Ve,M)))return Ke;throw vR(\"Can't convert object to primitive value\")}});var vN=Bn((Gz,mN)=>{mN.exports=!1});var o1=Bn((Hz,hN)=>{var yN=qc(),yR=Object.defineProperty;hN.exports=function(M,re){try{yR(yN,M,{value:re,configurable:!0,writable:!0})}catch{yN[M]=re}return re}});var s1=Bn((Xz,bN)=>{var hR=qc(),DR=o1(),DN=\"__core-js_shared__\",bR=hR[DN]||DR(DN,{});bN.exports=bR});var sT=Bn((Qz,TN)=>{var SR=vN(),SN=s1();(TN.exports=function(M,re){return SN[M]||(SN[M]=re!==void 0?re:{})})(\"versions\",[]).push({version:\"3.22.2\",mode:SR?\"pure\":\"global\",copyright:\"\\xA9 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE\",source:\"https://github.com/zloirock/core-js\"})});var cT=Bn((Yz,xN)=>{var TR=qc(),xR=$S(),ER=TR.Object;xN.exports=function(M){return ER(xR(M))}});var Wg=Bn(($z,EN)=>{var CR=dp(),kR=cT(),AR=CR({}.hasOwnProperty);EN.exports=Object.hasOwn||function(re,Ve){return AR(kR(re),Ve)}});var uT=Bn((Zz,CN)=>{var NR=dp(),PR=0,IR=Math.random(),wR=NR(1 .toString);CN.exports=function(M){return\"Symbol(\"+(M===void 0?\"\":M)+\")_\"+wR(++PR+IR,36)}});var Vy=Bn((eW,IN)=>{var OR=qc(),FR=sT(),kN=Wg(),MR=uT(),AN=rT(),PN=iT(),Iv=FR(\"wks\"),Pm=OR.Symbol,NN=Pm&&Pm.for,LR=PN?Pm:Pm&&Pm.withoutSetter||MR;IN.exports=function(M){if(!kN(Iv,M)||!(AN||typeof Iv[M]==\"string\")){var re=\"Symbol.\"+M;AN&&kN(Pm,M)?Iv[M]=Pm[M]:PN&&NN?Iv[M]=NN(re):Iv[M]=LR(re)}return Iv[M]}});var MN=Bn((rW,FN)=>{var RR=qc(),BR=r1(),wN=Nm(),ON=tT(),JR=pN(),jR=gN(),UR=Vy(),zR=RR.TypeError,WR=UR(\"toPrimitive\");FN.exports=function(M,re){if(!wN(M)||ON(M))return M;var Ve=JR(M,WR),Ke;if(Ve){if(re===void 0&&(re=\"default\"),Ke=BR(Ve,M,re),!wN(Ke)||ON(Ke))return Ke;throw zR(\"Can't convert object to primitive value\")}return re===void 0&&(re=\"number\"),jR(M,re)}});var lT=Bn((iW,LN)=>{var qR=MN(),VR=tT();LN.exports=function(M){var re=qR(M,\"string\");return VR(re)?re:re+\"\"}});var JN=Bn((tW,BN)=>{var KR=qc(),RN=Nm(),fT=KR.document,GR=RN(fT)&&RN(fT.createElement);BN.exports=function(M){return GR?fT.createElement(M):{}}});var _T=Bn((aW,jN)=>{var HR=Am(),XR=cg(),QR=JN();jN.exports=!HR&&!XR(function(){return Object.defineProperty(QR(\"div\"),\"a\",{get:function(){return 7}}).a!=7})});var pT=Bn(zN=>{var YR=Am(),$R=r1(),ZR=FA(),eB=XS(),rB=t1(),iB=lT(),tB=Wg(),aB=_T(),UN=Object.getOwnPropertyDescriptor;zN.f=YR?UN:function(re,Ve){if(re=rB(re),Ve=iB(Ve),aB)try{return UN(re,Ve)}catch{}if(tB(re,Ve))return eB(!$R(ZR.f,re,Ve),re[Ve])}});var qN=Bn((oW,WN)=>{var nB=Am(),oB=cg();WN.exports=nB&&oB(function(){return Object.defineProperty(function(){},\"prototype\",{value:42,writable:!1}).prototype!=42})});var dT=Bn((sW,KN)=>{var VN=qc(),sB=Nm(),cB=VN.String,uB=VN.TypeError;KN.exports=function(M){if(sB(M))return M;throw uB(cB(M)+\" is not an object\")}});var hT=Bn(HN=>{var lB=qc(),fB=Am(),_B=_T(),pB=qN(),c1=dT(),GN=lT(),dB=lB.TypeError,gT=Object.defineProperty,gB=Object.getOwnPropertyDescriptor,mT=\"enumerable\",vT=\"configurable\",yT=\"writable\";HN.f=fB?pB?function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),typeof re==\"function\"&&Ve===\"prototype\"&&\"value\"in Ke&&yT in Ke&&!Ke[yT]){var oi=gB(re,Ve);oi&&oi[yT]&&(re[Ve]=Ke.value,Ke={configurable:vT in Ke?Ke[vT]:oi[vT],enumerable:mT in Ke?Ke[mT]:oi[mT],writable:!1})}return gT(re,Ve,Ke)}:gT:function(re,Ve,Ke){if(c1(re),Ve=GN(Ve),c1(Ke),_B)try{return gT(re,Ve,Ke)}catch{}if(\"get\"in Ke||\"set\"in Ke)throw dB(\"Accessors not supported\");return\"value\"in Ke&&(re[Ve]=Ke.value),re}});var u1=Bn((uW,XN)=>{var mB=Am(),vB=hT(),yB=XS();XN.exports=mB?function(M,re,Ve){return vB.f(M,re,yB(1,Ve))}:function(M,re,Ve){return M[re]=Ve,M}});var l1=Bn((lW,QN)=>{var hB=dp(),DB=gp(),DT=s1(),bB=hB(Function.toString);DB(DT.inspectSource)||(DT.inspectSource=function(M){return bB(M)});QN.exports=DT.inspectSource});var ZN=Bn((fW,$N)=>{var SB=qc(),TB=gp(),xB=l1(),YN=SB.WeakMap;$N.exports=TB(YN)&&/native code/.test(xB(YN))});var iP=Bn((_W,rP)=>{var EB=sT(),CB=uT(),eP=EB(\"keys\");rP.exports=function(M){return eP[M]||(eP[M]=CB(M))}});var bT=Bn((pW,tP)=>{tP.exports={}});var uP=Bn((dW,cP)=>{var kB=ZN(),sP=qc(),ST=dp(),AB=Nm(),NB=u1(),TT=Wg(),xT=s1(),PB=iP(),IB=bT(),aP=\"Object already initialized\",CT=sP.TypeError,wB=sP.WeakMap,f1,Ky,_1,OB=function(M){return _1(M)?Ky(M):f1(M,{})},FB=function(M){return function(re){var Ve;if(!AB(re)||(Ve=Ky(re)).type!==M)throw CT(\"Incompatible receiver, \"+M+\" required\");return Ve}};kB||xT.state?(qg=xT.state||(xT.state=new wB),nP=ST(qg.get),ET=ST(qg.has),oP=ST(qg.set),f1=function(M,re){if(ET(qg,M))throw new CT(aP);return re.facade=M,oP(qg,M,re),re},Ky=function(M){return nP(qg,M)||{}},_1=function(M){return ET(qg,M)}):(Im=PB(\"state\"),IB[Im]=!0,f1=function(M,re){if(TT(M,Im))throw new CT(aP);return re.facade=M,NB(M,Im,re),re},Ky=function(M){return TT(M,Im)?M[Im]:{}},_1=function(M){return TT(M,Im)});var qg,nP,ET,oP,Im;cP.exports={set:f1,get:Ky,has:_1,enforce:OB,getterFor:FB}});var _P=Bn((gW,fP)=>{var kT=Am(),MB=Wg(),lP=Function.prototype,LB=kT&&Object.getOwnPropertyDescriptor,AT=MB(lP,\"name\"),RB=AT&&function(){}.name===\"something\",BB=AT&&(!kT||kT&&LB(lP,\"name\").configurable);fP.exports={EXISTS:AT,PROPER:RB,CONFIGURABLE:BB}});var vP=Bn((mW,mP)=>{var JB=qc(),pP=gp(),jB=Wg(),dP=u1(),UB=o1(),zB=l1(),gP=uP(),WB=_P().CONFIGURABLE,qB=gP.get,VB=gP.enforce,KB=String(String).split(\"String\");(mP.exports=function(M,re,Ve,Ke){var oi=Ke?!!Ke.unsafe:!1,kr=Ke?!!Ke.enumerable:!1,pr=Ke?!!Ke.noTargetGet:!1,Lr=Ke&&Ke.name!==void 0?Ke.name:re,ar;if(pP(Ve)&&(String(Lr).slice(0,7)===\"Symbol(\"&&(Lr=\"[\"+String(Lr).replace(/^Symbol\\(([^)]*)\\)/,\"$1\")+\"]\"),(!jB(Ve,\"name\")||WB&&Ve.name!==Lr)&&dP(Ve,\"name\",Lr),ar=VB(Ve),ar.source||(ar.source=KB.join(typeof Lr==\"string\"?Lr:\"\"))),M===JB){kr?M[re]=Ve:UB(re,Ve);return}else oi?!pr&&M[re]&&(kr=!0):delete M[re];kr?M[re]=Ve:dP(M,re,Ve)})(Function.prototype,\"toString\",function(){return pP(this)&&qB(this).source||zB(this)})});var NT=Bn((vW,yP)=>{var GB=Math.ceil,HB=Math.floor;yP.exports=function(M){var re=+M;return re!==re||re===0?0:(re>0?HB:GB)(re)}});var DP=Bn((yW,hP)=>{var XB=NT(),QB=Math.max,YB=Math.min;hP.exports=function(M,re){var Ve=XB(M);return Ve<0?QB(Ve+re,0):YB(Ve,re)}});var SP=Bn((hW,bP)=>{var $B=NT(),ZB=Math.min;bP.exports=function(M){return M>0?ZB($B(M),9007199254740991):0}});var p1=Bn((DW,TP)=>{var eJ=SP();TP.exports=function(M){return eJ(M.length)}});var CP=Bn((bW,EP)=>{var rJ=t1(),iJ=DP(),tJ=p1(),xP=function(M){return function(re,Ve,Ke){var oi=rJ(re),kr=tJ(oi),pr=iJ(Ke,kr),Lr;if(M&&Ve!=Ve){for(;kr>pr;)if(Lr=oi[pr++],Lr!=Lr)return!0}else for(;kr>pr;pr++)if((M||pr in oi)&&oi[pr]===Ve)return M||pr||0;return!M&&-1}};EP.exports={includes:xP(!0),indexOf:xP(!1)}});var NP=Bn((SW,AP)=>{var aJ=dp(),PT=Wg(),nJ=t1(),oJ=CP().indexOf,sJ=bT(),kP=aJ([].push);AP.exports=function(M,re){var Ve=nJ(M),Ke=0,oi=[],kr;for(kr in Ve)!PT(sJ,kr)&&PT(Ve,kr)&&kP(oi,kr);for(;re.length>Ke;)PT(Ve,kr=re[Ke++])&&(~oJ(oi,kr)||kP(oi,kr));return oi}});var IP=Bn((TW,PP)=>{PP.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]});var OP=Bn(wP=>{var cJ=NP(),uJ=IP(),lJ=uJ.concat(\"length\",\"prototype\");wP.f=Object.getOwnPropertyNames||function(re){return cJ(re,lJ)}});var MP=Bn(FP=>{FP.f=Object.getOwnPropertySymbols});var RP=Bn((CW,LP)=>{var fJ=qy(),_J=dp(),pJ=OP(),dJ=MP(),gJ=dT(),mJ=_J([].concat);LP.exports=fJ(\"Reflect\",\"ownKeys\")||function(re){var Ve=pJ.f(gJ(re)),Ke=dJ.f;return Ke?mJ(Ve,Ke(re)):Ve}});var jP=Bn((kW,JP)=>{var BP=Wg(),vJ=RP(),yJ=pT(),hJ=hT();JP.exports=function(M,re,Ve){for(var Ke=vJ(re),oi=hJ.f,kr=yJ.f,pr=0;pr{var DJ=cg(),bJ=gp(),SJ=/#|\\.prototype\\./,Gy=function(M,re){var Ve=xJ[TJ(M)];return Ve==CJ?!0:Ve==EJ?!1:bJ(re)?DJ(re):!!re},TJ=Gy.normalize=function(M){return String(M).replace(SJ,\".\").toLowerCase()},xJ=Gy.data={},EJ=Gy.NATIVE=\"N\",CJ=Gy.POLYFILL=\"P\";UP.exports=Gy});var wT=Bn((NW,WP)=>{var IT=qc(),kJ=pT().f,AJ=u1(),NJ=vP(),PJ=o1(),IJ=jP(),wJ=zP();WP.exports=function(M,re){var Ve=M.target,Ke=M.global,oi=M.stat,kr,pr,Lr,ar,ke,e;if(Ke?pr=IT:oi?pr=IT[Ve]||PJ(Ve,{}):pr=(IT[Ve]||{}).prototype,pr)for(Lr in re){if(ke=re[Lr],M.noTargetGet?(e=kJ(pr,Lr),ar=e&&e.value):ar=pr[Lr],kr=wJ(Ke?Lr:Ve+(oi?\".\":\"#\")+Lr,M.forced),!kr&&ar!==void 0){if(typeof ke==typeof ar)continue;IJ(ke,ar)}(M.sham||ar&&ar.sham)&&AJ(ke,\"sham\",!0),NJ(pr,Lr,ke,M)}}});var qP=Bn(()=>{var OJ=wT(),FJ=qc();OJ({global:!0},{globalThis:FJ})});var VP=Bn(()=>{qP()});var OT=Bn((FW,KP)=>{var MJ=i1();KP.exports=Array.isArray||function(re){return MJ(re)==\"Array\"}});var XP=Bn((MW,HP)=>{var GP=dp(),LJ=n1(),RJ=Z0(),BJ=GP(GP.bind);HP.exports=function(M,re){return LJ(M),re===void 0?M:RJ?BJ(M,re):function(){return M.apply(re,arguments)}}});var $P=Bn((LW,YP)=>{\"use strict\";var JJ=qc(),jJ=OT(),UJ=p1(),zJ=XP(),WJ=JJ.TypeError,QP=function(M,re,Ve,Ke,oi,kr,pr,Lr){for(var ar=oi,ke=0,e=pr?zJ(pr,Lr):!1,a,C;ke0&&jJ(a))C=UJ(a),ar=QP(M,re,a,C,ar,kr-1)-1;else{if(ar>=9007199254740991)throw WJ(\"Exceed the acceptable array length\");M[ar]=a}ar++}ke++}return ar};YP.exports=QP});var r4=Bn((RW,e4)=>{var qJ=Vy(),VJ=qJ(\"toStringTag\"),ZP={};ZP[VJ]=\"z\";e4.exports=String(ZP)===\"[object z]\"});var t4=Bn((BW,i4)=>{var KJ=qc(),GJ=r4(),HJ=gp(),d1=i1(),XJ=Vy(),QJ=XJ(\"toStringTag\"),YJ=KJ.Object,$J=d1(function(){return arguments}())==\"Arguments\",ZJ=function(M,re){try{return M[re]}catch{}};i4.exports=GJ?d1:function(M){var re,Ve,Ke;return M===void 0?\"Undefined\":M===null?\"Null\":typeof(Ve=ZJ(re=YJ(M),QJ))==\"string\"?Ve:$J?d1(re):(Ke=d1(re))==\"Object\"&&HJ(re.callee)?\"Arguments\":Ke}});var u4=Bn((JW,c4)=>{var ej=dp(),rj=cg(),a4=gp(),ij=t4(),tj=qy(),aj=l1(),n4=function(){},nj=[],o4=tj(\"Reflect\",\"construct\"),FT=/^\\s*(?:class|function)\\b/,oj=ej(FT.exec),sj=!FT.exec(n4),Hy=function(re){if(!a4(re))return!1;try{return o4(n4,nj,re),!0}catch{return!1}},s4=function(re){if(!a4(re))return!1;switch(ij(re)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return sj||!!oj(FT,aj(re))}catch{return!0}};s4.sham=!0;c4.exports=!o4||rj(function(){var M;return Hy(Hy.call)||!Hy(Object)||!Hy(function(){M=!0})||M})?s4:Hy});var p4=Bn((jW,_4)=>{var cj=qc(),l4=OT(),uj=u4(),lj=Nm(),fj=Vy(),_j=fj(\"species\"),f4=cj.Array;_4.exports=function(M){var re;return l4(M)&&(re=M.constructor,uj(re)&&(re===f4||l4(re.prototype))?re=void 0:lj(re)&&(re=re[_j],re===null&&(re=void 0))),re===void 0?f4:re}});var g4=Bn((UW,d4)=>{var pj=p4();d4.exports=function(M,re){return new(pj(M))(re===0?0:re)}});var m4=Bn(()=>{\"use strict\";var dj=wT(),gj=$P(),mj=n1(),vj=cT(),yj=p1(),hj=g4();dj({target:\"Array\",proto:!0},{flatMap:function(re){var Ve=vj(this),Ke=yj(Ve),oi;return mj(re),oi=hj(Ve,0),oi.length=gj(oi,Ve,Ve,Ke,0,1,re,arguments.length>1?arguments[1]:void 0),oi}})});var Dz=Bn((qW,f3)=>{VP();m4();var zT=Object.defineProperty,Dj=Object.getOwnPropertyDescriptor,WT=Object.getOwnPropertyNames,bj=Object.prototype.hasOwnProperty,Qy=(M,re)=>function(){return M&&(re=(0,M[WT(M)[0]])(M=0)),re},Oa=(M,re)=>function(){return re||(0,M[WT(M)[0]])((re={exports:{}}).exports,re),re.exports},h1=(M,re)=>{for(var Ve in re)zT(M,Ve,{get:re[Ve],enumerable:!0})},Sj=(M,re,Ve,Ke)=>{if(re&&typeof re==\"object\"||typeof re==\"function\")for(let oi of WT(re))!bj.call(M,oi)&&oi!==Ve&&zT(M,oi,{get:()=>re[oi],enumerable:!(Ke=Dj(re,oi))||Ke.enumerable});return M},mp=M=>Sj(zT({},\"__esModule\",{value:!0}),M),v4,y4,Eu,Ea=Qy({\"\"(){v4={},y4=[],Eu={env:v4,argv:y4}}}),S4=Oa({\"src/common/parser-create-error.js\"(M,re){\"use strict\";Ea();function Ve(Ke,oi){let kr=new SyntaxError(Ke+\" (\"+oi.start.line+\":\"+oi.start.column+\")\");return kr.loc=oi,kr}re.exports=Ve}}),Tj=Oa({\"src/utils/try-combinations.js\"(M,re){\"use strict\";Ea();function Ve(){let Ke;for(var oi=arguments.length,kr=new Array(oi),pr=0;prRT,arch:()=>xj,cpus:()=>P4,default:()=>M4,endianness:()=>x4,freemem:()=>A4,getNetworkInterfaces:()=>F4,hostname:()=>E4,loadavg:()=>C4,networkInterfaces:()=>O4,platform:()=>Ej,release:()=>w4,tmpDir:()=>MT,tmpdir:()=>LT,totalmem:()=>N4,type:()=>I4,uptime:()=>k4});function x4(){if(typeof g1>\"u\"){var M=new ArrayBuffer(2),re=new Uint8Array(M),Ve=new Uint16Array(M);if(re[0]=1,re[1]=2,Ve[0]===258)g1=\"BE\";else if(Ve[0]===513)g1=\"LE\";else throw new Error(\"unable to figure out endianess\")}return g1}function E4(){return typeof globalThis.location<\"u\"?globalThis.location.hostname:\"\"}function C4(){return[]}function k4(){return 0}function A4(){return Number.MAX_VALUE}function N4(){return Number.MAX_VALUE}function P4(){return[]}function I4(){return\"Browser\"}function w4(){return typeof globalThis.navigator<\"u\"?globalThis.navigator.appVersion:\"\"}function O4(){}function F4(){}function xj(){return\"javascript\"}function Ej(){return\"browser\"}function MT(){return\"/tmp\"}var g1,LT,RT,M4,Cj=Qy({\"node-modules-polyfills:os\"(){Ea(),LT=MT,RT=`\n`,M4={EOL:RT,tmpdir:LT,tmpDir:MT,networkInterfaces:O4,getNetworkInterfaces:F4,release:w4,type:I4,cpus:P4,totalmem:N4,freemem:A4,uptime:k4,loadavg:C4,hostname:E4,endianness:x4}}}),kj=Oa({\"node-modules-polyfills-commonjs:os\"(M,re){Ea();var Ve=(Cj(),mp(T4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),Aj=Oa({\"node_modules/detect-newline/index.js\"(M,re){\"use strict\";Ea();var Ve=Ke=>{if(typeof Ke!=\"string\")throw new TypeError(\"Expected a string\");let oi=Ke.match(/(?:\\r?\\n)/g)||[];if(oi.length===0)return;let kr=oi.filter(Lr=>Lr===`\\r\n`).length,pr=oi.length-kr;return kr>pr?`\\r\n`:`\n`};re.exports=Ve,re.exports.graceful=Ke=>typeof Ke==\"string\"&&Ve(Ke)||`\n`}}),Nj=Oa({\"node_modules/jest-docblock/build/index.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.extract=w,M.parse=E,M.parseWithComments=Q,M.print=le,M.strip=B;function re(){let p=kj();return re=function(){return p},p}function Ve(){let p=Ke(Aj());return Ve=function(){return p},p}function Ke(p){return p&&p.__esModule?p:{default:p}}var oi=/\\*\\/$/,kr=/^\\/\\*\\*/,pr=/^\\s*(\\/\\*\\*?(.|\\r?\\n)*?\\*\\/)/,Lr=/(^|\\s+)\\/\\/([^\\r\\n]*)/g,ar=/^(\\r?\\n)+/,ke=/(?:^|\\r?\\n) *(@[^\\r\\n]*?) *\\r?\\n *(?![^@\\r\\n]*\\/\\/[^]*)([^@\\r\\n\\s][^@\\r\\n]+?) *\\r?\\n/g,e=/(?:^|\\r?\\n) *@(\\S+) *([^\\r\\n]*)/g,a=/(\\r?\\n|^) *\\* ?/g,C=[];function w(p){let m=p.match(pr);return m?m[0].trimLeft():\"\"}function B(p){let m=p.match(pr);return m&&m[0]?p.substring(m[0].length):p}function E(p){return Q(p).pragmas}function Q(p){let m=(0,Ve().default)(p)||re().EOL;p=p.replace(kr,\"\").replace(oi,\"\").replace(a,\"$1\");let G=\"\";for(;G!==p;)G=p,p=p.replace(ke,\"\".concat(m,\"$1 $2\").concat(m));p=p.replace(ar,\"\").trimRight();let oe=Object.create(null),f=p.replace(e,\"\").replace(ar,\"\").trimRight(),T;for(;T=e.exec(p);){let K=T[2].replace(Lr,\"\");typeof oe[T[1]]==\"string\"||Array.isArray(oe[T[1]])?oe[T[1]]=C.concat(oe[T[1]],K):oe[T[1]]=K}return{comments:f,pragmas:oe}}function le(p){let{comments:m=\"\",pragmas:G={}}=p,oe=(0,Ve().default)(m)||re().EOL,f=\"/**\",T=\" *\",K=\" */\",b=Object.keys(G),se=b.map(ie=>N(ie,G[ie])).reduce((ie,R)=>ie.concat(R),[]).map(ie=>T+\" \"+ie+oe).join(\"\");if(!m){if(b.length===0)return\"\";if(b.length===1&&!Array.isArray(G[b[0]])){let ie=G[b[0]];return\"\".concat(f,\" \").concat(N(b[0],ie)[0]).concat(K)}}let J=m.split(oe).map(ie=>\"\".concat(T,\" \").concat(ie)).join(oe)+oe;return f+oe+(m?J:\"\")+(m&&b.length?T+oe:\"\")+se+K}function N(p,m){return C.concat(m).map(G=>\"@\".concat(p,\" \").concat(G).trim())}}}),Pj=Oa({\"src/common/end-of-line.js\"(M,re){\"use strict\";Ea();function Ve(pr){let Lr=pr.indexOf(\"\\r\");return Lr>=0?pr.charAt(Lr+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function Ke(pr){switch(pr){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function oi(pr,Lr){let ar;switch(Lr){case`\n`:ar=/\\n/g;break;case\"\\r\":ar=/\\r/g;break;case`\\r\n`:ar=/\\r\\n/g;break;default:throw new Error('Unexpected \"eol\" '.concat(JSON.stringify(Lr),\".\"))}let ke=pr.match(ar);return ke?ke.length:0}function kr(pr){return pr.replace(/\\r\\n?/g,`\n`)}re.exports={guessEndOfLine:Ve,convertEndOfLineToChars:Ke,countEndOfLineChars:oi,normalizeEndOfLine:kr}}}),Ij=Oa({\"src/language-js/utils/get-shebang.js\"(M,re){\"use strict\";Ea();function Ve(Ke){if(!Ke.startsWith(\"#!\"))return\"\";let oi=Ke.indexOf(`\n`);return oi===-1?Ke:Ke.slice(0,oi)}re.exports=Ve}}),wj=Oa({\"src/language-js/pragma.js\"(M,re){\"use strict\";Ea();var{parseWithComments:Ve,strip:Ke,extract:oi,print:kr}=Nj(),{normalizeEndOfLine:pr}=Pj(),Lr=Ij();function ar(a){let C=Lr(a);C&&(a=a.slice(C.length+1));let w=oi(a),{pragmas:B,comments:E}=Ve(w);return{shebang:C,text:a,pragmas:B,comments:E}}function ke(a){let C=Object.keys(ar(a).pragmas);return C.includes(\"prettier\")||C.includes(\"format\")}function e(a){let{shebang:C,text:w,pragmas:B,comments:E}=ar(a),Q=Ke(w),le=kr({pragmas:Object.assign({format:\"\"},B),comments:E.trimStart()});return(C?\"\".concat(C,`\n`):\"\")+pr(le)+(Q.startsWith(`\n`)?`\n`:`\n\n`)+Q}re.exports={hasPragma:ke,insertPragma:e}}}),Oj=Oa({\"src/utils/is-non-empty-array.js\"(M,re){\"use strict\";Ea();function Ve(Ke){return Array.isArray(Ke)&&Ke.length>0}re.exports=Ve}}),L4=Oa({\"src/language-js/loc.js\"(M,re){\"use strict\";Ea();var Ve=Oj();function Ke(ar,ke){let{ignoreDecorators:e}=ke||{};if(!e){let a=ar.declaration&&ar.declaration.decorators||ar.decorators;if(Ve(a))return Ke(a[0])}return ar.range?ar.range[0]:ar.start}function oi(ar){return ar.range?ar.range[1]:ar.end}function kr(ar,ke){let e=Ke(ar);return Number.isInteger(e)&&e===Ke(ke)}function pr(ar,ke){let e=oi(ar);return Number.isInteger(e)&&e===oi(ke)}function Lr(ar,ke){return kr(ar,ke)&&pr(ar,ke)}re.exports={locStart:Ke,locEnd:oi,hasSameLocStart:kr,hasSameLoc:Lr}}}),Fj=Oa({\"src/language-js/parse/utils/create-parser.js\"(M,re){\"use strict\";Ea();var{hasPragma:Ve}=wj(),{locStart:Ke,locEnd:oi}=L4();function kr(pr){return pr=typeof pr==\"function\"?{parse:pr}:pr,Object.assign({astFormat:\"estree\",hasPragma:Ve,locStart:Ke,locEnd:oi},pr)}re.exports=kr}}),Mj=Oa({\"src/language-js/parse/utils/replace-hashbang.js\"(M,re){\"use strict\";Ea();function Ve(Ke){return Ke.charAt(0)===\"#\"&&Ke.charAt(1)===\"!\"?\"//\"+Ke.slice(2):Ke}re.exports=Ve}}),Lj=Oa({\"src/language-js/utils/is-ts-keyword-type.js\"(M,re){\"use strict\";Ea();function Ve(Ke){let{type:oi}=Ke;return oi.startsWith(\"TS\")&&oi.endsWith(\"Keyword\")}re.exports=Ve}}),Rj=Oa({\"src/language-js/utils/is-block-comment.js\"(M,re){\"use strict\";Ea();var Ve=new Set([\"Block\",\"CommentBlock\",\"MultiLine\"]),Ke=oi=>Ve.has(oi==null?void 0:oi.type);re.exports=Ke}}),Bj=Oa({\"src/language-js/utils/is-type-cast-comment.js\"(M,re){\"use strict\";Ea();var Ve=Rj();function Ke(oi){return Ve(oi)&&oi.value[0]===\"*\"&&/@type\\b/.test(oi.value)}re.exports=Ke}}),Jj=Oa({\"src/utils/get-last.js\"(M,re){\"use strict\";Ea();var Ve=Ke=>Ke[Ke.length-1];re.exports=Ve}}),R4=Oa({\"src/language-js/parse/postprocess/visit-node.js\"(M,re){\"use strict\";Ea();function Ve(Ke,oi){if(Array.isArray(Ke)){for(let kr=0;kr{let w=ke.get(C);return!w||!a.includes(w)}))&&Ke(ar,\"Leading decorators must be attached to a class declaration\")}function kr(Lr,ar){Lr.kind!==167||Lr.modifiers&&!Lr.modifiers.some(a=>a.kind===126)||Lr.initializer&&ar.value===null&&Ke(ar,\"Abstract property cannot have an initializer\")}function pr(Lr,ar){let{esTreeNodeToTSNodeMap:ke,tsNodeToESTreeNodeMap:e}=ar.tsParseResult;Ve(Lr,a=>{let C=ke.get(a);if(!C)return;let w=e.get(C);w===a&&(oi(C,w,e),kr(C,w))})}re.exports={throwErrorForInvalidNodes:pr}}}),Uj=Oa({\"src/language-js/parse/postprocess/index.js\"(M,re){\"use strict\";Ea();var{locStart:Ve,locEnd:Ke}=L4(),oi=Lj(),kr=Bj(),pr=Jj(),Lr=R4(),{throwErrorForInvalidNodes:ar}=jj(),ke=B4();function e(B,E){if(E.parser===\"typescript\"&&/@|abstract/.test(E.originalText)&&ar(B,E),E.parser!==\"typescript\"&&E.parser!==\"flow\"&&E.parser!==\"acorn\"&&E.parser!==\"espree\"&&E.parser!==\"meriyah\"){let le=new Set;B=Lr(B,N=>{N.leadingComments&&N.leadingComments.some(kr)&&le.add(Ve(N))}),B=Lr(B,N=>{if(N.type===\"ParenthesizedExpression\"){let{expression:p}=N;if(p.type===\"TypeCastExpression\")return p.range=N.range,p;let m=Ve(N);if(!le.has(m))return p.extra=Object.assign(Object.assign({},p.extra),{},{parenthesized:!0}),p}})}return B=Lr(B,le=>{switch(le.type){case\"ChainExpression\":return a(le.expression);case\"LogicalExpression\":{if(C(le))return w(le);break}case\"VariableDeclaration\":{let N=pr(le.declarations);N&&N.init&&Q(le,N);break}case\"TSParenthesizedType\":return oi(le.typeAnnotation)||le.typeAnnotation.type===\"TSThisType\"||(le.typeAnnotation.range=[Ve(le),Ke(le)]),le.typeAnnotation;case\"TSTypeParameter\":if(typeof le.name==\"string\"){let N=Ve(le);le.name={type:\"Identifier\",name:le.name,range:[N,N+le.name.length]}}break;case\"ObjectExpression\":if(E.parser===\"typescript\"){let N=le.properties.find(p=>p.type===\"Property\"&&p.value.type===\"TSEmptyBodyFunctionExpression\");N&&ke(N.value,\"Unexpected token.\")}break;case\"SequenceExpression\":{let N=pr(le.expressions);le.range=[Ve(le),Math.min(Ke(N),Ke(le))];break}case\"TopicReference\":E.__isUsingHackPipeline=!0;break;case\"ExportAllDeclaration\":{let{exported:N}=le;if(E.parser===\"meriyah\"&&N&&N.type===\"Identifier\"){let p=E.originalText.slice(Ve(N),Ke(N));(p.startsWith('\"')||p.startsWith(\"'\"))&&(le.exported=Object.assign(Object.assign({},le.exported),{},{type:\"Literal\",value:le.exported.name,raw:p}))}break}}}),B;function Q(le,N){E.originalText[Ke(N)]!==\";\"&&(le.range=[Ve(le),Ke(N)])}}function a(B){switch(B.type){case\"CallExpression\":B.type=\"OptionalCallExpression\",B.callee=a(B.callee);break;case\"MemberExpression\":B.type=\"OptionalMemberExpression\",B.object=a(B.object);break;case\"TSNonNullExpression\":B.expression=a(B.expression);break}return B}function C(B){return B.type===\"LogicalExpression\"&&B.right.type===\"LogicalExpression\"&&B.operator===B.right.operator}function w(B){return C(B)?w({type:\"LogicalExpression\",operator:B.operator,left:w({type:\"LogicalExpression\",operator:B.operator,left:B.left,right:B.right.left,range:[Ve(B.left),Ke(B.right.left)]}),right:B.right.right,range:[Ve(B),Ke(B)]}):B}re.exports=e}}),zj=Oa({\"node_modules/ms/index.js\"(M,re){Ea();var Ve=1e3,Ke=Ve*60,oi=Ke*60,kr=oi*24,pr=kr*7,Lr=kr*365.25;re.exports=function(C,w){w=w||{};var B=typeof C;if(B===\"string\"&&C.length>0)return ar(C);if(B===\"number\"&&isFinite(C))return w.long?e(C):ke(C);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(C))};function ar(C){if(C=String(C),!(C.length>100)){var w=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(C);if(!!w){var B=parseFloat(w[1]),E=(w[2]||\"ms\").toLowerCase();switch(E){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return B*Lr;case\"weeks\":case\"week\":case\"w\":return B*pr;case\"days\":case\"day\":case\"d\":return B*kr;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return B*oi;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return B*Ke;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return B*Ve;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return B;default:return}}}}function ke(C){var w=Math.abs(C);return w>=kr?Math.round(C/kr)+\"d\":w>=oi?Math.round(C/oi)+\"h\":w>=Ke?Math.round(C/Ke)+\"m\":w>=Ve?Math.round(C/Ve)+\"s\":C+\"ms\"}function e(C){var w=Math.abs(C);return w>=kr?a(C,w,kr,\"day\"):w>=oi?a(C,w,oi,\"hour\"):w>=Ke?a(C,w,Ke,\"minute\"):w>=Ve?a(C,w,Ve,\"second\"):C+\" ms\"}function a(C,w,B,E){var Q=w>=B*1.5;return Math.round(C/B)+\" \"+E+(Q?\"s\":\"\")}}}),Wj=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/debug/src/common.js\"(M,re){Ea();function Ve(Ke){kr.debug=kr,kr.default=kr,kr.coerce=a,kr.disable=ar,kr.enable=Lr,kr.enabled=ke,kr.humanize=zj(),kr.destroy=C,Object.keys(Ke).forEach(w=>{kr[w]=Ke[w]}),kr.names=[],kr.skips=[],kr.formatters={};function oi(w){let B=0;for(let E=0;E{if(se===\"%%\")return\"%\";K++;let ie=kr.formatters[J];if(typeof ie==\"function\"){let R=m[K];se=ie.call(oe,R),m.splice(K,1),K--}return se}),kr.formatArgs.call(oe,m),(oe.log||kr.log).apply(oe,m)}return N.namespace=w,N.useColors=kr.useColors(),N.color=kr.selectColor(w),N.extend=pr,N.destroy=kr.destroy,Object.defineProperty(N,\"enabled\",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(Q!==kr.namespaces&&(Q=kr.namespaces,le=kr.enabled(w)),le),set:p=>{E=p}}),typeof kr.init==\"function\"&&kr.init(N),N}function pr(w,B){let E=kr(this.namespace+(typeof B>\"u\"?\":\":B)+w);return E.log=this.log,E}function Lr(w){kr.save(w),kr.namespaces=w,kr.names=[],kr.skips=[];let B,E=(typeof w==\"string\"?w:\"\").split(/[\\s,]+/),Q=E.length;for(B=0;B\"-\"+B)].join(\",\");return kr.enable(\"\"),w}function ke(w){if(w[w.length-1]===\"*\")return!0;let B,E;for(B=0,E=kr.skips.length;B{let ar=!1;return()=>{ar||(ar=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})(),M.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"];function Ve(){return typeof window<\"u\"&&window.process&&(window.process.type===\"renderer\"||window.process.__nwjs)?!0:typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)?!1:typeof document<\"u\"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<\"u\"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)}function Ke(ar){if(ar[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+ar[0]+(this.useColors?\"%c \":\" \")+\"+\"+re.exports.humanize(this.diff),!this.useColors)return;let ke=\"color: \"+this.color;ar.splice(1,0,ke,\"color: inherit\");let e=0,a=0;ar[0].replace(/%[a-zA-Z%]/g,C=>{C!==\"%%\"&&(e++,C===\"%c\"&&(a=e))}),ar.splice(a,0,ke)}M.log=console.debug||console.log||(()=>{});function oi(ar){try{ar?M.storage.setItem(\"debug\",ar):M.storage.removeItem(\"debug\")}catch{}}function kr(){let ar;try{ar=M.storage.getItem(\"debug\")}catch{}return!ar&&typeof Eu<\"u\"&&\"env\"in Eu&&(ar=Eu.env.DEBUG),ar}function pr(){try{return localStorage}catch{}}re.exports=Wj()(M);var{formatters:Lr}=re.exports;Lr.j=function(ar){try{return JSON.stringify(ar)}catch(ke){return\"[UnexpectedJSONParseError]: \"+ke.message}}}}),qj=Oa({\"node_modules/is-extglob/index.js\"(M,re){Ea(),re.exports=function(Ke){if(typeof Ke!=\"string\"||Ke===\"\")return!1;for(var oi;oi=/(\\\\).|([@?!+*]\\(.*\\))/g.exec(Ke);){if(oi[2])return!0;Ke=Ke.slice(oi.index+oi[0].length)}return!1}}}),Vj=Oa({\"node_modules/is-glob/index.js\"(M,re){Ea();var Ve=qj(),Ke={\"{\":\"}\",\"(\":\")\",\"[\":\"]\"},oi=function(pr){if(pr[0]===\"!\")return!0;for(var Lr=0,ar=-2,ke=-2,e=-2,a=-2,C=-2;LrLr&&(C===-1||C>ke||(C=pr.indexOf(\"\\\\\",Lr),C===-1||C>ke)))||e!==-1&&pr[Lr]===\"{\"&&pr[Lr+1]!==\"}\"&&(e=pr.indexOf(\"}\",Lr),e>Lr&&(C=pr.indexOf(\"\\\\\",Lr),C===-1||C>e))||a!==-1&&pr[Lr]===\"(\"&&pr[Lr+1]===\"?\"&&/[:!=]/.test(pr[Lr+2])&&pr[Lr+3]!==\")\"&&(a=pr.indexOf(\")\",Lr),a>Lr&&(C=pr.indexOf(\"\\\\\",Lr),C===-1||C>a))||ar!==-1&&pr[Lr]===\"(\"&&pr[Lr+1]!==\"|\"&&(arar&&(C=pr.indexOf(\"\\\\\",ar),C===-1||C>a))))return!0;if(pr[Lr]===\"\\\\\"){var w=pr[Lr+1];Lr+=2;var B=Ke[w];if(B){var E=pr.indexOf(B,Lr);E!==-1&&(Lr=E+1)}if(pr[Lr]===\"!\")return!0}else Lr++}return!1},kr=function(pr){if(pr[0]===\"!\")return!0;for(var Lr=0;Lr{};re.exports=Ve}}),wv=Oa({\"node_modules/semver/internal/re.js\"(M,re){Ea();var{MAX_SAFE_COMPONENT_LENGTH:Ve}=D1(),Ke=b1();M=re.exports={};var oi=M.re=[],kr=M.src=[],pr=M.t={},Lr=0,ar=(ke,e,a)=>{let C=Lr++;Ke(ke,C,e),pr[ke]=C,kr[C]=e,oi[C]=new RegExp(e,a?\"g\":void 0)};ar(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\d*\"),ar(\"NUMERICIDENTIFIERLOOSE\",\"[0-9]+\"),ar(\"NONNUMERICIDENTIFIER\",\"\\\\d*[a-zA-Z-][a-zA-Z0-9-]*\"),ar(\"MAINVERSION\",\"(\".concat(kr[pr.NUMERICIDENTIFIER],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIER],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIER],\")\")),ar(\"MAINVERSIONLOOSE\",\"(\".concat(kr[pr.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIERLOOSE],\")\\\\.(\").concat(kr[pr.NUMERICIDENTIFIERLOOSE],\")\")),ar(\"PRERELEASEIDENTIFIER\",\"(?:\".concat(kr[pr.NUMERICIDENTIFIER],\"|\").concat(kr[pr.NONNUMERICIDENTIFIER],\")\")),ar(\"PRERELEASEIDENTIFIERLOOSE\",\"(?:\".concat(kr[pr.NUMERICIDENTIFIERLOOSE],\"|\").concat(kr[pr.NONNUMERICIDENTIFIER],\")\")),ar(\"PRERELEASE\",\"(?:-(\".concat(kr[pr.PRERELEASEIDENTIFIER],\"(?:\\\\.\").concat(kr[pr.PRERELEASEIDENTIFIER],\")*))\")),ar(\"PRERELEASELOOSE\",\"(?:-?(\".concat(kr[pr.PRERELEASEIDENTIFIERLOOSE],\"(?:\\\\.\").concat(kr[pr.PRERELEASEIDENTIFIERLOOSE],\")*))\")),ar(\"BUILDIDENTIFIER\",\"[0-9A-Za-z-]+\"),ar(\"BUILD\",\"(?:\\\\+(\".concat(kr[pr.BUILDIDENTIFIER],\"(?:\\\\.\").concat(kr[pr.BUILDIDENTIFIER],\")*))\")),ar(\"FULLPLAIN\",\"v?\".concat(kr[pr.MAINVERSION]).concat(kr[pr.PRERELEASE],\"?\").concat(kr[pr.BUILD],\"?\")),ar(\"FULL\",\"^\".concat(kr[pr.FULLPLAIN],\"$\")),ar(\"LOOSEPLAIN\",\"[v=\\\\s]*\".concat(kr[pr.MAINVERSIONLOOSE]).concat(kr[pr.PRERELEASELOOSE],\"?\").concat(kr[pr.BUILD],\"?\")),ar(\"LOOSE\",\"^\".concat(kr[pr.LOOSEPLAIN],\"$\")),ar(\"GTLT\",\"((?:<|>)?=?)\"),ar(\"XRANGEIDENTIFIERLOOSE\",\"\".concat(kr[pr.NUMERICIDENTIFIERLOOSE],\"|x|X|\\\\*\")),ar(\"XRANGEIDENTIFIER\",\"\".concat(kr[pr.NUMERICIDENTIFIER],\"|x|X|\\\\*\")),ar(\"XRANGEPLAIN\",\"[v=\\\\s]*(\".concat(kr[pr.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIER],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIER],\")(?:\").concat(kr[pr.PRERELEASE],\")?\").concat(kr[pr.BUILD],\"?)?)?\")),ar(\"XRANGEPLAINLOOSE\",\"[v=\\\\s]*(\".concat(kr[pr.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIERLOOSE],\")(?:\\\\.(\").concat(kr[pr.XRANGEIDENTIFIERLOOSE],\")(?:\").concat(kr[pr.PRERELEASELOOSE],\")?\").concat(kr[pr.BUILD],\"?)?)?\")),ar(\"XRANGE\",\"^\".concat(kr[pr.GTLT],\"\\\\s*\").concat(kr[pr.XRANGEPLAIN],\"$\")),ar(\"XRANGELOOSE\",\"^\".concat(kr[pr.GTLT],\"\\\\s*\").concat(kr[pr.XRANGEPLAINLOOSE],\"$\")),ar(\"COERCE\",\"(^|[^\\\\d])(\\\\d{1,\".concat(Ve,\"})(?:\\\\.(\\\\d{1,\").concat(Ve,\"}))?(?:\\\\.(\\\\d{1,\").concat(Ve,\"}))?(?:$|[^\\\\d])\")),ar(\"COERCERTL\",kr[pr.COERCE],!0),ar(\"LONETILDE\",\"(?:~>?)\"),ar(\"TILDETRIM\",\"(\\\\s*)\".concat(kr[pr.LONETILDE],\"\\\\s+\"),!0),M.tildeTrimReplace=\"$1~\",ar(\"TILDE\",\"^\".concat(kr[pr.LONETILDE]).concat(kr[pr.XRANGEPLAIN],\"$\")),ar(\"TILDELOOSE\",\"^\".concat(kr[pr.LONETILDE]).concat(kr[pr.XRANGEPLAINLOOSE],\"$\")),ar(\"LONECARET\",\"(?:\\\\^)\"),ar(\"CARETTRIM\",\"(\\\\s*)\".concat(kr[pr.LONECARET],\"\\\\s+\"),!0),M.caretTrimReplace=\"$1^\",ar(\"CARET\",\"^\".concat(kr[pr.LONECARET]).concat(kr[pr.XRANGEPLAIN],\"$\")),ar(\"CARETLOOSE\",\"^\".concat(kr[pr.LONECARET]).concat(kr[pr.XRANGEPLAINLOOSE],\"$\")),ar(\"COMPARATORLOOSE\",\"^\".concat(kr[pr.GTLT],\"\\\\s*(\").concat(kr[pr.LOOSEPLAIN],\")$|^$\")),ar(\"COMPARATOR\",\"^\".concat(kr[pr.GTLT],\"\\\\s*(\").concat(kr[pr.FULLPLAIN],\")$|^$\")),ar(\"COMPARATORTRIM\",\"(\\\\s*)\".concat(kr[pr.GTLT],\"\\\\s*(\").concat(kr[pr.LOOSEPLAIN],\"|\").concat(kr[pr.XRANGEPLAIN],\")\"),!0),M.comparatorTrimReplace=\"$1$2$3\",ar(\"HYPHENRANGE\",\"^\\\\s*(\".concat(kr[pr.XRANGEPLAIN],\")\\\\s+-\\\\s+(\").concat(kr[pr.XRANGEPLAIN],\")\\\\s*$\")),ar(\"HYPHENRANGELOOSE\",\"^\\\\s*(\".concat(kr[pr.XRANGEPLAINLOOSE],\")\\\\s+-\\\\s+(\").concat(kr[pr.XRANGEPLAINLOOSE],\")\\\\s*$\")),ar(\"STAR\",\"(<|>)?=?\\\\s*\\\\*\"),ar(\"GTE0\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\"),ar(\"GTE0PRE\",\"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\")}}),S1=Oa({\"node_modules/semver/internal/parse-options.js\"(M,re){Ea();var Ve=[\"includePrerelease\",\"loose\",\"rtl\"],Ke=oi=>oi?typeof oi!=\"object\"?{loose:!0}:Ve.filter(kr=>oi[kr]).reduce((kr,pr)=>(kr[pr]=!0,kr),{}):{};re.exports=Ke}}),BT=Oa({\"node_modules/semver/internal/identifiers.js\"(M,re){Ea();var Ve=/^[0-9]+$/,Ke=(kr,pr)=>{let Lr=Ve.test(kr),ar=Ve.test(pr);return Lr&&ar&&(kr=+kr,pr=+pr),kr===pr?0:Lr&&!ar?-1:ar&&!Lr?1:krKe(pr,kr);re.exports={compareIdentifiers:Ke,rcompareIdentifiers:oi}}}),Lf=Oa({\"node_modules/semver/classes/semver.js\"(M,re){Ea();var Ve=b1(),{MAX_LENGTH:Ke,MAX_SAFE_INTEGER:oi}=D1(),{re:kr,t:pr}=wv(),Lr=S1(),{compareIdentifiers:ar}=BT(),ke=class{constructor(e,a){if(a=Lr(a),e instanceof ke){if(e.loose===!!a.loose&&e.includePrerelease===!!a.includePrerelease)return e;e=e.version}else if(typeof e!=\"string\")throw new TypeError(\"Invalid Version: \".concat(e));if(e.length>Ke)throw new TypeError(\"version is longer than \".concat(Ke,\" characters\"));Ve(\"SemVer\",e,a),this.options=a,this.loose=!!a.loose,this.includePrerelease=!!a.includePrerelease;let C=e.trim().match(a.loose?kr[pr.LOOSE]:kr[pr.FULL]);if(!C)throw new TypeError(\"Invalid Version: \".concat(e));if(this.raw=e,this.major=+C[1],this.minor=+C[2],this.patch=+C[3],this.major>oi||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>oi||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>oi||this.patch<0)throw new TypeError(\"Invalid patch version\");C[4]?this.prerelease=C[4].split(\".\").map(w=>{if(/^[0-9]+$/.test(w)){let B=+w;if(B>=0&&B=0;)typeof this.prerelease[C]==\"number\"&&(this.prerelease[C]++,C=-2);C===-1&&this.prerelease.push(0)}a&&(ar(this.prerelease[0],a)===0?isNaN(this.prerelease[1])&&(this.prerelease=[a,0]):this.prerelease=[a,0]);break;default:throw new Error(\"invalid increment argument: \".concat(e))}return this.format(),this.raw=this.version,this}};re.exports=ke}}),Ov=Oa({\"node_modules/semver/functions/parse.js\"(M,re){Ea();var{MAX_LENGTH:Ve}=D1(),{re:Ke,t:oi}=wv(),kr=Lf(),pr=S1(),Lr=(ar,ke)=>{if(ke=pr(ke),ar instanceof kr)return ar;if(typeof ar!=\"string\"||ar.length>Ve||!(ke.loose?Ke[oi.LOOSE]:Ke[oi.FULL]).test(ar))return null;try{return new kr(ar,ke)}catch{return null}};re.exports=Lr}}),Kj=Oa({\"node_modules/semver/functions/valid.js\"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi,kr);return pr?pr.version:null};re.exports=Ke}}),Gj=Oa({\"node_modules/semver/functions/clean.js\"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi.trim().replace(/^[=v]+/,\"\"),kr);return pr?pr.version:null};re.exports=Ke}}),Hj=Oa({\"node_modules/semver/functions/inc.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr,Lr)=>{typeof pr==\"string\"&&(Lr=pr,pr=void 0);try{return new Ve(oi instanceof Ve?oi.version:oi,pr).inc(kr,Lr).version}catch{return null}};re.exports=Ke}}),nd=Oa({\"node_modules/semver/functions/compare.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr)=>new Ve(oi,pr).compare(new Ve(kr,pr));re.exports=Ke}}),qT=Oa({\"node_modules/semver/functions/eq.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)===0;re.exports=Ke}}),Xj=Oa({\"node_modules/semver/functions/diff.js\"(M,re){Ea();var Ve=Ov(),Ke=qT(),oi=(kr,pr)=>{if(Ke(kr,pr))return null;{let Lr=Ve(kr),ar=Ve(pr),ke=Lr.prerelease.length||ar.prerelease.length,e=ke?\"pre\":\"\",a=ke?\"prerelease\":\"\";for(let C in Lr)if((C===\"major\"||C===\"minor\"||C===\"patch\")&&Lr[C]!==ar[C])return e+C;return a}};re.exports=oi}}),Qj=Oa({\"node_modules/semver/functions/major.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).major;re.exports=Ke}}),Yj=Oa({\"node_modules/semver/functions/minor.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).minor;re.exports=Ke}}),$j=Oa({\"node_modules/semver/functions/patch.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr)=>new Ve(oi,kr).patch;re.exports=Ke}}),Zj=Oa({\"node_modules/semver/functions/prerelease.js\"(M,re){Ea();var Ve=Ov(),Ke=(oi,kr)=>{let pr=Ve(oi,kr);return pr&&pr.prerelease.length?pr.prerelease:null};re.exports=Ke}}),eU=Oa({\"node_modules/semver/functions/rcompare.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(kr,oi,pr);re.exports=Ke}}),rU=Oa({\"node_modules/semver/functions/compare-loose.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr)=>Ve(oi,kr,!0);re.exports=Ke}}),VT=Oa({\"node_modules/semver/functions/compare-build.js\"(M,re){Ea();var Ve=Lf(),Ke=(oi,kr,pr)=>{let Lr=new Ve(oi,pr),ar=new Ve(kr,pr);return Lr.compare(ar)||Lr.compareBuild(ar)};re.exports=Ke}}),iU=Oa({\"node_modules/semver/functions/sort.js\"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((pr,Lr)=>Ve(pr,Lr,kr));re.exports=Ke}}),tU=Oa({\"node_modules/semver/functions/rsort.js\"(M,re){Ea();var Ve=VT(),Ke=(oi,kr)=>oi.sort((pr,Lr)=>Ve(Lr,pr,kr));re.exports=Ke}}),T1=Oa({\"node_modules/semver/functions/gt.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)>0;re.exports=Ke}}),KT=Oa({\"node_modules/semver/functions/lt.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)<0;re.exports=Ke}}),J4=Oa({\"node_modules/semver/functions/neq.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)!==0;re.exports=Ke}}),GT=Oa({\"node_modules/semver/functions/gte.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)>=0;re.exports=Ke}}),HT=Oa({\"node_modules/semver/functions/lte.js\"(M,re){Ea();var Ve=nd(),Ke=(oi,kr,pr)=>Ve(oi,kr,pr)<=0;re.exports=Ke}}),j4=Oa({\"node_modules/semver/functions/cmp.js\"(M,re){Ea();var Ve=qT(),Ke=J4(),oi=T1(),kr=GT(),pr=KT(),Lr=HT(),ar=(ke,e,a,C)=>{switch(e){case\"===\":return typeof ke==\"object\"&&(ke=ke.version),typeof a==\"object\"&&(a=a.version),ke===a;case\"!==\":return typeof ke==\"object\"&&(ke=ke.version),typeof a==\"object\"&&(a=a.version),ke!==a;case\"\":case\"=\":case\"==\":return Ve(ke,a,C);case\"!=\":return Ke(ke,a,C);case\">\":return oi(ke,a,C);case\">=\":return kr(ke,a,C);case\"<\":return pr(ke,a,C);case\"<=\":return Lr(ke,a,C);default:throw new TypeError(\"Invalid operator: \".concat(e))}};re.exports=ar}}),aU=Oa({\"node_modules/semver/functions/coerce.js\"(M,re){Ea();var Ve=Lf(),Ke=Ov(),{re:oi,t:kr}=wv(),pr=(Lr,ar)=>{if(Lr instanceof Ve)return Lr;if(typeof Lr==\"number\"&&(Lr=String(Lr)),typeof Lr!=\"string\")return null;ar=ar||{};let ke=null;if(!ar.rtl)ke=Lr.match(oi[kr.COERCE]);else{let e;for(;(e=oi[kr.COERCERTL].exec(Lr))&&(!ke||ke.index+ke[0].length!==Lr.length);)(!ke||e.index+e[0].length!==ke.index+ke[0].length)&&(ke=e),oi[kr.COERCERTL].lastIndex=e.index+e[1].length+e[2].length;oi[kr.COERCERTL].lastIndex=-1}return ke===null?null:Ke(\"\".concat(ke[2],\".\").concat(ke[3]||\"0\",\".\").concat(ke[4]||\"0\"),ar)};re.exports=pr}}),nU=Oa({\"node_modules/yallist/iterator.js\"(M,re){\"use strict\";Ea(),re.exports=function(Ve){Ve.prototype[Symbol.iterator]=function*(){for(let Ke=this.head;Ke;Ke=Ke.next)yield Ke.value}}}}),oU=Oa({\"node_modules/yallist/yallist.js\"(M,re){\"use strict\";Ea(),re.exports=Ve,Ve.Node=pr,Ve.create=Ve;function Ve(Lr){var ar=this;if(ar instanceof Ve||(ar=new Ve),ar.tail=null,ar.head=null,ar.length=0,Lr&&typeof Lr.forEach==\"function\")Lr.forEach(function(a){ar.push(a)});else if(arguments.length>0)for(var ke=0,e=arguments.length;ke1)ke=ar;else if(this.head)e=this.head.next,ke=this.head.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var a=0;e!==null;a++)ke=Lr(ke,e.value,a),e=e.next;return ke},Ve.prototype.reduceReverse=function(Lr,ar){var ke,e=this.tail;if(arguments.length>1)ke=ar;else if(this.tail)e=this.tail.prev,ke=this.tail.value;else throw new TypeError(\"Reduce of empty list with no initial value\");for(var a=this.length-1;e!==null;a--)ke=Lr(ke,e.value,a),e=e.prev;return ke},Ve.prototype.toArray=function(){for(var Lr=new Array(this.length),ar=0,ke=this.head;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.next;return Lr},Ve.prototype.toArrayReverse=function(){for(var Lr=new Array(this.length),ar=0,ke=this.tail;ke!==null;ar++)Lr[ar]=ke.value,ke=ke.prev;return Lr},Ve.prototype.slice=function(Lr,ar){ar=ar||this.length,ar<0&&(ar+=this.length),Lr=Lr||0,Lr<0&&(Lr+=this.length);var ke=new Ve;if(arthis.length&&(ar=this.length);for(var e=0,a=this.head;a!==null&&ethis.length&&(ar=this.length);for(var e=this.length,a=this.tail;a!==null&&e>ar;e--)a=a.prev;for(;a!==null&&e>Lr;e--,a=a.prev)ke.push(a.value);return ke},Ve.prototype.splice=function(Lr,ar){Lr>this.length&&(Lr=this.length-1),Lr<0&&(Lr=this.length+Lr);for(var ke=0,e=this.head;e!==null&&ke1,B=class{constructor(G){if(typeof G==\"number\"&&(G={max:G}),G||(G={}),G.max&&(typeof G.max!=\"number\"||G.max<0))throw new TypeError(\"max must be a non-negative number\");let oe=this[Ke]=G.max||1/0,f=G.length||w;if(this[kr]=typeof f!=\"function\"?w:f,this[pr]=G.stale||!1,G.maxAge&&typeof G.maxAge!=\"number\")throw new TypeError(\"maxAge must be a number\");this[Lr]=G.maxAge||0,this[ar]=G.dispose,this[ke]=G.noDisposeOnSet||!1,this[C]=G.updateAgeOnGet||!1,this.reset()}set max(G){if(typeof G!=\"number\"||G<0)throw new TypeError(\"max must be a non-negative number\");this[Ke]=G||1/0,le(this)}get max(){return this[Ke]}set allowStale(G){this[pr]=!!G}get allowStale(){return this[pr]}set maxAge(G){if(typeof G!=\"number\")throw new TypeError(\"maxAge must be a non-negative number\");this[Lr]=G,le(this)}get maxAge(){return this[Lr]}set lengthCalculator(G){typeof G!=\"function\"&&(G=w),G!==this[kr]&&(this[kr]=G,this[oi]=0,this[e].forEach(oe=>{oe.length=this[kr](oe.value,oe.key),this[oi]+=oe.length})),le(this)}get lengthCalculator(){return this[kr]}get length(){return this[oi]}get itemCount(){return this[e].length}rforEach(G,oe){oe=oe||this;for(let f=this[e].tail;f!==null;){let T=f.prev;m(this,G,f,oe),f=T}}forEach(G,oe){oe=oe||this;for(let f=this[e].head;f!==null;){let T=f.next;m(this,G,f,oe),f=T}}keys(){return this[e].toArray().map(G=>G.key)}values(){return this[e].toArray().map(G=>G.value)}reset(){this[ar]&&this[e]&&this[e].length&&this[e].forEach(G=>this[ar](G.key,G.value)),this[a]=new Map,this[e]=new Ve,this[oi]=0}dump(){return this[e].map(G=>Q(this,G)?!1:{k:G.key,v:G.value,e:G.now+(G.maxAge||0)}).toArray().filter(G=>G)}dumpLru(){return this[e]}set(G,oe,f){if(f=f||this[Lr],f&&typeof f!=\"number\")throw new TypeError(\"maxAge must be a number\");let T=f?Date.now():0,K=this[kr](oe,G);if(this[a].has(G)){if(K>this[Ke])return N(this,this[a].get(G)),!1;let J=this[a].get(G).value;return this[ar]&&(this[ke]||this[ar](G,J.value)),J.now=T,J.maxAge=f,J.value=oe,this[oi]+=K-J.length,J.length=K,this.get(G),le(this),!0}let b=new p(G,oe,K,T,f);return b.length>this[Ke]?(this[ar]&&this[ar](G,oe),!1):(this[oi]+=b.length,this[e].unshift(b),this[a].set(G,this[e].head),le(this),!0)}has(G){if(!this[a].has(G))return!1;let oe=this[a].get(G).value;return!Q(this,oe)}get(G){return E(this,G,!0)}peek(G){return E(this,G,!1)}pop(){let G=this[e].tail;return G?(N(this,G),G.value):null}del(G){N(this,this[a].get(G))}load(G){this.reset();let oe=Date.now();for(let f=G.length-1;f>=0;f--){let T=G[f],K=T.e||0;if(K===0)this.set(T.k,T.v);else{let b=K-oe;b>0&&this.set(T.k,T.v,b)}}}prune(){this[a].forEach((G,oe)=>E(this,oe,!1))}},E=(G,oe,f)=>{let T=G[a].get(oe);if(T){let K=T.value;if(Q(G,K)){if(N(G,T),!G[pr])return}else f&&(G[C]&&(T.value.now=Date.now()),G[e].unshiftNode(T));return K.value}},Q=(G,oe)=>{if(!oe||!oe.maxAge&&!G[Lr])return!1;let f=Date.now()-oe.now;return oe.maxAge?f>oe.maxAge:G[Lr]&&f>G[Lr]},le=G=>{if(G[oi]>G[Ke])for(let oe=G[e].tail;G[oi]>G[Ke]&&oe!==null;){let f=oe.prev;N(G,oe),oe=f}},N=(G,oe)=>{if(oe){let f=oe.value;G[ar]&&G[ar](f.key,f.value),G[oi]-=f.length,G[a].delete(f.key),G[e].removeNode(oe)}},p=class{constructor(G,oe,f,T,K){this.key=G,this.value=oe,this.length=f,this.now=T,this.maxAge=K||0}},m=(G,oe,f,T)=>{let K=f.value;Q(G,K)&&(N(G,f),G[pr]||(K=void 0)),K&&oe.call(T,K.value,K.key,G)};re.exports=B}}),od=Oa({\"node_modules/semver/classes/range.js\"(M,re){Ea();var Ve=class{constructor(ie,R){if(R=kr(R),ie instanceof Ve)return ie.loose===!!R.loose&&ie.includePrerelease===!!R.includePrerelease?ie:new Ve(ie.raw,R);if(ie instanceof pr)return this.raw=ie.value,this.set=[[ie]],this.format(),this;if(this.options=R,this.loose=!!R.loose,this.includePrerelease=!!R.includePrerelease,this.raw=ie,this.set=ie.split(\"||\").map(q=>this.parseRange(q.trim())).filter(q=>q.length),!this.set.length)throw new TypeError(\"Invalid SemVer Range: \".concat(ie));if(this.set.length>1){let q=this.set[0];if(this.set=this.set.filter(O=>!B(O[0])),this.set.length===0)this.set=[q];else if(this.set.length>1){for(let O of this.set)if(O.length===1&&E(O[0])){this.set=[O];break}}}this.format()}format(){return this.range=this.set.map(ie=>ie.join(\" \").trim()).join(\"||\").trim(),this.range}toString(){return this.range}parseRange(ie){ie=ie.trim();let R=Object.keys(this.options).join(\",\"),q=\"parseRange:\".concat(R,\":\").concat(ie),O=oi.get(q);if(O)return O;let ve=this.options.loose,ee=ve?ke[e.HYPHENRANGELOOSE]:ke[e.HYPHENRANGE];ie=ie.replace(ee,se(this.options.includePrerelease)),Lr(\"hyphen replace\",ie),ie=ie.replace(ke[e.COMPARATORTRIM],a),Lr(\"comparator trim\",ie),ie=ie.replace(ke[e.TILDETRIM],C),ie=ie.replace(ke[e.CARETTRIM],w),ie=ie.split(/\\s+/).join(\" \");let he=ie.split(\" \").map($=>le($,this.options)).join(\" \").split(/\\s+/).map($=>b($,this.options));ve&&(he=he.filter($=>(Lr(\"loose invalid filter\",$,this.options),!!$.match(ke[e.COMPARATORLOOSE])))),Lr(\"range list\",he);let F=new Map,x=he.map($=>new pr($,this.options));for(let $ of x){if(B($))return[$];F.set($.value,$)}F.size>1&&F.has(\"\")&&F.delete(\"\");let X=[...F.values()];return oi.set(q,X),X}intersects(ie,R){if(!(ie instanceof Ve))throw new TypeError(\"a Range is required\");return this.set.some(q=>Q(q,R)&&ie.set.some(O=>Q(O,R)&&q.every(ve=>O.every(ee=>ve.intersects(ee,R)))))}test(ie){if(!ie)return!1;if(typeof ie==\"string\")try{ie=new ar(ie,this.options)}catch{return!1}for(let R=0;Rie.value===\"<0.0.0-0\",E=ie=>ie.value===\"\",Q=(ie,R)=>{let q=!0,O=ie.slice(),ve=O.pop();for(;q&&O.length;)q=O.every(ee=>ve.intersects(ee,R)),ve=O.pop();return q},le=(ie,R)=>(Lr(\"comp\",ie,R),ie=G(ie,R),Lr(\"caret\",ie),ie=p(ie,R),Lr(\"tildes\",ie),ie=f(ie,R),Lr(\"xrange\",ie),ie=K(ie,R),Lr(\"stars\",ie),ie),N=ie=>!ie||ie.toLowerCase()===\"x\"||ie===\"*\",p=(ie,R)=>ie.trim().split(/\\s+/).map(q=>m(q,R)).join(\" \"),m=(ie,R)=>{let q=R.loose?ke[e.TILDELOOSE]:ke[e.TILDE];return ie.replace(q,(O,ve,ee,he,F)=>{Lr(\"tilde\",ie,O,ve,ee,he,F);let x;return N(ve)?x=\"\":N(ee)?x=\">=\".concat(ve,\".0.0 <\").concat(+ve+1,\".0.0-0\"):N(he)?x=\">=\".concat(ve,\".\").concat(ee,\".0 <\").concat(ve,\".\").concat(+ee+1,\".0-0\"):F?(Lr(\"replaceTilde pr\",F),x=\">=\".concat(ve,\".\").concat(ee,\".\").concat(he,\"-\").concat(F,\" <\").concat(ve,\".\").concat(+ee+1,\".0-0\")):x=\">=\".concat(ve,\".\").concat(ee,\".\").concat(he,\" <\").concat(ve,\".\").concat(+ee+1,\".0-0\"),Lr(\"tilde return\",x),x})},G=(ie,R)=>ie.trim().split(/\\s+/).map(q=>oe(q,R)).join(\" \"),oe=(ie,R)=>{Lr(\"caret\",ie,R);let q=R.loose?ke[e.CARETLOOSE]:ke[e.CARET],O=R.includePrerelease?\"-0\":\"\";return ie.replace(q,(ve,ee,he,F,x)=>{Lr(\"caret\",ie,ve,ee,he,F,x);let X;return N(ee)?X=\"\":N(he)?X=\">=\".concat(ee,\".0.0\").concat(O,\" <\").concat(+ee+1,\".0.0-0\"):N(F)?ee===\"0\"?X=\">=\".concat(ee,\".\").concat(he,\".0\").concat(O,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\"):X=\">=\".concat(ee,\".\").concat(he,\".0\").concat(O,\" <\").concat(+ee+1,\".0.0-0\"):x?(Lr(\"replaceCaret pr\",x),ee===\"0\"?he===\"0\"?X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\"-\").concat(x,\" <\").concat(ee,\".\").concat(he,\".\").concat(+F+1,\"-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\"-\").concat(x,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\"-\").concat(x,\" <\").concat(+ee+1,\".0.0-0\")):(Lr(\"no pr\"),ee===\"0\"?he===\"0\"?X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F).concat(O,\" <\").concat(ee,\".\").concat(he,\".\").concat(+F+1,\"-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F).concat(O,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\"):X=\">=\".concat(ee,\".\").concat(he,\".\").concat(F,\" <\").concat(+ee+1,\".0.0-0\")),Lr(\"caret return\",X),X})},f=(ie,R)=>(Lr(\"replaceXRanges\",ie,R),ie.split(/\\s+/).map(q=>T(q,R)).join(\" \")),T=(ie,R)=>{ie=ie.trim();let q=R.loose?ke[e.XRANGELOOSE]:ke[e.XRANGE];return ie.replace(q,(O,ve,ee,he,F,x)=>{Lr(\"xRange\",ie,O,ve,ee,he,F,x);let X=N(ee),$=X||N(he),A=$||N(F),y=A;return ve===\"=\"&&y&&(ve=\"\"),x=R.includePrerelease?\"-0\":\"\",X?ve===\">\"||ve===\"<\"?O=\"<0.0.0-0\":O=\"*\":ve&&y?($&&(he=0),F=0,ve===\">\"?(ve=\">=\",$?(ee=+ee+1,he=0,F=0):(he=+he+1,F=0)):ve===\"<=\"&&(ve=\"<\",$?ee=+ee+1:he=+he+1),ve===\"<\"&&(x=\"-0\"),O=\"\".concat(ve+ee,\".\").concat(he,\".\").concat(F).concat(x)):$?O=\">=\".concat(ee,\".0.0\").concat(x,\" <\").concat(+ee+1,\".0.0-0\"):A&&(O=\">=\".concat(ee,\".\").concat(he,\".0\").concat(x,\" <\").concat(ee,\".\").concat(+he+1,\".0-0\")),Lr(\"xRange return\",O),O})},K=(ie,R)=>(Lr(\"replaceStars\",ie,R),ie.trim().replace(ke[e.STAR],\"\")),b=(ie,R)=>(Lr(\"replaceGTE0\",ie,R),ie.trim().replace(ke[R.includePrerelease?e.GTE0PRE:e.GTE0],\"\")),se=ie=>(R,q,O,ve,ee,he,F,x,X,$,A,y,V)=>(N(O)?q=\"\":N(ve)?q=\">=\".concat(O,\".0.0\").concat(ie?\"-0\":\"\"):N(ee)?q=\">=\".concat(O,\".\").concat(ve,\".0\").concat(ie?\"-0\":\"\"):he?q=\">=\".concat(q):q=\">=\".concat(q).concat(ie?\"-0\":\"\"),N(X)?x=\"\":N($)?x=\"<\".concat(+X+1,\".0.0-0\"):N(A)?x=\"<\".concat(X,\".\").concat(+$+1,\".0-0\"):y?x=\"<=\".concat(X,\".\").concat($,\".\").concat(A,\"-\").concat(y):ie?x=\"<\".concat(X,\".\").concat($,\".\").concat(+A+1,\"-0\"):x=\"<=\".concat(x),\"\".concat(q,\" \").concat(x).trim()),J=(ie,R,q)=>{for(let O=0;O0){let ve=ie[O].semver;if(ve.major===R.major&&ve.minor===R.minor&&ve.patch===R.patch)return!0}return!1}return!0}}}),x1=Oa({\"node_modules/semver/classes/comparator.js\"(M,re){Ea();var Ve=Symbol(\"SemVer ANY\"),Ke=class{static get ANY(){return Ve}constructor(a,C){if(C=oi(C),a instanceof Ke){if(a.loose===!!C.loose)return a;a=a.value}ar(\"comparator\",a,C),this.options=C,this.loose=!!C.loose,this.parse(a),this.semver===Ve?this.value=\"\":this.value=this.operator+this.semver.version,ar(\"comp\",this)}parse(a){let C=this.options.loose?kr[pr.COMPARATORLOOSE]:kr[pr.COMPARATOR],w=a.match(C);if(!w)throw new TypeError(\"Invalid comparator: \".concat(a));this.operator=w[1]!==void 0?w[1]:\"\",this.operator===\"=\"&&(this.operator=\"\"),w[2]?this.semver=new ke(w[2],this.options.loose):this.semver=Ve}toString(){return this.value}test(a){if(ar(\"Comparator.test\",a,this.options.loose),this.semver===Ve||a===Ve)return!0;if(typeof a==\"string\")try{a=new ke(a,this.options)}catch{return!1}return Lr(a,this.operator,this.semver,this.options)}intersects(a,C){if(!(a instanceof Ke))throw new TypeError(\"a Comparator is required\");if((!C||typeof C!=\"object\")&&(C={loose:!!C,includePrerelease:!1}),this.operator===\"\")return this.value===\"\"?!0:new e(a.value,C).test(this.value);if(a.operator===\"\")return a.value===\"\"?!0:new e(this.value,C).test(a.semver);let w=(this.operator===\">=\"||this.operator===\">\")&&(a.operator===\">=\"||a.operator===\">\"),B=(this.operator===\"<=\"||this.operator===\"<\")&&(a.operator===\"<=\"||a.operator===\"<\"),E=this.semver.version===a.semver.version,Q=(this.operator===\">=\"||this.operator===\"<=\")&&(a.operator===\">=\"||a.operator===\"<=\"),le=Lr(this.semver,\"<\",a.semver,C)&&(this.operator===\">=\"||this.operator===\">\")&&(a.operator===\"<=\"||a.operator===\"<\"),N=Lr(this.semver,\">\",a.semver,C)&&(this.operator===\"<=\"||this.operator===\"<\")&&(a.operator===\">=\"||a.operator===\">\");return w||B||E&&Q||le||N}};re.exports=Ke;var oi=S1(),{re:kr,t:pr}=wv(),Lr=j4(),ar=b1(),ke=Lf(),e=od()}}),E1=Oa({\"node_modules/semver/functions/satisfies.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr,pr)=>{try{kr=new Ve(kr,pr)}catch{return!1}return kr.test(oi)};re.exports=Ke}}),cU=Oa({\"node_modules/semver/ranges/to-comparators.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>new Ve(oi,kr).set.map(pr=>pr.map(Lr=>Lr.value).join(\" \").trim().split(\" \"));re.exports=Ke}}),uU=Oa({\"node_modules/semver/ranges/max-satisfying.js\"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,pr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(pr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===-1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),lU=Oa({\"node_modules/semver/ranges/min-satisfying.js\"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=(kr,pr,Lr)=>{let ar=null,ke=null,e=null;try{e=new Ke(pr,Lr)}catch{return null}return kr.forEach(a=>{e.test(a)&&(!ar||ke.compare(a)===1)&&(ar=a,ke=new Ve(ar,Lr))}),ar};re.exports=oi}}),fU=Oa({\"node_modules/semver/ranges/min-version.js\"(M,re){Ea();var Ve=Lf(),Ke=od(),oi=T1(),kr=(pr,Lr)=>{pr=new Ke(pr,Lr);let ar=new Ve(\"0.0.0\");if(pr.test(ar)||(ar=new Ve(\"0.0.0-0\"),pr.test(ar)))return ar;ar=null;for(let ke=0;ke{let w=new Ve(C.semver.version);switch(C.operator){case\">\":w.prerelease.length===0?w.patch++:w.prerelease.push(0),w.raw=w.format();case\"\":case\">=\":(!a||oi(w,a))&&(a=w);break;case\"<\":case\"<=\":break;default:throw new Error(\"Unexpected operation: \".concat(C.operator))}}),a&&(!ar||oi(ar,a))&&(ar=a)}return ar&&pr.test(ar)?ar:null};re.exports=kr}}),_U=Oa({\"node_modules/semver/ranges/valid.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr)=>{try{return new Ve(oi,kr).range||\"*\"}catch{return null}};re.exports=Ke}}),XT=Oa({\"node_modules/semver/ranges/outside.js\"(M,re){Ea();var Ve=Lf(),Ke=x1(),{ANY:oi}=Ke,kr=od(),pr=E1(),Lr=T1(),ar=KT(),ke=HT(),e=GT(),a=(C,w,B,E)=>{C=new Ve(C,E),w=new kr(w,E);let Q,le,N,p,m;switch(B){case\">\":Q=Lr,le=ke,N=ar,p=\">\",m=\">=\";break;case\"<\":Q=ar,le=e,N=Lr,p=\"<\",m=\"<=\";break;default:throw new TypeError('Must provide a hilo val of \"<\" or \">\"')}if(pr(C,w,E))return!1;for(let G=0;G{K.semver===oi&&(K=new Ke(\">=0.0.0\")),f=f||K,T=T||K,Q(K.semver,f.semver,E)?f=K:N(K.semver,T.semver,E)&&(T=K)}),f.operator===p||f.operator===m||(!T.operator||T.operator===p)&&le(C,T.semver))return!1;if(T.operator===m&&N(C,T.semver))return!1}return!0};re.exports=a}}),pU=Oa({\"node_modules/semver/ranges/gtr.js\"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,pr)=>Ve(oi,kr,\">\",pr);re.exports=Ke}}),dU=Oa({\"node_modules/semver/ranges/ltr.js\"(M,re){Ea();var Ve=XT(),Ke=(oi,kr,pr)=>Ve(oi,kr,\"<\",pr);re.exports=Ke}}),gU=Oa({\"node_modules/semver/ranges/intersects.js\"(M,re){Ea();var Ve=od(),Ke=(oi,kr,pr)=>(oi=new Ve(oi,pr),kr=new Ve(kr,pr),oi.intersects(kr));re.exports=Ke}}),mU=Oa({\"node_modules/semver/ranges/simplify.js\"(M,re){Ea();var Ve=E1(),Ke=nd();re.exports=(oi,kr,pr)=>{let Lr=[],ar=null,ke=null,e=oi.sort((B,E)=>Ke(B,E,pr));for(let B of e)Ve(B,kr,pr)?(ke=B,ar||(ar=B)):(ke&&Lr.push([ar,ke]),ke=null,ar=null);ar&&Lr.push([ar,null]);let a=[];for(let[B,E]of Lr)B===E?a.push(B):!E&&B===e[0]?a.push(\"*\"):E?B===e[0]?a.push(\"<=\".concat(E)):a.push(\"\".concat(B,\" - \").concat(E)):a.push(\">=\".concat(B));let C=a.join(\" || \"),w=typeof kr.raw==\"string\"?kr.raw:String(kr);return C.length2&&arguments[2]!==void 0?arguments[2]:{};if(a===C)return!0;a=new Ve(a,w),C=new Ve(C,w);let B=!1;e:for(let E of a.set){for(let Q of C.set){let le=ar(E,Q,w);if(B=B||le!==null,le)continue e}if(B)return!1}return!0},ar=(a,C,w)=>{if(a===C)return!0;if(a.length===1&&a[0].semver===oi){if(C.length===1&&C[0].semver===oi)return!0;w.includePrerelease?a=[new Ke(\">=0.0.0-0\")]:a=[new Ke(\">=0.0.0\")]}if(C.length===1&&C[0].semver===oi){if(w.includePrerelease)return!0;C=[new Ke(\">=0.0.0\")]}let B=new Set,E,Q;for(let T of a)T.operator===\">\"||T.operator===\">=\"?E=ke(E,T,w):T.operator===\"<\"||T.operator===\"<=\"?Q=e(Q,T,w):B.add(T.semver);if(B.size>1)return null;let le;if(E&&Q){if(le=pr(E.semver,Q.semver,w),le>0)return null;if(le===0&&(E.operator!==\">=\"||Q.operator!==\"<=\"))return null}for(let T of B){if(E&&!kr(T,String(E),w)||Q&&!kr(T,String(Q),w))return null;for(let K of C)if(!kr(T,String(K),w))return!1;return!0}let N,p,m,G,oe=Q&&!w.includePrerelease&&Q.semver.prerelease.length?Q.semver:!1,f=E&&!w.includePrerelease&&E.semver.prerelease.length?E.semver:!1;oe&&oe.prerelease.length===1&&Q.operator===\"<\"&&oe.prerelease[0]===0&&(oe=!1);for(let T of C){if(G=G||T.operator===\">\"||T.operator===\">=\",m=m||T.operator===\"<\"||T.operator===\"<=\",E){if(f&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===f.major&&T.semver.minor===f.minor&&T.semver.patch===f.patch&&(f=!1),T.operator===\">\"||T.operator===\">=\"){if(N=ke(E,T,w),N===T&&N!==E)return!1}else if(E.operator===\">=\"&&!kr(E.semver,String(T),w))return!1}if(Q){if(oe&&T.semver.prerelease&&T.semver.prerelease.length&&T.semver.major===oe.major&&T.semver.minor===oe.minor&&T.semver.patch===oe.patch&&(oe=!1),T.operator===\"<\"||T.operator===\"<=\"){if(p=e(Q,T,w),p===T&&p!==Q)return!1}else if(Q.operator===\"<=\"&&!kr(Q.semver,String(T),w))return!1}if(!T.operator&&(Q||E)&&le!==0)return!1}return!(E&&m&&!Q&&le!==0||Q&&G&&!E&&le!==0||f||oe)},ke=(a,C,w)=>{if(!a)return C;let B=pr(a.semver,C.semver,w);return B>0?a:B<0||C.operator===\">\"&&a.operator===\">=\"?C:a},e=(a,C,w)=>{if(!a)return C;let B=pr(a.semver,C.semver,w);return B<0?a:B>0||C.operator===\"<\"&&a.operator===\"<=\"?C:a};re.exports=Lr}}),QT=Oa({\"node_modules/semver/index.js\"(M,re){Ea();var Ve=wv();re.exports={re:Ve.re,src:Ve.src,tokens:Ve.t,SEMVER_SPEC_VERSION:D1().SEMVER_SPEC_VERSION,SemVer:Lf(),compareIdentifiers:BT().compareIdentifiers,rcompareIdentifiers:BT().rcompareIdentifiers,parse:Ov(),valid:Kj(),clean:Gj(),inc:Hj(),diff:Xj(),major:Qj(),minor:Yj(),patch:$j(),prerelease:Zj(),compare:nd(),rcompare:eU(),compareLoose:rU(),compareBuild:VT(),sort:iU(),rsort:tU(),gt:T1(),lt:KT(),eq:qT(),neq:J4(),gte:GT(),lte:HT(),cmp:j4(),coerce:aU(),Comparator:x1(),Range:od(),satisfies:E1(),toComparators:cU(),maxSatisfying:uU(),minSatisfying:lU(),minVersion:fU(),validRange:_U(),outside:XT(),gtr:pU(),ltr:dU(),intersects:gU(),simplifyRange:mU(),subset:vU()}}}),U4={};h1(U4,{basename:()=>K4,default:()=>H4,delimiter:()=>jT,dirname:()=>V4,extname:()=>G4,isAbsolute:()=>$T,join:()=>W4,normalize:()=>YT,relative:()=>q4,resolve:()=>y1,sep:()=>JT});function z4(M,re){for(var Ve=0,Ke=M.length-1;Ke>=0;Ke--){var oi=M[Ke];oi===\".\"?M.splice(Ke,1):oi===\"..\"?(M.splice(Ke,1),Ve++):Ve&&(M.splice(Ke,1),Ve--)}if(re)for(;Ve--;Ve)M.unshift(\"..\");return M}function y1(){for(var M=\"\",re=!1,Ve=arguments.length-1;Ve>=-1&&!re;Ve--){var Ke=Ve>=0?arguments[Ve]:\"/\";if(typeof Ke!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!Ke)continue;M=Ke+\"/\"+M,re=Ke.charAt(0)===\"/\"}return M=z4(ZT(M.split(\"/\"),function(oi){return!!oi}),!re).join(\"/\"),(re?\"/\":\"\")+M||\".\"}function YT(M){var re=$T(M),Ve=X4(M,-1)===\"/\";return M=z4(ZT(M.split(\"/\"),function(Ke){return!!Ke}),!re).join(\"/\"),!M&&!re&&(M=\".\"),M&&Ve&&(M+=\"/\"),(re?\"/\":\"\")+M}function $T(M){return M.charAt(0)===\"/\"}function W4(){var M=Array.prototype.slice.call(arguments,0);return YT(ZT(M,function(re,Ve){if(typeof re!=\"string\")throw new TypeError(\"Arguments to path.join must be strings\");return re}).join(\"/\"))}function q4(M,re){M=y1(M).substr(1),re=y1(re).substr(1);function Ve(ke){for(var e=0;e=0&&ke[a]===\"\";a--);return e>a?[]:ke.slice(e,a-e+1)}for(var Ke=Ve(M.split(\"/\")),oi=Ve(re.split(\"/\")),kr=Math.min(Ke.length,oi.length),pr=kr,Lr=0;LrY4});var Y4,hU=Qy({\"node-modules-polyfills:fs\"(){Ea(),Y4={}}}),ex=Oa({\"node-modules-polyfills-commonjs:fs\"(M,re){Ea();var Ve=(hU(),mp(Q4));if(Ve&&Ve.default){re.exports=Ve.default;for(let Ke in Ve)re.exports[Ke]=Ve[Ke]}else Ve&&(re.exports=Ve)}}),_u=Oa({\"node_modules/typescript/lib/typescript.js\"(M,re){\"use strict\";Ea();var Ve=M&&M.__spreadArray||function(e,a,C){if(C||arguments.length===2)for(var w=0,B=a.length,E;w0&&E[E.length-1])&&(p[0]===6||p[0]===2)){C=0;continue}if(p[0]===3&&(!E||p[1]>E[0]&&p[1]=0;qe--){var br=Ce(S[qe],qe);if(br)return br}}e.forEachRight=B;function E(S,Ce){if(S!==void 0)for(var qe=0;qe=0;qe--){var br=S[qe];if(Ce(br,qe))return br}}e.findLast=T;function K(S,Ce,qe){for(var br=qe||0;br=0;br--)if(Ce(S[br],br))return br;return-1}e.findLastIndex=b;function se(S,Ce){for(var qe=0;qe0;return!1}e.some=D;function fe(S,Ce,qe){for(var br,Zr=0;Zr0&&e.Debug.assertGreaterThanOrEqual(qe(Ce[Si],Ce[Si-1]),0);r:for(var Pi=Zr;ZrPi&&e.Debug.assertGreaterThanOrEqual(qe(S[Zr],S[Zr-1]),0),qe(Ce[Si],S[Zr])){case-1:br.push(Ce[Si]);continue e;case 0:continue e;case 1:continue r}}return br}e.relativeComplement=Ie;function _e(S,Ce){for(var qe=0,br=0,Zr=S;br>1),Ct=qe(S[Qi],Qi);switch(br(Ct,Ce)){case-1:Si=Qi+1;break;case 0:return Qi;case 1:Pi=Qi-1;break}}return~Si}e.binarySearchKey=mi;function pe(S,Ce,qe,br,Zr){if(S&&S.length>0){var Si=S.length;if(Si>0){var Pi=br===void 0||br<0?0:br,Qi=Zr===void 0||Pi+Zr>Si-1?Si-1:Pi+Zr,Ct=void 0;for(arguments.length<=2?(Ct=S[Pi],Pi++):Ct=qe;Pi<=Qi;)Ct=Ce(Ct,S[Pi],Pi),Pi++;return Ct}}return qe}e.reduceLeft=pe;var or=Object.prototype.hasOwnProperty;function qr(S,Ce){return or.call(S,Ce)}e.hasProperty=qr;function si(S,Ce){return or.call(S,Ce)?S[Ce]:void 0}e.getProperty=si;function Di(S){var Ce=[];for(var qe in S)or.call(S,qe)&&Ce.push(qe);return Ce}e.getOwnKeys=Di;function wi(S){var Ce=[];do for(var qe=Object.getOwnPropertyNames(S),br=0,Zr=qe;brCe?1:0)}e.compareStringsCaseInsensitive=Bt;function wt(S,Ce){return Ii(S,Ce)}e.compareStringsCaseSensitive=wt;function na(S){return S?Bt:wt}e.getStringComparer=na;var Ai=function(){var S,Ce,qe=Qi();return Ct;function br(sa,en,Wa){if(sa===en)return 0;if(sa===void 0)return-1;if(en===void 0)return 1;var qn=Wa(sa,en);return qn<0?-1:qn>0?1:0}function Zr(sa){var en=new Intl.Collator(sa,{usage:\"sort\",sensitivity:\"variant\"}).compare;return function(Wa,qn){return br(Wa,qn,en)}}function Si(sa){if(sa!==void 0)return Pi();return function(Wa,qn){return br(Wa,qn,en)};function en(Wa,qn){return Wa.localeCompare(qn)}}function Pi(){return function(Wa,qn){return br(Wa,qn,sa)};function sa(Wa,qn){return en(Wa.toUpperCase(),qn.toUpperCase())||en(Wa,qn)}function en(Wa,qn){return Waqn?1:0}}function Qi(){return typeof Intl==\"object\"&&typeof Intl.Collator==\"function\"?Zr:typeof String.prototype.localeCompare==\"function\"&&typeof String.prototype.toLocaleUpperCase==\"function\"&&\"a\".localeCompare(\"B\")<0?Si:Pi}function Ct(sa){return sa===void 0?S||(S=qe(sa)):sa===\"en-US\"?Ce||(Ce=qe(sa)):qe(sa)}}(),Oi,ji;function Vi(){return ji}e.getUILocale=Vi;function at(S){ji!==S&&(ji=S,Oi=void 0)}e.setUILocale=at;function At(S,Ce){var qe=Oi||(Oi=Ai(ji));return qe(S,Ce)}e.compareStringsCaseSensitiveUI=At;function ba(S,Ce,qe,br){return S===Ce?0:S===void 0?-1:Ce===void 0?1:br(S[qe],Ce[qe])}e.compareProperties=ba;function $a(S,Ce){return Ki(S?1:0,Ce?1:0)}e.compareBooleans=$a;function Qa(S,Ce,qe){for(var br=Math.min(2,Math.floor(S.length*.34)),Zr=Math.floor(S.length*.4)+1,Si,Pi=0,Qi=Ce;Piqe?Pi-qe:1),sa=Math.floor(Ce.length>qe+Pi?qe+Pi:Ce.length);Zr[0]=Pi;for(var en=Pi,Wa=1;Waqe)return;var So=br;br=Zr,Zr=So}var Go=br[Ce.length];return Go>qe?void 0:Go}function Dn(S,Ce){var qe=S.length-Ce.length;return qe>=0&&S.indexOf(Ce,qe)===qe}e.endsWith=Dn;function ka(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):S}e.removeSuffix=ka;function Ba(S,Ce){return Dn(S,Ce)?S.slice(0,S.length-Ce.length):void 0}e.tryRemoveSuffix=Ba;function pn(S,Ce){return S.indexOf(Ce)!==-1}e.stringContains=pn;function Cn(S){for(var Ce=S.length,qe=Ce-1;qe>0;qe--){var br=S.charCodeAt(qe);if(br>=48&&br<=57)do--qe,br=S.charCodeAt(qe);while(qe>0&&br>=48&&br<=57);else if(qe>4&&(br===110||br===78)){if(--qe,br=S.charCodeAt(qe),br!==105&&br!==73||(--qe,br=S.charCodeAt(qe),br!==109&&br!==77))break;--qe,br=S.charCodeAt(qe)}else break;if(br!==45&&br!==46)break;Ce=qe}return Ce===S.length?S:S.slice(0,Ce)}e.removeMinAndVersionNumbers=Cn;function Bi(S,Ce){for(var qe=0;qeZr&&(Zr=Ct.prefix.length,br=Qi)}return br}e.findBestPatternMatch=bo;function Ro(S,Ce){return S.lastIndexOf(Ce,0)===0}e.startsWith=Ro;function En(S,Ce){return Ro(S,Ce)?S.substr(Ce.length):S}e.removePrefix=En;function Wn(S,Ce,qe){return qe===void 0&&(qe=vi),Ro(qe(S),qe(Ce))?S.substring(Ce.length):void 0}e.tryRemovePrefix=Wn;function to(S,Ce){var qe=S.prefix,br=S.suffix;return Ce.length>=qe.length+br.length&&Ro(Ce,qe)&&Dn(Ce,br)}function Co(S,Ce){return function(qe){return S(qe)&&Ce(qe)}}e.and=Co;function Ko(){for(var S=[],Ce=0;Ce=0&&e.isWhiteSpaceLike(S.charCodeAt(Ce));)Ce--;return S.slice(0,Ce+1)}})(ke||(ke={}));var ke;(function(e){var a;(function(w){w[w.Off=0]=\"Off\",w[w.Error=1]=\"Error\",w[w.Warning=2]=\"Warning\",w[w.Info=3]=\"Info\",w[w.Verbose=4]=\"Verbose\"})(a=e.LogLevel||(e.LogLevel={}));var C;(function(w){var B,E=0;w.currentLogLevel=a.Warning,w.isDebugging=!1;function Q(){return B!=null?B:B=new e.Version(e.version)}w.getTypeScriptVersion=Q;function le(Ye){return w.currentLogLevel<=Ye}w.shouldLog=le;function N(Ye,Br){w.loggingHost&&le(Ye)&&w.loggingHost.log(Ye,Br)}function p(Ye){N(a.Info,Ye)}w.log=p,function(Ye){function Br(lr){N(a.Error,lr)}Ye.error=Br;function Er(lr){N(a.Warning,lr)}Ye.warn=Er;function Ne(lr){N(a.Info,lr)}Ye.log=Ne;function n(lr){N(a.Verbose,lr)}Ye.trace=n}(p=w.log||(w.log={}));var m={};function G(){return E}w.getAssertionLevel=G;function oe(Ye){var Br=E;if(E=Ye,Ye>Br)for(var Er=0,Ne=e.getOwnKeys(m);Er=lr.level&&(w[n]=lr,m[n]=void 0)}}w.setAssertionLevel=oe;function f(Ye){return E>=Ye}w.shouldAssert=f;function T(Ye,Br){return f(Ye)?!0:(m[Br]={level:Ye,assertion:w[Br]},w[Br]=e.noop,!1)}function K(Ye,Br){debugger;var Er=new Error(Ye?\"Debug Failure. \".concat(Ye):\"Debug Failure.\");throw Error.captureStackTrace&&Error.captureStackTrace(Er,Br||K),Er}w.fail=K;function b(Ye,Br,Er){return K(\"\".concat(Br||\"Unexpected node.\",`\\r\nNode `).concat(j(Ye.kind),\" was unexpected.\"),Er||b)}w.failBadSyntaxKind=b;function se(Ye,Br,Er,Ne){Ye||(Br=Br?\"False expression: \".concat(Br):\"False expression.\",Er&&(Br+=`\\r\nVerbose Debug Information: `+(typeof Er==\"string\"?Er:Er())),K(Br,Ne||se))}w.assert=se;function J(Ye,Br,Er,Ne,n){if(Ye!==Br){var lr=Er?Ne?\"\".concat(Er,\" \").concat(Ne):Er:\"\";K(\"Expected \".concat(Ye,\" === \").concat(Br,\". \").concat(lr),n||J)}}w.assertEqual=J;function ie(Ye,Br,Er,Ne){Ye>=Br&&K(\"Expected \".concat(Ye,\" < \").concat(Br,\". \").concat(Er||\"\"),Ne||ie)}w.assertLessThan=ie;function R(Ye,Br,Er){Ye>Br&&K(\"Expected \".concat(Ye,\" <= \").concat(Br),Er||R)}w.assertLessThanOrEqual=R;function q(Ye,Br,Er){Ye= \").concat(Br),Er||q)}w.assertGreaterThanOrEqual=q;function O(Ye,Br,Er){Ye==null&&K(Br,Er||O)}w.assertIsDefined=O;function ve(Ye,Br,Er){return O(Ye,Br,Er||ve),Ye}w.checkDefined=ve;function ee(Ye,Br,Er){for(var Ne=0,n=Ye;Ne0&&Ne[0][0]===0?Ne[0][1]:\"0\";if(Er){for(var n=\"\",lr=Ye,be=0,Ge=Ne;beYe)break;yr!==0&&yr&Ye&&(n=\"\".concat(n).concat(n?\"|\":\"\").concat(Ir),lr&=~yr)}if(lr===0)return n}else for(var wr=0,Ur=Ne;wr=0;return ur?ye(Ye,lr,Ge,Br.message):yr?Ae(Ye,lr,Ge,Br.message):e.noop}function ir(Ye,Br){return function(){return Ye(),Br.apply(this,arguments)}}function Cr(Ye,Br){var Er=er(P(Ye),Br);return ir(Er,Ye)}w.deprecate=Cr})(C=e.Debug||(e.Debug={}))})(ke||(ke={}));var ke;(function(e){var a=/^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i,C=/^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)(?:\\.(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*))*$/i,w=/^[a-z0-9-]+(?:\\.[a-z0-9-]+)*$/i,B=/^(0|[1-9]\\d*)$/,E=function(){function F(x,X,$,A,y){if(X===void 0&&(X=0),$===void 0&&($=0),A===void 0&&(A=\"\"),y===void 0&&(y=\"\"),typeof x==\"string\"){var V=e.Debug.checkDefined(Q(x),\"Invalid version\");x=V.major,X=V.minor,$=V.patch,A=V.prerelease,y=V.build}e.Debug.assert(x>=0,\"Invalid argument: major\"),e.Debug.assert(X>=0,\"Invalid argument: minor\"),e.Debug.assert($>=0,\"Invalid argument: patch\"),e.Debug.assert(!A||C.test(A),\"Invalid argument: prerelease\"),e.Debug.assert(!y||w.test(y),\"Invalid argument: build\"),this.major=x,this.minor=X,this.patch=$,this.prerelease=A?A.split(\".\"):e.emptyArray,this.build=y?y.split(\".\"):e.emptyArray}return F.tryParse=function(x){var X=Q(x);if(!!X){var $=X.major,A=X.minor,y=X.patch,V=X.prerelease,L=X.build;return new F($,A,y,V,L)}},F.prototype.compareTo=function(x){return this===x?0:x===void 0?1:e.compareValues(this.major,x.major)||e.compareValues(this.minor,x.minor)||e.compareValues(this.patch,x.patch)||le(this.prerelease,x.prerelease)},F.prototype.increment=function(x){switch(x){case\"major\":return new F(this.major+1,0,0);case\"minor\":return new F(this.major,this.minor+1,0);case\"patch\":return new F(this.major,this.minor,this.patch+1);default:return e.Debug.assertNever(x)}},F.prototype.toString=function(){var x=\"\".concat(this.major,\".\").concat(this.minor,\".\").concat(this.patch);return e.some(this.prerelease)&&(x+=\"-\".concat(this.prerelease.join(\".\"))),e.some(this.build)&&(x+=\"+\".concat(this.build.join(\".\"))),x},F.zero=new F(0,0,0),F}();e.Version=E;function Q(F){var x=a.exec(F);if(!!x){var X=x[1],$=x[2],A=$===void 0?\"0\":$,y=x[3],V=y===void 0?\"0\":y,L=x[4],P=L===void 0?\"\":L,k=x[5],Y=k===void 0?\"\":k;if(!(P&&!C.test(P))&&!(Y&&!w.test(Y)))return{major:parseInt(X,10),minor:parseInt(A,10),patch:parseInt(V,10),prerelease:P,build:Y}}}function le(F,x){if(F===x)return 0;if(F.length===0)return x.length===0?0:1;if(x.length===0)return-1;for(var X=Math.min(F.length,x.length),$=0;$|>=|=)?\\s*([a-z0-9-+.*]+)$/i;function T(F){for(var x=[],X=0,$=e.trimString(F).split(p);X<$.length;X++){var A=$[X];if(!!A){var y=[];A=e.trimString(A);var V=oe.exec(A);if(V){if(!b(V[1],V[2],y))return}else for(var L=0,P=A.split(m);L=\",$.version)),J(A.major)||X.push(J(A.minor)?ie(\"<\",A.version.increment(\"major\")):J(A.patch)?ie(\"<\",A.version.increment(\"minor\")):ie(\"<=\",A.version)),!0):!1}function se(F,x,X){var $=K(x);if(!$)return!1;var A=$.version,y=$.major,V=$.minor,L=$.patch;if(J(y))(F===\"<\"||F===\">\")&&X.push(ie(\"<\",E.zero));else switch(F){case\"~\":X.push(ie(\">=\",A)),X.push(ie(\"<\",A.increment(J(V)?\"major\":\"minor\")));break;case\"^\":X.push(ie(\">=\",A)),X.push(ie(\"<\",A.increment(A.major>0||J(V)?\"major\":A.minor>0||J(L)?\"minor\":\"patch\")));break;case\"<\":case\">=\":X.push(ie(F,A));break;case\"<=\":case\">\":X.push(J(V)?ie(F===\"<=\"?\"<\":\">=\",A.increment(\"major\")):J(L)?ie(F===\"<=\"?\"<\":\">=\",A.increment(\"minor\")):ie(F,A));break;case\"=\":case void 0:J(V)||J(L)?(X.push(ie(\">=\",A)),X.push(ie(\"<\",A.increment(J(V)?\"major\":\"minor\")))):X.push(ie(\"=\",A));break;default:return!1}return!0}function J(F){return F===\"*\"||F===\"x\"||F===\"X\"}function ie(F,x){return{operator:F,operand:x}}function R(F,x){if(x.length===0)return!0;for(var X=0,$=x;X<$.length;X++){var A=$[X];if(q(F,A))return!0}return!1}function q(F,x){for(var X=0,$=x;X<$.length;X++){var A=$[X];if(!O(F,A.operator,A.operand))return!1}return!0}function O(F,x,X){var $=F.compareTo(X);switch(x){case\"<\":return $<0;case\"<=\":return $<=0;case\">\":return $>0;case\">=\":return $>=0;case\"=\":return $===0;default:return e.Debug.assertNever(x)}}function ve(F){return e.map(F,ee).join(\" || \")||\"*\"}function ee(F){return e.map(F,he).join(\" \")}function he(F){return\"\".concat(F.operator).concat(F.operand)}})(ke||(ke={}));var ke;(function(e){function a(le,N){return typeof le==\"object\"&&typeof le.timeOrigin==\"number\"&&typeof le.mark==\"function\"&&typeof le.measure==\"function\"&&typeof le.now==\"function\"&&typeof N==\"function\"}function C(){if(typeof performance==\"object\"&&typeof PerformanceObserver==\"function\"&&a(performance,PerformanceObserver))return{shouldWriteNativeEvents:!0,performance,PerformanceObserver}}function w(){}var B=C()||void 0,E=B==null?void 0:B.performance;function Q(){return B}e.tryGetNativePerformanceHooks=Q,e.timestamp=E?function(){return E.now()}:Date.now?Date.now:function(){return+new Date}})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B;function E(R,q,O,ve){return R?Q(q,O,ve):C.nullTimer}C.createTimerIf=E;function Q(R,q,O){var ve=0;return{enter:ee,exit:he};function ee(){++ve===1&&oe(q)}function he(){--ve===0?(oe(O),f(R,q,O)):ve<0&&e.Debug.fail(\"enter/exit count does not match.\")}}C.createTimer=Q,C.nullTimer={enter:e.noop,exit:e.noop};var le=!1,N=e.timestamp(),p=new e.Map,m=new e.Map,G=new e.Map;function oe(R){var q;if(le){var O=(q=m.get(R))!==null&&q!==void 0?q:0;m.set(R,O+1),p.set(R,e.timestamp()),B==null||B.mark(R)}}C.mark=oe;function f(R,q,O){var ve,ee;if(le){var he=(ve=O!==void 0?p.get(O):void 0)!==null&&ve!==void 0?ve:e.timestamp(),F=(ee=q!==void 0?p.get(q):void 0)!==null&&ee!==void 0?ee:N,x=G.get(R)||0;G.set(R,x+(he-F)),B==null||B.measure(R,q,O)}}C.measure=f;function T(R){return m.get(R)||0}C.getCount=T;function K(R){return G.get(R)||0}C.getDuration=K;function b(R){G.forEach(function(q,O){return R(O,q)})}C.forEachMeasure=b;function se(){return le}C.isEnabled=se;function J(R){var q;return R===void 0&&(R=e.sys),le||(le=!0,w||(w=e.tryGetNativePerformanceHooks()),w&&(N=w.performance.timeOrigin,(w.shouldWriteNativeEvents||((q=R==null?void 0:R.cpuProfilingEnabled)===null||q===void 0?void 0:q.call(R))||(R==null?void 0:R.debugMode))&&(B=w.performance))),!0}C.enable=J;function ie(){le&&(p.clear(),m.clear(),G.clear(),B=void 0,le=!1)}C.disable=ie})(a=e.performance||(e.performance={}))})(ke||(ke={}));var ke;(function(e){var a,C={logEvent:e.noop,logErrEvent:e.noop,logPerfEvent:e.noop,logInfoEvent:e.noop,logStartCommand:e.noop,logStopCommand:e.noop,logStartUpdateProgram:e.noop,logStopUpdateProgram:e.noop,logStartUpdateGraph:e.noop,logStopUpdateGraph:e.noop,logStartResolveModule:e.noop,logStopResolveModule:e.noop,logStartParseSourceFile:e.noop,logStopParseSourceFile:e.noop,logStartReadFile:e.noop,logStopReadFile:e.noop,logStartBindFile:e.noop,logStopBindFile:e.noop,logStartScheduledOperation:e.noop,logStopScheduledOperation:e.noop},w;try{var B=(a=Eu.env.TS_ETW_MODULE_PATH)!==null&&a!==void 0?a:\"./node_modules/@microsoft/typescript-etw\";w=void 0}catch{w=void 0}e.perfLogger=w&&w.logEvent?w:C})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B=0,E=0,Q,le=[],N,p=[];function m(he,F,x){if(e.Debug.assert(!e.tracing,\"Tracing already started\"),w===void 0)try{w=ex()}catch(V){throw new Error(`tracing requires having fs\n(original error: `.concat(V.message||V,\")\"))}Q=he,le.length=0,N===void 0&&(N=e.combinePaths(F,\"legend.json\")),w.existsSync(F)||w.mkdirSync(F,{recursive:!0});var X=Q===\"build\"?\".\".concat(Eu.pid,\"-\").concat(++B):Q===\"server\"?\".\".concat(Eu.pid):\"\",$=e.combinePaths(F,\"trace\".concat(X,\".json\")),A=e.combinePaths(F,\"types\".concat(X,\".json\"));p.push({configFilePath:x,tracePath:$,typesPath:A}),E=w.openSync($,\"w\"),e.tracing=C;var y={cat:\"__metadata\",ph:\"M\",ts:1e3*e.timestamp(),pid:1,tid:1};w.writeSync(E,`[\n`+[Ke({name:\"process_name\",args:{name:\"tsc\"}},y),Ke({name:\"thread_name\",args:{name:\"Main\"}},y),Ke(Ke({name:\"TracingStartedInBrowser\"},y),{cat:\"disabled-by-default-devtools.timeline\"})].map(function(V){return JSON.stringify(V)}).join(`,\n`))}C.startTracing=m;function G(){e.Debug.assert(e.tracing,\"Tracing is not in progress\"),e.Debug.assert(!!le.length==(Q!==\"server\")),w.writeSync(E,`\n]\n`),w.closeSync(E),e.tracing=void 0,le.length?ve(le):p[p.length-1].typesPath=void 0}C.stopTracing=G;function oe(he){Q!==\"server\"&&le.push(he)}C.recordType=oe;var f;(function(he){he.Parse=\"parse\",he.Program=\"program\",he.Bind=\"bind\",he.Check=\"check\",he.CheckTypes=\"checkTypes\",he.Emit=\"emit\",he.Session=\"session\"})(f=C.Phase||(C.Phase={}));function T(he,F,x){q(\"I\",he,F,x,'\"s\":\"g\"')}C.instant=T;var K=[];function b(he,F,x,X){X===void 0&&(X=!1),X&&q(\"B\",he,F,x),K.push({phase:he,name:F,args:x,time:1e3*e.timestamp(),separateBeginAndEnd:X})}C.push=b;function se(){e.Debug.assert(K.length>0),R(K.length-1,1e3*e.timestamp()),K.length--}C.pop=se;function J(){for(var he=1e3*e.timestamp(),F=K.length-1;F>=0;F--)R(F,he);K.length=0}C.popAll=J;var ie=1e3*10;function R(he,F){var x=K[he],X=x.phase,$=x.name,A=x.args,y=x.time,V=x.separateBeginAndEnd;V?q(\"E\",X,$,A,void 0,F):ie-y%ie<=F-y&&q(\"X\",X,$,A,'\"dur\":'.concat(F-y),y)}function q(he,F,x,X,$,A){A===void 0&&(A=1e3*e.timestamp()),!(Q===\"server\"&&F===\"checkTypes\")&&(e.performance.mark(\"beginTracing\"),w.writeSync(E,`,\n{\"pid\":1,\"tid\":1,\"ph\":\"`.concat(he,'\",\"cat\":\"').concat(F,'\",\"ts\":').concat(A,',\"name\":\"').concat(x,'\"')),$&&w.writeSync(E,\",\".concat($)),X&&w.writeSync(E,',\"args\":'.concat(JSON.stringify(X))),w.writeSync(E,\"}\"),e.performance.mark(\"endTracing\"),e.performance.measure(\"Tracing\",\"beginTracing\",\"endTracing\"))}function O(he){var F=e.getSourceFileOfNode(he);return F?{path:F.path,start:x(e.getLineAndCharacterOfPosition(F,he.pos)),end:x(e.getLineAndCharacterOfPosition(F,he.end))}:void 0;function x(X){return{line:X.line+1,character:X.character+1}}}function ve(he){var F,x,X,$,A,y,V,L,P,k,Y,U,j,H,I,l,d,D,fe,g,ne,ue;e.performance.mark(\"beginDumpTypes\");var We=p[p.length-1].typesPath,Fe=w.openSync(We,\"w\"),Z=new e.Map;w.writeSync(Fe,\"[\");for(var Be=he.length,ge=0;ge\"u\")){var A=Eu.version;if(!!A){var y=A.indexOf(\".\");if(y!==-1)return parseInt(A.substring(1,y))}}}e.getNodeMajorVersion=X,e.sys=void 0;function $(A){e.sys=void 0}e.setSys=$,e.sys&&e.sys.getEnvironmentVariable&&(p(e.sys),e.Debug.setAssertionLevel(/^development$/i.test(e.sys.getEnvironmentVariable(\"NODE_ENV\"))?1:0)),e.sys&&e.sys.debugMode&&(e.Debug.isDebugging=!0)})(ke||(ke={}));var ke;(function(e){e.directorySeparator=\"/\",e.altDirectorySeparator=\"\\\\\";var a=\"://\",C=/\\\\/g;function w(ze){return ze===47||ze===92}e.isAnyDirectorySeparator=w;function B(ze){return b(ze)<0}e.isUrl=B;function E(ze){return b(ze)>0}e.isRootedDiskPath=E;function Q(ze){var Ee=b(ze);return Ee>0&&Ee===ze.length}e.isDiskPathRoot=Q;function le(ze){return b(ze)!==0}e.pathIsAbsolute=le;function N(ze){return/^\\.\\.?($|[\\\\/])/.test(ze)}e.pathIsRelative=N;function p(ze){return!le(ze)&&!N(ze)}e.pathIsBareSpecifier=p;function m(ze){return e.stringContains(ie(ze),\".\")}e.hasExtension=m;function G(ze,Ee){return ze.length>Ee.length&&e.endsWith(ze,Ee)}e.fileExtensionIs=G;function oe(ze,Ee){for(var He=0,rr=Ee;He0&&w(ze.charCodeAt(ze.length-1))}e.hasTrailingDirectorySeparator=f;function T(ze){return ze>=97&&ze<=122||ze>=65&&ze<=90}function K(ze,Ee){var He=ze.charCodeAt(Ee);if(He===58)return Ee+1;if(He===37&&ze.charCodeAt(Ee+1)===51){var rr=ze.charCodeAt(Ee+2);if(rr===97||rr===65)return Ee+3}return-1}function b(ze){if(!ze)return 0;var Ee=ze.charCodeAt(0);if(Ee===47||Ee===92){if(ze.charCodeAt(1)!==Ee)return 1;var He=ze.indexOf(Ee===47?e.directorySeparator:e.altDirectorySeparator,2);return He<0?ze.length:He+1}if(T(Ee)&&ze.charCodeAt(1)===58){var rr=ze.charCodeAt(2);if(rr===47||rr===92)return 3;if(ze.length===2)return 2}var Ie=ze.indexOf(a);if(Ie!==-1){var _e=Ie+a.length,we=ze.indexOf(e.directorySeparator,_e);if(we!==-1){var de=ze.slice(0,Ie),ye=ze.slice(_e,we);if(de===\"file\"&&(ye===\"\"||ye===\"localhost\")&&T(ze.charCodeAt(we+1))){var Ae=K(ze,we+2);if(Ae!==-1){if(ze.charCodeAt(Ae)===47)return~(Ae+1);if(Ae===ze.length)return~Ae}}return~(we+1)}return~ze.length}return 0}function se(ze){var Ee=b(ze);return Ee<0?~Ee:Ee}e.getRootLength=se;function J(ze){ze=F(ze);var Ee=se(ze);return Ee===ze.length?ze:(ze=Y(ze),ze.slice(0,Math.max(Ee,ze.lastIndexOf(e.directorySeparator))))}e.getDirectoryPath=J;function ie(ze,Ee,He){ze=F(ze);var rr=se(ze);if(rr===ze.length)return\"\";ze=Y(ze);var Ie=ze.slice(Math.max(se(ze),ze.lastIndexOf(e.directorySeparator)+1)),_e=Ee!==void 0&&He!==void 0?O(Ie,Ee,He):void 0;return _e?Ie.slice(0,Ie.length-_e.length):Ie}e.getBaseFileName=ie;function R(ze,Ee,He){if(e.startsWith(Ee,\".\")||(Ee=\".\"+Ee),ze.length>=Ee.length&&ze.charCodeAt(ze.length-Ee.length)===46){var rr=ze.slice(ze.length-Ee.length);if(He(rr,Ee))return rr}}function q(ze,Ee,He){if(typeof Ee==\"string\")return R(ze,Ee,He)||\"\";for(var rr=0,Ie=Ee;rr=0?rr.substring(Ie):\"\"}e.getAnyExtensionFromPath=O;function ve(ze,Ee){var He=ze.substring(0,Ee),rr=ze.substring(Ee).split(e.directorySeparator);return rr.length&&!e.lastOrUndefined(rr)&&rr.pop(),Ve([He],rr,!0)}function ee(ze,Ee){return Ee===void 0&&(Ee=\"\"),ze=X(Ee,ze),ve(ze,se(ze))}e.getPathComponents=ee;function he(ze){if(ze.length===0)return\"\";var Ee=ze[0]&&U(ze[0]);return Ee+ze.slice(1).join(e.directorySeparator)}e.getPathFromPathComponents=he;function F(ze){var Ee=ze.indexOf(\"\\\\\");return Ee===-1?ze:(C.lastIndex=Ee,ze.replace(C,e.directorySeparator))}e.normalizeSlashes=F;function x(ze){if(!e.some(ze))return[];for(var Ee=[ze[0]],He=1;He1){if(Ee[Ee.length-1]!==\"..\"){Ee.pop();continue}}else if(Ee[0])continue}Ee.push(rr)}}return Ee}e.reducePathComponents=x;function X(ze){for(var Ee=[],He=1;He0==se(Ee)>0,\"Paths must either both be absolute or both be relative\");var rr=typeof He==\"function\"?He:e.identity,Ie=typeof He==\"boolean\"?He:!1,_e=ue(ze,Ee,Ie?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,rr);return he(_e)}e.getRelativePathFromDirectory=We;function Fe(ze,Ee,He){return E(ze)?Be(Ee,ze,Ee,He,!1):ze}e.convertToRelativePath=Fe;function Z(ze,Ee,He){return j(We(J(ze),Ee,He))}e.getRelativePathFromFile=Z;function Be(ze,Ee,He,rr,Ie){var _e=ue($(He,ze),$(He,Ee),e.equateStringsCaseSensitive,rr),we=_e[0];if(Ie&&E(we)){var de=we.charAt(0)===e.directorySeparator?\"file://\":\"file:///\";_e[0]=de+we}return he(_e)}e.getRelativePathToDirectoryOrUrl=Be;function ge(ze,Ee){for(;;){var He=Ee(ze);if(He!==void 0)return He;var rr=J(ze);if(rr===ze)return;ze=rr}}e.forEachAncestorDirectory=ge;function Re(ze){return e.endsWith(ze,\"/node_modules\")}e.isNodeModulesDirectory=Re})(ke||(ke={}));var ke;(function(e){function a(C,w,B,E,Q,le,N){return{code:C,category:w,key:B,message:E,reportsUnnecessary:Q,elidedInCompatabilityPyramid:le,reportsDeprecated:N}}e.Diagnostics={Unterminated_string_literal:a(1002,e.DiagnosticCategory.Error,\"Unterminated_string_literal_1002\",\"Unterminated string literal.\"),Identifier_expected:a(1003,e.DiagnosticCategory.Error,\"Identifier_expected_1003\",\"Identifier expected.\"),_0_expected:a(1005,e.DiagnosticCategory.Error,\"_0_expected_1005\",\"'{0}' expected.\"),A_file_cannot_have_a_reference_to_itself:a(1006,e.DiagnosticCategory.Error,\"A_file_cannot_have_a_reference_to_itself_1006\",\"A file cannot have a reference to itself.\"),The_parser_expected_to_find_a_1_to_match_the_0_token_here:a(1007,e.DiagnosticCategory.Error,\"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007\",\"The parser expected to find a '{1}' to match the '{0}' token here.\"),Trailing_comma_not_allowed:a(1009,e.DiagnosticCategory.Error,\"Trailing_comma_not_allowed_1009\",\"Trailing comma not allowed.\"),Asterisk_Slash_expected:a(1010,e.DiagnosticCategory.Error,\"Asterisk_Slash_expected_1010\",\"'*/' expected.\"),An_element_access_expression_should_take_an_argument:a(1011,e.DiagnosticCategory.Error,\"An_element_access_expression_should_take_an_argument_1011\",\"An element access expression should take an argument.\"),Unexpected_token:a(1012,e.DiagnosticCategory.Error,\"Unexpected_token_1012\",\"Unexpected token.\"),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:a(1013,e.DiagnosticCategory.Error,\"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013\",\"A rest parameter or binding pattern may not have a trailing comma.\"),A_rest_parameter_must_be_last_in_a_parameter_list:a(1014,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_last_in_a_parameter_list_1014\",\"A rest parameter must be last in a parameter list.\"),Parameter_cannot_have_question_mark_and_initializer:a(1015,e.DiagnosticCategory.Error,\"Parameter_cannot_have_question_mark_and_initializer_1015\",\"Parameter cannot have question mark and initializer.\"),A_required_parameter_cannot_follow_an_optional_parameter:a(1016,e.DiagnosticCategory.Error,\"A_required_parameter_cannot_follow_an_optional_parameter_1016\",\"A required parameter cannot follow an optional parameter.\"),An_index_signature_cannot_have_a_rest_parameter:a(1017,e.DiagnosticCategory.Error,\"An_index_signature_cannot_have_a_rest_parameter_1017\",\"An index signature cannot have a rest parameter.\"),An_index_signature_parameter_cannot_have_an_accessibility_modifier:a(1018,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018\",\"An index signature parameter cannot have an accessibility modifier.\"),An_index_signature_parameter_cannot_have_a_question_mark:a(1019,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_a_question_mark_1019\",\"An index signature parameter cannot have a question mark.\"),An_index_signature_parameter_cannot_have_an_initializer:a(1020,e.DiagnosticCategory.Error,\"An_index_signature_parameter_cannot_have_an_initializer_1020\",\"An index signature parameter cannot have an initializer.\"),An_index_signature_must_have_a_type_annotation:a(1021,e.DiagnosticCategory.Error,\"An_index_signature_must_have_a_type_annotation_1021\",\"An index signature must have a type annotation.\"),An_index_signature_parameter_must_have_a_type_annotation:a(1022,e.DiagnosticCategory.Error,\"An_index_signature_parameter_must_have_a_type_annotation_1022\",\"An index signature parameter must have a type annotation.\"),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:a(1024,e.DiagnosticCategory.Error,\"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024\",\"'readonly' modifier can only appear on a property declaration or index signature.\"),An_index_signature_cannot_have_a_trailing_comma:a(1025,e.DiagnosticCategory.Error,\"An_index_signature_cannot_have_a_trailing_comma_1025\",\"An index signature cannot have a trailing comma.\"),Accessibility_modifier_already_seen:a(1028,e.DiagnosticCategory.Error,\"Accessibility_modifier_already_seen_1028\",\"Accessibility modifier already seen.\"),_0_modifier_must_precede_1_modifier:a(1029,e.DiagnosticCategory.Error,\"_0_modifier_must_precede_1_modifier_1029\",\"'{0}' modifier must precede '{1}' modifier.\"),_0_modifier_already_seen:a(1030,e.DiagnosticCategory.Error,\"_0_modifier_already_seen_1030\",\"'{0}' modifier already seen.\"),_0_modifier_cannot_appear_on_class_elements_of_this_kind:a(1031,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031\",\"'{0}' modifier cannot appear on class elements of this kind.\"),super_must_be_followed_by_an_argument_list_or_member_access:a(1034,e.DiagnosticCategory.Error,\"super_must_be_followed_by_an_argument_list_or_member_access_1034\",\"'super' must be followed by an argument list or member access.\"),Only_ambient_modules_can_use_quoted_names:a(1035,e.DiagnosticCategory.Error,\"Only_ambient_modules_can_use_quoted_names_1035\",\"Only ambient modules can use quoted names.\"),Statements_are_not_allowed_in_ambient_contexts:a(1036,e.DiagnosticCategory.Error,\"Statements_are_not_allowed_in_ambient_contexts_1036\",\"Statements are not allowed in ambient contexts.\"),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:a(1038,e.DiagnosticCategory.Error,\"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038\",\"A 'declare' modifier cannot be used in an already ambient context.\"),Initializers_are_not_allowed_in_ambient_contexts:a(1039,e.DiagnosticCategory.Error,\"Initializers_are_not_allowed_in_ambient_contexts_1039\",\"Initializers are not allowed in ambient contexts.\"),_0_modifier_cannot_be_used_in_an_ambient_context:a(1040,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_in_an_ambient_context_1040\",\"'{0}' modifier cannot be used in an ambient context.\"),_0_modifier_cannot_be_used_here:a(1042,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_here_1042\",\"'{0}' modifier cannot be used here.\"),_0_modifier_cannot_appear_on_a_module_or_namespace_element:a(1044,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044\",\"'{0}' modifier cannot appear on a module or namespace element.\"),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:a(1046,e.DiagnosticCategory.Error,\"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046\",\"Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.\"),A_rest_parameter_cannot_be_optional:a(1047,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_be_optional_1047\",\"A rest parameter cannot be optional.\"),A_rest_parameter_cannot_have_an_initializer:a(1048,e.DiagnosticCategory.Error,\"A_rest_parameter_cannot_have_an_initializer_1048\",\"A rest parameter cannot have an initializer.\"),A_set_accessor_must_have_exactly_one_parameter:a(1049,e.DiagnosticCategory.Error,\"A_set_accessor_must_have_exactly_one_parameter_1049\",\"A 'set' accessor must have exactly one parameter.\"),A_set_accessor_cannot_have_an_optional_parameter:a(1051,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_an_optional_parameter_1051\",\"A 'set' accessor cannot have an optional parameter.\"),A_set_accessor_parameter_cannot_have_an_initializer:a(1052,e.DiagnosticCategory.Error,\"A_set_accessor_parameter_cannot_have_an_initializer_1052\",\"A 'set' accessor parameter cannot have an initializer.\"),A_set_accessor_cannot_have_rest_parameter:a(1053,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_rest_parameter_1053\",\"A 'set' accessor cannot have rest parameter.\"),A_get_accessor_cannot_have_parameters:a(1054,e.DiagnosticCategory.Error,\"A_get_accessor_cannot_have_parameters_1054\",\"A 'get' accessor cannot have parameters.\"),Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:a(1055,e.DiagnosticCategory.Error,\"Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055\",\"Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.\"),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:a(1056,e.DiagnosticCategory.Error,\"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056\",\"Accessors are only available when targeting ECMAScript 5 and higher.\"),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1058,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058\",\"The return type of an async function must either be a valid promise or must not contain a callable 'then' member.\"),A_promise_must_have_a_then_method:a(1059,e.DiagnosticCategory.Error,\"A_promise_must_have_a_then_method_1059\",\"A promise must have a 'then' method.\"),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:a(1060,e.DiagnosticCategory.Error,\"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060\",\"The first parameter of the 'then' method of a promise must be a callback.\"),Enum_member_must_have_initializer:a(1061,e.DiagnosticCategory.Error,\"Enum_member_must_have_initializer_1061\",\"Enum member must have initializer.\"),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:a(1062,e.DiagnosticCategory.Error,\"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062\",\"Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.\"),An_export_assignment_cannot_be_used_in_a_namespace:a(1063,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_namespace_1063\",\"An export assignment cannot be used in a namespace.\"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:a(1064,e.DiagnosticCategory.Error,\"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064\",\"The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?\"),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:a(1066,e.DiagnosticCategory.Error,\"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066\",\"In ambient enum declarations member initializer must be constant expression.\"),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:a(1068,e.DiagnosticCategory.Error,\"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068\",\"Unexpected token. A constructor, method, accessor, or property was expected.\"),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:a(1069,e.DiagnosticCategory.Error,\"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069\",\"Unexpected token. A type parameter name was expected without curly braces.\"),_0_modifier_cannot_appear_on_a_type_member:a(1070,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_type_member_1070\",\"'{0}' modifier cannot appear on a type member.\"),_0_modifier_cannot_appear_on_an_index_signature:a(1071,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_an_index_signature_1071\",\"'{0}' modifier cannot appear on an index signature.\"),A_0_modifier_cannot_be_used_with_an_import_declaration:a(1079,e.DiagnosticCategory.Error,\"A_0_modifier_cannot_be_used_with_an_import_declaration_1079\",\"A '{0}' modifier cannot be used with an import declaration.\"),Invalid_reference_directive_syntax:a(1084,e.DiagnosticCategory.Error,\"Invalid_reference_directive_syntax_1084\",\"Invalid 'reference' directive syntax.\"),Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:a(1085,e.DiagnosticCategory.Error,\"Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0_1085\",\"Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'.\"),_0_modifier_cannot_appear_on_a_constructor_declaration:a(1089,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_constructor_declaration_1089\",\"'{0}' modifier cannot appear on a constructor declaration.\"),_0_modifier_cannot_appear_on_a_parameter:a(1090,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_parameter_1090\",\"'{0}' modifier cannot appear on a parameter.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:a(1091,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091\",\"Only a single variable declaration is allowed in a 'for...in' statement.\"),Type_parameters_cannot_appear_on_a_constructor_declaration:a(1092,e.DiagnosticCategory.Error,\"Type_parameters_cannot_appear_on_a_constructor_declaration_1092\",\"Type parameters cannot appear on a constructor declaration.\"),Type_annotation_cannot_appear_on_a_constructor_declaration:a(1093,e.DiagnosticCategory.Error,\"Type_annotation_cannot_appear_on_a_constructor_declaration_1093\",\"Type annotation cannot appear on a constructor declaration.\"),An_accessor_cannot_have_type_parameters:a(1094,e.DiagnosticCategory.Error,\"An_accessor_cannot_have_type_parameters_1094\",\"An accessor cannot have type parameters.\"),A_set_accessor_cannot_have_a_return_type_annotation:a(1095,e.DiagnosticCategory.Error,\"A_set_accessor_cannot_have_a_return_type_annotation_1095\",\"A 'set' accessor cannot have a return type annotation.\"),An_index_signature_must_have_exactly_one_parameter:a(1096,e.DiagnosticCategory.Error,\"An_index_signature_must_have_exactly_one_parameter_1096\",\"An index signature must have exactly one parameter.\"),_0_list_cannot_be_empty:a(1097,e.DiagnosticCategory.Error,\"_0_list_cannot_be_empty_1097\",\"'{0}' list cannot be empty.\"),Type_parameter_list_cannot_be_empty:a(1098,e.DiagnosticCategory.Error,\"Type_parameter_list_cannot_be_empty_1098\",\"Type parameter list cannot be empty.\"),Type_argument_list_cannot_be_empty:a(1099,e.DiagnosticCategory.Error,\"Type_argument_list_cannot_be_empty_1099\",\"Type argument list cannot be empty.\"),Invalid_use_of_0_in_strict_mode:a(1100,e.DiagnosticCategory.Error,\"Invalid_use_of_0_in_strict_mode_1100\",\"Invalid use of '{0}' in strict mode.\"),with_statements_are_not_allowed_in_strict_mode:a(1101,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_strict_mode_1101\",\"'with' statements are not allowed in strict mode.\"),delete_cannot_be_called_on_an_identifier_in_strict_mode:a(1102,e.DiagnosticCategory.Error,\"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102\",\"'delete' cannot be called on an identifier in strict mode.\"),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:a(1103,e.DiagnosticCategory.Error,\"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103\",\"'for await' loops are only allowed within async functions and at the top levels of modules.\"),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:a(1104,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104\",\"A 'continue' statement can only be used within an enclosing iteration statement.\"),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:a(1105,e.DiagnosticCategory.Error,\"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105\",\"A 'break' statement can only be used within an enclosing iteration or switch statement.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_async:a(1106,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106\",\"The left-hand side of a 'for...of' statement may not be 'async'.\"),Jump_target_cannot_cross_function_boundary:a(1107,e.DiagnosticCategory.Error,\"Jump_target_cannot_cross_function_boundary_1107\",\"Jump target cannot cross function boundary.\"),A_return_statement_can_only_be_used_within_a_function_body:a(1108,e.DiagnosticCategory.Error,\"A_return_statement_can_only_be_used_within_a_function_body_1108\",\"A 'return' statement can only be used within a function body.\"),Expression_expected:a(1109,e.DiagnosticCategory.Error,\"Expression_expected_1109\",\"Expression expected.\"),Type_expected:a(1110,e.DiagnosticCategory.Error,\"Type_expected_1110\",\"Type expected.\"),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:a(1113,e.DiagnosticCategory.Error,\"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113\",\"A 'default' clause cannot appear more than once in a 'switch' statement.\"),Duplicate_label_0:a(1114,e.DiagnosticCategory.Error,\"Duplicate_label_0_1114\",\"Duplicate label '{0}'.\"),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:a(1115,e.DiagnosticCategory.Error,\"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115\",\"A 'continue' statement can only jump to a label of an enclosing iteration statement.\"),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:a(1116,e.DiagnosticCategory.Error,\"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116\",\"A 'break' statement can only jump to a label of an enclosing statement.\"),An_object_literal_cannot_have_multiple_properties_with_the_same_name:a(1117,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117\",\"An object literal cannot have multiple properties with the same name.\"),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:a(1118,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118\",\"An object literal cannot have multiple get/set accessors with the same name.\"),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:a(1119,e.DiagnosticCategory.Error,\"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119\",\"An object literal cannot have property and accessor with the same name.\"),An_export_assignment_cannot_have_modifiers:a(1120,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_have_modifiers_1120\",\"An export assignment cannot have modifiers.\"),Octal_literals_are_not_allowed_in_strict_mode:a(1121,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_strict_mode_1121\",\"Octal literals are not allowed in strict mode.\"),Variable_declaration_list_cannot_be_empty:a(1123,e.DiagnosticCategory.Error,\"Variable_declaration_list_cannot_be_empty_1123\",\"Variable declaration list cannot be empty.\"),Digit_expected:a(1124,e.DiagnosticCategory.Error,\"Digit_expected_1124\",\"Digit expected.\"),Hexadecimal_digit_expected:a(1125,e.DiagnosticCategory.Error,\"Hexadecimal_digit_expected_1125\",\"Hexadecimal digit expected.\"),Unexpected_end_of_text:a(1126,e.DiagnosticCategory.Error,\"Unexpected_end_of_text_1126\",\"Unexpected end of text.\"),Invalid_character:a(1127,e.DiagnosticCategory.Error,\"Invalid_character_1127\",\"Invalid character.\"),Declaration_or_statement_expected:a(1128,e.DiagnosticCategory.Error,\"Declaration_or_statement_expected_1128\",\"Declaration or statement expected.\"),Statement_expected:a(1129,e.DiagnosticCategory.Error,\"Statement_expected_1129\",\"Statement expected.\"),case_or_default_expected:a(1130,e.DiagnosticCategory.Error,\"case_or_default_expected_1130\",\"'case' or 'default' expected.\"),Property_or_signature_expected:a(1131,e.DiagnosticCategory.Error,\"Property_or_signature_expected_1131\",\"Property or signature expected.\"),Enum_member_expected:a(1132,e.DiagnosticCategory.Error,\"Enum_member_expected_1132\",\"Enum member expected.\"),Variable_declaration_expected:a(1134,e.DiagnosticCategory.Error,\"Variable_declaration_expected_1134\",\"Variable declaration expected.\"),Argument_expression_expected:a(1135,e.DiagnosticCategory.Error,\"Argument_expression_expected_1135\",\"Argument expression expected.\"),Property_assignment_expected:a(1136,e.DiagnosticCategory.Error,\"Property_assignment_expected_1136\",\"Property assignment expected.\"),Expression_or_comma_expected:a(1137,e.DiagnosticCategory.Error,\"Expression_or_comma_expected_1137\",\"Expression or comma expected.\"),Parameter_declaration_expected:a(1138,e.DiagnosticCategory.Error,\"Parameter_declaration_expected_1138\",\"Parameter declaration expected.\"),Type_parameter_declaration_expected:a(1139,e.DiagnosticCategory.Error,\"Type_parameter_declaration_expected_1139\",\"Type parameter declaration expected.\"),Type_argument_expected:a(1140,e.DiagnosticCategory.Error,\"Type_argument_expected_1140\",\"Type argument expected.\"),String_literal_expected:a(1141,e.DiagnosticCategory.Error,\"String_literal_expected_1141\",\"String literal expected.\"),Line_break_not_permitted_here:a(1142,e.DiagnosticCategory.Error,\"Line_break_not_permitted_here_1142\",\"Line break not permitted here.\"),or_expected:a(1144,e.DiagnosticCategory.Error,\"or_expected_1144\",\"'{' or ';' expected.\"),Declaration_expected:a(1146,e.DiagnosticCategory.Error,\"Declaration_expected_1146\",\"Declaration expected.\"),Import_declarations_in_a_namespace_cannot_reference_a_module:a(1147,e.DiagnosticCategory.Error,\"Import_declarations_in_a_namespace_cannot_reference_a_module_1147\",\"Import declarations in a namespace cannot reference a module.\"),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:a(1148,e.DiagnosticCategory.Error,\"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148\",\"Cannot use imports, exports, or module augmentations when '--module' is 'none'.\"),File_name_0_differs_from_already_included_file_name_1_only_in_casing:a(1149,e.DiagnosticCategory.Error,\"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149\",\"File name '{0}' differs from already included file name '{1}' only in casing.\"),const_declarations_must_be_initialized:a(1155,e.DiagnosticCategory.Error,\"const_declarations_must_be_initialized_1155\",\"'const' declarations must be initialized.\"),const_declarations_can_only_be_declared_inside_a_block:a(1156,e.DiagnosticCategory.Error,\"const_declarations_can_only_be_declared_inside_a_block_1156\",\"'const' declarations can only be declared inside a block.\"),let_declarations_can_only_be_declared_inside_a_block:a(1157,e.DiagnosticCategory.Error,\"let_declarations_can_only_be_declared_inside_a_block_1157\",\"'let' declarations can only be declared inside a block.\"),Unterminated_template_literal:a(1160,e.DiagnosticCategory.Error,\"Unterminated_template_literal_1160\",\"Unterminated template literal.\"),Unterminated_regular_expression_literal:a(1161,e.DiagnosticCategory.Error,\"Unterminated_regular_expression_literal_1161\",\"Unterminated regular expression literal.\"),An_object_member_cannot_be_declared_optional:a(1162,e.DiagnosticCategory.Error,\"An_object_member_cannot_be_declared_optional_1162\",\"An object member cannot be declared optional.\"),A_yield_expression_is_only_allowed_in_a_generator_body:a(1163,e.DiagnosticCategory.Error,\"A_yield_expression_is_only_allowed_in_a_generator_body_1163\",\"A 'yield' expression is only allowed in a generator body.\"),Computed_property_names_are_not_allowed_in_enums:a(1164,e.DiagnosticCategory.Error,\"Computed_property_names_are_not_allowed_in_enums_1164\",\"Computed property names are not allowed in enums.\"),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1165,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165\",\"A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:a(1166,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166\",\"A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1168,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168\",\"A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1169,e.DiagnosticCategory.Error,\"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169\",\"A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1170,e.DiagnosticCategory.Error,\"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170\",\"A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),A_comma_expression_is_not_allowed_in_a_computed_property_name:a(1171,e.DiagnosticCategory.Error,\"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171\",\"A comma expression is not allowed in a computed property name.\"),extends_clause_already_seen:a(1172,e.DiagnosticCategory.Error,\"extends_clause_already_seen_1172\",\"'extends' clause already seen.\"),extends_clause_must_precede_implements_clause:a(1173,e.DiagnosticCategory.Error,\"extends_clause_must_precede_implements_clause_1173\",\"'extends' clause must precede 'implements' clause.\"),Classes_can_only_extend_a_single_class:a(1174,e.DiagnosticCategory.Error,\"Classes_can_only_extend_a_single_class_1174\",\"Classes can only extend a single class.\"),implements_clause_already_seen:a(1175,e.DiagnosticCategory.Error,\"implements_clause_already_seen_1175\",\"'implements' clause already seen.\"),Interface_declaration_cannot_have_implements_clause:a(1176,e.DiagnosticCategory.Error,\"Interface_declaration_cannot_have_implements_clause_1176\",\"Interface declaration cannot have 'implements' clause.\"),Binary_digit_expected:a(1177,e.DiagnosticCategory.Error,\"Binary_digit_expected_1177\",\"Binary digit expected.\"),Octal_digit_expected:a(1178,e.DiagnosticCategory.Error,\"Octal_digit_expected_1178\",\"Octal digit expected.\"),Unexpected_token_expected:a(1179,e.DiagnosticCategory.Error,\"Unexpected_token_expected_1179\",\"Unexpected token. '{' expected.\"),Property_destructuring_pattern_expected:a(1180,e.DiagnosticCategory.Error,\"Property_destructuring_pattern_expected_1180\",\"Property destructuring pattern expected.\"),Array_element_destructuring_pattern_expected:a(1181,e.DiagnosticCategory.Error,\"Array_element_destructuring_pattern_expected_1181\",\"Array element destructuring pattern expected.\"),A_destructuring_declaration_must_have_an_initializer:a(1182,e.DiagnosticCategory.Error,\"A_destructuring_declaration_must_have_an_initializer_1182\",\"A destructuring declaration must have an initializer.\"),An_implementation_cannot_be_declared_in_ambient_contexts:a(1183,e.DiagnosticCategory.Error,\"An_implementation_cannot_be_declared_in_ambient_contexts_1183\",\"An implementation cannot be declared in ambient contexts.\"),Modifiers_cannot_appear_here:a(1184,e.DiagnosticCategory.Error,\"Modifiers_cannot_appear_here_1184\",\"Modifiers cannot appear here.\"),Merge_conflict_marker_encountered:a(1185,e.DiagnosticCategory.Error,\"Merge_conflict_marker_encountered_1185\",\"Merge conflict marker encountered.\"),A_rest_element_cannot_have_an_initializer:a(1186,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_an_initializer_1186\",\"A rest element cannot have an initializer.\"),A_parameter_property_may_not_be_declared_using_a_binding_pattern:a(1187,e.DiagnosticCategory.Error,\"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187\",\"A parameter property may not be declared using a binding pattern.\"),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:a(1188,e.DiagnosticCategory.Error,\"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188\",\"Only a single variable declaration is allowed in a 'for...of' statement.\"),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:a(1189,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189\",\"The variable declaration of a 'for...in' statement cannot have an initializer.\"),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:a(1190,e.DiagnosticCategory.Error,\"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190\",\"The variable declaration of a 'for...of' statement cannot have an initializer.\"),An_import_declaration_cannot_have_modifiers:a(1191,e.DiagnosticCategory.Error,\"An_import_declaration_cannot_have_modifiers_1191\",\"An import declaration cannot have modifiers.\"),Module_0_has_no_default_export:a(1192,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_1192\",\"Module '{0}' has no default export.\"),An_export_declaration_cannot_have_modifiers:a(1193,e.DiagnosticCategory.Error,\"An_export_declaration_cannot_have_modifiers_1193\",\"An export declaration cannot have modifiers.\"),Export_declarations_are_not_permitted_in_a_namespace:a(1194,e.DiagnosticCategory.Error,\"Export_declarations_are_not_permitted_in_a_namespace_1194\",\"Export declarations are not permitted in a namespace.\"),export_Asterisk_does_not_re_export_a_default:a(1195,e.DiagnosticCategory.Error,\"export_Asterisk_does_not_re_export_a_default_1195\",\"'export *' does not re-export a default.\"),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:a(1196,e.DiagnosticCategory.Error,\"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196\",\"Catch clause variable type annotation must be 'any' or 'unknown' if specified.\"),Catch_clause_variable_cannot_have_an_initializer:a(1197,e.DiagnosticCategory.Error,\"Catch_clause_variable_cannot_have_an_initializer_1197\",\"Catch clause variable cannot have an initializer.\"),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:a(1198,e.DiagnosticCategory.Error,\"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198\",\"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.\"),Unterminated_Unicode_escape_sequence:a(1199,e.DiagnosticCategory.Error,\"Unterminated_Unicode_escape_sequence_1199\",\"Unterminated Unicode escape sequence.\"),Line_terminator_not_permitted_before_arrow:a(1200,e.DiagnosticCategory.Error,\"Line_terminator_not_permitted_before_arrow_1200\",\"Line terminator not permitted before arrow.\"),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:a(1202,e.DiagnosticCategory.Error,\"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202\",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:a(1203,e.DiagnosticCategory.Error,\"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203\",\"Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.\"),Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type:a(1205,e.DiagnosticCategory.Error,\"Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type_1205\",\"Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.\"),Decorators_are_not_valid_here:a(1206,e.DiagnosticCategory.Error,\"Decorators_are_not_valid_here_1206\",\"Decorators are not valid here.\"),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:a(1207,e.DiagnosticCategory.Error,\"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207\",\"Decorators cannot be applied to multiple get/set accessors of the same name.\"),_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_import_export_or_an_empty_export_statement_to_make_it_a_module:a(1208,e.DiagnosticCategory.Error,\"_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_imp_1208\",\"'{0}' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module.\"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:a(1210,e.DiagnosticCategory.Error,\"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210\",\"Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.\"),A_class_declaration_without_the_default_modifier_must_have_a_name:a(1211,e.DiagnosticCategory.Error,\"A_class_declaration_without_the_default_modifier_must_have_a_name_1211\",\"A class declaration without the 'default' modifier must have a name.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode:a(1212,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212\",\"Identifier expected. '{0}' is a reserved word in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:a(1213,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213\",\"Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.\"),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:a(1214,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214\",\"Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.\"),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:a(1215,e.DiagnosticCategory.Error,\"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215\",\"Invalid use of '{0}'. Modules are automatically in strict mode.\"),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:a(1216,e.DiagnosticCategory.Error,\"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216\",\"Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.\"),Export_assignment_is_not_supported_when_module_flag_is_system:a(1218,e.DiagnosticCategory.Error,\"Export_assignment_is_not_supported_when_module_flag_is_system_1218\",\"Export assignment is not supported when '--module' flag is 'system'.\"),Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning:a(1219,e.DiagnosticCategory.Error,\"Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_t_1219\",\"Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning.\"),Generators_are_not_allowed_in_an_ambient_context:a(1221,e.DiagnosticCategory.Error,\"Generators_are_not_allowed_in_an_ambient_context_1221\",\"Generators are not allowed in an ambient context.\"),An_overload_signature_cannot_be_declared_as_a_generator:a(1222,e.DiagnosticCategory.Error,\"An_overload_signature_cannot_be_declared_as_a_generator_1222\",\"An overload signature cannot be declared as a generator.\"),_0_tag_already_specified:a(1223,e.DiagnosticCategory.Error,\"_0_tag_already_specified_1223\",\"'{0}' tag already specified.\"),Signature_0_must_be_a_type_predicate:a(1224,e.DiagnosticCategory.Error,\"Signature_0_must_be_a_type_predicate_1224\",\"Signature '{0}' must be a type predicate.\"),Cannot_find_parameter_0:a(1225,e.DiagnosticCategory.Error,\"Cannot_find_parameter_0_1225\",\"Cannot find parameter '{0}'.\"),Type_predicate_0_is_not_assignable_to_1:a(1226,e.DiagnosticCategory.Error,\"Type_predicate_0_is_not_assignable_to_1_1226\",\"Type predicate '{0}' is not assignable to '{1}'.\"),Parameter_0_is_not_in_the_same_position_as_parameter_1:a(1227,e.DiagnosticCategory.Error,\"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227\",\"Parameter '{0}' is not in the same position as parameter '{1}'.\"),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:a(1228,e.DiagnosticCategory.Error,\"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228\",\"A type predicate is only allowed in return type position for functions and methods.\"),A_type_predicate_cannot_reference_a_rest_parameter:a(1229,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_a_rest_parameter_1229\",\"A type predicate cannot reference a rest parameter.\"),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:a(1230,e.DiagnosticCategory.Error,\"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230\",\"A type predicate cannot reference element '{0}' in a binding pattern.\"),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:a(1231,e.DiagnosticCategory.Error,\"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231\",\"An export assignment must be at the top level of a file or module declaration.\"),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:a(1232,e.DiagnosticCategory.Error,\"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232\",\"An import declaration can only be used at the top level of a namespace or module.\"),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:a(1233,e.DiagnosticCategory.Error,\"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233\",\"An export declaration can only be used at the top level of a namespace or module.\"),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:a(1234,e.DiagnosticCategory.Error,\"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234\",\"An ambient module declaration is only allowed at the top level in a file.\"),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:a(1235,e.DiagnosticCategory.Error,\"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235\",\"A namespace declaration is only allowed at the top level of a namespace or module.\"),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:a(1236,e.DiagnosticCategory.Error,\"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236\",\"The return type of a property decorator function must be either 'void' or 'any'.\"),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:a(1237,e.DiagnosticCategory.Error,\"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237\",\"The return type of a parameter decorator function must be either 'void' or 'any'.\"),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:a(1238,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238\",\"Unable to resolve signature of class decorator when called as an expression.\"),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:a(1239,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239\",\"Unable to resolve signature of parameter decorator when called as an expression.\"),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:a(1240,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240\",\"Unable to resolve signature of property decorator when called as an expression.\"),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:a(1241,e.DiagnosticCategory.Error,\"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241\",\"Unable to resolve signature of method decorator when called as an expression.\"),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:a(1242,e.DiagnosticCategory.Error,\"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242\",\"'abstract' modifier can only appear on a class, method, or property declaration.\"),_0_modifier_cannot_be_used_with_1_modifier:a(1243,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_1_modifier_1243\",\"'{0}' modifier cannot be used with '{1}' modifier.\"),Abstract_methods_can_only_appear_within_an_abstract_class:a(1244,e.DiagnosticCategory.Error,\"Abstract_methods_can_only_appear_within_an_abstract_class_1244\",\"Abstract methods can only appear within an abstract class.\"),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:a(1245,e.DiagnosticCategory.Error,\"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245\",\"Method '{0}' cannot have an implementation because it is marked abstract.\"),An_interface_property_cannot_have_an_initializer:a(1246,e.DiagnosticCategory.Error,\"An_interface_property_cannot_have_an_initializer_1246\",\"An interface property cannot have an initializer.\"),A_type_literal_property_cannot_have_an_initializer:a(1247,e.DiagnosticCategory.Error,\"A_type_literal_property_cannot_have_an_initializer_1247\",\"A type literal property cannot have an initializer.\"),A_class_member_cannot_have_the_0_keyword:a(1248,e.DiagnosticCategory.Error,\"A_class_member_cannot_have_the_0_keyword_1248\",\"A class member cannot have the '{0}' keyword.\"),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:a(1249,e.DiagnosticCategory.Error,\"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249\",\"A decorator can only decorate a method implementation, not an overload.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5:a(1250,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:a(1251,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode.\"),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:a(1252,e.DiagnosticCategory.Error,\"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252\",\"Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode.\"),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:a(1254,e.DiagnosticCategory.Error,\"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254\",\"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),A_definite_assignment_assertion_is_not_permitted_in_this_context:a(1255,e.DiagnosticCategory.Error,\"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255\",\"A definite assignment assertion '!' is not permitted in this context.\"),A_required_element_cannot_follow_an_optional_element:a(1257,e.DiagnosticCategory.Error,\"A_required_element_cannot_follow_an_optional_element_1257\",\"A required element cannot follow an optional element.\"),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:a(1258,e.DiagnosticCategory.Error,\"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258\",\"A default export must be at the top level of a file or module declaration.\"),Module_0_can_only_be_default_imported_using_the_1_flag:a(1259,e.DiagnosticCategory.Error,\"Module_0_can_only_be_default_imported_using_the_1_flag_1259\",\"Module '{0}' can only be default-imported using the '{1}' flag\"),Keywords_cannot_contain_escape_characters:a(1260,e.DiagnosticCategory.Error,\"Keywords_cannot_contain_escape_characters_1260\",\"Keywords cannot contain escape characters.\"),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:a(1261,e.DiagnosticCategory.Error,\"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261\",\"Already included file name '{0}' differs from file name '{1}' only in casing.\"),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:a(1262,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262\",\"Identifier expected. '{0}' is a reserved word at the top-level of a module.\"),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:a(1263,e.DiagnosticCategory.Error,\"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263\",\"Declarations with initializers cannot also have definite assignment assertions.\"),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:a(1264,e.DiagnosticCategory.Error,\"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264\",\"Declarations with definite assignment assertions must also have type annotations.\"),A_rest_element_cannot_follow_another_rest_element:a(1265,e.DiagnosticCategory.Error,\"A_rest_element_cannot_follow_another_rest_element_1265\",\"A rest element cannot follow another rest element.\"),An_optional_element_cannot_follow_a_rest_element:a(1266,e.DiagnosticCategory.Error,\"An_optional_element_cannot_follow_a_rest_element_1266\",\"An optional element cannot follow a rest element.\"),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:a(1267,e.DiagnosticCategory.Error,\"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267\",\"Property '{0}' cannot have an initializer because it is marked abstract.\"),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:a(1268,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268\",\"An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.\"),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided:a(1269,e.DiagnosticCategory.Error,\"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided_1269\",\"Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.\"),Decorator_function_return_type_0_is_not_assignable_to_type_1:a(1270,e.DiagnosticCategory.Error,\"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270\",\"Decorator function return type '{0}' is not assignable to type '{1}'.\"),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:a(1271,e.DiagnosticCategory.Error,\"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271\",\"Decorator function return type is '{0}' but is expected to be 'void' or 'any'.\"),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:a(1272,e.DiagnosticCategory.Error,\"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272\",\"A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.\"),_0_modifier_cannot_appear_on_a_type_parameter:a(1273,e.DiagnosticCategory.Error,\"_0_modifier_cannot_appear_on_a_type_parameter_1273\",\"'{0}' modifier cannot appear on a type parameter\"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:a(1274,e.DiagnosticCategory.Error,\"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274\",\"'{0}' modifier can only appear on a type parameter of a class, interface or type alias\"),with_statements_are_not_allowed_in_an_async_function_block:a(1300,e.DiagnosticCategory.Error,\"with_statements_are_not_allowed_in_an_async_function_block_1300\",\"'with' statements are not allowed in an async function block.\"),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:a(1308,e.DiagnosticCategory.Error,\"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308\",\"'await' expressions are only allowed within async functions and at the top levels of modules.\"),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:a(1309,e.DiagnosticCategory.Error,\"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309\",\"The current file is a CommonJS module and cannot use 'await' at the top level.\"),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:a(1312,e.DiagnosticCategory.Error,\"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312\",\"Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.\"),The_body_of_an_if_statement_cannot_be_the_empty_statement:a(1313,e.DiagnosticCategory.Error,\"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313\",\"The body of an 'if' statement cannot be the empty statement.\"),Global_module_exports_may_only_appear_in_module_files:a(1314,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_module_files_1314\",\"Global module exports may only appear in module files.\"),Global_module_exports_may_only_appear_in_declaration_files:a(1315,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_in_declaration_files_1315\",\"Global module exports may only appear in declaration files.\"),Global_module_exports_may_only_appear_at_top_level:a(1316,e.DiagnosticCategory.Error,\"Global_module_exports_may_only_appear_at_top_level_1316\",\"Global module exports may only appear at top level.\"),A_parameter_property_cannot_be_declared_using_a_rest_parameter:a(1317,e.DiagnosticCategory.Error,\"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317\",\"A parameter property cannot be declared using a rest parameter.\"),An_abstract_accessor_cannot_have_an_implementation:a(1318,e.DiagnosticCategory.Error,\"An_abstract_accessor_cannot_have_an_implementation_1318\",\"An abstract accessor cannot have an implementation.\"),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:a(1319,e.DiagnosticCategory.Error,\"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319\",\"A default export can only be used in an ECMAScript-style module.\"),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1320,e.DiagnosticCategory.Error,\"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320\",\"Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1321,e.DiagnosticCategory.Error,\"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321\",\"Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.\"),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1322,e.DiagnosticCategory.Error,\"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322\",\"Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.\"),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:a(1323,e.DiagnosticCategory.Error,\"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323\",\"Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'.\"),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext:a(1324,e.DiagnosticCategory.Error,\"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nod_1324\",\"Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', or 'nodenext'.\"),Argument_of_dynamic_import_cannot_be_spread_element:a(1325,e.DiagnosticCategory.Error,\"Argument_of_dynamic_import_cannot_be_spread_element_1325\",\"Argument of dynamic import cannot be spread element.\"),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:a(1326,e.DiagnosticCategory.Error,\"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326\",\"This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.\"),String_literal_with_double_quotes_expected:a(1327,e.DiagnosticCategory.Error,\"String_literal_with_double_quotes_expected_1327\",\"String literal with double quotes expected.\"),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:a(1328,e.DiagnosticCategory.Error,\"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328\",\"Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.\"),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:a(1329,e.DiagnosticCategory.Error,\"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329\",\"'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?\"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:a(1330,e.DiagnosticCategory.Error,\"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330\",\"A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.\"),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:a(1331,e.DiagnosticCategory.Error,\"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331\",\"A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.\"),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:a(1332,e.DiagnosticCategory.Error,\"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332\",\"A variable whose type is a 'unique symbol' type must be 'const'.\"),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:a(1333,e.DiagnosticCategory.Error,\"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333\",\"'unique symbol' types may not be used on a variable declaration with a binding name.\"),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:a(1334,e.DiagnosticCategory.Error,\"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334\",\"'unique symbol' types are only allowed on variables in a variable statement.\"),unique_symbol_types_are_not_allowed_here:a(1335,e.DiagnosticCategory.Error,\"unique_symbol_types_are_not_allowed_here_1335\",\"'unique symbol' types are not allowed here.\"),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:a(1337,e.DiagnosticCategory.Error,\"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337\",\"An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.\"),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:a(1338,e.DiagnosticCategory.Error,\"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338\",\"'infer' declarations are only permitted in the 'extends' clause of a conditional type.\"),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:a(1339,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339\",\"Module '{0}' does not refer to a value, but is used as a value here.\"),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:a(1340,e.DiagnosticCategory.Error,\"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340\",\"Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?\"),Type_arguments_cannot_be_used_here:a(1342,e.DiagnosticCategory.Error,\"Type_arguments_cannot_be_used_here_1342\",\"Type arguments cannot be used here.\"),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext:a(1343,e.DiagnosticCategory.Error,\"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343\",\"The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'.\"),A_label_is_not_allowed_here:a(1344,e.DiagnosticCategory.Error,\"A_label_is_not_allowed_here_1344\",\"'A label is not allowed here.\"),An_expression_of_type_void_cannot_be_tested_for_truthiness:a(1345,e.DiagnosticCategory.Error,\"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345\",\"An expression of type 'void' cannot be tested for truthiness.\"),This_parameter_is_not_allowed_with_use_strict_directive:a(1346,e.DiagnosticCategory.Error,\"This_parameter_is_not_allowed_with_use_strict_directive_1346\",\"This parameter is not allowed with 'use strict' directive.\"),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:a(1347,e.DiagnosticCategory.Error,\"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347\",\"'use strict' directive cannot be used with non-simple parameter list.\"),Non_simple_parameter_declared_here:a(1348,e.DiagnosticCategory.Error,\"Non_simple_parameter_declared_here_1348\",\"Non-simple parameter declared here.\"),use_strict_directive_used_here:a(1349,e.DiagnosticCategory.Error,\"use_strict_directive_used_here_1349\",\"'use strict' directive used here.\"),Print_the_final_configuration_instead_of_building:a(1350,e.DiagnosticCategory.Message,\"Print_the_final_configuration_instead_of_building_1350\",\"Print the final configuration instead of building.\"),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:a(1351,e.DiagnosticCategory.Error,\"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351\",\"An identifier or keyword cannot immediately follow a numeric literal.\"),A_bigint_literal_cannot_use_exponential_notation:a(1352,e.DiagnosticCategory.Error,\"A_bigint_literal_cannot_use_exponential_notation_1352\",\"A bigint literal cannot use exponential notation.\"),A_bigint_literal_must_be_an_integer:a(1353,e.DiagnosticCategory.Error,\"A_bigint_literal_must_be_an_integer_1353\",\"A bigint literal must be an integer.\"),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:a(1354,e.DiagnosticCategory.Error,\"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354\",\"'readonly' type modifier is only permitted on array and tuple literal types.\"),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:a(1355,e.DiagnosticCategory.Error,\"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355\",\"A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals.\"),Did_you_mean_to_mark_this_function_as_async:a(1356,e.DiagnosticCategory.Error,\"Did_you_mean_to_mark_this_function_as_async_1356\",\"Did you mean to mark this function as 'async'?\"),An_enum_member_name_must_be_followed_by_a_or:a(1357,e.DiagnosticCategory.Error,\"An_enum_member_name_must_be_followed_by_a_or_1357\",\"An enum member name must be followed by a ',', '=', or '}'.\"),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:a(1358,e.DiagnosticCategory.Error,\"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358\",\"Tagged template expressions are not permitted in an optional chain.\"),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:a(1359,e.DiagnosticCategory.Error,\"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359\",\"Identifier expected. '{0}' is a reserved word that cannot be used here.\"),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:a(1361,e.DiagnosticCategory.Error,\"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361\",\"'{0}' cannot be used as a value because it was imported using 'import type'.\"),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:a(1362,e.DiagnosticCategory.Error,\"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362\",\"'{0}' cannot be used as a value because it was exported using 'export type'.\"),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:a(1363,e.DiagnosticCategory.Error,\"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363\",\"A type-only import can specify a default import or named bindings, but not both.\"),Convert_to_type_only_export:a(1364,e.DiagnosticCategory.Message,\"Convert_to_type_only_export_1364\",\"Convert to type-only export\"),Convert_all_re_exported_types_to_type_only_exports:a(1365,e.DiagnosticCategory.Message,\"Convert_all_re_exported_types_to_type_only_exports_1365\",\"Convert all re-exported types to type-only exports\"),Split_into_two_separate_import_declarations:a(1366,e.DiagnosticCategory.Message,\"Split_into_two_separate_import_declarations_1366\",\"Split into two separate import declarations\"),Split_all_invalid_type_only_imports:a(1367,e.DiagnosticCategory.Message,\"Split_all_invalid_type_only_imports_1367\",\"Split all invalid type-only imports\"),Did_you_mean_0:a(1369,e.DiagnosticCategory.Message,\"Did_you_mean_0_1369\",\"Did you mean '{0}'?\"),This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error:a(1371,e.DiagnosticCategory.Error,\"This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set__1371\",\"This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'.\"),Convert_to_type_only_import:a(1373,e.DiagnosticCategory.Message,\"Convert_to_type_only_import_1373\",\"Convert to type-only import\"),Convert_all_imports_not_used_as_a_value_to_type_only_imports:a(1374,e.DiagnosticCategory.Message,\"Convert_all_imports_not_used_as_a_value_to_type_only_imports_1374\",\"Convert all imports not used as a value to type-only imports\"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:a(1375,e.DiagnosticCategory.Error,\"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375\",\"'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),_0_was_imported_here:a(1376,e.DiagnosticCategory.Message,\"_0_was_imported_here_1376\",\"'{0}' was imported here.\"),_0_was_exported_here:a(1377,e.DiagnosticCategory.Message,\"_0_was_exported_here_1377\",\"'{0}' was exported here.\"),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher:a(1378,e.DiagnosticCategory.Error,\"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378\",\"Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher.\"),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:a(1379,e.DiagnosticCategory.Error,\"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379\",\"An import alias cannot reference a declaration that was exported using 'export type'.\"),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:a(1380,e.DiagnosticCategory.Error,\"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380\",\"An import alias cannot reference a declaration that was imported using 'import type'.\"),Unexpected_token_Did_you_mean_or_rbrace:a(1381,e.DiagnosticCategory.Error,\"Unexpected_token_Did_you_mean_or_rbrace_1381\",\"Unexpected token. Did you mean `{'}'}` or `}`?\"),Unexpected_token_Did_you_mean_or_gt:a(1382,e.DiagnosticCategory.Error,\"Unexpected_token_Did_you_mean_or_gt_1382\",\"Unexpected token. Did you mean `{'>'}` or `>`?\"),Only_named_exports_may_use_export_type:a(1383,e.DiagnosticCategory.Error,\"Only_named_exports_may_use_export_type_1383\",\"Only named exports may use 'export type'.\"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:a(1385,e.DiagnosticCategory.Error,\"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385\",\"Function type notation must be parenthesized when used in a union type.\"),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:a(1386,e.DiagnosticCategory.Error,\"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386\",\"Constructor type notation must be parenthesized when used in a union type.\"),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:a(1387,e.DiagnosticCategory.Error,\"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387\",\"Function type notation must be parenthesized when used in an intersection type.\"),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:a(1388,e.DiagnosticCategory.Error,\"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388\",\"Constructor type notation must be parenthesized when used in an intersection type.\"),_0_is_not_allowed_as_a_variable_declaration_name:a(1389,e.DiagnosticCategory.Error,\"_0_is_not_allowed_as_a_variable_declaration_name_1389\",\"'{0}' is not allowed as a variable declaration name.\"),_0_is_not_allowed_as_a_parameter_name:a(1390,e.DiagnosticCategory.Error,\"_0_is_not_allowed_as_a_parameter_name_1390\",\"'{0}' is not allowed as a parameter name.\"),An_import_alias_cannot_use_import_type:a(1392,e.DiagnosticCategory.Error,\"An_import_alias_cannot_use_import_type_1392\",\"An import alias cannot use 'import type'\"),Imported_via_0_from_file_1:a(1393,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_1393\",\"Imported via {0} from file '{1}'\"),Imported_via_0_from_file_1_with_packageId_2:a(1394,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_with_packageId_2_1394\",\"Imported via {0} from file '{1}' with packageId '{2}'\"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:a(1395,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395\",\"Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions\"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:a(1396,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396\",\"Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions\"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:a(1397,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397\",\"Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions\"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:a(1398,e.DiagnosticCategory.Message,\"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398\",\"Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions\"),File_is_included_via_import_here:a(1399,e.DiagnosticCategory.Message,\"File_is_included_via_import_here_1399\",\"File is included via import here.\"),Referenced_via_0_from_file_1:a(1400,e.DiagnosticCategory.Message,\"Referenced_via_0_from_file_1_1400\",\"Referenced via '{0}' from file '{1}'\"),File_is_included_via_reference_here:a(1401,e.DiagnosticCategory.Message,\"File_is_included_via_reference_here_1401\",\"File is included via reference here.\"),Type_library_referenced_via_0_from_file_1:a(1402,e.DiagnosticCategory.Message,\"Type_library_referenced_via_0_from_file_1_1402\",\"Type library referenced via '{0}' from file '{1}'\"),Type_library_referenced_via_0_from_file_1_with_packageId_2:a(1403,e.DiagnosticCategory.Message,\"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403\",\"Type library referenced via '{0}' from file '{1}' with packageId '{2}'\"),File_is_included_via_type_library_reference_here:a(1404,e.DiagnosticCategory.Message,\"File_is_included_via_type_library_reference_here_1404\",\"File is included via type library reference here.\"),Library_referenced_via_0_from_file_1:a(1405,e.DiagnosticCategory.Message,\"Library_referenced_via_0_from_file_1_1405\",\"Library referenced via '{0}' from file '{1}'\"),File_is_included_via_library_reference_here:a(1406,e.DiagnosticCategory.Message,\"File_is_included_via_library_reference_here_1406\",\"File is included via library reference here.\"),Matched_by_include_pattern_0_in_1:a(1407,e.DiagnosticCategory.Message,\"Matched_by_include_pattern_0_in_1_1407\",\"Matched by include pattern '{0}' in '{1}'\"),File_is_matched_by_include_pattern_specified_here:a(1408,e.DiagnosticCategory.Message,\"File_is_matched_by_include_pattern_specified_here_1408\",\"File is matched by include pattern specified here.\"),Part_of_files_list_in_tsconfig_json:a(1409,e.DiagnosticCategory.Message,\"Part_of_files_list_in_tsconfig_json_1409\",\"Part of 'files' list in tsconfig.json\"),File_is_matched_by_files_list_specified_here:a(1410,e.DiagnosticCategory.Message,\"File_is_matched_by_files_list_specified_here_1410\",\"File is matched by 'files' list specified here.\"),Output_from_referenced_project_0_included_because_1_specified:a(1411,e.DiagnosticCategory.Message,\"Output_from_referenced_project_0_included_because_1_specified_1411\",\"Output from referenced project '{0}' included because '{1}' specified\"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:a(1412,e.DiagnosticCategory.Message,\"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412\",\"Output from referenced project '{0}' included because '--module' is specified as 'none'\"),File_is_output_from_referenced_project_specified_here:a(1413,e.DiagnosticCategory.Message,\"File_is_output_from_referenced_project_specified_here_1413\",\"File is output from referenced project specified here.\"),Source_from_referenced_project_0_included_because_1_specified:a(1414,e.DiagnosticCategory.Message,\"Source_from_referenced_project_0_included_because_1_specified_1414\",\"Source from referenced project '{0}' included because '{1}' specified\"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:a(1415,e.DiagnosticCategory.Message,\"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415\",\"Source from referenced project '{0}' included because '--module' is specified as 'none'\"),File_is_source_from_referenced_project_specified_here:a(1416,e.DiagnosticCategory.Message,\"File_is_source_from_referenced_project_specified_here_1416\",\"File is source from referenced project specified here.\"),Entry_point_of_type_library_0_specified_in_compilerOptions:a(1417,e.DiagnosticCategory.Message,\"Entry_point_of_type_library_0_specified_in_compilerOptions_1417\",\"Entry point of type library '{0}' specified in compilerOptions\"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:a(1418,e.DiagnosticCategory.Message,\"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418\",\"Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'\"),File_is_entry_point_of_type_library_specified_here:a(1419,e.DiagnosticCategory.Message,\"File_is_entry_point_of_type_library_specified_here_1419\",\"File is entry point of type library specified here.\"),Entry_point_for_implicit_type_library_0:a(1420,e.DiagnosticCategory.Message,\"Entry_point_for_implicit_type_library_0_1420\",\"Entry point for implicit type library '{0}'\"),Entry_point_for_implicit_type_library_0_with_packageId_1:a(1421,e.DiagnosticCategory.Message,\"Entry_point_for_implicit_type_library_0_with_packageId_1_1421\",\"Entry point for implicit type library '{0}' with packageId '{1}'\"),Library_0_specified_in_compilerOptions:a(1422,e.DiagnosticCategory.Message,\"Library_0_specified_in_compilerOptions_1422\",\"Library '{0}' specified in compilerOptions\"),File_is_library_specified_here:a(1423,e.DiagnosticCategory.Message,\"File_is_library_specified_here_1423\",\"File is library specified here.\"),Default_library:a(1424,e.DiagnosticCategory.Message,\"Default_library_1424\",\"Default library\"),Default_library_for_target_0:a(1425,e.DiagnosticCategory.Message,\"Default_library_for_target_0_1425\",\"Default library for target '{0}'\"),File_is_default_library_for_target_specified_here:a(1426,e.DiagnosticCategory.Message,\"File_is_default_library_for_target_specified_here_1426\",\"File is default library for target specified here.\"),Root_file_specified_for_compilation:a(1427,e.DiagnosticCategory.Message,\"Root_file_specified_for_compilation_1427\",\"Root file specified for compilation\"),File_is_output_of_project_reference_source_0:a(1428,e.DiagnosticCategory.Message,\"File_is_output_of_project_reference_source_0_1428\",\"File is output of project reference source '{0}'\"),File_redirects_to_file_0:a(1429,e.DiagnosticCategory.Message,\"File_redirects_to_file_0_1429\",\"File redirects to file '{0}'\"),The_file_is_in_the_program_because_Colon:a(1430,e.DiagnosticCategory.Message,\"The_file_is_in_the_program_because_Colon_1430\",\"The file is in the program because:\"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:a(1431,e.DiagnosticCategory.Error,\"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431\",\"'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher:a(1432,e.DiagnosticCategory.Error,\"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432\",\"Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher.\"),Decorators_may_not_be_applied_to_this_parameters:a(1433,e.DiagnosticCategory.Error,\"Decorators_may_not_be_applied_to_this_parameters_1433\",\"Decorators may not be applied to 'this' parameters.\"),Unexpected_keyword_or_identifier:a(1434,e.DiagnosticCategory.Error,\"Unexpected_keyword_or_identifier_1434\",\"Unexpected keyword or identifier.\"),Unknown_keyword_or_identifier_Did_you_mean_0:a(1435,e.DiagnosticCategory.Error,\"Unknown_keyword_or_identifier_Did_you_mean_0_1435\",\"Unknown keyword or identifier. Did you mean '{0}'?\"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:a(1436,e.DiagnosticCategory.Error,\"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436\",\"Decorators must precede the name and all keywords of property declarations.\"),Namespace_must_be_given_a_name:a(1437,e.DiagnosticCategory.Error,\"Namespace_must_be_given_a_name_1437\",\"Namespace must be given a name.\"),Interface_must_be_given_a_name:a(1438,e.DiagnosticCategory.Error,\"Interface_must_be_given_a_name_1438\",\"Interface must be given a name.\"),Type_alias_must_be_given_a_name:a(1439,e.DiagnosticCategory.Error,\"Type_alias_must_be_given_a_name_1439\",\"Type alias must be given a name.\"),Variable_declaration_not_allowed_at_this_location:a(1440,e.DiagnosticCategory.Error,\"Variable_declaration_not_allowed_at_this_location_1440\",\"Variable declaration not allowed at this location.\"),Cannot_start_a_function_call_in_a_type_annotation:a(1441,e.DiagnosticCategory.Error,\"Cannot_start_a_function_call_in_a_type_annotation_1441\",\"Cannot start a function call in a type annotation.\"),Expected_for_property_initializer:a(1442,e.DiagnosticCategory.Error,\"Expected_for_property_initializer_1442\",\"Expected '=' for property initializer.\"),Module_declaration_names_may_only_use_or_quoted_strings:a(1443,e.DiagnosticCategory.Error,\"Module_declaration_names_may_only_use_or_quoted_strings_1443\",`Module declaration names may only use ' or \" quoted strings.`),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1444,e.DiagnosticCategory.Error,\"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444\",\"'{0}' is a type and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled.\"),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled:a(1446,e.DiagnosticCategory.Error,\"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveVa_1446\",\"'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled.\"),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isolatedModules_is_enabled:a(1448,e.DiagnosticCategory.Error,\"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_isol_1448\",\"'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when 'isolatedModules' is enabled.\"),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:a(1449,e.DiagnosticCategory.Message,\"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449\",\"Preserve unused imported values in the JavaScript output that would otherwise be removed.\"),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments:a(1450,e.DiagnosticCategory.Message,\"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments_1450\",\"Dynamic imports can only accept a module specifier and an optional assertion as arguments\"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:a(1451,e.DiagnosticCategory.Error,\"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451\",\"Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression\"),Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext:a(1452,e.DiagnosticCategory.Error,\"Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext_1452\",\"Resolution modes are only supported when `moduleResolution` is `node16` or `nodenext`.\"),resolution_mode_should_be_either_require_or_import:a(1453,e.DiagnosticCategory.Error,\"resolution_mode_should_be_either_require_or_import_1453\",\"`resolution-mode` should be either `require` or `import`.\"),resolution_mode_can_only_be_set_for_type_only_imports:a(1454,e.DiagnosticCategory.Error,\"resolution_mode_can_only_be_set_for_type_only_imports_1454\",\"`resolution-mode` can only be set for type-only imports.\"),resolution_mode_is_the_only_valid_key_for_type_import_assertions:a(1455,e.DiagnosticCategory.Error,\"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455\",\"`resolution-mode` is the only valid key for type import assertions.\"),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:a(1456,e.DiagnosticCategory.Error,\"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456\",\"Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.\"),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:a(1470,e.DiagnosticCategory.Error,\"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470\",\"The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.\"),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead:a(1471,e.DiagnosticCategory.Error,\"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471\",\"Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead.\"),catch_or_finally_expected:a(1472,e.DiagnosticCategory.Error,\"catch_or_finally_expected_1472\",\"'catch' or 'finally' expected.\"),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1473,e.DiagnosticCategory.Error,\"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473\",\"An import declaration can only be used at the top level of a module.\"),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:a(1474,e.DiagnosticCategory.Error,\"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474\",\"An export declaration can only be used at the top level of a module.\"),Control_what_method_is_used_to_detect_module_format_JS_files:a(1475,e.DiagnosticCategory.Message,\"Control_what_method_is_used_to_detect_module_format_JS_files_1475\",\"Control what method is used to detect module-format JS files.\"),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:a(1476,e.DiagnosticCategory.Message,\"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476\",'\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),The_types_of_0_are_incompatible_between_these_types:a(2200,e.DiagnosticCategory.Error,\"The_types_of_0_are_incompatible_between_these_types_2200\",\"The types of '{0}' are incompatible between these types.\"),The_types_returned_by_0_are_incompatible_between_these_types:a(2201,e.DiagnosticCategory.Error,\"The_types_returned_by_0_are_incompatible_between_these_types_2201\",\"The types returned by '{0}' are incompatible between these types.\"),Call_signature_return_types_0_and_1_are_incompatible:a(2202,e.DiagnosticCategory.Error,\"Call_signature_return_types_0_and_1_are_incompatible_2202\",\"Call signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:a(2203,e.DiagnosticCategory.Error,\"Construct_signature_return_types_0_and_1_are_incompatible_2203\",\"Construct signature return types '{0}' and '{1}' are incompatible.\",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:a(2204,e.DiagnosticCategory.Error,\"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204\",\"Call signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:a(2205,e.DiagnosticCategory.Error,\"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205\",\"Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.\",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:a(2206,e.DiagnosticCategory.Error,\"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206\",\"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\"),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:a(2207,e.DiagnosticCategory.Error,\"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207\",\"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\"),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2209,e.DiagnosticCategory.Error,\"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209\",\"The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:a(2210,e.DiagnosticCategory.Error,\"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210\",\"The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),Duplicate_identifier_0:a(2300,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_2300\",\"Duplicate identifier '{0}'.\"),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:a(2301,e.DiagnosticCategory.Error,\"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301\",\"Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),Static_members_cannot_reference_class_type_parameters:a(2302,e.DiagnosticCategory.Error,\"Static_members_cannot_reference_class_type_parameters_2302\",\"Static members cannot reference class type parameters.\"),Circular_definition_of_import_alias_0:a(2303,e.DiagnosticCategory.Error,\"Circular_definition_of_import_alias_0_2303\",\"Circular definition of import alias '{0}'.\"),Cannot_find_name_0:a(2304,e.DiagnosticCategory.Error,\"Cannot_find_name_0_2304\",\"Cannot find name '{0}'.\"),Module_0_has_no_exported_member_1:a(2305,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_2305\",\"Module '{0}' has no exported member '{1}'.\"),File_0_is_not_a_module:a(2306,e.DiagnosticCategory.Error,\"File_0_is_not_a_module_2306\",\"File '{0}' is not a module.\"),Cannot_find_module_0_or_its_corresponding_type_declarations:a(2307,e.DiagnosticCategory.Error,\"Cannot_find_module_0_or_its_corresponding_type_declarations_2307\",\"Cannot find module '{0}' or its corresponding type declarations.\"),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:a(2308,e.DiagnosticCategory.Error,\"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308\",\"Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.\"),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:a(2309,e.DiagnosticCategory.Error,\"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309\",\"An export assignment cannot be used in a module with other exported elements.\"),Type_0_recursively_references_itself_as_a_base_type:a(2310,e.DiagnosticCategory.Error,\"Type_0_recursively_references_itself_as_a_base_type_2310\",\"Type '{0}' recursively references itself as a base type.\"),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:a(2311,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311\",\"Cannot find name '{0}'. Did you mean to write this in an async function?\"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2312,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312\",\"An interface can only extend an object type or intersection of object types with statically known members.\"),Type_parameter_0_has_a_circular_constraint:a(2313,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_constraint_2313\",\"Type parameter '{0}' has a circular constraint.\"),Generic_type_0_requires_1_type_argument_s:a(2314,e.DiagnosticCategory.Error,\"Generic_type_0_requires_1_type_argument_s_2314\",\"Generic type '{0}' requires {1} type argument(s).\"),Type_0_is_not_generic:a(2315,e.DiagnosticCategory.Error,\"Type_0_is_not_generic_2315\",\"Type '{0}' is not generic.\"),Global_type_0_must_be_a_class_or_interface_type:a(2316,e.DiagnosticCategory.Error,\"Global_type_0_must_be_a_class_or_interface_type_2316\",\"Global type '{0}' must be a class or interface type.\"),Global_type_0_must_have_1_type_parameter_s:a(2317,e.DiagnosticCategory.Error,\"Global_type_0_must_have_1_type_parameter_s_2317\",\"Global type '{0}' must have {1} type parameter(s).\"),Cannot_find_global_type_0:a(2318,e.DiagnosticCategory.Error,\"Cannot_find_global_type_0_2318\",\"Cannot find global type '{0}'.\"),Named_property_0_of_types_1_and_2_are_not_identical:a(2319,e.DiagnosticCategory.Error,\"Named_property_0_of_types_1_and_2_are_not_identical_2319\",\"Named property '{0}' of types '{1}' and '{2}' are not identical.\"),Interface_0_cannot_simultaneously_extend_types_1_and_2:a(2320,e.DiagnosticCategory.Error,\"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320\",\"Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.\"),Excessive_stack_depth_comparing_types_0_and_1:a(2321,e.DiagnosticCategory.Error,\"Excessive_stack_depth_comparing_types_0_and_1_2321\",\"Excessive stack depth comparing types '{0}' and '{1}'.\"),Type_0_is_not_assignable_to_type_1:a(2322,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_2322\",\"Type '{0}' is not assignable to type '{1}'.\"),Cannot_redeclare_exported_variable_0:a(2323,e.DiagnosticCategory.Error,\"Cannot_redeclare_exported_variable_0_2323\",\"Cannot redeclare exported variable '{0}'.\"),Property_0_is_missing_in_type_1:a(2324,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_2324\",\"Property '{0}' is missing in type '{1}'.\"),Property_0_is_private_in_type_1_but_not_in_type_2:a(2325,e.DiagnosticCategory.Error,\"Property_0_is_private_in_type_1_but_not_in_type_2_2325\",\"Property '{0}' is private in type '{1}' but not in type '{2}'.\"),Types_of_property_0_are_incompatible:a(2326,e.DiagnosticCategory.Error,\"Types_of_property_0_are_incompatible_2326\",\"Types of property '{0}' are incompatible.\"),Property_0_is_optional_in_type_1_but_required_in_type_2:a(2327,e.DiagnosticCategory.Error,\"Property_0_is_optional_in_type_1_but_required_in_type_2_2327\",\"Property '{0}' is optional in type '{1}' but required in type '{2}'.\"),Types_of_parameters_0_and_1_are_incompatible:a(2328,e.DiagnosticCategory.Error,\"Types_of_parameters_0_and_1_are_incompatible_2328\",\"Types of parameters '{0}' and '{1}' are incompatible.\"),Index_signature_for_type_0_is_missing_in_type_1:a(2329,e.DiagnosticCategory.Error,\"Index_signature_for_type_0_is_missing_in_type_1_2329\",\"Index signature for type '{0}' is missing in type '{1}'.\"),_0_and_1_index_signatures_are_incompatible:a(2330,e.DiagnosticCategory.Error,\"_0_and_1_index_signatures_are_incompatible_2330\",\"'{0}' and '{1}' index signatures are incompatible.\"),this_cannot_be_referenced_in_a_module_or_namespace_body:a(2331,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_module_or_namespace_body_2331\",\"'this' cannot be referenced in a module or namespace body.\"),this_cannot_be_referenced_in_current_location:a(2332,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_current_location_2332\",\"'this' cannot be referenced in current location.\"),this_cannot_be_referenced_in_constructor_arguments:a(2333,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_constructor_arguments_2333\",\"'this' cannot be referenced in constructor arguments.\"),this_cannot_be_referenced_in_a_static_property_initializer:a(2334,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_static_property_initializer_2334\",\"'this' cannot be referenced in a static property initializer.\"),super_can_only_be_referenced_in_a_derived_class:a(2335,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_a_derived_class_2335\",\"'super' can only be referenced in a derived class.\"),super_cannot_be_referenced_in_constructor_arguments:a(2336,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_constructor_arguments_2336\",\"'super' cannot be referenced in constructor arguments.\"),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:a(2337,e.DiagnosticCategory.Error,\"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337\",\"Super calls are not permitted outside constructors or in nested functions inside constructors.\"),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:a(2338,e.DiagnosticCategory.Error,\"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338\",\"'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.\"),Property_0_does_not_exist_on_type_1:a(2339,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_2339\",\"Property '{0}' does not exist on type '{1}'.\"),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:a(2340,e.DiagnosticCategory.Error,\"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340\",\"Only public and protected methods of the base class are accessible via the 'super' keyword.\"),Property_0_is_private_and_only_accessible_within_class_1:a(2341,e.DiagnosticCategory.Error,\"Property_0_is_private_and_only_accessible_within_class_1_2341\",\"Property '{0}' is private and only accessible within class '{1}'.\"),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:a(2343,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343\",\"This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.\"),Type_0_does_not_satisfy_the_constraint_1:a(2344,e.DiagnosticCategory.Error,\"Type_0_does_not_satisfy_the_constraint_1_2344\",\"Type '{0}' does not satisfy the constraint '{1}'.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:a(2345,e.DiagnosticCategory.Error,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345\",\"Argument of type '{0}' is not assignable to parameter of type '{1}'.\"),Call_target_does_not_contain_any_signatures:a(2346,e.DiagnosticCategory.Error,\"Call_target_does_not_contain_any_signatures_2346\",\"Call target does not contain any signatures.\"),Untyped_function_calls_may_not_accept_type_arguments:a(2347,e.DiagnosticCategory.Error,\"Untyped_function_calls_may_not_accept_type_arguments_2347\",\"Untyped function calls may not accept type arguments.\"),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:a(2348,e.DiagnosticCategory.Error,\"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348\",\"Value of type '{0}' is not callable. Did you mean to include 'new'?\"),This_expression_is_not_callable:a(2349,e.DiagnosticCategory.Error,\"This_expression_is_not_callable_2349\",\"This expression is not callable.\"),Only_a_void_function_can_be_called_with_the_new_keyword:a(2350,e.DiagnosticCategory.Error,\"Only_a_void_function_can_be_called_with_the_new_keyword_2350\",\"Only a void function can be called with the 'new' keyword.\"),This_expression_is_not_constructable:a(2351,e.DiagnosticCategory.Error,\"This_expression_is_not_constructable_2351\",\"This expression is not constructable.\"),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:a(2352,e.DiagnosticCategory.Error,\"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352\",\"Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\"),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:a(2353,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353\",\"Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.\"),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:a(2354,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354\",\"This syntax requires an imported helper but module '{0}' cannot be found.\"),A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value:a(2355,e.DiagnosticCategory.Error,\"A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_2355\",\"A function whose declared type is neither 'void' nor 'any' must return a value.\"),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:a(2356,e.DiagnosticCategory.Error,\"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356\",\"An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.\"),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:a(2357,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357\",\"The operand of an increment or decrement operator must be a variable or a property access.\"),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:a(2358,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358\",\"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.\"),The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type:a(2359,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359\",\"The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.\"),The_left_hand_side_of_an_in_expression_must_be_a_private_identifier_or_of_type_any_string_number_or_symbol:a(2360,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_in_expression_must_be_a_private_identifier_or_of_type_any_string_number_or__2360\",\"The left-hand side of an 'in' expression must be a private identifier or of type 'any', 'string', 'number', or 'symbol'.\"),The_right_hand_side_of_an_in_expression_must_not_be_a_primitive:a(2361,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_in_expression_must_not_be_a_primitive_2361\",\"The right-hand side of an 'in' expression must not be a primitive.\"),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:a(2362,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362\",\"The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:a(2363,e.DiagnosticCategory.Error,\"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363\",\"The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:a(2364,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364\",\"The left-hand side of an assignment expression must be a variable or a property access.\"),Operator_0_cannot_be_applied_to_types_1_and_2:a(2365,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_types_1_and_2_2365\",\"Operator '{0}' cannot be applied to types '{1}' and '{2}'.\"),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:a(2366,e.DiagnosticCategory.Error,\"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366\",\"Function lacks ending return statement and return type does not include 'undefined'.\"),This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap:a(2367,e.DiagnosticCategory.Error,\"This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap_2367\",\"This condition will always return '{0}' since the types '{1}' and '{2}' have no overlap.\"),Type_parameter_name_cannot_be_0:a(2368,e.DiagnosticCategory.Error,\"Type_parameter_name_cannot_be_0_2368\",\"Type parameter name cannot be '{0}'.\"),A_parameter_property_is_only_allowed_in_a_constructor_implementation:a(2369,e.DiagnosticCategory.Error,\"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369\",\"A parameter property is only allowed in a constructor implementation.\"),A_rest_parameter_must_be_of_an_array_type:a(2370,e.DiagnosticCategory.Error,\"A_rest_parameter_must_be_of_an_array_type_2370\",\"A rest parameter must be of an array type.\"),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:a(2371,e.DiagnosticCategory.Error,\"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371\",\"A parameter initializer is only allowed in a function or constructor implementation.\"),Parameter_0_cannot_reference_itself:a(2372,e.DiagnosticCategory.Error,\"Parameter_0_cannot_reference_itself_2372\",\"Parameter '{0}' cannot reference itself.\"),Parameter_0_cannot_reference_identifier_1_declared_after_it:a(2373,e.DiagnosticCategory.Error,\"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373\",\"Parameter '{0}' cannot reference identifier '{1}' declared after it.\"),Duplicate_index_signature_for_type_0:a(2374,e.DiagnosticCategory.Error,\"Duplicate_index_signature_for_type_0_2374\",\"Duplicate index signature for type '{0}'.\"),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2375,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375\",\"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:a(2376,e.DiagnosticCategory.Error,\"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376\",\"A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.\"),Constructors_for_derived_classes_must_contain_a_super_call:a(2377,e.DiagnosticCategory.Error,\"Constructors_for_derived_classes_must_contain_a_super_call_2377\",\"Constructors for derived classes must contain a 'super' call.\"),A_get_accessor_must_return_a_value:a(2378,e.DiagnosticCategory.Error,\"A_get_accessor_must_return_a_value_2378\",\"A 'get' accessor must return a value.\"),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:a(2379,e.DiagnosticCategory.Error,\"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379\",\"Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type:a(2380,e.DiagnosticCategory.Error,\"The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type_2380\",\"The return type of a 'get' accessor must be assignable to its 'set' accessor type\"),Overload_signatures_must_all_be_exported_or_non_exported:a(2383,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_exported_or_non_exported_2383\",\"Overload signatures must all be exported or non-exported.\"),Overload_signatures_must_all_be_ambient_or_non_ambient:a(2384,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_ambient_or_non_ambient_2384\",\"Overload signatures must all be ambient or non-ambient.\"),Overload_signatures_must_all_be_public_private_or_protected:a(2385,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_public_private_or_protected_2385\",\"Overload signatures must all be public, private or protected.\"),Overload_signatures_must_all_be_optional_or_required:a(2386,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_optional_or_required_2386\",\"Overload signatures must all be optional or required.\"),Function_overload_must_be_static:a(2387,e.DiagnosticCategory.Error,\"Function_overload_must_be_static_2387\",\"Function overload must be static.\"),Function_overload_must_not_be_static:a(2388,e.DiagnosticCategory.Error,\"Function_overload_must_not_be_static_2388\",\"Function overload must not be static.\"),Function_implementation_name_must_be_0:a(2389,e.DiagnosticCategory.Error,\"Function_implementation_name_must_be_0_2389\",\"Function implementation name must be '{0}'.\"),Constructor_implementation_is_missing:a(2390,e.DiagnosticCategory.Error,\"Constructor_implementation_is_missing_2390\",\"Constructor implementation is missing.\"),Function_implementation_is_missing_or_not_immediately_following_the_declaration:a(2391,e.DiagnosticCategory.Error,\"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391\",\"Function implementation is missing or not immediately following the declaration.\"),Multiple_constructor_implementations_are_not_allowed:a(2392,e.DiagnosticCategory.Error,\"Multiple_constructor_implementations_are_not_allowed_2392\",\"Multiple constructor implementations are not allowed.\"),Duplicate_function_implementation:a(2393,e.DiagnosticCategory.Error,\"Duplicate_function_implementation_2393\",\"Duplicate function implementation.\"),This_overload_signature_is_not_compatible_with_its_implementation_signature:a(2394,e.DiagnosticCategory.Error,\"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394\",\"This overload signature is not compatible with its implementation signature.\"),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:a(2395,e.DiagnosticCategory.Error,\"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395\",\"Individual declarations in merged declaration '{0}' must be all exported or all local.\"),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:a(2396,e.DiagnosticCategory.Error,\"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396\",\"Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.\"),Declaration_name_conflicts_with_built_in_global_identifier_0:a(2397,e.DiagnosticCategory.Error,\"Declaration_name_conflicts_with_built_in_global_identifier_0_2397\",\"Declaration name conflicts with built-in global identifier '{0}'.\"),constructor_cannot_be_used_as_a_parameter_property_name:a(2398,e.DiagnosticCategory.Error,\"constructor_cannot_be_used_as_a_parameter_property_name_2398\",\"'constructor' cannot be used as a parameter property name.\"),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:a(2399,e.DiagnosticCategory.Error,\"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399\",\"Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.\"),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:a(2400,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400\",\"Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.\"),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:a(2401,e.DiagnosticCategory.Error,\"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401\",\"A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.\"),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:a(2402,e.DiagnosticCategory.Error,\"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402\",\"Expression resolves to '_super' that compiler uses to capture base class reference.\"),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:a(2403,e.DiagnosticCategory.Error,\"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403\",\"Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'.\"),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:a(2404,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404\",\"The left-hand side of a 'for...in' statement cannot use a type annotation.\"),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:a(2405,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405\",\"The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.\"),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:a(2406,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406\",\"The left-hand side of a 'for...in' statement must be a variable or a property access.\"),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:a(2407,e.DiagnosticCategory.Error,\"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407\",\"The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.\"),Setters_cannot_return_a_value:a(2408,e.DiagnosticCategory.Error,\"Setters_cannot_return_a_value_2408\",\"Setters cannot return a value.\"),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:a(2409,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409\",\"Return type of constructor signature must be assignable to the instance type of the class.\"),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:a(2410,e.DiagnosticCategory.Error,\"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410\",\"The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.\"),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:a(2412,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412\",\"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.\"),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:a(2411,e.DiagnosticCategory.Error,\"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411\",\"Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.\"),_0_index_type_1_is_not_assignable_to_2_index_type_3:a(2413,e.DiagnosticCategory.Error,\"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413\",\"'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.\"),Class_name_cannot_be_0:a(2414,e.DiagnosticCategory.Error,\"Class_name_cannot_be_0_2414\",\"Class name cannot be '{0}'.\"),Class_0_incorrectly_extends_base_class_1:a(2415,e.DiagnosticCategory.Error,\"Class_0_incorrectly_extends_base_class_1_2415\",\"Class '{0}' incorrectly extends base class '{1}'.\"),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:a(2416,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416\",\"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.\"),Class_static_side_0_incorrectly_extends_base_class_static_side_1:a(2417,e.DiagnosticCategory.Error,\"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417\",\"Class static side '{0}' incorrectly extends base class static side '{1}'.\"),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:a(2418,e.DiagnosticCategory.Error,\"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418\",\"Type of computed property's value is '{0}', which is not assignable to type '{1}'.\"),Types_of_construct_signatures_are_incompatible:a(2419,e.DiagnosticCategory.Error,\"Types_of_construct_signatures_are_incompatible_2419\",\"Types of construct signatures are incompatible.\"),Class_0_incorrectly_implements_interface_1:a(2420,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_interface_1_2420\",\"Class '{0}' incorrectly implements interface '{1}'.\"),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2422,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422\",\"A class can only implement an object type or intersection of object types with statically known members.\"),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:a(2423,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423\",\"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.\"),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:a(2425,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425\",\"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.\"),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:a(2426,e.DiagnosticCategory.Error,\"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426\",\"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.\"),Interface_name_cannot_be_0:a(2427,e.DiagnosticCategory.Error,\"Interface_name_cannot_be_0_2427\",\"Interface name cannot be '{0}'.\"),All_declarations_of_0_must_have_identical_type_parameters:a(2428,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_type_parameters_2428\",\"All declarations of '{0}' must have identical type parameters.\"),Interface_0_incorrectly_extends_interface_1:a(2430,e.DiagnosticCategory.Error,\"Interface_0_incorrectly_extends_interface_1_2430\",\"Interface '{0}' incorrectly extends interface '{1}'.\"),Enum_name_cannot_be_0:a(2431,e.DiagnosticCategory.Error,\"Enum_name_cannot_be_0_2431\",\"Enum name cannot be '{0}'.\"),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:a(2432,e.DiagnosticCategory.Error,\"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432\",\"In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.\"),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:a(2433,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433\",\"A namespace declaration cannot be in a different file from a class or function with which it is merged.\"),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:a(2434,e.DiagnosticCategory.Error,\"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434\",\"A namespace declaration cannot be located prior to a class or function with which it is merged.\"),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:a(2435,e.DiagnosticCategory.Error,\"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435\",\"Ambient modules cannot be nested in other modules or namespaces.\"),Ambient_module_declaration_cannot_specify_relative_module_name:a(2436,e.DiagnosticCategory.Error,\"Ambient_module_declaration_cannot_specify_relative_module_name_2436\",\"Ambient module declaration cannot specify relative module name.\"),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:a(2437,e.DiagnosticCategory.Error,\"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437\",\"Module '{0}' is hidden by a local declaration with the same name.\"),Import_name_cannot_be_0:a(2438,e.DiagnosticCategory.Error,\"Import_name_cannot_be_0_2438\",\"Import name cannot be '{0}'.\"),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:a(2439,e.DiagnosticCategory.Error,\"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439\",\"Import or export declaration in an ambient module declaration cannot reference module through relative module name.\"),Import_declaration_conflicts_with_local_declaration_of_0:a(2440,e.DiagnosticCategory.Error,\"Import_declaration_conflicts_with_local_declaration_of_0_2440\",\"Import declaration conflicts with local declaration of '{0}'.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:a(2441,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.\"),Types_have_separate_declarations_of_a_private_property_0:a(2442,e.DiagnosticCategory.Error,\"Types_have_separate_declarations_of_a_private_property_0_2442\",\"Types have separate declarations of a private property '{0}'.\"),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:a(2443,e.DiagnosticCategory.Error,\"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443\",\"Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.\"),Property_0_is_protected_in_type_1_but_public_in_type_2:a(2444,e.DiagnosticCategory.Error,\"Property_0_is_protected_in_type_1_but_public_in_type_2_2444\",\"Property '{0}' is protected in type '{1}' but public in type '{2}'.\"),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:a(2445,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445\",\"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.\"),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:a(2446,e.DiagnosticCategory.Error,\"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446\",\"Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.\"),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:a(2447,e.DiagnosticCategory.Error,\"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447\",\"The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.\"),Block_scoped_variable_0_used_before_its_declaration:a(2448,e.DiagnosticCategory.Error,\"Block_scoped_variable_0_used_before_its_declaration_2448\",\"Block-scoped variable '{0}' used before its declaration.\"),Class_0_used_before_its_declaration:a(2449,e.DiagnosticCategory.Error,\"Class_0_used_before_its_declaration_2449\",\"Class '{0}' used before its declaration.\"),Enum_0_used_before_its_declaration:a(2450,e.DiagnosticCategory.Error,\"Enum_0_used_before_its_declaration_2450\",\"Enum '{0}' used before its declaration.\"),Cannot_redeclare_block_scoped_variable_0:a(2451,e.DiagnosticCategory.Error,\"Cannot_redeclare_block_scoped_variable_0_2451\",\"Cannot redeclare block-scoped variable '{0}'.\"),An_enum_member_cannot_have_a_numeric_name:a(2452,e.DiagnosticCategory.Error,\"An_enum_member_cannot_have_a_numeric_name_2452\",\"An enum member cannot have a numeric name.\"),Variable_0_is_used_before_being_assigned:a(2454,e.DiagnosticCategory.Error,\"Variable_0_is_used_before_being_assigned_2454\",\"Variable '{0}' is used before being assigned.\"),Type_alias_0_circularly_references_itself:a(2456,e.DiagnosticCategory.Error,\"Type_alias_0_circularly_references_itself_2456\",\"Type alias '{0}' circularly references itself.\"),Type_alias_name_cannot_be_0:a(2457,e.DiagnosticCategory.Error,\"Type_alias_name_cannot_be_0_2457\",\"Type alias name cannot be '{0}'.\"),An_AMD_module_cannot_have_multiple_name_assignments:a(2458,e.DiagnosticCategory.Error,\"An_AMD_module_cannot_have_multiple_name_assignments_2458\",\"An AMD module cannot have multiple name assignments.\"),Module_0_declares_1_locally_but_it_is_not_exported:a(2459,e.DiagnosticCategory.Error,\"Module_0_declares_1_locally_but_it_is_not_exported_2459\",\"Module '{0}' declares '{1}' locally, but it is not exported.\"),Module_0_declares_1_locally_but_it_is_exported_as_2:a(2460,e.DiagnosticCategory.Error,\"Module_0_declares_1_locally_but_it_is_exported_as_2_2460\",\"Module '{0}' declares '{1}' locally, but it is exported as '{2}'.\"),Type_0_is_not_an_array_type:a(2461,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_2461\",\"Type '{0}' is not an array type.\"),A_rest_element_must_be_last_in_a_destructuring_pattern:a(2462,e.DiagnosticCategory.Error,\"A_rest_element_must_be_last_in_a_destructuring_pattern_2462\",\"A rest element must be last in a destructuring pattern.\"),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:a(2463,e.DiagnosticCategory.Error,\"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463\",\"A binding pattern parameter cannot be optional in an implementation signature.\"),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:a(2464,e.DiagnosticCategory.Error,\"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464\",\"A computed property name must be of type 'string', 'number', 'symbol', or 'any'.\"),this_cannot_be_referenced_in_a_computed_property_name:a(2465,e.DiagnosticCategory.Error,\"this_cannot_be_referenced_in_a_computed_property_name_2465\",\"'this' cannot be referenced in a computed property name.\"),super_cannot_be_referenced_in_a_computed_property_name:a(2466,e.DiagnosticCategory.Error,\"super_cannot_be_referenced_in_a_computed_property_name_2466\",\"'super' cannot be referenced in a computed property name.\"),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:a(2467,e.DiagnosticCategory.Error,\"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467\",\"A computed property name cannot reference a type parameter from its containing type.\"),Cannot_find_global_value_0:a(2468,e.DiagnosticCategory.Error,\"Cannot_find_global_value_0_2468\",\"Cannot find global value '{0}'.\"),The_0_operator_cannot_be_applied_to_type_symbol:a(2469,e.DiagnosticCategory.Error,\"The_0_operator_cannot_be_applied_to_type_symbol_2469\",\"The '{0}' operator cannot be applied to type 'symbol'.\"),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:a(2472,e.DiagnosticCategory.Error,\"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472\",\"Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.\"),Enum_declarations_must_all_be_const_or_non_const:a(2473,e.DiagnosticCategory.Error,\"Enum_declarations_must_all_be_const_or_non_const_2473\",\"Enum declarations must all be const or non-const.\"),const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values:a(2474,e.DiagnosticCategory.Error,\"const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values_2474\",\"const enum member initializers can only contain literal values and other computed enum values.\"),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:a(2475,e.DiagnosticCategory.Error,\"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475\",\"'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.\"),A_const_enum_member_can_only_be_accessed_using_a_string_literal:a(2476,e.DiagnosticCategory.Error,\"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476\",\"A const enum member can only be accessed using a string literal.\"),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:a(2477,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477\",\"'const' enum member initializer was evaluated to a non-finite value.\"),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:a(2478,e.DiagnosticCategory.Error,\"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478\",\"'const' enum member initializer was evaluated to disallowed value 'NaN'.\"),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:a(2480,e.DiagnosticCategory.Error,\"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480\",\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:a(2481,e.DiagnosticCategory.Error,\"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481\",\"Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.\"),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:a(2483,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483\",\"The left-hand side of a 'for...of' statement cannot use a type annotation.\"),Export_declaration_conflicts_with_exported_declaration_of_0:a(2484,e.DiagnosticCategory.Error,\"Export_declaration_conflicts_with_exported_declaration_of_0_2484\",\"Export declaration conflicts with exported declaration of '{0}'.\"),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:a(2487,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487\",\"The left-hand side of a 'for...of' statement must be a variable or a property access.\"),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2488,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488\",\"Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.\"),An_iterator_must_have_a_next_method:a(2489,e.DiagnosticCategory.Error,\"An_iterator_must_have_a_next_method_2489\",\"An iterator must have a 'next()' method.\"),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:a(2490,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490\",\"The type returned by the '{0}()' method of an iterator must have a 'value' property.\"),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:a(2491,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491\",\"The left-hand side of a 'for...in' statement cannot be a destructuring pattern.\"),Cannot_redeclare_identifier_0_in_catch_clause:a(2492,e.DiagnosticCategory.Error,\"Cannot_redeclare_identifier_0_in_catch_clause_2492\",\"Cannot redeclare identifier '{0}' in catch clause.\"),Tuple_type_0_of_length_1_has_no_element_at_index_2:a(2493,e.DiagnosticCategory.Error,\"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493\",\"Tuple type '{0}' of length '{1}' has no element at index '{2}'.\"),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:a(2494,e.DiagnosticCategory.Error,\"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494\",\"Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.\"),Type_0_is_not_an_array_type_or_a_string_type:a(2495,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_2495\",\"Type '{0}' is not an array type or a string type.\"),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression:a(2496,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496\",\"The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression.\"),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:a(2497,e.DiagnosticCategory.Error,\"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497\",\"This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.\"),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:a(2498,e.DiagnosticCategory.Error,\"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498\",\"Module '{0}' uses 'export =' and cannot be used with 'export *'.\"),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:a(2499,e.DiagnosticCategory.Error,\"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499\",\"An interface can only extend an identifier/qualified-name with optional type arguments.\"),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:a(2500,e.DiagnosticCategory.Error,\"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500\",\"A class can only implement an identifier/qualified-name with optional type arguments.\"),A_rest_element_cannot_contain_a_binding_pattern:a(2501,e.DiagnosticCategory.Error,\"A_rest_element_cannot_contain_a_binding_pattern_2501\",\"A rest element cannot contain a binding pattern.\"),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:a(2502,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502\",\"'{0}' is referenced directly or indirectly in its own type annotation.\"),Cannot_find_namespace_0:a(2503,e.DiagnosticCategory.Error,\"Cannot_find_namespace_0_2503\",\"Cannot find namespace '{0}'.\"),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:a(2504,e.DiagnosticCategory.Error,\"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504\",\"Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"),A_generator_cannot_have_a_void_type_annotation:a(2505,e.DiagnosticCategory.Error,\"A_generator_cannot_have_a_void_type_annotation_2505\",\"A generator cannot have a 'void' type annotation.\"),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:a(2506,e.DiagnosticCategory.Error,\"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506\",\"'{0}' is referenced directly or indirectly in its own base expression.\"),Type_0_is_not_a_constructor_function_type:a(2507,e.DiagnosticCategory.Error,\"Type_0_is_not_a_constructor_function_type_2507\",\"Type '{0}' is not a constructor function type.\"),No_base_constructor_has_the_specified_number_of_type_arguments:a(2508,e.DiagnosticCategory.Error,\"No_base_constructor_has_the_specified_number_of_type_arguments_2508\",\"No base constructor has the specified number of type arguments.\"),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2509,e.DiagnosticCategory.Error,\"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509\",\"Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.\"),Base_constructors_must_all_have_the_same_return_type:a(2510,e.DiagnosticCategory.Error,\"Base_constructors_must_all_have_the_same_return_type_2510\",\"Base constructors must all have the same return type.\"),Cannot_create_an_instance_of_an_abstract_class:a(2511,e.DiagnosticCategory.Error,\"Cannot_create_an_instance_of_an_abstract_class_2511\",\"Cannot create an instance of an abstract class.\"),Overload_signatures_must_all_be_abstract_or_non_abstract:a(2512,e.DiagnosticCategory.Error,\"Overload_signatures_must_all_be_abstract_or_non_abstract_2512\",\"Overload signatures must all be abstract or non-abstract.\"),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:a(2513,e.DiagnosticCategory.Error,\"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513\",\"Abstract method '{0}' in class '{1}' cannot be accessed via super expression.\"),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:a(2515,e.DiagnosticCategory.Error,\"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515\",\"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'.\"),All_declarations_of_an_abstract_method_must_be_consecutive:a(2516,e.DiagnosticCategory.Error,\"All_declarations_of_an_abstract_method_must_be_consecutive_2516\",\"All declarations of an abstract method must be consecutive.\"),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:a(2517,e.DiagnosticCategory.Error,\"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517\",\"Cannot assign an abstract constructor type to a non-abstract constructor type.\"),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:a(2518,e.DiagnosticCategory.Error,\"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518\",\"A 'this'-based type guard is not compatible with a parameter-based type guard.\"),An_async_iterator_must_have_a_next_method:a(2519,e.DiagnosticCategory.Error,\"An_async_iterator_must_have_a_next_method_2519\",\"An async iterator must have a 'next()' method.\"),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:a(2520,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520\",\"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.\"),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method:a(2522,e.DiagnosticCategory.Error,\"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522\",\"The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method.\"),yield_expressions_cannot_be_used_in_a_parameter_initializer:a(2523,e.DiagnosticCategory.Error,\"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523\",\"'yield' expressions cannot be used in a parameter initializer.\"),await_expressions_cannot_be_used_in_a_parameter_initializer:a(2524,e.DiagnosticCategory.Error,\"await_expressions_cannot_be_used_in_a_parameter_initializer_2524\",\"'await' expressions cannot be used in a parameter initializer.\"),Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value:a(2525,e.DiagnosticCategory.Error,\"Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525\",\"Initializer provides no value for this binding element and the binding element has no default value.\"),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:a(2526,e.DiagnosticCategory.Error,\"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526\",\"A 'this' type is available only in a non-static member of a class or interface.\"),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:a(2527,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527\",\"The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.\"),A_module_cannot_have_multiple_default_exports:a(2528,e.DiagnosticCategory.Error,\"A_module_cannot_have_multiple_default_exports_2528\",\"A module cannot have multiple default exports.\"),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:a(2529,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.\"),Property_0_is_incompatible_with_index_signature:a(2530,e.DiagnosticCategory.Error,\"Property_0_is_incompatible_with_index_signature_2530\",\"Property '{0}' is incompatible with index signature.\"),Object_is_possibly_null:a(2531,e.DiagnosticCategory.Error,\"Object_is_possibly_null_2531\",\"Object is possibly 'null'.\"),Object_is_possibly_undefined:a(2532,e.DiagnosticCategory.Error,\"Object_is_possibly_undefined_2532\",\"Object is possibly 'undefined'.\"),Object_is_possibly_null_or_undefined:a(2533,e.DiagnosticCategory.Error,\"Object_is_possibly_null_or_undefined_2533\",\"Object is possibly 'null' or 'undefined'.\"),A_function_returning_never_cannot_have_a_reachable_end_point:a(2534,e.DiagnosticCategory.Error,\"A_function_returning_never_cannot_have_a_reachable_end_point_2534\",\"A function returning 'never' cannot have a reachable end point.\"),Enum_type_0_has_members_with_initializers_that_are_not_literals:a(2535,e.DiagnosticCategory.Error,\"Enum_type_0_has_members_with_initializers_that_are_not_literals_2535\",\"Enum type '{0}' has members with initializers that are not literals.\"),Type_0_cannot_be_used_to_index_type_1:a(2536,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_to_index_type_1_2536\",\"Type '{0}' cannot be used to index type '{1}'.\"),Type_0_has_no_matching_index_signature_for_type_1:a(2537,e.DiagnosticCategory.Error,\"Type_0_has_no_matching_index_signature_for_type_1_2537\",\"Type '{0}' has no matching index signature for type '{1}'.\"),Type_0_cannot_be_used_as_an_index_type:a(2538,e.DiagnosticCategory.Error,\"Type_0_cannot_be_used_as_an_index_type_2538\",\"Type '{0}' cannot be used as an index type.\"),Cannot_assign_to_0_because_it_is_not_a_variable:a(2539,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_not_a_variable_2539\",\"Cannot assign to '{0}' because it is not a variable.\"),Cannot_assign_to_0_because_it_is_a_read_only_property:a(2540,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_read_only_property_2540\",\"Cannot assign to '{0}' because it is a read-only property.\"),Index_signature_in_type_0_only_permits_reading:a(2542,e.DiagnosticCategory.Error,\"Index_signature_in_type_0_only_permits_reading_2542\",\"Index signature in type '{0}' only permits reading.\"),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:a(2543,e.DiagnosticCategory.Error,\"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543\",\"Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.\"),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:a(2544,e.DiagnosticCategory.Error,\"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544\",\"Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.\"),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:a(2545,e.DiagnosticCategory.Error,\"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545\",\"A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:a(2547,e.DiagnosticCategory.Error,\"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547\",\"The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.\"),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2548,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548\",\"Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2549,e.DiagnosticCategory.Error,\"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549\",\"Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:a(2550,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550\",\"Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_2:a(2551,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551\",\"Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?\"),Cannot_find_name_0_Did_you_mean_1:a(2552,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_1_2552\",\"Cannot find name '{0}'. Did you mean '{1}'?\"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:a(2553,e.DiagnosticCategory.Error,\"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553\",\"Computed values are not permitted in an enum with string valued members.\"),Expected_0_arguments_but_got_1:a(2554,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_2554\",\"Expected {0} arguments, but got {1}.\"),Expected_at_least_0_arguments_but_got_1:a(2555,e.DiagnosticCategory.Error,\"Expected_at_least_0_arguments_but_got_1_2555\",\"Expected at least {0} arguments, but got {1}.\"),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:a(2556,e.DiagnosticCategory.Error,\"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556\",\"A spread argument must either have a tuple type or be passed to a rest parameter.\"),Expected_0_type_arguments_but_got_1:a(2558,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_but_got_1_2558\",\"Expected {0} type arguments, but got {1}.\"),Type_0_has_no_properties_in_common_with_type_1:a(2559,e.DiagnosticCategory.Error,\"Type_0_has_no_properties_in_common_with_type_1_2559\",\"Type '{0}' has no properties in common with type '{1}'.\"),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:a(2560,e.DiagnosticCategory.Error,\"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560\",\"Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?\"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:a(2561,e.DiagnosticCategory.Error,\"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561\",\"Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?\"),Base_class_expressions_cannot_reference_class_type_parameters:a(2562,e.DiagnosticCategory.Error,\"Base_class_expressions_cannot_reference_class_type_parameters_2562\",\"Base class expressions cannot reference class type parameters.\"),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:a(2563,e.DiagnosticCategory.Error,\"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563\",\"The containing function or module body is too large for control flow analysis.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:a(2564,e.DiagnosticCategory.Error,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564\",\"Property '{0}' has no initializer and is not definitely assigned in the constructor.\"),Property_0_is_used_before_being_assigned:a(2565,e.DiagnosticCategory.Error,\"Property_0_is_used_before_being_assigned_2565\",\"Property '{0}' is used before being assigned.\"),A_rest_element_cannot_have_a_property_name:a(2566,e.DiagnosticCategory.Error,\"A_rest_element_cannot_have_a_property_name_2566\",\"A rest element cannot have a property name.\"),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:a(2567,e.DiagnosticCategory.Error,\"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567\",\"Enum declarations can only merge with namespace or other enum declarations.\"),Property_0_may_not_exist_on_type_1_Did_you_mean_2:a(2568,e.DiagnosticCategory.Error,\"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568\",\"Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?\"),Could_not_find_name_0_Did_you_mean_1:a(2570,e.DiagnosticCategory.Error,\"Could_not_find_name_0_Did_you_mean_1_2570\",\"Could not find name '{0}'. Did you mean '{1}'?\"),Object_is_of_type_unknown:a(2571,e.DiagnosticCategory.Error,\"Object_is_of_type_unknown_2571\",\"Object is of type 'unknown'.\"),A_rest_element_type_must_be_an_array_type:a(2574,e.DiagnosticCategory.Error,\"A_rest_element_type_must_be_an_array_type_2574\",\"A rest element type must be an array type.\"),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:a(2575,e.DiagnosticCategory.Error,\"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575\",\"No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.\"),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:a(2576,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576\",\"Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?\"),Return_type_annotation_circularly_references_itself:a(2577,e.DiagnosticCategory.Error,\"Return_type_annotation_circularly_references_itself_2577\",\"Return type annotation circularly references itself.\"),Unused_ts_expect_error_directive:a(2578,e.DiagnosticCategory.Error,\"Unused_ts_expect_error_directive_2578\",\"Unused '@ts-expect-error' directive.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:a(2580,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:a(2581,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:a(2582,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:a(2583,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.\"),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:a(2584,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584\",\"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:a(2585,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585\",\"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.\"),Cannot_assign_to_0_because_it_is_a_constant:a(2588,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_constant_2588\",\"Cannot assign to '{0}' because it is a constant.\"),Type_instantiation_is_excessively_deep_and_possibly_infinite:a(2589,e.DiagnosticCategory.Error,\"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589\",\"Type instantiation is excessively deep and possibly infinite.\"),Expression_produces_a_union_type_that_is_too_complex_to_represent:a(2590,e.DiagnosticCategory.Error,\"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590\",\"Expression produces a union type that is too complex to represent.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:a(2591,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591\",\"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:a(2592,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592\",\"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.\"),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:a(2593,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593\",\"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.\"),This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:a(2594,e.DiagnosticCategory.Error,\"This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the__2594\",\"This module is declared with using 'export =', and can only be used with a default import when using the '{0}' flag.\"),_0_can_only_be_imported_by_using_a_default_import:a(2595,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_a_default_import_2595\",\"'{0}' can only be imported by using a default import.\"),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2596,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596\",\"'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.\"),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:a(2597,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597\",\"'{0}' can only be imported by using a 'require' call or by using a default import.\"),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2598,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598\",\"'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.\"),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:a(2602,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602\",\"JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.\"),Property_0_in_type_1_is_not_assignable_to_type_2:a(2603,e.DiagnosticCategory.Error,\"Property_0_in_type_1_is_not_assignable_to_type_2_2603\",\"Property '{0}' in type '{1}' is not assignable to type '{2}'.\"),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:a(2604,e.DiagnosticCategory.Error,\"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604\",\"JSX element type '{0}' does not have any construct or call signatures.\"),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:a(2606,e.DiagnosticCategory.Error,\"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606\",\"Property '{0}' of JSX spread attribute is not assignable to target property.\"),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:a(2607,e.DiagnosticCategory.Error,\"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607\",\"JSX element class does not support attributes because it does not have a '{0}' property.\"),The_global_type_JSX_0_may_not_have_more_than_one_property:a(2608,e.DiagnosticCategory.Error,\"The_global_type_JSX_0_may_not_have_more_than_one_property_2608\",\"The global type 'JSX.{0}' may not have more than one property.\"),JSX_spread_child_must_be_an_array_type:a(2609,e.DiagnosticCategory.Error,\"JSX_spread_child_must_be_an_array_type_2609\",\"JSX spread child must be an array type.\"),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:a(2610,e.DiagnosticCategory.Error,\"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610\",\"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.\"),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:a(2611,e.DiagnosticCategory.Error,\"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611\",\"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.\"),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:a(2612,e.DiagnosticCategory.Error,\"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612\",\"Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.\"),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:a(2613,e.DiagnosticCategory.Error,\"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613\",\"Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?\"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:a(2614,e.DiagnosticCategory.Error,\"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614\",\"Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?\"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:a(2615,e.DiagnosticCategory.Error,\"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615\",\"Type of property '{0}' circularly references itself in mapped type '{1}'.\"),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:a(2616,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616\",\"'{0}' can only be imported by using 'import {1} = require({2})' or a default import.\"),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2617,e.DiagnosticCategory.Error,\"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617\",\"'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.\"),Source_has_0_element_s_but_target_requires_1:a(2618,e.DiagnosticCategory.Error,\"Source_has_0_element_s_but_target_requires_1_2618\",\"Source has {0} element(s) but target requires {1}.\"),Source_has_0_element_s_but_target_allows_only_1:a(2619,e.DiagnosticCategory.Error,\"Source_has_0_element_s_but_target_allows_only_1_2619\",\"Source has {0} element(s) but target allows only {1}.\"),Target_requires_0_element_s_but_source_may_have_fewer:a(2620,e.DiagnosticCategory.Error,\"Target_requires_0_element_s_but_source_may_have_fewer_2620\",\"Target requires {0} element(s) but source may have fewer.\"),Target_allows_only_0_element_s_but_source_may_have_more:a(2621,e.DiagnosticCategory.Error,\"Target_allows_only_0_element_s_but_source_may_have_more_2621\",\"Target allows only {0} element(s) but source may have more.\"),Source_provides_no_match_for_required_element_at_position_0_in_target:a(2623,e.DiagnosticCategory.Error,\"Source_provides_no_match_for_required_element_at_position_0_in_target_2623\",\"Source provides no match for required element at position {0} in target.\"),Source_provides_no_match_for_variadic_element_at_position_0_in_target:a(2624,e.DiagnosticCategory.Error,\"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624\",\"Source provides no match for variadic element at position {0} in target.\"),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:a(2625,e.DiagnosticCategory.Error,\"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625\",\"Variadic element at position {0} in source does not match element at position {1} in target.\"),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:a(2626,e.DiagnosticCategory.Error,\"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626\",\"Type at position {0} in source is not compatible with type at position {1} in target.\"),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:a(2627,e.DiagnosticCategory.Error,\"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627\",\"Type at positions {0} through {1} in source is not compatible with type at position {2} in target.\"),Cannot_assign_to_0_because_it_is_an_enum:a(2628,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_an_enum_2628\",\"Cannot assign to '{0}' because it is an enum.\"),Cannot_assign_to_0_because_it_is_a_class:a(2629,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_class_2629\",\"Cannot assign to '{0}' because it is a class.\"),Cannot_assign_to_0_because_it_is_a_function:a(2630,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_function_2630\",\"Cannot assign to '{0}' because it is a function.\"),Cannot_assign_to_0_because_it_is_a_namespace:a(2631,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_a_namespace_2631\",\"Cannot assign to '{0}' because it is a namespace.\"),Cannot_assign_to_0_because_it_is_an_import:a(2632,e.DiagnosticCategory.Error,\"Cannot_assign_to_0_because_it_is_an_import_2632\",\"Cannot assign to '{0}' because it is an import.\"),JSX_property_access_expressions_cannot_include_JSX_namespace_names:a(2633,e.DiagnosticCategory.Error,\"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633\",\"JSX property access expressions cannot include JSX namespace names\"),_0_index_signatures_are_incompatible:a(2634,e.DiagnosticCategory.Error,\"_0_index_signatures_are_incompatible_2634\",\"'{0}' index signatures are incompatible.\"),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:a(2635,e.DiagnosticCategory.Error,\"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635\",\"Type '{0}' has no signatures for which the type argument list is applicable.\"),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:a(2636,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636\",\"Type '{0}' is not assignable to type '{1}' as implied by variance annotation.\"),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:a(2637,e.DiagnosticCategory.Error,\"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637\",\"Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.\"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:a(2649,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649\",\"Cannot augment module '{0}' with value exports because it resolves to a non-module entity.\"),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:a(2651,e.DiagnosticCategory.Error,\"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651\",\"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.\"),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:a(2652,e.DiagnosticCategory.Error,\"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652\",\"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.\"),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:a(2653,e.DiagnosticCategory.Error,\"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653\",\"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.\"),JSX_expressions_must_have_one_parent_element:a(2657,e.DiagnosticCategory.Error,\"JSX_expressions_must_have_one_parent_element_2657\",\"JSX expressions must have one parent element.\"),Type_0_provides_no_match_for_the_signature_1:a(2658,e.DiagnosticCategory.Error,\"Type_0_provides_no_match_for_the_signature_1_2658\",\"Type '{0}' provides no match for the signature '{1}'.\"),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:a(2659,e.DiagnosticCategory.Error,\"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659\",\"'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.\"),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:a(2660,e.DiagnosticCategory.Error,\"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660\",\"'super' can only be referenced in members of derived classes or object literal expressions.\"),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:a(2661,e.DiagnosticCategory.Error,\"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661\",\"Cannot export '{0}'. Only local declarations can be exported from a module.\"),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:a(2662,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662\",\"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?\"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:a(2663,e.DiagnosticCategory.Error,\"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663\",\"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?\"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:a(2664,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664\",\"Invalid module name in augmentation, module '{0}' cannot be found.\"),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:a(2665,e.DiagnosticCategory.Error,\"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665\",\"Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.\"),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:a(2666,e.DiagnosticCategory.Error,\"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666\",\"Exports and export assignments are not permitted in module augmentations.\"),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:a(2667,e.DiagnosticCategory.Error,\"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667\",\"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.\"),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:a(2668,e.DiagnosticCategory.Error,\"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668\",\"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.\"),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:a(2669,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669\",\"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:a(2670,e.DiagnosticCategory.Error,\"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670\",\"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.\"),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:a(2671,e.DiagnosticCategory.Error,\"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671\",\"Cannot augment module '{0}' because it resolves to a non-module entity.\"),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:a(2672,e.DiagnosticCategory.Error,\"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672\",\"Cannot assign a '{0}' constructor type to a '{1}' constructor type.\"),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:a(2673,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673\",\"Constructor of class '{0}' is private and only accessible within the class declaration.\"),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:a(2674,e.DiagnosticCategory.Error,\"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674\",\"Constructor of class '{0}' is protected and only accessible within the class declaration.\"),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:a(2675,e.DiagnosticCategory.Error,\"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675\",\"Cannot extend a class '{0}'. Class constructor is marked as private.\"),Accessors_must_both_be_abstract_or_non_abstract:a(2676,e.DiagnosticCategory.Error,\"Accessors_must_both_be_abstract_or_non_abstract_2676\",\"Accessors must both be abstract or non-abstract.\"),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:a(2677,e.DiagnosticCategory.Error,\"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677\",\"A type predicate's type must be assignable to its parameter's type.\"),Type_0_is_not_comparable_to_type_1:a(2678,e.DiagnosticCategory.Error,\"Type_0_is_not_comparable_to_type_1_2678\",\"Type '{0}' is not comparable to type '{1}'.\"),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:a(2679,e.DiagnosticCategory.Error,\"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679\",\"A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.\"),A_0_parameter_must_be_the_first_parameter:a(2680,e.DiagnosticCategory.Error,\"A_0_parameter_must_be_the_first_parameter_2680\",\"A '{0}' parameter must be the first parameter.\"),A_constructor_cannot_have_a_this_parameter:a(2681,e.DiagnosticCategory.Error,\"A_constructor_cannot_have_a_this_parameter_2681\",\"A constructor cannot have a 'this' parameter.\"),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:a(2683,e.DiagnosticCategory.Error,\"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683\",\"'this' implicitly has type 'any' because it does not have a type annotation.\"),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:a(2684,e.DiagnosticCategory.Error,\"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684\",\"The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.\"),The_this_types_of_each_signature_are_incompatible:a(2685,e.DiagnosticCategory.Error,\"The_this_types_of_each_signature_are_incompatible_2685\",\"The 'this' types of each signature are incompatible.\"),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:a(2686,e.DiagnosticCategory.Error,\"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686\",\"'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.\"),All_declarations_of_0_must_have_identical_modifiers:a(2687,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_modifiers_2687\",\"All declarations of '{0}' must have identical modifiers.\"),Cannot_find_type_definition_file_for_0:a(2688,e.DiagnosticCategory.Error,\"Cannot_find_type_definition_file_for_0_2688\",\"Cannot find type definition file for '{0}'.\"),Cannot_extend_an_interface_0_Did_you_mean_implements:a(2689,e.DiagnosticCategory.Error,\"Cannot_extend_an_interface_0_Did_you_mean_implements_2689\",\"Cannot extend an interface '{0}'. Did you mean 'implements'?\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:a(2690,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690\",\"'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?\"),An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead:a(2691,e.DiagnosticCategory.Error,\"An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead_2691\",\"An import path cannot end with a '{0}' extension. Consider importing '{1}' instead.\"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:a(2692,e.DiagnosticCategory.Error,\"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692\",\"'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:a(2693,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693\",\"'{0}' only refers to a type, but is being used as a value here.\"),Namespace_0_has_no_exported_member_1:a(2694,e.DiagnosticCategory.Error,\"Namespace_0_has_no_exported_member_1_2694\",\"Namespace '{0}' has no exported member '{1}'.\"),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:a(2695,e.DiagnosticCategory.Error,\"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695\",\"Left side of comma operator is unused and has no side effects.\",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:a(2696,e.DiagnosticCategory.Error,\"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696\",\"The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?\"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:a(2697,e.DiagnosticCategory.Error,\"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697\",\"An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),Spread_types_may_only_be_created_from_object_types:a(2698,e.DiagnosticCategory.Error,\"Spread_types_may_only_be_created_from_object_types_2698\",\"Spread types may only be created from object types.\"),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:a(2699,e.DiagnosticCategory.Error,\"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699\",\"Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.\"),Rest_types_may_only_be_created_from_object_types:a(2700,e.DiagnosticCategory.Error,\"Rest_types_may_only_be_created_from_object_types_2700\",\"Rest types may only be created from object types.\"),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:a(2701,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701\",\"The target of an object rest assignment must be a variable or a property access.\"),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:a(2702,e.DiagnosticCategory.Error,\"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702\",\"'{0}' only refers to a type, but is being used as a namespace here.\"),The_operand_of_a_delete_operator_must_be_a_property_reference:a(2703,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_must_be_a_property_reference_2703\",\"The operand of a 'delete' operator must be a property reference.\"),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:a(2704,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704\",\"The operand of a 'delete' operator cannot be a read-only property.\"),An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:a(2705,e.DiagnosticCategory.Error,\"An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705\",\"An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),Required_type_parameters_may_not_follow_optional_type_parameters:a(2706,e.DiagnosticCategory.Error,\"Required_type_parameters_may_not_follow_optional_type_parameters_2706\",\"Required type parameters may not follow optional type parameters.\"),Generic_type_0_requires_between_1_and_2_type_arguments:a(2707,e.DiagnosticCategory.Error,\"Generic_type_0_requires_between_1_and_2_type_arguments_2707\",\"Generic type '{0}' requires between {1} and {2} type arguments.\"),Cannot_use_namespace_0_as_a_value:a(2708,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_value_2708\",\"Cannot use namespace '{0}' as a value.\"),Cannot_use_namespace_0_as_a_type:a(2709,e.DiagnosticCategory.Error,\"Cannot_use_namespace_0_as_a_type_2709\",\"Cannot use namespace '{0}' as a type.\"),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:a(2710,e.DiagnosticCategory.Error,\"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710\",\"'{0}' are specified twice. The attribute named '{0}' will be overwritten.\"),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:a(2711,e.DiagnosticCategory.Error,\"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711\",\"A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:a(2712,e.DiagnosticCategory.Error,\"A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712\",\"A dynamic import call in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:a(2713,e.DiagnosticCategory.Error,\"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713\",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:a(2714,e.DiagnosticCategory.Error,\"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714\",\"The expression of an export assignment must be an identifier or qualified name in an ambient context.\"),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:a(2715,e.DiagnosticCategory.Error,\"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715\",\"Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.\"),Type_parameter_0_has_a_circular_default:a(2716,e.DiagnosticCategory.Error,\"Type_parameter_0_has_a_circular_default_2716\",\"Type parameter '{0}' has a circular default.\"),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:a(2717,e.DiagnosticCategory.Error,\"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717\",\"Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'.\"),Duplicate_property_0:a(2718,e.DiagnosticCategory.Error,\"Duplicate_property_0_2718\",\"Duplicate property '{0}'.\"),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:a(2719,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719\",\"Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.\"),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:a(2720,e.DiagnosticCategory.Error,\"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720\",\"Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?\"),Cannot_invoke_an_object_which_is_possibly_null:a(2721,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_2721\",\"Cannot invoke an object which is possibly 'null'.\"),Cannot_invoke_an_object_which_is_possibly_undefined:a(2722,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_undefined_2722\",\"Cannot invoke an object which is possibly 'undefined'.\"),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:a(2723,e.DiagnosticCategory.Error,\"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723\",\"Cannot invoke an object which is possibly 'null' or 'undefined'.\"),_0_has_no_exported_member_named_1_Did_you_mean_2:a(2724,e.DiagnosticCategory.Error,\"_0_has_no_exported_member_named_1_Did_you_mean_2_2724\",\"'{0}' has no exported member named '{1}'. Did you mean '{2}'?\"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:a(2725,e.DiagnosticCategory.Error,\"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725\",\"Class name cannot be 'Object' when targeting ES5 with module {0}.\"),Cannot_find_lib_definition_for_0:a(2726,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_2726\",\"Cannot find lib definition for '{0}'.\"),Cannot_find_lib_definition_for_0_Did_you_mean_1:a(2727,e.DiagnosticCategory.Error,\"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727\",\"Cannot find lib definition for '{0}'. Did you mean '{1}'?\"),_0_is_declared_here:a(2728,e.DiagnosticCategory.Message,\"_0_is_declared_here_2728\",\"'{0}' is declared here.\"),Property_0_is_used_before_its_initialization:a(2729,e.DiagnosticCategory.Error,\"Property_0_is_used_before_its_initialization_2729\",\"Property '{0}' is used before its initialization.\"),An_arrow_function_cannot_have_a_this_parameter:a(2730,e.DiagnosticCategory.Error,\"An_arrow_function_cannot_have_a_this_parameter_2730\",\"An arrow function cannot have a 'this' parameter.\"),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:a(2731,e.DiagnosticCategory.Error,\"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731\",\"Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.\"),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:a(2732,e.DiagnosticCategory.Error,\"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732\",\"Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.\"),Property_0_was_also_declared_here:a(2733,e.DiagnosticCategory.Error,\"Property_0_was_also_declared_here_2733\",\"Property '{0}' was also declared here.\"),Are_you_missing_a_semicolon:a(2734,e.DiagnosticCategory.Error,\"Are_you_missing_a_semicolon_2734\",\"Are you missing a semicolon?\"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:a(2735,e.DiagnosticCategory.Error,\"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735\",\"Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?\"),Operator_0_cannot_be_applied_to_type_1:a(2736,e.DiagnosticCategory.Error,\"Operator_0_cannot_be_applied_to_type_1_2736\",\"Operator '{0}' cannot be applied to type '{1}'.\"),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:a(2737,e.DiagnosticCategory.Error,\"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737\",\"BigInt literals are not available when targeting lower than ES2020.\"),An_outer_value_of_this_is_shadowed_by_this_container:a(2738,e.DiagnosticCategory.Message,\"An_outer_value_of_this_is_shadowed_by_this_container_2738\",\"An outer value of 'this' is shadowed by this container.\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:a(2739,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739\",\"Type '{0}' is missing the following properties from type '{1}': {2}\"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:a(2740,e.DiagnosticCategory.Error,\"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740\",\"Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.\"),Property_0_is_missing_in_type_1_but_required_in_type_2:a(2741,e.DiagnosticCategory.Error,\"Property_0_is_missing_in_type_1_but_required_in_type_2_2741\",\"Property '{0}' is missing in type '{1}' but required in type '{2}'.\"),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:a(2742,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742\",\"The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.\"),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:a(2743,e.DiagnosticCategory.Error,\"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743\",\"No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.\"),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:a(2744,e.DiagnosticCategory.Error,\"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744\",\"Type parameter defaults can only reference previously declared type parameters.\"),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:a(2745,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745\",\"This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.\"),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:a(2746,e.DiagnosticCategory.Error,\"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746\",\"This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.\"),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:a(2747,e.DiagnosticCategory.Error,\"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747\",\"'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.\"),Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided:a(2748,e.DiagnosticCategory.Error,\"Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided_2748\",\"Cannot access ambient const enums when the '--isolatedModules' flag is provided.\"),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:a(2749,e.DiagnosticCategory.Error,\"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749\",\"'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?\"),The_implementation_signature_is_declared_here:a(2750,e.DiagnosticCategory.Error,\"The_implementation_signature_is_declared_here_2750\",\"The implementation signature is declared here.\"),Circularity_originates_in_type_at_this_location:a(2751,e.DiagnosticCategory.Error,\"Circularity_originates_in_type_at_this_location_2751\",\"Circularity originates in type at this location.\"),The_first_export_default_is_here:a(2752,e.DiagnosticCategory.Error,\"The_first_export_default_is_here_2752\",\"The first export default is here.\"),Another_export_default_is_here:a(2753,e.DiagnosticCategory.Error,\"Another_export_default_is_here_2753\",\"Another export default is here.\"),super_may_not_use_type_arguments:a(2754,e.DiagnosticCategory.Error,\"super_may_not_use_type_arguments_2754\",\"'super' may not use type arguments.\"),No_constituent_of_type_0_is_callable:a(2755,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_callable_2755\",\"No constituent of type '{0}' is callable.\"),Not_all_constituents_of_type_0_are_callable:a(2756,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_callable_2756\",\"Not all constituents of type '{0}' are callable.\"),Type_0_has_no_call_signatures:a(2757,e.DiagnosticCategory.Error,\"Type_0_has_no_call_signatures_2757\",\"Type '{0}' has no call signatures.\"),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:a(2758,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758\",\"Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.\"),No_constituent_of_type_0_is_constructable:a(2759,e.DiagnosticCategory.Error,\"No_constituent_of_type_0_is_constructable_2759\",\"No constituent of type '{0}' is constructable.\"),Not_all_constituents_of_type_0_are_constructable:a(2760,e.DiagnosticCategory.Error,\"Not_all_constituents_of_type_0_are_constructable_2760\",\"Not all constituents of type '{0}' are constructable.\"),Type_0_has_no_construct_signatures:a(2761,e.DiagnosticCategory.Error,\"Type_0_has_no_construct_signatures_2761\",\"Type '{0}' has no construct signatures.\"),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:a(2762,e.DiagnosticCategory.Error,\"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762\",\"Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:a(2763,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:a(2764,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.\"),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:a(2765,e.DiagnosticCategory.Error,\"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765\",\"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.\"),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:a(2766,e.DiagnosticCategory.Error,\"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766\",\"Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.\"),The_0_property_of_an_iterator_must_be_a_method:a(2767,e.DiagnosticCategory.Error,\"The_0_property_of_an_iterator_must_be_a_method_2767\",\"The '{0}' property of an iterator must be a method.\"),The_0_property_of_an_async_iterator_must_be_a_method:a(2768,e.DiagnosticCategory.Error,\"The_0_property_of_an_async_iterator_must_be_a_method_2768\",\"The '{0}' property of an async iterator must be a method.\"),No_overload_matches_this_call:a(2769,e.DiagnosticCategory.Error,\"No_overload_matches_this_call_2769\",\"No overload matches this call.\"),The_last_overload_gave_the_following_error:a(2770,e.DiagnosticCategory.Error,\"The_last_overload_gave_the_following_error_2770\",\"The last overload gave the following error.\"),The_last_overload_is_declared_here:a(2771,e.DiagnosticCategory.Error,\"The_last_overload_is_declared_here_2771\",\"The last overload is declared here.\"),Overload_0_of_1_2_gave_the_following_error:a(2772,e.DiagnosticCategory.Error,\"Overload_0_of_1_2_gave_the_following_error_2772\",\"Overload {0} of {1}, '{2}', gave the following error.\"),Did_you_forget_to_use_await:a(2773,e.DiagnosticCategory.Error,\"Did_you_forget_to_use_await_2773\",\"Did you forget to use 'await'?\"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:a(2774,e.DiagnosticCategory.Error,\"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774\",\"This condition will always return true since this function is always defined. Did you mean to call it instead?\"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:a(2775,e.DiagnosticCategory.Error,\"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775\",\"Assertions require every name in the call target to be declared with an explicit type annotation.\"),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:a(2776,e.DiagnosticCategory.Error,\"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776\",\"Assertions require the call target to be an identifier or qualified name.\"),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:a(2777,e.DiagnosticCategory.Error,\"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777\",\"The operand of an increment or decrement operator may not be an optional property access.\"),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:a(2778,e.DiagnosticCategory.Error,\"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778\",\"The target of an object rest assignment may not be an optional property access.\"),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:a(2779,e.DiagnosticCategory.Error,\"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779\",\"The left-hand side of an assignment expression may not be an optional property access.\"),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:a(2780,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780\",\"The left-hand side of a 'for...in' statement may not be an optional property access.\"),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:a(2781,e.DiagnosticCategory.Error,\"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781\",\"The left-hand side of a 'for...of' statement may not be an optional property access.\"),_0_needs_an_explicit_type_annotation:a(2782,e.DiagnosticCategory.Message,\"_0_needs_an_explicit_type_annotation_2782\",\"'{0}' needs an explicit type annotation.\"),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:a(2783,e.DiagnosticCategory.Error,\"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783\",\"'{0}' is specified more than once, so this usage will be overwritten.\"),get_and_set_accessors_cannot_declare_this_parameters:a(2784,e.DiagnosticCategory.Error,\"get_and_set_accessors_cannot_declare_this_parameters_2784\",\"'get' and 'set' accessors cannot declare 'this' parameters.\"),This_spread_always_overwrites_this_property:a(2785,e.DiagnosticCategory.Error,\"This_spread_always_overwrites_this_property_2785\",\"This spread always overwrites this property.\"),_0_cannot_be_used_as_a_JSX_component:a(2786,e.DiagnosticCategory.Error,\"_0_cannot_be_used_as_a_JSX_component_2786\",\"'{0}' cannot be used as a JSX component.\"),Its_return_type_0_is_not_a_valid_JSX_element:a(2787,e.DiagnosticCategory.Error,\"Its_return_type_0_is_not_a_valid_JSX_element_2787\",\"Its return type '{0}' is not a valid JSX element.\"),Its_instance_type_0_is_not_a_valid_JSX_element:a(2788,e.DiagnosticCategory.Error,\"Its_instance_type_0_is_not_a_valid_JSX_element_2788\",\"Its instance type '{0}' is not a valid JSX element.\"),Its_element_type_0_is_not_a_valid_JSX_element:a(2789,e.DiagnosticCategory.Error,\"Its_element_type_0_is_not_a_valid_JSX_element_2789\",\"Its element type '{0}' is not a valid JSX element.\"),The_operand_of_a_delete_operator_must_be_optional:a(2790,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_must_be_optional_2790\",\"The operand of a 'delete' operator must be optional.\"),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:a(2791,e.DiagnosticCategory.Error,\"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791\",\"Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.\"),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:a(2792,e.DiagnosticCategory.Error,\"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_th_2792\",\"Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?\"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:a(2793,e.DiagnosticCategory.Error,\"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793\",\"The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.\"),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:a(2794,e.DiagnosticCategory.Error,\"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794\",\"Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?\"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:a(2795,e.DiagnosticCategory.Error,\"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795\",\"The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.\"),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:a(2796,e.DiagnosticCategory.Error,\"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796\",\"It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.\"),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:a(2797,e.DiagnosticCategory.Error,\"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797\",\"A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.\"),The_declaration_was_marked_as_deprecated_here:a(2798,e.DiagnosticCategory.Error,\"The_declaration_was_marked_as_deprecated_here_2798\",\"The declaration was marked as deprecated here.\"),Type_produces_a_tuple_type_that_is_too_large_to_represent:a(2799,e.DiagnosticCategory.Error,\"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799\",\"Type produces a tuple type that is too large to represent.\"),Expression_produces_a_tuple_type_that_is_too_large_to_represent:a(2800,e.DiagnosticCategory.Error,\"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800\",\"Expression produces a tuple type that is too large to represent.\"),This_condition_will_always_return_true_since_this_0_is_always_defined:a(2801,e.DiagnosticCategory.Error,\"This_condition_will_always_return_true_since_this_0_is_always_defined_2801\",\"This condition will always return true since this '{0}' is always defined.\"),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:a(2802,e.DiagnosticCategory.Error,\"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802\",\"Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\"),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:a(2803,e.DiagnosticCategory.Error,\"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803\",\"Cannot assign to private method '{0}'. Private methods are not writable.\"),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:a(2804,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804\",\"Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.\"),Private_accessor_was_defined_without_a_getter:a(2806,e.DiagnosticCategory.Error,\"Private_accessor_was_defined_without_a_getter_2806\",\"Private accessor was defined without a getter.\"),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:a(2807,e.DiagnosticCategory.Error,\"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807\",\"This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.\"),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:a(2808,e.DiagnosticCategory.Error,\"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808\",\"A get accessor must be at least as accessible as the setter\"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses:a(2809,e.DiagnosticCategory.Error,\"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809\",\"Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the the whole assignment in parentheses.\"),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:a(2810,e.DiagnosticCategory.Error,\"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810\",\"Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.\"),Initializer_for_property_0:a(2811,e.DiagnosticCategory.Error,\"Initializer_for_property_0_2811\",\"Initializer for property '{0}'\"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:a(2812,e.DiagnosticCategory.Error,\"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812\",\"Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.\"),Class_declaration_cannot_implement_overload_list_for_0:a(2813,e.DiagnosticCategory.Error,\"Class_declaration_cannot_implement_overload_list_for_0_2813\",\"Class declaration cannot implement overload list for '{0}'.\"),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:a(2814,e.DiagnosticCategory.Error,\"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814\",\"Function with bodies can only merge with classes that are ambient.\"),arguments_cannot_be_referenced_in_property_initializers:a(2815,e.DiagnosticCategory.Error,\"arguments_cannot_be_referenced_in_property_initializers_2815\",\"'arguments' cannot be referenced in property initializers.\"),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:a(2816,e.DiagnosticCategory.Error,\"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816\",\"Cannot use 'this' in a static property initializer of a decorated class.\"),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:a(2817,e.DiagnosticCategory.Error,\"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817\",\"Property '{0}' has no initializer and is not definitely assigned in a class static block.\"),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:a(2818,e.DiagnosticCategory.Error,\"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818\",\"Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.\"),Namespace_name_cannot_be_0:a(2819,e.DiagnosticCategory.Error,\"Namespace_name_cannot_be_0_2819\",\"Namespace name cannot be '{0}'.\"),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:a(2820,e.DiagnosticCategory.Error,\"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820\",\"Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?\"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext:a(2821,e.DiagnosticCategory.Error,\"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext_2821\",\"Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'.\"),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:a(2822,e.DiagnosticCategory.Error,\"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822\",\"Import assertions cannot be used with type-only imports or exports.\"),Cannot_find_namespace_0_Did_you_mean_1:a(2833,e.DiagnosticCategory.Error,\"Cannot_find_namespace_0_Did_you_mean_1_2833\",\"Cannot find namespace '{0}'. Did you mean '{1}'?\"),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:a(2834,e.DiagnosticCategory.Error,\"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834\",\"Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.\"),Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:a(2835,e.DiagnosticCategory.Error,\"Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835\",\"Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?\"),Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls:a(2836,e.DiagnosticCategory.Error,\"Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls_2836\",\"Import assertions are not allowed on statements that transpile to commonjs 'require' calls.\"),Import_assertion_values_must_be_string_literal_expressions:a(2837,e.DiagnosticCategory.Error,\"Import_assertion_values_must_be_string_literal_expressions_2837\",\"Import assertion values must be string literal expressions.\"),All_declarations_of_0_must_have_identical_constraints:a(2838,e.DiagnosticCategory.Error,\"All_declarations_of_0_must_have_identical_constraints_2838\",\"All declarations of '{0}' must have identical constraints.\"),Import_declaration_0_is_using_private_name_1:a(4e3,e.DiagnosticCategory.Error,\"Import_declaration_0_is_using_private_name_1_4000\",\"Import declaration '{0}' is using private name '{1}'.\"),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:a(4002,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002\",\"Type parameter '{0}' of exported class has or is using private name '{1}'.\"),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:a(4004,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004\",\"Type parameter '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:a(4006,e.DiagnosticCategory.Error,\"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006\",\"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:a(4008,e.DiagnosticCategory.Error,\"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008\",\"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:a(4010,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010\",\"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:a(4012,e.DiagnosticCategory.Error,\"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012\",\"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:a(4014,e.DiagnosticCategory.Error,\"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014\",\"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:a(4016,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016\",\"Type parameter '{0}' of exported function has or is using private name '{1}'.\"),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:a(4019,e.DiagnosticCategory.Error,\"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019\",\"Implements clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:a(4020,e.DiagnosticCategory.Error,\"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020\",\"'extends' clause of exported class '{0}' has or is using private name '{1}'.\"),extends_clause_of_exported_class_has_or_is_using_private_name_0:a(4021,e.DiagnosticCategory.Error,\"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021\",\"'extends' clause of exported class has or is using private name '{0}'.\"),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:a(4022,e.DiagnosticCategory.Error,\"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022\",\"'extends' clause of exported interface '{0}' has or is using private name '{1}'.\"),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4023,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023\",\"Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.\"),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:a(4024,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024\",\"Exported variable '{0}' has or is using name '{1}' from private module '{2}'.\"),Exported_variable_0_has_or_is_using_private_name_1:a(4025,e.DiagnosticCategory.Error,\"Exported_variable_0_has_or_is_using_private_name_1_4025\",\"Exported variable '{0}' has or is using private name '{1}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4026,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026\",\"Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4027,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027\",\"Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:a(4028,e.DiagnosticCategory.Error,\"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028\",\"Public static property '{0}' of exported class has or is using private name '{1}'.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4029,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029\",\"Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4030,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030\",\"Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_property_0_of_exported_class_has_or_is_using_private_name_1:a(4031,e.DiagnosticCategory.Error,\"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031\",\"Public property '{0}' of exported class has or is using private name '{1}'.\"),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4032,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032\",\"Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Property_0_of_exported_interface_has_or_is_using_private_name_1:a(4033,e.DiagnosticCategory.Error,\"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033\",\"Property '{0}' of exported interface has or is using private name '{1}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4034,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034\",\"Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:a(4035,e.DiagnosticCategory.Error,\"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035\",\"Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4036,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036\",\"Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:a(4037,e.DiagnosticCategory.Error,\"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037\",\"Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4038,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4039,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039\",\"Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:a(4040,e.DiagnosticCategory.Error,\"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040\",\"Return type of public static getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4041,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4042,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042\",\"Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:a(4043,e.DiagnosticCategory.Error,\"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043\",\"Return type of public getter '{0}' from exported class has or is using private name '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4044,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044\",\"Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:a(4045,e.DiagnosticCategory.Error,\"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045\",\"Return type of constructor signature from exported interface has or is using private name '{0}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4046,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046\",\"Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:a(4047,e.DiagnosticCategory.Error,\"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047\",\"Return type of call signature from exported interface has or is using private name '{0}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4048,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048\",\"Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:a(4049,e.DiagnosticCategory.Error,\"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049\",\"Return type of index signature from exported interface has or is using private name '{0}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4050,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050\",\"Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:a(4051,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051\",\"Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:a(4052,e.DiagnosticCategory.Error,\"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052\",\"Return type of public static method from exported class has or is using private name '{0}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4053,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053\",\"Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:a(4054,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054\",\"Return type of public method from exported class has or is using name '{0}' from private module '{1}'.\"),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:a(4055,e.DiagnosticCategory.Error,\"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055\",\"Return type of public method from exported class has or is using private name '{0}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4056,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056\",\"Return type of method from exported interface has or is using name '{0}' from private module '{1}'.\"),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:a(4057,e.DiagnosticCategory.Error,\"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057\",\"Return type of method from exported interface has or is using private name '{0}'.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4058,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058\",\"Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.\"),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:a(4059,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059\",\"Return type of exported function has or is using name '{0}' from private module '{1}'.\"),Return_type_of_exported_function_has_or_is_using_private_name_0:a(4060,e.DiagnosticCategory.Error,\"Return_type_of_exported_function_has_or_is_using_private_name_0_4060\",\"Return type of exported function has or is using private name '{0}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4061,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4062,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062\",\"Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:a(4063,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063\",\"Parameter '{0}' of constructor from exported class has or is using private name '{1}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4064,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064\",\"Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:a(4065,e.DiagnosticCategory.Error,\"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065\",\"Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4066,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066\",\"Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:a(4067,e.DiagnosticCategory.Error,\"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067\",\"Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4068,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4069,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069\",\"Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:a(4070,e.DiagnosticCategory.Error,\"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070\",\"Parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4071,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4072,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072\",\"Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:a(4073,e.DiagnosticCategory.Error,\"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073\",\"Parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4074,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074\",\"Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:a(4075,e.DiagnosticCategory.Error,\"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075\",\"Parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4076,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076\",\"Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.\"),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:a(4077,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077\",\"Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_exported_function_has_or_is_using_private_name_1:a(4078,e.DiagnosticCategory.Error,\"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078\",\"Parameter '{0}' of exported function has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1:a(4081,e.DiagnosticCategory.Error,\"Exported_type_alias_0_has_or_is_using_private_name_1_4081\",\"Exported type alias '{0}' has or is using private name '{1}'.\"),Default_export_of_the_module_has_or_is_using_private_name_0:a(4082,e.DiagnosticCategory.Error,\"Default_export_of_the_module_has_or_is_using_private_name_0_4082\",\"Default export of the module has or is using private name '{0}'.\"),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:a(4083,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083\",\"Type parameter '{0}' of exported type alias has or is using private name '{1}'.\"),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:a(4084,e.DiagnosticCategory.Error,\"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084\",\"Exported type alias '{0}' has or is using private name '{1}' from module {2}.\"),Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict:a(4090,e.DiagnosticCategory.Error,\"Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090\",\"Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4091,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091\",\"Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:a(4092,e.DiagnosticCategory.Error,\"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092\",\"Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.\"),Property_0_of_exported_class_expression_may_not_be_private_or_protected:a(4094,e.DiagnosticCategory.Error,\"Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094\",\"Property '{0}' of exported class expression may not be private or protected.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4095,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095\",\"Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4096,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096\",\"Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:a(4097,e.DiagnosticCategory.Error,\"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097\",\"Public static method '{0}' of exported class has or is using private name '{1}'.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4098,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098\",\"Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4099,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099\",\"Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),Public_method_0_of_exported_class_has_or_is_using_private_name_1:a(4100,e.DiagnosticCategory.Error,\"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100\",\"Public method '{0}' of exported class has or is using private name '{1}'.\"),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4101,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101\",\"Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),Method_0_of_exported_interface_has_or_is_using_private_name_1:a(4102,e.DiagnosticCategory.Error,\"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102\",\"Method '{0}' of exported interface has or is using private name '{1}'.\"),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:a(4103,e.DiagnosticCategory.Error,\"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103\",\"Type parameter '{0}' of exported mapped object type is using private name '{1}'.\"),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:a(4104,e.DiagnosticCategory.Error,\"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104\",\"The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.\"),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:a(4105,e.DiagnosticCategory.Error,\"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105\",\"Private or protected member '{0}' cannot be accessed on a type parameter.\"),Parameter_0_of_accessor_has_or_is_using_private_name_1:a(4106,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106\",\"Parameter '{0}' of accessor has or is using private name '{1}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:a(4107,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107\",\"Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.\"),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4108,e.DiagnosticCategory.Error,\"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108\",\"Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.\"),Type_arguments_for_0_circularly_reference_themselves:a(4109,e.DiagnosticCategory.Error,\"Type_arguments_for_0_circularly_reference_themselves_4109\",\"Type arguments for '{0}' circularly reference themselves.\"),Tuple_type_arguments_circularly_reference_themselves:a(4110,e.DiagnosticCategory.Error,\"Tuple_type_arguments_circularly_reference_themselves_4110\",\"Tuple type arguments circularly reference themselves.\"),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:a(4111,e.DiagnosticCategory.Error,\"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111\",\"Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].\"),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:a(4112,e.DiagnosticCategory.Error,\"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112\",\"This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.\"),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:a(4113,e.DiagnosticCategory.Error,\"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113\",\"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.\"),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:a(4114,e.DiagnosticCategory.Error,\"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114\",\"This member must have an 'override' modifier because it overrides a member in the base class '{0}'.\"),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:a(4115,e.DiagnosticCategory.Error,\"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115\",\"This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.\"),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:a(4116,e.DiagnosticCategory.Error,\"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116\",\"This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.\"),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:a(4117,e.DiagnosticCategory.Error,\"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117\",\"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:a(4118,e.DiagnosticCategory.Error,\"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118\",\"The type of this node cannot be serialized because its property '{0}' cannot be serialized.\"),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4119,e.DiagnosticCategory.Error,\"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119\",\"This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:a(4120,e.DiagnosticCategory.Error,\"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120\",\"This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:a(4121,e.DiagnosticCategory.Error,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121\",\"This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:a(4122,e.DiagnosticCategory.Error,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122\",\"This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.\"),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:a(4123,e.DiagnosticCategory.Error,\"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123\",\"This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4124,e.DiagnosticCategory.Error,\"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124\",\"Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.\"),Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:a(4125,e.DiagnosticCategory.Error,\"Resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_wi_4125\",\"Resolution mode assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.\"),The_current_host_does_not_support_the_0_option:a(5001,e.DiagnosticCategory.Error,\"The_current_host_does_not_support_the_0_option_5001\",\"The current host does not support the '{0}' option.\"),Cannot_find_the_common_subdirectory_path_for_the_input_files:a(5009,e.DiagnosticCategory.Error,\"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009\",\"Cannot find the common subdirectory path for the input files.\"),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:a(5010,e.DiagnosticCategory.Error,\"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010\",\"File specification cannot end in a recursive directory wildcard ('**'): '{0}'.\"),Cannot_read_file_0_Colon_1:a(5012,e.DiagnosticCategory.Error,\"Cannot_read_file_0_Colon_1_5012\",\"Cannot read file '{0}': {1}.\"),Failed_to_parse_file_0_Colon_1:a(5014,e.DiagnosticCategory.Error,\"Failed_to_parse_file_0_Colon_1_5014\",\"Failed to parse file '{0}': {1}.\"),Unknown_compiler_option_0:a(5023,e.DiagnosticCategory.Error,\"Unknown_compiler_option_0_5023\",\"Unknown compiler option '{0}'.\"),Compiler_option_0_requires_a_value_of_type_1:a(5024,e.DiagnosticCategory.Error,\"Compiler_option_0_requires_a_value_of_type_1_5024\",\"Compiler option '{0}' requires a value of type {1}.\"),Unknown_compiler_option_0_Did_you_mean_1:a(5025,e.DiagnosticCategory.Error,\"Unknown_compiler_option_0_Did_you_mean_1_5025\",\"Unknown compiler option '{0}'. Did you mean '{1}'?\"),Could_not_write_file_0_Colon_1:a(5033,e.DiagnosticCategory.Error,\"Could_not_write_file_0_Colon_1_5033\",\"Could not write file '{0}': {1}.\"),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:a(5042,e.DiagnosticCategory.Error,\"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042\",\"Option 'project' cannot be mixed with source files on a command line.\"),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:a(5047,e.DiagnosticCategory.Error,\"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047\",\"Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.\"),Option_0_cannot_be_specified_when_option_target_is_ES3:a(5048,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_when_option_target_is_ES3_5048\",\"Option '{0}' cannot be specified when option 'target' is 'ES3'.\"),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:a(5051,e.DiagnosticCategory.Error,\"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051\",\"Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.\"),Option_0_cannot_be_specified_without_specifying_option_1:a(5052,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_5052\",\"Option '{0}' cannot be specified without specifying option '{1}'.\"),Option_0_cannot_be_specified_with_option_1:a(5053,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_with_option_1_5053\",\"Option '{0}' cannot be specified with option '{1}'.\"),A_tsconfig_json_file_is_already_defined_at_Colon_0:a(5054,e.DiagnosticCategory.Error,\"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054\",\"A 'tsconfig.json' file is already defined at: '{0}'.\"),Cannot_write_file_0_because_it_would_overwrite_input_file:a(5055,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_overwrite_input_file_5055\",\"Cannot write file '{0}' because it would overwrite input file.\"),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:a(5056,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056\",\"Cannot write file '{0}' because it would be overwritten by multiple input files.\"),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:a(5057,e.DiagnosticCategory.Error,\"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057\",\"Cannot find a tsconfig.json file at the specified directory: '{0}'.\"),The_specified_path_does_not_exist_Colon_0:a(5058,e.DiagnosticCategory.Error,\"The_specified_path_does_not_exist_Colon_0_5058\",\"The specified path does not exist: '{0}'.\"),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:a(5059,e.DiagnosticCategory.Error,\"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059\",\"Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.\"),Pattern_0_can_have_at_most_one_Asterisk_character:a(5061,e.DiagnosticCategory.Error,\"Pattern_0_can_have_at_most_one_Asterisk_character_5061\",\"Pattern '{0}' can have at most one '*' character.\"),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:a(5062,e.DiagnosticCategory.Error,\"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062\",\"Substitution '{0}' in pattern '{1}' can have at most one '*' character.\"),Substitutions_for_pattern_0_should_be_an_array:a(5063,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_should_be_an_array_5063\",\"Substitutions for pattern '{0}' should be an array.\"),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:a(5064,e.DiagnosticCategory.Error,\"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064\",\"Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.\"),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:a(5065,e.DiagnosticCategory.Error,\"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065\",\"File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.\"),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:a(5066,e.DiagnosticCategory.Error,\"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066\",\"Substitutions for pattern '{0}' shouldn't be an empty array.\"),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:a(5067,e.DiagnosticCategory.Error,\"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067\",\"Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.\"),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:a(5068,e.DiagnosticCategory.Error,\"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068\",\"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.\"),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:a(5069,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069\",\"Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.\"),Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy:a(5070,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy_5070\",\"Option '--resolveJsonModule' cannot be specified without 'node' module resolution strategy.\"),Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext:a(5071,e.DiagnosticCategory.Error,\"Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071\",\"Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'.\"),Unknown_build_option_0:a(5072,e.DiagnosticCategory.Error,\"Unknown_build_option_0_5072\",\"Unknown build option '{0}'.\"),Build_option_0_requires_a_value_of_type_1:a(5073,e.DiagnosticCategory.Error,\"Build_option_0_requires_a_value_of_type_1_5073\",\"Build option '{0}' requires a value of type {1}.\"),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:a(5074,e.DiagnosticCategory.Error,\"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074\",\"Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.\"),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:a(5075,e.DiagnosticCategory.Error,\"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075\",\"'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.\"),_0_and_1_operations_cannot_be_mixed_without_parentheses:a(5076,e.DiagnosticCategory.Error,\"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076\",\"'{0}' and '{1}' operations cannot be mixed without parentheses.\"),Unknown_build_option_0_Did_you_mean_1:a(5077,e.DiagnosticCategory.Error,\"Unknown_build_option_0_Did_you_mean_1_5077\",\"Unknown build option '{0}'. Did you mean '{1}'?\"),Unknown_watch_option_0:a(5078,e.DiagnosticCategory.Error,\"Unknown_watch_option_0_5078\",\"Unknown watch option '{0}'.\"),Unknown_watch_option_0_Did_you_mean_1:a(5079,e.DiagnosticCategory.Error,\"Unknown_watch_option_0_Did_you_mean_1_5079\",\"Unknown watch option '{0}'. Did you mean '{1}'?\"),Watch_option_0_requires_a_value_of_type_1:a(5080,e.DiagnosticCategory.Error,\"Watch_option_0_requires_a_value_of_type_1_5080\",\"Watch option '{0}' requires a value of type {1}.\"),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:a(5081,e.DiagnosticCategory.Error,\"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081\",\"Cannot find a tsconfig.json file at the current directory: {0}.\"),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:a(5082,e.DiagnosticCategory.Error,\"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082\",\"'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.\"),Cannot_read_file_0:a(5083,e.DiagnosticCategory.Error,\"Cannot_read_file_0_5083\",\"Cannot read file '{0}'.\"),Tuple_members_must_all_have_names_or_all_not_have_names:a(5084,e.DiagnosticCategory.Error,\"Tuple_members_must_all_have_names_or_all_not_have_names_5084\",\"Tuple members must all have names or all not have names.\"),A_tuple_member_cannot_be_both_optional_and_rest:a(5085,e.DiagnosticCategory.Error,\"A_tuple_member_cannot_be_both_optional_and_rest_5085\",\"A tuple member cannot be both optional and rest.\"),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:a(5086,e.DiagnosticCategory.Error,\"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086\",\"A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.\"),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:a(5087,e.DiagnosticCategory.Error,\"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087\",\"A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.\"),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:a(5088,e.DiagnosticCategory.Error,\"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088\",\"The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.\"),Option_0_cannot_be_specified_when_option_jsx_is_1:a(5089,e.DiagnosticCategory.Error,\"Option_0_cannot_be_specified_when_option_jsx_is_1_5089\",\"Option '{0}' cannot be specified when option 'jsx' is '{1}'.\"),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:a(5090,e.DiagnosticCategory.Error,\"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090\",\"Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?\"),Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled:a(5091,e.DiagnosticCategory.Error,\"Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled_5091\",\"Option 'preserveConstEnums' cannot be disabled when 'isolatedModules' is enabled.\"),The_root_value_of_a_0_file_must_be_an_object:a(5092,e.DiagnosticCategory.Error,\"The_root_value_of_a_0_file_must_be_an_object_5092\",\"The root value of a '{0}' file must be an object.\"),Compiler_option_0_may_only_be_used_with_build:a(5093,e.DiagnosticCategory.Error,\"Compiler_option_0_may_only_be_used_with_build_5093\",\"Compiler option '--{0}' may only be used with '--build'.\"),Compiler_option_0_may_not_be_used_with_build:a(5094,e.DiagnosticCategory.Error,\"Compiler_option_0_may_not_be_used_with_build_5094\",\"Compiler option '--{0}' may not be used with '--build'.\"),Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later:a(5095,e.DiagnosticCategory.Error,\"Option_preserveValueImports_can_only_be_used_when_module_is_set_to_es2015_or_later_5095\",\"Option 'preserveValueImports' can only be used when 'module' is set to 'es2015' or later.\"),Generates_a_sourcemap_for_each_corresponding_d_ts_file:a(6e3,e.DiagnosticCategory.Message,\"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000\",\"Generates a sourcemap for each corresponding '.d.ts' file.\"),Concatenate_and_emit_output_to_single_file:a(6001,e.DiagnosticCategory.Message,\"Concatenate_and_emit_output_to_single_file_6001\",\"Concatenate and emit output to single file.\"),Generates_corresponding_d_ts_file:a(6002,e.DiagnosticCategory.Message,\"Generates_corresponding_d_ts_file_6002\",\"Generates corresponding '.d.ts' file.\"),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:a(6004,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004\",\"Specify the location where debugger should locate TypeScript files instead of source locations.\"),Watch_input_files:a(6005,e.DiagnosticCategory.Message,\"Watch_input_files_6005\",\"Watch input files.\"),Redirect_output_structure_to_the_directory:a(6006,e.DiagnosticCategory.Message,\"Redirect_output_structure_to_the_directory_6006\",\"Redirect output structure to the directory.\"),Do_not_erase_const_enum_declarations_in_generated_code:a(6007,e.DiagnosticCategory.Message,\"Do_not_erase_const_enum_declarations_in_generated_code_6007\",\"Do not erase const enum declarations in generated code.\"),Do_not_emit_outputs_if_any_errors_were_reported:a(6008,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_if_any_errors_were_reported_6008\",\"Do not emit outputs if any errors were reported.\"),Do_not_emit_comments_to_output:a(6009,e.DiagnosticCategory.Message,\"Do_not_emit_comments_to_output_6009\",\"Do not emit comments to output.\"),Do_not_emit_outputs:a(6010,e.DiagnosticCategory.Message,\"Do_not_emit_outputs_6010\",\"Do not emit outputs.\"),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:a(6011,e.DiagnosticCategory.Message,\"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011\",\"Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\"),Skip_type_checking_of_declaration_files:a(6012,e.DiagnosticCategory.Message,\"Skip_type_checking_of_declaration_files_6012\",\"Skip type checking of declaration files.\"),Do_not_resolve_the_real_path_of_symlinks:a(6013,e.DiagnosticCategory.Message,\"Do_not_resolve_the_real_path_of_symlinks_6013\",\"Do not resolve the real path of symlinks.\"),Only_emit_d_ts_declaration_files:a(6014,e.DiagnosticCategory.Message,\"Only_emit_d_ts_declaration_files_6014\",\"Only emit '.d.ts' declaration files.\"),Specify_ECMAScript_target_version:a(6015,e.DiagnosticCategory.Message,\"Specify_ECMAScript_target_version_6015\",\"Specify ECMAScript target version.\"),Specify_module_code_generation:a(6016,e.DiagnosticCategory.Message,\"Specify_module_code_generation_6016\",\"Specify module code generation.\"),Print_this_message:a(6017,e.DiagnosticCategory.Message,\"Print_this_message_6017\",\"Print this message.\"),Print_the_compiler_s_version:a(6019,e.DiagnosticCategory.Message,\"Print_the_compiler_s_version_6019\",\"Print the compiler's version.\"),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:a(6020,e.DiagnosticCategory.Message,\"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020\",\"Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.\"),Syntax_Colon_0:a(6023,e.DiagnosticCategory.Message,\"Syntax_Colon_0_6023\",\"Syntax: {0}\"),options:a(6024,e.DiagnosticCategory.Message,\"options_6024\",\"options\"),file:a(6025,e.DiagnosticCategory.Message,\"file_6025\",\"file\"),Examples_Colon_0:a(6026,e.DiagnosticCategory.Message,\"Examples_Colon_0_6026\",\"Examples: {0}\"),Options_Colon:a(6027,e.DiagnosticCategory.Message,\"Options_Colon_6027\",\"Options:\"),Version_0:a(6029,e.DiagnosticCategory.Message,\"Version_0_6029\",\"Version {0}\"),Insert_command_line_options_and_files_from_a_file:a(6030,e.DiagnosticCategory.Message,\"Insert_command_line_options_and_files_from_a_file_6030\",\"Insert command line options and files from a file.\"),Starting_compilation_in_watch_mode:a(6031,e.DiagnosticCategory.Message,\"Starting_compilation_in_watch_mode_6031\",\"Starting compilation in watch mode...\"),File_change_detected_Starting_incremental_compilation:a(6032,e.DiagnosticCategory.Message,\"File_change_detected_Starting_incremental_compilation_6032\",\"File change detected. Starting incremental compilation...\"),KIND:a(6034,e.DiagnosticCategory.Message,\"KIND_6034\",\"KIND\"),FILE:a(6035,e.DiagnosticCategory.Message,\"FILE_6035\",\"FILE\"),VERSION:a(6036,e.DiagnosticCategory.Message,\"VERSION_6036\",\"VERSION\"),LOCATION:a(6037,e.DiagnosticCategory.Message,\"LOCATION_6037\",\"LOCATION\"),DIRECTORY:a(6038,e.DiagnosticCategory.Message,\"DIRECTORY_6038\",\"DIRECTORY\"),STRATEGY:a(6039,e.DiagnosticCategory.Message,\"STRATEGY_6039\",\"STRATEGY\"),FILE_OR_DIRECTORY:a(6040,e.DiagnosticCategory.Message,\"FILE_OR_DIRECTORY_6040\",\"FILE OR DIRECTORY\"),Errors_Files:a(6041,e.DiagnosticCategory.Message,\"Errors_Files_6041\",\"Errors Files\"),Generates_corresponding_map_file:a(6043,e.DiagnosticCategory.Message,\"Generates_corresponding_map_file_6043\",\"Generates corresponding '.map' file.\"),Compiler_option_0_expects_an_argument:a(6044,e.DiagnosticCategory.Error,\"Compiler_option_0_expects_an_argument_6044\",\"Compiler option '{0}' expects an argument.\"),Unterminated_quoted_string_in_response_file_0:a(6045,e.DiagnosticCategory.Error,\"Unterminated_quoted_string_in_response_file_0_6045\",\"Unterminated quoted string in response file '{0}'.\"),Argument_for_0_option_must_be_Colon_1:a(6046,e.DiagnosticCategory.Error,\"Argument_for_0_option_must_be_Colon_1_6046\",\"Argument for '{0}' option must be: {1}.\"),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:a(6048,e.DiagnosticCategory.Error,\"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048\",\"Locale must be of the form or -. For example '{0}' or '{1}'.\"),Unable_to_open_file_0:a(6050,e.DiagnosticCategory.Error,\"Unable_to_open_file_0_6050\",\"Unable to open file '{0}'.\"),Corrupted_locale_file_0:a(6051,e.DiagnosticCategory.Error,\"Corrupted_locale_file_0_6051\",\"Corrupted locale file {0}.\"),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:a(6052,e.DiagnosticCategory.Message,\"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052\",\"Raise error on expressions and declarations with an implied 'any' type.\"),File_0_not_found:a(6053,e.DiagnosticCategory.Error,\"File_0_not_found_6053\",\"File '{0}' not found.\"),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:a(6054,e.DiagnosticCategory.Error,\"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054\",\"File '{0}' has an unsupported extension. The only supported extensions are {1}.\"),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:a(6055,e.DiagnosticCategory.Message,\"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055\",\"Suppress noImplicitAny errors for indexing objects lacking index signatures.\"),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:a(6056,e.DiagnosticCategory.Message,\"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056\",\"Do not emit declarations for code that has an '@internal' annotation.\"),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:a(6058,e.DiagnosticCategory.Message,\"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058\",\"Specify the root directory of input files. Use to control the output directory structure with --outDir.\"),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:a(6059,e.DiagnosticCategory.Error,\"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059\",\"File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.\"),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:a(6060,e.DiagnosticCategory.Message,\"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060\",\"Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\"),NEWLINE:a(6061,e.DiagnosticCategory.Message,\"NEWLINE_6061\",\"NEWLINE\"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:a(6064,e.DiagnosticCategory.Error,\"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064\",\"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.\"),Enables_experimental_support_for_ES7_decorators:a(6065,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_ES7_decorators_6065\",\"Enables experimental support for ES7 decorators.\"),Enables_experimental_support_for_emitting_type_metadata_for_decorators:a(6066,e.DiagnosticCategory.Message,\"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066\",\"Enables experimental support for emitting type metadata for decorators.\"),Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6:a(6069,e.DiagnosticCategory.Message,\"Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6_6069\",\"Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6).\"),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:a(6070,e.DiagnosticCategory.Message,\"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070\",\"Initializes a TypeScript project and creates a tsconfig.json file.\"),Successfully_created_a_tsconfig_json_file:a(6071,e.DiagnosticCategory.Message,\"Successfully_created_a_tsconfig_json_file_6071\",\"Successfully created a tsconfig.json file.\"),Suppress_excess_property_checks_for_object_literals:a(6072,e.DiagnosticCategory.Message,\"Suppress_excess_property_checks_for_object_literals_6072\",\"Suppress excess property checks for object literals.\"),Stylize_errors_and_messages_using_color_and_context_experimental:a(6073,e.DiagnosticCategory.Message,\"Stylize_errors_and_messages_using_color_and_context_experimental_6073\",\"Stylize errors and messages using color and context (experimental).\"),Do_not_report_errors_on_unused_labels:a(6074,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unused_labels_6074\",\"Do not report errors on unused labels.\"),Report_error_when_not_all_code_paths_in_function_return_a_value:a(6075,e.DiagnosticCategory.Message,\"Report_error_when_not_all_code_paths_in_function_return_a_value_6075\",\"Report error when not all code paths in function return a value.\"),Report_errors_for_fallthrough_cases_in_switch_statement:a(6076,e.DiagnosticCategory.Message,\"Report_errors_for_fallthrough_cases_in_switch_statement_6076\",\"Report errors for fallthrough cases in switch statement.\"),Do_not_report_errors_on_unreachable_code:a(6077,e.DiagnosticCategory.Message,\"Do_not_report_errors_on_unreachable_code_6077\",\"Do not report errors on unreachable code.\"),Disallow_inconsistently_cased_references_to_the_same_file:a(6078,e.DiagnosticCategory.Message,\"Disallow_inconsistently_cased_references_to_the_same_file_6078\",\"Disallow inconsistently-cased references to the same file.\"),Specify_library_files_to_be_included_in_the_compilation:a(6079,e.DiagnosticCategory.Message,\"Specify_library_files_to_be_included_in_the_compilation_6079\",\"Specify library files to be included in the compilation.\"),Specify_JSX_code_generation:a(6080,e.DiagnosticCategory.Message,\"Specify_JSX_code_generation_6080\",\"Specify JSX code generation.\"),File_0_has_an_unsupported_extension_so_skipping_it:a(6081,e.DiagnosticCategory.Message,\"File_0_has_an_unsupported_extension_so_skipping_it_6081\",\"File '{0}' has an unsupported extension, so skipping it.\"),Only_amd_and_system_modules_are_supported_alongside_0:a(6082,e.DiagnosticCategory.Error,\"Only_amd_and_system_modules_are_supported_alongside_0_6082\",\"Only 'amd' and 'system' modules are supported alongside --{0}.\"),Base_directory_to_resolve_non_absolute_module_names:a(6083,e.DiagnosticCategory.Message,\"Base_directory_to_resolve_non_absolute_module_names_6083\",\"Base directory to resolve non-absolute module names.\"),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:a(6084,e.DiagnosticCategory.Message,\"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084\",\"[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit\"),Enable_tracing_of_the_name_resolution_process:a(6085,e.DiagnosticCategory.Message,\"Enable_tracing_of_the_name_resolution_process_6085\",\"Enable tracing of the name resolution process.\"),Resolving_module_0_from_1:a(6086,e.DiagnosticCategory.Message,\"Resolving_module_0_from_1_6086\",\"======== Resolving module '{0}' from '{1}'. ========\"),Explicitly_specified_module_resolution_kind_Colon_0:a(6087,e.DiagnosticCategory.Message,\"Explicitly_specified_module_resolution_kind_Colon_0_6087\",\"Explicitly specified module resolution kind: '{0}'.\"),Module_resolution_kind_is_not_specified_using_0:a(6088,e.DiagnosticCategory.Message,\"Module_resolution_kind_is_not_specified_using_0_6088\",\"Module resolution kind is not specified, using '{0}'.\"),Module_name_0_was_successfully_resolved_to_1:a(6089,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_6089\",\"======== Module name '{0}' was successfully resolved to '{1}'. ========\"),Module_name_0_was_not_resolved:a(6090,e.DiagnosticCategory.Message,\"Module_name_0_was_not_resolved_6090\",\"======== Module name '{0}' was not resolved. ========\"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:a(6091,e.DiagnosticCategory.Message,\"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091\",\"'paths' option is specified, looking for a pattern to match module name '{0}'.\"),Module_name_0_matched_pattern_1:a(6092,e.DiagnosticCategory.Message,\"Module_name_0_matched_pattern_1_6092\",\"Module name '{0}', matched pattern '{1}'.\"),Trying_substitution_0_candidate_module_location_Colon_1:a(6093,e.DiagnosticCategory.Message,\"Trying_substitution_0_candidate_module_location_Colon_1_6093\",\"Trying substitution '{0}', candidate module location: '{1}'.\"),Resolving_module_name_0_relative_to_base_url_1_2:a(6094,e.DiagnosticCategory.Message,\"Resolving_module_name_0_relative_to_base_url_1_2_6094\",\"Resolving module name '{0}' relative to base url '{1}' - '{2}'.\"),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1:a(6095,e.DiagnosticCategory.Message,\"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1_6095\",\"Loading module as file / folder, candidate module location '{0}', target file type '{1}'.\"),File_0_does_not_exist:a(6096,e.DiagnosticCategory.Message,\"File_0_does_not_exist_6096\",\"File '{0}' does not exist.\"),File_0_exist_use_it_as_a_name_resolution_result:a(6097,e.DiagnosticCategory.Message,\"File_0_exist_use_it_as_a_name_resolution_result_6097\",\"File '{0}' exist - use it as a name resolution result.\"),Loading_module_0_from_node_modules_folder_target_file_type_1:a(6098,e.DiagnosticCategory.Message,\"Loading_module_0_from_node_modules_folder_target_file_type_1_6098\",\"Loading module '{0}' from 'node_modules' folder, target file type '{1}'.\"),Found_package_json_at_0:a(6099,e.DiagnosticCategory.Message,\"Found_package_json_at_0_6099\",\"Found 'package.json' at '{0}'.\"),package_json_does_not_have_a_0_field:a(6100,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_0_field_6100\",\"'package.json' does not have a '{0}' field.\"),package_json_has_0_field_1_that_references_2:a(6101,e.DiagnosticCategory.Message,\"package_json_has_0_field_1_that_references_2_6101\",\"'package.json' has '{0}' field '{1}' that references '{2}'.\"),Allow_javascript_files_to_be_compiled:a(6102,e.DiagnosticCategory.Message,\"Allow_javascript_files_to_be_compiled_6102\",\"Allow javascript files to be compiled.\"),Checking_if_0_is_the_longest_matching_prefix_for_1_2:a(6104,e.DiagnosticCategory.Message,\"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104\",\"Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.\"),Expected_type_of_0_field_in_package_json_to_be_1_got_2:a(6105,e.DiagnosticCategory.Message,\"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105\",\"Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.\"),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:a(6106,e.DiagnosticCategory.Message,\"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106\",\"'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.\"),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:a(6107,e.DiagnosticCategory.Message,\"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107\",\"'rootDirs' option is set, using it to resolve relative module name '{0}'.\"),Longest_matching_prefix_for_0_is_1:a(6108,e.DiagnosticCategory.Message,\"Longest_matching_prefix_for_0_is_1_6108\",\"Longest matching prefix for '{0}' is '{1}'.\"),Loading_0_from_the_root_dir_1_candidate_location_2:a(6109,e.DiagnosticCategory.Message,\"Loading_0_from_the_root_dir_1_candidate_location_2_6109\",\"Loading '{0}' from the root dir '{1}', candidate location '{2}'.\"),Trying_other_entries_in_rootDirs:a(6110,e.DiagnosticCategory.Message,\"Trying_other_entries_in_rootDirs_6110\",\"Trying other entries in 'rootDirs'.\"),Module_resolution_using_rootDirs_has_failed:a(6111,e.DiagnosticCategory.Message,\"Module_resolution_using_rootDirs_has_failed_6111\",\"Module resolution using 'rootDirs' has failed.\"),Do_not_emit_use_strict_directives_in_module_output:a(6112,e.DiagnosticCategory.Message,\"Do_not_emit_use_strict_directives_in_module_output_6112\",\"Do not emit 'use strict' directives in module output.\"),Enable_strict_null_checks:a(6113,e.DiagnosticCategory.Message,\"Enable_strict_null_checks_6113\",\"Enable strict null checks.\"),Unknown_option_excludes_Did_you_mean_exclude:a(6114,e.DiagnosticCategory.Error,\"Unknown_option_excludes_Did_you_mean_exclude_6114\",\"Unknown option 'excludes'. Did you mean 'exclude'?\"),Raise_error_on_this_expressions_with_an_implied_any_type:a(6115,e.DiagnosticCategory.Message,\"Raise_error_on_this_expressions_with_an_implied_any_type_6115\",\"Raise error on 'this' expressions with an implied 'any' type.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:a(6116,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:a(6119,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119\",\"======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========\"),Type_reference_directive_0_was_not_resolved:a(6120,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_not_resolved_6120\",\"======== Type reference directive '{0}' was not resolved. ========\"),Resolving_with_primary_search_path_0:a(6121,e.DiagnosticCategory.Message,\"Resolving_with_primary_search_path_0_6121\",\"Resolving with primary search path '{0}'.\"),Root_directory_cannot_be_determined_skipping_primary_search_paths:a(6122,e.DiagnosticCategory.Message,\"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122\",\"Root directory cannot be determined, skipping primary search paths.\"),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:a(6123,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123\",\"======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========\"),Type_declaration_files_to_be_included_in_compilation:a(6124,e.DiagnosticCategory.Message,\"Type_declaration_files_to_be_included_in_compilation_6124\",\"Type declaration files to be included in compilation.\"),Looking_up_in_node_modules_folder_initial_location_0:a(6125,e.DiagnosticCategory.Message,\"Looking_up_in_node_modules_folder_initial_location_0_6125\",\"Looking up in 'node_modules' folder, initial location '{0}'.\"),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:a(6126,e.DiagnosticCategory.Message,\"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126\",\"Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:a(6127,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127\",\"======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========\"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:a(6128,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128\",\"======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========\"),Resolving_real_path_for_0_result_1:a(6130,e.DiagnosticCategory.Message,\"Resolving_real_path_for_0_result_1_6130\",\"Resolving real path for '{0}', result '{1}'.\"),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:a(6131,e.DiagnosticCategory.Error,\"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131\",\"Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.\"),File_name_0_has_a_1_extension_stripping_it:a(6132,e.DiagnosticCategory.Message,\"File_name_0_has_a_1_extension_stripping_it_6132\",\"File name '{0}' has a '{1}' extension - stripping it.\"),_0_is_declared_but_its_value_is_never_read:a(6133,e.DiagnosticCategory.Error,\"_0_is_declared_but_its_value_is_never_read_6133\",\"'{0}' is declared but its value is never read.\",!0),Report_errors_on_unused_locals:a(6134,e.DiagnosticCategory.Message,\"Report_errors_on_unused_locals_6134\",\"Report errors on unused locals.\"),Report_errors_on_unused_parameters:a(6135,e.DiagnosticCategory.Message,\"Report_errors_on_unused_parameters_6135\",\"Report errors on unused parameters.\"),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:a(6136,e.DiagnosticCategory.Message,\"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136\",\"The maximum dependency depth to search under node_modules and load JavaScript files.\"),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:a(6137,e.DiagnosticCategory.Error,\"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137\",\"Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.\"),Property_0_is_declared_but_its_value_is_never_read:a(6138,e.DiagnosticCategory.Error,\"Property_0_is_declared_but_its_value_is_never_read_6138\",\"Property '{0}' is declared but its value is never read.\",!0),Import_emit_helpers_from_tslib:a(6139,e.DiagnosticCategory.Message,\"Import_emit_helpers_from_tslib_6139\",\"Import emit helpers from 'tslib'.\"),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:a(6140,e.DiagnosticCategory.Error,\"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140\",\"Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.\"),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:a(6141,e.DiagnosticCategory.Message,\"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141\",'Parse in strict mode and emit \"use strict\" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:a(6142,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142\",\"Module '{0}' was resolved to '{1}', but '--jsx' is not set.\"),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:a(6144,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144\",\"Module '{0}' was resolved as locally declared ambient module in file '{1}'.\"),Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified:a(6145,e.DiagnosticCategory.Message,\"Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145\",\"Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified.\"),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:a(6146,e.DiagnosticCategory.Message,\"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146\",\"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.\"),Resolution_for_module_0_was_found_in_cache_from_location_1:a(6147,e.DiagnosticCategory.Message,\"Resolution_for_module_0_was_found_in_cache_from_location_1_6147\",\"Resolution for module '{0}' was found in cache from location '{1}'.\"),Directory_0_does_not_exist_skipping_all_lookups_in_it:a(6148,e.DiagnosticCategory.Message,\"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148\",\"Directory '{0}' does not exist, skipping all lookups in it.\"),Show_diagnostic_information:a(6149,e.DiagnosticCategory.Message,\"Show_diagnostic_information_6149\",\"Show diagnostic information.\"),Show_verbose_diagnostic_information:a(6150,e.DiagnosticCategory.Message,\"Show_verbose_diagnostic_information_6150\",\"Show verbose diagnostic information.\"),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:a(6151,e.DiagnosticCategory.Message,\"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151\",\"Emit a single file with source maps instead of having a separate file.\"),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:a(6152,e.DiagnosticCategory.Message,\"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152\",\"Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.\"),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:a(6153,e.DiagnosticCategory.Message,\"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153\",\"Transpile each file as a separate module (similar to 'ts.transpileModule').\"),Print_names_of_generated_files_part_of_the_compilation:a(6154,e.DiagnosticCategory.Message,\"Print_names_of_generated_files_part_of_the_compilation_6154\",\"Print names of generated files part of the compilation.\"),Print_names_of_files_part_of_the_compilation:a(6155,e.DiagnosticCategory.Message,\"Print_names_of_files_part_of_the_compilation_6155\",\"Print names of files part of the compilation.\"),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:a(6156,e.DiagnosticCategory.Message,\"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156\",\"The locale used when displaying messages to the user (e.g. 'en-us')\"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:a(6157,e.DiagnosticCategory.Message,\"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157\",\"Do not generate custom helper functions like '__extends' in compiled output.\"),Do_not_include_the_default_library_file_lib_d_ts:a(6158,e.DiagnosticCategory.Message,\"Do_not_include_the_default_library_file_lib_d_ts_6158\",\"Do not include the default library file (lib.d.ts).\"),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:a(6159,e.DiagnosticCategory.Message,\"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159\",\"Do not add triple-slash references or imported modules to the list of compiled files.\"),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:a(6160,e.DiagnosticCategory.Message,\"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160\",\"[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.\"),List_of_folders_to_include_type_definitions_from:a(6161,e.DiagnosticCategory.Message,\"List_of_folders_to_include_type_definitions_from_6161\",\"List of folders to include type definitions from.\"),Disable_size_limitations_on_JavaScript_projects:a(6162,e.DiagnosticCategory.Message,\"Disable_size_limitations_on_JavaScript_projects_6162\",\"Disable size limitations on JavaScript projects.\"),The_character_set_of_the_input_files:a(6163,e.DiagnosticCategory.Message,\"The_character_set_of_the_input_files_6163\",\"The character set of the input files.\"),Do_not_truncate_error_messages:a(6165,e.DiagnosticCategory.Message,\"Do_not_truncate_error_messages_6165\",\"Do not truncate error messages.\"),Output_directory_for_generated_declaration_files:a(6166,e.DiagnosticCategory.Message,\"Output_directory_for_generated_declaration_files_6166\",\"Output directory for generated declaration files.\"),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:a(6167,e.DiagnosticCategory.Message,\"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167\",\"A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.\"),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:a(6168,e.DiagnosticCategory.Message,\"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168\",\"List of root folders whose combined content represents the structure of the project at runtime.\"),Show_all_compiler_options:a(6169,e.DiagnosticCategory.Message,\"Show_all_compiler_options_6169\",\"Show all compiler options.\"),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:a(6170,e.DiagnosticCategory.Message,\"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170\",\"[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file\"),Command_line_Options:a(6171,e.DiagnosticCategory.Message,\"Command_line_Options_6171\",\"Command-line Options\"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3:a(6179,e.DiagnosticCategory.Message,\"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179\",\"Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'.\"),Enable_all_strict_type_checking_options:a(6180,e.DiagnosticCategory.Message,\"Enable_all_strict_type_checking_options_6180\",\"Enable all strict type-checking options.\"),Scoped_package_detected_looking_in_0:a(6182,e.DiagnosticCategory.Message,\"Scoped_package_detected_looking_in_0_6182\",\"Scoped package detected, looking in '{0}'\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:a(6183,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:a(6184,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),Enable_strict_checking_of_function_types:a(6186,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_function_types_6186\",\"Enable strict checking of function types.\"),Enable_strict_checking_of_property_initialization_in_classes:a(6187,e.DiagnosticCategory.Message,\"Enable_strict_checking_of_property_initialization_in_classes_6187\",\"Enable strict checking of property initialization in classes.\"),Numeric_separators_are_not_allowed_here:a(6188,e.DiagnosticCategory.Error,\"Numeric_separators_are_not_allowed_here_6188\",\"Numeric separators are not allowed here.\"),Multiple_consecutive_numeric_separators_are_not_permitted:a(6189,e.DiagnosticCategory.Error,\"Multiple_consecutive_numeric_separators_are_not_permitted_6189\",\"Multiple consecutive numeric separators are not permitted.\"),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:a(6191,e.DiagnosticCategory.Message,\"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191\",\"Whether to keep outdated console output in watch mode instead of clearing the screen.\"),All_imports_in_import_declaration_are_unused:a(6192,e.DiagnosticCategory.Error,\"All_imports_in_import_declaration_are_unused_6192\",\"All imports in import declaration are unused.\",!0),Found_1_error_Watching_for_file_changes:a(6193,e.DiagnosticCategory.Message,\"Found_1_error_Watching_for_file_changes_6193\",\"Found 1 error. Watching for file changes.\"),Found_0_errors_Watching_for_file_changes:a(6194,e.DiagnosticCategory.Message,\"Found_0_errors_Watching_for_file_changes_6194\",\"Found {0} errors. Watching for file changes.\"),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:a(6195,e.DiagnosticCategory.Message,\"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195\",\"Resolve 'keyof' to string valued property names only (no numbers or symbols).\"),_0_is_declared_but_never_used:a(6196,e.DiagnosticCategory.Error,\"_0_is_declared_but_never_used_6196\",\"'{0}' is declared but never used.\",!0),Include_modules_imported_with_json_extension:a(6197,e.DiagnosticCategory.Message,\"Include_modules_imported_with_json_extension_6197\",\"Include modules imported with '.json' extension\"),All_destructured_elements_are_unused:a(6198,e.DiagnosticCategory.Error,\"All_destructured_elements_are_unused_6198\",\"All destructured elements are unused.\",!0),All_variables_are_unused:a(6199,e.DiagnosticCategory.Error,\"All_variables_are_unused_6199\",\"All variables are unused.\",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:a(6200,e.DiagnosticCategory.Error,\"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200\",\"Definitions of the following identifiers conflict with those in another file: {0}\"),Conflicts_are_in_this_file:a(6201,e.DiagnosticCategory.Message,\"Conflicts_are_in_this_file_6201\",\"Conflicts are in this file.\"),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:a(6202,e.DiagnosticCategory.Error,\"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202\",\"Project references may not form a circular graph. Cycle detected: {0}\"),_0_was_also_declared_here:a(6203,e.DiagnosticCategory.Message,\"_0_was_also_declared_here_6203\",\"'{0}' was also declared here.\"),and_here:a(6204,e.DiagnosticCategory.Message,\"and_here_6204\",\"and here.\"),All_type_parameters_are_unused:a(6205,e.DiagnosticCategory.Error,\"All_type_parameters_are_unused_6205\",\"All type parameters are unused.\"),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:a(6206,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206\",\"'package.json' has a 'typesVersions' field with version-specific path mappings.\"),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:a(6207,e.DiagnosticCategory.Message,\"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207\",\"'package.json' does not have a 'typesVersions' entry that matches version '{0}'.\"),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:a(6208,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208\",\"'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.\"),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:a(6209,e.DiagnosticCategory.Message,\"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209\",\"'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.\"),An_argument_for_0_was_not_provided:a(6210,e.DiagnosticCategory.Message,\"An_argument_for_0_was_not_provided_6210\",\"An argument for '{0}' was not provided.\"),An_argument_matching_this_binding_pattern_was_not_provided:a(6211,e.DiagnosticCategory.Message,\"An_argument_matching_this_binding_pattern_was_not_provided_6211\",\"An argument matching this binding pattern was not provided.\"),Did_you_mean_to_call_this_expression:a(6212,e.DiagnosticCategory.Message,\"Did_you_mean_to_call_this_expression_6212\",\"Did you mean to call this expression?\"),Did_you_mean_to_use_new_with_this_expression:a(6213,e.DiagnosticCategory.Message,\"Did_you_mean_to_use_new_with_this_expression_6213\",\"Did you mean to use 'new' with this expression?\"),Enable_strict_bind_call_and_apply_methods_on_functions:a(6214,e.DiagnosticCategory.Message,\"Enable_strict_bind_call_and_apply_methods_on_functions_6214\",\"Enable strict 'bind', 'call', and 'apply' methods on functions.\"),Using_compiler_options_of_project_reference_redirect_0:a(6215,e.DiagnosticCategory.Message,\"Using_compiler_options_of_project_reference_redirect_0_6215\",\"Using compiler options of project reference redirect '{0}'.\"),Found_1_error:a(6216,e.DiagnosticCategory.Message,\"Found_1_error_6216\",\"Found 1 error.\"),Found_0_errors:a(6217,e.DiagnosticCategory.Message,\"Found_0_errors_6217\",\"Found {0} errors.\"),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:a(6218,e.DiagnosticCategory.Message,\"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218\",\"======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========\"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:a(6219,e.DiagnosticCategory.Message,\"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219\",\"======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========\"),package_json_had_a_falsy_0_field:a(6220,e.DiagnosticCategory.Message,\"package_json_had_a_falsy_0_field_6220\",\"'package.json' had a falsy '{0}' field.\"),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:a(6221,e.DiagnosticCategory.Message,\"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221\",\"Disable use of source files instead of declaration files from referenced projects.\"),Emit_class_fields_with_Define_instead_of_Set:a(6222,e.DiagnosticCategory.Message,\"Emit_class_fields_with_Define_instead_of_Set_6222\",\"Emit class fields with Define instead of Set.\"),Generates_a_CPU_profile:a(6223,e.DiagnosticCategory.Message,\"Generates_a_CPU_profile_6223\",\"Generates a CPU profile.\"),Disable_solution_searching_for_this_project:a(6224,e.DiagnosticCategory.Message,\"Disable_solution_searching_for_this_project_6224\",\"Disable solution searching for this project.\"),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:a(6225,e.DiagnosticCategory.Message,\"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225\",\"Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.\"),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:a(6226,e.DiagnosticCategory.Message,\"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226\",\"Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.\"),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:a(6227,e.DiagnosticCategory.Message,\"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227\",\"Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.\"),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:a(6229,e.DiagnosticCategory.Error,\"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229\",\"Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.\"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:a(6230,e.DiagnosticCategory.Error,\"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230\",\"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.\"),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:a(6231,e.DiagnosticCategory.Error,\"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231\",\"Could not resolve the path '{0}' with the extensions: {1}.\"),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:a(6232,e.DiagnosticCategory.Error,\"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232\",\"Declaration augments declaration in another file. This cannot be serialized.\"),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:a(6233,e.DiagnosticCategory.Error,\"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233\",\"This is the declaration being augmented. Consider moving the augmenting declaration into the same file.\"),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:a(6234,e.DiagnosticCategory.Error,\"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234\",\"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?\"),Disable_loading_referenced_projects:a(6235,e.DiagnosticCategory.Message,\"Disable_loading_referenced_projects_6235\",\"Disable loading referenced projects.\"),Arguments_for_the_rest_parameter_0_were_not_provided:a(6236,e.DiagnosticCategory.Error,\"Arguments_for_the_rest_parameter_0_were_not_provided_6236\",\"Arguments for the rest parameter '{0}' were not provided.\"),Generates_an_event_trace_and_a_list_of_types:a(6237,e.DiagnosticCategory.Message,\"Generates_an_event_trace_and_a_list_of_types_6237\",\"Generates an event trace and a list of types.\"),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:a(6238,e.DiagnosticCategory.Error,\"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238\",\"Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react\"),File_0_exists_according_to_earlier_cached_lookups:a(6239,e.DiagnosticCategory.Message,\"File_0_exists_according_to_earlier_cached_lookups_6239\",\"File '{0}' exists according to earlier cached lookups.\"),File_0_does_not_exist_according_to_earlier_cached_lookups:a(6240,e.DiagnosticCategory.Message,\"File_0_does_not_exist_according_to_earlier_cached_lookups_6240\",\"File '{0}' does not exist according to earlier cached lookups.\"),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:a(6241,e.DiagnosticCategory.Message,\"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241\",\"Resolution for type reference directive '{0}' was found in cache from location '{1}'.\"),Resolving_type_reference_directive_0_containing_file_1:a(6242,e.DiagnosticCategory.Message,\"Resolving_type_reference_directive_0_containing_file_1_6242\",\"======== Resolving type reference directive '{0}', containing file '{1}'. ========\"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:a(6243,e.DiagnosticCategory.Message,\"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243\",\"Interpret optional property types as written, rather than adding 'undefined'.\"),Modules:a(6244,e.DiagnosticCategory.Message,\"Modules_6244\",\"Modules\"),File_Management:a(6245,e.DiagnosticCategory.Message,\"File_Management_6245\",\"File Management\"),Emit:a(6246,e.DiagnosticCategory.Message,\"Emit_6246\",\"Emit\"),JavaScript_Support:a(6247,e.DiagnosticCategory.Message,\"JavaScript_Support_6247\",\"JavaScript Support\"),Type_Checking:a(6248,e.DiagnosticCategory.Message,\"Type_Checking_6248\",\"Type Checking\"),Editor_Support:a(6249,e.DiagnosticCategory.Message,\"Editor_Support_6249\",\"Editor Support\"),Watch_and_Build_Modes:a(6250,e.DiagnosticCategory.Message,\"Watch_and_Build_Modes_6250\",\"Watch and Build Modes\"),Compiler_Diagnostics:a(6251,e.DiagnosticCategory.Message,\"Compiler_Diagnostics_6251\",\"Compiler Diagnostics\"),Interop_Constraints:a(6252,e.DiagnosticCategory.Message,\"Interop_Constraints_6252\",\"Interop Constraints\"),Backwards_Compatibility:a(6253,e.DiagnosticCategory.Message,\"Backwards_Compatibility_6253\",\"Backwards Compatibility\"),Language_and_Environment:a(6254,e.DiagnosticCategory.Message,\"Language_and_Environment_6254\",\"Language and Environment\"),Projects:a(6255,e.DiagnosticCategory.Message,\"Projects_6255\",\"Projects\"),Output_Formatting:a(6256,e.DiagnosticCategory.Message,\"Output_Formatting_6256\",\"Output Formatting\"),Completeness:a(6257,e.DiagnosticCategory.Message,\"Completeness_6257\",\"Completeness\"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:a(6258,e.DiagnosticCategory.Error,\"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258\",\"'{0}' should be set inside the 'compilerOptions' object of the config json file\"),Found_1_error_in_1:a(6259,e.DiagnosticCategory.Message,\"Found_1_error_in_1_6259\",\"Found 1 error in {1}\"),Found_0_errors_in_the_same_file_starting_at_Colon_1:a(6260,e.DiagnosticCategory.Message,\"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260\",\"Found {0} errors in the same file, starting at: {1}\"),Found_0_errors_in_1_files:a(6261,e.DiagnosticCategory.Message,\"Found_0_errors_in_1_files_6261\",\"Found {0} errors in {1} files.\"),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:a(6270,e.DiagnosticCategory.Message,\"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270\",\"Directory '{0}' has no containing package.json scope. Imports will not resolve.\"),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6271,e.DiagnosticCategory.Message,\"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271\",\"Import specifier '{0}' does not exist in package.json scope at path '{1}'.\"),Invalid_import_specifier_0_has_no_possible_resolutions:a(6272,e.DiagnosticCategory.Message,\"Invalid_import_specifier_0_has_no_possible_resolutions_6272\",\"Invalid import specifier '{0}' has no possible resolutions.\"),package_json_scope_0_has_no_imports_defined:a(6273,e.DiagnosticCategory.Message,\"package_json_scope_0_has_no_imports_defined_6273\",\"package.json scope '{0}' has no imports defined.\"),package_json_scope_0_explicitly_maps_specifier_1_to_null:a(6274,e.DiagnosticCategory.Message,\"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274\",\"package.json scope '{0}' explicitly maps specifier '{1}' to null.\"),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:a(6275,e.DiagnosticCategory.Message,\"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275\",\"package.json scope '{0}' has invalid type for target of specifier '{1}'\"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:a(6276,e.DiagnosticCategory.Message,\"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276\",\"Export specifier '{0}' does not exist in package.json scope at path '{1}'.\"),Enable_project_compilation:a(6302,e.DiagnosticCategory.Message,\"Enable_project_compilation_6302\",\"Enable project compilation\"),Composite_projects_may_not_disable_declaration_emit:a(6304,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_declaration_emit_6304\",\"Composite projects may not disable declaration emit.\"),Output_file_0_has_not_been_built_from_source_file_1:a(6305,e.DiagnosticCategory.Error,\"Output_file_0_has_not_been_built_from_source_file_1_6305\",\"Output file '{0}' has not been built from source file '{1}'.\"),Referenced_project_0_must_have_setting_composite_Colon_true:a(6306,e.DiagnosticCategory.Error,\"Referenced_project_0_must_have_setting_composite_Colon_true_6306\",`Referenced project '{0}' must have setting \"composite\": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:a(6307,e.DiagnosticCategory.Error,\"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307\",\"File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.\"),Cannot_prepend_project_0_because_it_does_not_have_outFile_set:a(6308,e.DiagnosticCategory.Error,\"Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308\",\"Cannot prepend project '{0}' because it does not have 'outFile' set\"),Output_file_0_from_project_1_does_not_exist:a(6309,e.DiagnosticCategory.Error,\"Output_file_0_from_project_1_does_not_exist_6309\",\"Output file '{0}' from project '{1}' does not exist\"),Referenced_project_0_may_not_disable_emit:a(6310,e.DiagnosticCategory.Error,\"Referenced_project_0_may_not_disable_emit_6310\",\"Referenced project '{0}' may not disable emit.\"),Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2:a(6350,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2_6350\",\"Project '{0}' is out of date because oldest output '{1}' is older than newest input '{2}'\"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2:a(6351,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2_6351\",\"Project '{0}' is up to date because newest input '{1}' is older than oldest output '{2}'\"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:a(6352,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352\",\"Project '{0}' is out of date because output file '{1}' does not exist\"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:a(6353,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353\",\"Project '{0}' is out of date because its dependency '{1}' is out of date\"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:a(6354,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354\",\"Project '{0}' is up to date with .d.ts files from its dependencies\"),Projects_in_this_build_Colon_0:a(6355,e.DiagnosticCategory.Message,\"Projects_in_this_build_Colon_0_6355\",\"Projects in this build: {0}\"),A_non_dry_build_would_delete_the_following_files_Colon_0:a(6356,e.DiagnosticCategory.Message,\"A_non_dry_build_would_delete_the_following_files_Colon_0_6356\",\"A non-dry build would delete the following files: {0}\"),A_non_dry_build_would_build_project_0:a(6357,e.DiagnosticCategory.Message,\"A_non_dry_build_would_build_project_0_6357\",\"A non-dry build would build project '{0}'\"),Building_project_0:a(6358,e.DiagnosticCategory.Message,\"Building_project_0_6358\",\"Building project '{0}'...\"),Updating_output_timestamps_of_project_0:a(6359,e.DiagnosticCategory.Message,\"Updating_output_timestamps_of_project_0_6359\",\"Updating output timestamps of project '{0}'...\"),Project_0_is_up_to_date:a(6361,e.DiagnosticCategory.Message,\"Project_0_is_up_to_date_6361\",\"Project '{0}' is up to date\"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:a(6362,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362\",\"Skipping build of project '{0}' because its dependency '{1}' has errors\"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:a(6363,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363\",\"Project '{0}' can't be built because its dependency '{1}' has errors\"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:a(6364,e.DiagnosticCategory.Message,\"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364\",\"Build one or more projects and their dependencies, if out of date\"),Delete_the_outputs_of_all_projects:a(6365,e.DiagnosticCategory.Message,\"Delete_the_outputs_of_all_projects_6365\",\"Delete the outputs of all projects.\"),Show_what_would_be_built_or_deleted_if_specified_with_clean:a(6367,e.DiagnosticCategory.Message,\"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367\",\"Show what would be built (or deleted, if specified with '--clean')\"),Option_build_must_be_the_first_command_line_argument:a(6369,e.DiagnosticCategory.Error,\"Option_build_must_be_the_first_command_line_argument_6369\",\"Option '--build' must be the first command line argument.\"),Options_0_and_1_cannot_be_combined:a(6370,e.DiagnosticCategory.Error,\"Options_0_and_1_cannot_be_combined_6370\",\"Options '{0}' and '{1}' cannot be combined.\"),Updating_unchanged_output_timestamps_of_project_0:a(6371,e.DiagnosticCategory.Message,\"Updating_unchanged_output_timestamps_of_project_0_6371\",\"Updating unchanged output timestamps of project '{0}'...\"),Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed:a(6372,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372\",\"Project '{0}' is out of date because output of its dependency '{1}' has changed\"),Updating_output_of_project_0:a(6373,e.DiagnosticCategory.Message,\"Updating_output_of_project_0_6373\",\"Updating output of project '{0}'...\"),A_non_dry_build_would_update_timestamps_for_output_of_project_0:a(6374,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374\",\"A non-dry build would update timestamps for output of project '{0}'\"),A_non_dry_build_would_update_output_of_project_0:a(6375,e.DiagnosticCategory.Message,\"A_non_dry_build_would_update_output_of_project_0_6375\",\"A non-dry build would update output of project '{0}'\"),Cannot_update_output_of_project_0_because_there_was_error_reading_file_1:a(6376,e.DiagnosticCategory.Message,\"Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376\",\"Cannot update output of project '{0}' because there was error reading file '{1}'\"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:a(6377,e.DiagnosticCategory.Error,\"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377\",\"Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'\"),Composite_projects_may_not_disable_incremental_compilation:a(6379,e.DiagnosticCategory.Error,\"Composite_projects_may_not_disable_incremental_compilation_6379\",\"Composite projects may not disable incremental compilation.\"),Specify_file_to_store_incremental_compilation_information:a(6380,e.DiagnosticCategory.Message,\"Specify_file_to_store_incremental_compilation_information_6380\",\"Specify file to store incremental compilation information\"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:a(6381,e.DiagnosticCategory.Message,\"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381\",\"Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'\"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:a(6382,e.DiagnosticCategory.Message,\"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382\",\"Skipping build of project '{0}' because its dependency '{1}' was not built\"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:a(6383,e.DiagnosticCategory.Message,\"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383\",\"Project '{0}' can't be built because its dependency '{1}' was not built\"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:a(6384,e.DiagnosticCategory.Message,\"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384\",\"Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.\"),_0_is_deprecated:a(6385,e.DiagnosticCategory.Suggestion,\"_0_is_deprecated_6385\",\"'{0}' is deprecated.\",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:a(6386,e.DiagnosticCategory.Message,\"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386\",\"Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.\"),The_signature_0_of_1_is_deprecated:a(6387,e.DiagnosticCategory.Suggestion,\"The_signature_0_of_1_is_deprecated_6387\",\"The signature '{0}' of '{1}' is deprecated.\",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:a(6388,e.DiagnosticCategory.Message,\"Project_0_is_being_forcibly_rebuilt_6388\",\"Project '{0}' is being forcibly rebuilt\"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:a(6389,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389\",\"Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:a(6390,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:a(6391,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:a(6392,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392\",\"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:a(6393,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:a(6394,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:a(6395,e.DiagnosticCategory.Message,\"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395\",\"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:a(6396,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:a(6397,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:a(6398,e.DiagnosticCategory.Message,\"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398\",\"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:a(6500,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500\",\"The expected type comes from property '{0}' which is declared here on type '{1}'\"),The_expected_type_comes_from_this_index_signature:a(6501,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_this_index_signature_6501\",\"The expected type comes from this index signature.\"),The_expected_type_comes_from_the_return_type_of_this_signature:a(6502,e.DiagnosticCategory.Message,\"The_expected_type_comes_from_the_return_type_of_this_signature_6502\",\"The expected type comes from the return type of this signature.\"),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:a(6503,e.DiagnosticCategory.Message,\"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503\",\"Print names of files that are part of the compilation and then stop processing.\"),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:a(6504,e.DiagnosticCategory.Error,\"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504\",\"File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?\"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:a(6505,e.DiagnosticCategory.Message,\"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505\",\"Print names of files and the reason they are part of the compilation.\"),Consider_adding_a_declare_modifier_to_this_class:a(6506,e.DiagnosticCategory.Message,\"Consider_adding_a_declare_modifier_to_this_class_6506\",\"Consider adding a 'declare' modifier to this class.\"),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:a(6600,e.DiagnosticCategory.Message,\"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600\",\"Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files.\"),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:a(6601,e.DiagnosticCategory.Message,\"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601\",\"Allow 'import x from y' when a module doesn't have a default export.\"),Allow_accessing_UMD_globals_from_modules:a(6602,e.DiagnosticCategory.Message,\"Allow_accessing_UMD_globals_from_modules_6602\",\"Allow accessing UMD globals from modules.\"),Disable_error_reporting_for_unreachable_code:a(6603,e.DiagnosticCategory.Message,\"Disable_error_reporting_for_unreachable_code_6603\",\"Disable error reporting for unreachable code.\"),Disable_error_reporting_for_unused_labels:a(6604,e.DiagnosticCategory.Message,\"Disable_error_reporting_for_unused_labels_6604\",\"Disable error reporting for unused labels.\"),Ensure_use_strict_is_always_emitted:a(6605,e.DiagnosticCategory.Message,\"Ensure_use_strict_is_always_emitted_6605\",\"Ensure 'use strict' is always emitted.\"),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:a(6606,e.DiagnosticCategory.Message,\"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606\",\"Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.\"),Specify_the_base_directory_to_resolve_non_relative_module_names:a(6607,e.DiagnosticCategory.Message,\"Specify_the_base_directory_to_resolve_non_relative_module_names_6607\",\"Specify the base directory to resolve non-relative module names.\"),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:a(6608,e.DiagnosticCategory.Message,\"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608\",\"No longer supported. In early versions, manually set the text encoding for reading files.\"),Enable_error_reporting_in_type_checked_JavaScript_files:a(6609,e.DiagnosticCategory.Message,\"Enable_error_reporting_in_type_checked_JavaScript_files_6609\",\"Enable error reporting in type-checked JavaScript files.\"),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:a(6611,e.DiagnosticCategory.Message,\"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611\",\"Enable constraints that allow a TypeScript project to be used with project references.\"),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:a(6612,e.DiagnosticCategory.Message,\"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612\",\"Generate .d.ts files from TypeScript and JavaScript files in your project.\"),Specify_the_output_directory_for_generated_declaration_files:a(6613,e.DiagnosticCategory.Message,\"Specify_the_output_directory_for_generated_declaration_files_6613\",\"Specify the output directory for generated declaration files.\"),Create_sourcemaps_for_d_ts_files:a(6614,e.DiagnosticCategory.Message,\"Create_sourcemaps_for_d_ts_files_6614\",\"Create sourcemaps for d.ts files.\"),Output_compiler_performance_information_after_building:a(6615,e.DiagnosticCategory.Message,\"Output_compiler_performance_information_after_building_6615\",\"Output compiler performance information after building.\"),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:a(6616,e.DiagnosticCategory.Message,\"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616\",\"Disables inference for type acquisition by looking at filenames in a project.\"),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:a(6617,e.DiagnosticCategory.Message,\"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617\",\"Reduce the number of projects loaded automatically by TypeScript.\"),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:a(6618,e.DiagnosticCategory.Message,\"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618\",\"Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\"),Opt_a_project_out_of_multi_project_reference_checking_when_editing:a(6619,e.DiagnosticCategory.Message,\"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619\",\"Opt a project out of multi-project reference checking when editing.\"),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:a(6620,e.DiagnosticCategory.Message,\"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620\",\"Disable preferring source files instead of declaration files when referencing composite projects.\"),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:a(6621,e.DiagnosticCategory.Message,\"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621\",\"Emit more compliant, but verbose and less performant JavaScript for iteration.\"),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:a(6622,e.DiagnosticCategory.Message,\"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622\",\"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\"),Only_output_d_ts_files_and_not_JavaScript_files:a(6623,e.DiagnosticCategory.Message,\"Only_output_d_ts_files_and_not_JavaScript_files_6623\",\"Only output d.ts files and not JavaScript files.\"),Emit_design_type_metadata_for_decorated_declarations_in_source_files:a(6624,e.DiagnosticCategory.Message,\"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624\",\"Emit design-type metadata for decorated declarations in source files.\"),Disable_the_type_acquisition_for_JavaScript_projects:a(6625,e.DiagnosticCategory.Message,\"Disable_the_type_acquisition_for_JavaScript_projects_6625\",\"Disable the type acquisition for JavaScript projects\"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:a(6626,e.DiagnosticCategory.Message,\"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626\",\"Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.\"),Filters_results_from_the_include_option:a(6627,e.DiagnosticCategory.Message,\"Filters_results_from_the_include_option_6627\",\"Filters results from the `include` option.\"),Remove_a_list_of_directories_from_the_watch_process:a(6628,e.DiagnosticCategory.Message,\"Remove_a_list_of_directories_from_the_watch_process_6628\",\"Remove a list of directories from the watch process.\"),Remove_a_list_of_files_from_the_watch_mode_s_processing:a(6629,e.DiagnosticCategory.Message,\"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629\",\"Remove a list of files from the watch mode's processing.\"),Enable_experimental_support_for_TC39_stage_2_draft_decorators:a(6630,e.DiagnosticCategory.Message,\"Enable_experimental_support_for_TC39_stage_2_draft_decorators_6630\",\"Enable experimental support for TC39 stage 2 draft decorators.\"),Print_files_read_during_the_compilation_including_why_it_was_included:a(6631,e.DiagnosticCategory.Message,\"Print_files_read_during_the_compilation_including_why_it_was_included_6631\",\"Print files read during the compilation including why it was included.\"),Output_more_detailed_compiler_performance_information_after_building:a(6632,e.DiagnosticCategory.Message,\"Output_more_detailed_compiler_performance_information_after_building_6632\",\"Output more detailed compiler performance information after building.\"),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:a(6633,e.DiagnosticCategory.Message,\"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633\",\"Specify one or more path or node module references to base configuration files from which settings are inherited.\"),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:a(6634,e.DiagnosticCategory.Message,\"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634\",\"Specify what approach the watcher should use if the system runs out of native file watchers.\"),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:a(6635,e.DiagnosticCategory.Message,\"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635\",\"Include a list of files. This does not support glob patterns, as opposed to `include`.\"),Build_all_projects_including_those_that_appear_to_be_up_to_date:a(6636,e.DiagnosticCategory.Message,\"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636\",\"Build all projects, including those that appear to be up to date.\"),Ensure_that_casing_is_correct_in_imports:a(6637,e.DiagnosticCategory.Message,\"Ensure_that_casing_is_correct_in_imports_6637\",\"Ensure that casing is correct in imports.\"),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:a(6638,e.DiagnosticCategory.Message,\"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638\",\"Emit a v8 CPU profile of the compiler run for debugging.\"),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:a(6639,e.DiagnosticCategory.Message,\"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639\",\"Allow importing helper functions from tslib once per project, instead of including them per-file.\"),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:a(6641,e.DiagnosticCategory.Message,\"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641\",\"Specify a list of glob patterns that match files to be included in compilation.\"),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:a(6642,e.DiagnosticCategory.Message,\"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642\",\"Save .tsbuildinfo files to allow for incremental compilation of projects.\"),Include_sourcemap_files_inside_the_emitted_JavaScript:a(6643,e.DiagnosticCategory.Message,\"Include_sourcemap_files_inside_the_emitted_JavaScript_6643\",\"Include sourcemap files inside the emitted JavaScript.\"),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:a(6644,e.DiagnosticCategory.Message,\"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644\",\"Include source code in the sourcemaps inside the emitted JavaScript.\"),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:a(6645,e.DiagnosticCategory.Message,\"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645\",\"Ensure that each file can be safely transpiled without relying on other imports.\"),Specify_what_JSX_code_is_generated:a(6646,e.DiagnosticCategory.Message,\"Specify_what_JSX_code_is_generated_6646\",\"Specify what JSX code is generated.\"),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:a(6647,e.DiagnosticCategory.Message,\"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647\",\"Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.\"),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:a(6648,e.DiagnosticCategory.Message,\"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648\",\"Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\"),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:a(6649,e.DiagnosticCategory.Message,\"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649\",\"Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.\"),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:a(6650,e.DiagnosticCategory.Message,\"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650\",\"Make keyof only return strings instead of string, numbers or symbols. Legacy option.\"),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:a(6651,e.DiagnosticCategory.Message,\"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651\",\"Specify a set of bundled library declaration files that describe the target runtime environment.\"),Print_the_names_of_emitted_files_after_a_compilation:a(6652,e.DiagnosticCategory.Message,\"Print_the_names_of_emitted_files_after_a_compilation_6652\",\"Print the names of emitted files after a compilation.\"),Print_all_of_the_files_read_during_the_compilation:a(6653,e.DiagnosticCategory.Message,\"Print_all_of_the_files_read_during_the_compilation_6653\",\"Print all of the files read during the compilation.\"),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:a(6654,e.DiagnosticCategory.Message,\"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654\",\"Set the language of the messaging from TypeScript. This does not affect emit.\"),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:a(6655,e.DiagnosticCategory.Message,\"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655\",\"Specify the location where debugger should locate map files instead of generated locations.\"),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:a(6656,e.DiagnosticCategory.Message,\"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656\",\"Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.\"),Specify_what_module_code_is_generated:a(6657,e.DiagnosticCategory.Message,\"Specify_what_module_code_is_generated_6657\",\"Specify what module code is generated.\"),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:a(6658,e.DiagnosticCategory.Message,\"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658\",\"Specify how TypeScript looks up a file from a given module specifier.\"),Set_the_newline_character_for_emitting_files:a(6659,e.DiagnosticCategory.Message,\"Set_the_newline_character_for_emitting_files_6659\",\"Set the newline character for emitting files.\"),Disable_emitting_files_from_a_compilation:a(6660,e.DiagnosticCategory.Message,\"Disable_emitting_files_from_a_compilation_6660\",\"Disable emitting files from a compilation.\"),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:a(6661,e.DiagnosticCategory.Message,\"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661\",\"Disable generating custom helper functions like '__extends' in compiled output.\"),Disable_emitting_files_if_any_type_checking_errors_are_reported:a(6662,e.DiagnosticCategory.Message,\"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662\",\"Disable emitting files if any type checking errors are reported.\"),Disable_truncating_types_in_error_messages:a(6663,e.DiagnosticCategory.Message,\"Disable_truncating_types_in_error_messages_6663\",\"Disable truncating types in error messages.\"),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:a(6664,e.DiagnosticCategory.Message,\"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664\",\"Enable error reporting for fallthrough cases in switch statements.\"),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:a(6665,e.DiagnosticCategory.Message,\"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665\",\"Enable error reporting for expressions and declarations with an implied 'any' type.\"),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:a(6666,e.DiagnosticCategory.Message,\"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666\",\"Ensure overriding members in derived classes are marked with an override modifier.\"),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:a(6667,e.DiagnosticCategory.Message,\"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667\",\"Enable error reporting for codepaths that do not explicitly return in a function.\"),Enable_error_reporting_when_this_is_given_the_type_any:a(6668,e.DiagnosticCategory.Message,\"Enable_error_reporting_when_this_is_given_the_type_any_6668\",\"Enable error reporting when 'this' is given the type 'any'.\"),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:a(6669,e.DiagnosticCategory.Message,\"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669\",\"Disable adding 'use strict' directives in emitted JavaScript files.\"),Disable_including_any_library_files_including_the_default_lib_d_ts:a(6670,e.DiagnosticCategory.Message,\"Disable_including_any_library_files_including_the_default_lib_d_ts_6670\",\"Disable including any library files, including the default lib.d.ts.\"),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:a(6671,e.DiagnosticCategory.Message,\"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671\",\"Enforces using indexed accessors for keys declared using an indexed type.\"),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:a(6672,e.DiagnosticCategory.Message,\"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672\",\"Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.\"),Disable_strict_checking_of_generic_signatures_in_function_types:a(6673,e.DiagnosticCategory.Message,\"Disable_strict_checking_of_generic_signatures_in_function_types_6673\",\"Disable strict checking of generic signatures in function types.\"),Add_undefined_to_a_type_when_accessed_using_an_index:a(6674,e.DiagnosticCategory.Message,\"Add_undefined_to_a_type_when_accessed_using_an_index_6674\",\"Add 'undefined' to a type when accessed using an index.\"),Enable_error_reporting_when_local_variables_aren_t_read:a(6675,e.DiagnosticCategory.Message,\"Enable_error_reporting_when_local_variables_aren_t_read_6675\",\"Enable error reporting when local variables aren't read.\"),Raise_an_error_when_a_function_parameter_isn_t_read:a(6676,e.DiagnosticCategory.Message,\"Raise_an_error_when_a_function_parameter_isn_t_read_6676\",\"Raise an error when a function parameter isn't read.\"),Deprecated_setting_Use_outFile_instead:a(6677,e.DiagnosticCategory.Message,\"Deprecated_setting_Use_outFile_instead_6677\",\"Deprecated setting. Use 'outFile' instead.\"),Specify_an_output_folder_for_all_emitted_files:a(6678,e.DiagnosticCategory.Message,\"Specify_an_output_folder_for_all_emitted_files_6678\",\"Specify an output folder for all emitted files.\"),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:a(6679,e.DiagnosticCategory.Message,\"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679\",\"Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.\"),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:a(6680,e.DiagnosticCategory.Message,\"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680\",\"Specify a set of entries that re-map imports to additional lookup locations.\"),Specify_a_list_of_language_service_plugins_to_include:a(6681,e.DiagnosticCategory.Message,\"Specify_a_list_of_language_service_plugins_to_include_6681\",\"Specify a list of language service plugins to include.\"),Disable_erasing_const_enum_declarations_in_generated_code:a(6682,e.DiagnosticCategory.Message,\"Disable_erasing_const_enum_declarations_in_generated_code_6682\",\"Disable erasing 'const enum' declarations in generated code.\"),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:a(6683,e.DiagnosticCategory.Message,\"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683\",\"Disable resolving symlinks to their realpath. This correlates to the same flag in node.\"),Disable_wiping_the_console_in_watch_mode:a(6684,e.DiagnosticCategory.Message,\"Disable_wiping_the_console_in_watch_mode_6684\",\"Disable wiping the console in watch mode.\"),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:a(6685,e.DiagnosticCategory.Message,\"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685\",\"Enable color and formatting in TypeScript's output to make compiler errors easier to read.\"),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:a(6686,e.DiagnosticCategory.Message,\"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686\",\"Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.\"),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:a(6687,e.DiagnosticCategory.Message,\"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687\",\"Specify an array of objects that specify paths for projects. Used in project references.\"),Disable_emitting_comments:a(6688,e.DiagnosticCategory.Message,\"Disable_emitting_comments_6688\",\"Disable emitting comments.\"),Enable_importing_json_files:a(6689,e.DiagnosticCategory.Message,\"Enable_importing_json_files_6689\",\"Enable importing .json files.\"),Specify_the_root_folder_within_your_source_files:a(6690,e.DiagnosticCategory.Message,\"Specify_the_root_folder_within_your_source_files_6690\",\"Specify the root folder within your source files.\"),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:a(6691,e.DiagnosticCategory.Message,\"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691\",\"Allow multiple folders to be treated as one when resolving modules.\"),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:a(6692,e.DiagnosticCategory.Message,\"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692\",\"Skip type checking .d.ts files that are included with TypeScript.\"),Skip_type_checking_all_d_ts_files:a(6693,e.DiagnosticCategory.Message,\"Skip_type_checking_all_d_ts_files_6693\",\"Skip type checking all .d.ts files.\"),Create_source_map_files_for_emitted_JavaScript_files:a(6694,e.DiagnosticCategory.Message,\"Create_source_map_files_for_emitted_JavaScript_files_6694\",\"Create source map files for emitted JavaScript files.\"),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:a(6695,e.DiagnosticCategory.Message,\"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695\",\"Specify the root path for debuggers to find the reference source code.\"),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:a(6697,e.DiagnosticCategory.Message,\"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697\",\"Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.\"),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:a(6698,e.DiagnosticCategory.Message,\"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698\",\"When assigning functions, check to ensure parameters and the return values are subtype-compatible.\"),When_type_checking_take_into_account_null_and_undefined:a(6699,e.DiagnosticCategory.Message,\"When_type_checking_take_into_account_null_and_undefined_6699\",\"When type checking, take into account 'null' and 'undefined'.\"),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:a(6700,e.DiagnosticCategory.Message,\"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700\",\"Check for class properties that are declared but not set in the constructor.\"),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:a(6701,e.DiagnosticCategory.Message,\"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701\",\"Disable emitting declarations that have '@internal' in their JSDoc comments.\"),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:a(6702,e.DiagnosticCategory.Message,\"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702\",\"Disable reporting of excess property errors during the creation of object literals.\"),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:a(6703,e.DiagnosticCategory.Message,\"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703\",\"Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.\"),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:a(6704,e.DiagnosticCategory.Message,\"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704\",\"Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\"),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:a(6705,e.DiagnosticCategory.Message,\"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705\",\"Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\"),Log_paths_used_during_the_moduleResolution_process:a(6706,e.DiagnosticCategory.Message,\"Log_paths_used_during_the_moduleResolution_process_6706\",\"Log paths used during the 'moduleResolution' process.\"),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:a(6707,e.DiagnosticCategory.Message,\"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707\",\"Specify the path to .tsbuildinfo incremental compilation file.\"),Specify_options_for_automatic_acquisition_of_declaration_files:a(6709,e.DiagnosticCategory.Message,\"Specify_options_for_automatic_acquisition_of_declaration_files_6709\",\"Specify options for automatic acquisition of declaration files.\"),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:a(6710,e.DiagnosticCategory.Message,\"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710\",\"Specify multiple folders that act like './node_modules/@types'.\"),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:a(6711,e.DiagnosticCategory.Message,\"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711\",\"Specify type package names to be included without being referenced in a source file.\"),Emit_ECMAScript_standard_compliant_class_fields:a(6712,e.DiagnosticCategory.Message,\"Emit_ECMAScript_standard_compliant_class_fields_6712\",\"Emit ECMAScript-standard-compliant class fields.\"),Enable_verbose_logging:a(6713,e.DiagnosticCategory.Message,\"Enable_verbose_logging_6713\",\"Enable verbose logging.\"),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:a(6714,e.DiagnosticCategory.Message,\"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714\",\"Specify how directories are watched on systems that lack recursive file-watching functionality.\"),Specify_how_the_TypeScript_watch_mode_works:a(6715,e.DiagnosticCategory.Message,\"Specify_how_the_TypeScript_watch_mode_works_6715\",\"Specify how the TypeScript watch mode works.\"),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:a(6717,e.DiagnosticCategory.Message,\"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717\",\"Require undeclared properties from index signatures to use element accesses.\"),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:a(6718,e.DiagnosticCategory.Message,\"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718\",\"Specify emit/checking behavior for imports that are only used for types.\"),Default_catch_clause_variables_as_unknown_instead_of_any:a(6803,e.DiagnosticCategory.Message,\"Default_catch_clause_variables_as_unknown_instead_of_any_6803\",\"Default catch clause variables as 'unknown' instead of 'any'.\"),one_of_Colon:a(6900,e.DiagnosticCategory.Message,\"one_of_Colon_6900\",\"one of:\"),one_or_more_Colon:a(6901,e.DiagnosticCategory.Message,\"one_or_more_Colon_6901\",\"one or more:\"),type_Colon:a(6902,e.DiagnosticCategory.Message,\"type_Colon_6902\",\"type:\"),default_Colon:a(6903,e.DiagnosticCategory.Message,\"default_Colon_6903\",\"default:\"),module_system_or_esModuleInterop:a(6904,e.DiagnosticCategory.Message,\"module_system_or_esModuleInterop_6904\",'module === \"system\" or esModuleInterop'),false_unless_strict_is_set:a(6905,e.DiagnosticCategory.Message,\"false_unless_strict_is_set_6905\",\"`false`, unless `strict` is set\"),false_unless_composite_is_set:a(6906,e.DiagnosticCategory.Message,\"false_unless_composite_is_set_6906\",\"`false`, unless `composite` is set\"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:a(6907,e.DiagnosticCategory.Message,\"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907\",'`[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:a(6908,e.DiagnosticCategory.Message,\"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908\",'`[]` if `files` is specified, otherwise `[\"**/*\"]`'),true_if_composite_false_otherwise:a(6909,e.DiagnosticCategory.Message,\"true_if_composite_false_otherwise_6909\",\"`true` if `composite`, `false` otherwise\"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:a(69010,e.DiagnosticCategory.Message,\"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010\",\"module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`\"),Computed_from_the_list_of_input_files:a(6911,e.DiagnosticCategory.Message,\"Computed_from_the_list_of_input_files_6911\",\"Computed from the list of input files\"),Platform_specific:a(6912,e.DiagnosticCategory.Message,\"Platform_specific_6912\",\"Platform specific\"),You_can_learn_about_all_of_the_compiler_options_at_0:a(6913,e.DiagnosticCategory.Message,\"You_can_learn_about_all_of_the_compiler_options_at_0_6913\",\"You can learn about all of the compiler options at {0}\"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:a(6914,e.DiagnosticCategory.Message,\"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914\",\"Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:\"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:a(6915,e.DiagnosticCategory.Message,\"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915\",\"Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}\"),COMMON_COMMANDS:a(6916,e.DiagnosticCategory.Message,\"COMMON_COMMANDS_6916\",\"COMMON COMMANDS\"),ALL_COMPILER_OPTIONS:a(6917,e.DiagnosticCategory.Message,\"ALL_COMPILER_OPTIONS_6917\",\"ALL COMPILER OPTIONS\"),WATCH_OPTIONS:a(6918,e.DiagnosticCategory.Message,\"WATCH_OPTIONS_6918\",\"WATCH OPTIONS\"),BUILD_OPTIONS:a(6919,e.DiagnosticCategory.Message,\"BUILD_OPTIONS_6919\",\"BUILD OPTIONS\"),COMMON_COMPILER_OPTIONS:a(6920,e.DiagnosticCategory.Message,\"COMMON_COMPILER_OPTIONS_6920\",\"COMMON COMPILER OPTIONS\"),COMMAND_LINE_FLAGS:a(6921,e.DiagnosticCategory.Message,\"COMMAND_LINE_FLAGS_6921\",\"COMMAND LINE FLAGS\"),tsc_Colon_The_TypeScript_Compiler:a(6922,e.DiagnosticCategory.Message,\"tsc_Colon_The_TypeScript_Compiler_6922\",\"tsc: The TypeScript Compiler\"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:a(6923,e.DiagnosticCategory.Message,\"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923\",\"Compiles the current project (tsconfig.json in the working directory.)\"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:a(6924,e.DiagnosticCategory.Message,\"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924\",\"Ignoring tsconfig.json, compiles the specified files with default compiler options.\"),Build_a_composite_project_in_the_working_directory:a(6925,e.DiagnosticCategory.Message,\"Build_a_composite_project_in_the_working_directory_6925\",\"Build a composite project in the working directory.\"),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:a(6926,e.DiagnosticCategory.Message,\"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926\",\"Creates a tsconfig.json with the recommended settings in the working directory.\"),Compiles_the_TypeScript_project_located_at_the_specified_path:a(6927,e.DiagnosticCategory.Message,\"Compiles_the_TypeScript_project_located_at_the_specified_path_6927\",\"Compiles the TypeScript project located at the specified path.\"),An_expanded_version_of_this_information_showing_all_possible_compiler_options:a(6928,e.DiagnosticCategory.Message,\"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928\",\"An expanded version of this information, showing all possible compiler options\"),Compiles_the_current_project_with_additional_settings:a(6929,e.DiagnosticCategory.Message,\"Compiles_the_current_project_with_additional_settings_6929\",\"Compiles the current project, with additional settings.\"),true_for_ES2022_and_above_including_ESNext:a(6930,e.DiagnosticCategory.Message,\"true_for_ES2022_and_above_including_ESNext_6930\",\"`true` for ES2022 and above, including ESNext.\"),List_of_file_name_suffixes_to_search_when_resolving_a_module:a(6931,e.DiagnosticCategory.Error,\"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931\",\"List of file name suffixes to search when resolving a module.\"),Variable_0_implicitly_has_an_1_type:a(7005,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_an_1_type_7005\",\"Variable '{0}' implicitly has an '{1}' type.\"),Parameter_0_implicitly_has_an_1_type:a(7006,e.DiagnosticCategory.Error,\"Parameter_0_implicitly_has_an_1_type_7006\",\"Parameter '{0}' implicitly has an '{1}' type.\"),Member_0_implicitly_has_an_1_type:a(7008,e.DiagnosticCategory.Error,\"Member_0_implicitly_has_an_1_type_7008\",\"Member '{0}' implicitly has an '{1}' type.\"),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:a(7009,e.DiagnosticCategory.Error,\"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009\",\"'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:a(7010,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.\"),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:a(7011,e.DiagnosticCategory.Error,\"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011\",\"Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:a(7013,e.DiagnosticCategory.Error,\"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013\",\"Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:a(7014,e.DiagnosticCategory.Error,\"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014\",\"Function type, which lacks return-type annotation, implicitly has an '{0}' return type.\"),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:a(7015,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015\",\"Element implicitly has an 'any' type because index expression is not of type 'number'.\"),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:a(7016,e.DiagnosticCategory.Error,\"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016\",\"Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:a(7017,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017\",\"Element implicitly has an 'any' type because type '{0}' has no index signature.\"),Object_literal_s_property_0_implicitly_has_an_1_type:a(7018,e.DiagnosticCategory.Error,\"Object_literal_s_property_0_implicitly_has_an_1_type_7018\",\"Object literal's property '{0}' implicitly has an '{1}' type.\"),Rest_parameter_0_implicitly_has_an_any_type:a(7019,e.DiagnosticCategory.Error,\"Rest_parameter_0_implicitly_has_an_any_type_7019\",\"Rest parameter '{0}' implicitly has an 'any[]' type.\"),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:a(7020,e.DiagnosticCategory.Error,\"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020\",\"Call signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:a(7022,e.DiagnosticCategory.Error,\"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022\",\"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\"),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:a(7023,e.DiagnosticCategory.Error,\"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023\",\"'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:a(7024,e.DiagnosticCategory.Error,\"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024\",\"Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:a(7025,e.DiagnosticCategory.Error,\"Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025\",\"Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation.\"),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:a(7026,e.DiagnosticCategory.Error,\"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026\",\"JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.\"),Unreachable_code_detected:a(7027,e.DiagnosticCategory.Error,\"Unreachable_code_detected_7027\",\"Unreachable code detected.\",!0),Unused_label:a(7028,e.DiagnosticCategory.Error,\"Unused_label_7028\",\"Unused label.\",!0),Fallthrough_case_in_switch:a(7029,e.DiagnosticCategory.Error,\"Fallthrough_case_in_switch_7029\",\"Fallthrough case in switch.\"),Not_all_code_paths_return_a_value:a(7030,e.DiagnosticCategory.Error,\"Not_all_code_paths_return_a_value_7030\",\"Not all code paths return a value.\"),Binding_element_0_implicitly_has_an_1_type:a(7031,e.DiagnosticCategory.Error,\"Binding_element_0_implicitly_has_an_1_type_7031\",\"Binding element '{0}' implicitly has an '{1}' type.\"),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:a(7032,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032\",\"Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.\"),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:a(7033,e.DiagnosticCategory.Error,\"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033\",\"Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.\"),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:a(7034,e.DiagnosticCategory.Error,\"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034\",\"Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.\"),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:a(7035,e.DiagnosticCategory.Error,\"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035\",\"Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`\"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:a(7036,e.DiagnosticCategory.Error,\"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036\",\"Dynamic import's specifier must be of type 'string', but here has type '{0}'.\"),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:a(7037,e.DiagnosticCategory.Message,\"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037\",\"Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.\"),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:a(7038,e.DiagnosticCategory.Message,\"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038\",\"Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.\"),Mapped_object_type_implicitly_has_an_any_template_type:a(7039,e.DiagnosticCategory.Error,\"Mapped_object_type_implicitly_has_an_any_template_type_7039\",\"Mapped object type implicitly has an 'any' template type.\"),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:a(7040,e.DiagnosticCategory.Error,\"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040\",\"If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'\"),The_containing_arrow_function_captures_the_global_value_of_this:a(7041,e.DiagnosticCategory.Error,\"The_containing_arrow_function_captures_the_global_value_of_this_7041\",\"The containing arrow function captures the global value of 'this'.\"),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:a(7042,e.DiagnosticCategory.Error,\"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042\",\"Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.\"),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7043,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043\",\"Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7044,e.DiagnosticCategory.Suggestion,\"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044\",\"Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7045,e.DiagnosticCategory.Suggestion,\"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045\",\"Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:a(7046,e.DiagnosticCategory.Suggestion,\"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046\",\"Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.\"),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:a(7047,e.DiagnosticCategory.Suggestion,\"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047\",\"Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:a(7048,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048\",\"Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.\"),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:a(7049,e.DiagnosticCategory.Suggestion,\"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049\",\"Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.\"),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:a(7050,e.DiagnosticCategory.Suggestion,\"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050\",\"'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.\"),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:a(7051,e.DiagnosticCategory.Error,\"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051\",\"Parameter has a name but no type. Did you mean '{0}: {1}'?\"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:a(7052,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052\",\"Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?\"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:a(7053,e.DiagnosticCategory.Error,\"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053\",\"Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.\"),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:a(7054,e.DiagnosticCategory.Error,\"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054\",\"No index signature with a parameter of type '{0}' was found on type '{1}'.\"),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:a(7055,e.DiagnosticCategory.Error,\"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055\",\"'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.\"),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:a(7056,e.DiagnosticCategory.Error,\"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056\",\"The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.\"),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:a(7057,e.DiagnosticCategory.Error,\"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057\",\"'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.\"),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:a(7058,e.DiagnosticCategory.Error,\"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058\",\"If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`\"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:a(7059,e.DiagnosticCategory.Error,\"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059\",\"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:a(7060,e.DiagnosticCategory.Error,\"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060\",\"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.\"),A_mapped_type_may_not_declare_properties_or_methods:a(7061,e.DiagnosticCategory.Error,\"A_mapped_type_may_not_declare_properties_or_methods_7061\",\"A mapped type may not declare properties or methods.\"),You_cannot_rename_this_element:a(8e3,e.DiagnosticCategory.Error,\"You_cannot_rename_this_element_8000\",\"You cannot rename this element.\"),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:a(8001,e.DiagnosticCategory.Error,\"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001\",\"You cannot rename elements that are defined in the standard TypeScript library.\"),import_can_only_be_used_in_TypeScript_files:a(8002,e.DiagnosticCategory.Error,\"import_can_only_be_used_in_TypeScript_files_8002\",\"'import ... =' can only be used in TypeScript files.\"),export_can_only_be_used_in_TypeScript_files:a(8003,e.DiagnosticCategory.Error,\"export_can_only_be_used_in_TypeScript_files_8003\",\"'export =' can only be used in TypeScript files.\"),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:a(8004,e.DiagnosticCategory.Error,\"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004\",\"Type parameter declarations can only be used in TypeScript files.\"),implements_clauses_can_only_be_used_in_TypeScript_files:a(8005,e.DiagnosticCategory.Error,\"implements_clauses_can_only_be_used_in_TypeScript_files_8005\",\"'implements' clauses can only be used in TypeScript files.\"),_0_declarations_can_only_be_used_in_TypeScript_files:a(8006,e.DiagnosticCategory.Error,\"_0_declarations_can_only_be_used_in_TypeScript_files_8006\",\"'{0}' declarations can only be used in TypeScript files.\"),Type_aliases_can_only_be_used_in_TypeScript_files:a(8008,e.DiagnosticCategory.Error,\"Type_aliases_can_only_be_used_in_TypeScript_files_8008\",\"Type aliases can only be used in TypeScript files.\"),The_0_modifier_can_only_be_used_in_TypeScript_files:a(8009,e.DiagnosticCategory.Error,\"The_0_modifier_can_only_be_used_in_TypeScript_files_8009\",\"The '{0}' modifier can only be used in TypeScript files.\"),Type_annotations_can_only_be_used_in_TypeScript_files:a(8010,e.DiagnosticCategory.Error,\"Type_annotations_can_only_be_used_in_TypeScript_files_8010\",\"Type annotations can only be used in TypeScript files.\"),Type_arguments_can_only_be_used_in_TypeScript_files:a(8011,e.DiagnosticCategory.Error,\"Type_arguments_can_only_be_used_in_TypeScript_files_8011\",\"Type arguments can only be used in TypeScript files.\"),Parameter_modifiers_can_only_be_used_in_TypeScript_files:a(8012,e.DiagnosticCategory.Error,\"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012\",\"Parameter modifiers can only be used in TypeScript files.\"),Non_null_assertions_can_only_be_used_in_TypeScript_files:a(8013,e.DiagnosticCategory.Error,\"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013\",\"Non-null assertions can only be used in TypeScript files.\"),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:a(8016,e.DiagnosticCategory.Error,\"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016\",\"Type assertion expressions can only be used in TypeScript files.\"),Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:a(8017,e.DiagnosticCategory.Error,\"Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0_8017\",\"Octal literal types must use ES2015 syntax. Use the syntax '{0}'.\"),Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0:a(8018,e.DiagnosticCategory.Error,\"Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0_8018\",\"Octal literals are not allowed in enums members initializer. Use the syntax '{0}'.\"),Report_errors_in_js_files:a(8019,e.DiagnosticCategory.Message,\"Report_errors_in_js_files_8019\",\"Report errors in .js files.\"),JSDoc_types_can_only_be_used_inside_documentation_comments:a(8020,e.DiagnosticCategory.Error,\"JSDoc_types_can_only_be_used_inside_documentation_comments_8020\",\"JSDoc types can only be used inside documentation comments.\"),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:a(8021,e.DiagnosticCategory.Error,\"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021\",\"JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\"),JSDoc_0_is_not_attached_to_a_class:a(8022,e.DiagnosticCategory.Error,\"JSDoc_0_is_not_attached_to_a_class_8022\",\"JSDoc '@{0}' is not attached to a class.\"),JSDoc_0_1_does_not_match_the_extends_2_clause:a(8023,e.DiagnosticCategory.Error,\"JSDoc_0_1_does_not_match_the_extends_2_clause_8023\",\"JSDoc '@{0} {1}' does not match the 'extends {2}' clause.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:a(8024,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name.\"),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:a(8025,e.DiagnosticCategory.Error,\"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025\",\"Class declarations cannot have more than one '@augments' or '@extends' tag.\"),Expected_0_type_arguments_provide_these_with_an_extends_tag:a(8026,e.DiagnosticCategory.Error,\"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026\",\"Expected {0} type arguments; provide these with an '@extends' tag.\"),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:a(8027,e.DiagnosticCategory.Error,\"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027\",\"Expected {0}-{1} type arguments; provide these with an '@extends' tag.\"),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:a(8028,e.DiagnosticCategory.Error,\"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028\",\"JSDoc '...' may only appear in the last parameter of a signature.\"),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:a(8029,e.DiagnosticCategory.Error,\"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029\",\"JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.\"),The_type_of_a_function_declaration_must_match_the_function_s_signature:a(8030,e.DiagnosticCategory.Error,\"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030\",\"The type of a function declaration must match the function's signature.\"),You_cannot_rename_a_module_via_a_global_import:a(8031,e.DiagnosticCategory.Error,\"You_cannot_rename_a_module_via_a_global_import_8031\",\"You cannot rename a module via a global import.\"),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:a(8032,e.DiagnosticCategory.Error,\"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032\",\"Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.\"),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:a(8033,e.DiagnosticCategory.Error,\"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033\",\"A JSDoc '@typedef' comment may not contain multiple '@type' tags.\"),The_tag_was_first_specified_here:a(8034,e.DiagnosticCategory.Error,\"The_tag_was_first_specified_here_8034\",\"The tag was first specified here.\"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:a(9005,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005\",\"Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.\"),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:a(9006,e.DiagnosticCategory.Error,\"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006\",\"Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.\"),JSX_attributes_must_only_be_assigned_a_non_empty_expression:a(17e3,e.DiagnosticCategory.Error,\"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000\",\"JSX attributes must only be assigned a non-empty 'expression'.\"),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:a(17001,e.DiagnosticCategory.Error,\"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001\",\"JSX elements cannot have multiple attributes with the same name.\"),Expected_corresponding_JSX_closing_tag_for_0:a(17002,e.DiagnosticCategory.Error,\"Expected_corresponding_JSX_closing_tag_for_0_17002\",\"Expected corresponding JSX closing tag for '{0}'.\"),Cannot_use_JSX_unless_the_jsx_flag_is_provided:a(17004,e.DiagnosticCategory.Error,\"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004\",\"Cannot use JSX unless the '--jsx' flag is provided.\"),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:a(17005,e.DiagnosticCategory.Error,\"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005\",\"A constructor cannot contain a 'super' call when its class extends 'null'.\"),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:a(17006,e.DiagnosticCategory.Error,\"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006\",\"An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:a(17007,e.DiagnosticCategory.Error,\"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007\",\"A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),JSX_element_0_has_no_corresponding_closing_tag:a(17008,e.DiagnosticCategory.Error,\"JSX_element_0_has_no_corresponding_closing_tag_17008\",\"JSX element '{0}' has no corresponding closing tag.\"),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:a(17009,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009\",\"'super' must be called before accessing 'this' in the constructor of a derived class.\"),Unknown_type_acquisition_option_0:a(17010,e.DiagnosticCategory.Error,\"Unknown_type_acquisition_option_0_17010\",\"Unknown type acquisition option '{0}'.\"),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:a(17011,e.DiagnosticCategory.Error,\"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011\",\"'super' must be called before accessing a property of 'super' in the constructor of a derived class.\"),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:a(17012,e.DiagnosticCategory.Error,\"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012\",\"'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?\"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:a(17013,e.DiagnosticCategory.Error,\"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013\",\"Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.\"),JSX_fragment_has_no_corresponding_closing_tag:a(17014,e.DiagnosticCategory.Error,\"JSX_fragment_has_no_corresponding_closing_tag_17014\",\"JSX fragment has no corresponding closing tag.\"),Expected_corresponding_closing_tag_for_JSX_fragment:a(17015,e.DiagnosticCategory.Error,\"Expected_corresponding_closing_tag_for_JSX_fragment_17015\",\"Expected corresponding closing tag for JSX fragment.\"),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:a(17016,e.DiagnosticCategory.Error,\"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016\",\"The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.\"),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:a(17017,e.DiagnosticCategory.Error,\"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017\",\"An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.\"),Unknown_type_acquisition_option_0_Did_you_mean_1:a(17018,e.DiagnosticCategory.Error,\"Unknown_type_acquisition_option_0_Did_you_mean_1_17018\",\"Unknown type acquisition option '{0}'. Did you mean '{1}'?\"),Circularity_detected_while_resolving_configuration_Colon_0:a(18e3,e.DiagnosticCategory.Error,\"Circularity_detected_while_resolving_configuration_Colon_0_18000\",\"Circularity detected while resolving configuration: {0}\"),The_files_list_in_config_file_0_is_empty:a(18002,e.DiagnosticCategory.Error,\"The_files_list_in_config_file_0_is_empty_18002\",\"The 'files' list in config file '{0}' is empty.\"),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:a(18003,e.DiagnosticCategory.Error,\"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003\",\"No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.\"),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:a(80001,e.DiagnosticCategory.Suggestion,\"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001\",\"File is a CommonJS module; it may be converted to an ES module.\"),This_constructor_function_may_be_converted_to_a_class_declaration:a(80002,e.DiagnosticCategory.Suggestion,\"This_constructor_function_may_be_converted_to_a_class_declaration_80002\",\"This constructor function may be converted to a class declaration.\"),Import_may_be_converted_to_a_default_import:a(80003,e.DiagnosticCategory.Suggestion,\"Import_may_be_converted_to_a_default_import_80003\",\"Import may be converted to a default import.\"),JSDoc_types_may_be_moved_to_TypeScript_types:a(80004,e.DiagnosticCategory.Suggestion,\"JSDoc_types_may_be_moved_to_TypeScript_types_80004\",\"JSDoc types may be moved to TypeScript types.\"),require_call_may_be_converted_to_an_import:a(80005,e.DiagnosticCategory.Suggestion,\"require_call_may_be_converted_to_an_import_80005\",\"'require' call may be converted to an import.\"),This_may_be_converted_to_an_async_function:a(80006,e.DiagnosticCategory.Suggestion,\"This_may_be_converted_to_an_async_function_80006\",\"This may be converted to an async function.\"),await_has_no_effect_on_the_type_of_this_expression:a(80007,e.DiagnosticCategory.Suggestion,\"await_has_no_effect_on_the_type_of_this_expression_80007\",\"'await' has no effect on the type of this expression.\"),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:a(80008,e.DiagnosticCategory.Suggestion,\"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008\",\"Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.\"),Add_missing_super_call:a(90001,e.DiagnosticCategory.Message,\"Add_missing_super_call_90001\",\"Add missing 'super()' call\"),Make_super_call_the_first_statement_in_the_constructor:a(90002,e.DiagnosticCategory.Message,\"Make_super_call_the_first_statement_in_the_constructor_90002\",\"Make 'super()' call the first statement in the constructor\"),Change_extends_to_implements:a(90003,e.DiagnosticCategory.Message,\"Change_extends_to_implements_90003\",\"Change 'extends' to 'implements'\"),Remove_unused_declaration_for_Colon_0:a(90004,e.DiagnosticCategory.Message,\"Remove_unused_declaration_for_Colon_0_90004\",\"Remove unused declaration for: '{0}'\"),Remove_import_from_0:a(90005,e.DiagnosticCategory.Message,\"Remove_import_from_0_90005\",\"Remove import from '{0}'\"),Implement_interface_0:a(90006,e.DiagnosticCategory.Message,\"Implement_interface_0_90006\",\"Implement interface '{0}'\"),Implement_inherited_abstract_class:a(90007,e.DiagnosticCategory.Message,\"Implement_inherited_abstract_class_90007\",\"Implement inherited abstract class\"),Add_0_to_unresolved_variable:a(90008,e.DiagnosticCategory.Message,\"Add_0_to_unresolved_variable_90008\",\"Add '{0}.' to unresolved variable\"),Remove_variable_statement:a(90010,e.DiagnosticCategory.Message,\"Remove_variable_statement_90010\",\"Remove variable statement\"),Remove_template_tag:a(90011,e.DiagnosticCategory.Message,\"Remove_template_tag_90011\",\"Remove template tag\"),Remove_type_parameters:a(90012,e.DiagnosticCategory.Message,\"Remove_type_parameters_90012\",\"Remove type parameters\"),Import_0_from_1:a(90013,e.DiagnosticCategory.Message,\"Import_0_from_1_90013\",`Import '{0}' from \"{1}\"`),Change_0_to_1:a(90014,e.DiagnosticCategory.Message,\"Change_0_to_1_90014\",\"Change '{0}' to '{1}'\"),Declare_property_0:a(90016,e.DiagnosticCategory.Message,\"Declare_property_0_90016\",\"Declare property '{0}'\"),Add_index_signature_for_property_0:a(90017,e.DiagnosticCategory.Message,\"Add_index_signature_for_property_0_90017\",\"Add index signature for property '{0}'\"),Disable_checking_for_this_file:a(90018,e.DiagnosticCategory.Message,\"Disable_checking_for_this_file_90018\",\"Disable checking for this file\"),Ignore_this_error_message:a(90019,e.DiagnosticCategory.Message,\"Ignore_this_error_message_90019\",\"Ignore this error message\"),Initialize_property_0_in_the_constructor:a(90020,e.DiagnosticCategory.Message,\"Initialize_property_0_in_the_constructor_90020\",\"Initialize property '{0}' in the constructor\"),Initialize_static_property_0:a(90021,e.DiagnosticCategory.Message,\"Initialize_static_property_0_90021\",\"Initialize static property '{0}'\"),Change_spelling_to_0:a(90022,e.DiagnosticCategory.Message,\"Change_spelling_to_0_90022\",\"Change spelling to '{0}'\"),Declare_method_0:a(90023,e.DiagnosticCategory.Message,\"Declare_method_0_90023\",\"Declare method '{0}'\"),Declare_static_method_0:a(90024,e.DiagnosticCategory.Message,\"Declare_static_method_0_90024\",\"Declare static method '{0}'\"),Prefix_0_with_an_underscore:a(90025,e.DiagnosticCategory.Message,\"Prefix_0_with_an_underscore_90025\",\"Prefix '{0}' with an underscore\"),Rewrite_as_the_indexed_access_type_0:a(90026,e.DiagnosticCategory.Message,\"Rewrite_as_the_indexed_access_type_0_90026\",\"Rewrite as the indexed access type '{0}'\"),Declare_static_property_0:a(90027,e.DiagnosticCategory.Message,\"Declare_static_property_0_90027\",\"Declare static property '{0}'\"),Call_decorator_expression:a(90028,e.DiagnosticCategory.Message,\"Call_decorator_expression_90028\",\"Call decorator expression\"),Add_async_modifier_to_containing_function:a(90029,e.DiagnosticCategory.Message,\"Add_async_modifier_to_containing_function_90029\",\"Add async modifier to containing function\"),Replace_infer_0_with_unknown:a(90030,e.DiagnosticCategory.Message,\"Replace_infer_0_with_unknown_90030\",\"Replace 'infer {0}' with 'unknown'\"),Replace_all_unused_infer_with_unknown:a(90031,e.DiagnosticCategory.Message,\"Replace_all_unused_infer_with_unknown_90031\",\"Replace all unused 'infer' with 'unknown'\"),Add_parameter_name:a(90034,e.DiagnosticCategory.Message,\"Add_parameter_name_90034\",\"Add parameter name\"),Declare_private_property_0:a(90035,e.DiagnosticCategory.Message,\"Declare_private_property_0_90035\",\"Declare private property '{0}'\"),Replace_0_with_Promise_1:a(90036,e.DiagnosticCategory.Message,\"Replace_0_with_Promise_1_90036\",\"Replace '{0}' with 'Promise<{1}>'\"),Fix_all_incorrect_return_type_of_an_async_functions:a(90037,e.DiagnosticCategory.Message,\"Fix_all_incorrect_return_type_of_an_async_functions_90037\",\"Fix all incorrect return type of an async functions\"),Declare_private_method_0:a(90038,e.DiagnosticCategory.Message,\"Declare_private_method_0_90038\",\"Declare private method '{0}'\"),Remove_unused_destructuring_declaration:a(90039,e.DiagnosticCategory.Message,\"Remove_unused_destructuring_declaration_90039\",\"Remove unused destructuring declaration\"),Remove_unused_declarations_for_Colon_0:a(90041,e.DiagnosticCategory.Message,\"Remove_unused_declarations_for_Colon_0_90041\",\"Remove unused declarations for: '{0}'\"),Declare_a_private_field_named_0:a(90053,e.DiagnosticCategory.Message,\"Declare_a_private_field_named_0_90053\",\"Declare a private field named '{0}'.\"),Includes_imports_of_types_referenced_by_0:a(90054,e.DiagnosticCategory.Message,\"Includes_imports_of_types_referenced_by_0_90054\",\"Includes imports of types referenced by '{0}'\"),Remove_type_from_import_declaration_from_0:a(90055,e.DiagnosticCategory.Message,\"Remove_type_from_import_declaration_from_0_90055\",`Remove 'type' from import declaration from \"{0}\"`),Remove_type_from_import_of_0_from_1:a(90056,e.DiagnosticCategory.Message,\"Remove_type_from_import_of_0_from_1_90056\",`Remove 'type' from import of '{0}' from \"{1}\"`),Add_import_from_0:a(90057,e.DiagnosticCategory.Message,\"Add_import_from_0_90057\",'Add import from \"{0}\"'),Update_import_from_0:a(90058,e.DiagnosticCategory.Message,\"Update_import_from_0_90058\",'Update import from \"{0}\"'),Convert_function_to_an_ES2015_class:a(95001,e.DiagnosticCategory.Message,\"Convert_function_to_an_ES2015_class_95001\",\"Convert function to an ES2015 class\"),Convert_0_to_1_in_0:a(95003,e.DiagnosticCategory.Message,\"Convert_0_to_1_in_0_95003\",\"Convert '{0}' to '{1} in {0}'\"),Extract_to_0_in_1:a(95004,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_95004\",\"Extract to {0} in {1}\"),Extract_function:a(95005,e.DiagnosticCategory.Message,\"Extract_function_95005\",\"Extract function\"),Extract_constant:a(95006,e.DiagnosticCategory.Message,\"Extract_constant_95006\",\"Extract constant\"),Extract_to_0_in_enclosing_scope:a(95007,e.DiagnosticCategory.Message,\"Extract_to_0_in_enclosing_scope_95007\",\"Extract to {0} in enclosing scope\"),Extract_to_0_in_1_scope:a(95008,e.DiagnosticCategory.Message,\"Extract_to_0_in_1_scope_95008\",\"Extract to {0} in {1} scope\"),Annotate_with_type_from_JSDoc:a(95009,e.DiagnosticCategory.Message,\"Annotate_with_type_from_JSDoc_95009\",\"Annotate with type from JSDoc\"),Infer_type_of_0_from_usage:a(95011,e.DiagnosticCategory.Message,\"Infer_type_of_0_from_usage_95011\",\"Infer type of '{0}' from usage\"),Infer_parameter_types_from_usage:a(95012,e.DiagnosticCategory.Message,\"Infer_parameter_types_from_usage_95012\",\"Infer parameter types from usage\"),Convert_to_default_import:a(95013,e.DiagnosticCategory.Message,\"Convert_to_default_import_95013\",\"Convert to default import\"),Install_0:a(95014,e.DiagnosticCategory.Message,\"Install_0_95014\",\"Install '{0}'\"),Replace_import_with_0:a(95015,e.DiagnosticCategory.Message,\"Replace_import_with_0_95015\",\"Replace import with '{0}'.\"),Use_synthetic_default_member:a(95016,e.DiagnosticCategory.Message,\"Use_synthetic_default_member_95016\",\"Use synthetic 'default' member.\"),Convert_to_ES_module:a(95017,e.DiagnosticCategory.Message,\"Convert_to_ES_module_95017\",\"Convert to ES module\"),Add_undefined_type_to_property_0:a(95018,e.DiagnosticCategory.Message,\"Add_undefined_type_to_property_0_95018\",\"Add 'undefined' type to property '{0}'\"),Add_initializer_to_property_0:a(95019,e.DiagnosticCategory.Message,\"Add_initializer_to_property_0_95019\",\"Add initializer to property '{0}'\"),Add_definite_assignment_assertion_to_property_0:a(95020,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertion_to_property_0_95020\",\"Add definite assignment assertion to property '{0}'\"),Convert_all_type_literals_to_mapped_type:a(95021,e.DiagnosticCategory.Message,\"Convert_all_type_literals_to_mapped_type_95021\",\"Convert all type literals to mapped type\"),Add_all_missing_members:a(95022,e.DiagnosticCategory.Message,\"Add_all_missing_members_95022\",\"Add all missing members\"),Infer_all_types_from_usage:a(95023,e.DiagnosticCategory.Message,\"Infer_all_types_from_usage_95023\",\"Infer all types from usage\"),Delete_all_unused_declarations:a(95024,e.DiagnosticCategory.Message,\"Delete_all_unused_declarations_95024\",\"Delete all unused declarations\"),Prefix_all_unused_declarations_with_where_possible:a(95025,e.DiagnosticCategory.Message,\"Prefix_all_unused_declarations_with_where_possible_95025\",\"Prefix all unused declarations with '_' where possible\"),Fix_all_detected_spelling_errors:a(95026,e.DiagnosticCategory.Message,\"Fix_all_detected_spelling_errors_95026\",\"Fix all detected spelling errors\"),Add_initializers_to_all_uninitialized_properties:a(95027,e.DiagnosticCategory.Message,\"Add_initializers_to_all_uninitialized_properties_95027\",\"Add initializers to all uninitialized properties\"),Add_definite_assignment_assertions_to_all_uninitialized_properties:a(95028,e.DiagnosticCategory.Message,\"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028\",\"Add definite assignment assertions to all uninitialized properties\"),Add_undefined_type_to_all_uninitialized_properties:a(95029,e.DiagnosticCategory.Message,\"Add_undefined_type_to_all_uninitialized_properties_95029\",\"Add undefined type to all uninitialized properties\"),Change_all_jsdoc_style_types_to_TypeScript:a(95030,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_95030\",\"Change all jsdoc-style types to TypeScript\"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:a(95031,e.DiagnosticCategory.Message,\"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031\",\"Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)\"),Implement_all_unimplemented_interfaces:a(95032,e.DiagnosticCategory.Message,\"Implement_all_unimplemented_interfaces_95032\",\"Implement all unimplemented interfaces\"),Install_all_missing_types_packages:a(95033,e.DiagnosticCategory.Message,\"Install_all_missing_types_packages_95033\",\"Install all missing types packages\"),Rewrite_all_as_indexed_access_types:a(95034,e.DiagnosticCategory.Message,\"Rewrite_all_as_indexed_access_types_95034\",\"Rewrite all as indexed access types\"),Convert_all_to_default_imports:a(95035,e.DiagnosticCategory.Message,\"Convert_all_to_default_imports_95035\",\"Convert all to default imports\"),Make_all_super_calls_the_first_statement_in_their_constructor:a(95036,e.DiagnosticCategory.Message,\"Make_all_super_calls_the_first_statement_in_their_constructor_95036\",\"Make all 'super()' calls the first statement in their constructor\"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:a(95037,e.DiagnosticCategory.Message,\"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037\",\"Add qualifier to all unresolved variables matching a member name\"),Change_all_extended_interfaces_to_implements:a(95038,e.DiagnosticCategory.Message,\"Change_all_extended_interfaces_to_implements_95038\",\"Change all extended interfaces to 'implements'\"),Add_all_missing_super_calls:a(95039,e.DiagnosticCategory.Message,\"Add_all_missing_super_calls_95039\",\"Add all missing super calls\"),Implement_all_inherited_abstract_classes:a(95040,e.DiagnosticCategory.Message,\"Implement_all_inherited_abstract_classes_95040\",\"Implement all inherited abstract classes\"),Add_all_missing_async_modifiers:a(95041,e.DiagnosticCategory.Message,\"Add_all_missing_async_modifiers_95041\",\"Add all missing 'async' modifiers\"),Add_ts_ignore_to_all_error_messages:a(95042,e.DiagnosticCategory.Message,\"Add_ts_ignore_to_all_error_messages_95042\",\"Add '@ts-ignore' to all error messages\"),Annotate_everything_with_types_from_JSDoc:a(95043,e.DiagnosticCategory.Message,\"Annotate_everything_with_types_from_JSDoc_95043\",\"Annotate everything with types from JSDoc\"),Add_to_all_uncalled_decorators:a(95044,e.DiagnosticCategory.Message,\"Add_to_all_uncalled_decorators_95044\",\"Add '()' to all uncalled decorators\"),Convert_all_constructor_functions_to_classes:a(95045,e.DiagnosticCategory.Message,\"Convert_all_constructor_functions_to_classes_95045\",\"Convert all constructor functions to classes\"),Generate_get_and_set_accessors:a(95046,e.DiagnosticCategory.Message,\"Generate_get_and_set_accessors_95046\",\"Generate 'get' and 'set' accessors\"),Convert_require_to_import:a(95047,e.DiagnosticCategory.Message,\"Convert_require_to_import_95047\",\"Convert 'require' to 'import'\"),Convert_all_require_to_import:a(95048,e.DiagnosticCategory.Message,\"Convert_all_require_to_import_95048\",\"Convert all 'require' to 'import'\"),Move_to_a_new_file:a(95049,e.DiagnosticCategory.Message,\"Move_to_a_new_file_95049\",\"Move to a new file\"),Remove_unreachable_code:a(95050,e.DiagnosticCategory.Message,\"Remove_unreachable_code_95050\",\"Remove unreachable code\"),Remove_all_unreachable_code:a(95051,e.DiagnosticCategory.Message,\"Remove_all_unreachable_code_95051\",\"Remove all unreachable code\"),Add_missing_typeof:a(95052,e.DiagnosticCategory.Message,\"Add_missing_typeof_95052\",\"Add missing 'typeof'\"),Remove_unused_label:a(95053,e.DiagnosticCategory.Message,\"Remove_unused_label_95053\",\"Remove unused label\"),Remove_all_unused_labels:a(95054,e.DiagnosticCategory.Message,\"Remove_all_unused_labels_95054\",\"Remove all unused labels\"),Convert_0_to_mapped_object_type:a(95055,e.DiagnosticCategory.Message,\"Convert_0_to_mapped_object_type_95055\",\"Convert '{0}' to mapped object type\"),Convert_namespace_import_to_named_imports:a(95056,e.DiagnosticCategory.Message,\"Convert_namespace_import_to_named_imports_95056\",\"Convert namespace import to named imports\"),Convert_named_imports_to_namespace_import:a(95057,e.DiagnosticCategory.Message,\"Convert_named_imports_to_namespace_import_95057\",\"Convert named imports to namespace import\"),Add_or_remove_braces_in_an_arrow_function:a(95058,e.DiagnosticCategory.Message,\"Add_or_remove_braces_in_an_arrow_function_95058\",\"Add or remove braces in an arrow function\"),Add_braces_to_arrow_function:a(95059,e.DiagnosticCategory.Message,\"Add_braces_to_arrow_function_95059\",\"Add braces to arrow function\"),Remove_braces_from_arrow_function:a(95060,e.DiagnosticCategory.Message,\"Remove_braces_from_arrow_function_95060\",\"Remove braces from arrow function\"),Convert_default_export_to_named_export:a(95061,e.DiagnosticCategory.Message,\"Convert_default_export_to_named_export_95061\",\"Convert default export to named export\"),Convert_named_export_to_default_export:a(95062,e.DiagnosticCategory.Message,\"Convert_named_export_to_default_export_95062\",\"Convert named export to default export\"),Add_missing_enum_member_0:a(95063,e.DiagnosticCategory.Message,\"Add_missing_enum_member_0_95063\",\"Add missing enum member '{0}'\"),Add_all_missing_imports:a(95064,e.DiagnosticCategory.Message,\"Add_all_missing_imports_95064\",\"Add all missing imports\"),Convert_to_async_function:a(95065,e.DiagnosticCategory.Message,\"Convert_to_async_function_95065\",\"Convert to async function\"),Convert_all_to_async_functions:a(95066,e.DiagnosticCategory.Message,\"Convert_all_to_async_functions_95066\",\"Convert all to async functions\"),Add_missing_call_parentheses:a(95067,e.DiagnosticCategory.Message,\"Add_missing_call_parentheses_95067\",\"Add missing call parentheses\"),Add_all_missing_call_parentheses:a(95068,e.DiagnosticCategory.Message,\"Add_all_missing_call_parentheses_95068\",\"Add all missing call parentheses\"),Add_unknown_conversion_for_non_overlapping_types:a(95069,e.DiagnosticCategory.Message,\"Add_unknown_conversion_for_non_overlapping_types_95069\",\"Add 'unknown' conversion for non-overlapping types\"),Add_unknown_to_all_conversions_of_non_overlapping_types:a(95070,e.DiagnosticCategory.Message,\"Add_unknown_to_all_conversions_of_non_overlapping_types_95070\",\"Add 'unknown' to all conversions of non-overlapping types\"),Add_missing_new_operator_to_call:a(95071,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_call_95071\",\"Add missing 'new' operator to call\"),Add_missing_new_operator_to_all_calls:a(95072,e.DiagnosticCategory.Message,\"Add_missing_new_operator_to_all_calls_95072\",\"Add missing 'new' operator to all calls\"),Add_names_to_all_parameters_without_names:a(95073,e.DiagnosticCategory.Message,\"Add_names_to_all_parameters_without_names_95073\",\"Add names to all parameters without names\"),Enable_the_experimentalDecorators_option_in_your_configuration_file:a(95074,e.DiagnosticCategory.Message,\"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074\",\"Enable the 'experimentalDecorators' option in your configuration file\"),Convert_parameters_to_destructured_object:a(95075,e.DiagnosticCategory.Message,\"Convert_parameters_to_destructured_object_95075\",\"Convert parameters to destructured object\"),Extract_type:a(95077,e.DiagnosticCategory.Message,\"Extract_type_95077\",\"Extract type\"),Extract_to_type_alias:a(95078,e.DiagnosticCategory.Message,\"Extract_to_type_alias_95078\",\"Extract to type alias\"),Extract_to_typedef:a(95079,e.DiagnosticCategory.Message,\"Extract_to_typedef_95079\",\"Extract to typedef\"),Infer_this_type_of_0_from_usage:a(95080,e.DiagnosticCategory.Message,\"Infer_this_type_of_0_from_usage_95080\",\"Infer 'this' type of '{0}' from usage\"),Add_const_to_unresolved_variable:a(95081,e.DiagnosticCategory.Message,\"Add_const_to_unresolved_variable_95081\",\"Add 'const' to unresolved variable\"),Add_const_to_all_unresolved_variables:a(95082,e.DiagnosticCategory.Message,\"Add_const_to_all_unresolved_variables_95082\",\"Add 'const' to all unresolved variables\"),Add_await:a(95083,e.DiagnosticCategory.Message,\"Add_await_95083\",\"Add 'await'\"),Add_await_to_initializer_for_0:a(95084,e.DiagnosticCategory.Message,\"Add_await_to_initializer_for_0_95084\",\"Add 'await' to initializer for '{0}'\"),Fix_all_expressions_possibly_missing_await:a(95085,e.DiagnosticCategory.Message,\"Fix_all_expressions_possibly_missing_await_95085\",\"Fix all expressions possibly missing 'await'\"),Remove_unnecessary_await:a(95086,e.DiagnosticCategory.Message,\"Remove_unnecessary_await_95086\",\"Remove unnecessary 'await'\"),Remove_all_unnecessary_uses_of_await:a(95087,e.DiagnosticCategory.Message,\"Remove_all_unnecessary_uses_of_await_95087\",\"Remove all unnecessary uses of 'await'\"),Enable_the_jsx_flag_in_your_configuration_file:a(95088,e.DiagnosticCategory.Message,\"Enable_the_jsx_flag_in_your_configuration_file_95088\",\"Enable the '--jsx' flag in your configuration file\"),Add_await_to_initializers:a(95089,e.DiagnosticCategory.Message,\"Add_await_to_initializers_95089\",\"Add 'await' to initializers\"),Extract_to_interface:a(95090,e.DiagnosticCategory.Message,\"Extract_to_interface_95090\",\"Extract to interface\"),Convert_to_a_bigint_numeric_literal:a(95091,e.DiagnosticCategory.Message,\"Convert_to_a_bigint_numeric_literal_95091\",\"Convert to a bigint numeric literal\"),Convert_all_to_bigint_numeric_literals:a(95092,e.DiagnosticCategory.Message,\"Convert_all_to_bigint_numeric_literals_95092\",\"Convert all to bigint numeric literals\"),Convert_const_to_let:a(95093,e.DiagnosticCategory.Message,\"Convert_const_to_let_95093\",\"Convert 'const' to 'let'\"),Prefix_with_declare:a(95094,e.DiagnosticCategory.Message,\"Prefix_with_declare_95094\",\"Prefix with 'declare'\"),Prefix_all_incorrect_property_declarations_with_declare:a(95095,e.DiagnosticCategory.Message,\"Prefix_all_incorrect_property_declarations_with_declare_95095\",\"Prefix all incorrect property declarations with 'declare'\"),Convert_to_template_string:a(95096,e.DiagnosticCategory.Message,\"Convert_to_template_string_95096\",\"Convert to template string\"),Add_export_to_make_this_file_into_a_module:a(95097,e.DiagnosticCategory.Message,\"Add_export_to_make_this_file_into_a_module_95097\",\"Add 'export {}' to make this file into a module\"),Set_the_target_option_in_your_configuration_file_to_0:a(95098,e.DiagnosticCategory.Message,\"Set_the_target_option_in_your_configuration_file_to_0_95098\",\"Set the 'target' option in your configuration file to '{0}'\"),Set_the_module_option_in_your_configuration_file_to_0:a(95099,e.DiagnosticCategory.Message,\"Set_the_module_option_in_your_configuration_file_to_0_95099\",\"Set the 'module' option in your configuration file to '{0}'\"),Convert_invalid_character_to_its_html_entity_code:a(95100,e.DiagnosticCategory.Message,\"Convert_invalid_character_to_its_html_entity_code_95100\",\"Convert invalid character to its html entity code\"),Convert_all_invalid_characters_to_HTML_entity_code:a(95101,e.DiagnosticCategory.Message,\"Convert_all_invalid_characters_to_HTML_entity_code_95101\",\"Convert all invalid characters to HTML entity code\"),Convert_function_expression_0_to_arrow_function:a(95105,e.DiagnosticCategory.Message,\"Convert_function_expression_0_to_arrow_function_95105\",\"Convert function expression '{0}' to arrow function\"),Convert_function_declaration_0_to_arrow_function:a(95106,e.DiagnosticCategory.Message,\"Convert_function_declaration_0_to_arrow_function_95106\",\"Convert function declaration '{0}' to arrow function\"),Fix_all_implicit_this_errors:a(95107,e.DiagnosticCategory.Message,\"Fix_all_implicit_this_errors_95107\",\"Fix all implicit-'this' errors\"),Wrap_invalid_character_in_an_expression_container:a(95108,e.DiagnosticCategory.Message,\"Wrap_invalid_character_in_an_expression_container_95108\",\"Wrap invalid character in an expression container\"),Wrap_all_invalid_characters_in_an_expression_container:a(95109,e.DiagnosticCategory.Message,\"Wrap_all_invalid_characters_in_an_expression_container_95109\",\"Wrap all invalid characters in an expression container\"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:a(95110,e.DiagnosticCategory.Message,\"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110\",\"Visit https://aka.ms/tsconfig to read more about this file\"),Add_a_return_statement:a(95111,e.DiagnosticCategory.Message,\"Add_a_return_statement_95111\",\"Add a return statement\"),Remove_braces_from_arrow_function_body:a(95112,e.DiagnosticCategory.Message,\"Remove_braces_from_arrow_function_body_95112\",\"Remove braces from arrow function body\"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:a(95113,e.DiagnosticCategory.Message,\"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113\",\"Wrap the following body with parentheses which should be an object literal\"),Add_all_missing_return_statement:a(95114,e.DiagnosticCategory.Message,\"Add_all_missing_return_statement_95114\",\"Add all missing return statement\"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:a(95115,e.DiagnosticCategory.Message,\"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115\",\"Remove braces from all arrow function bodies with relevant issues\"),Wrap_all_object_literal_with_parentheses:a(95116,e.DiagnosticCategory.Message,\"Wrap_all_object_literal_with_parentheses_95116\",\"Wrap all object literal with parentheses\"),Move_labeled_tuple_element_modifiers_to_labels:a(95117,e.DiagnosticCategory.Message,\"Move_labeled_tuple_element_modifiers_to_labels_95117\",\"Move labeled tuple element modifiers to labels\"),Convert_overload_list_to_single_signature:a(95118,e.DiagnosticCategory.Message,\"Convert_overload_list_to_single_signature_95118\",\"Convert overload list to single signature\"),Generate_get_and_set_accessors_for_all_overriding_properties:a(95119,e.DiagnosticCategory.Message,\"Generate_get_and_set_accessors_for_all_overriding_properties_95119\",\"Generate 'get' and 'set' accessors for all overriding properties\"),Wrap_in_JSX_fragment:a(95120,e.DiagnosticCategory.Message,\"Wrap_in_JSX_fragment_95120\",\"Wrap in JSX fragment\"),Wrap_all_unparented_JSX_in_JSX_fragment:a(95121,e.DiagnosticCategory.Message,\"Wrap_all_unparented_JSX_in_JSX_fragment_95121\",\"Wrap all unparented JSX in JSX fragment\"),Convert_arrow_function_or_function_expression:a(95122,e.DiagnosticCategory.Message,\"Convert_arrow_function_or_function_expression_95122\",\"Convert arrow function or function expression\"),Convert_to_anonymous_function:a(95123,e.DiagnosticCategory.Message,\"Convert_to_anonymous_function_95123\",\"Convert to anonymous function\"),Convert_to_named_function:a(95124,e.DiagnosticCategory.Message,\"Convert_to_named_function_95124\",\"Convert to named function\"),Convert_to_arrow_function:a(95125,e.DiagnosticCategory.Message,\"Convert_to_arrow_function_95125\",\"Convert to arrow function\"),Remove_parentheses:a(95126,e.DiagnosticCategory.Message,\"Remove_parentheses_95126\",\"Remove parentheses\"),Could_not_find_a_containing_arrow_function:a(95127,e.DiagnosticCategory.Message,\"Could_not_find_a_containing_arrow_function_95127\",\"Could not find a containing arrow function\"),Containing_function_is_not_an_arrow_function:a(95128,e.DiagnosticCategory.Message,\"Containing_function_is_not_an_arrow_function_95128\",\"Containing function is not an arrow function\"),Could_not_find_export_statement:a(95129,e.DiagnosticCategory.Message,\"Could_not_find_export_statement_95129\",\"Could not find export statement\"),This_file_already_has_a_default_export:a(95130,e.DiagnosticCategory.Message,\"This_file_already_has_a_default_export_95130\",\"This file already has a default export\"),Could_not_find_import_clause:a(95131,e.DiagnosticCategory.Message,\"Could_not_find_import_clause_95131\",\"Could not find import clause\"),Could_not_find_namespace_import_or_named_imports:a(95132,e.DiagnosticCategory.Message,\"Could_not_find_namespace_import_or_named_imports_95132\",\"Could not find namespace import or named imports\"),Selection_is_not_a_valid_type_node:a(95133,e.DiagnosticCategory.Message,\"Selection_is_not_a_valid_type_node_95133\",\"Selection is not a valid type node\"),No_type_could_be_extracted_from_this_type_node:a(95134,e.DiagnosticCategory.Message,\"No_type_could_be_extracted_from_this_type_node_95134\",\"No type could be extracted from this type node\"),Could_not_find_property_for_which_to_generate_accessor:a(95135,e.DiagnosticCategory.Message,\"Could_not_find_property_for_which_to_generate_accessor_95135\",\"Could not find property for which to generate accessor\"),Name_is_not_valid:a(95136,e.DiagnosticCategory.Message,\"Name_is_not_valid_95136\",\"Name is not valid\"),Can_only_convert_property_with_modifier:a(95137,e.DiagnosticCategory.Message,\"Can_only_convert_property_with_modifier_95137\",\"Can only convert property with modifier\"),Switch_each_misused_0_to_1:a(95138,e.DiagnosticCategory.Message,\"Switch_each_misused_0_to_1_95138\",\"Switch each misused '{0}' to '{1}'\"),Convert_to_optional_chain_expression:a(95139,e.DiagnosticCategory.Message,\"Convert_to_optional_chain_expression_95139\",\"Convert to optional chain expression\"),Could_not_find_convertible_access_expression:a(95140,e.DiagnosticCategory.Message,\"Could_not_find_convertible_access_expression_95140\",\"Could not find convertible access expression\"),Could_not_find_matching_access_expressions:a(95141,e.DiagnosticCategory.Message,\"Could_not_find_matching_access_expressions_95141\",\"Could not find matching access expressions\"),Can_only_convert_logical_AND_access_chains:a(95142,e.DiagnosticCategory.Message,\"Can_only_convert_logical_AND_access_chains_95142\",\"Can only convert logical AND access chains\"),Add_void_to_Promise_resolved_without_a_value:a(95143,e.DiagnosticCategory.Message,\"Add_void_to_Promise_resolved_without_a_value_95143\",\"Add 'void' to Promise resolved without a value\"),Add_void_to_all_Promises_resolved_without_a_value:a(95144,e.DiagnosticCategory.Message,\"Add_void_to_all_Promises_resolved_without_a_value_95144\",\"Add 'void' to all Promises resolved without a value\"),Use_element_access_for_0:a(95145,e.DiagnosticCategory.Message,\"Use_element_access_for_0_95145\",\"Use element access for '{0}'\"),Use_element_access_for_all_undeclared_properties:a(95146,e.DiagnosticCategory.Message,\"Use_element_access_for_all_undeclared_properties_95146\",\"Use element access for all undeclared properties.\"),Delete_all_unused_imports:a(95147,e.DiagnosticCategory.Message,\"Delete_all_unused_imports_95147\",\"Delete all unused imports\"),Infer_function_return_type:a(95148,e.DiagnosticCategory.Message,\"Infer_function_return_type_95148\",\"Infer function return type\"),Return_type_must_be_inferred_from_a_function:a(95149,e.DiagnosticCategory.Message,\"Return_type_must_be_inferred_from_a_function_95149\",\"Return type must be inferred from a function\"),Could_not_determine_function_return_type:a(95150,e.DiagnosticCategory.Message,\"Could_not_determine_function_return_type_95150\",\"Could not determine function return type\"),Could_not_convert_to_arrow_function:a(95151,e.DiagnosticCategory.Message,\"Could_not_convert_to_arrow_function_95151\",\"Could not convert to arrow function\"),Could_not_convert_to_named_function:a(95152,e.DiagnosticCategory.Message,\"Could_not_convert_to_named_function_95152\",\"Could not convert to named function\"),Could_not_convert_to_anonymous_function:a(95153,e.DiagnosticCategory.Message,\"Could_not_convert_to_anonymous_function_95153\",\"Could not convert to anonymous function\"),Can_only_convert_string_concatenation:a(95154,e.DiagnosticCategory.Message,\"Can_only_convert_string_concatenation_95154\",\"Can only convert string concatenation\"),Selection_is_not_a_valid_statement_or_statements:a(95155,e.DiagnosticCategory.Message,\"Selection_is_not_a_valid_statement_or_statements_95155\",\"Selection is not a valid statement or statements\"),Add_missing_function_declaration_0:a(95156,e.DiagnosticCategory.Message,\"Add_missing_function_declaration_0_95156\",\"Add missing function declaration '{0}'\"),Add_all_missing_function_declarations:a(95157,e.DiagnosticCategory.Message,\"Add_all_missing_function_declarations_95157\",\"Add all missing function declarations\"),Method_not_implemented:a(95158,e.DiagnosticCategory.Message,\"Method_not_implemented_95158\",\"Method not implemented.\"),Function_not_implemented:a(95159,e.DiagnosticCategory.Message,\"Function_not_implemented_95159\",\"Function not implemented.\"),Add_override_modifier:a(95160,e.DiagnosticCategory.Message,\"Add_override_modifier_95160\",\"Add 'override' modifier\"),Remove_override_modifier:a(95161,e.DiagnosticCategory.Message,\"Remove_override_modifier_95161\",\"Remove 'override' modifier\"),Add_all_missing_override_modifiers:a(95162,e.DiagnosticCategory.Message,\"Add_all_missing_override_modifiers_95162\",\"Add all missing 'override' modifiers\"),Remove_all_unnecessary_override_modifiers:a(95163,e.DiagnosticCategory.Message,\"Remove_all_unnecessary_override_modifiers_95163\",\"Remove all unnecessary 'override' modifiers\"),Can_only_convert_named_export:a(95164,e.DiagnosticCategory.Message,\"Can_only_convert_named_export_95164\",\"Can only convert named export\"),Add_missing_properties:a(95165,e.DiagnosticCategory.Message,\"Add_missing_properties_95165\",\"Add missing properties\"),Add_all_missing_properties:a(95166,e.DiagnosticCategory.Message,\"Add_all_missing_properties_95166\",\"Add all missing properties\"),Add_missing_attributes:a(95167,e.DiagnosticCategory.Message,\"Add_missing_attributes_95167\",\"Add missing attributes\"),Add_all_missing_attributes:a(95168,e.DiagnosticCategory.Message,\"Add_all_missing_attributes_95168\",\"Add all missing attributes\"),Add_undefined_to_optional_property_type:a(95169,e.DiagnosticCategory.Message,\"Add_undefined_to_optional_property_type_95169\",\"Add 'undefined' to optional property type\"),Convert_named_imports_to_default_import:a(95170,e.DiagnosticCategory.Message,\"Convert_named_imports_to_default_import_95170\",\"Convert named imports to default import\"),Delete_unused_param_tag_0:a(95171,e.DiagnosticCategory.Message,\"Delete_unused_param_tag_0_95171\",\"Delete unused '@param' tag '{0}'\"),Delete_all_unused_param_tags:a(95172,e.DiagnosticCategory.Message,\"Delete_all_unused_param_tags_95172\",\"Delete all unused '@param' tags\"),Rename_param_tag_name_0_to_1:a(95173,e.DiagnosticCategory.Message,\"Rename_param_tag_name_0_to_1_95173\",\"Rename '@param' tag name '{0}' to '{1}'\"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:a(18004,e.DiagnosticCategory.Error,\"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004\",\"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.\"),Classes_may_not_have_a_field_named_constructor:a(18006,e.DiagnosticCategory.Error,\"Classes_may_not_have_a_field_named_constructor_18006\",\"Classes may not have a field named 'constructor'.\"),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:a(18007,e.DiagnosticCategory.Error,\"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007\",\"JSX expressions may not use the comma operator. Did you mean to write an array?\"),Private_identifiers_cannot_be_used_as_parameters:a(18009,e.DiagnosticCategory.Error,\"Private_identifiers_cannot_be_used_as_parameters_18009\",\"Private identifiers cannot be used as parameters.\"),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:a(18010,e.DiagnosticCategory.Error,\"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010\",\"An accessibility modifier cannot be used with a private identifier.\"),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:a(18011,e.DiagnosticCategory.Error,\"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011\",\"The operand of a 'delete' operator cannot be a private identifier.\"),constructor_is_a_reserved_word:a(18012,e.DiagnosticCategory.Error,\"constructor_is_a_reserved_word_18012\",\"'#constructor' is a reserved word.\"),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:a(18013,e.DiagnosticCategory.Error,\"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013\",\"Property '{0}' is not accessible outside class '{1}' because it has a private identifier.\"),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:a(18014,e.DiagnosticCategory.Error,\"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014\",\"The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.\"),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:a(18015,e.DiagnosticCategory.Error,\"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015\",\"Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.\"),Private_identifiers_are_not_allowed_outside_class_bodies:a(18016,e.DiagnosticCategory.Error,\"Private_identifiers_are_not_allowed_outside_class_bodies_18016\",\"Private identifiers are not allowed outside class bodies.\"),The_shadowing_declaration_of_0_is_defined_here:a(18017,e.DiagnosticCategory.Error,\"The_shadowing_declaration_of_0_is_defined_here_18017\",\"The shadowing declaration of '{0}' is defined here\"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:a(18018,e.DiagnosticCategory.Error,\"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018\",\"The declaration of '{0}' that you probably intended to use is defined here\"),_0_modifier_cannot_be_used_with_a_private_identifier:a(18019,e.DiagnosticCategory.Error,\"_0_modifier_cannot_be_used_with_a_private_identifier_18019\",\"'{0}' modifier cannot be used with a private identifier.\"),An_enum_member_cannot_be_named_with_a_private_identifier:a(18024,e.DiagnosticCategory.Error,\"An_enum_member_cannot_be_named_with_a_private_identifier_18024\",\"An enum member cannot be named with a private identifier.\"),can_only_be_used_at_the_start_of_a_file:a(18026,e.DiagnosticCategory.Error,\"can_only_be_used_at_the_start_of_a_file_18026\",\"'#!' can only be used at the start of a file.\"),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:a(18027,e.DiagnosticCategory.Error,\"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027\",\"Compiler reserves name '{0}' when emitting private identifier downlevel.\"),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:a(18028,e.DiagnosticCategory.Error,\"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028\",\"Private identifiers are only available when targeting ECMAScript 2015 and higher.\"),Private_identifiers_are_not_allowed_in_variable_declarations:a(18029,e.DiagnosticCategory.Error,\"Private_identifiers_are_not_allowed_in_variable_declarations_18029\",\"Private identifiers are not allowed in variable declarations.\"),An_optional_chain_cannot_contain_private_identifiers:a(18030,e.DiagnosticCategory.Error,\"An_optional_chain_cannot_contain_private_identifiers_18030\",\"An optional chain cannot contain private identifiers.\"),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:a(18031,e.DiagnosticCategory.Error,\"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031\",\"The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.\"),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:a(18032,e.DiagnosticCategory.Error,\"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032\",\"The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.\"),Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhaustiveness_checks_consider_using_an_object_literal_instead:a(18033,e.DiagnosticCategory.Error,\"Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhau_18033\",\"Only numeric enums can have computed members, but this expression has type '{0}'. If you do not need exhaustiveness checks, consider using an object literal instead.\"),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:a(18034,e.DiagnosticCategory.Message,\"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034\",\"Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.\"),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:a(18035,e.DiagnosticCategory.Error,\"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035\",\"Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.\"),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:a(18036,e.DiagnosticCategory.Error,\"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036\",\"Class decorators can't be used with static private identifier. Consider removing the experimental decorator.\"),Await_expression_cannot_be_used_inside_a_class_static_block:a(18037,e.DiagnosticCategory.Error,\"Await_expression_cannot_be_used_inside_a_class_static_block_18037\",\"Await expression cannot be used inside a class static block.\"),For_await_loops_cannot_be_used_inside_a_class_static_block:a(18038,e.DiagnosticCategory.Error,\"For_await_loops_cannot_be_used_inside_a_class_static_block_18038\",\"'For await' loops cannot be used inside a class static block.\"),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:a(18039,e.DiagnosticCategory.Error,\"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039\",\"Invalid use of '{0}'. It cannot be used inside a class static block.\"),A_return_statement_cannot_be_used_inside_a_class_static_block:a(18041,e.DiagnosticCategory.Error,\"A_return_statement_cannot_be_used_inside_a_class_static_block_18041\",\"A 'return' statement cannot be used inside a class static block.\")}})(ke||(ke={}));var ke;(function(e){var a;function C(ye){return ye>=79}e.tokenIsIdentifierOrKeyword=C;function w(ye){return ye===31||C(ye)}e.tokenIsIdentifierOrKeywordOrGreaterThan=w,e.textToKeywordObj=(a={abstract:126,any:130,as:127,asserts:128,assert:129,bigint:158,boolean:133,break:81,case:82,catch:83,class:84,continue:86,const:85},a.constructor=134,a.debugger=87,a.declare=135,a.default=88,a.delete=89,a.do=90,a.else=91,a.enum=92,a.export=93,a.extends=94,a.false=95,a.finally=96,a.for=97,a.from=156,a.function=98,a.get=136,a.if=99,a.implements=117,a.import=100,a.in=101,a.infer=137,a.instanceof=102,a.interface=118,a.intrinsic=138,a.is=139,a.keyof=140,a.let=119,a.module=141,a.namespace=142,a.never=143,a.new=103,a.null=104,a.number=147,a.object=148,a.package=120,a.private=121,a.protected=122,a.public=123,a.override=159,a.out=144,a.readonly=145,a.require=146,a.global=157,a.return=105,a.set=149,a.static=124,a.string=150,a.super=106,a.switch=107,a.symbol=151,a.this=108,a.throw=109,a.true=110,a.try=111,a.type=152,a.typeof=112,a.undefined=153,a.unique=154,a.unknown=155,a.var=113,a.void=114,a.while=115,a.with=116,a.yield=125,a.async=131,a.await=132,a.of=160,a);var B=new e.Map(e.getEntries(e.textToKeywordObj)),E=new e.Map(e.getEntries(Ke(Ke({},e.textToKeywordObj),{\"{\":18,\"}\":19,\"(\":20,\")\":21,\"[\":22,\"]\":23,\".\":24,\"...\":25,\";\":26,\",\":27,\"<\":29,\">\":31,\"<=\":32,\">=\":33,\"==\":34,\"!=\":35,\"===\":36,\"!==\":37,\"=>\":38,\"+\":39,\"-\":40,\"**\":42,\"*\":41,\"/\":43,\"%\":44,\"++\":45,\"--\":46,\"<<\":47,\">\":48,\">>>\":49,\"&\":50,\"|\":51,\"^\":52,\"!\":53,\"~\":54,\"&&\":55,\"||\":56,\"?\":57,\"??\":60,\"?.\":28,\":\":58,\"=\":63,\"+=\":64,\"-=\":65,\"*=\":66,\"**=\":67,\"/=\":68,\"%=\":69,\"<<=\":70,\">>=\":71,\">>>=\":72,\"&=\":73,\"|=\":74,\"^=\":78,\"||=\":75,\"&&=\":76,\"??=\":77,\"@\":59,\"#\":62,\"`\":61}))),Q=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1569,1594,1600,1610,1649,1747,1749,1749,1765,1766,1786,1788,1808,1808,1810,1836,1920,1957,2309,2361,2365,2365,2384,2384,2392,2401,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2784,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2877,2908,2909,2911,2913,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3294,3294,3296,3297,3333,3340,3342,3344,3346,3368,3370,3385,3424,3425,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3805,3840,3840,3904,3911,3913,3946,3976,3979,4096,4129,4131,4135,4137,4138,4176,4181,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6067,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12329,12337,12341,12344,12346,12353,12436,12445,12446,12449,12538,12540,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65138,65140,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],le=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,768,846,864,866,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1155,1158,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1425,1441,1443,1465,1467,1469,1471,1471,1473,1474,1476,1476,1488,1514,1520,1522,1569,1594,1600,1621,1632,1641,1648,1747,1749,1756,1759,1768,1770,1773,1776,1788,1808,1836,1840,1866,1920,1968,2305,2307,2309,2361,2364,2381,2384,2388,2392,2403,2406,2415,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2524,2525,2527,2531,2534,2545,2562,2562,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2649,2652,2654,2654,2662,2676,2689,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2784,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2876,2883,2887,2888,2891,2893,2902,2903,2908,2909,2911,2913,2918,2927,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3010,3014,3016,3018,3021,3031,3031,3047,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3134,3140,3142,3144,3146,3149,3157,3158,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3395,3398,3400,3402,3405,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3805,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3946,3953,3972,3974,3979,3984,3991,3993,4028,4038,4038,4096,4129,4131,4135,4137,4138,4140,4146,4150,4153,4160,4169,4176,4185,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4969,4977,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6099,6112,6121,6160,6169,6176,6263,6272,6313,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8319,8319,8400,8412,8417,8417,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12335,12337,12341,12344,12346,12353,12436,12441,12442,12445,12446,12449,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65056,65059,65075,65076,65101,65103,65136,65138,65140,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500],N=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],p=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],m=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2208,2228,2230,2237,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42943,42946,42950,42999,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69376,69404,69415,69415,69424,69445,69600,69622,69635,69687,69763,69807,69840,69864,69891,69926,69956,69956,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70751,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71680,71723,71840,71903,71935,71935,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72384,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,123136,123180,123191,123197,123214,123214,123584,123627,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101],G=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2208,2228,2230,2237,2259,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3162,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3328,3331,3333,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7673,7675,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42943,42946,42950,42999,43047,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69376,69404,69415,69415,69424,69456,69600,69622,69632,69702,69734,69743,69759,69818,69840,69864,69872,69881,69888,69940,69942,69951,69956,69958,69968,70003,70006,70006,70016,70084,70089,70092,70096,70106,70108,70108,70144,70161,70163,70199,70206,70206,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70751,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71680,71738,71840,71913,71935,71935,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72384,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92768,92777,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,123136,123180,123184,123197,123200,123209,123214,123214,123584,123641,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,917760,917999],oe=/^\\/\\/\\/?\\s*@(ts-expect-error|ts-ignore)/,f=/^(?:\\/|\\*)*\\s*@(ts-expect-error|ts-ignore)/;function T(ye,Ae){if(ye=2?T(ye,m):Ae===1?T(ye,N):T(ye,Q)}e.isUnicodeIdentifierStart=K;function b(ye,Ae){return Ae>=2?T(ye,G):Ae===1?T(ye,p):T(ye,le)}function se(ye){var Ae=[];return ye.forEach(function(er,ir){Ae[er]=ir}),Ae}var J=se(E);function ie(ye){return J[ye]}e.tokenToString=ie;function R(ye){return E.get(ye)}e.stringToToken=R;function q(ye){for(var Ae=new Array,er=0,ir=0;er127&&y(Cr)&&(Ae.push(ir),ir=er);break}}return Ae.push(ir),Ae}e.computeLineStarts=q;function O(ye,Ae,er,ir){return ye.getPositionOfLineAndCharacter?ye.getPositionOfLineAndCharacter(Ae,er,ir):ve(ee(ye),Ae,er,ye.text,ir)}e.getPositionOfLineAndCharacter=O;function ve(ye,Ae,er,ir,Cr){(Ae<0||Ae>=ye.length)&&(Cr?Ae=Ae<0?0:Ae>=ye.length?ye.length-1:Ae:e.Debug.fail(\"Bad line number. Line: \".concat(Ae,\", lineStarts.length: \").concat(ye.length,\" , line map is correct? \").concat(ir!==void 0?e.arraysEqual(ye,q(ir)):\"unknown\")));var Ye=ye[Ae]+er;return Cr?Ye>ye[Ae+1]?ye[Ae+1]:typeof ir==\"string\"&&Ye>ir.length?ir.length:Ye:(Ae=8192&&ye<=8203||ye===8239||ye===8287||ye===12288||ye===65279}e.isWhiteSpaceSingleLine=A;function y(ye){return ye===10||ye===13||ye===8232||ye===8233}e.isLineBreak=y;function V(ye){return ye>=48&&ye<=57}function L(ye){return V(ye)||ye>=65&&ye<=70||ye>=97&&ye<=102}function P(ye){return ye<=1114111}function k(ye){return ye>=48&&ye<=55}e.isOctalDigit=k;function Y(ye,Ae){var er=ye.charCodeAt(Ae);switch(er){case 13:case 10:case 9:case 11:case 12:case 32:case 47:case 60:case 124:case 61:case 62:return!0;case 35:return Ae===0;default:return er>127}}e.couldStartTrivia=Y;function U(ye,Ae,er,ir,Cr){if(e.positionIsSynthesized(Ae))return Ae;for(var Ye=!1;;){var Br=ye.charCodeAt(Ae);switch(Br){case 13:ye.charCodeAt(Ae+1)===10&&Ae++;case 10:if(Ae++,er)return Ae;Ye=!!Cr;continue;case 9:case 11:case 12:case 32:Ae++;continue;case 47:if(ir)break;if(ye.charCodeAt(Ae+1)===47){for(Ae+=2;Ae127&&$(Br)){Ae++;continue}break}return Ae}}e.skipTrivia=U;var j=7;function H(ye,Ae){if(e.Debug.assert(Ae>=0),Ae===0||y(ye.charCodeAt(Ae-1))){var er=ye.charCodeAt(Ae);if(Ae+j=0&&er127&&$(Ir)){be&&y(Ir)&&(lr=!0),er++;continue}break e}}return be&&(ur=Cr(Er,Ne,n,lr,Ye,ur)),ur}function g(ye,Ae,er,ir){return fe(!1,ye,Ae,!1,er,ir)}e.forEachLeadingCommentRange=g;function ne(ye,Ae,er,ir){return fe(!1,ye,Ae,!0,er,ir)}e.forEachTrailingCommentRange=ne;function ue(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!1,er,ir,Cr)}e.reduceEachLeadingCommentRange=ue;function We(ye,Ae,er,ir,Cr){return fe(!0,ye,Ae,!0,er,ir,Cr)}e.reduceEachTrailingCommentRange=We;function Fe(ye,Ae,er,ir,Cr,Ye){return Ye||(Ye=[]),Ye.push({kind:er,pos:ye,end:Ae,hasTrailingNewLine:ir}),Ye}function Z(ye,Ae){return ue(ye,Ae,Fe,void 0,void 0)}e.getLeadingCommentRanges=Z;function Be(ye,Ae){return We(ye,Ae,Fe,void 0,void 0)}e.getTrailingCommentRanges=Be;function ge(ye){var Ae=l.exec(ye);if(Ae)return Ae[0]}e.getShebang=ge;function Re(ye,Ae){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye===36||ye===95||ye>127&&K(ye,Ae)}e.isIdentifierStart=Re;function ze(ye,Ae,er){return ye>=65&&ye<=90||ye>=97&&ye<=122||ye>=48&&ye<=57||ye===36||ye===95||(er===1?ye===45||ye===58:!1)||ye>127&&b(ye,Ae)}e.isIdentifierPart=ze;function Ee(ye,Ae,er){var ir=rr(ye,0);if(!Re(ir,Ae))return!1;for(var Cr=Ie(ir);Cr116},isReservedWord:function(){return Ge>=81&&Ge<=116},isUnterminated:function(){return(yr&4)!==0},getCommentDirectives:function(){return Ir},getNumericLiteralFlags:function(){return yr&1008},getTokenFlags:function(){return yr},reScanGreaterToken:Wr,reScanAsteriskEqualsToken:Je,reScanSlashToken:xe,reScanTemplateToken:Ar,reScanTemplateHeadOrNoSubstitutionTemplate:Oe,scanJsxIdentifier:De,scanJsxAttributeValue:gr,reScanJsxAttributeValue:Vr,reScanJsxToken:nr,reScanLessThanToken:Mr,reScanHashToken:Pe,reScanQuestionToken:Ue,reScanInvalidIdentifier:Sr,scanJsxToken:fr,scanJsDocToken:Tr,scan:Ze,getText:ct,clearCommentDirectives:Li,setText:nt,setScriptTarget:xt,setLanguageVariant:ut,setOnError:Mt,setTextPos:Dt,setInJSDocType:Rt,tryScan:Wi,lookAhead:Yi,scanRange:Ui};return e.Debug.isDebugging&&Object.defineProperty(Ur,\"__debugShowCurrentPositionInText\",{get:function(){var Ii=Ur.getText();return Ii.slice(0,Ur.getStartPos())+\"\\u2551\"+Ii.slice(Ur.getStartPos())}}),Ur;function ii(Ii,Ki,Fi){if(Ki===void 0&&(Ki=Ne),Cr){var ui=Ne;Ne=Ki,Cr(Ii,Fi||0),Ne=ui}}function mi(){for(var Ii=Ne,Ki=!1,Fi=!1,ui=\"\";;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Ki?(Ki=!1,Fi=!0,ui+=Er.substring(Ii,Ne)):ii(Fi?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++,Ii=Ne;continue}if(V(Bt)){Ki=!0,Fi=!1,Ne++;continue}break}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),ui+Er.substring(Ii,Ne)}function pe(){var Ii=Ne,Ki=mi(),Fi,ui;Er.charCodeAt(Ne)===46&&(Ne++,Fi=mi());var Bt=Ne;if(Er.charCodeAt(Ne)===69||Er.charCodeAt(Ne)===101){Ne++,yr|=16,(Er.charCodeAt(Ne)===43||Er.charCodeAt(Ne)===45)&&Ne++;var wt=Ne,na=mi();na?(ui=Er.substring(Bt,wt)+na,Bt=Ne):ii(e.Diagnostics.Digit_expected)}var Ai;if(yr&512?(Ai=Ki,Fi&&(Ai+=\".\"+Fi),ui&&(Ai+=ui)):Ai=Er.substring(Ii,Bt),Fi!==void 0||yr&16)return or(Ii,Fi===void 0&&!!(yr&16)),{type:8,value:\"\"+ +Ai};ur=Ai;var Oi=ti();return or(Ii),{type:Oi,value:ur}}function or(Ii,Ki){if(!!Re(rr(Er,Ne),ye)){var Fi=Ne,ui=ae().length;ui===1&&Er[Fi]===\"n\"?ii(Ki?e.Diagnostics.A_bigint_literal_cannot_use_exponential_notation:e.Diagnostics.A_bigint_literal_must_be_an_integer,Ii,Fi-Ii+1):(ii(e.Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal,Fi,ui),Ne=Fi)}}function qr(){for(var Ii=Ne;k(Er.charCodeAt(Ne));)Ne++;return+Er.substring(Ii,Ne)}function si(Ii,Ki){var Fi=wi(Ii,!1,Ki);return Fi?parseInt(Fi,16):-1}function Di(Ii,Ki){return wi(Ii,!0,Ki)}function wi(Ii,Ki,Fi){for(var ui=[],Bt=!1,wt=!1;ui.length=65&&na<=70)na+=97-65;else if(!(na>=48&&na<=57||na>=97&&na<=102))break;ui.push(na),Ne++,wt=!1}return ui.length=n){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}var Bt=Er.charCodeAt(Ne);if(Bt===Ki){Fi+=Er.substring(ui,Ne),Ne++;break}if(Bt===92&&!Ii){Fi+=Er.substring(ui,Ne),Fi+=Gi(),ui=Ne;continue}if(y(Bt)&&!Ii){Fi+=Er.substring(ui,Ne),yr|=4,ii(e.Diagnostics.Unterminated_string_literal);break}Ne++}return Fi}function et(Ii){var Ki=Er.charCodeAt(Ne)===96;Ne++;for(var Fi=Ne,ui=\"\",Bt;;){if(Ne>=n){ui+=Er.substring(Fi,Ne),yr|=4,ii(e.Diagnostics.Unterminated_template_literal),Bt=Ki?14:17;break}var wt=Er.charCodeAt(Ne);if(wt===96){ui+=Er.substring(Fi,Ne),Ne++,Bt=Ki?14:17;break}if(wt===36&&Ne+1=n)return ii(e.Diagnostics.Unexpected_end_of_text),\"\";var Fi=Er.charCodeAt(Ne);switch(Ne++,Fi){case 48:return Ii&&Ne=0?String.fromCharCode(Ki):(ii(e.Diagnostics.Hexadecimal_digit_expected),\"\")}function Zt(){var Ii=Di(1,!1),Ki=Ii?parseInt(Ii,16):-1,Fi=!1;return Ki<0?(ii(e.Diagnostics.Hexadecimal_digit_expected),Fi=!0):Ki>1114111&&(ii(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),Fi=!0),Ne>=n?(ii(e.Diagnostics.Unexpected_end_of_text),Fi=!0):Er.charCodeAt(Ne)===125?Ne++:(ii(e.Diagnostics.Unterminated_Unicode_escape_sequence),Fi=!0),Fi?\"\":de(Ki)}function _r(){if(Ne+5=2&&rr(Er,Ne+1)===117&&rr(Er,Ne+2)===123){var Ii=Ne;Ne+=3;var Ki=Di(1,!1),Fi=Ki?parseInt(Ki,16):-1;return Ne=Ii,Fi}return-1}function ae(){for(var Ii=\"\",Ki=Ne;Ne=0&&ze(Fi,ye)){Ne+=3,yr|=8,Ii+=Zt(),Ki=Ne;continue}if(Fi=_r(),!(Fi>=0&&ze(Fi,ye)))break;yr|=1024,Ii+=Er.substring(Ki,Ne),Ii+=de(Fi),Ne+=6,Ki=Ne}else break}return Ii+=Er.substring(Ki,Ne),Ii}function Xe(){var Ii=ur.length;if(Ii>=2&&Ii<=12){var Ki=ur.charCodeAt(0);if(Ki>=97&&Ki<=122){var Fi=B.get(ur);if(Fi!==void 0)return Ge=Fi}}return Ge=79}function Jr(Ii){for(var Ki=\"\",Fi=!1,ui=!1;;){var Bt=Er.charCodeAt(Ne);if(Bt===95){yr|=512,Fi?(Fi=!1,ui=!0):ii(ui?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne,1),Ne++;continue}if(Fi=!0,!V(Bt)||Bt-48>=Ii)break;Ki+=Er[Ne],Ne++,ui=!1}return Er.charCodeAt(Ne-1)===95&&ii(e.Diagnostics.Numeric_separators_are_not_allowed_here,Ne-1,1),Ki}function ti(){if(Er.charCodeAt(Ne)===110)return ur+=\"n\",yr&384&&(ur=e.parsePseudoBigInt(ur)+\"n\"),Ne++,9;var Ii=yr&128?parseInt(ur.slice(2),2):yr&256?parseInt(ur.slice(2),8):+ur;return ur=\"\"+Ii,8}function Ze(){var Ii;lr=Ne,yr=0;for(var Ki=!1;;){if(be=Ne,Ne>=n)return Ge=1;var Fi=rr(Er,Ne);if(Fi===35&&Ne===0&&d(Er,Ne)){if(Ne=D(Er,Ne),Ae)continue;return Ge=6}switch(Fi){case 10:case 13:if(yr|=1,Ae){Ne++;continue}else return Fi===13&&Ne+1=0&&Re(na,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Ai=_r();return Ai>=0&&Re(Ai,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Ai)+ae(),Ge=Xe()):(ii(e.Diagnostics.Invalid_character),Ne++,Ge=0);case 35:return Ne!==0&&Er[Ne+1]===\"!\"?(ii(e.Diagnostics.can_only_be_used_at_the_start_of_a_file),Ne++,Ge=0):(Re(rr(Er,Ne+1),ye)?(Ne++,zr(rr(Er,Ne),ye)):(ur=String.fromCharCode(rr(Er,Ne)),ii(e.Diagnostics.Invalid_character,Ne++,Ie(Fi))),Ge=80);default:var Oi=zr(Fi,ye);if(Oi)return Ge=Oi;if(A(Fi)){Ne+=Ie(Fi);continue}else if(y(Fi)){yr|=1,Ne+=Ie(Fi);continue}var ji=Ie(Fi);return ii(e.Diagnostics.Invalid_character,Ne,ji),Ne+=ji,Ge=0}}}function Sr(){e.Debug.assert(Ge===0,\"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'.\"),Ne=be=lr,yr=0;var Ii=rr(Er,Ne),Ki=zr(Ii,99);return Ki?Ge=Ki:(Ne+=Ie(Ii),Ge)}function zr(Ii,Ki){var Fi=Ii;if(Re(Fi,Ki)){for(Ne+=Ie(Fi);Ne=n)return Ge=1;var Ki=Er.charCodeAt(Ne);if(Ki===60)return Er.charCodeAt(Ne+1)===47?(Ne+=2,Ge=30):(Ne++,Ge=29);if(Ki===123)return Ne++,Ge=18;for(var Fi=0;Ne0)break;$(Ki)||(Fi=Ne)}Ne++}return ur=Er.substring(lr,Ne),Fi===-1?12:11}function De(){if(C(Ge)){for(var Ii=!1;Ne=n)return Ge=1;var Ii=rr(Er,Ne);switch(Ne+=Ie(Ii),Ii){case 9:case 11:case 12:case 32:for(;Ne=0&&Re(Ki,ye))return Ne+=3,yr|=8,ur=Zt()+ae(),Ge=Xe();var Fi=_r();return Fi>=0&&Re(Fi,ye)?(Ne+=6,yr|=1024,ur=String.fromCharCode(Fi)+ae(),Ge=Xe()):(Ne++,Ge=0)}if(Re(Ii,ye)){for(var ui=Ii;Ne=0),Ne=Ii,lr=Ii,be=Ii,Ge=0,ur=void 0,yr=0}function Rt(Ii){wr+=Ii?1:-1}}e.createScanner=He;var rr=String.prototype.codePointAt?function(ye,Ae){return ye.codePointAt(Ae)}:function(Ae,er){var ir=Ae.length;if(!(er<0||er>=ir)){var Cr=Ae.charCodeAt(er);if(Cr>=55296&&Cr<=56319&&ir>er+1){var Ye=Ae.charCodeAt(er+1);if(Ye>=56320&&Ye<=57343)return(Cr-55296)*1024+Ye-56320+65536}return Cr}};function Ie(ye){return ye>=65536?2:1}function _e(ye){if(e.Debug.assert(0<=ye&&ye<=1114111),ye<=65535)return String.fromCharCode(ye);var Ae=Math.floor((ye-65536)/1024)+55296,er=(ye-65536)%1024+56320;return String.fromCharCode(Ae,er)}var we=String.fromCodePoint?function(ye){return String.fromCodePoint(ye)}:_e;function de(ye){return we(ye)}e.utf16EncodeAsString=de})(ke||(ke={}));var ke;(function(e){function a(je){return e.pathIsRelative(je)||e.isRootedDiskPath(je)}e.isExternalModuleNameRelative=a;function C(je){return e.sortAndDeduplicate(je,e.compareDiagnostics)}e.sortAndDeduplicateDiagnostics=C;function w(je){switch(e.getEmitScriptTarget(je)){case 99:return\"lib.esnext.full.d.ts\";case 9:return\"lib.es2022.full.d.ts\";case 8:return\"lib.es2021.full.d.ts\";case 7:return\"lib.es2020.full.d.ts\";case 6:return\"lib.es2019.full.d.ts\";case 5:return\"lib.es2018.full.d.ts\";case 4:return\"lib.es2017.full.d.ts\";case 3:return\"lib.es2016.full.d.ts\";case 2:return\"lib.es6.d.ts\";default:return\"lib.d.ts\"}}e.getDefaultLibFileName=w;function B(je){return je.start+je.length}e.textSpanEnd=B;function E(je){return je.length===0}e.textSpanIsEmpty=E;function Q(je,Hr){return Hr>=je.start&&Hr=je.pos&&Hr<=je.end}e.textRangeContainsPositionInclusive=le;function N(je,Hr){return Hr.start>=je.start&&B(Hr)<=B(je)}e.textSpanContainsTextSpan=N;function p(je,Hr){return m(je,Hr)!==void 0}e.textSpanOverlapsWith=p;function m(je,Hr){var pt=K(je,Hr);return pt&&pt.length===0?void 0:pt}e.textSpanOverlap=m;function G(je,Hr){return f(je.start,je.length,Hr.start,Hr.length)}e.textSpanIntersectsWithTextSpan=G;function oe(je,Hr,pt){return f(je.start,je.length,Hr,pt)}e.textSpanIntersectsWith=oe;function f(je,Hr,pt,Pt){var ga=je+Hr,ua=pt+Pt;return pt<=ga&&ua>=je}e.decodedTextSpanIntersectsWith=f;function T(je,Hr){return Hr<=B(je)&&Hr>=je.start}e.textSpanIntersectsWithPosition=T;function K(je,Hr){var pt=Math.max(je.start,Hr.start),Pt=Math.min(B(je),B(Hr));return pt<=Pt?se(pt,Pt):void 0}e.textSpanIntersection=K;function b(je,Hr){if(je<0)throw new Error(\"start < 0\");if(Hr<0)throw new Error(\"length < 0\");return{start:je,length:Hr}}e.createTextSpan=b;function se(je,Hr){return b(je,Hr-je)}e.createTextSpanFromBounds=se;function J(je){return b(je.span.start,je.newLength)}e.textChangeRangeNewSpan=J;function ie(je){return E(je.span)&&je.newLength===0}e.textChangeRangeIsUnchanged=ie;function R(je,Hr){if(Hr<0)throw new Error(\"newLength < 0\");return{span:je,newLength:Hr}}e.createTextChangeRange=R,e.unchangedTextChangeRange=R(b(0,0),0);function q(je){if(je.length===0)return e.unchangedTextChangeRange;if(je.length===1)return je[0];for(var Hr=je[0],pt=Hr.span.start,Pt=B(Hr.span),ga=pt+Hr.newLength,ua=1;ua=2&&je.charCodeAt(0)===95&&je.charCodeAt(1)===95?\"_\"+je:je}e.escapeLeadingUnderscores=Y;function U(je){var Hr=je;return Hr.length>=3&&Hr.charCodeAt(0)===95&&Hr.charCodeAt(1)===95&&Hr.charCodeAt(2)===95?Hr.substr(1):Hr}e.unescapeLeadingUnderscores=U;function j(je){return U(je.escapedText)}e.idText=j;function H(je){return je.valueDeclaration&&Ui(je.valueDeclaration)?j(je.valueDeclaration.name):U(je.escapedName)}e.symbolName=H;function I(je){var Hr=je.parent.parent;if(!!Hr){if(Si(Hr))return l(Hr);switch(Hr.kind){case 237:if(Hr.declarationList&&Hr.declarationList.declarations[0])return l(Hr.declarationList.declarations[0]);break;case 238:var pt=Hr.expression;switch(pt.kind===221&&pt.operatorToken.kind===63&&(pt=pt.left),pt.kind){case 206:return pt.name;case 207:var Pt=pt.argumentExpression;if(e.isIdentifier(Pt))return Pt}break;case 212:return l(Hr.expression);case 250:{if(Si(Hr.statement)||En(Hr.statement))return l(Hr.statement);break}}}}function l(je){var Hr=ne(je);return Hr&&e.isIdentifier(Hr)?Hr:void 0}function d(je,Hr){return!!(fe(je)&&e.isIdentifier(je.name)&&j(je.name)===j(Hr)||e.isVariableStatement(je)&&e.some(je.declarationList.declarations,function(pt){return d(pt,Hr)}))}e.nodeHasName=d;function D(je){return je.name||I(je)}e.getNameOfJSDocTypedef=D;function fe(je){return!!je.name}e.isNamedDeclaration=fe;function g(je){switch(je.kind){case 79:return je;case 347:case 340:{var Hr=je.name;if(Hr.kind===161)return Hr.right;break}case 208:case 221:{var pt=je;switch(e.getAssignmentDeclarationKind(pt)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(pt.left);case 7:case 8:case 9:return pt.arguments[1];default:return}}case 345:return D(je);case 339:return I(je);case 271:{var Pt=je.expression;return e.isIdentifier(Pt)?Pt:void 0}case 207:var ga=je;if(e.isBindableStaticElementAccessExpression(ga))return ga.argumentExpression}return je.name}e.getNonAssignedNameOfDeclaration=g;function ne(je){if(je!==void 0)return g(je)||(e.isFunctionExpression(je)||e.isArrowFunction(je)||e.isClassExpression(je)?ue(je):void 0)}e.getNameOfDeclaration=ne;function ue(je){if(je.parent){if(e.isPropertyAssignment(je.parent)||e.isBindingElement(je.parent))return je.parent.name;if(e.isBinaryExpression(je.parent)&&je===je.parent.right){if(e.isIdentifier(je.parent.left))return je.parent.left;if(e.isAccessExpression(je.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(je.parent.left)}else if(e.isVariableDeclaration(je.parent)&&e.isIdentifier(je.parent.name))return je.parent.name}else return}e.getAssignedName=ue;function We(je,Hr){if(je.name)if(e.isIdentifier(je.name)){var pt=je.name.escapedText;return yr(je.parent,Hr).filter(function(ua){return e.isJSDocParameterTag(ua)&&e.isIdentifier(ua.name)&&ua.name.escapedText===pt})}else{var Pt=je.parent.parameters.indexOf(je);e.Debug.assert(Pt>-1,\"Parameters should always be in their parents' parameter list\");var ga=yr(je.parent,Hr).filter(e.isJSDocParameterTag);if(Pt=161}e.isNodeKind=vr;function mr(je){return je>=0&&je<=160}e.isTokenKind=mr;function Ar(je){return mr(je.kind)}e.isToken=Ar;function Oe(je){return je.hasOwnProperty(\"pos\")&&je.hasOwnProperty(\"end\")}e.isNodeArray=Oe;function nr(je){return 8<=je&&je<=14}e.isLiteralKind=nr;function Mr(je){return nr(je.kind)}e.isLiteralExpression=Mr;function Pe(je){return 14<=je&&je<=17}e.isTemplateLiteralKind=Pe;function Ue(je){return Pe(je.kind)}e.isTemplateLiteralToken=Ue;function fr(je){var Hr=je.kind;return Hr===16||Hr===17}e.isTemplateMiddleOrTemplateTail=fr;function De(je){return e.isImportSpecifier(je)||e.isExportSpecifier(je)}e.isImportOrExportSpecifier=De;function gr(je){switch(je.kind){case 270:case 275:return je.isTypeOnly||je.parent.parent.isTypeOnly;case 268:return je.parent.isTypeOnly;case 267:case 265:return je.isTypeOnly;default:return!1}}e.isTypeOnlyImportOrExportDeclaration=gr;function Vr(je){return e.isStringLiteral(je)||e.isIdentifier(je)}e.isAssertionKey=Vr;function Tr(je){return je.kind===10||Pe(je.kind)}e.isStringTextContainingNode=Tr;function vi(je){return e.isIdentifier(je)&&(je.autoGenerateFlags&7)>0}e.isGeneratedIdentifier=vi;function Ui(je){return(e.isPropertyDeclaration(je)||Oi(je))&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierClassElementDeclaration=Ui;function Yi(je){return e.isPropertyAccessExpression(je)&&e.isPrivateIdentifier(je.name)}e.isPrivateIdentifierPropertyAccessExpression=Yi;function Wi(je){switch(je){case 126:case 131:case 85:case 135:case 88:case 93:case 101:case 123:case 121:case 122:case 145:case 124:case 144:case 159:return!0}return!1}e.isModifierKind=Wi;function ct(je){return!!(e.modifierToFlag(je)&16476)}e.isParameterPropertyModifier=ct;function Li(je){return ct(je)||je===124||je===159}e.isClassMemberModifier=Li;function nt(je){return Wi(je.kind)}e.isModifier=nt;function Mt(je){var Hr=je.kind;return Hr===161||Hr===79}e.isEntityName=Mt;function xt(je){var Hr=je.kind;return Hr===79||Hr===80||Hr===10||Hr===8||Hr===162}e.isPropertyName=xt;function ut(je){var Hr=je.kind;return Hr===79||Hr===201||Hr===202}e.isBindingName=ut;function Dt(je){return!!je&&ui(je.kind)}e.isFunctionLike=Dt;function Rt(je){return!!je&&(ui(je.kind)||e.isClassStaticBlockDeclaration(je))}e.isFunctionLikeOrClassStaticBlockDeclaration=Rt;function Ii(je){return je&&Fi(je.kind)}e.isFunctionLikeDeclaration=Ii;function Ki(je){return je.kind===110||je.kind===95}e.isBooleanLiteral=Ki;function Fi(je){switch(je){case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return!1}}function ui(je){switch(je){case 168:case 174:case 323:case 175:case 176:case 179:case 317:case 180:return!0;default:return Fi(je)}}e.isFunctionLikeKind=ui;function Bt(je){return e.isSourceFile(je)||e.isModuleBlock(je)||e.isBlock(je)&&Dt(je.parent)}e.isFunctionOrModuleBlock=Bt;function wt(je){var Hr=je.kind;return Hr===171||Hr===167||Hr===169||Hr===172||Hr===173||Hr===176||Hr===170||Hr===234}e.isClassElement=wt;function na(je){return je&&(je.kind===257||je.kind===226)}e.isClassLike=na;function Ai(je){return je&&(je.kind===172||je.kind===173)}e.isAccessor=Ai;function Oi(je){switch(je.kind){case 169:case 172:case 173:return!0;default:return!1}}e.isMethodOrAccessor=Oi;function ji(je){var Hr=je.kind;return Hr===175||Hr===174||Hr===166||Hr===168||Hr===176||Hr===172||Hr===173}e.isTypeElement=ji;function Vi(je){return ji(je)||wt(je)}e.isClassOrTypeElement=Vi;function at(je){var Hr=je.kind;return Hr===296||Hr===297||Hr===298||Hr===169||Hr===172||Hr===173}e.isObjectLiteralElementLike=at;function At(je){return e.isTypeNodeKind(je.kind)}e.isTypeNode=At;function ba(je){switch(je.kind){case 179:case 180:return!0}return!1}e.isFunctionOrConstructorTypeNode=ba;function $a(je){if(je){var Hr=je.kind;return Hr===202||Hr===201}return!1}e.isBindingPattern=$a;function Qa(je){var Hr=je.kind;return Hr===204||Hr===205}e.isAssignmentPattern=Qa;function ai(je){var Hr=je.kind;return Hr===203||Hr===227}e.isArrayBindingElement=ai;function Dn(je){switch(je.kind){case 254:case 164:case 203:return!0}return!1}e.isDeclarationBindingElement=Dn;function ka(je){return Ba(je)||Cn(je)}e.isBindingOrAssignmentPattern=ka;function Ba(je){switch(je.kind){case 201:case 205:return!0}return!1}e.isObjectBindingOrAssignmentPattern=Ba;function pn(je){switch(je.kind){case 203:case 296:case 297:case 298:return!0}return!1}e.isObjectBindingOrAssignmentElement=pn;function Cn(je){switch(je.kind){case 202:case 204:return!0}return!1}e.isArrayBindingOrAssignmentPattern=Cn;function Bi(je){var Hr=je.kind;return Hr===206||Hr===161||Hr===200}e.isPropertyAccessOrQualifiedNameOrImportTypeNode=Bi;function kn(je){var Hr=je.kind;return Hr===206||Hr===161}e.isPropertyAccessOrQualifiedName=kn;function xn(je){switch(je.kind){case 280:case 279:case 208:case 209:case 210:case 165:return!0;default:return!1}}e.isCallLikeExpression=xn;function Kn(je){return je.kind===208||je.kind===209}e.isCallOrNewExpression=Kn;function Pn(je){var Hr=je.kind;return Hr===223||Hr===14}e.isTemplateLiteral=Pn;function eo(je){return Rn(Jr(je).kind)}e.isLeftHandSideExpression=eo;function Rn(je){switch(je){case 206:case 207:case 209:case 208:case 278:case 279:case 282:case 210:case 204:case 212:case 205:case 226:case 213:case 79:case 80:case 13:case 8:case 9:case 10:case 14:case 223:case 95:case 104:case 108:case 110:case 106:case 230:case 228:case 231:case 100:return!0;default:return!1}}function Da(je){return bo(Jr(je).kind)}e.isUnaryExpression=Da;function bo(je){switch(je){case 219:case 220:case 215:case 216:case 217:case 218:case 211:return!0;default:return Rn(je)}}function Ro(je){switch(je.kind){case 220:return!0;case 219:return je.operator===45||je.operator===46;default:return!1}}e.isUnaryExpressionWithWrite=Ro;function En(je){return Wn(Jr(je).kind)}e.isExpression=En;function Wn(je){switch(je){case 222:case 224:case 214:case 221:case 225:case 229:case 227:case 351:case 350:return!0;default:return bo(je)}}function to(je){var Hr=je.kind;return Hr===211||Hr===229}e.isAssertionExpression=to;function Co(je){return e.isNotEmittedStatement(je)||e.isPartiallyEmittedExpression(je)}e.isNotEmittedOrPartiallyEmittedNode=Co;function Ko(je,Hr){switch(je.kind){case 242:case 243:case 244:case 240:case 241:return!0;case 250:return Hr&&Ko(je.statement,Hr)}return!1}e.isIterationStatement=Ko;function Oo(je){return e.isExportAssignment(je)||e.isExportDeclaration(je)}e.isScopeMarker=Oo;function no(je){return e.some(je,Oo)}e.hasScopeMarker=no;function $o(je){return!e.isAnyImportOrReExport(je)&&!e.isExportAssignment(je)&&!e.hasSyntacticModifier(je,1)&&!e.isAmbientModule(je)}e.needsScopeMarker=$o;function Pr(je){return e.isAnyImportOrReExport(je)||e.isExportAssignment(je)||e.hasSyntacticModifier(je,1)}e.isExternalModuleIndicator=Pr;function xi(je){return je.kind===243||je.kind===244}e.isForInOrOfStatement=xi;function St(je){return e.isBlock(je)||En(je)}e.isConciseBody=St;function pa(je){return e.isBlock(je)}e.isFunctionBody=pa;function dn(je){return e.isVariableDeclarationList(je)||En(je)}e.isForInitializer=dn;function Jn(je){var Hr=je.kind;return Hr===262||Hr===261||Hr===79}e.isModuleBody=Jn;function Qe(je){var Hr=je.kind;return Hr===262||Hr===261}e.isNamespaceBody=Qe;function Gr(je){var Hr=je.kind;return Hr===79||Hr===261}e.isJSDocNamespaceBody=Gr;function S(je){var Hr=je.kind;return Hr===269||Hr===268}e.isNamedImportBindings=S;function Ce(je){return je.kind===261||je.kind===260}e.isModuleOrEnumDeclaration=Ce;function qe(je){return je===214||je===203||je===257||je===226||je===170||je===171||je===260||je===299||je===275||je===256||je===213||je===172||je===267||je===265||je===270||je===258||je===285||je===169||je===168||je===261||je===264||je===268||je===274||je===164||je===296||je===167||je===166||je===173||je===297||je===259||je===163||je===254||je===345||je===338||je===347}function br(je){return je===256||je===276||je===257||je===258||je===259||je===260||je===261||je===266||je===265||je===272||je===271||je===264}function Zr(je){return je===246||je===245||je===253||je===240||je===238||je===236||je===243||je===244||je===242||je===239||je===250||je===247||je===249||je===251||je===252||je===237||je===241||je===248||je===349||je===353||je===352}function Si(je){return je.kind===163?je.parent&&je.parent.kind!==344||e.isInJSFile(je):qe(je.kind)}e.isDeclaration=Si;function Pi(je){return br(je.kind)}e.isDeclarationStatement=Pi;function Qi(je){return Zr(je.kind)}e.isStatementButNotDeclaration=Qi;function Ct(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||sa(je)}e.isStatement=Ct;function sa(je){return je.kind!==235||je.parent!==void 0&&(je.parent.kind===252||je.parent.kind===292)?!1:!e.isFunctionBlock(je)}function en(je){var Hr=je.kind;return Zr(Hr)||br(Hr)||Hr===235}e.isStatementOrBlock=en;function Wa(je){var Hr=je.kind;return Hr===277||Hr===161||Hr===79}e.isModuleReference=Wa;function qn(je){var Hr=je.kind;return Hr===108||Hr===79||Hr===206}e.isJsxTagNameExpression=qn;function mo(je){var Hr=je.kind;return Hr===278||Hr===288||Hr===279||Hr===11||Hr===282}e.isJsxChild=mo;function So(je){var Hr=je.kind;return Hr===285||Hr===287}e.isJsxAttributeLike=So;function Go(je){var Hr=je.kind;return Hr===10||Hr===288}e.isStringLiteralOrJsxExpression=Go;function ys(je){var Hr=je.kind;return Hr===280||Hr===279}e.isJsxOpeningLikeElement=ys;function Pc(je){var Hr=je.kind;return Hr===289||Hr===290}e.isCaseOrDefaultClause=Pc;function Vc(je){return je.kind>=309&&je.kind<=347}e.isJSDocNode=Vc;function Kc(je){return je.kind===320||je.kind===319||je.kind===321||qi(je)||Xs(je)||e.isJSDocTypeLiteral(je)||e.isJSDocSignature(je)}e.isJSDocCommentContainingNode=Kc;function Xs(je){return je.kind>=327&&je.kind<=347}e.isJSDocTag=Xs;function pc(je){return je.kind===173}e.isSetAccessor=pc;function hs(je){return je.kind===172}e.isGetAccessor=hs;function tc(je){var Hr=je.jsDoc;return!!Hr&&Hr.length>0}e.hasJSDocNodes=tc;function ps(je){return!!je.type}e.hasType=ps;function Qs(je){return!!je.initializer}e.hasInitializer=Qs;function js(je){switch(je.kind){case 254:case 164:case 203:case 166:case 167:case 296:case 299:return!0;default:return!1}}e.hasOnlyExpressionInitializer=js;function ds(je){return je.kind===285||je.kind===287||at(je)}e.isObjectLiteralElement=ds;function Ji(je){return je.kind===178||je.kind===228}e.isTypeReferenceType=Ji;var ce=1073741823;function Rr(je){for(var Hr=ce,pt=0,Pt=je;pt=0),e.getLineStarts(te)[c]}e.getStartPositionOfLine=L;function P(c){var te=$(c),xr=e.getLineAndCharacterOfPosition(te,c.pos);return\"\".concat(te.fileName,\"(\").concat(xr.line+1,\",\").concat(xr.character+1,\")\")}e.nodePosToString=P;function k(c,te){e.Debug.assert(c>=0);var xr=e.getLineStarts(te),ei=c,bi=te.text;if(ei+1===xr.length)return bi.length-1;var Ft=xr[ei],ot=xr[ei+1]-1;for(e.Debug.assert(e.isLineBreak(bi.charCodeAt(ot)));Ft<=ot&&e.isLineBreak(bi.charCodeAt(ot));)ot--;return ot}e.getEndLinePosition=k;function Y(c,te,xr){return!(xr&&xr(te))&&!c.identifiers.has(te)}e.isFileLevelUniqueName=Y;function U(c){return c===void 0?!0:c.pos===c.end&&c.pos>=0&&c.kind!==1}e.nodeIsMissing=U;function j(c){return!U(c)}e.nodeIsPresent=j;function H(c,te,xr){if(te===void 0||te.length===0)return c;for(var ei=0;ei0?Fe(c._children[0],te,xr):e.skipTrivia((te||$(c)).text,c.pos,!1,!1,Wa(c))}e.getTokenPosOfNode=Fe;function Z(c,te){return U(c)||!c.decorators?Fe(c,te):e.skipTrivia((te||$(c)).text,c.decorators.end)}e.getNonDecoratorTokenPosOfNode=Z;function Be(c,te,xr){return xr===void 0&&(xr=!1),ze(c.text,te,xr)}e.getSourceTextOfNodeFromSourceFile=Be;function ge(c){return!!e.findAncestor(c,e.isJSDocTypeExpression)}function Re(c){return!!(e.isExportDeclaration(c)&&c.exportClause&&e.isNamespaceExport(c.exportClause)&&c.exportClause.name.escapedText===\"default\")}e.isExportNamespaceAsDefaultDeclaration=Re;function ze(c,te,xr){if(xr===void 0&&(xr=!1),U(te))return\"\";var ei=c.substring(xr?te.pos:e.skipTrivia(c,te.pos),te.end);return ge(te)&&(ei=ei.split(/\\r\\n|\\n|\\r/).map(function(bi){return e.trimStringStart(bi.replace(/^\\s*\\*/,\"\"))}).join(`\n`)),ei}e.getTextOfNodeFromSourceText=ze;function Ee(c,te){return te===void 0&&(te=!1),Be($(c),c,te)}e.getTextOfNode=Ee;function He(c){return c.pos}function rr(c,te){return e.binarySearch(c,te,He,e.compareValues)}e.indexOfNode=rr;function Ie(c){var te=c.emitNode;return te&&te.flags||0}e.getEmitFlags=Ie;function _e(){return{es2015:{Array:[\"find\",\"findIndex\",\"fill\",\"copyWithin\",\"entries\",\"keys\",\"values\"],RegExp:[\"flags\",\"sticky\",\"unicode\"],Reflect:[\"apply\",\"construct\",\"defineProperty\",\"deleteProperty\",\"get\",\" getOwnPropertyDescriptor\",\"getPrototypeOf\",\"has\",\"isExtensible\",\"ownKeys\",\"preventExtensions\",\"set\",\"setPrototypeOf\"],ArrayConstructor:[\"from\",\"of\"],ObjectConstructor:[\"assign\",\"getOwnPropertySymbols\",\"keys\",\"is\",\"setPrototypeOf\"],NumberConstructor:[\"isFinite\",\"isInteger\",\"isNaN\",\"isSafeInteger\",\"parseFloat\",\"parseInt\"],Math:[\"clz32\",\"imul\",\"sign\",\"log10\",\"log2\",\"log1p\",\"expm1\",\"cosh\",\"sinh\",\"tanh\",\"acosh\",\"asinh\",\"atanh\",\"hypot\",\"trunc\",\"fround\",\"cbrt\"],Map:[\"entries\",\"keys\",\"values\"],Set:[\"entries\",\"keys\",\"values\"],Promise:e.emptyArray,PromiseConstructor:[\"all\",\"race\",\"reject\",\"resolve\"],Symbol:[\"for\",\"keyFor\"],WeakMap:[\"entries\",\"keys\",\"values\"],WeakSet:[\"entries\",\"keys\",\"values\"],Iterator:e.emptyArray,AsyncIterator:e.emptyArray,String:[\"codePointAt\",\"includes\",\"endsWith\",\"normalize\",\"repeat\",\"startsWith\",\"anchor\",\"big\",\"blink\",\"bold\",\"fixed\",\"fontcolor\",\"fontsize\",\"italics\",\"link\",\"small\",\"strike\",\"sub\",\"sup\"],StringConstructor:[\"fromCodePoint\",\"raw\"]},es2016:{Array:[\"includes\"]},es2017:{Atomics:e.emptyArray,SharedArrayBuffer:e.emptyArray,String:[\"padStart\",\"padEnd\"],ObjectConstructor:[\"values\",\"entries\",\"getOwnPropertyDescriptors\"],DateTimeFormat:[\"formatToParts\"]},es2018:{Promise:[\"finally\"],RegExpMatchArray:[\"groups\"],RegExpExecArray:[\"groups\"],RegExp:[\"dotAll\"],Intl:[\"PluralRules\"],AsyncIterable:e.emptyArray,AsyncIterableIterator:e.emptyArray,AsyncGenerator:e.emptyArray,AsyncGeneratorFunction:e.emptyArray,NumberFormat:[\"formatToParts\"]},es2019:{Array:[\"flat\",\"flatMap\"],ObjectConstructor:[\"fromEntries\"],String:[\"trimStart\",\"trimEnd\",\"trimLeft\",\"trimRight\"],Symbol:[\"description\"]},es2020:{BigInt:e.emptyArray,BigInt64Array:e.emptyArray,BigUint64Array:e.emptyArray,PromiseConstructor:[\"allSettled\"],SymbolConstructor:[\"matchAll\"],String:[\"matchAll\"],DataView:[\"setBigInt64\",\"setBigUint64\",\"getBigInt64\",\"getBigUint64\"],RelativeTimeFormat:[\"format\",\"formatToParts\",\"resolvedOptions\"]},es2021:{PromiseConstructor:[\"any\"],String:[\"replaceAll\"]},es2022:{Array:[\"at\"],String:[\"at\"],Int8Array:[\"at\"],Uint8Array:[\"at\"],Uint8ClampedArray:[\"at\"],Int16Array:[\"at\"],Uint16Array:[\"at\"],Int32Array:[\"at\"],Uint32Array:[\"at\"],Float32Array:[\"at\"],Float64Array:[\"at\"],BigInt64Array:[\"at\"],BigUint64Array:[\"at\"],ObjectConstructor:[\"hasOwn\"],Error:[\"cause\"]}}}e.getScriptTargetFeatures=_e;var we;(function(c){c[c.None=0]=\"None\",c[c.NeverAsciiEscape=1]=\"NeverAsciiEscape\",c[c.JsxAttributeEscape=2]=\"JsxAttributeEscape\",c[c.TerminateUnterminatedLiterals=4]=\"TerminateUnterminatedLiterals\",c[c.AllowNumericSeparator=8]=\"AllowNumericSeparator\"})(we=e.GetLiteralTextFlags||(e.GetLiteralTextFlags={}));function de(c,te,xr){var ei;if(te&&ye(c,xr))return Be(te,c);switch(c.kind){case 10:{var bi=xr&2?wc:xr&1||Ie(c)&16777216?ks:Zl;return c.singleQuote?\"'\"+bi(c.text,39)+\"'\":'\"'+bi(c.text,34)+'\"'}case 14:case 15:case 16:case 17:{var bi=xr&1||Ie(c)&16777216?ks:Zl,Ft=(ei=c.rawText)!==null&&ei!==void 0?ei:gd(bi(c.text,96));switch(c.kind){case 14:return\"`\"+Ft+\"`\";case 15:return\"`\"+Ft+\"${\";case 16:return\"}\"+Ft+\"${\";case 17:return\"}\"+Ft+\"`\"}break}case 8:case 9:return c.text;case 13:return xr&4&&c.isUnterminated?c.text+(c.text.charCodeAt(c.text.length-1)===92?\" /\":\"/\"):c.text}return e.Debug.fail(\"Literal kind '\".concat(c.kind,\"' not accounted for.\"))}e.getLiteralText=de;function ye(c,te){return F_(c)||!c.parent||te&4&&c.isUnterminated?!1:e.isNumericLiteral(c)&&c.numericLiteralFlags&512?!!(te&8):!e.isBigIntLiteral(c)}function Ae(c){return e.isString(c)?'\"'+Zl(c)+'\"':\"\"+c}e.getTextOfConstantValue=Ae;function er(c){return e.getBaseFileName(c).replace(/^(\\d)/,\"_$1\").replace(/\\W/g,\"_\")}e.makeIdentifierFromModuleName=er;function ir(c){return(e.getCombinedNodeFlags(c)&3)!==0||Cr(c)}e.isBlockOrCatchScoped=ir;function Cr(c){var te=jf(c);return te.kind===254&&te.parent.kind===292}e.isCatchClauseVariableDeclarationOrBindingElement=Cr;function Ye(c){return e.isModuleDeclaration(c)&&(c.name.kind===10||Ge(c))}e.isAmbientModule=Ye;function Br(c){return e.isModuleDeclaration(c)&&c.name.kind===10}e.isModuleWithStringLiteralName=Br;function Er(c){return e.isModuleDeclaration(c)&&e.isStringLiteral(c.name)}e.isNonGlobalAmbientModule=Er;function Ne(c){return e.isModuleDeclaration(c)||e.isIdentifier(c)}e.isEffectiveModuleDeclaration=Ne;function n(c){return lr(c.valueDeclaration)}e.isShorthandAmbientModuleSymbol=n;function lr(c){return!!c&&c.kind===261&&!c.body}function be(c){return c.kind===305||c.kind===261||e.isFunctionLikeOrClassStaticBlockDeclaration(c)}e.isBlockScopedContainerTopLevel=be;function Ge(c){return!!(c.flags&1024)}e.isGlobalScopeAugmentation=Ge;function ur(c){return Ye(c)&&yr(c)}e.isExternalModuleAugmentation=ur;function yr(c){switch(c.parent.kind){case 305:return e.isExternalModule(c.parent);case 262:return Ye(c.parent.parent)&&e.isSourceFile(c.parent.parent.parent)&&!e.isExternalModule(c.parent.parent.parent)}return!1}e.isModuleAugmentationExternal=yr;function Ir(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(function(xr){return!ur(xr)&&!(e.isModuleDeclaration(xr)&&Ge(xr))})}e.getNonAugmentationDeclaration=Ir;function wr(c){return c===e.ModuleKind.CommonJS||c===e.ModuleKind.Node16||c===e.ModuleKind.NodeNext}function Ur(c,te){return e.isExternalModule(c)||te.isolatedModules||wr(Ja(te))&&!!c.commonJsModuleIndicator}e.isEffectiveExternalModule=Ur;function ii(c,te){switch(c.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return c.isDeclarationFile?!1:Sd(te,\"alwaysStrict\")||e.startsWithUseStrict(c.statements)?!0:e.isExternalModule(c)||te.isolatedModules?Ja(te)>=e.ModuleKind.ES2015?!0:!te.noImplicitUseStrict:!1}e.isEffectiveStrictModeSourceFile=ii;function mi(c,te){switch(c.kind){case 305:case 263:case 292:case 261:case 242:case 243:case 244:case 171:case 169:case 172:case 173:case 256:case 213:case 214:case 167:case 170:return!0;case 235:return!e.isFunctionLikeOrClassStaticBlockDeclaration(te)}return!1}e.isBlockScope=mi;function pe(c){switch(c.kind){case 338:case 345:case 323:return!0;default:return e.assertType(c),or(c)}}e.isDeclarationWithTypeParameters=pe;function or(c){switch(c.kind){case 174:case 175:case 168:case 176:case 179:case 180:case 317:case 257:case 226:case 258:case 259:case 344:case 256:case 169:case 171:case 172:case 173:case 213:case 214:return!0;default:return e.assertType(c),!1}}e.isDeclarationWithTypeParameterChildren=or;function qr(c){switch(c.kind){case 266:case 265:return!0;default:return!1}}e.isAnyImportSyntax=qr;function si(c){return qr(c)||Go(c)}e.isAnyImportOrBareOrAccessedRequire=si;function Di(c){switch(c.kind){case 266:case 265:case 237:case 257:case 256:case 261:case 259:case 258:case 260:return!0;default:return!1}}e.isLateVisibilityPaintedStatement=Di;function wi(c){return Xi(c)||e.isModuleDeclaration(c)||e.isImportTypeNode(c)||Vr(c)}e.hasPossibleExternalModuleReference=wi;function Xi(c){return qr(c)||e.isExportDeclaration(c)}e.isAnyImportOrReExport=Xi;function et(c){return e.findAncestor(c.parent,function(te){return mi(te,te.parent)})}e.getEnclosingBlockScopeContainer=et;function Gi(c,te){for(var xr=et(c);xr;)te(xr),xr=et(xr)}e.forEachEnclosingBlockScopeContainer=Gi;function Wt(c){return!c||b(c)===0?\"(Missing)\":Ee(c)}e.declarationNameToString=Wt;function Zt(c){return c.declaration?Wt(c.declaration.parameters[0].name):void 0}e.getNameFromIndexInfo=Zt;function _r(c){return c.kind===162&&!ns(c.expression)}e.isComputedNonLiteralName=_r;function pi(c){switch(c.kind){case 79:case 80:return c.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(c.text);case 162:return ns(c.expression)?e.escapeLeadingUnderscores(c.expression.text):void 0;default:return e.Debug.assertNever(c)}}e.tryGetTextOfPropertyName=pi;function ae(c){return e.Debug.checkDefined(pi(c))}e.getTextOfPropertyName=ae;function Xe(c){switch(c.kind){case 108:return\"this\";case 80:case 79:return b(c)===0?e.idText(c):Ee(c);case 161:return Xe(c.left)+\".\"+Xe(c.right);case 206:return e.isIdentifier(c.name)||e.isPrivateIdentifier(c.name)?Xe(c.expression)+\".\"+Xe(c.name):e.Debug.assertNever(c.name);case 311:return Xe(c.left)+Xe(c.right);default:return e.Debug.assertNever(c)}}e.entityNameToString=Xe;function Jr(c,te,xr,ei,bi,Ft){var ot=$(c);return Ze(ot,c,te,xr,ei,bi,Ft)}e.createDiagnosticForNode=Jr;function ti(c,te,xr,ei,bi,Ft,ot){var xa=e.skipTrivia(c.text,te.pos);return Hg(c,xa,te.end-xa,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeArray=ti;function Ze(c,te,xr,ei,bi,Ft,ot){var xa=Oe(c,te);return Hg(c,xa.start,xa.length,xr,ei,bi,Ft,ot)}e.createDiagnosticForNodeInSourceFile=Ze;function Sr(c,te,xr){var ei=$(c),bi=Oe(ei,c);return Wr(ei,bi.start,bi.length,te,xr)}e.createDiagnosticForNodeFromMessageChain=Sr;function zr(c,te,xr){e.Debug.assertGreaterThanOrEqual(te,0),e.Debug.assertGreaterThanOrEqual(xr,0),c&&(e.Debug.assertLessThanOrEqual(te,c.text.length),e.Debug.assertLessThanOrEqual(te+xr,c.text.length))}function Wr(c,te,xr,ei,bi){return zr(c,te,xr),{file:c,start:te,length:xr,code:ei.code,category:ei.category,messageText:ei.next?ei:ei.messageText,relatedInformation:bi}}e.createFileDiagnosticFromMessageChain=Wr;function Je(c,te,xr){return{file:c,start:0,length:0,code:te.code,category:te.category,messageText:te.next?te:te.messageText,relatedInformation:xr}}e.createDiagnosticForFileFromMessageChain=Je;function xe(c){return typeof c.messageText==\"string\"?{code:c.code,category:c.category,messageText:c.messageText,next:c.next}:c.messageText}e.createDiagnosticMessageChainFromDiagnostic=xe;function vr(c,te,xr){return{file:c,start:te.pos,length:te.end-te.pos,code:xr.code,category:xr.category,messageText:xr.message}}e.createDiagnosticForRange=vr;function mr(c,te){var xr=e.createScanner(c.languageVersion,!0,c.languageVariant,c.text,void 0,te);xr.scan();var ei=xr.getTokenPos();return e.createTextSpanFromBounds(ei,xr.getTextPos())}e.getSpanOfTokenAtPosition=mr;function Ar(c,te){var xr=e.skipTrivia(c.text,te.pos);if(te.body&&te.body.kind===235){var ei=e.getLineAndCharacterOfPosition(c,te.body.pos).line,bi=e.getLineAndCharacterOfPosition(c,te.body.end).line;if(ei0?te.statements[0].pos:te.end;return e.createTextSpanFromBounds(bi,Ft)}if(xr===void 0)return mr(c,te.pos);e.Debug.assert(!e.isJSDoc(xr));var ot=U(xr),xa=ot||e.isJsxText(te)?xr.pos:e.skipTrivia(c.text,xr.pos);return ot?(e.Debug.assert(xa===xr.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(xa===xr.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")):(e.Debug.assert(xa>=xr.pos,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\"),e.Debug.assert(xa<=xr.end,\"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\")),e.createTextSpanFromBounds(xa,xr.end)}e.getErrorSpanForNode=Oe;function nr(c){return(c.externalModuleIndicator||c.commonJsModuleIndicator)!==void 0}e.isExternalOrCommonJsModule=nr;function Mr(c){return c.scriptKind===6}e.isJsonSourceFile=Mr;function Pe(c){return!!(e.getCombinedModifierFlags(c)&2048)}e.isEnumConst=Pe;function Ue(c){return!!(e.getCombinedModifierFlags(c)&64&&!e.isParameterPropertyDeclaration(c,c.parent))}e.isDeclarationReadonly=Ue;function fr(c){return!!(e.getCombinedNodeFlags(c)&2)}e.isVarConst=fr;function De(c){return!!(e.getCombinedNodeFlags(c)&1)}e.isLet=De;function gr(c){return c.kind===208&&c.expression.kind===106}e.isSuperCall=gr;function Vr(c){return c.kind===208&&c.expression.kind===100}e.isImportCall=Vr;function Tr(c){return e.isMetaProperty(c)&&c.keywordToken===100&&c.name.escapedText===\"meta\"}e.isImportMeta=Tr;function vi(c){return e.isImportTypeNode(c)&&e.isLiteralTypeNode(c.argument)&&e.isStringLiteral(c.argument.literal)}e.isLiteralImportTypeNode=vi;function Ui(c){return c.kind===238&&c.expression.kind===10}e.isPrologueDirective=Ui;function Yi(c){return!!(Ie(c)&1048576)}e.isCustomPrologue=Yi;function Wi(c){return Yi(c)&&e.isFunctionDeclaration(c)}e.isHoistedFunction=Wi;function ct(c){return e.isIdentifier(c.name)&&!c.initializer}function Li(c){return Yi(c)&&e.isVariableStatement(c)&&e.every(c.declarationList.declarations,ct)}e.isHoistedVariableStatement=Li;function nt(c,te){return c.kind!==11?e.getLeadingCommentRanges(te.text,c.pos):void 0}e.getLeadingCommentRangesOfNode=nt;function Mt(c,te){var xr=c.kind===164||c.kind===163||c.kind===213||c.kind===214||c.kind===212||c.kind===254||c.kind===275?e.concatenate(e.getTrailingCommentRanges(te,c.pos),e.getLeadingCommentRanges(te,c.pos)):e.getLeadingCommentRanges(te,c.pos);return e.filter(xr,function(ei){return te.charCodeAt(ei.pos+1)===42&&te.charCodeAt(ei.pos+2)===42&&te.charCodeAt(ei.pos+3)!==47})}e.getJSDocCommentRanges=Mt,e.fullTripleSlashReferencePathRegEx=/^(\\/\\/\\/\\s*/;var xt=/^(\\/\\/\\/\\s*/;e.fullTripleSlashAMDReferencePathRegEx=/^(\\/\\/\\/\\s*/;var ut=/^(\\/\\/\\/\\s*/;function Dt(c){if(177<=c.kind&&c.kind<=200)return!0;switch(c.kind){case 130:case 155:case 147:case 158:case 150:case 133:case 151:case 148:case 153:case 143:return!0;case 114:return c.parent.kind!==217;case 228:return e.isHeritageClause(c.parent)&&!Fc(c);case 163:return c.parent.kind===195||c.parent.kind===190;case 79:(c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c)&&(c=c.parent),e.Debug.assert(c.kind===79||c.kind===161||c.kind===206,\"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.\");case 161:case 206:case 108:{var te=c.parent;if(te.kind===181)return!1;if(te.kind===200)return!te.isTypeOf;if(177<=te.kind&&te.kind<=200)return!0;switch(te.kind){case 228:return e.isHeritageClause(te.parent)&&!Fc(te);case 163:return c===te.constraint;case 344:return c===te.constraint;case 167:case 166:case 164:case 254:return c===te.type;case 256:case 213:case 214:case 171:case 169:case 168:case 172:case 173:return c===te.type;case 174:case 175:case 176:return c===te.type;case 211:return c===te.type;case 208:case 209:return e.contains(te.typeArguments,c);case 210:return!1}}}return!1}e.isPartOfTypeNode=Dt;function Rt(c,te){for(;c;){if(c.kind===te)return!0;c=c.parent}return!1}e.isChildOfNodeWithKind=Rt;function Ii(c,te){return xr(c);function xr(ei){switch(ei.kind){case 247:return te(ei);case 263:case 235:case 239:case 240:case 241:case 242:case 243:case 244:case 248:case 249:case 289:case 290:case 250:case 252:case 292:return e.forEachChild(ei,xr)}}}e.forEachReturnStatement=Ii;function Ki(c,te){return xr(c);function xr(ei){switch(ei.kind){case 224:te(ei);var bi=ei.expression;bi&&xr(bi);return;case 260:case 258:case 261:case 259:return;default:if(e.isFunctionLike(ei)){if(ei.name&&ei.name.kind===162){xr(ei.name.expression);return}}else Dt(ei)||e.forEachChild(ei,xr)}}}e.forEachYieldExpression=Ki;function Fi(c){return c&&c.kind===183?c.elementType:c&&c.kind===178?e.singleOrUndefined(c.typeArguments):void 0}e.getRestParameterElementType=Fi;function ui(c){switch(c.kind){case 258:case 257:case 226:case 182:return c.members;case 205:return c.properties}}e.getMembersOfDeclaration=ui;function Bt(c){if(c)switch(c.kind){case 203:case 299:case 164:case 296:case 167:case 166:case 297:case 254:return!0}return!1}e.isVariableLike=Bt;function wt(c){return Bt(c)||e.isAccessor(c)}e.isVariableLikeOrAccessor=wt;function na(c){return c.parent.kind===255&&c.parent.parent.kind===237}e.isVariableDeclarationInVariableStatement=na;function Ai(c){return Ct(c)?e.isObjectLiteralExpression(c.parent)&&e.isBinaryExpression(c.parent.parent)&&Hr(c.parent.parent)===2||Oi(c.parent):!1}e.isCommonJsExportedExpression=Ai;function Oi(c){return Ct(c)?e.isBinaryExpression(c)&&Hr(c)===1:!1}e.isCommonJsExportPropertyAssignment=Oi;function ji(c){return(e.isVariableDeclaration(c)?fr(c)&&e.isIdentifier(c.name)&&na(c):e.isPropertyDeclaration(c)?wp(c)&&mc(c):e.isPropertySignature(c)&&wp(c))||Oi(c)}e.isValidESSymbolDeclaration=ji;function Vi(c){switch(c.kind){case 169:case 168:case 171:case 172:case 173:case 256:case 213:return!0}return!1}e.introducesArgumentsExoticObject=Vi;function at(c,te){for(;;){if(te&&te(c),c.statement.kind!==250)return c.statement;c=c.statement}}e.unwrapInnermostStatementOfLabel=at;function At(c){return c&&c.kind===235&&e.isFunctionLike(c.parent)}e.isFunctionBlock=At;function ba(c){return c&&c.kind===169&&c.parent.kind===205}e.isObjectLiteralMethod=ba;function $a(c){return(c.kind===169||c.kind===172||c.kind===173)&&(c.parent.kind===205||c.parent.kind===226)}e.isObjectLiteralOrClassExpressionMethodOrAccessor=$a;function Qa(c){return c&&c.kind===1}e.isIdentifierTypePredicate=Qa;function ai(c){return c&&c.kind===0}e.isThisTypePredicate=ai;function Dn(c,te,xr){return c.properties.filter(function(ei){if(ei.kind===296){var bi=pi(ei.name);return te===bi||!!xr&&xr===bi}return!1})}e.getPropertyAssignment=Dn;function ka(c,te,xr){return e.firstDefined(Dn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getPropertyArrayElementValue=ka;function Ba(c){if(c&&c.statements.length){var te=c.statements[0].expression;return e.tryCast(te,e.isObjectLiteralExpression)}}e.getTsConfigObjectLiteralExpression=Ba;function pn(c,te,xr){return e.firstDefined(Cn(c,te),function(ei){return e.isArrayLiteralExpression(ei.initializer)?e.find(ei.initializer.elements,function(bi){return e.isStringLiteral(bi)&&bi.text===xr}):void 0})}e.getTsConfigPropArrayElementValue=pn;function Cn(c,te){var xr=Ba(c);return xr?Dn(xr,te):e.emptyArray}e.getTsConfigPropArray=Cn;function Bi(c){return e.findAncestor(c.parent,e.isFunctionLike)}e.getContainingFunction=Bi;function kn(c){return e.findAncestor(c.parent,e.isFunctionLikeDeclaration)}e.getContainingFunctionDeclaration=kn;function xn(c){return e.findAncestor(c.parent,e.isClassLike)}e.getContainingClass=xn;function Kn(c){return e.findAncestor(c.parent,function(te){return e.isClassLike(te)||e.isFunctionLike(te)?\"quit\":e.isClassStaticBlockDeclaration(te)})}e.getContainingClassStaticBlock=Kn;function Pn(c){return e.findAncestor(c.parent,e.isFunctionLikeOrClassStaticBlockDeclaration)}e.getContainingFunctionOrClassStaticBlock=Pn;function eo(c,te){for(e.Debug.assert(c.kind!==305);;){if(c=c.parent,!c)return e.Debug.fail();switch(c.kind){case 162:if(e.isClassLike(c.parent.parent))return c;c=c.parent;break;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break;case 214:if(!te)continue;case 256:case 213:case 261:case 170:case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 174:case 175:case 176:case 260:case 305:return c}}}e.getThisContainer=eo;function Rn(c){switch(c.kind){case 214:case 256:case 213:case 167:return!0;case 235:switch(c.parent.kind){case 171:case 169:case 172:case 173:return!0;default:return!1}default:return!1}}e.isThisContainerOrFunctionBlock=Rn;function Da(c){e.isIdentifier(c)&&(e.isClassDeclaration(c.parent)||e.isFunctionDeclaration(c.parent))&&c.parent.name===c&&(c=c.parent);var te=eo(c,!0);return e.isSourceFile(te)}e.isInTopLevelContext=Da;function bo(c){var te=eo(c,!1);if(te)switch(te.kind){case 171:case 256:case 213:return te}}e.getNewTargetContainer=bo;function Ro(c,te){for(;;){if(c=c.parent,!c)return c;switch(c.kind){case 162:c=c.parent;break;case 256:case 213:case 214:if(!te)continue;case 167:case 166:case 169:case 168:case 171:case 172:case 173:case 170:return c;case 165:c.parent.kind===164&&e.isClassElement(c.parent.parent)?c=c.parent.parent:e.isClassElement(c.parent)&&(c=c.parent);break}}}e.getSuperContainer=Ro;function En(c){if(c.kind===213||c.kind===214){for(var te=c,xr=c.parent;xr.kind===212;)te=xr,xr=xr.parent;if(xr.kind===208&&xr.expression===te)return xr}}e.getImmediatelyInvokedFunctionExpression=En;function Wn(c){return c.kind===106||to(c)}e.isSuperOrSuperProperty=Wn;function to(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===106}e.isSuperProperty=to;function Co(c){var te=c.kind;return(te===206||te===207)&&c.expression.kind===108}e.isThisProperty=Co;function Ko(c){var te;return!!c&&e.isVariableDeclaration(c)&&((te=c.initializer)===null||te===void 0?void 0:te.kind)===108}e.isThisInitializedDeclaration=Ko;function Oo(c){return!!c&&(e.isShorthandPropertyAssignment(c)||e.isPropertyAssignment(c))&&e.isBinaryExpression(c.parent.parent)&&c.parent.parent.operatorToken.kind===63&&c.parent.parent.right.kind===108}e.isThisInitializedObjectBindingExpression=Oo;function no(c){switch(c.kind){case 178:return c.typeName;case 228:return Hu(c.expression)?c.expression:void 0;case 79:case 161:return c}}e.getEntityNameFromTypeNode=no;function $o(c){switch(c.kind){case 210:return c.tag;case 280:case 279:return c.tagName;default:return c.expression}}e.getInvokedExpression=$o;function Pr(c,te,xr){if(e.isNamedDeclaration(c)&&e.isPrivateIdentifier(c.name))return!1;switch(c.kind){case 257:return!0;case 167:return te.kind===257;case 172:case 173:case 169:return c.body!==void 0&&te.kind===257;case 164:return te.body!==void 0&&(te.kind===171||te.kind===169||te.kind===173)&&xr.kind===257}return!1}e.nodeCanBeDecorated=Pr;function xi(c,te,xr){return c.decorators!==void 0&&Pr(c,te,xr)}e.nodeIsDecorated=xi;function St(c,te,xr){return xi(c,te,xr)||pa(c,te)}e.nodeOrChildIsDecorated=St;function pa(c,te){switch(c.kind){case 257:return e.some(c.members,function(xr){return St(xr,c,te)});case 169:case 173:case 171:return e.some(c.parameters,function(xr){return xi(xr,c,te)});default:return!1}}e.childIsDecorated=pa;function dn(c){if(xi(c))return!0;var te=Nu(c);return!!te&&pa(te,c)}e.classOrConstructorParameterIsDecorated=dn;function Jn(c){var te=c.parent;return te.kind===280||te.kind===279||te.kind===281?te.tagName===c:!1}e.isJSXTagName=Jn;function Qe(c){switch(c.kind){case 106:case 104:case 110:case 95:case 13:case 204:case 205:case 206:case 207:case 208:case 209:case 210:case 229:case 211:case 230:case 212:case 213:case 226:case 214:case 217:case 215:case 216:case 219:case 220:case 221:case 222:case 225:case 223:case 227:case 278:case 279:case 282:case 224:case 218:case 231:return!0;case 161:for(;c.parent.kind===161;)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c);case 311:for(;e.isJSDocMemberName(c.parent);)c=c.parent;return c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c);case 80:return e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===101;case 79:if(c.parent.kind===181||e.isJSDocLinkLike(c.parent)||e.isJSDocNameReference(c.parent)||e.isJSDocMemberName(c.parent)||Jn(c))return!0;case 8:case 9:case 10:case 14:case 108:return Gr(c);default:return!1}}e.isExpressionNode=Qe;function Gr(c){var te=c.parent;switch(te.kind){case 254:case 164:case 167:case 166:case 299:case 296:case 203:return te.initializer===c;case 238:case 239:case 240:case 241:case 247:case 248:case 249:case 289:case 251:return te.expression===c;case 242:var xr=te;return xr.initializer===c&&xr.initializer.kind!==255||xr.condition===c||xr.incrementor===c;case 243:case 244:var ei=te;return ei.initializer===c&&ei.initializer.kind!==255||ei.expression===c;case 211:case 229:return c===te.expression;case 233:return c===te.expression;case 162:return c===te.expression;case 165:case 288:case 287:case 298:return!0;case 228:return te.expression===c&&!Dt(te);case 297:return te.objectAssignmentInitializer===c;default:return Qe(te)}}e.isInExpressionContext=Gr;function S(c){for(;c.kind===161||c.kind===79;)c=c.parent;return c.kind===181}e.isPartOfTypeQuery=S;function Ce(c){return e.isNamespaceExport(c)&&!!c.parent.moduleSpecifier}e.isNamespaceReexportDeclaration=Ce;function qe(c){return c.kind===265&&c.moduleReference.kind===277}e.isExternalModuleImportEqualsDeclaration=qe;function br(c){return e.Debug.assert(qe(c)),c.moduleReference.expression}e.getExternalModuleImportEqualsDeclarationExpression=br;function Zr(c){return Go(c)&&Xa(c.initializer).arguments[0]}e.getExternalModuleRequireArgument=Zr;function Si(c){return c.kind===265&&c.moduleReference.kind!==277}e.isInternalModuleImportEqualsDeclaration=Si;function Pi(c){return Ct(c)}e.isSourceFileJS=Pi;function Qi(c){return!Ct(c)}e.isSourceFileNotJS=Qi;function Ct(c){return!!c&&!!(c.flags&262144)}e.isInJSFile=Ct;function sa(c){return!!c&&!!(c.flags&67108864)}e.isInJsonFile=sa;function en(c){return!Mr(c)}e.isSourceFileNotJson=en;function Wa(c){return!!c&&!!(c.flags&8388608)}e.isInJSDoc=Wa;function qn(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)&&c.typeName.escapedText===\"Object\"&&c.typeArguments&&c.typeArguments.length===2&&(c.typeArguments[0].kind===150||c.typeArguments[0].kind===147)}e.isJSDocIndexSignature=qn;function mo(c,te){if(c.kind!==208)return!1;var xr=c,ei=xr.expression,bi=xr.arguments;if(ei.kind!==79||ei.escapedText!==\"require\"||bi.length!==1)return!1;var Ft=bi[0];return!te||e.isStringLiteralLike(Ft)}e.isRequireCall=mo;function So(c){return ys(c,!1)}e.isVariableDeclarationInitializedToRequire=So;function Go(c){return ys(c,!0)}e.isVariableDeclarationInitializedToBareOrAccessedRequire=Go;function ys(c,te){return c.kind===203&&(c=c.parent.parent),e.isVariableDeclaration(c)&&!!c.initializer&&mo(te?Xa(c.initializer):c.initializer,!0)}function Pc(c){return e.isVariableStatement(c)&&c.declarationList.declarations.length>0&&e.every(c.declarationList.declarations,function(te){return So(te)})}e.isRequireVariableStatement=Pc;function Vc(c){return c===39||c===34}e.isSingleOrDoubleQuote=Vc;function Kc(c,te){return Be(te,c).charCodeAt(0)===34}e.isStringDoubleQuoted=Kc;function Xs(c){return e.isBinaryExpression(c)||cr(c)||e.isIdentifier(c)||e.isCallExpression(c)}e.isAssignmentDeclaration=Xs;function pc(c){return Ct(c)&&c.initializer&&e.isBinaryExpression(c.initializer)&&(c.initializer.operatorToken.kind===56||c.initializer.operatorToken.kind===60)&&c.name&&Hu(c.name)&&ce(c.name,c.initializer.left)?c.initializer.right:c.initializer}e.getEffectiveInitializer=pc;function hs(c){var te=pc(c);return te&&Qs(te,nf(c.name))}e.getDeclaredExpandoInitializer=hs;function tc(c,te){return e.forEach(c.properties,function(xr){return e.isPropertyAssignment(xr)&&e.isIdentifier(xr.name)&&xr.name.escapedText===\"value\"&&xr.initializer&&Qs(xr.initializer,te)})}function ps(c){if(c&&c.parent&&e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63){var te=nf(c.parent.left);return Qs(c.parent.right,te)||js(c.parent.left,c.parent.right,te)}if(c&&e.isCallExpression(c)&&pt(c)){var xr=tc(c.arguments[2],c.arguments[1].text===\"prototype\");if(xr)return xr}}e.getAssignedExpandoInitializer=ps;function Qs(c,te){if(e.isCallExpression(c)){var xr=po(c.expression);return xr.kind===213||xr.kind===214?c:void 0}if(c.kind===213||c.kind===226||c.kind===214||e.isObjectLiteralExpression(c)&&(c.properties.length===0||te))return c}e.getExpandoInitializer=Qs;function js(c,te,xr){var ei=e.isBinaryExpression(te)&&(te.operatorToken.kind===56||te.operatorToken.kind===60)&&Qs(te.right,xr);if(ei&&ce(c,te.left))return ei}function ds(c){var te=e.isVariableDeclaration(c.parent)?c.parent.name:e.isBinaryExpression(c.parent)&&c.parent.operatorToken.kind===63?c.parent.left:void 0;return te&&Qs(c.right,nf(te))&&Hu(te)&&ce(te,c.left)}e.isDefaultedExpandoInitializer=ds;function Ji(c){if(e.isBinaryExpression(c.parent)){var te=(c.parent.operatorToken.kind===56||c.parent.operatorToken.kind===60)&&e.isBinaryExpression(c.parent.parent)?c.parent.parent:c.parent;if(te.operatorToken.kind===63&&e.isIdentifier(te.left))return te.left}else if(e.isVariableDeclaration(c.parent))return c.parent.name}e.getNameOfExpando=Ji;function ce(c,te){return Jf(c)&&Jf(te)?w_(c)===w_(te):e.isMemberName(c)&&Pt(te)&&(te.expression.kind===108||e.isIdentifier(te.expression)&&(te.expression.escapedText===\"window\"||te.expression.escapedText===\"self\"||te.expression.escapedText===\"global\"))?ce(c,fo(te)):Pt(c)&&Pt(te)?Ao(c)===Ao(te)&&ce(c.expression,te.expression):!1}e.isSameEntityName=ce;function Rr(c){for(;dl(c,!0);)c=c.right;return c}e.getRightMostAssignedExpression=Rr;function yi(c){return e.isIdentifier(c)&&c.escapedText===\"exports\"}e.isExportsIdentifier=yi;function qi(c){return e.isIdentifier(c)&&c.escapedText===\"module\"}e.isModuleIdentifier=qi;function je(c){return(e.isPropertyAccessExpression(c)||ga(c))&&qi(c.expression)&&Ao(c)===\"exports\"}e.isModuleExportsAccessExpression=je;function Hr(c){var te=xs(c);return te===5||Ct(c)?te:0}e.getAssignmentDeclarationKind=Hr;function pt(c){return e.length(c.arguments)===3&&e.isPropertyAccessExpression(c.expression)&&e.isIdentifier(c.expression.expression)&&e.idText(c.expression.expression)===\"Object\"&&e.idText(c.expression.name)===\"defineProperty\"&&ns(c.arguments[1])&&jr(c.arguments[0],!0)}e.isBindableObjectDefinePropertyCall=pt;function Pt(c){return e.isPropertyAccessExpression(c)||ga(c)}e.isLiteralLikeAccess=Pt;function ga(c){return e.isElementAccessExpression(c)&&ns(c.argumentExpression)}e.isLiteralLikeElementAccess=ga;function ua(c,te){return e.isPropertyAccessExpression(c)&&(!te&&c.expression.kind===108||e.isIdentifier(c.name)&&jr(c.expression,!0))||Xn(c,te)}e.isBindableStaticAccessExpression=ua;function Xn(c,te){return ga(c)&&(!te&&c.expression.kind===108||Hu(c.expression)||ua(c.expression,!0))}e.isBindableStaticElementAccessExpression=Xn;function jr(c,te){return Hu(c)||ua(c,te)}e.isBindableStaticNameExpression=jr;function fo(c){return e.isPropertyAccessExpression(c)?c.name:c.argumentExpression}e.getNameOrArgument=fo;function xs(c){if(e.isCallExpression(c)){if(!pt(c))return 0;var te=c.arguments[0];return yi(te)||je(te)?8:ua(te)&&Ao(te)===\"prototype\"?9:7}return c.operatorToken.kind!==63||!cr(c.left)||Fo(Rr(c))?0:jr(c.left.expression,!0)&&Ao(c.left)===\"prototype\"&&e.isObjectLiteralExpression(Bs(c))?6:Ms(c.left)}function Fo(c){return e.isVoidExpression(c)&&e.isNumericLiteral(c.expression)&&c.expression.text===\"0\"}function ko(c){if(e.isPropertyAccessExpression(c))return c.name;var te=po(c.argumentExpression);return e.isNumericLiteral(te)||e.isStringLiteralLike(te)?te:c}e.getElementOrPropertyAccessArgumentExpressionOrName=ko;function Ao(c){var te=ko(c);if(te){if(e.isIdentifier(te))return te.escapedText;if(e.isStringLiteralLike(te)||e.isNumericLiteral(te))return e.escapeLeadingUnderscores(te.text)}}e.getElementOrPropertyAccessName=Ao;function Ms(c){if(c.expression.kind===108)return 4;if(je(c))return 2;if(jr(c.expression,!0)){if(nf(c.expression))return 3;for(var te=c;!e.isIdentifier(te.expression);)te=te.expression;var xr=te.expression;if((xr.escapedText===\"exports\"||xr.escapedText===\"module\"&&Ao(te)===\"exports\")&&ua(c))return 1;if(jr(c,!0)||e.isElementAccessExpression(c)&&es(c))return 5}return 0}e.getAssignmentDeclarationPropertyAccessKind=Ms;function Bs(c){for(;e.isBinaryExpression(c.right);)c=c.right;return c.right}e.getInitializerOfBinaryExpression=Bs;function xc(c){return e.isBinaryExpression(c)&&Hr(c)===3}e.isPrototypePropertyAssignment=xc;function su(c){return Ct(c)&&c.parent&&c.parent.kind===238&&(!e.isElementAccessExpression(c)||ga(c))&&!!e.getJSDocTypeTag(c.parent)}e.isSpecialPropertyDeclaration=su;function tl(c,te){var xr=c.valueDeclaration;(!xr||!(te.flags&16777216&&!(xr.flags&16777216))&&Xs(xr)&&!Xs(te)||xr.kind!==te.kind&&Ne(xr))&&(c.valueDeclaration=te)}e.setValueDeclaration=tl;function Zc(c){if(!c||!c.valueDeclaration)return!1;var te=c.valueDeclaration;return te.kind===256||e.isVariableDeclaration(te)&&te.initializer&&e.isFunctionLike(te.initializer)}e.isFunctionSymbol=Zc;function Rf(c){var te,xr;switch(c.kind){case 254:return(te=e.findAncestor(c.initializer,function(ei){return mo(ei,!0)}))===null||te===void 0?void 0:te.arguments[0];case 266:return e.tryCast(c.moduleSpecifier,e.isStringLiteralLike);case 265:return e.tryCast((xr=e.tryCast(c.moduleReference,e.isExternalModuleReference))===null||xr===void 0?void 0:xr.expression,e.isStringLiteralLike);default:e.Debug.assertNever(c)}}e.tryGetModuleSpecifierFromDeclaration=Rf;function al(c){return Jo(c)||e.Debug.failBadSyntaxKind(c.parent)}e.importFromModuleSpecifier=al;function Jo(c){switch(c.parent.kind){case 266:case 272:return c.parent;case 277:return c.parent.parent;case 208:return Vr(c.parent)||mo(c.parent,!1)?c.parent:void 0;case 196:return e.Debug.assert(e.isStringLiteral(c)),e.tryCast(c.parent.parent,e.isImportTypeNode);default:return}}e.tryGetImportFromModuleSpecifier=Jo;function eu(c){switch(c.kind){case 266:case 272:return c.moduleSpecifier;case 265:return c.moduleReference.kind===277?c.moduleReference.expression:void 0;case 200:return vi(c)?c.argument.literal:void 0;case 208:return c.arguments[0];case 261:return c.name.kind===10?c.name:void 0;default:return e.Debug.assertNever(c)}}e.getExternalModuleName=eu;function Ws(c){switch(c.kind){case 266:return c.importClause&&e.tryCast(c.importClause.namedBindings,e.isNamespaceImport);case 265:return c;case 272:return c.exportClause&&e.tryCast(c.exportClause,e.isNamespaceExport);default:return e.Debug.assertNever(c)}}e.getNamespaceDeclarationNode=Ws;function pu(c){return c.kind===266&&!!c.importClause&&!!c.importClause.name}e.isDefaultImport=pu;function Uu(c,te){if(c.name){var xr=te(c);if(xr)return xr}if(c.namedBindings){var xr=e.isNamespaceImport(c.namedBindings)?te(c.namedBindings):e.forEach(c.namedBindings.elements,te);if(xr)return xr}}e.forEachImportClauseDeclaration=Uu;function Ql(c){if(c)switch(c.kind){case 164:case 169:case 168:case 297:case 296:case 167:case 166:return c.questionToken!==void 0}return!1}e.hasQuestionToken=Ql;function xl(c){var te=e.isJSDocFunctionType(c)?e.firstOrUndefined(c.parameters):void 0,xr=e.tryCast(te&&te.name,e.isIdentifier);return!!xr&&xr.escapedText===\"new\"}e.isJSDocConstructSignature=xl;function Ya(c){return c.kind===345||c.kind===338||c.kind===339}e.isJSDocTypeAlias=Ya;function du(c){return Ya(c)||e.isTypeAliasDeclaration(c)}e.isTypeAlias=du;function vc(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&c.expression.operatorToken.kind===63?Rr(c.expression):void 0}function Kr(c){return e.isExpressionStatement(c)&&e.isBinaryExpression(c.expression)&&Hr(c.expression)!==0&&e.isBinaryExpression(c.expression.right)&&(c.expression.right.operatorToken.kind===56||c.expression.right.operatorToken.kind===60)?c.expression.right.right:void 0}function _i(c){switch(c.kind){case 237:var te=Ei(c);return te&&te.initializer;case 167:return c.initializer;case 296:return c.initializer}}e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=_i;function Ei(c){return e.isVariableStatement(c)?e.firstOrUndefined(c.declarationList.declarations):void 0}e.getSingleVariableOfVariableStatement=Ei;function tt(c){return e.isModuleDeclaration(c)&&c.body&&c.body.kind===261?c.body:void 0}function kt(c,te){var xr;Bt(c)&&e.hasInitializer(c)&&e.hasJSDocNodes(c.initializer)&&(xr=e.addRange(xr,bt(c,e.last(c.initializer.jsDoc))));for(var ei=c;ei&&ei.parent;){if(e.hasJSDocNodes(ei)&&(xr=e.addRange(xr,bt(c,e.last(ei.jsDoc)))),ei.kind===164){xr=e.addRange(xr,(te?e.getJSDocParameterTagsNoCache:e.getJSDocParameterTags)(ei));break}if(ei.kind===163){xr=e.addRange(xr,(te?e.getJSDocTypeParameterTagsNoCache:e.getJSDocTypeParameterTags)(ei));break}ei=Xt(ei)}return xr||e.emptyArray}e.getJSDocCommentsAndTags=kt;function bt(c,te){if(e.isJSDoc(te)){var xr=e.filter(te.tags,function(ei){return ia(c,ei)});return te.tags===xr?[te]:xr}return ia(c,te)?[te]:void 0}function ia(c,te){return!e.isJSDocTypeTag(te)||!te.parent||!e.isJSDoc(te.parent)||!e.isParenthesizedExpression(te.parent.parent)||te.parent.parent===c}function Xt(c){var te=c.parent;if(te.kind===296||te.kind===271||te.kind===167||te.kind===238&&c.kind===206||te.kind===247||tt(te)||e.isBinaryExpression(c)&&c.operatorToken.kind===63)return te;if(te.parent&&(Ei(te.parent)===c||e.isBinaryExpression(te)&&te.operatorToken.kind===63))return te.parent;if(te.parent&&te.parent.parent&&(Ei(te.parent.parent)||_i(te.parent.parent)===c||Kr(te.parent.parent)))return te.parent.parent}e.getNextJSDocCommentLocation=Xt;function Za(c){if(c.symbol)return c.symbol;if(!!e.isIdentifier(c.name)){var te=c.name.escapedText,xr=_a(c);if(!!xr){var ei=e.find(xr.parameters,function(bi){return bi.name.kind===79&&bi.name.escapedText===te});return ei&&ei.symbol}}}e.getParameterSymbolFromJSDoc=Za;function bn(c){if(e.isJSDoc(c.parent)&&c.parent.tags){var te=e.find(c.parent.tags,Ya);if(te)return te}return _a(c)}e.getEffectiveContainerForJSDocTemplateTag=bn;function _a(c){var te=qa(c);if(te)return e.isPropertySignature(te)&&te.type&&e.isFunctionLike(te.type)?te.type:e.isFunctionLike(te)?te:void 0}e.getHostSignatureFromJSDoc=_a;function qa(c){var te=rn(c);if(te)return Kr(te)||vc(te)||_i(te)||Ei(te)||tt(te)||te}e.getEffectiveJSDocHost=qa;function rn(c){var te=jn(c);if(!!te){var xr=te.parent;if(xr&&xr.jsDoc&&te===e.lastOrUndefined(xr.jsDoc))return xr}}e.getJSDocHost=rn;function jn(c){return e.findAncestor(c.parent,e.isJSDoc)}e.getJSDocRoot=jn;function Mo(c){var te=c.name.escapedText,xr=c.parent.parent.parent.typeParameters;return xr&&e.find(xr,function(ei){return ei.name.escapedText===te})}e.getTypeParameterFromJsDoc=Mo;function ho(c){var te=e.lastOrUndefined(c.parameters);return!!te&&gs(te)}e.hasRestParameter=ho;function gs(c){var te=e.isJSDocParameterTag(c)?c.typeExpression&&c.typeExpression.type:c.type;return c.dotDotDotToken!==void 0||!!te&&te.kind===318}e.isRestParameter=gs;function Se(c){return!!c.typeArguments}e.hasTypeArguments=Se;var hr;(function(c){c[c.None=0]=\"None\",c[c.Definite=1]=\"Definite\",c[c.Compound=2]=\"Compound\"})(hr=e.AssignmentKind||(e.AssignmentKind={}));function Or(c){for(var te=c.parent;;){switch(te.kind){case 221:var xr=te.operatorToken.kind;return Cf(xr)&&te.left===c?xr===63||Gu(xr)?1:2:0;case 219:case 220:var ei=te.operator;return ei===45||ei===46?2:0;case 243:case 244:return te.initializer===c?1:0;case 212:case 204:case 225:case 230:c=te;break;case 298:c=te.parent;break;case 297:if(te.name!==c)return 0;c=te.parent;break;case 296:if(te.name===c)return 0;c=te.parent;break;default:return 0}te=c.parent}}e.getAssignmentTargetKind=Or;function ki(c){return Or(c)!==0}e.isAssignmentTarget=ki;function dt(c){switch(c.kind){case 235:case 237:case 248:case 239:case 249:case 263:case 289:case 290:case 250:case 242:case 243:case 244:case 240:case 241:case 252:case 292:return!0}return!1}e.isNodeWithPossibleHoistedDeclaration=dt;function la(c){return e.isFunctionExpression(c)||e.isArrowFunction(c)||e.isMethodOrAccessor(c)||e.isFunctionDeclaration(c)||e.isConstructorDeclaration(c)}e.isValueSignatureDeclaration=la;function wa(c,te){for(;c&&c.kind===te;)c=c.parent;return c}function On(c){return wa(c,191)}e.walkUpParenthesizedTypes=On;function No(c){return wa(c,212)}e.walkUpParenthesizedExpressions=No;function jo(c){for(var te;c&&c.kind===191;)te=c,c=c.parent;return[te,c]}e.walkUpParenthesizedTypesAndGetParentAndChild=jo;function po(c,te){var xr=te?17:1;return e.skipOuterExpressions(c,xr)}e.skipParentheses=po;function Gn(c){return c.kind!==206&&c.kind!==207?!1:(c=No(c.parent),c&&c.kind===215)}e.isDeleteTarget=Gn;function $n(c,te){for(;c;){if(c===te)return!0;c=c.parent}return!1}e.isNodeDescendantOf=$n;function Ho(c){return!e.isSourceFile(c)&&!e.isBindingPattern(c)&&e.isDeclaration(c.parent)&&c.parent.name===c}e.isDeclarationName=Ho;function Zo(c){var te=c.parent;switch(c.kind){case 10:case 14:case 8:if(e.isComputedPropertyName(te))return te.parent;case 79:if(e.isDeclaration(te))return te.name===c?te:void 0;if(e.isQualifiedName(te)){var xr=te.parent;return e.isJSDocParameterTag(xr)&&xr.name===te?xr:void 0}else{var ei=te.parent;return e.isBinaryExpression(ei)&&Hr(ei)!==0&&(ei.left.symbol||ei.symbol)&&e.getNameOfDeclaration(ei)===c?ei:void 0}case 80:return e.isDeclaration(te)&&te.name===c?te:void 0;default:return}}e.getDeclarationFromName=Zo;function Es(c){return ns(c)&&c.parent.kind===162&&e.isDeclaration(c.parent.parent)}e.isLiteralComputedPropertyDeclarationName=Es;function yc(c){var te=c.parent;switch(te.kind){case 167:case 166:case 169:case 168:case 172:case 173:case 299:case 296:case 206:return te.name===c;case 161:return te.right===c;case 203:case 270:return te.propertyName===c;case 275:case 285:case 279:case 280:case 281:return!0}return!1}e.isIdentifierName=yc;function Xr(c){return c.kind===265||c.kind===264||c.kind===267&&!!c.name||c.kind===268||c.kind===274||c.kind===270||c.kind===275||c.kind===271&&zu(c)?!0:Ct(c)&&(e.isBinaryExpression(c)&&Hr(c)===2&&zu(c)||e.isPropertyAccessExpression(c)&&e.isBinaryExpression(c.parent)&&c.parent.left===c&&c.parent.operatorToken.kind===63&&Ic(c.parent.right))}e.isAliasSymbolDeclaration=Xr;function Ls(c){switch(c.parent.kind){case 267:case 270:case 268:case 275:case 271:case 265:case 274:return c.parent;case 161:do c=c.parent;while(c.parent.kind===161);return Ls(c)}}e.getAliasDeclarationFromName=Ls;function Ic(c){return Hu(c)||e.isClassExpression(c)}e.isAliasableExpression=Ic;function zu(c){var te=vf(c);return Ic(te)}e.exportAssignmentIsAlias=zu;function vf(c){return e.isExportAssignment(c)?c.expression:c.right}e.getExportAssignmentExpression=vf;function P_(c){return c.kind===297?c.name:c.kind===296?c.initializer:c.parent.right}e.getPropertyAssignmentAliasLikeExpression=P_;function El(c){var te=vp(c);if(te&&Ct(c)){var xr=e.getJSDocAugmentsTag(c);if(xr)return xr.class}return te}e.getEffectiveBaseTypeNode=El;function vp(c){var te=Yl(c.heritageClauses,94);return te&&te.types.length>0?te.types[0]:void 0}e.getClassExtendsHeritageElement=vp;function oo(c){if(Ct(c))return e.getJSDocImplementsTags(c).map(function(xr){return xr.class});var te=Yl(c.heritageClauses,117);return te==null?void 0:te.types}e.getEffectiveImplementsTypeNodes=oo;function I_(c){return e.isInterfaceDeclaration(c)?yp(c)||e.emptyArray:e.isClassLike(c)&&e.concatenate(e.singleElementArray(El(c)),oo(c))||e.emptyArray}e.getAllSuperTypeNodes=I_;function yp(c){var te=Yl(c.heritageClauses,94);return te?te.types:void 0}e.getInterfaceBaseTypeNodes=yp;function Yl(c,te){if(c)for(var xr=0,ei=c;xr=0)return an[To]}}function Ft(mn){var an;mn.file?(an=xr.get(mn.file.fileName),an||(an=[],xr.set(mn.file.fileName,an),e.insertSorted(te,mn.file.fileName,e.compareStringsCaseSensitive))):(ei&&(ei=!1,c=c.slice()),an=c),e.insertSorted(an,mn,Qg)}function ot(){return ei=!0,c}function xa(mn){if(mn)return xr.get(mn)||[];var an=e.flatMapToMutable(te,function(To){return xr.get(To)});return c.length&&an.unshift.apply(an,c),an}}e.createDiagnosticCollection=kp;var mu=/\\$\\{/g;function gd(c){return c.replace(mu,\"\\\\${\")}function hf(c){return c&&!!(e.isNoSubstitutionTemplateLiteral(c)?c.templateFlags:c.head.templateFlags||e.some(c.templateSpans,function(te){return!!te.literal.templateFlags}))}e.hasInvalidEscape=hf;var $l=/[\\\\\\\"\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,Uf=/[\\\\\\'\\u0000-\\u001f\\t\\v\\f\\b\\r\\n\\u2028\\u2029\\u0085]/g,L_=/\\r\\n|[\\\\\\`\\u0000-\\u001f\\t\\v\\f\\b\\r\\u2028\\u2029\\u0085]/g,l_=new e.Map(e.getEntries({\"\t\":\"\\\\t\",\"\\v\":\"\\\\v\",\"\\f\":\"\\\\f\",\"\\b\":\"\\\\b\",\"\\r\":\"\\\\r\",\"\\n\":\"\\\\n\",\"\\\\\":\"\\\\\\\\\",'\"':'\\\\\"',\"'\":\"\\\\'\",\"`\":\"\\\\`\",\"\\u2028\":\"\\\\u2028\",\"\\u2029\":\"\\\\u2029\",\"\\x85\":\"\\\\u0085\",\"\\r\\n\":\"\\\\r\\\\n\"}));function f_(c){var te=c.toString(16).toUpperCase(),xr=(\"0000\"+te).slice(-4);return\"\\\\u\"+xr}function md(c,te,xr){if(c.charCodeAt(0)===0){var ei=xr.charCodeAt(te+c.length);return ei>=48&&ei<=57?\"\\\\x00\":\"\\\\0\"}return l_.get(c)||f_(c.charCodeAt(0))}function ks(c,te){var xr=te===96?L_:te===39?Uf:$l;return c.replace(xr,md)}e.escapeString=ks;var Wu=/[^\\u0000-\\u007F]/g;function Zl(c,te){return c=ks(c,te),Wu.test(c)?c.replace(Wu,function(xr){return f_(xr.charCodeAt(0))}):c}e.escapeNonAsciiString=Zl;var R_=/[\\\"\\u0000-\\u001f\\u2028\\u2029\\u0085]/g,kl=/[\\'\\u0000-\\u001f\\u2028\\u2029\\u0085]/g,__=new e.Map(e.getEntries({'\"':\""\",\"'\":\"'\"}));function zd(c){var te=c.toString(16).toUpperCase();return\"&#x\"+te+\";\"}function Al(c){return c.charCodeAt(0)===0?\"�\":__.get(c)||zd(c.charCodeAt(0))}function wc(c,te){var xr=te===39?kl:R_;return c.replace(xr,Al)}e.escapeJsxAttributeString=wc;function qu(c){var te=c.length;return te>=2&&c.charCodeAt(0)===c.charCodeAt(te-1)&&Vu(c.charCodeAt(0))?c.substring(1,te-1):c}e.stripQuotes=qu;function Vu(c){return c===39||c===34||c===96}function ef(c){var te=c.charCodeAt(0);return te>=97&&te<=122||e.stringContains(c,\"-\")||e.stringContains(c,\":\")}e.isIntrinsicJsxName=ef;var sl=[\"\",\" \"];function p_(c){for(var te=sl[1],xr=sl.length;xr<=c;xr++)sl.push(sl[xr-1]+te);return sl[c]}e.getIndentString=p_;function Df(){return sl[1].length}e.getIndentSize=Df;function Ec(){return e.stringContains(e.version,\"-dev\")||e.stringContains(e.version,\"-insiders\")}e.isNightly=Ec;function Zn(c){var te,xr,ei,bi,Ft,ot=!1;function xa(Xo){var jl=e.computeLineStarts(Xo);jl.length>1?(bi=bi+jl.length-1,Ft=te.length-Xo.length+e.last(jl),ei=Ft-te.length===0):ei=!1}function mn(Xo){Xo&&Xo.length&&(ei&&(Xo=p_(xr)+Xo,ei=!1),te+=Xo,xa(Xo))}function an(Xo){Xo&&(ot=!1),mn(Xo)}function To(Xo){Xo&&(ot=!0),mn(Xo)}function Hn(){te=\"\",xr=0,ei=!0,bi=0,Ft=0,ot=!1}function ss(Xo){Xo!==void 0&&(te+=Xo,xa(Xo),ot=!1)}function cs(Xo){Xo&&Xo.length&&an(Xo)}function ws(Xo){(!ei||Xo)&&(te+=c,bi++,Ft=te.length,ei=!0,ot=!1)}function nu(){return ei?te.length:te.length+c.length}return Hn(),{write:an,rawWrite:ss,writeLiteral:cs,writeLine:ws,increaseIndent:function(){xr++},decreaseIndent:function(){xr--},getIndent:function(){return xr},getTextPos:function(){return te.length},getLine:function(){return bi},getColumn:function(){return ei?xr*Df():te.length-Ft},getText:function(){return te},isAtStartOfLine:function(){return ei},hasTrailingComment:function(){return ot},hasTrailingWhitespace:function(){return!!te.length&&e.isWhiteSpaceLike(te.charCodeAt(te.length-1))},clear:Hn,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:function(){return!1},writeKeyword:an,writeOperator:an,writeParameter:an,writeProperty:an,writePunctuation:an,writeSpace:an,writeStringLiteral:an,writeSymbol:function(Xo,jl){return an(Xo)},writeTrailingSemicolon:an,writeComment:To,getTextPosWithWriteLine:nu}}e.createTextWriter=Zn;function os(c){var te=!1;function xr(){te&&(c.writeTrailingSemicolon(\";\"),te=!1)}return Ke(Ke({},c),{writeTrailingSemicolon:function(){te=!0},writeLiteral:function(ei){xr(),c.writeLiteral(ei)},writeStringLiteral:function(ei){xr(),c.writeStringLiteral(ei)},writeSymbol:function(ei,bi){xr(),c.writeSymbol(ei,bi)},writePunctuation:function(ei){xr(),c.writePunctuation(ei)},writeKeyword:function(ei){xr(),c.writeKeyword(ei)},writeOperator:function(ei){xr(),c.writeOperator(ei)},writeParameter:function(ei){xr(),c.writeParameter(ei)},writeSpace:function(ei){xr(),c.writeSpace(ei)},writeProperty:function(ei){xr(),c.writeProperty(ei)},writeComment:function(ei){xr(),c.writeComment(ei)},writeLine:function(){xr(),c.writeLine()},increaseIndent:function(){xr(),c.increaseIndent()},decreaseIndent:function(){xr(),c.decreaseIndent()}})}e.getTrailingSemicolonDeferringWriter=os;function Ps(c){return c.useCaseSensitiveFileNames?c.useCaseSensitiveFileNames():!1}e.hostUsesCaseSensitiveFileNames=Ps;function d_(c){return e.createGetCanonicalFileName(Ps(c))}e.hostGetCanonicalFileName=d_;function Gc(c,te,xr){return te.moduleName||Gt(c,te.fileName,xr&&xr.fileName)}e.getResolvedExternalModuleName=Gc;function B_(c,te){return c.getCanonicalFileName(e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()))}function vu(c,te,xr){var ei=te.getExternalModuleFileFromDeclaration(xr);if(!(!ei||ei.isDeclarationFile)){var bi=eu(xr);if(!(bi&&e.isStringLiteralLike(bi)&&!e.pathIsRelative(bi.text)&&B_(c,ei.path).indexOf(B_(c,e.ensureTrailingDirectorySeparator(c.getCommonSourceDirectory())))===-1))return Gc(c,ei)}}e.getExternalModuleNameFromDeclaration=vu;function Gt(c,te,xr){var ei=function(mn){return c.getCanonicalFileName(mn)},bi=e.toPath(xr?e.getDirectoryPath(xr):c.getCommonSourceDirectory(),c.getCurrentDirectory(),ei),Ft=e.getNormalizedAbsolutePath(te,c.getCurrentDirectory()),ot=e.getRelativePathToDirectoryOrUrl(bi,Ft,bi,ei,!1),xa=Gd(ot);return xr?e.ensurePathIsNonModuleName(xa):xa}e.getExternalModuleNameFromPath=Gt;function As(c,te,xr){var ei=te.getCompilerOptions(),bi;return ei.outDir?bi=Gd(Dc(c,te,ei.outDir)):bi=Gd(c),bi+xr}e.getOwnEmitOutputFilePath=As;function vn(c,te){return Nl(c,te.getCompilerOptions(),te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(xr){return te.getCanonicalFileName(xr)})}e.getDeclarationEmitOutputFilePath=vn;function Nl(c,te,xr,ei,bi){var Ft=te.declarationDir||te.outDir,ot=Ft?Cc(c,Ft,xr,ei,bi):c,xa=cl(ot);return Gd(ot)+xa}e.getDeclarationEmitOutputFilePathWorker=Nl;function cl(c){return e.fileExtensionIsOneOf(c,[\".mjs\",\".mts\"])?\".d.mts\":e.fileExtensionIsOneOf(c,[\".cjs\",\".cts\"])?\".d.cts\":e.fileExtensionIsOneOf(c,[\".json\"])?\".json.d.ts\":\".d.ts\"}e.getDeclarationEmitExtensionForPath=cl;function rf(c){return e.fileExtensionIsOneOf(c,[\".d.mts\",\".mjs\",\".mts\"])?[\".mts\",\".mjs\"]:e.fileExtensionIsOneOf(c,[\".d.cts\",\".cjs\",\".cts\"])?[\".cts\",\".cjs\"]:e.fileExtensionIsOneOf(c,[\".json.d.ts\"])?[\".json\"]:[\".tsx\",\".ts\",\".jsx\",\".js\"]}e.getPossibleOriginalInputExtensionForExtension=rf;function Ut(c){return c.outFile||c.out}e.outFile=Ut;function Ds(c,te){var xr,ei;if(!!c.paths)return(xr=c.baseUrl)!==null&&xr!==void 0?xr:e.Debug.checkDefined(c.pathsBasePath||((ei=te.getCurrentDirectory)===null||ei===void 0?void 0:ei.call(te)),\"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.\")}e.getPathsBasePath=Ds;function bf(c,te,xr){var ei=c.getCompilerOptions();if(Ut(ei)){var bi=Ja(ei),Ft=ei.emitDeclarationOnly||bi===e.ModuleKind.AMD||bi===e.ModuleKind.System;return e.filter(c.getSourceFiles(),function(xa){return(Ft||!e.isExternalModule(xa))&&bs(xa,c,xr)})}else{var ot=te===void 0?c.getSourceFiles():[te];return e.filter(ot,function(xa){return bs(xa,c,xr)})}}e.getSourceFilesToEmit=bf;function bs(c,te,xr){var ei=te.getCompilerOptions();return!(ei.noEmitForJsFiles&&Pi(c))&&!c.isDeclarationFile&&!te.isSourceFileFromExternalLibrary(c)&&(xr||!(Mr(c)&&te.getResolvedProjectReferenceToRedirect(c.fileName))&&!te.isSourceOfProjectReferenceRedirect(c.fileName))}e.sourceFileMayBeEmitted=bs;function Dc(c,te,xr){return Cc(c,xr,te.getCurrentDirectory(),te.getCommonSourceDirectory(),function(ei){return te.getCanonicalFileName(ei)})}e.getSourceFilePathInNewDir=Dc;function Cc(c,te,xr,ei,bi){var Ft=e.getNormalizedAbsolutePath(c,xr),ot=bi(Ft).indexOf(bi(ei))===0;return Ft=ot?Ft.substring(ei.length):Ft,e.combinePaths(te,Ft)}e.getSourceFilePathInNewDirWorker=Cc;function ac(c,te,xr,ei,bi,Ft,ot){c.writeFile(xr,ei,bi,function(xa){te.add(qd(e.Diagnostics.Could_not_write_file_0_Colon_1,xr,xa))},Ft,ot)}e.writeFile=ac;function Pl(c,te,xr){if(c.length>e.getRootLength(c)&&!xr(c)){var ei=e.getDirectoryPath(c);Pl(ei,te,xr),te(c)}}function Il(c,te,xr,ei,bi,Ft){try{ei(c,te,xr)}catch{Pl(e.getDirectoryPath(e.normalizePath(c)),bi,Ft),ei(c,te,xr)}}e.writeFileEnsuringDirectories=Il;function zf(c,te){var xr=e.getLineStarts(c);return e.computeLineOfPosition(xr,te)}e.getLineOfLocalPosition=zf;function ul(c,te){return e.computeLineOfPosition(c,te)}e.getLineOfLocalPositionFromLineMap=ul;function Nu(c){return e.find(c.members,function(te){return e.isConstructorDeclaration(te)&&j(te.body)})}e.getFirstConstructorWithBody=Nu;function Us(c){if(c&&c.parameters.length>0){var te=c.parameters.length===2&&Sf(c.parameters[0]);return c.parameters[te?1:0]}}e.getSetAccessorValueParameter=Us;function Ap(c){var te=Us(c);return te&&te.type}e.getSetAccessorTypeAnnotationNode=Ap;function Wf(c){if(c.parameters.length&&!e.isJSDocSignature(c)){var te=c.parameters[0];if(Sf(te))return te}}e.getThisParameter=Wf;function Sf(c){return ll(c.name)}e.parameterIsThisKeyword=Sf;function ll(c){return!!c&&c.kind===79&&j_(c)}e.isThisIdentifier=ll;function J_(c){if(!ll(c))return!1;for(;e.isQualifiedName(c.parent)&&c.parent.left===c;)c=c.parent;return c.parent.kind===181}e.isThisInTypeQuery=J_;function j_(c){return c.originalKeywordKind===108}e.identifierIsThisKeyword=j_;function U_(c,te){var xr,ei,bi,Ft;return hc(te)?(xr=te,te.kind===172?bi=te:te.kind===173?Ft=te:e.Debug.fail(\"Accessor has wrong kind\")):e.forEach(c,function(ot){if(e.isAccessor(ot)&&Tf(ot)===Tf(te)){var xa=u_(ot.name),mn=u_(te.name);xa===mn&&(xr?ei||(ei=ot):xr=ot,ot.kind===172&&!bi&&(bi=ot),ot.kind===173&&!Ft&&(Ft=ot))}}),{firstAccessor:xr,secondAccessor:ei,getAccessor:bi,setAccessor:Ft}}e.getAllAccessorDeclarations=U_;function iu(c){if(!(!Ct(c)&&e.isFunctionDeclaration(c))){var te=c.type;return te||!Ct(c)?te:e.isJSDocPropertyLikeTag(c)?c.typeExpression&&c.typeExpression.type:e.getJSDocType(c)}}e.getEffectiveTypeAnnotationNode=iu;function vd(c){return c.type}e.getTypeAnnotationNode=vd;function qf(c){return e.isJSDocSignature(c)?c.type&&c.type.typeExpression&&c.type.typeExpression.type:c.type||(Ct(c)?e.getJSDocReturnType(c):void 0)}e.getEffectiveReturnTypeNode=qf;function dc(c){return e.flatMap(e.getJSDocTags(c),function(te){return Pu(te)?te.typeParameters:void 0})}e.getJSDocTypeParameterDeclarations=dc;function Pu(c){return e.isJSDocTemplateTag(c)&&!(c.parent.kind===320&&c.parent.tags.some(Ya))}function wl(c){var te=Us(c);return te&&iu(te)}e.getEffectiveSetAccessorTypeAnnotationNode=wl;function Iu(c,te,xr,ei){so(c,te,xr.pos,ei)}e.emitNewLineBeforeLeadingComments=Iu;function so(c,te,xr,ei){ei&&ei.length&&xr!==ei[0].pos&&ul(c,xr)!==ul(c,ei[0].pos)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentsOfPosition=so;function Et(c,te,xr,ei){xr!==ei&&ul(c,xr)!==ul(c,ei)&&te.writeLine()}e.emitNewLineBeforeLeadingCommentOfPosition=Et;function Ys(c,te,xr,ei,bi,Ft,ot,xa){if(ei&&ei.length>0){bi&&xr.writeSpace(\" \");for(var mn=!1,an=0,To=ei;an=ws+2)break}an.push(cs),To=cs}if(an.length){var ws=ul(te,e.last(an).end),Xo=ul(te,e.skipTrivia(c,bi.pos));Xo>=ws+2&&(Iu(te,xr,bi,xa),Ys(c,te,xr,an,!1,!0,Ft,ei),mn={nodePos:bi.pos,detachedCommentEndPos:e.last(an).end})}}return mn;function jl(Y_){return ue(c,Y_.pos)}}e.emitDetachedComments=Ku;function Np(c,te,xr,ei,bi,Ft){if(c.charCodeAt(ei+1)===42)for(var ot=e.computeLineAndCharacterOfPosition(te,ei),xa=te.length,mn=void 0,an=ei,To=ot.line;an0){var ws=cs%Df(),nu=p_((cs-ws)/Df());for(xr.rawWrite(nu);ws;)xr.rawWrite(\" \"),ws--}else xr.rawWrite(\"\")}Pp(c,bi,xr,Ft,an,Hn),an=Hn}else xr.writeComment(c.substring(ei,bi))}e.writeCommentRange=Np;function Pp(c,te,xr,ei,bi,Ft){var ot=Math.min(te,Ft-1),xa=e.trimString(c.substring(bi,ot));xa?(xr.writeComment(xa),ot!==te&&xr.writeLine()):xr.rawWrite(ei)}function nc(c,te,xr){for(var ei=0;te=0&&c.kind<=160?0:(c.modifierFlagsCache&536870912||(c.modifierFlagsCache=Ef(c)|536870912),te&&!(c.modifierFlagsCache&4096)&&(xr||Ct(c))&&c.parent&&(c.modifierFlagsCache|=rs(c)|4096),c.modifierFlagsCache&-536875009)}function xf(c){return tf(c,!0)}e.getEffectiveModifierFlags=xf;function z_(c){return tf(c,!0,!0)}e.getEffectiveModifierFlagsAlwaysIncludeJSDoc=z_;function Oc(c){return tf(c,!1)}e.getSyntacticModifierFlags=Oc;function rs(c){var te=0;return!!c.parent&&!e.isParameter(c)&&(Ct(c)&&(e.getJSDocPublicTagNoCache(c)&&(te|=4),e.getJSDocPrivateTagNoCache(c)&&(te|=8),e.getJSDocProtectedTagNoCache(c)&&(te|=16),e.getJSDocReadonlyTagNoCache(c)&&(te|=64),e.getJSDocOverrideTagNoCache(c)&&(te|=16384)),e.getJSDocDeprecatedTagNoCache(c)&&(te|=8192)),te}function Op(c){return Ef(c)|rs(c)}e.getEffectiveModifierFlagsNoCache=Op;function Ef(c){var te=Fl(c.modifiers);return(c.flags&4||c.kind===79&&c.isInJSDocNamespace)&&(te|=1),te}e.getSyntacticModifierFlagsNoCache=Ef;function Fl(c){var te=0;if(c)for(var xr=0,ei=c;xr=63&&c<=78}e.isAssignmentOperator=Cf;function W_(c){var te=g_(c);return te&&!te.isImplements?te.class:void 0}e.tryGetClassExtendingExpressionWithTypeArguments=W_;function g_(c){return e.isExpressionWithTypeArguments(c)&&e.isHeritageClause(c.parent)&&e.isClassLike(c.parent.parent)?{class:c.parent.parent,isImplements:c.parent.token===117}:void 0}e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=g_;function dl(c,te){return e.isBinaryExpression(c)&&(te?c.operatorToken.kind===63:Cf(c.operatorToken.kind))&&e.isLeftHandSideExpression(c.left)}e.isAssignmentExpression=dl;function gl(c){return dl(c.parent)&&c.parent.left===c}e.isLeftHandSideOfAssignment=gl;function Vf(c){if(dl(c,!0)){var te=c.left.kind;return te===205||te===204}return!1}e.isDestructuringAssignment=Vf;function Fc(c){return W_(c)!==void 0}e.isExpressionWithTypeArgumentsInClassExtendsClause=Fc;function Hu(c){return c.kind===79||Ml(c)}e.isEntityNameExpression=Hu;function af(c){switch(c.kind){case 79:return c;case 161:do c=c.left;while(c.kind!==79);return c;case 206:do c=c.expression;while(c.kind!==79);return c}}e.getFirstIdentifier=af;function tn(c){return c.kind===79||c.kind===108||c.kind===106||c.kind===231||c.kind===206&&tn(c.expression)||c.kind===212&&tn(c.expression)}e.isDottedName=tn;function Ml(c){return e.isPropertyAccessExpression(c)&&e.isIdentifier(c.name)&&Hu(c.expression)}e.isPropertyAccessEntityNameExpression=Ml;function Ot(c){if(e.isPropertyAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0)return te+\".\"+Xe(c.name)}else if(e.isElementAccessExpression(c)){var te=Ot(c.expression);if(te!==void 0&&e.isPropertyName(c.argumentExpression))return te+\".\"+u_(c.argumentExpression)}else if(e.isIdentifier(c))return e.unescapeLeadingUnderscores(c.escapedText)}e.tryGetPropertyAccessOrIdentifierToString=Ot;function nf(c){return ua(c)&&Ao(c)===\"prototype\"}e.isPrototypeAccess=nf;function q_(c){return c.parent.kind===161&&c.parent.right===c||c.parent.kind===206&&c.parent.name===c}e.isRightSideOfQualifiedNameOrPropertyAccess=q_;function Kf(c){return e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isElementAccessExpression(c.parent)&&c.parent.argumentExpression===c}e.isRightSideOfAccessExpression=Kf;function Rp(c){return e.isQualifiedName(c.parent)&&c.parent.right===c||e.isPropertyAccessExpression(c.parent)&&c.parent.name===c||e.isJSDocMemberName(c.parent)&&c.parent.right===c}e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName=Rp;function yd(c){return c.kind===205&&c.properties.length===0}e.isEmptyObjectLiteral=yd;function m_(c){return c.kind===204&&c.elements.length===0}e.isEmptyArrayLiteral=m_;function Ll(c){if(!(!hd(c)||!c.declarations))for(var te=0,xr=c.declarations;te0&&gc(c.declarations[0],512)}function v_(c){return e.find(oh,function(te){return e.fileExtensionIs(c,te)})}e.tryExtractTSExtension=v_;function Bp(c){for(var te=[],xr=c.length,ei=0;ei>6|192),te.push(bi&63|128)):bi<65536?(te.push(bi>>12|224),te.push(bi>>6&63|128),te.push(bi&63|128)):bi<131072?(te.push(bi>>18|240),te.push(bi>>12&63|128),te.push(bi>>6&63|128),te.push(bi&63|128)):e.Debug.assert(!1,\"Unexpected code point\")}return te}var Xu=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";function Xc(c){for(var te=\"\",xr=Bp(c),ei=0,bi=xr.length,Ft,ot,xa,mn;ei>2,ot=(xr[ei]&3)<<4|xr[ei+1]>>4,xa=(xr[ei+1]&15)<<2|xr[ei+2]>>6,mn=xr[ei+2]&63,ei+1>=bi?xa=mn=64:ei+2>=bi&&(mn=64),te+=Xu.charAt(Ft)+Xu.charAt(ot)+Xu.charAt(xa)+Xu.charAt(mn),ei+=3;return te}e.convertToBase64=Xc;function Gf(c){for(var te=\"\",xr=0,ei=c.length;xr>4&3,To=(ot&15)<<4|xa>>2&15,Hn=(xa&3)<<6|mn&63;To===0&&xa!==0?ei.push(an):Hn===0&&mn!==0?ei.push(an,To):ei.push(an,To,Hn),bi+=4}return Gf(ei)}e.base64decode=wu;function V_(c,te){try{var xr=te.readFile(c);if(!xr)return{};var ei=e.parseConfigFileTextToJson(c,xr);return ei.error?{}:ei.config}catch{return{}}}e.readJson=V_;function yu(c,te){return!te.directoryExists||te.directoryExists(c)}e.directoryProbablyExists=yu;var v=`\\r\n`,sr=`\n`;function fi(c,te){switch(c.newLine){case 0:return v;case 1:return sr}return te?te():e.sys?e.sys.newLine:v}e.getNewLineCharacter=fi;function zi(c,te){return te===void 0&&(te=c),e.Debug.assert(te>=c||te===-1),{pos:c,end:te}}e.createRange=zi;function Sa(c,te){return zi(c.pos,te)}e.moveRangeEnd=Sa;function da(c,te){return zi(te,c.end)}e.moveRangePos=da;function Ha(c){return c.decorators&&c.decorators.length>0?da(c,c.decorators.end):c}e.moveRangePastDecorators=Ha;function ta(c){return c.modifiers&&c.modifiers.length>0?da(c,c.modifiers.end):Ha(c)}e.moveRangePastModifiers=ta;function nn(c){return c.pos===c.end}e.isCollapsedRange=nn;function Wo(c,te){return zi(c,c+e.tokenToString(te).length)}e.createTokenRange=Wo;function Lo(c,te){return is(c,c,te)}e.rangeIsOnSingleLine=Lo;function oc(c,te,xr){return cf(uf(c,xr,!1),uf(te,xr,!1),xr)}e.rangeStartPositionsAreOnSameLine=oc;function uu(c,te,xr){return cf(c.end,te.end,xr)}e.rangeEndPositionsAreOnSameLine=uu;function is(c,te,xr){return cf(uf(c,xr,!1),te.end,xr)}e.rangeStartIsOnSameLineAsRangeEnd=is;function au(c,te,xr){return cf(c.end,uf(te,xr,!1),xr)}e.rangeEndIsOnSameLineAsRangeStart=au;function Ou(c,te,xr,ei){var bi=uf(te,xr,ei);return e.getLinesBetweenPositions(xr,c.end,bi)}e.getLinesBetweenRangeEndAndRangeStart=Ou;function sf(c,te,xr){return e.getLinesBetweenPositions(xr,c.end,te.end)}e.getLinesBetweenRangeEndPositions=sf;function lu(c,te){return!cf(c.pos,c.end,te)}e.isNodeArrayMultiLine=lu;function cf(c,te,xr){return e.getLinesBetweenPositions(xr,c,te)===0}e.positionsAreOnSameLine=cf;function uf(c,te,xr){return Jl(c.pos)?-1:e.skipTrivia(te.text,c.pos,!1,xr)}e.getStartPositionOfRange=uf;function K_(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei),Ft=Hf(bi,te,xr);return e.getLinesBetweenPositions(xr,Ft!=null?Ft:te,bi)}e.getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter=K_;function Jp(c,te,xr,ei){var bi=e.skipTrivia(xr.text,c,!1,ei);return e.getLinesBetweenPositions(xr,c,Math.min(te,bi))}e.getLinesBetweenPositionAndNextNonWhitespaceCharacter=Jp;function Hf(c,te,xr){for(te===void 0&&(te=0);c-- >te;)if(!e.isWhiteSpaceLike(xr.text.charCodeAt(c)))return c}function kc(c){var te=e.getParseTreeNode(c);if(te)switch(te.parent.kind){case 260:case 261:return te===te.parent.name}return!1}e.isDeclarationNameOfEnumOrNamespace=kc;function G_(c){return e.filter(c.declarations,Le)}e.getInitializedVariables=G_;function Le(c){return c.initializer!==void 0}function Nr(c){return c.watch&&c.hasOwnProperty(\"watch\")}e.isWatchSet=Nr;function ri(c){c.close()}e.closeFileWatcher=ri;function di(c){return c.flags&33554432?c.checkFlags:0}e.getCheckFlags=di;function Mi(c,te){if(te===void 0&&(te=!1),c.valueDeclaration){var xr=te&&c.declarations&&e.find(c.declarations,function(xa){return xa.kind===173})||c.valueDeclaration,ei=e.getCombinedModifierFlags(xr);return c.parent&&c.parent.flags&32?ei:ei&-29}if(di(c)&6){var bi=c.checkFlags,Ft=bi&1024?8:bi&256?4:16,ot=bi&2048?32:0;return Ft|ot}return c.flags&4194304?36:0}e.getDeclarationModifierFlagsFromSymbol=Mi;function st(c,te){return c.flags&2097152?te.getAliasedSymbol(c):c}e.skipAlias=st;function ra(c){return c.exportSymbol?c.exportSymbol.flags|c.flags:c.flags}e.getCombinedLocalAndExportSymbolFlags=ra;function Ta(c){return In(c)===1}e.isWriteOnlyAccess=Ta;function ha(c){return In(c)!==0}e.isWriteAccess=ha;var Na;(function(c){c[c.Read=0]=\"Read\",c[c.Write=1]=\"Write\",c[c.ReadWrite=2]=\"ReadWrite\"})(Na||(Na={}));function In(c){var te=c.parent;if(!te)return 0;switch(te.kind){case 212:return In(te);case 220:case 219:var xr=te.operator;return xr===45||xr===46?xa():0;case 221:var ei=te,bi=ei.left,Ft=ei.operatorToken;return bi===c&&Cf(Ft.kind)?Ft.kind===63?1:xa():0;case 206:return te.name!==c?0:In(te);case 296:{var ot=In(te.parent);return c===te.name?qo(ot):ot}case 297:return c===te.objectAssignmentInitializer?0:In(te.parent);case 204:return In(te);default:return 0}function xa(){return te.parent&&No(te.parent).kind===238?1:2}}function qo(c){switch(c){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(c)}}function co(c,te){if(!c||!te||Object.keys(c).length!==Object.keys(te).length)return!1;for(var xr in c)if(typeof c[xr]==\"object\"){if(!co(c[xr],te[xr]))return!1}else if(typeof c[xr]!=\"function\"&&c[xr]!==te[xr])return!1;return!0}e.compareDataObjects=co;function ts(c,te){c.forEach(te),c.clear()}e.clearMap=ts;function vs(c,te,xr){var ei=xr.onDeleteValue,bi=xr.onExistingValue;c.forEach(function(Ft,ot){var xa=te.get(ot);xa===void 0?(c.delete(ot),ei(Ft,ot)):bi&&bi(Ft,xa,ot)})}e.mutateMapSkippingNewValues=vs;function Ac(c,te,xr){vs(c,te,xr);var ei=xr.createNewValue;te.forEach(function(bi,Ft){c.has(Ft)||c.set(Ft,ei(Ft,bi))})}e.mutateMap=Ac;function Is(c){if(c.flags&32){var te=Qu(c);return!!te&&gc(te,128)}return!1}e.isAbstractConstructorSymbol=Is;function Qu(c){var te;return(te=c.declarations)===null||te===void 0?void 0:te.find(e.isClassLike)}e.getClassLikeDeclarationOfSymbol=Qu;function sc(c){return c.flags&3899393?c.objectFlags:0}e.getObjectFlags=sc;function bc(c,te){return te.getSignaturesOfType(c,0).length!==0||te.getSignaturesOfType(c,1).length!==0}e.typeHasCallOrConstructSignatures=bc;function Mc(c,te){return!!e.forEachAncestorDirectory(c,function(xr){return te(xr)?!0:void 0})}e.forSomeAncestorDirectory=Mc;function Yu(c){return!!c&&!!c.declarations&&!!c.declarations[0]&&e.isNamespaceExportDeclaration(c.declarations[0])}e.isUMDExportSymbol=Yu;function Rl(c){var te=c.moduleSpecifier;return e.isStringLiteral(te)?te.text:Ee(te)}e.showModuleSpecifier=Rl;function Lc(c){var te;return e.forEachChild(c,function(xr){j(xr)&&(te=xr)},function(xr){for(var ei=xr.length-1;ei>=0;ei--)if(j(xr[ei])){te=xr[ei];break}}),te}e.getLastChild=Lc;function _(c,te,xr){return xr===void 0&&(xr=!0),c.has(te)?!1:(c.set(te,xr),!0)}e.addToSeen=_;function W(c){return e.isClassLike(c)||e.isInterfaceDeclaration(c)||e.isTypeLiteralNode(c)}e.isObjectTypeDeclaration=W;function Te(c){return c>=177&&c<=200||c===130||c===155||c===147||c===158||c===148||c===133||c===150||c===151||c===114||c===153||c===143||c===228||c===312||c===313||c===314||c===315||c===316||c===317||c===318}e.isTypeNodeKind=Te;function cr(c){return c.kind===206||c.kind===207}e.isAccessExpression=cr;function ni(c){return c.kind===206?c.name:(e.Debug.assert(c.kind===207),c.argumentExpression)}e.getNameOfAccessExpression=ni;function rt(c){switch(c.kind){case\"text\":case\"internal\":return!0;default:return!1}}e.isBundleFileTextLike=rt;function yt(c){return c.kind===269||c.kind===273}e.isNamedImportsOrExports=yt;function Xa(c){for(;cr(c);)c=c.expression;return c}e.getLeftmostAccessExpression=Xa;function vo(c,te){if(cr(c.parent)&&Kf(c))return xr(c.parent);function xr(ei){if(ei.kind===206){var bi=te(ei.name);if(bi!==void 0)return bi}else if(ei.kind===207)if(e.isIdentifier(ei.argumentExpression)||e.isStringLiteralLike(ei.argumentExpression)){var bi=te(ei.argumentExpression);if(bi!==void 0)return bi}else return;if(cr(ei.expression))return xr(ei.expression);if(e.isIdentifier(ei.expression))return te(ei.expression)}}e.forEachNameInAccessChainWalkingLeft=vo;function Vs(c,te){for(;;){switch(c.kind){case 220:c=c.operand;continue;case 221:c=c.left;continue;case 222:c=c.condition;continue;case 210:c=c.tag;continue;case 208:if(te)return c;case 229:case 207:case 206:case 230:case 350:c=c.expression;continue}return c}}e.getLeftmostExpression=Vs;function H_(c,te){this.flags=c,this.escapedName=te,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function y_(c,te){this.flags=te,(e.Debug.isDebugging||e.tracing)&&(this.checker=c)}function Dd(c,te){this.flags=te,e.Debug.isDebugging&&(this.checker=c)}function jp(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function lg(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0}function Om(c,te,xr){this.pos=te,this.end=xr,this.kind=c,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.flowNode=void 0}function Fm(c,te,xr){this.fileName=c,this.text=te,this.skipTrivia=xr||function(ei){return ei}}e.objectAllocator={getNodeConstructor:function(){return jp},getTokenConstructor:function(){return lg},getIdentifierConstructor:function(){return Om},getPrivateIdentifierConstructor:function(){return jp},getSourceFileConstructor:function(){return jp},getSymbolConstructor:function(){return H_},getTypeConstructor:function(){return y_},getSignatureConstructor:function(){return Dd},getSourceMapSourceConstructor:function(){return Fm}};function Vg(c){Object.assign(e.objectAllocator,c)}e.setObjectAllocator=Vg;function Jt(c,te,xr){return xr===void 0&&(xr=0),c.replace(/{(\\d+)}/g,function(ei,bi){return\"\"+e.Debug.checkDefined(te[+bi+xr])})}e.formatStringFromArgs=Jt;var ml;function Xf(c){ml=c}e.setLocalizedDiagnosticMessages=Xf;function bd(c){!ml&&c&&(ml=c())}e.maybeSetLocalizedDiagnosticMessages=bd;function lf(c){return ml&&ml[c.key]||c.message}e.getLocaleSpecificMessage=lf;function Kg(c,te,xr,ei){zr(void 0,te,xr);var bi=lf(ei);return arguments.length>4&&(bi=Jt(bi,arguments,4)),{file:void 0,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,fileName:c}}e.createDetachedDiagnostic=Kg;function kf(c){return c.file===void 0&&c.start!==void 0&&c.length!==void 0&&typeof c.fileName==\"string\"}function Gg(c,te){var xr=te.fileName||\"\",ei=te.text.length;e.Debug.assertEqual(c.fileName,xr),e.Debug.assertLessThanOrEqual(c.start,ei),e.Debug.assertLessThanOrEqual(c.start+c.length,ei);var bi={file:te,start:c.start,length:c.length,messageText:c.messageText,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary};if(c.relatedInformation){bi.relatedInformation=[];for(var Ft=0,ot=c.relatedInformation;Ft4&&(bi=Jt(bi,arguments,4)),{file:c,start:te,length:xr,messageText:bi,category:ei.category,code:ei.code,reportsUnnecessary:ei.reportsUnnecessary,reportsDeprecated:ei.reportsDeprecated}}e.createFileDiagnostic=Hg;function Wd(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),xr}e.formatMessage=Wd;function qd(c){var te=lf(c);return arguments.length>1&&(te=Jt(te,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:te,category:c.category,code:c.code,reportsUnnecessary:c.reportsUnnecessary,reportsDeprecated:c.reportsDeprecated}}e.createCompilerDiagnostic=qd;function fg(c,te){return{file:void 0,start:void 0,length:void 0,code:c.code,category:c.category,messageText:c.next?c:c.messageText,relatedInformation:te}}e.createCompilerDiagnosticFromMessageChain=fg;function Mm(c,te){var xr=lf(te);return arguments.length>2&&(xr=Jt(xr,arguments,2)),{messageText:xr,category:te.category,code:te.code,next:c===void 0||Array.isArray(c)?c:[c]}}e.chainDiagnosticMessages=Mm;function Xg(c,te){for(var xr=c;xr.next;)xr=xr.next[0];xr.next=[te]}e.concatenateDiagnosticMessageChains=Xg;function Bl(c){return c.file?c.file.path:void 0}function Qg(c,te){return _g(c,te)||Qc(c,te)||0}e.compareDiagnostics=Qg;function _g(c,te){return e.compareStringsCaseSensitive(Bl(c),Bl(te))||e.compareValues(c.start,te.start)||e.compareValues(c.length,te.length)||e.compareValues(c.code,te.code)||Lm(c.messageText,te.messageText)||0}e.compareDiagnosticsSkipRelatedInformation=_g;function Qc(c,te){return!c.relatedInformation&&!te.relatedInformation?0:c.relatedInformation&&te.relatedInformation?e.compareValues(c.relatedInformation.length,te.relatedInformation.length)||e.forEach(c.relatedInformation,function(xr,ei){var bi=te.relatedInformation[ei];return Qg(xr,bi)})||0:c.relatedInformation?-1:1}function Lm(c,te){if(typeof c==\"string\"&&typeof te==\"string\")return e.compareStringsCaseSensitive(c,te);if(typeof c==\"string\")return-1;if(typeof te==\"string\")return 1;var xr=e.compareStringsCaseSensitive(c.messageText,te.messageText);if(xr)return xr;if(!c.next&&!te.next)return 0;if(!c.next)return-1;if(!te.next)return 1;for(var ei=Math.min(c.next.length,te.next.length),bi=0;bite.next.length?1:0}function Up(c){return c===4||c===2||c===1||c===6?1:0}e.getLanguageVariant=Up;function Rm(c){if(!!(c.transformFlags&2))return e.isJsxOpeningLikeElement(c)||e.isJsxFragment(c)?c:e.forEachChild(c,Rm)}function ff(c){return c.isDeclarationFile?void 0:Rm(c)}function It(c){return c.impliedNodeFormat===e.ModuleKind.ESNext&&!c.isDeclarationFile?!0:void 0}function Ma(c){switch(ro(c)){case e.ModuleDetectionKind.Force:return function(Ft){Ft.externalModuleIndicator=!Ft.isDeclarationFile||e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Legacy:return function(Ft){Ft.externalModuleIndicator=e.isFileProbablyExternalModule(Ft)};case e.ModuleDetectionKind.Auto:var te=[e.isFileProbablyExternalModule];(c.jsx===4||c.jsx===5)&&te.push(ff);var xr=Ja(c);(xr===e.ModuleKind.Node16||xr===e.ModuleKind.NodeNext)&&te.push(It);var ei=e.or.apply(void 0,te),bi=function(Ft){return void(Ft.externalModuleIndicator=ei(Ft))};return bi}}e.getSetExternalModuleIndicator=Ma;function aa(c){return c.target||c.module===e.ModuleKind.Node16&&9||c.module===e.ModuleKind.NodeNext&&99||0}e.getEmitScriptTarget=aa;function Ja(c){return typeof c.module==\"number\"?c.module:aa(c)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}e.getEmitModuleKind=Ja;function _n(c){var te=c.moduleResolution;if(te===void 0)switch(Ja(c)){case e.ModuleKind.CommonJS:te=e.ModuleResolutionKind.NodeJs;break;case e.ModuleKind.Node16:te=e.ModuleResolutionKind.Node16;break;case e.ModuleKind.NodeNext:te=e.ModuleResolutionKind.NodeNext;break;default:te=e.ModuleResolutionKind.Classic;break}return te}e.getEmitModuleResolutionKind=_n;function ro(c){return c.moduleDetection||e.ModuleDetectionKind.Auto}e.getEmitModuleDetectionKind=ro;function as(c){switch(Ja(c)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0;default:return!1}}e.hasJsonModuleEmitEnabled=as;function cc(c){return c.allowUnreachableCode===!1}e.unreachableCodeIsError=cc;function Sc(c){return c.allowUnusedLabels===!1}e.unusedLabelIsError=Sc;function hu(c){return!!(go(c)&&c.declarationMap)}e.getAreDeclarationMapsEnabled=hu;function Js(c){if(c.esModuleInterop!==void 0)return c.esModuleInterop;switch(Ja(c)){case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return!0}}e.getESModuleInterop=Js;function Qf(c){var te=Ja(c);return c.allowSyntheticDefaultImports!==void 0?c.allowSyntheticDefaultImports:Js(c)||te===e.ModuleKind.System}e.getAllowSyntheticDefaultImports=Qf;function go(c){return!!(c.declaration||c.composite)}e.getEmitDeclarations=go;function Vd(c){return!!(c.preserveConstEnums||c.isolatedModules)}e.shouldPreserveConstEnums=Vd;function X_(c){return!!(c.incremental||c.composite)}e.isIncrementalCompilation=X_;function Sd(c,te){return c[te]===void 0?!!c.strict:!!c[te]}e.getStrictOptionValue=Sd;function Yg(c){return c.allowJs===void 0?!!c.checkJs:c.allowJs}e.getAllowJSCompilerOption=Yg;function N1(c){return c.useDefineForClassFields===void 0?aa(c)>=9:c.useDefineForClassFields}e.getUseDefineForClassFields=N1;function P1(c,te){return m(te,c,e.semanticDiagnosticsOptionDeclarations)}e.compilerOptionsAffectSemanticDiagnostics=P1;function Yy(c,te){return m(te,c,e.affectsEmitOptionDeclarations)}e.compilerOptionsAffectEmit=Yy;function Bm(c,te){return te.strictFlag?Sd(c,te.name):c[te.name]}e.getCompilerOptionValue=Bm;function $y(c){var te=c.jsx;return te===2||te===4||te===5}e.getJSXTransformEnabled=$y;function Lv(c,te){var xr=te==null?void 0:te.pragmas.get(\"jsximportsource\"),ei=e.isArray(xr)?xr[xr.length-1]:xr;return c.jsx===4||c.jsx===5||c.jsxImportSource||ei?(ei==null?void 0:ei.arguments.factory)||c.jsxImportSource||\"react\":void 0}e.getJSXImplicitImportBase=Lv;function _f(c,te){return c?\"\".concat(c,\"/\").concat(te.jsx===5?\"jsx-dev-runtime\":\"jsx-runtime\"):void 0}e.getJSXRuntimeImport=_f;function Rv(c){for(var te=!1,xr=0;xr=2&&Ft.length>=2&&!Td(bi[bi.length-2],ei)&&!Td(Ft[Ft.length-2],ei)&&ei(bi[bi.length-1])===ei(Ft[Ft.length-1]);)bi.pop(),Ft.pop(),ot=!0;return ot?[e.getPathFromPathComponents(bi),e.getPathFromPathComponents(Ft)]:void 0}function Td(c,te){return c!==void 0&&(te(c)===\"node_modules\"||e.startsWith(c,\"@\"))}function I1(c){return e.isAnyDirectorySeparator(c.charCodeAt(0))?c.slice(1):void 0}function pf(c,te,xr){var ei=e.tryRemovePrefix(c,te,xr);return ei===void 0?void 0:I1(ei)}e.tryRemoveDirectoryPrefix=pf;var Bv=/[^\\w\\s\\/]/g;function Zy(c){return c.replace(Bv,Jv)}e.regExpEscape=Zy;function Jv(c){return\"\\\\\"+c}var Nf=[42,63];e.commonPackageFolders=[\"node_modules\",\"bower_components\",\"jspm_packages\"];var dg=\"(?!(\".concat(e.commonPackageFolders.join(\"|\"),\")(/|$))\"),Rc={singleAsteriskRegexFragment:\"([^./]|(\\\\.(?!min\\\\.js$))?)*\",doubleAsteriskRegexFragment:\"(/\".concat(dg,\"[^/.][^/]*)*?\"),replaceWildcardCharacter:function(c){return Jm(c,Rc.singleAsteriskRegexFragment)}},jv={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/\".concat(dg,\"[^/.][^/]*)*?\"),replaceWildcardCharacter:function(c){return Jm(c,jv.singleAsteriskRegexFragment)}},eh={singleAsteriskRegexFragment:\"[^/]*\",doubleAsteriskRegexFragment:\"(/.+?)?\",replaceWildcardCharacter:function(c){return Jm(c,eh.singleAsteriskRegexFragment)}},rh={files:Rc,directories:jv,exclude:eh};function Fu(c,te,xr){var ei=xd(c,te,xr);if(!(!ei||!ei.length)){var bi=ei.map(function(ot){return\"(\".concat(ot,\")\")}).join(\"|\"),Ft=xr===\"exclude\"?\"($|/)\":\"$\";return\"^(\".concat(bi,\")\").concat(Ft)}}e.getRegularExpressionForWildcard=Fu;function xd(c,te,xr){if(!(c===void 0||c.length===0))return e.flatMap(c,function(ei){return ei&&ih(ei,te,xr,rh[xr])})}e.getRegularExpressionsForWildcards=xd;function Uv(c){return!/[.*?]/.test(c)}e.isImplicitGlob=Uv;function w1(c,te,xr){var ei=c&&ih(c,te,xr,rh[xr]);return ei&&\"^(\".concat(ei,\")\").concat(xr===\"exclude\"?\"($|/)\":\"$\")}e.getPatternFromSpec=w1;function ih(c,te,xr,ei){var bi=ei.singleAsteriskRegexFragment,Ft=ei.doubleAsteriskRegexFragment,ot=ei.replaceWildcardCharacter,xa=\"\",mn=!1,an=e.getNormalizedPathComponents(c,te),To=e.last(an);if(!(xr!==\"exclude\"&&To===\"**\")){an[0]=e.removeTrailingDirectorySeparator(an[0]),Uv(To)&&an.push(\"**\",\"*\");for(var Hn=0,ss=0,cs=an;ss0;)xa+=\")?\",Hn--;return xa}}function Jm(c,te){return c===\"*\"?te:c===\"?\"?\"[^/]\":\"\\\\\"+c}function th(c,te,xr,ei,bi){c=e.normalizePath(c),bi=e.normalizePath(bi);var Ft=e.combinePaths(bi,c);return{includeFilePatterns:e.map(xd(xr,Ft,\"files\"),function(ot){return\"^\".concat(ot,\"$\")}),includeFilePattern:Fu(xr,Ft,\"files\"),includeDirectoryPattern:Fu(xr,Ft,\"directories\"),excludePattern:Fu(te,Ft,\"exclude\"),basePaths:zv(c,xr,ei)}}e.getFileMatcherPatterns=th;function gg(c,te){return new RegExp(c,te?\"\":\"i\")}e.getRegexFromPattern=gg;function O1(c,te,xr,ei,bi,Ft,ot,xa,mn){c=e.normalizePath(c),Ft=e.normalizePath(Ft);for(var an=th(c,xr,ei,bi,Ft),To=an.includeFilePatterns&&an.includeFilePatterns.map(function(b_){return gg(b_,bi)}),Hn=an.includeDirectoryPattern&&gg(an.includeDirectoryPattern,bi),ss=an.excludePattern&&gg(an.excludePattern,bi),cs=To?To.map(function(){return[]}):[[]],ws=new e.Map,nu=e.createGetCanonicalFileName(bi),Xo=0,jl=an.basePaths;Xo=0)}e.positionIsSynthesized=Jl;function vl(c){return c===\".ts\"||c===\".tsx\"||c===\".d.ts\"||c===\".cts\"||c===\".mts\"||c===\".d.mts\"||c===\".d.cts\"}e.extensionIsTS=vl;function _h(c){return vl(c)||c===\".json\"}e.resolutionExtensionIsTSOrJson=_h;function mg(c){var te=Lu(c);return te!==void 0?te:e.Debug.fail(\"File \".concat(c,\" has unknown extension.\"))}e.extensionFromPath=mg;function Ed(c){return Lu(c)!==void 0}e.isAnySupportedFileExtension=Ed;function Lu(c){return e.find(Kd,function(te){return e.fileExtensionIs(c,te)})}e.tryGetExtensionFromPath=Lu;function ph(c,te){return c.checkJsDirective?c.checkJsDirective.enabled:te.checkJs}e.isCheckJsEnabledForFile=ph,e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray};function qv(c,te){for(var xr=[],ei=0,bi=c;eiei&&(ei=Ft)}return{min:xr,max:ei}}e.minAndMax=Ru;function Pf(c){return{pos:Fe(c),end:c.end}}e.rangeOfNode=Pf;function h_(c,te){var xr=te.pos-1,ei=e.skipTrivia(c.text,te.end)+1;return{pos:xr,end:ei}}e.rangeOfTypeParameters=h_;function em(c,te,xr){return te.skipLibCheck&&c.isDeclarationFile||te.skipDefaultLibCheck&&c.hasNoDefaultLib||xr.isSourceOfProjectReferenceRedirect(c.fileName)}e.skipTypeChecking=em;function uo(c,te){return c===te||typeof c==\"object\"&&c!==null&&typeof te==\"object\"&&te!==null&&e.equalOwnProperties(c,te,uo)}e.isJsonEqual=uo;function U1(c){var te;switch(c.charCodeAt(1)){case 98:case 66:te=1;break;case 111:case 79:te=3;break;case 120:case 88:te=4;break;default:for(var xr=c.length-1,ei=0;c.charCodeAt(ei)===48;)ei++;return c.slice(ei,xr)||\"0\"}for(var bi=2,Ft=c.length-1,ot=(Ft-bi)*te,xa=new Uint16Array((ot>>>4)+(ot&15?1:0)),mn=Ft-1,an=0;mn>=bi;mn--,an+=te){var To=an>>>4,Hn=c.charCodeAt(mn),ss=Hn<=57?Hn-48:10+Hn-(Hn<=70?65:97),cs=ss<<(an&15);xa[To]|=cs;var ws=cs>>>16;ws&&(xa[To+1]|=ws)}for(var nu=\"\",Xo=xa.length-1,jl=!0;jl;){var Y_=0;jl=!1;for(var To=Xo;To>=0;To--){var Cd=Y_<<16|xa[To],b_=Cd/10|0;xa[To]=b_,Y_=Cd-b_*10,b_&&!jl&&(Xo=To,jl=!0)}nu=Y_+nu}return nu}e.parsePseudoBigInt=U1;function z1(c){var te=c.negative,xr=c.base10Value;return(te&&xr!==\"0\"?\"-\":\"\")+xr}e.pseudoBigIntToString=z1;function W1(c){return!!(c.flags&16777216)||S(c)||q1(c)||Tc(c)||!(Qe(c)||Q_(c))}e.isValidTypeOnlyAliasUseSite=W1;function Q_(c){return e.isIdentifier(c)&&e.isShorthandPropertyAssignment(c.parent)&&c.parent.name===c}function Tc(c){for(;c.kind===79||c.kind===206;)c=c.parent;if(c.kind!==162)return!1;if(gc(c.parent,128))return!0;var te=c.parent.parent.kind;return te===258||te===182}function q1(c){if(c.kind!==79)return!1;var te=e.findAncestor(c.parent,function(xr){switch(xr.kind){case 291:return!0;case 206:case 228:return!1;default:return\"quit\"}});return(te==null?void 0:te.token)===117||(te==null?void 0:te.parent.kind)===258}function Vv(c){return e.isTypeReferenceNode(c)&&e.isIdentifier(c.typeName)}e.isIdentifierTypeReference=Vv;function V1(c,te){if(te===void 0&&(te=e.equateValues),c.length<2)return!0;for(var xr=c[0],ei=1,bi=c.length;ei=0?e.factory.createNumericLiteral(+c):e.factory.createStringLiteral(c,!!xr)}e.createPropertyNameNodeForIdentifierOrLiteral=$v;function Zv(c){return!!(c.flags&262144&&c.isThisType)}e.isThisTypeParameter=Zv;function bu(c){var te=0,xr=0,ei=0,bi=0,Ft;(function(an){an[an.BeforeNodeModules=0]=\"BeforeNodeModules\",an[an.NodeModules=1]=\"NodeModules\",an[an.Scope=2]=\"Scope\",an[an.PackageContent=3]=\"PackageContent\"})(Ft||(Ft={}));for(var ot=0,xa=0,mn=0;xa>=0;)switch(ot=xa,xa=c.indexOf(\"/\",ot+1),mn){case 0:c.indexOf(e.nodeModulesPathPart,ot)===ot&&(te=ot,xr=xa,mn=1);break;case 1:case 2:mn===1&&c.charAt(ot+1)===\"@\"?mn=2:(ei=xa,mn=3);break;case 3:c.indexOf(e.nodeModulesPathPart,ot)===ot?mn=1:mn=3;break}return bi=ot,mn>1?{topLevelNodeModulesIndex:te,topLevelPackageNameIndex:xr,packageRootIndex:ei,fileNameIndex:bi}:void 0}e.getNodeModulePathParts=bu;function $1(c){var te;return c.kind===340?(te=c.typeExpression)===null||te===void 0?void 0:te.type:c.type}e.getParameterTypeNode=$1})(ke||(ke={}));var ke;(function(e){function a(){var C,w,B,E,Q;return{createBaseSourceFileNode:le,createBaseIdentifierNode:N,createBasePrivateIdentifierNode:p,createBaseTokenNode:m,createBaseNode:G};function le(oe){return new(Q||(Q=e.objectAllocator.getSourceFileConstructor()))(oe,-1,-1)}function N(oe){return new(B||(B=e.objectAllocator.getIdentifierConstructor()))(oe,-1,-1)}function p(oe){return new(E||(E=e.objectAllocator.getPrivateIdentifierConstructor()))(oe,-1,-1)}function m(oe){return new(w||(w=e.objectAllocator.getTokenConstructor()))(oe,-1,-1)}function G(oe){return new(C||(C=e.objectAllocator.getNodeConstructor()))(oe,-1,-1)}}e.createBaseNodeFactory=a})(ke||(ke={}));var ke;(function(e){function a(C){var w,B;return{getParenthesizeLeftSideOfBinaryForOperator:E,getParenthesizeRightSideOfBinaryForOperator:Q,parenthesizeLeftSideOfBinary:G,parenthesizeRightSideOfBinary:oe,parenthesizeExpressionOfComputedPropertyName:f,parenthesizeConditionOfConditionalExpression:T,parenthesizeBranchOfConditionalExpression:K,parenthesizeExpressionOfExportDefault:b,parenthesizeExpressionOfNew:se,parenthesizeLeftSideOfAccess:J,parenthesizeOperandOfPostfixUnary:ie,parenthesizeOperandOfPrefixUnary:R,parenthesizeExpressionsOfCommaDelimitedList:q,parenthesizeExpressionForDisallowedComma:O,parenthesizeExpressionOfExpressionStatement:ve,parenthesizeConciseBodyOfArrowFunction:ee,parenthesizeCheckTypeOfConditionalType:he,parenthesizeExtendsTypeOfConditionalType:F,parenthesizeConstituentTypesOfUnionType:X,parenthesizeConstituentTypeOfUnionType:x,parenthesizeConstituentTypesOfIntersectionType:A,parenthesizeConstituentTypeOfIntersectionType:$,parenthesizeOperandOfTypeOperator:y,parenthesizeOperandOfReadonlyTypeOperator:V,parenthesizeNonArrayTypeOfPostfixType:L,parenthesizeElementTypesOfTupleType:P,parenthesizeElementTypeOfTupleType:k,parenthesizeTypeOfOptionalType:U,parenthesizeTypeArguments:I,parenthesizeLeadingTypeArgument:j};function E(l){w||(w=new e.Map);var d=w.get(l);return d||(d=function(D){return G(l,D)},w.set(l,d)),d}function Q(l){B||(B=new e.Map);var d=B.get(l);return d||(d=function(D){return oe(l,void 0,D)},B.set(l,d)),d}function le(l,d,D,fe){var g=e.getOperatorPrecedence(221,l),ne=e.getOperatorAssociativity(221,l),ue=e.skipPartiallyEmittedExpressions(d);if(!D&&d.kind===214&&g>3)return!0;var We=e.getExpressionPrecedence(ue);switch(e.compareValues(We,g)){case-1:return!(!D&&ne===1&&d.kind===224);case 1:return!1;case 0:if(D)return ne===1;if(e.isBinaryExpression(ue)&&ue.operatorToken.kind===l){if(N(l))return!1;if(l===39){var Fe=fe?p(fe):0;if(e.isLiteralKind(Fe)&&Fe===p(ue))return!1}}var Z=e.getExpressionAssociativity(ue);return Z===0}}function N(l){return l===41||l===51||l===50||l===52}function p(l){if(l=e.skipPartiallyEmittedExpressions(l),e.isLiteralKind(l.kind))return l.kind;if(l.kind===221&&l.operatorToken.kind===39){if(l.cachedLiteralKind!==void 0)return l.cachedLiteralKind;var d=p(l.left),D=e.isLiteralKind(d)&&d===p(l.right)?d:0;return l.cachedLiteralKind=D,D}return 0}function m(l,d,D,fe){var g=e.skipPartiallyEmittedExpressions(d);return g.kind===212?d:le(l,d,D,fe)?C.createParenthesizedExpression(d):d}function G(l,d){return m(l,d,!0)}function oe(l,d,D){return m(l,D,!1,d)}function f(l){return e.isCommaSequence(l)?C.createParenthesizedExpression(l):l}function T(l){var d=e.getOperatorPrecedence(222,57),D=e.skipPartiallyEmittedExpressions(l),fe=e.getExpressionPrecedence(D);return e.compareValues(fe,d)!==1?C.createParenthesizedExpression(l):l}function K(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isCommaSequence(d)?C.createParenthesizedExpression(l):l}function b(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.isCommaSequence(d);if(!D)switch(e.getLeftmostExpression(d,!1).kind){case 226:case 213:D=!0}return D?C.createParenthesizedExpression(l):l}function se(l){var d=e.getLeftmostExpression(l,!0);switch(d.kind){case 208:return C.createParenthesizedExpression(l);case 209:return d.arguments?l:C.createParenthesizedExpression(l)}return J(l)}function J(l){var d=e.skipPartiallyEmittedExpressions(l);return e.isLeftHandSideExpression(d)&&(d.kind!==209||d.arguments)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ie(l){return e.isLeftHandSideExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function R(l){return e.isUnaryExpression(l)?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function q(l){var d=e.sameMap(l,O);return e.setTextRange(C.createNodeArray(d,l.hasTrailingComma),l)}function O(l){var d=e.skipPartiallyEmittedExpressions(l),D=e.getExpressionPrecedence(d),fe=e.getOperatorPrecedence(221,27);return D>fe?l:e.setTextRange(C.createParenthesizedExpression(l),l)}function ve(l){var d=e.skipPartiallyEmittedExpressions(l);if(e.isCallExpression(d)){var D=d.expression,fe=e.skipPartiallyEmittedExpressions(D).kind;if(fe===213||fe===214){var g=C.updateCallExpression(d,e.setTextRange(C.createParenthesizedExpression(D),D),d.typeArguments,d.arguments);return C.restoreOuterExpressions(l,g,8)}}var ne=e.getLeftmostExpression(d,!1).kind;return ne===205||ne===213?e.setTextRange(C.createParenthesizedExpression(l),l):l}function ee(l){return!e.isBlock(l)&&(e.isCommaSequence(l)||e.getLeftmostExpression(l,!1).kind===205)?e.setTextRange(C.createParenthesizedExpression(l),l):l}function he(l){switch(l.kind){case 179:case 180:case 189:return C.createParenthesizedType(l)}return l}function F(l){switch(l.kind){case 189:return C.createParenthesizedType(l)}return l}function x(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return he(l)}function X(l){return C.createNodeArray(e.sameMap(l,x))}function $(l){switch(l.kind){case 187:case 188:return C.createParenthesizedType(l)}return x(l)}function A(l){return C.createNodeArray(e.sameMap(l,$))}function y(l){switch(l.kind){case 188:return C.createParenthesizedType(l)}return $(l)}function V(l){switch(l.kind){case 193:return C.createParenthesizedType(l)}return y(l)}function L(l){switch(l.kind){case 190:case 193:case 181:return C.createParenthesizedType(l)}return y(l)}function P(l){return C.createNodeArray(e.sameMap(l,k))}function k(l){return Y(l)?C.createParenthesizedType(l):l}function Y(l){return e.isJSDocNullableType(l)?l.postfix:e.isNamedTupleMember(l)||e.isFunctionTypeNode(l)||e.isConstructorTypeNode(l)||e.isTypeOperatorNode(l)?Y(l.type):e.isConditionalTypeNode(l)?Y(l.falseType):e.isUnionTypeNode(l)||e.isIntersectionTypeNode(l)?Y(e.last(l.types)):e.isInferTypeNode(l)?!!l.typeParameter.constraint&&Y(l.typeParameter.constraint):!1}function U(l){return Y(l)?C.createParenthesizedType(l):L(l)}function j(l){return e.isFunctionOrConstructorTypeNode(l)&&l.typeParameters?C.createParenthesizedType(l):l}function H(l,d){return d===0?j(l):l}function I(l){if(e.some(l))return C.createNodeArray(e.sameMap(l,H))}}e.createParenthesizerRules=a,e.nullParenthesizerRules={getParenthesizeLeftSideOfBinaryForOperator:function(C){return e.identity},getParenthesizeRightSideOfBinaryForOperator:function(C){return e.identity},parenthesizeLeftSideOfBinary:function(C,w){return w},parenthesizeRightSideOfBinary:function(C,w,B){return B},parenthesizeExpressionOfComputedPropertyName:e.identity,parenthesizeConditionOfConditionalExpression:e.identity,parenthesizeBranchOfConditionalExpression:e.identity,parenthesizeExpressionOfExportDefault:e.identity,parenthesizeExpressionOfNew:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeLeftSideOfAccess:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPostfixUnary:function(C){return e.cast(C,e.isLeftHandSideExpression)},parenthesizeOperandOfPrefixUnary:function(C){return e.cast(C,e.isUnaryExpression)},parenthesizeExpressionsOfCommaDelimitedList:function(C){return e.cast(C,e.isNodeArray)},parenthesizeExpressionForDisallowedComma:e.identity,parenthesizeExpressionOfExpressionStatement:e.identity,parenthesizeConciseBodyOfArrowFunction:e.identity,parenthesizeCheckTypeOfConditionalType:e.identity,parenthesizeExtendsTypeOfConditionalType:e.identity,parenthesizeConstituentTypesOfUnionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfUnionType:e.identity,parenthesizeConstituentTypesOfIntersectionType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeConstituentTypeOfIntersectionType:e.identity,parenthesizeOperandOfTypeOperator:e.identity,parenthesizeOperandOfReadonlyTypeOperator:e.identity,parenthesizeNonArrayTypeOfPostfixType:e.identity,parenthesizeElementTypesOfTupleType:function(C){return e.cast(C,e.isNodeArray)},parenthesizeElementTypeOfTupleType:e.identity,parenthesizeTypeOfOptionalType:e.identity,parenthesizeTypeArguments:function(C){return C&&e.cast(C,e.isNodeArray)},parenthesizeLeadingTypeArgument:e.identity}})(ke||(ke={}));var ke;(function(e){function a(C){return{convertToFunctionBlock:w,convertToFunctionExpression:B,convertToArrayAssignmentElement:E,convertToObjectAssignmentElement:Q,convertToAssignmentPattern:le,convertToObjectAssignmentPattern:N,convertToArrayAssignmentPattern:p,convertToAssignmentElementTarget:m};function w(G,oe){if(e.isBlock(G))return G;var f=C.createReturnStatement(G);e.setTextRange(f,G);var T=C.createBlock([f],oe);return e.setTextRange(T,G),T}function B(G){if(!G.body)return e.Debug.fail(\"Cannot convert a FunctionDeclaration without a body\");var oe=C.createFunctionExpression(G.modifiers,G.asteriskToken,G.name,G.typeParameters,G.parameters,G.type,G.body);return e.setOriginalNode(oe,G),e.setTextRange(oe,G),e.getStartsOnNewLine(G)&&e.setStartsOnNewLine(oe,!0),oe}function E(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadElement(G.name),G),G);var oe=m(G.name);return G.initializer?e.setOriginalNode(e.setTextRange(C.createAssignment(oe,G.initializer),G),G):oe}return e.cast(G,e.isExpression)}function Q(G){if(e.isBindingElement(G)){if(G.dotDotDotToken)return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createSpreadAssignment(G.name),G),G);if(G.propertyName){var oe=m(G.name);return e.setOriginalNode(e.setTextRange(C.createPropertyAssignment(G.propertyName,G.initializer?C.createAssignment(oe,G.initializer):oe),G),G)}return e.Debug.assertNode(G.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(C.createShorthandPropertyAssignment(G.name,G.initializer),G),G)}return e.cast(G,e.isObjectLiteralElementLike)}function le(G){switch(G.kind){case 202:case 204:return p(G);case 201:case 205:return N(G)}}function N(G){return e.isObjectBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createObjectLiteralExpression(e.map(G.elements,Q)),G),G):e.cast(G,e.isObjectLiteralExpression)}function p(G){return e.isArrayBindingPattern(G)?e.setOriginalNode(e.setTextRange(C.createArrayLiteralExpression(e.map(G.elements,E)),G),G):e.cast(G,e.isArrayLiteralExpression)}function m(G){return e.isBindingPattern(G)?le(G):e.cast(G,e.isExpression)}}e.createNodeConverters=a,e.nullNodeConverters={convertToFunctionBlock:e.notImplemented,convertToFunctionExpression:e.notImplemented,convertToArrayAssignmentElement:e.notImplemented,convertToObjectAssignmentElement:e.notImplemented,convertToAssignmentPattern:e.notImplemented,convertToObjectAssignmentPattern:e.notImplemented,convertToArrayAssignmentPattern:e.notImplemented,convertToAssignmentElementTarget:e.notImplemented}})(ke||(ke={}));var ke;(function(e){var a=0,C;(function(X){X[X.None=0]=\"None\",X[X.NoParenthesizerRules=1]=\"NoParenthesizerRules\",X[X.NoNodeConverters=2]=\"NoNodeConverters\",X[X.NoIndentationOnFreshPropertyAccess=4]=\"NoIndentationOnFreshPropertyAccess\",X[X.NoOriginalNode=8]=\"NoOriginalNode\"})(C=e.NodeFactoryFlags||(e.NodeFactoryFlags={}));function w(X,$){var A=X&8?B:E,y=e.memoize(function(){return X&1?e.nullParenthesizerRules:e.createParenthesizerRules(g)}),V=e.memoize(function(){return X&2?e.nullNodeConverters:e.createNodeConverters(g)}),L=e.memoizeOne(function(_){return function(W,Te){return jr(W,_,Te)}}),P=e.memoizeOne(function(_){return function(W){return Pt(_,W)}}),k=e.memoizeOne(function(_){return function(W){return ua(W,_)}}),Y=e.memoizeOne(function(_){return function(){return Zl(_)}}),U=e.memoizeOne(function(_){return function(W){return kl(_,W)}}),j=e.memoizeOne(function(_){return function(W,Te){return zd(_,W,Te)}}),H=e.memoizeOne(function(_){return function(W,Te){return R_(_,W,Te)}}),I=e.memoizeOne(function(_){return function(W,Te){return __(_,W,Te)}}),l=e.memoizeOne(function(_){return function(W,Te){return Wf(_,W,Te)}}),d=e.memoizeOne(function(_){return function(W,Te,cr){return Sf(_,W,Te,cr)}}),D=e.memoizeOne(function(_){return function(W,Te,cr){return ll(_,W,Te,cr)}}),fe=e.memoizeOne(function(_){return function(W,Te,cr,ni){return J_(_,W,Te,cr,ni)}}),g={get parenthesizer(){return y()},get converters(){return V()},baseFactory:$,flags:X,createNodeArray:ne,createNumericLiteral:we,createBigIntLiteral:de,createStringLiteral:Ae,createStringLiteralFromNode:er,createRegularExpressionLiteral:ir,createLiteralLikeNode:Cr,createIdentifier:Er,updateIdentifier:Ne,createTempVariable:n,createLoopVariable:lr,createUniqueName:be,getGeneratedNameForNode:Ge,createPrivateIdentifier:ur,createToken:Ir,createSuper:wr,createThis:Ur,createNull:ii,createTrue:mi,createFalse:pe,createModifier:or,createModifiersFromModifierFlags:qr,createQualifiedName:si,updateQualifiedName:Di,createComputedPropertyName:wi,updateComputedPropertyName:Xi,createTypeParameterDeclaration:et,updateTypeParameterDeclaration:Gi,createParameterDeclaration:Wt,updateParameterDeclaration:Zt,createDecorator:_r,updateDecorator:pi,createPropertySignature:ae,updatePropertySignature:Xe,createPropertyDeclaration:Jr,updatePropertyDeclaration:ti,createMethodSignature:Ze,updateMethodSignature:Sr,createMethodDeclaration:zr,updateMethodDeclaration:Wr,createConstructorDeclaration:vr,updateConstructorDeclaration:mr,createGetAccessorDeclaration:Ar,updateGetAccessorDeclaration:Oe,createSetAccessorDeclaration:nr,updateSetAccessorDeclaration:Mr,createCallSignature:Pe,updateCallSignature:Ue,createConstructSignature:fr,updateConstructSignature:De,createIndexSignature:gr,updateIndexSignature:Vr,createClassStaticBlockDeclaration:Je,updateClassStaticBlockDeclaration:xe,createTemplateLiteralTypeSpan:Tr,updateTemplateLiteralTypeSpan:vi,createKeywordTypeNode:Ui,createTypePredicateNode:Yi,updateTypePredicateNode:Wi,createTypeReferenceNode:ct,updateTypeReferenceNode:Li,createFunctionTypeNode:nt,updateFunctionTypeNode:Mt,createConstructorTypeNode:xt,updateConstructorTypeNode:Rt,createTypeQueryNode:Fi,updateTypeQueryNode:ui,createTypeLiteralNode:Bt,updateTypeLiteralNode:wt,createArrayTypeNode:na,updateArrayTypeNode:Ai,createTupleTypeNode:Oi,updateTupleTypeNode:ji,createNamedTupleMember:Vi,updateNamedTupleMember:at,createOptionalTypeNode:At,updateOptionalTypeNode:ba,createRestTypeNode:$a,updateRestTypeNode:Qa,createUnionTypeNode:ka,updateUnionTypeNode:Ba,createIntersectionTypeNode:pn,updateIntersectionTypeNode:Cn,createConditionalTypeNode:Bi,updateConditionalTypeNode:kn,createInferTypeNode:xn,updateInferTypeNode:Kn,createImportTypeNode:Rn,updateImportTypeNode:Da,createParenthesizedType:bo,updateParenthesizedType:Ro,createThisTypeNode:En,createTypeOperatorNode:Wn,updateTypeOperatorNode:to,createIndexedAccessTypeNode:Co,updateIndexedAccessTypeNode:Ko,createMappedTypeNode:Oo,updateMappedTypeNode:no,createLiteralTypeNode:$o,updateLiteralTypeNode:Pr,createTemplateLiteralType:Pn,updateTemplateLiteralType:eo,createObjectBindingPattern:xi,updateObjectBindingPattern:St,createArrayBindingPattern:pa,updateArrayBindingPattern:dn,createBindingElement:Jn,updateBindingElement:Qe,createArrayLiteralExpression:S,updateArrayLiteralExpression:Ce,createObjectLiteralExpression:qe,updateObjectLiteralExpression:br,createPropertyAccessExpression:X&4?function(_,W){return e.setEmitFlags(Zr(_,W),131072)}:Zr,updatePropertyAccessExpression:Si,createPropertyAccessChain:X&4?function(_,W,Te){return e.setEmitFlags(Pi(_,W,Te),131072)}:Pi,updatePropertyAccessChain:Qi,createElementAccessExpression:Ct,updateElementAccessExpression:sa,createElementAccessChain:en,updateElementAccessChain:Wa,createCallExpression:qn,updateCallExpression:mo,createCallChain:So,updateCallChain:Go,createNewExpression:ys,updateNewExpression:Pc,createTaggedTemplateExpression:Vc,updateTaggedTemplateExpression:Kc,createTypeAssertion:Xs,updateTypeAssertion:pc,createParenthesizedExpression:hs,updateParenthesizedExpression:tc,createFunctionExpression:ps,updateFunctionExpression:Qs,createArrowFunction:js,updateArrowFunction:ds,createDeleteExpression:Ji,updateDeleteExpression:ce,createTypeOfExpression:Rr,updateTypeOfExpression:yi,createVoidExpression:qi,updateVoidExpression:je,createAwaitExpression:Hr,updateAwaitExpression:pt,createPrefixUnaryExpression:Pt,updatePrefixUnaryExpression:ga,createPostfixUnaryExpression:ua,updatePostfixUnaryExpression:Xn,createBinaryExpression:jr,updateBinaryExpression:xs,createConditionalExpression:Fo,updateConditionalExpression:ko,createTemplateExpression:Ao,updateTemplateExpression:Ms,createTemplateHead:su,createTemplateMiddle:tl,createTemplateTail:Zc,createNoSubstitutionTemplateLiteral:Rf,createTemplateLiteralLikeNode:xc,createYieldExpression:al,updateYieldExpression:Jo,createSpreadElement:eu,updateSpreadElement:Ws,createClassExpression:pu,updateClassExpression:Uu,createOmittedExpression:Ql,createExpressionWithTypeArguments:xl,updateExpressionWithTypeArguments:Ya,createAsExpression:du,updateAsExpression:vc,createNonNullExpression:Kr,updateNonNullExpression:_i,createNonNullChain:Ei,updateNonNullChain:tt,createMetaProperty:kt,updateMetaProperty:bt,createTemplateSpan:ia,updateTemplateSpan:Xt,createSemicolonClassElement:Za,createBlock:bn,updateBlock:_a,createVariableStatement:qa,updateVariableStatement:rn,createEmptyStatement:jn,createExpressionStatement:Mo,updateExpressionStatement:ho,createIfStatement:gs,updateIfStatement:Se,createDoStatement:hr,updateDoStatement:Or,createWhileStatement:ki,updateWhileStatement:dt,createForStatement:la,updateForStatement:wa,createForInStatement:On,updateForInStatement:No,createForOfStatement:jo,updateForOfStatement:po,createContinueStatement:Gn,updateContinueStatement:$n,createBreakStatement:Ho,updateBreakStatement:Zo,createReturnStatement:Es,updateReturnStatement:yc,createWithStatement:Xr,updateWithStatement:Ls,createSwitchStatement:Ic,updateSwitchStatement:zu,createLabeledStatement:vf,updateLabeledStatement:P_,createThrowStatement:El,updateThrowStatement:vp,createTryStatement:oo,updateTryStatement:I_,createDebuggerStatement:yp,createVariableDeclaration:Yl,updateVariableDeclaration:Bf,createVariableDeclarationList:Cl,updateVariableDeclarationList:c_,createFunctionDeclaration:hp,updateFunctionDeclaration:gu,createClassDeclaration:Dp,updateClassDeclaration:sd,createInterfaceDeclaration:Aa,updateInterfaceDeclaration:va,createTypeAliasDeclaration:Cu,updateTypeAliasDeclaration:qs,createEnumDeclaration:cd,updateEnumDeclaration:ns,createModuleDeclaration:nl,updateModuleDeclaration:hc,createModuleBlock:es,updateModuleBlock:u_,createCaseBlock:Jf,updateCaseBlock:w_,createNamespaceExportDeclaration:ud,updateNamespaceExportDeclaration:ku,createImportEqualsDeclaration:ld,updateImportEqualsDeclaration:fd,createImportDeclaration:bp,updateImportDeclaration:Sp,createImportClause:Tp,updateImportClause:_d,createAssertClause:jf,updateAssertClause:O_,createAssertEntry:F_,updateAssertEntry:pd,createImportTypeAssertionContainer:xp,updateImportTypeAssertionContainer:M_,createNamespaceImport:Ep,updateNamespaceImport:ol,createNamespaceExport:Au,updateNamespaceExport:ru,createNamedImports:yf,updateNamedImports:Cp,createImportSpecifier:dd,updateImportSpecifier:kp,createExportAssignment:mu,updateExportAssignment:gd,createExportDeclaration:hf,updateExportDeclaration:$l,createNamedExports:Uf,updateNamedExports:L_,createExportSpecifier:l_,updateExportSpecifier:f_,createMissingDeclaration:md,createExternalModuleReference:ks,updateExternalModuleReference:Wu,get createJSDocAllType(){return Y(312)},get createJSDocUnknownType(){return Y(313)},get createJSDocNonNullableType(){return H(315)},get updateJSDocNonNullableType(){return I(315)},get createJSDocNullableType(){return H(314)},get updateJSDocNullableType(){return I(314)},get createJSDocOptionalType(){return U(316)},get updateJSDocOptionalType(){return j(316)},get createJSDocVariadicType(){return U(318)},get updateJSDocVariadicType(){return j(318)},get createJSDocNamepathType(){return U(319)},get updateJSDocNamepathType(){return j(319)},createJSDocFunctionType:Al,updateJSDocFunctionType:wc,createJSDocTypeLiteral:qu,updateJSDocTypeLiteral:Vu,createJSDocTypeExpression:ef,updateJSDocTypeExpression:sl,createJSDocSignature:p_,updateJSDocSignature:Df,createJSDocTemplateTag:os,updateJSDocTemplateTag:Ps,createJSDocTypedefTag:d_,updateJSDocTypedefTag:Gc,createJSDocParameterTag:B_,updateJSDocParameterTag:vu,createJSDocPropertyTag:Gt,updateJSDocPropertyTag:As,createJSDocCallbackTag:vn,updateJSDocCallbackTag:Nl,createJSDocAugmentsTag:cl,updateJSDocAugmentsTag:rf,createJSDocImplementsTag:Ut,updateJSDocImplementsTag:Ap,createJSDocSeeTag:Ds,updateJSDocSeeTag:bf,createJSDocNameReference:bs,updateJSDocNameReference:Dc,createJSDocMemberName:Cc,updateJSDocMemberName:ac,createJSDocLink:Pl,updateJSDocLink:Il,createJSDocLinkCode:zf,updateJSDocLinkCode:ul,createJSDocLinkPlain:Nu,updateJSDocLinkPlain:Us,get createJSDocTypeTag(){return D(343)},get updateJSDocTypeTag(){return fe(343)},get createJSDocReturnTag(){return D(341)},get updateJSDocReturnTag(){return fe(341)},get createJSDocThisTag(){return D(342)},get updateJSDocThisTag(){return fe(342)},get createJSDocEnumTag(){return D(339)},get updateJSDocEnumTag(){return fe(339)},get createJSDocAuthorTag(){return l(330)},get updateJSDocAuthorTag(){return d(330)},get createJSDocClassTag(){return l(332)},get updateJSDocClassTag(){return d(332)},get createJSDocPublicTag(){return l(333)},get updateJSDocPublicTag(){return d(333)},get createJSDocPrivateTag(){return l(334)},get updateJSDocPrivateTag(){return d(334)},get createJSDocProtectedTag(){return l(335)},get updateJSDocProtectedTag(){return d(335)},get createJSDocReadonlyTag(){return l(336)},get updateJSDocReadonlyTag(){return d(336)},get createJSDocOverrideTag(){return l(337)},get updateJSDocOverrideTag(){return d(337)},get createJSDocDeprecatedTag(){return l(331)},get updateJSDocDeprecatedTag(){return d(331)},createJSDocUnknownTag:j_,updateJSDocUnknownTag:U_,createJSDocText:iu,updateJSDocText:vd,createJSDocComment:qf,updateJSDocComment:dc,createJsxElement:Pu,updateJsxElement:wl,createJsxSelfClosingElement:Iu,updateJsxSelfClosingElement:so,createJsxOpeningElement:Et,updateJsxOpeningElement:Ys,createJsxClosingElement:Ku,updateJsxClosingElement:Np,createJsxFragment:Pp,createJsxText:fl,updateJsxText:_l,createJsxOpeningFragment:cu,createJsxJsxClosingFragment:gc,updateJsxFragment:nc,createJsxAttribute:Tf,updateJsxAttribute:mc,createJsxAttributes:Ip,updateJsxAttributes:ms,createJsxSpreadAttribute:tu,updateJsxSpreadAttribute:wp,createJsxExpression:Hc,updateJsxExpression:Ol,createCaseClause:tf,updateCaseClause:xf,createDefaultClause:z_,updateDefaultClause:Oc,createHeritageClause:rs,updateHeritageClause:Op,createCatchClause:Ef,updateCatchClause:Fl,createPropertyAssignment:pl,updatePropertyAssignment:Mp,createShorthandPropertyAssignment:Gu,updateShorthandPropertyAssignment:Cf,createSpreadAssignment:W_,updateSpreadAssignment:g_,createEnumMember:dl,updateEnumMember:gl,createSourceFile:Vf,updateSourceFile:Hu,createBundle:af,updateBundle:tn,createUnparsedSource:Ml,createUnparsedPrologue:nf,createUnparsedPrepend:q_,createUnparsedTextLike:Kf,createUnparsedSyntheticReference:Rp,createInputFiles:yd,createSyntheticExpression:m_,createSyntaxList:Ll,createNotEmittedStatement:hd,createPartiallyEmittedExpression:v_,updatePartiallyEmittedExpression:Bp,createCommaListExpression:Xc,updateCommaListExpression:Gf,createEndOfDeclarationMarker:of,createMergeDeclarationMarker:wu,createSyntheticReferenceExpression:V_,updateSyntheticReferenceExpression:yu,cloneNode:v,get createComma(){return L(27)},get createAssignment(){return L(63)},get createLogicalOr(){return L(56)},get createLogicalAnd(){return L(55)},get createBitwiseOr(){return L(51)},get createBitwiseXor(){return L(52)},get createBitwiseAnd(){return L(50)},get createStrictEquality(){return L(36)},get createStrictInequality(){return L(37)},get createEquality(){return L(34)},get createInequality(){return L(35)},get createLessThan(){return L(29)},get createLessThanEquals(){return L(32)},get createGreaterThan(){return L(31)},get createGreaterThanEquals(){return L(33)},get createLeftShift(){return L(47)},get createRightShift(){return L(48)},get createUnsignedRightShift(){return L(49)},get createAdd(){return L(39)},get createSubtract(){return L(40)},get createMultiply(){return L(41)},get createDivide(){return L(43)},get createModulo(){return L(44)},get createExponent(){return L(42)},get createPrefixPlus(){return P(39)},get createPrefixMinus(){return P(40)},get createPrefixIncrement(){return P(45)},get createPrefixDecrement(){return P(46)},get createBitwiseNot(){return P(54)},get createLogicalNot(){return P(53)},get createPostfixIncrement(){return k(45)},get createPostfixDecrement(){return k(46)},createImmediatelyInvokedFunctionExpression:sr,createImmediatelyInvokedArrowFunction:fi,createVoidZero:zi,createExportDefault:Sa,createExternalModuleExport:da,createTypeCheck:Ha,createMethodCall:ta,createGlobalMethodCall:oc,createFunctionBindCall:nn,createFunctionCallCall:Wo,createFunctionApplyCall:Lo,createArraySliceCall:uu,createArrayConcatCall:is,createObjectDefinePropertyCall:au,createReflectGetCall:Ou,createReflectSetCall:sf,createPropertyDescriptor:cf,createCallBinding:G_,createAssignmentTargetWrapper:Le,inlineExpressions:Nr,getInternalName:di,getLocalName:Mi,getExportName:st,getDeclarationName:ra,getNamespaceMemberName:Ta,getExternalModuleOrNamespaceExportName:ha,restoreOuterExpressions:Jp,restoreEnclosingLabel:Hf,createUseStrictPrologue:qo,copyPrologue:Na,copyStandardPrologue:co,copyCustomPrologue:ts,ensureUseStrict:vs,liftToBlock:Ac,mergeLexicalEnvironment:Qu,updateModifiers:sc};return g;function ne(_,W){if(_===void 0||_===e.emptyArray)_=[];else if(e.isNodeArray(_)){if(W===void 0||_.hasTrailingComma===W)return _.transformFlags===void 0&&T(_),e.Debug.attachNodeArrayDebugInfo(_),_;var Te=_.slice();return Te.pos=_.pos,Te.end=_.end,Te.hasTrailingComma=W,Te.transformFlags=_.transformFlags,e.Debug.attachNodeArrayDebugInfo(Te),Te}var cr=_.length,ni=cr>=1&&cr<=4?_.slice():_;return e.setTextRangePosEnd(ni,-1,-1),ni.hasTrailingComma=!!W,T(ni),e.Debug.attachNodeArrayDebugInfo(ni),ni}function ue(_){return $.createBaseNode(_)}function We(_,W,Te){var cr=ue(_);return cr.decorators=bc(W),cr.modifiers=bc(Te),cr.transformFlags|=f(cr.decorators)|f(cr.modifiers),cr.symbol=void 0,cr.localSymbol=void 0,cr.locals=void 0,cr.nextContainer=void 0,cr}function Fe(_,W,Te,cr){var ni=We(_,W,Te);if(cr=Mc(cr),ni.name=cr,cr)switch(ni.kind){case 169:case 172:case 173:case 167:case 296:if(e.isIdentifier(cr)){ni.transformFlags|=m(cr);break}default:ni.transformFlags|=oe(cr);break}return ni}function Z(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.typeParameters=bc(ni),rt.transformFlags|=f(rt.typeParameters),ni&&(rt.transformFlags|=1),rt}function Be(_,W,Te,cr,ni,rt,yt){var Xa=Z(_,W,Te,cr,ni);return Xa.parameters=ne(rt),Xa.type=yt,Xa.transformFlags|=f(Xa.parameters)|oe(Xa.type),yt&&(Xa.transformFlags|=1),Xa}function ge(_,W){return W.typeArguments&&(_.typeArguments=W.typeArguments),A(_,W)}function Re(_,W,Te,cr,ni,rt,yt,Xa){var vo=Be(_,W,Te,cr,ni,rt,yt);return vo.body=Xa,vo.transformFlags|=oe(vo.body)&-16777217,Xa||(vo.transformFlags|=1),vo}function ze(_,W){return W.exclamationToken&&(_.exclamationToken=W.exclamationToken),W.typeArguments&&(_.typeArguments=W.typeArguments),ge(_,W)}function Ee(_,W,Te,cr,ni,rt){var yt=Z(_,W,Te,cr,ni);return yt.heritageClauses=bc(rt),yt.transformFlags|=f(yt.heritageClauses),yt}function He(_,W,Te,cr,ni,rt,yt){var Xa=Ee(_,W,Te,cr,ni,rt);return Xa.members=ne(yt),Xa.transformFlags|=f(Xa.members),Xa}function rr(_,W,Te,cr,ni){var rt=Fe(_,W,Te,cr);return rt.initializer=ni,rt.transformFlags|=oe(rt.initializer),rt}function Ie(_,W,Te,cr,ni,rt){var yt=rr(_,W,Te,cr,rt);return yt.type=ni,yt.transformFlags|=oe(ni),ni&&(yt.transformFlags|=1),yt}function _e(_,W){var Te=yr(_);return Te.text=W,Te}function we(_,W){W===void 0&&(W=0);var Te=_e(8,typeof _==\"number\"?_+\"\":_);return Te.numericLiteralFlags=W,W&384&&(Te.transformFlags|=1024),Te}function de(_){var W=_e(9,typeof _==\"string\"?_:e.pseudoBigIntToString(_)+\"n\");return W.transformFlags|=4,W}function ye(_,W){var Te=_e(10,_);return Te.singleQuote=W,Te}function Ae(_,W,Te){var cr=ye(_,W);return cr.hasExtendedUnicodeEscape=Te,Te&&(cr.transformFlags|=1024),cr}function er(_){var W=ye(e.getTextOfIdentifierOrLiteral(_),void 0);return W.textSourceNode=_,W}function ir(_){var W=_e(13,_);return W}function Cr(_,W){switch(_){case 8:return we(W,0);case 9:return de(W);case 10:return Ae(W,void 0);case 11:return fl(W,!1);case 12:return fl(W,!0);case 13:return ir(W);case 14:return xc(_,W,void 0,0)}}function Ye(_,W){W===void 0&&_&&(W=e.stringToToken(_)),W===79&&(W=void 0);var Te=$.createBaseIdentifierNode(79);return Te.originalKeywordKind=W,Te.escapedText=e.escapeLeadingUnderscores(_),Te}function Br(_,W){var Te=Ye(_,void 0);return Te.autoGenerateFlags=W,Te.autoGenerateId=a,a++,Te}function Er(_,W,Te){var cr=Ye(_,Te);return W&&(cr.typeArguments=ne(W)),cr.originalKeywordKind===132&&(cr.transformFlags|=16777216),cr}function Ne(_,W){return _.typeArguments!==W?A(Er(e.idText(_),W),_):_}function n(_,W){var Te=1;W&&(Te|=8);var cr=Br(\"\",Te);return _&&_(cr),cr}function lr(_){var W=2;return _&&(W|=8),Br(\"\",W)}function be(_,W){return W===void 0&&(W=0),e.Debug.assert(!(W&7),\"Argument out of range: flags\"),e.Debug.assert((W&48)!==32,\"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic\"),Br(_,3|W)}function Ge(_,W){W===void 0&&(W=0),e.Debug.assert(!(W&7),\"Argument out of range: flags\");var Te=Br(_&&e.isIdentifier(_)?e.idText(_):\"\",4|W);return Te.original=_,Te}function ur(_){e.startsWith(_,\"#\")||e.Debug.fail(\"First character of private identifier must be #: \"+_);var W=$.createBasePrivateIdentifierNode(80);return W.escapedText=e.escapeLeadingUnderscores(_),W.transformFlags|=8388608,W}function yr(_){return $.createBaseTokenNode(_)}function Ir(_){e.Debug.assert(_>=0&&_<=160,\"Invalid token\"),e.Debug.assert(_<=14||_>=17,\"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals.\"),e.Debug.assert(_<=8||_>=14,\"Invalid token. Use 'createLiteralLikeNode' to create literals.\"),e.Debug.assert(_!==79,\"Invalid token. Use 'createIdentifier' to create identifiers\");var W=yr(_),Te=0;switch(_){case 131:Te=384;break;case 123:case 121:case 122:case 145:case 126:case 135:case 85:case 130:case 147:case 158:case 143:case 148:case 101:case 144:case 159:case 150:case 133:case 151:case 114:case 155:case 153:Te=1;break;case 106:Te=33555456;break;case 124:Te=1024;break;case 108:Te=8192;break}return Te&&(W.transformFlags|=Te),W}function wr(){return Ir(106)}function Ur(){return Ir(108)}function ii(){return Ir(104)}function mi(){return Ir(110)}function pe(){return Ir(95)}function or(_){return Ir(_)}function qr(_){var W=[];return _&1&&W.push(or(93)),_&2&&W.push(or(135)),_&512&&W.push(or(88)),_&2048&&W.push(or(85)),_&4&&W.push(or(123)),_&8&&W.push(or(121)),_&16&&W.push(or(122)),_&128&&W.push(or(126)),_&32&&W.push(or(124)),_&16384&&W.push(or(159)),_&64&&W.push(or(145)),_&256&&W.push(or(131)),_&32768&&W.push(or(101)),_&65536&&W.push(or(144)),W.length?W:void 0}function si(_,W){var Te=ue(161);return Te.left=_,Te.right=Mc(W),Te.transformFlags|=oe(Te.left)|m(Te.right),Te}function Di(_,W,Te){return _.left!==W||_.right!==Te?A(si(W,Te),_):_}function wi(_){var W=ue(162);return W.expression=y().parenthesizeExpressionOfComputedPropertyName(_),W.transformFlags|=oe(W.expression)|1024|65536,W}function Xi(_,W){return _.expression!==W?A(wi(W),_):_}function et(_,W,Te,cr){var ni,rt,yt;_===void 0||e.isArray(_)?(rt=_,ni=W,yt=Te):(rt=void 0,ni=_,yt=W);var Xa=Fe(163,void 0,rt,ni);return Xa.constraint=yt,Xa.default=cr,Xa.transformFlags=1,Xa}function Gi(_,W,Te,cr,ni){var rt,yt,Xa;return W===void 0||e.isArray(W)?(yt=W,rt=Te,Xa=cr):(yt=void 0,rt=W,Xa=Te),_.modifiers!==yt||_.name!==rt||_.constraint!==Xa||_.default!==ni?A(et(yt,rt,Xa,ni),_):_}function Wt(_,W,Te,cr,ni,rt,yt){var Xa=Ie(164,_,W,cr,rt,yt&&y().parenthesizeExpressionForDisallowedComma(yt));return Xa.dotDotDotToken=Te,Xa.questionToken=ni,e.isThisIdentifier(Xa.name)?Xa.transformFlags=1:(Xa.transformFlags|=oe(Xa.dotDotDotToken)|oe(Xa.questionToken),ni&&(Xa.transformFlags|=1),e.modifiersToFlags(Xa.modifiers)&16476&&(Xa.transformFlags|=4096),(yt||Te)&&(Xa.transformFlags|=1024)),Xa}function Zt(_,W,Te,cr,ni,rt,yt,Xa){return _.decorators!==W||_.modifiers!==Te||_.dotDotDotToken!==cr||_.name!==ni||_.questionToken!==rt||_.type!==yt||_.initializer!==Xa?A(Wt(W,Te,cr,ni,rt,yt,Xa),_):_}function _r(_){var W=ue(165);return W.expression=y().parenthesizeLeftSideOfAccess(_),W.transformFlags|=oe(W.expression)|1|4096,W}function pi(_,W){return _.expression!==W?A(_r(W),_):_}function ae(_,W,Te,cr){var ni=Fe(166,void 0,_,W);return ni.type=cr,ni.questionToken=Te,ni.transformFlags=1,ni}function Xe(_,W,Te,cr,ni){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.type!==ni?A(ae(W,Te,cr,ni),_):_}function Jr(_,W,Te,cr,ni,rt){var yt=Ie(167,_,W,Te,ni,rt);return yt.questionToken=cr&&e.isQuestionToken(cr)?cr:void 0,yt.exclamationToken=cr&&e.isExclamationToken(cr)?cr:void 0,yt.transformFlags|=oe(yt.questionToken)|oe(yt.exclamationToken)|8388608,(e.isComputedPropertyName(yt.name)||e.hasStaticModifier(yt)&&yt.initializer)&&(yt.transformFlags|=4096),(cr||e.modifiersToFlags(yt.modifiers)&2)&&(yt.transformFlags|=1),yt}function ti(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.questionToken!==(ni!==void 0&&e.isQuestionToken(ni)?ni:void 0)||_.exclamationToken!==(ni!==void 0&&e.isExclamationToken(ni)?ni:void 0)||_.type!==rt||_.initializer!==yt?A(Jr(W,Te,cr,ni,rt,yt),_):_}function Ze(_,W,Te,cr,ni,rt){var yt=Be(168,void 0,_,W,cr,ni,rt);return yt.questionToken=Te,yt.transformFlags=1,yt}function Sr(_,W,Te,cr,ni,rt,yt){return _.modifiers!==W||_.name!==Te||_.questionToken!==cr||_.typeParameters!==ni||_.parameters!==rt||_.type!==yt?ge(Ze(W,Te,cr,ni,rt,yt),_):_}function zr(_,W,Te,cr,ni,rt,yt,Xa,vo){var Vs=Re(169,_,W,cr,rt,yt,Xa,vo);return Vs.asteriskToken=Te,Vs.questionToken=ni,Vs.transformFlags|=oe(Vs.asteriskToken)|oe(Vs.questionToken)|1024,ni&&(Vs.transformFlags|=1),e.modifiersToFlags(Vs.modifiers)&256?Te?Vs.transformFlags|=128:Vs.transformFlags|=256:Te&&(Vs.transformFlags|=2048),Vs}function Wr(_,W,Te,cr,ni,rt,yt,Xa,vo,Vs){return _.decorators!==W||_.modifiers!==Te||_.asteriskToken!==cr||_.name!==ni||_.questionToken!==rt||_.typeParameters!==yt||_.parameters!==Xa||_.type!==vo||_.body!==Vs?ze(zr(W,Te,cr,ni,rt,yt,Xa,vo,Vs),_):_}function Je(_,W,Te){var cr=Z(170,_,W,void 0,void 0);return cr.body=Te,cr.transformFlags=oe(Te)|8388608,cr}function xe(_,W,Te,cr){return _.decorators!==W||_.modifier!==Te||_.body!==cr?A(Je(W,Te,cr),_):_}function vr(_,W,Te,cr){var ni=Re(171,_,W,void 0,void 0,Te,void 0,cr);return ni.transformFlags|=1024,ni}function mr(_,W,Te,cr,ni){return _.decorators!==W||_.modifiers!==Te||_.parameters!==cr||_.body!==ni?ze(vr(W,Te,cr,ni),_):_}function Ar(_,W,Te,cr,ni,rt){return Re(172,_,W,Te,void 0,cr,ni,rt)}function Oe(_,W,Te,cr,ni,rt,yt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.type!==rt||_.body!==yt?ze(Ar(W,Te,cr,ni,rt,yt),_):_}function nr(_,W,Te,cr,ni){return Re(173,_,W,Te,void 0,cr,void 0,ni)}function Mr(_,W,Te,cr,ni,rt){return _.decorators!==W||_.modifiers!==Te||_.name!==cr||_.parameters!==ni||_.body!==rt?ze(nr(W,Te,cr,ni,rt),_):_}function Pe(_,W,Te){var cr=Be(174,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Ue(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(Pe(W,Te,cr),_):_}function fr(_,W,Te){var cr=Be(175,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function De(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(fr(W,Te,cr),_):_}function gr(_,W,Te,cr){var ni=Be(176,_,W,void 0,void 0,Te,cr);return ni.transformFlags=1,ni}function Vr(_,W,Te,cr,ni){return _.parameters!==cr||_.type!==ni||_.decorators!==W||_.modifiers!==Te?ge(gr(W,Te,cr,ni),_):_}function Tr(_,W){var Te=ue(199);return Te.type=_,Te.literal=W,Te.transformFlags=1,Te}function vi(_,W,Te){return _.type!==W||_.literal!==Te?A(Tr(W,Te),_):_}function Ui(_){return Ir(_)}function Yi(_,W,Te){var cr=ue(177);return cr.assertsModifier=_,cr.parameterName=Mc(W),cr.type=Te,cr.transformFlags=1,cr}function Wi(_,W,Te,cr){return _.assertsModifier!==W||_.parameterName!==Te||_.type!==cr?A(Yi(W,Te,cr),_):_}function ct(_,W){var Te=ue(178);return Te.typeName=Mc(_),Te.typeArguments=W&&y().parenthesizeTypeArguments(ne(W)),Te.transformFlags=1,Te}function Li(_,W,Te){return _.typeName!==W||_.typeArguments!==Te?A(ct(W,Te),_):_}function nt(_,W,Te){var cr=Be(179,void 0,void 0,void 0,_,W,Te);return cr.transformFlags=1,cr}function Mt(_,W,Te,cr){return _.typeParameters!==W||_.parameters!==Te||_.type!==cr?ge(nt(W,Te,cr),_):_}function xt(){for(var _=[],W=0;W0;default:return!0}}function G_(_,W,Te,cr){cr===void 0&&(cr=!1);var ni=e.skipOuterExpressions(_,15),rt,yt;return e.isSuperProperty(ni)?(rt=Ur(),yt=ni):e.isSuperKeyword(ni)?(rt=Ur(),yt=Te!==void 0&&Te<2?e.setTextRange(Er(\"_super\"),ni):ni):e.getEmitFlags(ni)&4096?(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(ni)):e.isPropertyAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Zr(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.name),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):e.isElementAccessExpression(ni)?kc(ni.expression,cr)?(rt=n(W),yt=Ct(e.setTextRange(g.createAssignment(rt,ni.expression),ni.expression),ni.argumentExpression),e.setTextRange(yt,ni)):(rt=ni.expression,yt=ni):(rt=zi(),yt=y().parenthesizeLeftSideOfAccess(_)),{target:yt,thisArg:rt}}function Le(_,W){return Zr(hs(qe([nr(void 0,void 0,\"value\",[Wt(void 0,void 0,void 0,_,void 0,void 0,void 0)],bn([Mo(W)]))])),\"value\")}function Nr(_){return _.length>10?Xc(_):e.reduceLeft(_,g.createComma)}function ri(_,W,Te,cr){cr===void 0&&(cr=0);var ni=e.getNameOfDeclaration(_);if(ni&&e.isIdentifier(ni)&&!e.isGeneratedIdentifier(ni)){var rt=e.setParent(e.setTextRange(v(ni),ni),ni.parent);return cr|=e.getEmitFlags(ni),Te||(cr|=48),W||(cr|=1536),cr&&e.setEmitFlags(rt,cr),rt}return Ge(_)}function di(_,W,Te){return ri(_,W,Te,49152)}function Mi(_,W,Te){return ri(_,W,Te,16384)}function st(_,W,Te){return ri(_,W,Te,8192)}function ra(_,W,Te){return ri(_,W,Te)}function Ta(_,W,Te,cr){var ni=Zr(_,e.nodeIsSynthesized(W)?W:v(W));e.setTextRange(ni,W);var rt=0;return cr||(rt|=48),Te||(rt|=1536),rt&&e.setEmitFlags(ni,rt),ni}function ha(_,W,Te,cr){return _&&e.hasSyntacticModifier(W,1)?Ta(_,ri(W),Te,cr):st(W,Te,cr)}function Na(_,W,Te,cr){var ni=co(_,W,0,Te);return ts(_,W,ni,cr)}function In(_){return e.isStringLiteral(_.expression)&&_.expression.text===\"use strict\"}function qo(){return e.startOnNewLine(Mo(Ae(\"use strict\")))}function co(_,W,Te,cr){Te===void 0&&(Te=0),e.Debug.assert(W.length===0,\"Prologue directives should be at the first statement in the target statements array\");for(var ni=!1,rt=_.length;TeXa&&Vs.splice.apply(Vs,Ve([ni,0],W.slice(Xa,vo),!1)),Xa>yt&&Vs.splice.apply(Vs,Ve([cr,0],W.slice(yt,Xa),!1)),yt>rt&&Vs.splice.apply(Vs,Ve([Te,0],W.slice(rt,yt),!1)),rt>0)if(Te===0)Vs.splice.apply(Vs,Ve([0,0],W.slice(0,rt),!1));else{for(var H_=new e.Map,y_=0;y_=0;y_--){var jp=W[y_];H_.has(jp.expression.text)||Vs.unshift(jp)}}return e.isNodeArray(_)?e.setTextRange(ne(Vs,_.hasTrailingComma),_):_}function sc(_,W){var Te,cr;return typeof W==\"number\"?cr=qr(W):cr=W,e.isParameter(_)?Zt(_,_.decorators,cr,_.dotDotDotToken,_.name,_.questionToken,_.type,_.initializer):e.isPropertySignature(_)?Xe(_,cr,_.name,_.questionToken,_.type):e.isPropertyDeclaration(_)?ti(_,_.decorators,cr,_.name,(Te=_.questionToken)!==null&&Te!==void 0?Te:_.exclamationToken,_.type,_.initializer):e.isMethodSignature(_)?Sr(_,cr,_.name,_.questionToken,_.typeParameters,_.parameters,_.type):e.isMethodDeclaration(_)?Wr(_,_.decorators,cr,_.asteriskToken,_.name,_.questionToken,_.typeParameters,_.parameters,_.type,_.body):e.isConstructorDeclaration(_)?mr(_,_.decorators,cr,_.parameters,_.body):e.isGetAccessorDeclaration(_)?Oe(_,_.decorators,cr,_.name,_.parameters,_.type,_.body):e.isSetAccessorDeclaration(_)?Mr(_,_.decorators,cr,_.name,_.parameters,_.body):e.isIndexSignatureDeclaration(_)?Vr(_,_.decorators,cr,_.parameters,_.type):e.isFunctionExpression(_)?Qs(_,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isArrowFunction(_)?ds(_,cr,_.typeParameters,_.parameters,_.type,_.equalsGreaterThanToken,_.body):e.isClassExpression(_)?Uu(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isVariableStatement(_)?rn(_,cr,_.declarationList):e.isFunctionDeclaration(_)?gu(_,_.decorators,cr,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isClassDeclaration(_)?sd(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isInterfaceDeclaration(_)?va(_,_.decorators,cr,_.name,_.typeParameters,_.heritageClauses,_.members):e.isTypeAliasDeclaration(_)?qs(_,_.decorators,cr,_.name,_.typeParameters,_.type):e.isEnumDeclaration(_)?ns(_,_.decorators,cr,_.name,_.members):e.isModuleDeclaration(_)?hc(_,_.decorators,cr,_.name,_.body):e.isImportEqualsDeclaration(_)?fd(_,_.decorators,cr,_.isTypeOnly,_.name,_.moduleReference):e.isImportDeclaration(_)?Sp(_,_.decorators,cr,_.importClause,_.moduleSpecifier,_.assertClause):e.isExportAssignment(_)?gd(_,_.decorators,cr,_.expression):e.isExportDeclaration(_)?$l(_,_.decorators,cr,_.isTypeOnly,_.exportClause,_.moduleSpecifier,_.assertClause):e.Debug.assertNever(_)}function bc(_){return _?ne(_):void 0}function Mc(_){return typeof _==\"string\"?Er(_):_}function Yu(_){return typeof _==\"string\"?Ae(_):typeof _==\"number\"?we(_):typeof _==\"boolean\"?_?mi():pe():_}function Rl(_){return typeof _==\"number\"?Ir(_):_}function Lc(_){return _&&e.isNotEmittedStatement(_)?e.setTextRange(he(jn(),_),_):_}}e.createNodeFactory=w;function B(X,$){return X!==$&&e.setTextRange(X,$),X}function E(X,$){return X!==$&&(he(X,$),e.setTextRange(X,$)),X}function Q(X){switch(X){case 343:return\"type\";case 341:return\"returns\";case 342:return\"this\";case 339:return\"enum\";case 330:return\"author\";case 332:return\"class\";case 333:return\"public\";case 334:return\"private\";case 335:return\"protected\";case 336:return\"readonly\";case 337:return\"override\";case 344:return\"template\";case 345:return\"typedef\";case 340:return\"param\";case 347:return\"prop\";case 338:return\"callback\";case 328:return\"augments\";case 329:return\"implements\";default:return e.Debug.fail(\"Unsupported kind: \".concat(e.Debug.formatSyntaxKind(X)))}}var le,N={};function p(X,$){switch(le||(le=e.createScanner(99,!1,0)),X){case 14:le.setText(\"`\"+$+\"`\");break;case 15:le.setText(\"`\"+$+\"${\");break;case 16:le.setText(\"}\"+$+\"${\");break;case 17:le.setText(\"}\"+$+\"`\");break}var A=le.scan();if(A===19&&(A=le.reScanTemplateToken(!1)),le.isUnterminated())return le.setText(void 0),N;var y;switch(A){case 14:case 15:case 16:case 17:y=le.getTokenValue();break}return y===void 0||le.scan()!==1?(le.setText(void 0),N):(le.setText(void 0),y)}function m(X){return oe(X)&-16777217}function G(X,$){return $|X.transformFlags&33562624}function oe(X){if(!X)return 0;var $=X.transformFlags&~K(X.kind);return e.isNamedDeclaration(X)&&e.isPropertyName(X.name)?G(X.name,$):$}function f(X){return X?X.transformFlags:0}function T(X){for(var $=0,A=0,y=X;A=177&&X<=200)return-2;switch(X){case 208:case 209:case 204:return 536887296;case 261:return 589443072;case 164:return 536870912;case 214:return 557748224;case 213:case 256:return 591310848;case 255:return 537165824;case 257:case 226:return 536940544;case 171:return 591306752;case 167:return 570433536;case 169:case 172:case 173:return 574529536;case 130:case 147:case 158:case 143:case 150:case 148:case 133:case 151:case 114:case 163:case 166:case 168:case 174:case 175:case 176:case 258:case 259:return-2;case 205:return 536973312;case 292:return 536903680;case 201:case 202:return 536887296;case 211:case 229:case 350:case 212:case 106:return 536870912;case 206:case 207:return 536870912;default:return 536870912}}e.getTransformFlagsSubtreeExclusions=K;var b=e.createBaseNodeFactory();function se(X){return X.flags|=8,X}var J={createBaseSourceFileNode:function(X){return se(b.createBaseSourceFileNode(X))},createBaseIdentifierNode:function(X){return se(b.createBaseIdentifierNode(X))},createBasePrivateIdentifierNode:function(X){return se(b.createBasePrivateIdentifierNode(X))},createBaseTokenNode:function(X){return se(b.createBaseTokenNode(X))},createBaseNode:function(X){return se(b.createBaseNode(X))}};e.factory=w(4,J);function ie(X,$,A){var y,V,L,P,k,Y,U,j,H,I;e.isString(X)?(L=\"\",P=X,k=X.length,Y=$,U=A):(e.Debug.assert($===\"js\"||$===\"dts\"),L=($===\"js\"?X.javascriptPath:X.declarationPath)||\"\",Y=$===\"js\"?X.javascriptMapPath:X.declarationMapPath,j=function(){return $===\"js\"?X.javascriptText:X.declarationText},H=function(){return $===\"js\"?X.javascriptMapText:X.declarationMapText},k=function(){return j().length},X.buildInfo&&X.buildInfo.bundle&&(e.Debug.assert(A===void 0||typeof A==\"boolean\"),y=A,V=$===\"js\"?X.buildInfo.bundle.js:X.buildInfo.bundle.dts,I=X.oldFileOfCurrentEmit));var l=I?q(e.Debug.checkDefined(V)):R(V,y,k);return l.fileName=L,l.sourceMapPath=Y,l.oldFileOfCurrentEmit=I,j&&H?(Object.defineProperty(l,\"text\",{get:j}),Object.defineProperty(l,\"sourceMapText\",{get:H})):(e.Debug.assert(!I),l.text=P!=null?P:\"\",l.sourceMapText=U),l}e.createUnparsedSourceFile=ie;function R(X,$,A){for(var y,V,L,P,k,Y,U,j,H=0,I=X?X.sections:e.emptyArray;H0&&(U[I-H]=l)}H>0&&(U.length-=H)}}e.moveEmitHelpers=x;function X(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.snippetElement}e.getSnippetElement=X;function $(L,P){var k=a(L);return k.snippetElement=P,L}e.setSnippetElement=$;function A(L){return a(L).flags|=134217728,L}e.ignoreSourceNewlines=A;function y(L,P){var k=a(L);return k.typeNode=P,L}e.setTypeNode=y;function V(L){var P;return(P=L.emitNode)===null||P===void 0?void 0:P.typeNode}e.getTypeNode=V})(ke||(ke={}));var ke;(function(e){function a(le){var N=le.factory,p=e.memoize(function(){return e.setEmitFlags(N.createTrue(),268435456)}),m=e.memoize(function(){return e.setEmitFlags(N.createFalse(),268435456)});return{getUnscopedHelperName:G,createDecorateHelper:oe,createMetadataHelper:f,createParamHelper:T,createAssignHelper:K,createAwaitHelper:b,createAsyncGeneratorHelper:se,createAsyncDelegatorHelper:J,createAsyncValuesHelper:ie,createRestHelper:R,createAwaiterHelper:q,createExtendsHelper:O,createTemplateObjectHelper:ve,createSpreadArrayHelper:ee,createValuesHelper:he,createReadHelper:F,createGeneratorHelper:x,createCreateBindingHelper:X,createImportStarHelper:$,createImportStarCallbackHelper:A,createImportDefaultHelper:y,createExportStarHelper:V,createClassPrivateFieldGetHelper:L,createClassPrivateFieldSetHelper:P,createClassPrivateFieldInHelper:k};function G(Y){return e.setEmitFlags(N.createIdentifier(Y),4098)}function oe(Y,U,j,H){le.requestEmitHelper(e.decorateHelper);var I=[];return I.push(N.createArrayLiteralExpression(Y,!0)),I.push(U),j&&(I.push(j),H&&I.push(H)),N.createCallExpression(G(\"__decorate\"),void 0,I)}function f(Y,U){return le.requestEmitHelper(e.metadataHelper),N.createCallExpression(G(\"__metadata\"),void 0,[N.createStringLiteral(Y),U])}function T(Y,U,j){return le.requestEmitHelper(e.paramHelper),e.setTextRange(N.createCallExpression(G(\"__param\"),void 0,[N.createNumericLiteral(U+\"\"),Y]),j)}function K(Y){return e.getEmitScriptTarget(le.getCompilerOptions())>=2?N.createCallExpression(N.createPropertyAccessExpression(N.createIdentifier(\"Object\"),\"assign\"),void 0,Y):(le.requestEmitHelper(e.assignHelper),N.createCallExpression(G(\"__assign\"),void 0,Y))}function b(Y){return le.requestEmitHelper(e.awaitHelper),N.createCallExpression(G(\"__await\"),void 0,[Y])}function se(Y,U){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncGeneratorHelper),(Y.emitNode||(Y.emitNode={})).flags|=786432,N.createCallExpression(G(\"__asyncGenerator\"),void 0,[U?N.createThis():N.createVoidZero(),N.createIdentifier(\"arguments\"),Y])}function J(Y){return le.requestEmitHelper(e.awaitHelper),le.requestEmitHelper(e.asyncDelegator),N.createCallExpression(G(\"__asyncDelegator\"),void 0,[Y])}function ie(Y){return le.requestEmitHelper(e.asyncValues),N.createCallExpression(G(\"__asyncValues\"),void 0,[Y])}function R(Y,U,j,H){le.requestEmitHelper(e.restHelper);for(var I=[],l=0,d=0;d= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n };`},e.metadataHelper={name:\"typescript:metadata\",importName:\"__metadata\",scoped:!1,priority:3,text:`\n var __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n };`},e.paramHelper={name:\"typescript:param\",importName:\"__param\",scoped:!1,priority:4,text:`\n var __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n };`},e.assignHelper={name:\"typescript:assign\",importName:\"__assign\",scoped:!1,priority:1,text:`\n var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };`},e.awaitHelper={name:\"typescript:await\",importName:\"__await\",scoped:!1,text:`\n var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }`},e.asyncGeneratorHelper={name:\"typescript:asyncGenerator\",importName:\"__asyncGenerator\",scoped:!1,dependencies:[e.awaitHelper],text:`\n var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n };`},e.asyncDelegator={name:\"typescript:asyncDelegator\",importName:\"__asyncDelegator\",scoped:!1,dependencies:[e.awaitHelper],text:`\n var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\n };`},e.asyncValues={name:\"typescript:asyncValues\",importName:\"__asyncValues\",scoped:!1,text:`\n var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n };`},e.restHelper={name:\"typescript:rest\",importName:\"__rest\",scoped:!1,text:`\n var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n };`},e.awaiterHelper={name:\"typescript:awaiter\",importName:\"__awaiter\",scoped:!1,priority:5,text:`\n var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };`},e.extendsHelper={name:\"typescript:extends\",importName:\"__extends\",scoped:!1,priority:0,text:`\n var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n })();`},e.templateObjectHelper={name:\"typescript:makeTemplateObject\",importName:\"__makeTemplateObject\",scoped:!1,priority:0,text:`\n var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n };`},e.readHelper={name:\"typescript:read\",importName:\"__read\",scoped:!1,text:`\n var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n };`},e.spreadArrayHelper={name:\"typescript:spreadArray\",importName:\"__spreadArray\",scoped:!1,text:`\n var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };`},e.valuesHelper={name:\"typescript:values\",importName:\"__values\",scoped:!1,text:`\n var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n };`},e.generatorHelper={name:\"typescript:generator\",importName:\"__generator\",scoped:!1,priority:6,text:`\n var __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n };`},e.createBindingHelper={name:\"typescript:commonjscreatebinding\",importName:\"__createBinding\",scoped:!1,priority:1,text:`\n var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n }) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n }));`},e.setModuleDefaultHelper={name:\"typescript:commonjscreatevalue\",importName:\"__setModuleDefault\",scoped:!1,priority:1,text:`\n var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n }) : function(o, v) {\n o[\"default\"] = v;\n });`},e.importStarHelper={name:\"typescript:commonjsimportstar\",importName:\"__importStar\",scoped:!1,dependencies:[e.createBindingHelper,e.setModuleDefaultHelper],priority:2,text:`\n var __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n };`},e.importDefaultHelper={name:\"typescript:commonjsimportdefault\",importName:\"__importDefault\",scoped:!1,text:`\n var __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n };`},e.exportStarHelper={name:\"typescript:export-star\",importName:\"__exportStar\",scoped:!1,dependencies:[e.createBindingHelper],priority:2,text:`\n var __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };`},e.classPrivateFieldGetHelper={name:\"typescript:classPrivateFieldGet\",importName:\"__classPrivateFieldGet\",scoped:!1,text:`\n var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n };`},e.classPrivateFieldSetHelper={name:\"typescript:classPrivateFieldSet\",importName:\"__classPrivateFieldSet\",scoped:!1,text:`\n var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n };`},e.classPrivateFieldInHelper={name:\"typescript:classPrivateFieldIn\",importName:\"__classPrivateFieldIn\",scoped:!1,text:`\n var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n };`};var B;function E(){return B||(B=e.arrayToMap([e.decorateHelper,e.metadataHelper,e.paramHelper,e.assignHelper,e.awaitHelper,e.asyncGeneratorHelper,e.asyncDelegator,e.asyncValues,e.restHelper,e.awaiterHelper,e.extendsHelper,e.templateObjectHelper,e.spreadArrayHelper,e.valuesHelper,e.readHelper,e.generatorHelper,e.importStarHelper,e.importDefaultHelper,e.exportStarHelper,e.classPrivateFieldGetHelper,e.classPrivateFieldSetHelper,e.classPrivateFieldInHelper,e.createBindingHelper,e.setModuleDefaultHelper],function(le){return le.name}))}e.getAllUnscopedEmitHelpers=E,e.asyncSuperHelper={name:\"typescript:async-super\",scoped:!0,text:w(oi([`\n const `,\" = name => super[name];\"],[`\n const `,\" = name => super[name];\"]),\"_superIndex\")},e.advancedAsyncSuperHelper={name:\"typescript:advanced-async-super\",scoped:!0,text:w(oi([`\n const `,` = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);`],[`\n const `,` = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);`]),\"_superIndex\")};function Q(le,N){return e.isCallExpression(le)&&e.isIdentifier(le.expression)&&(e.getEmitFlags(le.expression)&4096)!==0&&le.expression.escapedText===N}e.isCallToHelper=Q})(ke||(ke={}));var ke;(function(e){function a(jr){return jr.kind===8}e.isNumericLiteral=a;function C(jr){return jr.kind===9}e.isBigIntLiteral=C;function w(jr){return jr.kind===10}e.isStringLiteral=w;function B(jr){return jr.kind===11}e.isJsxText=B;function E(jr){return jr.kind===13}e.isRegularExpressionLiteral=E;function Q(jr){return jr.kind===14}e.isNoSubstitutionTemplateLiteral=Q;function le(jr){return jr.kind===15}e.isTemplateHead=le;function N(jr){return jr.kind===16}e.isTemplateMiddle=N;function p(jr){return jr.kind===17}e.isTemplateTail=p;function m(jr){return jr.kind===25}e.isDotDotDotToken=m;function G(jr){return jr.kind===27}e.isCommaToken=G;function oe(jr){return jr.kind===39}e.isPlusToken=oe;function f(jr){return jr.kind===40}e.isMinusToken=f;function T(jr){return jr.kind===41}e.isAsteriskToken=T;function K(jr){return jr.kind===53}e.isExclamationToken=K;function b(jr){return jr.kind===57}e.isQuestionToken=b;function se(jr){return jr.kind===58}e.isColonToken=se;function J(jr){return jr.kind===28}e.isQuestionDotToken=J;function ie(jr){return jr.kind===38}e.isEqualsGreaterThanToken=ie;function R(jr){return jr.kind===79}e.isIdentifier=R;function q(jr){return jr.kind===80}e.isPrivateIdentifier=q;function O(jr){return jr.kind===93}e.isExportModifier=O;function ve(jr){return jr.kind===131}e.isAsyncModifier=ve;function ee(jr){return jr.kind===128}e.isAssertsKeyword=ee;function he(jr){return jr.kind===132}e.isAwaitKeyword=he;function F(jr){return jr.kind===145}e.isReadonlyKeyword=F;function x(jr){return jr.kind===124}e.isStaticModifier=x;function X(jr){return jr.kind===126}e.isAbstractModifier=X;function $(jr){return jr.kind===106}e.isSuperKeyword=$;function A(jr){return jr.kind===100}e.isImportKeyword=A;function y(jr){return jr.kind===161}e.isQualifiedName=y;function V(jr){return jr.kind===162}e.isComputedPropertyName=V;function L(jr){return jr.kind===163}e.isTypeParameterDeclaration=L;function P(jr){return jr.kind===164}e.isParameter=P;function k(jr){return jr.kind===165}e.isDecorator=k;function Y(jr){return jr.kind===166}e.isPropertySignature=Y;function U(jr){return jr.kind===167}e.isPropertyDeclaration=U;function j(jr){return jr.kind===168}e.isMethodSignature=j;function H(jr){return jr.kind===169}e.isMethodDeclaration=H;function I(jr){return jr.kind===170}e.isClassStaticBlockDeclaration=I;function l(jr){return jr.kind===171}e.isConstructorDeclaration=l;function d(jr){return jr.kind===172}e.isGetAccessorDeclaration=d;function D(jr){return jr.kind===173}e.isSetAccessorDeclaration=D;function fe(jr){return jr.kind===174}e.isCallSignatureDeclaration=fe;function g(jr){return jr.kind===175}e.isConstructSignatureDeclaration=g;function ne(jr){return jr.kind===176}e.isIndexSignatureDeclaration=ne;function ue(jr){return jr.kind===177}e.isTypePredicateNode=ue;function We(jr){return jr.kind===178}e.isTypeReferenceNode=We;function Fe(jr){return jr.kind===179}e.isFunctionTypeNode=Fe;function Z(jr){return jr.kind===180}e.isConstructorTypeNode=Z;function Be(jr){return jr.kind===181}e.isTypeQueryNode=Be;function ge(jr){return jr.kind===182}e.isTypeLiteralNode=ge;function Re(jr){return jr.kind===183}e.isArrayTypeNode=Re;function ze(jr){return jr.kind===184}e.isTupleTypeNode=ze;function Ee(jr){return jr.kind===197}e.isNamedTupleMember=Ee;function He(jr){return jr.kind===185}e.isOptionalTypeNode=He;function rr(jr){return jr.kind===186}e.isRestTypeNode=rr;function Ie(jr){return jr.kind===187}e.isUnionTypeNode=Ie;function _e(jr){return jr.kind===188}e.isIntersectionTypeNode=_e;function we(jr){return jr.kind===189}e.isConditionalTypeNode=we;function de(jr){return jr.kind===190}e.isInferTypeNode=de;function ye(jr){return jr.kind===191}e.isParenthesizedTypeNode=ye;function Ae(jr){return jr.kind===192}e.isThisTypeNode=Ae;function er(jr){return jr.kind===193}e.isTypeOperatorNode=er;function ir(jr){return jr.kind===194}e.isIndexedAccessTypeNode=ir;function Cr(jr){return jr.kind===195}e.isMappedTypeNode=Cr;function Ye(jr){return jr.kind===196}e.isLiteralTypeNode=Ye;function Br(jr){return jr.kind===200}e.isImportTypeNode=Br;function Er(jr){return jr.kind===199}e.isTemplateLiteralTypeSpan=Er;function Ne(jr){return jr.kind===198}e.isTemplateLiteralTypeNode=Ne;function n(jr){return jr.kind===201}e.isObjectBindingPattern=n;function lr(jr){return jr.kind===202}e.isArrayBindingPattern=lr;function be(jr){return jr.kind===203}e.isBindingElement=be;function Ge(jr){return jr.kind===204}e.isArrayLiteralExpression=Ge;function ur(jr){return jr.kind===205}e.isObjectLiteralExpression=ur;function yr(jr){return jr.kind===206}e.isPropertyAccessExpression=yr;function Ir(jr){return jr.kind===207}e.isElementAccessExpression=Ir;function wr(jr){return jr.kind===208}e.isCallExpression=wr;function Ur(jr){return jr.kind===209}e.isNewExpression=Ur;function ii(jr){return jr.kind===210}e.isTaggedTemplateExpression=ii;function mi(jr){return jr.kind===211}e.isTypeAssertionExpression=mi;function pe(jr){return jr.kind===212}e.isParenthesizedExpression=pe;function or(jr){return jr.kind===213}e.isFunctionExpression=or;function qr(jr){return jr.kind===214}e.isArrowFunction=qr;function si(jr){return jr.kind===215}e.isDeleteExpression=si;function Di(jr){return jr.kind===216}e.isTypeOfExpression=Di;function wi(jr){return jr.kind===217}e.isVoidExpression=wi;function Xi(jr){return jr.kind===218}e.isAwaitExpression=Xi;function et(jr){return jr.kind===219}e.isPrefixUnaryExpression=et;function Gi(jr){return jr.kind===220}e.isPostfixUnaryExpression=Gi;function Wt(jr){return jr.kind===221}e.isBinaryExpression=Wt;function Zt(jr){return jr.kind===222}e.isConditionalExpression=Zt;function _r(jr){return jr.kind===223}e.isTemplateExpression=_r;function pi(jr){return jr.kind===224}e.isYieldExpression=pi;function ae(jr){return jr.kind===225}e.isSpreadElement=ae;function Xe(jr){return jr.kind===226}e.isClassExpression=Xe;function Jr(jr){return jr.kind===227}e.isOmittedExpression=Jr;function ti(jr){return jr.kind===228}e.isExpressionWithTypeArguments=ti;function Ze(jr){return jr.kind===229}e.isAsExpression=Ze;function Sr(jr){return jr.kind===230}e.isNonNullExpression=Sr;function zr(jr){return jr.kind===231}e.isMetaProperty=zr;function Wr(jr){return jr.kind===232}e.isSyntheticExpression=Wr;function Je(jr){return jr.kind===350}e.isPartiallyEmittedExpression=Je;function xe(jr){return jr.kind===351}e.isCommaListExpression=xe;function vr(jr){return jr.kind===233}e.isTemplateSpan=vr;function mr(jr){return jr.kind===234}e.isSemicolonClassElement=mr;function Ar(jr){return jr.kind===235}e.isBlock=Ar;function Oe(jr){return jr.kind===237}e.isVariableStatement=Oe;function nr(jr){return jr.kind===236}e.isEmptyStatement=nr;function Mr(jr){return jr.kind===238}e.isExpressionStatement=Mr;function Pe(jr){return jr.kind===239}e.isIfStatement=Pe;function Ue(jr){return jr.kind===240}e.isDoStatement=Ue;function fr(jr){return jr.kind===241}e.isWhileStatement=fr;function De(jr){return jr.kind===242}e.isForStatement=De;function gr(jr){return jr.kind===243}e.isForInStatement=gr;function Vr(jr){return jr.kind===244}e.isForOfStatement=Vr;function Tr(jr){return jr.kind===245}e.isContinueStatement=Tr;function vi(jr){return jr.kind===246}e.isBreakStatement=vi;function Ui(jr){return jr.kind===247}e.isReturnStatement=Ui;function Yi(jr){return jr.kind===248}e.isWithStatement=Yi;function Wi(jr){return jr.kind===249}e.isSwitchStatement=Wi;function ct(jr){return jr.kind===250}e.isLabeledStatement=ct;function Li(jr){return jr.kind===251}e.isThrowStatement=Li;function nt(jr){return jr.kind===252}e.isTryStatement=nt;function Mt(jr){return jr.kind===253}e.isDebuggerStatement=Mt;function xt(jr){return jr.kind===254}e.isVariableDeclaration=xt;function ut(jr){return jr.kind===255}e.isVariableDeclarationList=ut;function Dt(jr){return jr.kind===256}e.isFunctionDeclaration=Dt;function Rt(jr){return jr.kind===257}e.isClassDeclaration=Rt;function Ii(jr){return jr.kind===258}e.isInterfaceDeclaration=Ii;function Ki(jr){return jr.kind===259}e.isTypeAliasDeclaration=Ki;function Fi(jr){return jr.kind===260}e.isEnumDeclaration=Fi;function ui(jr){return jr.kind===261}e.isModuleDeclaration=ui;function Bt(jr){return jr.kind===262}e.isModuleBlock=Bt;function wt(jr){return jr.kind===263}e.isCaseBlock=wt;function na(jr){return jr.kind===264}e.isNamespaceExportDeclaration=na;function Ai(jr){return jr.kind===265}e.isImportEqualsDeclaration=Ai;function Oi(jr){return jr.kind===266}e.isImportDeclaration=Oi;function ji(jr){return jr.kind===267}e.isImportClause=ji;function Vi(jr){return jr.kind===293}e.isAssertClause=Vi;function at(jr){return jr.kind===294}e.isAssertEntry=at;function At(jr){return jr.kind===268}e.isNamespaceImport=At;function ba(jr){return jr.kind===274}e.isNamespaceExport=ba;function $a(jr){return jr.kind===269}e.isNamedImports=$a;function Qa(jr){return jr.kind===270}e.isImportSpecifier=Qa;function ai(jr){return jr.kind===271}e.isExportAssignment=ai;function Dn(jr){return jr.kind===272}e.isExportDeclaration=Dn;function ka(jr){return jr.kind===273}e.isNamedExports=ka;function Ba(jr){return jr.kind===275}e.isExportSpecifier=Ba;function pn(jr){return jr.kind===276}e.isMissingDeclaration=pn;function Cn(jr){return jr.kind===349}e.isNotEmittedStatement=Cn;function Bi(jr){return jr.kind===354}e.isSyntheticReference=Bi;function kn(jr){return jr.kind===352}e.isMergeDeclarationMarker=kn;function xn(jr){return jr.kind===353}e.isEndOfDeclarationMarker=xn;function Kn(jr){return jr.kind===277}e.isExternalModuleReference=Kn;function Pn(jr){return jr.kind===278}e.isJsxElement=Pn;function eo(jr){return jr.kind===279}e.isJsxSelfClosingElement=eo;function Rn(jr){return jr.kind===280}e.isJsxOpeningElement=Rn;function Da(jr){return jr.kind===281}e.isJsxClosingElement=Da;function bo(jr){return jr.kind===282}e.isJsxFragment=bo;function Ro(jr){return jr.kind===283}e.isJsxOpeningFragment=Ro;function En(jr){return jr.kind===284}e.isJsxClosingFragment=En;function Wn(jr){return jr.kind===285}e.isJsxAttribute=Wn;function to(jr){return jr.kind===286}e.isJsxAttributes=to;function Co(jr){return jr.kind===287}e.isJsxSpreadAttribute=Co;function Ko(jr){return jr.kind===288}e.isJsxExpression=Ko;function Oo(jr){return jr.kind===289}e.isCaseClause=Oo;function no(jr){return jr.kind===290}e.isDefaultClause=no;function $o(jr){return jr.kind===291}e.isHeritageClause=$o;function Pr(jr){return jr.kind===292}e.isCatchClause=Pr;function xi(jr){return jr.kind===296}e.isPropertyAssignment=xi;function St(jr){return jr.kind===297}e.isShorthandPropertyAssignment=St;function pa(jr){return jr.kind===298}e.isSpreadAssignment=pa;function dn(jr){return jr.kind===299}e.isEnumMember=dn;function Jn(jr){return jr.kind===301}e.isUnparsedPrepend=Jn;function Qe(jr){return jr.kind===305}e.isSourceFile=Qe;function Gr(jr){return jr.kind===306}e.isBundle=Gr;function S(jr){return jr.kind===307}e.isUnparsedSource=S;function Ce(jr){return jr.kind===309}e.isJSDocTypeExpression=Ce;function qe(jr){return jr.kind===310}e.isJSDocNameReference=qe;function br(jr){return jr.kind===311}e.isJSDocMemberName=br;function Zr(jr){return jr.kind===324}e.isJSDocLink=Zr;function Si(jr){return jr.kind===325}e.isJSDocLinkCode=Si;function Pi(jr){return jr.kind===326}e.isJSDocLinkPlain=Pi;function Qi(jr){return jr.kind===312}e.isJSDocAllType=Qi;function Ct(jr){return jr.kind===313}e.isJSDocUnknownType=Ct;function sa(jr){return jr.kind===314}e.isJSDocNullableType=sa;function en(jr){return jr.kind===315}e.isJSDocNonNullableType=en;function Wa(jr){return jr.kind===316}e.isJSDocOptionalType=Wa;function qn(jr){return jr.kind===317}e.isJSDocFunctionType=qn;function mo(jr){return jr.kind===318}e.isJSDocVariadicType=mo;function So(jr){return jr.kind===319}e.isJSDocNamepathType=So;function Go(jr){return jr.kind===320}e.isJSDoc=Go;function ys(jr){return jr.kind===322}e.isJSDocTypeLiteral=ys;function Pc(jr){return jr.kind===323}e.isJSDocSignature=Pc;function Vc(jr){return jr.kind===328}e.isJSDocAugmentsTag=Vc;function Kc(jr){return jr.kind===330}e.isJSDocAuthorTag=Kc;function Xs(jr){return jr.kind===332}e.isJSDocClassTag=Xs;function pc(jr){return jr.kind===338}e.isJSDocCallbackTag=pc;function hs(jr){return jr.kind===333}e.isJSDocPublicTag=hs;function tc(jr){return jr.kind===334}e.isJSDocPrivateTag=tc;function ps(jr){return jr.kind===335}e.isJSDocProtectedTag=ps;function Qs(jr){return jr.kind===336}e.isJSDocReadonlyTag=Qs;function js(jr){return jr.kind===337}e.isJSDocOverrideTag=js;function ds(jr){return jr.kind===331}e.isJSDocDeprecatedTag=ds;function Ji(jr){return jr.kind===346}e.isJSDocSeeTag=Ji;function ce(jr){return jr.kind===339}e.isJSDocEnumTag=ce;function Rr(jr){return jr.kind===340}e.isJSDocParameterTag=Rr;function yi(jr){return jr.kind===341}e.isJSDocReturnTag=yi;function qi(jr){return jr.kind===342}e.isJSDocThisTag=qi;function je(jr){return jr.kind===343}e.isJSDocTypeTag=je;function Hr(jr){return jr.kind===344}e.isJSDocTemplateTag=Hr;function pt(jr){return jr.kind===345}e.isJSDocTypedefTag=pt;function Pt(jr){return jr.kind===327}e.isJSDocUnknownTag=Pt;function ga(jr){return jr.kind===347}e.isJSDocPropertyTag=ga;function ua(jr){return jr.kind===329}e.isJSDocImplementsTag=ua;function Xn(jr){return jr.kind===348}e.isSyntaxList=Xn})(ke||(ke={}));var ke;(function(e){function a(lr){return lr.createExportDeclaration(void 0,void 0,!1,lr.createNamedExports([]),void 0)}e.createEmptyExports=a;function C(lr,be,Ge,ur){if(e.isComputedPropertyName(Ge))return e.setTextRange(lr.createElementAccessExpression(be,Ge.expression),ur);var yr=e.setTextRange(e.isMemberName(Ge)?lr.createPropertyAccessExpression(be,Ge):lr.createElementAccessExpression(be,Ge),Ge);return e.getOrCreateEmitNode(yr).flags|=64,yr}e.createMemberAccessForPropertyName=C;function w(lr,be){var Ge=e.parseNodeFactory.createIdentifier(lr||\"React\");return e.setParent(Ge,e.getParseTreeNode(be)),Ge}function B(lr,be,Ge){if(e.isQualifiedName(be)){var ur=B(lr,be.left,Ge),yr=lr.createIdentifier(e.idText(be.right));return yr.escapedText=be.right.escapedText,lr.createPropertyAccessExpression(ur,yr)}else return w(e.idText(be),Ge)}function E(lr,be,Ge,ur){return be?B(lr,be,ur):lr.createPropertyAccessExpression(w(Ge,ur),\"createElement\")}e.createJsxFactoryExpression=E;function Q(lr,be,Ge,ur){return be?B(lr,be,ur):lr.createPropertyAccessExpression(w(Ge,ur),\"Fragment\")}function le(lr,be,Ge,ur,yr,Ir){var wr=[Ge];if(ur&&wr.push(ur),yr&&yr.length>0)if(ur||wr.push(lr.createNull()),yr.length>1)for(var Ur=0,ii=yr;Ur0)if(yr.length>1)for(var mi=0,pe=yr;mi=e.ModuleKind.ES2015&&ii<=e.ModuleKind.ESNext||Ge.impliedNodeFormat===e.ModuleKind.ESNext){var mi=e.getEmitHelpers(Ge);if(mi){for(var pe=[],or=0,qr=mi;or0?Di[or-1]:void 0;return e.Debug.assertEqual(qr[or],be),Di[or]=pe.onEnter(si[or],et,Xi),qr[or]=Ur(pe,be),or}lr.enter=be;function Ge(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ge),e.Debug.assertIsDefined(pe.onLeft),qr[or]=Ur(pe,Ge);var et=pe.onLeft(si[or].left,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.left=Ge;function ur(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],ur),e.Debug.assertIsDefined(pe.onOperator),qr[or]=Ur(pe,ur),pe.onOperator(si[or].operatorToken,Di[or],si[or]),or}lr.operator=ur;function yr(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],yr),e.Debug.assertIsDefined(pe.onRight),qr[or]=Ur(pe,yr);var et=pe.onRight(si[or].right,Di[or],si[or]);return et?(mi(or,si,et),ii(or,qr,si,Di,et)):or}lr.right=yr;function Ir(pe,or,qr,si,Di,wi,Xi){e.Debug.assertEqual(qr[or],Ir),qr[or]=Ur(pe,Ir);var et=pe.onExit(si[or],Di[or]);if(or>0){if(or--,pe.foldState){var Gi=qr[or]===Ir?\"right\":\"left\";Di[or]=pe.foldState(Di[or],et,Gi)}}else wi.value=et;return or}lr.exit=Ir;function wr(pe,or,qr,si,Di,wi,Xi){return e.Debug.assertEqual(qr[or],wr),or}lr.done=wr;function Ur(pe,or){switch(or){case be:if(pe.onLeft)return Ge;case Ge:if(pe.onOperator)return ur;case ur:if(pe.onRight)return yr;case yr:return Ir;case Ir:return wr;case wr:return wr;default:e.Debug.fail(\"Invalid state\")}}lr.nextState=Ur;function ii(pe,or,qr,si,Di){return pe++,or[pe]=be,qr[pe]=Di,si[pe]=void 0,pe}function mi(pe,or,qr){if(e.Debug.shouldAssert(2))for(;pe>=0;)e.Debug.assert(or[pe]!==qr,\"Circular traversal detected.\"),pe--}})(Er||(Er={}));var Ne=function(){function lr(be,Ge,ur,yr,Ir,wr){this.onEnter=be,this.onLeft=Ge,this.onOperator=ur,this.onRight=yr,this.onExit=Ir,this.foldState=wr}return lr}();function n(lr,be,Ge,ur,yr,Ir){var wr=new Ne(lr,be,Ge,ur,yr,Ir);return Ur;function Ur(ii,mi){for(var pe={value:void 0},or=[Er.enter],qr=[ii],si=[void 0],Di=0;or[Di]!==Er.done;)Di=or[Di](wr,Di,or,qr,si,pe,mi);return e.Debug.assertEqual(Di,0),pe.value}}e.createBinaryExpressionTrampoline=n})(ke||(ke={}));var ke;(function(e){function a(C,w){return w?e.setTextRangePosEnd(C,w.pos,w.end):C}e.setTextRange=a})(ke||(ke={}));var ke;(function(e){var a;(function(d){d[d.None=0]=\"None\",d[d.Yield=1]=\"Yield\",d[d.Await=2]=\"Await\",d[d.Type=4]=\"Type\",d[d.IgnoreMissingOpenBrace=16]=\"IgnoreMissingOpenBrace\",d[d.JSDoc=32]=\"JSDoc\"})(a||(a={}));var C;(function(d){d[d.TryParse=0]=\"TryParse\",d[d.Lookahead=1]=\"Lookahead\",d[d.Reparse=2]=\"Reparse\"})(C||(C={}));var w,B,E,Q,le;e.parseBaseNodeFactory={createBaseSourceFileNode:function(d){return new(le||(le=e.objectAllocator.getSourceFileConstructor()))(d,-1,-1)},createBaseIdentifierNode:function(d){return new(E||(E=e.objectAllocator.getIdentifierConstructor()))(d,-1,-1)},createBasePrivateIdentifierNode:function(d){return new(Q||(Q=e.objectAllocator.getPrivateIdentifierConstructor()))(d,-1,-1)},createBaseTokenNode:function(d){return new(B||(B=e.objectAllocator.getTokenConstructor()))(d,-1,-1)},createBaseNode:function(d){return new(w||(w=e.objectAllocator.getNodeConstructor()))(d,-1,-1)}},e.parseNodeFactory=e.createNodeFactory(1,e.parseBaseNodeFactory);function N(d,D){return D&&d(D)}function p(d,D,fe){if(fe){if(D)return D(fe);for(var g=0,ne=fe;g=0;--Z)g.push(ue[Z]),ne.push(We)}else{var Fe=D(ue,We);if(Fe){if(Fe===\"skip\")continue;return Fe}if(ue.kind>=161)for(var Be=0,ge=ie(ue);Be=vs.pos}),Qu=Is>=0?e.findIndex(Mi,function(sc){return sc.start>=Ac.pos},Is):-1;Is>=0&&e.addRange(_e,Mi,Is,Qu>=0?Qu:void 0),Dt(function(){var sc=Er;for(Er|=32768,D.setTextPos(Ac.pos),Tr();De()!==1;){var bc=D.getStartPos(),Mc=Ct(0,nc);if(di.push(Mc),bc===D.getStartPos()&&Tr(),st>=0){var Yu=Le.statements[st];if(Mc.end===Yu.pos)break;Mc.end>Yu.pos&&(st=co(Le.statements,st+1))}}Er=sc},2),ra=st>=0?qo(Le.statements,st):-1};ra!==-1;)Ta();if(st>=0){var ha=Le.statements[st];e.addRange(di,Le.statements,st);var Na=e.findIndex(Mi,function(vs){return vs.start>=ha.pos});Na>=0&&e.addRange(_e,Mi,Na)}return de=Nr,ge.updateSourceFile(Le,e.setTextRange(ge.createNodeArray(di),Le.statements));function In(vs){return!(vs.flags&32768)&&!!(vs.transformFlags&16777216)}function qo(vs,Ac){for(var Is=Ac;Is116}function Fi(){return De()===79?!0:De()===125&&Wr()||De()===132&&mr()?!1:De()>116}function ui(Le,Nr,ri){return ri===void 0&&(ri=!0),De()===Le?(ri&&Tr(),!0):(Nr?Ar(Nr):Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}var Bt=Object.keys(e.textToKeywordObj).filter(function(Le){return Le.length>2});function wt(Le){var Nr;if(e.isTaggedTemplateExpression(Le)){nr(e.skipTrivia(Ee,Le.template.pos),Le.template.end,e.Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings);return}var ri=e.isIdentifier(Le)?e.idText(Le):void 0;if(!ri||!e.isIdentifierText(ri,He)){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}var di=e.skipTrivia(Ee,Le.pos);switch(ri){case\"const\":case\"let\":case\"var\":nr(di,Le.end,e.Diagnostics.Variable_declaration_not_allowed_at_this_location);return;case\"declare\":return;case\"interface\":na(e.Diagnostics.Interface_name_cannot_be_0,e.Diagnostics.Interface_must_be_given_a_name,18);return;case\"is\":nr(di,D.getTextPos(),e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case\"module\":case\"namespace\":na(e.Diagnostics.Namespace_name_cannot_be_0,e.Diagnostics.Namespace_must_be_given_a_name,18);return;case\"type\":na(e.Diagnostics.Type_alias_name_cannot_be_0,e.Diagnostics.Type_alias_must_be_given_a_name,63);return}var Mi=(Nr=e.getSpellingSuggestion(ri,Bt,function(st){return st}))!==null&&Nr!==void 0?Nr:Ai(ri);if(Mi){nr(di,Le.end,e.Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0,Mi);return}De()!==0&&nr(di,Le.end,e.Diagnostics.Unexpected_keyword_or_identifier)}function na(Le,Nr,ri){De()===ri?Ar(Nr):Ar(Le,D.getTokenValue())}function Ai(Le){for(var Nr=0,ri=Bt;Nrdi.length+2&&e.startsWith(Le,di))return\"\".concat(di,\" \").concat(Le.slice(di.length))}}function Oi(Le,Nr,ri){if(De()===59&&!D.hasPrecedingLineBreak()){Ar(e.Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(De()===20){Ar(e.Diagnostics.Cannot_start_a_function_call_in_a_type_annotation),Tr();return}if(Nr&&!ka()){ri?Ar(e.Diagnostics._0_expected,e.tokenToString(26)):Ar(e.Diagnostics.Expected_for_property_initializer);return}if(!Ba()){if(ri){Ar(e.Diagnostics._0_expected,e.tokenToString(26));return}wt(Le)}}function ji(Le){return De()===Le?(vi(),!0):(Ar(e.Diagnostics._0_expected,e.tokenToString(Le)),!1)}function Vi(Le,Nr,ri,di){if(De()===Nr){Tr();return}var Mi=Ar(e.Diagnostics._0_expected,e.tokenToString(Nr));!ri||Mi&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,di,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,e.tokenToString(Le),e.tokenToString(Nr)))}function at(Le){return De()===Le?(Tr(),!0):!1}function At(Le){if(De()===Le)return ai()}function ba(Le){if(De()===Le)return Dn()}function $a(Le,Nr,ri){return At(Le)||kn(Le,!1,Nr||e.Diagnostics._0_expected,ri||e.tokenToString(Le))}function Qa(Le){return ba(Le)||kn(Le,!1,e.Diagnostics._0_expected,e.tokenToString(Le))}function ai(){var Le=Ue(),Nr=De();return Tr(),Bi(ge.createToken(Nr),Le)}function Dn(){var Le=Ue(),Nr=De();return vi(),Bi(ge.createToken(Nr),Le)}function ka(){return De()===26?!0:De()===19||De()===1||D.hasPrecedingLineBreak()}function Ba(){return ka()?(De()===26&&Tr(),!0):!1}function pn(){return Ba()||ui(26)}function Cn(Le,Nr,ri,di){var Mi=ge.createNodeArray(Le,di);return e.setTextRangePosEnd(Mi,Nr,ri!=null?ri:D.getStartPos()),Mi}function Bi(Le,Nr,ri){return e.setTextRangePosEnd(Le,Nr,ri!=null?ri:D.getStartPos()),Er&&(Le.flags|=Er),n&&(n=!1,Le.flags|=131072),Le}function kn(Le,Nr,ri,di){Nr?Oe(D.getStartPos(),0,ri,di):ri&&Ar(ri,di);var Mi=Ue(),st=Le===79?ge.createIdentifier(\"\",void 0,void 0):e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,\"\",\"\",void 0):Le===8?ge.createNumericLiteral(\"\",void 0):Le===10?ge.createStringLiteral(\"\",void 0):Le===276?ge.createMissingDeclaration():ge.createToken(Le);return Bi(st,Mi)}function xn(Le){var Nr=er.get(Le);return Nr===void 0&&er.set(Le,Nr=Le),Nr}function Kn(Le,Nr,ri){if(Le){Cr++;var di=Ue(),Mi=De(),st=xn(D.getTokenValue());return gr(),Bi(ge.createIdentifier(st,void 0,Mi),di)}if(De()===80)return Ar(ri||e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),Kn(!0);if(De()===0&&D.tryScan(function(){return D.reScanInvalidIdentifier()===79}))return Kn(!0);Cr++;var ra=De()===1,Ta=D.isReservedWord(),ha=D.getTokenText(),Na=Ta?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return kn(79,ra,Nr||Na,ha)}function Pn(Le){return Kn(Ki(),void 0,Le)}function eo(Le,Nr){return Kn(Fi(),Le,Nr)}function Rn(Le){return Kn(e.tokenIsIdentifierOrKeyword(De()),Le)}function Da(){return e.tokenIsIdentifierOrKeyword(De())||De()===10||De()===8}function bo(){return e.tokenIsIdentifierOrKeyword(De())||De()===10}function Ro(Le){if(De()===10||De()===8){var Nr=ga();return Nr.text=xn(Nr.text),Nr}return Le&&De()===22?Wn():De()===80?Co():Rn()}function En(){return Ro(!0)}function Wn(){var Le=Ue();ui(22);var Nr=Wt(ns);return ui(23),Bi(ge.createComputedPropertyName(Nr),Le)}function to(Le){var Nr=ir.get(Le);return Nr===void 0&&ir.set(Le,Nr=Le),Nr}function Co(){var Le=Ue(),Nr=ge.createPrivateIdentifier(to(D.getTokenText()));return Tr(),Bi(Nr,Le)}function Ko(Le){return De()===Le&&Ii(no)}function Oo(){return Tr(),D.hasPrecedingLineBreak()?!1:St()}function no(){switch(De()){case 85:return Tr()===92;case 93:return Tr(),De()===88?Rt(pa):De()===152?Rt(Pr):$o();case 88:return pa();case 124:case 136:case 149:return Tr(),St();default:return Oo()}}function $o(){return De()!==41&&De()!==127&&De()!==18&&St()}function Pr(){return Tr(),$o()}function xi(){return e.isModifierKind(De())&&Ii(no)}function St(){return De()===22||De()===18||De()===41||De()===25||Da()}function pa(){return Tr(),De()===84||De()===98||De()===118||De()===126&&Rt(wl)||De()===131&&Rt(Iu)}function dn(Le,Nr){var ri=sa(Le);if(ri)return!0;switch(Le){case 0:case 1:case 3:return!(De()===26&&Nr)&&Ku();case 2:return De()===82||De()===88;case 4:return Rt(bn);case 5:return Rt(Lp)||De()===26&&!Nr;case 6:return De()===22||Da();case 12:switch(De()){case 22:case 41:case 25:case 24:return!0;default:return Da()}case 18:return Da();case 9:return De()===22||De()===25||Da();case 24:return bo();case 7:return De()===18?Rt(Jn):Nr?Fi()&&!Ce():Cu()&&!Ce();case 8:return Hc();case 10:return De()===27||De()===25||Hc();case 19:return De()===101||Fi();case 15:switch(De()){case 27:case 24:return!0}case 11:return De()===25||qs();case 16:return pu(!1);case 17:return pu(!0);case 20:case 21:return De()===27||Xr();case 22:return Ll();case 23:return e.tokenIsIdentifierOrKeyword(De());case 13:return e.tokenIsIdentifierOrKeyword(De())||De()===18;case 14:return!0}return e.Debug.fail(\"Non-exhaustive case in 'isListElement'.\")}function Jn(){if(e.Debug.assert(De()===18),Tr()===19){var Le=Tr();return Le===27||Le===18||Le===94||Le===117}return!0}function Qe(){return Tr(),Fi()}function Gr(){return Tr(),e.tokenIsIdentifierOrKeyword(De())}function S(){return Tr(),e.tokenIsIdentifierOrKeywordOrGreaterThan(De())}function Ce(){return De()===117||De()===94?Rt(qe):!1}function qe(){return Tr(),qs()}function br(){return Tr(),Xr()}function Zr(Le){if(De()===1)return!0;switch(Le){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return De()===19;case 3:return De()===19||De()===82||De()===88;case 7:return De()===18||De()===94||De()===117;case 8:return Si();case 19:return De()===31||De()===20||De()===18||De()===94||De()===117;case 11:return De()===21||De()===26;case 15:case 21:case 10:return De()===23;case 17:case 16:case 18:return De()===21||De()===23;case 20:return De()!==27;case 22:return De()===18||De()===19;case 13:return De()===31||De()===43;case 14:return De()===29&&Rt(fi);default:return!1}}function Si(){return!!(ka()||F_(De())||De()===38)}function Pi(){for(var Le=0;Le<25;Le++)if(Ye&1<=0)}function tc(Le){return Le===6?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function ps(){var Le=Cn([],Ue());return Le.isMissingList=!0,Le}function Qs(Le){return!!Le.isMissingList}function js(Le,Nr,ri,di){if(ui(ri)){var Mi=hs(Le,Nr);return ui(di),Mi}return ps()}function ds(Le,Nr){for(var ri=Ue(),di=Le?Rn(Nr):eo(Nr),Mi=Ue();at(24);){if(De()===29){di.jsdocDotPos=Mi;break}Mi=Ue(),di=Bi(ge.createQualifiedName(di,ce(Le,!1)),ri)}return di}function Ji(Le,Nr){return Bi(ge.createQualifiedName(Le,Nr),Le.pos)}function ce(Le,Nr){if(D.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(De())){var ri=Rt(Pu);if(ri)return kn(79,!0,e.Diagnostics.Identifier_expected)}if(De()===80){var di=Co();return Nr?di:kn(79,!0,e.Diagnostics.Identifier_expected)}return Le?Rn():eo()}function Rr(Le){var Nr=Ue(),ri=[],di;do di=Pt(Le),ri.push(di);while(di.literal.kind===16);return Cn(ri,Nr)}function yi(Le){var Nr=Ue();return Bi(ge.createTemplateExpression(ua(Le),Rr(Le)),Nr)}function qi(){var Le=Ue();return Bi(ge.createTemplateLiteralType(ua(!1),je()),Le)}function je(){var Le=Ue(),Nr=[],ri;do ri=Hr(),Nr.push(ri);while(ri.literal.kind===16);return Cn(Nr,Le)}function Hr(){var Le=Ue();return Bi(ge.createTemplateLiteralTypeSpan(Aa(),pt(!1)),Le)}function pt(Le){return De()===19?(Wi(Le),Xn()):$a(17,e.Diagnostics._0_expected,e.tokenToString(19))}function Pt(Le){var Nr=Ue();return Bi(ge.createTemplateSpan(Wt(ns),pt(Le)),Nr)}function ga(){return fo(De())}function ua(Le){Le&&ct();var Nr=fo(De());return e.Debug.assert(Nr.kind===15,\"Template head has wrong token kind\"),Nr}function Xn(){var Le=fo(De());return e.Debug.assert(Le.kind===16||Le.kind===17,\"Template fragment has wrong token kind\"),Le}function jr(Le){var Nr=Le===14||Le===17,ri=D.getTokenText();return ri.substring(1,ri.length-(D.isUnterminated()?0:Nr?1:2))}function fo(Le){var Nr=Ue(),ri=e.isTemplateLiteralKind(Le)?ge.createTemplateLiteralLikeNode(Le,D.getTokenValue(),jr(Le),D.getTokenFlags()&2048):Le===8?ge.createNumericLiteral(D.getTokenValue(),D.getNumericLiteralFlags()):Le===10?ge.createStringLiteral(D.getTokenValue(),void 0,D.hasExtendedUnicodeEscape()):e.isLiteralKind(Le)?ge.createLiteralLikeNode(Le,D.getTokenValue()):e.Debug.fail();return D.hasExtendedUnicodeEscape()&&(ri.hasExtendedUnicodeEscape=!0),D.isUnterminated()&&(ri.isUnterminated=!0),Tr(),Bi(ri,Nr)}function xs(){return ds(!0,e.Diagnostics.Type_expected)}function Fo(){if(!D.hasPrecedingLineBreak()&&Li()===29)return js(20,Aa,29,31)}function ko(){var Le=Ue();return Bi(ge.createTypeReferenceNode(xs(),Fo()),Le)}function Ao(Le){switch(Le.kind){case 178:return e.nodeIsMissing(Le.typeName);case 179:case 180:{var Nr=Le,ri=Nr.parameters,di=Nr.type;return Qs(ri)||Ao(di)}case 191:return Ao(Le.type);default:return!1}}function Ms(Le){return Tr(),Bi(ge.createTypePredicateNode(void 0,Le,Aa()),Le.pos)}function Bs(){var Le=Ue();return Tr(),Bi(ge.createThisTypeNode(),Le)}function xc(){var Le=Ue();return Tr(),Bi(ge.createJSDocAllType(),Le)}function su(){var Le=Ue();return Tr(),Bi(ge.createJSDocNonNullableType(yc(),!1),Le)}function tl(){var Le=Ue();return Tr(),De()===27||De()===19||De()===21||De()===31||De()===63||De()===51?Bi(ge.createJSDocUnknownType(),Le):Bi(ge.createJSDocNullableType(Aa(),!1),Le)}function Zc(){var Le=Ue(),Nr=fr();if(Rt(v)){Tr();var ri=Ei(36),di=vc(58,!1);return wr(Bi(ge.createJSDocFunctionType(ri,di),Le),Nr)}return Bi(ge.createTypeReferenceNode(Rn(),void 0),Le)}function Rf(){var Le=Ue(),Nr;return(De()===108||De()===103)&&(Nr=Rn(),ui(58)),Bi(ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,al(),void 0),Le)}function al(){D.setInJSDocType(!0);var Le=Ue();if(at(141)){var Nr=ge.createJSDocNamepathType(void 0);e:for(;;)switch(De()){case 19:case 1:case 27:case 5:break e;default:vi()}return D.setInJSDocType(!1),Bi(Nr,Le)}var ri=at(25),di=gu();return D.setInJSDocType(!1),ri&&(di=Bi(ge.createJSDocVariadicType(di),Le)),De()===63?(Tr(),Bi(ge.createJSDocOptionalType(di),Le)):di}function Jo(){var Le=Ue();ui(112);var Nr=ds(!0),ri=D.hasPrecedingLineBreak()?void 0:m_();return Bi(ge.createTypeQueryNode(Nr,ri),Le)}function eu(){var Le=Ue(),Nr=Fc(),ri=eo(),di,Mi;at(94)&&(Xr()||!qs()?di=Aa():Mi=kp());var st=at(63)?Aa():void 0,ra=ge.createTypeParameterDeclaration(Nr,ri,di,st);return ra.expression=Mi,Bi(ra,Le)}function Ws(){if(De()===29)return js(19,eu,29,31)}function pu(Le){return De()===25||Hc()||e.isModifierKind(De())||De()===59||Xr(!Le)}function Uu(Le){var Nr=Ol(e.Diagnostics.Private_identifiers_cannot_be_used_as_parameters);return e.getFullWidth(Nr)===0&&!e.some(Le)&&e.isModifierKind(De())&&Tr(),Nr}function Ql(){return Ki()||De()===22||De()===18}function xl(Le){return du(Le)}function Ya(Le){return du(Le,!1)}function du(Le,Nr){Nr===void 0&&(Nr=!0);var ri=Ue(),di=fr(),Mi=Le?Jr(gl):gl();if(De()===108){var st=ge.createParameterDeclaration(Mi,void 0,void 0,Kn(!0),void 0,va(),void 0);return Mi&&Mr(Mi[0],e.Diagnostics.Decorators_may_not_be_applied_to_this_parameters),wr(Bi(st,ri),di)}var ra=Ne;Ne=!1;var Ta=Fc(),ha=At(25);if(!(!Nr&&!Ql())){var Na=wr(Bi(ge.createParameterDeclaration(Mi,Ta,ha,Uu(Ta),At(57),va(),nl()),ri),di);return Ne=ra,Na}}function vc(Le,Nr){if(Kr(Le,Nr))return _r(gu)}function Kr(Le,Nr){return Le===38?(ui(Le),!0):at(58)?!0:Nr&&De()===38?(Ar(e.Diagnostics._0_expected,e.tokenToString(58)),Tr(),!0):!1}function _i(Le,Nr){var ri=Wr(),di=mr();Di(!!(Le&1)),Xi(!!(Le&2));var Mi=Le&32?hs(17,Rf):hs(16,function(){return Nr?xl(di):Ya(di)});return Di(ri),Xi(di),Mi}function Ei(Le){if(!ui(20))return ps();var Nr=_i(Le,!0);return ui(21),Nr}function tt(){at(27)||pn()}function kt(Le){var Nr=Ue(),ri=fr();Le===175&&ui(103);var di=Ws(),Mi=Ei(4),st=vc(58,!0);tt();var ra=Le===174?ge.createCallSignature(di,Mi,st):ge.createConstructSignature(di,Mi,st);return wr(Bi(ra,Nr),ri)}function bt(){return De()===22&&Rt(ia)}function ia(){if(Tr(),De()===25||De()===23)return!0;if(e.isModifierKind(De())){if(Tr(),Fi())return!0}else if(Fi())Tr();else return!1;return De()===58||De()===27?!0:De()!==57?!1:(Tr(),De()===58||De()===27||De()===23)}function Xt(Le,Nr,ri,di){var Mi=js(16,function(){return xl(!1)},22,23),st=va();tt();var ra=ge.createIndexSignature(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}function Za(Le,Nr,ri){var di=En(),Mi=At(57),st;if(De()===20||De()===29){var ra=Ws(),Ta=Ei(4),ha=vc(58,!0);st=ge.createMethodSignature(ri,di,Mi,ra,Ta,ha)}else{var ha=va();st=ge.createPropertySignature(ri,di,Mi,ha),De()===63&&(st.initializer=nl())}return tt(),wr(Bi(st,Le),Nr)}function bn(){if(De()===20||De()===29||De()===136||De()===149)return!0;for(var Le=!1;e.isModifierKind(De());)Le=!0,Tr();return De()===22?!0:(Da()&&(Le=!0,Tr()),Le?De()===20||De()===29||De()===57||De()===58||De()===27||ka():!1)}function _a(){if(De()===20||De()===29)return kt(174);if(De()===103&&Rt(qa))return kt(175);var Le=Ue(),Nr=fr(),ri=Fc();return Ko(136)?Gu(Le,Nr,void 0,ri,172):Ko(149)?Gu(Le,Nr,void 0,ri,173):bt()?Xt(Le,Nr,void 0,ri):Za(Le,Nr,ri)}function qa(){return Tr(),De()===20||De()===29}function rn(){return Tr()===24}function jn(){switch(Tr()){case 20:case 29:case 24:return!0}return!1}function Mo(){var Le=Ue();return Bi(ge.createTypeLiteralNode(ho()),Le)}function ho(){var Le;return ui(18)?(Le=Qi(4,_a),ui(19)):Le=ps(),Le}function gs(){return Tr(),De()===39||De()===40?Tr()===145:(De()===145&&Tr(),De()===22&&Qe()&&Tr()===101)}function Se(){var Le=Ue(),Nr=Rn();ui(101);var ri=Aa();return Bi(ge.createTypeParameterDeclaration(void 0,Nr,ri,void 0),Le)}function hr(){var Le=Ue();ui(18);var Nr;(De()===145||De()===39||De()===40)&&(Nr=ai(),Nr.kind!==145&&ui(145)),ui(22);var ri=Se(),di=at(127)?Aa():void 0;ui(23);var Mi;(De()===57||De()===39||De()===40)&&(Mi=ai(),Mi.kind!==57&&ui(57));var st=va();pn();var ra=Qi(4,_a);return ui(19),Bi(ge.createMappedTypeNode(Nr,ri,di,Mi,st,ra),Le)}function Or(){var Le=Ue();if(at(25))return Bi(ge.createRestTypeNode(Aa()),Le);var Nr=Aa();if(e.isJSDocNullableType(Nr)&&Nr.pos===Nr.type.pos){var ri=ge.createOptionalTypeNode(Nr.type);return e.setTextRange(ri,Nr),ri.flags=Nr.flags,ri}return Nr}function ki(){return Tr()===58||De()===57&&Tr()===58}function dt(){return De()===25?e.tokenIsIdentifierOrKeyword(Tr())&&ki():e.tokenIsIdentifierOrKeyword(De())&&ki()}function la(){if(Rt(dt)){var Le=Ue(),Nr=fr(),ri=At(25),di=Rn(),Mi=At(57);ui(58);var st=Or(),ra=ge.createNamedTupleMember(ri,di,Mi,st);return wr(Bi(ra,Le),Nr)}return Or()}function wa(){var Le=Ue();return Bi(ge.createTupleTypeNode(js(21,la,22,23)),Le)}function On(){var Le=Ue();ui(20);var Nr=Aa();return ui(21),Bi(ge.createParenthesizedType(Nr),Le)}function No(){var Le;if(De()===126){var Nr=Ue();Tr();var ri=Bi(ge.createToken(126),Nr);Le=Cn([ri],Nr)}return Le}function jo(){var Le=Ue(),Nr=fr(),ri=No(),di=at(103),Mi=Ws(),st=Ei(4),ra=vc(38,!1),Ta=di?ge.createConstructorTypeNode(ri,Mi,st,ra):ge.createFunctionTypeNode(Mi,st,ra);return di||(Ta.modifiers=ri),wr(Bi(Ta,Le),Nr)}function po(){var Le=ai();return De()===24?void 0:Le}function Gn(Le){var Nr=Ue();Le&&Tr();var ri=De()===110||De()===95||De()===104?ai():fo(De());return Le&&(ri=Bi(ge.createPrefixUnaryExpression(40,ri),Nr)),Bi(ge.createLiteralTypeNode(ri),Nr)}function $n(){return Tr(),De()===100}function Ho(){var Le=Ue(),Nr=D.getTokenPos();ui(18);var ri=D.hasPrecedingLineBreak();ui(129),ui(58);var di=Ha(!0);if(!ui(19)){var Mi=e.lastOrUndefined(_e);Mi&&Mi.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(Mi,e.createDetachedDiagnostic(Re,Nr,1,e.Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here,\"{\",\"}\"))}return Bi(ge.createImportTypeAssertionContainer(di,ri),Le)}function Zo(){ze|=2097152;var Le=Ue(),Nr=at(112);ui(100),ui(20);var ri=Aa(),di;at(27)&&(di=Ho()),ui(21);var Mi=at(24)?xs():void 0,st=Fo();return Bi(ge.createImportTypeNode(ri,di,Mi,st,Nr),Le)}function Es(){return Tr(),De()===8||De()===9}function yc(){switch(De()){case 130:case 155:case 150:case 147:case 158:case 151:case 133:case 153:case 143:case 148:return Ii(po)||ko();case 66:D.reScanAsteriskEqualsToken();case 41:return xc();case 60:D.reScanQuestionToken();case 57:return tl();case 98:return Zc();case 53:return su();case 14:case 10:case 8:case 9:case 110:case 95:case 104:return Gn();case 40:return Rt(Es)?Gn(!0):ko();case 114:return ai();case 108:{var Le=Bs();return De()===139&&!D.hasPrecedingLineBreak()?Ms(Le):Le}case 112:return Rt($n)?Zo():Jo();case 18:return Rt(gs)?hr():Mo();case 22:return wa();case 20:return On();case 100:return Zo();case 128:return Rt(Pu)?sd():ko();case 15:return qi();default:return ko()}}function Xr(Le){switch(De()){case 130:case 155:case 150:case 147:case 158:case 133:case 145:case 151:case 154:case 114:case 153:case 104:case 108:case 112:case 143:case 18:case 22:case 29:case 51:case 50:case 103:case 10:case 8:case 9:case 110:case 95:case 148:case 41:case 57:case 53:case 25:case 137:case 100:case 128:case 14:case 15:return!0;case 98:return!Le;case 40:return!Le&&Rt(Es);case 20:return!Le&&Rt(Ls);default:return Fi()}}function Ls(){return Tr(),De()===21||pu(!1)||Xr()}function Ic(){for(var Le=Ue(),Nr=yc();!D.hasPrecedingLineBreak();)switch(De()){case 53:Tr(),Nr=Bi(ge.createJSDocNonNullableType(Nr,!0),Le);break;case 57:if(Rt(br))return Nr;Tr(),Nr=Bi(ge.createJSDocNullableType(Nr,!0),Le);break;case 22:if(ui(22),Xr()){var ri=Aa();ui(23),Nr=Bi(ge.createIndexedAccessTypeNode(Nr,ri),Le)}else ui(23),Nr=Bi(ge.createArrayTypeNode(Nr),Le);break;default:return Nr}return Nr}function zu(Le){var Nr=Ue();return ui(Le),Bi(ge.createTypeOperatorNode(Le,vp()),Nr)}function vf(){if(at(94)){var Le=pi(Aa);if(xe()||De()!==57)return Le}}function P_(){var Le=Ue(),Nr=eo(),ri=Ii(vf),di=ge.createTypeParameterDeclaration(void 0,Nr,ri);return Bi(di,Le)}function El(){var Le=Ue();return ui(137),Bi(ge.createInferTypeNode(P_()),Le)}function vp(){var Le=De();switch(Le){case 140:case 154:case 145:return zu(Le);case 137:return El()}return _r(Ic)}function oo(Le){if(Cl()){var Nr=jo(),ri=void 0;return e.isFunctionTypeNode(Nr)?ri=Le?e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:ri=Le?e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,Mr(Nr,ri),Nr}}function I_(Le,Nr,ri){var di=Ue(),Mi=Le===51,st=at(Le),ra=st&&oo(Mi)||Nr();if(De()===Le||st){for(var Ta=[ra];at(Le);)Ta.push(oo(Mi)||Nr());ra=Bi(ri(Cn(Ta,di)),di)}return ra}function yp(){return I_(50,vp,ge.createIntersectionTypeNode)}function Yl(){return I_(51,yp,ge.createUnionTypeNode)}function Bf(){return Tr(),De()===103}function Cl(){return De()===29||De()===20&&Rt(hp)?!0:De()===103||De()===126&&Rt(Bf)}function c_(){if(e.isModifierKind(De())&&Fc(),Fi()||De()===108)return Tr(),!0;if(De()===22||De()===18){var Le=_e.length;return Ol(),Le===_e.length}return!1}function hp(){return Tr(),!!(De()===21||De()===25||c_()&&(De()===58||De()===27||De()===57||De()===63||De()===21&&(Tr(),De()===38)))}function gu(){var Le=Ue(),Nr=Fi()&&Ii(Dp),ri=Aa();return Nr?Bi(ge.createTypePredicateNode(void 0,Nr,ri),Le):ri}function Dp(){var Le=eo();if(De()===139&&!D.hasPrecedingLineBreak())return Tr(),Le}function sd(){var Le=Ue(),Nr=$a(128),ri=De()===108?Bs():eo(),di=at(139)?Aa():void 0;return Bi(ge.createTypePredicateNode(Nr,ri,di),Le)}function Aa(){if(Er&40960)return et(40960,Aa);if(Cl())return jo();var Le=Ue(),Nr=Yl();if(!xe()&&!D.hasPrecedingLineBreak()&&at(94)){var ri=pi(Aa);ui(57);var di=_r(Aa);ui(58);var Mi=_r(Aa);return Bi(ge.createConditionalTypeNode(Nr,ri,di,Mi),Le)}return Nr}function va(){return at(58)?Aa():void 0}function Cu(){switch(De()){case 108:case 106:case 104:case 110:case 95:case 8:case 9:case 10:case 14:case 15:case 20:case 22:case 18:case 98:case 84:case 103:case 43:case 68:case 79:return!0;case 100:return Rt(jn);default:return Fi()}}function qs(){if(Cu())return!0;switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 45:case 46:case 29:case 132:case 125:case 80:return!0;default:return xp()?!0:Fi()}}function cd(){return De()!==18&&De()!==98&&De()!==84&&De()!==59&&qs()}function ns(){var Le=vr();Le&&wi(!1);for(var Nr=Ue(),ri=hc(),di;di=At(27);)ri=M_(ri,di,hc(),Nr);return Le&&wi(!0),ri}function nl(){return at(63)?hc():void 0}function hc(){if(es())return Jf();var Le=ud()||bp();if(Le)return Le;var Nr=Ue(),ri=O_(0);return ri.kind===79&&De()===38?w_(Nr,ri,void 0):e.isLeftHandSideExpression(ri)&&e.isAssignmentOperator(Ui())?M_(ri,ai(),hc(),Nr):jf(ri,Nr)}function es(){return De()===125?Wr()?!0:Rt(so):!1}function u_(){return Tr(),!D.hasPrecedingLineBreak()&&Fi()}function Jf(){var Le=Ue();return Tr(),!D.hasPrecedingLineBreak()&&(De()===41||qs())?Bi(ge.createYieldExpression(At(41),hc()),Le):Bi(ge.createYieldExpression(void 0,void 0),Le)}function w_(Le,Nr,ri){e.Debug.assert(De()===38,\"parseSimpleArrowFunctionExpression should only have been called if we had a =>\");var di=ge.createParameterDeclaration(void 0,void 0,void 0,Nr,void 0,void 0,void 0);Bi(di,Nr.pos);var Mi=Cn([di],di.pos,di.end),st=$a(38),ra=_d(!!ri),Ta=ge.createArrowFunction(ri,void 0,Mi,void 0,st,ra);return ii(Bi(Ta,Le))}function ud(){var Le=ku();if(Le!==0)return Le===1?Tp(!0):Ii(fd)}function ku(){return De()===20||De()===29||De()===131?Rt(ld):De()===38?1:0}function ld(){if(De()===131&&(Tr(),D.hasPrecedingLineBreak()||De()!==20&&De()!==29))return 0;var Le=De(),Nr=Tr();if(Le===20){if(Nr===21){var ri=Tr();switch(ri){case 38:case 58:case 18:return 1;default:return 0}}if(Nr===22||Nr===18)return 2;if(Nr===25)return 1;if(e.isModifierKind(Nr)&&Nr!==131&&Rt(Qe))return Rt(function(){return Tr()===127})?0:1;if(!Fi()&&Nr!==108)return 0;switch(Tr()){case 58:return 1;case 57:return Tr(),De()===58||De()===27||De()===63||De()===21?1:0;case 27:case 63:case 21:return 2}return 0}else{if(e.Debug.assert(Le===29),!Fi())return 0;if(Ie===1){var di=Rt(function(){var Mi=Tr();if(Mi===94){var st=Tr();switch(st){case 63:case 31:return!1;default:return!0}}else if(Mi===27||Mi===63)return!0;return!1});return di?1:0}return 2}}function fd(){var Le=D.getTokenPos();if(!(Br!=null&&Br.has(Le))){var Nr=Tp(!1);return Nr||(Br||(Br=new e.Set)).add(Le),Nr}}function bp(){if(De()===131&&Rt(Sp)===1){var Le=Ue(),Nr=Hu(),ri=O_(0);return w_(Le,ri,Nr)}}function Sp(){if(De()===131){if(Tr(),D.hasPrecedingLineBreak()||De()===38)return 0;var Le=O_(0);if(!D.hasPrecedingLineBreak()&&Le.kind===79&&De()===38)return 1}return 0}function Tp(Le){var Nr=Ue(),ri=fr(),di=Hu(),Mi=e.some(di,e.isAsyncModifier)?2:0,st=Ws(),ra;if(ui(20)){if(Le)ra=_i(Mi,Le);else{var Ta=_i(Mi,Le);if(!Ta)return;ra=Ta}if(!ui(21)&&!Le)return}else{if(!Le)return;ra=ps()}var ha=vc(58,!1);if(!(ha&&!Le&&Ao(ha))){for(var Na=ha;(Na==null?void 0:Na.kind)===191;)Na=Na.type;var In=Na&&e.isJSDocFunctionType(Na);if(!(!Le&&De()!==38&&(In||De()!==18))){var qo=De(),co=$a(38),ts=qo===38||qo===18?_d(e.some(di,e.isAsyncModifier)):eo(),vs=ge.createArrowFunction(di,st,ra,ha,co,ts);return wr(Bi(vs,Nr),ri)}}}function _d(Le){if(De()===18)return Cc(Le?2:0);if(De()!==26&&De()!==98&&De()!==84&&Ku()&&!cd())return Cc(16|(Le?2:0));var Nr=Ne;Ne=!1;var ri=Le?Jr(hc):ti(hc);return Ne=Nr,ri}function jf(Le,Nr){var ri=At(57);if(!ri)return Le;var di;return Bi(ge.createConditionalExpression(Le,ri,et(fe,hc),di=$a(58),e.nodeIsPresent(di)?hc():kn(79,!1,e.Diagnostics._0_expected,e.tokenToString(58))),Nr)}function O_(Le){var Nr=Ue(),ri=kp();return pd(Le,ri,Nr)}function F_(Le){return Le===101||Le===160}function pd(Le,Nr,ri){for(;;){Ui();var di=e.getBinaryOperatorPrecedence(De()),Mi=De()===42?di>=Le:di>Le;if(!Mi||De()===101&&Je())break;if(De()===127){if(D.hasPrecedingLineBreak())break;Tr(),Nr=Ep(Nr,Aa())}else Nr=M_(Nr,ai(),O_(di),ri)}return Nr}function xp(){return Je()&&De()===101?!1:e.getBinaryOperatorPrecedence(De())>0}function M_(Le,Nr,ri,di){return Bi(ge.createBinaryExpression(Le,Nr,ri),di)}function Ep(Le,Nr){return Bi(ge.createAsExpression(Le,Nr),Le.pos)}function ol(){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr(mu)),Le)}function Au(){var Le=Ue();return Bi(ge.createDeleteExpression(Vr(mu)),Le)}function ru(){var Le=Ue();return Bi(ge.createTypeOfExpression(Vr(mu)),Le)}function yf(){var Le=Ue();return Bi(ge.createVoidExpression(Vr(mu)),Le)}function Cp(){return De()===132?mr()?!0:Rt(so):!1}function dd(){var Le=Ue();return Bi(ge.createAwaitExpression(Vr(mu)),Le)}function kp(){if(gd()){var Le=Ue(),Nr=hf();return De()===42?pd(e.getBinaryOperatorPrecedence(De()),Nr,Le):Nr}var ri=De(),di=mu();if(De()===42){var Le=e.skipTrivia(Ee,di.pos),Mi=di.end;di.kind===211?nr(Le,Mi,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):nr(Le,Mi,e.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,e.tokenToString(ri))}return di}function mu(){switch(De()){case 39:case 40:case 54:case 53:return ol();case 89:return Au();case 112:return ru();case 114:return yf();case 29:return qu();case 132:if(Cp())return dd();default:return hf()}}function gd(){switch(De()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 132:return!1;case 29:if(Ie!==1)return!1;default:return!0}}function hf(){if(De()===45||De()===46){var Le=Ue();return Bi(ge.createPrefixUnaryExpression(De(),Vr($l)),Le)}else if(Ie===1&&De()===29&&Rt(S))return l_(!0);var Nr=$l();if(e.Debug.assert(e.isLeftHandSideExpression(Nr)),(De()===45||De()===46)&&!D.hasPrecedingLineBreak()){var ri=De();return Tr(),Bi(ge.createPostfixUnaryExpression(Nr,ri),Nr.pos)}return Nr}function $l(){var Le=Ue(),Nr;return De()===100?Rt(qa)?(ze|=2097152,Nr=ai()):Rt(rn)?(Tr(),Tr(),Nr=Bi(ge.createMetaProperty(100,Rn()),Le),ze|=4194304):Nr=Uf():Nr=De()===106?L_():Uf(),Ps(Le,Nr)}function Uf(){var Le=Ue(),Nr=vu();return Ec(Le,Nr,!0)}function L_(){var Le=Ue(),Nr=ai();if(De()===29){var ri=Ue(),di=Ii(Gc);di!==void 0&&nr(ri,Ue(),e.Diagnostics.super_may_not_use_type_arguments)}return De()===20||De()===24||De()===22?Nr:($a(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!0)),Le))}function l_(Le,Nr,ri){var di=Ue(),Mi=Zl(Le),st;if(Mi.kind===280){var ra=ks(Mi),Ta=void 0,ha=ra[ra.length-1];if((ha==null?void 0:ha.kind)===278&&!l(ha.openingElement.tagName,ha.closingElement.tagName)&&l(Mi.tagName,ha.closingElement.tagName)){var Na=ha.children.end,In=Bi(ge.createJsxElement(ha.openingElement,ha.children,Bi(ge.createJsxClosingElement(Bi(ge.createIdentifier(\"\"),Na,Na)),Na,Na)),ha.openingElement.pos,Na);ra=Cn(Ve(Ve([],ra.slice(0,ra.length-1),!0),[In],!1),ra.pos,Na),Ta=ha.closingElement}else Ta=Al(Mi,Le),l(Mi.tagName,Ta.tagName)||(ri&&e.isJsxOpeningElement(ri)&&l(Ta.tagName,ri.tagName)?Mr(Mi.tagName,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)):Mr(Ta.tagName,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(Ee,Mi.tagName)));st=Bi(ge.createJsxElement(Mi,ra,Ta),di)}else Mi.kind===283?st=Bi(ge.createJsxFragment(Mi,ks(Mi),wc(Le)),di):(e.Debug.assert(Mi.kind===279),st=Mi);if(Le&&De()===29){var qo=typeof Nr>\"u\"?st.pos:Nr,co=Ii(function(){return l_(!0,qo)});if(co){var ts=kn(27,!1);return e.setTextRangePosWidth(ts,co.pos,0),nr(e.skipTrivia(Ee,qo),co.end,e.Diagnostics.JSX_expressions_must_have_one_parent_element),Bi(ge.createBinaryExpression(st,ts,co),di)}}return st}function f_(){var Le=Ue(),Nr=ge.createJsxText(D.getTokenValue(),ye===12);return ye=D.scanJsxToken(),Bi(Nr,Le)}function md(Le,Nr){switch(Nr){case 1:if(e.isJsxOpeningFragment(Le))Mr(Le,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);else{var ri=Le.tagName,di=e.skipTrivia(Ee,ri.pos);nr(di,ri.end,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(Ee,Le.tagName))}return;case 30:case 7:return;case 11:case 12:return f_();case 18:return kl(!1);case 29:return l_(!1,void 0,Le);default:return e.Debug.assertNever(Nr)}}function ks(Le){var Nr=[],ri=Ue(),di=Ye;for(Ye|=1<<14;;){var Mi=md(Le,ye=D.reScanJsxToken());if(!Mi||(Nr.push(Mi),e.isJsxOpeningElement(Le)&&(Mi==null?void 0:Mi.kind)===278&&!l(Mi.openingElement.tagName,Mi.closingElement.tagName)&&l(Le.tagName,Mi.closingElement.tagName)))break}return Ye=di,Cn(Nr,ri)}function Wu(){var Le=Ue();return Bi(ge.createJsxAttributes(Qi(13,__)),Le)}function Zl(Le){var Nr=Ue();if(ui(29),De()===31)return xt(),Bi(ge.createJsxOpeningFragment(),Nr);var ri=R_(),di=(Er&262144)===0?m_():void 0,Mi=Wu(),st;return De()===31?(xt(),st=ge.createJsxOpeningElement(ri,di,Mi)):(ui(43),ui(31,void 0,!1)&&(Le?Tr():xt()),st=ge.createJsxSelfClosingElement(ri,di,Mi)),Bi(st,Nr)}function R_(){var Le=Ue();Mt();for(var Nr=De()===108?ai():Rn();at(24);)Nr=Bi(ge.createPropertyAccessExpression(Nr,ce(!0,!1)),Le);return Nr}function kl(Le){var Nr=Ue();if(!!ui(18)){var ri,di;return De()!==19&&(ri=At(25),di=ns()),Le?ui(19):ui(19,void 0,!1)&&xt(),Bi(ge.createJsxExpression(ri,di),Nr)}}function __(){if(De()===18)return zd();Mt();var Le=Ue();return Bi(ge.createJsxAttribute(Rn(),De()!==63?void 0:ut()===10?ga():kl(!0)),Le)}function zd(){var Le=Ue();ui(18),ui(25);var Nr=ns();return ui(19),Bi(ge.createJsxSpreadAttribute(Nr),Le)}function Al(Le,Nr){var ri=Ue();ui(30);var di=R_();return ui(31,void 0,!1)&&(Nr||!l(Le.tagName,di)?Tr():xt()),Bi(ge.createJsxClosingElement(di),ri)}function wc(Le){var Nr=Ue();return ui(30),e.tokenIsIdentifierOrKeyword(De())&&Mr(R_(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment),ui(31,void 0,!1)&&(Le?Tr():xt()),Bi(ge.createJsxJsxClosingFragment(),Nr)}function qu(){var Le=Ue();ui(29);var Nr=Aa();ui(31);var ri=mu();return Bi(ge.createTypeAssertion(Nr,ri),Le)}function Vu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())||De()===22||Zn()}function ef(){return De()===28&&Rt(Vu)}function sl(Le){if(Le.flags&32)return!0;if(e.isNonNullExpression(Le)){for(var Nr=Le.expression;e.isNonNullExpression(Nr)&&!(Nr.flags&32);)Nr=Nr.expression;if(Nr.flags&32){for(;e.isNonNullExpression(Le);)Le.flags|=32,Le=Le.expression;return!0}}return!1}function p_(Le,Nr,ri){var di=ce(!0,!0),Mi=ri||sl(Nr),st=Mi?ge.createPropertyAccessChain(Nr,ri,di):ge.createPropertyAccessExpression(Nr,di);return Mi&&e.isPrivateIdentifier(st.name)&&Mr(st.name,e.Diagnostics.An_optional_chain_cannot_contain_private_identifiers),Bi(st,Le)}function Df(Le,Nr,ri){var di;if(De()===23)di=kn(79,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var Mi=Wt(ns);e.isStringOrNumericLiteralLike(Mi)&&(Mi.text=xn(Mi.text)),di=Mi}ui(23);var st=ri||sl(Nr)?ge.createElementAccessChain(Nr,ri,di):ge.createElementAccessExpression(Nr,di);return Bi(st,Le)}function Ec(Le,Nr,ri){for(;;){var di=void 0,Mi=!1;if(ri&&ef()?(di=$a(28),Mi=e.tokenIsIdentifierOrKeyword(De())):Mi=at(24),Mi){Nr=p_(Le,Nr,di);continue}if((di||!vr())&&at(22)){Nr=Df(Le,Nr,di);continue}if(Zn()){Nr=!di&&Nr.kind===228?os(Le,Nr.expression,di,Nr.typeArguments):os(Le,Nr,di,void 0);continue}if(!di){if(De()===53&&!D.hasPrecedingLineBreak()){Tr(),Nr=Bi(ge.createNonNullExpression(Nr),Le);continue}var st=Ii(Gc);if(st){Nr=Bi(ge.createExpressionWithTypeArguments(Nr,st),Le);continue}}return Nr}}function Zn(){return De()===14||De()===15}function os(Le,Nr,ri,di){var Mi=ge.createTaggedTemplateExpression(Nr,di,De()===14?(ct(),ga()):yi(!0));return(ri||Nr.flags&32)&&(Mi.flags|=32),Mi.questionDotToken=ri,Bi(Mi,Le)}function Ps(Le,Nr){for(;;){Nr=Ec(Le,Nr,!0);var ri=void 0,di=At(28);if(di&&(ri=Ii(Gc),Zn())){Nr=os(Le,Nr,di,ri);continue}if(ri||De()===20){!di&&Nr.kind===228&&(ri=Nr.typeArguments,Nr=Nr.expression);var Mi=d_(),st=di||sl(Nr)?ge.createCallChain(Nr,di,ri,Mi):ge.createCallExpression(Nr,ri,Mi);Nr=Bi(st,Le);continue}if(di){var ra=kn(79,!1,e.Diagnostics.Identifier_expected);Nr=Bi(ge.createPropertyAccessChain(Nr,di,ra),Le)}break}return Nr}function d_(){ui(20);var Le=hs(11,Nl);return ui(21),Le}function Gc(){if((Er&262144)===0&&Li()===29){Tr();var Le=hs(20,Aa);if(!!ui(31))return Le&&B_()?Le:void 0}}function B_(){switch(De()){case 20:case 14:case 15:return!0}return!qs()}function vu(){switch(De()){case 8:case 9:case 10:case 14:return ga();case 108:case 106:case 104:case 110:case 95:return ai();case 20:return Gt();case 22:return cl();case 18:return Ut();case 131:if(!Rt(Iu))break;return Ds();case 84:return tn();case 98:return Ds();case 103:return bs();case 43:case 68:if(Yi()===13)return ga();break;case 15:return yi(!1);case 80:return Co()}return eo(e.Diagnostics.Expression_expected)}function Gt(){var Le=Ue(),Nr=fr();ui(20);var ri=Wt(ns);return ui(21),wr(Bi(ge.createParenthesizedExpression(ri),Le),Nr)}function As(){var Le=Ue();ui(25);var Nr=hc();return Bi(ge.createSpreadElement(Nr),Le)}function vn(){return De()===25?As():De()===27?Bi(ge.createOmittedExpression(),Ue()):hc()}function Nl(){return et(fe,vn)}function cl(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(22),di=D.hasPrecedingLineBreak(),Mi=hs(15,vn);return Vi(22,23,ri,Nr),Bi(ge.createArrayLiteralExpression(Mi,di),Le)}function rf(){var Le=Ue(),Nr=fr();if(At(25)){var ri=hc();return wr(Bi(ge.createSpreadAssignment(ri),Le),Nr)}var di=gl(),Mi=Fc();if(Ko(136))return Gu(Le,Nr,di,Mi,172);if(Ko(149))return Gu(Le,Nr,di,Mi,173);var st=At(41),ra=Fi(),Ta=En(),ha=At(57),Na=At(53);if(st||De()===20||De()===29)return pl(Le,Nr,di,Mi,st,Ta,ha,Na);var In,qo=ra&&De()!==58;if(qo){var co=At(63),ts=co?Wt(hc):void 0;In=ge.createShorthandPropertyAssignment(Ta,ts),In.equalsToken=co}else{ui(58);var vs=Wt(hc);In=ge.createPropertyAssignment(Ta,vs)}return In.decorators=di,In.modifiers=Mi,In.questionToken=ha,In.exclamationToken=Na,wr(Bi(In,Le),Nr)}function Ut(){var Le=Ue(),Nr=D.getTokenPos(),ri=ui(18),di=D.hasPrecedingLineBreak(),Mi=hs(12,rf,!0);return Vi(18,19,ri,Nr),Bi(ge.createObjectLiteralExpression(Mi,di),Le)}function Ds(){var Le=vr();wi(!1);var Nr=Ue(),ri=fr(),di=Fc();ui(98);var Mi=At(41),st=Mi?1:0,ra=e.some(di,e.isAsyncModifier)?2:0,Ta=st&&ra?Ze(bf):st?ae(bf):ra?Jr(bf):bf(),ha=Ws(),Na=Ei(st|ra),In=vc(58,!1),qo=Cc(st|ra);wi(Le);var co=ge.createFunctionExpression(di,Mi,Ta,ha,Na,In,qo);return wr(Bi(co,Nr),ri)}function bf(){return Ki()?Pn():void 0}function bs(){var Le=Ue();if(ui(103),at(24)){var Nr=Rn();return Bi(ge.createMetaProperty(103,Nr),Le)}var ri=Ue(),di=Ec(ri,vu(),!1),Mi;di.kind===228&&(Mi=di.typeArguments,di=di.expression);var st=De()===20?d_():void 0;return Bi(ge.createNewExpression(di,Mi,st),Le)}function Dc(Le,Nr){var ri=Ue(),di=fr(),Mi=D.getTokenPos(),st=ui(18,Nr);if(st||Le){var ra=D.hasPrecedingLineBreak(),Ta=Qi(1,nc);Vi(18,19,st,Mi);var ha=wr(Bi(ge.createBlock(Ta,ra),ri),di);return De()===63&&(Ar(e.Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses),Tr()),ha}else{var Ta=ps();return wr(Bi(ge.createBlock(Ta,void 0),ri),di)}}function Cc(Le,Nr){var ri=Wr();Di(!!(Le&1));var di=mr();Xi(!!(Le&2));var Mi=Ne;Ne=!1;var st=vr();st&&wi(!1);var ra=Dc(!!(Le&16),Nr);return st&&wi(!0),Ne=Mi,Di(ri),Xi(di),ra}function ac(){var Le=Ue(),Nr=fr();return ui(26),wr(Bi(ge.createEmptyStatement(),Le),Nr)}function Pl(){var Le=Ue(),Nr=fr();ui(99);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc(),ra=at(91)?nc():void 0;return wr(Bi(ge.createIfStatement(Mi,st,ra),Le),Nr)}function Il(){var Le=Ue(),Nr=fr();ui(90);var ri=nc();ui(115);var di=D.getTokenPos(),Mi=ui(20),st=Wt(ns);return Vi(20,21,Mi,di),at(26),wr(Bi(ge.createDoStatement(ri,st),Le),Nr)}function zf(){var Le=Ue(),Nr=fr();ui(115);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=nc();return wr(Bi(ge.createWhileStatement(Mi,st),Le),Nr)}function ul(){var Le=Ue(),Nr=fr();ui(97);var ri=At(132);ui(20);var di;De()!==26&&(De()===113||De()===119||De()===85?di=z_(!0):di=Zt(ns));var Mi;if(ri?ui(160):at(160)){var st=Wt(hc);ui(21),Mi=ge.createForOfStatement(ri,di,st,nc())}else if(at(101)){var st=Wt(ns);ui(21),Mi=ge.createForInStatement(di,st,nc())}else{ui(26);var ra=De()!==26&&De()!==21?Wt(ns):void 0;ui(26);var Ta=De()!==21?Wt(ns):void 0;ui(21),Mi=ge.createForStatement(di,ra,Ta,nc())}return wr(Bi(Mi,Le),Nr)}function Nu(Le){var Nr=Ue(),ri=fr();ui(Le===246?81:86);var di=ka()?void 0:eo();pn();var Mi=Le===246?ge.createBreakStatement(di):ge.createContinueStatement(di);return wr(Bi(Mi,Nr),ri)}function Us(){var Le=Ue(),Nr=fr();ui(105);var ri=ka()?void 0:Wt(ns);return pn(),wr(Bi(ge.createReturnStatement(ri),Le),Nr)}function Ap(){var Le=Ue(),Nr=fr();ui(116);var ri=D.getTokenPos(),di=ui(20),Mi=Wt(ns);Vi(20,21,di,ri);var st=Gi(33554432,nc);return wr(Bi(ge.createWithStatement(Mi,st),Le),Nr)}function Wf(){var Le=Ue(),Nr=fr();ui(82);var ri=Wt(ns);ui(58);var di=Qi(3,nc);return wr(Bi(ge.createCaseClause(ri,di),Le),Nr)}function Sf(){var Le=Ue();ui(88),ui(58);var Nr=Qi(3,nc);return Bi(ge.createDefaultClause(Nr),Le)}function ll(){return De()===82?Wf():Sf()}function J_(){var Le=Ue();ui(18);var Nr=Qi(2,ll);return ui(19),Bi(ge.createCaseBlock(Nr),Le)}function j_(){var Le=Ue(),Nr=fr();ui(107),ui(20);var ri=Wt(ns);ui(21);var di=J_();return wr(Bi(ge.createSwitchStatement(ri,di),Le),Nr)}function U_(){var Le=Ue(),Nr=fr();ui(109);var ri=D.hasPrecedingLineBreak()?void 0:Wt(ns);return ri===void 0&&(Cr++,ri=Bi(ge.createIdentifier(\"\"),Ue())),Ba()||wt(ri),wr(Bi(ge.createThrowStatement(ri),Le),Nr)}function iu(){var Le=Ue(),Nr=fr();ui(111);var ri=Dc(!1),di=De()===83?vd():void 0,Mi;return(!di||De()===96)&&(ui(96,e.Diagnostics.catch_or_finally_expected),Mi=Dc(!1)),wr(Bi(ge.createTryStatement(ri,di,Mi),Le),Nr)}function vd(){var Le=Ue();ui(83);var Nr;at(20)?(Nr=xf(),ui(21)):Nr=void 0;var ri=Dc(!1);return Bi(ge.createCatchClause(Nr,ri),Le)}function qf(){var Le=Ue(),Nr=fr();return ui(87),pn(),wr(Bi(ge.createDebuggerStatement(),Le),Nr)}function dc(){var Le=Ue(),Nr=fr(),ri,di=De()===20,Mi=Wt(ns);return e.isIdentifier(Mi)&&at(58)?ri=ge.createLabeledStatement(Mi,nc()):(Ba()||wt(Mi),ri=ge.createExpressionStatement(Mi),di&&(Nr=!1)),wr(Bi(ri,Le),Nr)}function Pu(){return Tr(),e.tokenIsIdentifierOrKeyword(De())&&!D.hasPrecedingLineBreak()}function wl(){return Tr(),De()===84&&!D.hasPrecedingLineBreak()}function Iu(){return Tr(),De()===98&&!D.hasPrecedingLineBreak()}function so(){return Tr(),(e.tokenIsIdentifierOrKeyword(De())||De()===8||De()===9||De()===10)&&!D.hasPrecedingLineBreak()}function Et(){for(;;)switch(De()){case 113:case 119:case 85:case 98:case 84:case 92:return!0;case 118:case 152:return u_();case 141:case 142:return Tf();case 126:case 131:case 135:case 121:case 122:case 123:case 145:if(Tr(),D.hasPrecedingLineBreak())return!1;continue;case 157:return Tr(),De()===18||De()===79||De()===93;case 100:return Tr(),De()===10||De()===41||De()===18||e.tokenIsIdentifierOrKeyword(De());case 93:var Le=Tr();if(Le===152&&(Le=Rt(Tr)),Le===63||Le===41||Le===18||Le===88||Le===127)return!0;continue;case 124:Tr();continue;default:return!1}}function Ys(){return Rt(Et)}function Ku(){switch(De()){case 59:case 26:case 18:case 113:case 119:case 98:case 84:case 92:case 99:case 90:case 115:case 97:case 86:case 81:case 105:case 116:case 107:case 109:case 111:case 87:case 83:case 96:return!0;case 100:return Ys()||Rt(jn);case 85:case 93:return Ys();case 131:case 135:case 118:case 141:case 142:case 152:case 157:return!0;case 123:case 121:case 122:case 124:case 145:return Ys()||!Rt(Pu);default:return qs()}}function Np(){return Tr(),Ki()||De()===18||De()===22}function Pp(){return Rt(Np)}function nc(){switch(De()){case 26:return ac();case 18:return Dc(!1);case 113:return rs(Ue(),fr(),void 0,void 0);case 119:if(Pp())return rs(Ue(),fr(),void 0,void 0);break;case 98:return Op(Ue(),fr(),void 0,void 0);case 84:return Ml(Ue(),fr(),void 0,void 0);case 99:return Pl();case 90:return Il();case 115:return zf();case 97:return ul();case 86:return Nu(245);case 81:return Nu(246);case 105:return Us();case 116:return Ap();case 107:return j_();case 109:return U_();case 111:case 83:case 96:return iu();case 87:return qf();case 59:return _l();case 131:case 118:case 152:case 141:case 142:case 135:case 85:case 92:case 93:case 100:case 121:case 122:case 123:case 126:case 124:case 145:case 157:if(Ys())return _l();break}return dc()}function fl(Le){return Le.kind===135}function _l(){var Le=e.some(Rt(function(){return gl(),Fc()}),fl);if(Le){var Nr=cu();if(Nr)return Nr}var ri=Ue(),di=fr(),Mi=gl(),st=Fc();if(Le){for(var ra=0,Ta=st;ra=0),e.Debug.assert(Na<=co),e.Debug.assert(co<=qo.length),!m(qo,Na))return;var ts,vs,Ac,Is,Qu,sc=[],bc=[];return D.scanRange(Na+3,In-5,function(){var It=1,Ma,aa=Na-(qo.lastIndexOf(`\n`,Na)+1)+4;function Ja(Js){Ma||(Ma=aa),sc.push(Js),aa+=Js.length}for(vi();Up(5););Up(4)&&(It=0,aa=0);e:for(;;){switch(De()){case 59:It===0||It===1?(Yu(sc),Qu||(Qu=Ue()),Vs(W(aa)),It=0,Ma=void 0):Ja(D.getTokenText());break;case 4:sc.push(D.getTokenText()),It=0,aa=0;break;case 41:var _n=D.getTokenText();It===1||It===2?(It=2,Ja(_n)):(It=1,aa+=_n.length);break;case 5:var ro=D.getTokenText();It===2?sc.push(ro):Ma!==void 0&&aa+ro.length>Ma&&sc.push(ro.slice(Ma-aa)),aa+=ro.length;break;case 1:break e;case 18:It=2;var as=D.getStartPos(),cc=D.getTextPos()-1,Sc=rt(cc);if(Sc){Is||Mc(sc),bc.push(Bi(ge.createJSDocText(sc.join(\"\")),Is!=null?Is:Na,as)),bc.push(Sc),sc=[],Is=D.getTextPos();break}default:It=2,Ja(D.getTokenText());break}vi()}Yu(sc),bc.length&&sc.length&&bc.push(Bi(ge.createJSDocText(sc.join(\"\")),Is!=null?Is:Na,Qu)),bc.length&&ts&&e.Debug.assertIsDefined(Qu,\"having parsed tags implies that the end of the comment span should be set\");var hu=ts&&Cn(ts,vs,Ac);return Bi(ge.createJSDocComment(bc.length?Cn(bc,Na,Qu):sc.length?sc.join(\"\"):void 0,hu),Na,co)});function Mc(It){for(;It.length&&(It[0]===`\n`||It[0]===\"\\r\");)It.shift()}function Yu(It){for(;It.length&&It[It.length-1].trim()===\"\";)It.pop()}function Rl(){for(;;){if(vi(),De()===1)return!0;if(!(De()===5||De()===4))return!1}}function Lc(){if(!((De()===5||De()===4)&&Rt(Rl)))for(;De()===5||De()===4;)vi()}function _(){if((De()===5||De()===4)&&Rt(Rl))return\"\";for(var It=D.hasPrecedingLineBreak(),Ma=!1,aa=\"\";It&&De()===41||De()===5||De()===4;)aa+=D.getTokenText(),De()===4?(It=!0,Ma=!0,aa=\"\"):De()===41&&(It=!1),vi();return Ma?aa:\"\"}function W(It){e.Debug.assert(De()===59);var Ma=D.getTokenPos();vi();var aa=ff(void 0),Ja=_(),_n;switch(aa.escapedText){case\"author\":_n=Jt(Ma,aa,It,Ja);break;case\"implements\":_n=Xf(Ma,aa,It,Ja);break;case\"augments\":case\"extends\":_n=bd(Ma,aa,It,Ja);break;case\"class\":case\"constructor\":_n=kf(Ma,ge.createJSDocClassTag,aa,It,Ja);break;case\"public\":_n=kf(Ma,ge.createJSDocPublicTag,aa,It,Ja);break;case\"private\":_n=kf(Ma,ge.createJSDocPrivateTag,aa,It,Ja);break;case\"protected\":_n=kf(Ma,ge.createJSDocProtectedTag,aa,It,Ja);break;case\"readonly\":_n=kf(Ma,ge.createJSDocReadonlyTag,aa,It,Ja);break;case\"override\":_n=kf(Ma,ge.createJSDocOverrideTag,aa,It,Ja);break;case\"deprecated\":Ur=!0,_n=kf(Ma,ge.createJSDocDeprecatedTag,aa,It,Ja);break;case\"this\":_n=Gg(Ma,aa,It,Ja);break;case\"enum\":_n=Af(Ma,aa,It,Ja);break;case\"arg\":case\"argument\":case\"param\":return jp(Ma,aa,2,It);case\"return\":case\"returns\":_n=Om(Ma,aa,It,Ja);break;case\"template\":_n=Lm(Ma,aa,It,Ja);break;case\"type\":_n=Fm(Ma,aa,It,Ja);break;case\"typedef\":_n=Hg(Ma,aa,It,Ja);break;case\"callback\":_n=fg(Ma,aa,It,Ja);break;case\"see\":_n=Vg(Ma,aa,It,Ja);break;default:_n=vo(Ma,aa,It,Ja);break}return _n}function Te(It,Ma,aa,Ja){return Ja||(aa+=Ma-It),cr(aa,Ja.slice(aa))}function cr(It,Ma){var aa=Ue(),Ja=[],_n=[],ro,as=0,cc=!0,Sc;function hu(Sd){Sc||(Sc=It),Ja.push(Sd),It+=Sd.length}Ma!==void 0&&(Ma!==\"\"&&hu(Ma),as=1);var Js=De();e:for(;;){switch(Js){case 4:as=0,Ja.push(D.getTokenText()),It=0;break;case 59:if(as===3||as===2&&(!cc||Rt(ni))){Ja.push(D.getTokenText());break}D.setTextPos(D.getTextPos()-1);case 1:break e;case 5:if(as===2||as===3)hu(D.getTokenText());else{var Qf=D.getTokenText();Sc!==void 0&&It+Qf.length>Sc&&Ja.push(Qf.slice(Sc-It)),It+=Qf.length}break;case 18:as=2;var go=D.getStartPos(),Vd=D.getTextPos()-1,X_=rt(Vd);X_?(_n.push(Bi(ge.createJSDocText(Ja.join(\"\")),ro!=null?ro:aa,go)),_n.push(X_),Ja=[],ro=D.getTextPos()):hu(D.getTokenText());break;case 61:as===3?as=2:as=3,hu(D.getTokenText());break;case 41:if(as===0){as=1,It+=1;break}default:as!==3&&(as=2),hu(D.getTokenText());break}cc=De()===5,Js=vi()}if(Mc(Ja),Yu(Ja),_n.length)return Ja.length&&_n.push(Bi(ge.createJSDocText(Ja.join(\"\")),ro!=null?ro:aa)),Cn(_n,aa,D.getTextPos());if(Ja.length)return Ja.join(\"\")}function ni(){var It=vi();return It===5||It===4}function rt(It){var Ma=Ii(yt);if(!!Ma){vi(),Lc();var aa=Ue(),Ja=e.tokenIsIdentifierOrKeyword(De())?ds(!0):void 0;if(Ja)for(;De()===80;)nt(),vi(),Ja=Bi(ge.createJSDocMemberName(Ja,eo()),aa);for(var _n=[];De()!==19&&De()!==4&&De()!==1;)_n.push(D.getTokenText()),vi();var ro=Ma===\"link\"?ge.createJSDocLink:Ma===\"linkcode\"?ge.createJSDocLinkCode:ge.createJSDocLinkPlain;return Bi(ro(Ja,_n.join(\"\")),It,D.getTextPos())}}function yt(){if(_(),De()===18&&vi()===59&&e.tokenIsIdentifierOrKeyword(vi())){var It=D.getTokenValue();if(Xa(It))return It}}function Xa(It){return It===\"link\"||It===\"linkcode\"||It===\"linkplain\"}function vo(It,Ma,aa,Ja){return Bi(ge.createJSDocUnknownTag(Ma,Te(It,Ue(),aa,Ja)),It)}function Vs(It){!It||(ts?ts.push(It):(ts=[It],vs=It.pos),Ac=It.end)}function H_(){return _(),De()===18?ri():void 0}function y_(){var It=Up(22);It&&Lc();var Ma=Up(61),aa=Rm();return Ma&&Qa(61),It&&(Lc(),At(63)&&ns(),ui(23)),{name:aa,isBracketed:It}}function Dd(It){switch(It.kind){case 148:return!0;case 183:return Dd(It.elementType);default:return e.isTypeReferenceNode(It)&&e.isIdentifier(It.typeName)&&It.typeName.escapedText===\"Object\"&&!It.typeArguments}}function jp(It,Ma,aa,Ja){var _n=H_(),ro=!_n;_();var as=y_(),cc=as.name,Sc=as.isBracketed,hu=_();ro&&!Rt(yt)&&(_n=H_());var Js=Te(It,Ue(),Ja,hu),Qf=aa!==4&&lg(_n,cc,aa,Ja);Qf&&(_n=Qf,ro=!0);var go=aa===1?ge.createJSDocPropertyTag(Ma,cc,Sc,_n,ro,Js):ge.createJSDocParameterTag(Ma,cc,Sc,_n,ro,Js);return Bi(go,It)}function lg(It,Ma,aa,Ja){if(It&&Dd(It.type)){for(var _n=Ue(),ro=void 0,as=void 0;ro=Ii(function(){return Bl(aa,Ja,Ma)});)(ro.kind===340||ro.kind===347)&&(as=e.append(as,ro));if(as){var cc=Bi(ge.createJSDocTypeLiteral(as,It.type.kind===183),_n);return Bi(ge.createJSDocTypeExpression(cc),_n)}}}function Om(It,Ma,aa,Ja){e.some(ts,e.isJSDocReturnTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=H_();return Bi(ge.createJSDocReturnTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Fm(It,Ma,aa,Ja){e.some(ts,e.isJSDocTypeTag)&&nr(Ma.pos,D.getTokenPos(),e.Diagnostics._0_tag_already_specified,Ma.escapedText);var _n=ri(!0),ro=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocTypeTag(Ma,_n,ro),It)}function Vg(It,Ma,aa,Ja){var _n=De()===22||Rt(function(){return vi()===59&&e.tokenIsIdentifierOrKeyword(vi())&&Xa(D.getTokenValue())}),ro=_n?void 0:di(),as=aa!==void 0&&Ja!==void 0?Te(It,Ue(),aa,Ja):void 0;return Bi(ge.createJSDocSeeTag(Ma,ro,as),It)}function Jt(It,Ma,aa,Ja){var _n=Ue(),ro=ml(),as=D.getStartPos(),cc=Te(It,as,aa,Ja);cc||(as=D.getStartPos());var Sc=typeof cc!=\"string\"?Cn(e.concatenate([Bi(ro,_n,as)],cc),_n):ro.text+cc;return Bi(ge.createJSDocAuthorTag(Ma,Sc),It)}function ml(){for(var It=[],Ma=!1,aa=D.getToken();aa!==1&&aa!==4;){if(aa===29)Ma=!0;else{if(aa===59&&!Ma)break;if(aa===31&&Ma){It.push(D.getTokenText()),D.setTextPos(D.getTokenPos()+1);break}}It.push(D.getTokenText()),aa=vi()}return ge.createJSDocText(It.join(\"\"))}function Xf(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocImplementsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function bd(It,Ma,aa,Ja){var _n=lf();return Bi(ge.createJSDocAugmentsTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function lf(){var It=at(18),Ma=Ue(),aa=Kg(),Ja=m_(),_n=ge.createExpressionWithTypeArguments(aa,Ja),ro=Bi(_n,Ma);return It&&ui(19),ro}function Kg(){for(var It=Ue(),Ma=ff();at(24);){var aa=ff();Ma=Bi(ge.createPropertyAccessExpression(Ma,aa),It)}return Ma}function kf(It,Ma,aa,Ja,_n){return Bi(Ma(aa,Te(It,Ue(),Ja,_n)),It)}function Gg(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocThisTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Af(It,Ma,aa,Ja){var _n=ri(!0);return Lc(),Bi(ge.createJSDocEnumTag(Ma,_n,Te(It,Ue(),aa,Ja)),It)}function Hg(It,Ma,aa,Ja){var _n,ro=H_();_();var as=Wd();Lc();var cc=cr(aa),Sc;if(!ro||Dd(ro.type)){for(var hu=void 0,Js=void 0,Qf=void 0,go=!1;hu=Ii(function(){return Xg(aa)});)if(go=!0,hu.kind===343)if(Js){var Vd=Ar(e.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);Vd&&e.addRelatedInfo(Vd,e.createDetachedDiagnostic(Re,0,0,e.Diagnostics.The_tag_was_first_specified_here));break}else Js=hu;else Qf=e.append(Qf,hu);if(go){var X_=ro&&ro.type.kind===183,Sd=ge.createJSDocTypeLiteral(Qf,X_);ro=Js&&Js.typeExpression&&!Dd(Js.typeExpression.type)?Js.typeExpression:Bi(Sd,It),Sc=ro.end}}Sc=Sc||cc!==void 0?Ue():((_n=as!=null?as:ro)!==null&&_n!==void 0?_n:Ma).end,cc||(cc=Te(It,Sc,aa,Ja));var Yg=ge.createJSDocTypedefTag(Ma,ro,as,cc);return Bi(Yg,It,Sc)}function Wd(It){var Ma=D.getTokenPos();if(!!e.tokenIsIdentifierOrKeyword(De())){var aa=ff();if(at(24)){var Ja=Wd(!0),_n=ge.createModuleDeclaration(void 0,void 0,aa,Ja,It?4:void 0);return Bi(_n,Ma)}return It&&(aa.isInJSDocNamespace=!0),aa}}function qd(It){for(var Ma=Ue(),aa,Ja;aa=Ii(function(){return Bl(4,It)});)Ja=e.append(Ja,aa);return Cn(Ja||[],Ma)}function fg(It,Ma,aa,Ja){var _n=Wd();Lc();var ro=cr(aa),as=qd(aa),cc=Ii(function(){if(Up(59)){var Js=W(aa);if(Js&&Js.kind===341)return Js}}),Sc=Bi(ge.createJSDocSignature(void 0,as,cc),It);ro||(ro=Te(It,Ue(),aa,Ja));var hu=ro!==void 0?Ue():Sc.end;return Bi(ge.createJSDocCallbackTag(Ma,Sc,_n,ro),It,hu)}function Mm(It,Ma){for(;!e.isIdentifier(It)||!e.isIdentifier(Ma);)if(!e.isIdentifier(It)&&!e.isIdentifier(Ma)&&It.right.escapedText===Ma.right.escapedText)It=It.left,Ma=Ma.left;else return!1;return It.escapedText===Ma.escapedText}function Xg(It){return Bl(1,It)}function Bl(It,Ma,aa){for(var Ja=!0,_n=!1;;)switch(vi()){case 59:if(Ja){var ro=Qg(It,Ma);return ro&&(ro.kind===340||ro.kind===347)&&It!==4&&aa&&(e.isIdentifier(ro.name)||!Mm(aa,ro.name.left))?!1:ro}_n=!1;break;case 4:Ja=!0,_n=!1;break;case 41:_n&&(Ja=!1),_n=!0;break;case 79:Ja=!1;break;case 1:return!1}}function Qg(It,Ma){e.Debug.assert(De()===59);var aa=D.getStartPos();vi();var Ja=ff();Lc();var _n;switch(Ja.escapedText){case\"type\":return It===1&&Fm(aa,Ja);case\"prop\":case\"property\":_n=1;break;case\"arg\":case\"argument\":case\"param\":_n=6;break;default:return!1}return It&_n?jp(aa,Ja,It,Ma):!1}function _g(){var It=Ue(),Ma=Up(22);Ma&&Lc();var aa=ff(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),Ja;if(Ma&&(Lc(),ui(63),Ja=Gi(8388608,al),ui(23)),!e.nodeIsMissing(aa))return Bi(ge.createTypeParameterDeclaration(void 0,aa,void 0,Ja),It)}function Qc(){var It=Ue(),Ma=[];do{Lc();var aa=_g();aa!==void 0&&Ma.push(aa),_()}while(Up(27));return Cn(Ma,It)}function Lm(It,Ma,aa,Ja){var _n=De()===18?ri():void 0,ro=Qc();return Bi(ge.createJSDocTemplateTag(Ma,_n,ro,Te(It,Ue(),aa,Ja)),It)}function Up(It){return De()===It?(vi(),!0):!1}function Rm(){var It=ff();for(at(22)&&ui(23);at(24);){var Ma=ff();at(22)&&ui(23),It=Ji(It,Ma)}return It}function ff(It){if(!e.tokenIsIdentifierOrKeyword(De()))return kn(79,!It,It||e.Diagnostics.Identifier_expected);Cr++;var Ma=D.getTokenPos(),aa=D.getTextPos(),Ja=De(),_n=xn(D.getTokenValue()),ro=Bi(ge.createIdentifier(_n,void 0,Ja),Ma,aa);return vi(),ro}}})(G_=d.JSDocParser||(d.JSDocParser={}))})(X||(X={}));var $;(function(d){function D(Ee,He,rr,Ie){if(Ie=Ie||e.Debug.shouldAssert(2),ge(Ee,He,rr,Ie),e.textChangeRangeIsUnchanged(rr))return Ee;if(Ee.statements.length===0)return X.parseSourceFile(Ee.fileName,He,Ee.languageVersion,void 0,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);var _e=Ee;e.Debug.assert(!_e.hasBeenIncrementallyParsed),_e.hasBeenIncrementallyParsed=!0,X.fixupParentReferences(_e);var we=Ee.text,de=Re(Ee),ye=Z(Ee,rr);ge(Ee,He,ye,Ie),e.Debug.assert(ye.span.start<=rr.span.start),e.Debug.assert(e.textSpanEnd(ye.span)===e.textSpanEnd(rr.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(ye))===e.textSpanEnd(e.textChangeRangeNewSpan(rr)));var Ae=e.textChangeRangeNewSpan(ye).length-ye.span.length;Fe(_e,ye.span.start,e.textSpanEnd(ye.span),e.textSpanEnd(e.textChangeRangeNewSpan(ye)),Ae,we,He,Ie);var er=X.parseSourceFile(Ee.fileName,He,Ee.languageVersion,de,!0,Ee.scriptKind,Ee.setExternalModuleIndicator);return er.commentDirectives=fe(Ee.commentDirectives,er.commentDirectives,ye.span.start,e.textSpanEnd(ye.span),Ae,we,He,Ie),er.impliedNodeFormat=Ee.impliedNodeFormat,er}d.updateSourceFile=D;function fe(Ee,He,rr,Ie,_e,we,de,ye){if(!Ee)return He;for(var Ae,er=!1,ir=0,Cr=Ee;irIe){n();var Ne={range:{pos:Br.pos+_e,end:Br.end+_e},type:Er};Ae=e.append(Ae,Ne),ye&&e.Debug.assert(we.substring(Br.pos,Br.end)===de.substring(Ne.range.pos,Ne.range.end))}}return n(),Ae;function n(){er||(er=!0,Ae?He&&Ae.push.apply(Ae,He):Ae=He)}}function g(Ee,He,rr,Ie,_e,we){He?ye(Ee):de(Ee);return;function de(Ae){var er=\"\";if(we&&ne(Ae)&&(er=Ie.substring(Ae.pos,Ae.end)),Ae._children&&(Ae._children=void 0),e.setTextRangePosEnd(Ae,Ae.pos+rr,Ae.end+rr),we&&ne(Ae)&&e.Debug.assert(er===_e.substring(Ae.pos,Ae.end)),se(Ae,de,ye),e.hasJSDocNodes(Ae))for(var ir=0,Cr=Ae.jsDoc;ir=He,\"Adjusting an element that was entirely before the change range\"),e.Debug.assert(Ee.pos<=rr,\"Adjusting an element that was entirely after the change range\"),e.Debug.assert(Ee.pos<=Ee.end);var we=Math.min(Ee.pos,Ie),de=Ee.end>=rr?Ee.end+_e:Math.min(Ee.end,Ie);e.Debug.assert(we<=de),Ee.parent&&(e.Debug.assertGreaterThanOrEqual(we,Ee.parent.pos),e.Debug.assertLessThanOrEqual(de,Ee.parent.end)),e.setTextRangePosEnd(Ee,we,de)}function We(Ee,He){if(He){var rr=Ee.pos,Ie=function(ye){e.Debug.assert(ye.pos>=rr),rr=ye.end};if(e.hasJSDocNodes(Ee))for(var _e=0,we=Ee.jsDoc;_err){g(ir,!1,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){if(ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e),se(ir,Ae,er),e.hasJSDocNodes(ir))for(var Ye=0,Br=ir.jsDoc;Yerr){g(ir,!0,_e,we,de,ye);return}var Cr=ir.end;if(Cr>=He){ir.intersectsChange=!0,ir._children=void 0,ue(ir,He,rr,Ie,_e);for(var Ye=0,Br=ir;Ye0&&_e<=rr;_e++){var we=Be(Ee,Ie);e.Debug.assert(we.pos<=Ie);var de=we.pos;Ie=Math.max(0,de-1)}var ye=e.createTextSpanFromBounds(Ie,e.textSpanEnd(He.span)),Ae=He.newLength+(He.span.start-Ie);return e.createTextChangeRange(ye,Ae)}function Be(Ee,He){var rr=Ee,Ie;if(se(Ee,de),Ie){var _e=we(Ie);_e.pos>rr.pos&&(rr=_e)}return rr;function we(ye){for(;;){var Ae=e.getLastChild(ye);if(Ae)ye=Ae;else return ye}}function de(ye){if(!e.nodeIsMissing(ye))if(ye.pos<=He){if(ye.pos>=rr.pos&&(rr=ye),HeHe),!0}}function ge(Ee,He,rr,Ie){var _e=Ee.text;if(rr&&(e.Debug.assert(_e.length-rr.span.length+rr.newLength===He.length),Ie||e.Debug.shouldAssert(3))){var we=_e.substr(0,rr.span.start),de=He.substr(0,rr.span.start);e.Debug.assert(we===de);var ye=_e.substring(e.textSpanEnd(rr.span),_e.length),Ae=He.substring(e.textSpanEnd(e.textChangeRangeNewSpan(rr)),He.length);e.Debug.assert(ye===Ae)}}function Re(Ee){var He=Ee.statements,rr=0;e.Debug.assert(rr=er.pos&&de=er.pos&&ded.checkJsDirective.pos)&&(d.checkJsDirective={enabled:g===\"ts-check\",end:ge.range.end,pos:ge.range.pos})});break}case\"jsx\":case\"jsxfrag\":case\"jsximportsource\":case\"jsxruntime\":return;default:e.Debug.fail(\"Unhandled pragma kind\")}})}e.processPragmasIntoFields=L;var P=new e.Map;function k(d){if(P.has(d))return P.get(d);var D=new RegExp(\"(\\\\s\".concat(d,`\\\\s*=\\\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))`),\"im\");return P.set(d,D),D}var Y=/^\\/\\/\\/\\s*<(\\S+)\\s.*?\\/>/im,U=/^\\/\\/\\/?\\s*@(\\S+)\\s*(.*)\\s*$/im;function j(d,D,fe){var g=D.kind===2&&Y.exec(fe);if(g){var ne=g[1].toLowerCase(),ue=e.commentPragmas[ne];if(!ue||!(ue.kind&1))return;if(ue.args){for(var We={},Fe=0,Z=ue.args;Fe=Wi.length)break;var nt=Li;if(Wi.charCodeAt(nt)===34){for(Li++;Li32;)Li++;ct.push(Wi.substring(nt,Li))}}vi(ct)}}e.parseCommandLineWorker=K;function b(Pe,Ue,fr,De,gr,Vr){if(De.isTSConfigOnly){var Tr=Pe[Ue];Tr===\"null\"?(gr[De.name]=void 0,Ue++):De.type===\"boolean\"?Tr===\"false\"?(gr[De.name]=Zt(De,!1,Vr),Ue++):(Tr===\"true\"&&Ue++,Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line,De.name))):(Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line,De.name)),Tr&&!e.startsWith(Tr,\"-\")&&Ue++)}else if(!Pe[Ue]&&De.type!==\"boolean\"&&Vr.push(e.createCompilerDiagnostic(fr.optionTypeMismatchDiagnostic,De.name,ue(De))),Pe[Ue]!==\"null\")switch(De.type){case\"number\":gr[De.name]=Zt(De,parseInt(Pe[Ue]),Vr),Ue++;break;case\"boolean\":var Tr=Pe[Ue];gr[De.name]=Zt(De,Tr!==\"false\",Vr),(Tr===\"false\"||Tr===\"true\")&&Ue++;break;case\"string\":gr[De.name]=Zt(De,Pe[Ue]||\"\",Vr),Ue++;break;case\"list\":var vi=oe(De,Pe[Ue],Vr);gr[De.name]=vi||[],vi&&Ue++;break;default:gr[De.name]=G(De,Pe[Ue],Vr),Ue++;break}else gr[De.name]=void 0,Ue++;return Ue}e.compilerOptionsDidYouMeanDiagnostics={alternateMode:le,getOptionsNameMap:Q,optionDeclarations:e.optionDeclarations,unknownOptionDiagnostic:e.Diagnostics.Unknown_compiler_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_compiler_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Compiler_option_0_expects_an_argument};function se(Pe,Ue){return K(e.compilerOptionsDidYouMeanDiagnostics,Pe,Ue)}e.parseCommandLine=se;function J(Pe,Ue){return ie(Q,Pe,Ue)}e.getOptionFromName=J;function ie(Pe,Ue,fr){fr===void 0&&(fr=!1),Ue=Ue.toLowerCase();var De=Pe(),gr=De.optionsNameMap,Vr=De.shortOptionNames;if(fr){var Tr=Vr.get(Ue);Tr!==void 0&&(Ue=Tr)}return gr.get(Ue)}var R;function q(){return R||(R=B(e.buildOpts))}var O={diagnostic:e.Diagnostics.Compiler_option_0_may_not_be_used_with_build,getOptionsNameMap:Q},ve={alternateMode:O,getOptionsNameMap:q,optionDeclarations:e.buildOpts,unknownOptionDiagnostic:e.Diagnostics.Unknown_build_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_build_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Build_option_0_requires_a_value_of_type_1};function ee(Pe){var Ue=K(ve,Pe),fr=Ue.options,De=Ue.watchOptions,gr=Ue.fileNames,Vr=Ue.errors,Tr=fr;return gr.length===0&&gr.push(\".\"),Tr.clean&&Tr.force&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"force\")),Tr.clean&&Tr.verbose&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"verbose\")),Tr.clean&&Tr.watch&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"clean\",\"watch\")),Tr.watch&&Tr.dry&&Vr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,\"watch\",\"dry\")),{buildOptions:Tr,watchOptions:De,projects:gr,errors:Vr}}e.parseBuildCommand=ee;function he(Pe){for(var Ue=[],fr=1;fr=0)return Tr.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,Ve(Ve([],Vr,!0),[Yi],!1).join(\" -> \"))),{raw:Pe||g(Ue,Tr)};var Wi=Pe?yr(Pe,fr,De,gr,Tr):Ir(Ue,fr,De,gr,Tr);if(!((Ui=Wi.options)===null||Ui===void 0)&&Ui.paths&&(Wi.options.pathsBasePath=De),Wi.extendedConfigPath){Vr=Vr.concat([Yi]);var ct=Ur(Ue,Wi.extendedConfigPath,fr,Vr,Tr,vi);if(ct&&Ge(ct)){var Li=ct.raw,nt=Wi.raw,Mt,xt=function(ut){!nt[ut]&&Li[ut]&&(nt[ut]=e.map(Li[ut],function(Dt){return e.isRootedDiskPath(Dt)?Dt:e.combinePaths(Mt||(Mt=e.convertToRelativePath(e.getDirectoryPath(Wi.extendedConfigPath),De,e.createGetCanonicalFileName(fr.useCaseSensitiveFileNames))),Dt)}))};xt(\"include\"),xt(\"exclude\"),xt(\"files\"),nt.compileOnSave===void 0&&(nt.compileOnSave=Li.compileOnSave),Wi.options=e.assign({},ct.options,Wi.options),Wi.watchOptions=Wi.watchOptions&&ct.watchOptions?e.assign({},ct.watchOptions,Wi.watchOptions):Wi.watchOptions||ct.watchOptions}}return Wi}function yr(Pe,Ue,fr,De,gr){e.hasProperty(Pe,\"excludes\")&&gr.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var Vr=qr(Pe.compilerOptions,fr,gr,De),Tr=Di(Pe.typeAcquisition||Pe.typingOptions,fr,gr,De),vi=wi(Pe.watchOptions,fr,gr);Pe.compileOnSave=ii(Pe,fr,gr);var Ui;if(Pe.extends)if(!e.isString(Pe.extends))gr.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,\"extends\",\"string\"));else{var Yi=De?Ye(De,fr):fr;Ui=wr(Pe.extends,Ue,Yi,gr,e.createCompilerDiagnostic)}return{raw:Pe,options:Vr,watchOptions:vi,typeAcquisition:Tr,extendedConfigPath:Ui}}function Ir(Pe,Ue,fr,De,gr){var Vr=or(De),Tr,vi,Ui,Yi,Wi,ct={onSetValidOptionKeyValueInParent:function(nt,Mt,xt){var ut;switch(nt){case\"compilerOptions\":ut=Vr;break;case\"watchOptions\":ut=Ui||(Ui={});break;case\"typeAcquisition\":ut=Tr||(Tr=si(De));break;case\"typingOptions\":ut=vi||(vi=si(De));break;default:e.Debug.fail(\"Unknown option\")}ut[Mt.name]=Gi(Mt,fr,xt)},onSetValidOptionKeyValueInRoot:function(nt,Mt,xt,ut){switch(nt){case\"extends\":var Dt=De?Ye(De,fr):fr;Yi=wr(xt,Ue,Dt,gr,function(Rt,Ii){return e.createDiagnosticForNodeInSourceFile(Pe,ut,Rt,Ii)});return}},onSetUnknownOptionKeyValueInRoot:function(nt,Mt,xt,ut){nt===\"excludes\"&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Mt,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude)),e.find(w,function(Dt){return Dt.name===nt})&&(Wi=e.append(Wi,Mt))}},Li=fe(Pe,gr,!0,ct);return Tr||(vi?Tr=vi.enableAutoDiscovery!==void 0?{enable:vi.enableAutoDiscovery,include:vi.include,exclude:vi.exclude}:vi:Tr=si(De)),Wi&&Li&&Li.compilerOptions===void 0&&gr.push(e.createDiagnosticForNodeInSourceFile(Pe,Wi[0],e.Diagnostics._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file,e.getTextOfPropertyName(Wi[0]))),{raw:Li,options:Vr,watchOptions:Ui,typeAcquisition:Tr,extendedConfigPath:Yi}}function wr(Pe,Ue,fr,De,gr){if(Pe=e.normalizeSlashes(Pe),e.isRootedDiskPath(Pe)||e.startsWith(Pe,\"./\")||e.startsWith(Pe,\"../\")){var Vr=e.getNormalizedAbsolutePath(Pe,fr);if(!Ue.fileExists(Vr)&&!e.endsWith(Vr,\".json\")&&(Vr=\"\".concat(Vr,\".json\"),!Ue.fileExists(Vr))){De.push(gr(e.Diagnostics.File_0_not_found,Pe));return}return Vr}var Tr=e.nodeModuleNameResolver(Pe,e.combinePaths(fr,\"tsconfig.json\"),{moduleResolution:e.ModuleResolutionKind.NodeJs},Ue,void 0,void 0,!0);if(Tr.resolvedModule)return Tr.resolvedModule.resolvedFileName;De.push(gr(e.Diagnostics.File_0_not_found,Pe))}function Ur(Pe,Ue,fr,De,gr,Vr){var Tr,vi=fr.useCaseSensitiveFileNames?Ue:e.toFileNameLowerCase(Ue),Ui,Yi,Wi;if(Vr&&(Ui=Vr.get(vi))?(Yi=Ui.extendedResult,Wi=Ui.extendedConfig):(Yi=$(Ue,function(ct){return fr.readFile(ct)}),Yi.parseDiagnostics.length||(Wi=ur(void 0,Yi,fr,e.getDirectoryPath(Ue),e.getBaseFileName(Ue),De,gr,Vr)),Vr&&Vr.set(vi,{extendedResult:Yi,extendedConfig:Wi})),Pe&&(Pe.extendedSourceFiles=[Yi.fileName],Yi.extendedSourceFiles&&(Tr=Pe.extendedSourceFiles).push.apply(Tr,Yi.extendedSourceFiles)),Yi.parseDiagnostics.length){gr.push.apply(gr,Yi.parseDiagnostics);return}return Wi}function ii(Pe,Ue,fr){if(!e.hasProperty(Pe,e.compileOnSaveCommandLineOption.name))return!1;var De=et(e.compileOnSaveCommandLineOption,Pe.compileOnSave,Ue,fr);return typeof De==\"boolean\"&&De}function mi(Pe,Ue,fr){var De=[],gr=qr(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertCompilerOptionsFromJson=mi;function pe(Pe,Ue,fr){var De=[],gr=Di(Pe,Ue,De,fr);return{options:gr,errors:De}}e.convertTypeAcquisitionFromJson=pe;function or(Pe){var Ue=Pe&&e.getBaseFileName(Pe)===\"jsconfig.json\"?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{};return Ue}function qr(Pe,Ue,fr,De){var gr=or(De);return Xi(U(),Pe,Ue,gr,e.compilerOptionsDidYouMeanDiagnostics,fr),De&&(gr.configFilePath=e.normalizeSlashes(De)),gr}function si(Pe){return{enable:!!Pe&&e.getBaseFileName(Pe)===\"jsconfig.json\",include:[],exclude:[]}}function Di(Pe,Ue,fr,De){var gr=si(De),Vr=N(Pe);return Xi(l(),Vr,Ue,gr,V,fr),gr}function wi(Pe,Ue,fr){return Xi(H(),Pe,Ue,void 0,k,fr)}function Xi(Pe,Ue,fr,De,gr,Vr){if(!!Ue){for(var Tr in Ue){var vi=Pe.get(Tr);vi?(De||(De={}))[vi.name]=et(vi,Ue[Tr],fr,Vr):Vr.push(T(Tr,gr,e.createCompilerDiagnostic))}return De}}function et(Pe,Ue,fr,De){if(We(Pe,Ue)){var gr=Pe.type;if(gr===\"list\"&&e.isArray(Ue))return pi(Pe,Ue,fr,De);if(!e.isString(gr))return _r(Pe,Ue,De);var Vr=Zt(Pe,Ue,De);return Cr(Vr)?Vr:Wt(Pe,fr,Vr)}else De.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,Pe.name,ue(Pe)))}e.convertJsonOption=et;function Gi(Pe,Ue,fr){if(!Cr(fr)){if(Pe.type===\"list\"){var De=Pe;return De.element.isFilePath||!e.isString(De.element.type)?e.filter(e.map(fr,function(gr){return Gi(De.element,Ue,gr)}),function(gr){return De.listPreserveFalsyValues?!0:!!gr}):fr}else if(!e.isString(Pe.type))return Pe.type.get(e.isString(fr)?fr.toLowerCase():fr);return Wt(Pe,Ue,fr)}}function Wt(Pe,Ue,fr){return Pe.isFilePath&&(fr=e.getNormalizedAbsolutePath(fr,Ue),fr===\"\"&&(fr=\".\")),fr}function Zt(Pe,Ue,fr){var De;if(!Cr(Ue)){var gr=(De=Pe.extraValidation)===null||De===void 0?void 0:De.call(Pe,Ue);if(!gr)return Ue;fr.push(e.createCompilerDiagnostic.apply(void 0,gr))}}function _r(Pe,Ue,fr){if(!Cr(Ue)){var De=Ue.toLowerCase(),gr=Pe.type.get(De);if(gr!==void 0)return Zt(Pe,gr,fr);fr.push(p(Pe))}}function pi(Pe,Ue,fr,De){return e.filter(e.map(Ue,function(gr){return et(Pe.element,gr,fr,De)}),function(gr){return Pe.listPreserveFalsyValues?!0:!!gr})}var ae=/(^|\\/)\\*\\*\\/?$/,Xe=/^[^*?]*(?=\\/[^/]*[*?])/;function Jr(Pe,Ue,fr,De,gr){gr===void 0&&(gr=e.emptyArray),Ue=e.normalizePath(Ue);var Vr=e.createGetCanonicalFileName(De.useCaseSensitiveFileNames),Tr=new e.Map,vi=new e.Map,Ui=new e.Map,Yi=Pe.validatedFilesSpec,Wi=Pe.validatedIncludeSpecs,ct=Pe.validatedExcludeSpecs,Li=e.getSupportedExtensions(fr,gr),nt=e.getSupportedExtensionsWithJsonIfResolveJsonModule(fr,Li);if(Yi)for(var Mt=0,xt=Yi;Mt0)for(var Ii=function(wt){if(e.fileExtensionIs(wt,\".json\")){if(!Rt){var na=Wi.filter(function(at){return e.endsWith(at,\".json\")}),Ai=e.map(e.getRegularExpressionsForWildcards(na,Ue,\"files\"),function(at){return\"^\".concat(at,\"$\")});Rt=Ai?Ai.map(function(at){return e.getRegexFromPattern(at,De.useCaseSensitiveFileNames)}):e.emptyArray}var Oi=e.findIndex(Rt,function(at){return at.test(wt)});if(Oi!==-1){var ji=Vr(wt);!Tr.has(ji)&&!Ui.has(ji)&&Ui.set(ji,wt)}return\"continue\"}if(mr(wt,Tr,vi,Li,Vr))return\"continue\";Ar(wt,vi,Li,Vr);var Vi=Vr(wt);!Tr.has(Vi)&&!vi.has(Vi)&&vi.set(Vi,wt)},Ki=0,Fi=De.readDirectory(Ue,e.flatten(nt),ct,Wi,void 0);KiUe}function Sr(Pe,Ue,fr,De){return zr(Pe,e.filter(Ue,function(gr){return!Ze(gr)}),fr,De)}e.matchesExclude=Sr;function zr(Pe,Ue,fr,De,gr){var Vr=e.getRegularExpressionForWildcard(Ue,e.combinePaths(e.normalizePath(De),gr),\"exclude\"),Tr=Vr&&e.getRegexFromPattern(Vr,fr);return Tr?Tr.test(Pe)?!0:!e.hasExtension(Pe)&&Tr.test(e.ensureTrailingDirectorySeparator(Pe)):!1}function Wr(Pe,Ue,fr,De,gr){return Pe.filter(function(Tr){if(!e.isString(Tr))return!1;var vi=Je(Tr,fr);return vi!==void 0&&Ue.push(Vr.apply(void 0,vi)),vi===void 0});function Vr(Tr,vi){var Ui=e.getTsConfigPropArrayElementValue(De,gr,vi);return Ui?e.createDiagnosticForNodeInSourceFile(De,Ui,Tr,vi):e.createCompilerDiagnostic(Tr,vi)}}function Je(Pe,Ue){if(Ue&&ae.test(Pe))return[e.Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe];if(Ze(Pe))return[e.Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,Pe]}function xe(Pe,Ue,fr){var De=Pe.validatedIncludeSpecs,gr=Pe.validatedExcludeSpecs,Vr=e.getRegularExpressionForWildcard(gr,Ue,\"exclude\"),Tr=Vr&&new RegExp(Vr,fr?\"\":\"i\"),vi={};if(De!==void 0){for(var Ui=[],Yi=0,Wi=De;Yi=0;Vr--){var Tr=gr[Vr];if(e.fileExtensionIs(Pe,Tr))return;var vi=De(e.changeExtension(Pe,Tr));Ue.delete(vi)}}function Oe(Pe){var Ue={};for(var fr in Pe)if(Pe.hasOwnProperty(fr)){var De=J(fr);De!==void 0&&(Ue[fr]=nr(Pe[fr],De))}return Ue}e.convertCompilerOptionsForTelemetry=Oe;function nr(Pe,Ue){switch(Ue.type){case\"object\":return\"\";case\"string\":return\"\";case\"number\":return typeof Pe==\"number\"?Pe:\"\";case\"boolean\":return typeof Pe==\"boolean\"?Pe:\"\";case\"list\":var fr=Ue.element;return e.isArray(Pe)?Pe.map(function(De){return nr(De,fr)}):\"\";default:return e.forEachEntry(Ue.type,function(De,gr){if(De===Pe)return gr})}}function Mr(Pe){switch(Pe.type){case\"number\":return 1;case\"boolean\":return!0;case\"string\":var Ue=Pe.defaultValueDescription;return Pe.isFilePath?\"./\".concat(Ue&&typeof Ue==\"string\"?Ue:\"\"):\"\";case\"list\":return[];case\"object\":return{};default:var fr=Pe.type.keys().next();return fr.done?e.Debug.fail(\"Expected 'option.type' to have entries.\"):fr.value}}})(ke||(ke={}));var ke;(function(e){function a(Ze){Ze.trace(e.formatMessage.apply(void 0,arguments))}e.trace=a;function C(Ze,Sr){return!!Ze.traceResolution&&Sr.trace!==void 0}e.isTraceEnabled=C;function w(Ze,Sr){var zr;if(Sr&&Ze){var Wr=Ze.packageJsonContent;typeof Wr.name==\"string\"&&typeof Wr.version==\"string\"&&(zr={name:Wr.name,subModuleName:Sr.path.slice(Ze.packageDirectory.length+e.directorySeparator.length),version:Wr.version})}return Sr&&{path:Sr.path,extension:Sr.ext,packageId:zr}}function B(Ze){return w(void 0,Ze)}function E(Ze){if(Ze)return e.Debug.assert(Ze.packageId===void 0),{path:Ze.path,ext:Ze.extension}}var Q;(function(Ze){Ze[Ze.TypeScript=0]=\"TypeScript\",Ze[Ze.JavaScript=1]=\"JavaScript\",Ze[Ze.Json=2]=\"Json\",Ze[Ze.TSConfig=3]=\"TSConfig\",Ze[Ze.DtsOnly=4]=\"DtsOnly\",Ze[Ze.TsOnly=5]=\"TsOnly\"})(Q||(Q={}));function le(Ze){if(!!Ze)return e.Debug.assert(e.extensionIsTS(Ze.extension)),{fileName:Ze.path,packageId:Ze.packageId}}function N(Ze,Sr,zr,Wr,Je){var xe;return Je?((xe=Je.failedLookupLocations).push.apply(xe,zr),Je):{resolvedModule:Ze&&{resolvedFileName:Ze.path,originalPath:Ze.originalPath===!0?void 0:Ze.originalPath,extension:Ze.extension,isExternalLibraryImport:Sr,packageId:Ze.packageId},failedLookupLocations:zr,resolutionDiagnostics:Wr}}function p(Ze,Sr,zr,Wr){if(!e.hasProperty(Ze,Sr)){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_does_not_have_a_0_field,Sr);return}var Je=Ze[Sr];if(typeof Je!==zr||Je===null){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,Sr,zr,Je===null?\"null\":typeof Je);return}return Je}function m(Ze,Sr,zr,Wr){var Je=p(Ze,Sr,\"string\",Wr);if(Je!==void 0){if(!Je){Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_had_a_falsy_0_field,Sr);return}var xe=e.normalizePath(e.combinePaths(zr,Je));return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_0_field_1_that_references_2,Sr,Je,xe),xe}}function G(Ze,Sr,zr){return m(Ze,\"typings\",Sr,zr)||m(Ze,\"types\",Sr,zr)}function oe(Ze,Sr,zr){return m(Ze,\"tsconfig\",Sr,zr)}function f(Ze,Sr,zr){return m(Ze,\"main\",Sr,zr)}function T(Ze,Sr){var zr=p(Ze,\"typesVersions\",\"object\",Sr);if(zr!==void 0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings),zr}function K(Ze,Sr){var zr=T(Ze,Sr);if(zr!==void 0){if(Sr.traceEnabled)for(var Wr in zr)e.hasProperty(zr,Wr)&&!e.VersionRange.tryParse(Wr)&&a(Sr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range,Wr);var Je=se(zr);if(!Je){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0,e.versionMajorMinor);return}var xe=Je.version,vr=Je.paths;if(typeof vr!=\"object\"){Sr.traceEnabled&&a(Sr.host,e.Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2,\"typesVersions['\".concat(xe,\"']\"),\"object\",typeof vr);return}return Je}}var b;function se(Ze){b||(b=new e.Version(e.version));for(var Sr in Ze)if(!!e.hasProperty(Ze,Sr)){var zr=e.VersionRange.tryParse(Sr);if(zr!==void 0&&zr.test(b))return{version:Sr,paths:Ze[Sr]}}}e.getPackageJsonTypesVersionsPaths=se;function J(Ze,Sr){if(Ze.typeRoots)return Ze.typeRoots;var zr;if(Ze.configFilePath?zr=e.getDirectoryPath(Ze.configFilePath):Sr.getCurrentDirectory&&(zr=Sr.getCurrentDirectory()),zr!==void 0)return ie(zr,Sr)}e.getEffectiveTypeRoots=J;function ie(Ze,Sr){if(!Sr.directoryExists)return[e.combinePaths(Ze,R)];var zr;return e.forEachAncestorDirectory(e.normalizePath(Ze),function(Wr){var Je=e.combinePaths(Wr,R);Sr.directoryExists(Je)&&(zr||(zr=[])).push(Je)}),zr}var R=e.combinePaths(\"node_modules\",\"@types\");function q(Ze,Sr,zr){var Wr=typeof zr.useCaseSensitiveFileNames==\"function\"?zr.useCaseSensitiveFileNames():zr.useCaseSensitiveFileNames;return e.comparePaths(Ze,Sr,!Wr)===0}function O(Ze,Sr,zr,Wr,Je,xe,vr){e.Debug.assert(typeof Ze==\"string\",\"Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.\");var mr=C(zr,Wr);Je&&(zr=Je.commandLine.options);var Ar=Sr?e.getDirectoryPath(Sr):void 0,Oe=Ar?xe&&xe.getOrCreateCacheForDirectory(Ar,Je):void 0,nr=Oe&&Oe.get(Ze,vr);if(nr)return mr&&(a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1,Ze,Sr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName),a(Wr,e.Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1,Ze,Ar),ct(nr)),nr;var Mr=J(zr,Wr);mr&&(Sr===void 0?Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set,Ze):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1,Ze,Mr):Mr===void 0?a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set,Ze,Sr):a(Wr,e.Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2,Ze,Sr,Mr),Je&&a(Wr,e.Diagnostics.Using_compiler_options_of_project_reference_redirect_0,Je.sourceFile.fileName));var Pe=[],Ue=ve(zr);vr===e.ModuleKind.ESNext&&(e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(zr)===e.ModuleResolutionKind.NodeNext)&&(Ue|=d.EsmMode);var fr=Ue&d.Exports?Ue&d.EsmMode?[\"node\",\"import\",\"types\"]:[\"node\",\"require\",\"types\"]:[],De=[],gr={compilerOptions:zr,host:Wr,traceEnabled:mr,failedLookupLocations:Pe,packageJsonInfoCache:xe,features:Ue,conditions:fr,requestContainingDirectory:Ar,reportDiagnostic:function(Mt){return void De.push(Mt)}},Vr=Li(),Tr=!0;Vr||(Vr=nt(),Tr=!1);var vi;if(Vr){var Ui=Vr.fileName,Yi=Vr.packageId,Wi=zr.preserveSymlinks?Ui:ze(Ui,Wr,mr);vi={primary:Tr,resolvedFileName:Wi,originalPath:q(Ui,Wi,Wr)?void 0:Ui,packageId:Yi,isExternalLibraryImport:He(Ui)}}return nr={resolvedTypeReferenceDirective:vi,failedLookupLocations:Pe,resolutionDiagnostics:De},Oe==null||Oe.set(Ze,vr,nr),mr&&ct(nr),nr;function ct(Mt){var xt;!((xt=Mt.resolvedTypeReferenceDirective)===null||xt===void 0)&&xt.resolvedFileName?Mt.resolvedTypeReferenceDirective.packageId?a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,e.packageIdToString(Mt.resolvedTypeReferenceDirective.packageId),Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2,Ze,Mt.resolvedTypeReferenceDirective.resolvedFileName,Mt.resolvedTypeReferenceDirective.primary):a(Wr,e.Diagnostics.Type_reference_directive_0_was_not_resolved,Ze)}function Li(){if(Mr&&Mr.length)return mr&&a(Wr,e.Diagnostics.Resolving_with_primary_search_path_0,Mr.join(\", \")),e.firstDefined(Mr,function(Mt){var xt=e.combinePaths(Mt,Ze),ut=e.getDirectoryPath(xt),Dt=e.directoryProbablyExists(ut,Wr);return!Dt&&mr&&a(Wr,e.Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it,ut),le(Cr(Q.DtsOnly,xt,!Dt,gr))});mr&&a(Wr,e.Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths)}function nt(){var Mt=Sr&&e.getDirectoryPath(Sr);if(Mt!==void 0){mr&&a(Wr,e.Diagnostics.Looking_up_in_node_modules_folder_initial_location_0,Mt);var xt;if(e.isExternalModuleNameRelative(Ze)){var Dt=Re(Mt,Ze).path;xt=Ee(Q.DtsOnly,Dt,!1,gr,!0)}else{var ut=or(Q.DtsOnly,Ze,Mt,gr,void 0,void 0);xt=ut&&ut.value}return le(xt)}else mr&&a(Wr,e.Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder)}}e.resolveTypeReferenceDirective=O;function ve(Ze){return e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.Node16?d.Node16Default:e.getEmitModuleResolutionKind(Ze)===e.ModuleResolutionKind.NodeNext?d.NodeNextDefault:d.None}function ee(Ze,Sr,zr,Wr,Je){var xe={compilerOptions:zr,host:Wr,traceEnabled:C(zr,Wr),failedLookupLocations:[],packageJsonInfoCache:Je==null?void 0:Je.getPackageJsonInfoCache(),conditions:e.emptyArray,features:d.None,requestContainingDirectory:Sr,reportDiagnostic:e.noop};return e.forEachAncestorDirectory(Sr,function(vr){if(e.getBaseFileName(vr)!==\"node_modules\"){var mr=e.combinePaths(vr,\"node_modules\"),Ar=e.combinePaths(mr,Ze);return Ne(Ar,!1,xe)}})}e.resolvePackageNameToPackageJson=ee;function he(Ze,Sr){if(Ze.types)return Ze.types;var zr=[];if(Sr.directoryExists&&Sr.getDirectories){var Wr=J(Ze,Sr);if(Wr)for(var Je=0,xe=Wr;Je0);var Wr={sourceFile:Ze.configFile,commandLine:{options:Ze}};Sr.setOwnMap(Sr.getOrCreateMapOfCacheRedirects(Wr)),zr==null||zr.setOwnMap(zr.getOrCreateMapOfCacheRedirects(Wr))}Sr.setOwnOptions(Ze),zr==null||zr.setOwnOptions(Ze)}}function A(Ze,Sr,zr){return{getOrCreateCacheForDirectory:xe,clear:Wr,update:Je};function Wr(){zr.clear()}function Je(vr){$(vr,zr)}function xe(vr,mr){var Ar=e.toPath(vr,Ze,Sr);return X(zr,mr,Ar,function(){return y()})}}function y(){var Ze=new e.Map,Sr=new e.Map,zr={get:function(Je,xe){return Ze.get(Wr(Je,xe))},set:function(Je,xe,vr){return Ze.set(Wr(Je,xe),vr),zr},delete:function(Je,xe){return Ze.delete(Wr(Je,xe)),zr},has:function(Je,xe){return Ze.has(Wr(Je,xe))},forEach:function(Je){return Ze.forEach(function(xe,vr){var mr=Sr.get(vr),Ar=mr[0],Oe=mr[1];return Je(xe,Ar,Oe)})},size:function(){return Ze.size}};return zr;function Wr(Je,xe){var vr=xe===void 0?Je:\"\".concat(xe,\"|\").concat(Je);return Sr.set(vr,[Je,xe]),vr}}e.createModeAwareCache=y;function V(Ze,Sr,zr){e.Debug.assert(Sr.length===zr.length);for(var Wr=y(),Je=0;Je=0||Ue.indexOf(\".\")>=0||Ue.indexOf(\"node_modules\")>=0)return!1;var fr=e.combinePaths(Ze.packageDirectory,nr),De=e.getNormalizedAbsolutePath(fr,(Pe=(Mr=zr.host).getCurrentDirectory)===null||Pe===void 0?void 0:Pe.call(Mr)),gr=ye(Wr,De,!1,zr);if(gr)return Je=e.appendIfUnique(Je,gr,function(Yi,Wi){return Yi.path===Wi.path}),!0}else if(Array.isArray(nr))for(var Vr=0,Tr=nr;Vr0;){var vr=Ne(e.getPathFromPathComponents(xe),!1,Je);if(vr)return vr;xe.pop()}}e.getPackageScopeForPath=Er;function Ne(Ze,Sr,zr){var Wr,Je,xe,vr=zr.host,mr=zr.traceEnabled,Ar=e.combinePaths(Ze,\"package.json\");if(Sr){zr.failedLookupLocations.push(Ar);return}var Oe=(Wr=zr.packageJsonInfoCache)===null||Wr===void 0?void 0:Wr.getPackageJsonInfo(Ar);if(Oe!==void 0){if(typeof Oe!=\"boolean\")return mr&&a(vr,e.Diagnostics.File_0_exists_according_to_earlier_cached_lookups,Ar),Oe;Oe&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist_according_to_earlier_cached_lookups,Ar),zr.failedLookupLocations.push(Ar);return}var nr=e.directoryProbablyExists(Ze,vr);if(nr&&vr.fileExists(Ar)){var Mr=e.readJson(Ar,vr);mr&&a(vr,e.Diagnostics.Found_package_json_at_0,Ar);var Pe=K(Mr,zr),Ue={packageDirectory:Ze,packageJsonContent:Mr,versionPaths:Pe,resolvedEntrypoints:void 0};return(Je=zr.packageJsonInfoCache)===null||Je===void 0||Je.setPackageJsonInfo(Ar,Ue),Ue}else nr&&mr&&a(vr,e.Diagnostics.File_0_does_not_exist,Ar),(xe=zr.packageJsonInfoCache)===null||xe===void 0||xe.setPackageJsonInfo(Ar,nr),zr.failedLookupLocations.push(Ar)}e.getPackageJsonInfo=Ne;function n(Ze,Sr,zr,Wr,Je,xe){var vr;if(Je)switch(Ze){case Q.JavaScript:case Q.Json:case Q.TsOnly:vr=f(Je,Sr,Wr);break;case Q.TypeScript:vr=G(Je,Sr,Wr)||f(Je,Sr,Wr);break;case Q.DtsOnly:vr=G(Je,Sr,Wr);break;case Q.TSConfig:vr=oe(Je,Sr,Wr);break;default:return e.Debug.assertNever(Ze)}var mr=function(fr,De,gr,Vr){var Tr=er(De,gr,Vr);if(Tr){var vi=lr(fr,Tr);if(vi)return B(vi);Vr.traceEnabled&&a(Vr.host,e.Diagnostics.File_0_has_an_unsupported_extension_so_skipping_it,Tr)}var Ui=fr===Q.DtsOnly?Q.TypeScript:fr,Yi=Vr.features;(Je==null?void 0:Je.type)!==\"module\"&&(Vr.features&=~d.EsmMode);var Wi=Ee(Ui,De,gr,Vr,!1);return Vr.features=Yi,Wi},Ar=vr?!e.directoryProbablyExists(e.getDirectoryPath(vr),Wr.host):void 0,Oe=zr||!e.directoryProbablyExists(Sr,Wr.host),nr=e.combinePaths(Sr,Ze===Q.TSConfig?\"tsconfig\":\"index\");if(xe&&(!vr||e.containsPath(Sr,vr))){var Mr=e.getRelativePathFromDirectory(Sr,vr||nr,!1);Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2,xe.version,e.version,Mr);var Pe=Xi(Ze,Mr,Sr,xe.paths,void 0,mr,Ar||Oe,Wr);if(Pe)return E(Pe.value)}var Ue=vr&&E(mr(Ze,vr,Ar,Wr));if(Ue)return Ue;if(!(Wr.features&d.EsmMode))return we(Ze,nr,Oe,Wr)}function lr(Ze,Sr){var zr=e.tryGetExtensionFromPath(Sr);return zr!==void 0&&be(Ze,zr)?{path:Sr,ext:zr}:void 0}function be(Ze,Sr){switch(Ze){case Q.JavaScript:return Sr===\".js\"||Sr===\".jsx\"||Sr===\".mjs\"||Sr===\".cjs\";case Q.TSConfig:case Q.Json:return Sr===\".json\";case Q.TypeScript:return Sr===\".ts\"||Sr===\".tsx\"||Sr===\".mts\"||Sr===\".cts\"||Sr===\".d.ts\"||Sr===\".d.mts\"||Sr===\".d.cts\";case Q.TsOnly:return Sr===\".ts\"||Sr===\".tsx\"||Sr===\".mts\"||Sr===\".cts\";case Q.DtsOnly:return Sr===\".d.ts\"||Sr===\".d.mts\"||Sr===\".d.cts\"}}function Ge(Ze){var Sr=Ze.indexOf(e.directorySeparator);return Ze[0]===\"@\"&&(Sr=Ze.indexOf(e.directorySeparator,Sr+1)),Sr===-1?{packageName:Ze,rest:\"\"}:{packageName:Ze.slice(0,Sr),rest:Ze.slice(Sr+1)}}e.parsePackageName=Ge;function ur(Ze){return e.every(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,\".\")})}e.allKeysStartWithDot=ur;function yr(Ze){return!e.some(e.getOwnKeys(Ze),function(Sr){return e.startsWith(Sr,\".\")})}function Ir(Ze,Sr,zr,Wr,Je,xe){var vr,mr,Ar=typeof Wr.host.useCaseSensitiveFileNames==\"function\"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,\"dummy\"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!(!nr||!nr.packageJsonContent.exports)&&typeof nr.packageJsonContent.name==\"string\"){var Mr=e.getPathComponents(Sr),Pe=e.getPathComponents(nr.packageJsonContent.name);if(!!e.every(Pe,function(fr,De){return Mr[De]===fr})){var Ue=Mr.slice(Pe.length);return wr(nr,Ze,e.length(Ue)?\".\".concat(e.directorySeparator).concat(Ue.join(e.directorySeparator)):\".\",Wr,Je,xe)}}}function wr(Ze,Sr,zr,Wr,Je,xe){if(!!Ze.packageJsonContent.exports){if(zr===\".\"){var vr=void 0;if(typeof Ze.packageJsonContent.exports==\"string\"||Array.isArray(Ze.packageJsonContent.exports)||typeof Ze.packageJsonContent.exports==\"object\"&&yr(Ze.packageJsonContent.exports)?vr=Ze.packageJsonContent.exports:e.hasProperty(Ze.packageJsonContent.exports,\".\")&&(vr=Ze.packageJsonContent.exports[\".\"]),vr){var mr=mi(Sr,Wr,Je,xe,zr,Ze,!1);return mr(vr,\"\",!1)}}else if(ur(Ze.packageJsonContent.exports)){if(typeof Ze.packageJsonContent.exports!=\"object\")return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0);var Ar=ii(Sr,Wr,Je,xe,zr,Ze.packageJsonContent.exports,Ze,!1);if(Ar)return Ar}return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1,zr,Ze.packageDirectory),ti(void 0)}}function Ur(Ze,Sr,zr,Wr,Je,xe){var vr,mr;if(Sr===\"#\"||e.startsWith(Sr,\"#/\"))return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions,Sr),ti(void 0);var Ar=typeof Wr.host.useCaseSensitiveFileNames==\"function\"?Wr.host.useCaseSensitiveFileNames():Wr.host.useCaseSensitiveFileNames,Oe=e.toPath(e.combinePaths(zr,\"dummy\"),(mr=(vr=Wr.host).getCurrentDirectory)===null||mr===void 0?void 0:mr.call(vr),e.createGetCanonicalFileName(Ar===void 0?!0:Ar)),nr=Er(Oe,Wr.packageJsonInfoCache,Wr.host,Wr.compilerOptions);if(!nr)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve,Oe),ti(void 0);if(!nr.packageJsonContent.imports)return Wr.traceEnabled&&a(Wr.host,e.Diagnostics.package_json_scope_0_has_no_imports_defined,nr.packageDirectory),ti(void 0);var Mr=ii(Ze,Wr,Je,xe,Sr,nr.packageJsonContent.imports,nr,!0);return Mr||(Wr.traceEnabled&&a(Wr.host,e.Diagnostics.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1,Sr,nr.packageDirectory),ti(void 0))}function ii(Ze,Sr,zr,Wr,Je,xe,vr,mr){var Ar=mi(Ze,Sr,zr,Wr,Je,vr,mr);if(!e.endsWith(Je,e.directorySeparator)&&Je.indexOf(\"*\")===-1&&e.hasProperty(xe,Je)){var Oe=xe[Je];return Ar(Oe,\"\",!1)}for(var nr=e.sort(e.filter(e.getOwnKeys(xe),function(Vr){return Vr.indexOf(\"*\")!==-1||e.endsWith(Vr,\"/\")}),function(Vr,Tr){return Vr.length-Tr.length}),Mr=0,Pe=nr;Mr0&&!e.endsWith(Ar,\"/\"))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);if(!e.startsWith(Ar,\"./\")){if(vr&&!e.startsWith(Ar,\"../\")&&!e.startsWith(Ar,\"/\")&&!e.isRootedDiskPath(Ar)){var Mr=nr?Ar.replace(/\\*/g,Oe):Ar+Oe,Pe=ge(Sr.features,Mr,xe.packageDirectory+\"/\",Sr.compilerOptions,Sr.host,zr,[Ze],Wr);return ti(Pe.resolvedModule?{path:Pe.resolvedModule.resolvedFileName,extension:Pe.resolvedModule.extension,packageId:Pe.resolvedModule.packageId,originalPath:Pe.resolvedModule.originalPath}:void 0)}return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0)}var Ue=e.pathIsRelative(Ar)?e.getPathComponents(Ar).slice(1):e.getPathComponents(Ar),fr=Ue.slice(1);if(fr.indexOf(\"..\")>=0||fr.indexOf(\".\")>=0||fr.indexOf(\"node_modules\")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var De=e.combinePaths(xe.packageDirectory,Ar),gr=e.getPathComponents(Oe);if(gr.indexOf(\"..\")>=0||gr.indexOf(\".\")>=0||gr.indexOf(\"node_modules\")>=0)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);var Vr=Mt(nr?De.replace(/\\*/g,Oe):De+Oe),Tr=Dt(Vr,Oe,e.combinePaths(xe.packageDirectory,\"package.json\"),vr);return Tr||ti(w(xe,ye(Ze,Vr,!1,Sr)))}else if(typeof Ar==\"object\"&&Ar!==null)if(Array.isArray(Ar)){if(!e.length(Ar))return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);for(var ct=0,Li=Ar;ct=0||pe(Sr.conditions,Yi)){var Wi=Ar[Yi],Pe=mr(Wi,Oe,nr);if(Pe)return Pe}}return}else if(Ar===null)return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null,xe.packageDirectory,Je),ti(void 0);return Sr.traceEnabled&&a(Sr.host,e.Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1,xe.packageDirectory,Je),ti(void 0);function Mt(Rt){var Ii,Ki;return Rt===void 0?Rt:e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut})(e.getNormalizedAbsolutePath(Rt,(Ki=(Ii=Sr.host).getCurrentDirectory)===null||Ki===void 0?void 0:Ki.call(Ii)))}function xt(Rt,Ii){return e.ensureTrailingDirectorySeparator(e.combinePaths(Rt,Ii))}function ut(){return Sr.host.useCaseSensitiveFileNames?typeof Sr.host.useCaseSensitiveFileNames==\"boolean\"?Sr.host.useCaseSensitiveFileNames:Sr.host.useCaseSensitiveFileNames():!0}function Dt(Rt,Ii,Ki,Fi){var ui,Bt,wt,na;if((Ze===Q.TypeScript||Ze===Q.JavaScript||Ze===Q.Json)&&(Sr.compilerOptions.declarationDir||Sr.compilerOptions.outDir)&&Rt.indexOf(\"/node_modules/\")===-1&&(Sr.compilerOptions.configFile?e.startsWith(Mt(Sr.compilerOptions.configFile.fileName),xe.packageDirectory):!0)){var Ai=e.hostGetCanonicalFileName({useCaseSensitiveFileNames:ut}),Oi=[];if(Sr.compilerOptions.rootDir||Sr.compilerOptions.composite&&Sr.compilerOptions.configFilePath){var ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[]},((Bt=(ui=Sr.host).getCurrentDirectory)===null||Bt===void 0?void 0:Bt.call(ui))||\"\",Ai));Oi.push(ji)}else if(Sr.requestContainingDirectory){var Vi=Mt(e.combinePaths(Sr.requestContainingDirectory,\"index.ts\")),ji=Mt(e.getCommonSourceDirectory(Sr.compilerOptions,function(){return[Vi,Mt(Ki)]},((na=(wt=Sr.host).getCurrentDirectory)===null||na===void 0?void 0:na.call(wt))||\"\",Ai));Oi.push(ji);for(var at=e.ensureTrailingDirectorySeparator(ji);at&&at.length>1;){var At=e.getPathComponents(at);At.pop();var ba=e.getPathFromPathComponents(At);Oi.unshift(ba),at=e.ensureTrailingDirectorySeparator(ba)}}Oi.length>1&&Sr.reportDiagnostic(e.createCompilerDiagnostic(Fi?e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:e.Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate,Ii===\"\"?\".\":Ii,Ki));for(var $a=0,Qa=Oi;$aie&&(ie=ve),ie===1)return ie}return ie}break;case 262:{var ee=0;return e.forEachChild(b,function(he){var F=w(he,se);switch(F){case 0:return;case 2:ee=2;return;case 1:return ee=1,!0;default:e.Debug.assertNever(F)}}),ee}case 261:return C(b,se);case 79:if(b.isInJSDocNamespace)return 0}return 1}function E(b,se){for(var J=b.propertyName||b.name,ie=b.parent;ie;){if(e.isBlock(ie)||e.isModuleBlock(ie)||e.isSourceFile(ie)){for(var R=ie.statements,q=void 0,O=0,ve=R;Oq)&&(q=he),q===1)return q}}if(q!==void 0)return q}ie=ie.parent}return 1}var Q;(function(b){b[b.None=0]=\"None\",b[b.IsContainer=1]=\"IsContainer\",b[b.IsBlockScopedContainer=2]=\"IsBlockScopedContainer\",b[b.IsControlFlowContainer=4]=\"IsControlFlowContainer\",b[b.IsFunctionLike=8]=\"IsFunctionLike\",b[b.IsFunctionExpression=16]=\"IsFunctionExpression\",b[b.HasLocals=32]=\"HasLocals\",b[b.IsInterface=64]=\"IsInterface\",b[b.IsObjectLiteralOrClassExpressionMethodOrAccessor=128]=\"IsObjectLiteralOrClassExpressionMethodOrAccessor\"})(Q||(Q={}));function le(b){return e.Debug.attachFlowNodeDebugInfo(b),b}var N=m();function p(b,se){e.performance.mark(\"beforeBind\"),e.perfLogger.logStartBindFile(\"\"+b.fileName),N(b,se),e.perfLogger.logStopBindFile(),e.performance.mark(\"afterBind\"),e.performance.measure(\"Bind\",\"beforeBind\",\"afterBind\")}e.bindSourceFile=p;function m(){var b,se,J,ie,R,q,O,ve,ee,he,F,x,X,$,A,y,V,L,P,k,Y,U,j=!1,H=0,I,l,d={flags:1},D={flags:1},fe=Ar();function g(ce,Rr,yi,qi,je){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(ce)||b,ce,Rr,yi,qi,je)}function ne(ce,Rr){b=ce,se=Rr,J=e.getEmitScriptTarget(se),U=ue(b,Rr),l=new e.Set,H=0,I=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(d),e.Debug.attachFlowNodeDebugInfo(D),b.locals||(e.tracing===null||e.tracing===void 0||e.tracing.push(\"bind\",\"bindSourceFile\",{path:b.path},!0),Da(b),e.tracing===null||e.tracing===void 0||e.tracing.pop(),b.symbolCount=H,b.classifiableNames=l,Ai()),b=void 0,se=void 0,J=void 0,ie=void 0,R=void 0,q=void 0,O=void 0,ve=void 0,ee=void 0,he=!1,F=void 0,x=void 0,X=void 0,$=void 0,A=void 0,y=void 0,V=void 0,P=void 0,k=!1,j=!1,Y=0}return ne;function ue(ce,Rr){return e.getStrictOptionValue(Rr,\"alwaysStrict\")&&!ce.isDeclarationFile?!0:!!ce.externalModuleIndicator}function We(ce,Rr){return H++,new I(ce,Rr)}function Fe(ce,Rr,yi){ce.flags|=yi,Rr.symbol=ce,ce.declarations=e.appendIfUnique(ce.declarations,Rr),yi&1955&&!ce.exports&&(ce.exports=e.createSymbolTable()),yi&6240&&!ce.members&&(ce.members=e.createSymbolTable()),ce.constEnumOnlyModule&&ce.flags&304&&(ce.constEnumOnlyModule=!1),yi&111551&&e.setValueDeclaration(ce,Rr)}function Z(ce){if(ce.kind===271)return ce.isExportEquals?\"export=\":\"default\";var Rr=e.getNameOfDeclaration(ce);if(Rr){if(e.isAmbientModule(ce)){var yi=e.getTextOfIdentifierOrLiteral(Rr);return e.isGlobalScopeAugmentation(ce)?\"__global\":'\"'.concat(yi,'\"')}if(Rr.kind===162){var qi=Rr.expression;if(e.isStringOrNumericLiteralLike(qi))return e.escapeLeadingUnderscores(qi.text);if(e.isSignedNumericLiteral(qi))return e.tokenToString(qi.operator)+qi.operand.text;e.Debug.fail(\"Only computed properties with literal names have declaration names\")}if(e.isPrivateIdentifier(Rr)){var je=e.getContainingClass(ce);if(!je)return;var Hr=je.symbol;return e.getSymbolNameForPrivateIdentifier(Hr,Rr.escapedText)}return e.isPropertyNameLiteral(Rr)?e.getEscapedTextOfIdentifierOrLiteral(Rr):void 0}switch(ce.kind){case 171:return\"__constructor\";case 179:case 174:case 323:return\"__call\";case 180:case 175:return\"__new\";case 176:return\"__index\";case 272:return\"__export\";case 305:return\"export=\";case 221:if(e.getAssignmentDeclarationKind(ce)===2)return\"export=\";e.Debug.fail(\"Unknown binary declaration kind\");break;case 317:return e.isJSDocConstructSignature(ce)?\"__new\":\"__call\";case 164:e.Debug.assert(ce.parent.kind===317,\"Impossible parameter parent kind\",function(){return\"parent is: \".concat(e.SyntaxKind?e.SyntaxKind[ce.parent.kind]:ce.parent.kind,\", expected JSDocFunctionType\")});var pt=ce.parent,Pt=pt.parameters.indexOf(ce);return\"arg\"+Pt}}function Be(ce){return e.isNamedDeclaration(ce)?e.declarationNameToString(ce.name):e.unescapeLeadingUnderscores(e.Debug.checkDefined(Z(ce)))}function ge(ce,Rr,yi,qi,je,Hr,pt){e.Debug.assert(pt||!e.hasDynamicName(yi));var Pt=e.hasSyntacticModifier(yi,512)||e.isExportSpecifier(yi)&&yi.name.escapedText===\"default\",ga=pt?\"__computed\":Pt&&Rr?\"default\":Z(yi),ua;if(ga===void 0)ua=We(0,\"__missing\");else if(ua=ce.get(ga),qi&2885600&&l.add(ga),!ua)ce.set(ga,ua=We(0,ga)),Hr&&(ua.isReplaceableByMethod=!0);else{if(Hr&&!ua.isReplaceableByMethod)return ua;if(ua.flags&je){if(ua.isReplaceableByMethod)ce.set(ga,ua=We(0,ga));else if(!(qi&3&&ua.flags&67108864)){e.isNamedDeclaration(yi)&&e.setParent(yi.name,yi);var Xn=ua.flags&2?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,jr=!0;(ua.flags&384||qi&384)&&(Xn=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,jr=!1);var fo=!1;e.length(ua.declarations)&&(Pt||ua.declarations&&ua.declarations.length&&yi.kind===271&&!yi.isExportEquals)&&(Xn=e.Diagnostics.A_module_cannot_have_multiple_default_exports,jr=!1,fo=!0);var xs=[];e.isTypeAliasDeclaration(yi)&&e.nodeIsMissing(yi.type)&&e.hasSyntacticModifier(yi,1)&&ua.flags&2887656&&xs.push(g(yi,e.Diagnostics.Did_you_mean_0,\"export type { \".concat(e.unescapeLeadingUnderscores(yi.name.escapedText),\" }\")));var Fo=e.getNameOfDeclaration(yi)||yi;e.forEach(ua.declarations,function(Ao,Ms){var Bs=e.getNameOfDeclaration(Ao)||Ao,xc=g(Bs,Xn,jr?Be(Ao):void 0);b.bindDiagnostics.push(fo?e.addRelatedInfo(xc,g(Fo,Ms===0?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):xc),fo&&xs.push(g(Bs,e.Diagnostics.The_first_export_default_is_here))});var ko=g(Fo,Xn,jr?Be(yi):void 0);b.bindDiagnostics.push(e.addRelatedInfo.apply(void 0,Ve([ko],xs,!1))),ua=We(0,ga)}}}return Fe(ua,yi,qi),ua.parent?e.Debug.assert(ua.parent===Rr,\"Existing symbol parent should match new one\"):ua.parent=Rr,ua}function Re(ce,Rr,yi){var qi=!!(e.getCombinedModifierFlags(ce)&1)||ze(ce);if(Rr&2097152)return ce.kind===275||ce.kind===265&&qi?ge(R.symbol.exports,R.symbol,ce,Rr,yi):ge(R.locals,void 0,ce,Rr,yi);if(e.isJSDocTypeAlias(ce)&&e.Debug.assert(e.isInJSFile(ce)),!e.isAmbientModule(ce)&&(qi||R.flags&64)){if(!R.locals||e.hasSyntacticModifier(ce,512)&&!Z(ce))return ge(R.symbol.exports,R.symbol,ce,Rr,yi);var je=Rr&111551?1048576:0,Hr=ge(R.locals,void 0,ce,je,yi);return Hr.exportSymbol=ge(R.symbol.exports,R.symbol,ce,Rr,yi),ce.localSymbol=Hr,Hr}else return ge(R.locals,void 0,ce,Rr,yi)}function ze(ce){if(ce.parent&&e.isModuleDeclaration(ce)&&(ce=ce.parent),!e.isJSDocTypeAlias(ce))return!1;if(!e.isJSDocEnumTag(ce)&&!!ce.fullName)return!0;var Rr=e.getNameOfDeclaration(ce);return Rr?!!(e.isPropertyAccessEntityNameExpression(Rr.parent)&&Wa(Rr.parent)||e.isDeclaration(Rr.parent)&&e.getCombinedModifierFlags(Rr.parent)&1):!1}function Ee(ce,Rr){var yi=R,qi=q,je=O;if(Rr&1?(ce.kind!==214&&(q=R),R=O=ce,Rr&32&&(R.locals=e.createSymbolTable()),Li(R)):Rr&2&&(O=ce,O.locals=void 0),Rr&4){var Hr=F,pt=x,Pt=X,ga=$,ua=V,Xn=P,jr=k,fo=Rr&16&&!e.hasSyntacticModifier(ce,256)&&!ce.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(ce)||ce.kind===170;fo||(F=le({flags:2}),Rr&144&&(F.node=ce)),$=fo||ce.kind===171||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213)?Ye():void 0,V=void 0,x=void 0,X=void 0,P=void 0,k=!1,_e(ce),ce.flags&=-2817,!(F.flags&1)&&Rr&8&&e.nodeIsPresent(ce.body)&&(ce.flags|=256,k&&(ce.flags|=512),ce.endFlowNode=F),ce.kind===305&&(ce.flags|=Y,ce.endFlowNode=F),$&&(n($,F),F=yr($),(ce.kind===171||ce.kind===170||e.isInJSFile(ce)&&(ce.kind===256||ce.kind===213))&&(ce.returnFlowNode=F)),fo||(F=Hr),x=pt,X=Pt,$=ga,V=ua,P=Xn,k=jr}else Rr&64?(he=!1,_e(ce),ce.flags=he?ce.flags|128:ce.flags&-129):_e(ce);R=yi,q=qi,O=je}function He(ce){rr(ce,function(Rr){return Rr.kind===256?Da(Rr):void 0}),rr(ce,function(Rr){return Rr.kind!==256?Da(Rr):void 0})}function rr(ce,Rr){Rr===void 0&&(Rr=Da),ce!==void 0&&e.forEach(ce,Rr)}function Ie(ce){e.forEachChild(ce,Da,rr)}function _e(ce){var Rr=j;if(j=!1,Ji(ce)){Ie(ce),bo(ce),j=Rr;return}switch(ce.kind>=237&&ce.kind<=253&&!se.allowUnreachableCode&&(ce.flowNode=F),ce.kind){case 241:si(ce);break;case 240:Di(ce);break;case 242:wi(ce);break;case 243:case 244:Xi(ce);break;case 239:et(ce);break;case 247:case 251:Gi(ce);break;case 246:case 245:_r(ce);break;case 252:pi(ce);break;case 249:ae(ce);break;case 263:Xe(ce);break;case 289:Jr(ce);break;case 238:ti(ce);break;case 250:Sr(ce);break;case 219:xe(ce);break;case 220:vr(ce);break;case 221:if(e.isDestructuringAssignment(ce)){j=Rr,mr(ce);return}fe(ce);break;case 215:Oe(ce);break;case 222:nr(ce);break;case 254:Pe(ce);break;case 206:case 207:Yi(ce);break;case 208:Wi(ce);break;case 230:Ui(ce);break;case 345:case 338:case 339:fr(ce);break;case 305:{He(ce.statements),Da(ce.endOfFileToken);break}case 235:case 262:He(ce.statements);break;case 203:Ue(ce);break;case 205:case 204:case 296:case 225:j=Rr;default:Ie(ce);break}bo(ce),j=Rr}function we(ce){switch(ce.kind){case 79:case 80:case 108:case 206:case 207:return ye(ce);case 208:return Ae(ce);case 212:case 230:return we(ce.expression);case 221:return ir(ce);case 219:return ce.operator===53&&we(ce.operand);case 216:return we(ce.expression)}return!1}function de(ce){return e.isDottedName(ce)||(e.isPropertyAccessExpression(ce)||e.isNonNullExpression(ce)||e.isParenthesizedExpression(ce))&&de(ce.expression)||e.isBinaryExpression(ce)&&ce.operatorToken.kind===27&&de(ce.right)||e.isElementAccessExpression(ce)&&(e.isStringOrNumericLiteralLike(ce.argumentExpression)||e.isEntityNameExpression(ce.argumentExpression))&&de(ce.expression)||e.isAssignmentExpression(ce)&&de(ce.left)}function ye(ce){return de(ce)||e.isOptionalChain(ce)&&ye(ce.expression)}function Ae(ce){if(ce.arguments)for(var Rr=0,yi=ce.arguments;Rr=117&&ce.originalKeywordKind<=125?b.bindDiagnostics.push(g(ce,ji(ce),e.declarationNameToString(ce))):ce.originalKeywordKind===132?e.isExternalModule(b)&&e.isInTopLevelContext(ce)?b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module,e.declarationNameToString(ce))):ce.flags&32768&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))):ce.originalKeywordKind===125&&ce.flags&8192&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(ce))))}function ji(ce){return e.getContainingClass(ce)?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:b.externalModuleIndicator?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode}function Vi(ce){ce.escapedText===\"#constructor\"&&(b.parseDiagnostics.length||b.bindDiagnostics.push(g(ce,e.Diagnostics.constructor_is_a_reserved_word,e.declarationNameToString(ce))))}function at(ce){U&&e.isLeftHandSideExpression(ce.left)&&e.isAssignmentOperator(ce.operatorToken.kind)&&Qa(ce,ce.left)}function At(ce){U&&ce.variableDeclaration&&Qa(ce,ce.variableDeclaration.name)}function ba(ce){if(U&&ce.expression.kind===79){var Rr=e.getErrorSpanForNode(b,ce.expression);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,e.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}function $a(ce){return e.isIdentifier(ce)&&(ce.escapedText===\"eval\"||ce.escapedText===\"arguments\")}function Qa(ce,Rr){if(Rr&&Rr.kind===79){var yi=Rr;if($a(yi)){var qi=e.getErrorSpanForNode(b,Rr);b.bindDiagnostics.push(e.createFileDiagnostic(b,qi.start,qi.length,ai(ce),e.idText(yi)))}}}function ai(ce){return e.getContainingClass(ce)?e.Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:b.externalModuleIndicator?e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode:e.Diagnostics.Invalid_use_of_0_in_strict_mode}function Dn(ce){U&&Qa(ce,ce.name)}function ka(ce){return e.getContainingClass(ce)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:b.externalModuleIndicator?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5}function Ba(ce){if(J<2&&O.kind!==305&&O.kind!==261&&!e.isFunctionLikeOrClassStaticBlockDeclaration(O)){var Rr=e.getErrorSpanForNode(b,ce);b.bindDiagnostics.push(e.createFileDiagnostic(b,Rr.start,Rr.length,ka(ce)))}}function pn(ce){J<1&&U&&ce.numericLiteralFlags&32&&b.bindDiagnostics.push(g(ce,e.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode))}function Cn(ce){U&&Qa(ce,ce.operand)}function Bi(ce){U&&(ce.operator===45||ce.operator===46)&&Qa(ce,ce.operand)}function kn(ce){U&&Kn(ce,e.Diagnostics.with_statements_are_not_allowed_in_strict_mode)}function xn(ce){U&&e.getEmitScriptTarget(se)>=2&&(e.isDeclarationStatement(ce.statement)||e.isVariableStatement(ce.statement))&&Kn(ce.label,e.Diagnostics.A_label_is_not_allowed_here)}function Kn(ce,Rr,yi,qi,je){var Hr=e.getSpanOfTokenAtPosition(b,ce.pos);b.bindDiagnostics.push(e.createFileDiagnostic(b,Hr.start,Hr.length,Rr,yi,qi,je))}function Pn(ce,Rr,yi){eo(ce,Rr,Rr,yi)}function eo(ce,Rr,yi,qi){Rn(ce,{pos:e.getTokenPosOfNode(Rr,b),end:yi.end},qi)}function Rn(ce,Rr,yi){var qi=e.createFileDiagnostic(b,Rr.pos,Rr.end-Rr.pos,yi);ce?b.bindDiagnostics.push(qi):b.bindSuggestionDiagnostics=e.append(b.bindSuggestionDiagnostics,Ke(Ke({},qi),{category:e.DiagnosticCategory.Suggestion}))}function Da(ce){if(!!ce){e.setParent(ce,ie),e.tracing&&(ce.tracingPath=b.path);var Rr=U;if(Wn(ce),ce.kind>160){var yi=ie;ie=ce;var qi=ct(ce);qi===0?_e(ce):Ee(ce,qi),ie=yi}else{var yi=ie;ce.kind===1&&(ie=ce),bo(ce),ie=yi}U=Rr}}function bo(ce){if(e.hasJSDocNodes(ce))if(e.isInJSFile(ce))for(var Rr=0,yi=ce.jsDoc;Rr>\",0,Oe),En=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),Wn=Fu(void 0,void 0,void 0,e.emptyArray,Pe,void 0,0,0),to=Fu(void 0,void 0,void 0,e.emptyArray,Oe,void 0,0,0),Co=Fu(void 0,void 0,void 0,e.emptyArray,Bt,void 0,0,0),Ko=zl(nt,Li,!0),Oo=new e.Map,no={get yieldType(){return e.Debug.fail(\"Not supported\")},get returnType(){return e.Debug.fail(\"Not supported\")},get nextType(){return e.Debug.fail(\"Not supported\")}},$o=a_(Oe,Oe,Oe),Pr=a_(Oe,Oe,gr),xi=a_(ui,Oe,Tr),St={iterableCacheKey:\"iterationTypesOfAsyncIterable\",iteratorCacheKey:\"iterationTypesOfAsyncIterator\",iteratorSymbolName:\"asyncIterator\",getGlobalIteratorType:k3,getGlobalIterableType:C3,getGlobalIterableIteratorType:A3,getGlobalGeneratorType:N3,resolveIterationType:ag,mustHaveANextMethodDiagnostic:e.Diagnostics.An_async_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property},pa={iterableCacheKey:\"iterationTypesOfIterable\",iteratorCacheKey:\"iterationTypesOfIterator\",iteratorSymbolName:\"iterator\",getGlobalIteratorType:P3,getGlobalIterableType:Ax,getGlobalIterableIteratorType:I3,getGlobalGeneratorType:w3,resolveIterationType:function(r,i){return r},mustHaveANextMethodDiagnostic:e.Diagnostics.An_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property},dn,Jn=new e.Map,Qe=!1,Gr,S,Ce,qe,br,Zr,Si,Pi,Qi,Ct,sa,en,Wa,qn,mo,So,Go,ys,Pc,Vc,Kc,Xs,pc,hs,tc,ps,Qs,js,ds,Ji,ce,Rr,yi,qi,je,Hr,pt,Pt,ga,ua,Xn,jr,fo,xs,Fo=new e.Map,ko=0,Ao=0,Ms=0,Bs=!1,xc=0,su,tl,Zc,Rf=Bu(\"\"),al=If(0),Jo=ED({negative:!1,base10Value:\"0\"}),eu=[],Ws=[],pu=[],Uu=0,Ql=10,xl=[],Ya=[],du=[],vc=[],Kr=[],_i=[],Ei=[],tt=[],kt=[],bt=[],ia=[],Xt=[],Za=[],bn=[],_a=[],qa=[],rn=e.createDiagnosticCollection(),jn=e.createDiagnosticCollection(),Mo=new e.Map(e.getEntries({string:Li,number:nt,bigint:Mt,boolean:Ii,symbol:Ki,undefined:Tr})),ho=wp(),gs,Se,hr,Or=new e.Map,ki=new e.Map,dt=new e.Map,la=new e.Map,wa=new e.Map,On=new e.Map,No=e.createSymbolTable();No.set(mi.escapedName,mi);var jo=[[\".mts\",\".mjs\"],[\".ts\",\".js\"],[\".cts\",\".cjs\"],[\".mjs\",\".mjs\"],[\".js\",\".js\"],[\".cjs\",\".cjs\"],[\".tsx\",ye.jsx===1?\".jsx\":\".js\"],[\".jsx\",\".jsx\"],[\".json\",\".json\"]];return L9(),Di;function po(r){if(r){var i=e.getSourceFileOfNode(r);if(i)if(e.isJsxOpeningFragment(r)){if(i.localJsxFragmentNamespace)return i.localJsxFragmentNamespace;var t=i.pragmas.get(\"jsxfrag\");if(t){var o=e.isArray(t)?t[0]:t;if(i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),e.visitNode(i.localJsxFragmentFactory,$n),i.localJsxFragmentFactory)return i.localJsxFragmentNamespace=e.getFirstIdentifier(i.localJsxFragmentFactory).escapedText}var s=jS(r);if(s)return i.localJsxFragmentFactory=s,i.localJsxFragmentNamespace=e.getFirstIdentifier(s).escapedText}else{var u=Gn(i);if(u)return i.localJsxNamespace=u}}return gs||(gs=\"React\",ye.jsxFactory?(Se=e.parseIsolatedEntityName(ye.jsxFactory,Ae),e.visitNode(Se,$n),Se&&(gs=e.getFirstIdentifier(Se).escapedText)):ye.reactNamespace&&(gs=e.escapeLeadingUnderscores(ye.reactNamespace))),Se||(Se=e.factory.createQualifiedName(e.factory.createIdentifier(e.unescapeLeadingUnderscores(gs)),\"createElement\")),gs}function Gn(r){if(r.localJsxNamespace)return r.localJsxNamespace;var i=r.pragmas.get(\"jsx\");if(i){var t=e.isArray(i)?i[0]:i;if(r.localJsxFactory=e.parseIsolatedEntityName(t.arguments.factory,Ae),e.visitNode(r.localJsxFactory,$n),r.localJsxFactory)return r.localJsxNamespace=e.getFirstIdentifier(r.localJsxFactory).escapedText}}function $n(r){return e.setTextRangePosEnd(r,-1,-1),e.visitEachChild(r,$n,e.nullTransformationContext)}function Ho(r,i){return X6(r,i),wr}function Zo(r,i,t,o,s,u){var h=r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u),z=rn.lookup(h);return z||(rn.add(h),h)}function Es(r,i,t,o,s,u,h){var z=Xr(i,t,o,s,u,h);return z.skippedOn=r,z}function yc(r,i,t,o,s,u){return r?e.createDiagnosticForNode(r,i,t,o,s,u):e.createCompilerDiagnostic(i,t,o,s,u)}function Xr(r,i,t,o,s,u){var h=yc(r,i,t,o,s,u);return rn.add(h),h}function Ls(r,i){r?rn.add(i):jn.add(Ke(Ke({},i),{category:e.DiagnosticCategory.Suggestion}))}function Ic(r,i,t,o,s,u,h){if(i.pos<0||i.end<0){if(!r)return;var z=e.getSourceFileOfNode(i);Ls(r,\"message\"in t?e.createFileDiagnostic(z,0,0,t,o,s,u,h):e.createDiagnosticForFileFromMessageChain(z,t));return}Ls(r,\"message\"in t?e.createDiagnosticForNode(i,t,o,s,u,h):e.createDiagnosticForNodeFromMessageChain(i,t))}function zu(r,i,t,o,s,u,h){var z=Xr(r,t,o,s,u,h);if(i){var me=e.createDiagnosticForNode(r,e.Diagnostics.Did_you_forget_to_use_await);e.addRelatedInfo(z,me)}return z}function vf(r,i){var t=Array.isArray(r)?e.forEach(r,e.getJSDocDeprecatedTag):e.getJSDocDeprecatedTag(r);return t&&e.addRelatedInfo(i,e.createDiagnosticForNode(t,e.Diagnostics.The_declaration_was_marked_as_deprecated_here)),jn.add(i),i}function P_(r){return!!(p0(r)&268435456)}function El(r,i,t){var o=e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,t);return vf(i,o)}function vp(r,i,t,o){var s=t?e.createDiagnosticForNode(r,e.Diagnostics.The_signature_0_of_1_is_deprecated,o,t):e.createDiagnosticForNode(r,e.Diagnostics._0_is_deprecated,o);return vf(i,s)}function oo(r,i,t){ge++;var o=new We(r|33554432,i);return o.checkFlags=t||0,o}function I_(r){var i=0;return r&2&&(i|=111551),r&1&&(i|=111550),r&4&&(i|=0),r&8&&(i|=900095),r&16&&(i|=110991),r&32&&(i|=899503),r&64&&(i|=788872),r&256&&(i|=899327),r&128&&(i|=899967),r&512&&(i|=110735),r&8192&&(i|=103359),r&32768&&(i|=46015),r&65536&&(i|=78783),r&262144&&(i|=526824),r&524288&&(i|=788968),r&2097152&&(i|=2097152),i}function yp(r,i){i.mergeId||(i.mergeId=E,E++),xl[i.mergeId]=r}function Yl(r){var i=oo(r.flags,r.escapedName);return i.declarations=r.declarations?r.declarations.slice():[],i.parent=r.parent,r.valueDeclaration&&(i.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(i.constEnumOnlyModule=!0),r.members&&(i.members=new e.Map(r.members)),r.exports&&(i.exports=new e.Map(r.exports)),yp(i,r),i}function Bf(r,i,t){if(t===void 0&&(t=!1),!(r.flags&I_(i.flags))||(i.flags|r.flags)&67108864){if(i===r)return r;if(!(r.flags&33554432)){var o=os(r);if(o===xe)return i;r=Yl(o)}i.flags&512&&r.flags&512&&r.constEnumOnlyModule&&!i.constEnumOnlyModule&&(r.constEnumOnlyModule=!1),r.flags|=i.flags,i.valueDeclaration&&e.setValueDeclaration(r,i.valueDeclaration),e.addRange(r.declarations,i.declarations),i.members&&(r.members||(r.members=e.createSymbolTable()),gu(r.members,i.members,t)),i.exports&&(r.exports||(r.exports=e.createSymbolTable()),gu(r.exports,i.exports,t)),t||yp(r,i)}else if(r.flags&1024)r!==pe&&Xr(i.declarations&&e.getNameOfDeclaration(i.declarations[0]),e.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,tn(r));else{var s=!!(r.flags&384||i.flags&384),u=!!(r.flags&2||i.flags&2),h=s?e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:u?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,z=i.declarations&&e.getSourceFileOfNode(i.declarations[0]),me=r.declarations&&e.getSourceFileOfNode(r.declarations[0]),Me=e.isPlainJsFile(z,ye.checkJs),$e=e.isPlainJsFile(me,ye.checkJs),tr=tn(i);if(z&&me&&dn&&!s&&z!==me){var dr=e.comparePaths(z.path,me.path)===-1?z:me,Dr=dr===z?me:z,Qr=e.getOrUpdate(dn,\"\".concat(dr.path,\"|\").concat(Dr.path),function(){return{firstFile:dr,secondFile:Dr,conflictingSymbols:new e.Map}}),li=e.getOrUpdate(Qr.conflictingSymbols,tr,function(){return{isBlockScoped:u,firstFileLocations:[],secondFileLocations:[]}});Me||Ti(li.firstFileLocations,i),$e||Ti(li.secondFileLocations,r)}else Me||Cl(i,h,tr,r),$e||Cl(r,h,tr,i)}return r;function Ti(Ci,$i){if($i.declarations)for(var Zi=0,qt=$i.declarations;Zi=5||e.some(u.relatedInformation,function(Qr){return e.compareDiagnostics(Qr,Dr)===0||e.compareDiagnostics(Qr,dr)===0}))return\"continue\";e.addRelatedInfo(u,e.length(u.relatedInformation)?Dr:dr)},z=0,me=o||e.emptyArray;z1);return}if(e.isGlobalScopeAugmentation(s))gu(ii,s.symbol.exports);else{var u=r.parent.parent.flags&16777216?void 0:e.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found,h=Pl(r,r,u,!0);if(!h)return;if(h=Us(h),h.flags&1920)if(e.some(S,function(Qr){return h===Qr.symbol})){var z=Bf(s.symbol,h,!0);Ce||(Ce=new e.Map),Ce.set(r.text,z)}else{if(((t=h.exports)===null||t===void 0?void 0:t.get(\"__export\"))&&((o=s.symbol.exports)===null||o===void 0?void 0:o.size))for(var me=Jv(h,\"resolvedExports\"),Me=0,$e=e.arrayFrom(s.symbol.exports.entries());Me<$e.length;Me++){var tr=$e[Me],dr=tr[0],Dr=tr[1];me.has(dr)&&!h.exports.has(dr)&&Bf(me.get(dr),Dr)}Bf(h,s.symbol)}else Xr(r,e.Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity,r.text)}}function sd(r,i,t){i.forEach(function(s,u){var h=r.get(u);h?e.forEach(h.declarations,o(e.unescapeLeadingUnderscores(u),t)):r.set(u,s)});function o(s,u){return function(h){return rn.add(e.createDiagnosticForNode(h,u,s))}}}function Aa(r){if(r.flags&33554432)return r;var i=y(r);return Ya[i]||(Ya[i]=new X)}function va(r){var i=A(r);return du[i]||(du[i]=new $)}function Cu(r){return r.kind===305&&!e.isExternalOrCommonJsModule(r)}function qs(r,i,t){if(t){var o=so(r.get(i));if(o){if(e.Debug.assert((e.getCheckFlags(o)&1)===0,\"Should never get an instantiated symbol here.\"),o.flags&t)return o;if(o.flags&2097152){var s=Ps(o);if(s===xe||s.flags&t)return o}}}}function cd(r,i){var t=r.parent,o=r.parent.parent,s=qs(t.locals,i,111551),u=qs(Nf(o.symbol),i,111551);return s&&u?[s,u]:e.Debug.fail(\"There should exist two symbols, one as property declaration and one as parameter declaration\")}function ns(r,i){var t=e.getSourceFileOfNode(r),o=e.getSourceFileOfNode(i),s=e.getEnclosingBlockScopeContainer(r);if(t!==o){if(er&&(t.externalModuleIndicator||o.externalModuleIndicator)||!e.outFile(ye)||_m(i)||r.flags&16777216||Me(i,r))return!0;var u=l.getSourceFiles();return u.indexOf(t)<=u.indexOf(o)}if(r.pos<=i.pos&&!(e.isPropertyDeclaration(r)&&e.isThisProperty(i.parent)&&!r.initializer&&!r.exclamationToken)){if(r.kind===203){var h=e.getAncestor(i,203);return h?e.findAncestor(h,e.isBindingElement)!==e.findAncestor(r,e.isBindingElement)||r.postr.end)return!1;var Qr=e.findAncestor(dr,function(li){if(li===tr)return\"quit\";switch(li.kind){case 214:return!0;case 167:return Dr&&(e.isPropertyDeclaration(tr)&&li.parent===tr.parent||e.isParameterPropertyDeclaration(tr,tr.parent)&&li.parent===tr.parent.parent)?\"quit\":!0;case 235:switch(li.parent.kind){case 172:case 169:case 173:return!0;default:return!1}default:return!1}});return Qr===void 0}}function nl(r,i,t){var o=e.getEmitScriptTarget(ye),s=i;if(e.isParameter(t)&&s.body&&r.valueDeclaration&&r.valueDeclaration.pos>=s.body.pos&&r.valueDeclaration.end<=s.body.end&&o>=2){var u=va(s);return u.declarationRequiresScopeChange===void 0&&(u.declarationRequiresScopeChange=e.forEach(s.parameters,h)||!1),!u.declarationRequiresScopeChange}return!1;function h(me){return z(me.name)||!!me.initializer&&z(me.initializer)}function z(me){switch(me.kind){case 214:case 213:case 256:case 171:return!1;case 169:case 172:case 173:case 296:return z(me.name);case 167:return e.hasStaticModifier(me)?o<99||!ir:z(me.name);default:return e.isNullishCoalesce(me)||e.isOptionalChain(me)?o<7:e.isBindingElement(me)&&me.dotDotDotToken&&e.isObjectBindingPattern(me.parent)?o<4:e.isTypeNode(me)?!1:e.forEachChild(me,z)||!1}}}function hc(r){return e.isAssertionExpression(r)&&e.isConstTypeReference(r.type)||e.isJSDocTypeTag(r)&&e.isConstTypeReference(r.typeExpression)}function es(r,i,t,o,s,u,h,z){return h===void 0&&(h=!1),z===void 0&&(z=!0),u_(r,i,t,o,s,u,h,z,qs)}function u_(r,i,t,o,s,u,h,z,me){var Me,$e,tr,dr=r,Dr,Qr,li,Ti,Ci,$i=!1,Zi=r,qt,Nt=!1;e:for(;r;){if(i===\"const\"&&hc(r))return;if(r.locals&&!Cu(r)&&(Dr=me(r.locals,i,t))){var Ra=!0;if(e.isFunctionLike(r)&&Qr&&Qr!==r.body?(t&Dr.flags&788968&&Qr.kind!==320&&(Ra=Dr.flags&262144?Qr===r.type||Qr.kind===164||Qr.kind===340||Qr.kind===341||Qr.kind===163:!1),t&Dr.flags&3&&(nl(Dr,r,Qr)?Ra=!1:Dr.flags&1&&(Ra=Qr.kind===164||Qr===r.type&&!!e.findAncestor(Dr.valueDeclaration,e.isParameter)))):r.kind===189&&(Ra=Qr===r.trueType),Ra)break e;Dr=void 0}switch($i=$i||w_(r,Qr),r.kind){case 305:if(!e.isExternalOrCommonJsModule(r))break;Nt=!0;case 261:var ca=((Me=Et(r))===null||Me===void 0?void 0:Me.exports)||we;if(r.kind===305||e.isModuleDeclaration(r)&&r.flags&16777216&&!e.isGlobalScopeAugmentation(r)){if(Dr=ca.get(\"default\")){var Sn=e.getLocalSymbolForExportDefault(Dr);if(Sn&&Dr.flags&t&&Sn.escapedName===i)break e;Dr=void 0}var ja=ca.get(i);if(ja&&ja.flags===2097152&&(e.getDeclarationOfKind(ja,275)||e.getDeclarationOfKind(ja,274)))break}if(i!==\"default\"&&(Dr=me(ca,i,t&2623475)))if(e.isSourceFile(r)&&r.commonJsModuleIndicator&&!(!(($e=Dr.declarations)===null||$e===void 0)&&$e.some(e.isJSDocTypeAlias)))Dr=void 0;else break e;break;case 260:if(Dr=me(((tr=Et(r))===null||tr===void 0?void 0:tr.exports)||we,i,t&8))break e;break;case 167:if(!e.isStatic(r)){var Fn=Tf(r.parent);Fn&&Fn.locals&&me(Fn.locals,i,t&111551)&&(Ti=r)}break;case 257:case 226:case 258:if(Dr=me(Et(r).members||we,i,t&788968)){if(!ld(Dr,r)){Dr=void 0;break}if(Qr&&e.isStatic(Qr)){Xr(Zi,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);return}break e}if(r.kind===226&&t&32){var wn=r.name;if(wn&&i===wn.escapedText){Dr=r.symbol;break e}}break;case 228:if(Qr===r.expression&&r.parent.token===94){var Tn=r.parent.parent;if(e.isClassLike(Tn)&&(Dr=me(Et(Tn).members,i,t&788968))){o&&Xr(Zi,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters);return}}break;case 162:if(qt=r.parent.parent,(e.isClassLike(qt)||qt.kind===258)&&(Dr=me(Et(qt).members,i,t&788968))){Xr(Zi,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);return}break;case 214:if(e.getEmitScriptTarget(ye)>=2)break;case 169:case 171:case 172:case 173:case 256:if(t&3&&i===\"arguments\"){Dr=or;break e}break;case 213:if(t&3&&i===\"arguments\"){Dr=or;break e}if(t&16){var Eo=r.name;if(Eo&&i===Eo.escapedText){Dr=r.symbol;break e}}break;case 165:r.parent&&r.parent.kind===164&&(r=r.parent),r.parent&&(e.isClassElement(r.parent)||r.parent.kind===257)&&(r=r.parent);break;case 345:case 338:case 339:var lt=e.getJSDocRoot(r);lt&&(r=lt.parent);break;case 164:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&(Ci||(Ci=r));break;case 203:Qr&&(Qr===r.initializer||Qr===r.name&&e.isBindingPattern(Qr))&&e.isParameterDeclaration(r)&&!Ci&&(Ci=r);break;case 190:if(t&262144){var it=r.typeParameter.name;if(it&&i===it.escapedText){Dr=r.typeParameter.symbol;break e}}break}ud(r)&&(li=r),Qr=r,r=e.isJSDocTemplateTag(r)?e.getEffectiveContainerForJSDocTemplateTag(r)||r.parent:(e.isJSDocParameterTag(r)||e.isJSDocReturnTag(r))&&e.getHostSignatureFromJSDoc(r)||r.parent}if(u&&Dr&&(!li||Dr!==li.symbol)&&(Dr.isReferenced|=t),!Dr){if(Qr&&(e.Debug.assert(Qr.kind===305),Qr.commonJsModuleIndicator&&i===\"exports\"&&t&Qr.symbol.flags))return Qr.symbol;h||(Dr=me(ii,i,t))}if(!Dr&&dr&&e.isInJSFile(dr)&&dr.parent&&e.isRequireCall(dr.parent,!1))return qr;if(!Dr){o&&fe(function(){if(!Zi||!fd(Zi,i,s)&&!bp(Zi)&&!Tp(Zi,i,t)&&!O_(Zi,i)&&!F_(Zi,i,t)&&!M_(Zi,i,t)&&!_d(Zi,i,t)){var Ia=void 0;if(z&&UuCi.pos&&cn.parent.locals&&me(cn.parent.locals,Ka.escapedName,t)===Ka&&Xr(Zi,e.Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString(Ci.name),e.declarationNameToString(Zi))}if(Dr&&Zi&&t&111551&&Dr.flags&2097152&&!(Dr.flags&111551)&&!e.isValidTypeOnlyAliasUseSite(Zi)){var Un=vu(Dr);if(Un){var oa=Un.kind===275?e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type,Mn=e.unescapeLeadingUnderscores(i);Jf(Xr(Zi,oa,Mn),Un,Mn)}}}),Dr}function Jf(r,i,t){return i?e.addRelatedInfo(r,e.createDiagnosticForNode(i,i.kind===275?e.Diagnostics._0_was_exported_here:e.Diagnostics._0_was_imported_here,t)):r}function w_(r,i){return r.kind!==214&&r.kind!==213?e.isTypeQueryNode(r)||(e.isFunctionLikeDeclaration(r)||r.kind===167&&!e.isStatic(r))&&(!i||i!==r.name):i&&i===r.name?!1:r.asteriskToken||e.hasSyntacticModifier(r,256)?!0:!e.getImmediatelyInvokedFunctionExpression(r)}function ud(r){switch(r.kind){case 256:case 257:case 258:case 260:case 259:case 261:return!0;default:return!1}}function ku(r){return e.isString(r)?e.unescapeLeadingUnderscores(r):e.declarationNameToString(r)}function ld(r,i){if(r.declarations)for(var t=0,o=r.declarations;t=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\",Me=o.exports.get(\"export=\"),$e=Me.valueDeclaration,tr=Xr(r.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,tn(o),me);$e&&e.addRelatedInfo(tr,e.createDiagnosticForNode($e,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,me))}else f_(o,r);else if(z||h){var dr=Us(o,i)||os(o,i);return Gc(r,o,dr,!1),dr}return Gc(r,s,void 0,!1),s}}function f_(r,i){var t,o,s;if(!((t=r.exports)===null||t===void 0)&&t.has(i.symbol.escapedName))Xr(i.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,tn(r),tn(i.symbol));else{var u=Xr(i.name,e.Diagnostics.Module_0_has_no_default_export,tn(r)),h=(o=r.exports)===null||o===void 0?void 0:o.get(\"__export\");if(h){var z=(s=h.declarations)===null||s===void 0?void 0:s.find(function(me){var Me,$e;return!!(e.isExportDeclaration(me)&&me.moduleSpecifier&&(($e=(Me=ac(me,me.moduleSpecifier))===null||Me===void 0?void 0:Me.exports)===null||$e===void 0?void 0:$e.has(\"default\")))});z&&e.addRelatedInfo(u,e.createDiagnosticForNode(z,e.Diagnostics.export_Asterisk_does_not_re_export_a_default))}}}function md(r,i){var t=r.parent.parent.moduleSpecifier,o=ac(r,t),s=Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function ks(r,i){var t=r.parent.moduleSpecifier,o=t&&ac(r,t),s=t&&Wf(o,t,i,!1);return Gc(r,o,s,!1),s}function Wu(r,i){if(r===xe&&i===xe)return xe;if(r.flags&790504)return r;var t=oo(r.flags|i.flags,r.escapedName);return t.declarations=e.deduplicate(e.concatenate(r.declarations,i.declarations),e.equateValues),t.parent=r.parent||i.parent,r.valueDeclaration&&(t.valueDeclaration=r.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),r.exports&&(t.exports=new e.Map(r.exports)),t}function Zl(r,i,t,o){if(r.flags&1536){var s=dc(r).get(i.escapedText),u=os(s,o);return Gc(t,s,u,!1),u}}function R_(r,i){if(r.flags&3){var t=r.valueDeclaration.type;if(t)return os(bi(Va(t),i))}}function kl(r,i,t){var o,s;t===void 0&&(t=!1);var u=e.getExternalModuleRequireArgument(r)||r.moduleSpecifier,h=ac(r,u),z=!e.isPropertyAccessExpression(i)&&i.propertyName||i.name;if(!!e.isIdentifier(z)){var me=z.escapedText===\"default\"&&!!(ye.allowSyntheticDefaultImports||e.getESModuleInterop(ye)),Me=Wf(h,u,!1,me);if(Me&&z.escapedText){if(e.isShorthandAmbientModuleSymbol(h))return h;var $e=void 0;h&&h.exports&&h.exports.get(\"export=\")?$e=bi(Jt(Me),z.escapedText,!0):$e=R_(Me,z.escapedText),$e=os($e,t);var tr=Zl(Me,z,i,t);if(tr===void 0&&z.escapedText===\"default\"){var dr=(o=h.declarations)===null||o===void 0?void 0:o.find(e.isSourceFile);(Uf(u)||L_(dr,h,t,u))&&(tr=Us(h,t)||os(h,t))}var Dr=tr&&$e&&tr!==$e?Wu($e,tr):tr||$e;if(!Dr){var Qr=cl(h,r),li=e.declarationNameToString(z),Ti=v0(z,Me);if(Ti!==void 0){var Ci=tn(Ti),$i=Xr(z,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,Qr,li,Ci);Ti.valueDeclaration&&e.addRelatedInfo($i,e.createDiagnosticForNode(Ti.valueDeclaration,e.Diagnostics._0_is_declared_here,Ci))}else!((s=h.exports)===null||s===void 0)&&s.has(\"default\")?Xr(z,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,Qr,li):__(r,z,li,h,Qr)}return Dr}}}function __(r,i,t,o,s){var u,h,z=(h=(u=o.valueDeclaration)===null||u===void 0?void 0:u.locals)===null||h===void 0?void 0:h.get(i.escapedText),me=o.exports;if(z){var Me=me==null?void 0:me.get(\"export=\");if(Me)_l(Me,z)?zd(r,i,t,s):Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t);else{var $e=me?e.find(Y_(me),function(dr){return!!_l(dr,z)}):void 0,tr=$e?Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2,s,t,tn($e)):Xr(i,e.Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported,s,t);z.declarations&&e.addRelatedInfo.apply(void 0,Ve([tr],e.map(z.declarations,function(dr,Dr){return e.createDiagnosticForNode(dr,Dr===0?e.Diagnostics._0_is_declared_here:e.Diagnostics.and_here,t)}),!1))}}else Xr(i,e.Diagnostics.Module_0_has_no_exported_member_1,s,t)}function zd(r,i,t,o){if(er>=e.ModuleKind.ES2015){var s=e.getESModuleInterop(ye)?e.Diagnostics._0_can_only_be_imported_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;Xr(i,s,t)}else if(e.isInJSFile(r)){var s=e.getESModuleInterop(ye)?e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;Xr(i,s,t)}else{var s=e.getESModuleInterop(ye)?e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;Xr(i,s,t,t,o)}}function Al(r,i){var t=e.isBindingElement(r)?e.getRootDeclaration(r):r.parent.parent.parent,o=wc(t),s=kl(t,o||r,i),u=r.propertyName||r.name;return o&&s&&e.isIdentifier(u)?os(bi(Jt(s),u.escapedText),i):(Gc(r,void 0,s,!1),s)}function wc(r){if(e.isVariableDeclaration(r)&&r.initializer&&e.isPropertyAccessExpression(r.initializer))return r.initializer}function qu(r,i){var t=Us(r.parent.symbol,i);return Gc(r,void 0,t,!1),t}function Vu(r,i,t){var o=r.parent.parent.moduleSpecifier?kl(r.parent.parent,r,t):Ds(r.propertyName||r.name,i,!1,t);return Gc(r,void 0,o,!1),o}function ef(r,i){var t=e.isExportAssignment(r)?r.expression:r.right,o=sl(t,i);return Gc(r,void 0,o,!1),o}function sl(r,i){if(e.isClassExpression(r))return Os(r).symbol;if(!(!e.isEntityName(r)&&!e.isEntityNameExpression(r))){var t=Ds(r,901119,!0,i);return t||(Os(r),va(r).resolvedSymbol)}}function p_(r,i){var t=r.initializer;return sl(t,i)}function Df(r,i){if(!!(e.isBinaryExpression(r.parent)&&r.parent.left===r&&r.parent.operatorToken.kind===63))return sl(r.parent.right,i)}function Ec(r,i){switch(i===void 0&&(i=!1),r.kind){case 265:case 254:return dd(r,i);case 267:return l_(r,i);case 268:return md(r,i);case 274:return ks(r,i);case 270:case 203:return Al(r,i);case 275:return Vu(r,901119,i);case 271:case 221:return ef(r,i);case 264:return qu(r,i);case 297:return Ds(r.name,901119,!0,i);case 296:return p_(r,i);case 207:case 206:return Df(r,i);default:return e.Debug.fail()}}function Zn(r,i){return i===void 0&&(i=901119),r?(r.flags&(2097152|i))===2097152||!!(r.flags&2097152&&r.flags&67108864):!1}function os(r,i){return!i&&Zn(r)?Ps(r):r}function Ps(r){e.Debug.assert((r.flags&2097152)!==0,\"Should only get Alias here.\");var i=Aa(r);if(i.aliasTarget)i.aliasTarget===vr&&(i.aliasTarget=xe);else{i.aliasTarget=vr;var t=ru(r);if(!t)return e.Debug.fail();var o=Ec(t);i.aliasTarget===vr?i.aliasTarget=o||xe:Xr(t,e.Diagnostics.Circular_definition_of_import_alias_0,tn(r))}return i.aliasTarget}function d_(r){var i=Aa(r);if(i.aliasTarget!==vr)return Ps(r)}function Gc(r,i,t,o){if(!r||e.isPropertyAccessExpression(r))return!1;var s=Et(r);if(e.isTypeOnlyImportOrExportDeclaration(r)){var u=Aa(s);return u.typeOnlyDeclaration=r,!0}var h=Aa(s);return B_(h,i,o)||B_(h,t,o)}function B_(r,i,t){var o,s,u;if(i&&(r.typeOnlyDeclaration===void 0||t&&r.typeOnlyDeclaration===!1)){var h=(s=(o=i.exports)===null||o===void 0?void 0:o.get(\"export=\"))!==null&&s!==void 0?s:i,z=h.declarations&&e.find(h.declarations,e.isTypeOnlyImportOrExportDeclaration);r.typeOnlyDeclaration=(u=z!=null?z:Aa(h).typeOnlyDeclaration)!==null&&u!==void 0?u:!1}return!!r.typeOnlyDeclaration}function vu(r){if(!!(r.flags&2097152)){var i=Aa(r);return i.typeOnlyDeclaration||void 0}}function Gt(r){var i=Et(r),t=Ps(i);if(t){var o=t===xe||t.flags&111551&&!Av(t)&&!vu(i);o&&As(i)}}function As(r){var i=Aa(r);if(!i.referenced){i.referenced=!0;var t=ru(r);if(!t)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(t)){var o=os(r);(o===xe||o.flags&111551)&&Os(t.moduleReference)}}}function vn(r){var i=Aa(r);i.constEnumReferenced||(i.constEnumReferenced=!0)}function Nl(r,i){return r.kind===79&&e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),r.kind===79||r.parent.kind===161?Ds(r,1920,!1,i):(e.Debug.assert(r.parent.kind===265),Ds(r,901119,!1,i))}function cl(r,i){return r.parent?cl(r.parent,i)+\".\"+tn(r):tn(r,i,void 0,20)}function rf(r){for(;e.isQualifiedName(r.parent);)r=r.parent;return r}function Ut(r){var i=e.getFirstIdentifier(r),t=es(i,i.escapedText,111551,void 0,i,!0);if(!!t){for(;e.isQualifiedName(i.parent);){var o=Jt(t);if(t=bi(o,i.parent.right.escapedText),!t)return;i=i.parent}return t}}function Ds(r,i,t,o,s){if(!e.nodeIsMissing(r)){var u=1920|(e.isInJSFile(r)?i&111551:0),h;if(r.kind===79){var z=i===u||e.nodeIsSynthesized(r)?e.Diagnostics.Cannot_find_namespace_0:HE(e.getFirstIdentifier(r)),me=e.isInJSFile(r)&&!e.nodeIsSynthesized(r)?bf(r,i):void 0;if(h=so(es(s||r,r.escapedText,i,t||me?void 0:z,r,!0,!1)),!h)return so(me)}else if(r.kind===161||r.kind===206){var Me=r.kind===161?r.left:r.expression,$e=r.kind===161?r.right:r.name,tr=Ds(Me,u,t,!1,s);if(!tr||e.nodeIsMissing($e))return;if(tr===xe)return tr;if(tr.valueDeclaration&&e.isInJSFile(tr.valueDeclaration)&&e.isVariableDeclaration(tr.valueDeclaration)&&tr.valueDeclaration.initializer&&xk(tr.valueDeclaration.initializer)){var dr=tr.valueDeclaration.initializer.arguments[0],Dr=ac(dr,dr);if(Dr){var Qr=Us(Dr);Qr&&(tr=Qr)}}if(h=so(qs(dc(tr),$e.escapedText,i)),!h){if(!t){var li=cl(tr),Ti=e.declarationNameToString($e),Ci=v0($e,tr);if(Ci){Xr($e,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,li,Ti,tn(Ci));return}var $i=e.isQualifiedName(r)&&rf(r),Zi=qe&&i&788968&&$i&&!e.isTypeOfExpression($i.parent)&&Ut($i);if(Zi){Xr($i,e.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,e.entityNameToString($i));return}if(i&1920&&e.isQualifiedName(r.parent)){var qt=so(qs(dc(tr),$e.escapedText,788968));if(qt){Xr(r.parent.right,e.Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,tn(qt),e.unescapeLeadingUnderscores(r.parent.right.escapedText));return}}Xr($e,e.Diagnostics.Namespace_0_has_no_exported_member_1,li,Ti)}return}}else throw e.Debug.assertNever(r,\"Unknown entity name kind.\");return e.Debug.assert((e.getCheckFlags(h)&1)===0,\"Should never get an instantiated symbol here.\"),!e.nodeIsSynthesized(r)&&e.isEntityName(r)&&(h.flags&2097152||r.parent.kind===271)&&Gc(e.getAliasDeclarationFromName(r),h,void 0,!0),h.flags&i||o?h:Ps(h)}}function bf(r,i){if(Dh(r.parent)){var t=bs(r.parent);if(t)return es(t,r.escapedText,i,void 0,r,!0)}}function bs(r){var i=e.findAncestor(r,function(u){return e.isJSDocNode(u)||u.flags&8388608?e.isJSDocTypeAlias(u):\"quit\"});if(!i){var t=e.getJSDocHost(r);if(t&&e.isExpressionStatement(t)&&e.isPrototypePropertyAssignment(t.expression)){var o=Et(t.expression.left);if(o)return Dc(o)}if(t&&e.isFunctionExpression(t)&&e.isPrototypePropertyAssignment(t.parent)&&e.isExpressionStatement(t.parent.parent)){var o=Et(t.parent.left);if(o)return Dc(o)}if(t&&(e.isObjectLiteralMethod(t)||e.isPropertyAssignment(t))&&e.isBinaryExpression(t.parent.parent)&&e.getAssignmentDeclarationKind(t.parent.parent)===6){var o=Et(t.parent.parent.left);if(o)return Dc(o)}var s=e.getEffectiveJSDocHost(r);if(s&&e.isFunctionLike(s)){var o=Et(s);return o&&o.valueDeclaration}}}function Dc(r){var i=r.parent.valueDeclaration;if(!!i){var t=e.isAssignmentDeclaration(i)?e.getAssignedExpandoInitializer(i):e.hasOnlyExpressionInitializer(i)?e.getDeclaredExpandoInitializer(i):void 0;return t||i}}function Cc(r){var i=r.valueDeclaration;if(!(!i||!e.isInJSFile(i)||r.flags&524288||e.getExpandoInitializer(i,!1))){var t=e.isVariableDeclaration(i)?e.getDeclaredExpandoInitializer(i):e.getAssignedExpandoInitializer(i);if(t){var o=Et(t);if(o)return iS(o,r)}}}function ac(r,i,t){var o=e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Classic,s=o?e.Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:e.Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;return Pl(r,i,t?void 0:s)}function Pl(r,i,t,o){return o===void 0&&(o=!1),e.isStringLiteralLike(i)?Il(r,i.text,t,i,o):void 0}function Il(r,i,t,o,s){var u,h,z,me,Me,$e,tr,dr;if(s===void 0&&(s=!1),e.startsWith(i,\"@types/\")){var Dr=e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,Qr=e.removePrefix(i,\"@types/\");Xr(o,Dr,Qr,i)}var li=b_(i,!0);if(li)return li;var Ti=e.getSourceFileOfNode(r),Ci=e.isStringLiteralLike(r)?r:((u=e.findAncestor(r,e.isImportCall))===null||u===void 0?void 0:u.arguments[0])||((h=e.findAncestor(r,e.isImportDeclaration))===null||h===void 0?void 0:h.moduleSpecifier)||((z=e.findAncestor(r,e.isExternalModuleImportEqualsDeclaration))===null||z===void 0?void 0:z.moduleReference.expression)||((me=e.findAncestor(r,e.isExportDeclaration))===null||me===void 0?void 0:me.moduleSpecifier)||((Me=e.isModuleDeclaration(r)?r:r.parent&&e.isModuleDeclaration(r.parent)&&r.parent.name===r?r.parent:void 0)===null||Me===void 0?void 0:Me.name)||(($e=e.isLiteralImportTypeNode(r)?r:void 0)===null||$e===void 0?void 0:$e.argument.literal),$i=Ci&&e.isStringLiteralLike(Ci)?e.getModeForUsageLocation(Ti,Ci):Ti.impliedNodeFormat,Zi=e.getResolvedModule(Ti,i,$i),qt=Zi&&e.getResolutionDiagnostic(ye,Zi),Nt=Zi&&(!qt||qt===e.Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set)&&l.getSourceFile(Zi.resolvedFileName);if(Nt){if(qt&&Xr(o,qt,i,Zi.resolvedFileName),Nt.symbol){if(Zi.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&zf(!1,o,Zi,i),e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Ra=Ti.impliedNodeFormat===e.ModuleKind.CommonJS&&!e.findAncestor(r,e.isImportCall)||!!e.findAncestor(r,e.isImportEqualsDeclaration),ca=e.findAncestor(r,function(cn){return e.isImportTypeNode(cn)||e.isExportDeclaration(cn)||e.isImportDeclaration(cn)}),Sn=ca&&e.isImportTypeNode(ca)?(tr=ca.assertions)===null||tr===void 0?void 0:tr.assertClause:ca==null?void 0:ca.assertClause;Ra&&Nt.impliedNodeFormat===e.ModuleKind.ESNext&&!e.getResolutionModeOverrideForClause(Sn)&&Xr(o,e.Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead,i)}return so(Nt.symbol)}t&&Xr(o,e.Diagnostics.File_0_is_not_a_module,Nt.fileName);return}if(S){var ja=e.findBestPatternMatch(S,function(cn){return cn.pattern},i);if(ja){var Fn=Ce&&Ce.get(i);return so(Fn||ja.symbol)}}if(Zi&&!e.resolutionExtensionIsTSOrJson(Zi.extension)&&qt===void 0||qt===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type){if(s){var Dr=e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;Xr(o,Dr,i,Zi.resolvedFileName)}else zf(n&&!!t,o,Zi,i);return}if(t){if(Zi){var wn=l.getProjectReferenceRedirect(Zi.resolvedFileName);if(wn){Xr(o,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,wn,Zi.resolvedFileName);return}}if(qt)Xr(o,qt,i,Zi.resolvedFileName);else{var Tn=e.tryExtractTSExtension(i),Eo=e.pathIsRelative(i)&&!e.hasExtension(i),lt=e.getEmitModuleResolutionKind(ye),it=lt===e.ModuleResolutionKind.Node16||lt===e.ModuleResolutionKind.NodeNext;if(Tn){var Dr=e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,Yt=e.removeExtension(i,Tn),Ia=Yt;er>=e.ModuleKind.ES2015&&(Ia+=Tn===\".mts\"?\".mjs\":Tn===\".cts\"?\".cjs\":\".js\"),Xr(o,Dr,Tn,Ia)}else if(!ye.resolveJsonModule&&e.fileExtensionIs(i,\".json\")&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&e.hasJsonModuleEmitEnabled(ye))Xr(o,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,i);else if($i===e.ModuleKind.ESNext&&it&&Eo){var Qt=e.getNormalizedAbsolutePath(i,e.getDirectoryPath(Ti.path)),Ka=(dr=jo.find(function(cn){var Un=cn[0],oa=cn[1];return l.fileExists(Qt+Un)}))===null||dr===void 0?void 0:dr[1];Ka?Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0,i+Ka):Xr(o,e.Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path)}else Xr(o,t,i)}}}function zf(r,i,t,o){var s=t.packageId,u=t.resolvedFileName,h=!e.isExternalModuleNameRelative(o)&&s?ul(s.name)?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,s.name,e.mangleScopedPackageName(s.name)):Nu(s.name)?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1,s.name,o):e.chainDiagnosticMessages(void 0,e.Diagnostics.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,o,e.mangleScopedPackageName(s.name)):void 0;Ic(r,i,e.chainDiagnosticMessages(h,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,o,u))}function ul(r){return d().has(e.getTypesPackageName(r))}function Nu(r){return!!d().get(r)}function Us(r,i){if(r!=null&&r.exports){var t=os(r.exports.get(\"export=\"),i),o=Ap(so(t),so(r));return so(o)||r}}function Ap(r,i){if(!r||r===xe||r===i||i.exports.size===1||r.flags&2097152)return r;var t=Aa(r);if(t.cjsExportMerged)return t.cjsExportMerged;var o=r.flags&33554432?r:Yl(r);return o.flags=o.flags|512,o.exports===void 0&&(o.exports=e.createSymbolTable()),i.exports.forEach(function(s,u){u!==\"export=\"&&o.exports.set(u,o.exports.has(u)?Bf(o.exports.get(u),s):s)}),Aa(o).cjsExportMerged=o,t.cjsExportMerged=o}function Wf(r,i,t,o){var s,u=Us(r,t);if(!t&&u){if(!o&&!(u.flags&1539)&&!e.getDeclarationOfKind(u,305)){var h=er>=e.ModuleKind.ES2015?\"allowSyntheticDefaultImports\":\"esModuleInterop\";return Xr(i,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,h),u}var z=i.parent;if(e.isImportDeclaration(z)&&e.getNamespaceDeclarationNode(z)||e.isImportCall(z)){var me=e.isImportCall(z)?z.arguments[0]:z.moduleSpecifier,Me=Jt(u),$e=Sk(Me,u,r,me);if($e)return Sf(u,$e,z);var tr=(s=r==null?void 0:r.declarations)===null||s===void 0?void 0:s.find(e.isSourceFile),dr=tr&&$l(hf(me),tr.impliedNodeFormat);if(e.getESModuleInterop(ye)||dr){var Dr=Ft(Me,0);if((!Dr||!Dr.length)&&(Dr=Ft(Me,1)),Dr&&Dr.length||bi(Me,\"default\",!0)||dr){var Qr=Tk(Me,u,r,me);return Sf(u,Qr,z)}}}}return u}function Sf(r,i,t){var o=oo(r.flags,r.escapedName);o.declarations=r.declarations?r.declarations.slice():[],o.parent=r.parent,o.target=r,o.originatingImport=t,r.valueDeclaration&&(o.valueDeclaration=r.valueDeclaration),r.constEnumOnlyModule&&(o.constEnumOnlyModule=!0),r.members&&(o.members=new e.Map(r.members)),r.exports&&(o.exports=new e.Map(r.exports));var s=Ru(i);return o.type=rs(o,s.members,e.emptyArray,e.emptyArray,s.indexInfos),o}function ll(r){return r.exports.get(\"export=\")!==void 0}function J_(r){return Y_(Pu(r))}function j_(r){var i=J_(r),t=Us(r);if(t!==r){var o=Jt(t);qf(o)&&e.addRange(i,uo(o))}return i}function U_(r,i){var t=Pu(r);t.forEach(function(u,h){Ol(h)||i(u,h)});var o=Us(r);if(o!==r){var s=Jt(o);qf(s)&&U1(s,function(u,h){i(u,h)})}}function iu(r,i){var t=Pu(i);if(t)return t.get(r)}function vd(r,i){var t=iu(r,i);if(t)return t;var o=Us(i);if(o!==i){var s=Jt(o);return qf(s)?bi(s,r):void 0}}function qf(r){return!(r.flags&131068||e.getObjectFlags(r)&1||Tu(r)||Yn(r))}function dc(r){return r.flags&6256?Jv(r,\"resolvedExports\"):r.flags&1536?Pu(r):r.exports||we}function Pu(r){var i=Aa(r);return i.resolvedExports||(i.resolvedExports=Iu(r))}function wl(r,i,t,o){!i||i.forEach(function(s,u){if(u!==\"default\"){var h=r.get(u);if(!h)r.set(u,s),t&&o&&t.set(u,{specifierText:e.getTextOfNode(o.moduleSpecifier)});else if(t&&o&&h&&os(h)!==os(s)){var z=t.get(u);z.exportsWithDuplicate?z.exportsWithDuplicate.push(o):z.exportsWithDuplicate=[o]}}})}function Iu(r){var i=[];return r=Us(r),t(r)||we;function t(o){if(!!(o&&o.exports&&e.pushIfUnique(i,o))){var s=new e.Map(o.exports),u=o.exports.get(\"__export\");if(u){var h=e.createSymbolTable(),z=new e.Map;if(u.declarations)for(var me=0,Me=u.declarations;me=$e?Me.substr(0,$e-3)+\"...\":Me}function nf(r,i){var t=Kf(r.symbol)?Ot(r,r.symbol.valueDeclaration):Ot(r),o=Kf(i.symbol)?Ot(i,i.symbol.valueDeclaration):Ot(i);return t===o&&(t=q_(r),o=q_(i)),[t,o]}function q_(r){return Ot(r,void 0,64)}function Kf(r){return r&&!!r.valueDeclaration&&e.isExpression(r.valueDeclaration)&&!Ju(r.valueDeclaration)}function Rp(r){return r===void 0&&(r=0),r&814775659}function yd(r){return!!r.symbol&&!!(r.symbol.flags&32)&&(r===aa(r.symbol)||!!(r.flags&524288)&&!!(e.getObjectFlags(r)&16777216))}function m_(){return{typeToTypeNode:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return o(ci,ea)})},indexInfoToIndexSignatureDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Me(ci,ea,void 0)})},signatureToSignatureDeclaration:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return $e(ci,Fr,Kt)})},symbolToEntityName:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return Fn(ci,Kt,Fr,!1)})},symbolToExpression:function(ci,Fr,jt,Lt,ea){return r(jt,Lt,ea,function(Kt){return wn(ci,Kt,Fr)})},symbolToTypeParameterDeclarations:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return $i(ci,ea)})},symbolToParameterDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Qr(ci,ea)})},typeParameterToDeclaration:function(ci,Fr,jt,Lt){return r(Fr,jt,Lt,function(ea){return Dr(ci,ea)})},symbolTableToDeclarationStatements:function(ci,Fr,jt,Lt,ea){return r(Fr,jt,Lt,function(Kt){return Ln(ci,Kt,ea)})}};function r(ci,Fr,jt,Lt){var ea,Kt;e.Debug.assert(ci===void 0||(ci.flags&8)===0);var $t={enclosingDeclaration:ci,flags:Fr||0,tracker:jt&&jt.trackSymbol?jt:{trackSymbol:function(){return!1},moduleResolverHost:Fr&134217728?{getCommonSourceDirectory:l.getCommonSourceDirectory?function(){return l.getCommonSourceDirectory()}:function(){return\"\"},getCurrentDirectory:function(){return l.getCurrentDirectory()},getSymlinkCache:e.maybeBind(l,l.getSymlinkCache),getPackageJsonInfoCache:function(){var Yr;return(Yr=l.getPackageJsonInfoCache)===null||Yr===void 0?void 0:Yr.call(l)},useCaseSensitiveFileNames:e.maybeBind(l,l.useCaseSensitiveFileNames),redirectTargetsMap:l.redirectTargetsMap,getProjectReferenceRedirect:function(Yr){return l.getProjectReferenceRedirect(Yr)},isSourceOfProjectReferenceRedirect:function(Yr){return l.isSourceOfProjectReferenceRedirect(Yr)},fileExists:function(Yr){return l.fileExists(Yr)},getFileIncludeReasons:function(){return l.getFileIncludeReasons()},readFile:l.readFile?function(Yr){return l.readFile(Yr)}:void 0}:void 0},encounteredError:!1,reportedDiagnostic:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0};$t.tracker=i($t,$t.tracker);var Ua=Lt($t);return $t.truncating&&$t.flags&1&&((Kt=(ea=$t.tracker)===null||ea===void 0?void 0:ea.reportTruncationError)===null||Kt===void 0||Kt.call(ea)),$t.encounteredError?void 0:Ua}function i(ci,Fr){var jt=Fr.trackSymbol;return Ke(Ke({},Fr),{reportCyclicStructureError:Lt(Fr.reportCyclicStructureError),reportInaccessibleThisError:Lt(Fr.reportInaccessibleThisError),reportInaccessibleUniqueSymbolError:Lt(Fr.reportInaccessibleUniqueSymbolError),reportLikelyUnsafeImportRequiredError:Lt(Fr.reportLikelyUnsafeImportRequiredError),reportNonlocalAugmentation:Lt(Fr.reportNonlocalAugmentation),reportPrivateInBaseOfClassExpression:Lt(Fr.reportPrivateInBaseOfClassExpression),reportNonSerializableProperty:Lt(Fr.reportNonSerializableProperty),trackSymbol:jt&&function(){for(var ea=[],Kt=0;Kt(ci.flags&1?e.noTruncationMaximumTruncationLength:e.defaultMaximumTruncationLength)}function o(ci,Fr){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var jt=Fr.flags&8388608;if(Fr.flags&=-8388609,!ci){if(!(Fr.flags&262144)){Fr.encounteredError=!0;return}return Fr.approximateLength+=3,e.factory.createKeywordTypeNode(130)}if(Fr.flags&536870912||(ci=bu(ci)),ci.flags&1)return ci.aliasSymbol?e.factory.createTypeReferenceNode(Ra(ci.aliasSymbol),z(ci.aliasTypeArguments,Fr)):ci===Ue?e.addSyntheticLeadingComment(e.factory.createKeywordTypeNode(130),3,\"unresolved\"):(Fr.approximateLength+=3,e.factory.createKeywordTypeNode(ci===De?138:130));if(ci.flags&2)return e.factory.createKeywordTypeNode(155);if(ci.flags&4)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(150);if(ci.flags&8)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(147);if(ci.flags&64)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(158);if(ci.flags&16&&!ci.aliasSymbol)return Fr.approximateLength+=7,e.factory.createKeywordTypeNode(133);if(ci.flags&1024&&!(ci.flags&1048576)){var Lt=Ys(ci.symbol),ea=ca(Lt,Fr,788968);if(go(Lt)===ci)return ea;var Kt=e.symbolName(ci.symbol);return e.isIdentifierText(Kt,0)?fp(ea,e.factory.createTypeReferenceNode(Kt,void 0)):e.isImportTypeNode(ea)?(ea.isTypeOf=!0,e.factory.createIndexedAccessTypeNode(ea,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt)))):e.isTypeReferenceNode(ea)?e.factory.createIndexedAccessTypeNode(e.factory.createTypeQueryNode(ea.typeName),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Kt))):e.Debug.fail(\"Unhandled type node kind returned from `symbolToTypeNode`.\")}if(ci.flags&1056)return ca(ci.symbol,Fr,788968);if(ci.flags&128)return Fr.approximateLength+=ci.value.length+2,e.factory.createLiteralTypeNode(e.setEmitFlags(e.factory.createStringLiteral(ci.value,!!(Fr.flags&268435456)),16777216));if(ci.flags&256){var $t=ci.value;return Fr.approximateLength+=(\"\"+$t).length,e.factory.createLiteralTypeNode($t<0?e.factory.createPrefixUnaryExpression(40,e.factory.createNumericLiteral(-$t)):e.factory.createNumericLiteral($t))}if(ci.flags&2048)return Fr.approximateLength+=e.pseudoBigIntToString(ci.value).length+1,e.factory.createLiteralTypeNode(e.factory.createBigIntLiteral(ci.value));if(ci.flags&512)return Fr.approximateLength+=ci.intrinsicName.length,e.factory.createLiteralTypeNode(ci.intrinsicName===\"true\"?e.factory.createTrue():e.factory.createFalse());if(ci.flags&8192){if(!(Fr.flags&1048576)){if(Lp(ci.symbol,Fr.enclosingDeclaration))return Fr.approximateLength+=6,ca(ci.symbol,Fr,111551);Fr.tracker.reportInaccessibleUniqueSymbolError&&Fr.tracker.reportInaccessibleUniqueSymbolError()}return Fr.approximateLength+=13,e.factory.createTypeOperatorNode(154,e.factory.createKeywordTypeNode(151))}if(ci.flags&16384)return Fr.approximateLength+=4,e.factory.createKeywordTypeNode(114);if(ci.flags&32768)return Fr.approximateLength+=9,e.factory.createKeywordTypeNode(153);if(ci.flags&65536)return Fr.approximateLength+=4,e.factory.createLiteralTypeNode(e.factory.createNull());if(ci.flags&131072)return Fr.approximateLength+=5,e.factory.createKeywordTypeNode(143);if(ci.flags&4096)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(151);if(ci.flags&67108864)return Fr.approximateLength+=6,e.factory.createKeywordTypeNode(148);if(e.isThisTypeParameter(ci))return Fr.flags&4194304&&(!Fr.encounteredError&&!(Fr.flags&32768)&&(Fr.encounteredError=!0),Fr.tracker.reportInaccessibleThisError&&Fr.tracker.reportInaccessibleThisError()),Fr.approximateLength+=4,e.factory.createThisTypeNode();if(!jt&&ci.aliasSymbol&&(Fr.flags&16384||Gu(ci.aliasSymbol,Fr.enclosingDeclaration))){var Ua=z(ci.aliasTypeArguments,Fr);return Ol(ci.aliasSymbol.escapedName)&&!(ci.aliasSymbol.flags&32)?e.factory.createTypeReferenceNode(e.factory.createIdentifier(\"\"),Ua):ca(ci.aliasSymbol,Fr,788968,Ua)}var Yr=e.getObjectFlags(ci);if(Yr&4)return e.Debug.assert(!!(ci.flags&524288)),ci.node?jd(ci,Tl):Tl(ci);if(ci.flags&262144||Yr&3){if(ci.flags&262144&&e.contains(Fr.inferTypeParameters,ci)){Fr.approximateLength+=e.symbolName(ci.symbol).length+6;var Ni=void 0,Hi=Tc(ci);if(Hi){var _t=sx(ci,!0);_t&&wf(Hi,_t)||(Fr.approximateLength+=9,Ni=Hi&&o(Hi,Fr))}return e.factory.createInferTypeNode(dr(ci,Fr,Ni))}if(Fr.flags&4&&ci.flags&262144&&!Gu(ci.symbol,Fr.enclosingDeclaration)){var gt=ja(ci,Fr);return Fr.approximateLength+=e.idText(gt).length,e.factory.createTypeReferenceNode(e.factory.createIdentifier(e.idText(gt)),void 0)}if(ci.symbol)return ca(ci.symbol,Fr,788968);var Vt=(ci===Rn||ci===Da)&&_e&&_e.symbol?(ci===Da?\"sub-\":\"super-\")+e.symbolName(_e.symbol):\"?\";return e.factory.createTypeReferenceNode(e.factory.createIdentifier(Vt),void 0)}if(ci.flags&1048576&&ci.origin&&(ci=ci.origin),ci.flags&3145728){var Fa=ci.flags&1048576?hd(ci.types):ci.types;if(e.length(Fa)===1)return o(Fa[0],Fr);var on=z(Fa,Fr,!0);if(on&&on.length>0)return ci.flags&1048576?e.factory.createUnionTypeNode(on):e.factory.createIntersectionTypeNode(on);!Fr.encounteredError&&!(Fr.flags&262144)&&(Fr.encounteredError=!0);return}if(Yr&48)return e.Debug.assert(!!(ci.flags&524288)),rl(ci);if(ci.flags&4194304){var zn=ci.type;Fr.approximateLength+=6;var Ga=o(zn,Fr);return e.factory.createTypeOperatorNode(140,Ga)}if(ci.flags&134217728){var Qn=ci.texts,wo=ci.types,Po=e.factory.createTemplateHead(Qn[0]),Uo=e.factory.createNodeArray(e.map(wo,function(za,$r){return e.factory.createTemplateLiteralTypeSpan(o(za,Fr),($r10)return s(Fr);Fr.symbolDepth.set(Ht,Ca+1)}Fr.visitedTypes.add(mt);var An=Fr.approximateLength,gn=$r(za),Vn=Fr.approximateLength-An;return!Fr.reportedDiagnostic&&!Fr.encounteredError&&(Fr.truncating&&(gn.truncating=!0),gn.addedLength=Vn,(Ri=vt==null?void 0:vt.serializedTypes)===null||Ri===void 0||Ri.set(ht,gn)),Fr.visitedTypes.delete(mt),Ht&&Fr.symbolDepth.set(Ht,Ca),gn;function zo(Bo){return!e.nodeIsSynthesized(Bo)&&e.getParseTreeNode(Bo)===Bo?Bo:e.setTextRange(e.factory.cloneNode(e.visitEachChild(Bo,zo,e.nullTransformationContext,us)),Bo)}function us(Bo,Io,Qo,ls,gi){return Bo&&Bo.length===0?e.setTextRange(e.factory.createNodeArray(void 0,Bo.hasTrailingComma),Bo):e.visitNodes(Bo,Io,Qo,ls,gi)}}function lp(za){if(Bc(za)||za.containsError)return Ts(za);var $r=Ru(za);if(!$r.properties.length&&!$r.indexInfos.length){if(!$r.callSignatures.length&&!$r.constructSignatures.length)return Fr.approximateLength+=2,e.setEmitFlags(e.factory.createTypeLiteralNode(void 0),1);if($r.callSignatures.length===1&&!$r.constructSignatures.length){var hi=$r.callSignatures[0],Ri=$e(hi,179,Fr);return Ri}if($r.constructSignatures.length===1&&!$r.callSignatures.length){var hi=$r.constructSignatures[0],Ri=$e(hi,180,Fr);return Ri}}var mt=e.filter($r.constructSignatures,function(Ca){return!!(Ca.flags&4)});if(e.some(mt)){var ft=e.map(mt,im),Ht=$r.callSignatures.length+($r.constructSignatures.length-mt.length)+$r.indexInfos.length+(Fr.flags&2048?e.countWhere($r.properties,function(Ca){return!(Ca.flags&4194304)}):e.length($r.properties));return Ht&&ft.push(Op($r)),o(Do(ft),Fr)}var vt=Fr.flags;Fr.flags|=4194304;var ht=id($r);Fr.flags=vt;var ma=e.factory.createTypeLiteralNode(ht);return Fr.approximateLength+=2,e.setEmitFlags(ma,Fr.flags&1024?0:1),ma}function Tl(za){var $r=xo(za);if(za.target===Pi||za.target===Qi){if(Fr.flags&2){var hi=o($r[0],Fr);return e.factory.createTypeReferenceNode(za.target===Pi?\"Array\":\"ReadonlyArray\",[hi])}var Ri=o($r[0],Fr),mt=e.factory.createArrayTypeNode(Ri);return za.target===Pi?mt:e.factory.createTypeOperatorNode(145,mt)}else if(za.target.objectFlags&8){if($r=e.sameMap($r,function(zt,La){return kg(zt,!!(za.target.elementFlags[La]&2))}),$r.length>0){var ft=$_(za),Ht=z($r.slice(0,ft),Fr);if(Ht){if(za.target.labeledElementDeclarations)for(var vt=0;vt0){var ls=(za.target.typeParameters||e.emptyArray).length;Qo=z($r.slice(vt,ls),Fr)}var ht=Fr.flags;Fr.flags|=16;var gi=ca(za.symbol,Fr,788968,Qo);return Fr.flags=ht,An?fp(An,gi):gi}}function fp(za,$r){if(e.isImportTypeNode(za)){var hi=za.typeArguments,Ri=za.qualifier;Ri&&(e.isIdentifier(Ri)?Ri=e.factory.updateIdentifier(Ri,hi):Ri=e.factory.updateQualifiedName(Ri,Ri.left,e.factory.updateIdentifier(Ri.right,hi))),hi=$r.typeArguments;for(var mt=zg($r),ft=0,Ht=mt;ft2)return[o(ci[0],Fr),e.factory.createTypeReferenceNode(\"... \".concat(ci.length-2,\" more ...\"),void 0),o(ci[ci.length-1],Fr)]}else return[e.factory.createTypeReferenceNode(\"...\",void 0)];for(var Lt=!(Fr.flags&64),ea=Lt?e.createUnderscoreEscapedMultiMap():void 0,Kt=[],$t=0,Ua=0,Yr=ci;Ua0)):ea=[ci],ea;function $t(Ua,Yr,Ni){var Hi=pl(Ua,Fr.enclosingDeclaration,Yr,!!(Fr.flags&128)),_t;if(!Hi||Fp(Hi[0],Fr.enclosingDeclaration,Hi.length===1?Yr:Fl(Yr))){var gt=Np(Hi?Hi[0]:Ua,Fr.enclosingDeclaration,Yr);if(e.length(gt)){_t=gt.map(function(Po){return e.some(Po.declarations,Fc)?Nt(Po,Fr):void 0});var Vt=gt.map(function(Po,Uo){return Uo});Vt.sort(wo);for(var Fa=Vt.map(function(Po){return gt[Po]}),on=0,zn=Fa;on1?Po(ea,ea.length-1,1):void 0,Ua=Lt||Zi(ea,0,Fr),Yr=e.getSourceFileOfNode(e.getOriginalNode(Fr.enclosingDeclaration)),Ni=e.getSourceFileOfModule(ea[0]),Hi=void 0,_t=void 0;if((e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext)&&(Ni==null?void 0:Ni.impliedNodeFormat)===e.ModuleKind.ESNext&&Ni.impliedNodeFormat!==(Yr==null?void 0:Yr.impliedNodeFormat)&&(Hi=Nt(ea[0],Fr,e.ModuleKind.ESNext),_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral(\"resolution-mode\"),e.factory.createStringLiteral(\"import\"))])))),Hi||(Hi=Nt(ea[0],Fr)),!(Fr.flags&67108864)&&e.getEmitModuleResolutionKind(ye)!==e.ModuleResolutionKind.Classic&&Hi.indexOf(\"/node_modules/\")>=0){var gt=Hi;if(e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(ye)===e.ModuleResolutionKind.NodeNext){var Vt=(Yr==null?void 0:Yr.impliedNodeFormat)===e.ModuleKind.ESNext?e.ModuleKind.CommonJS:e.ModuleKind.ESNext;Hi=Nt(ea[0],Fr,Vt),Hi.indexOf(\"/node_modules/\")>=0?Hi=gt:_t=e.factory.createImportTypeAssertionContainer(e.factory.createAssertClause(e.factory.createNodeArray([e.factory.createAssertEntry(e.factory.createStringLiteral(\"resolution-mode\"),e.factory.createStringLiteral(Vt===e.ModuleKind.ESNext?\"import\":\"require\"))])))}_t||(Fr.encounteredError=!0,Fr.tracker.reportLikelyUnsafeImportRequiredError&&Fr.tracker.reportLikelyUnsafeImportRequiredError(gt))}var Fa=e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Hi));if(Fr.tracker.trackExternalModuleSymbolOfImportTypeNode&&Fr.tracker.trackExternalModuleSymbolOfImportTypeNode(ea[0]),Fr.approximateLength+=Hi.length+10,!$t||e.isEntityName($t)){if($t){var on=e.isIdentifier($t)?$t:$t.right;on.typeArguments=void 0}return e.factory.createImportTypeNode(Fa,_t,$t,Ua,Kt)}else{var zn=qt($t),Ga=zn.objectType.typeName;return e.factory.createIndexedAccessTypeNode(e.factory.createImportTypeNode(Fa,_t,Ga,Ua,Kt),zn.indexType)}}var Qn=Po(ea,ea.length-1,0);if(e.isIndexedAccessTypeNode(Qn))return Qn;if(Kt)return e.factory.createTypeQueryNode(Qn);var on=e.isIdentifier(Qn)?Qn:Qn.right,wo=on.typeArguments;return on.typeArguments=void 0,e.factory.createTypeReferenceNode(Qn,wo);function Po(Uo,Rs,Fs){var rc=Rs===Uo.length-1?Lt:Zi(Uo,Rs,Fr),xu=Uo[Rs],Ts=Uo[Rs-1],rl;if(Rs===0)Fr.flags|=16777216,rl=of(xu,Fr),Fr.approximateLength+=(rl?rl.length:0)+1,Fr.flags^=16777216;else if(Ts&&dc(Ts)){var jd=dc(Ts);e.forEachEntry(jd,function(zg,id){if(_l(zg,xu)&&!pg(id)&&id!==\"export=\")return rl=e.unescapeLeadingUnderscores(id),!0})}if(rl===void 0){var lp=e.firstDefined(xu.declarations,e.getNameOfDeclaration);if(lp&&e.isComputedPropertyName(lp)&&e.isEntityName(lp.expression)){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createIndexedAccessTypeNode(e.factory.createParenthesizedType(e.factory.createTypeQueryNode(Tl)),e.factory.createTypeQueryNode(lp.expression)):Tl}rl=of(xu,Fr)}if(Fr.approximateLength+=rl.length+1,!(Fr.flags&16)&&Ts&&Nf(Ts)&&Nf(Ts).get(xu.escapedName)&&_l(Nf(Ts).get(xu.escapedName),xu)){var Tl=Po(Uo,Rs-1,Fs);return e.isIndexedAccessTypeNode(Tl)?e.factory.createIndexedAccessTypeNode(Tl,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl))):e.factory.createIndexedAccessTypeNode(e.factory.createTypeReferenceNode(Tl,rc),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(rl)))}var fp=e.setEmitFlags(e.factory.createIdentifier(rl,rc),16777216);if(fp.symbol=xu,Rs>Fs){var Tl=Po(Uo,Rs-1,Fs);return e.isEntityName(Tl)?e.factory.createQualifiedName(Tl,fp):e.Debug.fail(\"Impossible construct - an export of an indexed access cannot be reachable\")}return fp}}function Sn(ci,Fr,jt){var Lt=es(Fr.enclosingDeclaration,ci,788968,void 0,ci,!1);return Lt?!(Lt.flags&262144&&Lt===jt.symbol):!1}function ja(ci,Fr){var jt,Lt;if(Fr.flags&4&&Fr.typeParameterNames){var ea=Fr.typeParameterNames.get(fu(ci));if(ea)return ea}var Kt=Fn(ci.symbol,Fr,788968,!0);if(!(Kt.kind&79))return e.factory.createIdentifier(\"(Missing type parameter)\");if(Fr.flags&4){for(var $t=Kt.escapedText,Ua=((jt=Fr.typeParameterNamesByTextNextNameCount)===null||jt===void 0?void 0:jt.get($t))||0,Yr=$t;((Lt=Fr.typeParameterNamesByText)===null||Lt===void 0?void 0:Lt.has(Yr))||Sn(Yr,Fr,ci);)Ua++,Yr=\"\".concat($t,\"_\").concat(Ua);Yr!==$t&&(Kt=e.factory.createIdentifier(Yr,Kt.typeArguments)),(Fr.typeParameterNamesByTextNextNameCount||(Fr.typeParameterNamesByTextNextNameCount=new e.Map)).set($t,Ua),(Fr.typeParameterNames||(Fr.typeParameterNames=new e.Map)).set(fu(ci),Kt),(Fr.typeParameterNamesByText||(Fr.typeParameterNamesByText=new e.Set)).add($t)}return Kt}function Fn(ci,Fr,jt,Lt){var ea=Ti(ci,Fr,jt);return Lt&&ea.length!==1&&!Fr.encounteredError&&!(Fr.flags&65536)&&(Fr.encounteredError=!0),Kt(ea,ea.length-1);function Kt($t,Ua){var Yr=Zi($t,Ua,Fr),Ni=$t[Ua];Ua===0&&(Fr.flags|=16777216);var Hi=of(Ni,Fr);Ua===0&&(Fr.flags^=16777216);var _t=e.setEmitFlags(e.factory.createIdentifier(Hi,Yr),16777216);return _t.symbol=Ni,Ua>0?e.factory.createQualifiedName(Kt($t,Ua-1),_t):_t}}function wn(ci,Fr,jt){var Lt=Ti(ci,Fr,jt);return ea(Lt,Lt.length-1);function ea(Kt,$t){var Ua=Zi(Kt,$t,Fr),Yr=Kt[$t];$t===0&&(Fr.flags|=16777216);var Ni=of(Yr,Fr);$t===0&&(Fr.flags^=16777216);var Hi=Ni.charCodeAt(0);if(e.isSingleOrDoubleQuote(Hi)&&e.some(Yr.declarations,Fc))return e.factory.createStringLiteral(Nt(Yr,Fr));var _t=Hi===35?Ni.length>1&&e.isIdentifierStart(Ni.charCodeAt(1),Ae):e.isIdentifierStart(Hi,Ae);if($t===0||_t){var gt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216);return gt.symbol=Yr,$t>0?e.factory.createPropertyAccessExpression(ea(Kt,$t-1),gt):gt}else{Hi===91&&(Ni=Ni.substring(1,Ni.length-1),Hi=Ni.charCodeAt(0));var Vt=void 0;return e.isSingleOrDoubleQuote(Hi)&&!(Yr.flags&8)?Vt=e.factory.createStringLiteral(e.stripQuotes(Ni).replace(/\\\\./g,function(Fa){return Fa.substring(1)}),Hi===39):\"\"+ +Ni===Ni&&(Vt=e.factory.createNumericLiteral(+Ni)),Vt||(Vt=e.setEmitFlags(e.factory.createIdentifier(Ni,Ua),16777216),Vt.symbol=Yr),e.factory.createElementAccessExpression(ea(Kt,$t-1),Vt)}}}function Tn(ci){var Fr=e.getNameOfDeclaration(ci);return!!Fr&&e.isStringLiteral(Fr)}function Eo(ci){var Fr=e.getNameOfDeclaration(ci);return!!(Fr&&e.isStringLiteral(Fr)&&(Fr.singleQuote||!e.nodeIsSynthesized(Fr)&&e.startsWith(e.getTextOfNode(Fr,!1),\"'\")))}function lt(ci,Fr){var jt=!!e.length(ci.declarations)&&e.every(ci.declarations,Eo),Lt=it(ci,Fr,jt);if(Lt)return Lt;var ea=e.unescapeLeadingUnderscores(ci.escapedName),Kt=!!e.length(ci.declarations)&&e.every(ci.declarations,Tn);return e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye),jt,Kt)}function it(ci,Fr,jt){var Lt=Aa(ci).nameType;if(Lt){if(Lt.flags&384){var ea=\"\"+Lt.value;return!e.isIdentifierText(ea,e.getEmitScriptTarget(ye))&&!e.isNumericLiteralName(ea)?e.factory.createStringLiteral(ea,!!jt):e.isNumericLiteralName(ea)&&e.startsWith(ea,\"-\")?e.factory.createComputedPropertyName(e.factory.createNumericLiteral(+ea)):e.createPropertyNameNodeForIdentifierOrLiteral(ea,e.getEmitScriptTarget(ye))}if(Lt.flags&8192)return e.factory.createComputedPropertyName(wn(Lt.symbol,Fr,111551))}}function Yt(ci){var Fr=Ke({},ci);return Fr.typeParameterNames&&(Fr.typeParameterNames=new e.Map(Fr.typeParameterNames)),Fr.typeParameterNamesByText&&(Fr.typeParameterNamesByText=new e.Set(Fr.typeParameterNamesByText)),Fr.typeParameterSymbolList&&(Fr.typeParameterSymbolList=new e.Set(Fr.typeParameterSymbolList)),Fr.tracker=i(Fr,Fr.tracker),Fr}function Ia(ci,Fr){return ci.declarations&&e.find(ci.declarations,function(jt){return!!e.getEffectiveTypeAnnotationNode(jt)&&(!Fr||!!e.findAncestor(jt,function(Lt){return Lt===Fr}))})}function Qt(ci,Fr){return!(e.getObjectFlags(Fr)&4)||!e.isTypeReferenceNode(ci)||e.length(ci.typeArguments)>=Ul(Fr.target.typeParameters)}function Ka(ci,Fr,jt,Lt,ea,Kt){if(!nn(Fr)&&Lt){var $t=Ia(jt,Lt);if($t&&!e.isFunctionLikeDeclaration($t)&&!e.isGetAccessorDeclaration($t)){var Ua=e.getEffectiveTypeAnnotationNode($t);if(cn(Ua,$t,Fr)&&Qt(Ua,Fr)){var Yr=Mn(ci,Ua,ea,Kt);if(Yr)return Yr}}}var Ni=ci.flags;Fr.flags&8192&&Fr.symbol===jt&&(!ci.enclosingDeclaration||e.some(jt.declarations,function(_t){return e.getSourceFileOfNode(_t)===e.getSourceFileOfNode(ci.enclosingDeclaration)}))&&(ci.flags|=1048576);var Hi=o(Fr,ci);return ci.flags=Ni,Hi}function cn(ci,Fr,jt){var Lt=Va(ci);return Lt===jt?!0:e.isParameter(Fr)&&Fr.questionToken?Ks(jt,524288)===Lt:!1}function Un(ci,Fr,jt,Lt,ea){if(!nn(Fr)&&ci.enclosingDeclaration){var Kt=jt.declaration&&e.getEffectiveReturnTypeNode(jt.declaration);if(!!e.findAncestor(Kt,function(Ni){return Ni===ci.enclosingDeclaration})&&Kt){var $t=Va(Kt),Ua=$t.flags&262144&&$t.isThisType?un($t,jt.mapper):$t;if(Ua===Fr&&Qt(Kt,Fr)){var Yr=Mn(ci,Kt,Lt,ea);if(Yr)return Yr}}}return o(Fr,ci)}function oa(ci,Fr,jt){var Lt,ea,Kt=!1,$t=e.getFirstIdentifier(ci);if(e.isInJSFile(ci)&&(e.isExportsIdentifier($t)||e.isModuleExportsAccessExpression($t.parent)||e.isQualifiedName($t.parent)&&e.isModuleIdentifier($t.parent.left)&&e.isExportsIdentifier($t.parent.right)))return Kt=!0,{introducesError:Kt,node:ci};var Ua=Ds($t,67108863,!0,!0);if(Ua&&(g_(Ua,Fr.enclosingDeclaration,67108863,!1).accessibility!==0?Kt=!0:((ea=(Lt=Fr.tracker)===null||Lt===void 0?void 0:Lt.trackSymbol)===null||ea===void 0||ea.call(Lt,Ua,Fr.enclosingDeclaration,67108863),jt==null||jt(Ua)),e.isIdentifier(ci))){var Yr=go(Ua),Ni=Ua.flags&262144&&!Gu(Yr.symbol,Fr.enclosingDeclaration)?ja(Yr,Fr):e.factory.cloneNode(ci);return Ni.symbol=Ua,{introducesError:Kt,node:e.setEmitFlags(e.setOriginalNode(Ni,ci),16777216)}}return{introducesError:Kt,node:ci}}function Mn(ci,Fr,jt,Lt){g&&g.throwIfCancellationRequested&&g.throwIfCancellationRequested();var ea=!1,Kt=e.getSourceFileOfNode(Fr),$t=e.visitNode(Fr,Ua);if(ea)return;return $t===Fr?e.setTextRange(e.factory.cloneNode(Fr),Fr):$t;function Ua(Yr){if(e.isJSDocAllType(Yr)||Yr.kind===319)return e.factory.createKeywordTypeNode(130);if(e.isJSDocUnknownType(Yr))return e.factory.createKeywordTypeNode(155);if(e.isJSDocNullableType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createLiteralTypeNode(e.factory.createNull())]);if(e.isJSDocOptionalType(Yr))return e.factory.createUnionTypeNode([e.visitNode(Yr.type,Ua),e.factory.createKeywordTypeNode(153)]);if(e.isJSDocNonNullableType(Yr))return e.visitNode(Yr.type,Ua);if(e.isJSDocVariadicType(Yr))return e.factory.createArrayTypeNode(e.visitNode(Yr.type,Ua));if(e.isJSDocTypeLiteral(Yr))return e.factory.createTypeLiteralNode(e.map(Yr.jsDocPropertyTags,function(Ga){var Qn=e.isIdentifier(Ga.name)?Ga.name:Ga.name.right,wo=da(Va(Yr),Qn.escapedText),Po=wo&&Ga.typeExpression&&Va(Ga.typeExpression.type)!==wo?o(wo,ci):void 0;return e.factory.createPropertySignature(void 0,Qn,Ga.isBracketed||Ga.typeExpression&&e.isJSDocOptionalType(Ga.typeExpression.type)?e.factory.createToken(57):void 0,Po||Ga.typeExpression&&e.visitNode(Ga.typeExpression.type,Ua)||e.factory.createKeywordTypeNode(130))}));if(e.isTypeReferenceNode(Yr)&&e.isIdentifier(Yr.typeName)&&Yr.typeName.escapedText===\"\")return e.setOriginalNode(e.factory.createKeywordTypeNode(130),Yr);if((e.isExpressionWithTypeArguments(Yr)||e.isTypeReferenceNode(Yr))&&e.isJSDocIndexSignature(Yr))return e.factory.createTypeLiteralNode([e.factory.createIndexSignature(void 0,void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,\"x\",void 0,e.visitNode(Yr.typeArguments[0],Ua))],e.visitNode(Yr.typeArguments[1],Ua))]);if(e.isJSDocFunctionType(Yr))if(e.isJSDocConstructSignature(Yr)){var Ni;return e.factory.createConstructorTypeNode(Yr.modifiers,e.visitNodes(Yr.typeParameters,Ua),e.mapDefined(Yr.parameters,function(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText===\"new\"?(Ni=Ga.type,void 0):e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Ni||Yr.type,Ua)||e.factory.createKeywordTypeNode(130))}else return e.factory.createFunctionTypeNode(e.visitNodes(Yr.typeParameters,Ua),e.map(Yr.parameters,function(Ga,Qn){return e.factory.createParameterDeclaration(void 0,void 0,Fa(Ga),on(Ga,Qn),Ga.questionToken,e.visitNode(Ga.type,Ua),void 0)}),e.visitNode(Yr.type,Ua)||e.factory.createKeywordTypeNode(130));if(e.isTypeReferenceNode(Yr)&&e.isInJSDoc(Yr)&&(!Qt(Yr,Va(Yr))||vx(Yr)||xe===nm(Yr,788968,!0)))return e.setOriginalNode(o(Va(Yr),ci),Yr);if(e.isLiteralImportTypeNode(Yr)){var Hi=va(Yr).resolvedSymbol;return e.isInJSDoc(Yr)&&Hi&&(!Yr.isTypeOf&&!(Hi.flags&788968)||!(e.length(Yr.typeArguments)>=Ul(Af(Hi))))?e.setOriginalNode(o(Va(Yr),ci),Yr):e.factory.updateImportTypeNode(Yr,e.factory.updateLiteralTypeNode(Yr.argument,zn(Yr,Yr.argument.literal)),Yr.qualifier,e.visitNodes(Yr.typeArguments,Ua,e.isTypeNode),Yr.isTypeOf)}if(e.isEntityName(Yr)||e.isEntityNameExpression(Yr)){var _t=oa(Yr,ci,jt),gt=_t.introducesError,Vt=_t.node;if(ea=ea||gt,Vt!==Yr)return Vt}return Kt&&e.isTupleTypeNode(Yr)&&e.getLineAndCharacterOfPosition(Kt,Yr.pos).line===e.getLineAndCharacterOfPosition(Kt,Yr.end).line&&e.setEmitFlags(Yr,1),e.visitEachChild(Yr,Ua,e.nullTransformationContext);function Fa(Ga){return Ga.dotDotDotToken||(Ga.type&&e.isJSDocVariadicType(Ga.type)?e.factory.createToken(25):void 0)}function on(Ga,Qn){return Ga.name&&e.isIdentifier(Ga.name)&&Ga.name.escapedText===\"this\"?\"this\":Fa(Ga)?\"args\":\"arg\".concat(Qn)}function zn(Ga,Qn){if(Lt){if(ci.tracker&&ci.tracker.moduleResolverHost){var wo=US(Ga);if(wo){var Po=e.createGetCanonicalFileName(!!l.useCaseSensitiveFileNames),Uo={getCanonicalFileName:Po,getCurrentDirectory:function(){return ci.tracker.moduleResolverHost.getCurrentDirectory()},getCommonSourceDirectory:function(){return ci.tracker.moduleResolverHost.getCommonSourceDirectory()}},Rs=e.getResolvedExternalModuleName(Uo,wo);return e.factory.createStringLiteral(Rs)}}}else if(ci.tracker&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode){var Fs=Pl(Qn,Qn,void 0);Fs&&ci.tracker.trackExternalModuleSymbolOfImportTypeNode(Fs)}return Qn}}}function Ln(ci,Fr,jt){var Lt=Ca(e.factory.createPropertyDeclaration,169,!0),ea=Ca(function(gi,zt,La,fa,ya){return e.factory.createPropertySignature(zt,La,fa,ya)},168,!1),Kt=Fr.enclosingDeclaration,$t=[],Ua=new e.Set,Yr=[],Ni=Fr;Fr=Ke(Ke({},Ni),{usedSymbolNames:new e.Set(Ni.usedSymbolNames),remappedSymbolNames:new e.Map,tracker:Ke(Ke({},Ni.tracker),{trackSymbol:function(gi,zt,La){var fa=g_(gi,zt,La,!1);if(fa.accessibility===0){var ya=Ci(gi,Fr,La);gi.flags&4||rc(ya[0])}else if(Ni.tracker&&Ni.tracker.trackSymbol)return Ni.tracker.trackSymbol(gi,zt,La);return!1}})}),Fr.tracker=i(Fr,Fr.tracker),e.forEachEntry(ci,function(gi,zt){var La=e.unescapeLeadingUnderscores(zt);ls(gi,La)});var Hi=!jt,_t=ci.get(\"export=\");return _t&&ci.size>1&&_t.flags&2097152&&(ci=e.createSymbolTable(),ci.set(\"export=\",_t)),Uo(ci),Ga($t);function gt(gi){return!!gi&&gi.kind===79}function Vt(gi){return e.isVariableStatement(gi)?e.filter(e.map(gi.declarationList.declarations,e.getNameOfDeclaration),gt):e.filter([e.getNameOfDeclaration(gi)],gt)}function Fa(gi){var zt=e.find(gi,e.isExportAssignment),La=e.findIndex(gi,e.isModuleDeclaration),fa=La!==-1?gi[La]:void 0;if(fa&&zt&&zt.isExportEquals&&e.isIdentifier(zt.expression)&&e.isIdentifier(fa.name)&&e.idText(fa.name)===e.idText(zt.expression)&&fa.body&&e.isModuleBlock(fa.body)){var ya=e.filter(gi,function(sn){return!!(e.getEffectiveModifierFlags(sn)&1)}),Nn=fa.name,fn=fa.body;if(e.length(ya)&&(fa=e.factory.updateModuleDeclaration(fa,fa.decorators,fa.modifiers,fa.name,fn=e.factory.updateModuleBlock(fn,e.factory.createNodeArray(Ve(Ve([],fa.body.statements,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.map(e.flatMap(ya,function(sn){return Vt(sn)}),function(sn){return e.factory.createExportSpecifier(!1,void 0,sn)})),void 0)],!1)))),gi=Ve(Ve(Ve([],gi.slice(0,La),!0),[fa],!1),gi.slice(La+1),!0)),!e.find(gi,function(sn){return sn!==fa&&e.nodeHasName(sn,Nn)})){$t=[];var hn=!e.some(fn.statements,function(sn){return e.hasSyntacticModifier(sn,1)||e.isExportAssignment(sn)||e.isExportDeclaration(sn)});e.forEach(fn.statements,function(sn){Ts(sn,hn?1:0)}),gi=Ve(Ve([],e.filter(gi,function(sn){return sn!==fa&&sn!==zt}),!0),$t,!0)}}return gi}function on(gi){var zt=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(zt)>1){var La=e.filter(gi,function(ln){return!e.isExportDeclaration(ln)||!!ln.moduleSpecifier||!ln.exportClause});gi=Ve(Ve([],La,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(zt,function(ln){return e.cast(ln.exportClause,e.isNamedExports).elements})),void 0)],!1)}var fa=e.filter(gi,function(ln){return e.isExportDeclaration(ln)&&!!ln.moduleSpecifier&&!!ln.exportClause&&e.isNamedExports(ln.exportClause)});if(e.length(fa)>1){var ya=e.group(fa,function(ln){return e.isStringLiteral(ln.moduleSpecifier)?\">\"+ln.moduleSpecifier.text:\">\"});if(ya.length!==fa.length)for(var Nn=function(ln){ln.length>1&&(gi=Ve(Ve([],e.filter(gi,function(lo){return ln.indexOf(lo)===-1}),!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(ln,function(lo){return e.cast(lo.exportClause,e.isNamedExports).elements})),ln[0].moduleSpecifier)],!1))},fn=0,hn=ya;fn=0){var La=gi[zt],fa=e.mapDefined(La.exportClause.elements,function(ya){if(!ya.propertyName){var Nn=e.indicesOf(gi),fn=e.filter(Nn,function(lo){return e.nodeHasName(gi[lo],ya.name)});if(e.length(fn)&&e.every(fn,function(lo){return Qn(gi[lo])})){for(var hn=0,sn=fn;hn0&&e.isSingleOrDoubleQuote(fa.charCodeAt(0))?e.stripQuotes(fa):fa}return zt===\"default\"?zt=\"_default\":zt===\"export=\"&&(zt=\"_exports\"),zt=e.isIdentifierText(zt,Ae)&&!e.isStringANonContextualKeyword(zt)?zt:\"_\"+zt.replace(/[^a-zA-Z0-9]/g,\"_\"),zt}function ls(gi,zt){var La=y(gi);return Fr.remappedSymbolNames.has(La)?Fr.remappedSymbolNames.get(La):(zt=Qo(gi,zt),Fr.remappedSymbolNames.set(La,zt),zt)}}}function Ll(r,i,t,o){return t===void 0&&(t=16384),o?s(o).getText():e.usingSingleLineStringWriter(s);function s(u){var h=e.factory.createTypePredicateNode(r.kind===2||r.kind===3?e.factory.createToken(128):void 0,r.kind===1||r.kind===3?e.factory.createIdentifier(r.parameterName):e.factory.createThisTypeNode(),r.type&&Ur.typeToTypeNode(r.type,i,Rp(t)|70221824|512)),z=e.createPrinter({removeComments:!0}),me=i&&e.getSourceFileOfNode(i);return z.writeNode(4,h,me,u),u}}function hd(r){for(var i=[],t=0,o=0;o=0){for(var o=eu.length,s=t;s=0;t--){if(sr(eu[t],pu[t]))return-1;if(eu[t]===r&&pu[t]===i)return t}return-1}function sr(r,i){switch(i){case 0:return!!Aa(r).type;case 5:return!!va(r).resolvedEnumType;case 2:return!!Aa(r).declaredType;case 1:return!!r.resolvedBaseConstructorType;case 3:return!!r.resolvedReturnType;case 4:return!!r.immediateBaseConstraint;case 6:return!!r.resolvedTypeArguments;case 7:return!!r.baseTypesResolved;case 8:return!!Aa(r).writeType}return e.Debug.assertNever(i)}function fi(){return eu.pop(),pu.pop(),Ws.pop()}function zi(r){return e.findAncestor(e.getRootDeclaration(r),function(i){switch(i.kind){case 254:case 255:case 270:case 269:case 268:case 267:return!1;default:return!0}}).parent}function Sa(r){var i=go(Ys(r));return i.typeParameters?Yf(i,e.map(i.typeParameters,function(t){return Oe})):i}function da(r,i){var t=bi(r,i);return t?Jt(t):void 0}function Ha(r,i){var t;return da(r,i)||((t=Xo(r,i))===null||t===void 0?void 0:t.type)||gr}function ta(r){return r&&(r.flags&1)!==0}function nn(r){return r===Pe||!!(r.flags&1&&r.aliasSymbol)}function Wo(r,i){if(i!==0)return G_(r,!1,i);var t=Et(r);return t&&Aa(t).type||G_(r,!1,i)}function Lo(r,i,t){if(r=ec(r,function(li){return!(li.flags&98304)}),r.flags&131072)return Ba;if(r.flags&1048576)return Ss(r,function(li){return Lo(li,i,t)});for(var o=Pa(e.map(i,Z_)),s=[],u=[],h=0,z=uo(r);h=2?B3(Oe):mo;var h=e.map(o,function($e){return e.isOmittedExpression($e)?Oe:vs($e,i,t)}),z=e.findLastIndex(o,function($e){return!($e===u||e.isOmittedExpression($e)||pm($e))},o.length-1)+1,me=e.map(o,function($e,tr){return $e===u?4:tr>=z?2:1}),Me=Wl(h,me);return i&&(Me=ux(Me),Me.pattern=r,Me.objectFlags|=131072),Me}function Qu(r,i,t){return i===void 0&&(i=!1),t===void 0&&(t=!1),r.kind===201?Ac(r,i,t):Is(r,i,t)}function sc(r,i){return Mc(G_(r,!0,0),r,i)}function bc(r){var i=Et(r),t=x3(!1);return t&&i&&i===t}function Mc(r,i,t){return r?(r.flags&4096&&bc(i.parent)&&(r=CD(i)),t&&Kh(i,r),r.flags&8192&&(e.isBindingElement(i)||!i.type)&&r.symbol!==Et(i)&&(r=Ki),$c(r)):(r=e.isParameter(i)&&i.dotDotDotToken?mo:Oe,t&&(Yu(i)||Xp(i,r)),r)}function Yu(r){var i=e.getRootDeclaration(r),t=i.kind===164?i.parent:i;return I0(t)}function Rl(r){var i=e.getEffectiveTypeAnnotationNode(r);if(i)return Va(i)}function Lc(r){var i=Aa(r);if(!i.type){var t=_(r);i.type||(i.type=t)}return i.type}function _(r){if(r.flags&4194304)return Sa(r);if(r===qr)return Oe;if(r.flags&134217728&&r.valueDeclaration){var i=Et(e.getSourceFileOfNode(r.valueDeclaration)),t=oo(i.flags,\"exports\");t.declarations=i.declarations?i.declarations.slice():[],t.parent=r,t.target=i,i.valueDeclaration&&(t.valueDeclaration=i.valueDeclaration),i.members&&(t.members=new e.Map(i.members)),i.exports&&(t.exports=new e.Map(i.exports));var o=e.createSymbolTable();return o.set(\"exports\",t),rs(r,o,e.emptyArray,e.emptyArray,e.emptyArray)}e.Debug.assertIsDefined(r.valueDeclaration);var s=r.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(s)){var u=e.getEffectiveTypeAnnotationNode(s);if(u===void 0)return be?gr:Oe;var h=Bd(u);return ta(h)||h===gr?h:Pe}if(e.isSourceFile(s)&&e.isJsonSourceFile(s))return s.statements.length?$c(Hp(yn(s.statements[0].expression))):Ba;if(e.isAccessor(s))return rt(r);if(!yu(r,0))return r.flags&512&&!(r.flags&67108864)?vo(r):lg(r);var z;if(s.kind===271)z=Mc(Rl(s)||Os(s.expression),s);else if(e.isBinaryExpression(s)||e.isInJSFile(s)&&(e.isCallExpression(s)||(e.isPropertyAccessExpression(s)||e.isBindableStaticElementAccessExpression(s))&&e.isBinaryExpression(s.parent)))z=Ta(r);else if(e.isPropertyAccessExpression(s)||e.isElementAccessExpression(s)||e.isIdentifier(s)||e.isStringLiteralLike(s)||e.isNumericLiteral(s)||e.isClassDeclaration(s)||e.isFunctionDeclaration(s)||e.isMethodDeclaration(s)&&!e.isObjectLiteralMethod(s)||e.isMethodSignature(s)||e.isSourceFile(s)){if(r.flags&9136)return vo(r);z=e.isBinaryExpression(s.parent)?Ta(r):Rl(s)||Oe}else if(e.isPropertyAssignment(s))z=Rl(s)||Kk(s);else if(e.isJsxAttribute(s))z=Rl(s)||OC(s);else if(e.isShorthandPropertyAssignment(s))z=Rl(s)||Dm(s.name,0);else if(e.isObjectLiteralMethod(s))z=Rl(s)||Gk(s,0);else if(e.isParameter(s)||e.isPropertyDeclaration(s)||e.isPropertySignature(s)||e.isVariableDeclaration(s)||e.isBindingElement(s)||e.isJSDocPropertyLikeTag(s))z=sc(s,!0);else if(e.isEnumDeclaration(s))z=vo(r);else if(e.isEnumMember(s))z=H_(r);else return e.Debug.fail(\"Unhandled declaration kind! \"+e.Debug.formatSyntaxKind(s.kind)+\" for \"+e.Debug.formatSymbol(r));return fi()?z:r.flags&512&&!(r.flags&67108864)?vo(r):lg(r)}function W(r){if(r)if(r.kind===172){var i=e.getEffectiveReturnTypeNode(r);return i}else{var t=e.getEffectiveSetAccessorTypeAnnotationNode(r);return t}}function Te(r){var i=W(r);return i&&Va(i)}function cr(r){var i=qS(r);return i&&i.symbol}function ni(r){return T_(yl(r))}function rt(r){var i=Aa(r);if(!i.type){if(!yu(r,0))return Pe;var t=e.getDeclarationOfKind(r,172),o=e.getDeclarationOfKind(r,173),s=t&&e.isInJSFile(t)&&K_(t)||Te(t)||Te(o)||t&&t.body&&C0(t);s||(o&&!I0(o)?Ic(n,o,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,tn(r)):t&&!I0(t)&&Ic(n,t,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,tn(r)),s=Oe),fi()||(W(t)?Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):W(o)?Xr(o,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)):t&&n&&Xr(t,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,tn(r)),s=Oe),i.type=s}return i.type}function yt(r){var i=Aa(r);if(!i.writeType){if(!yu(r,8))return Pe;var t=e.getDeclarationOfKind(r,173),o=Te(t);fi()||(W(t)&&Xr(t,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),o=Oe),i.writeType=o||rt(r)}return i.writeType}function Xa(r){var i=Bl(aa(r));return i.flags&8650752?i:i.flags&2097152?e.find(i.types,function(t){return!!(t.flags&8650752)}):void 0}function vo(r){var i=Aa(r),t=i;if(!i.type){var o=r.valueDeclaration&&T0(r.valueDeclaration,!1);if(o){var s=iS(r,o);s&&(r=i=s)}t.type=i.type=Vs(r)}return i.type}function Vs(r){var i=r.valueDeclaration;if(r.flags&1536&&e.isShorthandAmbientModuleSymbol(r))return Oe;if(i&&(i.kind===221||e.isAccessExpression(i)&&i.parent.kind===221))return Ta(r);if(r.flags&512&&i&&e.isSourceFile(i)&&i.commonJsModuleIndicator){var t=Us(r);if(t!==r){if(!yu(r,0))return Pe;var o=so(r.exports.get(\"export=\")),s=Ta(o,o===t?void 0:t);return fi()?s:lg(r)}}var u=tu(16,r);if(r.flags&32){var h=Xa(r);return h?Do([u,h]):u}else return Ye&&r.flags&16777216?i_(u):u}function H_(r){var i=Aa(r);return i.type||(i.type=hu(r))}function y_(r){var i=Aa(r);if(!i.type){var t=Ps(r),o=r.declarations&&Ec(ru(r),!0),s=e.firstDefined(o==null?void 0:o.declarations,function(u){return e.isExportAssignment(u)?Rl(u):void 0});i.type=(o==null?void 0:o.declarations)&&z0(o.declarations)&&r.declarations.length?di(o):z0(r.declarations)?nr:s||(t.flags&111551?Jt(t):Pe)}return i.type}function Dd(r){var i=Aa(r);return i.type||(i.type=un(Jt(i.target),i.mapper))}function jp(r){var i=Aa(r);return i.writeType||(i.writeType=un(Vg(i.target),i.mapper))}function lg(r){var i=r.valueDeclaration;return e.getEffectiveTypeAnnotationNode(i)?(Xr(r.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,tn(r)),Pe):(n&&(i.kind!==164||i.initializer)&&Xr(r.valueDeclaration,e.Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer,tn(r)),Oe)}function Om(r){var i=Aa(r);return i.type||(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.type=i.deferralParent.flags&1048576?Pa(i.deferralConstituents):Do(i.deferralConstituents)),i.type}function Fm(r){var i=Aa(r);return!i.writeType&&i.deferralWriteConstituents&&(e.Debug.assertIsDefined(i.deferralParent),e.Debug.assertIsDefined(i.deferralConstituents),i.writeType=i.deferralParent.flags&1048576?Pa(i.deferralWriteConstituents):Do(i.deferralWriteConstituents)),i.writeType}function Vg(r){var i=e.getCheckFlags(r);return r.flags&4?i&2?i&65536?Fm(r)||Om(r):r.writeType||r.type:Jt(r):r.flags&98304?i&1?jp(r):yt(r):Jt(r)}function Jt(r){var i=e.getCheckFlags(r);return i&65536?Om(r):i&1?Dd(r):i&262144?J1(r):i&8192?qw(r):r.flags&7?Lc(r):r.flags&9136?vo(r):r.flags&8?H_(r):r.flags&98304?rt(r):r.flags&2097152?y_(r):Pe}function ml(r){return kg(Jt(r),!!(r.flags&16777216))}function Xf(r,i){return r!==void 0&&i!==void 0&&(e.getObjectFlags(r)&4)!==0&&r.target===i}function bd(r){return e.getObjectFlags(r)&4?r.target:r}function lf(r,i){return t(r);function t(o){if(e.getObjectFlags(o)&7){var s=bd(o);return s===i||e.some(Qc(s),t)}else if(o.flags&2097152)return e.some(o.types,t);return!1}}function Kg(r,i){for(var t=0,o=i;t0)return!0;if(r.flags&8650752){var i=uc(r);return!!i&&Wd(i)}return!1}function fg(r){var i=e.getClassLikeDeclarationOfSymbol(r.symbol);return i&&e.getEffectiveBaseTypeNode(i)}function Mm(r,i,t){var o=e.length(i),s=e.isInJSFile(t);return e.filter(ot(r,1),function(u){return(s||o>=Ul(u.typeParameters))&&o<=e.length(u.typeParameters)})}function Xg(r,i,t){var o=Mm(r,i,t),s=e.map(i,Va);return e.sameMap(o,function(u){return e.some(u.typeParameters)?Xm(u,s,e.isInJSFile(t)):u})}function Bl(r){if(!r.resolvedBaseConstructorType){var i=e.getClassLikeDeclarationOfSymbol(r.symbol),t=i&&e.getEffectiveBaseTypeNode(i),o=fg(r);if(!o)return r.resolvedBaseConstructorType=Tr;if(!yu(r,1))return Pe;var s=yn(o.expression);if(t&&o!==t&&(e.Debug.assert(!t.typeArguments),yn(t.expression)),s.flags&2621440&&Ru(s),!fi())return Xr(r.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,tn(r.symbol)),r.resolvedBaseConstructorType=Pe;if(!(s.flags&1)&&s!==ct&&!qd(s)){var u=Xr(o.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,Ot(s));if(s.flags&262144){var h=tm(s),z=gr;if(h){var me=ot(h,1);me[0]&&(z=yo(me[0]))}s.symbol.declarations&&e.addRelatedInfo(u,e.createDiagnosticForNode(s.symbol.declarations[0],e.Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1,tn(s.symbol),Ot(z)))}return r.resolvedBaseConstructorType=Pe}r.resolvedBaseConstructorType=s}return r.resolvedBaseConstructorType}function Qg(r){var i=e.emptyArray;if(r.symbol.declarations)for(var t=0,o=r.symbol.declarations;t=Dr&&me<=Qr){var li=Qr?mh(dr,zp(z,dr.typeParameters,Dr,h)):xd(dr);li.typeParameters=r.localTypeParameters,li.resolvedReturnType=r,li.flags=s?li.flags|4:li.flags&-5,Me.push(li)}}return Me}function gg(r,i,t,o,s){for(var u=0,h=r;u0)return;for(var o=1;o1&&(t=t===void 0?o:-1);for(var s=0,u=r[o];s1){var Me=h.thisParameter,$e=e.forEach(z,function(Zi){return Zi.thisParameter});if($e){var tr=Do(e.mapDefined(z,function(Zi){return Zi.thisParameter&&Jt(Zi.thisParameter)}));Me=eg($e,tr)}me=Uv(h,z),me.thisParameter=Me}(i||(i=[])).push(me)}}}}if(!e.length(i)&&t!==-1){for(var dr=r[t!==void 0?t:0],Dr=dr.slice(),Qr=function(Zi){if(Zi!==dr){var qt=Zi[0];if(e.Debug.assert(!!qt,\"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass\"),Dr=!!qt.typeParameters&&e.some(Dr,function(Nt){return!!Nt.typeParameters&&!ah(qt.typeParameters,Nt.typeParameters)})?void 0:e.map(Dr,function(Nt){return M1(Nt,qt)}),!Dr)return\"break\"}},li=0,Ti=r;li=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||\"arg\".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,\"args\");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function M1(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=nh(r,i,o),h=F1(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=1048576,me.compositeSignatures=e.concatenate(r.compositeKind!==2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind!==2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function oh(r){var i=Hn(r[0]);if(i){for(var t=[],o=function(z){var me=z.keyType;e.every(r,function(Me){return!!ss(Me,me)})&&t.push(zl(me,Pa(e.map(r,function(Me){return cs(Me,me)})),e.some(r,function(Me){return ss(Me,me).isReadonly})))},s=0,u=i;s0}),t=e.map(r,Wd);if(i>0&&i===e.countWhere(t,function(s){return s})){var o=t.indexOf(!0);t[o]=!1}return t}function sh(r,i,t,o){for(var s=[],u=0;u0&&(tr=e.map(tr,function(dr){var Dr=xd(dr);return Dr.resolvedReturnType=sh(yo(dr),s,u,Me),Dr})),t=ch(t,tr)}i=ch(i,ot($e,0)),o=e.reduceLeft(Hn($e),function(dr,Dr){return uh(dr,Dr,!1)},o)},me=0;me2?(Qt.checkFlags|=65536,Qt.deferralParent=r,Qt.deferralConstituents=wn,Qt.deferralWriteConstituents=Tn):(Qt.type=me?Pa(wn):Do(wn),Tn&&(Qt.writeType=me?Pa(Tn):Do(Tn))),Qt}}function $v(r,i,t){var o,s,u=((o=r.propertyCacheWithoutObjectFunctionPropertyAugment)===null||o===void 0?void 0:o.get(i))||!t?(s=r.propertyCache)===null||s===void 0?void 0:s.get(i):void 0;if(!u&&(u=Yv(r,i,t),u)){var h=t?r.propertyCacheWithoutObjectFunctionPropertyAugment||(r.propertyCacheWithoutObjectFunctionPropertyAugment=e.createSymbolTable()):r.propertyCache||(r.propertyCache=e.createSymbolTable());h.set(i,u)}return u}function Zv(r,i,t){var o=$v(r,i,t);return o&&!(e.getCheckFlags(o)&16)?o:void 0}function bu(r){return r.flags&1048576&&r.objectFlags&16777216?r.resolvedReducedType||(r.resolvedReducedType=$1(r)):r.flags&2097152?(r.objectFlags&16777216||(r.objectFlags|=16777216|(e.some(em(r),c)?33554432:0)),r.objectFlags&33554432?ui:r):r}function $1(r){var i=e.sameMap(r.types,bu);if(i===r.types)return r;var t=Pa(i);return t.flags&1048576&&(t.resolvedReducedType=t),t}function c(r){return te(r)||xr(r)}function te(r){return!(r.flags&16777216)&&(e.getCheckFlags(r)&131264)===192&&!!(Jt(r).flags&131072)}function xr(r){return!r.valueDeclaration&&!!(e.getCheckFlags(r)&1024)}function ei(r,i){if(i.flags&2097152&&e.getObjectFlags(i)&33554432){var t=e.find(em(i),te);if(t)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents,Ot(i,void 0,536870912),tn(t));var o=e.find(em(i),xr);if(o)return e.chainDiagnosticMessages(r,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some,Ot(i,void 0,536870912),tn(o))}return r}function bi(r,i,t){if(r=Xd(r),r.flags&524288){var o=Ru(r),s=o.members.get(i);if(s&&gc(s))return s;if(t)return;var u=o===xn?br:o.callSignatures.length?Zr:o.constructSignatures.length?Si:void 0;if(u){var h=h_(u,i);if(h)return h}return h_(qe,i)}if(r.flags&3145728)return Zv(r,i,t)}function Ft(r,i){if(r.flags&3670016){var t=Ru(r);return i===0?t.callSignatures:t.constructSignatures}return e.emptyArray}function ot(r,i){return Ft(Xd(r),i)}function xa(r,i){return e.find(r,function(t){return t.keyType===i})}function mn(r,i){for(var t,o,s,u=0,h=r;u=0),t>=Hl(i,3)}var o=e.getImmediatelyInvokedFunctionExpression(r.parent);return o?!r.type&&!r.dotDotDotToken&&r.parent.parameters.indexOf(r)>=o.arguments.length:!1}function qm(r){return e.isPropertyDeclaration(r)&&r.questionToken}function Vm(r){if(!e.isJSDocPropertyLikeTag(r))return!1;var i=r.isBracketed,t=r.typeExpression;return i||!!t&&t.type.kind===316}function vg(r,i,t,o){return{kind:r,parameterName:i,parameterIndex:t,type:o}}function Ul(r){var i=0;if(r)for(var t=0;t=t&&u<=s){for(var h=r?r.slice():[],z=u;zz.arguments.length&&!Dr||Cd(tr);li||(s=t.length)}if((r.kind===172||r.kind===173)&&Td(r)&&(!h||!u)){var Ti=r.kind===172?173:172,Ci=e.getDeclarationOfKind(Et(r),Ti);Ci&&(u=cr(Ci))}var $i=r.kind===171?aa(so(r.parent.symbol)):void 0,Zi=$i?$i.localTypeParameters:jl(r);(e.hasRestParameter(r)||e.isInJSFile(r)&&ey(r,t))&&(o|=1),(e.isConstructorTypeNode(r)&&e.hasSyntacticModifier(r,128)||e.isConstructorDeclaration(r)&&e.hasSyntacticModifier(r.parent,128))&&(o|=4),i.resolvedSignature=Fu(r,Zi,u,t,void 0,void 0,s,o)}return i.resolvedSignature}function ey(r,i){if(e.isJSDocSignature(r)||!Gm(r))return!1;var t=e.lastOrUndefined(r.parameters),o=t?e.getJSDocParameterTags(t):e.getJSDocTags(r).filter(e.isJSDocParameterTag),s=e.firstDefined(o,function(h){return h.typeExpression&&e.isJSDocVariadicType(h.typeExpression.type)?h.typeExpression.type:void 0}),u=oo(3,\"args\",32768);return s?u.type=Zs(Va(s.type)):(u.checkFlags|=65536,u.deferralParent=ui,u.deferralConstituents=[mo],u.deferralWriteConstituents=[mo]),s&&i.pop(),i.push(u),!0}function rm(r){if(!!(e.isInJSFile(r)&&e.isFunctionLikeDeclaration(r))){var i=e.getJSDocTypeTag(r);return(i==null?void 0:i.typeExpression)&&ig(Va(i.typeExpression))}}function Km(r,i){var t=rm(r);if(!!t){var o=r.parameters.indexOf(i);return i.dotDotDotToken?ym(t,o):$u(t,o)}}function ry(r){var i=rm(r);return i&&yo(i)}function Gm(r){var i=va(r);return i.containsArgumentsReference===void 0&&(i.flags&8192?i.containsArgumentsReference=!0:i.containsArgumentsReference=t(r.body)),i.containsArgumentsReference;function t(o){if(!o)return!1;switch(o.kind){case 79:return o.escapedText===or.escapedName&&Nv(o)===or;case 167:case 169:case 172:case 173:return o.name.kind===162&&t(o.name);case 206:case 207:return t(o.expression);case 296:return t(o.initializer);default:return!e.nodeStartsNewLexicalEnvironment(o)&&!e.isPartOfTypeNode(o)&&!!e.forEachChild(o,t)}}}function S_(r){if(!r||!r.declarations)return e.emptyArray;for(var i=[],t=0;t0&&o.body){var s=r.declarations[t-1];if(o.parent===s.parent&&o.kind===s.kind&&o.pos===s.end)continue}i.push(yl(o))}}return i}function Hm(r){var i=ac(r,r);if(i){var t=Us(i);if(t)return Jt(t)}return Oe}function T_(r){if(r.thisParameter)return Jt(r.thisParameter)}function Yc(r){if(!r.resolvedTypePredicate){if(r.target){var i=Yc(r.target);r.resolvedTypePredicate=i?BI(i,r.mapper):Ro}else if(r.compositeSignatures)r.resolvedTypePredicate=X3(r.compositeSignatures,r.compositeKind)||Ro;else{var t=r.declaration&&e.getEffectiveReturnTypeNode(r.declaration),o=void 0;if(!t&&e.isInJSFile(r.declaration)){var s=rm(r.declaration);s&&r!==s&&(o=Yc(s))}r.resolvedTypePredicate=t&&e.isTypePredicateNode(t)?gh(t,r):o||Ro}e.Debug.assert(!!r.resolvedTypePredicate)}return r.resolvedTypePredicate===Ro?void 0:r.resolvedTypePredicate}function gh(r,i){var t=r.parameterName,o=r.type&&Va(r.type);return t.kind===192?vg(r.assertsModifier?2:0,void 0,void 0,o):vg(r.assertsModifier?3:1,t.escapedText,e.findIndex(i.parameters,function(s){return s.escapedName===t.escapedText}),o)}function iy(r,i,t){return i!==2097152?Pa(r,t):Do(r)}function yo(r){if(!r.resolvedReturnType){if(!yu(r,3))return Pe;var i=r.target?un(yo(r.target),r.mapper):r.compositeSignatures?un(iy(e.map(r.compositeSignatures,yo),r.compositeKind,2),r.mapper):yg(r.declaration)||(e.nodeIsMissing(r.declaration.body)?Oe:C0(r.declaration));if(r.flags&8?i=FE(i):r.flags&16&&(i=i_(i)),!fi()){if(r.declaration){var t=e.getEffectiveReturnTypeNode(r.declaration);if(t)Xr(t,e.Diagnostics.Return_type_annotation_circularly_references_itself);else if(n){var o=r.declaration,s=e.getNameOfDeclaration(o);s?Xr(s,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,e.declarationNameToString(s)):Xr(o,e.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions)}}i=Oe}r.resolvedReturnType=i}return r.resolvedReturnType}function yg(r){if(r.kind===171)return aa(so(r.parent.symbol));if(e.isJSDocConstructSignature(r))return Va(r.parameters[0].type);var i=e.getEffectiveReturnTypeNode(r);if(i)return Va(i);if(r.kind===172&&Td(r)){var t=e.isInJSFile(r)&&K_(r);if(t)return t;var o=e.getDeclarationOfKind(Et(r),173),s=Te(o);if(s)return s}return ry(r)}function Z1(r){return!r.resolvedReturnType&&v(r,3)>=0}function _3(r){return ix(r)||Oe}function ix(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]),t=Yn(i)?sv(i):i;return t&&cs(t,nt)}}function Xm(r,i,t,o){var s=eD(r,zp(i,r.typeParameters,Ul(r.typeParameters),t));if(o){var u=ok(yo(s));if(u){var h=xd(u);h.typeParameters=o;var z=xd(s);return z.resolvedReturnType=im(h),z}}return s}function eD(r,i){var t=r.instantiations||(r.instantiations=new e.Map),o=Su(i),s=t.get(o);return s||t.set(o,s=mh(r,i)),s}function mh(r,i){return Tg(r,p3(r,i),!0)}function p3(r,i){return Uc(r.typeParameters,i)}function Qm(r){return r.typeParameters?r.erasedSignatureCache||(r.erasedSignatureCache=d3(r)):r}function d3(r){return Tg(r,sE(r.typeParameters),!0)}function g3(r){return r.typeParameters?r.canonicalSignatureCache||(r.canonicalSignatureCache=m3(r)):r}function m3(r){return Xm(r,e.map(r.typeParameters,function(i){return i.target&&!Tc(i.target)?i.target:i}),e.isInJSFile(r.declaration))}function v3(r){var i=r.typeParameters;if(i){if(r.baseSignatureCache)return r.baseSignatureCache;for(var t=sE(i),o=Uc(i,e.map(i,function(h){return Tc(h)||gr})),s=e.map(i,function(h){return un(h,o)||gr}),u=0;u1&&(i+=\":\"+u),o+=u}return i}function hg(r,i){return r?\"@\".concat(y(r))+(i?\":\".concat(Su(i)):\"\"):\"\"}function iD(r,i){for(var t=0,o=0,s=r;oo.length)){var me=h&&e.isExpressionWithTypeArguments(r)&&!e.isJSDocAugmentsTag(r.parent),Me=u===o.length?me?e.Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_1_type_argument_s:me?e.Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,$e=Ot(t,void 0,2);if(Xr(r,Me,$e,u,o.length),!h)return Pe}if(r.kind===178&&wx(r,e.length(r.typeArguments)!==o.length))return tD(t,r,void 0);var tr=e.concatenate(t.outerTypeParameters,zp(bh(r),o,u,h));return Yf(t,tr)}return Wp(r,i)?t:Pe}function am(r,i,t,o){var s=go(r);if(s===De&&x.has(r.escapedName)&&i&&i.length===1)return Th(r,i[0]);var u=Aa(r),h=u.typeParameters,z=Su(i)+hg(t,o),me=u.instantiations.get(z);return me||u.instantiations.set(z,me=lE(s,Uc(h,zp(i,h,Ul(h),e.isInJSFile(r.valueDeclaration))),t,o)),me}function y3(r,i){if(e.getCheckFlags(i)&1048576){var t=bh(r),o=hg(i,t),s=Ar.get(o);return s||(s=ms(1,\"error\"),s.aliasSymbol=i,s.aliasTypeArguments=t,Ar.set(o,s)),s}var u=go(i),h=Aa(i).typeParameters;if(h){var z=e.length(r.typeArguments),me=Ul(h);if(zh.length)return Xr(r,me===h.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,tn(i),me,h.length),Pe;var Me=Qd(r),$e=Me&&(fx(i)||!fx(Me))?Me:void 0;return am(i,bh(r),$e,bg($e))}return Wp(r,i)?u:Pe}function fx(r){var i,t=(i=r.declarations)===null||i===void 0?void 0:i.find(e.isTypeAlias);return!!(t&&e.getContainingFunction(t))}function h3(r){switch(r.kind){case 178:return r.typeName;case 228:var i=r.expression;if(e.isEntityNameExpression(i))return i}}function _x(r){return r.parent?\"\".concat(_x(r.parent),\".\").concat(r.escapedName):r.escapedName}function yh(r){var i=r.kind===161?r.right:r.kind===206?r.name:r,t=i.escapedText;if(t){var o=r.kind===161?yh(r.left):r.kind===206?yh(r.expression):void 0,s=o?\"\".concat(_x(o),\".\").concat(t):t,u=mr.get(s);return u||(mr.set(s,u=oo(524288,t,1048576)),u.parent=o,u.declaredType=Ue),u}return xe}function nm(r,i,t){var o=h3(r);if(!o)return xe;var s=Ds(o,i,t);return s&&s!==xe?s:t?xe:yh(o)}function hh(r,i){if(i===xe)return Pe;if(i=Cc(i)||i,i.flags&96)return lx(r,i);if(i.flags&524288)return y3(r,i);var t=Vd(i);if(t)return Wp(r,i)?jc(t):Pe;if(i.flags&111551&&Dh(r)){var o=D3(r,i);return o||(nm(r,788968),Jt(i))}return Pe}function D3(r,i){var t=va(r);if(!t.resolvedJSDocType){var o=Jt(i),s=o;if(i.valueDeclaration){var u=r.kind===200&&r.qualifier;o.symbol&&o.symbol!==i&&u&&(s=hh(r,o.symbol))}t.resolvedJSDocType=s}return t.resolvedJSDocType}function px(r,i){if(i.flags&3||i===r)return r;var t=\"\".concat(fu(r),\">\").concat(fu(i)),o=Ze.get(t);if(o)return o;var s=mc(33554432);return s.baseType=r,s.substitute=i,Ze.set(t,s),s}function dx(r){return r.kind===184&&r.elements.length===1}function gx(r,i,t){return dx(i)&&dx(t)?gx(r,i.elements[0],t.elements[0]):rp(Va(i))===rp(r)?Va(t):void 0}function mx(r,i){for(var t,o=!0;i&&!e.isStatement(i)&&i.kind!==320;){var s=i.parent;if(s.kind===164&&(o=!o),(o||r.flags&8650752)&&s.kind===189&&i===s.trueType){var u=gx(r,s.checkType,s.extendsType);u&&(t=e.append(t,u))}else if(r.flags&262144&&s.kind===195&&i===s.type){var h=Va(s);if(Du(h)===rp(r)){var z=Ih(h);if(z){var u=Tc(z);u&&gf(u,Pd)&&(t=e.append(t,Pa([nt,$a])))}}}i=s}return t?px(r,Do(e.append(t,r))):r}function Dh(r){return!!(r.flags&8388608)&&(r.kind===178||r.kind===200)}function Wp(r,i){return r.typeArguments?(Xr(r,e.Diagnostics.Type_0_is_not_generic,i?tn(i):r.typeName?e.declarationNameToString(r.typeName):C),!1):!0}function vx(r){if(e.isIdentifier(r.typeName)){var i=r.typeArguments;switch(r.typeName.escapedText){case\"String\":return Wp(r),Li;case\"Number\":return Wp(r),nt;case\"Boolean\":return Wp(r),Ii;case\"Void\":return Wp(r),Fi;case\"Undefined\":return Wp(r),Tr;case\"Null\":return Wp(r),Wi;case\"Function\":case\"function\":return Wp(r),br;case\"array\":return(!i||!i.length)&&!n?mo:void 0;case\"promise\":return(!i||!i.length)&&!n?Ny(Oe):void 0;case\"Object\":if(i&&i.length===2){if(e.isJSDocIndexSignature(r)){var t=Va(i[0]),o=Va(i[1]),s=t===Li||t===nt?[zl(t,o,!1)]:e.emptyArray;return rs(void 0,we,e.emptyArray,e.emptyArray,s)}return Oe}return Wp(r),n?void 0:Oe}}}function b3(r){var i=Va(r.type);return Ye?Uh(i,65536):i}function ty(r){var i=va(r);if(!i.resolvedType){if(e.isConstTypeReference(r)&&e.isAssertionExpression(r.parent))return i.resolvedSymbol=xe,i.resolvedType=Os(r.parent.expression);var t=void 0,o=void 0,s=788968;Dh(r)&&(o=vx(r),o||(t=nm(r,s,!0),t===xe?t=nm(r,s|111551):nm(r,s),o=hh(r,t))),o||(t=nm(r,s),o=hh(r,t)),i.resolvedSymbol=t,i.resolvedType=o}return i.resolvedType}function bh(r){return e.map(r.typeArguments,Va)}function yx(r){var i=va(r);if(!i.resolvedType){var t=kk(r);i.resolvedType=jc($c(t))}return i.resolvedType}function hx(r,i){function t(s){var u=s.declarations;if(u)for(var h=0,z=u;h=0)return ny(e.map(i,function(Ci,$i){return r.elementFlags[$i]&8?Ci:gr}))?Ss(i[u],function(Ci){return Fx(r,e.replaceElement(i,u,Ci))}):Pe}for(var h=[],z=[],me=[],Me=-1,$e=-1,tr=-1,dr=function(Ci){var $i=i[Ci],Zi=r.elementFlags[Ci];if(Zi&8)if($i.flags&58982400||Bc($i))Ti($i,8,(t=r.labeledElementDeclarations)===null||t===void 0?void 0:t[Ci]);else if(Yn($i)){var qt=xo($i);if(qt.length+h.length>=1e4)return Xr(Ie,e.isPartOfTypeNode(Ie)?e.Diagnostics.Type_produces_a_tuple_type_that_is_too_large_to_represent:e.Diagnostics.Expression_produces_a_tuple_type_that_is_too_large_to_represent),{value:Pe};e.forEach(qt,function(Nt,Ra){var ca;return Ti(Nt,$i.target.elementFlags[Ra],(ca=$i.target.labeledElementDeclarations)===null||ca===void 0?void 0:ca[Ra])})}else Ti(sp($i)&&cs($i,nt)||Pe,4,(o=r.labeledElementDeclarations)===null||o===void 0?void 0:o[Ci]);else Ti($i,Zi,(s=r.labeledElementDeclarations)===null||s===void 0?void 0:s[Ci])},Dr=0;Dr=0&&$eo.fixedLength?Aw(r)||Wl(e.emptyArray):Wl(xo(r).slice(i,s),o.elementFlags.slice(i,s),!1,o.labeledElementDeclarations&&o.labeledElementDeclarations.slice(i,s))}function Mx(r){return Pa(e.append(e.arrayOf(r.target.fixedLength,function(i){return Bu(\"\"+i)}),ql(r.target.readonly?Qi:Pi)))}function Lx(r,i){var t=e.findIndex(r.elementFlags,function(o){return!(o&i)});return t>=0?t:r.elementFlags.length}function Sh(r,i){return r.elementFlags.length-e.findLastIndex(r.elementFlags,function(t){return!(t&i)})-1}function W3(r){return kc(Va(r.type),!0)}function fu(r){return r.id}function $f(r,i){return e.binarySearch(r,i,fu,e.compareValues)>=0}function lD(r,i){var t=e.binarySearch(r,i,fu,e.compareValues);return t<0?(r.splice(~t,0,i),!0):!1}function q3(r,i,t){var o=t.flags;if(o&1048576)return Rx(r,i|(H3(t)?1048576:0),t.types);if(!(o&131072))if(i|=o&205258751,o&465829888&&(i|=33554432),t===Mr&&(i|=8388608),!Ye&&o&98304)e.getObjectFlags(t)&65536||(i|=4194304);else{var s=r.length,u=s&&t.id>r[s-1].id?~s:e.binarySearch(r,t,fu,e.compareValues);u<0&&r.splice(~u,0,t)}return i}function Rx(r,i,t){for(var o=0,s=t;o0;){h--;var me=r[h];if(s||me.flags&469499904)for(var Me=me.flags&61603840?e.find(uo(me),function(Ti){return Vl(Jt(Ti))}):void 0,$e=Me&&jc(Jt(Me)),tr=0,dr=r;tr1e6){e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"removeSubtypes_DepthLimit\",{typeIds:r.map(function(Ti){return Ti.id})}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);return}}if(z++,Me&&Dr.flags&61603840){var li=da(Dr,Me.escapedName);if(li&&Vl(li)&&jc(li)!==$e)continue}if(r_(me,Dr,ki)&&(!(e.getObjectFlags(bd(me))&1)||!(e.getObjectFlags(bd(Dr))&1)||xg(me,Dr))){e.orderedRemoveItemAt(r,h);break}}}}return Sr.set(t,r),r}function K3(r,i,t){for(var o=r.length;o>0;){o--;var s=r[o],u=s.flags,h=u&402653312&&i&4||u&256&&i&8||u&2048&&i&64||u&8192&&i&4096||t&&u&32768&&i&16384||Kp(s)&&$f(r,s.regularType);h&&e.orderedRemoveItemAt(r,o)}}function G3(r){var i=e.filter(r,sm);if(i.length)for(var t=r.length,o=function(){t--;var s=r[t];s.flags&128&&e.some(i,function(u){return VE(s,u)})&&e.orderedRemoveItemAt(r,t)};t>0;)o()}function H3(r){return!!(r.flags&1048576&&(r.aliasSymbol||r.origin))}function Bx(r,i){for(var t=0,o=i;t=0&&$f(u,Tr)&&e.orderedRemoveItemAt(u,z)}if((h&402664320||h&16384&&h&32768)&&K3(u,h,!!(i&2)),h&128&&h&134217728&&G3(u),i===2&&(u=V3(u,!!(h&524288)),!u))return Pe;if(u.length===0)return h&65536?h&4194304?Wi:ct:h&32768?h&4194304?Tr:vi:ui}if(!s&&h&1048576){var me=[];Bx(me,r);for(var Me=[],$e=function($i){e.some(me,function(Zi){return $f(Zi.types,$i)})||Me.push($i)},tr=0,dr=u;tr0;){t--;var o=r[t],s=o.flags&4&&i&402653312||o.flags&8&&i&256||o.flags&64&&i&2048||o.flags&4096&&i&8192;s&&e.orderedRemoveItemAt(r,t)}}function Z3(r,i){for(var t=0,o=r;t0;){i--;var o=r[i];if(!!(o.flags&134217728))for(var s=0,u=t;s=1e5?(e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"checkCrossProductUnion_DepthLimit\",{typeIds:r.map(function(t){return t.id}),size:i}),Xr(Ie,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1):!0}function tI(r){for(var i=zx(r),t=[],o=0;o=0;h--)if(r[h].flags&1048576){var z=r[h].types,me=z.length;s[h]=z[u%me],u=Math.floor(u/me)}var Me=Do(s);Me.flags&131072||t.push(Me)}return t}function aI(r){var i=va(r);if(!i.resolvedType){var t=Qd(r);i.resolvedType=Do(e.map(r.types,Va),t,bg(t))}return i.resolvedType}function Wx(r,i){var t=mc(4194304);return t.type=r,t.stringsOnly=i,t}function nI(r){var i=Ip(4194304);return i.type=r,i}function dD(r,i){return i?r.resolvedStringIndexType||(r.resolvedStringIndexType=Wx(r,!0)):r.resolvedIndexType||(r.resolvedIndexType=Wx(r,!1))}function oI(r,i,t){var o=Du(r),s=Mu(r),u=Jl(r.target||r);if(!u&&!t)return s;var h=[];if(mg(r)){if(qp(s))return dD(r,i);var z=$s(Ed(r));Um(z,8576,i,Me)}else Od(Kd(s),Me);qp(s)&&Od(s,Me);var me=t?ec(Pa(h),function($e){return!($e.flags&5)}):Pa(h);if(me.flags&1048576&&s.flags&1048576&&Su(me.types)===Su(s.types))return s;return me;function Me($e){var tr=u?un(u,tv(r.mapper,o,$e)):$e;h.push(tr===Li?ji:tr)}}function sI(r){var i=Du(r);return t(Jl(r)||i);function t(o){return o.flags&68157439?!0:o.flags&16777216?o.root.isDistributive&&o.checkType===i:o.flags&137363456?e.every(o.types,t):o.flags&8388608?t(o.objectType)&&t(o.indexType):o.flags&33554432?t(o.substitute):o.flags&268435456?t(o.type):!1}}function Z_(r){return e.isPrivateIdentifier(r)?ui:e.isIdentifier(r)?Bu(e.unescapeLeadingUnderscores(r.escapedText)):jc(e.isComputedPropertyName(r)?t_(r):yn(r))}function om(r,i,t){if(t||!(e.getDeclarationModifierFlagsFromSymbol(r)&24)){var o=Aa(dg(r)).nameType;if(!o){var s=e.getNameOfDeclaration(r.valueDeclaration);o=r.escapedName===\"default\"?Bu(\"default\"):s&&Z_(s)||(e.isKnownSymbol(r)?void 0:Bu(e.symbolName(r)))}if(o&&o.flags&i)return o}return ui}function qx(r,i){return!!(r.flags&i||r.flags&2097152&&e.some(r.types,function(t){return qx(t,i)}))}function cI(r,i,t){var o=t&&(e.getObjectFlags(r)&7||r.aliasSymbol)?nI(r):void 0,s=e.map(uo(r),function(h){return om(h,i)}),u=e.map(Hn(r),function(h){return h!==Ko&&qx(h.keyType,i)?h.keyType===Li&&i&8?ji:h.keyType:ui});return Pa(e.concatenate(s,u),1,void 0,void 0,o)}function uI(r){return e.some(r.types,function(i){var t=KI(i);return bu(t)!==t})}function ql(r,i,t){return i===void 0&&(i=Ge),r=bu(r),r.flags&1048576?uI(r)?dD(r,i):Do(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&2097152?Pa(e.map(r.types,function(o){return ql(o,i,t)})):r.flags&58982400||lm(r)||Bc(r)&&!sI(r)?dD(r,i):e.getObjectFlags(r)&32?oI(r,i,t):r===Mr?Mr:r.flags&2?ui:r.flags&131073?at:cI(r,(t?128:402653316)|(i?0:12584),i===Ge&&!t)}function Vx(r){if(Ge)return r;var i=M3();return i?am(i,[r,Li]):Li}function lI(r){var i=Vx(ql(r));return i.flags&131072?Li:i}function fI(r){var i=va(r);if(!i.resolvedType)switch(r.operator){case 140:i.resolvedType=ql(Va(r.type));break;case 154:i.resolvedType=r.type.kind===151?CD(e.walkUpParenthesizedTypes(r.parent)):Pe;break;case 145:i.resolvedType=Va(r.type);break;default:throw e.Debug.assertNever(r.operator)}return i.resolvedType}function _I(r){var i=va(r);return i.resolvedType||(i.resolvedType=Dg(Ve([r.head.text],e.map(r.templateSpans,function(t){return t.literal.text}),!0),e.map(r.templateSpans,function(t){return Va(t.type)}))),i.resolvedType}function Dg(r,i){var t=e.findIndex(i,function(Me){return!!(Me.flags&1179648)});if(t>=0)return ny(i)?Ss(i[t],function(Me){return Dg(r,e.replaceElement(i,t,Me))}):Pe;if(e.contains(i,Mr))return Mr;var o=[],s=[],u=r[0];if(!me(r,i))return Li;if(o.length===0)return Bu(u);if(s.push(u),e.every(s,function(Me){return Me===\"\"})&&e.every(o,function(Me){return!!(Me.flags&4)}))return Li;var h=\"\".concat(Su(o),\"|\").concat(e.map(s,function(Me){return Me.length}).join(\",\"),\"|\").concat(s.join(\"\")),z=Jr.get(h);return z||Jr.set(h,z=dI(s,o)),z;function me(Me,$e){for(var tr=e.isArray(Me),dr=0;dr<$e.length;dr++){var Dr=$e[dr],Qr=tr?Me[dr+1]:Me;if(Dr.flags&101248){if(u+=pI(Dr)||\"\",u+=Qr,!tr)return!0}else if(Dr.flags&134217728){if(u+=Dr.texts[0],!me(Dr.texts,Dr.types))return!1;if(u+=Qr,!tr)return!0}else if(qp(Dr)||Gx(Dr))o.push(Dr),s.push(u),u=Qr;else if(Dr.flags&2097152){var li=me(Me[dr+1],Dr.types);if(!li)return!1}else if(tr)return!1}return!0}}function pI(r){return r.flags&128?r.value:r.flags&256?\"\"+r.value:r.flags&2048?e.pseudoBigIntToString(r.value):r.flags&98816?r.intrinsicName:void 0}function dI(r,i){var t=mc(134217728);return t.texts=r,t.types=i,t}function Th(r,i){return i.flags&1179648?Ss(i,function(t){return Th(r,t)}):qp(i)?mI(r,i):i.flags&128?Bu(gI(r,i.value)):i}function gI(r,i){switch(x.get(r.escapedName)){case 0:return i.toUpperCase();case 1:return i.toLowerCase();case 2:return i.charAt(0).toUpperCase()+i.slice(1);case 3:return i.charAt(0).toLowerCase()+i.slice(1)}return i}function mI(r,i){var t=\"\".concat(y(r),\",\").concat(fu(i)),o=ti.get(t);return o||ti.set(t,o=vI(r,i)),o}function vI(r,i){var t=mc(268435456);return t.symbol=r,t.type=i,t}function yI(r,i,t,o,s){var u=mc(8388608);return u.objectType=r,u.indexType=i,u.accessFlags=t,u.aliasSymbol=o,u.aliasTypeArguments=s,u}function ev(r){if(n)return!1;if(e.getObjectFlags(r)&4096)return!0;if(r.flags&1048576)return e.every(r.types,ev);if(r.flags&2097152)return e.some(r.types,ev);if(r.flags&465829888){var i=Hv(r);return i!==r&&ev(i)}return!1}function gD(r,i){return _f(r)?pf(r):i&&e.isPropertyName(i)?e.getPropertyNameForPropertyNameNode(i):void 0}function mD(r,i){if(i.flags&8208){var t=e.findAncestor(r.parent,function(o){return!e.isAccessExpression(o)})||r.parent;return e.isCallLikeExpression(t)?e.isCallOrNewExpression(t)&&e.isIdentifier(r)&&eC(t,r):e.every(i.declarations,function(o){return!e.isFunctionLike(o)||!!(e.getCombinedNodeFlags(o)&268435456)})}return!0}function Kx(r,i,t,o,s,u){var h,z=s&&s.kind===207?s:void 0,me=s&&e.isPrivateIdentifier(s)?void 0:gD(t,s);if(me!==void 0){if(u&256)return Md(i,me)||Oe;var Me=bi(i,me);if(Me){if(u&64&&s&&Me.declarations&&P_(Me)&&mD(s,Me)){var $e=(h=z==null?void 0:z.argumentExpression)!==null&&h!==void 0?h:e.isIndexedAccessTypeNode(s)?s.indexType:s;El($e,Me.declarations,me)}if(z){if(xy(Me,z,rk(z.expression,i.symbol)),jk(z,Me,e.getAssignmentTargetKind(z))){Xr(z.argumentExpression,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(Me));return}if(u&8&&(va(s).resolvedSymbol=Me),HC(z,Me))return nr}var tr=Jt(Me);return z&&e.getAssignmentTargetKind(z)!==1?up(z,tr):tr}if(gf(i,Yn)&&e.isNumericLiteralName(me)&&+me>=0){if(s&&gf(i,function(Nt){return!Nt.target.hasRestElement})&&!(u&16)){var dr=vD(s);Yn(i)?Xr(dr,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,Ot(i),$_(i),e.unescapeLeadingUnderscores(me)):Xr(dr,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i))}return qt(ss(i,nt)),Ss(i,function(Nt){var Ra=sv(Nt)||Tr;return u&1?Pa([Ra,Tr]):Ra})}}if(!(t.flags&98304)&&Ns(t,402665900)){if(i.flags&131073)return i;var Dr=nu(i,t)||ss(i,Li);if(Dr){if(u&2&&Dr.keyType!==nt){z&&Xr(z,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,Ot(t),Ot(r));return}if(s&&Dr.keyType===Li&&!Ns(t,12)){var dr=vD(s);return Xr(dr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t)),u&1?Pa([Dr.type,Tr]):Dr.type}return qt(Dr),u&1?Pa([Dr.type,Tr]):Dr.type}if(t.flags&131072)return ui;if(ev(i))return Oe;if(z&&!uS(i)){if(Qp(i)){if(n&&t.flags&384)return rn.add(e.createDiagnosticForNode(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i))),Tr;if(t.flags&12){var Qr=e.map(i.properties,function(Nt){return Jt(Nt)});return Pa(e.append(Qr,Tr))}}if(i.symbol===pe&&me!==void 0&&pe.exports.has(me)&&pe.exports.get(me).flags&418)Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),Ot(i));else if(n&&!ye.suppressImplicitAnyIndexErrors&&!(u&128))if(me!==void 0&&$C(me,i)){var li=Ot(i);Xr(z,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,me,li,li+\"[\"+e.getTextOfNode(z.argumentExpression)+\"]\")}else if(cs(i,nt))Xr(z.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var Ti=void 0;if(me!==void 0&&(Ti=Vb(me,i)))Ti!==void 0&&Xr(z.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,me,Ot(i),Ti);else{var Ci=i7(i,z,t);if(Ci!==void 0)Xr(z,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,Ot(i),Ci);else{var $i=void 0;if(t.flags&1024)$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+Ot(t)+\"]\",Ot(i));else if(t.flags&8192){var Zi=cl(t.symbol,z);$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"[\"+Zi+\"]\",Ot(i))}else t.flags&128||t.flags&256?$i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,Ot(i)):t.flags&12&&($i=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,Ot(t),Ot(i)));$i=e.chainDiagnosticMessages($i,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,Ot(o),Ot(i)),rn.add(e.createDiagnosticForNodeFromMessageChain(z,$i))}}}return}}if(ev(i))return Oe;if(s){var dr=vD(s);t.flags&384?Xr(dr,e.Diagnostics.Property_0_does_not_exist_on_type_1,\"\"+t.value,Ot(i)):t.flags&12?Xr(dr,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,Ot(i),Ot(t)):Xr(dr,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,Ot(t))}if(ta(t))return t;return;function qt(Nt){Nt&&Nt.isReadonly&&z&&(e.isAssignmentTarget(z)||e.isDeleteTarget(z))&&Xr(z,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,Ot(i))}}function vD(r){return r.kind===207?r.argumentExpression:r.kind===194?r.indexType:r.kind===162?r.expression:r}function Gx(r){return!!(r.flags&77)}function sm(r){return!!(r.flags&134217728)&&e.every(r.types,Gx)}function rv(r){return!!iv(r)}function Ad(r){return!!(iv(r)&4194304)}function qp(r){return!!(iv(r)&8388608)}function iv(r){return r.flags&3145728?(r.objectFlags&2097152||(r.objectFlags|=2097152|e.reduceLeft(r.types,function(i,t){return i|iv(t)},0)),r.objectFlags&12582912):r.flags&33554432?(r.objectFlags&2097152||(r.objectFlags|=2097152|iv(r.substitute)|iv(r.baseType)),r.objectFlags&12582912):(r.flags&58982400||Bc(r)||lm(r)?4194304:0)|(r.flags&465829888&&!sm(r)?8388608:0)}function Zf(r,i){return r.flags&8388608?DI(r,i):r.flags&16777216?bI(r,i):r}function Hx(r,i,t){if(r.flags&3145728){var o=e.map(r.types,function(s){return Zf(Jc(s,i),t)});return r.flags&2097152||t?Do(o):Pa(o)}}function hI(r,i,t){if(i.flags&1048576){var o=e.map(i.types,function(s){return Zf(Jc(r,s),t)});return t?Do(o):Pa(o)}}function DI(r,i){var t=i?\"simplifiedForWriting\":\"simplifiedForReading\";if(r[t])return r[t]===Pn?r:r[t];r[t]=Pn;var o=Zf(r.objectType,i),s=Zf(r.indexType,i),u=hI(o,s,i);if(u)return r[t]=u;if(!(s.flags&465829888)){var h=Hx(o,s,i);if(h)return r[t]=h}if(lm(o)&&s.flags&296){var z=jh(o,s.flags&8?0:o.target.fixedLength,0,i);if(z)return r[t]=z}if(Bc(o)){var me=Jl(o);if(!me||ao(me,Du(o)))return r[t]=Ss(xh(o,r.indexType),function(Me){return Zf(Me,i)})}return r[t]=r}function bI(r,i){var t=r.checkType,o=r.extendsType,s=ip(r),u=tp(r);if(u.flags&131072&&rp(s)===rp(t)){if(t.flags&1||ao(Nd(t),Nd(o)))return Zf(s,i);if(Xx(t,o))return ui}else if(s.flags&131072&&rp(u)===rp(t)){if(!(t.flags&1)&&ao(Nd(t),Nd(o)))return ui;if(t.flags&1||Xx(t,o))return Zf(u,i)}return r}function Xx(r,i){return!!(Pa([Zg(r,i),ui]).flags&131072)}function xh(r,i){var t=Uc([Du(r)],[i]),o=np(r.mapper,t);return un(vl(r),o)}function Jc(r,i,t,o,s,u){return t===void 0&&(t=0),ep(r,i,t,o,s,u)||(o?Pe:gr)}function Qx(r,i){return gf(r,function(t){if(t.flags&384){var o=pf(t);if(e.isNumericLiteralName(o)){var s=+o;return s>=0&&s=i?gr:t})}function np(r,i){return r?Nh(3,r,i):i}function LI(r,i){return r?Nh(4,r,i):i}function $d(r,i,t){return t?Nh(4,Yd(r,i),t):Yd(r,i)}function tv(r,i,t){return r?Nh(4,r,Yd(i,t)):Yd(i,t)}function RI(r){return r.constraint===gr?r:r.restrictiveInstantiation||(r.restrictiveInstantiation=Hc(r.symbol),r.restrictiveInstantiation.constraint=gr,r.restrictiveInstantiation)}function kD(r){var i=Hc(r.symbol);return i.target=r,i}function BI(r,i){return vg(r.kind,r.parameterName,r.parameterIndex,un(r.type,i))}function Tg(r,i,t){var o;if(r.typeParameters&&!t){o=e.map(r.typeParameters,kD),i=np(Uc(r.typeParameters,o),i);for(var s=0,u=o;s=5e6)return e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"instantiateType_DepthLimit\",{typeId:r.id,instantiationDepth:He,instantiationCount:Ee}),Xr(Ie,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),Pe;ze++,Ee++,He++;var s=qI(r,i,t,o);return He--,s}function qI(r,i,t,o){var s=r.flags;if(s&262144)return ap(r,i);if(s&524288){var u=r.objectFlags;if(u&52){if(u&4&&!r.node){var h=r.resolvedTypeArguments,z=e_(h,i);return z!==h?uD(r.target,z):r}return u&1024?VI(r,i):JI(r,i,t,o)}return r}if(s&3145728){var me=r.flags&1048576?r.origin:void 0,Me=me&&me.flags&3145728?me.types:r.types,$e=e_(Me,i);if($e===Me&&t===r.aliasSymbol)return r;var tr=t||r.aliasSymbol,dr=t?o:e_(r.aliasTypeArguments,i);return s&2097152||me&&me.flags&2097152?Do($e,tr,dr):Pa($e,1,tr,dr)}if(s&4194304)return ql(un(r.type,i));if(s&134217728)return Dg(r.texts,e_(r.types,i));if(s&268435456)return Th(r.symbol,un(r.type,i));if(s&8388608){var tr=t||r.aliasSymbol,dr=t?o:e_(r.aliasTypeArguments,i);return Jc(un(r.objectType,i),un(r.indexType,i),r.accessFlags,void 0,tr,dr)}if(s&16777216)return ID(r,np(r.mapper,i),t,o);if(s&33554432){var Dr=un(r.baseType,i);if(Dr.flags&8650752)return px(Dr,un(r.substitute,i));var Qr=un(r.substitute,i);return Qr.flags&3||ao(Nd(Dr),Nd(Qr))?Dr:Qr}return r}function VI(r,i){var t=un(r.mappedType,i);if(!(e.getObjectFlags(t)&32))return r;var o=un(r.constraintType,i);if(!(o.flags&4194304))return r;var s=UE(un(r.source,i),t,o);return s||r}function KI(r){return r.flags&262143?r:r.uniqueLiteralFilledInstantiation||(r.uniqueLiteralFilledInstantiation=un(r,ka))}function wh(r){return r.flags&262143?r:r.permissiveInstantiation||(r.permissiveInstantiation=un(r,ai))}function Nd(r){return r.flags&262143?r:(r.restrictiveInstantiation||(r.restrictiveInstantiation=un(r,Qa),r.restrictiveInstantiation.restrictiveInstantiation=r.restrictiveInstantiation),r.restrictiveInstantiation)}function GI(r,i){return zl(r.keyType,un(r.type,i),r.isReadonly,r.declaration)}function Ju(r){switch(e.Debug.assert(r.kind!==169||e.isObjectLiteralMethod(r)),r.kind){case 213:case 214:case 169:case 256:return fE(r);case 205:return e.some(r.properties,Ju);case 204:return e.some(r.elements,Ju);case 222:return Ju(r.whenTrue)||Ju(r.whenFalse);case 221:return(r.operatorToken.kind===56||r.operatorToken.kind===60)&&(Ju(r.left)||Ju(r.right));case 296:return Ju(r.initializer);case 212:return Ju(r.expression);case 286:return e.some(r.properties,Ju)||e.isJsxOpeningElement(r.parent)&&e.some(r.parent.parent.children,Ju);case 285:{var i=r.initializer;return!!i&&Ju(i)}case 288:{var t=r.expression;return!!t&&Ju(t)}}return!1}function fE(r){return(!e.isFunctionDeclaration(r)||e.isInJSFile(r)&&!!K_(r))&&(e.hasContextSensitiveParameters(r)||HI(r))}function HI(r){return!r.typeParameters&&!e.getEffectiveReturnTypeNode(r)&&!!r.body&&r.body.kind!==235&&Ju(r.body)}function wD(r){return(e.isInJSFile(r)&&e.isFunctionDeclaration(r)||e.isFunctionExpressionOrArrowFunction(r)||e.isObjectLiteralMethod(r))&&fE(r)}function _E(r){if(r.flags&524288){var i=Ru(r);if(i.constructSignatures.length||i.callSignatures.length){var t=tu(16,r.symbol);return t.members=i.members,t.properties=i.properties,t.callSignatures=e.emptyArray,t.constructSignatures=e.emptyArray,t.indexInfos=e.emptyArray,t}}else if(r.flags&2097152)return Do(e.map(r.types,_E));return r}function wf(r,i){return r_(r,i,wa)}function av(r,i){return r_(r,i,wa)?-1:0}function OD(r,i){return r_(r,i,dt)?-1:0}function XI(r,i){return r_(r,i,Or)?-1:0}function E_(r,i){return r_(r,i,Or)}function ao(r,i){return r_(r,i,dt)}function xg(r,i){return r.flags&1048576?e.every(r.types,function(t){return xg(t,i)}):i.flags&1048576?e.some(i.types,function(t){return xg(r,t)}):r.flags&58982400?xg(uc(r)||gr,i):i===qe?!!(r.flags&67633152):i===br?!!(r.flags&524288)&&db(r):lf(r,bd(i))||Tu(i)&&!um(i)&&xg(r,Qi)}function cm(r,i){return r_(r,i,la)}function Oh(r,i){return cm(r,i)||cm(i,r)}function zc(r,i,t,o,s,u){return hl(r,i,dt,t,o,s,u)}function op(r,i,t,o,s,u){return FD(r,i,dt,t,o,s,u,void 0)}function FD(r,i,t,o,s,u,h,z){return r_(r,i,t)?!0:!o||!cy(s,r,i,t,u,h,z)?hl(r,i,t,o,u,h,z):!1}function pE(r){return!!(r.flags&16777216||r.flags&2097152&&e.some(r.types,pE))}function cy(r,i,t,o,s,u,h){if(!r||pE(t))return!1;if(!hl(i,t,o,void 0)&&QI(r,i,t,o,s,u,h))return!0;switch(r.kind){case 288:case 212:return cy(r.expression,i,t,o,s,u,h);case 221:switch(r.operatorToken.kind){case 63:case 27:return cy(r.right,i,t,o,s,u,h)}break;case 205:return nw(r,i,t,o,u,h);case 204:return tw(r,i,t,o,u,h);case 286:return iw(r,i,t,o,u,h);case 214:return YI(r,i,t,o,u,h)}return!1}function QI(r,i,t,o,s,u,h){for(var z=ot(i,0),me=ot(i,1),Me=0,$e=[me,z];Me<$e.length;Me++){var tr=$e[Me];if(e.some(tr,function(Qr){var li=yo(Qr);return!(li.flags&131073)&&hl(li,t,o,void 0)})){var dr=h||{};zc(i,t,r,s,u,dr);var Dr=dr.errors[dr.errors.length-1];return e.addRelatedInfo(Dr,e.createDiagnosticForNode(r,tr===me?e.Diagnostics.Did_you_mean_to_use_new_with_this_expression:e.Diagnostics.Did_you_mean_to_call_this_expression)),!0}}return!1}function YI(r,i,t,o,s,u){if(e.isBlock(r.body)||e.some(r.parameters,e.hasType))return!1;var h=ig(i);if(!h)return!1;var z=ot(t,0);if(!e.length(z))return!1;var me=r.body,Me=yo(h),$e=Pa(e.map(z,yo));if(!hl(Me,$e,o,void 0)){var tr=me&&cy(me,Me,$e,o,void 0,s,u);if(tr)return tr;var dr=u||{};if(hl(Me,$e,o,me,void 0,s,dr),dr.errors)return t.symbol&&e.length(t.symbol.declarations)&&e.addRelatedInfo(dr.errors[dr.errors.length-1],e.createDiagnosticForNode(t.symbol.declarations[0],e.Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature)),(e.getFunctionFlags(r)&2)===0&&!da(Me,\"then\")&&hl(Ny(Me),$e,o,void 0)&&e.addRelatedInfo(dr.errors[dr.errors.length-1],e.createDiagnosticForNode(r,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async)),!0}return!1}function $I(r,i,t){var o=ep(i,t);if(o)return o;if(i.flags&1048576){var s=bE(r,i);if(s)return ep(s,t)}}function ZI(r,i){r.contextualType=i;try{return Dm(r,1,i)}finally{r.contextualType=void 0}}function nv(r,i,t,o,s,u){for(var h=!1,z=r.next();!z.done;z=r.next()){var me=z.value,Me=me.errorNode,$e=me.innerExpression,tr=me.nameType,dr=me.errorMessage,Dr=$I(i,t,tr);if(!(!Dr||Dr.flags&8388608)){var Qr=ep(i,tr);if(!!Qr){var li=gD(tr,void 0);if(!hl(Qr,Dr,o,void 0)){var Ti=$e&&cy($e,Qr,Dr,o,void 0,s,u);if(h=!0,!Ti){var Ci=u||{},$i=$e?ZI($e,Qr):Qr;if(yr&&jD($i,Dr)){var Zi=e.createDiagnosticForNode(Me,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target,Ot($i),Ot(Dr));rn.add(Zi),Ci.errors=[Zi]}else{var qt=!!(li&&(bi(t,li)||xe).flags&16777216),Nt=!!(li&&(bi(i,li)||xe).flags&16777216);Dr=kg(Dr,qt),Qr=kg(Qr,qt&&Nt);var Ra=hl($i,Dr,o,Me,dr,s,Ci);Ra&&$i!==Qr&&hl(Qr,Dr,o,Me,dr,s,Ci)}if(Ci.errors){var ca=Ci.errors[Ci.errors.length-1],Sn=_f(tr)?pf(tr):void 0,ja=Sn!==void 0?bi(t,Sn):void 0,Fn=!1;if(!ja){var wn=nu(t,tr);wn&&wn.declaration&&!e.getSourceFileOfNode(wn.declaration).hasNoDefaultLib&&(Fn=!0,e.addRelatedInfo(ca,e.createDiagnosticForNode(wn.declaration,e.Diagnostics.The_expected_type_comes_from_this_index_signature)))}if(!Fn&&(ja&&e.length(ja.declarations)||t.symbol&&e.length(t.symbol.declarations))){var Tn=ja&&e.length(ja.declarations)?ja.declarations[0]:t.symbol.declarations[0];e.getSourceFileOfNode(Tn).hasNoDefaultLib||e.addRelatedInfo(ca,e.createDiagnosticForNode(Tn,e.Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,Sn&&!(tr.flags&8192)?e.unescapeLeadingUnderscores(Sn):Ot(tr),Ot(t)))}}}}}}}return h}function ew(r){var i,t,o;return kr(this,function(s){switch(s.label){case 0:if(!e.length(r.properties))return[2];i=0,t=r.properties,s.label=1;case 1:return i1,li=ec(dr,AE),Ti=ec(dr,function(ca){return!AE(ca)});if(Qr){if(li!==ui){var Ci=Wl(f0(me,0)),$i=rw(me,Ra);h=nv($i,Ci,li,o,s,u)||h}else if(!r_(Jc(i,tr),dr,o)){h=!0;var Zi=Xr(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,$e,Ot(dr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}else if(Ti!==ui){var qt=Dr[0],Nt=dE(qt,tr,Ra);Nt&&(h=nv(function(){return kr(this,function(ca){switch(ca.label){case 0:return[4,Nt];case 1:return ca.sent(),[2]}})}(),i,t,o,s,u)||h)}else if(!r_(Jc(i,tr),dr,o)){h=!0;var Zi=Xr(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,$e,Ot(dr));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Zi)}}return h;function Ra(){if(!z){var ca=e.getTextOfNode(r.parent.tagName),Sn=_0(Og(r)),ja=Sn===void 0?\"children\":e.unescapeLeadingUnderscores(Sn),Fn=Jc(t,Bu(ja)),wn=e.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;z=Ke(Ke({},wn),{key:\"!!ALREADY FORMATTED!!\",message:e.formatMessage(void 0,wn,ca,ja,Ot(Fn))})}return z}}function gE(r,i){var t,o,s,u;return kr(this,function(h){switch(h.label){case 0:if(t=e.length(r.elements),!t)return[2];o=0,h.label=1;case 1:return ome:Hl(r)>me);if(Me)return 0;r.typeParameters&&r.typeParameters!==i.typeParameters&&(i=g3(i),r=sk(r,i,void 0,h));var $e=Wc(r),tr=yv(r),dr=yv(i);(tr||dr)&&un(tr||dr,z);var Dr=i.declaration?i.declaration.kind:0,Qr=!(t&3)&&Br&&Dr!==169&&Dr!==168&&Dr!==171,li=-1,Ti=T_(r);if(Ti&&Ti!==Fi){var Ci=T_(i);if(Ci){var $i=!Qr&&h(Ti,Ci,!1)||h(Ci,Ti,o);if(!$i)return o&&s(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;li&=$i}}for(var Zi=tr||dr?Math.min($e,me):Math.max($e,me),qt=tr||dr?Zi-1:-1,Nt=0;Nt=Hl(r)&&Nt0||RS(vt)),Vn=!!(e.getObjectFlags(vt)&2048);if(gn&&!fw(vt,ht,Vn)){if(mt){var zo=Ot($r.aliasSymbol?$r:vt),us=Ot(hi.aliasSymbol?hi:ht),Bo=ot(vt,0),Io=ot(vt,1);Bo.length>0&&oa(yo(Bo[0]),ht,1,!1)||Io.length>0&&oa(yo(Io[0]),ht,1,!1)?Yt(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,zo,us):Yt(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,zo,us)}return 0}Ln(vt,ht);var Qo=vt.flags&1048576&&vt.types.length<4&&!(ht.flags&1048576)||ht.flags&1048576&&ht.types.length<4&&!(vt.flags&469499904),ls=Qo?Lt(vt,ht,mt,Ht):_t(vt,ht,mt,Ht,Ri);if(ls&&!qt&&(ht.flags&2097152&&(An||gn)||bD(ht)&&!Pd(ht)&&vt.flags&2097152&&$s(vt).flags&3670016&&!e.some(vt.types,function(gi){return!!(e.getObjectFlags(gi)&262144)}))&&(qt=!0,ls&=_t(vt,ht,mt,4,Ri),qt=!1),ls)return ls}return mt&&Mn($r,hi,vt,ht,ft),0}function Mn($r,hi,Ri,mt,ft){var Ht=!!GD($r),vt=!!GD(hi);Ri=$r.aliasSymbol||Ht?$r:Ri,mt=hi.aliasSymbol||vt?hi:mt;var ht=Ci>0;if(ht&&Ci--,Ri.flags&524288&&mt.flags&524288){var ma=z;cn(Ri,mt,!0),z!==ma&&(ht=!!z)}if(Ri.flags&524288&&mt.flags&131068)Ka(Ri,mt);else if(Ri.symbol&&Ri.flags&524288&&qe===Ri)Yt(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(e.getObjectFlags(Ri)&2048&&mt.flags&2097152){var Ca=mt.types,An=Zp(U.IntrinsicAttributes,o),gn=Zp(U.IntrinsicClassAttributes,o);if(!nn(An)&&!nn(gn)&&(e.contains(Ca,An)||e.contains(Ca,gn)))return}else z=ei(z,hi);if(!ft&&ht){$i=[Ri,mt];return}Qt(ft,Ri,mt)}function Ln($r,hi){if(!!e.tracing&&$r.flags&3145728&&hi.flags&3145728){var Ri=$r,mt=hi;if(Ri.objectFlags&mt.objectFlags&32768)return;var ft=Ri.types.length,Ht=mt.types.length;ft*Ht>1e6&&e.tracing.instant(\"checkTypes\",\"traceUnionsOrIntersectionsTooLarge_DepthLimit\",{sourceId:$r.id,sourceSize:ft,targetId:hi.id,targetSize:Ht,pos:o==null?void 0:o.pos,end:o==null?void 0:o.end})}}function ci($r,hi){var Ri=function(mt,ft){var Ht;ft=$s(ft);var vt=ft.flags&3145728?Zv(ft,hi):h_(ft,hi),ht=vt&&Jt(vt)||((Ht=Xo(ft,hi))===null||Ht===void 0?void 0:Ht.type)||Tr;return e.append(mt,ht)};return Pa(e.reduceLeft($r,Ri,void 0)||e.emptyArray)}function Fr($r,hi,Ri){var mt;if(!Sy(hi)||!n&&e.getObjectFlags(hi)&4096)return!1;var ft=!!(e.getObjectFlags($r)&2048);if((t===dt||t===la)&&(dy(qe,hi)||!ft&&Of(hi)))return!1;var Ht=hi,vt;hi.flags&1048576&&(Ht=bA($r,hi,oa)||IL(hi),vt=Ht.flags&1048576?Ht.types:[Ht]);for(var ht=function(Vn){if(jt(Vn,$r.symbol)&&!hE($r,Vn)){if(!Rb(Ht,Vn.escapedName,ft)){if(Ri){var zo=ec(Ht,Sy);if(!o)return{value:e.Debug.fail()};if(e.isJsxAttributes(o)||e.isJsxOpeningLikeElement(o)||e.isJsxOpeningLikeElement(o.parent)){Vn.valueDeclaration&&e.isJsxAttribute(Vn.valueDeclaration)&&e.getSourceFileOfNode(o)===e.getSourceFileOfNode(Vn.valueDeclaration.name)&&(o=Vn.valueDeclaration.name);var us=tn(Vn),Bo=ek(us,zo),Io=Bo?tn(Bo):void 0;Io?Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,us,Ot(zo),Io):Yt(e.Diagnostics.Property_0_does_not_exist_on_type_1,us,Ot(zo))}else{var Qo=((mt=$r.symbol)===null||mt===void 0?void 0:mt.declarations)&&e.firstOrUndefined($r.symbol.declarations),Io=void 0;if(Vn.valueDeclaration&&e.findAncestor(Vn.valueDeclaration,function(La){return La===Qo})&&e.getSourceFileOfNode(Qo)===e.getSourceFileOfNode(o)){var ls=Vn.valueDeclaration;e.Debug.assertNode(ls,e.isObjectLiteralElementLike),o=ls;var gi=ls.name;e.isIdentifier(gi)&&(Io=Vb(gi,zo))}Io!==void 0?Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,tn(Vn),Ot(zo),Io):Yt(e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,tn(Vn),Ot(zo))}}return{value:!0}}if(vt&&!oa(Jt(Vn),ci(vt,Vn.escapedName),3,Ri))return Ri&<(e.Diagnostics.Types_of_property_0_are_incompatible,tn(Vn)),{value:!0}}},ma=0,Ca=uo($r);ma=vt.types.length&&Ht.length%vt.types.length===0){var Ca=oa(ma,vt.types[ht%vt.types.length],3,!1,void 0,mt);if(Ca){ft&=Ca;continue}}var An=oa(ma,hi,1,Ri,void 0,mt);if(!An)return 0;ft&=An}return ft}function Hi($r,hi,Ri,mt,ft){if($r===void 0&&($r=e.emptyArray),hi===void 0&&(hi=e.emptyArray),Ri===void 0&&(Ri=e.emptyArray),$r.length!==hi.length&&t===wa)return 0;for(var Ht=$r.length<=hi.length?$r.length:hi.length,vt=-1,ht=0;ht25)return e.tracing===null||e.tracing===void 0||e.tracing.instant(\"checkTypes\",\"typeRelatedToDiscriminatedType_DepthLimit\",{sourceId:$r.id,targetId:hi.id,numCombinations:ft}),0}for(var ma=new Array(mt.length),Ca=new e.Set,An=0;An5?Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,Ot($r),Ot(hi),e.map(Ca.slice(0,4),function(gn){return tn(gn)}).join(\", \"),Ca.length-4):Yt(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,Ot($r),Ot(hi),e.map(Ca,function(gn){return tn(gn)}).join(\", \")),ft&&z&&Ci++)}function Uo($r,hi,Ri,mt,ft){if(t===wa)return Rs($r,hi,mt);var Ht=-1;if(Yn(hi)){if(Pd($r)){if(!hi.target.readonly&&(um($r)||Yn($r)&&$r.target.readonly))return 0;var vt=$_($r),ht=$_(hi),ma=Yn($r)?$r.target.combinedFlags&4:4,Ca=hi.target.combinedFlags&4,An=Yn($r)?$r.target.minLength:0,gn=hi.target.minLength;if(!ma&&vt=ht-Bo)?$r.target.elementFlags[ls]:4,zt=hi.target.elementFlags[Qo];if(zt&8&&!(gi&8))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target,Qo),0;if(gi&8&&!(zt&12))return Ri&&Yt(e.Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target,ls,Qo),0;if(zt&1&&!(gi&1))return Ri&&Yt(e.Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target,Qo),0;if(!(Io&&((gi&12||zt&12)&&(Io=!1),Io&&(mt==null?void 0:mt.has(\"\"+Qo))))){var La=Yn($r)?Qo=ht-Bo?kg(Vn[ls],!!(gi&zt&2)):jh($r,us,Bo)||ui:Vn[0],fa=zo[Qo],ya=gi&8&&zt&4?Zs(fa):kg(fa,!!(zt&2)),Nn=oa(La,ya,3,Ri,void 0,ft);if(!Nn)return Ri&&(ht>1||vt>1)&&(Qo=ht-Bo||vt-us-Bo===1?lt(e.Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,ls,Qo):lt(e.Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,us,vt-Bo-1,Qo)),0;Ht&=Nn}}return Ht}if(hi.target.combinedFlags&12)return 0}var fn=(t===Or||t===ki)&&!Qp($r)&&!Jh($r)&&!Yn($r),hn=cb($r,hi,fn,!1);if(hn)return Ri&&rc($r,hi)&&Po($r,hi,hn,fn),0;if(Qp(hi))for(var sn=0,ln=Ga(uo($r),mt);sn0&&e.every(i.properties,function(t){return!!(t.flags&16777216)})}return r.flags&2097152?e.every(r.types,SE):!1}function fw(r,i,t){for(var o=0,s=uo(r);o\";continue}tr+=\"-\"+Qr.id}return tr}}function qD(r,i,t,o,s){if(o===wa&&r.id>i.id){var u=r;r=i,i=u}var h=t?\":\"+t:\"\";return Mh(r)&&Mh(i)?gw(r,i,h,s):\"\".concat(r.id,\",\").concat(i.id).concat(h)}function fy(r,i){if(e.getCheckFlags(r)&6){for(var t=0,o=r.containingType.types;t=o)for(var s=ov(r),u=0,h=0,z=0;z=h&&(u++,u>=o))return!0;h=me.id}}return!1}function ov(r){if(r.flags&524288&&!lb(r)){if(e.getObjectFlags(r)&&4&&r.node)return r.node;if(r.symbol&&!(e.getObjectFlags(r)&16&&r.symbol.flags&32))return r.symbol;if(Yn(r))return r.target}if(r.flags&262144)return r.symbol;if(r.flags&8388608){do r=r.objectType;while(r.flags&8388608);return r}return r.flags&16777216?r.root:r}function yw(r,i){return VD(r,i,av)!==0}function VD(r,i,t){if(r===i)return-1;var o=e.getDeclarationModifierFlagsFromSymbol(r)&24,s=e.getDeclarationModifierFlagsFromSymbol(i)&24;if(o!==s)return 0;if(o){if(jg(r)!==jg(i))return 0}else if((r.flags&16777216)!==(i.flags&16777216))return 0;return Zu(r)!==Zu(i)?0:t(Jt(r),Jt(i))}function hw(r,i,t){var o=Wc(r),s=Wc(i),u=Hl(r),h=Hl(i),z=Xl(r),me=Xl(i);return!!(o===s&&u===h&&z===me||t&&u<=h)}function _y(r,i,t,o,s,u){if(r===i)return-1;if(!hw(r,i,t)||e.length(r.typeParameters)!==e.length(i.typeParameters))return 0;if(i.typeParameters){for(var h=Uc(r.typeParameters,i.typeParameters),z=0;ze.length(i.typeParameters)&&(s=Rc(s,e.last(xo(r)))),r.objectFlags|=67108864,r.cachedEquivalentBaseType=s}}}function kE(r){return Ye?r===na:r===vi}function Jh(r){var i=KD(r);return!!i&&kE(i)}function Eg(r){return Yn(r)||!!bi(r,\"0\")}function AE(r){return sp(r)||Eg(r)}function xw(r,i){var t=da(r,\"\"+i);if(t)return t;if(gf(r,Yn))return Ss(r,function(o){return sv(o)||Tr})}function Ew(r){return!(r.flags&240512)}function Vl(r){return!!(r.flags&109440)}function NE(r){return r.flags&2097152?e.some(r.types,Vl):!!(r.flags&109440)}function Cw(r){return r.flags&2097152&&e.find(r.types,Vl)||r}function Cg(r){return r.flags&16?!0:r.flags&1048576?r.flags&1024?!0:e.every(r.types,Vl):Vl(r)}function Kl(r){return r.flags&1024?cc(r):r.flags&402653312?Li:r.flags&256?nt:r.flags&2048?Mt:r.flags&512?Ii:r.flags&1048576?Ss(r,Kl):r}function Hp(r){return r.flags&1024&&Kp(r)?cc(r):r.flags&128&&Kp(r)?Li:r.flags&256&&Kp(r)?nt:r.flags&2048&&Kp(r)?Mt:r.flags&512&&Kp(r)?Ii:r.flags&1048576?Ss(r,Hp):r}function PE(r){return r.flags&8192?Ki:r.flags&1048576?Ss(r,PE):r}function HD(r,i){return N0(r,i)||(r=PE(Hp(r))),r}function kw(r,i,t){if(r&&Vl(r)){var o=i?t?Tv(i):i:void 0;r=HD(r,o)}return r}function XD(r,i,t,o){if(r&&Vl(r)){var s=i?Jg(t,i,o):void 0;r=HD(r,s)}return r}function Yn(r){return!!(e.getObjectFlags(r)&4&&r.target.objectFlags&8)}function lm(r){return Yn(r)&&!!(r.target.combinedFlags&8)}function IE(r){return lm(r)&&r.target.elementFlags.length===1}function sv(r){return jh(r,r.target.fixedLength)}function Aw(r){var i=sv(r);return i&&Zs(i)}function jh(r,i,t,o){t===void 0&&(t=0),o===void 0&&(o=!1);var s=$_(r)-t;if(i-1&&(es(u,u.name.escapedText,788968,void 0,u.name.escapedText,!0)||u.name.originalKeywordKind&&e.isTypeNodeKind(u.name.originalKeywordKind))){var h=\"arg\"+u.parent.parameters.indexOf(u),z=e.declarationNameToString(u.name)+(u.dotDotDotToken?\"[]\":\"\");Ic(n,r,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,h,z);return}s=r.dotDotDotToken?n?e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type:e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:n?e.Diagnostics.Parameter_0_implicitly_has_an_1_type:e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 203:if(s=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!n)return;break;case 317:Xr(r,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return;case 256:case 169:case 168:case 172:case 173:case 213:case 214:if(n&&!r.name){t===3?Xr(r,e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation,o):Xr(r,e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return}s=n?t===3?e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;break;case 195:n&&Xr(r,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type);return;default:s=n?e.Diagnostics.Variable_0_implicitly_has_an_1_type:e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage}Ic(n,r,s,e.declarationNameToString(e.getNameOfDeclaration(r)),o)}}function Kh(r,i,t){fe(function(){n&&e.getObjectFlags(i)&65536&&(!t||!Pb(r))&&(Vh(i)||Xp(r,i,t))})}function eb(r,i,t){var o=Wc(r),s=Wc(i),u=vv(r),h=vv(i),z=h?s-1:s,me=u?z:Math.min(o,z),Me=T_(r);if(Me){var $e=T_(i);$e&&t(Me,$e)}for(var tr=0;trr.target.minLength||!i.target.hasRestElement&&(r.target.hasRestElement||i.target.fixedLength0){for(var Ti=dr,Ci=Dr;Ci=$i(Ti).indexOf(li,Ci),!(Ci>=0);){if(Ti++,Ti===r.length)return;Ci=0}Zi(Ti,Ci),Dr+=li.length}else if(Dr<$i(dr).length)Zi(dr,Dr+1);else if(dr0)for(var $t=0,Ua=it;$t1){var i=e.filter(r,lb);if(i.length){var t=Pa(i,2);return e.concatenate(e.filter(r,function(o){return!lb(o)}),[t])}}return r}function r8(r){return r.priority&416?Do(r.contraCandidates):Tw(r.contraCandidates)}function i8(r,i){var t=e8(r.candidates),o=Zw(r.typeParameter),s=!o&&r.topLevel&&(r.isFixed||!nb(yo(i),r.typeParameter)),u=o?e.sameMap(t,jc):s?e.sameMap(t,Hp):t,h=r.priority&416?Pa(u,2):Sw(u);return $c(h)}function GE(r,i){var t=r.inferences[i];if(!t.inferredType){var o=void 0,s=r.signature;if(s){var u=t.candidates?i8(t,s):void 0;if(t.contraCandidates)o=u&&!(u.flags&131072)&&e.some(t.contraCandidates,function(Me){return E_(u,Me)})?u:r8(t);else if(u)o=u;else if(r.flags&1)o=Bt;else{var h=D_(t.typeParameter);h&&(o=un(h,LI(MI(r,i),r.nonFixingMapper)))}}else o=zE(t);t.inferredType=o||fb(!!(r.flags&2));var z=Tc(t.typeParameter);if(z){var me=un(z,r.nonFixingMapper);(!o||!r.compareTypes(o,Rc(me,o)))&&(t.inferredType=o=me)}}return t.inferredType}function fb(r){return r?Oe:gr}function _b(r){for(var i=[],t=0;t=10&&o*2>=r.length?t:void 0}function Qh(r){var i=r.types;if(!(i.length<10||e.getObjectFlags(r)&32768||e.countWhere(i,function(s){return!!(s.flags&59506688)})<10)){if(r.keyPropertyName===void 0){var t=e.forEach(i,function(s){return s.flags&59506688?e.forEach(uo(s),function(u){return Vl(Jt(u))?u.escapedName:void 0}):void 0}),o=t&&a8(i,t);r.keyPropertyName=o?t:\"\",r.constituentMap=o}return r.keyPropertyName.length?r.keyPropertyName:void 0}}function Yh(r,i){var t,o=(t=r.constituentMap)===null||t===void 0?void 0:t.get(fu(jc(i)));return o!==gr?o:void 0}function $E(r,i){var t=Qh(r),o=t&&da(i,t);return o&&Yh(r,o)}function n8(r,i){var t=Qh(r),o=t&&e.find(i.properties,function(u){return u.symbol&&u.kind===296&&u.symbol.escapedName===t&&hy(u.initializer)}),s=o&&Oy(o.initializer);return s&&Yh(r,s)}function ZE(r,i){return zs(r,i)||QE(r,i)}function eC(r,i){if(r.arguments)for(var t=0,o=r.arguments;t=0&&Hi.parameterIndex=Hi&&Vt<_t,on,zn;if(Vt>-1){var Ga=gt.filter(function(Uo){return Uo!==void 0}),Qn=Vt=2){var o=t.parent.parent;if(o.kind===254&&e.getCombinedNodeFlags(t)&2||o.kind===164){var s=va(o);if(!(s.flags&268435456)){s.flags|=268435456;var u=Wo(o,0);if(s.flags&=-268435457,u&&u.flags&1048576&&!(o.kind===164&&n0(r))){var h=t.parent,z=up(h,u,u,void 0,i.flowNode);return z.flags&131072?ui:uf(t,z)}}}}if(e.isParameter(t)&&!t.type&&!t.initializer&&!t.dotDotDotToken){var me=t.parent;if(me.parameters.length>=2&&wD(me)){var Me=dv(me);if(Me&&Me.parameters.length===1&&H(Me)){var $e=Xd(Jt(Me.parameters[0]));if($e.flags&1048576&&gf($e,Yn)&&!n0(r)){var z=up(me,$e,$e,void 0,i.flowNode),tr=me.parameters.indexOf(t)-(e.getThisParameter(me)?1:0);return Jc(z,If(tr))}}}}}return Jt(r)}function R8(r,i){if(e.isThisInTypeQuery(r))return yy(r);var t=Dl(r);if(t===xe)return Pe;if(t===or){if(QC(r))return Xr(r,e.Diagnostics.arguments_cannot_be_referenced_in_property_initializers),Pe;var o=e.getContainingFunction(r);return Ae<2&&(o.kind===214?Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression):e.hasSyntacticModifier(o,256)&&Xr(r,e.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method)),va(o).flags|=8192,Jt(t)}r.parent&&e.isPropertyAccessExpression(r.parent)&&r.parent.expression===r||o0(t,r);var s=cu(t),u=W6(s,r);P_(u)&&mD(r,u)&&u.declarations&&El(r,u.declarations,r.escapedText);var h=s.valueDeclaration;if(h&&s.flags&32){if(h.kind===257&&e.nodeIsDecorated(h))for(var o=e.getContainingClass(r);o!==void 0;){if(o===h&&o.name!==r){va(h).flags|=16777216,va(r).flags|=33554432;break}o=e.getContainingClass(o)}else if(h.kind===226)for(var o=e.getThisContainer(r,!1);o.kind!==305;){if(o.parent===h){(e.isPropertyDeclaration(o)&&e.isStatic(o)||e.isClassStaticBlockDeclaration(o))&&(va(h).flags|=16777216,va(r).flags|=33554432);break}o=e.getThisContainer(o,!1)}}j8(r,t);var z=L8(s,r),me=e.getAssignmentTargetKind(r);if(me){if(!(s.flags&3)&&!(e.isInJSFile(r)&&s.flags&512)){var Me=s.flags&384?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_enum:s.flags&32?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_class:s.flags&1536?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace:s.flags&16?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_function:s.flags&2097152?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_import:e.Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable;return Xr(r,Me,tn(t)),Pe}if(Zu(s))return s.flags&3?Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant,tn(t)):Xr(r,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,tn(t)),Pe}var $e=s.flags&2097152;if(s.flags&3){if(me===1)return z}else if($e)h=ru(t);else return z;if(!h)return z;z=yb(z,r,i);for(var tr=e.getRootDeclaration(h).kind===164,dr=_v(h),Dr=_v(r),Qr=Dr!==dr,li=r.parent&&r.parent.parent&&e.isSpreadAssignment(r.parent)&&mb(r.parent.parent),Ti=t.flags&134217728;Dr!==dr&&(Dr.kind===213||Dr.kind===214||e.isObjectLiteralOrClassExpressionMethodOrAccessor(Dr))&&(pv(s)&&z!==So||tr&&!n0(s));)Dr=_v(Dr);var Ci=tr||$e||Qr||li||Ti||e.isBindingElement(h)||z!==nr&&z!==So&&(!Ye||(z.flags&16387)!==0||_m(r)||r.parent.kind===275)||r.parent.kind===230||h.kind===254&&h.exclamationToken||h.flags&16777216,$i=Ci?tr?I8(z,h):z:z===nr||z===So?Tr:i_(z),Zi=up(r,z,$i,Dr);if(!_C(r)&&(z===nr||z===So)){if(Zi===nr||Zi===So)return n&&(Xr(e.getNameOfDeclaration(h),e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,tn(t),Ot(Zi)),Xr(r,e.Diagnostics.Variable_0_implicitly_has_an_1_type,tn(t),Ot(Zi))),kv(Zi)}else if(!Ci&&!(ju(z)&32768)&&ju(Zi)&32768)return Xr(r,e.Diagnostics.Variable_0_is_used_before_being_assigned,tn(t)),z;return me?Kl(Zi):Zi}function B8(r,i){return!!e.findAncestor(r,function(t){return t===i?\"quit\":e.isFunctionLike(t)||t.parent&&e.isPropertyDeclaration(t.parent)&&!e.hasStaticModifier(t.parent)&&t.parent.initializer===t})}function J8(r,i){return e.findAncestor(r,function(t){return t===i?\"quit\":t===i.initializer||t===i.condition||t===i.incrementor||t===i.statement})}function hb(r){return e.findAncestor(r,function(i){return!i||e.nodeStartsNewLexicalEnvironment(i)?\"quit\":e.isIterationStatement(i,!1)})}function j8(r,i){if(!(Ae>=2||(i.flags&34)===0||!i.valueDeclaration||e.isSourceFile(i.valueDeclaration)||i.valueDeclaration.parent.kind===292)){var t=e.getEnclosingBlockScopeContainer(i.valueDeclaration),o=B8(r,t),s=hb(t);if(s){if(o){var u=!0;if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);if(h&&h.parent===t){var z=J8(r.parent,t);if(z){var me=va(z);me.flags|=131072;var Me=me.capturedBlockScopeBindings||(me.capturedBlockScopeBindings=[]);e.pushIfUnique(Me,i),z===t.initializer&&(u=!1)}}}u&&(va(s).flags|=65536)}if(e.isForStatement(t)){var h=e.getAncestor(i.valueDeclaration,255);h&&h.parent===t&&z8(r,t)&&(va(i.valueDeclaration).flags|=4194304)}va(i.valueDeclaration).flags|=524288}o&&(va(i.valueDeclaration).flags|=262144)}}function U8(r,i){var t=va(r);return!!t&&e.contains(t.capturedBlockScopeBindings,Et(i))}function z8(r,i){for(var t=r;t.parent.kind===212;)t=t.parent;var o=!1;if(e.isAssignmentTarget(t))o=!0;else if(t.parent.kind===219||t.parent.kind===220){var s=t.parent;o=s.operator===45||s.operator===46}return o?!!e.findAncestor(t,function(u){return u===i?\"quit\":u===i.statement}):!1}function Db(r,i){if(va(r).flags|=2,i.kind===167||i.kind===171){var t=i.parent;va(t).flags|=4}else va(i).flags|=4}function vC(r){return e.isSuperCall(r)?r:e.isFunctionLike(r)?void 0:e.forEachChild(r,vC)}function yC(r){var i=Et(r),t=go(i),o=Bl(t);return o===ct}function hC(r,i,t){var o=i.parent,s=e.getClassExtendsHeritageElement(o);s&&!yC(o)&&r.flowNode&&!a0(r.flowNode,!1)&&Xr(r,t)}function W8(r,i){e.isPropertyDeclaration(i)&&e.hasStaticModifier(i)&&i.initializer&&e.textRangeContainsPositionInclusive(i.initializer,r.pos)&&e.length(i.parent.decorators)&&Xr(r,e.Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class)}function yy(r){var i=_m(r),t=e.getThisContainer(r,!0),o=!1;switch(t.kind===171&&hC(r,t,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),t.kind===214&&(t=e.getThisContainer(t,!1),o=!0),W8(r,t),t.kind){case 261:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 260:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 171:DC(r,t)&&Xr(r,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 162:Xr(r,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);break}!i&&o&&Ae<2&&Db(r,t);var s=bb(r,!0,t);if(lr){var u=Jt(pe);if(s===u&&o)Xr(r,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!s){var h=Xr(r,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(t)){var z=bb(t);z&&z!==u&&e.addRelatedInfo(h,e.createDiagnosticForNode(t,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return s||Oe}function bb(r,i,t){i===void 0&&(i=!0),t===void 0&&(t=e.getThisContainer(r,!1));var o=e.isInJSFile(r);if(e.isFunctionLike(t)&&(!xb(r)||e.getThisParameter(t))){var s=ni(t)||o&&K8(t);if(!s){var u=V8(t);if(o&&u){var h=yn(u).symbol;h&&h.members&&h.flags&16&&(s=go(h).thisType)}else Sl(t)&&(s=go(so(t.symbol)).thisType);s||(s=SC(t))}if(s)return up(r,s)}if(e.isClassLike(t.parent)){var z=Et(t.parent),me=e.isStatic(t)?Jt(z):go(z).thisType;return up(r,me)}if(e.isSourceFile(t))if(t.commonJsModuleIndicator){var Me=Et(t);return Me&&Jt(Me)}else{if(t.externalModuleIndicator)return Tr;if(i)return Jt(pe)}}function q8(r){var i=e.getThisContainer(r,!1);if(e.isFunctionLike(i)){var t=yl(i);if(t.thisParameter)return r0(t.thisParameter)}if(e.isClassLike(i.parent)){var o=Et(i.parent);return e.isStatic(i)?Jt(o):go(o).thisType}}function V8(r){if(r.kind===213&&e.isBinaryExpression(r.parent)&&e.getAssignmentDeclarationKind(r.parent)===3)return r.parent.left.expression.expression;if(r.kind===169&&r.parent.kind===205&&e.isBinaryExpression(r.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent)===6)return r.parent.parent.left.expression;if(r.kind===213&&r.parent.kind===296&&r.parent.parent.kind===205&&e.isBinaryExpression(r.parent.parent.parent)&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===6)return r.parent.parent.parent.left.expression;if(r.kind===213&&e.isPropertyAssignment(r.parent)&&e.isIdentifier(r.parent.name)&&(r.parent.name.escapedText===\"value\"||r.parent.name.escapedText===\"get\"||r.parent.name.escapedText===\"set\")&&e.isObjectLiteralExpression(r.parent.parent)&&e.isCallExpression(r.parent.parent.parent)&&r.parent.parent.parent.arguments[2]===r.parent.parent&&e.getAssignmentDeclarationKind(r.parent.parent.parent)===9)return r.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(r)&&e.isIdentifier(r.name)&&(r.name.escapedText===\"value\"||r.name.escapedText===\"get\"||r.name.escapedText===\"set\")&&e.isObjectLiteralExpression(r.parent)&&e.isCallExpression(r.parent.parent)&&r.parent.parent.arguments[2]===r.parent&&e.getAssignmentDeclarationKind(r.parent.parent)===9)return r.parent.parent.arguments[0].expression}function K8(r){var i=e.getJSDocType(r);if(i&&i.kind===317){var t=i;if(t.parameters.length>0&&t.parameters[0].name&&t.parameters[0].name.escapedText===\"this\")return Va(t.parameters[0].type)}var o=e.getJSDocThisTag(r);if(o&&o.typeExpression)return Va(o.typeExpression)}function DC(r,i){return!!e.findAncestor(r,function(t){return e.isFunctionLikeDeclaration(t)?\"quit\":t.kind===164&&t.parent===i})}function Sb(r){var i=r.parent.kind===208&&r.parent.expression===r,t=e.getSuperContainer(r,!0),o=t,s=!1;if(!i)for(;o&&o.kind===214;)o=e.getSuperContainer(o,!0),s=Ae<2;var u=tr(o),h=0;if(!u){var z=e.findAncestor(r,function(dr){return dr===o?\"quit\":dr.kind===162});return z&&z.kind===162?Xr(r,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):i?Xr(r,e.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors):!o||!o.parent||!(e.isClassLike(o.parent)||o.parent.kind===205)?Xr(r,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions):Xr(r,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class),Pe}if(!i&&t.kind===171&&hC(r,o,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),e.isStatic(o)||i?(h=512,!i&&Ae>=2&&Ae<=8&&(e.isPropertyDeclaration(o)||e.isClassStaticBlockDeclaration(o))&&e.forEachEnclosingBlockScopeContainer(r.parent,function(dr){(!e.isSourceFile(dr)||e.isExternalOrCommonJsModule(dr))&&(va(dr).flags|=134217728)})):h=256,va(r).flags|=h,o.kind===169&&e.hasSyntacticModifier(o,256)&&(e.isSuperProperty(r.parent)&&e.isAssignmentTarget(r.parent)?va(o).flags|=4096:va(o).flags|=2048),s&&Db(r.parent,o),o.parent.kind===205)return Ae<2?(Xr(r,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),Pe):Oe;var me=o.parent;if(!e.getClassExtendsHeritageElement(me))return Xr(r,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),Pe;var Me=go(Et(me)),$e=Me&&Qc(Me)[0];if(!$e)return Pe;if(o.kind===171&&DC(r,o))return Xr(r,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),Pe;return h===512?Bl(Me):Rc($e,Me.thisType);function tr(dr){return dr?i?dr.kind===171:e.isClassLike(dr.parent)||dr.parent.kind===205?e.isStatic(dr)?dr.kind===169||dr.kind===168||dr.kind===172||dr.kind===173||dr.kind===167||dr.kind===170:dr.kind===169||dr.kind===168||dr.kind===172||dr.kind===173||dr.kind===167||dr.kind===166||dr.kind===171:!1:!1}}function G8(r){return(r.kind===169||r.kind===172||r.kind===173)&&r.parent.kind===205?r.parent:r.kind===213&&r.parent.kind===296?r.parent.parent:void 0}function bC(r){return e.getObjectFlags(r)&4&&r.target===qn?xo(r)[0]:void 0}function H8(r){return Ss(r,function(i){return i.flags&2097152?e.forEach(i.types,bC):bC(i)})}function SC(r){if(r.kind!==214){if(wD(r)){var i=dv(r);if(i){var t=i.thisParameter;if(t)return Jt(t)}}var o=e.isInJSFile(r);if(lr||o){var s=G8(r);if(s){for(var u=$p(s),h=s,z=u;z;){var me=H8(z);if(me)return un(me,ab(wg(s)));if(h.parent.kind!==296)break;h=h.parent.parent,z=$p(h)}return $c(u?C_(u):Os(s))}var Me=e.walkUpParenthesizedExpressions(r.parent);if(Me.kind===221&&Me.operatorToken.kind===63){var $e=Me.left;if(e.isAccessExpression($e)){var tr=$e.expression;if(o&&e.isIdentifier(tr)){var dr=e.getSourceFileOfNode(Me);if(dr.commonJsModuleIndicator&&Dl(tr)===dr.symbol)return}return $c(Os(tr))}}}}}function TC(r){var i=r.parent;if(!!wD(i)){var t=e.getImmediatelyInvokedFunctionExpression(i);if(t&&t.arguments){var o=Zb(t),s=i.parameters.indexOf(r);if(r.dotDotDotToken)return Yb(o,s,o.length,Oe,void 0,0);var u=va(t),h=u.resolvedSignature;u.resolvedSignature=En;var z=s=o?Jc(Jt(t.parameters[o]),If(i-o),256):$u(t,i)}function r5(r,i){if(r.parent.kind===210)return EC(r.parent,i)}function i5(r,i){var t=r.parent,o=t.left,s=t.operatorToken,u=t.right;switch(s.kind){case 63:case 76:case 75:case 77:return r===u?a5(t):void 0;case 56:case 60:var h=ou(t,i);return r===u&&(h&&h.pattern||!h&&!e.isDefaultedExpandoInitializer(t))?Gs(o):h;case 55:case 27:return r===u?ou(t,i):void 0;default:return}}function t5(r){if(r.symbol)return r.symbol;if(e.isIdentifier(r))return Dl(r);if(e.isPropertyAccessExpression(r)){var i=Gs(r.expression);return e.isPrivateIdentifier(r.name)?t(i,r.name):bi(i,r.name.escapedText)}return;function t(o,s){var u=g0(s.escapedText,s);return u&&Ub(o,u)}}function a5(r){var i,t,o=e.getAssignmentDeclarationKind(r);switch(o){case 0:case 4:var s=t5(r.left),u=s&&s.valueDeclaration;if(u&&(e.isPropertyDeclaration(u)||e.isPropertySignature(u))){var h=e.getEffectiveTypeAnnotationNode(u);return h&&un(Va(h),Aa(s).mapper)||u.initializer&&Gs(r.left)}return o===0?Gs(r.left):CC(r);case 5:if(s0(r,o))return CC(r);if(r.left.symbol){var z=r.left.symbol.valueDeclaration;if(!z)return;var me=e.cast(r.left,e.isAccessExpression),h=e.getEffectiveTypeAnnotationNode(z);if(h)return Va(h);if(e.isIdentifier(me.expression)){var Me=me.expression,$e=es(Me,Me.escapedText,111551,void 0,Me.escapedText,!0);if($e){var tr=$e.valueDeclaration&&e.getEffectiveTypeAnnotationNode($e.valueDeclaration);if(tr){var dr=e.getElementOrPropertyAccessName(me);if(dr!==void 0)return Md(Va(tr),dr)}return}}return e.isInJSFile(z)?void 0:Gs(r.left)}else return Gs(r.left);case 1:case 6:case 3:var Dr=(i=r.left.symbol)===null||i===void 0?void 0:i.valueDeclaration;case 2:Dr||(Dr=(t=r.symbol)===null||t===void 0?void 0:t.valueDeclaration);var Qr=Dr&&e.getEffectiveTypeAnnotationNode(Dr);return Qr?Va(Qr):void 0;case 7:case 8:case 9:return e.Debug.fail(\"Does not apply\");default:return e.Debug.assertNever(o)}}function s0(r,i){if(i===void 0&&(i=e.getAssignmentDeclarationKind(r)),i===4)return!0;if(!e.isInJSFile(r)||i!==5||!e.isIdentifier(r.left.expression))return!1;var t=r.left.expression.escapedText,o=es(r.left,t,111551,void 0,void 0,!0,!0);return e.isThisInitializedDeclaration(o==null?void 0:o.valueDeclaration)}function CC(r){if(!r.symbol)return Gs(r.left);if(r.symbol.valueDeclaration){var i=e.getEffectiveTypeAnnotationNode(r.symbol.valueDeclaration);if(i){var t=Va(i);if(t)return t}}var o=e.cast(r.left,e.isAccessExpression);if(!!e.isObjectLiteralMethod(e.getThisContainer(o.expression,!1))){var s=yy(o.expression),u=e.getElementOrPropertyAccessName(o);return u!==void 0&&Md(s,u)||void 0}}function n5(r){return!!(e.getCheckFlags(r)&262144&&!r.type&&v(r,0)>=0)}function Md(r,i,t){return Ss(r,function(o){var s;if(Bc(o)&&!o.declaration.nameType){var u=Mu(o),h=uc(u)||u,z=t||Bu(e.unescapeLeadingUnderscores(i));if(ao(z,h))return xh(o,z)}else if(o.flags&3670016){var me=bi(o,i);if(me)return n5(me)?void 0:Jt(me);if(Yn(o)){var Me=sv(o);if(Me&&e.isNumericLiteralName(i)&&+i>=0)return Me}return(s=mn(To(o),t||Bu(e.unescapeLeadingUnderscores(i))))===null||s===void 0?void 0:s.type}},!0)}function kC(r,i){if(e.Debug.assert(e.isObjectLiteralMethod(r)),!(r.flags&33554432))return kb(r,i)}function kb(r,i){var t=r.parent,o=e.isPropertyAssignment(r)&&Tb(r);if(o)return o;var s=$p(t,i);if(s){if(Td(r)){var u=Et(r);return Md(s,u.escapedName,Aa(u).nameType)}if(r.name){var h=Z_(r.name);return Ss(s,function(z){var me;return(me=mn(To(z),h))===null||me===void 0?void 0:me.type},!0)}}}function Ab(r,i){return r&&(Md(r,\"\"+i)||Ss(r,function(t){return xS(1,t,Tr,void 0,!1)},!0))}function o5(r,i){var t=r.parent;return r===t.whenTrue||r===t.whenFalse?ou(t,i):void 0}function s5(r,i){var t=$p(r.openingElement.tagName),o=_0(Og(r));if(!!(t&&!ta(t)&&o&&o!==\"\")){var s=e.getSemanticJsxChildren(r.children),u=s.indexOf(i),h=Md(t,o);return h&&(s.length===1?h:Ss(h,function(z){return sp(z)?Jc(z,If(u)):z},!0))}}function c5(r){var i=r.parent;return e.isJsxAttributeLike(i)?ou(r):e.isJsxElement(i)?s5(i,r):void 0}function AC(r){if(e.isJsxAttribute(r)){var i=$p(r.parent);return!i||ta(i)?void 0:Md(i,r.name.escapedText)}else return ou(r.parent)}function hy(r){switch(r.kind){case 10:case 8:case 9:case 14:case 110:case 95:case 104:case 79:case 153:return!0;case 206:case 212:return hy(r.expression);case 288:return!r.expression||hy(r.expression)}return!1}function u5(r,i){return n8(i,r)||UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===296&&hy(t.initializer)&&lv(i,t.symbol.escapedName)}),function(t){return[function(){return Oy(t.initializer)},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function l5(r,i){return UD(i,e.concatenate(e.map(e.filter(r.properties,function(t){return!!t.symbol&&t.kind===285&&lv(i,t.symbol.escapedName)&&(!t.initializer||hy(t.initializer))}),function(t){return[t.initializer?function(){return Oy(t.initializer)}:function(){return Dt},t.symbol.escapedName]}),e.map(e.filter(uo(i),function(t){var o;return!!(t.flags&16777216)&&!!(!((o=r==null?void 0:r.symbol)===null||o===void 0)&&o.members)&&!r.symbol.members.has(t.escapedName)&&lv(i,t.escapedName)}),function(t){return[function(){return Tr},t.escapedName]})),ao,i)}function $p(r,i){var t=e.isObjectLiteralMethod(r)?kC(r,i):ou(r,i),o=c0(t,r,i);if(o&&!(i&&i&2&&o.flags&8650752)){var s=Ss(o,$s,!0);return s.flags&1048576&&e.isObjectLiteralExpression(r)?u5(r,s):s.flags&1048576&&e.isJsxAttributes(r)?l5(r,s):s}}function c0(r,i,t){if(r&&fs(r,465829888)){var o=wg(i);if(o&&e.some(o.inferences,tg)){if(t&&t&1)return u0(r,o.nonFixingMapper);if(o.returnMapper){var s=u0(r,o.returnMapper);return s.flags&1048576&&$f(s.types,ut)&&$f(s.types,Rt)?ec(s,function(u){return u!==ut&&u!==Rt}):s}}}return r}function u0(r,i){return r.flags&465829888?un(r,i):r.flags&1048576?Pa(e.map(r.types,function(t){return u0(t,i)}),0):r.flags&2097152?Do(e.map(r.types,function(t){return u0(t,i)})):r}function ou(r,i){if(r.flags&33554432)return;if(r.contextualType)return r.contextualType;var t=r.parent;switch(t.kind){case 254:case 164:case 167:case 166:case 203:return Y8(r,i);case 214:case 247:return $8(r);case 224:return e5(t);case 218:return Z8(t,i);case 208:case 209:return EC(t,r);case 211:case 229:return e.isConstTypeReference(t.type)?h(t):Va(t.type);case 221:return i5(r,i);case 296:case 297:return kb(t,i);case 298:return ou(t.parent,i);case 204:{var o=t,s=$p(o,i);return Ab(s,e.indexOfNode(o.elements,r))}case 222:return o5(r,i);case 233:return e.Debug.assert(t.parent.kind===223),r5(t.parent,r);case 212:{var u=e.isInJSFile(t)?e.getJSDocTypeTag(t):void 0;return u?e.isJSDocTypeTag(u)&&e.isConstTypeReference(u.typeExpression.type)?h(t):Va(u.typeExpression.type):ou(t,i)}case 230:return ou(t,i);case 271:return Rl(t);case 288:return c5(t);case 285:case 287:return AC(t);case 280:case 279:return f5(t,i)}return;function h(z){return ou(z)}}function wg(r){var i=e.findAncestor(r,function(t){return!!t.inferenceContext});return i&&i.inferenceContext}function f5(r,i){return e.isJsxOpeningElement(r)&&r.parent.contextualType&&i!==4?r.parent.contextualType:Cb(r,0)}function l0(r,i){return lk(i)!==0?_5(r,i):g5(r,i)}function _5(r,i){var t=nS(r,gr);t=NC(i,Og(i),t);var o=Zp(U.IntrinsicAttributes,i);return nn(o)||(t=Zg(o,t)),t}function p5(r,i){if(r.compositeSignatures){for(var t=[],o=0,s=r.compositeSignatures;o=2){var z=zp([u,t],h,2,e.isInJSFile(r));return am(o,z)}}if(e.length(s.typeParameters)>=2){var z=zp([u,t],s.typeParameters,2,e.isInJSFile(r));return Yf(s,z)}}return t}function g5(r,i){var t=Og(i),o=M5(t),s=o===void 0?nS(r,gr):o===\"\"?yo(r):p5(r,o);if(!s)return!!o&&!!e.length(i.attributes.properties)&&Xr(i,e.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,e.unescapeLeadingUnderscores(o)),gr;if(s=NC(i,t,s),ta(s))return s;var u=s,h=Zp(U.IntrinsicClassAttributes,i);if(!nn(h)){var z=Af(h.symbol),me=yo(r);u=Zg(z?Yf(h,zp([me],z,Ul(z),e.isInJSFile(i))):h,u)}var Me=Zp(U.IntrinsicAttributes,i);return nn(Me)||(u=Zg(Me,u)),u}function m5(r){return e.getStrictOptionValue(ye,\"noImplicitAny\")?e.reduceLeft(r,function(i,t){return i===t||!i?i:ah(i.typeParameters,t.typeParameters)?h5(i,t):void 0}):void 0}function v5(r,i,t){if(!r||!i)return r||i;var o=Pa([Jt(r),un(Jt(i),t)]);return eg(r,o)}function y5(r,i,t){for(var o=Wc(r),s=Wc(i),u=o>=s?r:i,h=u===r?i:r,z=u===r?o:s,me=Xl(r)||Xl(i),Me=me&&!Xl(u),$e=new Array(z+(Me?1:0)),tr=0;tr=Hl(u)&&tr>=Hl(h),Ci=tr>=o?void 0:vm(r,tr),$i=tr>=s?void 0:vm(i,tr),Zi=Ci===$i?Ci:Ci?$i?void 0:Ci:$i,qt=oo(1|(Ti&&!li?16777216:0),Zi||\"arg\".concat(tr));qt.type=li?Zs(Qr):Qr,$e[tr]=qt}if(Me){var Nt=oo(1,\"args\");Nt.type=Zs($u(h,z)),h===i&&(Nt.type=un(Nt.type,t)),$e[z]=Nt}return $e}function h5(r,i){var t=r.typeParameters||i.typeParameters,o;r.typeParameters&&i.typeParameters&&(o=Uc(i.typeParameters,r.typeParameters));var s=r.declaration,u=y5(r,i,o),h=v5(r.thisParameter,i.thisParameter,o),z=Math.max(r.minArgumentCount,i.minArgumentCount),me=Fu(s,t,h,u,void 0,void 0,z,(r.flags|i.flags)&39);return me.compositeKind=2097152,me.compositeSignatures=e.concatenate(r.compositeKind===2097152&&r.compositeSignatures||[r],[i]),o&&(me.mapper=r.compositeKind===2097152&&r.mapper&&r.compositeSignatures?np(r.mapper,o):o),me}function Nb(r,i){var t=ot(r,0),o=e.filter(t,function(s){return!D5(s,i)});return o.length===1?o[0]:m5(o)}function D5(r,i){for(var t=0;t0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1,$i=!1);var Tn=bu(yn(ja.expression));if(Dy(Tn)){var cn=TD(Tn,Me);if(o&&FC(cn,o,ja),Ra=u.length,nn(h))continue;h=Vp(h,cn,r.symbol,Qr,Me)}else Xr(ja,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),h=Pe;continue}else e.Debug.assert(ja.kind===172||ja.kind===173),xm(ja);wn&&!(wn.flags&8576)?ao(wn,Vi)&&(ao(wn,nt)?Ci=!0:ao(wn,Ki)?$i=!0:Ti=!0,t&&(li=!0)):s.set(Fn.escapedName,Fn),u.push(Fn)}if(me&&r.parent.kind!==298)for(var Un=0,oa=uo(z);Un0&&(h=Vp(h,Mn(),r.symbol,Qr,Me),u=[],s=e.createSymbolTable(),Ti=!1,Ci=!1),Ss(h,function(Ln){return Ln===Ba?Mn():Ln});return Mn();function Mn(){var Ln=[];Ti&&Ln.push(Ib(r,Ra,u,Li)),Ci&&Ln.push(Ib(r,Ra,u,nt)),$i&&Ln.push(Ib(r,Ra,u,Ki));var ci=rs(r.symbol,s,e.emptyArray,e.emptyArray,Ln);return ci.objectFlags|=Qr|128|131072,Dr&&(ci.objectFlags|=4096),li&&(ci.objectFlags|=512),t&&(ci.pattern=r),ci}}function Dy(r){var i=OE(Ss(r,Hd));return!!(i.flags&126615553||i.flags&3145728&&e.every(i.types,Dy))}function k5(r){Lb(r)}function A5(r,i){return xm(r),by(r)||Oe}function N5(r){Lb(r.openingElement),dm(r.closingElement.tagName)?Fb(r.closingElement):yn(r.closingElement.tagName),f0(r)}function P5(r,i){return xm(r),by(r)||Oe}function I5(r){Lb(r.openingFragment);var i=e.getSourceFileOfNode(r);return e.getJSXTransformEnabled(ye)&&(ye.jsxFactory||i.pragmas.has(\"jsx\"))&&!ye.jsxFragmentFactory&&!i.pragmas.has(\"jsxfrag\")&&Xr(r,ye.jsxFactory?e.Diagnostics.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:e.Diagnostics.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments),f0(r),by(r)||Oe}function Ob(r){return e.stringContains(r,\"-\")}function dm(r){return r.kind===79&&e.isIntrinsicJsxName(r.escapedText)}function OC(r,i){return r.initializer?Dm(r.initializer,i):Dt}function w5(r,i){for(var t=r.attributes,o=Ye?e.createSymbolTable():void 0,s=e.createSymbolTable(),u=pn,h=!1,z,me=!1,Me=2048,$e=_0(Og(r)),tr=0,dr=t.properties;tr0&&(u=Vp(u,ca(),t.symbol,Me,!1),s=e.createSymbolTable());var li=bu(Os(Dr.expression,i));ta(li)&&(h=!0),Dy(li)?(u=Vp(u,li,t.symbol,Me,!1),o&&FC(li,o,Dr)):(Xr(Dr.expression,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),z=z?Do([z,li]):li)}}h||s.size>0&&(u=Vp(u,ca(),t.symbol,Me,!1));var Ci=r.parent.kind===278?r.parent:void 0;if(Ci&&Ci.openingElement===r&&Ci.children.length>0){var $i=f0(Ci,i);if(!h&&$e&&$e!==\"\"){me&&Xr(t,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores($e));var Zi=$p(r.attributes),qt=Zi&&Md(Zi,$e),Nt=oo(4,$e);Nt.type=$i.length===1?$i[0]:qt&&rg(qt,Eg)?Wl($i):Zs(Pa($i)),Nt.valueDeclaration=e.factory.createPropertySignature(void 0,e.unescapeLeadingUnderscores($e),void 0,void 0),e.setParent(Nt.valueDeclaration,t),Nt.valueDeclaration.symbol=Nt;var Ra=e.createSymbolTable();Ra.set($e,Nt),u=Vp(u,rs(t.symbol,Ra,e.emptyArray,e.emptyArray,e.emptyArray),t.symbol,Me,!1)}}if(h)return Oe;if(z&&u!==pn)return Do([z,u]);return z||(u===pn?ca():u);function ca(){Me|=ur;var Sn=rs(t.symbol,s,e.emptyArray,e.emptyArray,e.emptyArray);return Sn.objectFlags|=Me|128|131072,Sn}}function f0(r,i){for(var t=[],o=0,s=r.children;o1&&t.declarations&&Xr(t.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(r))}}function F5(r){return r&&qs(r.exports,U.LibraryManagedAttributes,788968)}function M5(r){return MC(U.ElementAttributesPropertyNameContainer,r)}function _0(r){return MC(U.ElementChildrenAttributeNameContainer,r)}function LC(r,i){if(r.flags&4)return[En];if(r.flags&128){var t=RC(r,i);if(t){var o=S0(i,t);return[o]}else return Xr(i,e.Diagnostics.Property_0_does_not_exist_on_type_1,r.value,\"JSX.\"+U.IntrinsicElements),e.emptyArray}var s=$s(r),u=ot(s,1);return u.length===0&&(u=ot(s,0)),u.length===0&&s.flags&1048576&&(u=zv(e.map(s.types,function(h){return LC(h,i)}))),u}function RC(r,i){var t=Zp(U.IntrinsicElements,i);if(!nn(t)){var o=r.value,s=bi(t,e.escapeLeadingUnderscores(o));if(s)return Jt(s);var u=cs(t,Li);return u||void 0}return Oe}function L5(r,i,t){if(r===1){var o=jC(t);o&&hl(i,o,dt,t.tagName,e.Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element,h)}else if(r===0){var s=JC(t);s&&hl(i,s,dt,t.tagName,e.Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element,h)}else{var o=jC(t),s=JC(t);if(!o||!s)return;var u=Pa([o,s]);hl(i,u,dt,t.tagName,e.Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element,h)}function h(){var z=e.getTextOfNode(t.tagName);return e.chainDiagnosticMessages(void 0,e.Diagnostics._0_cannot_be_used_as_a_JSX_component,z)}}function BC(r){e.Debug.assert(dm(r.tagName));var i=va(r);if(!i.resolvedJsxElementAttributesType){var t=Fb(r);return i.jsxFlags&1?i.resolvedJsxElementAttributesType=Jt(t)||Pe:i.jsxFlags&2?i.resolvedJsxElementAttributesType=cs(Zp(U.IntrinsicElements,r),Li)||Pe:i.resolvedJsxElementAttributesType=Pe}return i.resolvedJsxElementAttributesType}function JC(r){var i=Zp(U.ElementClass,r);if(!nn(i))return i}function by(r){return Zp(U.Element,r)}function jC(r){var i=by(r);if(i)return Pa([i,Wi])}function R5(r){var i=Zp(U.IntrinsicElements,r);return i?uo(i):e.emptyArray}function B5(r){(ye.jsx||0)===0&&Xr(r,e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided),by(r)===void 0&&n&&Xr(r,e.Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist)}function Lb(r){var i=e.isJsxOpeningLikeElement(r);if(i&&rL(r),B5(r),!Mb(r)){var t=rn&&ye.jsx===2?e.Diagnostics.Cannot_find_name_0:void 0,o=po(r),s=i?r.tagName:r,u=void 0;if(e.isJsxOpeningFragment(r)&&o===\"null\"||(u=es(s,o,111551,t,o,!0)),u&&(u.isReferenced=67108863,u.flags&2097152&&!vu(u)&&As(u)),e.isJsxOpeningFragment(r)){var h=e.getSourceFileOfNode(r),z=Gn(h);z&&es(s,z,111551,t,z,!0)}}if(i){var me=r,Me=Mg(me);x0(Me,r),L5(lk(me),yo(Me),me)}}function Rb(r,i,t){if(r.flags&524288){if(h_(r,i)||Xo(r,i)||pg(i)&&ss(r,Li)||t&&Ob(i))return!0}else if(r.flags&3145728&&Sy(r))for(var o=0,s=r.types;o=1&&ao(t,$u(me,0))}return!1}var s=e.isAssignmentTarget(i)?\"set\":\"get\";if(!!o(s)){var u=e.tryGetPropertyAccessOrIdentifierToString(i.expression);return u===void 0?u=s:u+=\".\"+s,u}}function t7(r,i){var t=i.types.filter(function(o){return!!(o.flags&128)});return e.getSpellingSuggestion(r.value,t,function(o){return o.value})}function Ty(r,i,t){return e.getSpellingSuggestion(r,i,o);function o(s){var u=e.symbolName(s);if(!e.startsWith(u,'\"')){if(s.flags&t)return u;if(s.flags&2097152){var h=d_(s);if(h&&h.flags&t)return u}}}}function xy(r,i,t){var o=r&&r.flags&106500&&r.valueDeclaration;if(!!o){var s=e.hasEffectiveModifier(o,8),u=r.valueDeclaration&&e.isNamedDeclaration(r.valueDeclaration)&&e.isPrivateIdentifier(r.valueDeclaration.name);if(!(!s&&!u)&&!(i&&e.isWriteOnlyAccess(i)&&!(r.flags&65536))){if(t){var h=e.findAncestor(i,e.isFunctionLikeDeclaration);if(h&&h.symbol===r)return}(e.getCheckFlags(r)&1?Aa(r).target:r).isReferenced=67108863}}}function rk(r,i){return r.kind===108||!!i&&e.isEntityNameExpression(r)&&i===Dl(e.getFirstIdentifier(r))}function a7(r,i){switch(r.kind){case 206:return Gb(r,r.expression.kind===106,i,$c(yn(r.expression)));case 161:return Gb(r,!1,i,$c(yn(r.left)));case 200:return Gb(r,!1,i,Va(r))}}function ik(r,i,t){return Hb(r,r.kind===206&&r.expression.kind===106,!1,i,t)}function Gb(r,i,t,o){if(ta(o))return!0;var s=bi(o,t);return!!s&&Hb(r,i,!1,o,s)}function Hb(r,i,t,o,s){if(ta(o))return!0;if(s.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(s.valueDeclaration)){var u=e.getContainingClass(s.valueDeclaration);return!e.isOptionalChain(r)&&!!e.findAncestor(r,function(h){return h===u})}return UC(r,i,t,o,s)}function n7(r){var i=r.initializer;if(i.kind===255){var t=i.declarations[0];if(t&&!e.isBindingPattern(t.name))return Et(t)}else if(i.kind===79)return Dl(i)}function o7(r){return Hn(r).length===1&&!!ss(r,nt)}function s7(r){var i=e.skipParentheses(r);if(i.kind===79){var t=Dl(i);if(t.flags&3)for(var o=r,s=r.parent;s;){if(s.kind===243&&o===s.statement&&n7(s)===t&&o7(Gs(s.expression)))return!0;o=s,s=s.parent}}return!1}function c7(r,i){return r.flags&32?u7(r,i):tk(r,gm(r.expression),i)}function u7(r,i){var t=yn(r.expression),o=cv(t,r.expression);return zh(tk(r,bl(o,r.expression),i),r,o!==t)}function tk(r,i,t){var o=e.getAssignmentTargetKind(r)!==0||GC(r)?$c(i):i,s=r.argumentExpression,u=yn(s);if(nn(o)||o===Bt)return o;if(uS(o)&&!e.isStringLiteralLike(s))return Xr(s,e.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal),Pe;var h=s7(s)?nt:u,z=e.isAssignmentTarget(r)?4|(Ad(o)&&!e.isThisTypeParameter(o)?2:0):32,me=ep(o,h,z,r)||Pe;return o6(XC(r,va(r).resolvedSymbol,me,s,t),r)}function ak(r){return e.isCallOrNewExpression(r)||e.isTaggedTemplateExpression(r)||e.isJsxOpeningLikeElement(r)}function Fg(r){return ak(r)&&e.forEach(r.typeArguments,io),r.kind===210?yn(r.template):e.isJsxOpeningLikeElement(r)?yn(r.attributes):r.kind!==165&&e.forEach(r.arguments,function(i){yn(i)}),En}function Gl(r){return Fg(r),Wn}function l7(r,i,t){var o,s,u=0,h,z=-1,me;e.Debug.assert(!i.length);for(var Me=0,$e=r;Me<$e.length;Me++){var tr=$e[Me],dr=tr.declaration&&Et(tr.declaration),Dr=tr.declaration&&tr.declaration.parent;!s||dr===s?o&&Dr===o?h=h+1:(o=Dr,h=u):(h=u=i.length,o=Dr),s=dr,I(tr)?(z++,me=z,u++):me=h,i.splice(me,0,t?w1(tr,t):tr)}}function y0(r){return!!r&&(r.kind===225||r.kind===232&&r.isSpread)}function h0(r){return e.findIndex(r,y0)}function nk(r){return!!(r.flags&16384)}function f7(r){return!!(r.flags&49155)}function D0(r,i,t,o){o===void 0&&(o=!1);var s,u=!1,h=Wc(t),z=Hl(t);if(r.kind===210)if(s=i.length,r.template.kind===223){var me=e.last(r.template.templateSpans);u=e.nodeIsMissing(me.literal)||!!me.literal.isUnterminated}else{var Me=r.template;e.Debug.assert(Me.kind===14),u=!!Me.isUnterminated}else if(r.kind===165)s=_k(r,t);else if(e.isJsxOpeningLikeElement(r)){if(u=r.attributes.end===r.end,u)return!0;s=z===0?i.length:1,h=i.length===0?h:1,z=Math.min(z,1)}else if(r.arguments){s=o?i.length+1:i.length,u=r.arguments.end===r.end;var $e=h0(i);if($e>=0)return $e>=Hl(t)&&(Xl(t)||$eh)return!1;if(u||s>=z)return!0;for(var tr=s;tr=o&&i.length<=t}function ig(r){return gv(r,0,!1)}function ok(r){return gv(r,0,!1)||gv(r,1,!1)}function gv(r,i,t){if(r.flags&524288){var o=Ru(r);if(t||o.properties.length===0&&o.indexInfos.length===0){if(i===0&&o.callSignatures.length===1&&o.constructSignatures.length===0)return o.callSignatures[0];if(i===1&&o.constructSignatures.length===1&&o.callSignatures.length===0)return o.constructSignatures[0]}}}function sk(r,i,t,o){var s=uv(r.typeParameters,r,0,o),u=vv(i),h=t&&(u&&u.flags&262144?t.nonFixingMapper:t.mapper),z=h?Tg(i,h):i;return eb(z,r,function(me,Me){df(s.inferences,me,Me)}),t||rb(i,r,function(me,Me){df(s.inferences,me,Me,128)}),Xm(r,_b(s),e.isInJSFile(i.declaration))}function _7(r,i,t,o){var s=l0(i,r),u=Rg(r.attributes,s,o,t);return df(o.inferences,u,s),_b(o)}function ck(r){if(!r)return Fi;var i=yn(r);return e.isOptionalChainRoot(r.parent)?C_(i):e.isOptionalChain(r.parent)?YD(i):i}function Qb(r,i,t,o,s){if(e.isJsxOpeningLikeElement(r))return _7(r,i,o,s);if(r.kind!==165){var u=ou(r,e.every(i.typeParameters,function(Sn){return!!D_(Sn)})?8:0);if(u){var h=yo(i);if(Id(h)){var z=wg(r),me=ab(Jw(z,1)),Me=un(u,me),$e=ig(Me),tr=$e&&$e.typeParameters?im(eD($e,$e.typeParameters)):Me;df(s.inferences,tr,h,128);var dr=uv(i.typeParameters,i,s.flags),Dr=un(u,z&&z.returnMapper);df(dr.inferences,Dr,h),s.returnMapper=e.some(dr.inferences,tg)?ab(Uw(dr)):void 0}}}var Qr=yv(i),li=Qr?Math.min(Wc(i)-1,t.length):t.length;if(Qr&&Qr.flags&262144){var Ti=e.find(s.inferences,function(Sn){return Sn.typeParameter===Qr});Ti&&(Ti.impliedArity=e.findIndex(t,y0,li)<0?t.length-li:void 0)}var Ci=T_(i);if(Ci&&Id(Ci)){var $i=fk(r);df(s.inferences,ck($i),Ci)}for(var Zi=0;Zi=t-1){var h=r[t-1];if(y0(h))return uk(h.kind===232?h.type:Rg(h.expression,o,s,u))}for(var z=[],me=[],Me=[],$e=i;$e$i&&($i=wn)}}if(!Ci)return!0;for(var Tn=1/0,Eo=0,lt=dr;Eo0||e.isJsxOpeningElement(r)&&r.parent.children.length>0?[r.attributes]:e.emptyArray;var o=r.arguments||e.emptyArray,s=h0(o);if(s>=0){for(var u=o.slice(0,s),h=function(me){var Me=o[me],$e=Me.kind===225&&(Ao?yn(Me.expression):Os(Me.expression));$e&&Yn($e)?e.forEach(xo($e),function(tr,dr){var Dr,Qr=$e.target.elementFlags[dr],li=ed(Me,Qr&4?Zs(tr):tr,!!(Qr&12),(Dr=$e.target.labeledElementDeclarations)===null||Dr===void 0?void 0:Dr[dr]);u.push(li)}):u.push(Me)},z=s;z-1)return e.createDiagnosticForNode(t[s],e.Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);for(var u=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,z=Number.NEGATIVE_INFINITY,me=Number.POSITIVE_INFINITY,Me,$e=0,tr=i;$ez&&(z=Dr),t.lengtho?me=Math.min(me,tr):h1&&($i=ea(tr,Or,Dr,Zi)),$i||($i=ea(tr,dt,Dr,Zi)),$i)return $i;if(Me)if(li)if(li.length===1||li.length>3){var qt=li[li.length-1],Nt;li.length>3&&(Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.The_last_overload_gave_the_following_error),Nt=e.chainDiagnosticMessages(Nt,e.Diagnostics.No_overload_matches_this_call));var Ra=Ey(r,dr,qt,dt,0,!0,function(){return Nt});if(Ra)for(var ca=0,Sn=Ra;ca3&&e.addRelatedInfo(ja,e.createDiagnosticForNode(qt.declaration,e.Diagnostics.The_last_overload_is_declared_here)),Lt(qt,ja),rn.add(ja)}else e.Debug.fail(\"No error for last overload signature\")}else{for(var Fn=[],wn=0,Tn=Number.MAX_VALUE,Eo=0,lt=0,it=function(Kt){var $t=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,lt+1,tr.length,Ml(Kt))},Ua=Ey(r,dr,Kt,dt,0,!0,$t);Ua?(Ua.length<=Tn&&(Tn=Ua.length,Eo=lt),wn=Math.max(wn,Ua.length),Fn.push(Ua)):e.Debug.fail(\"No error for 3 or fewer overload signatures\"),lt++},Yt=0,Ia=li;Yt1?Fn[Eo]:e.flatten(Fn);e.Debug.assert(Ka.length>0,\"No errors reported for 3 or fewer overload signatures\");var cn=e.chainDiagnosticMessages(e.map(Ka,e.createDiagnosticMessageChainFromDiagnostic),e.Diagnostics.No_overload_matches_this_call),Un=Ve([],e.flatMap(Ka,function(Kt){return Kt.relatedInformation}),!0),oa=void 0;if(e.every(Ka,function(Kt){return Kt.start===Ka[0].start&&Kt.length===Ka[0].length&&Kt.file===Ka[0].file})){var Mn=Ka[0],Ln=Mn.file,ci=Mn.start,Fr=Mn.length;oa={file:Ln,start:ci,length:Fr,code:cn.code,category:cn.category,messageText:cn,relatedInformation:Un}}else oa=e.createDiagnosticForNodeFromMessageChain(r,cn,Un);Lt(li[0],oa),rn.add(oa)}else if(Ti)rn.add(dk(r,[Ti],dr));else if(Ci)$b(Ci,r.typeArguments,!0,u);else{var jt=e.filter(i,function(Kt){return Xb(Kt,$e)});jt.length===0?rn.add(m7(r,i,$e)):z?u&&rn.add(Cy(r,u)):rn.add(dk(r,jt,dr))}return v7(r,tr,dr,!!t,o);function Lt(Kt,$t){var Ua,Yr,Ni=li,Hi=Ti,_t=Ci,gt=((Yr=(Ua=Kt.declaration)===null||Ua===void 0?void 0:Ua.symbol)===null||Yr===void 0?void 0:Yr.declarations)||e.emptyArray,Vt=gt.length>1,Fa=Vt?e.find(gt,function(Ga){return e.isFunctionLikeDeclaration(Ga)&&e.nodeIsPresent(Ga.body)}):void 0;if(Fa){var on=yl(Fa),zn=!on.typeParameters;ea([on],dt,zn)&&e.addRelatedInfo($t,e.createDiagnosticForNode(Fa,e.Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible))}li=Ni,Ti=Hi,Ci=_t}function ea(Kt,$t,Ua,Yr){if(Yr===void 0&&(Yr=!1),li=void 0,Ti=void 0,Ci=void 0,Ua){var Ni=Kt[0];if(e.some($e)||!D0(r,dr,Ni,Yr))return;if(Ey(r,dr,Ni,$t,0,!1,void 0)){li=[Ni];return}return Ni}for(var Hi=0;Hi0),xm(r),o||i.length===1||i.some(function(u){return!!u.typeParameters})?D7(r,i,t,s):y7(i)}function y7(r){var i=e.mapDefined(r,function(dr){return dr.thisParameter}),t;i.length&&(t=gk(i,i.map(mv)));for(var o=e.minAndMax(r,h7),s=o.min,u=o.max,h=[],z=function(dr){var Dr=e.mapDefined(r,function(Qr){return H(Qr)?dri.length;)o.pop();for(;o.length=i)return s;h>o&&(o=h,t=s)}return t}function x7(r,i,t){if(r.expression.kind===106){var o=Sb(r.expression);if(ta(o)){for(var s=0,u=r.arguments;s=0&&Xr(r.arguments[o],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var s=gm(r.expression);if(s===Bt)return Co;if(s=$s(s),nn(s))return Gl(r);if(ta(s))return r.typeArguments&&Xr(r,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),Fg(r);var u=ot(s,1);if(u.length){if(!k7(r,u[0]))return Gl(r);if(vk(u,function(Me){return!!(Me.flags&4)}))return Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r);var h=s.symbol&&e.getClassLikeDeclarationOfSymbol(s.symbol);return h&&e.hasSyntacticModifier(h,128)?(Xr(r,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),Gl(r)):mm(r,u,i,t,0)}var z=ot(s,0);if(z.length){var me=mm(r,z,i,t,0);return n||(me.declaration&&!Sl(me.declaration)&&yo(me)!==Fi&&Xr(r,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),T_(me)===Fi&&Xr(r,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),me}return rS(r.expression,s,1),Gl(r)}function vk(r,i){return e.isArray(r)?e.some(r,function(t){return vk(t,i)}):r.compositeKind===1048576?e.some(r.compositeSignatures,i):i(r)}function eS(r,i){var t=Qc(i);if(!e.length(t))return!1;var o=t[0];if(o.flags&2097152){for(var s=o.types,u=Wv(s),h=0,z=0,me=o.types;z0;if(i.flags&1048576){for(var z=i.types,me=!1,Me=0,$e=z;Me<$e.length;Me++){var tr=$e[Me],dr=ot(tr,t);if(dr.length!==0){if(me=!0,o)break}else if(o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(tr)),o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Not_all_constituents_of_type_0_are_callable:e.Diagnostics.Not_all_constituents_of_type_0_are_constructable,Ot(i))),me)break}me||(o=e.chainDiagnosticMessages(void 0,s?e.Diagnostics.No_constituent_of_type_0_is_callable:e.Diagnostics.No_constituent_of_type_0_is_constructable,Ot(i))),o||(o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:e.Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,Ot(i)))}else o=e.chainDiagnosticMessages(o,s?e.Diagnostics.Type_0_has_no_call_signatures:e.Diagnostics.Type_0_has_no_construct_signatures,Ot(i));var Dr=s?e.Diagnostics.This_expression_is_not_callable:e.Diagnostics.This_expression_is_not_constructable;if(e.isCallExpression(r.parent)&&r.parent.arguments.length===0){var Qr=va(r).resolvedSymbol;Qr&&Qr.flags&32768&&(Dr=e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without)}return{messageChain:e.chainDiagnosticMessages(o,Dr),relatedMessage:h?e.Diagnostics.Did_you_forget_to_use_await:void 0}}function rS(r,i,t,o){var s=yk(r,i,t),u=s.messageChain,h=s.relatedMessage,z=e.createDiagnosticForNodeFromMessageChain(r,u);if(h&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,h)),e.isCallExpression(r.parent)){var me=pk(r.parent,!0),Me=me.start,$e=me.length;z.start=Me,z.length=$e}rn.add(z),hk(i,t,o?e.addRelatedInfo(z,o):z)}function hk(r,i,t){if(!!r.symbol){var o=Aa(r.symbol).originatingImport;if(o&&!e.isImportCall(o)){var s=ot(Jt(Aa(r.symbol).target),i);if(!s||!s.length)return;e.addRelatedInfo(t,e.createDiagnosticForNode(o,e.Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead))}}}function A7(r,i,t){var o=yn(r.tag),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(!u.length){if(e.isArrayLiteralExpression(r.parent)){var z=e.createDiagnosticForNode(r.tag,e.Diagnostics.It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked);return rn.add(z),Gl(r)}return rS(r.tag,s,0),Gl(r)}return mm(r,u,i,t,0)}function N7(r){switch(r.parent.kind){case 257:case 226:return e.Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;case 164:return e.Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;case 167:return e.Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;case 169:case 172:case 173:return e.Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;default:return e.Debug.fail()}}function P7(r,i,t){var o=yn(r.expression),s=$s(o);if(nn(s))return Gl(r);var u=ot(s,0),h=ot(s,1).length;if(b0(o,s,u.length,h))return Fg(r);if(w7(r,u)){var z=e.getTextOfNode(r.expression,!1);return Xr(r,e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0,z),Gl(r)}var me=N7(r);if(!u.length){var Me=yk(r.expression,s,0),$e=e.chainDiagnosticMessages(Me.messageChain,me),tr=e.createDiagnosticForNodeFromMessageChain(r.expression,$e);return Me.relatedMessage&&e.addRelatedInfo(tr,e.createDiagnosticForNode(r.expression,Me.relatedMessage)),rn.add(tr),hk(s,0,tr),Gl(r)}return mm(r,u,i,t,0,me)}function S0(r,i){var t=Og(r),o=t&&dc(t),s=o&&qs(o,U.Element,788968),u=s&&Ur.symbolToEntityName(s,788968,r),h=e.factory.createFunctionTypeNode(void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,\"props\",void 0,Ur.typeToTypeNode(i,r))],u?e.factory.createTypeReferenceNode(u,void 0):e.factory.createKeywordTypeNode(130)),z=oo(1,\"props\");return z.type=i,Fu(h,void 0,void 0,[z],s?go(s):Pe,void 0,1,0)}function I7(r,i,t){if(dm(r.tagName)){var o=BC(r),s=S0(r,o);return op(Rg(r.attributes,l0(s,r),void 0,0),o,r.tagName,r.attributes),e.length(r.typeArguments)&&(e.forEach(r.typeArguments,io),rn.add(e.createDiagnosticForNodeArray(e.getSourceFileOfNode(r),r.typeArguments,e.Diagnostics.Expected_0_type_arguments_but_got_1,0,e.length(r.typeArguments)))),s}var u=yn(r.tagName),h=$s(u);if(nn(h))return Gl(r);var z=LC(u,r);return b0(u,h,z.length,0)?Fg(r):z.length===0?(Xr(r.tagName,e.Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures,e.getTextOfNode(r.tagName)),Gl(r)):mm(r,z,i,t,0)}function w7(r,i){return i.length&&e.every(i,function(t){return t.minArgumentCount===0&&!H(t)&&t.parameters.length<_k(r,t)})}function O7(r,i,t){switch(r.kind){case 208:return x7(r,i,t);case 209:return C7(r,i,t);case 210:return A7(r,i,t);case 165:return P7(r,i,t);case 280:case 279:return I7(r,i,t)}throw e.Debug.assertNever(r,\"Branch in 'resolveSignature' should be unreachable.\")}function Mg(r,i,t){var o=va(r),s=o.resolvedSignature;if(s&&s!==to&&!i)return s;o.resolvedSignature=to;var u=O7(r,i,t||0);return u!==to&&(o.resolvedSignature=ko===Ao?u:s),u}function Sl(r){var i;if(!r||!e.isInJSFile(r))return!1;var t=e.isFunctionDeclaration(r)||e.isFunctionExpression(r)?r:e.isVariableDeclaration(r)&&r.initializer&&e.isFunctionExpression(r.initializer)?r.initializer:void 0;if(t){if(e.getJSDocClassTag(r))return!0;var o=Et(t);return!!(!((i=o==null?void 0:o.members)===null||i===void 0)&&i.size)}return!1}function iS(r,i){var t,o;if(i){var s=Aa(i);if(!s.inferredClassSymbol||!s.inferredClassSymbol.has(y(r))){var u=e.isTransientSymbol(r)?r:Yl(r);return u.exports=u.exports||e.createSymbolTable(),u.members=u.members||e.createSymbolTable(),u.flags|=i.flags&32,!((t=i.exports)===null||t===void 0)&&t.size&&gu(u.exports,i.exports),!((o=i.members)===null||o===void 0)&&o.size&&gu(u.members,i.members),(s.inferredClassSymbol||(s.inferredClassSymbol=new e.Map)).set(y(u),u),u}return s.inferredClassSymbol.get(y(r))}}function F7(r){var i,t=r&&T0(r,!0),o=(i=t==null?void 0:t.exports)===null||i===void 0?void 0:i.get(\"prototype\"),s=(o==null?void 0:o.valueDeclaration)&&M7(o.valueDeclaration);return s?Et(s):void 0}function T0(r,i){if(!!r.parent){var t,o;if(e.isVariableDeclaration(r.parent)&&r.parent.initializer===r){if(!e.isInJSFile(r)&&!(e.isVarConst(r.parent)&&e.isFunctionLikeDeclaration(r)))return;t=r.parent.name,o=r.parent}else if(e.isBinaryExpression(r.parent)){var s=r.parent,u=r.parent.operatorToken.kind;if(u===63&&(i||s.right===r))t=s.left,o=t;else if((u===56||u===60)&&(e.isVariableDeclaration(s.parent)&&s.parent.initializer===s?(t=s.parent.name,o=s.parent):e.isBinaryExpression(s.parent)&&s.parent.operatorToken.kind===63&&(i||s.parent.right===s)&&(t=s.parent.left,o=t),!t||!e.isBindableStaticNameExpression(t)||!e.isSameEntityName(t,s.left)))return}else i&&e.isFunctionDeclaration(r)&&(t=r.name,o=r);if(!(!o||!t||!i&&!e.getExpandoInitializer(r,e.isPrototypeAccess(t))))return Et(o)}}function M7(r){if(!r.parent)return!1;for(var i=r.parent;i&&i.kind===206;)i=i.parent;if(i&&e.isBinaryExpression(i)&&e.isPrototypeAccess(i.left)&&i.operatorToken.kind===63){var t=e.getInitializerOfBinaryExpression(i);return e.isObjectLiteralExpression(t)&&t}}function L7(r,i){var t;Wy(r,r.typeArguments);var o=Mg(r,void 0,i);if(o===to)return wt;if(x0(o,r),r.expression.kind===106)return Fi;if(r.kind===209){var s=o.declaration;if(s&&s.kind!==171&&s.kind!==175&&s.kind!==180&&!e.isJSDocConstructSignature(s)&&!Sl(s))return n&&Xr(r,e.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type),Oe}if(e.isInJSFile(r)&&xk(r))return Hm(r.arguments[0]);var u=yo(o);if(u.flags&12288&&Dk(r))return CD(e.walkUpParenthesizedExpressions(r.parent));if(r.kind===208&&!r.questionDotToken&&r.parent.kind===238&&u.flags&16384&&Yc(o)){if(!e.isDottedName(r.expression))Xr(r.expression,e.Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);else if(!i0(r)){var h=Xr(r.expression,e.Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);gy(r.expression,h)}}if(e.isInJSFile(r)){var z=T0(r,!1);if(!((t=z==null?void 0:z.exports)===null||t===void 0)&&t.size){var me=rs(z,z.exports,e.emptyArray,e.emptyArray,e.emptyArray);return me.objectFlags|=4096,Do([u,me])}}return u}function x0(r,i){if(r.declaration&&r.declaration.flags&268435456){var t=ky(i),o=e.tryGetPropertyAccessOrIdentifierToString(e.getInvokedExpression(i));vp(t,r.declaration,o,Ml(r))}}function ky(r){switch(r=e.skipParentheses(r),r.kind){case 208:case 165:case 209:return ky(r.expression);case 210:return ky(r.tag);case 280:case 279:return ky(r.tagName);case 207:return r.argumentExpression;case 206:return r.name;case 178:var i=r;return e.isQualifiedName(i.typeName)?i.typeName.right:i;default:return r}}function Dk(r){if(!e.isCallExpression(r))return!1;var i=r.expression;if(e.isPropertyAccessExpression(i)&&i.name.escapedText===\"for\"&&(i=i.expression),!e.isIdentifier(i)||i.escapedText!==\"Symbol\")return!1;var t=Ex(!1);return t?t===es(i,\"Symbol\",111551,void 0,void 0,!1):!1}function R7(r){if(CL(r),r.arguments.length===0)return Py(r,Oe);for(var i=r.arguments[0],t=Os(i),o=r.arguments.length>1?Os(r.arguments[1]):void 0,s=2;s=t-1)return i===t-1?s:Zs(Jc(s,nt));for(var u=[],h=[],z=[],me=i;me0&&(s=r.parameters.length-1+z)}}if(s===void 0){if(!t&&r.flags&32)return 0;s=r.minArgumentCount}if(o)return s;for(var me=s-1;me>=0;me--){var Me=$u(r,me);if(ec(Me,nk).flags&131072)break;s=me}r.resolvedMinArgumentCount=s}return r.resolvedMinArgumentCount}function Xl(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);return!Yn(i)||i.target.hasRestElement}return!1}function vv(r){if(H(r)){var i=Jt(r.parameters[r.parameters.length-1]);if(!Yn(i))return i;if(i.target.hasRestElement)return Zm(i,i.target.fixedLength)}}function yv(r){var i=vv(r);return i&&!Tu(i)&&!ta(i)&&(bu(i).flags&131072)===0?i:void 0}function aS(r){return nS(r,ui)}function nS(r,i){return r.parameters.length>0?$u(r,0):i}function K7(r,i,t){for(var o=r.parameters.length-(H(r)?1:0),s=0;s0&&(u=Pa(Me,2)):me=ui;var $e=X7(r,i),tr=$e.yieldTypes,dr=$e.nextTypes;h=e.some(tr)?Pa(tr,2):void 0,z=e.some(dr)?Do(dr):void 0}else{var Dr=Bk(r,i);if(!Dr)return t&2?Py(r,ui):ui;if(Dr.length===0)return t&2?Py(r,Fi):Fi;u=Pa(Dr,2)}if(u||h||z){if(h&&Kh(r,h,3),u&&Kh(r,u,1),z&&Kh(r,z,2),u&&Vl(u)||h&&Vl(h)||z&&Vl(z)){var Qr=Pb(r),li=Qr?Qr===yl(r)?s?void 0:u:c0(yo(Qr),r):void 0;s?(h=XD(h,li,0,o),u=XD(u,li,1,o),z=XD(z,li,2,o)):u=kw(u,li,o)}h&&(h=$c(h)),u&&(u=$c(u)),z&&(z=$c(z))}return s?Fk(h||ui,u||me,z||xC(2,r)||gr,o):o?Ny(u||me):u||me}function Fk(r,i,t,o){var s=o?St:pa,u=s.getGlobalGeneratorType(!1);if(r=s.resolveIterationType(r,void 0)||gr,i=s.resolveIterationType(i,void 0)||gr,t=s.resolveIterationType(t,void 0)||gr,u===kn){var h=s.getGlobalIterableIteratorType(!1),z=h!==kn?x6(h,s):void 0,me=z?z.returnType:Oe,Me=z?z.nextType:Tr;return ao(i,me)&&ao(Me,t)?h!==kn?$m(h,[r]):(s.getGlobalIterableIteratorType(!0),Ba):(s.getGlobalGeneratorType(!0),Ba)}return $m(u,[r,i,t])}function X7(r,i){var t=[],o=[],s=(e.getFunctionFlags(r)&2)!==0;return e.forEachYieldExpression(r.body,function(u){var h=u.expression?yn(u.expression,i):vi;e.pushIfUnique(t,Mk(u,h,Oe,s));var z;if(u.asteriskToken){var me=Jy(h,s?19:17,u.expression);z=me&&me.nextType}else z=ou(u);z&&e.pushIfUnique(o,z)}),{yieldTypes:t,nextTypes:o}}function Mk(r,i,t,o){var s=r.expression||r,u=r.asteriskToken?N_(o?19:17,i,t,s):i;return o?ag(u,s,r.asteriskToken?e.Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:e.Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):u}function oS(r,i,t,o){var s=0;if(o){for(var u=i;u=4)break;default:o!=null||(o=e.getSpanOfTokenAtPosition(t,r.pos)),rn.add(e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}}else{var t=e.getSourceFileOfNode(r);if(!Jd(t)){var o=e.getSpanOfTokenAtPosition(t,r.pos),s=e.createFileDiagnostic(t,o.start,o.length,e.Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);if(i&&i.kind!==171&&(e.getFunctionFlags(i)&2)===0){var u=e.createDiagnosticForNode(i,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(s,u)}rn.add(s)}}xb(r)&&Xr(r,e.Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer)}function oO(r){fe(function(){return nO(r)});var i=yn(r.expression),t=xv(i,!0,r,e.Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);return t===i&&!nn(t)&&!(i.flags&3)&&Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression)),t}function sO(r){var i=yn(r.operand);if(i===Bt)return Bt;switch(r.operand.kind){case 8:switch(r.operator){case 40:return Sg(If(-r.operand.text));case 39:return Sg(If(+r.operand.text))}break;case 9:if(r.operator===40)return Sg(ED({negative:!0,base10Value:e.parsePseudoBigInt(r.operand.text)}))}switch(r.operator){case 39:case 40:case 54:return bl(i,r.operand),A0(i,12288)&&Xr(r.operand,e.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol,e.tokenToString(r.operator)),r.operator===39?(fs(i,2112)&&Xr(r.operand,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1,e.tokenToString(r.operator),Ot(Kl(i))),nt):cS(i);case 53:Bg(r.operand);var t=cp(i)&12582912;return t===4194304?xt:t===8388608?Dt:Ii;case 45:case 46:var o=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return o&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}return Pe}function cO(r){var i=yn(r.operand);if(i===Bt)return Bt;var t=k0(r.operand,bl(i,r.operand),e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);return t&&hv(r.operand,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,e.Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access),cS(i)}function cS(r){return fs(r,2112)?Ns(r,3)||fs(r,296)?At:Mt:nt}function A0(r,i){if(fs(r,i))return!0;var t=Hd(r);return!!t&&fs(t,i)}function fs(r,i){if(r.flags&i)return!0;if(r.flags&3145728)for(var t=r.types,o=0,s=t;o1&&i.charCodeAt(t-1)>=48&&i.charCodeAt(t-1)<=57;)t--;for(var o=i.slice(0,t),s=1;;s++){var u=o+s;if(!pS(r,u))return u}}function Qk(r){var i=ig(r);if(i&&!i.typeParameters)return yo(i)}function AO(r){var i=yn(r.expression),t=cv(i,r.expression),o=Qk(i);return o&&zh(o,r,t!==i)}function Gs(r){var i=Yk(r);if(i)return i;if(r.flags&134217728&&Zc){var t=Zc[A(r)];if(t)return t}var o=xc,s=yn(r);if(xc!==o){var u=Zc||(Zc=[]);u[A(r)]=s,e.setNodeFlags(r,r.flags|134217728)}return s}function Yk(r){var i=e.skipParentheses(r,!0);if(e.isJSDocTypeAssertion(i)){var t=e.getJSDocTypeAssertionType(i);if(!e.isConstTypeReference(t))return Va(t)}if(i=e.skipParentheses(r),e.isCallExpression(i)&&i.expression.kind!==106&&!e.isRequireCall(i,!0)&&!Dk(i)){var t=e.isCallChain(i)?AO(i):Qk(gm(i.expression));if(t)return t}else{if(e.isAssertionExpression(i)&&!e.isConstTypeReference(i.type))return Va(i.type);if(r.kind===8||r.kind===10||r.kind===110||r.kind===95)return yn(r)}}function Oy(r){var i=va(r);if(i.contextFreeType)return i.contextFreeType;var t=r.contextualType;r.contextualType=Oe;try{var o=i.contextFreeType=yn(r,4);return o}finally{r.contextualType=t}}function yn(r,i,t){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkExpression\",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var o=Ie;Ie=r,Ee=0;var s=IO(r,i,t),u=Hk(r,s,i);return uS(u)&&NO(r,u),Ie=o,e.tracing===null||e.tracing===void 0||e.tracing.pop(),u}function NO(r,i){var t=r.parent.kind===206&&r.parent.expression===r||r.parent.kind===207&&r.parent.expression===r||(r.kind===79||r.kind===161)&&W0(r)||r.parent.kind===181&&r.parent.exprName===r||r.parent.kind===275;if(t||Xr(r,e.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query),ye.isolatedModules){e.Debug.assert(!!(i.symbol.flags&128));var o=i.symbol.valueDeclaration;o.flags&16777216&&Xr(r,e.Diagnostics.Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided)}}function PO(r,i){if(e.hasJSDocNodes(r)&&e.isJSDocTypeAssertion(r)){var t=e.getJSDocTypeAssertionType(r);return Ck(t,t,r.expression,i)}return yn(r.expression,i)}function IO(r,i,t){var o=r.kind;if(g)switch(o){case 226:case 213:case 214:g.throwIfCancellationRequested()}switch(o){case 79:return R8(r,i);case 80:return K5(r);case 108:return yy(r);case 106:return Sb(r);case 104:return ct;case 14:case 10:return Sg(Bu(r.text));case 8:return KS(r),Sg(If(+r.text));case 9:return SL(r),Sg(ED({negative:!1,base10Value:e.parsePseudoBigInt(r.text)}));case 110:return Dt;case 95:return xt;case 223:return DO(r);case 13:return Wa;case 204:return PC(r,i,t);case 205:return C5(r,i);case 206:return VC(r,i);case 161:return KC(r,i);case 207:return c7(r,i);case 208:if(r.expression.kind===100)return R7(r);case 209:return L7(r,i);case 210:return B7(r);case 212:return PO(r,i);case 226:return uM(r);case 213:case 214:return Jk(r,i);case 216:return tO(r);case 211:case 229:return J7(r);case 230:return U7(r);case 228:return kk(r);case 231:return z7(r);case 215:return rO(r);case 217:return aO(r);case 218:return oO(r);case 219:return sO(r);case 220:return cO(r);case 221:return Ir(r,i);case 222:return hO(r,i);case 225:return b5(r,i);case 227:return vi;case 224:return yO(r);case 232:return S5(r);case 288:return J5(r,i);case 278:return P5(r,i);case 279:return A5(r,i);case 282:return I5(r);case 286:return O5(r,i);case 280:e.Debug.fail(\"Shouldn't ever directly check a JsxOpeningElement\")}return Pe}function $k(r){sA(r),r.expression&&Hs(r.expression,e.Diagnostics.Type_expected),io(r.constraint),io(r.default);var i=Js(Et(r));uc(i),X1(i)||Xr(r.default,e.Diagnostics.Type_parameter_0_has_a_circular_default,Ot(i));var t=Tc(i),o=D_(i);t&&o&&zc(o,Rc(un(t,Yd(i,o)),o),r.default,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1),xm(r),fe(function(){return Tm(r.name,e.Diagnostics.Type_parameter_name_cannot_be_0)})}function wO(r){if(e.isInterfaceDeclaration(r.parent)||e.isClassLike(r.parent)||e.isTypeAliasDeclaration(r.parent)){var i=Js(Et(r)),t=WD(i);if(t){var o=Et(r.parent);if(e.isTypeAliasDeclaration(r.parent)&&!(e.getObjectFlags(go(o))&48))Xr(r,e.Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);else if(t===32768||t===65536){var s=ly(o,i,t===65536?Da:Rn),u=ly(o,i,t===65536?Rn:Da),h=i;_e=i,zc(s,u,r,e.Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation),_e=h}}}}function Zk(r){Ff(r),L0(r);var i=e.getContainingFunction(r);e.hasSyntacticModifier(r,16476)&&(i.kind===171&&e.nodeIsPresent(i.body)||Xr(r,e.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation),i.kind===171&&e.isIdentifier(r.name)&&r.name.escapedText===\"constructor\"&&Xr(r.name,e.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name)),r.questionToken&&e.isBindingPattern(r.name)&&i.body&&Xr(r,e.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),r.name&&e.isIdentifier(r.name)&&(r.name.escapedText===\"this\"||r.name.escapedText===\"new\")&&(i.parameters.indexOf(r)!==0&&Xr(r,e.Diagnostics.A_0_parameter_must_be_the_first_parameter,r.name.escapedText),(i.kind===171||i.kind===175||i.kind===180)&&Xr(r,e.Diagnostics.A_constructor_cannot_have_a_this_parameter),i.kind===214&&Xr(r,e.Diagnostics.An_arrow_function_cannot_have_a_this_parameter),(i.kind===172||i.kind===173)&&Xr(r,e.Diagnostics.get_and_set_accessors_cannot_declare_this_parameters)),r.dotDotDotToken&&!e.isBindingPattern(r.name)&&!ao(bu(Jt(r.symbol)),Go)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_of_an_array_type)}function OO(r){var i=FO(r);if(!i){Xr(r,e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return}var t=yl(i),o=Yc(t);if(!!o){io(r.type);var s=r.parameterName;if(o.kind===0||o.kind===2)Ch(s);else if(o.parameterIndex>=0){if(H(t)&&o.parameterIndex===t.parameters.length-1)Xr(s,e.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);else if(o.type){var u=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type)};zc(o.type,Jt(t.parameters[o.parameterIndex]),r.type,void 0,u)}}else if(s){for(var h=!1,z=0,me=i.parameters;z0&&i.declarations[0]!==r)return}var t=tx(Et(r));if(t!=null&&t.declarations){for(var o=new e.Map,s=function(me){me.parameters.length===1&&me.parameters[0].type&&Od(Va(me.parameters[0].type),function(Me){var $e=o.get(fu(Me));$e?$e.declarations.push(me):o.set(fu(Me),{type:Me,declarations:[me]})})},u=0,h=t.declarations;u1)for(var Me=0,$e=me.declarations;Me<$e.length;Me++){var tr=$e[Me];Xr(tr,e.Diagnostics.Duplicate_index_signature_for_type_0,Ot(me.type))}})}}function i6(r){!Ff(r)&&!vL(r)&&Q0(r.name),L0(r),gS(r),e.hasSyntacticModifier(r,128)&&r.kind===167&&r.initializer&&Xr(r,e.Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract,e.declarationNameToString(r.name))}function RO(r){return e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),i6(r)}function BO(r){dA(r)||Q0(r.name),f6(r),e.hasSyntacticModifier(r,128)&&r.kind===169&&r.body&&Xr(r,e.Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,e.declarationNameToString(r.name)),e.isPrivateIdentifier(r.name)&&!e.getContainingClass(r)&&Xr(r,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),gS(r)}function gS(r){if(e.isPrivateIdentifier(r.name)&&Ae<99){for(var i=e.getEnclosingBlockScopeContainer(r);i;i=e.getEnclosingBlockScopeContainer(i))va(i).flags|=67108864;if(e.isClassExpression(r.parent)){var t=hb(r.parent);t&&(va(r.name).flags|=524288,va(t).flags|=65536)}}}function JO(r){Ff(r),e.forEachChild(r,io)}function jO(r){Dv(r),gL(r)||mL(r),io(r.body);var i=Et(r),t=e.getDeclarationOfKind(i,r.kind);if(r===t&&O0(i),e.nodeIsMissing(r.body))return;fe(s);return;function o(u){return e.isPrivateIdentifierClassElementDeclaration(u)?!0:u.kind===167&&!e.isStatic(u)&&!!u.initializer}function s(){var u=r.parent;if(e.getClassExtendsHeritageElement(u)){Db(r.parent,u);var h=yC(u),z=vC(r.body);if(z){h&&Xr(z,e.Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null);var me=(e.getEmitScriptTarget(ye)!==99||!ir)&&(e.some(r.parent.members,o)||e.some(r.parameters,function(Dr){return e.hasSyntacticModifier(Dr,16476)}));if(me)if(!UO(z,r.body))Xr(z,e.Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers);else{for(var Me=void 0,$e=0,tr=r.body.statements;$e1){var t=Aa(i);if(!t.typeParametersChecked){t.typeParametersChecked=!0;var o=Js(i),s=e.getDeclarationsOfKind(i,163);if(!F6(s,[o],function(Me){return[Me]}))for(var u=tn(i),h=0,z=s;h0}function yS(r){var i;if(r.flags&16777216){var t=oD(!1);return!!t&&r.aliasSymbol===t&&((i=r.aliasTypeArguments)===null||i===void 0?void 0:i.length)===1}return!1}function Ev(r){return r.flags&1048576?Ss(r,Ev):yS(r)?r.aliasTypeArguments[0]:r}function sF(r){if(ta(r)||yS(r))return r;if(Ad(r)){var i=uc(r);if(!i||i.flags&3||Of(i)||s6(i)){var t=oD(!0);if(t)return am(t,[Ev(r)])}}return e.Debug.assert(Tv(r)===void 0,\"type provided should not be a non-generic 'promise'-like.\"),r}function ag(r,i,t,o){var s=k_(r,i,t,o);return s&&sF(s)}function k_(r,i,t,o){if(ta(r)||yS(r))return r;var s=r;if(s.awaitedTypeOfType)return s.awaitedTypeOfType;if(r.flags&1048576){var u=i?function(me){return k_(me,i,t,o)}:k_;return s.awaitedTypeOfType=Ss(r,u)}var h=Tv(r);if(h){if(r.id===h.id||qa.lastIndexOf(h.id)>=0){i&&Xr(i,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);return}qa.push(r.id);var z=k_(h,i,t,o);return qa.pop(),z?s.awaitedTypeOfType=z:void 0}if(s6(r)){i&&(e.Debug.assertIsDefined(t),Xr(i,t,o));return}return s.awaitedTypeOfType=r}function cF(r,i){var t=Va(i);if(Ae>=2){if(nn(t))return;var o=ay(!0);if(o!==kn&&!Xf(t,o)){Xr(i,e.Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0,Ot(k_(t)||Fi));return}}else{if(lF(i),nn(t))return;var s=e.getEntityNameFromTypeNode(i);if(s===void 0){Xr(i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,Ot(t));return}var u=Ds(s,111551,!0),h=u?Jt(u):Pe;if(nn(h)){s.kind===79&&s.escapedText===\"Promise\"&&bd(t)===ay(!1)?Xr(i,e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option):Xr(i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(s));return}var z=E3(!0);if(z===Ba){Xr(i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(s));return}if(!zc(h,z,i,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value))return;var me=s&&e.getFirstIdentifier(s),Me=qs(r.locals,me.escapedText,111551);if(Me){Xr(Me.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(me),e.entityNameToString(s));return}}xv(t,!1,r,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}function uF(r){var i=Mg(r);x0(i,r);var t=yo(i);if(!(t.flags&1)){var o,s;switch(r.parent.kind){case 257:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var u=Et(r.parent),h=Jt(u);s=Pa([h,Fi]);break;case 167:case 164:o=e.Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any,s=Fi;break;case 169:case 172:case 173:o=e.Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;var z=Bd(r.parent),me=Px(z);s=Pa([me,Fi]);break;default:return e.Debug.fail()}zc(t,s,r,o)}}function lF(r){c6(r&&e.getEntityNameFromTypeNode(r),!1)}function c6(r,i){if(!!r){var t=e.getFirstIdentifier(r),o=(r.kind===79?788968:1920)|2097152,s=es(t,t.escapedText,o,void 0,void 0,!0);if(s&&s.flags&2097152){if(gc(s)&&!Av(Ps(s))&&!vu(s))As(s);else if(i&&ye.isolatedModules&&e.getEmitModuleKind(ye)>=e.ModuleKind.ES2015&&!gc(s)&&!e.some(s.declarations,e.isTypeOnlyImportOrExportDeclaration)){var u=Xr(r,e.Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled),h=e.find(s.declarations||e.emptyArray,yf);h&&e.addRelatedInfo(u,e.createDiagnosticForNode(h,e.Diagnostics._0_was_imported_here,e.idText(t)))}}}}function bm(r){var i=hS(r);i&&e.isEntityName(i)&&c6(i,!0)}function hS(r){if(r)switch(r.kind){case 188:case 187:return u6(r.types);case 189:return u6([r.trueType,r.falseType]);case 191:case 197:return hS(r.type);case 178:return r.typeName}}function u6(r){for(var i,t=0,o=r;t0),t.length>1&&Xr(t[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var o=l6(r.class.expression),s=e.getClassExtendsHeritageElement(i);if(s){var u=l6(s.expression);u&&o.escapedText!==u.escapedText&&Xr(o,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(r.tagName),e.idText(o),e.idText(u))}}function DF(r){var i=e.getJSDocHost(r);i&&e.isPrivateIdentifierClassElementDeclaration(i)&&Xr(r,e.Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier)}function l6(r){switch(r.kind){case 79:return r;case 206:return r.name;default:return}}function f6(r){var i;Fy(r),Dv(r);var t=e.getFunctionFlags(r);if(r.name&&r.name.kind===162&&t_(r.name),Td(r)){var o=Et(r),s=r.localSymbol||o,u=(i=s.declarations)===null||i===void 0?void 0:i.find(function(Me){return Me.kind===r.kind&&!(Me.flags&262144)});r===u&&O0(s),o.parent&&O0(o)}var h=r.kind===168?void 0:r.body;if(io(h),sS(r,yg(r)),fe(me),e.isInJSFile(r)){var z=e.getJSDocTypeTag(r);z&&z.typeExpression&&!Nb(Va(z.typeExpression),r)&&Xr(z.typeExpression.type,e.Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature)}function me(){e.getEffectiveReturnTypeNode(r)||(e.nodeIsMissing(h)&&!I0(r)&&Xp(r,Oe),t&1&&e.nodeIsPresent(h)&&yo(yl(r)))}}function A_(r){fe(i);function i(){var t=e.getSourceFileOfNode(r),o=Fo.get(t.path);o||(o=[],Fo.set(t.path,o)),o.push(r)}}function _6(r,i){for(var t=0,o=r;t=2||!e.hasRestParameter(r)||r.flags&16777216||e.nodeIsMissing(r.body)||e.forEach(r.parameters,function(i){i.name&&!e.isBindingPattern(i.name)&&i.name.escapedText===or.escapedName&&Es(\"noEmit\",i,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)})}function Cv(r,i,t){if((i==null?void 0:i.escapedText)!==t||r.kind===167||r.kind===166||r.kind===169||r.kind===168||r.kind===172||r.kind===173||r.kind===296||r.flags&16777216||(e.isImportClause(r)||e.isImportEqualsDeclaration(r)||e.isImportSpecifier(r))&&e.isTypeOnlyImportOrExportDeclaration(r))return!1;var o=e.getRootDeclaration(r);return!(e.isParameter(o)&&e.nodeIsMissing(o.parent.body))}function CF(r){e.findAncestor(r,function(i){if(Ug(i)&4){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0}return!1})}function kF(r){e.findAncestor(r,function(i){if(Ug(i)&8){var t=r.kind!==79;return t?Xr(e.getNameOfDeclaration(r),e.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):Xr(r,e.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0}return!1})}function AF(r,i){if(!(er>=e.ModuleKind.ES2015&&!(er>=e.ModuleKind.Node16&&e.getSourceFileOfNode(r).impliedNodeFormat===e.ModuleKind.CommonJS))&&!(!i||!Cv(r,i,\"require\")&&!Cv(r,i,\"exports\"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&Es(\"noEmit\",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(i),e.declarationNameToString(i))}}function NF(r,i){if(!(!i||Ae>=4||!Cv(r,i,\"Promise\"))&&!(e.isModuleDeclaration(r)&&e.getModuleInstanceState(r)!==1)){var t=zi(r);t.kind===305&&e.isExternalOrCommonJsModule(t)&&t.flags&2048&&Es(\"noEmit\",i,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(i),e.declarationNameToString(i))}}function PF(r,i){Ae<=8&&(Cv(r,i,\"WeakMap\")||Cv(r,i,\"WeakSet\"))&&bn.push(r)}function IF(r){var i=e.getEnclosingBlockScopeContainer(r);Ug(i)&67108864&&(e.Debug.assert(e.isNamedDeclaration(r)&&e.isIdentifier(r.name)&&typeof r.name.escapedText==\"string\",\"The target of a WeakMap/WeakSet collision check should be an identifier\"),Es(\"noEmit\",r,e.Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel,r.name.escapedText))}function wF(r,i){i&&Ae>=2&&Ae<=8&&Cv(r,i,\"Reflect\")&&_a.push(r)}function OF(r){var i=!1;if(e.isClassExpression(r))for(var t=0,o=r.members;t1&&e.some(Dr.declarations,function($i){return $i!==r&&e.isVariableLike($i)&&!y6($i,r)})&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}else{var Ci=kv(sc(r));!nn(Qr)&&!nn(Ci)&&!wf(Qr,Ci)&&!(Dr.flags&67108864)&&v6(Dr.valueDeclaration,Qr,r,Ci),r.initializer&&op(Os(r.initializer),Ci,r,r.initializer,void 0),Dr.valueDeclaration&&!y6(r,Dr.valueDeclaration)&&Xr(r.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(r.name))}r.kind!==167&&r.kind!==166&&(bv(r),(r.kind===254||r.kind===203)&&FF(r),Sm(r,r.name))}}function v6(r,i,t,o){var s=e.getNameOfDeclaration(t),u=t.kind===167||t.kind===166?e.Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:e.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2,h=e.declarationNameToString(s),z=Xr(s,u,h,Ot(i),Ot(o));r&&e.addRelatedInfo(z,e.createDiagnosticForNode(r,e.Diagnostics._0_was_also_declared_here,h))}function y6(r,i){if(r.kind===164&&i.kind===254||r.kind===254&&i.kind===164)return!0;if(e.hasQuestionToken(r)!==e.hasQuestionToken(i))return!1;var t=504;return e.getSelectedEffectiveModifierFlags(r,t)===e.getSelectedEffectiveModifierFlags(i,t)}function SS(r){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkVariableDeclaration\",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath}),fL(r),L0(r),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function MF(r){return cL(r),L0(r)}function LF(r){!Ff(r)&&!VS(r.declarationList)&&_L(r),e.forEach(r.declarationList.declarations,io)}function RF(r){Mf(r),yn(r.expression)}function BF(r){Mf(r),Bg(r.expression),TS(r.expression,r.thenStatement),io(r.thenStatement),r.thenStatement.kind===236&&Xr(r.thenStatement,e.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement),io(r.elseStatement)}function TS(r,i){if(!Ye)return;for(t(r,i);e.isBinaryExpression(r)&&r.operatorToken.kind===56;)r=r.left,t(r,i);function t(o,s){var u=e.isBinaryExpression(o)&&(o.operatorToken.kind===56||o.operatorToken.kind===55)?o.right:o;if(!e.isModuleExportsAccessExpression(u)){var h=Bg(u),z=e.isPropertyAccessExpression(u)&&Vk(u.expression);if(!(ju(h)||z)){var me=ot(h,0),Me=!!Sv(h);if(!(me.length===0&&!Me)){var $e=e.isIdentifier(u)?u:e.isPropertyAccessExpression(u)?u.name:e.isBinaryExpression(u)&&e.isIdentifier(u.right)?u.right:void 0,tr=$e&&el($e);if(!(!tr&&!Me)){var dr=tr&&e.isBinaryExpression(o.parent)&&jF(o.parent,tr)||tr&&s&&JF(o,s,$e,tr);dr||(Me?zu(u,!0,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined,q_(h)):Xr(u,e.Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead))}}}}}}function JF(r,i,t,o){return!!e.forEachChild(i,function s(u){if(e.isIdentifier(u)){var h=el(u);if(h&&h===o){if(e.isIdentifier(r)||e.isIdentifier(t)&&e.isBinaryExpression(t.parent))return!0;for(var z=t.parent,me=u.parent;z&&me;){if(e.isIdentifier(z)&&e.isIdentifier(me)||z.kind===108&&me.kind===108)return el(z)===el(me);if(e.isPropertyAccessExpression(z)&&e.isPropertyAccessExpression(me)){if(el(z.name)!==el(me.name))return!1;me=me.expression,z=z.expression}else if(e.isCallExpression(z)&&e.isCallExpression(me))me=me.expression,z=z.expression;else return!1}}}return e.forEachChild(u,s)})}function jF(r,i){for(;e.isBinaryExpression(r)&&r.operatorToken.kind===55;){var t=e.forEachChild(r.right,function o(s){if(e.isIdentifier(s)){var u=el(s);if(u&&u===i)return!0}return e.forEachChild(s,o)});if(t)return!0;r=r.parent}return!1}function UF(r){Mf(r),io(r.statement),Bg(r.expression)}function zF(r){Mf(r),Bg(r.expression),io(r.statement)}function h6(r,i){return r.flags&16384&&Xr(i,e.Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness),r}function Bg(r,i){return h6(yn(r,i),r)}function WF(r){Mf(r)||r.initializer&&r.initializer.kind===255&&VS(r.initializer),r.initializer&&(r.initializer.kind===255?e.forEach(r.initializer.declarations,SS):yn(r.initializer)),r.condition&&Bg(r.condition),r.incrementor&&yn(r.incrementor),io(r.statement),r.locals&&A_(r)}function qF(r){pA(r);var i=e.getContainingFunctionOrClassStaticBlock(r);if(r.awaitModifier)if(i&&e.isClassStaticBlockDeclaration(i))Tt(r.awaitModifier,e.Diagnostics.For_await_loops_cannot_be_used_inside_a_class_static_block);else{var t=e.getFunctionFlags(i);(t&6)===2&&Ae<99&&fc(r,16384)}else ye.downlevelIteration&&Ae<2&&fc(r,256);if(r.initializer.kind===255)D6(r);else{var o=r.initializer,s=By(r);if(o.kind===204||o.kind===205)Rd(o,s||Pe);else{var u=yn(o);hv(o,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access),s&&op(s,u,o,r.expression)}}io(r.statement),r.locals&&A_(r)}function VF(r){pA(r);var i=jb(yn(r.expression));if(r.initializer.kind===255){var t=r.initializer.declarations[0];t&&e.isBindingPattern(t.name)&&Xr(t.name,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern),D6(r)}else{var o=r.initializer,s=yn(o);o.kind===204||o.kind===205?Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern):ao(lI(i),s)?hv(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access):Xr(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any)}(i===ui||!Ns(i,126091264))&&Xr(r.expression,e.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0,Ot(i)),io(r.statement),r.locals&&A_(r)}function D6(r){var i=r.initializer;if(i.declarations.length>=1){var t=i.declarations[0];SS(t)}}function By(r){var i=r.awaitModifier?15:13;return N_(i,gm(r.expression),Tr,r.expression)}function N_(r,i,t,o){return ta(i)?i:xS(r,i,t,o,!0)||Oe}function xS(r,i,t,o,s){var u=(r&2)!==0;if(i===ui){AS(o,i,u);return}var h=Ae>=2,z=!h&&ye.downlevelIteration,me=ye.noUncheckedIndexedAccess&&!!(r&128);if(h||z||u){var Me=Jy(i,r,h?o:void 0);if(s&&Me){var $e=r&8?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:r&32?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:r&64?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:r&16?e.Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:void 0;$e&&zc(t,Me.nextType,o,$e)}if(Me||h)return me?fv(Me&&Me.yieldType):Me&&Me.yieldType}var tr=i,dr=!1,Dr=!1;if(r&4){if(tr.flags&1048576){var Qr=i.types,li=e.filter(Qr,function(Ra){return!(Ra.flags&402653316)});li!==Qr&&(tr=Pa(li,2))}else tr.flags&402653316&&(tr=ui);if(Dr=tr!==i,Dr&&(Ae<1&&o&&(Xr(o,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),dr=!0),tr.flags&131072))return me?fv(Li):Li}if(!sp(tr)){if(o&&!dr){var Ti=!!(r&4)&&!Dr,Ci=Nt(Ti,z),$i=Ci[0],Zi=Ci[1];zu(o,Zi&&!!Sv(tr),$i,Ot(tr))}return Dr?me?fv(Li):Li:void 0}var qt=cs(tr,nt);if(Dr&&qt)return qt.flags&402653316&&!ye.noUncheckedIndexedAccess?Li:Pa(me?[qt,Li,Tr]:[qt,Li],2);return r&128?fv(qt):qt;function Nt(Ra,ca){var Sn;if(ca)return Ra?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:[e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0];var ja=b6(r,0,i,void 0);return ja?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!1]:KF((Sn=i.symbol)===null||Sn===void 0?void 0:Sn.escapedName)?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!0]:Ra?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type,!0]:[e.Diagnostics.Type_0_is_not_an_array_type,!0]}}function KF(r){switch(r){case\"Float32Array\":case\"Float64Array\":case\"Int16Array\":case\"Int32Array\":case\"Int8Array\":case\"NodeList\":case\"Uint16Array\":case\"Uint32Array\":case\"Uint8Array\":case\"Uint8ClampedArray\":return!0}return!1}function b6(r,i,t,o){if(!ta(t)){var s=Jy(t,r,o);return s&&s[j(i)]}}function a_(r,i,t){if(r===void 0&&(r=ui),i===void 0&&(i=ui),t===void 0&&(t=gr),r.flags&67359327&&i.flags&180227&&t.flags&180227){var o=Su([r,i,t]),s=Oo.get(o);return s||(s={yieldType:r,returnType:i,nextType:t},Oo.set(o,s)),s}return{yieldType:r,returnType:i,nextType:t}}function S6(r){for(var i,t,o,s=0,u=r;s1)for(var dr=0,Dr=o;dr=1&&r.escapedText===\"Object\"&&(ero)return!1;for(var $e=0;$e=o&&z.pos<=s){var me=e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(me.expression,me),e.setParent(me,z),me.flowNode=z.returnFlowNode;var Me=up(me,i,i_(i));if(!(ju(Me)&32768))return!0}}return!1}function j6(r,i,t){var o=e.isComputedPropertyName(r)?e.factory.createElementAccessExpression(e.factory.createThis(),r.expression):e.factory.createPropertyAccessExpression(e.factory.createThis(),r);e.setParent(o.expression,o),e.setParent(o,t),o.flowNode=t.returnFlowNode;var s=up(o,i,i_(i));return!(ju(s)&32768)}function bM(r){Ff(r)||Z9(r),jy(r.typeParameters),fe(function(){Tm(r.name,e.Diagnostics.Interface_name_cannot_be_0),bv(r);var i=Et(r);O6(i);var t=e.getDeclarationOfKind(i,258);if(r===t){var o=go(i),s=Rc(o);if(yM(o,r.name)){for(var u=0,h=Qc(o);u>tr;case 49:return $e>>>tr;case 47:return $e<1){var o=e.isEnumConst(r);e.forEach(i.declarations,function(u){e.isEnumDeclaration(u)&&e.isEnumConst(u)!==o&&Xr(e.getNameOfDeclaration(u),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)})}var s=!1;e.forEach(i.declarations,function(u){if(u.kind!==260)return!1;var h=u;if(!h.members.length)return!1;var z=h.members[0];z.initializer||(s?Xr(z.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):s=!0)})}}function kM(r){e.isPrivateIdentifier(r.name)&&Xr(r,e.Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier)}function AM(r){var i=r.declarations;if(i)for(var t=0,o=i;t1&&V(r,e.shouldPreserveConstEnums(ye))){var z=AM(h);z&&(e.getSourceFileOfNode(r)!==e.getSourceFileOfNode(z)?Xr(r.name,e.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):r.pos=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat===void 0&&!r.isTypeOnly&&!(r.flags&16777216)&&Tt(r,e.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead)}function FM(r){if(!Uy(r,e.isInJSFile(r)?e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:e.Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)){if(!Ff(r)&&e.hasSyntacticModifiers(r)&&Hs(r,e.Diagnostics.An_export_declaration_cannot_have_modifiers),r.moduleSpecifier&&r.exportClause&&e.isNamedExports(r.exportClause)&&e.length(r.exportClause.elements)&&Ae===0&&fc(r,4194304),MM(r),!r.moduleSpecifier||wS(r))if(r.exportClause&&!e.isNamespaceExport(r.exportClause)){e.forEach(r.exportClause.elements,UM);var i=r.parent.kind===262&&e.isAmbientModule(r.parent.parent),t=!i&&r.parent.kind===262&&!r.moduleSpecifier&&r.flags&16777216;r.parent.kind!==305&&!i&&!t&&Xr(r,e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace)}else{var o=ac(r,r.moduleSpecifier);o&&ll(o)?Xr(r.moduleSpecifier,e.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,tn(o)):r.exportClause&&j0(r.exportClause),er!==e.ModuleKind.System&&(er=e.ModuleKind.ES2015&&e.getSourceFileOfNode(r).impliedNodeFormat!==e.ModuleKind.CommonJS?Tt(r,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):er===e.ModuleKind.System&&Tt(r,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}}function WM(r){return e.forEachEntry(r.exports,function(i,t){return t!==\"export=\"})}function V6(r){var i=Et(r),t=Aa(i);if(!t.exportsChecked){var o=i.exports.get(\"export=\");if(o&&WM(i)){var s=ru(o)||o.valueDeclaration;s&&!Xu(s)&&!e.isInJSFile(s)&&Xr(s,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}var u=Pu(i);u&&u.forEach(function(h,z){var me=h.declarations,Me=h.flags;if(z!==\"__export\"&&!(Me&1920)){var $e=e.countWhere(me,e.and(O,e.not(e.isInterfaceDeclaration)));if(!(Me&524288&&$e<=2)&&$e>1&&!z0(me))for(var tr=0,dr=me;tr1&&r.every(function(i){return e.isInJSFile(i)&&e.isAccessExpression(i)&&(e.isExportsIdentifier(i.expression)||e.isModuleExportsAccessExpression(i.expression))})}function io(r){if(r){var i=Ie;Ie=r,Ee=0,qM(r),Ie=i}}function qM(r){e.isInJSFile(r)&&e.forEach(r.jsDoc,function(t){var o=t.tags;return e.forEach(o,io)});var i=r.kind;if(g)switch(i){case 261:case 257:case 258:case 256:g.throwIfCancellationRequested()}switch(i>=237&&i<=253&&r.flowNode&&!my(r.flowNode)&&Ic(ye.allowUnreachableCode===!1,r,e.Diagnostics.Unreachable_code_detected),i){case 163:return $k(r);case 164:return Zk(r);case 167:return i6(r);case 166:return RO(r);case 180:case 179:case 174:case 175:case 176:return Dv(r);case 169:case 168:return BO(r);case 170:return JO(r);case 171:return jO(r);case 172:case 173:return a6(r);case 178:return vS(r);case 177:return OO(r);case 181:return qO(r);case 182:return VO(r);case 183:return KO(r);case 184:return GO(r);case 187:case 188:return HO(r);case 191:case 185:case 186:return io(r.type);case 192:return $O(r);case 193:return ZO(r);case 189:return eF(r);case 190:return rF(r);case 198:return iF(r);case 200:return tF(r);case 197:return aF(r);case 328:return hF(r);case 329:return yF(r);case 345:case 338:case 339:return _F(r);case 344:return pF(r);case 343:return dF(r);case 340:return gF(r);case 347:return mF(r);case 317:vF(r);case 315:case 314:case 312:case 313:case 322:K6(r),e.forEachChild(r,io);return;case 318:VM(r);return;case 309:return io(r.type);case 333:case 335:case 334:return DF(r);case 194:return XO(r);case 195:return QO(r);case 256:return fF(r);case 235:case 262:return M0(r);case 237:return LF(r);case 238:return RF(r);case 239:return BF(r);case 240:return UF(r);case 241:return zF(r);case 242:return WF(r);case 243:return VF(r);case 244:return qF(r);case 245:case 246:return $F(r);case 247:return ZF(r);case 248:return eM(r);case 249:return rM(r);case 250:return iM(r);case 251:return tM(r);case 252:return aM(r);case 254:return SS(r);case 203:return MF(r);case 257:return fM(r);case 258:return bM(r);case 259:return SM(r);case 260:return EM(r);case 261:return PM(r);case 266:return wM(r);case 265:return OM(r);case 272:return FM(r);case 271:return zM(r);case 236:case 253:Mf(r);return;case 276:return zO(r)}}function K6(r){e.isInJSFile(r)||Tt(r,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function VM(r){K6(r),io(r.type);var i=r.parent;if(e.isParameter(i)&&e.isJSDocFunctionType(i.parent)){e.last(i.parent.parameters)!==i&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);return}e.isJSDocTypeExpression(i)||Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var t=r.parent.parent;if(!e.isJSDocParameterTag(t)){Xr(r,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);return}var o=e.getParameterSymbolFromJSDoc(t);if(!!o){var s=e.getHostSignatureFromJSDoc(t);(!s||e.last(s.parameters).symbol!==o)&&Xr(r,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list)}}function KM(r){var i=Va(r.type),t=r.parent,o=r.parent.parent;if(e.isJSDocTypeExpression(r.parent)&&e.isJSDocParameterTag(o)){var s=e.getHostSignatureFromJSDoc(o),u=e.isJSDocCallbackTag(o.parent.parent);if(s||u){var h=u?e.lastOrUndefined(o.parent.parent.typeExpression.parameters):e.lastOrUndefined(s.parameters),z=e.getParameterSymbolFromJSDoc(o);if(!h||z&&h.symbol===z&&e.isRestParameter(h))return Zs(i)}}return e.isParameter(t)&&e.isJSDocFunctionType(t.parent)?Zs(i):kc(i)}function xm(r){var i=e.getSourceFileOfNode(r),t=va(i);t.flags&1||(t.deferredNodes||(t.deferredNodes=new e.Set),t.deferredNodes.add(r))}function GM(r){var i=va(r);i.deferredNodes&&i.deferredNodes.forEach(HM)}function HM(r){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkDeferredNode\",{kind:r.kind,pos:r.pos,end:r.end,path:r.tracingPath});var i=Ie;switch(Ie=r,Ee=0,r.kind){case 208:case 209:case 210:case 165:case 280:Fg(r);break;case 213:case 214:case 169:case 168:Z7(r);break;case 172:case 173:a6(r);break;case 226:lM(r);break;case 163:wO(r);break;case 279:k5(r);break;case 278:N5(r);break}Ie=i,e.tracing===null||e.tracing===void 0||e.tracing.pop()}function XM(r){e.tracing===null||e.tracing===void 0||e.tracing.push(\"check\",\"checkSourceFile\",{path:r.path},!0),e.performance.mark(\"beforeCheck\"),QM(r),e.performance.mark(\"afterCheck\"),e.performance.measure(\"Check\",\"beforeCheck\",\"afterCheck\"),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function G6(r,i){if(i)return!1;switch(r){case 0:return!!ye.noUnusedLocals;case 1:return!!ye.noUnusedParameters;default:return e.Debug.assertNever(r)}}function H6(r){return Fo.get(r.path)||e.emptyArray}function QM(r){var i=va(r);if(!(i.flags&1)){if(e.skipTypeChecking(r,ye,l))return;DL(r),e.clear(Xt),e.clear(Za),e.clear(bn),e.clear(_a),e.forEach(r.statements,io),io(r.endOfFileToken),GM(r),e.isExternalOrCommonJsModule(r)&&A_(r),fe(function(){!r.isDeclarationFile&&(ye.noUnusedLocals||ye.noUnusedParameters)&&_6(H6(r),function(t,o,s){!e.containsParseError(t)&&G6(o,!!(t.flags&16777216))&&rn.add(s)})}),ye.importsNotUsedAsValues===2&&!r.isDeclarationFile&&e.isExternalModule(r)&&jM(r),e.isExternalOrCommonJsModule(r)&&V6(r),Xt.length&&(e.forEach(Xt,CF),e.clear(Xt)),Za.length&&(e.forEach(Za,kF),e.clear(Za)),bn.length&&(e.forEach(bn,IF),e.clear(bn)),_a.length&&(e.forEach(_a,OF),e.clear(_a)),i.flags|=1}}function X6(r,i){try{return g=i,YM(r)}finally{g=void 0}}function OS(){for(var r=0,i=D;r0)return e.concatenate(s,o);return o}return e.forEach(l.getSourceFiles(),FS),rn.getDiagnostics()}function $M(){return OS(),rn.getGlobalDiagnostics()}function ZM(r,i){if(r.flags&33554432)return[];var t=e.createSymbolTable(),o=!1;return s(),t.delete(\"this\"),Y_(t);function s(){for(;r;){switch(r.locals&&!Cu(r)&&h(r.locals,i),r.kind){case 305:if(!e.isExternalModule(r))break;case 261:z(Et(r).exports,i&2623475);break;case 260:h(Et(r).exports,i&8);break;case 226:var me=r.name;me&&u(r.symbol,i);case 257:case 258:o||h(Nf(Et(r)),i&788968);break;case 213:var Me=r.name;Me&&u(r.symbol,i);break}e.introducesArgumentsExoticObject(r)&&u(or,i),o=e.isStatic(r),r=r.parent}h(ii,i)}function u(me,Me){if(e.getCombinedLocalAndExportSymbolFlags(me)&Me){var $e=me.escapedName;t.has($e)||t.set($e,me)}}function h(me,Me){Me&&me.forEach(function($e){u($e,Me)})}function z(me,Me){Me&&me.forEach(function($e){!e.getDeclarationOfKind($e,275)&&!e.getDeclarationOfKind($e,274)&&u($e,Me)})}}function e9(r){return r.kind===79&&zy(r.parent)&&e.getNameOfDeclaration(r.parent)===r}function zy(r){switch(r.kind){case 163:case 257:case 258:case 259:case 260:case 345:case 338:case 339:return!0;case 267:return r.isTypeOnly;case 270:case 275:return r.parent.parent.isTypeOnly;default:return!1}}function Q6(r){for(;r.parent.kind===161;)r=r.parent;return r.parent.kind===178}function r9(r){for(;r.parent.kind===206;)r=r.parent;return r.parent.kind===228}function Y6(r,i){for(var t;r=e.getContainingClass(r),!(!r||(t=i(r))););return t}function i9(r){return!!e.findAncestor(r,function(i){return e.isConstructorDeclaration(i)&&e.nodeIsPresent(i.body)||e.isPropertyDeclaration(i)?!0:e.isClassLike(i)||e.isFunctionLikeDeclaration(i)?\"quit\":!1})}function MS(r,i){return!!Y6(r,function(t){return t===i})}function t9(r){for(;r.parent.kind===161;)r=r.parent;if(r.parent.kind===265)return r.parent.moduleReference===r?r.parent:void 0;if(r.parent.kind===271)return r.parent.expression===r?r.parent:void 0}function W0(r){return t9(r)!==void 0}function a9(r){var i=e.getAssignmentDeclarationKind(r.parent.parent);switch(i){case 1:case 3:return Et(r.parent);case 4:case 2:case 5:return Et(r.parent.parent)}}function n9(r){for(var i=r.parent;e.isQualifiedName(i);)r=i,i=i.parent;if(i&&i.kind===200&&i.qualifier===r)return i}function $6(r){if(e.isDeclarationName(r))return Et(r.parent);if(e.isInJSFile(r)&&r.parent.kind===206&&r.parent===r.parent.parent.left&&!e.isPrivateIdentifier(r)&&!e.isJSDocMemberName(r)){var i=a9(r);if(i)return i}if(r.parent.kind===271&&e.isEntityNameExpression(r)){var t=Ds(r,2998271,!0);if(t&&t!==xe)return t}else if(e.isEntityName(r)&&W0(r)){var o=e.getAncestor(r,265);return e.Debug.assert(o!==void 0),Nl(r,!0)}if(e.isEntityName(r)){var s=n9(r);if(s){Va(s);var u=va(r).resolvedSymbol;return u===xe?void 0:u}}for(;e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(r);)r=r.parent;if(r9(r)){var h=0;r.parent.kind===228?(h=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(r.parent)&&(h|=111551)):h=1920,h|=2097152;var z=e.isEntityNameExpression(r)?Ds(r,h):void 0;if(z)return z}if(r.parent.kind===340)return e.getParameterSymbolFromJSDoc(r.parent);if(r.parent.kind===163&&r.parent.parent.kind===344){e.Debug.assert(!e.isInJSFile(r));var me=e.getTypeParameterFromJsDoc(r.parent);return me&&me.symbol}if(e.isExpressionNode(r)){if(e.nodeIsMissing(r))return;var Me=e.findAncestor(r,e.or(e.isJSDocLinkLike,e.isJSDocNameReference,e.isJSDocMemberName)),h=Me?901119:111551;if(r.kind===79){if(e.isJSXTagName(r)&&dm(r)){var $e=Fb(r.parent);return $e===xe?void 0:$e}var tr=Ds(r,h,!1,!0,e.getHostSignatureFromJSDoc(r));if(!tr&&Me){var dr=e.findAncestor(r,e.or(e.isClassLike,e.isInterfaceDeclaration));if(dr)return q0(r,Et(dr))}return tr}else{if(e.isPrivateIdentifier(r))return m0(r);if(r.kind===206||r.kind===161){var Dr=va(r);return Dr.resolvedSymbol?Dr.resolvedSymbol:(r.kind===206?VC(r,0):KC(r,0),!Dr.resolvedSymbol&&Me&&e.isQualifiedName(r)?q0(r):Dr.resolvedSymbol)}else if(e.isJSDocMemberName(r))return q0(r)}}else if(Q6(r)){var h=r.parent.kind===178?788968:1920,$e=Ds(r,h,!1,!0);return $e&&$e!==xe?$e:yh(r)}if(r.parent.kind===177)return Ds(r,1)}function q0(r,i){if(e.isEntityName(r)){var t=901119,o=Ds(r,t,!1,!0,e.getHostSignatureFromJSDoc(r));if(!o&&e.isIdentifier(r)&&i&&(o=so(qs(dc(i),r.escapedText,t))),o)return o}var s=e.isIdentifier(r)?i:q0(r.left),u=e.isIdentifier(r)?r.escapedText:r.right.escapedText;if(s){var h=s.flags&111551&&bi(Jt(s),\"prototype\"),z=h?Jt(h):go(s);return bi(z,u)}}function el(r,i){if(r.kind===305)return e.isExternalModule(r)?so(r.symbol):void 0;var t=r.parent,o=t.parent;if(!(r.flags&33554432)){if(Y(r)){var s=Et(t);return e.isImportOrExportSpecifier(r.parent)&&r.parent.propertyName===r?wb(s):s}else if(e.isLiteralComputedPropertyDeclarationName(r))return Et(t.parent);if(r.kind===79){if(W0(r))return $6(r);if(t.kind===203&&o.kind===201&&r===t.propertyName){var u=Bd(o),h=bi(u,r.escapedText);if(h)return h}else if(e.isMetaProperty(t)&&t.name===r)return t.keywordToken===103&&e.idText(r)===\"target\"?tS(t).symbol:t.keywordToken===100&&e.idText(r)===\"meta\"?Tx().members.get(\"meta\"):void 0}switch(r.kind){case 79:case 80:case 206:case 161:if(!e.isThisInTypeQuery(r))return $6(r);case 108:var z=e.getThisContainer(r,!1);if(e.isFunctionLike(z)){var me=yl(z);if(me.thisParameter)return me.thisParameter}if(e.isInExpressionContext(r))return yn(r).symbol;case 192:return Ch(r).symbol;case 106:return yn(r).symbol;case 134:var Me=r.parent;return Me&&Me.kind===171?Me.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(r.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(r.parent.parent)===r||(r.parent.kind===266||r.parent.kind===272)&&r.parent.moduleSpecifier===r||e.isInJSFile(r)&&e.isRequireCall(r.parent,!1)||e.isImportCall(r.parent)||e.isLiteralTypeNode(r.parent)&&e.isLiteralImportTypeNode(r.parent.parent)&&r.parent.parent.argument===r.parent)return ac(r,r,i);if(e.isCallExpression(t)&&e.isBindableObjectDefinePropertyCall(t)&&t.arguments[1]===r)return Et(t);case 8:var $e=e.isElementAccessExpression(t)?t.argumentExpression===r?Gs(t.expression):void 0:e.isLiteralTypeNode(t)&&e.isIndexedAccessTypeNode(o)?Va(o.objectType):void 0;return $e&&bi($e,e.escapeLeadingUnderscores(r.text));case 88:case 98:case 38:case 84:return Et(r.parent);case 200:return e.isLiteralImportTypeNode(r)?el(r.argument.literal,i):void 0;case 93:return e.isExportAssignment(r.parent)?e.Debug.checkDefined(r.parent.symbol):void 0;case 100:case 103:return e.isMetaProperty(r.parent)?Ak(r.parent).symbol:void 0;case 231:return yn(r).symbol;default:return}}}function o9(r){if(e.isIdentifier(r)&&e.isPropertyAccessExpression(r.parent)&&r.parent.name===r){var i=Z_(r),t=Gs(r.parent.expression),o=t.flags&1048576?t.types:[t];return e.flatMap(o,function(s){return e.filter(Hn(s),function(u){return an(i,u.keyType)})})}}function s9(r){if(r&&r.kind===297)return Ds(r.name,2208703)}function c9(r){return e.isExportSpecifier(r)?r.parent.parent.moduleSpecifier?kl(r.parent.parent,r):Ds(r.propertyName||r.name,2998271):Ds(r,2998271)}function Bd(r){if(e.isSourceFile(r)&&!e.isExternalModule(r)||r.flags&33554432)return Pe;var i=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(r),t=i&&aa(Et(i.class));if(e.isPartOfTypeNode(r)){var o=Va(r);return t?Rc(o,t.thisType):o}if(e.isExpressionNode(r))return Z6(r);if(t&&!i.isImplements){var s=e.firstOrUndefined(Qc(t));return s?Rc(s,t.thisType):Pe}if(zy(r)){var u=Et(r);return go(u)}if(e9(r)){var u=el(r);return u?go(u):Pe}if(e.isDeclaration(r)){var u=Et(r);return u?Jt(u):Pe}if(Y(r)){var u=el(r);return u?Jt(u):Pe}if(e.isBindingPattern(r))return G_(r.parent,!0,0)||Pe;if(W0(r)){var u=el(r);if(u){var h=go(u);return nn(h)?Jt(u):h}}return e.isMetaProperty(r.parent)&&r.parent.keywordToken===r.kind?Ak(r.parent):Pe}function V0(r){if(e.Debug.assert(r.kind===205||r.kind===204),r.parent.kind===244){var i=By(r.parent);return Rd(r,i||Pe)}if(r.parent.kind===221){var i=Gs(r.parent.right);return Rd(r,i||Pe)}if(r.parent.kind===296){var t=e.cast(r.parent.parent,e.isObjectLiteralExpression),o=V0(t)||Pe,s=e.indexOfNode(t.properties,r.parent);return Uk(t,o,s)}var u=e.cast(r.parent,e.isArrayLiteralExpression),h=V0(u)||Pe,z=N_(65,h,Tr,r.parent)||Pe;return zk(u,h,u.elements.indexOf(r),z)}function u9(r){var i=V0(e.cast(r.parent.parent,e.isAssignmentPattern));return i&&bi(i,r.escapedText)}function Z6(r){return e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),jc(Gs(r))}function l9(r){var i=Et(r.parent);return e.isStatic(r)?Jt(i):go(i)}function f9(r){var i=r.name;switch(i.kind){case 79:return Bu(e.idText(i));case 8:case 10:return Bu(i.text);case 162:var t=t_(i);return Ns(t,12288)?t:Li;default:return e.Debug.fail(\"Unsupported property name.\")}}function LS(r){r=$s(r);var i=e.createSymbolTable(uo(r)),t=ot(r,0).length?Zr:ot(r,1).length?Si:void 0;return t&&e.forEach(uo(t),function(o){i.has(o.escapedName)||i.set(o.escapedName,o)}),tf(i)}function RS(r){return e.typeHasCallOrConstructSignatures(r,Di)}function eA(r){var i=_9(r);return i?e.flatMap(i,eA):[r]}function _9(r){if(e.getCheckFlags(r)&6)return e.mapDefined(Aa(r).containingType.types,function(u){return bi(u,r.escapedName)});if(r.flags&33554432){var i=r,t=i.leftSpread,o=i.rightSpread,s=i.syntheticOrigin;return t?[t,o]:s?[s]:e.singleElementArray(p9(r))}}function p9(r){for(var i,t=r;t=Aa(t).target;)i=t;return i}function d9(r){if(e.isGeneratedIdentifier(r))return!1;var i=e.getParseTreeNode(r,e.isIdentifier);if(!i)return!1;var t=i.parent;if(!t)return!1;var o=(e.isPropertyAccessExpression(t)||e.isPropertyAssignment(t))&&t.name===i;return!o&&Nv(i)===or}function g9(r){var i=ac(r.parent,r);if(!i||e.isShorthandAmbientModuleSymbol(i))return!0;var t=ll(i);i=Us(i);var o=Aa(i);return o.exportsSomeValue===void 0&&(o.exportsSomeValue=t?!!(i.flags&111551):e.forEachEntry(Pu(i),s)),o.exportsSomeValue;function s(u){return u=os(u),u&&!!(u.flags&111551)}}function m9(r){return e.isModuleOrEnumDeclaration(r.parent)&&r===r.parent.name}function v9(r,i){var t,o=e.getParseTreeNode(r,e.isIdentifier);if(o){var s=Nv(o,m9(o));if(s){if(s.flags&1048576){var u=so(s.exportSymbol);if(!i&&u.flags&944&&!(u.flags&3))return;s=u}var h=Ys(s);if(h){if(h.flags&512&&((t=h.valueDeclaration)===null||t===void 0?void 0:t.kind)===305){var z=h.valueDeclaration,me=e.getSourceFileOfNode(o),Me=z!==me;return Me?void 0:z}return e.findAncestor(o.parent,function($e){return e.isModuleOrEnumDeclaration($e)&&Et($e)===h})}}}}function y9(r){if(r.generatedImportReference)return r.generatedImportReference;var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(Zn(t,111551)&&!vu(t))return ru(t)}}function h9(r){return r.valueDeclaration&&e.isBindingElement(r.valueDeclaration)&&e.walkUpBindingElementsAndPatterns(r.valueDeclaration).parent.kind===292}function rA(r){if(r.flags&418&&r.valueDeclaration&&!e.isSourceFile(r.valueDeclaration)){var i=Aa(r);if(i.isDeclarationWithCollidingName===void 0){var t=e.getEnclosingBlockScopeContainer(r.valueDeclaration);if(e.isStatementWithLocals(t)||h9(r)){var o=va(r.valueDeclaration);if(es(t.parent,r.escapedName,111551,void 0,void 0,!1))i.isDeclarationWithCollidingName=!0;else if(o.flags&262144){var s=o.flags&524288,u=e.isIterationStatement(t,!1),h=t.kind===235&&e.isIterationStatement(t.parent,!1);i.isDeclarationWithCollidingName=!e.isBlockScopedContainerTopLevel(t)&&(!s||!u&&!h)}else i.isDeclarationWithCollidingName=!1}}return i.isDeclarationWithCollidingName}return!1}function D9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t&&rA(t))return t.valueDeclaration}}}function b9(r){var i=e.getParseTreeNode(r,e.isDeclaration);if(i){var t=Et(i);if(t)return rA(t)}return!1}function iA(r){switch(r.kind){case 265:return K0(Et(r));case 267:case 268:case 270:case 275:var i=Et(r);return!!i&&K0(i)&&!vu(i);case 272:var t=r.exportClause;return!!t&&(e.isNamespaceExport(t)||e.some(t.elements,iA));case 271:return r.expression&&r.expression.kind===79?K0(Et(r)):!0}return!1}function S9(r){var i=e.getParseTreeNode(r,e.isImportEqualsDeclaration);if(i===void 0||i.parent.kind!==305||!e.isInternalModuleImportEqualsDeclaration(i))return!1;var t=K0(Et(i));return t&&i.moduleReference&&!e.nodeIsMissing(i.moduleReference)}function K0(r){if(!r)return!1;var i=cu(Ps(r));return i===xe?!0:!!(i.flags&111551)&&(e.shouldPreserveConstEnums(ye)||!Av(i))}function Av(r){return lS(r)||!!r.constEnumOnlyModule}function G0(r,i){if(yf(r)){var t=Et(r),o=t&&Aa(t);if(o!=null&&o.referenced)return!0;var s=Aa(t).aliasTarget;if(s&&e.getEffectiveModifierFlags(r)&1&&s.flags&111551&&(e.shouldPreserveConstEnums(ye)||!Av(s)))return!0}return i?!!e.forEachChild(r,function(u){return G0(u,i)}):!1}function tA(r){if(e.nodeIsPresent(r.body)){if(e.isGetAccessor(r)||e.isSetAccessor(r))return!1;var i=Et(r),t=S_(i);return t.length>1||t.length===1&&t[0].declaration!==r}return!1}function aA(r){return!!Ye&&!kd(r)&&!e.isJSDocParameterTag(r)&&!!r.initializer&&!e.hasSyntacticModifier(r,16476)}function T9(r){return Ye&&kd(r)&&!r.initializer&&e.hasSyntacticModifier(r,16476)}function x9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return!1;var t=Et(i);return!t||!(t.flags&16)?!1:!!e.forEachEntry(dc(t),function(o){return o.flags&111551&&o.valueDeclaration&&e.isPropertyAccessExpression(o.valueDeclaration)})}function E9(r){var i=e.getParseTreeNode(r,e.isFunctionDeclaration);if(!i)return e.emptyArray;var t=Et(i);return t&&uo(Jt(t))||e.emptyArray}function Ug(r){var i,t=r.id||0;return t<0||t>=du.length?0:((i=du[t])===null||i===void 0?void 0:i.flags)||0}function H0(r){return U6(r.parent),va(r).enumMemberValue}function nA(r){switch(r.kind){case 299:case 206:case 207:return!0}return!1}function BS(r){if(r.kind===299)return H0(r);var i=va(r).resolvedSymbol;if(i&&i.flags&8){var t=i.valueDeclaration;if(e.isEnumConst(t.parent))return H0(t)}}function JS(r){return!!(r.flags&524288)&&ot(r,0).length>0}function C9(r,i){var t,o,s=e.getParseTreeNode(r,e.isEntityName);if(!s||i&&(i=e.getParseTreeNode(i),!i))return e.TypeReferenceSerializationKind.Unknown;var u=!1;if(e.isQualifiedName(s)){var h=Ds(e.getFirstIdentifier(s),111551,!0,!0,i);u=!!(!((t=h==null?void 0:h.declarations)===null||t===void 0)&&t.every(e.isTypeOnlyImportOrExportDeclaration))}var z=Ds(s,111551,!0,!0,i),me=z&&z.flags&2097152?Ps(z):z;u||(u=!!(!((o=z==null?void 0:z.declarations)===null||o===void 0)&&o.every(e.isTypeOnlyImportOrExportDeclaration)));var Me=Ds(s,788968,!0,!1,i);if(me&&me===Me){var $e=nD(!1);if($e&&me===$e)return e.TypeReferenceSerializationKind.Promise;var tr=Jt(me);if(tr&&qd(tr))return u?e.TypeReferenceSerializationKind.TypeWithCallSignature:e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!Me)return u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown;var dr=go(Me);return nn(dr)?u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown:dr.flags&3?e.TypeReferenceSerializationKind.ObjectType:Ns(dr,245760)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:Ns(dr,528)?e.TypeReferenceSerializationKind.BooleanType:Ns(dr,296)?e.TypeReferenceSerializationKind.NumberLikeType:Ns(dr,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:Ns(dr,402653316)?e.TypeReferenceSerializationKind.StringLikeType:Yn(dr)?e.TypeReferenceSerializationKind.ArrayLikeType:Ns(dr,12288)?e.TypeReferenceSerializationKind.ESSymbolType:JS(dr)?e.TypeReferenceSerializationKind.TypeWithCallSignature:Tu(dr)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function k9(r,i,t,o,s){var u=e.getParseTreeNode(r,e.isVariableLikeOrAccessor);if(!u)return e.factory.createToken(130);var h=Et(u),z=h&&!(h.flags&133120)?Hp(Jt(h)):Pe;return z.flags&8192&&z.symbol===h&&(t|=1048576),s&&(z=i_(z)),Ur.typeToTypeNode(z,i,t|1024,o)}function A9(r,i,t,o){var s=e.getParseTreeNode(r,e.isFunctionLike);if(!s)return e.factory.createToken(130);var u=yl(s);return Ur.typeToTypeNode(yo(u),i,t|1024,o)}function N9(r,i,t,o){var s=e.getParseTreeNode(r,e.isExpression);if(!s)return e.factory.createToken(130);var u=$c(Z6(s));return Ur.typeToTypeNode(u,i,t|1024,o)}function P9(r){return ii.has(e.escapeLeadingUnderscores(r))}function Nv(r,i){var t=va(r).resolvedSymbol;if(t)return t;var o=r;if(i){var s=r.parent;e.isDeclaration(s)&&r===s.name&&(o=zi(s))}return es(o,r.escapedText,3257279,void 0,void 0,!0)}function I9(r){if(!e.isGeneratedIdentifier(r)){var i=e.getParseTreeNode(r,e.isIdentifier);if(i){var t=Nv(i);if(t)return cu(t).valueDeclaration}}}function w9(r){return e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r)?Kp(Jt(Et(r))):!1}function O9(r,i,t){var o=r.flags&1024?Ur.symbolToExpression(r.symbol,111551,i,void 0,t):r===Dt?e.factory.createTrue():r===xt&&e.factory.createFalse();if(o)return o;var s=r.value;return typeof s==\"object\"?e.factory.createBigIntLiteral(s):typeof s==\"number\"?e.factory.createNumericLiteral(s):e.factory.createStringLiteral(s)}function F9(r,i){var t=Jt(Et(r));return O9(t,r,i)}function oA(r){return r?(po(r),e.getSourceFileOfNode(r).localJsxFactory||Se):Se}function jS(r){if(r){var i=e.getSourceFileOfNode(r);if(i){if(i.localJsxFragmentFactory)return i.localJsxFragmentFactory;var t=i.pragmas.get(\"jsxfrag\"),o=e.isArray(t)?t[0]:t;if(o)return i.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,Ae),i.localJsxFragmentFactory}}if(ye.jsxFragmentFactory)return e.parseIsolatedEntityName(ye.jsxFragmentFactory,Ae)}function M9(){var r=l.getResolvedTypeReferenceDirectives(),i;return r&&(i=new e.Map,r.forEach(function(me,Me,$e){if(!(!me||!me.resolvedFileName)){var tr=l.getSourceFile(me.resolvedFileName);tr&&z(tr,Me,$e)}})),{getReferencedExportContainer:v9,getReferencedImportDeclaration:y9,getReferencedDeclarationWithCollidingName:D9,isDeclarationWithCollidingName:b9,isValueAliasDeclaration:function(me){var Me=e.getParseTreeNode(me);return Me?iA(Me):!0},hasGlobalName:P9,isReferencedAliasDeclaration:function(me,Me){var $e=e.getParseTreeNode(me);return $e?G0($e,Me):!0},getNodeCheckFlags:function(me){var Me=e.getParseTreeNode(me);return Me?Ug(Me):0},isTopLevelValueImportEqualsWithEntityName:S9,isDeclarationVisible:wu,isImplementationOfOverload:tA,isRequiredInitializedParameter:aA,isOptionalUninitializedParameterProperty:T9,isExpandoFunctionDeclaration:x9,getPropertiesOfContainerFunction:E9,createTypeOfDeclaration:k9,createReturnTypeOfSignatureDeclaration:A9,createTypeOfExpression:N9,createLiteralConstValue:F9,isSymbolAccessible:g_,isEntityNameVisible:af,getConstantValue:function(me){var Me=e.getParseTreeNode(me,nA);return Me?BS(Me):void 0},collectLinkedAliases:V_,getReferencedValueDeclaration:I9,getTypeReferenceSerializationKind:C9,isOptionalParameter:kd,moduleExportsSomeValue:g9,isArgumentsLocalBinding:d9,getExternalModuleFileFromDeclaration:function(me){var Me=e.getParseTreeNode(me,e.hasPossibleExternalModuleReference);return Me&&US(Me)},getTypeReferenceDirectivesForEntityName:s,getTypeReferenceDirectivesForSymbol:u,isLiteralConstDeclaration:w9,isLateBound:function(me){var Me=e.getParseTreeNode(me,e.isDeclaration),$e=Me&&Et(Me);return!!($e&&e.getCheckFlags($e)&4096)},getJsxFactoryEntity:oA,getJsxFragmentFactoryEntity:jS,getAllAccessorDeclarations:function(me){me=e.getParseTreeNode(me,e.isGetOrSetAccessorDeclaration);var Me=me.kind===173?172:173,$e=e.getDeclarationOfKind(Et(me),Me),tr=$e&&$e.pos3})||Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h,4):u&1048576?e.some(S_(z),function(me){return Wc(me)>4})||Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h,5):u&1024&&(e.some(S_(z),function(me){return Wc(me)>2})||Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h,3)):Xr(r,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,h)}}ne|=i}}}function R9(r){switch(r){case 1:return\"__extends\";case 2:return\"__assign\";case 4:return\"__rest\";case 8:return\"__decorate\";case 16:return\"__metadata\";case 32:return\"__param\";case 64:return\"__awaiter\";case 128:return\"__generator\";case 256:return\"__values\";case 512:return\"__read\";case 1024:return\"__spreadArray\";case 2048:return\"__await\";case 4096:return\"__asyncGenerator\";case 8192:return\"__asyncDelegator\";case 16384:return\"__asyncValues\";case 32768:return\"__exportStar\";case 65536:return\"__importStar\";case 131072:return\"__importDefault\";case 262144:return\"__makeTemplateObject\";case 524288:return\"__classPrivateFieldGet\";case 1048576:return\"__classPrivateFieldSet\";case 2097152:return\"__classPrivateFieldIn\";case 4194304:return\"__createBinding\";default:return e.Debug.fail(\"Unrecognized helper\")}}function B9(r,i){return ue||(ue=Il(r,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,i)||xe),ue}function Ff(r){return J9(r)||sA(r)}function J9(r){if(!r.decorators)return!1;if(e.nodeCanBeDecorated(r,r.parent,r.parent.parent)){if(r.kind===172||r.kind===173){var i=e.getAllAccessorDeclarations(r.parent.members,r);if(i.firstAccessor.decorators&&r===i.secondAccessor)return Hs(r,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}}else return r.kind===169&&!e.nodeIsPresent(r.body)?Hs(r,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload):Hs(r,e.Diagnostics.Decorators_are_not_valid_here);return!1}function sA(r){var i=j9(r);if(i!==void 0)return i;for(var t,o,s,u,h=0,z=0,me=r.modifiers;z1||r.modifiers[0].kind!==i}function z9(r,i){switch(r.kind){case 169:case 256:case 213:case 214:return!1}return Tt(i,e.Diagnostics._0_modifier_cannot_be_used_here,\"async\")}function ng(r,i){return i===void 0&&(i=e.Diagnostics.Trailing_comma_not_allowed),r&&r.hasTrailingComma?rd(r[0],r.end-1,1,i):!1}function cA(r,i){if(r&&r.length===0){var t=r.pos-1,o=e.skipTrivia(i.text,r.end)+1;return rd(i,t,o-t,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function W9(r){for(var i=!1,t=r.length,o=0;o=3){var i=r.body&&e.isBlock(r.body)&&e.findUseStrictPrologue(r.body.statements);if(i){var t=q9(r.parameters);if(e.length(t)){e.forEach(t,function(s){e.addRelatedInfo(Xr(s,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(i,e.Diagnostics.use_strict_directive_used_here))});var o=t.map(function(s,u){return u===0?e.createDiagnosticForNode(s,e.Diagnostics.Non_simple_parameter_declared_here):e.createDiagnosticForNode(s,e.Diagnostics.and_here)});return e.addRelatedInfo.apply(void 0,Ve([Xr(i,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],o,!1)),!0}}}return!1}function X0(r){var i=e.getSourceFileOfNode(r);return Ff(r)||cA(r.typeParameters,i)||W9(r.parameters)||G9(r,i)||e.isFunctionLikeDeclaration(r)&&V9(r)}function K9(r){var i=e.getSourceFileOfNode(r);return $9(r)||cA(r.typeParameters,i)}function G9(r,i){if(!e.isArrowFunction(r))return!1;r.typeParameters&&!(e.length(r.typeParameters)>1||r.typeParameters.hasTrailingComma||r.typeParameters[0].constraint)&&i&&e.fileExtensionIsOneOf(i.fileName,[\".mts\",\".cts\"])&&Tt(r.typeParameters[0],e.Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);var t=r.equalsGreaterThanToken,o=e.getLineAndCharacterOfPosition(i,t.pos).line,s=e.getLineAndCharacterOfPosition(i,t.end).line;return o!==s&&Tt(t,e.Diagnostics.Line_terminator_not_permitted_before_arrow)}function H9(r){var i=r.parameters[0];if(r.parameters.length!==1)return Tt(i?i.name:r,e.Diagnostics.An_index_signature_must_have_exactly_one_parameter);if(ng(r.parameters,e.Diagnostics.An_index_signature_cannot_have_a_trailing_comma),i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);if(e.hasEffectiveModifiers(i))return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);if(i.initializer)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);if(!i.type)return Tt(i.name,e.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);var t=Va(i.type);return rg(t,function(o){return!!(o.flags&8576)})||rv(t)?Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead):gf(t,vh)?r.type?!1:Tt(r,e.Diagnostics.An_index_signature_must_have_a_type_annotation):Tt(i.name,e.Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type)}function X9(r){return Ff(r)||H9(r)}function Q9(r,i){if(i&&i.length===0){var t=e.getSourceFileOfNode(r),o=i.pos-1,s=e.skipTrivia(t.text,i.end)+1;return rd(t,o,s-o,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}function Wy(r,i){return ng(i)||Q9(r,i)}function Y9(r){return r.questionDotToken||r.flags&32?Tt(r.template,e.Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain):!1}function uA(r){var i=r.types;if(ng(i))return!0;if(i&&i.length===0){var t=e.tokenToString(r.token);return rd(r,i.pos,0,e.Diagnostics._0_list_cannot_be_empty,t)}return e.some(i,lA)}function lA(r){return e.isExpressionWithTypeArguments(r)&&e.isImportKeyword(r.expression)&&r.typeArguments?Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments):Wy(r,r.typeArguments)}function $9(r){var i=!1,t=!1;if(!Ff(r)&&r.heritageClauses)for(var o=0,s=r.heritageClauses;o1)return Hs(u.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);i=!0}else{if(e.Debug.assert(u.token===117),t)return Hs(u,e.Diagnostics.implements_clause_already_seen);t=!0}uA(u)}}function Z9(r){var i=!1;if(r.heritageClauses)for(var t=0,o=r.heritageClauses;t=4)break;default:rn.add(e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher));break}}else if(!Jd(i)){var t=e.createDiagnosticForNode(r.awaitModifier,e.Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules),o=e.getContainingFunction(r);if(o&&o.kind!==171){e.Debug.assert((e.getFunctionFlags(o)&2)===0,\"Enclosing function should never be an async function.\");var s=e.createDiagnosticForNode(o,e.Diagnostics.Did_you_mean_to_mark_this_function_as_async);e.addRelatedInfo(t,s)}return rn.add(t),!0}return!1}if(e.isForOfStatement(r)&&!(r.flags&32768)&&e.isIdentifier(r.initializer)&&r.initializer.escapedText===\"async\")return Tt(r.initializer,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async),!1;if(r.initializer.kind===255){var u=r.initializer;if(!VS(u)){var h=u.declarations;if(!h.length)return!1;if(h.length>1){var t=r.kind===243?e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;return Hs(u.declarations[1],t)}var z=h[0];if(z.initializer){var t=r.kind===243?e.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:e.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;return Tt(z.name,t)}if(z.type){var t=r.kind===243?e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:e.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;return Tt(z,t)}}}return!1}function aL(r){if(!(r.flags&16777216)&&r.parent.kind!==182&&r.parent.kind!==258){if(Ae<1)return Tt(r.name,e.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.body===void 0&&!e.hasSyntacticModifier(r,128))return rd(r,r.end-1,1,e.Diagnostics._0_expected,\"{\")}if(r.body){if(e.hasSyntacticModifier(r,128))return Tt(r,e.Diagnostics.An_abstract_accessor_cannot_have_an_implementation);if(r.parent.kind===182||r.parent.kind===258)return Tt(r.body,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts)}if(r.typeParameters)return Tt(r.name,e.Diagnostics.An_accessor_cannot_have_type_parameters);if(!nL(r))return Tt(r.name,r.kind===172?e.Diagnostics.A_get_accessor_cannot_have_parameters:e.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);if(r.kind===173){if(r.type)return Tt(r.name,e.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);var i=e.Debug.checkDefined(e.getSetAccessorValueParameter(r),\"Return value does not match parameter count assertion.\");if(i.dotDotDotToken)return Tt(i.dotDotDotToken,e.Diagnostics.A_set_accessor_cannot_have_rest_parameter);if(i.questionToken)return Tt(i.questionToken,e.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);if(i.initializer)return Tt(r.name,e.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}function nL(r){return qS(r)||r.parameters.length===(r.kind===172?0:1)}function qS(r){if(r.parameters.length===(r.kind===172?1:2))return e.getThisParameter(r)}function oL(r){if(r.operator===154){if(r.type.kind!==151)return Tt(r.type,e.Diagnostics._0_expected,e.tokenToString(151));var i=e.walkUpParenthesizedTypes(r.parent);if(e.isInJSFile(i)&&e.isJSDocTypeExpression(i)){var t=e.getJSDocHost(i);t&&(i=e.getSingleVariableOfVariableStatement(t)||t)}switch(i.kind){case 254:var o=i;if(o.name.kind!==79)return Tt(r,e.Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!e.isVariableDeclarationInVariableStatement(o))return Tt(r,e.Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(o.parent.flags&2))return Tt(i.name,e.Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 167:if(!e.isStatic(i)||!e.hasEffectiveReadonlyModifier(i))return Tt(i.name,e.Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 166:if(!e.hasSyntacticModifier(i,64))return Tt(i.name,e.Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:return Tt(r,e.Diagnostics.unique_symbol_types_are_not_allowed_here)}}else if(r.operator===145&&r.type.kind!==183&&r.type.kind!==184)return Hs(r,e.Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,e.tokenToString(151))}function Em(r,i){if(I1(r))return Tt(r,i)}function dA(r){if(X0(r))return!0;if(r.kind===169){if(r.parent.kind===205){if(r.modifiers&&!(r.modifiers.length===1&&e.first(r.modifiers).kind===131))return Hs(r,e.Diagnostics.Modifiers_cannot_appear_here);if(fA(r.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(_A(r.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(r.body===void 0)return rd(r,r.end-1,1,e.Diagnostics._0_expected,\"{\")}if(WS(r))return!0}if(e.isClassLike(r.parent)){if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(r.flags&16777216)return Em(r.name,e.Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(r.kind===169&&!r.body)return Em(r.name,e.Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}else{if(r.parent.kind===258)return Em(r.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(r.parent.kind===182)return Em(r.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}}function sL(r){for(var i=r;i;){if(e.isFunctionLikeOrClassStaticBlockDeclaration(i))return Tt(r,e.Diagnostics.Jump_target_cannot_cross_function_boundary);switch(i.kind){case 250:if(r.label&&i.label.escapedText===r.label.escapedText){var t=r.kind===245&&!e.isIterationStatement(i.statement,!0);return t?Tt(r,e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement):!1}break;case 249:if(r.kind===246&&!r.label)return!1;break;default:if(e.isIterationStatement(i,!1)&&!r.label)return!1;break}i=i.parent}if(r.label){var o=r.kind===246?e.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;return Tt(r,o)}else{var o=r.kind===246?e.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:e.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;return Tt(r,o)}}function cL(r){if(r.dotDotDotToken){var i=r.parent.elements;if(r!==e.last(i))return Tt(r,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);if(ng(i,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),r.propertyName)return Tt(r.name,e.Diagnostics.A_rest_element_cannot_have_a_property_name)}if(r.dotDotDotToken&&r.initializer)return rd(r,r.initializer.pos-1,1,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}function gA(r){return e.isStringOrNumericLiteralLike(r)||r.kind===219&&r.operator===40&&r.operand.kind===8}function uL(r){return r.kind===9||r.kind===219&&r.operator===40&&r.operand.kind===9}function lL(r){if((e.isPropertyAccessExpression(r)||e.isElementAccessExpression(r)&&gA(r.argumentExpression))&&e.isEntityNameExpression(r.expression))return!!(Os(r).flags&1024)}function mA(r){var i=r.initializer;if(i){var t=!(gA(i)||lL(i)||i.kind===110||i.kind===95||uL(i)),o=e.isDeclarationReadonly(r)||e.isVariableDeclaration(r)&&e.isVarConst(r);if(o&&!r.type){if(t)return Tt(i,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference)}else return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(!o||t)return Tt(i,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function fL(r){if(r.parent.parent.kind!==243&&r.parent.parent.kind!==244){if(r.flags&16777216)mA(r);else if(!r.initializer){if(e.isBindingPattern(r.name)&&!e.isBindingPattern(r.parent))return Tt(r,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(r))return Tt(r,e.Diagnostics.const_declarations_must_be_initialized)}}if(r.exclamationToken&&(r.parent.parent.kind!==237||!r.type||r.initializer||r.flags&16777216)){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.type?e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context:e.Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return Tt(r.exclamationToken,i)}(er0}function Hs(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,h.start,h.length,i,t,o,s)),!0}return!1}function rd(r,i,t,o,s,u,h){var z=e.getSourceFileOfNode(r);return Jd(z)?!1:(rn.add(e.createFileDiagnostic(z,i,t,o,s,u,h)),!0)}function dL(r,i,t,o,s,u){var h=e.getSourceFileOfNode(i);return Jd(h)?!1:(Es(r,i,t,o,s,u),!0)}function Tt(r,i,t,o,s){var u=e.getSourceFileOfNode(r);return Jd(u)?!1:(rn.add(e.createDiagnosticForNode(r,i,t,o,s)),!0)}function gL(r){var i=e.isInJSFile(r)?e.getJSDocTypeParameterDeclarations(r):void 0,t=r.typeParameters||i&&e.firstOrUndefined(i);if(t){var o=t.pos===t.end?t.pos:e.skipTrivia(e.getSourceFileOfNode(r).text,t.pos);return rd(r,o,t.end-o,e.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration)}}function mL(r){var i=e.getEffectiveReturnTypeNode(r);if(i)return Tt(i,e.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration)}function vL(r){if(e.isComputedPropertyName(r.name)&&e.isBinaryExpression(r.name.expression)&&r.name.expression.operatorToken.kind===101)return Tt(r.parent.members[0],e.Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);if(e.isClassLike(r.parent)){if(e.isStringLiteral(r.name)&&r.name.text===\"constructor\")return Tt(r.name,e.Diagnostics.Classes_may_not_have_a_field_named_constructor);if(Em(r.name,e.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type))return!0;if(Ae<2&&e.isPrivateIdentifier(r.name))return Tt(r.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher)}else if(r.parent.kind===258){if(Em(r.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(r.initializer)return Tt(r.initializer,e.Diagnostics.An_interface_property_cannot_have_an_initializer)}else if(e.isTypeLiteralNode(r.parent)){if(Em(r.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(r.initializer)return Tt(r.initializer,e.Diagnostics.A_type_literal_property_cannot_have_an_initializer)}if(r.flags&16777216&&mA(r),e.isPropertyDeclaration(r)&&r.exclamationToken&&(!e.isClassLike(r.parent)||!r.type||r.initializer||r.flags&16777216||e.isStatic(r)||e.hasAbstractModifier(r))){var i=r.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:r.type?e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context:e.Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return Tt(r.exclamationToken,i)}}function yL(r){return r.kind===258||r.kind===259||r.kind===266||r.kind===265||r.kind===272||r.kind===271||r.kind===264||e.hasSyntacticModifier(r,515)?!1:Hs(r,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function hL(r){for(var i=0,t=r.statements;i=1?i=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(r,196)?i=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(r,299)&&(i=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),i){var t=e.isPrefixUnaryExpression(r.parent)&&r.parent.operator===40,o=(t?\"-\":\"\")+\"0o\"+r.text;return Tt(t?r.parent:r,i,o)}}return bL(r),!1}function bL(r){var i=e.getTextOfNode(r).indexOf(\".\")!==-1,t=r.numericLiteralFlags&16;if(!(i||t)){var o=+r.text;o<=Math.pow(2,53)-1||Ls(!1,e.createDiagnosticForNode(r,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}}function SL(r){var i=e.isLiteralTypeNode(r.parent)||e.isPrefixUnaryExpression(r.parent)&&e.isLiteralTypeNode(r.parent.parent);return!!(!i&&Ae<7&&Tt(r,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020))}function TL(r,i,t,o,s){var u=e.getSourceFileOfNode(r);if(!Jd(u)){var h=e.getSpanOfTokenAtPosition(u,r.pos);return rn.add(e.createFileDiagnostic(u,e.textSpanEnd(h),0,i,t,o,s)),!0}return!1}function xL(){return Gr||(Gr=[],ii.forEach(function(r,i){a.test(i)&&Gr.push(r)})),Gr}function EL(r){var i;return r.isTypeOnly&&r.name&&r.namedBindings?Tt(r,e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both):r.isTypeOnly&&((i=r.namedBindings)===null||i===void 0?void 0:i.kind)===269?DA(r.namedBindings):!1}function DA(r){return!!e.forEach(r.elements,function(i){if(i.isTypeOnly)return Hs(i,i.kind===270?e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:e.Diagnostics.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement)})}function CL(r){if(er===e.ModuleKind.ES2015)return Tt(r,e.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext);if(r.typeArguments)return Tt(r,e.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);var i=r.arguments;if(er!==e.ModuleKind.ESNext&&er!==e.ModuleKind.NodeNext&&(ng(i),i.length>1)){var t=i[1];return Tt(t,e.Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext)}if(i.length===0||i.length>2)return Tt(r,e.Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments);var o=e.find(i,e.isSpreadElement);return o?Tt(o,e.Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element):!1}function kL(r,i){var t=e.getObjectFlags(r);if(t&20&&i.flags&1048576)return e.find(i.types,function(o){if(o.flags&524288){var s=t&e.getObjectFlags(o);if(s&4)return r.target===o.target;if(s&16)return!!r.aliasSymbol&&r.aliasSymbol===o.aliasSymbol}return!1})}function AL(r,i){if(e.getObjectFlags(r)&128&&rg(i,sp))return e.find(i.types,function(t){return!sp(t)})}function NL(r,i){var t=0,o=ot(r,t).length>0||(t=1,ot(r,t).length>0);if(o)return e.find(i.types,function(s){return ot(s,t).length>0})}function PL(r,i){var t;if(!(r.flags&406978556))for(var o=0,s=0,u=i.types;s=o&&(t=h,o=me)}}}return t}function IL(r){if(fs(r,67108864)){var i=ec(r,function(t){return!(t.flags&131068)});if(!(i.flags&131072))return i}return r}function bA(r,i,t,o){if(i.flags&1048576&&r.flags&2621440){var s=$E(i,r);if(s)return s;var u=uo(r);if(u){var h=YE(u,i);if(h)return UD(i,e.map(h,function(z){return[function(){return Jt(z)},z.escapedName]}),t,void 0,o)}}}}e.createTypeChecker=L;function P(l){return!e.isAccessor(l)}function k(l){return l.kind!==256&&l.kind!==169||!!l.body}function Y(l){switch(l.parent.kind){case 270:case 275:return e.isIdentifier(l);default:return e.isDeclarationName(l)}}var U;(function(l){l.JSX=\"JSX\",l.IntrinsicElements=\"IntrinsicElements\",l.ElementClass=\"ElementClass\",l.ElementAttributesPropertyNameContainer=\"ElementAttributesProperty\",l.ElementChildrenAttributeNameContainer=\"ElementChildrenAttribute\",l.Element=\"Element\",l.IntrinsicAttributes=\"IntrinsicAttributes\",l.IntrinsicClassAttributes=\"IntrinsicClassAttributes\",l.LibraryManagedAttributes=\"LibraryManagedAttributes\"})(U||(U={}));function j(l){switch(l){case 0:return\"yieldType\";case 1:return\"returnType\";case 2:return\"nextType\"}}function H(l){return!!(l.flags&1)}e.signatureHasRestParameter=H;function I(l){return!!(l.flags&2)}e.signatureHasLiteralTypes=I})(ke||(ke={}));var ke;(function(e){function a(f,T,K,b){if(f===void 0||T===void 0)return f;var se=T(f);if(se===f)return f;var J;if(se!==void 0)return e.isArray(se)?J=(b||oe)(se):J=se,e.Debug.assertNode(J,K),J}e.visitNode=a;function C(f,T,K,b,se){if(f===void 0||T===void 0)return f;var J,ie=f.length;(b===void 0||b<0)&&(b=0),(se===void 0||se>ie-b)&&(se=ie-b);var R,q=-1,O=-1;(b>0||se=2&&(se=E(se,K)),K.setLexicalEnvironmentFlags(1,!1)),K.suspendLexicalEnvironment(),se}e.visitParameterList=B;function E(f,T){for(var K,b=0;b0&&ie<=160||ie===192)return f;var R=K.factory;switch(ie){case 79:return e.Debug.type(f),R.updateIdentifier(f,b(f.typeArguments,T,e.isTypeNodeOrTypeParameterDeclaration));case 161:return e.Debug.type(f),R.updateQualifiedName(f,J(f.left,T,e.isEntityName),J(f.right,T,e.isIdentifier));case 162:return e.Debug.type(f),R.updateComputedPropertyName(f,J(f.expression,T,e.isExpression));case 163:return e.Debug.type(f),R.updateTypeParameterDeclaration(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),J(f.constraint,T,e.isTypeNode),J(f.default,T,e.isTypeNode));case 164:return e.Debug.type(f),R.updateParameterDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.name,T,e.isBindingName),J(f.questionToken,se,e.isQuestionToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 165:return e.Debug.type(f),R.updateDecorator(f,J(f.expression,T,e.isExpression));case 166:return e.Debug.type(f),R.updatePropertySignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isToken),J(f.type,T,e.isTypeNode));case 167:return e.Debug.type(f),R.updatePropertyDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken||f.exclamationToken,se,e.isQuestionOrExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 168:return e.Debug.type(f),R.updateMethodSignature(f,b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 169:return e.Debug.type(f),R.updateMethodDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isPropertyName),J(f.questionToken,se,e.isQuestionToken),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 171:return e.Debug.type(f),R.updateConstructorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),B(f.parameters,T,K,b),p(f.body,T,K,J));case 172:return e.Debug.type(f),R.updateGetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 173:return e.Debug.type(f),R.updateSetAccessorDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isPropertyName),B(f.parameters,T,K,b),p(f.body,T,K,J));case 170:return e.Debug.type(f),K.startLexicalEnvironment(),K.suspendLexicalEnvironment(),R.updateClassStaticBlockDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),p(f.body,T,K,J));case 174:return e.Debug.type(f),R.updateCallSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 175:return e.Debug.type(f),R.updateConstructSignature(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 176:return e.Debug.type(f),R.updateIndexSignature(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 177:return e.Debug.type(f),R.updateTypePredicateNode(f,J(f.assertsModifier,T,e.isAssertsKeyword),J(f.parameterName,T,e.isIdentifierOrThisTypeNode),J(f.type,T,e.isTypeNode));case 178:return e.Debug.type(f),R.updateTypeReferenceNode(f,J(f.typeName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 179:return e.Debug.type(f),R.updateFunctionTypeNode(f,b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 180:return e.Debug.type(f),R.updateConstructorTypeNode(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.parameters,T,e.isParameterDeclaration),J(f.type,T,e.isTypeNode));case 181:return e.Debug.type(f),R.updateTypeQueryNode(f,J(f.exprName,T,e.isEntityName),b(f.typeArguments,T,e.isTypeNode));case 182:return e.Debug.type(f),R.updateTypeLiteralNode(f,b(f.members,T,e.isTypeElement));case 183:return e.Debug.type(f),R.updateArrayTypeNode(f,J(f.elementType,T,e.isTypeNode));case 184:return e.Debug.type(f),R.updateTupleTypeNode(f,b(f.elements,T,e.isTypeNode));case 185:return e.Debug.type(f),R.updateOptionalTypeNode(f,J(f.type,T,e.isTypeNode));case 186:return e.Debug.type(f),R.updateRestTypeNode(f,J(f.type,T,e.isTypeNode));case 187:return e.Debug.type(f),R.updateUnionTypeNode(f,b(f.types,T,e.isTypeNode));case 188:return e.Debug.type(f),R.updateIntersectionTypeNode(f,b(f.types,T,e.isTypeNode));case 189:return e.Debug.type(f),R.updateConditionalTypeNode(f,J(f.checkType,T,e.isTypeNode),J(f.extendsType,T,e.isTypeNode),J(f.trueType,T,e.isTypeNode),J(f.falseType,T,e.isTypeNode));case 190:return e.Debug.type(f),R.updateInferTypeNode(f,J(f.typeParameter,T,e.isTypeParameterDeclaration));case 200:return e.Debug.type(f),R.updateImportTypeNode(f,J(f.argument,T,e.isTypeNode),J(f.assertions,T,e.isNode),J(f.qualifier,T,e.isEntityName),C(f.typeArguments,T,e.isTypeNode),f.isTypeOf);case 295:return e.Debug.type(f),R.updateImportTypeAssertionContainer(f,J(f.assertClause,T,e.isNode),f.multiLine);case 197:return e.Debug.type(f),R.updateNamedTupleMember(f,a(f.dotDotDotToken,T,e.isDotDotDotToken),a(f.name,T,e.isIdentifier),a(f.questionToken,T,e.isQuestionToken),a(f.type,T,e.isTypeNode));case 191:return e.Debug.type(f),R.updateParenthesizedType(f,J(f.type,T,e.isTypeNode));case 193:return e.Debug.type(f),R.updateTypeOperatorNode(f,J(f.type,T,e.isTypeNode));case 194:return e.Debug.type(f),R.updateIndexedAccessTypeNode(f,J(f.objectType,T,e.isTypeNode),J(f.indexType,T,e.isTypeNode));case 195:return e.Debug.type(f),R.updateMappedTypeNode(f,J(f.readonlyToken,se,e.isReadonlyKeywordOrPlusOrMinusToken),J(f.typeParameter,T,e.isTypeParameterDeclaration),J(f.nameType,T,e.isTypeNode),J(f.questionToken,se,e.isQuestionOrPlusOrMinusToken),J(f.type,T,e.isTypeNode),b(f.members,T,e.isTypeElement));case 196:return e.Debug.type(f),R.updateLiteralTypeNode(f,J(f.literal,T,e.isExpression));case 198:return e.Debug.type(f),R.updateTemplateLiteralType(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateLiteralTypeSpan));case 199:return e.Debug.type(f),R.updateTemplateLiteralTypeSpan(f,J(f.type,T,e.isTypeNode),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 201:return e.Debug.type(f),R.updateObjectBindingPattern(f,b(f.elements,T,e.isBindingElement));case 202:return e.Debug.type(f),R.updateArrayBindingPattern(f,b(f.elements,T,e.isArrayBindingElement));case 203:return e.Debug.type(f),R.updateBindingElement(f,J(f.dotDotDotToken,se,e.isDotDotDotToken),J(f.propertyName,T,e.isPropertyName),J(f.name,T,e.isBindingName),J(f.initializer,T,e.isExpression));case 204:return e.Debug.type(f),R.updateArrayLiteralExpression(f,b(f.elements,T,e.isExpression));case 205:return e.Debug.type(f),R.updateObjectLiteralExpression(f,b(f.properties,T,e.isObjectLiteralElementLike));case 206:return f.flags&32?(e.Debug.type(f),R.updatePropertyAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.name,T,e.isMemberName))):(e.Debug.type(f),R.updatePropertyAccessExpression(f,J(f.expression,T,e.isExpression),J(f.name,T,e.isMemberName)));case 207:return f.flags&32?(e.Debug.type(f),R.updateElementAccessChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),J(f.argumentExpression,T,e.isExpression))):(e.Debug.type(f),R.updateElementAccessExpression(f,J(f.expression,T,e.isExpression),J(f.argumentExpression,T,e.isExpression)));case 208:return f.flags&32?(e.Debug.type(f),R.updateCallChain(f,J(f.expression,T,e.isExpression),J(f.questionDotToken,se,e.isQuestionDotToken),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression))):(e.Debug.type(f),R.updateCallExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression)));case 209:return e.Debug.type(f),R.updateNewExpression(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode),b(f.arguments,T,e.isExpression));case 210:return e.Debug.type(f),R.updateTaggedTemplateExpression(f,J(f.tag,T,e.isExpression),C(f.typeArguments,T,e.isTypeNode),J(f.template,T,e.isTemplateLiteral));case 211:return e.Debug.type(f),R.updateTypeAssertion(f,J(f.type,T,e.isTypeNode),J(f.expression,T,e.isExpression));case 212:return e.Debug.type(f),R.updateParenthesizedExpression(f,J(f.expression,T,e.isExpression));case 213:return e.Debug.type(f),R.updateFunctionExpression(f,b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 214:return e.Debug.type(f),R.updateArrowFunction(f,b(f.modifiers,T,e.isModifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),J(f.equalsGreaterThanToken,se,e.isEqualsGreaterThanToken),p(f.body,T,K,J));case 215:return e.Debug.type(f),R.updateDeleteExpression(f,J(f.expression,T,e.isExpression));case 216:return e.Debug.type(f),R.updateTypeOfExpression(f,J(f.expression,T,e.isExpression));case 217:return e.Debug.type(f),R.updateVoidExpression(f,J(f.expression,T,e.isExpression));case 218:return e.Debug.type(f),R.updateAwaitExpression(f,J(f.expression,T,e.isExpression));case 219:return e.Debug.type(f),R.updatePrefixUnaryExpression(f,J(f.operand,T,e.isExpression));case 220:return e.Debug.type(f),R.updatePostfixUnaryExpression(f,J(f.operand,T,e.isExpression));case 221:return e.Debug.type(f),R.updateBinaryExpression(f,J(f.left,T,e.isExpression),J(f.operatorToken,se,e.isBinaryOperatorToken),J(f.right,T,e.isExpression));case 222:return e.Debug.type(f),R.updateConditionalExpression(f,J(f.condition,T,e.isExpression),J(f.questionToken,se,e.isQuestionToken),J(f.whenTrue,T,e.isExpression),J(f.colonToken,se,e.isColonToken),J(f.whenFalse,T,e.isExpression));case 223:return e.Debug.type(f),R.updateTemplateExpression(f,J(f.head,T,e.isTemplateHead),b(f.templateSpans,T,e.isTemplateSpan));case 224:return e.Debug.type(f),R.updateYieldExpression(f,J(f.asteriskToken,se,e.isAsteriskToken),J(f.expression,T,e.isExpression));case 225:return e.Debug.type(f),R.updateSpreadElement(f,J(f.expression,T,e.isExpression));case 226:return e.Debug.type(f),R.updateClassExpression(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 228:return e.Debug.type(f),R.updateExpressionWithTypeArguments(f,J(f.expression,T,e.isExpression),b(f.typeArguments,T,e.isTypeNode));case 229:return e.Debug.type(f),R.updateAsExpression(f,J(f.expression,T,e.isExpression),J(f.type,T,e.isTypeNode));case 230:return f.flags&32?(e.Debug.type(f),R.updateNonNullChain(f,J(f.expression,T,e.isExpression))):(e.Debug.type(f),R.updateNonNullExpression(f,J(f.expression,T,e.isExpression)));case 231:return e.Debug.type(f),R.updateMetaProperty(f,J(f.name,T,e.isIdentifier));case 233:return e.Debug.type(f),R.updateTemplateSpan(f,J(f.expression,T,e.isExpression),J(f.literal,T,e.isTemplateMiddleOrTemplateTail));case 235:return e.Debug.type(f),R.updateBlock(f,b(f.statements,T,e.isStatement));case 237:return e.Debug.type(f),R.updateVariableStatement(f,b(f.modifiers,T,e.isModifier),J(f.declarationList,T,e.isVariableDeclarationList));case 238:return e.Debug.type(f),R.updateExpressionStatement(f,J(f.expression,T,e.isExpression));case 239:return e.Debug.type(f),R.updateIfStatement(f,J(f.expression,T,e.isExpression),J(f.thenStatement,T,e.isStatement,R.liftToBlock),J(f.elseStatement,T,e.isStatement,R.liftToBlock));case 240:return e.Debug.type(f),R.updateDoStatement(f,m(f.statement,T,K),J(f.expression,T,e.isExpression));case 241:return e.Debug.type(f),R.updateWhileStatement(f,J(f.expression,T,e.isExpression),m(f.statement,T,K));case 242:return e.Debug.type(f),R.updateForStatement(f,J(f.initializer,T,e.isForInitializer),J(f.condition,T,e.isExpression),J(f.incrementor,T,e.isExpression),m(f.statement,T,K));case 243:return e.Debug.type(f),R.updateForInStatement(f,J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 244:return e.Debug.type(f),R.updateForOfStatement(f,J(f.awaitModifier,se,e.isAwaitKeyword),J(f.initializer,T,e.isForInitializer),J(f.expression,T,e.isExpression),m(f.statement,T,K));case 245:return e.Debug.type(f),R.updateContinueStatement(f,J(f.label,T,e.isIdentifier));case 246:return e.Debug.type(f),R.updateBreakStatement(f,J(f.label,T,e.isIdentifier));case 247:return e.Debug.type(f),R.updateReturnStatement(f,J(f.expression,T,e.isExpression));case 248:return e.Debug.type(f),R.updateWithStatement(f,J(f.expression,T,e.isExpression),J(f.statement,T,e.isStatement,R.liftToBlock));case 249:return e.Debug.type(f),R.updateSwitchStatement(f,J(f.expression,T,e.isExpression),J(f.caseBlock,T,e.isCaseBlock));case 250:return e.Debug.type(f),R.updateLabeledStatement(f,J(f.label,T,e.isIdentifier),J(f.statement,T,e.isStatement,R.liftToBlock));case 251:return e.Debug.type(f),R.updateThrowStatement(f,J(f.expression,T,e.isExpression));case 252:return e.Debug.type(f),R.updateTryStatement(f,J(f.tryBlock,T,e.isBlock),J(f.catchClause,T,e.isCatchClause),J(f.finallyBlock,T,e.isBlock));case 254:return e.Debug.type(f),R.updateVariableDeclaration(f,J(f.name,T,e.isBindingName),J(f.exclamationToken,se,e.isExclamationToken),J(f.type,T,e.isTypeNode),J(f.initializer,T,e.isExpression));case 255:return e.Debug.type(f),R.updateVariableDeclarationList(f,b(f.declarations,T,e.isVariableDeclaration));case 256:return e.Debug.type(f),R.updateFunctionDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.asteriskToken,se,e.isAsteriskToken),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),B(f.parameters,T,K,b),J(f.type,T,e.isTypeNode),p(f.body,T,K,J));case 257:return e.Debug.type(f),R.updateClassDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isClassElement));case 258:return e.Debug.type(f),R.updateInterfaceDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),b(f.heritageClauses,T,e.isHeritageClause),b(f.members,T,e.isTypeElement));case 259:return e.Debug.type(f),R.updateTypeAliasDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.typeParameters,T,e.isTypeParameterDeclaration),J(f.type,T,e.isTypeNode));case 260:return e.Debug.type(f),R.updateEnumDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isIdentifier),b(f.members,T,e.isEnumMember));case 261:return e.Debug.type(f),R.updateModuleDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.name,T,e.isModuleName),J(f.body,T,e.isModuleBody));case 262:return e.Debug.type(f),R.updateModuleBlock(f,b(f.statements,T,e.isStatement));case 263:return e.Debug.type(f),R.updateCaseBlock(f,b(f.clauses,T,e.isCaseOrDefaultClause));case 264:return e.Debug.type(f),R.updateNamespaceExportDeclaration(f,J(f.name,T,e.isIdentifier));case 265:return e.Debug.type(f),R.updateImportEqualsDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.moduleReference,T,e.isModuleReference));case 266:return e.Debug.type(f),R.updateImportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.importClause,T,e.isImportClause),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 293:return e.Debug.type(f),R.updateAssertClause(f,b(f.elements,T,e.isAssertEntry),f.multiLine);case 294:return e.Debug.type(f),R.updateAssertEntry(f,J(f.name,T,e.isAssertionKey),J(f.value,T,e.isExpressionNode));case 267:return e.Debug.type(f),R.updateImportClause(f,f.isTypeOnly,J(f.name,T,e.isIdentifier),J(f.namedBindings,T,e.isNamedImportBindings));case 268:return e.Debug.type(f),R.updateNamespaceImport(f,J(f.name,T,e.isIdentifier));case 274:return e.Debug.type(f),R.updateNamespaceExport(f,J(f.name,T,e.isIdentifier));case 269:return e.Debug.type(f),R.updateNamedImports(f,b(f.elements,T,e.isImportSpecifier));case 270:return e.Debug.type(f),R.updateImportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 271:return e.Debug.type(f),R.updateExportAssignment(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),J(f.expression,T,e.isExpression));case 272:return e.Debug.type(f),R.updateExportDeclaration(f,b(f.decorators,T,e.isDecorator),b(f.modifiers,T,e.isModifier),f.isTypeOnly,J(f.exportClause,T,e.isNamedExportBindings),J(f.moduleSpecifier,T,e.isExpression),J(f.assertClause,T,e.isAssertClause));case 273:return e.Debug.type(f),R.updateNamedExports(f,b(f.elements,T,e.isExportSpecifier));case 275:return e.Debug.type(f),R.updateExportSpecifier(f,f.isTypeOnly,J(f.propertyName,T,e.isIdentifier),J(f.name,T,e.isIdentifier));case 277:return e.Debug.type(f),R.updateExternalModuleReference(f,J(f.expression,T,e.isExpression));case 278:return e.Debug.type(f),R.updateJsxElement(f,J(f.openingElement,T,e.isJsxOpeningElement),b(f.children,T,e.isJsxChild),J(f.closingElement,T,e.isJsxClosingElement));case 279:return e.Debug.type(f),R.updateJsxSelfClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 280:return e.Debug.type(f),R.updateJsxOpeningElement(f,J(f.tagName,T,e.isJsxTagNameExpression),b(f.typeArguments,T,e.isTypeNode),J(f.attributes,T,e.isJsxAttributes));case 281:return e.Debug.type(f),R.updateJsxClosingElement(f,J(f.tagName,T,e.isJsxTagNameExpression));case 282:return e.Debug.type(f),R.updateJsxFragment(f,J(f.openingFragment,T,e.isJsxOpeningFragment),b(f.children,T,e.isJsxChild),J(f.closingFragment,T,e.isJsxClosingFragment));case 285:return e.Debug.type(f),R.updateJsxAttribute(f,J(f.name,T,e.isIdentifier),J(f.initializer,T,e.isStringLiteralOrJsxExpression));case 286:return e.Debug.type(f),R.updateJsxAttributes(f,b(f.properties,T,e.isJsxAttributeLike));case 287:return e.Debug.type(f),R.updateJsxSpreadAttribute(f,J(f.expression,T,e.isExpression));case 288:return e.Debug.type(f),R.updateJsxExpression(f,J(f.expression,T,e.isExpression));case 289:return e.Debug.type(f),R.updateCaseClause(f,J(f.expression,T,e.isExpression),b(f.statements,T,e.isStatement));case 290:return e.Debug.type(f),R.updateDefaultClause(f,b(f.statements,T,e.isStatement));case 291:return e.Debug.type(f),R.updateHeritageClause(f,b(f.types,T,e.isExpressionWithTypeArguments));case 292:return e.Debug.type(f),R.updateCatchClause(f,J(f.variableDeclaration,T,e.isVariableDeclaration),J(f.block,T,e.isBlock));case 296:return e.Debug.type(f),R.updatePropertyAssignment(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 297:return e.Debug.type(f),R.updateShorthandPropertyAssignment(f,J(f.name,T,e.isIdentifier),J(f.objectAssignmentInitializer,T,e.isExpression));case 298:return e.Debug.type(f),R.updateSpreadAssignment(f,J(f.expression,T,e.isExpression));case 299:return e.Debug.type(f),R.updateEnumMember(f,J(f.name,T,e.isPropertyName),J(f.initializer,T,e.isExpression));case 305:return e.Debug.type(f),R.updateSourceFile(f,w(f.statements,T,K));case 350:return e.Debug.type(f),R.updatePartiallyEmittedExpression(f,J(f.expression,T,e.isExpression));case 351:return e.Debug.type(f),R.updateCommaListExpression(f,b(f.elements,T,e.isExpression));default:return f}}}e.visitEachChild=G;function oe(f){return e.Debug.assert(f.length<=1,\"Too many nodes written to output.\"),e.singleOrUndefined(f)}})(ke||(ke={}));var ke;(function(e){function a(q,O,ve,ee,he){var F=he.extendedDiagnostics?e.performance.createTimer(\"Source Map\",\"beforeSourcemap\",\"afterSourcemap\"):e.performance.nullTimer,x=F.enter,X=F.exit,$=[],A=[],y=new e.Map,V,L=[],P,k=[],Y=\"\",U=0,j=0,H=0,I=0,l=0,d=0,D=!1,fe=0,g=0,ne=0,ue=0,We=0,Fe=0,Z=!1,Be=!1,ge=!1;return{getSources:function(){return $},addSource:Re,setSourceContent:ze,addName:Ee,addMapping:Ie,appendSourceMap:_e,toJSON:er,toString:function(){return JSON.stringify(er())}};function Re(Cr){x();var Ye=e.getRelativePathToDirectoryOrUrl(ee,Cr,q.getCurrentDirectory(),q.getCanonicalFileName,!0),Br=y.get(Ye);return Br===void 0&&(Br=A.length,A.push(Ye),$.push(Cr),y.set(Ye,Br)),X(),Br}function ze(Cr,Ye){if(x(),Ye!==null){for(V||(V=[]);V.lengthYe||ue===Ye&&We>Br)}function Ie(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,\"generatedLine cannot backtrack\"),e.Debug.assert(Ye>=0,\"generatedCharacter cannot be negative\"),e.Debug.assert(Br===void 0||Br>=0,\"sourceIndex cannot be negative\"),e.Debug.assert(Er===void 0||Er>=0,\"sourceLine cannot be negative\"),e.Debug.assert(Ne===void 0||Ne>=0,\"sourceCharacter cannot be negative\"),x(),(He(Cr,Ye)||rr(Br,Er,Ne))&&(ye(),fe=Cr,g=Ye,Be=!1,ge=!1,Z=!0),Br!==void 0&&Er!==void 0&&Ne!==void 0&&(ne=Br,ue=Er,We=Ne,Be=!0,n!==void 0&&(Fe=n,ge=!0)),X()}function _e(Cr,Ye,Br,Er,Ne,n){e.Debug.assert(Cr>=fe,\"generatedLine cannot backtrack\"),e.Debug.assert(Ye>=0,\"generatedCharacter cannot be negative\"),x();for(var lr=[],be,Ge=p(Br.mappings),ur=Ge.next();!ur.done;ur=Ge.next()){var yr=ur.value;if(n&&(yr.generatedLine>n.line||yr.generatedLine===n.line&&yr.generatedCharacter>n.character))break;if(!(Ne&&(yr.generatedLine=1024&&Ae()}function ye(){if(!(!Z||!we())){if(x(),U0&&(Y+=String.fromCharCode.apply(void 0,k),k.length=0)}function er(){return ye(),Ae(),{version:3,file:O,sourceRoot:ve,sources:A,names:L,mappings:Y,sourcesContent:V}}function ir(Cr){Cr<0?Cr=(-Cr<<1)+1:Cr=Cr<<1;do{var Ye=Cr&31;Cr=Cr>>5,Cr>0&&(Ye=Ye|32),de(oe(Ye))}while(Cr>0)}}e.createSourceMapGenerator=a;var C=/^\\/\\/[@#] source[M]appingURL=(.+)\\r?\\n?$/,w=/^\\s*(\\/\\/[@#] .*)?$/;function B(q,O){return{getLineCount:function(){return O.length},getLineText:function(ve){return q.substring(O[ve],O[ve+1])}}}e.getLineInfo=B;function E(q){for(var O=q.getLineCount()-1;O>=0;O--){var ve=q.getLineText(O),ee=C.exec(ve);if(ee)return e.trimStringEnd(ee[1]);if(!ve.match(w))break}}e.tryGetSourceMappingURL=E;function Q(q){return typeof q==\"string\"||q===null}function le(q){return q!==null&&typeof q==\"object\"&&q.version===3&&typeof q.file==\"string\"&&typeof q.mappings==\"string\"&&e.isArray(q.sources)&&e.every(q.sources,e.isString)&&(q.sourceRoot===void 0||q.sourceRoot===null||typeof q.sourceRoot==\"string\")&&(q.sourcesContent===void 0||q.sourcesContent===null||e.isArray(q.sourcesContent)&&e.every(q.sourcesContent,Q))&&(q.names===void 0||q.names===null||e.isArray(q.names)&&e.every(q.names,e.isString))}e.isRawSourceMap=le;function N(q){try{var O=JSON.parse(q);if(le(O))return O}catch{}}e.tryParseRawSourceMap=N;function p(q){var O=!1,ve=0,ee=0,he=0,F=0,x=0,X=0,$=0,A;return{get pos(){return ve},get error(){return A},get state(){return y(!0,!0)},next:function(){for(;!O&&ve=q.length)return L(\"Error in decoding base64VLQFormatDecode, past the mapping string\"),-1;var l=f(q.charCodeAt(ve));if(l===-1)return L(\"Invalid character in VLQ\"),-1;j=(l&32)!==0,I=I|(l&31)<>1:(I=I>>1,I=-I),I}}e.decodeMappings=p;function m(q,O){return q===O||q.generatedLine===O.generatedLine&&q.generatedCharacter===O.generatedCharacter&&q.sourceIndex===O.sourceIndex&&q.sourceLine===O.sourceLine&&q.sourceCharacter===O.sourceCharacter&&q.nameIndex===O.nameIndex}e.sameMapping=m;function G(q){return q.sourceIndex!==void 0&&q.sourceLine!==void 0&&q.sourceCharacter!==void 0}e.isSourceMapping=G;function oe(q){return q>=0&&q<26?65+q:q>=26&&q<52?97+q-26:q>=52&&q<62?48+q-52:q===62?43:q===63?47:e.Debug.fail(\"\".concat(q,\": not a base64 value\"))}function f(q){return q>=65&&q<=90?q-65:q>=97&&q<=122?q-97+26:q>=48&&q<=57?q-48+52:q===43?62:q===47?63:-1}function T(q){return q.sourceIndex!==void 0&&q.sourcePosition!==void 0}function K(q,O){return q.generatedPosition===O.generatedPosition&&q.sourceIndex===O.sourceIndex&&q.sourcePosition===O.sourcePosition}function b(q,O){return e.Debug.assert(q.sourceIndex===O.sourceIndex),e.compareValues(q.sourcePosition,O.sourcePosition)}function se(q,O){return e.compareValues(q.generatedPosition,O.generatedPosition)}function J(q){return q.sourcePosition}function ie(q){return q.generatedPosition}function R(q,O,ve){var ee=e.getDirectoryPath(ve),he=O.sourceRoot?e.getNormalizedAbsolutePath(O.sourceRoot,ee):ee,F=e.getNormalizedAbsolutePath(O.file,ee),x=q.getSourceFileLike(F),X=O.sources.map(function(H){return e.getNormalizedAbsolutePath(H,he)}),$=new e.Map(X.map(function(H,I){return[q.getCanonicalFileName(H),I]})),A,y,V;return{getSourcePosition:j,getGeneratedPosition:U};function L(H){var I=x!==void 0?e.getPositionOfLineAndCharacter(x,H.generatedLine,H.generatedCharacter,!0):-1,l,d;if(G(H)){var D=q.getSourceFileLike(X[H.sourceIndex]);l=O.sources[H.sourceIndex],d=D!==void 0?e.getPositionOfLineAndCharacter(D,H.sourceLine,H.sourceCharacter,!0):-1}return{generatedPosition:I,source:l,sourceIndex:H.sourceIndex,sourcePosition:d,nameIndex:H.nameIndex}}function P(){if(A===void 0){var H=p(O.mappings),I=e.arrayFrom(H,L);H.error!==void 0?(q.log&&q.log(\"Encountered error while decoding sourcemap: \".concat(H.error)),A=e.emptyArray):A=I}return A}function k(H){if(V===void 0){for(var I=[],l=0,d=P();l0&&F!==he.elements.length||!!(he.elements.length-F)&&e.isDefaultImport(ee)}e.getImportNeedsImportStarHelper=Q;function le(ee){return!Q(ee)&&(e.isDefaultImport(ee)||!!ee.importClause&&e.isNamedImports(ee.importClause.namedBindings)&&C(ee.importClause.namedBindings))}e.getImportNeedsImportDefaultHelper=le;function N(ee,he,F,x){for(var X=[],$=e.createMultiMap(),A=[],y=new e.Map,V,L=!1,P,k=!1,Y=!1,U=!1,j=0,H=he.statements;j=64&&ee<=78}e.isCompoundAssignment=f;function T(ee){switch(ee){case 64:return 39;case 65:return 40;case 66:return 41;case 67:return 42;case 68:return 43;case 69:return 44;case 70:return 47;case 71:return 48;case 72:return 49;case 73:return 50;case 74:return 51;case 78:return 52;case 75:return 56;case 76:return 55;case 77:return 60}}e.getNonAssignmentOperatorForCompoundAssignment=T;function K(ee){if(!!e.isExpressionStatement(ee)){var he=e.skipParentheses(ee.expression);return e.isSuperCall(he)?he:void 0}}e.getSuperCallFromStatement=K;function b(ee,he){for(var F=he;F=1&&!(V.transformFlags&49152)&&!(e.getTargetOfBindingOrAssignmentElement(V).transformFlags&49152)&&!e.isComputedPropertyName(L))$=e.append($,e.visitNode(V,q.visitor));else{$&&(q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve),$=void 0);var P=f(q,ee,L);e.isComputedPropertyName(L)&&(A=e.append(A,P.argumentExpression)),N(q,V,P,V)}}}$&&q.emitBindingOrAssignment(q.createObjectBindingOrAssignmentPattern($),ee,he,ve)}function m(q,O,ve,ee,he){var F=e.getElementsOfBindingOrAssignmentPattern(ve),x=F.length;if(q.level<1&&q.downlevelIteration)ee=T(q,e.setTextRange(q.context.getEmitHelperFactory().createReadHelper(ee,x>0&&e.getRestIndicatorOfBindingOrAssignmentElement(F[x-1])?void 0:x),he),!1,he);else if(x!==1&&(q.level<1||x===0)||e.every(F,e.isOmittedExpression)){var X=!e.isDeclarationBindingElement(O)||x!==0;ee=T(q,ee,X,he)}for(var $,A,y=0;y=1)if(V.transformFlags&32768||q.hasTransformedPriorElement&&!G(V)){q.hasTransformedPriorElement=!0;var L=q.context.factory.createTempVariable(void 0);q.hoistTempVariables&&q.context.hoistVariableDeclaration(L),A=e.append(A,[L,V]),$=e.append($,q.createArrayBindingOrAssignmentElement(L))}else $=e.append($,V);else{if(e.isOmittedExpression(V))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(V)){if(y===x-1){var P=q.context.factory.createArraySliceCall(ee,y);N(q,V,P,V)}}else{var P=q.context.factory.createElementAccessExpression(ee,y);N(q,V,P,V)}}}if($&&q.emitBindingOrAssignment(q.createArrayBindingOrAssignmentPattern($),ee,he,ve),A)for(var k=0,Y=A;k=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(S);return Q.updateSourceFile(S,e.visitLexicalEnvironment(S.statements,Y,E,0,Ce))}function ne(S,Ce){var qe=0;e.some(Ce)&&(qe|=1);var br=e.getEffectiveBaseTypeNode(S);return br&&e.skipOuterExpressions(br.expression).kind!==104&&(qe|=64),e.classOrConstructorParameterIsDecorated(S)&&(qe|=2),e.childIsDecorated(S)&&(qe|=4),ai(S)?qe|=8:Ba(S)?qe|=32:ka(S)&&(qe|=16),K<=1&&qe&7&&(qe|=128),qe}function ue(S){return!!(S.transformFlags&4096)}function We(S){return e.some(S.decorators)||e.some(S.typeParameters)||e.some(S.heritageClauses,ue)||e.some(S.members,ue)}function Fe(S){if(!We(S)&&!(R&&e.hasSyntacticModifier(S,1)))return e.visitEachChild(S,P,E);var Ce=e.getProperties(S,!0,!0),qe=ne(S,Ce);qe&128&&E.startLexicalEnvironment();var br=S.name||(qe&5?Q.getGeneratedNameForNode(S):void 0),Zr=qe&2?Be(S,br):Z(S,br,qe),Si=[Zr];if(ir(Si,S,!1),ir(Si,S,!0),Br(Si,S),qe&128){var Pi=e.createTokenRange(e.skipTrivia(ie.text,S.members.end),19),Qi=Q.getInternalName(S),Ct=Q.createPartiallyEmittedExpression(Qi);e.setTextRangeEnd(Ct,Pi.end),e.setEmitFlags(Ct,1536);var sa=Q.createReturnStatement(Ct);e.setTextRangePos(sa,Pi.pos),e.setEmitFlags(sa,1920),Si.push(sa),e.insertStatementsAfterStandardPrologue(Si,E.endLexicalEnvironment());var en=Q.createImmediatelyInvokedArrowFunction(Si);e.setEmitFlags(en,33554432);var Wa=Q.createVariableStatement(void 0,Q.createVariableDeclarationList([Q.createVariableDeclaration(Q.getLocalName(S,!1,!1),void 0,void 0,en)]));e.setOriginalNode(Wa,S),e.setCommentRange(Wa,S),e.setSourceMapRange(Wa,e.moveRangePastDecorators(S)),e.startOnNewLine(Wa),Si=[Wa]}return qe&8?Cn(Si,S):(qe&128||qe&2)&&(qe&32?Si.push(Q.createExportDefault(Q.getLocalName(S,!1,!0))):qe&16&&Si.push(Q.createExternalModuleExport(Q.getLocalName(S,!1,!0)))),Si.length>1&&(Si.push(Q.createEndOfDeclarationMarker(S)),e.setEmitFlags(Zr,e.getEmitFlags(Zr)|4194304)),e.singleOrMany(Si)}function Z(S,Ce,qe){var br=qe&128?void 0:e.visitNodes(S.modifiers,D,e.isModifier),Zr=Q.createClassDeclaration(void 0,br,Ce,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S)),Si=e.getEmitFlags(S);return qe&1&&(Si|=32),e.setTextRange(Zr,S),e.setOriginalNode(Zr,S),e.setEmitFlags(Zr,Si),Zr}function Be(S,Ce){var qe=e.moveRangePastDecorators(S),br=eo(S),Zr=K<=2?Q.getInternalName(S,!1,!0):Q.getLocalName(S,!1,!0),Si=e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Pi=Re(S),Qi=Q.createClassExpression(void 0,void 0,Ce,void 0,Si,Pi);e.setOriginalNode(Qi,S),e.setTextRange(Qi,qe);var Ct=Q.createVariableStatement(void 0,Q.createVariableDeclarationList([Q.createVariableDeclaration(Zr,void 0,void 0,br?Q.createAssignment(br,Qi):Qi)],1));return e.setOriginalNode(Ct,S),e.setTextRange(Ct,qe),e.setCommentRange(Ct,S),Ct}function ge(S){if(!We(S))return e.visitEachChild(S,P,E);var Ce=Q.createClassExpression(void 0,void 0,S.name,void 0,e.visitNodes(S.heritageClauses,P,e.isHeritageClause),Re(S));return e.setOriginalNode(Ce,S),e.setTextRange(Ce,S),Ce}function Re(S){var Ce=[],qe=e.getFirstConstructorWithBody(S),br=qe&&e.filter(qe.parameters,function(Qi){return e.isParameterPropertyDeclaration(Qi,qe)});if(br)for(var Zr=0,Si=br;Zr0&&e.parameterIsThisKeyword(qe[0]),Zr=br?1:0,Si=br?qe.length-1:qe.length,Pi=0;Pi0?Ce.kind===167?Q.createVoidZero():Q.createNull():void 0,Qi=le().createDecorateHelper(br,Zr,Si,Pi);return e.setTextRange(Qi,e.moveRangePastDecorators(Ce)),e.setEmitFlags(Qi,1536),Qi}}function Br(S,Ce){var qe=Er(Ce);qe&&S.push(e.setOriginalNode(Q.createExpressionStatement(qe),Ce))}function Er(S){var Ce=_e(S),qe=er(S,S,Ce);if(!!qe){var br=x&&x[e.getOriginalNodeId(S)],Zr=K<=2?Q.getInternalName(S,!1,!0):Q.getLocalName(S,!1,!0),Si=le().createDecorateHelper(qe,Zr),Pi=Q.createAssignment(Zr,br?Q.createAssignment(br,Si):Si);return e.setEmitFlags(Pi,1536),e.setSourceMapRange(Pi,e.moveRangePastDecorators(S)),Pi}}function Ne(S){return e.visitNode(S.expression,P,e.isExpression)}function n(S,Ce){var qe;if(S){qe=[];for(var br=0,Zr=S;br=0&&e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Zr,Si+1-Zr));var Pi=e.mapDefined(qe,Sr);Si>=0?e.addRange(br,Pi):br=Ve(Ve(Ve([],br.slice(0,Zr),!0),Pi,!0),br.slice(Zr),!0),e.addRange(br,e.visitNodes(S.statements,P,e.isStatement,Si+1+Zr)),br=Q.mergeLexicalEnvironment(br,m());var Qi=Q.createBlock(e.setTextRange(Q.createNodeArray(br),S.statements),!0);return e.setTextRange(Qi,S),e.setOriginalNode(Qi,S),Qi}function Sr(S){var Ce=S.name;if(!!e.isIdentifier(Ce)){var qe=e.setParent(e.setTextRange(Q.cloneNode(Ce),Ce),Ce.parent);e.setEmitFlags(qe,1584);var br=e.setParent(e.setTextRange(Q.cloneNode(Ce),Ce),Ce.parent);return e.setEmitFlags(br,1536),e.startOnNewLine(e.removeAllComments(e.setTextRange(e.setOriginalNode(Q.createExpressionStatement(Q.createAssignment(e.setTextRange(Q.createPropertyAccessExpression(Q.createThis(),qe),S.name),br)),S),e.moveRangePos(S,-1))))}}function zr(S){if(!!Xe(S)){var Ce=Q.updateMethodDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,_r(S),void 0,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function Wr(S){return!(e.nodeIsMissing(S.body)&&e.hasSyntacticModifier(S,128))}function Je(S){if(!!Wr(S)){var Ce=Q.updateGetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function xe(S){if(!!Wr(S)){var Ce=Q.updateSetAccessorDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),_r(S),e.visitParameterList(S.parameters,P,E),e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce!==S&&(e.setCommentRange(Ce,S),e.setSourceMapRange(Ce,e.moveRangePastDecorators(S))),Ce}}function vr(S){if(!Xe(S))return Q.createNotEmittedStatement(S);var Ce=Q.updateFunctionDeclaration(S,void 0,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));if(ai(S)){var qe=[Ce];return Cn(qe,S),qe}return Ce}function mr(S){if(!Xe(S))return Q.createOmittedExpression();var Ce=Q.updateFunctionExpression(S,e.visitNodes(S.modifiers,D,e.isModifier),S.asteriskToken,S.name,void 0,e.visitParameterList(S.parameters,P,E),void 0,e.visitFunctionBody(S.body,P,E)||Q.createBlock([]));return Ce}function Ar(S){var Ce=Q.updateArrowFunction(S,e.visitNodes(S.modifiers,D,e.isModifier),void 0,e.visitParameterList(S.parameters,P,E),void 0,S.equalsGreaterThanToken,e.visitFunctionBody(S.body,P,E));return Ce}function Oe(S){if(!e.parameterIsThisKeyword(S)){var Ce=Q.updateParameterDeclaration(S,void 0,void 0,S.dotDotDotToken,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return Ce!==S&&(e.setCommentRange(Ce,S),e.setTextRange(Ce,e.moveRangePastModifiers(S)),e.setSourceMapRange(Ce,e.moveRangePastModifiers(S)),e.setEmitFlags(Ce.name,32)),Ce}}function nr(S){if(ai(S)){var Ce=e.getInitializedVariables(S.declarationList);return Ce.length===0?void 0:e.setTextRange(Q.createExpressionStatement(Q.inlineExpressions(e.map(Ce,Mr))),S)}else return e.visitEachChild(S,P,E)}function Mr(S){var Ce=S.name;return e.isBindingPattern(Ce)?e.flattenDestructuringAssignment(S,P,E,0,!1,kn):e.setTextRange(Q.createAssignment(xn(Ce),e.visitNode(S.initializer,P,e.isExpression)),S)}function Pe(S){var Ce=Q.updateVariableDeclaration(S,e.visitNode(S.name,P,e.isBindingName),void 0,void 0,e.visitNode(S.initializer,P,e.isExpression));return S.type&&e.setTypeNode(Ce.name,S.type),Ce}function Ue(S){var Ce=e.skipOuterExpressions(S.expression,-7);if(e.isAssertionExpression(Ce)){var qe=e.visitNode(S.expression,P,e.isExpression);return Q.createPartiallyEmittedExpression(qe,S)}return e.visitEachChild(S,P,E)}function fr(S){var Ce=e.visitNode(S.expression,P,e.isExpression);return Q.createPartiallyEmittedExpression(Ce,S)}function De(S){var Ce=e.visitNode(S.expression,P,e.isLeftHandSideExpression);return Q.createPartiallyEmittedExpression(Ce,S)}function gr(S){return Q.updateCallExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Vr(S){return Q.updateNewExpression(S,e.visitNode(S.expression,P,e.isExpression),void 0,e.visitNodes(S.arguments,P,e.isExpression))}function Tr(S){return Q.updateTaggedTemplateExpression(S,e.visitNode(S.tag,P,e.isExpression),void 0,e.visitNode(S.template,P,e.isExpression))}function vi(S){return Q.updateJsxSelfClosingElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Ui(S){return Q.updateJsxOpeningElement(S,e.visitNode(S.tagName,P,e.isJsxTagNameExpression),void 0,e.visitNode(S.attributes,P,e.isJsxAttributes))}function Yi(S){return!e.isEnumConst(S)||e.shouldPreserveConstEnums(f)}function Wi(S){if(!Yi(S))return Q.createNotEmittedStatement(S);var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?Q.getExternalModuleOrNamespaceExportName(q,S,!1,!0):Q.getLocalName(S,!1,!0),Qi=Q.createLogicalOr(Pi,Q.createAssignment(Pi,Q.createObjectLiteralExpression()));if(xt(S)){var Ct=Q.getLocalName(S,!1,!0);Qi=Q.createAssignment(Ct,Qi)}var sa=Q.createExpressionStatement(Q.createCallExpression(Q.createFunctionExpression(void 0,void 0,void 0,void 0,[Q.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,ct(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(Q.createEndOfDeclarationMarker(S)),Ce}function ct(S,Ce){var qe=q;q=Ce;var br=[];N();var Zr=e.map(S.members,Li);return e.insertStatementsAfterStandardPrologue(br,m()),e.addRange(br,Zr),q=qe,Q.createBlock(e.setTextRange(Q.createNodeArray(br),S.members),!0)}function Li(S){var Ce=Zt(S,!1),qe=nt(S),br=Q.createAssignment(Q.createElementAccessExpression(q,Ce),qe),Zr=qe.kind===10?br:Q.createAssignment(Q.createElementAccessExpression(q,br),Ce);return e.setTextRange(Q.createExpressionStatement(e.setTextRange(Zr,S)),S)}function nt(S){var Ce=oe.getConstantValue(S);return Ce!==void 0?typeof Ce==\"string\"?Q.createStringLiteral(Ce):Q.createNumericLiteral(Ce):(bo(),S.initializer?e.visitNode(S.initializer,P,e.isExpression):Q.createVoidZero())}function Mt(S){var Ce=e.getParseTreeNode(S,e.isModuleDeclaration);return Ce?e.isInstantiatedModule(Ce,e.shouldPreserveConstEnums(f)):!0}function xt(S){return ai(S)||Dn(S)&&b!==e.ModuleKind.ES2015&&b!==e.ModuleKind.ES2020&&b!==e.ModuleKind.ES2022&&b!==e.ModuleKind.ESNext&&b!==e.ModuleKind.System}function ut(S){ee||(ee=new e.Map);var Ce=Rt(S);ee.has(Ce)||ee.set(Ce,S)}function Dt(S){if(ee){var Ce=Rt(S);return ee.get(Ce)===S}return!0}function Rt(S){return e.Debug.assertNode(S.name,e.isIdentifier),S.name.escapedText}function Ii(S,Ce){var qe=Q.createVariableStatement(e.visitNodes(Ce.modifiers,D,e.isModifier),Q.createVariableDeclarationList([Q.createVariableDeclaration(Q.getLocalName(Ce,!1,!0))],O.kind===305?0:1));if(e.setOriginalNode(qe,Ce),ut(Ce),Dt(Ce))return Ce.kind===260?e.setSourceMapRange(qe.declarationList,Ce):e.setSourceMapRange(qe,Ce),e.setCommentRange(qe,Ce),e.addEmitFlags(qe,4195328),S.push(qe),!0;var br=Q.createMergeDeclarationMarker(qe);return e.setEmitFlags(br,4195840),S.push(br),!1}function Ki(S){if(!Mt(S))return Q.createNotEmittedStatement(S);e.Debug.assertNode(S.name,e.isIdentifier,\"A TypeScript namespace should have an Identifier name.\"),En();var Ce=[],qe=2,br=Ii(Ce,S);br&&(b!==e.ModuleKind.System||O!==ie)&&(qe|=512);var Zr=Kn(S),Si=Pn(S),Pi=e.hasSyntacticModifier(S,1)?Q.getExternalModuleOrNamespaceExportName(q,S,!1,!0):Q.getLocalName(S,!1,!0),Qi=Q.createLogicalOr(Pi,Q.createAssignment(Pi,Q.createObjectLiteralExpression()));if(xt(S)){var Ct=Q.getLocalName(S,!1,!0);Qi=Q.createAssignment(Ct,Qi)}var sa=Q.createExpressionStatement(Q.createCallExpression(Q.createFunctionExpression(void 0,void 0,void 0,void 0,[Q.createParameterDeclaration(void 0,void 0,void 0,Zr)],void 0,Fi(S,Si)),void 0,[Qi]));return e.setOriginalNode(sa,S),br&&(e.setSyntheticLeadingComments(sa,void 0),e.setSyntheticTrailingComments(sa,void 0)),e.setTextRange(sa,S),e.addEmitFlags(sa,qe),Ce.push(sa),Ce.push(Q.createEndOfDeclarationMarker(S)),Ce}function Fi(S,Ce){var qe=q,br=R,Zr=ee;q=Ce,R=S,ee=void 0;var Si=[];N();var Pi,Qi;if(S.body)if(S.body.kind===262)V(S.body,function(Wa){return e.addRange(Si,e.visitNodes(Wa.statements,H,e.isStatement))}),Pi=S.body.statements,Qi=S.body;else{var Ct=Ki(S.body);Ct&&(e.isArray(Ct)?e.addRange(Si,Ct):Si.push(Ct));var sa=ui(S).body;Pi=e.moveRangePos(sa.statements,-1)}e.insertStatementsAfterStandardPrologue(Si,m()),q=qe,R=br,ee=Zr;var en=Q.createBlock(e.setTextRange(Q.createNodeArray(Si),Pi),!0);return e.setTextRange(en,Qi),(!S.body||S.body.kind!==262)&&e.setEmitFlags(en,e.getEmitFlags(en)|1536),en}function ui(S){if(S.body.kind===261){var Ce=ui(S.body);return Ce||S.body}}function Bt(S){if(!S.importClause)return S;if(!S.importClause.isTypeOnly){var Ce=e.visitNode(S.importClause,wt,e.isImportClause);return Ce||f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2?Q.updateImportDeclaration(S,void 0,void 0,Ce,S.moduleSpecifier,S.assertClause):void 0}}function wt(S){e.Debug.assert(!S.isTypeOnly);var Ce=Gr(S)?S.name:void 0,qe=e.visitNode(S.namedBindings,na,e.isNamedImportBindings);return Ce||qe?Q.updateImportClause(S,!1,Ce,qe):void 0}function na(S){if(S.kind===268)return Gr(S)?S:void 0;var Ce=f.preserveValueImports&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNodes(S.elements,Ai,e.isImportSpecifier);return Ce||e.some(qe)?Q.updateNamedImports(S,qe):void 0}function Ai(S){return!S.isTypeOnly&&Gr(S)?S:void 0}function Oi(S){return oe.isValueAliasDeclaration(S)?e.visitEachChild(S,P,E):void 0}function ji(S){if(!S.isTypeOnly){if(!S.exportClause||e.isNamespaceExport(S.exportClause))return S;var Ce=!!S.moduleSpecifier&&(f.importsNotUsedAsValues===1||f.importsNotUsedAsValues===2),qe=e.visitNode(S.exportClause,function(br){return At(br,Ce)},e.isNamedExportBindings);return qe?Q.updateExportDeclaration(S,void 0,void 0,S.isTypeOnly,qe,S.moduleSpecifier,S.assertClause):void 0}}function Vi(S,Ce){var qe=e.visitNodes(S.elements,ba,e.isExportSpecifier);return Ce||e.some(qe)?Q.updateNamedExports(S,qe):void 0}function at(S){return Q.updateNamespaceExport(S,e.visitNode(S.name,P,e.isIdentifier))}function At(S,Ce){return e.isNamespaceExport(S)?at(S):Vi(S,Ce)}function ba(S){return!S.isTypeOnly&&oe.isValueAliasDeclaration(S)?S:void 0}function $a(S){return Gr(S)||!e.isExternalModule(ie)&&oe.isTopLevelValueImportEqualsWithEntityName(S)}function Qa(S){if(!S.isTypeOnly){if(e.isExternalModuleImportEqualsDeclaration(S)){var Ce=Gr(S);return!Ce&&f.importsNotUsedAsValues===1?e.setOriginalNode(e.setTextRange(Q.createImportDeclaration(void 0,void 0,void 0,S.moduleReference.expression,void 0),S),S):Ce?e.visitEachChild(S,P,E):void 0}if(!!$a(S)){var qe=e.createExpressionFromEntityName(Q,S.moduleReference);return e.setEmitFlags(qe,3584),ka(S)||!ai(S)?e.setOriginalNode(e.setTextRange(Q.createVariableStatement(e.visitNodes(S.modifiers,D,e.isModifier),Q.createVariableDeclarationList([e.setOriginalNode(Q.createVariableDeclaration(S.name,void 0,void 0,qe),S)])),S),S):e.setOriginalNode(Bi(S.name,qe,S),S)}}}function ai(S){return R!==void 0&&e.hasSyntacticModifier(S,1)}function Dn(S){return R===void 0&&e.hasSyntacticModifier(S,1)}function ka(S){return Dn(S)&&!e.hasSyntacticModifier(S,512)}function Ba(S){return Dn(S)&&e.hasSyntacticModifier(S,512)}function pn(S){return Q.createExpressionStatement(S)}function Cn(S,Ce){var qe=Q.createAssignment(Q.getExternalModuleOrNamespaceExportName(q,Ce,!1,!0),Q.getLocalName(Ce));e.setSourceMapRange(qe,e.createRange(Ce.name?Ce.name.pos:Ce.pos,Ce.end));var br=Q.createExpressionStatement(qe);e.setSourceMapRange(br,e.createRange(-1,Ce.end)),S.push(br)}function Bi(S,Ce,qe){return e.setTextRange(Q.createExpressionStatement(Q.createAssignment(Q.getNamespaceMemberName(q,S,!1,!0),Ce)),qe)}function kn(S,Ce,qe){return e.setTextRange(Q.createAssignment(xn(S),Ce),qe)}function xn(S){return Q.getNamespaceMemberName(q,S,!1,!0)}function Kn(S){var Ce=Q.getGeneratedNameForNode(S);return e.setSourceMapRange(Ce,S.name),Ce}function Pn(S){return Q.getGeneratedNameForNode(S)}function eo(S){if(oe.getNodeCheckFlags(S)&16777216){Ro();var Ce=Q.createUniqueName(S.name&&!e.isGeneratedIdentifier(S.name)?e.idText(S.name):\"default\");return x[e.getOriginalNodeId(S)]=Ce,G(Ce),Ce}}function Rn(S){return Q.createPropertyAccessExpression(Q.getDeclarationName(S),\"prototype\")}function Da(S,Ce){return e.isStatic(Ce)?Q.getDeclarationName(S):Rn(S)}function bo(){(F&8)===0&&(F|=8,E.enableSubstitution(79))}function Ro(){(F&1)===0&&(F|=1,E.enableSubstitution(79),x=[])}function En(){(F&2)===0&&(F|=2,E.enableSubstitution(79),E.enableSubstitution(297),E.enableEmitNotification(261))}function Wn(S){return e.getOriginalNode(S).kind===261}function to(S){return e.getOriginalNode(S).kind===260}function Co(S,Ce,qe){var br=X,Zr=ie;e.isSourceFile(Ce)&&(ie=Ce),F&2&&Wn(Ce)&&(X|=2),F&8&&to(Ce)&&(X|=8),se(S,Ce,qe),X=br,ie=Zr}function Ko(S,Ce){return Ce=J(S,Ce),S===1?no(Ce):e.isShorthandPropertyAssignment(Ce)?Oo(Ce):Ce}function Oo(S){if(F&2){var Ce=S.name,qe=xi(Ce);if(qe){if(S.objectAssignmentInitializer){var br=Q.createAssignment(qe,S.objectAssignmentInitializer);return e.setTextRange(Q.createPropertyAssignment(Ce,br),S)}return e.setTextRange(Q.createPropertyAssignment(Ce,qe),S)}}return S}function no(S){switch(S.kind){case 79:return $o(S);case 206:return St(S);case 207:return pa(S)}return S}function $o(S){return Pr(S)||xi(S)||S}function Pr(S){if(F&1&&oe.getNodeCheckFlags(S)&33554432){var Ce=oe.getReferencedValueDeclaration(S);if(Ce){var qe=x[Ce.id];if(qe){var br=Q.cloneNode(qe);return e.setSourceMapRange(br,S),e.setCommentRange(br,S),br}}}}function xi(S){if(F&X&&!e.isGeneratedIdentifier(S)&&!e.isLocalName(S)){var Ce=oe.getReferencedExportContainer(S,!1);if(Ce&&Ce.kind!==305){var qe=X&2&&Ce.kind===261||X&8&&Ce.kind===260;if(qe)return e.setTextRange(Q.createPropertyAccessExpression(Q.getGeneratedNameForNode(Ce),S),S)}}}function St(S){return Jn(S)}function pa(S){return Jn(S)}function dn(S){return S.replace(/\\*\\//g,\"*_/\")}function Jn(S){var Ce=Qe(S);if(Ce!==void 0){e.setConstantValue(S,Ce);var qe=typeof Ce==\"string\"?Q.createStringLiteral(Ce):Q.createNumericLiteral(Ce);if(!f.removeComments){var br=e.getOriginalNode(S,e.isAccessExpression);e.addSyntheticTrailingComment(qe,3,\" \".concat(dn(e.getTextOfNode(br)),\" \"))}return qe}return S}function Qe(S){if(!f.isolatedModules)return e.isPropertyAccessExpression(S)||e.isElementAccessExpression(S)?oe.getConstantValue(S):void 0}function Gr(S){return f.preserveValueImports?oe.isValueAliasDeclaration(S):oe.isReferencedAliasDeclaration(S)}}e.transformTypeScript=B})(ke||(ke={}));var ke;(function(e){var a;(function(p){p[p.ClassAliases=1]=\"ClassAliases\",p[p.ClassStaticThisOrSuperReference=2]=\"ClassStaticThisOrSuperReference\"})(a||(a={}));var C;(function(p){p.Field=\"f\",p.Method=\"m\",p.Accessor=\"a\"})(C=e.PrivateIdentifierKind||(e.PrivateIdentifierKind={}));var w;(function(p){p[p.None=0]=\"None\",p[p.ClassWasDecorated=1]=\"ClassWasDecorated\",p[p.NeedsClassConstructorReference=2]=\"NeedsClassConstructorReference\",p[p.NeedsClassSuperReference=4]=\"NeedsClassSuperReference\",p[p.NeedsSubstitutionForThisInClassStaticField=8]=\"NeedsSubstitutionForThisInClassStaticField\"})(w||(w={}));function B(p){var m=p.factory,G=p.hoistVariableDeclaration,oe=p.endLexicalEnvironment,f=p.startLexicalEnvironment,T=p.resumeLexicalEnvironment,K=p.addBlockScopedVariable,b=p.getEmitResolver(),se=p.getCompilerOptions(),J=e.getEmitScriptTarget(se),ie=e.getUseDefineForClassFields(se),R=J<9,q=J<9,O=q&&J>=2,ve=p.onSubstituteNode;p.onSubstituteNode=qr;var ee=p.onEmitNode;p.onEmitNode=or;var he,F,x,X,$=[],A=new e.Map,y,V,L;return e.chainBundle(p,P);function P(Je){var xe=p.getCompilerOptions();if(Je.isDeclarationFile||ie&&e.getEmitScriptTarget(xe)>=9)return Je;var vr=e.visitEachChild(Je,U,p);return e.addEmitHelpers(vr,p.readEmitHelpers()),vr}function k(Je,xe){if(Je.transformFlags&8388608)switch(Je.kind){case 226:case 257:return de(Je);case 167:return ue(Je);case 237:return D(Je);case 80:return I(Je);case 170:return Br(Je)}if(Je.transformFlags&8388608||Je.transformFlags&33554432&&O&&L&&y)switch(Je.kind){case 219:case 220:return ge(Je,xe);case 221:return _e(Je,xe);case 208:return He(Je);case 210:return rr(Je);case 206:return Z(Je);case 207:return Be(Je);case 238:return ze(Je);case 242:return Re(Je);case 256:case 213:case 171:case 169:case 172:case 173:{var vr=L;L=void 0;var mr=e.visitEachChild(Je,U,p);return L=vr,mr}}return e.visitEachChild(Je,U,p)}function Y(Je){return k(Je,!0)}function U(Je){return k(Je,!1)}function j(Je){switch(Je.kind){case 291:return e.visitEachChild(Je,j,p);case 228:return ir(Je)}return U(Je)}function H(Je){switch(Je.kind){case 205:case 204:return Wr(Je);default:return U(Je)}}function I(Je){return!R||e.isStatement(Je.parent)?Je:e.setOriginalNode(m.createIdentifier(\"\"),Je)}function l(Je){if(!R)return Je;var xe=Je.left;e.Debug.assertNode(xe,e.isPrivateIdentifier),e.Debug.assert(Je.operatorToken.kind===101);var vr=ti(xe);if(vr){var mr=e.visitNode(Je.right,U,e.isExpression);return e.setOriginalNode(p.getEmitHelperFactory().createClassPrivateFieldInHelper(vr.brandCheckIdentifier,mr),Je)}return e.visitEachChild(Je,U,p)}function d(Je){switch(Je.kind){case 171:return;case 172:case 173:case 169:return g(Je);case 167:return ue(Je);case 162:return fe(Je);case 234:return Je;default:return U(Je)}}function D(Je){var xe=X;X=[];var vr=e.visitEachChild(Je,U,p),mr=e.some(X)?Ve([vr],X,!0):vr;return X=xe,mr}function fe(Je){var xe=e.visitEachChild(Je,U,p);if(e.some(x)){var vr=x;vr.push(xe.expression),x=[],xe=m.updateComputedPropertyName(xe,m.inlineExpressions(vr))}return xe}function g(Je){if(e.Debug.assert(!e.some(Je.decorators)),!R||!e.isPrivateIdentifier(Je.name))return e.visitEachChild(Je,d,p);var xe=ti(Je.name);if(e.Debug.assert(xe,\"Undeclared private name for property declaration.\"),!xe.isValid)return Je;var vr=ne(Je);vr&&pi().push(m.createAssignment(vr,m.createFunctionExpression(e.filter(Je.modifiers,function(mr){return!e.isStaticModifier(mr)}),Je.asteriskToken,vr,void 0,e.visitParameterList(Je.parameters,d,p),void 0,e.visitFunctionBody(Je.body,d,p))))}function ne(Je){e.Debug.assert(e.isPrivateIdentifier(Je.name));var xe=ti(Je.name);if(e.Debug.assert(xe,\"Undeclared private name for property declaration.\"),xe.kind===\"m\")return xe.methodName;if(xe.kind===\"a\"){if(e.isGetAccessor(Je))return xe.getterName;if(e.isSetAccessor(Je))return xe.setterName}}function ue(Je){if(e.Debug.assert(!e.some(Je.decorators)),e.isPrivateIdentifier(Je.name)){if(!R)return e.isStatic(Je)?e.visitEachChild(Je,U,p):m.updatePropertyDeclaration(Je,void 0,e.visitNodes(Je.modifiers,U,e.isModifier),Je.name,void 0,void 0,void 0);var xe=ti(Je.name);if(e.Debug.assert(xe,\"Undeclared private name for property declaration.\"),!xe.isValid)return Je}var vr=et(Je.name,!!Je.initializer||ie);if(vr&&!e.isSimpleInlineableExpression(vr)&&pi().push(vr),e.isStatic(Je)&&!R&&!ie){var mr=ur(Je,m.createThis());if(mr){var Ar=m.createClassStaticBlockDeclaration(void 0,void 0,m.createBlock([mr]));return e.setOriginalNode(Ar,Je),e.setCommentRange(Ar,Je),e.setCommentRange(mr,{pos:-1,end:-1}),e.setSyntheticLeadingComments(mr,void 0),e.setSyntheticTrailingComments(mr,void 0),Ar}}}function We(Je,xe){return Fe(Je,e.visitNode(xe,U,e.isExpression))}function Fe(Je,xe){switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case\"a\":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.getterName);case\"m\":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.methodName);case\"f\":return p.getEmitHelperFactory().createClassPrivateFieldGetHelper(xe,Je.brandCheckIdentifier,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,\"Unknown private element type\")}}function Z(Je){if(R&&e.isPrivateIdentifier(Je.name)){var xe=ti(Je.name);if(xe)return e.setTextRange(e.setOriginalNode(We(xe,Je.expression),Je),Je)}if(O&&e.isSuperProperty(Je)&&e.isIdentifier(Je.name)&&L&&y){var vr=y.classConstructor,mr=y.superClassReference,Ar=y.facts;if(Ar&1)return pe(Je);if(vr&&mr){var Oe=m.createReflectGetCall(mr,m.createStringLiteralFromNode(Je.name),vr);return e.setOriginalNode(Oe,Je.expression),e.setTextRange(Oe,Je.expression),Oe}}return e.visitEachChild(Je,U,p)}function Be(Je){if(O&&e.isSuperProperty(Je)&&L&&y){var xe=y.classConstructor,vr=y.superClassReference,mr=y.facts;if(mr&1)return pe(Je);if(xe&&vr){var Ar=m.createReflectGetCall(vr,e.visitNode(Je.argumentExpression,U,e.isExpression),xe);return e.setOriginalNode(Ar,Je.expression),e.setTextRange(Ar,Je.expression),Ar}}return e.visitEachChild(Je,U,p)}function ge(Je,xe){if(Je.operator===45||Je.operator===46){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.operand)){var vr=void 0;if(vr=ti(Je.operand.name)){var mr=e.visitNode(Je.operand.expression,U,e.isExpression),Ar=Ee(mr),Oe=Ar.readExpression,nr=Ar.initializeExpression,Mr=We(vr,Oe),Pe=e.isPrefixUnaryExpression(Je)||xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=we(vr,nr||Oe,Mr,63),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}else if(O&&e.isSuperProperty(Je.operand)&&L&&y){var Ue=y.classConstructor,fr=y.superClassReference,De=y.facts;if(De&1){var gr=pe(Je.operand);return e.isPrefixUnaryExpression(Je)?m.updatePrefixUnaryExpression(Je,gr):m.updatePostfixUnaryExpression(Je,gr)}if(Ue&&fr){var Vr=void 0,Tr=void 0;if(e.isPropertyAccessExpression(Je.operand)?e.isIdentifier(Je.operand.name)&&(Tr=Vr=m.createStringLiteralFromNode(Je.operand.name)):e.isSimpleInlineableExpression(Je.operand.argumentExpression)?Tr=Vr=Je.operand.argumentExpression:(Tr=m.createTempVariable(G),Vr=m.createAssignment(Tr,e.visitNode(Je.operand.argumentExpression,U,e.isExpression))),Vr&&Tr){var Mr=m.createReflectGetCall(fr,Tr,Ue);e.setTextRange(Mr,Je.operand);var Pe=xe?void 0:m.createTempVariable(G);return Mr=e.expandPreOrPostfixIncrementOrDecrementExpression(m,Je,Mr,G,Pe),Mr=m.createReflectSetCall(fr,Vr,Mr,Ue),e.setOriginalNode(Mr,Je),e.setTextRange(Mr,Je),Pe&&(Mr=m.createComma(Mr,Pe),e.setTextRange(Mr,Je)),Mr}}}}return e.visitEachChild(Je,U,p)}function Re(Je){return m.updateForStatement(Je,e.visitNode(Je.initializer,Y,e.isForInitializer),e.visitNode(Je.condition,U,e.isExpression),e.visitNode(Je.incrementor,Y,e.isExpression),e.visitIterationBody(Je.statement,U,p))}function ze(Je){return m.updateExpressionStatement(Je,e.visitNode(Je.expression,Y,e.isExpression))}function Ee(Je){var xe=e.nodeIsSynthesized(Je)?Je:m.cloneNode(Je);if(e.isSimpleInlineableExpression(Je))return{readExpression:xe,initializeExpression:void 0};var vr=m.createTempVariable(G),mr=m.createAssignment(vr,xe);return{readExpression:vr,initializeExpression:mr}}function He(Je){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.expression)){var xe=m.createCallBinding(Je.expression,G,J),vr=xe.thisArg,mr=xe.target;return e.isCallChain(Je)?m.updateCallChain(Je,m.createPropertyAccessChain(e.visitNode(mr,U),Je.questionDotToken,\"call\"),void 0,void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0)):m.updateCallExpression(Je,m.createPropertyAccessExpression(e.visitNode(mr,U),\"call\"),void 0,Ve([e.visitNode(vr,U,e.isExpression)],e.visitNodes(Je.arguments,U,e.isExpression),!0))}if(O&&e.isSuperProperty(Je.expression)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionCallCall(e.visitNode(Je.expression,U,e.isExpression),y.classConstructor,e.visitNodes(Je.arguments,U,e.isExpression));return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),Ar}return e.visitEachChild(Je,U,p)}function rr(Je){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.tag)){var xe=m.createCallBinding(Je.tag,G,J),vr=xe.thisArg,mr=xe.target;return m.updateTaggedTemplateExpression(Je,m.createCallExpression(m.createPropertyAccessExpression(e.visitNode(mr,U),\"bind\"),void 0,[e.visitNode(vr,U,e.isExpression)]),void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}if(O&&e.isSuperProperty(Je.tag)&&L&&(y==null?void 0:y.classConstructor)){var Ar=m.createFunctionBindCall(e.visitNode(Je.tag,U,e.isExpression),y.classConstructor,[]);return e.setOriginalNode(Ar,Je),e.setTextRange(Ar,Je),m.updateTaggedTemplateExpression(Je,Ar,void 0,e.visitNode(Je.template,U,e.isTemplateLiteral))}return e.visitEachChild(Je,U,p)}function Ie(Je){if(R){y&&A.set(e.getOriginalNodeId(Je),y),f();var xe=L;L=Je;var vr=e.visitNodes(Je.body.statements,U,e.isStatement);vr=m.mergeLexicalEnvironment(vr,oe()),L=xe;var mr=m.createImmediatelyInvokedArrowFunction(vr);return e.setOriginalNode(mr,Je),e.setTextRange(mr,Je),e.addEmitFlags(mr,2),mr}}function _e(Je,xe){if(e.isDestructuringAssignment(Je)){var vr=x;x=void 0,Je=m.updateBinaryExpression(Je,e.visitNode(Je.left,H),Je.operatorToken,e.visitNode(Je.right,U));var mr=e.some(x)?m.inlineExpressions(e.compact(Ve(Ve([],x,!0),[Je],!1))):Je;return x=vr,mr}if(e.isAssignmentExpression(Je)){if(R&&e.isPrivateIdentifierPropertyAccessExpression(Je.left)){var Ar=ti(Je.left.name);if(Ar)return e.setTextRange(e.setOriginalNode(we(Ar,Je.left.expression,Je.right,Je.operatorToken.kind),Je),Je)}else if(O&&e.isSuperProperty(Je.left)&&L&&y){var Oe=y.classConstructor,nr=y.superClassReference,Mr=y.facts;if(Mr&1)return m.updateBinaryExpression(Je,pe(Je.left),Je.operatorToken,e.visitNode(Je.right,U,e.isExpression));if(Oe&&nr){var Pe=e.isElementAccessExpression(Je.left)?e.visitNode(Je.left.argumentExpression,U,e.isExpression):e.isIdentifier(Je.left.name)?m.createStringLiteralFromNode(Je.left.name):void 0;if(Pe){var Ue=e.visitNode(Je.right,U,e.isExpression);if(e.isCompoundAssignment(Je.operatorToken.kind)){var fr=Pe;e.isSimpleInlineableExpression(Pe)||(fr=m.createTempVariable(G),Pe=m.createAssignment(fr,Pe));var De=m.createReflectGetCall(nr,fr,Oe);e.setOriginalNode(De,Je.left),e.setTextRange(De,Je.left),Ue=m.createBinaryExpression(De,e.getNonAssignmentOperatorForCompoundAssignment(Je.operatorToken.kind),Ue),e.setTextRange(Ue,Je)}var gr=xe?void 0:m.createTempVariable(G);return gr&&(Ue=m.createAssignment(gr,Ue),e.setTextRange(gr,Je)),Ue=m.createReflectSetCall(nr,Pe,Ue,Oe),e.setOriginalNode(Ue,Je),e.setTextRange(Ue,Je),gr&&(Ue=m.createComma(Ue,gr),e.setTextRange(Ue,Je)),Ue}}}}return Je.operatorToken.kind===101&&e.isPrivateIdentifier(Je.left)?l(Je):e.visitEachChild(Je,U,p)}function we(Je,xe,vr,mr){if(xe=e.visitNode(xe,U,e.isExpression),vr=e.visitNode(vr,U,e.isExpression),e.isCompoundAssignment(mr)){var Ar=Ee(xe),Oe=Ar.readExpression,nr=Ar.initializeExpression;xe=nr||Oe,vr=m.createBinaryExpression(Fe(Je,Oe),e.getNonAssignmentOperatorForCompoundAssignment(mr),vr)}switch(e.setCommentRange(xe,e.moveRangePos(xe,-1)),Je.kind){case\"a\":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.setterName);case\"m\":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,void 0);case\"f\":return p.getEmitHelperFactory().createClassPrivateFieldSetHelper(xe,Je.brandCheckIdentifier,vr,Je.kind,Je.variableName);default:e.Debug.assertNever(Je,\"Unknown private element type\")}}function de(Je){if(!e.forEach(Je.members,ye))return e.visitEachChild(Je,U,p);var xe=x;if(x=void 0,Gi(),R){var vr=e.getNameOfDeclaration(Je);vr&&e.isIdentifier(vr)&&(_r().className=e.idText(vr));var mr=Ae(Je);e.some(mr)&&(_r().weakSetName=Xe(\"instances\",mr[0].name))}var Ar=e.isClassDeclaration(Je)?Cr(Je):Ye(Je);return Wt(),x=xe,Ar}function ye(Je){return e.isPropertyDeclaration(Je)||e.isClassStaticBlockDeclaration(Je)||R&&Je.name&&e.isPrivateIdentifier(Je.name)}function Ae(Je){return e.filter(Je.members,e.isNonStaticMethodOrAccessorWithPrivateName)}function er(Je){var xe=0,vr=e.getOriginalNode(Je);e.isClassDeclaration(vr)&&e.classOrConstructorParameterIsDecorated(vr)&&(xe|=1);for(var mr=0,Ar=Je.members;mr=0?(Pe=fr+1,De=Ve(Ve(Ve([],De.slice(0,Ue),!0),e.visitNodes(xe.body.statements,U,e.isStatement,Ue,Pe-Ue),!0),De.slice(Ue),!0)):Ue>=0&&(Pe=Ue)),Mr&&De.push(m.createExpressionStatement(m.createCallExpression(m.createSuper(),void 0,[m.createSpreadElement(m.createIdentifier(\"arguments\"))])));var gr=0;if(xe!=null&&xe.body)if(ie)De=De.filter(function(Li){return!e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)});else{for(var Vr=0,Tr=xe.body.statements;Vr0){var Ui=e.visitNodes(xe.body.statements,U,e.isStatement,Pe,gr);if(fr>=0)e.addRange(De,Ui);else{var Yi=Ue;Mr&&Yi++,De=Ve(Ve(Ve([],De.slice(0,Yi),!0),Ui,!0),De.slice(Yi),!0)}Pe+=gr}}var Wi=m.createThis();return mi(De,Oe,Wi),Ge(De,Ar,Wi),xe&&e.addRange(De,e.visitNodes(xe.body.statements,ct,e.isStatement,Pe)),De=m.mergeLexicalEnvironment(De,oe()),e.setTextRange(m.createBlock(e.setTextRange(m.createNodeArray(De),xe?xe.body.statements:Je.members),!0),xe?xe.body:void 0);function ct(Li){if(!(ie&&e.isParameterPropertyDeclaration(e.getOriginalNode(Li),xe)))return U(Li)}}function Ge(Je,xe,vr){for(var mr=0,Ar=xe;mr=0;--mr){var Ar=$[mr];if(!!Ar){var vr=(xe=Ar.privateIdentifierEnvironment)===null||xe===void 0?void 0:xe.identifiers.get(Je.escapedText);if(vr)return vr}}}function Ze(Je){var xe=m.getGeneratedNameForNode(Je),vr=ti(Je.name);if(!vr)return e.visitEachChild(Je,U,p);var mr=Je.expression;return(e.isThisProperty(Je)||e.isSuperProperty(Je)||!e.isSimpleCopiableExpression(Je.expression))&&(mr=m.createTempVariable(G,!0),pi().push(m.createBinaryExpression(mr,63,e.visitNode(Je.expression,U,e.isExpression)))),m.createAssignmentTargetWrapper(xe,we(vr,mr,xe,63))}function Sr(Je){var xe=e.getTargetOfBindingOrAssignmentElement(Je);if(xe){var vr=void 0;if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}if(vr)return e.isAssignmentExpression(Je)?m.updateBinaryExpression(Je,vr,Je.operatorToken,e.visitNode(Je.right,U,e.isExpression)):e.isSpreadElement(Je)?m.updateSpreadElement(Je,vr):vr}return e.visitNode(Je,H)}function zr(Je){if(e.isObjectBindingOrAssignmentElement(Je)&&!e.isShorthandPropertyAssignment(Je)){var xe=e.getTargetOfBindingOrAssignmentElement(Je),vr=void 0;if(xe){if(e.isPrivateIdentifierPropertyAccessExpression(xe))vr=Ze(xe);else if(O&&e.isSuperProperty(xe)&&L&&y){var mr=y.classConstructor,Ar=y.superClassReference,Oe=y.facts;if(Oe&1)vr=pe(xe);else if(mr&&Ar){var nr=e.isElementAccessExpression(xe)?e.visitNode(xe.argumentExpression,U,e.isExpression):e.isIdentifier(xe.name)?m.createStringLiteralFromNode(xe.name):void 0;if(nr){var Mr=m.createTempVariable(void 0);vr=m.createAssignmentTargetWrapper(Mr,m.createReflectSetCall(Ar,nr,Mr,mr))}}}}if(e.isPropertyAssignment(Je)){var Pe=e.getInitializerOfBindingOrAssignmentElement(Je);return m.updatePropertyAssignment(Je,e.visitNode(Je.name,U,e.isPropertyName),vr?Pe?m.createAssignment(vr,e.visitNode(Pe,U)):vr:e.visitNode(Je.initializer,H,e.isExpression))}if(e.isSpreadAssignment(Je))return m.updateSpreadAssignment(Je,vr||e.visitNode(Je.expression,H,e.isExpression));e.Debug.assert(vr===void 0,\"Should not have generated a wrapped target\")}return e.visitNode(Je,U)}function Wr(Je){return e.isArrayLiteralExpression(Je)?m.updateArrayLiteralExpression(Je,e.visitNodes(Je.elements,Sr,e.isExpression)):m.updateObjectLiteralExpression(Je,e.visitNodes(Je.properties,zr,e.isObjectLiteralElementLike))}}e.transformClassFields=B;function E(p,m){return e.factory.createAssignment(p,e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(\"value\",m||e.factory.createVoidZero())]))}function Q(p,m,G){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(G,\"set\"),void 0,[p,m||e.factory.createVoidZero()])}function le(p,m){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(m,\"add\"),void 0,[p])}function N(p){return p.escapedText===\"#constructor\"}})(ke||(ke={}));var ke;(function(e){var a;(function(E){E[E.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"})(a||(a={}));var C;(function(E){E[E.NonTopLevel=1]=\"NonTopLevel\",E[E.HasLexicalThis=2]=\"HasLexicalThis\"})(C||(C={}));function w(E){var Q=E.factory,le=E.getEmitHelperFactory,N=E.resumeLexicalEnvironment,p=E.endLexicalEnvironment,m=E.hoistVariableDeclaration,G=E.getEmitResolver(),oe=E.getCompilerOptions(),f=e.getEmitScriptTarget(oe),T,K=0,b,se,J,ie=[],R=0,q=E.onEmitNode,O=E.onSubstituteNode;return E.onEmitNode=Re,E.onSubstituteNode=ze,e.chainBundle(E,ve);function ve(de){if(de.isDeclarationFile)return de;ee(1,!1),ee(2,!e.isEffectiveStrictModeSourceFile(de,oe));var ye=e.visitEachChild(de,A,E);return e.addEmitHelpers(ye,E.readEmitHelpers()),ye}function ee(de,ye){R=ye?R|de:R&~de}function he(de){return(R&de)!==0}function F(){return!he(1)}function x(){return he(2)}function X(de,ye,Ae){var er=de&~R;if(er){ee(er,!0);var ir=ye(Ae);return ee(er,!1),ir}return ye(Ae)}function $(de){return e.visitEachChild(de,A,E)}function A(de){if((de.transformFlags&256)===0)return de;switch(de.kind){case 131:return;case 218:return U(de);case 169:return X(3,j,de);case 256:return X(3,H,de);case 213:return X(3,I,de);case 214:return X(1,l,de);case 206:return se&&e.isPropertyAccessExpression(de)&&de.expression.kind===106&&se.add(de.name.escapedText),e.visitEachChild(de,A,E);case 207:return se&&de.expression.kind===106&&(J=!0),e.visitEachChild(de,A,E);case 172:case 173:case 171:case 257:case 226:return X(3,$,de);default:return e.visitEachChild(de,A,E)}}function y(de){if(e.isNodeWithPossibleHoistedDeclaration(de))switch(de.kind){case 237:return L(de);case 242:return Y(de);case 243:return P(de);case 244:return k(de);case 292:return V(de);case 235:case 249:case 263:case 289:case 290:case 252:case 240:case 241:case 239:case 248:case 250:return e.visitEachChild(de,y,E);default:return e.Debug.assertNever(de,\"Unhandled node.\")}return A(de)}function V(de){var ye=new e.Set;d(de.variableDeclaration,ye);var Ae;if(ye.forEach(function(Cr,Ye){b.has(Ye)&&(Ae||(Ae=new e.Set(b)),Ae.delete(Ye))}),Ae){var er=b;b=Ae;var ir=e.visitEachChild(de,y,E);return b=er,ir}else return e.visitEachChild(de,y,E)}function L(de){if(D(de.declarationList)){var ye=fe(de.declarationList,!1);return ye?Q.createExpressionStatement(ye):void 0}return e.visitEachChild(de,A,E)}function P(de){return Q.updateForInStatement(de,D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function k(de){return Q.updateForOfStatement(de,e.visitNode(de.awaitModifier,A,e.isToken),D(de.initializer)?fe(de.initializer,!0):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.expression,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function Y(de){var ye=de.initializer;return Q.updateForStatement(de,D(ye)?fe(ye,!1):e.visitNode(de.initializer,A,e.isForInitializer),e.visitNode(de.condition,A,e.isExpression),e.visitNode(de.incrementor,A,e.isExpression),e.visitIterationBody(de.statement,y,E))}function U(de){return F()?e.visitEachChild(de,A,E):e.setOriginalNode(e.setTextRange(Q.createYieldExpression(void 0,e.visitNode(de.expression,A,e.isExpression)),de),de)}function j(de){return Q.updateMethodDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function H(de){return Q.updateFunctionDeclaration(de,void 0,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function I(de){return Q.updateFunctionExpression(de,e.visitNodes(de.modifiers,A,e.isModifier),de.asteriskToken,de.name,void 0,e.visitParameterList(de.parameters,A,E),void 0,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function l(de){return Q.updateArrowFunction(de,e.visitNodes(de.modifiers,A,e.isModifier),void 0,e.visitParameterList(de.parameters,A,E),void 0,de.equalsGreaterThanToken,e.getFunctionFlags(de)&2?Fe(de):e.visitFunctionBody(de.body,A,E))}function d(de,ye){var Ae=de.name;if(e.isIdentifier(Ae))ye.add(Ae.escapedText);else for(var er=0,ir=Ae.elements;er=2&&G.getNodeCheckFlags(de)&6144;if(yr&&(ge(),se.size)){var Ir=B(Q,G,de,se);ie[e.getNodeId(Ir)]=!0,e.insertStatementsAfterStandardPrologue(Ge,[Ir])}var wr=Q.createBlock(Ge,!0);e.setTextRange(wr,de.body),yr&&J&&(G.getNodeCheckFlags(de)&4096?e.addEmitHelper(wr,e.advancedAsyncSuperHelper):G.getNodeCheckFlags(de)&2048&&e.addEmitHelper(wr,e.asyncSuperHelper)),be=wr}return b=Ye,ir||(se=n,J=lr),be}function Z(de,ye){return e.isBlock(de)?Q.updateBlock(de,e.visitNodes(de.statements,y,e.isStatement,ye)):Q.converters.convertToFunctionBlock(e.visitNode(de,y,e.isConciseBody))}function Be(de){var ye=de&&e.getEntityNameFromTypeNode(de);if(ye&&e.isEntityName(ye)){var Ae=G.getTypeReferenceSerializationKind(ye);if(Ae===e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue||Ae===e.TypeReferenceSerializationKind.Unknown)return ye}}function ge(){(T&1)===0&&(T|=1,E.enableSubstitution(208),E.enableSubstitution(206),E.enableSubstitution(207),E.enableEmitNotification(257),E.enableEmitNotification(169),E.enableEmitNotification(172),E.enableEmitNotification(173),E.enableEmitNotification(171),E.enableEmitNotification(237))}function Re(de,ye,Ae){if(T&1&&_e(ye)){var er=G.getNodeCheckFlags(ye)&6144;if(er!==K){var ir=K;K=er,q(de,ye,Ae),K=ir;return}}else if(T&&ie[e.getNodeId(ye)]){var ir=K;K=0,q(de,ye,Ae),K=ir;return}q(de,ye,Ae)}function ze(de,ye){return ye=O(de,ye),de===1&&K?Ee(ye):ye}function Ee(de){switch(de.kind){case 206:return He(de);case 207:return rr(de);case 208:return Ie(de)}return de}function He(de){return de.expression.kind===106?e.setTextRange(Q.createPropertyAccessExpression(Q.createUniqueName(\"_super\",48),de.name),de):de}function rr(de){return de.expression.kind===106?we(de.argumentExpression,de):de}function Ie(de){var ye=de.expression;if(e.isSuperProperty(ye)){var Ae=e.isPropertyAccessExpression(ye)?He(ye):rr(ye);return Q.createCallExpression(Q.createPropertyAccessExpression(Ae,\"call\"),void 0,Ve([Q.createThis()],de.arguments,!0))}return de}function _e(de){var ye=de.kind;return ye===257||ye===171||ye===169||ye===172||ye===173}function we(de,ye){return K&4096?e.setTextRange(Q.createPropertyAccessExpression(Q.createCallExpression(Q.createUniqueName(\"_superIndex\",48),void 0,[de]),\"value\"),ye):e.setTextRange(Q.createCallExpression(Q.createUniqueName(\"_superIndex\",48),void 0,[de]),ye)}}e.transformES2017=w;function B(E,Q,le,N){var p=(Q.getNodeCheckFlags(le)&4096)!==0,m=[];return N.forEach(function(G,oe){var f=e.unescapeLeadingUnderscores(oe),T=[];T.push(E.createPropertyAssignment(\"get\",E.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4)))),p&&T.push(E.createPropertyAssignment(\"set\",E.createArrowFunction(void 0,void 0,[E.createParameterDeclaration(void 0,void 0,void 0,\"v\",void 0,void 0,void 0)],void 0,void 0,E.createAssignment(e.setEmitFlags(E.createPropertyAccessExpression(e.setEmitFlags(E.createSuper(),4),f),4),E.createIdentifier(\"v\"))))),m.push(E.createPropertyAssignment(f,E.createObjectLiteralExpression(T)))}),E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.createUniqueName(\"_super\",48),void 0,void 0,E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier(\"Object\"),\"create\"),void 0,[E.createNull(),E.createObjectLiteralExpression(m,!0)]))],2))}e.createSuperAccessVariableStatement=B})(ke||(ke={}));var ke;(function(e){var a;(function(B){B[B.AsyncMethodsWithSuper=1]=\"AsyncMethodsWithSuper\"})(a||(a={}));var C;(function(B){B[B.None=0]=\"None\",B[B.HasLexicalThis=1]=\"HasLexicalThis\",B[B.IterationContainer=2]=\"IterationContainer\",B[B.AncestorFactsMask=3]=\"AncestorFactsMask\",B[B.SourceFileIncludes=1]=\"SourceFileIncludes\",B[B.SourceFileExcludes=2]=\"SourceFileExcludes\",B[B.StrictModeSourceFileIncludes=0]=\"StrictModeSourceFileIncludes\",B[B.ClassOrFunctionIncludes=1]=\"ClassOrFunctionIncludes\",B[B.ClassOrFunctionExcludes=2]=\"ClassOrFunctionExcludes\",B[B.ArrowFunctionIncludes=0]=\"ArrowFunctionIncludes\",B[B.ArrowFunctionExcludes=2]=\"ArrowFunctionExcludes\",B[B.IterationStatementIncludes=2]=\"IterationStatementIncludes\",B[B.IterationStatementExcludes=0]=\"IterationStatementExcludes\"})(C||(C={}));function w(B){var E=B.factory,Q=B.getEmitHelperFactory,le=B.resumeLexicalEnvironment,N=B.endLexicalEnvironment,p=B.hoistVariableDeclaration,m=B.getEmitResolver(),G=B.getCompilerOptions(),oe=e.getEmitScriptTarget(G),f=B.onEmitNode;B.onEmitNode=Ge;var T=B.onSubstituteNode;B.onSubstituteNode=ur;var K=!1,b,se,J,ie=0,R=0,q,O,ve,ee,he=[];return e.chainBundle(B,A);function F(pe,or){return R!==(R&~pe|or)}function x(pe,or){var qr=R;return R=(R&~pe|or)&3,qr}function X(pe){R=pe}function $(pe){O=e.append(O,E.createVariableDeclaration(pe))}function A(pe){if(pe.isDeclarationFile)return pe;q=pe;var or=g(pe);return e.addEmitHelpers(or,B.readEmitHelpers()),q=void 0,O=void 0,or}function y(pe){return Y(pe,!1)}function V(pe){return Y(pe,!0)}function L(pe){if(pe.kind!==131)return pe}function P(pe,or,qr,si){if(F(qr,si)){var Di=x(qr,si),wi=pe(or);return X(Di),wi}return pe(or)}function k(pe){return e.visitEachChild(pe,y,B)}function Y(pe,or){if((pe.transformFlags&128)===0)return pe;switch(pe.kind){case 218:return U(pe);case 224:return j(pe);case 247:return H(pe);case 250:return I(pe);case 205:return d(pe);case 221:return ue(pe,or);case 351:return We(pe,or);case 292:return Fe(pe);case 237:return Z(pe);case 254:return Be(pe);case 240:case 241:case 243:return P(k,pe,0,2);case 244:return Ee(pe,void 0);case 242:return P(Re,pe,0,2);case 217:return ze(pe);case 171:return P(Ae,pe,2,1);case 169:return P(Cr,pe,2,1);case 172:return P(er,pe,2,1);case 173:return P(ir,pe,2,1);case 256:return P(Ye,pe,2,1);case 213:return P(Er,pe,2,1);case 214:return P(Br,pe,2,0);case 164:return de(pe);case 238:return D(pe);case 212:return fe(pe,or);case 210:return ne(pe);case 206:return ve&&e.isPropertyAccessExpression(pe)&&pe.expression.kind===106&&ve.add(pe.name.escapedText),e.visitEachChild(pe,y,B);case 207:return ve&&pe.expression.kind===106&&(ee=!0),e.visitEachChild(pe,y,B);case 257:case 226:return P(k,pe,2,1);default:return e.visitEachChild(pe,y,B)}}function U(pe){return se&2&&se&1?e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Q().createAwaitHelper(e.visitNode(pe.expression,y,e.isExpression))),pe),pe):e.visitEachChild(pe,y,B)}function j(pe){if(se&2&&se&1){if(pe.asteriskToken){var or=e.visitNode(e.Debug.checkDefined(pe.expression),y,e.isExpression);return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Q().createAwaitHelper(E.updateYieldExpression(pe,pe.asteriskToken,e.setTextRange(Q().createAsyncDelegatorHelper(e.setTextRange(Q().createAsyncValuesHelper(or),or)),or)))),pe),pe)}return e.setOriginalNode(e.setTextRange(E.createYieldExpression(void 0,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())),pe),pe)}return e.visitEachChild(pe,y,B)}function H(pe){return se&2&&se&1?E.updateReturnStatement(pe,Ie(pe.expression?e.visitNode(pe.expression,y,e.isExpression):E.createVoidZero())):e.visitEachChild(pe,y,B)}function I(pe){if(se&2){var or=e.unwrapInnermostStatementOfLabel(pe);return or.kind===244&&or.awaitModifier?Ee(or,pe):E.restoreEnclosingLabel(e.visitNode(or,y,e.isStatement,E.liftToBlock),pe)}return e.visitEachChild(pe,y,B)}function l(pe){for(var or,qr=[],si=0,Di=pe;si1){for(var si=1;si=2&&m.getNodeCheckFlags(pe)&6144;if(Xi){be();var et=e.createSuperAccessVariableStatement(E,m,pe,ve);he[e.getNodeId(et)]=!0,e.insertStatementsAfterStandardPrologue(or,[et])}or.push(wi),e.insertStatementsAfterStandardPrologue(or,N());var Gi=E.updateBlock(pe.body,or);return Xi&&ee&&(m.getNodeCheckFlags(pe)&4096?e.addEmitHelper(Gi,e.advancedAsyncSuperHelper):m.getNodeCheckFlags(pe)&2048&&e.addEmitHelper(Gi,e.asyncSuperHelper)),ve=si,ee=Di,Gi}function n(pe){var or;le();var qr=0,si=[],Di=(or=e.visitNode(pe.body,y,e.isConciseBody))!==null&&or!==void 0?or:E.createBlock([]);e.isBlock(Di)&&(qr=E.copyPrologue(Di.statements,si,!1,y)),e.addRange(si,lr(void 0,pe));var wi=N();if(qr>0||e.some(si)||e.some(wi)){var Xi=E.converters.convertToFunctionBlock(Di,!0);return e.insertStatementsAfterStandardPrologue(si,wi),e.addRange(si,Xi.statements.slice(qr)),E.updateBlock(Xi,e.setTextRange(E.createNodeArray(si),Xi.statements))}return Di}function lr(pe,or){for(var qr=!1,si=0,Di=or.parameters;si0){var Xi=e.flattenDestructuringBinding(wi,y,B,0,E.getGeneratedNameForNode(wi));if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.getGeneratedNameForNode(wi),Zt=e.visitNode(wi.initializer,y,e.isExpression),_r=E.createAssignment(Wt,Zt),Gi=E.createExpressionStatement(_r);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}else if(wi.initializer){var Wt=E.cloneNode(wi.name);e.setTextRange(Wt,wi.name),e.setEmitFlags(Wt,48);var Zt=e.visitNode(wi.initializer,y,e.isExpression);e.addEmitFlags(Zt,1584);var _r=E.createAssignment(Wt,Zt);e.setTextRange(_r,wi),e.setEmitFlags(_r,1536);var pi=E.createBlock([E.createExpressionStatement(_r)]);e.setTextRange(pi,wi),e.setEmitFlags(pi,1953);var ae=E.createTypeCheck(E.cloneNode(wi.name),\"undefined\"),Gi=E.createIfStatement(ae,pi);e.startOnNewLine(Gi),e.setTextRange(Gi,wi),e.setEmitFlags(Gi,1050528),pe=e.append(pe,Gi)}}else if(wi.transformFlags&32768){qr=!0;var Xi=e.flattenDestructuringBinding(wi,y,B,1,E.getGeneratedNameForNode(wi),!1,!0);if(e.some(Xi)){var et=E.createVariableDeclarationList(Xi),Gi=E.createVariableStatement(void 0,et);e.setEmitFlags(Gi,1048576),pe=e.append(pe,Gi)}}}return pe}function be(){(b&1)===0&&(b|=1,B.enableSubstitution(208),B.enableSubstitution(206),B.enableSubstitution(207),B.enableEmitNotification(257),B.enableEmitNotification(169),B.enableEmitNotification(172),B.enableEmitNotification(173),B.enableEmitNotification(171),B.enableEmitNotification(237))}function Ge(pe,or,qr){if(b&1&&ii(or)){var si=m.getNodeCheckFlags(or)&6144;if(si!==ie){var Di=ie;ie=si,f(pe,or,qr),ie=Di;return}}else if(b&&he[e.getNodeId(or)]){var Di=ie;ie=0,f(pe,or,qr),ie=Di;return}f(pe,or,qr)}function ur(pe,or){return or=T(pe,or),pe===1&&ie?yr(or):or}function yr(pe){switch(pe.kind){case 206:return Ir(pe);case 207:return wr(pe);case 208:return Ur(pe)}return pe}function Ir(pe){return pe.expression.kind===106?e.setTextRange(E.createPropertyAccessExpression(E.createUniqueName(\"_super\",48),pe.name),pe):pe}function wr(pe){return pe.expression.kind===106?mi(pe.argumentExpression,pe):pe}function Ur(pe){var or=pe.expression;if(e.isSuperProperty(or)){var qr=e.isPropertyAccessExpression(or)?Ir(or):wr(or);return E.createCallExpression(E.createPropertyAccessExpression(qr,\"call\"),void 0,Ve([E.createThis()],pe.arguments,!0))}return pe}function ii(pe){var or=pe.kind;return or===257||or===171||or===169||or===172||or===173}function mi(pe,or){return ie&4096?e.setTextRange(E.createPropertyAccessExpression(E.createCallExpression(E.createIdentifier(\"_superIndex\"),void 0,[pe]),\"value\"),or):e.setTextRange(E.createCallExpression(E.createIdentifier(\"_superIndex\"),void 0,[pe]),or)}}e.transformES2018=w})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory;return e.chainBundle(C,B);function B(le){return le.isDeclarationFile?le:e.visitEachChild(le,E,C)}function E(le){if((le.transformFlags&64)===0)return le;switch(le.kind){case 292:return Q(le);default:return e.visitEachChild(le,E,C)}}function Q(le){return le.variableDeclaration?e.visitEachChild(le,E,C):w.updateCatchClause(le,w.createVariableDeclaration(w.createTempVariable(void 0)),e.visitNode(le.block,E,e.isBlock))}}e.transformES2019=a})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory,B=C.hoistVariableDeclaration;return e.chainBundle(C,E);function E(b){return b.isDeclarationFile?b:e.visitEachChild(b,Q,C)}function Q(b){if((b.transformFlags&32)===0)return b;switch(b.kind){case 208:{var se=m(b,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}case 206:case 207:if(e.isOptionalChain(b)){var se=oe(b,!1,!1);return e.Debug.assertNotNode(se,e.isSyntheticReference),se}return e.visitEachChild(b,Q,C);case 221:return b.operatorToken.kind===60?T(b):e.visitEachChild(b,Q,C);case 215:return K(b);default:return e.visitEachChild(b,Q,C)}}function le(b){e.Debug.assertNotNode(b,e.isNonNullChain);for(var se=[b];!b.questionDotToken&&!e.isTaggedTemplateExpression(b);)b=e.cast(e.skipPartiallyEmittedExpressions(b.expression),e.isOptionalChain),e.Debug.assertNotNode(b,e.isNonNullChain),se.unshift(b);return{expression:b.expression,chain:se}}function N(b,se,J){var ie=G(b.expression,se,J);return e.isSyntheticReference(ie)?w.createSyntheticReferenceExpression(w.updateParenthesizedExpression(b,ie.expression),ie.thisArg):w.updateParenthesizedExpression(b,ie)}function p(b,se,J){if(e.isOptionalChain(b))return oe(b,se,J);var ie=e.visitNode(b.expression,Q,e.isExpression);e.Debug.assertNotNode(ie,e.isSyntheticReference);var R;return se&&(e.isSimpleCopiableExpression(ie)?R=ie:(R=w.createTempVariable(B),ie=w.createAssignment(R,ie))),ie=b.kind===206?w.updatePropertyAccessExpression(b,ie,e.visitNode(b.name,Q,e.isIdentifier)):w.updateElementAccessExpression(b,ie,e.visitNode(b.argumentExpression,Q,e.isExpression)),R?w.createSyntheticReferenceExpression(ie,R):ie}function m(b,se){if(e.isOptionalChain(b))return oe(b,se,!1);if(e.isParenthesizedExpression(b.expression)&&e.isOptionalChain(e.skipParentheses(b.expression))){var J=N(b.expression,!0,!1),ie=e.visitNodes(b.arguments,Q,e.isExpression);return e.isSyntheticReference(J)?e.setTextRange(w.createFunctionCallCall(J.expression,J.thisArg,ie),b):w.updateCallExpression(b,J,void 0,ie)}return e.visitEachChild(b,Q,C)}function G(b,se,J){switch(b.kind){case 212:return N(b,se,J);case 206:case 207:return p(b,se,J);case 208:return m(b,se);default:return e.visitNode(b,Q,e.isExpression)}}function oe(b,se,J){var ie=le(b),R=ie.expression,q=ie.chain,O=G(e.skipPartiallyEmittedExpressions(R),e.isCallChain(q[0]),!1),ve=e.isSyntheticReference(O)?O.thisArg:void 0,ee=e.isSyntheticReference(O)?O.expression:O,he=w.restoreOuterExpressions(R,ee,8);e.isSimpleCopiableExpression(ee)||(ee=w.createTempVariable(B),he=w.createAssignment(ee,he));for(var F=ee,x,X=0;X1||!!(!((Be=ge[0])===null||Be===void 0)&&Be.dotDotDotToken),ze=[g,ne];if(ue&&ze.push(Y(ue.initializer)),Q.jsx===5){var Ee=e.getOriginalNode(le);if(Ee&&e.isSourceFile(Ee)){ue===void 0&&ze.push(B.createVoidZero()),ze.push(Re?B.createTrue():B.createFalse());var He=e.getLineAndCharacterOfPosition(Ee,Z.pos);ze.push(B.createObjectLiteralExpression([B.createPropertyAssignment(\"fileName\",p()),B.createPropertyAssignment(\"lineNumber\",B.createNumericLiteral(He.line+1)),B.createPropertyAssignment(\"columnNumber\",B.createNumericLiteral(He.character+1))])),ze.push(B.createThis())}}var rr=e.setTextRange(B.createCallExpression(G(Re),void 0,ze),Z);return Fe&&e.startOnNewLine(rr),rr}function x(g,ne,ue,We){var Fe=d(g),Z=g.attributes.properties,Be=e.length(Z)?y(Z):B.createNull(),ge=N.importSpecifier===void 0?e.createJsxFactoryExpression(B,w.getEmitResolver().getJsxFactoryEntity(le),Q.reactNamespace,g):f(\"createElement\"),Re=e.createExpressionForJsxElement(B,ge,Fe,Be,e.mapDefined(ne,se),We);return ue&&e.startOnNewLine(Re),Re}function X(g,ne,ue,We){var Fe;if(ne&&ne.length){var Z=ve(ne);Z&&(Fe=Z)}return F(oe(),Fe||B.createObjectLiteralExpression([]),void 0,ne,ue,We)}function $(g,ne,ue,We){var Fe=e.createExpressionForJsxFragment(B,w.getEmitResolver().getJsxFactoryEntity(le),w.getEmitResolver().getJsxFragmentFactoryEntity(le),Q.reactNamespace,e.mapDefined(ne,se),g,We);return ue&&e.startOnNewLine(Fe),Fe}function A(g){return B.createSpreadAssignment(e.visitNode(g.expression,K,e.isExpression))}function y(g,ne){var ue=e.getEmitScriptTarget(Q);return ue&&ue>=5?B.createObjectLiteralExpression(V(g,ne)):L(g,ne)}function V(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return e.map(We,function(Z){return Fe?A(Z):k(Z)})}));return ne&&ue.push(ne),ue}function L(g,ne){var ue=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,function(We,Fe){return Fe?e.map(We,P):B.createObjectLiteralExpression(e.map(We,k))}));return e.isJsxSpreadAttribute(g[0])&&ue.unshift(B.createObjectLiteralExpression()),ne&&ue.push(B.createObjectLiteralExpression([ne])),e.singleOrUndefined(ue)||E().createAssignHelper(ue)}function P(g){return e.visitNode(g.expression,K,e.isExpression)}function k(g){var ne=D(g),ue=Y(g.initializer);return B.createPropertyAssignment(ne,ue)}function Y(g){if(g===void 0)return B.createTrue();if(g.kind===10){var ne=g.singleQuote!==void 0?g.singleQuote:!e.isStringDoubleQuoted(g,le),ue=B.createStringLiteral(l(g.text)||g.text,ne);return e.setTextRange(ue,g)}else return g.kind===288?g.expression===void 0?B.createTrue():e.visitNode(g.expression,K,e.isExpression):e.Debug.failBadSyntaxKind(g)}function U(g){var ne=j(g.text);return ne===void 0?void 0:B.createStringLiteral(ne)}function j(g){for(var ne,ue=0,We=-1,Fe=0;Fe0?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(Gr,L,p,0,m.getGeneratedNameForNode(Gr)))),1048576)),!0):Ce?(e.insertStatementAfterCustomPrologue(Qe,e.setEmitFlags(m.createExpressionStatement(m.createAssignment(m.getGeneratedNameForNode(Gr),e.visitNode(Ce,L,e.isExpression))),1048576)),!0):!1}function er(Qe,Gr,S,Ce){Ce=e.visitNode(Ce,L,e.isExpression);var qe=m.createIfStatement(m.createTypeCheck(m.cloneNode(S),\"undefined\"),e.setEmitFlags(e.setTextRange(m.createBlock([m.createExpressionStatement(e.setEmitFlags(e.setTextRange(m.createAssignment(e.setEmitFlags(e.setParent(e.setTextRange(m.cloneNode(S),S),S.parent),48),e.setEmitFlags(Ce,48|e.getEmitFlags(Ce)|1536)),Gr),1536))]),Gr),1953));e.startOnNewLine(qe),e.setTextRange(qe,Gr),e.setEmitFlags(qe,1050528),e.insertStatementAfterCustomPrologue(Qe,qe)}function ir(Qe,Gr){return!!(Qe&&Qe.dotDotDotToken&&!Gr)}function Cr(Qe,Gr,S){var Ce=[],qe=e.lastOrUndefined(Gr.parameters);if(!ir(qe,S))return!1;var br=qe.name.kind===79?e.setParent(e.setTextRange(m.cloneNode(qe.name),qe.name),qe.name.parent):m.createTempVariable(void 0);e.setEmitFlags(br,48);var Zr=qe.name.kind===79?m.cloneNode(qe.name):br,Si=Gr.parameters.length-1,Pi=m.createLoopVariable();Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(br,void 0,void 0,m.createArrayLiteralExpression([]))])),qe),1048576));var Qi=m.createForStatement(e.setTextRange(m.createVariableDeclarationList([m.createVariableDeclaration(Pi,void 0,void 0,m.createNumericLiteral(Si))]),qe),e.setTextRange(m.createLessThan(Pi,m.createPropertyAccessExpression(m.createIdentifier(\"arguments\"),\"length\")),qe),e.setTextRange(m.createPostfixIncrement(Pi),qe),m.createBlock([e.startOnNewLine(e.setTextRange(m.createExpressionStatement(m.createAssignment(m.createElementAccessExpression(Zr,Si===0?Pi:m.createSubtract(Pi,m.createNumericLiteral(Si))),m.createElementAccessExpression(m.createIdentifier(\"arguments\"),Pi))),qe))]));return e.setEmitFlags(Qi,1048576),e.startOnNewLine(Qi),Ce.push(Qi),qe.name.kind!==79&&Ce.push(e.setEmitFlags(e.setTextRange(m.createVariableStatement(void 0,m.createVariableDeclarationList(e.flattenDestructuringBinding(qe,L,p,0,Zr))),qe),1048576)),e.insertStatementsAfterCustomPrologue(Qe,Ce),!0}function Ye(Qe,Gr){return O&65536&&Gr.kind!==214?(Er(Qe,Gr,m.createThis()),!0):!1}function Br(Qe,Gr){Ko();var S=m.createExpressionStatement(m.createBinaryExpression(m.createThis(),63,Gr));e.insertStatementAfterCustomPrologue(Qe,S),e.setCommentRange(S,e.getOriginalNode(Gr).parent)}function Er(Qe,Gr,S){Ko();var Ce=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName(\"_this\",48),void 0,void 0,S)]));e.setEmitFlags(Ce,1050112),e.setSourceMapRange(Ce,Gr),e.insertStatementAfterCustomPrologue(Qe,Ce)}function Ne(Qe,Gr,S){if(O&32768){var Ce=void 0;switch(Gr.kind){case 214:return Qe;case 169:case 172:case 173:Ce=m.createVoidZero();break;case 171:Ce=m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),\"constructor\");break;case 256:case 213:Ce=m.createConditionalExpression(m.createLogicalAnd(e.setEmitFlags(m.createThis(),4),m.createBinaryExpression(e.setEmitFlags(m.createThis(),4),102,m.getLocalName(Gr))),void 0,m.createPropertyAccessExpression(e.setEmitFlags(m.createThis(),4),\"constructor\"),void 0,m.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(Gr)}var qe=m.createVariableStatement(void 0,m.createVariableDeclarationList([m.createVariableDeclaration(m.createUniqueName(\"_newTarget\",48),void 0,void 0,Ce)]));e.setEmitFlags(qe,1050112),S&&(Qe=Qe.slice()),e.insertStatementAfterCustomPrologue(Qe,qe)}return Qe}function n(Qe,Gr){for(var S=0,Ce=Gr.members;S0&&br.push(m.createStringLiteral(qe.literal.text)),Gr=m.createCallExpression(m.createPropertyAccessExpression(Gr,\"concat\"),void 0,br)}return e.setTextRange(Gr,Qe)}function En(Qe){return O&8&&!Qe?m.createPropertyAccessExpression(m.createUniqueName(\"_super\",48),\"prototype\"):m.createUniqueName(\"_super\",48)}function Wn(Qe){return Qe.keywordToken===103&&Qe.name.escapedText===\"target\"?(O|=32768,m.createUniqueName(\"_newTarget\",48)):Qe}function to(Qe,Gr,S){if(F&1&&e.isFunctionLike(Gr)){var Ce=X(32670,e.getEmitFlags(Gr)&8?81:65);ie(Qe,Gr,S),$(Ce,0,0);return}ie(Qe,Gr,S)}function Co(){(F&2)===0&&(F|=2,p.enableSubstitution(79))}function Ko(){(F&1)===0&&(F|=1,p.enableSubstitution(108),p.enableEmitNotification(171),p.enableEmitNotification(169),p.enableEmitNotification(172),p.enableEmitNotification(173),p.enableEmitNotification(214),p.enableEmitNotification(213),p.enableEmitNotification(256))}function Oo(Qe,Gr){return Gr=J(Qe,Gr),Qe===1?Pr(Gr):e.isIdentifier(Gr)?no(Gr):Gr}function no(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=e.getParseTreeNode(Qe,e.isIdentifier);if(Gr&&$o(Gr))return e.setTextRange(m.getGeneratedNameForNode(Gr),Qe)}return Qe}function $o(Qe){switch(Qe.parent.kind){case 203:case 257:case 260:case 254:return Qe.parent.name===Qe&&se.isDeclarationWithCollidingName(Qe.parent)}return!1}function Pr(Qe){switch(Qe.kind){case 79:return xi(Qe);case 108:return pa(Qe)}return Qe}function xi(Qe){if(F&2&&!e.isInternalName(Qe)){var Gr=se.getReferencedDeclarationWithCollidingName(Qe);if(Gr&&!(e.isClassLike(Gr)&&St(Gr,Qe)))return e.setTextRange(m.getGeneratedNameForNode(e.getNameOfDeclaration(Gr)),Qe)}return Qe}function St(Qe,Gr){var S=e.getParseTreeNode(Gr);if(!S||S===Qe||S.end<=Qe.pos||S.pos>=Qe.end)return!1;for(var Ce=e.getEnclosingBlockScopeContainer(Qe);S;){if(S===Ce||S===Qe)return!1;if(e.isClassElement(S)&&S.parent===Qe)return!0;S=S.parent}return!1}function pa(Qe){return F&1&&O&16?e.setTextRange(m.createUniqueName(\"_this\",48),Qe):Qe}function dn(Qe,Gr){return e.isStatic(Gr)?m.getInternalName(Qe):m.createPropertyAccessExpression(m.getInternalName(Qe),\"prototype\")}function Jn(Qe,Gr){if(!Qe||!Gr||e.some(Qe.parameters))return!1;var S=e.firstOrUndefined(Qe.body.statements);if(!S||!e.nodeIsSynthesized(S)||S.kind!==238)return!1;var Ce=S.expression;if(!e.nodeIsSynthesized(Ce)||Ce.kind!==208)return!1;var qe=Ce.expression;if(!e.nodeIsSynthesized(qe)||qe.kind!==106)return!1;var br=e.singleOrUndefined(Ce.arguments);if(!br||!e.nodeIsSynthesized(br)||br.kind!==225)return!1;var Zr=br.expression;return e.isIdentifier(Zr)&&Zr.escapedText===\"arguments\"}}e.transformES2015=N})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.factory,B=C.getCompilerOptions(),E,Q;(B.jsx===1||B.jsx===3)&&(E=C.onEmitNode,C.onEmitNode=p,C.enableEmitNotification(280),C.enableEmitNotification(281),C.enableEmitNotification(279),Q=[]);var le=C.onSubstituteNode;return C.onSubstituteNode=m,C.enableSubstitution(206),C.enableSubstitution(296),e.chainBundle(C,N);function N(T){return T}function p(T,K,b){switch(K.kind){case 280:case 281:case 279:var se=K.tagName;Q[e.getOriginalNodeId(se)]=!0;break}E(T,K,b)}function m(T,K){return K.id&&Q&&Q[K.id]?le(T,K):(K=le(T,K),e.isPropertyAccessExpression(K)?G(K):e.isPropertyAssignment(K)?oe(K):K)}function G(T){if(e.isPrivateIdentifier(T.name))return T;var K=f(T.name);return K?e.setTextRange(w.createElementAccessExpression(T.expression,K),T):T}function oe(T){var K=e.isIdentifier(T.name)&&f(T.name);return K?w.updatePropertyAssignment(T,K,T.initializer):T}function f(T){var K=T.originalKeywordKind||(e.nodeIsSynthesized(T)?e.stringToToken(e.idText(T)):void 0);if(K!==void 0&&K>=81&&K<=116)return e.setTextRange(w.createStringLiteralFromNode(T),T)}}e.transformES5=a})(ke||(ke={}));var ke;(function(e){var a;(function(N){N[N.Nop=0]=\"Nop\",N[N.Statement=1]=\"Statement\",N[N.Assign=2]=\"Assign\",N[N.Break=3]=\"Break\",N[N.BreakWhenTrue=4]=\"BreakWhenTrue\",N[N.BreakWhenFalse=5]=\"BreakWhenFalse\",N[N.Yield=6]=\"Yield\",N[N.YieldStar=7]=\"YieldStar\",N[N.Return=8]=\"Return\",N[N.Throw=9]=\"Throw\",N[N.Endfinally=10]=\"Endfinally\"})(a||(a={}));var C;(function(N){N[N.Open=0]=\"Open\",N[N.Close=1]=\"Close\"})(C||(C={}));var w;(function(N){N[N.Exception=0]=\"Exception\",N[N.With=1]=\"With\",N[N.Switch=2]=\"Switch\",N[N.Loop=3]=\"Loop\",N[N.Labeled=4]=\"Labeled\"})(w||(w={}));var B;(function(N){N[N.Try=0]=\"Try\",N[N.Catch=1]=\"Catch\",N[N.Finally=2]=\"Finally\",N[N.Done=3]=\"Done\"})(B||(B={}));var E;(function(N){N[N.Next=0]=\"Next\",N[N.Throw=1]=\"Throw\",N[N.Return=2]=\"Return\",N[N.Break=3]=\"Break\",N[N.Yield=4]=\"Yield\",N[N.YieldStar=5]=\"YieldStar\",N[N.Catch=6]=\"Catch\",N[N.Endfinally=7]=\"Endfinally\"})(E||(E={}));function Q(N){switch(N){case 2:return\"return\";case 3:return\"break\";case 4:return\"yield\";case 5:return\"yield*\";case 7:return\"endfinally\";default:return}}function le(N){var p=N.factory,m=N.getEmitHelperFactory,G=N.resumeLexicalEnvironment,oe=N.endLexicalEnvironment,f=N.hoistFunctionDeclaration,T=N.hoistVariableDeclaration,K=N.getCompilerOptions(),b=e.getEmitScriptTarget(K),se=N.getEmitResolver(),J=N.onSubstituteNode;N.onSubstituteNode=zr;var ie,R,q,O,ve,ee,he,F,x,X,$=1,A,y,V,L,P=0,k=0,Y,U,j,H,I,l,d,D;return e.chainBundle(N,fe);function fe(Pr){if(Pr.isDeclarationFile||(Pr.transformFlags&2048)===0)return Pr;var xi=e.visitEachChild(Pr,g,N);return e.addEmitHelpers(xi,N.readEmitHelpers()),xi}function g(Pr){var xi=Pr.transformFlags;return O?ne(Pr):q?ue(Pr):e.isFunctionLikeDeclaration(Pr)&&Pr.asteriskToken?Fe(Pr):xi&2048?e.visitEachChild(Pr,g,N):Pr}function ne(Pr){switch(Pr.kind){case 240:return Ur(Pr);case 241:return mi(Pr);case 249:return pi(Pr);case 250:return Xe(Pr);default:return ue(Pr)}}function ue(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);case 172:case 173:return ge(Pr);case 237:return ze(Pr);case 242:return or(Pr);case 243:return si(Pr);case 246:return et(Pr);case 245:return wi(Pr);case 247:return Wt(Pr);default:return Pr.transformFlags&524288?We(Pr):Pr.transformFlags&2099200?e.visitEachChild(Pr,g,N):Pr}}function We(Pr){switch(Pr.kind){case 221:return Ee(Pr);case 351:return _e(Pr);case 222:return de(Pr);case 224:return ye(Pr);case 204:return Ae(Pr);case 205:return ir(Pr);case 207:return Cr(Pr);case 208:return Ye(Pr);case 209:return Br(Pr);default:return e.visitEachChild(Pr,g,N)}}function Fe(Pr){switch(Pr.kind){case 256:return Z(Pr);case 213:return Be(Pr);default:return e.Debug.failBadSyntaxKind(Pr)}}function Z(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionDeclaration(void 0,Pr.modifiers,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}if(q){f(Pr);return}else return Pr}function Be(Pr){if(Pr.asteriskToken)Pr=e.setOriginalNode(e.setTextRange(p.createFunctionExpression(void 0,void 0,Pr.name,void 0,e.visitParameterList(Pr.parameters,g,N),void 0,Re(Pr.body)),Pr),Pr);else{var xi=q,St=O;q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St}return Pr}function ge(Pr){var xi=q,St=O;return q=!1,O=!1,Pr=e.visitEachChild(Pr,g,N),q=xi,O=St,Pr}function Re(Pr){var xi=[],St=q,pa=O,dn=ve,Jn=ee,Qe=he,Gr=F,S=x,Ce=X,qe=$,br=A,Zr=y,Si=V,Pi=L;q=!0,O=!1,ve=void 0,ee=void 0,he=void 0,F=void 0,x=void 0,X=void 0,$=1,A=void 0,y=void 0,V=void 0,L=p.createTempVariable(void 0),G();var Qi=p.copyPrologue(Pr.statements,xi,!1,g);Er(Pr.statements,Qi);var Ct=pn();return e.insertStatementsAfterStandardPrologue(xi,oe()),xi.push(p.createReturnStatement(Ct)),q=St,O=pa,ve=dn,ee=Jn,he=Qe,F=Gr,x=S,X=Ce,$=qe,A=br,y=Zr,V=Si,L=Pi,e.setTextRange(p.createBlock(xi,Pr.multiLine),Pr)}function ze(Pr){if(Pr.transformFlags&524288){ur(Pr.declarationList);return}else{if(e.getEmitFlags(Pr)&1048576)return Pr;for(var xi=0,St=Pr.declarationList.declarations;xi0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(pa,g,e.isExpression)))}}function _e(Pr){for(var xi=[],St=0,pa=Pr.elements;St0&&(Ba(1,[p.createExpressionStatement(p.inlineExpressions(xi))]),xi=[]),xi.push(e.visitNode(dn,g,e.isExpression)))}return p.inlineExpressions(xi)}function we(Pr){var xi=mr(),St=vr();return Vi(St,e.visitNode(Pr.left,g,e.isExpression),Pr.left),Pr.operatorToken.kind===55?ba(xi,St,Pr.left):At(xi,St,Pr.left),Vi(St,e.visitNode(Pr.right,g,e.isExpression),Pr.right),Ar(xi),St}function de(Pr){if(Ze(Pr.whenTrue)||Ze(Pr.whenFalse)){var xi=mr(),St=mr(),pa=vr();return ba(xi,e.visitNode(Pr.condition,g,e.isExpression),Pr.condition),Vi(pa,e.visitNode(Pr.whenTrue,g,e.isExpression),Pr.whenTrue),at(St),Ar(xi),Vi(pa,e.visitNode(Pr.whenFalse,g,e.isExpression),Pr.whenFalse),Ar(St),pa}return e.visitEachChild(Pr,g,N)}function ye(Pr){var xi=mr(),St=e.visitNode(Pr.expression,g,e.isExpression);if(Pr.asteriskToken){var pa=(e.getEmitFlags(Pr.expression)&8388608)===0?e.setTextRange(m().createValuesHelper(St),Pr):St;$a(pa,Pr)}else Qa(St,Pr);return Ar(xi),Ai(Pr)}function Ae(Pr){return er(Pr.elements,void 0,void 0,Pr.multiLine)}function er(Pr,xi,St,pa){var dn=Sr(Pr),Jn;if(dn>0){Jn=vr();var Qe=e.visitNodes(Pr,g,e.isExpression,0,dn);Vi(Jn,p.createArrayLiteralExpression(xi?Ve([xi],Qe,!0):Qe)),xi=void 0}var Gr=e.reduceLeft(Pr,S,[],dn);return Jn?p.createArrayConcatCall(Jn,[p.createArrayLiteralExpression(Gr,pa)]):e.setTextRange(p.createArrayLiteralExpression(xi?Ve([xi],Gr,!0):Gr,pa),St);function S(Ce,qe){if(Ze(qe)&&Ce.length>0){var br=Jn!==void 0;Jn||(Jn=vr()),Vi(Jn,br?p.createArrayConcatCall(Jn,[p.createArrayLiteralExpression(Ce,pa)]):p.createArrayLiteralExpression(xi?Ve([xi],Ce,!0):Ce,pa)),xi=void 0,Ce=[]}return Ce.push(e.visitNode(qe,g,e.isExpression)),Ce}}function ir(Pr){var xi=Pr.properties,St=Pr.multiLine,pa=Sr(xi),dn=vr();Vi(dn,p.createObjectLiteralExpression(e.visitNodes(xi,g,e.isObjectLiteralElementLike,0,pa),St));var Jn=e.reduceLeft(xi,Qe,[],pa);return Jn.push(St?e.startOnNewLine(e.setParent(e.setTextRange(p.cloneNode(dn),dn),dn.parent)):dn),p.inlineExpressions(Jn);function Qe(Gr,S){Ze(S)&&Gr.length>0&&(ji(p.createExpressionStatement(p.inlineExpressions(Gr))),Gr=[]);var Ce=e.createExpressionForObjectLiteralElementLike(p,Pr,S,dn),qe=e.visitNode(Ce,g,e.isExpression);return qe&&(St&&e.startOnNewLine(qe),Gr.push(qe)),Gr}}function Cr(Pr){return Ze(Pr.argumentExpression)?p.updateElementAccessExpression(Pr,xe(e.visitNode(Pr.expression,g,e.isLeftHandSideExpression)),e.visitNode(Pr.argumentExpression,g,e.isExpression)):e.visitEachChild(Pr,g,N)}function Ye(Pr){if(!e.isImportCall(Pr)&&e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(Pr.expression,T,b,!0),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isLeftHandSideExpression)),pa,er(Pr.arguments)),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Br(Pr){if(e.forEach(Pr.arguments,Ze)){var xi=p.createCallBinding(p.createPropertyAccessExpression(Pr.expression,\"bind\"),T),St=xi.target,pa=xi.thisArg;return e.setOriginalNode(e.setTextRange(p.createNewExpression(p.createFunctionApplyCall(xe(e.visitNode(St,g,e.isExpression)),pa,er(Pr.arguments,p.createVoidZero())),void 0,[]),Pr),Pr)}return e.visitEachChild(Pr,g,N)}function Er(Pr,xi){xi===void 0&&(xi=0);for(var St=Pr.length,pa=xi;pa0)break;S.push(yr(pa))}S.length&&(ji(p.createExpressionStatement(p.inlineExpressions(S))),Gr+=S.length,S=[])}}function yr(Pr){return e.setSourceMapRange(p.createAssignment(e.setSourceMapRange(p.cloneNode(Pr.name),Pr.name),e.visitNode(Pr.initializer,g,e.isExpression)),Pr)}function Ir(Pr){if(Ze(Pr))if(Ze(Pr.thenStatement)||Ze(Pr.elseStatement)){var xi=mr(),St=Pr.elseStatement?mr():void 0;ba(Pr.elseStatement?St:xi,e.visitNode(Pr.expression,g,e.isExpression),Pr.expression),Ne(Pr.thenStatement),Pr.elseStatement&&(at(xi),Ar(St),Ne(Pr.elseStatement)),Ar(xi)}else ji(e.visitNode(Pr,g,e.isStatement));else ji(e.visitNode(Pr,g,e.isStatement))}function wr(Pr){if(Ze(Pr)){var xi=mr(),St=mr();Ui(xi),Ar(St),Ne(Pr.statement),Ar(xi),At(St,e.visitNode(Pr.expression,g,e.isExpression)),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function Ur(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function ii(Pr){if(Ze(Pr)){var xi=mr(),St=Ui(xi);Ar(xi),ba(St,e.visitNode(Pr.expression,g,e.isExpression)),Ne(Pr.statement),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function mi(Pr){return O?(vi(),Pr=e.visitEachChild(Pr,g,N),Yi(),Pr):e.visitEachChild(Pr,g,N)}function pe(Pr){if(Ze(Pr)){var xi=mr(),St=mr(),pa=Ui(St);if(Pr.initializer){var dn=Pr.initializer;e.isVariableDeclarationList(dn)?ur(dn):ji(e.setTextRange(p.createExpressionStatement(e.visitNode(dn,g,e.isExpression)),dn))}Ar(xi),Pr.condition&&ba(pa,e.visitNode(Pr.condition,g,e.isExpression)),Ne(Pr.statement),Ar(St),Pr.incrementor&&ji(e.setTextRange(p.createExpressionStatement(e.visitNode(Pr.incrementor,g,e.isExpression)),Pr.incrementor)),at(xi),Yi()}else ji(e.visitNode(Pr,g,e.isStatement))}function or(Pr){O&&vi();var xi=Pr.initializer;if(xi&&e.isVariableDeclarationList(xi)){for(var St=0,pa=xi.declarations;St0?p.inlineExpressions(e.map(Jn,yr)):void 0,e.visitNode(Pr.condition,g,e.isExpression),e.visitNode(Pr.incrementor,g,e.isExpression),e.visitIterationBody(Pr.statement,g,N))}else Pr=e.visitEachChild(Pr,g,N);return O&&Yi(),Pr}function qr(Pr){if(Ze(Pr)){var xi=vr(),St=vr(),pa=p.createLoopVariable(),dn=Pr.initializer;T(pa),Vi(xi,p.createArrayLiteralExpression()),ji(p.createForInStatement(St,e.visitNode(Pr.expression,g,e.isExpression),p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(xi,\"push\"),void 0,[St])))),Vi(pa,p.createNumericLiteral(0));var Jn=mr(),Qe=mr(),Gr=Ui(Qe);Ar(Jn),ba(Gr,p.createLessThan(pa,p.createPropertyAccessExpression(xi,\"length\")));var S=void 0;if(e.isVariableDeclarationList(dn)){for(var Ce=0,qe=dn.declarations;Ce0?at(xi,Pr):ji(Pr)}function wi(Pr){if(O){var xi=Fi(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Xi(Pr){var xi=Ki(Pr.label?e.idText(Pr.label):void 0);xi>0?at(xi,Pr):ji(Pr)}function et(Pr){if(O){var xi=Ki(Pr.label&&e.idText(Pr.label));if(xi>0)return wt(xi,Pr)}return e.visitEachChild(Pr,g,N)}function Gi(Pr){ai(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Wt(Pr){return na(e.visitNode(Pr.expression,g,e.isExpression),Pr)}function Zt(Pr){Ze(Pr)?(Ue(xe(e.visitNode(Pr.expression,g,e.isExpression))),Ne(Pr.statement),fr()):ji(e.visitNode(Pr,g,e.isStatement))}function _r(Pr){if(Ze(Pr.caseBlock)){for(var xi=Pr.caseBlock,St=xi.clauses.length,pa=ct(),dn=xe(e.visitNode(Pr.expression,g,e.isExpression)),Jn=[],Qe=-1,Gr=0;Gr0)break;qe.push(p.createCaseClause(e.visitNode(S.expression,g,e.isExpression),[wt(Jn[Gr],S.expression)]))}else br++}qe.length&&(ji(p.createSwitchStatement(dn,p.createCaseBlock(qe))),Ce+=qe.length,qe=[]),br>0&&(Ce+=br,br=0)}Qe>=0?at(Jn[Qe]):at(pa);for(var Gr=0;Gr=0;St--){var pa=F[St];if(Dt(pa)){if(pa.labelText===Pr)return!0}else break}return!1}function Ki(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Dt(St)&&St.labelText===Pr)return St.breakLabel;if(ut(St)&&Ii(Pr,xi-1))return St.breakLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(ut(St))return St.breakLabel}return 0}function Fi(Pr){if(F)if(Pr)for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St)&&Ii(Pr,xi-1))return St.continueLabel}else for(var xi=F.length-1;xi>=0;xi--){var St=F[xi];if(Rt(St))return St.continueLabel}return 0}function ui(Pr){if(Pr!==void 0&&Pr>0){X===void 0&&(X=[]);var xi=p.createNumericLiteral(-1);return X[Pr]===void 0?X[Pr]=[xi]:X[Pr].push(xi),xi}return p.createOmittedExpression()}function Bt(Pr){var xi=p.createNumericLiteral(Pr);return e.addSyntheticTrailingComment(xi,3,Q(Pr)),xi}function wt(Pr,xi){return e.Debug.assertLessThan(0,Pr,\"Invalid label\"),e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression([Bt(3),ui(Pr)])),xi)}function na(Pr,xi){return e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression(Pr?[Bt(2),Pr]:[Bt(2)])),xi)}function Ai(Pr){return e.setTextRange(p.createCallExpression(p.createPropertyAccessExpression(L,\"sent\"),void 0,[]),Pr)}function Oi(){Ba(0)}function ji(Pr){Pr?Ba(1,[Pr]):Oi()}function Vi(Pr,xi,St){Ba(2,[Pr,xi],St)}function at(Pr,xi){Ba(3,[Pr],xi)}function At(Pr,xi,St){Ba(4,[Pr,xi],St)}function ba(Pr,xi,St){Ba(5,[Pr,xi],St)}function $a(Pr,xi){Ba(7,[Pr],xi)}function Qa(Pr,xi){Ba(6,[Pr],xi)}function ai(Pr,xi){Ba(8,[Pr],xi)}function Dn(Pr,xi){Ba(9,[Pr],xi)}function ka(){Ba(10)}function Ba(Pr,xi,St){A===void 0&&(A=[],y=[],V=[]),x===void 0&&Ar(mr());var pa=A.length;A[pa]=Pr,y[pa]=xi,V[pa]=St}function pn(){P=0,k=0,Y=void 0,U=!1,j=!1,H=void 0,I=void 0,l=void 0,d=void 0,D=void 0;var Pr=Cn();return m().createGeneratorHelper(e.setEmitFlags(p.createFunctionExpression(void 0,void 0,void 0,void 0,[p.createParameterDeclaration(void 0,void 0,void 0,L)],void 0,p.createBlock(Pr,Pr.length>0)),524288))}function Cn(){if(A){for(var Pr=0;Pr=0;xi--){var St=D[xi];I=[p.createWithStatement(St.expression,p.createBlock(I))]}if(d){var pa=d.startLabel,dn=d.catchLabel,Jn=d.finallyLabel,Qe=d.endLabel;I.unshift(p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(p.createPropertyAccessExpression(L,\"trys\"),\"push\"),void 0,[p.createArrayLiteralExpression([ui(pa),ui(dn),ui(Jn),ui(Qe)])]))),d=void 0}Pr&&I.push(p.createExpressionStatement(p.createAssignment(p.createPropertyAccessExpression(L,\"label\"),p.createNumericLiteral(k+1))))}H.push(p.createCaseClause(p.createNumericLiteral(k),I||[])),I=void 0}function Pn(Pr){if(!!x)for(var xi=0;xi(e.isExportName(pe)?1:0);return!1}function U(pe,or){return Y(pe.left)?e.flattenDestructuringAssignment(pe,P,w,0,!or,rr):e.visitEachChild(pe,P,w)}function j(pe){return E.updateForStatement(pe,e.visitNode(pe.initializer,k,e.isForInitializer),e.visitNode(pe.condition,P,e.isExpression),e.visitNode(pe.incrementor,k,e.isExpression),e.visitIterationBody(pe.statement,P,w))}function H(pe){return E.updateExpressionStatement(pe,e.visitNode(pe.expression,k,e.isExpression))}function I(pe,or){return E.updateParenthesizedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function l(pe,or){return E.updatePartiallyEmittedExpression(pe,e.visitNode(pe.expression,or?k:P,e.isExpression))}function d(pe,or){if((pe.operator===45||pe.operator===46)&&e.isIdentifier(pe.operand)&&!e.isGeneratedIdentifier(pe.operand)&&!e.isLocalName(pe.operand)&&!e.isDeclarationNameOfEnumOrNamespace(pe.operand)){var qr=mi(pe.operand);if(qr){var si=void 0,Di=e.visitNode(pe.operand,P,e.isExpression);e.isPrefixUnaryExpression(pe)?Di=E.updatePrefixUnaryExpression(pe,Di):(Di=E.updatePostfixUnaryExpression(pe,Di),or||(si=E.createTempVariable(p),Di=E.createAssignment(si,Di),e.setTextRange(Di,pe)),Di=E.createComma(Di,E.cloneNode(pe.operand)),e.setTextRange(Di,pe));for(var wi=0,Xi=qr;wi=2?Xi=E.createArrowFunction(void 0,void 0,Di,void 0,void 0,wi):(Xi=E.createFunctionExpression(void 0,void 0,void 0,void 0,Di,void 0,wi),or&&e.setEmitFlags(Xi,8));var et=E.createNewExpression(E.createIdentifier(\"Promise\"),void 0,[Xi]);return e.getESModuleInterop(m)?E.createCallExpression(E.createPropertyAccessExpression(et,E.createIdentifier(\"then\")),void 0,[Q().createImportStarCallbackHelper()]):et}function ne(pe,or){var qr=E.createCallExpression(E.createPropertyAccessExpression(E.createIdentifier(\"Promise\"),\"resolve\"),void 0,[]),si=E.createCallExpression(E.createIdentifier(\"require\"),void 0,pe?[pe]:[]);e.getESModuleInterop(m)&&(si=Q().createImportStarHelper(si));var Di;return f>=2?Di=E.createArrowFunction(void 0,void 0,[],void 0,void 0,si):(Di=E.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,E.createBlock([E.createReturnStatement(si)])),or&&e.setEmitFlags(Di,8)),E.createCallExpression(E.createPropertyAccessExpression(qr,\"then\"),void 0,[Di])}function ue(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getExportNeedsImportStarHelper(pe)?Q().createImportStarHelper(or):or}function We(pe,or){return!e.getESModuleInterop(m)||e.getEmitFlags(pe)&67108864?or:e.getImportNeedsImportStarHelper(pe)?Q().createImportStarHelper(or):e.getImportNeedsImportDefaultHelper(pe)?Q().createImportDefaultHelper(or):or}function Fe(pe){var or,qr=e.getNamespaceDeclarationNode(pe);if(T!==e.ModuleKind.AMD)if(pe.importClause){var si=[];qr&&!e.isDefaultImport(pe)?si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,We(pe,Z(pe)))):(si.push(E.createVariableDeclaration(E.getGeneratedNameForNode(pe),void 0,void 0,We(pe,Z(pe)))),qr&&e.isDefaultImport(pe)&&si.push(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)))),or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList(si,f>=2?2:0)),pe),pe))}else return e.setOriginalNode(e.setTextRange(E.createExpressionStatement(Z(pe)),pe),pe);else qr&&e.isDefaultImport(pe)&&(or=e.append(or,E.createVariableStatement(void 0,E.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(E.createVariableDeclaration(E.cloneNode(qr.name),void 0,void 0,E.getGeneratedNameForNode(pe)),pe),pe)],f>=2?2:0))));if(we(pe)){var Di=e.getOriginalNodeId(pe);J[Di]=ye(J[Di],pe)}else or=ye(or,pe);return e.singleOrMany(or)}function Z(pe){var or=e.getExternalModuleNameLiteral(E,pe,ie,oe,G,m),qr=[];return or&&qr.push(or),E.createCallExpression(E.createIdentifier(\"require\"),void 0,qr)}function Be(pe){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(pe),\"import= for internal module references should be handled in an earlier transformer.\");var or;if(T!==e.ModuleKind.AMD?e.hasSyntacticModifier(pe,1)?or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(pe.name,Z(pe))),pe),pe)):or=e.append(or,e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(E.cloneNode(pe.name),void 0,void 0,Z(pe))],f>=2?2:0)),pe),pe)):e.hasSyntacticModifier(pe,1)&&(or=e.append(or,e.setOriginalNode(e.setTextRange(E.createExpressionStatement(n(E.getExportName(pe),E.getLocalName(pe))),pe),pe))),we(pe)){var qr=e.getOriginalNodeId(pe);J[qr]=Ae(J[qr],pe)}else or=Ae(or,pe);return e.singleOrMany(or)}function ge(pe){if(!!pe.moduleSpecifier){var or=E.getGeneratedNameForNode(pe);if(pe.exportClause&&e.isNamedExports(pe.exportClause)){var qr=[];T!==e.ModuleKind.AMD&&qr.push(e.setOriginalNode(e.setTextRange(E.createVariableStatement(void 0,E.createVariableDeclarationList([E.createVariableDeclaration(or,void 0,void 0,Z(pe))])),pe),pe));for(var si=0,Di=pe.exportClause.elements;si=e.ModuleKind.ES2020?J(he):void 0;case 271:return R(he);case 272:var F=he;return q(F)}return he}function se(he){var F=e.getExternalModuleNameLiteral(w,he,e.Debug.checkDefined(oe),E,Q,le),x=[];if(F&&x.push(F),!f){var X=w.createUniqueName(\"_createRequire\",48),$=w.createImportDeclaration(void 0,void 0,w.createImportClause(!1,void 0,w.createNamedImports([w.createImportSpecifier(!1,w.createIdentifier(\"createRequire\"),X)])),w.createStringLiteral(\"module\")),A=w.createUniqueName(\"__require\",48),y=w.createVariableStatement(void 0,w.createVariableDeclarationList([w.createVariableDeclaration(A,void 0,void 0,w.createCallExpression(w.cloneNode(X),void 0,[w.createPropertyAccessExpression(w.createMetaProperty(100,w.createIdentifier(\"meta\")),w.createIdentifier(\"url\"))]))],N>=2?2:0));f=[$,y]}var V=f[1].declarationList.declarations[0].name;return e.Debug.assertNode(V,e.isIdentifier),w.createCallExpression(w.cloneNode(V),void 0,x)}function J(he){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(he),\"import= for internal module references should be handled in an earlier transformer.\");var F;return F=e.append(F,e.setOriginalNode(e.setTextRange(w.createVariableStatement(void 0,w.createVariableDeclarationList([w.createVariableDeclaration(w.cloneNode(he.name),void 0,void 0,se(he))],N>=2?2:0)),he),he)),F=ie(F,he),e.singleOrMany(F)}function ie(he,F){return e.hasSyntacticModifier(F,1)&&(he=e.append(he,w.createExportDeclaration(void 0,void 0,F.isTypeOnly,w.createNamedExports([w.createExportSpecifier(!1,void 0,e.idText(F.name))])))),he}function R(he){return he.isExportEquals?void 0:he}function q(he){if(le.module!==void 0&&le.module>e.ModuleKind.ES2015||!he.exportClause||!e.isNamespaceExport(he.exportClause)||!he.moduleSpecifier)return he;var F=he.exportClause.name,x=w.getGeneratedNameForNode(F),X=w.createImportDeclaration(void 0,void 0,w.createImportClause(!1,void 0,w.createNamespaceImport(x)),he.moduleSpecifier,he.assertClause);e.setOriginalNode(X,he.exportClause);var $=e.isExportNamespaceAsDefaultDeclaration(he)?w.createExportDefault(x):w.createExportDeclaration(void 0,void 0,!1,w.createNamedExports([w.createExportSpecifier(!1,x,F)]));return e.setOriginalNode($,he),[X,$]}function O(he,F,x){e.isSourceFile(F)?((e.isExternalModule(F)||le.isolatedModules)&&le.importHelpers&&(G=new e.Map),p(he,F,x),G=void 0):p(he,F,x)}function ve(he,F){return F=m(he,F),G&&e.isIdentifier(F)&&e.getEmitFlags(F)&4096?ee(F):F}function ee(he){var F=e.idText(he),x=G.get(F);return x||G.set(F,x=w.createUniqueName(F,48)),x}}e.transformECMAScriptModule=a})(ke||(ke={}));var ke;(function(e){function a(C){var w=C.onSubstituteNode,B=C.onEmitNode,E=e.transformECMAScriptModule(C),Q=C.onSubstituteNode,le=C.onEmitNode;C.onSubstituteNode=w,C.onEmitNode=B;var N=e.transformModule(C),p=C.onSubstituteNode,m=C.onEmitNode;C.onSubstituteNode=oe,C.onEmitNode=f,C.enableSubstitution(305),C.enableEmitNotification(305);var G;return b;function oe(J,ie){return e.isSourceFile(ie)?(G=ie,w(J,ie)):G?G.impliedNodeFormat===e.ModuleKind.ESNext?Q(J,ie):p(J,ie):w(J,ie)}function f(J,ie,R){return e.isSourceFile(ie)&&(G=ie),G?G.impliedNodeFormat===e.ModuleKind.ESNext?le(J,ie,R):m(J,ie,R):B(J,ie,R)}function T(J){return J.impliedNodeFormat===e.ModuleKind.ESNext?E:N}function K(J){if(J.isDeclarationFile)return J;G=J;var ie=T(J)(J);return G=void 0,e.Debug.assert(e.isSourceFile(ie)),ie}function b(J){return J.kind===305?K(J):se(J)}function se(J){return C.factory.createBundle(e.map(J.sourceFiles,K),J.prepends)}}e.transformNodeModule=a})(ke||(ke={}));var ke;(function(e){function a(B){return e.isVariableDeclaration(B)||e.isPropertyDeclaration(B)||e.isPropertySignature(B)||e.isBindingElement(B)||e.isSetAccessor(B)||e.isGetAccessor(B)||e.isConstructSignatureDeclaration(B)||e.isCallSignatureDeclaration(B)||e.isMethodDeclaration(B)||e.isMethodSignature(B)||e.isFunctionDeclaration(B)||e.isParameter(B)||e.isTypeParameterDeclaration(B)||e.isExpressionWithTypeArguments(B)||e.isImportEqualsDeclaration(B)||e.isTypeAliasDeclaration(B)||e.isConstructorDeclaration(B)||e.isIndexSignatureDeclaration(B)||e.isPropertyAccessExpression(B)||e.isJSDocTypeAlias(B)}e.canProduceDiagnostics=a;function C(B){if(e.isSetAccessor(B)||e.isGetAccessor(B))return E;return e.isMethodSignature(B)||e.isMethodDeclaration(B)?le:w(B);function E(p){var m=Q(p);return m!==void 0?{diagnosticMessage:m,errorNode:B,typeName:B.name}:void 0}function Q(p){return e.isStatic(B)?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:B.parent.kind===257?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:p.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}function le(p){var m=N(p);return m!==void 0?{diagnosticMessage:m,errorNode:B,typeName:B.name}:void 0}function N(p){return e.isStatic(B)?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:B.parent.kind===257?p.errorModuleName?p.accessibility===2?e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1:p.errorModuleName?e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1}}e.createGetSymbolAccessibilityDiagnosticForNodeName=C;function w(B){if(e.isVariableDeclaration(B)||e.isPropertyDeclaration(B)||e.isPropertySignature(B)||e.isPropertyAccessExpression(B)||e.isBindingElement(B)||e.isConstructorDeclaration(B))return Q;return e.isSetAccessor(B)||e.isGetAccessor(B)?le:e.isConstructSignatureDeclaration(B)||e.isCallSignatureDeclaration(B)||e.isMethodDeclaration(B)||e.isMethodSignature(B)||e.isFunctionDeclaration(B)||e.isIndexSignatureDeclaration(B)?N:e.isParameter(B)?e.isParameterPropertyDeclaration(B,B.parent)&&e.hasSyntacticModifier(B.parent,8)?Q:p:e.isTypeParameterDeclaration(B)?G:e.isExpressionWithTypeArguments(B)?oe:e.isImportEqualsDeclaration(B)?f:e.isTypeAliasDeclaration(B)||e.isJSDocTypeAlias(B)?T:e.Debug.assertNever(B,\"Attempted to set a declaration diagnostic context for unhandled node kind: \".concat(e.SyntaxKind[B.kind]));function E(K){if(B.kind===254||B.kind===203)return K.errorModuleName?K.accessibility===2?e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;if(B.kind===167||B.kind===206||B.kind===166||B.kind===164&&e.hasSyntacticModifier(B.parent,8))return e.isStatic(B)?K.errorModuleName?K.accessibility===2?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:B.parent.kind===257||B.kind===164?K.errorModuleName?K.accessibility===2?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:K.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}function Q(K){var b=E(K);return b!==void 0?{diagnosticMessage:b,errorNode:B,typeName:B.name}:void 0}function le(K){var b;return B.kind===173?e.isStatic(B)?b=K.errorModuleName?e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:b=K.errorModuleName?e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:e.isStatic(B)?b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1,{diagnosticMessage:b,errorNode:B.name,typeName:B.name}}function N(K){var b;switch(B.kind){case 175:b=K.errorModuleName?e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 174:b=K.errorModuleName?e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 176:b=K.errorModuleName?e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 169:case 168:e.isStatic(B)?b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:B.parent.kind===257?b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:b=K.errorModuleName?e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;break;case 256:b=K.errorModuleName?K.accessibility===2?e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;break;default:return e.Debug.fail(\"This is unknown kind for signature: \"+B.kind)}return{diagnosticMessage:b,errorNode:B.name||B}}function p(K){var b=m(K);return b!==void 0?{diagnosticMessage:b,errorNode:B,typeName:B.name}:void 0}function m(K){switch(B.parent.kind){case 171:return K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;case 175:case 180:return K.errorModuleName?e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;case 174:return K.errorModuleName?e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;case 176:return K.errorModuleName?e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;case 169:case 168:return e.isStatic(B.parent)?K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:B.parent.parent.kind===257?K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:K.errorModuleName?e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;case 256:case 179:return K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;case 173:case 172:return K.errorModuleName?K.accessibility===2?e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;default:return e.Debug.fail(\"Unknown parent for parameter: \".concat(e.SyntaxKind[B.parent.kind]))}}function G(){var K;switch(B.parent.kind){case 257:K=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 258:K=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 195:K=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 180:case 175:K=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 174:K=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 169:case 168:e.isStatic(B.parent)?K=e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:B.parent.parent.kind===257?K=e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:K=e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 179:case 256:K=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 259:K=e.Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;break;default:return e.Debug.fail(\"This is unknown parent for type parameter: \"+B.parent.kind)}return{diagnosticMessage:K,errorNode:B,typeName:B.name}}function oe(){var K;return e.isClassDeclaration(B.parent.parent)?K=e.isHeritageClause(B.parent)&&B.parent.token===117?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:B.parent.parent.name?e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_class_has_or_is_using_private_name_0:K=e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1,{diagnosticMessage:K,errorNode:B,typeName:e.getNameOfDeclaration(B.parent.parent)}}function f(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:B,typeName:B.name}}function T(K){return{diagnosticMessage:K.errorModuleName?e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,errorNode:e.isJSDocTypeAlias(B)?e.Debug.checkDefined(B.typeExpression):B.type,typeName:e.isJSDocTypeAlias(B)?e.getNameOfDeclaration(B):B.name}}}e.createGetSymbolAccessibilityDiagnosticForNode=w})(ke||(ke={}));var ke;(function(e){function a(f,T,K){var b=f.getCompilerOptions(),se=e.transformNodes(T,f,e.factory,b,K?[K]:e.filter(f.getSourceFiles(),e.isSourceFileNotJson),[E],!1);return se.diagnostics}e.getDeclarationDiagnostics=a;function C(f,T){var K=T.text.substring(f.pos,f.end);return e.stringContains(K,\"@internal\")}function w(f,T){var K=e.getParseTreeNode(f);if(K&&K.kind===164){var b=K.parent.parameters.indexOf(K),se=b>0?K.parent.parameters[b-1]:void 0,J=T.text,ie=se?e.concatenate(e.getTrailingCommentRanges(J,e.skipTrivia(J,se.end+1,!1,!0)),e.getLeadingCommentRanges(J,f.pos)):e.getTrailingCommentRanges(J,e.skipTrivia(J,f.pos,!1,!0));return ie&&ie.length&&C(e.last(ie),T)}var R=K&&e.getLeadingCommentRangesOfNode(K,T);return!!e.forEach(R,function(q){return C(q,T)})}e.isInternalDeclaration=w;var B=531469;function E(f){var T=function(){return e.Debug.fail(\"Diagnostic emitted without context\")},K=T,b=!0,se=!1,J=!1,ie=!1,R=!1,q,O,ve,ee,he,F,x=f.factory,X=f.getEmitHost(),$={trackSymbol:fe,reportInaccessibleThisError:Fe,reportInaccessibleUniqueSymbolError:ue,reportCyclicStructureError:We,reportPrivateInBaseOfClassExpression:g,reportLikelyUnsafeImportRequiredError:Z,reportTruncationError:Be,moduleResolverHost:X,trackReferencedAmbientModule:l,trackExternalModuleSymbolOfImportTypeNode:D,reportNonlocalAugmentation:ge,reportNonSerializableProperty:Re},A,y,V,L,P,k,Y=f.getEmitResolver(),U=f.getCompilerOptions(),j=U.noResolve,H=U.stripInternal;return Ee;function I(_r){if(!!_r){O=O||new e.Set;for(var pi=0,ae=_r;pi0?f.parameters[0].type:void 0}function m(f){switch(f.kind){case 167:case 166:return!e.hasEffectiveModifier(f,8);case 164:case 254:return!0}return!1}function G(f){switch(f.kind){case 256:case 261:case 265:case 258:case 257:case 259:case 260:case 237:case 266:case 272:case 271:return!0}return!1}function oe(f){switch(f.kind){case 175:case 171:case 169:case 172:case 173:case 167:case 166:case 168:case 174:case 176:case 254:case 163:case 228:case 178:case 189:case 179:case 180:case 200:return!0}return!1}})(ke||(ke={}));var ke;(function(e){function a(T){switch(T){case e.ModuleKind.ESNext:case e.ModuleKind.ES2022:case e.ModuleKind.ES2020:case e.ModuleKind.ES2015:return e.transformECMAScriptModule;case e.ModuleKind.System:return e.transformSystemModule;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return e.transformNodeModule;default:return e.transformModule}}var C;(function(T){T[T.Uninitialized=0]=\"Uninitialized\",T[T.Initialized=1]=\"Initialized\",T[T.Completed=2]=\"Completed\",T[T.Disposed=3]=\"Disposed\"})(C||(C={}));var w;(function(T){T[T.Substitution=1]=\"Substitution\",T[T.EmitNotifications=2]=\"EmitNotifications\"})(w||(w={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray};function B(T,K,b){return{scriptTransformers:E(T,K,b),declarationTransformers:Q(K)}}e.getTransformers=B;function E(T,K,b){if(b)return e.emptyArray;var se=e.getEmitScriptTarget(T),J=e.getEmitModuleKind(T),ie=[];return e.addRange(ie,K&&e.map(K.before,p)),ie.push(e.transformTypeScript),ie.push(e.transformClassFields),e.getJSXTransformEnabled(T)&&ie.push(e.transformJsx),se<99&&ie.push(e.transformESNext),se<8&&ie.push(e.transformES2021),se<7&&ie.push(e.transformES2020),se<6&&ie.push(e.transformES2019),se<5&&ie.push(e.transformES2018),se<4&&ie.push(e.transformES2017),se<3&&ie.push(e.transformES2016),se<2&&(ie.push(e.transformES2015),ie.push(e.transformGenerators)),ie.push(a(J)),se<1&&ie.push(e.transformES5),e.addRange(ie,K&&e.map(K.after,p)),ie}function Q(T){var K=[];return K.push(e.transformDeclarations),e.addRange(K,T&&e.map(T.afterDeclarations,m)),K}function le(T){return function(K){return e.isBundle(K)?T.transformBundle(K):T.transformSourceFile(K)}}function N(T,K){return function(b){var se=T(b);return typeof se==\"function\"?K(b,se):le(se)}}function p(T){return N(T,e.chainBundle)}function m(T){return N(T,function(K,b){return b})}function G(T,K){return K}e.noEmitSubstitution=G;function oe(T,K,b){b(T,K)}e.noEmitNotification=oe;function f(T,K,b,se,J,ie,R){for(var q=new Array(355),O,ve,ee,he=0,F=[],x=[],X=[],$=[],A=0,y=!1,V=[],L=0,P,k,Y=G,U=oe,j=0,H=[],I={factory:b,getCompilerOptions:function(){return se},getEmitResolver:function(){return T},getEmitHost:function(){return K},getEmitHelperFactory:e.memoize(function(){return e.createEmitHelperFactory(I)}),startLexicalEnvironment:_e,suspendLexicalEnvironment:we,resumeLexicalEnvironment:de,endLexicalEnvironment:ye,setLexicalEnvironmentFlags:Ae,getLexicalEnvironmentFlags:er,hoistVariableDeclaration:He,hoistFunctionDeclaration:rr,addInitializationStatement:Ie,startBlockScope:ir,endBlockScope:Cr,addBlockScopedVariable:Ye,requestEmitHelper:Br,readEmitHelpers:Er,enableSubstitution:Z,enableEmitNotification:Re,isSubstitutionEnabled:Be,isEmitNotificationEnabled:ze,get onSubstituteNode(){return Y},set onSubstituteNode(n){e.Debug.assert(j<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(n!==void 0,\"Value must not be 'undefined'\"),Y=n},get onEmitNode(){return U},set onEmitNode(n){e.Debug.assert(j<1,\"Cannot modify transformation hooks after initialization has completed.\"),e.Debug.assert(n!==void 0,\"Value must not be 'undefined'\"),U=n},addDiagnostic:function(n){H.push(n)}},l=0,d=J;l0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\");var lr=e.setEmitFlags(b.createVariableDeclaration(n),64);O?O.push(lr):O=[lr],he&1&&(he|=2)}function rr(n){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.setEmitFlags(n,1048576),ve?ve.push(n):ve=[n]}function Ie(n){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.setEmitFlags(n,1048576),ee?ee.push(n):ee=[n]}function _e(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!y,\"Lexical environment is suspended.\"),F[A]=O,x[A]=ve,X[A]=ee,$[A]=he,A++,O=void 0,ve=void 0,ee=void 0,he=0}function we(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!y,\"Lexical environment is already suspended.\"),y=!0}function de(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(y,\"Lexical environment is not suspended.\"),y=!1}function ye(){e.Debug.assert(j>0,\"Cannot modify the lexical environment during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the lexical environment after transformation has completed.\"),e.Debug.assert(!y,\"Lexical environment is suspended.\");var n;if(O||ve||ee){if(ve&&(n=Ve([],ve,!0)),O){var lr=b.createVariableStatement(void 0,b.createVariableDeclarationList(O));e.setEmitFlags(lr,1048576),n?n.push(lr):n=[lr]}ee&&(n?n=Ve(Ve([],n,!0),ee,!0):n=Ve([],ee,!0))}return A--,O=F[A],ve=x[A],ee=X[A],he=$[A],A===0&&(F=[],x=[],X=[],$=[]),n}function Ae(n,lr){he=lr?he|n:he&~n}function er(){return he}function ir(){e.Debug.assert(j>0,\"Cannot start a block scope during initialization.\"),e.Debug.assert(j<2,\"Cannot start a block scope after transformation has completed.\"),V[L]=P,L++,P=void 0}function Cr(){e.Debug.assert(j>0,\"Cannot end a block scope during initialization.\"),e.Debug.assert(j<2,\"Cannot end a block scope after transformation has completed.\");var n=e.some(P)?[b.createVariableStatement(void 0,b.createVariableDeclarationList(P.map(function(lr){return b.createVariableDeclaration(lr)}),1))]:void 0;return L--,P=V[L],L===0&&(V=[]),n}function Ye(n){e.Debug.assert(L>0,\"Cannot add a block scoped variable outside of an iteration body.\"),(P||(P=[])).push(n)}function Br(n){if(e.Debug.assert(j>0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the transformation context after transformation has completed.\"),e.Debug.assert(!n.scoped,\"Cannot request a scoped emit helper.\"),n.dependencies)for(var lr=0,be=n.dependencies;lr0,\"Cannot modify the transformation context during initialization.\"),e.Debug.assert(j<2,\"Cannot modify the transformation context after transformation has completed.\");var n=k;return k=void 0,n}function Ne(){if(j<3){for(var n=0,lr=J;n\"),Ut(),gr(v.type),Iu(v)}function Ko(v){vn(\"function\"),ef(v,v.parameters),Gt(\":\"),gr(v.type)}function Oo(v){Gt(\"?\"),gr(v.type)}function no(v){Gt(\"!\"),gr(v.type)}function $o(v){gr(v.type),Gt(\"=\")}function Pr(v){wl(v),ks(v,v.modifiers),vn(\"new\"),Ut(),Vu(v,v.typeParameters),ef(v,v.parameters),Ut(),Gt(\"=>\"),Ut(),gr(v.type),Iu(v)}function xi(v){vn(\"typeof\"),Ut(),gr(v.exprName),qu(v,v.typeArguments)}function St(v){Gt(\"{\");var sr=e.getEmitFlags(v)&1?768:32897;Zn(v,v.members,sr|524288),Gt(\"}\")}function pa(v){gr(v.elementType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt(\"[\"),Gt(\"]\")}function dn(v){Gt(\"...\"),gr(v.type)}function Jn(v){Ya(22,v.pos,Gt,v);var sr=e.getEmitFlags(v)&1?528:657;Zn(v,v.elements,sr|524288,Gi.parenthesizeElementTypeOfTupleType),Ya(23,v.elements.end,Gt,v)}function Qe(v){gr(v.dotDotDotToken),gr(v.name),gr(v.questionToken),Ya(58,v.name.end,Gt,v),Ut(),gr(v.type)}function Gr(v){gr(v.type,Gi.parenthesizeTypeOfOptionalType),Gt(\"?\")}function S(v){Zn(v,v.types,516,Gi.parenthesizeConstituentTypeOfUnionType)}function Ce(v){Zn(v,v.types,520,Gi.parenthesizeConstituentTypeOfIntersectionType)}function qe(v){gr(v.checkType,Gi.parenthesizeCheckTypeOfConditionalType),Ut(),vn(\"extends\"),Ut(),gr(v.extendsType,Gi.parenthesizeExtendsTypeOfConditionalType),Ut(),Gt(\"?\"),Ut(),gr(v.trueType),Ut(),Gt(\":\"),Ut(),gr(v.falseType)}function br(v){vn(\"infer\"),Ut(),gr(v.typeParameter)}function Zr(v){Gt(\"(\"),gr(v.type),Gt(\")\")}function Si(){vn(\"this\")}function Pi(v){Il(v.operator,vn),Ut();var sr=v.operator===145?Gi.parenthesizeOperandOfReadonlyTypeOperator:Gi.parenthesizeOperandOfTypeOperator;gr(v.type,sr)}function Qi(v){gr(v.objectType,Gi.parenthesizeNonArrayTypeOfPostfixType),Gt(\"[\"),gr(v.indexType),Gt(\"]\")}function Ct(v){var sr=e.getEmitFlags(v);Gt(\"{\"),sr&1?Ut():(bs(),Dc()),v.readonlyToken&&(gr(v.readonlyToken),v.readonlyToken.kind!==145&&vn(\"readonly\"),Ut()),Gt(\"[\"),Wi(3,v.typeParameter),v.nameType&&(Ut(),vn(\"as\"),Ut(),gr(v.nameType)),Gt(\"]\"),v.questionToken&&(gr(v.questionToken),v.questionToken.kind!==57&&Gt(\"?\")),Gt(\":\"),Ut(),gr(v.type),As(),sr&1?Ut():(bs(),Cc()),Zn(v,v.members,2),Gt(\"}\")}function sa(v){Tr(v.literal)}function en(v){gr(v.head),Zn(v,v.templateSpans,262144)}function Wa(v){if(v.isTypeOf&&(vn(\"typeof\"),Ut()),vn(\"import\"),Gt(\"(\"),gr(v.argument),v.assertions){Gt(\",\"),Ut(),Gt(\"{\"),Ut(),vn(\"assert\"),Gt(\":\"),Ut();var sr=v.assertions.assertClause.elements;Zn(v.assertions.assertClause,sr,526226),Ut(),Gt(\"}\")}Gt(\")\"),v.qualifier&&(Gt(\".\"),gr(v.qualifier)),qu(v,v.typeArguments)}function qn(v){Gt(\"{\"),Zn(v,v.elements,525136),Gt(\"}\")}function mo(v){Gt(\"[\"),Zn(v,v.elements,524880),Gt(\"]\")}function So(v){gr(v.dotDotDotToken),v.propertyName&&(gr(v.propertyName),Gt(\":\"),Ut()),gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function Go(v){var sr=v.elements,fi=v.multiLine?65536:0;os(v,sr,8914|fi,Gi.parenthesizeExpressionForDisallowedComma)}function ys(v){e.forEach(v.properties,Ys);var sr=e.getEmitFlags(v)&65536;sr&&Dc();var fi=v.multiLine?65536:0,zi=Re&&Re.languageVersion>=1&&!e.isJsonSourceFile(Re)?64:0;Zn(v,v.properties,526226|zi|fi),sr&&Cc()}function Pc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess);var sr=v.questionDotToken||e.setTextRangePosEnd(e.factory.createToken(24),v.expression.end,v.name.pos),fi=iu(v,v.expression,sr),zi=iu(v,sr,v.name);Nu(fi,!1);var Sa=sr.kind!==28&&Vc(v.expression)&&!Ae.hasTrailingComment()&&!Ae.hasTrailingWhitespace();Sa&&Gt(\".\"),v.questionDotToken?gr(sr):Ya(sr.kind,v.expression.end,Gt,v),Nu(zi,!1),gr(v.name),Us(fi,zi)}function Vc(v){if(v=e.skipPartiallyEmittedExpressions(v),e.isNumericLiteral(v)){var sr=Pu(v,!0,!1);return!v.numericLiteralFlags&&!e.stringContains(sr,e.tokenToString(24))}else if(e.isAccessExpression(v)){var fi=e.getConstantValue(v);return typeof fi==\"number\"&&isFinite(fi)&&Math.floor(fi)===fi}}function Kc(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),gr(v.questionDotToken),Ya(22,v.expression.end,Gt,v),Tr(v.argumentExpression),Ya(23,v.argumentExpression.end,Gt,v)}function Xs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt(\"(\"),d_(\"0\"),Gt(\",\"),Ut()),Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(\")\"),gr(v.questionDotToken),qu(v,v.typeArguments),os(v,v.arguments,2576,Gi.parenthesizeExpressionForDisallowedComma)}function pc(v){Ya(103,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionOfNew),qu(v,v.typeArguments),os(v,v.arguments,18960,Gi.parenthesizeExpressionForDisallowedComma)}function hs(v){var sr=e.getEmitFlags(v)&536870912;sr&&(Gt(\"(\"),d_(\"0\"),Gt(\",\"),Ut()),Tr(v.tag,Gi.parenthesizeLeftSideOfAccess),sr&&Gt(\")\"),qu(v,v.typeArguments),Ut(),Tr(v.template)}function tc(v){Gt(\"<\"),gr(v.type),Gt(\">\"),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ps(v){var sr=Ya(20,v.pos,Gt,v),fi=J_(v.expression,v);Tr(v.expression,void 0),j_(v.expression,v),Us(fi),Ya(21,v.expression?v.expression.end:sr,Gt,v)}function Qs(v){Ku(v.name),rn(v)}function js(v){wc(v,v.decorators),ks(v,v.modifiers),jn(v,ds)}function ds(v){Vu(v,v.typeParameters),p_(v,v.parameters),Wu(v.type),Ut(),gr(v.equalsGreaterThanToken)}function Ji(v){Ya(89,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function ce(v){Ya(112,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function Rr(v){Ya(114,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function yi(v){Ya(132,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeOperandOfPrefixUnary)}function qi(v){Il(v.operator,Nl),je(v)&&Ut(),Tr(v.operand,Gi.parenthesizeOperandOfPrefixUnary)}function je(v){var sr=v.operand;return sr.kind===219&&(v.operator===39&&(sr.operator===39||sr.operator===45)||v.operator===40&&(sr.operator===40||sr.operator===46))}function Hr(v){Tr(v.operand,Gi.parenthesizeOperandOfPostfixUnary),Il(v.operator,Nl)}function pt(){return e.createBinaryExpressionTrampoline(v,sr,fi,zi,Sa,void 0);function v(Ha,ta){if(ta){ta.stackIndex++,ta.preserveSourceNewlinesStack[ta.stackIndex]=de,ta.containerPosStack[ta.stackIndex]=wr,ta.containerEndStack[ta.stackIndex]=Ur,ta.declarationListContainerEndStack[ta.stackIndex]=ii;var nn=ta.shouldEmitCommentsStack[ta.stackIndex]=ct(Ha),Wo=ta.shouldEmitSourceMapsStack[ta.stackIndex]=Li(Ha);D==null||D(Ha),nn&&z_(Ha),Wo&&v_(Ha),Ui(Ha)}else ta={stackIndex:0,preserveSourceNewlinesStack:[void 0],containerPosStack:[-1],containerEndStack:[-1],declarationListContainerEndStack:[-1],shouldEmitCommentsStack:[!1],shouldEmitSourceMapsStack:[!1]};return ta}function sr(Ha,ta,nn){return da(Ha,nn,\"left\")}function fi(Ha,ta,nn){var Wo=Ha.kind!==27,Lo=iu(nn,nn.left,Ha),oc=iu(nn,Ha,nn.right);Nu(Lo,Wo),Vf(Ha.pos),Pl(Ha,Ha.kind===101?vn:Nl),af(Ha.end,!0),Nu(oc,!0)}function zi(Ha,ta,nn){return da(Ha,nn,\"right\")}function Sa(Ha,ta){var nn=iu(Ha,Ha.left,Ha.operatorToken),Wo=iu(Ha,Ha.operatorToken,Ha.right);if(Us(nn,Wo),ta.stackIndex>0){var Lo=ta.preserveSourceNewlinesStack[ta.stackIndex],oc=ta.containerPosStack[ta.stackIndex],uu=ta.containerEndStack[ta.stackIndex],is=ta.declarationListContainerEndStack[ta.stackIndex],au=ta.shouldEmitCommentsStack[ta.stackIndex],Ou=ta.shouldEmitSourceMapsStack[ta.stackIndex];Yi(Lo),Ou&&Bp(Ha),au&&Oc(Ha,oc,uu,is),fe==null||fe(Ha),ta.stackIndex--}}function da(Ha,ta,nn){var Wo=nn===\"left\"?Gi.getParenthesizeLeftSideOfBinaryForOperator(ta.operatorToken.kind):Gi.getParenthesizeRightSideOfBinaryForOperator(ta.operatorToken.kind),Lo=nt(0,1,Ha);if(Lo===Ii&&(e.Debug.assertIsDefined(si),Ha=Wo(e.cast(si,e.isExpression)),Lo=Mt(1,1,Ha),si=void 0),(Lo===xf||Lo===hd||Lo===ut)&&e.isBinaryExpression(Ha))return Ha;Di=Wo,Lo(1,Ha)}}function Pt(v){var sr=iu(v,v.condition,v.questionToken),fi=iu(v,v.questionToken,v.whenTrue),zi=iu(v,v.whenTrue,v.colonToken),Sa=iu(v,v.colonToken,v.whenFalse);Tr(v.condition,Gi.parenthesizeConditionOfConditionalExpression),Nu(sr,!0),gr(v.questionToken),Nu(fi,!0),Tr(v.whenTrue,Gi.parenthesizeBranchOfConditionalExpression),Us(sr,fi),Nu(zi,!0),gr(v.colonToken),Nu(Sa,!0),Tr(v.whenFalse,Gi.parenthesizeBranchOfConditionalExpression),Us(zi,Sa)}function ga(v){gr(v.head),Zn(v,v.templateSpans,262144)}function ua(v){Ya(125,v.pos,vn,v),gr(v.asteriskToken),__(v.expression&&Kr(v.expression),_i)}function Xn(v){Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma)}function jr(v){Ku(v.name),ki(v)}function fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),qu(v,v.typeArguments)}function xs(v){Tr(v.expression,void 0),v.type&&(Ut(),vn(\"as\"),Ut(),gr(v.type))}function Fo(v){Tr(v.expression,Gi.parenthesizeLeftSideOfAccess),Nl(\"!\")}function ko(v){ac(v.keywordToken,v.pos,Gt),Gt(\".\"),gr(v.name)}function Ao(v){Tr(v.expression),gr(v.literal)}function Ms(v){Bs(v,!v.multiLine&&vd(v))}function Bs(v,sr){Ya(18,v.pos,Gt,v);var fi=sr||e.getEmitFlags(v)&1?768:129;Zn(v,v.statements,fi),Ya(19,v.statements.end,Gt,v,!!(fi&1))}function xc(v){ks(v,v.modifiers),gr(v.declarationList),As()}function su(v){v?Gt(\";\"):As()}function tl(v){Tr(v.expression,Gi.parenthesizeExpressionOfExpressionStatement),(!Re||!e.isJsonSourceFile(Re)||e.nodeIsSynthesized(v.expression))&&As()}function Zc(v){var sr=Ya(99,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.thenStatement),v.elseStatement&&(zf(v,v.thenStatement,v.elseStatement),Ya(91,v.thenStatement.end,vn,v),v.elseStatement.kind===239?(Ut(),gr(v.elseStatement)):Al(v,v.elseStatement))}function Rf(v,sr){var fi=Ya(115,sr,vn,v);Ut(),Ya(20,fi,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v)}function al(v){Ya(90,v.pos,vn,v),Al(v,v.statement),e.isBlock(v.statement)&&!de?Ut():zf(v,v.statement,v.expression),Rf(v,v.statement.end),As()}function Jo(v){Rf(v,v.pos),Al(v,v.statement)}function eu(v){var sr=Ya(97,v.pos,vn,v);Ut();var fi=Ya(20,sr,Gt,v);Uu(v.initializer),fi=Ya(26,v.initializer?v.initializer.end:fi,Gt,v),__(v.condition),fi=Ya(26,v.condition?v.condition.end:fi,Gt,v),__(v.incrementor),Ya(21,v.incrementor?v.incrementor.end:fi,Gt,v),Al(v,v.statement)}function Ws(v){var sr=Ya(97,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(101,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function pu(v){var sr=Ya(97,v.pos,vn,v);Ut(),zd(v.awaitModifier),Ya(20,sr,Gt,v),Uu(v.initializer),Ut(),Ya(160,v.initializer.end,vn,v),Ut(),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function Uu(v){v!==void 0&&(v.kind===255?gr(v):Tr(v))}function Ql(v){Ya(86,v.pos,vn,v),kl(v.label),As()}function xl(v){Ya(81,v.pos,vn,v),kl(v.label),As()}function Ya(v,sr,fi,zi,Sa){var da=e.getParseTreeNode(zi),Ha=da&&da.kind===zi.kind,ta=sr;if(Ha&&Re&&(sr=e.skipTrivia(Re.text,sr)),Ha&&zi.pos!==ta){var nn=Sa&&Re&&!e.positionsAreOnSameLine(ta,sr,Re);nn&&Dc(),Vf(ta),nn&&Cc()}if(sr=Il(v,fi,sr),Ha&&zi.end!==sr){var Wo=zi.kind===288;af(sr,!Wo,Wo)}return sr}function du(v){return v.kind===2||!!v.hasTrailingNewLine}function vc(v){return Re?e.some(e.getLeadingCommentRanges(Re.text,v.pos),du)||e.some(e.getSyntheticLeadingComments(v),du)?!0:e.isPartiallyEmittedExpression(v)?v.pos!==v.expression.pos&&e.some(e.getTrailingCommentRanges(Re.text,v.expression.pos),du)?!0:vc(v.expression):!1:!1}function Kr(v){if(!qr&&e.isPartiallyEmittedExpression(v)&&vc(v)){var sr=e.getParseTreeNode(v);if(sr&&e.isParenthesizedExpression(sr)){var fi=e.factory.createParenthesizedExpression(v.expression);return e.setOriginalNode(fi,v),e.setTextRange(fi,sr),fi}return e.factory.createParenthesizedExpression(v)}return v}function _i(v){return Kr(Gi.parenthesizeExpressionForDisallowedComma(v))}function Ei(v){Ya(105,v.pos,vn,v),__(v.expression&&Kr(v.expression),Kr),As()}function tt(v){var sr=Ya(116,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Al(v,v.statement)}function kt(v){var sr=Ya(107,v.pos,vn,v);Ut(),Ya(20,sr,Gt,v),Tr(v.expression),Ya(21,v.expression.end,Gt,v),Ut(),gr(v.caseBlock)}function bt(v){gr(v.label),Ya(58,v.label.end,Gt,v),Ut(),gr(v.statement)}function ia(v){Ya(109,v.pos,vn,v),__(Kr(v.expression),Kr),As()}function Xt(v){Ya(111,v.pos,vn,v),Ut(),gr(v.tryBlock),v.catchClause&&(zf(v,v.tryBlock,v.catchClause),gr(v.catchClause)),v.finallyBlock&&(zf(v,v.catchClause||v.tryBlock,v.finallyBlock),Ya(96,(v.catchClause||v.tryBlock).end,vn,v),Ut(),gr(v.finallyBlock))}function Za(v){ac(87,v.pos,vn),As()}function bn(v){var sr,fi,zi,Sa,da;gr(v.name),gr(v.exclamationToken),Wu(v.type),Zl(v.initializer,(da=(fi=(sr=v.type)===null||sr===void 0?void 0:sr.end)!==null&&fi!==void 0?fi:(Sa=(zi=v.name.emitNode)===null||zi===void 0?void 0:zi.typeNode)===null||Sa===void 0?void 0:Sa.end)!==null&&da!==void 0?da:v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function _a(v){vn(e.isLet(v)?\"let\":e.isVarConst(v)?\"const\":\"var\"),Ut(),Zn(v,v.declarations,528)}function qa(v){rn(v)}function rn(v){wc(v,v.decorators),ks(v,v.modifiers),vn(\"function\"),gr(v.asteriskToken),Ut(),Vr(v.name),jn(v,Mo)}function jn(v,sr){var fi=v.body;if(fi)if(e.isBlock(fi)){var zi=e.getEmitFlags(v)&65536;zi&&Dc(),wl(v),e.forEach(v.parameters,Et),Et(v.body),sr(v),gs(fi),Iu(v),zi&&Cc()}else sr(v),Ut(),Tr(fi,Gi.parenthesizeConciseBodyOfArrowFunction);else sr(v),As()}function Mo(v){Vu(v,v.typeParameters),ef(v,v.parameters),Wu(v.type)}function ho(v){if(e.getEmitFlags(v)&1)return!0;if(v.multiLine||!e.nodeIsSynthesized(v)&&Re&&!e.rangeIsOnSingleLine(v,Re)||Ap(v,v.statements,2)||Sf(v,v.statements,2))return!1;for(var sr,fi=0,zi=v.statements;fi0)return!1;sr=Sa}return!0}function gs(v){D==null||D(v),Ut(),Gt(\"{\"),Dc();var sr=ho(v)?Se:hr;Mp(v,v.statements,sr),Cc(),ac(19,v.statements.end,Gt,v),fe==null||fe(v)}function Se(v){hr(v,!0)}function hr(v,sr){var fi=$l(v.statements),zi=Ae.getTextPos();Fi(v),fi===0&&zi===Ae.getTextPos()&&sr?(Cc(),Zn(v,v.statements,768),Dc()):Zn(v,v.statements,1,void 0,fi)}function Or(v){ki(v)}function ki(v){e.forEach(v.members,Ys),wc(v,v.decorators),ks(v,v.modifiers),vn(\"class\"),v.name&&(Ut(),Vr(v.name));var sr=e.getEmitFlags(v)&65536;sr&&Dc(),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,0),Ut(),Gt(\"{\"),Zn(v,v.members,129),Gt(\"}\"),sr&&Cc()}function dt(v){wc(v,v.decorators),ks(v,v.modifiers),vn(\"interface\"),Ut(),gr(v.name),Vu(v,v.typeParameters),Zn(v,v.heritageClauses,512),Ut(),Gt(\"{\"),Zn(v,v.members,129),Gt(\"}\")}function la(v){wc(v,v.decorators),ks(v,v.modifiers),vn(\"type\"),Ut(),gr(v.name),Vu(v,v.typeParameters),Ut(),Gt(\"=\"),Ut(),gr(v.type),As()}function wa(v){ks(v,v.modifiers),vn(\"enum\"),Ut(),gr(v.name),Ut(),Gt(\"{\"),Zn(v,v.members,145),Gt(\"}\")}function On(v){ks(v,v.modifiers),~v.flags&1024&&(vn(v.flags&16?\"namespace\":\"module\"),Ut()),gr(v.name);var sr=v.body;if(!sr)return As();for(;sr&&e.isModuleDeclaration(sr);)Gt(\".\"),gr(sr.name),sr=sr.body;Ut(),gr(sr)}function No(v){wl(v),e.forEach(v.statements,Et),Bs(v,vd(v)),Iu(v)}function jo(v){Ya(18,v.pos,Gt,v),Zn(v,v.clauses,129),Ya(19,v.clauses.end,Gt,v,!0)}function po(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),Ut(),Ya(63,v.name.end,Gt,v),Ut(),Gn(v.moduleReference),As()}function Gn(v){v.kind===79?Tr(v):gr(v)}function $n(v){ks(v,v.modifiers),Ya(100,v.modifiers?v.modifiers.end:v.pos,vn,v),Ut(),v.importClause&&(gr(v.importClause),Ut(),Ya(156,v.importClause.end,vn,v),Ut()),Tr(v.moduleSpecifier),v.assertClause&&kl(v.assertClause),As()}function Ho(v){v.isTypeOnly&&(Ya(152,v.pos,vn,v),Ut()),gr(v.name),v.name&&v.namedBindings&&(Ya(27,v.name.end,Gt,v),Ut()),gr(v.namedBindings)}function Zo(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function Es(v){oo(v)}function yc(v){I_(v)}function Xr(v){var sr=Ya(93,v.pos,vn,v);Ut(),v.isExportEquals?Ya(63,sr,Nl,v):Ya(88,sr,vn,v),Ut(),Tr(v.expression,v.isExportEquals?Gi.getParenthesizeRightSideOfBinaryForOperator(63):Gi.parenthesizeExpressionOfExportDefault),As()}function Ls(v){var sr=Ya(93,v.pos,vn,v);if(Ut(),v.isTypeOnly&&(sr=Ya(152,sr,vn,v),Ut()),v.exportClause?gr(v.exportClause):sr=Ya(41,sr,Gt,v),v.moduleSpecifier){Ut();var fi=v.exportClause?v.exportClause.end:sr;Ya(156,fi,vn,v),Ut(),Tr(v.moduleSpecifier)}v.assertClause&&kl(v.assertClause),As()}function Ic(v){Ya(129,v.pos,vn,v),Ut();var sr=v.elements;Zn(v,sr,526226)}function zu(v){gr(v.name),Gt(\":\"),Ut();var sr=v.value;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}gr(sr)}function vf(v){var sr=Ya(93,v.pos,vn,v);Ut(),sr=Ya(127,sr,vn,v),Ut(),sr=Ya(142,sr,vn,v),Ut(),gr(v.name),As()}function P_(v){var sr=Ya(41,v.pos,Gt,v);Ut(),Ya(127,sr,vn,v),Ut(),gr(v.name)}function El(v){oo(v)}function vp(v){I_(v)}function oo(v){Gt(\"{\"),Zn(v,v.elements,525136),Gt(\"}\")}function I_(v){v.isTypeOnly&&(vn(\"type\"),Ut()),v.propertyName&&(gr(v.propertyName),Ut(),Ya(127,v.propertyName.end,vn,v),Ut()),gr(v.name)}function yp(v){vn(\"require\"),Gt(\"(\"),Tr(v.expression),Gt(\")\")}function Yl(v){gr(v.openingElement),Zn(v,v.children,262144),gr(v.closingElement)}function Bf(v){Gt(\"<\"),ns(v.tagName),qu(v,v.typeArguments),Ut(),gr(v.attributes),Gt(\"/>\")}function Cl(v){gr(v.openingFragment),Zn(v,v.children,262144),gr(v.closingFragment)}function c_(v){if(Gt(\"<\"),e.isJsxOpeningElement(v)){var sr=J_(v.tagName,v);ns(v.tagName),qu(v,v.typeArguments),v.attributes.properties&&v.attributes.properties.length>0&&Ut(),gr(v.attributes),j_(v.attributes,v),Us(sr)}Gt(\">\")}function hp(v){Ae.writeLiteral(v.text)}function gu(v){Gt(\"\")}function Dp(v){Zn(v,v.properties,262656)}function sd(v){gr(v.name),R_(\"=\",Gt,v.initializer,vi)}function Aa(v){Gt(\"{...\"),Tr(v.expression),Gt(\"}\")}function va(v){var sr=!1;return e.forEachTrailingCommentRange((Re==null?void 0:Re.text)||\"\",v+1,function(){return sr=!0}),sr}function Cu(v){var sr=!1;return e.forEachLeadingCommentRange((Re==null?void 0:Re.text)||\"\",v+1,function(){return sr=!0}),sr}function qs(v){return va(v)||Cu(v)}function cd(v){var sr;if(v.expression||!qr&&!e.nodeIsSynthesized(v)&&qs(v.pos)){var fi=Re&&!e.nodeIsSynthesized(v)&&e.getLineAndCharacterOfPosition(Re,v.pos).line!==e.getLineAndCharacterOfPosition(Re,v.end).line;fi&&Ae.increaseIndent();var zi=Ya(18,v.pos,Gt,v);gr(v.dotDotDotToken),Tr(v.expression),Ya(19,((sr=v.expression)===null||sr===void 0?void 0:sr.end)||zi,Gt,v),fi&&Ae.decreaseIndent()}}function ns(v){v.kind===79?Tr(v):gr(v)}function nl(v){Ya(82,v.pos,vn,v),Ut(),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma),es(v,v.statements,v.expression.end)}function hc(v){var sr=Ya(88,v.pos,vn,v);es(v,v.statements,sr)}function es(v,sr,fi){var zi=sr.length===1&&(!Re||e.nodeIsSynthesized(v)||e.nodeIsSynthesized(sr[0])||e.rangeStartPositionsAreOnSameLine(v,sr[0],Re)),Sa=163969;zi?(ac(58,fi,Gt,v),Ut(),Sa&=-130):Ya(58,fi,Gt,v),Zn(v,sr,Sa)}function u_(v){Ut(),Il(v.token,vn),Ut(),Zn(v,v.types,528)}function Jf(v){var sr=Ya(83,v.pos,vn,v);Ut(),v.variableDeclaration&&(Ya(20,sr,Gt,v),gr(v.variableDeclaration),Ya(21,v.variableDeclaration.end,Gt,v),Ut()),gr(v.block)}function w_(v){gr(v.name),Gt(\":\"),Ut();var sr=v.initializer;if((e.getEmitFlags(sr)&512)===0){var fi=e.getCommentRange(sr);af(fi.pos)}Tr(sr,Gi.parenthesizeExpressionForDisallowedComma)}function ud(v){gr(v.name),v.objectAssignmentInitializer&&(Ut(),Gt(\"=\"),Ut(),Tr(v.objectAssignmentInitializer,Gi.parenthesizeExpressionForDisallowedComma))}function ku(v){v.expression&&(Ya(25,v.pos,Gt,v),Tr(v.expression,Gi.parenthesizeExpressionForDisallowedComma))}function ld(v){gr(v.name),Zl(v.initializer,v.name.end,v,Gi.parenthesizeExpressionForDisallowedComma)}function fd(v){if(ir(\"/**\"),v.comment){var sr=e.getTextOfJSDocComment(v.comment);if(sr)for(var fi=sr.split(/\\r\\n?|\\n/g),zi=0,Sa=fi;zi'),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:\"no-default-lib\"}),bs()}if(Re&&Re.moduleName&&(rf('/// ')),bs()),Re&&Re.amdDependencies)for(var da=0,Ha=Re.amdDependencies;da')):rf('/// ')),bs()}for(var nn=0,Wo=sr;nn')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:\"reference\",data:Lo.fileName}),bs()}for(var oc=0,uu=fi;oc\")),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:Lo.resolutionMode?Lo.resolutionMode===e.ModuleKind.ESNext?\"type-import\":\"type-require\":\"type\",data:Lo.fileName}),bs()}for(var au=0,Ou=zi;au')),Ye&&Ye.sections.push({pos:Sa,end:Ae.getTextPos(),kind:\"lib\",data:Lo.fileName}),bs()}}function mu(v){var sr=v.statements;wl(v),e.forEach(v.statements,Et),Fi(v);var fi=e.findIndex(sr,function(zi){return!e.isPrologueDirective(zi)});dd(v),Zn(v,sr,1,void 0,fi===-1?sr.length:fi),Iu(v)}function gd(v){var sr=e.getEmitFlags(v);!(sr&512)&&v.pos!==v.expression.pos&&af(v.expression.pos),Tr(v.expression),!(sr&1024)&&v.end!==v.expression.end&&Vf(v.expression.end)}function hf(v){os(v,v.elements,528,void 0)}function $l(v,sr,fi,zi){for(var Sa=!!sr,da=0;da=fi.length||Ha===0;if(nn&&zi&32768){g&&g(fi),ne&&ne(fi);return}if(zi&15360&&(Gt(X(zi)),nn&&fi&&af(fi.pos,!0)),g&&g(fi),nn)zi&1&&!(de&&(!sr||Re&&e.rangeIsOnSingleLine(sr,Re)))?bs():zi&256&&!(zi&524288)&&Ut();else{e.Debug.type(fi);var Wo=(zi&262144)===0,Lo=Wo,oc=Ap(sr,fi,zi);oc?(bs(oc),Lo=!1):zi&256&&Ut(),zi&128&&Dc();for(var uu=P(v,Sa),is=void 0,au=void 0,Ou=!1,sf=0;sf0?((zi&131)===0&&(Dc(),Ou=!0),bs(cf),Lo=!1):is&&zi&512&&Ut()}if(au=Wr(lu),Lo){var uf=e.getCommentRange(lu);af(uf.pos)}else Lo=Wo;ye=lu.pos,uu(lu,v,Sa,sf),Ou&&(Cc(),Ou=!1),is=lu}var K_=is?e.getEmitFlags(is):0,Jp=qr||!!(K_&1024),Hf=(fi==null?void 0:fi.hasTrailingComma)&&zi&64&&zi&16;Hf&&(is&&!Jp?Ya(27,is.end,Gt,is):Gt(\",\")),is&&(sr?sr.end:-1)!==is.end&&zi&60&&!Jp&&Vf(Hf&&(fi==null?void 0:fi.end)?fi.end:is.end),zi&128&&Cc(),Je(au);var kc=Sf(sr,fi,zi);kc?bs(kc):zi&2097408&&Ut()}ne&&ne(fi),zi&15360&&(nn&&fi&&Vf(fi.end),Gt($(zi)))}}function d_(v){Ae.writeLiteral(v)}function Gc(v){Ae.writeStringLiteral(v)}function B_(v){Ae.write(v)}function vu(v,sr){Ae.writeSymbol(v,sr)}function Gt(v){Ae.writePunctuation(v)}function As(){Ae.writeTrailingSemicolon(\";\")}function vn(v){Ae.writeKeyword(v)}function Nl(v){Ae.writeOperator(v)}function cl(v){Ae.writeParameter(v)}function rf(v){Ae.writeComment(v)}function Ut(){Ae.writeSpace(\" \")}function Ds(v){Ae.writeProperty(v)}function bf(v){Ae.nonEscapingWrite?Ae.nonEscapingWrite(v):Ae.write(v)}function bs(v){v===void 0&&(v=1);for(var sr=0;sr0)}function Dc(){Ae.increaseIndent()}function Cc(){Ae.decreaseIndent()}function ac(v,sr,fi,zi){return lr?Il(v,fi,sr):of(zi,v,fi,sr,Il)}function Pl(v,sr){ue&&ue(v),sr(e.tokenToString(v.kind)),We&&We(v)}function Il(v,sr,fi){var zi=e.tokenToString(v);return sr(zi),fi<0?fi:fi+zi.length}function zf(v,sr,fi){if(e.getEmitFlags(v)&1)Ut();else if(de){var zi=iu(v,sr,fi);zi?bs(zi):Ut()}else bs()}function ul(v){for(var sr=v.split(/\\r\\n?|\\n/g),fi=e.guessIndentation(sr),zi=0,Sa=sr;zi0||zi>0)&&fi!==zi&&(Sa||Cf(fi,v.kind!==349),(!Sa||fi>=0&&(sr&512)!==0)&&(wr=fi),(!da||zi>=0&&(sr&1024)!==0)&&(Ur=zi,v.kind===255&&(ii=zi))),e.forEach(e.getSyntheticLeadingComments(v),Ef),et()}function Op(v,sr,fi,zi,Sa,da,Ha){Xi();var ta=zi<0||(sr&1024)!==0||v.kind===11;e.forEach(e.getSyntheticTrailingComments(v),Fl),(fi>0||zi>0)&&fi!==zi&&(wr=Sa,Ur=da,ii=Ha,!ta&&v.kind!==349&&Fc(zi)),et()}function Ef(v){(v.hasLeadingNewline||v.kind===2)&&Ae.writeLine(),pl(v),v.hasTrailingNewLine||v.kind===2?Ae.writeLine():Ae.writeSpace(\" \")}function Fl(v){Ae.isAtStartOfLine()||Ae.writeSpace(\" \"),pl(v),v.hasTrailingNewLine&&Ae.writeLine()}function pl(v){var sr=Fp(v),fi=v.kind===3?e.computeLineStarts(sr):void 0;e.writeCommentRange(sr,fi,Ae,0,sr.length,Z)}function Fp(v){return v.kind===3?\"/*\".concat(v.text,\"*/\"):\"//\".concat(v.text)}function Mp(v,sr,fi){Xi();var zi=sr.pos,Sa=sr.end,da=e.getEmitFlags(v),Ha=zi<0||(da&512)!==0,ta=qr||Sa<0||(da&1024)!==0;Ha||Rp(sr),et(),da&2048&&!qr?(qr=!0,fi(v),qr=!1):fi(v),Xi(),ta||(Cf(sr.end,!0),or&&!Ae.isAtStartOfLine()&&Ae.writeLine()),et()}function Gu(v,sr){return v=e.getOriginalNode(v),v.parent&&v.parent===e.getOriginalNode(sr).parent}function Lp(v,sr){if(sr.pos-1&&zi.indexOf(sr)===Sa+1}function Cf(v,sr){or=!1,sr?v===0&&(Re==null?void 0:Re.isDeclarationFile)?Ot(v,g_):Ot(v,gl):v===0&&Ot(v,W_)}function W_(v,sr,fi,zi,Sa){m_(v,sr)&&gl(v,sr,fi,zi,Sa)}function g_(v,sr,fi,zi,Sa){m_(v,sr)||gl(v,sr,fi,zi,Sa)}function dl(v,sr){return k.onlyPrintJsDocStyle?e.isJSDocLikeText(v,sr)||e.isPinnedComment(v,sr):!0}function gl(v,sr,fi,zi,Sa){!Re||!dl(Re.text,v)||(or||(e.emitNewLineBeforeLeadingCommentOfPosition(De(),Ae,Sa,v),or=!0),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():fi===3&&Ae.writeSpace(\" \"))}function Vf(v){qr||v===-1||Cf(v,!0)}function Fc(v){nf(v,Hu)}function Hu(v,sr,fi,zi){!Re||!dl(Re.text,v)||(Ae.isAtStartOfLine()||Ae.writeSpace(\" \"),Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi&&Ae.writeLine())}function af(v,sr,fi){qr||(Xi(),nf(v,sr?Hu:fi?tn:Ml),et())}function tn(v,sr,fi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),fi===2&&Ae.writeLine())}function Ml(v,sr,fi,zi){!Re||(Xc(v),e.writeCommentRange(Re.text,De(),Ae,v,sr,Z),Xc(sr),zi?Ae.writeLine():Ae.writeSpace(\" \"))}function Ot(v,sr){Re&&(wr===-1||v!==wr)&&(q_(v)?Kf(sr):e.forEachLeadingCommentRange(Re.text,v,sr,v))}function nf(v,sr){Re&&(Ur===-1||v!==Ur&&v!==ii)&&e.forEachTrailingCommentRange(Re.text,v,sr)}function q_(v){return pe!==void 0&&e.last(pe).nodePos===v}function Kf(v){if(!!Re){var sr=e.last(pe).detachedCommentEndPos;pe.length-1?pe.pop():pe=void 0,e.forEachLeadingCommentRange(Re.text,sr,v,sr)}}function Rp(v){var sr=Re&&e.emitDetachedComments(Re.text,De(),Ae,yd,v,Z,qr);sr&&(pe?pe.push(sr):pe=[sr])}function yd(v,sr,fi,zi,Sa,da){!Re||!dl(Re.text,zi)||(Xc(zi),e.writeCommentRange(v,sr,fi,zi,Sa,da),Xc(Sa))}function m_(v,sr){return!!Re&&e.isRecognizedTripleSlashComment(Re.text,v,sr)}function Ll(v){return v.parsedSourceMap===void 0&&v.sourceMapText!==void 0&&(v.parsedSourceMap=e.tryParseRawSourceMap(v.sourceMapText)||!1),v.parsedSourceMap||void 0}function hd(v,sr){var fi=Mt(3,v,sr);v_(sr),fi(v,sr),Bp(sr)}function v_(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);if(e.isUnparsedNode(v)){e.Debug.assertIsDefined(v.parent,\"UnparsedNodes must have parent pointers\");var zi=Ll(v.parent);zi&&be&&be.appendSourceMap(Ae.getLine(),Ae.getColumn(),zi,v.parent.sourceMapPath,v.parent.getLineAndCharacterOfPosition(v.pos),v.parent.getLineAndCharacterOfPosition(v.end))}else{var Sa=fi.source||Ge;v.kind!==349&&(sr&16)===0&&fi.pos>=0&&Gf(fi.source||Ge,Xu(Sa,fi.pos)),sr&64&&(lr=!0)}}function Bp(v){var sr=e.getEmitFlags(v),fi=e.getSourceMapRange(v);e.isUnparsedNode(v)||(sr&64&&(lr=!1),v.kind!==349&&(sr&32)===0&&fi.end>=0&&Gf(fi.source||Ge,fi.end))}function Xu(v,sr){return v.skipTrivia?v.skipTrivia(sr):e.skipTrivia(v.text,sr)}function Xc(v){if(!(lr||e.positionIsSynthesized(v)||yu(Ge))){var sr=e.getLineAndCharacterOfPosition(Ge,v),fi=sr.line,zi=sr.character;be.addMapping(Ae.getLine(),Ae.getColumn(),ur,fi,zi,void 0)}}function Gf(v,sr){if(v!==Ge){var fi=Ge,zi=ur;wu(v),Xc(sr),V_(fi,zi)}else Xc(sr)}function of(v,sr,fi,zi,Sa){if(lr||v&&e.isInJsonFile(v))return Sa(sr,fi,zi);var da=v&&v.emitNode,Ha=da&&da.flags||0,ta=da&&da.tokenSourceMapRanges&&da.tokenSourceMapRanges[sr],nn=ta&&ta.source||Ge;return zi=Xu(nn,ta?ta.pos:zi),(Ha&128)===0&&zi>=0&&Gf(nn,zi),zi=Sa(sr,fi,zi),ta&&(zi=ta.end),(Ha&256)===0&&zi>=0&&Gf(nn,zi),zi}function wu(v){if(!lr){if(Ge=v,v===yr){ur=Ir;return}yu(v)||(ur=be.addSource(v.fileName),k.inlineSources&&be.setSourceContent(ur,v.text),yr=v,Ir=ur)}}function V_(v,sr){Ge=v,ur=sr}function yu(v){return e.fileExtensionIs(v.fileName,\".json\")}}e.createPrinter=F;function x(){var k=[];return k[1024]=[\"{\",\"}\"],k[2048]=[\"(\",\")\"],k[4096]=[\"<\",\">\"],k[8192]=[\"[\",\"]\"],k}function X(k){return a[k&15360][0]}function $(k){return a[k&15360][1]}var A;(function(k){k[k.Auto=0]=\"Auto\",k[k.CountMask=268435455]=\"CountMask\",k[k._i=268435456]=\"_i\"})(A||(A={}));function y(k,Y,U,j){Y(k)}function V(k,Y,U,j){Y(k,U.select(j))}function L(k,Y,U,j){Y(k,U)}function P(k,Y){return k.length===1?y:typeof Y==\"object\"?V:L}})(ke||(ke={}));var ke;(function(e){function a(b,se,J){if(!b.getDirectories||!b.readDirectory)return;var ie=new e.Map,R=e.createGetCanonicalFileName(J);return{useCaseSensitiveFileNames:J,fileExists:y,readFile:function(l,d){return b.readFile(l,d)},directoryExists:b.directoryExists&&V,getDirectories:P,readDirectory:k,createDirectory:b.createDirectory&&L,writeFile:b.writeFile&&A,addOrDeleteFileOrDirectory:U,addOrDeleteFile:j,clearCache:I,realpath:b.realpath&&Y};function q(l){return e.toPath(l,se,R)}function O(l){return ie.get(e.ensureTrailingDirectorySeparator(l))}function ve(l){return O(e.getDirectoryPath(l))}function ee(l){return e.getBaseFileName(e.normalizePath(l))}function he(l,d){var D;if(!b.realpath||e.ensureTrailingDirectorySeparator(q(b.realpath(l)))===d){var fe={files:e.map(b.readDirectory(l,void 0,void 0,[\"*.*\"]),ee)||[],directories:b.getDirectories(l)||[]};return ie.set(e.ensureTrailingDirectorySeparator(d),fe),fe}if(!((D=b.directoryExists)===null||D===void 0)&&D.call(b,l))return ie.set(d,!1),!1}function F(l,d){d=e.ensureTrailingDirectorySeparator(d);var D=O(d);if(D)return D;try{return he(l,d)}catch{e.Debug.assert(!ie.has(e.ensureTrailingDirectorySeparator(d)));return}}function x(l,d){return R(l)===R(d)}function X(l,d){return e.some(l,function(D){return x(D,d)})}function $(l,d,D){if(X(l,d)){if(!D)return e.filterMutate(l,function(fe){return!x(fe,d)})}else if(D)return l.push(d)}function A(l,d,D){var fe=q(l),g=ve(fe);return g&&H(g,ee(l),!0),b.writeFile(l,d,D)}function y(l){var d=q(l),D=ve(d);return D&&X(D.files,ee(l))||b.fileExists(l)}function V(l){var d=q(l);return ie.has(e.ensureTrailingDirectorySeparator(d))||b.directoryExists(l)}function L(l){var d=q(l),D=ve(d),fe=ee(l);D&&$(D.directories,fe,!0),b.createDirectory(l)}function P(l){var d=q(l),D=F(l,d);return D?D.directories.slice():b.getDirectories(l)}function k(l,d,D,fe,g){var ne=q(l),ue=F(l,ne),We;if(ue!==void 0)return e.matchFiles(l,d,D,fe,J,se,g,Fe,Y);return b.readDirectory(l,d,D,fe,g);function Fe(Be){var ge=q(Be);if(ge===ne)return ue||Z(Be,ge);var Re=F(Be,ge);return Re!==void 0?Re||Z(Be,ge):e.emptyFileSystemEntries}function Z(Be,ge){if(We&&ge===ne)return We;var Re={files:e.map(b.readDirectory(Be,void 0,void 0,[\"*.*\"]),ee)||e.emptyArray,directories:b.getDirectories(Be)||e.emptyArray};return ge===ne&&(We=Re),Re}}function Y(l){return b.realpath?b.realpath(l):l}function U(l,d){var D=O(d);if(D!==void 0){I();return}var fe=ve(d);if(!!fe){if(!b.directoryExists){I();return}var g=ee(l),ne={fileExists:b.fileExists(d),directoryExists:b.directoryExists(d)};return ne.directoryExists||X(fe.directories,g)?I():H(fe,g,ne.fileExists),ne}}function j(l,d,D){if(D!==e.FileWatcherEventKind.Changed){var fe=ve(d);fe&&H(fe,ee(l),D===e.FileWatcherEventKind.Created)}}function H(l,d,D){$(l.files,d,D)}function I(){ie.clear()}}e.createCachedDirectoryStructureHost=a;var C;(function(b){b[b.None=0]=\"None\",b[b.Partial=1]=\"Partial\",b[b.Full=2]=\"Full\"})(C=e.ConfigFileProgramReloadLevel||(e.ConfigFileProgramReloadLevel={}));function w(b,se,J,ie,R){var q,O=e.arrayToMap(((q=se==null?void 0:se.configFile)===null||q===void 0?void 0:q.extendedSourceFiles)||e.emptyArray,R);J.forEach(function(ve,ee){O.has(ee)||(ve.projects.delete(b),ve.close())}),O.forEach(function(ve,ee){var he=J.get(ee);he?he.projects.add(b):J.set(ee,{projects:new e.Set([b]),watcher:ie(ve,ee),close:function(){var F=J.get(ee);!F||F.projects.size!==0||(F.watcher.close(),J.delete(ee))}})})}e.updateSharedExtendedConfigFileWatcher=w;function B(b,se){se.forEach(function(J){J.projects.delete(b)&&J.close()})}e.clearSharedExtendedConfigFileWatcher=B;function E(b,se,J){!b.delete(se)||b.forEach(function(ie,R){var q,O=ie.extendedResult;!((q=O.extendedSourceFiles)===null||q===void 0)&&q.some(function(ve){return J(ve)===se})&&E(b,R,J)})}e.cleanExtendedConfigCache=E;function Q(b,se,J){var ie=new e.Map(b);e.mutateMap(se,ie,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updatePackageJsonWatch=Q;function le(b,se,J){var ie=b.getMissingFilePaths(),R=e.arrayToMap(ie,e.identity,e.returnTrue);e.mutateMap(se,R,{createNewValue:J,onDeleteValue:e.closeFileWatcher})}e.updateMissingFilePathsWatch=le;function N(b,se,J){e.mutateMap(b,se,{createNewValue:ie,onDeleteValue:K,onExistingValue:R});function ie(q,O){return{watcher:J(q,O),flags:O}}function R(q,O,ve){q.flags!==O&&(q.watcher.close(),b.set(ve,ie(ve,O)))}}e.updateWatchingWildcardDirectories=N;function p(b){var se=b.watchedDirPath,J=b.fileOrDirectory,ie=b.fileOrDirectoryPath,R=b.configFileName,q=b.options,O=b.program,ve=b.extraFileExtensions,ee=b.currentDirectory,he=b.useCaseSensitiveFileNames,F=b.writeLog,x=b.toPath,X=e.removeIgnoredPath(ie);if(!X)return F(\"Project: \".concat(R,\" Detected ignored path: \").concat(J)),!0;if(ie=X,ie===se)return!1;if(e.hasExtension(ie)&&!e.isSupportedSourceFileName(J,q,ve))return F(\"Project: \".concat(R,\" Detected file add/remove of non supported extension: \").concat(J)),!0;if(e.isExcludedFile(J,q.configFile.configFileSpecs,e.getNormalizedAbsolutePath(e.getDirectoryPath(R),ee),he,ee))return F(\"Project: \".concat(R,\" Detected excluded file: \").concat(J)),!0;if(!O||e.outFile(q)||q.outDir)return!1;if(e.isDeclarationFileName(ie)){if(q.declarationDir)return!1}else if(!e.fileExtensionIsOneOf(ie,e.supportedJSExtensionsFlat))return!1;var $=e.removeFileExtension(ie),A=e.isArray(O)?void 0:m(O)?O.getProgramOrUndefined():O,y=!A&&!e.isArray(O)?O:void 0;if(V($+\".ts\")||V($+\".tsx\"))return F(\"Project: \".concat(R,\" Detected output file: \").concat(J)),!0;return!1;function V(L){return A?!!A.getSourceFileByPath(L):y?y.getState().fileInfos.has(L):!!e.find(O,function(P){return x(P)===L})}}e.isIgnoredFileFromWildCardWatching=p;function m(b){return!!b.getState}function G(b,se){return b?b.isEmittedFile(se):!1}e.isEmittedFileOfProgram=G;var oe;(function(b){b[b.None=0]=\"None\",b[b.TriggerOnly=1]=\"TriggerOnly\",b[b.Verbose=2]=\"Verbose\"})(oe=e.WatchLogLevel||(e.WatchLogLevel={}));function f(b,se,J,ie){e.setSysLog(se===oe.Verbose?J:e.noop);var R={watchFile:function(y,V,L,P){return b.watchFile(y,V,L,P)},watchDirectory:function(y,V,L,P){return b.watchDirectory(y,V,(L&1)!==0,P)}},q=se!==oe.None?{watchFile:$(\"watchFile\"),watchDirectory:$(\"watchDirectory\")}:void 0,O=se===oe.Verbose?{watchFile:x,watchDirectory:X}:q||R,ve=se===oe.Verbose?F:e.returnNoopFileWatcher;return{watchFile:ee(\"watchFile\"),watchDirectory:ee(\"watchDirectory\")};function ee(y){return function(V,L,P,k,Y,U){var j;return e.matchesExclude(V,y===\"watchFile\"?k==null?void 0:k.excludeFiles:k==null?void 0:k.excludeDirectories,he(),((j=b.getCurrentDirectory)===null||j===void 0?void 0:j.call(b))||\"\")?ve(V,P,k,Y,U):O[y].call(void 0,V,L,P,k,Y,U)}}function he(){return typeof b.useCaseSensitiveFileNames==\"boolean\"?b.useCaseSensitiveFileNames:b.useCaseSensitiveFileNames()}function F(y,V,L,P,k){return J(\"ExcludeWatcher:: Added:: \".concat(A(y,V,L,P,k,ie))),{close:function(){return J(\"ExcludeWatcher:: Close:: \".concat(A(y,V,L,P,k,ie)))}}}function x(y,V,L,P,k,Y){J(\"FileWatcher:: Added:: \".concat(A(y,L,P,k,Y,ie)));var U=q.watchFile(y,V,L,P,k,Y);return{close:function(){J(\"FileWatcher:: Close:: \".concat(A(y,L,P,k,Y,ie))),U.close()}}}function X(y,V,L,P,k,Y){var U=\"DirectoryWatcher:: Added:: \".concat(A(y,L,P,k,Y,ie));J(U);var j=e.timestamp(),H=q.watchDirectory(y,V,L,P,k,Y),I=e.timestamp()-j;return J(\"Elapsed:: \".concat(I,\"ms \").concat(U)),{close:function(){var l=\"DirectoryWatcher:: Close:: \".concat(A(y,L,P,k,Y,ie));J(l);var d=e.timestamp();H.close();var D=e.timestamp()-d;J(\"Elapsed:: \".concat(D,\"ms \").concat(l))}}}function $(y){return function(V,L,P,k,Y,U){return R[y].call(void 0,V,function(){for(var j=[],H=0;H=4,er=(we+1+\"\").length;Ae&&(er=Math.max(T.length,er));for(var ir=\"\",Cr=rr;Cr<=we;Cr++){ir+=Ee.getNewLine(),Ae&&rr+1=e.length(Ei==null?void 0:Ei.imports)+e.length(Ei==null?void 0:Ei.moduleAugmentations))return!1;var ki=e.getResolvedModule(Ei,hr,Ei&&he(Ei,Or)),dt=ki&&er.getSourceFile(ki.resolvedFileName);if(ki&&dt)return!1;var la=lr.get(hr);return la?(e.isTraceEnabled(de,pe)&&e.trace(pe,e.Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified,hr,la),!0):!1}}function $a(){return!y(er.getProjectReferences(),er.getResolvedProjectReferences(),function(Kr,_i,Ei){var tt=(_i?_i.commandLine.projectReferences:Ae)[Ei],kt=fo(tt);return Kr?!kt||kt.sourceFile!==Kr.sourceFile||!e.arrayIsEqualTo(Kr.commandLine.fileNames,kt.commandLine.fileNames):kt!==void 0},function(Kr,_i){var Ei=_i?yi(_i.sourceFile.path).commandLine.projectReferences:Ae;return!e.arrayIsEqualTo(Kr,Ei,e.projectReferenceIsEqualTo)})}function Qa(){var Kr;if(!er)return 0;var _i=er.getCompilerOptions();if(e.changesAffectModuleResolution(_i,de))return 0;var Ei=er.getRootFileNames();if(!e.arrayIsEqualTo(Ei,we)||!$a())return 0;Ae&&(Ar=Ae.map(fo));var tt=[],kt=[];if(vi=2,er.getMissingFilePaths().some(function(Ls){return pe.fileExists(Ls)}))return 0;var bt=er.getSourceFiles(),ia;(function(Ls){Ls[Ls.Exists=0]=\"Exists\",Ls[Ls.Modified=1]=\"Modified\"})(ia||(ia={}));for(var Xt=new e.Map,Za=0,bn=bt;Za=0;){if(_i.markUsed(bt))return bt;var ia=Ei.text.slice(kt[bt],kt[bt+1]).trim();if(ia!==\"\"&&!/^(\\s*)\\/\\/(.*)$/.test(ia))return-1;bt--}return-1}function Qe(Kr){return no(function(){var _i=[];return Ei(Kr,Kr),e.forEachChildRecursively(Kr,Ei,tt),_i;function Ei(Xt,Za){switch(Za.kind){case 164:case 167:case 169:if(Za.questionToken===Xt)return _i.push(ia(Xt,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,\"?\")),\"skip\";case 168:case 171:case 172:case 173:case 213:case 256:case 214:case 254:if(Za.type===Xt)return _i.push(ia(Xt,e.Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files)),\"skip\"}switch(Xt.kind){case 267:if(Xt.isTypeOnly)return _i.push(ia(Za,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,\"import type\")),\"skip\";break;case 272:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,\"export type\")),\"skip\";break;case 270:case 275:if(Xt.isTypeOnly)return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,e.isImportSpecifier(Xt)?\"import...type\":\"export...type\")),\"skip\";break;case 265:return _i.push(ia(Xt,e.Diagnostics.import_can_only_be_used_in_TypeScript_files)),\"skip\";case 271:if(Xt.isExportEquals)return _i.push(ia(Xt,e.Diagnostics.export_can_only_be_used_in_TypeScript_files)),\"skip\";break;case 291:var bn=Xt;if(bn.token===117)return _i.push(ia(Xt,e.Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files)),\"skip\";break;case 258:var _a=e.tokenToString(118);return e.Debug.assertIsDefined(_a),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,_a)),\"skip\";case 261:var qa=Xt.flags&16?e.tokenToString(142):e.tokenToString(141);return e.Debug.assertIsDefined(qa),_i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,qa)),\"skip\";case 259:return _i.push(ia(Xt,e.Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files)),\"skip\";case 260:var rn=e.Debug.checkDefined(e.tokenToString(92));return _i.push(ia(Xt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,rn)),\"skip\";case 230:return _i.push(ia(Xt,e.Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files)),\"skip\";case 229:return _i.push(ia(Xt.type,e.Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)),\"skip\";case 211:e.Debug.fail()}}function tt(Xt,Za){switch(Za.decorators===Xt&&!de.experimentalDecorators&&_i.push(ia(Za,e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning)),Za.kind){case 257:case 226:case 169:case 171:case 172:case 173:case 213:case 256:case 214:if(Xt===Za.typeParameters)return _i.push(bt(Xt,e.Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)),\"skip\";case 237:if(Xt===Za.modifiers)return kt(Za.modifiers,Za.kind===237),\"skip\";break;case 167:if(Xt===Za.modifiers){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];qa.kind!==124&&_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)))}return\"skip\"}break;case 164:if(Xt===Za.modifiers)return _i.push(bt(Xt,e.Diagnostics.Parameter_modifiers_can_only_be_used_in_TypeScript_files)),\"skip\";break;case 208:case 209:case 228:case 279:case 280:case 210:if(Xt===Za.typeArguments)return _i.push(bt(Xt,e.Diagnostics.Type_arguments_can_only_be_used_in_TypeScript_files)),\"skip\";break}}function kt(Xt,Za){for(var bn=0,_a=Xt;bn<_a.length;bn++){var qa=_a[bn];switch(qa.kind){case 85:if(Za)continue;case 123:case 121:case 122:case 145:case 135:case 126:case 159:case 101:case 144:_i.push(ia(qa,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,e.tokenToString(qa.kind)));break;case 124:case 93:case 88:}}}function bt(Xt,Za,bn,_a,qa){var rn=Xt.pos;return e.createFileDiagnostic(Kr,rn,Xt.end-rn,Za,bn,_a,qa)}function ia(Xt,Za,bn,_a,qa){return e.createDiagnosticForNodeInSourceFile(Kr,Xt,Za,bn,_a,qa)}})}function Gr(Kr,_i){return Ce(Kr,_i,ur,S)}function S(Kr,_i){return no(function(){var Ei=xn().getEmitResolver(Kr,_i);return e.getDeclarationDiagnostics(ai(e.noop),Ei,Kr)||e.emptyArray})}function Ce(Kr,_i,Ei,tt){var kt,bt=Kr?(kt=Ei.perFile)===null||kt===void 0?void 0:kt.get(Kr.path):Ei.allDiagnostics;if(bt)return bt;var ia=tt(Kr,_i);return Kr?(Ei.perFile||(Ei.perFile=new e.Map)).set(Kr.path,ia):Ei.allDiagnostics=ia,ia}function qe(Kr,_i){return Kr.isDeclarationFile?[]:Gr(Kr,_i)}function br(){return e.sortAndDeduplicateDiagnostics(e.concatenate(wi.getGlobalDiagnostics(),Zr()))}function Zr(){if(!de.configFile)return e.emptyArray;var Kr=wi.getDiagnostics(de.configFile.fileName);return Ji(function(_i){Kr=e.concatenate(Kr,wi.getDiagnostics(_i.sourceFile.fileName))}),Kr}function Si(){return we.length?e.sortAndDeduplicateDiagnostics(xn().getGlobalDiagnostics().slice()):e.emptyArray}function Pi(){return ye||e.emptyArray}function Qi(Kr,_i,Ei,tt){Go(e.normalizePath(Kr),_i,Ei,void 0,tt)}function Ct(Kr,_i){return Kr.fileName===_i.fileName}function sa(Kr,_i){return Kr.kind===79?_i.kind===79&&Kr.escapedText===_i.escapedText:_i.kind===10&&Kr.text===_i.text}function en(Kr,_i){var Ei=e.factory.createStringLiteral(Kr),tt=e.factory.createImportDeclaration(void 0,void 0,void 0,Ei,void 0);return e.addEmitFlags(tt,67108864),e.setParent(Ei,tt),e.setParent(tt,_i),Ei.flags&=-9,tt.flags&=-9,Ei}function Wa(Kr){if(Kr.imports)return;var _i=e.isSourceFileJS(Kr),Ei=e.isExternalModule(Kr),tt,kt,bt;if((de.isolatedModules||Ei)&&!Kr.isDeclarationFile){de.importHelpers&&(tt=[en(e.externalHelpersModuleNameText,Kr)]);var ia=e.getJSXRuntimeImport(e.getJSXImplicitImportBase(de,Kr),de);ia&&(tt||(tt=[])).push(en(ia,Kr))}for(var Xt=0,Za=Kr.statements;Xt=1&&e.isStringLiteralLike(ho.arguments[0])?(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.arguments[0])):e.isLiteralImportTypeNode(ho)&&(e.setParentRecursive(ho,!1),tt=e.append(tt,ho.argument.literal))}}function rn(jn,Mo){for(var ho=jn,gs=function(hr){if(hr.pos<=Mo&&(Mo0),Object.defineProperties(ia,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(Xt){this.redirectInfo.redirectTarget.id=Xt}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(Xt){this.redirectInfo.redirectTarget.symbol=Xt}}}),ia}function Kc(Kr,_i,Ei,tt,kt){e.tracing===null||e.tracing===void 0||e.tracing.push(\"program\",\"findSourceFile\",{fileName:Kr,isDefaultLib:_i||void 0,fileIncludeKind:e.FileIncludeKind[tt.kind]});var bt=pc(Kr,_i,Ei,tt,kt);return e.tracing===null||e.tracing===void 0||e.tracing.pop(),bt}function Xs(Kr,_i,Ei,tt){var kt=U(Vi(Kr),_i==null?void 0:_i.getPackageJsonInfoCache(),Ei,tt);return{languageVersion:e.getEmitScriptTarget(tt),impliedNodeFormat:kt,setExternalModuleIndicator:e.getSetExternalModuleIndicator(tt)}}function pc(Kr,_i,Ei,tt,kt){var bt=Vi(Kr);if(Pe){var ia=ce(bt);if(!ia&&pe.realpath&&de.preserveSymlinks&&e.isDeclarationFileName(Kr)&&e.stringContains(Kr,e.nodeModulesPathPart)){var Xt=Vi(pe.realpath(Kr));Xt!==bt&&(ia=ce(Xt))}if(ia){var Za=e.isString(ia)?Kc(ia,_i,Ei,tt,kt):void 0;return Za&&tc(Za,bt,void 0),Za}}var bn=Kr;if(xe.has(bt)){var _a=xe.get(bt);if(hs(_a||void 0,tt),_a&&de.forceConsistentCasingInFileNames){var qa=_a.fileName,rn=Vi(qa)!==Vi(Kr);rn&&(Kr=ps(Kr)||Kr);var jn=e.getNormalizedAbsolutePathWithoutRoot(qa,Xi),Mo=e.getNormalizedAbsolutePathWithoutRoot(Kr,Xi);jn!==Mo&&Pc(Kr,_a,tt)}return _a&&mi.get(_a.path)&&Ur===0?(mi.set(_a.path,!1),de.noResolve||(qi(_a,_i),je(_a)),de.noLib||ga(_a),ii.set(_a.path,!1),Xn(_a)):_a&&ii.get(_a.path)&&Ur0),hr.fileName=Kr,hr.path=bt,hr.resolvedPath=Vi(Kr),hr.originalFileName=bn,hs(hr,tt),pe.useCaseSensitiveFileNames()){var la=e.toFileNameLowerCase(bt),wa=mr.get(la);wa?Pc(Kr,wa,tt):mr.set(la,hr)}qr=qr||hr.hasNoDefaultLib&&!Ei,de.noResolve||(qi(hr,_i),je(hr)),de.noLib||ga(hr),Xn(hr),_i?ir.push(hr):Cr.push(hr)}return hr}function hs(Kr,_i){Kr&&be.add(Kr.path,_i)}function tc(Kr,_i,Ei){Ei?(xe.set(Ei,Kr),xe.set(_i,Kr||!1)):xe.set(_i,Kr)}function ps(Kr){var _i=Qs(Kr);return _i&&js(_i,Kr)}function Qs(Kr){if(!(!Ar||!Ar.length||e.isDeclarationFileName(Kr)||e.fileExtensionIs(Kr,\".json\")))return ds(Kr)}function js(Kr,_i){var Ei=e.outFile(Kr.commandLine.options);return Ei?e.changeExtension(Ei,\".d.ts\"):e.getOutputDeclarationFileName(_i,Kr.commandLine,!pe.useCaseSensitiveFileNames())}function ds(Kr){nr===void 0&&(nr=new e.Map,Ji(function(Ei){Vi(de.configFilePath)!==Ei.sourceFile.path&&Ei.commandLine.fileNames.forEach(function(tt){return nr.set(Vi(tt),Ei.sourceFile.path)})}));var _i=nr.get(Vi(Kr));return _i&&yi(_i)}function Ji(Kr){return e.forEachResolvedProjectReference(Ar,Kr)}function ce(Kr){if(!!e.isDeclarationFileName(Kr))return Mr===void 0&&(Mr=new e.Map,Ji(function(_i){var Ei=e.outFile(_i.commandLine.options);if(Ei){var tt=e.changeExtension(Ei,\".d.ts\");Mr.set(Vi(tt),!0)}else{var kt=e.memoize(function(){return e.getCommonSourceDirectoryOfConfig(_i.commandLine,!pe.useCaseSensitiveFileNames())});e.forEach(_i.commandLine.fileNames,function(bt){if(!e.isDeclarationFileName(bt)&&!e.fileExtensionIs(bt,\".json\")){var ia=e.getOutputDeclarationFileName(bt,_i.commandLine,!pe.useCaseSensitiveFileNames(),kt);Mr.set(Vi(ia),bt)}})}})),Mr.get(Kr)}function Rr(Kr){return Pe&&!!ds(Kr)}function yi(Kr){if(!!Oe)return Oe.get(Kr)||void 0}function qi(Kr,_i){e.forEach(Kr.referencedFiles,function(Ei,tt){Go(C(Ei.fileName,Kr.fileName),_i,!1,void 0,{kind:e.FileIncludeKind.ReferenceFile,file:Kr.path,index:tt})})}function je(Kr){var _i=Kr.typeReferenceDirectives;if(!!_i)for(var Ei=Bt(_i,Kr),tt=0;tt<_i.length;tt++){var kt=Kr.typeReferenceDirectives[tt],bt=Ei[tt],ia=e.toFileNameLowerCase(kt.fileName);e.setResolvedTypeReferenceDirective(Kr,ia,bt);var Xt=kt.resolutionMode||Kr.impliedNodeFormat;Xt&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.Node16&&e.getEmitModuleResolutionKind(de)!==e.ModuleResolutionKind.NodeNext&&wi.add(e.createDiagnosticForRange(Kr,kt,e.Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node16_or_nodenext)),Hr(ia,Xt,bt,{kind:e.FileIncludeKind.TypeReferenceDirective,file:Kr.path,index:tt})}}function Hr(Kr,_i,Ei,tt){e.tracing===null||e.tracing===void 0||e.tracing.push(\"program\",\"processTypeReferenceDirective\",{directive:Kr,hasResolved:!!ba,refKind:tt.kind,refPath:V(tt)?tt.file:void 0}),pt(Kr,_i,Ei,tt),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function pt(Kr,_i,Ei,tt){var kt=yr.get(Kr,_i);if(!(kt&&kt.primary)){var bt=!0;if(Ei){if(Ei.isExternalLibraryImport&&Ur++,Ei.primary)Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);else if(kt){if(Ei.resolvedFileName!==kt.resolvedFileName){var ia=pe.readFile(Ei.resolvedFileName),Xt=Rn(kt.resolvedFileName);ia!==Xt.text&&ko(Xt,tt,e.Diagnostics.Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict,[Kr,Ei.resolvedFileName,kt.resolvedFileName])}bt=!1}else Go(Ei.resolvedFileName,!1,!1,Ei.packageId,tt);Ei.isExternalLibraryImport&&Ur--}else ko(void 0,tt,e.Diagnostics.Cannot_find_type_definition_file_for_0,[Kr]);bt&&yr.set(Kr,_i,Ei)}}function Pt(Kr){for(var _i=Kr.split(\".\"),Ei=_i[1],tt=2;_i[tt]&&_i[tt]!==\"d\";)Ei+=(tt===2?\"/\":\"-\")+_i[tt],tt++;var kt=e.combinePaths(Xi,\"__lib_node_modules_lookup_\".concat(Kr,\"__.ts\")),bt=e.resolveModuleName(\"@typescript/lib-\"+Ei,kt,{moduleResolution:e.ModuleResolutionKind.NodeJs},pe,_r);return bt!=null&&bt.resolvedModule?bt.resolvedModule.resolvedFileName:e.combinePaths(Di,Kr)}function ga(Kr){e.forEach(Kr.libReferenceDirectives,function(_i,Ei){var tt=e.toFileNameLowerCase(_i.fileName),kt=e.libMap.get(tt);if(kt)Qi(Pt(kt),!0,!0,{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei});else{var bt=e.removeSuffix(e.removePrefix(tt,\"lib.\"),\".d.ts\"),ia=e.getSpellingSuggestion(bt,e.libs,e.identity),Xt=ia?e.Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1:e.Diagnostics.Cannot_find_lib_definition_for_0;(Ir||(Ir=[])).push({kind:0,reason:{kind:e.FileIncludeKind.LibReferenceDirective,file:Kr.path,index:Ei},diagnostic:Xt,args:[tt,ia]})}})}function ua(Kr){return pe.getCanonicalFileName(Kr)}function Xn(Kr){var _i;if(Wa(Kr),Kr.imports.length||Kr.moduleAugmentations.length){var Ei=We(Kr),tt=ba(Ei,Kr);e.Debug.assert(tt.length===Ei.length);for(var kt=(Pe?(_i=wt(Kr))===null||_i===void 0?void 0:_i.commandLine.options:void 0)||de,bt=0;btwr,rn=_a&&!ue(kt,ia)&&!kt.noResolve&&bt1})&&Jo(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,\"outDir\")}if(de.useDefineForClassFields&&_a===0&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,\"useDefineForClassFields\"),de.checkJs&&!e.getAllowJSCompilerOption(de)&&wi.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"checkJs\",\"allowJs\")),de.emitDeclarationOnly&&(e.getEmitDeclarations(de)||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,\"emitDeclarationOnly\",\"declaration\",\"composite\"),de.noEmit&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"emitDeclarationOnly\",\"noEmit\")),de.emitDecoratorMetadata&&!de.experimentalDecorators&&Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"emitDecoratorMetadata\",\"experimentalDecorators\"),de.jsxFactory?(de.reactNamespace&&Jo(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,\"reactNamespace\",\"jsxFactory\"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"jsxFactory\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),e.parseIsolatedEntityName(de.jsxFactory,_a)||eu(\"jsxFactory\",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFactory)):de.reactNamespace&&!e.isIdentifierText(de.reactNamespace,_a)&&eu(\"reactNamespace\",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,de.reactNamespace),de.jsxFragmentFactory&&(de.jsxFactory||Jo(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,\"jsxFragmentFactory\",\"jsxFactory\"),(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"jsxFragmentFactory\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),e.parseIsolatedEntityName(de.jsxFragmentFactory,_a)||eu(\"jsxFragmentFactory\",e.Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name,de.jsxFragmentFactory)),de.reactNamespace&&(de.jsx===4||de.jsx===5)&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"reactNamespace\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),de.jsxImportSource&&de.jsx===2&&Jo(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,\"jsxImportSource\",e.inverseJsxOptionMap.get(\"\"+de.jsx)),de.preserveValueImports&&e.getEmitModuleKind(de)qa?e.createDiagnosticForNodeInSourceFile(_a,rn.elements[qa],Kr.kind===e.FileIncludeKind.OutputFromProjectReference?e.Diagnostics.File_is_output_from_referenced_project_specified_here:e.Diagnostics.File_is_source_from_referenced_project_specified_here):void 0;case e.FileIncludeKind.AutomaticTypeDirectiveFile:if(!de.types)return;tt=al(\"types\",Kr.typeReference),kt=e.Diagnostics.File_is_entry_point_of_type_library_specified_here;break;case e.FileIncludeKind.LibFile:if(Kr.index!==void 0){tt=al(\"lib\",de.lib[Kr.index]),kt=e.Diagnostics.File_is_library_specified_here;break}var jn=e.forEachEntry(e.targetOptionDeclaration.type,function(Mo,ho){return Mo===e.getEmitScriptTarget(de)?ho:void 0});tt=jn?Rf(\"target\",jn):void 0,kt=e.Diagnostics.File_is_default_library_for_target_specified_here;break;default:e.Debug.assertNever(Kr)}return tt&&e.createDiagnosticForNodeInSourceFile(de.configFile,tt,kt)}}function Bs(){var Kr=de.suppressOutputPathCheck?void 0:e.getTsBuildInfoEmitOutputFilePath(de);y(Ae,Ar,function(_i,Ei,tt){var kt=(Ei?Ei.commandLine.projectReferences:Ae)[tt],bt=Ei&&Ei.sourceFile;if(!_i){Ws(bt,tt,e.Diagnostics.File_0_not_found,kt.path);return}var ia=_i.commandLine.options;if(!ia.composite||ia.noEmit){var Xt=Ei?Ei.commandLine.fileNames:we;Xt.length&&(ia.composite||Ws(bt,tt,e.Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true,kt.path),ia.noEmit&&Ws(bt,tt,e.Diagnostics.Referenced_project_0_may_not_disable_emit,kt.path))}if(kt.prepend){var Za=e.outFile(ia);Za?pe.fileExists(Za)||Ws(bt,tt,e.Diagnostics.Output_file_0_from_project_1_does_not_exist,Za,kt.path):Ws(bt,tt,e.Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set,kt.path)}!Ei&&Kr&&Kr===e.getTsBuildInfoEmitOutputFilePath(ia)&&(Ws(bt,tt,e.Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,Kr,kt.path),Wt.set(Vi(Kr),!0))})}function xc(Kr,_i,Ei,tt,kt,bt){for(var ia=!0,Xt=Zc(),Za=0,bn=Xt;Za_i&&(wi.add(e.createDiagnosticForNodeInSourceFile(de.configFile,Mo.elements[_i],Ei,tt,kt,bt)),ia=!1)}}ia&&wi.add(e.createCompilerDiagnostic(Ei,tt,kt,bt))}function su(Kr,_i,Ei,tt){for(var kt=!0,bt=Zc(),ia=0,Xt=bt;ia_i?wi.add(e.createDiagnosticForNodeInSourceFile(Kr||de.configFile,bt.elements[_i],Ei,tt,kt)):wi.add(e.createCompilerDiagnostic(Ei,tt,kt))}function pu(Kr,_i,Ei,tt,kt,bt,ia){var Xt=Uu(),Za=!Xt||!Ql(Xt,Kr,_i,Ei,tt,kt,bt,ia);Za&&wi.add(e.createCompilerDiagnostic(tt,kt,bt,ia))}function Uu(){if(Zt===void 0){Zt=!1;var Kr=e.getTsConfigObjectLiteralExpression(de.configFile);if(Kr)for(var _i=0,Ei=e.getPropertyAssignment(Kr,\"compilerOptions\");_i0)for(var P=A.getTypeChecker(),k=0,Y=y.imports;k0)for(var I=0,l=y.referencedFiles;I1&&Be(Z)}return L;function Be(Re){if(!!Re.declarations)for(var ze=0,Ee=Re.declarations;ze0;){var I=H.pop();if(!j.has(I)){var l=y.getSourceFileByPath(I);j.set(I,l),l&&J(A,y,l,L,P,k,Y)&&H.push.apply(H,ve(A,l.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(j.values(),function(d){return d}))}})(C=e.BuilderState||(e.BuilderState={}))})(ke||(ke={}));var ke;(function(e){var a;(function(j){j[j.DtsOnly=0]=\"DtsOnly\",j[j.Full=1]=\"Full\"})(a=e.BuilderFileEmit||(e.BuilderFileEmit={}));function C(j,H){return j===H||j!==void 0&&H!==void 0&&j.size===H.size&&!e.forEachKey(j,function(I){return!H.has(I)})}function w(j,H,I,l){var d=e.BuilderState.create(j,H,I,l);d.program=j;var D=j.getCompilerOptions();d.compilerOptions=D,e.outFile(D)||(d.semanticDiagnosticsPerFile=new e.Map),d.changedFilesSet=new e.Set;var fe=e.BuilderState.canReuseOldState(d.referencedMap,I),g=fe?I.compilerOptions:void 0,ne=fe&&I.semanticDiagnosticsPerFile&&!!d.semanticDiagnosticsPerFile&&!e.compilerOptionsAffectSemanticDiagnostics(D,g);if(fe){if(!I.currentChangedFilePath){var ue=I.currentAffectedFilesSignatures;e.Debug.assert(!I.affectedFiles&&(!ue||!ue.size),\"Cannot reuse if only few affected files of currentChangedFile were iterated\")}var We=I.changedFilesSet;ne&&e.Debug.assert(!We||!e.forEachKey(We,function(Re){return I.semanticDiagnosticsPerFile.has(Re)}),\"Semantic diagnostics shouldnt be available for changed files\"),We==null||We.forEach(function(Re){return d.changedFilesSet.add(Re)}),!e.outFile(D)&&I.affectedFilesPendingEmit&&(d.affectedFilesPendingEmit=I.affectedFilesPendingEmit.slice(),d.affectedFilesPendingEmitKind=I.affectedFilesPendingEmitKind&&new e.Map(I.affectedFilesPendingEmitKind),d.affectedFilesPendingEmitIndex=I.affectedFilesPendingEmitIndex,d.seenAffectedFiles=new e.Set)}var Fe=d.referencedMap,Z=fe?I.referencedMap:void 0,Be=ne&&!D.skipLibCheck==!g.skipLibCheck,ge=Be&&!D.skipDefaultLibCheck==!g.skipDefaultLibCheck;return d.fileInfos.forEach(function(Re,ze){var Ee,He;if(!fe||!(Ee=I.fileInfos.get(ze))||Ee.version!==Re.version||!C(He=Fe&&Fe.getValues(ze),Z&&Z.getValues(ze))||He&&e.forEachKey(He,function(_e){return!d.fileInfos.has(_e)&&I.fileInfos.has(_e)}))d.changedFilesSet.add(ze);else if(ne){var rr=j.getSourceFileByPath(ze);if(rr.isDeclarationFile&&!Be||rr.hasNoDefaultLib&&!ge)return;var Ie=I.semanticDiagnosticsPerFile.get(ze);Ie&&(d.semanticDiagnosticsPerFile.set(ze,I.hasReusableDiagnostic?B(Ie,j,H):Ie),d.semanticDiagnosticsFromOldState||(d.semanticDiagnosticsFromOldState=new e.Set),d.semanticDiagnosticsFromOldState.add(ze))}}),fe&&e.forEachEntry(I.fileInfos,function(Re,ze){return Re.affectsGlobalScope&&!d.fileInfos.has(ze)})?e.BuilderState.getAllFilesExcludingDefaultLibraryFile(d,j,void 0).forEach(function(Re){return d.changedFilesSet.add(Re.resolvedPath)}):g&&!e.outFile(D)&&e.compilerOptionsAffectEmit(D,g)&&(j.getSourceFiles().forEach(function(Re){return P(d,Re.resolvedPath,1)}),e.Debug.assert(!d.seenAffectedFiles||!d.seenAffectedFiles.size),d.seenAffectedFiles=d.seenAffectedFiles||new e.Set),fe&&e.forEachEntry(I.fileInfos,function(Re,ze){d.fileInfos.has(ze)&&d.fileInfos.get(ze).impliedFormat!==Re.impliedFormat&&d.changedFilesSet.add(ze)}),d.buildInfoEmitPending=!!d.changedFilesSet.size,d}function B(j,H,I){if(!j.length)return e.emptyArray;var l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(H.getCompilerOptions()),H.getCurrentDirectory()));return j.map(function(D){var fe=E(D,H,d);fe.reportsUnnecessary=D.reportsUnnecessary,fe.reportsDeprecated=D.reportDeprecated,fe.source=D.source,fe.skippedOn=D.skippedOn;var g=D.relatedInformation;return fe.relatedInformation=g?g.length?g.map(function(ne){return E(ne,H,d)}):[]:void 0,fe});function d(D){return e.toPath(D,l,I)}}function E(j,H,I){var l=j.file;return Ke(Ke({},j),{file:l?H.getSourceFileByPath(I(l)):void 0})}function Q(j){e.BuilderState.releaseCache(j),j.program=void 0}function le(j){var H,I=e.BuilderState.clone(j);return I.semanticDiagnosticsPerFile=j.semanticDiagnosticsPerFile&&new e.Map(j.semanticDiagnosticsPerFile),I.changedFilesSet=new e.Set(j.changedFilesSet),I.affectedFiles=j.affectedFiles,I.affectedFilesIndex=j.affectedFilesIndex,I.currentChangedFilePath=j.currentChangedFilePath,I.currentAffectedFilesSignatures=j.currentAffectedFilesSignatures&&new e.Map(j.currentAffectedFilesSignatures),I.currentAffectedFilesExportedModulesMap=(H=j.currentAffectedFilesExportedModulesMap)===null||H===void 0?void 0:H.clone(),I.seenAffectedFiles=j.seenAffectedFiles&&new e.Set(j.seenAffectedFiles),I.cleanedDiagnosticsOfLibFiles=j.cleanedDiagnosticsOfLibFiles,I.semanticDiagnosticsFromOldState=j.semanticDiagnosticsFromOldState&&new e.Set(j.semanticDiagnosticsFromOldState),I.program=j.program,I.compilerOptions=j.compilerOptions,I.affectedFilesPendingEmit=j.affectedFilesPendingEmit&&j.affectedFilesPendingEmit.slice(),I.affectedFilesPendingEmitKind=j.affectedFilesPendingEmitKind&&new e.Map(j.affectedFilesPendingEmitKind),I.affectedFilesPendingEmitIndex=j.affectedFilesPendingEmitIndex,I.seenEmittedFiles=j.seenEmittedFiles&&new e.Map(j.seenEmittedFiles),I.programEmitComplete=j.programEmitComplete,I}function N(j,H){e.Debug.assert(!H||!j.affectedFiles||j.affectedFiles[j.affectedFilesIndex-1]!==H||!j.semanticDiagnosticsPerFile.has(H.resolvedPath))}function p(j,H,I,l){for(var d;;){var D=j.affectedFiles;if(D){for(var fe=j.seenAffectedFiles,g=j.affectedFilesIndex;g0;){var g=fe.pop();if(!D.has(g)){if(D.set(g,!0),J(j,g,I,l,d))return;if(T(j,g,I,l,d),b(j,g)){var ne=e.Debug.checkDefined(j.program).getSourceFileByPath(g);fe.push.apply(fe,e.BuilderState.getReferencedByPaths(j,ne.resolvedPath))}}}}e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap);var ue=new e.Set;se(j,H.resolvedPath,function(We){if(J(j,We,I,l,d))return!0;var Fe=j.referencedMap.getKeys(We);return Fe&&e.forEachKey(Fe,function(Z){return R(j,Z,ue,I,l,d)})})}}function R(j,H,I,l,d,D){var fe;if(!!e.tryAddToSet(I,H)){if(J(j,H,l,d,D))return!0;T(j,H,l,d,D),e.Debug.assert(!!j.currentAffectedFilesExportedModulesMap),se(j,H,function(g){return R(j,g,I,l,d,D)}),(fe=j.referencedMap.getKeys(H))===null||fe===void 0||fe.forEach(function(g){return!I.has(g)&&T(j,g,l,d,D)})}}function q(j,H,I,l,d){d?j.buildInfoEmitPending=!1:H===j.program?(j.changedFilesSet.clear(),j.programEmitComplete=!0):(j.seenAffectedFiles.add(H.resolvedPath),I!==void 0&&(j.seenEmittedFiles||(j.seenEmittedFiles=new e.Map)).set(H.resolvedPath,I),l?(j.affectedFilesPendingEmitIndex++,j.buildInfoEmitPending=!0):j.affectedFilesIndex++)}function O(j,H,I){return q(j,I),{result:H,affected:I}}function ve(j,H,I,l,d,D){return q(j,I,l,d,D),{result:H,affected:I}}function ee(j,H,I){return e.concatenate(he(j,H,I),e.Debug.checkDefined(j.program).getProgramDiagnostics(H))}function he(j,H,I){var l=H.resolvedPath;if(j.semanticDiagnosticsPerFile){var d=j.semanticDiagnosticsPerFile.get(l);if(d)return e.filterSemanticDiagnostics(d,j.compilerOptions)}var D=e.Debug.checkDefined(j.program).getBindAndCheckDiagnostics(H,I);return j.semanticDiagnosticsPerFile&&j.semanticDiagnosticsPerFile.set(l,D),e.filterSemanticDiagnostics(D,j.compilerOptions)}function F(j,H){if(e.outFile(j.compilerOptions))return;var I=e.Debug.checkDefined(j.program).getCurrentDirectory(),l=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(j.compilerOptions),I)),d=[],D=new e.Map,fe,g,ne=e.arrayFrom(j.fileInfos.entries(),function(Ae){var er=Ae[0],ir=Ae[1],Cr=de(er);e.Debug.assert(d[Cr-1]===we(er));var Ye=j.currentAffectedFilesSignatures&&j.currentAffectedFilesSignatures.get(er),Br=Ye!=null?Ye:ir.signature;return ir.version===Br?ir.affectsGlobalScope||ir.impliedFormat?{version:ir.version,signature:void 0,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:ir.version:Br!==void 0?Ye===void 0?ir:{version:ir.version,signature:Ye,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}:{version:ir.version,signature:!1,affectsGlobalScope:ir.affectsGlobalScope,impliedFormat:ir.impliedFormat}}),ue;j.referencedMap&&(ue=e.arrayFrom(j.referencedMap.keys()).sort(e.compareStringsCaseSensitive).map(function(Ae){return[de(Ae),ye(j.referencedMap.getValues(Ae))]}));var We;j.exportedModulesMap&&(We=e.mapDefined(e.arrayFrom(j.exportedModulesMap.keys()).sort(e.compareStringsCaseSensitive),function(Ae){var er;if(j.currentAffectedFilesExportedModulesMap){if(!((er=j.currentAffectedFilesExportedModulesMap.deletedKeys())===null||er===void 0)&&er.has(Ae))return;var ir=j.currentAffectedFilesExportedModulesMap.getValues(Ae);if(ir)return[de(Ae),ye(ir)]}return[de(Ae),ye(j.exportedModulesMap.getValues(Ae))]}));var Fe;if(j.semanticDiagnosticsPerFile)for(var Z=0,Be=e.arrayFrom(j.semanticDiagnosticsPerFile.keys()).sort(e.compareStringsCaseSensitive);Z1||E.charCodeAt(0)!==47;if(p&&E.search(/[a-zA-Z]:/)!==0&&N.search(/[a-zA-z]\\$\\//)===0){if(le=E.indexOf(e.directorySeparator,le+1),le===-1)return!1;N=E.substring(Q+N.length,le+1)}if(p&&N.search(/users\\//i)!==0)return!0;for(var m=le+1,G=2;G>0;G--)if(m=E.indexOf(e.directorySeparator,m)+1,m===0)return!1;return!0}e.canWatchDirectory=C;function w(E,Q,le){var N,p,m,G=e.createMultiMap(),oe=[],f=e.createMultiMap(),T=!1,K,b,se,J=e.memoize(function(){return E.getCurrentDirectory()}),ie=E.getCachedDirectoryStructureHost(),R=new e.Map,q=e.createCacheWithRedirects(),O=e.createCacheWithRedirects(),ve=e.createModuleResolutionCache(J(),E.getCanonicalFileName,void 0,q,O),ee=new e.Map,he=e.createCacheWithRedirects(),F=e.createTypeReferenceDirectiveResolutionCache(J(),E.getCanonicalFileName,void 0,ve.getPackageJsonInfoCache(),he),x=[\".ts\",\".tsx\",\".js\",\".jsx\",\".json\"],X=new e.Map,$=new e.Map,A=Q&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(Q,J())),y=A&&E.toPath(A),V=y!==void 0?y.split(e.directorySeparator).length:0,L=new e.Map;return{getModuleResolutionCache:function(){return ve},startRecordingFilesWithChangedResolutions:j,finishRecordingFilesWithChangedResolutions:H,startCachingPerDirectoryResolution:d,finishCachingPerDirectoryResolution:D,resolveModuleNames:We,getResolvedModuleWithFailedLookupLocationsFromCache:Fe,resolveTypeReferenceDirectives:ue,removeResolutionsFromProjectReferenceRedirects:ye,removeResolutionsOfFile:Ae,hasChangedAutomaticTypeDirectiveNames:function(){return T},invalidateResolutionOfFile:ir,invalidateResolutionsOfFailedLookupLocations:Br,setFilesWithInvalidatedNonRelativeUnresolvedImports:Cr,createHasInvalidatedResolution:l,isFileWithInvalidatedNonRelativeUnresolvedImports:I,updateTypeRootsWatch:be,closeTypeRootsWatch:Ne,clear:U};function P(ur){return ur.resolvedModule}function k(ur){return ur.resolvedTypeReferenceDirective}function Y(ur,yr){return ur===void 0||yr.length<=ur.length?!1:e.startsWith(yr,ur)&&yr[ur.length]===e.directorySeparator}function U(){e.clearMap($,e.closeFileWatcherOf),X.clear(),G.clear(),Ne(),R.clear(),ee.clear(),f.clear(),oe.length=0,K=void 0,b=void 0,se=void 0,d(),T=!1}function j(){N=[]}function H(){var ur=N;return N=void 0,ur}function I(ur){if(!m)return!1;var yr=m.get(ur);return!!yr&&!!yr.length}function l(ur){if(Br(),ur)return p=void 0,e.returnTrue;var yr=p;return p=void 0,function(Ir){return!!yr&&yr.has(Ir)||I(Ir)}}function d(){ve.clear(),F.clear(),G.forEach(He),G.clear()}function D(){m=void 0,d(),$.forEach(function(ur,yr){ur.refCount===0&&($.delete(yr),ur.watcher.close())}),T=!1}function fe(ur,yr,Ir,wr,Ur,ii,mi){var pe,or=e.resolveModuleName(ur,yr,Ir,wr,ve,Ur,mi);if(!E.getGlobalCache)return or;var qr=E.getGlobalCache();if(qr!==void 0&&!e.isExternalModuleNameRelative(ur)&&!(or.resolvedModule&&e.extensionIsTS(or.resolvedModule.extension))){var si=e.loadModuleFromGlobalCache(e.Debug.checkDefined(E.globalCacheResolutionModuleName)(ur),E.projectName,Ir,wr,qr,ve),Di=si.resolvedModule,wi=si.failedLookupLocations;if(Di)return or.resolvedModule=Di,(pe=or.failedLookupLocations).push.apply(pe,wi),or}return or}function g(ur,yr,Ir,wr,Ur,ii,mi){return e.resolveTypeReferenceDirective(ur,yr,Ir,wr,Ur,F,mi)}function ne(ur){var yr,Ir,wr,Ur=ur.names,ii=ur.containingFile,mi=ur.redirectedReference,pe=ur.cache,or=ur.perDirectoryCacheWithRedirects,qr=ur.loader,si=ur.getResolutionWithResolvedFileName,Di=ur.shouldRetryResolution,wi=ur.reusedNames,Xi=ur.logChanges,et=ur.containingSourceFile,Gi=ur.containingSourceFileMode,Wt=E.toPath(ii),Zt=pe.get(Wt)||pe.set(Wt,e.createModeAwareCache()).get(Wt),_r=e.getDirectoryPath(Wt),pi=or.getOrCreateMapOfCacheRedirects(mi),ae=pi.get(_r);ae||(ae=e.createModeAwareCache(),pi.set(_r,ae));for(var Xe=[],Jr=E.getCompilationSettings(),ti=Xi&&I(Wt),Ze=E.getCurrentProgram(),Sr=Ze&&Ze.getResolvedProjectReferenceToRedirect(ii),zr=Sr?!mi||mi.sourceFile.path!==Sr.sourceFile.path:!!mi,Wr=e.createModeAwareCache(),Je=0,xe=0,vr=Ur;xeV+1?{dir:wr.slice(0,V+1).join(e.directorySeparator),dirPath:Ir.slice(0,V+1).join(e.directorySeparator)}:{dir:A,dirPath:y,nonRecursive:!1}}return ge(e.getDirectoryPath(e.getNormalizedAbsolutePath(ur,J())),e.getDirectoryPath(yr))}function ge(ur,yr){for(;e.pathContainsNodeModules(yr);)ur=e.getDirectoryPath(ur),yr=e.getDirectoryPath(yr);if(e.isNodeModulesDirectory(yr))return C(e.getDirectoryPath(yr))?{dir:ur,dirPath:yr}:void 0;var Ir=!0,wr,Ur;if(y!==void 0)for(;!Y(yr,y);){var ii=e.getDirectoryPath(yr);if(ii===yr)break;Ir=!1,wr=yr,Ur=ur,yr=ii,ur=e.getDirectoryPath(ur)}return C(yr)?{dir:Ur||ur,dirPath:wr||yr,nonRecursive:Ir}:void 0}function Re(ur){return e.fileExtensionIsOneOf(ur,x)}function ze(ur,yr,Ir,wr){if(yr.refCount)yr.refCount++,e.Debug.assertIsDefined(yr.files);else{yr.refCount=1,e.Debug.assert(e.length(yr.files)===0),e.isExternalModuleNameRelative(ur)?Ee(yr):G.add(ur,yr);var Ur=wr(yr);Ur&&Ur.resolvedFileName&&f.add(E.toPath(Ur.resolvedFileName),yr)}(yr.files||(yr.files=[])).push(Ir)}function Ee(ur){e.Debug.assert(!!ur.refCount);var yr=ur.failedLookupLocations;if(!!yr.length){oe.push(ur);for(var Ir=!1,wr=0,Ur=yr;wr1),X.set(qr,wi-1))),Di===y?ii=!0:_e(Di)}}ii&&_e(y)}}}function _e(ur){var yr=$.get(ur);yr.refCount--}function we(ur,yr,Ir){return E.watchDirectoryOfFailedLookupLocation(ur,function(wr){var Ur=E.toPath(wr);ie&&ie.addOrDeleteFileOrDirectory(wr,Ur),Ye(Ur,yr===Ur)},Ir?0:1)}function de(ur,yr,Ir){var wr=ur.get(yr);wr&&(wr.forEach(function(Ur){return Ie(Ur,yr,Ir)}),ur.delete(yr))}function ye(ur){if(!!e.fileExtensionIs(ur,\".json\")){var yr=E.getCurrentProgram();if(!!yr){var Ir=yr.getResolvedProjectReferenceByPath(ur);!Ir||Ir.commandLine.fileNames.forEach(function(wr){return Ae(E.toPath(wr))})}}}function Ae(ur){de(R,ur,P),de(ee,ur,k)}function er(ur,yr){if(!ur)return!1;for(var Ir=!1,wr=0,Ur=ur;wr1&&ze.sort(O),ne.push.apply(ne,ze));var Ee=e.getDirectoryPath(ge);if(Ee===ge)return We=ge,\"break\";ge=Ee,We=ge},We,Fe=e.getDirectoryPath(I);fe.size!==0;){var Z=ue(Fe);if(Fe=We,Z===\"break\")break}if(fe.size){var Be=e.arrayFrom(fe.values());Be.length>1&&Be.sort(O),ne.push.apply(ne,Be)}return ne}function x(I,l){var d,D=(d=I.declarations)===null||d===void 0?void 0:d.find(function(ne){return e.isNonGlobalAmbientModule(ne)&&(!e.isExternalModuleAugmentation(ne)||!e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(ne.name)))});if(D)return D.name.text;var fe=e.mapDefined(I.declarations,function(ne){var ue,We,Fe,Z;if(!e.isModuleDeclaration(ne))return;var Be=Ee(ne);if(!(((ue=Be==null?void 0:Be.parent)===null||ue===void 0?void 0:ue.parent)&&e.isModuleBlock(Be.parent)&&e.isAmbientModule(Be.parent.parent)&&e.isSourceFile(Be.parent.parent.parent)))return;var ge=(Z=(Fe=(We=Be.parent.parent.symbol.exports)===null||We===void 0?void 0:We.get(\"export=\"))===null||Fe===void 0?void 0:Fe.valueDeclaration)===null||Z===void 0?void 0:Z.expression;if(!ge)return;var Re=l.getSymbolAtLocation(ge);if(!Re)return;var ze=(Re==null?void 0:Re.flags)&2097152?l.getAliasedSymbol(Re):Re;if(ze===ne.symbol)return Be.parent.parent;function Ee(He){for(;He.flags&4;)He=He.parent;return He}}),g=fe[0];if(g)return g.name.text}function X(I,l,d){for(var D in d)for(var fe=0,g=d[D];fe=Fe.length+Z.length&&e.startsWith(l,Fe)&&e.endsWith(l,Z)||!Z&&l===e.removeTrailingDirectorySeparator(Fe)){var Be=l.substr(Fe.length,l.length-Z.length-Fe.length);return D.replace(\"*\",Be)}}else if(ue===l||ue===I)return D}}var $;(function(I){I[I.Exact=0]=\"Exact\",I[I.Directory=1]=\"Directory\",I[I.Pattern=2]=\"Pattern\"})($||($={}));function A(I,l,d,D,fe,g,ne){if(ne===void 0&&(ne=0),typeof fe==\"string\"){var ue=e.getNormalizedAbsolutePath(e.combinePaths(d,fe),void 0),We=e.hasTSFileExtension(l)?e.removeFileExtension(l)+U(l,I):void 0;switch(ne){case 0:if(e.comparePaths(l,ue)===0||We&&e.comparePaths(We,ue)===0)return{moduleFileToTry:D};break;case 1:if(e.containsPath(ue,l)){var Fe=e.getRelativePathFromDirectory(ue,l,!1);return{moduleFileToTry:e.getNormalizedAbsolutePath(e.combinePaths(e.combinePaths(D,fe),Fe),void 0)}}break;case 2:var Z=ue.indexOf(\"*\"),Be=ue.slice(0,Z),ge=ue.slice(Z+1);if(e.startsWith(l,Be)&&e.endsWith(l,ge)){var Re=l.slice(Be.length,l.length-ge.length);return{moduleFileToTry:D.replace(\"*\",Re)}}if(We&&e.startsWith(We,Be)&&e.endsWith(We,ge)){var Re=We.slice(Be.length,We.length-ge.length);return{moduleFileToTry:D.replace(\"*\",Re)}}break}}else{if(Array.isArray(fe))return e.forEach(fe,function(_e){return A(I,l,d,D,_e,g)});if(typeof fe==\"object\"&&fe!==null){if(e.allKeysStartWithDot(fe))return e.forEach(e.getOwnKeys(fe),function(_e){var we=e.getNormalizedAbsolutePath(e.combinePaths(D,_e),void 0),de=e.endsWith(_e,\"/\")?1:e.stringContains(_e,\"*\")?2:0;return A(I,l,d,we,fe[_e],g,de)});for(var ze=0,Ee=e.getOwnKeys(fe);ze=0||e.isApplicableVersionedTypesKey(g,He)){var rr=fe[He],Ie=A(I,l,d,D,rr,g);if(Ie)return Ie}}}}}function y(I,l,d,D,fe,g){var ne=P(l,I,D);if(ne!==void 0){var ue=P(d,I,D),We=ue!==void 0?e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(ue,ne,D)):ne;return e.getEmitModuleResolutionKind(g)===e.ModuleResolutionKind.NodeJs?k(We,fe,g):e.removeFileExtension(We)}}function V(I,l,d,D,fe,g,ne,ue){var We=I.path,Fe=I.isRedirect,Z=l.getCanonicalFileName,Be=l.sourceDirectory;if(!D.fileExists||!D.readFile)return;var ge=e.getNodeModulePathParts(We);if(!ge)return;var Re=We,ze=!1;if(!ne)for(var Ee=E(D,g,fe,d),He=ge.packageRootIndex,rr=void 0;;){var Ie=Ye(He),_e=Ie.moduleFileToTry,we=Ie.packageRootPath,de=Ie.blockedByExports,ye=Ie.verbatimFromExports;if(e.getEmitModuleResolutionKind(fe)!==e.ModuleResolutionKind.Classic){if(de)return;if(ye)return _e}if(we){Re=we,ze=!0;break}if(rr||(rr=_e),He=We.indexOf(e.directorySeparator,He+1),He===-1){Re=k(rr,Ee.ending,fe,D);break}}if(Fe&&!ze)return;var Ae=D.getGlobalTypingsCacheLocation&&D.getGlobalTypingsCacheLocation(),er=Z(Re.substring(0,ge.topLevelNodeModulesIndex));if(!(e.startsWith(Be,er)||Ae&&e.startsWith(Z(Ae),er)))return;var ir=Re.substring(ge.topLevelPackageNameIndex+1),Cr=e.getPackageNameFromTypesPackageName(ir);return e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Classic&&Cr===ir?void 0:Cr;function Ye(Br){var Er,Ne,n=We.substring(0,Br),lr=e.combinePaths(n,\"package.json\"),be=We,Ge=(Ne=(Er=D.getPackageJsonInfoCache)===null||Er===void 0?void 0:Er.call(D))===null||Ne===void 0?void 0:Ne.getPackageJsonInfo(lr);if(typeof Ge==\"object\"||Ge===void 0&&D.fileExists(lr)){var ur=(Ge==null?void 0:Ge.packageJsonContent)||JSON.parse(D.readFile(lr));if(e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(fe)===e.ModuleResolutionKind.NodeNext){var yr=[\"node\",ue||d.impliedNodeFormat===e.ModuleKind.ESNext?\"import\":\"require\",\"types\"],Ir=ur.exports&&typeof ur.name==\"string\"?A(fe,We,n,e.getPackageNameFromTypesPackageName(ur.name),ur.exports,yr):void 0;if(Ir){var wr=e.hasTSFileExtension(Ir.moduleFileToTry)?{moduleFileToTry:e.removeFileExtension(Ir.moduleFileToTry)+U(Ir.moduleFileToTry,fe)}:Ir;return Ke(Ke({},wr),{verbatimFromExports:!0})}if(ur.exports)return{moduleFileToTry:We,blockedByExports:!0}}var Ur=ur.typesVersions?e.getPackageJsonTypesVersionsPaths(ur.typesVersions):void 0;if(Ur){var ii=We.slice(n.length+1),mi=X(e.removeFileExtension(ii),k(ii,0,fe),Ur.paths);mi!==void 0&&(be=e.combinePaths(n,mi))}var pe=ur.typings||ur.types||ur.main||\"index.js\";if(e.isString(pe)){var or=e.toPath(pe,n,Z);if(e.removeFileExtension(or)===e.removeFileExtension(Z(be)))return{packageRootPath:n,moduleFileToTry:be}}}else{var qr=Z(be.substring(ge.packageRootIndex+1));if(qr===\"index.d.ts\"||qr===\"index.js\"||qr===\"index.ts\"||qr===\"index.tsx\")return{moduleFileToTry:be,packageRootPath:n}}return{moduleFileToTry:be}}}function L(I,l){if(!!I.fileExists)for(var d=e.flatten(e.getSupportedExtensions({allowJs:!0},[{extension:\"node\",isMixedContent:!1},{extension:\"json\",isMixedContent:!1,scriptKind:6}])),D=0,fe=d;D1?f(j,U):\"\";return\"\".concat(Y).concat(e.flattenDiagnosticMessageText(l.messageText,Y)).concat(Y).concat(Y).concat(d)}e.getErrorSummaryText=oe;function f(P,k){var Y=P.filter(function(g,ne,ue){return ne===ue.findIndex(function(We){return(We==null?void 0:We.fileName)===(g==null?void 0:g.fileName)})});if(Y.length===0)return\"\";var U=function(g){return Math.log(g)*Math.LOG10E+1},j=Y.map(function(g){return[g,e.countWhere(P,function(ne){return ne.fileName===g.fileName})]}),H=j.reduce(function(g,ne){return Math.max(g,ne[1]||0)},0),I=e.Diagnostics.Errors_Files.message,l=I.split(\" \")[0].length,d=Math.max(l,U(H)),D=Math.max(U(H)-l,0),fe=\"\";return fe+=\" \".repeat(D)+I+`\n`,j.forEach(function(g){var ne=g[0],ue=g[1],We=Math.log(ue)*Math.LOG10E+1|0,Fe=We0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:fe.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}e.emitFilesAndReportErrorsAndGetExitStatus=ve,e.noopFileWatcher={close:e.noop},e.returnNoopFileWatcher=function(){return e.noopFileWatcher};function ee(P,k){P===void 0&&(P=e.sys);var Y=k||Q(P);return{onWatchStatusChange:Y,watchFile:e.maybeBind(P,P.watchFile)||e.returnNoopFileWatcher,watchDirectory:e.maybeBind(P,P.watchDirectory)||e.returnNoopFileWatcher,setTimeout:e.maybeBind(P,P.setTimeout)||e.noop,clearTimeout:e.maybeBind(P,P.clearTimeout)||e.noop}}e.createWatchHost=ee,e.WatchType={ConfigFile:\"Config file\",ExtendedConfigFile:\"Extended config file\",SourceFile:\"Source file\",MissingFile:\"Missing file\",WildcardDirectory:\"Wild card directory\",FailedLookupLocations:\"Failed Lookup Locations\",TypeRoots:\"Type roots\",ConfigFileOfReferencedProject:\"Config file of referened project\",ExtendedConfigOfReferencedProject:\"Extended config file of referenced project\",WildcardDirectoryOfReferencedProject:\"Wild card directory of referenced project\",PackageJson:\"package.json file\"};function he(P,k){var Y=P.trace?k.extendedDiagnostics?e.WatchLogLevel.Verbose:k.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,U=Y!==e.WatchLogLevel.None?function(H){return P.trace(H)}:e.noop,j=e.getWatchFactory(P,Y,U);return j.writeLog=U,j}e.createWatchFactory=he;function F(P,k,Y){Y===void 0&&(Y=P);var U=P.useCaseSensitiveFileNames(),j=e.memoize(function(){return P.getNewLine()});return{getSourceFile:function(I,l,d){var D;try{e.performance.mark(\"beforeIORead\"),D=P.readFile(I,k().charset),e.performance.mark(\"afterIORead\"),e.performance.measure(\"I/O Read\",\"beforeIORead\",\"afterIORead\")}catch(fe){d&&d(fe.message),D=\"\"}return D!==void 0?e.createSourceFile(I,D,l):void 0},getDefaultLibLocation:e.maybeBind(P,P.getDefaultLibLocation),getDefaultLibFileName:function(I){return P.getDefaultLibFileName(I)},writeFile:H,getCurrentDirectory:e.memoize(function(){return P.getCurrentDirectory()}),useCaseSensitiveFileNames:function(){return U},getCanonicalFileName:e.createGetCanonicalFileName(U),getNewLine:function(){return e.getNewLineCharacter(k(),j)},fileExists:function(I){return P.fileExists(I)},readFile:function(I){return P.readFile(I)},trace:e.maybeBind(P,P.trace),directoryExists:e.maybeBind(Y,Y.directoryExists),getDirectories:e.maybeBind(Y,Y.getDirectories),realpath:e.maybeBind(P,P.realpath),getEnvironmentVariable:e.maybeBind(P,P.getEnvironmentVariable)||function(){return\"\"},createHash:e.maybeBind(P,P.createHash),readDirectory:e.maybeBind(P,P.readDirectory),disableUseFileVersionAsSignature:P.disableUseFileVersionAsSignature,storeFilesChangingSignatureDuringEmit:P.storeFilesChangingSignatureDuringEmit};function H(I,l,d,D){try{e.performance.mark(\"beforeIOWrite\"),e.writeFileEnsuringDirectories(I,l,d,function(fe,g,ne){return P.writeFile(fe,g,ne)},function(fe){return P.createDirectory(fe)},function(fe){return P.directoryExists(fe)}),e.performance.mark(\"afterIOWrite\"),e.performance.measure(\"I/O Write\",\"beforeIOWrite\",\"afterIOWrite\")}catch(fe){D&&D(fe.message)}}}e.createCompilerHostFromProgramHost=F;function x(P,k){var Y=P.getSourceFile,U=e.maybeBind(k,k.createHash)||e.generateDjb2Hash;P.getSourceFile=function(){for(var j=[],H=0;Hbe?Ge:be}function le(be){return!!be&&!!be.buildOrder}e.isCircularBuildOrder=le;function N(be){return le(be)?be.buildOrder:be}e.getBuildOrderFromAnyBuildOrder=N;function p(be,Ge){return function(ur){var yr=Ge?\"[\".concat(e.formatColorAndReset(e.getLocaleTimeString(be),e.ForegroundColorEscapeSequences.Grey),\"] \"):\"\".concat(e.getLocaleTimeString(be),\" - \");yr+=\"\".concat(e.flattenDiagnosticMessageText(ur.messageText,be.newLine)).concat(be.newLine+be.newLine),be.write(yr)}}e.createBuilderStatusReporter=p;function m(be,Ge,ur,yr){var Ir=e.createProgramHost(be,Ge);return Ir.getModifiedTime=be.getModifiedTime?function(wr){return be.getModifiedTime(wr)}:e.returnUndefined,Ir.setModifiedTime=be.setModifiedTime?function(wr,Ur){return be.setModifiedTime(wr,Ur)}:e.noop,Ir.deleteFile=be.deleteFile?function(wr){return be.deleteFile(wr)}:e.noop,Ir.reportDiagnostic=ur||e.createDiagnosticReporter(be),Ir.reportSolutionBuilderStatus=yr||p(be),Ir.now=e.maybeBind(be,be.now),Ir}function G(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr);return wr.reportErrorSummary=Ir,wr}e.createSolutionBuilderHost=G;function oe(be,Ge,ur,yr,Ir){be===void 0&&(be=e.sys);var wr=m(be,Ge,ur,yr),Ur=e.createWatchHost(be,Ir);return e.copyProperties(wr,Ur),wr}e.createSolutionBuilderWithWatchHost=oe;function f(be){var Ge={};return e.commonOptionsWithBuild.forEach(function(ur){e.hasProperty(be,ur.name)&&(Ge[ur.name]=be[ur.name])}),Ge}function T(be,Ge,ur){return ye(!1,be,Ge,ur)}e.createSolutionBuilder=T;function K(be,Ge,ur,yr){return ye(!0,be,Ge,ur,yr)}e.createSolutionBuilderWithWatch=K;function b(be,Ge,ur,yr,Ir){var wr=Ge,Ur=Ge,ii=wr.getCurrentDirectory(),mi=e.createGetCanonicalFileName(wr.useCaseSensitiveFileNames()),pe=f(yr),or=e.createCompilerHostFromProgramHost(wr,function(){return Zt.projectCompilerOptions});e.setGetSourceFileAsHashVersioned(or,wr),or.getParsedCommandLine=function(_r){return q(Zt,_r,J(Zt,_r))},or.resolveModuleNames=e.maybeBind(wr,wr.resolveModuleNames),or.resolveTypeReferenceDirectives=e.maybeBind(wr,wr.resolveTypeReferenceDirectives);var qr=or.resolveModuleNames?void 0:e.createModuleResolutionCache(ii,mi),si=or.resolveTypeReferenceDirectives?void 0:e.createTypeReferenceDirectiveResolutionCache(ii,mi,void 0,qr==null?void 0:qr.getPackageJsonInfoCache());if(!or.resolveModuleNames){var Di=function(_r,pi,ae,Xe){return e.resolveModuleName(_r,ae,Zt.projectCompilerOptions,or,qr,Xe,pi).resolvedModule};or.resolveModuleNames=function(_r,pi,ae,Xe,Jr,ti){return e.loadWithModeAwareCache(e.Debug.checkEachDefined(_r),e.Debug.checkDefined(ti),pi,Xe,Di)},or.getModuleResolutionCache=function(){return qr}}if(!or.resolveTypeReferenceDirectives){var wi=function(_r,pi,ae,Xe){return e.resolveTypeReferenceDirective(_r,pi,Zt.projectCompilerOptions,or,ae,Zt.typeReferenceDirectiveResolutionCache,Xe).resolvedTypeReferenceDirective};or.resolveTypeReferenceDirectives=function(_r,pi,ae,Xe,Jr){return e.loadWithTypeDirectiveCache(e.Debug.checkEachDefined(_r),pi,ae,Jr,wi)}}var Xi=e.createWatchFactory(Ur,yr),et=Xi.watchFile,Gi=Xi.watchDirectory,Wt=Xi.writeLog,Zt={host:wr,hostWithWatch:Ur,currentDirectory:ii,getCanonicalFileName:mi,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(wr),write:e.maybeBind(wr,wr.trace),options:yr,baseCompilerOptions:pe,rootNames:ur,baseWatchOptions:Ir,resolvedConfigFilePaths:new e.Map,configFileCache:new e.Map,projectStatus:new e.Map,buildInfoChecked:new e.Map,extendedConfigCache:new e.Map,builderPrograms:new e.Map,diagnostics:new e.Map,projectPendingBuild:new e.Map,projectErrorsReported:new e.Map,compilerHost:or,moduleResolutionCache:qr,typeReferenceDirectiveResolutionCache:si,buildOrder:void 0,readFileWithCache:function(_r){return wr.readFile(_r)},projectCompilerOptions:pe,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:be,currentInvalidatedProject:void 0,watch:be,allWatchedWildcardDirectories:new e.Map,allWatchedInputFiles:new e.Map,allWatchedConfigFiles:new e.Map,allWatchedExtendedConfigFiles:new e.Map,allWatchedPackageJsonFiles:new e.Map,lastCachedPackageJsonLookups:new e.Map,timerToBuildInvalidatedProject:void 0,reportFileChangeDetected:!1,watchFile:et,watchDirectory:Gi,writeLog:Wt};return Zt}function se(be,Ge){return e.toPath(Ge,be.currentDirectory,be.getCanonicalFileName)}function J(be,Ge){var ur=be.resolvedConfigFilePaths,yr=ur.get(Ge);if(yr!==void 0)return yr;var Ir=se(be,Ge);return ur.set(Ge,Ir),Ir}function ie(be){return!!be.options}function R(be,Ge){var ur=be.configFileCache.get(Ge);return ur&&ie(ur)?ur:void 0}function q(be,Ge,ur){var yr=be.configFileCache,Ir=yr.get(ur);if(Ir)return ie(Ir)?Ir:void 0;var wr,Ur=be.parseConfigFileHost,ii=be.baseCompilerOptions,mi=be.baseWatchOptions,pe=be.extendedConfigCache,or=be.host,qr;return or.getParsedCommandLine?(qr=or.getParsedCommandLine(Ge),qr||(wr=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,Ge))):(Ur.onUnRecoverableConfigFileDiagnostic=function(si){return wr=si},qr=e.getParsedCommandLineOfConfigFile(Ge,ii,Ur,pe,mi),Ur.onUnRecoverableConfigFileDiagnostic=e.noop),yr.set(ur,qr||wr),qr}function O(be,Ge){return e.resolveConfigFileProjectName(e.resolvePath(be.currentDirectory,Ge))}function ve(be,Ge){for(var ur=new e.Map,yr=new e.Map,Ir=[],wr,Ur,ii=0,mi=Ge;iiSr)}}}function U(be,Ge,ur){var yr=be.options;return Ge.type!==e.UpToDateStatusType.OutOfDateWithPrepend||yr.force?!0:ur.fileNames.length===0||!!e.getConfigFileParsingDiagnostics(ur).length||!e.isIncrementalCompilation(ur.options)}function j(be,Ge,ur){if(!!be.projectPendingBuild.size&&!le(Ge)){if(be.currentInvalidatedProject)return e.arrayIsEqualTo(be.currentInvalidatedProject.buildOrder,Ge)?be.currentInvalidatedProject:void 0;for(var yr=be.options,Ir=be.projectPendingBuild,wr=0;wrwr&&(Ir=pe,wr=or)}}if(!Ge.fileNames.length&&!e.canJsonReportNoInputFiles(Ge.raw))return{type:e.UpToDateStatusType.ContainerOnly};var qr=e.getAllProjectOutputs(Ge,!Ur.useCaseSensitiveFileNames()),si=\"(none)\",Di=C,wi=\"(none)\",Xi=a,et,Gi=a,Wt=!1;if(!yr)for(var Zt=0,_r=qr;Zt<_r.length;Zt++){var pi=_r[Zt];if(!Ur.fileExists(pi)){et=pi;break}var ae=e.getModifiedTime(Ur,pi);if(aeXi&&(Xi=ae,wi=pi),e.isDeclarationFileName(pi)){var Xe=e.getModifiedTime(Ur,pi);Gi=Q(Gi,Xe)}}var Jr=!1,ti=!1,Ze;if(Ge.projectReferences){be.projectStatus.set(ur,{type:e.UpToDateStatusType.ComputingUpstream});for(var Sr=0,zr=Ge.projectReferences;Sr=0}C.hasArgument=B;function E(le){var N=e.sys.args.indexOf(le);return N>=0&&Nm)return 2;if(K.charCodeAt(0)===46)return 3;if(K.charCodeAt(0)===95)return 4;if(b){var se=/^@([^/]+)\\/([^/]+)$/.exec(K);if(se){var J=oe(se[1],!1);if(J!==0)return{name:se[1],isScopeName:!0,result:J};var ie=oe(se[2],!1);return ie!==0?{name:se[2],isScopeName:!1,result:ie}:0}}return encodeURIComponent(K)!==K?5:0}function f(K,b){return typeof K==\"object\"?T(b,K.result,K.name,K.isScopeName):T(b,K,b,!1)}C.renderPackageNameValidationFailure=f;function T(K,b,se,J){var ie=J?\"Scope\":\"Package\";switch(b){case 1:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' cannot be empty\");case 2:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' should be less than \").concat(m,\" characters\");case 3:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' cannot start with '.'\");case 4:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' cannot start with '_'\");case 5:return\"'\".concat(K,\"':: \").concat(ie,\" name '\").concat(se,\"' contains non URI safe characters\");case 0:return e.Debug.fail();default:throw e.Debug.assertNever(b)}}})(a=e.JsTyping||(e.JsTyping={}))})(ke||(ke={}));var ke;(function(e){var a;(function(O){var ve=function(){function he(F){this.text=F}return he.prototype.getText=function(F,x){return F===0&&x===this.text.length?this.text:this.text.substring(F,x)},he.prototype.getLength=function(){return this.text.length},he.prototype.getChangeRange=function(){},he}();function ee(he){return new ve(he)}O.fromString=ee})(a=e.ScriptSnapshot||(e.ScriptSnapshot={}));var C;(function(O){O[O.Dependencies=1]=\"Dependencies\",O[O.DevDependencies=2]=\"DevDependencies\",O[O.PeerDependencies=4]=\"PeerDependencies\",O[O.OptionalDependencies=8]=\"OptionalDependencies\",O[O.All=15]=\"All\"})(C=e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={}));var w;(function(O){O[O.Off=0]=\"Off\",O[O.On=1]=\"On\",O[O.Auto=2]=\"Auto\"})(w=e.PackageJsonAutoImportPreference||(e.PackageJsonAutoImportPreference={}));var B;(function(O){O[O.Semantic=0]=\"Semantic\",O[O.PartialSemantic=1]=\"PartialSemantic\",O[O.Syntactic=2]=\"Syntactic\"})(B=e.LanguageServiceMode||(e.LanguageServiceMode={})),e.emptyOptions={};var E;(function(O){O.Original=\"original\",O.TwentyTwenty=\"2020\"})(E=e.SemanticClassificationFormat||(e.SemanticClassificationFormat={}));var Q;(function(O){O[O.Invoked=1]=\"Invoked\",O[O.TriggerCharacter=2]=\"TriggerCharacter\",O[O.TriggerForIncompleteCompletions=3]=\"TriggerForIncompleteCompletions\"})(Q=e.CompletionTriggerKind||(e.CompletionTriggerKind={}));var le;(function(O){O.Type=\"Type\",O.Parameter=\"Parameter\",O.Enum=\"Enum\"})(le=e.InlayHintKind||(e.InlayHintKind={}));var N;(function(O){O.none=\"none\",O.definition=\"definition\",O.reference=\"reference\",O.writtenReference=\"writtenReference\"})(N=e.HighlightSpanKind||(e.HighlightSpanKind={}));var p;(function(O){O[O.None=0]=\"None\",O[O.Block=1]=\"Block\",O[O.Smart=2]=\"Smart\"})(p=e.IndentStyle||(e.IndentStyle={}));var m;(function(O){O.Ignore=\"ignore\",O.Insert=\"insert\",O.Remove=\"remove\"})(m=e.SemicolonPreference||(e.SemicolonPreference={}));function G(O){return{indentSize:4,tabSize:4,newLineCharacter:O||`\n`,convertTabsToSpaces:!0,indentStyle:p.Smart,insertSpaceAfterConstructor:!1,insertSpaceAfterCommaDelimiter:!0,insertSpaceAfterSemicolonInForStatements:!0,insertSpaceBeforeAndAfterBinaryOperators:!0,insertSpaceAfterKeywordsInControlFlowStatements:!0,insertSpaceAfterFunctionKeywordForAnonymousFunctions:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:!0,insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:!1,insertSpaceBeforeFunctionParenthesis:!1,placeOpenBraceOnNewLineForFunctions:!1,placeOpenBraceOnNewLineForControlBlocks:!1,semicolons:m.Ignore,trimTrailingWhitespace:!0}}e.getDefaultFormatCodeSettings=G,e.testFormatSettings=G(`\n`);var oe;(function(O){O[O.aliasName=0]=\"aliasName\",O[O.className=1]=\"className\",O[O.enumName=2]=\"enumName\",O[O.fieldName=3]=\"fieldName\",O[O.interfaceName=4]=\"interfaceName\",O[O.keyword=5]=\"keyword\",O[O.lineBreak=6]=\"lineBreak\",O[O.numericLiteral=7]=\"numericLiteral\",O[O.stringLiteral=8]=\"stringLiteral\",O[O.localName=9]=\"localName\",O[O.methodName=10]=\"methodName\",O[O.moduleName=11]=\"moduleName\",O[O.operator=12]=\"operator\",O[O.parameterName=13]=\"parameterName\",O[O.propertyName=14]=\"propertyName\",O[O.punctuation=15]=\"punctuation\",O[O.space=16]=\"space\",O[O.text=17]=\"text\",O[O.typeParameterName=18]=\"typeParameterName\",O[O.enumMemberName=19]=\"enumMemberName\",O[O.functionName=20]=\"functionName\",O[O.regularExpressionLiteral=21]=\"regularExpressionLiteral\",O[O.link=22]=\"link\",O[O.linkName=23]=\"linkName\",O[O.linkText=24]=\"linkText\"})(oe=e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={}));var f;(function(O){O[O.None=0]=\"None\",O[O.MayIncludeAutoImports=1]=\"MayIncludeAutoImports\",O[O.IsImportStatementCompletion=2]=\"IsImportStatementCompletion\",O[O.IsContinuation=4]=\"IsContinuation\",O[O.ResolvedModuleSpecifiers=8]=\"ResolvedModuleSpecifiers\",O[O.ResolvedModuleSpecifiersBeyondLimit=16]=\"ResolvedModuleSpecifiersBeyondLimit\",O[O.MayIncludeMethodSnippets=32]=\"MayIncludeMethodSnippets\"})(f=e.CompletionInfoFlags||(e.CompletionInfoFlags={}));var T;(function(O){O.Comment=\"comment\",O.Region=\"region\",O.Code=\"code\",O.Imports=\"imports\"})(T=e.OutliningSpanKind||(e.OutliningSpanKind={}));var K;(function(O){O[O.JavaScript=0]=\"JavaScript\",O[O.SourceMap=1]=\"SourceMap\",O[O.Declaration=2]=\"Declaration\"})(K=e.OutputFileType||(e.OutputFileType={}));var b;(function(O){O[O.None=0]=\"None\",O[O.InMultiLineCommentTrivia=1]=\"InMultiLineCommentTrivia\",O[O.InSingleQuoteStringLiteral=2]=\"InSingleQuoteStringLiteral\",O[O.InDoubleQuoteStringLiteral=3]=\"InDoubleQuoteStringLiteral\",O[O.InTemplateHeadOrNoSubstitutionTemplate=4]=\"InTemplateHeadOrNoSubstitutionTemplate\",O[O.InTemplateMiddleOrTail=5]=\"InTemplateMiddleOrTail\",O[O.InTemplateSubstitutionPosition=6]=\"InTemplateSubstitutionPosition\"})(b=e.EndOfLineState||(e.EndOfLineState={}));var se;(function(O){O[O.Punctuation=0]=\"Punctuation\",O[O.Keyword=1]=\"Keyword\",O[O.Operator=2]=\"Operator\",O[O.Comment=3]=\"Comment\",O[O.Whitespace=4]=\"Whitespace\",O[O.Identifier=5]=\"Identifier\",O[O.NumberLiteral=6]=\"NumberLiteral\",O[O.BigIntLiteral=7]=\"BigIntLiteral\",O[O.StringLiteral=8]=\"StringLiteral\",O[O.RegExpLiteral=9]=\"RegExpLiteral\"})(se=e.TokenClass||(e.TokenClass={}));var J;(function(O){O.unknown=\"\",O.warning=\"warning\",O.keyword=\"keyword\",O.scriptElement=\"script\",O.moduleElement=\"module\",O.classElement=\"class\",O.localClassElement=\"local class\",O.interfaceElement=\"interface\",O.typeElement=\"type\",O.enumElement=\"enum\",O.enumMemberElement=\"enum member\",O.variableElement=\"var\",O.localVariableElement=\"local var\",O.functionElement=\"function\",O.localFunctionElement=\"local function\",O.memberFunctionElement=\"method\",O.memberGetAccessorElement=\"getter\",O.memberSetAccessorElement=\"setter\",O.memberVariableElement=\"property\",O.constructorImplementationElement=\"constructor\",O.callSignatureElement=\"call\",O.indexSignatureElement=\"index\",O.constructSignatureElement=\"construct\",O.parameterElement=\"parameter\",O.typeParameterElement=\"type parameter\",O.primitiveType=\"primitive type\",O.label=\"label\",O.alias=\"alias\",O.constElement=\"const\",O.letElement=\"let\",O.directory=\"directory\",O.externalModuleName=\"external module name\",O.jsxAttribute=\"JSX attribute\",O.string=\"string\",O.link=\"link\",O.linkName=\"link name\",O.linkText=\"link text\"})(J=e.ScriptElementKind||(e.ScriptElementKind={}));var ie;(function(O){O.none=\"\",O.publicMemberModifier=\"public\",O.privateMemberModifier=\"private\",O.protectedMemberModifier=\"protected\",O.exportedModifier=\"export\",O.ambientModifier=\"declare\",O.staticModifier=\"static\",O.abstractModifier=\"abstract\",O.optionalModifier=\"optional\",O.deprecatedModifier=\"deprecated\",O.dtsModifier=\".d.ts\",O.tsModifier=\".ts\",O.tsxModifier=\".tsx\",O.jsModifier=\".js\",O.jsxModifier=\".jsx\",O.jsonModifier=\".json\",O.dmtsModifier=\".d.mts\",O.mtsModifier=\".mts\",O.mjsModifier=\".mjs\",O.dctsModifier=\".d.cts\",O.ctsModifier=\".cts\",O.cjsModifier=\".cjs\"})(ie=e.ScriptElementKindModifier||(e.ScriptElementKindModifier={}));var R;(function(O){O.comment=\"comment\",O.identifier=\"identifier\",O.keyword=\"keyword\",O.numericLiteral=\"number\",O.bigintLiteral=\"bigint\",O.operator=\"operator\",O.stringLiteral=\"string\",O.whiteSpace=\"whitespace\",O.text=\"text\",O.punctuation=\"punctuation\",O.className=\"class name\",O.enumName=\"enum name\",O.interfaceName=\"interface name\",O.moduleName=\"module name\",O.typeParameterName=\"type parameter name\",O.typeAliasName=\"type alias name\",O.parameterName=\"parameter name\",O.docCommentTagName=\"doc comment tag name\",O.jsxOpenTagName=\"jsx open tag name\",O.jsxCloseTagName=\"jsx close tag name\",O.jsxSelfClosingTagName=\"jsx self closing tag name\",O.jsxAttribute=\"jsx attribute\",O.jsxText=\"jsx text\",O.jsxAttributeStringLiteralValue=\"jsx attribute string literal value\"})(R=e.ClassificationTypeNames||(e.ClassificationTypeNames={}));var q;(function(O){O[O.comment=1]=\"comment\",O[O.identifier=2]=\"identifier\",O[O.keyword=3]=\"keyword\",O[O.numericLiteral=4]=\"numericLiteral\",O[O.operator=5]=\"operator\",O[O.stringLiteral=6]=\"stringLiteral\",O[O.regularExpressionLiteral=7]=\"regularExpressionLiteral\",O[O.whiteSpace=8]=\"whiteSpace\",O[O.text=9]=\"text\",O[O.punctuation=10]=\"punctuation\",O[O.className=11]=\"className\",O[O.enumName=12]=\"enumName\",O[O.interfaceName=13]=\"interfaceName\",O[O.moduleName=14]=\"moduleName\",O[O.typeParameterName=15]=\"typeParameterName\",O[O.typeAliasName=16]=\"typeAliasName\",O[O.parameterName=17]=\"parameterName\",O[O.docCommentTagName=18]=\"docCommentTagName\",O[O.jsxOpenTagName=19]=\"jsxOpenTagName\",O[O.jsxCloseTagName=20]=\"jsxCloseTagName\",O[O.jsxSelfClosingTagName=21]=\"jsxSelfClosingTagName\",O[O.jsxAttribute=22]=\"jsxAttribute\",O[O.jsxText=23]=\"jsxText\",O[O.jsxAttributeStringLiteralValue=24]=\"jsxAttributeStringLiteralValue\",O[O.bigintLiteral=25]=\"bigintLiteral\"})(q=e.ClassificationType||(e.ClassificationType={}))})(ke||(ke={}));var ke;(function(e){e.scanner=e.createScanner(99,!0);var a;(function(Se){Se[Se.None=0]=\"None\",Se[Se.Value=1]=\"Value\",Se[Se.Type=2]=\"Type\",Se[Se.Namespace=4]=\"Namespace\",Se[Se.All=7]=\"All\"})(a=e.SemanticMeaning||(e.SemanticMeaning={}));function C(Se){switch(Se.kind){case 254:return e.isInJSFile(Se)&&e.getJSDocEnumTag(Se)?7:1;case 164:case 203:case 167:case 166:case 296:case 297:case 169:case 168:case 171:case 172:case 173:case 256:case 213:case 214:case 292:case 285:return 1;case 163:case 258:case 259:case 182:return 2;case 345:return Se.name===void 0?3:2;case 299:case 257:return 3;case 261:return e.isAmbientModule(Se)||e.getModuleInstanceState(Se)===1?5:4;case 260:case 269:case 270:case 265:case 266:case 271:case 272:return 7;case 305:return 5}return 7}e.getMeaningFromDeclaration=C;function w(Se){Se=Br(Se);var hr=Se.parent;return Se.kind===305?1:e.isExportAssignment(hr)||e.isExportSpecifier(hr)||e.isExternalModuleReference(hr)||e.isImportSpecifier(hr)||e.isImportClause(hr)||e.isImportEqualsDeclaration(hr)&&Se===hr.name?7:E(Se)?B(Se):e.isDeclarationName(Se)?C(hr):e.isEntityName(Se)&&e.findAncestor(Se,e.or(e.isJSDocNameReference,e.isJSDocLinkLike,e.isJSDocMemberName))?7:p(Se)?2:Q(Se)?4:e.isTypeParameterDeclaration(hr)?(e.Debug.assert(e.isJSDocTemplateTag(hr.parent)),2):e.isLiteralTypeNode(hr)?3:1}e.getMeaningFromLocation=w;function B(Se){var hr=Se.kind===161?Se:e.isQualifiedName(Se.parent)&&Se.parent.right===Se?Se.parent:void 0;return hr&&hr.parent.kind===265?7:4}function E(Se){for(;Se.parent.kind===161;)Se=Se.parent;return e.isInternalModuleImportEqualsDeclaration(Se.parent)&&Se.parent.moduleReference===Se}e.isInRightSideOfInternalImportEqualsDeclaration=E;function Q(Se){return le(Se)||N(Se)}function le(Se){var hr=Se,Or=!0;if(hr.parent.kind===161){for(;hr.parent&&hr.parent.kind===161;)hr=hr.parent;Or=hr.right===Se}return hr.parent.kind===178&&!Or}function N(Se){var hr=Se,Or=!0;if(hr.parent.kind===206){for(;hr.parent&&hr.parent.kind===206;)hr=hr.parent;Or=hr.name===Se}if(!Or&&hr.parent.kind===228&&hr.parent.parent.kind===291){var ki=hr.parent.parent.parent;return ki.kind===257&&hr.parent.parent.token===117||ki.kind===258&&hr.parent.parent.token===94}return!1}function p(Se){switch(e.isRightSideOfQualifiedNameOrPropertyAccess(Se)&&(Se=Se.parent),Se.kind){case 108:return!e.isExpressionNode(Se);case 192:return!0}switch(Se.parent.kind){case 178:return!0;case 200:return!Se.parent.isTypeOf;case 228:return e.isPartOfTypeNode(Se.parent)}return!1}function m(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallExpression,b,hr,Or)}e.isCallExpressionTarget=m;function G(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isNewExpression,b,hr,Or)}e.isNewExpressionTarget=G;function oe(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isCallOrNewExpression,b,hr,Or)}e.isCallOrNewExpressionTarget=oe;function f(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isTaggedTemplateExpression,se,hr,Or)}e.isTaggedTemplateTag=f;function T(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isDecorator,b,hr,Or)}e.isDecoratorTarget=T;function K(Se,hr,Or){return hr===void 0&&(hr=!1),Or===void 0&&(Or=!1),ie(Se,e.isJsxOpeningLikeElement,J,hr,Or)}e.isJsxOpeningLikeElementTagName=K;function b(Se){return Se.expression}function se(Se){return Se.tag}function J(Se){return Se.tagName}function ie(Se,hr,Or,ki,dt){var la=ki?q(Se):R(Se);return dt&&(la=e.skipOuterExpressions(la)),!!la&&!!la.parent&&hr(la.parent)&&Or(la.parent)===la}function R(Se){return $(Se)?Se.parent:Se}e.climbPastPropertyAccess=R;function q(Se){return $(Se)||A(Se)?Se.parent:Se}e.climbPastPropertyOrElementAccess=q;function O(Se,hr){for(;Se;){if(Se.kind===250&&Se.label.escapedText===hr)return Se.label;Se=Se.parent}}e.getTargetLabel=O;function ve(Se,hr){return e.isPropertyAccessExpression(Se.expression)?Se.expression.name.text===hr:!1}e.hasPropertyAccessExpressionWithName=ve;function ee(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isBreakOrContinueStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isJumpStatementTarget=ee;function he(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isLabeledStatement))===null||hr===void 0?void 0:hr.label)===Se}e.isLabelOfLabeledStatement=he;function F(Se){return he(Se)||ee(Se)}e.isLabelName=F;function x(Se){var hr;return((hr=e.tryCast(Se.parent,e.isJSDocTag))===null||hr===void 0?void 0:hr.tagName)===Se}e.isTagName=x;function X(Se){var hr;return((hr=e.tryCast(Se.parent,e.isQualifiedName))===null||hr===void 0?void 0:hr.right)===Se}e.isRightSideOfQualifiedName=X;function $(Se){var hr;return((hr=e.tryCast(Se.parent,e.isPropertyAccessExpression))===null||hr===void 0?void 0:hr.name)===Se}e.isRightSideOfPropertyAccess=$;function A(Se){var hr;return((hr=e.tryCast(Se.parent,e.isElementAccessExpression))===null||hr===void 0?void 0:hr.argumentExpression)===Se}e.isArgumentExpressionOfElementAccess=A;function y(Se){var hr;return((hr=e.tryCast(Se.parent,e.isModuleDeclaration))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfModuleDeclaration=y;function V(Se){var hr;return e.isIdentifier(Se)&&((hr=e.tryCast(Se.parent,e.isFunctionLike))===null||hr===void 0?void 0:hr.name)===Se}e.isNameOfFunctionDeclaration=V;function L(Se){switch(Se.parent.kind){case 167:case 166:case 296:case 299:case 169:case 168:case 172:case 173:case 261:return e.getNameOfDeclaration(Se.parent)===Se;case 207:return Se.parent.argumentExpression===Se;case 162:return!0;case 196:return Se.parent.parent.kind===194;default:return!1}}e.isLiteralNameOfPropertyDeclarationOrIndexAccess=L;function P(Se){return e.isExternalModuleImportEqualsDeclaration(Se.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(Se.parent.parent)===Se}e.isExpressionOfExternalModuleImportEqualsDeclaration=P;function k(Se){for(e.isJSDocTypeAlias(Se)&&(Se=Se.parent.parent);;){if(Se=Se.parent,!Se)return;switch(Se.kind){case 305:case 169:case 168:case 256:case 213:case 172:case 173:case 257:case 258:case 260:case 261:return Se}}}e.getContainerNode=k;function Y(Se){switch(Se.kind){case 305:return e.isExternalModule(Se)?\"module\":\"script\";case 261:return\"module\";case 257:case 226:return\"class\";case 258:return\"interface\";case 259:case 338:case 345:return\"type\";case 260:return\"enum\";case 254:return wa(Se);case 203:return wa(e.getRootDeclaration(Se));case 214:case 256:case 213:return\"function\";case 172:return\"getter\";case 173:return\"setter\";case 169:case 168:return\"method\";case 296:var hr=Se.initializer;return e.isFunctionLike(hr)?\"method\":\"property\";case 167:case 166:case 297:case 298:return\"property\";case 176:return\"index\";case 175:return\"construct\";case 174:return\"call\";case 171:case 170:return\"constructor\";case 163:return\"type parameter\";case 299:return\"enum member\";case 164:return e.hasSyntacticModifier(Se,16476)?\"property\":\"parameter\";case 265:case 270:case 275:case 268:case 274:return\"alias\";case 221:var Or=e.getAssignmentDeclarationKind(Se),ki=Se.right;switch(Or){case 7:case 8:case 9:case 0:return\"\";case 1:case 2:var dt=Y(ki);return dt===\"\"?\"const\":dt;case 3:return e.isFunctionExpression(ki)?\"method\":\"property\";case 4:return\"property\";case 5:return e.isFunctionExpression(ki)?\"method\":\"property\";case 6:return\"local class\";default:return e.assertType(Or),\"\"}case 79:return e.isImportClause(Se.parent)?\"alias\":\"\";case 271:var la=Y(Se.expression);return la===\"\"?\"const\":la;default:return\"\"}function wa(On){return e.isVarConst(On)?\"const\":e.isLet(On)?\"let\":\"var\"}}e.getNodeKind=Y;function U(Se){switch(Se.kind){case 108:return!0;case 79:return e.identifierIsThisKeyword(Se)&&Se.parent.kind===164;default:return!1}}e.isThis=U;var j=/^\\/\\/\\/\\s*=Or.end}e.startEndContainsRange=fe;function g(Se,hr,Or){return Se.pos<=hr&&Se.end>=Or}e.rangeContainsStartEnd=g;function ne(Se,hr,Or){return We(Se.pos,Se.end,hr,Or)}e.rangeOverlapsWithStartEnd=ne;function ue(Se,hr,Or,ki){return We(Se.getStart(hr),Se.end,Or,ki)}e.nodeOverlapsWithStartEnd=ue;function We(Se,hr,Or,ki){var dt=Math.max(Se,Or),la=Math.min(hr,ki);return dthr?1:jo(po[$n])?po[$n-1]&&jo(po[$n-1])?1:0:ki&&Zo===hr&&po[$n-1]&&po[$n-1].getEnd()===hr&&jo(po[$n-1])?1:-1});return wa?{value:wa}:Gn>=0&&po[Gn]?(la=po[Gn],\"continue-outer\"):{value:la}};e:for(;;){var No=On();if(typeof No==\"object\")return No.value;switch(No){case\"continue-outer\":continue e}}function jo(po){var Gn=Or?po.getFullStart():po.getStart(Se,!0);if(Gn>hr)return!1;var $n=po.getEnd();if(hr<$n||hr===$n&&(po.kind===1||dt))return!0;if(ki&&$n===hr){var Ho=Ir(hr,Se,po);if(Ho&&ki(Ho))return wa=Ho,!0}return!1}}function Ge(Se,hr){for(var Or=lr(Se,hr);or(Or);){var ki=yr(Or,Or.parent,Se);if(!ki)return;Or=ki}return Or}e.findFirstNonJsxWhitespaceToken=Ge;function ur(Se,hr){var Or=lr(Se,hr);return e.isToken(Or)&&hr>Or.getStart(Se)&&hrSe.end||la.pos===Se.end;return wa&&pi(la,Or)?ki(la):void 0})}}e.findNextToken=yr;function Ir(Se,hr,Or,ki){var dt=la(Or||hr);return e.Debug.assert(!(dt&&or(dt))),dt;function la(wa){if(wr(wa)&&wa.kind!==1)return wa;var On=wa.getChildren(hr),No=e.binarySearchKey(On,Se,function(Zo,Es){return Es},function(Zo,Es){return Se=On[Zo-1].end?0:1:-1});if(No>=0&&On[No]){var jo=On[No];if(Se=Se||!pi(jo,hr)||or(jo);if(Gn){var $n=ii(On,No,hr,wa.kind);return $n&&Ur($n,hr)}else return la(jo)}}e.Debug.assert(Or!==void 0||wa.kind===305||wa.kind===1||e.isJSDocCommentContainingNode(wa));var Ho=ii(On,On.length,hr,wa.kind);return Ho&&Ur(Ho,hr)}}e.findPrecedingToken=Ir;function wr(Se){return e.isToken(Se)&&!or(Se)}function Ur(Se,hr){if(wr(Se))return Se;var Or=Se.getChildren(hr);if(Or.length===0)return Se;var ki=ii(Or,Or.length,hr,Se.kind);return ki&&Ur(ki,hr)}function ii(Se,hr,Or,ki){for(var dt=hr-1;dt>=0;dt--){var la=Se[dt];if(or(la))dt===0&&(ki===11||ki===279)&&e.Debug.fail(\"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`\");else if(pi(Se[dt],Or))return Se[dt]}}function mi(Se,hr,Or){if(Or===void 0&&(Or=Ir(hr,Se)),Or&&e.isStringTextContainingNode(Or)){var ki=Or.getStart(Se),dt=Or.getEnd();if(kiOr.getStart(Se)}e.isInTemplateString=qr;function si(Se,hr){var Or=lr(Se,hr);return!!(e.isJsxText(Or)||Or.kind===18&&e.isJsxExpression(Or.parent)&&e.isJsxElement(Or.parent.parent)||Or.kind===29&&e.isJsxOpeningLikeElement(Or.parent)&&e.isJsxElement(Or.parent.parent))}e.isInJSXText=si;function Di(Se,hr){function Or(ki){for(;ki;)if(ki.kind>=279&&ki.kind<=288||ki.kind===11||ki.kind===29||ki.kind===31||ki.kind===79||ki.kind===19||ki.kind===18||ki.kind===43)ki=ki.parent;else if(ki.kind===278){if(hr>ki.getStart(Se))return!0;ki=ki.parent}else return!1;return!1}return Or(lr(Se,hr))}e.isInsideJsxElement=Di;function wi(Se,hr,Or){var ki=e.tokenToString(Se.kind),dt=e.tokenToString(hr),la=Se.getFullStart(),wa=Or.text.lastIndexOf(dt,la);if(wa!==-1){if(Or.text.lastIndexOf(ki,la-1)=hr})}e.getPossibleGenericSignatures=Gi;function Wt(Se,hr){if(hr.text.lastIndexOf(\"<\",Se?Se.pos:hr.text.length)!==-1)for(var Or=Se,ki=0,dt=0;Or;){switch(Or.kind){case 29:if(Or=Ir(Or.getFullStart(),hr),Or&&Or.kind===28&&(Or=Ir(Or.getFullStart(),hr)),!Or||!e.isIdentifier(Or))return;if(!ki)return e.isDeclarationName(Or)?void 0:{called:Or,nTypeArguments:dt};ki--;break;case 49:ki=3;break;case 48:ki=2;break;case 31:ki++;break;case 19:if(Or=wi(Or,18,hr),!Or)return;break;case 21:if(Or=wi(Or,20,hr),!Or)return;break;case 23:if(Or=wi(Or,22,hr),!Or)return;break;case 27:dt++;break;case 38:case 79:case 10:case 8:case 9:case 110:case 95:case 112:case 94:case 140:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(Or))break;return}Or=Ir(Or.getFullStart(),hr)}}e.getPossibleTypeArgumentsInfo=Wt;function Zt(Se,hr,Or){return e.formatting.getRangeOfEnclosingComment(Se,hr,void 0,Or)}e.isInComment=Zt;function _r(Se,hr){var Or=lr(Se,hr);return!!e.findAncestor(Or,e.isJSDoc)}e.hasDocComment=_r;function pi(Se,hr){return Se.kind===1?!!Se.jsDoc:Se.getWidth(hr)!==0}function ae(Se,hr){hr===void 0&&(hr=0);var Or=[],ki=e.isDeclaration(Se)?e.getCombinedNodeFlagsAlwaysIncludeJSDoc(Se)&~hr:0;return ki&8&&Or.push(\"private\"),ki&16&&Or.push(\"protected\"),ki&4&&Or.push(\"public\"),(ki&32||e.isClassStaticBlockDeclaration(Se))&&Or.push(\"static\"),ki&128&&Or.push(\"abstract\"),ki&1&&Or.push(\"export\"),ki&8192&&Or.push(\"deprecated\"),Se.flags&16777216&&Or.push(\"declare\"),Se.kind===271&&Or.push(\"export\"),Or.length>0?Or.join(\",\"):\"\"}e.getNodeModifiers=ae;function Xe(Se){if(Se.kind===178||Se.kind===208)return Se.typeArguments;if(e.isFunctionLike(Se)||Se.kind===257||Se.kind===258)return Se.typeParameters}e.getTypeArgumentOrTypeParameterList=Xe;function Jr(Se){return Se===2||Se===3}e.isComment=Jr;function ti(Se){return!!(Se===10||Se===13||e.isTemplateLiteralKind(Se))}e.isStringOrRegularExpressionOrTemplateLiteral=ti;function Ze(Se){return 18<=Se&&Se<=78}e.isPunctuation=Ze;function Sr(Se,hr,Or){return e.isTemplateLiteralKind(Se.kind)&&Se.getStart(Or)=2||!!Se.noEmit}e.compilerOptionsIndicateEsModules=xt;function ut(Se,hr){return{fileExists:function(Or){return Se.fileExists(Or)},getCurrentDirectory:function(){return hr.getCurrentDirectory()},readFile:e.maybeBind(hr,hr.readFile),useCaseSensitiveFileNames:e.maybeBind(hr,hr.useCaseSensitiveFileNames),getSymlinkCache:e.maybeBind(hr,hr.getSymlinkCache)||Se.getSymlinkCache,getModuleSpecifierCache:e.maybeBind(hr,hr.getModuleSpecifierCache),getPackageJsonInfoCache:function(){var Or;return(Or=Se.getModuleResolutionCache())===null||Or===void 0?void 0:Or.getPackageJsonInfoCache()},getGlobalTypingsCacheLocation:e.maybeBind(hr,hr.getGlobalTypingsCacheLocation),redirectTargetsMap:Se.redirectTargetsMap,getProjectReferenceRedirect:function(Or){return Se.getProjectReferenceRedirect(Or)},isSourceOfProjectReferenceRedirect:function(Or){return Se.isSourceOfProjectReferenceRedirect(Or)},getNearestAncestorDirectoryWithPackageJson:e.maybeBind(hr,hr.getNearestAncestorDirectoryWithPackageJson),getFileIncludeReasons:function(){return Se.getFileIncludeReasons()}}}e.createModuleSpecifierResolutionHost=ut;function Dt(Se,hr){return Ke(Ke({},ut(Se,hr)),{getCommonSourceDirectory:function(){return Se.getCommonSourceDirectory()}})}e.getModuleSpecifierResolverHost=Dt;function Rt(Se){return Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionRespectsExports=Rt;function Ii(Se){return Se===e.ModuleResolutionKind.NodeJs||Se>=e.ModuleResolutionKind.Node16&&Se<=e.ModuleResolutionKind.NodeNext}e.moduleResolutionUsesNodeModules=Ii;function Ki(Se,hr,Or,ki){return Se||hr&&hr.length?Fi(Se,hr,Or,ki):void 0}e.makeImportIfNecessary=Ki;function Fi(Se,hr,Or,ki,dt){return e.factory.createImportDeclaration(void 0,void 0,Se||hr?e.factory.createImportClause(!!dt,Se,hr&&hr.length?e.factory.createNamedImports(hr):void 0):void 0,typeof Or==\"string\"?ui(Or,ki):Or,void 0)}e.makeImport=Fi;function ui(Se,hr){return e.factory.createStringLiteral(Se,hr===0)}e.makeStringLiteral=ui;var Bt;(function(Se){Se[Se.Single=0]=\"Single\",Se[Se.Double=1]=\"Double\"})(Bt=e.QuotePreference||(e.QuotePreference={}));function wt(Se,hr){return e.isStringDoubleQuoted(Se,hr)?1:0}e.quotePreferenceFromString=wt;function na(Se,hr){if(hr.quotePreference&&hr.quotePreference!==\"auto\")return hr.quotePreference===\"single\"?0:1;var Or=Se.imports&&e.find(Se.imports,function(ki){return e.isStringLiteral(ki)&&!e.nodeIsSynthesized(ki.parent)});return Or?wt(Or,Se):1}e.getQuotePreference=na;function Ai(Se){switch(Se){case 0:return\"'\";case 1:return'\"';default:return e.Debug.assertNever(Se)}}e.getQuoteFromPreference=Ai;function Oi(Se){var hr=ji(Se);return hr===void 0?void 0:e.unescapeLeadingUnderscores(hr)}e.symbolNameNoDefault=Oi;function ji(Se){return Se.escapedName!==\"default\"?Se.escapedName:e.firstDefined(Se.declarations,function(hr){var Or=e.getNameOfDeclaration(hr);return Or&&Or.kind===79?Or.escapedText:void 0})}e.symbolEscapedNameNoDefault=ji;function Vi(Se){return e.isStringLiteralLike(Se)&&(e.isExternalModuleReference(Se.parent)||e.isImportDeclaration(Se.parent)||e.isRequireCall(Se.parent,!1)&&Se.parent.arguments[0]===Se||e.isImportCall(Se.parent)&&Se.parent.arguments[0]===Se)}e.isModuleSpecifierLike=Vi;function at(Se){return e.isBindingElement(Se)&&e.isObjectBindingPattern(Se.parent)&&e.isIdentifier(Se.name)&&!Se.propertyName}e.isObjectBindingElementWithoutPropertyName=at;function At(Se,hr){var Or=Se.getTypeAtLocation(hr.parent);return Or&&Se.getPropertyOfType(Or,hr.name.text)}e.getPropertySymbolFromBindingElement=At;function ba(Se,hr,Or){if(!!Se)for(;Se.parent;){if(e.isSourceFile(Se.parent)||!$a(Or,Se.parent,hr))return Se;Se=Se.parent}}e.getParentNodeInSpan=ba;function $a(Se,hr,Or){return e.textSpanContainsPosition(Se,hr.getStart(Or))&&hr.getEnd()<=e.textSpanEnd(Se)}function Qa(Se,hr){return Se.modifiers&&e.find(Se.modifiers,function(Or){return Or.kind===hr})}e.findModifier=Qa;function ai(Se,hr,Or,ki){var dt=e.isArray(Or)?Or[0]:Or,la=dt.kind===237?e.isRequireVariableStatement:e.isAnyImportSyntax,wa=e.filter(hr.statements,la),On=e.isArray(Or)?e.stableSort(Or,e.OrganizeImports.compareImportsOrRequireStatements):[Or];if(!wa.length)Se.insertNodesAtTopOfFile(hr,On,ki);else if(wa&&e.OrganizeImports.importsAreSorted(wa))for(var No=0,jo=On;NoSe&&Gn&&Gn!==\"...\"&&(e.isWhiteSpaceLike(Gn.charCodeAt(Gn.length-1))||hr.push(Pn(\" \",e.SymbolDisplayPartKind.space)),hr.push(Pn(\"...\",e.SymbolDisplayPartKind.punctuation))),hr},writeKeyword:function(Gn){return On(Gn,e.SymbolDisplayPartKind.keyword)},writeOperator:function(Gn){return On(Gn,e.SymbolDisplayPartKind.operator)},writePunctuation:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(Gn){return On(Gn,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(Gn){return On(Gn,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(Gn){return On(Gn,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(Gn){return On(Gn,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(Gn){return On(Gn,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:No,writeLine:jo,write:la,writeComment:la,getText:function(){return\"\"},getTextPos:function(){return 0},getColumn:function(){return 0},getLine:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingWhitespace:function(){return!1},hasTrailingComment:function(){return!1},rawWrite:e.notImplemented,getIndent:function(){return ki},increaseIndent:function(){ki++},decreaseIndent:function(){ki--},clear:po,trackSymbol:function(){return!1},reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function wa(){if(!(dt>Se)&&Or){var Gn=e.getIndentString(ki);Gn&&(dt+=Gn.length,hr.push(Pn(Gn,e.SymbolDisplayPartKind.space))),Or=!1}}function On(Gn,$n){dt>Se||(wa(),dt+=Gn.length,hr.push(Pn(Gn,$n)))}function No(Gn,$n){dt>Se||(wa(),dt+=Gn.length,hr.push(Kn(Gn,$n)))}function jo(){dt>Se||(dt+=1,hr.push(Jn()),Or=!0)}function po(){hr=[],Or=!0,ki=0,dt=0}}function Kn(Se,hr){return Pn(Se,Or(hr));function Or(ki){var dt=ki.flags;return dt&3?Bi(ki)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName:dt&4||dt&32768||dt&65536?e.SymbolDisplayPartKind.propertyName:dt&8?e.SymbolDisplayPartKind.enumMemberName:dt&16?e.SymbolDisplayPartKind.functionName:dt&32?e.SymbolDisplayPartKind.className:dt&64?e.SymbolDisplayPartKind.interfaceName:dt&384?e.SymbolDisplayPartKind.enumName:dt&1536?e.SymbolDisplayPartKind.moduleName:dt&8192?e.SymbolDisplayPartKind.methodName:dt&262144?e.SymbolDisplayPartKind.typeParameterName:dt&524288||dt&2097152?e.SymbolDisplayPartKind.aliasName:e.SymbolDisplayPartKind.text}}e.symbolPart=Kn;function Pn(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[hr]}}e.displayPart=Pn;function eo(){return Pn(\" \",e.SymbolDisplayPartKind.space)}e.spacePart=eo;function Rn(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.keyword)}e.keywordPart=Rn;function Da(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.punctuation)}e.punctuationPart=Da;function bo(Se){return Pn(e.tokenToString(Se),e.SymbolDisplayPartKind.operator)}e.operatorPart=bo;function Ro(Se){return Pn(Se,e.SymbolDisplayPartKind.parameterName)}e.parameterNamePart=Ro;function En(Se){return Pn(Se,e.SymbolDisplayPartKind.propertyName)}e.propertyNamePart=En;function Wn(Se){var hr=e.stringToToken(Se);return hr===void 0?to(Se):Rn(hr)}e.textOrKeywordPart=Wn;function to(Se){return Pn(Se,e.SymbolDisplayPartKind.text)}e.textPart=to;function Co(Se){return Pn(Se,e.SymbolDisplayPartKind.aliasName)}e.typeAliasNamePart=Co;function Ko(Se){return Pn(Se,e.SymbolDisplayPartKind.typeParameterName)}e.typeParameterNamePart=Ko;function Oo(Se){return Pn(Se,e.SymbolDisplayPartKind.linkText)}e.linkTextPart=Oo;function no(Se,hr){return{text:Se,kind:e.SymbolDisplayPartKind[e.SymbolDisplayPartKind.linkName],target:{fileName:e.getSourceFileOfNode(hr).fileName,textSpan:Oe(hr)}}}e.linkNamePart=no;function $o(Se){return Pn(Se,e.SymbolDisplayPartKind.link)}e.linkPart=$o;function Pr(Se,hr){var Or,ki=e.isJSDocLink(Se)?\"link\":e.isJSDocLinkCode(Se)?\"linkcode\":\"linkplain\",dt=[$o(\"{@\".concat(ki,\" \"))];if(!Se.name)Se.text&&dt.push(Oo(Se.text));else{var la=hr==null?void 0:hr.getSymbolAtLocation(Se.name),wa=St(Se.text),On=e.getTextOfNode(Se.name)+Se.text.slice(0,wa),No=xi(Se.text.slice(wa)),jo=(la==null?void 0:la.valueDeclaration)||((Or=la==null?void 0:la.declarations)===null||Or===void 0?void 0:Or[0]);jo?(dt.push(no(On,jo)),No&&dt.push(Oo(No))):dt.push(Oo(On+(wa||No.indexOf(\"://\")===0?\"\":\" \")+No))}return dt.push($o(\"}\")),dt}e.buildLinkParts=Pr;function xi(Se){var hr=0;if(Se.charCodeAt(hr++)===124){for(;hr\"&&hr--,Or++,!hr)return Or;return 0}var pa=`\\r\n`;function dn(Se,hr){var Or;return(hr==null?void 0:hr.newLineCharacter)||((Or=Se.getNewLine)===null||Or===void 0?void 0:Or.call(Se))||pa}e.getNewLineOrDefaultFromHost=dn;function Jn(){return Pn(`\n`,e.SymbolDisplayPartKind.lineBreak)}e.lineBreakPart=Jn;function Qe(Se){try{return Se(kn),kn.displayParts()}finally{kn.clear()}}e.mapToDisplayParts=Qe;function Gr(Se,hr,Or,ki){return ki===void 0&&(ki=0),Qe(function(dt){Se.writeType(hr,Or,ki|1024|16384,dt)})}e.typeToDisplayParts=Gr;function S(Se,hr,Or,ki,dt){return dt===void 0&&(dt=0),Qe(function(la){Se.writeSymbol(hr,Or,ki,dt|8,la)})}e.symbolToDisplayParts=S;function Ce(Se,hr,Or,ki){return ki===void 0&&(ki=0),ki|=25632,Qe(function(dt){Se.writeSignature(hr,Or,ki,void 0,dt)})}e.signatureToDisplayParts=Ce;function qe(Se,hr){var Or=hr.getSourceFile();return Qe(function(ki){var dt=e.createPrinter({removeComments:!0,omitTrailingSemicolon:!0});dt.writeNode(4,Se,Or,ki)})}e.nodeToDisplayParts=qe;function br(Se){return!!Se.parent&&e.isImportOrExportSpecifier(Se.parent)&&Se.parent.propertyName===Se}e.isImportOrExportSpecifierName=br;function Zr(Se,hr){return e.ensureScriptKind(Se,hr.getScriptKind&&hr.getScriptKind(Se))}e.getScriptKind=Zr;function Si(Se,hr){for(var Or=Se;Qi(Or)||Pi(Or)&&Or.target;)Pi(Or)&&Or.target?Or=Or.target:Or=e.skipAlias(Or,hr);return Or}e.getSymbolTarget=Si;function Pi(Se){return(Se.flags&33554432)!==0}function Qi(Se){return(Se.flags&2097152)!==0}function Ct(Se,hr){return e.getSymbolId(e.skipAlias(Se,hr))}e.getUniqueSymbolId=Ct;function sa(Se,hr){for(;e.isWhiteSpaceLike(Se.charCodeAt(hr));)hr+=1;return hr}e.getFirstNonSpaceCharacterPosition=sa;function en(Se,hr){for(;hr>-1&&e.isWhiteSpaceSingleLine(Se.charCodeAt(hr));)hr-=1;return hr+1}e.getPrecedingNonSpaceCharacterPosition=en;function Wa(Se,hr){hr===void 0&&(hr=!0);var Or=Se&&mo(Se);return Or&&!hr&&ys(Or),Or}e.getSynthesizedDeepClone=Wa;function qn(Se,hr,Or){var ki=Or(Se);return ki?e.setOriginalNode(ki,Se):ki=mo(Se,Or),ki&&!hr&&ys(ki),ki}e.getSynthesizedDeepCloneWithReplacements=qn;function mo(Se,hr){var Or=hr?function(wa){return qn(wa,!0,hr)}:Wa,ki=hr?function(wa){return wa&&Go(wa,!0,hr)}:function(wa){return wa&&So(wa)},dt=e.visitEachChild(Se,Or,e.nullTransformationContext,ki,Or);if(dt===Se){var la=e.isStringLiteral(Se)?e.setOriginalNode(e.factory.createStringLiteralFromNode(Se),Se):e.isNumericLiteral(Se)?e.setOriginalNode(e.factory.createNumericLiteral(Se.text,Se.numericLiteralFlags),Se):e.factory.cloneNode(Se);return e.setTextRange(la,Se)}return dt.parent=void 0,dt}function So(Se,hr){return hr===void 0&&(hr=!0),Se&&e.factory.createNodeArray(Se.map(function(Or){return Wa(Or,hr)}),Se.hasTrailingComma)}e.getSynthesizedDeepClones=So;function Go(Se,hr,Or){return e.factory.createNodeArray(Se.map(function(ki){return qn(ki,hr,Or)}),Se.hasTrailingComma)}e.getSynthesizedDeepClonesWithReplacements=Go;function ys(Se){Pc(Se),Vc(Se)}e.suppressLeadingAndTrailingTrivia=ys;function Pc(Se){pc(Se,512,hs)}e.suppressLeadingTrivia=Pc;function Vc(Se){pc(Se,1024,e.getLastChild)}e.suppressTrailingTrivia=Vc;function Kc(Se,hr){var Or=Se.getSourceFile(),ki=Or.text;Xs(Se,ki)?Qs(Se,hr,Or):ds(Se,hr,Or),js(Se,hr,Or)}e.copyComments=Kc;function Xs(Se,hr){for(var Or=Se.getFullStart(),ki=Se.getStart(),dt=Or;dt=0),la}e.getRenameLocation=ps;function Qs(Se,hr,Or,ki,dt){e.forEachLeadingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyLeadingComments=Qs;function js(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.end,Ji(hr,Or,ki,dt,e.addSyntheticTrailingComment))}e.copyTrailingComments=js;function ds(Se,hr,Or,ki,dt){e.forEachTrailingCommentRange(Or.text,Se.pos,Ji(hr,Or,ki,dt,e.addSyntheticLeadingComment))}e.copyTrailingAsLeadingComments=ds;function Ji(Se,hr,Or,ki,dt){return function(la,wa,On,No){On===3?(la+=2,wa-=2):la+=2,dt(Se,Or||On,hr.text.slice(la,wa),ki!==void 0?ki:No)}}function ce(Se,hr){if(e.startsWith(Se,hr))return 0;var Or=Se.indexOf(\" \"+hr);return Or===-1&&(Or=Se.indexOf(\".\"+hr)),Or===-1&&(Or=Se.indexOf('\"'+hr)),Or===-1?-1:Or+1}function Rr(Se){return e.isBinaryExpression(Se)&&Se.operatorToken.kind===27||e.isObjectLiteralExpression(Se)||e.isAsExpression(Se)&&e.isObjectLiteralExpression(Se.expression)}e.needsParentheses=Rr;function yi(Se,hr){var Or=Se.parent;switch(Or.kind){case 209:return hr.getContextualType(Or);case 221:{var ki=Or,dt=ki.left,la=ki.operatorToken,wa=ki.right;return je(la.kind)?hr.getTypeAtLocation(Se===wa?dt:wa):hr.getContextualType(Se)}case 289:return Or.expression===Se?Pt(Or,hr):void 0;default:return hr.getContextualType(Se)}}e.getContextualTypeFromParent=yi;function qi(Se,hr,Or){var ki=na(Se,hr),dt=JSON.stringify(Or);return ki===0?\"'\".concat(e.stripQuotes(dt).replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"'),\"'\"):dt}e.quote=qi;function je(Se){switch(Se){case 36:case 34:case 37:case 35:return!0;default:return!1}}e.isEqualityOperatorKind=je;function Hr(Se){switch(Se.kind){case 10:case 14:case 223:case 210:return!0;default:return!1}}e.isStringLiteralOrTemplate=Hr;function pt(Se){return!!Se.getStringIndexType()||!!Se.getNumberIndexType()}e.hasIndexSignature=pt;function Pt(Se,hr){return hr.getTypeAtLocation(Se.parent.parent.expression)}e.getSwitchedType=Pt,e.ANONYMOUS=\"anonymous function\";function ga(Se,hr,Or,ki){var dt=Or.getTypeChecker(),la=!0,wa=function(){return la=!1},On=dt.typeToTypeNode(Se,hr,1,{trackSymbol:function(No,jo,po){return la=la&&dt.isSymbolAccessible(No,jo,po,!1).accessibility===0,!la},reportInaccessibleThisError:wa,reportPrivateInBaseOfClassExpression:wa,reportInaccessibleUniqueSymbolError:wa,moduleResolverHost:Dt(Or,ki)});return la?On:void 0}e.getTypeNodeIfAccessible=ga;function ua(Se){return Se===174||Se===175||Se===176||Se===166||Se===168}function Xn(Se){return Se===256||Se===171||Se===169||Se===172||Se===173}function jr(Se){return Se===261}function fo(Se){return Se===237||Se===238||Se===240||Se===245||Se===246||Se===247||Se===251||Se===253||Se===167||Se===259||Se===266||Se===265||Se===272||Se===264||Se===271}e.syntaxRequiresTrailingSemicolonOrASI=fo,e.syntaxMayBeASICandidate=e.or(ua,Xn,jr,fo);function xs(Se,hr){var Or=Se.getLastToken(hr);if(Or&&Or.kind===26)return!1;if(ua(Se.kind)){if(Or&&Or.kind===27)return!1}else if(jr(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isModuleBlock(ki))return!1}else if(Xn(Se.kind)){var ki=e.last(Se.getChildren(hr));if(ki&&e.isFunctionBlock(ki))return!1}else if(!fo(Se.kind))return!1;if(Se.kind===240)return!0;var dt=e.findAncestor(Se,function(No){return!No.parent}),la=yr(Se,dt,hr);if(!la||la.kind===19)return!0;var wa=hr.getLineAndCharacterOfPosition(Se.getEnd()).line,On=hr.getLineAndCharacterOfPosition(la.getStart(hr)).line;return wa!==On}function Fo(Se,hr,Or){var ki=e.findAncestor(hr,function(dt){return dt.end!==Se?\"quit\":e.syntaxMayBeASICandidate(dt.kind)});return!!ki&&xs(ki,Or)}e.positionIsASICandidate=Fo;function ko(Se){var hr=0,Or=0,ki=5;return e.forEachChild(Se,function dt(la){if(fo(la.kind)){var wa=la.getLastToken(Se);(wa==null?void 0:wa.kind)===26?hr++:Or++}else if(ua(la.kind)){var wa=la.getLastToken(Se);if((wa==null?void 0:wa.kind)===26)hr++;else if(wa&&wa.kind!==27){var On=e.getLineAndCharacterOfPosition(Se,wa.getStart(Se)).line,No=e.getLineAndCharacterOfPosition(Se,e.getSpanOfTokenAtPosition(Se,wa.end).start).line;On!==No&&Or++}}return hr+Or>=ki?!0:e.forEachChild(la,dt)}),hr===0&&Or<=1?!0:hr/Or>1/ki}e.probablyUsesSemicolons=ko;function Ao(Se,hr){return tl(Se,Se.getDirectories,hr)||[]}e.tryGetDirectories=Ao;function Ms(Se,hr,Or,ki,dt){return tl(Se,Se.readDirectory,hr,Or,ki,dt)||e.emptyArray}e.tryReadDirectory=Ms;function Bs(Se,hr){return tl(Se,Se.fileExists,hr)}e.tryFileExists=Bs;function xc(Se,hr){return su(function(){return e.directoryProbablyExists(hr,Se)})||!1}e.tryDirectoryExists=xc;function su(Se){try{return Se()}catch{return}}e.tryAndIgnoreErrors=su;function tl(Se,hr){for(var Or=[],ki=2;ki\"u\")return!0;var yc=e.stripQuotes($n.getName());return jo(yc)?!0:la(Es)||la(yc)}function On($n,Ho){if(!ki.length)return!0;var Zo=po($n.fileName,Ho);return Zo?la(Zo):!0}function No($n){return!ki.length||jo($n)||e.pathIsRelative($n)||e.isRootedDiskPath($n)?!0:la($n)}function jo($n){return!!(e.isSourceFileJS(Se)&&e.JsTyping.nodeCoreModules.has($n)&&(dt===void 0&&(dt=pu(Se)),dt))}function po($n,Ho){if(!!e.stringContains($n,\"node_modules\")){var Zo=e.moduleSpecifiers.getNodeModulesPackageName(Or.getCompilationSettings(),Se,$n,Ho,hr);if(!!Zo&&!e.pathIsRelative(Zo)&&!e.isRootedDiskPath(Zo))return Gn(Zo)}}function Gn($n){var Ho=e.getPathComponents(e.getPackageNameFromTypesPackageName($n)).slice(1);return e.startsWith(Ho[0],\"@\")?\"\".concat(Ho[0],\"/\").concat(Ho[1]):Ho[0]}}e.createPackageJsonImportFilter=eu;function Ws(Se){try{return JSON.parse(Se)}catch{return}}function pu(Se){return e.some(Se.imports,function(hr){var Or=hr.text;return e.JsTyping.nodeCoreModules.has(Or)})}e.consumesNodeCoreModules=pu;function Uu(Se){return e.contains(e.getPathComponents(Se),\"node_modules\")}e.isInsideNodeModules=Uu;function Ql(Se){return Se.file!==void 0&&Se.start!==void 0&&Se.length!==void 0}e.isDiagnosticWithLocation=Ql;function xl(Se,hr){var Or=Oe(Se),ki=e.binarySearchKey(hr,Or,e.identity,e.compareTextSpans);if(ki>=0){var dt=hr[ki];return e.Debug.assertEqual(dt.file,Se.getSourceFile(),\"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile\"),e.cast(dt,Ql)}}e.findDiagnosticForNode=xl;function Ya(Se,hr){var Or,ki=e.binarySearchKey(hr,Se.start,function(On){return On.start},e.compareValues);for(ki<0&&(ki=~ki);((Or=hr[ki-1])===null||Or===void 0?void 0:Or.start)===Se.start;)ki--;for(var dt=[],la=e.textSpanEnd(Se);;){var wa=e.tryCast(hr[ki],Ql);if(!wa||wa.start>la)break;e.textSpanContainsTextSpan(Se,wa)&&dt.push(wa),ki++}return dt}e.getDiagnosticsWithinSpan=Ya;function du(Se){var hr=Se.startPosition,Or=Se.endPosition;return e.createTextSpanFromBounds(hr,Or===void 0?hr:Or)}e.getRefactorContextSpan=du;function vc(Se,hr){var Or=lr(Se,hr.start),ki=e.findAncestor(Or,function(dt){return dt.getStart(Se)e.textSpanEnd(hr)?\"quit\":e.isExpression(dt)&&ka(hr,Oe(dt,Se))});return ki}e.getFixableErrorSpanExpression=vc;function Kr(Se,hr,Or){return Or===void 0&&(Or=e.identity),Se?e.isArray(Se)?Or(e.map(Se,hr)):hr(Se,0):void 0}e.mapOneOrMany=Kr;function _i(Se){return e.isArray(Se)?e.first(Se):Se}e.firstOrOnly=_i;function Ei(Se,hr){if(kt(Se)){var Or=bt(Se);if(Or)return Or;var ki=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!1),dt=e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!0);return ki===dt?ki:[ki,dt]}return Se.name}e.getNamesForExportedSymbol=Ei;function tt(Se,hr,Or){return kt(Se)?bt(Se)||e.codefix.moduleSymbolToValidIdentifier(ia(Se),hr,!!Or):Se.name}e.getNameForExportedSymbol=tt;function kt(Se){return!(Se.flags&33554432)&&(Se.escapedName===\"export=\"||Se.escapedName===\"default\")}function bt(Se){return e.firstDefined(Se.declarations,function(hr){var Or;return e.isExportAssignment(hr)?(Or=e.tryCast(e.skipOuterExpressions(hr.expression),e.isIdentifier))===null||Or===void 0?void 0:Or.text:void 0})}function ia(Se){var hr;return e.Debug.checkDefined(Se.parent,\"Symbol parent was undefined. Flags: \".concat(e.Debug.formatSymbolFlags(Se.flags),\". \")+\"Declarations: \".concat((hr=Se.declarations)===null||hr===void 0?void 0:hr.map(function(Or){var ki=e.Debug.formatSyntaxKind(Or.kind),dt=e.isInJSFile(Or),la=Or.expression;return(dt?\"[JS]\":\"\")+ki+(la?\" (expression: \".concat(e.Debug.formatSyntaxKind(la.kind),\")\"):\"\")}).join(\", \"),\".\"))}function Xt(Se,hr,Or){var ki=hr.length;if(ki+Or>Se.length)return!1;for(var dt=0;dtd&&J.set(k,l)}else J.set(k,l)}}}var D=V===1,fe=D&&e.getLocalSymbolForExportDefault(X)||X,g=V===0||e.isExternalModuleSymbol(fe)?e.unescapeLeadingUnderscores($):e.getNamesForExportedSymbol(fe,void 0),ne=typeof g==\"string\"?g:g[0],ue=typeof g==\"string\"?void 0:g[1],We=e.stripQuotes(A.name),Fe=K++,Z=e.skipAlias(X,P),Be=X.flags&33554432?void 0:X,ge=A.flags&33554432?void 0:A;(!Be||!ge)&&se.set(Fe,[X,A]),b.add(O(ne,X,e.isExternalModuleNameRelative(We)?void 0:We,P),{id:Fe,symbolTableKey:$,symbolName:ne,capitalizedSymbolName:ue,moduleName:We,moduleFile:y,moduleFileName:y==null?void 0:y.fileName,packageName:k,exportKind:V,targetFlags:Z.flags,isFromPackageJson:L,symbol:Be,moduleSymbol:ge})},get:function(x,X){if(x===ie){var $=b.get(X);return $==null?void 0:$.map(q)}},search:function(x,X,$,A){x===ie&&b.forEach(function(y,V){var L=ve(V),P=L.symbolName,k=L.ambientModuleName,Y=X&&y[0].capitalizedSymbolName||P;if($(Y,y[0].targetFlags)){var U=y.map(q),j=U.filter(function(H,I){return F(H,y[I].packageName)});j.length&&A(j,Y,!!k,V)}})},releaseSymbols:function(){se.clear()},onFileChanged:function(x,X,$){return ee(x)&&ee(X)?!1:ie&&ie!==X.path||$&&e.consumesNodeCoreModules(x)!==e.consumesNodeCoreModules(X)||!e.arrayIsEqualTo(x.moduleAugmentations,X.moduleAugmentations)||!he(x,X)?(R.clear(),!0):(ie=X.path,!1)}};return e.Debug.isDebugging&&Object.defineProperty(R,\"__cache\",{get:function(){return b}}),R;function q(x){if(x.symbol&&x.moduleSymbol)return x;var X=x.id,$=x.exportKind,A=x.targetFlags,y=x.isFromPackageJson,V=x.moduleFileName,L=se.get(X)||e.emptyArray,P=L[0],k=L[1];if(P&&k)return{symbol:P,moduleSymbol:k,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y};var Y=(y?T.getPackageJsonAutoImportProvider():T.getCurrentProgram()).getTypeChecker(),U=x.moduleSymbol||k||e.Debug.checkDefined(x.moduleFile?Y.getMergedSymbol(x.moduleFile.symbol):Y.tryFindAmbientModule(x.moduleName)),j=x.symbol||P||e.Debug.checkDefined($===2?Y.resolveExternalModuleSymbol(U):Y.tryGetMemberInModuleExportsAndProperties(e.unescapeLeadingUnderscores(x.symbolTableKey),U),\"Could not find symbol '\".concat(x.symbolName,\"' by key '\").concat(x.symbolTableKey,\"' in module \").concat(U.name));return se.set(X,[j,U]),{symbol:j,moduleSymbol:U,moduleFileName:V,exportKind:$,targetFlags:A,isFromPackageJson:y}}function O(x,X,$,A){var y=$||\"\";return\"\".concat(x,\"|\").concat(e.getSymbolId(e.skipAlias(X,A)),\"|\").concat(y)}function ve(x){var X=x.substring(0,x.indexOf(\"|\")),$=x.substring(x.lastIndexOf(\"|\")+1),A=$===\"\"?void 0:$;return{symbolName:X,ambientModuleName:A}}function ee(x){return!x.commonJsModuleIndicator&&!x.externalModuleIndicator&&!x.moduleAugmentations&&!x.ambientModuleNames}function he(x,X){if(!e.arrayIsEqualTo(x.ambientModuleNames,X.ambientModuleNames))return!1;for(var $=-1,A=-1,y=function(Y){var U=function(j){return e.isNonGlobalAmbientModule(j)&&j.name.text===Y};if($=e.findIndex(x.statements,U,$+1),A=e.findIndex(X.statements,U,A+1),x.statements[$]!==X.statements[A])return{value:!1}},V=0,L=X.ambientModuleNames;V=ee.length){var j=w(q,x,e.lastOrUndefined($));j!==void 0&&(P=j)}}while(x!==1);function H(){switch(x){case 43:case 68:!C[X]&&q.reScanSlashToken()===13&&(x=13);break;case 29:X===79&&Y++;break;case 31:Y>0&&Y--;break;case 130:case 150:case 147:case 133:case 151:Y>0&&!F&&(x=79);break;case 15:$.push(x);break;case 18:$.length>0&&$.push(x);break;case 19:if($.length>0){var I=e.lastOrUndefined($);I===15?(x=q.reScanTemplateToken(!1),x===17?$.pop():e.Debug.assertEqual(x,16,\"Should have been a template middle.\")):(e.Debug.assertEqual(I,18,\"Should have been an open brace\"),$.pop())}break;default:if(!e.isKeyword(x))break;(X===24||e.isKeyword(X)&&e.isKeyword(x)&&!le(X,x))&&(x=79)}}return{endOfLineState:P,spans:k}}return{getClassificationsForLine:O,getEncodedLexicalClassifications:ve}}e.createClassifier=a;var C=e.arrayToNumericMap([79,10,8,9,13,108,45,46,21,23,19,110,95],function(q){return q},function(){return!0});function w(q,O,ve){switch(O){case 10:{if(!q.isUnterminated())return;for(var ee=q.getTokenText(),he=ee.length-1,F=0;ee.charCodeAt(he-F)===92;)F++;return(F&1)===0?void 0:ee.charCodeAt(0)===34?3:2}case 3:return q.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(O)){if(!q.isUnterminated())return;switch(O){case 17:return 5;case 14:return 4;default:return e.Debug.fail(\"Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #\"+O)}}return ve===15?6:void 0}}function B(q,O,ve,ee,he){if(ee!==8){q===0&&ve>0&&(q+=ve);var F=O-q;F>0&&he.push(q-ve,F,ee)}}function E(q,O){for(var ve=[],ee=q.spans,he=0,F=0;F=0){var A=x-he;A>0&&ve.push({length:A,classification:e.TokenClass.Whitespace})}ve.push({length:X,classification:Q($)}),he=x+X}var y=O.length-he;return y>0&&ve.push({length:y,classification:e.TokenClass.Whitespace}),{entries:ve,finalLexState:q.endOfLineState}}function Q(q){switch(q){case 1:return e.TokenClass.Comment;case 3:return e.TokenClass.Keyword;case 4:return e.TokenClass.NumberLiteral;case 25:return e.TokenClass.BigIntLiteral;case 5:return e.TokenClass.Operator;case 6:return e.TokenClass.StringLiteral;case 8:return e.TokenClass.Whitespace;case 10:return e.TokenClass.Punctuation;case 2:case 11:case 12:case 13:case 14:case 15:case 16:case 9:case 17:return e.TokenClass.Identifier;default:return}}function le(q,O){if(!e.isAccessibilityModifier(q))return!0;switch(O){case 136:case 149:case 134:case 124:return!0;default:return!1}}function N(q){switch(q){case 3:return{prefix:`\"\\\\\n`};case 2:return{prefix:`'\\\\\n`};case 1:return{prefix:`/*\n`};case 4:return{prefix:\"`\\n\"};case 5:return{prefix:`}\n`,pushTemplate:!0};case 6:return{prefix:\"\",pushTemplate:!0};case 0:return{prefix:\"\"};default:return e.Debug.assertNever(q)}}function p(q){switch(q){case 41:case 43:case 44:case 39:case 40:case 47:case 48:case 49:case 29:case 31:case 32:case 33:case 102:case 101:case 127:case 34:case 35:case 36:case 37:case 50:case 52:case 51:case 55:case 56:case 74:case 73:case 78:case 70:case 71:case 72:case 64:case 65:case 66:case 68:case 69:case 63:case 27:case 60:case 75:case 76:case 77:return!0;default:return!1}}function m(q){switch(q){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}function G(q){if(e.isKeyword(q))return 3;if(p(q)||m(q))return 5;if(q>=18&&q<=78)return 10;switch(q){case 8:return 4;case 9:return 25;case 10:return 6;case 13:return 7;case 7:case 3:case 2:return 1;case 5:case 4:return 8;case 79:default:return e.isTemplateLiteralKind(q)?6:2}}function oe(q,O,ve,ee,he){return J(T(q,O,ve,ee,he))}e.getSemanticClassifications=oe;function f(q,O){switch(O){case 261:case 257:case 258:case 256:case 226:case 213:case 214:q.throwIfCancellationRequested()}}function T(q,O,ve,ee,he){var F=[];return ve.forEachChild(function X($){if(!(!$||!e.textSpanIntersectsWith(he,$.pos,$.getFullWidth()))){if(f(O,$.kind),e.isIdentifier($)&&!e.nodeIsMissing($)&&ee.has($.escapedText)){var A=q.getSymbolAtLocation($),y=A&&K(A,e.getMeaningFromLocation($),q);y&&x($.getStart(ve),$.getEnd(),y)}$.forEachChild(X)}}),{spans:F,endOfLineState:0};function x(X,$,A){var y=$-X;e.Debug.assert(y>0,\"Classification had non-positive length of \".concat(y)),F.push(X),F.push(y),F.push(A)}}e.getEncodedSemanticClassifications=T;function K(q,O,ve){var ee=q.getFlags();if((ee&2885600)!==0)return ee&32?11:ee&384?12:ee&524288?16:ee&1536?O&4||O&1&&b(q)?14:void 0:ee&2097152?K(ve.getAliasedSymbol(q),O,ve):O&2?ee&64?13:ee&262144?15:void 0:void 0}function b(q){return e.some(q.declarations,function(O){return e.isModuleDeclaration(O)&&e.getModuleInstanceState(O)===1})}function se(q){switch(q){case 1:return\"comment\";case 2:return\"identifier\";case 3:return\"keyword\";case 4:return\"number\";case 25:return\"bigint\";case 5:return\"operator\";case 6:return\"string\";case 8:return\"whitespace\";case 9:return\"text\";case 10:return\"punctuation\";case 11:return\"class name\";case 12:return\"enum name\";case 13:return\"interface name\";case 14:return\"module name\";case 15:return\"type parameter name\";case 16:return\"type alias name\";case 17:return\"parameter name\";case 18:return\"doc comment tag name\";case 19:return\"jsx open tag name\";case 20:return\"jsx close tag name\";case 21:return\"jsx self closing tag name\";case 22:return\"jsx attribute\";case 23:return\"jsx text\";case 24:return\"jsx attribute string literal value\";default:return}}function J(q){e.Debug.assert(q.spans.length%3===0);for(var O=q.spans,ve=[],ee=0;ee])*)(\\/>)?)?/im,g=/(\\s)(\\S+)(\\s*)(=)(\\s*)('[^']+'|\"[^\"]+\")/img,ne=O.text.substr(d,D),ue=fe.exec(ne);if(!ue||!ue[3]||!(ue[3]in e.commentPragmas))return!1;var We=d;V(We,ue[1].length),We+=ue[1].length,$(We,ue[2].length,10),We+=ue[2].length,$(We,ue[3].length,21),We+=ue[3].length;for(var Fe=ue[4],Z=We;;){var Be=g.exec(Fe);if(!Be)break;var ge=We+Be.index+Be[1].length;ge>Z&&(V(Z,ge-Z),Z=ge),$(Z,Be[2].length,22),Z+=Be[2].length,Be[3].length&&(V(Z,Be[3].length),Z+=Be[3].length),$(Z,Be[4].length,5),Z+=Be[4].length,Be[5].length&&(V(Z,Be[5].length),Z+=Be[5].length),$(Z,Be[6].length,24),Z+=Be[6].length}We+=ue[4].length,We>Z&&V(Z,We-Z),ue[5]&&($(We,ue[5].length,10),We+=ue[5].length);var Re=d+D;return We=0),g>0){var ne=D||I(d.kind,d);ne&&$(fe,g,ne)}return!0}function H(d){switch(d.parent&&d.parent.kind){case 280:if(d.parent.tagName===d)return 19;break;case 281:if(d.parent.tagName===d)return 20;break;case 279:if(d.parent.tagName===d)return 21;break;case 285:if(d.parent.name===d)return 22;break}}function I(d,D){if(e.isKeyword(d))return 3;if((d===29||d===31)&&D&&e.getTypeArgumentOrTypeParameterList(D.parent))return 10;if(e.isPunctuation(d)){if(D){var fe=D.parent;if(d===63&&(fe.kind===254||fe.kind===167||fe.kind===164||fe.kind===285)||fe.kind===221||fe.kind===219||fe.kind===220||fe.kind===222)return 5}return 10}else{if(d===8)return 4;if(d===9)return 25;if(d===10)return D&&D.parent.kind===285?24:6;if(d===13)return 6;if(e.isTemplateLiteralKind(d))return 6;if(d===11)return 23;if(d===79){if(D){switch(D.parent.kind){case 257:return D.parent.name===D?11:void 0;case 163:return D.parent.name===D?15:void 0;case 258:return D.parent.name===D?13:void 0;case 260:return D.parent.name===D?12:void 0;case 261:return D.parent.name===D?14:void 0;case 164:return D.parent.name===D?e.isThisIdentifier(D)?3:17:void 0}if(e.isConstTypeReference(D.parent))return 3}return 2}}}function l(d){if(!!d&&e.decodedTextSpanIntersectsWith(ee,he,d.pos,d.getFullWidth())){f(q,d.kind);for(var D=0,fe=d.getChildren(O);D0}))return 0;if(ee(function(he){return he.getCallSignatures().length>0})&&!ee(function(he){return he.getProperties().length>0})||se(q))return O===9?11:10}}return O}function T(R,q){return e.isBindingElement(R)&&(R=K(R)),e.isVariableDeclaration(R)?(!e.isSourceFile(R.parent.parent.parent)||e.isCatchClause(R.parent))&&R.getSourceFile()===q:e.isFunctionDeclaration(R)?!e.isSourceFile(R.parent)&&R.getSourceFile()===q:!1}function K(R){for(;;)if(e.isBindingElement(R.parent.parent))R=R.parent.parent;else return R.parent.parent}function b(R){var q=R.parent;return q&&(e.isImportClause(q)||e.isImportSpecifier(q)||e.isNamespaceImport(q))}function se(R){for(;J(R);)R=R.parent;return e.isCallExpression(R.parent)&&R.parent.expression===R}function J(R){return e.isQualifiedName(R.parent)&&R.parent.right===R||e.isPropertyAccessExpression(R.parent)&&R.parent.name===R}var ie=new e.Map([[254,7],[164,6],[167,9],[261,3],[260,1],[299,8],[257,0],[169,11],[256,10],[213,10],[168,11],[172,9],[173,9],[166,9],[258,2],[259,5],[163,4],[296,9],[297,9]])})(w=C.v2020||(C.v2020={}))})(a=e.classifier||(e.classifier={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){function E(Z,Be,ge,Re,ze,Ee,He,rr){if(e.isInReferenceComment(Z,Be)){var Ie=l(Z,Be,Re,ze);return Ie&&p(Ie)}if(e.isInString(Z,Be,ge)){if(!ge||!e.isStringLiteralLike(ge))return;var Ie=oe(Z,ge,Be,Ee.getTypeChecker(),Re,ze,rr);return Q(Ie,ge,Z,ze,Ee,He,Re,rr)}}B.getStringLiteralCompletions=E;function Q(Z,Be,ge,Re,ze,Ee,He,rr){if(Z!==void 0){var Ie=e.createTextSpanFromStringLiteralLikeContent(Be);switch(Z.kind){case 0:return p(Z.paths);case 1:{var _e=e.createSortedArray();return C.getCompletionEntriesFromSymbols(Z.symbols,_e,Be,Be,ge,ge,Re,ze,99,Ee,4,rr,He,void 0),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:Z.hasIndexSignature,optionalReplacementSpan:Ie,entries:_e}}case 2:{var _e=Z.types.map(function(de){return{name:de.value,kindModifiers:\"\",kind:\"string\",sortText:C.SortText.LocationPriority,replacementSpan:e.getReplacementSpanForContextToken(Be)}});return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:Z.isNewIdentifier,optionalReplacementSpan:Ie,entries:_e}}default:return e.Debug.assertNever(Z)}}}function le(Z,Be,ge,Re,ze,Ee,He,rr,Ie){if(!(!Re||!e.isStringLiteralLike(Re))){var _e=oe(Be,Re,ge,ze,Ee,He,Ie);return _e&&N(Z,Re,_e,Be,ze,rr)}}B.getStringLiteralCompletionDetails=le;function N(Z,Be,ge,Re,ze,Ee){switch(ge.kind){case 0:{var He=e.find(ge.paths,function(rr){return rr.name===Z});return He&&C.createCompletionDetails(Z,m(He.extension),He.kind,[e.textPart(Z)])}case 1:{var He=e.find(ge.symbols,function(Ie){return Ie.name===Z});return He&&C.createCompletionDetailsForSymbol(He,ze,Re,Be,Ee)}case 2:return e.find(ge.types,function(rr){return rr.value===Z})?C.createCompletionDetails(Z,\"\",\"type\",[e.textPart(Z)]):void 0;default:return e.Debug.assertNever(ge)}}function p(Z){var Be=!1,ge=!0,Re=Z.map(function(ze){var Ee=ze.name,He=ze.kind,rr=ze.span,Ie=ze.extension;return{name:Ee,kind:He,kindModifiers:m(Ie),sortText:C.SortText.LocationPriority,replacementSpan:rr}});return{isGlobalCompletion:Be,isMemberCompletion:!1,isNewIdentifierLocation:ge,entries:Re}}function m(Z){switch(Z){case\".d.ts\":return\".d.ts\";case\".js\":return\".js\";case\".json\":return\".json\";case\".jsx\":return\".jsx\";case\".ts\":return\".ts\";case\".tsx\":return\".tsx\";case\".d.mts\":return\".d.mts\";case\".mjs\":return\".mjs\";case\".mts\":return\".mts\";case\".d.cts\":return\".d.cts\";case\".cjs\":return\".cjs\";case\".cts\":return\".cts\";case\".tsbuildinfo\":return e.Debug.fail(\"Extension \".concat(\".tsbuildinfo\",\" is unsupported.\"));case void 0:return\"\";default:return e.Debug.assertNever(Z)}}var G;(function(Z){Z[Z.Paths=0]=\"Paths\",Z[Z.Properties=1]=\"Properties\",Z[Z.Types=2]=\"Types\"})(G||(G={}));function oe(Z,Be,ge,Re,ze,Ee,He){var rr=f(Be.parent);switch(rr.kind){case 196:{var Ie=f(rr.parent);switch(Ie.kind){case 178:{var _e=Ie,we=e.findAncestor(rr,function(n){return n.parent===_e});return we?{kind:2,types:J(Re.getTypeArgumentConstraint(we)),isNewIdentifier:!1}:void 0}case 194:var de=Ie,ye=de.indexType,Ae=de.objectType;return e.rangeContainsPosition(ye,ge)?b(Re.getTypeFromTypeNode(Ae)):void 0;case 200:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};case 187:{if(!e.isTypeReferenceNode(Ie.parent))return;var er=T(Ie,rr),ir=J(Re.getTypeArgumentConstraint(Ie)).filter(function(n){return!e.contains(er,n.value)});return{kind:2,types:ir,isNewIdentifier:!1}}default:return}}case 296:return e.isObjectLiteralExpression(rr.parent)&&rr.name===Be?se(Re,rr.parent):Ne();case 207:{var Cr=rr,Ye=Cr.expression,Br=Cr.argumentExpression;return Be===e.skipParentheses(Br)?b(Re.getTypeAtLocation(Ye)):void 0}case 208:case 209:case 285:if(!Fe(Be)&&!e.isImportCall(rr)){var Er=e.SignatureHelp.getArgumentInfoForCompletions(rr.kind===285?rr.parent:Be,ge,Z);return Er?K(Er.invocation,Be,Er,Re):Ne()}case 266:case 272:case 277:return{kind:0,paths:O(Z,Be,ze,Ee,Re,He)};default:return Ne()}function Ne(){return{kind:2,types:J(e.getContextualTypeFromParent(Be,Re)),isNewIdentifier:!1}}}function f(Z){switch(Z.kind){case 191:return e.walkUpParenthesizedTypes(Z);case 212:return e.walkUpParenthesizedExpressions(Z);default:return Z}}function T(Z,Be){return e.mapDefined(Z.types,function(ge){return ge!==Be&&e.isLiteralTypeNode(ge)&&e.isStringLiteral(ge.literal)?ge.literal.text:void 0})}function K(Z,Be,ge,Re){var ze=!1,Ee=new e.Map,He=[],rr=e.isJsxOpeningLikeElement(Z)?e.Debug.checkDefined(e.findAncestor(Be.parent,e.isJsxAttribute)):Be;Re.getResolvedSignatureForStringLiteralCompletions(Z,rr,He);var Ie=e.flatMap(He,function(_e){if(!(!e.signatureHasRestParameter(_e)&&ge.argumentCount>_e.parameters.length)){var we=_e.getTypeParameterAtPosition(ge.argumentIndex);if(e.isJsxOpeningLikeElement(Z)){var de=Re.getTypeOfPropertyOfType(we,rr.name.text);de&&(we=de)}return ze=ze||!!(we.flags&4),J(we,Ee)}});return{kind:2,types:Ie,isNewIdentifier:ze}}function b(Z){return Z&&{kind:1,symbols:e.filter(Z.getApparentProperties(),function(Be){return!(Be.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(Be.valueDeclaration))}),hasIndexSignature:e.hasIndexSignature(Z)}}function se(Z,Be){var ge=Z.getContextualType(Be);if(!!ge){var Re=Z.getContextualType(Be,4),ze=C.getPropertiesForObjectExpression(ge,Re,Be,Z);return{kind:1,symbols:ze,hasIndexSignature:e.hasIndexSignature(ge)}}}function J(Z,Be){return Be===void 0&&(Be=new e.Map),Z?(Z=e.skipConstraint(Z),Z.isUnion()?e.flatMap(Z.types,function(ge){return J(ge,Be)}):Z.isStringLiteral()&&!(Z.flags&1024)&&e.addToSeen(Be,Z.value)?[Z]:e.emptyArray):e.emptyArray}function ie(Z,Be,ge){return{name:Z,kind:Be,extension:ge}}function R(Z){return ie(Z,\"directory\",void 0)}function q(Z,Be,ge){var Re=fe(Z,Be),ze=Z.length===0?void 0:e.createTextSpan(Be,Z.length);return ge.map(function(Ee){var He=Ee.name,rr=Ee.kind,Ie=Ee.extension;return Math.max(He.indexOf(e.directorySeparator),He.indexOf(e.altDirectorySeparator))!==-1?{name:He,kind:rr,extension:Ie,span:ze}:{name:He,kind:rr,extension:Ie,span:Re}})}function O(Z,Be,ge,Re,ze,Ee){return q(Be.text,Be.getStart(Z)+1,ve(Z,Be,ge,Re,ze,Ee))}function ve(Z,Be,ge,Re,ze,Ee){var He=e.normalizeSlashes(Be.text),rr=Z.path,Ie=e.getDirectoryPath(rr);return g(He)||!ge.baseUrl&&(e.isRootedDiskPath(He)||e.isUrl(He))?he(He,Ie,ge,Re,rr,_e()):P(He,Ie,ge,Re,ze);function _e(){var we=e.isStringLiteralLike(Be)?e.getModeForUsageLocation(Z,Be):void 0;return Ee.importModuleSpecifierEnding===\"js\"||we===e.ModuleKind.ESNext?2:0}}function ee(Z,Be){return Be===void 0&&(Be=0),{extensions:e.flatten(X(Z)),includeExtensionsOption:Be}}function he(Z,Be,ge,Re,ze,Ee){var He=ee(ge,Ee);return ge.rootDirs?A(ge.rootDirs,Z,Be,He,ge,Re,ze):V(Z,Be,He,Re,ze)}function F(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeJs||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function x(Z){return e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.Node16||e.getEmitModuleResolutionKind(Z)===e.ModuleResolutionKind.NodeNext}function X(Z){var Be=e.getSupportedExtensions(Z);return F(Z)?e.getSupportedExtensionsWithJsonIfResolveJsonModule(Z,Be):Be}function $(Z,Be,ge,Re){Z=Z.map(function(Ee){return e.normalizePath(e.isRootedDiskPath(Ee)?Ee:e.combinePaths(Be,Ee))});var ze=e.firstDefined(Z,function(Ee){return e.containsPath(Ee,ge,Be,Re)?ge.substr(Ee.length):void 0});return e.deduplicate(Ve(Ve([],Z.map(function(Ee){return e.combinePaths(Ee,ze)}),!0),[ge],!1),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}function A(Z,Be,ge,Re,ze,Ee,He){var rr=ze.project||Ee.getCurrentDirectory(),Ie=!(Ee.useCaseSensitiveFileNames&&Ee.useCaseSensitiveFileNames()),_e=$(Z,rr,ge,Ie);return e.flatMap(_e,function(we){return V(Be,we,Re,Ee,He)})}var y;(function(Z){Z[Z.Exclude=0]=\"Exclude\",Z[Z.Include=1]=\"Include\",Z[Z.ModuleSpecifierCompletion=2]=\"ModuleSpecifierCompletion\"})(y||(y={}));function V(Z,Be,ge,Re,ze,Ee){var He=ge.extensions,rr=ge.includeExtensionsOption;Ee===void 0&&(Ee=[]),Z===void 0&&(Z=\"\"),Z=e.normalizeSlashes(Z),e.hasTrailingDirectorySeparator(Z)||(Z=e.getDirectoryPath(Z)),Z===\"\"&&(Z=\".\"+e.directorySeparator),Z=e.ensureTrailingDirectorySeparator(Z);var Ie=e.resolvePath(Be,Z),_e=e.hasTrailingDirectorySeparator(Ie)?Ie:e.getDirectoryPath(Ie),we=!(Re.useCaseSensitiveFileNames&&Re.useCaseSensitiveFileNames());if(!e.tryDirectoryExists(Re,_e))return Ee;var de=e.tryReadDirectory(Re,_e,He,void 0,[\"./*\"]);if(de){for(var ye=new e.Map,Ae=0,er=de;Ae=er.pos&&Be<=er.end});if(!!He){var rr=Z.text.slice(He.pos,Be),Ie=ne.exec(rr);if(!!Ie){var _e=Ie[1],we=Ie[2],de=Ie[3],ye=e.getDirectoryPath(Z.path),Ae=we===\"path\"?V(de,ye,ee(ge,1),Re,Z.path):we===\"types\"?d(Re,ge,ye,k(de),ee(ge)):e.Debug.fail();return q(de,He.pos+_e.length,Ae)}}}function d(Z,Be,ge,Re,ze,Ee){Ee===void 0&&(Ee=[]);for(var He=new e.Map,rr=e.tryAndIgnoreErrors(function(){return e.getEffectiveTypeRoots(Be,Z)})||e.emptyArray,Ie=0,_e=rr;Ie<_e.length;Ie++){var we=_e[Ie];ir(we)}for(var de=0,ye=e.findPackageJsons(ge,Z);de=2&&Z.charCodeAt(0)===46){var Be=Z.length>=3&&Z.charCodeAt(1)===46?2:1,ge=Z.charCodeAt(Be);return ge===47||ge===92}return!1}var ne=/^(\\/\\/\\/\\s*0},resolvedBeyondLimit:function(){return Wi>C.moduleSpecifierResolutionLimit}}),Mt=Li?\" (\".concat((ct/Li*100).toFixed(1),\"% hit rate)\"):\"\";return(fr=vr.log)===null||fr===void 0||fr.call(vr,\"\".concat(xe,\": resolved \").concat(Wi,\" module specifiers, plus \").concat(Yi,\" ambient and \").concat(ct,\" from cache\").concat(Mt)),(De=vr.log)===null||De===void 0||De.call(vr,\"\".concat(xe,\": response is \").concat(Ui?\"incomplete\":\"complete\")),(gr=vr.log)===null||gr===void 0||gr.call(vr,\"\".concat(xe,\": \").concat(e.timestamp()-Vr)),nt;function xt(ut,Dt,Rt){if(Rt){var Ii=e.codefix.getModuleSpecifierForBestExportInfo(ut,Dt,Oe,Pe,Ar,mr,vr,nr);return Ii&&Yi++,Ii||\"failed\"}var Ki=vi||nr.allowIncompleteCompletions&&Wi\"),Pe=e.createTextSpanFromNode(mr.tagName),Ue={name:Mr,kind:\"class\",kindModifiers:void 0,sortText:C.SortText.LocationPriority};return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,optionalReplacementSpan:Pe,entries:[Ue]}}}function V(xe,vr,mr,Ar,Oe){e.getNameTable(xe).forEach(function(nr,Mr){if(nr!==vr){var Pe=e.unescapeLeadingUnderscores(Mr);!mr.has(Pe)&&e.isIdentifierText(Pe,Ar)&&(mr.add(Pe),e.insertSorted(Oe,{name:Pe,kind:\"warning\",kindModifiers:\"\",sortText:C.SortText.JavascriptIdentifiers,isFromUncheckedFile:!0},ie))}})}function L(xe,vr,mr){return typeof mr==\"object\"?e.pseudoBigIntToString(mr)+\"n\":e.isString(mr)?e.quote(xe,vr,mr):JSON.stringify(mr)}function P(xe,vr,mr){return{name:L(xe,vr,mr),kind:\"string\",kindModifiers:\"\",sortText:C.SortText.LocationPriority}}function k(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt){var xt,ut,Dt,Rt=e.getReplacementSpanForContextToken(mr),Ii,Ki,Fi=We(De),ui,Bt,wt,na=Pe.getTypeChecker(),Ai=De&&oe(De),Oi=De&&Q(De)||fr;if(De&&E(De))Dt=fr?\"this\".concat(Ai?\"?.\":\"\",\"[\").concat(ne(nr,Wi,Ue),\"]\"):\"this\".concat(Ai?\"?.\":\".\").concat(Ue);else if((Oi||Ai)&&Vr){Dt=Oi?fr?\"[\".concat(ne(nr,Wi,Ue),\"]\"):\"[\".concat(Ue,\"]\"):Ue,(Ai||Vr.questionDotToken)&&(Dt=\"?.\".concat(Dt));var ji=e.findChildOfKind(Vr,24,nr)||e.findChildOfKind(Vr,28,nr);if(!ji)return;var Vi=e.startsWith(Ue,Vr.name.text)?Vr.name.end:ji.end;Rt=e.createTextSpanFromBounds(ji.getStart(nr),Vi)}if(Tr&&(Dt===void 0&&(Dt=Ue),Dt=\"{\".concat(Dt,\"}\"),typeof Tr!=\"boolean\"&&(Rt=e.createTextSpanFromNode(Tr,nr))),De&&G(De)&&Vr){Dt===void 0&&(Dt=Ue);var at=e.findPrecedingToken(Vr.pos,nr),At=\"\";at&&e.positionIsASICandidate(at.end,at.parent,nr)&&(At=\";\"),At+=\"(await \".concat(Vr.expression.getText(),\")\"),Dt=fr?\"\".concat(At).concat(Dt):\"\".concat(At).concat(Ai?\"?.\":\".\").concat(Dt),Rt=e.createTextSpanFromBounds(Vr.getStart(nr),Vr.end)}if(N(De)&&(ui=[e.textPart(De.moduleSpecifier)],vi&&(xt=g(Ue,vi,Ar,De,Ui,Yi,Wi),Dt=xt.insertText,Rt=xt.replacementSpan,Ki=Wi.includeCompletionsWithSnippetText?!0:void 0)),(De==null?void 0:De.kind)===64&&(Bt=!0),Wi.includeCompletionsWithClassMemberSnippets&&Wi.includeCompletionsWithInsertText&&ct===3&&Y(xe,Oe)){var ba=void 0;ut=U(Mr,Pe,Yi,Wi,Ue,xe,Oe,Ar,Li),Dt=ut.insertText,Ki=ut.isSnippet,ba=ut.importAdder,Rt=ut.replacementSpan,vr=C.SortText.ClassMemberSnippets,ba!=null&&ba.hasFixes()&&(Bt=!0,Fi=w.ClassMemberSnippet)}if(De&&T(De)&&(Dt=De.insertText,Ki=De.isSnippet,wt=De.labelDetails,Wi.useLabelDetailsInCompletionEntries||(Ue=Ue+wt.detail,wt=void 0),Fi=w.ObjectLiteralMethodSnippet,vr=C.SortText.SortBelow(vr)),nt&&!Mt&&Wi.includeCompletionsWithSnippetText&&Wi.jsxAttributeCompletionStyle&&Wi.jsxAttributeCompletionStyle!==\"none\"){var $a=Wi.jsxAttributeCompletionStyle===\"braces\",Qa=na.getTypeOfSymbolAtLocation(xe,Oe);Wi.jsxAttributeCompletionStyle===\"auto\"&&!(Qa.flags&528)&&!(Qa.flags&1048576&&e.find(Qa.types,function(ai){return!!(ai.flags&528)}))&&(Qa.flags&402653316||Qa.flags&1048576&&e.every(Qa.types,function(ai){return!!(ai.flags&402686084)})?(Dt=\"\".concat(e.escapeSnippetText(Ue),\"=\").concat(e.quote(nr,Wi,\"$1\")),Ki=!0):$a=!0),$a&&(Dt=\"\".concat(e.escapeSnippetText(Ue),\"={$1}\"),Ki=!0)}if(!(Dt!==void 0&&!Wi.includeCompletionsWithInsertText))return(le(De)||N(De))&&(Ii=D(De),Bt=!vi),{name:Ue,kind:e.SymbolDisplay.getSymbolKind(na,xe,Oe),kindModifiers:e.SymbolDisplay.getSymbolModifiers(na,xe),sortText:vr,source:Fi,hasAction:Bt?!0:void 0,isRecommended:ue(xe,gr,na)||void 0,insertText:Dt,replacementSpan:Rt,sourceDisplay:ui,labelDetails:wt,isSnippet:Ki,isPackageJsonImport:m(De)||void 0,isImportStatementCompletion:!!vi||void 0,data:Ii}}function Y(xe,vr){if(e.isInJSFile(vr))return!1;var mr=106500;return!!(xe.flags&mr)&&(e.isClassLike(vr)||vr.parent&&vr.parent.parent&&e.isClassElement(vr.parent)&&vr===vr.parent.name&&e.isClassLike(vr.parent.parent)||vr.parent&&e.isSyntaxList(vr)&&e.isClassLike(vr.parent))}function U(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue){var fr=e.findAncestor(Mr,e.isClassLike);if(!fr)return{insertText:Oe};var De,gr,Vr=Oe,Tr=vr.getTypeChecker(),vi=Mr.getSourceFile(),Ui=d({removeComments:!0,module:mr.module,target:mr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(mr,e.maybeBind(xe,xe.getNewLine)))}),Yi=e.codefix.createImportAdder(vi,vr,Ar,xe),Wi;if(Ar.includeCompletionsWithSnippetText){De=!0;var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=0,nt=j(Pe),Mt=nt.modifiers,xt=nt.span,ut=!!(Mt&128),Dt=[];if(e.codefix.addNewNodeForMemberSymbol(nr,fr,vi,{program:vr,host:xe},Ar,Yi,function(Ii){var Ki=0;ut&&(Ki|=128),e.isClassElement(Ii)&&Tr.getMemberOverrideModifierStatus(fr,Ii)===1&&(Ki|=16384),Dt.length||(Li=Ii.modifierFlagsCache|Ki|Mt),Ii=e.factory.updateModifiers(Ii,Li),Dt.push(Ii)},Wi,2,ut),Dt.length){var Rt=131073;gr=xt,Ue?Vr=Ui.printAndFormatSnippetList(Rt,e.factory.createNodeArray(Dt),vi,Ue):Vr=Ui.printSnippetList(Rt,e.factory.createNodeArray(Dt),vi)}return{insertText:Vr,isSnippet:De,importAdder:Yi,replacementSpan:gr}}function j(xe){if(!xe)return{modifiers:0};var vr=0,mr,Ar;return(Ar=H(xe))&&(vr|=e.modifierToFlag(Ar),mr=e.createTextSpanFromNode(xe)),e.isPropertyDeclaration(xe.parent)&&(vr|=e.modifiersToFlags(xe.parent.modifiers),mr=e.createTextSpanFromNode(xe.parent)),{modifiers:vr,span:mr}}function H(xe){if(e.isModifier(xe))return xe.kind;if(e.isIdentifier(xe)&&xe.originalKeywordKind&&e.isModifierKind(xe.originalKeywordKind))return xe.originalKeywordKind}function I(xe,vr,mr,Ar,Oe,nr,Mr,Pe){var Ue=Mr.includeCompletionsWithSnippetText||void 0,fr=vr,De=mr.getSourceFile(),gr=l(xe,mr,De,Ar,Oe,Mr);if(!!gr){var Vr=d({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!1,newLine:e.getNewLineKind(e.getNewLineCharacter(nr,e.maybeBind(Oe,Oe.getNewLine)))});Pe?fr=Vr.printAndFormatSnippetList(80,e.factory.createNodeArray([gr],!0),De,Pe):fr=Vr.printSnippetList(80,e.factory.createNodeArray([gr],!0),De);var Tr=e.createPrinter({removeComments:!0,module:nr.module,target:nr.target,omitTrailingSemicolon:!0}),vi=e.factory.createMethodSignature(void 0,\"\",gr.questionToken,gr.typeParameters,gr.parameters,gr.type),Ui={detail:Tr.printNode(4,vi,De)};return{isSnippet:Ue,insertText:fr,labelDetails:Ui}}}function l(xe,vr,mr,Ar,Oe,nr){var Mr=xe.getDeclarations();if(!!(Mr&&Mr.length)){var Pe=Ar.getTypeChecker(),Ue=Mr[0],fr=e.getSynthesizedDeepClone(e.getNameOfDeclaration(Ue),!1),De=Pe.getWidenedType(Pe.getTypeOfSymbolAtLocation(xe,vr)),gr=e.getQuotePreference(mr,nr),Vr=gr===0?268435456:void 0;switch(Ue.kind){case 166:case 167:case 168:case 169:{var Tr=De.flags&1048576&&De.types.length<10?Pe.getUnionType(De.types,2):De;if(Tr.flags&1048576){var vi=e.filter(Tr.types,function(nt){return Pe.getSignaturesOfType(nt,0).length>0});if(vi.length===1)Tr=vi[0];else return}var Ui=Pe.getSignaturesOfType(Tr,0);if(Ui.length!==1)return;var Yi=Pe.typeToTypeNode(Tr,vr,Vr,e.codefix.getNoopSymbolTrackerWithResolver({program:Ar,host:Oe}));if(!Yi||!e.isFunctionTypeNode(Yi))return;var Wi=void 0;if(nr.includeCompletionsWithSnippetText){var ct=e.factory.createEmptyStatement();Wi=e.factory.createBlock([ct],!0),e.setSnippetElement(ct,{kind:0,order:0})}else Wi=e.factory.createBlock([],!0);var Li=Yi.parameters.map(function(nt){return e.factory.createParameterDeclaration(void 0,void 0,nt.dotDotDotToken,nt.name,nt.questionToken,void 0,nt.initializer)});return e.factory.createMethodDeclaration(void 0,void 0,void 0,fr,void 0,void 0,Li,void 0,Wi)}default:return}}}function d(xe){var vr,mr=e.textChanges.createWriter(e.getNewLineCharacter(xe)),Ar=e.createPrinter(xe,mr),Oe=Ke(Ke({},mr),{write:function(fr){return nr(fr,function(){return mr.write(fr)})},nonEscapingWrite:mr.write,writeLiteral:function(fr){return nr(fr,function(){return mr.writeLiteral(fr)})},writeStringLiteral:function(fr){return nr(fr,function(){return mr.writeStringLiteral(fr)})},writeSymbol:function(fr,De){return nr(fr,function(){return mr.writeSymbol(fr,De)})},writeParameter:function(fr){return nr(fr,function(){return mr.writeParameter(fr)})},writeComment:function(fr){return nr(fr,function(){return mr.writeComment(fr)})},writeProperty:function(fr){return nr(fr,function(){return mr.writeProperty(fr)})}});return{printSnippetList:Mr,printAndFormatSnippetList:Ue};function nr(fr,De){var gr=e.escapeSnippetText(fr);if(gr!==fr){var Vr=mr.getTextPos();De();var Tr=mr.getTextPos();vr=e.append(vr||(vr=[]),{newText:gr,span:{start:Vr,length:Tr-Vr}})}else De()}function Mr(fr,De,gr){var Vr=Pe(fr,De,gr);return vr?e.textChanges.applyChanges(Vr,vr):Vr}function Pe(fr,De,gr){return vr=void 0,Oe.clear(),Ar.writeList(fr,De,gr,Oe),Oe.getText()}function Ue(fr,De,gr,Vr){var Tr={text:Pe(fr,De,gr),getLineAndCharacterOfPosition:function(Wi){return e.getLineAndCharacterOfPosition(this,Wi)}},vi=e.getFormatCodeSettingsForWriting(Vr,gr),Ui=e.flatMap(De,function(Wi){var ct=e.textChanges.assignPositionsToNode(Wi);return e.formatting.formatNodeGivenIndentation(ct,Tr,gr.languageVariant,0,0,Ke(Ke({},Vr),{options:vi}))}),Yi=vr?e.stableSort(e.concatenate(Ui,vr),function(Wi,ct){return e.compareTextSpans(Wi.span,ct.span)}):Ui;return e.textChanges.applyChanges(Tr.text,Yi)}}function D(xe){var vr=xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),mr=xe.isFromPackageJson?!0:void 0;if(N(xe)){var Ar={exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,ambientModuleName:vr,fileName:xe.fileName,isPackageJsonImport:mr};return Ar}var Oe={exportName:xe.exportName,exportMapKey:xe.exportMapKey,fileName:xe.fileName,ambientModuleName:xe.fileName?void 0:e.stripQuotes(xe.moduleSymbol.name),isPackageJsonImport:xe.isFromPackageJson?!0:void 0};return Oe}function fe(xe,vr,mr){var Ar=xe.exportName===\"default\",Oe=!!xe.isPackageJsonImport;if(R(xe)){var nr={kind:32,exportName:xe.exportName,moduleSpecifier:xe.moduleSpecifier,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return nr}var Mr={kind:4,exportName:xe.exportName,exportMapKey:xe.exportMapKey,symbolName:vr,fileName:xe.fileName,moduleSymbol:mr,isDefaultExport:Ar,isFromPackageJson:Oe};return Mr}function g(xe,vr,mr,Ar,Oe,nr,Mr){var Pe,Ue,fr,De=vr.getSourceFile(),gr=e.createTextSpanFromNode(e.findAncestor(vr,e.or(e.isImportDeclaration,e.isImportEqualsDeclaration))||vr,De),Vr=e.quote(De,Mr,Ar.moduleSpecifier),Tr=Ar.isDefaultExport?1:Ar.exportName===\"export=\"?2:0,vi=Mr.includeCompletionsWithSnippetText?\"$1\":\"\",Ui=e.codefix.getImportKind(De,Tr,nr,!0),Yi=((Ue=(Pe=e.tryCast(vr,e.isImportDeclaration))===null||Pe===void 0?void 0:Pe.importClause)===null||Ue===void 0?void 0:Ue.isTypeOnly)||((fr=e.tryCast(vr,e.isImportEqualsDeclaration))===null||fr===void 0?void 0:fr.isTypeOnly),Wi=ae(vr,mr),ct=Yi?\" \".concat(e.tokenToString(152),\" \"):\" \",Li=Wi?\"\".concat(e.tokenToString(152),\" \"):\"\",nt=Oe?\";\":\"\";switch(Ui){case 3:return{replacementSpan:gr,insertText:\"import\".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi,\" = require(\").concat(Vr,\")\").concat(nt)};case 1:return{replacementSpan:gr,insertText:\"import\".concat(ct).concat(e.escapeSnippetText(xe)).concat(vi,\" from \").concat(Vr).concat(nt)};case 2:return{replacementSpan:gr,insertText:\"import\".concat(ct,\"* as \").concat(e.escapeSnippetText(xe),\" from \").concat(Vr).concat(nt)};case 0:return{replacementSpan:gr,insertText:\"import\".concat(ct,\"{ \").concat(Li).concat(e.escapeSnippetText(xe)).concat(vi,\" } from \").concat(Vr).concat(nt)}}}function ne(xe,vr,mr){return/^\\d+$/.test(mr)?mr:e.quote(xe,vr,mr)}function ue(xe,vr,mr){return xe===vr||!!(xe.flags&1048576)&&mr.getExportSymbolOfSymbol(xe)===vr}function We(xe){if(le(xe))return e.stripQuotes(xe.moduleSymbol.name);if(N(xe))return xe.moduleSpecifier;if((xe==null?void 0:xe.kind)===1)return w.ThisProperty;if((xe==null?void 0:xe.kind)===64)return w.TypeOnlyAlias}function Fe(xe,vr,mr,Ar,Oe,nr,Mr,Pe,Ue,fr,De,gr,Vr,Tr,vi,Ui,Yi,Wi,ct,Li,nt,Mt,xt,ut){for(var Dt,Rt=e.timestamp(),Ii=ti(Oe),Ki=e.probablyUsesSemicolons(nr),Fi=Pe.getTypeChecker(),ui=new e.Map,Bt=0;Bt90)?!1:Mr?!0:Wr(ua,yi)},function(ua,Xn,jr,fo){var xs;if(!(Mr&&!e.some(ua,function(su){return Mr.source===e.stripQuotes(su.moduleSymbol.name)}))){var Fo=e.find(ua,Pt);if(!!Fo){var ko=ga.tryResolve(ua,Xn,jr)||{};if(ko!==\"failed\"){var Ao=Fo,Ms;ko!==\"skipped\"&&(xs=ko.exportInfo,Ao=xs===void 0?Fo:xs,Ms=ko.moduleSpecifier);var Bs=Ao.exportKind===1,xc=Bs&&e.getLocalSymbolForExportDefault(Ao.symbol)||Ao.symbol;Qe(xc,{kind:Ms?32:4,moduleSpecifier:Ms,symbolName:Xn,exportMapKey:fo,exportName:Ao.exportKind===2?\"export=\":Ao.symbol.name,fileName:Ao.moduleFileName,isDefaultExport:Bs,moduleSymbol:Ao.moduleSymbol,isFromPackageJson:Ao.isFromPackageJson})}}}}),Dn=ga.skippedAny(),Vi|=ga.resolvedAny()?8:0,Vi|=ga.resolvedBeyondLimit()?16:0});function Pt(ga){var ua=e.tryCast(ga.moduleSymbol.valueDeclaration,e.isSourceFile);if(!ua){var Xn=e.stripQuotes(ga.moduleSymbol.name);return e.JsTyping.nodeCoreModules.has(Xn)&&e.startsWith(Xn,\"node:\")!==e.shouldUseUriStyleNodeCoreModules(mr,xe)?!1:pt?pt.allowsImportingAmbientModule(ga.moduleSymbol,kn(ga.isFromPackageJson)):!0}return e.isImportableFile(ga.isFromPackageJson?Hr:xe,mr,ua,nr,pt,kn(ga.isFromPackageJson),qi)}}function Qe(Ji,ce){var Rr=e.getSymbolId(Ji);pn[Rr]!==C.SortText.GlobalsOrKeywords&&(Ba[ka.length]=ce,pn[Rr]=na?C.SortText.LocationPriority:C.SortText.AutoImportSuggestions,ka.push(Ji))}function Gr(Ji,ce){e.isInJSFile(Ai)||Ji.forEach(function(Rr){if(!!S(Rr)){var yi=Er(Rr,e.getEmitScriptTarget(Ar),void 0,0,!1);if(!!yi){var qi=yi.name,je=I(Rr,qi,ce,xe,Pe,Ar,nr,Ue);if(!!je){var Hr=Ke({kind:128},je);Vi|=32,Ba[ka.length]=Hr,ka.push(Rr)}}}})}function S(Ji){return!!(Ji.flags&8196)}function Ce(Ji,ce,Rr){for(var yi=Ji;yi&&!e.positionBelongsToNode(yi,ce,Rr);)yi=yi.parent;return yi}function qe(Ji){var ce=e.timestamp(),Rr=Si(Ji)||Go(Ji)||Vc(Ji)||br(Ji)||e.isBigIntLiteral(Ji);return vr(\"getCompletionsAtPosition: isCompletionListBlocker: \"+(e.timestamp()-ce)),Rr}function br(Ji){if(Ji.kind===11)return!0;if(Ji.kind===31&&Ji.parent){if(Ai===Ji.parent&&(Ai.kind===280||Ai.kind===279))return!1;if(Ji.parent.kind===280)return Ai.parent.kind!==280;if(Ji.parent.kind===281||Ji.parent.kind===279)return!!Ji.parent.parent&&Ji.parent.parent.kind===278}return!1}function Zr(){if(ut){var Ji=ut.parent.kind,ce=wr(ut);switch(ce){case 27:return Ji===208||Ji===171||Ji===209||Ji===204||Ji===221||Ji===179||Ji===205;case 20:return Ji===208||Ji===171||Ji===209||Ji===212||Ji===191;case 22:return Ji===204||Ji===176||Ji===162;case 141:case 142:case 100:return!0;case 24:return Ji===261;case 18:return Ji===257||Ji===205;case 63:return Ji===254||Ji===221;case 15:return Ji===223;case 16:return Ji===233;case 131:return Ji===169||Ji===297;case 41:return Ji===169}if(yr(ce))return!0}return!1}function Si(Ji){return(e.isRegularExpressionLiteral(Ji)||e.isStringTextContainingNode(Ji))&&(e.rangeContainsPositionExclusive(e.createTextRangeFromSpan(e.createTextSpanFromNode(Ji)),Oe)||Oe===Ji.end&&(!!Ji.isUnterminated||e.isRegularExpressionLiteral(Ji)))}function Pi(){var Ji=Di(ut);if(!Ji)return 0;var ce=e.isIntersectionTypeNode(Ji.parent)?Ji.parent:void 0,Rr=ce||Ji,yi=wi(Rr,De);if(!yi)return 0;var qi=De.getTypeFromTypeNode(Rr),je=qr(yi,De),Hr=qr(qi,De),pt=new e.Set;return Hr.forEach(function(Pt){return pt.add(Pt.escapedName)}),ka=e.concatenate(ka,e.filter(je,function(Pt){return!pt.has(Pt.escapedName)})),Qa=0,ji=!0,1}function Qi(){var Ji=ka.length,ce=Cr(ut);if(!ce)return 0;Qa=0;var Rr,yi;if(ce.kind===205){var qi=_r(ce,De);if(qi===void 0)return ce.flags&33554432?2:(ai=!0,0);var je=De.getContextualType(ce,4),Hr=(je||qi).getStringIndexType(),pt=(je||qi).getNumberIndexType();if(ji=!!Hr||!!pt,Rr=mi(qi,je,ce,De),yi=ce.properties,Rr.length===0&&!pt)return ai=!0,0}else{e.Debug.assert(ce.kind===201),ji=!1;var Pt=e.getRootDeclaration(ce.parent);if(!e.isVariableLike(Pt))return e.Debug.fail(\"Root declaration is not variable-like.\");var ga=e.hasInitializer(Pt)||!!e.getEffectiveTypeAnnotationNode(Pt)||Pt.parent.parent.kind===244;if(!ga&&Pt.kind===164&&(e.isExpression(Pt.parent)?ga=!!De.getContextualType(Pt.parent):(Pt.parent.kind===169||Pt.parent.kind===173)&&(ga=e.isExpression(Pt.parent.parent)&&!!De.getContextualType(Pt.parent.parent))),ga){var ua=De.getTypeAtLocation(ce);if(!ua)return 2;Rr=De.getPropertiesOfType(ua).filter(function(jr){return De.isPropertyAccessible(ce,!1,!1,ua,jr)}),yi=ce.elements}}if(Rr&&Rr.length>0){var Xn=Xs(Rr,e.Debug.checkDefined(yi));ka=e.concatenate(ka,Xn),hs(),ce.kind===205&&nr.includeCompletionsWithObjectLiteralMethodSnippets&&nr.includeCompletionsWithInsertText&&(ps(Ji),Gr(Xn,ce))}return 1}function Ct(){if(!ut)return 0;var Ji=ut.kind===18||ut.kind===27?e.tryCast(ut.parent,e.isNamedImportsOrExports):e.isTypeKeywordTokenOrIdentifier(ut)?e.tryCast(ut.parent.parent,e.isNamedImportsOrExports):void 0;if(!Ji)return 0;e.isTypeKeywordTokenOrIdentifier(ut)||(Oi=8);var ce=(Ji.kind===269?Ji.parent.parent:Ji.parent).moduleSpecifier;if(!ce)return ji=!0,Ji.kind===269?2:0;var Rr=De.getSymbolAtLocation(ce);if(!Rr)return ji=!0,2;Qa=3,ji=!1;var yi=De.getExportsAndPropertiesOfModule(Rr),qi=new e.Set(Ji.elements.filter(function(Hr){return!ds(Hr)}).map(function(Hr){return(Hr.propertyName||Hr.name).escapedText})),je=yi.filter(function(Hr){return Hr.escapedName!==\"default\"&&!qi.has(Hr.escapedName)});return ka=e.concatenate(ka,je),je.length||(Oi=0),1}function sa(){var Ji,ce=ut&&(ut.kind===18||ut.kind===27)?e.tryCast(ut.parent,e.isNamedExports):void 0;if(!ce)return 0;var Rr=e.findAncestor(ce,e.or(e.isSourceFile,e.isModuleDeclaration));return Qa=5,ji=!1,(Ji=Rr.locals)===null||Ji===void 0||Ji.forEach(function(yi,qi){var je,Hr;ka.push(yi),!((Hr=(je=Rr.symbol)===null||je===void 0?void 0:je.exports)===null||Hr===void 0)&&Hr.has(qi)&&(pn[e.getSymbolId(yi)]=C.SortText.OptionalMember)}),1}function en(){var Ji=si(mr,ut,Ai,Oe);if(!Ji)return 0;if(Qa=3,ji=!0,Oi=ut.kind===41?0:e.isClassLike(Ji)?2:3,!e.isClassLike(Ji))return 1;var ce=ut.kind===26?ut.parent.parent:ut.parent,Rr=e.isClassElement(ce)?e.getEffectiveModifierFlags(ce):0;if(ut.kind===79&&!ds(ut))switch(ut.getText()){case\"private\":Rr=Rr|8;break;case\"static\":Rr=Rr|32;break;case\"override\":Rr=Rr|16384;break}if(e.isClassStaticBlockDeclaration(ce)&&(Rr|=32),!(Rr&8)){var yi=e.isClassLike(Ji)&&Rr&16384?e.singleElementArray(e.getEffectiveBaseTypeNode(Ji)):e.getAllSuperTypeNodes(Ji),qi=e.flatMap(yi,function(je){var Hr=De.getTypeAtLocation(je);return Rr&32?(Hr==null?void 0:Hr.symbol)&&De.getPropertiesOfType(De.getTypeOfSymbolAtLocation(Hr.symbol,Ji)):Hr&&De.getPropertiesOfType(Hr)});ka=e.concatenate(ka,Qs(qi,Ji.members,Rr))}return 1}function Wa(Ji){return!!Ji.parent&&e.isParameter(Ji.parent)&&e.isConstructorDeclaration(Ji.parent.parent)&&(e.isParameterPropertyModifier(Ji.kind)||e.isDeclarationName(Ji))}function qn(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 20:case 27:return e.isConstructorDeclaration(Ji.parent)?Ji.parent:void 0;default:if(Wa(Ji))return ce.parent}}}function mo(Ji){if(Ji){var ce,Rr=e.findAncestor(Ji.parent,function(yi){return e.isClassLike(yi)?\"quit\":e.isFunctionLikeDeclaration(yi)&&ce===yi.body?!0:(ce=yi,!1)});return Rr&&Rr}}function So(Ji){if(Ji){var ce=Ji.parent;switch(Ji.kind){case 31:case 30:case 43:case 79:case 206:case 286:case 285:case 287:if(ce&&(ce.kind===279||ce.kind===280)){if(Ji.kind===31){var Rr=e.findPrecedingToken(Ji.pos,mr,void 0);if(!ce.typeArguments||Rr&&Rr.kind===43)break}return ce}else if(ce.kind===285)return ce.parent.parent;break;case 10:if(ce&&(ce.kind===285||ce.kind===287))return ce.parent.parent;break;case 19:if(ce&&ce.kind===288&&ce.parent&&ce.parent.kind===285)return ce.parent.parent.parent;if(ce&&ce.kind===287)return ce.parent.parent;break}}}function Go(Ji){var ce=Ji.parent,Rr=ce.kind;switch(Ji.kind){case 27:return Rr===254||Kc(Ji)||Rr===237||Rr===260||Pc(Rr)||Rr===258||Rr===202||Rr===259||e.isClassLike(ce)&&!!ce.typeParameters&&ce.typeParameters.end>=Ji.pos;case 24:return Rr===202;case 58:return Rr===203;case 22:return Rr===202;case 20:return Rr===292||Pc(Rr);case 18:return Rr===260;case 29:return Rr===257||Rr===226||Rr===258||Rr===259||e.isFunctionLikeKind(Rr);case 124:return Rr===167&&!e.isClassLike(ce.parent);case 25:return Rr===164||!!ce.parent&&ce.parent.kind===202;case 123:case 121:case 122:return Rr===164&&!e.isConstructorDeclaration(ce.parent);case 127:return Rr===270||Rr===275||Rr===268;case 136:case 149:return!Xi(Ji);case 79:if(Rr===270&&Ji===ce.name&&Ji.text===\"type\")return!1;break;case 84:case 92:case 118:case 98:case 113:case 100:case 119:case 85:case 137:return!0;case 152:return Rr!==270;case 41:return e.isFunctionLike(Ji.parent)&&!e.isMethodDeclaration(Ji.parent)}if(yr(wr(Ji))&&Xi(Ji)||Wa(Ji)&&(!e.isIdentifier(Ji)||e.isParameterPropertyModifier(wr(Ji))||ds(Ji)))return!1;switch(wr(Ji)){case 126:case 84:case 85:case 135:case 92:case 98:case 118:case 119:case 121:case 122:case 123:case 124:case 113:return!0;case 131:return e.isPropertyDeclaration(Ji.parent)}var yi=e.findAncestor(Ji.parent,e.isClassLike);if(yi&&Ji===xt&&ys(Ji,Oe))return!1;var qi=e.getAncestor(Ji.parent,167);if(qi&&Ji!==xt&&e.isClassLike(xt.parent.parent)&&Oe<=xt.end){if(ys(Ji,xt.end))return!1;if(Ji.kind!==63&&(e.isInitializedProperty(qi)||e.hasType(qi)))return!0}return e.isDeclarationName(Ji)&&!e.isShorthandPropertyAssignment(Ji.parent)&&!e.isJsxAttribute(Ji.parent)&&!(e.isClassLike(Ji.parent)&&(Ji!==xt||Oe>xt.end))}function ys(Ji,ce){return Ji.kind!==63&&(Ji.kind===26||!e.positionsAreOnSameLine(Ji.end,ce,mr))}function Pc(Ji){return e.isFunctionLikeKind(Ji)&&Ji!==171}function Vc(Ji){if(Ji.kind===8){var ce=Ji.getFullText();return ce.charAt(ce.length-1)===\".\"}return!1}function Kc(Ji){return Ji.parent.kind===255&&!e.isPossiblyTypeArgumentPosition(Ji,mr,De)}function Xs(Ji,ce){if(ce.length===0)return Ji;for(var Rr=new e.Set,yi=new e.Set,qi=0,je=ce;qi=0&&!b(A,y[V],115);V--);return e.forEach(m($.statement),function(L){oe($,L)&&b(A,L.getFirstToken(),81,86)}),A}function J($){var A=f($);if(A)switch(A.kind){case 242:case 243:case 244:case 240:case 241:return se(A);case 249:return ie(A)}}function ie($){var A=[];return b(A,$.getFirstToken(),107),e.forEach($.caseBlock.clauses,function(y){b(A,y.getFirstToken(),82,88),e.forEach(m(y),function(V){oe($,V)&&b(A,V.getFirstToken(),81)})}),A}function R($,A){var y=[];if(b(y,$.getFirstToken(),111),$.catchClause&&b(y,$.catchClause.getFirstToken(),83),$.finallyBlock){var V=e.findChildOfKind($,96,A);b(y,V,96)}return y}function q($,A){var y=p($);if(!!y){var V=[];return e.forEach(N(y),function(L){V.push(e.findChildOfKind(L,109,A))}),e.isFunctionBlock(y)&&e.forEachReturnStatement(y,function(L){V.push(e.findChildOfKind(L,105,A))}),V}}function O($,A){var y=e.getContainingFunction($);if(!!y){var V=[];return e.forEachReturnStatement(e.cast(y.body,e.isBlock),function(L){V.push(e.findChildOfKind(L,105,A))}),e.forEach(N(y.body),function(L){V.push(e.findChildOfKind(L,109,A))}),V}}function ve($){var A=e.getContainingFunction($);if(!!A){var y=[];return A.modifiers&&A.modifiers.forEach(function(V){b(y,V,131)}),e.forEachChild(A,function(V){he(V,function(L){e.isAwaitExpression(L)&&b(y,L.getFirstToken(),132)})}),y}}function ee($){var A=e.getContainingFunction($);if(!!A){var y=[];return e.forEachChild(A,function(V){he(V,function(L){e.isYieldExpression(L)&&b(y,L.getFirstToken(),125)})}),y}}function he($,A){A($),!e.isFunctionLike($)&&!e.isClassLike($)&&!e.isInterfaceDeclaration($)&&!e.isModuleDeclaration($)&&!e.isTypeAliasDeclaration($)&&!e.isTypeNode($)&&e.forEachChild($,function(y){return he(y,A)})}function F($,A){for(var y=x($,A),V=[],L=0;L=P.end;U--)if(!e.isWhiteSpaceSingleLine(A.text.charCodeAt(U))){Y=!1;break}if(Y){V.push({fileName:A.fileName,textSpan:e.createTextSpanFromBounds(P.getStart(),k.end),kind:\"reference\"}),L++;continue}}V.push(B(y[L],A))}return V}function x($,A){for(var y=[];e.isIfStatement($.parent)&&$.parent.elseStatement===$;)$=$.parent;for(;;){var V=$.getChildren(A);b(y,V[0],99);for(var L=V.length-1;L>=0&&!b(y,V[L],91);L--);if(!$.elseStatement||!e.isIfStatement($.elseStatement))break;$=$.elseStatement}return y}function X($,A){return!!e.findAncestor($.parent,function(y){return e.isLabeledStatement(y)?y.label.escapedText===A:\"quit\"})}})(a=e.DocumentHighlights||(e.DocumentHighlights={}))})(ke||(ke={}));var ke;(function(e){function a(Q){return!!Q.sourceFile}function C(Q,le){return w(Q,le)}e.createDocumentRegistry=C;function w(Q,le,N){le===void 0&&(le=\"\");var p=new e.Map,m=e.createGetCanonicalFileName(!!Q);function G(){var O=e.arrayFrom(p.keys()).filter(function(ve){return ve&&ve.charAt(0)===\"_\"}).map(function(ve){var ee=p.get(ve),he=[];return ee.forEach(function(F,x){a(F)?he.push({name:x,scriptKind:F.sourceFile.scriptKind,refCount:F.languageServiceRefCount}):F.forEach(function(X,$){return he.push({name:x,scriptKind:$,refCount:X.languageServiceRefCount})})}),he.sort(function(F,x){return x.refCount-F.refCount}),{bucket:ve,sourceFiles:he}});return JSON.stringify(O,void 0,2)}function oe(O){return typeof O.getCompilationSettings==\"function\"?O.getCompilationSettings():O}function f(O,ve,ee,he,F){var x=e.toPath(O,le,m),X=E(oe(ve));return T(O,x,ve,X,ee,he,F)}function T(O,ve,ee,he,F,x,X){return J(O,ve,ee,he,F,x,!0,X)}function K(O,ve,ee,he,F){var x=e.toPath(O,le,m),X=E(oe(ve));return b(O,x,ve,X,ee,he,F)}function b(O,ve,ee,he,F,x,X){return J(O,ve,oe(ee),he,F,x,!1,X)}function se(O,ve){var ee=a(O)?O:O.get(e.Debug.checkDefined(ve,\"If there are more than one scriptKind's for same document the scriptKind should be provided\"));return e.Debug.assert(ve===void 0||!ee||ee.sourceFile.scriptKind===ve,\"Script kind should match provided ScriptKind:\".concat(ve,\" and sourceFile.scriptKind: \").concat(ee==null?void 0:ee.sourceFile.scriptKind,\", !entry: \").concat(!ee)),ee}function J(O,ve,ee,he,F,x,X,$){var A,y,V,L;$=e.ensureScriptKind(O,$);var P=oe(ee),k=ee===P?void 0:ee,Y=$===6?100:e.getEmitScriptTarget(P),U={languageVersion:Y,impliedNodeFormat:k&&e.getImpliedNodeFormatForFile(ve,(L=(V=(y=(A=k.getCompilerHost)===null||A===void 0?void 0:A.call(k))===null||y===void 0?void 0:y.getModuleResolutionCache)===null||V===void 0?void 0:V.call(y))===null||L===void 0?void 0:L.getPackageJsonInfoCache(),k,P),setExternalModuleIndicator:e.getSetExternalModuleIndicator(P)},j=p.size,H=e.getOrUpdate(p,he,function(){return new e.Map});if(e.tracing){p.size>j&&e.tracing.instant(\"session\",\"createdDocumentRegistryBucket\",{configFilePath:P.configFilePath,key:he});var I=!e.isDeclarationFileName(ve)&&e.forEachEntry(p,function(g,ne){return ne!==he&&g.has(ve)&&ne});I&&e.tracing.instant(\"session\",\"documentRegistryBucketOverlap\",{path:ve,key1:I,key2:he})}var l=H.get(ve),d=l&&se(l,$);if(!d&&N){var D=N.getDocument(he,ve);D&&(e.Debug.assert(X),d={sourceFile:D,languageServiceRefCount:0},fe())}if(d)d.sourceFile.version!==x&&(d.sourceFile=e.updateLanguageServiceSourceFile(d.sourceFile,F,x,F.getChangeRange(d.sourceFile.scriptSnapshot)),N&&N.setDocument(he,ve,d.sourceFile)),X&&d.languageServiceRefCount++;else{var D=e.createLanguageServiceSourceFile(O,F,U,x,!1,$);N&&N.setDocument(he,ve,D),d={sourceFile:D,languageServiceRefCount:1},fe()}return e.Debug.assert(d.languageServiceRefCount!==0),d.sourceFile;function fe(){if(!l)H.set(ve,d);else if(a(l)){var g=new e.Map;g.set(l.sourceFile.scriptKind,l),g.set($,d),H.set(ve,g)}else l.set($,d)}}function ie(O,ve,ee){var he=e.toPath(O,le,m),F=E(ve);return R(he,F,ee)}function R(O,ve,ee){var he=e.Debug.checkDefined(p.get(ve)),F=he.get(O),x=se(F,ee);x.languageServiceRefCount--,e.Debug.assert(x.languageServiceRefCount>=0),x.languageServiceRefCount===0&&(a(F)?he.delete(O):(F.delete(ee),F.size===1&&he.set(O,e.firstDefinedIterator(F.values(),e.identity))))}function q(O,ve){return e.arrayFrom(p.entries(),function(ee){var he=ee[0],F=ee[1],x=F.get(O),X=x&&se(x,ve);return[he,X&&X.languageServiceRefCount]})}return{acquireDocument:f,acquireDocumentWithKey:T,updateDocument:K,updateDocumentWithKey:b,releaseDocument:ie,releaseDocumentWithKey:R,getLanguageServiceRefCounts:q,reportStats:G,getKeyForCompilationSettings:E}}e.createDocumentRegistryInternal=w;function B(Q){var le;if(Q===null||typeof Q!=\"object\")return\"\"+Q;if(e.isArray(Q))return\"[\".concat((le=e.map(Q,function(m){return B(m)}))===null||le===void 0?void 0:le.join(\",\"),\"]\");var N=\"{\";for(var p in Q)e.hasOwnProperty.call(Q,p)&&(N+=\"\".concat(p,\": \").concat(B(Q[p])));return N+\"}\"}function E(Q){return e.sourceFileAffectingCompilerOptions.map(function(le){return B(e.getCompilerOptionValue(Q,le))}).join(\"|\")+(Q.pathsBasePath?\"|\".concat(Q.pathsBasePath):void 0)}})(ke||(ke={}));var ke;(function(e){var a;(function(C){function w(ve,ee,he,F){var x=m(ve,he,F);return function(X,$,A){var y=Q(ve,ee,x,$,he,F),V=y.directImports,L=y.indirectUsers;return Ke({indirectUsers:L},le(V,X,$.exportKind,he,A))}}C.createImportTracker=w;var B;(function(ve){ve[ve.Named=0]=\"Named\",ve[ve.Default=1]=\"Default\",ve[ve.ExportEquals=2]=\"ExportEquals\"})(B=C.ExportKind||(C.ExportKind={}));var E;(function(ve){ve[ve.Import=0]=\"Import\",ve[ve.Export=1]=\"Export\"})(E=C.ImportExport||(C.ImportExport={}));function Q(ve,ee,he,F,x,X){var $=F.exportingModuleSymbol,A=F.exportKind,y=e.nodeSeenTracker(),V=e.nodeSeenTracker(),L=[],P=!!$.globalExports,k=P?void 0:[];return U($),{directImports:L,indirectUsers:Y()};function Y(){if(P)return ve;if($.declarations)for(var D=0,fe=$.declarations;D2&&(e.Debug.assert(U===void 0),j+=1,H-=1),e.createTextSpanFromBounds(j,H)}function A(k){return k.kind===0?k.textSpan:$(k.node,k.node.getSourceFile())}C.getTextSpanOfEntry=A;function y(k){var Y=e.getDeclarationFromName(k);return!!Y&&L(Y)||k.kind===88||e.isWriteAccess(k)}function V(k,Y){var U;if(!Y)return!1;var j=e.getDeclarationFromName(k)||(k.kind===88?k.parent:e.isLiteralComputedPropertyDeclarationName(k)||k.kind===134&&e.isConstructorDeclaration(k.parent)?k.parent.parent:void 0),H=j&&e.isBinaryExpression(j)?j.left:void 0;return!!(j&&((U=Y.declarations)===null||U===void 0?void 0:U.some(function(I){return I===j||I===H})))}function L(k){if(k.flags&16777216)return!0;switch(k.kind){case 221:case 203:case 257:case 226:case 88:case 260:case 299:case 275:case 267:case 265:case 270:case 258:case 338:case 345:case 285:case 261:case 264:case 268:case 274:case 164:case 297:case 259:case 163:return!0;case 296:return!e.isArrayLiteralOrObjectLiteralDestructuringPattern(k.parent);case 256:case 213:case 171:case 169:case 172:case 173:return!!k.body;case 254:case 167:return!!k.initializer||e.isCatchClause(k.parent);case 168:case 166:case 347:case 340:return!1;default:return e.Debug.failBadSyntaxKind(k)}}var P;(function(k){function Y(Oe,nr,Mr,Pe,Ue,fr,De){var gr,Vr;if(fr===void 0&&(fr={}),De===void 0&&(De=new e.Set(Pe.map(function(Rt){return Rt.fileName}))),nr=U(nr,fr),e.isSourceFile(nr)){var Tr=e.GoToDefinition.getReferenceAtPosition(nr,Oe,Mr);if(!(Tr!=null&&Tr.file))return;var vi=Mr.getTypeChecker().getMergedSymbol(Tr.file.symbol);if(vi)return fe(Mr,vi,!1,Pe,De);var Ui=Mr.getFileIncludeReasons();return Ui?[{definition:{type:5,reference:Tr.reference,file:nr},references:H(Tr.file,Ui,Mr)||e.emptyArray}]:void 0}if(!fr.implementations){var Yi=ne(nr,Pe,Ue);if(Yi)return Yi}var Wi=Mr.getTypeChecker(),ct=Wi.getSymbolAtLocation(e.isConstructorDeclaration(nr)&&nr.parent.name||nr);if(!ct){if(!fr.implementations&&e.isStringLiteralLike(nr)){if(e.isModuleSpecifierLike(nr)){var Ui=Mr.getFileIncludeReasons(),Li=(Vr=(gr=nr.getSourceFile().resolvedModules)===null||gr===void 0?void 0:gr.get(nr.text,e.getModeForUsageLocation(nr.getSourceFile(),nr)))===null||Vr===void 0?void 0:Vr.resolvedFileName,nt=Li?Mr.getSourceFile(Li):void 0;if(nt)return[{definition:{type:4,node:nr},references:H(nt,Ui,Mr)||e.emptyArray}]}return ae(nr,Pe,Wi,Ue)}return}if(ct.escapedName===\"export=\")return fe(Mr,ct.parent,!1,Pe,De);var Mt=l(ct,Mr,Pe,Ue,fr,De);if(Mt&&!(ct.flags&33554432))return Mt;var xt=I(nr,ct,Wi),ut=xt&&l(xt,Mr,Pe,Ue,fr,De),Dt=ue(ct,nr,Pe,De,Wi,Ue,fr);return d(Mr,Mt,Dt,ut)}k.getReferencedSymbolsForNode=Y;function U(Oe,nr){return nr.use===1?Oe=e.getAdjustedReferenceLocation(Oe):nr.use===2&&(Oe=e.getAdjustedRenameLocation(Oe)),Oe}k.getAdjustedNode=U;function j(Oe,nr,Mr,Pe){var Ue,fr;Pe===void 0&&(Pe=new e.Set(Mr.map(function(Tr){return Tr.fileName})));var De=(Ue=nr.getSourceFile(Oe))===null||Ue===void 0?void 0:Ue.symbol;if(De)return((fr=fe(nr,De,!1,Mr,Pe)[0])===null||fr===void 0?void 0:fr.references)||e.emptyArray;var gr=nr.getFileIncludeReasons(),Vr=nr.getSourceFile(Oe);return Vr&&gr&&H(Vr,gr,nr)||e.emptyArray}k.getReferencesForFileName=j;function H(Oe,nr,Mr){for(var Pe,Ue=nr.get(Oe.path)||e.emptyArray,fr=0,De=Ue;fr=0&&!(gr>Mr.end);){var Vr=gr+De;(gr===0||!e.isIdentifierPart(Ue.charCodeAt(gr-1),99))&&(Vr===fr||!e.isIdentifierPart(Ue.charCodeAt(Vr),99))&&Pe.push(gr),gr=Ue.indexOf(nr,gr+De+1)}return Pe}function Ye(Oe,nr){var Mr=Oe.getSourceFile(),Pe=nr.text,Ue=e.mapDefined(ir(Mr,Pe,Oe),function(fr){return fr===nr||e.isJumpStatementTarget(fr)&&e.getTargetLabel(fr,Pe)===nr?E(fr):void 0});return[{definition:{type:1,node:nr},references:Ue}]}function Br(Oe,nr){switch(Oe.kind){case 80:if(e.isJSDocMemberName(Oe.parent))return!0;case 79:return Oe.text.length===nr.length;case 14:case 10:{var Mr=Oe;return(e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Mr)||e.isNameOfModuleDeclaration(Oe)||e.isExpressionOfExternalModuleImportEqualsDeclaration(Oe)||e.isCallExpression(Oe.parent)&&e.isBindableObjectDefinePropertyCall(Oe.parent)&&Oe.parent.arguments[1]===Oe)&&Mr.text.length===nr.length}case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Oe)&&Oe.text.length===nr.length;case 88:return nr.length===7;default:return!1}}function Er(Oe,nr){var Mr=e.flatMap(Oe,function(Pe){return nr.throwIfCancellationRequested(),e.mapDefined(ir(Pe,\"meta\",Pe),function(Ue){var fr=Ue.parent;if(e.isImportMeta(fr))return E(fr)})});return Mr.length?[{definition:{type:2,node:Mr[0].node},references:Mr}]:void 0}function Ne(Oe,nr,Mr,Pe){var Ue=e.flatMap(Oe,function(fr){return Mr.throwIfCancellationRequested(),e.mapDefined(ir(fr,e.tokenToString(nr),fr),function(De){if(De.kind===nr&&(!Pe||Pe(De)))return E(De)})});return Ue.length?[{definition:{type:2,node:Ue[0].node},references:Ue}]:void 0}function n(Oe,nr,Mr,Pe){return Pe===void 0&&(Pe=!0),Mr.cancellationToken.throwIfCancellationRequested(),lr(Oe,Oe,nr,Mr,Pe)}function lr(Oe,nr,Mr,Pe,Ue){if(!!Pe.markSearchedSymbols(nr,Mr.allSearchSymbols))for(var fr=0,De=Cr(nr,Mr.text,Oe);fr0;Ae--){var de=we[Ae];he(Ie,de)}return[we.length-1,we[0]]}function he(Ie,_e){var we=q(Ie,_e);J(p,we),N.push(p),m.push(G),G=void 0,p=we}function F(){p.children&&(y(p.children,p),I(p.children)),p=N.pop(),G=m.pop()}function x(Ie,_e,we){he(Ie,we),A(_e),F()}function X(Ie){Ie.initializer&&He(Ie.initializer)?(he(Ie),e.forEachChild(Ie.initializer,A),F()):x(Ie,Ie.initializer)}function $(Ie){return!e.hasDynamicName(Ie)||Ie.kind!==221&&e.isPropertyAccessExpression(Ie.name.expression)&&e.isIdentifier(Ie.name.expression.expression)&&e.idText(Ie.name.expression.expression)===\"Symbol\"}function A(Ie){var _e;if(Q.throwIfCancellationRequested(),!(!Ie||e.isToken(Ie)))switch(Ie.kind){case 171:var we=Ie;x(we,we.body);for(var de=0,ye=we.parameters;de0&&(he(Ur,or),e.forEachChild(Ur.right,A),F()):e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,or):(he(Ur,or),x(Ie,Ur.right,ii.name),F()),ve(pe);return}case 7:case 9:{var qr=Ie,or=wr===7?qr.arguments[0]:qr.arguments[0].expression,si=qr.arguments[1],Di=ee(Ie,or),pe=Di[0],wi=Di[1];he(Ie,wi),he(Ie,e.setTextRange(e.factory.createIdentifier(si.text),si)),A(Ie.arguments[2]),F(),F(),ve(pe);return}case 5:{var Ur=Ie,ii=Ur.left,Xi=ii.expression;if(e.isIdentifier(Xi)&&e.getElementOrPropertyAccessName(ii)!==\"prototype\"&&G&&G.has(Xi.text)){e.isFunctionExpression(Ur.right)||e.isArrowFunction(Ur.right)?x(Ie,Ur.right,Xi):e.isBindableStaticAccessExpression(ii)&&(he(Ur,Xi),x(Ur.left,Ur.right,e.getNameOrArgument(ii)),F());return}break}case 4:case 0:case 8:break;default:e.Debug.assertNever(wr)}}default:e.hasJSDocNodes(Ie)&&e.forEach(Ie.jsDoc,function(et){e.forEach(et.tags,function(Gi){e.isJSDocTypeAlias(Gi)&&R(Gi)})}),e.forEachChild(Ie,A)}}function y(Ie,_e){var we=new e.Map;e.filterMutate(Ie,function(de,ye){var Ae=de.name||e.getNameOfDeclaration(de.node),er=Ae&&b(Ae);if(!er)return!0;var ir=we.get(er);if(!ir)return we.set(er,de),!0;if(ir instanceof Array){for(var Cr=0,Ye=ir;Cr0)return rr(we)}switch(Ie.kind){case 305:var de=Ie;return e.isExternalModule(de)?'\"'.concat(e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(de.fileName)))),'\"'):\"\";case 271:return e.isExportAssignment(Ie)&&Ie.isExportEquals?\"export=\":\"default\";case 214:case 256:case 213:case 257:case 226:return e.getSyntacticModifierFlags(Ie)&512?\"default\":ze(Ie);case 171:return\"constructor\";case 175:return\"new()\";case 174:return\"()\";case 176:return\"[]\";default:return\"\"}}function fe(Ie){var _e=[];function we(ye){if(de(ye)&&(_e.push(ye),ye.children))for(var Ae=0,er=ye.children;Ae0)return rr(e.declarationNameToString(Ie.name));if(e.isVariableDeclaration(_e))return rr(e.declarationNameToString(_e.name));if(e.isBinaryExpression(_e)&&_e.operatorToken.kind===63)return b(_e.left).replace(B,\"\");if(e.isPropertyAssignment(_e))return b(_e.name);if(e.getSyntacticModifierFlags(Ie)&512)return\"default\";if(e.isClassLike(Ie))return\"\";if(e.isCallExpression(_e)){var we=Ee(_e.expression);if(we!==void 0){if(we=rr(we),we.length>E)return\"\".concat(we,\" callback\");var de=rr(e.mapDefined(_e.arguments,function(ye){return e.isStringLiteralLike(ye)?ye.getText(le):void 0}).join(\", \"));return\"\".concat(we,\"(\").concat(de,\") callback\")}}return\"\"}function Ee(Ie){if(e.isIdentifier(Ie))return Ie.text;if(e.isPropertyAccessExpression(Ie)){var _e=Ee(Ie.expression),we=Ie.name.text;return _e===void 0?we:\"\".concat(_e,\".\").concat(we)}else return}function He(Ie){switch(Ie.kind){case 214:case 213:case 226:return!0;default:return!1}}function rr(Ie){return Ie=Ie.length>E?Ie.substring(0,E)+\"...\":Ie,Ie.replace(/\\\\?(\\r?\\n|\\r|\\u2028|\\u2029)/g,\"\")}})(a=e.NavigationBar||(e.NavigationBar={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){function w(x,X,$,A,y,V){var L=e.textChanges.ChangeTracker.fromContext({host:$,formatContext:X,preferences:y}),P=function(D){return e.stableSort(p(Q(D,x,A,V)),function(fe,g){return O(fe,g)})},k=B(x,x.statements.filter(e.isImportDeclaration));k.forEach(function(D){return d(D,P)});var Y=x.statements.filter(e.isExportDeclaration);d(Y,G);for(var U=0,j=x.statements.filter(e.isAmbientModule);U=2))return!0}return!1}function Q(x,X,$,A){if(A)return x;for(var y=$.getTypeChecker(),V=$.getCompilerOptions(),L=y.getJsxNamespace(X),P=y.getJsxFragmentFactory(X),k=!!(X.transformFlags&2),Y=[],U=0,j=x;U0?j[0]:I[0],ge=Z.length===0?ne?void 0:e.factory.createNamedImports(e.emptyArray):I.length===0?e.factory.createNamedImports(Z):e.factory.updateNamedImports(I[0].importClause.namedBindings,Z);U&&ne&&ge?(L.push(oe(Be,ne,void 0)),L.push(oe((X=I[0])!==null&&X!==void 0?X:Be,void 0,ge))):L.push(oe(Be,ne,ge))}}return L}C.coalesceImports=p;function m(x){for(var X,$={defaultImports:[],namespaceImports:[],namedImports:[]},A={defaultImports:[],namespaceImports:[],namedImports:[]},y=0,V=x;y1&&ie.push(m(q,O,\"comment\"))}}function p(b,se,J,ie){e.isJsxText(b)||N(b.pos,se,J,ie)}function m(b,se,J){return T(e.createTextSpanFromBounds(b,se),J)}function G(b,se){switch(b.kind){case 235:if(e.isFunctionLike(b.parent))return oe(b.parent,b,se);switch(b.parent.kind){case 240:case 243:case 244:case 242:case 239:case 241:case 248:case 292:return x(b.parent);case 252:var J=b.parent;if(J.tryBlock===b)return x(b.parent);if(J.finallyBlock===b){var ie=e.findChildOfKind(J,96,se);if(ie)return x(ie)}default:return T(e.createTextSpanFromNode(b,se),\"code\")}case 262:return x(b.parent);case 257:case 226:case 258:case 260:case 263:case 182:case 201:return x(b);case 184:return x(b,!1,!e.isTupleTypeNode(b.parent),22);case 289:case 290:return X(b.statements);case 205:return F(b);case 204:return F(b,22);case 278:return O(b);case 282:return ve(b);case 279:case 280:return ee(b.attributes);case 223:case 14:return he(b);case 202:return x(b,!1,!e.isBindingElement(b.parent),22);case 214:return q(b);case 208:return R(b);case 212:return $(b)}function R(A){if(!!A.arguments.length){var y=e.findChildOfKind(A,20,se),V=e.findChildOfKind(A,21,se);if(!(!y||!V||e.positionsAreOnSameLine(y.pos,V.pos,se)))return f(y,V,A,se,!1,!0)}}function q(A){if(!(e.isBlock(A.body)||e.isParenthesizedExpression(A.body)||e.positionsAreOnSameLine(A.body.getFullStart(),A.body.getEnd(),se))){var y=e.createTextSpanFromBounds(A.body.getFullStart(),A.body.getEnd());return T(y,\"code\",e.createTextSpanFromNode(A))}}function O(A){var y=e.createTextSpanFromBounds(A.openingElement.getStart(se),A.closingElement.getEnd()),V=A.openingElement.tagName.getText(se),L=\"<\"+V+\">...\";return T(y,\"code\",y,!1,L)}function ve(A){var y=e.createTextSpanFromBounds(A.openingFragment.getStart(se),A.closingFragment.getEnd()),V=\"<>...\";return T(y,\"code\",y,!1,V)}function ee(A){if(A.properties.length!==0)return m(A.getStart(se),A.getEnd(),\"code\")}function he(A){if(!(A.kind===14&&A.text.length===0))return m(A.getStart(se),A.getEnd(),\"code\")}function F(A,y){return y===void 0&&(y=18),x(A,!1,!e.isArrayLiteralExpression(A.parent)&&!e.isCallExpression(A.parent),y)}function x(A,y,V,L,P){y===void 0&&(y=!1),V===void 0&&(V=!0),L===void 0&&(L=18),P===void 0&&(P=L===18?19:23);var k=e.findChildOfKind(b,L,se),Y=e.findChildOfKind(b,P,se);return k&&Y&&f(k,Y,A,se,y,V)}function X(A){return A.length?T(e.createTextSpanFromRange(A),\"code\"):void 0}function $(A){if(!e.positionsAreOnSameLine(A.getStart(),A.getEnd(),se)){var y=e.createTextSpanFromBounds(A.getStart(),A.getEnd());return T(y,\"code\",e.createTextSpanFromNode(A))}}}function oe(b,se,J){var ie=K(b,se,J),R=e.findChildOfKind(se,19,J);return ie&&R&&f(ie,R,b,J,b.kind!==214)}function f(b,se,J,ie,R,q){R===void 0&&(R=!1),q===void 0&&(q=!0);var O=e.createTextSpanFromBounds(q?b.getFullStart():b.getStart(ie),se.getEnd());return T(O,\"code\",e.createTextSpanFromNode(J,ie),R)}function T(b,se,J,ie,R){return J===void 0&&(J=b),ie===void 0&&(ie=!1),R===void 0&&(R=\"...\"),{textSpan:b,kind:se,hintSpan:J,bannerText:R,autoCollapse:ie}}function K(b,se,J){if(e.isNodeArrayMultiLine(b.parameters,J)){var ie=e.findChildOfKind(b,20,J);if(ie)return ie}return e.findChildOfKind(se,18,J)}})(a=e.OutliningElementsCollector||(e.OutliningElementsCollector={}))})(ke||(ke={}));var ke;(function(e){var a;(function(y){y[y.exact=0]=\"exact\",y[y.prefix=1]=\"prefix\",y[y.substring=2]=\"substring\",y[y.camelCase=3]=\"camelCase\"})(a=e.PatternMatchKind||(e.PatternMatchKind={}));function C(y,V){return{kind:y,isCaseSensitive:V}}function w(y){var V=new e.Map,L=y.trim().split(\".\").map(function(P){return f(P.trim())});if(!L.some(function(P){return!P.subWordTextChunks.length}))return{getFullMatch:function(P,k){return B(P,k,L,V)},getMatchForLastSegmentOfPattern:function(P){return le(P,e.last(L),V)},patternContainsDots:L.length>1}}e.createPatternMatcher=w;function B(y,V,L,P){var k=le(V,e.last(L),P);if(!!k&&!(L.length-1>y.length)){for(var Y,U=L.length-2,j=y.length-1;U>=0;U-=1,j-=1)Y=N(Y,le(y[j],L[U],P));return Y}}function E(y,V){var L=V.get(y);return L||V.set(y,L=ve(y)),L}function Q(y,V,L){var P=b(y,V.textLowerCase);if(P===0)return C(V.text.length===y.length?a.exact:a.prefix,e.startsWith(y,V.text));if(V.isLowerCase){if(P===-1)return;for(var k=E(y,L),Y=0,U=k;Y0)return C(a.substring,!0);if(V.characterSpans.length>0){var H=E(y,L),I=oe(y,H,V,!1)?!0:oe(y,H,V,!0)?!1:void 0;if(I!==void 0)return C(a.camelCase,I)}}}function le(y,V,L){if(A(V.totalTextChunk.text,function(I){return I!==32&&I!==42})){var P=Q(y,V.totalTextChunk,L);if(P)return P}for(var k=V.subWordTextChunks,Y,U=0,j=k;U=65&&y<=90)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toUpperCase()}function K(y){if(y>=97&&y<=122)return!0;if(y<127||!e.isUnicodeIdentifierStart(y,99))return!1;var V=String.fromCharCode(y);return V===V.toLowerCase()}function b(y,V){for(var L=y.length-V.length,P=function(U){if(A(V,function(j,H){return se(y.charCodeAt(H+U))===j}))return{value:U}},k=0;k<=L;k++){var Y=P(k);if(typeof Y==\"object\")return Y.value}return-1}function se(y){return y>=65&&y<=90?97+(y-65):y<127?y:String.fromCharCode(y).toLowerCase().charCodeAt(0)}function J(y){return y>=48&&y<=57}function ie(y){return T(y)||K(y)||J(y)||y===95||y===36}function R(y){for(var V=[],L=0,P=0,k=0;k0&&(V.push(q(y.substr(L,P))),P=0)}return P>0&&V.push(q(y.substr(L,P))),V}function q(y){var V=y.toLowerCase();return{text:y,textLowerCase:V,isLowerCase:y===V,characterSpans:O(y)}}function O(y){return ee(y,!1)}e.breakIntoCharacterSpans=O;function ve(y){return ee(y,!0)}e.breakIntoWordSpans=ve;function ee(y,V){for(var L=[],P=0,k=1;kf)break e;var ve=e.singleOrUndefined(e.getTrailingCommentRanges(T.text,q.end));if(ve&&ve.kind===2&&A(ve.pos,ve.end),B(T,f,q)){if(e.isBlock(q)||e.isTemplateSpan(q)||e.isTemplateHead(q)||e.isTemplateTail(q)||R&&e.isTemplateHead(R)||e.isVariableDeclarationList(q)&&e.isVariableStatement(se)||e.isSyntaxList(q)&&e.isVariableDeclarationList(se)||e.isVariableDeclaration(q)&&e.isSyntaxList(se)&&J.length===1||e.isJSDocTypeExpression(q)||e.isJSDocSignature(q)||e.isJSDocTypeLiteral(q)){se=q;break}if(e.isTemplateSpan(se)&&O&&e.isTemplateMiddleOrTemplateTail(O)){var ee=q.getFullStart()-2,he=O.getStart()+1;$(ee,he)}var F=e.isSyntaxList(q)&&m(R)&&G(O)&&!e.positionsAreOnSameLine(R.getStart(),O.getStart(),T),x=F?R.getEnd():q.getStart(),X=F?O.getStart():oe(T,q);e.hasJSDocNodes(q)&&((K=q.jsDoc)===null||K===void 0?void 0:K.length)&&$(e.first(q.jsDoc).getStart(),X),$(x,X),(e.isStringLiteral(q)||e.isTemplateLiteral(q))&&$(x+1,X-1),se=q;break}if(ie===J.length-1)break e}}return b;function $(y,V){if(y!==V){var L=e.createTextSpanFromBounds(y,V);(!b||!e.textSpansEqual(L,b.textSpan)&&e.textSpanIntersectsWithPosition(L,f))&&(b=Ke({textSpan:L},b&&{parent:b}))}}function A(y,V){$(y,V);for(var L=y;T.text.charCodeAt(L)===47;)L++;$(L,V)}}C.getSmartSelectionRange=w;function B(f,T,K){if(e.Debug.assert(K.pos<=T),T0&&e.last(D).kind===27&&fe++,fe}function O(l,d,D,fe){return e.Debug.assert(D>=d.getStart(),\"Assumed 'position' could not occur before node.\"),e.isTemplateLiteralToken(d)?e.isInsideTemplateLiteral(d,D,fe)?0:l+2:l+1}function ve(l,d,D){var fe=e.isNoSubstitutionTemplateLiteral(l.template)?1:l.template.templateSpans.length+1;return d!==0&&e.Debug.assertLessThan(d,fe),{isTypeParameterList:!1,invocation:{kind:0,node:l},argumentsSpan:he(l,D),argumentIndex:d,argumentCount:fe}}function ee(l,d){var D=l.getFullStart(),fe=e.skipTrivia(d.text,l.getEnd(),!1);return e.createTextSpan(D,fe-D)}function he(l,d){var D=l.template,fe=D.getStart(),g=D.getEnd();if(D.kind===223){var ne=e.last(D.templateSpans);ne.literal.getFullWidth()===0&&(g=e.skipTrivia(d.text,g,!1))}return e.createTextSpan(fe,g-fe)}function F(l,d,D,fe,g){for(var ne=function(Fe){e.Debug.assert(e.rangeContainsRange(Fe.parent,Fe),\"Not a subspan\",function(){return\"Child: \".concat(e.Debug.formatSyntaxKind(Fe.kind),\", parent: \").concat(e.Debug.formatSyntaxKind(Fe.parent.kind))});var Z=T(Fe,d,D,fe);if(Z)return{value:Z}},ue=l;!e.isSourceFile(ue)&&(g||!e.isBlock(ue));ue=ue.parent){var We=ne(ue);if(typeof We==\"object\")return We.value}}function x(l,d,D){var fe=l.getChildren(D),g=fe.indexOf(d);return e.Debug.assert(g>=0&&fe.length>g+1),fe[g+1]}function X(l){return l.kind===0?e.getInvokedExpression(l.node):l.called}function $(l){return l.kind===0?l.node:l.kind===1?l.called:l.node}var A=70246400;function y(l,d,D,fe,g,ne){var ue,We=D.isTypeParameterList,Fe=D.argumentCount,Z=D.argumentsSpan,Be=D.invocation,ge=D.argumentIndex,Re=$(Be),ze=Be.kind===2?Be.symbol:g.getSymbolAtLocation(X(Be))||ne&&((ue=d.declaration)===null||ue===void 0?void 0:ue.symbol),Ee=ze?e.symbolToDisplayParts(g,ze,ne?fe:void 0,void 0):e.emptyArray,He=e.map(l,function(Br){return k(Br,Ee,We,g,Re,fe)});ge!==0&&e.Debug.assertLessThan(ge,Fe);for(var rr=0,Ie=0,_e=0;_e1))for(var de=0,ye=0,Ae=we;ye=Fe){rr=Ie+de;break}de++}Ie+=we.length}e.Debug.assert(rr!==-1);var ir={items:e.flatMapToMutable(He,e.identity),applicableSpan:Z,selectedItemIndex:rr,argumentIndex:ge,argumentCount:Fe},Cr=ir.items[rr];if(Cr.isVariadic){var Ye=e.findIndex(Cr.parameters,function(Br){return!!Br.isRest});-1j?U.substr(0,j-3)+\"...\":U}function k(U){var j=71286784,H={removeComments:!0},I=e.createPrinter(H);return e.usingSingleLineStringWriter(function(l){var d=b.typeToTypeNode(U,void 0,j,l);e.Debug.assertIsDefined(d,\"should always get typenode\"),I.writeNode(4,d,p,l)})}function Y(U){return U===\"undefined\"}}C.provideInlayHints=le})(a=e.InlayHints||(e.InlayHints={}))})(ke||(ke={}));var ke;(function(e){var a=/^data:(?:application\\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\\/=]+)$)?/;function C(Q){var le=e.createGetCanonicalFileName(Q.useCaseSensitiveFileNames()),N=Q.getCurrentDirectory(),p=new e.Map,m=new e.Map;return{tryGetSourcePosition:f,tryGetGeneratedPosition:T,toLineColumnOffset:J,clearCache:ie};function G(R){return e.toPath(R,N,le)}function oe(R,q){var O=G(R),ve=m.get(O);if(ve)return ve;var ee;if(Q.getDocumentPositionMapper)ee=Q.getDocumentPositionMapper(R,q);else if(Q.readFile){var he=se(R);ee=he&&e.getDocumentPositionMapper({getSourceFileLike:se,getCanonicalFileName:le,log:function(F){return Q.log(F)}},R,e.getLineInfo(he.text,e.getLineStarts(he)),function(F){return!Q.fileExists||Q.fileExists(F)?Q.readFile(F):void 0})}return m.set(O,ee||e.identitySourceMapConsumer),ee||e.identitySourceMapConsumer}function f(R){if(!!e.isDeclarationFileName(R.fileName)){var q=K(R.fileName);if(!!q){var O=oe(R.fileName).getSourcePosition(R);return!O||O===R?void 0:f(O)||O}}}function T(R){if(!e.isDeclarationFileName(R.fileName)){var q=K(R.fileName);if(!!q){var O=Q.getProgram();if(!O.isSourceOfProjectReferenceRedirect(q.fileName)){var ve=O.getCompilerOptions(),ee=e.outFile(ve),he=ee?e.removeFileExtension(ee)+\".d.ts\":e.getDeclarationEmitOutputFilePathWorker(R.fileName,O.getCompilerOptions(),N,O.getCommonSourceDirectory(),le);if(he!==void 0){var F=oe(he,R.fileName).getGeneratedPosition(R);return F===R?void 0:F}}}}}function K(R){var q=Q.getProgram();if(!!q){var O=G(R),ve=q.getSourceFileByPath(O);return ve&&ve.resolvedPath===O?ve:void 0}}function b(R){var q=G(R),O=p.get(q);if(O!==void 0)return O||void 0;if(!Q.readFile||Q.fileExists&&!Q.fileExists(q)){p.set(q,!1);return}var ve=Q.readFile(q),ee=ve?E(ve):!1;return p.set(q,ee),ee||void 0}function se(R){return Q.getSourceFileLike?Q.getSourceFileLike(R):K(R)||b(R)}function J(R,q){var O=se(R);return O.getLineAndCharacterOfPosition(q)}function ie(){p.clear(),m.clear()}}e.getSourceMapper=C;function w(Q,le,N,p){var m=e.tryGetSourceMappingURL(N);if(m){var G=a.exec(m);if(G){if(G[1]){var oe=G[1];return B(Q,e.base64decode(e.sys,oe),le)}m=void 0}}var f=[];m&&f.push(m),f.push(le+\".map\");for(var T=m&&e.getNormalizedAbsolutePath(m,e.getDirectoryPath(le)),K=0,b=f;Kq?!1:ie.arguments.length0?e.arrayFrom(oe.values()).join(\",\"):\"\"}C.getSymbolModifiers=le;function N(m,G,oe,f,T,K,b){var se;K===void 0&&(K=e.getMeaningFromLocation(T));var J=[],ie=[],R=[],q=e.getCombinedLocalAndExportSymbolFlags(G),O=K&1?E(m,G,T):\"\",ve=!1,ee=T.kind===108&&e.isInExpressionContext(T)||e.isThisInTypeQuery(T),he,F,x,X,$=!1;if(T.kind===108&&!ee)return{displayParts:[e.keywordPart(108)],documentation:[],symbolKind:\"primitive type\",tags:void 0};if(O!==\"\"||q&32||q&2097152){if(O===\"getter\"||O===\"setter\"){var A=e.find(G.declarations,function(er){return er.name===T});if(A)switch(A.kind){case 172:O=\"getter\";break;case 173:O=\"setter\";break;default:e.Debug.assertNever(A)}else O=\"property\"}var y=void 0;if(he=ee?m.getTypeAtLocation(T):m.getTypeOfSymbolAtLocation(G,T),T.parent&&T.parent.kind===206){var V=T.parent.name;(V===T||V&&V.getFullWidth()===0)&&(T=T.parent)}var L=void 0;if(e.isCallOrNewExpression(T)?L=T:(e.isCallExpressionTarget(T)||e.isNewExpressionTarget(T)||T.parent&&(e.isJsxOpeningLikeElement(T.parent)||e.isTaggedTemplateExpression(T.parent))&&e.isFunctionLike(G.valueDeclaration))&&(L=T.parent),L){y=m.getResolvedSignature(L);var P=L.kind===209||e.isCallExpression(L)&&L.expression.kind===106,k=P?he.getConstructSignatures():he.getCallSignatures();if(y&&!e.contains(k,y.target)&&!e.contains(k,y)&&(y=k.length?k[0]:void 0),y){switch(P&&q&32?(O=\"constructor\",we(he.symbol,O)):q&2097152?(O=\"alias\",de(O),J.push(e.spacePart()),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),_e(G)):we(G,O),O){case\"JSX attribute\":case\"property\":case\"var\":case\"const\":case\"let\":case\"parameter\":case\"local var\":J.push(e.punctuationPart(58)),J.push(e.spacePart()),!(e.getObjectFlags(he)&16)&&he.symbol&&(e.addRange(J,e.symbolToDisplayParts(m,he.symbol,f,void 0,5)),J.push(e.lineBreakPart())),P&&(y.flags&4&&(J.push(e.keywordPart(126)),J.push(e.spacePart())),J.push(e.keywordPart(103)),J.push(e.spacePart())),ye(y,k,262144);break;default:ye(y,k)}ve=!0,$=k.length>1}}else if(e.isNameOfFunctionDeclaration(T)&&!(q&98304)||T.kind===134&&T.parent.kind===171){var Y=T.parent,U=G.declarations&&e.find(G.declarations,function(er){return er===(T.kind===134?Y.parent:Y)});if(U){var k=Y.kind===171?he.getNonNullableType().getConstructSignatures():he.getNonNullableType().getCallSignatures();m.isImplementationOfOverload(Y)?y=k[0]:y=m.getSignatureFromDeclaration(Y),Y.kind===171?(O=\"constructor\",we(he.symbol,O)):we(Y.kind===174&&!(he.symbol.flags&2048||he.symbol.flags&4096)?he.symbol:G,O),y&&ye(y,k),ve=!0,$=k.length>1}}}if(q&32&&!ve&&!ee&&(rr(),e.getDeclarationOfKind(G,226)?de(\"local class\"):J.push(e.keywordPart(84)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&64&&K&2&&(He(),J.push(e.keywordPart(118)),J.push(e.spacePart()),_e(G),Ae(G,oe)),q&524288&&K&2&&(He(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(G),Ae(G,oe),J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),e.addRange(J,e.typeToDisplayParts(m,e.isConstTypeReference(T.parent)?m.getTypeAtLocation(T.parent):m.getDeclaredTypeOfSymbol(G),f,8388608))),q&384&&(He(),e.some(G.declarations,function(er){return e.isEnumDeclaration(er)&&e.isEnumConst(er)})&&(J.push(e.keywordPart(85)),J.push(e.spacePart())),J.push(e.keywordPart(92)),J.push(e.spacePart()),_e(G)),q&1536&&!ee){He();var A=e.getDeclarationOfKind(G,261),j=A&&A.name&&A.name.kind===79;J.push(e.keywordPart(j?142:141)),J.push(e.spacePart()),_e(G)}if(q&262144&&K&2)if(He(),J.push(e.punctuationPart(20)),J.push(e.textPart(\"type parameter\")),J.push(e.punctuationPart(21)),J.push(e.spacePart()),_e(G),G.parent)Ie(),_e(G.parent,f),Ae(G.parent,f);else{var H=e.getDeclarationOfKind(G,163);if(H===void 0)return e.Debug.fail();var A=H.parent;if(A)if(e.isFunctionLikeKind(A.kind)){Ie();var y=m.getSignatureFromDeclaration(A);A.kind===175?(J.push(e.keywordPart(103)),J.push(e.spacePart())):A.kind!==174&&A.name&&_e(A.symbol),e.addRange(J,e.signatureToDisplayParts(m,y,oe,32))}else A.kind===259&&(Ie(),J.push(e.keywordPart(152)),J.push(e.spacePart()),_e(A.symbol),Ae(A.symbol,oe))}if(q&8){O=\"enum member\",we(G,\"enum member\");var A=(se=G.declarations)===null||se===void 0?void 0:se[0];if((A==null?void 0:A.kind)===299){var I=m.getConstantValue(A);I!==void 0&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.displayPart(e.getTextOfConstantValue(I),typeof I==\"number\"?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}}if(G.flags&2097152){if(He(),!ve){var l=m.getAliasedSymbol(G);if(l!==G&&l.declarations&&l.declarations.length>0){var d=l.declarations[0],D=e.getNameOfDeclaration(d);if(D){var fe=e.isModuleWithStringLiteralName(d)&&e.hasSyntacticModifier(d,2),g=G.name!==\"default\"&&!fe,ne=N(m,l,e.getSourceFileOfNode(d),d,D,K,g?G:l);J.push.apply(J,ne.displayParts),J.push(e.lineBreakPart()),x=ne.documentation,X=ne.tags}else x=l.getContextualDocumentationComment(d,m),X=l.getJsDocTags(m)}}if(G.declarations)switch(G.declarations[0].kind){case 264:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(142));break;case 271:J.push(e.keywordPart(93)),J.push(e.spacePart()),J.push(e.keywordPart(G.declarations[0].isExportEquals?63:88));break;case 275:J.push(e.keywordPart(93));break;default:J.push(e.keywordPart(100))}J.push(e.spacePart()),_e(G),e.forEach(G.declarations,function(er){if(er.kind===265){var ir=er;if(e.isExternalModuleImportEqualsDeclaration(ir))J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),J.push(e.keywordPart(146)),J.push(e.punctuationPart(20)),J.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(ir)),e.SymbolDisplayPartKind.stringLiteral)),J.push(e.punctuationPart(21));else{var Cr=m.getSymbolAtLocation(ir.moduleReference);Cr&&(J.push(e.spacePart()),J.push(e.operatorPart(63)),J.push(e.spacePart()),_e(Cr,f))}return!0}})}if(!ve)if(O!==\"\"){if(he){if(ee?(He(),J.push(e.keywordPart(108))):we(G,O),O===\"property\"||O===\"getter\"||O===\"setter\"||O===\"JSX attribute\"||q&3||O===\"local var\"||ee){if(J.push(e.punctuationPart(58)),J.push(e.spacePart()),he.symbol&&he.symbol.flags&262144){var ue=e.mapToDisplayParts(function(er){var ir=m.typeParameterToDeclaration(he,f,w);Ee().writeNode(4,ir,e.getSourceFileOfNode(e.getParseTreeNode(f)),er)});e.addRange(J,ue)}else e.addRange(J,e.typeToDisplayParts(m,he,f));if(G.target&&G.target.tupleLabelDeclaration){var We=G.target.tupleLabelDeclaration;e.Debug.assertNode(We.name,e.isIdentifier),J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.textPart(e.idText(We.name))),J.push(e.punctuationPart(21))}}else if(q&16||q&8192||q&16384||q&131072||q&98304||O===\"method\"){var k=he.getNonNullableType().getCallSignatures();k.length&&(ye(k[0],k),$=k.length>1)}}}else O=B(m,G,T);if(ie.length===0&&!$&&(ie=G.getContextualDocumentationComment(f,m)),ie.length===0&&q&4&&G.parent&&G.declarations&&e.forEach(G.parent.declarations,function(er){return er.kind===305}))for(var Fe=0,Z=G.declarations;Fe0))break}}if(ie.length===0&&e.isIdentifier(T)&&G.valueDeclaration&&e.isBindingElement(G.valueDeclaration)){var A=G.valueDeclaration,ge=A.parent;if(e.isIdentifier(A.name)&&e.isObjectBindingPattern(ge)){var Re=e.getTextOfIdentifierOrLiteral(A.name),ze=m.getTypeAtLocation(ge);ie=e.firstDefined(ze.isUnion()?ze.types:[ze],function(ir){var Cr=ir.getProperty(Re);return Cr?Cr.getDocumentationComment(m):void 0})||e.emptyArray}}return R.length===0&&!$&&(R=G.getContextualJsDocTags(f,m)),ie.length===0&&x&&(ie=x),R.length===0&&X&&(R=X),{displayParts:J,documentation:ie,symbolKind:O,tags:R.length===0?void 0:R};function Ee(){return F||(F=e.createPrinter({removeComments:!0})),F}function He(){J.length&&J.push(e.lineBreakPart()),rr()}function rr(){b&&(de(\"alias\"),J.push(e.spacePart()))}function Ie(){J.push(e.spacePart()),J.push(e.keywordPart(101)),J.push(e.spacePart())}function _e(er,ir){b&&er===G&&(er=b);var Cr=e.symbolToDisplayParts(m,er,ir||oe,void 0,7);e.addRange(J,Cr),G.flags&16777216&&J.push(e.punctuationPart(57))}function we(er,ir){He(),ir&&(de(ir),er&&!e.some(er.declarations,function(Cr){return e.isArrowFunction(Cr)||(e.isFunctionExpression(Cr)||e.isClassExpression(Cr))&&!Cr.name})&&(J.push(e.spacePart()),_e(er)))}function de(er){switch(er){case\"var\":case\"function\":case\"let\":case\"const\":case\"constructor\":J.push(e.textOrKeywordPart(er));return;default:J.push(e.punctuationPart(20)),J.push(e.textOrKeywordPart(er)),J.push(e.punctuationPart(21));return}}function ye(er,ir,Cr){Cr===void 0&&(Cr=0),e.addRange(J,e.signatureToDisplayParts(m,er,f,Cr|32)),ir.length>1&&(J.push(e.spacePart()),J.push(e.punctuationPart(20)),J.push(e.operatorPart(39)),J.push(e.displayPart((ir.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),J.push(e.spacePart()),J.push(e.textPart(ir.length===2?\"overload\":\"overloads\")),J.push(e.punctuationPart(21))),ie=er.getDocumentationComment(m),R=er.getJsDocTags(),ir.length>1&&ie.length===0&&R.length===0&&(ie=ir[0].getDocumentationComment(m),R=ir[0].getJsDocTags())}function Ae(er,ir){var Cr=e.mapToDisplayParts(function(Ye){var Br=m.symbolToTypeParameterDeclarations(er,ir,w);Ee().writeList(53776,Br,e.getSourceFileOfNode(e.getParseTreeNode(ir)),Ye)});e.addRange(J,Cr)}}C.getSymbolDisplayPartsDocumentationAndSymbolKind=N;function p(m){return m.parent?!1:e.forEach(m.declarations,function(G){if(G.kind===213)return!0;if(G.kind!==254&&G.kind!==256)return!1;for(var oe=G.parent;!e.isFunctionBlock(oe);oe=oe.parent)if(oe.kind===305||oe.kind===262)return!1;return!0})}})(a=e.SymbolDisplay||(e.SymbolDisplay={}))})(ke||(ke={}));var ke;(function(e){function a(E,Q){var le=[],N=Q.compilerOptions?B(Q.compilerOptions,le):{},p=e.getDefaultCompilerOptions();for(var m in p)e.hasProperty(p,m)&&N[m]===void 0&&(N[m]=p[m]);for(var G=0,oe=e.transpileOptionValueCompilerOptions;G>=m;return ie}function b(se,J){var ie=(se>>J&G)+1;return e.Debug.assert((ie&G)===ie,\"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules.\"),se&~(G<=V.length)return!1;var Y=V[L];if(k.end<=Y.start)return!1;if(e.startEndOverlapsWithStartEnd(k.pos,k.end,Y.start,Y.start+Y.length))return!0;L++}};function P(){return!1}}function b(A,y,V){var L=A.getStart(V);if(L===y.pos&&A.end===y.end)return L;var P=e.findPrecedingToken(y.pos,V);return!P||P.end>=y.pos?A.pos:P.end}function se(A,y,V){for(var L=-1,P;A;){var k=V.getLineAndCharacterOfPosition(A.getStart(V)).line;if(L!==-1&&k!==L)break;if(C.SmartIndenter.shouldIndentChildNode(y,A,P,V))return y.indentSize;L=k,P=A,A=A.parent}return 0}function J(A,y,V,L,P,k){var Y={pos:A.pos,end:A.end};return C.getFormattingScanner(y.text,V,Y.pos,Y.end,function(U){return q(Y,A,L,P,U,k,1,function(j){return!1},y)})}C.formatNodeGivenIndentation=J;function ie(A,y,V,L){if(!A)return[];var P={pos:e.getLineStartPositionForPosition(A.getStart(y),y),end:A.end};return R(P,y,V,L)}function R(A,y,V,L){var P=T(A,y);return C.getFormattingScanner(y.text,y.languageVariant,b(P,A,y),A.end,function(k){return q(A,P,C.SmartIndenter.getIndentationForNode(P,A,y,V.options),se(P,V.options,y),k,V,L,K(y.parseDiagnostics,A),y)})}function q(A,y,V,L,P,k,Y,U,j){var H,I=k.options,l=k.getRules,d=k.host,D=new C.FormattingContext(j,Y,I),fe,g,ne,ue,We=-1,Fe=[];if(P.advance(),P.isOnToken()){var Z=j.getLineAndCharacterOfPosition(y.getStart(j)).line,Be=Z;y.decorators&&(Be=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(y,j)).line),we(y,y,Z,Be,V,L)}if(!P.isOnToken()){var ge=C.SmartIndenter.nodeWillIndentChild(I,y,void 0,j,!1)?V+I.indentSize:V,Re=P.getCurrentLeadingTrivia();Re&&(de(Re,ge,!1,function(Ir){return Ae(Ir,j.getLineAndCharacterOfPosition(Ir.pos),y,y,void 0)}),I.trimTrailingWhitespace!==!1&&n(Re))}if(fe&&P.getStartPos()>=A.end){var ze=P.isOnEOF()?P.readEOFTokenRange():P.isOnToken()?P.readTokenInfo(y).token:void 0;if(ze){var Ee=((H=e.findPrecedingToken(ze.end,j,y))===null||H===void 0?void 0:H.parent)||g;er(ze,j.getLineAndCharacterOfPosition(ze.pos).line,Ee,fe,ne,g,Ee,void 0)}}return Fe;function He(Ir,wr,Ur,ii,mi){if(e.rangeOverlapsWithStartEnd(ii,Ir,wr)||e.rangeContainsStartEnd(ii,Ir,wr)){if(mi!==-1)return mi}else{var pe=j.getLineAndCharacterOfPosition(Ir).line,or=e.getLineStartPositionForPosition(Ir,j),qr=C.SmartIndenter.findFirstNonWhitespaceColumn(or,Ir,j,I);if(pe!==Ur||Ir===qr){var si=C.SmartIndenter.getBaseIndentation(I);return si>qr?si:qr}}return-1}function rr(Ir,wr,Ur,ii,mi,pe){var or=C.SmartIndenter.shouldIndentChildNode(I,Ir)?I.indentSize:0;return pe===wr?{indentation:wr===ue?We:mi.getIndentation(),delta:Math.min(I.indentSize,mi.getDelta(Ir)+or)}:Ur===-1?Ir.kind===20&&wr===ue?{indentation:We,delta:mi.getDelta(Ir)}:C.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(ii,Ir,wr,j)||C.SmartIndenter.childIsUnindentedBranchOfConditionalExpression(ii,Ir,wr,j)||C.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(ii,Ir,wr,j)?{indentation:mi.getIndentation(),delta:or}:{indentation:mi.getIndentation()+mi.getDelta(Ir),delta:or}:{indentation:Ur,delta:or}}function Ie(Ir){if(Ir.modifiers&&Ir.modifiers.length)return Ir.modifiers[0].kind;switch(Ir.kind){case 257:return 84;case 258:return 118;case 256:return 98;case 260:return 260;case 172:return 136;case 173:return 149;case 169:if(Ir.asteriskToken)return 41;case 167:case 164:var wr=e.getNameOfDeclaration(Ir);if(wr)return wr.kind}}function _e(Ir,wr,Ur,ii){return{getIndentationForComment:function(or,qr,si){switch(or){case 19:case 23:case 21:return Ur+pe(si)}return qr!==-1?qr:Ur},getIndentationForToken:function(or,qr,si,Di){return!Di&&mi(or,qr,si)?Ur+pe(si):Ur},getIndentation:function(){return Ur},getDelta:pe,recomputeIndentation:function(or,qr){C.SmartIndenter.shouldIndentChildNode(I,qr,Ir,j)&&(Ur+=or?I.indentSize:-I.indentSize,ii=C.SmartIndenter.shouldIndentChildNode(I,Ir)?I.indentSize:0)}};function mi(or,qr,si){switch(qr){case 18:case 19:case 21:case 91:case 115:case 59:return!1;case 43:case 31:switch(si.kind){case 280:case 281:case 279:case 228:return!1}break;case 22:case 23:if(si.kind!==195)return!1;break}return wr!==or&&!(Ir.decorators&&qr===Ie(Ir))}function pe(or){return C.SmartIndenter.nodeWillIndentChild(I,Ir,or,j,!0)?ii:0}}function we(Ir,wr,Ur,ii,mi,pe){if(!e.rangeOverlapsWithStartEnd(A,Ir.getStart(j),Ir.getEnd()))return;var or=_e(Ir,Ur,mi,pe),qr=wr;for(e.forEachChild(Ir,function(et){Di(et,-1,Ir,or,Ur,ii,!1)},function(et){wi(et,Ir,Ur,or)});P.isOnToken()&&P.getStartPos()Math.min(Ir.end,A.end))break;Xi(si,Ir,or,Ir)}function Di(et,Gi,Wt,Zt,_r,pi,ae,Xe){if(e.nodeIsMissing(et))return Gi;var Jr=et.getStart(j),ti=j.getLineAndCharacterOfPosition(Jr).line,Ze=ti;et.decorators&&(Ze=j.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(et,j)).line);var Sr=-1;if(ae&&e.rangeContainsRange(A,Wt)&&(Sr=He(Jr,et.end,_r,A,Gi),Sr!==-1&&(Gi=Sr)),!e.rangeOverlapsWithStartEnd(A,et.pos,et.end))return et.endA.end)return Gi;if(zr.token.end>Jr){zr.token.pos>Jr&&P.skipToStartOf(et);break}Xi(zr,Ir,Zt,Ir)}if(!P.isOnToken()||P.getStartPos()>=A.end)return Gi;if(e.isToken(et)){var zr=P.readTokenInfo(et);if(et.kind!==11)return e.Debug.assert(zr.token.end===et.end,\"Token end is child end\"),Xi(zr,Ir,Zt,et),Gi}var Wr=et.kind===165?ti:pi,Je=rr(et,ti,Sr,Ir,Zt,Wr);return we(et,qr,ti,Ze,Je.indentation,Je.delta),qr=Ir,Xe&&Wt.kind===204&&Gi===-1&&(Gi=Je.indentation),Gi}function wi(et,Gi,Wt,Zt){e.Debug.assert(e.isNodeArray(et));var _r=ee(Gi,et),pi=Zt,ae=Wt;if(!e.rangeOverlapsWithStartEnd(A,et.pos,et.end)){et.endet.pos)break;if(Xe.token.kind===_r){ae=j.getLineAndCharacterOfPosition(Xe.token.pos).line,Xi(Xe,Gi,Zt,Gi);var Jr=void 0;if(We!==-1)Jr=We;else{var ti=e.getLineStartPositionForPosition(Xe.token.pos,j);Jr=C.SmartIndenter.findFirstNonWhitespaceColumn(ti,Xe.token.pos,j,I)}pi=_e(Gi,Wt,Jr,I.indentSize)}else Xi(Xe,Gi,Zt,Gi)}for(var Ze=-1,Sr=0;Sr0){var ae=$(pi,I);Ge(Zt,_r.character,ae)}else be(Zt,_r.character)}}}function Er(Ir,wr,Ur){for(var ii=Ir;iipe)){var or=Ne(mi,pe);or!==-1&&(e.Debug.assert(or===mi||!e.isWhiteSpaceSingleLine(j.text.charCodeAt(or-1))),be(or,pe+1-or))}}}function Ne(Ir,wr){for(var Ur=wr;Ur>=Ir&&e.isWhiteSpaceSingleLine(j.text.charCodeAt(Ur));)Ur--;return Ur!==wr?Ur+1:-1}function n(Ir){for(var wr=fe?fe.end:A.pos,Ur=0,ii=Ir;Urj.text.length)return G(H);if(H.indentStyle===e.IndentStyle.None)return 0;var l=e.findPrecedingToken(U,j,void 0,!0),d=C.getRangeOfEnclosingComment(j,U,l||null);if(d&&d.kind===3)return le(j,U,H,d);if(!l)return G(H);var D=e.isStringOrRegularExpressionOrTemplateLiteral(l.kind);if(D&&l.getStart(j)<=U&&U=0),l<=d)return V(e.getStartPositionOfLine(d,U),j,U,H);var D=e.getStartPositionOfLine(l,U),fe=y(D,j,U,H),g=fe.column,ne=fe.character;if(g===0)return g;var ue=U.text.charCodeAt(D+ne);return ue===42?g-1:g}function N(U,j,H){for(var I=j;I>0;){var l=U.text.charCodeAt(I);if(!e.isWhiteSpaceLike(l))break;I--}var d=e.getLineStartPositionForPosition(I,U);return V(d,I,U,H)}function p(U,j,H,I,l,d){for(var D,fe=H;fe;){if(e.positionBelongsToNode(fe,j,U)&&k(d,fe,D,U,!0)){var g=J(fe,U),ne=se(H,fe,I,U),ue=ne!==0?l&&ne===2?d.indentSize:0:I!==g.line?d.indentSize:0;return oe(fe,g,void 0,ue,U,!0,d)}var We=X(fe,U,d,!0);if(We!==-1)return We;D=fe,fe=fe.parent}return G(d)}function m(U,j,H,I){var l=H.getLineAndCharacterOfPosition(U.getStart(H));return oe(U,l,j,0,H,!1,I)}B.getIndentationForNode=m;function G(U){return U.baseIndentSize||0}B.getBaseIndentation=G;function oe(U,j,H,I,l,d,D){for(var fe,g=U.parent;g;){var ne=!0;if(H){var ue=U.getStart(l);ne=ueH.end}var We=f(g,U,l),Fe=We.line===j.line||R(g,U,j.line,l);if(ne){var Z=(fe=ve(U,l))===null||fe===void 0?void 0:fe[0],Be=!!Z&&J(Z,l).line>We.line,ge=X(U,l,D,Be);if(ge!==-1||(ge=K(U,g,j,Fe,l,D),ge!==-1))return ge+I}k(D,g,U,l,d)&&!Fe&&(I+=D.indentSize);var Re=ie(g,U,j.line,l);U=g,g=U.parent,j=Re?l.getLineAndCharacterOfPosition(U.getStart(l)):We}return I+G(D)}function f(U,j,H){var I=ve(j,H),l=I?I.pos:U.getStart(H);return H.getLineAndCharacterOfPosition(l)}function T(U,j,H){var I=e.findListItemInfo(U);return I&&I.listItemIndex>0?$(I.list.getChildren(),I.listItemIndex-1,j,H):-1}function K(U,j,H,I,l,d){var D=(e.isDeclaration(U)||e.isStatementButNotDeclaration(U))&&(j.kind===305||!I);return D?A(H,l,d):-1}var b;(function(U){U[U.Unknown=0]=\"Unknown\",U[U.OpenBrace=1]=\"OpenBrace\",U[U.CloseBrace=2]=\"CloseBrace\"})(b||(b={}));function se(U,j,H,I){var l=e.findNextToken(U,j,I);if(!l)return 0;if(l.kind===18)return 1;if(l.kind===19){var d=J(l,I).line;return H===d?2:0}return 0}function J(U,j){return j.getLineAndCharacterOfPosition(U.getStart(j))}function ie(U,j,H,I){if(!(e.isCallExpression(U)&&e.contains(U.arguments,j)))return!1;var l=U.expression.getEnd(),d=e.getLineAndCharacterOfPosition(I,l).line;return d===H}B.isArgumentAndStartLineOverlapsExpressionBeingCalled=ie;function R(U,j,H,I){if(U.kind===239&&U.elseStatement===j){var l=e.findChildOfKind(U,91,I);e.Debug.assert(l!==void 0);var d=J(l,I).line;return d===H}return!1}B.childStartsOnTheSameLineWithElseInIfStatement=R;function q(U,j,H,I){if(e.isConditionalExpression(U)&&(j===U.whenTrue||j===U.whenFalse)){var l=e.getLineAndCharacterOfPosition(I,U.condition.end).line;if(j===U.whenTrue)return H===l;var d=J(U.whenTrue,I).line,D=e.getLineAndCharacterOfPosition(I,U.whenTrue.end).line;return l===d&&D===H}return!1}B.childIsUnindentedBranchOfConditionalExpression=q;function O(U,j,H,I){if(e.isCallOrNewExpression(U)){if(!U.arguments)return!1;var l=e.find(U.arguments,function(g){return g.pos===j.pos});if(!l)return!1;var d=U.arguments.indexOf(l);if(d===0)return!1;var D=U.arguments[d-1],fe=e.getLineAndCharacterOfPosition(I,D.getEnd()).line;if(H===fe)return!0}return!1}B.argumentStartsOnSameLineAsPreviousArgument=O;function ve(U,j){return U.parent&&he(U.getStart(j),U.getEnd(),U.parent,j)}B.getContainingList=ve;function ee(U,j,H){return j&&he(U,U,j,H)}function he(U,j,H,I){switch(H.kind){case 178:return l(H.typeArguments);case 205:return l(H.properties);case 204:return l(H.elements);case 182:return l(H.members);case 256:case 213:case 214:case 169:case 168:case 174:case 171:case 180:case 175:return l(H.typeParameters)||l(H.parameters);case 172:return l(H.parameters);case 257:case 226:case 258:case 259:case 344:return l(H.typeParameters);case 209:case 208:return l(H.typeArguments)||l(H.arguments);case 255:return l(H.declarations);case 269:case 273:return l(H.elements);case 201:case 202:return l(H.elements)}function l(d){return d&&e.rangeContainsStartEnd(F(H,d,I),U,j)?d:void 0}}function F(U,j,H){for(var I=U.getChildren(H),l=1;l=0&&j=0;D--)if(U[D].kind!==27){var fe=H.getLineAndCharacterOfPosition(U[D].end).line;if(fe!==d.line)return A(d,H,I);d=J(U[D],H)}return-1}function A(U,j,H){var I=j.getPositionOfLineAndCharacter(U.line,0);return V(I,I+U.character,j,H)}function y(U,j,H,I){for(var l=0,d=0,D=U;D0?1:0,Ee=e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Be)+ze,H);return Ee=p(H.text,Ee),e.getStartPositionOfLine(e.getLineOfLocalPosition(H,Ee),H)}function K(H,I,l){var d=I.end,D=l.trailingTriviaOption;if(D===N.Include){var fe=e.getTrailingCommentRanges(H.text,d);if(fe)for(var g=e.getLineOfLocalPosition(H,I.end),ne=0,ue=fe;neg)break;var Fe=e.getLineOfLocalPosition(H,We.end);if(Fe>g)return e.skipTrivia(H.text,We.end,!0,!0)}}}function b(H,I,l){var d,D=I.end,fe=l.trailingTriviaOption;if(fe===N.Exclude)return D;if(fe===N.ExcludeWhitespace){var g=e.concatenate(e.getTrailingCommentRanges(H.text,D),e.getLeadingCommentRanges(H.text,D)),ne=(d=g==null?void 0:g[g.length-1])===null||d===void 0?void 0:d.end;return ne||D}var ue=K(H,I,l);if(ue)return ue;var We=e.skipTrivia(H.text,D,!0);return We!==D&&(fe===N.Include||e.isLineBreak(H.text.charCodeAt(We-1)))?We:D}function se(H,I){return!!I&&!!H.parent&&(I.kind===27||I.kind===26&&H.parent.kind===205)}function J(H){return e.isFunctionExpression(H)||e.isFunctionDeclaration(H)}C.isThisTypeAnnotatable=J;var ie=function(){function H(I,l){this.newLineCharacter=I,this.formatContext=l,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=new e.Map,this.deletedNodes=[]}return H.fromContext=function(I){return new H(e.getNewLineOrDefaultFromHost(I.host,I.formatContext.options),I.formatContext)},H.with=function(I,l){var d=H.fromContext(I);return l(d),d.getChanges()},H.prototype.pushRaw=function(I,l){e.Debug.assertEqual(I.fileName,l.fileName);for(var d=0,D=l.textChanges;d\",joiner:\", \"})},H.prototype.getOptionsForInsertNodeBefore=function(I,l,d){return e.isStatement(I)||e.isClassElement(I)?{suffix:d?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(I)?{suffix:\", \"}:e.isParameter(I)?e.isParameter(l)?{suffix:\", \"}:{}:e.isStringLiteral(I)&&e.isImportDeclaration(I.parent)||e.isNamedImports(I)?{suffix:\", \"}:e.isImportSpecifier(I)?{suffix:\",\"+(d?this.newLineCharacter:\" \")}:e.Debug.failBadSyntaxKind(I)},H.prototype.insertNodeAtConstructorStart=function(I,l,d){var D=e.firstOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve([d],l.body.statements,!0)):this.insertNodeBefore(I,D,d)},H.prototype.insertNodeAtConstructorStartAfterSuperCall=function(I,l,d){var D=e.find(l.body.statements,function(fe){return e.isExpressionStatement(fe)&&e.isSuperCall(fe.expression)});!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(I,D,d)},H.prototype.insertNodeAtConstructorEnd=function(I,l,d){var D=e.lastOrUndefined(l.body.statements);!D||!l.body.multiLine?this.replaceConstructorBody(I,l,Ve(Ve([],l.body.statements,!0),[d],!1)):this.insertNodeAfter(I,D,d)},H.prototype.replaceConstructorBody=function(I,l,d){this.replaceNode(I,l.body,e.factory.createBlock(d,!0))},H.prototype.insertNodeAtEndOfScope=function(I,l,d){var D=T(I,l.getLastToken(),{});this.insertNodeAt(I,D,d,{prefix:e.isLineBreak(I.text.charCodeAt(l.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},H.prototype.insertMemberAtStart=function(I,l,d){this.insertNodeAtStartWorker(I,l,d)},H.prototype.insertNodeAtObjectStart=function(I,l,d){this.insertNodeAtStartWorker(I,l,d)},H.prototype.insertNodeAtStartWorker=function(I,l,d){var D,fe=(D=this.guessIndentationFromExistingMembers(I,l))!==null&&D!==void 0?D:this.computeIndentationForNewMember(I,l);this.insertNodeAt(I,ee(l).pos,d,this.getInsertNodeAtStartInsertOptions(I,l,fe))},H.prototype.guessIndentationFromExistingMembers=function(I,l){for(var d,D=l,fe=0,g=ee(l);fe0?{fileName:Be.fileName,textChanges:Ee}:void 0})}H.getTextChangesFromChanges=I;function l(ne,ue,We,Fe,Z){var Be=d(ne,e.getScriptKindFromFileName(ue),We,Fe,Z);return{fileName:ue,textChanges:[e.createTextChange(e.createTextSpan(0,0),Be)],isNewFile:!0}}H.newFileChanges=l;function d(ne,ue,We,Fe,Z){var Be=We.map(function(ze){return ze===4?\"\":g(ze,ne,Fe).text}).join(Fe),ge=e.createSourceFile(\"any file name\",Be,99,!0,ue),Re=e.formatting.formatDocument(ge,Z);return x(Be,Re)+Fe}H.newFileChangesWorker=d;function D(ne,ue,We,Fe,Z){var Be;if(ne.kind===oe.Remove)return\"\";if(ne.kind===oe.Text)return ne.text;var ge=ne.options,Re=ge===void 0?{}:ge,ze=ne.range.pos,Ee=function(Ie){return fe(Ie,ue,ze,Re,We,Fe,Z)},He=ne.kind===oe.ReplaceWithMultipleNodes?ne.nodes.map(function(Ie){return e.removeSuffix(Ee(Ie),We)}).join(((Be=ne.options)===null||Be===void 0?void 0:Be.joiner)||We):Ee(ne.node),rr=Re.indentation!==void 0||e.getLineStartPositionForPosition(ze,ue)===ze?He:He.replace(/^\\s+/,\"\");return(Re.prefix||\"\")+rr+(!Re.suffix||e.endsWith(rr,Re.suffix)?\"\":Re.suffix)}function fe(ne,ue,We,Fe,Z,Be,ge){var Re=Fe.indentation,ze=Fe.prefix,Ee=Fe.delta,He=g(ne,ue,Z),rr=He.node,Ie=He.text;ge&&ge(rr,Ie);var _e=e.getFormatCodeSettingsForWriting(Be,ue),we=Re!==void 0?Re:e.formatting.SmartIndenter.getIndentation(We,ue,_e,ze===Z||e.getLineStartPositionForPosition(We,ue)===We);Ee===void 0&&(Ee=e.formatting.SmartIndenter.shouldIndentChildNode(_e,ne)&&_e.indentSize||0);var de={text:Ie,getLineAndCharacterOfPosition:function(Ae){return e.getLineAndCharacterOfPosition(this,Ae)}},ye=e.formatting.formatNodeGivenIndentation(rr,de,ue.languageVariant,we,Ee,Ke(Ke({},Be),{options:_e}));return x(Ie,ye)}function g(ne,ue,We){var Fe=V(We),Z=e.getNewLineKind(We);return e.createPrinter({newLine:Z,neverAsciiEscape:!0,preserveSourceNewlines:!0,terminateUnterminatedLiterals:!0},Fe).writeNode(4,ne,ue,Fe),{text:Fe.getText(),node:A(ne)}}H.getNonformattedText=g})(F||(F={}));function x(H,I){for(var l=I.length-1;l>=0;l--){var d=I[l],D=d.span,fe=d.newText;H=\"\".concat(H.substring(0,D.start)).concat(fe).concat(H.substring(e.textSpanEnd(D)))}return H}C.applyChanges=x;function X(H){return e.skipTrivia(H,0)===H.length}var $=Ke(Ke({},e.nullTransformationContext),{factory:e.createNodeFactory(e.nullTransformationContext.factory.flags|1,e.nullTransformationContext.factory.baseFactory)});function A(H){var I=e.visitEachChild(H,A,$,y,A),l=e.nodeIsSynthesized(I)?I:Object.create(I);return e.setTextRangePosEnd(l,w(H),E(H)),l}C.assignPositionsToNode=A;function y(H,I,l,d,D){var fe=e.visitNodes(H,I,l,d,D);if(!fe)return fe;var g=fe===H?e.factory.createNodeArray(fe.slice(0)):fe;return e.setTextRangePosEnd(g,w(H),E(H)),g}function V(H){var I=0,l=e.createTextWriter(H),d=function(lr){lr&&B(lr,I)},D=function(lr){lr&&Q(lr,I)},fe=function(lr){lr&&B(lr,I)},g=function(lr){lr&&Q(lr,I)},ne=function(lr){lr&&B(lr,I)},ue=function(lr){lr&&Q(lr,I)};function We(lr,be){if(be||!X(lr)){I=l.getTextPos();for(var Ge=0;e.isWhiteSpaceLike(lr.charCodeAt(lr.length-Ge-1));)Ge++;I-=Ge}}function Fe(lr){l.write(lr),We(lr,!1)}function Z(lr){l.writeComment(lr)}function Be(lr){l.writeKeyword(lr),We(lr,!1)}function ge(lr){l.writeOperator(lr),We(lr,!1)}function Re(lr){l.writePunctuation(lr),We(lr,!1)}function ze(lr){l.writeTrailingSemicolon(lr),We(lr,!1)}function Ee(lr){l.writeParameter(lr),We(lr,!1)}function He(lr){l.writeProperty(lr),We(lr,!1)}function rr(lr){l.writeSpace(lr),We(lr,!1)}function Ie(lr){l.writeStringLiteral(lr),We(lr,!1)}function _e(lr,be){l.writeSymbol(lr,be),We(lr,!1)}function we(lr){l.writeLine(lr)}function de(){l.increaseIndent()}function ye(){l.decreaseIndent()}function Ae(){return l.getText()}function er(lr){l.rawWrite(lr),We(lr,!1)}function ir(lr){l.writeLiteral(lr),We(lr,!0)}function Cr(){return l.getTextPos()}function Ye(){return l.getLine()}function Br(){return l.getColumn()}function Er(){return l.getIndent()}function Ne(){return l.isAtStartOfLine()}function n(){l.clear(),I=0}return{onBeforeEmitNode:d,onAfterEmitNode:D,onBeforeEmitNodeArray:fe,onAfterEmitNodeArray:g,onBeforeEmitToken:ne,onAfterEmitToken:ue,write:Fe,writeComment:Z,writeKeyword:Be,writeOperator:ge,writePunctuation:Re,writeTrailingSemicolon:ze,writeParameter:Ee,writeProperty:He,writeSpace:rr,writeStringLiteral:Ie,writeSymbol:_e,writeLine:we,increaseIndent:de,decreaseIndent:ye,getText:Ae,rawWrite:er,writeLiteral:ir,getTextPos:Cr,getLine:Ye,getColumn:Br,getIndent:Er,isAtStartOfLine:Ne,hasTrailingComment:function(){return l.hasTrailingComment()},hasTrailingWhitespace:function(){return l.hasTrailingWhitespace()},clear:n}}C.createWriter=V;function L(H){for(var I,l=0,d=H.statements;l=ze+2)break}if(H.statements.length){Fe===void 0&&(Fe=H.getLineAndCharacterOfPosition(H.statements[0].getStart()).line);var Ee=H.getLineAndCharacterOfPosition(ge.end).line;if(Fe1)break}var F=O<2;return function(x){var X=x.fixId,$=x.fixAllDescription,A=pr(x,[\"fixId\",\"fixAllDescription\"]);return F?A:Ke(Ke({},A),{fixId:X,fixAllDescription:$})}}function oe(ie){var R=J(ie),q=w.get(String(ie.errorCode));return e.flatMap(q,function(O){return e.map(O.getCodeActions(ie),G(O,R))})}C.getFixes=oe;function f(ie){return B.get(e.cast(ie.fixId,e.isString)).getAllCodeActions(ie)}C.getAllFixes=f;function T(ie,R){return{changes:ie,commands:R}}C.createCombinedCodeActions=T;function K(ie,R){return{fileName:ie,textChanges:R}}C.createFileTextChanges=K;function b(ie,R,q){var O=[],ve=e.textChanges.ChangeTracker.with(ie,function(ee){return se(ie,R,function(he){return q(ee,he,O)})});return T(ve,O.length===0?void 0:O)}C.codeFixAll=b;function se(ie,R,q){for(var O=0,ve=J(ie);Oe.textSpanEnd(m)?\"quit\":(e.isArrowFunction(f)||e.isMethodDeclaration(f)||e.isFunctionExpression(f)||e.isFunctionDeclaration(f))&&e.textSpansEqual(m,e.createTextSpanFromNode(f,p))});return oe}}function N(p,m){return function(G){var oe=G.start,f=G.length,T=G.relatedInformation,K=G.code;return e.isNumber(oe)&&e.isNumber(f)&&e.textSpansEqual({start:oe,length:f},p)&&K===m&&!!T&&e.some(T,function(b){return b.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code})}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addMissingAwait\",B=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,E=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],Q=Ve([e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap.code,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined.code,e.Diagnostics.Type_0_is_not_an_array_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,B],E,!0);C.registerCodeFix({fixIds:[w],errorCodes:Q,getCodeActions:function(J){var ie=J.sourceFile,R=J.errorCode,q=J.span,O=J.cancellationToken,ve=J.program,ee=le(ie,R,q,O,ve);if(!!ee){var he=J.program.getTypeChecker(),F=function(x){return e.textChanges.ChangeTracker.with(J,x)};return e.compact([N(J,ee,R,he,F),p(J,ee,R,he,F)])}},getAllCodeActions:function(se){var J=se.sourceFile,ie=se.program,R=se.cancellationToken,q=se.program.getTypeChecker(),O=new e.Set;return C.codeFixAll(se,Q,function(ve,ee){var he=le(J,ee.code,ee,R,ie);if(!!he){var F=function(x){return x(ve),[]};return N(se,he,ee.code,q,F,O)||p(se,he,ee.code,q,F,O)}})}});function le(se,J,ie,R,q){var O=e.getFixableErrorSpanExpression(se,ie);return O&&m(se,J,ie,R,q)&&T(O)?O:void 0}function N(se,J,ie,R,q,O){var ve=se.sourceFile,ee=se.program,he=se.cancellationToken,F=G(J,ve,he,ee,R);if(F){var x=q(function(X){e.forEach(F.initializers,function($){var A=$.expression;return K(X,ie,ve,R,A,O)}),O&&F.needsSecondPassForFixAll&&K(X,ie,ve,R,J,O)});return C.createCodeFixActionWithoutFixAll(\"addMissingAwaitToInitializer\",x,F.initializers.length===1?[e.Diagnostics.Add_await_to_initializer_for_0,F.initializers[0].declarationSymbol.name]:e.Diagnostics.Add_await_to_initializers)}}function p(se,J,ie,R,q,O){var ve=q(function(ee){return K(ee,ie,se.sourceFile,R,J,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Add_await,w,e.Diagnostics.Fix_all_expressions_possibly_missing_await)}function m(se,J,ie,R,q){var O=q.getTypeChecker(),ve=O.getDiagnostics(se,R);return e.some(ve,function(ee){var he=ee.start,F=ee.length,x=ee.relatedInformation,X=ee.code;return e.isNumber(he)&&e.isNumber(F)&&e.textSpansEqual({start:he,length:F},ie)&&X===J&&!!x&&e.some(x,function($){return $.code===e.Diagnostics.Did_you_forget_to_use_await.code})})}function G(se,J,ie,R,q){var O=oe(se,q);if(!!O){for(var ve=O.isCompleteFix,ee,he=function($){var A=q.getSymbolAtLocation($);if(!A)return\"continue\";var y=e.tryCast(A.valueDeclaration,e.isVariableDeclaration),V=y&&e.tryCast(y.name,e.isIdentifier),L=e.getAncestor(y,237);if(!y||!L||y.type||!y.initializer||L.getSourceFile()!==J||e.hasSyntacticModifier(L,1)||!V||!T(y.initializer))return ve=!1,\"continue\";var P=R.getSemanticDiagnostics(J,ie),k=e.FindAllReferences.Core.eachSymbolReferenceInFile(V,q,J,function(Y){return $!==Y&&!f(Y,P,J,q)});if(k)return ve=!1,\"continue\";(ee||(ee=[])).push({expression:y.initializer,declarationSymbol:A})},F=0,x=O.identifiers;F0)return[C.createCodeFixAction(w,f,e.Diagnostics.Add_const_to_unresolved_variable,w,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[w],getAllCodeActions:function(G){var oe=new e.Set;return C.codeFixAll(G,B,function(f,T){return E(f,T.file,T.start,G.program,oe)})}});function E(G,oe,f,T,K){var b=e.getTokenAtPosition(oe,f),se=e.findAncestor(b,function(O){return e.isForInOrOfStatement(O.parent)?O.parent.initializer===O:le(O)?!1:\"quit\"});if(se)return Q(G,se,oe,K);var J=b.parent;if(e.isBinaryExpression(J)&&J.operatorToken.kind===63&&e.isExpressionStatement(J.parent))return Q(G,b,oe,K);if(e.isArrayLiteralExpression(J)){var ie=T.getTypeChecker();return e.every(J.elements,function(O){return N(O,ie)})?Q(G,J,oe,K):void 0}var R=e.findAncestor(b,function(O){return e.isExpressionStatement(O.parent)?!0:p(O)?!1:\"quit\"});if(R){var q=T.getTypeChecker();return m(R,q)?Q(G,R,oe,K):void 0}}function Q(G,oe,f,T){(!T||e.tryAddToSet(T,oe))&&G.insertModifierBefore(f,85,oe)}function le(G){switch(G.kind){case 79:case 204:case 205:case 296:case 297:return!0;default:return!1}}function N(G,oe){var f=e.isIdentifier(G)?G:e.isAssignmentExpression(G,!0)&&e.isIdentifier(G.left)?G.left:void 0;return!!f&&!oe.getSymbolAtLocation(f)}function p(G){switch(G.kind){case 79:case 221:case 27:return!0;default:return!1}}function m(G,oe){return e.isBinaryExpression(G)?G.operatorToken.kind===27?e.every([G.left,G.right],function(f){return m(f,oe)}):G.operatorToken.kind===63&&e.isIdentifier(G.left)&&!oe.getSymbolAtLocation(G.left):!1}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addMissingDeclareProperty\",B=[e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});if(N.length>0)return[C.createCodeFixAction(w,N,e.Diagnostics.Prefix_with_declare,w,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[w],getAllCodeActions:function(Q){var le=new e.Set;return C.codeFixAll(Q,B,function(N,p){return E(N,p.file,p.start,le)})}});function E(Q,le,N,p){var m=e.getTokenAtPosition(le,N);if(!!e.isIdentifier(m)){var G=m.parent;G.kind===167&&(!p||e.tryAddToSet(p,G))&&Q.insertModifierBefore(le,135,G)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addMissingInvocationForDecorator\",B=[e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(w,N,e.Diagnostics.Call_decorator_expression,w,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N.start)})}});function E(Q,le,N){var p=e.getTokenAtPosition(le,N),m=e.findAncestor(p,e.isDecorator);e.Debug.assert(!!m,\"Expected position to be owned by a decorator.\");var G=e.factory.createCallExpression(m.expression,void 0,void 0);Q.replaceNode(le,m.expression,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addNameToNamelessParameter\",B=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span.start)});return[C.createCodeFixAction(w,N,e.Diagnostics.Add_parameter_name,w,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N.start)})}});function E(Q,le,N){var p=e.getTokenAtPosition(le,N),m=p.parent;if(!e.isParameter(m))return e.Debug.fail(\"Tried to add a parameter name to a non-parameter: \"+e.Debug.formatSyntaxKind(p.kind));var G=m.parent.parameters.indexOf(m);e.Debug.assert(!m.type,\"Tried to add a parameter name to a parameter that already had one.\"),e.Debug.assert(G>-1,\"Parameter not found in parent parameter list.\");var oe=e.factory.createTypeReferenceNode(m.name,void 0),f=e.factory.createParameterDeclaration(void 0,m.modifiers,m.dotDotDotToken,\"arg\"+G,m.questionToken,m.dotDotDotToken?e.factory.createArrayTypeNode(oe):oe,m.initializer);Q.replaceNode(le,m,f)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addOptionalPropertyUndefined\",B=[e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.program.getTypeChecker(),G=E(p.sourceFile,p.span,m);if(!!G.length){var oe=e.textChanges.ChangeTracker.with(p,function(f){return N(f,G)});return[C.createCodeFixActionWithoutFixAll(w,oe,e.Diagnostics.Add_undefined_to_optional_property_type)]}},fixIds:[w]});function E(p,m,G){var oe,f,T=le(e.getFixableErrorSpanExpression(p,m),G);if(!T)return e.emptyArray;var K=T.source,b=T.target,se=Q(K,b,G)?G.getTypeAtLocation(b.expression):G.getTypeAtLocation(b);return!((f=(oe=se.symbol)===null||oe===void 0?void 0:oe.declarations)===null||f===void 0)&&f.some(function(J){return e.getSourceFileOfNode(J).fileName.match(/\\.d\\.ts$/)})?e.emptyArray:G.getExactOptionalProperties(se)}function Q(p,m,G){return e.isPropertyAccessExpression(m)&&!!G.getExactOptionalProperties(G.getTypeAtLocation(m.expression)).length&&G.getTypeAtLocation(p)===G.getUndefinedType()}function le(p,m){var G;if(p){if(e.isBinaryExpression(p.parent)&&p.parent.operatorToken.kind===63)return{source:p.parent.right,target:p.parent.left};if(e.isVariableDeclaration(p.parent)&&p.parent.initializer)return{source:p.parent.initializer,target:p.parent.name};if(e.isCallExpression(p.parent)){var oe=m.getSymbolAtLocation(p.parent.expression);if(!(oe!=null&&oe.valueDeclaration)||!e.isFunctionLikeKind(oe.valueDeclaration.kind)||!e.isExpression(p))return;var f=p.parent.arguments.indexOf(p);if(f===-1)return;var T=oe.valueDeclaration.parameters[f].name;if(e.isIdentifier(T))return{source:p,target:T}}else if(e.isPropertyAssignment(p.parent)&&e.isIdentifier(p.parent.name)||e.isShorthandPropertyAssignment(p.parent)){var K=le(p.parent.parent,m);if(!K)return;var b=m.getPropertyOfType(m.getTypeAtLocation(K.target),p.parent.name.text),se=(G=b==null?void 0:b.declarations)===null||G===void 0?void 0:G[0];return se?{source:e.isPropertyAssignment(p.parent)?p.parent.initializer:p.parent.name,target:se}:void 0}}else return}function N(p,m){for(var G=0,oe=m;G1?(p.delete(m,b),p.insertNodeAfter(m,J,se)):p.replaceNode(m,J,se)}function ie(O){var ve=[];return O.exports&&O.exports.forEach(function(F){if(F.name===\"prototype\"&&F.declarations){var x=F.declarations[0];if(F.declarations.length===1&&e.isPropertyAccessExpression(x)&&e.isBinaryExpression(x.parent)&&x.parent.operatorToken.kind===63&&e.isObjectLiteralExpression(x.parent.right)){var X=x.parent.right;he(X.symbol,void 0,ve)}}else he(F,[e.factory.createToken(124)],ve)}),O.members&&O.members.forEach(function(F,x){var X,$,A,y;if(x===\"constructor\"&&F.valueDeclaration){var V=(y=(A=($=(X=O.exports)===null||X===void 0?void 0:X.get(\"prototype\"))===null||$===void 0?void 0:$.declarations)===null||A===void 0?void 0:A[0])===null||y===void 0?void 0:y.parent;V&&e.isBinaryExpression(V)&&e.isObjectLiteralExpression(V.right)&&e.some(V.right.properties,le)||p.delete(m,F.valueDeclaration.parent);return}he(F,void 0,ve)}),ve;function ee(F,x){return e.isAccessExpression(F)?e.isPropertyAccessExpression(F)&&le(F)?!0:e.isFunctionLike(x):e.every(F.properties,function(X){return!!(e.isMethodDeclaration(X)||e.isGetOrSetAccessorDeclaration(X)||e.isPropertyAssignment(X)&&e.isFunctionExpression(X.initializer)&&!!X.name||le(X))})}function he(F,x,X){if(!(F.flags&8192)&&!(F.flags&4096))return;var $=F.valueDeclaration,A=$.parent,y=A.right;if(!ee($,y)||e.some(X,function(H){var I=e.getNameOfDeclaration(H);return!!(I&&e.isIdentifier(I)&&e.idText(I)===e.symbolName(F))}))return;var V=A.parent&&A.parent.kind===238?A.parent:A;if(p.delete(m,V),!y){X.push(e.factory.createPropertyDeclaration([],x,F.name,void 0,void 0,void 0));return}if(e.isAccessExpression($)&&(e.isFunctionExpression(y)||e.isArrowFunction(y))){var L=e.getQuotePreference(m,f),P=N($,T,L);P&&Y(X,y,P);return}else if(e.isObjectLiteralExpression(y)){e.forEach(y.properties,function(H){(e.isMethodDeclaration(H)||e.isGetOrSetAccessorDeclaration(H))&&X.push(H),e.isPropertyAssignment(H)&&e.isFunctionExpression(H.initializer)&&Y(X,H.initializer,H.name),le(H)});return}else{if(e.isSourceFileJS(m)||!e.isPropertyAccessExpression($))return;var k=e.factory.createPropertyDeclaration(void 0,x,$.name,void 0,void 0,y);e.copyLeadingComments(A.parent,k,m),X.push(k);return}function Y(H,I,l){return e.isFunctionExpression(I)?U(H,I,l):j(H,I,l)}function U(H,I,l){var d=e.concatenate(x,Q(I,131)),D=e.factory.createMethodDeclaration(void 0,d,void 0,l,void 0,void 0,I.parameters,void 0,I.body);e.copyLeadingComments(A,D,m),H.push(D)}function j(H,I,l){var d=I.body,D;d.kind===235?D=d:D=e.factory.createBlock([e.factory.createReturnStatement(d)]);var fe=e.concatenate(x,Q(I,131)),g=e.factory.createMethodDeclaration(void 0,fe,void 0,l,void 0,void 0,I.parameters,void 0,D);e.copyLeadingComments(A,g,m),H.push(g)}}}function R(O){var ve=O.initializer;if(!(!ve||!e.isFunctionExpression(ve)||!e.isIdentifier(O.name))){var ee=ie(O.symbol);ve.body&&ee.unshift(e.factory.createConstructorDeclaration(void 0,void 0,ve.parameters,ve.body));var he=Q(O.parent.parent,93),F=e.factory.createClassDeclaration(void 0,he,O.name,void 0,void 0,ee);return F}}function q(O){var ve=ie(K);O.body&&ve.unshift(e.factory.createConstructorDeclaration(void 0,void 0,O.parameters,O.body));var ee=Q(O,93),he=e.factory.createClassDeclaration(void 0,ee,O.name,void 0,void 0,ve);return he}}function Q(p,m){return e.filter(p.modifiers,function(G){return G.kind===m})}function le(p){return p.name?!!(e.isIdentifier(p.name)&&p.name.text===\"constructor\"):!1}function N(p,m,G){if(e.isPropertyAccessExpression(p))return p.name;var oe=p.argumentExpression;if(e.isNumericLiteral(oe))return oe;if(e.isStringLiteralLike(oe))return e.isIdentifierText(oe.text,e.getEmitScriptTarget(m))?e.factory.createIdentifier(oe.text):e.isNoSubstitutionTemplateLiteral(oe)?e.factory.createStringLiteral(oe.text,G===0):oe}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"convertToAsyncFunction\",B=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],E=!0;C.registerCodeFix({errorCodes:B,getCodeActions:function(g){E=!0;var ne=e.textChanges.ChangeTracker.with(g,function(ue){return le(ue,g.sourceFile,g.span.start,g.program.getTypeChecker())});return E?[C.createCodeFixAction(w,ne,e.Diagnostics.Convert_to_async_function,w,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[w],getAllCodeActions:function(g){return C.codeFixAll(g,B,function(ne,ue){return le(ne,ue.file,ue.start,g.program.getTypeChecker())})}});var Q;(function(g){g[g.Identifier=0]=\"Identifier\",g[g.BindingPattern=1]=\"BindingPattern\"})(Q||(Q={}));function le(g,ne,ue,We){var Fe=e.getTokenAtPosition(ne,ue),Z;if(e.isIdentifier(Fe)&&e.isVariableDeclaration(Fe.parent)&&Fe.parent.initializer&&e.isFunctionLikeDeclaration(Fe.parent.initializer)?Z=Fe.parent.initializer:Z=e.tryCast(e.getContainingFunction(e.getTokenAtPosition(ne,ue)),e.canBeConvertedToAsync),!!Z){var Be=new e.Map,ge=e.isInJSFile(Z),Re=p(Z,We),ze=T(Z,We,Be);if(!!e.returnsPromise(ze,We)){var Ee=ze.body&&e.isBlock(ze.body)?N(ze.body,We):e.emptyArray,He={checker:We,synthNamesMap:Be,setOfExpressionsToReturn:Re,isInJSFile:ge};if(!!Ee.length){var rr=Z.modifiers?Z.modifiers.end:Z.decorators?e.skipTrivia(ne.text,Z.decorators.end):Z.getStart(ne),Ie=Z.modifiers?{prefix:\" \"}:{suffix:\" \"};g.insertModifierAt(ne,rr,131,Ie);for(var _e=function(er){if(e.forEachChild(er,function ir(Cr){if(e.isCallExpression(Cr)){var Ye=J(Cr,Cr,He,!1);if(b())return!0;g.replaceNodeWithNodes(ne,er,Ye)}else if(!e.isFunctionLike(Cr)&&(e.forEachChild(Cr,ir),b()))return!0}),b())return{value:void 0}},we=0,de=Ee;we0)return ir;if(Ie){var er=A(Z.checker,Ie,rr);if(fe(Fe,Z))return X(er,oe(Fe,g,Z.checker));var Cr=x(ue,er,void 0);return ue&&ue.types.push(Z.checker.getAwaitedType(Ie)||Ie),Cr}else return se()}}default:return se()}return e.emptyArray}function A(g,ne,ue){var We=e.getSynthesizedDeepClone(ue);return g.getPromisedTypeOfPromise(ne)?e.factory.createAwaitExpression(We):We}function y(g,ne){var ue=ne.getSignaturesOfType(g,0);return e.lastOrUndefined(ue)}function V(g,ne,ue,We){for(var Fe=[],Z=0,Be=g;Z0)return}else e.isFunctionLike(Be)||e.forEachChild(Be,Z)}),Fe}function P(g,ne){var ue=[],We;if(e.isFunctionLikeDeclaration(g)){if(g.parameters.length>0){var Fe=g.parameters[0].name;We=Z(Fe)}}else e.isIdentifier(g)?We=Be(g):e.isPropertyAccessExpression(g)&&e.isIdentifier(g.name)&&(We=Be(g.name));if(!We||\"identifier\"in We&&We.identifier.text===\"undefined\")return;return We;function Z(ze){if(e.isIdentifier(ze))return Be(ze);var Ee=e.flatMap(ze.elements,function(He){return e.isOmittedExpression(He)?[]:[Z(He.name)]});return U(ze,Ee)}function Be(ze){var Ee=Re(ze),He=ge(Ee);if(!He)return Y(ze,ue);var rr=ne.synthNamesMap.get(e.getSymbolId(He).toString());return rr||Y(ze,ue)}function ge(ze){return ze.symbol?ze.symbol:ne.checker.getSymbolAtLocation(ze)}function Re(ze){return ze.original?ze.original:ze}}function k(g){return g?d(g)?!g.identifier.text:e.every(g.elements,k):!0}function Y(g,ne){return ne===void 0&&(ne=[]),{kind:0,identifier:g,types:ne,hasBeenDeclared:!1,hasBeenReferenced:!1}}function U(g,ne,ue){return ne===void 0&&(ne=e.emptyArray),ue===void 0&&(ue=[]),{kind:1,bindingPattern:g,elements:ne,types:ue}}function j(g){return g.hasBeenReferenced=!0,g.identifier}function H(g){return d(g)?l(g):I(g)}function I(g){for(var ne=0,ue=g.elements;ne1?[[K(k),b(k)],!0]:[[b(k)],!0]:[[K(k)],!1]}function K(L){return y(void 0,L)}function b(L){return y([e.factory.createExportSpecifier(!1,void 0,\"default\")],L)}function se(L,P,k){var Y=L.left,U=L.right,j=L.parent,H=Y.name.text;if((e.isFunctionExpression(U)||e.isArrowFunction(U)||e.isClassExpression(U))&&(!U.name||U.name.text===H)){k.replaceRange(P,{pos:Y.getStart(P),end:U.getStart(P)},e.factory.createToken(93),{suffix:\" \"}),U.name||k.insertName(P,U,H);var I=e.findChildOfKind(j,26,P);I&&k.delete(P,I)}else k.replaceNodeRangeWithNodes(P,Y.expression,e.findChildOfKind(Y,24,P),[e.factory.createToken(93),e.factory.createToken(85)],{joiner:\" \",suffix:\" \"})}function J(L,P,k){var Y=[e.factory.createToken(93)];switch(P.kind){case 213:{var U=P.name;if(U&&U.text!==L)return j()}case 214:return F(L,Y,P,k);case 226:return x(L,Y,P,k);default:return j()}function j(){return A(Y,e.factory.createIdentifier(L),ie(P,k))}}function ie(L,P){if(!P||!e.some(e.arrayFrom(P.keys()),function(Y){return e.rangeContainsRange(L,Y)}))return L;return e.isArray(L)?e.getSynthesizedDeepClonesWithReplacements(L,!0,k):e.getSynthesizedDeepCloneWithReplacements(L,!0,k);function k(Y){if(Y.kind===206){var U=P.get(Y);return P.delete(Y),U}}}function R(L,P,k,Y,U,j){switch(L.kind){case 201:{var H=e.mapAllOrFail(L.elements,function(l){return l.dotDotDotToken||l.initializer||l.propertyName&&!e.isIdentifier(l.propertyName)||!e.isIdentifier(l.name)?void 0:$(l.propertyName&&l.propertyName.text,l.name.text)});if(H)return V([e.makeImport(void 0,H,P,j)])}case 202:{var I=O(C.moduleSpecifierToValidIdentifier(P.text,U),Y);return V([e.makeImport(e.factory.createIdentifier(I),void 0,P,j),A(void 0,e.getSynthesizedDeepClone(L),e.factory.createIdentifier(I))])}case 79:return q(L,P,k,Y,j);default:return e.Debug.assertNever(L,\"Convert to ES module got invalid name kind \".concat(L.kind))}}function q(L,P,k,Y,U){for(var j=k.getSymbolAtLocation(L),H=new e.Map,I=!1,l,d=0,D=Y.original.get(L.text);d0||Cr.length>0||Ye.size>0||Br.size>0}}var le;(function(_e){_e[_e.UseNamespace=0]=\"UseNamespace\",_e[_e.JsdocTypeImport=1]=\"JsdocTypeImport\",_e[_e.AddToExisting=2]=\"AddToExisting\",_e[_e.AddNew=3]=\"AddNew\",_e[_e.PromoteTypeOnly=4]=\"PromoteTypeOnly\"})(le||(le={}));var N;(function(_e){_e[_e.Allowed=1]=\"Allowed\",_e[_e.Required=2]=\"Required\",_e[_e.NotAllowed=4]=\"NotAllowed\"})(N||(N={}));function p(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=ir.getCompilerOptions(),Ne=e.pathIsBareSpecifier(e.stripQuotes(we.name))?[f(_e,we,ir,er)]:T(de,_e,we,ye,Ae,er,ir,Br,!0),n=ve(de,ir),lr=e.isValidTypeOnlyAliasUseSite(e.getTokenAtPosition(de,Ye)),be=e.Debug.checkDefined(G(de,Ne,we,ir,{symbolName:ye,position:Ye},lr,n,er,Br));return{moduleSpecifier:be.moduleSpecifier,codeAction:oe(fe({host:er,formatContext:Cr,preferences:Br},de,ye,be,!1,e.getQuotePreference(de,Br),Er))}}C.getImportCompletionAction=p;function m(_e,we,de,ye,Ae,er){var ir=de.getCompilerOptions(),Cr=I(_e,de.getTypeChecker(),we,ir),Ye=H(_e,we,Cr,de),Br=Cr!==we.text;return Ye&&oe(fe({host:ye,formatContext:Ae,preferences:er},_e,Cr,Ye,Br,1,ir))}C.getPromoteTypeOnlyCompletionAction=m;function G(_e,we,de,ye,Ae,er,ir,Cr,Ye){e.Debug.assert(we.some(function(Er){return Er.moduleSymbol===de||Er.symbol.parent===de}),\"Some exportInfo should match the specified moduleSymbol\");var Br=e.createPackageJsonImportFilter(_e,Ye,Cr);return $(b(we,Ae,er,ir,ye,_e,Cr,Ye).fixes,_e,ye,Br,Cr)}function oe(_e){var we=_e.description,de=_e.changes,ye=_e.commands;return{description:we,changes:de,commands:ye}}function f(_e,we,de,ye){var Ae,er,ir=de.getCompilerOptions(),Cr=Br(de.getTypeChecker(),!1);if(Cr)return Cr;var Ye=(er=(Ae=ye.getPackageJsonAutoImportProvider)===null||Ae===void 0?void 0:Ae.call(ye))===null||er===void 0?void 0:er.getTypeChecker();return e.Debug.checkDefined(Ye&&Br(Ye,!0),\"Could not find symbol in specified module for code actions\");function Br(Er,Ne){var n=e.getDefaultLikeExportInfo(we,Er,ir);if(n&&e.skipAlias(n.symbol,Er)===_e)return{symbol:n.symbol,moduleSymbol:we,moduleFileName:void 0,exportKind:n.exportKind,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne};var lr=Er.tryGetMemberInModuleExportsAndProperties(_e.name,we);if(lr&&e.skipAlias(lr,Er)===_e)return{symbol:lr,moduleSymbol:we,moduleFileName:void 0,exportKind:0,targetFlags:e.skipAlias(_e,Er).flags,isFromPackageJson:Ne}}}function T(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br=[],Er=ir.getCompilerOptions(),Ne=e.memoizeOne(function(lr){return e.createModuleSpecifierResolutionHost(lr?er.getPackageJsonAutoImportProvider():ir,er)});return e.forEachExternalModuleToImportFrom(ir,er,Ye,function(lr,be,Ge,ur){var yr=Ge.getTypeChecker();if(!(be&&lr!==de&&e.startsWith(_e.fileName,e.getDirectoryPath(be.fileName)))){var Ir=e.getDefaultLikeExportInfo(lr,yr,Er);Ir&&(Ir.name===ye||rr(lr,e.getEmitScriptTarget(Er),Ae)===ye)&&e.skipAlias(Ir.symbol,yr)===we&&n(Ge,be,ur)&&Br.push({symbol:Ir.symbol,moduleSymbol:lr,moduleFileName:be==null?void 0:be.fileName,exportKind:Ir.exportKind,targetFlags:e.skipAlias(Ir.symbol,yr).flags,isFromPackageJson:ur});for(var wr=0,Ur=yr.getExportsAndPropertiesOfModule(lr);wr0}:{kind:3,moduleSpecifier:qr,importKind:Y(we,yr.exportKind,Er),useRequire:Ae,addAsTypeOnly:or,exportInfo:yr,isReExport:Ir>0}})});return{computedWithoutCacheCount:Ge,fixes:ur}}function he(_e,we,de,ye,Ae,er,ir,Cr,Ye,Br){var Er=e.firstDefined(we,function(Ne){return F(Ne,er,ir,de.getTypeChecker(),de.getCompilerOptions())});return Er?{fixes:[Er]}:ee(de,ye,Ae,er,ir,_e,Cr,Ye,Br)}function F(_e,we,de,ye,Ae){var er,ir=_e.declaration,Cr=_e.importKind,Ye=_e.symbol,Br=_e.targetFlags,Er=(er=e.tryGetModuleSpecifierFromDeclaration(ir))===null||er===void 0?void 0:er.text;if(Er){var Ne=de?4:R(we,!0,Ye,Br,ye,Ae);return{kind:3,moduleSpecifier:Er,importKind:Cr,addAsTypeOnly:Ne,useRequire:de}}}function x(_e,we,de,ye){var Ae=e.getTokenAtPosition(_e.sourceFile,de),er;if(we===e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code)er=P(_e,Ae);else if(e.isIdentifier(Ae))if(we===e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code){var ir=I(_e.sourceFile,_e.program.getTypeChecker(),Ae,_e.program.getCompilerOptions()),Cr=H(_e.sourceFile,Ae,ir,_e.program);return Cr&&{fixes:[Cr],symbolName:ir,errorIdentifierText:Ae.text}}else er=j(_e,Ae,ye);else return;var Ye=e.createPackageJsonImportFilter(_e.sourceFile,_e.preferences,_e.host);return er&&Ke(Ke({},er),{fixes:X(er.fixes,_e.sourceFile,_e.program,Ye,_e.host)})}function X(_e,we,de,ye,Ae){var er=function(ir){return e.toPath(ir,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))};return e.sort(_e,function(ir,Cr){return e.compareValues(ir.kind,Cr.kind)||A(ir,Cr,we,de,ye.allowsImportingSpecifier,er)})}function $(_e,we,de,ye,Ae){if(!!e.some(_e))return _e[0].kind===0||_e[0].kind===2?_e[0]:_e.reduce(function(er,ir){return A(ir,er,we,de,ye.allowsImportingSpecifier,function(Cr){return e.toPath(Cr,Ae.getCurrentDirectory(),e.hostGetCanonicalFileName(Ae))})===-1?ir:er})}function A(_e,we,de,ye,Ae,er){return _e.kind!==0&&we.kind!==0?e.compareBooleans(Ae(we.moduleSpecifier),Ae(_e.moduleSpecifier))||L(_e.moduleSpecifier,we.moduleSpecifier,de,ye)||e.compareBooleans(y(_e,de,ye.getCompilerOptions(),er),y(we,de,ye.getCompilerOptions(),er))||e.compareNumberOfDirectorySeparators(_e.moduleSpecifier,we.moduleSpecifier):0}function y(_e,we,de,ye){var Ae;if(_e.isReExport&&((Ae=_e.exportInfo)===null||Ae===void 0?void 0:Ae.moduleFileName)&&e.getEmitModuleResolutionKind(de)===e.ModuleResolutionKind.NodeJs&&V(_e.exportInfo.moduleFileName)){var er=ye(e.getDirectoryPath(_e.exportInfo.moduleFileName));return e.startsWith(we.path,er)}return!1}function V(_e){return e.getBaseFileName(_e,[\".js\",\".jsx\",\".d.ts\",\".ts\",\".tsx\"],!0)===\"index\"}function L(_e,we,de,ye){return e.startsWith(_e,\"node:\")&&!e.startsWith(we,\"node:\")?e.shouldUseUriStyleNodeCoreModules(de,ye)?-1:1:e.startsWith(we,\"node:\")&&!e.startsWith(_e,\"node:\")?e.shouldUseUriStyleNodeCoreModules(de,ye)?1:-1:0}function P(_e,we){var de,ye=_e.sourceFile,Ae=_e.program,er=_e.host,ir=_e.preferences,Cr=Ae.getTypeChecker(),Ye=k(we,Cr);if(!!Ye){var Br=Cr.getAliasedSymbol(Ye),Er=Ye.name,Ne=[{symbol:Ye,moduleSymbol:Br,moduleFileName:void 0,exportKind:3,targetFlags:Br.flags,isFromPackageJson:!1}],n=ve(ye,Ae),lr=e.isIdentifier(we)?we.getStart(ye):void 0,be=b(Ne,lr?{position:lr,symbolName:Er}:void 0,!1,n,Ae,ye,er,ir).fixes;return{fixes:be,symbolName:Er,errorIdentifierText:(de=e.tryCast(we,e.isIdentifier))===null||de===void 0?void 0:de.text}}}function k(_e,we){var de=e.isIdentifier(_e)?we.getSymbolAtLocation(_e):void 0;if(e.isUMDExportSymbol(de))return de;var ye=_e.parent;return e.isJsxOpeningLikeElement(ye)&&ye.tagName===_e||e.isJsxOpeningFragment(ye)?e.tryCast(we.resolveName(we.getJsxNamespace(ye),e.isJsxOpeningLikeElement(ye)?_e:ye,111551,!1),e.isUMDExportSymbol):void 0}function Y(_e,we,de,ye){switch(we){case 0:return 0;case 1:return 1;case 2:return D(_e,de,!!ye);case 3:return U(_e,de,!!ye);default:return e.Debug.assertNever(we)}}C.getImportKind=Y;function U(_e,we,de){if(e.getAllowSyntheticDefaultImports(we))return 1;var ye=e.getEmitModuleKind(we);switch(ye){case e.ModuleKind.AMD:case e.ModuleKind.CommonJS:case e.ModuleKind.UMD:return e.isInJSFile(_e)&&(e.isExternalModule(_e)||de)?2:3;case e.ModuleKind.System:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ES2022:case e.ModuleKind.ESNext:case e.ModuleKind.None:return 2;case e.ModuleKind.Node16:case e.ModuleKind.NodeNext:return _e.impliedNodeFormat===e.ModuleKind.ESNext?2:3;default:return e.Debug.assertNever(ye,\"Unexpected moduleKind \".concat(ye))}}function j(_e,we,de){var ye=_e.sourceFile,Ae=_e.program,er=_e.cancellationToken,ir=_e.host,Cr=_e.preferences,Ye=Ae.getTypeChecker(),Br=Ae.getCompilerOptions(),Er=I(ye,Ye,we,Br);if(Er!==\"default\"){var Ne=e.isValidTypeOnlyAliasUseSite(we),n=ve(ye,Ae),lr=d(Er,e.isJSXTagName(we),e.getMeaningFromLocation(we),er,ye,Ae,de,ir,Cr),be=e.arrayFrom(e.flatMapIterator(lr.entries(),function(Ge){var ur=Ge[0],yr=Ge[1];return b(yr,{symbolName:Er,position:we.getStart(ye)},Ne,n,Ae,ye,ir,Cr).fixes}));return{fixes:be,symbolName:Er,errorIdentifierText:we.text}}}function H(_e,we,de,ye){var Ae=ye.getTypeChecker(),er=Ae.resolveName(de,we,111551,!0);if(!!er){var ir=Ae.getTypeOnlyAliasDeclaration(er);if(!(!ir||e.getSourceFileOfNode(ir)!==_e))return{kind:4,typeOnlyAliasDeclaration:ir}}}function I(_e,we,de,ye){var Ae=de.parent;if((e.isJsxOpeningLikeElement(Ae)||e.isJsxClosingElement(Ae))&&Ae.tagName===de&&e.jsxModeNeedsExplicitImport(ye.jsx)){var er=we.getJsxNamespace(_e);if(l(er,de,we))return er}return de.text}function l(_e,we,de){if(e.isIntrinsicJsxName(we.text))return!0;var ye=de.resolveName(_e,we,111551,!0);return!ye||e.some(ye.declarations,e.isTypeOnlyImportOrExportDeclaration)&&!(ye.flags&111551)}function d(_e,we,de,ye,Ae,er,ir,Cr,Ye){var Br,Er=e.createMultiMap(),Ne=e.createPackageJsonImportFilter(Ae,Ye,Cr),n=(Br=Cr.getModuleSpecifierCache)===null||Br===void 0?void 0:Br.call(Cr),lr=e.memoizeOne(function(Ge){return e.createModuleSpecifierResolutionHost(Ge?Cr.getPackageJsonAutoImportProvider():er,Cr)});function be(Ge,ur,yr,Ir,wr,Ur){var ii=lr(Ur);if(ur&&e.isImportableFile(wr,Ae,ur,Ye,Ne,ii,n)||!ur&&Ne.allowsImportingAmbientModule(Ge,ii)){var mi=wr.getTypeChecker();Er.add(e.getUniqueSymbolId(yr,mi).toString(),{symbol:yr,moduleSymbol:Ge,moduleFileName:ur==null?void 0:ur.fileName,exportKind:Ir,targetFlags:e.skipAlias(yr,mi).flags,isFromPackageJson:Ur})}}return e.forEachExternalModuleToImportFrom(er,Cr,ir,function(Ge,ur,yr,Ir){var wr=yr.getTypeChecker();ye.throwIfCancellationRequested();var Ur=yr.getCompilerOptions(),ii=e.getDefaultLikeExportInfo(Ge,wr,Ur);ii&&(ii.name===_e||rr(Ge,e.getEmitScriptTarget(Ur),we)===_e)&&He(ii.symbolForMeaning,de)&&be(Ge,ur,ii.symbol,ii.exportKind,yr,Ir);var mi=wr.tryGetMemberInModuleExportsAndProperties(_e,Ge);mi&&He(mi,de)&&be(Ge,ur,mi,0,yr,Ir)}),Er}function D(_e,we,de){var ye=e.getAllowSyntheticDefaultImports(we),Ae=e.isInJSFile(_e);if(!Ae&&e.getEmitModuleKind(we)>=e.ModuleKind.ES2015)return ye?1:2;if(Ae)return e.isExternalModule(_e)||de?ye?1:2:3;for(var er=0,ir=_e.statements;er1&&e.OrganizeImports.importSpecifiersAreSorted(we.parent.elements)){_e.delete(ye,we);var er=e.factory.updateImportSpecifier(we,!1,we.propertyName,we.name),ir=e.OrganizeImports.getImportSpecifierInsertionIndex(we.parent.elements,er);_e.insertImportSpecifierAtIndex(ye,er,we.parent,ir)}else _e.deleteRange(ye,we.getFirstToken());return we}else return e.Debug.assert(we.parent.parent.isTypeOnly),Cr(we.parent.parent),we.parent.parent;case 267:return Cr(we),we;case 268:return Cr(we.parent),we.parent;case 265:return _e.deleteRange(ye,we.getChildAt(1)),we;default:e.Debug.failBadSyntaxKind(we)}function Cr(Ye){if(_e.delete(ye,e.getTypeKeywordOfTypeOnlyImport(Ye,ye)),Ae){var Br=e.tryCast(Ye.namedBindings,e.isNamedImports);if(Br&&Br.elements.length>1){e.OrganizeImports.importSpecifiersAreSorted(Br.elements)&&we.kind===270&&Br.elements.indexOf(we)!==0&&(_e.delete(ye,we),_e.insertImportSpecifierAtIndex(ye,we,Br,0));for(var Er=0,Ne=Br.elements;Er\"),[e.Diagnostics.Convert_function_expression_0_to_arrow_function,f?f.text:e.ANONYMOUS]):(Q.replaceNode(le,oe,e.factory.createToken(85)),Q.insertText(le,f.end,\" = \"),Q.insertText(le,T.pos,\" =>\"),[e.Diagnostics.Convert_function_declaration_0_to_arrow_function,f.text])}}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixIncorrectNamedTupleSyntax\",B=[e.Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,e.Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=E(p,m.start),oe=e.textChanges.ChangeTracker.with(N,function(f){return Q(f,p,G)});return[C.createCodeFixAction(w,oe,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels,w,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)]},fixIds:[w]});function E(le,N){var p=e.getTokenAtPosition(le,N);return e.findAncestor(p,function(m){return m.kind===197})}function Q(le,N,p){if(!!p){for(var m=p.type,G=!1,oe=!1;m.kind===185||m.kind===186||m.kind===191;)m.kind===185?G=!0:m.kind===186&&(oe=!0),m=m.type;var f=e.factory.updateNamedTupleMember(p,p.dotDotDotToken||(oe?e.factory.createToken(25):void 0),p.name,p.questionToken||(G?e.factory.createToken(57):void 0),m);f!==p&&le.replaceNode(N,p,f)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixSpelling\",B=[e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Could_not_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_namespace_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2.code,e.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,e.Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,e.Diagnostics.No_overload_matches_this_call.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.errorCode,oe=E(m,p.span.start,p,G);if(!!oe){var f=oe.node,T=oe.suggestedSymbol,K=e.getEmitScriptTarget(p.host.getCompilationSettings()),b=e.textChanges.ChangeTracker.with(p,function(se){return Q(se,m,f,T,K)});return[C.createCodeFixAction(\"spelling\",b,[e.Diagnostics.Change_spelling_to_0,e.symbolName(T)],w,e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[w],getAllCodeActions:function(p){return C.codeFixAll(p,B,function(m,G){var oe=E(G.file,G.start,p,G.code),f=e.getEmitScriptTarget(p.host.getCompilationSettings());oe&&Q(m,p.sourceFile,oe.node,oe.suggestedSymbol,f)})}});function E(p,m,G,oe){var f=e.getTokenAtPosition(p,m),T=f.parent;if(!((oe===e.Diagnostics.No_overload_matches_this_call.code||oe===e.Diagnostics.Type_0_is_not_assignable_to_type_1.code)&&!e.isJsxAttribute(T))){var K=G.program.getTypeChecker(),b;if(e.isPropertyAccessExpression(T)&&T.name===f){e.Debug.assert(e.isMemberName(f),\"Expected an identifier for spelling (property access)\");var se=K.getTypeAtLocation(T.expression);T.flags&32&&(se=K.getNonNullableType(se)),b=K.getSuggestedSymbolForNonexistentProperty(f,se)}else if(e.isBinaryExpression(T)&&T.operatorToken.kind===101&&T.left===f&&e.isPrivateIdentifier(f)){var J=K.getTypeAtLocation(T.right);b=K.getSuggestedSymbolForNonexistentProperty(f,J)}else if(e.isQualifiedName(T)&&T.right===f){var ie=K.getSymbolAtLocation(T.left);ie&&ie.flags&1536&&(b=K.getSuggestedSymbolForNonexistentModule(T.right,ie))}else if(e.isImportSpecifier(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,\"Expected an identifier for spelling (import)\");var R=e.findAncestor(f,e.isImportDeclaration),q=N(p,G,R);q&&q.symbol&&(b=K.getSuggestedSymbolForNonexistentModule(f,q.symbol))}else if(e.isJsxAttribute(T)&&T.name===f){e.Debug.assertNode(f,e.isIdentifier,\"Expected an identifier for JSX attribute\");var O=e.findAncestor(f,e.isJsxOpeningLikeElement),ve=K.getContextualTypeForArgumentAtIndex(O,0);b=K.getSuggestedSymbolForNonexistentJSXAttribute(f,ve)}else if(e.hasSyntacticModifier(T,16384)&&e.isClassElement(T)&&T.name===f){var ee=e.findAncestor(f,e.isClassLike),he=ee?e.getEffectiveBaseTypeNode(ee):void 0,F=he?K.getTypeAtLocation(he):void 0;F&&(b=K.getSuggestedSymbolForNonexistentClassMember(e.getTextOfNode(f),F))}else{var x=e.getMeaningFromLocation(f),X=e.getTextOfNode(f);e.Debug.assert(X!==void 0,\"name should be defined\"),b=K.getSuggestedSymbolForNonexistentSymbol(f,X,le(x))}return b===void 0?void 0:{node:f,suggestedSymbol:b}}}function Q(p,m,G,oe,f){var T=e.symbolName(oe);if(!e.isIdentifierText(T,f)&&e.isPropertyAccessExpression(G.parent)){var K=oe.valueDeclaration;K&&e.isNamedDeclaration(K)&&e.isPrivateIdentifier(K.name)?p.replaceNode(m,G,e.factory.createIdentifier(T)):p.replaceNode(m,G.parent,e.factory.createElementAccessExpression(G.parent.expression,e.factory.createStringLiteral(T)))}else p.replaceNode(m,G,e.factory.createIdentifier(T))}function le(p){var m=0;return p&4&&(m|=1920),p&2&&(m|=788968),p&1&&(m|=111551),m}function N(p,m,G){if(!(!G||!e.isStringLiteralLike(G.moduleSpecifier))){var oe=e.getResolvedModule(p,G.moduleSpecifier.text,e.getModeForUsageLocation(p,G.moduleSpecifier));if(!!oe)return m.program.getSourceFile(oe.resolvedFileName)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"returnValueCorrect\",B=\"fixAddReturnStatement\",E=\"fixRemoveBracesFromArrowFunctionBody\",Q=\"fixWrapTheBlockWithParen\",le=[e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code],N;(function(R){R[R.MissingReturnStatement=0]=\"MissingReturnStatement\",R[R.MissingParentheses=1]=\"MissingParentheses\"})(N||(N={})),C.registerCodeFix({errorCodes:le,fixIds:[B,E,Q],getCodeActions:function(q){var O=q.program,ve=q.sourceFile,ee=q.span.start,he=q.errorCode,F=oe(O.getTypeChecker(),ve,ee,he);if(!!F)return F.kind===N.MissingReturnStatement?e.append([se(q,F.expression,F.statement)],e.isArrowFunction(F.declaration)?J(q,F.declaration,F.expression,F.commentSource):void 0):[ie(q,F.declaration,F.expression)]},getAllCodeActions:function(R){return C.codeFixAll(R,le,function(q,O){var ve=oe(R.program.getTypeChecker(),O.file,O.start,O.code);if(!!ve)switch(R.fixId){case B:T(q,O.file,ve.expression,ve.statement);break;case E:if(!e.isArrowFunction(ve.declaration))return;K(q,O.file,ve.declaration,ve.expression,ve.commentSource,!1);break;case Q:if(!e.isArrowFunction(ve.declaration))return;b(q,O.file,ve.declaration,ve.expression);break;default:e.Debug.fail(JSON.stringify(R.fixId))}})}});function p(R,q,O){var ve=R.createSymbol(4,q.escapedText);ve.type=R.getTypeAtLocation(O);var ee=e.createSymbolTable([ve]);return R.createAnonymousType(void 0,ee,[],[],[])}function m(R,q,O,ve){if(!(!q.body||!e.isBlock(q.body)||e.length(q.body.statements)!==1)){var ee=e.first(q.body.statements);if(e.isExpressionStatement(ee)&&G(R,q,R.getTypeAtLocation(ee.expression),O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:ee.expression,statement:ee,commentSource:ee.expression};if(e.isLabeledStatement(ee)&&e.isExpressionStatement(ee.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(ee.label,ee.statement.expression)]),F=p(R,ee.label,ee.statement.expression);if(G(R,q,F,O,ve))return e.isArrowFunction(q)?{declaration:q,kind:N.MissingParentheses,expression:he,statement:ee,commentSource:ee.statement.expression}:{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:ee.statement.expression}}else if(e.isBlock(ee)&&e.length(ee.statements)===1){var x=e.first(ee.statements);if(e.isLabeledStatement(x)&&e.isExpressionStatement(x.statement)){var he=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(x.label,x.statement.expression)]),F=p(R,x.label,x.statement.expression);if(G(R,q,F,O,ve))return{declaration:q,kind:N.MissingReturnStatement,expression:he,statement:ee,commentSource:x}}}}}function G(R,q,O,ve,ee){if(ee){var he=R.getSignatureFromDeclaration(q);if(he){e.hasSyntacticModifier(q,256)&&(O=R.createPromiseType(O));var F=R.createSignature(q,he.typeParameters,he.thisParameter,he.parameters,O,void 0,he.minArgumentCount,he.flags);O=R.createAnonymousType(void 0,e.createSymbolTable(),[F],[],[])}else O=R.getAnyType()}return R.isTypeAssignableTo(O,ve)}function oe(R,q,O,ve){var ee=e.getTokenAtPosition(q,O);if(!!ee.parent){var he=e.findAncestor(ee.parent,e.isFunctionLikeDeclaration);switch(ve){case e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:return!he||!he.body||!he.type||!e.rangeContainsRange(he.type,ee)?void 0:m(R,he,R.getTypeFromTypeNode(he.type),!1);case e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:if(!he||!e.isCallExpression(he.parent)||!he.body)return;var F=he.parent.arguments.indexOf(he),x=R.getContextualTypeForArgumentAtIndex(he.parent,F);return x?m(R,he,x,!0):void 0;case e.Diagnostics.Type_0_is_not_assignable_to_type_1.code:if(!e.isDeclarationName(ee)||!e.isVariableLike(ee.parent)&&!e.isJsxAttribute(ee.parent))return;var X=f(ee.parent);return!X||!e.isFunctionLikeDeclaration(X)||!X.body?void 0:m(R,X,R.getTypeAtLocation(ee.parent),!0)}}}function f(R){switch(R.kind){case 254:case 164:case 203:case 167:case 296:return R.initializer;case 285:return R.initializer&&(e.isJsxExpression(R.initializer)?R.initializer.expression:void 0);case 297:case 166:case 299:case 347:case 340:return}}function T(R,q,O,ve){e.suppressLeadingAndTrailingTrivia(O);var ee=e.probablyUsesSemicolons(q);R.replaceNode(q,ve,e.factory.createReturnStatement(O),{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Exclude,suffix:ee?\";\":void 0})}function K(R,q,O,ve,ee,he){var F=he||e.needsParentheses(ve)?e.factory.createParenthesizedExpression(ve):ve;e.suppressLeadingAndTrailingTrivia(ee),e.copyComments(ee,F),R.replaceNode(q,O.body,F)}function b(R,q,O,ve){R.replaceNode(q,O.body,e.factory.createParenthesizedExpression(ve))}function se(R,q,O){var ve=e.textChanges.ChangeTracker.with(R,function(ee){return T(ee,R.sourceFile,q,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Add_a_return_statement,B,e.Diagnostics.Add_all_missing_return_statement)}function J(R,q,O,ve){var ee=e.textChanges.ChangeTracker.with(R,function(he){return K(he,R.sourceFile,q,O,ve,!1)});return C.createCodeFixAction(w,ee,e.Diagnostics.Remove_braces_from_arrow_function_body,E,e.Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues)}function ie(R,q,O){var ve=e.textChanges.ChangeTracker.with(R,function(ee){return b(ee,R.sourceFile,q,O)});return C.createCodeFixAction(w,ve,e.Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal,Q,e.Diagnostics.Wrap_all_object_literal_with_parentheses)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixMissingMember\",B=\"fixMissingProperties\",E=\"fixMissingAttributes\",Q=\"fixMissingFunctionDeclaration\",le=[e.Diagnostics.Property_0_does_not_exist_on_type_1.code,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,e.Diagnostics.Cannot_find_name_0.code];C.registerCodeFix({errorCodes:le,getCodeActions:function(y){var V=y.program.getTypeChecker(),L=p(y.sourceFile,y.span.start,y.errorCode,V,y.program);if(!!L){if(L.kind===3){var P=e.textChanges.ChangeTracker.with(y,function(k){return he(k,y,L)});return[C.createCodeFixAction(B,P,e.Diagnostics.Add_missing_properties,B,e.Diagnostics.Add_all_missing_properties)]}if(L.kind===4){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ee(Y,y,L)});return[C.createCodeFixAction(E,P,e.Diagnostics.Add_missing_attributes,E,e.Diagnostics.Add_all_missing_attributes)]}if(L.kind===2){var P=e.textChanges.ChangeTracker.with(y,function(Y){return ve(Y,y,L)});return[C.createCodeFixAction(Q,P,[e.Diagnostics.Add_missing_function_declaration_0,L.token.text],Q,e.Diagnostics.Add_all_missing_function_declarations)]}if(L.kind===1){var P=e.textChanges.ChangeTracker.with(y,function(Y){return O(Y,y.program.getTypeChecker(),L)});return[C.createCodeFixAction(w,P,[e.Diagnostics.Add_missing_enum_member_0,L.token.text],w,e.Diagnostics.Add_all_missing_members)]}return e.concatenate(R(y,L),G(y,L))}},fixIds:[w,Q,B,E],getAllCodeActions:function(y){var V=y.program,L=y.fixId,P=V.getTypeChecker(),k=new e.Map,Y=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(y,function(U){C.eachDiagnostic(y,le,function(j){var H=p(j.file,j.start,j.code,P,y.program);if(!(!H||!e.addToSeen(k,e.getNodeId(H.parentDeclaration)+\"#\"+H.token.text))){if(L===Q&&H.kind===2)ve(U,y,H);else if(L===B&&H.kind===3)he(U,y,H);else if(L===E&&H.kind===4)ee(U,y,H);else if(H.kind===1&&O(U,P,H),H.kind===0){var I=H.parentDeclaration,l=H.token,d=e.getOrUpdate(Y,I,function(){return[]});d.some(function(D){return D.token.text===l.text})||d.push(H)}}}),Y.forEach(function(j,H){for(var I=e.isTypeLiteralNode(H)?void 0:C.getAllSupers(H,P),l=function(g){if(I!=null&&I.some(function(Re){var ze=Y.get(Re);return!!ze&&ze.some(function(Ee){var He=Ee.token;return He.text===g.token.text})}))return\"continue\";var ne=g.parentDeclaration,ue=g.declSourceFile,We=g.modifierFlags,Fe=g.token,Z=g.call,Be=g.isJSFile;if(Z&&!e.isPrivateIdentifier(Fe))q(y,U,Z,Fe,We&32,ne,ue);else if(Be&&!e.isInterfaceDeclaration(ne)&&!e.isTypeLiteralNode(ne))f(U,ue,ne,Fe,!!(We&32));else{var ge=b(P,ne,Fe);se(U,ue,ne,Fe.text,ge,We&32)}},d=0,D=j;d=e.ModuleKind.ES2015&&N99;if(oe){var m=e.textChanges.ChangeTracker.with(B,function(T){var K=e.getTsConfigObjectLiteralExpression(Q);if(!!K){var b=[[\"target\",e.factory.createStringLiteral(\"es2017\")]];N===e.ModuleKind.CommonJS&&b.push([\"module\",e.factory.createStringLiteral(\"commonjs\")]),C.setJsonCompilerOptionValues(T,Q,b)}});le.push(C.createCodeFixActionWithoutFixAll(\"fixTargetOption\",m,[e.Diagnostics.Set_the_target_option_in_your_configuration_file_to_0,\"es2017\"]))}return le.length?le:void 0}}})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixPropertyAssignment\",B=[e.Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code];C.registerCodeFix({errorCodes:B,fixIds:[w],getCodeActions:function(le){var N=le.sourceFile,p=le.span,m=Q(N,p.start),G=e.textChanges.ChangeTracker.with(le,function(oe){return E(oe,le.sourceFile,m)});return[C.createCodeFixAction(w,G,[e.Diagnostics.Change_0_to_1,\"=\",\":\"],w,[e.Diagnostics.Switch_each_misused_0_to_1,\"=\",\":\"])]},getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){return E(N,p.file,Q(p.file,p.start))})}});function E(le,N,p){le.replaceNode(N,p,e.factory.createPropertyAssignment(p.name,p.objectAssignmentInitializer))}function Q(le,N){return e.cast(e.getTokenAtPosition(le,N).parent,e.isShorthandPropertyAssignment)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"extendsInterfaceBecomesImplements\",B=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=le.sourceFile,p=E(N,le.span.start);if(!!p){var m=p.extendsToken,G=p.heritageClauses,oe=e.textChanges.ChangeTracker.with(le,function(f){return Q(f,N,m,G)});return[C.createCodeFixAction(w,oe,e.Diagnostics.Change_extends_to_implements,w,e.Diagnostics.Change_all_extended_interfaces_to_implements)]}},fixIds:[w],getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){var m=E(p.file,p.start);m&&Q(N,p.file,m.extendsToken,m.heritageClauses)})}});function E(le,N){var p=e.getTokenAtPosition(le,N),m=e.getContainingClass(p).heritageClauses,G=m[0].getFirstToken();return G.kind===94?{extendsToken:G,heritageClauses:m}:void 0}function Q(le,N,p,m){if(le.replaceNode(N,p,e.factory.createToken(117)),m.length===2&&m[0].token===94&&m[1].token===117){var G=m[1].getFirstToken(),oe=G.getFullStart();le.replaceRange(N,{pos:oe,end:oe},e.factory.createToken(27));for(var f=N.text,T=G.end;T\":\">\",\"}\":\"}\"};function le(p){return e.hasProperty(Q,p)}function N(p,m,G,oe,f){var T=G.getText()[oe];if(!!le(T)){var K=f?Q[T]:\"{\".concat(e.quote(G,m,T),\"}\");p.replaceRangeWithText(G,{pos:oe,end:oe+1},K)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"deleteUnmatchedParameter\",B=\"renameUnmatchedParameter\",E=[e.Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code];C.registerCodeFix({fixIds:[w,B],errorCodes:E,getCodeActions:function(m){var G=m.sourceFile,oe=m.span,f=[],T=N(G,oe.start);if(T)return e.append(f,Q(m,T)),e.append(f,le(m,T)),f},getAllCodeActions:function(m){var G=new e.Map;return C.createCombinedCodeActions(e.textChanges.ChangeTracker.with(m,function(oe){C.eachDiagnostic(m,E,function(f){var T=f.file,K=f.start,b=N(T,K);b&&G.set(b.signature,e.append(G.get(b.signature),b.jsDocParameterTag))}),G.forEach(function(f,T){if(m.fixId===w){var K=new e.Set(f);oe.filterJSDocTags(T.getSourceFile(),T,function(b){return!K.has(b)})}})}))}});function Q(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag,T=e.textChanges.ChangeTracker.with(p,function(K){return K.filterJSDocTags(p.sourceFile,oe,function(b){return b!==f})});return C.createCodeFixAction(w,T,[e.Diagnostics.Delete_unused_param_tag_0,G.getText(p.sourceFile)],w,e.Diagnostics.Delete_all_unused_param_tags)}function le(p,m){var G=m.name,oe=m.signature,f=m.jsDocParameterTag;if(!!e.length(oe.parameters)){for(var T=p.sourceFile,K=e.getJSDocTags(oe),b=new e.Set,se=0,J=K;se1?e.Diagnostics.Remove_unused_declarations_for_Colon_0:e.Diagnostics.Remove_unused_declaration_for_Colon_0,e.map(j,function(D){return D.getText($)}).join(\", \")];return[m(e.textChanges.ChangeTracker.with(x,function(D){return b(D,$,P.parent)}),H)]}return[m(e.textChanges.ChangeTracker.with(x,function(D){return D.delete($,P.parent.parent)}),e.Diagnostics.Remove_unused_destructuring_declaration)]}if(T($,P))return[m(e.textChanges.ChangeTracker.with(x,function(D){return K(D,$,P.parent)}),e.Diagnostics.Remove_variable_statement)];var I=[];if(P.kind===137){var k=e.textChanges.ChangeTracker.with(x,function(fe){return p(fe,$,P)}),l=e.cast(P.parent,e.isInferTypeNode).typeParameter.name.text;I.push(C.createCodeFixAction(w,k,[e.Diagnostics.Replace_infer_0_with_unknown,l],le,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var U=e.textChanges.ChangeTracker.with(x,function(fe){return ie($,P,fe,V,L,A,y,!1)});if(U.length){var l=e.isComputedPropertyName(P.parent)?P.parent:P;I.push(m(U,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,l.getText($)]))}}var d=e.textChanges.ChangeTracker.with(x,function(D){return se(D,X,$,P)});return d.length&&I.push(C.createCodeFixAction(w,d,[e.Diagnostics.Prefix_0_with_an_underscore,P.getText($)],B,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),I},fixIds:[B,E,Q,le],getAllCodeActions:function(x){var X=x.sourceFile,$=x.program,A=x.cancellationToken,y=$.getTypeChecker(),V=$.getSourceFiles();return C.codeFixAll(x,N,function(L,P){var k=e.getTokenAtPosition(X,P.start);switch(x.fixId){case B:se(L,P.code,X,k);break;case Q:{var Y=f(k);Y?L.delete(X,Y):oe(k)&&ie(X,k,L,y,V,$,A,!0);break}case E:{if(k.kind===137||oe(k))break;if(e.isJSDocTemplateTag(k))L.delete(X,k);else if(k.kind===29)G(L,X,k);else if(e.isObjectBindingPattern(k.parent)){if(k.parent.parent.initializer)break;(!e.isParameter(k.parent.parent)||O(k.parent.parent,y,V))&&L.delete(X,k.parent.parent)}else{if(e.isArrayBindingPattern(k.parent.parent)&&k.parent.parent.parent.initializer)break;T(X,k)?K(L,X,k.parent):ie(X,k,L,y,V,$,A,!0)}break}case le:k.kind===137&&p(L,X,k);break;default:e.Debug.fail(JSON.stringify(x.fixId))}})}});function p(x,X,$){x.replaceNode(X,$.parent,e.factory.createKeywordTypeNode(155))}function m(x,X){return C.createCodeFixAction(w,x,X,E,e.Diagnostics.Delete_all_unused_declarations)}function G(x,X,$){x.delete(X,e.Debug.checkDefined(e.cast($.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,\"The type parameter to delete should exist\"))}function oe(x){return x.kind===100||x.kind===79&&(x.parent.kind===270||x.parent.kind===267)}function f(x){return x.kind===100?e.tryCast(x.parent,e.isImportDeclaration):void 0}function T(x,X){return e.isVariableDeclarationList(X.parent)&&e.first(X.parent.getChildren(x))===X}function K(x,X,$){x.delete(X,$.parent.kind===237?$.parent:$)}function b(x,X,$){e.forEach($.elements,function(A){return x.delete(X,A)})}function se(x,X,$,A){X!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(A.kind===137&&(A=e.cast(A.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(A)&&J(A)&&(x.replaceNode($,A,e.factory.createIdentifier(\"_\".concat(A.text))),e.isParameter(A.parent)&&e.getJSDocParameterTags(A.parent).forEach(function(y){e.isIdentifier(y.name)&&x.replaceNode($,y.name,e.factory.createIdentifier(\"_\".concat(y.name.text)))})))}function J(x){switch(x.parent.kind){case 164:case 163:return!0;case 254:{var X=x.parent;switch(X.parent.parent.kind){case 244:case 243:return!0}}}return!1}function ie(x,X,$,A,y,V,L,P){R(X,$,x,A,y,V,L,P),e.isIdentifier(X)&&e.FindAllReferences.Core.eachSymbolReferenceInFile(X,A,x,function(k){e.isPropertyAccessExpression(k.parent)&&k.parent.name===k&&(k=k.parent),!P&&F(k)&&$.delete(x,k.parent.parent)})}function R(x,X,$,A,y,V,L,P){var k=x.parent;if(e.isParameter(k))q(X,$,k,A,y,V,L,P);else if(!(P&&e.isIdentifier(x)&&e.FindAllReferences.Core.isSymbolReferencedInFile(x,A,$))){var Y=e.isImportClause(k)?x:e.isComputedPropertyName(k)?k.parent:k;e.Debug.assert(Y!==$,\"should not delete whole source file\"),X.delete($,Y)}}function q(x,X,$,A,y,V,L,P){P===void 0&&(P=!1),ve(A,X,$,y,V,L,P)&&($.modifiers&&$.modifiers.length>0&&(!e.isIdentifier($.name)||e.FindAllReferences.Core.isSymbolReferencedInFile($.name,A,X))?$.modifiers.forEach(function(k){return x.deleteModifier(X,k)}):!$.initializer&&O($,A,y)&&x.delete(X,$))}function O(x,X,$){var A=x.parent.parameters.indexOf(x);return!e.FindAllReferences.Core.someSignatureUsage(x.parent,$,X,function(y,V){return!V||V.arguments.length>A})}function ve(x,X,$,A,y,V,L){var P=$.parent;switch(P.kind){case 169:case 171:var k=P.parameters.indexOf($),Y=e.isMethodDeclaration(P)?P.name:P,U=e.FindAllReferences.Core.getReferencedSymbolsForNode(P.pos,Y,y,A,V);if(U)for(var j=0,H=U;jk,g=e.isPropertyAccessExpression(D.node.parent)&&e.isSuperKeyword(D.node.parent.expression)&&e.isCallExpression(D.node.parent.parent)&&D.node.parent.parent.arguments.length>k,ne=(e.isMethodDeclaration(D.node.parent)||e.isMethodSignature(D.node.parent))&&D.node.parent!==$.parent&&D.node.parent.parameters.length>k;if(fe||g||ne)return!1}}return!0;case 256:return P.name&&ee(x,X,P.name)?he(P,$,L):!0;case 213:case 214:return he(P,$,L);case 173:return!1;case 172:return!0;default:return e.Debug.failBadSyntaxKind(P)}}function ee(x,X,$){return!!e.FindAllReferences.Core.eachSymbolReferenceInFile($,x,X,function(A){return e.isIdentifier(A)&&e.isCallExpression(A.parent)&&A.parent.arguments.indexOf(A)>=0})}function he(x,X,$){var A=x.parameters,y=A.indexOf(X);return e.Debug.assert(y!==-1,\"The parameter should already be in the list\"),$?A.slice(y+1).every(function(V){return e.isIdentifier(V.name)&&!V.symbol.isReferenced}):y===A.length-1}function F(x){return(e.isBinaryExpression(x.parent)&&x.parent.left===x||(e.isPostfixUnaryExpression(x.parent)||e.isPrefixUnaryExpression(x.parent))&&x.parent.operand===x)&&e.isExpressionStatement(x.parent.parent)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixUnreachableCode\",B=[e.Diagnostics.Unreachable_code_detected.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=le.program.getSyntacticDiagnostics(le.sourceFile,le.cancellationToken);if(!N.length){var p=e.textChanges.ChangeTracker.with(le,function(m){return E(m,le.sourceFile,le.span.start,le.span.length,le.errorCode)});return[C.createCodeFixAction(w,p,e.Diagnostics.Remove_unreachable_code,w,e.Diagnostics.Remove_all_unreachable_code)]}},fixIds:[w],getAllCodeActions:function(le){return C.codeFixAll(le,B,function(N,p){return E(N,p.file,p.start,p.length,p.code)})}});function E(le,N,p,m,G){var oe=e.getTokenAtPosition(N,p),f=e.findAncestor(oe,e.isStatement);if(f.getStart(N)!==oe.getStart(N)){var T=JSON.stringify({statementKind:e.Debug.formatSyntaxKind(f.kind),tokenKind:e.Debug.formatSyntaxKind(oe.kind),errorCode:G,start:p,length:m});e.Debug.fail(\"Token and statement should start at the same point. \"+T)}var K=(e.isBlock(f.parent)?f.parent:f).parent;if(!e.isBlock(f.parent)||f===e.first(f.parent.statements))switch(K.kind){case 239:if(K.elseStatement){if(e.isBlock(f.parent))break;le.replaceNode(N,f,e.factory.createBlock(e.emptyArray));return}case 241:case 242:le.delete(N,K);return}if(e.isBlock(f.parent)){var b=p+m,se=e.Debug.checkDefined(Q(e.sliceAfter(f.parent.statements,f),function(J){return J.posHe.length){var rr=k.getSignatureFromDeclaration(P[P.length-1]);we(fe,rr,I,j,y||T(fe))}else e.Debug.assert(P.length===He.length,\"Declarations and signatures should match count\"),A(G(k,x,he,He,j,d&&!!(V&1),I,fe,y));break}function we(de,ye,Ae,er,ir){var Cr=le(169,x,de,ye,ir,er,Ae,d&&!!(V&1),he,$);Cr&&A(Cr)}}C.addNewNodeForMemberSymbol=Q;function le(ee,he,F,x,X,$,A,y,V,L){var P=he.program,k=P.getTypeChecker(),Y=e.getEmitScriptTarget(P.getCompilerOptions()),U=524545|(F===0?268435456:0),j=k.signatureToSignatureDeclaration(x,ee,V,U,B(he));if(!!j){var H=j.typeParameters,I=j.parameters,l=j.type;if(L){if(H){var d=e.sameMap(H,function(ue){var We=ue.constraint,Fe=ue.default;if(We){var Z=q(We,Y);Z&&(We=Z.typeNode,ve(L,Z.symbols))}if(Fe){var Z=q(Fe,Y);Z&&(Fe=Z.typeNode,ve(L,Z.symbols))}return e.factory.updateTypeParameterDeclaration(ue,ue.modifiers,ue.name,We,Fe)});H!==d&&(H=e.setTextRange(e.factory.createNodeArray(d,H.hasTrailingComma),H))}var D=e.sameMap(I,function(ue){var We=q(ue.type,Y),Fe=ue.type;return We&&(Fe=We.typeNode,ve(L,We.symbols)),e.factory.updateParameterDeclaration(ue,ue.decorators,ue.modifiers,ue.dotDotDotToken,ue.name,ue.questionToken,Fe,ue.initializer)});if(I!==D&&(I=e.setTextRange(e.factory.createNodeArray(D,I.hasTrailingComma),I)),l){var fe=q(l,Y);fe&&(l=fe.typeNode,ve(L,fe.symbols))}}var g=y?e.factory.createToken(57):void 0,ne=j.asteriskToken;if(e.isFunctionExpression(j))return e.factory.updateFunctionExpression(j,A,j.asteriskToken,e.tryCast($,e.isIdentifier),H,I,l,X!=null?X:j.body);if(e.isArrowFunction(j))return e.factory.updateArrowFunction(j,A,H,I,l,j.equalsGreaterThanToken,X!=null?X:j.body);if(e.isMethodDeclaration(j))return e.factory.updateMethodDeclaration(j,void 0,A,ne,$!=null?$:e.factory.createIdentifier(\"\"),g,H,I,l,X)}}C.createSignatureDeclarationFromSignature=le;function N(ee,he,F,x,X,$,A){var y=e.getQuotePreference(he.sourceFile,he.preferences),V=e.getEmitScriptTarget(he.program.getCompilerOptions()),L=B(he),P=he.program.getTypeChecker(),k=e.isInJSFile(A),Y=x.typeArguments,U=x.arguments,j=x.parent,H=k?void 0:P.getContextualType(x),I=e.map(U,function(ue){return e.isIdentifier(ue)?ue.text:e.isPropertyAccessExpression(ue)&&e.isIdentifier(ue.name)?ue.name.text:void 0}),l=k?[]:e.map(U,function(ue){return p(P,F,P.getBaseTypeOfLiteralType(P.getTypeAtLocation(ue)),A,V,void 0,L)}),d=$?e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags($)):void 0,D=e.isYieldExpression(j)?e.factory.createToken(41):void 0,fe=k||Y===void 0?void 0:e.map(Y,function(ue,We){return e.factory.createTypeParameterDeclaration(void 0,84+Y.length-1<=90?String.fromCharCode(84+We):\"T\".concat(We))}),g=m(U.length,I,l,void 0,k),ne=k||H===void 0?void 0:P.typeToTypeNode(H,A,void 0,L);switch(ee){case 169:return e.factory.createMethodDeclaration(void 0,d,D,X,void 0,fe,g,ne,T(y));case 168:return e.factory.createMethodSignature(d,X,void 0,fe,g,ne);case 256:return e.factory.createFunctionDeclaration(void 0,d,D,X,fe,g,ne,K(e.Diagnostics.Function_not_implemented.message,y));default:e.Debug.fail(\"Unexpected kind\")}}C.createSignatureDeclarationFromCallExpression=N;function p(ee,he,F,x,X,$,A){var y=ee.typeToTypeNode(F,x,$,A);if(y&&e.isImportTypeNode(y)){var V=q(y,X);V&&(ve(he,V.symbols),y=V.typeNode)}return e.getSynthesizedDeepClone(y)}C.typeToAutoImportableTypeNode=p;function m(ee,he,F,x,X){for(var $=[],A=0;A=x?e.factory.createToken(57):void 0,X?void 0:F&&F[A]||e.factory.createKeywordTypeNode(155),void 0);$.push(y)}return $}function G(ee,he,F,x,X,$,A,y,V){for(var L=x[0],P=x[0].minArgumentCount,k=!1,Y=0,U=x;Y=L.parameters.length&&(!e.signatureHasRestParameter(j)||e.signatureHasRestParameter(L))&&(L=j)}var H=L.parameters.length-(e.signatureHasRestParameter(L)?1:0),I=L.parameters.map(function(D){return D.name}),l=m(H,I,void 0,P,!1);if(k){var d=e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),I[H]||\"rest\",H>=P?e.factory.createToken(57):void 0,e.factory.createArrayTypeNode(e.factory.createKeywordTypeNode(155)),void 0);l.push(d)}return f(A,X,$,void 0,l,oe(x,ee,he,F),y,V)}function oe(ee,he,F,x){if(e.length(ee)){var X=he.getUnionType(e.map(ee,he.getReturnTypeOfSignature));return he.typeToTypeNode(X,x,void 0,B(F))}}function f(ee,he,F,x,X,$,A,y){return e.factory.createMethodDeclaration(void 0,ee,void 0,he,F?e.factory.createToken(57):void 0,x,X,$,y||T(A))}function T(ee){return K(e.Diagnostics.Method_not_implemented.message,ee)}function K(ee,he){return e.factory.createBlock([e.factory.createThrowStatement(e.factory.createNewExpression(e.factory.createIdentifier(\"Error\"),void 0,[e.factory.createStringLiteral(ee,he===0)]))],!0)}C.createStubbedBody=K;function b(ee){if(ee&4)return e.factory.createToken(123);if(ee&16)return e.factory.createToken(122)}function se(ee,he,F){var x=e.getTsConfigObjectLiteralExpression(he);if(!!x){var X=R(x,\"compilerOptions\");if(X===void 0){ee.insertNodeAtObjectStart(he,x,ie(\"compilerOptions\",e.factory.createObjectLiteralExpression(F.map(function(Y){var U=Y[0],j=Y[1];return ie(U,j)}),!0)));return}var $=X.initializer;if(!!e.isObjectLiteralExpression($))for(var A=0,y=F;A0)return[C.createCodeFixAction(w,N,e.Diagnostics.Convert_to_a_bigint_numeric_literal,w,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N)})}});function E(Q,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),e.isNumericLiteral);if(!!p){var m=p.getText(le)+\"n\";Q.replaceNode(le,p,e.factory.createBigIntLiteral(m))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixAddModuleReferTypeMissingTypeof\",B=w,E=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];C.registerCodeFix({errorCodes:E,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=Q(m,G.start),f=e.textChanges.ChangeTracker.with(p,function(T){return le(T,m,oe)});return[C.createCodeFixAction(B,f,e.Diagnostics.Add_missing_typeof,B,e.Diagnostics.Add_missing_typeof)]},fixIds:[B],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return le(p,N.sourceFile,Q(m.file,m.start))})}});function Q(N,p){var m=e.getTokenAtPosition(N,p);return e.Debug.assert(m.kind===100,\"This token should be an ImportKeyword\"),e.Debug.assert(m.parent.kind===200,\"Token parent should be an ImportType\"),m.parent}function le(N,p,m){var G=e.factory.updateImportTypeNode(m,m.argument,m.qualifier,m.typeArguments,!0);N.replaceNode(p,m,G)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"wrapJsxInFragment\",B=[e.Diagnostics.JSX_expressions_must_have_one_parent_element.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(T){return Q(T,m,oe)});return[C.createCodeFixAction(w,f,e.Diagnostics.Wrap_in_JSX_fragment,w,e.Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,B,function(p,m){var G=E(N.sourceFile,m.start);!G||Q(p,N.sourceFile,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=m.parent,oe=G.parent;if(!(!e.isBinaryExpression(oe)&&(oe=oe.parent,!e.isBinaryExpression(oe)))&&!!e.nodeIsMissing(oe.operatorToken))return oe}function Q(N,p,m){var G=le(m);G&&N.replaceNode(p,m,e.factory.createJsxFragment(e.factory.createJsxOpeningFragment(),G,e.factory.createJsxJsxClosingFragment()))}function le(N){for(var p=[],m=N;;)if(e.isBinaryExpression(m)&&e.nodeIsMissing(m.operatorToken)&&m.operatorToken.kind===27){if(p.push(m.left),e.isJsxChild(m.right))return p.push(m.right),p;if(e.isBinaryExpression(m.right)){m=m.right;continue}else return}else return}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixConvertToMappedObjectType\",B=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(p){var m=p.sourceFile,G=p.span,oe=E(m,G.start);if(!!oe){var f=e.textChanges.ChangeTracker.with(p,function(K){return le(K,m,oe)}),T=e.idText(oe.container.name);return[C.createCodeFixAction(w,f,[e.Diagnostics.Convert_0_to_mapped_object_type,T],w,[e.Diagnostics.Convert_0_to_mapped_object_type,T])]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,B,function(p,m){var G=E(m.file,m.start);G&&le(p,m.file,G)})}});function E(N,p){var m=e.getTokenAtPosition(N,p),G=e.tryCast(m.parent.parent,e.isIndexSignatureDeclaration);if(!!G){var oe=e.isInterfaceDeclaration(G.parent)?G.parent:e.tryCast(G.parent.parent,e.isTypeAliasDeclaration);if(!!oe)return{indexSignature:G,container:oe}}}function Q(N,p){return e.factory.createTypeAliasDeclaration(N.decorators,N.modifiers,N.name,N.typeParameters,p)}function le(N,p,m){var G=m.indexSignature,oe=m.container,f=e.isInterfaceDeclaration(oe)?oe.members:oe.type.members,T=f.filter(function(ie){return!e.isIndexSignatureDeclaration(ie)}),K=e.first(G.parameters),b=e.factory.createTypeParameterDeclaration(void 0,e.cast(K.name,e.isIdentifier),K.type),se=e.factory.createMappedTypeNode(e.hasEffectiveReadonlyModifier(G)?e.factory.createModifier(145):void 0,b,void 0,G.questionToken,G.type,void 0),J=e.factory.createIntersectionTypeNode(Ve(Ve(Ve([],e.getAllSuperTypeNodes(oe),!0),[se],!1),T.length?[e.factory.createTypeLiteralNode(T)]:e.emptyArray,!0));N.replaceNode(p,oe,Q(oe,J))}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"removeAccidentalCallParentheses\",B=[e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(E){var Q=e.findAncestor(e.getTokenAtPosition(E.sourceFile,E.span.start),e.isCallExpression);if(!!Q){var le=e.textChanges.ChangeTracker.with(E,function(N){N.deleteRange(E.sourceFile,{pos:Q.expression.end,end:Q.end})});return[C.createCodeFixActionWithoutFixAll(w,le,e.Diagnostics.Remove_parentheses)]}},fixIds:[w]})})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"removeUnnecessaryAwait\",B=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(le){var N=e.textChanges.ChangeTracker.with(le,function(p){return E(p,le.sourceFile,le.span)});if(N.length>0)return[C.createCodeFixAction(w,N,e.Diagnostics.Remove_unnecessary_await,w,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[w],getAllCodeActions:function(Q){return C.codeFixAll(Q,B,function(le,N){return E(le,N.file,N)})}});function E(Q,le,N){var p=e.tryCast(e.getTokenAtPosition(le,N.start),function(K){return K.kind===132}),m=p&&e.tryCast(p.parent,e.isAwaitExpression);if(!!m){var G=m,oe=e.isParenthesizedExpression(m.parent);if(oe){var f=e.getLeftmostExpression(m.expression,!1);if(e.isIdentifier(f)){var T=e.findPrecedingToken(m.parent.pos,le);T&&T.kind!==103&&(G=m.parent)}}Q.replaceNode(le,G,m.expression)}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=[e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code],B=\"splitTypeOnlyImport\";C.registerCodeFix({errorCodes:w,fixIds:[B],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return Q(m,E(N.sourceFile,N.span),N)});if(p.length)return[C.createCodeFixAction(B,p,e.Diagnostics.Split_into_two_separate_import_declarations,B,e.Diagnostics.Split_all_invalid_type_only_imports)]},getAllCodeActions:function(le){return C.codeFixAll(le,w,function(N,p){Q(N,E(le.sourceFile,p),le)})}});function E(le,N){return e.findAncestor(e.getTokenAtPosition(le,N.start),e.isImportDeclaration)}function Q(le,N,p){if(!!N){var m=e.Debug.checkDefined(N.importClause);le.replaceNode(p.sourceFile,N,e.factory.updateImportDeclaration(N,N.decorators,N.modifiers,e.factory.updateImportClause(m,m.isTypeOnly,m.name,void 0),N.moduleSpecifier,N.assertClause)),le.insertNodeAfter(p.sourceFile,N,e.factory.createImportDeclaration(void 0,void 0,e.factory.updateImportClause(m,m.isTypeOnly,void 0,m.namedBindings),N.moduleSpecifier,N.assertClause))}}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixConvertConstToLet\",B=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];C.registerCodeFix({errorCodes:B,getCodeActions:function(N){var p=N.sourceFile,m=N.span,G=N.program,oe=E(p,m.start,G);if(oe!==void 0){var f=e.textChanges.ChangeTracker.with(N,function(T){return Q(T,p,oe)});return[C.createCodeFixAction(w,f,e.Diagnostics.Convert_const_to_let,w,e.Diagnostics.Convert_const_to_let)]}},fixIds:[w]});function E(le,N,p){var m,G=p.getTypeChecker(),oe=G.getSymbolAtLocation(e.getTokenAtPosition(le,N)),f=e.tryCast((m=oe==null?void 0:oe.valueDeclaration)===null||m===void 0?void 0:m.parent,e.isVariableDeclarationList);if(f!==void 0){var T=e.findChildOfKind(f,85,le);if(T!==void 0)return e.createRange(T.pos,T.end)}}function Q(le,N,p){le.replaceRangeWithText(N,p,\"let\")}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"fixExpectedComma\",B=e.Diagnostics._0_expected.code,E=[B];C.registerCodeFix({errorCodes:E,getCodeActions:function(N){var p=N.sourceFile,m=Q(p,N.span.start,N.errorCode);if(!!m){var G=e.textChanges.ChangeTracker.with(N,function(oe){return le(oe,p,m)});return[C.createCodeFixAction(w,G,[e.Diagnostics.Change_0_to_1,\";\",\",\"],w,[e.Diagnostics.Change_0_to_1,\";\",\",\"])]}},fixIds:[w],getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){var G=Q(m.file,m.start,m.code);G&&le(p,N.sourceFile,G)})}});function Q(N,p,m){var G=e.getTokenAtPosition(N,p);return G.kind===26&&G.parent&&(e.isObjectLiteralExpression(G.parent)||e.isArrayLiteralExpression(G.parent))?{node:G}:void 0}function le(N,p,m){var G=m.node,oe=e.factory.createToken(27);N.replaceNode(p,G,oe)}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"addVoidToPromise\",B=\"addVoidToPromise\",E=[e.Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,e.Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code];C.registerCodeFix({errorCodes:E,fixIds:[B],getCodeActions:function(N){var p=e.textChanges.ChangeTracker.with(N,function(m){return Q(m,N.sourceFile,N.span,N.program)});if(p.length>0)return[C.createCodeFixAction(w,p,e.Diagnostics.Add_void_to_Promise_resolved_without_a_value,B,e.Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)]},getAllCodeActions:function(N){return C.codeFixAll(N,E,function(p,m){return Q(p,m.file,m,N.program,new e.Set)})}});function Q(N,p,m,G,oe){var f=e.getTokenAtPosition(p,m.start);if(!(!e.isIdentifier(f)||!e.isCallExpression(f.parent)||f.parent.expression!==f||f.parent.arguments.length!==0)){var T=G.getTypeChecker(),K=T.getSymbolAtLocation(f),b=K==null?void 0:K.valueDeclaration;if(!(!b||!e.isParameter(b)||!e.isNewExpression(b.parent.parent))&&!(oe!=null&&oe.has(b))){oe==null||oe.add(b);var se=le(b.parent.parent);if(e.some(se)){var J=se[0],ie=!e.isUnionTypeNode(J)&&!e.isParenthesizedTypeNode(J)&&e.isParenthesizedTypeNode(e.factory.createUnionTypeNode([J,e.factory.createKeywordTypeNode(114)]).types[0]);ie&&N.insertText(p,J.pos,\"(\"),N.insertText(p,J.end,ie?\") | void\":\" | void\")}else{var R=T.getResolvedSignature(f.parent),q=R==null?void 0:R.parameters[0],O=q&&T.getTypeOfSymbolAtLocation(q,b.parent.parent);e.isInJSFile(b)?(!O||O.flags&3)&&(N.insertText(p,b.parent.parent.end,\")\"),N.insertText(p,e.skipTrivia(p.text,b.parent.parent.pos),\"/** @type {Promise} */(\")):(!O||O.flags&2)&&N.insertText(p,b.parent.parent.expression.end,\"\")}}}}function le(N){var p;if(e.isInJSFile(N)){if(e.isParenthesizedExpression(N.parent)){var m=(p=e.getJSDocTypeTag(N.parent))===null||p===void 0?void 0:p.typeExpression.type;if(m&&e.isTypeReferenceNode(m)&&e.isIdentifier(m.typeName)&&e.idText(m.typeName)===\"Promise\")return m.typeArguments}}else return N.typeArguments}})(a=e.codefix||(e.codefix={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"Convert export\",B={name:\"Convert default export to named export\",description:e.Diagnostics.Convert_default_export_to_named_export.message,kind:\"refactor.rewrite.export.named\"},E={name:\"Convert named export to default export\",description:e.Diagnostics.Convert_named_export_to_default_export.message,kind:\"refactor.rewrite.export.default\"};C.registerRefactor(w,{kinds:[B.kind,E.kind],getAvailableActions:function(K){var b=Q(K,K.triggerReason===\"invoked\");if(!b)return e.emptyArray;if(!C.isRefactorErrorInfo(b)){var se=b.wasDefault?B:E;return[{name:w,description:se.description,actions:[se]}]}return K.preferences.provideRefactorNotApplicableReason?[{name:w,description:e.Diagnostics.Convert_default_export_to_named_export.message,actions:[Ke(Ke({},B),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray},getEditsForAction:function(K,b){e.Debug.assert(b===B.name||b===E.name,\"Unexpected action name\");var se=Q(K);e.Debug.assert(se&&!C.isRefactorErrorInfo(se),\"Expected applicable refactor info\");var J=e.textChanges.ChangeTracker.with(K,function(ie){return le(K.file,K.program,se,ie,K.cancellationToken)});return{edits:J,renameFilename:void 0,renameLocation:void 0}}});function Q(T,K){K===void 0&&(K=!0);var b=T.file,se=T.program,J=e.getRefactorContextSpan(T),ie=e.getTokenAtPosition(b,J.start),R=!!(ie.parent&&e.getSyntacticModifierFlags(ie.parent)&1)&&K?ie.parent:e.getParentNodeInSpan(ie,b,J);if(!R||!e.isSourceFile(R.parent)&&!(e.isModuleBlock(R.parent)&&e.isAmbientModule(R.parent.parent)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_export_statement)};var q=e.isSourceFile(R.parent)?R.parent.symbol:R.parent.parent.symbol,O=e.getSyntacticModifierFlags(R)||(e.isExportAssignment(R)&&!R.isExportEquals?513:0),ve=!!(O&512);if(!(O&1)||!ve&&q.exports.has(\"default\"))return{error:e.getLocaleSpecificMessage(e.Diagnostics.This_file_already_has_a_default_export)};var ee=se.getTypeChecker(),he=function($){return e.isIdentifier($)&&ee.getSymbolAtLocation($)?void 0:{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_named_export)}};switch(R.kind){case 256:case 257:case 258:case 260:case 259:case 261:{var F=R;return F.name?he(F.name)||{exportNode:F,exportName:F.name,wasDefault:ve,exportingModuleSymbol:q}:void 0}case 237:{var x=R;if(!(x.declarationList.flags&2)||x.declarationList.declarations.length!==1)return;var X=e.first(x.declarationList.declarations);return X.initializer?(e.Debug.assert(!ve,\"Can't have a default flag here\"),he(X.name)||{exportNode:x,exportName:X.name,wasDefault:ve,exportingModuleSymbol:q}):void 0}case 271:{var F=R;return F.isExportEquals?void 0:he(F.expression)||{exportNode:F,exportName:F.expression,wasDefault:ve,exportingModuleSymbol:q}}default:return}}function le(T,K,b,se,J){N(T,b,se,K.getTypeChecker()),p(K,b,se,J)}function N(T,K,b,se){var J=K.wasDefault,ie=K.exportNode,R=K.exportName;if(J)if(e.isExportAssignment(ie)&&!ie.isExportEquals){var q=ie.expression,O=f(q.text,q.text);b.replaceNode(T,ie,e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports([O])))}else b.delete(T,e.Debug.checkDefined(e.findModifier(ie,88),\"Should find a default keyword in modifier list\"));else{var ve=e.Debug.checkDefined(e.findModifier(ie,93),\"Should find an export keyword in modifier list\");switch(ie.kind){case 256:case 257:case 258:b.insertNodeAfter(T,ve,e.factory.createToken(88));break;case 237:var ee=e.first(ie.declarationList.declarations);if(!e.FindAllReferences.Core.isSymbolReferencedInFile(R,se,T)&&!ee.type){b.replaceNode(T,ie,e.factory.createExportDefault(e.Debug.checkDefined(ee.initializer,\"Initializer was previously known to be present\")));break}case 260:case 259:case 261:b.deleteModifier(T,ve),b.insertNodeAfter(T,ie,e.factory.createExportDefault(e.factory.createIdentifier(R.text)));break;default:e.Debug.fail(\"Unexpected exportNode kind \".concat(ie.kind))}}}function p(T,K,b,se){var J=K.wasDefault,ie=K.exportName,R=K.exportingModuleSymbol,q=T.getTypeChecker(),O=e.Debug.checkDefined(q.getSymbolAtLocation(ie),\"Export name should resolve to a symbol\");e.FindAllReferences.Core.eachExportReference(T.getSourceFiles(),q,se,O,R,ie.text,J,function(ve){var ee=ve.getSourceFile();J?m(ee,ve,b,ie.text):G(ee,ve,b)})}function m(T,K,b,se){var J=K.parent;switch(J.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier(se));break;case 270:case 275:{var ie=J;b.replaceNode(T,ie,oe(se,ie.name.text));break}case 267:{var R=J;e.Debug.assert(R.name===K,\"Import clause name should match provided ref\");var ie=oe(se,K.text),q=R.namedBindings;if(!q)b.replaceNode(T,K,e.factory.createNamedImports([ie]));else if(q.kind===268){b.deleteRange(T,{pos:K.getStart(T),end:q.getStart(T)});var O=e.isStringLiteral(R.parent.moduleSpecifier)?e.quotePreferenceFromString(R.parent.moduleSpecifier,T):1,ve=e.makeImport(void 0,[oe(se,K.text)],R.parent.moduleSpecifier,O);b.insertNodeAfter(T,R.parent,ve)}else b.delete(T,K),b.insertNodeAtEndOfList(T,q.elements,ie);break}case 200:var ee=J;b.replaceNode(T,J,e.factory.createImportTypeNode(ee.argument,e.factory.createIdentifier(se),ee.typeArguments,ee.isTypeOf));break;default:e.Debug.failBadSyntaxKind(J)}}function G(T,K,b){var se=K.parent;switch(se.kind){case 206:b.replaceNode(T,K,e.factory.createIdentifier(\"default\"));break;case 270:{var J=e.factory.createIdentifier(se.name.text);se.parent.elements.length===1?b.replaceNode(T,se.parent,J):(b.delete(T,se),b.insertNodeBefore(T,se.parent,J));break}case 275:{b.replaceNode(T,se,f(\"default\",se.name.text));break}default:e.Debug.assertNever(se,\"Unexpected parent kind \".concat(se.kind))}}function oe(T,K){return e.factory.createImportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}function f(T,K){return e.factory.createExportSpecifier(!1,T===K?void 0:e.factory.createIdentifier(T),e.factory.createIdentifier(K))}})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w,B=\"Convert import\",E=(w={},w[0]={name:\"Convert namespace import to named imports\",description:e.Diagnostics.Convert_namespace_import_to_named_imports.message,kind:\"refactor.rewrite.import.named\"},w[2]={name:\"Convert named imports to namespace import\",description:e.Diagnostics.Convert_named_imports_to_namespace_import.message,kind:\"refactor.rewrite.import.namespace\"},w[1]={name:\"Convert named imports to default import\",description:e.Diagnostics.Convert_named_imports_to_default_import.message,kind:\"refactor.rewrite.import.default\"},w);C.registerRefactor(B,{kinds:e.getOwnValues(E).map(function(K){return K.kind}),getAvailableActions:function(b){var se=Q(b,b.triggerReason===\"invoked\");if(!se)return e.emptyArray;if(!C.isRefactorErrorInfo(se)){var J=E[se.convertTo];return[{name:B,description:J.description,actions:[J]}]}return b.preferences.provideRefactorNotApplicableReason?e.getOwnValues(E).map(function(ie){return{name:B,description:ie.description,actions:[Ke(Ke({},ie),{notApplicableReason:se.error})]}}):e.emptyArray},getEditsForAction:function(b,se){e.Debug.assert(e.some(e.getOwnValues(E),function(R){return R.name===se}),\"Unexpected action name\");var J=Q(b);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),\"Expected applicable refactor info\");var ie=e.textChanges.ChangeTracker.with(b,function(R){return N(b.file,b.program,R,J)});return{edits:ie,renameFilename:void 0,renameLocation:void 0}}});function Q(K,b){b===void 0&&(b=!0);var se=K.file,J=e.getRefactorContextSpan(K),ie=e.getTokenAtPosition(se,J.start),R=b?e.findAncestor(ie,e.isImportDeclaration):e.getParentNodeInSpan(ie,se,J);if(!R||!e.isImportDeclaration(R))return{error:\"Selection is not an import declaration.\"};var q=J.start+J.length,O=e.findNextToken(R,R.parent,se);if(!(O&&q>O.getStart())){var ve=R.importClause;if(!ve)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_import_clause)};if(!ve.namedBindings)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_namespace_import_or_named_imports)};if(ve.namedBindings.kind===268)return{convertTo:0,import:ve.namedBindings};var ee=le(K.program,ve);return ee?{convertTo:1,import:ve.namedBindings}:{convertTo:2,import:ve.namedBindings}}}function le(K,b){return e.getAllowSyntheticDefaultImports(K.getCompilerOptions())&&f(b.parent.moduleSpecifier,K.getTypeChecker())}function N(K,b,se,J){var ie=b.getTypeChecker();J.convertTo===0?p(K,ie,se,J.import,e.getAllowSyntheticDefaultImports(b.getCompilerOptions())):oe(K,b,se,J.import,J.convertTo===1)}function p(K,b,se,J,ie){var R=!1,q=[],O=new e.Map;e.FindAllReferences.Core.eachSymbolReferenceInFile(J.name,b,K,function(y){if(!e.isPropertyAccessOrQualifiedName(y.parent))R=!0;else{var V=m(y.parent).text;b.resolveName(V,y,67108863,!0)&&O.set(V,!0),e.Debug.assert(G(y.parent)===y,\"Parent expression should match id\"),q.push(y.parent)}});for(var ve=new e.Map,ee=0,he=q;ee=V.pos?L.getEnd():V.getEnd()),k=y?q(V):R(V,P),Y=k&&oe(k)?O(k):void 0;if(!Y)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var U=$.getTypeChecker();return e.isConditionalExpression(Y)?T(Y,U):K(Y)}}function T(F,x){var X=F.condition,$=ve(F.whenTrue);if(!$||x.isNullableType(x.getTypeAtLocation($)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};if((e.isPropertyAccessExpression(X)||e.isIdentifier(X))&&se(X,$.expression))return{finalExpression:$,occurrences:[X],expression:F};if(e.isBinaryExpression(X)){var A=b($.expression,X);return A?{finalExpression:$,occurrences:A,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}}function K(F){if(F.operatorToken.kind!==55)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_logical_AND_access_chains)};var x=ve(F.right);if(!x)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var X=b(x.expression,F.left);return X?{finalExpression:x,occurrences:X,expression:F}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}function b(F,x){for(var X=[];e.isBinaryExpression(x)&&x.operatorToken.kind===55;){var $=se(e.skipParentheses(F),e.skipParentheses(x.right));if(!$)break;X.push($),F=$,x=x.left}var A=se(F,x);return A&&X.push(A),X.length>0?X:void 0}function se(F,x){if(!(!e.isIdentifier(x)&&!e.isPropertyAccessExpression(x)&&!e.isElementAccessExpression(x)))return J(F,x)?x:void 0}function J(F,x){for(;(e.isCallExpression(F)||e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F))&&ie(F)!==ie(x);)F=F.expression;for(;e.isPropertyAccessExpression(F)&&e.isPropertyAccessExpression(x)||e.isElementAccessExpression(F)&&e.isElementAccessExpression(x);){if(ie(F)!==ie(x))return!1;F=F.expression,x=x.expression}return e.isIdentifier(F)&&e.isIdentifier(x)&&F.getText()===x.getText()}function ie(F){if(e.isIdentifier(F)||e.isStringOrNumericLiteralLike(F))return F.getText();if(e.isPropertyAccessExpression(F))return ie(F.name);if(e.isElementAccessExpression(F))return ie(F.argumentExpression)}function R(F,x){for(;F.parent;){if(oe(F)&&x.length!==0&&F.end>=x.start+x.length)return F;F=F.parent}}function q(F){for(;F.parent;){if(oe(F)&&!oe(F.parent))return F;F=F.parent}}function O(F){if(m(F))return F;if(e.isVariableStatement(F)){var x=e.getSingleVariableOfVariableStatement(F),X=x==null?void 0:x.initializer;return X&&m(X)?X:void 0}return F.expression&&m(F.expression)?F.expression:void 0}function ve(F){if(F=e.skipParentheses(F),e.isBinaryExpression(F))return ve(F.left);if((e.isPropertyAccessExpression(F)||e.isElementAccessExpression(F)||e.isCallExpression(F))&&!e.isOptionalChain(F))return F}function ee(F,x,X){if(e.isPropertyAccessExpression(x)||e.isElementAccessExpression(x)||e.isCallExpression(x)){var $=ee(F,x.expression,X),A=X.length>0?X[X.length-1]:void 0,y=(A==null?void 0:A.getText())===x.expression.getText();if(y&&X.pop(),e.isCallExpression(x))return y?e.factory.createCallChain($,e.factory.createToken(28),x.typeArguments,x.arguments):e.factory.createCallChain($,x.questionDotToken,x.typeArguments,x.arguments);if(e.isPropertyAccessExpression(x))return y?e.factory.createPropertyAccessChain($,e.factory.createToken(28),x.name):e.factory.createPropertyAccessChain($,x.questionDotToken,x.name);if(e.isElementAccessExpression(x))return y?e.factory.createElementAccessChain($,e.factory.createToken(28),x.argumentExpression):e.factory.createElementAccessChain($,x.questionDotToken,x.argumentExpression)}return x}function he(F,x,X,$,A){var y=$.finalExpression,V=$.occurrences,L=$.expression,P=V[V.length-1],k=ee(x,y,V);k&&(e.isPropertyAccessExpression(k)||e.isElementAccessExpression(k)||e.isCallExpression(k))&&(e.isBinaryExpression(L)?X.replaceNodeRange(F,P,y,k):e.isConditionalExpression(L)&&X.replaceNode(F,L,e.factory.createBinaryExpression(k,e.factory.createToken(60),L.whenFalse)))}})(w=C.convertToOptionalChainExpression||(C.convertToOptionalChainExpression={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E=\"Convert overload list to single signature\",Q=e.Diagnostics.Convert_overload_list_to_single_signature.message,le={name:E,description:Q,kind:\"refactor.rewrite.function.overloadList\"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:p,getAvailableActions:N});function N(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);return b?[{name:E,description:Q,actions:[le]}]:e.emptyArray}function p(oe){var f=oe.file,T=oe.startPosition,K=oe.program,b=G(f,T,K);if(!b)return;var se=K.getTypeChecker(),J=b[b.length-1],ie=J;switch(J.kind){case 168:{ie=e.factory.updateMethodSignature(J,J.modifiers,J.name,J.questionToken,J.typeParameters,q(b),J.type);break}case 169:{ie=e.factory.updateMethodDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.questionToken,J.typeParameters,q(b),J.type,J.body);break}case 174:{ie=e.factory.updateCallSignature(J,J.typeParameters,q(b),J.type);break}case 171:{ie=e.factory.updateConstructorDeclaration(J,J.decorators,J.modifiers,q(b),J.body);break}case 175:{ie=e.factory.updateConstructSignature(J,J.typeParameters,q(b),J.type);break}case 256:{ie=e.factory.updateFunctionDeclaration(J,J.decorators,J.modifiers,J.asteriskToken,J.name,J.typeParameters,q(b),J.type,J.body);break}default:return e.Debug.failBadSyntaxKind(J,\"Unhandled signature kind in overload list conversion refactoring\")}if(ie===J)return;var R=e.textChanges.ChangeTracker.with(oe,function(ee){ee.replaceNodeRange(f,b[0],b[b.length-1],ie)});return{renameFilename:void 0,renameLocation:void 0,edits:R};function q(ee){var he=ee[ee.length-1];return e.isFunctionLikeDeclaration(he)&&he.body&&(ee=ee.slice(0,ee.length-1)),e.factory.createNodeArray([e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),\"args\",void 0,e.factory.createUnionTypeNode(e.map(ee,O)))])}function O(ee){var he=e.map(ee.parameters,ve);return e.setEmitFlags(e.factory.createTupleTypeNode(he),e.some(he,function(F){return!!e.length(e.getSyntheticLeadingComments(F))})?0:1)}function ve(ee){e.Debug.assert(e.isIdentifier(ee.name));var he=e.setTextRange(e.factory.createNamedTupleMember(ee.dotDotDotToken,ee.name,ee.questionToken,ee.type||e.factory.createKeywordTypeNode(130)),ee),F=ee.symbol&&ee.symbol.getDocumentationComment(se);if(F){var x=e.displayPartsToString(F);x.length&&e.setSyntheticLeadingComments(he,[{text:`*\n`.concat(x.split(`\n`).map(function(X){return\" * \".concat(X)}).join(`\n`),`\n `),kind:3,pos:-1,end:-1,hasTrailingNewLine:!0,hasLeadingNewline:!0}])}return he}}function m(oe){switch(oe.kind){case 168:case 169:case 174:case 171:case 175:case 256:return!0}return!1}function G(oe,f,T){var K=e.getTokenAtPosition(oe,f),b=e.findAncestor(K,m);if(!!b){var se=T.getTypeChecker(),J=b.symbol;if(!!J){var ie=J.declarations;if(!(e.length(ie)<=1)&&!!e.every(ie,function(ee){return e.getSourceFileOfNode(ee)===oe})&&!!m(ie[0])){var R=ie[0].kind;if(!!e.every(ie,function(ee){return ee.kind===R})){var q=ie;if(!e.some(q,function(ee){return!!ee.typeParameters||e.some(ee.parameters,function(he){return!!he.decorators||!!he.modifiers||!e.isIdentifier(he.name)})})){var O=e.mapDefined(q,function(ee){return se.getSignatureFromDeclaration(ee)});if(e.length(O)===e.length(ie)){var ve=se.getReturnTypeOfSignature(O[0]);if(!!e.every(O,function(ee){return se.getReturnTypeOfSignature(ee)===ve}))return q}}}}}}}})(w=C.addOrRemoveBracesToArrowFunction||(C.addOrRemoveBracesToArrowFunction={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E=\"Extract Symbol\",Q={name:\"Extract Constant\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),kind:\"refactor.extract.constant\"},le={name:\"Extract Function\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),kind:\"refactor.extract.function\"};C.registerRefactor(E,{kinds:[Q.kind,le.kind],getEditsForAction:p,getAvailableActions:N});function N(Fe){var Z=Fe.kind,Be=oe(Fe.file,e.getRefactorContextSpan(Fe),Fe.triggerReason===\"invoked\"),ge=Be.targetRange;if(ge===void 0){if(!Be.errors||Be.errors.length===0||!Fe.preferences.provideRefactorNotApplicableReason)return e.emptyArray;var Re=[];return C.refactorKindBeginsWith(le.kind,Z)&&Re.push({name:E,description:le.description,actions:[Ke(Ke({},le),{notApplicableReason:Ne(Be.errors)})]}),C.refactorKindBeginsWith(Q.kind,Z)&&Re.push({name:E,description:Q.description,actions:[Ke(Ke({},Q),{notApplicableReason:Ne(Be.errors)})]}),Re}var ze=ie(ge,Fe);if(ze===void 0)return e.emptyArray;for(var Ee=[],He=new e.Map,rr,Ie=[],_e=new e.Map,we,de=0,ye=0,Ae=ze;ye=Z.start+Z.length)return(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractSuper)),!0}else we|=G.UsesThis,de=mi;break;case 214:e.forEachChild(mi,function Di(wi){if(e.isThis(wi))we|=G.UsesThis,de=mi;else{if(e.isClassLike(wi)||e.isFunctionLike(wi)&&!e.isArrowFunction(wi))return!1;e.forEachChild(wi,Di)}});case 257:case 256:e.isSourceFile(mi.parent)&&mi.parent.externalModuleIndicator===void 0&&(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.functionWillNotBeVisibleInTheNewScope));case 226:case 213:case 169:case 171:case 172:case 173:return!1}var qr=Ir;switch(mi.kind){case 239:Ir=0;break;case 252:Ir=0;break;case 235:mi.parent&&mi.parent.kind===252&&mi.parent.finallyBlock===mi&&(Ir=4);break;case 290:case 289:Ir|=1;break;default:e.isIterationStatement(mi,!1)&&(Ir|=3);break}switch(mi.kind){case 192:case 108:we|=G.UsesThis,de=mi;break;case 250:{var si=mi.label;(wr||(wr=[])).push(si.escapedText),e.forEachChild(mi,ii),wr.pop();break}case 246:case 245:{var si=mi.label;si?e.contains(wr,si.escapedText)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):Ir&(mi.kind===246?1:2)||(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break}case 218:we|=G.IsAsyncFunction;break;case 224:we|=G.IsGenerator;break;case 247:Ir&4?we|=G.HasReturn:(yr||(yr=[])).push(e.createDiagnosticForNode(mi,m.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(mi,ii);break}Ir=qr}}}B.getRangeToExtract=oe;function f(Fe,Z,Be){var ge=Fe.getStart(Be),Re=Z.getEnd();return Be.text.charCodeAt(Re)===59&&Re++,{start:ge,length:Re-ge}}function T(Fe){if(e.isStatement(Fe))return[Fe];if(e.isExpressionNode(Fe))return e.isExpressionStatement(Fe.parent)?[Fe.parent]:Fe;if(We(Fe))return Fe}function K(Fe){return e.isArrowFunction(Fe)?e.isFunctionBody(Fe.body):e.isFunctionLikeDeclaration(Fe)||e.isSourceFile(Fe)||e.isModuleBlock(Fe)||e.isClassLike(Fe)}function b(Fe){var Z=I(Fe.range)?e.first(Fe.range):Fe.range;if(Fe.facts&G.UsesThis&&!(Fe.facts&G.UsesThisInFunction)){var Be=e.getContainingClass(Z);if(Be){var ge=e.findAncestor(Z,e.isFunctionLikeDeclaration);return ge?[ge,Be]:[Be]}}for(var Re=[];;)if(Z=Z.parent,Z.kind===164&&(Z=e.findAncestor(Z,function(ze){return e.isFunctionLikeDeclaration(ze)}).parent),K(Z)&&(Re.push(Z),Z.kind===305))return Re}function se(Fe,Z,Be){var ge=R(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.functionErrorsPerScope,Ie=ze.exposedVariableDeclarations;return e.Debug.assert(!rr[Be].length,\"The extraction went missing? How?\"),Z.cancellationToken.throwIfCancellationRequested(),x(Ee,Re[Be],He[Be],Ie,Fe,Z)}function J(Fe,Z,Be){var ge=R(Fe,Z),Re=ge.scopes,ze=ge.readsAndWrites,Ee=ze.target,He=ze.usagesPerScope,rr=ze.constantErrorsPerScope,Ie=ze.exposedVariableDeclarations;e.Debug.assert(!rr[Be].length,\"The extraction went missing? How?\"),e.Debug.assert(Ie.length===0,\"Extract constant accepted a range containing a variable declaration?\"),Z.cancellationToken.throwIfCancellationRequested();var _e=e.isExpression(Ee)?Ee:Ee.statements[0].expression;return X(_e,Re[Be],He[Be],Fe.facts,Z)}function ie(Fe,Z){var Be=R(Fe,Z),ge=Be.scopes,Re=Be.readsAndWrites,ze=Re.functionErrorsPerScope,Ee=Re.constantErrorsPerScope,He=ge.map(function(rr,Ie){var _e=q(rr),we=O(rr),de=e.isFunctionLikeDeclaration(rr)?ve(rr):e.isClassLike(rr)?ee(rr):he(rr),ye,Ae;return de===1?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,\"global\"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,\"global\"])):de===0?(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[_e,\"module\"]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[we,\"module\"])):(ye=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[_e,de]),Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[we,de])),Ie===0&&!e.isClassLike(rr)&&(Ae=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[we])),{functionExtraction:{description:ye,errors:ze[Ie]},constantExtraction:{description:Ae,errors:Ee[Ie]}}});return He}function R(Fe,Z){var Be=Z.file,ge=b(Fe),Re=l(Fe,Be),ze=D(Fe,ge,Re,Be,Z.program.getTypeChecker(),Z.cancellationToken);return{scopes:ge,readsAndWrites:ze}}function q(Fe){return e.isFunctionLikeDeclaration(Fe)?\"inner function\":e.isClassLike(Fe)?\"method\":\"function\"}function O(Fe){return e.isClassLike(Fe)?\"readonly field\":\"constant\"}function ve(Fe){switch(Fe.kind){case 171:return\"constructor\";case 213:case 256:return Fe.name?\"function '\".concat(Fe.name.text,\"'\"):e.ANONYMOUS;case 214:return\"arrow function\";case 169:return\"method '\".concat(Fe.name.getText(),\"'\");case 172:return\"'get \".concat(Fe.name.getText(),\"'\");case 173:return\"'set \".concat(Fe.name.getText(),\"'\");default:throw e.Debug.assertNever(Fe,\"Unexpected scope kind \".concat(Fe.kind))}}function ee(Fe){return Fe.kind===257?Fe.name?\"class '\".concat(Fe.name.text,\"'\"):\"anonymous class declaration\":Fe.name?\"class expression '\".concat(Fe.name.text,\"'\"):\"anonymous class expression\"}function he(Fe){return Fe.kind===262?\"namespace '\".concat(Fe.parent.name.getText(),\"'\"):Fe.externalModuleIndicator?0:1}var F;(function(Fe){Fe[Fe.Module=0]=\"Module\",Fe[Fe.Global=1]=\"Global\"})(F||(F={}));function x(Fe,Z,Be,ge,Re,ze){var Ee=Be.usages,He=Be.typeParameterUsages,rr=Be.substitutions,Ie=ze.program.getTypeChecker(),_e=e.getEmitScriptTarget(ze.program.getCompilerOptions()),we=e.codefix.createImportAdder(ze.file,ze.program,ze.preferences,ze.host),de=Z.getSourceFile(),ye=e.getUniqueName(e.isClassLike(Z)?\"newMethod\":\"newFunction\",de),Ae=e.isInJSFile(Z),er=e.factory.createIdentifier(ye),ir,Cr=[],Ye=[],Br;Ee.forEach(function(xe,vr){var mr;if(!Ae){var Ar=Ie.getTypeOfSymbolAtLocation(xe.symbol,xe.node);Ar=Ie.getBaseTypeOfLiteralType(Ar),mr=e.codefix.typeToAutoImportableTypeNode(Ie,we,Ar,Z,_e,1)}var Oe=e.factory.createParameterDeclaration(void 0,void 0,void 0,vr,void 0,mr);Cr.push(Oe),xe.usage===2&&(Br||(Br=[])).push(xe),Ye.push(e.factory.createIdentifier(vr))});var Er=e.arrayFrom(He.values()).map(function(xe){return{type:xe,declaration:A(xe)}}),Ne=Er.sort(y),n=Ne.length===0?void 0:Ne.map(function(xe){return xe.declaration}),lr=n!==void 0?n.map(function(xe){return e.factory.createTypeReferenceNode(xe.name,void 0)}):void 0;if(e.isExpression(Fe)&&!Ae){var be=Ie.getContextualType(Fe);ir=Ie.typeToTypeNode(be,Z,1)}var Ge=L(Fe,ge,Br,rr,!!(Re.facts&G.HasReturn)),ur=Ge.body,yr=Ge.returnValueProperty;e.suppressLeadingAndTrailingTrivia(ur);var Ir,wr=!!(Re.facts&G.UsesThisInFunction);if(e.isClassLike(Z)){var Ur=Ae?[]:[e.factory.createModifier(121)];Re.facts&G.InStaticRegion&&Ur.push(e.factory.createModifier(124)),Re.facts&G.IsAsyncFunction&&Ur.push(e.factory.createModifier(131)),Ir=e.factory.createMethodDeclaration(void 0,Ur.length?Ur:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,void 0,n,Cr,ir,ur)}else wr&&Cr.unshift(e.factory.createParameterDeclaration(void 0,void 0,void 0,\"this\",void 0,Ie.typeToTypeNode(Ie.getTypeAtLocation(Re.thisNode),Z,1),void 0)),Ir=e.factory.createFunctionDeclaration(void 0,Re.facts&G.IsAsyncFunction?[e.factory.createToken(131)]:void 0,Re.facts&G.IsGenerator?e.factory.createToken(41):void 0,er,n,Cr,ir,ur);var ii=e.textChanges.ChangeTracker.fromContext(ze),mi=(I(Re.range)?e.last(Re.range):Re.range).end,pe=Y(mi,Z);pe?ii.insertNodeBefore(ze.file,pe,Ir,!0):ii.insertNodeAtEndOfScope(ze.file,Z,Ir),we.writeFixes(ii);var or=[],qr=V(Z,Re,ye);wr&&Ye.unshift(e.factory.createIdentifier(\"this\"));var si=e.factory.createCallExpression(wr?e.factory.createPropertyAccessExpression(qr,\"call\"):qr,lr,Ye);if(Re.facts&G.IsGenerator&&(si=e.factory.createYieldExpression(e.factory.createToken(41),si)),Re.facts&G.IsAsyncFunction&&(si=e.factory.createAwaitExpression(si)),ue(Fe)&&(si=e.factory.createJsxExpression(void 0,si)),ge.length&&!Br)if(e.Debug.assert(!yr,\"Expected no returnValueProperty\"),e.Debug.assert(!(Re.facts&G.HasReturn),\"Expected RangeFacts.HasReturn flag to be unset\"),ge.length===1){var Di=ge[0];or.push(e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([e.factory.createVariableDeclaration(e.getSynthesizedDeepClone(Di.name),void 0,e.getSynthesizedDeepClone(Di.type),si)],Di.parent.flags)))}else{for(var wi=[],Xi=[],et=ge[0].parent.flags,Gi=!1,Wt=0,Zt=ge;Wt1)return Fe;Be=Fe,Fe=Fe.parent}}function A(Fe){var Z,Be=Fe.symbol;if(Be&&Be.declarations)for(var ge=0,Re=Be.declarations;ge0;if(e.isBlock(Fe)&&!ze&&ge.size===0)return{body:e.factory.createBlock(Fe.statements,!0),returnValueProperty:void 0};var Ee,He=!1,rr=e.factory.createNodeArray(e.isBlock(Fe)?Fe.statements.slice(0):[e.isStatement(Fe)?Fe:e.factory.createReturnStatement(e.skipParentheses(Fe))]);if(ze||ge.size){var Ie=e.visitNodes(rr,we).slice();if(ze&&!Re&&e.isStatement(Fe)){var _e=H(Z,Be);_e.length===1?Ie.push(e.factory.createReturnStatement(_e[0].name)):Ie.push(e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(_e)))}return{body:e.factory.createBlock(Ie,!0),returnValueProperty:Ee}}else return{body:e.factory.createBlock(rr,!0),returnValueProperty:void 0};function we(de){if(!He&&e.isReturnStatement(de)&&ze){var ye=H(Z,Be);return de.expression&&(Ee||(Ee=\"__return\"),ye.unshift(e.factory.createPropertyAssignment(Ee,e.visitNode(de.expression,we)))),ye.length===1?e.factory.createReturnStatement(ye[0].name):e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(ye))}else{var Ae=He;He=He||e.isFunctionLikeDeclaration(de)||e.isClassLike(de);var er=ge.get(e.getNodeId(de).toString()),ir=er?e.getSynthesizedDeepClone(er):e.visitEachChild(de,we,e.nullTransformationContext);return He=Ae,ir}}}function P(Fe,Z){return Z.size?Be(Fe):Fe;function Be(ge){var Re=Z.get(e.getNodeId(ge).toString());return Re?e.getSynthesizedDeepClone(Re):e.visitEachChild(ge,Be,e.nullTransformationContext)}}function k(Fe){if(e.isFunctionLikeDeclaration(Fe)){var Z=Fe.body;if(e.isBlock(Z))return Z.statements}else{if(e.isModuleBlock(Fe)||e.isSourceFile(Fe))return Fe.statements;if(e.isClassLike(Fe))return Fe.members;e.assertType(Fe)}return e.emptyArray}function Y(Fe,Z){return e.find(k(Z),function(Be){return Be.pos>=Fe&&e.isFunctionLikeDeclaration(Be)&&!e.isConstructorDeclaration(Be)})}function U(Fe,Z){var Be=Z.members;e.Debug.assert(Be.length>0,\"Found no members\");for(var ge,Re=!0,ze=0,Ee=Be;zeFe)return ge||Be[0];if(Re&&!e.isPropertyDeclaration(He)){if(ge!==void 0)return He;Re=!1}ge=He}return ge===void 0?e.Debug.fail():ge}function j(Fe,Z){e.Debug.assert(!e.isClassLike(Z));for(var Be,ge=Fe;ge!==Z;ge=ge.parent)K(ge)&&(Be=ge);for(var ge=(Be||Fe).parent;;ge=ge.parent){if(ne(ge)){for(var Re=void 0,ze=0,Ee=ge.statements;zeFe.pos)break;Re=He}return!Re&&e.isCaseClause(ge)?(e.Debug.assert(e.isSwitchStatement(ge.parent.parent),\"Grandparent isn't a switch statement\"),ge.parent.parent):e.Debug.checkDefined(Re,\"prevStatement failed to get set\")}e.Debug.assert(ge!==Z,\"Didn't encounter a block-like before encountering scope\")}}function H(Fe,Z){var Be=e.map(Fe,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)}),ge=e.map(Z,function(Re){return e.factory.createShorthandPropertyAssignment(Re.symbol.name)});return Be===void 0?ge:ge===void 0?Be:Be.concat(ge)}function I(Fe){return e.isArray(Fe)}function l(Fe,Z){return I(Fe.range)?{pos:e.first(Fe.range).getStart(Z),end:e.last(Fe.range).getEnd()}:Fe.range}var d;(function(Fe){Fe[Fe.Read=1]=\"Read\",Fe[Fe.Write=2]=\"Write\"})(d||(d={}));function D(Fe,Z,Be,ge,Re,ze){var Ee=new e.Map,He=[],rr=[],Ie=[],_e=[],we=[],de=new e.Map,ye=[],Ae,er=I(Fe.range)?Fe.range.length===1&&e.isExpressionStatement(Fe.range[0])?Fe.range[0].expression:void 0:Fe.range,ir;if(er===void 0){var Cr=Fe.range,Ye=e.first(Cr).getStart(),Br=e.last(Cr).end;ir=e.createFileDiagnostic(ge,Ye,Br-Ye,m.expressionExpected)}else Re.getTypeAtLocation(er).flags&147456&&(ir=e.createDiagnosticForNode(er,m.uselessConstantType));for(var Er=0,Ne=Z;Er0){for(var wr=new e.Map,Ur=0,ii=ur;ii!==void 0&&Ur0&&(Jr.usages.size>0||Jr.typeParameterUsages.size>0)){var ti=I(Fe.range)?Fe.range[0]:Fe.range;_e[Xe].push(e.createDiagnosticForNode(ti,m.cannotAccessVariablesFromNestedScopes))}Fe.facts&G.UsesThisInFunction&&e.isClassLike(Z[Xe])&&Ie[Xe].push(e.createDiagnosticForNode(Fe.thisNode,m.cannotExtractFunctionsContainingThisToMethod));var Ze=!1,Sr;if(He[Xe].usages.forEach(function(Wr){Wr.usage===2&&(Ze=!0,Wr.symbol.flags&106500&&Wr.symbol.valueDeclaration&&e.hasEffectiveModifier(Wr.symbol.valueDeclaration,64)&&(Sr=Wr.symbol.valueDeclaration))}),e.Debug.assert(I(Fe.range)||ye.length===0,\"No variable declarations expected if something was extracted\"),Ze&&!I(Fe.range)){var zr=e.createDiagnosticForNode(Fe.range,m.cannotWriteInExpression);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Sr&&Xe>0){var zr=e.createDiagnosticForNode(Sr,m.cannotExtractReadonlyPropertyInitializerOutsideConstructor);Ie[Xe].push(zr),_e[Xe].push(zr)}else if(Ae){var zr=e.createDiagnosticForNode(Ae,m.cannotExtractExportedEntity);Ie[Xe].push(zr),_e[Xe].push(zr)}},wi=0;wi=Jr)return Sr;if(be.set(Sr,Jr),zr){for(var Wr=0,Je=He;Wr=0)){var Jr=e.isIdentifier(Xe)?pi(Xe):Re.getSymbolAtLocation(Xe);if(Jr){var ti=e.find(we,function(Sr){return Sr.symbol===Jr});if(ti)if(e.isVariableDeclaration(ti)){var Ze=ti.symbol.id.toString();de.has(Ze)||(ye.push(ti),de.set(Ze,!0))}else Ae=Ae||ti}e.forEachChild(Xe,_r)}}function pi(Xe){return Xe.parent&&e.isShorthandPropertyAssignment(Xe.parent)&&Xe.parent.name===Xe?Re.getShorthandAssignmentValueSymbol(Xe.parent):Re.getSymbolAtLocation(Xe)}function ae(Xe,Jr,ti){if(!!Xe){var Ze=Xe.getDeclarations();if(Ze&&Ze.some(function(zr){return zr.parent===Jr}))return e.factory.createIdentifier(Xe.name);var Sr=ae(Xe.parent,Jr,ti);if(Sr!==void 0)return ti?e.factory.createQualifiedName(Sr,e.factory.createIdentifier(Xe.name)):e.factory.createPropertyAccessExpression(Sr,Xe.name)}}}function fe(Fe){return e.findAncestor(Fe,function(Z){return Z.parent&&g(Z)&&!e.isBinaryExpression(Z.parent)})}function g(Fe){var Z=Fe.parent;switch(Z.kind){case 299:return!1}switch(Fe.kind){case 10:return Z.kind!==266&&Z.kind!==270;case 225:case 201:case 203:return!1;case 79:return Z.kind!==203&&Z.kind!==270&&Z.kind!==275}return!0}function ne(Fe){switch(Fe.kind){case 235:case 305:case 262:case 289:return!0;default:return!1}}function ue(Fe){return We(Fe)||(e.isJsxElement(Fe)||e.isJsxSelfClosingElement(Fe)||e.isJsxFragment(Fe))&&(e.isJsxElement(Fe.parent)||e.isJsxFragment(Fe.parent))}function We(Fe){return e.isStringLiteral(Fe)&&Fe.parent&&e.isJsxAttribute(Fe.parent)}})(w=C.extractSymbol||(C.extractSymbol={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w=\"Extract type\",B={name:\"Extract to type alias\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_type_alias),kind:\"refactor.extract.type\"},E={name:\"Extract to interface\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_interface),kind:\"refactor.extract.interface\"},Q={name:\"Extract to typedef\",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_typedef),kind:\"refactor.extract.typedef\"};C.registerRefactor(w,{kinds:[B.kind,E.kind,Q.kind],getAvailableActions:function(K){var b=le(K,K.triggerReason===\"invoked\");return b?C.isRefactorErrorInfo(b)?K.preferences.provideRefactorNotApplicableReason?[{name:w,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:[Ke(Ke({},Q),{notApplicableReason:b.error}),Ke(Ke({},B),{notApplicableReason:b.error}),Ke(Ke({},E),{notApplicableReason:b.error})]}]:e.emptyArray:[{name:w,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:b.isJS?[Q]:e.append([B],b.typeElements&&E)}]:e.emptyArray},getEditsForAction:function(K,b){var se=K.file,J=le(K);e.Debug.assert(J&&!C.isRefactorErrorInfo(J),\"Expected to find a range to extract\");var ie=e.getUniqueName(\"NewType\",se),R=e.textChanges.ChangeTracker.with(K,function(ve){switch(b){case B.name:return e.Debug.assert(!J.isJS,\"Invalid actionName/JS combo\"),G(ve,se,ie,J);case Q.name:return e.Debug.assert(J.isJS,\"Invalid actionName/JS combo\"),f(ve,se,ie,J);case E.name:return e.Debug.assert(!J.isJS&&!!J.typeElements,\"Invalid actionName/JS combo\"),oe(ve,se,ie,J);default:e.Debug.fail(\"Unexpected action name\")}}),q=se.fileName,O=e.getRenameLocation(R,q,ie,!1);return{edits:R,renameFilename:q,renameLocation:O}}});function le(T,K){K===void 0&&(K=!0);var b=T.file,se=T.startPosition,J=e.isSourceFileJS(b),ie=e.getTokenAtPosition(b,se),R=e.createTextRangeFromSpan(e.getRefactorContextSpan(T)),q=R.pos===R.end&&K,O=e.findAncestor(ie,function(x){return x.parent&&e.isTypeNode(x)&&!p(R,x.parent,b)&&(q||e.nodeOverlapsWithStartEnd(ie,b,R.pos,R.end))});if(!O||!e.isTypeNode(O))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Selection_is_not_a_valid_type_node)};var ve=T.program.getTypeChecker(),ee=e.Debug.checkDefined(e.findAncestor(O,e.isStatement),\"Should find a statement\"),he=m(ve,O,ee,b);if(!he)return{error:e.getLocaleSpecificMessage(e.Diagnostics.No_type_could_be_extracted_from_this_type_node)};var F=N(ve,O);return{isJS:J,selection:O,firstStatement:ee,typeParameters:he,typeElements:F}}function N(T,K){if(!!K)if(e.isIntersectionTypeNode(K)){for(var b=[],se=new e.Map,J=0,ie=K.types;Jrr.pos});if(_e!==-1){var we=Ie[_e];if(e.isNamedDeclaration(we)&&we.name&&e.rangeContainsRange(we.name,rr))return{toMove:[Ie[_e]],afterLast:Ie[_e+1]};if(!(rr.pos>we.getStart(He))){var de=e.findIndex(Ie,function(ye){return ye.end>rr.end},_e);if(!(de!==-1&&(de===0||Ie[de].getStart(He)=Q&&e.every(U,function(H){return F(H,j)})}function F(U,j){if(e.isRestParameter(U)){var H=j.getTypeAtLocation(U);if(!j.isArrayType(H)&&!j.isTupleType(H))return!1}return!U.modifiers&&!U.decorators&&e.isIdentifier(U.name)}function x(U){return e.isVariableDeclaration(U)&&e.isVarConst(U)&&e.isIdentifier(U.name)&&!U.type}function X(U){return U.length>0&&e.isThis(U[0].name)}function $(U){return X(U)?U.length-1:U.length}function A(U){return X(U)&&(U=e.factory.createNodeArray(U.slice(1),U.hasTrailingComma)),U}function y(U,j){return e.isIdentifier(j)&&e.getTextOfIdentifierOrLiteral(j)===U?e.factory.createShorthandPropertyAssignment(U):e.factory.createPropertyAssignment(U,j)}function V(U,j){var H=A(U.parameters),I=e.isRestParameter(e.last(H)),l=I?j.slice(0,H.length-1):j,d=e.map(l,function(ne,ue){var We=P(H[ue]),Fe=y(We,ne);return e.suppressLeadingAndTrailingTrivia(Fe.name),e.isPropertyAssignment(Fe)&&e.suppressLeadingAndTrailingTrivia(Fe.initializer),e.copyComments(ne,Fe),Fe});if(I&&j.length>=H.length){var D=j.slice(H.length-1),fe=e.factory.createPropertyAssignment(P(e.last(H)),e.factory.createArrayLiteralExpression(D));d.push(fe)}var g=e.factory.createObjectLiteralExpression(d,!1);return g}function L(U,j,H){var I=j.getTypeChecker(),l=A(U.parameters),d=e.map(l,Fe),D=e.factory.createObjectBindingPattern(d),fe=Z(l),g;e.every(l,Re)&&(g=e.factory.createObjectLiteralExpression());var ne=e.factory.createParameterDeclaration(void 0,void 0,void 0,D,void 0,fe,g);if(X(U.parameters)){var ue=U.parameters[0],We=e.factory.createParameterDeclaration(void 0,void 0,void 0,ue.name,void 0,ue.type);return e.suppressLeadingAndTrailingTrivia(We.name),e.copyComments(ue.name,We.name),ue.type&&(e.suppressLeadingAndTrailingTrivia(We.type),e.copyComments(ue.type,We.type)),e.factory.createNodeArray([We,ne])}return e.factory.createNodeArray([ne]);function Fe(ze){var Ee=e.factory.createBindingElement(void 0,void 0,P(ze),e.isRestParameter(ze)&&Re(ze)?e.factory.createArrayLiteralExpression():ze.initializer);return e.suppressLeadingAndTrailingTrivia(Ee),ze.initializer&&Ee.initializer&&e.copyComments(ze.initializer,Ee.initializer),Ee}function Z(ze){var Ee=e.map(ze,Be),He=e.addEmitFlags(e.factory.createTypeLiteralNode(Ee),1);return He}function Be(ze){var Ee=ze.type;!Ee&&(ze.initializer||e.isRestParameter(ze))&&(Ee=ge(ze));var He=e.factory.createPropertySignature(void 0,P(ze),Re(ze)?e.factory.createToken(57):ze.questionToken,Ee);return e.suppressLeadingAndTrailingTrivia(He),e.copyComments(ze.name,He.name),ze.type&&He.type&&e.copyComments(ze.type,He.type),He}function ge(ze){var Ee=I.getTypeAtLocation(ze);return e.getTypeNodeIfAccessible(Ee,ze,j,H)}function Re(ze){if(e.isRestParameter(ze)){var Ee=I.getTypeAtLocation(ze);return!I.isTupleType(Ee)}return I.isOptionalParameter(ze)}}function P(U){return e.getTextOfIdentifierOrLiteral(U.name)}function k(U){switch(U.parent.kind){case 257:var j=U.parent;if(j.name)return[j.name];var H=e.Debug.checkDefined(e.findModifier(j,88),\"Nameless class declaration should be a default export\");return[H];case 226:var I=U.parent,l=U.parent.parent,d=I.name;return d?[d,l.name]:[l.name]}}function Y(U){switch(U.kind){case 256:if(U.name)return[U.name];var j=e.Debug.checkDefined(e.findModifier(U,88),\"Nameless function declaration should be a default export\");return[j];case 169:return[U.name];case 171:var H=e.Debug.checkDefined(e.findChildOfKind(U,134,U.getSourceFile()),\"Constructor declaration should have constructor keyword\");if(U.parent.kind===226){var I=U.parent.parent;return[I.name,H]}return[H];case 214:return[U.parent.name];case 213:return U.name?[U.name,U.parent.name]:[U.parent.name];default:return e.Debug.assertNever(U,\"Unexpected function declaration kind \".concat(U.kind))}}})(w=C.convertParamsToDestructuredObject||(C.convertParamsToDestructuredObject={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){var a;(function(C){var w;(function(B){var E=\"Convert to template string\",Q=e.getLocaleSpecificMessage(e.Diagnostics.Convert_to_template_string),le={name:E,description:Q,kind:\"refactor.rewrite.string\"};C.registerRefactor(E,{kinds:[le.kind],getEditsForAction:m,getAvailableActions:N});function N(ve){var ee=ve.file,he=ve.startPosition,F=p(ee,he),x=f(F),X={name:E,description:Q,actions:[]};return e.isBinaryExpression(x)&&T(x).isValidConcatenation?(X.actions.push(le),[X]):ve.preferences.provideRefactorNotApplicableReason?(X.actions.push(Ke(Ke({},le),{notApplicableReason:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_string_concatenation)})),[X]):e.emptyArray}function p(ve,ee){var he=e.getTokenAtPosition(ve,ee),F=f(he),x=!T(F).isValidConcatenation;return x&&e.isParenthesizedExpression(F.parent)&&e.isBinaryExpression(F.parent.parent)?F.parent.parent:he}function m(ve,ee){var he=ve.file,F=ve.startPosition,x=p(he,F);switch(ee){case Q:return{edits:G(ve,x)};default:return e.Debug.fail(\"invalid action\")}}function G(ve,ee){var he=f(ee),F=ve.file,x=R(T(he),F),X=e.getTrailingCommentRanges(F.text,he.end);if(X){var $=X[X.length-1],A={pos:X[0].pos,end:$.end};return e.textChanges.ChangeTracker.with(ve,function(y){y.deleteRange(F,A),y.replaceNode(F,he,x)})}else return e.textChanges.ChangeTracker.with(ve,function(y){return y.replaceNode(F,he,x)})}function oe(ve){return ve.operatorToken.kind!==63}function f(ve){var ee=e.findAncestor(ve.parent,function(he){switch(he.kind){case 206:case 207:return!1;case 223:case 221:return!(e.isBinaryExpression(he.parent)&&oe(he.parent));default:return\"quit\"}});return ee||ve}function T(ve){var ee=function(A){if(!e.isBinaryExpression(A))return{nodes:[A],operators:[],validOperators:!0,hasString:e.isStringLiteral(A)||e.isNoSubstitutionTemplateLiteral(A)};var y=ee(A.left),V=y.nodes,L=y.operators,P=y.hasString,k=y.validOperators;if(!(P||e.isStringLiteral(A.right)||e.isTemplateExpression(A.right)))return{nodes:[A],operators:[],hasString:!1,validOperators:!0};var Y=A.operatorToken.kind===39,U=k&&Y;return V.push(A.right),L.push(A.operatorToken),{nodes:V,operators:L,hasString:!0,validOperators:U}},he=ee(ve),F=he.nodes,x=he.operators,X=he.validOperators,$=he.hasString;return{nodes:F,operators:x,isValidConcatenation:X&&$}}var K=function(ve,ee){return function(he,F){he0;){var X=F.shift();e.copyTrailingComments(ve[X],x,ee,3,!1),he(X,x)}}};function se(ve){return ve.replace(/\\\\.|[$`]/g,function(ee){return ee[0]===\"\\\\\"?ee:\"\\\\\"+ee})}function J(ve){var ee=e.isTemplateHead(ve)||e.isTemplateMiddle(ve)?-2:-1;return e.getTextOfNode(ve).slice(1,ee)}function ie(ve,ee){for(var he=[],F=\"\",x=\"\";ve1)return T.getUnionType(e.mapDefined(b,function(J){return J.getReturnType()}))}var se=T.getSignatureFromDeclaration(K);if(se)return T.getReturnTypeOfSignature(se)}})(w=C.inferFunctionReturnType||(C.inferFunctionReturnType={}))})(a=e.refactor||(e.refactor={}))})(ke||(ke={}));var ke;(function(e){e.servicesVersion=\"0.8\";function a(g,ne,ue,We){var Fe=e.isNodeKind(g)?new C(g,ne,ue):g===79?new p(79,ne,ue):g===80?new m(80,ne,ue):new N(g,ne,ue);return Fe.parent=We,Fe.flags=We.flags&50720768,Fe}var C=function(){function g(ne,ue,We){this.pos=ue,this.end=We,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=ne}return g.prototype.assertHasRealPosition=function(ne){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),ne||\"Node must have a real position for this operation\")},g.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},g.prototype.getStart=function(ne,ue){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,ne,ue)},g.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},g.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},g.prototype.getWidth=function(ne){return this.assertHasRealPosition(),this.getEnd()-this.getStart(ne)},g.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},g.prototype.getLeadingTriviaWidth=function(ne){return this.assertHasRealPosition(),this.getStart(ne)-this.pos},g.prototype.getFullText=function(ne){return this.assertHasRealPosition(),(ne||this.getSourceFile()).text.substring(this.pos,this.end)},g.prototype.getText=function(ne){return this.assertHasRealPosition(),ne||(ne=this.getSourceFile()),ne.text.substring(this.getStart(ne),this.getEnd())},g.prototype.getChildCount=function(ne){return this.getChildren(ne).length},g.prototype.getChildAt=function(ne,ue){return this.getChildren(ue)[ne]},g.prototype.getChildren=function(ne){return this.assertHasRealPosition(\"Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine\"),this._children||(this._children=w(this,ne))},g.prototype.getFirstToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne);if(!!ue.length){var We=e.find(ue,function(Fe){return Fe.kind<309||Fe.kind>347});return We.kind<161?We:We.getFirstToken(ne)}},g.prototype.getLastToken=function(ne){this.assertHasRealPosition();var ue=this.getChildren(ne),We=e.lastOrUndefined(ue);if(!!We)return We.kind<161?We:We.getLastToken(ne)},g.prototype.forEachChild=function(ne,ue){return e.forEachChild(this,ne,ue)},g}();function w(g,ne){if(!e.isNodeKind(g.kind))return e.emptyArray;var ue=[];if(e.isJSDocCommentContainingNode(g))return g.forEachChild(function(Be){ue.push(Be)}),ue;e.scanner.setText((ne||g.getSourceFile()).text);var We=g.pos,Fe=function(Be){B(ue,We,Be.pos,g),ue.push(Be),We=Be.end},Z=function(Be){B(ue,We,Be.pos,g),ue.push(E(Be,g)),We=Be.end};return e.forEach(g.jsDoc,Fe),We=g.pos,g.forEachChild(Fe,Z),B(ue,We,g.end,g),e.scanner.setText(void 0),ue}function B(g,ne,ue,We){for(e.scanner.setTextPos(ne);ne=Fe.length&&(Z=this.getEnd()),Z||(Z=Fe[We+1]-1);var Be=this.getFullText();return Be[Z]===`\n`&&Be[Z-1]===\"\\r\"?Z-1:Z},ne.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},ne.prototype.computeNamedDeclarations=function(){var ue=e.createMultiMap();return this.forEachChild(Be),ue;function We(ge){var Re=Z(ge);Re&&ue.add(Re,ge)}function Fe(ge){var Re=ue.get(ge);return Re||ue.set(ge,Re=[]),Re}function Z(ge){var Re=e.getNonAssignedNameOfDeclaration(ge);return Re&&(e.isComputedPropertyName(Re)&&e.isPropertyAccessExpression(Re.expression)?Re.expression.name.text:e.isPropertyName(Re)?e.getNameFromPropertyName(Re):void 0)}function Be(ge){switch(ge.kind){case 256:case 213:case 169:case 168:var Re=ge,ze=Z(Re);if(ze){var Ee=Fe(ze),He=e.lastOrUndefined(Ee);He&&Re.parent===He.parent&&Re.symbol===He.symbol?Re.body&&!He.body&&(Ee[Ee.length-1]=Re):Ee.push(Re)}e.forEachChild(ge,Be);break;case 257:case 226:case 258:case 259:case 260:case 261:case 265:case 275:case 270:case 267:case 268:case 172:case 173:case 182:We(ge),e.forEachChild(ge,Be);break;case 164:if(!e.hasSyntacticModifier(ge,16476))break;case 254:case 203:{var rr=ge;if(e.isBindingPattern(rr.name)){e.forEachChild(rr.name,Be);break}rr.initializer&&Be(rr.initializer)}case 299:case 167:case 166:We(ge);break;case 272:var Ie=ge;Ie.exportClause&&(e.isNamedExports(Ie.exportClause)?e.forEach(Ie.exportClause.elements,Be):Be(Ie.exportClause.name));break;case 266:var _e=ge.importClause;_e&&(_e.name&&We(_e.name),_e.namedBindings&&(_e.namedBindings.kind===268?We(_e.namedBindings):e.forEach(_e.namedBindings.elements,Be)));break;case 221:e.getAssignmentDeclarationKind(ge)!==0&&We(ge);default:e.forEachChild(ge,Be)}}},ne}(C),J=function(){function g(ne,ue,We){this.fileName=ne,this.text=ue,this.skipTrivia=We}return g.prototype.getLineAndCharacterOfPosition=function(ne){return e.getLineAndCharacterOfPosition(this,ne)},g}();function ie(){return{getNodeConstructor:function(){return C},getTokenConstructor:function(){return N},getIdentifierConstructor:function(){return p},getPrivateIdentifierConstructor:function(){return m},getSourceFileConstructor:function(){return se},getSymbolConstructor:function(){return le},getTypeConstructor:function(){return G},getSignatureConstructor:function(){return oe},getSourceMapSourceConstructor:function(){return J}}}function R(g){var ne=!0;for(var ue in g)if(e.hasProperty(g,ue)&&!q(ue)){ne=!1;break}if(ne)return g;var We={};for(var ue in g)if(e.hasProperty(g,ue)){var Fe=q(ue)?ue:ue.charAt(0).toLowerCase()+ue.substr(1);We[Fe]=g[ue]}return We}e.toEditorSettings=R;function q(g){return!g.length||g.charAt(0)===g.charAt(0).toLowerCase()}function O(g){return g?e.map(g,function(ne){return ne.text}).join(\"\"):\"\"}e.displayPartsToString=O;function ve(){return{target:1,jsx:1}}e.getDefaultCompilerOptions=ve;function ee(){return e.codefix.getSupportedErrorCodes()}e.getSupportedCodeFixes=ee;var he=function(){function g(ne,ue){this.host=ne,this.currentDirectory=ne.getCurrentDirectory(),this.fileNameToEntry=new e.Map;var We=ne.getScriptFileNames();e.tracing===null||e.tracing===void 0||e.tracing.push(\"session\",\"initializeHostCache\",{count:We.length});for(var Fe=0,Z=We;Fe=this.throttleWaitMilliseconds?(this.lastCancellationCheckTime=ne,this.hostCancellationToken.isCancellationRequested()):!1},g.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw e.tracing===null||e.tracing===void 0||e.tracing.instant(\"session\",\"cancellationThrown\",{kind:\"ThrottledCancellationToken\"}),new e.OperationCanceledException},g}();e.ThrottledCancellationToken=V;var L=[\"getSemanticDiagnostics\",\"getSuggestionDiagnostics\",\"getCompilerOptionsDiagnostics\",\"getSemanticClassifications\",\"getEncodedSemanticClassifications\",\"getCodeFixesAtPosition\",\"getCombinedCodeFix\",\"applyCodeActionCommand\",\"organizeImports\",\"getEditsForFileRename\",\"getEmitOutput\",\"getApplicableRefactors\",\"getEditsForRefactor\",\"prepareCallHierarchy\",\"provideCallHierarchyIncomingCalls\",\"provideCallHierarchyOutgoingCalls\",\"provideInlayHints\"],P=Ve(Ve([],L,!0),[\"getCompletionsAtPosition\",\"getCompletionEntryDetails\",\"getCompletionEntrySymbol\",\"getSignatureHelpItems\",\"getQuickInfoAtPosition\",\"getDefinitionAtPosition\",\"getDefinitionAndBoundSpan\",\"getImplementationAtPosition\",\"getTypeDefinitionAtPosition\",\"getReferencesAtPosition\",\"findReferences\",\"getOccurrencesAtPosition\",\"getDocumentHighlights\",\"getNavigateToItems\",\"getRenameInfo\",\"findRenameLocations\",\"getApplicableRefactors\"],!1);function k(g,ne,ue){var We,Fe;ne===void 0&&(ne=e.createDocumentRegistry(g.useCaseSensitiveFileNames&&g.useCaseSensitiveFileNames(),g.getCurrentDirectory()));var Z;ue===void 0?Z=e.LanguageServiceMode.Semantic:typeof ue==\"boolean\"?Z=ue?e.LanguageServiceMode.Syntactic:e.LanguageServiceMode.Semantic:Z=ue;var Be=new F(g),ge,Re,ze=0,Ee=g.getCancellationToken?new y(g.getCancellationToken()):A,He=g.getCurrentDirectory();e.maybeSetLocalizedDiagnosticMessages((Fe=g.getLocalizedDiagnosticMessages)===null||Fe===void 0?void 0:Fe.bind(g));function rr(Ai){g.log&&g.log(Ai)}var Ie=e.hostUsesCaseSensitiveFileNames(g),_e=e.createGetCanonicalFileName(Ie),we=e.getSourceMapper({useCaseSensitiveFileNames:function(){return Ie},getCurrentDirectory:function(){return He},getProgram:Ae,fileExists:e.maybeBind(g,g.fileExists),readFile:e.maybeBind(g,g.readFile),getDocumentPositionMapper:e.maybeBind(g,g.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(g,g.getSourceFileLike),log:rr});function de(Ai){var Oi=ge.getSourceFile(Ai);if(!Oi){var ji=new Error(\"Could not find source file: '\".concat(Ai,\"'.\"));throw ji.ProgramFiles=ge.getSourceFiles().map(function(Vi){return Vi.fileName}),ji}return Oi}function ye(){var Ai,Oi,ji;if(e.Debug.assert(Z!==e.LanguageServiceMode.Syntactic),g.getProjectVersion){var Vi=g.getProjectVersion();if(Vi){if(Re===Vi&&!(!((Ai=g.hasChangedAutomaticTypeDirectiveNames)===null||Ai===void 0)&&Ai.call(g)))return;Re=Vi}}var at=g.getTypeRootsVersion?g.getTypeRootsVersion():0;ze!==at&&(rr(\"TypeRoots version has changed; provide new program\"),ge=void 0,ze=at);var At=new he(g,_e),ba=At.getRootFileNames(),$a=g.getCompilationSettings()||ve(),Qa=g.hasInvalidatedResolution||e.returnFalse,ai=e.maybeBind(g,g.hasChangedAutomaticTypeDirectiveNames),Dn=(Oi=g.getProjectReferences)===null||Oi===void 0?void 0:Oi.call(g),ka,Ba={useCaseSensitiveFileNames:Ie,fileExists:Pn,readFile:eo,readDirectory:Rn,trace:e.maybeBind(g,g.trace),getCurrentDirectory:function(){return He},onUnRecoverableConfigFileDiagnostic:e.noop};if(e.isProgramUptoDate(ge,ba,$a,function(En,Wn){return g.getScriptVersion(Wn)},Pn,Qa,ai,kn,Dn))return;var pn={getSourceFile:bo,getSourceFileByPath:Ro,getCancellationToken:function(){return Ee},getCanonicalFileName:_e,useCaseSensitiveFileNames:function(){return Ie},getNewLine:function(){return e.getNewLineCharacter($a,function(){return e.getNewLineOrDefaultFromHost(g)})},getDefaultLibFileName:function(En){return g.getDefaultLibFileName(En)},writeFile:e.noop,getCurrentDirectory:function(){return He},fileExists:Pn,readFile:eo,getSymlinkCache:e.maybeBind(g,g.getSymlinkCache),realpath:e.maybeBind(g,g.realpath),directoryExists:function(En){return e.directoryProbablyExists(En,g)},getDirectories:function(En){return g.getDirectories?g.getDirectories(En):[]},readDirectory:Rn,onReleaseOldSourceFile:Da,onReleaseParsedCommandLine:Kn,hasInvalidatedResolution:Qa,hasChangedAutomaticTypeDirectiveNames:ai,trace:Ba.trace,resolveModuleNames:e.maybeBind(g,g.resolveModuleNames),getModuleResolutionCache:e.maybeBind(g,g.getModuleResolutionCache),resolveTypeReferenceDirectives:e.maybeBind(g,g.resolveTypeReferenceDirectives),useSourceOfProjectReferenceRedirect:e.maybeBind(g,g.useSourceOfProjectReferenceRedirect),getParsedCommandLine:kn};(ji=g.setCompilerHost)===null||ji===void 0||ji.call(g,pn);var Cn=ne.getKeyForCompilationSettings($a),Bi={rootNames:ba,options:$a,host:pn,oldProgram:ge,projectReferences:Dn};ge=e.createProgram(Bi),At=void 0,ka=void 0,we.clearCache(),ge.getTypeChecker();return;function kn(En){var Wn=e.toPath(En,He,_e),to=ka==null?void 0:ka.get(Wn);if(to!==void 0)return to||void 0;var Co=g.getParsedCommandLine?g.getParsedCommandLine(En):xn(En);return(ka||(ka=new e.Map)).set(Wn,Co||!1),Co}function xn(En){var Wn=bo(En,100);if(!!Wn)return Wn.path=e.toPath(En,He,_e),Wn.resolvedPath=Wn.path,Wn.originalFileName=Wn.fileName,e.parseJsonSourceFileConfigFileContent(Wn,Ba,e.getNormalizedAbsolutePath(e.getDirectoryPath(En),He),void 0,e.getNormalizedAbsolutePath(En,He))}function Kn(En,Wn,to){var Co;g.getParsedCommandLine?(Co=g.onReleaseParsedCommandLine)===null||Co===void 0||Co.call(g,En,Wn,to):Wn&&Da(Wn.sourceFile,to)}function Pn(En){var Wn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(Wn);return to?!e.isString(to):!!g.fileExists&&g.fileExists(En)}function eo(En){var Wn=e.toPath(En,He,_e),to=At&&At.getEntryByPath(Wn);return to?e.isString(to)?void 0:e.getSnapshotText(to.scriptSnapshot):g.readFile&&g.readFile(En)}function Rn(En,Wn,to,Co,Ko){return e.Debug.checkDefined(g.readDirectory,\"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'\"),g.readDirectory(En,Wn,to,Co,Ko)}function Da(En,Wn){var to=ne.getKeyForCompilationSettings(Wn);ne.releaseDocumentWithKey(En.resolvedPath,to,En.scriptKind)}function bo(En,Wn,to,Co){return Ro(En,e.toPath(En,He,_e),Wn,to,Co)}function Ro(En,Wn,to,Co,Ko){e.Debug.assert(At!==void 0,\"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.\");var Oo=At&&At.getOrCreateEntryByPath(En,Wn);if(!!Oo){if(!Ko){var no=ge&&ge.getSourceFileByPath(Wn);if(no){if(Oo.scriptKind===no.scriptKind)return ne.updateDocumentWithKey(En,Wn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind);ne.releaseDocumentWithKey(no.resolvedPath,ne.getKeyForCompilationSettings(ge.getCompilerOptions()),no.scriptKind)}}return ne.acquireDocumentWithKey(En,Wn,g,Cn,Oo.scriptSnapshot,Oo.version,Oo.scriptKind)}}}function Ae(){if(Z===e.LanguageServiceMode.Syntactic){e.Debug.assert(ge===void 0);return}return ye(),ge}function er(){var Ai;return(Ai=g.getPackageJsonAutoImportProvider)===null||Ai===void 0?void 0:Ai.call(g)}function ir(){ge=void 0}function Cr(){if(ge){var Ai=ne.getKeyForCompilationSettings(ge.getCompilerOptions());e.forEach(ge.getSourceFiles(),function(Oi){return ne.releaseDocumentWithKey(Oi.resolvedPath,Ai,Oi.scriptKind)}),ge=void 0}g=void 0}function Ye(Ai){return ye(),ge.getSyntacticDiagnostics(de(Ai),Ee).slice()}function Br(Ai){ye();var Oi=de(Ai),ji=ge.getSemanticDiagnostics(Oi,Ee);if(!e.getEmitDeclarations(ge.getCompilerOptions()))return ji.slice();var Vi=ge.getDeclarationDiagnostics(Oi,Ee);return Ve(Ve([],ji,!0),Vi,!0)}function Er(Ai){return ye(),e.computeSuggestionDiagnostics(de(Ai),ge,Ee)}function Ne(){return ye(),Ve(Ve([],ge.getOptionsDiagnostics(Ee),!0),ge.getGlobalDiagnostics(Ee),!0)}function n(Ai,Oi,ji,Vi){ji===void 0&&(ji=e.emptyOptions);var at=Ke(Ke({},e.identity(ji)),{includeCompletionsForModuleExports:ji.includeCompletionsForModuleExports||ji.includeExternalModuleExports,includeCompletionsWithInsertText:ji.includeCompletionsWithInsertText||ji.includeInsertTextCompletions});return ye(),e.Completions.getCompletionsAtPosition(g,ge,rr,de(Ai),Oi,at,ji.triggerCharacter,ji.triggerKind,Ee,Vi&&e.formatting.getFormatContext(Vi,g))}function lr(Ai,Oi,ji,Vi,at,At,ba){return At===void 0&&(At=e.emptyOptions),ye(),e.Completions.getCompletionEntryDetails(ge,rr,de(Ai),Oi,{name:ji,source:at,data:ba},g,Vi&&e.formatting.getFormatContext(Vi,g),At,Ee)}function be(Ai,Oi,ji,Vi,at){return at===void 0&&(at=e.emptyOptions),ye(),e.Completions.getCompletionEntrySymbol(ge,rr,de(Ai),Oi,{name:ji,source:Vi},g,at)}function Ge(Ai,Oi){ye();var ji=de(Ai),Vi=e.getTouchingPropertyName(ji,Oi);if(Vi!==ji){var at=ge.getTypeChecker(),At=ur(Vi),ba=l(At,at);if(!ba||at.isUnknownSymbol(ba)){var $a=yr(ji,At,Oi)?at.getTypeAtLocation(At):void 0;return $a&&{kind:\"\",kindModifiers:\"\",textSpan:e.createTextSpanFromNode(At,ji),displayParts:at.runWithCancellationToken(Ee,function(pn){return e.typeToDisplayParts(pn,$a,e.getContainerNode(At))}),documentation:$a.symbol?$a.symbol.getDocumentationComment(at):void 0,tags:$a.symbol?$a.symbol.getJsDocTags(at):void 0}}var Qa=at.runWithCancellationToken(Ee,function(pn){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(pn,ba,ji,e.getContainerNode(At),At)}),ai=Qa.symbolKind,Dn=Qa.displayParts,ka=Qa.documentation,Ba=Qa.tags;return{kind:ai,kindModifiers:e.SymbolDisplay.getSymbolModifiers(at,ba),textSpan:e.createTextSpanFromNode(At,ji),displayParts:Dn,documentation:ka,tags:Ba}}}function ur(Ai){return e.isNewExpression(Ai.parent)&&Ai.pos===Ai.parent.pos?Ai.parent.expression:e.isNamedTupleMember(Ai.parent)&&Ai.pos===Ai.parent.pos||e.isImportMeta(Ai.parent)&&Ai.parent.name===Ai?Ai.parent:Ai}function yr(Ai,Oi,ji){switch(Oi.kind){case 79:return!e.isLabelName(Oi)&&!e.isTagName(Oi)&&!e.isConstTypeReference(Oi.parent);case 206:case 161:return!e.isInComment(Ai,ji);case 108:case 192:case 106:case 197:return!0;case 231:return e.isImportMeta(Oi);default:return!1}}function Ir(Ai,Oi,ji,Vi){return ye(),e.GoToDefinition.getDefinitionAtPosition(ge,de(Ai),Oi,ji,Vi)}function wr(Ai,Oi){return ye(),e.GoToDefinition.getDefinitionAndBoundSpan(ge,de(Ai),Oi)}function Ur(Ai,Oi){return ye(),e.GoToDefinition.getTypeDefinitionAtPosition(ge.getTypeChecker(),de(Ai),Oi)}function ii(Ai,Oi){return ye(),e.FindAllReferences.getImplementationsAtPosition(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function mi(Ai,Oi){return e.flatMap(pe(Ai,Oi,[Ai]),function(ji){return ji.highlightSpans.map(function(Vi){return Ke(Ke({fileName:ji.fileName,textSpan:Vi.textSpan,isWriteAccess:Vi.kind===\"writtenReference\"},Vi.isInString&&{isInString:!0}),Vi.contextSpan&&{contextSpan:Vi.contextSpan})})})}function pe(Ai,Oi,ji){var Vi=e.normalizePath(Ai);e.Debug.assert(ji.some(function(ba){return e.normalizePath(ba)===Vi})),ye();var at=e.mapDefined(ji,function(ba){return ge.getSourceFile(ba)}),At=de(Ai);return e.DocumentHighlights.getDocumentHighlights(ge,Ee,At,Oi,at)}function or(Ai,Oi,ji,Vi,at){ye();var At=de(Ai),ba=e.getAdjustedRenameLocation(e.getTouchingPropertyName(At,Oi));if(!!e.Rename.nodeIsEligibleForRename(ba))if(e.isIdentifier(ba)&&(e.isJsxOpeningElement(ba.parent)||e.isJsxClosingElement(ba.parent))&&e.isIntrinsicJsxName(ba.escapedText)){var $a=ba.parent.parent,Qa=$a.openingElement,ai=$a.closingElement;return[Qa,ai].map(function(Dn){var ka=e.createTextSpanFromNode(Dn.tagName,At);return Ke({fileName:At.fileName,textSpan:ka},e.FindAllReferences.toContextSpan(ka,At,Dn.parent))})}else return si(ba,Oi,{findInStrings:ji,findInComments:Vi,providePrefixAndSuffixTextForRename:at,use:2},function(Dn,ka,Ba){return e.FindAllReferences.toRenameLocation(Dn,ka,Ba,at||!1)})}function qr(Ai,Oi){return ye(),si(e.getTouchingPropertyName(de(Ai),Oi),Oi,{use:1},e.FindAllReferences.toReferenceEntry)}function si(Ai,Oi,ji,Vi){ye();var at=ji&&ji.use===2?ge.getSourceFiles().filter(function(At){return!ge.isSourceFileDefaultLibrary(At)}):ge.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(ge,Ee,at,Ai,Oi,ji,Vi)}function Di(Ai,Oi){return ye(),e.FindAllReferences.findReferencedSymbols(ge,Ee,ge.getSourceFiles(),de(Ai),Oi)}function wi(Ai){return ye(),e.FindAllReferences.Core.getReferencesForFileName(Ai,ge,ge.getSourceFiles()).map(e.FindAllReferences.toReferenceEntry)}function Xi(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=!1),ye();var at=ji?[de(ji)]:ge.getSourceFiles();return e.NavigateTo.getNavigateToItems(at,ge.getTypeChecker(),Ee,Ai,Oi,Vi)}function et(Ai,Oi,ji){ye();var Vi=de(Ai),at=g.getCustomTransformers&&g.getCustomTransformers();return e.getFileEmitOutput(ge,Vi,!!Oi,Ee,at,ji)}function Gi(Ai,Oi,ji){var Vi=ji===void 0?e.emptyOptions:ji,at=Vi.triggerReason;ye();var At=de(Ai);return e.SignatureHelp.getSignatureHelpItems(ge,At,Oi,at,Ee)}function Wt(Ai){return Be.getCurrentSourceFile(Ai)}function Zt(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.getTouchingPropertyName(Vi,Oi);if(at!==Vi){switch(at.kind){case 206:case 161:case 10:case 95:case 110:case 104:case 106:case 108:case 192:case 79:break;default:return}for(var At=at;;)if(e.isRightSideOfPropertyAccess(At)||e.isRightSideOfQualifiedName(At))At=At.parent;else if(e.isNameOfModuleDeclaration(At))if(At.parent.parent.kind===261&&At.parent.parent.body===At.parent)At=At.parent.parent.name;else break;else break;return e.createTextSpanFromBounds(At.getStart(),at.getEnd())}}function _r(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai);return e.BreakpointResolver.spanInSourceFileAtLocation(ji,Oi)}function pi(Ai){return e.NavigationBar.getNavigationBarItems(Be.getCurrentSourceFile(Ai),Ee)}function ae(Ai){return e.NavigationBar.getNavigationTree(Be.getCurrentSourceFile(Ai),Ee)}function Xe(Ai,Oi,ji){ye();var Vi=ji||\"original\";return Vi===\"2020\"?e.classifier.v2020.getSemanticClassifications(ge,Ee,de(Ai),Oi):e.getSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi)}function Jr(Ai,Oi,ji){ye();var Vi=ji||\"original\";return Vi===\"original\"?e.getEncodedSemanticClassifications(ge.getTypeChecker(),Ee,de(Ai),ge.getClassifiableNames(),Oi):e.classifier.v2020.getEncodedSemanticClassifications(ge,Ee,de(Ai),Oi)}function ti(Ai,Oi){return e.getSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Ze(Ai,Oi){return e.getEncodedSyntacticClassifications(Ee,Be.getCurrentSourceFile(Ai),Oi)}function Sr(Ai){var Oi=Be.getCurrentSourceFile(Ai);return e.OutliningElementsCollector.collectElements(Oi,Ee)}var zr=new e.Map(e.getEntries((We={},We[18]=19,We[20]=21,We[22]=23,We[31]=29,We)));zr.forEach(function(Ai,Oi){return zr.set(Ai.toString(),Number(Oi))});function Wr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.getTouchingToken(ji,Oi),at=Vi.getStart(ji)===Oi?zr.get(Vi.kind.toString()):void 0,At=at&&e.findChildOfKind(Vi.parent,at,ji);return At?[e.createTextSpanFromNode(Vi,ji),e.createTextSpanFromNode(At,ji)].sort(function(ba,$a){return ba.start-$a.start}):e.emptyArray}function Je(Ai,Oi,ji){var Vi=e.timestamp(),at=R(ji),At=Be.getCurrentSourceFile(Ai);rr(\"getIndentationAtPosition: getCurrentSourceFile: \"+(e.timestamp()-Vi)),Vi=e.timestamp();var ba=e.formatting.SmartIndenter.getIndentation(Oi,At,at);return rr(\"getIndentationAtPosition: computeIndentation : \"+(e.timestamp()-Vi)),ba}function xe(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai);return e.formatting.formatSelection(Oi,ji,at,e.formatting.getFormatContext(R(Vi),g))}function vr(Ai,Oi){return e.formatting.formatDocument(Be.getCurrentSourceFile(Ai),e.formatting.getFormatContext(R(Oi),g))}function mr(Ai,Oi,ji,Vi){var at=Be.getCurrentSourceFile(Ai),At=e.formatting.getFormatContext(R(Vi),g);if(!e.isInComment(at,Oi))switch(ji){case\"{\":return e.formatting.formatOnOpeningCurly(Oi,at,At);case\"}\":return e.formatting.formatOnClosingCurly(Oi,at,At);case\";\":return e.formatting.formatOnSemicolon(Oi,at,At);case`\n`:return e.formatting.formatOnEnter(Oi,at,At)}return[]}function Ar(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai),$a=e.createTextSpanFromBounds(Oi,ji),Qa=e.formatting.getFormatContext(at,g);return e.flatMap(e.deduplicate(Vi,e.equateValues,e.compareValues),function(ai){return Ee.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:ai,sourceFile:ba,span:$a,program:ge,host:g,cancellationToken:Ee,formatContext:Qa,preferences:At})})}function Oe(Ai,Oi,ji,Vi){Vi===void 0&&(Vi=e.emptyOptions),ye(),e.Debug.assert(Ai.type===\"file\");var at=de(Ai.fileName),At=e.formatting.getFormatContext(ji,g);return e.codefix.getAllFixes({fixId:Oi,sourceFile:at,program:ge,host:g,cancellationToken:Ee,formatContext:At,preferences:Vi})}function nr(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye(),e.Debug.assert(Ai.type===\"file\");var Vi=de(Ai.fileName),at=e.formatting.getFormatContext(Oi,g);return e.OrganizeImports.organizeImports(Vi,at,g,ge,ji,Ai.skipDestructiveCodeActions)}function Mr(Ai,Oi,ji,Vi){return Vi===void 0&&(Vi=e.emptyOptions),e.getEditsForFileRename(Ae(),Ai,Oi,g,e.formatting.getFormatContext(ji,g),Vi,we)}function Pe(Ai,Oi){var ji=typeof Ai==\"string\"?Oi:Ai;return e.isArray(ji)?Promise.all(ji.map(function(Vi){return Ue(Vi)})):Ue(ji)}function Ue(Ai){var Oi=function(ji){return e.toPath(ji,He,_e)};return e.Debug.assertEqual(Ai.type,\"install package\"),g.installPackage?g.installPackage({fileName:Oi(Ai.file),packageName:Ai.packageName}):Promise.reject(\"Host does not implement `installPackage`\")}function fr(Ai,Oi,ji){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(g),Be.getCurrentSourceFile(Ai),Oi,ji)}function De(Ai,Oi,ji){if(ji===60)return!1;var Vi=Be.getCurrentSourceFile(Ai);if(e.isInString(Vi,Oi))return!1;if(e.isInsideJsxElementOrAttribute(Vi,Oi))return ji===123;if(e.isInTemplateString(Vi,Oi))return!1;switch(ji){case 39:case 34:case 96:return!e.isInComment(Vi,Oi)}return!0}function gr(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=e.findPrecedingToken(Oi,ji);if(!!Vi){var at=Vi.kind===31&&e.isJsxOpeningElement(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxElement(Vi.parent)?Vi.parent:void 0;if(at&&Wi(at))return{newText:\"\")};var At=Vi.kind===31&&e.isJsxOpeningFragment(Vi.parent)?Vi.parent.parent:e.isJsxText(Vi)&&e.isJsxFragment(Vi.parent)?Vi.parent:void 0;if(At&&ct(At))return{newText:\"\"}}}function Vr(Ai,Oi){return{lineStarts:Ai.getLineStarts(),firstLine:Ai.getLineAndCharacterOfPosition(Oi.pos).line,lastLine:Ai.getLineAndCharacterOfPosition(Oi.end).line}}function Tr(Ai,Oi,ji){for(var Vi=Be.getCurrentSourceFile(Ai),at=[],At=Vr(Vi,Oi),ba=At.lineStarts,$a=At.firstLine,Qa=At.lastLine,ai=ji||!1,Dn=Number.MAX_VALUE,ka=new e.Map,Ba=new RegExp(/\\S/),pn=e.isInsideJsxElement(Vi,ba[$a]),Cn=pn?\"{/*\":\"//\",Bi=$a;Bi<=Qa;Bi++){var kn=Vi.text.substring(ba[Bi],Vi.getLineEndOfPosition(ba[Bi])),xn=Ba.exec(kn);xn&&(Dn=Math.min(Dn,xn.index),ka.set(Bi.toString(),xn.index),kn.substr(xn.index,Cn.length)!==Cn&&(ai=ji===void 0||ji))}for(var Bi=$a;Bi<=Qa;Bi++)if(!($a!==Qa&&ba[Bi]===Oi.end)){var Kn=ka.get(Bi.toString());Kn!==void 0&&(pn?at.push.apply(at,vi(Ai,{pos:ba[Bi]+Dn,end:Vi.getLineEndOfPosition(ba[Bi])},ai,pn)):ai?at.push({newText:Cn,span:{length:0,start:ba[Bi]+Dn}}):Vi.text.substr(ba[Bi]+Kn,Cn.length)===Cn&&at.push({newText:\"\",span:{length:Cn.length,start:ba[Bi]+Kn}}))}return at}function vi(Ai,Oi,ji,Vi){for(var at,At=Be.getCurrentSourceFile(Ai),ba=[],$a=At.text,Qa=!1,ai=ji||!1,Dn=[],ka=Oi.pos,Ba=Vi!==void 0?Vi:e.isInsideJsxElement(At,ka),pn=Ba?\"{/*\":\"/*\",Cn=Ba?\"*/}\":\"*/\",Bi=Ba?\"\\\\{\\\\/\\\\*\":\"\\\\/\\\\*\",kn=Ba?\"\\\\*\\\\/\\\\}\":\"\\\\*\\\\/\";ka<=Oi.end;){var xn=$a.substr(ka,pn.length)===pn?pn.length:0,Kn=e.isInComment(At,ka+xn);if(Kn)Ba&&(Kn.pos--,Kn.end++),Dn.push(Kn.pos),Kn.kind===3&&Dn.push(Kn.end),Qa=!0,ka=Kn.end+1;else{var Pn=$a.substring(ka,Oi.end).search(\"(\".concat(Bi,\")|(\").concat(kn,\")\"));ai=ji!==void 0?ji:ai||!e.isTextWhiteSpaceLike($a,ka,Pn===-1?Oi.end:ka+Pn),ka=Pn===-1?Oi.end+1:ka+Pn+Cn.length}}if(ai||!Qa){((at=e.isInComment(At,Oi.pos))===null||at===void 0?void 0:at.kind)!==2&&e.insertSorted(Dn,Oi.pos,e.compareValues),e.insertSorted(Dn,Oi.end,e.compareValues);var eo=Dn[0];$a.substr(eo,pn.length)!==pn&&ba.push({newText:pn,span:{length:0,start:eo}});for(var Rn=1;Rn0?Ro-Cn.length:0,xn=$a.substr(En,Cn.length)===Cn?Cn.length:0;ba.push({newText:\"\",span:{length:pn.length,start:Ro-xn}})}return ba}function Ui(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=Vr(ji,Oi),at=Vi.firstLine,At=Vi.lastLine;return at===At&&Oi.pos!==Oi.end?vi(Ai,Oi,!0):Tr(Ai,Oi,!0)}function Yi(Ai,Oi){var ji=Be.getCurrentSourceFile(Ai),Vi=[],at=Oi.pos,At=Oi.end;at===At&&(At+=e.isInsideJsxElement(ji,at)?2:1);for(var ba=at;ba<=At;ba++){var $a=e.isInComment(ji,ba);if($a){switch($a.kind){case 2:Vi.push.apply(Vi,Tr(Ai,{end:$a.end,pos:$a.pos+1},!1));break;case 3:Vi.push.apply(Vi,vi(Ai,{end:$a.end,pos:$a.pos+1},!1))}ba=$a.end+1}}return Vi}function Wi(Ai){var Oi=Ai.openingElement,ji=Ai.closingElement,Vi=Ai.parent;return!e.tagNamesAreEquivalent(Oi.tagName,ji.tagName)||e.isJsxElement(Vi)&&e.tagNamesAreEquivalent(Oi.tagName,Vi.openingElement.tagName)&&Wi(Vi)}function ct(Ai){var Oi=Ai.closingFragment,ji=Ai.parent;return!!(Oi.flags&131072)||e.isJsxFragment(ji)&&ct(ji)}function Li(Ai,Oi,ji){var Vi=Be.getCurrentSourceFile(Ai),at=e.formatting.getRangeOfEnclosingComment(Vi,Oi);return at&&(!ji||at.kind===3)?e.createTextSpanFromRange(at):void 0}function nt(Ai,Oi){ye();var ji=de(Ai);Ee.throwIfCancellationRequested();var Vi=ji.text,at=[];if(Oi.length>0&&!kn(ji.fileName))for(var At=Cn(),ba=void 0;ba=At.exec(Vi);){Ee.throwIfCancellationRequested();var $a=3;e.Debug.assert(ba.length===Oi.length+$a);var Qa=ba[1],ai=ba.index+Qa.length;if(!!e.isInComment(ji,ai)){for(var Dn=void 0,ka=0;ka=97&&xn<=122||xn>=65&&xn<=90||xn>=48&&xn<=57}function kn(xn){return e.stringContains(xn,\"/node_modules/\")}}function Mt(Ai,Oi,ji){return ye(),e.Rename.getRenameInfo(ge,de(Ai),Oi,ji)}function xt(Ai,Oi,ji,Vi,at,At){var ba=typeof Oi==\"number\"?[Oi,void 0]:[Oi.pos,Oi.end],$a=ba[0],Qa=ba[1];return{file:Ai,startPosition:$a,endPosition:Qa,program:Ae(),host:g,formatContext:e.formatting.getFormatContext(Vi,g),cancellationToken:Ee,preferences:ji,triggerReason:at,kind:At}}function ut(Ai,Oi,ji){return{file:Ai,program:Ae(),host:g,span:Oi,preferences:ji,cancellationToken:Ee}}function Dt(Ai,Oi){return e.SmartSelectionRange.getSmartSelectionRange(Oi,Be.getCurrentSourceFile(Ai))}function Rt(Ai,Oi,ji,Vi,at){ji===void 0&&(ji=e.emptyOptions),ye();var At=de(Ai);return e.refactor.getApplicableRefactors(xt(At,Oi,ji,e.emptyOptions,Vi,at))}function Ii(Ai,Oi,ji,Vi,at,At){At===void 0&&(At=e.emptyOptions),ye();var ba=de(Ai);return e.refactor.getEditsForRefactor(xt(ba,ji,At,Oi),Vi,at)}function Ki(Ai,Oi){return Oi===0?{line:0,character:0}:we.toLineColumnOffset(Ai,Oi)}function Fi(Ai,Oi){ye();var ji=e.CallHierarchy.resolveCallHierarchyDeclaration(ge,e.getTouchingPropertyName(de(Ai),Oi));return ji&&e.mapOneOrMany(ji,function(Vi){return e.CallHierarchy.createCallHierarchyItem(ge,Vi)})}function ui(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getIncomingCalls(ge,Vi,Ee):[]}function Bt(Ai,Oi){ye();var ji=de(Ai),Vi=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(ge,Oi===0?ji:e.getTouchingPropertyName(ji,Oi)));return Vi?e.CallHierarchy.getOutgoingCalls(ge,Vi):[]}function wt(Ai,Oi,ji){ji===void 0&&(ji=e.emptyOptions),ye();var Vi=de(Ai);return e.InlayHints.provideInlayHints(ut(Vi,Oi,ji))}var na={dispose:Cr,cleanupSemanticCache:ir,getSyntacticDiagnostics:Ye,getSemanticDiagnostics:Br,getSuggestionDiagnostics:Er,getCompilerOptionsDiagnostics:Ne,getSyntacticClassifications:ti,getSemanticClassifications:Xe,getEncodedSyntacticClassifications:Ze,getEncodedSemanticClassifications:Jr,getCompletionsAtPosition:n,getCompletionEntryDetails:lr,getCompletionEntrySymbol:be,getSignatureHelpItems:Gi,getQuickInfoAtPosition:Ge,getDefinitionAtPosition:Ir,getDefinitionAndBoundSpan:wr,getImplementationAtPosition:ii,getTypeDefinitionAtPosition:Ur,getReferencesAtPosition:qr,findReferences:Di,getFileReferences:wi,getOccurrencesAtPosition:mi,getDocumentHighlights:pe,getNameOrDottedNameSpan:Zt,getBreakpointStatementAtPosition:_r,getNavigateToItems:Xi,getRenameInfo:Mt,getSmartSelectionRange:Dt,findRenameLocations:or,getNavigationBarItems:pi,getNavigationTree:ae,getOutliningSpans:Sr,getTodoComments:nt,getBraceMatchingAtPosition:Wr,getIndentationAtPosition:Je,getFormattingEditsForRange:xe,getFormattingEditsForDocument:vr,getFormattingEditsAfterKeystroke:mr,getDocCommentTemplateAtPosition:fr,isValidBraceCompletionAtPosition:De,getJsxClosingTagAtPosition:gr,getSpanOfEnclosingComment:Li,getCodeFixesAtPosition:Ar,getCombinedCodeFix:Oe,applyCodeActionCommand:Pe,organizeImports:nr,getEditsForFileRename:Mr,getEmitOutput:et,getNonBoundSourceFile:Wt,getProgram:Ae,getAutoImportProvider:er,getApplicableRefactors:Rt,getEditsForRefactor:Ii,toLineColumnOffset:Ki,getSourceMapper:function(){return we},clearSourceMapperCache:function(){return we.clearCache()},prepareCallHierarchy:Fi,provideCallHierarchyIncomingCalls:ui,provideCallHierarchyOutgoingCalls:Bt,toggleLineComment:Tr,toggleMultilineComment:vi,commentSelection:Ui,uncommentSelection:Yi,provideInlayHints:wt};switch(Z){case e.LanguageServiceMode.Semantic:break;case e.LanguageServiceMode.PartialSemantic:L.forEach(function(Ai){return na[Ai]=function(){throw new Error(\"LanguageService Operation: \".concat(Ai,\" not allowed in LanguageServiceMode.PartialSemantic\"))}});break;case e.LanguageServiceMode.Syntactic:P.forEach(function(Ai){return na[Ai]=function(){throw new Error(\"LanguageService Operation: \".concat(Ai,\" not allowed in LanguageServiceMode.Syntactic\"))}});break;default:e.Debug.assertNever(Z)}return na}e.createLanguageService=k;function Y(g){return g.nameTable||U(g),g.nameTable}e.getNameTable=Y;function U(g){var ne=g.nameTable=new e.Map;g.forEachChild(function ue(We){if(e.isIdentifier(We)&&!e.isTagName(We)&&We.escapedText||e.isStringOrNumericLiteralLike(We)&&j(We)){var Fe=e.getEscapedTextOfIdentifierOrLiteral(We);ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}else if(e.isPrivateIdentifier(We)){var Fe=We.escapedText;ne.set(Fe,ne.get(Fe)===void 0?We.pos:-1)}if(e.forEachChild(We,ue),e.hasJSDocNodes(We))for(var Z=0,Be=We.jsDoc;Zle){var N=e.findPrecedingToken(Q.pos,B);if(!N||B.getLineAndCharacterOfPosition(N.getEnd()).line!==le)return;Q=N}if(Q.flags&16777216)return;return K(Q);function p(b,se){var J=b.decorators?e.skipTrivia(B.text,b.decorators.end):b.getStart(B);return e.createTextSpanFromBounds(J,(se||b).getEnd())}function m(b,se){return p(b,e.findNextToken(se,se.parent,B))}function G(b,se){return b&&le===B.getLineAndCharacterOfPosition(b.getStart(B)).line?K(b):K(se)}function oe(b){return e.createTextSpanFromBounds(e.skipTrivia(B.text,b.pos),b.end)}function f(b){return K(e.findPrecedingToken(b.pos,B))}function T(b){return K(e.findNextToken(b,b.parent,B))}function K(b){if(b){var se=b.parent;switch(b.kind){case 237:return he(b.declarationList.declarations[0]);case 254:case 167:case 166:return he(b);case 164:return x(b);case 256:case 169:case 168:case 172:case 173:case 171:case 213:case 214:return $(b);case 235:if(e.isFunctionBlock(b))return A(b);case 262:return y(b);case 292:return y(b.block);case 238:return p(b.expression);case 247:return p(b.getChildAt(0),b.expression);case 241:return m(b,b.expression);case 240:return K(b.statement);case 253:return p(b.getChildAt(0));case 239:return m(b,b.expression);case 250:return K(b.statement);case 246:case 245:return p(b.getChildAt(0),b.label);case 242:return L(b);case 243:return m(b,b.expression);case 244:return V(b);case 249:return m(b,b.expression);case 289:case 290:return K(b.statements[0]);case 252:return y(b.tryBlock);case 251:return p(b,b.expression);case 271:return p(b,b.expression);case 265:return p(b,b.moduleReference);case 266:return p(b,b.moduleSpecifier);case 272:return p(b,b.moduleSpecifier);case 261:if(e.getModuleInstanceState(b)!==1)return;case 257:case 260:case 299:case 203:return p(b);case 248:return K(b.statement);case 165:return oe(se.decorators);case 201:case 202:return P(b);case 258:case 259:return;case 26:case 1:return G(e.findPrecedingToken(b.pos,B));case 27:return f(b);case 18:return Y(b);case 19:return U(b);case 23:return j(b);case 20:return H(b);case 21:return I(b);case 58:return l(b);case 31:case 29:return d(b);case 115:return D(b);case 91:case 83:case 96:return T(b);case 160:return fe(b);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(b))return k(b);if((b.kind===79||b.kind===225||b.kind===296||b.kind===297)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(se))return p(b);if(b.kind===221){var J=b,ie=J.left,R=J.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie))return k(ie);if(R.kind===63&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent))return p(b);if(R.kind===27)return K(ie)}if(e.isExpressionNode(b))switch(se.kind){case 240:return f(b);case 165:return K(b.parent);case 242:case 244:return p(b);case 221:if(b.parent.operatorToken.kind===27)return p(b);break;case 214:if(b.parent.body===b)return p(b);break}switch(b.parent.kind){case 296:if(b.parent.name===b&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(b.parent.parent))return K(b.parent.initializer);break;case 211:if(b.parent.type===b)return T(b.parent.type);break;case 254:case 164:{var q=b.parent,O=q.initializer,ve=q.type;if(O===b||ve===b||e.isAssignmentOperator(b.kind))return f(b);break}case 221:{var ie=b.parent.left;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(ie)&&b!==ie)return f(b);break}default:if(e.isFunctionLike(b.parent)&&b.parent.type===b)return f(b)}return K(b.parent)}}function ee(g){return e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]===g?p(e.findPrecedingToken(g.pos,B,g.parent),g):p(g)}function he(g){if(g.parent.parent.kind===243)return K(g.parent.parent);var ne=g.parent;if(e.isBindingPattern(g.name))return P(g.name);if(g.initializer||e.hasSyntacticModifier(g,1)||ne.parent.kind===244)return ee(g);if(e.isVariableDeclarationList(g.parent)&&g.parent.declarations[0]!==g)return K(e.findPrecedingToken(g.pos,B,g.parent))}function F(g){return!!g.initializer||g.dotDotDotToken!==void 0||e.hasSyntacticModifier(g,12)}function x(g){if(e.isBindingPattern(g.name))return P(g.name);if(F(g))return p(g);var ne=g.parent,ue=ne.parameters.indexOf(g);return e.Debug.assert(ue!==-1),ue!==0?x(ne.parameters[ue-1]):K(ne.body)}function X(g){return e.hasSyntacticModifier(g,1)||g.parent.kind===257&&g.kind!==171}function $(g){if(!!g.body)return X(g)?p(g):K(g.body)}function A(g){var ne=g.statements.length?g.statements[0]:g.getLastToken();return X(g.parent)?G(g.parent,ne):K(ne)}function y(g){switch(g.parent.kind){case 261:if(e.getModuleInstanceState(g.parent)!==1)return;case 241:case 239:case 243:return G(g.parent,g.statements[0]);case 242:case 244:return G(e.findPrecedingToken(g.pos,B,g.parent),g.statements[0])}return K(g.statements[0])}function V(g){if(g.initializer.kind===255){var ne=g.initializer;if(ne.declarations.length>0)return K(ne.declarations[0])}else return K(g.initializer)}function L(g){if(g.initializer)return V(g);if(g.condition)return p(g.condition);if(g.incrementor)return p(g.incrementor)}function P(g){var ne=e.forEach(g.elements,function(ue){return ue.kind!==227?ue:void 0});return ne?K(ne):g.parent.kind===203?p(g.parent):ee(g.parent)}function k(g){e.Debug.assert(g.kind!==202&&g.kind!==201);var ne=g.kind===204?g.elements:g.properties,ue=e.forEach(ne,function(We){return We.kind!==227?We:void 0});return ue?K(ue):p(g.parent.kind===221?g.parent:g)}function Y(g){switch(g.parent.kind){case 260:var ne=g.parent;return G(e.findPrecedingToken(g.pos,B,g.parent),ne.members.length?ne.members[0]:ne.getLastToken(B));case 257:var ue=g.parent;return G(e.findPrecedingToken(g.pos,B,g.parent),ue.members.length?ue.members[0]:ue.getLastToken(B));case 263:return G(g.parent.parent,g.parent.clauses[0])}return K(g.parent)}function U(g){switch(g.parent.kind){case 262:if(e.getModuleInstanceState(g.parent.parent)!==1)return;case 260:case 257:return p(g);case 235:if(e.isFunctionBlock(g.parent))return p(g);case 292:return K(e.lastOrUndefined(g.parent.statements));case 263:var ne=g.parent,ue=e.lastOrUndefined(ne.clauses);return ue?K(e.lastOrUndefined(ue.statements)):void 0;case 201:var We=g.parent;return K(e.lastOrUndefined(We.elements)||We);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var Fe=g.parent;return p(e.lastOrUndefined(Fe.properties)||Fe)}return K(g.parent)}}function j(g){switch(g.parent.kind){case 202:var ne=g.parent;return p(e.lastOrUndefined(ne.elements)||ne);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(g.parent)){var ue=g.parent;return p(e.lastOrUndefined(ue.elements)||ue)}return K(g.parent)}}function H(g){return g.parent.kind===240||g.parent.kind===208||g.parent.kind===209?f(g):g.parent.kind===212?T(g):K(g.parent)}function I(g){switch(g.parent.kind){case 213:case 256:case 214:case 169:case 168:case 172:case 173:case 171:case 241:case 240:case 242:case 244:case 208:case 209:case 212:return f(g);default:return K(g.parent)}}function l(g){return e.isFunctionLike(g.parent)||g.parent.kind===296||g.parent.kind===164?f(g):K(g.parent)}function d(g){return g.parent.kind===211?T(g):K(g.parent)}function D(g){return g.parent.kind===240?m(g,g.parent.expression):K(g.parent)}function fe(g){return g.parent.kind===244?T(g):K(g.parent)}}}C.spanInSourceFileAtLocation=w})(a=e.BreakpointResolver||(e.BreakpointResolver={}))})(ke||(ke={}));var ke;(function(e){function a(C,w,B){var E=[];B=e.fixupCompilerOptions(B,E);var Q=e.isArray(C)?C:[C],le=e.transformNodes(void 0,void 0,e.factory,B,Q,w,!0);return le.diagnostics=e.concatenate(le.diagnostics,E),le}e.transform=a})(ke||(ke={}));var ar=function(){return this}(),ke;(function(e){function a(m,G){m&&m.log(\"*INTERNAL ERROR* - Exception in typescript services: \"+G.message)}var C=void 0,w=void 0;e.LanguageServiceShimHostAdapter=w;var B=void 0;e.CoreServicesShimHostAdapter=B;var E=void 0;e.realizeDiagnostics=void 0;var Q=void 0,le=void 0,N=void 0,p=void 0;e.TypeScriptServicesFactory=void 0})(ke||(ke={})),function(){return;try{Object.defineProperty(Object.prototype,\"__magic__\",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,typeof globalThis>\"u\"&&(window.globalThis=window),delete Object.prototype.__magic__}catch{window.globalThis=window}}(),typeof re<\"u\"&&re.exports&&(re.exports=ke);var ke;(function(e){var a={since:\"4.0\",warnAfter:\"4.1\",message:\"Use the appropriate method on 'ts.factory' or the 'factory' supplied by your transformation context instead.\"};e.createNodeArray=e.Debug.deprecate(e.factory.createNodeArray,a),e.createNumericLiteral=e.Debug.deprecate(e.factory.createNumericLiteral,a),e.createBigIntLiteral=e.Debug.deprecate(e.factory.createBigIntLiteral,a),e.createStringLiteral=e.Debug.deprecate(e.factory.createStringLiteral,a),e.createStringLiteralFromNode=e.Debug.deprecate(e.factory.createStringLiteralFromNode,a),e.createRegularExpressionLiteral=e.Debug.deprecate(e.factory.createRegularExpressionLiteral,a),e.createLoopVariable=e.Debug.deprecate(e.factory.createLoopVariable,a),e.createUniqueName=e.Debug.deprecate(e.factory.createUniqueName,a),e.createPrivateIdentifier=e.Debug.deprecate(e.factory.createPrivateIdentifier,a),e.createSuper=e.Debug.deprecate(e.factory.createSuper,a),e.createThis=e.Debug.deprecate(e.factory.createThis,a),e.createNull=e.Debug.deprecate(e.factory.createNull,a),e.createTrue=e.Debug.deprecate(e.factory.createTrue,a),e.createFalse=e.Debug.deprecate(e.factory.createFalse,a),e.createModifier=e.Debug.deprecate(e.factory.createModifier,a),e.createModifiersFromModifierFlags=e.Debug.deprecate(e.factory.createModifiersFromModifierFlags,a),e.createQualifiedName=e.Debug.deprecate(e.factory.createQualifiedName,a),e.updateQualifiedName=e.Debug.deprecate(e.factory.updateQualifiedName,a),e.createComputedPropertyName=e.Debug.deprecate(e.factory.createComputedPropertyName,a),e.updateComputedPropertyName=e.Debug.deprecate(e.factory.updateComputedPropertyName,a),e.createTypeParameterDeclaration=e.Debug.deprecate(e.factory.createTypeParameterDeclaration,a),e.updateTypeParameterDeclaration=e.Debug.deprecate(e.factory.updateTypeParameterDeclaration,a),e.createParameter=e.Debug.deprecate(e.factory.createParameterDeclaration,a),e.updateParameter=e.Debug.deprecate(e.factory.updateParameterDeclaration,a),e.createDecorator=e.Debug.deprecate(e.factory.createDecorator,a),e.updateDecorator=e.Debug.deprecate(e.factory.updateDecorator,a),e.createProperty=e.Debug.deprecate(e.factory.createPropertyDeclaration,a),e.updateProperty=e.Debug.deprecate(e.factory.updatePropertyDeclaration,a),e.createMethod=e.Debug.deprecate(e.factory.createMethodDeclaration,a),e.updateMethod=e.Debug.deprecate(e.factory.updateMethodDeclaration,a),e.createConstructor=e.Debug.deprecate(e.factory.createConstructorDeclaration,a),e.updateConstructor=e.Debug.deprecate(e.factory.updateConstructorDeclaration,a),e.createGetAccessor=e.Debug.deprecate(e.factory.createGetAccessorDeclaration,a),e.updateGetAccessor=e.Debug.deprecate(e.factory.updateGetAccessorDeclaration,a),e.createSetAccessor=e.Debug.deprecate(e.factory.createSetAccessorDeclaration,a),e.updateSetAccessor=e.Debug.deprecate(e.factory.updateSetAccessorDeclaration,a),e.createCallSignature=e.Debug.deprecate(e.factory.createCallSignature,a),e.updateCallSignature=e.Debug.deprecate(e.factory.updateCallSignature,a),e.createConstructSignature=e.Debug.deprecate(e.factory.createConstructSignature,a),e.updateConstructSignature=e.Debug.deprecate(e.factory.updateConstructSignature,a),e.updateIndexSignature=e.Debug.deprecate(e.factory.updateIndexSignature,a),e.createKeywordTypeNode=e.Debug.deprecate(e.factory.createKeywordTypeNode,a),e.createTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.createTypePredicateNode,a),e.updateTypePredicateNodeWithModifier=e.Debug.deprecate(e.factory.updateTypePredicateNode,a),e.createTypeReferenceNode=e.Debug.deprecate(e.factory.createTypeReferenceNode,a),e.updateTypeReferenceNode=e.Debug.deprecate(e.factory.updateTypeReferenceNode,a),e.createFunctionTypeNode=e.Debug.deprecate(e.factory.createFunctionTypeNode,a),e.updateFunctionTypeNode=e.Debug.deprecate(e.factory.updateFunctionTypeNode,a),e.createConstructorTypeNode=e.Debug.deprecate(function(C,w,B){return e.factory.createConstructorTypeNode(void 0,C,w,B)},a),e.updateConstructorTypeNode=e.Debug.deprecate(function(C,w,B,E){return e.factory.updateConstructorTypeNode(C,C.modifiers,w,B,E)},a),e.createTypeQueryNode=e.Debug.deprecate(e.factory.createTypeQueryNode,a),e.updateTypeQueryNode=e.Debug.deprecate(e.factory.updateTypeQueryNode,a),e.createTypeLiteralNode=e.Debug.deprecate(e.factory.createTypeLiteralNode,a),e.updateTypeLiteralNode=e.Debug.deprecate(e.factory.updateTypeLiteralNode,a),e.createArrayTypeNode=e.Debug.deprecate(e.factory.createArrayTypeNode,a),e.updateArrayTypeNode=e.Debug.deprecate(e.factory.updateArrayTypeNode,a),e.createTupleTypeNode=e.Debug.deprecate(e.factory.createTupleTypeNode,a),e.updateTupleTypeNode=e.Debug.deprecate(e.factory.updateTupleTypeNode,a),e.createOptionalTypeNode=e.Debug.deprecate(e.factory.createOptionalTypeNode,a),e.updateOptionalTypeNode=e.Debug.deprecate(e.factory.updateOptionalTypeNode,a),e.createRestTypeNode=e.Debug.deprecate(e.factory.createRestTypeNode,a),e.updateRestTypeNode=e.Debug.deprecate(e.factory.updateRestTypeNode,a),e.createUnionTypeNode=e.Debug.deprecate(e.factory.createUnionTypeNode,a),e.updateUnionTypeNode=e.Debug.deprecate(e.factory.updateUnionTypeNode,a),e.createIntersectionTypeNode=e.Debug.deprecate(e.factory.createIntersectionTypeNode,a),e.updateIntersectionTypeNode=e.Debug.deprecate(e.factory.updateIntersectionTypeNode,a),e.createConditionalTypeNode=e.Debug.deprecate(e.factory.createConditionalTypeNode,a),e.updateConditionalTypeNode=e.Debug.deprecate(e.factory.updateConditionalTypeNode,a),e.createInferTypeNode=e.Debug.deprecate(e.factory.createInferTypeNode,a),e.updateInferTypeNode=e.Debug.deprecate(e.factory.updateInferTypeNode,a),e.createImportTypeNode=e.Debug.deprecate(e.factory.createImportTypeNode,a),e.updateImportTypeNode=e.Debug.deprecate(e.factory.updateImportTypeNode,a),e.createParenthesizedType=e.Debug.deprecate(e.factory.createParenthesizedType,a),e.updateParenthesizedType=e.Debug.deprecate(e.factory.updateParenthesizedType,a),e.createThisTypeNode=e.Debug.deprecate(e.factory.createThisTypeNode,a),e.updateTypeOperatorNode=e.Debug.deprecate(e.factory.updateTypeOperatorNode,a),e.createIndexedAccessTypeNode=e.Debug.deprecate(e.factory.createIndexedAccessTypeNode,a),e.updateIndexedAccessTypeNode=e.Debug.deprecate(e.factory.updateIndexedAccessTypeNode,a),e.createMappedTypeNode=e.Debug.deprecate(e.factory.createMappedTypeNode,a),e.updateMappedTypeNode=e.Debug.deprecate(e.factory.updateMappedTypeNode,a),e.createLiteralTypeNode=e.Debug.deprecate(e.factory.createLiteralTypeNode,a),e.updateLiteralTypeNode=e.Debug.deprecate(e.factory.updateLiteralTypeNode,a),e.createObjectBindingPattern=e.Debug.deprecate(e.factory.createObjectBindingPattern,a),e.updateObjectBindingPattern=e.Debug.deprecate(e.factory.updateObjectBindingPattern,a),e.createArrayBindingPattern=e.Debug.deprecate(e.factory.createArrayBindingPattern,a),e.updateArrayBindingPattern=e.Debug.deprecate(e.factory.updateArrayBindingPattern,a),e.createBindingElement=e.Debug.deprecate(e.factory.createBindingElement,a),e.updateBindingElement=e.Debug.deprecate(e.factory.updateBindingElement,a),e.createArrayLiteral=e.Debug.deprecate(e.factory.createArrayLiteralExpression,a),e.updateArrayLiteral=e.Debug.deprecate(e.factory.updateArrayLiteralExpression,a),e.createObjectLiteral=e.Debug.deprecate(e.factory.createObjectLiteralExpression,a),e.updateObjectLiteral=e.Debug.deprecate(e.factory.updateObjectLiteralExpression,a),e.createPropertyAccess=e.Debug.deprecate(e.factory.createPropertyAccessExpression,a),e.updatePropertyAccess=e.Debug.deprecate(e.factory.updatePropertyAccessExpression,a),e.createPropertyAccessChain=e.Debug.deprecate(e.factory.createPropertyAccessChain,a),e.updatePropertyAccessChain=e.Debug.deprecate(e.factory.updatePropertyAccessChain,a),e.createElementAccess=e.Debug.deprecate(e.factory.createElementAccessExpression,a),e.updateElementAccess=e.Debug.deprecate(e.factory.updateElementAccessExpression,a),e.createElementAccessChain=e.Debug.deprecate(e.factory.createElementAccessChain,a),e.updateElementAccessChain=e.Debug.deprecate(e.factory.updateElementAccessChain,a),e.createCall=e.Debug.deprecate(e.factory.createCallExpression,a),e.updateCall=e.Debug.deprecate(e.factory.updateCallExpression,a),e.createCallChain=e.Debug.deprecate(e.factory.createCallChain,a),e.updateCallChain=e.Debug.deprecate(e.factory.updateCallChain,a),e.createNew=e.Debug.deprecate(e.factory.createNewExpression,a),e.updateNew=e.Debug.deprecate(e.factory.updateNewExpression,a),e.createTypeAssertion=e.Debug.deprecate(e.factory.createTypeAssertion,a),e.updateTypeAssertion=e.Debug.deprecate(e.factory.updateTypeAssertion,a),e.createParen=e.Debug.deprecate(e.factory.createParenthesizedExpression,a),e.updateParen=e.Debug.deprecate(e.factory.updateParenthesizedExpression,a),e.createFunctionExpression=e.Debug.deprecate(e.factory.createFunctionExpression,a),e.updateFunctionExpression=e.Debug.deprecate(e.factory.updateFunctionExpression,a),e.createDelete=e.Debug.deprecate(e.factory.createDeleteExpression,a),e.updateDelete=e.Debug.deprecate(e.factory.updateDeleteExpression,a),e.createTypeOf=e.Debug.deprecate(e.factory.createTypeOfExpression,a),e.updateTypeOf=e.Debug.deprecate(e.factory.updateTypeOfExpression,a),e.createVoid=e.Debug.deprecate(e.factory.createVoidExpression,a),e.updateVoid=e.Debug.deprecate(e.factory.updateVoidExpression,a),e.createAwait=e.Debug.deprecate(e.factory.createAwaitExpression,a),e.updateAwait=e.Debug.deprecate(e.factory.updateAwaitExpression,a),e.createPrefix=e.Debug.deprecate(e.factory.createPrefixUnaryExpression,a),e.updatePrefix=e.Debug.deprecate(e.factory.updatePrefixUnaryExpression,a),e.createPostfix=e.Debug.deprecate(e.factory.createPostfixUnaryExpression,a),e.updatePostfix=e.Debug.deprecate(e.factory.updatePostfixUnaryExpression,a),e.createBinary=e.Debug.deprecate(e.factory.createBinaryExpression,a),e.updateConditional=e.Debug.deprecate(e.factory.updateConditionalExpression,a),e.createTemplateExpression=e.Debug.deprecate(e.factory.createTemplateExpression,a),e.updateTemplateExpression=e.Debug.deprecate(e.factory.updateTemplateExpression,a),e.createTemplateHead=e.Debug.deprecate(e.factory.createTemplateHead,a),e.createTemplateMiddle=e.Debug.deprecate(e.factory.createTemplateMiddle,a),e.createTemplateTail=e.Debug.deprecate(e.factory.createTemplateTail,a),e.createNoSubstitutionTemplateLiteral=e.Debug.deprecate(e.factory.createNoSubstitutionTemplateLiteral,a),e.updateYield=e.Debug.deprecate(e.factory.updateYieldExpression,a),e.createSpread=e.Debug.deprecate(e.factory.createSpreadElement,a),e.updateSpread=e.Debug.deprecate(e.factory.updateSpreadElement,a),e.createOmittedExpression=e.Debug.deprecate(e.factory.createOmittedExpression,a),e.createAsExpression=e.Debug.deprecate(e.factory.createAsExpression,a),e.updateAsExpression=e.Debug.deprecate(e.factory.updateAsExpression,a),e.createNonNullExpression=e.Debug.deprecate(e.factory.createNonNullExpression,a),e.updateNonNullExpression=e.Debug.deprecate(e.factory.updateNonNullExpression,a),e.createNonNullChain=e.Debug.deprecate(e.factory.createNonNullChain,a),e.updateNonNullChain=e.Debug.deprecate(e.factory.updateNonNullChain,a),e.createMetaProperty=e.Debug.deprecate(e.factory.createMetaProperty,a),e.updateMetaProperty=e.Debug.deprecate(e.factory.updateMetaProperty,a),e.createTemplateSpan=e.Debug.deprecate(e.factory.createTemplateSpan,a),e.updateTemplateSpan=e.Debug.deprecate(e.factory.updateTemplateSpan,a),e.createSemicolonClassElement=e.Debug.deprecate(e.factory.createSemicolonClassElement,a),e.createBlock=e.Debug.deprecate(e.factory.createBlock,a),e.updateBlock=e.Debug.deprecate(e.factory.updateBlock,a),e.createVariableStatement=e.Debug.deprecate(e.factory.createVariableStatement,a),e.updateVariableStatement=e.Debug.deprecate(e.factory.updateVariableStatement,a),e.createEmptyStatement=e.Debug.deprecate(e.factory.createEmptyStatement,a),e.createExpressionStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateExpressionStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createStatement=e.Debug.deprecate(e.factory.createExpressionStatement,a),e.updateStatement=e.Debug.deprecate(e.factory.updateExpressionStatement,a),e.createIf=e.Debug.deprecate(e.factory.createIfStatement,a),e.updateIf=e.Debug.deprecate(e.factory.updateIfStatement,a),e.createDo=e.Debug.deprecate(e.factory.createDoStatement,a),e.updateDo=e.Debug.deprecate(e.factory.updateDoStatement,a),e.createWhile=e.Debug.deprecate(e.factory.createWhileStatement,a),e.updateWhile=e.Debug.deprecate(e.factory.updateWhileStatement,a),e.createFor=e.Debug.deprecate(e.factory.createForStatement,a),e.updateFor=e.Debug.deprecate(e.factory.updateForStatement,a),e.createForIn=e.Debug.deprecate(e.factory.createForInStatement,a),e.updateForIn=e.Debug.deprecate(e.factory.updateForInStatement,a),e.createForOf=e.Debug.deprecate(e.factory.createForOfStatement,a),e.updateForOf=e.Debug.deprecate(e.factory.updateForOfStatement,a),e.createContinue=e.Debug.deprecate(e.factory.createContinueStatement,a),e.updateContinue=e.Debug.deprecate(e.factory.updateContinueStatement,a),e.createBreak=e.Debug.deprecate(e.factory.createBreakStatement,a),e.updateBreak=e.Debug.deprecate(e.factory.updateBreakStatement,a),e.createReturn=e.Debug.deprecate(e.factory.createReturnStatement,a),e.updateReturn=e.Debug.deprecate(e.factory.updateReturnStatement,a),e.createWith=e.Debug.deprecate(e.factory.createWithStatement,a),e.updateWith=e.Debug.deprecate(e.factory.updateWithStatement,a),e.createSwitch=e.Debug.deprecate(e.factory.createSwitchStatement,a),e.updateSwitch=e.Debug.deprecate(e.factory.updateSwitchStatement,a),e.createLabel=e.Debug.deprecate(e.factory.createLabeledStatement,a),e.updateLabel=e.Debug.deprecate(e.factory.updateLabeledStatement,a),e.createThrow=e.Debug.deprecate(e.factory.createThrowStatement,a),e.updateThrow=e.Debug.deprecate(e.factory.updateThrowStatement,a),e.createTry=e.Debug.deprecate(e.factory.createTryStatement,a),e.updateTry=e.Debug.deprecate(e.factory.updateTryStatement,a),e.createDebuggerStatement=e.Debug.deprecate(e.factory.createDebuggerStatement,a),e.createVariableDeclarationList=e.Debug.deprecate(e.factory.createVariableDeclarationList,a),e.updateVariableDeclarationList=e.Debug.deprecate(e.factory.updateVariableDeclarationList,a),e.createFunctionDeclaration=e.Debug.deprecate(e.factory.createFunctionDeclaration,a),e.updateFunctionDeclaration=e.Debug.deprecate(e.factory.updateFunctionDeclaration,a),e.createClassDeclaration=e.Debug.deprecate(e.factory.createClassDeclaration,a),e.updateClassDeclaration=e.Debug.deprecate(e.factory.updateClassDeclaration,a),e.createInterfaceDeclaration=e.Debug.deprecate(e.factory.createInterfaceDeclaration,a),e.updateInterfaceDeclaration=e.Debug.deprecate(e.factory.updateInterfaceDeclaration,a),e.createTypeAliasDeclaration=e.Debug.deprecate(e.factory.createTypeAliasDeclaration,a),e.updateTypeAliasDeclaration=e.Debug.deprecate(e.factory.updateTypeAliasDeclaration,a),e.createEnumDeclaration=e.Debug.deprecate(e.factory.createEnumDeclaration,a),e.updateEnumDeclaration=e.Debug.deprecate(e.factory.updateEnumDeclaration,a),e.createModuleDeclaration=e.Debug.deprecate(e.factory.createModuleDeclaration,a),e.updateModuleDeclaration=e.Debug.deprecate(e.factory.updateModuleDeclaration,a),e.createModuleBlock=e.Debug.deprecate(e.factory.createModuleBlock,a),e.updateModuleBlock=e.Debug.deprecate(e.factory.updateModuleBlock,a),e.createCaseBlock=e.Debug.deprecate(e.factory.createCaseBlock,a),e.updateCaseBlock=e.Debug.deprecate(e.factory.updateCaseBlock,a),e.createNamespaceExportDeclaration=e.Debug.deprecate(e.factory.createNamespaceExportDeclaration,a),e.updateNamespaceExportDeclaration=e.Debug.deprecate(e.factory.updateNamespaceExportDeclaration,a),e.createImportEqualsDeclaration=e.Debug.deprecate(e.factory.createImportEqualsDeclaration,a),e.updateImportEqualsDeclaration=e.Debug.deprecate(e.factory.updateImportEqualsDeclaration,a),e.createImportDeclaration=e.Debug.deprecate(e.factory.createImportDeclaration,a),e.updateImportDeclaration=e.Debug.deprecate(e.factory.updateImportDeclaration,a),e.createNamespaceImport=e.Debug.deprecate(e.factory.createNamespaceImport,a),e.updateNamespaceImport=e.Debug.deprecate(e.factory.updateNamespaceImport,a),e.createNamedImports=e.Debug.deprecate(e.factory.createNamedImports,a),e.updateNamedImports=e.Debug.deprecate(e.factory.updateNamedImports,a),e.createImportSpecifier=e.Debug.deprecate(e.factory.createImportSpecifier,a),e.updateImportSpecifier=e.Debug.deprecate(e.factory.updateImportSpecifier,a),e.createExportAssignment=e.Debug.deprecate(e.factory.createExportAssignment,a),e.updateExportAssignment=e.Debug.deprecate(e.factory.updateExportAssignment,a),e.createNamedExports=e.Debug.deprecate(e.factory.createNamedExports,a),e.updateNamedExports=e.Debug.deprecate(e.factory.updateNamedExports,a),e.createExportSpecifier=e.Debug.deprecate(e.factory.createExportSpecifier,a),e.updateExportSpecifier=e.Debug.deprecate(e.factory.updateExportSpecifier,a),e.createExternalModuleReference=e.Debug.deprecate(e.factory.createExternalModuleReference,a),e.updateExternalModuleReference=e.Debug.deprecate(e.factory.updateExternalModuleReference,a),e.createJSDocTypeExpression=e.Debug.deprecate(e.factory.createJSDocTypeExpression,a),e.createJSDocTypeTag=e.Debug.deprecate(e.factory.createJSDocTypeTag,a),e.createJSDocReturnTag=e.Debug.deprecate(e.factory.createJSDocReturnTag,a),e.createJSDocThisTag=e.Debug.deprecate(e.factory.createJSDocThisTag,a),e.createJSDocComment=e.Debug.deprecate(e.factory.createJSDocComment,a),e.createJSDocParameterTag=e.Debug.deprecate(e.factory.createJSDocParameterTag,a),e.createJSDocClassTag=e.Debug.deprecate(e.factory.createJSDocClassTag,a),e.createJSDocAugmentsTag=e.Debug.deprecate(e.factory.createJSDocAugmentsTag,a),e.createJSDocEnumTag=e.Debug.deprecate(e.factory.createJSDocEnumTag,a),e.createJSDocTemplateTag=e.Debug.deprecate(e.factory.createJSDocTemplateTag,a),e.createJSDocTypedefTag=e.Debug.deprecate(e.factory.createJSDocTypedefTag,a),e.createJSDocCallbackTag=e.Debug.deprecate(e.factory.createJSDocCallbackTag,a),e.createJSDocSignature=e.Debug.deprecate(e.factory.createJSDocSignature,a),e.createJSDocPropertyTag=e.Debug.deprecate(e.factory.createJSDocPropertyTag,a),e.createJSDocTypeLiteral=e.Debug.deprecate(e.factory.createJSDocTypeLiteral,a),e.createJSDocImplementsTag=e.Debug.deprecate(e.factory.createJSDocImplementsTag,a),e.createJSDocAuthorTag=e.Debug.deprecate(e.factory.createJSDocAuthorTag,a),e.createJSDocPublicTag=e.Debug.deprecate(e.factory.createJSDocPublicTag,a),e.createJSDocPrivateTag=e.Debug.deprecate(e.factory.createJSDocPrivateTag,a),e.createJSDocProtectedTag=e.Debug.deprecate(e.factory.createJSDocProtectedTag,a),e.createJSDocReadonlyTag=e.Debug.deprecate(e.factory.createJSDocReadonlyTag,a),e.createJSDocTag=e.Debug.deprecate(e.factory.createJSDocUnknownTag,a),e.createJsxElement=e.Debug.deprecate(e.factory.createJsxElement,a),e.updateJsxElement=e.Debug.deprecate(e.factory.updateJsxElement,a),e.createJsxSelfClosingElement=e.Debug.deprecate(e.factory.createJsxSelfClosingElement,a),e.updateJsxSelfClosingElement=e.Debug.deprecate(e.factory.updateJsxSelfClosingElement,a),e.createJsxOpeningElement=e.Debug.deprecate(e.factory.createJsxOpeningElement,a),e.updateJsxOpeningElement=e.Debug.deprecate(e.factory.updateJsxOpeningElement,a),e.createJsxClosingElement=e.Debug.deprecate(e.factory.createJsxClosingElement,a),e.updateJsxClosingElement=e.Debug.deprecate(e.factory.updateJsxClosingElement,a),e.createJsxFragment=e.Debug.deprecate(e.factory.createJsxFragment,a),e.createJsxText=e.Debug.deprecate(e.factory.createJsxText,a),e.updateJsxText=e.Debug.deprecate(e.factory.updateJsxText,a),e.createJsxOpeningFragment=e.Debug.deprecate(e.factory.createJsxOpeningFragment,a),e.createJsxJsxClosingFragment=e.Debug.deprecate(e.factory.createJsxJsxClosingFragment,a),e.updateJsxFragment=e.Debug.deprecate(e.factory.updateJsxFragment,a),e.createJsxAttribute=e.Debug.deprecate(e.factory.createJsxAttribute,a),e.updateJsxAttribute=e.Debug.deprecate(e.factory.updateJsxAttribute,a),e.createJsxAttributes=e.Debug.deprecate(e.factory.createJsxAttributes,a),e.updateJsxAttributes=e.Debug.deprecate(e.factory.updateJsxAttributes,a),e.createJsxSpreadAttribute=e.Debug.deprecate(e.factory.createJsxSpreadAttribute,a),e.updateJsxSpreadAttribute=e.Debug.deprecate(e.factory.updateJsxSpreadAttribute,a),e.createJsxExpression=e.Debug.deprecate(e.factory.createJsxExpression,a),e.updateJsxExpression=e.Debug.deprecate(e.factory.updateJsxExpression,a),e.createCaseClause=e.Debug.deprecate(e.factory.createCaseClause,a),e.updateCaseClause=e.Debug.deprecate(e.factory.updateCaseClause,a),e.createDefaultClause=e.Debug.deprecate(e.factory.createDefaultClause,a),e.updateDefaultClause=e.Debug.deprecate(e.factory.updateDefaultClause,a),e.createHeritageClause=e.Debug.deprecate(e.factory.createHeritageClause,a),e.updateHeritageClause=e.Debug.deprecate(e.factory.updateHeritageClause,a),e.createCatchClause=e.Debug.deprecate(e.factory.createCatchClause,a),e.updateCatchClause=e.Debug.deprecate(e.factory.updateCatchClause,a),e.createPropertyAssignment=e.Debug.deprecate(e.factory.createPropertyAssignment,a),e.updatePropertyAssignment=e.Debug.deprecate(e.factory.updatePropertyAssignment,a),e.createShorthandPropertyAssignment=e.Debug.deprecate(e.factory.createShorthandPropertyAssignment,a),e.updateShorthandPropertyAssignment=e.Debug.deprecate(e.factory.updateShorthandPropertyAssignment,a),e.createSpreadAssignment=e.Debug.deprecate(e.factory.createSpreadAssignment,a),e.updateSpreadAssignment=e.Debug.deprecate(e.factory.updateSpreadAssignment,a),e.createEnumMember=e.Debug.deprecate(e.factory.createEnumMember,a),e.updateEnumMember=e.Debug.deprecate(e.factory.updateEnumMember,a),e.updateSourceFileNode=e.Debug.deprecate(e.factory.updateSourceFile,a),e.createNotEmittedStatement=e.Debug.deprecate(e.factory.createNotEmittedStatement,a),e.createPartiallyEmittedExpression=e.Debug.deprecate(e.factory.createPartiallyEmittedExpression,a),e.updatePartiallyEmittedExpression=e.Debug.deprecate(e.factory.updatePartiallyEmittedExpression,a),e.createCommaList=e.Debug.deprecate(e.factory.createCommaListExpression,a),e.updateCommaList=e.Debug.deprecate(e.factory.updateCommaListExpression,a),e.createBundle=e.Debug.deprecate(e.factory.createBundle,a),e.updateBundle=e.Debug.deprecate(e.factory.updateBundle,a),e.createImmediatelyInvokedFunctionExpression=e.Debug.deprecate(e.factory.createImmediatelyInvokedFunctionExpression,a),e.createImmediatelyInvokedArrowFunction=e.Debug.deprecate(e.factory.createImmediatelyInvokedArrowFunction,a),e.createVoidZero=e.Debug.deprecate(e.factory.createVoidZero,a),e.createExportDefault=e.Debug.deprecate(e.factory.createExportDefault,a),e.createExternalModuleExport=e.Debug.deprecate(e.factory.createExternalModuleExport,a),e.createNamespaceExport=e.Debug.deprecate(e.factory.createNamespaceExport,a),e.updateNamespaceExport=e.Debug.deprecate(e.factory.updateNamespaceExport,a),e.createToken=e.Debug.deprecate(function(w){return e.factory.createToken(w)},a),e.createIdentifier=e.Debug.deprecate(function(w){return e.factory.createIdentifier(w,void 0,void 0)},a),e.createTempVariable=e.Debug.deprecate(function(w){return e.factory.createTempVariable(w,void 0)},a),e.getGeneratedNameForNode=e.Debug.deprecate(function(w){return e.factory.getGeneratedNameForNode(w,void 0)},a),e.createOptimisticUniqueName=e.Debug.deprecate(function(w){return e.factory.createUniqueName(w,16)},a),e.createFileLevelUniqueName=e.Debug.deprecate(function(w){return e.factory.createUniqueName(w,48)},a),e.createIndexSignature=e.Debug.deprecate(function(w,B,E,Q){return e.factory.createIndexSignature(w,B,E,Q)},a),e.createTypePredicateNode=e.Debug.deprecate(function(w,B){return e.factory.createTypePredicateNode(void 0,w,B)},a),e.updateTypePredicateNode=e.Debug.deprecate(function(w,B,E){return e.factory.updateTypePredicateNode(w,void 0,B,E)},a),e.createLiteral=e.Debug.deprecate(function(w){return typeof w==\"number\"?e.factory.createNumericLiteral(w):typeof w==\"object\"&&\"base10Value\"in w?e.factory.createBigIntLiteral(w):typeof w==\"boolean\"?w?e.factory.createTrue():e.factory.createFalse():typeof w==\"string\"?e.factory.createStringLiteral(w,void 0):e.factory.createStringLiteralFromNode(w)},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use `factory.createStringLiteral`, `factory.createStringLiteralFromNode`, `factory.createNumericLiteral`, `factory.createBigIntLiteral`, `factory.createTrue`, `factory.createFalse`, or the factory supplied by your transformation context instead.\"}),e.createMethodSignature=e.Debug.deprecate(function(w,B,E,Q,le){return e.factory.createMethodSignature(void 0,Q,le,w,B,E)},a),e.updateMethodSignature=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateMethodSignature(w,w.modifiers,le,N,B,E,Q)},a),e.createTypeOperatorNode=e.Debug.deprecate(function(w,B){var E;return B?E=w:(B=w,E=140),e.factory.createTypeOperatorNode(E,B)},a),e.createTaggedTemplate=e.Debug.deprecate(function(w,B,E){var Q;return E?Q=B:E=B,e.factory.createTaggedTemplateExpression(w,Q,E)},a),e.updateTaggedTemplate=e.Debug.deprecate(function(w,B,E,Q){var le;return Q?le=E:Q=E,e.factory.updateTaggedTemplateExpression(w,B,le,Q)},a),e.updateBinary=e.Debug.deprecate(function(w,B,E,Q){return Q===void 0&&(Q=w.operatorToken),typeof Q==\"number\"&&(Q=Q===w.operatorToken.kind?w.operatorToken:e.factory.createToken(Q)),e.factory.updateBinaryExpression(w,B,Q,E)},a),e.createConditional=e.Debug.deprecate(function(w,B,E,Q,le){return arguments.length===5?e.factory.createConditionalExpression(w,B,E,Q,le):arguments.length===3?e.factory.createConditionalExpression(w,e.factory.createToken(57),B,e.factory.createToken(58),E):e.Debug.fail(\"Argument count mismatch\")},a),e.createYield=e.Debug.deprecate(function(w,B){var E;return B?E=w:B=w,e.factory.createYieldExpression(E,B)},a),e.createClassExpression=e.Debug.deprecate(function(w,B,E,Q,le){return e.factory.createClassExpression(void 0,w,B,E,Q,le)},a),e.updateClassExpression=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateClassExpression(w,void 0,B,E,Q,le,N)},a),e.createPropertySignature=e.Debug.deprecate(function(w,B,E,Q,le){var N=e.factory.createPropertySignature(w,B,E,Q);return N.initializer=le,N},a),e.updatePropertySignature=e.Debug.deprecate(function(w,B,E,Q,le,N){var p=e.factory.updatePropertySignature(w,B,E,Q,le);return w.initializer!==N&&(p===w&&(p=e.factory.cloneNode(w)),p.initializer=N),p},a),e.createExpressionWithTypeArguments=e.Debug.deprecate(function(w,B){return e.factory.createExpressionWithTypeArguments(B,w)},a),e.updateExpressionWithTypeArguments=e.Debug.deprecate(function(w,B,E){return e.factory.updateExpressionWithTypeArguments(w,E,B)},a),e.createArrowFunction=e.Debug.deprecate(function(w,B,E,Q,le,N){return arguments.length===6?e.factory.createArrowFunction(w,B,E,Q,le,N):arguments.length===5?e.factory.createArrowFunction(w,B,E,Q,void 0,le):e.Debug.fail(\"Argument count mismatch\")},a),e.updateArrowFunction=e.Debug.deprecate(function(w,B,E,Q,le,N,p){return arguments.length===7?e.factory.updateArrowFunction(w,B,E,Q,le,N,p):arguments.length===6?e.factory.updateArrowFunction(w,B,E,Q,le,w.equalsGreaterThanToken,N):e.Debug.fail(\"Argument count mismatch\")},a),e.createVariableDeclaration=e.Debug.deprecate(function(w,B,E,Q){return arguments.length===4?e.factory.createVariableDeclaration(w,B,E,Q):arguments.length>=1&&arguments.length<=3?e.factory.createVariableDeclaration(w,void 0,B,E):e.Debug.fail(\"Argument count mismatch\")},a),e.updateVariableDeclaration=e.Debug.deprecate(function(w,B,E,Q,le){return arguments.length===5?e.factory.updateVariableDeclaration(w,B,E,Q,le):arguments.length===4?e.factory.updateVariableDeclaration(w,B,w.exclamationToken,E,Q):e.Debug.fail(\"Argument count mismatch\")},a),e.createImportClause=e.Debug.deprecate(function(w,B,E){return E===void 0&&(E=!1),e.factory.createImportClause(E,w,B)},a),e.updateImportClause=e.Debug.deprecate(function(w,B,E,Q){return e.factory.updateImportClause(w,Q,B,E)},a),e.createExportDeclaration=e.Debug.deprecate(function(w,B,E,Q,le){return le===void 0&&(le=!1),e.factory.createExportDeclaration(w,B,le,E,Q)},a),e.updateExportDeclaration=e.Debug.deprecate(function(w,B,E,Q,le,N){return e.factory.updateExportDeclaration(w,B,E,N,Q,le,w.assertClause)},a),e.createJSDocParamTag=e.Debug.deprecate(function(w,B,E,Q){return e.factory.createJSDocParameterTag(void 0,w,B,E,!1,Q?e.factory.createNodeArray([e.factory.createJSDocText(Q)]):void 0)},a),e.createComma=e.Debug.deprecate(function(w,B){return e.factory.createComma(w,B)},a),e.createLessThan=e.Debug.deprecate(function(w,B){return e.factory.createLessThan(w,B)},a),e.createAssignment=e.Debug.deprecate(function(w,B){return e.factory.createAssignment(w,B)},a),e.createStrictEquality=e.Debug.deprecate(function(w,B){return e.factory.createStrictEquality(w,B)},a),e.createStrictInequality=e.Debug.deprecate(function(w,B){return e.factory.createStrictInequality(w,B)},a),e.createAdd=e.Debug.deprecate(function(w,B){return e.factory.createAdd(w,B)},a),e.createSubtract=e.Debug.deprecate(function(w,B){return e.factory.createSubtract(w,B)},a),e.createLogicalAnd=e.Debug.deprecate(function(w,B){return e.factory.createLogicalAnd(w,B)},a),e.createLogicalOr=e.Debug.deprecate(function(w,B){return e.factory.createLogicalOr(w,B)},a),e.createPostfixIncrement=e.Debug.deprecate(function(w){return e.factory.createPostfixIncrement(w)},a),e.createLogicalNot=e.Debug.deprecate(function(w){return e.factory.createLogicalNot(w)},a),e.createNode=e.Debug.deprecate(function(w,B,E){return B===void 0&&(B=0),E===void 0&&(E=0),e.setTextRangePosEnd(w===305?e.parseBaseNodeFactory.createBaseSourceFileNode(w):w===79?e.parseBaseNodeFactory.createBaseIdentifierNode(w):w===80?e.parseBaseNodeFactory.createBasePrivateIdentifierNode(w):e.isNodeKind(w)?e.parseBaseNodeFactory.createBaseNode(w):e.parseBaseNodeFactory.createBaseTokenNode(w),B,E)},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use an appropriate `factory` method instead.\"}),e.getMutableClone=e.Debug.deprecate(function(w){var B=e.factory.cloneNode(w);return e.setTextRange(B,w),e.setParent(B,w.parent),B},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use an appropriate `factory.update...` method instead, use `setCommentRange` or `setSourceMapRange`, and avoid setting `parent`.\"}),e.isTypeAssertion=e.Debug.deprecate(function(w){return w.kind===211},{since:\"4.0\",warnAfter:\"4.1\",message:\"Use `isTypeAssertionExpression` instead.\"}),e.isIdentifierOrPrivateIdentifier=e.Debug.deprecate(function(w){return e.isMemberName(w)},{since:\"4.2\",warnAfter:\"4.3\",message:\"Use `isMemberName` instead.\"})})(ke||(ke={}))}}),$4=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var re;(function(Ke){Ke.ArrayExpression=\"ArrayExpression\",Ke.ArrayPattern=\"ArrayPattern\",Ke.ArrowFunctionExpression=\"ArrowFunctionExpression\",Ke.AssignmentExpression=\"AssignmentExpression\",Ke.AssignmentPattern=\"AssignmentPattern\",Ke.AwaitExpression=\"AwaitExpression\",Ke.BinaryExpression=\"BinaryExpression\",Ke.BlockStatement=\"BlockStatement\",Ke.BreakStatement=\"BreakStatement\",Ke.CallExpression=\"CallExpression\",Ke.CatchClause=\"CatchClause\",Ke.ChainExpression=\"ChainExpression\",Ke.ClassBody=\"ClassBody\",Ke.ClassDeclaration=\"ClassDeclaration\",Ke.ClassExpression=\"ClassExpression\",Ke.ConditionalExpression=\"ConditionalExpression\",Ke.ContinueStatement=\"ContinueStatement\",Ke.DebuggerStatement=\"DebuggerStatement\",Ke.Decorator=\"Decorator\",Ke.DoWhileStatement=\"DoWhileStatement\",Ke.EmptyStatement=\"EmptyStatement\",Ke.ExportAllDeclaration=\"ExportAllDeclaration\",Ke.ExportDefaultDeclaration=\"ExportDefaultDeclaration\",Ke.ExportNamedDeclaration=\"ExportNamedDeclaration\",Ke.ExportSpecifier=\"ExportSpecifier\",Ke.ExpressionStatement=\"ExpressionStatement\",Ke.ForInStatement=\"ForInStatement\",Ke.ForOfStatement=\"ForOfStatement\",Ke.ForStatement=\"ForStatement\",Ke.FunctionDeclaration=\"FunctionDeclaration\",Ke.FunctionExpression=\"FunctionExpression\",Ke.Identifier=\"Identifier\",Ke.IfStatement=\"IfStatement\",Ke.ImportAttribute=\"ImportAttribute\",Ke.ImportDeclaration=\"ImportDeclaration\",Ke.ImportDefaultSpecifier=\"ImportDefaultSpecifier\",Ke.ImportExpression=\"ImportExpression\",Ke.ImportNamespaceSpecifier=\"ImportNamespaceSpecifier\",Ke.ImportSpecifier=\"ImportSpecifier\",Ke.JSXAttribute=\"JSXAttribute\",Ke.JSXClosingElement=\"JSXClosingElement\",Ke.JSXClosingFragment=\"JSXClosingFragment\",Ke.JSXElement=\"JSXElement\",Ke.JSXEmptyExpression=\"JSXEmptyExpression\",Ke.JSXExpressionContainer=\"JSXExpressionContainer\",Ke.JSXFragment=\"JSXFragment\",Ke.JSXIdentifier=\"JSXIdentifier\",Ke.JSXMemberExpression=\"JSXMemberExpression\",Ke.JSXNamespacedName=\"JSXNamespacedName\",Ke.JSXOpeningElement=\"JSXOpeningElement\",Ke.JSXOpeningFragment=\"JSXOpeningFragment\",Ke.JSXSpreadAttribute=\"JSXSpreadAttribute\",Ke.JSXSpreadChild=\"JSXSpreadChild\",Ke.JSXText=\"JSXText\",Ke.LabeledStatement=\"LabeledStatement\",Ke.Literal=\"Literal\",Ke.LogicalExpression=\"LogicalExpression\",Ke.MemberExpression=\"MemberExpression\",Ke.MetaProperty=\"MetaProperty\",Ke.MethodDefinition=\"MethodDefinition\",Ke.NewExpression=\"NewExpression\",Ke.ObjectExpression=\"ObjectExpression\",Ke.ObjectPattern=\"ObjectPattern\",Ke.PrivateIdentifier=\"PrivateIdentifier\",Ke.Program=\"Program\",Ke.Property=\"Property\",Ke.PropertyDefinition=\"PropertyDefinition\",Ke.RestElement=\"RestElement\",Ke.ReturnStatement=\"ReturnStatement\",Ke.SequenceExpression=\"SequenceExpression\",Ke.SpreadElement=\"SpreadElement\",Ke.StaticBlock=\"StaticBlock\",Ke.Super=\"Super\",Ke.SwitchCase=\"SwitchCase\",Ke.SwitchStatement=\"SwitchStatement\",Ke.TaggedTemplateExpression=\"TaggedTemplateExpression\",Ke.TemplateElement=\"TemplateElement\",Ke.TemplateLiteral=\"TemplateLiteral\",Ke.ThisExpression=\"ThisExpression\",Ke.ThrowStatement=\"ThrowStatement\",Ke.TryStatement=\"TryStatement\",Ke.UnaryExpression=\"UnaryExpression\",Ke.UpdateExpression=\"UpdateExpression\",Ke.VariableDeclaration=\"VariableDeclaration\",Ke.VariableDeclarator=\"VariableDeclarator\",Ke.WhileStatement=\"WhileStatement\",Ke.WithStatement=\"WithStatement\",Ke.YieldExpression=\"YieldExpression\",Ke.TSAbstractKeyword=\"TSAbstractKeyword\",Ke.TSAbstractMethodDefinition=\"TSAbstractMethodDefinition\",Ke.TSAbstractPropertyDefinition=\"TSAbstractPropertyDefinition\",Ke.TSAnyKeyword=\"TSAnyKeyword\",Ke.TSArrayType=\"TSArrayType\",Ke.TSAsExpression=\"TSAsExpression\",Ke.TSAsyncKeyword=\"TSAsyncKeyword\",Ke.TSBigIntKeyword=\"TSBigIntKeyword\",Ke.TSBooleanKeyword=\"TSBooleanKeyword\",Ke.TSCallSignatureDeclaration=\"TSCallSignatureDeclaration\",Ke.TSClassImplements=\"TSClassImplements\",Ke.TSConditionalType=\"TSConditionalType\",Ke.TSConstructorType=\"TSConstructorType\",Ke.TSConstructSignatureDeclaration=\"TSConstructSignatureDeclaration\",Ke.TSDeclareFunction=\"TSDeclareFunction\",Ke.TSDeclareKeyword=\"TSDeclareKeyword\",Ke.TSEmptyBodyFunctionExpression=\"TSEmptyBodyFunctionExpression\",Ke.TSEnumDeclaration=\"TSEnumDeclaration\",Ke.TSEnumMember=\"TSEnumMember\",Ke.TSExportAssignment=\"TSExportAssignment\",Ke.TSExportKeyword=\"TSExportKeyword\",Ke.TSExternalModuleReference=\"TSExternalModuleReference\",Ke.TSFunctionType=\"TSFunctionType\",Ke.TSInstantiationExpression=\"TSInstantiationExpression\",Ke.TSImportEqualsDeclaration=\"TSImportEqualsDeclaration\",Ke.TSImportType=\"TSImportType\",Ke.TSIndexedAccessType=\"TSIndexedAccessType\",Ke.TSIndexSignature=\"TSIndexSignature\",Ke.TSInferType=\"TSInferType\",Ke.TSInterfaceBody=\"TSInterfaceBody\",Ke.TSInterfaceDeclaration=\"TSInterfaceDeclaration\",Ke.TSInterfaceHeritage=\"TSInterfaceHeritage\",Ke.TSIntersectionType=\"TSIntersectionType\",Ke.TSIntrinsicKeyword=\"TSIntrinsicKeyword\",Ke.TSLiteralType=\"TSLiteralType\",Ke.TSMappedType=\"TSMappedType\",Ke.TSMethodSignature=\"TSMethodSignature\",Ke.TSModuleBlock=\"TSModuleBlock\",Ke.TSModuleDeclaration=\"TSModuleDeclaration\",Ke.TSNamedTupleMember=\"TSNamedTupleMember\",Ke.TSNamespaceExportDeclaration=\"TSNamespaceExportDeclaration\",Ke.TSNeverKeyword=\"TSNeverKeyword\",Ke.TSNonNullExpression=\"TSNonNullExpression\",Ke.TSNullKeyword=\"TSNullKeyword\",Ke.TSNumberKeyword=\"TSNumberKeyword\",Ke.TSObjectKeyword=\"TSObjectKeyword\",Ke.TSOptionalType=\"TSOptionalType\",Ke.TSParameterProperty=\"TSParameterProperty\",Ke.TSPrivateKeyword=\"TSPrivateKeyword\",Ke.TSPropertySignature=\"TSPropertySignature\",Ke.TSProtectedKeyword=\"TSProtectedKeyword\",Ke.TSPublicKeyword=\"TSPublicKeyword\",Ke.TSQualifiedName=\"TSQualifiedName\",Ke.TSReadonlyKeyword=\"TSReadonlyKeyword\",Ke.TSRestType=\"TSRestType\",Ke.TSStaticKeyword=\"TSStaticKeyword\",Ke.TSStringKeyword=\"TSStringKeyword\",Ke.TSSymbolKeyword=\"TSSymbolKeyword\",Ke.TSTemplateLiteralType=\"TSTemplateLiteralType\",Ke.TSThisType=\"TSThisType\",Ke.TSTupleType=\"TSTupleType\",Ke.TSTypeAliasDeclaration=\"TSTypeAliasDeclaration\",Ke.TSTypeAnnotation=\"TSTypeAnnotation\",Ke.TSTypeAssertion=\"TSTypeAssertion\",Ke.TSTypeLiteral=\"TSTypeLiteral\",Ke.TSTypeOperator=\"TSTypeOperator\",Ke.TSTypeParameter=\"TSTypeParameter\",Ke.TSTypeParameterDeclaration=\"TSTypeParameterDeclaration\",Ke.TSTypeParameterInstantiation=\"TSTypeParameterInstantiation\",Ke.TSTypePredicate=\"TSTypePredicate\",Ke.TSTypeQuery=\"TSTypeQuery\",Ke.TSTypeReference=\"TSTypeReference\",Ke.TSUndefinedKeyword=\"TSUndefinedKeyword\",Ke.TSUnionType=\"TSUnionType\",Ke.TSUnknownKeyword=\"TSUnknownKeyword\",Ke.TSVoidKeyword=\"TSVoidKeyword\"})(re=M.AST_NODE_TYPES||(M.AST_NODE_TYPES={}));var Ve;(function(Ke){Ke.Boolean=\"Boolean\",Ke.Identifier=\"Identifier\",Ke.JSXIdentifier=\"JSXIdentifier\",Ke.JSXText=\"JSXText\",Ke.Keyword=\"Keyword\",Ke.Null=\"Null\",Ke.Numeric=\"Numeric\",Ke.Punctuator=\"Punctuator\",Ke.RegularExpression=\"RegularExpression\",Ke.String=\"String\",Ke.Template=\"Template\",Ke.Block=\"Block\",Ke.Line=\"Line\"})(Ve=M.AST_TOKEN_TYPES||(M.AST_TOKEN_TYPES={}))}}),DU=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/lib.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0})}}),bU=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/parser-options.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0})}}),SU=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/ts-estree.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||(\"get\"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__setModuleDefault||(Object.create?function(oi,kr){Object.defineProperty(oi,\"default\",{enumerable:!0,value:kr})}:function(oi,kr){oi.default=kr}),Ke=M&&M.__importStar||function(oi){if(oi&&oi.__esModule)return oi;var kr={};if(oi!=null)for(var pr in oi)pr!==\"default\"&&Object.prototype.hasOwnProperty.call(oi,pr)&&re(kr,oi,pr);return Ve(kr,oi),kr};Object.defineProperty(M,\"__esModule\",{value:!0}),M.TSESTree=void 0,M.TSESTree=Ke($4())}}),Z4=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types/dist/index.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||(\"get\"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var pr in oi)pr!==\"default\"&&!Object.prototype.hasOwnProperty.call(kr,pr)&&re(kr,oi,pr)};Object.defineProperty(M,\"__esModule\",{value:!0}),M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=$4();Object.defineProperty(M,\"AST_NODE_TYPES\",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,\"AST_TOKEN_TYPES\",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Ve(DU(),M),Ve(bU(),M),Ve(SU(),M)}}),TU=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0})}}),xU=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=Z4()}}),k1=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/index.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr);var ar=Object.getOwnPropertyDescriptor(kr,pr);(!ar||(\"get\"in ar?!kr.__esModule:ar.writable||ar.configurable))&&(ar={enumerable:!0,get:function(){return kr[pr]}}),Object.defineProperty(oi,Lr,ar)}:function(oi,kr,pr,Lr){Lr===void 0&&(Lr=pr),oi[Lr]=kr[pr]}),Ve=M&&M.__exportStar||function(oi,kr){for(var pr in oi)pr!==\"default\"&&!Object.prototype.hasOwnProperty.call(kr,pr)&&re(kr,oi,pr)};Object.defineProperty(M,\"__esModule\",{value:!0}),M.TSESTree=M.AST_TOKEN_TYPES=M.AST_NODE_TYPES=void 0;var Ke=Z4();Object.defineProperty(M,\"AST_NODE_TYPES\",{enumerable:!0,get:function(){return Ke.AST_NODE_TYPES}}),Object.defineProperty(M,\"AST_TOKEN_TYPES\",{enumerable:!0,get:function(){return Ke.AST_TOKEN_TYPES}}),Object.defineProperty(M,\"TSESTree\",{enumerable:!0,get:function(){return Ke.TSESTree}}),Ve(TU(),M),Ve(xU(),M)}}),EU=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.xhtmlEntities=void 0,M.xhtmlEntities={quot:'\"',amp:\"&\",apos:\"'\",lt:\"<\",gt:\">\",nbsp:\"\\xA0\",iexcl:\"\\xA1\",cent:\"\\xA2\",pound:\"\\xA3\",curren:\"\\xA4\",yen:\"\\xA5\",brvbar:\"\\xA6\",sect:\"\\xA7\",uml:\"\\xA8\",copy:\"\\xA9\",ordf:\"\\xAA\",laquo:\"\\xAB\",not:\"\\xAC\",shy:\"\\xAD\",reg:\"\\xAE\",macr:\"\\xAF\",deg:\"\\xB0\",plusmn:\"\\xB1\",sup2:\"\\xB2\",sup3:\"\\xB3\",acute:\"\\xB4\",micro:\"\\xB5\",para:\"\\xB6\",middot:\"\\xB7\",cedil:\"\\xB8\",sup1:\"\\xB9\",ordm:\"\\xBA\",raquo:\"\\xBB\",frac14:\"\\xBC\",frac12:\"\\xBD\",frac34:\"\\xBE\",iquest:\"\\xBF\",Agrave:\"\\xC0\",Aacute:\"\\xC1\",Acirc:\"\\xC2\",Atilde:\"\\xC3\",Auml:\"\\xC4\",Aring:\"\\xC5\",AElig:\"\\xC6\",Ccedil:\"\\xC7\",Egrave:\"\\xC8\",Eacute:\"\\xC9\",Ecirc:\"\\xCA\",Euml:\"\\xCB\",Igrave:\"\\xCC\",Iacute:\"\\xCD\",Icirc:\"\\xCE\",Iuml:\"\\xCF\",ETH:\"\\xD0\",Ntilde:\"\\xD1\",Ograve:\"\\xD2\",Oacute:\"\\xD3\",Ocirc:\"\\xD4\",Otilde:\"\\xD5\",Ouml:\"\\xD6\",times:\"\\xD7\",Oslash:\"\\xD8\",Ugrave:\"\\xD9\",Uacute:\"\\xDA\",Ucirc:\"\\xDB\",Uuml:\"\\xDC\",Yacute:\"\\xDD\",THORN:\"\\xDE\",szlig:\"\\xDF\",agrave:\"\\xE0\",aacute:\"\\xE1\",acirc:\"\\xE2\",atilde:\"\\xE3\",auml:\"\\xE4\",aring:\"\\xE5\",aelig:\"\\xE6\",ccedil:\"\\xE7\",egrave:\"\\xE8\",eacute:\"\\xE9\",ecirc:\"\\xEA\",euml:\"\\xEB\",igrave:\"\\xEC\",iacute:\"\\xED\",icirc:\"\\xEE\",iuml:\"\\xEF\",eth:\"\\xF0\",ntilde:\"\\xF1\",ograve:\"\\xF2\",oacute:\"\\xF3\",ocirc:\"\\xF4\",otilde:\"\\xF5\",ouml:\"\\xF6\",divide:\"\\xF7\",oslash:\"\\xF8\",ugrave:\"\\xF9\",uacute:\"\\xFA\",ucirc:\"\\xFB\",uuml:\"\\xFC\",yacute:\"\\xFD\",thorn:\"\\xFE\",yuml:\"\\xFF\",OElig:\"\\u0152\",oelig:\"\\u0153\",Scaron:\"\\u0160\",scaron:\"\\u0161\",Yuml:\"\\u0178\",fnof:\"\\u0192\",circ:\"\\u02C6\",tilde:\"\\u02DC\",Alpha:\"\\u0391\",Beta:\"\\u0392\",Gamma:\"\\u0393\",Delta:\"\\u0394\",Epsilon:\"\\u0395\",Zeta:\"\\u0396\",Eta:\"\\u0397\",Theta:\"\\u0398\",Iota:\"\\u0399\",Kappa:\"\\u039A\",Lambda:\"\\u039B\",Mu:\"\\u039C\",Nu:\"\\u039D\",Xi:\"\\u039E\",Omicron:\"\\u039F\",Pi:\"\\u03A0\",Rho:\"\\u03A1\",Sigma:\"\\u03A3\",Tau:\"\\u03A4\",Upsilon:\"\\u03A5\",Phi:\"\\u03A6\",Chi:\"\\u03A7\",Psi:\"\\u03A8\",Omega:\"\\u03A9\",alpha:\"\\u03B1\",beta:\"\\u03B2\",gamma:\"\\u03B3\",delta:\"\\u03B4\",epsilon:\"\\u03B5\",zeta:\"\\u03B6\",eta:\"\\u03B7\",theta:\"\\u03B8\",iota:\"\\u03B9\",kappa:\"\\u03BA\",lambda:\"\\u03BB\",mu:\"\\u03BC\",nu:\"\\u03BD\",xi:\"\\u03BE\",omicron:\"\\u03BF\",pi:\"\\u03C0\",rho:\"\\u03C1\",sigmaf:\"\\u03C2\",sigma:\"\\u03C3\",tau:\"\\u03C4\",upsilon:\"\\u03C5\",phi:\"\\u03C6\",chi:\"\\u03C7\",psi:\"\\u03C8\",omega:\"\\u03C9\",thetasym:\"\\u03D1\",upsih:\"\\u03D2\",piv:\"\\u03D6\",ensp:\"\\u2002\",emsp:\"\\u2003\",thinsp:\"\\u2009\",zwnj:\"\\u200C\",zwj:\"\\u200D\",lrm:\"\\u200E\",rlm:\"\\u200F\",ndash:\"\\u2013\",mdash:\"\\u2014\",lsquo:\"\\u2018\",rsquo:\"\\u2019\",sbquo:\"\\u201A\",ldquo:\"\\u201C\",rdquo:\"\\u201D\",bdquo:\"\\u201E\",dagger:\"\\u2020\",Dagger:\"\\u2021\",bull:\"\\u2022\",hellip:\"\\u2026\",permil:\"\\u2030\",prime:\"\\u2032\",Prime:\"\\u2033\",lsaquo:\"\\u2039\",rsaquo:\"\\u203A\",oline:\"\\u203E\",frasl:\"\\u2044\",euro:\"\\u20AC\",image:\"\\u2111\",weierp:\"\\u2118\",real:\"\\u211C\",trade:\"\\u2122\",alefsym:\"\\u2135\",larr:\"\\u2190\",uarr:\"\\u2191\",rarr:\"\\u2192\",darr:\"\\u2193\",harr:\"\\u2194\",crarr:\"\\u21B5\",lArr:\"\\u21D0\",uArr:\"\\u21D1\",rArr:\"\\u21D2\",dArr:\"\\u21D3\",hArr:\"\\u21D4\",forall:\"\\u2200\",part:\"\\u2202\",exist:\"\\u2203\",empty:\"\\u2205\",nabla:\"\\u2207\",isin:\"\\u2208\",notin:\"\\u2209\",ni:\"\\u220B\",prod:\"\\u220F\",sum:\"\\u2211\",minus:\"\\u2212\",lowast:\"\\u2217\",radic:\"\\u221A\",prop:\"\\u221D\",infin:\"\\u221E\",ang:\"\\u2220\",and:\"\\u2227\",or:\"\\u2228\",cap:\"\\u2229\",cup:\"\\u222A\",int:\"\\u222B\",there4:\"\\u2234\",sim:\"\\u223C\",cong:\"\\u2245\",asymp:\"\\u2248\",ne:\"\\u2260\",equiv:\"\\u2261\",le:\"\\u2264\",ge:\"\\u2265\",sub:\"\\u2282\",sup:\"\\u2283\",nsub:\"\\u2284\",sube:\"\\u2286\",supe:\"\\u2287\",oplus:\"\\u2295\",otimes:\"\\u2297\",perp:\"\\u22A5\",sdot:\"\\u22C5\",lceil:\"\\u2308\",rceil:\"\\u2309\",lfloor:\"\\u230A\",rfloor:\"\\u230B\",lang:\"\\u2329\",rang:\"\\u232A\",loz:\"\\u25CA\",spades:\"\\u2660\",clubs:\"\\u2663\",hearts:\"\\u2665\",diams:\"\\u2666\"}}}),A1=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(V,L,P,k){k===void 0&&(k=P);var Y=Object.getOwnPropertyDescriptor(L,P);(!Y||(\"get\"in Y?!L.__esModule:Y.writable||Y.configurable))&&(Y={enumerable:!0,get:function(){return L[P]}}),Object.defineProperty(V,k,Y)}:function(V,L,P,k){k===void 0&&(k=P),V[k]=L[P]}),Ve=M&&M.__setModuleDefault||(Object.create?function(V,L){Object.defineProperty(V,\"default\",{enumerable:!0,value:L})}:function(V,L){V.default=L}),Ke=M&&M.__importStar||function(V){if(V&&V.__esModule)return V;var L={};if(V!=null)for(var P in V)P!==\"default\"&&Object.prototype.hasOwnProperty.call(V,P)&&re(L,V,P);return Ve(L,V),L};Object.defineProperty(M,\"__esModule\",{value:!0}),M.firstDefined=M.nodeHasTokens=M.createError=M.TSError=M.convertTokens=M.convertToken=M.getTokenType=M.isChildUnwrappableOptionalChain=M.isChainExpression=M.isOptional=M.isComputedProperty=M.unescapeStringLiteralText=M.hasJSXAncestor=M.findFirstMatchingAncestor=M.findNextToken=M.getTSNodeAccessibility=M.getDeclarationKind=M.isJSXToken=M.isToken=M.getRange=M.canContainDirective=M.getLocFor=M.getLineAndCharacterFor=M.getBinaryExpressionType=M.isJSDocComment=M.isComment=M.isComma=M.getLastModifier=M.hasModifier=M.isESTreeClassMember=M.getTextForTokenKind=M.isLogicalOperator=M.isAssignmentOperator=void 0;var oi=Ke(_u()),kr=k1(),pr=EU(),Lr=oi.SyntaxKind,ar=[Lr.BarBarToken,Lr.AmpersandAmpersandToken,Lr.QuestionQuestionToken];function ke(V){return V.kind>=Lr.FirstAssignment&&V.kind<=Lr.LastAssignment}M.isAssignmentOperator=ke;function e(V){return ar.includes(V.kind)}M.isLogicalOperator=e;function a(V){return oi.tokenToString(V)}M.getTextForTokenKind=a;function C(V){return V.kind!==Lr.SemicolonClassElement}M.isESTreeClassMember=C;function w(V,L){return!!L.modifiers&&!!L.modifiers.length&&L.modifiers.some(P=>P.kind===V)}M.hasModifier=w;function B(V){return!!V.modifiers&&!!V.modifiers.length&&V.modifiers[V.modifiers.length-1]||null}M.getLastModifier=B;function E(V){return V.kind===Lr.CommaToken}M.isComma=E;function Q(V){return V.kind===Lr.SingleLineCommentTrivia||V.kind===Lr.MultiLineCommentTrivia}M.isComment=Q;function le(V){return V.kind===Lr.JSDocComment}M.isJSDocComment=le;function N(V){return ke(V)?kr.AST_NODE_TYPES.AssignmentExpression:e(V)?kr.AST_NODE_TYPES.LogicalExpression:kr.AST_NODE_TYPES.BinaryExpression}M.getBinaryExpressionType=N;function p(V,L){let P=L.getLineAndCharacterOfPosition(V);return{line:P.line+1,column:P.character}}M.getLineAndCharacterFor=p;function m(V,L,P){return{start:p(V,P),end:p(L,P)}}M.getLocFor=m;function G(V){if(V.kind===oi.SyntaxKind.Block)switch(V.parent.kind){case oi.SyntaxKind.Constructor:case oi.SyntaxKind.GetAccessor:case oi.SyntaxKind.SetAccessor:case oi.SyntaxKind.ArrowFunction:case oi.SyntaxKind.FunctionExpression:case oi.SyntaxKind.FunctionDeclaration:case oi.SyntaxKind.MethodDeclaration:return!0;default:return!1}return!0}M.canContainDirective=G;function oe(V,L){return[V.getStart(L),V.getEnd()]}M.getRange=oe;function f(V){return V.kind>=Lr.FirstToken&&V.kind<=Lr.LastToken}M.isToken=f;function T(V){return V.kind>=Lr.JsxElement&&V.kind<=Lr.JsxAttribute}M.isJSXToken=T;function K(V){return V.flags&oi.NodeFlags.Let?\"let\":V.flags&oi.NodeFlags.Const?\"const\":\"var\"}M.getDeclarationKind=K;function b(V){let L=V.modifiers;if(!L)return null;for(let P of L)switch(P.kind){case Lr.PublicKeyword:return\"public\";case Lr.ProtectedKeyword:return\"protected\";case Lr.PrivateKeyword:return\"private\";default:break}return null}M.getTSNodeAccessibility=b;function se(V,L,P){return k(L);function k(Y){return oi.isToken(Y)&&Y.pos===V.end?Y:y(Y.getChildren(P),U=>(U.pos<=V.pos&&U.end>V.end||U.pos===V.end)&&A(U,P)?k(U):void 0)}}M.findNextToken=se;function J(V,L){for(;V;){if(L(V))return V;V=V.parent}}M.findFirstMatchingAncestor=J;function ie(V){return!!J(V,T)}M.hasJSXAncestor=ie;function R(V){return V.replace(/&(?:#\\d+|#x[\\da-fA-F]+|[0-9a-zA-Z]+);/g,L=>{let P=L.slice(1,-1);if(P[0]===\"#\"){let k=P[1]===\"x\"?parseInt(P.slice(2),16):parseInt(P.slice(1),10);return k>1114111?L:String.fromCodePoint(k)}return pr.xhtmlEntities[P]||L})}M.unescapeStringLiteralText=R;function q(V){return V.kind===Lr.ComputedPropertyName}M.isComputedProperty=q;function O(V){return V.questionToken?V.questionToken.kind===Lr.QuestionToken:!1}M.isOptional=O;function ve(V){return V.type===kr.AST_NODE_TYPES.ChainExpression}M.isChainExpression=ve;function ee(V,L){return ve(L)&&V.expression.kind!==oi.SyntaxKind.ParenthesizedExpression}M.isChildUnwrappableOptionalChain=ee;function he(V){if(\"originalKeywordKind\"in V&&V.originalKeywordKind)return V.originalKeywordKind===Lr.NullKeyword?kr.AST_TOKEN_TYPES.Null:V.originalKeywordKind>=Lr.FirstFutureReservedWord&&V.originalKeywordKind<=Lr.LastKeyword?kr.AST_TOKEN_TYPES.Identifier:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstKeyword&&V.kind<=Lr.LastFutureReservedWord)return V.kind===Lr.FalseKeyword||V.kind===Lr.TrueKeyword?kr.AST_TOKEN_TYPES.Boolean:kr.AST_TOKEN_TYPES.Keyword;if(V.kind>=Lr.FirstPunctuation&&V.kind<=Lr.LastPunctuation)return kr.AST_TOKEN_TYPES.Punctuator;if(V.kind>=Lr.NoSubstitutionTemplateLiteral&&V.kind<=Lr.TemplateTail)return kr.AST_TOKEN_TYPES.Template;switch(V.kind){case Lr.NumericLiteral:return kr.AST_TOKEN_TYPES.Numeric;case Lr.JsxText:return kr.AST_TOKEN_TYPES.JSXText;case Lr.StringLiteral:return V.parent&&(V.parent.kind===Lr.JsxAttribute||V.parent.kind===Lr.JsxElement)?kr.AST_TOKEN_TYPES.JSXText:kr.AST_TOKEN_TYPES.String;case Lr.RegularExpressionLiteral:return kr.AST_TOKEN_TYPES.RegularExpression;case Lr.Identifier:case Lr.ConstructorKeyword:case Lr.GetKeyword:case Lr.SetKeyword:default:}return V.parent&&V.kind===Lr.Identifier&&(T(V.parent)||V.parent.kind===Lr.PropertyAccessExpression&&ie(V))?kr.AST_TOKEN_TYPES.JSXIdentifier:kr.AST_TOKEN_TYPES.Identifier}M.getTokenType=he;function F(V,L){let P=V.kind===Lr.JsxText?V.getFullStart():V.getStart(L),k=V.getEnd(),Y=L.text.slice(P,k),U=he(V);return U===kr.AST_TOKEN_TYPES.RegularExpression?{type:U,value:Y,range:[P,k],loc:m(P,k,L),regex:{pattern:Y.slice(1,Y.lastIndexOf(\"/\")),flags:Y.slice(Y.lastIndexOf(\"/\")+1)}}:{type:U,value:Y,range:[P,k],loc:m(P,k,L)}}M.convertToken=F;function x(V){let L=[];function P(k){if(!(Q(k)||le(k)))if(f(k)&&k.kind!==Lr.EndOfFileToken){let Y=F(k,V);Y&&L.push(Y)}else k.getChildren(V).forEach(P)}return P(V),L}M.convertTokens=x;var X=class extends Error{constructor(V,L,P,k,Y){super(V),this.fileName=L,this.index=P,this.lineNumber=k,this.column=Y,Object.defineProperty(this,\"name\",{value:new.target.name,enumerable:!1,configurable:!0})}};M.TSError=X;function $(V,L,P){let k=V.getLineAndCharacterOfPosition(L);return new X(P,V.fileName,L,k.line+1,k.character)}M.createError=$;function A(V,L){return V.kind===Lr.EndOfFileToken?!!V.jsDoc:V.getWidth(L)!==0}M.nodeHasTokens=A;function y(V,L){if(V!==void 0)for(let P=0;P{let E=this.convertChild(B);if(w)if((E==null?void 0:E.expression)&&oi.isExpressionStatement(B)&&oi.isStringLiteral(B.expression)){let Q=E.expression.raw;return E.directive=Q.slice(1,-1),E}else w=!1;return E}).filter(B=>B)}convertTypeArgumentsToTypeParameters(a,C){let w=(0,kr.findNextToken)(a,this.ast,this.ast);return this.createNode(C,{type:pr.AST_NODE_TYPES.TSTypeParameterInstantiation,range:[a.pos-1,w.end],params:a.map(B=>this.convertType(B))})}convertTSTypeParametersToTypeParametersDeclaration(a){let C=(0,kr.findNextToken)(a,this.ast,this.ast);return{type:pr.AST_NODE_TYPES.TSTypeParameterDeclaration,range:[a.pos-1,C.end],loc:(0,kr.getLocFor)(a.pos-1,C.end,this.ast),params:a.map(w=>this.convertType(w))}}convertParameters(a){return!a||!a.length?[]:a.map(C=>{var w;let B=this.convertChild(C);return!((w=C.decorators)===null||w===void 0)&&w.length&&(B.decorators=C.decorators.map(E=>this.convertChild(E))),B})}convertChainExpression(a,C){let{child:w,isOptional:B}=(()=>a.type===pr.AST_NODE_TYPES.MemberExpression?{child:a.object,isOptional:a.optional}:a.type===pr.AST_NODE_TYPES.CallExpression?{child:a.callee,isOptional:a.optional}:{child:a.expression,isOptional:!1})(),E=(0,kr.isChildUnwrappableOptionalChain)(C,w);if(!E&&!B)return a;if(E&&(0,kr.isChainExpression)(w)){let Q=w.expression;a.type===pr.AST_NODE_TYPES.MemberExpression?a.object=Q:a.type===pr.AST_NODE_TYPES.CallExpression?a.callee=Q:a.expression=Q}return this.createNode(C,{type:pr.AST_NODE_TYPES.ChainExpression,expression:a})}deeplyCopy(a){if(a.kind===oi.SyntaxKind.JSDocFunctionType)throw(0,kr.createError)(this.ast,a.pos,\"JSDoc types can only be used inside documentation comments.\");let C=\"TS\".concat(ar[a.kind]);if(this.options.errorOnUnknownASTType&&!pr.AST_NODE_TYPES[C])throw new Error('Unknown AST_NODE_TYPE: \"'.concat(C,'\"'));let w=this.createNode(a,{type:C});return\"type\"in a&&(w.typeAnnotation=a.type&&\"kind\"in a.type&&oi.isTypeNode(a.type)?this.convertTypeAnnotation(a.type,a):null),\"typeArguments\"in a&&(w.typeParameters=a.typeArguments&&\"pos\"in a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null),\"typeParameters\"in a&&(w.typeParameters=a.typeParameters&&\"pos\"in a.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters):null),\"decorators\"in a&&a.decorators&&a.decorators.length&&(w.decorators=a.decorators.map(B=>this.convertChild(B))),Object.entries(a).filter(B=>{let[E]=B;return!/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators|transformFlags)$/.test(E)}).forEach(B=>{let[E,Q]=B;Array.isArray(Q)?w[E]=Q.map(le=>this.convertChild(le)):Q&&typeof Q==\"object\"&&Q.kind?w[E]=this.convertChild(Q):w[E]=Q}),w}convertJSXIdentifier(a){let C=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:a.getText()});return this.registerTSNodeInNodeMap(a,C),C}convertJSXNamespaceOrIdentifier(a){let C=a.getText(),w=C.indexOf(\":\");if(w>0){let B=(0,kr.getRange)(a,this.ast),E=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXNamespacedName,namespace:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(0,w),range:[B[0],B[0]+w]}),name:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXIdentifier,name:C.slice(w+1),range:[B[0]+w+1,B[1]]}),range:B});return this.registerTSNodeInNodeMap(a,E),E}return this.convertJSXIdentifier(a)}convertJSXTagName(a,C){let w;switch(a.kind){case ar.PropertyAccessExpression:if(a.name.kind===ar.PrivateIdentifier)throw new Error(\"Non-private identifier expected.\");w=this.createNode(a,{type:pr.AST_NODE_TYPES.JSXMemberExpression,object:this.convertJSXTagName(a.expression,C),property:this.convertJSXIdentifier(a.name)});break;case ar.ThisKeyword:case ar.Identifier:default:return this.convertJSXNamespaceOrIdentifier(a)}return this.registerTSNodeInNodeMap(a,w),w}convertMethodSignature(a){let C=this.createNode(a,{type:pr.AST_NODE_TYPES.TSMethodSignature,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),params:this.convertParameters(a.parameters),kind:(()=>{switch(a.kind){case ar.GetAccessor:return\"get\";case ar.SetAccessor:return\"set\";case ar.MethodSignature:return\"method\"}})()});(0,kr.isOptional)(a)&&(C.optional=!0),a.type&&(C.returnType=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(C.readonly=!0),a.typeParameters&&(C.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters));let w=(0,kr.getTSNodeAccessibility)(a);return w&&(C.accessibility=w),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(C.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(C.static=!0),C}convertAssertClasue(a){return a===void 0?[]:a.elements.map(C=>this.convertChild(C))}applyModifiersToResult(a,C){if(!C||!C.length)return;let w=[];for(let B of C)switch(B.kind){case ar.ExportKeyword:case ar.DefaultKeyword:break;case ar.ConstKeyword:a.const=!0;break;case ar.DeclareKeyword:a.declare=!0;break;default:w.push(this.convertChild(B));break}w.length&&(a.modifiers=w)}fixParentLocation(a,C){C[0]a.range[1]&&(a.range[1]=C[1],a.loc.end=(0,kr.getLineAndCharacterFor)(a.range[1],this.ast))}assertModuleSpecifier(a,C){var w;if(!C&&a.moduleSpecifier==null)throw(0,kr.createError)(this.ast,a.pos,\"Module specifier must be a string literal.\");if(a.moduleSpecifier&&((w=a.moduleSpecifier)===null||w===void 0?void 0:w.kind)!==ar.StringLiteral)throw(0,kr.createError)(this.ast,a.moduleSpecifier.pos,\"Module specifier must be a string literal.\")}convertNode(a,C){var w,B,E,Q,le,N,p,m,G,oe;switch(a.kind){case ar.SourceFile:return this.createNode(a,{type:pr.AST_NODE_TYPES.Program,body:this.convertBodyExpressions(a.statements,a),sourceType:a.externalModuleIndicator?\"module\":\"script\",range:[a.getStart(this.ast),a.endOfFileToken.end]});case ar.Block:return this.createNode(a,{type:pr.AST_NODE_TYPES.BlockStatement,body:this.convertBodyExpressions(a.statements,a)});case ar.Identifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.Identifier,name:a.text});case ar.PrivateIdentifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.PrivateIdentifier,name:a.text.slice(1)});case ar.WithStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.WithStatement,object:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ReturnStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ReturnStatement,argument:this.convertChild(a.expression)});case ar.LabeledStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.LabeledStatement,label:this.convertChild(a.label),body:this.convertChild(a.statement)});case ar.ContinueStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ContinueStatement,label:this.convertChild(a.label)});case ar.BreakStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.BreakStatement,label:this.convertChild(a.label)});case ar.IfStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.IfStatement,test:this.convertChild(a.expression),consequent:this.convertChild(a.thenStatement),alternate:this.convertChild(a.elseStatement)});case ar.SwitchStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.SwitchStatement,discriminant:this.convertChild(a.expression),cases:a.caseBlock.clauses.map(f=>this.convertChild(f))});case ar.CaseClause:case ar.DefaultClause:return this.createNode(a,{type:pr.AST_NODE_TYPES.SwitchCase,test:a.kind===ar.CaseClause?this.convertChild(a.expression):null,consequent:a.statements.map(f=>this.convertChild(f))});case ar.ThrowStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ThrowStatement,argument:this.convertChild(a.expression)});case ar.TryStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.TryStatement,block:this.convertChild(a.tryBlock),handler:this.convertChild(a.catchClause),finalizer:this.convertChild(a.finallyBlock)});case ar.CatchClause:return this.createNode(a,{type:pr.AST_NODE_TYPES.CatchClause,param:a.variableDeclaration?this.convertBindingNameWithTypeAnnotation(a.variableDeclaration.name,a.variableDeclaration.type):null,body:this.convertChild(a.block)});case ar.WhileStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.WhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.DoStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.DoWhileStatement,test:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForStatement,init:this.convertChild(a.initializer),test:this.convertChild(a.condition),update:this.convertChild(a.incrementor),body:this.convertChild(a.statement)});case ar.ForInStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForInStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement)});case ar.ForOfStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ForOfStatement,left:this.convertPattern(a.initializer),right:this.convertChild(a.expression),body:this.convertChild(a.statement),await:Boolean(a.awaitModifier&&a.awaitModifier.kind===ar.AwaitKeyword)});case ar.FunctionDeclaration:{let f=(0,kr.hasModifier)(ar.DeclareKeyword,a),T=this.createNode(a,{type:f||!a.body?pr.AST_NODE_TYPES.TSDeclareFunction:pr.AST_NODE_TYPES.FunctionDeclaration,id:this.convertChild(a.name),generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),params:this.convertParameters(a.parameters),body:this.convertChild(a.body)||void 0});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f&&(T.declare=!0),this.fixExports(a,T)}case ar.VariableDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclarator,id:this.convertBindingNameWithTypeAnnotation(a.name,a.type,a),init:this.convertChild(a.initializer)});return a.exclamationToken&&(f.definite=!0),f}case ar.VariableStatement:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarationList.declarations.map(T=>this.convertChild(T)),kind:(0,kr.getDeclarationKind)(a.declarationList)});return a.decorators&&(f.decorators=a.decorators.map(T=>this.convertChild(T))),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),this.fixExports(a,f)}case ar.VariableDeclarationList:return this.createNode(a,{type:pr.AST_NODE_TYPES.VariableDeclaration,declarations:a.declarations.map(f=>this.convertChild(f)),kind:(0,kr.getDeclarationKind)(a)});case ar.ExpressionStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.ExpressionStatement,expression:this.convertChild(a.expression)});case ar.ThisKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.ThisExpression});case ar.ArrayLiteralExpression:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))}):this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayExpression,elements:a.elements.map(f=>this.convertChild(f))});case ar.ObjectLiteralExpression:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectPattern,properties:a.properties.map(f=>this.convertPattern(f))}):this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectExpression,properties:a.properties.map(f=>this.convertChild(f))});case ar.PropertyAssignment:return this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.converter(a.initializer,a,this.inTypeMode,this.allowPattern),computed:(0,kr.isComputedProperty)(a.name),method:!1,shorthand:!1,kind:\"init\"});case ar.ShorthandPropertyAssignment:return a.objectAssignmentInitializer?this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.name),right:this.convertChild(a.objectAssignmentInitializer)}),computed:!1,method:!1,shorthand:!0,kind:\"init\"}):this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:this.convertChild(a.name),computed:!1,method:!1,shorthand:!0,kind:\"init\"});case ar.ComputedPropertyName:return this.convertChild(a.expression);case ar.PropertyDeclaration:{let f=(0,kr.hasModifier)(ar.AbstractKeyword,a),T=this.createNode(a,{type:f?pr.AST_NODE_TYPES.TSAbstractPropertyDefinition:pr.AST_NODE_TYPES.PropertyDefinition,key:this.convertChild(a.name),value:f?null:this.convertChild(a.initializer),computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,declare:(0,kr.hasModifier)(ar.DeclareKeyword,a),override:(0,kr.hasModifier)(ar.OverrideKeyword,a)});a.type&&(T.typeAnnotation=this.convertTypeAnnotation(a.type,a)),a.decorators&&(T.decorators=a.decorators.map(b=>this.convertChild(b)));let K=(0,kr.getTSNodeAccessibility)(a);return K&&(T.accessibility=K),(a.name.kind===ar.Identifier||a.name.kind===ar.ComputedPropertyName||a.name.kind===ar.PrivateIdentifier)&&a.questionToken&&(T.optional=!0),a.exclamationToken&&(T.definite=!0),T.key.type===pr.AST_NODE_TYPES.Literal&&a.questionToken&&(T.optional=!0),T}case ar.GetAccessor:case ar.SetAccessor:if(a.parent.kind===ar.InterfaceDeclaration||a.parent.kind===ar.TypeLiteral)return this.convertMethodSignature(a);case ar.MethodDeclaration:{let f=this.createNode(a,{type:a.body?pr.AST_NODE_TYPES.FunctionExpression:pr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,generator:!!a.asteriskToken,expression:!1,async:(0,kr.hasModifier)(ar.AsyncKeyword,a),body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end],params:[]});a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(f,f.typeParameters.range));let T;if(C.kind===ar.ObjectLiteralExpression)f.params=a.parameters.map(K=>this.convertChild(K)),T=this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),method:a.kind===ar.MethodDeclaration,shorthand:!1,kind:\"init\"});else{f.params=this.convertParameters(a.parameters);let K=(0,kr.hasModifier)(ar.AbstractKeyword,a)?pr.AST_NODE_TYPES.TSAbstractMethodDefinition:pr.AST_NODE_TYPES.MethodDefinition;T=this.createNode(a,{type:K,key:this.convertChild(a.name),value:f,computed:(0,kr.isComputedProperty)(a.name),static:(0,kr.hasModifier)(ar.StaticKeyword,a),kind:\"method\",override:(0,kr.hasModifier)(ar.OverrideKeyword,a)}),a.decorators&&(T.decorators=a.decorators.map(se=>this.convertChild(se)));let b=(0,kr.getTSNodeAccessibility)(a);b&&(T.accessibility=b)}return a.questionToken&&(T.optional=!0),a.kind===ar.GetAccessor?T.kind=\"get\":a.kind===ar.SetAccessor?T.kind=\"set\":!T.static&&a.name.kind===ar.StringLiteral&&a.name.text===\"constructor\"&&T.type!==pr.AST_NODE_TYPES.Property&&(T.kind=\"constructor\"),T}case ar.Constructor:{let f=(0,kr.getLastModifier)(a),T=f&&(0,kr.findNextToken)(f,a,this.ast)||a.getFirstToken(),K=this.createNode(a,{type:a.body?pr.AST_NODE_TYPES.FunctionExpression:pr.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,params:this.convertParameters(a.parameters),generator:!1,expression:!1,async:!1,body:this.convertChild(a.body),range:[a.parameters.pos-1,a.end]});a.typeParameters&&(K.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters),this.fixParentLocation(K,K.typeParameters.range)),a.type&&(K.returnType=this.convertTypeAnnotation(a.type,a));let b=this.createNode(a,{type:pr.AST_NODE_TYPES.Identifier,name:\"constructor\",range:[T.getStart(this.ast),T.end]}),se=(0,kr.hasModifier)(ar.StaticKeyword,a),J=this.createNode(a,{type:(0,kr.hasModifier)(ar.AbstractKeyword,a)?pr.AST_NODE_TYPES.TSAbstractMethodDefinition:pr.AST_NODE_TYPES.MethodDefinition,key:b,value:K,computed:!1,static:se,kind:se?\"method\":\"constructor\",override:!1}),ie=(0,kr.getTSNodeAccessibility)(a);return ie&&(J.accessibility=ie),J}case ar.FunctionExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.FunctionExpression,id:this.convertChild(a.name),generator:!!a.asteriskToken,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:!1});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.SuperKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Super});case ar.ArrayBindingPattern:return this.createNode(a,{type:pr.AST_NODE_TYPES.ArrayPattern,elements:a.elements.map(f=>this.convertPattern(f))});case ar.OmittedExpression:return null;case ar.ObjectBindingPattern:return this.createNode(a,{type:pr.AST_NODE_TYPES.ObjectPattern,properties:a.elements.map(f=>this.convertPattern(f))});case ar.BindingElement:if(C.kind===ar.ArrayBindingPattern){let f=this.convertChild(a.name,C);return a.initializer?this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}):a.dotDotDotToken?this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:f}):f}else{let f;return a.dotDotDotToken?f=this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertChild((w=a.propertyName)!==null&&w!==void 0?w:a.name)}):f=this.createNode(a,{type:pr.AST_NODE_TYPES.Property,key:this.convertChild((B=a.propertyName)!==null&&B!==void 0?B:a.name),value:this.convertChild(a.name),computed:Boolean(a.propertyName&&a.propertyName.kind===ar.ComputedPropertyName),method:!1,shorthand:!a.propertyName,kind:\"init\"}),a.initializer&&(f.value=this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertChild(a.name),right:this.convertChild(a.initializer),range:[a.name.getStart(this.ast),a.initializer.end]})),f}case ar.ArrowFunction:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.ArrowFunctionExpression,generator:!1,id:null,params:this.convertParameters(a.parameters),body:this.convertChild(a.body),async:(0,kr.hasModifier)(ar.AsyncKeyword,a),expression:a.body.kind!==ar.Block});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.YieldExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.YieldExpression,delegate:!!a.asteriskToken,argument:this.convertChild(a.expression)});case ar.AwaitExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.AwaitExpression,argument:this.convertChild(a.expression)});case ar.NoSubstitutionTemplateLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-1),cooked:a.text},tail:!0})],expressions:[]});case ar.TemplateExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateLiteral,quasis:[this.convertChild(a.head)],expressions:[]});return a.templateSpans.forEach(T=>{f.expressions.push(this.convertChild(T.expression)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.TaggedTemplateExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TaggedTemplateExpression,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,tag:this.convertChild(a.tag),quasi:this.convertChild(a.template)});case ar.TemplateHead:case ar.TemplateMiddle:case ar.TemplateTail:{let f=a.kind===ar.TemplateTail;return this.createNode(a,{type:pr.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(a.getStart(this.ast)+1,a.end-(f?1:2)),cooked:a.text},tail:f})}case ar.SpreadAssignment:case ar.SpreadElement:return this.allowPattern?this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertPattern(a.expression)}):this.createNode(a,{type:pr.AST_NODE_TYPES.SpreadElement,argument:this.convertChild(a.expression)});case ar.Parameter:{let f,T;return a.dotDotDotToken?f=T=this.createNode(a,{type:pr.AST_NODE_TYPES.RestElement,argument:this.convertChild(a.name)}):a.initializer?(f=this.convertChild(a.name),T=this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:f,right:this.convertChild(a.initializer)}),a.modifiers&&(T.range[0]=f.range[0],T.loc=(0,kr.getLocFor)(T.range[0],T.range[1],this.ast))):f=T=this.convertChild(a.name,C),a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),this.fixParentLocation(f,f.typeAnnotation.range)),a.questionToken&&(a.questionToken.end>f.range[1]&&(f.range[1]=a.questionToken.end,f.loc.end=(0,kr.getLineAndCharacterFor)(f.range[1],this.ast)),f.optional=!0),a.modifiers?this.createNode(a,{type:pr.AST_NODE_TYPES.TSParameterProperty,accessibility:(E=(0,kr.getTSNodeAccessibility)(a))!==null&&E!==void 0?E:void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0,override:(0,kr.hasModifier)(ar.OverrideKeyword,a)||void 0,parameter:T}):T}case ar.ClassDeclaration:case ar.ClassExpression:{let f=(Q=a.heritageClauses)!==null&&Q!==void 0?Q:[],T=a.kind===ar.ClassDeclaration?pr.AST_NODE_TYPES.ClassDeclaration:pr.AST_NODE_TYPES.ClassExpression,K=f.find(ie=>ie.token===ar.ExtendsKeyword),b=f.find(ie=>ie.token===ar.ImplementsKeyword),se=this.createNode(a,{type:T,id:this.convertChild(a.name),body:this.createNode(a,{type:pr.AST_NODE_TYPES.ClassBody,body:[],range:[a.members.pos-1,a.end]}),superClass:K!=null&&K.types[0]?this.convertChild(K.types[0].expression):null});if(K){if(K.types.length>1)throw(0,kr.createError)(this.ast,K.types[1].pos,\"Classes can only extend a single class.\");!((le=K.types[0])===null||le===void 0)&&le.typeArguments&&(se.superTypeParameters=this.convertTypeArgumentsToTypeParameters(K.types[0].typeArguments,K.types[0]))}a.typeParameters&&(se.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),b&&(se.implements=b.types.map(ie=>this.convertChild(ie))),(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(se.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(se.declare=!0),a.decorators&&(se.decorators=a.decorators.map(ie=>this.convertChild(ie)));let J=a.members.filter(kr.isESTreeClassMember);return J.length&&(se.body.body=J.map(ie=>this.convertChild(ie))),this.fixExports(a,se)}case ar.ModuleBlock:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSModuleBlock,body:this.convertBodyExpressions(a.statements,a)});case ar.ImportDeclaration:{this.assertModuleSpecifier(a,!1);let f=this.createNode(a,{type:pr.AST_NODE_TYPES.ImportDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:[],importKind:\"value\",assertions:this.convertAssertClasue(a.assertClause)});if(a.importClause&&(a.importClause.isTypeOnly&&(f.importKind=\"type\"),a.importClause.name&&f.specifiers.push(this.convertChild(a.importClause)),a.importClause.namedBindings))switch(a.importClause.namedBindings.kind){case ar.NamespaceImport:f.specifiers.push(this.convertChild(a.importClause.namedBindings));break;case ar.NamedImports:f.specifiers=f.specifiers.concat(a.importClause.namedBindings.elements.map(T=>this.convertChild(T)));break}return f}case ar.NamespaceImport:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportNamespaceSpecifier,local:this.convertChild(a.name)});case ar.ImportSpecifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportSpecifier,local:this.convertChild(a.name),imported:this.convertChild((N=a.propertyName)!==null&&N!==void 0?N:a.name),importKind:a.isTypeOnly?\"type\":\"value\"});case ar.ImportClause:{let f=this.convertChild(a.name);return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportDefaultSpecifier,local:f,range:f.range})}case ar.ExportDeclaration:return((p=a.exportClause)===null||p===void 0?void 0:p.kind)===ar.NamedExports?(this.assertModuleSpecifier(a,!0),this.createNode(a,{type:pr.AST_NODE_TYPES.ExportNamedDeclaration,source:this.convertChild(a.moduleSpecifier),specifiers:a.exportClause.elements.map(f=>this.convertChild(f)),exportKind:a.isTypeOnly?\"type\":\"value\",declaration:null,assertions:this.convertAssertClasue(a.assertClause)})):(this.assertModuleSpecifier(a,!1),this.createNode(a,{type:pr.AST_NODE_TYPES.ExportAllDeclaration,source:this.convertChild(a.moduleSpecifier),exportKind:a.isTypeOnly?\"type\":\"value\",exported:a.exportClause&&a.exportClause.kind===ar.NamespaceExport?this.convertChild(a.exportClause.name):null,assertions:this.convertAssertClasue(a.assertClause)}));case ar.ExportSpecifier:return this.createNode(a,{type:pr.AST_NODE_TYPES.ExportSpecifier,local:this.convertChild((m=a.propertyName)!==null&&m!==void 0?m:a.name),exported:this.convertChild(a.name),exportKind:a.isTypeOnly?\"type\":\"value\"});case ar.ExportAssignment:return a.isExportEquals?this.createNode(a,{type:pr.AST_NODE_TYPES.TSExportAssignment,expression:this.convertChild(a.expression)}):this.createNode(a,{type:pr.AST_NODE_TYPES.ExportDefaultDeclaration,declaration:this.convertChild(a.expression),exportKind:\"value\"});case ar.PrefixUnaryExpression:case ar.PostfixUnaryExpression:{let f=(0,kr.getTextForTokenKind)(a.operator);return f===\"++\"||f===\"--\"?this.createNode(a,{type:pr.AST_NODE_TYPES.UpdateExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)}):this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:f,prefix:a.kind===ar.PrefixUnaryExpression,argument:this.convertChild(a.operand)})}case ar.DeleteExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:\"delete\",prefix:!0,argument:this.convertChild(a.expression)});case ar.VoidExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:\"void\",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOfExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.UnaryExpression,operator:\"typeof\",prefix:!0,argument:this.convertChild(a.expression)});case ar.TypeOperator:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeOperator,operator:(0,kr.getTextForTokenKind)(a.operator),typeAnnotation:this.convertChild(a.type)});case ar.BinaryExpression:if((0,kr.isComma)(a.operatorToken)){let f=this.createNode(a,{type:pr.AST_NODE_TYPES.SequenceExpression,expressions:[]}),T=this.convertChild(a.left);return T.type===pr.AST_NODE_TYPES.SequenceExpression&&a.left.kind!==ar.ParenthesizedExpression?f.expressions=f.expressions.concat(T.expressions):f.expressions.push(T),f.expressions.push(this.convertChild(a.right)),f}else{let f=(0,kr.getBinaryExpressionType)(a.operatorToken);return this.allowPattern&&f===pr.AST_NODE_TYPES.AssignmentExpression?this.createNode(a,{type:pr.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(a.left,a),right:this.convertChild(a.right)}):this.createNode(a,{type:f,operator:(0,kr.getTextForTokenKind)(a.operatorToken.kind),left:this.converter(a.left,a,this.inTypeMode,f===pr.AST_NODE_TYPES.AssignmentExpression),right:this.convertChild(a.right)})}case ar.PropertyAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.name),K=!1,b=this.createNode(a,{type:pr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.ElementAccessExpression:{let f=this.convertChild(a.expression),T=this.convertChild(a.argumentExpression),K=!0,b=this.createNode(a,{type:pr.AST_NODE_TYPES.MemberExpression,object:f,property:T,computed:K,optional:a.questionDotToken!==void 0});return this.convertChainExpression(b,a)}case ar.CallExpression:{if(a.expression.kind===ar.ImportKeyword){if(a.arguments.length!==1&&a.arguments.length!==2)throw(0,kr.createError)(this.ast,a.arguments.pos,\"Dynamic import requires exactly one or two arguments.\");return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportExpression,source:this.convertChild(a.arguments[0]),attributes:a.arguments[1]?this.convertChild(a.arguments[1]):null})}let f=this.convertChild(a.expression),T=a.arguments.map(b=>this.convertChild(b)),K=this.createNode(a,{type:pr.AST_NODE_TYPES.CallExpression,callee:f,arguments:T,optional:a.questionDotToken!==void 0});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),this.convertChainExpression(K,a)}case ar.NewExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.NewExpression,callee:this.convertChild(a.expression),arguments:a.arguments?a.arguments.map(T=>this.convertChild(T)):[]});return a.typeArguments&&(f.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),f}case ar.ConditionalExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.ConditionalExpression,test:this.convertChild(a.condition),consequent:this.convertChild(a.whenTrue),alternate:this.convertChild(a.whenFalse)});case ar.MetaProperty:return this.createNode(a,{type:pr.AST_NODE_TYPES.MetaProperty,meta:this.createNode(a.getFirstToken(),{type:pr.AST_NODE_TYPES.Identifier,name:(0,kr.getTextForTokenKind)(a.keywordToken)}),property:this.convertChild(a.name)});case ar.Decorator:return this.createNode(a,{type:pr.AST_NODE_TYPES.Decorator,expression:this.convertChild(a.expression)});case ar.StringLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:C.kind===ar.JsxAttribute?(0,kr.unescapeStringLiteralText)(a.text):a.text,raw:a.getText()});case ar.NumericLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:Number(a.text),raw:a.getText()});case ar.BigIntLiteral:{let f=(0,kr.getRange)(a,this.ast),T=this.ast.text.slice(f[0],f[1]),K=T.slice(0,-1).replace(/_/g,\"\"),b=typeof BigInt<\"u\"?BigInt(K):null;return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,raw:T,value:b,bigint:b===null?K:String(b),range:f})}case ar.RegularExpressionLiteral:{let f=a.text.slice(1,a.text.lastIndexOf(\"/\")),T=a.text.slice(a.text.lastIndexOf(\"/\")+1),K=null;try{K=new RegExp(f,T)}catch{K=null}return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:K,raw:a.text,regex:{pattern:f,flags:T}})}case ar.TrueKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:!0,raw:\"true\"});case ar.FalseKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:!1,raw:\"false\"});case ar.NullKeyword:return!Lr.typescriptVersionIsAtLeast[\"4.0\"]&&this.inTypeMode?this.createNode(a,{type:pr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:pr.AST_NODE_TYPES.Literal,value:null,raw:\"null\"});case ar.EmptyStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.EmptyStatement});case ar.DebuggerStatement:return this.createNode(a,{type:pr.AST_NODE_TYPES.DebuggerStatement});case ar.JsxElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXElement,openingElement:this.convertChild(a.openingElement),closingElement:this.convertChild(a.closingElement),children:a.children.map(f=>this.convertChild(f))});case ar.JsxFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXFragment,openingFragment:this.convertChild(a.openingFragment),closingFragment:this.convertChild(a.closingFragment),children:a.children.map(f=>this.convertChild(f))});case ar.JsxSelfClosingElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXElement,openingElement:this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!0,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f)),range:(0,kr.getRange)(a,this.ast)}),closingElement:null,children:[]});case ar.JsxOpeningElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningElement,typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0,selfClosing:!1,name:this.convertJSXTagName(a.tagName,a),attributes:a.attributes.properties.map(f=>this.convertChild(f))});case ar.JsxClosingElement:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXClosingElement,name:this.convertJSXTagName(a.tagName,a)});case ar.JsxOpeningFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXOpeningFragment});case ar.JsxClosingFragment:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXClosingFragment});case ar.JsxExpression:{let f=a.expression?this.convertChild(a.expression):this.createNode(a,{type:pr.AST_NODE_TYPES.JSXEmptyExpression,range:[a.getStart(this.ast)+1,a.getEnd()-1]});return a.dotDotDotToken?this.createNode(a,{type:pr.AST_NODE_TYPES.JSXSpreadChild,expression:f}):this.createNode(a,{type:pr.AST_NODE_TYPES.JSXExpressionContainer,expression:f})}case ar.JsxAttribute:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(a.name),value:this.convertChild(a.initializer)});case ar.JsxText:{let f=a.getFullStart(),T=a.getEnd(),K=this.ast.text.slice(f,T);return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXText,value:(0,kr.unescapeStringLiteralText)(K),raw:K,range:[f,T]})}case ar.JsxSpreadAttribute:return this.createNode(a,{type:pr.AST_NODE_TYPES.JSXSpreadAttribute,argument:this.convertChild(a.expression)});case ar.QualifiedName:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSQualifiedName,left:this.convertChild(a.left),right:this.convertChild(a.right)});case ar.TypeReference:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeReference,typeName:this.convertType(a.typeName),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):void 0});case ar.TypeParameter:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeParameter,name:this.convertType(a.name),constraint:a.constraint?this.convertType(a.constraint):void 0,default:a.default?this.convertType(a.default):void 0,in:(0,kr.hasModifier)(ar.InKeyword,a),out:(0,kr.hasModifier)(ar.OutKeyword,a)});case ar.ThisType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSThisType});case ar.AnyKeyword:case ar.BigIntKeyword:case ar.BooleanKeyword:case ar.NeverKeyword:case ar.NumberKeyword:case ar.ObjectKeyword:case ar.StringKeyword:case ar.SymbolKeyword:case ar.UnknownKeyword:case ar.VoidKeyword:case ar.UndefinedKeyword:case ar.IntrinsicKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES[\"TS\".concat(ar[a.kind])]});case ar.NonNullExpression:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSNonNullExpression,expression:this.convertChild(a.expression)});return this.convertChainExpression(f,a)}case ar.TypeLiteral:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeLiteral,members:a.members.map(f=>this.convertChild(f))});case ar.ArrayType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSArrayType,elementType:this.convertType(a.elementType)});case ar.IndexedAccessType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSIndexedAccessType,objectType:this.convertType(a.objectType),indexType:this.convertType(a.indexType)});case ar.ConditionalType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSConditionalType,checkType:this.convertType(a.checkType),extendsType:this.convertType(a.extendsType),trueType:this.convertType(a.trueType),falseType:this.convertType(a.falseType)});case ar.TypeQuery:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeQuery,exprName:this.convertType(a.exprName),typeParameters:a.typeArguments&&this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)});case ar.MappedType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSMappedType,typeParameter:this.convertType(a.typeParameter),nameType:(G=this.convertType(a.nameType))!==null&&G!==void 0?G:null});return a.readonlyToken&&(a.readonlyToken.kind===ar.ReadonlyKeyword?f.readonly=!0:f.readonly=(0,kr.getTextForTokenKind)(a.readonlyToken.kind)),a.questionToken&&(a.questionToken.kind===ar.QuestionToken?f.optional=!0:f.optional=(0,kr.getTextForTokenKind)(a.questionToken.kind)),a.type&&(f.typeAnnotation=this.convertType(a.type)),f}case ar.ParenthesizedExpression:return this.convertChild(a.expression,C);case ar.TypeAliasDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeAliasDeclaration,id:this.convertChild(a.name),typeAnnotation:this.convertType(a.type)});return(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(f.declare=!0),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),this.fixExports(a,f)}case ar.MethodSignature:return this.convertMethodSignature(a);case ar.PropertySignature:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSPropertySignature,optional:(0,kr.isOptional)(a)||void 0,computed:(0,kr.isComputedProperty)(a.name),key:this.convertChild(a.name),typeAnnotation:a.type?this.convertTypeAnnotation(a.type,a):void 0,initializer:this.convertChild(a.initializer)||void 0,readonly:(0,kr.hasModifier)(ar.ReadonlyKeyword,a)||void 0,static:(0,kr.hasModifier)(ar.StaticKeyword,a)||void 0,export:(0,kr.hasModifier)(ar.ExportKeyword,a)||void 0}),T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),f}case ar.IndexSignature:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSIndexSignature,parameters:a.parameters.map(K=>this.convertChild(K))});a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a)),(0,kr.hasModifier)(ar.ReadonlyKeyword,a)&&(f.readonly=!0);let T=(0,kr.getTSNodeAccessibility)(a);return T&&(f.accessibility=T),(0,kr.hasModifier)(ar.ExportKeyword,a)&&(f.export=!0),(0,kr.hasModifier)(ar.StaticKeyword,a)&&(f.static=!0),f}case ar.ConstructorType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSConstructorType,params:this.convertParameters(a.parameters),abstract:(0,kr.hasModifier)(ar.AbstractKeyword,a)});return a.type&&(f.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(f.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f}case ar.FunctionType:case ar.ConstructSignature:case ar.CallSignature:{let f=a.kind===ar.ConstructSignature?pr.AST_NODE_TYPES.TSConstructSignatureDeclaration:a.kind===ar.CallSignature?pr.AST_NODE_TYPES.TSCallSignatureDeclaration:pr.AST_NODE_TYPES.TSFunctionType,T=this.createNode(a,{type:f,params:this.convertParameters(a.parameters)});return a.type&&(T.returnType=this.convertTypeAnnotation(a.type,a)),a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),T}case ar.ExpressionWithTypeArguments:{let f=C.kind,T=f===ar.InterfaceDeclaration?pr.AST_NODE_TYPES.TSInterfaceHeritage:f===ar.HeritageClause?pr.AST_NODE_TYPES.TSClassImplements:pr.AST_NODE_TYPES.TSInstantiationExpression,K=this.createNode(a,{type:T,expression:this.convertChild(a.expression)});return a.typeArguments&&(K.typeParameters=this.convertTypeArgumentsToTypeParameters(a.typeArguments,a)),K}case ar.InterfaceDeclaration:{let f=(oe=a.heritageClauses)!==null&&oe!==void 0?oe:[],T=this.createNode(a,{type:pr.AST_NODE_TYPES.TSInterfaceDeclaration,body:this.createNode(a,{type:pr.AST_NODE_TYPES.TSInterfaceBody,body:a.members.map(K=>this.convertChild(K)),range:[a.members.pos-1,a.end]}),id:this.convertChild(a.name)});if(a.typeParameters&&(T.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(a.typeParameters)),f.length>0){let K=[],b=[];for(let se of f)if(se.token===ar.ExtendsKeyword)for(let J of se.types)K.push(this.convertChild(J,a));else for(let J of se.types)b.push(this.convertChild(J,a));K.length&&(T.extends=K),b.length&&(T.implements=b)}return(0,kr.hasModifier)(ar.AbstractKeyword,a)&&(T.abstract=!0),(0,kr.hasModifier)(ar.DeclareKeyword,a)&&(T.declare=!0),this.fixExports(a,T)}case ar.TypePredicate:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypePredicate,asserts:a.assertsModifier!==void 0,parameterName:this.convertChild(a.parameterName),typeAnnotation:null});return a.type&&(f.typeAnnotation=this.convertTypeAnnotation(a.type,a),f.typeAnnotation.loc=f.typeAnnotation.typeAnnotation.loc,f.typeAnnotation.range=f.typeAnnotation.typeAnnotation.range),f}case ar.ImportType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSImportType,isTypeOf:!!a.isTypeOf,parameter:this.convertChild(a.argument),qualifier:this.convertChild(a.qualifier),typeParameters:a.typeArguments?this.convertTypeArgumentsToTypeParameters(a.typeArguments,a):null});case ar.EnumDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSEnumDeclaration,id:this.convertChild(a.name),members:a.members.map(T=>this.convertChild(T))});return this.applyModifiersToResult(f,a.modifiers),this.fixExports(a,f)}case ar.EnumMember:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSEnumMember,id:this.convertChild(a.name)});return a.initializer&&(f.initializer=this.convertChild(a.initializer)),a.name.kind===oi.SyntaxKind.ComputedPropertyName&&(f.computed=!0),f}case ar.ModuleDeclaration:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSModuleDeclaration,id:this.convertChild(a.name)});return a.body&&(f.body=this.convertChild(a.body)),this.applyModifiersToResult(f,a.modifiers),a.flags&oi.NodeFlags.GlobalAugmentation&&(f.global=!0),this.fixExports(a,f)}case ar.ParenthesizedType:return this.convertType(a.type);case ar.UnionType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSUnionType,types:a.types.map(f=>this.convertType(f))});case ar.IntersectionType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSIntersectionType,types:a.types.map(f=>this.convertType(f))});case ar.AsExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSAsExpression,expression:this.convertChild(a.expression),typeAnnotation:this.convertType(a.type)});case ar.InferType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSInferType,typeParameter:this.convertType(a.typeParameter)});case ar.LiteralType:return Lr.typescriptVersionIsAtLeast[\"4.0\"]&&a.literal.kind===ar.NullKeyword?this.createNode(a.literal,{type:pr.AST_NODE_TYPES.TSNullKeyword}):this.createNode(a,{type:pr.AST_NODE_TYPES.TSLiteralType,literal:this.convertType(a.literal)});case ar.TypeAssertionExpression:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTypeAssertion,typeAnnotation:this.convertType(a.type),expression:this.convertChild(a.expression)});case ar.ImportEqualsDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSImportEqualsDeclaration,id:this.convertChild(a.name),moduleReference:this.convertChild(a.moduleReference),importKind:a.isTypeOnly?\"type\":\"value\",isExport:(0,kr.hasModifier)(ar.ExportKeyword,a)});case ar.ExternalModuleReference:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSExternalModuleReference,expression:this.convertChild(a.expression)});case ar.NamespaceExportDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSNamespaceExportDeclaration,id:this.convertChild(a.name)});case ar.AbstractKeyword:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSAbstractKeyword});case ar.TupleType:{let f=\"elementTypes\"in a?a.elementTypes.map(T=>this.convertType(T)):a.elements.map(T=>this.convertType(T));return this.createNode(a,{type:pr.AST_NODE_TYPES.TSTupleType,elementTypes:f})}case ar.NamedTupleMember:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSNamedTupleMember,elementType:this.convertType(a.type,a),label:this.convertChild(a.name,a),optional:a.questionToken!=null});return a.dotDotDotToken?(f.range[0]=f.label.range[0],f.loc.start=f.label.loc.start,this.createNode(a,{type:pr.AST_NODE_TYPES.TSRestType,typeAnnotation:f})):f}case ar.OptionalType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSOptionalType,typeAnnotation:this.convertType(a.type)});case ar.RestType:return this.createNode(a,{type:pr.AST_NODE_TYPES.TSRestType,typeAnnotation:this.convertType(a.type)});case ar.TemplateLiteralType:{let f=this.createNode(a,{type:pr.AST_NODE_TYPES.TSTemplateLiteralType,quasis:[this.convertChild(a.head)],types:[]});return a.templateSpans.forEach(T=>{f.types.push(this.convertChild(T.type)),f.quasis.push(this.convertChild(T.literal))}),f}case ar.ClassStaticBlockDeclaration:return this.createNode(a,{type:pr.AST_NODE_TYPES.StaticBlock,body:this.convertBodyExpressions(a.body.statements,a)});case ar.AssertEntry:return this.createNode(a,{type:pr.AST_NODE_TYPES.ImportAttribute,key:this.convertChild(a.name),value:this.convertChild(a.value)});default:return this.deeplyCopy(a)}}};M.Converter=e}}),Ud={};h1(Ud,{__assign:()=>v1,__asyncDelegator:()=>JU,__asyncGenerator:()=>BU,__asyncValues:()=>jU,__await:()=>Xy,__awaiter:()=>wU,__classPrivateFieldGet:()=>qU,__classPrivateFieldSet:()=>VU,__createBinding:()=>FU,__decorate:()=>NU,__exportStar:()=>MU,__extends:()=>kU,__generator:()=>OU,__importDefault:()=>WU,__importStar:()=>zU,__makeTemplateObject:()=>UU,__metadata:()=>IU,__param:()=>PU,__read:()=>r3,__rest:()=>AU,__spread:()=>LU,__spreadArrays:()=>RU,__values:()=>UT});function kU(M,re){m1(M,re);function Ve(){this.constructor=M}M.prototype=re===null?Object.create(re):(Ve.prototype=re.prototype,new Ve)}function AU(M,re){var Ve={};for(var Ke in M)Object.prototype.hasOwnProperty.call(M,Ke)&&re.indexOf(Ke)<0&&(Ve[Ke]=M[Ke]);if(M!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var oi=0,Ke=Object.getOwnPropertySymbols(M);oi=0;Lr--)(pr=M[Lr])&&(kr=(oi<3?pr(kr):oi>3?pr(re,Ve,kr):pr(re,Ve))||kr);return oi>3&&kr&&Object.defineProperty(re,Ve,kr),kr}function PU(M,re){return function(Ve,Ke){re(Ve,Ke,M)}}function IU(M,re){if(typeof Reflect==\"object\"&&typeof Reflect.metadata==\"function\")return Reflect.metadata(M,re)}function wU(M,re,Ve,Ke){function oi(kr){return kr instanceof Ve?kr:new Ve(function(pr){pr(kr)})}return new(Ve||(Ve=Promise))(function(kr,pr){function Lr(e){try{ke(Ke.next(e))}catch(a){pr(a)}}function ar(e){try{ke(Ke.throw(e))}catch(a){pr(a)}}function ke(e){e.done?kr(e.value):oi(e.value).then(Lr,ar)}ke((Ke=Ke.apply(M,re||[])).next())})}function OU(M,re){var Ve={label:0,sent:function(){if(kr[0]&1)throw kr[1];return kr[1]},trys:[],ops:[]},Ke,oi,kr,pr;return pr={next:Lr(0),throw:Lr(1),return:Lr(2)},typeof Symbol==\"function\"&&(pr[Symbol.iterator]=function(){return this}),pr;function Lr(ke){return function(e){return ar([ke,e])}}function ar(ke){if(Ke)throw new TypeError(\"Generator is already executing.\");for(;Ve;)try{if(Ke=1,oi&&(kr=ke[0]&2?oi.return:ke[0]?oi.throw||((kr=oi.return)&&kr.call(oi),0):oi.next)&&!(kr=kr.call(oi,ke[1])).done)return kr;switch(oi=0,kr&&(ke=[ke[0]&2,kr.value]),ke[0]){case 0:case 1:kr=ke;break;case 4:return Ve.label++,{value:ke[1],done:!1};case 5:Ve.label++,oi=ke[1],ke=[0];continue;case 7:ke=Ve.ops.pop(),Ve.trys.pop();continue;default:if(kr=Ve.trys,!(kr=kr.length>0&&kr[kr.length-1])&&(ke[0]===6||ke[0]===2)){Ve=0;continue}if(ke[0]===3&&(!kr||ke[1]>kr[0]&&ke[1]=M.length&&(M=void 0),{value:M&&M[Ke++],done:!M}}};throw new TypeError(re?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function r3(M,re){var Ve=typeof Symbol==\"function\"&&M[Symbol.iterator];if(!Ve)return M;var Ke=Ve.call(M),oi,kr=[],pr;try{for(;(re===void 0||re-- >0)&&!(oi=Ke.next()).done;)kr.push(oi.value)}catch(Lr){pr={error:Lr}}finally{try{oi&&!oi.done&&(Ve=Ke.return)&&Ve.call(Ke)}finally{if(pr)throw pr.error}}return kr}function LU(){for(var M=[],re=0;re1||Lr(C,w)})})}function Lr(C,w){try{ar(Ke[C](w))}catch(B){a(kr[0][3],B)}}function ar(C){C.value instanceof Xy?Promise.resolve(C.value.v).then(ke,e):a(kr[0][2],C)}function ke(C){Lr(\"next\",C)}function e(C){Lr(\"throw\",C)}function a(C,w){C(w),kr.shift(),kr.length&&Lr(kr[0][0],kr[0][1])}}function JU(M){var re,Ve;return re={},Ke(\"next\"),Ke(\"throw\",function(oi){throw oi}),Ke(\"return\"),re[Symbol.iterator]=function(){return this},re;function Ke(oi,kr){re[oi]=M[oi]?function(pr){return(Ve=!Ve)?{value:Xy(M[oi](pr)),done:oi===\"return\"}:kr?kr(pr):pr}:kr}}function jU(M){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var re=M[Symbol.asyncIterator],Ve;return re?re.call(M):(M=typeof UT==\"function\"?UT(M):M[Symbol.iterator](),Ve={},Ke(\"next\"),Ke(\"throw\"),Ke(\"return\"),Ve[Symbol.asyncIterator]=function(){return this},Ve);function Ke(kr){Ve[kr]=M[kr]&&function(pr){return new Promise(function(Lr,ar){pr=M[kr](pr),oi(Lr,ar,pr.done,pr.value)})}}function oi(kr,pr,Lr,ar){Promise.resolve(ar).then(function(ke){kr({value:ke,done:Lr})},pr)}}function UU(M,re){return Object.defineProperty?Object.defineProperty(M,\"raw\",{value:re}):M.raw=re,M}function zU(M){if(M&&M.__esModule)return M;var re={};if(M!=null)for(var Ve in M)Object.hasOwnProperty.call(M,Ve)&&(re[Ve]=M[Ve]);return re.default=M,re}function WU(M){return M&&M.__esModule?M:{default:M}}function qU(M,re){if(!re.has(M))throw new TypeError(\"attempted to get private field on non-instance\");return re.get(M)}function VU(M,re,Ve){if(!re.has(M))throw new TypeError(\"attempted to set private field on non-instance\");return re.set(M,Ve),Ve}var m1,v1,ug=Qy({\"node_modules/tslib/tslib.es6.js\"(){Ea(),m1=function(M,re){return m1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Ve,Ke){Ve.__proto__=Ke}||function(Ve,Ke){for(var oi in Ke)Ke.hasOwnProperty(oi)&&(Ve[oi]=Ke[oi])},m1(M,re)},v1=function(){return v1=Object.assign||function(re){for(var Ve,Ke=1,oi=arguments.length;Ke=re.SyntaxKind.FirstLiteralToken&&ai.kind<=re.SyntaxKind.LastLiteralToken}M.isLiteralExpression=ii;function mi(ai){return ai.kind===re.SyntaxKind.LiteralType}M.isLiteralTypeNode=mi;function pe(ai){return ai.kind===re.SyntaxKind.MappedType}M.isMappedTypeNode=pe;function or(ai){return ai.kind===re.SyntaxKind.MetaProperty}M.isMetaProperty=or;function qr(ai){return ai.kind===re.SyntaxKind.MethodDeclaration}M.isMethodDeclaration=qr;function si(ai){return ai.kind===re.SyntaxKind.MethodSignature}M.isMethodSignature=si;function Di(ai){return ai.kind===re.SyntaxKind.ModuleBlock}M.isModuleBlock=Di;function wi(ai){return ai.kind===re.SyntaxKind.ModuleDeclaration}M.isModuleDeclaration=wi;function Xi(ai){return ai.kind===re.SyntaxKind.NamedExports}M.isNamedExports=Xi;function et(ai){return ai.kind===re.SyntaxKind.NamedImports}M.isNamedImports=et;function Gi(ai){return wi(ai)&&ai.name.kind===re.SyntaxKind.Identifier&&ai.body!==void 0&&(ai.body.kind===re.SyntaxKind.ModuleBlock||Gi(ai.body))}M.isNamespaceDeclaration=Gi;function Wt(ai){return ai.kind===re.SyntaxKind.NamespaceImport}M.isNamespaceImport=Wt;function Zt(ai){return ai.kind===re.SyntaxKind.NamespaceExportDeclaration}M.isNamespaceExportDeclaration=Zt;function _r(ai){return ai.kind===re.SyntaxKind.NewExpression}M.isNewExpression=_r;function pi(ai){return ai.kind===re.SyntaxKind.NonNullExpression}M.isNonNullExpression=pi;function ae(ai){return ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isNoSubstitutionTemplateLiteral=ae;function Xe(ai){return ai.kind===re.SyntaxKind.NullKeyword}M.isNullLiteral=Xe;function Jr(ai){return ai.kind===re.SyntaxKind.NumericLiteral}M.isNumericLiteral=Jr;function ti(ai){switch(ai.kind){case re.SyntaxKind.StringLiteral:case re.SyntaxKind.NumericLiteral:case re.SyntaxKind.NoSubstitutionTemplateLiteral:return!0;default:return!1}}M.isNumericOrStringLikeLiteral=ti;function Ze(ai){return ai.kind===re.SyntaxKind.ObjectBindingPattern}M.isObjectBindingPattern=Ze;function Sr(ai){return ai.kind===re.SyntaxKind.ObjectLiteralExpression}M.isObjectLiteralExpression=Sr;function zr(ai){return ai.kind===re.SyntaxKind.OmittedExpression}M.isOmittedExpression=zr;function Wr(ai){return ai.kind===re.SyntaxKind.Parameter}M.isParameterDeclaration=Wr;function Je(ai){return ai.kind===re.SyntaxKind.ParenthesizedExpression}M.isParenthesizedExpression=Je;function xe(ai){return ai.kind===re.SyntaxKind.ParenthesizedType}M.isParenthesizedTypeNode=xe;function vr(ai){return ai.kind===re.SyntaxKind.PostfixUnaryExpression}M.isPostfixUnaryExpression=vr;function mr(ai){return ai.kind===re.SyntaxKind.PrefixUnaryExpression}M.isPrefixUnaryExpression=mr;function Ar(ai){return ai.kind===re.SyntaxKind.PropertyAccessExpression}M.isPropertyAccessExpression=Ar;function Oe(ai){return ai.kind===re.SyntaxKind.PropertyAssignment}M.isPropertyAssignment=Oe;function nr(ai){return ai.kind===re.SyntaxKind.PropertyDeclaration}M.isPropertyDeclaration=nr;function Mr(ai){return ai.kind===re.SyntaxKind.PropertySignature}M.isPropertySignature=Mr;function Pe(ai){return ai.kind===re.SyntaxKind.QualifiedName}M.isQualifiedName=Pe;function Ue(ai){return ai.kind===re.SyntaxKind.RegularExpressionLiteral}M.isRegularExpressionLiteral=Ue;function fr(ai){return ai.kind===re.SyntaxKind.ReturnStatement}M.isReturnStatement=fr;function De(ai){return ai.kind===re.SyntaxKind.SetAccessor}M.isSetAccessorDeclaration=De;function gr(ai){return ai.kind===re.SyntaxKind.ShorthandPropertyAssignment}M.isShorthandPropertyAssignment=gr;function Vr(ai){return ai.parameters!==void 0}M.isSignatureDeclaration=Vr;function Tr(ai){return ai.kind===re.SyntaxKind.SourceFile}M.isSourceFile=Tr;function vi(ai){return ai.kind===re.SyntaxKind.SpreadAssignment}M.isSpreadAssignment=vi;function Ui(ai){return ai.kind===re.SyntaxKind.SpreadElement}M.isSpreadElement=Ui;function Yi(ai){return ai.kind===re.SyntaxKind.StringLiteral}M.isStringLiteral=Yi;function Wi(ai){return ai.kind===re.SyntaxKind.SwitchStatement}M.isSwitchStatement=Wi;function ct(ai){return ai.kind===re.SyntaxKind.SyntaxList}M.isSyntaxList=ct;function Li(ai){return ai.kind===re.SyntaxKind.TaggedTemplateExpression}M.isTaggedTemplateExpression=Li;function nt(ai){return ai.kind===re.SyntaxKind.TemplateExpression}M.isTemplateExpression=nt;function Mt(ai){return ai.kind===re.SyntaxKind.TemplateExpression||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTemplateLiteral=Mt;function xt(ai){return ai.kind===re.SyntaxKind.StringLiteral||ai.kind===re.SyntaxKind.NoSubstitutionTemplateLiteral}M.isTextualLiteral=xt;function ut(ai){return ai.kind===re.SyntaxKind.ThrowStatement}M.isThrowStatement=ut;function Dt(ai){return ai.kind===re.SyntaxKind.TryStatement}M.isTryStatement=Dt;function Rt(ai){return ai.kind===re.SyntaxKind.TupleType}M.isTupleTypeNode=Rt;function Ii(ai){return ai.kind===re.SyntaxKind.TypeAliasDeclaration}M.isTypeAliasDeclaration=Ii;function Ki(ai){return ai.kind===re.SyntaxKind.TypeAssertionExpression}M.isTypeAssertion=Ki;function Fi(ai){return ai.kind===re.SyntaxKind.TypeLiteral}M.isTypeLiteralNode=Fi;function ui(ai){return ai.kind===re.SyntaxKind.TypeOfExpression}M.isTypeOfExpression=ui;function Bt(ai){return ai.kind===re.SyntaxKind.TypeOperator}M.isTypeOperatorNode=Bt;function wt(ai){return ai.kind===re.SyntaxKind.TypeParameter}M.isTypeParameterDeclaration=wt;function na(ai){return ai.kind===re.SyntaxKind.TypePredicate}M.isTypePredicateNode=na;function Ai(ai){return ai.kind===re.SyntaxKind.TypeReference}M.isTypeReferenceNode=Ai;function Oi(ai){return ai.kind===re.SyntaxKind.TypeQuery}M.isTypeQueryNode=Oi;function ji(ai){return ai.kind===re.SyntaxKind.UnionType}M.isUnionTypeNode=ji;function Vi(ai){return ai.kind===re.SyntaxKind.VariableDeclaration}M.isVariableDeclaration=Vi;function at(ai){return ai.kind===re.SyntaxKind.VariableStatement}M.isVariableStatement=at;function At(ai){return ai.kind===re.SyntaxKind.VariableDeclarationList}M.isVariableDeclarationList=At;function ba(ai){return ai.kind===re.SyntaxKind.VoidExpression}M.isVoidExpression=ba;function $a(ai){return ai.kind===re.SyntaxKind.WhileStatement}M.isWhileStatement=$a;function Qa(ai){return ai.kind===re.SyntaxKind.WithStatement}M.isWithStatement=Qa}}),GU=Oa({\"node_modules/tsutils/typeguard/2.9/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isImportTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(KU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.ImportType}M.isImportTypeNode=Ke}}),HU=Oa({\"node_modules/tsutils/typeguard/3.0/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isSyntheticExpression=M.isRestTypeNode=M.isOptionalTypeNode=void 0;var re=(ug(),mp(Ud));re.__exportStar(GU(),M);var Ve=_u();function Ke(pr){return pr.kind===Ve.SyntaxKind.OptionalType}M.isOptionalTypeNode=Ke;function oi(pr){return pr.kind===Ve.SyntaxKind.RestType}M.isRestTypeNode=oi;function kr(pr){return pr.kind===Ve.SyntaxKind.SyntheticExpression}M.isSyntheticExpression=kr}}),i3=Oa({\"node_modules/tsutils/typeguard/3.2/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isBigIntLiteral=void 0;var re=(ug(),mp(Ud));re.__exportStar(HU(),M);var Ve=_u();function Ke(oi){return oi.kind===Ve.SyntaxKind.BigIntLiteral}M.isBigIntLiteral=Ke}}),t3=Oa({\"node_modules/tsutils/typeguard/node.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(i3(),M)}}),XU=Oa({\"node_modules/tsutils/typeguard/2.8/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isUniqueESSymbolType=M.isUnionType=M.isUnionOrIntersectionType=M.isTypeVariable=M.isTypeReference=M.isTypeParameter=M.isSubstitutionType=M.isObjectType=M.isLiteralType=M.isIntersectionType=M.isInterfaceType=M.isInstantiableType=M.isIndexedAccessype=M.isIndexedAccessType=M.isGenericType=M.isEnumType=M.isConditionalType=void 0;var re=_u();function Ve(p){return(p.flags&re.TypeFlags.Conditional)!==0}M.isConditionalType=Ve;function Ke(p){return(p.flags&re.TypeFlags.Enum)!==0}M.isEnumType=Ke;function oi(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isGenericType=oi;function kr(p){return(p.flags&re.TypeFlags.IndexedAccess)!==0}M.isIndexedAccessType=kr;function pr(p){return(p.flags&re.TypeFlags.Index)!==0}M.isIndexedAccessype=pr;function Lr(p){return(p.flags&re.TypeFlags.Instantiable)!==0}M.isInstantiableType=Lr;function ar(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.ClassOrInterface)!==0}M.isInterfaceType=ar;function ke(p){return(p.flags&re.TypeFlags.Intersection)!==0}M.isIntersectionType=ke;function e(p){return(p.flags&(re.TypeFlags.StringOrNumberLiteral|re.TypeFlags.BigIntLiteral))!==0}M.isLiteralType=e;function a(p){return(p.flags&re.TypeFlags.Object)!==0}M.isObjectType=a;function C(p){return(p.flags&re.TypeFlags.Substitution)!==0}M.isSubstitutionType=C;function w(p){return(p.flags&re.TypeFlags.TypeParameter)!==0}M.isTypeParameter=w;function B(p){return(p.flags&re.TypeFlags.Object)!==0&&(p.objectFlags&re.ObjectFlags.Reference)!==0}M.isTypeReference=B;function E(p){return(p.flags&re.TypeFlags.TypeVariable)!==0}M.isTypeVariable=E;function Q(p){return(p.flags&re.TypeFlags.UnionOrIntersection)!==0}M.isUnionOrIntersectionType=Q;function le(p){return(p.flags&re.TypeFlags.Union)!==0}M.isUnionType=le;function N(p){return(p.flags&re.TypeFlags.UniqueESSymbol)!==0}M.isUniqueESSymbolType=N}}),D4=Oa({\"node_modules/tsutils/typeguard/2.9/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(XU(),M)}}),QU=Oa({\"node_modules/tsutils/typeguard/3.0/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isTupleTypeReference=M.isTupleType=void 0;var re=(ug(),mp(Ud));re.__exportStar(D4(),M);var Ve=_u(),Ke=D4();function oi(pr){return(pr.flags&Ve.TypeFlags.Object&&pr.objectFlags&Ve.ObjectFlags.Tuple)!==0}M.isTupleType=oi;function kr(pr){return Ke.isTypeReference(pr)&&oi(pr.target)}M.isTupleTypeReference=kr}}),a3=Oa({\"node_modules/tsutils/typeguard/3.2/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(QU(),M)}}),YU=Oa({\"node_modules/tsutils/typeguard/3.2/index.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(i3(),M),re.__exportStar(a3(),M)}}),$U=Oa({\"node_modules/tsutils/typeguard/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re=(ug(),mp(Ud));re.__exportStar(a3(),M)}}),ZU=Oa({\"node_modules/tsutils/util/type.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.getBaseClassMemberOfClassElement=M.getIteratorYieldResultFromIteratorResult=M.getInstanceTypeOfClassLikeDeclaration=M.getConstructorTypeOfClassLikeDeclaration=M.getSymbolOfClassLikeDeclaration=M.getPropertyNameFromType=M.symbolHasReadonlyDeclaration=M.isPropertyReadonlyInType=M.getWellKnownSymbolPropertyOfType=M.getPropertyOfType=M.isBooleanLiteralType=M.isFalsyType=M.isThenableType=M.someTypePart=M.intersectionTypeParts=M.unionTypeParts=M.getCallSignaturesOfType=M.isTypeAssignableToString=M.isTypeAssignableToNumber=M.isOptionalChainingUndefinedMarkerType=M.removeOptionalChainingUndefinedMarkerType=M.removeOptionalityFromType=M.isEmptyObjectType=void 0;var re=_u(),Ve=$U(),Ke=n3(),oi=t3();function kr(F){if(Ve.isObjectType(F)&&F.objectFlags&re.ObjectFlags.Anonymous&&F.getProperties().length===0&&F.getCallSignatures().length===0&&F.getConstructSignatures().length===0&&F.getStringIndexType()===void 0&&F.getNumberIndexType()===void 0){let x=F.getBaseTypes();return x===void 0||x.every(kr)}return!1}M.isEmptyObjectType=kr;function pr(F,x){if(!Lr(x,re.TypeFlags.Undefined))return x;let X=Lr(x,re.TypeFlags.Null);return x=F.getNonNullableType(x),X?F.getNullableType(x,re.TypeFlags.Null):x}M.removeOptionalityFromType=pr;function Lr(F,x){for(let X of B(F))if(Ke.isTypeFlagSet(X,x))return!0;return!1}function ar(F,x){if(!Ve.isUnionType(x))return ke(F,x)?x.getNonNullableType():x;let X=0,$=!1;for(let A of x.types)ke(F,A)?$=!0:X|=A.flags;return $?F.getNullableType(x.getNonNullableType(),X):x}M.removeOptionalChainingUndefinedMarkerType=ar;function ke(F,x){return Ke.isTypeFlagSet(x,re.TypeFlags.Undefined)&&F.getNullableType(x.getNonNullableType(),re.TypeFlags.Undefined)!==x}M.isOptionalChainingUndefinedMarkerType=ke;function e(F,x){return C(F,x,re.TypeFlags.NumberLike)}M.isTypeAssignableToNumber=e;function a(F,x){return C(F,x,re.TypeFlags.StringLike)}M.isTypeAssignableToString=a;function C(F,x,X){X|=re.TypeFlags.Any;let $;return function A(y){if(Ve.isTypeParameter(y)&&y.symbol!==void 0&&y.symbol.declarations!==void 0){if($===void 0)$=new Set([y]);else if(!$.has(y))$.add(y);else return!1;let V=y.symbol.declarations[0];return V.constraint===void 0?!0:A(F.getTypeFromTypeNode(V.constraint))}return Ve.isUnionType(y)?y.types.every(A):Ve.isIntersectionType(y)?y.types.some(A):Ke.isTypeFlagSet(y,X)}(x)}function w(F){if(Ve.isUnionType(F)){let x=[];for(let X of F.types)x.push(...w(X));return x}if(Ve.isIntersectionType(F)){let x;for(let X of F.types){let $=w(X);if($.length!==0){if(x!==void 0)return[];x=$}}return x===void 0?[]:x}return F.getCallSignatures()}M.getCallSignaturesOfType=w;function B(F){return Ve.isUnionType(F)?F.types:[F]}M.unionTypeParts=B;function E(F){return Ve.isIntersectionType(F)?F.types:[F]}M.intersectionTypeParts=E;function Q(F,x,X){return x(F)?F.types.some(X):X(F)}M.someTypePart=Q;function le(F,x){let X=arguments.length>2&&arguments[2]!==void 0?arguments[2]:F.getTypeAtLocation(x);for(let $ of B(F.getApparentType(X))){let A=$.getProperty(\"then\");if(A===void 0)continue;let y=F.getTypeOfSymbolAtLocation(A,x);for(let V of B(y))for(let L of V.getCallSignatures())if(L.parameters.length!==0&&N(F,L.parameters[0],x))return!0}return!1}M.isThenableType=le;function N(F,x,X){let $=F.getApparentType(F.getTypeOfSymbolAtLocation(x,X));if(x.valueDeclaration.dotDotDotToken&&($=$.getNumberIndexType(),$===void 0))return!1;for(let A of B($))if(A.getCallSignatures().length!==0)return!0;return!1}function p(F){return F.flags&(re.TypeFlags.Undefined|re.TypeFlags.Null|re.TypeFlags.Void)?!0:Ve.isLiteralType(F)?!F.value:m(F,!1)}M.isFalsyType=p;function m(F,x){return Ke.isTypeFlagSet(F,re.TypeFlags.BooleanLiteral)&&F.intrinsicName===(x?\"true\":\"false\")}M.isBooleanLiteralType=m;function G(F,x){return x.startsWith(\"__\")?F.getProperties().find(X=>X.escapedName===x):F.getProperty(x)}M.getPropertyOfType=G;function oe(F,x,X){let $=\"__@\"+x;for(let A of F.getProperties()){if(!A.name.startsWith($))continue;let y=X.getApparentType(X.getTypeAtLocation(A.valueDeclaration.name.expression)).symbol;if(A.escapedName===f(X,y,x))return A}}M.getWellKnownSymbolPropertyOfType=oe;function f(F,x,X){let $=x&&F.getTypeOfSymbolAtLocation(x,x.valueDeclaration).getProperty(X),A=$&&F.getTypeOfSymbolAtLocation($,$.valueDeclaration);return A&&Ve.isUniqueESSymbolType(A)?A.escapedName:\"__@\"+X}function T(F,x,X){let $=!1,A=!1;for(let y of B(F))if(G(y,x)===void 0){let V=(Ke.isNumericPropertyName(x)?X.getIndexInfoOfType(y,re.IndexKind.Number):void 0)||X.getIndexInfoOfType(y,re.IndexKind.String);if(V!==void 0&&V.isReadonly){if($)return!0;A=!0}}else{if(A||K(y,x,X))return!0;$=!0}return!1}M.isPropertyReadonlyInType=T;function K(F,x,X){return Q(F,Ve.isIntersectionType,$=>{let A=G($,x);if(A===void 0)return!1;if(A.flags&re.SymbolFlags.Transient){if(/^(?:[1-9]\\d*|0)$/.test(x)&&Ve.isTupleTypeReference($))return $.target.readonly;switch(b($,x,X)){case!0:return!0;case!1:return!1;default:}}return Ke.isSymbolFlagSet(A,re.SymbolFlags.ValueModule)||se(A,X)})}function b(F,x,X){if(!Ve.isObjectType(F)||!Ke.isObjectFlagSet(F,re.ObjectFlags.Mapped))return;let $=F.symbol.declarations[0];return $.readonlyToken!==void 0&&!/^__@[^@]+$/.test(x)?$.readonlyToken.kind!==re.SyntaxKind.MinusToken:T(F.modifiersType,x,X)}function se(F,x){return(F.flags&re.SymbolFlags.Accessor)===re.SymbolFlags.GetAccessor||F.declarations!==void 0&&F.declarations.some(X=>Ke.isModifierFlagSet(X,re.ModifierFlags.Readonly)||oi.isVariableDeclaration(X)&&Ke.isNodeFlagSet(X.parent,re.NodeFlags.Const)||oi.isCallExpression(X)&&Ke.isReadonlyAssignmentDeclaration(X,x)||oi.isEnumMember(X)||(oi.isPropertyAssignment(X)||oi.isShorthandPropertyAssignment(X))&&Ke.isInConstContext(X.parent))}M.symbolHasReadonlyDeclaration=se;function J(F){if(F.flags&(re.TypeFlags.StringLiteral|re.TypeFlags.NumberLiteral)){let x=String(F.value);return{displayName:x,symbolName:re.escapeLeadingUnderscores(x)}}if(Ve.isUniqueESSymbolType(F))return{displayName:\"[\".concat(F.symbol?\"\".concat(ie(F.symbol)?\"Symbol.\":\"\").concat(F.symbol.name):F.escapedName.replace(/^__@|@\\d+$/g,\"\"),\"]\"),symbolName:F.escapedName}}M.getPropertyNameFromType=J;function ie(F){return Ke.isSymbolFlagSet(F,re.SymbolFlags.Property)&&F.valueDeclaration!==void 0&&oi.isInterfaceDeclaration(F.valueDeclaration.parent)&&F.valueDeclaration.parent.name.text===\"SymbolConstructor\"&&R(F.valueDeclaration.parent)}function R(F){return Ke.isNodeFlagSet(F.parent,re.NodeFlags.GlobalAugmentation)||oi.isSourceFile(F.parent)&&!re.isExternalModule(F.parent)}function q(F,x){var X;return x.getSymbolAtLocation((X=F.name)!==null&&X!==void 0?X:Ke.getChildOfKind(F,re.SyntaxKind.ClassKeyword))}M.getSymbolOfClassLikeDeclaration=q;function O(F,x){return F.kind===re.SyntaxKind.ClassExpression?x.getTypeAtLocation(F):x.getTypeOfSymbolAtLocation(q(F,x),F)}M.getConstructorTypeOfClassLikeDeclaration=O;function ve(F,x){return F.kind===re.SyntaxKind.ClassDeclaration?x.getTypeAtLocation(F):x.getDeclaredTypeOfSymbol(q(F,x))}M.getInstanceTypeOfClassLikeDeclaration=ve;function ee(F,x,X){return Ve.isUnionType(F)&&F.types.find($=>{let A=$.getProperty(\"done\");return A!==void 0&&m(pr(X,X.getTypeOfSymbolAtLocation(A,x)),!1)})||F}M.getIteratorYieldResultFromIteratorResult=ee;function he(F,x){if(!oi.isClassLikeDeclaration(F.parent))return;let X=Ke.getBaseOfClassLikeExpression(F.parent);if(X===void 0)return;let $=Ke.getSingleLateBoundPropertyNameOfPropertyName(F.name,x);if($===void 0)return;let A=x.getTypeAtLocation(Ke.hasModifier(F.modifiers,re.SyntaxKind.StaticKeyword)?X.expression:X);return G(A,$.symbolName)}M.getBaseClassMemberOfClassElement=he}}),n3=Oa({\"node_modules/tsutils/util/util.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.isValidIdentifier=M.getLineBreakStyle=M.getLineRanges=M.forEachComment=M.forEachTokenWithTrivia=M.forEachToken=M.isFunctionWithBody=M.hasOwnThisReference=M.isBlockScopeBoundary=M.isFunctionScopeBoundary=M.isTypeScopeBoundary=M.isScopeBoundary=M.ScopeBoundarySelector=M.ScopeBoundary=M.isInSingleStatementContext=M.isBlockScopedDeclarationStatement=M.isBlockScopedVariableDeclaration=M.isBlockScopedVariableDeclarationList=M.getVariableDeclarationKind=M.VariableDeclarationKind=M.forEachDeclaredVariable=M.forEachDestructuringIdentifier=M.getPropertyName=M.getWrappedNodeAtPosition=M.getAstNodeAtPosition=M.commentText=M.isPositionInComment=M.getCommentAtPosition=M.getTokenAtPosition=M.getNextToken=M.getPreviousToken=M.getNextStatement=M.getPreviousStatement=M.isModifierFlagSet=M.isObjectFlagSet=M.isSymbolFlagSet=M.isTypeFlagSet=M.isNodeFlagSet=M.hasAccessModifier=M.isParameterProperty=M.hasModifier=M.getModifier=M.isThisParameter=M.isKeywordKind=M.isJsDocKind=M.isTypeNodeKind=M.isAssignmentKind=M.isNodeKind=M.isTokenKind=M.getChildOfKind=void 0,M.getBaseOfClassLikeExpression=M.hasExhaustiveCaseClauses=M.formatPseudoBigInt=M.unwrapParentheses=M.getSingleLateBoundPropertyNameOfPropertyName=M.getLateBoundPropertyNamesOfPropertyName=M.getLateBoundPropertyNames=M.getPropertyNameOfWellKnownSymbol=M.isWellKnownSymbolLiterally=M.isBindableObjectDefinePropertyCall=M.isReadonlyAssignmentDeclaration=M.isInConstContext=M.isConstAssertion=M.getTsCheckDirective=M.getCheckJsDirective=M.isAmbientModule=M.isCompilerOptionEnabled=M.isStrictCompilerOptionEnabled=M.getIIFE=M.isAmbientModuleBlock=M.isStatementInAmbientContext=M.findImportLikeNodes=M.findImports=M.ImportKind=M.parseJsDocOfNode=M.getJsDoc=M.canHaveJsDoc=M.isReassignmentTarget=M.getAccessKind=M.AccessKind=M.isExpressionValueUsed=M.getDeclarationOfBindingElement=M.hasSideEffects=M.SideEffectOptions=M.isSameLine=M.isNumericPropertyName=M.isValidJsxIdentifier=M.isValidNumericLiteral=M.isValidPropertyName=M.isValidPropertyAccess=void 0;var re=_u(),Ve=t3(),Ke=YU(),oi=ZU();function kr(ae,Xe,Jr){for(let ti of ae.getChildren(Jr))if(ti.kind===Xe)return ti}M.getChildOfKind=kr;function pr(ae){return ae>=re.SyntaxKind.FirstToken&&ae<=re.SyntaxKind.LastToken}M.isTokenKind=pr;function Lr(ae){return ae>=re.SyntaxKind.FirstNode}M.isNodeKind=Lr;function ar(ae){return ae>=re.SyntaxKind.FirstAssignment&&ae<=re.SyntaxKind.LastAssignment}M.isAssignmentKind=ar;function ke(ae){return ae>=re.SyntaxKind.FirstTypeNode&&ae<=re.SyntaxKind.LastTypeNode}M.isTypeNodeKind=ke;function e(ae){return ae>=re.SyntaxKind.FirstJSDocNode&&ae<=re.SyntaxKind.LastJSDocNode}M.isJsDocKind=e;function a(ae){return ae>=re.SyntaxKind.FirstKeyword&&ae<=re.SyntaxKind.LastKeyword}M.isKeywordKind=a;function C(ae){return ae.name.kind===re.SyntaxKind.Identifier&&ae.name.originalKeywordKind===re.SyntaxKind.ThisKeyword}M.isThisParameter=C;function w(ae,Xe){if(ae.modifiers!==void 0){for(let Jr of ae.modifiers)if(Jr.kind===Xe)return Jr}}M.getModifier=w;function B(ae){if(ae===void 0)return!1;for(var Xe=arguments.length,Jr=new Array(Xe>1?Xe-1:0),ti=1;ti0)return Xe.statements[Jr-1]}}M.getPreviousStatement=m;function G(ae){let Xe=ae.parent;if(Ve.isBlockLike(Xe)){let Jr=Xe.statements.indexOf(ae);if(Jr=ae.end))return pr(ae.kind)?ae:K(ae,Xe,Jr!=null?Jr:ae.getSourceFile(),ti===!0)}M.getTokenAtPosition=T;function K(ae,Xe,Jr,ti){if(!ti&&(ae=R(ae,Xe),pr(ae.kind)))return ae;e:for(;;){for(let Ze of ae.getChildren(Jr))if(Ze.end>Xe&&(ti||Ze.kind!==re.SyntaxKind.JSDocComment)){if(pr(Ze.kind))return Ze;ae=Ze;continue e}return}}function b(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae,ti=T(Jr,Xe,ae);if(ti===void 0||ti.kind===re.SyntaxKind.JsxText||Xe>=ti.end-(re.tokenToString(ti.kind)||\"\").length)return;let Ze=ti.pos===0?(re.getShebang(ae.text)||\"\").length:ti.pos;return Ze!==0&&re.forEachTrailingCommentRange(ae.text,Ze,se,Xe)||re.forEachLeadingCommentRange(ae.text,Ze,se,Xe)}M.getCommentAtPosition=b;function se(ae,Xe,Jr,ti,Ze){return Ze>=ae&&ZeXe||ae.end<=Xe)){for(;Lr(ae.kind);){let Jr=re.forEachChild(ae,ti=>ti.pos<=Xe&&ti.end>Xe?ti:void 0);if(Jr===void 0)break;ae=Jr}return ae}}M.getAstNodeAtPosition=R;function q(ae,Xe){if(ae.node.pos>Xe||ae.node.end<=Xe)return;e:for(;;){for(let Jr of ae.children){if(Jr.node.pos>Xe)return ae;if(Jr.node.end>Xe){ae=Jr;continue e}}return ae}}M.getWrappedNodeAtPosition=q;function O(ae){if(ae.kind===re.SyntaxKind.ComputedPropertyName){let Xe=Gi(ae.expression);if(Ve.isPrefixUnaryExpression(Xe)){let Jr=!1;switch(Xe.operator){case re.SyntaxKind.MinusToken:Jr=!0;case re.SyntaxKind.PlusToken:return Ve.isNumericLiteral(Xe.operand)?\"\".concat(Jr?\"-\":\"\").concat(Xe.operand.text):Ke.isBigIntLiteral(Xe.operand)?\"\".concat(Jr?\"-\":\"\").concat(Xe.operand.text.slice(0,-1)):void 0;default:return}}return Ke.isBigIntLiteral(Xe)?Xe.text.slice(0,-1):Ve.isNumericOrStringLikeLiteral(Xe)?Xe.text:void 0}return ae.kind===re.SyntaxKind.PrivateIdentifier?void 0:ae.text}M.getPropertyName=O;function ve(ae,Xe){for(let Jr of ae.elements){if(Jr.kind!==re.SyntaxKind.BindingElement)continue;let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDestructuringIdentifier=ve;function ee(ae,Xe){for(let Jr of ae.declarations){let ti;if(Jr.name.kind===re.SyntaxKind.Identifier?ti=Xe(Jr):ti=ve(Jr.name,Xe),ti)return ti}}M.forEachDeclaredVariable=ee;var he;(function(ae){ae[ae.Var=0]=\"Var\",ae[ae.Let=1]=\"Let\",ae[ae.Const=2]=\"Const\"})(he=M.VariableDeclarationKind||(M.VariableDeclarationKind={}));function F(ae){return ae.flags&re.NodeFlags.Let?1:ae.flags&re.NodeFlags.Const?2:0}M.getVariableDeclarationKind=F;function x(ae){return(ae.flags&re.NodeFlags.BlockScoped)!==0}M.isBlockScopedVariableDeclarationList=x;function X(ae){let Xe=ae.parent;return Xe.kind===re.SyntaxKind.CatchClause||x(Xe)}M.isBlockScopedVariableDeclaration=X;function $(ae){switch(ae.kind){case re.SyntaxKind.VariableStatement:return x(ae.declarationList);case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:return!0;default:return!1}}M.isBlockScopedDeclarationStatement=$;function A(ae){switch(ae.parent.kind){case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.WhileStatement:case re.SyntaxKind.DoStatement:case re.SyntaxKind.IfStatement:case re.SyntaxKind.WithStatement:case re.SyntaxKind.LabeledStatement:return!0;default:return!1}}M.isInSingleStatementContext=A;var y;(function(ae){ae[ae.None=0]=\"None\",ae[ae.Function=1]=\"Function\",ae[ae.Block=2]=\"Block\",ae[ae.Type=4]=\"Type\",ae[ae.ConditionalType=8]=\"ConditionalType\"})(y=M.ScopeBoundary||(M.ScopeBoundary={}));var V;(function(ae){ae[ae.Function=1]=\"Function\",ae[ae.Block=3]=\"Block\",ae[ae.Type=7]=\"Type\",ae[ae.InferType=8]=\"InferType\"})(V=M.ScopeBoundarySelector||(M.ScopeBoundarySelector={}));function L(ae){return k(ae)||Y(ae)||P(ae)}M.isScopeBoundary=L;function P(ae){switch(ae.kind){case re.SyntaxKind.InterfaceDeclaration:case re.SyntaxKind.TypeAliasDeclaration:case re.SyntaxKind.MappedType:return 4;case re.SyntaxKind.ConditionalType:return 8;default:return 0}}M.isTypeScopeBoundary=P;function k(ae){switch(ae.kind){case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:case re.SyntaxKind.Constructor:case re.SyntaxKind.ModuleDeclaration:case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.EnumDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.MethodSignature:case re.SyntaxKind.CallSignature:case re.SyntaxKind.ConstructSignature:case re.SyntaxKind.ConstructorType:case re.SyntaxKind.FunctionType:return 1;case re.SyntaxKind.SourceFile:return re.isExternalModule(ae)?1:0;default:return 0}}M.isFunctionScopeBoundary=k;function Y(ae){switch(ae.kind){case re.SyntaxKind.Block:let Xe=ae.parent;return Xe.kind!==re.SyntaxKind.CatchClause&&(Xe.kind===re.SyntaxKind.SourceFile||!k(Xe))?2:0;case re.SyntaxKind.ForStatement:case re.SyntaxKind.ForInStatement:case re.SyntaxKind.ForOfStatement:case re.SyntaxKind.CaseBlock:case re.SyntaxKind.CatchClause:case re.SyntaxKind.WithStatement:return 2;default:return 0}}M.isBlockScopeBoundary=Y;function U(ae){switch(ae.kind){case re.SyntaxKind.ClassDeclaration:case re.SyntaxKind.ClassExpression:case re.SyntaxKind.FunctionExpression:return!0;case re.SyntaxKind.FunctionDeclaration:return ae.body!==void 0;case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:return ae.parent.kind===re.SyntaxKind.ObjectLiteralExpression;default:return!1}}M.hasOwnThisReference=U;function j(ae){switch(ae.kind){case re.SyntaxKind.GetAccessor:case re.SyntaxKind.SetAccessor:case re.SyntaxKind.FunctionDeclaration:case re.SyntaxKind.MethodDeclaration:case re.SyntaxKind.Constructor:return ae.body!==void 0;case re.SyntaxKind.FunctionExpression:case re.SyntaxKind.ArrowFunction:return!0;default:return!1}}M.isFunctionWithBody=j;function H(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=[];for(;;){if(pr(ae.kind))Xe(ae);else if(ae.kind!==re.SyntaxKind.JSDocComment){let Ze=ae.getChildren(Jr);if(Ze.length===1){ae=Ze[0];continue}for(let Sr=Ze.length-1;Sr>=0;--Sr)ti.push(Ze[Sr])}if(ti.length===0)break;ae=ti.pop()}}M.forEachToken=H;function I(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=re.createScanner(Jr.languageVersion,!1,Jr.languageVariant,ti);return H(ae,Sr=>{let zr=Sr.kind===re.SyntaxKind.JsxText||Sr.pos===Sr.end?Sr.pos:Sr.getStart(Jr);if(zr!==Sr.pos){Ze.setTextPos(Sr.pos);let Wr=Ze.scan(),Je=Ze.getTokenPos();for(;Je2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile(),ti=Jr.text,Ze=Jr.languageVariant!==re.LanguageVariant.JSX;return H(ae,zr=>{if(zr.pos!==zr.end&&(zr.kind!==re.SyntaxKind.JsxText&&re.forEachLeadingCommentRange(ti,zr.pos===0?(re.getShebang(ti)||\"\").length:zr.pos,Sr),Ze||d(zr)))return re.forEachTrailingCommentRange(ti,zr.end,Sr)},Jr);function Sr(zr,Wr,Je){Xe(ti,{pos:zr,end:Wr,kind:Je})}}M.forEachComment=l;function d(ae){switch(ae.kind){case re.SyntaxKind.CloseBraceToken:return ae.parent.kind!==re.SyntaxKind.JsxExpression||!D(ae.parent.parent);case re.SyntaxKind.GreaterThanToken:switch(ae.parent.kind){case re.SyntaxKind.JsxOpeningElement:return ae.end!==ae.parent.end;case re.SyntaxKind.JsxOpeningFragment:return!1;case re.SyntaxKind.JsxSelfClosingElement:return ae.end!==ae.parent.end||!D(ae.parent.parent);case re.SyntaxKind.JsxClosingElement:case re.SyntaxKind.JsxClosingFragment:return!D(ae.parent.parent.parent)}}return!0}function D(ae){return ae.kind===re.SyntaxKind.JsxElement||ae.kind===re.SyntaxKind.JsxFragment}function fe(ae){let Xe=ae.getLineStarts(),Jr=[],ti=Xe.length,Ze=ae.text,Sr=0;for(let zr=1;zrSr&&re.isLineBreak(Ze.charCodeAt(Je-1));--Je);Jr.push({pos:Sr,end:Wr,contentLength:Je-Sr}),Sr=Wr}return Jr.push({pos:Sr,end:ae.end,contentLength:ae.end-Sr}),Jr}M.getLineRanges=fe;function g(ae){let Xe=ae.getLineStarts();return Xe.length===1||Xe[1]<2||ae.text[Xe[1]-2]!==\"\\r\"?`\n`:`\\r\n`}M.getLineBreakStyle=g;var ne;function ue(ae,Xe){return ne===void 0?ne=re.createScanner(Xe,!1,void 0,ae):(ne.setScriptTarget(Xe),ne.setText(ae)),ne.scan(),ne}function We(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.isIdentifier()&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidIdentifier=We;function Fe(ae){return ae>=65536?2:1}function Z(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=ae.codePointAt(0);if(!re.isIdentifierStart(Jr,Xe))return!1;for(let ti=Fe(Jr);ti1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(Z(ae,Xe))return!0;let Jr=ue(ae,Xe);return Jr.getTextPos()===ae.length&&Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTokenValue()===ae}M.isValidPropertyName=Be;function ge(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest,Jr=ue(ae,Xe);return Jr.getToken()===re.SyntaxKind.NumericLiteral&&Jr.getTextPos()===ae.length&&Jr.getTokenPos()===0}M.isValidNumericLiteral=ge;function Re(ae){let Xe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:re.ScriptTarget.Latest;if(ae.length===0)return!1;let Jr=!1,ti=ae.codePointAt(0);if(!re.isIdentifierStart(ti,Xe))return!1;for(let Ze=Fe(ti);Ze2&&arguments[2]!==void 0?arguments[2]:ae.getSourceFile();if(er(ae)&&ae.kind!==re.SyntaxKind.EndOfFileToken){let ti=ir(ae,Jr);if(ti.length!==0||!Xe)return ti}return Ye(ae,ae.getStart(Jr),Jr,Xe)}M.parseJsDocOfNode=Cr;function Ye(ae,Xe,Jr,ti){let Ze=re[ti&&Ee(Jr,ae.pos,Xe)?\"forEachTrailingCommentRange\":\"forEachLeadingCommentRange\"](Jr.text,ae.pos,(vr,mr,Ar)=>Ar===re.SyntaxKind.MultiLineCommentTrivia&&Jr.text[vr+2]===\"*\"?{pos:vr}:void 0);if(Ze===void 0)return[];let Sr=Ze.pos,zr=Jr.text.slice(Sr,Xe),Wr=re.createSourceFile(\"jsdoc.ts\",\"\".concat(zr,\"var a;\"),Jr.languageVersion),Je=ir(Wr.statements[0],Wr);for(let vr of Je)xe(vr,ae);return Je;function xe(vr,mr){return vr.pos+=Sr,vr.end+=Sr,vr.parent=mr,re.forEachChild(vr,Ar=>xe(Ar,vr),Ar=>{Ar.pos+=Sr,Ar.end+=Sr;for(let Oe of Ar)xe(Oe,vr)})}}var Br;(function(ae){ae[ae.ImportDeclaration=1]=\"ImportDeclaration\",ae[ae.ImportEquals=2]=\"ImportEquals\",ae[ae.ExportFrom=4]=\"ExportFrom\",ae[ae.DynamicImport=8]=\"DynamicImport\",ae[ae.Require=16]=\"Require\",ae[ae.ImportType=32]=\"ImportType\",ae[ae.All=63]=\"All\",ae[ae.AllImports=59]=\"AllImports\",ae[ae.AllStaticImports=3]=\"AllStaticImports\",ae[ae.AllImportExpressions=24]=\"AllImportExpressions\",ae[ae.AllRequireLike=18]=\"AllRequireLike\",ae[ae.AllNestedImports=56]=\"AllNestedImports\",ae[ae.AllTopLevelImports=7]=\"AllTopLevelImports\"})(Br=M.ImportKind||(M.ImportKind={}));function Er(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,ti=[];for(let Sr of Ne(ae,Xe,Jr))switch(Sr.kind){case re.SyntaxKind.ImportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.ImportEqualsDeclaration:Ze(Sr.moduleReference.expression);break;case re.SyntaxKind.ExportDeclaration:Ze(Sr.moduleSpecifier);break;case re.SyntaxKind.CallExpression:Ze(Sr.arguments[0]);break;case re.SyntaxKind.ImportType:Ve.isLiteralTypeNode(Sr.argument)&&Ze(Sr.argument.literal);break;default:throw new Error(\"unexpected node\")}return ti;function Ze(Sr){Ve.isTextualLiteral(Sr)&&ti.push(Sr)}}M.findImports=Er;function Ne(ae,Xe){let Jr=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return new n(ae,Xe,Jr).find()}M.findImportLikeNodes=Ne;var n=class{constructor(ae,Xe,Jr){this._sourceFile=ae,this._options=Xe,this._ignoreFileName=Jr,this._result=[]}find(){return this._sourceFile.isDeclarationFile&&(this._options&=-25),this._options&7&&this._findImports(this._sourceFile.statements),this._options&56&&this._findNestedImports(),this._result}_findImports(ae){for(let Xe of ae)Ve.isImportDeclaration(Xe)?this._options&1&&this._result.push(Xe):Ve.isImportEqualsDeclaration(Xe)?this._options&2&&Xe.moduleReference.kind===re.SyntaxKind.ExternalModuleReference&&this._result.push(Xe):Ve.isExportDeclaration(Xe)?Xe.moduleSpecifier!==void 0&&this._options&4&&this._result.push(Xe):Ve.isModuleDeclaration(Xe)&&this._findImportsInModule(Xe)}_findImportsInModule(ae){if(ae.body!==void 0){if(ae.body.kind===re.SyntaxKind.ModuleDeclaration)return this._findImportsInModule(ae.body);this._findImports(ae.body.statements)}}_findNestedImports(){let ae=this._ignoreFileName||(this._sourceFile.flags&re.NodeFlags.JavaScriptFile)!==0,Xe,Jr;if((this._options&56)===16){if(!ae)return;Xe=/\\brequire\\s*[1&&this._result.push(Ze.parent)}}else Ze.kind===re.SyntaxKind.Identifier&&Ze.end-7===ti.index&&Ze.parent.kind===re.SyntaxKind.CallExpression&&Ze.parent.expression===Ze&&Ze.parent.arguments.length===1&&this._result.push(Ze.parent)}}};function lr(ae){for(;ae.flags&re.NodeFlags.NestedNamespace;)ae=ae.parent;return B(ae.modifiers,re.SyntaxKind.DeclareKeyword)||be(ae.parent)}M.isStatementInAmbientContext=lr;function be(ae){for(;ae.kind===re.SyntaxKind.ModuleBlock;){do ae=ae.parent;while(ae.flags&re.NodeFlags.NestedNamespace);if(B(ae.modifiers,re.SyntaxKind.DeclareKeyword))return!0;ae=ae.parent}return!1}M.isAmbientModuleBlock=be;function Ge(ae){let Xe=ae.parent;for(;Xe.kind===re.SyntaxKind.ParenthesizedExpression;)Xe=Xe.parent;return Ve.isCallExpression(Xe)&&ae.end<=Xe.expression.end?Xe:void 0}M.getIIFE=Ge;function ur(ae,Xe){return(ae.strict?ae[Xe]!==!1:ae[Xe]===!0)&&(Xe!==\"strictPropertyInitialization\"||ur(ae,\"strictNullChecks\"))}M.isStrictCompilerOptionEnabled=ur;function yr(ae,Xe){switch(Xe){case\"stripInternal\":case\"declarationMap\":case\"emitDeclarationOnly\":return ae[Xe]===!0&&yr(ae,\"declaration\");case\"declaration\":return ae.declaration||yr(ae,\"composite\");case\"incremental\":return ae.incremental===void 0?yr(ae,\"composite\"):ae.incremental;case\"skipDefaultLibCheck\":return ae.skipDefaultLibCheck||yr(ae,\"skipLibCheck\");case\"suppressImplicitAnyIndexErrors\":return ae.suppressImplicitAnyIndexErrors===!0&&yr(ae,\"noImplicitAny\");case\"allowSyntheticDefaultImports\":return ae.allowSyntheticDefaultImports!==void 0?ae.allowSyntheticDefaultImports:yr(ae,\"esModuleInterop\")||ae.module===re.ModuleKind.System;case\"noUncheckedIndexedAccess\":return ae.noUncheckedIndexedAccess===!0&&yr(ae,\"strictNullChecks\");case\"allowJs\":return ae.allowJs===void 0?yr(ae,\"checkJs\"):ae.allowJs;case\"noImplicitAny\":case\"noImplicitThis\":case\"strictNullChecks\":case\"strictFunctionTypes\":case\"strictPropertyInitialization\":case\"alwaysStrict\":case\"strictBindCallApply\":return ur(ae,Xe)}return ae[Xe]===!0}M.isCompilerOptionEnabled=yr;function Ir(ae){return ae.name.kind===re.SyntaxKind.StringLiteral||(ae.flags&re.NodeFlags.GlobalAugmentation)!==0}M.isAmbientModule=Ir;function wr(ae){return Ur(ae)}M.getCheckJsDirective=wr;function Ur(ae){let Xe;return re.forEachLeadingCommentRange(ae,(re.getShebang(ae)||\"\").length,(Jr,ti,Ze)=>{if(Ze===re.SyntaxKind.SingleLineCommentTrivia){let Sr=ae.slice(Jr,ti),zr=/^\\/{2,3}\\s*@ts-(no)?check(?:\\s|$)/i.exec(Sr);zr!==null&&(Xe={pos:Jr,end:ti,enabled:zr[1]===void 0})}}),Xe}M.getTsCheckDirective=Ur;function ii(ae){return Ve.isTypeReferenceNode(ae.type)&&ae.type.typeName.kind===re.SyntaxKind.Identifier&&ae.type.typeName.escapedText===\"const\"}M.isConstAssertion=ii;function mi(ae){let Xe=ae;for(;;){let Jr=Xe.parent;e:switch(Jr.kind){case re.SyntaxKind.TypeAssertionExpression:case re.SyntaxKind.AsExpression:return ii(Jr);case re.SyntaxKind.PrefixUnaryExpression:if(Xe.kind!==re.SyntaxKind.NumericLiteral)return!1;switch(Jr.operator){case re.SyntaxKind.PlusToken:case re.SyntaxKind.MinusToken:Xe=Jr;break e;default:return!1}case re.SyntaxKind.PropertyAssignment:if(Jr.initializer!==Xe)return!1;Xe=Jr.parent;break;case re.SyntaxKind.ShorthandPropertyAssignment:Xe=Jr.parent;break;case re.SyntaxKind.ParenthesizedExpression:case re.SyntaxKind.ArrayLiteralExpression:case re.SyntaxKind.ObjectLiteralExpression:case re.SyntaxKind.TemplateExpression:Xe=Jr;break;default:return!1}}}M.isInConstContext=mi;function pe(ae,Xe){if(!or(ae))return!1;let Jr=Xe.getTypeAtLocation(ae.arguments[2]);if(Jr.getProperty(\"value\")===void 0)return Jr.getProperty(\"set\")===void 0;let ti=Jr.getProperty(\"writable\");if(ti===void 0)return!1;let Ze=ti.valueDeclaration!==void 0&&Ve.isPropertyAssignment(ti.valueDeclaration)?Xe.getTypeAtLocation(ti.valueDeclaration.initializer):Xe.getTypeOfSymbolAtLocation(ti,ae.arguments[2]);return oi.isBooleanLiteralType(Ze,!1)}M.isReadonlyAssignmentDeclaration=pe;function or(ae){return ae.arguments.length===3&&Ve.isEntityNameExpression(ae.arguments[0])&&Ve.isNumericOrStringLikeLiteral(ae.arguments[1])&&Ve.isPropertyAccessExpression(ae.expression)&&ae.expression.name.escapedText===\"defineProperty\"&&Ve.isIdentifier(ae.expression.expression)&&ae.expression.expression.escapedText===\"Object\"}M.isBindableObjectDefinePropertyCall=or;function qr(ae){return re.isPropertyAccessExpression(ae)&&re.isIdentifier(ae.expression)&&ae.expression.escapedText===\"Symbol\"}M.isWellKnownSymbolLiterally=qr;function si(ae){return{displayName:\"[Symbol.\".concat(ae.name.text,\"]\"),symbolName:\"__@\"+ae.name.text}}M.getPropertyNameOfWellKnownSymbol=si;var Di=(ae=>{let[Xe,Jr]=ae;return Xe<\"4\"||Xe===\"4\"&&Jr<\"3\"})(re.versionMajorMinor.split(\".\"));function wi(ae,Xe){let Jr={known:!0,names:[]};if(ae=Gi(ae),Di&&qr(ae))Jr.names.push(si(ae));else{let ti=Xe.getTypeAtLocation(ae);for(let Ze of oi.unionTypeParts(Xe.getBaseConstraintOfType(ti)||ti)){let Sr=oi.getPropertyNameFromType(Ze);Sr?Jr.names.push(Sr):Jr.known=!1}}return Jr}M.getLateBoundPropertyNames=wi;function Xi(ae,Xe){let Jr=O(ae);return Jr!==void 0?{known:!0,names:[{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)}]}:ae.kind===re.SyntaxKind.PrivateIdentifier?{known:!0,names:[{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName}]}:wi(ae.expression,Xe)}M.getLateBoundPropertyNamesOfPropertyName=Xi;function et(ae,Xe){let Jr=O(ae);if(Jr!==void 0)return{displayName:Jr,symbolName:re.escapeLeadingUnderscores(Jr)};if(ae.kind===re.SyntaxKind.PrivateIdentifier)return{displayName:ae.text,symbolName:Xe.getSymbolAtLocation(ae).escapedName};let{expression:ti}=ae;return Di&&qr(ti)?si(ti):oi.getPropertyNameFromType(Xe.getTypeAtLocation(ti))}M.getSingleLateBoundPropertyNameOfPropertyName=et;function Gi(ae){for(;ae.kind===re.SyntaxKind.ParenthesizedExpression;)ae=ae.expression;return ae}M.unwrapParentheses=Gi;function Wt(ae){return\"\".concat(ae.negative?\"-\":\"\").concat(ae.base10Value,\"n\")}M.formatPseudoBigInt=Wt;function Zt(ae,Xe){let Jr=ae.caseBlock.clauses.filter(Ve.isCaseClause);if(Jr.length===0)return!1;let ti=oi.unionTypeParts(Xe.getTypeAtLocation(ae.expression));if(ti.length>Jr.length)return!1;let Ze=new Set(ti.map(_r));if(Ze.has(void 0))return!1;let Sr=new Set;for(let zr of Jr){let Wr=Xe.getTypeAtLocation(zr.expression);if(M.isTypeFlagSet(Wr,re.TypeFlags.Never))continue;let Je=_r(Wr);if(Ze.has(Je))Sr.add(Je);else if(Je!==\"null\"&&Je!==\"undefined\")return!1}return Ze.size===Sr.size}M.hasExhaustiveCaseClauses=Zt;function _r(ae){if(M.isTypeFlagSet(ae,re.TypeFlags.Null))return\"null\";if(M.isTypeFlagSet(ae,re.TypeFlags.Undefined))return\"undefined\";if(M.isTypeFlagSet(ae,re.TypeFlags.NumberLiteral))return\"\".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?\"enum:\":\"\").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.StringLiteral))return\"\".concat(M.isTypeFlagSet(ae,re.TypeFlags.EnumLiteral)?\"enum:\":\"\",\"string:\").concat(ae.value);if(M.isTypeFlagSet(ae,re.TypeFlags.BigIntLiteral))return Wt(ae.value);if(Ke.isUniqueESSymbolType(ae))return ae.escapedName;if(oi.isBooleanLiteralType(ae,!0))return\"true\";if(oi.isBooleanLiteralType(ae,!1))return\"false\"}function pi(ae){var Xe;if(((Xe=ae.heritageClauses)===null||Xe===void 0?void 0:Xe[0].token)===re.SyntaxKind.ExtendsKeyword)return ae.heritageClauses[0].types[0]}M.getBaseOfClassLikeExpression=pi}}),ez=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/convert-comments.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var w=Object.getOwnPropertyDescriptor(e,a);(!w||(\"get\"in w?!e.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,w)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,\"default\",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!==\"default\"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e};Object.defineProperty(M,\"__esModule\",{value:!0}),M.convertComments=void 0;var oi=Ke(_u()),kr=n3(),pr=A1(),Lr=k1();function ar(ke,e){let a=[];return(0,kr.forEachComment)(ke,(C,w)=>{let B=w.kind==oi.SyntaxKind.SingleLineCommentTrivia?Lr.AST_TOKEN_TYPES.Line:Lr.AST_TOKEN_TYPES.Block,E=[w.pos,w.end],Q=(0,pr.getLocFor)(E[0],E[1],ke),le=E[0]+2,N=w.kind===oi.SyntaxKind.SingleLineCommentTrivia?E[1]-le:E[1]-le-2;a.push({type:B,value:e.slice(le,le+N),range:E,loc:Q})},ke),a}M.convertComments=ar}}),o3=Oa({\"node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0});var re={AssignmentExpression:[\"left\",\"right\"],AssignmentPattern:[\"left\",\"right\"],ArrayExpression:[\"elements\"],ArrayPattern:[\"elements\"],ArrowFunctionExpression:[\"params\",\"body\"],AwaitExpression:[\"argument\"],BlockStatement:[\"body\"],BinaryExpression:[\"left\",\"right\"],BreakStatement:[\"label\"],CallExpression:[\"callee\",\"arguments\"],CatchClause:[\"param\",\"body\"],ChainExpression:[\"expression\"],ClassBody:[\"body\"],ClassDeclaration:[\"id\",\"superClass\",\"body\"],ClassExpression:[\"id\",\"superClass\",\"body\"],ConditionalExpression:[\"test\",\"consequent\",\"alternate\"],ContinueStatement:[\"label\"],DebuggerStatement:[],DoWhileStatement:[\"body\",\"test\"],EmptyStatement:[],ExportAllDeclaration:[\"exported\",\"source\"],ExportDefaultDeclaration:[\"declaration\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\"],ExportSpecifier:[\"exported\",\"local\"],ExpressionStatement:[\"expression\"],ExperimentalRestProperty:[\"argument\"],ExperimentalSpreadProperty:[\"argument\"],ForStatement:[\"init\",\"test\",\"update\",\"body\"],ForInStatement:[\"left\",\"right\",\"body\"],ForOfStatement:[\"left\",\"right\",\"body\"],FunctionDeclaration:[\"id\",\"params\",\"body\"],FunctionExpression:[\"id\",\"params\",\"body\"],Identifier:[],IfStatement:[\"test\",\"consequent\",\"alternate\"],ImportDeclaration:[\"specifiers\",\"source\"],ImportDefaultSpecifier:[\"local\"],ImportExpression:[\"source\"],ImportNamespaceSpecifier:[\"local\"],ImportSpecifier:[\"imported\",\"local\"],JSXAttribute:[\"name\",\"value\"],JSXClosingElement:[\"name\"],JSXElement:[\"openingElement\",\"children\",\"closingElement\"],JSXEmptyExpression:[],JSXExpressionContainer:[\"expression\"],JSXIdentifier:[],JSXMemberExpression:[\"object\",\"property\"],JSXNamespacedName:[\"namespace\",\"name\"],JSXOpeningElement:[\"name\",\"attributes\"],JSXSpreadAttribute:[\"argument\"],JSXText:[],JSXFragment:[\"openingFragment\",\"children\",\"closingFragment\"],JSXClosingFragment:[],JSXOpeningFragment:[],Literal:[],LabeledStatement:[\"label\",\"body\"],LogicalExpression:[\"left\",\"right\"],MemberExpression:[\"object\",\"property\"],MetaProperty:[\"meta\",\"property\"],MethodDefinition:[\"key\",\"value\"],NewExpression:[\"callee\",\"arguments\"],ObjectExpression:[\"properties\"],ObjectPattern:[\"properties\"],PrivateIdentifier:[],Program:[\"body\"],Property:[\"key\",\"value\"],PropertyDefinition:[\"key\",\"value\"],RestElement:[\"argument\"],ReturnStatement:[\"argument\"],SequenceExpression:[\"expressions\"],SpreadElement:[\"argument\"],StaticBlock:[\"body\"],Super:[],SwitchStatement:[\"discriminant\",\"cases\"],SwitchCase:[\"test\",\"consequent\"],TaggedTemplateExpression:[\"tag\",\"quasi\"],TemplateElement:[],TemplateLiteral:[\"quasis\",\"expressions\"],ThisExpression:[],ThrowStatement:[\"argument\"],TryStatement:[\"block\",\"handler\",\"finalizer\"],UnaryExpression:[\"argument\"],UpdateExpression:[\"argument\"],VariableDeclaration:[\"declarations\"],VariableDeclarator:[\"id\",\"init\"],WhileStatement:[\"test\",\"body\"],WithStatement:[\"object\",\"body\"],YieldExpression:[\"argument\"]},Ve=Object.keys(re);for(let Lr of Ve)Object.freeze(re[Lr]);Object.freeze(re);var Ke=new Set([\"parent\",\"leadingComments\",\"trailingComments\"]);function oi(Lr){return!Ke.has(Lr)&&Lr[0]!==\"_\"}function kr(Lr){return Object.keys(Lr).filter(oi)}function pr(Lr){let ar=Object.assign({},re);for(let ke of Object.keys(Lr))if(Object.prototype.hasOwnProperty.call(ar,ke)){let e=new Set(Lr[ke]);for(let a of ar[ke])e.add(a);ar[ke]=Object.freeze(Array.from(e))}else ar[ke]=Object.freeze(Array.from(Lr[ke]));return Object.freeze(ar)}M.KEYS=re,M.getKeys=kr,M.unionWith=pr}}),rz=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/get-keys.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.getKeys=void 0;var re=o3(),Ve=re.getKeys;M.getKeys=Ve}}),iz=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(Lr,ar,ke,e){e===void 0&&(e=ke);var a=Object.getOwnPropertyDescriptor(ar,ke);(!a||(\"get\"in a?!ar.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return ar[ke]}}),Object.defineProperty(Lr,e,a)}:function(Lr,ar,ke,e){e===void 0&&(e=ke),Lr[e]=ar[ke]}),Ve=M&&M.__setModuleDefault||(Object.create?function(Lr,ar){Object.defineProperty(Lr,\"default\",{enumerable:!0,value:ar})}:function(Lr,ar){Lr.default=ar}),Ke=M&&M.__importStar||function(Lr){if(Lr&&Lr.__esModule)return Lr;var ar={};if(Lr!=null)for(var ke in Lr)ke!==\"default\"&&Object.prototype.hasOwnProperty.call(Lr,ke)&&re(ar,Lr,ke);return Ve(ar,Lr),ar};Object.defineProperty(M,\"__esModule\",{value:!0}),M.visitorKeys=void 0;var oi=Ke(o3()),kr={ImportAttribute:[\"key\",\"value\"],ArrayPattern:[\"decorators\",\"elements\",\"typeAnnotation\"],ArrowFunctionExpression:[\"typeParameters\",\"params\",\"returnType\",\"body\"],AssignmentPattern:[\"decorators\",\"left\",\"right\",\"typeAnnotation\"],CallExpression:[\"callee\",\"typeParameters\",\"arguments\"],ClassDeclaration:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"implements\",\"body\"],ClassExpression:[\"decorators\",\"id\",\"typeParameters\",\"superClass\",\"superTypeParameters\",\"implements\",\"body\"],ExportAllDeclaration:[\"exported\",\"source\",\"assertions\"],ExportNamedDeclaration:[\"declaration\",\"specifiers\",\"source\",\"assertions\"],FunctionDeclaration:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],FunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],Identifier:[\"decorators\",\"typeAnnotation\"],ImportDeclaration:[\"specifiers\",\"source\",\"assertions\"],ImportExpression:[\"source\",\"attributes\"],MethodDefinition:[\"decorators\",\"key\",\"value\",\"typeParameters\"],NewExpression:[\"callee\",\"typeParameters\",\"arguments\"],ObjectPattern:[\"decorators\",\"properties\",\"typeAnnotation\"],PropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\",\"value\"],RestElement:[\"decorators\",\"argument\",\"typeAnnotation\"],TaggedTemplateExpression:[\"tag\",\"typeParameters\",\"quasi\"],StaticBlock:[\"body\"],JSXOpeningElement:[\"name\",\"typeParameters\",\"attributes\"],JSXClosingFragment:[],JSXOpeningFragment:[],JSXSpreadChild:[\"expression\"],Decorator:[\"expression\"],TSAbstractKeyword:[],TSAbstractMethodDefinition:[\"key\",\"value\"],TSAbstractPropertyDefinition:[\"decorators\",\"key\",\"typeAnnotation\"],TSAnyKeyword:[],TSArrayType:[\"elementType\"],TSAsExpression:[\"expression\",\"typeAnnotation\"],TSAsyncKeyword:[],TSBigIntKeyword:[],TSBooleanKeyword:[],TSCallSignatureDeclaration:[\"typeParameters\",\"params\",\"returnType\"],TSClassImplements:[\"expression\",\"typeParameters\"],TSConditionalType:[\"checkType\",\"extendsType\",\"trueType\",\"falseType\"],TSConstructorType:[\"typeParameters\",\"params\",\"returnType\"],TSConstructSignatureDeclaration:[\"typeParameters\",\"params\",\"returnType\"],TSDeclareFunction:[\"id\",\"typeParameters\",\"params\",\"returnType\",\"body\"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:[\"id\",\"typeParameters\",\"params\",\"returnType\"],TSEnumDeclaration:[\"id\",\"members\"],TSEnumMember:[\"id\",\"initializer\"],TSExportAssignment:[\"expression\"],TSExportKeyword:[],TSExternalModuleReference:[\"expression\"],TSFunctionType:[\"typeParameters\",\"params\",\"returnType\"],TSImportEqualsDeclaration:[\"id\",\"moduleReference\"],TSImportType:[\"parameter\",\"qualifier\",\"typeParameters\"],TSIndexedAccessType:[\"indexType\",\"objectType\"],TSIndexSignature:[\"parameters\",\"typeAnnotation\"],TSInferType:[\"typeParameter\"],TSInstantiationExpression:[\"expression\",\"typeParameters\"],TSInterfaceBody:[\"body\"],TSInterfaceDeclaration:[\"id\",\"typeParameters\",\"extends\",\"body\"],TSInterfaceHeritage:[\"expression\",\"typeParameters\"],TSIntersectionType:[\"types\"],TSIntrinsicKeyword:[],TSLiteralType:[\"literal\"],TSMappedType:[\"nameType\",\"typeParameter\",\"typeAnnotation\"],TSMethodSignature:[\"typeParameters\",\"key\",\"params\",\"returnType\"],TSModuleBlock:[\"body\"],TSModuleDeclaration:[\"id\",\"body\"],TSNamedTupleMember:[\"label\",\"elementType\"],TSNamespaceExportDeclaration:[\"id\"],TSNeverKeyword:[],TSNonNullExpression:[\"expression\"],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSOptionalType:[\"typeAnnotation\"],TSParameterProperty:[\"decorators\",\"parameter\"],TSPrivateKeyword:[],TSPropertySignature:[\"typeAnnotation\",\"key\",\"initializer\"],TSProtectedKeyword:[],TSPublicKeyword:[],TSQualifiedName:[\"left\",\"right\"],TSReadonlyKeyword:[],TSRestType:[\"typeAnnotation\"],TSStaticKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSTemplateLiteralType:[\"quasis\",\"types\"],TSThisType:[],TSTupleType:[\"elementTypes\"],TSTypeAliasDeclaration:[\"id\",\"typeParameters\",\"typeAnnotation\"],TSTypeAnnotation:[\"typeAnnotation\"],TSTypeAssertion:[\"typeAnnotation\",\"expression\"],TSTypeLiteral:[\"members\"],TSTypeOperator:[\"typeAnnotation\"],TSTypeParameter:[\"name\",\"constraint\",\"default\"],TSTypeParameterDeclaration:[\"params\"],TSTypeParameterInstantiation:[\"params\"],TSTypePredicate:[\"typeAnnotation\",\"parameterName\"],TSTypeQuery:[\"exprName\"],TSTypeReference:[\"typeName\",\"typeParameters\"],TSUndefinedKeyword:[],TSUnionType:[\"types\"],TSUnknownKeyword:[],TSVoidKeyword:[]},pr=oi.unionWith(kr);M.visitorKeys=pr}}),s3=Oa({\"node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys/dist/index.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.visitorKeys=M.getKeys=void 0;var re=rz();Object.defineProperty(M,\"getKeys\",{enumerable:!0,get:function(){return re.getKeys}});var Ve=iz();Object.defineProperty(M,\"visitorKeys\",{enumerable:!0,get:function(){return Ve.visitorKeys}})}}),c3=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.simpleTraverse=void 0;var re=s3();function Ve(pr){return pr!==null&&typeof pr==\"object\"&&typeof pr.type==\"string\"}function Ke(pr,Lr){let ar=pr[Lr.type];return ar!=null?ar:[]}var oi=class{constructor(pr){let Lr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.allVisitorKeys=re.visitorKeys,this.selectors=pr,this.setParentPointers=Lr}traverse(pr,Lr){if(!Ve(pr))return;this.setParentPointers&&(pr.parent=Lr),\"enter\"in this.selectors?this.selectors.enter(pr,Lr):pr.type in this.selectors&&this.selectors[pr.type](pr,Lr);let ar=Ke(this.allVisitorKeys,pr);if(!(ar.length<1))for(let ke of ar){let e=pr[ke];if(Array.isArray(e))for(let a of e)this.traverse(a,pr);else this.traverse(e,pr)}}};function kr(pr,Lr){let ar=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;new oi(Lr,ar).traverse(pr,void 0)}M.simpleTraverse=kr}}),tz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.astConverter=void 0;var re=e3(),Ve=ez(),Ke=A1(),oi=c3();function kr(pr,Lr,ar){let{parseDiagnostics:ke}=pr;if(ke.length)throw(0,re.convertError)(ke[0]);let e=new re.Converter(pr,{errorOnUnknownASTType:Lr.errorOnUnknownASTType||!1,shouldPreserveNodeMaps:ar}),a=e.convertProgram();(!Lr.range||!Lr.loc)&&(0,oi.simpleTraverse)(a,{enter:w=>{Lr.range||delete w.range,Lr.loc||delete w.loc}}),Lr.tokens&&(a.tokens=(0,Ke.convertTokens)(pr)),Lr.comment&&(a.comments=(0,Ve.convertComments)(pr,Lr.code));let C=e.getASTMaps();return{estree:a,astMaps:C}}M.astConverter=kr}}),Mv=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(p,m,G,oe){oe===void 0&&(oe=G);var f=Object.getOwnPropertyDescriptor(m,G);(!f||(\"get\"in f?!m.__esModule:f.writable||f.configurable))&&(f={enumerable:!0,get:function(){return m[G]}}),Object.defineProperty(p,oe,f)}:function(p,m,G,oe){oe===void 0&&(oe=G),p[oe]=m[G]}),Ve=M&&M.__setModuleDefault||(Object.create?function(p,m){Object.defineProperty(p,\"default\",{enumerable:!0,value:m})}:function(p,m){p.default=m}),Ke=M&&M.__importStar||function(p){if(p&&p.__esModule)return p;var m={};if(p!=null)for(var G in p)G!==\"default\"&&Object.prototype.hasOwnProperty.call(p,G)&&re(m,p,G);return Ve(m,p),m},oi=M&&M.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.getModuleResolver=M.getAstFromProgram=M.getCanonicalFileName=M.ensureAbsolutePath=M.createDefaultCompilerOptionsFromExtra=M.canonicalDirname=M.CORE_COMPILER_OPTIONS=void 0;var kr=oi(Fv()),pr=Ke(_u()),Lr={noEmit:!0,noUnusedLocals:!0,noUnusedParameters:!0};M.CORE_COMPILER_OPTIONS=Lr;var ar=Object.assign(Object.assign({},Lr),{allowNonTsExtensions:!0,allowJs:!0,checkJs:!0});function ke(p){return p.debugLevel.has(\"typescript\")?Object.assign(Object.assign({},ar),{extendedDiagnostics:!0}):ar}M.createDefaultCompilerOptionsFromExtra=ke;var e=pr.sys!==void 0?pr.sys.useCaseSensitiveFileNames:!0,a=e?p=>p:p=>p.toLowerCase();function C(p){let m=kr.default.normalize(p);return m.endsWith(kr.default.sep)&&(m=m.slice(0,-1)),a(m)}M.getCanonicalFileName=C;function w(p,m){return kr.default.isAbsolute(p)?p:kr.default.join(m.tsconfigRootDir||\"/prettier-security-dirname-placeholder\",p)}M.ensureAbsolutePath=w;function B(p){return kr.default.dirname(p)}M.canonicalDirname=B;var E=[pr.Extension.Dts,pr.Extension.Dcts,pr.Extension.Dmts];function Q(p){var m;return p?(m=E.find(G=>p.endsWith(G)))!==null&&m!==void 0?m:kr.default.extname(p):null}function le(p,m){let G=p.getSourceFile(m.filePath),oe=Q(m.filePath),f=Q(G==null?void 0:G.fileName);if(oe===f)return G&&{ast:G,program:p}}M.getAstFromProgram=le;function N(p){let m;try{throw new Error(\"Dynamic require is not supported\")}catch{let oe=[\"Could not find the provided parserOptions.moduleResolver.\",\"Hint: use an absolute path if you are not in control over where the ESLint instance runs.\"];throw new Error(oe.join(`\n`))}return m}M.getModuleResolver=N}}),az=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,w,B){B===void 0&&(B=w);var E=Object.getOwnPropertyDescriptor(C,w);(!E||(\"get\"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[w]}}),Object.defineProperty(a,B,E)}:function(a,C,w,B){B===void 0&&(B=w),a[B]=C[w]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,\"default\",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var w in a)w!==\"default\"&&Object.prototype.hasOwnProperty.call(a,w)&&re(C,a,w);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createDefaultProgram=void 0;var kr=oi(wm()),pr=oi(Fv()),Lr=Ke(_u()),ar=Mv(),ke=(0,kr.default)(\"typescript-eslint:typescript-estree:createDefaultProgram\");function e(a,C){if(ke(\"Getting default program for: %s\",C.filePath||\"unnamed file\"),!C.projects||C.projects.length!==1)return;let w=C.projects[0],B=Lr.getParsedCommandLineOfConfigFile(w,(0,ar.createDefaultCompilerOptionsFromExtra)(C),Object.assign(Object.assign({},Lr.sys),{onUnRecoverableConfigFileDiagnostic:()=>{}}));if(!B)return;let E=Lr.createCompilerHost(B.options,!0);C.moduleResolver&&(E.resolveModuleNames=(0,ar.getModuleResolver)(C.moduleResolver).resolveModuleNames);let Q=E.readFile;E.readFile=p=>pr.default.normalize(p)===pr.default.normalize(C.filePath)?a:Q(p);let le=Lr.createProgram([C.filePath],B.options,E),N=le.getSourceFile(C.filePath);return N&&{ast:N,program:le}}M.createDefaultProgram=e}}),rx=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/getScriptKind.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(ke,e,a,C){C===void 0&&(C=a);var w=Object.getOwnPropertyDescriptor(e,a);(!w||(\"get\"in w?!e.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(ke,C,w)}:function(ke,e,a,C){C===void 0&&(C=a),ke[C]=e[a]}),Ve=M&&M.__setModuleDefault||(Object.create?function(ke,e){Object.defineProperty(ke,\"default\",{enumerable:!0,value:e})}:function(ke,e){ke.default=e}),Ke=M&&M.__importStar||function(ke){if(ke&&ke.__esModule)return ke;var e={};if(ke!=null)for(var a in ke)a!==\"default\"&&Object.prototype.hasOwnProperty.call(ke,a)&&re(e,ke,a);return Ve(e,ke),e},oi=M&&M.__importDefault||function(ke){return ke&&ke.__esModule?ke:{default:ke}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.getLanguageVariant=M.getScriptKind=void 0;var kr=oi(Fv()),pr=Ke(_u());function Lr(ke,e){switch(kr.default.extname(ke).toLowerCase()){case pr.Extension.Js:case pr.Extension.Cjs:case pr.Extension.Mjs:return pr.ScriptKind.JS;case pr.Extension.Jsx:return pr.ScriptKind.JSX;case pr.Extension.Ts:case pr.Extension.Cts:case pr.Extension.Mts:return pr.ScriptKind.TS;case pr.Extension.Tsx:return pr.ScriptKind.TSX;case pr.Extension.Json:return pr.ScriptKind.JSON;default:return e?pr.ScriptKind.TSX:pr.ScriptKind.TS}}M.getScriptKind=Lr;function ar(ke){switch(ke){case pr.ScriptKind.TSX:case pr.ScriptKind.JSX:case pr.ScriptKind.JS:case pr.ScriptKind.JSON:return pr.LanguageVariant.JSX;default:return pr.LanguageVariant.Standard}}M.getLanguageVariant=ar}}),nz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createIsolatedProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(a,C,w,B){B===void 0&&(B=w);var E=Object.getOwnPropertyDescriptor(C,w);(!E||(\"get\"in E?!C.__esModule:E.writable||E.configurable))&&(E={enumerable:!0,get:function(){return C[w]}}),Object.defineProperty(a,B,E)}:function(a,C,w,B){B===void 0&&(B=w),a[B]=C[w]}),Ve=M&&M.__setModuleDefault||(Object.create?function(a,C){Object.defineProperty(a,\"default\",{enumerable:!0,value:C})}:function(a,C){a.default=C}),Ke=M&&M.__importStar||function(a){if(a&&a.__esModule)return a;var C={};if(a!=null)for(var w in a)w!==\"default\"&&Object.prototype.hasOwnProperty.call(a,w)&&re(C,a,w);return Ve(C,a),C},oi=M&&M.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createIsolatedProgram=void 0;var kr=oi(wm()),pr=Ke(_u()),Lr=Mv(),ar=rx(),ke=(0,kr.default)(\"typescript-eslint:typescript-estree:createIsolatedProgram\");function e(a,C){ke(\"Getting isolated program in %s mode for: %s\",C.jsx?\"TSX\":\"TS\",C.filePath);let w={fileExists(){return!0},getCanonicalFileName(){return C.filePath},getCurrentDirectory(){return\"\"},getDirectories(){return[]},getDefaultLibFileName(){return\"lib.d.ts\"},getNewLine(){return`\n`},getSourceFile(Q){return pr.createSourceFile(Q,a,pr.ScriptTarget.Latest,!0,(0,ar.getScriptKind)(C.filePath,C.jsx))},readFile(){},useCaseSensitiveFileNames(){return!0},writeFile(){return null}},B=pr.createProgram([C.filePath],Object.assign({noResolve:!0,target:pr.ScriptTarget.Latest,jsx:C.jsx?pr.JsxEmit.Preserve:void 0},(0,Lr.createDefaultCompilerOptionsFromExtra)(C)),w),E=B.getSourceFile(C.filePath);if(!E)throw new Error(\"Expected an ast to be returned for the single-file isolated program.\");return{ast:E,program:B}}M.createIsolatedProgram=e}}),u3=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(J,ie,R,q){q===void 0&&(q=R);var O=Object.getOwnPropertyDescriptor(ie,R);(!O||(\"get\"in O?!ie.__esModule:O.writable||O.configurable))&&(O={enumerable:!0,get:function(){return ie[R]}}),Object.defineProperty(J,q,O)}:function(J,ie,R,q){q===void 0&&(q=R),J[q]=ie[R]}),Ve=M&&M.__setModuleDefault||(Object.create?function(J,ie){Object.defineProperty(J,\"default\",{enumerable:!0,value:ie})}:function(J,ie){J.default=ie}),Ke=M&&M.__importStar||function(J){if(J&&J.__esModule)return J;var ie={};if(J!=null)for(var R in J)R!==\"default\"&&Object.prototype.hasOwnProperty.call(J,R)&&re(ie,J,R);return Ve(ie,J),ie},oi=M&&M.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.getProgramsForProjects=M.createWatchProgram=M.clearWatchCaches=void 0;var kr=oi(wm()),pr=oi(ex()),Lr=oi(QT()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)(\"typescript-eslint:typescript-estree:createWatchProgram\"),a=new Map,C=new Map,w=new Map,B=new Map,E=new Map,Q=new Map;function le(){a.clear(),C.clear(),w.clear(),Q.clear(),B.clear(),E.clear()}M.clearWatchCaches=le;function N(J){return(ie,R)=>{let q=(0,ke.getCanonicalFileName)(ie),O=(()=>{let ve=J.get(q);return ve||(ve=new Set,J.set(q,ve)),ve})();return O.add(R),{close:()=>{O.delete(R)}}}}var p={code:\"\",filePath:\"\"};function m(J){throw new Error(ar.flattenDiagnosticMessageText(J.messageText,ar.sys.newLine))}function G(J){var ie;return!((ie=ar.sys)===null||ie===void 0)&&ie.createHash?ar.sys.createHash(J):J}function oe(J,ie,R){let q=R.EXPERIMENTAL_useSourceOfProjectReferenceRedirect?new Set(ie.getSourceFiles().map(O=>(0,ke.getCanonicalFileName)(O.fileName))):new Set(ie.getRootFileNames().map(O=>(0,ke.getCanonicalFileName)(O)));return B.set(J,q),q}function f(J,ie,R){let q=(0,ke.getCanonicalFileName)(ie),O=[];p.code=J,p.filePath=q;let ve=C.get(q),ee=G(J);Q.get(q)!==ee&&ve&&ve.size>0&&ve.forEach(he=>he(q,ar.FileWatcherEventKind.Changed));for(let[he,F]of a.entries()){let x=B.get(he),X=null;if(x||(X=F.getProgram().getProgram(),x=oe(he,X,R)),x.has(q))return e(\"Found existing program for file. %s\",q),X=X!=null?X:F.getProgram().getProgram(),X.getTypeChecker(),[X]}e(\"File did not belong to any existing programs, moving to create/update. %s\",q);for(let he of R.projects){let F=a.get(he);if(F){let A=se(F,q,he);if(!A)continue;if(A.getTypeChecker(),oe(he,A,R).has(q))return e(\"Found updated program for file. %s\",q),[A];O.push(A);continue}let x=K(he,R);a.set(he,x);let X=x.getProgram().getProgram();if(X.getTypeChecker(),oe(he,X,R).has(q))return e(\"Found program for file. %s\",q),[X];O.push(X)}return O}M.getProgramsForProjects=f;var T=Lr.default.satisfies(ar.version,\">=3.9.0-beta\",{includePrerelease:!0});function K(J,ie){e(\"Creating watch program for %s.\",J);let R=ar.createWatchCompilerHost(J,(0,ke.createDefaultCompilerOptionsFromExtra)(ie),ar.sys,ar.createAbstractBuilder,m,()=>{});ie.moduleResolver&&(R.resolveModuleNames=(0,ke.getModuleResolver)(ie.moduleResolver).resolveModuleNames);let q=R.readFile;R.readFile=(he,F)=>{let x=(0,ke.getCanonicalFileName)(he),X=x===p.filePath?p.code:q(x,F);return X!==void 0&&Q.set(x,G(X)),X},R.onUnRecoverableConfigFileDiagnostic=m,R.afterProgramCreate=he=>{let F=he.getConfigFileParsingDiagnostics().filter(x=>x.category===ar.DiagnosticCategory.Error&&x.code!==18003);F.length>0&&m(F[0])},R.watchFile=N(C),R.watchDirectory=N(w);let O=R.onCachedDirectoryStructureHostCreate;R.onCachedDirectoryStructureHostCreate=he=>{let F=he.readDirectory;he.readDirectory=(x,X,$,A,y)=>F(x,X?X.concat(ie.extraFileExtensions):void 0,$,A,y),O(he)},R.extraFileExtensions=ie.extraFileExtensions.map(he=>({extension:he,isMixedContent:!0,scriptKind:ar.ScriptKind.Deferred})),R.trace=e,R.useSourceOfProjectReferenceRedirect=()=>ie.EXPERIMENTAL_useSourceOfProjectReferenceRedirect;let ve;T?(R.setTimeout=void 0,R.clearTimeout=void 0):(e(\"Running without timeout fix\"),R.setTimeout=function(he,F){for(var x=arguments.length,X=new Array(x>2?x-2:0),$=2;${ve=void 0});let ee=ar.createWatchProgram(R);if(!T){let he=ee.getProgram;ee.getProgram=()=>(ve&&ve(),ve=void 0,he.call(ee))}return ee}M.createWatchProgram=K;function b(J){let R=pr.default.statSync(J).mtimeMs,q=E.get(J);return E.set(J,R),q===void 0?!1:Math.abs(q-R)>Number.EPSILON}function se(J,ie,R){let q=J.getProgram().getProgram();if(Eu.env.TSESTREE_NO_INVALIDATION===\"true\")return q;b(R)&&(e(\"tsconfig has changed - triggering program update. %s\",R),C.get(R).forEach(A=>A(R,ar.FileWatcherEventKind.Changed)),B.delete(R));let O=q.getSourceFile(ie);if(O)return q;e(\"File was not found in program - triggering folder update. %s\",ie);let ve=(0,ke.canonicalDirname)(ie),ee=null,he=ve,F=!1;for(;ee!==he;){ee=he;let A=w.get(ee);A&&(A.forEach(y=>{ve!==ee&&y(ve,ar.FileWatcherEventKind.Changed),y(ee,ar.FileWatcherEventKind.Changed)}),F=!0),he=(0,ke.canonicalDirname)(ee)}if(!F)return e(\"No callback found for file, not part of this program. %s\",ie),null;if(B.delete(R),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O)return q;e(\"File was still not found in program after directory update - checking file deletions. %s\",ie);let X=q.getRootFileNames().find(A=>!pr.default.existsSync(A));if(!X)return null;let $=C.get((0,ke.getCanonicalFileName)(X));return $?(e(\"Marking file as deleted. %s\",X),$.forEach(A=>A(X,ar.FileWatcherEventKind.Deleted)),B.delete(R),q=J.getProgram().getProgram(),O=q.getSourceFile(ie),O?q:(e(\"File was still not found in program after deletion check, assuming it is not part of this program. %s\",ie),null)):(e(\"Could not find watch callbacks for root file. %s\",X),q)}}}),oz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(B,E,Q,le){le===void 0&&(le=Q);var N=Object.getOwnPropertyDescriptor(E,Q);(!N||(\"get\"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[Q]}}),Object.defineProperty(B,le,N)}:function(B,E,Q,le){le===void 0&&(le=Q),B[le]=E[Q]}),Ve=M&&M.__setModuleDefault||(Object.create?function(B,E){Object.defineProperty(B,\"default\",{enumerable:!0,value:E})}:function(B,E){B.default=E}),Ke=M&&M.__importStar||function(B){if(B&&B.__esModule)return B;var E={};if(B!=null)for(var Q in B)Q!==\"default\"&&Object.prototype.hasOwnProperty.call(B,Q)&&re(E,B,Q);return Ve(E,B),E},oi=M&&M.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createProjectProgram=void 0;var kr=oi(wm()),pr=oi(Fv()),Lr=Ke(_u()),ar=u3(),ke=A1(),e=Mv(),a=(0,kr.default)(\"typescript-eslint:typescript-estree:createProjectProgram\"),C=[Lr.Extension.Ts,Lr.Extension.Tsx,Lr.Extension.Js,Lr.Extension.Jsx,Lr.Extension.Mjs,Lr.Extension.Mts,Lr.Extension.Cjs,Lr.Extension.Cts];function w(B,E,Q){a(\"Creating project program for: %s\",Q.filePath);let le=(0,ke.firstDefined)((0,ar.getProgramsForProjects)(B,Q.filePath,Q),N=>(0,e.getAstFromProgram)(N,Q));if(!le&&!E){let N=['\"parserOptions.project\" has been set for @typescript-eslint/parser.',\"The file does not match your project config: \".concat(pr.default.relative(Q.tsconfigRootDir||\"/prettier-security-dirname-placeholder\",Q.filePath),\".\")],p=!1,m=Q.extraFileExtensions||[];m.forEach(oe=>{oe.startsWith(\".\")||N.push('Found unexpected extension \"'.concat(oe,'\" specified with the \"extraFileExtensions\" option. Did you mean \".').concat(oe,'\"?')),C.includes(oe)&&N.push('You unnecessarily included the extension \"'.concat(oe,'\" with the \"extraFileExtensions\" option. This extension is already handled by the parser by default.'))});let G=pr.default.extname(Q.filePath);if(!C.includes(G)){let oe=\"The extension for the file (\".concat(G,\") is non-standard\");m.length>0?m.includes(G)||(N.push(\"\".concat(oe,'. It should be added to your existing \"parserOptions.extraFileExtensions\".')),p=!0):(N.push(\"\".concat(oe,'. You should add \"parserOptions.extraFileExtensions\" to your config.')),p=!0)}throw p||N.push(\"The file must be included in at least one of the projects provided.\"),new Error(N.join(`\n`))}return le}M.createProjectProgram=w}}),sz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/createSourceFile.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(e,a,C,w){w===void 0&&(w=C);var B=Object.getOwnPropertyDescriptor(a,C);(!B||(\"get\"in B?!a.__esModule:B.writable||B.configurable))&&(B={enumerable:!0,get:function(){return a[C]}}),Object.defineProperty(e,w,B)}:function(e,a,C,w){w===void 0&&(w=C),e[w]=a[C]}),Ve=M&&M.__setModuleDefault||(Object.create?function(e,a){Object.defineProperty(e,\"default\",{enumerable:!0,value:a})}:function(e,a){e.default=a}),Ke=M&&M.__importStar||function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var C in e)C!==\"default\"&&Object.prototype.hasOwnProperty.call(e,C)&&re(a,e,C);return Ve(a,e),a},oi=M&&M.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createSourceFile=void 0;var kr=oi(wm()),pr=Ke(_u()),Lr=rx(),ar=(0,kr.default)(\"typescript-eslint:typescript-estree:createSourceFile\");function ke(e,a){return ar(\"Getting AST without type information in %s mode for: %s\",a.jsx?\"TSX\":\"TS\",a.filePath),pr.createSourceFile(a.filePath,e,pr.ScriptTarget.Latest,!0,(0,Lr.getScriptKind)(a.filePath,a.jsx))}M.createSourceFile=ke}}),cz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js\"(M){\"use strict\";Ea(),Object.defineProperty(M,\"__esModule\",{value:!0}),M.getFirstSemanticOrSyntacticError=void 0;var re=_u();function Ve(kr,pr){try{let Lr=Ke(kr.getSyntacticDiagnostics(pr));if(Lr.length)return oi(Lr[0]);let ar=Ke(kr.getSemanticDiagnostics(pr));return ar.length?oi(ar[0]):void 0}catch(Lr){console.warn('Warning From TSC: \"'.concat(Lr.message));return}}M.getFirstSemanticOrSyntacticError=Ve;function Ke(kr){return kr.filter(pr=>{switch(pr.code){case 1013:case 1014:case 1044:case 1045:case 1048:case 1049:case 1070:case 1071:case 1085:case 1090:case 1096:case 1097:case 1098:case 1099:case 1117:case 1121:case 1123:case 1141:case 1162:case 1164:case 1172:case 1173:case 1175:case 1176:case 1190:case 1196:case 1200:case 1206:case 1211:case 1242:case 1246:case 1255:case 1308:case 2364:case 2369:case 2452:case 2462:case 8017:case 17012:case 17013:return!0}return!1})}function oi(kr){return Object.assign(Object.assign({},kr),{message:(0,re.flattenDiagnosticMessageText)(kr.messageText,re.sys.newLine)})}}}),l3=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(B,E,Q,le){le===void 0&&(le=Q);var N=Object.getOwnPropertyDescriptor(E,Q);(!N||(\"get\"in N?!E.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return E[Q]}}),Object.defineProperty(B,le,N)}:function(B,E,Q,le){le===void 0&&(le=Q),B[le]=E[Q]}),Ve=M&&M.__setModuleDefault||(Object.create?function(B,E){Object.defineProperty(B,\"default\",{enumerable:!0,value:E})}:function(B,E){B.default=E}),Ke=M&&M.__importStar||function(B){if(B&&B.__esModule)return B;var E={};if(B!=null)for(var Q in B)Q!==\"default\"&&Object.prototype.hasOwnProperty.call(B,Q)&&re(E,B,Q);return Ve(E,B),E},oi=M&&M.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.createProgramFromConfigFile=M.useProvidedPrograms=void 0;var kr=oi(wm()),pr=Ke(ex()),Lr=Ke(Fv()),ar=Ke(_u()),ke=Mv(),e=(0,kr.default)(\"typescript-eslint:typescript-estree:useProvidedProgram\");function a(B,E){e(\"Retrieving ast for %s from provided program instance(s)\",E.filePath);let Q;for(let le of B)if(Q=(0,ke.getAstFromProgram)(le,E),Q)break;if(!Q){let le=Lr.relative(E.tsconfigRootDir||\"/prettier-security-dirname-placeholder\",E.filePath),N=['\"parserOptions.programs\" has been provided for @typescript-eslint/parser.',\"The file was not found in any of the provided program instance(s): \".concat(le)];throw new Error(N.join(`\n`))}return Q.program.getTypeChecker(),Q}M.useProvidedPrograms=a;function C(B,E){if(ar.sys===void 0)throw new Error(\"`createProgramFromConfigFile` is only supported in a Node-like environment.\");let le=ar.getParsedCommandLineOfConfigFile(B,ke.CORE_COMPILER_OPTIONS,{onUnRecoverableConfigFileDiagnostic:p=>{throw new Error(w([p]))},fileExists:pr.existsSync,getCurrentDirectory:()=>E&&Lr.resolve(E)||\"/prettier-security-dirname-placeholder\",readDirectory:ar.sys.readDirectory,readFile:p=>pr.readFileSync(p,\"utf-8\"),useCaseSensitiveFileNames:ar.sys.useCaseSensitiveFileNames});if(le.errors.length)throw new Error(w(le.errors));let N=ar.createCompilerHost(le.options,!0);return ar.createProgram(le.fileNames,le.options,N)}M.createProgramFromConfigFile=C;function w(B){return ar.formatDiagnostics(B,{getCanonicalFileName:E=>E,getCurrentDirectory:Eu.cwd,getNewLine:()=>`\n`})}}}),uz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/parser.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(y,V,L,P){P===void 0&&(P=L);var k=Object.getOwnPropertyDescriptor(V,L);(!k||(\"get\"in k?!V.__esModule:k.writable||k.configurable))&&(k={enumerable:!0,get:function(){return V[L]}}),Object.defineProperty(y,P,k)}:function(y,V,L,P){P===void 0&&(P=L),y[P]=V[L]}),Ve=M&&M.__setModuleDefault||(Object.create?function(y,V){Object.defineProperty(y,\"default\",{enumerable:!0,value:V})}:function(y,V){y.default=V}),Ke=M&&M.__importStar||function(y){if(y&&y.__esModule)return y;var V={};if(y!=null)for(var L in y)L!==\"default\"&&Object.prototype.hasOwnProperty.call(y,L)&&re(V,y,L);return Ve(V,y),V},oi=M&&M.__importDefault||function(y){return y&&y.__esModule?y:{default:y}};Object.defineProperty(M,\"__esModule\",{value:!0}),M.clearParseAndGenerateServicesCalls=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var kr=oi(wm()),pr=oi(Vj()),Lr=oi(QT()),ar=Fv(),ke=Ke(_u()),e=tz(),a=e3(),C=az(),w=nz(),B=oz(),E=sz(),Q=cz(),le=Mv(),N=l3(),p=(0,kr.default)(\"typescript-eslint:typescript-estree:parser\"),m=\">=3.3.1 <4.8.0\",G=[],oe=ke.version,f=Lr.default.satisfies(oe,[m].concat(G).join(\" || \")),T,K=!1,b=new Map;function se(){b.clear()}M.clearProgramCache=se;function J(y){return typeof y!=\"string\"?String(y):y}function ie(y,V,L,P){return V&&(0,N.useProvidedPrograms)(V,T)||L&&(0,B.createProjectProgram)(y,P,T)||L&&P&&(0,C.createDefaultProgram)(y,T)||(0,w.createIsolatedProgram)(y,T)}function R(){let{jsx:y}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return y?\"estree.tsx\":\"estree.ts\"}function q(){T={code:\"\",comment:!1,comments:[],createDefaultProgram:!1,debugLevel:new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:!1,EXPERIMENTAL_useSourceOfProjectReferenceRedirect:!1,extraFileExtensions:[],filePath:R(),jsx:!1,loc:!1,log:console.log,preserveNodeMaps:!0,programs:null,projects:[],range:!1,strict:!1,tokens:null,tsconfigRootDir:\"/prettier-security-dirname-placeholder\",singleRun:!1,moduleResolver:\"\"}}function O(y){var V;if(y.debugLevel===!0?T.debugLevel=new Set([\"typescript-eslint\"]):Array.isArray(y.debugLevel)&&(T.debugLevel=new Set(y.debugLevel)),T.debugLevel.size>0){let L=[];T.debugLevel.has(\"typescript-eslint\")&&L.push(\"typescript-eslint:*\"),(T.debugLevel.has(\"eslint\")||kr.default.enabled(\"eslint:*,-eslint:code-path\"))&&L.push(\"eslint:*,-eslint:code-path\"),kr.default.enable(L.join(\",\"))}if(T.range=typeof y.range==\"boolean\"&&y.range,T.loc=typeof y.loc==\"boolean\"&&y.loc,typeof y.tokens==\"boolean\"&&y.tokens&&(T.tokens=[]),typeof y.comment==\"boolean\"&&y.comment&&(T.comment=!0,T.comments=[]),typeof y.jsx!=\"boolean\"?T.jsx=!1:T.jsx=y.jsx,typeof y.filePath==\"string\"&&y.filePath!==\"\"?T.filePath=y.filePath:T.filePath=R(T),typeof y.errorOnUnknownASTType==\"boolean\"&&y.errorOnUnknownASTType&&(T.errorOnUnknownASTType=!0),typeof y.loggerFn==\"function\"?T.log=y.loggerFn:y.loggerFn===!1&&(T.log=()=>{}),typeof y.tsconfigRootDir==\"string\"&&(T.tsconfigRootDir=y.tsconfigRootDir),T.filePath=(0,le.ensureAbsolutePath)(T.filePath,T),Array.isArray(y.programs)){if(!y.programs.length)throw new Error(\"You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.\");T.programs=y.programs,p(\"parserOptions.programs was provided, so parserOptions.project will be ignored.\")}if(!T.programs){let L=((V=y.projectFolderIgnoreList)!==null&&V!==void 0?V:[\"**/node_modules/**\"]).reduce((P,k)=>(typeof k==\"string\"&&P.push(k),P),[]).map(P=>P.startsWith(\"!\")?P:\"!\".concat(P));T.projects=[]}Array.isArray(y.extraFileExtensions)&&y.extraFileExtensions.every(L=>typeof L==\"string\")&&(T.extraFileExtensions=y.extraFileExtensions),typeof y.preserveNodeMaps==\"boolean\"&&(T.preserveNodeMaps=y.preserveNodeMaps),T.createDefaultProgram=typeof y.createDefaultProgram==\"boolean\"&&y.createDefaultProgram,T.EXPERIMENTAL_useSourceOfProjectReferenceRedirect=typeof y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect==\"boolean\"&&y.EXPERIMENTAL_useSourceOfProjectReferenceRedirect,typeof y.moduleResolver==\"string\"&&(T.moduleResolver=y.moduleResolver)}function ve(){var y;if(!f&&!K){if(typeof Eu>\"u\"?!1:(y=Eu.stdout)===null||y===void 0?void 0:y.isTTY){let L=\"=============\",P=[L,\"WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.\",\"You may find that it works just fine, or you may not.\",\"SUPPORTED TYPESCRIPT VERSIONS: \".concat(m),\"YOUR TYPESCRIPT VERSION: \".concat(oe),\"Please only submit bug reports when using the officially supported version.\",L];T.log(P.join(`\n\n`))}K=!0}}function ee(y){if(Eu.env.TSESTREE_SINGLE_RUN===\"false\"){T.singleRun=!1;return}if(Eu.env.TSESTREE_SINGLE_RUN===\"true\"){T.singleRun=!0;return}if(y!=null&&y.allowAutomaticSingleRunInference&&(Eu.env.CI===\"true\"||Eu.argv[1].endsWith((0,ar.normalize)(\"node_modules/.bin/eslint\")))){T.singleRun=!0;return}T.singleRun=!1}function he(y,V){let{ast:L}=F(y,V,!1);return L}M.parse=he;function F(y,V,L){if(q(),V!=null&&V.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('\"errorOnTypeScriptSyntacticAndSemanticIssues\" is only supported for parseAndGenerateServices()');y=J(y),T.code=y,typeof V<\"u\"&&O(V),ve(),ee(V);let P=(0,E.createSourceFile)(y,T),{estree:k,astMaps:Y}=(0,e.astConverter)(P,T,L);return{ast:k,esTreeNodeToTSNodeMap:Y.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:Y.tsNodeToESTreeNodeMap}}function x(y,V){return F(y,V,!0)}M.parseWithNodeMaps=x;var X={};function $(){X={}}M.clearParseAndGenerateServicesCalls=$;function A(y,V){var L;q(),y=J(y),T.code=y,typeof V<\"u\"&&(O(V),typeof V.errorOnTypeScriptSyntacticAndSemanticIssues==\"boolean\"&&V.errorOnTypeScriptSyntacticAndSemanticIssues&&(T.errorOnTypeScriptSyntacticAndSemanticIssues=!0)),ve(),ee(V),T.singleRun&&!T.programs&&((L=T.projects)===null||L===void 0?void 0:L.length)>0&&(T.programs={*[Symbol.iterator](){for(let I of T.projects){let l=b.get(I);if(l)yield l;else{p(\"Detected single-run/CLI usage, creating Program once ahead of time for project: %s\",I);let d=(0,N.createProgramFromConfigFile)(I);b.set(I,d),yield d}}}});let P=T.programs!=null||T.projects&&T.projects.length>0,k,Y;if(T.singleRun&&V.filePath&&(X[V.filePath]=(X[V.filePath]||0)+1),T.singleRun&&V.filePath&&X[V.filePath]>1){let I=(0,w.createIsolatedProgram)(y,T);k=I.ast,Y=I.program}else{let I=ie(y,T.programs,P,T.createDefaultProgram);k=I.ast,Y=I.program}let U=typeof T.preserveNodeMaps==\"boolean\"?T.preserveNodeMaps:!0,{estree:j,astMaps:H}=(0,e.astConverter)(k,T,U);if(Y&&T.errorOnTypeScriptSyntacticAndSemanticIssues){let I=(0,Q.getFirstSemanticOrSyntacticError)(Y,k);if(I)throw(0,a.convertError)(I)}return{ast:j,services:{hasFullTypeInformation:P,program:Y,esTreeNodeToTSNodeMap:H.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:H.tsNodeToESTreeNodeMap}}}M.parseAndGenerateServices=A}}),lz=Oa({\"node_modules/@typescript-eslint/typescript-estree/package.json\"(M,re){re.exports={name:\"@typescript-eslint/typescript-estree\",version:\"5.27.0\",description:\"A parser that converts TypeScript source code into an ESTree compatible form\",main:\"dist/index.js\",types:\"dist/index.d.ts\",files:[\"dist\",\"README.md\",\"LICENSE\"],engines:{node:\"^12.22.0 || ^14.17.0 || >=16.0.0\"},repository:{type:\"git\",url:\"https://github.com/typescript-eslint/typescript-eslint.git\",directory:\"packages/typescript-estree\"},bugs:{url:\"https://github.com/typescript-eslint/typescript-eslint/issues\"},license:\"BSD-2-Clause\",keywords:[\"ast\",\"estree\",\"ecmascript\",\"javascript\",\"typescript\",\"parser\",\"syntax\"],scripts:{build:\"tsc -b tsconfig.build.json\",postbuild:\"downlevel-dts dist _ts3.4/dist\",clean:\"tsc -b tsconfig.build.json --clean\",postclean:\"rimraf dist && rimraf _ts3.4 && rimraf coverage\",format:'prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore',lint:\"eslint . --ignore-path='../../.eslintignore'\",test:\"jest --coverage\",typecheck:\"tsc -p tsconfig.json --noEmit\"},dependencies:{\"@typescript-eslint/types\":\"5.27.0\",\"@typescript-eslint/visitor-keys\":\"5.27.0\",debug:\"^4.3.4\",globby:\"^11.1.0\",\"is-glob\":\"^4.0.3\",semver:\"^7.3.7\",tsutils:\"^3.21.0\"},devDependencies:{\"@babel/code-frame\":\"*\",\"@babel/parser\":\"*\",\"@types/babel__code-frame\":\"*\",\"@types/debug\":\"*\",\"@types/glob\":\"*\",\"@types/is-glob\":\"*\",\"@types/semver\":\"*\",\"@types/tmp\":\"*\",\"@typescript-eslint/shared-fixtures\":\"5.27.0\",glob:\"*\",\"jest-specific-snapshot\":\"*\",\"make-dir\":\"*\",tmp:\"*\",typescript:\"*\"},peerDependenciesMeta:{typescript:{optional:!0}},funding:{type:\"opencollective\",url:\"https://opencollective.com/typescript-eslint\"},typesVersions:{\"<3.8\":{\"*\":[\"_ts3.4/*\"]}},gitHead:\"e0db364b94158437f041db3597101d0c8b30d8bc\"}}}),fz=Oa({\"node_modules/@typescript-eslint/typescript-estree/dist/index.js\"(M){\"use strict\";Ea();var re=M&&M.__createBinding||(Object.create?function(ar,ke,e,a){a===void 0&&(a=e);var C=Object.getOwnPropertyDescriptor(ke,e);(!C||(\"get\"in C?!ke.__esModule:C.writable||C.configurable))&&(C={enumerable:!0,get:function(){return ke[e]}}),Object.defineProperty(ar,a,C)}:function(ar,ke,e,a){a===void 0&&(a=e),ar[a]=ke[e]}),Ve=M&&M.__exportStar||function(ar,ke){for(var e in ar)e!==\"default\"&&!Object.prototype.hasOwnProperty.call(ke,e)&&re(ke,ar,e)};Object.defineProperty(M,\"__esModule\",{value:!0}),M.version=M.visitorKeys=M.createProgram=M.clearCaches=M.simpleTraverse=M.clearProgramCache=M.parseWithNodeMaps=M.parseAndGenerateServices=M.parse=void 0;var Ke=uz();Object.defineProperty(M,\"parse\",{enumerable:!0,get:function(){return Ke.parse}}),Object.defineProperty(M,\"parseAndGenerateServices\",{enumerable:!0,get:function(){return Ke.parseAndGenerateServices}}),Object.defineProperty(M,\"parseWithNodeMaps\",{enumerable:!0,get:function(){return Ke.parseWithNodeMaps}}),Object.defineProperty(M,\"clearProgramCache\",{enumerable:!0,get:function(){return Ke.clearProgramCache}});var oi=c3();Object.defineProperty(M,\"simpleTraverse\",{enumerable:!0,get:function(){return oi.simpleTraverse}}),Ve(k1(),M);var kr=u3();Object.defineProperty(M,\"clearCaches\",{enumerable:!0,get:function(){return kr.clearWatchCaches}});var pr=l3();Object.defineProperty(M,\"createProgram\",{enumerable:!0,get:function(){return pr.createProgramFromConfigFile}}),Ve(rx(),M);var Lr=s3();Object.defineProperty(M,\"visitorKeys\",{enumerable:!0,get:function(){return Lr.visitorKeys}}),M.version=lz().version}});Ea();var _z=S4(),pz=Tj(),dz=Fj(),gz=Mj(),mz=Uj(),b4={loc:!0,range:!0,comment:!0,jsx:!0,tokens:!0,loggerFn:!1,project:[]};function vz(M){let{message:re,lineNumber:Ve,column:Ke}=M;return typeof Ve!=\"number\"?M:_z(re,{start:{line:Ve,column:Ke+1}})}function yz(M,re){let Ve=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Ke=gz(M),oi=hz(M),{parseWithNodeMaps:kr}=fz(),{result:pr,error:Lr}=pz(()=>kr(Ke,Object.assign(Object.assign({},b4),{},{jsx:oi})),()=>kr(Ke,Object.assign(Object.assign({},b4),{},{jsx:!oi})));if(!pr)throw vz(Lr);return Ve.originalText=M,Ve.tsParseResult=pr,mz(pr.ast,Ve)}function hz(M){return new RegExp([\"(?:^[^\\\"'`]*)\"].join(\"\"),\"m\").test(M)}f3.exports={parsers:{typescript:dz(yz)}}});return Dz();});","(function(e){if(typeof exports==\"object\"&&typeof module==\"object\")module.exports=e();else if(typeof define==\"function\"&&define.amd)define(e);else{var i=typeof globalThis<\"u\"?globalThis:typeof global<\"u\"?global:typeof self<\"u\"?self:this||{};i.prettierPlugins=i.prettierPlugins||{},i.prettierPlugins.yaml=e()}})(function(){\"use strict\";var wt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var ur=wt((mr,lt)=>{var De=Object.defineProperty,St=Object.getOwnPropertyDescriptor,Fe=Object.getOwnPropertyNames,Et=Object.prototype.hasOwnProperty,xe=(r,e)=>function(){return r&&(e=(0,r[Fe(r)[0]])(r=0)),e},F=(r,e)=>function(){return e||(0,r[Fe(r)[0]])((e={exports:{}}).exports,e),e.exports},Mt=(r,e)=>{for(var n in e)De(r,n,{get:e[n],enumerable:!0})},Ot=(r,e,n,c)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let h of Fe(e))!Et.call(r,h)&&h!==n&&De(r,h,{get:()=>e[h],enumerable:!(c=St(e,h))||c.enumerable});return r},se=r=>Ot(De({},\"__esModule\",{value:!0}),r),Ke,$e,Te,D=xe({\"\"(){Ke={},$e=[],Te={env:Ke,argv:$e}}}),Lt=F({\"src/common/parser-create-error.js\"(r,e){\"use strict\";D();function n(c,h){let d=new SyntaxError(c+\" (\"+h.start.line+\":\"+h.start.column+\")\");return d.loc=h,d}e.exports=n}}),At=F({\"src/language-yaml/pragma.js\"(r,e){\"use strict\";D();function n(d){return/^\\s*@(?:prettier|format)\\s*$/.test(d)}function c(d){return/^\\s*#[^\\S\\n]*@(?:prettier|format)\\s*?(?:\\n|$)/.test(d)}function h(d){return`# @format\n\n`.concat(d)}e.exports={isPragma:n,hasPragma:c,insertPragma:h}}}),Nt=F({\"src/language-yaml/loc.js\"(r,e){\"use strict\";D();function n(h){return h.position.start.offset}function c(h){return h.position.end.offset}e.exports={locStart:n,locEnd:c}}}),te={};Mt(te,{__assign:()=>qe,__asyncDelegator:()=>Wt,__asyncGenerator:()=>Ft,__asyncValues:()=>Vt,__await:()=>Ce,__awaiter:()=>Rt,__classPrivateFieldGet:()=>$t,__classPrivateFieldSet:()=>Jt,__createBinding:()=>Bt,__decorate:()=>kt,__exportStar:()=>jt,__extends:()=>Tt,__generator:()=>qt,__importDefault:()=>Kt,__importStar:()=>Ut,__makeTemplateObject:()=>Qt,__metadata:()=>It,__param:()=>Pt,__read:()=>He,__rest:()=>Ct,__spread:()=>Yt,__spreadArrays:()=>Dt,__values:()=>Ye});function Tt(r,e){Re(r,e);function n(){this.constructor=r}r.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function Ct(r,e){var n={};for(var c in r)Object.prototype.hasOwnProperty.call(r,c)&&e.indexOf(c)<0&&(n[c]=r[c]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var h=0,c=Object.getOwnPropertySymbols(r);h=0;E--)(y=r[E])&&(d=(h<3?y(d):h>3?y(e,n,d):y(e,n))||d);return h>3&&d&&Object.defineProperty(e,n,d),d}function Pt(r,e){return function(n,c){e(n,c,r)}}function It(r,e){if(typeof Reflect==\"object\"&&typeof Reflect.metadata==\"function\")return Reflect.metadata(r,e)}function Rt(r,e,n,c){function h(d){return d instanceof n?d:new n(function(y){y(d)})}return new(n||(n=Promise))(function(d,y){function E(M){try{S(c.next(M))}catch(T){y(T)}}function I(M){try{S(c.throw(M))}catch(T){y(T)}}function S(M){M.done?d(M.value):h(M.value).then(E,I)}S((c=c.apply(r,e||[])).next())})}function qt(r,e){var n={label:0,sent:function(){if(d[0]&1)throw d[1];return d[1]},trys:[],ops:[]},c,h,d,y;return y={next:E(0),throw:E(1),return:E(2)},typeof Symbol==\"function\"&&(y[Symbol.iterator]=function(){return this}),y;function E(S){return function(M){return I([S,M])}}function I(S){if(c)throw new TypeError(\"Generator is already executing.\");for(;n;)try{if(c=1,h&&(d=S[0]&2?h.return:S[0]?h.throw||((d=h.return)&&d.call(h),0):h.next)&&!(d=d.call(h,S[1])).done)return d;switch(h=0,d&&(S=[S[0]&2,d.value]),S[0]){case 0:case 1:d=S;break;case 4:return n.label++,{value:S[1],done:!1};case 5:n.label++,h=S[1],S=[0];continue;case 7:S=n.ops.pop(),n.trys.pop();continue;default:if(d=n.trys,!(d=d.length>0&&d[d.length-1])&&(S[0]===6||S[0]===2)){n=0;continue}if(S[0]===3&&(!d||S[1]>d[0]&&S[1]=r.length&&(r=void 0),{value:r&&r[c++],done:!r}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function He(r,e){var n=typeof Symbol==\"function\"&&r[Symbol.iterator];if(!n)return r;var c=n.call(r),h,d=[],y;try{for(;(e===void 0||e-- >0)&&!(h=c.next()).done;)d.push(h.value)}catch(E){y={error:E}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(y)throw y.error}}return d}function Yt(){for(var r=[],e=0;e1||E(P,C)})})}function E(P,C){try{I(c[P](C))}catch(q){T(d[0][3],q)}}function I(P){P.value instanceof Ce?Promise.resolve(P.value.v).then(S,M):T(d[0][2],P)}function S(P){E(\"next\",P)}function M(P){E(\"throw\",P)}function T(P,C){P(C),d.shift(),d.length&&E(d[0][0],d[0][1])}}function Wt(r){var e,n;return e={},c(\"next\"),c(\"throw\",function(h){throw h}),c(\"return\"),e[Symbol.iterator]=function(){return this},e;function c(h,d){e[h]=r[h]?function(y){return(n=!n)?{value:Ce(r[h](y)),done:h===\"return\"}:d?d(y):y}:d}}function Vt(r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e=r[Symbol.asyncIterator],n;return e?e.call(r):(r=typeof Ye==\"function\"?Ye(r):r[Symbol.iterator](),n={},c(\"next\"),c(\"throw\"),c(\"return\"),n[Symbol.asyncIterator]=function(){return this},n);function c(d){n[d]=r[d]&&function(y){return new Promise(function(E,I){y=r[d](y),h(E,I,y.done,y.value)})}}function h(d,y,E,I){Promise.resolve(I).then(function(S){d({value:S,done:E})},y)}}function Qt(r,e){return Object.defineProperty?Object.defineProperty(r,\"raw\",{value:e}):r.raw=e,r}function Ut(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var n in r)Object.hasOwnProperty.call(r,n)&&(e[n]=r[n]);return e.default=r,e}function Kt(r){return r&&r.__esModule?r:{default:r}}function $t(r,e){if(!e.has(r))throw new TypeError(\"attempted to get private field on non-instance\");return e.get(r)}function Jt(r,e,n){if(!e.has(r))throw new TypeError(\"attempted to set private field on non-instance\");return e.set(r,n),n}var Re,qe,ae=xe({\"node_modules/tslib/tslib.es6.js\"(){D(),Re=function(r,e){return Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,c){n.__proto__=c}||function(n,c){for(var h in c)c.hasOwnProperty(h)&&(n[h]=c[h])},Re(r,e)},qe=function(){return qe=Object.assign||function(e){for(var n,c=1,h=arguments.length;cthis.string.length)return null;for(var y=0,E=this.offsets;E[y+1]<=d;)y++;var I=d-E[y];return{line:y,column:I}},h.prototype.indexForLocation=function(d){var y=d.line,E=d.column;return y<0||y>=this.offsets.length||E<0||E>this.lengthOfLine(y)?null:this.offsets[y]+E},h.prototype.lengthOfLine=function(d){var y=this.offsets[d],E=d===this.offsets.length-1?this.string.length:this.offsets[d+1];return E-y},h}();r.LinesAndColumns=c,r.default=c}}),Ht=F({\"node_modules/yaml-unist-parser/lib/utils/define-parents.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c){c===void 0&&(c=null),\"children\"in n&&n.children.forEach(function(h){return e(h,n)}),\"anchor\"in n&&n.anchor&&e(n.anchor,n),\"tag\"in n&&n.tag&&e(n.tag,n),\"leadingComments\"in n&&n.leadingComments.forEach(function(h){return e(h,n)}),\"middleComments\"in n&&n.middleComments.forEach(function(h){return e(h,n)}),\"indicatorComment\"in n&&n.indicatorComment&&e(n.indicatorComment,n),\"trailingComment\"in n&&n.trailingComment&&e(n.trailingComment,n),\"endComments\"in n&&n.endComments.forEach(function(h){return e(h,n)}),Object.defineProperty(n,\"_parent\",{value:c,enumerable:!1})}r.defineParents=e}}),We=F({\"node_modules/yaml-unist-parser/lib/utils/get-point-text.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n){return n.line+\":\"+n.column}r.getPointText=e}}),Gt=F({\"node_modules/yaml-unist-parser/lib/attach.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Ht(),n=We();function c(S){e.defineParents(S);var M=h(S),T=S.children.slice();S.comments.sort(function(P,C){return P.position.start.offset-C.position.end.offset}).filter(function(P){return!P._parent}).forEach(function(P){for(;T.length>1&&P.position.start.line>T[0].position.end.line;)T.shift();y(P,M,T[0])})}r.attachComments=c;function h(S){for(var M=Array.from(new Array(S.position.end.line),function(){return{}}),T=0,P=S.comments;T1&&M.type!==\"document\"&&M.type!==\"documentHead\"){var C=M.position.end,q=S[C.line-1].trailingAttachableNode;(!q||C.column>=q.position.end.column)&&(S[C.line-1].trailingAttachableNode=M)}if(M.type!==\"root\"&&M.type!==\"document\"&&M.type!==\"documentHead\"&&M.type!==\"documentBody\")for(var R=M.position,T=R.start,C=R.end,j=[C.line].concat(T.line===C.line?[]:T.line),K=0,m=j;K=t.position.end.column)&&(S[a-1].trailingNode=M)}\"children\"in M&&M.children.forEach(function(s){d(S,s)})}}function y(S,M,T){var P=S.position.start.line,C=M[P-1].trailingAttachableNode;if(C){if(C.trailingComment)throw new Error(\"Unexpected multiple trailing comment at \"+n.getPointText(S.position.start));e.defineParents(S,C),C.trailingComment=S;return}for(var q=P;q>=T.position.start.line;q--){var R=M[q-1].trailingNode,j=void 0;if(R)j=R;else if(q!==P&&M[q-1].comment)j=M[q-1].comment._parent;else continue;if((j.type===\"sequence\"||j.type===\"mapping\")&&(j=j.children[0]),j.type===\"mappingItem\"){var K=j.children,m=K[0],a=K[1];j=I(m)?m:a}for(;;){if(E(j,S)){e.defineParents(S,j),j.endComments.push(S);return}if(!j._parent)break;j=j._parent}break}for(var q=P+1;q<=T.position.end.line;q++){var t=M[q-1].leadingAttachableNode;if(t){e.defineParents(S,t),t.leadingComments.push(S);return}}var s=T.children[1];e.defineParents(S,s),s.endComments.push(S)}function E(S,M){if(S.position.start.offsetM.position.end.offset)switch(S.type){case\"flowMapping\":case\"flowSequence\":return S.children.length===0||M.position.start.line>S.children[S.children.length-1].position.end.line}if(M.position.end.offsetS.position.start.column;case\"mappingKey\":case\"mappingValue\":return M.position.start.column>S._parent.position.start.column&&(S.children.length===0||S.children.length===1&&S.children[0].type!==\"blockFolded\"&&S.children[0].type!==\"blockLiteral\")&&(S.type===\"mappingValue\"||I(S));default:return!1}}function I(S){return S.position.start!==S.position.end&&(S.children.length===0||S.position.start.offset!==S.children[0].position.start.offset)}}}),me=F({\"node_modules/yaml-unist-parser/lib/factories/node.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c){return{type:n,position:c}}r.createNode=e}}),zt=F({\"node_modules/yaml-unist-parser/lib/factories/root.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d,y){return e.__assign(e.__assign({},n.createNode(\"root\",h)),{children:d,comments:y})}r.createRoot=c}}),Zt=F({\"node_modules/yaml-unist-parser/lib/preprocess.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n){switch(n.type){case\"DOCUMENT\":for(var c=n.contents.length-1;c>=0;c--)n.contents[c].type===\"BLANK_LINE\"?n.contents.splice(c,1):e(n.contents[c]);for(var c=n.directives.length-1;c>=0;c--)n.directives[c].type===\"BLANK_LINE\"&&n.directives.splice(c,1);break;case\"FLOW_MAP\":case\"FLOW_SEQ\":case\"MAP\":case\"SEQ\":for(var c=n.items.length-1;c>=0;c--){var h=n.items[c];\"char\"in h||(h.type===\"BLANK_LINE\"?n.items.splice(c,1):e(h))}break;case\"MAP_KEY\":case\"MAP_VALUE\":case\"SEQ_ITEM\":n.node&&e(n.node);break;case\"ALIAS\":case\"BLANK_LINE\":case\"BLOCK_FOLDED\":case\"BLOCK_LITERAL\":case\"COMMENT\":case\"DIRECTIVE\":case\"PLAIN\":case\"QUOTE_DOUBLE\":case\"QUOTE_SINGLE\":break;default:throw new Error(\"Unexpected node type \"+JSON.stringify(n.type))}}r.removeCstBlankLine=e}}),Oe=F({\"node_modules/yaml-unist-parser/lib/factories/leading-comment-attachable.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(){return{leadingComments:[]}}r.createLeadingCommentAttachable=e}}),Be=F({\"node_modules/yaml-unist-parser/lib/factories/trailing-comment-attachable.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n){return n===void 0&&(n=null),{trailingComment:n}}r.createTrailingCommentAttachable=e}}),Se=F({\"node_modules/yaml-unist-parser/lib/factories/comment-attachable.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=Be();function h(){return e.__assign(e.__assign({},n.createLeadingCommentAttachable()),c.createTrailingCommentAttachable())}r.createCommentAttachable=h}}),Xt=F({\"node_modules/yaml-unist-parser/lib/factories/alias.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"alias\",d)),n.createCommentAttachable()),y),{value:E})}r.createAlias=h}}),en=F({\"node_modules/yaml-unist-parser/lib/transforms/alias.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Xt();function n(c,h){var d=c.cstNode;return e.createAlias(h.transformRange({origStart:d.valueRange.origStart-1,origEnd:d.valueRange.origEnd}),h.transformContent(c),d.rawValue)}r.transformAlias=n}}),tn=F({\"node_modules/yaml-unist-parser/lib/factories/block-folded.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:\"blockFolded\"})}r.createBlockFolded=n}}),nn=F({\"node_modules/yaml-unist-parser/lib/factories/block-value.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,E,I,S,M){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"blockValue\",d)),n.createLeadingCommentAttachable()),y),{chomping:E,indent:I,value:S,indicatorComment:M})}r.createBlockValue=h}}),Ge=F({\"node_modules/yaml-unist-parser/lib/constants.js\"(r){\"use strict\";D(),r.__esModule=!0;var e;(function(n){n.Tag=\"!\",n.Anchor=\"&\",n.Comment=\"#\"})(e=r.PropLeadingCharacter||(r.PropLeadingCharacter={}))}}),rn=F({\"node_modules/yaml-unist-parser/lib/factories/anchor.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode(\"anchor\",h)),{value:d})}r.createAnchor=c}}),Ve=F({\"node_modules/yaml-unist-parser/lib/factories/comment.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode(\"comment\",h)),{value:d})}r.createComment=c}}),sn=F({\"node_modules/yaml-unist-parser/lib/factories/content.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c,h){return{anchor:c,tag:n,middleComments:h}}r.createContent=e}}),an=F({\"node_modules/yaml-unist-parser/lib/factories/tag.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=me();function c(h,d){return e.__assign(e.__assign({},n.createNode(\"tag\",h)),{value:d})}r.createTag=c}}),ze=F({\"node_modules/yaml-unist-parser/lib/transforms/content.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Ge(),n=rn(),c=Ve(),h=sn(),d=an();function y(E,I,S){S===void 0&&(S=function(){return!1});for(var M=E.cstNode,T=[],P=null,C=null,q=null,R=0,j=M.props;R=0;K--){var m=S.contents[K];if(m.type===\"COMMENT\"){var a=M.transformNode(m);T&&T.line===a.position.start.line?R.unshift(a):j?P.unshift(a):a.position.start.offset>=S.valueRange.origEnd?q.unshift(a):P.unshift(a)}else j=!0}if(q.length>1)throw new Error(\"Unexpected multiple document trailing comments at \"+d.getPointText(q[1].position.start));if(R.length>1)throw new Error(\"Unexpected multiple documentHead trailing comments at \"+d.getPointText(R[1].position.start));return{comments:P,endComments:C,documentTrailingComment:c.getLast(q)||null,documentHeadTrailingComment:c.getLast(R)||null}}function I(S,M,T){var P=h.getMatchIndex(T.text.slice(S.valueRange.origEnd),/^\\.\\.\\./),C=P===-1?S.valueRange.origEnd:Math.max(0,S.valueRange.origEnd-1);T.text[C-1]===\"\\r\"&&C--;var q=T.transformRange({origStart:M!==null?M.position.start.offset:C,origEnd:C}),R=P===-1?q.end:T.transformOffset(S.valueRange.origEnd+3);return{position:q,documentEndPoint:R}}}}),pn=F({\"node_modules/yaml-unist-parser/lib/factories/document-head.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=me(),h=Be();function d(y,E,I,S){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"documentHead\",y)),n.createEndCommentAttachable(I)),h.createTrailingCommentAttachable(S)),{children:E})}r.createDocumentHead=d}}),_n=F({\"node_modules/yaml-unist-parser/lib/transforms/document-head.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=pn(),c=Xe();function h(E,I){var S,M=E.cstNode,T=d(M,I),P=T.directives,C=T.comments,q=T.endComments,R=y(M,P,I),j=R.position,K=R.endMarkerPoint;(S=I.comments).push.apply(S,e.__spreadArrays(C,q));var m=function(a){return a&&I.comments.push(a),n.createDocumentHead(j,P,q,a)};return{createDocumentHeadWithTrailingComment:m,documentHeadEndMarkerPoint:K}}r.transformDocumentHead=h;function d(E,I){for(var S=[],M=[],T=[],P=!1,C=E.directives.length-1;C>=0;C--){var q=I.transformNode(E.directives[C]);q.type===\"comment\"?P?M.unshift(q):T.unshift(q):(P=!0,S.unshift(q))}return{directives:S,comments:M,endComments:T}}function y(E,I,S){var M=c.getMatchIndex(S.text.slice(0,E.valueRange.origStart),/---\\s*$/);M>0&&!/[\\r\\n]/.test(S.text[M-1])&&(M=-1);var T=M===-1?{origStart:E.valueRange.origStart,origEnd:E.valueRange.origStart}:{origStart:M,origEnd:M+3};return I.length!==0&&(T.origStart=I[0].position.start.offset),{position:S.transformRange(T),endMarkerPoint:M===-1?null:S.transformOffset(M)}}}}),vn=F({\"node_modules/yaml-unist-parser/lib/transforms/document.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=dn(),n=Le(),c=gn(),h=_n();function d(y,E){var I=h.transformDocumentHead(y,E),S=I.createDocumentHeadWithTrailingComment,M=I.documentHeadEndMarkerPoint,T=c.transformDocumentBody(y,E,M),P=T.documentBody,C=T.documentEndPoint,q=T.documentTrailingComment,R=T.documentHeadTrailingComment,j=S(R);return q&&E.comments.push(q),e.createDocument(n.createPosition(j.position.start,C),j,P,q)}r.transformDocument=d}}),et=F({\"node_modules/yaml-unist-parser/lib/factories/flow-collection.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,E,I){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode(\"flowCollection\",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),E),{children:I})}r.createFlowCollection=d}}),yn=F({\"node_modules/yaml-unist-parser/lib/factories/flow-mapping.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=et();function c(h,d,y){return e.__assign(e.__assign({},n.createFlowCollection(h,d,y)),{type:\"flowMapping\"})}r.createFlowMapping=c}}),tt=F({\"node_modules/yaml-unist-parser/lib/factories/flow-mapping-item.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Oe(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign({},c.createNode(\"flowMappingItem\",d)),n.createLeadingCommentAttachable()),{children:[y,E]})}r.createFlowMappingItem=h}}),je=F({\"node_modules/yaml-unist-parser/lib/utils/extract-comments.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c){for(var h=[],d=0,y=n;d=0;d--)if(h.test(n[d]))return d;return-1}r.findLastCharIndex=e}}),kn=F({\"node_modules/yaml-unist-parser/lib/transforms/plain.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Tn(),n=Cn();function c(h,d){var y=h.cstNode;return e.createPlain(d.transformRange({origStart:y.valueRange.origStart,origEnd:n.findLastCharIndex(d.text,y.valueRange.origEnd-1,/\\S/)+1}),d.transformContent(h),y.strValue)}r.transformPlain=c}}),Pn=F({\"node_modules/yaml-unist-parser/lib/factories/quote-double.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:\"quoteDouble\"})}r.createQuoteDouble=n}}),In=F({\"node_modules/yaml-unist-parser/lib/factories/quote-value.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=me();function h(d,y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},c.createNode(\"quoteValue\",d)),y),n.createCommentAttachable()),{value:E})}r.createQuoteValue=h}}),at=F({\"node_modules/yaml-unist-parser/lib/transforms/quote-value.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=In();function n(c,h){var d=c.cstNode;return e.createQuoteValue(h.transformRange(d.valueRange),h.transformContent(c),d.strValue)}r.transformAstQuoteValue=n}}),Rn=F({\"node_modules/yaml-unist-parser/lib/transforms/quote-double.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Pn(),n=at();function c(h,d){return e.createQuoteDouble(n.transformAstQuoteValue(h,d))}r.transformQuoteDouble=c}}),qn=F({\"node_modules/yaml-unist-parser/lib/factories/quote-single.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te));function n(c){return e.__assign(e.__assign({},c),{type:\"quoteSingle\"})}r.createQuoteSingle=n}}),Bn=F({\"node_modules/yaml-unist-parser/lib/transforms/quote-single.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=qn(),n=at();function c(h,d){return e.createQuoteSingle(n.transformAstQuoteValue(h,d))}r.transformQuoteSingle=c}}),jn=F({\"node_modules/yaml-unist-parser/lib/factories/sequence.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Ee(),c=Oe(),h=me();function d(y,E,I){return e.__assign(e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode(\"sequence\",y)),c.createLeadingCommentAttachable()),n.createEndCommentAttachable()),E),{children:I})}r.createSequence=d}}),Yn=F({\"node_modules/yaml-unist-parser/lib/factories/sequence-item.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=(ae(),se(te)),n=Se(),c=Ee(),h=me();function d(y,E){return e.__assign(e.__assign(e.__assign(e.__assign({},h.createNode(\"sequenceItem\",y)),n.createCommentAttachable()),c.createEndCommentAttachable()),{children:E?[E]:[]})}r.createSequenceItem=d}}),Dn=F({\"node_modules/yaml-unist-parser/lib/transforms/seq.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Le(),n=jn(),c=Yn(),h=je(),d=Qe(),y=Ae();function E(I,S){var M=h.extractComments(I.cstNode.items,S),T=M.map(function(P,C){d.extractPropComments(P,S);var q=S.transformNode(I.items[C]);return c.createSequenceItem(e.createPosition(S.transformOffset(P.valueRange.origStart),q===null?S.transformOffset(P.valueRange.origStart+1):q.position.end),q)});return n.createSequence(e.createPosition(T[0].position.start,y.getLast(T).position.end),S.transformContent(I),T)}r.transformSeq=E}}),Fn=F({\"node_modules/yaml-unist-parser/lib/transform.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=en(),n=on(),c=cn(),h=un(),d=mn(),y=vn(),E=Sn(),I=On(),S=Nn(),M=kn(),T=Rn(),P=Bn(),C=Dn();function q(R,j){if(R===null||R.type===void 0&&R.value===null)return null;switch(R.type){case\"ALIAS\":return e.transformAlias(R,j);case\"BLOCK_FOLDED\":return n.transformBlockFolded(R,j);case\"BLOCK_LITERAL\":return c.transformBlockLiteral(R,j);case\"COMMENT\":return h.transformComment(R,j);case\"DIRECTIVE\":return d.transformDirective(R,j);case\"DOCUMENT\":return y.transformDocument(R,j);case\"FLOW_MAP\":return E.transformFlowMap(R,j);case\"FLOW_SEQ\":return I.transformFlowSeq(R,j);case\"MAP\":return S.transformMap(R,j);case\"PLAIN\":return M.transformPlain(R,j);case\"QUOTE_DOUBLE\":return T.transformQuoteDouble(R,j);case\"QUOTE_SINGLE\":return P.transformQuoteSingle(R,j);case\"SEQ\":return C.transformSeq(R,j);default:throw new Error(\"Unexpected node type \"+R.type)}}r.transformNode=q}}),Wn=F({\"node_modules/yaml-unist-parser/lib/factories/error.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c,h){var d=new SyntaxError(n);return d.name=\"YAMLSyntaxError\",d.source=c,d.position=h,d}r.createError=e}}),Vn=F({\"node_modules/yaml-unist-parser/lib/transforms/error.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Wn();function n(c,h){var d=c.source.range||c.source.valueRange;return e.createError(c.message,h.text,h.transformRange(d))}r.transformError=n}}),Qn=F({\"node_modules/yaml-unist-parser/lib/factories/point.js\"(r){\"use strict\";D(),r.__esModule=!0;function e(n,c,h){return{offset:n,line:c,column:h}}r.createPoint=e}}),Un=F({\"node_modules/yaml-unist-parser/lib/transforms/offset.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Qn();function n(c,h){c<0?c=0:c>h.text.length&&(c=h.text.length);var d=h.locator.locationForIndex(c);return e.createPoint(c,d.line+1,d.column+1)}r.transformOffset=n}}),Kn=F({\"node_modules/yaml-unist-parser/lib/transforms/range.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Le();function n(c,h){return e.createPosition(h.transformOffset(c.origStart),h.transformOffset(c.origEnd))}r.transformRange=n}}),$n=F({\"node_modules/yaml-unist-parser/lib/utils/add-orig-range.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=!0;function n(y){if(!y.setOrigRanges()){var E=function(I){if(h(I))return I.origStart=I.start,I.origEnd=I.end,e;if(d(I))return I.origOffset=I.offset,e};y.forEach(function(I){return c(I,E)})}}r.addOrigRange=n;function c(y,E){if(!(!y||typeof y!=\"object\")&&E(y)!==e)for(var I=0,S=Object.keys(y);IM.offset}}}),Me=F({\"node_modules/yaml/dist/PlainValue-ec8e588e.js\"(r){\"use strict\";D();var e={ANCHOR:\"&\",COMMENT:\"#\",TAG:\"!\",DIRECTIVES_END:\"-\",DOCUMENT_END:\".\"},n={ALIAS:\"ALIAS\",BLANK_LINE:\"BLANK_LINE\",BLOCK_FOLDED:\"BLOCK_FOLDED\",BLOCK_LITERAL:\"BLOCK_LITERAL\",COMMENT:\"COMMENT\",DIRECTIVE:\"DIRECTIVE\",DOCUMENT:\"DOCUMENT\",FLOW_MAP:\"FLOW_MAP\",FLOW_SEQ:\"FLOW_SEQ\",MAP:\"MAP\",MAP_KEY:\"MAP_KEY\",MAP_VALUE:\"MAP_VALUE\",PLAIN:\"PLAIN\",QUOTE_DOUBLE:\"QUOTE_DOUBLE\",QUOTE_SINGLE:\"QUOTE_SINGLE\",SEQ:\"SEQ\",SEQ_ITEM:\"SEQ_ITEM\"},c=\"tag:yaml.org,2002:\",h={MAP:\"tag:yaml.org,2002:map\",SEQ:\"tag:yaml.org,2002:seq\",STR:\"tag:yaml.org,2002:str\"};function d(a){let t=[0],s=a.indexOf(`\n`);for(;s!==-1;)s+=1,t.push(s),s=a.indexOf(`\n`,s);return t}function y(a){let t,s;return typeof a==\"string\"?(t=d(a),s=a):(Array.isArray(a)&&(a=a[0]),a&&a.context&&(a.lineStarts||(a.lineStarts=d(a.context.src)),t=a.lineStarts,s=a.context.src)),{lineStarts:t,src:s}}function E(a,t){if(typeof a!=\"number\"||a<0)return null;let{lineStarts:s,src:i}=y(t);if(!s||!i||a>i.length)return null;for(let g=0;g=1)||a>s.length)return null;let f=s[a-1],g=s[a];for(;g&&g>f&&i[g-1]===`\n`;)--g;return i.slice(f,g)}function S(a,t){let{start:s,end:i}=a,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:80,g=I(s.line,t);if(!g)return null;let{col:u}=s;if(g.length>f)if(u<=f-10)g=g.substr(0,f-1)+\"\\u2026\";else{let $=Math.round(f/2);g.length>u+$&&(g=g.substr(0,u+$-1)+\"\\u2026\"),u-=g.length-f,g=\"\\u2026\"+g.substr(1-f)}let p=1,L=\"\";i&&(i.line===s.line&&u+(i.col-s.col)<=f+1?p=i.col-s.col:(p=Math.min(g.length+1,f)-u,L=\"\\u2026\"));let k=u>1?\" \".repeat(u-1):\"\",B=\"^\".repeat(p);return\"\".concat(g,`\n`).concat(k).concat(B).concat(L)}var M=class{static copy(a){return new M(a.start,a.end)}constructor(a,t){this.start=a,this.end=t||a}isEmpty(){return typeof this.start!=\"number\"||!this.end||this.end<=this.start}setOrigRange(a,t){let{start:s,end:i}=this;if(a.length===0||i<=a[0])return this.origStart=s,this.origEnd=i,t;let f=t;for(;fs);)++f;this.origStart=s+f;let g=f;for(;f=i);)++f;return this.origEnd=i+f,g}},T=class{static addStringTerminator(a,t,s){if(s[s.length-1]===`\n`)return s;let i=T.endOfWhiteSpace(a,t);return i>=a.length||a[i]===`\n`?s+`\n`:s}static atDocumentBoundary(a,t,s){let i=a[t];if(!i)return!0;let f=a[t-1];if(f&&f!==`\n`)return!1;if(s){if(i!==s)return!1}else if(i!==e.DIRECTIVES_END&&i!==e.DOCUMENT_END)return!1;let g=a[t+1],u=a[t+2];if(g!==i||u!==i)return!1;let p=a[t+3];return!p||p===`\n`||p===\"\t\"||p===\" \"}static endOfIdentifier(a,t){let s=a[t],i=s===\"<\",f=i?[`\n`,\"\t\",\" \",\">\"]:[`\n`,\"\t\",\" \",\"[\",\"]\",\"{\",\"}\",\",\"];for(;s&&f.indexOf(s)===-1;)s=a[t+=1];return i&&s===\">\"&&(t+=1),t}static endOfIndent(a,t){let s=a[t];for(;s===\" \";)s=a[t+=1];return t}static endOfLine(a,t){let s=a[t];for(;s&&s!==`\n`;)s=a[t+=1];return t}static endOfWhiteSpace(a,t){let s=a[t];for(;s===\"\t\"||s===\" \";)s=a[t+=1];return t}static startOfLine(a,t){let s=a[t-1];if(s===`\n`)return t;for(;s&&s!==`\n`;)s=a[t-=1];return t+1}static endOfBlockIndent(a,t,s){let i=T.endOfIndent(a,s);if(i>s+t)return i;{let f=T.endOfWhiteSpace(a,i),g=a[f];if(!g||g===`\n`)return f}return null}static atBlank(a,t,s){let i=a[t];return i===`\n`||i===\"\t\"||i===\" \"||s&&!i}static nextNodeIsIndented(a,t,s){return!a||t<0?!1:t>0?!0:s&&a===\"-\"}static normalizeOffset(a,t){let s=a[t];return s?s!==`\n`&&a[t-1]===`\n`?t-1:T.endOfWhiteSpace(a,t):t}static foldNewline(a,t,s){let i=0,f=!1,g=\"\",u=a[t+1];for(;u===\" \"||u===\"\t\"||u===`\n`;){switch(u){case`\n`:i=0,t+=1,g+=`\n`;break;case\"\t\":i<=s&&(f=!0),t=T.endOfWhiteSpace(a,t+2)-1;break;case\" \":i+=1,t+=1;break}u=a[t+1]}return g||(g=\" \"),u&&i<=s&&(f=!0),{fold:g,offset:t,error:f}}constructor(a,t,s){Object.defineProperty(this,\"context\",{value:s||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=t||[],this.type=a,this.value=null}getPropValue(a,t,s){if(!this.context)return null;let{src:i}=this.context,f=this.props[a];return f&&i[f.start]===t?i.slice(f.start+(s?1:0),f.end):null}get anchor(){for(let a=0;a0?a.join(`\n`):null}commentHasRequiredWhitespace(a){let{src:t}=this.context;if(this.header&&a===this.header.end||!this.valueRange)return!1;let{end:s}=this.valueRange;return a!==s||T.atBlank(t,s-1)}get hasComment(){if(this.context){let{src:a}=this.context;for(let t=0;ts.setOrigRange(a,t)),t}toString(){let{context:{src:a},range:t,value:s}=this;if(s!=null)return s;let i=a.slice(t.start,t.end);return T.addStringTerminator(a,t.end,i)}},P=class extends Error{constructor(a,t,s){if(!s||!(t instanceof T))throw new Error(\"Invalid arguments for new \".concat(a));super(),this.name=a,this.message=s,this.source=t}makePretty(){if(!this.source)return;this.nodeType=this.source.type;let a=this.source.context&&this.source.context.root;if(typeof this.offset==\"number\"){this.range=new M(this.offset,this.offset+1);let t=a&&E(this.offset,a);if(t){let s={line:t.line,col:t.col+1};this.linePos={start:t,end:s}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){let{line:t,col:s}=this.linePos.start;this.message+=\" at line \".concat(t,\", column \").concat(s);let i=a&&S(this.linePos,a);i&&(this.message+=`:\n\n`.concat(i,`\n`))}delete this.source}},C=class extends P{constructor(a,t){super(\"YAMLReferenceError\",a,t)}},q=class extends P{constructor(a,t){super(\"YAMLSemanticError\",a,t)}},R=class extends P{constructor(a,t){super(\"YAMLSyntaxError\",a,t)}},j=class extends P{constructor(a,t){super(\"YAMLWarning\",a,t)}};function K(a,t,s){return t in a?Object.defineProperty(a,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[t]=s,a}var m=class extends T{static endOfLine(a,t,s){let i=a[t],f=t;for(;i&&i!==`\n`&&!(s&&(i===\"[\"||i===\"]\"||i===\"{\"||i===\"}\"||i===\",\"));){let g=a[f+1];if(i===\":\"&&(!g||g===`\n`||g===\"\t\"||g===\" \"||s&&g===\",\")||(i===\" \"||i===\"\t\")&&g===\"#\")break;f+=1,i=g}return f}get strValue(){if(!this.valueRange||!this.context)return null;let{start:a,end:t}=this.valueRange,{src:s}=this.context,i=s[t-1];for(;aL?s.slice(L,u+1):p)}else f+=p}let g=s[a];switch(g){case\"\t\":{let u=\"Plain value cannot start with a tab character\";return{errors:[new q(this,u)],str:f}}case\"@\":case\"`\":{let u=\"Plain value cannot start with reserved character \".concat(g);return{errors:[new q(this,u)],str:f}}default:return f}}parseBlockValue(a){let{indent:t,inFlow:s,src:i}=this.context,f=a,g=a;for(let u=i[f];u===`\n`&&!T.atDocumentBoundary(i,f+1);u=i[f]){let p=T.endOfBlockIndent(i,t,f+1);if(p===null||i[p]===\"#\")break;i[p]===`\n`?f=p:(g=m.endOfLine(i,p,s),f=g)}return this.valueRange.isEmpty()&&(this.valueRange.start=a),this.valueRange.end=g,g}parse(a,t){this.context=a;let{inFlow:s,src:i}=a,f=t,g=i[f];return g&&g!==\"#\"&&g!==`\n`&&(f=m.endOfLine(i,t,s)),this.valueRange=new M(t,f),f=T.endOfWhiteSpace(i,f),f=this.parseComment(f),(!this.hasComment||this.valueRange.isEmpty())&&(f=this.parseBlockValue(f)),f}};r.Char=e,r.Node=T,r.PlainValue=m,r.Range=M,r.Type=n,r.YAMLError=P,r.YAMLReferenceError=C,r.YAMLSemanticError=q,r.YAMLSyntaxError=R,r.YAMLWarning=j,r._defineProperty=K,r.defaultTagPrefix=c,r.defaultTags=h}}),Gn=F({\"node_modules/yaml/dist/parse-cst.js\"(r){\"use strict\";D();var e=Me(),n=class extends e.Node{constructor(){super(e.Type.BLANK_LINE)}get includesTrailingLines(){return!0}parse(m,a){return this.context=m,this.range=new e.Range(a,a+1),a+1}},c=class extends e.Node{constructor(m,a){super(m,a),this.node=null}get includesTrailingLines(){return!!this.node&&this.node.includesTrailingLines}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,{atLineStart:i,lineStart:f}=m;!i&&this.type===e.Type.SEQ_ITEM&&(this.error=new e.YAMLSemanticError(this,\"Sequence items must not have preceding content on the same line\"));let g=i?a-f:m.indent,u=e.Node.endOfWhiteSpace(s,a+1),p=s[u],L=p===\"#\",k=[],B=null;for(;p===`\n`||p===\"#\";){if(p===\"#\"){let Q=e.Node.endOfLine(s,u+1);k.push(new e.Range(u,Q)),u=Q}else{i=!0,f=u+1;let Q=e.Node.endOfWhiteSpace(s,f);s[Q]===`\n`&&k.length===0&&(B=new n,f=B.parse({src:s},f)),u=e.Node.endOfIndent(s,f)}p=s[u]}if(e.Node.nextNodeIsIndented(p,u-(f+g),this.type!==e.Type.SEQ_ITEM)?this.node=t({atLineStart:i,inCollection:!1,indent:g,lineStart:f,parent:this},u):p&&f>a+1&&(u=f-1),this.node){if(B){let Q=m.parent.items||m.parent.contents;Q&&Q.push(B)}k.length&&Array.prototype.push.apply(this.props,k),u=this.node.range.end}else if(L){let Q=k[0];this.props.push(Q),u=Q.end}else u=e.Node.endOfLine(s,a+1);let $=this.node?this.node.valueRange.end:u;return this.valueRange=new e.Range(a,$),u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.node?this.node.setOrigRanges(m,a):a}toString(){let{context:{src:m},node:a,range:t,value:s}=this;if(s!=null)return s;let i=a?m.slice(t.start,a.range.start)+String(a):m.slice(t.start,t.end);return e.Node.addStringTerminator(m,t.end,i)}},h=class extends e.Node{constructor(){super(e.Type.COMMENT)}parse(m,a){this.context=m;let t=this.parseComment(a);return this.range=new e.Range(a,t),t}};function d(m){let a=m;for(;a instanceof c;)a=a.node;if(!(a instanceof y))return null;let t=a.items.length,s=-1;for(let g=t-1;g>=0;--g){let u=a.items[g];if(u.type===e.Type.COMMENT){let{indent:p,lineStart:L}=u.context;if(p>0&&u.range.start>=L+p)break;s=g}else if(u.type===e.Type.BLANK_LINE)s=g;else break}if(s===-1)return null;let i=a.items.splice(s,t-s),f=i[0].range.start;for(;a.range.end=f,a.valueRange&&a.valueRange.end>f&&(a.valueRange.end=f),a!==m;)a=a.context.parent;return i}var y=class extends e.Node{static nextContentHasIndent(m,a,t){let s=e.Node.endOfLine(m,a)+1;a=e.Node.endOfWhiteSpace(m,s);let i=m[a];return i?a>=s+t?!0:i!==\"#\"&&i!==`\n`?!1:y.nextContentHasIndent(m,a,t):!1}constructor(m){super(m.type===e.Type.SEQ_ITEM?e.Type.SEQ:e.Type.MAP);for(let t=m.props.length-1;t>=0;--t)if(m.props[t].start0}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,i=e.Node.startOfLine(s,a),f=this.items[0];f.context.parent=this,this.valueRange=e.Range.copy(f.valueRange);let g=f.range.start-f.context.lineStart,u=a;u=e.Node.normalizeOffset(s,u);let p=s[u],L=e.Node.endOfWhiteSpace(s,i)===u,k=!1;for(;p;){for(;p===`\n`||p===\"#\";){if(L&&p===`\n`&&!k){let Q=new n;if(u=Q.parse({src:s},u),this.valueRange.end=u,u>=s.length){p=null;break}this.items.push(Q),u-=1}else if(p===\"#\"){if(u=s.length){p=null;break}}if(i=u+1,u=e.Node.endOfIndent(s,i),e.Node.atBlank(s,u)){let Q=e.Node.endOfWhiteSpace(s,u),z=s[Q];(!z||z===`\n`||z===\"#\")&&(u=Q)}p=s[u],L=!0}if(!p)break;if(u!==i+g&&(L||p!==\":\")){if(ua&&(u=i);break}else if(!this.error){let Q=\"All collection items must start at the same column\";this.error=new e.YAMLSyntaxError(this,Q)}}if(f.type===e.Type.SEQ_ITEM){if(p!==\"-\"){i>a&&(u=i);break}}else if(p===\"-\"&&!this.error){let Q=s[u+1];if(!Q||Q===`\n`||Q===\"\t\"||Q===\" \"){let z=\"A collection cannot be both a mapping and a sequence\";this.error=new e.YAMLSyntaxError(this,z)}}let B=t({atLineStart:L,inCollection:!0,indent:g,lineStart:i,parent:this},u);if(!B)return u;if(this.items.push(B),this.valueRange.end=B.valueRange.end,u=e.Node.normalizeOffset(s,B.range.end),p=s[u],L=!1,k=B.includesTrailingLines,p){let Q=u-1,z=s[Q];for(;z===\" \"||z===\"\t\";)z=s[--Q];z===`\n`&&(i=Q+1,L=!0)}let $=d(B);$&&Array.prototype.push.apply(this.items,$)}return u}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.items.forEach(t=>{a=t.setOrigRanges(m,a)}),a}toString(){let{context:{src:m},items:a,range:t,value:s}=this;if(s!=null)return s;let i=m.slice(t.start,a[0].range.start)+String(a[0]);for(let f=1;f0&&(this.contents=this.directives,this.directives=[]),i}return a[i]?(this.directivesEndMarker=new e.Range(i,i+3),i+3):(s?this.error=new e.YAMLSemanticError(this,\"Missing directives-end indicator line\"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),i)}parseContents(m){let{parseNode:a,src:t}=this.context;this.contents||(this.contents=[]);let s=m;for(;t[s-1]===\"-\";)s-=1;let i=e.Node.endOfWhiteSpace(t,m),f=s===m;for(this.valueRange=new e.Range(i);!e.Node.atDocumentBoundary(t,i,e.Char.DOCUMENT_END);){switch(t[i]){case`\n`:if(f){let g=new n;i=g.parse({src:t},i),i{a=t.setOrigRanges(m,a)}),this.directivesEndMarker&&(a=this.directivesEndMarker.setOrigRange(m,a)),this.contents.forEach(t=>{a=t.setOrigRanges(m,a)}),this.documentEndMarker&&(a=this.documentEndMarker.setOrigRange(m,a)),a}toString(){let{contents:m,directives:a,value:t}=this;if(t!=null)return t;let s=a.join(\"\");return m.length>0&&((a.length>0||m[0].type===e.Type.COMMENT)&&(s+=`---\n`),s+=m.join(\"\")),s[s.length-1]!==`\n`&&(s+=`\n`),s}},S=class extends e.Node{parse(m,a){this.context=m;let{src:t}=m,s=e.Node.endOfIdentifier(t,a+1);return this.valueRange=new e.Range(a+1,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}},M={CLIP:\"CLIP\",KEEP:\"KEEP\",STRIP:\"STRIP\"},T=class extends e.Node{constructor(m,a){super(m,a),this.blockIndent=null,this.chomping=M.CLIP,this.header=null}get includesTrailingLines(){return this.chomping===M.KEEP}get strValue(){if(!this.valueRange||!this.context)return null;let{start:m,end:a}=this.valueRange,{indent:t,src:s}=this.context;if(this.valueRange.isEmpty())return\"\";let i=null,f=s[a-1];for(;f===`\n`||f===\"\t\"||f===\" \";){if(a-=1,a<=m){if(this.chomping===M.KEEP)break;return\"\"}f===`\n`&&(i=a),f=s[a-1]}let g=a+1;i&&(this.chomping===M.KEEP?(g=i,a=this.valueRange.end):a=i);let u=t+this.blockIndent,p=this.type===e.Type.BLOCK_FOLDED,L=!0,k=\"\",B=\"\",$=!1;for(let Q=m;Qg&&(g=k);t[p]===`\n`?i=p:i=f=e.Node.endOfLine(t,p)}return this.chomping!==M.KEEP&&(i=t[f]?f+1:f),this.valueRange=new e.Range(m+1,i),i}parse(m,a){this.context=m;let{src:t}=m,s=this.parseBlockHeader(a);return s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s=this.parseBlockValue(s),s}setOrigRanges(m,a){return a=super.setOrigRanges(m,a),this.header?this.header.setOrigRange(m,a):a}},P=class extends e.Node{constructor(m,a){super(m,a),this.items=null}prevNodeIsJsonLike(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.items.length,a=this.items[m-1];return!!a&&(a.jsonLike||a.type===e.Type.COMMENT&&this.prevNodeIsJsonLike(m-1))}parse(m,a){this.context=m;let{parseNode:t,src:s}=m,{indent:i,lineStart:f}=m,g=s[a];this.items=[{char:g,offset:a}];let u=e.Node.endOfWhiteSpace(s,a+1);for(g=s[u];g&&g!==\"]\"&&g!==\"}\";){switch(g){case`\n`:{f=u+1;let p=e.Node.endOfWhiteSpace(s,f);if(s[p]===`\n`){let L=new n;f=L.parse({src:s},f),this.items.push(L)}if(u=e.Node.endOfIndent(s,f),u<=f+i&&(g=s[u],u{if(t instanceof e.Node)a=t.setOrigRanges(m,a);else if(m.length===0)t.origOffset=t.offset;else{let s=a;for(;st.offset);)++s;t.origOffset=t.offset+s,a=s}}),a}toString(){let{context:{src:m},items:a,range:t,value:s}=this;if(s!=null)return s;let i=a.filter(u=>u instanceof e.Node),f=\"\",g=t.start;return i.forEach(u=>{let p=m.slice(g,u.range.start);g=u.range.end,f+=p+String(u),f[f.length-1]===`\n`&&m[g-1]!==`\n`&&m[g]===`\n`&&(g+=1)}),f+=m.slice(g,t.end),e.Node.addStringTerminator(m,t.end,f)}},C=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t&&t!=='\"';)a+=t===\"\\\\\"?2:1,t=m[a];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:s,src:i}=this.context;i[t-1]!=='\"'&&m.push(new e.YAMLSyntaxError(this,'Missing closing \"quote'));let f=\"\";for(let g=a+1;gp?i.slice(p,g+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parseCharCode(m,a,t){let{src:s}=this.context,i=s.substr(m,a),g=i.length===a&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;return isNaN(g)?(t.push(new e.YAMLSyntaxError(this,\"Invalid escape sequence \".concat(s.substr(m-2,a+2)))),s.substr(m-2,a+2)):String.fromCodePoint(g)}parse(m,a){this.context=m;let{src:t}=m,s=C.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}},q=class extends e.Node{static endOfQuote(m,a){let t=m[a];for(;t;)if(t===\"'\"){if(m[a+1]!==\"'\")break;t=m[a+=2]}else t=m[a+=1];return a+1}get strValue(){if(!this.valueRange||!this.context)return null;let m=[],{start:a,end:t}=this.valueRange,{indent:s,src:i}=this.context;i[t-1]!==\"'\"&&m.push(new e.YAMLSyntaxError(this,\"Missing closing 'quote\"));let f=\"\";for(let g=a+1;gp?i.slice(p,g+1):u)}else f+=u}return m.length>0?{errors:m,str:f}:f}parse(m,a){this.context=m;let{src:t}=m,s=q.endOfQuote(t,a+1);return this.valueRange=new e.Range(a,s),s=e.Node.endOfWhiteSpace(t,s),s=this.parseComment(s),s}};function R(m,a){switch(m){case e.Type.ALIAS:return new S(m,a);case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return new T(m,a);case e.Type.FLOW_MAP:case e.Type.FLOW_SEQ:return new P(m,a);case e.Type.MAP_KEY:case e.Type.MAP_VALUE:case e.Type.SEQ_ITEM:return new c(m,a);case e.Type.COMMENT:case e.Type.PLAIN:return new e.PlainValue(m,a);case e.Type.QUOTE_DOUBLE:return new C(m,a);case e.Type.QUOTE_SINGLE:return new q(m,a);default:return null}}var j=class{static parseType(m,a,t){switch(m[a]){case\"*\":return e.Type.ALIAS;case\">\":return e.Type.BLOCK_FOLDED;case\"|\":return e.Type.BLOCK_LITERAL;case\"{\":return e.Type.FLOW_MAP;case\"[\":return e.Type.FLOW_SEQ;case\"?\":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_KEY:e.Type.PLAIN;case\":\":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.MAP_VALUE:e.Type.PLAIN;case\"-\":return!t&&e.Node.atBlank(m,a+1,!0)?e.Type.SEQ_ITEM:e.Type.PLAIN;case'\"':return e.Type.QUOTE_DOUBLE;case\"'\":return e.Type.QUOTE_SINGLE;default:return e.Type.PLAIN}}constructor(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{atLineStart:a,inCollection:t,inFlow:s,indent:i,lineStart:f,parent:g}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e._defineProperty(this,\"parseNode\",(u,p)=>{if(e.Node.atDocumentBoundary(this.src,p))return null;let L=new j(this,u),{props:k,type:B,valueStart:$}=L.parseProps(p),Q=R(B,k),z=Q.parse(L,$);if(Q.range=new e.Range(p,z),z<=p&&(Q.error=new Error(\"Node#parse consumed no characters\"),Q.error.parseEnd=z,Q.error.source=Q,Q.range.end=p+1),L.nodeStartsCollection(Q)){!Q.error&&!L.atLineStart&&L.parent.type===e.Type.DOCUMENT&&(Q.error=new e.YAMLSyntaxError(Q,\"Block collection must not have preceding content here (e.g. directives-end indicator)\"));let ie=new y(Q);return z=ie.parse(new j(L),z),ie.range=new e.Range(p,z),ie}return Q}),this.atLineStart=a!=null?a:m.atLineStart||!1,this.inCollection=t!=null?t:m.inCollection||!1,this.inFlow=s!=null?s:m.inFlow||!1,this.indent=i!=null?i:m.indent,this.lineStart=f!=null?f:m.lineStart,this.parent=g!=null?g:m.parent||{},this.root=m.root,this.src=m.src}nodeStartsCollection(m){let{inCollection:a,inFlow:t,src:s}=this;if(a||t)return!1;if(m instanceof c)return!0;let i=m.range.end;return s[i]===`\n`||s[i-1]===`\n`?!1:(i=e.Node.endOfWhiteSpace(s,i),s[i]===\":\")}parseProps(m){let{inFlow:a,parent:t,src:s}=this,i=[],f=!1;m=this.atLineStart?e.Node.endOfIndent(s,m):e.Node.endOfWhiteSpace(s,m);let g=s[m];for(;g===e.Char.ANCHOR||g===e.Char.COMMENT||g===e.Char.TAG||g===`\n`;){if(g===`\n`){let p=m,L;do L=p+1,p=e.Node.endOfIndent(s,L);while(s[p]===`\n`);let k=p-(L+this.indent),B=t.type===e.Type.SEQ_ITEM&&t.context.atLineStart;if(s[p]!==\"#\"&&!e.Node.nextNodeIsIndented(s[p],k,!B))break;this.atLineStart=!0,this.lineStart=L,f=!1,m=p}else if(g===e.Char.COMMENT){let p=e.Node.endOfLine(s,m+1);i.push(new e.Range(m,p)),m=p}else{let p=e.Node.endOfIdentifier(s,m+1);g===e.Char.TAG&&s[p]===\",\"&&/^[a-zA-Z0-9-]+\\.[a-zA-Z0-9-]+,\\d\\d\\d\\d(-\\d\\d){0,2}\\/\\S/.test(s.slice(m+1,p+13))&&(p=e.Node.endOfIdentifier(s,p+5)),i.push(new e.Range(m,p)),f=!0,m=e.Node.endOfWhiteSpace(s,p)}g=s[m]}f&&g===\":\"&&e.Node.atBlank(s,m+1,!0)&&(m-=1);let u=j.parseType(s,m,a);return{props:i,type:u,valueStart:m}}};function K(m){let a=[];m.indexOf(\"\\r\")!==-1&&(m=m.replace(/\\r\\n?/g,(i,f)=>(i.length>1&&a.push(f),`\n`)));let t=[],s=0;do{let i=new I,f=new j({src:m});s=i.parse(f,s),t.push(i)}while(s{if(a.length===0)return!1;for(let f=1;ft.join(`...\n`),t}r.parse=K}}),ke=F({\"node_modules/yaml/dist/resolveSeq-d03cb037.js\"(r){\"use strict\";D();var e=Me();function n(o,l,_){if(!_)return o;let v=_.replace(/[\\s\\S]^/gm,\"$&\".concat(l,\"#\"));return\"#\".concat(v,`\n`).concat(l).concat(o)}function c(o,l,_){return _?_.indexOf(`\n`)===-1?\"\".concat(o,\" #\").concat(_):\"\".concat(o,`\n`)+_.replace(/^/gm,\"\".concat(l||\"\",\"#\")):o}var h=class{};function d(o,l,_){if(Array.isArray(o))return o.map((v,b)=>d(v,String(b),_));if(o&&typeof o.toJSON==\"function\"){let v=_&&_.anchors&&_.anchors.get(o);v&&(_.onCreate=w=>{v.res=w,delete _.onCreate});let b=o.toJSON(l,_);return v&&_.onCreate&&_.onCreate(b),b}return(!_||!_.keep)&&typeof o==\"bigint\"?Number(o):o}var y=class extends h{constructor(o){super(),this.value=o}toJSON(o,l){return l&&l.keep?this.value:d(this.value,o,l)}toString(){return String(this.value)}};function E(o,l,_){let v=_;for(let b=l.length-1;b>=0;--b){let w=l[b];if(Number.isInteger(w)&&w>=0){let A=[];A[w]=v,v=A}else{let A={};Object.defineProperty(A,w,{value:v,writable:!0,enumerable:!0,configurable:!0}),v=A}}return o.createNode(v,!1)}var I=o=>o==null||typeof o==\"object\"&&o[Symbol.iterator]().next().done,S=class extends h{constructor(o){super(),e._defineProperty(this,\"items\",[]),this.schema=o}addIn(o,l){if(I(o))this.add(l);else{let[_,...v]=o,b=this.get(_,!0);if(b instanceof S)b.addIn(v,l);else if(b===void 0&&this.schema)this.set(_,E(this.schema,v,l));else throw new Error(\"Expected YAML collection at \".concat(_,\". Remaining path: \").concat(v))}}deleteIn(o){let[l,..._]=o;if(_.length===0)return this.delete(l);let v=this.get(l,!0);if(v instanceof S)return v.deleteIn(_);throw new Error(\"Expected YAML collection at \".concat(l,\". Remaining path: \").concat(_))}getIn(o,l){let[_,...v]=o,b=this.get(_,!0);return v.length===0?!l&&b instanceof y?b.value:b:b instanceof S?b.getIn(v,l):void 0}hasAllNullValues(){return this.items.every(o=>{if(!o||o.type!==\"PAIR\")return!1;let l=o.value;return l==null||l instanceof y&&l.value==null&&!l.commentBefore&&!l.comment&&!l.tag})}hasIn(o){let[l,..._]=o;if(_.length===0)return this.has(l);let v=this.get(l,!0);return v instanceof S?v.hasIn(_):!1}setIn(o,l){let[_,...v]=o;if(v.length===0)this.set(_,l);else{let b=this.get(_,!0);if(b instanceof S)b.setIn(v,l);else if(b===void 0&&this.schema)this.set(_,E(this.schema,v,l));else throw new Error(\"Expected YAML collection at \".concat(_,\". Remaining path: \").concat(v))}}toJSON(){return null}toString(o,l,_,v){let{blockItem:b,flowChars:w,isMap:A,itemIndent:N}=l,{indent:Y,indentStep:W,stringify:U}=o,H=this.type===e.Type.FLOW_MAP||this.type===e.Type.FLOW_SEQ||o.inFlow;H&&(N+=W);let oe=A&&this.hasAllNullValues();o=Object.assign({},o,{allNullValues:oe,indent:N,inFlow:H,type:null});let le=!1,Z=!1,ee=this.items.reduce((de,re,he)=>{let ce;re&&(!le&&re.spaceBefore&&de.push({type:\"comment\",str:\"\"}),re.commentBefore&&re.commentBefore.match(/^.*$/gm).forEach(Ie=>{de.push({type:\"comment\",str:\"#\".concat(Ie)})}),re.comment&&(ce=re.comment),H&&(!le&&re.spaceBefore||re.commentBefore||re.comment||re.key&&(re.key.commentBefore||re.key.comment)||re.value&&(re.value.commentBefore||re.value.comment))&&(Z=!0)),le=!1;let fe=U(re,o,()=>ce=null,()=>le=!0);return H&&!Z&&fe.includes(`\n`)&&(Z=!0),H&&hece.str);if(Z||he.reduce((ce,fe)=>ce+fe.length+2,2)>S.maxFlowStringSingleLineLength){X=de;for(let ce of he)X+=ce?`\n`.concat(W).concat(Y).concat(ce):`\n`;X+=`\n`.concat(Y).concat(re)}else X=\"\".concat(de,\" \").concat(he.join(\" \"),\" \").concat(re)}else{let de=ee.map(b);X=de.shift();for(let re of de)X+=re?`\n`.concat(Y).concat(re):`\n`}return this.comment?(X+=`\n`+this.comment.replace(/^/gm,\"\".concat(Y,\"#\")),_&&_()):le&&v&&v(),X}};e._defineProperty(S,\"maxFlowStringSingleLineLength\",60);function M(o){let l=o instanceof y?o.value:o;return l&&typeof l==\"string\"&&(l=Number(l)),Number.isInteger(l)&&l>=0?l:null}var T=class extends S{add(o){this.items.push(o)}delete(o){let l=M(o);return typeof l!=\"number\"?!1:this.items.splice(l,1).length>0}get(o,l){let _=M(o);if(typeof _!=\"number\")return;let v=this.items[_];return!l&&v instanceof y?v.value:v}has(o){let l=M(o);return typeof l==\"number\"&&lv.type===\"comment\"?v.str:\"- \".concat(v.str),flowChars:{start:\"[\",end:\"]\"},isMap:!1,itemIndent:(o.indent||\"\")+\" \"},l,_):JSON.stringify(this)}},P=(o,l,_)=>l===null?\"\":typeof l!=\"object\"?String(l):o instanceof h&&_&&_.doc?o.toString({anchors:Object.create(null),doc:_.doc,indent:\"\",indentStep:_.indentStep,inFlow:!0,inStringifyKey:!0,stringify:_.stringify}):JSON.stringify(l),C=class extends h{constructor(o){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;super(),this.key=o,this.value=l,this.type=C.Type.PAIR}get commentBefore(){return this.key instanceof h?this.key.commentBefore:void 0}set commentBefore(o){if(this.key==null&&(this.key=new y(null)),this.key instanceof h)this.key.commentBefore=o;else{let l=\"Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.\";throw new Error(l)}}addToJSMap(o,l){let _=d(this.key,\"\",o);if(l instanceof Map){let v=d(this.value,_,o);l.set(_,v)}else if(l instanceof Set)l.add(_);else{let v=P(this.key,_,o),b=d(this.value,v,o);v in l?Object.defineProperty(l,v,{value:b,writable:!0,enumerable:!0,configurable:!0}):l[v]=b}return l}toJSON(o,l){let _=l&&l.mapAsMap?new Map:{};return this.addToJSMap(l,_)}toString(o,l,_){if(!o||!o.doc)return JSON.stringify(this);let{indent:v,indentSeq:b,simpleKeys:w}=o.doc.options,{key:A,value:N}=this,Y=A instanceof h&&A.comment;if(w){if(Y)throw new Error(\"With simple keys, key nodes cannot have comments\");if(A instanceof S){let ce=\"With simple keys, collection cannot be used as a key value\";throw new Error(ce)}}let W=!w&&(!A||Y||(A instanceof h?A instanceof S||A.type===e.Type.BLOCK_FOLDED||A.type===e.Type.BLOCK_LITERAL:typeof A==\"object\")),{doc:U,indent:H,indentStep:oe,stringify:le}=o;o=Object.assign({},o,{implicitKey:!W,indent:H+oe});let Z=!1,ee=le(A,o,()=>Y=null,()=>Z=!0);if(ee=c(ee,o.indent,Y),!W&&ee.length>1024){if(w)throw new Error(\"With simple keys, single line scalar must not span more than 1024 characters\");W=!0}if(o.allNullValues&&!w)return this.comment?(ee=c(ee,o.indent,this.comment),l&&l()):Z&&!Y&&_&&_(),o.inFlow&&!W?ee:\"? \".concat(ee);ee=W?\"? \".concat(ee,`\n`).concat(H,\":\"):\"\".concat(ee,\":\"),this.comment&&(ee=c(ee,o.indent,this.comment),l&&l());let X=\"\",de=null;if(N instanceof h){if(N.spaceBefore&&(X=`\n`),N.commentBefore){let ce=N.commentBefore.replace(/^/gm,\"\".concat(o.indent,\"#\"));X+=`\n`.concat(ce)}de=N.comment}else N&&typeof N==\"object\"&&(N=U.schema.createNode(N,!0));o.implicitKey=!1,!W&&!this.comment&&N instanceof y&&(o.indentAtStart=ee.length+1),Z=!1,!b&&v>=2&&!o.inFlow&&!W&&N instanceof T&&N.type!==e.Type.FLOW_SEQ&&!N.tag&&!U.anchors.getName(N)&&(o.indent=o.indent.substr(2));let re=le(N,o,()=>de=null,()=>Z=!0),he=\" \";return X||this.comment?he=\"\".concat(X,`\n`).concat(o.indent):!W&&N instanceof S?(!(re[0]===\"[\"||re[0]===\"{\")||re.includes(`\n`))&&(he=`\n`.concat(o.indent)):re[0]===`\n`&&(he=\"\"),Z&&!de&&_&&_(),c(ee+he+re,o.indent,de)}};e._defineProperty(C,\"Type\",{PAIR:\"PAIR\",MERGE_PAIR:\"MERGE_PAIR\"});var q=(o,l)=>{if(o instanceof R){let _=l.get(o.source);return _.count*_.aliasCount}else if(o instanceof S){let _=0;for(let v of o.items){let b=q(v,l);b>_&&(_=b)}return _}else if(o instanceof C){let _=q(o.key,l),v=q(o.value,l);return Math.max(_,v)}return 1},R=class extends h{static stringify(o,l){let{range:_,source:v}=o,{anchors:b,doc:w,implicitKey:A,inStringifyKey:N}=l,Y=Object.keys(b).find(U=>b[U]===v);if(!Y&&N&&(Y=w.anchors.getName(v)||w.anchors.newName()),Y)return\"*\".concat(Y).concat(A?\" \":\"\");let W=w.anchors.getName(v)?\"Alias node must be after source node\":\"Source node not found for alias node\";throw new Error(\"\".concat(W,\" [\").concat(_,\"]\"))}constructor(o){super(),this.source=o,this.type=e.Type.ALIAS}set tag(o){throw new Error(\"Alias nodes cannot have tags\")}toJSON(o,l){if(!l)return d(this.source,o,l);let{anchors:_,maxAliasCount:v}=l,b=_.get(this.source);if(!b||b.res===void 0){let w=\"This should not happen: Alias anchor was not resolved?\";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,w):new ReferenceError(w)}if(v>=0&&(b.count+=1,b.aliasCount===0&&(b.aliasCount=q(this.source,_)),b.count*b.aliasCount>v)){let w=\"Excessive alias count indicates a resource exhaustion attack\";throw this.cstNode?new e.YAMLReferenceError(this.cstNode,w):new ReferenceError(w)}return b.res}toString(o){return R.stringify(this,o)}};e._defineProperty(R,\"default\",!0);function j(o,l){let _=l instanceof y?l.value:l;for(let v of o)if(v instanceof C&&(v.key===l||v.key===_||v.key&&v.key.value===_))return v}var K=class extends S{add(o,l){o?o instanceof C||(o=new C(o.key||o,o.value)):o=new C(o);let _=j(this.items,o.key),v=this.schema&&this.schema.sortMapEntries;if(_)if(l)_.value=o.value;else throw new Error(\"Key \".concat(o.key,\" already set\"));else if(v){let b=this.items.findIndex(w=>v(o,w)<0);b===-1?this.items.push(o):this.items.splice(b,0,o)}else this.items.push(o)}delete(o){let l=j(this.items,o);return l?this.items.splice(this.items.indexOf(l),1).length>0:!1}get(o,l){let _=j(this.items,o),v=_&&_.value;return!l&&v instanceof y?v.value:v}has(o){return!!j(this.items,o)}set(o,l){this.add(new C(o,l),!0)}toJSON(o,l,_){let v=_?new _:l&&l.mapAsMap?new Map:{};l&&l.onCreate&&l.onCreate(v);for(let b of this.items)b.addToJSMap(l,v);return v}toString(o,l,_){if(!o)return JSON.stringify(this);for(let v of this.items)if(!(v instanceof C))throw new Error(\"Map items must all be pairs; found \".concat(JSON.stringify(v),\" instead\"));return super.toString(o,{blockItem:v=>v.str,flowChars:{start:\"{\",end:\"}\"},isMap:!0,itemIndent:o.indent||\"\"},l,_)}},m=\"<<\",a=class extends C{constructor(o){if(o instanceof C){let l=o.value;l instanceof T||(l=new T,l.items.push(o.value),l.range=o.value.range),super(o.key,l),this.range=o.range}else super(new y(m),new T);this.type=C.Type.MERGE_PAIR}addToJSMap(o,l){for(let{source:_}of this.value.items){if(!(_ instanceof K))throw new Error(\"Merge sources must be maps\");let v=_.toJSON(null,o,Map);for(let[b,w]of v)l instanceof Map?l.has(b)||l.set(b,w):l instanceof Set?l.add(b):Object.prototype.hasOwnProperty.call(l,b)||Object.defineProperty(l,b,{value:w,writable:!0,enumerable:!0,configurable:!0})}return l}toString(o,l){let _=this.value;if(_.items.length>1)return super.toString(o,l);this.value=_.items[0];let v=super.toString(o,l);return this.value=_,v}},t={defaultType:e.Type.BLOCK_LITERAL,lineWidth:76},s={trueStr:\"true\",falseStr:\"false\"},i={asBigInt:!1},f={nullStr:\"null\"},g={defaultType:e.Type.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function u(o,l,_){for(let{format:v,test:b,resolve:w}of l)if(b){let A=o.match(b);if(A){let N=w.apply(null,A);return N instanceof y||(N=new y(N)),v&&(N.format=v),N}}return _&&(o=_(o)),new y(o)}var p=\"flow\",L=\"block\",k=\"quoted\",B=(o,l)=>{let _=o[l+1];for(;_===\" \"||_===\"\t\";){do _=o[l+=1];while(_&&_!==`\n`);_=o[l+1]}return l};function $(o,l,_,v){let{indentAtStart:b,lineWidth:w=80,minContentWidth:A=20,onFold:N,onOverflow:Y}=v;if(!w||w<0)return o;let W=Math.max(1+A,1+w-l.length);if(o.length<=W)return o;let U=[],H={},oe=w-l.length;typeof b==\"number\"&&(b>w-Math.max(2,A)?U.push(0):oe=w-b);let le,Z,ee=!1,X=-1,de=-1,re=-1;_===L&&(X=B(o,X),X!==-1&&(oe=X+W));for(let ce;ce=o[X+=1];){if(_===k&&ce===\"\\\\\"){switch(de=X,o[X+1]){case\"x\":X+=3;break;case\"u\":X+=5;break;case\"U\":X+=9;break;default:X+=1}re=X}if(ce===`\n`)_===L&&(X=B(o,X)),oe=X+W,le=void 0;else{if(ce===\" \"&&Z&&Z!==\" \"&&Z!==`\n`&&Z!==\"\t\"){let fe=o[X+1];fe&&fe!==\" \"&&fe!==`\n`&&fe!==\"\t\"&&(le=X)}if(X>=oe)if(le)U.push(le),oe=le+W,le=void 0;else if(_===k){for(;Z===\" \"||Z===\"\t\";)Z=ce,ce=o[X+=1],ee=!0;let fe=X>re+1?X-2:de-1;if(H[fe])return o;U.push(fe),H[fe]=!0,oe=fe+W,le=void 0}else ee=!0}Z=ce}if(ee&&Y&&Y(),U.length===0)return o;N&&N();let he=o.slice(0,U[0]);for(let ce=0;ce{let{indentAtStart:l}=o;return l?Object.assign({indentAtStart:l},g.fold):g.fold},z=o=>/^(%|---|\\.\\.\\.)/m.test(o);function ie(o,l,_){if(!l||l<0)return!1;let v=l-_,b=o.length;if(b<=v)return!1;for(let w=0,A=0;wv)return!0;if(A=w+1,b-A<=v)return!1}return!0}function ue(o,l){let{implicitKey:_}=l,{jsonEncoding:v,minMultiLineLength:b}=g.doubleQuoted,w=JSON.stringify(o);if(v)return w;let A=l.indent||(z(o)?\" \":\"\"),N=\"\",Y=0;for(let W=0,U=w[W];U;U=w[++W])if(U===\" \"&&w[W+1]===\"\\\\\"&&w[W+2]===\"n\"&&(N+=w.slice(Y,W)+\"\\\\ \",W+=1,Y=W,U=\"\\\\\"),U===\"\\\\\")switch(w[W+1]){case\"u\":{N+=w.slice(Y,W);let H=w.substr(W+2,4);switch(H){case\"0000\":N+=\"\\\\0\";break;case\"0007\":N+=\"\\\\a\";break;case\"000b\":N+=\"\\\\v\";break;case\"001b\":N+=\"\\\\e\";break;case\"0085\":N+=\"\\\\N\";break;case\"00a0\":N+=\"\\\\_\";break;case\"2028\":N+=\"\\\\L\";break;case\"2029\":N+=\"\\\\P\";break;default:H.substr(0,2)===\"00\"?N+=\"\\\\x\"+H.substr(2):N+=w.substr(W,6)}W+=5,Y=W+1}break;case\"n\":if(_||w[W+2]==='\"'||w.length\";if(!A)return U+`\n`;let H=\"\",oe=\"\";if(A=A.replace(/[\\n\\t ]*$/,Z=>{let ee=Z.indexOf(`\n`);return ee===-1?U+=\"-\":(A===Z||ee!==Z.length-1)&&(U+=\"+\",v&&v()),oe=Z.replace(/\\n$/,\"\"),\"\"}).replace(/^[\\n ]*/,Z=>{Z.indexOf(\" \")!==-1&&(U+=Y);let ee=Z.match(/ +$/);return ee?(H=Z.slice(0,-ee[0].length),ee[0]):(H=Z,\"\")}),oe&&(oe=oe.replace(/\\n+(?!\\n|$)/g,\"$&\".concat(N))),H&&(H=H.replace(/\\n+/g,\"$&\".concat(N))),b&&(U+=\" #\"+b.replace(/ ?[\\r\\n]+/g,\" \"),_&&_()),!A)return\"\".concat(U).concat(Y,`\n`).concat(N).concat(oe);if(W)return A=A.replace(/\\n+/g,\"$&\".concat(N)),\"\".concat(U,`\n`).concat(N).concat(H).concat(A).concat(oe);A=A.replace(/\\n+/g,`\n$&`).replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g,\"$1$2\").replace(/\\n+/g,\"$&\".concat(N));let le=$(\"\".concat(H).concat(A).concat(oe),N,L,g.fold);return\"\".concat(U,`\n`).concat(N).concat(le)}function O(o,l,_,v){let{comment:b,type:w,value:A}=o,{actualString:N,implicitKey:Y,indent:W,inFlow:U}=l;if(Y&&/[\\n[\\]{},]/.test(A)||U&&/[[\\]{},]/.test(A))return ue(A,l);if(!A||/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(A))return Y||U||A.indexOf(`\n`)===-1?A.indexOf('\"')!==-1&&A.indexOf(\"'\")===-1?pe(A,l):ue(A,l):ge(o,l,_,v);if(!Y&&!U&&w!==e.Type.PLAIN&&A.indexOf(`\n`)!==-1)return ge(o,l,_,v);if(W===\"\"&&z(A))return l.forceBlockIndent=!0,ge(o,l,_,v);let H=A.replace(/\\n+/g,`$&\n`.concat(W));if(N){let{tags:le}=l.doc.schema;if(typeof u(H,le,le.scalarFallback).value!=\"string\")return ue(A,l)}let oe=Y?H:$(H,W,p,Q(l));return b&&!U&&(oe.indexOf(`\n`)!==-1||b.indexOf(`\n`)!==-1)?(_&&_(),n(oe,W,b)):oe}function V(o,l,_,v){let{defaultType:b}=g,{implicitKey:w,inFlow:A}=l,{type:N,value:Y}=o;typeof Y!=\"string\"&&(Y=String(Y),o=Object.assign({},o,{value:Y}));let W=H=>{switch(H){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:return ge(o,l,_,v);case e.Type.QUOTE_DOUBLE:return ue(Y,l);case e.Type.QUOTE_SINGLE:return pe(Y,l);case e.Type.PLAIN:return O(o,l,_,v);default:return null}};(N!==e.Type.QUOTE_DOUBLE&&/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f]/.test(Y)||(w||A)&&(N===e.Type.BLOCK_FOLDED||N===e.Type.BLOCK_LITERAL))&&(N=e.Type.QUOTE_DOUBLE);let U=W(N);if(U===null&&(U=W(b),U===null))throw new Error(\"Unsupported default string type \".concat(b));return U}function J(o){let{format:l,minFractionDigits:_,tag:v,value:b}=o;if(typeof b==\"bigint\")return String(b);if(!isFinite(b))return isNaN(b)?\".nan\":b<0?\"-.inf\":\".inf\";let w=JSON.stringify(b);if(!l&&_&&(!v||v===\"tag:yaml.org,2002:float\")&&/^\\d/.test(w)){let A=w.indexOf(\".\");A<0&&(A=w.length,w+=\".\");let N=_-(w.length-A-1);for(;N-- >0;)w+=\"0\"}return w}function x(o,l){let _,v;switch(l.type){case e.Type.FLOW_MAP:_=\"}\",v=\"flow map\";break;case e.Type.FLOW_SEQ:_=\"]\",v=\"flow sequence\";break;default:o.push(new e.YAMLSemanticError(l,\"Not a flow collection!?\"));return}let b;for(let w=l.items.length-1;w>=0;--w){let A=l.items[w];if(!A||A.type!==e.Type.COMMENT){b=A;break}}if(b&&b.char!==_){let w=\"Expected \".concat(v,\" to end with \").concat(_),A;typeof b.offset==\"number\"?(A=new e.YAMLSemanticError(l,w),A.offset=b.offset+1):(A=new e.YAMLSemanticError(b,w),b.range&&b.range.end&&(A.offset=b.range.end-b.range.start)),o.push(A)}}function G(o,l){let _=l.context.src[l.range.start-1];if(_!==`\n`&&_!==\"\t\"&&_!==\" \"){let v=\"Comments must be separated from other tokens by white space characters\";o.push(new e.YAMLSemanticError(l,v))}}function ne(o,l){let _=String(l),v=_.substr(0,8)+\"...\"+_.substr(-8);return new e.YAMLSemanticError(o,'The \"'.concat(v,'\" key is too long'))}function _e(o,l){for(let{afterKey:_,before:v,comment:b}of l){let w=o.items[v];w?(_&&w.value&&(w=w.value),b===void 0?(_||!w.commentBefore)&&(w.spaceBefore=!0):w.commentBefore?w.commentBefore+=`\n`+b:w.commentBefore=b):b!==void 0&&(o.comment?o.comment+=`\n`+b:o.comment=b)}}function ye(o,l){let _=l.strValue;return _?typeof _==\"string\"?_:(_.errors.forEach(v=>{v.source||(v.source=l),o.errors.push(v)}),_.str):\"\"}function be(o,l){let{handle:_,suffix:v}=l.tag,b=o.tagPrefixes.find(w=>w.handle===_);if(!b){let w=o.getDefaults().tagPrefixes;if(w&&(b=w.find(A=>A.handle===_)),!b)throw new e.YAMLSemanticError(l,\"The \".concat(_,\" tag handle is non-default and was not declared.\"))}if(!v)throw new e.YAMLSemanticError(l,\"The \".concat(_,\" tag has no suffix.\"));if(_===\"!\"&&(o.version||o.options.version)===\"1.0\"){if(v[0]===\"^\")return o.warnings.push(new e.YAMLWarning(l,\"YAML 1.0 ^ tag expansion is not supported\")),v;if(/[:/]/.test(v)){let w=v.match(/^([a-z0-9-]+)\\/(.*)/i);return w?\"tag:\".concat(w[1],\".yaml.org,2002:\").concat(w[2]):\"tag:\".concat(v)}}return b.prefix+decodeURIComponent(v)}function ve(o,l){let{tag:_,type:v}=l,b=!1;if(_){let{handle:w,suffix:A,verbatim:N}=_;if(N){if(N!==\"!\"&&N!==\"!!\")return N;let Y=\"Verbatim tags aren't resolved, so \".concat(N,\" is invalid.\");o.errors.push(new e.YAMLSemanticError(l,Y))}else if(w===\"!\"&&!A)b=!0;else try{return be(o,l)}catch(Y){o.errors.push(Y)}}switch(v){case e.Type.BLOCK_FOLDED:case e.Type.BLOCK_LITERAL:case e.Type.QUOTE_DOUBLE:case e.Type.QUOTE_SINGLE:return e.defaultTags.STR;case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;case e.Type.PLAIN:return b?e.defaultTags.STR:null;default:return null}}function Ne(o,l,_){let{tags:v}=o.schema,b=[];for(let A of v)if(A.tag===_)if(A.test)b.push(A);else{let N=A.resolve(o,l);return N instanceof S?N:new y(N)}let w=ye(o,l);return typeof w==\"string\"&&b.length>0?u(w,b,v.scalarFallback):null}function Pe(o){let{type:l}=o;switch(l){case e.Type.FLOW_MAP:case e.Type.MAP:return e.defaultTags.MAP;case e.Type.FLOW_SEQ:case e.Type.SEQ:return e.defaultTags.SEQ;default:return e.defaultTags.STR}}function ct(o,l,_){try{let v=Ne(o,l,_);if(v)return _&&l.tag&&(v.tag=_),v}catch(v){return v.source||(v.source=l),o.errors.push(v),null}try{let v=Pe(l);if(!v)throw new Error(\"The tag \".concat(_,\" is unavailable\"));let b=\"The tag \".concat(_,\" is unavailable, falling back to \").concat(v);o.warnings.push(new e.YAMLWarning(l,b));let w=Ne(o,l,v);return w.tag=_,w}catch(v){let b=new e.YAMLReferenceError(l,v.message);return b.stack=v.stack,o.errors.push(b),null}}var ut=o=>{if(!o)return!1;let{type:l}=o;return l===e.Type.MAP_KEY||l===e.Type.MAP_VALUE||l===e.Type.SEQ_ITEM};function ft(o,l){let _={before:[],after:[]},v=!1,b=!1,w=ut(l.context.parent)?l.context.parent.props.concat(l.props):l.props;for(let{start:A,end:N}of w)switch(l.context.src[A]){case e.Char.COMMENT:{if(!l.commentHasRequiredWhitespace(A)){let H=\"Comments must be separated from other tokens by white space characters\";o.push(new e.YAMLSemanticError(l,H))}let{header:Y,valueRange:W}=l;(W&&(A>W.start||Y&&A>Y.start)?_.after:_.before).push(l.context.src.slice(A+1,N));break}case e.Char.ANCHOR:if(v){let Y=\"A node can have at most one anchor\";o.push(new e.YAMLSemanticError(l,Y))}v=!0;break;case e.Char.TAG:if(b){let Y=\"A node can have at most one tag\";o.push(new e.YAMLSemanticError(l,Y))}b=!0;break}return{comments:_,hasAnchor:v,hasTag:b}}function mt(o,l){let{anchors:_,errors:v,schema:b}=o;if(l.type===e.Type.ALIAS){let A=l.rawValue,N=_.getNode(A);if(!N){let W=\"Aliased anchor not found: \".concat(A);return v.push(new e.YAMLReferenceError(l,W)),null}let Y=new R(N);return _._cstAliases.push(Y),Y}let w=ve(o,l);if(w)return ct(o,l,w);if(l.type!==e.Type.PLAIN){let A=\"Failed to resolve \".concat(l.type,\" node here\");return v.push(new e.YAMLSyntaxError(l,A)),null}try{let A=ye(o,l);return u(A,b.tags,b.tags.scalarFallback)}catch(A){return A.source||(A.source=l),v.push(A),null}}function we(o,l){if(!l)return null;l.error&&o.errors.push(l.error);let{comments:_,hasAnchor:v,hasTag:b}=ft(o.errors,l);if(v){let{anchors:A}=o,N=l.anchor,Y=A.getNode(N);Y&&(A.map[A.newName(N)]=Y),A.map[N]=l}if(l.type===e.Type.ALIAS&&(v||b)){let A=\"An alias node must not specify any properties\";o.errors.push(new e.YAMLSemanticError(l,A))}let w=mt(o,l);if(w){w.range=[l.range.start,l.range.end],o.options.keepCstNodes&&(w.cstNode=l),o.options.keepNodeTypes&&(w.type=l.type);let A=_.before.join(`\n`);A&&(w.commentBefore=w.commentBefore?\"\".concat(w.commentBefore,`\n`).concat(A):A);let N=_.after.join(`\n`);N&&(w.comment=w.comment?\"\".concat(w.comment,`\n`).concat(N):N)}return l.resolved=w}function dt(o,l){if(l.type!==e.Type.MAP&&l.type!==e.Type.FLOW_MAP){let A=\"A \".concat(l.type,\" node cannot be resolved as a mapping\");return o.errors.push(new e.YAMLSyntaxError(l,A)),null}let{comments:_,items:v}=l.type===e.Type.FLOW_MAP?_t(o,l):pt(o,l),b=new K;b.items=v,_e(b,_);let w=!1;for(let A=0;A{if(U instanceof R){let{type:H}=U.source;return H===e.Type.MAP||H===e.Type.FLOW_MAP?!1:W=\"Merge nodes aliases can only point to maps\"}return W=\"Merge nodes can only have Alias nodes as values\"}),W&&o.errors.push(new e.YAMLSemanticError(l,W))}else for(let Y=A+1;Y{let{context:{lineStart:l,node:_,src:v},props:b}=o;if(b.length===0)return!1;let{start:w}=b[0];if(_&&w>_.valueRange.start||v[w]!==e.Char.COMMENT)return!1;for(let A=l;A0){Y=new e.PlainValue(e.Type.PLAIN,[]),Y.context={parent:N,src:N.context.src};let U=N.range.start+1;if(Y.range={start:U,end:U},Y.valueRange={start:U,end:U},typeof N.range.origStart==\"number\"){let H=N.range.origStart+1;Y.range.origStart=Y.range.origEnd=H,Y.valueRange.origStart=Y.valueRange.origEnd=H}}let W=new C(b,we(o,Y));gt(N,W),v.push(W),b&&typeof w==\"number\"&&N.range.start>w+1024&&o.errors.push(ne(l,b)),b=void 0,w=null}break;default:b!==void 0&&v.push(new C(b)),b=we(o,N),w=N.range.start,N.error&&o.errors.push(N.error);e:for(let Y=A+1;;++Y){let W=l.items[Y];switch(W&&W.type){case e.Type.BLANK_LINE:case e.Type.COMMENT:continue e;case e.Type.MAP_VALUE:break e;default:{let U=\"Implicit map keys need to be followed by map values\";o.errors.push(new e.YAMLSemanticError(N,U));break e}}}if(N.valueRangeContainsNewline){let Y=\"Implicit map keys need to be on a single line\";o.errors.push(new e.YAMLSemanticError(N,Y))}}}return b!==void 0&&v.push(new C(b)),{comments:_,items:v}}function _t(o,l){let _=[],v=[],b,w=!1,A=\"{\";for(let N=0;Nw instanceof C&&w.key instanceof S)){let w=\"Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.\";o.warnings.push(new e.YAMLWarning(l,w))}return l.resolved=b,b}function yt(o,l){let _=[],v=[];for(let b=0;bA+1024&&o.errors.push(ne(l,w));let{src:Z}=Y.context;for(let ee=A;eeu instanceof Uint8Array,default:!1,tag:\"tag:yaml.org,2002:binary\",resolve:(u,p)=>{let L=n.resolveString(u,p);if(typeof Buffer==\"function\")return Buffer.from(L,\"base64\");if(typeof atob==\"function\"){let k=atob(L.replace(/[\\n\\r]/g,\"\")),B=new Uint8Array(k.length);for(let $=0;${let{comment:B,type:$,value:Q}=u,z;if(typeof Buffer==\"function\")z=Q instanceof Buffer?Q.toString(\"base64\"):Buffer.from(Q.buffer).toString(\"base64\");else if(typeof btoa==\"function\"){let ie=\"\";for(let ue=0;ue1){let Q=\"Each pair must have its own sequence indicator\";throw new e.YAMLSemanticError(p,Q)}let $=B.items[0]||new n.Pair;B.commentBefore&&($.commentBefore=$.commentBefore?\"\".concat(B.commentBefore,`\n`).concat($.commentBefore):B.commentBefore),B.comment&&($.comment=$.comment?\"\".concat(B.comment,`\n`).concat($.comment):B.comment),B=$}L.items[k]=B instanceof n.Pair?B:new n.Pair(B)}}return L}function d(u,p,L){let k=new n.YAMLSeq(u);k.tag=\"tag:yaml.org,2002:pairs\";for(let B of p){let $,Q;if(Array.isArray(B))if(B.length===2)$=B[0],Q=B[1];else throw new TypeError(\"Expected [key, value] tuple: \".concat(B));else if(B&&B instanceof Object){let ie=Object.keys(B);if(ie.length===1)$=ie[0],Q=B[$];else throw new TypeError(\"Expected { key: value } tuple: \".concat(B))}else $=B;let z=u.createPair($,Q,L);k.items.push(z)}return k}var y={default:!1,tag:\"tag:yaml.org,2002:pairs\",resolve:h,createNode:d},E=class extends n.YAMLSeq{constructor(){super(),e._defineProperty(this,\"add\",n.YAMLMap.prototype.add.bind(this)),e._defineProperty(this,\"delete\",n.YAMLMap.prototype.delete.bind(this)),e._defineProperty(this,\"get\",n.YAMLMap.prototype.get.bind(this)),e._defineProperty(this,\"has\",n.YAMLMap.prototype.has.bind(this)),e._defineProperty(this,\"set\",n.YAMLMap.prototype.set.bind(this)),this.tag=E.tag}toJSON(u,p){let L=new Map;p&&p.onCreate&&p.onCreate(L);for(let k of this.items){let B,$;if(k instanceof n.Pair?(B=n.toJSON(k.key,\"\",p),$=n.toJSON(k.value,B,p)):B=n.toJSON(k,\"\",p),L.has(B))throw new Error(\"Ordered maps must not include duplicate keys\");L.set(B,$)}return L}};e._defineProperty(E,\"tag\",\"tag:yaml.org,2002:omap\");function I(u,p){let L=h(u,p),k=[];for(let{key:B}of L.items)if(B instanceof n.Scalar)if(k.includes(B.value)){let $=\"Ordered maps must not include duplicate keys\";throw new e.YAMLSemanticError(p,$)}else k.push(B.value);return Object.assign(new E,L)}function S(u,p,L){let k=d(u,p,L),B=new E;return B.items=k.items,B}var M={identify:u=>u instanceof Map,nodeClass:E,default:!1,tag:\"tag:yaml.org,2002:omap\",resolve:I,createNode:S},T=class extends n.YAMLMap{constructor(){super(),this.tag=T.tag}add(u){let p=u instanceof n.Pair?u:new n.Pair(u);n.findPair(this.items,p.key)||this.items.push(p)}get(u,p){let L=n.findPair(this.items,u);return!p&&L instanceof n.Pair?L.key instanceof n.Scalar?L.key.value:L.key:L}set(u,p){if(typeof p!=\"boolean\")throw new Error(\"Expected boolean value for set(key, value) in a YAML set, not \".concat(typeof p));let L=n.findPair(this.items,u);L&&!p?this.items.splice(this.items.indexOf(L),1):!L&&p&&this.items.push(new n.Pair(u))}toJSON(u,p){return super.toJSON(u,p,Set)}toString(u,p,L){if(!u)return JSON.stringify(this);if(this.hasAllNullValues())return super.toString(u,p,L);throw new Error(\"Set items must all have null values\")}};e._defineProperty(T,\"tag\",\"tag:yaml.org,2002:set\");function P(u,p){let L=n.resolveMap(u,p);if(!L.hasAllNullValues())throw new e.YAMLSemanticError(p,\"Set items must all have null values\");return Object.assign(new T,L)}function C(u,p,L){let k=new T;for(let B of p)k.items.push(u.createPair(B,null,L));return k}var q={identify:u=>u instanceof Set,nodeClass:T,default:!1,tag:\"tag:yaml.org,2002:set\",resolve:P,createNode:C},R=(u,p)=>{let L=p.split(\":\").reduce((k,B)=>k*60+Number(B),0);return u===\"-\"?-L:L},j=u=>{let{value:p}=u;if(isNaN(p)||!isFinite(p))return n.stringifyNumber(p);let L=\"\";p<0&&(L=\"-\",p=Math.abs(p));let k=[p%60];return p<60?k.unshift(0):(p=Math.round((p-k[0])/60),k.unshift(p%60),p>=60&&(p=Math.round((p-k[0])/60),k.unshift(p))),L+k.map(B=>B<10?\"0\"+String(B):String(B)).join(\":\").replace(/000000\\d*$/,\"\")},K={identify:u=>typeof u==\"number\",default:!0,tag:\"tag:yaml.org,2002:int\",format:\"TIME\",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:(u,p,L)=>R(p,L.replace(/_/g,\"\")),stringify:j},m={identify:u=>typeof u==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"TIME\",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*)$/,resolve:(u,p,L)=>R(p,L.replace(/_/g,\"\")),stringify:j},a={identify:u=>u instanceof Date,default:!0,tag:\"tag:yaml.org,2002:timestamp\",test:RegExp(\"^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\\\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$\"),resolve:(u,p,L,k,B,$,Q,z,ie)=>{z&&(z=(z+\"00\").substr(1,3));let ue=Date.UTC(p,L-1,k,B||0,$||0,Q||0,z||0);if(ie&&ie!==\"Z\"){let pe=R(ie[0],ie.slice(1));Math.abs(pe)<30&&(pe*=60),ue-=6e4*pe}return new Date(ue)},stringify:u=>{let{value:p}=u;return p.toISOString().replace(/((T00:00)?:00)?\\.000Z$/,\"\")}};function t(u){let p=typeof Te<\"u\"&&Te.env||{};return u?typeof YAML_SILENCE_DEPRECATION_WARNINGS<\"u\"?!YAML_SILENCE_DEPRECATION_WARNINGS:!p.YAML_SILENCE_DEPRECATION_WARNINGS:typeof YAML_SILENCE_WARNINGS<\"u\"?!YAML_SILENCE_WARNINGS:!p.YAML_SILENCE_WARNINGS}function s(u,p){if(t(!1)){let L=typeof Te<\"u\"&&Te.emitWarning;L?L(u,p):console.warn(p?\"\".concat(p,\": \").concat(u):u)}}function i(u){if(t(!0)){let p=u.replace(/.*yaml[/\\\\]/i,\"\").replace(/\\.js$/,\"\").replace(/\\\\/g,\"/\");s(\"The endpoint 'yaml/\".concat(p,\"' will be removed in a future release.\"),\"DeprecationWarning\")}}var f={};function g(u,p){if(!f[u]&&t(!0)){f[u]=!0;let L=\"The option '\".concat(u,\"' will be removed in a future release\");L+=p?\", use '\".concat(p,\"' instead.\"):\".\",s(L,\"DeprecationWarning\")}}r.binary=c,r.floatTime=m,r.intTime=K,r.omap=M,r.pairs=y,r.set=q,r.timestamp=a,r.warn=s,r.warnFileDeprecation=i,r.warnOptionDeprecation=g}}),ot=F({\"node_modules/yaml/dist/Schema-88e323a7.js\"(r){\"use strict\";D();var e=Me(),n=ke(),c=it();function h(O,V,J){let x=new n.YAMLMap(O);if(V instanceof Map)for(let[G,ne]of V)x.items.push(O.createPair(G,ne,J));else if(V&&typeof V==\"object\")for(let G of Object.keys(V))x.items.push(O.createPair(G,V[G],J));return typeof O.sortMapEntries==\"function\"&&x.items.sort(O.sortMapEntries),x}var d={createNode:h,default:!0,nodeClass:n.YAMLMap,tag:\"tag:yaml.org,2002:map\",resolve:n.resolveMap};function y(O,V,J){let x=new n.YAMLSeq(O);if(V&&V[Symbol.iterator])for(let G of V){let ne=O.createNode(G,J.wrapScalars,null,J);x.items.push(ne)}return x}var E={createNode:y,default:!0,nodeClass:n.YAMLSeq,tag:\"tag:yaml.org,2002:seq\",resolve:n.resolveSeq},I={identify:O=>typeof O==\"string\",default:!0,tag:\"tag:yaml.org,2002:str\",resolve:n.resolveString,stringify(O,V,J,x){return V=Object.assign({actualString:!0},V),n.stringifyString(O,V,J,x)},options:n.strOptions},S=[d,E,I],M=O=>typeof O==\"bigint\"||Number.isInteger(O),T=(O,V,J)=>n.intOptions.asBigInt?BigInt(O):parseInt(V,J);function P(O,V,J){let{value:x}=O;return M(x)&&x>=0?J+x.toString(V):n.stringifyNumber(O)}var C={identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},q={identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:O=>O[0]===\"t\"||O[0]===\"T\",options:n.boolOptions,stringify:O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr}},R={identify:O=>M(O)&&O>=0,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"OCT\",test:/^0o([0-7]+)$/,resolve:(O,V)=>T(O,V,8),options:n.intOptions,stringify:O=>P(O,8,\"0o\")},j={identify:M,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^[-+]?[0-9]+$/,resolve:O=>T(O,O,10),options:n.intOptions,stringify:n.stringifyNumber},K={identify:O=>M(O)&&O>=0,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"HEX\",test:/^0x([0-9a-fA-F]+)$/,resolve:(O,V)=>T(O,V,16),options:n.intOptions,stringify:O=>P(O,16,\"0x\")},m={identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^(?:[-+]?\\.inf|(\\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]===\"-\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},a={identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"EXP\",test:/^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},t={identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^[-+]?(?:\\.([0-9]+)|[0-9]+\\.([0-9]*))$/,resolve(O,V,J){let x=V||J,G=new n.Scalar(parseFloat(O));return x&&x[x.length-1]===\"0\"&&(G.minFractionDigits=x.length),G},stringify:n.stringifyNumber},s=S.concat([C,q,R,j,K,m,a,t]),i=O=>typeof O==\"bigint\"||Number.isInteger(O),f=O=>{let{value:V}=O;return JSON.stringify(V)},g=[d,E,{identify:O=>typeof O==\"string\",default:!0,tag:\"tag:yaml.org,2002:str\",resolve:n.resolveString,stringify:f},{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^null$/,resolve:()=>null,stringify:f},{identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^true|false$/,resolve:O=>O===\"true\",stringify:f},{identify:i,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:O=>n.intOptions.asBigInt?BigInt(O):parseInt(O,10),stringify:O=>{let{value:V}=O;return i(V)?V.toString():JSON.stringify(V)}},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:O=>parseFloat(O),stringify:f}];g.scalarFallback=O=>{throw new SyntaxError(\"Unresolved plain scalar \".concat(JSON.stringify(O)))};var u=O=>{let{value:V}=O;return V?n.boolOptions.trueStr:n.boolOptions.falseStr},p=O=>typeof O==\"bigint\"||Number.isInteger(O);function L(O,V,J){let x=V.replace(/_/g,\"\");if(n.intOptions.asBigInt){switch(J){case 2:x=\"0b\".concat(x);break;case 8:x=\"0o\".concat(x);break;case 16:x=\"0x\".concat(x);break}let ne=BigInt(x);return O===\"-\"?BigInt(-1)*ne:ne}let G=parseInt(x,J);return O===\"-\"?-1*G:G}function k(O,V,J){let{value:x}=O;if(p(x)){let G=x.toString(V);return x<0?\"-\"+J+G.substr(1):J+G}return n.stringifyNumber(O)}var B=S.concat([{identify:O=>O==null,createNode:(O,V,J)=>J.wrapScalars?new n.Scalar(null):null,default:!0,tag:\"tag:yaml.org,2002:null\",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:n.nullOptions,stringify:()=>n.nullOptions.nullStr},{identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>!0,options:n.boolOptions,stringify:u},{identify:O=>typeof O==\"boolean\",default:!0,tag:\"tag:yaml.org,2002:bool\",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>!1,options:n.boolOptions,stringify:u},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"BIN\",test:/^([-+]?)0b([0-1_]+)$/,resolve:(O,V,J)=>L(V,J,2),stringify:O=>k(O,2,\"0b\")},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"OCT\",test:/^([-+]?)0([0-7_]+)$/,resolve:(O,V,J)=>L(V,J,8),stringify:O=>k(O,8,\"0\")},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:(O,V,J)=>L(V,J,10),stringify:n.stringifyNumber},{identify:p,default:!0,tag:\"tag:yaml.org,2002:int\",format:\"HEX\",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:(O,V,J)=>L(V,J,16),stringify:O=>k(O,16,\"0x\")},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^(?:[-+]?\\.inf|(\\.nan))$/i,resolve:(O,V)=>V?NaN:O[0]===\"-\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",format:\"EXP\",test:/^[-+]?([0-9][0-9_]*)?(\\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:O=>parseFloat(O.replace(/_/g,\"\")),stringify:O=>{let{value:V}=O;return Number(V).toExponential()}},{identify:O=>typeof O==\"number\",default:!0,tag:\"tag:yaml.org,2002:float\",test:/^[-+]?(?:[0-9][0-9_]*)?\\.([0-9_]*)$/,resolve(O,V){let J=new n.Scalar(parseFloat(O.replace(/_/g,\"\")));if(V){let x=V.replace(/_/g,\"\");x[x.length-1]===\"0\"&&(J.minFractionDigits=x.length)}return J},stringify:n.stringifyNumber}],c.binary,c.omap,c.pairs,c.set,c.intTime,c.floatTime,c.timestamp),$={core:s,failsafe:S,json:g,yaml11:B},Q={binary:c.binary,bool:q,float:t,floatExp:a,floatNaN:m,floatTime:c.floatTime,int:j,intHex:K,intOct:R,intTime:c.intTime,map:d,null:C,omap:c.omap,pairs:c.pairs,seq:E,set:c.set,timestamp:c.timestamp};function z(O,V,J){if(V){let x=J.filter(ne=>ne.tag===V),G=x.find(ne=>!ne.format)||x[0];if(!G)throw new Error(\"Tag \".concat(V,\" not found\"));return G}return J.find(x=>(x.identify&&x.identify(O)||x.class&&O instanceof x.class)&&!x.format)}function ie(O,V,J){if(O instanceof n.Node)return O;let{defaultPrefix:x,onTagObj:G,prevObjects:ne,schema:_e,wrapScalars:ye}=J;V&&V.startsWith(\"!!\")&&(V=x+V.slice(2));let be=z(O,V,_e.tags);if(!be){if(typeof O.toJSON==\"function\"&&(O=O.toJSON()),!O||typeof O!=\"object\")return ye?new n.Scalar(O):O;be=O instanceof Map?d:O[Symbol.iterator]?E:d}G&&(G(be),delete J.onTagObj);let ve={value:void 0,node:void 0};if(O&&typeof O==\"object\"&&ne){let Ne=ne.get(O);if(Ne){let Pe=new n.Alias(Ne);return J.aliasNodes.push(Pe),Pe}ve.value=O,ne.set(O,ve)}return ve.node=be.createNode?be.createNode(J.schema,O,J):ye?new n.Scalar(O):O,V&&ve.node instanceof n.Node&&(ve.node.tag=V),ve.node}function ue(O,V,J,x){let G=O[x.replace(/\\W/g,\"\")];if(!G){let ne=Object.keys(O).map(_e=>JSON.stringify(_e)).join(\", \");throw new Error('Unknown schema \"'.concat(x,'\"; use one of ').concat(ne))}if(Array.isArray(J))for(let ne of J)G=G.concat(ne);else typeof J==\"function\"&&(G=J(G.slice()));for(let ne=0;neJSON.stringify(ve)).join(\", \");throw new Error('Unknown custom tag \"'.concat(_e,'\"; use one of ').concat(be))}G[ne]=ye}}return G}var pe=(O,V)=>O.keyV.key?1:0,ge=class{constructor(O){let{customTags:V,merge:J,schema:x,sortMapEntries:G,tags:ne}=O;this.merge=!!J,this.name=x,this.sortMapEntries=G===!0?pe:G||null,!V&&ne&&c.warnOptionDeprecation(\"tags\",\"customTags\"),this.tags=ue($,Q,V||ne,x)}createNode(O,V,J,x){let G={defaultPrefix:ge.defaultPrefix,schema:this,wrapScalars:V},ne=x?Object.assign(x,G):G;return ie(O,J,ne)}createPair(O,V,J){J||(J={wrapScalars:!0});let x=this.createNode(O,J.wrapScalars,null,J),G=this.createNode(V,J.wrapScalars,null,J);return new n.Pair(x,G)}};e._defineProperty(ge,\"defaultPrefix\",e.defaultTagPrefix),e._defineProperty(ge,\"defaultTags\",e.defaultTags),r.Schema=ge}}),zn=F({\"node_modules/yaml/dist/Document-9b4560a1.js\"(r){\"use strict\";D();var e=Me(),n=ke(),c=ot(),h={anchorPrefix:\"a\",customTags:null,indent:2,indentSeq:!0,keepCstNodes:!1,keepNodeTypes:!0,keepBlobsInJSON:!0,mapAsMap:!1,maxAliasCount:100,prettyErrors:!1,simpleKeys:!1,version:\"1.2\"},d={get binary(){return n.binaryOptions},set binary(t){Object.assign(n.binaryOptions,t)},get bool(){return n.boolOptions},set bool(t){Object.assign(n.boolOptions,t)},get int(){return n.intOptions},set int(t){Object.assign(n.intOptions,t)},get null(){return n.nullOptions},set null(t){Object.assign(n.nullOptions,t)},get str(){return n.strOptions},set str(t){Object.assign(n.strOptions,t)}},y={\"1.0\":{schema:\"yaml-1.1\",merge:!0,tagPrefixes:[{handle:\"!\",prefix:e.defaultTagPrefix},{handle:\"!!\",prefix:\"tag:private.yaml.org,2002:\"}]},1.1:{schema:\"yaml-1.1\",merge:!0,tagPrefixes:[{handle:\"!\",prefix:\"!\"},{handle:\"!!\",prefix:e.defaultTagPrefix}]},1.2:{schema:\"core\",merge:!1,tagPrefixes:[{handle:\"!\",prefix:\"!\"},{handle:\"!!\",prefix:e.defaultTagPrefix}]}};function E(t,s){if((t.version||t.options.version)===\"1.0\"){let g=s.match(/^tag:private\\.yaml\\.org,2002:([^:/]+)$/);if(g)return\"!\"+g[1];let u=s.match(/^tag:([a-zA-Z0-9-]+)\\.yaml\\.org,2002:(.*)/);return u?\"!\".concat(u[1],\"/\").concat(u[2]):\"!\".concat(s.replace(/^tag:/,\"\"))}let i=t.tagPrefixes.find(g=>s.indexOf(g.prefix)===0);if(!i){let g=t.getDefaults().tagPrefixes;i=g&&g.find(u=>s.indexOf(u.prefix)===0)}if(!i)return s[0]===\"!\"?s:\"!<\".concat(s,\">\");let f=s.substr(i.prefix.length).replace(/[!,[\\]{}]/g,g=>({\"!\":\"%21\",\",\":\"%2C\",\"[\":\"%5B\",\"]\":\"%5D\",\"{\":\"%7B\",\"}\":\"%7D\"})[g]);return i.handle+f}function I(t,s){if(s instanceof n.Alias)return n.Alias;if(s.tag){let g=t.filter(u=>u.tag===s.tag);if(g.length>0)return g.find(u=>u.format===s.format)||g[0]}let i,f;if(s instanceof n.Scalar){f=s.value;let g=t.filter(u=>u.identify&&u.identify(f)||u.class&&f instanceof u.class);i=g.find(u=>u.format===s.format)||g.find(u=>!u.format)}else f=s,i=t.find(g=>g.nodeClass&&f instanceof g.nodeClass);if(!i){let g=f&&f.constructor?f.constructor.name:typeof f;throw new Error(\"Tag not resolved for \".concat(g,\" value\"))}return i}function S(t,s,i){let{anchors:f,doc:g}=i,u=[],p=g.anchors.getName(t);return p&&(f[p]=t,u.push(\"&\".concat(p))),t.tag?u.push(E(g,t.tag)):s.default||u.push(E(g,s.tag)),u.join(\" \")}function M(t,s,i,f){let{anchors:g,schema:u}=s.doc,p;if(!(t instanceof n.Node)){let B={aliasNodes:[],onTagObj:$=>p=$,prevObjects:new Map};t=u.createNode(t,!0,null,B);for(let $ of B.aliasNodes){$.source=$.source.node;let Q=g.getName($.source);Q||(Q=g.newName(),g.map[Q]=$.source)}}if(t instanceof n.Pair)return t.toString(s,i,f);p||(p=I(u.tags,t));let L=S(t,p,s);L.length>0&&(s.indentAtStart=(s.indentAtStart||0)+L.length+1);let k=typeof p.stringify==\"function\"?p.stringify(t,s,i,f):t instanceof n.Scalar?n.stringifyString(t,s,i,f):t.toString(s,i,f);return L?t instanceof n.Scalar||k[0]===\"{\"||k[0]===\"[\"?\"\".concat(L,\" \").concat(k):\"\".concat(L,`\n`).concat(s.indent).concat(k):k}var T=class{static validAnchorNode(t){return t instanceof n.Scalar||t instanceof n.YAMLSeq||t instanceof n.YAMLMap}constructor(t){e._defineProperty(this,\"map\",Object.create(null)),this.prefix=t}createAlias(t,s){return this.setAnchor(t,s),new n.Alias(t)}createMergePair(){let t=new n.Merge;for(var s=arguments.length,i=new Array(s),f=0;f{if(g instanceof n.Alias){if(g.source instanceof n.YAMLMap)return g}else if(g instanceof n.YAMLMap)return this.createAlias(g);throw new Error(\"Merge sources must be Map nodes or their Aliases\")}),t}getName(t){let{map:s}=this;return Object.keys(s).find(i=>s[i]===t)}getNames(){return Object.keys(this.map)}getNode(t){return this.map[t]}newName(t){t||(t=this.prefix);let s=Object.keys(this.map);for(let i=1;;++i){let f=\"\".concat(t).concat(i);if(!s.includes(f))return f}}resolveNodes(){let{map:t,_cstAliases:s}=this;Object.keys(t).forEach(i=>{t[i]=t[i].resolved}),s.forEach(i=>{i.source=i.source.resolved}),delete this._cstAliases}setAnchor(t,s){if(t!=null&&!T.validAnchorNode(t))throw new Error(\"Anchors may only be set for Scalar, Seq and Map nodes\");if(s&&/[\\x00-\\x19\\s,[\\]{}]/.test(s))throw new Error(\"Anchor names must not contain whitespace or control characters\");let{map:i}=this,f=t&&Object.keys(i).find(g=>i[g]===t);if(f)if(s)f!==s&&(delete i[f],i[s]=t);else return f;else{if(!s){if(!t)return null;s=this.newName()}i[s]=t}return s}},P=(t,s)=>{if(t&&typeof t==\"object\"){let{tag:i}=t;t instanceof n.Collection?(i&&(s[i]=!0),t.items.forEach(f=>P(f,s))):t instanceof n.Pair?(P(t.key,s),P(t.value,s)):t instanceof n.Scalar&&i&&(s[i]=!0)}return s},C=t=>Object.keys(P(t,{}));function q(t,s){let i={before:[],after:[]},f,g=!1;for(let u of s)if(u.valueRange){if(f!==void 0){let L=\"Document contains trailing content not separated by a ... or --- line\";t.errors.push(new e.YAMLSyntaxError(u,L));break}let p=n.resolveNode(t,u);g&&(p.spaceBefore=!0,g=!1),f=p}else u.comment!==null?(f===void 0?i.before:i.after).push(u.comment):u.type===e.Type.BLANK_LINE&&(g=!0,f===void 0&&i.before.length>0&&!t.commentBefore&&(t.commentBefore=i.before.join(`\n`),i.before=[]));if(t.contents=f||null,!f)t.comment=i.before.concat(i.after).join(`\n`)||null;else{let u=i.before.join(`\n`);if(u){let p=f instanceof n.Collection&&f.items[0]?f.items[0]:f;p.commentBefore=p.commentBefore?\"\".concat(u,`\n`).concat(p.commentBefore):u}t.comment=i.after.join(`\n`)||null}}function R(t,s){let{tagPrefixes:i}=t,[f,g]=s.parameters;if(!f||!g){let u=\"Insufficient parameters given for %TAG directive\";throw new e.YAMLSemanticError(s,u)}if(i.some(u=>u.handle===f)){let u=\"The %TAG directive must only be given at most once per handle in the same document.\";throw new e.YAMLSemanticError(s,u)}return{handle:f,prefix:g}}function j(t,s){let[i]=s.parameters;if(s.name===\"YAML:1.0\"&&(i=\"1.0\"),!i){let f=\"Insufficient parameters given for %YAML directive\";throw new e.YAMLSemanticError(s,f)}if(!y[i]){let f=t.version||t.options.version,g=\"Document will be parsed as YAML \".concat(f,\" rather than YAML \").concat(i);t.warnings.push(new e.YAMLWarning(s,g))}return i}function K(t,s,i){let f=[],g=!1;for(let u of s){let{comment:p,name:L}=u;switch(L){case\"TAG\":try{t.tagPrefixes.push(R(t,u))}catch(k){t.errors.push(k)}g=!0;break;case\"YAML\":case\"YAML:1.0\":if(t.version){let k=\"The %YAML directive must only be given at most once per document.\";t.errors.push(new e.YAMLSemanticError(u,k))}try{t.version=j(t,u)}catch(k){t.errors.push(k)}g=!0;break;default:if(L){let k=\"YAML only supports %TAG and %YAML directives, and not %\".concat(L);t.warnings.push(new e.YAMLWarning(u,k))}}p&&f.push(p)}if(i&&!g&&(t.version||i.version||t.options.version)===\"1.1\"){let u=p=>{let{handle:L,prefix:k}=p;return{handle:L,prefix:k}};t.tagPrefixes=i.tagPrefixes.map(u),t.version=i.version}t.commentBefore=f.join(`\n`)||null}function m(t){if(t instanceof n.Collection)return!0;throw new Error(\"Expected a YAML collection as document contents\")}var a=class{constructor(t){this.anchors=new T(t.anchorPrefix),this.commentBefore=null,this.comment=null,this.contents=null,this.directivesEndMarker=null,this.errors=[],this.options=t,this.schema=null,this.tagPrefixes=[],this.version=null,this.warnings=[]}add(t){return m(this.contents),this.contents.add(t)}addIn(t,s){m(this.contents),this.contents.addIn(t,s)}delete(t){return m(this.contents),this.contents.delete(t)}deleteIn(t){return n.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):(m(this.contents),this.contents.deleteIn(t))}getDefaults(){return a.defaults[this.version]||a.defaults[this.options.version]||{}}get(t,s){return this.contents instanceof n.Collection?this.contents.get(t,s):void 0}getIn(t,s){return n.isEmptyPath(t)?!s&&this.contents instanceof n.Scalar?this.contents.value:this.contents:this.contents instanceof n.Collection?this.contents.getIn(t,s):void 0}has(t){return this.contents instanceof n.Collection?this.contents.has(t):!1}hasIn(t){return n.isEmptyPath(t)?this.contents!==void 0:this.contents instanceof n.Collection?this.contents.hasIn(t):!1}set(t,s){m(this.contents),this.contents.set(t,s)}setIn(t,s){n.isEmptyPath(t)?this.contents=s:(m(this.contents),this.contents.setIn(t,s))}setSchema(t,s){if(!t&&!s&&this.schema)return;typeof t==\"number\"&&(t=t.toFixed(1)),t===\"1.0\"||t===\"1.1\"||t===\"1.2\"?(this.version?this.version=t:this.options.version=t,delete this.options.schema):t&&typeof t==\"string\"&&(this.options.schema=t),Array.isArray(s)&&(this.options.customTags=s);let i=Object.assign({},this.getDefaults(),this.options);this.schema=new c.Schema(i)}parse(t,s){this.options.keepCstNodes&&(this.cstNode=t),this.options.keepNodeTypes&&(this.type=\"DOCUMENT\");let{directives:i=[],contents:f=[],directivesEndMarker:g,error:u,valueRange:p}=t;if(u&&(u.source||(u.source=this),this.errors.push(u)),K(this,i,s),g&&(this.directivesEndMarker=!0),this.range=p?[p.start,p.end]:null,this.setSchema(),this.anchors._cstAliases=[],q(this,f),this.anchors.resolveNodes(),this.options.prettyErrors){for(let L of this.errors)L instanceof e.YAMLError&&L.makePretty();for(let L of this.warnings)L instanceof e.YAMLError&&L.makePretty()}return this}listNonDefaultTags(){return C(this.contents).filter(t=>t.indexOf(c.Schema.defaultPrefix)!==0)}setTagPrefix(t,s){if(t[0]!==\"!\"||t[t.length-1]!==\"!\")throw new Error(\"Handle must start and end with !\");if(s){let i=this.tagPrefixes.find(f=>f.handle===t);i?i.prefix=s:this.tagPrefixes.push({handle:t,prefix:s})}else this.tagPrefixes=this.tagPrefixes.filter(i=>i.handle!==t)}toJSON(t,s){let{keepBlobsInJSON:i,mapAsMap:f,maxAliasCount:g}=this.options,u=i&&(typeof t!=\"string\"||!(this.contents instanceof n.Scalar)),p={doc:this,indentStep:\" \",keep:u,mapAsMap:u&&!!f,maxAliasCount:g,stringify:M},L=Object.keys(this.anchors.map);L.length>0&&(p.anchors=new Map(L.map(B=>[this.anchors.map[B],{alias:[],aliasCount:0,count:1}])));let k=n.toJSON(this.contents,t,p);if(typeof s==\"function\"&&p.anchors)for(let{count:B,res:$}of p.anchors.values())s($,B);return k}toString(){if(this.errors.length>0)throw new Error(\"Document with errors cannot be stringified\");let t=this.options.indent;if(!Number.isInteger(t)||t<=0){let L=JSON.stringify(t);throw new Error('\"indent\" option must be a positive integer, not '.concat(L))}this.setSchema();let s=[],i=!1;if(this.version){let L=\"%YAML 1.2\";this.schema.name===\"yaml-1.1\"&&(this.version===\"1.0\"?L=\"%YAML:1.0\":this.version===\"1.1\"&&(L=\"%YAML 1.1\")),s.push(L),i=!0}let f=this.listNonDefaultTags();this.tagPrefixes.forEach(L=>{let{handle:k,prefix:B}=L;f.some($=>$.indexOf(B)===0)&&(s.push(\"%TAG \".concat(k,\" \").concat(B)),i=!0)}),(i||this.directivesEndMarker)&&s.push(\"---\"),this.commentBefore&&((i||!this.directivesEndMarker)&&s.unshift(\"\"),s.unshift(this.commentBefore.replace(/^/gm,\"#\")));let g={anchors:Object.create(null),doc:this,indent:\"\",indentStep:\" \".repeat(t),stringify:M},u=!1,p=null;if(this.contents){this.contents instanceof n.Node&&(this.contents.spaceBefore&&(i||this.directivesEndMarker)&&s.push(\"\"),this.contents.commentBefore&&s.push(this.contents.commentBefore.replace(/^/gm,\"#\")),g.forceBlockIndent=!!this.comment,p=this.contents.comment);let L=p?null:()=>u=!0,k=M(this.contents,g,()=>p=null,L);s.push(n.addComment(k,\"\",p))}else this.contents!==void 0&&s.push(M(this.contents,g));return this.comment&&((!u||p)&&s[s.length-1]!==\"\"&&s.push(\"\"),s.push(this.comment.replace(/^/gm,\"#\"))),s.join(`\n`)+`\n`}};e._defineProperty(a,\"defaults\",y),r.Document=a,r.defaultOptions=h,r.scalarOptions=d}}),Zn=F({\"node_modules/yaml/dist/index.js\"(r){\"use strict\";D();var e=Gn(),n=zn(),c=ot(),h=Me(),d=it();ke();function y(C){let q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,R=arguments.length>2?arguments[2]:void 0;R===void 0&&typeof q==\"string\"&&(R=q,q=!0);let j=Object.assign({},n.Document.defaults[n.defaultOptions.version],n.defaultOptions);return new c.Schema(j).createNode(C,q,R)}var E=class extends n.Document{constructor(C){super(Object.assign({},n.defaultOptions,C))}};function I(C,q){let R=[],j;for(let K of e.parse(C)){let m=new E(q);m.parse(K,j),R.push(m),j=m}return R}function S(C,q){let R=e.parse(C),j=new E(q).parse(R[0]);if(R.length>1){let K=\"Source contains multiple documents; please use YAML.parseAllDocuments()\";j.errors.unshift(new h.YAMLSemanticError(R[1],K))}return j}function M(C,q){let R=S(C,q);if(R.warnings.forEach(j=>d.warn(j)),R.errors.length>0)throw R.errors[0];return R.toJSON()}function T(C,q){let R=new E(q);return R.contents=C,String(R)}var P={createNode:y,defaultOptions:n.defaultOptions,Document:E,parse:M,parseAllDocuments:I,parseCST:e.parse,parseDocument:S,scalarOptions:n.scalarOptions,stringify:T};r.YAML=P}}),Je=F({\"node_modules/yaml/index.js\"(r,e){D(),e.exports=Zn().YAML}}),Xn=F({\"node_modules/yaml/dist/util.js\"(r){\"use strict\";D();var e=ke(),n=Me();r.findPair=e.findPair,r.parseMap=e.resolveMap,r.parseSeq=e.resolveSeq,r.stringifyNumber=e.stringifyNumber,r.stringifyString=e.stringifyString,r.toJSON=e.toJSON,r.Type=n.Type,r.YAMLError=n.YAMLError,r.YAMLReferenceError=n.YAMLReferenceError,r.YAMLSemanticError=n.YAMLSemanticError,r.YAMLSyntaxError=n.YAMLSyntaxError,r.YAMLWarning=n.YAMLWarning}}),er=F({\"node_modules/yaml/util.js\"(r){D();var e=Xn();r.findPair=e.findPair,r.toJSON=e.toJSON,r.parseMap=e.parseMap,r.parseSeq=e.parseSeq,r.stringifyNumber=e.stringifyNumber,r.stringifyString=e.stringifyString,r.Type=e.Type,r.YAMLError=e.YAMLError,r.YAMLReferenceError=e.YAMLReferenceError,r.YAMLSemanticError=e.YAMLSemanticError,r.YAMLSyntaxError=e.YAMLSyntaxError,r.YAMLWarning=e.YAMLWarning}}),tr=F({\"node_modules/yaml-unist-parser/lib/yaml.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=Je();r.Document=e.Document;var n=Je();r.parseCST=n.parseCST;var c=er();r.YAMLError=c.YAMLError,r.YAMLSyntaxError=c.YAMLSyntaxError,r.YAMLSemanticError=c.YAMLSemanticError}}),nr=F({\"node_modules/yaml-unist-parser/lib/parse.js\"(r){\"use strict\";D(),r.__esModule=!0;var e=xt(),n=Gt(),c=zt(),h=Zt(),d=Fn(),y=ze(),E=Vn(),I=Un(),S=Kn(),M=$n(),T=Jn(),P=Hn(),C=tr();function q(R){var j=C.parseCST(R);M.addOrigRange(j);for(var K=j.map(function(k){return new C.Document({merge:!1,keepCstNodes:!0}).parse(k)}),m=new e.default(R),a=[],t={text:R,locator:m,comments:a,transformOffset:function(k){return I.transformOffset(k,t)},transformRange:function(k){return S.transformRange(k,t)},transformNode:function(k){return d.transformNode(k,t)},transformContent:function(k){return y.transformContent(k,t)}},s=0,i=K;s 1) {\n for (let i = 0; i < needleLen - 1; ++i)\n this._occ[needle[i]] = needleLen - 1 - i;\n }\n }\n\n reset() {\n this.matches = 0;\n this._lookbehindSize = 0;\n this._bufPos = 0;\n }\n\n push(chunk, pos) {\n let result;\n if (!Buffer.isBuffer(chunk))\n chunk = Buffer.from(chunk, 'latin1');\n const chunkLen = chunk.length;\n this._bufPos = pos || 0;\n while (result !== chunkLen && this.matches < this.maxMatches)\n result = feed(this, chunk);\n return result;\n }\n\n destroy() {\n const lbSize = this._lookbehindSize;\n if (lbSize)\n this._cb(false, this._lookbehind, 0, lbSize, false);\n this.reset();\n }\n}\n\nfunction feed(self, data) {\n const len = data.length;\n const needle = self._needle;\n const needleLen = needle.length;\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehindSize - 2]\n let pos = -self._lookbehindSize;\n const lastNeedleCharPos = needleLen - 1;\n const lastNeedleChar = needle[lastNeedleCharPos];\n const end = len - needleLen;\n const occ = self._occ;\n const lookbehind = self._lookbehind;\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= end) {\n const nextPos = pos + lastNeedleCharPos;\n const ch = (nextPos < 0\n ? lookbehind[self._lookbehindSize + nextPos]\n : data[nextPos]);\n\n if (ch === lastNeedleChar\n && matchNeedle(self, data, pos, lastNeedleCharPos)) {\n self._lookbehindSize = 0;\n ++self.matches;\n if (pos > -self._lookbehindSize)\n self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // No match.\n\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !matchNeedle(self, data, pos, len - pos))\n ++pos;\n\n if (pos < 0) {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = self._lookbehindSize + pos;\n\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n self._cb(false, lookbehind, 0, bytesToCutOff, false);\n }\n\n self._lookbehindSize -= bytesToCutOff;\n lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);\n lookbehind.set(data, self._lookbehindSize);\n self._lookbehindSize += len;\n\n self._bufPos = len;\n return len;\n }\n\n // Discard lookbehind buffer.\n self._cb(false, lookbehind, 0, self._lookbehindSize, false);\n self._lookbehindSize = 0;\n }\n\n pos += self._bufPos;\n\n const firstNeedleChar = needle[0];\n\n // Lookbehind buffer is now empty. Perform Boyer-Moore-Horspool\n // search with optimized character lookup code that only considers\n // the current round's haystack data.\n while (pos <= end) {\n const ch = data[pos + lastNeedleCharPos];\n\n if (ch === lastNeedleChar\n && data[pos] === firstNeedleChar\n && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {\n ++self.matches;\n if (pos > 0)\n self._cb(true, data, self._bufPos, pos, true);\n else\n self._cb(true, undefined, 0, 0, true);\n\n return (self._bufPos = pos + needleLen);\n }\n\n pos += occ[ch];\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (pos < len) {\n if (data[pos] !== firstNeedleChar\n || !memcmp(data, pos, needle, 0, len - pos)) {\n ++pos;\n continue;\n }\n data.copy(lookbehind, 0, pos, len);\n self._lookbehindSize = len - pos;\n break;\n }\n\n // Everything until `pos` is guaranteed not to contain needle data.\n if (pos > 0)\n self._cb(false, data, self._bufPos, pos < len ? pos : len, true);\n\n self._bufPos = len;\n return len;\n}\n\nfunction matchNeedle(self, data, pos, len) {\n const lb = self._lookbehind;\n const lbSize = self._lookbehindSize;\n const needle = self._needle;\n\n for (let i = 0; i < len; ++i, ++pos) {\n const ch = (pos < 0 ? lb[lbSize + pos] : data[pos]);\n if (ch !== needle[i])\n return false;\n }\n return true;\n}\n\nmodule.exports = SBMH;\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nconst nodeVersion = process.versions.node.split('.')\nconst nodeMajor = Number(nodeVersion[0])\nconst nodeMinor = Number(nodeVersion[1])\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (nodeMajor > 16 || (nodeMajor === 16 && nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n const dispatcher = (arguments[1] && arguments[1].dispatcher) || getGlobalDispatcher()\n try {\n return await fetchImpl.apply(dispatcher, arguments)\n } catch (err) {\n Error.captureStackTrace(err, this)\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n","'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n","const { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n if ('addEventListener' in self[kSignal]) {\n self[kSignal].addEventListener('abort', self[kListener])\n } else {\n self[kSignal].addListener('abort', self[kListener])\n }\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n","'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n","'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError,\n ResponseStatusCodeError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = util.parseHeaders(rawHeaders)\n const contentType = parsedHeaders['content-type']\n const body = new Readable(resume, abort, contentType)\n\n this.callback = null\n this.res = body\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n return\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n if (statusCode === 204 || !contentType) {\n body.dump()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = await body.json()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = await body.text()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n body.dump()\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\n","'use strict'\n\nconst { finished } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { factory, opaque, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n const res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n res.on('drain', resume)\n // TODO: Avoid finished. It registers an unecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res.write(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n","'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n","// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nmodule.exports = class BodyReadable extends Readable {\n constructor (resume, abort, contentType = '') {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark: 64 * 1024 // Same as nodejs fs streams.\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n async dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n try {\n for await (const chunk of this) {\n limit -= Buffer.byteLength(chunk)\n if (limit < 0) {\n return\n }\n }\n } catch {\n // Do nothing...\n }\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n","'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n","'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst util = require('./core/util')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors\n} = require('./core/symbols')\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\nclass Client extends DispatcherBase {\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout,\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || 16384\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 30e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 30e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = new Request(origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n return new Promise((resolve) => {\n if (!this[kSize]) {\n this.destroy(resolve)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp.wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd.wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp.wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onStatus(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onHeaderField(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onHeaderValue(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr\n const end = start + len\n return currentParser.onBody(currentBufferRef.slice(start, end)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\n .catch(() => {\n })\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n clearTimeout(this.timeout)\n if (value) {\n this.timeout = setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message = Buffer.from(llhttp.memory.buffer, ptr, len).toString()\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n finish () {\n try {\n try {\n currentParser = this\n } finally {\n currentParser = null\n }\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n util.destroy(this.socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = shouldKeepAlive\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n let pause\n try {\n pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n\n if (request.method === 'HEAD') {\n assert(socket[kReset])\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n this.bytesRead += buf.length\n\n try {\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n } catch (err) {\n util.destroy(socket, err)\n return -1\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n try {\n request.onComplete(headers)\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n parser.readMore()\n}\n\nfunction onSocketError (err) {\n const { [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.finish()\n return\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser } = this\n\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.finish()\n return\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client } = this\n\n this[kParser].destroy()\n this[kParser] = null\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substr(1, idx - 1)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n client[kSocket] = socket\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kError] = null\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n socket[kClient] = client\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client.closed && !client[kSize]) {\n client.destroy()\n return\n }\n\n const socket = client[kSocket]\n\n if (socket) {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket) {\n connect(client)\n continue\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (util.isStream(request.body) && util.bodyLength(request.body) === 0) {\n request.body\n .on('data', /* istanbul ignore next */ function () {\n /* istanbul ignore next */\n assert(false)\n })\n .on('error', function (err) {\n errorRequest(client, request, err)\n })\n .on('end', function () {\n util.destroy(this)\n })\n\n request.body = null\n }\n\n if (client[kRunning] > 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\nfunction write (client, request) {\n const { body, method, path, host, upgrade, headers, blocking } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n if (request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'ascii')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'ascii')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'ascii')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeStream ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n try {\n assert(!finished)\n\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n assert(!finished)\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n onFinished(new RequestAbortedError())\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'ascii')\n socket.write(buffer)\n socket.uncork()\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(socket, err)\n }\n}\n\nasync function writeIterable ({ body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'ascii')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'ascii')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'ascii')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'ascii')\n } else {\n socket.write(`${header}\\r\\n`, 'ascii')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'ascii')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n","'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n}\n\nmodule.exports = function () {\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n","'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nfunction buildConnector ({ maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new Map()\n timeout = timeout == null ? 10e3 : timeout\n maxCachedSessions = maxCachedSessions == null ? 100 : maxCachedSessions\n\n return function connect ({ hostname, host, protocol, port, servername, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // cache is disabled\n if (maxCachedSessions === 0) {\n return\n }\n\n if (sessionCache.size >= maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = sessionCache.keys().next()\n sessionCache.delete(oldestKey)\n }\n\n sessionCache.set(sessionKey, session)\n })\n .on('error', function (err) {\n if (sessionKey && err.code !== 'UND_ERR_INFO') {\n // TODO (fix): Only delete for session related errors.\n sessionCache.delete(sessionKey)\n }\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n port: port || 80,\n host: hostname\n })\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n","'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError\n}\n","'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\nconst nodeVersion = process.versions.node.split('.')\nconst nodeMajor = Number(nodeVersion[0])\nconst nodeMinor = Number(nodeVersion[1])\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n throwOnError\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (nodeMajor < 16 || (nodeMajor === 16 && nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.onError(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onConnect(abort)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onData(chunk)\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n return this[kHandler].onComplete(trailers)\n }\n\n onError (error) {\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n return this[kHandler].onError(error)\n }\n\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n}\n\nfunction processHeader (request, key, val) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type' &&\n headerCharRegex.exec(val) === null\n ) {\n request.contentType = val\n request.headers += `${key}: ${val}\\r\\n`\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n throw new InvalidArgumentError('invalid connection header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else {\n request.headers += `${key}: ${val}\\r\\n`\n }\n}\n\nmodule.exports = Request\n","module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol('destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelinig'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors')\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj.pipe === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('invalid port')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('invalid path')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('invalid pathname')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('invalid hostname')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('invalid origin')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('invalid protocol')\n }\n\n if (!(url instanceof URL)) {\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substr(1, idx - 1)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substr(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (!isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\nfunction parseHeaders (headers, obj = {}) {\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1]\n } else {\n obj[key] = headers[i + 1].toString()\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString())\n }\n }\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n return headers.map(header => header.toString())\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n // https://github.com/whatwg/streams/pull/1083\n return ReadableStream.from(iterable)\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\nfunction isFormDataLike (chunk) {\n return chunk && chunk.constructor && chunk.constructor.name === 'FormData'\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString: nodeUtil.toUSVString || ((val) => `${val}`),\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL\n}\n","'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = []\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n","'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n","'use strict'\n\nconst Busboy = require('busboy')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString, isBlobLike } = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException } = require('./constants')\nconst { Blob } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File } = require('./file')\n\nlet ReadableStream\n\nasync function * blobGen (blob) {\n yield * blob.stream()\n}\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be object if object is a ReadableStream object.\n // Otherwise, let stream be a new ReadableStream, and set up stream.\n let stream = null\n\n // 2. Let action be null.\n let action = null\n\n // 3. Let source be null.\n let source = null\n\n // 4. Let length be null.\n let length = null\n\n // 5. Let Content-Type be null.\n let contentType = null\n\n // 6. Switch on object:\n if (object == null) {\n // Note: The IDL processor cannot handle this situation. See\n // https://crbug.com/335871.\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list.\n source = object.toString()\n\n // Set Content-Type to `application/x-www-form-urlencoded;charset=UTF-8`.\n contentType = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = '----formdata-undici-' + Math.random()\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy Wärting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object’s entry list and UTF-8.\n action = async function * (object) {\n const enc = new TextEncoder()\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n yield enc.encode(\n prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`\n )\n } else {\n yield enc.encode(\n prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') +\n '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`\n )\n\n yield * blobGen(value)\n\n yield enc.encode('\\r\\n')\n }\n }\n\n yield enc.encode(`--${boundary}--`)\n }\n\n // Set source to object.\n source = object\n\n // Set length to unclear, see html/6424 for improving this.\n // TODO\n\n // Set Content-Type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n contentType = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set action to this step: read object.\n action = blobGen\n\n // Set source to object.\n source = object\n\n // Set length to object’s size.\n length = object.size\n\n // If object’s type attribute is not the empty byte sequence, set\n // Content-Type to its value.\n if (object.type) {\n contentType = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n } else {\n // TODO: byte sequence?\n // TODO: scalar value string?\n // TODO: else?\n source = toUSVString(object)\n contentType = 'text/plain;charset=UTF-8'\n }\n\n // 7. If source is a byte sequence, then set action to a\n // step that returns source and length to source’s length.\n // TODO: What is a \"byte sequence?\"\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 8. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n })\n } else if (!stream) {\n // TODO: Spec doesn't say anything about this?\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? new TextEncoder().encode(source) : source\n )\n queueMicrotask(() => {\n controller.close()\n })\n }\n })\n }\n\n // 9. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 10. Return body and Content-Type.\n return [body, contentType]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let « out1, out2 » be the result of teeing body’s stream.\n const [out1, out2] = body.stream.tee()\n\n // 2. Set body’s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: out2,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n async blob () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n const chunks = []\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n // Assemble one final large blob with Uint8Array's can exhaust memory.\n // That's why we create create multiple blob's and using references\n chunks.push(new Blob([chunk]))\n }\n\n return new Blob(chunks, { type: this.headers.get('Content-Type') || '' })\n },\n\n async arrayBuffer () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n const contentLength = this.headers.get('content-length')\n const encoded = this.headers.has('content-encoding')\n\n // if we have content length and no encoding, then we can\n // pre allocate the buffer and just read the data into it\n if (!encoded && contentLength) {\n const buffer = new Uint8Array(contentLength)\n let offset = 0\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n buffer.set(chunk, offset)\n offset += chunk.length\n }\n\n return buffer.buffer\n }\n\n // if we don't have content length, then we have to allocate 2x the\n // size of the body, once for consumed data, and once for the final buffer\n\n // This could be optimized by using growable ArrayBuffer, but it's not\n // implemented yet. https://github.com/tc39/proposal-resizablearraybuffer\n\n const chunks = []\n let size = 0\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n chunks.push(chunk)\n size += chunk.byteLength\n }\n\n const buffer = new Uint8Array(size)\n let offset = 0\n\n for (const chunk of chunks) {\n buffer.set(chunk, offset)\n offset += chunk.byteLength\n }\n\n return buffer.buffer\n },\n\n async text () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n let result = ''\n const textDecoder = new TextDecoder()\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n\n result += textDecoder.decode(chunk, { stream: true })\n }\n\n // flush\n result += textDecoder.decode()\n\n return result\n },\n\n async json () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n return JSON.parse(await this.text())\n },\n\n async formData () {\n if (!(this instanceof instance)) {\n throw new TypeError('Illegal invocation')\n }\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType’s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = Busboy({ headers })\n } catch (err) {\n // Error due to headers:\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, info) => {\n const { filename, encoding, mimeType } = info\n const chunks = []\n\n if (encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(err))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType’s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += textDecoder.decode(chunk, { stream: true })\n }\n text += textDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nconst properties = {\n body: {\n enumerable: true,\n get () {\n if (!this || !this[kState]) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].body ? this[kState].body.stream : null\n }\n },\n bodyUsed: {\n enumerable: true,\n get () {\n if (!this || !this[kState]) {\n throw new TypeError('Illegal invocation')\n }\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n }\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n Object.defineProperties(prototype.prototype, properties)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n","'use strict'\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\n\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nmodule.exports = {\n DOMException,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods\n}\n","const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isValidHTTPToken } = require('./util')\n\nconst encoder = new TextEncoder()\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL’s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePoints(\n (char) => char !== ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Note: This will only remove U+0020 SPACE code\n // points, if any.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = mimeType.replace(/^(\\u0020)+|(\\u0020)+$/g, '')\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n /** @type {Uint8Array|string} */\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = decodeURIComponent(new TextDecoder('utf-8').decode(body))\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n // 1. Let output be url’s scheme and U+003A (:) concatenated.\n let output = url.protocol\n\n // 2. If url’s host is non-null:\n if (url.host.length > 0) {\n // 1. Append \"//\" to output.\n output += '//'\n\n // 2. If url includes credentials, then:\n if (url.username.length > 0 || url.password.length > 0) {\n // 1. Append url’s username to output.\n output += url.username\n\n // 2. If url’s password is not the empty string, then append U+003A (:),\n // followed by url’s password, to output.\n if (url.password.length > 0) {\n output += ':' + url.password\n }\n\n // 3. Append U+0040 (@) to output.\n output += '@'\n }\n\n // 3. Append url’s host, serialized, to output.\n output += decodeURIComponent(url.host)\n\n // 4. If url’s port is non-null, append U+003A (:) followed by url’s port,\n // serialized, to output.\n if (url.port.length > 0) {\n output += ':' + url.port\n }\n }\n\n // 3. If url’s host is null, url does not have an opaque path,\n // url’s path’s size is greater than 1, and url’s path[0]\n // is the empty string, then append U+002F (/) followed by\n // U+002E (.) to output.\n // Note: This prevents web+demo:/.//not-a-host/ or web+demo:/path/..//not-a-host/,\n // when parsed and then serialized, from ending up as web+demo://not-a-host/\n // (they end up as web+demo:/.//not-a-host/).\n // Undici implementation note: url's path[0] can never be an\n // empty string, so we have to slightly alter what the spec says.\n if (\n url.host.length === 0 &&\n url.pathname.length > 1 &&\n url.href.slice(url.protocol.length + 1)[0] === '.'\n ) {\n output += '/.'\n }\n\n // 4. Append the result of URL path serializing url to output.\n output += url.pathname\n\n // 5. If url’s query is non-null, append U+003F (?),\n // followed by url’s query, to output.\n if (url.search.length > 0) {\n output += url.search\n }\n\n // 6. If exclude fragment is false and url’s fragment is non-null,\n // then append U+0023 (#), followed by url’s fragment, to output.\n if (excludeFragment === false && url.hash.length > 0) {\n output += url.hash\n }\n\n // 7. Return output.\n return output\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn’t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = input.trim()\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePoints(\n (char) => char !== '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !/^[!#$%&'*+-.^_|~A-z0-9]+$/.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePoints(\n (char) => char !== ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = subtype.trim()\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !/^[!#$%&'*+-.^_|~A-z0-9]+$/.test(subtype)) {\n return 'failure'\n }\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: type.toLowerCase(),\n subtype: subtype.toLowerCase(),\n /** @type {Map} */\n parameters: new Map()\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n (char) => /(\\u000A|\\u000D|\\u0009|\\u0020)/.test(char), // eslint-disable-line\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePoints(\n (char) => char !== ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePoints(\n (char) => char !== ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n // Note: it says \"trailing\" whitespace; leading is fine.\n parameterValue = parameterValue.trimEnd()\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType’s parameters[parameterName] does not exist\n // then set mimeType’s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n /^[!#$%&'*+-.^_|~A-z0-9]+$/.test(parameterName) &&\n // https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n !/^(\\u0009|\\x{0020}-\\x{007E}|\\x{0080}-\\x{00FF})+$/.test(parameterValue) && // eslint-disable-line\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data’s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data’s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { type, subtype, parameters } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType’s\n // type, U+002F (/), and mimeType’s subtype.\n let serialization = `${type}/${subtype}`\n\n // 2. For each name → value of mimeType’s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!isValidHTTPToken(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n","'use strict'\n\nconst { Blob } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required')\n }\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n // Note: Blob handles both of these steps for us\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: options.type })\n this[kState] = {\n name: n,\n lastModified: d\n }\n }\n\n get name () {\n if (!(this instanceof File)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].name\n }\n\n get lastModified () {\n if (!(this instanceof File)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.size\n }\n\n get type () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].blobLike.type\n }\n\n get name () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].name\n }\n\n get lastModified () {\n if (!(this instanceof FileLike)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n return webidl.converters.BufferSource(V, opts)\n } else {\n return webidl.converters.USVString(V, opts)\n }\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(new TextEncoder().encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform’s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n","'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob } = require('buffer')\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n static name = 'FormData'\n\n constructor (form) {\n if (arguments.length > 0 && form != null) {\n webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['null']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'append' on 'FormData': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this’s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'delete' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this’s entry list.\n const next = []\n for (const entry of this[kState]) {\n if (entry.name !== name) {\n next.push(entry)\n }\n }\n\n this[kState] = next\n }\n\n get (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'get' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this’s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'getAll' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this’s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'has' on 'FormData': 1 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this’s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'set' on 'FormData': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this’s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this’s entry list.\n this[kState].push(entry)\n }\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n entries () {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(\n makeIterable(this[kState], 'entries'),\n 'FormData'\n )\n }\n\n keys () {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(\n makeIterable(this[kState], 'keys'),\n 'FormData'\n )\n }\n\n values () {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(\n makeIterable(this[kState], 'values'),\n 'FormData'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n if (!(this instanceof FormData)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'forEach' on 'FormData': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n value = value instanceof File\n ? new File([value], filename, { type: value.type })\n : new FileLike(value, filename, { type: value.type })\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nfunction * makeIterable (entries, type) {\n // The value pairs to iterate over are this’s entry list’s entries\n // with the key being the name and the value being the value.\n for (const { name, value } of entries) {\n if (type === 'entries') {\n yield [name, value]\n } else if (type === 'values') {\n yield value\n } else {\n yield name\n }\n }\n}\n\nmodule.exports = { FormData }\n","'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (\n newOrigin !== undefined &&\n typeof newOrigin !== 'string' &&\n !(newOrigin instanceof URL)\n ) {\n throw new Error('Invalid base url')\n }\n\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst { webidl } = require('./webidl')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n return potentialValue.replace(\n /^[\\r\\n\\t ]+|[\\r\\n\\t ]+$/g,\n ''\n )\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (const header of object) {\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header’s first item, header’s second item) to headers.\n headers.append(header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key → value in object,\n // append (key, value) to headers\n for (const [key, value] of Object.entries(object)) {\n headers.append(key, value)\n }\n } else {\n webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\nclass HeadersList {\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header’s name.\n name = name.toLowerCase()\n const exists = this[kHeadersMap].get(name)\n\n // 2. Append (name, value) to list.\n if (exists) {\n this[kHeadersMap].set(name, `${exists}, ${value}`)\n } else {\n this[kHeadersMap].set(name, `${value}`)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n name = name.toLowerCase()\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n return this[kHeadersMap].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n return this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n name = name.toLowerCase()\n\n // 1. If list does not contain name, then return null.\n if (!this.contains(name)) {\n return null\n }\n\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return this[kHeadersMap].get(name) ?? null\n }\n\n has (name) {\n name = name.toLowerCase()\n return this[kHeadersMap].has(name)\n }\n\n keys () {\n return this[kHeadersMap].keys()\n }\n\n values () {\n return this[kHeadersMap].values()\n }\n\n entries () {\n return this[kHeadersMap].entries()\n }\n\n [Symbol.iterator] () {\n return this[kHeadersMap][Symbol.iterator]()\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this’s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'append' on 'Headers': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers’s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers’s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers’s header list.\n // 8. If headers’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n return this[kHeadersList].append(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'delete' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this’s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this’s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this’s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this’s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n return this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'get' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this’s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'has' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this’s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 2) {\n throw new TypeError(\n `Failed to execute 'set' on 'Headers': 2 arguments required, but only ${arguments.length} present.`\n )\n }\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this’s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n return this[kHeadersList].set(name, value)\n }\n\n get [kHeadersSortedMap] () {\n if (!this[kHeadersList][kHeadersSortedMap]) {\n this[kHeadersList][kHeadersSortedMap] = new Map([...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1))\n }\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n keys () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(this[kHeadersSortedMap].keys(), 'Headers')\n }\n\n values () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(this[kHeadersSortedMap].values(), 'Headers')\n }\n\n entries () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return makeIterator(this[kHeadersSortedMap].entries(), 'Headers')\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'forEach' on 'Headers': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n if (!(this instanceof Headers)) {\n throw new TypeError('Illegal invocation')\n }\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody, extractBody } = require('./body')\nconst {\n redirectStatus,\n nullBodyStatus,\n safeMethods,\n requestBodyHeader,\n subresource,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { isErrored, isReadable } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream\n\nconst nodeVersion = process.versions.node.split('.')\nconst nodeMajor = Number(nodeVersion[0])\nconst nodeMinor = Number(nodeVersion[1])\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n abort () {\n if (this.state !== 'ongoing') {\n return\n }\n\n const reason = new DOMException('The operation was aborted.', 'AbortError')\n\n this.state = 'aborted'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nasync function fetch (input, init = {}) {\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'fetch' on 'Window': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject’s request.\n const request = requestObject[kState]\n\n // 4. If requestObject’s signal’s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort fetch with p, request, and null.\n abortFetch(p, request, null)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request’s client’s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request’s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this’s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject’s signal:\n requestObject.signal.addEventListener(\n 'abort',\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Abort fetch with p, request, and responseObject.\n abortFetch(p, request, responseObject)\n\n // 3. If controller is not null, then abort controller.\n if (controller != null) {\n controller.abort()\n }\n },\n { once: true }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return\n }\n\n // 2. If response’s aborted flag is set, then abort fetch with p,\n // request, and responseObject, and terminate these substeps.\n if (response.aborted) {\n abortFetch(p, request, responseObject)\n return\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: this // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response’s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response’s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response’s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response’s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return.\n if (!/^https?:/.test(originalURL.protocol)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response’s timing allow passed flag is not set, then:\n if (!timingInfo.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo’s end time to the coarsened shared current time\n // given global’s relevant settings object’s cross-origin isolated\n // capability.\n // TODO: given global’s relevant settings object’s cross-origin isolated\n // capability?\n response.timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor >= 18 && nodeMinor >= 2) {\n performance.markResourceTiming(timingInfo, originalURL, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject) {\n // 1. Let error be an \"AbortError\" DOMException.\n const error = new DOMException('The operation was aborted.', 'AbortError')\n\n // 2. Reject promise with error.\n p.reject(error)\n\n // 3. If request’s body is not null and is readable, then cancel request’s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 4. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 5. Let response be responseObject’s response.\n const response = responseObject[kState]\n\n // 6. If response’s body is not null and is readable, then error response’s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request’s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request’s client’s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request’s body is a byte sequence, then set request’s body to the\n // first return value of safely extracting request’s body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request’s window is \"client\", then set request’s window to request’s\n // client, if request’s client’s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request’s origin is \"client\", then set request’s origin to request’s\n // client’s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request’s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request’s client is non-null, then set request’s policy\n // container to a clone of request’s client’s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request’s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request’s header list does not contain `Accept`, then:\n if (!request.headersList.has('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request’s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request’s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request’s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request’s header list.\n if (!request.headersList.has('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request’s priority is null, then use request’s initiator and\n // destination appropriately in setting request’s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresource.includes(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request’s local-URLs-only flag is set and request’s current URL is\n // not local, then set response to a network error.\n if (\n request.localURLsOnly &&\n !/^(about|blob|data):/.test(requestCurrentURL(request).protocol)\n ) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request’s referrer policy is the empty string, then set request’s\n // referrer policy to request’s policy container’s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request’s referrer is not \"no-referrer\", then set request’s\n // referrer to the result of invoking determine request’s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request’s current URL’s scheme to \"https\" if all of the following\n // conditions are true:\n // - request’s current URL’s scheme is \"http\"\n // - request’s current URL’s host is a domain\n // - Matching request’s current URL’s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request’s current URL’s origin is same origin with request’s origin,\n // and request’s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request’s current URL’s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request’s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request’s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request’s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request’s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request’s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s current URL’s scheme is not an HTTP(S) scheme\n if (!/^https?:/.test(requestCurrentURL(request).protocol)) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request’s use-CORS-preflight flag is set\n // - request’s unsafe-request flag is set and either request’s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request’s header list is not empty\n // 1. Set request’s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request’s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request’s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response’s header list.\n // TODO\n // 2. If request’s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response’s CORS-exposed header-name list to\n // all unique header names in response’s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response’s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response’s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse’s URL list is empty, then set it to a clone of\n // request’s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request’s timing allow failed flag is unset, then set\n // internalResponse’s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response’s type is \"opaque\", internalResponse’s status is 206,\n // internalResponse’s range-requested flag is set, and request’s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.has('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request’s method is\n // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status,\n // set internalResponse’s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request’s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request’s response tainting is \"opaque\", or response’s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request’s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response’s body to the first return value of safely\n // extracting bytes.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response’s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nasync function schemeFetch (fetchParams) {\n // let request be fetchParams’s request\n const { request } = fetchParams\n\n const {\n protocol: scheme,\n pathname: path\n } = requestCurrentURL(request)\n\n // switch on request’s current URL’s scheme, and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request’s current URL’s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) »,\n // and body is the empty byte sequence.\n if (path === 'blank') {\n const resp = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', 'text/html;charset=utf-8']\n ]\n })\n\n resp.urlList = [new URL('about:blank')]\n return resp\n }\n\n // Otherwise, return a network error.\n return makeNetworkError('invalid path called')\n }\n case 'blob:': {\n resolveObjectURL = resolveObjectURL || require('buffer').resolveObjectURL\n\n // 1. Run these steps, but abort when the ongoing fetch is terminated:\n // 1. Let blob be request’s current URL’s blob URL entry’s object.\n // https://w3c.github.io/FileAPI/#blob-url-entry\n // P.S. Thank God this method is available in node.\n const currentURL = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (currentURL.search.length !== 0) {\n return makeNetworkError('NetworkError when attempting to fetch resource.')\n }\n\n const blob = resolveObjectURL(currentURL.toString())\n\n // 2. If request’s method is not `GET` or blob is not a Blob object, then return a network error. [FILEAPI]\n if (request.method !== 'GET' || !isBlobLike(blob)) {\n return makeNetworkError('invalid method')\n }\n\n // 3. Let response be a new response whose status message is `OK`.\n const response = makeResponse({ statusText: 'OK', urlList: [currentURL] })\n\n // 4. Append (`Content-Length`, blob’s size attribute value) to response’s header list.\n response.headersList.set('content-length', `${blob.size}`)\n\n // 5. Append (`Content-Type`, blob’s type attribute value) to response’s header list.\n response.headersList.set('content-type', blob.type)\n\n // 6. Set response’s body to the result of performing the read operation on blob.\n // TODO (fix): This needs to read?\n response.body = extractBody(blob)[0]\n\n // 7. Return response.\n return response\n\n // 2. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request’s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return makeNetworkError('failed to fetch the data URL')\n }\n\n // 3. Let mimeType be dataURLStruct’s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is « (`Content-Type`, mimeType) »,\n // and body is dataURLStruct’s body.\n return makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', mimeType]\n ],\n body: extractBody(dataURLStruct.body)[0]\n })\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return makeNetworkError('not implemented... yet...')\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return await httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return makeNetworkError('unknown scheme')\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams’s process response done is not null, then queue a fetch\n // task to run fetchParams’s process response done given response, with\n // fetchParams’s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nasync function fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ».\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response’s timing info to the result of creating an opaque timing\n // info for fetchParams’s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // If fetchParams’s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams’s process response\n // end-of-body given response with fetchParams’s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams’s process response is non-null, then queue a fetch task\n // to run fetchParams’s process response given response, with fetchParams’s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response’s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n })\n\n // 4. Set response’s body to the result of piping response’s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams’s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams’s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams’s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response’s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams’s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response’s body given processBody, processBodyError,\n // and fetchParams’s task destination.\n await fullyReadBody(response.body, processBody, processBodyError)\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request’s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request’s redirect mode is \"follow\", then set request’s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request’s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request’s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request’s response tainting or response’s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request’s origin, request’s client, request’s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse’s status is a redirect status, then:\n if (redirectStatus.includes(actualResponse.status)) {\n // 1. If actualResponse’s status is not 303, request’s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request’s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nasync function httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response’s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse’s location URL given request’s current\n // URL’s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return makeNetworkError(err)\n }\n\n // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!/^https?:/.test(locationURL.protocol)) {\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // 7. If request’s redirect count is twenty, return a network error.\n if (request.redirectCount === 20) {\n return makeNetworkError('redirect count exceeded')\n }\n\n // 8. Increase request’s redirect count by one.\n request.redirectCount += 1\n\n // 9. If request’s mode is \"cors\", locationURL includes credentials, and\n // request’s origin is not same origin with locationURL’s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return makeNetworkError('cross origin not allowed for request mode \"cors\"')\n }\n\n // 10. If request’s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n )\n }\n\n // 11. If actualResponse’s status is not 303, request’s body is non-null,\n // and request’s body’s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return makeNetworkError()\n }\n\n // 12. If one of the following is true\n // - actualResponse’s status is 301 or 302 and request’s method is `POST`\n // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !['GET', 'HEAD'].includes(request.method))\n ) {\n // then:\n // 1. Set request’s method to `GET` and request’s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request’s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request’s body is non-null, then set request’s body to the first return\n // value of safely extracting request’s body’s source.\n if (request.body != null) {\n assert(request.body.source)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 14. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 15. Set timingInfo’s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams’s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 16. If timingInfo’s redirect start time is 0, then set timingInfo’s\n // redirect start time to timingInfo’s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 17. Append locationURL to request’s URL list.\n request.urlList.push(locationURL)\n\n // 18. Invoke set request’s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 19. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request’s window is \"no-window\" and request’s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams’s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n // TODO: isomorphic encoded\n contentLengthHeaderValue = String(contentLength)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest’s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest’s header list.\n\n // 10. If contentLength is non-null and httpRequest’s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest’s referrer is a URL, then append\n // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded,\n // to httpRequest’s header list.\n if (httpRequest.referrer instanceof URL) {\n // TODO: isomorphic encoded\n httpRequest.headersList.append('referer', httpRequest.referrer.href)\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest’s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest’s header list.\n if (!httpRequest.headersList.has('user-agent')) {\n httpRequest.headersList.append('user-agent', 'undici')\n }\n\n // 15. If httpRequest’s cache mode is \"default\" and httpRequest’s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest’s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.has('if-modified-since') ||\n httpRequest.headersList.has('if-none-match') ||\n httpRequest.headersList.has('if-unmodified-since') ||\n httpRequest.headersList.has('if-match') ||\n httpRequest.headersList.has('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest’s cache mode is \"no-cache\", httpRequest’s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest’s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest’s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.has('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest’s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest’s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.has('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest’s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.has('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest’s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest’s header list.\n if (httpRequest.headersList.has('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest’s header list per HTTP. Do not append a given\n // header if httpRequest’s header list contains that header’s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.has('accept-encoding')) {\n if (/^https:/.test(requestCurrentURL(httpRequest).protocol)) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest’s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there’s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest’s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest’s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest’s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest’s method is unsafe and forwardResponse’s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethods.includes(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse’s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response’s URL list to a clone of httpRequest’s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest’s header list contains `Range`, then set response’s\n // range-requested flag.\n if (httpRequest.headersList.has('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response’s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response’s status is 401, httpRequest’s response tainting is not\n // \"cors\", includeCredentials is true, and request’s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response’s status is 407, then:\n if (response.status === 407) {\n // 1. If request’s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request’s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response’s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request’s body is null, or request’s body is non-null and request’s body’s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request’s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request’s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request’s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request’s current URL’s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo’s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection’s\n // timing info, timingInfo’s post-redirect start time, and fetchParams’s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request’s body is non-null,\n // and request’s body’s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request’s header list.\n\n // 4. Set timingInfo’s final network-request start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request’s body is non-null, and request’s body’s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request’s body in that buffer. If the user agent reads from\n // request’s body beyond that buffer’s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo’s final network-response start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated capability,\n // immediately after the user agent’s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo’s final network-response start time above.\n\n // - If request’s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request’s window is an environment settings object, make the\n // dialog available in request’s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request’s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams’s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams’s process request\n // end-of-body and fetchParams’s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams’s process request body is non-null, then run\n // fetchParams’s process request body given bytes’s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams’s process request end-of-body is non-null,\n // then run fetchParams’s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams’s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams’s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n const { body, status, statusText, headersList } = await dispatch({ body: requestBody })\n\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s\n // controller.\n const cancelAlgorithm = () => {\n fetchParams.controller.abort()\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n { highWaterMark: 0 }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response’s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request’s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response’s header list, if any, and request’s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response’s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n try {\n fetchParams.controller.controller.close()\n } catch (err) {\n // TODO (fix): How/Why can this happen? Do we have a bug?\n if (!/Controller is already closed/.test(err)) {\n throw err\n }\n }\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo’s decoded body size by bytes’s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams’s controller.\n if (isErrorLike(bytes)) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn’t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response’s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, error stream with an \"AbortError\" DOMException.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n new DOMException('The operation was aborted.', 'AbortError')\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n return new Promise((resolve, reject) => fetchParams.controller.dispatcher.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body,\n headers: [...request.headersList].flat(),\n maxRedirections: 0,\n bodyTimeout: 300_000,\n headersTimeout: 300_000\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n if (key.toLowerCase() === 'content-encoding') {\n codings = val.split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers.append(key, val)\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatus.includes(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n if (/(x-)?gzip/.test(coding)) {\n decoders.push(zlib.createGunzip())\n } else if (/(x-)?deflate/.test(coding)) {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response’s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response’s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo’s encoded body size by bytes’s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n","/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod\n} = require('./util')\nconst {\n forbiddenMethods,\n corsSafeListedMethods,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\n\nlet TransformStream\n\nconst kInit = Symbol('init')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kInit) {\n return\n }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to construct 'Request': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // TODO\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this’s relevant settings object’s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input’s request.\n request = input[kState]\n\n // 9. Set signal to input’s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this’s relevant settings object’s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request’s window is an environment settings object and its origin\n // is same origin with origin, then set window to request’s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window !== undefined && init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if (init.window !== undefined) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request’s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request’s method.\n method: request.method,\n // header list A copy of request’s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This’s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request’s priority.\n priority: request.priority,\n // origin request’s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request’s referrer.\n referrer: request.referrer,\n // referrer policy request’s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request’s mode.\n mode: request.mode,\n // credentials mode request’s credentials mode.\n credentials: request.credentials,\n // cache mode request’s cache mode.\n cache: request.cache,\n // redirect mode request’s redirect mode.\n redirect: request.redirect,\n // integrity metadata request’s integrity metadata.\n integrity: request.integrity,\n // keepalive request’s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request’s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request’s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request’s URL list.\n urlList: [...request.urlList]\n })\n\n // 13. If init is not empty, then:\n if (Object.keys(init).length > 0) {\n // 1. If request’s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request’s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request’s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request’s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request’s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request’s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request’s URL to request’s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request’s URL list to « request’s URL ».\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request’s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // parsedReferrer’s cannot-be-a-base-URL is true, scheme is \"about\",\n // and path contains a single string \"client\"\n // parsedReferrer’s origin is not same origin with origin\n // then set request’s referrer to \"client\".\n // TODO\n\n // 4. Otherwise, set request’s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request’s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n if (!referrerPolicy.includes(request.referrerPolicy)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.referrerPolicy}' is not a valid enum value of type ReferrerPolicy.`\n )\n }\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n if (!requestMode.includes(mode)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.mode}' is not a valid enum value of type RequestMode.`\n )\n }\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request’s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request’s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n if (!requestCredentials.includes(request.credentials)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.credentials}' is not a valid enum value of type RequestCredentials.`\n )\n }\n }\n\n // 18. If init[\"cache\"] exists, then set request’s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n if (!requestCache.includes(request.cache)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.cache}' is not a valid enum value of type RequestCache.`\n )\n }\n }\n\n // 21. If request’s cache mode is \"only-if-cached\" and request’s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request’s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n if (!requestRedirect.includes(request.redirect)) {\n throw new TypeError(\n `Failed to construct 'Request': The provided value '${request.redirect}' is not a valid enum value of type RequestRedirect.`\n )\n }\n }\n\n // 23. If init[\"integrity\"] exists, then set request’s integrity metadata to it.\n if (init.integrity !== undefined && init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request’s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(init.method)) {\n throw TypeError(`'${init.method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethods.indexOf(method.toUpperCase()) !== -1) {\n throw TypeError(`'${init.method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethod(init.method)\n\n // 4. Set request’s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this’s request to request.\n this[kState] = request\n\n // 28. Set this’s signal to a new AbortSignal object with this’s relevant\n // Realm.\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this’s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n const abort = () => ac.abort(signal.reason)\n signal.addEventListener('abort', abort, { once: true })\n requestFinalizer.register(this, { signal, abort })\n }\n }\n\n // 30. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is request’s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers()\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this’s request’s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this’s request’s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethods.includes(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this’s headers’s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (Object.keys(init).length !== 0) {\n // 1. Let headers be a copy of this’s headers and its associated header\n // list.\n let headers = new Headers(this[kHeaders])\n\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n if (init.headers !== undefined) {\n headers = init.headers\n }\n\n // 3. Empty this’s headers’s header list.\n this[kHeaders][kHeadersList].clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header’s name/header’s value to this’s headers.\n if (headers.constructor.name === 'Headers') {\n for (const [key, val] of headers) {\n this[kHeaders].append(key, val)\n }\n } else {\n // 5. Otherwise, fill this’s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input’s request’s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request’s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n ((init.body !== undefined && init.body != null) || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body !== undefined && init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request’s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this’s headers’s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this’s headers.\n if (contentType && !this[kHeaders].has('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If this’s request’s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 2. Set this’s request’s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this’s request’s body to finalBody.\n this[kState].body = finalBody\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n // Returns request’s HTTP method, which is \"GET\" by default.\n get method () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The method getter steps are to return this’s request’s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The url getter steps are to return this’s request’s URL, serialized.\n return this[kState].url.toString()\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The destination getter are to return this’s request’s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global’s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // 1. If this’s request’s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this’s request’s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this’s request’s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request’s\n // referrer.\n get referrerPolicy () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The referrerPolicy getter steps are to return this’s request’s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The mode getter steps are to return this’s request’s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this’s request’s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser’s cache when fetching.\n get cache () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The cache getter steps are to return this’s request’s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The redirect getter steps are to return this’s request’s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request’s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The integrity getter steps are to return this’s request’s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The keepalive getter steps are to return this’s request’s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The isReloadNavigation getter steps are to return true if this’s\n // request’s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The isHistoryNavigation getter steps are to return true if this’s request’s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The signal getter steps are to return this’s signal.\n return this[kSignal]\n }\n\n // Returns a clone of request.\n clone () {\n if (!(this instanceof Request)) {\n throw new TypeError('Illegal invocation')\n }\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this’s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this’s headers’s guard, and this’s relevant Realm.\n const clonedRequestObject = new Request(kInit)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers()\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject’s signal follow this’s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n this.signal.addEventListener(\n 'abort',\n () => {\n ac.abort(this.signal.reason)\n },\n { once: true }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request’s body is non-null, set newRequest’s body to the\n // result of cloning request’s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: [\n '', 'no-referrer', 'no-referrer-when-downgrade',\n 'same-origin', 'origin', 'strict-origin',\n 'origin-when-cross-origin', 'strict-origin-when-cross-origin',\n 'unsafe-url'\n ]\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: [\n 'same-origin', 'cors', 'no-cors', 'navigate', 'websocket'\n ]\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: [\n 'omit', 'same-origin', 'include'\n ]\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: [\n 'default', 'no-store', 'reload', 'no-cache', 'force-cache',\n 'only-if-cached'\n ]\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: [\n 'follow', 'error', 'manual'\n ]\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = { Request, makeRequest }\n","'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n responseURL,\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike\n} = require('./util')\nconst {\n redirectStatus,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { kHeadersList } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this’s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n if (arguments.length === 0) {\n throw new TypeError(\n 'Failed to execute \\'json\\' on \\'Response\\': 1 argument required, but 0 present.'\n )\n }\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = new TextEncoder('utf-8').encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this’s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n if (arguments.length < 1) {\n throw new TypeError(\n `Failed to execute 'redirect' on 'Response': 1 argument required, but only ${arguments.length} present.`\n )\n }\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object’s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatus.includes(status)) {\n throw new RangeError('Invalid status code')\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this’s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject’s response’s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n // TODO: isomorphic encoded?\n const value = parsedURL.toString()\n\n // 7. Append `Location`/value to responseObject’s response’s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this’s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is this’s response’s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers()\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n get [Symbol.toStringTag] () {\n return this.constructor.name\n }\n\n // Returns response’s type, e.g., \"cors\".\n get type () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The type getter steps are to return this’s response’s type.\n return this[kState].type\n }\n\n // Returns response’s URL, if it has one; otherwise the empty string.\n get url () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The url getter steps are to return the empty string if this’s\n // response’s URL is null; otherwise this’s response’s URL,\n // serialized with exclude fragment set to true.\n let url = responseURL(this[kState])\n\n if (url == null) {\n return ''\n }\n\n if (url.hash) {\n url = new URL(url)\n url.hash = ''\n }\n\n return url.toString()\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The redirected getter steps are to return true if this’s response’s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response’s status.\n get status () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The status getter steps are to return this’s response’s status.\n return this[kState].status\n }\n\n // Returns whether response’s status is an ok status.\n get ok () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The ok getter steps are to return true if this’s response’s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response’s status message.\n get statusText () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The statusText getter steps are to return this’s response’s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response’s headers as Headers.\n get headers () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns a clone of response.\n clone () {\n if (!(this instanceof Response)) {\n throw new TypeError('Illegal invocation')\n }\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this’s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this’s headers’s guard, and this’s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response’s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response’s body is non-null, then set newResponse’s body to the\n // result of cloning response’s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason, {\n cause: isError ? reason : undefined\n }),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response’s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response’s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response’s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(new DOMException('The operation was aborted.', 'AbortError'))\n : makeNetworkError(fetchParams.controller.terminated.reason)\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response’s response’s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response’s response’s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response’s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kState].headersList, init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code.'\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.has('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n types.isAnyArrayBuffer(V) ||\n types.isTypedArray(V) ||\n types.isDataView(V)\n ) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response\n}\n","'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n","'use strict'\n\nconst { redirectStatus } = require('./constants')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response’s URL list and null if response’s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response’s status is not a redirect status, then return null.\n if (!redirectStatus.includes(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response’s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a value, then set location to the result of parsing\n // location with response’s URL.\n location = location ? new URL(location, responseURL(response)) : null\n\n // 4. If location is a URL whose fragment is null, then set location’s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request’s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,\n // then return blocked.\n if (/^https?:/.test(url.protocol) && badPorts.includes(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\nfunction isTokenChar (c) {\n return !(\n c >= 0x7f ||\n c <= 0x20 ||\n c === '(' ||\n c === ')' ||\n c === '<' ||\n c === '>' ||\n c === '@' ||\n c === ',' ||\n c === ';' ||\n c === ':' ||\n c === '\\\\' ||\n c === '\"' ||\n c === '/' ||\n c === '[' ||\n c === ']' ||\n c === '?' ||\n c === '=' ||\n c === '{' ||\n c === '}'\n )\n}\n\n// See RFC 7230, Section 3.2.6.\n// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321\nfunction isValidHTTPToken (characters) {\n if (!characters || typeof characters !== 'string') {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n const c = characters.charCodeAt(i)\n if (c > 0x7f || !isTokenChar(c)) {\n return false\n }\n }\n return true\n}\n\n// https://fetch.spec.whatwg.org/#header-name\n// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342\nfunction isValidHeaderName (potentialValue) {\n if (potentialValue.length === 0) {\n return false\n }\n\n for (const char of potentialValue) {\n if (!isValidHTTPToken(char)) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request’s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing § 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n // TODO: https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header\n const policy = ''\n\n // 2. If policy is not the empty string, then set request’s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r’s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header’s value to r’s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request’s response tainting is \"cors\" or request’s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request’s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('Origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request’s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request’s origin is a tuple origin, its scheme is \"https\", and request’s current URL’s scheme is not \"https\", then set serializedOrigin to `null`.\n if (/^https:/.test(request.origin) && !/^https:/.test(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request’s header list.\n request.headersList.append('Origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // TODO\n return {}\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer () {\n // TODO\n return {}\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Return no-referrer when empty or policy says so\n if (policy == null || policy === '' || policy === 'no-referrer') {\n return 'no-referrer'\n }\n\n // 2. Let environment be the request client\n const environment = request.client\n let referrerSource = null\n\n /**\n * 3, Switch on request’s referrer:\n \"client\"\n If environment’s global object is a Window object, then\n Let document be the associated Document of environment’s global object.\n If document’s origin is an opaque origin, return no referrer.\n While document is an iframe srcdoc document,\n let document be document’s browsing context’s browsing context container’s node document.\n Let referrerSource be document’s URL.\n\n Otherwise, let referrerSource be environment’s creation URL.\n\n a URL\n Let referrerSource be request’s referrer.\n */\n if (request.referrer === 'client') {\n // Not defined in Node but part of the spec\n if (request.client?.globalObject?.constructor?.name === 'Window' ) { // eslint-disable-line\n const origin = environment.globalObject.self?.origin ?? environment.globalObject.location?.origin\n\n // If document’s origin is an opaque origin, return no referrer.\n if (origin == null || origin === 'null') return 'no-referrer'\n\n // Let referrerSource be document’s URL.\n referrerSource = new URL(environment.globalObject.location.href)\n } else {\n // 3(a)(II) If environment's global object is not Window,\n // Let referrerSource be environments creationURL\n if (environment?.globalObject?.location == null) {\n return 'no-referrer'\n }\n\n referrerSource = new URL(environment.globalObject.location.href)\n }\n } else if (request.referrer instanceof URL) {\n // 3(b) If requests's referrer is a URL instance, then make\n // referrerSource be requests's referrer.\n referrerSource = request.referrer\n } else {\n // If referrerSource neither client nor instance of URL\n // then return \"no-referrer\".\n return 'no-referrer'\n }\n\n const urlProtocol = referrerSource.protocol\n\n // If url's scheme is a local scheme (i.e. one of \"about\", \"data\", \"javascript\", \"file\")\n // then return \"no-referrer\".\n if (\n urlProtocol === 'about:' || urlProtocol === 'data:' ||\n urlProtocol === 'blob:'\n ) {\n return 'no-referrer'\n }\n\n let temp\n let referrerOrigin\n // 4. Let requests's referrerURL be the result of stripping referrer\n // source for use as referrer (using util function, without origin only)\n const referrerUrl = (temp = stripURLForReferrer(referrerSource)).length > 4096\n // 5. Let referrerOrigin be the result of stripping referrer\n // source for use as referrer (using util function, with originOnly true)\n ? (referrerOrigin = stripURLForReferrer(referrerSource, true))\n // 6. If result of seralizing referrerUrl is a string whose length is greater than\n // 4096, then set referrerURL to referrerOrigin\n : temp\n const areSameOrigin = sameOrigin(request, referrerUrl)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerUrl) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // NOTE: How to treat step 7?\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerUrl\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerUrl : referrerOrigin\n case 'strict-origin-when-cross-origin':\n /**\n * 1. If the origin of referrerURL and the origin of request’s current URL are the same,\n * then return referrerURL.\n * 2. If referrerURL is a potentially trustworthy URL and request’s current URL is not a\n * potentially trustworthy URL, then return no referrer.\n * 3. Return referrerOrigin\n */\n if (areSameOrigin) return referrerOrigin\n // else return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n\n function stripURLForReferrer (url, originOnly = false) {\n const urlObject = new URL(url.href)\n urlObject.username = ''\n urlObject.password = ''\n urlObject.hash = ''\n\n return originOnly ? urlObject.origin : urlObject.href\n }\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 4. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n // Note: this will only work for SHA- algorithms and it's lazy *at best*.\n const metadata = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo))\n\n // 5. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n // Note: \"applying algorithm to bytes\" converts the result to base64\n const actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (actualValue === expectedValue) {\n return true\n }\n }\n\n // 6. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// hash-algo is defined in Content Security Policy 2 Section 4.2\n// base64-value is similary defined there\n// VCHAR is defined https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={1,2}))( +[\\x21-\\x7e]?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n const supportedHashes = crypto.getHashes()\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (parsedToken === null || parsedToken.groups === undefined) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm.toLowerCase())) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n // \"opaque origin\" is an internal value we cannot access, ignore.\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\n// https://fetch.spec.whatwg.org/#concept-method-normalize\nfunction normalizeMethod (method) {\n return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method)\n ? method.toUpperCase()\n : method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n// https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\nfunction makeIterator (iterator, name) {\n const i = {\n next () {\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n return iterator.next()\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let promise be the result of fully reading body as promise\n // given body.\n try {\n /** @type {Uint8Array[]} */\n const chunks = []\n let length = 0\n\n const reader = body.stream.getReader()\n\n while (true) {\n const { done, value } = await reader.read()\n\n if (done === true) {\n break\n }\n\n // read-loop chunk steps\n assert(isUint8Array(value))\n\n chunks.push(value)\n length += value.byteLength\n }\n\n // 3. Let fulfilledSteps given a byte sequence bytes be to queue\n // a fetch task to run processBody given bytes, with\n // taskDestination.\n const fulfilledSteps = (bytes) => queueMicrotask(() => {\n processBody(bytes)\n })\n\n fulfilledSteps(Buffer.concat(chunks, length))\n } catch (err) {\n // 4. Let rejectedSteps be to queue a fetch task to run\n // processBodyError, with taskDestination.\n queueMicrotask(() => processBodyError(err))\n }\n\n // 5. React to promise with fulfilledSteps and rejectedSteps.\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch\n}\n","'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\n/**\n *\n * @param {{\n * header: string\n * message: string\n * }} message\n */\nwebidl.errors.exception = function (message) {\n throw new TypeError(`${message.header}: ${message.message}`)\n}\n\n/**\n * Throw an error when conversion from one type to another has failed\n * @param {{\n * prefix: string\n * argument: string\n * types: string[]\n * }} context\n */\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\n/**\n * Throw an error when an invalid argument is provided\n * @param {{\n * prefix: string\n * value: string\n * type: string\n * }} context\n */\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 − 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be −2^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength − 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength − 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength − 1 − 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is −0, then set x to +0.\n if (Object.is(-0, x)) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +∞, or −∞, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than −0.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +∞, or −∞, then return +0.\n if (\n Number.isNaN(x) ||\n Object.is(0, x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x ≥ 2^bitLength − 1,\n // then return x − 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 × r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (V) => {\n const record = {}\n const type = webidl.util.Type(V)\n\n if (type === 'Undefined' || type === 'Null') {\n return record\n }\n\n if (type !== 'Object') {\n webidl.errors.exception({\n header: 'Record',\n message: `Expected ${V} to be an Object type.`\n })\n }\n\n for (let [key, value] of Object.entries(V)) {\n key = keyConverter(key)\n value = valueConverter(value)\n\n record[key] = value\n }\n\n return record\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\n/**\n * @param {{\n * key: string,\n * defaultValue?: any,\n * required?: boolean,\n * converter: (...args: unknown[]) => unknown,\n * allowedValues?: any[]\n * }[]} converters\n * @returns\n */\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type !== 'Null' && type !== 'Undefined' && type !== 'Object') {\n webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n const charCode = x.charCodeAt(index)\n\n if (charCode > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at' +\n `index ${index} has a value of ${charCode} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\n// TODO: ensure that util.toUSVString follows webidl spec\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed', opts)\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned')\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T’s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n","'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n","'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n","'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n return (\n (header.length === 4 && header.toString().toLowerCase() === 'host') ||\n (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||\n (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||\n (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')\n )\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n","'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\nconst utils_1 = require(\"./utils\");\n// C headers\nvar ERROR;\n(function (ERROR) {\n ERROR[ERROR[\"OK\"] = 0] = \"OK\";\n ERROR[ERROR[\"INTERNAL\"] = 1] = \"INTERNAL\";\n ERROR[ERROR[\"STRICT\"] = 2] = \"STRICT\";\n ERROR[ERROR[\"LF_EXPECTED\"] = 3] = \"LF_EXPECTED\";\n ERROR[ERROR[\"UNEXPECTED_CONTENT_LENGTH\"] = 4] = \"UNEXPECTED_CONTENT_LENGTH\";\n ERROR[ERROR[\"CLOSED_CONNECTION\"] = 5] = \"CLOSED_CONNECTION\";\n ERROR[ERROR[\"INVALID_METHOD\"] = 6] = \"INVALID_METHOD\";\n ERROR[ERROR[\"INVALID_URL\"] = 7] = \"INVALID_URL\";\n ERROR[ERROR[\"INVALID_CONSTANT\"] = 8] = \"INVALID_CONSTANT\";\n ERROR[ERROR[\"INVALID_VERSION\"] = 9] = \"INVALID_VERSION\";\n ERROR[ERROR[\"INVALID_HEADER_TOKEN\"] = 10] = \"INVALID_HEADER_TOKEN\";\n ERROR[ERROR[\"INVALID_CONTENT_LENGTH\"] = 11] = \"INVALID_CONTENT_LENGTH\";\n ERROR[ERROR[\"INVALID_CHUNK_SIZE\"] = 12] = \"INVALID_CHUNK_SIZE\";\n ERROR[ERROR[\"INVALID_STATUS\"] = 13] = \"INVALID_STATUS\";\n ERROR[ERROR[\"INVALID_EOF_STATE\"] = 14] = \"INVALID_EOF_STATE\";\n ERROR[ERROR[\"INVALID_TRANSFER_ENCODING\"] = 15] = \"INVALID_TRANSFER_ENCODING\";\n ERROR[ERROR[\"CB_MESSAGE_BEGIN\"] = 16] = \"CB_MESSAGE_BEGIN\";\n ERROR[ERROR[\"CB_HEADERS_COMPLETE\"] = 17] = \"CB_HEADERS_COMPLETE\";\n ERROR[ERROR[\"CB_MESSAGE_COMPLETE\"] = 18] = \"CB_MESSAGE_COMPLETE\";\n ERROR[ERROR[\"CB_CHUNK_HEADER\"] = 19] = \"CB_CHUNK_HEADER\";\n ERROR[ERROR[\"CB_CHUNK_COMPLETE\"] = 20] = \"CB_CHUNK_COMPLETE\";\n ERROR[ERROR[\"PAUSED\"] = 21] = \"PAUSED\";\n ERROR[ERROR[\"PAUSED_UPGRADE\"] = 22] = \"PAUSED_UPGRADE\";\n ERROR[ERROR[\"PAUSED_H2_UPGRADE\"] = 23] = \"PAUSED_H2_UPGRADE\";\n ERROR[ERROR[\"USER\"] = 24] = \"USER\";\n})(ERROR = exports.ERROR || (exports.ERROR = {}));\nvar TYPE;\n(function (TYPE) {\n TYPE[TYPE[\"BOTH\"] = 0] = \"BOTH\";\n TYPE[TYPE[\"REQUEST\"] = 1] = \"REQUEST\";\n TYPE[TYPE[\"RESPONSE\"] = 2] = \"RESPONSE\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"CONNECTION_KEEP_ALIVE\"] = 1] = \"CONNECTION_KEEP_ALIVE\";\n FLAGS[FLAGS[\"CONNECTION_CLOSE\"] = 2] = \"CONNECTION_CLOSE\";\n FLAGS[FLAGS[\"CONNECTION_UPGRADE\"] = 4] = \"CONNECTION_UPGRADE\";\n FLAGS[FLAGS[\"CHUNKED\"] = 8] = \"CHUNKED\";\n FLAGS[FLAGS[\"UPGRADE\"] = 16] = \"UPGRADE\";\n FLAGS[FLAGS[\"CONTENT_LENGTH\"] = 32] = \"CONTENT_LENGTH\";\n FLAGS[FLAGS[\"SKIPBODY\"] = 64] = \"SKIPBODY\";\n FLAGS[FLAGS[\"TRAILING\"] = 128] = \"TRAILING\";\n // 1 << 8 is unused\n FLAGS[FLAGS[\"TRANSFER_ENCODING\"] = 512] = \"TRANSFER_ENCODING\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nvar LENIENT_FLAGS;\n(function (LENIENT_FLAGS) {\n LENIENT_FLAGS[LENIENT_FLAGS[\"HEADERS\"] = 1] = \"HEADERS\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"CHUNKED_LENGTH\"] = 2] = \"CHUNKED_LENGTH\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"KEEP_ALIVE\"] = 4] = \"KEEP_ALIVE\";\n})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\nvar METHODS;\n(function (METHODS) {\n METHODS[METHODS[\"DELETE\"] = 0] = \"DELETE\";\n METHODS[METHODS[\"GET\"] = 1] = \"GET\";\n METHODS[METHODS[\"HEAD\"] = 2] = \"HEAD\";\n METHODS[METHODS[\"POST\"] = 3] = \"POST\";\n METHODS[METHODS[\"PUT\"] = 4] = \"PUT\";\n /* pathological */\n METHODS[METHODS[\"CONNECT\"] = 5] = \"CONNECT\";\n METHODS[METHODS[\"OPTIONS\"] = 6] = \"OPTIONS\";\n METHODS[METHODS[\"TRACE\"] = 7] = \"TRACE\";\n /* WebDAV */\n METHODS[METHODS[\"COPY\"] = 8] = \"COPY\";\n METHODS[METHODS[\"LOCK\"] = 9] = \"LOCK\";\n METHODS[METHODS[\"MKCOL\"] = 10] = \"MKCOL\";\n METHODS[METHODS[\"MOVE\"] = 11] = \"MOVE\";\n METHODS[METHODS[\"PROPFIND\"] = 12] = \"PROPFIND\";\n METHODS[METHODS[\"PROPPATCH\"] = 13] = \"PROPPATCH\";\n METHODS[METHODS[\"SEARCH\"] = 14] = \"SEARCH\";\n METHODS[METHODS[\"UNLOCK\"] = 15] = \"UNLOCK\";\n METHODS[METHODS[\"BIND\"] = 16] = \"BIND\";\n METHODS[METHODS[\"REBIND\"] = 17] = \"REBIND\";\n METHODS[METHODS[\"UNBIND\"] = 18] = \"UNBIND\";\n METHODS[METHODS[\"ACL\"] = 19] = \"ACL\";\n /* subversion */\n METHODS[METHODS[\"REPORT\"] = 20] = \"REPORT\";\n METHODS[METHODS[\"MKACTIVITY\"] = 21] = \"MKACTIVITY\";\n METHODS[METHODS[\"CHECKOUT\"] = 22] = \"CHECKOUT\";\n METHODS[METHODS[\"MERGE\"] = 23] = \"MERGE\";\n /* upnp */\n METHODS[METHODS[\"M-SEARCH\"] = 24] = \"M-SEARCH\";\n METHODS[METHODS[\"NOTIFY\"] = 25] = \"NOTIFY\";\n METHODS[METHODS[\"SUBSCRIBE\"] = 26] = \"SUBSCRIBE\";\n METHODS[METHODS[\"UNSUBSCRIBE\"] = 27] = \"UNSUBSCRIBE\";\n /* RFC-5789 */\n METHODS[METHODS[\"PATCH\"] = 28] = \"PATCH\";\n METHODS[METHODS[\"PURGE\"] = 29] = \"PURGE\";\n /* CalDAV */\n METHODS[METHODS[\"MKCALENDAR\"] = 30] = \"MKCALENDAR\";\n /* RFC-2068, section 19.6.1.2 */\n METHODS[METHODS[\"LINK\"] = 31] = \"LINK\";\n METHODS[METHODS[\"UNLINK\"] = 32] = \"UNLINK\";\n /* icecast */\n METHODS[METHODS[\"SOURCE\"] = 33] = \"SOURCE\";\n /* RFC-7540, section 11.6 */\n METHODS[METHODS[\"PRI\"] = 34] = \"PRI\";\n /* RFC-2326 RTSP */\n METHODS[METHODS[\"DESCRIBE\"] = 35] = \"DESCRIBE\";\n METHODS[METHODS[\"ANNOUNCE\"] = 36] = \"ANNOUNCE\";\n METHODS[METHODS[\"SETUP\"] = 37] = \"SETUP\";\n METHODS[METHODS[\"PLAY\"] = 38] = \"PLAY\";\n METHODS[METHODS[\"PAUSE\"] = 39] = \"PAUSE\";\n METHODS[METHODS[\"TEARDOWN\"] = 40] = \"TEARDOWN\";\n METHODS[METHODS[\"GET_PARAMETER\"] = 41] = \"GET_PARAMETER\";\n METHODS[METHODS[\"SET_PARAMETER\"] = 42] = \"SET_PARAMETER\";\n METHODS[METHODS[\"REDIRECT\"] = 43] = \"REDIRECT\";\n METHODS[METHODS[\"RECORD\"] = 44] = \"RECORD\";\n /* RAOP */\n METHODS[METHODS[\"FLUSH\"] = 45] = \"FLUSH\";\n})(METHODS = exports.METHODS || (exports.METHODS = {}));\nexports.METHODS_HTTP = [\n METHODS.DELETE,\n METHODS.GET,\n METHODS.HEAD,\n METHODS.POST,\n METHODS.PUT,\n METHODS.CONNECT,\n METHODS.OPTIONS,\n METHODS.TRACE,\n METHODS.COPY,\n METHODS.LOCK,\n METHODS.MKCOL,\n METHODS.MOVE,\n METHODS.PROPFIND,\n METHODS.PROPPATCH,\n METHODS.SEARCH,\n METHODS.UNLOCK,\n METHODS.BIND,\n METHODS.REBIND,\n METHODS.UNBIND,\n METHODS.ACL,\n METHODS.REPORT,\n METHODS.MKACTIVITY,\n METHODS.CHECKOUT,\n METHODS.MERGE,\n METHODS['M-SEARCH'],\n METHODS.NOTIFY,\n METHODS.SUBSCRIBE,\n METHODS.UNSUBSCRIBE,\n METHODS.PATCH,\n METHODS.PURGE,\n METHODS.MKCALENDAR,\n METHODS.LINK,\n METHODS.UNLINK,\n METHODS.PRI,\n // TODO(indutny): should we allow it with HTTP?\n METHODS.SOURCE,\n];\nexports.METHODS_ICE = [\n METHODS.SOURCE,\n];\nexports.METHODS_RTSP = [\n METHODS.OPTIONS,\n METHODS.DESCRIBE,\n METHODS.ANNOUNCE,\n METHODS.SETUP,\n METHODS.PLAY,\n METHODS.PAUSE,\n METHODS.TEARDOWN,\n METHODS.GET_PARAMETER,\n METHODS.SET_PARAMETER,\n METHODS.REDIRECT,\n METHODS.RECORD,\n METHODS.FLUSH,\n // For AirPlay\n METHODS.GET,\n METHODS.POST,\n];\nexports.METHOD_MAP = utils_1.enumToMap(METHODS);\nexports.H_METHOD_MAP = {};\nObject.keys(exports.METHOD_MAP).forEach((key) => {\n if (/^H/.test(key)) {\n exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n }\n});\nvar FINISH;\n(function (FINISH) {\n FINISH[FINISH[\"SAFE\"] = 0] = \"SAFE\";\n FINISH[FINISH[\"SAFE_WITH_CB\"] = 1] = \"SAFE_WITH_CB\";\n FINISH[FINISH[\"UNSAFE\"] = 2] = \"UNSAFE\";\n})(FINISH = exports.FINISH || (exports.FINISH = {}));\nexports.ALPHA = [];\nfor (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n // Upper case\n exports.ALPHA.push(String.fromCharCode(i));\n // Lower case\n exports.ALPHA.push(String.fromCharCode(i + 0x20));\n}\nexports.NUM_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n};\nexports.HEX_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF,\n a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf,\n};\nexports.NUM = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n];\nexports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\nexports.MARK = ['-', '_', '.', '!', '~', '*', '\\'', '(', ')'];\nexports.USERINFO_CHARS = exports.ALPHANUM\n .concat(exports.MARK)\n .concat(['%', ';', ':', '&', '=', '+', '$', ',']);\n// TODO(indutny): use RFC\nexports.STRICT_URL_CHAR = [\n '!', '\"', '$', '%', '&', '\\'',\n '(', ')', '*', '+', ',', '-', '.', '/',\n ':', ';', '<', '=', '>',\n '@', '[', '\\\\', ']', '^', '_',\n '`',\n '{', '|', '}', '~',\n].concat(exports.ALPHANUM);\nexports.URL_CHAR = exports.STRICT_URL_CHAR\n .concat(['\\t', '\\f']);\n// All characters with 0x80 bit set to 1\nfor (let i = 0x80; i <= 0xff; i++) {\n exports.URL_CHAR.push(i);\n}\nexports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);\n/* Tokens as defined by rfc 2616. Also lowercases them.\n * token = 1*\n * separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n * | \",\" | \";\" | \":\" | \"\\\" | <\">\n * | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n * | \"{\" | \"}\" | SP | HT\n */\nexports.STRICT_TOKEN = [\n '!', '#', '$', '%', '&', '\\'',\n '*', '+', '-', '.',\n '^', '_', '`',\n '|', '~',\n].concat(exports.ALPHANUM);\nexports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n/*\n * Verify that a char is a valid visible (printable) US-ASCII\n * character or %x80-FF\n */\nexports.HEADER_CHARS = ['\\t'];\nfor (let i = 32; i <= 255; i++) {\n if (i !== 127) {\n exports.HEADER_CHARS.push(i);\n }\n}\n// ',' = \\x44\nexports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\nexports.MAJOR = exports.NUM_MAP;\nexports.MINOR = exports.MAJOR;\nvar HEADER_STATE;\n(function (HEADER_STATE) {\n HEADER_STATE[HEADER_STATE[\"GENERAL\"] = 0] = \"GENERAL\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION\"] = 1] = \"CONNECTION\";\n HEADER_STATE[HEADER_STATE[\"CONTENT_LENGTH\"] = 2] = \"CONTENT_LENGTH\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING\"] = 3] = \"TRANSFER_ENCODING\";\n HEADER_STATE[HEADER_STATE[\"UPGRADE\"] = 4] = \"UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_KEEP_ALIVE\"] = 5] = \"CONNECTION_KEEP_ALIVE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_CLOSE\"] = 6] = \"CONNECTION_CLOSE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_UPGRADE\"] = 7] = \"CONNECTION_UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING_CHUNKED\"] = 8] = \"TRANSFER_ENCODING_CHUNKED\";\n})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\nexports.SPECIAL_HEADERS = {\n 'connection': HEADER_STATE.CONNECTION,\n 'content-length': HEADER_STATE.CONTENT_LENGTH,\n 'proxy-connection': HEADER_STATE.CONNECTION,\n 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,\n 'upgrade': HEADER_STATE.UPGRADE,\n};\n//# sourceMappingURL=constants.js.map","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGAuAQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mADMJEwEAQQELDQECAwQFCwYHLiooJCYKxqgCOAIACwgAEIiAgIAACxkAIAAQtoCAgAAaIAAgAjYCNCAAIAE6ACgLHAAgACAALwEyIAAtAC4gABC1gICAABCAgICAAAspAQF/QTgQuoCAgAAiARC2gICAABogAUGAiICAADYCNCABIAA6ACggAQsKACAAELyAgIAACwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BMgsHACAALQAuC0UBBH8gACgCGCEBIAAtAC0hAiAALQAoIQMgACgCNCEEIAAQtoCAgAAaIAAgBDYCNCAAIAM6ACggACACOgAtIAAgATYCGAsRACAAIAEgASACahC3gICAAAtFACAAQgA3AgAgAEEwakIANwIAIABBKGpCADcCACAAQSBqQgA3AgAgAEEYakIANwIAIABBEGpCADcCACAAQQhqQgA3AgALZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI0IgFFDQAgASgCHCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQv4CAgAAACyAAQf+RgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQYSUgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBGkkNABC/gICAAAALIABBAnRByJuAgABqKAIACyIAAkAgAEEuSQ0AEL+AgIAAAAsgAEECdEGwnICAAGooAgALFgAgACAALQAtQf4BcSABQQBHcjoALQsZACAAIAAtAC1B/QFxIAFBAEdBAXRyOgAtCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI0IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZyOgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIoIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCNCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEHSioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCLCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB3ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAjAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI0IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcOQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAI0IgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAhQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCHCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB0oiAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAiAiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL8gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARBCHENAAJAIARBgARxRQ0AAkAgAC0AKEEBRw0AIAAtAC1BCnENAEEFDwtBBA8LAkAgBEEgcQ0AAkAgAC0AKEEBRg0AIAAvATIiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQYgEcUGABEYNAiAEQShxRQ0CC0EADwtBAEEDIAApAyBQGyEFCyAFC10BAn9BACEBAkAgAC0AKEEBRg0AIAAvATIiAkGcf2pB5ABJDQAgAkHMAUYNACACQbACRg0AIAAvATAiAEHAAHENAEEBIQEgAEGIBHFBgARGDQAgAEEocUUhAQsgAQuiAQEDfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEDIAAvATAiBEECcUUNAQwCC0EAIQMgAC8BMCIEQQFxRQ0BC0EBIQMgAC0AKEEBRg0AIAAvATIiBUGcf2pB5ABJDQAgBUHMAUYNACAFQbACRg0AIARBwABxDQBBACEDIARBiARxQYAERg0AIARBKHFBAEchAwsgAEEAOwEwIABBADoALyADC5QBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQEgAC8BMCICQQJxRQ0BDAILQQAhASAALwEwIgJBAXFFDQELQQEhASAALQAoQQFGDQAgAC8BMiIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC08AIABBGGpCADcDACAAQgA3AwAgAEEwakIANwMAIABBKGpCADcDACAAQSBqQgA3AwAgAEEQakIANwMAIABBCGpCADcDACAAQbwBNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQuICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC9POAQMcfwN+BX8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDyABIRAgASERIAEhEiABIRMgASEUIAEhFSABIRYgASEXIAEhGCABIRkgASEaIAEhGyABIRwgASEdAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIeQX9qDrwBtwEBtgECAwQFBgcICQoLDA0ODxDAAb8BERITtQEUFRYXGBkavQG8ARscHR4fICG0AbMBIiOyAbEBJCUmJygpKissLS4vMDEyMzQ1Njc4OTq4ATs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAQC5AQtBACEeDK8BC0EPIR4MrgELQQ4hHgytAQtBECEeDKwBC0ERIR4MqwELQRQhHgyqAQtBFSEeDKkBC0EWIR4MqAELQRchHgynAQtBGCEeDKYBC0EIIR4MpQELQRkhHgykAQtBGiEeDKMBC0ETIR4MogELQRIhHgyhAQtBGyEeDKABC0EcIR4MnwELQR0hHgyeAQtBHiEeDJ0BC0GqASEeDJwBC0GrASEeDJsBC0EgIR4MmgELQSEhHgyZAQtBIiEeDJgBC0EjIR4MlwELQSQhHgyWAQtBrQEhHgyVAQtBJSEeDJQBC0EpIR4MkwELQQ0hHgySAQtBJiEeDJEBC0EnIR4MkAELQSghHgyPAQtBLiEeDI4BC0EqIR4MjQELQa4BIR4MjAELQQwhHgyLAQtBLyEeDIoBC0ErIR4MiQELQQshHgyIAQtBLCEeDIcBC0EtIR4MhgELQQohHgyFAQtBMSEeDIQBC0EwIR4MgwELQQkhHgyCAQtBHyEeDIEBC0EyIR4MgAELQTMhHgx/C0E0IR4MfgtBNSEeDH0LQTYhHgx8C0E3IR4MewtBOCEeDHoLQTkhHgx5C0E6IR4MeAtBrAEhHgx3C0E7IR4MdgtBPCEeDHULQT0hHgx0C0E+IR4McwtBPyEeDHILQcAAIR4McQtBwQAhHgxwC0HCACEeDG8LQcMAIR4MbgtBxAAhHgxtC0EHIR4MbAtBxQAhHgxrC0EGIR4MagtBxgAhHgxpC0EFIR4MaAtBxwAhHgxnC0EEIR4MZgtByAAhHgxlC0HJACEeDGQLQcoAIR4MYwtBywAhHgxiC0EDIR4MYQtBzAAhHgxgC0HNACEeDF8LQc4AIR4MXgtB0AAhHgxdC0HPACEeDFwLQdEAIR4MWwtB0gAhHgxaC0ECIR4MWQtB0wAhHgxYC0HUACEeDFcLQdUAIR4MVgtB1gAhHgxVC0HXACEeDFQLQdgAIR4MUwtB2QAhHgxSC0HaACEeDFELQdsAIR4MUAtB3AAhHgxPC0HdACEeDE4LQd4AIR4MTQtB3wAhHgxMC0HgACEeDEsLQeEAIR4MSgtB4gAhHgxJC0HjACEeDEgLQeQAIR4MRwtB5QAhHgxGC0HmACEeDEULQecAIR4MRAtB6AAhHgxDC0HpACEeDEILQeoAIR4MQQtB6wAhHgxAC0HsACEeDD8LQe0AIR4MPgtB7gAhHgw9C0HvACEeDDwLQfAAIR4MOwtB8QAhHgw6C0HyACEeDDkLQfMAIR4MOAtB9AAhHgw3C0H1ACEeDDYLQfYAIR4MNQtB9wAhHgw0C0H4ACEeDDMLQfkAIR4MMgtB+gAhHgwxC0H7ACEeDDALQfwAIR4MLwtB/QAhHgwuC0H+ACEeDC0LQf8AIR4MLAtBgAEhHgwrC0GBASEeDCoLQYIBIR4MKQtBgwEhHgwoC0GEASEeDCcLQYUBIR4MJgtBhgEhHgwlC0GHASEeDCQLQYgBIR4MIwtBiQEhHgwiC0GKASEeDCELQYsBIR4MIAtBjAEhHgwfC0GNASEeDB4LQY4BIR4MHQtBjwEhHgwcC0GQASEeDBsLQZEBIR4MGgtBkgEhHgwZC0GTASEeDBgLQZQBIR4MFwtBlQEhHgwWC0GWASEeDBULQZcBIR4MFAtBmAEhHgwTC0GZASEeDBILQZ0BIR4MEQtBmgEhHgwQC0EBIR4MDwtBmwEhHgwOC0GcASEeDA0LQZ4BIR4MDAtBoAEhHgwLC0GfASEeDAoLQaEBIR4MCQtBogEhHgwIC0GjASEeDAcLQaQBIR4MBgtBpQEhHgwFC0GmASEeDAQLQacBIR4MAwtBqAEhHgwCC0GpASEeDAELQa8BIR4LA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgHg6wAQABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgaHB4fICMkJSYnKCkqLC0uLzD7AjQ2ODk8P0FCQ0RFRkdISUpLTE1OT1BRUlNVV1lcXV5gYmNkZWZnaGtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAdoB4AHhAeQB8QG9Ar0CCyABIgggAkcNwgFBvAEhHgyVAwsgASIeIAJHDbEBQawBIR4MlAMLIAEiASACRw1nQeIAIR4MkwMLIAEiASACRw1dQdoAIR4MkgMLIAEiASACRw1WQdUAIR4MkQMLIAEiASACRw1SQdMAIR4MkAMLIAEiASACRw1PQdEAIR4MjwMLIAEiASACRw1MQc8AIR4MjgMLIAEiASACRw0QQQwhHgyNAwsgASIBIAJHDTNBOCEeDIwDCyABIgEgAkcNL0E1IR4MiwMLIAEiASACRw0mQTIhHgyKAwsgASIBIAJHDSRBLyEeDIkDCyABIgEgAkcNHUEkIR4MiAMLIAAtAC5BAUYN/QIMxwELIAAgASIBIAIQtICAgABBAUcNtAEMtQELIAAgASIBIAIQrYCAgAAiHg21ASABIQEMsAILAkAgASIBIAJHDQBBBiEeDIUDCyAAIAFBAWoiASACELCAgIAAIh4NtgEgASEBDA8LIABCADcDIEETIR4M8wILIAEiHiACRw0JQQ8hHgyCAwsCQCABIgEgAkYNACABQQFqIQFBESEeDPICC0EHIR4MgQMLIABCACAAKQMgIh8gAiABIh5rrSIgfSIhICEgH1YbNwMgIB8gIFYiIkUNswFBCCEeDIADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEVIR4M8AILQQkhHgz/AgsgASEBIAApAyBQDbIBIAEhAQytAgsCQCABIgEgAkcNAEELIR4M/gILIAAgAUEBaiIBIAIQr4CAgAAiHg2yASABIQEMrQILA0ACQCABLQAAQfCdgIAAai0AACIeQQFGDQAgHkECRw20ASABQQFqIQEMAwsgAUEBaiIBIAJHDQALQQwhHgz8AgsCQCABIgEgAkcNAEENIR4M/AILAkACQCABLQAAIh5Bc2oOFAG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgEAtAELIAFBAWohAQy0AQsgAUEBaiEBC0EYIR4M6gILAkAgASIeIAJHDQBBDiEeDPoCC0IAIR8gHiEBAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAeLQAAQVBqDjfIAccBAAECAwQFBge+Ar4CvgK+Ar4CvgK+AggJCgsMDb4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgIODxAREhO+AgtCAiEfDMcBC0IDIR8MxgELQgQhHwzFAQtCBSEfDMQBC0IGIR8MwwELQgchHwzCAQtCCCEfDMEBC0IJIR8MwAELQgohHwy/AQtCCyEfDL4BC0IMIR8MvQELQg0hHwy8AQtCDiEfDLsBC0IPIR8MugELQgohHwy5AQtCCyEfDLgBC0IMIR8MtwELQg0hHwy2AQtCDiEfDLUBC0IPIR8MtAELQgAhHwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgHi0AAEFQag43xwHGAQABAgMEBQYHyAHIAcgByAHIAcgByAEICQoLDA3IAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgBDg8QERITyAELQgIhHwzGAQtCAyEfDMUBC0IEIR8MxAELQgUhHwzDAQtCBiEfDMIBC0IHIR8MwQELQgghHwzAAQtCCSEfDL8BC0IKIR8MvgELQgshHwy9AQtCDCEfDLwBC0INIR8MuwELQg4hHwy6AQtCDyEfDLkBC0IKIR8MuAELQgshHwy3AQtCDCEfDLYBC0INIR8MtQELQg4hHwy0AQtCDyEfDLMBCyAAQgAgACkDICIfIAIgASIea60iIH0iISAhIB9WGzcDICAfICBWIiJFDbQBQREhHgz3AgsCQCABIgEgAkYNACAAQYmAgIAANgIIIAAgATYCBCABIQFBGyEeDOcCC0ESIR4M9gILIAAgASIeIAIQsoCAgABBf2oOBaYBAKICAbMBtAELQRIhHgzkAgsgAEEBOgAvIB4hAQzyAgsgASIBIAJHDbQBQRYhHgzyAgsgASIcIAJHDRlBOSEeDPECCwJAIAEiASACRw0AQRohHgzxAgsgAEEANgIEIABBioCAgAA2AgggACABIAEQqoCAgAAiHg22ASABIQEMuQELAkAgASIeIAJHDQBBGyEeDPACCwJAIB4tAAAiAUEgRw0AIB5BAWohAQwaCyABQQlHDbYBIB5BAWohAQwZCwJAIAEiASACRg0AIAFBAWohAQwUC0EcIR4M7gILAkAgASIeIAJHDQBBHSEeDO4CCwJAIB4tAAAiAUEJRw0AIB4hAQzSAgsgAUEgRw21ASAeIQEM0QILAkAgASIBIAJHDQBBHiEeDO0CCyABLQAAQQpHDbgBIAFBAWohAQygAgsgASIBIAJHDbgBQSIhHgzrAgsDQAJAIAEtAAAiHkEgRg0AAkAgHkF2ag4EAL4BvgEAvAELIAEhAQzEAQsgAUEBaiIBIAJHDQALQSQhHgzqAgtBJSEeIAEiIyACRg3pAiACICNrIAAoAgAiJGohJSAjISYgJCEBAkADQCAmLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQfCfgIAAai0AAEcNASABQQNGDdYCIAFBAWohASAmQQFqIiYgAkcNAAsgACAlNgIADOoCCyAAQQA2AgAgJiEBDLsBC0EmIR4gASIjIAJGDegCIAIgI2sgACgCACIkaiElICMhJiAkIQECQANAICYtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFB9J+AgABqLQAARw0BIAFBCEYNvQEgAUEBaiEBICZBAWoiJiACRw0ACyAAICU2AgAM6QILIABBADYCACAmIQEMugELQSchHiABIiMgAkYN5wIgAiAjayAAKAIAIiRqISUgIyEmICQhAQJAA0AgJi0AACIiQSByICIgIkG/f2pB/wFxQRpJG0H/AXEgAUHQpoCAAGotAABHDQEgAUEFRg29ASABQQFqIQEgJkEBaiImIAJHDQALIAAgJTYCAAzoAgsgAEEANgIAICYhAQy5AQsCQCABIgEgAkYNAANAAkAgAS0AAEGAooCAAGotAAAiHkEBRg0AIB5BAkYNCiABIQEMwQELIAFBAWoiASACRw0AC0EjIR4M5wILQSMhHgzmAgsCQCABIgEgAkYNAANAAkAgAS0AACIeQSBGDQAgHkF2ag4EvQG+Ab4BvQG+AQsgAUEBaiIBIAJHDQALQSshHgzmAgtBKyEeDOUCCwNAAkAgAS0AACIeQSBGDQAgHkEJRw0DCyABQQFqIgEgAkcNAAtBLyEeDOQCCwNAAkAgAS0AACIeQSBGDQACQAJAIB5BdmoOBL4BAQG+AQALIB5BLEYNvwELIAEhAQwECyABQQFqIgEgAkcNAAtBMiEeDOMCCyABIQEMvwELQTMhHiABIiYgAkYN4QIgAiAmayAAKAIAIiNqISQgJiEiICMhAQJAA0AgIi0AAEEgciABQYCkgIAAai0AAEcNASABQQZGDdACIAFBAWohASAiQQFqIiIgAkcNAAsgACAkNgIADOICCyAAQQA2AgAgIiEBC0ErIR4M0AILAkAgASIdIAJHDQBBNCEeDOACCyAAQYqAgIAANgIIIAAgHTYCBCAdIQEgAC0ALEF/ag4ErwG5AbsBvQHHAgsgAUEBaiEBDK4BCwJAIAEiASACRg0AA0ACQCABLQAAIh5BIHIgHiAeQb9/akH/AXFBGkkbQf8BcSIeQQlGDQAgHkEgRg0AAkACQAJAAkAgHkGdf2oOEwADAwMDAwMDAQMDAwMDAwMDAwIDCyABQQFqIQFBJiEeDNMCCyABQQFqIQFBJyEeDNICCyABQQFqIQFBKCEeDNECCyABIQEMsgELIAFBAWoiASACRw0AC0EoIR4M3gILQSghHgzdAgsCQCABIgEgAkYNAANAAkAgAS0AAEGAoICAAGotAABBAUYNACABIQEMtwELIAFBAWoiASACRw0AC0EwIR4M3QILQTAhHgzcAgsCQANAAkAgAS0AAEF3ag4YAALBAsECxwLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQIAwQILIAFBAWoiASACRw0AC0E1IR4M3AILIAFBAWohAQtBISEeDMoCCyABIgEgAkcNuQFBNyEeDNkCCwNAAkAgAS0AAEGQpICAAGotAABBAUYNACABIQEMkAILIAFBAWoiASACRw0AC0E4IR4M2AILIBwtAAAiHkEgRg2aASAeQTpHDcYCIAAoAgQhASAAQQA2AgQgACABIBwQqICAgAAiAQ22ASAcQQFqIQEMuAELIAAgASACEKmAgIAAGgtBCiEeDMUCC0E6IR4gASImIAJGDdQCIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBkKaAgABqLQAARw3EAiABQQVGDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM1QILIABBADYCACAAQQE6ACwgJiAja0EGaiEBDL4CC0E7IR4gASImIAJGDdMCIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBlqaAgABqLQAARw3DAiABQQlGDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM1AILIABBADYCACAAQQI6ACwgJiAja0EKaiEBDL0CCwJAIAEiHCACRw0AQTwhHgzTAgsCQAJAIBwtAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAMMCwwLDAsMCwwIBwwILIBxBAWohAUEyIR4MwwILIBxBAWohAUEzIR4MwgILQT0hHiABIiYgAkYN0QIgAiAmayAAKAIAIiNqISQgJiEcICMhAQNAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBoKaAgABqLQAARw3AAiABQQFGDbQCIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNECC0E+IR4gASImIAJGDdACIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBoqaAgABqLQAARw3AAiABQQ5GDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM0QILIABBADYCACAAQQE6ACwgJiAja0EPaiEBDLoCC0E/IR4gASImIAJGDc8CIAIgJmsgACgCACIjaiEkICYhHCAjIQECQANAIBwtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFBwKaAgABqLQAARw2/AiABQQ9GDQEgAUEBaiEBIBxBAWoiHCACRw0ACyAAICQ2AgAM0AILIABBADYCACAAQQM6ACwgJiAja0EQaiEBDLkCC0HAACEeIAEiJiACRg3OAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQdCmgIAAai0AAEcNvgIgAUEFRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADM8CCyAAQQA2AgAgAEEEOgAsICYgI2tBBmohAQy4AgsCQCABIhwgAkcNAEHBACEeDM4CCwJAAkACQAJAIBwtAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAMACwALAAsACwALAAsACwALAAsACwALAAgHAAsACwAICA8ACCyAcQQFqIQFBNSEeDMACCyAcQQFqIQFBNiEeDL8CCyAcQQFqIQFBNyEeDL4CCyAcQQFqIQFBOCEeDL0CCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUE5IR4MvQILQcIAIR4MzAILIAEiASACRw2vAUHEACEeDMsCC0HFACEeIAEiJiACRg3KAiACICZrIAAoAgAiI2ohJCAmISIgIyEBAkADQCAiLQAAIAFB1qaAgABqLQAARw20ASABQQFGDQEgAUEBaiEBICJBAWoiIiACRw0ACyAAICQ2AgAMywILIABBADYCACAmICNrQQJqIQEMrwELAkAgASIBIAJHDQBBxwAhHgzKAgsgAS0AAEEKRw2zASABQQFqIQEMrwELAkAgASIBIAJHDQBByAAhHgzJAgsCQAJAIAEtAABBdmoOBAG0AbQBALQBCyABQQFqIQFBPSEeDLkCCyABQQFqIQEMrgELAkAgASIBIAJHDQBByQAhHgzIAgtBACEeAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgq7AboBAAECAwQFBge8AQtBAiEeDLoBC0EDIR4MuQELQQQhHgy4AQtBBSEeDLcBC0EGIR4MtgELQQchHgy1AQtBCCEeDLQBC0EJIR4MswELAkAgASIBIAJHDQBBygAhHgzHAgsgAS0AAEEuRw20ASABQQFqIQEMgAILAkAgASIBIAJHDQBBywAhHgzGAgtBACEeAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgq9AbwBAAECAwQFBge+AQtBAiEeDLwBC0EDIR4MuwELQQQhHgy6AQtBBSEeDLkBC0EGIR4MuAELQQchHgy3AQtBCCEeDLYBC0EJIR4MtQELQcwAIR4gASImIAJGDcQCIAIgJmsgACgCACIjaiEkICYhASAjISIDQCABLQAAICJB4qaAgABqLQAARw24ASAiQQNGDbcBICJBAWohIiABQQFqIgEgAkcNAAsgACAkNgIADMQCC0HNACEeIAEiJiACRg3DAiACICZrIAAoAgAiI2ohJCAmIQEgIyEiA0AgAS0AACAiQeamgIAAai0AAEcNtwEgIkECRg25ASAiQQFqISIgAUEBaiIBIAJHDQALIAAgJDYCAAzDAgtBzgAhHiABIiYgAkYNwgIgAiAmayAAKAIAIiNqISQgJiEBICMhIgNAIAEtAAAgIkHppoCAAGotAABHDbYBICJBA0YNuQEgIkEBaiEiIAFBAWoiASACRw0ACyAAICQ2AgAMwgILA0ACQCABLQAAIh5BIEYNAAJAAkACQCAeQbh/ag4LAAG6AboBugG6AboBugG6AboBAroBCyABQQFqIQFBwgAhHgy1AgsgAUEBaiEBQcMAIR4MtAILIAFBAWohAUHEACEeDLMCCyABQQFqIgEgAkcNAAtBzwAhHgzBAgsCQCABIgEgAkYNACAAIAFBAWoiASACEKWAgIAAGiABIQFBByEeDLECC0HQACEeDMACCwNAAkAgAS0AAEHwpoCAAGotAAAiHkEBRg0AIB5BfmoOA7kBugG7AbwBCyABQQFqIgEgAkcNAAtB0QAhHgy/AgsCQCABIgEgAkYNACABQQFqIQEMAwtB0gAhHgy+AgsDQAJAIAEtAABB8KiAgABqLQAAIh5BAUYNAAJAIB5BfmoOBLwBvQG+AQC/AQsgASEBQcYAIR4MrwILIAFBAWoiASACRw0AC0HTACEeDL0CCwJAIAEiASACRw0AQdQAIR4MvQILAkAgAS0AACIeQXZqDhqkAb8BvwGmAb8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/AbQBvwG/AQC9AQsgAUEBaiEBC0EGIR4MqwILA0ACQCABLQAAQfCqgIAAai0AAEEBRg0AIAEhAQz6AQsgAUEBaiIBIAJHDQALQdUAIR4MugILAkAgASIBIAJGDQAgAUEBaiEBDAMLQdYAIR4MuQILAkAgASIBIAJHDQBB1wAhHgy5AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB2AAhHgy4AgsgAUEBaiEBC0EEIR4MpgILAkAgASIiIAJHDQBB2QAhHgy2AgsgIiEBAkACQAJAICItAABB8KyAgABqLQAAQX9qDge+Ab8BwAEA+AEBAsEBCyAiQQFqIQEMCgsgIkEBaiEBDLcBC0EAIR4gAEEANgIcIABB8Y6AgAA2AhAgAEEHNgIMIAAgIkEBajYCFAy1AgsCQANAAkAgAS0AAEHwrICAAGotAAAiHkEERg0AAkACQCAeQX9qDge8Ab0BvgHDAQAEAcMBCyABIQFByQAhHgyoAgsgAUEBaiEBQcsAIR4MpwILIAFBAWoiASACRw0AC0HaACEeDLUCCyABQQFqIQEMtQELAkAgASIiIAJHDQBB2wAhHgy0AgsgIi0AAEEvRw2+ASAiQQFqIQEMBgsCQCABIiIgAkcNAEHcACEeDLMCCwJAICItAAAiAUEvRw0AICJBAWohAUHMACEeDKMCCyABQXZqIgFBFksNvQFBASABdEGJgIACcUUNvQEMkwILAkAgASIBIAJGDQAgAUEBaiEBQc0AIR4MogILQd0AIR4MsQILAkAgASIiIAJHDQBB3wAhHgyxAgsgIiEBAkAgIi0AAEHwsICAAGotAABBf2oOA5IC8AEAvgELQdAAIR4MoAILAkAgASIiIAJGDQADQAJAICItAABB8K6AgABqLQAAIgFBA0YNAAJAIAFBf2oOApQCAL8BCyAiIQFBzgAhHgyiAgsgIkEBaiIiIAJHDQALQd4AIR4MsAILQd4AIR4MrwILAkAgASIBIAJGDQAgAEGMgICAADYCCCAAIAE2AgQgASEBQc8AIR4MnwILQeAAIR4MrgILAkAgASIBIAJHDQBB4QAhHgyuAgsgAEGMgICAADYCCCAAIAE2AgQgASEBC0EDIR4MnAILA0AgAS0AAEEgRw2MAiABQQFqIgEgAkcNAAtB4gAhHgyrAgsCQCABIgEgAkcNAEHjACEeDKsCCyABLQAAQSBHDbgBIAFBAWohAQzUAQsCQCABIgggAkcNAEHkACEeDKoCCyAILQAAQcwARw27ASAIQQFqIQFBEyEeDLkBC0HlACEeIAEiIiACRg2oAiACICJrIAAoAgAiJmohIyAiIQggJiEBA0AgCC0AACABQfCygIAAai0AAEcNugEgAUEFRg24ASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAyoAgsCQCABIgggAkcNAEHmACEeDKgCCwJAAkAgCC0AAEG9f2oODAC7AbsBuwG7AbsBuwG7AbsBuwG7AQG7AQsgCEEBaiEBQdQAIR4MmAILIAhBAWohAUHVACEeDJcCC0HnACEeIAEiIiACRg2mAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB7bOAgABqLQAARw25ASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpwILIABBADYCACAiICZrQQNqIQFBECEeDLYBC0HoACEeIAEiIiACRg2lAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB9rKAgABqLQAARw24ASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpgILIABBADYCACAiICZrQQZqIQFBFiEeDLUBC0HpACEeIAEiIiACRg2kAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB/LKAgABqLQAARw23ASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMpQILIABBADYCACAiICZrQQRqIQFBBSEeDLQBCwJAIAEiCCACRw0AQeoAIR4MpAILIAgtAABB2QBHDbUBIAhBAWohAUEIIR4MswELAkAgASIIIAJHDQBB6wAhHgyjAgsCQAJAIAgtAABBsn9qDgMAtgEBtgELIAhBAWohAUHZACEeDJMCCyAIQQFqIQFB2gAhHgySAgsCQCABIgggAkcNAEHsACEeDKICCwJAAkAgCC0AAEG4f2oOCAC1AbUBtQG1AbUBtQEBtQELIAhBAWohAUHYACEeDJICCyAIQQFqIQFB2wAhHgyRAgtB7QAhHiABIiIgAkYNoAIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQYCzgIAAai0AAEcNswEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKECC0EAIR4gAEEANgIAICIgJmtBA2ohAQywAQtB7gAhHiABIiIgAkYNnwIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQYOzgIAAai0AAEcNsgEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKACCyAAQQA2AgAgIiAma0EFaiEBQSMhHgyvAQsCQCABIgggAkcNAEHvACEeDJ8CCwJAAkAgCC0AAEG0f2oOCACyAbIBsgGyAbIBsgEBsgELIAhBAWohAUHdACEeDI8CCyAIQQFqIQFB3gAhHgyOAgsCQCABIgggAkcNAEHwACEeDJ4CCyAILQAAQcUARw2vASAIQQFqIQEM3gELQfEAIR4gASIiIAJGDZwCIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUGIs4CAAGotAABHDa8BIAFBA0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAydAgsgAEEANgIAICIgJmtBBGohAUEtIR4MrAELQfIAIR4gASIiIAJGDZsCIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUHQs4CAAGotAABHDa4BIAFBCEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAycAgsgAEEANgIAICIgJmtBCWohAUEpIR4MqwELAkAgASIBIAJHDQBB8wAhHgybAgtBASEeIAEtAABB3wBHDaoBIAFBAWohAQzcAQtB9AAhHiABIiIgAkYNmQIgAiAiayAAKAIAIiZqISMgIiEIICYhAQNAIAgtAAAgAUGMs4CAAGotAABHDasBIAFBAUYN9wEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMmQILAkAgASIeIAJHDQBB9QAhHgyZAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQY6zgIAAai0AAEcNqwEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfUAIR4MmQILIABBADYCACAeICJrQQNqIQFBAiEeDKgBCwJAIAEiHiACRw0AQfYAIR4MmAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHws4CAAGotAABHDaoBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH2ACEeDJgCCyAAQQA2AgAgHiAia0ECaiEBQR8hHgynAQsCQCABIh4gAkcNAEH3ACEeDJcCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFB8rOAgABqLQAARw2pASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB9wAhHgyXAgsgAEEANgIAIB4gImtBAmohAUEJIR4MpgELAkAgASIIIAJHDQBB+AAhHgyWAgsCQAJAIAgtAABBt39qDgcAqQGpAakBqQGpAQGpAQsgCEEBaiEBQeYAIR4MhgILIAhBAWohAUHnACEeDIUCCwJAIAEiHiACRw0AQfkAIR4MlQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGRs4CAAGotAABHDacBIAFBBUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH5ACEeDJUCCyAAQQA2AgAgHiAia0EGaiEBQRghHgykAQsCQCABIh4gAkcNAEH6ACEeDJQCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBl7OAgABqLQAARw2mASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB+gAhHgyUAgsgAEEANgIAIB4gImtBA2ohAUEXIR4MowELAkAgASIeIAJHDQBB+wAhHgyTAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQZqzgIAAai0AAEcNpQEgAUEGRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfsAIR4MkwILIABBADYCACAeICJrQQdqIQFBFSEeDKIBCwJAIAEiHiACRw0AQfwAIR4MkgILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGhs4CAAGotAABHDaQBIAFBBUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH8ACEeDJICCyAAQQA2AgAgHiAia0EGaiEBQR4hHgyhAQsCQCABIgggAkcNAEH9ACEeDJECCyAILQAAQcwARw2iASAIQQFqIQFBCiEeDKABCwJAIAEiCCACRw0AQf4AIR4MkAILAkACQCAILQAAQb9/ag4PAKMBowGjAaMBowGjAaMBowGjAaMBowGjAaMBAaMBCyAIQQFqIQFB7AAhHgyAAgsgCEEBaiEBQe0AIR4M/wELAkAgASIIIAJHDQBB/wAhHgyPAgsCQAJAIAgtAABBv39qDgMAogEBogELIAhBAWohAUHrACEeDP8BCyAIQQFqIQFB7gAhHgz+AQsCQCABIh4gAkcNAEGAASEeDI4CCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBp7OAgABqLQAARw2gASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBgAEhHgyOAgsgAEEANgIAIB4gImtBAmohAUELIR4MnQELAkAgASIIIAJHDQBBgQEhHgyNAgsCQAJAAkACQCAILQAAQVNqDiMAogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAQGiAaIBogGiAaIBAqIBogGiAQOiAQsgCEEBaiEBQekAIR4M/wELIAhBAWohAUHqACEeDP4BCyAIQQFqIQFB7wAhHgz9AQsgCEEBaiEBQfAAIR4M/AELAkAgASIeIAJHDQBBggEhHgyMAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQamzgIAAai0AAEcNngEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYIBIR4MjAILIABBADYCACAeICJrQQVqIQFBGSEeDJsBCwJAIAEiIiACRw0AQYMBIR4MiwILIAIgImsgACgCACImaiEeICIhCCAmIQECQANAIAgtAAAgAUGus4CAAGotAABHDZ0BIAFBBUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgHjYCAEGDASEeDIsCCyAAQQA2AgBBBiEeICIgJmtBBmohAQyaAQsCQCABIh4gAkcNAEGEASEeDIoCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBtLOAgABqLQAARw2cASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBhAEhHgyKAgsgAEEANgIAIB4gImtBAmohAUEcIR4MmQELAkAgASIeIAJHDQBBhQEhHgyJAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbazgIAAai0AAEcNmwEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYUBIR4MiQILIABBADYCACAeICJrQQJqIQFBJyEeDJgBCwJAIAEiCCACRw0AQYYBIR4MiAILAkACQCAILQAAQax/ag4CAAGbAQsgCEEBaiEBQfQAIR4M+AELIAhBAWohAUH1ACEeDPcBCwJAIAEiHiACRw0AQYcBIR4MhwILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUG4s4CAAGotAABHDZkBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGHASEeDIcCCyAAQQA2AgAgHiAia0ECaiEBQSYhHgyWAQsCQCABIh4gAkcNAEGIASEeDIYCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBurOAgABqLQAARw2YASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBiAEhHgyGAgsgAEEANgIAIB4gImtBAmohAUEDIR4MlQELAkAgASIeIAJHDQBBiQEhHgyFAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQe2zgIAAai0AAEcNlwEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYkBIR4MhQILIABBADYCACAeICJrQQNqIQFBDCEeDJQBCwJAIAEiHiACRw0AQYoBIR4MhAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUG8s4CAAGotAABHDZYBIAFBA0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGKASEeDIQCCyAAQQA2AgAgHiAia0EEaiEBQQ0hHgyTAQsCQCABIgggAkcNAEGLASEeDIMCCwJAAkAgCC0AAEG6f2oOCwCWAZYBlgGWAZYBlgGWAZYBlgEBlgELIAhBAWohAUH5ACEeDPMBCyAIQQFqIQFB+gAhHgzyAQsCQCABIgggAkcNAEGMASEeDIICCyAILQAAQdAARw2TASAIQQFqIQEMxAELAkAgASIIIAJHDQBBjQEhHgyBAgsCQAJAIAgtAABBt39qDgcBlAGUAZQBlAGUAQCUAQsgCEEBaiEBQfwAIR4M8QELIAhBAWohAUEiIR4MkAELAkAgASIeIAJHDQBBjgEhHgyAAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQcCzgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQY4BIR4MgAILIABBADYCACAeICJrQQJqIQFBHSEeDI8BCwJAIAEiCCACRw0AQY8BIR4M/wELAkACQCAILQAAQa5/ag4DAJIBAZIBCyAIQQFqIQFB/gAhHgzvAQsgCEEBaiEBQQQhHgyOAQsCQCABIgggAkcNAEGQASEeDP4BCwJAAkACQAJAAkAgCC0AAEG/f2oOFQCUAZQBlAGUAZQBlAGUAZQBlAGUAQGUAZQBApQBlAEDlAGUAQSUAQsgCEEBaiEBQfYAIR4M8QELIAhBAWohAUH3ACEeDPABCyAIQQFqIQFB+AAhHgzvAQsgCEEBaiEBQf0AIR4M7gELIAhBAWohAUH/ACEeDO0BCwJAIAQgAkcNAEGRASEeDP0BCyACIARrIAAoAgAiHmohIiAEIQggHiEBAkADQCAILQAAIAFB7bOAgABqLQAARw2PASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBkQEhHgz9AQsgAEEANgIAIAQgHmtBA2ohAUERIR4MjAELAkAgBSACRw0AQZIBIR4M/AELIAIgBWsgACgCACIeaiEiIAUhCCAeIQECQANAIAgtAAAgAUHCs4CAAGotAABHDY4BIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGSASEeDPwBCyAAQQA2AgAgBSAea0EDaiEBQSwhHgyLAQsCQCAGIAJHDQBBkwEhHgz7AQsgAiAGayAAKAIAIh5qISIgBiEIIB4hAQJAA0AgCC0AACABQcWzgIAAai0AAEcNjQEgAUEERg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZMBIR4M+wELIABBADYCACAGIB5rQQVqIQFBKyEeDIoBCwJAIAcgAkcNAEGUASEeDPoBCyACIAdrIAAoAgAiHmohIiAHIQggHiEBAkADQCAILQAAIAFByrOAgABqLQAARw2MASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBlAEhHgz6AQsgAEEANgIAIAcgHmtBA2ohAUEUIR4MiQELAkAgCCACRw0AQZUBIR4M+QELAkACQAJAAkAgCC0AAEG+f2oODwABAo4BjgGOAY4BjgGOAY4BjgGOAY4BjgEDjgELIAhBAWohBEGBASEeDOsBCyAIQQFqIQVBggEhHgzqAQsgCEEBaiEGQYMBIR4M6QELIAhBAWohB0GEASEeDOgBCwJAIAggAkcNAEGWASEeDPgBCyAILQAAQcUARw2JASAIQQFqIQgMuwELAkAgCSACRw0AQZcBIR4M9wELIAIgCWsgACgCACIeaiEiIAkhCCAeIQECQANAIAgtAAAgAUHNs4CAAGotAABHDYkBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGXASEeDPcBCyAAQQA2AgAgCSAea0EDaiEBQQ4hHgyGAQsCQCAIIAJHDQBBmAEhHgz2AQsgCC0AAEHQAEcNhwEgCEEBaiEBQSUhHgyFAQsCQCAKIAJHDQBBmQEhHgz1AQsgAiAKayAAKAIAIh5qISIgCiEIIB4hAQJAA0AgCC0AACABQdCzgIAAai0AAEcNhwEgAUEIRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZkBIR4M9QELIABBADYCACAKIB5rQQlqIQFBKiEeDIQBCwJAIAggAkcNAEGaASEeDPQBCwJAAkAgCC0AAEGrf2oOCwCHAYcBhwGHAYcBhwGHAYcBhwEBhwELIAhBAWohCEGIASEeDOQBCyAIQQFqIQpBiQEhHgzjAQsCQCAIIAJHDQBBmwEhHgzzAQsCQAJAIAgtAABBv39qDhQAhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBAYYBCyAIQQFqIQlBhwEhHgzjAQsgCEEBaiEIQYoBIR4M4gELAkAgCyACRw0AQZwBIR4M8gELIAIgC2sgACgCACIeaiEiIAshCCAeIQECQANAIAgtAAAgAUHZs4CAAGotAABHDYQBIAFBA0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGcASEeDPIBCyAAQQA2AgAgCyAea0EEaiEBQSEhHgyBAQsCQCAMIAJHDQBBnQEhHgzxAQsgAiAMayAAKAIAIh5qISIgDCEIIB4hAQJAA0AgCC0AACABQd2zgIAAai0AAEcNgwEgAUEGRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZ0BIR4M8QELIABBADYCACAMIB5rQQdqIQFBGiEeDIABCwJAIAggAkcNAEGeASEeDPABCwJAAkACQCAILQAAQbt/ag4RAIQBhAGEAYQBhAGEAYQBhAGEAQGEAYQBhAGEAYQBAoQBCyAIQQFqIQhBiwEhHgzhAQsgCEEBaiELQYwBIR4M4AELIAhBAWohDEGNASEeDN8BCwJAIA0gAkcNAEGfASEeDO8BCyACIA1rIAAoAgAiHmohIiANIQggHiEBAkADQCAILQAAIAFB5LOAgABqLQAARw2BASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBnwEhHgzvAQsgAEEANgIAIA0gHmtBBmohAUEoIR4MfgsCQCAOIAJHDQBBoAEhHgzuAQsgAiAOayAAKAIAIh5qISIgDiEIIB4hAQJAA0AgCC0AACABQeqzgIAAai0AAEcNgAEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQaABIR4M7gELIABBADYCACAOIB5rQQNqIQFBByEeDH0LAkAgCCACRw0AQaEBIR4M7QELAkACQCAILQAAQbt/ag4OAIABgAGAAYABgAGAAYABgAGAAYABgAGAAQGAAQsgCEEBaiENQY8BIR4M3QELIAhBAWohDkGQASEeDNwBCwJAIA8gAkcNAEGiASEeDOwBCyACIA9rIAAoAgAiHmohIiAPIQggHiEBAkADQCAILQAAIAFB7bOAgABqLQAARw1+IAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGiASEeDOwBCyAAQQA2AgAgDyAea0EDaiEBQRIhHgx7CwJAIBAgAkcNAEGjASEeDOsBCyACIBBrIAAoAgAiHmohIiAQIQggHiEBAkADQCAILQAAIAFB8LOAgABqLQAARw19IAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGjASEeDOsBCyAAQQA2AgAgECAea0ECaiEBQSAhHgx6CwJAIBEgAkcNAEGkASEeDOoBCyACIBFrIAAoAgAiHmohIiARIQggHiEBAkADQCAILQAAIAFB8rOAgABqLQAARw18IAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGkASEeDOoBCyAAQQA2AgAgESAea0ECaiEBQQ8hHgx5CwJAIAggAkcNAEGlASEeDOkBCwJAAkAgCC0AAEG3f2oOBwB8fHx8fAF8CyAIQQFqIRBBkwEhHgzZAQsgCEEBaiERQZQBIR4M2AELAkAgEiACRw0AQaYBIR4M6AELIAIgEmsgACgCACIeaiEiIBIhCCAeIQECQANAIAgtAAAgAUH0s4CAAGotAABHDXogAUEHRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQaYBIR4M6AELIABBADYCACASIB5rQQhqIQFBGyEeDHcLAkAgCCACRw0AQacBIR4M5wELAkACQAJAIAgtAABBvn9qDhIAe3t7e3t7e3t7AXt7e3t7ewJ7CyAIQQFqIQ9BkgEhHgzYAQsgCEEBaiEIQZUBIR4M1wELIAhBAWohEkGWASEeDNYBCwJAIAggAkcNAEGoASEeDOYBCyAILQAAQc4ARw13IAhBAWohCAyqAQsCQCAIIAJHDQBBqQEhHgzlAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAILQAAQb9/ag4VAAECA4YBBAUGhgGGAYYBBwgJCguGAQwNDg+GAQsgCEEBaiEBQdYAIR4M4wELIAhBAWohAUHXACEeDOIBCyAIQQFqIQFB3AAhHgzhAQsgCEEBaiEBQeAAIR4M4AELIAhBAWohAUHhACEeDN8BCyAIQQFqIQFB5AAhHgzeAQsgCEEBaiEBQeUAIR4M3QELIAhBAWohAUHoACEeDNwBCyAIQQFqIQFB8QAhHgzbAQsgCEEBaiEBQfIAIR4M2gELIAhBAWohAUHzACEeDNkBCyAIQQFqIQFBgAEhHgzYAQsgCEEBaiEIQYYBIR4M1wELIAhBAWohCEGOASEeDNYBCyAIQQFqIQhBkQEhHgzVAQsgCEEBaiEIQZgBIR4M1AELAkAgFCACRw0AQasBIR4M5AELIBRBAWohEwx3CwNAAkAgHi0AAEF2ag4EdwAAegALIB5BAWoiHiACRw0AC0GsASEeDOIBCwJAIBUgAkYNACAAQY2AgIAANgIIIAAgFTYCBCAVIQFBASEeDNIBC0GtASEeDOEBCwJAIBUgAkcNAEGuASEeDOEBCwJAAkAgFS0AAEF2ag4EAasBqwEAqwELIBVBAWohFAx4CyAVQQFqIRMMdAsgACATIAIQp4CAgAAaIBMhAQxFCwJAIBUgAkcNAEGvASEeDN8BCwJAAkAgFS0AAEF2ag4XAXl5AXl5eXl5eXl5eXl5eXl5eXl5eQB5CyAVQQFqIRULQZwBIR4MzgELAkAgFiACRw0AQbEBIR4M3gELIBYtAABBIEcNdyAAQQA7ATIgFkEBaiEBQaABIR4MzQELIAEhJgJAA0AgJiIVIAJGDQEgFS0AAEFQakH/AXEiHkEKTw2oAQJAIAAvATIiIkGZM0sNACAAICJBCmwiIjsBMiAeQf//A3MgIkH+/wNxSQ0AIBVBAWohJiAAICIgHmoiHjsBMiAeQf//A3FB6AdJDQELC0EAIR4gAEEANgIcIABBnYmAgAA2AhAgAEENNgIMIAAgFUEBajYCFAzdAQtBsAEhHgzcAQsCQCAXIAJHDQBBsgEhHgzcAQtBACEeAkACQAJAAkACQAJAAkACQCAXLQAAQVBqDgp/fgABAgMEBQYHgAELQQIhHgx+C0EDIR4MfQtBBCEeDHwLQQUhHgx7C0EGIR4MegtBByEeDHkLQQghHgx4C0EJIR4MdwsCQCAYIAJHDQBBswEhHgzbAQsgGC0AAEEuRw14IBhBAWohFwymAQsCQCAZIAJHDQBBtAEhHgzaAQtBACEeAkACQAJAAkACQAJAAkACQCAZLQAAQVBqDgqBAYABAAECAwQFBgeCAQtBAiEeDIABC0EDIR4MfwtBBCEeDH4LQQUhHgx9C0EGIR4MfAtBByEeDHsLQQghHgx6C0EJIR4MeQsCQCAIIAJHDQBBtQEhHgzZAQsgAiAIayAAKAIAIiJqISYgCCEZICIhHgNAIBktAAAgHkH8s4CAAGotAABHDXsgHkEERg20ASAeQQFqIR4gGUEBaiIZIAJHDQALIAAgJjYCAEG1ASEeDNgBCwJAIBogAkcNAEG2ASEeDNgBCyACIBprIAAoAgAiHmohIiAaIQggHiEBA0AgCC0AACABQYG0gIAAai0AAEcNeyABQQFGDbYBIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQbYBIR4M1wELAkAgGyACRw0AQbcBIR4M1wELIAIgG2sgACgCACIZaiEiIBshCCAZIR4DQCAILQAAIB5Bg7SAgABqLQAARw16IB5BAkYNfCAeQQFqIR4gCEEBaiIIIAJHDQALIAAgIjYCAEG3ASEeDNYBCwJAIAggAkcNAEG4ASEeDNYBCwJAAkAgCC0AAEG7f2oOEAB7e3t7e3t7e3t7e3t7ewF7CyAIQQFqIRpBpQEhHgzGAQsgCEEBaiEbQaYBIR4MxQELAkAgCCACRw0AQbkBIR4M1QELIAgtAABByABHDXggCEEBaiEIDKIBCwJAIAggAkcNAEG6ASEeDNQBCyAILQAAQcgARg2iASAAQQE6ACgMmQELA0ACQCAILQAAQXZqDgQAenoAegsgCEEBaiIIIAJHDQALQbwBIR4M0gELIABBADoALyAALQAtQQRxRQ3IAQsgAEEAOgAvIAEhAQx5CyAeQRVGDakBIABBADYCHCAAIAE2AhQgAEGrjICAADYCECAAQRI2AgxBACEeDM8BCwJAIAAgHiACEK2AgIAAIgENACAeIQEMxQELAkAgAUEVRw0AIABBAzYCHCAAIB42AhQgAEHWkoCAADYCECAAQRU2AgxBACEeDM8BCyAAQQA2AhwgACAeNgIUIABBq4yAgAA2AhAgAEESNgIMQQAhHgzOAQsgHkEVRg2lASAAQQA2AhwgACABNgIUIABBiIyAgAA2AhAgAEEUNgIMQQAhHgzNAQsgACgCBCEmIABBADYCBCAeIB+naiIjIQEgACAmIB4gIyAiGyIeEK6AgIAAIiJFDXogAEEHNgIcIAAgHjYCFCAAICI2AgxBACEeDMwBCyAAIAAvATBBgAFyOwEwIAEhAQwxCyAeQRVGDaEBIABBADYCHCAAIAE2AhQgAEHFi4CAADYCECAAQRM2AgxBACEeDMoBCyAAQQA2AhwgACABNgIUIABBi4uAgAA2AhAgAEECNgIMQQAhHgzJAQsgHkE7Rw0BIAFBAWohAQtBCCEeDLcBC0EAIR4gAEEANgIcIAAgATYCFCAAQaOQgIAANgIQIABBDDYCDAzGAQtCASEfCyAeQQFqIQECQCAAKQMgIiBC//////////8PVg0AIAAgIEIEhiAfhDcDICABIQEMdwsgAEEANgIcIAAgATYCFCAAQYmJgIAANgIQIABBDDYCDEEAIR4MxAELIABBADYCHCAAIB42AhQgAEGjkICAADYCECAAQQw2AgxBACEeDMMBCyAAKAIEISYgAEEANgIEIB4gH6dqIiMhASAAICYgHiAjICIbIh4QroCAgAAiIkUNbiAAQQU2AhwgACAeNgIUIAAgIjYCDEEAIR4MwgELIABBADYCHCAAIB42AhQgAEHdlICAADYCECAAQQ82AgxBACEeDMEBCyAAIB4gAhCtgICAACIBDQEgHiEBC0EPIR4MrwELAkAgAUEVRw0AIABBAjYCHCAAIB42AhQgAEHWkoCAADYCECAAQRU2AgxBACEeDL8BCyAAQQA2AhwgACAeNgIUIABBq4yAgAA2AhAgAEESNgIMQQAhHgy+AQsgAUEBaiEeAkAgAC8BMCIBQYABcUUNAAJAIAAgHiACELCAgIAAIgENACAeIQEMawsgAUEVRw2XASAAQQU2AhwgACAeNgIUIABBvpKAgAA2AhAgAEEVNgIMQQAhHgy+AQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgHjYCFCAAQeyPgIAANgIQIABBBDYCDEEAIR4MvgELIAAgHiACELGAgIAAGiAeIQECQAJAAkACQAJAIAAgHiACEKyAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIB4hAQtBHSEeDK8BCyAAQRU2AhwgACAeNgIUIABB4ZGAgAA2AhAgAEEVNgIMQQAhHgy+AQsgAEEANgIcIAAgHjYCFCAAQbGLgIAANgIQIABBETYCDEEAIR4MvQELIAAtAC1BAXFFDQFBqgEhHgysAQsCQCAcIAJGDQADQAJAIBwtAABBIEYNACAcIQEMqAELIBxBAWoiHCACRw0AC0EXIR4MvAELQRchHgy7AQsgACgCBCEBIABBADYCBCAAIAEgHBCogICAACIBRQ2QASAAQRg2AhwgACABNgIMIAAgHEEBajYCFEEAIR4MugELIABBGTYCHCAAIAE2AhQgACAeNgIMQQAhHgy5AQsgHiEBQQEhIgJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEiDAELQQQhIgsgAEEBOgAsIAAgAC8BMCAicjsBMAsgHiEBC0EgIR4MqQELIABBADYCHCAAIB42AhQgAEGBj4CAADYCECAAQQs2AgxBACEeDLgBCyAeIQFBASEiAkACQAJAAkACQCAALQAsQXtqDgQCAAEDBQtBAiEiDAELQQQhIgsgAEEBOgAsIAAgAC8BMCAicjsBMAwBCyAAIAAvATBBCHI7ATALIB4hAQtBqwEhHgymAQsgACABIAIQq4CAgAAaDBsLAkAgASIeIAJGDQAgHiEBAkACQCAeLQAAQXZqDgQBamoAagsgHkEBaiEBC0EeIR4MpQELQcMAIR4MtAELIABBADYCHCAAIAE2AhQgAEGRkYCAADYCECAAQQM2AgxBACEeDLMBCwJAIAEtAABBDUcNACAAKAIEIR4gAEEANgIEAkAgACAeIAEQqoCAgAAiHg0AIAFBAWohAQxpCyAAQR42AhwgACAeNgIMIAAgAUEBajYCFEEAIR4MswELIAEhASAALQAtQQFxRQ2uAUGtASEeDKIBCwJAIAEiASACRw0AQR8hHgyyAQsCQAJAA0ACQCABLQAAQXZqDgQCAAADAAsgAUEBaiIBIAJHDQALQR8hHgyzAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABIQEMaAsgAEEeNgIcIAAgATYCFCAAIB42AgxBACEeDLIBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQqoCAgAAiHg0AIAFBAWohAQxnCyAAQR42AhwgACAeNgIMIAAgAUEBajYCFEEAIR4MsQELIB5BLEcNASABQQFqIR5BASEBAkACQAJAAkACQCAALQAsQXtqDgQDAQIEAAsgHiEBDAQLQQIhAQwBC0EEIQELIABBAToALCAAIAAvATAgAXI7ATAgHiEBDAELIAAgAC8BMEEIcjsBMCAeIQELQS4hHgyfAQsgAEEAOgAsIAEhAQtBKSEeDJ0BCyAAQQA2AgAgIyAka0EJaiEBQQUhHgyYAQsgAEEANgIAICMgJGtBBmohAUEHIR4MlwELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEIIABBADYCBAJAIAAgCCABEKqAgIAAIggNACABIQEMnQELIABBKjYCHCAAIAE2AhQgACAINgIMQQAhHgypAQsgAEEIOgAsIAEhAQtBJSEeDJcBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNeCABIQEMAwsgAC0AMEEgcQ15Qa4BIR4MlQELAkAgHSACRg0AAkADQAJAIB0tAABBUGoiAUH/AXFBCkkNACAdIQFBKiEeDJgBCyAAKQMgIh9CmbPmzJmz5swZVg0BIAAgH0IKfiIfNwMgIB8gAa0iIEJ/hUKAfoRWDQEgACAfICBC/wGDfDcDICAdQQFqIh0gAkcNAAtBLCEeDKYBCyAAKAIEIQggAEEANgIEIAAgCCAdQQFqIgEQqoCAgAAiCA16IAEhAQyZAQtBLCEeDKQBCwJAIAAvATAiAUEIcUUNACAALQAoQQFHDQAgAC0ALUEIcUUNdQsgACABQff7A3FBgARyOwEwIB0hAQtBLCEeDJIBCyAAIAAvATBBEHI7ATAMhwELIABBNjYCHCAAIAE2AgwgACAcQQFqNgIUQQAhHgygAQsgAS0AAEE6Rw0CIAAoAgQhHiAAQQA2AgQgACAeIAEQqICAgAAiHg0BIAFBAWohAQtBMSEeDI4BCyAAQTY2AhwgACAeNgIMIAAgAUEBajYCFEEAIR4MnQELIABBADYCHCAAIAE2AhQgAEGHjoCAADYCECAAQQo2AgxBACEeDJwBCyABQQFqIQELIABBgBI7ASogACABIAIQpYCAgAAaIAEhAQtBrAEhHgyJAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMUAsgAEHEADYCHCAAIAE2AhQgACAeNgIMQQAhHgyYAQsgAEEANgIcIAAgIjYCFCAAQeWYgIAANgIQIABBBzYCDCAAQQA2AgBBACEeDJcBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQxPCyAAQcUANgIcIAAgATYCFCAAIB42AgxBACEeDJYBC0EAIR4gAEEANgIcIAAgATYCFCAAQeuNgIAANgIQIABBCTYCDAyVAQtBASEeCyAAIB46ACsgAUEBaiEBIAAtAClBIkYNiwEMTAsgAEEANgIcIAAgATYCFCAAQaKNgIAANgIQIABBCTYCDEEAIR4MkgELIABBADYCHCAAIAE2AhQgAEHFioCAADYCECAAQQk2AgxBACEeDJEBC0EBIR4LIAAgHjoAKiABQQFqIQEMSgsgAEEANgIcIAAgATYCFCAAQbiNgIAANgIQIABBCTYCDEEAIR4MjgELIABBADYCACAmICNrQQRqIQECQCAALQApQSNPDQAgASEBDEoLIABBADYCHCAAIAE2AhQgAEGviYCAADYCECAAQQg2AgxBACEeDI0BCyAAQQA2AgALQQAhHiAAQQA2AhwgACABNgIUIABBuZuAgAA2AhAgAEEINgIMDIsBCyAAQQA2AgAgJiAja0EDaiEBAkAgAC0AKUEhRw0AIAEhAQxHCyAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMQQAhHgyKAQsgAEEANgIAICYgI2tBBGohAQJAIAAtACkiHkFdakELTw0AIAEhAQxGCwJAIB5BBksNAEEBIB50QcoAcUUNACABIQEMRgtBACEeIABBADYCHCAAIAE2AhQgAEHTiYCAADYCECAAQQg2AgwMiQELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDEYLIABB0AA2AhwgACABNgIUIAAgHjYCDEEAIR4MiAELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDD8LIABBxAA2AhwgACABNgIUIAAgHjYCDEEAIR4MhwELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDD8LIABBxQA2AhwgACABNgIUIAAgHjYCDEEAIR4MhgELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDEMLIABB0AA2AhwgACABNgIUIAAgHjYCDEEAIR4MhQELIABBADYCHCAAIAE2AhQgAEGiioCAADYCECAAQQc2AgxBACEeDIQBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw7CyAAQcQANgIcIAAgATYCFCAAIB42AgxBACEeDIMBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw7CyAAQcUANgIcIAAgATYCFCAAIB42AgxBACEeDIIBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw/CyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDIEBCyAAQQA2AhwgACABNgIUIABBuIiAgAA2AhAgAEEHNgIMQQAhHgyAAQsgHkE/Rw0BIAFBAWohAQtBBSEeDG4LQQAhHiAAQQA2AhwgACABNgIUIABB04+AgAA2AhAgAEEHNgIMDH0LIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDDQLIABBxAA2AhwgACABNgIUIAAgHjYCDEEAIR4MfAsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMNAsgAEHFADYCHCAAIAE2AhQgACAeNgIMQQAhHgx7CyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw4CyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDHoLIAAoAgQhASAAQQA2AgQCQCAAIAEgIhCkgICAACIBDQAgIiEBDDELIABBxAA2AhwgACAiNgIUIAAgATYCDEEAIR4MeQsgACgCBCEBIABBADYCBAJAIAAgASAiEKSAgIAAIgENACAiIQEMMQsgAEHFADYCHCAAICI2AhQgACABNgIMQQAhHgx4CyAAKAIEIQEgAEEANgIEAkAgACABICIQpICAgAAiAQ0AICIhAQw1CyAAQdAANgIcIAAgIjYCFCAAIAE2AgxBACEeDHcLIABBADYCHCAAICI2AhQgAEHQjICAADYCECAAQQc2AgxBACEeDHYLIABBADYCHCAAIAE2AhQgAEHQjICAADYCECAAQQc2AgxBACEeDHULQQAhHiAAQQA2AhwgACAiNgIUIABBv5SAgAA2AhAgAEEHNgIMDHQLIABBADYCHCAAICI2AhQgAEG/lICAADYCECAAQQc2AgxBACEeDHMLIABBADYCHCAAICI2AhQgAEHUjoCAADYCECAAQQc2AgxBACEeDHILIABBADYCHCAAIAE2AhQgAEHBk4CAADYCECAAQQY2AgxBACEeDHELIABBADYCACAiICZrQQZqIQFBJCEeCyAAIB46ACkgASEBDE4LIABBADYCAAtBACEeIABBADYCHCAAIAg2AhQgAEGklICAADYCECAAQQY2AgwMbQsgACgCBCETIABBADYCBCAAIBMgHhCmgICAACITDQEgHkEBaiETC0GdASEeDFsLIABBqgE2AhwgACATNgIMIAAgHkEBajYCFEEAIR4MagsgACgCBCEUIABBADYCBCAAIBQgHhCmgICAACIUDQEgHkEBaiEUC0GaASEeDFgLIABBqwE2AhwgACAUNgIMIAAgHkEBajYCFEEAIR4MZwsgAEEANgIcIAAgFTYCFCAAQfOKgIAANgIQIABBDTYCDEEAIR4MZgsgAEEANgIcIAAgFjYCFCAAQc6NgIAANgIQIABBCTYCDEEAIR4MZQtBASEeCyAAIB46ACsgF0EBaiEWDC4LIABBADYCHCAAIBc2AhQgAEGijYCAADYCECAAQQk2AgxBACEeDGILIABBADYCHCAAIBg2AhQgAEHFioCAADYCECAAQQk2AgxBACEeDGELQQEhHgsgACAeOgAqIBlBAWohGAwsCyAAQQA2AhwgACAZNgIUIABBuI2AgAA2AhAgAEEJNgIMQQAhHgxeCyAAQQA2AhwgACAZNgIUIABBuZuAgAA2AhAgAEEINgIMIABBADYCAEEAIR4MXQsgAEEANgIAC0EAIR4gAEEANgIcIAAgCDYCFCAAQYuUgIAANgIQIABBCDYCDAxbCyAAQQI6ACggAEEANgIAIBsgGWtBA2ohGQw2CyAAQQI6AC8gACAIIAIQo4CAgAAiHg0BQa8BIR4MSQsgAC0AKEF/ag4CHiAfCyAeQRVHDScgAEG7ATYCHCAAIAg2AhQgAEGnkoCAADYCECAAQRU2AgxBACEeDFcLQQAhHgxGC0ECIR4MRQtBDiEeDEQLQRAhHgxDC0EcIR4MQgtBFCEeDEELQRYhHgxAC0EXIR4MPwtBGSEeDD4LQRohHgw9C0E6IR4MPAtBIyEeDDsLQSQhHgw6C0EwIR4MOQtBOyEeDDgLQTwhHgw3C0E+IR4MNgtBPyEeDDULQcAAIR4MNAtBwQAhHgwzC0HFACEeDDILQccAIR4MMQtByAAhHgwwC0HKACEeDC8LQd8AIR4MLgtB4gAhHgwtC0H7ACEeDCwLQYUBIR4MKwtBlwEhHgwqC0GZASEeDCkLQakBIR4MKAtBpAEhHgwnC0GbASEeDCYLQZ4BIR4MJQtBnwEhHgwkC0GhASEeDCMLQaIBIR4MIgtBpwEhHgwhC0GoASEeDCALIABBADYCHCAAIAg2AhQgAEHmi4CAADYCECAAQRA2AgxBACEeDC8LIABBADYCBCAAIB0gHRCqgICAACIBRQ0BIABBLTYCHCAAIAE2AgwgACAdQQFqNgIUQQAhHgwuCyAAKAIEIQggAEEANgIEAkAgACAIIAEQqoCAgAAiCEUNACAAQS42AhwgACAINgIMIAAgAUEBajYCFEEAIR4MLgsgAUEBaiEBDB4LIB1BAWohAQweCyAAQQA2AhwgACAdNgIUIABBuo+AgAA2AhAgAEEENgIMQQAhHgwrCyAAQSk2AhwgACABNgIUIAAgCDYCDEEAIR4MKgsgHEEBaiEBDB4LIABBCjYCHCAAIAE2AhQgAEGRkoCAADYCECAAQRU2AgxBACEeDCgLIABBEDYCHCAAIAE2AhQgAEG+koCAADYCECAAQRU2AgxBACEeDCcLIABBADYCHCAAIB42AhQgAEGIjICAADYCECAAQRQ2AgxBACEeDCYLIABBBDYCHCAAIAE2AhQgAEHWkoCAADYCECAAQRU2AgxBACEeDCULIABBADYCACAIICJrQQVqIRkLQaMBIR4MEwsgAEEANgIAICIgJmtBAmohAUHjACEeDBILIABBADYCACAAQYEEOwEoIBogHmtBAmohAQtB0wAhHgwQCyABIQECQCAALQApQQVHDQBB0gAhHgwQC0HRACEeDA8LQQAhHiAAQQA2AhwgAEG6joCAADYCECAAQQc2AgwgACAiQQFqNgIUDB4LIABBADYCACAmICNrQQJqIQFBNCEeDA0LIAEhAQtBLSEeDAsLAkAgASIdIAJGDQADQAJAIB0tAABBgKKAgABqLQAAIgFBAUYNACABQQJHDQMgHUEBaiEBDAQLIB1BAWoiHSACRw0AC0ExIR4MGwtBMSEeDBoLIABBADoALCAdIQEMAQtBDCEeDAgLQS8hHgwHCyABQQFqIQFBIiEeDAYLQR8hHgwFCyAAQQA2AgAgIyAka0EEaiEBQQYhHgsgACAeOgAsIAEhAUENIR4MAwsgAEEANgIAICYgI2tBB2ohAUELIR4MAgsgAEEANgIACyAAQQA6ACwgHCEBQQkhHgwACwtBACEeIABBADYCHCAAIAE2AhQgAEG4kYCAADYCECAAQQ82AgwMDgtBACEeIABBADYCHCAAIAE2AhQgAEG4kYCAADYCECAAQQ82AgwMDQtBACEeIABBADYCHCAAIAE2AhQgAEGWj4CAADYCECAAQQs2AgwMDAtBACEeIABBADYCHCAAIAE2AhQgAEHxiICAADYCECAAQQs2AgwMCwtBACEeIABBADYCHCAAIAE2AhQgAEGIjYCAADYCECAAQQo2AgwMCgsgAEECNgIcIAAgATYCFCAAQfCSgIAANgIQIABBFjYCDEEAIR4MCQtBASEeDAgLQcYAIR4gASIBIAJGDQcgA0EIaiAAIAEgAkHYpoCAAEEKELmAgIAAIAMoAgwhASADKAIIDgMBBwIACxC/gICAAAALIABBADYCHCAAQYmTgIAANgIQIABBFzYCDCAAIAFBAWo2AhRBACEeDAULIABBADYCHCAAIAE2AhQgAEGek4CAADYCECAAQQk2AgxBACEeDAQLAkAgASIBIAJHDQBBISEeDAQLAkAgAS0AAEEKRg0AIABBADYCHCAAIAE2AhQgAEHujICAADYCECAAQQo2AgxBACEeDAQLIAAoAgQhCCAAQQA2AgQgACAIIAEQqoCAgAAiCA0BIAFBAWohAQtBACEeIABBADYCHCAAIAE2AhQgAEHqkICAADYCECAAQRk2AgwMAgsgAEEgNgIcIAAgCDYCDCAAIAFBAWo2AhRBACEeDAELAkAgASIBIAJHDQBBFCEeDAELIABBiYCAgAA2AgggACABNgIEQRMhHgsgA0EQaiSAgICAACAeC68BAQJ/IAEoAgAhBgJAAkAgAiADRg0AIAQgBmohBCAGIANqIAJrIQcgAiAGQX9zIAVqIgZqIQUDQAJAIAItAAAgBC0AAEYNAEECIQQMAwsCQCAGDQBBACEEIAUhAgwDCyAGQX9qIQYgBEEBaiEEIAJBAWoiAiADRw0ACyAHIQYgAyECCyAAQQE2AgAgASAGNgIAIAAgAjYCBA8LIAFBADYCACAAIAQ2AgAgACACNgIECwoAIAAQu4CAgAALlTcBC38jgICAgABBEGsiASSAgICAAAJAQQAoAqC0gIAADQBBABC+gICAAEGAuISAAGsiAkHZAEkNAEEAIQMCQEEAKALgt4CAACIEDQBBAEJ/NwLst4CAAEEAQoCAhICAgMAANwLkt4CAAEEAIAFBCGpBcHFB2KrVqgVzIgQ2AuC3gIAAQQBBADYC9LeAgABBAEEANgLEt4CAAAtBACACNgLMt4CAAEEAQYC4hIAANgLIt4CAAEEAQYC4hIAANgKYtICAAEEAIAQ2Aqy0gIAAQQBBfzYCqLSAgAADQCADQcS0gIAAaiADQbi0gIAAaiIENgIAIAQgA0GwtICAAGoiBTYCACADQby0gIAAaiAFNgIAIANBzLSAgABqIANBwLSAgABqIgU2AgAgBSAENgIAIANB1LSAgABqIANByLSAgABqIgQ2AgAgBCAFNgIAIANB0LSAgABqIAQ2AgAgA0EgaiIDQYACRw0AC0GAuISAAEF4QYC4hIAAa0EPcUEAQYC4hIAAQQhqQQ9xGyIDaiIEQQRqIAIgA2tBSGoiA0EBcjYCAEEAQQAoAvC3gIAANgKktICAAEEAIAQ2AqC0gIAAQQAgAzYClLSAgAAgAkGAuISAAGpBTGpBODYCAAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAoi0gIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNACADQQFxIARyQQFzIgVBA3QiAEG4tICAAGooAgAiBEEIaiEDAkACQCAEKAIIIgIgAEGwtICAAGoiAEcNAEEAIAZBfiAFd3E2Aoi0gIAADAELIAAgAjYCCCACIAA2AgwLIAQgBUEDdCIFQQNyNgIEIAQgBWpBBGoiBCAEKAIAQQFyNgIADAwLIAJBACgCkLSAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBUEDdCIAQbi0gIAAaigCACIEKAIIIgMgAEGwtICAAGoiAEcNAEEAIAZBfiAFd3EiBjYCiLSAgAAMAQsgACADNgIIIAMgADYCDAsgBEEIaiEDIAQgAkEDcjYCBCAEIAVBA3QiBWogBSACayIFNgIAIAQgAmoiACAFQQFyNgIEAkAgB0UNACAHQQN2IghBA3RBsLSAgABqIQJBACgCnLSAgAAhBAJAAkAgBkEBIAh0IghxDQBBACAGIAhyNgKItICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLQQAgADYCnLSAgABBACAFNgKQtICAAAwMC0EAKAKMtICAACIJRQ0BIAlBACAJa3FBf2oiAyADQQx2QRBxIgN2IgRBBXZBCHEiBSADciAEIAV2IgNBAnZBBHEiBHIgAyAEdiIDQQF2QQJxIgRyIAMgBHYiA0EBdkEBcSIEciADIAR2akECdEG4toCAAGooAgAiACgCBEF4cSACayEEIAAhBQJAA0ACQCAFKAIQIgMNACAFQRRqKAIAIgNFDQILIAMoAgRBeHEgAmsiBSAEIAUgBEkiBRshBCADIAAgBRshACADIQUMAAsLIAAoAhghCgJAIAAoAgwiCCAARg0AQQAoApi0gIAAIAAoAggiA0saIAggAzYCCCADIAg2AgwMCwsCQCAAQRRqIgUoAgAiAw0AIAAoAhAiA0UNAyAAQRBqIQULA0AgBSELIAMiCEEUaiIFKAIAIgMNACAIQRBqIQUgCCgCECIDDQALIAtBADYCAAwKC0F/IQIgAEG/f0sNACAAQRNqIgNBcHEhAkEAKAKMtICAACIHRQ0AQQAhCwJAIAJBgAJJDQBBHyELIAJB////B0sNACADQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgQgBEGA4B9qQRB2QQRxIgR0IgUgBUGAgA9qQRB2QQJxIgV0QQ92IAMgBHIgBXJrIgNBAXQgAiADQRVqdkEBcXJBHGohCwtBACACayEEAkACQAJAAkAgC0ECdEG4toCAAGooAgAiBQ0AQQAhA0EAIQgMAQtBACEDIAJBAEEZIAtBAXZrIAtBH0YbdCEAQQAhCANAAkAgBSgCBEF4cSACayIGIARPDQAgBiEEIAUhCCAGDQBBACEEIAUhCCAFIQMMAwsgAyAFQRRqKAIAIgYgBiAFIABBHXZBBHFqQRBqKAIAIgVGGyADIAYbIQMgAEEBdCEAIAUNAAsLAkAgAyAIcg0AQQAhCEECIAt0IgNBACADa3IgB3EiA0UNAyADQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIFQQV2QQhxIgAgA3IgBSAAdiIDQQJ2QQRxIgVyIAMgBXYiA0EBdkECcSIFciADIAV2IgNBAXZBAXEiBXIgAyAFdmpBAnRBuLaAgABqKAIAIQMLIANFDQELA0AgAygCBEF4cSACayIGIARJIQACQCADKAIQIgUNACADQRRqKAIAIQULIAYgBCAAGyEEIAMgCCAAGyEIIAUhAyAFDQALCyAIRQ0AIARBACgCkLSAgAAgAmtPDQAgCCgCGCELAkAgCCgCDCIAIAhGDQBBACgCmLSAgAAgCCgCCCIDSxogACADNgIIIAMgADYCDAwJCwJAIAhBFGoiBSgCACIDDQAgCCgCECIDRQ0DIAhBEGohBQsDQCAFIQYgAyIAQRRqIgUoAgAiAw0AIABBEGohBSAAKAIQIgMNAAsgBkEANgIADAgLAkBBACgCkLSAgAAiAyACSQ0AQQAoApy0gIAAIQQCQAJAIAMgAmsiBUEQSQ0AIAQgAmoiACAFQQFyNgIEQQAgBTYCkLSAgABBACAANgKctICAACAEIANqIAU2AgAgBCACQQNyNgIEDAELIAQgA0EDcjYCBCADIARqQQRqIgMgAygCAEEBcjYCAEEAQQA2Apy0gIAAQQBBADYCkLSAgAALIARBCGohAwwKCwJAQQAoApS0gIAAIgAgAk0NAEEAKAKgtICAACIDIAJqIgQgACACayIFQQFyNgIEQQAgBTYClLSAgABBACAENgKgtICAACADIAJBA3I2AgQgA0EIaiEDDAoLAkACQEEAKALgt4CAAEUNAEEAKALot4CAACEEDAELQQBCfzcC7LeAgABBAEKAgISAgIDAADcC5LeAgABBACABQQxqQXBxQdiq1aoFczYC4LeAgABBAEEANgL0t4CAAEEAQQA2AsS3gIAAQYCABCEEC0EAIQMCQCAEIAJBxwBqIgdqIgZBACAEayILcSIIIAJLDQBBAEEwNgL4t4CAAAwKCwJAQQAoAsC3gIAAIgNFDQACQEEAKAK4t4CAACIEIAhqIgUgBE0NACAFIANNDQELQQAhA0EAQTA2Avi3gIAADAoLQQAtAMS3gIAAQQRxDQQCQAJAAkBBACgCoLSAgAAiBEUNAEHIt4CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIARLDQMLIAMoAggiAw0ACwtBABC+gICAACIAQX9GDQUgCCEGAkBBACgC5LeAgAAiA0F/aiIEIABxRQ0AIAggAGsgBCAAakEAIANrcWohBgsgBiACTQ0FIAZB/v///wdLDQUCQEEAKALAt4CAACIDRQ0AQQAoAri3gIAAIgQgBmoiBSAETQ0GIAUgA0sNBgsgBhC+gICAACIDIABHDQEMBwsgBiAAayALcSIGQf7///8HSw0EIAYQvoCAgAAiACADKAIAIAMoAgRqRg0DIAAhAwsCQCADQX9GDQAgAkHIAGogBk0NAAJAIAcgBmtBACgC6LeAgAAiBGpBACAEa3EiBEH+////B00NACADIQAMBwsCQCAEEL6AgIAAQX9GDQAgBCAGaiEGIAMhAAwHC0EAIAZrEL6AgIAAGgwECyADIQAgA0F/Rw0FDAMLQQAhCAwHC0EAIQAMBQsgAEF/Rw0CC0EAQQAoAsS3gIAAQQRyNgLEt4CAAAsgCEH+////B0sNASAIEL6AgIAAIQBBABC+gICAACEDIABBf0YNASADQX9GDQEgACADTw0BIAMgAGsiBiACQThqTQ0BC0EAQQAoAri3gIAAIAZqIgM2Ari3gIAAAkAgA0EAKAK8t4CAAE0NAEEAIAM2Ary3gIAACwJAAkACQAJAQQAoAqC0gIAAIgRFDQBByLeAgAAhAwNAIAAgAygCACIFIAMoAgQiCGpGDQIgAygCCCIDDQAMAwsLAkACQEEAKAKYtICAACIDRQ0AIAAgA08NAQtBACAANgKYtICAAAtBACEDQQAgBjYCzLeAgABBACAANgLIt4CAAEEAQX82Aqi0gIAAQQBBACgC4LeAgAA2Aqy0gIAAQQBBADYC1LeAgAADQCADQcS0gIAAaiADQbi0gIAAaiIENgIAIAQgA0GwtICAAGoiBTYCACADQby0gIAAaiAFNgIAIANBzLSAgABqIANBwLSAgABqIgU2AgAgBSAENgIAIANB1LSAgABqIANByLSAgABqIgQ2AgAgBCAFNgIAIANB0LSAgABqIAQ2AgAgA0EgaiIDQYACRw0ACyAAQXggAGtBD3FBACAAQQhqQQ9xGyIDaiIEIAYgA2tBSGoiA0EBcjYCBEEAQQAoAvC3gIAANgKktICAAEEAIAQ2AqC0gIAAQQAgAzYClLSAgAAgBiAAakFMakE4NgIADAILIAMtAAxBCHENACAFIARLDQAgACAETQ0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClLSAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvC3gIAANgKktICAAEEAIAU2ApS0gIAAQQAgADYCoLSAgAAgCyAEakEEakE4NgIADAELAkAgAEEAKAKYtICAACILTw0AQQAgADYCmLSAgAAgACELCyAAIAZqIQhByLeAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAIRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HIt4CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiIGIAJBA3I2AgQgCEF4IAhrQQ9xQQAgCEEIakEPcRtqIgggBiACaiICayEFAkAgBCAIRw0AQQAgAjYCoLSAgABBAEEAKAKUtICAACAFaiIDNgKUtICAACACIANBAXI2AgQMAwsCQEEAKAKctICAACAIRw0AQQAgAjYCnLSAgABBAEEAKAKQtICAACAFaiIDNgKQtICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgCCgCBCIDQQNxQQFHDQAgA0F4cSEHAkACQCADQf8BSw0AIAgoAggiBCADQQN2IgtBA3RBsLSAgABqIgBGGgJAIAgoAgwiAyAERw0AQQBBACgCiLSAgABBfiALd3E2Aoi0gIAADAILIAMgAEYaIAMgBDYCCCAEIAM2AgwMAQsgCCgCGCEJAkACQCAIKAIMIgAgCEYNACALIAgoAggiA0saIAAgAzYCCCADIAA2AgwMAQsCQCAIQRRqIgMoAgAiBA0AIAhBEGoiAygCACIEDQBBACEADAELA0AgAyELIAQiAEEUaiIDKAIAIgQNACAAQRBqIQMgACgCECIEDQALIAtBADYCAAsgCUUNAAJAAkAgCCgCHCIEQQJ0Qbi2gIAAaiIDKAIAIAhHDQAgAyAANgIAIAANAUEAQQAoAoy0gIAAQX4gBHdxNgKMtICAAAwCCyAJQRBBFCAJKAIQIAhGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCCgCFCIDRQ0AIABBFGogAzYCACADIAA2AhgLIAcgBWohBSAIIAdqIQgLIAggCCgCBEF+cTYCBCACIAVqIAU2AgAgAiAFQQFyNgIEAkAgBUH/AUsNACAFQQN2IgRBA3RBsLSAgABqIQMCQAJAQQAoAoi0gIAAIgVBASAEdCIEcQ0AQQAgBSAEcjYCiLSAgAAgAyEEDAELIAMoAgghBAsgBCACNgIMIAMgAjYCCCACIAM2AgwgAiAENgIIDAMLQR8hAwJAIAVB////B0sNACAFQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgQgBEGA4B9qQRB2QQRxIgR0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAMgBHIgAHJrIgNBAXQgBSADQRVqdkEBcXJBHGohAwsgAiADNgIcIAJCADcCECADQQJ0Qbi2gIAAaiEEAkBBACgCjLSAgAAiAEEBIAN0IghxDQAgBCACNgIAQQAgACAIcjYCjLSAgAAgAiAENgIYIAIgAjYCCCACIAI2AgwMAwsgBUEAQRkgA0EBdmsgA0EfRht0IQMgBCgCACEAA0AgACIEKAIEQXhxIAVGDQIgA0EddiEAIANBAXQhAyAEIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAENgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGIANrQUhqIgNBAXI2AgQgCEFMakE4NgIAIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8LeAgAA2AqS0gIAAQQAgCzYCoLSAgABBACADNgKUtICAACAIQRBqQQApAtC3gIAANwIAIAhBACkCyLeAgAA3AghBACAIQQhqNgLQt4CAAEEAIAY2Asy3gIAAQQAgADYCyLeAgABBAEEANgLUt4CAACAIQSRqIQMDQCADQQc2AgAgBSADQQRqIgNLDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgY2AgAgBCAGQQFyNgIEAkAgBkH/AUsNACAGQQN2IgVBA3RBsLSAgABqIQMCQAJAQQAoAoi0gIAAIgBBASAFdCIFcQ0AQQAgACAFcjYCiLSAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIAZB////B0sNACAGQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAMgBXIgAHJrIgNBAXQgBiADQRVqdkEBcXJBHGohAwsgBEIANwIQIARBHGogAzYCACADQQJ0Qbi2gIAAaiEFAkBBACgCjLSAgAAiAEEBIAN0IghxDQAgBSAENgIAQQAgACAIcjYCjLSAgAAgBEEYaiAFNgIAIAQgBDYCCCAEIAQ2AgwMBAsgBkEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEAA0AgACIFKAIEQXhxIAZGDQMgA0EddiEAIANBAXQhAyAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAQ2AgAgBEEYaiAFNgIAIAQgBDYCDCAEIAQ2AggMAwsgBCgCCCIDIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiADNgIICyAGQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBGGpBADYCACAEIAU2AgwgBCADNgIIC0EAKAKUtICAACIDIAJNDQBBACgCoLSAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApS0gIAAQQAgBTYCoLSAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL4t4CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0Qbi2gIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2Aoy0gIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCADIAhqQQRqIgMgAygCAEEBcjYCAAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQQN2IgRBA3RBsLSAgABqIQMCQAJAQQAoAoi0gIAAIgVBASAEdCIEcQ0AQQAgBSAEcjYCiLSAgAAgAyEEDAELIAMoAgghBAsgBCAANgIMIAMgADYCCCAAIAM2AgwgACAENgIIDAELQR8hAwJAIARB////B0sNACAEQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBXIgAnJrIgNBAXQgBCADQRVqdkEBcXJBHGohAwsgACADNgIcIABCADcCECADQQJ0Qbi2gIAAaiEFAkAgB0EBIAN0IgJxDQAgBSAANgIAQQAgByACcjYCjLSAgAAgACAFNgIYIAAgADYCCCAAIAA2AgwMAQsgBEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACECAkADQCACIgUoAgRBeHEgBEYNASADQR12IQIgA0EBdCEDIAUgAkEEcWpBEGoiBigCACICDQALIAYgADYCACAAIAU2AhggACAANgIMIAAgADYCCAwBCyAFKAIIIgMgADYCDCAFIAA2AgggAEEANgIYIAAgBTYCDCAAIAM2AggLIAhBCGohAwwBCwJAIApFDQACQAJAIAAgACgCHCIFQQJ0Qbi2gIAAaiIDKAIARw0AIAMgCDYCACAIDQFBACAJQX4gBXdxNgKMtICAAAwCCyAKQRBBFCAKKAIQIABGG2ogCDYCACAIRQ0BCyAIIAo2AhgCQCAAKAIQIgNFDQAgCCADNgIQIAMgCDYCGAsgAEEUaigCACIDRQ0AIAhBFGogAzYCACADIAg2AhgLAkACQCAEQQ9LDQAgACAEIAJqIgNBA3I2AgQgAyAAakEEaiIDIAMoAgBBAXI2AgAMAQsgACACaiIFIARBAXI2AgQgACACQQNyNgIEIAUgBGogBDYCAAJAIAdFDQAgB0EDdiIIQQN0QbC0gIAAaiECQQAoApy0gIAAIQMCQAJAQQEgCHQiCCAGcQ0AQQAgCCAGcjYCiLSAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2Apy0gIAAQQAgBDYCkLSAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQvYCAgAAL8A0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApi0gIAAIgRJDQEgAiAAaiEAAkBBACgCnLSAgAAgAUYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGwtICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKItICAAEF+IAV3cTYCiLSAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAQgASgCCCICSxogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABKAIcIgRBAnRBuLaAgABqIgIoAgAgAUcNACACIAY2AgAgBg0BQQBBACgCjLSAgABBfiAEd3E2Aoy0gIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQtICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgAyABTQ0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkBBACgCoLSAgAAgA0cNAEEAIAE2AqC0gIAAQQBBACgClLSAgAAgAGoiADYClLSAgAAgASAAQQFyNgIEIAFBACgCnLSAgABHDQNBAEEANgKQtICAAEEAQQA2Apy0gIAADwsCQEEAKAKctICAACADRw0AQQAgATYCnLSAgABBAEEAKAKQtICAACAAaiIANgKQtICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsLSAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiLSAgABBfiAFd3E2Aoi0gIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNAEEAKAKYtICAACADKAIIIgJLGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMoAhwiBEECdEG4toCAAGoiAigCACADRw0AIAIgBjYCACAGDQFBAEEAKAKMtICAAEF+IAR3cTYCjLSAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnLSAgABHDQFBACAANgKQtICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEEDdiICQQN0QbC0gIAAaiEAAkACQEEAKAKItICAACIEQQEgAnQiAnENAEEAIAQgAnI2Aoi0gIAAIAAhAgwBCyAAKAIIIQILIAIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgAUIANwIQIAFBHGogAjYCACACQQJ0Qbi2gIAAaiEEAkACQEEAKAKMtICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKMtICAACABQRhqIAQ2AgAgASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAFBGGogBDYCACABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQRhqQQA2AgAgASAENgIMIAEgADYCCAtBAEEAKAKotICAAEF/aiIBQX8gARs2Aqi0gIAACwtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+LeAgABBfw8LIABBEHQPCxC/gICAAAALBAAAAAsLjiwBAEGACAuGLAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgcGFyYW1ldGVycwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABNS0FDVElWSVRZAENPUFkATk9USUZZAFBMQVkAUFVUAENIRUNLT1VUAFBPU1QAUkVQT1JUAEhQRV9JTlZBTElEX0NPTlNUQU5UAEdFVABIUEVfU1RSSUNUAFJFRElSRUNUAENPTk5FQ1QASFBFX0lOVkFMSURfU1RBVFVTAE9QVElPTlMAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASFBFX0lOVkFMSURfVVJMAE1LQ09MAEFDTABIUEVfSU5URVJOQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBQQVVTRQBQVVJHRQBNRVJHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAFBST1BGSU5EAFVOQklORABSRUJJTkQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABIUEVfUEFVU0VEAEhFQUQARXhwZWN0ZWQgSFRUUC8A3AsAAM8LAADTCgAAmQ0AABAMAABdCwAAXw0AALULAAC6CgAAcwsAAJwLAAD1CwAAcwwAAO8KAADcDAAARwwAAIcLAACPDAAAvQwAAC8LAACnDAAAqQ0AAAQNAAAXDQAAJgsAAIkNAADVDAAAzwoAALQNAACuCgAAoQoAAOcKAAACCwAAPQ0AAJAKAADsCwAAxQsAAIoMAAByDQAANAwAAEAMAADqCwAAhA0AAIINAAB7DQAAywsAALMKAACFCgAApQoAAP4MAAA+DAAAlQoAAE4NAABMDQAAOAwAAPgMAABDCwAA5QsAAOMLAAAtDQAA8QsAAEMNAAA0DQAATgsAAJwKAADyDAAAVAsAABgLAAAKCwAA3goAAFgNAAAuDAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzk4AwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAYGAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAAMEBQFwAQ4OBQMBAAIGCAF/AUGAuAQLB/UEHwZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAKGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQA1DGxsaHR0cF9hbGxvYwAMBm1hbGxvYwA6C2xsaHR0cF9mcmVlAA0EZnJlZQA8D2xsaHR0cF9nZXRfdHlwZQAOFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAPFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAQEWxsaHR0cF9nZXRfbWV0aG9kABEWbGxodHRwX2dldF9zdGF0dXNfY29kZQASEmxsaHR0cF9nZXRfdXBncmFkZQATDGxsaHR0cF9yZXNldAAUDmxsaHR0cF9leGVjdXRlABUUbGxodHRwX3NldHRpbmdzX2luaXQAFg1sbGh0dHBfZmluaXNoABcMbGxodHRwX3BhdXNlABgNbGxodHRwX3Jlc3VtZQAZG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAaEGxsaHR0cF9nZXRfZXJybm8AGxdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAcF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uAB0UbGxodHRwX2dldF9lcnJvcl9wb3MAHhFsbGh0dHBfZXJybm9fbmFtZQAfEmxsaHR0cF9tZXRob2RfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mADMJEwEAQQELDQECAwQFCwYHLiooJCYKuKgCOAIACwgAEIiAgIAACxkAIAAQtoCAgAAaIAAgAjYCNCAAIAE6ACgLHAAgACAALwEyIAAtAC4gABC1gICAABCAgICAAAspAQF/QTgQuoCAgAAiARC2gICAABogAUGAiICAADYCNCABIAA6ACggAQsKACAAELyAgIAACwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BMgsHACAALQAuC0UBBH8gACgCGCEBIAAtAC0hAiAALQAoIQMgACgCNCEEIAAQtoCAgAAaIAAgBDYCNCAAIAM6ACggACACOgAtIAAgATYCGAsRACAAIAEgASACahC3gICAAAs+AQF7IAD9DAAAAAAAAAAAAAAAAAAAAAAiAf0LAgAgAEEwakIANwIAIABBIGogAf0LAgAgAEEQaiAB/QsCAAtnAQF/QQAhAQJAIAAoAgwNAAJAAkACQAJAIAAtAC8OAwEAAwILIAAoAjQiAUUNACABKAIcIgFFDQAgACABEYCAgIAAACIBDQMLQQAPCxC/gICAAAALIABB/5GAgAA2AhBBDiEBCyABCx4AAkAgACgCDA0AIABBhJSAgAA2AhAgAEEVNgIMCwsWAAJAIAAoAgxBFUcNACAAQQA2AgwLCxYAAkAgACgCDEEWRw0AIABBADYCDAsLBwAgACgCDAsHACAAKAIQCwkAIAAgATYCEAsHACAAKAIUCyIAAkAgAEEaSQ0AEL+AgIAAAAsgAEECdEHIm4CAAGooAgALIgACQCAAQS5JDQAQv4CAgAAACyAAQQJ0QbCcgIAAaigCAAsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCACIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIEIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBnI6AgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAigiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI0IgRFDQAgBCgCCCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQdKKgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCNCIERQ0AIAQoAgwiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEHdk4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCMCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIQIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBw5CAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCNCIERQ0AIAQoAjQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCFCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIcIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCNCIERQ0AIAQoAhgiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEHSiICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI0IgRFDQAgBCgCICIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjQiBEUNACAEKAIkIgRFDQAgACAEEYCAgIAAACEDCyADC0UBAX8CQAJAIAAvATBBFHFBFEcNAEEBIQMgAC0AKEEBRg0BIAAvATJB5QBGIQMMAQsgAC0AKUEFRiEDCyAAIAM6AC5BAAvyAQEDf0EBIQMCQCAALwEwIgRBCHENACAAKQMgQgBSIQMLAkACQCAALQAuRQ0AQQEhBSAALQApQQVGDQFBASEFIARBwABxRSADcUEBRw0BC0EAIQUgBEHAAHENAEECIQUgBEEIcQ0AAkAgBEGABHFFDQACQCAALQAoQQFHDQAgAC0ALUEKcQ0AQQUPC0EEDwsCQCAEQSBxDQACQCAALQAoQQFGDQAgAC8BMiIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQBBBCEFIARBiARxQYAERg0CIARBKHFFDQILQQAPC0EAQQMgACkDIFAbIQULIAULXQECf0EAIQECQCAALQAoQQFGDQAgAC8BMiICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6IBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMiIFQZx/akHkAEkNACAFQcwBRg0AIAVBsAJGDQAgBEHAAHENAEEAIQMgBEGIBHFBgARGDQAgBEEocUEARyEDCyAAQQA7ATAgAEEAOgAvIAMLlAEBAn8CQAJAAkAgAC0AKkUNACAALQArRQ0AQQAhASAALwEwIgJBAnFFDQEMAgtBACEBIAAvATAiAkEBcUUNAQtBASEBIAAtAChBAUYNACAALwEyIgBBnH9qQeQASQ0AIABBzAFGDQAgAEGwAkYNACACQcAAcQ0AQQAhASACQYgEcUGABEYNACACQShxQQBHIQELIAELSAEBeyAAQRBq/QwAAAAAAAAAAAAAAAAAAAAAIgH9CwMAIAAgAf0LAwAgAEEwakIANwMAIABBIGogAf0LAwAgAEG8ATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACELiAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvTzgEDHH8DfgV/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8gASEQIAEhESABIRIgASETIAEhFCABIRUgASEWIAEhFyABIRggASEZIAEhGiABIRsgASEcIAEhHQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAhwiHkF/ag68AbcBAbYBAgMEBQYHCAkKCwwNDg8QwAG/ARESE7UBFBUWFxgZGr0BvAEbHB0eHyAhtAGzASIjsgGxASQlJicoKSorLC0uLzAxMjM0NTY3ODk6uAE7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwEAuQELQQAhHgyvAQtBDyEeDK4BC0EOIR4MrQELQRAhHgysAQtBESEeDKsBC0EUIR4MqgELQRUhHgypAQtBFiEeDKgBC0EXIR4MpwELQRghHgymAQtBCCEeDKUBC0EZIR4MpAELQRohHgyjAQtBEyEeDKIBC0ESIR4MoQELQRshHgygAQtBHCEeDJ8BC0EdIR4MngELQR4hHgydAQtBqgEhHgycAQtBqwEhHgybAQtBICEeDJoBC0EhIR4MmQELQSIhHgyYAQtBIyEeDJcBC0EkIR4MlgELQa0BIR4MlQELQSUhHgyUAQtBKSEeDJMBC0ENIR4MkgELQSYhHgyRAQtBJyEeDJABC0EoIR4MjwELQS4hHgyOAQtBKiEeDI0BC0GuASEeDIwBC0EMIR4MiwELQS8hHgyKAQtBKyEeDIkBC0ELIR4MiAELQSwhHgyHAQtBLSEeDIYBC0EKIR4MhQELQTEhHgyEAQtBMCEeDIMBC0EJIR4MggELQR8hHgyBAQtBMiEeDIABC0EzIR4MfwtBNCEeDH4LQTUhHgx9C0E2IR4MfAtBNyEeDHsLQTghHgx6C0E5IR4MeQtBOiEeDHgLQawBIR4MdwtBOyEeDHYLQTwhHgx1C0E9IR4MdAtBPiEeDHMLQT8hHgxyC0HAACEeDHELQcEAIR4McAtBwgAhHgxvC0HDACEeDG4LQcQAIR4MbQtBByEeDGwLQcUAIR4MawtBBiEeDGoLQcYAIR4MaQtBBSEeDGgLQccAIR4MZwtBBCEeDGYLQcgAIR4MZQtByQAhHgxkC0HKACEeDGMLQcsAIR4MYgtBAyEeDGELQcwAIR4MYAtBzQAhHgxfC0HOACEeDF4LQdAAIR4MXQtBzwAhHgxcC0HRACEeDFsLQdIAIR4MWgtBAiEeDFkLQdMAIR4MWAtB1AAhHgxXC0HVACEeDFYLQdYAIR4MVQtB1wAhHgxUC0HYACEeDFMLQdkAIR4MUgtB2gAhHgxRC0HbACEeDFALQdwAIR4MTwtB3QAhHgxOC0HeACEeDE0LQd8AIR4MTAtB4AAhHgxLC0HhACEeDEoLQeIAIR4MSQtB4wAhHgxIC0HkACEeDEcLQeUAIR4MRgtB5gAhHgxFC0HnACEeDEQLQegAIR4MQwtB6QAhHgxCC0HqACEeDEELQesAIR4MQAtB7AAhHgw/C0HtACEeDD4LQe4AIR4MPQtB7wAhHgw8C0HwACEeDDsLQfEAIR4MOgtB8gAhHgw5C0HzACEeDDgLQfQAIR4MNwtB9QAhHgw2C0H2ACEeDDULQfcAIR4MNAtB+AAhHgwzC0H5ACEeDDILQfoAIR4MMQtB+wAhHgwwC0H8ACEeDC8LQf0AIR4MLgtB/gAhHgwtC0H/ACEeDCwLQYABIR4MKwtBgQEhHgwqC0GCASEeDCkLQYMBIR4MKAtBhAEhHgwnC0GFASEeDCYLQYYBIR4MJQtBhwEhHgwkC0GIASEeDCMLQYkBIR4MIgtBigEhHgwhC0GLASEeDCALQYwBIR4MHwtBjQEhHgweC0GOASEeDB0LQY8BIR4MHAtBkAEhHgwbC0GRASEeDBoLQZIBIR4MGQtBkwEhHgwYC0GUASEeDBcLQZUBIR4MFgtBlgEhHgwVC0GXASEeDBQLQZgBIR4MEwtBmQEhHgwSC0GdASEeDBELQZoBIR4MEAtBASEeDA8LQZsBIR4MDgtBnAEhHgwNC0GeASEeDAwLQaABIR4MCwtBnwEhHgwKC0GhASEeDAkLQaIBIR4MCAtBowEhHgwHC0GkASEeDAYLQaUBIR4MBQtBpgEhHgwEC0GnASEeDAMLQagBIR4MAgtBqQEhHgwBC0GvASEeCwNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIB4OsAEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGhweHyAjJCUmJygpKiwtLi8w+wI0Njg5PD9BQkNERUZHSElKS0xNTk9QUVJTVVdZXF1eYGJjZGVmZ2hrbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHaAeAB4QHkAfEBvQK9AgsgASIIIAJHDcIBQbwBIR4MlQMLIAEiHiACRw2xAUGsASEeDJQDCyABIgEgAkcNZ0HiACEeDJMDCyABIgEgAkcNXUHaACEeDJIDCyABIgEgAkcNVkHVACEeDJEDCyABIgEgAkcNUkHTACEeDJADCyABIgEgAkcNT0HRACEeDI8DCyABIgEgAkcNTEHPACEeDI4DCyABIgEgAkcNEEEMIR4MjQMLIAEiASACRw0zQTghHgyMAwsgASIBIAJHDS9BNSEeDIsDCyABIgEgAkcNJkEyIR4MigMLIAEiASACRw0kQS8hHgyJAwsgASIBIAJHDR1BJCEeDIgDCyAALQAuQQFGDf0CDMcBCyAAIAEiASACELSAgIAAQQFHDbQBDLUBCyAAIAEiASACEK2AgIAAIh4NtQEgASEBDLACCwJAIAEiASACRw0AQQYhHgyFAwsgACABQQFqIgEgAhCwgICAACIeDbYBIAEhAQwPCyAAQgA3AyBBEyEeDPMCCyABIh4gAkcNCUEPIR4MggMLAkAgASIBIAJGDQAgAUEBaiEBQREhHgzyAgtBByEeDIEDCyAAQgAgACkDICIfIAIgASIea60iIH0iISAhIB9WGzcDICAfICBWIiJFDbMBQQghHgyAAwsCQCABIgEgAkYNACAAQYmAgIAANgIIIAAgATYCBCABIQFBFSEeDPACC0EJIR4M/wILIAEhASAAKQMgUA2yASABIQEMrQILAkAgASIBIAJHDQBBCyEeDP4CCyAAIAFBAWoiASACEK+AgIAAIh4NsgEgASEBDK0CCwNAAkAgAS0AAEHwnYCAAGotAAAiHkEBRg0AIB5BAkcNtAEgAUEBaiEBDAMLIAFBAWoiASACRw0AC0EMIR4M/AILAkAgASIBIAJHDQBBDSEeDPwCCwJAAkAgAS0AACIeQXNqDhQBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBtgG2AbYBALQBCyABQQFqIQEMtAELIAFBAWohAQtBGCEeDOoCCwJAIAEiHiACRw0AQQ4hHgz6AgtCACEfIB4hAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgHi0AAEFQag43yAHHAQABAgMEBQYHvgK+Ar4CvgK+Ar4CvgIICQoLDA2+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CDg8QERITvgILQgIhHwzHAQtCAyEfDMYBC0IEIR8MxQELQgUhHwzEAQtCBiEfDMMBC0IHIR8MwgELQgghHwzBAQtCCSEfDMABC0IKIR8MvwELQgshHwy+AQtCDCEfDL0BC0INIR8MvAELQg4hHwy7AQtCDyEfDLoBC0IKIR8MuQELQgshHwy4AQtCDCEfDLcBC0INIR8MtgELQg4hHwy1AQtCDyEfDLQBC0IAIR8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIB4tAABBUGoON8cBxgEAAQIDBAUGB8gByAHIAcgByAHIAcgBCAkKCwwNyAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAcgByAHIAQ4PEBESE8gBC0ICIR8MxgELQgMhHwzFAQtCBCEfDMQBC0IFIR8MwwELQgYhHwzCAQtCByEfDMEBC0IIIR8MwAELQgkhHwy/AQtCCiEfDL4BC0ILIR8MvQELQgwhHwy8AQtCDSEfDLsBC0IOIR8MugELQg8hHwy5AQtCCiEfDLgBC0ILIR8MtwELQgwhHwy2AQtCDSEfDLUBC0IOIR8MtAELQg8hHwyzAQsgAEIAIAApAyAiHyACIAEiHmutIiB9IiEgISAfVhs3AyAgHyAgViIiRQ20AUERIR4M9wILAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRshHgznAgtBEiEeDPYCCyAAIAEiHiACELKAgIAAQX9qDgWmAQCiAgGzAbQBC0ESIR4M5AILIABBAToALyAeIQEM8gILIAEiASACRw20AUEWIR4M8gILIAEiHCACRw0ZQTkhHgzxAgsCQCABIgEgAkcNAEEaIR4M8QILIABBADYCBCAAQYqAgIAANgIIIAAgASABEKqAgIAAIh4NtgEgASEBDLkBCwJAIAEiHiACRw0AQRshHgzwAgsCQCAeLQAAIgFBIEcNACAeQQFqIQEMGgsgAUEJRw22ASAeQQFqIQEMGQsCQCABIgEgAkYNACABQQFqIQEMFAtBHCEeDO4CCwJAIAEiHiACRw0AQR0hHgzuAgsCQCAeLQAAIgFBCUcNACAeIQEM0gILIAFBIEcNtQEgHiEBDNECCwJAIAEiASACRw0AQR4hHgztAgsgAS0AAEEKRw24ASABQQFqIQEMoAILIAEiASACRw24AUEiIR4M6wILA0ACQCABLQAAIh5BIEYNAAJAIB5BdmoOBAC+Ab4BALwBCyABIQEMxAELIAFBAWoiASACRw0AC0EkIR4M6gILQSUhHiABIiMgAkYN6QIgAiAjayAAKAIAIiRqISUgIyEmICQhAQJAA0AgJi0AACIiQSByICIgIkG/f2pB/wFxQRpJG0H/AXEgAUHwn4CAAGotAABHDQEgAUEDRg3WAiABQQFqIQEgJkEBaiImIAJHDQALIAAgJTYCAAzqAgsgAEEANgIAICYhAQy7AQtBJiEeIAEiIyACRg3oAiACICNrIAAoAgAiJGohJSAjISYgJCEBAkADQCAmLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQfSfgIAAai0AAEcNASABQQhGDb0BIAFBAWohASAmQQFqIiYgAkcNAAsgACAlNgIADOkCCyAAQQA2AgAgJiEBDLoBC0EnIR4gASIjIAJGDecCIAIgI2sgACgCACIkaiElICMhJiAkIQECQANAICYtAAAiIkEgciAiICJBv39qQf8BcUEaSRtB/wFxIAFB0KaAgABqLQAARw0BIAFBBUYNvQEgAUEBaiEBICZBAWoiJiACRw0ACyAAICU2AgAM6AILIABBADYCACAmIQEMuQELAkAgASIBIAJGDQADQAJAIAEtAABBgKKAgABqLQAAIh5BAUYNACAeQQJGDQogASEBDMEBCyABQQFqIgEgAkcNAAtBIyEeDOcCC0EjIR4M5gILAkAgASIBIAJGDQADQAJAIAEtAAAiHkEgRg0AIB5BdmoOBL0BvgG+Ab0BvgELIAFBAWoiASACRw0AC0ErIR4M5gILQSshHgzlAgsDQAJAIAEtAAAiHkEgRg0AIB5BCUcNAwsgAUEBaiIBIAJHDQALQS8hHgzkAgsDQAJAIAEtAAAiHkEgRg0AAkACQCAeQXZqDgS+AQEBvgEACyAeQSxGDb8BCyABIQEMBAsgAUEBaiIBIAJHDQALQTIhHgzjAgsgASEBDL8BC0EzIR4gASImIAJGDeECIAIgJmsgACgCACIjaiEkICYhIiAjIQECQANAICItAABBIHIgAUGApICAAGotAABHDQEgAUEGRg3QAiABQQFqIQEgIkEBaiIiIAJHDQALIAAgJDYCAAziAgsgAEEANgIAICIhAQtBKyEeDNACCwJAIAEiHSACRw0AQTQhHgzgAgsgAEGKgICAADYCCCAAIB02AgQgHSEBIAAtACxBf2oOBK8BuQG7Ab0BxwILIAFBAWohAQyuAQsCQCABIgEgAkYNAANAAkAgAS0AACIeQSByIB4gHkG/f2pB/wFxQRpJG0H/AXEiHkEJRg0AIB5BIEYNAAJAAkACQAJAIB5BnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQSYhHgzTAgsgAUEBaiEBQSchHgzSAgsgAUEBaiEBQSghHgzRAgsgASEBDLIBCyABQQFqIgEgAkcNAAtBKCEeDN4CC0EoIR4M3QILAkAgASIBIAJGDQADQAJAIAEtAABBgKCAgABqLQAAQQFGDQAgASEBDLcBCyABQQFqIgEgAkcNAAtBMCEeDN0CC0EwIR4M3AILAkADQAJAIAEtAABBd2oOGAACwQLBAscCwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECwQLBAsECAMECCyABQQFqIgEgAkcNAAtBNSEeDNwCCyABQQFqIQELQSEhHgzKAgsgASIBIAJHDbkBQTchHgzZAgsDQAJAIAEtAABBkKSAgABqLQAAQQFGDQAgASEBDJACCyABQQFqIgEgAkcNAAtBOCEeDNgCCyAcLQAAIh5BIEYNmgEgHkE6Rw3GAiAAKAIEIQEgAEEANgIEIAAgASAcEKiAgIAAIgENtgEgHEEBaiEBDLgBCyAAIAEgAhCpgICAABoLQQohHgzFAgtBOiEeIAEiJiACRg3UAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQZCmgIAAai0AAEcNxAIgAUEFRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNUCCyAAQQA2AgAgAEEBOgAsICYgI2tBBmohAQy+AgtBOyEeIAEiJiACRg3TAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQZamgIAAai0AAEcNwwIgAUEJRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNQCCyAAQQA2AgAgAEECOgAsICYgI2tBCmohAQy9AgsCQCABIhwgAkcNAEE8IR4M0wILAkACQCAcLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwDDAsMCwwLDAsMCAcMCCyAcQQFqIQFBMiEeDMMCCyAcQQFqIQFBMyEeDMICC0E9IR4gASImIAJGDdECIAIgJmsgACgCACIjaiEkICYhHCAjIQEDQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQaCmgIAAai0AAEcNwAIgAUEBRg20AiABQQFqIQEgHEEBaiIcIAJHDQALIAAgJDYCAAzRAgtBPiEeIAEiJiACRg3QAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQaKmgIAAai0AAEcNwAIgAUEORg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNECCyAAQQA2AgAgAEEBOgAsICYgI2tBD2ohAQy6AgtBPyEeIAEiJiACRg3PAiACICZrIAAoAgAiI2ohJCAmIRwgIyEBAkADQCAcLQAAIiJBIHIgIiAiQb9/akH/AXFBGkkbQf8BcSABQcCmgIAAai0AAEcNvwIgAUEPRg0BIAFBAWohASAcQQFqIhwgAkcNAAsgACAkNgIADNACCyAAQQA2AgAgAEEDOgAsICYgI2tBEGohAQy5AgtBwAAhHiABIiYgAkYNzgIgAiAmayAAKAIAIiNqISQgJiEcICMhAQJAA0AgHC0AACIiQSByICIgIkG/f2pB/wFxQRpJG0H/AXEgAUHQpoCAAGotAABHDb4CIAFBBUYNASABQQFqIQEgHEEBaiIcIAJHDQALIAAgJDYCAAzPAgsgAEEANgIAIABBBDoALCAmICNrQQZqIQEMuAILAkAgASIcIAJHDQBBwQAhHgzOAgsCQAJAAkACQCAcLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGdf2oOEwDAAsACwALAAsACwALAAsACwALAAsACwAIBwALAAsACAgPAAgsgHEEBaiEBQTUhHgzAAgsgHEEBaiEBQTYhHgy/AgsgHEEBaiEBQTchHgy+AgsgHEEBaiEBQTghHgy9AgsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBOSEeDL0CC0HCACEeDMwCCyABIgEgAkcNrwFBxAAhHgzLAgtBxQAhHiABIiYgAkYNygIgAiAmayAAKAIAIiNqISQgJiEiICMhAQJAA0AgIi0AACABQdamgIAAai0AAEcNtAEgAUEBRg0BIAFBAWohASAiQQFqIiIgAkcNAAsgACAkNgIADMsCCyAAQQA2AgAgJiAja0ECaiEBDK8BCwJAIAEiASACRw0AQccAIR4MygILIAEtAABBCkcNswEgAUEBaiEBDK8BCwJAIAEiASACRw0AQcgAIR4MyQILAkACQCABLQAAQXZqDgQBtAG0AQC0AQsgAUEBaiEBQT0hHgy5AgsgAUEBaiEBDK4BCwJAIAEiASACRw0AQckAIR4MyAILQQAhHgJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4KuwG6AQABAgMEBQYHvAELQQIhHgy6AQtBAyEeDLkBC0EEIR4MuAELQQUhHgy3AQtBBiEeDLYBC0EHIR4MtQELQQghHgy0AQtBCSEeDLMBCwJAIAEiASACRw0AQcoAIR4MxwILIAEtAABBLkcNtAEgAUEBaiEBDIACCwJAIAEiASACRw0AQcsAIR4MxgILQQAhHgJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4KvQG8AQABAgMEBQYHvgELQQIhHgy8AQtBAyEeDLsBC0EEIR4MugELQQUhHgy5AQtBBiEeDLgBC0EHIR4MtwELQQghHgy2AQtBCSEeDLUBC0HMACEeIAEiJiACRg3EAiACICZrIAAoAgAiI2ohJCAmIQEgIyEiA0AgAS0AACAiQeKmgIAAai0AAEcNuAEgIkEDRg23ASAiQQFqISIgAUEBaiIBIAJHDQALIAAgJDYCAAzEAgtBzQAhHiABIiYgAkYNwwIgAiAmayAAKAIAIiNqISQgJiEBICMhIgNAIAEtAAAgIkHmpoCAAGotAABHDbcBICJBAkYNuQEgIkEBaiEiIAFBAWoiASACRw0ACyAAICQ2AgAMwwILQc4AIR4gASImIAJGDcICIAIgJmsgACgCACIjaiEkICYhASAjISIDQCABLQAAICJB6aaAgABqLQAARw22ASAiQQNGDbkBICJBAWohIiABQQFqIgEgAkcNAAsgACAkNgIADMICCwNAAkAgAS0AACIeQSBGDQACQAJAAkAgHkG4f2oOCwABugG6AboBugG6AboBugG6AQK6AQsgAUEBaiEBQcIAIR4MtQILIAFBAWohAUHDACEeDLQCCyABQQFqIQFBxAAhHgyzAgsgAUEBaiIBIAJHDQALQc8AIR4MwQILAkAgASIBIAJGDQAgACABQQFqIgEgAhClgICAABogASEBQQchHgyxAgtB0AAhHgzAAgsDQAJAIAEtAABB8KaAgABqLQAAIh5BAUYNACAeQX5qDgO5AboBuwG8AQsgAUEBaiIBIAJHDQALQdEAIR4MvwILAkAgASIBIAJGDQAgAUEBaiEBDAMLQdIAIR4MvgILA0ACQCABLQAAQfCogIAAai0AACIeQQFGDQACQCAeQX5qDgS8Ab0BvgEAvwELIAEhAUHGACEeDK8CCyABQQFqIgEgAkcNAAtB0wAhHgy9AgsCQCABIgEgAkcNAEHUACEeDL0CCwJAIAEtAAAiHkF2ag4apAG/Ab8BpgG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG0Ab8BvwEAvQELIAFBAWohAQtBBiEeDKsCCwNAAkAgAS0AAEHwqoCAAGotAABBAUYNACABIQEM+gELIAFBAWoiASACRw0AC0HVACEeDLoCCwJAIAEiASACRg0AIAFBAWohAQwDC0HWACEeDLkCCwJAIAEiASACRw0AQdcAIR4MuQILIAFBAWohAQwBCwJAIAEiASACRw0AQdgAIR4MuAILIAFBAWohAQtBBCEeDKYCCwJAIAEiIiACRw0AQdkAIR4MtgILICIhAQJAAkACQCAiLQAAQfCsgIAAai0AAEF/ag4HvgG/AcABAPgBAQLBAQsgIkEBaiEBDAoLICJBAWohAQy3AQtBACEeIABBADYCHCAAQfGOgIAANgIQIABBBzYCDCAAICJBAWo2AhQMtQILAkADQAJAIAEtAABB8KyAgABqLQAAIh5BBEYNAAJAAkAgHkF/ag4HvAG9Ab4BwwEABAHDAQsgASEBQckAIR4MqAILIAFBAWohAUHLACEeDKcCCyABQQFqIgEgAkcNAAtB2gAhHgy1AgsgAUEBaiEBDLUBCwJAIAEiIiACRw0AQdsAIR4MtAILICItAABBL0cNvgEgIkEBaiEBDAYLAkAgASIiIAJHDQBB3AAhHgyzAgsCQCAiLQAAIgFBL0cNACAiQQFqIQFBzAAhHgyjAgsgAUF2aiIBQRZLDb0BQQEgAXRBiYCAAnFFDb0BDJMCCwJAIAEiASACRg0AIAFBAWohAUHNACEeDKICC0HdACEeDLECCwJAIAEiIiACRw0AQd8AIR4MsQILICIhAQJAICItAABB8LCAgABqLQAAQX9qDgOSAvABAL4BC0HQACEeDKACCwJAIAEiIiACRg0AA0ACQCAiLQAAQfCugIAAai0AACIBQQNGDQACQCABQX9qDgKUAgC/AQsgIiEBQc4AIR4MogILICJBAWoiIiACRw0AC0HeACEeDLACC0HeACEeDK8CCwJAIAEiASACRg0AIABBjICAgAA2AgggACABNgIEIAEhAUHPACEeDJ8CC0HgACEeDK4CCwJAIAEiASACRw0AQeEAIR4MrgILIABBjICAgAA2AgggACABNgIEIAEhAQtBAyEeDJwCCwNAIAEtAABBIEcNjAIgAUEBaiIBIAJHDQALQeIAIR4MqwILAkAgASIBIAJHDQBB4wAhHgyrAgsgAS0AAEEgRw24ASABQQFqIQEM1AELAkAgASIIIAJHDQBB5AAhHgyqAgsgCC0AAEHMAEcNuwEgCEEBaiEBQRMhHgy5AQtB5QAhHiABIiIgAkYNqAIgAiAiayAAKAIAIiZqISMgIiEIICYhAQNAIAgtAAAgAUHwsoCAAGotAABHDboBIAFBBUYNuAEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMqAILAkAgASIIIAJHDQBB5gAhHgyoAgsCQAJAIAgtAABBvX9qDgwAuwG7AbsBuwG7AbsBuwG7AbsBuwEBuwELIAhBAWohAUHUACEeDJgCCyAIQQFqIQFB1QAhHgyXAgtB5wAhHiABIiIgAkYNpgIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQe2zgIAAai0AAEcNuQEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKcCCyAAQQA2AgAgIiAma0EDaiEBQRAhHgy2AQtB6AAhHiABIiIgAkYNpQIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQfaygIAAai0AAEcNuAEgAUEFRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKYCCyAAQQA2AgAgIiAma0EGaiEBQRYhHgy1AQtB6QAhHiABIiIgAkYNpAIgAiAiayAAKAIAIiZqISMgIiEIICYhAQJAA0AgCC0AACABQfyygIAAai0AAEcNtwEgAUEDRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADKUCCyAAQQA2AgAgIiAma0EEaiEBQQUhHgy0AQsCQCABIgggAkcNAEHqACEeDKQCCyAILQAAQdkARw21ASAIQQFqIQFBCCEeDLMBCwJAIAEiCCACRw0AQesAIR4MowILAkACQCAILQAAQbJ/ag4DALYBAbYBCyAIQQFqIQFB2QAhHgyTAgsgCEEBaiEBQdoAIR4MkgILAkAgASIIIAJHDQBB7AAhHgyiAgsCQAJAIAgtAABBuH9qDggAtQG1AbUBtQG1AbUBAbUBCyAIQQFqIQFB2AAhHgySAgsgCEEBaiEBQdsAIR4MkQILQe0AIR4gASIiIAJGDaACIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUGAs4CAAGotAABHDbMBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAyhAgtBACEeIABBADYCACAiICZrQQNqIQEMsAELQe4AIR4gASIiIAJGDZ8CIAIgImsgACgCACImaiEjICIhCCAmIQECQANAIAgtAAAgAUGDs4CAAGotAABHDbIBIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIzYCAAygAgsgAEEANgIAICIgJmtBBWohAUEjIR4MrwELAkAgASIIIAJHDQBB7wAhHgyfAgsCQAJAIAgtAABBtH9qDggAsgGyAbIBsgGyAbIBAbIBCyAIQQFqIQFB3QAhHgyPAgsgCEEBaiEBQd4AIR4MjgILAkAgASIIIAJHDQBB8AAhHgyeAgsgCC0AAEHFAEcNrwEgCEEBaiEBDN4BC0HxACEeIAEiIiACRg2cAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFBiLOAgABqLQAARw2vASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMnQILIABBADYCACAiICZrQQRqIQFBLSEeDKwBC0HyACEeIAEiIiACRg2bAiACICJrIAAoAgAiJmohIyAiIQggJiEBAkADQCAILQAAIAFB0LOAgABqLQAARw2uASABQQhGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICM2AgAMnAILIABBADYCACAiICZrQQlqIQFBKSEeDKsBCwJAIAEiASACRw0AQfMAIR4MmwILQQEhHiABLQAAQd8ARw2qASABQQFqIQEM3AELQfQAIR4gASIiIAJGDZkCIAIgImsgACgCACImaiEjICIhCCAmIQEDQCAILQAAIAFBjLOAgABqLQAARw2rASABQQFGDfcBIAFBAWohASAIQQFqIgggAkcNAAsgACAjNgIADJkCCwJAIAEiHiACRw0AQfUAIR4MmQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGOs4CAAGotAABHDasBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH1ACEeDJkCCyAAQQA2AgAgHiAia0EDaiEBQQIhHgyoAQsCQCABIh4gAkcNAEH2ACEeDJgCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFB8LOAgABqLQAARw2qASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB9gAhHgyYAgsgAEEANgIAIB4gImtBAmohAUEfIR4MpwELAkAgASIeIAJHDQBB9wAhHgyXAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQfKzgIAAai0AAEcNqQEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfcAIR4MlwILIABBADYCACAeICJrQQJqIQFBCSEeDKYBCwJAIAEiCCACRw0AQfgAIR4MlgILAkACQCAILQAAQbd/ag4HAKkBqQGpAakBqQEBqQELIAhBAWohAUHmACEeDIYCCyAIQQFqIQFB5wAhHgyFAgsCQCABIh4gAkcNAEH5ACEeDJUCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBkbOAgABqLQAARw2nASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB+QAhHgyVAgsgAEEANgIAIB4gImtBBmohAUEYIR4MpAELAkAgASIeIAJHDQBB+gAhHgyUAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQZezgIAAai0AAEcNpgEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQfoAIR4MlAILIABBADYCACAeICJrQQNqIQFBFyEeDKMBCwJAIAEiHiACRw0AQfsAIR4MkwILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGas4CAAGotAABHDaUBIAFBBkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEH7ACEeDJMCCyAAQQA2AgAgHiAia0EHaiEBQRUhHgyiAQsCQCABIh4gAkcNAEH8ACEeDJICCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBobOAgABqLQAARw2kASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBB/AAhHgySAgsgAEEANgIAIB4gImtBBmohAUEeIR4MoQELAkAgASIIIAJHDQBB/QAhHgyRAgsgCC0AAEHMAEcNogEgCEEBaiEBQQohHgygAQsCQCABIgggAkcNAEH+ACEeDJACCwJAAkAgCC0AAEG/f2oODwCjAaMBowGjAaMBowGjAaMBowGjAaMBowGjAQGjAQsgCEEBaiEBQewAIR4MgAILIAhBAWohAUHtACEeDP8BCwJAIAEiCCACRw0AQf8AIR4MjwILAkACQCAILQAAQb9/ag4DAKIBAaIBCyAIQQFqIQFB6wAhHgz/AQsgCEEBaiEBQe4AIR4M/gELAkAgASIeIAJHDQBBgAEhHgyOAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQaezgIAAai0AAEcNoAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYABIR4MjgILIABBADYCACAeICJrQQJqIQFBCyEeDJ0BCwJAIAEiCCACRw0AQYEBIR4MjQILAkACQAJAAkAgCC0AAEFTag4jAKIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogGiAaIBogEBogGiAaIBogGiAQKiAaIBogEDogELIAhBAWohAUHpACEeDP8BCyAIQQFqIQFB6gAhHgz+AQsgCEEBaiEBQe8AIR4M/QELIAhBAWohAUHwACEeDPwBCwJAIAEiHiACRw0AQYIBIR4MjAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUGps4CAAGotAABHDZ4BIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGCASEeDIwCCyAAQQA2AgAgHiAia0EFaiEBQRkhHgybAQsCQCABIiIgAkcNAEGDASEeDIsCCyACICJrIAAoAgAiJmohHiAiIQggJiEBAkADQCAILQAAIAFBrrOAgABqLQAARw2dASABQQVGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAIB42AgBBgwEhHgyLAgsgAEEANgIAQQYhHiAiICZrQQZqIQEMmgELAkAgASIeIAJHDQBBhAEhHgyKAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbSzgIAAai0AAEcNnAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYQBIR4MigILIABBADYCACAeICJrQQJqIQFBHCEeDJkBCwJAIAEiHiACRw0AQYUBIR4MiQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUG2s4CAAGotAABHDZsBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGFASEeDIkCCyAAQQA2AgAgHiAia0ECaiEBQSchHgyYAQsCQCABIgggAkcNAEGGASEeDIgCCwJAAkAgCC0AAEGsf2oOAgABmwELIAhBAWohAUH0ACEeDPgBCyAIQQFqIQFB9QAhHgz3AQsCQCABIh4gAkcNAEGHASEeDIcCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBuLOAgABqLQAARw2ZASABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBhwEhHgyHAgsgAEEANgIAIB4gImtBAmohAUEmIR4MlgELAkAgASIeIAJHDQBBiAEhHgyGAgsgAiAeayAAKAIAIiJqISYgHiEIICIhAQJAA0AgCC0AACABQbqzgIAAai0AAEcNmAEgAUEBRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAmNgIAQYgBIR4MhgILIABBADYCACAeICJrQQJqIQFBAyEeDJUBCwJAIAEiHiACRw0AQYkBIR4MhQILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHts4CAAGotAABHDZcBIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGJASEeDIUCCyAAQQA2AgAgHiAia0EDaiEBQQwhHgyUAQsCQCABIh4gAkcNAEGKASEeDIQCCyACIB5rIAAoAgAiImohJiAeIQggIiEBAkADQCAILQAAIAFBvLOAgABqLQAARw2WASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICY2AgBBigEhHgyEAgsgAEEANgIAIB4gImtBBGohAUENIR4MkwELAkAgASIIIAJHDQBBiwEhHgyDAgsCQAJAIAgtAABBun9qDgsAlgGWAZYBlgGWAZYBlgGWAZYBAZYBCyAIQQFqIQFB+QAhHgzzAQsgCEEBaiEBQfoAIR4M8gELAkAgASIIIAJHDQBBjAEhHgyCAgsgCC0AAEHQAEcNkwEgCEEBaiEBDMQBCwJAIAEiCCACRw0AQY0BIR4MgQILAkACQCAILQAAQbd/ag4HAZQBlAGUAZQBlAEAlAELIAhBAWohAUH8ACEeDPEBCyAIQQFqIQFBIiEeDJABCwJAIAEiHiACRw0AQY4BIR4MgAILIAIgHmsgACgCACIiaiEmIB4hCCAiIQECQANAIAgtAAAgAUHAs4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgJjYCAEGOASEeDIACCyAAQQA2AgAgHiAia0ECaiEBQR0hHgyPAQsCQCABIgggAkcNAEGPASEeDP8BCwJAAkAgCC0AAEGuf2oOAwCSAQGSAQsgCEEBaiEBQf4AIR4M7wELIAhBAWohAUEEIR4MjgELAkAgASIIIAJHDQBBkAEhHgz+AQsCQAJAAkACQAJAIAgtAABBv39qDhUAlAGUAZQBlAGUAZQBlAGUAZQBlAEBlAGUAQKUAZQBA5QBlAEElAELIAhBAWohAUH2ACEeDPEBCyAIQQFqIQFB9wAhHgzwAQsgCEEBaiEBQfgAIR4M7wELIAhBAWohAUH9ACEeDO4BCyAIQQFqIQFB/wAhHgztAQsCQCAEIAJHDQBBkQEhHgz9AQsgAiAEayAAKAIAIh5qISIgBCEIIB4hAQJAA0AgCC0AACABQe2zgIAAai0AAEcNjwEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZEBIR4M/QELIABBADYCACAEIB5rQQNqIQFBESEeDIwBCwJAIAUgAkcNAEGSASEeDPwBCyACIAVrIAAoAgAiHmohIiAFIQggHiEBAkADQCAILQAAIAFBwrOAgABqLQAARw2OASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBkgEhHgz8AQsgAEEANgIAIAUgHmtBA2ohAUEsIR4MiwELAkAgBiACRw0AQZMBIR4M+wELIAIgBmsgACgCACIeaiEiIAYhCCAeIQECQANAIAgtAAAgAUHFs4CAAGotAABHDY0BIAFBBEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGTASEeDPsBCyAAQQA2AgAgBiAea0EFaiEBQSshHgyKAQsCQCAHIAJHDQBBlAEhHgz6AQsgAiAHayAAKAIAIh5qISIgByEIIB4hAQJAA0AgCC0AACABQcqzgIAAai0AAEcNjAEgAUECRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZQBIR4M+gELIABBADYCACAHIB5rQQNqIQFBFCEeDIkBCwJAIAggAkcNAEGVASEeDPkBCwJAAkACQAJAIAgtAABBvn9qDg8AAQKOAY4BjgGOAY4BjgGOAY4BjgGOAY4BA44BCyAIQQFqIQRBgQEhHgzrAQsgCEEBaiEFQYIBIR4M6gELIAhBAWohBkGDASEeDOkBCyAIQQFqIQdBhAEhHgzoAQsCQCAIIAJHDQBBlgEhHgz4AQsgCC0AAEHFAEcNiQEgCEEBaiEIDLsBCwJAIAkgAkcNAEGXASEeDPcBCyACIAlrIAAoAgAiHmohIiAJIQggHiEBAkADQCAILQAAIAFBzbOAgABqLQAARw2JASABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBlwEhHgz3AQsgAEEANgIAIAkgHmtBA2ohAUEOIR4MhgELAkAgCCACRw0AQZgBIR4M9gELIAgtAABB0ABHDYcBIAhBAWohAUElIR4MhQELAkAgCiACRw0AQZkBIR4M9QELIAIgCmsgACgCACIeaiEiIAohCCAeIQECQANAIAgtAAAgAUHQs4CAAGotAABHDYcBIAFBCEYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGZASEeDPUBCyAAQQA2AgAgCiAea0EJaiEBQSohHgyEAQsCQCAIIAJHDQBBmgEhHgz0AQsCQAJAIAgtAABBq39qDgsAhwGHAYcBhwGHAYcBhwGHAYcBAYcBCyAIQQFqIQhBiAEhHgzkAQsgCEEBaiEKQYkBIR4M4wELAkAgCCACRw0AQZsBIR4M8wELAkACQCAILQAAQb9/ag4UAIYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAYYBhgGGAQGGAQsgCEEBaiEJQYcBIR4M4wELIAhBAWohCEGKASEeDOIBCwJAIAsgAkcNAEGcASEeDPIBCyACIAtrIAAoAgAiHmohIiALIQggHiEBAkADQCAILQAAIAFB2bOAgABqLQAARw2EASABQQNGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBnAEhHgzyAQsgAEEANgIAIAsgHmtBBGohAUEhIR4MgQELAkAgDCACRw0AQZ0BIR4M8QELIAIgDGsgACgCACIeaiEiIAwhCCAeIQECQANAIAgtAAAgAUHds4CAAGotAABHDYMBIAFBBkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGdASEeDPEBCyAAQQA2AgAgDCAea0EHaiEBQRohHgyAAQsCQCAIIAJHDQBBngEhHgzwAQsCQAJAAkAgCC0AAEG7f2oOEQCEAYQBhAGEAYQBhAGEAYQBhAEBhAGEAYQBhAGEAQKEAQsgCEEBaiEIQYsBIR4M4QELIAhBAWohC0GMASEeDOABCyAIQQFqIQxBjQEhHgzfAQsCQCANIAJHDQBBnwEhHgzvAQsgAiANayAAKAIAIh5qISIgDSEIIB4hAQJAA0AgCC0AACABQeSzgIAAai0AAEcNgQEgAUEFRg0BIAFBAWohASAIQQFqIgggAkcNAAsgACAiNgIAQZ8BIR4M7wELIABBADYCACANIB5rQQZqIQFBKCEeDH4LAkAgDiACRw0AQaABIR4M7gELIAIgDmsgACgCACIeaiEiIA4hCCAeIQECQANAIAgtAAAgAUHqs4CAAGotAABHDYABIAFBAkYNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGgASEeDO4BCyAAQQA2AgAgDiAea0EDaiEBQQchHgx9CwJAIAggAkcNAEGhASEeDO0BCwJAAkAgCC0AAEG7f2oODgCAAYABgAGAAYABgAGAAYABgAGAAYABgAEBgAELIAhBAWohDUGPASEeDN0BCyAIQQFqIQ5BkAEhHgzcAQsCQCAPIAJHDQBBogEhHgzsAQsgAiAPayAAKAIAIh5qISIgDyEIIB4hAQJAA0AgCC0AACABQe2zgIAAai0AAEcNfiABQQJGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBogEhHgzsAQsgAEEANgIAIA8gHmtBA2ohAUESIR4MewsCQCAQIAJHDQBBowEhHgzrAQsgAiAQayAAKAIAIh5qISIgECEIIB4hAQJAA0AgCC0AACABQfCzgIAAai0AAEcNfSABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBowEhHgzrAQsgAEEANgIAIBAgHmtBAmohAUEgIR4MegsCQCARIAJHDQBBpAEhHgzqAQsgAiARayAAKAIAIh5qISIgESEIIB4hAQJAA0AgCC0AACABQfKzgIAAai0AAEcNfCABQQFGDQEgAUEBaiEBIAhBAWoiCCACRw0ACyAAICI2AgBBpAEhHgzqAQsgAEEANgIAIBEgHmtBAmohAUEPIR4MeQsCQCAIIAJHDQBBpQEhHgzpAQsCQAJAIAgtAABBt39qDgcAfHx8fHwBfAsgCEEBaiEQQZMBIR4M2QELIAhBAWohEUGUASEeDNgBCwJAIBIgAkcNAEGmASEeDOgBCyACIBJrIAAoAgAiHmohIiASIQggHiEBAkADQCAILQAAIAFB9LOAgABqLQAARw16IAFBB0YNASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEGmASEeDOgBCyAAQQA2AgAgEiAea0EIaiEBQRshHgx3CwJAIAggAkcNAEGnASEeDOcBCwJAAkACQCAILQAAQb5/ag4SAHt7e3t7e3t7ewF7e3t7e3sCewsgCEEBaiEPQZIBIR4M2AELIAhBAWohCEGVASEeDNcBCyAIQQFqIRJBlgEhHgzWAQsCQCAIIAJHDQBBqAEhHgzmAQsgCC0AAEHOAEcNdyAIQQFqIQgMqgELAkAgCCACRw0AQakBIR4M5QELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCC0AAEG/f2oOFQABAgOGAQQFBoYBhgGGAQcICQoLhgEMDQ4PhgELIAhBAWohAUHWACEeDOMBCyAIQQFqIQFB1wAhHgziAQsgCEEBaiEBQdwAIR4M4QELIAhBAWohAUHgACEeDOABCyAIQQFqIQFB4QAhHgzfAQsgCEEBaiEBQeQAIR4M3gELIAhBAWohAUHlACEeDN0BCyAIQQFqIQFB6AAhHgzcAQsgCEEBaiEBQfEAIR4M2wELIAhBAWohAUHyACEeDNoBCyAIQQFqIQFB8wAhHgzZAQsgCEEBaiEBQYABIR4M2AELIAhBAWohCEGGASEeDNcBCyAIQQFqIQhBjgEhHgzWAQsgCEEBaiEIQZEBIR4M1QELIAhBAWohCEGYASEeDNQBCwJAIBQgAkcNAEGrASEeDOQBCyAUQQFqIRMMdwsDQAJAIB4tAABBdmoOBHcAAHoACyAeQQFqIh4gAkcNAAtBrAEhHgziAQsCQCAVIAJGDQAgAEGNgICAADYCCCAAIBU2AgQgFSEBQQEhHgzSAQtBrQEhHgzhAQsCQCAVIAJHDQBBrgEhHgzhAQsCQAJAIBUtAABBdmoOBAGrAasBAKsBCyAVQQFqIRQMeAsgFUEBaiETDHQLIAAgEyACEKeAgIAAGiATIQEMRQsCQCAVIAJHDQBBrwEhHgzfAQsCQAJAIBUtAABBdmoOFwF5eQF5eXl5eXl5eXl5eXl5eXl5eXkAeQsgFUEBaiEVC0GcASEeDM4BCwJAIBYgAkcNAEGxASEeDN4BCyAWLQAAQSBHDXcgAEEAOwEyIBZBAWohAUGgASEeDM0BCyABISYCQANAICYiFSACRg0BIBUtAABBUGpB/wFxIh5BCk8NqAECQCAALwEyIiJBmTNLDQAgACAiQQpsIiI7ATIgHkH//wNzICJB/v8DcUkNACAVQQFqISYgACAiIB5qIh47ATIgHkH//wNxQegHSQ0BCwtBACEeIABBADYCHCAAQZ2JgIAANgIQIABBDTYCDCAAIBVBAWo2AhQM3QELQbABIR4M3AELAkAgFyACRw0AQbIBIR4M3AELQQAhHgJAAkACQAJAAkACQAJAAkAgFy0AAEFQag4Kf34AAQIDBAUGB4ABC0ECIR4MfgtBAyEeDH0LQQQhHgx8C0EFIR4MewtBBiEeDHoLQQchHgx5C0EIIR4MeAtBCSEeDHcLAkAgGCACRw0AQbMBIR4M2wELIBgtAABBLkcNeCAYQQFqIRcMpgELAkAgGSACRw0AQbQBIR4M2gELQQAhHgJAAkACQAJAAkACQAJAAkAgGS0AAEFQag4KgQGAAQABAgMEBQYHggELQQIhHgyAAQtBAyEeDH8LQQQhHgx+C0EFIR4MfQtBBiEeDHwLQQchHgx7C0EIIR4MegtBCSEeDHkLAkAgCCACRw0AQbUBIR4M2QELIAIgCGsgACgCACIiaiEmIAghGSAiIR4DQCAZLQAAIB5B/LOAgABqLQAARw17IB5BBEYNtAEgHkEBaiEeIBlBAWoiGSACRw0ACyAAICY2AgBBtQEhHgzYAQsCQCAaIAJHDQBBtgEhHgzYAQsgAiAaayAAKAIAIh5qISIgGiEIIB4hAQNAIAgtAAAgAUGBtICAAGotAABHDXsgAUEBRg22ASABQQFqIQEgCEEBaiIIIAJHDQALIAAgIjYCAEG2ASEeDNcBCwJAIBsgAkcNAEG3ASEeDNcBCyACIBtrIAAoAgAiGWohIiAbIQggGSEeA0AgCC0AACAeQYO0gIAAai0AAEcNeiAeQQJGDXwgHkEBaiEeIAhBAWoiCCACRw0ACyAAICI2AgBBtwEhHgzWAQsCQCAIIAJHDQBBuAEhHgzWAQsCQAJAIAgtAABBu39qDhAAe3t7e3t7e3t7e3t7e3sBewsgCEEBaiEaQaUBIR4MxgELIAhBAWohG0GmASEeDMUBCwJAIAggAkcNAEG5ASEeDNUBCyAILQAAQcgARw14IAhBAWohCAyiAQsCQCAIIAJHDQBBugEhHgzUAQsgCC0AAEHIAEYNogEgAEEBOgAoDJkBCwNAAkAgCC0AAEF2ag4EAHp6AHoLIAhBAWoiCCACRw0AC0G8ASEeDNIBCyAAQQA6AC8gAC0ALUEEcUUNyAELIABBADoALyABIQEMeQsgHkEVRg2pASAAQQA2AhwgACABNgIUIABBq4yAgAA2AhAgAEESNgIMQQAhHgzPAQsCQCAAIB4gAhCtgICAACIBDQAgHiEBDMUBCwJAIAFBFUcNACAAQQM2AhwgACAeNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgzPAQsgAEEANgIcIAAgHjYCFCAAQauMgIAANgIQIABBEjYCDEEAIR4MzgELIB5BFUYNpQEgAEEANgIcIAAgATYCFCAAQYiMgIAANgIQIABBFDYCDEEAIR4MzQELIAAoAgQhJiAAQQA2AgQgHiAfp2oiIyEBIAAgJiAeICMgIhsiHhCugICAACIiRQ16IABBBzYCHCAAIB42AhQgACAiNgIMQQAhHgzMAQsgACAALwEwQYABcjsBMCABIQEMMQsgHkEVRg2hASAAQQA2AhwgACABNgIUIABBxYuAgAA2AhAgAEETNgIMQQAhHgzKAQsgAEEANgIcIAAgATYCFCAAQYuLgIAANgIQIABBAjYCDEEAIR4MyQELIB5BO0cNASABQQFqIQELQQghHgy3AQtBACEeIABBADYCHCAAIAE2AhQgAEGjkICAADYCECAAQQw2AgwMxgELQgEhHwsgHkEBaiEBAkAgACkDICIgQv//////////D1YNACAAICBCBIYgH4Q3AyAgASEBDHcLIABBADYCHCAAIAE2AhQgAEGJiYCAADYCECAAQQw2AgxBACEeDMQBCyAAQQA2AhwgACAeNgIUIABBo5CAgAA2AhAgAEEMNgIMQQAhHgzDAQsgACgCBCEmIABBADYCBCAeIB+naiIjIQEgACAmIB4gIyAiGyIeEK6AgIAAIiJFDW4gAEEFNgIcIAAgHjYCFCAAICI2AgxBACEeDMIBCyAAQQA2AhwgACAeNgIUIABB3ZSAgAA2AhAgAEEPNgIMQQAhHgzBAQsgACAeIAIQrYCAgAAiAQ0BIB4hAQtBDyEeDK8BCwJAIAFBFUcNACAAQQI2AhwgACAeNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgy/AQsgAEEANgIcIAAgHjYCFCAAQauMgIAANgIQIABBEjYCDEEAIR4MvgELIAFBAWohHgJAIAAvATAiAUGAAXFFDQACQCAAIB4gAhCwgICAACIBDQAgHiEBDGsLIAFBFUcNlwEgAEEFNgIcIAAgHjYCFCAAQb6SgIAANgIQIABBFTYCDEEAIR4MvgELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIB42AhQgAEHsj4CAADYCECAAQQQ2AgxBACEeDL4BCyAAIB4gAhCxgICAABogHiEBAkACQAJAAkACQCAAIB4gAhCsgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAeIQELQR0hHgyvAQsgAEEVNgIcIAAgHjYCFCAAQeGRgIAANgIQIABBFTYCDEEAIR4MvgELIABBADYCHCAAIB42AhQgAEGxi4CAADYCECAAQRE2AgxBACEeDL0BCyAALQAtQQFxRQ0BQaoBIR4MrAELAkAgHCACRg0AA0ACQCAcLQAAQSBGDQAgHCEBDKgBCyAcQQFqIhwgAkcNAAtBFyEeDLwBC0EXIR4MuwELIAAoAgQhASAAQQA2AgQgACABIBwQqICAgAAiAUUNkAEgAEEYNgIcIAAgATYCDCAAIBxBAWo2AhRBACEeDLoBCyAAQRk2AhwgACABNgIUIAAgHjYCDEEAIR4MuQELIB4hAUEBISICQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhIgwBC0EEISILIABBAToALCAAIAAvATAgInI7ATALIB4hAQtBICEeDKkBCyAAQQA2AhwgACAeNgIUIABBgY+AgAA2AhAgAEELNgIMQQAhHgy4AQsgHiEBQQEhIgJAAkACQAJAAkAgAC0ALEF7ag4EAgABAwULQQIhIgwBC0EEISILIABBAToALCAAIAAvATAgInI7ATAMAQsgACAALwEwQQhyOwEwCyAeIQELQasBIR4MpgELIAAgASACEKuAgIAAGgwbCwJAIAEiHiACRg0AIB4hAQJAAkAgHi0AAEF2ag4EAWpqAGoLIB5BAWohAQtBHiEeDKUBC0HDACEeDLQBCyAAQQA2AhwgACABNgIUIABBkZGAgAA2AhAgAEEDNgIMQQAhHgyzAQsCQCABLQAAQQ1HDQAgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABQQFqIQEMaQsgAEEeNgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDLMBCyABIQEgAC0ALUEBcUUNrgFBrQEhHgyiAQsCQCABIgEgAkcNAEEfIR4MsgELAkACQANAAkAgAS0AAEF2ag4EAgAAAwALIAFBAWoiASACRw0AC0EfIR4MswELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCqgICAACIeDQAgASEBDGgLIABBHjYCHCAAIAE2AhQgACAeNgIMQQAhHgyyAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKqAgIAAIh4NACABQQFqIQEMZwsgAEEeNgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDLEBCyAeQSxHDQEgAUEBaiEeQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIB4hAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIB4hAQwBCyAAIAAvATBBCHI7ATAgHiEBC0EuIR4MnwELIABBADoALCABIQELQSkhHgydAQsgAEEANgIAICMgJGtBCWohAUEFIR4MmAELIABBADYCACAjICRrQQZqIQFBByEeDJcBCyAAIAAvATBBIHI7ATAgASEBDAILIAAoAgQhCCAAQQA2AgQCQCAAIAggARCqgICAACIIDQAgASEBDJ0BCyAAQSo2AhwgACABNgIUIAAgCDYCDEEAIR4MqQELIABBCDoALCABIQELQSUhHgyXAQsCQCAALQAoQQFGDQAgASEBDAQLIAAtAC1BCHFFDXggASEBDAMLIAAtADBBIHENeUGuASEeDJUBCwJAIB0gAkYNAAJAA0ACQCAdLQAAQVBqIgFB/wFxQQpJDQAgHSEBQSohHgyYAQsgACkDICIfQpmz5syZs+bMGVYNASAAIB9CCn4iHzcDICAfIAGtIiBCf4VCgH6EVg0BIAAgHyAgQv8Bg3w3AyAgHUEBaiIdIAJHDQALQSwhHgymAQsgACgCBCEIIABBADYCBCAAIAggHUEBaiIBEKqAgIAAIggNeiABIQEMmQELQSwhHgykAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDXULIAAgAUH3+wNxQYAEcjsBMCAdIQELQSwhHgySAQsgACAALwEwQRByOwEwDIcBCyAAQTY2AhwgACABNgIMIAAgHEEBajYCFEEAIR4MoAELIAEtAABBOkcNAiAAKAIEIR4gAEEANgIEIAAgHiABEKiAgIAAIh4NASABQQFqIQELQTEhHgyOAQsgAEE2NgIcIAAgHjYCDCAAIAFBAWo2AhRBACEeDJ0BCyAAQQA2AhwgACABNgIUIABBh46AgAA2AhAgAEEKNgIMQQAhHgycAQsgAUEBaiEBCyAAQYASOwEqIAAgASACEKWAgIAAGiABIQELQawBIR4MiQELIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDFALIABBxAA2AhwgACABNgIUIAAgHjYCDEEAIR4MmAELIABBADYCHCAAICI2AhQgAEHlmICAADYCECAAQQc2AgwgAEEANgIAQQAhHgyXAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMTwsgAEHFADYCHCAAIAE2AhQgACAeNgIMQQAhHgyWAQtBACEeIABBADYCHCAAIAE2AhQgAEHrjYCAADYCECAAQQk2AgwMlQELQQEhHgsgACAeOgArIAFBAWohASAALQApQSJGDYsBDEwLIABBADYCHCAAIAE2AhQgAEGijYCAADYCECAAQQk2AgxBACEeDJIBCyAAQQA2AhwgACABNgIUIABBxYqAgAA2AhAgAEEJNgIMQQAhHgyRAQtBASEeCyAAIB46ACogAUEBaiEBDEoLIABBADYCHCAAIAE2AhQgAEG4jYCAADYCECAAQQk2AgxBACEeDI4BCyAAQQA2AgAgJiAja0EEaiEBAkAgAC0AKUEjTw0AIAEhAQxKCyAAQQA2AhwgACABNgIUIABBr4mAgAA2AhAgAEEINgIMQQAhHgyNAQsgAEEANgIAC0EAIR4gAEEANgIcIAAgATYCFCAAQbmbgIAANgIQIABBCDYCDAyLAQsgAEEANgIAICYgI2tBA2ohAQJAIAAtAClBIUcNACABIQEMRwsgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDEEAIR4MigELIABBADYCACAmICNrQQRqIQECQCAALQApIh5BXWpBC08NACABIQEMRgsCQCAeQQZLDQBBASAedEHKAHFFDQAgASEBDEYLQQAhHiAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMDIkBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQxGCyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDIgBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw/CyAAQcQANgIcIAAgATYCFCAAIB42AgxBACEeDIcBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw/CyAAQcUANgIcIAAgATYCFCAAIB42AgxBACEeDIYBCyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQxDCyAAQdAANgIcIAAgATYCFCAAIB42AgxBACEeDIUBCyAAQQA2AhwgACABNgIUIABBooqAgAA2AhAgAEEHNgIMQQAhHgyEAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMOwsgAEHEADYCHCAAIAE2AhQgACAeNgIMQQAhHgyDAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMOwsgAEHFADYCHCAAIAE2AhQgACAeNgIMQQAhHgyCAQsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMPwsgAEHQADYCHCAAIAE2AhQgACAeNgIMQQAhHgyBAQsgAEEANgIcIAAgATYCFCAAQbiIgIAANgIQIABBBzYCDEEAIR4MgAELIB5BP0cNASABQQFqIQELQQUhHgxuC0EAIR4gAEEANgIcIAAgATYCFCAAQdOPgIAANgIQIABBBzYCDAx9CyAAKAIEIR4gAEEANgIEAkAgACAeIAEQpICAgAAiHg0AIAEhAQw0CyAAQcQANgIcIAAgATYCFCAAIB42AgxBACEeDHwLIAAoAgQhHiAAQQA2AgQCQCAAIB4gARCkgICAACIeDQAgASEBDDQLIABBxQA2AhwgACABNgIUIAAgHjYCDEEAIR4MewsgACgCBCEeIABBADYCBAJAIAAgHiABEKSAgIAAIh4NACABIQEMOAsgAEHQADYCHCAAIAE2AhQgACAeNgIMQQAhHgx6CyAAKAIEIQEgAEEANgIEAkAgACABICIQpICAgAAiAQ0AICIhAQwxCyAAQcQANgIcIAAgIjYCFCAAIAE2AgxBACEeDHkLIAAoAgQhASAAQQA2AgQCQCAAIAEgIhCkgICAACIBDQAgIiEBDDELIABBxQA2AhwgACAiNgIUIAAgATYCDEEAIR4MeAsgACgCBCEBIABBADYCBAJAIAAgASAiEKSAgIAAIgENACAiIQEMNQsgAEHQADYCHCAAICI2AhQgACABNgIMQQAhHgx3CyAAQQA2AhwgACAiNgIUIABB0IyAgAA2AhAgAEEHNgIMQQAhHgx2CyAAQQA2AhwgACABNgIUIABB0IyAgAA2AhAgAEEHNgIMQQAhHgx1C0EAIR4gAEEANgIcIAAgIjYCFCAAQb+UgIAANgIQIABBBzYCDAx0CyAAQQA2AhwgACAiNgIUIABBv5SAgAA2AhAgAEEHNgIMQQAhHgxzCyAAQQA2AhwgACAiNgIUIABB1I6AgAA2AhAgAEEHNgIMQQAhHgxyCyAAQQA2AhwgACABNgIUIABBwZOAgAA2AhAgAEEGNgIMQQAhHgxxCyAAQQA2AgAgIiAma0EGaiEBQSQhHgsgACAeOgApIAEhAQxOCyAAQQA2AgALQQAhHiAAQQA2AhwgACAINgIUIABBpJSAgAA2AhAgAEEGNgIMDG0LIAAoAgQhEyAAQQA2AgQgACATIB4QpoCAgAAiEw0BIB5BAWohEwtBnQEhHgxbCyAAQaoBNgIcIAAgEzYCDCAAIB5BAWo2AhRBACEeDGoLIAAoAgQhFCAAQQA2AgQgACAUIB4QpoCAgAAiFA0BIB5BAWohFAtBmgEhHgxYCyAAQasBNgIcIAAgFDYCDCAAIB5BAWo2AhRBACEeDGcLIABBADYCHCAAIBU2AhQgAEHzioCAADYCECAAQQ02AgxBACEeDGYLIABBADYCHCAAIBY2AhQgAEHOjYCAADYCECAAQQk2AgxBACEeDGULQQEhHgsgACAeOgArIBdBAWohFgwuCyAAQQA2AhwgACAXNgIUIABBoo2AgAA2AhAgAEEJNgIMQQAhHgxiCyAAQQA2AhwgACAYNgIUIABBxYqAgAA2AhAgAEEJNgIMQQAhHgxhC0EBIR4LIAAgHjoAKiAZQQFqIRgMLAsgAEEANgIcIAAgGTYCFCAAQbiNgIAANgIQIABBCTYCDEEAIR4MXgsgAEEANgIcIAAgGTYCFCAAQbmbgIAANgIQIABBCDYCDCAAQQA2AgBBACEeDF0LIABBADYCAAtBACEeIABBADYCHCAAIAg2AhQgAEGLlICAADYCECAAQQg2AgwMWwsgAEECOgAoIABBADYCACAbIBlrQQNqIRkMNgsgAEECOgAvIAAgCCACEKOAgIAAIh4NAUGvASEeDEkLIAAtAChBf2oOAh4gHwsgHkEVRw0nIABBuwE2AhwgACAINgIUIABBp5KAgAA2AhAgAEEVNgIMQQAhHgxXC0EAIR4MRgtBAiEeDEULQQ4hHgxEC0EQIR4MQwtBHCEeDEILQRQhHgxBC0EWIR4MQAtBFyEeDD8LQRkhHgw+C0EaIR4MPQtBOiEeDDwLQSMhHgw7C0EkIR4MOgtBMCEeDDkLQTshHgw4C0E8IR4MNwtBPiEeDDYLQT8hHgw1C0HAACEeDDQLQcEAIR4MMwtBxQAhHgwyC0HHACEeDDELQcgAIR4MMAtBygAhHgwvC0HfACEeDC4LQeIAIR4MLQtB+wAhHgwsC0GFASEeDCsLQZcBIR4MKgtBmQEhHgwpC0GpASEeDCgLQaQBIR4MJwtBmwEhHgwmC0GeASEeDCULQZ8BIR4MJAtBoQEhHgwjC0GiASEeDCILQacBIR4MIQtBqAEhHgwgCyAAQQA2AhwgACAINgIUIABB5ouAgAA2AhAgAEEQNgIMQQAhHgwvCyAAQQA2AgQgACAdIB0QqoCAgAAiAUUNASAAQS02AhwgACABNgIMIAAgHUEBajYCFEEAIR4MLgsgACgCBCEIIABBADYCBAJAIAAgCCABEKqAgIAAIghFDQAgAEEuNgIcIAAgCDYCDCAAIAFBAWo2AhRBACEeDC4LIAFBAWohAQweCyAdQQFqIQEMHgsgAEEANgIcIAAgHTYCFCAAQbqPgIAANgIQIABBBDYCDEEAIR4MKwsgAEEpNgIcIAAgATYCFCAAIAg2AgxBACEeDCoLIBxBAWohAQweCyAAQQo2AhwgACABNgIUIABBkZKAgAA2AhAgAEEVNgIMQQAhHgwoCyAAQRA2AhwgACABNgIUIABBvpKAgAA2AhAgAEEVNgIMQQAhHgwnCyAAQQA2AhwgACAeNgIUIABBiIyAgAA2AhAgAEEUNgIMQQAhHgwmCyAAQQQ2AhwgACABNgIUIABB1pKAgAA2AhAgAEEVNgIMQQAhHgwlCyAAQQA2AgAgCCAia0EFaiEZC0GjASEeDBMLIABBADYCACAiICZrQQJqIQFB4wAhHgwSCyAAQQA2AgAgAEGBBDsBKCAaIB5rQQJqIQELQdMAIR4MEAsgASEBAkAgAC0AKUEFRw0AQdIAIR4MEAtB0QAhHgwPC0EAIR4gAEEANgIcIABBuo6AgAA2AhAgAEEHNgIMIAAgIkEBajYCFAweCyAAQQA2AgAgJiAja0ECaiEBQTQhHgwNCyABIQELQS0hHgwLCwJAIAEiHSACRg0AA0ACQCAdLQAAQYCigIAAai0AACIBQQFGDQAgAUECRw0DIB1BAWohAQwECyAdQQFqIh0gAkcNAAtBMSEeDBsLQTEhHgwaCyAAQQA6ACwgHSEBDAELQQwhHgwIC0EvIR4MBwsgAUEBaiEBQSIhHgwGC0EfIR4MBQsgAEEANgIAICMgJGtBBGohAUEGIR4LIAAgHjoALCABIQFBDSEeDAMLIABBADYCACAmICNrQQdqIQFBCyEeDAILIABBADYCAAsgAEEAOgAsIBwhAUEJIR4MAAsLQQAhHiAAQQA2AhwgACABNgIUIABBuJGAgAA2AhAgAEEPNgIMDA4LQQAhHiAAQQA2AhwgACABNgIUIABBuJGAgAA2AhAgAEEPNgIMDA0LQQAhHiAAQQA2AhwgACABNgIUIABBlo+AgAA2AhAgAEELNgIMDAwLQQAhHiAAQQA2AhwgACABNgIUIABB8YiAgAA2AhAgAEELNgIMDAsLQQAhHiAAQQA2AhwgACABNgIUIABBiI2AgAA2AhAgAEEKNgIMDAoLIABBAjYCHCAAIAE2AhQgAEHwkoCAADYCECAAQRY2AgxBACEeDAkLQQEhHgwIC0HGACEeIAEiASACRg0HIANBCGogACABIAJB2KaAgABBChC5gICAACADKAIMIQEgAygCCA4DAQcCAAsQv4CAgAAACyAAQQA2AhwgAEGJk4CAADYCECAAQRc2AgwgACABQQFqNgIUQQAhHgwFCyAAQQA2AhwgACABNgIUIABBnpOAgAA2AhAgAEEJNgIMQQAhHgwECwJAIAEiASACRw0AQSEhHgwECwJAIAEtAABBCkYNACAAQQA2AhwgACABNgIUIABB7oyAgAA2AhAgAEEKNgIMQQAhHgwECyAAKAIEIQggAEEANgIEIAAgCCABEKqAgIAAIggNASABQQFqIQELQQAhHiAAQQA2AhwgACABNgIUIABB6pCAgAA2AhAgAEEZNgIMDAILIABBIDYCHCAAIAg2AgwgACABQQFqNgIUQQAhHgwBCwJAIAEiASACRw0AQRQhHgwBCyAAQYmAgIAANgIIIAAgATYCBEETIR4LIANBEGokgICAgAAgHguvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAELuAgIAAC5U3AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKgtICAAA0AQQAQvoCAgABBgLiEgABrIgJB2QBJDQBBACEDAkBBACgC4LeAgAAiBA0AQQBCfzcC7LeAgABBAEKAgISAgIDAADcC5LeAgABBACABQQhqQXBxQdiq1aoFcyIENgLgt4CAAEEAQQA2AvS3gIAAQQBBADYCxLeAgAALQQAgAjYCzLeAgABBAEGAuISAADYCyLeAgABBAEGAuISAADYCmLSAgABBACAENgKstICAAEEAQX82Aqi0gIAAA0AgA0HEtICAAGogA0G4tICAAGoiBDYCACAEIANBsLSAgABqIgU2AgAgA0G8tICAAGogBTYCACADQcy0gIAAaiADQcC0gIAAaiIFNgIAIAUgBDYCACADQdS0gIAAaiADQci0gIAAaiIENgIAIAQgBTYCACADQdC0gIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgLiEgABBeEGAuISAAGtBD3FBAEGAuISAAEEIakEPcRsiA2oiBEEEaiACIANrQUhqIgNBAXI2AgBBAEEAKALwt4CAADYCpLSAgABBACAENgKgtICAAEEAIAM2ApS0gIAAIAJBgLiEgABqQUxqQTg2AgALAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKItICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQAgA0EBcSAEckEBcyIFQQN0IgBBuLSAgABqKAIAIgRBCGohAwJAAkAgBCgCCCICIABBsLSAgABqIgBHDQBBACAGQX4gBXdxNgKItICAAAwBCyAAIAI2AgggAiAANgIMCyAEIAVBA3QiBUEDcjYCBCAEIAVqQQRqIgQgBCgCAEEBcjYCAAwMCyACQQAoApC0gIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgVBA3QiAEG4tICAAGooAgAiBCgCCCIDIABBsLSAgABqIgBHDQBBACAGQX4gBXdxIgY2Aoi0gIAADAELIAAgAzYCCCADIAA2AgwLIARBCGohAyAEIAJBA3I2AgQgBCAFQQN0IgVqIAUgAmsiBTYCACAEIAJqIgAgBUEBcjYCBAJAIAdFDQAgB0EDdiIIQQN0QbC0gIAAaiECQQAoApy0gIAAIQQCQAJAIAZBASAIdCIIcQ0AQQAgBiAIcjYCiLSAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIIC0EAIAA2Apy0gIAAQQAgBTYCkLSAgAAMDAtBACgCjLSAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuLaAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNAEEAKAKYtICAACAAKAIIIgNLGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjLSAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuLaAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0Qbi2gIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApC0gIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AQQAoApi0gIAAIAgoAggiA0saIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApC0gIAAIgMgAkkNAEEAKAKctICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApC0gIAAQQAgADYCnLSAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgAyAEakEEaiIDIAMoAgBBAXI2AgBBAEEANgKctICAAEEAQQA2ApC0gIAACyAEQQhqIQMMCgsCQEEAKAKUtICAACIAIAJNDQBBACgCoLSAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApS0gIAAQQAgBDYCoLSAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4LeAgABFDQBBACgC6LeAgAAhBAwBC0EAQn83Auy3gIAAQQBCgICEgICAwAA3AuS3gIAAQQAgAUEMakFwcUHYqtWqBXM2AuC3gIAAQQBBADYC9LeAgABBAEEANgLEt4CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+LeAgAAMCgsCQEEAKALAt4CAACIDRQ0AAkBBACgCuLeAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL4t4CAAAwKC0EALQDEt4CAAEEEcQ0EAkACQAJAQQAoAqC0gIAAIgRFDQBByLeAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQvoCAgAAiAEF/Rg0FIAghBgJAQQAoAuS3gIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwLeAgAAiA0UNAEEAKAK4t4CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQvoCAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEL6AgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAui3gIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBC+gICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxC+gICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALEt4CAAEEEcjYCxLeAgAALIAhB/v///wdLDQEgCBC+gICAACEAQQAQvoCAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK4t4CAACAGaiIDNgK4t4CAAAJAIANBACgCvLeAgABNDQBBACADNgK8t4CAAAsCQAJAAkACQEEAKAKgtICAACIERQ0AQci3gIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmLSAgAAiA0UNACAAIANPDQELQQAgADYCmLSAgAALQQAhA0EAIAY2Asy3gIAAQQAgADYCyLeAgABBAEF/NgKotICAAEEAQQAoAuC3gIAANgKstICAAEEAQQA2AtS3gIAAA0AgA0HEtICAAGogA0G4tICAAGoiBDYCACAEIANBsLSAgABqIgU2AgAgA0G8tICAAGogBTYCACADQcy0gIAAaiADQcC0gIAAaiIFNgIAIAUgBDYCACADQdS0gIAAaiADQci0gIAAaiIENgIAIAQgBTYCACADQdC0gIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGIANrQUhqIgNBAXI2AgRBAEEAKALwt4CAADYCpLSAgABBACAENgKgtICAAEEAIAM2ApS0gIAAIAYgAGpBTGpBODYCAAwCCyADLQAMQQhxDQAgBSAESw0AIAAgBE0NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApS0gIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALwt4CAADYCpLSAgABBACAFNgKUtICAAEEAIAA2AqC0gIAAIAsgBGpBBGpBODYCAAwBCwJAIABBACgCmLSAgAAiC08NAEEAIAA2Api0gIAAIAAhCwsgACAGaiEIQci3gIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgCEYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByLeAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiBiACQQNyNgIEIAhBeCAIa0EPcUEAIAhBCGpBD3EbaiIIIAYgAmoiAmshBQJAIAQgCEcNAEEAIAI2AqC0gIAAQQBBACgClLSAgAAgBWoiAzYClLSAgAAgAiADQQFyNgIEDAMLAkBBACgCnLSAgAAgCEcNAEEAIAI2Apy0gIAAQQBBACgCkLSAgAAgBWoiAzYCkLSAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAgoAgQiA0EDcUEBRw0AIANBeHEhBwJAAkAgA0H/AUsNACAIKAIIIgQgA0EDdiILQQN0QbC0gIAAaiIARhoCQCAIKAIMIgMgBEcNAEEAQQAoAoi0gIAAQX4gC3dxNgKItICAAAwCCyADIABGGiADIAQ2AgggBCADNgIMDAELIAgoAhghCQJAAkAgCCgCDCIAIAhGDQAgCyAIKAIIIgNLGiAAIAM2AgggAyAANgIMDAELAkAgCEEUaiIDKAIAIgQNACAIQRBqIgMoAgAiBA0AQQAhAAwBCwNAIAMhCyAEIgBBFGoiAygCACIEDQAgAEEQaiEDIAAoAhAiBA0ACyALQQA2AgALIAlFDQACQAJAIAgoAhwiBEECdEG4toCAAGoiAygCACAIRw0AIAMgADYCACAADQFBAEEAKAKMtICAAEF+IAR3cTYCjLSAgAAMAgsgCUEQQRQgCSgCECAIRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgCCgCECIDRQ0AIAAgAzYCECADIAA2AhgLIAgoAhQiA0UNACAAQRRqIAM2AgAgAyAANgIYCyAHIAVqIQUgCCAHaiEICyAIIAgoAgRBfnE2AgQgAiAFaiAFNgIAIAIgBUEBcjYCBAJAIAVB/wFLDQAgBUEDdiIEQQN0QbC0gIAAaiEDAkACQEEAKAKItICAACIFQQEgBHQiBHENAEEAIAUgBHI2Aoi0gIAAIAMhBAwBCyADKAIIIQQLIAQgAjYCDCADIAI2AgggAiADNgIMIAIgBDYCCAwDC0EfIQMCQCAFQf///wdLDQAgBUEIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIAIABBgIAPakEQdkECcSIAdEEPdiADIARyIAByayIDQQF0IAUgA0EVanZBAXFyQRxqIQMLIAIgAzYCHCACQgA3AhAgA0ECdEG4toCAAGohBAJAQQAoAoy0gIAAIgBBASADdCIIcQ0AIAQgAjYCAEEAIAAgCHI2Aoy0gIAAIAIgBDYCGCACIAI2AgggAiACNgIMDAMLIAVBAEEZIANBAXZrIANBH0YbdCEDIAQoAgAhAANAIAAiBCgCBEF4cSAFRg0CIANBHXYhACADQQF0IQMgBCAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBDYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBiADa0FIaiIDQQFyNgIEIAhBTGpBODYCACAEIAVBNyAFa0EPcUEAIAVBSWpBD3EbakFBaiIIIAggBEEQakkbIghBIzYCBEEAQQAoAvC3gIAANgKktICAAEEAIAs2AqC0gIAAQQAgAzYClLSAgAAgCEEQakEAKQLQt4CAADcCACAIQQApAsi3gIAANwIIQQAgCEEIajYC0LeAgABBACAGNgLMt4CAAEEAIAA2Asi3gIAAQQBBADYC1LeAgAAgCEEkaiEDA0AgA0EHNgIAIAUgA0EEaiIDSw0ACyAIIARGDQMgCCAIKAIEQX5xNgIEIAggCCAEayIGNgIAIAQgBkEBcjYCBAJAIAZB/wFLDQAgBkEDdiIFQQN0QbC0gIAAaiEDAkACQEEAKAKItICAACIAQQEgBXQiBXENAEEAIAAgBXI2Aoi0gIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAGQf///wdLDQAgBkEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiADIAVyIAByayIDQQF0IAYgA0EVanZBAXFyQRxqIQMLIARCADcCECAEQRxqIAM2AgAgA0ECdEG4toCAAGohBQJAQQAoAoy0gIAAIgBBASADdCIIcQ0AIAUgBDYCAEEAIAAgCHI2Aoy0gIAAIARBGGogBTYCACAEIAQ2AgggBCAENgIMDAQLIAZBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAANAIAAiBSgCBEF4cSAGRg0DIANBHXYhACADQQF0IQMgBSAAQQRxakEQaiIIKAIAIgANAAsgCCAENgIAIARBGGogBTYCACAEIAQ2AgwgBCAENgIIDAMLIAQoAggiAyACNgIMIAQgAjYCCCACQQA2AhggAiAENgIMIAIgAzYCCAsgBkEIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQRhqQQA2AgAgBCAFNgIMIAQgAzYCCAtBACgClLSAgAAiAyACTQ0AQQAoAqC0gIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKUtICAAEEAIAU2AqC0gIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+LeAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG4toCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKMtICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgAyAIakEEaiIDIAMoAgBBAXI2AgAMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEEDdiIEQQN0QbC0gIAAaiEDAkACQEEAKAKItICAACIFQQEgBHQiBHENAEEAIAUgBHI2Aoi0gIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG4toCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2Aoy0gIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG4toCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjLSAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAMgAGpBBGoiAyADKAIAQQFyNgIADAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBA3YiCEEDdEGwtICAAGohAkEAKAKctICAACEDAkACQEEBIAh0IgggBnENAEEAIAggBnI2Aoi0gIAAIAIhCAwBCyACKAIIIQgLIAggAzYCDCACIAM2AgggAyACNgIMIAMgCDYCCAtBACAFNgKctICAAEEAIAQ2ApC0gIAACyAAQQhqIQMLIAFBEGokgICAgAAgAwsKACAAEL2AgIAAC/ANAQd/AkAgAEUNACAAQXhqIgEgAEF8aigCACICQXhxIgBqIQMCQCACQQFxDQAgAkEDcUUNASABIAEoAgAiAmsiAUEAKAKYtICAACIESQ0BIAIgAGohAAJAQQAoApy0gIAAIAFGDQACQCACQf8BSw0AIAEoAggiBCACQQN2IgVBA3RBsLSAgABqIgZGGgJAIAEoAgwiAiAERw0AQQBBACgCiLSAgABBfiAFd3E2Aoi0gIAADAMLIAIgBkYaIAIgBDYCCCAEIAI2AgwMAgsgASgCGCEHAkACQCABKAIMIgYgAUYNACAEIAEoAggiAksaIAYgAjYCCCACIAY2AgwMAQsCQCABQRRqIgIoAgAiBA0AIAFBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAQJAAkAgASgCHCIEQQJ0Qbi2gIAAaiICKAIAIAFHDQAgAiAGNgIAIAYNAUEAQQAoAoy0gIAAQX4gBHdxNgKMtICAAAwDCyAHQRBBFCAHKAIQIAFGG2ogBjYCACAGRQ0CCyAGIAc2AhgCQCABKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgASgCFCICRQ0BIAZBFGogAjYCACACIAY2AhgMAQsgAygCBCICQQNxQQNHDQAgAyACQX5xNgIEQQAgADYCkLSAgAAgASAAaiAANgIAIAEgAEEBcjYCBA8LIAMgAU0NACADKAIEIgJBAXFFDQACQAJAIAJBAnENAAJAQQAoAqC0gIAAIANHDQBBACABNgKgtICAAEEAQQAoApS0gIAAIABqIgA2ApS0gIAAIAEgAEEBcjYCBCABQQAoApy0gIAARw0DQQBBADYCkLSAgABBAEEANgKctICAAA8LAkBBACgCnLSAgAAgA0cNAEEAIAE2Apy0gIAAQQBBACgCkLSAgAAgAGoiADYCkLSAgAAgASAAQQFyNgIEIAEgAGogADYCAA8LIAJBeHEgAGohAAJAAkAgAkH/AUsNACADKAIIIgQgAkEDdiIFQQN0QbC0gIAAaiIGRhoCQCADKAIMIgIgBEcNAEEAQQAoAoi0gIAAQX4gBXdxNgKItICAAAwCCyACIAZGGiACIAQ2AgggBCACNgIMDAELIAMoAhghBwJAAkAgAygCDCIGIANGDQBBACgCmLSAgAAgAygCCCICSxogBiACNgIIIAIgBjYCDAwBCwJAIANBFGoiAigCACIEDQAgA0EQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0AAkACQCADKAIcIgRBAnRBuLaAgABqIgIoAgAgA0cNACACIAY2AgAgBg0BQQBBACgCjLSAgABBfiAEd3E2Aoy0gIAADAILIAdBEEEUIAcoAhAgA0YbaiAGNgIAIAZFDQELIAYgBzYCGAJAIAMoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyADKAIUIgJFDQAgBkEUaiACNgIAIAIgBjYCGAsgASAAaiAANgIAIAEgAEEBcjYCBCABQQAoApy0gIAARw0BQQAgADYCkLSAgAAPCyADIAJBfnE2AgQgASAAaiAANgIAIAEgAEEBcjYCBAsCQCAAQf8BSw0AIABBA3YiAkEDdEGwtICAAGohAAJAAkBBACgCiLSAgAAiBEEBIAJ0IgJxDQBBACAEIAJyNgKItICAACAAIQIMAQsgACgCCCECCyACIAE2AgwgACABNgIIIAEgADYCDCABIAI2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAFCADcCECABQRxqIAI2AgAgAkECdEG4toCAAGohBAJAAkBBACgCjLSAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjLSAgAAgAUEYaiAENgIAIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABQRhqIAQ2AgAgASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEYakEANgIAIAEgBDYCDCABIAA2AggLQQBBACgCqLSAgABBf2oiAUF/IAEbNgKotICAAAsLTgACQCAADQA/AEEQdA8LAkAgAEH//wNxDQAgAEF/TA0AAkAgAEEQdkAAIgBBf0cNAEEAQTA2Avi3gIAAQX8PCyAAQRB0DwsQv4CAgAAACwQAAAALC44sAQBBgAgLhiwBAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHBhcmFtZXRlcnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AATUtBQ1RJVklUWQBDT1BZAE5PVElGWQBQTEFZAFBVVABDSEVDS09VVABQT1NUAFJFUE9SVABIUEVfSU5WQUxJRF9DT05TVEFOVABHRVQASFBFX1NUUklDVABSRURJUkVDVABDT05ORUNUAEhQRV9JTlZBTElEX1NUQVRVUwBPUFRJT05TAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAEhQRV9JTlZBTElEX1VSTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUAUEFVU0UAUFVSR0UATUVSR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABQUk9QRklORABVTkJJTkQAUkVCSU5EAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQASFBFX1BBVVNFRABIRUFEAEV4cGVjdGVkIEhUVFAvANwLAADPCwAA0woAAJkNAAAQDAAAXQsAAF8NAAC1CwAAugoAAHMLAACcCwAA9QsAAHMMAADvCgAA3AwAAEcMAACHCwAAjwwAAL0MAAAvCwAApwwAAKkNAAAEDQAAFw0AACYLAACJDQAA1QwAAM8KAAC0DQAArgoAAKEKAADnCgAAAgsAAD0NAACQCgAA7AsAAMULAACKDAAAcg0AADQMAABADAAA6gsAAIQNAACCDQAAew0AAMsLAACzCgAAhQoAAKUKAAD+DAAAPgwAAJUKAABODQAATA0AADgMAAD4DAAAQwsAAOULAADjCwAALQ0AAPELAABDDQAANA0AAE4LAACcCgAA8gwAAFQLAAAYCwAACgsAAN4KAABYDQAALgwAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWxvc2VlZXAtYWxpdmUAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZWN0aW9uZW50LWxlbmd0aG9ucm94eS1jb25uZWN0aW9uAAAAAAAAAAAAAAAAAAAAcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAAAAAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAEAAAIAAAAAAAAAAAAAAAAAAAAAAAADBAAABAQEBAQEBAQEBAQFBAQEBAQEBAQEBAQEAAQABgcEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAACAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv'\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumToMap = void 0;\nfunction enumToMap(obj) {\n const res = {};\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (typeof value === 'number') {\n res[key] = value;\n }\n });\n return res;\n}\nexports.enumToMap = enumToMap;\n//# sourceMappingURL=utils.js.map","'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n","'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n","'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n","'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n","'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n","'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n","'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [...keyValuePairs, key, value], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const responseData = getResponseData(\n typeof data === 'function' ? data({ ...opts, headers: optsHeaders }) : data\n )\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n","'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(…)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '✅' : '❌',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n","'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n","/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n","'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n","const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n","'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n socketPath,\n timeout: connectTimeout == null ? 10e3 : connectTimeout,\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n","'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Client = require('./client')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = {}\n\n if (opts.auth) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n }\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host } = resolvedUrl\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = new Client(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling'))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"async_hooks\");","module.exports = require(\"buffer\");","module.exports = require(\"console\");","module.exports = require(\"crypto\");","module.exports = require(\"diagnostics_channel\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"module\");","module.exports = require(\"net\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"perf_hooks\");","module.exports = require(\"punycode\");","module.exports = require(\"querystring\");","module.exports = require(\"stream\");","module.exports = require(\"stream/web\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"util/types\");","module.exports = require(\"zlib\");","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","const COMMENT_RE = /\\*\\//g;\nconst LB_RE = /\\r?\\n/g;\nconst DOUBLE_QUOTE_RE = /\"/g;\nconst SINGLE_QUOTE_RE = /'/g;\nconst ESC_0_RE = /\\~0/g;\nconst ESC_1_RE = /\\~1/g;\nconst TILDE_RE = /\\~/g;\nconst FS_RE = /\\//g;\nexport function prepareComment(v) {\n const commentsArray = [];\n if (v.title)\n commentsArray.push(`${v.title} `);\n if (v.format)\n commentsArray.push(`Format: ${v.format} `);\n if (v.deprecated)\n commentsArray.push(`@deprecated `);\n const supportedJsDocTags = [\"description\", \"default\", \"example\"];\n for (let index = 0; index < supportedJsDocTags.length; index++) {\n const field = supportedJsDocTags[index];\n const allowEmptyString = field === \"default\" || field === \"example\";\n if (v[field] === undefined) {\n continue;\n }\n if (v[field] === \"\" && !allowEmptyString) {\n continue;\n }\n const serialized = typeof v[field] === \"object\" ? JSON.stringify(v[field], null, 2) : v[field];\n commentsArray.push(`@${field} ${serialized} `);\n }\n if (v.const)\n commentsArray.push(`@constant `);\n if (v.enum) {\n const canBeNull = v.nullable ? `|${null}` : \"\";\n commentsArray.push(`@enum {${v.type}${canBeNull}}`);\n }\n if (!commentsArray.length)\n return;\n return comment(commentsArray.join(\"\\n\"));\n}\nexport function comment(text) {\n const commentText = text.trim().replace(COMMENT_RE, \"*\\\\/\");\n if (commentText.indexOf(\"\\n\") === -1) {\n return `/** ${commentText} */\\n`;\n }\n return `/**\n * ${commentText.replace(LB_RE, \"\\n * \")}\n */\\n`;\n}\nexport function parseRef(ref) {\n if (typeof ref !== \"string\" || !ref.includes(\"#\"))\n return { parts: [] };\n const [url, parts] = ref.split(\"#\");\n return {\n url: url || undefined,\n parts: parts\n .split(\"/\")\n .filter((p) => !!p)\n .map(decodeRef),\n };\n}\nexport function isRef(obj) {\n return !!obj.$ref;\n}\nexport function parseSingleSimpleValue(value, isNodeNullable = false) {\n if (typeof value === \"string\")\n return `'${value.replace(SINGLE_QUOTE_RE, \"\\\\'\")}'`;\n if (typeof value === \"number\" || typeof value === \"boolean\")\n return value;\n if (typeof value === \"object\")\n return JSON.stringify(value);\n if (value === null && !isNodeNullable)\n return \"null\";\n return `${value}`;\n}\nexport function nodeType(obj) {\n if (!obj || typeof obj !== \"object\") {\n return \"unknown\";\n }\n if (obj.$ref) {\n return \"ref\";\n }\n if (obj.const) {\n return \"const\";\n }\n if (Array.isArray(obj.enum) && obj.enum.length) {\n return \"enum\";\n }\n if (obj.type === \"boolean\") {\n return \"boolean\";\n }\n if (obj.type === \"string\" ||\n obj.type === \"binary\" ||\n obj.type === \"byte\" ||\n obj.type === \"date\" ||\n obj.type === \"dateTime\" ||\n obj.type === \"password\") {\n return \"string\";\n }\n if (obj.type === \"integer\" || obj.type === \"number\" || obj.type === \"float\" || obj.type === \"double\") {\n return \"number\";\n }\n if (obj.type === \"array\" || obj.items) {\n return \"array\";\n }\n if (obj.type === \"object\" ||\n obj.hasOwnProperty(\"allOf\") ||\n obj.hasOwnProperty(\"anyOf\") ||\n obj.hasOwnProperty(\"oneOf\") ||\n obj.hasOwnProperty(\"properties\") ||\n obj.hasOwnProperty(\"additionalProperties\")) {\n return \"object\";\n }\n return \"unknown\";\n}\nexport function swaggerVersion(definition) {\n if (\"openapi\" in definition) {\n if (parseInt(definition.openapi, 10) === 3) {\n return 3;\n }\n }\n if (\"swagger\" in definition) {\n if (typeof definition.swagger === \"number\" && Math.round(definition.swagger) === 2) {\n return 2;\n }\n if (parseInt(definition.swagger, 10) === 2) {\n return 2;\n }\n }\n throw new Error(`✘ version missing from schema; specify whether this is OpenAPI v3 or v2 https://swagger.io/specification`);\n}\nexport function decodeRef(ref) {\n return ref.replace(ESC_0_RE, \"~\").replace(ESC_1_RE, \"/\").replace(DOUBLE_QUOTE_RE, '\\\\\"');\n}\nexport function encodeRef(ref) {\n return ref.replace(TILDE_RE, \"~0\").replace(FS_RE, \"~1\");\n}\nexport function tsArrayOf(type) {\n return `(${type})[]`;\n}\nexport function tsTupleOf(types) {\n return `[${types.join(\", \")}]`;\n}\nexport function tsIntersectionOf(types) {\n const typesWithValues = types.filter(Boolean);\n if (!typesWithValues.length)\n return \"undefined\";\n if (typesWithValues.length === 1)\n return typesWithValues[0];\n return `(${typesWithValues.join(\") & (\")})`;\n}\nexport function tsPartial(type) {\n return `Partial<${type}>`;\n}\nexport function tsReadonly(immutable) {\n return immutable ? \"readonly \" : \"\";\n}\nexport function tsUnionOf(types) {\n if (!types.length)\n return \"undefined\";\n if (types.length === 1)\n return `${types[0]}`;\n return `(${types.join(\") | (\")})`;\n}\n//# sourceMappingURL=utils.js.map","import fs from \"fs\";\nimport yaml from \"js-yaml\";\nimport mime from \"mime\";\nimport path from \"path\";\nimport { Readable } from \"stream\";\nimport { request } from \"undici\";\nimport { URL } from \"url\";\nimport { parseRef } from \"./utils.js\";\nconst RED = \"\\u001b[31m\";\nconst RESET = \"\\u001b[0m\";\nexport const VIRTUAL_JSON_URL = `file:///_json`;\nfunction parseSchema(schema, type) {\n if (type === \"YAML\") {\n try {\n return yaml.load(schema);\n }\n catch (err) {\n throw new Error(`YAML: ${err.toString()}`);\n }\n }\n else {\n try {\n return JSON.parse(schema);\n }\n catch (err) {\n throw new Error(`JSON: ${err.toString()}`);\n }\n }\n}\nfunction isFile(url) {\n return url.protocol === \"file:\";\n}\nexport function resolveSchema(url) {\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n return new URL(url);\n }\n const localPath = path.isAbsolute(url) ? new URL(\"\", `file://${url}`) : new URL(url, `file://${process.cwd()}/`);\n if (!fs.existsSync(localPath)) {\n throw new Error(`Could not locate ${url}`);\n }\n else if (fs.statSync(localPath).isDirectory()) {\n throw new Error(`${localPath} is a directory not a file`);\n }\n return localPath;\n}\nfunction parseHttpHeaders(httpHeaders) {\n const finalHeaders = {};\n for (const [k, v] of Object.entries(httpHeaders)) {\n if (typeof v === \"string\") {\n finalHeaders[k] = v;\n }\n else {\n try {\n const stringVal = JSON.stringify(v);\n finalHeaders[k] = stringVal;\n }\n catch (err) {\n console.error(`${RED}Cannot parse key: ${k} into JSON format. Continuing with the next HTTP header that is specified${RESET}`);\n }\n }\n }\n return finalHeaders;\n}\nexport default async function load(schema, options) {\n const urlCache = options.urlCache || new Set();\n const isJSON = schema instanceof URL == false && schema instanceof Readable == false;\n let schemaID = isJSON || schema instanceof Readable ? new URL(VIRTUAL_JSON_URL).href : schema.href;\n const schemas = options.schemas;\n if (isJSON) {\n schemas[schemaID] = schema;\n }\n else {\n if (urlCache.has(schemaID))\n return options.schemas;\n urlCache.add(schemaID);\n let contents = \"\";\n let contentType = \"\";\n const schemaURL = schema instanceof Readable ? new URL(VIRTUAL_JSON_URL) : schema;\n if (schema instanceof Readable) {\n const readable = schema;\n contents = await new Promise((resolve) => {\n readable.resume();\n readable.setEncoding(\"utf8\");\n let content = \"\";\n readable.on(\"data\", (chunk) => {\n content += chunk;\n });\n readable.on(\"end\", () => {\n resolve(content);\n });\n });\n contentType = \"text/yaml\";\n }\n else if (isFile(schemaURL)) {\n contents = fs.readFileSync(schemaURL, \"utf8\");\n contentType = mime.getType(schemaID) || \"\";\n }\n else {\n const headers = {\n \"User-Agent\": \"openapi-typescript\",\n };\n if (options.auth)\n headers.Authorization = options.auth;\n if (options.httpHeaders) {\n const parsedHeaders = parseHttpHeaders(options.httpHeaders);\n for (const [k, v] of Object.entries(parsedHeaders)) {\n headers[k] = v;\n }\n }\n const res = await request(schemaID, { method: options.httpMethod || \"GET\", headers });\n if (Array.isArray(res.headers[\"Content-Type\"]))\n contentType = res.headers[\"Content-Type\"][0];\n else if (res.headers[\"Content-Type\"])\n contentType = res.headers[\"Content-Type\"];\n contents = await res.body.text();\n }\n const isYAML = contentType === \"application/openapi+yaml\" || contentType === \"text/yaml\";\n const isJSON = contentType === \"application/json\" ||\n contentType === \"application/json5\" ||\n contentType === \"application/openapi+json\";\n if (isYAML) {\n schemas[schemaID] = parseSchema(contents, \"YAML\");\n }\n else if (isJSON) {\n schemas[schemaID] = parseSchema(contents, \"JSON\");\n }\n else {\n try {\n schemas[schemaID] = parseSchema(contents, \"JSON\");\n }\n catch (err1) {\n try {\n schemas[schemaID] = parseSchema(contents, \"YAML\");\n }\n catch (err2) {\n throw new Error(`Unknown format${contentType ? `: \"${contentType}\"` : \"\"}. Only YAML or JSON supported.`);\n }\n }\n }\n }\n const refPromises = [];\n schemas[schemaID] = JSON.parse(JSON.stringify(schemas[schemaID]), (k, v) => {\n if (k !== \"$ref\" || typeof v !== \"string\")\n return v;\n const { url: refURL } = parseRef(v);\n if (refURL) {\n const isRemoteURL = refURL.startsWith(\"http://\") || refURL.startsWith(\"https://\");\n if (isJSON && !isRemoteURL) {\n throw new Error(`Can’t load URL \"${refURL}\" from dynamic JSON. Load this schema from a URL instead.`);\n }\n const nextURL = isRemoteURL ? new URL(refURL) : new URL(refURL, schema);\n refPromises.push(load(nextURL, { ...options, urlCache }).then((subschemas) => {\n for (const subschemaURL of Object.keys(subschemas)) {\n schemas[subschemaURL] = subschemas[subschemaURL];\n }\n }));\n return v.replace(refURL, nextURL.href);\n }\n return v;\n });\n await Promise.all(refPromises);\n if (schemaID === options.rootURL.href) {\n for (const subschemaURL of Object.keys(schemas)) {\n schemas[subschemaURL] = JSON.parse(JSON.stringify(schemas[subschemaURL]), (k, v) => {\n if (k !== \"$ref\" || typeof v !== \"string\")\n return v;\n if (!v.includes(\"#\"))\n return v;\n const { url, parts } = parseRef(v);\n if (url && new URL(url).href !== options.rootURL.href) {\n const relativeURL = isFile(new URL(url)) && isFile(options.rootURL)\n ? path.posix.relative(path.posix.dirname(options.rootURL.href), url)\n : url;\n return `external[\"${relativeURL}\"][\"${parts.join('\"][\"')}\"]`;\n }\n if (!url && subschemaURL !== options.rootURL.href) {\n const relativeURL = isFile(new URL(subschemaURL)) && isFile(options.rootURL)\n ? path.posix.relative(path.posix.dirname(options.rootURL.href), subschemaURL)\n : subschemaURL;\n return `external[\"${relativeURL}\"][\"${parts.join('\"][\"')}\"]`;\n }\n if (parts[parts.length - 2] === \"properties\") {\n parts.splice(parts.length - 2, 1);\n }\n const [base, ...rest] = parts;\n return `${base}[\"${rest.join('\"][\"')}\"]`;\n });\n if (subschemaURL !== options.rootURL.href) {\n const relativeURL = isFile(new URL(subschemaURL)) && isFile(options.rootURL)\n ? path.posix.relative(path.posix.dirname(options.rootURL.href), subschemaURL)\n : subschemaURL;\n if (relativeURL !== subschemaURL) {\n schemas[relativeURL] = schemas[subschemaURL];\n delete schemas[subschemaURL];\n }\n }\n }\n }\n return schemas;\n}\n//# sourceMappingURL=load.js.map","import { prepareComment, nodeType, tsArrayOf, tsIntersectionOf, tsPartial, tsReadonly, tsTupleOf, tsUnionOf, parseSingleSimpleValue, } from \"../utils.js\";\nconst EOF_RE = /\\n+$/;\nfunction hasDefaultValue(node) {\n if (node.hasOwnProperty(\"default\"))\n return true;\n return false;\n}\nexport function transformSchemaObjMap(obj, options) {\n let output = \"\";\n for (const k of Object.keys(obj)) {\n const v = obj[k];\n const comment = prepareComment(v);\n if (comment)\n output += comment;\n const readonly = tsReadonly(options.immutableTypes);\n const required = options.required.has(k) || (options.defaultNonNullable && hasDefaultValue(v.schema || v)) ? \"\" : \"?\";\n output += `${readonly}\"${k}\"${required}: `;\n output += transformSchemaObj(v.schema || v, options);\n output += `;\\n`;\n }\n return output.replace(EOF_RE, \"\\n\");\n}\nexport function addRequiredProps(properties, required) {\n const missingRequired = [...required].filter((r) => !(r in properties));\n if (missingRequired.length == 0) {\n return [];\n }\n let output = \"\";\n for (const r of missingRequired) {\n output += `${r}: unknown;\\n`;\n }\n return [`{\\n${output}}`];\n}\nexport function transformAnyOf(anyOf, options) {\n const schemas = anyOf.filter((s) => {\n if (Object.keys(s).length > 1)\n return true;\n if (s.required)\n return false;\n return true;\n });\n if (schemas.length === 0) {\n return \"\";\n }\n return tsIntersectionOf(schemas.map((s) => tsPartial(transformSchemaObj(s, options))));\n}\nexport function transformOneOf(oneOf, options) {\n return tsUnionOf(oneOf.map((value) => transformSchemaObj(value, options)));\n}\nexport function transformSchemaObj(node, options) {\n var _a;\n const readonly = tsReadonly(options.immutableTypes);\n let output = \"\";\n const overriddenType = options.formatter && options.formatter(node);\n if (node.nullable) {\n output += \"(\";\n }\n if (overriddenType) {\n output += overriddenType;\n }\n else {\n switch (nodeType(node)) {\n case \"ref\": {\n output += node.$ref;\n break;\n }\n case \"string\":\n case \"number\":\n case \"boolean\":\n case \"unknown\": {\n output += nodeType(node);\n break;\n }\n case \"const\": {\n output += parseSingleSimpleValue(node.const, node.nullable);\n break;\n }\n case \"enum\": {\n const items = [];\n node.enum.forEach((item) => {\n const value = parseSingleSimpleValue(item, node.nullable);\n items.push(value);\n });\n output += tsUnionOf(items);\n break;\n }\n case \"object\": {\n const isAnyOfOrOneOfOrAllOf = \"anyOf\" in node || \"oneOf\" in node || \"allOf\" in node;\n const missingRequired = addRequiredProps(node.properties || {}, node.required || []);\n if (!isAnyOfOrOneOfOrAllOf &&\n (!node.properties || !Object.keys(node.properties).length) &&\n !node.additionalProperties) {\n const emptyObj = `{ ${readonly}[key: string]: unknown }`;\n output += tsIntersectionOf([emptyObj, ...missingRequired]);\n break;\n }\n let properties = transformSchemaObjMap(node.properties || {}, {\n ...options,\n required: new Set(node.required || []),\n });\n let additionalProperties;\n if (node.additionalProperties ||\n (node.additionalProperties === undefined && options.additionalProperties && options.version === 3)) {\n if (((_a = node.additionalProperties) !== null && _a !== void 0 ? _a : true) === true || Object.keys(node.additionalProperties).length === 0) {\n additionalProperties = `{ ${readonly}[key: string]: unknown }`;\n }\n else if (typeof node.additionalProperties === \"object\") {\n const oneOf = node.additionalProperties.oneOf || undefined;\n const anyOf = node.additionalProperties.anyOf || undefined;\n if (oneOf) {\n additionalProperties = `{ ${readonly}[key: string]: ${transformOneOf(oneOf, options)}; }`;\n }\n else if (anyOf) {\n additionalProperties = `{ ${readonly}[key: string]: ${transformAnyOf(anyOf, options)}; }`;\n }\n else {\n additionalProperties = `{ ${readonly}[key: string]: ${transformSchemaObj(node.additionalProperties, options) || \"unknown\"}; }`;\n }\n }\n }\n output += tsIntersectionOf([\n ...(node.allOf ? node.allOf.map((node) => transformSchemaObj(node, options)) : []),\n ...(node.anyOf ? [transformAnyOf(node.anyOf, options)] : []),\n ...(node.oneOf ? [transformOneOf(node.oneOf, options)] : []),\n ...(properties ? [`{\\n${properties}\\n}`] : []),\n ...missingRequired,\n ...(additionalProperties ? [additionalProperties] : []),\n ]);\n break;\n }\n case \"array\": {\n if (Array.isArray(node.items)) {\n output += `${readonly}${tsTupleOf(node.items.map((node) => transformSchemaObj(node, options)))}`;\n }\n else {\n const minItems = Number.isInteger(node.minItems) && node.minItems >= 0 ? node.minItems : 0;\n const maxItems = Number.isInteger(node.maxItems) && node.maxItems >= 0 && minItems <= node.maxItems\n ? node.maxItems\n : undefined;\n const estimateCodeSize = maxItems === undefined ? minItems : (maxItems * (maxItems + 1) - minItems * (minItems - 1)) / 2;\n const items = node.items ? transformSchemaObj(node.items, options) : \"unknown\";\n if ((minItems !== 0 || maxItems !== undefined) && options.supportArrayLength && estimateCodeSize < 30) {\n if (maxItems === undefined) {\n output += `${readonly}${tsTupleOf([\n ...Array.from({ length: minItems }).map(() => items),\n `...${tsArrayOf(items)}`,\n ])}`;\n }\n else {\n output += tsUnionOf(Array.from({ length: maxItems - minItems + 1 })\n .map((_, i) => i + minItems)\n .map((n) => `${readonly}${tsTupleOf(Array.from({ length: n }).map(() => items))}`));\n }\n }\n else {\n output += `${readonly}${tsArrayOf(items)}`;\n }\n }\n break;\n }\n }\n }\n if (node.nullable) {\n output += \") | null\";\n }\n return output;\n}\n//# sourceMappingURL=schema.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nexport function transformHeaderObjMap(headerMap, options) {\n let output = \"\";\n for (const k of Object.keys(headerMap)) {\n const v = headerMap[k];\n if (!v.schema)\n continue;\n if (v.description)\n output += comment(v.description);\n const readonly = tsReadonly(options.immutableTypes);\n const required = v.required ? \"\" : \"?\";\n output += ` ${readonly}\"${k}\"${required}: ${transformSchemaObj(v.schema, options)}\\n`;\n }\n return output;\n}\n//# sourceMappingURL=headers.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nconst PARAM_END_RE = /\"\\]$/;\nexport function transformParametersArray(parameters, options) {\n const { globalParameters = {}, ...ctx } = options;\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n let mappedParams = {};\n for (const paramObj of parameters) {\n if (paramObj.$ref && globalParameters) {\n const paramName = paramObj.$ref.split('[\"').pop().replace(PARAM_END_RE, \"\");\n if (globalParameters[paramName]) {\n const reference = globalParameters[paramName];\n if (!mappedParams[reference.in])\n mappedParams[reference.in] = {};\n switch (ctx.version) {\n case 3: {\n mappedParams[reference.in][reference.name || paramName] = {\n ...reference,\n schema: { $ref: paramObj.$ref },\n };\n break;\n }\n case 2: {\n mappedParams[reference.in][reference.name || paramName] = {\n ...reference,\n $ref: paramObj.$ref,\n };\n break;\n }\n }\n }\n continue;\n }\n if (!paramObj.in || !paramObj.name)\n continue;\n if (!mappedParams[paramObj.in])\n mappedParams[paramObj.in] = {};\n mappedParams[paramObj.in][paramObj.name] = paramObj;\n }\n for (const [paramIn, paramGroup] of Object.entries(mappedParams)) {\n output += ` ${readonly}${paramIn}: {\\n`;\n for (const [paramName, paramObj] of Object.entries(paramGroup)) {\n let paramComment = \"\";\n if (paramObj.deprecated)\n paramComment += `@deprecated `;\n if (paramObj.description)\n paramComment += paramObj.description;\n if (paramComment)\n output += comment(paramComment);\n const required = paramObj.required ? `` : `?`;\n let paramType = ``;\n switch (ctx.version) {\n case 3: {\n paramType = paramObj.schema\n ? transformSchemaObj(paramObj.schema, { ...ctx, required: new Set() })\n : \"unknown\";\n break;\n }\n case 2: {\n if (paramObj.in === \"body\" && paramObj.schema) {\n paramType = transformSchemaObj(paramObj.schema, { ...ctx, required: new Set() });\n }\n else if (paramObj.type) {\n paramType = transformSchemaObj(paramObj, { ...ctx, required: new Set() });\n }\n else {\n paramType = \"unknown\";\n }\n break;\n }\n }\n output += ` ${readonly}\"${paramName}\"${required}: ${paramType};\\n`;\n }\n output += ` }\\n`;\n }\n return output;\n}\n//# sourceMappingURL=parameters.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nexport function transformRequestBodies(requestBodies, ctx) {\n let output = \"\";\n for (const [name, requestBody] of Object.entries(requestBodies)) {\n if (requestBody && requestBody.description)\n output += ` ${comment(requestBody.description)}`;\n output += ` \"${name}\": {\\n ${transformRequestBodyObj(requestBody, ctx)}\\n }\\n`;\n }\n return output;\n}\nexport function transformRequestBodyObj(requestBody, ctx) {\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n if (requestBody.content && Object.keys(requestBody.content).length) {\n output += ` ${readonly}content: {\\n`;\n for (const [k, v] of Object.entries(requestBody.content)) {\n output += ` ${readonly}\"${k}\": ${transformSchemaObj(v.schema, { ...ctx, required: new Set() })};\\n`;\n }\n output += ` }\\n`;\n }\n else {\n output += ` unknown;\\n`;\n }\n return output;\n}\n//# sourceMappingURL=request.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformHeaderObjMap } from \"./headers.js\";\nimport { transformSchemaObj } from \"./schema.js\";\nexport function transformResponsesObj(responsesObj, ctx) {\n const readonly = tsReadonly(ctx.immutableTypes);\n const resType = (res) => {\n if (tsReadonly(ctx.contentNever)) {\n return \"never\";\n }\n else {\n return res === 204 || (res >= 300 && res < 400) ? \"never\" : \"unknown\";\n }\n };\n let output = \"\";\n for (const httpStatusCode of Object.keys(responsesObj)) {\n const statusCode = Number(httpStatusCode) || `\"${httpStatusCode}\"`;\n const response = responsesObj[httpStatusCode];\n if (response.description)\n output += comment(response.description);\n if (response.$ref) {\n output += ` ${readonly}${statusCode}: ${response.$ref};\\n`;\n continue;\n }\n if ((!response.content && !response.schema) || (response.content && !Object.keys(response.content).length)) {\n output += ` ${readonly}${statusCode}: ${resType(statusCode)};\\n`;\n continue;\n }\n output += ` ${readonly}${statusCode}: {\\n`;\n if (response.headers && Object.keys(response.headers).length) {\n if (response.headers.$ref) {\n output += ` ${readonly}headers: ${response.headers.$ref};\\n`;\n }\n else {\n output += ` ${readonly}headers: {\\n ${transformHeaderObjMap(response.headers, {\n ...ctx,\n required: new Set(),\n })}\\n }\\n`;\n }\n }\n switch (ctx.version) {\n case 3: {\n output += ` ${readonly}content: {\\n`;\n for (const contentType of Object.keys(response.content)) {\n const contentResponse = response.content[contentType];\n const responseType = contentResponse && (contentResponse === null || contentResponse === void 0 ? void 0 : contentResponse.schema)\n ? transformSchemaObj(contentResponse.schema, { ...ctx, required: new Set() })\n : \"unknown\";\n output += ` ${readonly}\"${contentType}\": ${responseType};\\n`;\n }\n output += ` }\\n`;\n break;\n }\n case 2: {\n output += ` ${readonly} schema: ${transformSchemaObj(response.schema, {\n ...ctx,\n required: new Set(),\n })};\\n`;\n break;\n }\n }\n output += ` }\\n`;\n }\n return output;\n}\n//# sourceMappingURL=responses.js.map","import { comment, isRef, tsReadonly } from \"../utils.js\";\nimport { transformParametersArray } from \"./parameters.js\";\nimport { transformRequestBodyObj } from \"./request.js\";\nimport { transformResponsesObj } from \"./responses.js\";\nexport function transformOperationObj(operation, options) {\n const { pathItem = {}, globalParameters, ...ctx } = options;\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n if (operation.parameters || pathItem.parameters) {\n const parameters = (pathItem.parameters || []).concat(operation.parameters || []);\n output += ` ${readonly}parameters: {\\n ${transformParametersArray(parameters, {\n ...ctx,\n globalParameters,\n })}\\n }\\n`;\n }\n if (operation.responses) {\n output += ` ${readonly}responses: {\\n ${transformResponsesObj(operation.responses, ctx)}\\n }\\n`;\n }\n if (operation.requestBody) {\n if (isRef(operation.requestBody)) {\n output += ` ${readonly}requestBody: ${operation.requestBody.$ref};\\n`;\n }\n else {\n if (operation.requestBody.description)\n output += comment(operation.requestBody.description);\n output += ` ${readonly}requestBody: {\\n ${transformRequestBodyObj(operation.requestBody, ctx)} }\\n`;\n }\n }\n return output;\n}\n//# sourceMappingURL=operation.js.map","import { comment, tsReadonly, nodeType } from \"../utils.js\";\nimport { transformOperationObj } from \"./operation.js\";\nimport { transformParametersArray } from \"./parameters.js\";\nconst httpMethods = [\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"];\nfunction replacePathParamsWithTypes(url, params) {\n let result = url;\n params.forEach((param) => {\n if (\"in\" in param && param.in === \"path\") {\n if (param.schema && \"type\" in param.schema) {\n result = result.replace(`{${param.name}}`, `\\${${nodeType(param.schema)}}`);\n }\n else if (param.type) {\n result = result.replace(`{${param.name}}`, `\\${${nodeType({ type: param.type })}}`);\n }\n }\n });\n return result;\n}\nexport function transformPathsObj(paths, options) {\n const { globalParameters, operations, ...ctx } = options;\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = \"\";\n for (const [url, pathItem] of Object.entries(paths)) {\n if (pathItem.description)\n output += comment(pathItem.description);\n if (pathItem.$ref) {\n output += ` ${readonly}\"${url}\": ${pathItem.$ref};\\n`;\n continue;\n }\n let key = `\"${url}\"`;\n if (url.includes(\"{\") && url.includes(\"}\") && ctx.pathParamsAsTypes) {\n let params;\n if (pathItem.parameters) {\n params = pathItem.parameters;\n }\n else {\n const firstMethodParams = Object.values(pathItem)\n .map((props) => typeof props === \"object\" && props.parameters)\n .filter(Boolean)[0];\n if (firstMethodParams) {\n params = firstMethodParams;\n }\n }\n key = `[key: \\`${replacePathParamsWithTypes(url, params)}\\`]`;\n }\n output += ` ${readonly}${key}: {\\n`;\n for (const method of httpMethods) {\n const operation = pathItem[method];\n if (!operation)\n continue;\n if (operation.description)\n output += comment(operation.description);\n if (operation.operationId) {\n operations[operation.operationId] = { operation, pathItem };\n const namespace = ctx.namespace ? `external[\"${ctx.namespace}\"][\"operations\"]` : `operations`;\n output += ` ${readonly}\"${method}\": ${namespace}[\"${operation.operationId}\"];\\n`;\n }\n else {\n output += ` ${readonly}\"${method}\": {\\n ${transformOperationObj(operation, {\n ...ctx,\n globalParameters,\n pathItem,\n })}\\n }\\n`;\n }\n }\n if (pathItem.parameters) {\n output += ` ${readonly}parameters: {\\n ${transformParametersArray(pathItem.parameters, {\n ...ctx,\n globalParameters,\n })}\\n }\\n`;\n }\n output += ` }\\n`;\n }\n return output;\n}\nexport function makeApiPathsEnum(paths) {\n let output = \"export enum ApiPaths {\\n\";\n for (const [url, pathItem] of Object.entries(paths)) {\n for (const [method, operation] of Object.entries(pathItem)) {\n if (![\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"].includes(method))\n continue;\n let pathName;\n if (operation.operationId)\n pathName = operation.operationId;\n else {\n pathName = (method + url)\n .split(\"/\")\n .map((part) => {\n const capitalised = part.charAt(0).toUpperCase() + part.slice(1);\n return capitalised.replace(/{.*}|:.*|[^a-zA-Z\\d_]+/, \"\");\n })\n .join(\"\");\n }\n const adaptedUrl = url.replace(/{(\\w+)}/g, \":$1\");\n output += ` ${pathName} = \"${adaptedUrl}\",\\n`;\n }\n }\n output += \"\\n}\";\n return output;\n}\n//# sourceMappingURL=paths.js.map","import { comment, tsReadonly } from \"../utils.js\";\nimport { transformHeaderObjMap } from \"./headers.js\";\nimport { transformOperationObj } from \"./operation.js\";\nimport { transformPathsObj } from \"./paths.js\";\nimport { transformRequestBodies } from \"./request.js\";\nimport { transformResponsesObj } from \"./responses.js\";\nimport { transformSchemaObjMap } from \"./schema.js\";\nexport function transformAll(schema, ctx) {\n const readonly = tsReadonly(ctx.immutableTypes);\n let output = {};\n let operations = {};\n if (ctx.rawSchema) {\n const required = new Set(Object.keys(schema));\n switch (ctx.version) {\n case 2: {\n output.definitions = transformSchemaObjMap(schema, { ...ctx, required });\n return output;\n }\n case 3: {\n output.schemas = transformSchemaObjMap(schema, { ...ctx, required });\n return output;\n }\n }\n }\n output.paths = \"\";\n if (schema.paths) {\n output.paths += transformPathsObj(schema.paths, {\n ...ctx,\n globalParameters: (schema.components && schema.components.parameters) || schema.parameters,\n operations,\n });\n }\n switch (ctx.version) {\n case 2: {\n if (schema.definitions) {\n output.definitions = transformSchemaObjMap(schema.definitions, {\n ...ctx,\n required: new Set(Object.keys(schema.definitions)),\n });\n }\n if (schema.parameters) {\n output.parameters = transformSchemaObjMap(schema.parameters, {\n ...ctx,\n required: new Set(Object.keys(schema.parameters)),\n });\n }\n if (schema.responses) {\n output.responses = transformResponsesObj(schema.responses, ctx);\n }\n break;\n }\n case 3: {\n output.components = \"\";\n if (schema.components) {\n if (schema.components.schemas) {\n output.components += ` ${readonly}schemas: {\\n ${transformSchemaObjMap(schema.components.schemas, {\n ...ctx,\n required: new Set(Object.keys(schema.components.schemas)),\n })}\\n }\\n`;\n }\n if (schema.components.responses) {\n output.components += ` ${readonly}responses: {\\n ${transformResponsesObj(schema.components.responses, ctx)}\\n }\\n`;\n }\n if (schema.components.parameters) {\n output.components += ` ${readonly}parameters: {\\n ${transformSchemaObjMap(schema.components.parameters, {\n ...ctx,\n required: new Set(Object.keys(schema.components.parameters)),\n })}\\n }\\n`;\n }\n if (schema.components.requestBodies) {\n output.components += ` ${readonly}requestBodies: {\\n ${transformRequestBodies(schema.components.requestBodies, ctx)}\\n }\\n`;\n }\n if (schema.components.headers) {\n output.components += ` ${readonly}headers: {\\n ${transformHeaderObjMap(schema.components.headers, {\n ...ctx,\n required: new Set(),\n })}\\n }\\n`;\n }\n }\n break;\n }\n }\n output.operations = \"\";\n if (Object.keys(operations).length) {\n for (const id of Object.keys(operations)) {\n const { operation, pathItem } = operations[id];\n if (operation.description)\n output.operations += comment(operation.description);\n output.operations += ` ${readonly}\"${id}\": {\\n ${transformOperationObj(operation, {\n ...ctx,\n pathItem,\n globalParameters: (schema.components && schema.components.parameters) || schema.parameters,\n })}\\n }\\n`;\n }\n }\n for (const k of Object.keys(output)) {\n if (typeof output[k] === \"string\") {\n output[k] = output[k].trim();\n }\n }\n return output;\n}\n//# sourceMappingURL=index.js.map","import path from \"path\";\nimport fs from \"fs\";\nimport prettier from \"prettier\";\nimport parserTypescript from \"prettier/parser-typescript.js\";\nimport { URL } from \"url\";\nimport load, { resolveSchema, VIRTUAL_JSON_URL } from \"./load.js\";\nimport { swaggerVersion } from \"./utils.js\";\nimport { transformAll } from \"./transform/index.js\";\nimport { makeApiPathsEnum } from \"./transform/paths.js\";\nexport * from \"./types.js\";\nexport const COMMENT_HEADER = `/**\n * This file was auto-generated by openapi-typescript.\n * Do not make direct changes to the file.\n */\n\n\n`;\nasync function openapiTS(schema, options = {}) {\n const ctx = {\n additionalProperties: options.additionalProperties || false,\n auth: options.auth,\n commentHeader: typeof options.commentHeader === \"string\" ? options.commentHeader : COMMENT_HEADER,\n defaultNonNullable: options.defaultNonNullable || false,\n formatter: options && typeof options.formatter === \"function\" ? options.formatter : undefined,\n immutableTypes: options.immutableTypes || false,\n contentNever: options.contentNever || false,\n makePathsEnum: options.makePathsEnum || false,\n pathParamsAsTypes: options.pathParamsAsTypes,\n rawSchema: options.rawSchema || false,\n supportArrayLength: options.supportArrayLength,\n version: options.version || 3,\n };\n const isInlineSchema = typeof schema != \"string\" && schema instanceof URL == false;\n let rootSchema = {};\n let external = {};\n const allSchemas = {};\n const schemaURL = typeof schema === \"string\" ? resolveSchema(schema) : schema;\n await load(schemaURL, {\n ...ctx,\n schemas: allSchemas,\n rootURL: isInlineSchema ? new URL(VIRTUAL_JSON_URL) : schemaURL,\n httpHeaders: options.httpHeaders,\n httpMethod: options.httpMethod,\n });\n for (const k of Object.keys(allSchemas)) {\n const rootSchemaID = isInlineSchema ? VIRTUAL_JSON_URL : schemaURL.href;\n if (k === rootSchemaID) {\n rootSchema = allSchemas[k];\n }\n else {\n external[k] = allSchemas[k];\n }\n }\n let output = ctx.commentHeader;\n if (!(options === null || options === void 0 ? void 0 : options.version) && !ctx.rawSchema)\n ctx.version = swaggerVersion(rootSchema);\n const rootTypes = transformAll(rootSchema, { ...ctx });\n const exportedKind = options.exportType === true ? \"type\" : \"interface\";\n const exportedKindOperator = options.exportType === true ? \" =\" : \"\";\n const exportedKindSemicolon = options.exportType === true ? \";\" : \"\";\n for (const k of Object.keys(rootTypes)) {\n if (typeof rootTypes[k] === \"string\") {\n output += `export ${exportedKind} ${k}${exportedKindOperator} {\\n ${rootTypes[k]}\\n}\\n\\n`;\n }\n }\n output += `export ${exportedKind} external${exportedKindOperator} {\\n`;\n const externalKeys = Object.keys(external);\n externalKeys.sort((a, b) => a.localeCompare(b, \"en\", { numeric: true }));\n for (const subschemaURL of externalKeys) {\n output += ` \"${subschemaURL}\": {\\n`;\n const subschemaTypes = transformAll(external[subschemaURL], { ...ctx, namespace: subschemaURL });\n for (const k of Object.keys(subschemaTypes)) {\n output += ` \"${k}\": {\\n ${subschemaTypes[k]}\\n }\\n`;\n }\n output += ` }\\n`;\n }\n output += `}${exportedKindSemicolon}\\n\\n`;\n if (ctx.makePathsEnum && rootSchema.paths)\n output += makeApiPathsEnum(rootSchema.paths);\n let prettierOptions = {\n parser: \"typescript\",\n plugins: [parserTypescript],\n };\n if (options && options.prettierConfig) {\n try {\n const prettierConfigFile = path.resolve(process.cwd(), options.prettierConfig);\n await fs.promises.access(prettierConfigFile, fs.constants.F_OK);\n const userOptions = await prettier.resolveConfig(prettierConfigFile);\n prettierOptions = {\n ...(userOptions || {}),\n ...prettierOptions,\n plugins: [...prettierOptions.plugins, ...((userOptions && userOptions.plugins) || [])],\n };\n }\n catch (err) {\n console.error(`❌ ${err}`);\n process.exit(1);\n }\n }\n return prettier.format(output, prettierOptions);\n}\nexport default openapiTS;\n//# sourceMappingURL=index.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4748);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/create-openapi-types/licenses.txt b/dist/create-openapi-types/licenses.txt index e96efc1..33b63ef 100644 --- a/dist/create-openapi-types/licenses.txt +++ b/dist/create-openapi-types/licenses.txt @@ -6711,19 +6711,6 @@ Permission to use, copy, modify, and/or distribute this software for any purpose THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -uuid -MIT -The MIT License (MIT) - -Copyright (c) 2010-2020 Robert Kieffer and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - webidl-conversions BSD-2-Clause # The BSD 2-Clause License diff --git a/dist/get-deployment-target-url/index.js b/dist/get-deployment-target-url/index.js index 7ed3751..16ad199 100644 --- a/dist/get-deployment-target-url/index.js +++ b/dist/get-deployment-target-url/index.js @@ -8,11 +8,7 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -238,9 +234,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -258,7 +258,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -298,10 +298,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -334,12 +331,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -468,11 +461,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -491,23 +480,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -538,14 +510,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -557,22 +528,7 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), @@ -593,8 +549,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); +const http_client_1 = __nccwpck_require__(9925); +const auth_1 = __nccwpck_require__(3702); const core_1 = __nccwpck_require__(2186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { @@ -627,7 +583,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -661,361 +617,6 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - /***/ 5278: /***/ ((__unused_webpack_module, exports) => { @@ -1194,7 +795,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); +const httpClient = __importStar(__nccwpck_require__(6341)); function getAuthString(token, options) { if (!token && !options.auth) { throw new Error('Parameter token or opts.auth is required'); @@ -1279,95 +880,7 @@ exports.getOctokitOptions = getOctokitOptions; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: +/***/ 6341: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -1405,7 +918,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; const http = __importStar(__nccwpck_require__(3685)); const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); +const pm = __importStar(__nccwpck_require__(3466)); const tunnel = __importStar(__nccwpck_require__(4294)); var HttpCodes; (function (HttpCodes) { @@ -1979,7 +1492,7 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ }), -/***/ 9835: +/***/ 3466: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -2047,652 +1560,746 @@ exports.checkBypass = checkBypass; /***/ }), -/***/ 334: +/***/ 3702: /***/ ((__unused_webpack_module, exports) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -const REGEX_IS_INSTALLATION = /^ghs_/; -const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token: token, - tokenType - }; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -/** - * Prefix token for usage in the Authorization header - * - * @param token OAuth token or JSON Web Token - */ -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - - return `token ${token}`; +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -const createTokenAuth = function createTokenAuth(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) - }); -}; - -exports.createTokenAuth = createTokenAuth; -//# sourceMappingURL=index.js.map +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; /***/ }), -/***/ 6762: +/***/ 9925: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -var universalUserAgent = __nccwpck_require__(5030); -var beforeAfterHook = __nccwpck_require__(3682); -var request = __nccwpck_require__(6234); -var graphql = __nccwpck_require__(8467); -var authToken = __nccwpck_require__(334); - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; +const http = __nccwpck_require__(3685); +const https = __nccwpck_require__(5687); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; } - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); } - } - - return target; } - -const VERSION = "3.6.0"; - -const _excluded = ["authStrategy"]; -class Octokit { - constructor(options = {}) { - const hook = new beforeAfterHook.Collection(); - const requestDefaults = { - baseUrl: request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; // prepend default user agent with `options.userAgent` if set - - requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); - - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; } - - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); } - - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, 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 = userAgent; + 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; + } + } } - - this.request = request.request.defaults(requestDefaults); - this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign({ - debug: () => {}, - info: () => {}, - warn: console.warn.bind(console), - error: console.error.bind(console) - }, options.log); - this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance - // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. - // (2) If only `options.auth` is set, use the default token authentication strategy. - // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. - // TODO: type `options.auth` based on `options.authStrategy`. - - if (!options.authStrategy) { - if (!options.auth) { - // (1) - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - // (2) - const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { - authStrategy - } = options, - otherOptions = _objectWithoutProperties(options, _excluded); - - const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } // apply plugins - // https://stackoverflow.com/a/16345172 - - - const classConstructor = this.constructor; - classConstructor.plugins.forEach(plugin => { - Object.assign(this, plugin(this, options)); - }); - } - - 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; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - - - static plugin(...newPlugins) { - var _a; - - const currentPlugins = this.plugins; - const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); - return NewOctokit; - } - -} -Octokit.VERSION = VERSION; -Octokit.plugins = []; - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 9440: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var isPlainObject = __nccwpck_require__(3287); -var universalUserAgent = __nccwpck_require__(5030); - -function lowercaseKeys(object) { - if (!object) { - return {}; - } - - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach(key => { - if (isPlainObject.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] - }); + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); } - }); - return result; -} - -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === undefined) { - delete obj[key]; + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); } - } - - 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); - } // lowercase header names before merging with defaults to avoid duplicates - - - options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging - - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten - - 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("+"); + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); } - - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -const urlVariableRegex = /\{[^}]+\}/g; - -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} - -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - - if (!matches) { - return []; - } - - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -function omit(object, keysToOmit) { - return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { - obj[key] = object[key]; - return obj; - }, {}); -} - -// Based on https://github.com/bramstein/url-template, licensed under BSD -// TODO: create separate package. -// -// Copyright (c) 2012-2014, Bram Stein -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/* istanbul ignore file */ -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, "]"); + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); } - - 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 !== undefined && 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 (value) { - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); } - } else { - const tmp = []; - - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - tmp.push(encodeValue(operator, value)); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); } - }); - } - - 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 response; } - } - - return result; -} - -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} - -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - return 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; + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); } - - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); + this._disposed = true; } - }); -} - -function parse(options) { - // https://fetch.spec.whatwg.org/#methods - let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible - - 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"]); // extract variable names from URL to calculate remaining variables later - - 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) { - // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw - headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); } - - if (options.mediaType.previews.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + 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(); + } } - } // for GET/HEAD requests, set URL query parameters from remaining parameters - // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters - - - 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; - } else { - headers["content-length"] = 0; - } + /** + * 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) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); } - } // default content-type for JSON if body is set - + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((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 reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); + } +} +exports.HttpClient = HttpClient; - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. - // fetch does not allow to set `content-length` header, but we can set body to an empty string +/***/ }), - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } // Only return body/request keys if present +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { +"use strict"; - return Object.assign({ - method, - url, - headers - }, typeof body !== "undefined" ? { - body - } : null, options.request ? { - request: options.request - } : null); +Object.defineProperty(exports, "__esModule", ({ value: true })); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; + } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; } +exports.checkBypass = checkBypass; -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); + +/***/ }), + +/***/ 334: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; } -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse - }); +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; } -const VERSION = "6.0.12"; +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} -const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. -// So we use RequestParameters and add method as additional required property. +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } -const DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "", - previews: [] + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); } -}; -const endpoint = withDefaults(null, DEFAULTS); + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; -exports.endpoint = endpoint; +exports.createTokenAuth = createTokenAuth; //# sourceMappingURL=index.js.map /***/ }), -/***/ 8467: +/***/ 6762: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -2700,686 +2307,1268 @@ exports.endpoint = endpoint; Object.defineProperty(exports, "__esModule", ({ value: true })); -var request = __nccwpck_require__(6234); var universalUserAgent = __nccwpck_require__(5030); +var beforeAfterHook = __nccwpck_require__(3682); +var request = __nccwpck_require__(6234); +var graphql = __nccwpck_require__(8467); +var authToken = __nccwpck_require__(334); -const VERSION = "4.8.0"; +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; } -class GraphqlResponseError extends Error { - constructor(request, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; - this.errors = response.errors; - this.data = response.data; // Maintains proper stack trace (only available on V8) + var target = _objectWithoutPropertiesLoose(source, excluded); - /* istanbul ignore next */ + var key, i; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; } } + return target; } -const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; -const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request, 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`)); - } +const VERSION = "3.6.0"; - 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 _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; } - } - 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 (options.previews) { + requestDefaults.mediaType.previews = options.previews; } - if (!result.variables) { - result.variables = {}; + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix - // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. - const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); + + const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); } - return request(requestOptions).then(response => { - if (response.data.errors) { - const headers = {}; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } + if (typeof defaults === "function") { + super(defaults(options)); + return; + } - throw new GraphqlResponseError(requestOptions, headers, response.data); - } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } - return response.data.data; - }); -} + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ -function withDefaults(request$1, newDefaults) { - const newRequest = request$1.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; + static plugin(...newPlugins) { + var _a; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: request.request.endpoint - }); -} + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } -const graphql$1 = withDefaults(request.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); } +Octokit.VERSION = VERSION; +Octokit.plugins = []; -exports.GraphqlResponseError = GraphqlResponseError; -exports.graphql = graphql$1; -exports.withCustomRequest = withCustomRequest; +exports.Octokit = Octokit; //# sourceMappingURL=index.js.map /***/ }), -/***/ 4193: -/***/ ((__unused_webpack_module, exports) => { +/***/ 9440: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -const VERSION = "2.17.0"; +var isPlainObject = __nccwpck_require__(3287); +var universalUserAgent = __nccwpck_require__(5030); -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function lowercaseKeys(object) { + if (!object) { + return {}; + } - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.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; +} - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; } } - return target; + return obj; } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); } else { - obj[key] = value; - } + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates - return obj; -} -/** - * Some “list” response that can be paginated have a different response structure - * - * They have a `total_count` key in the response (search also has `incomplete_results`, - * /installation/repositories also has `repository_selection`), as well as a key with - * the list of the items which name varies from endpoint to endpoint. - * - * Octokit normalizes these responses so that paginated results are always returned following - * the same structure. One challenge is that if the list response has only one page, no Link - * header is provided, so this header alone is not sufficient to check wether a response is - * paginated or not. - * - * We check if a "total_count" key is present in the response data, but also make sure that - * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would - * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref - */ -function normalizePaginatedListResponse(response) { - // endpoints can respond with 204 if repository is empty - if (!response.data) { - return _objectSpread2(_objectSpread2({}, response), {}, { - data: [] - }); + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging + + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way - // to retrieve the same information. + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; + if (names.length === 0) { + return url; } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } - response.data.total_count = totalCount; - return response; + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); } -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); // `response.headers.link` format: - // '; rel="next", ; rel="last"' - // sets `url` to undefined if "next" URL is not present or `link` header is not set - - url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; - return { - value: normalizedResponse - }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } +const urlVariableRegex = /\{[^}]+\}/g; - }) - }; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); } -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = undefined; +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; } - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); } -function gather(octokit, results, iterator, mapFn) { - return iterator.next().then(result => { - if (result.done) { - return results; - } +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} - let earlyExit = false; +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - function done() { - earlyExit = true; +/* istanbul ignore file */ +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, "]"); } - results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); - - if (earlyExit) { - return results; - } + return part; + }).join(""); +} - return gather(octokit, results, iterator, mapFn); +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); }); } -const composePaginateRest = Object.assign(paginate, { - iterator -}); - -const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); + if (key) { + return encodeUnreserved(key) + "=" + value; } else { - return false; + return value; } } -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ +function isDefined(value) { + return value !== undefined && value !== null; +} -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; } -paginateRest.VERSION = VERSION; -exports.composePaginateRest = composePaginateRest; -exports.isPaginatingEndpoint = isPaginatingEndpoint; -exports.paginateRest = paginateRest; -exports.paginatingEndpoints = paginatingEndpoints; -//# sourceMappingURL=index.js.map +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)); + } -/***/ 3044: -/***/ ((__unused_webpack_module, exports) => { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; -"use strict"; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } 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(""); + } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + return result; +} -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; + 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); } + }); +} - keys.push.apply(keys, symbols); +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + 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"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; } - return keys; -} + 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); -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } } - } + } // default content-type for JSON if body is set - return target; + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] } +}; - return obj; +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8467: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var request = __nccwpck_require__(6234); +var universalUserAgent = __nccwpck_require__(5030); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); } -const Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], - addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], - approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], - cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], - createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - 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"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], - getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], - 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}"], - getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], - getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - 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}"], - 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}"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], - 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"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - 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"], - 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}"], - 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"], - setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], - setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] - }, - 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"], - 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}"] +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, 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; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(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 withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` }, - 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"], - 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"], - getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], - getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], - 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"] - }, - 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: { - deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], - 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}"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - 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"] - }], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], - createForAuthenticatedUser: ["POST /user/codespaces"], - 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}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], - exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], - getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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" + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4193: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const VERSION = "2.17.0"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + 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; + 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); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: normalizedResponse + }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } } - }], - listInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], - setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.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, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3044: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], + addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + 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"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], + getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], + 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}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + 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}"], + 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}"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], + 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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + 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"], + 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}"], + 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"], + setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], + setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] }, - 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}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_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"], + 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"], + 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"], + getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], + getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], + 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"] + }, + 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: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + 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}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + 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"] + }], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], + createForAuthenticatedUser: ["POST /user/codespaces"], + 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}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], + exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], + getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], + setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + }, + 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}"], + 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}"], listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], @@ -8118,1429 +8307,783 @@ URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { } else if (c === 0x0) { this.parseError = true; } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); - } - - return true; -}; - -function serializeURL(url, excludeFragment) { - let output = url.scheme + ":"; - if (url.host !== null) { - output += "//"; - - if (url.username !== "" || url.password !== "") { - output += url.username; - if (url.password !== "") { - output += ":" + url.password; - } - output += "@"; - } - - output += serializeHost(url.host); - - if (url.port !== null) { - output += ":" + url.port; - } - } else if (url.host === null && url.scheme === "file") { - output += "//"; - } - - if (url.cannotBeABaseURL) { - output += url.path[0]; - } else { - for (const string of url.path) { - output += "/" + string; - } - } - - if (url.query !== null) { - output += "?" + url.query; - } - - if (!excludeFragment && url.fragment !== null) { - output += "#" + url.fragment; - } - - return output; -} - -function serializeOrigin(tuple) { - let result = tuple.scheme + "://"; - result += serializeHost(tuple.host); - - if (tuple.port !== null) { - result += ":" + tuple.port; - } - - return result; -} - -module.exports.serializeURL = serializeURL; - -module.exports.serializeURLOrigin = function (url) { - // https://url.spec.whatwg.org/#concept-url-origin - switch (url.scheme) { - case "blob": - try { - return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); - } catch (e) { - // serializing an opaque origin returns "null" - return "null"; - } - case "ftp": - case "gopher": - case "http": - case "https": - case "ws": - case "wss": - return serializeOrigin({ - scheme: url.scheme, - host: url.host, - port: url.port - }); - case "file": - // spec says "exercise to the reader", chrome says "file://" - return "file://"; - default: - // serializing an opaque origin returns "null" - return "null"; - } -}; - -module.exports.basicURLParse = function (input, options) { - if (options === undefined) { - options = {}; - } - - const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); - if (usm.failure) { - return "failure"; - } - - return usm.url; -}; - -module.exports.setTheUsername = function (url, username) { - url.username = ""; - const decoded = punycode.ucs2.decode(username); - for (let i = 0; i < decoded.length; ++i) { - url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.setThePassword = function (url, password) { - url.password = ""; - const decoded = punycode.ucs2.decode(password); - for (let i = 0; i < decoded.length; ++i) { - url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.serializeHost = serializeHost; - -module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; - -module.exports.serializeInteger = function (integer) { - return String(integer); -}; - -module.exports.parseURL = function (input, options) { - if (options === undefined) { - options = {}; - } - - // We don't handle blobs, so this just delegates: - return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); -}; - - -/***/ }), - -/***/ 3387: -/***/ ((module) => { - -"use strict"; - - -module.exports.mixin = function mixin(target, source) { - const keys = Object.getOwnPropertyNames(source); - for (let i = 0; i < keys.length; ++i) { - Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); - } -}; - -module.exports.wrapperSymbol = Symbol("wrapper"); -module.exports.implSymbol = Symbol("impl"); - -module.exports.wrapperForImpl = function (impl) { - return impl[module.exports.wrapperSymbol]; -}; - -module.exports.implForWrapper = function (wrapper) { - return wrapper[module.exports.implSymbol]; -}; - - - -/***/ }), - -/***/ 3682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(4670) -var addHook = __nccwpck_require__(5549) -var removeHook = __nccwpck_require__(6819) - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -var bind = Function.bind -var bindable = bind.bind(bind) - -function bindApi (hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) - hook.api = { remove: removeHookRef } - hook.remove = removeHookRef - - ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { - var args = name ? [state, kind, name] : [state, kind] - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) - }) -} - -function HookSingular () { - var singularHookName = 'h' - var singularHookState = { - registry: {} - } - var singularHook = register.bind(null, singularHookState, singularHookName) - bindApi(singularHook, singularHookState, singularHookName) - return singularHook -} - -function HookCollection () { - var state = { - registry: {} - } - - var hook = register.bind(null, state) - bindApi(hook, state) - - return hook -} - -var collectionHookDeprecationMessageDisplayed = false -function Hook () { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') - collectionHookDeprecationMessageDisplayed = true - } - return HookCollection() -} - -Hook.Singular = HookSingular.bind() -Hook.Collection = HookCollection.bind() - -module.exports = Hook -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook -module.exports.Singular = Hook.Singular -module.exports.Collection = Hook.Collection - - -/***/ }), - -/***/ 5549: -/***/ ((module) => { - -module.exports = addHook; - -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - hook = function (method, options) { - var result; - return Promise.resolve() - .then(method.bind(null, options)) - .then(function (result_) { - result = result_; - return orig(result, options); - }) - .then(function () { - return result; - }); - }; - } - - if (kind === "error") { - hook = function (method, options) { - return Promise.resolve() - .then(method.bind(null, options)) - .catch(function (error) { - return orig(error, options); - }); - }; - } - - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} - - -/***/ }), - -/***/ 4670: -/***/ ((module) => { - -module.exports = register; - -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(function (callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - } - - return Promise.resolve().then(function () { - if (!state.registry[name]) { - return method(options); - } - - return state.registry[name].reduce(function (method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); -} - - -/***/ }), - -/***/ 6819: -/***/ ((module) => { - -module.exports = removeHook; - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); -} - - -/***/ }), - -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = 'Deprecation'; - } - -} - -exports.Deprecation = Deprecation; - - -/***/ }), - -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} - -function isPlainObject(o) { - var ctor,prot; - - if (isObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; - - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -} - -exports.isPlainObject = isPlainObject; - - -/***/ }), - -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(2940) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - - -/***/ }), - -/***/ 4294: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(4219); - - -/***/ }), - -/***/ 4219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.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 || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.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) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - - // If we are under maxSockets create a new one. - 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'); - } - - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - debug('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) { - debug('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; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - - function onError(cause) { - connectReq.removeAllListeners(); - - debug('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) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; - -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: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} - - -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} - -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] !== undefined) { - target[k] = overrides[k]; - } - } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = 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 { - debug = function() {}; -} -exports.debug = debug; // for test - - -/***/ }), - -/***/ 5030: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && "version" in process) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } - - return ""; -} - -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; /***/ }), -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 3387: +/***/ ((module) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); +}; -var _version = _interopRequireDefault(__nccwpck_require__(1595)); +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +/***/ 3682: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +var register = __nccwpck_require__(4670) +var addHook = __nccwpck_require__(5549) +var removeHook = __nccwpck_require__(6819) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef - return _crypto.default.createHash('md5').update(bytes).digest(); + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) } -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook } -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; +function HookCollection () { + var state = { + registry: {} + } + var hook = register.bind(null, state) + bindApi(hook, state) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; + return hook +} -/***/ }), +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() -"use strict"; +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; +/***/ }), -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +/***/ 5549: +/***/ ((module) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = addHook; -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } -let poolPtr = rnds8Pool.length; + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } - poolPtr = 0; + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; } - return rnds8Pool.slice(poolPtr, poolPtr += 16); + state.registry[name].push({ + hook: hook, + orig: orig, + }); } -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; +/***/ }), +/***/ 4670: +/***/ ((module) => { -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +module.exports = register; -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (!options) { + options = {}; + } -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); } - return _crypto.default.createHash('sha1').update(bytes).digest(); + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); } -var _default = sha1; -exports["default"] = _default; /***/ }), -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ 6819: +/***/ ((module) => { -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; +module.exports = removeHook; -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); + if (index === -1) { + return; } - return uuid; + state.registry[name].splice(index, 1); } -var _default = stringify; -exports["default"] = _default; /***/ }), -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 8932: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /* istanbul ignore next */ -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } -let _clockseq; // Previous uuid creation time + this.name = 'Deprecation'; + } +} -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details +exports.Deprecation = Deprecation; -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); +/***/ }), - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } +/***/ 3287: +/***/ ((__unused_webpack_module, exports) => { - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. +"use strict"; - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock +Object.defineProperty(exports, "__esModule", ({ value: true })); - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval +function isPlainObject(o) { + var ctor,prot; + if (isObject(o) === false) return false; - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; } - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + // Most likely a plain Object + return true; +} - msecs += 12219292800000; // `time_low` +exports.isPlainObject = isPlainObject; - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` +/***/ }), - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version +/***/ 1223: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) +var wrappy = __nccwpck_require__(2940) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) - b[i++] = clockseq & 0xff; // `node` + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) } + f.called = false + return f +} - return buf || (0, _stringify.default)(b); +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f } -var _default = v1; -exports["default"] = _default; /***/ }), -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); +/***/ 4294: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = __nccwpck_require__(4219); -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; /***/ }), -/***/ 5998: +/***/ 4219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) +var net = __nccwpck_require__(1808); +var tls = __nccwpck_require__(4404); +var http = __nccwpck_require__(3685); +var https = __nccwpck_require__(5687); +var events = __nccwpck_require__(2361); +var assert = __nccwpck_require__(9491); +var util = __nccwpck_require__(3837); - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; } -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -"use strict"; +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); -function v4(options, buf, offset) { - options = options || {}; + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + // If we are under maxSockets create a new one. + 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); + } - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; - if (buf) { - offset = offset || 0; +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port } - - return buf; + }); + 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'); } - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); -"use strict"; + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); -var _v = _interopRequireDefault(__nccwpck_require__(5998)); + if (res.statusCode !== 200) { + debug('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) { + debug('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; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + function onError(cause) { + connectReq.removeAllListeners(); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + debug('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); + } +}; -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; +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) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +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: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); -"use strict"; + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} -var _regex = _interopRequireDefault(__nccwpck_require__(814)); +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] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = 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 { + debug = function() {}; } +exports.debug = debug; // for test -var _default = validate; -exports["default"] = _default; /***/ }), -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 5030: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; } - return parseInt(uuid.substr(14, 1), 16); + return ""; } -var _default = version; -exports["default"] = _default; +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + /***/ }), @@ -9600,14 +9143,6 @@ module.exports = require("assert"); /***/ }), -/***/ 6113: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto"); - -/***/ }), - /***/ 2361: /***/ ((module) => { diff --git a/dist/get-deployment-target-url/index.js.map b/dist/get-deployment-target-url/index.js.map index 190fdc8..34227bd 100644 --- a/dist/get-deployment-target-url/index.js.map +++ b/dist/get-deployment-target-url/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/get-deployment-target-url.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/context.js","../webpack://typescript-action/./node_modules/@actions/github/lib/github.js","../webpack://typescript-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/before-after-hook/index.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/add.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/register.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/remove.js","../webpack://typescript-action/./node_modules/deprecation/dist-node/index.js","../webpack://typescript-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://typescript-action/./node_modules/once/once.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/wrappy/wrappy.js","../webpack://typescript-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"punycode\"","../webpack://typescript-action/external node-commonjs \"stream\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"url\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"zlib\"","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst util_1 = require(\"util\");\nasync function run() {\n const owner = github.context.repo.owner;\n const repo = core.getInput('repo') || github.context.repo.repo;\n const token = core.getInput('github-token');\n const gitSha = core.getInput('sha');\n // test vars for running locally, will need to `export GITHUB_TOKEN=****` first\n // const owner = 'KittyCAD'\n // const repo = 'docs'\n // const token = process.env.GITHUB_TOKEN\n // const gitSha = '9a84363538d718843698b3966af4be1fe3e14159'\n try {\n const octokit = github.getOctokit(token);\n const { data: [deployment] } = await octokit.rest.repos.listDeployments({\n owner,\n repo,\n sha: gitSha\n });\n core.debug(`deployment: ${(0, util_1.inspect)(deployment)}`);\n const id = deployment.id;\n const { data: [deploymentStatuses] } = await octokit.rest.repos.listDeploymentStatuses({\n owner,\n repo,\n deployment_id: id\n });\n core.debug(`deploymentStatuses: ${(0, util_1.inspect)(deploymentStatuses)}`);\n core.setOutput('targeturl', deploymentStatuses.target_url);\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(197);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":[".././lib/get-deployment-target-url.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@octokit/request/node_modules/node-fetch/lib/index.js",".././node_modules/@octokit/request/node_modules/tr46/index.js",".././node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/is-plain-object/dist/is-plain-object.js",".././node_modules/once/once.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/wrappy/wrappy.js",".././node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../external node-commonjs \"assert\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"punycode\"","../external node-commonjs \"stream\"","../external node-commonjs \"tls\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"zlib\"","../webpack/bootstrap","../webpack/runtime/compat","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst util_1 = require(\"util\");\nasync function run() {\n const owner = github.context.repo.owner;\n const repo = core.getInput('repo') || github.context.repo.repo;\n const token = core.getInput('github-token');\n const gitSha = core.getInput('sha');\n // test vars for running locally, will need to `export GITHUB_TOKEN=****` first\n // const owner = 'KittyCAD'\n // const repo = 'docs'\n // const token = process.env.GITHUB_TOKEN\n // const gitSha = '9a84363538d718843698b3966af4be1fe3e14159'\n try {\n const octokit = github.getOctokit(token);\n const { data: [deployment] } = await octokit.rest.repos.listDeployments({\n owner,\n repo,\n sha: gitSha\n });\n core.debug(`deployment: ${(0, util_1.inspect)(deployment)}`);\n const id = deployment.id;\n const { data: [deploymentStatuses] } = await octokit.rest.repos.listDeploymentStatuses({\n owner,\n repo,\n deployment_id: id\n });\n core.debug(`deploymentStatuses: ${(0, util_1.inspect)(deploymentStatuses)}`);\n core.setOutput('targeturl', deploymentStatuses.target_url);\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(197);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/get-deployment-target-url/licenses.txt b/dist/get-deployment-target-url/licenses.txt index bac409b..bedd358 100644 --- a/dist/get-deployment-target-url/licenses.txt +++ b/dist/get-deployment-target-url/licenses.txt @@ -562,19 +562,6 @@ Permission to use, copy, modify, and/or distribute this software for any purpose THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -uuid -MIT -The MIT License (MIT) - -Copyright (c) 2010-2020 Robert Kieffer and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - webidl-conversions BSD-2-Clause # The BSD 2-Clause License diff --git a/dist/show-visual-diffs-in-comment/index.js b/dist/show-visual-diffs-in-comment/index.js index fe56069..01f49d5 100644 --- a/dist/show-visual-diffs-in-comment/index.js +++ b/dist/show-visual-diffs-in-comment/index.js @@ -8,11 +8,7 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -256,9 +252,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -276,7 +276,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -316,10 +316,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -352,12 +349,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -486,11 +479,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -509,23 +498,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -556,14 +528,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -575,22 +546,7 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), @@ -611,8 +567,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); +const http_client_1 = __nccwpck_require__(9925); +const auth_1 = __nccwpck_require__(3702); const core_1 = __nccwpck_require__(2186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { @@ -645,7 +601,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -679,361 +635,6 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - /***/ 5278: /***/ ((__unused_webpack_module, exports) => { @@ -1212,7 +813,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); +const httpClient = __importStar(__nccwpck_require__(6341)); function getAuthString(token, options) { if (!token && !options.auth) { throw new Error('Parameter token or opts.auth is required'); @@ -1297,95 +898,7 @@ exports.getOctokitOptions = getOctokitOptions; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: +/***/ 6341: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -1423,7 +936,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; const http = __importStar(__nccwpck_require__(3685)); const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); +const pm = __importStar(__nccwpck_require__(3466)); const tunnel = __importStar(__nccwpck_require__(4294)); var HttpCodes; (function (HttpCodes) { @@ -1997,7 +1510,7 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ }), -/***/ 9835: +/***/ 3466: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -2065,397 +1578,1073 @@ exports.checkBypass = checkBypass; /***/ }), -/***/ 6412: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 3702: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -/*! - * Copyright 2015 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ResourceStream = exports.paginator = exports.Paginator = void 0; -/*! - * @module common/paginator - */ -const arrify = __nccwpck_require__(1546); -const extend = __nccwpck_require__(8171); -const resource_stream_1 = __nccwpck_require__(2199); -Object.defineProperty(exports, "ResourceStream", ({ enumerable: true, get: function () { return resource_stream_1.ResourceStream; } })); -/*! Developer Documentation - * - * paginator is used to auto-paginate `nextQuery` methods as well as - * streamifying them. - * - * Before: - * - * search.query('done=true', function(err, results, nextQuery) { - * search.query(nextQuery, function(err, results, nextQuery) {}); - * }); - * - * After: - * - * search.query('done=true', function(err, results) {}); - * - * Methods to extend should be written to accept callbacks and return a - * `nextQuery`. - */ -class Paginator { - /** - * Cache the original method, then overwrite it on the Class's prototype. - * - * @param {function} Class - The parent class of the methods to extend. - * @param {string|string[]} methodNames - Name(s) of the methods to extend. - */ - // tslint:disable-next-line:variable-name - extend(Class, methodNames) { - methodNames = arrify(methodNames); - methodNames.forEach(methodName => { - const originalMethod = Class.prototype[methodName]; - // map the original method to a private member - Class.prototype[methodName + '_'] = originalMethod; - // overwrite the original to auto-paginate - /* eslint-disable @typescript-eslint/no-explicit-any */ - Class.prototype[methodName] = function (...args) { - const parsedArguments = paginator.parseArguments_(args); - return paginator.run_(parsedArguments, originalMethod.bind(this)); - }; - }); +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; } - /** - * Wraps paginated API calls in a readable object stream. - * - * This method simply calls the nextQuery recursively, emitting results to a - * stream. The stream ends when `nextQuery` is null. - * - * `maxResults` will act as a cap for how many results are fetched and emitted - * to the stream. - * - * @param {string} methodName - Name of the method to streamify. - * @return {function} - Wrapped function. - */ - /* eslint-disable @typescript-eslint/no-explicit-any */ - streamify(methodName) { - return function ( - /* eslint-disable @typescript-eslint/no-explicit-any */ - ...args) { - const parsedArguments = paginator.parseArguments_(args); - const originalMethod = this[methodName + '_'] || this[methodName]; - return paginator.runAsStream_(parsedArguments, originalMethod.bind(this)); - }; + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); } - /** - * Parse a pseudo-array `arguments` for a query and callback. - * - * @param {array} args - The original `arguments` pseduo-array that the original - * method received. - */ - /* eslint-disable @typescript-eslint/no-explicit-any */ - parseArguments_(args) { - let query; - let autoPaginate = true; - let maxApiCalls = -1; - let maxResults = -1; - let callback; - const firstArgument = args[0]; - const lastArgument = args[args.length - 1]; - if (typeof firstArgument === 'function') { - callback = firstArgument; - } - else { - query = firstArgument; - } - if (typeof lastArgument === 'function') { - callback = lastArgument; - } - if (typeof query === 'object') { - query = extend(true, {}, query); - // Check if the user only asked for a certain amount of results. - if (query.maxResults && typeof query.maxResults === 'number') { - // `maxResults` is used API-wide. - maxResults = query.maxResults; - } - else if (typeof query.pageSize === 'number') { - // `pageSize` is Pub/Sub's `maxResults`. - maxResults = query.pageSize; - } - if (query.maxApiCalls && typeof query.maxApiCalls === 'number') { - maxApiCalls = query.maxApiCalls; - delete query.maxApiCalls; - } - // maxResults is the user specified limit. - if (maxResults !== -1 || query.autoPaginate === false) { - autoPaginate = false; - } - } - const parsedArguments = { - query: query || {}, - autoPaginate, - maxApiCalls, - maxResults, - callback, - }; - parsedArguments.streamOptions = extend(true, {}, parsedArguments.query); - delete parsedArguments.streamOptions.autoPaginate; - delete parsedArguments.streamOptions.maxResults; - delete parsedArguments.streamOptions.pageSize; - return parsedArguments; + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; } - /** - * This simply checks to see if `autoPaginate` is set or not, if it's true - * then we buffer all results, otherwise simply call the original method. - * - * @param {array} parsedArguments - Parsed arguments from the original method - * call. - * @param {object=|string=} parsedArguments.query - Query object. This is most - * commonly an object, but to make the API more simple, it can also be a - * string in some places. - * @param {function=} parsedArguments.callback - Callback function. - * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled. - * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make. - * @param {number} parsedArguments.maxResults - Maximum results to return. - * @param {function} originalMethod - The cached method that accepts a callback - * and returns `nextQuery` to receive more results. - */ - run_(parsedArguments, originalMethod) { - const query = parsedArguments.query; - const callback = parsedArguments.callback; - if (!parsedArguments.autoPaginate) { - return originalMethod(query, callback); - } - const results = new Array(); - const promise = new Promise((resolve, reject) => { - paginator - .runAsStream_(parsedArguments, originalMethod) - .on('error', reject) - .on('data', (data) => results.push(data)) - .on('end', () => resolve(results)); - }); - if (!callback) { - return promise.then(results => [results]); - } - promise.then(results => callback(null, results), (err) => callback(err)); + handleAuthentication(httpClient, requestInfo, objs) { + return null; } - /** - * This method simply calls the nextQuery recursively, emitting results to a - * stream. The stream ends when `nextQuery` is null. - * - * `maxResults` will act as a cap for how many results are fetched and emitted - * to the stream. - * - * @param {object=|string=} parsedArguments.query - Query object. This is most - * commonly an object, but to make the API more simple, it can also be a - * string in some places. - * @param {function=} parsedArguments.callback - Callback function. - * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled. - * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make. - * @param {number} parsedArguments.maxResults - Maximum results to return. - * @param {function} originalMethod - The cached method that accepts a callback - * and returns `nextQuery` to receive more results. - * @return {stream} - Readable object stream. - */ - /* eslint-disable @typescript-eslint/no-explicit-any */ - runAsStream_(parsedArguments, originalMethod) { - return new resource_stream_1.ResourceStream(parsedArguments, originalMethod); +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; } } -exports.Paginator = Paginator; -const paginator = new Paginator(); -exports.paginator = paginator; -//# sourceMappingURL=index.js.map +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + /***/ }), -/***/ 2199: +/***/ 9925: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -/*! - * Copyright 2019 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ResourceStream = void 0; -const stream_1 = __nccwpck_require__(2781); -class ResourceStream extends stream_1.Transform { - constructor(args, requestFn) { - const options = Object.assign({ objectMode: true }, args.streamOptions); - super(options); - this._ended = false; - this._maxApiCalls = args.maxApiCalls === -1 ? Infinity : args.maxApiCalls; - this._nextQuery = args.query; - this._reading = false; - this._requestFn = requestFn; - this._requestsMade = 0; - this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults; +const http = __nccwpck_require__(3685); +const https = __nccwpck_require__(5687); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); } - /* eslint-disable @typescript-eslint/no-explicit-any */ - end(...args) { - this._ended = true; - return super.end(...args); +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; } - _read() { - if (this._reading) { - return; + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, 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 = userAgent; + 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; + } } - this._reading = true; - // Wrap in a try/catch to catch input linting errors, e.g. - // an invalid BigQuery query. These errors are thrown in an - // async fashion, which makes them un-catchable by the user. - try { - this._requestFn(this._nextQuery, (err, results, nextQuery) => { - if (err) { - this.destroy(err); - return; + } + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + } + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + } + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + } + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + } + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } } - this._nextQuery = nextQuery; - if (this._resultsToSend !== Infinity) { - results = results.splice(0, this._resultsToSend); - this._resultsToSend -= results.length; + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); } - let more = true; - for (const result of results) { - if (this._ended) { - break; + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } } - more = this.push(result); } - const isFinished = !this._nextQuery || this._resultsToSend < 1; - const madeMaxCalls = ++this._requestsMade >= this._maxApiCalls; - if (isFinished || madeMaxCalls) { - this.end(); + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); + } + } + 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(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); } - if (more && !this._ended) { - setImmediate(() => this._read()); + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + 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) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + }), + host: proxyUrl.hostname, + port: proxyUrl.port } - this._reading = false; + }; + 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 reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false }); } - catch (e) { - this.destroy(e); + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); } } -exports.ResourceStream = ResourceStream; -//# sourceMappingURL=resource-stream.js.map +exports.HttpClient = HttpClient; + /***/ }), -/***/ 3497: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -const stream_1 = __nccwpck_require__(2781); -// Copyright 2014 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -/** - * Populate the `{{projectId}}` placeholder. - * - * @throws {Error} If a projectId is required, but one is not provided. - * - * @param {*} - Any input value that may contain a placeholder. Arrays and objects will be looped. - * @param {string} projectId - A projectId. If not provided - * @return {*} - The original argument with all placeholders populated. - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function replaceProjectIdToken(value, projectId) { - if (Array.isArray(value)) { - value = value.map(v => replaceProjectIdToken(v, projectId)); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; } - if (value !== null && - typeof value === 'object' && - !(value instanceof Buffer) && - !(value instanceof stream_1.Stream) && - typeof value.hasOwnProperty === 'function') { - for (const opt in value) { - // eslint-disable-next-line no-prototype-builtins - if (value.hasOwnProperty(opt)) { - value[opt] = replaceProjectIdToken(value[opt], projectId); - } - } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; } - if (typeof value === 'string' && - value.indexOf('{{projectId}}') > -1) { - if (!projectId || projectId === '{{projectId}}') { - throw new MissingProjectIdError(); - } - value = value.replace(/{{projectId}}/g, projectId); + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; } - return value; + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; } -exports.replaceProjectIdToken = replaceProjectIdToken; -/** - * Custom error type for missing project ID errors. - */ -class MissingProjectIdError extends Error { - constructor() { - super(...arguments); - this.message = `Sorry, we cannot connect to Cloud Services without a project - ID. You may specify one with an environment variable named - "GOOGLE_CLOUD_PROJECT".`.replace(/ +/g, ' '); +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; } -exports.MissingProjectIdError = MissingProjectIdError; -//# sourceMappingURL=index.js.map +exports.checkBypass = checkBypass; + /***/ }), -/***/ 9203: -/***/ ((__unused_webpack_module, exports) => { +/***/ 6412: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -/* eslint-disable prefer-rest-params */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.callbackifyAll = exports.callbackify = exports.promisifyAll = exports.promisify = void 0; -/** - * Wraps a callback style function to conditionally return a promise. +/*! + * Copyright 2015 Google Inc. All Rights Reserved. * - * @param {function} originalMethod - The method to promisify. - * @param {object=} options - Promise options. - * @param {boolean} options.singular - Resolve the promise with single arg instead of an array. - * @return {function} wrapped - */ -function promisify(originalMethod, options) { - if (originalMethod.promisified_) { - return originalMethod; + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ResourceStream = exports.paginator = exports.Paginator = void 0; +/*! + * @module common/paginator + */ +const arrify = __nccwpck_require__(1546); +const extend = __nccwpck_require__(8171); +const resource_stream_1 = __nccwpck_require__(2199); +Object.defineProperty(exports, "ResourceStream", ({ enumerable: true, get: function () { return resource_stream_1.ResourceStream; } })); +/*! Developer Documentation + * + * paginator is used to auto-paginate `nextQuery` methods as well as + * streamifying them. + * + * Before: + * + * search.query('done=true', function(err, results, nextQuery) { + * search.query(nextQuery, function(err, results, nextQuery) {}); + * }); + * + * After: + * + * search.query('done=true', function(err, results) {}); + * + * Methods to extend should be written to accept callbacks and return a + * `nextQuery`. + */ +class Paginator { + /** + * Cache the original method, then overwrite it on the Class's prototype. + * + * @param {function} Class - The parent class of the methods to extend. + * @param {string|string[]} methodNames - Name(s) of the methods to extend. + */ + // tslint:disable-next-line:variable-name + extend(Class, methodNames) { + methodNames = arrify(methodNames); + methodNames.forEach(methodName => { + const originalMethod = Class.prototype[methodName]; + // map the original method to a private member + Class.prototype[methodName + '_'] = originalMethod; + // overwrite the original to auto-paginate + /* eslint-disable @typescript-eslint/no-explicit-any */ + Class.prototype[methodName] = function (...args) { + const parsedArguments = paginator.parseArguments_(args); + return paginator.run_(parsedArguments, originalMethod.bind(this)); + }; + }); + } + /** + * Wraps paginated API calls in a readable object stream. + * + * This method simply calls the nextQuery recursively, emitting results to a + * stream. The stream ends when `nextQuery` is null. + * + * `maxResults` will act as a cap for how many results are fetched and emitted + * to the stream. + * + * @param {string} methodName - Name of the method to streamify. + * @return {function} - Wrapped function. + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ + streamify(methodName) { + return function ( + /* eslint-disable @typescript-eslint/no-explicit-any */ + ...args) { + const parsedArguments = paginator.parseArguments_(args); + const originalMethod = this[methodName + '_'] || this[methodName]; + return paginator.runAsStream_(parsedArguments, originalMethod.bind(this)); + }; + } + /** + * Parse a pseudo-array `arguments` for a query and callback. + * + * @param {array} args - The original `arguments` pseduo-array that the original + * method received. + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ + parseArguments_(args) { + let query; + let autoPaginate = true; + let maxApiCalls = -1; + let maxResults = -1; + let callback; + const firstArgument = args[0]; + const lastArgument = args[args.length - 1]; + if (typeof firstArgument === 'function') { + callback = firstArgument; + } + else { + query = firstArgument; + } + if (typeof lastArgument === 'function') { + callback = lastArgument; + } + if (typeof query === 'object') { + query = extend(true, {}, query); + // Check if the user only asked for a certain amount of results. + if (query.maxResults && typeof query.maxResults === 'number') { + // `maxResults` is used API-wide. + maxResults = query.maxResults; + } + else if (typeof query.pageSize === 'number') { + // `pageSize` is Pub/Sub's `maxResults`. + maxResults = query.pageSize; + } + if (query.maxApiCalls && typeof query.maxApiCalls === 'number') { + maxApiCalls = query.maxApiCalls; + delete query.maxApiCalls; + } + // maxResults is the user specified limit. + if (maxResults !== -1 || query.autoPaginate === false) { + autoPaginate = false; + } + } + const parsedArguments = { + query: query || {}, + autoPaginate, + maxApiCalls, + maxResults, + callback, + }; + parsedArguments.streamOptions = extend(true, {}, parsedArguments.query); + delete parsedArguments.streamOptions.autoPaginate; + delete parsedArguments.streamOptions.maxResults; + delete parsedArguments.streamOptions.pageSize; + return parsedArguments; + } + /** + * This simply checks to see if `autoPaginate` is set or not, if it's true + * then we buffer all results, otherwise simply call the original method. + * + * @param {array} parsedArguments - Parsed arguments from the original method + * call. + * @param {object=|string=} parsedArguments.query - Query object. This is most + * commonly an object, but to make the API more simple, it can also be a + * string in some places. + * @param {function=} parsedArguments.callback - Callback function. + * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled. + * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make. + * @param {number} parsedArguments.maxResults - Maximum results to return. + * @param {function} originalMethod - The cached method that accepts a callback + * and returns `nextQuery` to receive more results. + */ + run_(parsedArguments, originalMethod) { + const query = parsedArguments.query; + const callback = parsedArguments.callback; + if (!parsedArguments.autoPaginate) { + return originalMethod(query, callback); + } + const results = new Array(); + const promise = new Promise((resolve, reject) => { + paginator + .runAsStream_(parsedArguments, originalMethod) + .on('error', reject) + .on('data', (data) => results.push(data)) + .on('end', () => resolve(results)); + }); + if (!callback) { + return promise.then(results => [results]); + } + promise.then(results => callback(null, results), (err) => callback(err)); + } + /** + * This method simply calls the nextQuery recursively, emitting results to a + * stream. The stream ends when `nextQuery` is null. + * + * `maxResults` will act as a cap for how many results are fetched and emitted + * to the stream. + * + * @param {object=|string=} parsedArguments.query - Query object. This is most + * commonly an object, but to make the API more simple, it can also be a + * string in some places. + * @param {function=} parsedArguments.callback - Callback function. + * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled. + * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make. + * @param {number} parsedArguments.maxResults - Maximum results to return. + * @param {function} originalMethod - The cached method that accepts a callback + * and returns `nextQuery` to receive more results. + * @return {stream} - Readable object stream. + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ + runAsStream_(parsedArguments, originalMethod) { + return new resource_stream_1.ResourceStream(parsedArguments, originalMethod); + } +} +exports.Paginator = Paginator; +const paginator = new Paginator(); +exports.paginator = paginator; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 2199: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +/*! + * Copyright 2019 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ResourceStream = void 0; +const stream_1 = __nccwpck_require__(2781); +class ResourceStream extends stream_1.Transform { + constructor(args, requestFn) { + const options = Object.assign({ objectMode: true }, args.streamOptions); + super(options); + this._ended = false; + this._maxApiCalls = args.maxApiCalls === -1 ? Infinity : args.maxApiCalls; + this._nextQuery = args.query; + this._reading = false; + this._requestFn = requestFn; + this._requestsMade = 0; + this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults; + } + /* eslint-disable @typescript-eslint/no-explicit-any */ + end(...args) { + this._ended = true; + return super.end(...args); + } + _read() { + if (this._reading) { + return; + } + this._reading = true; + // Wrap in a try/catch to catch input linting errors, e.g. + // an invalid BigQuery query. These errors are thrown in an + // async fashion, which makes them un-catchable by the user. + try { + this._requestFn(this._nextQuery, (err, results, nextQuery) => { + if (err) { + this.destroy(err); + return; + } + this._nextQuery = nextQuery; + if (this._resultsToSend !== Infinity) { + results = results.splice(0, this._resultsToSend); + this._resultsToSend -= results.length; + } + let more = true; + for (const result of results) { + if (this._ended) { + break; + } + more = this.push(result); + } + const isFinished = !this._nextQuery || this._resultsToSend < 1; + const madeMaxCalls = ++this._requestsMade >= this._maxApiCalls; + if (isFinished || madeMaxCalls) { + this.end(); + } + if (more && !this._ended) { + setImmediate(() => this._read()); + } + this._reading = false; + }); + } + catch (e) { + this.destroy(e); + } + } +} +exports.ResourceStream = ResourceStream; +//# sourceMappingURL=resource-stream.js.map + +/***/ }), + +/***/ 3497: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const stream_1 = __nccwpck_require__(2781); +// Copyright 2014 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/** + * Populate the `{{projectId}}` placeholder. + * + * @throws {Error} If a projectId is required, but one is not provided. + * + * @param {*} - Any input value that may contain a placeholder. Arrays and objects will be looped. + * @param {string} projectId - A projectId. If not provided + * @return {*} - The original argument with all placeholders populated. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function replaceProjectIdToken(value, projectId) { + if (Array.isArray(value)) { + value = value.map(v => replaceProjectIdToken(v, projectId)); + } + if (value !== null && + typeof value === 'object' && + !(value instanceof Buffer) && + !(value instanceof stream_1.Stream) && + typeof value.hasOwnProperty === 'function') { + for (const opt in value) { + // eslint-disable-next-line no-prototype-builtins + if (value.hasOwnProperty(opt)) { + value[opt] = replaceProjectIdToken(value[opt], projectId); + } + } + } + if (typeof value === 'string' && + value.indexOf('{{projectId}}') > -1) { + if (!projectId || projectId === '{{projectId}}') { + throw new MissingProjectIdError(); + } + value = value.replace(/{{projectId}}/g, projectId); + } + return value; +} +exports.replaceProjectIdToken = replaceProjectIdToken; +/** + * Custom error type for missing project ID errors. + */ +class MissingProjectIdError extends Error { + constructor() { + super(...arguments); + this.message = `Sorry, we cannot connect to Cloud Services without a project + ID. You may specify one with an environment variable named + "GOOGLE_CLOUD_PROJECT".`.replace(/ +/g, ' '); + } +} +exports.MissingProjectIdError = MissingProjectIdError; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 9203: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +/* eslint-disable prefer-rest-params */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.callbackifyAll = exports.callbackify = exports.promisifyAll = exports.promisify = void 0; +/** + * Wraps a callback style function to conditionally return a promise. + * + * @param {function} originalMethod - The method to promisify. + * @param {object=} options - Promise options. + * @param {boolean} options.singular - Resolve the promise with single arg instead of an array. + * @return {function} wrapped + */ +function promisify(originalMethod, options) { + if (originalMethod.promisified_) { + return originalMethod; } options = options || {}; const slice = Array.prototype.slice; @@ -26350,7 +26539,7 @@ function compressible (type) { const path = __nccwpck_require__(1017); const os = __nccwpck_require__(2037); -const fs = __nccwpck_require__(9577); +const fs = __nccwpck_require__(7758); const makeDir = __nccwpck_require__(9126); const xdgBasedir = __nccwpck_require__(3522); const writeFileAtomic = __nccwpck_require__(2221); @@ -26460,8771 +26649,7820 @@ module.exports = Configstore; /***/ }), -/***/ 4927: -/***/ ((module) => { +/***/ 7332: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; +const crypto = __nccwpck_require__(6113); -module.exports = clone +module.exports = length => { + if (!Number.isFinite(length)) { + throw new TypeError('Expected a finite number'); + } -var getPrototypeOf = Object.getPrototypeOf || function (obj) { - return obj.__proto__ -} + return crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length); +}; -function clone (obj) { - if (obj === null || typeof obj !== 'object') - return obj - if (obj instanceof Object) - var copy = { __proto__: getPrototypeOf(obj) } - else - var copy = Object.create(null) +/***/ }), - Object.getOwnPropertyNames(obj).forEach(function (key) { - Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) - }) +/***/ 8222: +/***/ ((module, exports, __nccwpck_require__) => { - return copy -} +/* eslint-env browser */ +/** + * This is the web browser implementation of `debug()`. + */ -/***/ }), +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; -/***/ 9577: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); -var fs = __nccwpck_require__(7147) -var polyfills = __nccwpck_require__(7218) -var legacy = __nccwpck_require__(2968) -var clone = __nccwpck_require__(4927) +/** + * Colors. + */ -var util = __nccwpck_require__(3837) +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; -/* istanbul ignore next - node 0.x polyfill */ -var gracefulQueue -var previousSymbol +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ -/* istanbul ignore else - node 0.x polyfill */ -if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { - gracefulQueue = Symbol.for('graceful-fs.queue') - // This is used in testing by future versions - previousSymbol = Symbol.for('graceful-fs.previous') -} else { - gracefulQueue = '___graceful-fs.queue' - previousSymbol = '___graceful-fs.previous' -} +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } -function noop () {} + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } -function publishQueue(context, queue) { - Object.defineProperty(context, gracefulQueue, { - get: function() { - return queue - } - }) + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); } -var debug = noop -if (util.debuglog) - debug = util.debuglog('gfs4') -else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) - debug = function() { - var m = util.format.apply(util, arguments) - m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') - console.error(m) - } +/** + * Colorize log arguments if enabled. + * + * @api public + */ -// Once time initialization -if (!fs[gracefulQueue]) { - // This queue can be shared by multiple loaded instances - var queue = global[gracefulQueue] || [] - publishQueue(fs, queue) +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); - // Patch fs.close/closeSync to shared queue version, because we need - // to retry() whenever a close happens *anywhere* in the program. - // This is essential when multiple graceful-fs instances are - // in play at the same time. - fs.close = (function (fs$close) { - function close (fd, cb) { - return fs$close.call(fs, fd, function (err) { - // This function uses the graceful-fs shared queue - if (!err) { - resetQueue() - } + if (!this.useColors) { + return; + } - if (typeof cb === 'function') - cb.apply(this, arguments) - }) - } + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); - Object.defineProperty(close, previousSymbol, { - value: fs$close - }) - return close - })(fs.close) + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); - fs.closeSync = (function (fs$closeSync) { - function closeSync (fd) { - // This function uses the graceful-fs shared queue - fs$closeSync.apply(fs, arguments) - resetQueue() - } + args.splice(lastC, 0, c); +} - Object.defineProperty(closeSync, previousSymbol, { - value: fs$closeSync - }) - return closeSync - })(fs.closeSync) +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); - if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { - debug(fs[gracefulQueue]) - __nccwpck_require__(9491).equal(fs[gracefulQueue].length, 0) - }) - } +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } } -if (!global[gracefulQueue]) { - publishQueue(global, fs[gracefulQueue]); -} +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } -module.exports = patch(clone(fs)) -if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { - module.exports = patch(fs) - fs.__patched = true; + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; } -function patch (fs) { - // Everything that references the open() function needs to be in here - polyfills(fs) - fs.gracefulify = patch +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ - fs.createReadStream = createReadStream - fs.createWriteStream = createWriteStream - var fs$readFile = fs.readFile - fs.readFile = readFile - function readFile (path, options, cb) { - if (typeof options === 'function') - cb = options, options = null +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} - return go$readFile(path, options, cb) +module.exports = __nccwpck_require__(6243)(exports); - function go$readFile (path, options, cb, startTime) { - return fs$readFile(path, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } +const {formatters} = module.exports; - var fs$writeFile = fs.writeFile - fs.writeFile = writeFile - function writeFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ - return go$writeFile(path, data, options, cb) +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; - function go$writeFile (path, data, options, cb, startTime) { - return fs$writeFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } - var fs$appendFile = fs.appendFile - if (fs$appendFile) - fs.appendFile = appendFile - function appendFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null +/***/ }), - return go$appendFile(path, data, options, cb) +/***/ 6243: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - function go$appendFile (path, data, options, cb, startTime) { - return fs$appendFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } - var fs$copyFile = fs.copyFile - if (fs$copyFile) - fs.copyFile = copyFile - function copyFile (src, dest, flags, cb) { - if (typeof flags === 'function') { - cb = flags - flags = 0 - } - return go$copyFile(src, dest, flags, cb) +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ - function go$copyFile (src, dest, flags, cb, startTime) { - return fs$copyFile(src, dest, flags, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = __nccwpck_require__(900); + createDebug.destroy = destroy; - var fs$readdir = fs.readdir - fs.readdir = readdir - function readdir (path, options, cb) { - if (typeof options === 'function') - cb = options, options = null + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); - return go$readdir(path, options, cb) + /** + * The currently active debug mode names, and names to skip. + */ - function go$readdir (path, options, cb, startTime) { - return fs$readdir(path, options, function (err, files) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readdir, [path, options, cb], err, startTime || Date.now(), Date.now()]) - else { - if (files && files.sort) - files.sort() + createDebug.names = []; + createDebug.skips = []; - if (typeof cb === 'function') - cb.call(this, err, files) - } - }) - } - } + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; - if (process.version.substr(0, 4) === 'v0.8') { - var legStreams = legacy(fs) - ReadStream = legStreams.ReadStream - WriteStream = legStreams.WriteStream - } + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; - var fs$ReadStream = fs.ReadStream - if (fs$ReadStream) { - ReadStream.prototype = Object.create(fs$ReadStream.prototype) - ReadStream.prototype.open = ReadStream$open - } + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } - var fs$WriteStream = fs.WriteStream - if (fs$WriteStream) { - WriteStream.prototype = Object.create(fs$WriteStream.prototype) - WriteStream.prototype.open = WriteStream$open - } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; - Object.defineProperty(fs, 'ReadStream', { - get: function () { - return ReadStream - }, - set: function (val) { - ReadStream = val - }, - enumerable: true, - configurable: true - }) - Object.defineProperty(fs, 'WriteStream', { - get: function () { - return WriteStream - }, - set: function (val) { - WriteStream = val - }, - enumerable: true, - configurable: true - }) - - // legacy names - var FileReadStream = ReadStream - Object.defineProperty(fs, 'FileReadStream', { - get: function () { - return FileReadStream - }, - set: function (val) { - FileReadStream = val - }, - enumerable: true, - configurable: true - }) - var FileWriteStream = WriteStream - Object.defineProperty(fs, 'FileWriteStream', { - get: function () { - return FileWriteStream - }, - set: function (val) { - FileWriteStream = val - }, - enumerable: true, - configurable: true - }) - - function ReadStream (path, options) { - if (this instanceof ReadStream) - return fs$ReadStream.apply(this, arguments), this - else - return ReadStream.apply(Object.create(ReadStream.prototype), arguments) - } - - function ReadStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - if (that.autoClose) - that.destroy() - - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - that.read() - } - }) - } - - function WriteStream (path, options) { - if (this instanceof WriteStream) - return fs$WriteStream.apply(this, arguments), this - else - return WriteStream.apply(Object.create(WriteStream.prototype), arguments) - } - - function WriteStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - that.destroy() - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - } - }) - } - - function createReadStream (path, options) { - return new fs.ReadStream(path, options) - } - - function createWriteStream (path, options) { - return new fs.WriteStream(path, options) - } + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; - var fs$open = fs.open - fs.open = open - function open (path, flags, mode, cb) { - if (typeof mode === 'function') - cb = mode, mode = null + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } - return go$open(path, flags, mode, cb) + const self = debug; - function go$open (path, flags, mode, cb, startTime) { - return fs$open(path, flags, mode, function (err, fd) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; - return fs -} + args[0] = createDebug.coerce(args[0]); -function enqueue (elem) { - debug('ENQUEUE', elem[0].name, elem[1]) - fs[gracefulQueue].push(elem) - retry() -} + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } -// keep track of the timeout between retry() calls -var retryTimer + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); -// reset the startTime and lastTime to now -// this resets the start of the 60 second overall timeout as well as the -// delay between attempts so that we'll retry these jobs sooner -function resetQueue () { - var now = Date.now() - for (var i = 0; i < fs[gracefulQueue].length; ++i) { - // entries that are only a length of 2 are from an older version, don't - // bother modifying those since they'll be retried anyway. - if (fs[gracefulQueue][i].length > 2) { - fs[gracefulQueue][i][3] = now // startTime - fs[gracefulQueue][i][4] = now // lastTime - } - } - // call retry to make sure we're actively processing the queue - retry() -} + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); -function retry () { - // clear the timer and remove it to help prevent unintended concurrency - clearTimeout(retryTimer) - retryTimer = undefined + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); - if (fs[gracefulQueue].length === 0) - return + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } - var elem = fs[gracefulQueue].shift() - var fn = elem[0] - var args = elem[1] - // these items may be unset if they were added by an older graceful-fs - var err = elem[2] - var startTime = elem[3] - var lastTime = elem[4] + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - // if we don't have a startTime we have no way of knowing if we've waited - // long enough, so go ahead and retry this item now - if (startTime === undefined) { - debug('RETRY', fn.name, args) - fn.apply(null, args) - } else if (Date.now() - startTime >= 60000) { - // it's been more than 60 seconds total, bail now - debug('TIMEOUT', fn.name, args) - var cb = args.pop() - if (typeof cb === 'function') - cb.call(null, err) - } else { - // the amount of time between the last attempt and right now - var sinceAttempt = Date.now() - lastTime - // the amount of time between when we first tried, and when we last tried - // rounded up to at least 1 - var sinceStart = Math.max(lastTime - startTime, 1) - // backoff. wait longer than the total time we've been retrying, but only - // up to a maximum of 100ms - var desiredDelay = Math.min(sinceStart * 1.2, 100) - // it's been long enough since the last retry, do it again - if (sinceAttempt >= desiredDelay) { - debug('RETRY', fn.name, args) - fn.apply(null, args.concat([startTime])) - } else { - // if we can't do this job yet, push it to the end of the queue - // and let the next iteration check again - fs[gracefulQueue].push(elem) - } - } + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } - // schedule our next run if one isn't already scheduled - if (retryTimer === undefined) { - retryTimer = setTimeout(retry, 0) - } -} + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } -/***/ }), + return debug; + } -/***/ 2968: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } -var Stream = (__nccwpck_require__(2781).Stream) + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; -module.exports = legacy + createDebug.names = []; + createDebug.skips = []; -function legacy (fs) { - return { - ReadStream: ReadStream, - WriteStream: WriteStream - } + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; - function ReadStream (path, options) { - if (!(this instanceof ReadStream)) return new ReadStream(path, options); + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } - Stream.call(this); + namespaces = split[i].replace(/\*/g, '.*?'); - var self = this; + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } - this.path = path; - this.fd = null; - this.readable = true; - this.paused = false; + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } - this.flags = 'r'; - this.mode = 438; /*=0666*/ - this.bufferSize = 64 * 1024; + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } - options = options || {}; + let i; + let len; - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } - if (this.encoding) this.setEncoding(this.encoding); + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.end === undefined) { - this.end = Infinity; - } else if ('number' !== typeof this.end) { - throw TypeError('end must be a Number'); - } + return false; + } - if (this.start > this.end) { - throw new Error('start must be <= end'); - } + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } - this.pos = this.start; - } + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } - if (this.fd !== null) { - process.nextTick(function() { - self._read(); - }); - return; - } + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } - fs.open(this.path, this.flags, this.mode, function (err, fd) { - if (err) { - self.emit('error', err); - self.readable = false; - return; - } + createDebug.enable(createDebug.load()); - self.fd = fd; - self.emit('open', fd); - self._read(); - }) - } + return createDebug; +} - function WriteStream (path, options) { - if (!(this instanceof WriteStream)) return new WriteStream(path, options); +module.exports = setup; - Stream.call(this); - this.path = path; - this.fd = null; - this.writable = true; +/***/ }), - this.flags = 'w'; - this.encoding = 'binary'; - this.mode = 438; /*=0666*/ - this.bytesWritten = 0; +/***/ 8237: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - options = options || {}; +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = __nccwpck_require__(8222); +} else { + module.exports = __nccwpck_require__(4874); +} - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.start < 0) { - throw new Error('start must be >= zero'); - } - this.pos = this.start; - } +/***/ }), - this.busy = false; - this._queue = []; +/***/ 4874: +/***/ ((module, exports, __nccwpck_require__) => { - if (this.fd === null) { - this._open = fs.open; - this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); - this.flush(); - } - } -} +/** + * Module dependencies. + */ +const tty = __nccwpck_require__(6224); +const util = __nccwpck_require__(3837); -/***/ }), +/** + * This is the Node.js implementation of `debug()`. + */ -/***/ 7218: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); -var constants = __nccwpck_require__(2057) +/** + * Colors. + */ -var origCwd = process.cwd -var cwd = null +exports.colors = [6, 2, 3, 4, 5, 1]; -var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = __nccwpck_require__(9318); -process.cwd = function() { - if (!cwd) - cwd = origCwd.call(process) - return cwd + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. } -try { - process.cwd() -} catch (er) {} -// This check is needed until node.js 12 is required -if (typeof process.chdir === 'function') { - var chdir = process.chdir - process.chdir = function (d) { - cwd = null - chdir.call(process, d) - } - if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir) +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); } -module.exports = patch +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ -function patch (fs) { - // (re-)implement some things that are known busted or missing. +function formatArgs(args) { + const {namespace: name, useColors} = this; - // lchmod, broken prior to 0.6.2 - // back-port the fix here. - if (constants.hasOwnProperty('O_SYMLINK') && - process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { - patchLchmod(fs) - } + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; - // lutimes implementation, or no-op - if (!fs.lutimes) { - patchLutimes(fs) - } + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} - // https://github.com/isaacs/node-graceful-fs/issues/4 - // Chown should not fail on einval or eperm if non-root. - // It should not fail on enosys ever, as this just indicates - // that a fs doesn't support the intended operation. +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} - fs.chown = chownFix(fs.chown) - fs.fchown = chownFix(fs.fchown) - fs.lchown = chownFix(fs.lchown) +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ - fs.chmod = chmodFix(fs.chmod) - fs.fchmod = chmodFix(fs.fchmod) - fs.lchmod = chmodFix(fs.lchmod) +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} - fs.chownSync = chownFixSync(fs.chownSync) - fs.fchownSync = chownFixSync(fs.fchownSync) - fs.lchownSync = chownFixSync(fs.lchownSync) +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} - fs.chmodSync = chmodFixSync(fs.chmodSync) - fs.fchmodSync = chmodFixSync(fs.fchmodSync) - fs.lchmodSync = chmodFixSync(fs.lchmodSync) +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ - fs.stat = statFix(fs.stat) - fs.fstat = statFix(fs.fstat) - fs.lstat = statFix(fs.lstat) +function load() { + return process.env.DEBUG; +} - fs.statSync = statFixSync(fs.statSync) - fs.fstatSync = statFixSync(fs.fstatSync) - fs.lstatSync = statFixSync(fs.lstatSync) +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ - // if lchmod/lchown do not exist, then make them no-ops - if (!fs.lchmod) { - fs.lchmod = function (path, mode, cb) { - if (cb) process.nextTick(cb) - } - fs.lchmodSync = function () {} - } - if (!fs.lchown) { - fs.lchown = function (path, uid, gid, cb) { - if (cb) process.nextTick(cb) - } - fs.lchownSync = function () {} - } +function init(debug) { + debug.inspectOpts = {}; - // on Windows, A/V software can lock the directory, causing this - // to fail with an EACCES or EPERM if the directory contains newly - // created files. Try again on failure, for up to 60 seconds. + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} - // Set the timeout this long because some Windows Anti-Virus, such as Parity - // bit9, may lock files for up to a minute, causing npm package install - // failures. Also, take care to yield the scheduler. Windows scheduling gives - // CPU to a busy looping process, which can cause the program causing the lock - // contention to be starved of CPU by node, so the contention doesn't resolve. - if (platform === "win32") { - fs.rename = (function (fs$rename) { return function (from, to, cb) { - var start = Date.now() - var backoff = 0; - fs$rename(from, to, function CB (er) { - if (er - && (er.code === "EACCES" || er.code === "EPERM") - && Date.now() - start < 60000) { - setTimeout(function() { - fs.stat(to, function (stater, st) { - if (stater && stater.code === "ENOENT") - fs$rename(from, to, CB); - else - cb(er) - }) - }, backoff) - if (backoff < 100) - backoff += 10; - return; - } - if (cb) cb(er) - }) - }})(fs.rename) - } +module.exports = __nccwpck_require__(6243)(exports); - // if read() returns EAGAIN, then just try it again. - fs.read = (function (fs$read) { - function read (fd, buffer, offset, length, position, callback_) { - var callback - if (callback_ && typeof callback_ === 'function') { - var eagCounter = 0 - callback = function (er, _, __) { - if (er && er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - } - callback_.apply(this, arguments) - } - } - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - } +const {formatters} = module.exports; - // This ensures `util.promisify` works as it does for native `fs.read`. - if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read) - return read - })(fs.read) +/** + * Map %o to `util.inspect()`, all on a single line. + */ - fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { - var eagCounter = 0 - while (true) { - try { - return fs$readSync.call(fs, fd, buffer, offset, length, position) - } catch (er) { - if (er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - continue - } - throw er - } - } - }})(fs.readSync) +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; - function patchLchmod (fs) { - fs.lchmod = function (path, mode, callback) { - fs.open( path - , constants.O_WRONLY | constants.O_SYMLINK - , mode - , function (err, fd) { - if (err) { - if (callback) callback(err) - return - } - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - fs.fchmod(fd, mode, function (err) { - fs.close(fd, function(err2) { - if (callback) callback(err || err2) - }) - }) - }) - } +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ - fs.lchmodSync = function (path, mode) { - var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - var threw = true - var ret - try { - ret = fs.fchmodSync(fd, mode) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } - } - function patchLutimes (fs) { - if (constants.hasOwnProperty("O_SYMLINK")) { - fs.lutimes = function (path, at, mt, cb) { - fs.open(path, constants.O_SYMLINK, function (er, fd) { - if (er) { - if (cb) cb(er) - return - } - fs.futimes(fd, at, mt, function (er) { - fs.close(fd, function (er2) { - if (cb) cb(er || er2) - }) - }) - }) - } +/***/ }), - fs.lutimesSync = function (path, at, mt) { - var fd = fs.openSync(path, constants.O_SYMLINK) - var ret - var threw = true - try { - ret = fs.futimesSync(fd, at, mt) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } +/***/ 8932: +/***/ ((__unused_webpack_module, exports) => { - } else { - fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } - fs.lutimesSync = function () {} - } - } +"use strict"; - function chmodFix (orig) { - if (!orig) return orig - return function (target, mode, cb) { - return orig.call(fs, target, mode, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } - } - function chmodFixSync (orig) { - if (!orig) return orig - return function (target, mode) { - try { - return orig.call(fs, target, mode) - } catch (er) { - if (!chownErOk(er)) throw er - } - } - } +Object.defineProperty(exports, "__esModule", ({ value: true })); +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) - function chownFix (orig) { - if (!orig) return orig - return function (target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } - } + /* istanbul ignore next */ - function chownFixSync (orig) { - if (!orig) return orig - return function (target, uid, gid) { - try { - return orig.call(fs, target, uid, gid) - } catch (er) { - if (!chownErOk(er)) throw er - } + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); } - } - function statFix (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - function callback (er, stats) { - if (stats) { - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - } - if (cb) cb.apply(this, arguments) - } - return options ? orig.call(fs, target, options, callback) - : orig.call(fs, target, callback) - } + this.name = 'Deprecation'; } - function statFixSync (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target, options) { - var stats = options ? orig.call(fs, target, options) - : orig.call(fs, target) - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - return stats; - } - } +} - // ENOSYS means that the fs doesn't support the op. Just ignore - // that, because it doesn't matter. - // - // if there's no getuid, or if getuid() is something other - // than 0, and the error is EINVAL or EPERM, then just ignore - // it. - // - // This specific case is a silent failure in cp, install, tar, - // and most other unix tools that manage permissions. - // - // When running as root, or if other types of errors are - // encountered, then it's strict. - function chownErOk (er) { - if (!er) - return true - - if (er.code === "ENOSYS") - return true - - var nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") - return true - } - - return false - } -} +exports.Deprecation = Deprecation; /***/ }), -/***/ 7332: +/***/ 2738: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; -const crypto = __nccwpck_require__(6113); +const path = __nccwpck_require__(1017); +const pathType = __nccwpck_require__(3433); -module.exports = length => { - if (!Number.isFinite(length)) { - throw new TypeError('Expected a finite number'); +const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; + +const getPath = (filepath, cwd) => { + const pth = filepath[0] === '!' ? filepath.slice(1) : filepath; + return path.isAbsolute(pth) ? pth : path.join(cwd, pth); +}; + +const addExtensions = (file, extensions) => { + if (path.extname(file)) { + return `**/${file}`; } - return crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length); + return `**/${file}.${getExtensions(extensions)}`; }; +const getGlob = (directory, options) => { + if (options.files && !Array.isArray(options.files)) { + throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``); + } -/***/ }), + if (options.extensions && !Array.isArray(options.extensions)) { + throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``); + } -/***/ 8222: -/***/ ((module, exports, __nccwpck_require__) => { + if (options.files && options.extensions) { + return options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions))); + } -/* eslint-env browser */ + if (options.files) { + return options.files.map(x => path.posix.join(directory, `**/${x}`)); + } -/** - * This is the web browser implementation of `debug()`. - */ + if (options.extensions) { + return [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)]; + } -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; + return [path.posix.join(directory, '**')]; +}; - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } +module.exports = async (input, options) => { + options = { + cwd: process.cwd(), + ...options }; -})(); -/** - * Colors. - */ + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + } -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; + const globs = await Promise.all([].concat(input).map(async x => { + const isDirectory = await pathType.isDirectory(getPath(x, options.cwd)); + return isDirectory ? getGlob(x, options) : x; + })); -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ + return [].concat.apply([], globs); // eslint-disable-line prefer-spread +}; -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } +module.exports.sync = (input, options) => { + options = { + cwd: process.cwd(), + ...options + }; - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); } - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} + const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x); -/** - * Colorize log arguments if enabled. - * - * @api public - */ + return [].concat.apply([], globs); // eslint-disable-line prefer-spread +}; -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - if (!this.useColors) { - return; - } +/***/ }), - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); +/***/ 2042: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); +"use strict"; - args.splice(lastC, 0, c); -} +const isObj = __nccwpck_require__(1389); -/** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ -exports.log = console.debug || console.log || (() => {}); +const disallowedKeys = [ + '__proto__', + 'prototype', + 'constructor' +]; -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} +const isValidPath = pathSegments => !pathSegments.some(segment => disallowedKeys.includes(segment)); -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } +function getPathSegments(path) { + const pathArray = path.split('.'); + const parts = []; - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } + for (let i = 0; i < pathArray.length; i++) { + let p = pathArray[i]; - return r; -} + while (p[p.length - 1] === '\\' && pathArray[i + 1] !== undefined) { + p = p.slice(0, -1) + '.'; + p += pathArray[++i]; + } -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ + parts.push(p); + } -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? + if (!isValidPath(parts)) { + return []; } -} -module.exports = __nccwpck_require__(6243)(exports); + return parts; +} -const {formatters} = module.exports; +module.exports = { + get(object, path, value) { + if (!isObj(object) || typeof path !== 'string') { + return value === undefined ? object : value; + } -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ + const pathArray = getPathSegments(path); + if (pathArray.length === 0) { + return; + } -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; + for (let i = 0; i < pathArray.length; i++) { + if (!Object.prototype.propertyIsEnumerable.call(object, pathArray[i])) { + return value; + } + object = object[pathArray[i]]; -/***/ }), + if (object === undefined || object === null) { + // `object` is either `undefined` or `null` so we want to stop the loop, and + // if this is not the last bit of the path, and + // if it did't return `undefined` + // it would return `null` if `object` is `null` + // but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null` + if (i !== pathArray.length - 1) { + return value; + } -/***/ 6243: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + break; + } + } + return object; + }, -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ + set(object, path, value) { + if (!isObj(object) || typeof path !== 'string') { + return object; + } -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = __nccwpck_require__(900); - createDebug.destroy = destroy; + const root = object; + const pathArray = getPathSegments(path); - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); + for (let i = 0; i < pathArray.length; i++) { + const p = pathArray[i]; - /** - * The currently active debug mode names, and names to skip. - */ + if (!isObj(object[p])) { + object[p] = {}; + } - createDebug.names = []; - createDebug.skips = []; + if (i === pathArray.length - 1) { + object[p] = value; + } - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; + object = object[p]; + } - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; + return root; + }, - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer + delete(object, path) { + if (!isObj(object) || typeof path !== 'string') { + return false; } - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; + const pathArray = getPathSegments(path); - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; + for (let i = 0; i < pathArray.length; i++) { + const p = pathArray[i]; - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; + if (i === pathArray.length - 1) { + delete object[p]; + return true; } - const self = debug; + object = object[p]; - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; + if (!isObj(object)) { + return false; + } + } + }, - args[0] = createDebug.coerce(args[0]); + has(object, path) { + if (!isObj(object) || typeof path !== 'string') { + return false; + } - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } + const pathArray = getPathSegments(path); + if (pathArray.length === 0) { + return false; + } - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; + // eslint-disable-next-line unicorn/no-for-loop + for (let i = 0; i < pathArray.length; i++) { + if (isObj(object)) { + if (!(pathArray[i] in object)) { + return false; } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); + object = object[pathArray[i]]; + } else { + return false; + } + } - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } + return true; + } +}; - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } +/***/ }), - return enabledCache; - }, - set: v => { - enableOverride = v; - } - }); +/***/ 6599: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } +var stream = __nccwpck_require__(1642) +var eos = __nccwpck_require__(1205) +var inherits = __nccwpck_require__(4124) +var shift = __nccwpck_require__(6121) - return debug; - } +var SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from) + ? Buffer.from([0]) + : new Buffer([0]) - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } +var onuncork = function(self, fn) { + if (self._corked) self.once('uncork', fn) + else fn() +} - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; +var autoDestroy = function (self, err) { + if (self._autoDestroy) self.destroy(err) +} - createDebug.names = []; - createDebug.skips = []; +var destroyer = function(self, end) { + return function(err) { + if (err) autoDestroy(self, err.message === 'premature close' ? null : err) + else if (end && !self._ended) self.end() + } +} - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; +var end = function(ws, fn) { + if (!ws) return fn() + if (ws._writableState && ws._writableState.finished) return fn() + if (ws._writableState) return ws.end(fn) + ws.end() + fn() +} - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } +var noop = function() {} - namespaces = split[i].replace(/\*/g, '.*?'); +var toStreams2 = function(rs) { + return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs) +} - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } +var Duplexify = function(writable, readable, opts) { + if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts) + stream.Duplex.call(this, opts) - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } + this._writable = null + this._readable = null + this._readable2 = null - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } + this._autoDestroy = !opts || opts.autoDestroy !== false + this._forwardDestroy = !opts || opts.destroy !== false + this._forwardEnd = !opts || opts.end !== false + this._corked = 1 // start corked + this._ondrain = null + this._drained = false + this._forwarding = false + this._unwrite = null + this._unread = null + this._ended = false - let i; - let len; + this.destroyed = false - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } + if (writable) this.setWritable(writable) + if (readable) this.setReadable(readable) +} - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } +inherits(Duplexify, stream.Duplex) - return false; - } +Duplexify.obj = function(writable, readable, opts) { + if (!opts) opts = {} + opts.objectMode = true + opts.highWaterMark = 16 + return new Duplexify(writable, readable, opts) +} - /** - * Convert regexp to namespace - * - * @param {RegExp} regxep - * @return {String} namespace - * @api private - */ - function toNamespace(regexp) { - return regexp.toString() - .substring(2, regexp.toString().length - 2) - .replace(/\.\*\?$/, '*'); - } +Duplexify.prototype.cork = function() { + if (++this._corked === 1) this.emit('cork') +} - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } +Duplexify.prototype.uncork = function() { + if (this._corked && --this._corked === 0) this.emit('uncork') +} - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } +Duplexify.prototype.setWritable = function(writable) { + if (this._unwrite) this._unwrite() - createDebug.enable(createDebug.load()); + if (this.destroyed) { + if (writable && writable.destroy) writable.destroy() + return + } - return createDebug; -} + if (writable === null || writable === false) { + this.end() + return + } -module.exports = setup; + var self = this + var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd)) + var ondrain = function() { + var ondrain = self._ondrain + self._ondrain = null + if (ondrain) ondrain() + } -/***/ }), + var clear = function() { + self._writable.removeListener('drain', ondrain) + unend() + } -/***/ 8237: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ + this._writable = writable + this._writable.on('drain', ondrain) + this._unwrite = clear -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = __nccwpck_require__(8222); -} else { - module.exports = __nccwpck_require__(4874); + this.uncork() // always uncork setWritable } +Duplexify.prototype.setReadable = function(readable) { + if (this._unread) this._unread() -/***/ }), - -/***/ 4874: -/***/ ((module, exports, __nccwpck_require__) => { + if (this.destroyed) { + if (readable && readable.destroy) readable.destroy() + return + } -/** - * Module dependencies. - */ + if (readable === null || readable === false) { + this.push(null) + this.resume() + return + } -const tty = __nccwpck_require__(6224); -const util = __nccwpck_require__(3837); + var self = this + var unend = eos(readable, {writable:false, readable:true}, destroyer(this)) -/** - * This is the Node.js implementation of `debug()`. - */ + var onreadable = function() { + self._forward() + } -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util.deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); + var onend = function() { + self.push(null) + } -/** - * Colors. - */ + var clear = function() { + self._readable2.removeListener('readable', onreadable) + self._readable2.removeListener('end', onend) + unend() + } -exports.colors = [6, 2, 3, 4, 5, 1]; + this._drained = true + this._readable = readable + this._readable2 = readable._readableState ? readable : toStreams2(readable) + this._readable2.on('readable', onreadable) + this._readable2.on('end', onend) + this._unread = clear -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = __nccwpck_require__(9318); + this._forward() +} - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. +Duplexify.prototype._read = function() { + this._drained = true + this._forward() } -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ +Duplexify.prototype._forward = function() { + if (this._forwarding || !this._readable2 || !this._drained) return + this._forwarding = true -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); + var data - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } + while (this._drained && (data = shift(this._readable2)) !== null) { + if (this.destroyed) continue + this._drained = this.push(data) + } - obj[prop] = val; - return obj; -}, {}); + this._forwarding = false +} -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ +Duplexify.prototype.destroy = function(err, cb) { + if (!cb) cb = noop + if (this.destroyed) return cb(null) + this.destroyed = true -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); + var self = this + process.nextTick(function() { + self._destroy(err) + cb(null) + }) } -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - const {namespace: name, useColors} = this; +Duplexify.prototype._destroy = function(err) { + if (err) { + var ondrain = this._ondrain + this._ondrain = null + if (ondrain) ondrain(err) + else this.emit('error', err) + } - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; + if (this._forwardDestroy) { + if (this._readable && this._readable.destroy) this._readable.destroy() + if (this._writable && this._writable.destroy) this._writable.destroy() + } - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } + this.emit('close') } -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; -} +Duplexify.prototype._write = function(data, enc, cb) { + if (this.destroyed) return + if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb)) + if (data === SIGNAL_FLUSH) return this._finish(cb) + if (!this._writable) return cb() -/** - * Invokes `util.format()` with the specified arguments and writes to stderr. - */ + if (this._writable.write(data) === false) this._ondrain = cb + else if (!this.destroyed) cb() +} -function log(...args) { - return process.stderr.write(util.format(...args) + '\n'); +Duplexify.prototype._finish = function(cb) { + var self = this + this.emit('preend') + onuncork(this, function() { + end(self._forwardEnd && self._writable, function() { + // haxx to not emit prefinish twice + if (self._writableState.prefinished === false) self._writableState.prefinished = true + self.emit('prefinish') + onuncork(self, cb) + }) + }) } -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } +Duplexify.prototype.end = function(data, enc, cb) { + if (typeof data === 'function') return this.end(null, null, data) + if (typeof enc === 'function') return this.end(data, null, enc) + this._ended = true + if (data) this.write(data) + if (!this._writableState.ending && !this._writableState.destroyed) this.write(SIGNAL_FLUSH) + return stream.Writable.prototype.end.call(this, cb) } -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ +module.exports = Duplexify -function load() { - return process.env.DEBUG; -} -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ +/***/ }), -function init(debug) { - debug.inspectOpts = {}; +/***/ 1728: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} +"use strict"; -module.exports = __nccwpck_require__(6243)(exports); -const {formatters} = module.exports; +var Buffer = (__nccwpck_require__(1867).Buffer); -/** - * Map %o to `util.inspect()`, all on a single line. - */ +var getParamBytesForAlg = __nccwpck_require__(528); -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; +var MAX_OCTET = 0x80, + CLASS_UNIVERSAL = 0, + PRIMITIVE_BIT = 0x20, + TAG_SEQ = 0x10, + TAG_INT = 0x02, + ENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6), + ENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6); -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ +function base64Url(base64) { + return base64 + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); +} -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; +function signatureAsBuffer(signature) { + if (Buffer.isBuffer(signature)) { + return signature; + } else if ('string' === typeof signature) { + return Buffer.from(signature, 'base64'); + } + throw new TypeError('ECDSA signature must be a Base64 string or a Buffer'); +} -/***/ }), +function derToJose(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { + // the DER encoded param should at most be the param size, plus a padding + // zero, since due to being a signed integer + var maxEncodedParamLength = paramBytes + 1; -"use strict"; + var inputLength = signature.length; + var offset = 0; + if (signature[offset++] !== ENCODED_TAG_SEQ) { + throw new Error('Could not find expected "seq"'); + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + var seqLength = signature[offset++]; + if (seqLength === (MAX_OCTET | 1)) { + seqLength = signature[offset++]; + } -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) + if (inputLength - offset < seqLength) { + throw new Error('"seq" specified length of "' + seqLength + '", only "' + (inputLength - offset) + '" remaining'); + } - /* istanbul ignore next */ + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "r"'); + } - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } + var rLength = signature[offset++]; - this.name = 'Deprecation'; - } + if (inputLength - offset - 2 < rLength) { + throw new Error('"r" specified length of "' + rLength + '", only "' + (inputLength - offset - 2) + '" available'); + } -} + if (maxEncodedParamLength < rLength) { + throw new Error('"r" specified length of "' + rLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } -exports.Deprecation = Deprecation; + var rOffset = offset; + offset += rLength; + if (signature[offset++] !== ENCODED_TAG_INT) { + throw new Error('Could not find expected "int" for "s"'); + } -/***/ }), + var sLength = signature[offset++]; -/***/ 2738: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (inputLength - offset !== sLength) { + throw new Error('"s" specified length of "' + sLength + '", expected "' + (inputLength - offset) + '"'); + } -"use strict"; + if (maxEncodedParamLength < sLength) { + throw new Error('"s" specified length of "' + sLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); + } -const path = __nccwpck_require__(1017); -const pathType = __nccwpck_require__(3433); + var sOffset = offset; + offset += sLength; -const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; + if (offset !== inputLength) { + throw new Error('Expected to consume entire buffer, but "' + (inputLength - offset) + '" bytes remain'); + } -const getPath = (filepath, cwd) => { - const pth = filepath[0] === '!' ? filepath.slice(1) : filepath; - return path.isAbsolute(pth) ? pth : path.join(cwd, pth); -}; + var rPadding = paramBytes - rLength, + sPadding = paramBytes - sLength; -const addExtensions = (file, extensions) => { - if (path.extname(file)) { - return `**/${file}`; + var dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength); + + for (offset = 0; offset < rPadding; ++offset) { + dst[offset] = 0; } + signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength); - return `**/${file}.${getExtensions(extensions)}`; -}; + offset = paramBytes; -const getGlob = (directory, options) => { - if (options.files && !Array.isArray(options.files)) { - throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``); + for (var o = offset; offset < o + sPadding; ++offset) { + dst[offset] = 0; } + signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength); - if (options.extensions && !Array.isArray(options.extensions)) { - throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``); - } + dst = dst.toString('base64'); + dst = base64Url(dst); - if (options.files && options.extensions) { - return options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions))); - } + return dst; +} - if (options.files) { - return options.files.map(x => path.posix.join(directory, `**/${x}`)); +function countPadding(buf, start, stop) { + var padding = 0; + while (start + padding < stop && buf[start + padding] === 0) { + ++padding; } - if (options.extensions) { - return [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)]; + var needsSign = buf[start + padding] >= MAX_OCTET; + if (needsSign) { + --padding; } - return [path.posix.join(directory, '**')]; -}; + return padding; +} -module.exports = async (input, options) => { - options = { - cwd: process.cwd(), - ...options - }; +function joseToDer(signature, alg) { + signature = signatureAsBuffer(signature); + var paramBytes = getParamBytesForAlg(alg); - if (typeof options.cwd !== 'string') { - throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + var signatureBytes = signature.length; + if (signatureBytes !== paramBytes * 2) { + throw new TypeError('"' + alg + '" signatures must be "' + paramBytes * 2 + '" bytes, saw "' + signatureBytes + '"'); } - const globs = await Promise.all([].concat(input).map(async x => { - const isDirectory = await pathType.isDirectory(getPath(x, options.cwd)); - return isDirectory ? getGlob(x, options) : x; - })); + var rPadding = countPadding(signature, 0, paramBytes); + var sPadding = countPadding(signature, paramBytes, signature.length); + var rLength = paramBytes - rPadding; + var sLength = paramBytes - sPadding; - return [].concat.apply([], globs); // eslint-disable-line prefer-spread -}; + var rsBytes = 1 + 1 + rLength + 1 + 1 + sLength; -module.exports.sync = (input, options) => { - options = { - cwd: process.cwd(), - ...options - }; + var shortLength = rsBytes < MAX_OCTET; - if (typeof options.cwd !== 'string') { - throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + var dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes); + + var offset = 0; + dst[offset++] = ENCODED_TAG_SEQ; + if (shortLength) { + // Bit 8 has value "0" + // bits 7-1 give the length. + dst[offset++] = rsBytes; + } else { + // Bit 8 of first octet has value "1" + // bits 7-1 give the number of additional length octets. + dst[offset++] = MAX_OCTET | 1; + // length, base 256 + dst[offset++] = rsBytes & 0xff; + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = rLength; + if (rPadding < 0) { + dst[offset++] = 0; + offset += signature.copy(dst, offset, 0, paramBytes); + } else { + offset += signature.copy(dst, offset, rPadding, paramBytes); + } + dst[offset++] = ENCODED_TAG_INT; + dst[offset++] = sLength; + if (sPadding < 0) { + dst[offset++] = 0; + signature.copy(dst, offset, paramBytes); + } else { + signature.copy(dst, offset, paramBytes + sPadding); } - const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x); + return dst; +} - return [].concat.apply([], globs); // eslint-disable-line prefer-spread +module.exports = { + derToJose: derToJose, + joseToDer: joseToDer }; /***/ }), -/***/ 2042: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 528: +/***/ ((module) => { "use strict"; -const isObj = __nccwpck_require__(1389); - -const disallowedKeys = [ - '__proto__', - 'prototype', - 'constructor' -]; - -const isValidPath = pathSegments => !pathSegments.some(segment => disallowedKeys.includes(segment)); - -function getPathSegments(path) { - const pathArray = path.split('.'); - const parts = []; - - for (let i = 0; i < pathArray.length; i++) { - let p = pathArray[i]; - while (p[p.length - 1] === '\\' && pathArray[i + 1] !== undefined) { - p = p.slice(0, -1) + '.'; - p += pathArray[++i]; - } +function getParamSize(keySize) { + var result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1); + return result; +} - parts.push(p); - } +var paramBytesForAlg = { + ES256: getParamSize(256), + ES384: getParamSize(384), + ES512: getParamSize(521) +}; - if (!isValidPath(parts)) { - return []; +function getParamBytesForAlg(alg) { + var paramBytes = paramBytesForAlg[alg]; + if (paramBytes) { + return paramBytes; } - return parts; + throw new Error('Unknown algorithm "' + alg + '"'); } -module.exports = { - get(object, path, value) { - if (!isObj(object) || typeof path !== 'string') { - return value === undefined ? object : value; - } - - const pathArray = getPathSegments(path); - if (pathArray.length === 0) { - return; - } - - for (let i = 0; i < pathArray.length; i++) { - if (!Object.prototype.propertyIsEnumerable.call(object, pathArray[i])) { - return value; - } +module.exports = getParamBytesForAlg; - object = object[pathArray[i]]; - if (object === undefined || object === null) { - // `object` is either `undefined` or `null` so we want to stop the loop, and - // if this is not the last bit of the path, and - // if it did't return `undefined` - // it would return `null` if `object` is `null` - // but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null` - if (i !== pathArray.length - 1) { - return value; - } +/***/ }), - break; - } - } +/***/ 1205: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - return object; - }, +var once = __nccwpck_require__(1223); - set(object, path, value) { - if (!isObj(object) || typeof path !== 'string') { - return object; - } +var noop = function() {}; - const root = object; - const pathArray = getPathSegments(path); +var isRequest = function(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +}; - for (let i = 0; i < pathArray.length; i++) { - const p = pathArray[i]; +var isChildProcess = function(stream) { + return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +}; - if (!isObj(object[p])) { - object[p] = {}; - } +var eos = function(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; - if (i === pathArray.length - 1) { - object[p] = value; - } + callback = once(callback || noop); - object = object[p]; - } + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + var cancelled = false; - return root; - }, + var onlegacyfinish = function() { + if (!stream.writable) onfinish(); + }; - delete(object, path) { - if (!isObj(object) || typeof path !== 'string') { - return false; - } + var onfinish = function() { + writable = false; + if (!readable) callback.call(stream); + }; - const pathArray = getPathSegments(path); + var onend = function() { + readable = false; + if (!writable) callback.call(stream); + }; - for (let i = 0; i < pathArray.length; i++) { - const p = pathArray[i]; + var onexit = function(exitCode) { + callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); + }; - if (i === pathArray.length - 1) { - delete object[p]; - return true; - } + var onerror = function(err) { + callback.call(stream, err); + }; - object = object[p]; + var onclose = function() { + process.nextTick(onclosenexttick); + }; - if (!isObj(object)) { - return false; - } - } - }, + var onclosenexttick = function() { + if (cancelled) return; + if (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close')); + if (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close')); + }; - has(object, path) { - if (!isObj(object) || typeof path !== 'string') { - return false; - } + var onrequest = function() { + stream.req.on('finish', onfinish); + }; - const pathArray = getPathSegments(path); - if (pathArray.length === 0) { - return false; - } + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest(); + else stream.on('request', onrequest); + } else if (writable && !ws) { // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } - // eslint-disable-next-line unicorn/no-for-loop - for (let i = 0; i < pathArray.length; i++) { - if (isObj(object)) { - if (!(pathArray[i] in object)) { - return false; - } + if (isChildProcess(stream)) stream.on('exit', onexit); - object = object[pathArray[i]]; - } else { - return false; - } - } + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); - return true; - } + return function() { + cancelled = true; + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('exit', onexit); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; }; +module.exports = eos; + /***/ }), -/***/ 6599: +/***/ 5771: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -var stream = __nccwpck_require__(1642) -var eos = __nccwpck_require__(1205) -var inherits = __nccwpck_require__(4124) -var shift = __nccwpck_require__(6121) - -var SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from) - ? Buffer.from([0]) - : new Buffer([0]) - -var onuncork = function(self, fn) { - if (self._corked) self.once('uncork', fn) - else fn() -} +var punycode = __nccwpck_require__(5477); +var entities = __nccwpck_require__(2077); -var autoDestroy = function (self, err) { - if (self._autoDestroy) self.destroy(err) -} +module.exports = decode; -var destroyer = function(self, end) { - return function(err) { - if (err) autoDestroy(self, err.message === 'premature close' ? null : err) - else if (end && !self._ended) self.end() - } -} +function decode (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a String'); + } -var end = function(ws, fn) { - if (!ws) return fn() - if (ws._writableState && ws._writableState.finished) return fn() - if (ws._writableState) return ws.end(fn) - ws.end() - fn() -} - -var noop = function() {} + return str.replace(/&(#?[^;\W]+;?)/g, function (_, match) { + var m; + if (m = /^#(\d+);?$/.exec(match)) { + return punycode.ucs2.encode([ parseInt(m[1], 10) ]); + } else if (m = /^#[Xx]([A-Fa-f0-9]+);?/.exec(match)) { + return punycode.ucs2.encode([ parseInt(m[1], 16) ]); + } else { + // named entity + var hasSemi = /;$/.test(match); + var withoutSemi = hasSemi ? match.replace(/;$/, '') : match; + var target = entities[withoutSemi] || (hasSemi && entities[match]); -var toStreams2 = function(rs) { - return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs) + if (typeof target === 'number') { + return punycode.ucs2.encode([ target ]); + } else if (typeof target === 'string') { + return target; + } else { + return '&' + match; + } + } + }); } -var Duplexify = function(writable, readable, opts) { - if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts) - stream.Duplex.call(this, opts) - this._writable = null - this._readable = null - this._readable2 = null +/***/ }), - this._autoDestroy = !opts || opts.autoDestroy !== false - this._forwardDestroy = !opts || opts.destroy !== false - this._forwardEnd = !opts || opts.end !== false - this._corked = 1 // start corked - this._ondrain = null - this._drained = false - this._forwarding = false - this._unwrite = null - this._unread = null - this._ended = false +/***/ 6521: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - this.destroyed = false +var punycode = __nccwpck_require__(5477); +var revEntities = __nccwpck_require__(3123); - if (writable) this.setWritable(writable) - if (readable) this.setReadable(readable) -} +module.exports = encode; -inherits(Duplexify, stream.Duplex) +function encode (str, opts) { + if (typeof str !== 'string') { + throw new TypeError('Expected a String'); + } + if (!opts) opts = {}; -Duplexify.obj = function(writable, readable, opts) { - if (!opts) opts = {} - opts.objectMode = true - opts.highWaterMark = 16 - return new Duplexify(writable, readable, opts) -} + var numeric = true; + if (opts.named) numeric = false; + if (opts.numeric !== undefined) numeric = opts.numeric; -Duplexify.prototype.cork = function() { - if (++this._corked === 1) this.emit('cork') -} + var special = opts.special || { + '"': true, "'": true, + '<': true, '>': true, + '&': true + }; -Duplexify.prototype.uncork = function() { - if (this._corked && --this._corked === 0) this.emit('uncork') + var codePoints = punycode.ucs2.decode(str); + var chars = []; + for (var i = 0; i < codePoints.length; i++) { + var cc = codePoints[i]; + var c = punycode.ucs2.encode([ cc ]); + var e = revEntities[cc]; + if (e && (cc >= 127 || special[c]) && !numeric) { + chars.push('&' + (/;$/.test(e) ? e : e + ';')); + } + else if (cc < 32 || cc >= 127 || special[c]) { + chars.push('&#' + cc + ';'); + } + else { + chars.push(c); + } + } + return chars.join(''); } -Duplexify.prototype.setWritable = function(writable) { - if (this._unwrite) this._unwrite() - if (this.destroyed) { - if (writable && writable.destroy) writable.destroy() - return - } +/***/ }), - if (writable === null || writable === false) { - this.end() - return - } +/***/ 1151: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - var self = this - var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd)) +exports.encode = __nccwpck_require__(6521); +exports.decode = __nccwpck_require__(5771); - var ondrain = function() { - var ondrain = self._ondrain - self._ondrain = null - if (ondrain) ondrain() - } - var clear = function() { - self._writable.removeListener('drain', ondrain) - unend() - } +/***/ }), - if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks +/***/ 4697: +/***/ ((module, exports) => { - this._writable = writable - this._writable.on('drain', ondrain) - this._unwrite = clear +"use strict"; +/** + * @author Toru Nagashima + * @copyright 2015 Toru Nagashima. All rights reserved. + * See LICENSE file in root directory for full license. + */ - this.uncork() // always uncork setWritable -} -Duplexify.prototype.setReadable = function(readable) { - if (this._unread) this._unread() +Object.defineProperty(exports, "__esModule", ({ value: true })); - if (this.destroyed) { - if (readable && readable.destroy) readable.destroy() - return - } +/** + * @typedef {object} PrivateData + * @property {EventTarget} eventTarget The event target. + * @property {{type:string}} event The original event object. + * @property {number} eventPhase The current event phase. + * @property {EventTarget|null} currentTarget The current event target. + * @property {boolean} canceled The flag to prevent default. + * @property {boolean} stopped The flag to stop propagation. + * @property {boolean} immediateStopped The flag to stop propagation immediately. + * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null. + * @property {number} timeStamp The unix time. + * @private + */ - if (readable === null || readable === false) { - this.push(null) - this.resume() - return - } +/** + * Private data for event wrappers. + * @type {WeakMap} + * @private + */ +const privateData = new WeakMap(); - var self = this - var unend = eos(readable, {writable:false, readable:true}, destroyer(this)) +/** + * Cache for wrapper classes. + * @type {WeakMap} + * @private + */ +const wrappers = new WeakMap(); - var onreadable = function() { - self._forward() - } +/** + * Get private data. + * @param {Event} event The event object to get private data. + * @returns {PrivateData} The private data of the event. + * @private + */ +function pd(event) { + const retv = privateData.get(event); + console.assert( + retv != null, + "'this' is expected an Event object, but got", + event + ); + return retv +} - var onend = function() { - self.push(null) - } +/** + * https://dom.spec.whatwg.org/#set-the-canceled-flag + * @param data {PrivateData} private data. + */ +function setCancelFlag(data) { + if (data.passiveListener != null) { + if ( + typeof console !== "undefined" && + typeof console.error === "function" + ) { + console.error( + "Unable to preventDefault inside passive event listener invocation.", + data.passiveListener + ); + } + return + } + if (!data.event.cancelable) { + return + } - var clear = function() { - self._readable2.removeListener('readable', onreadable) - self._readable2.removeListener('end', onend) - unend() - } + data.canceled = true; + if (typeof data.event.preventDefault === "function") { + data.event.preventDefault(); + } +} - this._drained = true - this._readable = readable - this._readable2 = readable._readableState ? readable : toStreams2(readable) - this._readable2.on('readable', onreadable) - this._readable2.on('end', onend) - this._unread = clear +/** + * @see https://dom.spec.whatwg.org/#interface-event + * @private + */ +/** + * The event wrapper. + * @constructor + * @param {EventTarget} eventTarget The event target of this dispatching. + * @param {Event|{type:string}} event The original event to wrap. + */ +function Event(eventTarget, event) { + privateData.set(this, { + eventTarget, + event, + eventPhase: 2, + currentTarget: eventTarget, + canceled: false, + stopped: false, + immediateStopped: false, + passiveListener: null, + timeStamp: event.timeStamp || Date.now(), + }); - this._forward() -} + // https://heycam.github.io/webidl/#Unforgeable + Object.defineProperty(this, "isTrusted", { value: false, enumerable: true }); -Duplexify.prototype._read = function() { - this._drained = true - this._forward() + // Define accessors + const keys = Object.keys(event); + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (!(key in this)) { + Object.defineProperty(this, key, defineRedirectDescriptor(key)); + } + } } -Duplexify.prototype._forward = function() { - if (this._forwarding || !this._readable2 || !this._drained) return - this._forwarding = true +// Should be enumerable, but class methods are not enumerable. +Event.prototype = { + /** + * The type of this event. + * @type {string} + */ + get type() { + return pd(this).event.type + }, - var data + /** + * The target of this event. + * @type {EventTarget} + */ + get target() { + return pd(this).eventTarget + }, - while (this._drained && (data = shift(this._readable2)) !== null) { - if (this.destroyed) continue - this._drained = this.push(data) - } + /** + * The target of this event. + * @type {EventTarget} + */ + get currentTarget() { + return pd(this).currentTarget + }, - this._forwarding = false -} + /** + * @returns {EventTarget[]} The composed path of this event. + */ + composedPath() { + const currentTarget = pd(this).currentTarget; + if (currentTarget == null) { + return [] + } + return [currentTarget] + }, -Duplexify.prototype.destroy = function(err, cb) { - if (!cb) cb = noop - if (this.destroyed) return cb(null) - this.destroyed = true + /** + * Constant of NONE. + * @type {number} + */ + get NONE() { + return 0 + }, - var self = this - process.nextTick(function() { - self._destroy(err) - cb(null) - }) -} + /** + * Constant of CAPTURING_PHASE. + * @type {number} + */ + get CAPTURING_PHASE() { + return 1 + }, -Duplexify.prototype._destroy = function(err) { - if (err) { - var ondrain = this._ondrain - this._ondrain = null - if (ondrain) ondrain(err) - else this.emit('error', err) - } + /** + * Constant of AT_TARGET. + * @type {number} + */ + get AT_TARGET() { + return 2 + }, - if (this._forwardDestroy) { - if (this._readable && this._readable.destroy) this._readable.destroy() - if (this._writable && this._writable.destroy) this._writable.destroy() - } + /** + * Constant of BUBBLING_PHASE. + * @type {number} + */ + get BUBBLING_PHASE() { + return 3 + }, - this.emit('close') -} + /** + * The target of this event. + * @type {number} + */ + get eventPhase() { + return pd(this).eventPhase + }, -Duplexify.prototype._write = function(data, enc, cb) { - if (this.destroyed) return - if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb)) - if (data === SIGNAL_FLUSH) return this._finish(cb) - if (!this._writable) return cb() + /** + * Stop event bubbling. + * @returns {void} + */ + stopPropagation() { + const data = pd(this); - if (this._writable.write(data) === false) this._ondrain = cb - else if (!this.destroyed) cb() -} + data.stopped = true; + if (typeof data.event.stopPropagation === "function") { + data.event.stopPropagation(); + } + }, -Duplexify.prototype._finish = function(cb) { - var self = this - this.emit('preend') - onuncork(this, function() { - end(self._forwardEnd && self._writable, function() { - // haxx to not emit prefinish twice - if (self._writableState.prefinished === false) self._writableState.prefinished = true - self.emit('prefinish') - onuncork(self, cb) - }) - }) -} + /** + * Stop event bubbling. + * @returns {void} + */ + stopImmediatePropagation() { + const data = pd(this); -Duplexify.prototype.end = function(data, enc, cb) { - if (typeof data === 'function') return this.end(null, null, data) - if (typeof enc === 'function') return this.end(data, null, enc) - this._ended = true - if (data) this.write(data) - if (!this._writableState.ending && !this._writableState.destroyed) this.write(SIGNAL_FLUSH) - return stream.Writable.prototype.end.call(this, cb) -} + data.stopped = true; + data.immediateStopped = true; + if (typeof data.event.stopImmediatePropagation === "function") { + data.event.stopImmediatePropagation(); + } + }, -module.exports = Duplexify + /** + * The flag to be bubbling. + * @type {boolean} + */ + get bubbles() { + return Boolean(pd(this).event.bubbles) + }, + /** + * The flag to be cancelable. + * @type {boolean} + */ + get cancelable() { + return Boolean(pd(this).event.cancelable) + }, -/***/ }), + /** + * Cancel this event. + * @returns {void} + */ + preventDefault() { + setCancelFlag(pd(this)); + }, -/***/ 1728: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + /** + * The flag to indicate cancellation state. + * @type {boolean} + */ + get defaultPrevented() { + return pd(this).canceled + }, -"use strict"; + /** + * The flag to be composed. + * @type {boolean} + */ + get composed() { + return Boolean(pd(this).event.composed) + }, + /** + * The unix time of this event. + * @type {number} + */ + get timeStamp() { + return pd(this).timeStamp + }, -var Buffer = (__nccwpck_require__(1867).Buffer); + /** + * The target of this event. + * @type {EventTarget} + * @deprecated + */ + get srcElement() { + return pd(this).eventTarget + }, -var getParamBytesForAlg = __nccwpck_require__(528); + /** + * The flag to stop event bubbling. + * @type {boolean} + * @deprecated + */ + get cancelBubble() { + return pd(this).stopped + }, + set cancelBubble(value) { + if (!value) { + return + } + const data = pd(this); -var MAX_OCTET = 0x80, - CLASS_UNIVERSAL = 0, - PRIMITIVE_BIT = 0x20, - TAG_SEQ = 0x10, - TAG_INT = 0x02, - ENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6), - ENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6); + data.stopped = true; + if (typeof data.event.cancelBubble === "boolean") { + data.event.cancelBubble = true; + } + }, -function base64Url(base64) { - return base64 - .replace(/=/g, '') - .replace(/\+/g, '-') - .replace(/\//g, '_'); -} - -function signatureAsBuffer(signature) { - if (Buffer.isBuffer(signature)) { - return signature; - } else if ('string' === typeof signature) { - return Buffer.from(signature, 'base64'); - } - - throw new TypeError('ECDSA signature must be a Base64 string or a Buffer'); -} - -function derToJose(signature, alg) { - signature = signatureAsBuffer(signature); - var paramBytes = getParamBytesForAlg(alg); - - // the DER encoded param should at most be the param size, plus a padding - // zero, since due to being a signed integer - var maxEncodedParamLength = paramBytes + 1; - - var inputLength = signature.length; - - var offset = 0; - if (signature[offset++] !== ENCODED_TAG_SEQ) { - throw new Error('Could not find expected "seq"'); - } - - var seqLength = signature[offset++]; - if (seqLength === (MAX_OCTET | 1)) { - seqLength = signature[offset++]; - } - - if (inputLength - offset < seqLength) { - throw new Error('"seq" specified length of "' + seqLength + '", only "' + (inputLength - offset) + '" remaining'); - } - - if (signature[offset++] !== ENCODED_TAG_INT) { - throw new Error('Could not find expected "int" for "r"'); - } - - var rLength = signature[offset++]; - - if (inputLength - offset - 2 < rLength) { - throw new Error('"r" specified length of "' + rLength + '", only "' + (inputLength - offset - 2) + '" available'); - } - - if (maxEncodedParamLength < rLength) { - throw new Error('"r" specified length of "' + rLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); - } - - var rOffset = offset; - offset += rLength; - - if (signature[offset++] !== ENCODED_TAG_INT) { - throw new Error('Could not find expected "int" for "s"'); - } - - var sLength = signature[offset++]; + /** + * The flag to indicate cancellation state. + * @type {boolean} + * @deprecated + */ + get returnValue() { + return !pd(this).canceled + }, + set returnValue(value) { + if (!value) { + setCancelFlag(pd(this)); + } + }, - if (inputLength - offset !== sLength) { - throw new Error('"s" specified length of "' + sLength + '", expected "' + (inputLength - offset) + '"'); - } + /** + * Initialize this event object. But do nothing under event dispatching. + * @param {string} type The event type. + * @param {boolean} [bubbles=false] The flag to be possible to bubble up. + * @param {boolean} [cancelable=false] The flag to be possible to cancel. + * @deprecated + */ + initEvent() { + // Do nothing. + }, +}; - if (maxEncodedParamLength < sLength) { - throw new Error('"s" specified length of "' + sLength + '", max of "' + maxEncodedParamLength + '" is acceptable'); - } +// `constructor` is not enumerable. +Object.defineProperty(Event.prototype, "constructor", { + value: Event, + configurable: true, + writable: true, +}); - var sOffset = offset; - offset += sLength; +// Ensure `event instanceof window.Event` is `true`. +if (typeof window !== "undefined" && typeof window.Event !== "undefined") { + Object.setPrototypeOf(Event.prototype, window.Event.prototype); - if (offset !== inputLength) { - throw new Error('Expected to consume entire buffer, but "' + (inputLength - offset) + '" bytes remain'); - } + // Make association for wrappers. + wrappers.set(window.Event.prototype, Event); +} - var rPadding = paramBytes - rLength, - sPadding = paramBytes - sLength; +/** + * Get the property descriptor to redirect a given property. + * @param {string} key Property name to define property descriptor. + * @returns {PropertyDescriptor} The property descriptor to redirect the property. + * @private + */ +function defineRedirectDescriptor(key) { + return { + get() { + return pd(this).event[key] + }, + set(value) { + pd(this).event[key] = value; + }, + configurable: true, + enumerable: true, + } +} - var dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength); +/** + * Get the property descriptor to call a given method property. + * @param {string} key Property name to define property descriptor. + * @returns {PropertyDescriptor} The property descriptor to call the method property. + * @private + */ +function defineCallDescriptor(key) { + return { + value() { + const event = pd(this).event; + return event[key].apply(event, arguments) + }, + configurable: true, + enumerable: true, + } +} - for (offset = 0; offset < rPadding; ++offset) { - dst[offset] = 0; - } - signature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength); +/** + * Define new wrapper class. + * @param {Function} BaseEvent The base wrapper class. + * @param {Object} proto The prototype of the original event. + * @returns {Function} The defined wrapper class. + * @private + */ +function defineWrapper(BaseEvent, proto) { + const keys = Object.keys(proto); + if (keys.length === 0) { + return BaseEvent + } - offset = paramBytes; + /** CustomEvent */ + function CustomEvent(eventTarget, event) { + BaseEvent.call(this, eventTarget, event); + } - for (var o = offset; offset < o + sPadding; ++offset) { - dst[offset] = 0; - } - signature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength); + CustomEvent.prototype = Object.create(BaseEvent.prototype, { + constructor: { value: CustomEvent, configurable: true, writable: true }, + }); - dst = dst.toString('base64'); - dst = base64Url(dst); + // Define accessors. + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (!(key in BaseEvent.prototype)) { + const descriptor = Object.getOwnPropertyDescriptor(proto, key); + const isFunc = typeof descriptor.value === "function"; + Object.defineProperty( + CustomEvent.prototype, + key, + isFunc + ? defineCallDescriptor(key) + : defineRedirectDescriptor(key) + ); + } + } - return dst; + return CustomEvent } -function countPadding(buf, start, stop) { - var padding = 0; - while (start + padding < stop && buf[start + padding] === 0) { - ++padding; - } +/** + * Get the wrapper class of a given prototype. + * @param {Object} proto The prototype of the original event to get its wrapper. + * @returns {Function} The wrapper class. + * @private + */ +function getWrapper(proto) { + if (proto == null || proto === Object.prototype) { + return Event + } - var needsSign = buf[start + padding] >= MAX_OCTET; - if (needsSign) { - --padding; - } + let wrapper = wrappers.get(proto); + if (wrapper == null) { + wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto); + wrappers.set(proto, wrapper); + } + return wrapper +} - return padding; +/** + * Wrap a given event to management a dispatching. + * @param {EventTarget} eventTarget The event target of this dispatching. + * @param {Object} event The event to wrap. + * @returns {Event} The wrapper instance. + * @private + */ +function wrapEvent(eventTarget, event) { + const Wrapper = getWrapper(Object.getPrototypeOf(event)); + return new Wrapper(eventTarget, event) } -function joseToDer(signature, alg) { - signature = signatureAsBuffer(signature); - var paramBytes = getParamBytesForAlg(alg); +/** + * Get the immediateStopped flag of a given event. + * @param {Event} event The event to get. + * @returns {boolean} The flag to stop propagation immediately. + * @private + */ +function isStopped(event) { + return pd(event).immediateStopped +} - var signatureBytes = signature.length; - if (signatureBytes !== paramBytes * 2) { - throw new TypeError('"' + alg + '" signatures must be "' + paramBytes * 2 + '" bytes, saw "' + signatureBytes + '"'); - } +/** + * Set the current event phase of a given event. + * @param {Event} event The event to set current target. + * @param {number} eventPhase New event phase. + * @returns {void} + * @private + */ +function setEventPhase(event, eventPhase) { + pd(event).eventPhase = eventPhase; +} - var rPadding = countPadding(signature, 0, paramBytes); - var sPadding = countPadding(signature, paramBytes, signature.length); - var rLength = paramBytes - rPadding; - var sLength = paramBytes - sPadding; +/** + * Set the current target of a given event. + * @param {Event} event The event to set current target. + * @param {EventTarget|null} currentTarget New current target. + * @returns {void} + * @private + */ +function setCurrentTarget(event, currentTarget) { + pd(event).currentTarget = currentTarget; +} - var rsBytes = 1 + 1 + rLength + 1 + 1 + sLength; +/** + * Set a passive listener of a given event. + * @param {Event} event The event to set current target. + * @param {Function|null} passiveListener New passive listener. + * @returns {void} + * @private + */ +function setPassiveListener(event, passiveListener) { + pd(event).passiveListener = passiveListener; +} - var shortLength = rsBytes < MAX_OCTET; +/** + * @typedef {object} ListenerNode + * @property {Function} listener + * @property {1|2|3} listenerType + * @property {boolean} passive + * @property {boolean} once + * @property {ListenerNode|null} next + * @private + */ - var dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes); +/** + * @type {WeakMap>} + * @private + */ +const listenersMap = new WeakMap(); - var offset = 0; - dst[offset++] = ENCODED_TAG_SEQ; - if (shortLength) { - // Bit 8 has value "0" - // bits 7-1 give the length. - dst[offset++] = rsBytes; - } else { - // Bit 8 of first octet has value "1" - // bits 7-1 give the number of additional length octets. - dst[offset++] = MAX_OCTET | 1; - // length, base 256 - dst[offset++] = rsBytes & 0xff; - } - dst[offset++] = ENCODED_TAG_INT; - dst[offset++] = rLength; - if (rPadding < 0) { - dst[offset++] = 0; - offset += signature.copy(dst, offset, 0, paramBytes); - } else { - offset += signature.copy(dst, offset, rPadding, paramBytes); - } - dst[offset++] = ENCODED_TAG_INT; - dst[offset++] = sLength; - if (sPadding < 0) { - dst[offset++] = 0; - signature.copy(dst, offset, paramBytes); - } else { - signature.copy(dst, offset, paramBytes + sPadding); - } +// Listener types +const CAPTURE = 1; +const BUBBLE = 2; +const ATTRIBUTE = 3; - return dst; +/** + * Check whether a given value is an object or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is an object. + */ +function isObject(x) { + return x !== null && typeof x === "object" //eslint-disable-line no-restricted-syntax } -module.exports = { - derToJose: derToJose, - joseToDer: joseToDer -}; - +/** + * Get listeners. + * @param {EventTarget} eventTarget The event target to get. + * @returns {Map} The listeners. + * @private + */ +function getListeners(eventTarget) { + const listeners = listenersMap.get(eventTarget); + if (listeners == null) { + throw new TypeError( + "'this' is expected an EventTarget object, but got another value." + ) + } + return listeners +} -/***/ }), +/** + * Get the property descriptor for the event attribute of a given event. + * @param {string} eventName The event name to get property descriptor. + * @returns {PropertyDescriptor} The property descriptor. + * @private + */ +function defineEventAttributeDescriptor(eventName) { + return { + get() { + const listeners = getListeners(this); + let node = listeners.get(eventName); + while (node != null) { + if (node.listenerType === ATTRIBUTE) { + return node.listener + } + node = node.next; + } + return null + }, -/***/ 528: -/***/ ((module) => { + set(listener) { + if (typeof listener !== "function" && !isObject(listener)) { + listener = null; // eslint-disable-line no-param-reassign + } + const listeners = getListeners(this); -"use strict"; + // Traverse to the tail while removing old value. + let prev = null; + let node = listeners.get(eventName); + while (node != null) { + if (node.listenerType === ATTRIBUTE) { + // Remove old value. + if (prev !== null) { + prev.next = node.next; + } else if (node.next !== null) { + listeners.set(eventName, node.next); + } else { + listeners.delete(eventName); + } + } else { + prev = node; + } + node = node.next; + } -function getParamSize(keySize) { - var result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1); - return result; + // Add new value. + if (listener !== null) { + const newNode = { + listener, + listenerType: ATTRIBUTE, + passive: false, + once: false, + next: null, + }; + if (prev === null) { + listeners.set(eventName, newNode); + } else { + prev.next = newNode; + } + } + }, + configurable: true, + enumerable: true, + } } -var paramBytesForAlg = { - ES256: getParamSize(256), - ES384: getParamSize(384), - ES512: getParamSize(521) -}; - -function getParamBytesForAlg(alg) { - var paramBytes = paramBytesForAlg[alg]; - if (paramBytes) { - return paramBytes; - } - - throw new Error('Unknown algorithm "' + alg + '"'); +/** + * Define an event attribute (e.g. `eventTarget.onclick`). + * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite. + * @param {string} eventName The event name to define. + * @returns {void} + */ +function defineEventAttribute(eventTargetPrototype, eventName) { + Object.defineProperty( + eventTargetPrototype, + `on${eventName}`, + defineEventAttributeDescriptor(eventName) + ); } -module.exports = getParamBytesForAlg; - - -/***/ }), +/** + * Define a custom EventTarget with event attributes. + * @param {string[]} eventNames Event names for event attributes. + * @returns {EventTarget} The custom EventTarget. + * @private + */ +function defineCustomEventTarget(eventNames) { + /** CustomEventTarget */ + function CustomEventTarget() { + EventTarget.call(this); + } -/***/ 1205: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + CustomEventTarget.prototype = Object.create(EventTarget.prototype, { + constructor: { + value: CustomEventTarget, + configurable: true, + writable: true, + }, + }); -var once = __nccwpck_require__(1223); + for (let i = 0; i < eventNames.length; ++i) { + defineEventAttribute(CustomEventTarget.prototype, eventNames[i]); + } -var noop = function() {}; + return CustomEventTarget +} -var isRequest = function(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -}; +/** + * EventTarget. + * + * - This is constructor if no arguments. + * - This is a function which returns a CustomEventTarget constructor if there are arguments. + * + * For example: + * + * class A extends EventTarget {} + * class B extends EventTarget("message") {} + * class C extends EventTarget("message", "error") {} + * class D extends EventTarget(["message", "error"]) {} + */ +function EventTarget() { + /*eslint-disable consistent-return */ + if (this instanceof EventTarget) { + listenersMap.set(this, new Map()); + return + } + if (arguments.length === 1 && Array.isArray(arguments[0])) { + return defineCustomEventTarget(arguments[0]) + } + if (arguments.length > 0) { + const types = new Array(arguments.length); + for (let i = 0; i < arguments.length; ++i) { + types[i] = arguments[i]; + } + return defineCustomEventTarget(types) + } + throw new TypeError("Cannot call a class as a function") + /*eslint-enable consistent-return */ +} -var isChildProcess = function(stream) { - return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 -}; +// Should be enumerable, but class methods are not enumerable. +EventTarget.prototype = { + /** + * Add a given listener to this event target. + * @param {string} eventName The event name to add. + * @param {Function} listener The listener to add. + * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. + * @returns {void} + */ + addEventListener(eventName, listener, options) { + if (listener == null) { + return + } + if (typeof listener !== "function" && !isObject(listener)) { + throw new TypeError("'listener' should be a function or an object.") + } -var eos = function(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; + const listeners = getListeners(this); + const optionsIsObj = isObject(options); + const capture = optionsIsObj + ? Boolean(options.capture) + : Boolean(options); + const listenerType = capture ? CAPTURE : BUBBLE; + const newNode = { + listener, + listenerType, + passive: optionsIsObj && Boolean(options.passive), + once: optionsIsObj && Boolean(options.once), + next: null, + }; - callback = once(callback || noop); + // Set it as the first node if the first node is null. + let node = listeners.get(eventName); + if (node === undefined) { + listeners.set(eventName, newNode); + return + } - var ws = stream._writableState; - var rs = stream._readableState; - var readable = opts.readable || (opts.readable !== false && stream.readable); - var writable = opts.writable || (opts.writable !== false && stream.writable); - var cancelled = false; + // Traverse to the tail while checking duplication.. + let prev = null; + while (node != null) { + if ( + node.listener === listener && + node.listenerType === listenerType + ) { + // Should ignore duplication. + return + } + prev = node; + node = node.next; + } - var onlegacyfinish = function() { - if (!stream.writable) onfinish(); - }; + // Add it. + prev.next = newNode; + }, - var onfinish = function() { - writable = false; - if (!readable) callback.call(stream); - }; + /** + * Remove a given listener from this event target. + * @param {string} eventName The event name to remove. + * @param {Function} listener The listener to remove. + * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. + * @returns {void} + */ + removeEventListener(eventName, listener, options) { + if (listener == null) { + return + } - var onend = function() { - readable = false; - if (!writable) callback.call(stream); - }; + const listeners = getListeners(this); + const capture = isObject(options) + ? Boolean(options.capture) + : Boolean(options); + const listenerType = capture ? CAPTURE : BUBBLE; - var onexit = function(exitCode) { - callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); - }; + let prev = null; + let node = listeners.get(eventName); + while (node != null) { + if ( + node.listener === listener && + node.listenerType === listenerType + ) { + if (prev !== null) { + prev.next = node.next; + } else if (node.next !== null) { + listeners.set(eventName, node.next); + } else { + listeners.delete(eventName); + } + return + } - var onerror = function(err) { - callback.call(stream, err); - }; + prev = node; + node = node.next; + } + }, - var onclose = function() { - process.nextTick(onclosenexttick); - }; + /** + * Dispatch a given event. + * @param {Event|{type:string}} event The event to dispatch. + * @returns {boolean} `false` if canceled. + */ + dispatchEvent(event) { + if (event == null || typeof event.type !== "string") { + throw new TypeError('"event.type" should be a string.') + } - var onclosenexttick = function() { - if (cancelled) return; - if (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close')); - if (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close')); - }; + // If listeners aren't registered, terminate. + const listeners = getListeners(this); + const eventName = event.type; + let node = listeners.get(eventName); + if (node == null) { + return true + } - var onrequest = function() { - stream.req.on('finish', onfinish); - }; + // Since we cannot rewrite several properties, so wrap object. + const wrappedEvent = wrapEvent(this, event); - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest(); - else stream.on('request', onrequest); - } else if (writable && !ws) { // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } + // This doesn't process capturing phase and bubbling phase. + // This isn't participating in a tree. + let prev = null; + while (node != null) { + // Remove this listener if it's once + if (node.once) { + if (prev !== null) { + prev.next = node.next; + } else if (node.next !== null) { + listeners.set(eventName, node.next); + } else { + listeners.delete(eventName); + } + } else { + prev = node; + } - if (isChildProcess(stream)) stream.on('exit', onexit); + // Call this listener + setPassiveListener( + wrappedEvent, + node.passive ? node.listener : null + ); + if (typeof node.listener === "function") { + try { + node.listener.call(this, wrappedEvent); + } catch (err) { + if ( + typeof console !== "undefined" && + typeof console.error === "function" + ) { + console.error(err); + } + } + } else if ( + node.listenerType !== ATTRIBUTE && + typeof node.listener.handleEvent === "function" + ) { + node.listener.handleEvent(wrappedEvent); + } - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); + // Break if `event.stopImmediatePropagation` was called. + if (isStopped(wrappedEvent)) { + break + } - return function() { - cancelled = true; - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('exit', onexit); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; + node = node.next; + } + setPassiveListener(wrappedEvent, null); + setEventPhase(wrappedEvent, 0); + setCurrentTarget(wrappedEvent, null); + + return !wrappedEvent.defaultPrevented + }, }; -module.exports = eos; +// `constructor` is not enumerable. +Object.defineProperty(EventTarget.prototype, "constructor", { + value: EventTarget, + configurable: true, + writable: true, +}); + +// Ensure `eventTarget instanceof window.EventTarget` is `true`. +if ( + typeof window !== "undefined" && + typeof window.EventTarget !== "undefined" +) { + Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype); +} + +exports.defineEventAttribute = defineEventAttribute; +exports.EventTarget = EventTarget; +exports["default"] = EventTarget; + +module.exports = EventTarget +module.exports.EventTarget = module.exports["default"] = EventTarget +module.exports.defineEventAttribute = defineEventAttribute +//# sourceMappingURL=event-target-shim.js.map /***/ }), -/***/ 5771: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 8171: +/***/ ((module) => { -var punycode = __nccwpck_require__(5477); -var entities = __nccwpck_require__(2077); +"use strict"; -module.exports = decode; -function decode (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a String'); - } +var hasOwn = Object.prototype.hasOwnProperty; +var toStr = Object.prototype.toString; +var defineProperty = Object.defineProperty; +var gOPD = Object.getOwnPropertyDescriptor; - return str.replace(/&(#?[^;\W]+;?)/g, function (_, match) { - var m; - if (m = /^#(\d+);?$/.exec(match)) { - return punycode.ucs2.encode([ parseInt(m[1], 10) ]); - } else if (m = /^#[Xx]([A-Fa-f0-9]+);?/.exec(match)) { - return punycode.ucs2.encode([ parseInt(m[1], 16) ]); - } else { - // named entity - var hasSemi = /;$/.test(match); - var withoutSemi = hasSemi ? match.replace(/;$/, '') : match; - var target = entities[withoutSemi] || (hasSemi && entities[match]); +var isArray = function isArray(arr) { + if (typeof Array.isArray === 'function') { + return Array.isArray(arr); + } - if (typeof target === 'number') { - return punycode.ucs2.encode([ target ]); - } else if (typeof target === 'string') { - return target; - } else { - return '&' + match; - } - } - }); -} + return toStr.call(arr) === '[object Array]'; +}; +var isPlainObject = function isPlainObject(obj) { + if (!obj || toStr.call(obj) !== '[object Object]') { + return false; + } -/***/ }), + var hasOwnConstructor = hasOwn.call(obj, 'constructor'); + var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); + // Not own constructor property must be Object + if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { + return false; + } -/***/ 6521: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + var key; + for (key in obj) { /**/ } -var punycode = __nccwpck_require__(5477); -var revEntities = __nccwpck_require__(3123); + return typeof key === 'undefined' || hasOwn.call(obj, key); +}; -module.exports = encode; +// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target +var setProperty = function setProperty(target, options) { + if (defineProperty && options.name === '__proto__') { + defineProperty(target, options.name, { + enumerable: true, + configurable: true, + value: options.newValue, + writable: true + }); + } else { + target[options.name] = options.newValue; + } +}; -function encode (str, opts) { - if (typeof str !== 'string') { - throw new TypeError('Expected a String'); - } - if (!opts) opts = {}; +// Return undefined instead of __proto__ if '__proto__' is not an own property +var getProperty = function getProperty(obj, name) { + if (name === '__proto__') { + if (!hasOwn.call(obj, name)) { + return void 0; + } else if (gOPD) { + // In early versions of node, obj['__proto__'] is buggy when obj has + // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. + return gOPD(obj, name).value; + } + } - var numeric = true; - if (opts.named) numeric = false; - if (opts.numeric !== undefined) numeric = opts.numeric; + return obj[name]; +}; - var special = opts.special || { - '"': true, "'": true, - '<': true, '>': true, - '&': true - }; +module.exports = function extend() { + var options, name, src, copy, copyIsArray, clone; + var target = arguments[0]; + var i = 1; + var length = arguments.length; + var deep = false; - var codePoints = punycode.ucs2.decode(str); - var chars = []; - for (var i = 0; i < codePoints.length; i++) { - var cc = codePoints[i]; - var c = punycode.ucs2.encode([ cc ]); - var e = revEntities[cc]; - if (e && (cc >= 127 || special[c]) && !numeric) { - chars.push('&' + (/;$/.test(e) ? e : e + ';')); - } - else if (cc < 32 || cc >= 127 || special[c]) { - chars.push('&#' + cc + ';'); - } - else { - chars.push(c); - } - } - return chars.join(''); -} + // Handle a deep copy situation + if (typeof target === 'boolean') { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { + target = {}; + } + for (; i < length; ++i) { + options = arguments[i]; + // Only deal with non-null/undefined values + if (options != null) { + // Extend the base object + for (name in options) { + src = getProperty(target, name); + copy = getProperty(options, name); -/***/ }), + // Prevent never-ending loop + if (target !== copy) { + // Recurse if we're merging plain objects or arrays + if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { + if (copyIsArray) { + copyIsArray = false; + clone = src && isArray(src) ? src : []; + } else { + clone = src && isPlainObject(src) ? src : {}; + } -/***/ 1151: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // Never move original objects, clone them + setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); -exports.encode = __nccwpck_require__(6521); -exports.decode = __nccwpck_require__(5771); + // Don't bring in undefined values + } else if (typeof copy !== 'undefined') { + setProperty(target, { name: name, newValue: copy }); + } + } + } + } + } + + // Return the modified object + return target; +}; /***/ }), -/***/ 4697: -/***/ ((module, exports) => { +/***/ 4460: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; -/** - * @author Toru Nagashima - * @copyright 2015 Toru Nagashima. All rights reserved. - * See LICENSE file in root directory for full license. - */ -Object.defineProperty(exports, "__esModule", ({ value: true })); +var isGlob = __nccwpck_require__(4466); +var pathPosixDirname = (__nccwpck_require__(1017).posix.dirname); +var isWin32 = (__nccwpck_require__(2037).platform)() === 'win32'; -/** - * @typedef {object} PrivateData - * @property {EventTarget} eventTarget The event target. - * @property {{type:string}} event The original event object. - * @property {number} eventPhase The current event phase. - * @property {EventTarget|null} currentTarget The current event target. - * @property {boolean} canceled The flag to prevent default. - * @property {boolean} stopped The flag to stop propagation. - * @property {boolean} immediateStopped The flag to stop propagation immediately. - * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null. - * @property {number} timeStamp The unix time. - * @private - */ +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; /** - * Private data for event wrappers. - * @type {WeakMap} - * @private + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} */ -const privateData = new WeakMap(); +module.exports = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); -/** - * Cache for wrapper classes. - * @type {WeakMap} - * @private - */ -const wrappers = new WeakMap(); + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } -/** - * Get private data. - * @param {Event} event The event object to get private data. - * @returns {PrivateData} The private data of the event. - * @private - */ -function pd(event) { - const retv = privateData.get(event); - console.assert( - retv != null, - "'this' is expected an Event object, but got", - event - ); - return retv -} + // special case for strings ending in enclosure containing path separator + if (enclosure.test(str)) { + str += slash; + } -/** - * https://dom.spec.whatwg.org/#set-the-canceled-flag - * @param data {PrivateData} private data. - */ -function setCancelFlag(data) { - if (data.passiveListener != null) { - if ( - typeof console !== "undefined" && - typeof console.error === "function" - ) { - console.error( - "Unable to preventDefault inside passive event listener invocation.", - data.passiveListener - ); - } - return - } - if (!data.event.cancelable) { - return - } + // preserves full path in case of trailing path separator + str += 'a'; - data.canceled = true; - if (typeof data.event.preventDefault === "function") { - data.event.preventDefault(); - } -} + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); -/** - * @see https://dom.spec.whatwg.org/#interface-event - * @private - */ -/** - * The event wrapper. - * @constructor - * @param {EventTarget} eventTarget The event target of this dispatching. - * @param {Event|{type:string}} event The original event to wrap. - */ -function Event(eventTarget, event) { - privateData.set(this, { - eventTarget, - event, - eventPhase: 2, - currentTarget: eventTarget, - canceled: false, - stopped: false, - immediateStopped: false, - passiveListener: null, - timeStamp: event.timeStamp || Date.now(), - }); + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; - // https://heycam.github.io/webidl/#Unforgeable - Object.defineProperty(this, "isTrusted", { value: false, enumerable: true }); - // Define accessors - const keys = Object.keys(event); - for (let i = 0; i < keys.length; ++i) { - const key = keys[i]; - if (!(key in this)) { - Object.defineProperty(this, key, defineRedirectDescriptor(key)); +/***/ }), + +/***/ 3664: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + +const taskManager = __nccwpck_require__(2708); +const async_1 = __nccwpck_require__(5679); +const stream_1 = __nccwpck_require__(4630); +const sync_1 = __nccwpck_require__(2405); +const settings_1 = __nccwpck_require__(952); +const utils = __nccwpck_require__(5444); +async function FastGlob(source, options) { + assertPatternsInput(source); + const works = getWorks(source, async_1.default, options); + const result = await Promise.all(works); + return utils.array.flatten(result); +} +// https://github.com/typescript-eslint/typescript-eslint/issues/60 +// eslint-disable-next-line no-redeclare +(function (FastGlob) { + FastGlob.glob = FastGlob; + FastGlob.globSync = sync; + FastGlob.globStream = stream; + FastGlob.async = FastGlob; + function sync(source, options) { + assertPatternsInput(source); + const works = getWorks(source, sync_1.default, options); + return utils.array.flatten(works); + } + FastGlob.sync = sync; + function stream(source, options) { + assertPatternsInput(source); + const works = getWorks(source, stream_1.default, options); + /** + * The stream returned by the provider cannot work with an asynchronous iterator. + * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. + * This affects performance (+25%). I don't see best solution right now. + */ + return utils.stream.merge(works); + } + FastGlob.stream = stream; + function generateTasks(source, options) { + assertPatternsInput(source); + const patterns = [].concat(source); + const settings = new settings_1.default(options); + return taskManager.generate(patterns, settings); + } + FastGlob.generateTasks = generateTasks; + function isDynamicPattern(source, options) { + assertPatternsInput(source); + const settings = new settings_1.default(options); + return utils.pattern.isDynamicPattern(source, settings); + } + FastGlob.isDynamicPattern = isDynamicPattern; + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escape(source); + } + FastGlob.escapePath = escapePath; + function convertPathToPattern(source) { + assertPatternsInput(source); + return utils.path.convertPathToPattern(source); + } + FastGlob.convertPathToPattern = convertPathToPattern; + let posix; + (function (posix) { + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escapePosixPath(source); + } + posix.escapePath = escapePath; + function convertPathToPattern(source) { + assertPatternsInput(source); + return utils.path.convertPosixPathToPattern(source); + } + posix.convertPathToPattern = convertPathToPattern; + })(posix = FastGlob.posix || (FastGlob.posix = {})); + let win32; + (function (win32) { + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escapeWindowsPath(source); } + win32.escapePath = escapePath; + function convertPathToPattern(source) { + assertPatternsInput(source); + return utils.path.convertWindowsPathToPattern(source); + } + win32.convertPathToPattern = convertPathToPattern; + })(win32 = FastGlob.win32 || (FastGlob.win32 = {})); +})(FastGlob || (FastGlob = {})); +function getWorks(source, _Provider, options) { + const patterns = [].concat(source); + const settings = new settings_1.default(options); + const tasks = taskManager.generate(patterns, settings); + const provider = new _Provider(settings); + return tasks.map(provider.read, provider); +} +function assertPatternsInput(input) { + const source = [].concat(input); + const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item)); + if (!isValidSource) { + throw new TypeError('Patterns must be a string (non empty) or an array of strings'); } } +module.exports = FastGlob; -// Should be enumerable, but class methods are not enumerable. -Event.prototype = { - /** - * The type of this event. - * @type {string} - */ - get type() { - return pd(this).event.type - }, - /** - * The target of this event. - * @type {EventTarget} - */ - get target() { - return pd(this).eventTarget - }, +/***/ }), - /** - * The target of this event. - * @type {EventTarget} - */ - get currentTarget() { - return pd(this).currentTarget - }, +/***/ 2708: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - /** - * @returns {EventTarget[]} The composed path of this event. - */ - composedPath() { - const currentTarget = pd(this).currentTarget; - if (currentTarget == null) { - return [] - } - return [currentTarget] - }, +"use strict"; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; +const utils = __nccwpck_require__(5444); +function generate(input, settings) { + const patterns = processPatterns(input, settings); + const ignore = processPatterns(settings.ignore, settings); + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, ignore); + const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true); + return staticTasks.concat(dynamicTasks); +} +exports.generate = generate; +function processPatterns(input, settings) { + let patterns = input; /** - * Constant of NONE. - * @type {number} + * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry + * and some problems with the micromatch package (see fast-glob issues: #365, #394). + * + * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown + * in matching in the case of a large set of patterns after expansion. */ - get NONE() { - return 0 - }, - + if (settings.braceExpansion) { + patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns); + } /** - * Constant of CAPTURING_PHASE. - * @type {number} + * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used + * at any nesting level. + * + * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change + * the pattern in the filter before creating a regular expression. There is no need to change the patterns + * in the application. Only on the input. */ - get CAPTURING_PHASE() { - return 1 - }, - + if (settings.baseNameMatch) { + patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`); + } /** - * Constant of AT_TARGET. - * @type {number} + * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion. */ - get AT_TARGET() { - return 2 - }, - - /** - * Constant of BUBBLING_PHASE. - * @type {number} + return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern)); +} +/** + * Returns tasks grouped by basic pattern directories. + * + * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. + * This is necessary because directory traversal starts at the base directory and goes deeper. + */ +function convertPatternsToTasks(positive, negative, dynamic) { + const tasks = []; + const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive); + const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive); + const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); + const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); + tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); + /* + * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory + * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest. */ - get BUBBLING_PHASE() { - return 3 - }, + if ('.' in insideCurrentDirectoryGroup) { + tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic)); + } + else { + tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); + } + return tasks; +} +exports.convertPatternsToTasks = convertPatternsToTasks; +function getPositivePatterns(patterns) { + return utils.pattern.getPositivePatterns(patterns); +} +exports.getPositivePatterns = getPositivePatterns; +function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils.pattern.convertToPositivePattern); + return positive; +} +exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; +function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils.pattern.getBaseDirectory(pattern); + if (base in collection) { + collection[base].push(pattern); + } + else { + collection[base] = [pattern]; + } + return collection; + }, group); +} +exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; +function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map((base) => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); +} +exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; +function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern)) + }; +} +exports.convertPatternGroupToTask = convertPatternGroupToTask; - /** - * The target of this event. - * @type {number} - */ - get eventPhase() { - return pd(this).eventPhase - }, - /** - * Stop event bubbling. - * @returns {void} - */ - stopPropagation() { - const data = pd(this); +/***/ }), - data.stopped = true; - if (typeof data.event.stopPropagation === "function") { - data.event.stopPropagation(); - } - }, +/***/ 5679: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - /** - * Stop event bubbling. - * @returns {void} - */ - stopImmediatePropagation() { - const data = pd(this); +"use strict"; - data.stopped = true; - data.immediateStopped = true; - if (typeof data.event.stopImmediatePropagation === "function") { - data.event.stopImmediatePropagation(); +Object.defineProperty(exports, "__esModule", ({ value: true })); +const async_1 = __nccwpck_require__(7747); +const provider_1 = __nccwpck_require__(257); +class ProviderAsync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new async_1.default(this._settings); + } + async read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = await this.api(root, task, options); + return entries.map((entry) => options.transform(entry)); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); } - }, + return this._reader.static(task.patterns, options); + } +} +exports["default"] = ProviderAsync; - /** - * The flag to be bubbling. - * @type {boolean} - */ - get bubbles() { - return Boolean(pd(this).event.bubbles) - }, - /** - * The flag to be cancelable. - * @type {boolean} - */ - get cancelable() { - return Boolean(pd(this).event.cancelable) - }, +/***/ }), - /** - * Cancel this event. - * @returns {void} - */ - preventDefault() { - setCancelFlag(pd(this)); - }, +/***/ 6983: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - /** - * The flag to indicate cancellation state. - * @type {boolean} - */ - get defaultPrevented() { - return pd(this).canceled - }, +"use strict"; - /** - * The flag to be composed. - * @type {boolean} - */ - get composed() { - return Boolean(pd(this).event.composed) - }, +Object.defineProperty(exports, "__esModule", ({ value: true })); +const utils = __nccwpck_require__(5444); +const partial_1 = __nccwpck_require__(5295); +class DeepFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + } + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); + const negativeRe = this._getNegativePatternsRe(negative); + return (entry) => this._filter(basePath, entry, matcher, negativeRe); + } + _getMatcher(patterns) { + return new partial_1.default(patterns, this._settings, this._micromatchOptions); + } + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern); + return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; + } + if (this._isSkippedSymbolicLink(entry)) { + return false; + } + const filepath = utils.path.removeLeadingDotSegment(entry.path); + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; + } + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } + _isSkippedByDeep(basePath, entryPath) { + /** + * Avoid unnecessary depth calculations when it doesn't matter. + */ + if (this._settings.deep === Infinity) { + return false; + } + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; + } + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split('/').length; + if (basePath === '') { + return entryPathDepth; + } + const basePathDepth = basePath.split('/').length; + return entryPathDepth - basePathDepth; + } + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils.pattern.matchAny(entryPath, patternsRe); + } +} +exports["default"] = DeepFilter; - /** - * The unix time of this event. - * @type {number} - */ - get timeStamp() { - return pd(this).timeStamp - }, - /** - * The target of this event. - * @type {EventTarget} - * @deprecated - */ - get srcElement() { - return pd(this).eventTarget - }, +/***/ }), - /** - * The flag to stop event bubbling. - * @type {boolean} - * @deprecated - */ - get cancelBubble() { - return pd(this).stopped - }, - set cancelBubble(value) { - if (!value) { - return - } - const data = pd(this); +/***/ 1343: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - data.stopped = true; - if (typeof data.event.cancelBubble === "boolean") { - data.event.cancelBubble = true; - } - }, +"use strict"; - /** - * The flag to indicate cancellation state. - * @type {boolean} - * @deprecated - */ - get returnValue() { - return !pd(this).canceled - }, - set returnValue(value) { - if (!value) { - setCancelFlag(pd(this)); +Object.defineProperty(exports, "__esModule", ({ value: true })); +const utils = __nccwpck_require__(5444); +class EntryFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = new Map(); + } + getFilter(positive, negative) { + const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })); + return (entry) => this._filter(entry, positiveRe, negativeRe); + } + _filter(entry, positiveRe, negativeRe) { + const filepath = utils.path.removeLeadingDotSegment(entry.path); + if (this._settings.unique && this._isDuplicateEntry(filepath)) { + return false; } - }, + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; + } + if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) { + return false; + } + const isDirectory = entry.dirent.isDirectory(); + const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory); + if (this._settings.unique && isMatched) { + this._createIndexRecord(filepath); + } + return isMatched; + } + _isDuplicateEntry(filepath) { + return this.index.has(filepath); + } + _createIndexRecord(filepath) { + this.index.set(filepath, undefined); + } + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); + } + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; + } + const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath); + return utils.pattern.matchAny(fullpath, patternsRe); + } + _isMatchToPatterns(filepath, patternsRe, isDirectory) { + // Trying to match files and directories by patterns. + const isMatched = utils.pattern.matchAny(filepath, patternsRe); + // A pattern with a trailling slash can be used for directory matching. + // To apply such pattern, we need to add a tralling slash to the path. + if (!isMatched && isDirectory) { + return utils.pattern.matchAny(filepath + '/', patternsRe); + } + return isMatched; + } +} +exports["default"] = EntryFilter; - /** - * Initialize this event object. But do nothing under event dispatching. - * @param {string} type The event type. - * @param {boolean} [bubbles=false] The flag to be possible to bubble up. - * @param {boolean} [cancelable=false] The flag to be possible to cancel. - * @deprecated - */ - initEvent() { - // Do nothing. - }, -}; -// `constructor` is not enumerable. -Object.defineProperty(Event.prototype, "constructor", { - value: Event, - configurable: true, - writable: true, -}); +/***/ }), -// Ensure `event instanceof window.Event` is `true`. -if (typeof window !== "undefined" && typeof window.Event !== "undefined") { - Object.setPrototypeOf(Event.prototype, window.Event.prototype); +/***/ 6654: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - // Make association for wrappers. - wrappers.set(window.Event.prototype, Event); -} +"use strict"; -/** - * Get the property descriptor to redirect a given property. - * @param {string} key Property name to define property descriptor. - * @returns {PropertyDescriptor} The property descriptor to redirect the property. - * @private - */ -function defineRedirectDescriptor(key) { - return { - get() { - return pd(this).event[key] - }, - set(value) { - pd(this).event[key] = value; - }, - configurable: true, - enumerable: true, +Object.defineProperty(exports, "__esModule", ({ value: true })); +const utils = __nccwpck_require__(5444); +class ErrorFilter { + constructor(_settings) { + this._settings = _settings; } -} - -/** - * Get the property descriptor to call a given method property. - * @param {string} key Property name to define property descriptor. - * @returns {PropertyDescriptor} The property descriptor to call the method property. - * @private - */ -function defineCallDescriptor(key) { - return { - value() { - const event = pd(this).event; - return event[key].apply(event, arguments) - }, - configurable: true, - enumerable: true, + getFilter() { + return (error) => this._isNonFatalError(error); + } + _isNonFatalError(error) { + return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors; } } +exports["default"] = ErrorFilter; -/** - * Define new wrapper class. - * @param {Function} BaseEvent The base wrapper class. - * @param {Object} proto The prototype of the original event. - * @returns {Function} The defined wrapper class. - * @private - */ -function defineWrapper(BaseEvent, proto) { - const keys = Object.keys(proto); - if (keys.length === 0) { - return BaseEvent - } - /** CustomEvent */ - function CustomEvent(eventTarget, event) { - BaseEvent.call(this, eventTarget, event); - } +/***/ }), - CustomEvent.prototype = Object.create(BaseEvent.prototype, { - constructor: { value: CustomEvent, configurable: true, writable: true }, - }); +/***/ 2576: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - // Define accessors. - for (let i = 0; i < keys.length; ++i) { - const key = keys[i]; - if (!(key in BaseEvent.prototype)) { - const descriptor = Object.getOwnPropertyDescriptor(proto, key); - const isFunc = typeof descriptor.value === "function"; - Object.defineProperty( - CustomEvent.prototype, - key, - isFunc - ? defineCallDescriptor(key) - : defineRedirectDescriptor(key) - ); +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const utils = __nccwpck_require__(5444); +class Matcher { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; + this._fillStorage(); + } + _fillStorage() { + for (const pattern of this._patterns) { + const segments = this._getPatternSegments(pattern); + const sections = this._splitSegmentsIntoSections(segments); + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); } } - - return CustomEvent -} - -/** - * Get the wrapper class of a given prototype. - * @param {Object} proto The prototype of the original event to get its wrapper. - * @returns {Function} The wrapper class. - * @private - */ -function getWrapper(proto) { - if (proto == null || proto === Object.prototype) { - return Event + _getPatternSegments(pattern) { + const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map((part) => { + const dynamic = utils.pattern.isDynamicPattern(part, this._settings); + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } + return { + dynamic: true, + pattern: part, + patternRe: utils.pattern.makeRe(part, this._micromatchOptions) + }; + }); } - - let wrapper = wrappers.get(proto); - if (wrapper == null) { - wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto); - wrappers.set(proto, wrapper); + _splitSegmentsIntoSections(segments) { + return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern)); } - return wrapper } +exports["default"] = Matcher; -/** - * Wrap a given event to management a dispatching. - * @param {EventTarget} eventTarget The event target of this dispatching. - * @param {Object} event The event to wrap. - * @returns {Event} The wrapper instance. - * @private - */ -function wrapEvent(eventTarget, event) { - const Wrapper = getWrapper(Object.getPrototypeOf(event)); - return new Wrapper(eventTarget, event) -} -/** - * Get the immediateStopped flag of a given event. - * @param {Event} event The event to get. - * @returns {boolean} The flag to stop propagation immediately. - * @private - */ -function isStopped(event) { - return pd(event).immediateStopped -} +/***/ }), -/** - * Set the current event phase of a given event. - * @param {Event} event The event to set current target. - * @param {number} eventPhase New event phase. - * @returns {void} - * @private - */ -function setEventPhase(event, eventPhase) { - pd(event).eventPhase = eventPhase; -} +/***/ 5295: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -/** - * Set the current target of a given event. - * @param {Event} event The event to set current target. - * @param {EventTarget|null} currentTarget New current target. - * @returns {void} - * @private - */ -function setCurrentTarget(event, currentTarget) { - pd(event).currentTarget = currentTarget; -} +"use strict"; -/** - * Set a passive listener of a given event. - * @param {Event} event The event to set current target. - * @param {Function|null} passiveListener New passive listener. - * @returns {void} - * @private - */ -function setPassiveListener(event, passiveListener) { - pd(event).passiveListener = passiveListener; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const matcher_1 = __nccwpck_require__(2576); +class PartialMatcher extends matcher_1.default { + match(filepath) { + const parts = filepath.split('/'); + const levels = parts.length; + const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels); + for (const pattern of patterns) { + const section = pattern.sections[0]; + /** + * In this case, the pattern has a globstar and we must read all directories unconditionally, + * but only if the level has reached the end of the first group. + * + * fixtures/{a,b}/** + * ^ true/false ^ always true + */ + if (!pattern.complete && levels > section.length) { + return true; + } + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } + if (!segment.dynamic && segment.pattern === part) { + return true; + } + return false; + }); + if (match) { + return true; + } + } + return false; + } } +exports["default"] = PartialMatcher; -/** - * @typedef {object} ListenerNode - * @property {Function} listener - * @property {1|2|3} listenerType - * @property {boolean} passive - * @property {boolean} once - * @property {ListenerNode|null} next - * @private - */ -/** - * @type {WeakMap>} - * @private - */ -const listenersMap = new WeakMap(); +/***/ }), -// Listener types -const CAPTURE = 1; -const BUBBLE = 2; -const ATTRIBUTE = 3; +/***/ 257: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -/** - * Check whether a given value is an object or not. - * @param {any} x The value to check. - * @returns {boolean} `true` if the value is an object. - */ -function isObject(x) { - return x !== null && typeof x === "object" //eslint-disable-line no-restricted-syntax -} +"use strict"; -/** - * Get listeners. - * @param {EventTarget} eventTarget The event target to get. - * @returns {Map} The listeners. - * @private - */ -function getListeners(eventTarget) { - const listeners = listenersMap.get(eventTarget); - if (listeners == null) { - throw new TypeError( - "'this' is expected an EventTarget object, but got another value." - ) +Object.defineProperty(exports, "__esModule", ({ value: true })); +const path = __nccwpck_require__(1017); +const deep_1 = __nccwpck_require__(6983); +const entry_1 = __nccwpck_require__(1343); +const error_1 = __nccwpck_require__(6654); +const entry_2 = __nccwpck_require__(4029); +class Provider { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error_1.default(this._settings); + this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry_2.default(this._settings); + } + _getRootDirectory(task) { + return path.resolve(this._settings.cwd, task.base); + } + _getReaderOptions(task) { + const basePath = task.base === '.' ? '' : task.base; + return { + basePath, + pathSegmentSeparator: '/', + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.negative), + errorFilter: this.errorFilter.getFilter(), + followSymbolicLinks: this._settings.followSymbolicLinks, + fs: this._settings.fs, + stats: this._settings.stats, + throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, + transform: this.entryTransformer.getTransformer() + }; + } + _getMicromatchOptions() { + return { + dot: this._settings.dot, + matchBase: this._settings.baseNameMatch, + nobrace: !this._settings.braceExpansion, + nocase: !this._settings.caseSensitiveMatch, + noext: !this._settings.extglob, + noglobstar: !this._settings.globstar, + posix: true, + strictSlashes: false + }; } - return listeners } +exports["default"] = Provider; -/** - * Get the property descriptor for the event attribute of a given event. - * @param {string} eventName The event name to get property descriptor. - * @returns {PropertyDescriptor} The property descriptor. - * @private - */ -function defineEventAttributeDescriptor(eventName) { - return { - get() { - const listeners = getListeners(this); - let node = listeners.get(eventName); - while (node != null) { - if (node.listenerType === ATTRIBUTE) { - return node.listener - } - node = node.next; - } - return null - }, - set(listener) { - if (typeof listener !== "function" && !isObject(listener)) { - listener = null; // eslint-disable-line no-param-reassign - } - const listeners = getListeners(this); +/***/ }), - // Traverse to the tail while removing old value. - let prev = null; - let node = listeners.get(eventName); - while (node != null) { - if (node.listenerType === ATTRIBUTE) { - // Remove old value. - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } - } else { - prev = node; - } +/***/ 4630: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - node = node.next; - } +"use strict"; - // Add new value. - if (listener !== null) { - const newNode = { - listener, - listenerType: ATTRIBUTE, - passive: false, - once: false, - next: null, - }; - if (prev === null) { - listeners.set(eventName, newNode); - } else { - prev.next = newNode; - } - } - }, - configurable: true, - enumerable: true, +Object.defineProperty(exports, "__esModule", ({ value: true })); +const stream_1 = __nccwpck_require__(2781); +const stream_2 = __nccwpck_require__(2083); +const provider_1 = __nccwpck_require__(257); +class ProviderStream extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_2.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const source = this.api(root, task, options); + const destination = new stream_1.Readable({ objectMode: true, read: () => { } }); + source + .once('error', (error) => destination.emit('error', error)) + .on('data', (entry) => destination.emit('data', options.transform(entry))) + .once('end', () => destination.emit('end')); + destination + .once('close', () => source.destroy()); + return destination; + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); } } +exports["default"] = ProviderStream; -/** - * Define an event attribute (e.g. `eventTarget.onclick`). - * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite. - * @param {string} eventName The event name to define. - * @returns {void} - */ -function defineEventAttribute(eventTargetPrototype, eventName) { - Object.defineProperty( - eventTargetPrototype, - `on${eventName}`, - defineEventAttributeDescriptor(eventName) - ); -} -/** - * Define a custom EventTarget with event attributes. - * @param {string[]} eventNames Event names for event attributes. - * @returns {EventTarget} The custom EventTarget. - * @private - */ -function defineCustomEventTarget(eventNames) { - /** CustomEventTarget */ - function CustomEventTarget() { - EventTarget.call(this); - } - - CustomEventTarget.prototype = Object.create(EventTarget.prototype, { - constructor: { - value: CustomEventTarget, - configurable: true, - writable: true, - }, - }); +/***/ }), - for (let i = 0; i < eventNames.length; ++i) { - defineEventAttribute(CustomEventTarget.prototype, eventNames[i]); - } +/***/ 2405: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - return CustomEventTarget -} +"use strict"; -/** - * EventTarget. - * - * - This is constructor if no arguments. - * - This is a function which returns a CustomEventTarget constructor if there are arguments. - * - * For example: - * - * class A extends EventTarget {} - * class B extends EventTarget("message") {} - * class C extends EventTarget("message", "error") {} - * class D extends EventTarget(["message", "error"]) {} - */ -function EventTarget() { - /*eslint-disable consistent-return */ - if (this instanceof EventTarget) { - listenersMap.set(this, new Map()); - return +Object.defineProperty(exports, "__esModule", ({ value: true })); +const sync_1 = __nccwpck_require__(8821); +const provider_1 = __nccwpck_require__(257); +class ProviderSync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new sync_1.default(this._settings); } - if (arguments.length === 1 && Array.isArray(arguments[0])) { - return defineCustomEventTarget(arguments[0]) + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = this.api(root, task, options); + return entries.map(options.transform); } - if (arguments.length > 0) { - const types = new Array(arguments.length); - for (let i = 0; i < arguments.length; ++i) { - types[i] = arguments[i]; + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); } - return defineCustomEventTarget(types) + return this._reader.static(task.patterns, options); } - throw new TypeError("Cannot call a class as a function") - /*eslint-enable consistent-return */ } +exports["default"] = ProviderSync; -// Should be enumerable, but class methods are not enumerable. -EventTarget.prototype = { - /** - * Add a given listener to this event target. - * @param {string} eventName The event name to add. - * @param {Function} listener The listener to add. - * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. - * @returns {void} - */ - addEventListener(eventName, listener, options) { - if (listener == null) { - return - } - if (typeof listener !== "function" && !isObject(listener)) { - throw new TypeError("'listener' should be a function or an object.") - } - - const listeners = getListeners(this); - const optionsIsObj = isObject(options); - const capture = optionsIsObj - ? Boolean(options.capture) - : Boolean(options); - const listenerType = capture ? CAPTURE : BUBBLE; - const newNode = { - listener, - listenerType, - passive: optionsIsObj && Boolean(options.passive), - once: optionsIsObj && Boolean(options.once), - next: null, - }; - // Set it as the first node if the first node is null. - let node = listeners.get(eventName); - if (node === undefined) { - listeners.set(eventName, newNode); - return - } +/***/ }), - // Traverse to the tail while checking duplication.. - let prev = null; - while (node != null) { - if ( - node.listener === listener && - node.listenerType === listenerType - ) { - // Should ignore duplication. - return - } - prev = node; - node = node.next; - } +/***/ 4029: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - // Add it. - prev.next = newNode; - }, +"use strict"; - /** - * Remove a given listener from this event target. - * @param {string} eventName The event name to remove. - * @param {Function} listener The listener to remove. - * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. - * @returns {void} - */ - removeEventListener(eventName, listener, options) { - if (listener == null) { - return +Object.defineProperty(exports, "__esModule", ({ value: true })); +const utils = __nccwpck_require__(5444); +class EntryTransformer { + constructor(_settings) { + this._settings = _settings; + } + getTransformer() { + return (entry) => this._transform(entry); + } + _transform(entry) { + let filepath = entry.path; + if (this._settings.absolute) { + filepath = utils.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils.path.unixify(filepath); } - - const listeners = getListeners(this); - const capture = isObject(options) - ? Boolean(options.capture) - : Boolean(options); - const listenerType = capture ? CAPTURE : BUBBLE; - - let prev = null; - let node = listeners.get(eventName); - while (node != null) { - if ( - node.listener === listener && - node.listenerType === listenerType - ) { - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } - return - } - - prev = node; - node = node.next; + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += '/'; } - }, - - /** - * Dispatch a given event. - * @param {Event|{type:string}} event The event to dispatch. - * @returns {boolean} `false` if canceled. - */ - dispatchEvent(event) { - if (event == null || typeof event.type !== "string") { - throw new TypeError('"event.type" should be a string.') + if (!this._settings.objectMode) { + return filepath; } + return Object.assign(Object.assign({}, entry), { path: filepath }); + } +} +exports["default"] = EntryTransformer; - // If listeners aren't registered, terminate. - const listeners = getListeners(this); - const eventName = event.type; - let node = listeners.get(eventName); - if (node == null) { - return true - } - // Since we cannot rewrite several properties, so wrap object. - const wrappedEvent = wrapEvent(this, event); +/***/ }), - // This doesn't process capturing phase and bubbling phase. - // This isn't participating in a tree. - let prev = null; - while (node != null) { - // Remove this listener if it's once - if (node.once) { - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } - } else { - prev = node; - } +/***/ 7747: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - // Call this listener - setPassiveListener( - wrappedEvent, - node.passive ? node.listener : null - ); - if (typeof node.listener === "function") { - try { - node.listener.call(this, wrappedEvent); - } catch (err) { - if ( - typeof console !== "undefined" && - typeof console.error === "function" - ) { - console.error(err); - } +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const fsWalk = __nccwpck_require__(6026); +const reader_1 = __nccwpck_require__(5582); +const stream_1 = __nccwpck_require__(2083); +class ReaderAsync extends reader_1.default { + constructor() { + super(...arguments); + this._walkAsync = fsWalk.walk; + this._readerStream = new stream_1.default(this._settings); + } + dynamic(root, options) { + return new Promise((resolve, reject) => { + this._walkAsync(root, options, (error, entries) => { + if (error === null) { + resolve(entries); } - } else if ( - node.listenerType !== ATTRIBUTE && - typeof node.listener.handleEvent === "function" - ) { - node.listener.handleEvent(wrappedEvent); - } + else { + reject(error); + } + }); + }); + } + async static(patterns, options) { + const entries = []; + const stream = this._readerStream.static(patterns, options); + // After #235, replace it with an asynchronous iterator. + return new Promise((resolve, reject) => { + stream.once('error', reject); + stream.on('data', (entry) => entries.push(entry)); + stream.once('end', () => resolve(entries)); + }); + } +} +exports["default"] = ReaderAsync; - // Break if `event.stopImmediatePropagation` was called. - if (isStopped(wrappedEvent)) { - break - } - node = node.next; - } - setPassiveListener(wrappedEvent, null); - setEventPhase(wrappedEvent, 0); - setCurrentTarget(wrappedEvent, null); +/***/ }), - return !wrappedEvent.defaultPrevented - }, -}; +/***/ 5582: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -// `constructor` is not enumerable. -Object.defineProperty(EventTarget.prototype, "constructor", { - value: EventTarget, - configurable: true, - writable: true, -}); +"use strict"; -// Ensure `eventTarget instanceof window.EventTarget` is `true`. -if ( - typeof window !== "undefined" && - typeof window.EventTarget !== "undefined" -) { - Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype); +Object.defineProperty(exports, "__esModule", ({ value: true })); +const path = __nccwpck_require__(1017); +const fsStat = __nccwpck_require__(109); +const utils = __nccwpck_require__(5444); +class Reader { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } + _getFullEntryPath(filepath) { + return path.resolve(this._settings.cwd, filepath); + } + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils.fs.createDirentFromStats(pattern, stats) + }; + if (this._settings.stats) { + entry.stats = stats; + } + return entry; + } + _isFatalError(error) { + return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + } } - -exports.defineEventAttribute = defineEventAttribute; -exports.EventTarget = EventTarget; -exports["default"] = EventTarget; - -module.exports = EventTarget -module.exports.EventTarget = module.exports["default"] = EventTarget -module.exports.defineEventAttribute = defineEventAttribute -//# sourceMappingURL=event-target-shim.js.map +exports["default"] = Reader; /***/ }), -/***/ 8171: -/***/ ((module) => { +/***/ 2083: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const stream_1 = __nccwpck_require__(2781); +const fsStat = __nccwpck_require__(109); +const fsWalk = __nccwpck_require__(6026); +const reader_1 = __nccwpck_require__(5582); +class ReaderStream extends reader_1.default { + constructor() { + super(...arguments); + this._walkStream = fsWalk.walkStream; + this._stat = fsStat.stat; + } + dynamic(root, options) { + return this._walkStream(root, options); + } + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1.PassThrough({ objectMode: true }); + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options) + .then((entry) => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } + if (index === filepaths.length - 1) { + stream.end(); + } + done(); + }) + .catch(done); + }; + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); + } + return stream; + } + _getEntry(filepath, pattern, options) { + return this._getStat(filepath) + .then((stats) => this._makeEntry(stats, pattern)) + .catch((error) => { + if (options.errorFilter(error)) { + return null; + } + throw error; + }); + } + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); + }); + }); + } +} +exports["default"] = ReaderStream; -var hasOwn = Object.prototype.hasOwnProperty; -var toStr = Object.prototype.toString; -var defineProperty = Object.defineProperty; -var gOPD = Object.getOwnPropertyDescriptor; - -var isArray = function isArray(arr) { - if (typeof Array.isArray === 'function') { - return Array.isArray(arr); - } - return toStr.call(arr) === '[object Array]'; -}; +/***/ }), -var isPlainObject = function isPlainObject(obj) { - if (!obj || toStr.call(obj) !== '[object Object]') { - return false; - } +/***/ 8821: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - var hasOwnConstructor = hasOwn.call(obj, 'constructor'); - var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); - // Not own constructor property must be Object - if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { - return false; - } +"use strict"; - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - var key; - for (key in obj) { /**/ } +Object.defineProperty(exports, "__esModule", ({ value: true })); +const fsStat = __nccwpck_require__(109); +const fsWalk = __nccwpck_require__(6026); +const reader_1 = __nccwpck_require__(5582); +class ReaderSync extends reader_1.default { + constructor() { + super(...arguments); + this._walkSync = fsWalk.walkSync; + this._statSync = fsStat.statSync; + } + dynamic(root, options) { + return this._walkSync(root, options); + } + static(patterns, options) { + const entries = []; + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); + const entry = this._getEntry(filepath, pattern, options); + if (entry === null || !options.entryFilter(entry)) { + continue; + } + entries.push(entry); + } + return entries; + } + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); + return this._makeEntry(stats, pattern); + } + catch (error) { + if (options.errorFilter(error)) { + return null; + } + throw error; + } + } + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } +} +exports["default"] = ReaderSync; - return typeof key === 'undefined' || hasOwn.call(obj, key); -}; -// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target -var setProperty = function setProperty(target, options) { - if (defineProperty && options.name === '__proto__') { - defineProperty(target, options.name, { - enumerable: true, - configurable: true, - value: options.newValue, - writable: true - }); - } else { - target[options.name] = options.newValue; - } -}; +/***/ }), -// Return undefined instead of __proto__ if '__proto__' is not an own property -var getProperty = function getProperty(obj, name) { - if (name === '__proto__') { - if (!hasOwn.call(obj, name)) { - return void 0; - } else if (gOPD) { - // In early versions of node, obj['__proto__'] is buggy when obj has - // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. - return gOPD(obj, name).value; - } - } +/***/ 952: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - return obj[name]; -}; +"use strict"; -module.exports = function extend() { - var options, name, src, copy, copyIsArray, clone; - var target = arguments[0]; - var i = 1; - var length = arguments.length; - var deep = false; - - // Handle a deep copy situation - if (typeof target === 'boolean') { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { - target = {}; - } +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; +const fs = __nccwpck_require__(7147); +const os = __nccwpck_require__(2037); +/** + * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero. + * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107 + */ +const CPU_COUNT = Math.max(os.cpus().length, 1); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + lstatSync: fs.lstatSync, + stat: fs.stat, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +class Settings { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); + if (this.onlyDirectories) { + this.onlyFiles = false; + } + if (this.stats) { + this.objectMode = true; + } + // Remove the cast to the array in the next major (#404). + this.ignore = [].concat(this.ignore); + } + _getValue(option, value) { + return option === undefined ? value : option; + } + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } +} +exports["default"] = Settings; - for (; i < length; ++i) { - options = arguments[i]; - // Only deal with non-null/undefined values - if (options != null) { - // Extend the base object - for (name in options) { - src = getProperty(target, name); - copy = getProperty(options, name); - // Prevent never-ending loop - if (target !== copy) { - // Recurse if we're merging plain objects or arrays - if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { - if (copyIsArray) { - copyIsArray = false; - clone = src && isArray(src) ? src : []; - } else { - clone = src && isPlainObject(src) ? src : {}; - } +/***/ }), - // Never move original objects, clone them - setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); +/***/ 5325: +/***/ ((__unused_webpack_module, exports) => { - // Don't bring in undefined values - } else if (typeof copy !== 'undefined') { - setProperty(target, { name: name, newValue: copy }); - } - } - } - } - } +"use strict"; - // Return the modified object - return target; -}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.splitWhen = exports.flatten = void 0; +function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); +} +exports.flatten = flatten; +function splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } + else { + result[groupIndex].push(item); + } + } + return result; +} +exports.splitWhen = splitWhen; /***/ }), -/***/ 4460: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 1230: +/***/ ((__unused_webpack_module, exports) => { "use strict"; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isEnoentCodeError = void 0; +function isEnoentCodeError(error) { + return error.code === 'ENOENT'; +} +exports.isEnoentCodeError = isEnoentCodeError; -var isGlob = __nccwpck_require__(4466); -var pathPosixDirname = (__nccwpck_require__(1017).posix.dirname); -var isWin32 = (__nccwpck_require__(2037).platform)() === 'win32'; -var slash = '/'; -var backslash = /\\/g; -var enclosure = /[\{\[].*[\}\]]$/; -var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; -var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; +/***/ }), -/** - * @param {string} str - * @param {Object} opts - * @param {boolean} [opts.flipBackslashes=true] - * @returns {string} - */ -module.exports = function globParent(str, opts) { - var options = Object.assign({ flipBackslashes: true }, opts); +/***/ 7543: +/***/ ((__unused_webpack_module, exports) => { - // flip windows path separators - if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { - str = str.replace(backslash, slash); - } +"use strict"; - // special case for strings ending in enclosure containing path separator - if (enclosure.test(str)) { - str += slash; - } +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; - // preserves full path in case of trailing path separator - str += 'a'; - // remove path parts that are globby - do { - str = pathPosixDirname(str); - } while (isGlob(str) || globby.test(str)); +/***/ }), - // remove escape chars and return result - return str.replace(escaped, '$1'); -}; +/***/ 5444: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; +const array = __nccwpck_require__(5325); +exports.array = array; +const errno = __nccwpck_require__(1230); +exports.errno = errno; +const fs = __nccwpck_require__(7543); +exports.fs = fs; +const path = __nccwpck_require__(3873); +exports.path = path; +const pattern = __nccwpck_require__(1221); +exports.pattern = pattern; +const stream = __nccwpck_require__(8382); +exports.stream = stream; +const string = __nccwpck_require__(2203); +exports.string = string; /***/ }), -/***/ 3664: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 3873: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -const taskManager = __nccwpck_require__(2708); -const async_1 = __nccwpck_require__(5679); -const stream_1 = __nccwpck_require__(4630); -const sync_1 = __nccwpck_require__(2405); -const settings_1 = __nccwpck_require__(952); -const utils = __nccwpck_require__(5444); -async function FastGlob(source, options) { - assertPatternsInput(source); - const works = getWorks(source, async_1.default, options); - const result = await Promise.all(works); - return utils.array.flatten(result); +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0; +const os = __nccwpck_require__(2037); +const path = __nccwpck_require__(1017); +const IS_WINDOWS_PLATFORM = os.platform() === 'win32'; +const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ +/** + * All non-escaped special characters. + * Posix: ()*?[\]{|}, !+@ before (, ! at the beginning, \\ before non-special characters. + * Windows: (){}, !+@ before (, ! at the beginning. + */ +const POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g; +const WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([(){}]|^!|[!+@](?=\())/g; +/** + * The device path (\\.\ or \\?\). + * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths + */ +const DOS_DEVICE_PATH_RE = /^\\\\([.?])/; +/** + * All backslashes except those escaping special characters. + * Windows: !()+@{} + * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions + */ +const WINDOWS_BACKSLASHES_RE = /\\(?![!()+@{}])/g; +/** + * Designed to work only with simple paths: `dir\\file`. + */ +function unixify(filepath) { + return filepath.replace(/\\/g, '/'); } -// https://github.com/typescript-eslint/typescript-eslint/issues/60 -// eslint-disable-next-line no-redeclare -(function (FastGlob) { - FastGlob.glob = FastGlob; - FastGlob.globSync = sync; - FastGlob.globStream = stream; - FastGlob.async = FastGlob; - function sync(source, options) { - assertPatternsInput(source); - const works = getWorks(source, sync_1.default, options); - return utils.array.flatten(works); - } - FastGlob.sync = sync; - function stream(source, options) { - assertPatternsInput(source); - const works = getWorks(source, stream_1.default, options); - /** - * The stream returned by the provider cannot work with an asynchronous iterator. - * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. - * This affects performance (+25%). I don't see best solution right now. - */ - return utils.stream.merge(works); - } - FastGlob.stream = stream; - function generateTasks(source, options) { - assertPatternsInput(source); - const patterns = [].concat(source); - const settings = new settings_1.default(options); - return taskManager.generate(patterns, settings); - } - FastGlob.generateTasks = generateTasks; - function isDynamicPattern(source, options) { - assertPatternsInput(source); - const settings = new settings_1.default(options); - return utils.pattern.isDynamicPattern(source, settings); - } - FastGlob.isDynamicPattern = isDynamicPattern; - function escapePath(source) { - assertPatternsInput(source); - return utils.path.escape(source); - } - FastGlob.escapePath = escapePath; - function convertPathToPattern(source) { - assertPatternsInput(source); - return utils.path.convertPathToPattern(source); - } - FastGlob.convertPathToPattern = convertPathToPattern; - let posix; - (function (posix) { - function escapePath(source) { - assertPatternsInput(source); - return utils.path.escapePosixPath(source); - } - posix.escapePath = escapePath; - function convertPathToPattern(source) { - assertPatternsInput(source); - return utils.path.convertPosixPathToPattern(source); - } - posix.convertPathToPattern = convertPathToPattern; - })(posix = FastGlob.posix || (FastGlob.posix = {})); - let win32; - (function (win32) { - function escapePath(source) { - assertPatternsInput(source); - return utils.path.escapeWindowsPath(source); - } - win32.escapePath = escapePath; - function convertPathToPattern(source) { - assertPatternsInput(source); - return utils.path.convertWindowsPathToPattern(source); - } - win32.convertPathToPattern = convertPathToPattern; - })(win32 = FastGlob.win32 || (FastGlob.win32 = {})); -})(FastGlob || (FastGlob = {})); -function getWorks(source, _Provider, options) { - const patterns = [].concat(source); - const settings = new settings_1.default(options); - const tasks = taskManager.generate(patterns, settings); - const provider = new _Provider(settings); - return tasks.map(provider.read, provider); +exports.unixify = unixify; +function makeAbsolute(cwd, filepath) { + return path.resolve(cwd, filepath); } -function assertPatternsInput(input) { - const source = [].concat(input); - const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item)); - if (!isValidSource) { - throw new TypeError('Patterns must be a string (non empty) or an array of strings'); +exports.makeAbsolute = makeAbsolute; +function removeLeadingDotSegment(entry) { + // We do not use `startsWith` because this is 10x slower than current implementation for some cases. + // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with + if (entry.charAt(0) === '.') { + const secondCharactery = entry.charAt(1); + if (secondCharactery === '/' || secondCharactery === '\\') { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } } + return entry; } -module.exports = FastGlob; +exports.removeLeadingDotSegment = removeLeadingDotSegment; +exports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath; +function escapeWindowsPath(pattern) { + return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); +} +exports.escapeWindowsPath = escapeWindowsPath; +function escapePosixPath(pattern) { + return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); +} +exports.escapePosixPath = escapePosixPath; +exports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern; +function convertWindowsPathToPattern(filepath) { + return escapeWindowsPath(filepath) + .replace(DOS_DEVICE_PATH_RE, '//$1') + .replace(WINDOWS_BACKSLASHES_RE, '/'); +} +exports.convertWindowsPathToPattern = convertWindowsPathToPattern; +function convertPosixPathToPattern(filepath) { + return escapePosixPath(filepath); +} +exports.convertPosixPathToPattern = convertPosixPathToPattern; /***/ }), -/***/ 2708: +/***/ 1221: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; -const utils = __nccwpck_require__(5444); -function generate(input, settings) { - const patterns = processPatterns(input, settings); - const ignore = processPatterns(settings.ignore, settings); - const positivePatterns = getPositivePatterns(patterns); - const negativePatterns = getNegativePatternsAsPositive(patterns, ignore); - const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings)); - const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings)); - const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false); - const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true); - return staticTasks.concat(dynamicTasks); +exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; +const path = __nccwpck_require__(1017); +const globParent = __nccwpck_require__(4460); +const micromatch = __nccwpck_require__(6228); +const GLOBSTAR = '**'; +const ESCAPE_SYMBOL = '\\'; +const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; +const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; +const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; +const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; +const BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; +/** + * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string. + * The latter is due to the presence of the device path at the beginning of the UNC path. + */ +const DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; +function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); } -exports.generate = generate; -function processPatterns(input, settings) { - let patterns = input; +exports.isStaticPattern = isStaticPattern; +function isDynamicPattern(pattern, options = {}) { /** - * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry - * and some problems with the micromatch package (see fast-glob issues: #365, #394). - * - * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown - * in matching in the case of a large set of patterns after expansion. + * A special case with an empty string is necessary for matching patterns that start with a forward slash. + * An empty string cannot be a dynamic pattern. + * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. */ - if (settings.braceExpansion) { - patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns); + if (pattern === '') { + return false; } /** - * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used - * at any nesting level. - * - * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change - * the pattern in the filter before creating a regular expression. There is no need to change the patterns - * in the application. Only on the input. + * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check + * filepath directly (without read directory). */ - if (settings.baseNameMatch) { - patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`); + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; } - /** - * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion. - */ - return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern)); + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.braceExpansion !== false && hasBraceExpansion(pattern)) { + return true; + } + return false; } -/** - * Returns tasks grouped by basic pattern directories. - * - * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. - * This is necessary because directory traversal starts at the base directory and goes deeper. - */ -function convertPatternsToTasks(positive, negative, dynamic) { - const tasks = []; - const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive); - const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive); - const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); - const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); - tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); - /* - * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory - * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest. - */ - if ('.' in insideCurrentDirectoryGroup) { - tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic)); +exports.isDynamicPattern = isDynamicPattern; +function hasBraceExpansion(pattern) { + const openingBraceIndex = pattern.indexOf('{'); + if (openingBraceIndex === -1) { + return false; } - else { - tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); + const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1); + if (closingBraceIndex === -1) { + return false; } - return tasks; + const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); + return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); } -exports.convertPatternsToTasks = convertPatternsToTasks; +function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; +} +exports.convertToPositivePattern = convertToPositivePattern; +function convertToNegativePattern(pattern) { + return '!' + pattern; +} +exports.convertToNegativePattern = convertToNegativePattern; +function isNegativePattern(pattern) { + return pattern.startsWith('!') && pattern[1] !== '('; +} +exports.isNegativePattern = isNegativePattern; +function isPositivePattern(pattern) { + return !isNegativePattern(pattern); +} +exports.isPositivePattern = isPositivePattern; +function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); +} +exports.getNegativePatterns = getNegativePatterns; function getPositivePatterns(patterns) { - return utils.pattern.getPositivePatterns(patterns); + return patterns.filter(isPositivePattern); } exports.getPositivePatterns = getPositivePatterns; -function getNegativePatternsAsPositive(patterns, ignore) { - const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore); - const positive = negative.map(utils.pattern.convertToPositivePattern); - return positive; +/** + * Returns patterns that can be applied inside the current directory. + * + * @example + * // ['./*', '*', 'a/*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsInsideCurrentDirectory(patterns) { + return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); } -exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; -function groupPatternsByBaseDirectory(patterns) { - const group = {}; +exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; +/** + * Returns patterns to be expanded relative to (outside) the current directory. + * + * @example + * // ['../*', './../*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsOutsideCurrentDirectory(patterns) { + return patterns.filter(isPatternRelatedToParentDirectory); +} +exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; +function isPatternRelatedToParentDirectory(pattern) { + return pattern.startsWith('..') || pattern.startsWith('./..'); +} +exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; +function getBaseDirectory(pattern) { + return globParent(pattern, { flipBackslashes: false }); +} +exports.getBaseDirectory = getBaseDirectory; +function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); +} +exports.hasGlobStar = hasGlobStar; +function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); +} +exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +function isAffectDepthOfReadingPattern(pattern) { + const basename = path.basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); +} +exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; +function expandPatternsWithBraceExpansion(patterns) { return patterns.reduce((collection, pattern) => { - const base = utils.pattern.getBaseDirectory(pattern); - if (base in collection) { - collection[base].push(pattern); - } - else { - collection[base] = [pattern]; - } - return collection; - }, group); + return collection.concat(expandBraceExpansion(pattern)); + }, []); } -exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; -function convertPatternGroupsToTasks(positive, negative, dynamic) { - return Object.keys(positive).map((base) => { - return convertPatternGroupToTask(base, positive[base], negative, dynamic); - }); +exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; +function expandBraceExpansion(pattern) { + const patterns = micromatch.braces(pattern, { expand: true, nodupes: true }); + /** + * Sort the patterns by length so that the same depth patterns are processed side by side. + * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']` + */ + patterns.sort((a, b) => a.length - b.length); + /** + * Micromatch can return an empty string in the case of patterns like `{a,}`. + */ + return patterns.filter((pattern) => pattern !== ''); } -exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; -function convertPatternGroupToTask(base, positive, negative, dynamic) { - return { - dynamic, - positive, - negative, - base, - patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern)) - }; +exports.expandBraceExpansion = expandBraceExpansion; +function getPatternParts(pattern, options) { + let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true })); + /** + * The scan method returns an empty array in some cases. + * See micromatch/picomatch#58 for more details. + */ + if (parts.length === 0) { + parts = [pattern]; + } + /** + * The scan method does not return an empty part for the pattern with a forward slash. + * This is another part of micromatch/picomatch#58. + */ + if (parts[0].startsWith('/')) { + parts[0] = parts[0].slice(1); + parts.unshift(''); + } + return parts; } -exports.convertPatternGroupToTask = convertPatternGroupToTask; +exports.getPatternParts = getPatternParts; +function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); +} +exports.makeRe = makeRe; +function convertPatternsToRe(patterns, options) { + return patterns.map((pattern) => makeRe(pattern, options)); +} +exports.convertPatternsToRe = convertPatternsToRe; +function matchAny(entry, patternsRe) { + return patternsRe.some((patternRe) => patternRe.test(entry)); +} +exports.matchAny = matchAny; +/** + * This package only works with forward slashes as a path separator. + * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. + */ +function removeDuplicateSlashes(pattern) { + return pattern.replace(DOUBLE_SLASH_RE, '/'); +} +exports.removeDuplicateSlashes = removeDuplicateSlashes; /***/ }), -/***/ 5679: +/***/ 8382: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -const async_1 = __nccwpck_require__(7747); -const provider_1 = __nccwpck_require__(257); -class ProviderAsync extends provider_1.default { - constructor() { - super(...arguments); - this._reader = new async_1.default(this._settings); - } - async read(task) { - const root = this._getRootDirectory(task); - const options = this._getReaderOptions(task); - const entries = await this.api(root, task, options); - return entries.map((entry) => options.transform(entry)); - } - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); - } - return this._reader.static(task.patterns, options); - } +exports.merge = void 0; +const merge2 = __nccwpck_require__(2578); +function merge(streams) { + const mergedStream = merge2(streams); + streams.forEach((stream) => { + stream.once('error', (error) => mergedStream.emit('error', error)); + }); + mergedStream.once('close', () => propagateCloseEventToSources(streams)); + mergedStream.once('end', () => propagateCloseEventToSources(streams)); + return mergedStream; +} +exports.merge = merge; +function propagateCloseEventToSources(streams) { + streams.forEach((stream) => stream.emit('close')); } -exports["default"] = ProviderAsync; /***/ }), -/***/ 6983: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 2203: +/***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -const utils = __nccwpck_require__(5444); -const partial_1 = __nccwpck_require__(5295); -class DeepFilter { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - } - getFilter(basePath, positive, negative) { - const matcher = this._getMatcher(positive); - const negativeRe = this._getNegativePatternsRe(negative); - return (entry) => this._filter(basePath, entry, matcher, negativeRe); - } - _getMatcher(patterns) { - return new partial_1.default(patterns, this._settings, this._micromatchOptions); - } - _getNegativePatternsRe(patterns) { - const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern); - return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); - } - _filter(basePath, entry, matcher, negativeRe) { - if (this._isSkippedByDeep(basePath, entry.path)) { - return false; - } - if (this._isSkippedSymbolicLink(entry)) { - return false; - } - const filepath = utils.path.removeLeadingDotSegment(entry.path); - if (this._isSkippedByPositivePatterns(filepath, matcher)) { - return false; - } - return this._isSkippedByNegativePatterns(filepath, negativeRe); - } - _isSkippedByDeep(basePath, entryPath) { - /** - * Avoid unnecessary depth calculations when it doesn't matter. - */ - if (this._settings.deep === Infinity) { - return false; - } - return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; - } - _getEntryLevel(basePath, entryPath) { - const entryPathDepth = entryPath.split('/').length; - if (basePath === '') { - return entryPathDepth; - } - const basePathDepth = basePath.split('/').length; - return entryPathDepth - basePathDepth; - } - _isSkippedSymbolicLink(entry) { - return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); - } - _isSkippedByPositivePatterns(entryPath, matcher) { - return !this._settings.baseNameMatch && !matcher.match(entryPath); - } - _isSkippedByNegativePatterns(entryPath, patternsRe) { - return !utils.pattern.matchAny(entryPath, patternsRe); - } +exports.isEmpty = exports.isString = void 0; +function isString(input) { + return typeof input === 'string'; } -exports["default"] = DeepFilter; +exports.isString = isString; +function isEmpty(input) { + return input === ''; +} +exports.isEmpty = isEmpty; /***/ }), -/***/ 1343: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; +/***/ 1917: +/***/ (function() { -Object.defineProperty(exports, "__esModule", ({ value: true })); -const utils = __nccwpck_require__(5444); -class EntryFilter { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this.index = new Map(); - } - getFilter(positive, negative) { - const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions); - const negativeRe = utils.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })); - return (entry) => this._filter(entry, positiveRe, negativeRe); - } - _filter(entry, positiveRe, negativeRe) { - const filepath = utils.path.removeLeadingDotSegment(entry.path); - if (this._settings.unique && this._isDuplicateEntry(filepath)) { - return false; - } - if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { - return false; - } - if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) { - return false; - } - const isDirectory = entry.dirent.isDirectory(); - const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory); - if (this._settings.unique && isMatched) { - this._createIndexRecord(filepath); - } - return isMatched; - } - _isDuplicateEntry(filepath) { - return this.index.has(filepath); - } - _createIndexRecord(filepath) { - this.index.set(filepath, undefined); - } - _onlyFileFilter(entry) { - return this._settings.onlyFiles && !entry.dirent.isFile(); - } - _onlyDirectoryFilter(entry) { - return this._settings.onlyDirectories && !entry.dirent.isDirectory(); - } - _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { - if (!this._settings.absolute) { - return false; - } - const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath); - return utils.pattern.matchAny(fullpath, patternsRe); - } - _isMatchToPatterns(filepath, patternsRe, isDirectory) { - // Trying to match files and directories by patterns. - const isMatched = utils.pattern.matchAny(filepath, patternsRe); - // A pattern with a trailling slash can be used for directory matching. - // To apply such pattern, we need to add a tralling slash to the path. - if (!isMatched && isDirectory) { - return utils.pattern.matchAny(filepath + '/', patternsRe); - } - return isMatched; - } -} -exports["default"] = EntryFilter; +(function(l){function m(){}function k(a,c){a=void 0===a?"utf-8":a;c=void 0===c?{fatal:!1}:c;if(-1===r.indexOf(a.toLowerCase()))throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+a+"') is invalid.");if(c.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.");}function t(a){return Buffer.from(a.buffer,a.byteOffset,a.byteLength).toString("utf-8")}function u(a){var c=URL.createObjectURL(new Blob([a],{type:"text/plain;charset=UTF-8"})); +try{var f=new XMLHttpRequest;f.open("GET",c,!1);f.send();return f.responseText}catch(e){return q(a)}finally{URL.revokeObjectURL(c)}}function q(a){for(var c=0,f=Math.min(65536,a.length+1),e=new Uint16Array(f),h=[],d=0;;){var b=c=f-1){h.push(String.fromCharCode.apply(null,e.subarray(0,d)));if(!b)return h.join("");a=a.subarray(c);d=c=0}b=a[c++];if(0===(b&128))e[d++]=b;else if(192===(b&224)){var g=a[c++]&63;e[d++]=(b&31)<<6|g}else if(224===(b&240)){g=a[c++]&63;var n=a[c++]&63;e[d++]= +(b&31)<<12|g<<6|n}else if(240===(b&248)){g=a[c++]&63;n=a[c++]&63;var v=a[c++]&63;b=(b&7)<<18|g<<12|n<<6|v;65535>>10&1023|55296,b=56320|b&1023);e[d++]=b}}}if(l.TextEncoder&&l.TextDecoder)return!1;var r=["utf-8","utf8","unicode-1-1-utf-8"];Object.defineProperty(m.prototype,"encoding",{value:"utf-8"});m.prototype.encode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error("Failed to encode: the 'stream' option is unsupported.");c=0;for(var f=a.length,e=0,h=Math.max(32, +f+(f>>>1)+7),d=new Uint8Array(h>>>3<<3);c=b){if(c=b)continue}e+4>d.length&&(h+=8,h*=1+c/a.length*2,h=h>>>3<<3,g=new Uint8Array(h),g.set(d),d=g);if(0===(b&4294967168))d[e++]=b;else{if(0===(b&4294965248))d[e++]=b>>>6&31|192;else if(0===(b&4294901760))d[e++]=b>>>12&15|224,d[e++]=b>>>6&63|128;else if(0===(b&4292870144))d[e++]=b>>>18&7|240,d[e++]=b>>>12& +63|128,d[e++]=b>>>6&63|128;else continue;d[e++]=b&63|128}}return d.slice?d.slice(0,e):d.subarray(0,e)};Object.defineProperty(k.prototype,"encoding",{value:"utf-8"});Object.defineProperty(k.prototype,"fatal",{value:!1});Object.defineProperty(k.prototype,"ignoreBOM",{value:!1});var p=q;"function"===typeof Buffer&&Buffer.from?p=t:"function"===typeof Blob&&"function"===typeof URL&&"function"===typeof URL.createObjectURL&&(p=u);k.prototype.decode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error("Failed to decode: the 'stream' option is unsupported."); +a=a instanceof Uint8Array?a:a.buffer instanceof ArrayBuffer?new Uint8Array(a.buffer):new Uint8Array(a);return p(a)};l.TextEncoder=m;l.TextDecoder=k})("undefined"!==typeof window?window:"undefined"!==typeof global?global:this); /***/ }), -/***/ 6654: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 7340: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const utils = __nccwpck_require__(5444); -class ErrorFilter { - constructor(_settings) { - this._settings = _settings; - } - getFilter() { - return (error) => this._isNonFatalError(error); - } - _isNonFatalError(error) { - return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors; - } -} -exports["default"] = ErrorFilter; +/* eslint-disable no-var */ -/***/ }), +var reusify = __nccwpck_require__(2113) -/***/ 2576: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +function fastqueue (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } -"use strict"; + if (concurrency < 1) { + throw new Error('fastqueue concurrency must be greater than 1') + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -const utils = __nccwpck_require__(5444); -class Matcher { - constructor(_patterns, _settings, _micromatchOptions) { - this._patterns = _patterns; - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this._storage = []; - this._fillStorage(); - } - _fillStorage() { - for (const pattern of this._patterns) { - const segments = this._getPatternSegments(pattern); - const sections = this._splitSegmentsIntoSections(segments); - this._storage.push({ - complete: sections.length <= 1, - pattern, - segments, - sections - }); - } - } - _getPatternSegments(pattern) { - const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions); - return parts.map((part) => { - const dynamic = utils.pattern.isDynamicPattern(part, this._settings); - if (!dynamic) { - return { - dynamic: false, - pattern: part - }; - } - return { - dynamic: true, - pattern: part, - patternRe: utils.pattern.makeRe(part, this._micromatchOptions) - }; - }); - } - _splitSegmentsIntoSections(segments) { - return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern)); - } -} -exports["default"] = Matcher; + var cache = reusify(Task) + var queueHead = null + var queueTail = null + var _running = 0 + var errorHandler = null + var self = { + push: push, + drain: noop, + saturated: noop, + pause: pause, + paused: false, + concurrency: concurrency, + running: running, + resume: resume, + idle: idle, + length: length, + getQueue: getQueue, + unshift: unshift, + empty: noop, + kill: kill, + killAndDrain: killAndDrain, + error: error + } -/***/ }), + return self -/***/ 5295: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function running () { + return _running + } -"use strict"; + function pause () { + self.paused = true + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -const matcher_1 = __nccwpck_require__(2576); -class PartialMatcher extends matcher_1.default { - match(filepath) { - const parts = filepath.split('/'); - const levels = parts.length; - const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels); - for (const pattern of patterns) { - const section = pattern.sections[0]; - /** - * In this case, the pattern has a globstar and we must read all directories unconditionally, - * but only if the level has reached the end of the first group. - * - * fixtures/{a,b}/** - * ^ true/false ^ always true - */ - if (!pattern.complete && levels > section.length) { - return true; - } - const match = parts.every((part, index) => { - const segment = pattern.segments[index]; - if (segment.dynamic && segment.patternRe.test(part)) { - return true; - } - if (!segment.dynamic && segment.pattern === part) { - return true; - } - return false; - }); - if (match) { - return true; - } - } - return false; + function length () { + var current = queueHead + var counter = 0 + + while (current) { + current = current.next + counter++ } -} -exports["default"] = PartialMatcher; + return counter + } -/***/ }), + function getQueue () { + var current = queueHead + var tasks = [] -/***/ 257: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + while (current) { + tasks.push(current.value) + current = current.next + } -"use strict"; + return tasks + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -const path = __nccwpck_require__(1017); -const deep_1 = __nccwpck_require__(6983); -const entry_1 = __nccwpck_require__(1343); -const error_1 = __nccwpck_require__(6654); -const entry_2 = __nccwpck_require__(4029); -class Provider { - constructor(_settings) { - this._settings = _settings; - this.errorFilter = new error_1.default(this._settings); - this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); - this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); - this.entryTransformer = new entry_2.default(this._settings); - } - _getRootDirectory(task) { - return path.resolve(this._settings.cwd, task.base); - } - _getReaderOptions(task) { - const basePath = task.base === '.' ? '' : task.base; - return { - basePath, - pathSegmentSeparator: '/', - concurrency: this._settings.concurrency, - deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), - entryFilter: this.entryFilter.getFilter(task.positive, task.negative), - errorFilter: this.errorFilter.getFilter(), - followSymbolicLinks: this._settings.followSymbolicLinks, - fs: this._settings.fs, - stats: this._settings.stats, - throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, - transform: this.entryTransformer.getTransformer() - }; + function resume () { + if (!self.paused) return + self.paused = false + for (var i = 0; i < self.concurrency; i++) { + _running++ + release() } - _getMicromatchOptions() { - return { - dot: this._settings.dot, - matchBase: this._settings.baseNameMatch, - nobrace: !this._settings.braceExpansion, - nocase: !this._settings.caseSensitiveMatch, - noext: !this._settings.extglob, - noglobstar: !this._settings.globstar, - posix: true, - strictSlashes: false - }; - } -} -exports["default"] = Provider; - + } -/***/ }), + function idle () { + return _running === 0 && self.length() === 0 + } -/***/ 4630: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function push (value, done) { + var current = cache.get() -"use strict"; + current.context = context + current.release = release + current.value = value + current.callback = done || noop + current.errorHandler = errorHandler -Object.defineProperty(exports, "__esModule", ({ value: true })); -const stream_1 = __nccwpck_require__(2781); -const stream_2 = __nccwpck_require__(2083); -const provider_1 = __nccwpck_require__(257); -class ProviderStream extends provider_1.default { - constructor() { - super(...arguments); - this._reader = new stream_2.default(this._settings); - } - read(task) { - const root = this._getRootDirectory(task); - const options = this._getReaderOptions(task); - const source = this.api(root, task, options); - const destination = new stream_1.Readable({ objectMode: true, read: () => { } }); - source - .once('error', (error) => destination.emit('error', error)) - .on('data', (entry) => destination.emit('data', options.transform(entry))) - .once('end', () => destination.emit('end')); - destination - .once('close', () => source.destroy()); - return destination; - } - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); - } - return this._reader.static(task.patterns, options); + if (_running === self.concurrency || self.paused) { + if (queueTail) { + queueTail.next = current + queueTail = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) } -} -exports["default"] = ProviderStream; - - -/***/ }), + } -/***/ 2405: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function unshift (value, done) { + var current = cache.get() -"use strict"; + current.context = context + current.release = release + current.value = value + current.callback = done || noop -Object.defineProperty(exports, "__esModule", ({ value: true })); -const sync_1 = __nccwpck_require__(8821); -const provider_1 = __nccwpck_require__(257); -class ProviderSync extends provider_1.default { - constructor() { - super(...arguments); - this._reader = new sync_1.default(this._settings); + if (_running === self.concurrency || self.paused) { + if (queueHead) { + current.next = queueHead + queueHead = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) } - read(task) { - const root = this._getRootDirectory(task); - const options = this._getReaderOptions(task); - const entries = this.api(root, task, options); - return entries.map(options.transform); + } + + function release (holder) { + if (holder) { + cache.release(holder) } - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); + var next = queueHead + if (next) { + if (!self.paused) { + if (queueTail === queueHead) { + queueTail = null } - return this._reader.static(task.patterns, options); + queueHead = next.next + next.next = null + worker.call(context, next.value, next.worked) + if (queueTail === null) { + self.empty() + } + } else { + _running-- + } + } else if (--_running === 0) { + self.drain() } -} -exports["default"] = ProviderSync; - - -/***/ }), + } -/***/ 4029: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function kill () { + queueHead = null + queueTail = null + self.drain = noop + } -"use strict"; + function killAndDrain () { + queueHead = null + queueTail = null + self.drain() + self.drain = noop + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -const utils = __nccwpck_require__(5444); -class EntryTransformer { - constructor(_settings) { - this._settings = _settings; - } - getTransformer() { - return (entry) => this._transform(entry); - } - _transform(entry) { - let filepath = entry.path; - if (this._settings.absolute) { - filepath = utils.path.makeAbsolute(this._settings.cwd, filepath); - filepath = utils.path.unixify(filepath); - } - if (this._settings.markDirectories && entry.dirent.isDirectory()) { - filepath += '/'; - } - if (!this._settings.objectMode) { - return filepath; - } - return Object.assign(Object.assign({}, entry), { path: filepath }); - } + function error (handler) { + errorHandler = handler + } } -exports["default"] = EntryTransformer; +function noop () {} -/***/ }), - -/***/ 7747: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +function Task () { + this.value = null + this.callback = noop + this.next = null + this.release = noop + this.context = null + this.errorHandler = null -"use strict"; + var self = this -Object.defineProperty(exports, "__esModule", ({ value: true })); -const fsWalk = __nccwpck_require__(6026); -const reader_1 = __nccwpck_require__(5582); -const stream_1 = __nccwpck_require__(2083); -class ReaderAsync extends reader_1.default { - constructor() { - super(...arguments); - this._walkAsync = fsWalk.walk; - this._readerStream = new stream_1.default(this._settings); - } - dynamic(root, options) { - return new Promise((resolve, reject) => { - this._walkAsync(root, options, (error, entries) => { - if (error === null) { - resolve(entries); - } - else { - reject(error); - } - }); - }); - } - async static(patterns, options) { - const entries = []; - const stream = this._readerStream.static(patterns, options); - // After #235, replace it with an asynchronous iterator. - return new Promise((resolve, reject) => { - stream.once('error', reject); - stream.on('data', (entry) => entries.push(entry)); - stream.once('end', () => resolve(entries)); - }); + this.worked = function worked (err, result) { + var callback = self.callback + var errorHandler = self.errorHandler + var val = self.value + self.value = null + self.callback = noop + if (self.errorHandler) { + errorHandler(err, val) } + callback.call(self.context, err, result) + self.release(self) + } } -exports["default"] = ReaderAsync; +function queueAsPromised (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } -/***/ }), + function asyncWrapper (arg, cb) { + worker.call(this, arg) + .then(function (res) { + cb(null, res) + }, cb) + } -/***/ 5582: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + var queue = fastqueue(context, asyncWrapper, concurrency) -"use strict"; + var pushCb = queue.push + var unshiftCb = queue.unshift -Object.defineProperty(exports, "__esModule", ({ value: true })); -const path = __nccwpck_require__(1017); -const fsStat = __nccwpck_require__(109); -const utils = __nccwpck_require__(5444); -class Reader { - constructor(_settings) { - this._settings = _settings; - this._fsStatSettings = new fsStat.Settings({ - followSymbolicLink: this._settings.followSymbolicLinks, - fs: this._settings.fs, - throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks - }); - } - _getFullEntryPath(filepath) { - return path.resolve(this._settings.cwd, filepath); - } - _makeEntry(stats, pattern) { - const entry = { - name: pattern, - path: pattern, - dirent: utils.fs.createDirentFromStats(pattern, stats) - }; - if (this._settings.stats) { - entry.stats = stats; - } - return entry; - } - _isFatalError(error) { - return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; - } -} -exports["default"] = Reader; + queue.push = push + queue.unshift = unshift + queue.drained = drained + return queue -/***/ }), + function push (value) { + var p = new Promise(function (resolve, reject) { + pushCb(value, function (err, result) { + if (err) { + reject(err) + return + } + resolve(result) + }) + }) -/***/ 2083: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) -"use strict"; + return p + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -const stream_1 = __nccwpck_require__(2781); -const fsStat = __nccwpck_require__(109); -const fsWalk = __nccwpck_require__(6026); -const reader_1 = __nccwpck_require__(5582); -class ReaderStream extends reader_1.default { - constructor() { - super(...arguments); - this._walkStream = fsWalk.walkStream; - this._stat = fsStat.stat; - } - dynamic(root, options) { - return this._walkStream(root, options); - } - static(patterns, options) { - const filepaths = patterns.map(this._getFullEntryPath, this); - const stream = new stream_1.PassThrough({ objectMode: true }); - stream._write = (index, _enc, done) => { - return this._getEntry(filepaths[index], patterns[index], options) - .then((entry) => { - if (entry !== null && options.entryFilter(entry)) { - stream.push(entry); - } - if (index === filepaths.length - 1) { - stream.end(); - } - done(); - }) - .catch(done); - }; - for (let i = 0; i < filepaths.length; i++) { - stream.write(i); + function unshift (value) { + var p = new Promise(function (resolve, reject) { + unshiftCb(value, function (err, result) { + if (err) { + reject(err) + return } - return stream; - } - _getEntry(filepath, pattern, options) { - return this._getStat(filepath) - .then((stats) => this._makeEntry(stats, pattern)) - .catch((error) => { - if (options.errorFilter(error)) { - return null; - } - throw error; - }); - } - _getStat(filepath) { - return new Promise((resolve, reject) => { - this._stat(filepath, this._fsStatSettings, (error, stats) => { - return error === null ? resolve(stats) : reject(error); - }); - }); - } -} -exports["default"] = ReaderStream; + resolve(result) + }) + }) + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) -/***/ }), + return p + } -/***/ 8821: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + function drained () { + var previousDrain = queue.drain -"use strict"; + var p = new Promise(function (resolve) { + queue.drain = function () { + previousDrain() + resolve() + } + }) -Object.defineProperty(exports, "__esModule", ({ value: true })); -const fsStat = __nccwpck_require__(109); -const fsWalk = __nccwpck_require__(6026); -const reader_1 = __nccwpck_require__(5582); -class ReaderSync extends reader_1.default { - constructor() { - super(...arguments); - this._walkSync = fsWalk.walkSync; - this._statSync = fsStat.statSync; - } - dynamic(root, options) { - return this._walkSync(root, options); - } - static(patterns, options) { - const entries = []; - for (const pattern of patterns) { - const filepath = this._getFullEntryPath(pattern); - const entry = this._getEntry(filepath, pattern, options); - if (entry === null || !options.entryFilter(entry)) { - continue; - } - entries.push(entry); - } - return entries; - } - _getEntry(filepath, pattern, options) { - try { - const stats = this._getStat(filepath); - return this._makeEntry(stats, pattern); - } - catch (error) { - if (options.errorFilter(error)) { - return null; - } - throw error; - } - } - _getStat(filepath) { - return this._statSync(filepath, this._fsStatSettings); - } + return p + } } -exports["default"] = ReaderSync; + +module.exports = fastqueue +module.exports.promise = queueAsPromised /***/ }), -/***/ 952: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 6330: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; -const fs = __nccwpck_require__(7147); -const os = __nccwpck_require__(2037); -/** - * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero. - * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107 +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. */ -const CPU_COUNT = Math.max(os.cpus().length, 1); -exports.DEFAULT_FILE_SYSTEM_ADAPTER = { - lstat: fs.lstat, - lstatSync: fs.lstatSync, - stat: fs.stat, - statSync: fs.statSync, - readdir: fs.readdir, - readdirSync: fs.readdirSync -}; -class Settings { - constructor(_options = {}) { - this._options = _options; - this.absolute = this._getValue(this._options.absolute, false); - this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); - this.braceExpansion = this._getValue(this._options.braceExpansion, true); - this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); - this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); - this.cwd = this._getValue(this._options.cwd, process.cwd()); - this.deep = this._getValue(this._options.deep, Infinity); - this.dot = this._getValue(this._options.dot, false); - this.extglob = this._getValue(this._options.extglob, true); - this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); - this.fs = this._getFileSystemMethods(this._options.fs); - this.globstar = this._getValue(this._options.globstar, true); - this.ignore = this._getValue(this._options.ignore, []); - this.markDirectories = this._getValue(this._options.markDirectories, false); - this.objectMode = this._getValue(this._options.objectMode, false); - this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); - this.onlyFiles = this._getValue(this._options.onlyFiles, true); - this.stats = this._getValue(this._options.stats, false); - this.suppressErrors = this._getValue(this._options.suppressErrors, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); - this.unique = this._getValue(this._options.unique, true); - if (this.onlyDirectories) { - this.onlyFiles = false; - } - if (this.stats) { - this.objectMode = true; - } - // Remove the cast to the array in the next major (#404). - this.ignore = [].concat(this.ignore); - } - _getValue(option, value) { - return option === undefined ? value : option; - } - _getFileSystemMethods(methods = {}) { - return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); - } -} -exports["default"] = Settings; -/***/ }), -/***/ 5325: -/***/ ((__unused_webpack_module, exports) => { +const util = __nccwpck_require__(3837); +const toRegexRange = __nccwpck_require__(1861); -"use strict"; +const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.splitWhen = exports.flatten = void 0; -function flatten(items) { - return items.reduce((collection, item) => [].concat(collection, item), []); -} -exports.flatten = flatten; -function splitWhen(items, predicate) { - const result = [[]]; - let groupIndex = 0; - for (const item of items) { - if (predicate(item)) { - groupIndex++; - result[groupIndex] = []; - } - else { - result[groupIndex].push(item); - } - } - return result; -} -exports.splitWhen = splitWhen; +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; +const isValidValue = value => { + return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; -/***/ }), +const isNumber = num => Number.isInteger(+num); -/***/ 1230: -/***/ ((__unused_webpack_module, exports) => { +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; + while (value[++index] === '0'); + return index > 0; +}; -"use strict"; +const stringify = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; + } + return options.stringify === true; +}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isEnoentCodeError = void 0; -function isEnoentCodeError(error) { - return error.code === 'ENOENT'; -} -exports.isEnoentCodeError = isEnoentCodeError; +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); + } + if (toNumber === false) { + return String(input); + } + return input; +}; + +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) input = '0' + input; + return negative ? ('-' + input) : input; +}; +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); -/***/ }), + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; -/***/ 7543: -/***/ ((__unused_webpack_module, exports) => { + if (parts.positives.length) { + positives = parts.positives.join('|'); + } -"use strict"; + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; + } -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.createDirentFromStats = void 0; -class DirentFromStats { - constructor(name, stats) { - this.name = name; - this.isBlockDevice = stats.isBlockDevice.bind(stats); - this.isCharacterDevice = stats.isCharacterDevice.bind(stats); - this.isDirectory = stats.isDirectory.bind(stats); - this.isFIFO = stats.isFIFO.bind(stats); - this.isFile = stats.isFile.bind(stats); - this.isSocket = stats.isSocket.bind(stats); - this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + + if (options.wrap) { + return `(${prefix}${result})`; + } + + return result; +}; + +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, { wrap: false, ...options }); + } + + let start = String.fromCharCode(a); + if (a === b) return start; + + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; + +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } + return toRegexRange(start, end, options); +}; + +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util.inspect(...args)); +}; + +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; + +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; +}; + +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } + + // fix negative zero + if (a === 0) a = 0; + if (b === 0) b = 0; + + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify(start, end, options) === false; + let format = options.transform || transform(toNumber); + + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + + let parts = { negatives: [], positives: [] }; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); } -} -function createDirentFromStats(name, stats) { - return new DirentFromStats(name, stats); -} -exports.createDirentFromStats = createDirentFromStats; + a = descending ? a - step : a + step; + index++; + } + if (options.toRegex === true) { + return step > 1 + ? toSequence(parts, options) + : toRegex(range, null, { wrap: false, ...options }); + } -/***/ }), + return range; +}; -/***/ 5444: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +const fillLetters = (start, end, step = 1, options = {}) => { + if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { + return invalidRange(start, end, options); + } -"use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; -const array = __nccwpck_require__(5325); -exports.array = array; -const errno = __nccwpck_require__(1230); -exports.errno = errno; -const fs = __nccwpck_require__(7543); -exports.fs = fs; -const path = __nccwpck_require__(3873); -exports.path = path; -const pattern = __nccwpck_require__(1221); -exports.pattern = pattern; -const stream = __nccwpck_require__(8382); -exports.stream = stream; -const string = __nccwpck_require__(2203); -exports.string = string; + let format = options.transform || (val => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + + return range; +}; + +const fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + + if (typeof step === 'function') { + return fill(start, end, 1, { transform: step }); + } + + if (isObject(step)) { + return fill(start, end, 0, step); + } + + let opts = { ...options }; + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; + + if (!isNumber(step)) { + if (step != null && !isObject(step)) return invalidStep(step, opts); + return fill(start, end, 1, step); + } + + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; + +module.exports = fill; /***/ }), -/***/ 3873: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 6129: +/***/ ((__unused_webpack_module, exports) => { "use strict"; +// Copyright 2018 Google LLC +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0; -const os = __nccwpck_require__(2037); -const path = __nccwpck_require__(1017); -const IS_WINDOWS_PLATFORM = os.platform() === 'win32'; -const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ -/** - * All non-escaped special characters. - * Posix: ()*?[\]{|}, !+@ before (, ! at the beginning, \\ before non-special characters. - * Windows: (){}, !+@ before (, ! at the beginning. - */ -const POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g; -const WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([(){}]|^!|[!+@](?=\())/g; -/** - * The device path (\\.\ or \\?\). - * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths - */ -const DOS_DEVICE_PATH_RE = /^\\\\([.?])/; -/** - * All backslashes except those escaping special characters. - * Windows: !()+@{} - * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions - */ -const WINDOWS_BACKSLASHES_RE = /\\(?![!()+@{}])/g; -/** - * Designed to work only with simple paths: `dir\\file`. - */ -function unixify(filepath) { - return filepath.replace(/\\/g, '/'); -} -exports.unixify = unixify; -function makeAbsolute(cwd, filepath) { - return path.resolve(cwd, filepath); -} -exports.makeAbsolute = makeAbsolute; -function removeLeadingDotSegment(entry) { - // We do not use `startsWith` because this is 10x slower than current implementation for some cases. - // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with - if (entry.charAt(0) === '.') { - const secondCharactery = entry.charAt(1); - if (secondCharactery === '/' || secondCharactery === '\\') { - return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); - } +exports.GaxiosError = void 0; +/* eslint-disable @typescript-eslint/no-explicit-any */ +class GaxiosError extends Error { + constructor(message, options, response) { + super(message); + this.response = response; + this.config = options; + this.code = response.status.toString(); } - return entry; -} -exports.removeLeadingDotSegment = removeLeadingDotSegment; -exports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath; -function escapeWindowsPath(pattern) { - return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); -} -exports.escapeWindowsPath = escapeWindowsPath; -function escapePosixPath(pattern) { - return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); -} -exports.escapePosixPath = escapePosixPath; -exports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern; -function convertWindowsPathToPattern(filepath) { - return escapeWindowsPath(filepath) - .replace(DOS_DEVICE_PATH_RE, '//$1') - .replace(WINDOWS_BACKSLASHES_RE, '/'); -} -exports.convertWindowsPathToPattern = convertWindowsPathToPattern; -function convertPosixPathToPattern(filepath) { - return escapePosixPath(filepath); } -exports.convertPosixPathToPattern = convertPosixPathToPattern; - +exports.GaxiosError = GaxiosError; +//# sourceMappingURL=common.js.map /***/ }), -/***/ 1221: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 8133: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; +// Copyright 2018 Google LLC +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; -const path = __nccwpck_require__(1017); -const globParent = __nccwpck_require__(4460); -const micromatch = __nccwpck_require__(6228); -const GLOBSTAR = '**'; -const ESCAPE_SYMBOL = '\\'; -const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; -const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; -const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; -const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; -const BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; -/** - * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string. - * The latter is due to the presence of the device path at the beginning of the UNC path. - */ -const DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; -function isStaticPattern(pattern, options = {}) { - return !isDynamicPattern(pattern, options); +exports.Gaxios = void 0; +const extend_1 = __importDefault(__nccwpck_require__(8171)); +const https_1 = __nccwpck_require__(5687); +const node_fetch_1 = __importDefault(__nccwpck_require__(8313)); +const querystring_1 = __importDefault(__nccwpck_require__(3477)); +const is_stream_1 = __importDefault(__nccwpck_require__(1554)); +const url_1 = __nccwpck_require__(7310); +const common_1 = __nccwpck_require__(6129); +const retry_1 = __nccwpck_require__(1052); +/* eslint-disable @typescript-eslint/no-explicit-any */ +const fetch = hasFetch() ? window.fetch : node_fetch_1.default; +function hasWindow() { + return typeof window !== 'undefined' && !!window; } -exports.isStaticPattern = isStaticPattern; -function isDynamicPattern(pattern, options = {}) { - /** - * A special case with an empty string is necessary for matching patterns that start with a forward slash. - * An empty string cannot be a dynamic pattern. - * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. - */ - if (pattern === '') { - return false; - } - /** - * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check - * filepath directly (without read directory). - */ - if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { - return true; - } - if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { - return true; - } - if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { - return true; - } - if (options.braceExpansion !== false && hasBraceExpansion(pattern)) { - return true; +function hasFetch() { + return hasWindow() && !!window.fetch; +} +function hasBuffer() { + return typeof Buffer !== 'undefined'; +} +function hasHeader(options, header) { + return !!getHeader(options, header); +} +function getHeader(options, header) { + header = header.toLowerCase(); + for (const key of Object.keys((options === null || options === void 0 ? void 0 : options.headers) || {})) { + if (header === key.toLowerCase()) { + return options.headers[key]; + } } - return false; + return undefined; } -exports.isDynamicPattern = isDynamicPattern; -function hasBraceExpansion(pattern) { - const openingBraceIndex = pattern.indexOf('{'); - if (openingBraceIndex === -1) { - return false; +let HttpsProxyAgent; +function loadProxy() { + const proxy = process.env.HTTPS_PROXY || + process.env.https_proxy || + process.env.HTTP_PROXY || + process.env.http_proxy; + if (proxy) { + HttpsProxyAgent = __nccwpck_require__(7219); } - const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1); - if (closingBraceIndex === -1) { + return proxy; +} +loadProxy(); +function skipProxy(url) { + var _a; + const noProxyEnv = (_a = process.env.NO_PROXY) !== null && _a !== void 0 ? _a : process.env.no_proxy; + if (!noProxyEnv) { return false; } - const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); - return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); -} -function convertToPositivePattern(pattern) { - return isNegativePattern(pattern) ? pattern.slice(1) : pattern; + const noProxyUrls = noProxyEnv.split(','); + const parsedURL = new url_1.URL(url); + return !!noProxyUrls.find(url => { + if (url.startsWith('*.') || url.startsWith('.')) { + url = url.replace(/^\*\./, '.'); + return parsedURL.hostname.endsWith(url); + } + else { + return url === parsedURL.origin || url === parsedURL.hostname; + } + }); } -exports.convertToPositivePattern = convertToPositivePattern; -function convertToNegativePattern(pattern) { - return '!' + pattern; -} -exports.convertToNegativePattern = convertToNegativePattern; -function isNegativePattern(pattern) { - return pattern.startsWith('!') && pattern[1] !== '('; -} -exports.isNegativePattern = isNegativePattern; -function isPositivePattern(pattern) { - return !isNegativePattern(pattern); -} -exports.isPositivePattern = isPositivePattern; -function getNegativePatterns(patterns) { - return patterns.filter(isNegativePattern); -} -exports.getNegativePatterns = getNegativePatterns; -function getPositivePatterns(patterns) { - return patterns.filter(isPositivePattern); -} -exports.getPositivePatterns = getPositivePatterns; -/** - * Returns patterns that can be applied inside the current directory. - * - * @example - * // ['./*', '*', 'a/*'] - * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) - */ -function getPatternsInsideCurrentDirectory(patterns) { - return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); -} -exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; -/** - * Returns patterns to be expanded relative to (outside) the current directory. - * - * @example - * // ['../*', './../*'] - * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) - */ -function getPatternsOutsideCurrentDirectory(patterns) { - return patterns.filter(isPatternRelatedToParentDirectory); -} -exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; -function isPatternRelatedToParentDirectory(pattern) { - return pattern.startsWith('..') || pattern.startsWith('./..'); -} -exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; -function getBaseDirectory(pattern) { - return globParent(pattern, { flipBackslashes: false }); -} -exports.getBaseDirectory = getBaseDirectory; -function hasGlobStar(pattern) { - return pattern.includes(GLOBSTAR); -} -exports.hasGlobStar = hasGlobStar; -function endsWithSlashGlobStar(pattern) { - return pattern.endsWith('/' + GLOBSTAR); -} -exports.endsWithSlashGlobStar = endsWithSlashGlobStar; -function isAffectDepthOfReadingPattern(pattern) { - const basename = path.basename(pattern); - return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); -} -exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; -function expandPatternsWithBraceExpansion(patterns) { - return patterns.reduce((collection, pattern) => { - return collection.concat(expandBraceExpansion(pattern)); - }, []); +// Figure out if we should be using a proxy. Only if it's required, load +// the https-proxy-agent module as it adds startup cost. +function getProxy(url) { + // If there is a match between the no_proxy env variables and the url, then do not proxy + if (skipProxy(url)) { + return undefined; + // If there is not a match between the no_proxy env variables and the url, check to see if there should be a proxy + } + else { + return loadProxy(); + } } -exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; -function expandBraceExpansion(pattern) { - const patterns = micromatch.braces(pattern, { expand: true, nodupes: true }); +class Gaxios { /** - * Sort the patterns by length so that the same depth patterns are processed side by side. - * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']` + * The Gaxios class is responsible for making HTTP requests. + * @param defaults The default set of options to be used for this instance. */ - patterns.sort((a, b) => a.length - b.length); + constructor(defaults) { + this.agentCache = new Map(); + this.defaults = defaults || {}; + } /** - * Micromatch can return an empty string in the case of patterns like `{a,}`. + * Perform an HTTP request with the given options. + * @param opts Set of HTTP options that will be used for this HTTP request. */ - return patterns.filter((pattern) => pattern !== ''); -} -exports.expandBraceExpansion = expandBraceExpansion; -function getPatternParts(pattern, options) { - let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true })); + async request(opts = {}) { + opts = this.validateOpts(opts); + return this._request(opts); + } + async _defaultAdapter(opts) { + const fetchImpl = opts.fetchImplementation || fetch; + const res = (await fetchImpl(opts.url, opts)); + const data = await this.getResponseData(opts, res); + return this.translateResponse(opts, res, data); + } /** - * The scan method returns an empty array in some cases. - * See micromatch/picomatch#58 for more details. + * Internal, retryable version of the `request` method. + * @param opts Set of HTTP options that will be used for this HTTP request. */ - if (parts.length === 0) { - parts = [pattern]; + async _request(opts = {}) { + try { + let translatedResponse; + if (opts.adapter) { + translatedResponse = await opts.adapter(opts, this._defaultAdapter.bind(this)); + } + else { + translatedResponse = await this._defaultAdapter(opts); + } + if (!opts.validateStatus(translatedResponse.status)) { + throw new common_1.GaxiosError(`Request failed with status code ${translatedResponse.status}`, opts, translatedResponse); + } + return translatedResponse; + } + catch (e) { + const err = e; + err.config = opts; + const { shouldRetry, config } = await retry_1.getRetryConfig(e); + if (shouldRetry && config) { + err.config.retryConfig.currentRetryAttempt = + config.retryConfig.currentRetryAttempt; + return this._request(err.config); + } + throw err; + } + } + async getResponseData(opts, res) { + switch (opts.responseType) { + case 'stream': + return res.body; + case 'json': { + let data = await res.text(); + try { + data = JSON.parse(data); + } + catch (_a) { + // continue + } + return data; + } + case 'arraybuffer': + return res.arrayBuffer(); + case 'blob': + return res.blob(); + default: + return res.text(); + } } /** - * The scan method does not return an empty part for the pattern with a forward slash. - * This is another part of micromatch/picomatch#58. + * Validates the options, and merges them with defaults. + * @param opts The original options passed from the client. */ - if (parts[0].startsWith('/')) { - parts[0] = parts[0].slice(1); - parts.unshift(''); + validateOpts(options) { + const opts = extend_1.default(true, {}, this.defaults, options); + if (!opts.url) { + throw new Error('URL is required.'); + } + // baseUrl has been deprecated, remove in 2.0 + const baseUrl = opts.baseUrl || opts.baseURL; + if (baseUrl) { + opts.url = baseUrl + opts.url; + } + opts.paramsSerializer = opts.paramsSerializer || this.paramsSerializer; + if (opts.params && Object.keys(opts.params).length > 0) { + let additionalQueryParams = opts.paramsSerializer(opts.params); + if (additionalQueryParams.startsWith('?')) { + additionalQueryParams = additionalQueryParams.slice(1); + } + const prefix = opts.url.includes('?') ? '&' : '?'; + opts.url = opts.url + prefix + additionalQueryParams; + } + if (typeof options.maxContentLength === 'number') { + opts.size = options.maxContentLength; + } + if (typeof options.maxRedirects === 'number') { + opts.follow = options.maxRedirects; + } + opts.headers = opts.headers || {}; + if (opts.data) { + const isFormData = typeof FormData === 'undefined' + ? false + : (opts === null || opts === void 0 ? void 0 : opts.data) instanceof FormData; + if (is_stream_1.default.readable(opts.data)) { + opts.body = opts.data; + } + else if (hasBuffer() && Buffer.isBuffer(opts.data)) { + // Do not attempt to JSON.stringify() a Buffer: + opts.body = opts.data; + if (!hasHeader(opts, 'Content-Type')) { + opts.headers['Content-Type'] = 'application/json'; + } + } + else if (typeof opts.data === 'object') { + // If www-form-urlencoded content type has been set, but data is + // provided as an object, serialize the content using querystring: + if (!isFormData) { + if (getHeader(opts, 'content-type') === + 'application/x-www-form-urlencoded') { + opts.body = opts.paramsSerializer(opts.data); + } + else { + // } else if (!(opts.data instanceof FormData)) { + if (!hasHeader(opts, 'Content-Type')) { + opts.headers['Content-Type'] = 'application/json'; + } + opts.body = JSON.stringify(opts.data); + } + } + } + else { + opts.body = opts.data; + } + } + opts.validateStatus = opts.validateStatus || this.validateStatus; + opts.responseType = opts.responseType || 'json'; + if (!opts.headers['Accept'] && opts.responseType === 'json') { + opts.headers['Accept'] = 'application/json'; + } + opts.method = opts.method || 'GET'; + const proxy = getProxy(opts.url); + if (proxy) { + if (this.agentCache.has(proxy)) { + opts.agent = this.agentCache.get(proxy); + } + else { + // Proxy is being used in conjunction with mTLS. + if (opts.cert && opts.key) { + const parsedURL = new url_1.URL(proxy); + opts.agent = new HttpsProxyAgent({ + port: parsedURL.port, + host: parsedURL.host, + protocol: parsedURL.protocol, + cert: opts.cert, + key: opts.key, + }); + } + else { + opts.agent = new HttpsProxyAgent(proxy); + } + this.agentCache.set(proxy, opts.agent); + } + } + else if (opts.cert && opts.key) { + // Configure client for mTLS: + if (this.agentCache.has(opts.key)) { + opts.agent = this.agentCache.get(opts.key); + } + else { + opts.agent = new https_1.Agent({ + cert: opts.cert, + key: opts.key, + }); + this.agentCache.set(opts.key, opts.agent); + } + } + return opts; + } + /** + * By default, throw for any non-2xx status code + * @param status status code from the HTTP response + */ + validateStatus(status) { + return status >= 200 && status < 300; + } + /** + * Encode a set of key/value pars into a querystring format (?foo=bar&baz=boo) + * @param params key value pars to encode + */ + paramsSerializer(params) { + return querystring_1.default.stringify(params); + } + translateResponse(opts, res, data) { + // headers need to be converted from a map to an obj + const headers = {}; + res.headers.forEach((value, key) => { + headers[key] = value; + }); + return { + config: opts, + data: data, + headers, + status: res.status, + statusText: res.statusText, + // XMLHttpRequestLike + request: { + responseURL: res.url, + }, + }; } - return parts; -} -exports.getPatternParts = getPatternParts; -function makeRe(pattern, options) { - return micromatch.makeRe(pattern, options); -} -exports.makeRe = makeRe; -function convertPatternsToRe(patterns, options) { - return patterns.map((pattern) => makeRe(pattern, options)); -} -exports.convertPatternsToRe = convertPatternsToRe; -function matchAny(entry, patternsRe) { - return patternsRe.some((patternRe) => patternRe.test(entry)); -} -exports.matchAny = matchAny; -/** - * This package only works with forward slashes as a path separator. - * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. - */ -function removeDuplicateSlashes(pattern) { - return pattern.replace(DOUBLE_SLASH_RE, '/'); } -exports.removeDuplicateSlashes = removeDuplicateSlashes; - +exports.Gaxios = Gaxios; +//# sourceMappingURL=gaxios.js.map /***/ }), -/***/ 8382: +/***/ 9555: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; +// Copyright 2018 Google LLC +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.merge = void 0; -const merge2 = __nccwpck_require__(2578); -function merge(streams) { - const mergedStream = merge2(streams); - streams.forEach((stream) => { - stream.once('error', (error) => mergedStream.emit('error', error)); - }); - mergedStream.once('close', () => propagateCloseEventToSources(streams)); - mergedStream.once('end', () => propagateCloseEventToSources(streams)); - return mergedStream; -} -exports.merge = merge; -function propagateCloseEventToSources(streams) { - streams.forEach((stream) => stream.emit('close')); +exports.request = exports.instance = exports.Gaxios = void 0; +const gaxios_1 = __nccwpck_require__(8133); +Object.defineProperty(exports, "Gaxios", ({ enumerable: true, get: function () { return gaxios_1.Gaxios; } })); +var common_1 = __nccwpck_require__(6129); +Object.defineProperty(exports, "GaxiosError", ({ enumerable: true, get: function () { return common_1.GaxiosError; } })); +/** + * The default instance used when the `request` method is directly + * invoked. + */ +exports.instance = new gaxios_1.Gaxios(); +/** + * Make an HTTP request using the given options. + * @param opts Options for the request + */ +async function request(opts) { + return exports.instance.request(opts); } - +exports.request = request; +//# sourceMappingURL=index.js.map /***/ }), -/***/ 2203: +/***/ 1052: /***/ ((__unused_webpack_module, exports) => { "use strict"; +// Copyright 2018 Google LLC +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isEmpty = exports.isString = void 0; -function isString(input) { - return typeof input === 'string'; +exports.getRetryConfig = void 0; +async function getRetryConfig(err) { + var _a; + let config = getConfig(err); + if (!err || !err.config || (!config && !err.config.retry)) { + return { shouldRetry: false }; + } + config = config || {}; + config.currentRetryAttempt = config.currentRetryAttempt || 0; + config.retry = + config.retry === undefined || config.retry === null ? 3 : config.retry; + config.httpMethodsToRetry = config.httpMethodsToRetry || [ + 'GET', + 'HEAD', + 'PUT', + 'OPTIONS', + 'DELETE', + ]; + config.noResponseRetries = + config.noResponseRetries === undefined || config.noResponseRetries === null + ? 2 + : config.noResponseRetries; + // If this wasn't in the list of status codes where we want + // to automatically retry, return. + const retryRanges = [ + // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes + // 1xx - Retry (Informational, request still processing) + // 2xx - Do not retry (Success) + // 3xx - Do not retry (Redirect) + // 4xx - Do not retry (Client errors) + // 429 - Retry ("Too Many Requests") + // 5xx - Retry (Server errors) + [100, 199], + [429, 429], + [500, 599], + ]; + config.statusCodesToRetry = config.statusCodesToRetry || retryRanges; + // Put the config back into the err + err.config.retryConfig = config; + // Determine if we should retry the request + const shouldRetryFn = config.shouldRetry || shouldRetryRequest; + if (!(await shouldRetryFn(err))) { + return { shouldRetry: false, config: err.config }; + } + // Calculate time to wait with exponential backoff. + // If this is the first retry, look for a configured retryDelay. + const retryDelay = config.currentRetryAttempt ? 0 : (_a = config.retryDelay) !== null && _a !== void 0 ? _a : 100; + // Formula: retryDelay + ((2^c - 1 / 2) * 1000) + const delay = retryDelay + ((Math.pow(2, config.currentRetryAttempt) - 1) / 2) * 1000; + // We're going to retry! Incremenent the counter. + err.config.retryConfig.currentRetryAttempt += 1; + // Create a promise that invokes the retry after the backOffDelay + const backoff = new Promise(resolve => { + setTimeout(resolve, delay); + }); + // Notify the user if they added an `onRetryAttempt` handler + if (config.onRetryAttempt) { + config.onRetryAttempt(err); + } + // Return the promise in which recalls Gaxios to retry the request + await backoff; + return { shouldRetry: true, config: err.config }; } -exports.isString = isString; -function isEmpty(input) { - return input === ''; +exports.getRetryConfig = getRetryConfig; +/** + * Determine based on config if we should retry the request. + * @param err The GaxiosError passed to the interceptor. + */ +function shouldRetryRequest(err) { + const config = getConfig(err); + // node-fetch raises an AbortError if signaled: + // https://github.com/bitinn/node-fetch#request-cancellation-with-abortsignal + if (err.name === 'AbortError') { + return false; + } + // If there's no config, or retries are disabled, return. + if (!config || config.retry === 0) { + return false; + } + // Check if this error has no response (ETIMEDOUT, ENOTFOUND, etc) + if (!err.response && + (config.currentRetryAttempt || 0) >= config.noResponseRetries) { + return false; + } + // Only retry with configured HttpMethods. + if (!err.config.method || + config.httpMethodsToRetry.indexOf(err.config.method.toUpperCase()) < 0) { + return false; + } + // If this wasn't in the list of status codes where we want + // to automatically retry, return. + if (err.response && err.response.status) { + let isInRange = false; + for (const [min, max] of config.statusCodesToRetry) { + const status = err.response.status; + if (status >= min && status <= max) { + isInRange = true; + break; + } + } + if (!isInRange) { + return false; + } + } + // If we are out of retry attempts, return + config.currentRetryAttempt = config.currentRetryAttempt || 0; + if (config.currentRetryAttempt >= config.retry) { + return false; + } + return true; } -exports.isEmpty = isEmpty; - - -/***/ }), - -/***/ 1917: -/***/ (function() { - -(function(l){function m(){}function k(a,c){a=void 0===a?"utf-8":a;c=void 0===c?{fatal:!1}:c;if(-1===r.indexOf(a.toLowerCase()))throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+a+"') is invalid.");if(c.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.");}function t(a){return Buffer.from(a.buffer,a.byteOffset,a.byteLength).toString("utf-8")}function u(a){var c=URL.createObjectURL(new Blob([a],{type:"text/plain;charset=UTF-8"})); -try{var f=new XMLHttpRequest;f.open("GET",c,!1);f.send();return f.responseText}catch(e){return q(a)}finally{URL.revokeObjectURL(c)}}function q(a){for(var c=0,f=Math.min(65536,a.length+1),e=new Uint16Array(f),h=[],d=0;;){var b=c=f-1){h.push(String.fromCharCode.apply(null,e.subarray(0,d)));if(!b)return h.join("");a=a.subarray(c);d=c=0}b=a[c++];if(0===(b&128))e[d++]=b;else if(192===(b&224)){var g=a[c++]&63;e[d++]=(b&31)<<6|g}else if(224===(b&240)){g=a[c++]&63;var n=a[c++]&63;e[d++]= -(b&31)<<12|g<<6|n}else if(240===(b&248)){g=a[c++]&63;n=a[c++]&63;var v=a[c++]&63;b=(b&7)<<18|g<<12|n<<6|v;65535>>10&1023|55296,b=56320|b&1023);e[d++]=b}}}if(l.TextEncoder&&l.TextDecoder)return!1;var r=["utf-8","utf8","unicode-1-1-utf-8"];Object.defineProperty(m.prototype,"encoding",{value:"utf-8"});m.prototype.encode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error("Failed to encode: the 'stream' option is unsupported.");c=0;for(var f=a.length,e=0,h=Math.max(32, -f+(f>>>1)+7),d=new Uint8Array(h>>>3<<3);c=b){if(c=b)continue}e+4>d.length&&(h+=8,h*=1+c/a.length*2,h=h>>>3<<3,g=new Uint8Array(h),g.set(d),d=g);if(0===(b&4294967168))d[e++]=b;else{if(0===(b&4294965248))d[e++]=b>>>6&31|192;else if(0===(b&4294901760))d[e++]=b>>>12&15|224,d[e++]=b>>>6&63|128;else if(0===(b&4292870144))d[e++]=b>>>18&7|240,d[e++]=b>>>12& -63|128,d[e++]=b>>>6&63|128;else continue;d[e++]=b&63|128}}return d.slice?d.slice(0,e):d.subarray(0,e)};Object.defineProperty(k.prototype,"encoding",{value:"utf-8"});Object.defineProperty(k.prototype,"fatal",{value:!1});Object.defineProperty(k.prototype,"ignoreBOM",{value:!1});var p=q;"function"===typeof Buffer&&Buffer.from?p=t:"function"===typeof Blob&&"function"===typeof URL&&"function"===typeof URL.createObjectURL&&(p=u);k.prototype.decode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error("Failed to decode: the 'stream' option is unsupported."); -a=a instanceof Uint8Array?a:a.buffer instanceof ArrayBuffer?new Uint8Array(a.buffer):new Uint8Array(a);return p(a)};l.TextEncoder=m;l.TextDecoder=k})("undefined"!==typeof window?window:"undefined"!==typeof global?global:this); - +/** + * Acquire the raxConfig object from an GaxiosError if available. + * @param err The Gaxios error with a config object. + */ +function getConfig(err) { + if (err && err.config && err.config.retryConfig) { + return err.config.retryConfig; + } + return; +} +//# sourceMappingURL=retry.js.map /***/ }), -/***/ 7340: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 8313: +/***/ ((module, exports, __nccwpck_require__) => { "use strict"; -/* eslint-disable no-var */ +Object.defineProperty(exports, "__esModule", ({ value: true })); -var reusify = __nccwpck_require__(2113) +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } -function fastqueue (context, worker, concurrency) { - if (typeof context === 'function') { - concurrency = worker - worker = context - context = null - } +var Stream = _interopDefault(__nccwpck_require__(2781)); +var http = _interopDefault(__nccwpck_require__(3685)); +var Url = _interopDefault(__nccwpck_require__(7310)); +var whatwgUrl = _interopDefault(__nccwpck_require__(5380)); +var https = _interopDefault(__nccwpck_require__(5687)); +var zlib = _interopDefault(__nccwpck_require__(9796)); - if (concurrency < 1) { - throw new Error('fastqueue concurrency must be greater than 1') - } +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js - var cache = reusify(Task) - var queueHead = null - var queueTail = null - var _running = 0 - var errorHandler = null +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; - var self = { - push: push, - drain: noop, - saturated: noop, - pause: pause, - paused: false, - concurrency: concurrency, - running: running, - resume: resume, - idle: idle, - length: length, - getQueue: getQueue, - unshift: unshift, - empty: noop, - kill: kill, - killAndDrain: killAndDrain, - error: error - } +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); - return self +class Blob { + constructor() { + this[TYPE] = ''; - function running () { - return _running - } + const blobParts = arguments[0]; + const options = arguments[1]; - function pause () { - self.paused = true - } + const buffers = []; + let size = 0; - function length () { - var current = queueHead - var counter = 0 + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } - while (current) { - current = current.next - counter++ - } + this[BUFFER] = Buffer.concat(buffers); - return counter - } + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; - function getQueue () { - var current = queueHead - var tasks = [] + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); - while (current) { - tasks.push(current.value) - current = current.next - } + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} - return tasks - } +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); - function resume () { - if (!self.paused) return - self.paused = false - for (var i = 0; i < self.concurrency; i++) { - _running++ - release() - } - } +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); - function idle () { - return _running === 0 && self.length() === 0 - } +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ - function push (value, done) { - var current = cache.get() +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); - current.context = context - current.release = release - current.value = value - current.callback = done || noop - current.errorHandler = errorHandler + this.message = message; + this.type = type; - if (_running === self.concurrency || self.paused) { - if (queueTail) { - queueTail.next = current - queueTail = current - } else { - queueHead = current - queueTail = current - self.saturated() - } - } else { - _running++ - worker.call(context, current.value, current.worked) - } + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; } - function unshift (value, done) { - var current = cache.get() - - current.context = context - current.release = release - current.value = value - current.callback = done || noop + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} - if (_running === self.concurrency || self.paused) { - if (queueHead) { - current.next = queueHead - queueHead = current - } else { - queueHead = current - queueTail = current - self.saturated() - } - } else { - _running++ - worker.call(context, current.value, current.worked) - } - } +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; - function release (holder) { - if (holder) { - cache.release(holder) - } - var next = queueHead - if (next) { - if (!self.paused) { - if (queueTail === queueHead) { - queueTail = null - } - queueHead = next.next - next.next = null - worker.call(context, next.value, next.worked) - if (queueTail === null) { - self.empty() - } - } else { - _running-- - } - } else if (--_running === 0) { - self.drain() - } - } +let convert; +try { + convert = (__nccwpck_require__(2877).convert); +} catch (e) {} - function kill () { - queueHead = null - queueTail = null - self.drain = noop - } +const INTERNALS = Symbol('Body internals'); - function killAndDrain () { - queueHead = null - queueTail = null - self.drain() - self.drain = noop - } +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; - function error (handler) { - errorHandler = handler - } -} +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; -function noop () {} + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; -function Task () { - this.value = null - this.callback = noop - this.next = null - this.release = noop - this.context = null - this.errorHandler = null + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; - var self = this + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; - this.worked = function worked (err, result) { - var callback = self.callback - var errorHandler = self.errorHandler - var val = self.value - self.value = null - self.callback = noop - if (self.errorHandler) { - errorHandler(err, val) - } - callback.call(self.context, err, result) - self.release(self) - } + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } } -function queueAsPromised (context, worker, concurrency) { - if (typeof context === 'function') { - concurrency = worker - worker = context - context = null - } +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, - function asyncWrapper (arg, cb) { - worker.call(this, arg) - .then(function (res) { - cb(null, res) - }, cb) - } + get bodyUsed() { + return this[INTERNALS].disturbed; + }, - var queue = fastqueue(context, asyncWrapper, concurrency) + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, - var pushCb = queue.push - var unshiftCb = queue.unshift + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, - queue.push = push - queue.unshift = unshift - queue.drained = drained + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; - return queue + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, - function push (value) { - var p = new Promise(function (resolve, reject) { - pushCb(value, function (err, result) { - if (err) { - reject(err) - return - } - resolve(result) - }) - }) + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, - // Let's fork the promise chain to - // make the error bubble up to the user but - // not lead to a unhandledRejection - p.catch(noop) + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, - return p - } + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; - function unshift (value) { - var p = new Promise(function (resolve, reject) { - unshiftCb(value, function (err, result) { - if (err) { - reject(err) - return - } - resolve(result) - }) - }) + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; - // Let's fork the promise chain to - // make the error bubble up to the user but - // not lead to a unhandledRejection - p.catch(noop) - - return p - } +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); - function drained () { - if (queue.idle()) { - return new Promise(function (resolve) { - resolve() - }) - } +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; - var previousDrain = queue.drain +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; - var p = new Promise(function (resolve) { - queue.drain = function () { - previousDrain() - resolve() - } - }) + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } - return p - } -} + this[INTERNALS].disturbed = true; -module.exports = fastqueue -module.exports.promise = queueAsPromised + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + let body = this.body; -/***/ }), + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } -/***/ 6330: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // body is blob + if (isBlob(body)) { + body = body.stream(); + } -"use strict"; -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; -const util = __nccwpck_require__(3837); -const toRegexRange = __nccwpck_require__(1861); + return new Body.Promise(function (resolve, reject) { + let resTimeout; -const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } -const transform = toNumber => { - return value => toNumber === true ? Number(value) : String(value); -}; + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); -const isValidValue = value => { - return typeof value === 'number' || (typeof value === 'string' && value !== ''); -}; + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } -const isNumber = num => Number.isInteger(+num); + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } -const zeros = input => { - let value = `${input}`; - let index = -1; - if (value[0] === '-') value = value.slice(1); - if (value === '0') return false; - while (value[++index] === '0'); - return index > 0; -}; + accumBytes += chunk.length; + accum.push(chunk); + }); -const stringify = (start, end, options) => { - if (typeof start === 'string' || typeof end === 'string') { - return true; - } - return options.stringify === true; -}; + body.on('end', function () { + if (abort) { + return; + } -const pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === '-' ? '-' : ''; - if (dash) input = input.slice(1); - input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); - } - if (toNumber === false) { - return String(input); - } - return input; -}; + clearTimeout(resTimeout); -const toMaxLen = (input, maxLength) => { - let negative = input[0] === '-' ? '-' : ''; - if (negative) { - input = input.slice(1); - maxLength--; - } - while (input.length < maxLength) input = '0' + input; - return negative ? ('-' + input) : input; -}; + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} -const toSequence = (parts, options) => { - parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } - let prefix = options.capture ? '' : '?:'; - let positives = ''; - let negatives = ''; - let result; + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; - if (parts.positives.length) { - positives = parts.positives.join('|'); - } + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join('|')})`; - } + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; - } + // html5 + if (!res && str) { + res = / { - if (isNumbers) { - return toRegexRange(a, b, { wrap: false, ...options }); - } + // xml + if (!res && str) { + res = /<\?xml.+?encoding=(['"])(.+?)\1/i.exec(str); + } - let start = String.fromCharCode(a); - if (a === b) return start; + // found charset + if (res) { + charset = res.pop(); - let stop = String.fromCharCode(b); - return `[${start}-${stop}]`; -}; + // prevent decode issues when sites use incorrect encoding + // ref: https://hsivonen.fi/encoding-menu/ + if (charset === 'gb2312' || charset === 'gbk') { + charset = 'gb18030'; + } + } -const toRegex = (start, end, options) => { - if (Array.isArray(start)) { - let wrap = options.wrap === true; - let prefix = options.capture ? '' : '?:'; - return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); - } - return toRegexRange(start, end, options); -}; + // turn raw buffers into a single utf-8 buffer + return convert(buffer, 'UTF-8', charset).toString(); +} -const rangeError = (...args) => { - return new RangeError('Invalid range arguments: ' + util.inspect(...args)); -}; +/** + * Detect a URLSearchParams object + * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143 + * + * @param Object obj Object to detect by type or brand + * @return String + */ +function isURLSearchParams(obj) { + // Duck-typing as a necessary condition. + if (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') { + return false; + } -const invalidRange = (start, end, options) => { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; -}; + // Brand-checking and more duck-typing as optional condition. + return obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function'; +} -const invalidStep = (step, options) => { - if (options.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } - return []; -}; +/** + * Check if `obj` is a W3C `Blob` object (which `File` inherits from) + * @param {*} obj + * @return {boolean} + */ +function isBlob(obj) { + return typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]); +} -const fillNumbers = (start, end, step = 1, options = {}) => { - let a = Number(start); - let b = Number(end); +/** + * Clone body given Res/Req instance + * + * @param Mixed instance Response or Request instance + * @return Mixed + */ +function clone(instance) { + let p1, p2; + let body = instance.body; - if (!Number.isInteger(a) || !Number.isInteger(b)) { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; - } + // don't allow cloning a used body + if (instance.bodyUsed) { + throw new Error('cannot clone body after it is used'); + } - // fix negative zero - if (a === 0) a = 0; - if (b === 0) b = 0; + // check that body is a stream and not form-data object + // note: we can't clone the form-data object without having it as a dependency + if (body instanceof Stream && typeof body.getBoundary !== 'function') { + // tee instance body + p1 = new PassThrough(); + p2 = new PassThrough(); + body.pipe(p1); + body.pipe(p2); + // set instance body to teed body and return the other teed body + instance[INTERNALS].body = p1; + body = p2; + } - let descending = a > b; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); + return body; +} - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify(start, end, options) === false; - let format = options.transform || transform(toNumber); +/** + * Performs the operation "extract a `Content-Type` value from |object|" as + * specified in the specification: + * https://fetch.spec.whatwg.org/#concept-bodyinit-extract + * + * This function assumes that instance.body is present. + * + * @param Mixed instance Any options.body input + */ +function extractContentType(body) { + if (body === null) { + // body is null + return null; + } else if (typeof body === 'string') { + // body is string + return 'text/plain;charset=UTF-8'; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + return 'application/x-www-form-urlencoded;charset=UTF-8'; + } else if (isBlob(body)) { + // body is blob + return body.type || null; + } else if (Buffer.isBuffer(body)) { + // body is buffer + return null; + } else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + return null; + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + return null; + } else if (typeof body.getBoundary === 'function') { + // detect form data input from form-data module + return `multipart/form-data;boundary=${body.getBoundary()}`; + } else if (body instanceof Stream) { + // body is stream + // can't really do much about this + return null; + } else { + // Body constructor defaults other things to string + return 'text/plain;charset=UTF-8'; + } +} - if (options.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); - } +/** + * The Fetch Standard treats this as if "total bytes" is a property on the body. + * For us, we have to explicitly get it with a function. + * + * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes + * + * @param Body instance Instance of Body + * @return Number? Number of bytes, or null if not possible + */ +function getTotalBytes(instance) { + const body = instance.body; - let parts = { negatives: [], positives: [] }; - let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); - let range = []; - let index = 0; - while (descending ? a >= b : a <= b) { - if (options.toRegex === true && step > 1) { - push(a); - } else { - range.push(pad(format(a, index), maxLen, toNumber)); - } - a = descending ? a - step : a + step; - index++; - } + if (body === null) { + // body is null + return 0; + } else if (isBlob(body)) { + return body.size; + } else if (Buffer.isBuffer(body)) { + // body is buffer + return body.length; + } else if (body && typeof body.getLengthSync === 'function') { + // detect form data input from form-data module + if (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x + body.hasKnownLength && body.hasKnownLength()) { + // 2.x + return body.getLengthSync(); + } + return null; + } else { + // body is stream + return null; + } +} - if (options.toRegex === true) { - return step > 1 - ? toSequence(parts, options) - : toRegex(range, null, { wrap: false, ...options }); - } +/** + * Write a Body to a Node.js WritableStream (e.g. http.Request) object. + * + * @param Body instance Instance of Body + * @return Void + */ +function writeToStream(dest, instance) { + const body = instance.body; - return range; -}; -const fillLetters = (start, end, step = 1, options = {}) => { - if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { - return invalidRange(start, end, options); - } + if (body === null) { + // body is null + dest.end(); + } else if (isBlob(body)) { + body.stream().pipe(dest); + } else if (Buffer.isBuffer(body)) { + // body is buffer + dest.write(body); + dest.end(); + } else { + // body is stream + body.pipe(dest); + } +} +// expose Promise +Body.Promise = global.Promise; - let format = options.transform || (val => String.fromCharCode(val)); - let a = `${start}`.charCodeAt(0); - let b = `${end}`.charCodeAt(0); +/** + * headers.js + * + * Headers class offers convenient helpers + */ - let descending = a > b; - let min = Math.min(a, b); - let max = Math.max(a, b); +const invalidTokenRegex = /[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/; +const invalidHeaderCharRegex = /[^\t\x20-\x7e\x80-\xff]/; - if (options.toRegex && step === 1) { - return toRange(min, max, false, options); - } +function validateName(name) { + name = `${name}`; + if (invalidTokenRegex.test(name) || name === '') { + throw new TypeError(`${name} is not a legal HTTP header name`); + } +} - let range = []; - let index = 0; +function validateValue(value) { + value = `${value}`; + if (invalidHeaderCharRegex.test(value)) { + throw new TypeError(`${value} is not a legal HTTP header value`); + } +} - while (descending ? a >= b : a <= b) { - range.push(format(a, index)); - a = descending ? a - step : a + step; - index++; - } +/** + * Find the key in the map object given a header name. + * + * Returns undefined if not found. + * + * @param String name Header name + * @return String|Undefined + */ +function find(map, name) { + name = name.toLowerCase(); + for (const key in map) { + if (key.toLowerCase() === name) { + return key; + } + } + return undefined; +} - if (options.toRegex === true) { - return toRegex(range, null, { wrap: false, options }); - } +const MAP = Symbol('map'); +class Headers { + /** + * Headers class + * + * @param Object headers Response headers + * @return Void + */ + constructor() { + let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; - return range; -}; + this[MAP] = Object.create(null); -const fill = (start, end, step, options = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options); - } + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } - if (typeof step === 'function') { - return fill(start, end, 1, { transform: step }); - } + return; + } - if (isObject(step)) { - return fill(start, end, 0, step); - } + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } - let opts = { ...options }; - if (opts.capture === true) opts.wrap = true; - step = step || opts.step || 1; + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } - if (!isNumber(step)) { - if (step != null && !isObject(step)) return invalidStep(step, opts); - return fill(start, end, 1, step); - } + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } - if (isNumber(start) && isNumber(end)) { - return fillNumbers(start, end, step, opts); - } + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); -}; + return this[MAP][key].join(', '); + } -module.exports = fill; + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; -/***/ }), + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } -/***/ 6129: -/***/ ((__unused_webpack_module, exports) => { + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } -"use strict"; + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } -// Copyright 2018 Google LLC -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.GaxiosError = void 0; -/* eslint-disable @typescript-eslint/no-explicit-any */ -class GaxiosError extends Error { - constructor(message, options, response) { - super(message); - this.response = response; - this.config = options; - this.code = response.status.toString(); - } -} -exports.GaxiosError = GaxiosError; -//# sourceMappingURL=common.js.map + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } -/***/ }), + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } -/***/ 8133: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } -"use strict"; + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } -// Copyright 2018 Google LLC -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Gaxios = void 0; -const extend_1 = __importDefault(__nccwpck_require__(8171)); -const https_1 = __nccwpck_require__(5687); -const node_fetch_1 = __importDefault(__nccwpck_require__(8313)); -const querystring_1 = __importDefault(__nccwpck_require__(3477)); -const is_stream_1 = __importDefault(__nccwpck_require__(1554)); -const url_1 = __nccwpck_require__(7310); -const common_1 = __nccwpck_require__(6129); -const retry_1 = __nccwpck_require__(1052); -/* eslint-disable @typescript-eslint/no-explicit-any */ -const fetch = hasFetch() ? window.fetch : node_fetch_1.default; -function hasWindow() { - return typeof window !== 'undefined' && !!window; -} -function hasFetch() { - return hasWindow() && !!window.fetch; -} -function hasBuffer() { - return typeof Buffer !== 'undefined'; -} -function hasHeader(options, header) { - return !!getHeader(options, header); + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } } -function getHeader(options, header) { - header = header.toLowerCase(); - for (const key of Object.keys((options === null || options === void 0 ? void 0 : options.headers) || {})) { - if (header === key.toLowerCase()) { - return options.headers[key]; - } - } - return undefined; +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); } -let HttpsProxyAgent; -function loadProxy() { - const proxy = process.env.HTTPS_PROXY || - process.env.https_proxy || - process.env.HTTP_PROXY || - process.env.http_proxy; - if (proxy) { - HttpsProxyAgent = __nccwpck_require__(7219); - } - return proxy; + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; } -loadProxy(); -function skipProxy(url) { - var _a; - const noProxyEnv = (_a = process.env.NO_PROXY) !== null && _a !== void 0 ? _a : process.env.no_proxy; - if (!noProxyEnv) { - return false; - } - const noProxyUrls = noProxyEnv.split(','); - const parsedURL = new url_1.URL(url); - return !!noProxyUrls.find(url => { - if (url.startsWith('*.') || url.startsWith('.')) { - url = url.replace(/^\*\./, '.'); - return parsedURL.hostname.endsWith(url); - } - else { - return url === parsedURL.origin || url === parsedURL.hostname; - } - }); + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; } -// Figure out if we should be using a proxy. Only if it's required, load -// the https-proxy-agent module as it adds startup cost. -function getProxy(url) { - // If there is a match between the no_proxy env variables and the url, then do not proxy - if (skipProxy(url)) { - return undefined; - // If there is not a match between the no_proxy env variables and the url, check to see if there should be a proxy - } - else { - return loadProxy(); - } + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; } -class Gaxios { - /** - * The Gaxios class is responsible for making HTTP requests. - * @param defaults The default set of options to be used for this instance. - */ - constructor(defaults) { - this.agentCache = new Map(); - this.defaults = defaults || {}; - } - /** - * Perform an HTTP request with the given options. - * @param opts Set of HTTP options that will be used for this HTTP request. - */ - async request(opts = {}) { - opts = this.validateOpts(opts); - return this._request(opts); - } - async _defaultAdapter(opts) { - const fetchImpl = opts.fetchImplementation || fetch; - const res = (await fetchImpl(opts.url, opts)); - const data = await this.getResponseData(opts, res); - return this.translateResponse(opts, res, data); - } - /** - * Internal, retryable version of the `request` method. - * @param opts Set of HTTP options that will be used for this HTTP request. - */ - async _request(opts = {}) { - try { - let translatedResponse; - if (opts.adapter) { - translatedResponse = await opts.adapter(opts, this._defaultAdapter.bind(this)); - } - else { - translatedResponse = await this._defaultAdapter(opts); - } - if (!opts.validateStatus(translatedResponse.status)) { - throw new common_1.GaxiosError(`Request failed with status code ${translatedResponse.status}`, opts, translatedResponse); - } - return translatedResponse; - } - catch (e) { - const err = e; - err.config = opts; - const { shouldRetry, config } = await retry_1.getRetryConfig(e); - if (shouldRetry && config) { - err.config.retryConfig.currentRetryAttempt = - config.retryConfig.currentRetryAttempt; - return this._request(err.config); - } - throw err; - } - } - async getResponseData(opts, res) { - switch (opts.responseType) { - case 'stream': - return res.body; - case 'json': { - let data = await res.text(); - try { - data = JSON.parse(data); - } - catch (_a) { - // continue - } - return data; - } - case 'arraybuffer': - return res.arrayBuffer(); - case 'blob': - return res.blob(); - default: - return res.text(); - } - } - /** - * Validates the options, and merges them with defaults. - * @param opts The original options passed from the client. - */ - validateOpts(options) { - const opts = extend_1.default(true, {}, this.defaults, options); - if (!opts.url) { - throw new Error('URL is required.'); - } - // baseUrl has been deprecated, remove in 2.0 - const baseUrl = opts.baseUrl || opts.baseURL; - if (baseUrl) { - opts.url = baseUrl + opts.url; - } - opts.paramsSerializer = opts.paramsSerializer || this.paramsSerializer; - if (opts.params && Object.keys(opts.params).length > 0) { - let additionalQueryParams = opts.paramsSerializer(opts.params); - if (additionalQueryParams.startsWith('?')) { - additionalQueryParams = additionalQueryParams.slice(1); - } - const prefix = opts.url.includes('?') ? '&' : '?'; - opts.url = opts.url + prefix + additionalQueryParams; - } - if (typeof options.maxContentLength === 'number') { - opts.size = options.maxContentLength; - } - if (typeof options.maxRedirects === 'number') { - opts.follow = options.maxRedirects; - } - opts.headers = opts.headers || {}; - if (opts.data) { - const isFormData = typeof FormData === 'undefined' - ? false - : (opts === null || opts === void 0 ? void 0 : opts.data) instanceof FormData; - if (is_stream_1.default.readable(opts.data)) { - opts.body = opts.data; - } - else if (hasBuffer() && Buffer.isBuffer(opts.data)) { - // Do not attempt to JSON.stringify() a Buffer: - opts.body = opts.data; - if (!hasHeader(opts, 'Content-Type')) { - opts.headers['Content-Type'] = 'application/json'; - } - } - else if (typeof opts.data === 'object') { - // If www-form-urlencoded content type has been set, but data is - // provided as an object, serialize the content using querystring: - if (!isFormData) { - if (getHeader(opts, 'content-type') === - 'application/x-www-form-urlencoded') { - opts.body = opts.paramsSerializer(opts.data); - } - else { - // } else if (!(opts.data instanceof FormData)) { - if (!hasHeader(opts, 'Content-Type')) { - opts.headers['Content-Type'] = 'application/json'; - } - opts.body = JSON.stringify(opts.data); - } - } - } - else { - opts.body = opts.data; - } - } - opts.validateStatus = opts.validateStatus || this.validateStatus; - opts.responseType = opts.responseType || 'json'; - if (!opts.headers['Accept'] && opts.responseType === 'json') { - opts.headers['Accept'] = 'application/json'; - } - opts.method = opts.method || 'GET'; - const proxy = getProxy(opts.url); - if (proxy) { - if (this.agentCache.has(proxy)) { - opts.agent = this.agentCache.get(proxy); - } - else { - // Proxy is being used in conjunction with mTLS. - if (opts.cert && opts.key) { - const parsedURL = new url_1.URL(proxy); - opts.agent = new HttpsProxyAgent({ - port: parsedURL.port, - host: parsedURL.host, - protocol: parsedURL.protocol, - cert: opts.cert, - key: opts.key, - }); - } - else { - opts.agent = new HttpsProxyAgent(proxy); - } - this.agentCache.set(proxy, opts.agent); - } - } - else if (opts.cert && opts.key) { - // Configure client for mTLS: - if (this.agentCache.has(opts.key)) { - opts.agent = this.agentCache.get(opts.key); - } - else { - opts.agent = new https_1.Agent({ - cert: opts.cert, - key: opts.key, - }); - this.agentCache.set(opts.key, opts.agent); - } - } - return opts; - } - /** - * By default, throw for any non-2xx status code - * @param status status code from the HTTP response - */ - validateStatus(status) { - return status >= 200 && status < 300; - } - /** - * Encode a set of key/value pars into a querystring format (?foo=bar&baz=boo) - * @param params key value pars to encode - */ - paramsSerializer(params) { - return querystring_1.default.stringify(params); - } - translateResponse(opts, res, data) { - // headers need to be converted from a map to an obj - const headers = {}; - res.headers.forEach((value, key) => { - headers[key] = value; - }); - return { - config: opts, - data: data, - headers, - status: res.status, - statusText: res.statusText, - // XMLHttpRequestLike - request: { - responseURL: res.url, - }, - }; - } -} -exports.Gaxios = Gaxios; -//# sourceMappingURL=gaxios.js.map - -/***/ }), -/***/ 9555: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +const INTERNALS$1 = Symbol('Response internals'); -"use strict"; +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; -// Copyright 2018 Google LLC -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.request = exports.instance = exports.Gaxios = void 0; -const gaxios_1 = __nccwpck_require__(8133); -Object.defineProperty(exports, "Gaxios", ({ enumerable: true, get: function () { return gaxios_1.Gaxios; } })); -var common_1 = __nccwpck_require__(6129); -Object.defineProperty(exports, "GaxiosError", ({ enumerable: true, get: function () { return common_1.GaxiosError; } })); -/** - * The default instance used when the `request` method is directly - * invoked. - */ -exports.instance = new gaxios_1.Gaxios(); /** - * Make an HTTP request using the given options. - * @param opts Options for the request + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void */ -async function request(opts) { - return exports.instance.request(opts); -} -exports.request = request; -//# sourceMappingURL=index.js.map +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; -/***/ }), + Body.call(this, body, opts); -/***/ 1052: -/***/ ((__unused_webpack_module, exports) => { + const status = opts.status || 200; + const headers = new Headers(opts.headers); -"use strict"; + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } -// Copyright 2018 Google LLC -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getRetryConfig = void 0; -async function getRetryConfig(err) { - var _a; - let config = getConfig(err); - if (!err || !err.config || (!config && !err.config.retry)) { - return { shouldRetry: false }; - } - config = config || {}; - config.currentRetryAttempt = config.currentRetryAttempt || 0; - config.retry = - config.retry === undefined || config.retry === null ? 3 : config.retry; - config.httpMethodsToRetry = config.httpMethodsToRetry || [ - 'GET', - 'HEAD', - 'PUT', - 'OPTIONS', - 'DELETE', - ]; - config.noResponseRetries = - config.noResponseRetries === undefined || config.noResponseRetries === null - ? 2 - : config.noResponseRetries; - // If this wasn't in the list of status codes where we want - // to automatically retry, return. - const retryRanges = [ - // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes - // 1xx - Retry (Informational, request still processing) - // 2xx - Do not retry (Success) - // 3xx - Do not retry (Redirect) - // 4xx - Do not retry (Client errors) - // 429 - Retry ("Too Many Requests") - // 5xx - Retry (Server errors) - [100, 199], - [429, 429], - [500, 599], - ]; - config.statusCodesToRetry = config.statusCodesToRetry || retryRanges; - // Put the config back into the err - err.config.retryConfig = config; - // Determine if we should retry the request - const shouldRetryFn = config.shouldRetry || shouldRetryRequest; - if (!(await shouldRetryFn(err))) { - return { shouldRetry: false, config: err.config }; - } - // Calculate time to wait with exponential backoff. - // If this is the first retry, look for a configured retryDelay. - const retryDelay = config.currentRetryAttempt ? 0 : (_a = config.retryDelay) !== null && _a !== void 0 ? _a : 100; - // Formula: retryDelay + ((2^c - 1 / 2) * 1000) - const delay = retryDelay + ((Math.pow(2, config.currentRetryAttempt) - 1) / 2) * 1000; - // We're going to retry! Incremenent the counter. - err.config.retryConfig.currentRetryAttempt += 1; - // Create a promise that invokes the retry after the backOffDelay - const backoff = new Promise(resolve => { - setTimeout(resolve, delay); - }); - // Notify the user if they added an `onRetryAttempt` handler - if (config.onRetryAttempt) { - config.onRetryAttempt(err); - } - // Return the promise in which recalls Gaxios to retry the request - await backoff; - return { shouldRetry: true, config: err.config }; -} -exports.getRetryConfig = getRetryConfig; -/** - * Determine based on config if we should retry the request. - * @param err The GaxiosError passed to the interceptor. - */ -function shouldRetryRequest(err) { - const config = getConfig(err); - // node-fetch raises an AbortError if signaled: - // https://github.com/bitinn/node-fetch#request-cancellation-with-abortsignal - if (err.name === 'AbortError') { - return false; - } - // If there's no config, or retries are disabled, return. - if (!config || config.retry === 0) { - return false; - } - // Check if this error has no response (ETIMEDOUT, ENOTFOUND, etc) - if (!err.response && - (config.currentRetryAttempt || 0) >= config.noResponseRetries) { - return false; - } - // Only retry with configured HttpMethods. - if (!err.config.method || - config.httpMethodsToRetry.indexOf(err.config.method.toUpperCase()) < 0) { - return false; - } - // If this wasn't in the list of status codes where we want - // to automatically retry, return. - if (err.response && err.response.status) { - let isInRange = false; - for (const [min, max] of config.statusCodesToRetry) { - const status = err.response.status; - if (status >= min && status <= max) { - isInRange = true; - break; - } - } - if (!isInRange) { - return false; - } - } - // If we are out of retry attempts, return - config.currentRetryAttempt = config.currentRetryAttempt || 0; - if (config.currentRetryAttempt >= config.retry) { - return false; - } - return true; -} -/** - * Acquire the raxConfig object from an GaxiosError if available. - * @param err The Gaxios error with a config object. - */ -function getConfig(err) { - if (err && err.config && err.config.retryConfig) { - return err.config.retryConfig; - } - return; -} -//# sourceMappingURL=retry.js.map + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } -/***/ }), + get url() { + return this[INTERNALS$1].url || ''; + } -/***/ 8313: -/***/ ((module, exports, __nccwpck_require__) => { + get status() { + return this[INTERNALS$1].status; + } -"use strict"; + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + get redirected() { + return this[INTERNALS$1].counter > 0; + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + get statusText() { + return this[INTERNALS$1].statusText; + } -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + get headers() { + return this[INTERNALS$1].headers; + } -var Stream = _interopDefault(__nccwpck_require__(2781)); -var http = _interopDefault(__nccwpck_require__(3685)); -var Url = _interopDefault(__nccwpck_require__(7310)); -var whatwgUrl = _interopDefault(__nccwpck_require__(5380)); -var https = _interopDefault(__nccwpck_require__(5687)); -var zlib = _interopDefault(__nccwpck_require__(9796)); + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} -// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js +Body.mixIn(Response.prototype); -// fix for "Readable" isn't a named export issue -const Readable = Stream.Readable; +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); -const BUFFER = Symbol('buffer'); -const TYPE = Symbol('type'); +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); -class Blob { - constructor() { - this[TYPE] = ''; +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; - const blobParts = arguments[0]; - const options = arguments[1]; +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; - const buffers = []; - let size = 0; +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } - if (blobParts) { - const a = blobParts; - const length = Number(a.length); - for (let i = 0; i < length; i++) { - const element = a[i]; - let buffer; - if (element instanceof Buffer) { - buffer = element; - } else if (ArrayBuffer.isView(element)) { - buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); - } else if (element instanceof ArrayBuffer) { - buffer = Buffer.from(element); - } else if (element instanceof Blob) { - buffer = element[BUFFER]; - } else { - buffer = Buffer.from(typeof element === 'string' ? element : String(element)); - } - size += buffer.length; - buffers.push(buffer); - } - } + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} - this[BUFFER] = Buffer.concat(buffers); - - let type = options && options.type !== undefined && String(options.type).toLowerCase(); - if (type && !/[^\u0020-\u007E]/.test(type)) { - this[TYPE] = type; - } - } - get size() { - return this[BUFFER].length; - } - get type() { - return this[TYPE]; - } - text() { - return Promise.resolve(this[BUFFER].toString()); - } - arrayBuffer() { - const buf = this[BUFFER]; - const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - return Promise.resolve(ab); - } - stream() { - const readable = new Readable(); - readable._read = function () {}; - readable.push(this[BUFFER]); - readable.push(null); - return readable; - } - toString() { - return '[object Blob]'; - } - slice() { - const size = this.size; - - const start = arguments[0]; - const end = arguments[1]; - let relativeStart, relativeEnd; - if (start === undefined) { - relativeStart = 0; - } else if (start < 0) { - relativeStart = Math.max(size + start, 0); - } else { - relativeStart = Math.min(start, size); - } - if (end === undefined) { - relativeEnd = size; - } else if (end < 0) { - relativeEnd = Math.max(size + end, 0); - } else { - relativeEnd = Math.min(end, size); - } - const span = Math.max(relativeEnd - relativeStart, 0); - - const buffer = this[BUFFER]; - const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); - const blob = new Blob([], { type: arguments[2] }); - blob[BUFFER] = slicedBuffer; - return blob; - } -} - -Object.defineProperties(Blob.prototype, { - size: { enumerable: true }, - type: { enumerable: true }, - slice: { enumerable: true } -}); - -Object.defineProperty(Blob.prototype, Symbol.toStringTag, { - value: 'Blob', - writable: false, - enumerable: false, - configurable: true -}); +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; /** - * fetch-error.js + * Check if a value is an instance of Request. * - * FetchError interface for operational errors + * @param Mixed input + * @return Boolean */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} /** - * Create FetchError instance + * Request class * - * @param String message Error message for human - * @param String type Error type for machine - * @param String systemError For Node.js system error - * @return FetchError + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void */ -function FetchError(message, type, systemError) { - Error.call(this, message); +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - this.message = message; - this.type = type; + let parsedURL; - // when err.type is `system`, err.code contains system error code - if (systemError) { - this.code = this.errno = systemError.code; - } + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); -FetchError.prototype = Object.create(Error.prototype); -FetchError.prototype.constructor = FetchError; -FetchError.prototype.name = 'FetchError'; + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } -let convert; -try { - convert = (__nccwpck_require__(2877).convert); -} catch (e) {} + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; -const INTERNALS = Symbol('Body internals'); + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); -// fix an issue where "PassThrough" isn't a named export for node <10 -const PassThrough = Stream.PassThrough; + const headers = new Headers(init.headers || input.headers || {}); -/** - * Body mixin - * - * Ref: https://fetch.spec.whatwg.org/#body - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -function Body(body) { - var _this = this; + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$size = _ref.size; + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; - let size = _ref$size === undefined ? 0 : _ref$size; - var _ref$timeout = _ref.timeout; - let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } - if (body == null) { - // body is undefined or null - body = null; - } else if (isURLSearchParams(body)) { - // body is a URLSearchParams - body = Buffer.from(body.toString()); - } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { - // body is ArrayBuffer - body = Buffer.from(body); - } else if (ArrayBuffer.isView(body)) { - // body is ArrayBufferView - body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); - } else if (body instanceof Stream) ; else { - // none of the above - // coerce to string then buffer - body = Buffer.from(String(body)); - } - this[INTERNALS] = { - body, - disturbed: false, - error: null - }; - this.size = size; - this.timeout = timeout; + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; - if (body instanceof Stream) { - body.on('error', function (err) { - const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); - _this[INTERNALS].error = error; - }); + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; } -} - -Body.prototype = { - get body() { - return this[INTERNALS].body; - }, - - get bodyUsed() { - return this[INTERNALS].disturbed; - }, - - /** - * Decode response as ArrayBuffer - * - * @return Promise - */ - arrayBuffer() { - return consumeBody.call(this).then(function (buf) { - return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - }); - }, - /** - * Return raw response as Blob - * - * @return Promise - */ - blob() { - let ct = this.headers && this.headers.get('content-type') || ''; - return consumeBody.call(this).then(function (buf) { - return Object.assign( - // Prevent copying - new Blob([], { - type: ct.toLowerCase() - }), { - [BUFFER]: buf - }); - }); - }, + get method() { + return this[INTERNALS$2].method; + } - /** - * Decode response as json - * - * @return Promise - */ - json() { - var _this2 = this; + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } - return consumeBody.call(this).then(function (buffer) { - try { - return JSON.parse(buffer.toString()); - } catch (err) { - return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); - } - }); - }, + get headers() { + return this[INTERNALS$2].headers; + } - /** - * Decode response as text - * - * @return Promise - */ - text() { - return consumeBody.call(this).then(function (buffer) { - return buffer.toString(); - }); - }, + get redirect() { + return this[INTERNALS$2].redirect; + } - /** - * Decode response as buffer (non-spec api) - * - * @return Promise - */ - buffer() { - return consumeBody.call(this); - }, + get signal() { + return this[INTERNALS$2].signal; + } /** - * Decode response as text, while automatically detecting the encoding and - * trying to decode to UTF-8 (non-spec api) + * Clone this request * - * @return Promise + * @return Request */ - textConverted() { - var _this3 = this; - - return consumeBody.call(this).then(function (buffer) { - return convertBody(buffer, _this3.headers); - }); + clone() { + return new Request(this); } -}; +} -// In browsers, all properties are enumerable. -Object.defineProperties(Body.prototype, { - body: { enumerable: true }, - bodyUsed: { enumerable: true }, - arrayBuffer: { enumerable: true }, - blob: { enumerable: true }, - json: { enumerable: true }, - text: { enumerable: true } +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true }); -Body.mixIn = function (proto) { - for (const name of Object.getOwnPropertyNames(Body.prototype)) { - // istanbul ignore else: future proof - if (!(name in proto)) { - const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); - Object.defineProperty(proto, name, desc); - } - } -}; +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); /** - * Consume and convert an entire Body to a Buffer. - * - * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * Convert a Request to Node.js http request options. * - * @return Promise + * @param Request A Request instance + * @return Object The options object to be passed to http.request */ -function consumeBody() { - var _this4 = this; +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); - if (this[INTERNALS].disturbed) { - return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); } - this[INTERNALS].disturbed = true; + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } - if (this[INTERNALS].error) { - return Body.Promise.reject(this[INTERNALS].error); + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); } - let body = this.body; + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } - // body is null - if (body === null) { - return Body.Promise.resolve(Buffer.alloc(0)); + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); } - // body is blob - if (isBlob(body)) { - body = body.stream(); + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); } - // body is buffer - if (Buffer.isBuffer(body)) { - return Body.Promise.resolve(body); + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); } - // istanbul ignore if: should never happen - if (!(body instanceof Stream)) { - return Body.Promise.resolve(Buffer.alloc(0)); + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); } - // body is stream - // get ready to actually consume the body - let accum = []; - let accumBytes = 0; - let abort = false; + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } - return new Body.Promise(function (resolve, reject) { - let resTimeout; + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js - // allow timeout on slow response body - if (_this4.timeout) { - resTimeout = setTimeout(function () { - abort = true; - reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); - }, _this4.timeout); - } + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} - // handle stream errors - body.on('error', function (err) { - if (err.name === 'AbortError') { - // if the request was aborted, reject with this Error - abort = true; - reject(err); - } else { - // other errors, such as incorrect content-encoding - reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); - } - }); +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ - body.on('data', function (chunk) { - if (abort || chunk === null) { - return; - } +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); - if (_this4.size && accumBytes + chunk.length > _this4.size) { - abort = true; - reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); - return; - } + this.type = 'aborted'; + this.message = message; - accumBytes += chunk.length; - accum.push(chunk); - }); + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} - body.on('end', function () { - if (abort) { - return; - } +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; - clearTimeout(resTimeout); +const URL$1 = Url.URL || whatwgUrl.URL; - try { - resolve(Buffer.concat(accum, accumBytes)); - } catch (err) { - // handle streams that have accumulated too much data (issue #414) - reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); - } - }); - }); -} +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; /** - * Detect buffer encoding and convert to target encoding - * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * Fetch function * - * @param Buffer buffer Incoming buffer - * @param String encoding Target encoding - * @return String + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise */ -function convertBody(buffer, headers) { - if (typeof convert !== 'function') { - throw new Error('The package `encoding` must be installed to use the textConverted() function'); +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); } - const ct = headers.get('content-type'); - let charset = 'utf-8'; - let res, str; + Body.Promise = fetch.Promise; - // header - if (ct) { - res = /charset=([^;]*)/i.exec(ct); - } + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); - // no charset in content type, peek at response body for at most 1024 bytes - str = buffer.slice(0, 1024).toString(); + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; - // html5 - if (!res && str) { - res = /= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } -/** - * The Fetch Standard treats this as if "total bytes" is a property on the body. - * For us, we have to explicitly get it with a function. - * - * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes - * - * @param Body instance Instance of Body - * @return Number? Number of bytes, or null if not possible - */ -function getTotalBytes(instance) { - const body = instance.body; + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + if (!isDomainOrSubdomain(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } - if (body === null) { - // body is null - return 0; - } else if (isBlob(body)) { - return body.size; - } else if (Buffer.isBuffer(body)) { - // body is buffer - return body.length; - } else if (body && typeof body.getLengthSync === 'function') { - // detect form data input from form-data module - if (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x - body.hasKnownLength && body.hasKnownLength()) { - // 2.x - return body.getLengthSync(); - } - return null; - } else { - // body is stream - return null; - } -} + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } -/** - * Write a Body to a Node.js WritableStream (e.g. http.Request) object. - * - * @param Body instance Instance of Body - * @return Void - */ -function writeToStream(dest, instance) { - const body = instance.body; + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } - if (body === null) { - // body is null - dest.end(); - } else if (isBlob(body)) { - body.stream().pipe(dest); - } else if (Buffer.isBuffer(body)) { - // body is buffer - dest.write(body); - dest.end(); - } else { - // body is stream - body.pipe(dest); - } -} + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); -// expose Promise -Body.Promise = global.Promise; + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; -/** - * headers.js - * - * Headers class offers convenient helpers - */ + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); -const invalidTokenRegex = /[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/; -const invalidHeaderCharRegex = /[^\t\x20-\x7e\x80-\xff]/; + // HTTP-network fetch step 12.1.1.4: handle content codings -function validateName(name) { - name = `${name}`; - if (invalidTokenRegex.test(name) || name === '') { - throw new TypeError(`${name} is not a legal HTTP header name`); - } -} + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } -function validateValue(value) { - value = `${value}`; - if (invalidHeaderCharRegex.test(value)) { - throw new TypeError(`${value} is not a legal HTTP header value`); - } -} + // For Node v6+ + // 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. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} /** - * Find the key in the map object given a header name. - * - * Returns undefined if not found. + * Redirect code matching * - * @param String name Header name - * @return String|Undefined + * @param Number code Status code + * @return Boolean */ -function find(map, name) { - name = name.toLowerCase(); - for (const key in map) { - if (key.toLowerCase() === name) { - return key; - } - } - return undefined; -} +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; -const MAP = Symbol('map'); -class Headers { - /** - * Headers class - * - * @param Object headers Response headers - * @return Void - */ - constructor() { - let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined; +// expose Promise +fetch.Promise = global.Promise; - this[MAP] = Object.create(null); +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; - if (init instanceof Headers) { - const rawHeaders = init.raw(); - const headerNames = Object.keys(rawHeaders); - for (const headerName of headerNames) { - for (const value of rawHeaders[headerName]) { - this.append(headerName, value); - } - } +/***/ }), - return; - } +/***/ 1946: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - // We don't worry about converting prop to ByteString here as append() - // will handle it. - if (init == null) ; else if (typeof init === 'object') { - const method = init[Symbol.iterator]; - if (method != null) { - if (typeof method !== 'function') { - throw new TypeError('Header pairs must be iterable'); - } +"use strict"; - // sequence> - // Note: per spec we have to first exhaust the lists then process them - const pairs = []; - for (const pair of init) { - if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { - throw new TypeError('Each header pair must be iterable'); - } - pairs.push(Array.from(pair)); - } - for (const pair of pairs) { - if (pair.length !== 2) { - throw new TypeError('Each header pair must be a name/value tuple'); - } - this.append(pair[0], pair[1]); - } - } else { - // record - for (const key of Object.keys(init)) { - const value = init[key]; - this.append(key, value); - } - } - } else { - throw new TypeError('Provided initializer must be an object'); - } - } +var punycode = __nccwpck_require__(5477); +var mappingTable = __nccwpck_require__(9750); - /** - * Return combined header value given name - * - * @param String name Header name - * @return Mixed - */ - get(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key === undefined) { - return null; - } +var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 +}; - return this[MAP][key].join(', '); - } +function normalize(str) { // fix bug in v8 + return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); +} - /** - * Iterate over all headers - * - * @param Function callback Executed for each item with parameters (value, name, thisArg) - * @param Boolean thisArg `this` context for callback function - * @return Void - */ - forEach(callback) { - let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; +function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; - let pairs = getHeaders(this); - let i = 0; - while (i < pairs.length) { - var _pairs$i = pairs[i]; - const name = _pairs$i[0], - value = _pairs$i[1]; + while (start <= end) { + var mid = Math.floor((start + end) / 2); - callback.call(thisArg, value, name, this); - pairs = getHeaders(this); - i++; - } - } + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } - /** - * Overwrite header values given name - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - set(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - this[MAP][key !== undefined ? key : name] = [value]; - } + return null; +} - /** - * Append a value onto existing header - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - append(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - if (key !== undefined) { - this[MAP][key].push(value); - } else { - this[MAP][name] = [value]; - } - } +var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - /** - * Check for header name existence - * - * @param String name Header name - * @return Boolean - */ - has(name) { - name = `${name}`; - validateName(name); - return find(this[MAP], name) !== undefined; - } +function countSymbols(string) { + return string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, '_') + // then get the length + .length; +} - /** - * Delete all header values given name - * - * @param String name Header name - * @return Void - */ - delete(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key !== undefined) { - delete this[MAP][key]; - } - } +function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; - /** - * Return raw headers (non-spec api) - * - * @return Object - */ - raw() { - return this[MAP]; - } + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); - /** - * Get an iterator on keys. - * - * @return Iterator - */ - keys() { - return createHeadersIterator(this, 'key'); - } + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } - /** - * Get an iterator on values. - * - * @return Iterator - */ - values() { - return createHeadersIterator(this, 'value'); - } + processed += String.fromCodePoint(codePoint); + break; + } + } - /** - * Get an iterator on entries. - * - * This is the default iterator of the Headers object. - * - * @return Iterator - */ - [Symbol.iterator]() { - return createHeadersIterator(this, 'key+value'); - } + return { + string: processed, + error: hasError + }; } -Headers.prototype.entries = Headers.prototype[Symbol.iterator]; -Object.defineProperty(Headers.prototype, Symbol.toStringTag, { - value: 'Headers', - writable: false, - enumerable: false, - configurable: true -}); +var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; -Object.defineProperties(Headers.prototype, { - get: { enumerable: true }, - forEach: { enumerable: true }, - set: { enumerable: true }, - append: { enumerable: true }, - has: { enumerable: true }, - delete: { enumerable: true }, - keys: { enumerable: true }, - values: { enumerable: true }, - entries: { enumerable: true } -}); +function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } -function getHeaders(headers) { - let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + var error = false; - const keys = Object.keys(headers[MAP]).sort(); - return keys.map(kind === 'key' ? function (k) { - return k.toLowerCase(); - } : kind === 'value' ? function (k) { - return headers[MAP][k].join(', '); - } : function (k) { - return [k.toLowerCase(), headers[MAP][k].join(', ')]; - }); -} + if (normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0) { + error = true; + } -const INTERNAL = Symbol('internal'); + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && status[1] !== "deviation")) { + error = true; + break; + } + } -function createHeadersIterator(target, kind) { - const iterator = Object.create(HeadersIteratorPrototype); - iterator[INTERNAL] = { - target, - kind, - index: 0 - }; - return iterator; + return { + label: label, + error: error + }; } -const HeadersIteratorPrototype = Object.setPrototypeOf({ - next() { - // istanbul ignore if - if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { - throw new TypeError('Value of `this` is not a HeadersIterator'); - } +function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); - var _INTERNAL = this[INTERNAL]; - const target = _INTERNAL.target, - kind = _INTERNAL.kind, - index = _INTERNAL.index; + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch(e) { + result.error = true; + } + } - const values = getHeaders(target, kind); - const len = values.length; - if (index >= len) { - return { - value: undefined, - done: true - }; - } + return { + string: labels.join("."), + error: result.error + }; +} - this[INTERNAL].index = index + 1; +module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch(e) { + result.error = true; + return l; + } + }); - return { - value: values[index], - done: false - }; - } -}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } -Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { - value: 'HeadersIterator', - writable: false, - enumerable: false, - configurable: true -}); + for (var i=0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } -/** - * Export the Headers object in a form that Node.js can consume. - * - * @param Headers headers - * @return Object - */ -function exportNodeCompatibleHeaders(headers) { - const obj = Object.assign({ __proto__: null }, headers[MAP]); + if (result.error) return null; + return labels.join("."); +}; - // http.request() only supports string as Host header. This hack makes - // specifying custom Host header possible. - const hostHeaderKey = find(headers[MAP], 'Host'); - if (hostHeaderKey !== undefined) { - obj[hostHeaderKey] = obj[hostHeaderKey][0]; - } +module.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); - return obj; -} + return { + domain: result.string, + error: result.error + }; +}; -/** - * Create a Headers object from an object of headers, ignoring those that do - * not conform to HTTP grammar productions. - * - * @param Object obj Object of headers - * @return Headers - */ -function createHeadersLenient(obj) { - const headers = new Headers(); - for (const name of Object.keys(obj)) { - if (invalidTokenRegex.test(name)) { - continue; - } - if (Array.isArray(obj[name])) { - for (const val of obj[name]) { - if (invalidHeaderCharRegex.test(val)) { - continue; - } - if (headers[MAP][name] === undefined) { - headers[MAP][name] = [val]; - } else { - headers[MAP][name].push(val); - } - } - } else if (!invalidHeaderCharRegex.test(obj[name])) { - headers[MAP][name] = [obj[name]]; - } - } - return headers; -} +module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; -const INTERNALS$1 = Symbol('Response internals'); -// fix an issue where "STATUS_CODES" aren't a named export for node <10 -const STATUS_CODES = http.STATUS_CODES; +/***/ }), -/** - * Response class - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -class Response { - constructor() { - let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; +/***/ 9167: +/***/ ((module) => { - Body.call(this, body, opts); +"use strict"; - const status = opts.status || 200; - const headers = new Headers(opts.headers); - if (body != null && !headers.has('Content-Type')) { - const contentType = extractContentType(body); - if (contentType) { - headers.append('Content-Type', contentType); - } - } +var conversions = {}; +module.exports = conversions; - this[INTERNALS$1] = { - url: opts.url, - status, - statusText: opts.statusText || STATUS_CODES[status], - headers, - counter: opts.counter - }; - } +function sign(x) { + return x < 0 ? -1 : 1; +} - get url() { - return this[INTERNALS$1].url || ''; - } +function evenRound(x) { + // Round x to the nearest integer, choosing the even integer if it lies halfway between two. + if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) + return Math.floor(x); + } else { + return Math.round(x); + } +} - get status() { - return this[INTERNALS$1].status; - } +function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; - /** - * Convenience property representing if the request ended normally - */ - get ok() { - return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; - } + const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); - get redirected() { - return this[INTERNALS$1].counter > 0; - } + return function(V, opts) { + if (!opts) opts = {}; - get statusText() { - return this[INTERNALS$1].statusText; - } + let x = +V; - get headers() { - return this[INTERNALS$1].headers; - } + if (opts.enforceRange) { + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite number"); + } - /** - * Clone this response - * - * @return Response - */ - clone() { - return new Response(clone(this), { - url: this.url, - status: this.status, - statusText: this.statusText, - headers: this.headers, - ok: this.ok, - redirected: this.redirected - }); - } -} + x = sign(x) * Math.floor(Math.abs(x)); + if (x < lowerBound || x > upperBound) { + throw new TypeError("Argument is not in byte range"); + } -Body.mixIn(Response.prototype); + return x; + } -Object.defineProperties(Response.prototype, { - url: { enumerable: true }, - status: { enumerable: true }, - ok: { enumerable: true }, - redirected: { enumerable: true }, - statusText: { enumerable: true }, - headers: { enumerable: true }, - clone: { enumerable: true } -}); + if (!isNaN(x) && opts.clamp) { + x = evenRound(x); -Object.defineProperty(Response.prototype, Symbol.toStringTag, { - value: 'Response', - writable: false, - enumerable: false, - configurable: true -}); + if (x < lowerBound) x = lowerBound; + if (x > upperBound) x = upperBound; + return x; + } -const INTERNALS$2 = Symbol('Request internals'); -const URL = Url.URL || whatwgUrl.URL; + if (!Number.isFinite(x) || x === 0) { + return 0; + } -// fix an issue where "format", "parse" aren't a named export for node <10 -const parse_url = Url.parse; -const format_url = Url.format; + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; -/** - * Wrapper around `new URL` to handle arbitrary URLs - * - * @param {string} urlStr - * @return {void} - */ -function parseURL(urlStr) { - /* - Check whether the URL is absolute or not - Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 - Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 - */ - if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { - urlStr = new URL(urlStr).toString(); - } + if (!typeOpts.unsigned && x >= moduloBound) { + return x - moduloVal; + } else if (typeOpts.unsigned) { + if (x < 0) { + x += moduloVal; + } else if (x === -0) { // don't return negative zero + return 0; + } + } - // Fallback to old implementation for arbitrary URLs - return parse_url(urlStr); + return x; + } } -const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; +conversions["void"] = function () { + return undefined; +}; -/** - * Check if a value is an instance of Request. - * - * @param Mixed input - * @return Boolean - */ -function isRequest(input) { - return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; -} +conversions["boolean"] = function (val) { + return !!val; +}; -function isAbortSignal(signal) { - const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); - return !!(proto && proto.constructor.name === 'AbortSignal'); -} +conversions["byte"] = createNumberConversion(8, { unsigned: false }); +conversions["octet"] = createNumberConversion(8, { unsigned: true }); -/** - * Request class - * - * @param Mixed input Url or Request instance - * @param Object init Custom options - * @return Void - */ -class Request { - constructor(input) { - let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; +conversions["short"] = createNumberConversion(16, { unsigned: false }); +conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); - let parsedURL; +conversions["long"] = createNumberConversion(32, { unsigned: false }); +conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); - // normalize input - if (!isRequest(input)) { - if (input && input.href) { - // in order to support Node.js' Url objects; though WHATWG's URL objects - // will fall into this branch also (since their `toString()` will return - // `href` property anyway) - parsedURL = parseURL(input.href); - } else { - // coerce input to a string before attempting to parse - parsedURL = parseURL(`${input}`); - } - input = {}; - } else { - parsedURL = parseURL(input.url); - } +conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); +conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); - let method = init.method || input.method || 'GET'; - method = method.toUpperCase(); +conversions["double"] = function (V) { + const x = +V; - if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { - throw new TypeError('Request with GET/HEAD method cannot have body'); - } + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); + } - let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + return x; +}; - Body.call(this, inputBody, { - timeout: init.timeout || input.timeout || 0, - size: init.size || input.size || 0 - }); +conversions["unrestricted double"] = function (V) { + const x = +V; - const headers = new Headers(init.headers || input.headers || {}); + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } - if (inputBody != null && !headers.has('Content-Type')) { - const contentType = extractContentType(inputBody); - if (contentType) { - headers.append('Content-Type', contentType); - } - } + return x; +}; - let signal = isRequest(input) ? input.signal : null; - if ('signal' in init) signal = init.signal; +// not quite valid, but good enough for JS +conversions["float"] = conversions["double"]; +conversions["unrestricted float"] = conversions["unrestricted double"]; - if (signal != null && !isAbortSignal(signal)) { - throw new TypeError('Expected signal to be an instanceof AbortSignal'); - } +conversions["DOMString"] = function (V, opts) { + if (!opts) opts = {}; - this[INTERNALS$2] = { - method, - redirect: init.redirect || input.redirect || 'follow', - headers, - parsedURL, - signal - }; + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } - // node-fetch-only options - this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; - this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; - this.counter = init.counter || input.counter || 0; - this.agent = init.agent || input.agent; - } + return String(V); +}; - get method() { - return this[INTERNALS$2].method; - } +conversions["ByteString"] = function (V, opts) { + const x = String(V); + let c = undefined; + for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { + if (c > 255) { + throw new TypeError("Argument is not a valid bytestring"); + } + } - get url() { - return format_url(this[INTERNALS$2].parsedURL); - } + return x; +}; - get headers() { - return this[INTERNALS$2].headers; - } +conversions["USVString"] = function (V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 0xD800 || c > 0xDFFF) { + U.push(String.fromCodePoint(c)); + } else if (0xDC00 <= c && c <= 0xDFFF) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + const d = S.charCodeAt(i + 1); + if (0xDC00 <= d && d <= 0xDFFF) { + const a = c & 0x3FF; + const b = d & 0x3FF; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(0xFFFD)); + } + } + } + } - get redirect() { - return this[INTERNALS$2].redirect; - } + return U.join(''); +}; - get signal() { - return this[INTERNALS$2].signal; - } +conversions["Date"] = function (V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return undefined; + } - /** - * Clone this request - * - * @return Request - */ - clone() { - return new Request(this); - } -} + return V; +}; -Body.mixIn(Request.prototype); +conversions["RegExp"] = function (V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } -Object.defineProperty(Request.prototype, Symbol.toStringTag, { - value: 'Request', - writable: false, - enumerable: false, - configurable: true -}); + return V; +}; -Object.defineProperties(Request.prototype, { - method: { enumerable: true }, - url: { enumerable: true }, - headers: { enumerable: true }, - redirect: { enumerable: true }, - clone: { enumerable: true }, - signal: { enumerable: true } -}); -/** - * Convert a Request to Node.js http request options. - * - * @param Request A Request instance - * @return Object The options object to be passed to http.request - */ -function getNodeRequestOptions(request) { - const parsedURL = request[INTERNALS$2].parsedURL; - const headers = new Headers(request[INTERNALS$2].headers); +/***/ }), - // fetch step 1.3 - if (!headers.has('Accept')) { - headers.set('Accept', '*/*'); - } +/***/ 112: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - // Basic fetch - if (!parsedURL.protocol || !parsedURL.hostname) { - throw new TypeError('Only absolute URLs are supported'); - } +"use strict"; - if (!/^https?:$/.test(parsedURL.protocol)) { - throw new TypeError('Only HTTP(S) protocols are supported'); - } +const usm = __nccwpck_require__(1301); - if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { - throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); - } +exports.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; - // HTTP-network-or-cache fetch steps 2.4-2.7 - let contentLengthValue = null; - if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { - contentLengthValue = '0'; - } - if (request.body != null) { - const totalBytes = getTotalBytes(request); - if (typeof totalBytes === 'number') { - contentLengthValue = String(totalBytes); - } - } - if (contentLengthValue) { - headers.set('Content-Length', contentLengthValue); - } + let parsedBase = null; + if (base !== undefined) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } - // HTTP-network-or-cache fetch step 2.11 - if (!headers.has('User-Agent')) { - headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); - } + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } - // HTTP-network-or-cache fetch step 2.15 - if (request.compress && !headers.has('Accept-Encoding')) { - headers.set('Accept-Encoding', 'gzip,deflate'); - } + this._url = parsedURL; - let agent = request.agent; - if (typeof agent === 'function') { - agent = agent(parsedURL); - } + // TODO: query stuff + } - if (!headers.has('Connection') && !agent) { - headers.set('Connection', 'close'); - } + get href() { + return usm.serializeURL(this._url); + } - // HTTP-network fetch step 4.2 - // chunked encoding is handled by Node.js + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } - return Object.assign({}, parsedURL, { - method: request.method, - headers: exportNodeCompatibleHeaders(headers), - agent - }); -} + this._url = parsedURL; + } -/** - * abort-error.js - * - * AbortError interface for cancelled requests - */ + get origin() { + return usm.serializeURLOrigin(this._url); + } -/** - * Create AbortError instance - * - * @param String message Error message for human - * @return AbortError - */ -function AbortError(message) { - Error.call(this, message); + get protocol() { + return this._url.scheme + ":"; + } - this.type = 'aborted'; - this.message = message; + set protocol(v) { + usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); + } - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} + get username() { + return this._url.username; + } -AbortError.prototype = Object.create(Error.prototype); -AbortError.prototype.constructor = AbortError; -AbortError.prototype.name = 'AbortError'; + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } -const URL$1 = Url.URL || whatwgUrl.URL; + usm.setTheUsername(this._url, v); + } -// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 -const PassThrough$1 = Stream.PassThrough; + get password() { + return this._url.password; + } -const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { - const orig = new URL$1(original).hostname; - const dest = new URL$1(destination).hostname; + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } - return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); -}; + usm.setThePassword(this._url, v); + } -/** - * Fetch function - * - * @param Mixed url Absolute url or Request instance - * @param Object opts Fetch options - * @return Promise - */ -function fetch(url, opts) { + get host() { + const url = this._url; - // allow custom promise - if (!fetch.Promise) { - throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); - } + if (url.host === null) { + return ""; + } - Body.Promise = fetch.Promise; + if (url.port === null) { + return usm.serializeHost(url.host); + } - // wrap http.request into fetch - return new fetch.Promise(function (resolve, reject) { - // build request object - const request = new Request(url, opts); - const options = getNodeRequestOptions(request); + return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); + } - const send = (options.protocol === 'https:' ? https : http).request; - const signal = request.signal; + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } - let response = null; + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } - const abort = function abort() { - let error = new AbortError('The user aborted a request.'); - reject(error); - if (request.body && request.body instanceof Stream.Readable) { - request.body.destroy(error); - } - if (!response || !response.body) return; - response.body.emit('error', error); - }; + get hostname() { + if (this._url.host === null) { + return ""; + } - if (signal && signal.aborted) { - abort(); - return; - } + return usm.serializeHost(this._url.host); + } - const abortAndFinalize = function abortAndFinalize() { - abort(); - finalize(); - }; + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; + } - // send request - const req = send(options); - let reqTimeout; + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); + } - if (signal) { - signal.addEventListener('abort', abortAndFinalize); - } + get port() { + if (this._url.port === null) { + return ""; + } - function finalize() { - req.abort(); - if (signal) signal.removeEventListener('abort', abortAndFinalize); - clearTimeout(reqTimeout); - } + return usm.serializeInteger(this._url.port); + } - if (request.timeout) { - req.once('socket', function (socket) { - reqTimeout = setTimeout(function () { - reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); - finalize(); - }, request.timeout); - }); - } + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } - req.on('error', function (err) { - reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); - finalize(); - }); - - req.on('response', function (res) { - clearTimeout(reqTimeout); - - const headers = createHeadersLenient(res.headers); + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); + } + } - // HTTP fetch step 5 - if (fetch.isRedirect(res.statusCode)) { - // HTTP fetch step 5.2 - const location = headers.get('Location'); + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } - // HTTP fetch step 5.3 - let locationURL = null; - try { - locationURL = location === null ? null : new URL$1(location, request.url).toString(); - } catch (err) { - // error here can only be invalid URL in Location: header - // do not throw when options.redirect == manual - // let the user extract the errorneous redirect URL - if (request.redirect !== 'manual') { - reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); - finalize(); - return; - } - } + if (this._url.path.length === 0) { + return ""; + } - // HTTP fetch step 5.5 - switch (request.redirect) { - case 'error': - reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); - finalize(); - return; - case 'manual': - // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. - if (locationURL !== null) { - // handle corrupted header - try { - headers.set('Location', locationURL); - } catch (err) { - // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request - reject(err); - } - } - break; - case 'follow': - // HTTP-redirect fetch step 2 - if (locationURL === null) { - break; - } + return "/" + this._url.path.join("/"); + } - // HTTP-redirect fetch step 5 - if (request.counter >= request.follow) { - reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); - finalize(); - return; - } + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } - // HTTP-redirect fetch step 6 (counter increment) - // Create a new Request object. - const requestOpts = { - headers: new Headers(request.headers), - follow: request.follow, - counter: request.counter + 1, - agent: request.agent, - compress: request.compress, - method: request.method, - body: request.body, - signal: request.signal, - timeout: request.timeout, - size: request.size - }; + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); + } - if (!isDomainOrSubdomain(request.url, locationURL)) { - for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { - requestOpts.headers.delete(name); - } - } + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } - // HTTP-redirect fetch step 9 - if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { - reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); - finalize(); - return; - } + return "?" + this._url.query; + } - // HTTP-redirect fetch step 11 - if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { - requestOpts.method = 'GET'; - requestOpts.body = undefined; - requestOpts.headers.delete('content-length'); - } + set search(v) { + // TODO: query stuff - // HTTP-redirect fetch step 15 - resolve(fetch(new Request(locationURL, requestOpts))); - finalize(); - return; - } - } + const url = this._url; - // prepare response - res.once('end', function () { - if (signal) signal.removeEventListener('abort', abortAndFinalize); - }); - let body = res.pipe(new PassThrough$1()); + if (v === "") { + url.query = null; + return; + } - const response_options = { - url: request.url, - status: res.statusCode, - statusText: res.statusMessage, - headers: headers, - size: request.size, - timeout: request.timeout, - counter: request.counter - }; + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } - // HTTP-network fetch step 12.1.1.3 - const codings = headers.get('Content-Encoding'); + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; + } - // HTTP-network fetch step 12.1.1.4: handle content codings + return "#" + this._url.fragment; + } - // in following scenarios we ignore compression support - // 1. compression support is disabled - // 2. HEAD request - // 3. no Content-Encoding header - // 4. no content response (204) - // 5. content not modified response (304) - if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { - response = new Response(body, response_options); - resolve(response); - return; - } + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } - // For Node v6+ - // 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. - const zlibOptions = { - flush: zlib.Z_SYNC_FLUSH, - finishFlush: zlib.Z_SYNC_FLUSH - }; + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); + } - // for gzip - if (codings == 'gzip' || codings == 'x-gzip') { - body = body.pipe(zlib.createGunzip(zlibOptions)); - response = new Response(body, response_options); - resolve(response); - return; - } + toJSON() { + return this.href; + } +}; - // for deflate - if (codings == 'deflate' || codings == 'x-deflate') { - // handle the infamous raw deflate response from old servers - // a hack for old IIS and Apache servers - const raw = res.pipe(new PassThrough$1()); - raw.once('data', function (chunk) { - // see http://stackoverflow.com/questions/37519828 - if ((chunk[0] & 0x0F) === 0x08) { - body = body.pipe(zlib.createInflate()); - } else { - body = body.pipe(zlib.createInflateRaw()); - } - response = new Response(body, response_options); - resolve(response); - }); - return; - } - // for br - if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { - body = body.pipe(zlib.createBrotliDecompress()); - response = new Response(body, response_options); - resolve(response); - return; - } +/***/ }), - // otherwise, use response as-is - response = new Response(body, response_options); - resolve(response); - }); +/***/ 4438: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - writeToStream(req, request); - }); -} -/** - * Redirect code matching - * - * @param Number code Status code - * @return Boolean - */ -fetch.isRedirect = function (code) { - return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; -}; +"use strict"; -// expose Promise -fetch.Promise = global.Promise; -module.exports = exports = fetch; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports["default"] = exports; -exports.Headers = Headers; -exports.Request = Request; -exports.Response = Response; -exports.FetchError = FetchError; +const conversions = __nccwpck_require__(9167); +const utils = __nccwpck_require__(1733); +const Impl = __nccwpck_require__(112); +const impl = utils.implSymbol; -/***/ }), +function URL(url) { + if (!this || this[impl] || !(this instanceof URL)) { + throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); + } + if (arguments.length < 1) { + throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== undefined) { + args[1] = conversions["USVString"](args[1]); + } -/***/ 1946: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + module.exports.setup(this, args); +} -"use strict"; +URL.prototype.toJSON = function toJSON() { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); +}; +Object.defineProperty(URL.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true +}); +URL.prototype.toString = function () { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + return this.href; +}; -var punycode = __nccwpck_require__(5477); -var mappingTable = __nccwpck_require__(9750); +Object.defineProperty(URL.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true +}); -var PROCESSING_OPTIONS = { - TRANSITIONAL: 0, - NONTRANSITIONAL: 1 -}; +Object.defineProperty(URL.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true +}); -function normalize(str) { // fix bug in v8 - return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); -} +Object.defineProperty(URL.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true +}); -function findStatus(val) { - var start = 0; - var end = mappingTable.length - 1; +Object.defineProperty(URL.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true +}); - while (start <= end) { - var mid = Math.floor((start + end) / 2); +Object.defineProperty(URL.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true +}); - var target = mappingTable[mid]; - if (target[0][0] <= val && target[0][1] >= val) { - return target; - } else if (target[0][0] > val) { - end = mid - 1; - } else { - start = mid + 1; - } - } +Object.defineProperty(URL.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true +}); - return null; -} +Object.defineProperty(URL.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true +}); -var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; +Object.defineProperty(URL.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true +}); -function countSymbols(string) { - return string - // replace every surrogate pair with a BMP symbol - .replace(regexAstralSymbols, '_') - // then get the length - .length; -} +Object.defineProperty(URL.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true +}); -function mapChars(domain_name, useSTD3, processing_option) { - var hasError = false; - var processed = ""; +Object.defineProperty(URL.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true +}); - var len = countSymbols(domain_name); - for (var i = 0; i < len; ++i) { - var codePoint = domain_name.codePointAt(i); - var status = findStatus(codePoint); - switch (status[1]) { - case "disallowed": - hasError = true; - processed += String.fromCodePoint(codePoint); - break; - case "ignored": - break; - case "mapped": - processed += String.fromCodePoint.apply(String, status[2]); - break; - case "deviation": - if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { - processed += String.fromCodePoint.apply(String, status[2]); - } else { - processed += String.fromCodePoint(codePoint); - } - break; - case "valid": - processed += String.fromCodePoint(codePoint); - break; - case "disallowed_STD3_mapped": - if (useSTD3) { - hasError = true; - processed += String.fromCodePoint(codePoint); - } else { - processed += String.fromCodePoint.apply(String, status[2]); - } - break; - case "disallowed_STD3_valid": - if (useSTD3) { - hasError = true; - } +module.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; - processed += String.fromCodePoint(codePoint); - break; - } + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils.wrapperSymbol] = obj; + }, + interface: URL, + expose: { + Window: { URL: URL }, + Worker: { URL: URL } } +}; - return { - string: processed, - error: hasError - }; -} -var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; -function validateLabel(label, processing_option) { - if (label.substr(0, 4) === "xn--") { - label = punycode.toUnicode(label); - processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; - } +/***/ }), - var error = false; - - if (normalize(label) !== label || - (label[3] === "-" && label[4] === "-") || - label[0] === "-" || label[label.length - 1] === "-" || - label.indexOf(".") !== -1 || - label.search(combiningMarksRegex) === 0) { - error = true; - } - - var len = countSymbols(label); - for (var i = 0; i < len; ++i) { - var status = findStatus(label.codePointAt(i)); - if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || - (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && - status[1] !== "valid" && status[1] !== "deviation")) { - error = true; - break; - } - } - - return { - label: label, - error: error - }; -} - -function processing(domain_name, useSTD3, processing_option) { - var result = mapChars(domain_name, useSTD3, processing_option); - result.string = normalize(result.string); - - var labels = result.string.split("."); - for (var i = 0; i < labels.length; ++i) { - try { - var validation = validateLabel(labels[i]); - labels[i] = validation.label; - result.error = result.error || validation.error; - } catch(e) { - result.error = true; - } - } - - return { - string: labels.join("."), - error: result.error - }; -} - -module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { - var result = processing(domain_name, useSTD3, processing_option); - var labels = result.string.split("."); - labels = labels.map(function(l) { - try { - return punycode.toASCII(l); - } catch(e) { - result.error = true; - return l; - } - }); - - if (verifyDnsLength) { - var total = labels.slice(0, labels.length - 1).join(".").length; - if (total.length > 253 || total.length === 0) { - result.error = true; - } - - for (var i=0; i < labels.length; ++i) { - if (labels.length > 63 || labels.length === 0) { - result.error = true; - break; - } - } - } - - if (result.error) return null; - return labels.join("."); -}; - -module.exports.toUnicode = function(domain_name, useSTD3) { - var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); - - return { - domain: result.string, - error: result.error - }; -}; - -module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; - - -/***/ }), - -/***/ 9167: -/***/ ((module) => { - -"use strict"; - - -var conversions = {}; -module.exports = conversions; - -function sign(x) { - return x < 0 ? -1 : 1; -} - -function evenRound(x) { - // Round x to the nearest integer, choosing the even integer if it lies halfway between two. - if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) - return Math.floor(x); - } else { - return Math.round(x); - } -} - -function createNumberConversion(bitLength, typeOpts) { - if (!typeOpts.unsigned) { - --bitLength; - } - const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); - const upperBound = Math.pow(2, bitLength) - 1; - - const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); - const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); - - return function(V, opts) { - if (!opts) opts = {}; - - let x = +V; - - if (opts.enforceRange) { - if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite number"); - } - - x = sign(x) * Math.floor(Math.abs(x)); - if (x < lowerBound || x > upperBound) { - throw new TypeError("Argument is not in byte range"); - } - - return x; - } - - if (!isNaN(x) && opts.clamp) { - x = evenRound(x); - - if (x < lowerBound) x = lowerBound; - if (x > upperBound) x = upperBound; - return x; - } - - if (!Number.isFinite(x) || x === 0) { - return 0; - } - - x = sign(x) * Math.floor(Math.abs(x)); - x = x % moduloVal; - - if (!typeOpts.unsigned && x >= moduloBound) { - return x - moduloVal; - } else if (typeOpts.unsigned) { - if (x < 0) { - x += moduloVal; - } else if (x === -0) { // don't return negative zero - return 0; - } - } - - return x; - } -} - -conversions["void"] = function () { - return undefined; -}; - -conversions["boolean"] = function (val) { - return !!val; -}; - -conversions["byte"] = createNumberConversion(8, { unsigned: false }); -conversions["octet"] = createNumberConversion(8, { unsigned: true }); - -conversions["short"] = createNumberConversion(16, { unsigned: false }); -conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); - -conversions["long"] = createNumberConversion(32, { unsigned: false }); -conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); - -conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); -conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); - -conversions["double"] = function (V) { - const x = +V; - - if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite floating-point value"); - } - - return x; -}; - -conversions["unrestricted double"] = function (V) { - const x = +V; - - if (isNaN(x)) { - throw new TypeError("Argument is NaN"); - } - - return x; -}; - -// not quite valid, but good enough for JS -conversions["float"] = conversions["double"]; -conversions["unrestricted float"] = conversions["unrestricted double"]; - -conversions["DOMString"] = function (V, opts) { - if (!opts) opts = {}; - - if (opts.treatNullAsEmptyString && V === null) { - return ""; - } - - return String(V); -}; - -conversions["ByteString"] = function (V, opts) { - const x = String(V); - let c = undefined; - for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { - if (c > 255) { - throw new TypeError("Argument is not a valid bytestring"); - } - } - - return x; -}; - -conversions["USVString"] = function (V) { - const S = String(V); - const n = S.length; - const U = []; - for (let i = 0; i < n; ++i) { - const c = S.charCodeAt(i); - if (c < 0xD800 || c > 0xDFFF) { - U.push(String.fromCodePoint(c)); - } else if (0xDC00 <= c && c <= 0xDFFF) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - if (i === n - 1) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - const d = S.charCodeAt(i + 1); - if (0xDC00 <= d && d <= 0xDFFF) { - const a = c & 0x3FF; - const b = d & 0x3FF; - U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); - ++i; - } else { - U.push(String.fromCodePoint(0xFFFD)); - } - } - } - } - - return U.join(''); -}; - -conversions["Date"] = function (V, opts) { - if (!(V instanceof Date)) { - throw new TypeError("Argument is not a Date object"); - } - if (isNaN(V)) { - return undefined; - } - - return V; -}; - -conversions["RegExp"] = function (V, opts) { - if (!(V instanceof RegExp)) { - V = new RegExp(V); - } - - return V; -}; - - -/***/ }), - -/***/ 112: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -const usm = __nccwpck_require__(1301); - -exports.implementation = class URLImpl { - constructor(constructorArgs) { - const url = constructorArgs[0]; - const base = constructorArgs[1]; - - let parsedBase = null; - if (base !== undefined) { - parsedBase = usm.basicURLParse(base); - if (parsedBase === "failure") { - throw new TypeError("Invalid base URL"); - } - } - - const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - - // TODO: query stuff - } - - get href() { - return usm.serializeURL(this._url); - } - - set href(v) { - const parsedURL = usm.basicURLParse(v); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - } - - get origin() { - return usm.serializeURLOrigin(this._url); - } - - get protocol() { - return this._url.scheme + ":"; - } - - set protocol(v) { - usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); - } - - get username() { - return this._url.username; - } - - set username(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setTheUsername(this._url, v); - } - - get password() { - return this._url.password; - } - - set password(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setThePassword(this._url, v); - } - - get host() { - const url = this._url; - - if (url.host === null) { - return ""; - } - - if (url.port === null) { - return usm.serializeHost(url.host); - } - - return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); - } - - set host(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); - } - - get hostname() { - if (this._url.host === null) { - return ""; - } - - return usm.serializeHost(this._url.host); - } - - set hostname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); - } - - get port() { - if (this._url.port === null) { - return ""; - } - - return usm.serializeInteger(this._url.port); - } - - set port(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - if (v === "") { - this._url.port = null; - } else { - usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); - } - } - - get pathname() { - if (this._url.cannotBeABaseURL) { - return this._url.path[0]; - } - - if (this._url.path.length === 0) { - return ""; - } - - return "/" + this._url.path.join("/"); - } - - set pathname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - this._url.path = []; - usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); - } - - get search() { - if (this._url.query === null || this._url.query === "") { - return ""; - } - - return "?" + this._url.query; - } - - set search(v) { - // TODO: query stuff - - const url = this._url; - - if (v === "") { - url.query = null; - return; - } - - const input = v[0] === "?" ? v.substring(1) : v; - url.query = ""; - usm.basicURLParse(input, { url, stateOverride: "query" }); - } - - get hash() { - if (this._url.fragment === null || this._url.fragment === "") { - return ""; - } - - return "#" + this._url.fragment; - } - - set hash(v) { - if (v === "") { - this._url.fragment = null; - return; - } - - const input = v[0] === "#" ? v.substring(1) : v; - this._url.fragment = ""; - usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); - } - - toJSON() { - return this.href; - } -}; - - -/***/ }), - -/***/ 4438: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const conversions = __nccwpck_require__(9167); -const utils = __nccwpck_require__(1733); -const Impl = __nccwpck_require__(112); - -const impl = utils.implSymbol; - -function URL(url) { - if (!this || this[impl] || !(this instanceof URL)) { - throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); - } - if (arguments.length < 1) { - throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); - } - const args = []; - for (let i = 0; i < arguments.length && i < 2; ++i) { - args[i] = arguments[i]; - } - args[0] = conversions["USVString"](args[0]); - if (args[1] !== undefined) { - args[1] = conversions["USVString"](args[1]); - } - - module.exports.setup(this, args); -} - -URL.prototype.toJSON = function toJSON() { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - const args = []; - for (let i = 0; i < arguments.length && i < 0; ++i) { - args[i] = arguments[i]; - } - return this[impl].toJSON.apply(this[impl], args); -}; -Object.defineProperty(URL.prototype, "href", { - get() { - return this[impl].href; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].href = V; - }, - enumerable: true, - configurable: true -}); - -URL.prototype.toString = function () { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - return this.href; -}; - -Object.defineProperty(URL.prototype, "origin", { - get() { - return this[impl].origin; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "protocol", { - get() { - return this[impl].protocol; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].protocol = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "username", { - get() { - return this[impl].username; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].username = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "password", { - get() { - return this[impl].password; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].password = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "host", { - get() { - return this[impl].host; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].host = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hostname", { - get() { - return this[impl].hostname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hostname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "port", { - get() { - return this[impl].port; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].port = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "pathname", { - get() { - return this[impl].pathname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].pathname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "search", { - get() { - return this[impl].search; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].search = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hash", { - get() { - return this[impl].hash; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hash = V; - }, - enumerable: true, - configurable: true -}); - - -module.exports = { - is(obj) { - return !!obj && obj[impl] instanceof Impl.implementation; - }, - create(constructorArgs, privateData) { - let obj = Object.create(URL.prototype); - this.setup(obj, constructorArgs, privateData); - return obj; - }, - setup(obj, constructorArgs, privateData) { - if (!privateData) privateData = {}; - privateData.wrapper = obj; - - obj[impl] = new Impl.implementation(constructorArgs, privateData); - obj[impl][utils.wrapperSymbol] = obj; - }, - interface: URL, - expose: { - Window: { URL: URL }, - Worker: { URL: URL } - } -}; - - - -/***/ }), - -/***/ 5380: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 5380: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -41608,5785 +40846,5083 @@ class DefaultTransporter { } // track google-auth-library-nodejs version: const authVersion = `auth/${pkg.version}`; - if (opts.headers['x-goog-api-client'] && - !opts.headers['x-goog-api-client'].includes(authVersion)) { - opts.headers['x-goog-api-client'] = `${opts.headers['x-goog-api-client']} ${authVersion}`; - } - else if (!opts.headers['x-goog-api-client']) { - const nodeVersion = process.version.replace(/^v/, ''); - opts.headers['x-goog-api-client'] = `gl-node/${nodeVersion} ${authVersion}`; - } - } - return opts; - } - request(opts, callback) { - // ensure the user isn't passing in request-style options - opts = this.configure(opts); - try { - options_1.validate(opts); - } - catch (e) { - if (callback) { - return callback(e); - } - else { - throw e; - } - } - if (callback) { - gaxios_1.request(opts).then(r => { - callback(null, r); - }, e => { - callback(this.processError(e)); - }); - } - else { - return gaxios_1.request(opts).catch(e => { - throw this.processError(e); - }); - } - } - /** - * Changes the error to include details from the body. - */ - processError(e) { - const res = e.response; - const err = e; - const body = res ? res.data : null; - if (res && body && body.error && res.status !== 200) { - if (typeof body.error === 'string') { - err.message = body.error; - err.code = res.status.toString(); - } - else if (Array.isArray(body.error.errors)) { - err.message = body.error.errors - .map((err2) => err2.message) - .join('\n'); - err.code = body.error.code; - err.errors = body.error.errors; - } - else { - err.message = body.error.message; - err.code = body.error.code || res.status; - } - } - else if (res && res.status >= 400) { - // Consider all 4xx and 5xx responses errors. - err.message = body; - err.code = res.status.toString(); - } - return err; - } -} -exports.DefaultTransporter = DefaultTransporter; -/** - * Default user agent. - */ -DefaultTransporter.USER_AGENT = `${PRODUCT_NAME}/${pkg.version}`; -//# sourceMappingURL=transporters.js.map - -/***/ }), - -/***/ 2098: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -/** - * Copyright 2018 Google LLC - * - * Distributed under MIT license. - * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT - */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getPem = void 0; -const fs = __nccwpck_require__(7147); -const forge = __nccwpck_require__(7655); -const util_1 = __nccwpck_require__(3837); -const readFile = util_1.promisify(fs.readFile); -function getPem(filename, callback) { - if (callback) { - getPemAsync(filename) - .then(pem => callback(null, pem)) - .catch(err => callback(err, null)); - } - else { - return getPemAsync(filename); - } -} -exports.getPem = getPem; -function getPemAsync(filename) { - return readFile(filename, { encoding: 'base64' }).then(keyp12 => { - return convertToPem(keyp12); - }); -} -/** - * Converts a P12 in base64 encoding to a pem. - * @param p12base64 String containing base64 encoded p12. - * @returns a string containing the pem. - */ -function convertToPem(p12base64) { - const p12Der = forge.util.decode64(p12base64); - const p12Asn1 = forge.asn1.fromDer(p12Der); - const p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, 'notasecret'); - const bags = p12.getBags({ friendlyName: 'privatekey' }); - if (bags.friendlyName) { - const privateKey = bags.friendlyName[0].key; - const pem = forge.pki.privateKeyToPem(privateKey); - return pem.replace(/\r\n/g, '\n'); - } - else { - throw new Error('Unable to get friendly name.'); - } -} -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 6031: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -/** - * Copyright 2018 Google LLC - * - * Distributed under MIT license. - * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT - */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.GoogleToken = void 0; -const fs = __nccwpck_require__(7147); -const gaxios_1 = __nccwpck_require__(9555); -const jws = __nccwpck_require__(4636); -const path = __nccwpck_require__(1017); -const util_1 = __nccwpck_require__(3837); -const readFile = fs.readFile - ? util_1.promisify(fs.readFile) - : async () => { - // if running in the web-browser, fs.readFile may not have been shimmed. - throw new ErrorWithCode('use key rather than keyFile.', 'MISSING_CREDENTIALS'); - }; -const GOOGLE_TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token'; -const GOOGLE_REVOKE_TOKEN_URL = 'https://accounts.google.com/o/oauth2/revoke?token='; -class ErrorWithCode extends Error { - constructor(message, code) { - super(message); - this.code = code; - } -} -let getPem; -class GoogleToken { - /** - * Create a GoogleToken. - * - * @param options Configuration object. - */ - constructor(options) { - this.configure(options); - } - get accessToken() { - return this.rawToken ? this.rawToken.access_token : undefined; - } - get idToken() { - return this.rawToken ? this.rawToken.id_token : undefined; - } - get tokenType() { - return this.rawToken ? this.rawToken.token_type : undefined; - } - get refreshToken() { - return this.rawToken ? this.rawToken.refresh_token : undefined; - } - /** - * Returns whether the token has expired. - * - * @return true if the token has expired, false otherwise. - */ - hasExpired() { - const now = new Date().getTime(); - if (this.rawToken && this.expiresAt) { - return now >= this.expiresAt; - } - else { - return true; - } - } - /** - * Returns whether the token will expire within eagerRefreshThresholdMillis - * - * @return true if the token will be expired within eagerRefreshThresholdMillis, false otherwise. - */ - isTokenExpiring() { - var _a; - const now = new Date().getTime(); - const eagerRefreshThresholdMillis = (_a = this.eagerRefreshThresholdMillis) !== null && _a !== void 0 ? _a : 0; - if (this.rawToken && this.expiresAt) { - return this.expiresAt <= now + eagerRefreshThresholdMillis; - } - else { - return true; - } - } - getToken(callback, opts = {}) { - if (typeof callback === 'object') { - opts = callback; - callback = undefined; - } - opts = Object.assign({ - forceRefresh: false, - }, opts); - if (callback) { - const cb = callback; - this.getTokenAsync(opts).then(t => cb(null, t), callback); - return; - } - return this.getTokenAsync(opts); - } - /** - * Given a keyFile, extract the key and client email if available - * @param keyFile Path to a json, pem, or p12 file that contains the key. - * @returns an object with privateKey and clientEmail properties - */ - async getCredentials(keyFile) { - const ext = path.extname(keyFile); - switch (ext) { - case '.json': { - const key = await readFile(keyFile, 'utf8'); - const body = JSON.parse(key); - const privateKey = body.private_key; - const clientEmail = body.client_email; - if (!privateKey || !clientEmail) { - throw new ErrorWithCode('private_key and client_email are required.', 'MISSING_CREDENTIALS'); - } - return { privateKey, clientEmail }; - } - case '.der': - case '.crt': - case '.pem': { - const privateKey = await readFile(keyFile, 'utf8'); - return { privateKey }; - } - case '.p12': - case '.pfx': { - // NOTE: The loading of `google-p12-pem` is deferred for performance - // reasons. The `node-forge` npm module in `google-p12-pem` adds a fair - // bit time to overall module loading, and is likely not frequently - // used. In a future release, p12 support will be entirely removed. - if (!getPem) { - getPem = (await Promise.resolve().then(() => __nccwpck_require__(2098))).getPem; - } - const privateKey = await getPem(keyFile); - return { privateKey }; - } - default: - throw new ErrorWithCode('Unknown certificate type. Type is determined based on file extension. ' + - 'Current supported extensions are *.json, *.pem, and *.p12.', 'UNKNOWN_CERTIFICATE_TYPE'); - } - } - async getTokenAsync(opts) { - if (this.inFlightRequest && !opts.forceRefresh) { - return this.inFlightRequest; - } - try { - return await (this.inFlightRequest = this.getTokenAsyncInner(opts)); - } - finally { - this.inFlightRequest = undefined; - } - } - async getTokenAsyncInner(opts) { - if (this.isTokenExpiring() === false && opts.forceRefresh === false) { - return Promise.resolve(this.rawToken); - } - if (!this.key && !this.keyFile) { - throw new Error('No key or keyFile set.'); - } - if (!this.key && this.keyFile) { - const creds = await this.getCredentials(this.keyFile); - this.key = creds.privateKey; - this.iss = creds.clientEmail || this.iss; - if (!creds.clientEmail) { - this.ensureEmail(); + if (opts.headers['x-goog-api-client'] && + !opts.headers['x-goog-api-client'].includes(authVersion)) { + opts.headers['x-goog-api-client'] = `${opts.headers['x-goog-api-client']} ${authVersion}`; + } + else if (!opts.headers['x-goog-api-client']) { + const nodeVersion = process.version.replace(/^v/, ''); + opts.headers['x-goog-api-client'] = `gl-node/${nodeVersion} ${authVersion}`; } } - return this.requestToken(); - } - ensureEmail() { - if (!this.iss) { - throw new ErrorWithCode('email is required.', 'MISSING_CREDENTIALS'); - } + return opts; } - revokeToken(callback) { - if (callback) { - this.revokeTokenAsync().then(() => callback(), callback); - return; + request(opts, callback) { + // ensure the user isn't passing in request-style options + opts = this.configure(opts); + try { + options_1.validate(opts); } - return this.revokeTokenAsync(); - } - async revokeTokenAsync() { - if (!this.accessToken) { - throw new Error('No token to revoke.'); + catch (e) { + if (callback) { + return callback(e); + } + else { + throw e; + } } - const url = GOOGLE_REVOKE_TOKEN_URL + this.accessToken; - await gaxios_1.request({ url }); - this.configure({ - email: this.iss, - sub: this.sub, - key: this.key, - keyFile: this.keyFile, - scope: this.scope, - additionalClaims: this.additionalClaims, - }); - } - /** - * Configure the GoogleToken for re-use. - * @param {object} options Configuration object. - */ - configure(options = {}) { - this.keyFile = options.keyFile; - this.key = options.key; - this.rawToken = undefined; - this.iss = options.email || options.iss; - this.sub = options.sub; - this.additionalClaims = options.additionalClaims; - if (typeof options.scope === 'object') { - this.scope = options.scope.join(' '); + if (callback) { + gaxios_1.request(opts).then(r => { + callback(null, r); + }, e => { + callback(this.processError(e)); + }); } else { - this.scope = options.scope; + return gaxios_1.request(opts).catch(e => { + throw this.processError(e); + }); } - this.eagerRefreshThresholdMillis = options.eagerRefreshThresholdMillis; } /** - * Request the token from Google. + * Changes the error to include details from the body. */ - async requestToken() { - const iat = Math.floor(new Date().getTime() / 1000); - const additionalClaims = this.additionalClaims || {}; - const payload = Object.assign({ - iss: this.iss, - scope: this.scope, - aud: GOOGLE_TOKEN_URL, - exp: iat + 3600, - iat, - sub: this.sub, - }, additionalClaims); - const signedJWT = jws.sign({ - header: { alg: 'RS256' }, - payload, - secret: this.key, - }); - try { - const r = await gaxios_1.request({ - method: 'POST', - url: GOOGLE_TOKEN_URL, - data: { - grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer', - assertion: signedJWT, - }, - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - responseType: 'json', - }); - this.rawToken = r.data; - this.expiresAt = - r.data.expires_in === null || r.data.expires_in === undefined - ? undefined - : (iat + r.data.expires_in) * 1000; - return this.rawToken; - } - catch (e) { - this.rawToken = undefined; - this.tokenExpires = undefined; - const body = e.response && e.response.data ? e.response.data : {}; - if (body.error) { - const desc = body.error_description - ? `: ${body.error_description}` - : ''; - e.message = `${body.error}${desc}`; + processError(e) { + const res = e.response; + const err = e; + const body = res ? res.data : null; + if (res && body && body.error && res.status !== 200) { + if (typeof body.error === 'string') { + err.message = body.error; + err.code = res.status.toString(); } - throw e; + else if (Array.isArray(body.error.errors)) { + err.message = body.error.errors + .map((err2) => err2.message) + .join('\n'); + err.code = body.error.code; + err.errors = body.error.errors; + } + else { + err.message = body.error.message; + err.code = body.error.code || res.status; + } + } + else if (res && res.status >= 400) { + // Consider all 4xx and 5xx responses errors. + err.message = body; + err.code = res.status.toString(); } + return err; } } -exports.GoogleToken = GoogleToken; -//# sourceMappingURL=index.js.map +exports.DefaultTransporter = DefaultTransporter; +/** + * Default user agent. + */ +DefaultTransporter.USER_AGENT = `${PRODUCT_NAME}/${pkg.version}`; +//# sourceMappingURL=transporters.js.map /***/ }), -/***/ 1621: -/***/ ((module) => { +/***/ 2098: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - -module.exports = (flag, argv = process.argv) => { - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf('--'); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); -}; - +/** + * Copyright 2018 Google LLC + * + * Distributed under MIT license. + * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT + */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getPem = void 0; +const fs = __nccwpck_require__(7147); +const forge = __nccwpck_require__(7655); +const util_1 = __nccwpck_require__(3837); +const readFile = util_1.promisify(fs.readFile); +function getPem(filename, callback) { + if (callback) { + getPemAsync(filename) + .then(pem => callback(null, pem)) + .catch(err => callback(err, null)); + } + else { + return getPemAsync(filename); + } +} +exports.getPem = getPem; +function getPemAsync(filename) { + return readFile(filename, { encoding: 'base64' }).then(keyp12 => { + return convertToPem(keyp12); + }); +} +/** + * Converts a P12 in base64 encoding to a pem. + * @param p12base64 String containing base64 encoded p12. + * @returns a string containing the pem. + */ +function convertToPem(p12base64) { + const p12Der = forge.util.decode64(p12base64); + const p12Asn1 = forge.asn1.fromDer(p12Der); + const p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, 'notasecret'); + const bags = p12.getBags({ friendlyName: 'privatekey' }); + if (bags.friendlyName) { + const privateKey = bags.friendlyName[0].key; + const pem = forge.pki.privateKeyToPem(privateKey); + return pem.replace(/\r\n/g, '\n'); + } + else { + throw new Error('Unable to get friendly name.'); + } +} +//# sourceMappingURL=index.js.map /***/ }), -/***/ 4933: +/***/ 7356: /***/ ((module) => { "use strict"; -// Original author: -// https://github.com/ashi009/node-fast-crc32c/blob/5e7f9d63cfdb3de9b6c34577466de3dfd732c25d/impls/js_crc32c.js +module.exports = clone -var kCRCTable = new Int32Array([ - 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, - 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb, - 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, - 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24, - 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, - 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384, - 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, - 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b, - 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, - 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35, - 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, - 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa, - 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, - 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a, - 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, - 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595, - 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, - 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957, - 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, - 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198, - 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, - 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38, - 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, - 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7, - 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, - 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789, - 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, - 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46, - 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, - 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6, - 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, - 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829, - 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, - 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93, - 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, - 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c, - 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, - 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc, - 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, - 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033, - 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, - 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d, - 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, - 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982, - 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, - 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622, - 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, - 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed, - 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, - 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f, - 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, - 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0, - 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, - 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540, - 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, - 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f, - 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, - 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1, - 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, - 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e, - 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, - 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e, - 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, - 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351 -]) +var getPrototypeOf = Object.getPrototypeOf || function (obj) { + return obj.__proto__ +} -module.exports = { - calculate: function (buf, initial) { - if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) +function clone (obj) { + if (obj === null || typeof obj !== 'object') + return obj - var crc = (initial | 0) ^ -1 - for (var i = 0; i < buf.length; i++) - crc = kCRCTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8) + if (obj instanceof Object) + var copy = { __proto__: getPrototypeOf(obj) } + else + var copy = Object.create(null) - return (crc ^ -1) >>> 0 - } + Object.getOwnPropertyNames(obj).forEach(function (key) { + Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) + }) + + return copy } + /***/ }), -/***/ 3562: +/***/ 7758: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; +var fs = __nccwpck_require__(7147) +var polyfills = __nccwpck_require__(263) +var legacy = __nccwpck_require__(3086) +var clone = __nccwpck_require__(7356) +var util = __nccwpck_require__(3837) -var crc -try { - crc = __nccwpck_require__(8274) -} catch (e) { - crc = __nccwpck_require__(4933) +/* istanbul ignore next - node 0.x polyfill */ +var gracefulQueue +var previousSymbol + +/* istanbul ignore else - node 0.x polyfill */ +if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { + gracefulQueue = Symbol.for('graceful-fs.queue') + // This is used in testing by future versions + previousSymbol = Symbol.for('graceful-fs.previous') +} else { + gracefulQueue = '___graceful-fs.queue' + previousSymbol = '___graceful-fs.previous' } -var crypto = __nccwpck_require__(6113) -var { PassThrough } = __nccwpck_require__(2781) +function noop () {} -module.exports = function (cfg) { - cfg = cfg || {} +function publishQueue(context, queue) { + Object.defineProperty(context, gracefulQueue, { + get: function() { + return queue + } + }) +} - var crc32c = cfg.crc32c !== false - var md5 = cfg.md5 !== false +var debug = noop +if (util.debuglog) + debug = util.debuglog('gfs4') +else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) + debug = function() { + var m = util.format.apply(util, arguments) + m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') + console.error(m) + } - var hashes = {} - if (md5) hashes.md5 = crypto.createHash('md5') +// Once time initialization +if (!fs[gracefulQueue]) { + // This queue can be shared by multiple loaded instances + var queue = global[gracefulQueue] || [] + publishQueue(fs, queue) - var onData = function (chunk, enc, done) { - if (crc32c) hashes.crc32c = crc.calculate(chunk, hashes.crc32c || 0) - if (md5) hashes.md5.update(chunk) + // Patch fs.close/closeSync to shared queue version, because we need + // to retry() whenever a close happens *anywhere* in the program. + // This is essential when multiple graceful-fs instances are + // in play at the same time. + fs.close = (function (fs$close) { + function close (fd, cb) { + return fs$close.call(fs, fd, function (err) { + // This function uses the graceful-fs shared queue + if (!err) { + resetQueue() + } + + if (typeof cb === 'function') + cb.apply(this, arguments) + }) + } + + Object.defineProperty(close, previousSymbol, { + value: fs$close + }) + return close + })(fs.close) + + fs.closeSync = (function (fs$closeSync) { + function closeSync (fd) { + // This function uses the graceful-fs shared queue + fs$closeSync.apply(fs, arguments) + resetQueue() + } + + Object.defineProperty(closeSync, previousSymbol, { + value: fs$closeSync + }) + return closeSync + })(fs.closeSync) + + if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { + debug(fs[gracefulQueue]) + __nccwpck_require__(9491).equal(fs[gracefulQueue].length, 0) + }) + } +} + +if (!global[gracefulQueue]) { + publishQueue(global, fs[gracefulQueue]); +} + +module.exports = patch(clone(fs)) +if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { + module.exports = patch(fs) + fs.__patched = true; +} + +function patch (fs) { + // Everything that references the open() function needs to be in here + polyfills(fs) + fs.gracefulify = patch + + fs.createReadStream = createReadStream + fs.createWriteStream = createWriteStream + var fs$readFile = fs.readFile + fs.readFile = readFile + function readFile (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$readFile(path, options, cb) + + function go$readFile (path, options, cb, startTime) { + return fs$readFile(path, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$writeFile = fs.writeFile + fs.writeFile = writeFile + function writeFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$writeFile(path, data, options, cb) + + function go$writeFile (path, data, options, cb, startTime) { + return fs$writeFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$appendFile = fs.appendFile + if (fs$appendFile) + fs.appendFile = appendFile + function appendFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$appendFile(path, data, options, cb) + + function go$appendFile (path, data, options, cb, startTime) { + return fs$appendFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$copyFile = fs.copyFile + if (fs$copyFile) + fs.copyFile = copyFile + function copyFile (src, dest, flags, cb) { + if (typeof flags === 'function') { + cb = flags + flags = 0 + } + return go$copyFile(src, dest, flags, cb) + + function go$copyFile (src, dest, flags, cb, startTime) { + return fs$copyFile(src, dest, flags, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$readdir = fs.readdir + fs.readdir = readdir + function readdir (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$readdir(path, options, cb) + + function go$readdir (path, options, cb, startTime) { + return fs$readdir(path, options, function (err, files) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readdir, [path, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (files && files.sort) + files.sort() - done(null, chunk) + if (typeof cb === 'function') + cb.call(this, err, files) + } + }) + } } - var onFlush = function (done) { - if (crc32c) hashes.crc32c = Buffer.from([hashes.crc32c]).toString('base64') - if (md5) hashes.md5 = hashes.md5.digest('base64') - - done() + if (process.version.substr(0, 4) === 'v0.8') { + var legStreams = legacy(fs) + ReadStream = legStreams.ReadStream + WriteStream = legStreams.WriteStream } - var validationStream = new PassThrough({ - transform: onData, - flush: onFlush - }) - - validationStream.test = function (algo, sum) { - return hashes[algo] === sum + var fs$ReadStream = fs.ReadStream + if (fs$ReadStream) { + ReadStream.prototype = Object.create(fs$ReadStream.prototype) + ReadStream.prototype.open = ReadStream$open } - return validationStream -} - + var fs$WriteStream = fs.WriteStream + if (fs$WriteStream) { + WriteStream.prototype = Object.create(fs$WriteStream.prototype) + WriteStream.prototype.open = WriteStream$open + } -/***/ }), + Object.defineProperty(fs, 'ReadStream', { + get: function () { + return ReadStream + }, + set: function (val) { + ReadStream = val + }, + enumerable: true, + configurable: true + }) + Object.defineProperty(fs, 'WriteStream', { + get: function () { + return WriteStream + }, + set: function (val) { + WriteStream = val + }, + enumerable: true, + configurable: true + }) -/***/ 7492: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + // legacy names + var FileReadStream = ReadStream + Object.defineProperty(fs, 'FileReadStream', { + get: function () { + return FileReadStream + }, + set: function (val) { + FileReadStream = val + }, + enumerable: true, + configurable: true + }) + var FileWriteStream = WriteStream + Object.defineProperty(fs, 'FileWriteStream', { + get: function () { + return FileWriteStream + }, + set: function (val) { + FileWriteStream = val + }, + enumerable: true, + configurable: true + }) -"use strict"; + function ReadStream (path, options) { + if (this instanceof ReadStream) + return fs$ReadStream.apply(this, arguments), this + else + return ReadStream.apply(Object.create(ReadStream.prototype), arguments) + } -var __awaiter = (this && this.__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 __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const net_1 = __importDefault(__nccwpck_require__(1808)); -const tls_1 = __importDefault(__nccwpck_require__(4404)); -const url_1 = __importDefault(__nccwpck_require__(7310)); -const debug_1 = __importDefault(__nccwpck_require__(8237)); -const once_1 = __importDefault(__nccwpck_require__(1040)); -const agent_base_1 = __nccwpck_require__(9690); -const debug = (0, debug_1.default)('http-proxy-agent'); -function isHTTPS(protocol) { - return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; -} -/** - * The `HttpProxyAgent` implements an HTTP Agent subclass that connects - * to the specified "HTTP proxy server" in order to proxy HTTP requests. - * - * @api public - */ -class HttpProxyAgent extends agent_base_1.Agent { - constructor(_opts) { - let opts; - if (typeof _opts === 'string') { - opts = url_1.default.parse(_opts); - } - else { - opts = _opts; - } - if (!opts) { - throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); - } - debug('Creating new HttpProxyAgent instance: %o', opts); - super(opts); - const proxy = Object.assign({}, opts); - // If `true`, then connect to the proxy server over TLS. - // Defaults to `false`. - this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); - // Prefer `hostname` over `host`, and set the `port` if needed. - proxy.host = proxy.hostname || proxy.host; - if (typeof proxy.port === 'string') { - proxy.port = parseInt(proxy.port, 10); - } - if (!proxy.port && proxy.host) { - proxy.port = this.secureProxy ? 443 : 80; - } - if (proxy.host && proxy.path) { - // If both a `host` and `path` are specified then it's most likely - // the result of a `url.parse()` call... we need to remove the - // `path` portion so that `net.connect()` doesn't attempt to open - // that as a Unix socket file. - delete proxy.path; - delete proxy.pathname; - } - this.proxy = proxy; - } - /** - * Called when the node-core HTTP client library is creating a - * new HTTP request. - * - * @api protected - */ - callback(req, opts) { - return __awaiter(this, void 0, void 0, function* () { - const { proxy, secureProxy } = this; - const parsed = url_1.default.parse(req.path); - if (!parsed.protocol) { - parsed.protocol = 'http:'; - } - if (!parsed.hostname) { - parsed.hostname = opts.hostname || opts.host || null; - } - if (parsed.port == null && typeof opts.port) { - parsed.port = String(opts.port); - } - if (parsed.port === '80') { - // if port is 80, then we can remove the port so that the - // ":80" portion is not on the produced URL - parsed.port = ''; - } - // Change the `http.ClientRequest` instance's "path" field - // to the absolute path of the URL that will be requested. - req.path = url_1.default.format(parsed); - // Inject the `Proxy-Authorization` header if necessary. - if (proxy.auth) { - req.setHeader('Proxy-Authorization', `Basic ${Buffer.from(proxy.auth).toString('base64')}`); - } - // Create a socket connection to the proxy server. - let socket; - if (secureProxy) { - debug('Creating `tls.Socket`: %o', proxy); - socket = tls_1.default.connect(proxy); - } - else { - debug('Creating `net.Socket`: %o', proxy); - socket = net_1.default.connect(proxy); - } - // At this point, the http ClientRequest's internal `_header` field - // might have already been set. If this is the case then we'll need - // to re-generate the string since we just changed the `req.path`. - if (req._header) { - let first; - let endOfHeaders; - debug('Regenerating stored HTTP header string for request'); - req._header = null; - req._implicitHeader(); - if (req.output && req.output.length > 0) { - // Node < 12 - debug('Patching connection write() output buffer with updated header'); - first = req.output[0]; - endOfHeaders = first.indexOf('\r\n\r\n') + 4; - req.output[0] = req._header + first.substring(endOfHeaders); - debug('Output buffer: %o', req.output); - } - else if (req.outputData && req.outputData.length > 0) { - // Node >= 12 - debug('Patching connection write() output buffer with updated header'); - first = req.outputData[0].data; - endOfHeaders = first.indexOf('\r\n\r\n') + 4; - req.outputData[0].data = - req._header + first.substring(endOfHeaders); - debug('Output buffer: %o', req.outputData[0].data); - } - } - // Wait for the socket's `connect` event, so that this `callback()` - // function throws instead of the `http` request machinery. This is - // important for i.e. `PacProxyAgent` which determines a failed proxy - // connection via the `callback()` function throwing. - yield (0, once_1.default)(socket, 'connect'); - return socket; - }); - } -} -exports["default"] = HttpProxyAgent; -//# sourceMappingURL=agent.js.map + function ReadStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + if (that.autoClose) + that.destroy() -/***/ }), + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + that.read() + } + }) + } -/***/ 3764: -/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { + function WriteStream (path, options) { + if (this instanceof WriteStream) + return fs$WriteStream.apply(this, arguments), this + else + return WriteStream.apply(Object.create(WriteStream.prototype), arguments) + } -"use strict"; + function WriteStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + that.destroy() + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + } + }) + } -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const agent_1 = __importDefault(__nccwpck_require__(7492)); -function createHttpProxyAgent(opts) { - return new agent_1.default(opts); -} -(function (createHttpProxyAgent) { - createHttpProxyAgent.HttpProxyAgent = agent_1.default; - createHttpProxyAgent.prototype = agent_1.default.prototype; -})(createHttpProxyAgent || (createHttpProxyAgent = {})); -module.exports = createHttpProxyAgent; -//# sourceMappingURL=index.js.map + function createReadStream (path, options) { + return new fs.ReadStream(path, options) + } -/***/ }), + function createWriteStream (path, options) { + return new fs.WriteStream(path, options) + } -/***/ 5098: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + var fs$open = fs.open + fs.open = open + function open (path, flags, mode, cb) { + if (typeof mode === 'function') + cb = mode, mode = null -"use strict"; + return go$open(path, flags, mode, cb) -var __awaiter = (this && this.__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 __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const net_1 = __importDefault(__nccwpck_require__(1808)); -const tls_1 = __importDefault(__nccwpck_require__(4404)); -const url_1 = __importDefault(__nccwpck_require__(7310)); -const assert_1 = __importDefault(__nccwpck_require__(9491)); -const debug_1 = __importDefault(__nccwpck_require__(8237)); -const agent_base_1 = __nccwpck_require__(9690); -const parse_proxy_response_1 = __importDefault(__nccwpck_require__(595)); -const debug = debug_1.default('https-proxy-agent:agent'); -/** - * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to - * the specified "HTTP(s) proxy server" in order to proxy HTTPS requests. - * - * Outgoing HTTP requests are first tunneled through the proxy server using the - * `CONNECT` HTTP request method to establish a connection to the proxy server, - * and then the proxy server connects to the destination target and issues the - * HTTP request from the proxy server. - * - * `https:` requests have their socket connection upgraded to TLS once - * the connection to the proxy server has been established. - * - * @api public - */ -class HttpsProxyAgent extends agent_base_1.Agent { - constructor(_opts) { - let opts; - if (typeof _opts === 'string') { - opts = url_1.default.parse(_opts); - } + function go$open (path, flags, mode, cb, startTime) { + return fs$open(path, flags, mode, function (err, fd) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()]) else { - opts = _opts; - } - if (!opts) { - throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); - } - debug('creating new HttpsProxyAgent instance: %o', opts); - super(opts); - const proxy = Object.assign({}, opts); - // If `true`, then connect to the proxy server over TLS. - // Defaults to `false`. - this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); - // Prefer `hostname` over `host`, and set the `port` if needed. - proxy.host = proxy.hostname || proxy.host; - if (typeof proxy.port === 'string') { - proxy.port = parseInt(proxy.port, 10); - } - if (!proxy.port && proxy.host) { - proxy.port = this.secureProxy ? 443 : 80; - } - // ALPN is supported by Node.js >= v5. - // attempt to negotiate http/1.1 for proxy servers that support http/2 - if (this.secureProxy && !('ALPNProtocols' in proxy)) { - proxy.ALPNProtocols = ['http 1.1']; - } - if (proxy.host && proxy.path) { - // If both a `host` and `path` are specified then it's most likely - // the result of a `url.parse()` call... we need to remove the - // `path` portion so that `net.connect()` doesn't attempt to open - // that as a Unix socket file. - delete proxy.path; - delete proxy.pathname; - } - this.proxy = proxy; - } - /** - * Called when the node-core HTTP client library is creating a - * new HTTP request. - * - * @api protected - */ - callback(req, opts) { - return __awaiter(this, void 0, void 0, function* () { - const { proxy, secureProxy } = this; - // Create a socket connection to the proxy server. - let socket; - if (secureProxy) { - debug('Creating `tls.Socket`: %o', proxy); - socket = tls_1.default.connect(proxy); - } - else { - debug('Creating `net.Socket`: %o', proxy); - socket = net_1.default.connect(proxy); - } - const headers = Object.assign({}, proxy.headers); - const hostname = `${opts.host}:${opts.port}`; - let payload = `CONNECT ${hostname} HTTP/1.1\r\n`; - // Inject the `Proxy-Authorization` header if necessary. - if (proxy.auth) { - headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`; - } - // The `Host` header should only include the port - // number when it is not the default port. - let { host, port, secureEndpoint } = opts; - if (!isDefaultPort(port, secureEndpoint)) { - host += `:${port}`; - } - headers.Host = host; - headers.Connection = 'close'; - for (const name of Object.keys(headers)) { - payload += `${name}: ${headers[name]}\r\n`; - } - const proxyResponsePromise = parse_proxy_response_1.default(socket); - socket.write(`${payload}\r\n`); - const { statusCode, buffered } = yield proxyResponsePromise; - if (statusCode === 200) { - req.once('socket', resume); - if (opts.secureEndpoint) { - // The proxy is connecting to a TLS server, so upgrade - // this socket connection to a TLS connection. - debug('Upgrading socket connection to TLS'); - const servername = opts.servername || opts.host; - return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket, - servername })); - } - return socket; - } - // Some other status code that's not 200... need to re-play the HTTP - // header "data" events onto the socket once the HTTP machinery is - // attached so that the node core `http` can parse and handle the - // error status code. - // Close the original socket, and a new "fake" socket is returned - // instead, so that the proxy doesn't get the HTTP request - // written to it (which may contain `Authorization` headers or other - // sensitive data). - // - // See: https://hackerone.com/reports/541502 - socket.destroy(); - const fakeSocket = new net_1.default.Socket({ writable: false }); - fakeSocket.readable = true; - // Need to wait for the "socket" event to re-play the "data" events. - req.once('socket', (s) => { - debug('replaying proxy buffer for failed request'); - assert_1.default(s.listenerCount('data') > 0); - // Replay the "buffered" Buffer onto the fake `socket`, since at - // this point the HTTP module machinery has been hooked up for - // the user. - s.push(buffered); - s.push(null); - }); - return fakeSocket; - }); - } -} -exports["default"] = HttpsProxyAgent; -function resume(socket) { - socket.resume(); -} -function isDefaultPort(port, secure) { - return Boolean((!secure && port === 80) || (secure && port === 443)); -} -function isHTTPS(protocol) { - return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; -} -function omit(obj, ...keys) { - const ret = {}; - let key; - for (key in obj) { - if (!keys.includes(key)) { - ret[key] = obj[key]; + if (typeof cb === 'function') + cb.apply(this, arguments) } + }) } - return ret; -} -//# sourceMappingURL=agent.js.map + } -/***/ }), + return fs +} -/***/ 7219: -/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { +function enqueue (elem) { + debug('ENQUEUE', elem[0].name, elem[1]) + fs[gracefulQueue].push(elem) + retry() +} -"use strict"; +// keep track of the timeout between retry() calls +var retryTimer -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const agent_1 = __importDefault(__nccwpck_require__(5098)); -function createHttpsProxyAgent(opts) { - return new agent_1.default(opts); +// reset the startTime and lastTime to now +// this resets the start of the 60 second overall timeout as well as the +// delay between attempts so that we'll retry these jobs sooner +function resetQueue () { + var now = Date.now() + for (var i = 0; i < fs[gracefulQueue].length; ++i) { + // entries that are only a length of 2 are from an older version, don't + // bother modifying those since they'll be retried anyway. + if (fs[gracefulQueue][i].length > 2) { + fs[gracefulQueue][i][3] = now // startTime + fs[gracefulQueue][i][4] = now // lastTime + } + } + // call retry to make sure we're actively processing the queue + retry() } -(function (createHttpsProxyAgent) { - createHttpsProxyAgent.HttpsProxyAgent = agent_1.default; - createHttpsProxyAgent.prototype = agent_1.default.prototype; -})(createHttpsProxyAgent || (createHttpsProxyAgent = {})); -module.exports = createHttpsProxyAgent; -//# sourceMappingURL=index.js.map -/***/ }), +function retry () { + // clear the timer and remove it to help prevent unintended concurrency + clearTimeout(retryTimer) + retryTimer = undefined -/***/ 595: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + if (fs[gracefulQueue].length === 0) + return -"use strict"; + var elem = fs[gracefulQueue].shift() + var fn = elem[0] + var args = elem[1] + // these items may be unset if they were added by an older graceful-fs + var err = elem[2] + var startTime = elem[3] + var lastTime = elem[4] -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const debug_1 = __importDefault(__nccwpck_require__(8237)); -const debug = debug_1.default('https-proxy-agent:parse-proxy-response'); -function parseProxyResponse(socket) { - return new Promise((resolve, reject) => { - // we need to buffer any HTTP traffic that happens with the proxy before we get - // the CONNECT response, so that if the response is anything other than an "200" - // response code, then we can re-play the "data" events on the socket once the - // HTTP parser is hooked up... - let buffersLength = 0; - const buffers = []; - function read() { - const b = socket.read(); - if (b) - ondata(b); - else - socket.once('readable', read); - } - function cleanup() { - socket.removeListener('end', onend); - socket.removeListener('error', onerror); - socket.removeListener('close', onclose); - socket.removeListener('readable', read); - } - function onclose(err) { - debug('onclose had error %o', err); - } - function onend() { - debug('onend'); - } - function onerror(err) { - cleanup(); - debug('onerror %o', err); - reject(err); - } - function ondata(b) { - buffers.push(b); - buffersLength += b.length; - const buffered = Buffer.concat(buffers, buffersLength); - const endOfHeaders = buffered.indexOf('\r\n\r\n'); - if (endOfHeaders === -1) { - // keep buffering - debug('have not received end of HTTP headers yet...'); - read(); - return; - } - const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\r\n')); - const statusCode = +firstLine.split(' ')[1]; - debug('got proxy server response: %o', firstLine); - resolve({ - statusCode, - buffered - }); - } - socket.on('error', onerror); - socket.on('close', onclose); - socket.on('end', onend); - read(); - }); + // if we don't have a startTime we have no way of knowing if we've waited + // long enough, so go ahead and retry this item now + if (startTime === undefined) { + debug('RETRY', fn.name, args) + fn.apply(null, args) + } else if (Date.now() - startTime >= 60000) { + // it's been more than 60 seconds total, bail now + debug('TIMEOUT', fn.name, args) + var cb = args.pop() + if (typeof cb === 'function') + cb.call(null, err) + } else { + // the amount of time between the last attempt and right now + var sinceAttempt = Date.now() - lastTime + // the amount of time between when we first tried, and when we last tried + // rounded up to at least 1 + var sinceStart = Math.max(lastTime - startTime, 1) + // backoff. wait longer than the total time we've been retrying, but only + // up to a maximum of 100ms + var desiredDelay = Math.min(sinceStart * 1.2, 100) + // it's been long enough since the last retry, do it again + if (sinceAttempt >= desiredDelay) { + debug('RETRY', fn.name, args) + fn.apply(null, args.concat([startTime])) + } else { + // if we can't do this job yet, push it to the end of the queue + // and let the next iteration check again + fs[gracefulQueue].push(elem) + } + } + + // schedule our next run if one isn't already scheduled + if (retryTimer === undefined) { + retryTimer = setTimeout(retry, 0) + } } -exports["default"] = parseProxyResponse; -//# sourceMappingURL=parse-proxy-response.js.map + /***/ }), -/***/ 4777: -/***/ ((module) => { +/***/ 3086: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -// A simple implementation of make-array -function makeArray (subject) { - return Array.isArray(subject) - ? subject - : [subject] -} +var Stream = (__nccwpck_require__(2781).Stream) -const EMPTY = '' -const SPACE = ' ' -const ESCAPE = '\\' -const REGEX_TEST_BLANK_LINE = /^\s+$/ -const REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/ -const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/ -const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/ -const REGEX_SPLITALL_CRLF = /\r?\n/g -// /foo, -// ./foo, -// ../foo, -// . -// .. -const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/ +module.exports = legacy -const SLASH = '/' +function legacy (fs) { + return { + ReadStream: ReadStream, + WriteStream: WriteStream + } -// Do not use ternary expression here, since "istanbul ignore next" is buggy -let TMP_KEY_IGNORE = 'node-ignore' -/* istanbul ignore else */ -if (typeof Symbol !== 'undefined') { - TMP_KEY_IGNORE = Symbol.for('node-ignore') -} -const KEY_IGNORE = TMP_KEY_IGNORE + function ReadStream (path, options) { + if (!(this instanceof ReadStream)) return new ReadStream(path, options); -const define = (object, key, value) => - Object.defineProperty(object, key, {value}) + Stream.call(this); -const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g + var self = this; -const RETURN_FALSE = () => false + this.path = path; + this.fd = null; + this.readable = true; + this.paused = false; -// Sanitize the range of a regular expression -// The cases are complicated, see test cases for details -const sanitizeRange = range => range.replace( - REGEX_REGEXP_RANGE, - (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) - ? match - // Invalid range (out of order) which is ok for gitignore rules but - // fatal for JavaScript regular expression, so eliminate it. - : EMPTY -) + this.flags = 'r'; + this.mode = 438; /*=0666*/ + this.bufferSize = 64 * 1024; -// See fixtures #59 -const cleanRangeBackSlash = slashes => { - const {length} = slashes - return slashes.slice(0, length - length % 2) -} + options = options || {}; -// > If the pattern ends with a slash, -// > it is removed for the purpose of the following description, -// > but it would only find a match with a directory. -// > In other words, foo/ will match a directory foo and paths underneath it, -// > but will not match a regular file or a symbolic link foo -// > (this is consistent with the way how pathspec works in general in Git). -// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' -// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call -// you could use option `mark: true` with `glob` + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } -// '`foo/`' should not continue with the '`..`' -const REPLACERS = [ + if (this.encoding) this.setEncoding(this.encoding); - // > Trailing spaces are ignored unless they are quoted with backslash ("\") - [ - // (a\ ) -> (a ) - // (a ) -> (a) - // (a \ ) -> (a ) - /\\?\s+$/, - match => match.indexOf('\\') === 0 - ? SPACE - : EMPTY - ], + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.end === undefined) { + this.end = Infinity; + } else if ('number' !== typeof this.end) { + throw TypeError('end must be a Number'); + } - // replace (\ ) with ' ' - [ - /\\\s/g, - () => SPACE - ], + if (this.start > this.end) { + throw new Error('start must be <= end'); + } - // Escape metacharacters - // which is written down by users but means special for regular expressions. + this.pos = this.start; + } - // > There are 12 characters with special meanings: - // > - the backslash \, - // > - the caret ^, - // > - the dollar sign $, - // > - the period or dot ., - // > - the vertical bar or pipe symbol |, - // > - the question mark ?, - // > - the asterisk or star *, - // > - the plus sign +, - // > - the opening parenthesis (, - // > - the closing parenthesis ), - // > - and the opening square bracket [, - // > - the opening curly brace {, - // > These special characters are often called "metacharacters". - [ - /[\\$.|*+(){^]/g, - match => `\\${match}` - ], + if (this.fd !== null) { + process.nextTick(function() { + self._read(); + }); + return; + } - [ - // > a question mark (?) matches a single character - /(?!\\)\?/g, - () => '[^/]' - ], + fs.open(this.path, this.flags, this.mode, function (err, fd) { + if (err) { + self.emit('error', err); + self.readable = false; + return; + } - // leading slash - [ + self.fd = fd; + self.emit('open', fd); + self._read(); + }) + } - // > A leading slash matches the beginning of the pathname. - // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". - // A leading slash matches the beginning of the pathname - /^\//, - () => '^' - ], + function WriteStream (path, options) { + if (!(this instanceof WriteStream)) return new WriteStream(path, options); - // replace special metacharacter slash after the leading slash - [ - /\//g, - () => '\\/' - ], + Stream.call(this); - [ - // > A leading "**" followed by a slash means match in all directories. - // > For example, "**/foo" matches file or directory "foo" anywhere, - // > the same as pattern "foo". - // > "**/foo/bar" matches file or directory "bar" anywhere that is directly - // > under directory "foo". - // Notice that the '*'s have been replaced as '\\*' - /^\^*\\\*\\\*\\\//, + this.path = path; + this.fd = null; + this.writable = true; - // '**/foo' <-> 'foo' - () => '^(?:.*\\/)?' - ], + this.flags = 'w'; + this.encoding = 'binary'; + this.mode = 438; /*=0666*/ + this.bytesWritten = 0; - // starting - [ - // there will be no leading '/' - // (which has been replaced by section "leading slash") - // If starts with '**', adding a '^' to the regular expression also works - /^(?=[^^])/, - function startingReplacer () { - // If has a slash `/` at the beginning or middle - return !/\/(?!$)/.test(this) - // > Prior to 2.22.1 - // > If the pattern does not contain a slash /, - // > Git treats it as a shell glob pattern - // Actually, if there is only a trailing slash, - // git also treats it as a shell glob pattern + options = options || {}; - // After 2.22.1 (compatible but clearer) - // > If there is a separator at the beginning or middle (or both) - // > of the pattern, then the pattern is relative to the directory - // > level of the particular .gitignore file itself. - // > Otherwise the pattern may also match at any level below - // > the .gitignore level. - ? '(?:^|\\/)' + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } - // > Otherwise, Git treats the pattern as a shell glob suitable for - // > consumption by fnmatch(3) - : '^' + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.start < 0) { + throw new Error('start must be >= zero'); + } + + this.pos = this.start; } - ], - // two globstars - [ - // Use lookahead assertions so that we could match more than one `'/**'` - /\\\/\\\*\\\*(?=\\\/|$)/g, + this.busy = false; + this._queue = []; - // Zero, one or several directories - // should not use '*', or it will be replaced by the next replacer + if (this.fd === null) { + this._open = fs.open; + this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); + this.flush(); + } + } +} - // Check if it is not the last `'/**'` - (_, index, str) => index + 6 < str.length - // case: /**/ - // > A slash followed by two consecutive asterisks then a slash matches - // > zero or more directories. - // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. - // '/**/' - ? '(?:\\/[^\\/]+)*' +/***/ }), - // case: /** - // > A trailing `"/**"` matches everything inside. +/***/ 263: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - // #21: everything inside but it should not include the current folder - : '\\/.+' - ], +var constants = __nccwpck_require__(2057) - // normal intermediate wildcards - [ - // Never replace escaped '*' - // ignore rule '\*' will match the path '*' +var origCwd = process.cwd +var cwd = null - // 'abc.*/' -> go - // 'abc.*' -> skip this rule, - // coz trailing single wildcard will be handed by [trailing wildcard] - /(^|[^\\]+)(\\\*)+(?=.+)/g, +var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform - // '*.js' matches '.js' - // '*.js' doesn't match 'abc' - (_, p1, p2) => { - // 1. - // > An asterisk "*" matches anything except a slash. - // 2. - // > Other consecutive asterisks are considered regular asterisks - // > and will match according to the previous rules. - const unescaped = p2.replace(/\\\*/g, '[^\\/]*') - return p1 + unescaped - } - ], +process.cwd = function() { + if (!cwd) + cwd = origCwd.call(process) + return cwd +} +try { + process.cwd() +} catch (er) {} - [ - // unescape, revert step 3 except for back slash - // For example, if a user escape a '\\*', - // after step 3, the result will be '\\\\\\*' - /\\\\\\(?=[$.|*+(){^])/g, - () => ESCAPE - ], +// This check is needed until node.js 12 is required +if (typeof process.chdir === 'function') { + var chdir = process.chdir + process.chdir = function (d) { + cwd = null + chdir.call(process, d) + } + if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir) +} - [ - // '\\\\' -> '\\' - /\\\\/g, - () => ESCAPE - ], +module.exports = patch - [ - // > The range notation, e.g. [a-zA-Z], - // > can be used to match one of the characters in a range. +function patch (fs) { + // (re-)implement some things that are known busted or missing. - // `\` is escaped by step 3 - /(\\)?\[([^\]/]*?)(\\*)($|\])/g, - (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE - // '\\[bar]' -> '\\\\[bar\\]' - ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` - : close === ']' - ? endEscape.length % 2 === 0 - // A normal case, and it is a range notation - // '[bar]' - // '[bar\\\\]' - ? `[${sanitizeRange(range)}${endEscape}]` - // Invalid range notaton - // '[bar\\]' -> '[bar\\\\]' - : '[]' - : '[]' - ], + // lchmod, broken prior to 0.6.2 + // back-port the fix here. + if (constants.hasOwnProperty('O_SYMLINK') && + process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { + patchLchmod(fs) + } - // ending - [ - // 'js' will not match 'js.' - // 'ab' will not match 'abc' - /(?:[^*])$/, + // lutimes implementation, or no-op + if (!fs.lutimes) { + patchLutimes(fs) + } - // WTF! - // https://git-scm.com/docs/gitignore - // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) - // which re-fixes #24, #38 + // https://github.com/isaacs/node-graceful-fs/issues/4 + // Chown should not fail on einval or eperm if non-root. + // It should not fail on enosys ever, as this just indicates + // that a fs doesn't support the intended operation. - // > If there is a separator at the end of the pattern then the pattern - // > will only match directories, otherwise the pattern can match both - // > files and directories. + fs.chown = chownFix(fs.chown) + fs.fchown = chownFix(fs.fchown) + fs.lchown = chownFix(fs.lchown) - // 'js*' will not match 'a.js' - // 'js/' will not match 'a.js' - // 'js' will match 'a.js' and 'a.js/' - match => /\/$/.test(match) - // foo/ will not match 'foo' - ? `${match}$` - // foo matches 'foo' and 'foo/' - : `${match}(?=$|\\/$)` - ], + fs.chmod = chmodFix(fs.chmod) + fs.fchmod = chmodFix(fs.fchmod) + fs.lchmod = chmodFix(fs.lchmod) - // trailing wildcard - [ - /(\^|\\\/)?\\\*$/, - (_, p1) => { - const prefix = p1 - // '\^': - // '/*' does not match EMPTY - // '/*' does not match everything + fs.chownSync = chownFixSync(fs.chownSync) + fs.fchownSync = chownFixSync(fs.fchownSync) + fs.lchownSync = chownFixSync(fs.lchownSync) - // '\\\/': - // 'abc/*' does not match 'abc/' - ? `${p1}[^/]+` + fs.chmodSync = chmodFixSync(fs.chmodSync) + fs.fchmodSync = chmodFixSync(fs.fchmodSync) + fs.lchmodSync = chmodFixSync(fs.lchmodSync) - // 'a*' matches 'a' - // 'a*' matches 'aa' - : '[^/]*' + fs.stat = statFix(fs.stat) + fs.fstat = statFix(fs.fstat) + fs.lstat = statFix(fs.lstat) - return `${prefix}(?=$|\\/$)` - } - ], -] + fs.statSync = statFixSync(fs.statSync) + fs.fstatSync = statFixSync(fs.fstatSync) + fs.lstatSync = statFixSync(fs.lstatSync) -// A simple cache, because an ignore rule only has only one certain meaning -const regexCache = Object.create(null) + // if lchmod/lchown do not exist, then make them no-ops + if (!fs.lchmod) { + fs.lchmod = function (path, mode, cb) { + if (cb) process.nextTick(cb) + } + fs.lchmodSync = function () {} + } + if (!fs.lchown) { + fs.lchown = function (path, uid, gid, cb) { + if (cb) process.nextTick(cb) + } + fs.lchownSync = function () {} + } -// @param {pattern} -const makeRegex = (pattern, ignoreCase) => { - let source = regexCache[pattern] + // on Windows, A/V software can lock the directory, causing this + // to fail with an EACCES or EPERM if the directory contains newly + // created files. Try again on failure, for up to 60 seconds. - if (!source) { - source = REPLACERS.reduce( - (prev, current) => prev.replace(current[0], current[1].bind(pattern)), - pattern - ) - regexCache[pattern] = source + // Set the timeout this long because some Windows Anti-Virus, such as Parity + // bit9, may lock files for up to a minute, causing npm package install + // failures. Also, take care to yield the scheduler. Windows scheduling gives + // CPU to a busy looping process, which can cause the program causing the lock + // contention to be starved of CPU by node, so the contention doesn't resolve. + if (platform === "win32") { + fs.rename = (function (fs$rename) { return function (from, to, cb) { + var start = Date.now() + var backoff = 0; + fs$rename(from, to, function CB (er) { + if (er + && (er.code === "EACCES" || er.code === "EPERM") + && Date.now() - start < 60000) { + setTimeout(function() { + fs.stat(to, function (stater, st) { + if (stater && stater.code === "ENOENT") + fs$rename(from, to, CB); + else + cb(er) + }) + }, backoff) + if (backoff < 100) + backoff += 10; + return; + } + if (cb) cb(er) + }) + }})(fs.rename) } - return ignoreCase - ? new RegExp(source, 'i') - : new RegExp(source) -} + // if read() returns EAGAIN, then just try it again. + fs.read = (function (fs$read) { + function read (fd, buffer, offset, length, position, callback_) { + var callback + if (callback_ && typeof callback_ === 'function') { + var eagCounter = 0 + callback = function (er, _, __) { + if (er && er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } + callback_.apply(this, arguments) + } + } + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } -const isString = subject => typeof subject === 'string' + // This ensures `util.promisify` works as it does for native `fs.read`. + if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read) + return read + })(fs.read) -// > A blank line matches no files, so it can serve as a separator for readability. -const checkPattern = pattern => pattern - && isString(pattern) - && !REGEX_TEST_BLANK_LINE.test(pattern) - && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) + fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { + var eagCounter = 0 + while (true) { + try { + return fs$readSync.call(fs, fd, buffer, offset, length, position) + } catch (er) { + if (er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + continue + } + throw er + } + } + }})(fs.readSync) - // > A line starting with # serves as a comment. - && pattern.indexOf('#') !== 0 + function patchLchmod (fs) { + fs.lchmod = function (path, mode, callback) { + fs.open( path + , constants.O_WRONLY | constants.O_SYMLINK + , mode + , function (err, fd) { + if (err) { + if (callback) callback(err) + return + } + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + fs.fchmod(fd, mode, function (err) { + fs.close(fd, function(err2) { + if (callback) callback(err || err2) + }) + }) + }) + } -const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF) + fs.lchmodSync = function (path, mode) { + var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) -class IgnoreRule { - constructor ( - origin, - pattern, - negative, - regex - ) { - this.origin = origin - this.pattern = pattern - this.negative = negative - this.regex = regex + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + var threw = true + var ret + try { + ret = fs.fchmodSync(fd, mode) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } } -} -const createRule = (pattern, ignoreCase) => { - const origin = pattern - let negative = false + function patchLutimes (fs) { + if (constants.hasOwnProperty("O_SYMLINK")) { + fs.lutimes = function (path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, function (er, fd) { + if (er) { + if (cb) cb(er) + return + } + fs.futimes(fd, at, mt, function (er) { + fs.close(fd, function (er2) { + if (cb) cb(er || er2) + }) + }) + }) + } - // > An optional prefix "!" which negates the pattern; - if (pattern.indexOf('!') === 0) { - negative = true - pattern = pattern.substr(1) - } + fs.lutimesSync = function (path, at, mt) { + var fd = fs.openSync(path, constants.O_SYMLINK) + var ret + var threw = true + try { + ret = fs.futimesSync(fd, at, mt) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } - pattern = pattern - // > Put a backslash ("\") in front of the first "!" for patterns that - // > begin with a literal "!", for example, `"\!important!.txt"`. - .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') - // > Put a backslash ("\") in front of the first hash for patterns that - // > begin with a hash. - .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#') + } else { + fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } + fs.lutimesSync = function () {} + } + } - const regex = makeRegex(pattern, ignoreCase) + function chmodFix (orig) { + if (!orig) return orig + return function (target, mode, cb) { + return orig.call(fs, target, mode, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } + } - return new IgnoreRule( - origin, - pattern, - negative, - regex - ) -} + function chmodFixSync (orig) { + if (!orig) return orig + return function (target, mode) { + try { + return orig.call(fs, target, mode) + } catch (er) { + if (!chownErOk(er)) throw er + } + } + } -const throwError = (message, Ctor) => { - throw new Ctor(message) -} -const checkPath = (path, originalPath, doThrow) => { - if (!isString(path)) { - return doThrow( - `path must be a string, but got \`${originalPath}\``, - TypeError - ) + function chownFix (orig) { + if (!orig) return orig + return function (target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } } - // We don't know if we should ignore EMPTY, so throw - if (!path) { - return doThrow(`path must not be empty`, TypeError) + function chownFixSync (orig) { + if (!orig) return orig + return function (target, uid, gid) { + try { + return orig.call(fs, target, uid, gid) + } catch (er) { + if (!chownErOk(er)) throw er + } + } } - // Check if it is a relative path - if (checkPath.isNotRelative(path)) { - const r = '`path.relative()`d' - return doThrow( - `path should be a ${r} string, but got "${originalPath}"`, - RangeError - ) + function statFix (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + function callback (er, stats) { + if (stats) { + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + } + if (cb) cb.apply(this, arguments) + } + return options ? orig.call(fs, target, options, callback) + : orig.call(fs, target, callback) + } } - return true -} + function statFixSync (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options) { + var stats = options ? orig.call(fs, target, options) + : orig.call(fs, target) + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + return stats; + } + } -const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path) + // ENOSYS means that the fs doesn't support the op. Just ignore + // that, because it doesn't matter. + // + // if there's no getuid, or if getuid() is something other + // than 0, and the error is EINVAL or EPERM, then just ignore + // it. + // + // This specific case is a silent failure in cp, install, tar, + // and most other unix tools that manage permissions. + // + // When running as root, or if other types of errors are + // encountered, then it's strict. + function chownErOk (er) { + if (!er) + return true -checkPath.isNotRelative = isNotRelative -checkPath.convert = p => p + if (er.code === "ENOSYS") + return true -class Ignore { - constructor ({ - ignorecase = true, - ignoreCase = ignorecase, - allowRelativePaths = false - } = {}) { - define(this, KEY_IGNORE, true) + var nonroot = !process.getuid || process.getuid() !== 0 + if (nonroot) { + if (er.code === "EINVAL" || er.code === "EPERM") + return true + } - this._rules = [] - this._ignoreCase = ignoreCase - this._allowRelativePaths = allowRelativePaths - this._initCache() + return false } +} - _initCache () { - this._ignoreCache = Object.create(null) - this._testCache = Object.create(null) - } - _addPattern (pattern) { - // #32 - if (pattern && pattern[KEY_IGNORE]) { - this._rules = this._rules.concat(pattern._rules) - this._added = true - return +/***/ }), + +/***/ 6031: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +/** + * Copyright 2018 Google LLC + * + * Distributed under MIT license. + * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT + */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.GoogleToken = void 0; +const fs = __nccwpck_require__(7147); +const gaxios_1 = __nccwpck_require__(9555); +const jws = __nccwpck_require__(4636); +const path = __nccwpck_require__(1017); +const util_1 = __nccwpck_require__(3837); +const readFile = fs.readFile + ? util_1.promisify(fs.readFile) + : async () => { + // if running in the web-browser, fs.readFile may not have been shimmed. + throw new ErrorWithCode('use key rather than keyFile.', 'MISSING_CREDENTIALS'); + }; +const GOOGLE_TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token'; +const GOOGLE_REVOKE_TOKEN_URL = 'https://accounts.google.com/o/oauth2/revoke?token='; +class ErrorWithCode extends Error { + constructor(message, code) { + super(message); + this.code = code; + } +} +let getPem; +class GoogleToken { + /** + * Create a GoogleToken. + * + * @param options Configuration object. + */ + constructor(options) { + this.configure(options); + } + get accessToken() { + return this.rawToken ? this.rawToken.access_token : undefined; + } + get idToken() { + return this.rawToken ? this.rawToken.id_token : undefined; + } + get tokenType() { + return this.rawToken ? this.rawToken.token_type : undefined; + } + get refreshToken() { + return this.rawToken ? this.rawToken.refresh_token : undefined; + } + /** + * Returns whether the token has expired. + * + * @return true if the token has expired, false otherwise. + */ + hasExpired() { + const now = new Date().getTime(); + if (this.rawToken && this.expiresAt) { + return now >= this.expiresAt; + } + else { + return true; + } + } + /** + * Returns whether the token will expire within eagerRefreshThresholdMillis + * + * @return true if the token will be expired within eagerRefreshThresholdMillis, false otherwise. + */ + isTokenExpiring() { + var _a; + const now = new Date().getTime(); + const eagerRefreshThresholdMillis = (_a = this.eagerRefreshThresholdMillis) !== null && _a !== void 0 ? _a : 0; + if (this.rawToken && this.expiresAt) { + return this.expiresAt <= now + eagerRefreshThresholdMillis; + } + else { + return true; + } + } + getToken(callback, opts = {}) { + if (typeof callback === 'object') { + opts = callback; + callback = undefined; + } + opts = Object.assign({ + forceRefresh: false, + }, opts); + if (callback) { + const cb = callback; + this.getTokenAsync(opts).then(t => cb(null, t), callback); + return; + } + return this.getTokenAsync(opts); + } + /** + * Given a keyFile, extract the key and client email if available + * @param keyFile Path to a json, pem, or p12 file that contains the key. + * @returns an object with privateKey and clientEmail properties + */ + async getCredentials(keyFile) { + const ext = path.extname(keyFile); + switch (ext) { + case '.json': { + const key = await readFile(keyFile, 'utf8'); + const body = JSON.parse(key); + const privateKey = body.private_key; + const clientEmail = body.client_email; + if (!privateKey || !clientEmail) { + throw new ErrorWithCode('private_key and client_email are required.', 'MISSING_CREDENTIALS'); + } + return { privateKey, clientEmail }; + } + case '.der': + case '.crt': + case '.pem': { + const privateKey = await readFile(keyFile, 'utf8'); + return { privateKey }; + } + case '.p12': + case '.pfx': { + // NOTE: The loading of `google-p12-pem` is deferred for performance + // reasons. The `node-forge` npm module in `google-p12-pem` adds a fair + // bit time to overall module loading, and is likely not frequently + // used. In a future release, p12 support will be entirely removed. + if (!getPem) { + getPem = (await Promise.resolve().then(() => __nccwpck_require__(2098))).getPem; + } + const privateKey = await getPem(keyFile); + return { privateKey }; + } + default: + throw new ErrorWithCode('Unknown certificate type. Type is determined based on file extension. ' + + 'Current supported extensions are *.json, *.pem, and *.p12.', 'UNKNOWN_CERTIFICATE_TYPE'); + } } - - if (checkPattern(pattern)) { - const rule = createRule(pattern, this._ignoreCase) - this._added = true - this._rules.push(rule) + async getTokenAsync(opts) { + if (this.inFlightRequest && !opts.forceRefresh) { + return this.inFlightRequest; + } + try { + return await (this.inFlightRequest = this.getTokenAsyncInner(opts)); + } + finally { + this.inFlightRequest = undefined; + } } - } - - // @param {Array | string | Ignore} pattern - add (pattern) { - this._added = false - - makeArray( - isString(pattern) - ? splitPattern(pattern) - : pattern - ).forEach(this._addPattern, this) - - // Some rules have just added to the ignore, - // making the behavior changed. - if (this._added) { - this._initCache() + async getTokenAsyncInner(opts) { + if (this.isTokenExpiring() === false && opts.forceRefresh === false) { + return Promise.resolve(this.rawToken); + } + if (!this.key && !this.keyFile) { + throw new Error('No key or keyFile set.'); + } + if (!this.key && this.keyFile) { + const creds = await this.getCredentials(this.keyFile); + this.key = creds.privateKey; + this.iss = creds.clientEmail || this.iss; + if (!creds.clientEmail) { + this.ensureEmail(); + } + } + return this.requestToken(); } - - return this - } - - // legacy - addPattern (pattern) { - return this.add(pattern) - } - - // | ignored : unignored - // negative | 0:0 | 0:1 | 1:0 | 1:1 - // -------- | ------- | ------- | ------- | -------- - // 0 | TEST | TEST | SKIP | X - // 1 | TESTIF | SKIP | TEST | X - - // - SKIP: always skip - // - TEST: always test - // - TESTIF: only test if checkUnignored - // - X: that never happen - - // @param {boolean} whether should check if the path is unignored, - // setting `checkUnignored` to `false` could reduce additional - // path matching. - - // @returns {TestResult} true if a file is ignored - _testOne (path, checkUnignored) { - let ignored = false - let unignored = false - - this._rules.forEach(rule => { - const {negative} = rule - if ( - unignored === negative && ignored !== unignored - || negative && !ignored && !unignored && !checkUnignored - ) { - return - } - - const matched = rule.regex.test(path) - - if (matched) { - ignored = !negative - unignored = negative - } - }) - - return { - ignored, - unignored + ensureEmail() { + if (!this.iss) { + throw new ErrorWithCode('email is required.', 'MISSING_CREDENTIALS'); + } } - } - - // @returns {TestResult} - _test (originalPath, cache, checkUnignored, slices) { - const path = originalPath - // Supports nullable path - && checkPath.convert(originalPath) - - checkPath( - path, - originalPath, - this._allowRelativePaths - ? RETURN_FALSE - : throwError - ) - - return this._t(path, cache, checkUnignored, slices) - } - - _t (path, cache, checkUnignored, slices) { - if (path in cache) { - return cache[path] + revokeToken(callback) { + if (callback) { + this.revokeTokenAsync().then(() => callback(), callback); + return; + } + return this.revokeTokenAsync(); } - - if (!slices) { - // path/to/a.js - // ['path', 'to', 'a.js'] - slices = path.split(SLASH) + async revokeTokenAsync() { + if (!this.accessToken) { + throw new Error('No token to revoke.'); + } + const url = GOOGLE_REVOKE_TOKEN_URL + this.accessToken; + await gaxios_1.request({ url }); + this.configure({ + email: this.iss, + sub: this.sub, + key: this.key, + keyFile: this.keyFile, + scope: this.scope, + additionalClaims: this.additionalClaims, + }); } - - slices.pop() - - // If the path has no parent directory, just test it - if (!slices.length) { - return cache[path] = this._testOne(path, checkUnignored) + /** + * Configure the GoogleToken for re-use. + * @param {object} options Configuration object. + */ + configure(options = {}) { + this.keyFile = options.keyFile; + this.key = options.key; + this.rawToken = undefined; + this.iss = options.email || options.iss; + this.sub = options.sub; + this.additionalClaims = options.additionalClaims; + if (typeof options.scope === 'object') { + this.scope = options.scope.join(' '); + } + else { + this.scope = options.scope; + } + this.eagerRefreshThresholdMillis = options.eagerRefreshThresholdMillis; + } + /** + * Request the token from Google. + */ + async requestToken() { + const iat = Math.floor(new Date().getTime() / 1000); + const additionalClaims = this.additionalClaims || {}; + const payload = Object.assign({ + iss: this.iss, + scope: this.scope, + aud: GOOGLE_TOKEN_URL, + exp: iat + 3600, + iat, + sub: this.sub, + }, additionalClaims); + const signedJWT = jws.sign({ + header: { alg: 'RS256' }, + payload, + secret: this.key, + }); + try { + const r = await gaxios_1.request({ + method: 'POST', + url: GOOGLE_TOKEN_URL, + data: { + grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer', + assertion: signedJWT, + }, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + responseType: 'json', + }); + this.rawToken = r.data; + this.expiresAt = + r.data.expires_in === null || r.data.expires_in === undefined + ? undefined + : (iat + r.data.expires_in) * 1000; + return this.rawToken; + } + catch (e) { + this.rawToken = undefined; + this.tokenExpires = undefined; + const body = e.response && e.response.data ? e.response.data : {}; + if (body.error) { + const desc = body.error_description + ? `: ${body.error_description}` + : ''; + e.message = `${body.error}${desc}`; + } + throw e; + } } - - const parent = this._t( - slices.join(SLASH) + SLASH, - cache, - checkUnignored, - slices - ) - - // If the path contains a parent directory, check the parent first - return cache[path] = parent.ignored - // > It is not possible to re-include a file if a parent directory of - // > that file is excluded. - ? parent - : this._testOne(path, checkUnignored) - } - - ignores (path) { - return this._test(path, this._ignoreCache, false).ignored - } - - createFilter () { - return path => !this.ignores(path) - } - - filter (paths) { - return makeArray(paths).filter(this.createFilter()) - } - - // @returns {TestResult} - test (path) { - return this._test(path, this._testCache, true) - } } +exports.GoogleToken = GoogleToken; +//# sourceMappingURL=index.js.map -const factory = options => new Ignore(options) - -const isPathValid = path => - checkPath(path && checkPath.convert(path), path, RETURN_FALSE) - -factory.isPathValid = isPathValid - -// Fixes typescript -factory.default = factory +/***/ }), -module.exports = factory +/***/ 1621: +/***/ ((module) => { -// Windows -// -------------------------------------------------------------- -/* istanbul ignore if */ -if ( - // Detect `process` so that it can run in browsers. - typeof process !== 'undefined' - && ( - process.env && process.env.IGNORE_TEST_WIN32 - || process.platform === 'win32' - ) -) { - /* eslint no-control-regex: "off" */ - const makePosix = str => /^\\\\\?\\/.test(str) - || /["<>|\u0000-\u001F]+/u.test(str) - ? str - : str.replace(/\\/g, '/') +"use strict"; - checkPath.convert = makePosix - // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' - // 'd:\\foo' - const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i - checkPath.isNotRelative = path => - REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) - || isNotRelative(path) -} +module.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +}; /***/ }), -/***/ 2527: +/***/ 4933: /***/ ((module) => { -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -(function(){ - var cache; - - // Call this function without `new` to use the cached object (good for - // single-threaded environments), or with `new` to create a new object. - // - // @param {string} key A UTF-16 or ASCII string - // @param {number} seed An optional positive integer - // @return {object} A MurmurHash3 object for incremental hashing - function MurmurHash3(key, seed) { - var m = this instanceof MurmurHash3 ? this : cache; - m.reset(seed) - if (typeof key === 'string' && key.length > 0) { - m.hash(key); - } - - if (m !== this) { - return m; - } - }; +"use strict"; +// Original author: +// https://github.com/ashi009/node-fast-crc32c/blob/5e7f9d63cfdb3de9b6c34577466de3dfd732c25d/impls/js_crc32c.js - // Incrementally add a string to this hash - // - // @param {string} key A UTF-16 or ASCII string - // @return {object} this - MurmurHash3.prototype.hash = function(key) { - var h1, k1, i, top, len; - len = key.length; - this.len += len; - k1 = this.k1; - i = 0; - switch (this.rem) { - case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; - case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; - case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; - case 3: - k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; - k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; - } +var kCRCTable = new Int32Array([ + 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, + 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb, + 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, + 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24, + 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, + 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384, + 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, + 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b, + 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, + 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35, + 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, + 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa, + 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, + 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a, + 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, + 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595, + 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, + 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957, + 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, + 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198, + 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, + 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38, + 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, + 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7, + 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, + 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789, + 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, + 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46, + 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, + 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6, + 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, + 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829, + 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, + 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93, + 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, + 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c, + 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, + 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc, + 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, + 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033, + 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, + 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d, + 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, + 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982, + 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, + 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622, + 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, + 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed, + 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, + 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f, + 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, + 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0, + 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, + 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540, + 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, + 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f, + 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, + 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1, + 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, + 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e, + 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, + 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e, + 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, + 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351 +]) - this.rem = (len + this.rem) & 3; // & 3 is same as % 4 - len -= this.rem; - if (len > 0) { - h1 = this.h1; - while (1) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; +module.exports = { + calculate: function (buf, initial) { + if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) - h1 ^= k1; - h1 = (h1 << 13) | (h1 >>> 19); - h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; + var crc = (initial | 0) ^ -1 + for (var i = 0; i < buf.length; i++) + crc = kCRCTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8) - if (i >= len) { - break; - } + return (crc ^ -1) >>> 0 + } +} - k1 = ((key.charCodeAt(i++) & 0xffff)) ^ - ((key.charCodeAt(i++) & 0xffff) << 8) ^ - ((key.charCodeAt(i++) & 0xffff) << 16); - top = key.charCodeAt(i++); - k1 ^= ((top & 0xff) << 24) ^ - ((top & 0xff00) >> 8); - } +/***/ }), - k1 = 0; - switch (this.rem) { - case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; - case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; - case 1: k1 ^= (key.charCodeAt(i) & 0xffff); - } +/***/ 3562: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - this.h1 = h1; - } +"use strict"; - this.k1 = k1; - return this; - }; - // Get the result of this hash - // - // @return {number} The 32-bit hash - MurmurHash3.prototype.result = function() { - var k1, h1; - - k1 = this.k1; - h1 = this.h1; +var crc +try { + crc = __nccwpck_require__(8274) +} catch (e) { + crc = __nccwpck_require__(4933) +} - if (k1 > 0) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - h1 ^= k1; - } +var crypto = __nccwpck_require__(6113) +var { PassThrough } = __nccwpck_require__(2781) - h1 ^= this.len; +module.exports = function (cfg) { + cfg = cfg || {} - h1 ^= h1 >>> 16; - h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; - h1 ^= h1 >>> 13; - h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; - h1 ^= h1 >>> 16; + var crc32c = cfg.crc32c !== false + var md5 = cfg.md5 !== false - return h1 >>> 0; - }; + var hashes = {} + if (md5) hashes.md5 = crypto.createHash('md5') - // Reset the hash object for reuse - // - // @param {number} seed An optional positive integer - MurmurHash3.prototype.reset = function(seed) { - this.h1 = typeof seed === 'number' ? seed : 0; - this.rem = this.k1 = this.len = 0; - return this; - }; + var onData = function (chunk, enc, done) { + if (crc32c) hashes.crc32c = crc.calculate(chunk, hashes.crc32c || 0) + if (md5) hashes.md5.update(chunk) - // A cached object to use. This can be safely used if you're in a single- - // threaded environment, otherwise you need to create new hashes to use. - cache = new MurmurHash3(); + done(null, chunk) + } - if (true) { - module.exports = MurmurHash3; - } else {} -}()); + var onFlush = function (done) { + if (crc32c) hashes.crc32c = Buffer.from([hashes.crc32c]).toString('base64') + if (md5) hashes.md5 = hashes.md5.digest('base64') + done() + } -/***/ }), + var validationStream = new PassThrough({ + transform: onData, + flush: onFlush + }) -/***/ 4124: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + validationStream.test = function (algo, sum) { + return hashes[algo] === sum + } -try { - var util = __nccwpck_require__(3837); - /* istanbul ignore next */ - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - /* istanbul ignore next */ - module.exports = __nccwpck_require__(8544); + return validationStream } /***/ }), -/***/ 8544: -/***/ ((module) => { +/***/ 7492: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true +"use strict"; + +var __awaiter = (this && this.__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 __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const net_1 = __importDefault(__nccwpck_require__(1808)); +const tls_1 = __importDefault(__nccwpck_require__(4404)); +const url_1 = __importDefault(__nccwpck_require__(7310)); +const debug_1 = __importDefault(__nccwpck_require__(8237)); +const once_1 = __importDefault(__nccwpck_require__(1040)); +const agent_base_1 = __nccwpck_require__(9690); +const debug = (0, debug_1.default)('http-proxy-agent'); +function isHTTPS(protocol) { + return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; +} +/** + * The `HttpProxyAgent` implements an HTTP Agent subclass that connects + * to the specified "HTTP proxy server" in order to proxy HTTP requests. + * + * @api public + */ +class HttpProxyAgent extends agent_base_1.Agent { + constructor(_opts) { + let opts; + if (typeof _opts === 'string') { + opts = url_1.default.parse(_opts); } - }) + else { + opts = _opts; + } + if (!opts) { + throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); + } + debug('Creating new HttpProxyAgent instance: %o', opts); + super(opts); + const proxy = Object.assign({}, opts); + // If `true`, then connect to the proxy server over TLS. + // Defaults to `false`. + this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); + // Prefer `hostname` over `host`, and set the `port` if needed. + proxy.host = proxy.hostname || proxy.host; + if (typeof proxy.port === 'string') { + proxy.port = parseInt(proxy.port, 10); + } + if (!proxy.port && proxy.host) { + proxy.port = this.secureProxy ? 443 : 80; + } + if (proxy.host && proxy.path) { + // If both a `host` and `path` are specified then it's most likely + // the result of a `url.parse()` call... we need to remove the + // `path` portion so that `net.connect()` doesn't attempt to open + // that as a Unix socket file. + delete proxy.path; + delete proxy.pathname; + } + this.proxy = proxy; } - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + * + * @api protected + */ + callback(req, opts) { + return __awaiter(this, void 0, void 0, function* () { + const { proxy, secureProxy } = this; + const parsed = url_1.default.parse(req.path); + if (!parsed.protocol) { + parsed.protocol = 'http:'; + } + if (!parsed.hostname) { + parsed.hostname = opts.hostname || opts.host || null; + } + if (parsed.port == null && typeof opts.port) { + parsed.port = String(opts.port); + } + if (parsed.port === '80') { + // if port is 80, then we can remove the port so that the + // ":80" portion is not on the produced URL + parsed.port = ''; + } + // Change the `http.ClientRequest` instance's "path" field + // to the absolute path of the URL that will be requested. + req.path = url_1.default.format(parsed); + // Inject the `Proxy-Authorization` header if necessary. + if (proxy.auth) { + req.setHeader('Proxy-Authorization', `Basic ${Buffer.from(proxy.auth).toString('base64')}`); + } + // Create a socket connection to the proxy server. + let socket; + if (secureProxy) { + debug('Creating `tls.Socket`: %o', proxy); + socket = tls_1.default.connect(proxy); + } + else { + debug('Creating `net.Socket`: %o', proxy); + socket = net_1.default.connect(proxy); + } + // At this point, the http ClientRequest's internal `_header` field + // might have already been set. If this is the case then we'll need + // to re-generate the string since we just changed the `req.path`. + if (req._header) { + let first; + let endOfHeaders; + debug('Regenerating stored HTTP header string for request'); + req._header = null; + req._implicitHeader(); + if (req.output && req.output.length > 0) { + // Node < 12 + debug('Patching connection write() output buffer with updated header'); + first = req.output[0]; + endOfHeaders = first.indexOf('\r\n\r\n') + 4; + req.output[0] = req._header + first.substring(endOfHeaders); + debug('Output buffer: %o', req.output); + } + else if (req.outputData && req.outputData.length > 0) { + // Node >= 12 + debug('Patching connection write() output buffer with updated header'); + first = req.outputData[0].data; + endOfHeaders = first.indexOf('\r\n\r\n') + 4; + req.outputData[0].data = + req._header + first.substring(endOfHeaders); + debug('Output buffer: %o', req.outputData[0].data); + } + } + // Wait for the socket's `connect` event, so that this `callback()` + // function throws instead of the `http` request machinery. This is + // important for i.e. `PacProxyAgent` which determines a failed proxy + // connection via the `callback()` function throwing. + yield (0, once_1.default)(socket, 'connect'); + return socket; + }); } - } } - +exports["default"] = HttpProxyAgent; +//# sourceMappingURL=agent.js.map /***/ }), -/***/ 6435: -/***/ ((module) => { - -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ - -module.exports = function isExtglob(str) { - if (typeof str !== 'string' || str === '') { - return false; - } +/***/ 3764: +/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { - var match; - while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { - if (match[2]) return true; - str = str.slice(match.index + match[0].length); - } +"use strict"; - return false; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; }; - +const agent_1 = __importDefault(__nccwpck_require__(7492)); +function createHttpProxyAgent(opts) { + return new agent_1.default(opts); +} +(function (createHttpProxyAgent) { + createHttpProxyAgent.HttpProxyAgent = agent_1.default; + createHttpProxyAgent.prototype = agent_1.default.prototype; +})(createHttpProxyAgent || (createHttpProxyAgent = {})); +module.exports = createHttpProxyAgent; +//# sourceMappingURL=index.js.map /***/ }), -/***/ 4466: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 5098: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { -/*! - * is-glob +"use strict"; + +var __awaiter = (this && this.__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 __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const net_1 = __importDefault(__nccwpck_require__(1808)); +const tls_1 = __importDefault(__nccwpck_require__(4404)); +const url_1 = __importDefault(__nccwpck_require__(7310)); +const assert_1 = __importDefault(__nccwpck_require__(9491)); +const debug_1 = __importDefault(__nccwpck_require__(8237)); +const agent_base_1 = __nccwpck_require__(9690); +const parse_proxy_response_1 = __importDefault(__nccwpck_require__(595)); +const debug = debug_1.default('https-proxy-agent:agent'); +/** + * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to + * the specified "HTTP(s) proxy server" in order to proxy HTTPS requests. * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. + * Outgoing HTTP requests are first tunneled through the proxy server using the + * `CONNECT` HTTP request method to establish a connection to the proxy server, + * and then the proxy server connects to the destination target and issues the + * HTTP request from the proxy server. + * + * `https:` requests have their socket connection upgraded to TLS once + * the connection to the proxy server has been established. + * + * @api public */ - -var isExtglob = __nccwpck_require__(6435); -var chars = { '{': '}', '(': ')', '[': ']'}; -var strictCheck = function(str) { - if (str[0] === '!') { - return true; - } - var index = 0; - var pipeIndex = -2; - var closeSquareIndex = -2; - var closeCurlyIndex = -2; - var closeParenIndex = -2; - var backSlashIndex = -2; - while (index < str.length) { - if (str[index] === '*') { - return true; - } - - if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { - return true; - } - - if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { - if (closeSquareIndex < index) { - closeSquareIndex = str.indexOf(']', index); - } - if (closeSquareIndex > index) { - if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { - return true; +class HttpsProxyAgent extends agent_base_1.Agent { + constructor(_opts) { + let opts; + if (typeof _opts === 'string') { + opts = url_1.default.parse(_opts); } - backSlashIndex = str.indexOf('\\', index); - if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { - return true; + else { + opts = _opts; } - } - } - - if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { - closeCurlyIndex = str.indexOf('}', index); - if (closeCurlyIndex > index) { - backSlashIndex = str.indexOf('\\', index); - if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { - return true; + if (!opts) { + throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); } - } - } - - if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { - closeParenIndex = str.indexOf(')', index); - if (closeParenIndex > index) { - backSlashIndex = str.indexOf('\\', index); - if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { - return true; + debug('creating new HttpsProxyAgent instance: %o', opts); + super(opts); + const proxy = Object.assign({}, opts); + // If `true`, then connect to the proxy server over TLS. + // Defaults to `false`. + this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); + // Prefer `hostname` over `host`, and set the `port` if needed. + proxy.host = proxy.hostname || proxy.host; + if (typeof proxy.port === 'string') { + proxy.port = parseInt(proxy.port, 10); } - } - } - - if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { - if (pipeIndex < index) { - pipeIndex = str.indexOf('|', index); - } - if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { - closeParenIndex = str.indexOf(')', pipeIndex); - if (closeParenIndex > pipeIndex) { - backSlashIndex = str.indexOf('\\', pipeIndex); - if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { - return true; - } + if (!proxy.port && proxy.host) { + proxy.port = this.secureProxy ? 443 : 80; } - } - } - - if (str[index] === '\\') { - var open = str[index + 1]; - index += 2; - var close = chars[open]; - - if (close) { - var n = str.indexOf(close, index); - if (n !== -1) { - index = n + 1; + // ALPN is supported by Node.js >= v5. + // attempt to negotiate http/1.1 for proxy servers that support http/2 + if (this.secureProxy && !('ALPNProtocols' in proxy)) { + proxy.ALPNProtocols = ['http 1.1']; } - } - - if (str[index] === '!') { - return true; - } - } else { - index++; + if (proxy.host && proxy.path) { + // If both a `host` and `path` are specified then it's most likely + // the result of a `url.parse()` call... we need to remove the + // `path` portion so that `net.connect()` doesn't attempt to open + // that as a Unix socket file. + delete proxy.path; + delete proxy.pathname; + } + this.proxy = proxy; } - } - return false; -}; - -var relaxedCheck = function(str) { - if (str[0] === '!') { - return true; - } - var index = 0; - while (index < str.length) { - if (/[*?{}()[\]]/.test(str[index])) { - return true; + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + * + * @api protected + */ + callback(req, opts) { + return __awaiter(this, void 0, void 0, function* () { + const { proxy, secureProxy } = this; + // Create a socket connection to the proxy server. + let socket; + if (secureProxy) { + debug('Creating `tls.Socket`: %o', proxy); + socket = tls_1.default.connect(proxy); + } + else { + debug('Creating `net.Socket`: %o', proxy); + socket = net_1.default.connect(proxy); + } + const headers = Object.assign({}, proxy.headers); + const hostname = `${opts.host}:${opts.port}`; + let payload = `CONNECT ${hostname} HTTP/1.1\r\n`; + // Inject the `Proxy-Authorization` header if necessary. + if (proxy.auth) { + headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`; + } + // The `Host` header should only include the port + // number when it is not the default port. + let { host, port, secureEndpoint } = opts; + if (!isDefaultPort(port, secureEndpoint)) { + host += `:${port}`; + } + headers.Host = host; + headers.Connection = 'close'; + for (const name of Object.keys(headers)) { + payload += `${name}: ${headers[name]}\r\n`; + } + const proxyResponsePromise = parse_proxy_response_1.default(socket); + socket.write(`${payload}\r\n`); + const { statusCode, buffered } = yield proxyResponsePromise; + if (statusCode === 200) { + req.once('socket', resume); + if (opts.secureEndpoint) { + const servername = opts.servername || opts.host; + if (!servername) { + throw new Error('Could not determine "servername"'); + } + // The proxy is connecting to a TLS server, so upgrade + // this socket connection to a TLS connection. + debug('Upgrading socket connection to TLS'); + return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket, + servername })); + } + return socket; + } + // Some other status code that's not 200... need to re-play the HTTP + // header "data" events onto the socket once the HTTP machinery is + // attached so that the node core `http` can parse and handle the + // error status code. + // Close the original socket, and a new "fake" socket is returned + // instead, so that the proxy doesn't get the HTTP request + // written to it (which may contain `Authorization` headers or other + // sensitive data). + // + // See: https://hackerone.com/reports/541502 + socket.destroy(); + const fakeSocket = new net_1.default.Socket(); + fakeSocket.readable = true; + // Need to wait for the "socket" event to re-play the "data" events. + req.once('socket', (s) => { + debug('replaying proxy buffer for failed request'); + assert_1.default(s.listenerCount('data') > 0); + // Replay the "buffered" Buffer onto the fake `socket`, since at + // this point the HTTP module machinery has been hooked up for + // the user. + s.push(buffered); + s.push(null); + }); + return fakeSocket; + }); } - - if (str[index] === '\\') { - var open = str[index + 1]; - index += 2; - var close = chars[open]; - - if (close) { - var n = str.indexOf(close, index); - if (n !== -1) { - index = n + 1; +} +exports["default"] = HttpsProxyAgent; +function resume(socket) { + socket.resume(); +} +function isDefaultPort(port, secure) { + return Boolean((!secure && port === 80) || (secure && port === 443)); +} +function isHTTPS(protocol) { + return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; +} +function omit(obj, ...keys) { + const ret = {}; + let key; + for (key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key]; } - } - - if (str[index] === '!') { - return true; - } - } else { - index++; } - } - return false; -}; - -module.exports = function isGlob(str, options) { - if (typeof str !== 'string' || str === '') { - return false; - } - - if (isExtglob(str)) { - return true; - } - - var check = strictCheck; - - // optionally relax check - if (options && options.strict === false) { - check = relaxedCheck; - } - - return check(str); -}; - + return ret; +} +//# sourceMappingURL=agent.js.map /***/ }), -/***/ 5680: -/***/ ((module) => { +/***/ 7219: +/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { "use strict"; -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ - - -module.exports = function(num) { - if (typeof num === 'number') { - return num - num === 0; - } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); - } - return false; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; }; - +const agent_1 = __importDefault(__nccwpck_require__(5098)); +function createHttpsProxyAgent(opts) { + return new agent_1.default(opts); +} +(function (createHttpsProxyAgent) { + createHttpsProxyAgent.HttpsProxyAgent = agent_1.default; + createHttpsProxyAgent.prototype = agent_1.default.prototype; +})(createHttpsProxyAgent || (createHttpsProxyAgent = {})); +module.exports = createHttpsProxyAgent; +//# sourceMappingURL=index.js.map /***/ }), -/***/ 1389: -/***/ ((module) => { +/***/ 595: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -module.exports = value => { - const type = typeof value; - return value !== null && (type === 'object' || type === 'function'); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; }; - - -/***/ }), - -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - Object.defineProperty(exports, "__esModule", ({ value: true })); - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} - -function isPlainObject(o) { - var ctor,prot; - - if (isObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; - - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; +const debug_1 = __importDefault(__nccwpck_require__(8237)); +const debug = debug_1.default('https-proxy-agent:parse-proxy-response'); +function parseProxyResponse(socket) { + return new Promise((resolve, reject) => { + // we need to buffer any HTTP traffic that happens with the proxy before we get + // the CONNECT response, so that if the response is anything other than an "200" + // response code, then we can re-play the "data" events on the socket once the + // HTTP parser is hooked up... + let buffersLength = 0; + const buffers = []; + function read() { + const b = socket.read(); + if (b) + ondata(b); + else + socket.once('readable', read); + } + function cleanup() { + socket.removeListener('end', onend); + socket.removeListener('error', onerror); + socket.removeListener('close', onclose); + socket.removeListener('readable', read); + } + function onclose(err) { + debug('onclose had error %o', err); + } + function onend() { + debug('onend'); + } + function onerror(err) { + cleanup(); + debug('onerror %o', err); + reject(err); + } + function ondata(b) { + buffers.push(b); + buffersLength += b.length; + const buffered = Buffer.concat(buffers, buffersLength); + const endOfHeaders = buffered.indexOf('\r\n\r\n'); + if (endOfHeaders === -1) { + // keep buffering + debug('have not received end of HTTP headers yet...'); + read(); + return; + } + const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\r\n')); + const statusCode = +firstLine.split(' ')[1]; + debug('got proxy server response: %o', firstLine); + resolve({ + statusCode, + buffered + }); + } + socket.on('error', onerror); + socket.on('close', onclose); + socket.on('end', onend); + read(); + }); } - -exports.isPlainObject = isPlainObject; - - -/***/ }), - -/***/ 1554: -/***/ ((module) => { - -"use strict"; - - -const isStream = stream => - stream !== null && - typeof stream === 'object' && - typeof stream.pipe === 'function'; - -isStream.writable = stream => - isStream(stream) && - stream.writable !== false && - typeof stream._write === 'function' && - typeof stream._writableState === 'object'; - -isStream.readable = stream => - isStream(stream) && - stream.readable !== false && - typeof stream._read === 'function' && - typeof stream._readableState === 'object'; - -isStream.duplex = stream => - isStream.writable(stream) && - isStream.readable(stream); - -isStream.transform = stream => - isStream.duplex(stream) && - typeof stream._transform === 'function'; - -module.exports = isStream; - +exports["default"] = parseProxyResponse; +//# sourceMappingURL=parse-proxy-response.js.map /***/ }), -/***/ 657: +/***/ 4777: /***/ ((module) => { -module.exports = isTypedArray -isTypedArray.strict = isStrictTypedArray -isTypedArray.loose = isLooseTypedArray - -var toString = Object.prototype.toString -var names = { - '[object Int8Array]': true - , '[object Int16Array]': true - , '[object Int32Array]': true - , '[object Uint8Array]': true - , '[object Uint8ClampedArray]': true - , '[object Uint16Array]': true - , '[object Uint32Array]': true - , '[object Float32Array]': true - , '[object Float64Array]': true +// A simple implementation of make-array +function makeArray (subject) { + return Array.isArray(subject) + ? subject + : [subject] } -function isTypedArray(arr) { - return ( - isStrictTypedArray(arr) - || isLooseTypedArray(arr) - ) -} +const EMPTY = '' +const SPACE = ' ' +const ESCAPE = '\\' +const REGEX_TEST_BLANK_LINE = /^\s+$/ +const REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/ +const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/ +const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/ +const REGEX_SPLITALL_CRLF = /\r?\n/g +// /foo, +// ./foo, +// ../foo, +// . +// .. +const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/ -function isStrictTypedArray(arr) { - return ( - arr instanceof Int8Array - || arr instanceof Int16Array - || arr instanceof Int32Array - || arr instanceof Uint8Array - || arr instanceof Uint8ClampedArray - || arr instanceof Uint16Array - || arr instanceof Uint32Array - || arr instanceof Float32Array - || arr instanceof Float64Array - ) -} +const SLASH = '/' -function isLooseTypedArray(arr) { - return names[toString.call(arr)] +// Do not use ternary expression here, since "istanbul ignore next" is buggy +let TMP_KEY_IGNORE = 'node-ignore' +/* istanbul ignore else */ +if (typeof Symbol !== 'undefined') { + TMP_KEY_IGNORE = Symbol.for('node-ignore') } +const KEY_IGNORE = TMP_KEY_IGNORE +const define = (object, key, value) => + Object.defineProperty(object, key, {value}) -/***/ }), - -/***/ 5031: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var json_stringify = (__nccwpck_require__(8574).stringify); -var json_parse = __nccwpck_require__(9099); - -module.exports = function(options) { - return { - parse: json_parse(options), - stringify: json_stringify - } -}; -//create the default method members with no options applied for backwards compatibility -module.exports.parse = json_parse(); -module.exports.stringify = json_stringify; - - -/***/ }), - -/***/ 9099: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var BigNumber = null; - -// regexpxs extracted from -// (c) BSD-3-Clause -// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors - -const suspectProtoRx = /(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/; -const suspectConstructorRx = /(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)/; - -/* - json_parse.js - 2012-06-20 - - Public Domain. - - NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. - - This file creates a json_parse function. - During create you can (optionally) specify some behavioural switches - - require('json-bigint')(options) - - The optional options parameter holds switches that drive certain - aspects of the parsing process: - * options.strict = true will warn about duplicate-key usage in the json. - The default (strict = false) will silently ignore those and overwrite - values for keys that are in duplicate use. - - The resulting function follows this signature: - json_parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. - - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. - - Example: - - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. - - myData = json_parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); - - This is a reference implementation. You are free to copy, modify, or - redistribute. - - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. -*/ - -/*members "", "\"", "\/", "\\", at, b, call, charAt, f, fromCharCode, - hasOwnProperty, message, n, name, prototype, push, r, t, text -*/ - -var json_parse = function (options) { - 'use strict'; - - // This is a function that can parse a JSON text, producing a JavaScript - // data structure. It is a simple, recursive descent parser. It does not use - // eval or regular expressions, so it can be used as a model for implementing - // a JSON parser in other languages. - - // We are defining the function inside of another function to avoid creating - // global variables. +const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g - // Default options one can override by passing options to the parse() - var _options = { - strict: false, // not being strict means do not generate syntax errors for "duplicate key" - storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string - alwaysParseAsBig: false, // toggles whether all numbers should be Big - useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js - protoAction: 'error', - constructorAction: 'error', - }; +const RETURN_FALSE = () => false - // If there are options, then use them to override the default _options - if (options !== undefined && options !== null) { - if (options.strict === true) { - _options.strict = true; - } - if (options.storeAsString === true) { - _options.storeAsString = true; - } - _options.alwaysParseAsBig = - options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false; - _options.useNativeBigInt = - options.useNativeBigInt === true ? options.useNativeBigInt : false; +// Sanitize the range of a regular expression +// The cases are complicated, see test cases for details +const sanitizeRange = range => range.replace( + REGEX_REGEXP_RANGE, + (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) + ? match + // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY +) - if (typeof options.constructorAction !== 'undefined') { - if ( - options.constructorAction === 'error' || - options.constructorAction === 'ignore' || - options.constructorAction === 'preserve' - ) { - _options.constructorAction = options.constructorAction; - } else { - throw new Error( - `Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${options.constructorAction}` - ); - } - } +// See fixtures #59 +const cleanRangeBackSlash = slashes => { + const {length} = slashes + return slashes.slice(0, length - length % 2) +} - if (typeof options.protoAction !== 'undefined') { - if ( - options.protoAction === 'error' || - options.protoAction === 'ignore' || - options.protoAction === 'preserve' - ) { - _options.protoAction = options.protoAction; - } else { - throw new Error( - `Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${options.protoAction}` - ); - } - } - } +// > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` - var at, // The index of the current character - ch, // The current character - escapee = { - '"': '"', - '\\': '\\', - '/': '/', - b: '\b', - f: '\f', - n: '\n', - r: '\r', - t: '\t', - }, - text, - error = function (m) { - // Call error when something is wrong. +// '`foo/`' should not continue with the '`..`' +const REPLACERS = [ - throw { - name: 'SyntaxError', - message: m, - at: at, - text: text, - }; - }, - next = function (c) { - // If a c parameter is provided, verify that it matches the current character. + // > Trailing spaces are ignored unless they are quoted with backslash ("\") + [ + // (a\ ) -> (a ) + // (a ) -> (a) + // (a \ ) -> (a ) + /\\?\s+$/, + match => match.indexOf('\\') === 0 + ? SPACE + : EMPTY + ], - if (c && c !== ch) { - error("Expected '" + c + "' instead of '" + ch + "'"); - } + // replace (\ ) with ' ' + [ + /\\\s/g, + () => SPACE + ], - // Get the next character. When there are no more characters, - // return the empty string. + // Escape metacharacters + // which is written down by users but means special for regular expressions. - ch = text.charAt(at); - at += 1; - return ch; - }, - number = function () { - // Parse a number value. + // > There are 12 characters with special meanings: + // > - the backslash \, + // > - the caret ^, + // > - the dollar sign $, + // > - the period or dot ., + // > - the vertical bar or pipe symbol |, + // > - the question mark ?, + // > - the asterisk or star *, + // > - the plus sign +, + // > - the opening parenthesis (, + // > - the closing parenthesis ), + // > - and the opening square bracket [, + // > - the opening curly brace {, + // > These special characters are often called "metacharacters". + [ + /[\\$.|*+(){^]/g, + match => `\\${match}` + ], - var number, - string = ''; + [ + // > a question mark (?) matches a single character + /(?!\\)\?/g, + () => '[^/]' + ], - if (ch === '-') { - string = '-'; - next('-'); - } - while (ch >= '0' && ch <= '9') { - string += ch; - next(); - } - if (ch === '.') { - string += '.'; - while (next() && ch >= '0' && ch <= '9') { - string += ch; - } - } - if (ch === 'e' || ch === 'E') { - string += ch; - next(); - if (ch === '-' || ch === '+') { - string += ch; - next(); - } - while (ch >= '0' && ch <= '9') { - string += ch; - next(); - } - } - number = +string; - if (!isFinite(number)) { - error('Bad number'); - } else { - if (BigNumber == null) BigNumber = __nccwpck_require__(7558); - //if (number > 9007199254740992 || number < -9007199254740992) - // Bignumber has stricter check: everything with length > 15 digits disallowed - if (string.length > 15) - return _options.storeAsString - ? string - : _options.useNativeBigInt - ? BigInt(string) - : new BigNumber(string); - else - return !_options.alwaysParseAsBig - ? number - : _options.useNativeBigInt - ? BigInt(number) - : new BigNumber(number); - } - }, - string = function () { - // Parse a string value. + // leading slash + [ - var hex, - i, - string = '', - uffff; + // > A leading slash matches the beginning of the pathname. + // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". + // A leading slash matches the beginning of the pathname + /^\//, + () => '^' + ], - // When parsing for string values, we must look for " and \ characters. + // replace special metacharacter slash after the leading slash + [ + /\//g, + () => '\\/' + ], - if (ch === '"') { - var startAt = at; - while (next()) { - if (ch === '"') { - if (at - 1 > startAt) string += text.substring(startAt, at - 1); - next(); - return string; - } - if (ch === '\\') { - if (at - 1 > startAt) string += text.substring(startAt, at - 1); - next(); - if (ch === 'u') { - uffff = 0; - for (i = 0; i < 4; i += 1) { - hex = parseInt(next(), 16); - if (!isFinite(hex)) { - break; - } - uffff = uffff * 16 + hex; - } - string += String.fromCharCode(uffff); - } else if (typeof escapee[ch] === 'string') { - string += escapee[ch]; - } else { - break; - } - startAt = at; - } - } - } - error('Bad string'); - }, - white = function () { - // Skip whitespace. + [ + // > A leading "**" followed by a slash means match in all directories. + // > For example, "**/foo" matches file or directory "foo" anywhere, + // > the same as pattern "foo". + // > "**/foo/bar" matches file or directory "bar" anywhere that is directly + // > under directory "foo". + // Notice that the '*'s have been replaced as '\\*' + /^\^*\\\*\\\*\\\//, - while (ch && ch <= ' ') { - next(); - } - }, - word = function () { - // true, false, or null. + // '**/foo' <-> 'foo' + () => '^(?:.*\\/)?' + ], - switch (ch) { - case 't': - next('t'); - next('r'); - next('u'); - next('e'); - return true; - case 'f': - next('f'); - next('a'); - next('l'); - next('s'); - next('e'); - return false; - case 'n': - next('n'); - next('u'); - next('l'); - next('l'); - return null; - } - error("Unexpected '" + ch + "'"); - }, - value, // Place holder for the value function. - array = function () { - // Parse an array value. + // starting + [ + // there will be no leading '/' + // (which has been replaced by section "leading slash") + // If starts with '**', adding a '^' to the regular expression also works + /^(?=[^^])/, + function startingReplacer () { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) + // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern - var array = []; + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' - if (ch === '[') { - next('['); - white(); - if (ch === ']') { - next(']'); - return array; // empty array - } - while (ch) { - array.push(value()); - white(); - if (ch === ']') { - next(']'); - return array; - } - next(','); - white(); - } - } - error('Bad array'); - }, - object = function () { - // Parse an object value. + // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^' + } + ], - var key, - object = Object.create(null); + // two globstars + [ + // Use lookahead assertions so that we could match more than one `'/**'` + /\\\/\\\*\\\*(?=\\\/|$)/g, - if (ch === '{') { - next('{'); - white(); - if (ch === '}') { - next('}'); - return object; // empty object - } - while (ch) { - key = string(); - white(); - next(':'); - if ( - _options.strict === true && - Object.hasOwnProperty.call(object, key) - ) { - error('Duplicate key "' + key + '"'); - } + // Zero, one or several directories + // should not use '*', or it will be replaced by the next replacer - if (suspectProtoRx.test(key) === true) { - if (_options.protoAction === 'error') { - error('Object contains forbidden prototype property'); - } else if (_options.protoAction === 'ignore') { - value(); - } else { - object[key] = value(); - } - } else if (suspectConstructorRx.test(key) === true) { - if (_options.constructorAction === 'error') { - error('Object contains forbidden constructor property'); - } else if (_options.constructorAction === 'ignore') { - value(); - } else { - object[key] = value(); - } - } else { - object[key] = value(); - } + // Check if it is not the last `'/**'` + (_, index, str) => index + 6 < str.length - white(); - if (ch === '}') { - next('}'); - return object; - } - next(','); - white(); - } - } - error('Bad object'); - }; + // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' - value = function () { - // Parse a JSON value. It could be an object, an array, a string, a number, - // or a word. + // case: /** + // > A trailing `"/**"` matches everything inside. - white(); - switch (ch) { - case '{': - return object(); - case '[': - return array(); - case '"': - return string(); - case '-': - return number(); - default: - return ch >= '0' && ch <= '9' ? number() : word(); - } - }; + // #21: everything inside but it should not include the current folder + : '\\/.+' + ], - // Return the json_parse function. It will have access to all of the above - // functions and variables. + // normal intermediate wildcards + [ + // Never replace escaped '*' + // ignore rule '\*' will match the path '*' - return function (source, reviver) { - var result; + // 'abc.*/' -> go + // 'abc.*' -> skip this rule, + // coz trailing single wildcard will be handed by [trailing wildcard] + /(^|[^\\]+)(\\\*)+(?=.+)/g, - text = source + ''; - at = 0; - ch = ' '; - result = value(); - white(); - if (ch) { - error('Syntax error'); + // '*.js' matches '.js' + // '*.js' doesn't match 'abc' + (_, p1, p2) => { + // 1. + // > An asterisk "*" matches anything except a slash. + // 2. + // > Other consecutive asterisks are considered regular asterisks + // > and will match according to the previous rules. + const unescaped = p2.replace(/\\\*/g, '[^\\/]*') + return p1 + unescaped } + ], - // If there is a reviver function, we recursively walk the new structure, - // passing each name/value pair to the reviver function for possible - // transformation, starting with a temporary root object that holds the result - // in an empty key. If there is not a reviver function, we simply return the - // result. + [ + // unescape, revert step 3 except for back slash + // For example, if a user escape a '\\*', + // after step 3, the result will be '\\\\\\*' + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], - return typeof reviver === 'function' - ? (function walk(holder, key) { - var k, - v, - value = holder[key]; - if (value && typeof value === 'object') { - Object.keys(value).forEach(function (k) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - }); - } - return reviver.call(holder, key, value); - })({ '': result }, '') - : result; - }; -}; + [ + // '\\\\' -> '\\' + /\\\\/g, + () => ESCAPE + ], -module.exports = json_parse; + [ + // > The range notation, e.g. [a-zA-Z], + // > can be used to match one of the characters in a range. + + // `\` is escaped by step 3 + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE + // '\\[bar]' -> '\\\\[bar\\]' + ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` + : close === ']' + ? endEscape.length % 2 === 0 + // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? `[${sanitizeRange(range)}${endEscape}]` + // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' + : '[]' + ], + // ending + [ + // 'js' will not match 'js.' + // 'ab' will not match 'abc' + /(?:[^*])$/, -/***/ }), + // WTF! + // https://git-scm.com/docs/gitignore + // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) + // which re-fixes #24, #38 -/***/ 8574: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // > If there is a separator at the end of the pattern then the pattern + // > will only match directories, otherwise the pattern can match both + // > files and directories. -var BigNumber = __nccwpck_require__(7558); + // 'js*' will not match 'a.js' + // 'js/' will not match 'a.js' + // 'js' will match 'a.js' and 'a.js/' + match => /\/$/.test(match) + // foo/ will not match 'foo' + ? `${match}$` + // foo matches 'foo' and 'foo/' + : `${match}(?=$|\\/$)` + ], -/* - json2.js - 2013-05-26 + // trailing wildcard + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 + // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything - Public Domain. + // '\\\/': + // 'abc/*' does not match 'abc/' + ? `${p1}[^/]+` - NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*' - See http://www.JSON.org/js.html + return `${prefix}(?=$|\\/$)` + } + ], +] +// A simple cache, because an ignore rule only has only one certain meaning +const regexCache = Object.create(null) - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html +// @param {pattern} +const makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern] - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. + if (!source) { + source = REPLACERS.reduce( + (prev, current) => prev.replace(current[0], current[1].bind(pattern)), + pattern + ) + regexCache[pattern] = source + } + return ignoreCase + ? new RegExp(source, 'i') + : new RegExp(source) +} - This file creates a global JSON object containing two methods: stringify - and parse. +const isString = subject => typeof subject === 'string' - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. +// > A blank line matches no files, so it can serve as a separator for readability. +const checkPattern = pattern => pattern + && isString(pattern) + && !REGEX_TEST_BLANK_LINE.test(pattern) + && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. + // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0 - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. +const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF) - This method produces a JSON text from a JavaScript value. +class IgnoreRule { + constructor ( + origin, + pattern, + negative, + regex + ) { + this.origin = origin + this.pattern = pattern + this.negative = negative + this.regex = regex + } +} - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value +const createRule = (pattern, ignoreCase) => { + const origin = pattern + let negative = false - For example, this would serialize Dates as ISO strings. + // > An optional prefix "!" which negates the pattern; + if (pattern.indexOf('!') === 0) { + negative = true + pattern = pattern.substr(1) + } - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } + pattern = pattern + // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') + // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#') - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; + const regex = makeRegex(pattern, ignoreCase) - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. + return new IgnoreRule( + origin, + pattern, + negative, + regex + ) +} - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. +const throwError = (message, Ctor) => { + throw new Ctor(message) +} - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. +const checkPath = (path, originalPath, doThrow) => { + if (!isString(path)) { + return doThrow( + `path must be a string, but got \`${originalPath}\``, + TypeError + ) + } - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. + // We don't know if we should ignore EMPTY, so throw + if (!path) { + return doThrow(`path must not be empty`, TypeError) + } - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. + // Check if it is a relative path + if (checkPath.isNotRelative(path)) { + const r = '`path.relative()`d' + return doThrow( + `path should be a ${r} string, but got "${originalPath}"`, + RangeError + ) + } - Example: + return true +} - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' +const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path) +checkPath.isNotRelative = isNotRelative +checkPath.convert = p => p - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' +class Ignore { + constructor ({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define(this, KEY_IGNORE, true) - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' + this._rules = [] + this._ignoreCase = ignoreCase + this._allowRelativePaths = allowRelativePaths + this._initCache() + } + _initCache () { + this._ignoreCache = Object.create(null) + this._testCache = Object.create(null) + } - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. + _addPattern (pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules) + this._added = true + return + } - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase) + this._added = true + this._rules.push(rule) + } + } - Example: + // @param {Array | string | Ignore} pattern + add (pattern) { + this._added = false - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. + makeArray( + isString(pattern) + ? splitPattern(pattern) + : pattern + ).forEach(this._addPattern, this) - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); + // Some rules have just added to the ignore, + // making the behavior changed. + if (this._added) { + this._initCache() + } - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } - } - return value; - }); + return this + } + // legacy + addPattern (pattern) { + return this.add(pattern) + } - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X -/*jslint evil: true, regexp: true */ + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + // @returns {TestResult} true if a file is ignored + _testOne (path, checkUnignored) { + let ignored = false + let unignored = false -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. + this._rules.forEach(rule => { + const {negative} = rule + if ( + unignored === negative && ignored !== unignored + || negative && !ignored && !unignored && !checkUnignored + ) { + return + } -var JSON = module.exports; + const matched = rule.regex.test(path) -(function () { - 'use strict'; + if (matched) { + ignored = !negative + unignored = negative + } + }) - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + return { + ignored, + unignored } + } - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - + // @returns {TestResult} + _test (originalPath, cache, checkUnignored, slices) { + const path = originalPath + // Supports nullable path + && checkPath.convert(originalPath) - function quote(string) { + checkPath( + path, + originalPath, + this._allowRelativePaths + ? RETURN_FALSE + : throwError + ) -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. + return this._t(path, cache, checkUnignored, slices) + } - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; + _t (path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path] } + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH) + } - function str(key, holder) { - -// Produce a string from holder[key]. + slices.pop() - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key], - isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value)); + // If the path has no parent directory, just test it + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored) + } -// If the value has a toJSON method, call it to obtain a replacement value. + const parent = this._t( + slices.join(SLASH) + SLASH, + cache, + checkUnignored, + slices + ) - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } + // If the path contains a parent directory, check the parent first + return cache[path] = parent.ignored + // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent + : this._testOne(path, checkUnignored) + } -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + ignores (path) { + return this._test(path, this._ignoreCache, false).ignored + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } + createFilter () { + return path => !this.ignores(path) + } -// What happens next depends on the value's type. + filter (paths) { + return makeArray(paths).filter(this.createFilter()) + } - switch (typeof value) { - case 'string': - if (isBigNumber) { - return value; - } else { - return quote(value); - } + // @returns {TestResult} + test (path) { + return this._test(path, this._testCache, true) + } +} - case 'number': +const factory = options => new Ignore(options) -// JSON numbers must be finite. Encode non-finite numbers as null. +const isPathValid = path => + checkPath(path && checkPath.convert(path), path, RETURN_FALSE) - return isFinite(value) ? String(value) : 'null'; +factory.isPathValid = isPathValid - case 'boolean': - case 'null': - case 'bigint': +// Fixes typescript +factory.default = factory -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. +module.exports = factory - return String(value); +// Windows +// -------------------------------------------------------------- +/* istanbul ignore if */ +if ( + // Detect `process` so that it can run in browsers. + typeof process !== 'undefined' + && ( + process.env && process.env.IGNORE_TEST_WIN32 + || process.platform === 'win32' + ) +) { + /* eslint no-control-regex: "off" */ + const makePosix = str => /^\\\\\?\\/.test(str) + || /["<>|\u0000-\u001F]+/u.test(str) + ? str + : str.replace(/\\/g, '/') -// If the type is 'object', we might be dealing with an object or an array or -// null. + checkPath.convert = makePosix - case 'object': + // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i + checkPath.isNotRelative = path => + REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) + || isNotRelative(path) +} -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - if (!value) { - return 'null'; - } +/***/ }), -// Make an array to hold the partial results of stringifying this object value. +/***/ 2527: +/***/ ((module) => { - gap += indent; - partial = []; +/** + * @preserve + * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) + * + * @author Jens Taylor + * @see http://github.com/homebrewing/brauhaus-diff + * @author Gary Court + * @see http://github.com/garycourt/murmurhash-js + * @author Austin Appleby + * @see http://sites.google.com/site/murmurhash/ + */ +(function(){ + var cache; -// Is the value an array? + // Call this function without `new` to use the cached object (good for + // single-threaded environments), or with `new` to create a new object. + // + // @param {string} key A UTF-16 or ASCII string + // @param {number} seed An optional positive integer + // @return {object} A MurmurHash3 object for incremental hashing + function MurmurHash3(key, seed) { + var m = this instanceof MurmurHash3 ? this : cache; + m.reset(seed) + if (typeof key === 'string' && key.length > 0) { + m.hash(key); + } - if (Object.prototype.toString.apply(value) === '[object Array]') { + if (m !== this) { + return m; + } + }; -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Incrementally add a string to this hash + // + // @param {string} key A UTF-16 or ASCII string + // @return {object} this + MurmurHash3.prototype.hash = function(key) { + var h1, k1, i, top, len; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } + len = key.length; + this.len += len; -// Join all of the elements together, separated with commas, and wrap them in -// brackets. + k1 = this.k1; + i = 0; + switch (this.rem) { + case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; + case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; + case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; + case 3: + k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; + k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; + } - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; - } + this.rem = (len + this.rem) & 3; // & 3 is same as % 4 + len -= this.rem; + if (len > 0) { + h1 = this.h1; + while (1) { + k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; -// If the replacer is an array, use it to select the members to be stringified. + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + if (i >= len) { + break; } - } else { - -// Otherwise, iterate through all of the keys in the object. - Object.keys(value).forEach(function(k) { - var v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - }); + k1 = ((key.charCodeAt(i++) & 0xffff)) ^ + ((key.charCodeAt(i++) & 0xffff) << 8) ^ + ((key.charCodeAt(i++) & 0xffff) << 16); + top = key.charCodeAt(i++); + k1 ^= ((top & 0xff) << 24) ^ + ((top & 0xff00) >> 8); } -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { + k1 = 0; + switch (this.rem) { + case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; + case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; + case 1: k1 ^= (key.charCodeAt(i) & 0xffff); + } -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. + this.h1 = h1; + } - var i; - gap = ''; - indent = ''; + this.k1 = k1; + return this; + }; -// If the space parameter is a number, make an indent string containing that -// many spaces. + // Get the result of this hash + // + // @return {number} The 32-bit hash + MurmurHash3.prototype.result = function() { + var k1, h1; + + k1 = this.k1; + h1 = this.h1; - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } + if (k1 > 0) { + k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; + h1 ^= k1; + } -// If the space parameter is a string, it will be used as the indent string. + h1 ^= this.len; - } else if (typeof space === 'string') { - indent = space; - } + h1 ^= h1 >>> 16; + h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; + h1 ^= h1 >>> 13; + h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; + h1 ^= h1 >>> 16; -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. + return h1 >>> 0; + }; - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } + // Reset the hash object for reuse + // + // @param {number} seed An optional positive integer + MurmurHash3.prototype.reset = function(seed) { + this.h1 = typeof seed === 'number' ? seed : 0; + this.rem = this.k1 = this.len = 0; + return this; + }; -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. + // A cached object to use. This can be safely used if you're in a single- + // threaded environment, otherwise you need to create new hashes to use. + cache = new MurmurHash3(); - return str('', {'': value}); - }; - } + if (true) { + module.exports = MurmurHash3; + } else {} }()); /***/ }), -/***/ 6010: +/***/ 4124: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -var bufferEqual = __nccwpck_require__(9239); -var Buffer = (__nccwpck_require__(1867).Buffer); -var crypto = __nccwpck_require__(6113); -var formatEcdsa = __nccwpck_require__(1728); -var util = __nccwpck_require__(3837); - -var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".' -var MSG_INVALID_SECRET = 'secret must be a string or buffer'; -var MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer'; -var MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object'; - -var supportsKeyObjects = typeof crypto.createPublicKey === 'function'; -if (supportsKeyObjects) { - MSG_INVALID_VERIFIER_KEY += ' or a KeyObject'; - MSG_INVALID_SECRET += 'or a KeyObject'; +try { + var util = __nccwpck_require__(3837); + /* istanbul ignore next */ + if (typeof util.inherits !== 'function') throw ''; + module.exports = util.inherits; +} catch (e) { + /* istanbul ignore next */ + module.exports = __nccwpck_require__(8544); } -function checkIsPublicKey(key) { - if (Buffer.isBuffer(key)) { - return; - } - if (typeof key === 'string') { - return; - } +/***/ }), - if (!supportsKeyObjects) { - throw typeError(MSG_INVALID_VERIFIER_KEY); - } +/***/ 8544: +/***/ ((module) => { - if (typeof key !== 'object') { - throw typeError(MSG_INVALID_VERIFIER_KEY); +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }) + } + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } } +} - if (typeof key.type !== 'string') { - throw typeError(MSG_INVALID_VERIFIER_KEY); - } - if (typeof key.asymmetricKeyType !== 'string') { - throw typeError(MSG_INVALID_VERIFIER_KEY); - } +/***/ }), - if (typeof key.export !== 'function') { - throw typeError(MSG_INVALID_VERIFIER_KEY); - } -}; +/***/ 6435: +/***/ ((module) => { -function checkIsPrivateKey(key) { - if (Buffer.isBuffer(key)) { - return; - } +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ - if (typeof key === 'string') { - return; +module.exports = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; } - if (typeof key === 'object') { - return; + var match; + while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); } - throw typeError(MSG_INVALID_SIGNER_KEY); + return false; }; -function checkIsSecretKey(key) { - if (Buffer.isBuffer(key)) { - return; - } - - if (typeof key === 'string') { - return key; - } - if (!supportsKeyObjects) { - throw typeError(MSG_INVALID_SECRET); - } +/***/ }), - if (typeof key !== 'object') { - throw typeError(MSG_INVALID_SECRET); - } +/***/ 4466: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (key.type !== 'secret') { - throw typeError(MSG_INVALID_SECRET); - } +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ - if (typeof key.export !== 'function') { - throw typeError(MSG_INVALID_SECRET); +var isExtglob = __nccwpck_require__(6435); +var chars = { '{': '}', '(': ')', '[': ']'}; +var strictCheck = function(str) { + if (str[0] === '!') { + return true; } -} + var index = 0; + var pipeIndex = -2; + var closeSquareIndex = -2; + var closeCurlyIndex = -2; + var closeParenIndex = -2; + var backSlashIndex = -2; + while (index < str.length) { + if (str[index] === '*') { + return true; + } -function fromBase64(base64) { - return base64 - .replace(/=/g, '') - .replace(/\+/g, '-') - .replace(/\//g, '_'); -} + if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { + return true; + } -function toBase64(base64url) { - base64url = base64url.toString(); + if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { + if (closeSquareIndex < index) { + closeSquareIndex = str.indexOf(']', index); + } + if (closeSquareIndex > index) { + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + } + } - var padding = 4 - base64url.length % 4; - if (padding !== 4) { - for (var i = 0; i < padding; ++i) { - base64url += '='; + if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { + closeCurlyIndex = str.indexOf('}', index); + if (closeCurlyIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { + return true; + } + } } - } - return base64url - .replace(/\-/g, '+') - .replace(/_/g, '/'); -} + if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { + closeParenIndex = str.indexOf(')', index); + if (closeParenIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } -function typeError(template) { - var args = [].slice.call(arguments, 1); - var errMsg = util.format.bind(util, template).apply(null, args); - return new TypeError(errMsg); -} + if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { + if (pipeIndex < index) { + pipeIndex = str.indexOf('|', index); + } + if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { + closeParenIndex = str.indexOf(')', pipeIndex); + if (closeParenIndex > pipeIndex) { + backSlashIndex = str.indexOf('\\', pipeIndex); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + } -function bufferOrString(obj) { - return Buffer.isBuffer(obj) || typeof obj === 'string'; -} + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; -function normalizeInput(thing) { - if (!bufferOrString(thing)) - thing = JSON.stringify(thing); - return thing; -} + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } -function createHmacSigner(bits) { - return function sign(thing, secret) { - checkIsSecretKey(secret); - thing = normalizeInput(thing); - var hmac = crypto.createHmac('sha' + bits, secret); - var sig = (hmac.update(thing), hmac.digest('base64')) - return fromBase64(sig); + if (str[index] === '!') { + return true; + } + } else { + index++; + } } -} + return false; +}; -function createHmacVerifier(bits) { - return function verify(thing, signature, secret) { - var computedSig = createHmacSigner(bits)(thing, secret); - return bufferEqual(Buffer.from(signature), Buffer.from(computedSig)); +var relaxedCheck = function(str) { + if (str[0] === '!') { + return true; } -} + var index = 0; + while (index < str.length) { + if (/[*?{}()[\]]/.test(str[index])) { + return true; + } -function createKeySigner(bits) { - return function sign(thing, privateKey) { - checkIsPrivateKey(privateKey); - thing = normalizeInput(thing); - // Even though we are specifying "RSA" here, this works with ECDSA - // keys as well. - var signer = crypto.createSign('RSA-SHA' + bits); - var sig = (signer.update(thing), signer.sign(privateKey, 'base64')); - return fromBase64(sig); - } -} + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; -function createKeyVerifier(bits) { - return function verify(thing, signature, publicKey) { - checkIsPublicKey(publicKey); - thing = normalizeInput(thing); - signature = toBase64(signature); - var verifier = crypto.createVerify('RSA-SHA' + bits); - verifier.update(thing); - return verifier.verify(publicKey, signature, 'base64'); - } -} + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } -function createPSSKeySigner(bits) { - return function sign(thing, privateKey) { - checkIsPrivateKey(privateKey); - thing = normalizeInput(thing); - var signer = crypto.createSign('RSA-SHA' + bits); - var sig = (signer.update(thing), signer.sign({ - key: privateKey, - padding: crypto.constants.RSA_PKCS1_PSS_PADDING, - saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST - }, 'base64')); - return fromBase64(sig); + if (str[index] === '!') { + return true; + } + } else { + index++; + } } -} + return false; +}; -function createPSSKeyVerifier(bits) { - return function verify(thing, signature, publicKey) { - checkIsPublicKey(publicKey); - thing = normalizeInput(thing); - signature = toBase64(signature); - var verifier = crypto.createVerify('RSA-SHA' + bits); - verifier.update(thing); - return verifier.verify({ - key: publicKey, - padding: crypto.constants.RSA_PKCS1_PSS_PADDING, - saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST - }, signature, 'base64'); +module.exports = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; } -} - -function createECDSASigner(bits) { - var inner = createKeySigner(bits); - return function sign() { - var signature = inner.apply(null, arguments); - signature = formatEcdsa.derToJose(signature, 'ES' + bits); - return signature; - }; -} - -function createECDSAVerifer(bits) { - var inner = createKeyVerifier(bits); - return function verify(thing, signature, publicKey) { - signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64'); - var result = inner(thing, signature, publicKey); - return result; - }; -} -function createNoneSigner() { - return function sign() { - return ''; + if (isExtglob(str)) { + return true; } -} -function createNoneVerifier() { - return function verify(thing, signature) { - return signature === ''; - } -} + var check = strictCheck; -module.exports = function jwa(algorithm) { - var signerFactories = { - hs: createHmacSigner, - rs: createKeySigner, - ps: createPSSKeySigner, - es: createECDSASigner, - none: createNoneSigner, - } - var verifierFactories = { - hs: createHmacVerifier, - rs: createKeyVerifier, - ps: createPSSKeyVerifier, - es: createECDSAVerifer, - none: createNoneVerifier, + // optionally relax check + if (options && options.strict === false) { + check = relaxedCheck; } - var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/); - if (!match) - throw typeError(MSG_INVALID_ALGORITHM, algorithm); - var algo = (match[1] || match[3]).toLowerCase(); - var bits = match[2]; - return { - sign: signerFactories[algo](bits), - verify: verifierFactories[algo](bits), - } + return check(str); }; /***/ }), -/***/ 4636: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -/*global exports*/ -var SignStream = __nccwpck_require__(3334); -var VerifyStream = __nccwpck_require__(5522); - -var ALGORITHMS = [ - 'HS256', 'HS384', 'HS512', - 'RS256', 'RS384', 'RS512', - 'PS256', 'PS384', 'PS512', - 'ES256', 'ES384', 'ES512' -]; - -exports.ALGORITHMS = ALGORITHMS; -exports.sign = SignStream.sign; -exports.verify = VerifyStream.verify; -exports.decode = VerifyStream.decode; -exports.isValid = VerifyStream.isValid; -exports.createSign = function createSign(opts) { - return new SignStream(opts); -}; -exports.createVerify = function createVerify(opts) { - return new VerifyStream(opts); -}; - - -/***/ }), +/***/ 5680: +/***/ ((module) => { -/***/ 1868: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +"use strict"; +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ -/*global module, process*/ -var Buffer = (__nccwpck_require__(1867).Buffer); -var Stream = __nccwpck_require__(2781); -var util = __nccwpck_require__(3837); -function DataStream(data) { - this.buffer = null; - this.writable = true; - this.readable = true; - // No input - if (!data) { - this.buffer = Buffer.alloc(0); - return this; +module.exports = function(num) { + if (typeof num === 'number') { + return num - num === 0; } - - // Stream - if (typeof data.pipe === 'function') { - this.buffer = Buffer.alloc(0); - data.pipe(this); - return this; + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); } + return false; +}; - // Buffer or String - // or Object (assumedly a passworded key) - if (data.length || typeof data === 'object') { - this.buffer = data; - this.writable = false; - process.nextTick(function () { - this.emit('end', data); - this.readable = false; - this.emit('close'); - }.bind(this)); - return this; - } - throw new TypeError('Unexpected data type ('+ typeof data + ')'); -} -util.inherits(DataStream, Stream); +/***/ }), -DataStream.prototype.write = function write(data) { - this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]); - this.emit('data', data); -}; +/***/ 1389: +/***/ ((module) => { -DataStream.prototype.end = function end(data) { - if (data) - this.write(data); - this.emit('end', data); - this.emit('close'); - this.writable = false; - this.readable = false; -}; +"use strict"; -module.exports = DataStream; + +module.exports = value => { + const type = typeof value; + return value !== null && (type === 'object' || type === 'function'); +}; /***/ }), -/***/ 3334: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 3287: +/***/ ((__unused_webpack_module, exports) => { -/*global module*/ -var Buffer = (__nccwpck_require__(1867).Buffer); -var DataStream = __nccwpck_require__(1868); -var jwa = __nccwpck_require__(6010); -var Stream = __nccwpck_require__(2781); -var toString = __nccwpck_require__(5292); -var util = __nccwpck_require__(3837); +"use strict"; -function base64url(string, encoding) { - return Buffer - .from(string, encoding) - .toString('base64') - .replace(/=/g, '') - .replace(/\+/g, '-') - .replace(/\//g, '_'); -} -function jwsSecuredInput(header, payload, encoding) { - encoding = encoding || 'utf8'; - var encodedHeader = base64url(toString(header), 'binary'); - var encodedPayload = base64url(toString(payload), encoding); - return util.format('%s.%s', encodedHeader, encodedPayload); -} +Object.defineProperty(exports, "__esModule", ({ value: true })); -function jwsSign(opts) { - var header = opts.header; - var payload = opts.payload; - var secretOrKey = opts.secret || opts.privateKey; - var encoding = opts.encoding; - var algo = jwa(header.alg); - var securedInput = jwsSecuredInput(header, payload, encoding); - var signature = algo.sign(securedInput, secretOrKey); - return util.format('%s.%s', securedInput, signature); +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; } -function SignStream(opts) { - var secret = opts.secret||opts.privateKey||opts.key; - var secretStream = new DataStream(secret); - this.readable = true; - this.header = opts.header; - this.encoding = opts.encoding; - this.secret = this.privateKey = this.key = secretStream; - this.payload = new DataStream(opts.payload); - this.secret.once('close', function () { - if (!this.payload.writable && this.readable) - this.sign(); - }.bind(this)); +function isPlainObject(o) { + var ctor,prot; - this.payload.once('close', function () { - if (!this.secret.writable && this.readable) - this.sign(); - }.bind(this)); -} -util.inherits(SignStream, Stream); + if (isObject(o) === false) return false; -SignStream.prototype.sign = function sign() { - try { - var signature = jwsSign({ - header: this.header, - payload: this.payload.buffer, - secret: this.secret.buffer, - encoding: this.encoding - }); - this.emit('done', signature); - this.emit('data', signature); - this.emit('end'); - this.readable = false; - return signature; - } catch (e) { - this.readable = false; - this.emit('error', e); - this.emit('close'); + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; } -}; -SignStream.sign = jwsSign; + // Most likely a plain Object + return true; +} -module.exports = SignStream; +exports.isPlainObject = isPlainObject; /***/ }), -/***/ 5292: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 1554: +/***/ ((module) => { -/*global module*/ -var Buffer = (__nccwpck_require__(4300).Buffer); +"use strict"; -module.exports = function toString(obj) { - if (typeof obj === 'string') - return obj; - if (typeof obj === 'number' || Buffer.isBuffer(obj)) - return obj.toString(); - return JSON.stringify(obj); -}; +const isStream = stream => + stream !== null && + typeof stream === 'object' && + typeof stream.pipe === 'function'; -/***/ }), +isStream.writable = stream => + isStream(stream) && + stream.writable !== false && + typeof stream._write === 'function' && + typeof stream._writableState === 'object'; -/***/ 5522: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +isStream.readable = stream => + isStream(stream) && + stream.readable !== false && + typeof stream._read === 'function' && + typeof stream._readableState === 'object'; -/*global module*/ -var Buffer = (__nccwpck_require__(1867).Buffer); -var DataStream = __nccwpck_require__(1868); -var jwa = __nccwpck_require__(6010); -var Stream = __nccwpck_require__(2781); -var toString = __nccwpck_require__(5292); -var util = __nccwpck_require__(3837); -var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/; +isStream.duplex = stream => + isStream.writable(stream) && + isStream.readable(stream); -function isObject(thing) { - return Object.prototype.toString.call(thing) === '[object Object]'; -} +isStream.transform = stream => + isStream.duplex(stream) && + typeof stream._transform === 'function'; -function safeJsonParse(thing) { - if (isObject(thing)) - return thing; - try { return JSON.parse(thing); } - catch (e) { return undefined; } -} +module.exports = isStream; -function headerFromJWS(jwsSig) { - var encodedHeader = jwsSig.split('.', 1)[0]; - return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary')); -} -function securedInputFromJWS(jwsSig) { - return jwsSig.split('.', 2).join('.'); -} +/***/ }), -function signatureFromJWS(jwsSig) { - return jwsSig.split('.')[2]; +/***/ 657: +/***/ ((module) => { + +module.exports = isTypedArray +isTypedArray.strict = isStrictTypedArray +isTypedArray.loose = isLooseTypedArray + +var toString = Object.prototype.toString +var names = { + '[object Int8Array]': true + , '[object Int16Array]': true + , '[object Int32Array]': true + , '[object Uint8Array]': true + , '[object Uint8ClampedArray]': true + , '[object Uint16Array]': true + , '[object Uint32Array]': true + , '[object Float32Array]': true + , '[object Float64Array]': true } -function payloadFromJWS(jwsSig, encoding) { - encoding = encoding || 'utf8'; - var payload = jwsSig.split('.')[1]; - return Buffer.from(payload, 'base64').toString(encoding); +function isTypedArray(arr) { + return ( + isStrictTypedArray(arr) + || isLooseTypedArray(arr) + ) } -function isValidJws(string) { - return JWS_REGEX.test(string) && !!headerFromJWS(string); +function isStrictTypedArray(arr) { + return ( + arr instanceof Int8Array + || arr instanceof Int16Array + || arr instanceof Int32Array + || arr instanceof Uint8Array + || arr instanceof Uint8ClampedArray + || arr instanceof Uint16Array + || arr instanceof Uint32Array + || arr instanceof Float32Array + || arr instanceof Float64Array + ) } -function jwsVerify(jwsSig, algorithm, secretOrKey) { - if (!algorithm) { - var err = new Error("Missing algorithm parameter for jws.verify"); - err.code = "MISSING_ALGORITHM"; - throw err; - } - jwsSig = toString(jwsSig); - var signature = signatureFromJWS(jwsSig); - var securedInput = securedInputFromJWS(jwsSig); - var algo = jwa(algorithm); - return algo.verify(securedInput, signature, secretOrKey); +function isLooseTypedArray(arr) { + return names[toString.call(arr)] } -function jwsDecode(jwsSig, opts) { - opts = opts || {}; - jwsSig = toString(jwsSig); - if (!isValidJws(jwsSig)) - return null; +/***/ }), - var header = headerFromJWS(jwsSig); +/***/ 5031: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (!header) - return null; +var json_stringify = (__nccwpck_require__(8574).stringify); +var json_parse = __nccwpck_require__(9099); - var payload = payloadFromJWS(jwsSig); - if (header.typ === 'JWT' || opts.json) - payload = JSON.parse(payload, opts.encoding); +module.exports = function(options) { + return { + parse: json_parse(options), + stringify: json_stringify + } +}; +//create the default method members with no options applied for backwards compatibility +module.exports.parse = json_parse(); +module.exports.stringify = json_stringify; - return { - header: header, - payload: payload, - signature: signatureFromJWS(jwsSig) - }; -} -function VerifyStream(opts) { - opts = opts || {}; - var secretOrKey = opts.secret||opts.publicKey||opts.key; - var secretStream = new DataStream(secretOrKey); - this.readable = true; - this.algorithm = opts.algorithm; - this.encoding = opts.encoding; - this.secret = this.publicKey = this.key = secretStream; - this.signature = new DataStream(opts.signature); - this.secret.once('close', function () { - if (!this.signature.writable && this.readable) - this.verify(); - }.bind(this)); +/***/ }), - this.signature.once('close', function () { - if (!this.secret.writable && this.readable) - this.verify(); - }.bind(this)); -} -util.inherits(VerifyStream, Stream); -VerifyStream.prototype.verify = function verify() { - try { - var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer); - var obj = jwsDecode(this.signature.buffer, this.encoding); - this.emit('done', valid, obj); - this.emit('data', valid); - this.emit('end'); - this.readable = false; - return valid; - } catch (e) { - this.readable = false; - this.emit('error', e); - this.emit('close'); - } -}; +/***/ 9099: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -VerifyStream.decode = jwsDecode; -VerifyStream.isValid = isValidJws; -VerifyStream.verify = jwsVerify; +var BigNumber = null; -module.exports = VerifyStream; +// regexpxs extracted from +// (c) BSD-3-Clause +// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors +const suspectProtoRx = /(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/; +const suspectConstructorRx = /(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)/; -/***/ }), +/* + json_parse.js + 2012-06-20 -/***/ 7129: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + Public Domain. -"use strict"; + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + This file creates a json_parse function. + During create you can (optionally) specify some behavioural switches -// A linked list to keep track of recently-used-ness -const Yallist = __nccwpck_require__(665) + require('json-bigint')(options) -const MAX = Symbol('max') -const LENGTH = Symbol('length') -const LENGTH_CALCULATOR = Symbol('lengthCalculator') -const ALLOW_STALE = Symbol('allowStale') -const MAX_AGE = Symbol('maxAge') -const DISPOSE = Symbol('dispose') -const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') -const LRU_LIST = Symbol('lruList') -const CACHE = Symbol('cache') -const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') + The optional options parameter holds switches that drive certain + aspects of the parsing process: + * options.strict = true will warn about duplicate-key usage in the json. + The default (strict = false) will silently ignore those and overwrite + values for keys that are in duplicate use. -const naiveLength = () => 1 + The resulting function follows this signature: + json_parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. -// lruList is a yallist where the head is the youngest -// item, and the tail is the oldest. the list contains the Hit -// objects as the entries. -// Each Hit object has a reference to its Yallist.Node. This -// never changes. -// -// cache is a Map (or PseudoMap) that matches the keys to -// the Yallist.Node object. -class LRUCache { - constructor (options) { - if (typeof options === 'number') - options = { max: options } + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. - if (!options) - options = {} + Example: - if (options.max && (typeof options.max !== 'number' || options.max < 0)) - throw new TypeError('max must be a non-negative number') - // Kind of weird to have a default max of Infinity, but oh well. - const max = this[MAX] = options.max || Infinity + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. - const lc = options.length || naiveLength - this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc - this[ALLOW_STALE] = options.stale || false - if (options.maxAge && typeof options.maxAge !== 'number') - throw new TypeError('maxAge must be a number') - this[MAX_AGE] = options.maxAge || 0 - this[DISPOSE] = options.dispose - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false - this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false - this.reset() - } + myData = json_parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); - // resize the cache when the max changes. - set max (mL) { - if (typeof mL !== 'number' || mL < 0) - throw new TypeError('max must be a non-negative number') + This is a reference implementation. You are free to copy, modify, or + redistribute. - this[MAX] = mL || Infinity - trim(this) - } - get max () { - return this[MAX] - } + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html - set allowStale (allowStale) { - this[ALLOW_STALE] = !!allowStale - } - get allowStale () { - return this[ALLOW_STALE] - } + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. +*/ - set maxAge (mA) { - if (typeof mA !== 'number') - throw new TypeError('maxAge must be a non-negative number') +/*members "", "\"", "\/", "\\", at, b, call, charAt, f, fromCharCode, + hasOwnProperty, message, n, name, prototype, push, r, t, text +*/ - this[MAX_AGE] = mA - trim(this) - } - get maxAge () { - return this[MAX_AGE] - } +var json_parse = function (options) { + 'use strict'; - // resize the cache when the lengthCalculator changes. - set lengthCalculator (lC) { - if (typeof lC !== 'function') - lC = naiveLength + // This is a function that can parse a JSON text, producing a JavaScript + // data structure. It is a simple, recursive descent parser. It does not use + // eval or regular expressions, so it can be used as a model for implementing + // a JSON parser in other languages. - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC - this[LENGTH] = 0 - this[LRU_LIST].forEach(hit => { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) - this[LENGTH] += hit.length - }) - } - trim(this) - } - get lengthCalculator () { return this[LENGTH_CALCULATOR] } + // We are defining the function inside of another function to avoid creating + // global variables. - get length () { return this[LENGTH] } - get itemCount () { return this[LRU_LIST].length } + // Default options one can override by passing options to the parse() + var _options = { + strict: false, // not being strict means do not generate syntax errors for "duplicate key" + storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string + alwaysParseAsBig: false, // toggles whether all numbers should be Big + useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js + protoAction: 'error', + constructorAction: 'error', + }; + + // If there are options, then use them to override the default _options + if (options !== undefined && options !== null) { + if (options.strict === true) { + _options.strict = true; + } + if (options.storeAsString === true) { + _options.storeAsString = true; + } + _options.alwaysParseAsBig = + options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false; + _options.useNativeBigInt = + options.useNativeBigInt === true ? options.useNativeBigInt : false; - rforEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].tail; walker !== null;) { - const prev = walker.prev - forEachStep(this, fn, walker, thisp) - walker = prev + if (typeof options.constructorAction !== 'undefined') { + if ( + options.constructorAction === 'error' || + options.constructorAction === 'ignore' || + options.constructorAction === 'preserve' + ) { + _options.constructorAction = options.constructorAction; + } else { + throw new Error( + `Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${options.constructorAction}` + ); + } } - } - forEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].head; walker !== null;) { - const next = walker.next - forEachStep(this, fn, walker, thisp) - walker = next + if (typeof options.protoAction !== 'undefined') { + if ( + options.protoAction === 'error' || + options.protoAction === 'ignore' || + options.protoAction === 'preserve' + ) { + _options.protoAction = options.protoAction; + } else { + throw new Error( + `Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${options.protoAction}` + ); + } } } - keys () { - return this[LRU_LIST].toArray().map(k => k.key) - } + var at, // The index of the current character + ch, // The current character + escapee = { + '"': '"', + '\\': '\\', + '/': '/', + b: '\b', + f: '\f', + n: '\n', + r: '\r', + t: '\t', + }, + text, + error = function (m) { + // Call error when something is wrong. - values () { - return this[LRU_LIST].toArray().map(k => k.value) - } + throw { + name: 'SyntaxError', + message: m, + at: at, + text: text, + }; + }, + next = function (c) { + // If a c parameter is provided, verify that it matches the current character. - reset () { - if (this[DISPOSE] && - this[LRU_LIST] && - this[LRU_LIST].length) { - this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) - } + if (c && c !== ch) { + error("Expected '" + c + "' instead of '" + ch + "'"); + } - this[CACHE] = new Map() // hash of items by key - this[LRU_LIST] = new Yallist() // list of items in order of use recency - this[LENGTH] = 0 // length of items in the list - } + // Get the next character. When there are no more characters, + // return the empty string. - dump () { - return this[LRU_LIST].map(hit => - isStale(this, hit) ? false : { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }).toArray().filter(h => h) - } + ch = text.charAt(at); + at += 1; + return ch; + }, + number = function () { + // Parse a number value. - dumpLru () { - return this[LRU_LIST] - } + var number, + string = ''; - set (key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE] + if (ch === '-') { + string = '-'; + next('-'); + } + while (ch >= '0' && ch <= '9') { + string += ch; + next(); + } + if (ch === '.') { + string += '.'; + while (next() && ch >= '0' && ch <= '9') { + string += ch; + } + } + if (ch === 'e' || ch === 'E') { + string += ch; + next(); + if (ch === '-' || ch === '+') { + string += ch; + next(); + } + while (ch >= '0' && ch <= '9') { + string += ch; + next(); + } + } + number = +string; + if (!isFinite(number)) { + error('Bad number'); + } else { + if (BigNumber == null) BigNumber = __nccwpck_require__(7558); + //if (number > 9007199254740992 || number < -9007199254740992) + // Bignumber has stricter check: everything with length > 15 digits disallowed + if (string.length > 15) + return _options.storeAsString + ? string + : _options.useNativeBigInt + ? BigInt(string) + : new BigNumber(string); + else + return !_options.alwaysParseAsBig + ? number + : _options.useNativeBigInt + ? BigInt(number) + : new BigNumber(number); + } + }, + string = function () { + // Parse a string value. - if (maxAge && typeof maxAge !== 'number') - throw new TypeError('maxAge must be a number') + var hex, + i, + string = '', + uffff; - const now = maxAge ? Date.now() : 0 - const len = this[LENGTH_CALCULATOR](value, key) + // When parsing for string values, we must look for " and \ characters. - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)) - return false + if (ch === '"') { + var startAt = at; + while (next()) { + if (ch === '"') { + if (at - 1 > startAt) string += text.substring(startAt, at - 1); + next(); + return string; + } + if (ch === '\\') { + if (at - 1 > startAt) string += text.substring(startAt, at - 1); + next(); + if (ch === 'u') { + uffff = 0; + for (i = 0; i < 4; i += 1) { + hex = parseInt(next(), 16); + if (!isFinite(hex)) { + break; + } + uffff = uffff * 16 + hex; + } + string += String.fromCharCode(uffff); + } else if (typeof escapee[ch] === 'string') { + string += escapee[ch]; + } else { + break; + } + startAt = at; + } + } } + error('Bad string'); + }, + white = function () { + // Skip whitespace. - const node = this[CACHE].get(key) - const item = node.value + while (ch && ch <= ' ') { + next(); + } + }, + word = function () { + // true, false, or null. - // dispose of the old one before overwriting - // split out into 2 ifs for better coverage tracking - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) - this[DISPOSE](key, item.value) + switch (ch) { + case 't': + next('t'); + next('r'); + next('u'); + next('e'); + return true; + case 'f': + next('f'); + next('a'); + next('l'); + next('s'); + next('e'); + return false; + case 'n': + next('n'); + next('u'); + next('l'); + next('l'); + return null; } + error("Unexpected '" + ch + "'"); + }, + value, // Place holder for the value function. + array = function () { + // Parse an array value. - item.now = now - item.maxAge = maxAge - item.value = value - this[LENGTH] += len - item.length - item.length = len - this.get(key) - trim(this) - return true - } + var array = []; - const hit = new Entry(key, value, len, now, maxAge) + if (ch === '[') { + next('['); + white(); + if (ch === ']') { + next(']'); + return array; // empty array + } + while (ch) { + array.push(value()); + white(); + if (ch === ']') { + next(']'); + return array; + } + next(','); + white(); + } + } + error('Bad array'); + }, + object = function () { + // Parse an object value. - // oversized objects fall out of cache automatically. - if (hit.length > this[MAX]) { - if (this[DISPOSE]) - this[DISPOSE](key, value) + var key, + object = Object.create(null); - return false - } + if (ch === '{') { + next('{'); + white(); + if (ch === '}') { + next('}'); + return object; // empty object + } + while (ch) { + key = string(); + white(); + next(':'); + if ( + _options.strict === true && + Object.hasOwnProperty.call(object, key) + ) { + error('Duplicate key "' + key + '"'); + } - this[LENGTH] += hit.length - this[LRU_LIST].unshift(hit) - this[CACHE].set(key, this[LRU_LIST].head) - trim(this) - return true - } + if (suspectProtoRx.test(key) === true) { + if (_options.protoAction === 'error') { + error('Object contains forbidden prototype property'); + } else if (_options.protoAction === 'ignore') { + value(); + } else { + object[key] = value(); + } + } else if (suspectConstructorRx.test(key) === true) { + if (_options.constructorAction === 'error') { + error('Object contains forbidden constructor property'); + } else if (_options.constructorAction === 'ignore') { + value(); + } else { + object[key] = value(); + } + } else { + object[key] = value(); + } - has (key) { - if (!this[CACHE].has(key)) return false - const hit = this[CACHE].get(key).value - return !isStale(this, hit) - } + white(); + if (ch === '}') { + next('}'); + return object; + } + next(','); + white(); + } + } + error('Bad object'); + }; - get (key) { - return get(this, key, true) - } + value = function () { + // Parse a JSON value. It could be an object, an array, a string, a number, + // or a word. - peek (key) { - return get(this, key, false) - } + white(); + switch (ch) { + case '{': + return object(); + case '[': + return array(); + case '"': + return string(); + case '-': + return number(); + default: + return ch >= '0' && ch <= '9' ? number() : word(); + } + }; - pop () { - const node = this[LRU_LIST].tail - if (!node) - return null + // Return the json_parse function. It will have access to all of the above + // functions and variables. - del(this, node) - return node.value - } + return function (source, reviver) { + var result; - del (key) { - del(this, this[CACHE].get(key)) - } + text = source + ''; + at = 0; + ch = ' '; + result = value(); + white(); + if (ch) { + error('Syntax error'); + } - load (arr) { - // reset the cache - this.reset() + // If there is a reviver function, we recursively walk the new structure, + // passing each name/value pair to the reviver function for possible + // transformation, starting with a temporary root object that holds the result + // in an empty key. If there is not a reviver function, we simply return the + // result. - const now = Date.now() - // A previous serialized cache has the most recent items first - for (let l = arr.length - 1; l >= 0; l--) { - const hit = arr[l] - const expiresAt = hit.e || 0 - if (expiresAt === 0) - // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - else { - const maxAge = expiresAt - now - // dont add already expired items - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge) - } - } - } - } + return typeof reviver === 'function' + ? (function walk(holder, key) { + var k, + v, + value = holder[key]; + if (value && typeof value === 'object') { + Object.keys(value).forEach(function (k) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + }); + } + return reviver.call(holder, key, value); + })({ '': result }, '') + : result; + }; +}; - prune () { - this[CACHE].forEach((value, key) => get(this, key, false)) - } -} +module.exports = json_parse; -const get = (self, key, doUse) => { - const node = self[CACHE].get(key) - if (node) { - const hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - return undefined - } else { - if (doUse) { - if (self[UPDATE_AGE_ON_GET]) - node.value.now = Date.now() - self[LRU_LIST].unshiftNode(node) - } - } - return hit.value - } -} -const isStale = (self, hit) => { - if (!hit || (!hit.maxAge && !self[MAX_AGE])) - return false +/***/ }), - const diff = Date.now() - hit.now - return hit.maxAge ? diff > hit.maxAge - : self[MAX_AGE] && (diff > self[MAX_AGE]) -} +/***/ 8574: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -const trim = self => { - if (self[LENGTH] > self[MAX]) { - for (let walker = self[LRU_LIST].tail; - self[LENGTH] > self[MAX] && walker !== null;) { - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - const prev = walker.prev - del(self, walker) - walker = prev - } - } -} +var BigNumber = __nccwpck_require__(7558); -const del = (self, node) => { - if (node) { - const hit = node.value - if (self[DISPOSE]) - self[DISPOSE](hit.key, hit.value) +/* + json2.js + 2013-05-26 - self[LENGTH] -= hit.length - self[CACHE].delete(hit.key) - self[LRU_LIST].removeNode(node) - } -} + Public Domain. -class Entry { - constructor (key, value, length, now, maxAge) { - this.key = key - this.value = value - this.length = length - this.now = now - this.maxAge = maxAge || 0 - } -} + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. -const forEachStep = (self, fn, node, thisp) => { - let hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - hit = undefined - } - if (hit) - fn.call(thisp, hit.value, hit.key, self) -} + See http://www.JSON.org/js.html -module.exports = LRUCache + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html -/***/ }), + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. -/***/ 9126: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; + This file creates a global JSON object containing two methods: stringify + and parse. -const fs = __nccwpck_require__(7147); -const path = __nccwpck_require__(1017); -const {promisify} = __nccwpck_require__(3837); -const semver = __nccwpck_require__(3689); + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. -const useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0'); + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. -// https://github.com/nodejs/node/issues/8987 -// https://github.com/libuv/libuv/pull/1088 -const checkPath = pth => { - if (process.platform === 'win32') { - const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, '')); + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. - if (pathHasInvalidWinCharacters) { - const error = new Error(`Path contains invalid characters: ${pth}`); - error.code = 'EINVAL'; - throw error; - } - } -}; + This method produces a JSON text from a JavaScript value. -const processOptions = options => { - // https://github.com/sindresorhus/make-dir/issues/18 - const defaults = { - mode: 0o777, - fs - }; + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value - return { - ...defaults, - ...options - }; -}; + For example, this would serialize Dates as ISO strings. -const permissionError = pth => { - // This replicates the exception of `fs.mkdir` with native the - // `recusive` option when run on an invalid drive under Windows. - const error = new Error(`operation not permitted, mkdir '${pth}'`); - error.code = 'EPERM'; - error.errno = -4048; - error.path = pth; - error.syscall = 'mkdir'; - return error; -}; + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } -const makeDir = async (input, options) => { - checkPath(input); - options = processOptions(options); + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; - const mkdir = promisify(options.fs.mkdir); - const stat = promisify(options.fs.stat); + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. - if (useNativeRecursiveOption && options.fs.mkdir === fs.mkdir) { - const pth = path.resolve(input); + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. - await mkdir(pth, { - mode: options.mode, - recursive: true - }); + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. - return pth; - } + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. - const make = async pth => { - try { - await mkdir(pth, options.mode); + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. - return pth; - } catch (error) { - if (error.code === 'EPERM') { - throw error; - } + Example: - if (error.code === 'ENOENT') { - if (path.dirname(pth) === pth) { - throw permissionError(pth); - } + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' - if (error.message.includes('null bytes')) { - throw error; - } - await make(path.dirname(pth)); + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - return make(pth); - } + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' - try { - const stats = await stat(pth); - if (!stats.isDirectory()) { - throw new Error('The path is not a directory'); - } - } catch (_) { - throw error; - } - return pth; - } - }; + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. - return make(path.resolve(input)); -}; + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. -module.exports = makeDir; + Example: -module.exports.sync = (input, options) => { - checkPath(input); - options = processOptions(options); + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. - if (useNativeRecursiveOption && options.fs.mkdirSync === fs.mkdirSync) { - const pth = path.resolve(input); + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); - fs.mkdirSync(pth, { - mode: options.mode, - recursive: true - }); + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); - return pth; - } - const make = pth => { - try { - options.fs.mkdirSync(pth, options.mode); - } catch (error) { - if (error.code === 'EPERM') { - throw error; - } + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ - if (error.code === 'ENOENT') { - if (path.dirname(pth) === pth) { - throw permissionError(pth); - } +/*jslint evil: true, regexp: true */ - if (error.message.includes('null bytes')) { - throw error; - } +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ - make(path.dirname(pth)); - return make(pth); - } - try { - if (!options.fs.statSync(pth).isDirectory()) { - throw new Error('The path is not a directory'); - } - } catch (_) { - throw error; - } - } +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. - return pth; - }; +var JSON = module.exports; - return make(path.resolve(input)); -}; +(function () { + 'use strict'; + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } -/***/ }), + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; -/***/ 3689: -/***/ ((module, exports) => { -exports = module.exports = SemVer + function quote(string) { -var debug -/* istanbul ignore next */ -if (typeof process === 'object' && - process.env && - process.env.NODE_DEBUG && - /\bsemver\b/i.test(process.env.NODE_DEBUG)) { - debug = function () { - var args = Array.prototype.slice.call(arguments, 0) - args.unshift('SEMVER') - console.log.apply(console, args) - } -} else { - debug = function () {} -} +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = '2.0.0' + escapable.lastIndex = 0; + return escapable.test(string) ? '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' + ? c + : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : '"' + string + '"'; + } -var MAX_LENGTH = 256 -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || - /* istanbul ignore next */ 9007199254740991 -// Max safe segment length for coercion. -var MAX_SAFE_COMPONENT_LENGTH = 16 + function str(key, holder) { -var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 +// Produce a string from holder[key]. -// The actual regexps go on exports.re -var re = exports.re = [] -var safeRe = exports.safeRe = [] -var src = exports.src = [] -var t = exports.tokens = {} -var R = 0 + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key], + isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value)); -function tok (n) { - t[n] = R++ -} +// If the value has a toJSON method, call it to obtain a replacement value. -var LETTERDASHNUMBER = '[a-zA-Z0-9-]' + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } -// Replace some greedy regex tokens to prevent regex dos issues. These regex are -// used internally via the safeRe object since all inputs in this library get -// normalized first to trim and collapse all extra whitespace. The original -// regexes are exported for userland consumption and lower level usage. A -// future breaking change could export the safer regex only with a note that -// all input should have extra whitespace removed. -var safeRegexReplacements = [ - ['\\s', 1], - ['\\d', MAX_LENGTH], - [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], -] +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. -function makeSafeRe (value) { - for (var i = 0; i < safeRegexReplacements.length; i++) { - var token = safeRegexReplacements[i][0] - var max = safeRegexReplacements[i][1] - value = value - .split(token + '*').join(token + '{0,' + max + '}') - .split(token + '+').join(token + '{1,' + max + '}') - } - return value -} + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. +// What happens next depends on the value's type. -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. + switch (typeof value) { + case 'string': + if (isBigNumber) { + return value; + } else { + return quote(value); + } -tok('NUMERICIDENTIFIER') -src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*' -tok('NUMERICIDENTIFIERLOOSE') -src[t.NUMERICIDENTIFIERLOOSE] = '\\d+' + case 'number': -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. +// JSON numbers must be finite. Encode non-finite numbers as null. -tok('NONNUMERICIDENTIFIER') -src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*' + return isFinite(value) ? String(value) : 'null'; -// ## Main Version -// Three dot-separated numeric identifiers. + case 'boolean': + case 'null': + case 'bigint': -tok('MAINVERSION') -src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIER] + ')' +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. -tok('MAINVERSIONLOOSE') -src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')' + return String(value); -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. +// If the type is 'object', we might be dealing with an object or an array or +// null. -tok('PRERELEASEIDENTIFIER') -src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] + - '|' + src[t.NONNUMERICIDENTIFIER] + ')' + case 'object': -tok('PRERELEASEIDENTIFIERLOOSE') -src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] + - '|' + src[t.NONNUMERICIDENTIFIER] + ')' +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. + if (!value) { + return 'null'; + } -tok('PRERELEASE') -src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] + - '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))' +// Make an array to hold the partial results of stringifying this object value. -tok('PRERELEASELOOSE') -src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] + - '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))' + gap += indent; + partial = []; -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. +// Is the value an array? -tok('BUILDIDENTIFIER') -src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+' + if (Object.prototype.toString.apply(value) === '[object Array]') { -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. -tok('BUILD') -src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] + - '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))' + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. +// Join all of the elements together, separated with commas, and wrap them in +// brackets. -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. + v = partial.length === 0 + ? '[]' + : gap + ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' + : '[' + partial.join(',') + ']'; + gap = mind; + return v; + } -tok('FULL') -tok('FULLPLAIN') -src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] + - src[t.PRERELEASE] + '?' + - src[t.BUILD] + '?' +// If the replacer is an array, use it to select the members to be stringified. -src[t.FULL] = '^' + src[t.FULLPLAIN] + '$' + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + if (typeof rep[i] === 'string') { + k = rep[i]; + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -tok('LOOSEPLAIN') -src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] + - src[t.PRERELEASELOOSE] + '?' + - src[t.BUILD] + '?' +// Otherwise, iterate through all of the keys in the object. -tok('LOOSE') -src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$' + Object.keys(value).forEach(function(k) { + var v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + }); + } -tok('GTLT') -src[t.GTLT] = '((?:<|>)?=?)' +// Join all of the member texts together, separated with commas, +// and wrap them in braces. -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -tok('XRANGEIDENTIFIERLOOSE') -src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' -tok('XRANGEIDENTIFIER') -src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*' + v = partial.length === 0 + ? '{}' + : gap + ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' + : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } -tok('XRANGEPLAIN') -src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + - '(?:' + src[t.PRERELEASE] + ')?' + - src[t.BUILD] + '?' + - ')?)?' +// If the JSON object does not yet have a stringify method, give it one. -tok('XRANGEPLAINLOOSE') -src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + - '(?:' + src[t.PRERELEASELOOSE] + ')?' + - src[t.BUILD] + '?' + - ')?)?' + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { -tok('XRANGE') -src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$' -tok('XRANGELOOSE') -src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$' +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. -// Coercion. -// Extract anything that could conceivably be a part of a valid semver -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') + var i; + gap = ''; + indent = ''; -// Tilde ranges. -// Meaning is "reasonably at or greater than" -tok('LONETILDE') -src[t.LONETILDE] = '(?:~>?)' +// If the space parameter is a number, make an indent string containing that +// many spaces. -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~' + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } -tok('TILDE') -src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$' -tok('TILDELOOSE') -src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$' +// If the space parameter is a string, it will be used as the indent string. -// Caret ranges. -// Meaning is "at least and backwards compatible with" -tok('LONECARET') -src[t.LONECARET] = '(?:\\^)' + } else if (typeof space === 'string') { + indent = space; + } -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^' +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. -tok('CARET') -src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$' -tok('CARETLOOSE') -src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$' + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } -// A simple gt/lt/eq thing, or just "" to indicate "any version" -tok('COMPARATORLOOSE') -src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$' -tok('COMPARATOR') -src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$' +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -tok('COMPARATORTRIM') -src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] + - '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')' + return str('', {'': value}); + }; + } +}()); -// this one has to use the /g flag -re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g') -safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g') -var comparatorTrimReplace = '$1$2$3' -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -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*$' +/***/ 6010: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -// Star ranges basically just allow anything at all. -tok('STAR') -src[t.STAR] = '(<|>)?=?\\s*\\*' +var bufferEqual = __nccwpck_require__(9239); +var Buffer = (__nccwpck_require__(1867).Buffer); +var crypto = __nccwpck_require__(6113); +var formatEcdsa = __nccwpck_require__(1728); +var util = __nccwpck_require__(3837); -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - debug(i, src[i]) - if (!re[i]) { - re[i] = new RegExp(src[i]) +var MSG_INVALID_ALGORITHM = '"%s" is not a valid algorithm.\n Supported algorithms are:\n "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".' +var MSG_INVALID_SECRET = 'secret must be a string or buffer'; +var MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer'; +var MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object'; - // Replace all greedy whitespace to prevent regex dos issues. These regex are - // used internally via the safeRe object since all inputs in this library get - // normalized first to trim and collapse all extra whitespace. The original - // regexes are exported for userland consumption and lower level usage. A - // future breaking change could export the safer regex only with a note that - // all input should have extra whitespace removed. - safeRe[i] = new RegExp(makeSafeRe(src[i])) - } +var supportsKeyObjects = typeof crypto.createPublicKey === 'function'; +if (supportsKeyObjects) { + MSG_INVALID_VERIFIER_KEY += ' or a KeyObject'; + MSG_INVALID_SECRET += 'or a KeyObject'; } -exports.parse = parse -function parse (version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } +function checkIsPublicKey(key) { + if (Buffer.isBuffer(key)) { + return; } - if (version instanceof SemVer) { - return version + if (typeof key === 'string') { + return; } - if (typeof version !== 'string') { - return null + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_VERIFIER_KEY); } - if (version.length > MAX_LENGTH) { - return null + if (typeof key !== 'object') { + throw typeError(MSG_INVALID_VERIFIER_KEY); } - var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL] - if (!r.test(version)) { - return null + if (typeof key.type !== 'string') { + throw typeError(MSG_INVALID_VERIFIER_KEY); } - try { - return new SemVer(version, options) - } catch (er) { - return null + if (typeof key.asymmetricKeyType !== 'string') { + throw typeError(MSG_INVALID_VERIFIER_KEY); } -} - -exports.valid = valid -function valid (version, options) { - var v = parse(version, options) - return v ? v.version : null -} - -exports.clean = clean -function clean (version, options) { - var s = parse(version.trim().replace(/^[=v]+/, ''), options) - return s ? s.version : null -} - -exports.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 (typeof key.export !== 'function') { + throw typeError(MSG_INVALID_VERIFIER_KEY); } +}; - if (version.length > MAX_LENGTH) { - throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') +function checkIsPrivateKey(key) { + if (Buffer.isBuffer(key)) { + return; } - if (!(this instanceof SemVer)) { - return new SemVer(version, options) + if (typeof key === 'string') { + return; } - debug('SemVer', version, options) - this.options = options - this.loose = !!options.loose + if (typeof key === 'object') { + return; + } - var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]) + throw typeError(MSG_INVALID_SIGNER_KEY); +}; - if (!m) { - throw new TypeError('Invalid Version: ' + version) +function checkIsSecretKey(key) { + if (Buffer.isBuffer(key)) { + return; } - this.raw = version - - // these are actually numbers - this.major = +m[1] - this.minor = +m[2] - this.patch = +m[3] + if (typeof key === 'string') { + return key; + } - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { - throw new TypeError('Invalid major version') + if (!supportsKeyObjects) { + throw typeError(MSG_INVALID_SECRET); } - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { - throw new TypeError('Invalid minor version') + if (typeof key !== 'object') { + throw typeError(MSG_INVALID_SECRET); } - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { - throw new TypeError('Invalid patch version') + if (key.type !== 'secret') { + throw typeError(MSG_INVALID_SECRET); } - // numberify any prerelease numeric ids - 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 - }) + if (typeof key.export !== 'function') { + throw typeError(MSG_INVALID_SECRET); } +} - this.build = m[5] ? m[5].split('.') : [] - this.format() +function fromBase64(base64) { + return base64 + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); } -SemVer.prototype.format = function () { - this.version = this.major + '.' + this.minor + '.' + this.patch - if (this.prerelease.length) { - this.version += '-' + this.prerelease.join('.') +function toBase64(base64url) { + base64url = base64url.toString(); + + var padding = 4 - base64url.length % 4; + if (padding !== 4) { + for (var i = 0; i < padding; ++i) { + base64url += '='; + } } - return this.version + + return base64url + .replace(/\-/g, '+') + .replace(/_/g, '/'); } -SemVer.prototype.toString = function () { - return this.version +function typeError(template) { + var args = [].slice.call(arguments, 1); + var errMsg = util.format.bind(util, template).apply(null, args); + return new TypeError(errMsg); } -SemVer.prototype.compare = function (other) { - debug('SemVer.compare', this.version, this.options, other) - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } +function bufferOrString(obj) { + return Buffer.isBuffer(obj) || typeof obj === 'string'; +} - return this.compareMain(other) || this.comparePre(other) +function normalizeInput(thing) { + if (!bufferOrString(thing)) + thing = JSON.stringify(thing); + return thing; } -SemVer.prototype.compareMain = function (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) +function createHmacSigner(bits) { + return function sign(thing, secret) { + checkIsSecretKey(secret); + thing = normalizeInput(thing); + var hmac = crypto.createHmac('sha' + bits, secret); + var sig = (hmac.update(thing), hmac.digest('base64')) + return fromBase64(sig); } - - 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) +function createHmacVerifier(bits) { + return function verify(thing, signature, secret) { + var computedSig = createHmacSigner(bits)(thing, secret); + return bufferEqual(Buffer.from(signature), Buffer.from(computedSig)); } +} - // NOT having a prerelease is > having one - 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 +function createKeySigner(bits) { + return function sign(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + // Even though we are specifying "RSA" here, this works with ECDSA + // keys as well. + var signer = crypto.createSign('RSA-SHA' + bits); + var sig = (signer.update(thing), signer.sign(privateKey, 'base64')); + return fromBase64(sig); } - - var i = 0 - do { - var a = this.prerelease[i] - var b = other.prerelease[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) } -SemVer.prototype.compareBuild = function (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) +function createKeyVerifier(bits) { + return function verify(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase64(signature); + var verifier = crypto.createVerify('RSA-SHA' + bits); + verifier.update(thing); + return verifier.verify(publicKey, signature, 'base64'); } +} - var i = 0 - do { - var a = this.build[i] - var b = other.build[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) +function createPSSKeySigner(bits) { + return function sign(thing, privateKey) { + checkIsPrivateKey(privateKey); + thing = normalizeInput(thing); + var signer = crypto.createSign('RSA-SHA' + bits); + var sig = (signer.update(thing), signer.sign({ + key: privateKey, + padding: crypto.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST + }, 'base64')); + return fromBase64(sig); + } } -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -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': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - 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 +function createPSSKeyVerifier(bits) { + return function verify(thing, signature, publicKey) { + checkIsPublicKey(publicKey); + thing = normalizeInput(thing); + signature = toBase64(signature); + var verifier = crypto.createVerify('RSA-SHA' + bits); + verifier.update(thing); + return verifier.verify({ + key: publicKey, + padding: crypto.constants.RSA_PKCS1_PSS_PADDING, + saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST + }, signature, 'base64'); + } +} - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - 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 is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++ - } - this.patch = 0 - this.prerelease = [] - break - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - 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 i = this.prerelease.length - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++ - i = -2 - } - } - if (i === -1) { - // didn't increment anything - this.prerelease.push(0) - } - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0] - } - } else { - this.prerelease = [identifier, 0] - } - } - break +function createECDSASigner(bits) { + var inner = createKeySigner(bits); + return function sign() { + var signature = inner.apply(null, arguments); + signature = formatEcdsa.derToJose(signature, 'ES' + bits); + return signature; + }; +} - default: - throw new Error('invalid increment argument: ' + release) - } - this.format() - this.raw = this.version - return this +function createECDSAVerifer(bits) { + var inner = createKeyVerifier(bits); + return function verify(thing, signature, publicKey) { + signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64'); + var result = inner(thing, signature, publicKey); + return result; + }; } -exports.inc = inc -function inc (version, release, loose, identifier) { - if (typeof (loose) === 'string') { - identifier = loose - loose = undefined +function createNoneSigner() { + return function sign() { + return ''; } +} - try { - return new SemVer(version, loose).inc(release, identifier).version - } catch (er) { - return null +function createNoneVerifier() { + return function verify(thing, signature) { + return signature === ''; } } -exports.diff = diff -function diff (version1, version2) { - if (eq(version1, version2)) { - return null - } else { - var v1 = parse(version1) - var v2 = parse(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 // may be undefined +module.exports = function jwa(algorithm) { + var signerFactories = { + hs: createHmacSigner, + rs: createKeySigner, + ps: createPSSKeySigner, + es: createECDSASigner, + none: createNoneSigner, } -} + var verifierFactories = { + hs: createHmacVerifier, + rs: createKeyVerifier, + ps: createPSSKeyVerifier, + es: createECDSAVerifer, + none: createNoneVerifier, + } + var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/); + if (!match) + throw typeError(MSG_INVALID_ALGORITHM, algorithm); + var algo = (match[1] || match[3]).toLowerCase(); + var bits = match[2]; -exports.compareIdentifiers = compareIdentifiers + return { + sign: signerFactories[algo](bits), + verify: verifierFactories[algo](bits), + } +}; -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 -} +/***/ 4636: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -exports.rcompareIdentifiers = rcompareIdentifiers -function rcompareIdentifiers (a, b) { - return compareIdentifiers(b, a) -} +/*global exports*/ +var SignStream = __nccwpck_require__(3334); +var VerifyStream = __nccwpck_require__(5522); -exports.major = major -function major (a, loose) { - return new SemVer(a, loose).major -} +var ALGORITHMS = [ + 'HS256', 'HS384', 'HS512', + 'RS256', 'RS384', 'RS512', + 'PS256', 'PS384', 'PS512', + 'ES256', 'ES384', 'ES512' +]; -exports.minor = minor -function minor (a, loose) { - return new SemVer(a, loose).minor -} +exports.ALGORITHMS = ALGORITHMS; +exports.sign = SignStream.sign; +exports.verify = VerifyStream.verify; +exports.decode = VerifyStream.decode; +exports.isValid = VerifyStream.isValid; +exports.createSign = function createSign(opts) { + return new SignStream(opts); +}; +exports.createVerify = function createVerify(opts) { + return new VerifyStream(opts); +}; -exports.patch = patch -function patch (a, loose) { - return new SemVer(a, loose).patch -} -exports.compare = compare -function compare (a, b, loose) { - return new SemVer(a, loose).compare(new SemVer(b, loose)) -} +/***/ }), -exports.compareLoose = compareLoose -function compareLoose (a, b) { - return compare(a, b, true) -} +/***/ 1868: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -exports.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) -} +/*global module, process*/ +var Buffer = (__nccwpck_require__(1867).Buffer); +var Stream = __nccwpck_require__(2781); +var util = __nccwpck_require__(3837); -exports.rcompare = rcompare -function rcompare (a, b, loose) { - return compare(b, a, loose) -} +function DataStream(data) { + this.buffer = null; + this.writable = true; + this.readable = true; -exports.sort = sort -function sort (list, loose) { - return list.sort(function (a, b) { - return exports.compareBuild(a, b, loose) - }) -} + // No input + if (!data) { + this.buffer = Buffer.alloc(0); + return this; + } -exports.rsort = rsort -function rsort (list, loose) { - return list.sort(function (a, b) { - return exports.compareBuild(b, a, loose) - }) -} + // Stream + if (typeof data.pipe === 'function') { + this.buffer = Buffer.alloc(0); + data.pipe(this); + return this; + } -exports.gt = gt -function gt (a, b, loose) { - return compare(a, b, loose) > 0 -} + // Buffer or String + // or Object (assumedly a passworded key) + if (data.length || typeof data === 'object') { + this.buffer = data; + this.writable = false; + process.nextTick(function () { + this.emit('end', data); + this.readable = false; + this.emit('close'); + }.bind(this)); + return this; + } -exports.lt = lt -function lt (a, b, loose) { - return compare(a, b, loose) < 0 + throw new TypeError('Unexpected data type ('+ typeof data + ')'); } +util.inherits(DataStream, Stream); -exports.eq = eq -function eq (a, b, loose) { - return compare(a, b, loose) === 0 -} +DataStream.prototype.write = function write(data) { + this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]); + this.emit('data', data); +}; -exports.neq = neq -function neq (a, b, loose) { - return compare(a, b, loose) !== 0 +DataStream.prototype.end = function end(data) { + if (data) + this.write(data); + this.emit('end', data); + this.emit('close'); + this.writable = false; + this.readable = false; +}; + +module.exports = DataStream; + + +/***/ }), + +/***/ 3334: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/*global module*/ +var Buffer = (__nccwpck_require__(1867).Buffer); +var DataStream = __nccwpck_require__(1868); +var jwa = __nccwpck_require__(6010); +var Stream = __nccwpck_require__(2781); +var toString = __nccwpck_require__(5292); +var util = __nccwpck_require__(3837); + +function base64url(string, encoding) { + return Buffer + .from(string, encoding) + .toString('base64') + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); } -exports.gte = gte -function gte (a, b, loose) { - return compare(a, b, loose) >= 0 +function jwsSecuredInput(header, payload, encoding) { + encoding = encoding || 'utf8'; + var encodedHeader = base64url(toString(header), 'binary'); + var encodedPayload = base64url(toString(payload), encoding); + return util.format('%s.%s', encodedHeader, encodedPayload); } -exports.lte = lte -function lte (a, b, loose) { - return compare(a, b, loose) <= 0 +function jwsSign(opts) { + var header = opts.header; + var payload = opts.payload; + var secretOrKey = opts.secret || opts.privateKey; + var encoding = opts.encoding; + var algo = jwa(header.alg); + var securedInput = jwsSecuredInput(header, payload, encoding); + var signature = algo.sign(securedInput, secretOrKey); + return util.format('%s.%s', securedInput, signature); } -exports.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 +function SignStream(opts) { + var secret = opts.secret||opts.privateKey||opts.key; + var secretStream = new DataStream(secret); + this.readable = true; + this.header = opts.header; + this.encoding = opts.encoding; + this.secret = this.privateKey = this.key = secretStream; + this.payload = new DataStream(opts.payload); + this.secret.once('close', function () { + if (!this.payload.writable && this.readable) + this.sign(); + }.bind(this)); - case '!==': - if (typeof a === 'object') - a = a.version - if (typeof b === 'object') - b = b.version - return a !== b + this.payload.once('close', function () { + if (!this.secret.writable && this.readable) + this.sign(); + }.bind(this)); +} +util.inherits(SignStream, Stream); - case '': - case '=': - case '==': - return eq(a, b, loose) +SignStream.prototype.sign = function sign() { + try { + var signature = jwsSign({ + header: this.header, + payload: this.payload.buffer, + secret: this.secret.buffer, + encoding: this.encoding + }); + this.emit('done', signature); + this.emit('data', signature); + this.emit('end'); + this.readable = false; + return signature; + } catch (e) { + this.readable = false; + this.emit('error', e); + this.emit('close'); + } +}; - case '!=': - return neq(a, b, loose) +SignStream.sign = jwsSign; - case '>': - return gt(a, b, loose) +module.exports = SignStream; - case '>=': - return gte(a, b, loose) - case '<': - return lt(a, b, loose) +/***/ }), - case '<=': - return lte(a, b, loose) +/***/ 5292: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - default: - throw new TypeError('Invalid operator: ' + op) - } -} +/*global module*/ +var Buffer = (__nccwpck_require__(4300).Buffer); -exports.Comparator = Comparator -function Comparator (comp, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } +module.exports = function toString(obj) { + if (typeof obj === 'string') + return obj; + if (typeof obj === 'number' || Buffer.isBuffer(obj)) + return obj.toString(); + return JSON.stringify(obj); +}; - 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(' ') - debug('comparator', comp, options) - this.options = options - this.loose = !!options.loose - this.parse(comp) +/***/ 5522: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (this.semver === ANY) { - this.value = '' - } else { - this.value = this.operator + this.semver.version - } +/*global module*/ +var Buffer = (__nccwpck_require__(1867).Buffer); +var DataStream = __nccwpck_require__(1868); +var jwa = __nccwpck_require__(6010); +var Stream = __nccwpck_require__(2781); +var toString = __nccwpck_require__(5292); +var util = __nccwpck_require__(3837); +var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/; - debug('comp', this) +function isObject(thing) { + return Object.prototype.toString.call(thing) === '[object Object]'; } -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) - } +function safeJsonParse(thing) { + if (isObject(thing)) + return thing; + try { return JSON.parse(thing); } + catch (e) { return undefined; } +} - this.operator = m[1] !== undefined ? m[1] : '' - if (this.operator === '=') { - this.operator = '' - } +function headerFromJWS(jwsSig) { + var encodedHeader = jwsSig.split('.', 1)[0]; + return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary')); +} - // if it literally is just '>' or '' then allow anything. - if (!m[2]) { - this.semver = ANY - } else { - this.semver = new SemVer(m[2], this.options.loose) - } +function securedInputFromJWS(jwsSig) { + return jwsSig.split('.', 2).join('.'); } -Comparator.prototype.toString = function () { - return this.value +function signatureFromJWS(jwsSig) { + return jwsSig.split('.')[2]; } -Comparator.prototype.test = function (version) { - debug('Comparator.test', version, this.options.loose) +function payloadFromJWS(jwsSig, encoding) { + encoding = encoding || 'utf8'; + var payload = jwsSig.split('.')[1]; + return Buffer.from(payload, 'base64').toString(encoding); +} - if (this.semver === ANY || version === ANY) { - return true - } +function isValidJws(string) { + return JWS_REGEX.test(string) && !!headerFromJWS(string); +} - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } +function jwsVerify(jwsSig, algorithm, secretOrKey) { + if (!algorithm) { + var err = new Error("Missing algorithm parameter for jws.verify"); + err.code = "MISSING_ALGORITHM"; + throw err; } - - return cmp(version, this.operator, this.semver, this.options) + jwsSig = toString(jwsSig); + var signature = signatureFromJWS(jwsSig); + var securedInput = securedInputFromJWS(jwsSig); + var algo = jwa(algorithm); + return algo.verify(securedInput, signature, secretOrKey); } -Comparator.prototype.intersects = function (comp, options) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required') - } +function jwsDecode(jwsSig, opts) { + opts = opts || {}; + jwsSig = toString(jwsSig); - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } + if (!isValidJws(jwsSig)) + return null; - var rangeTmp + var header = headerFromJWS(jwsSig); - if (this.operator === '') { - if (this.value === '') { - return true - } - rangeTmp = new Range(comp.value, options) - return satisfies(this.value, rangeTmp, options) - } else if (comp.operator === '') { - if (comp.value === '') { - return true - } - rangeTmp = new Range(this.value, options) - return satisfies(comp.semver, rangeTmp, options) - } + if (!header) + return null; - 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 === '>')) + var payload = payloadFromJWS(jwsSig); + if (header.typ === 'JWT' || opts.json) + payload = JSON.parse(payload, opts.encoding); - return sameDirectionIncreasing || sameDirectionDecreasing || - (sameSemVer && differentDirectionsInclusive) || - oppositeDirectionsLessThan || oppositeDirectionsGreaterThan + return { + header: header, + payload: payload, + signature: signatureFromJWS(jwsSig) + }; } -exports.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) - } - } +function VerifyStream(opts) { + opts = opts || {}; + var secretOrKey = opts.secret||opts.publicKey||opts.key; + var secretStream = new DataStream(secretOrKey); + this.readable = true; + this.algorithm = opts.algorithm; + this.encoding = opts.encoding; + this.secret = this.publicKey = this.key = secretStream; + this.signature = new DataStream(opts.signature); + this.secret.once('close', function () { + if (!this.signature.writable && this.readable) + this.verify(); + }.bind(this)); - if (range instanceof Comparator) { - return new Range(range.value, options) + this.signature.once('close', function () { + if (!this.secret.writable && this.readable) + this.verify(); + }.bind(this)); +} +util.inherits(VerifyStream, Stream); +VerifyStream.prototype.verify = function verify() { + try { + var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer); + var obj = jwsDecode(this.signature.buffer, this.encoding); + this.emit('done', valid, obj); + this.emit('data', valid); + this.emit('end'); + this.readable = false; + return valid; + } catch (e) { + this.readable = false; + this.emit('error', e); + this.emit('close'); } +}; - if (!(this instanceof Range)) { - return new Range(range, options) - } +VerifyStream.decode = jwsDecode; +VerifyStream.isValid = isValidJws; +VerifyStream.verify = jwsVerify; - this.options = options - this.loose = !!options.loose - this.includePrerelease = !!options.includePrerelease +module.exports = VerifyStream; - // First reduce all whitespace as much as possible so we do not have to rely - // on potentially slow regexes like \s*. This is then stored and used for - // future error messages as well. - this.raw = range - .trim() - .split(/\s+/) - .join(' ') - // First, split based on boolean or || - this.set = this.raw.split('||').map(function (range) { - return this.parseRange(range.trim()) - }, this).filter(function (c) { - // throw out any that are not relevant for whatever reason - return c.length - }) +/***/ }), - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + this.raw) - } +/***/ 7129: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - this.format() -} +"use strict"; -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 -} +// A linked list to keep track of recently-used-ness +const Yallist = __nccwpck_require__(665) -Range.prototype.parseRange = function (range) { - var loose = this.options.loose - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE] - range = range.replace(hr, hyphenReplace) - debug('hyphen replace', range) - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace) - debug('comparator trim', range, safeRe[t.COMPARATORTRIM]) +const MAX = Symbol('max') +const LENGTH = Symbol('length') +const LENGTH_CALCULATOR = Symbol('lengthCalculator') +const ALLOW_STALE = Symbol('allowStale') +const MAX_AGE = Symbol('maxAge') +const DISPOSE = Symbol('dispose') +const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') +const LRU_LIST = Symbol('lruList') +const CACHE = Symbol('cache') +const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') - // `~ 1.2.3` => `~1.2.3` - range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace) +const naiveLength = () => 1 - // `^ 1.2.3` => `^1.2.3` - range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace) +// lruList is a yallist where the head is the youngest +// item, and the tail is the oldest. the list contains the Hit +// objects as the entries. +// Each Hit object has a reference to its Yallist.Node. This +// never changes. +// +// cache is a Map (or PseudoMap) that matches the keys to +// the Yallist.Node object. +class LRUCache { + constructor (options) { + if (typeof options === 'number') + options = { max: options } - // normalize spaces - range = range.split(/\s+/).join(' ') + if (!options) + options = {} - // At this point, the range is completely trimmed and - // ready to be split into comparators. + if (options.max && (typeof options.max !== 'number' || options.max < 0)) + throw new TypeError('max must be a non-negative number') + // Kind of weird to have a default max of Infinity, but oh well. + const max = this[MAX] = options.max || Infinity - 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) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function (comp) { - return !!comp.match(compRe) - }) + const lc = options.length || naiveLength + this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc + this[ALLOW_STALE] = options.stale || false + if (options.maxAge && typeof options.maxAge !== 'number') + throw new TypeError('maxAge must be a number') + this[MAX_AGE] = options.maxAge || 0 + this[DISPOSE] = options.dispose + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false + this.reset() } - set = set.map(function (comp) { - return new Comparator(comp, this.options) - }, this) - return set -} + // resize the cache when the max changes. + set max (mL) { + if (typeof mL !== 'number' || mL < 0) + throw new TypeError('max must be a non-negative number') -Range.prototype.intersects = function (range, options) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required') + this[MAX] = mL || Infinity + trim(this) } - - 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) - }) - }) - ) - }) - ) - }) -} - -// take a set of comparators and determine whether there -// exists a version which can satisfy it -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() + get max () { + return this[MAX] } - return result -} + set allowStale (allowStale) { + this[ALLOW_STALE] = !!allowStale + } + get allowStale () { + return this[ALLOW_STALE] + } -// Mostly just for testing and legacy API reasons -exports.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(' ') - }) -} + set maxAge (mA) { + if (typeof mA !== 'number') + throw new TypeError('maxAge must be a non-negative number') -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator (comp, options) { - debug('comp', comp, options) - comp = replaceCarets(comp, options) - debug('caret', comp) - comp = replaceTildes(comp, options) - debug('tildes', comp) - comp = replaceXRanges(comp, options) - debug('xrange', comp) - comp = replaceStars(comp, options) - debug('stars', comp) - return comp -} + this[MAX_AGE] = mA + trim(this) + } + get maxAge () { + return this[MAX_AGE] + } -function isX (id) { - return !id || id.toLowerCase() === 'x' || id === '*' -} + // resize the cache when the lengthCalculator changes. + set lengthCalculator (lC) { + if (typeof lC !== 'function') + lC = naiveLength -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes (comp, options) { - return comp.trim().split(/\s+/).map(function (comp) { - return replaceTilde(comp, options) - }).join(' ') -} + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC + this[LENGTH] = 0 + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) + this[LENGTH] += hit.length + }) + } + trim(this) + } + get lengthCalculator () { return this[LENGTH_CALCULATOR] } -function replaceTilde (comp, options) { - var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE] - return comp.replace(r, function (_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr) - var ret + get length () { return this[LENGTH] } + get itemCount () { return this[LRU_LIST].length } - if (isX(M)) { - ret = '' - } else if (isX(m)) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' - } else if (isX(p)) { - // ~1.2 == >=1.2.0 <1.3.0 - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' - } else if (pr) { - debug('replaceTilde pr', pr) - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + - ' <' + M + '.' + (+m + 1) + '.0' - } else { - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0' + rforEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev + forEachStep(this, fn, walker, thisp) + walker = prev } + } - debug('tilde return', ret) - return ret - }) -} + forEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next + forEachStep(this, fn, walker, thisp) + walker = next + } + } -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets (comp, options) { - return comp.trim().split(/\s+/).map(function (comp) { - return replaceCaret(comp, options) - }).join(' ') -} + keys () { + return this[LRU_LIST].toArray().map(k => k.key) + } -function replaceCaret (comp, options) { - debug('caret', comp, options) - var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET] - return comp.replace(r, function (_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr) - var ret + values () { + return this[LRU_LIST].toArray().map(k => k.value) + } - 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) { - debug('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 { - debug('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' - } + reset () { + if (this[DISPOSE] && + this[LRU_LIST] && + this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) } - debug('caret return', ret) - return ret - }) -} + this[CACHE] = new Map() // hash of items by key + this[LRU_LIST] = new Yallist() // list of items in order of use recency + this[LENGTH] = 0 // length of items in the list + } -function replaceXRanges (comp, options) { - debug('replaceXRanges', comp, options) - return comp.split(/\s+/).map(function (comp) { - return replaceXRange(comp, options) - }).join(' ') -} + dump () { + return this[LRU_LIST].map(hit => + isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h) + } -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) { - debug('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 + dumpLru () { + return this[LRU_LIST] + } - if (gtlt === '=' && anyX) { - gtlt = '' - } + set (key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE] - // if we're including prereleases in the match, then we need - // to fix this to -0, the lowest possible prerelease value - pr = options.includePrerelease ? '-0' : '' + if (maxAge && typeof maxAge !== 'number') + throw new TypeError('maxAge must be a number') - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0-0' - } else { - // nothing is forbidden - ret = '*' - } - } else if (gtlt && anyX) { - // we know patch is an x, because we have any x at all. - // replace X with 0 - if (xm) { - m = 0 - } - p = 0 + const now = maxAge ? Date.now() : 0 + const len = this[LENGTH_CALCULATOR](value, key) - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>=' - if (xm) { - M = +M + 1 - m = 0 - p = 0 - } else { - m = +m + 1 - p = 0 - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) { - M = +M + 1 - } else { - m = +m + 1 - } + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)) + return false } - 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 - } + const node = this[CACHE].get(key) + const item = node.value - debug('xRange return', ret) + // dispose of the old one before overwriting + // split out into 2 ifs for better coverage tracking + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) + this[DISPOSE](key, item.value) + } - return ret - }) -} + item.now = now + item.maxAge = maxAge + item.value = value + this[LENGTH] += len - item.length + item.length = len + this.get(key) + trim(this) + return true + } -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars (comp, options) { - debug('replaceStars', comp, options) - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(safeRe[t.STAR], '') -} + const hit = new Entry(key, value, len, now, maxAge) -// This function is passed to string.replace(re[t.HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -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 - } + // oversized objects fall out of cache automatically. + if (hit.length > this[MAX]) { + if (this[DISPOSE]) + this[DISPOSE](key, value) - 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 false + } + + this[LENGTH] += hit.length + this[LRU_LIST].unshift(hit) + this[CACHE].set(key, this[LRU_LIST].head) + trim(this) + return true } - return (from + ' ' + to).trim() -} + has (key) { + if (!this[CACHE].has(key)) return false + const hit = this[CACHE].get(key).value + return !isStale(this, hit) + } -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function (version) { - if (!version) { - return false + get (key) { + return get(this, key, true) } - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } + peek (key) { + return get(this, key, false) } - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version, this.options)) { - return true - } + pop () { + const node = this[LRU_LIST].tail + if (!node) + return null + + del(this, node) + return node.value } - return false -} -function testSet (set, version, options) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) { - return false - } + del (key) { + del(this, this[CACHE].get(key)) } - if (version.prerelease.length && !options.includePrerelease) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (i = 0; i < set.length; i++) { - debug(set[i].semver) - if (set[i].semver === ANY) { - continue - } + load (arr) { + // reset the cache + this.reset() - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) { - return true + const now = Date.now() + // A previous serialized cache has the most recent items first + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l] + const expiresAt = hit.e || 0 + if (expiresAt === 0) + // the item was created without expiration in a non aged cache + this.set(hit.k, hit.v) + else { + const maxAge = expiresAt - now + // dont add already expired items + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge) } } } - - // Version has a -pre, but it's not one of the ones we like. - return false } - return true -} - -exports.satisfies = satisfies -function satisfies (version, range, options) { - try { - range = new Range(range, options) - } catch (er) { - return false + prune () { + this[CACHE].forEach((value, key) => get(this, key, false)) } - return range.test(version) } -exports.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)) { - // satisfies(v, range, options) - if (!max || maxSV.compare(v) === -1) { - // compare(max, v, true) - max = v - maxSV = new SemVer(max, options) +const get = (self, key, doUse) => { + const node = self[CACHE].get(key) + if (node) { + const hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + return undefined + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) + node.value.now = Date.now() + self[LRU_LIST].unshiftNode(node) } } - }) - return max -} - -exports.minSatisfying = minSatisfying -function minSatisfying (versions, range, options) { - var min = null - var minSV = null - try { - var rangeObj = new Range(range, options) - } catch (er) { - return null + return hit.value } - versions.forEach(function (v) { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!min || minSV.compare(v) === 1) { - // compare(min, v, true) - min = v - minSV = new SemVer(min, options) - } - } - }) - return min } -exports.minVersion = minVersion -function minVersion (range, loose) { - range = new Range(range, loose) +const isStale = (self, hit) => { + if (!hit || (!hit.maxAge && !self[MAX_AGE])) + return false - var minver = new SemVer('0.0.0') - if (range.test(minver)) { - return minver - } + const diff = Date.now() - hit.now + return hit.maxAge ? diff > hit.maxAge + : self[MAX_AGE] && (diff > self[MAX_AGE]) +} - minver = new SemVer('0.0.0-0') - if (range.test(minver)) { - return minver +const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; + self[LENGTH] > self[MAX] && walker !== null;) { + // We know that we're about to delete this one, and also + // what the next least recently used key will be, so just + // go ahead and set it now. + const prev = walker.prev + del(self, walker) + walker = prev + } } +} - minver = null - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i] +const del = (self, node) => { + if (node) { + const hit = node.value + if (self[DISPOSE]) + self[DISPOSE](hit.key, hit.value) - comparators.forEach(function (comparator) { - // Clone to avoid manipulating the comparator's semver object. - 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 || gt(minver, compver)) { - minver = compver - } - break - case '<': - case '<=': - /* Ignore maximum versions */ - break - /* istanbul ignore next */ - default: - throw new Error('Unexpected operation: ' + comparator.operator) - } - }) + self[LENGTH] -= hit.length + self[CACHE].delete(hit.key) + self[LRU_LIST].removeNode(node) } +} - if (minver && range.test(minver)) { - return minver +class Entry { + constructor (key, value, length, now, maxAge) { + this.key = key + this.value = value + this.length = length + this.now = now + this.maxAge = maxAge || 0 } - - return null } -exports.validRange = validRange -function validRange (range, options) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, options).range || '*' - } catch (er) { - return null +const forEachStep = (self, fn, node, thisp) => { + let hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + hit = undefined } + if (hit) + fn.call(thisp, hit.value, hit.key, self) } -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr -function ltr (version, range, options) { - return outside(version, range, '<', options) -} +module.exports = LRUCache -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr -function gtr (version, range, options) { - return outside(version, range, '>', options) -} -exports.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 = gt - ltefn = lte - ltfn = lt - comp = '>' - ecomp = '>=' - break - case '<': - gtfn = lt - ltefn = gte - ltfn = gt - comp = '<' - ecomp = '<=' - break - default: - throw new TypeError('Must provide a hilo val of "<" or ">"') - } +/***/ 9126: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - // If it satisifes the range it is not outside - if (satisfies(version, range, options)) { - return false - } +"use strict"; - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. +const fs = __nccwpck_require__(7147); +const path = __nccwpck_require__(1017); +const {promisify} = __nccwpck_require__(3837); +const semver = __nccwpck_require__(5911); - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i] +const useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0'); - var high = null - var low = null +// https://github.com/nodejs/node/issues/8987 +// https://github.com/libuv/libuv/pull/1088 +const checkPath = pth => { + if (process.platform === 'win32') { + const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, '')); - 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 (pathHasInvalidWinCharacters) { + const error = new Error(`Path contains invalid characters: ${pth}`); + error.code = 'EINVAL'; + throw error; + } + } +}; - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false - } +const processOptions = options => { + // https://github.com/sindresorhus/make-dir/issues/18 + const defaults = { + mode: 0o777, + fs + }; - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - 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 -} + return { + ...defaults, + ...options + }; +}; -exports.prerelease = prerelease -function prerelease (version, options) { - var parsed = parse(version, options) - return (parsed && parsed.prerelease.length) ? parsed.prerelease : null -} +const permissionError = pth => { + // This replicates the exception of `fs.mkdir` with native the + // `recusive` option when run on an invalid drive under Windows. + const error = new Error(`operation not permitted, mkdir '${pth}'`); + error.code = 'EPERM'; + error.errno = -4048; + error.path = pth; + error.syscall = 'mkdir'; + return error; +}; -exports.intersects = intersects -function intersects (r1, r2, options) { - r1 = new Range(r1, options) - r2 = new Range(r2, options) - return r1.intersects(r2) -} +const makeDir = async (input, options) => { + checkPath(input); + options = processOptions(options); -exports.coerce = coerce -function coerce (version, options) { - if (version instanceof SemVer) { - return version - } + const mkdir = promisify(options.fs.mkdir); + const stat = promisify(options.fs.stat); - if (typeof version === 'number') { - version = String(version) - } + if (useNativeRecursiveOption && options.fs.mkdir === fs.mkdir) { + const pth = path.resolve(input); - if (typeof version !== 'string') { - return null - } + await mkdir(pth, { + mode: options.mode, + recursive: true + }); - options = options || {} + return pth; + } - var match = null - if (!options.rtl) { - match = version.match(safeRe[t.COERCE]) - } else { - // Find the right-most coercible string that does not share - // a terminus with a more left-ward coercible string. - // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' - // - // Walk through the string checking with a /g regexp - // Manually set the index so as to pick up overlapping matches. - // Stop when we get a match that ends at the string end, since no - // coercible string can be more right-ward without the same terminus. - 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 - } - // leave it in a clean state - safeRe[t.COERCERTL].lastIndex = -1 - } + const make = async pth => { + try { + await mkdir(pth, options.mode); - if (match === null) { - return null - } + return pth; + } catch (error) { + if (error.code === 'EPERM') { + throw error; + } - return parse(match[2] + - '.' + (match[3] || '0') + - '.' + (match[4] || '0'), options) -} + if (error.code === 'ENOENT') { + if (path.dirname(pth) === pth) { + throw permissionError(pth); + } + + if (error.message.includes('null bytes')) { + throw error; + } + + await make(path.dirname(pth)); + + return make(pth); + } + + try { + const stats = await stat(pth); + if (!stats.isDirectory()) { + throw new Error('The path is not a directory'); + } + } catch (_) { + throw error; + } + + return pth; + } + }; + + return make(path.resolve(input)); +}; + +module.exports = makeDir; + +module.exports.sync = (input, options) => { + checkPath(input); + options = processOptions(options); + + if (useNativeRecursiveOption && options.fs.mkdirSync === fs.mkdirSync) { + const pth = path.resolve(input); + + fs.mkdirSync(pth, { + mode: options.mode, + recursive: true + }); + + return pth; + } + + const make = pth => { + try { + options.fs.mkdirSync(pth, options.mode); + } catch (error) { + if (error.code === 'EPERM') { + throw error; + } + + if (error.code === 'ENOENT') { + if (path.dirname(pth) === pth) { + throw permissionError(pth); + } + + if (error.message.includes('null bytes')) { + throw error; + } + + make(path.dirname(pth)); + return make(pth); + } + + try { + if (!options.fs.statSync(pth).isDirectory()) { + throw new Error('The path is not a directory'); + } + } catch (_) { + throw error; + } + } + + return pth; + }; + + return make(path.resolve(input)); +}; /***/ }), @@ -47704,10 +46240,10 @@ micromatch.not = (list, patterns, options = {}) => { items.push(state.output); }; - let matches = new Set(micromatch(list, patterns, { ...options, onResult })); + let matches = micromatch(list, patterns, { ...options, onResult }); for (let item of items) { - if (!matches.has(item)) { + if (!matches.includes(item)) { result.add(item); } } @@ -47957,7 +46493,7 @@ micromatch.scan = (...args) => picomatch.scan(...args); * * ```js * const mm = require('micromatch'); - * const state = mm.parse(pattern[, options]); + * const state = mm(pattern[, options]); * ``` * @param {String} `glob` * @param {Object} `options` @@ -65637,7 +64173,401 @@ sha256.create = function() { // true message length fullMessageLength: null, // size of message length in bytes - messageLengthSize: 8 + messageLengthSize: 8 + }; + + /** + * Starts the digest. + * + * @return this digest object. + */ + md.start = function() { + // up to 56-bit message length for convenience + md.messageLength = 0; + + // full message length (set md.messageLength64 for backwards-compatibility) + md.fullMessageLength = md.messageLength64 = []; + var int32s = md.messageLengthSize / 4; + for(var i = 0; i < int32s; ++i) { + md.fullMessageLength.push(0); + } + _input = forge.util.createBuffer(); + _state = { + h0: 0x6A09E667, + h1: 0xBB67AE85, + h2: 0x3C6EF372, + h3: 0xA54FF53A, + h4: 0x510E527F, + h5: 0x9B05688C, + h6: 0x1F83D9AB, + h7: 0x5BE0CD19 + }; + return md; + }; + // start digest automatically for first time + md.start(); + + /** + * Updates the digest with the given message input. The given input can + * treated as raw input (no encoding will be applied) or an encoding of + * 'utf8' maybe given to encode the input using UTF-8. + * + * @param msg the message input to update with. + * @param encoding the encoding to use (default: 'raw', other: 'utf8'). + * + * @return this digest object. + */ + md.update = function(msg, encoding) { + if(encoding === 'utf8') { + msg = forge.util.encodeUtf8(msg); + } + + // update message length + var len = msg.length; + md.messageLength += len; + len = [(len / 0x100000000) >>> 0, len >>> 0]; + for(var i = md.fullMessageLength.length - 1; i >= 0; --i) { + md.fullMessageLength[i] += len[1]; + len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0); + md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0; + len[0] = ((len[1] / 0x100000000) >>> 0); + } + + // add bytes to input buffer + _input.putBytes(msg); + + // process bytes + _update(_state, _w, _input); + + // compact input buffer every 2K or if empty + if(_input.read > 2048 || _input.length() === 0) { + _input.compact(); + } + + return md; + }; + + /** + * Produces the digest. + * + * @return a byte buffer containing the digest value. + */ + md.digest = function() { + /* Note: Here we copy the remaining bytes in the input buffer and + add the appropriate SHA-256 padding. Then we do the final update + on a copy of the state so that if the user wants to get + intermediate digests they can do so. */ + + /* Determine the number of bytes that must be added to the message + to ensure its length is congruent to 448 mod 512. In other words, + the data to be digested must be a multiple of 512 bits (or 128 bytes). + This data includes the message, some padding, and the length of the + message. Since the length of the message will be encoded as 8 bytes (64 + bits), that means that the last segment of the data must have 56 bytes + (448 bits) of message and padding. Therefore, the length of the message + plus the padding must be congruent to 448 mod 512 because + 512 - 128 = 448. + + In order to fill up the message length it must be filled with + padding that begins with 1 bit followed by all 0 bits. Padding + must *always* be present, so if the message length is already + congruent to 448 mod 512, then 512 padding bits must be added. */ + + var finalBlock = forge.util.createBuffer(); + finalBlock.putBytes(_input.bytes()); + + // compute remaining size to be digested (include message length size) + var remaining = ( + md.fullMessageLength[md.fullMessageLength.length - 1] + + md.messageLengthSize); + + // add padding for overflow blockSize - overflow + // _padding starts with 1 byte with first bit is set (byte value 128), then + // there may be up to (blockSize - 1) other pad bytes + var overflow = remaining & (md.blockLength - 1); + finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow)); + + // serialize message length in bits in big-endian order; since length + // is stored in bytes we multiply by 8 and add carry from next int + var next, carry; + var bits = md.fullMessageLength[0] * 8; + for(var i = 0; i < md.fullMessageLength.length - 1; ++i) { + next = md.fullMessageLength[i + 1] * 8; + carry = (next / 0x100000000) >>> 0; + bits += carry; + finalBlock.putInt32(bits >>> 0); + bits = next >>> 0; + } + finalBlock.putInt32(bits); + + var s2 = { + h0: _state.h0, + h1: _state.h1, + h2: _state.h2, + h3: _state.h3, + h4: _state.h4, + h5: _state.h5, + h6: _state.h6, + h7: _state.h7 + }; + _update(s2, _w, finalBlock); + var rval = forge.util.createBuffer(); + rval.putInt32(s2.h0); + rval.putInt32(s2.h1); + rval.putInt32(s2.h2); + rval.putInt32(s2.h3); + rval.putInt32(s2.h4); + rval.putInt32(s2.h5); + rval.putInt32(s2.h6); + rval.putInt32(s2.h7); + return rval; + }; + + return md; +}; + +// sha-256 padding bytes not initialized yet +var _padding = null; +var _initialized = false; + +// table of constants +var _k = null; + +/** + * Initializes the constant tables. + */ +function _init() { + // create padding + _padding = String.fromCharCode(128); + _padding += forge.util.fillString(String.fromCharCode(0x00), 64); + + // create K table for SHA-256 + _k = [ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]; + + // now initialized + _initialized = true; +} + +/** + * Updates a SHA-256 state with the given byte buffer. + * + * @param s the SHA-256 state to update. + * @param w the array to use to store words. + * @param bytes the byte buffer to update with. + */ +function _update(s, w, bytes) { + // consume 512 bit (64 byte) chunks + var t1, t2, s0, s1, ch, maj, i, a, b, c, d, e, f, g, h; + var len = bytes.length(); + while(len >= 64) { + // the w array will be populated with sixteen 32-bit big-endian words + // and then extended into 64 32-bit words according to SHA-256 + for(i = 0; i < 16; ++i) { + w[i] = bytes.getInt32(); + } + for(; i < 64; ++i) { + // XOR word 2 words ago rot right 17, rot right 19, shft right 10 + t1 = w[i - 2]; + t1 = + ((t1 >>> 17) | (t1 << 15)) ^ + ((t1 >>> 19) | (t1 << 13)) ^ + (t1 >>> 10); + // XOR word 15 words ago rot right 7, rot right 18, shft right 3 + t2 = w[i - 15]; + t2 = + ((t2 >>> 7) | (t2 << 25)) ^ + ((t2 >>> 18) | (t2 << 14)) ^ + (t2 >>> 3); + // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^32 + w[i] = (t1 + w[i - 7] + t2 + w[i - 16]) | 0; + } + + // initialize hash value for this chunk + a = s.h0; + b = s.h1; + c = s.h2; + d = s.h3; + e = s.h4; + f = s.h5; + g = s.h6; + h = s.h7; + + // round function + for(i = 0; i < 64; ++i) { + // Sum1(e) + s1 = + ((e >>> 6) | (e << 26)) ^ + ((e >>> 11) | (e << 21)) ^ + ((e >>> 25) | (e << 7)); + // Ch(e, f, g) (optimized the same way as SHA-1) + ch = g ^ (e & (f ^ g)); + // Sum0(a) + s0 = + ((a >>> 2) | (a << 30)) ^ + ((a >>> 13) | (a << 19)) ^ + ((a >>> 22) | (a << 10)); + // Maj(a, b, c) (optimized the same way as SHA-1) + maj = (a & b) | (c & (a ^ b)); + + // main algorithm + t1 = h + s1 + ch + _k[i] + w[i]; + t2 = s0 + maj; + h = g; + g = f; + f = e; + // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug + // can't truncate with `| 0` + e = (d + t1) >>> 0; + d = c; + c = b; + b = a; + // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug + // can't truncate with `| 0` + a = (t1 + t2) >>> 0; + } + + // update hash state + s.h0 = (s.h0 + a) | 0; + s.h1 = (s.h1 + b) | 0; + s.h2 = (s.h2 + c) | 0; + s.h3 = (s.h3 + d) | 0; + s.h4 = (s.h4 + e) | 0; + s.h5 = (s.h5 + f) | 0; + s.h6 = (s.h6 + g) | 0; + s.h7 = (s.h7 + h) | 0; + len -= 64; + } +} + + +/***/ }), + +/***/ 9542: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/** + * Secure Hash Algorithm with a 1024-bit block size implementation. + * + * This includes: SHA-512, SHA-384, SHA-512/224, and SHA-512/256. For + * SHA-256 (block size 512 bits), see sha256.js. + * + * See FIPS 180-4 for details. + * + * @author Dave Longley + * + * Copyright (c) 2014-2015 Digital Bazaar, Inc. + */ +var forge = __nccwpck_require__(9177); +__nccwpck_require__(6231); +__nccwpck_require__(8339); + +var sha512 = module.exports = forge.sha512 = forge.sha512 || {}; + +// SHA-512 +forge.md.sha512 = forge.md.algorithms.sha512 = sha512; + +// SHA-384 +var sha384 = forge.sha384 = forge.sha512.sha384 = forge.sha512.sha384 || {}; +sha384.create = function() { + return sha512.create('SHA-384'); +}; +forge.md.sha384 = forge.md.algorithms.sha384 = sha384; + +// SHA-512/256 +forge.sha512.sha256 = forge.sha512.sha256 || { + create: function() { + return sha512.create('SHA-512/256'); + } +}; +forge.md['sha512/256'] = forge.md.algorithms['sha512/256'] = + forge.sha512.sha256; + +// SHA-512/224 +forge.sha512.sha224 = forge.sha512.sha224 || { + create: function() { + return sha512.create('SHA-512/224'); + } +}; +forge.md['sha512/224'] = forge.md.algorithms['sha512/224'] = + forge.sha512.sha224; + +/** + * Creates a SHA-2 message digest object. + * + * @param algorithm the algorithm to use (SHA-512, SHA-384, SHA-512/224, + * SHA-512/256). + * + * @return a message digest object. + */ +sha512.create = function(algorithm) { + // do initialization as necessary + if(!_initialized) { + _init(); + } + + if(typeof algorithm === 'undefined') { + algorithm = 'SHA-512'; + } + + if(!(algorithm in _states)) { + throw new Error('Invalid SHA-512 algorithm: ' + algorithm); + } + + // SHA-512 state contains eight 64-bit integers (each as two 32-bit ints) + var _state = _states[algorithm]; + var _h = null; + + // input buffer + var _input = forge.util.createBuffer(); + + // used for 64-bit word storage + var _w = new Array(80); + for(var wi = 0; wi < 80; ++wi) { + _w[wi] = new Array(2); + } + + // determine digest length by algorithm name (default) + var digestLength = 64; + switch(algorithm) { + case 'SHA-384': + digestLength = 48; + break; + case 'SHA-512/256': + digestLength = 32; + break; + case 'SHA-512/224': + digestLength = 28; + break; + } + + // message digest object + var md = { + // SHA-512 => sha512 + algorithm: algorithm.replace('-', '').toLowerCase(), + blockLength: 128, + digestLength: digestLength, + // 56-bit length of message so far (does not including padding) + messageLength: 0, + // true message length + fullMessageLength: null, + // size of message length in bytes + messageLengthSize: 16 }; /** @@ -65649,23 +64579,17 @@ sha256.create = function() { // up to 56-bit message length for convenience md.messageLength = 0; - // full message length (set md.messageLength64 for backwards-compatibility) - md.fullMessageLength = md.messageLength64 = []; + // full message length (set md.messageLength128 for backwards-compatibility) + md.fullMessageLength = md.messageLength128 = []; var int32s = md.messageLengthSize / 4; for(var i = 0; i < int32s; ++i) { md.fullMessageLength.push(0); } _input = forge.util.createBuffer(); - _state = { - h0: 0x6A09E667, - h1: 0xBB67AE85, - h2: 0x3C6EF372, - h3: 0xA54FF53A, - h4: 0x510E527F, - h5: 0x9B05688C, - h6: 0x1F83D9AB, - h7: 0x5BE0CD19 - }; + _h = new Array(_state.length); + for(var i = 0; i < _state.length; ++i) { + _h[i] = _state[i].slice(0); + } return md; }; // start digest automatically for first time @@ -65701,7 +64625,7 @@ sha256.create = function() { _input.putBytes(msg); // process bytes - _update(_state, _w, _input); + _update(_h, _w, _input); // compact input buffer every 2K or if empty if(_input.read > 2048 || _input.length() === 0) { @@ -65718,24 +64642,24 @@ sha256.create = function() { */ md.digest = function() { /* Note: Here we copy the remaining bytes in the input buffer and - add the appropriate SHA-256 padding. Then we do the final update + add the appropriate SHA-512 padding. Then we do the final update on a copy of the state so that if the user wants to get intermediate digests they can do so. */ /* Determine the number of bytes that must be added to the message - to ensure its length is congruent to 448 mod 512. In other words, - the data to be digested must be a multiple of 512 bits (or 128 bytes). + to ensure its length is congruent to 896 mod 1024. In other words, + the data to be digested must be a multiple of 1024 bits (or 128 bytes). This data includes the message, some padding, and the length of the - message. Since the length of the message will be encoded as 8 bytes (64 - bits), that means that the last segment of the data must have 56 bytes - (448 bits) of message and padding. Therefore, the length of the message - plus the padding must be congruent to 448 mod 512 because - 512 - 128 = 448. + message. Since the length of the message will be encoded as 16 bytes (128 + bits), that means that the last segment of the data must have 112 bytes + (896 bits) of message and padding. Therefore, the length of the message + plus the padding must be congruent to 896 mod 1024 because + 1024 - 128 = 896. In order to fill up the message length it must be filled with padding that begins with 1 bit followed by all 0 bits. Padding must *always* be present, so if the message length is already - congruent to 448 mod 512, then 512 padding bits must be added. */ + congruent to 896 mod 1024, then 1024 padding bits must be added. */ var finalBlock = forge.util.createBuffer(); finalBlock.putBytes(_input.bytes()); @@ -65764,13912 +64688,14694 @@ sha256.create = function() { } finalBlock.putInt32(bits); - var s2 = { - h0: _state.h0, - h1: _state.h1, - h2: _state.h2, - h3: _state.h3, - h4: _state.h4, - h5: _state.h5, - h6: _state.h6, - h7: _state.h7 - }; - _update(s2, _w, finalBlock); + var h = new Array(_h.length); + for(var i = 0; i < _h.length; ++i) { + h[i] = _h[i].slice(0); + } + _update(h, _w, finalBlock); var rval = forge.util.createBuffer(); - rval.putInt32(s2.h0); - rval.putInt32(s2.h1); - rval.putInt32(s2.h2); - rval.putInt32(s2.h3); - rval.putInt32(s2.h4); - rval.putInt32(s2.h5); - rval.putInt32(s2.h6); - rval.putInt32(s2.h7); + var hlen; + if(algorithm === 'SHA-512') { + hlen = h.length; + } else if(algorithm === 'SHA-384') { + hlen = h.length - 2; + } else { + hlen = h.length - 4; + } + for(var i = 0; i < hlen; ++i) { + rval.putInt32(h[i][0]); + if(i !== hlen - 1 || algorithm !== 'SHA-512/224') { + rval.putInt32(h[i][1]); + } + } return rval; }; - return md; + return md; +}; + +// sha-512 padding bytes not initialized yet +var _padding = null; +var _initialized = false; + +// table of constants +var _k = null; + +// initial hash states +var _states = null; + +/** + * Initializes the constant tables. + */ +function _init() { + // create padding + _padding = String.fromCharCode(128); + _padding += forge.util.fillString(String.fromCharCode(0x00), 128); + + // create K table for SHA-512 + _k = [ + [0x428a2f98, 0xd728ae22], [0x71374491, 0x23ef65cd], + [0xb5c0fbcf, 0xec4d3b2f], [0xe9b5dba5, 0x8189dbbc], + [0x3956c25b, 0xf348b538], [0x59f111f1, 0xb605d019], + [0x923f82a4, 0xaf194f9b], [0xab1c5ed5, 0xda6d8118], + [0xd807aa98, 0xa3030242], [0x12835b01, 0x45706fbe], + [0x243185be, 0x4ee4b28c], [0x550c7dc3, 0xd5ffb4e2], + [0x72be5d74, 0xf27b896f], [0x80deb1fe, 0x3b1696b1], + [0x9bdc06a7, 0x25c71235], [0xc19bf174, 0xcf692694], + [0xe49b69c1, 0x9ef14ad2], [0xefbe4786, 0x384f25e3], + [0x0fc19dc6, 0x8b8cd5b5], [0x240ca1cc, 0x77ac9c65], + [0x2de92c6f, 0x592b0275], [0x4a7484aa, 0x6ea6e483], + [0x5cb0a9dc, 0xbd41fbd4], [0x76f988da, 0x831153b5], + [0x983e5152, 0xee66dfab], [0xa831c66d, 0x2db43210], + [0xb00327c8, 0x98fb213f], [0xbf597fc7, 0xbeef0ee4], + [0xc6e00bf3, 0x3da88fc2], [0xd5a79147, 0x930aa725], + [0x06ca6351, 0xe003826f], [0x14292967, 0x0a0e6e70], + [0x27b70a85, 0x46d22ffc], [0x2e1b2138, 0x5c26c926], + [0x4d2c6dfc, 0x5ac42aed], [0x53380d13, 0x9d95b3df], + [0x650a7354, 0x8baf63de], [0x766a0abb, 0x3c77b2a8], + [0x81c2c92e, 0x47edaee6], [0x92722c85, 0x1482353b], + [0xa2bfe8a1, 0x4cf10364], [0xa81a664b, 0xbc423001], + [0xc24b8b70, 0xd0f89791], [0xc76c51a3, 0x0654be30], + [0xd192e819, 0xd6ef5218], [0xd6990624, 0x5565a910], + [0xf40e3585, 0x5771202a], [0x106aa070, 0x32bbd1b8], + [0x19a4c116, 0xb8d2d0c8], [0x1e376c08, 0x5141ab53], + [0x2748774c, 0xdf8eeb99], [0x34b0bcb5, 0xe19b48a8], + [0x391c0cb3, 0xc5c95a63], [0x4ed8aa4a, 0xe3418acb], + [0x5b9cca4f, 0x7763e373], [0x682e6ff3, 0xd6b2b8a3], + [0x748f82ee, 0x5defb2fc], [0x78a5636f, 0x43172f60], + [0x84c87814, 0xa1f0ab72], [0x8cc70208, 0x1a6439ec], + [0x90befffa, 0x23631e28], [0xa4506ceb, 0xde82bde9], + [0xbef9a3f7, 0xb2c67915], [0xc67178f2, 0xe372532b], + [0xca273ece, 0xea26619c], [0xd186b8c7, 0x21c0c207], + [0xeada7dd6, 0xcde0eb1e], [0xf57d4f7f, 0xee6ed178], + [0x06f067aa, 0x72176fba], [0x0a637dc5, 0xa2c898a6], + [0x113f9804, 0xbef90dae], [0x1b710b35, 0x131c471b], + [0x28db77f5, 0x23047d84], [0x32caab7b, 0x40c72493], + [0x3c9ebe0a, 0x15c9bebc], [0x431d67c4, 0x9c100d4c], + [0x4cc5d4be, 0xcb3e42b6], [0x597f299c, 0xfc657e2a], + [0x5fcb6fab, 0x3ad6faec], [0x6c44198c, 0x4a475817] + ]; + + // initial hash states + _states = {}; + _states['SHA-512'] = [ + [0x6a09e667, 0xf3bcc908], + [0xbb67ae85, 0x84caa73b], + [0x3c6ef372, 0xfe94f82b], + [0xa54ff53a, 0x5f1d36f1], + [0x510e527f, 0xade682d1], + [0x9b05688c, 0x2b3e6c1f], + [0x1f83d9ab, 0xfb41bd6b], + [0x5be0cd19, 0x137e2179] + ]; + _states['SHA-384'] = [ + [0xcbbb9d5d, 0xc1059ed8], + [0x629a292a, 0x367cd507], + [0x9159015a, 0x3070dd17], + [0x152fecd8, 0xf70e5939], + [0x67332667, 0xffc00b31], + [0x8eb44a87, 0x68581511], + [0xdb0c2e0d, 0x64f98fa7], + [0x47b5481d, 0xbefa4fa4] + ]; + _states['SHA-512/256'] = [ + [0x22312194, 0xFC2BF72C], + [0x9F555FA3, 0xC84C64C2], + [0x2393B86B, 0x6F53B151], + [0x96387719, 0x5940EABD], + [0x96283EE2, 0xA88EFFE3], + [0xBE5E1E25, 0x53863992], + [0x2B0199FC, 0x2C85B8AA], + [0x0EB72DDC, 0x81C52CA2] + ]; + _states['SHA-512/224'] = [ + [0x8C3D37C8, 0x19544DA2], + [0x73E19966, 0x89DCD4D6], + [0x1DFAB7AE, 0x32FF9C82], + [0x679DD514, 0x582F9FCF], + [0x0F6D2B69, 0x7BD44DA8], + [0x77E36F73, 0x04C48942], + [0x3F9D85A8, 0x6A1D36C8], + [0x1112E6AD, 0x91D692A1] + ]; + + // now initialized + _initialized = true; +} + +/** + * Updates a SHA-512 state with the given byte buffer. + * + * @param s the SHA-512 state to update. + * @param w the array to use to store words. + * @param bytes the byte buffer to update with. + */ +function _update(s, w, bytes) { + // consume 512 bit (128 byte) chunks + var t1_hi, t1_lo; + var t2_hi, t2_lo; + var s0_hi, s0_lo; + var s1_hi, s1_lo; + var ch_hi, ch_lo; + var maj_hi, maj_lo; + var a_hi, a_lo; + var b_hi, b_lo; + var c_hi, c_lo; + var d_hi, d_lo; + var e_hi, e_lo; + var f_hi, f_lo; + var g_hi, g_lo; + var h_hi, h_lo; + var i, hi, lo, w2, w7, w15, w16; + var len = bytes.length(); + while(len >= 128) { + // the w array will be populated with sixteen 64-bit big-endian words + // and then extended into 64 64-bit words according to SHA-512 + for(i = 0; i < 16; ++i) { + w[i][0] = bytes.getInt32() >>> 0; + w[i][1] = bytes.getInt32() >>> 0; + } + for(; i < 80; ++i) { + // for word 2 words ago: ROTR 19(x) ^ ROTR 61(x) ^ SHR 6(x) + w2 = w[i - 2]; + hi = w2[0]; + lo = w2[1]; + + // high bits + t1_hi = ( + ((hi >>> 19) | (lo << 13)) ^ // ROTR 19 + ((lo >>> 29) | (hi << 3)) ^ // ROTR 61/(swap + ROTR 29) + (hi >>> 6)) >>> 0; // SHR 6 + // low bits + t1_lo = ( + ((hi << 13) | (lo >>> 19)) ^ // ROTR 19 + ((lo << 3) | (hi >>> 29)) ^ // ROTR 61/(swap + ROTR 29) + ((hi << 26) | (lo >>> 6))) >>> 0; // SHR 6 + + // for word 15 words ago: ROTR 1(x) ^ ROTR 8(x) ^ SHR 7(x) + w15 = w[i - 15]; + hi = w15[0]; + lo = w15[1]; + + // high bits + t2_hi = ( + ((hi >>> 1) | (lo << 31)) ^ // ROTR 1 + ((hi >>> 8) | (lo << 24)) ^ // ROTR 8 + (hi >>> 7)) >>> 0; // SHR 7 + // low bits + t2_lo = ( + ((hi << 31) | (lo >>> 1)) ^ // ROTR 1 + ((hi << 24) | (lo >>> 8)) ^ // ROTR 8 + ((hi << 25) | (lo >>> 7))) >>> 0; // SHR 7 + + // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^64 (carry lo overflow) + w7 = w[i - 7]; + w16 = w[i - 16]; + lo = (t1_lo + w7[1] + t2_lo + w16[1]); + w[i][0] = (t1_hi + w7[0] + t2_hi + w16[0] + + ((lo / 0x100000000) >>> 0)) >>> 0; + w[i][1] = lo >>> 0; + } + + // initialize hash value for this chunk + a_hi = s[0][0]; + a_lo = s[0][1]; + b_hi = s[1][0]; + b_lo = s[1][1]; + c_hi = s[2][0]; + c_lo = s[2][1]; + d_hi = s[3][0]; + d_lo = s[3][1]; + e_hi = s[4][0]; + e_lo = s[4][1]; + f_hi = s[5][0]; + f_lo = s[5][1]; + g_hi = s[6][0]; + g_lo = s[6][1]; + h_hi = s[7][0]; + h_lo = s[7][1]; + + // round function + for(i = 0; i < 80; ++i) { + // Sum1(e) = ROTR 14(e) ^ ROTR 18(e) ^ ROTR 41(e) + s1_hi = ( + ((e_hi >>> 14) | (e_lo << 18)) ^ // ROTR 14 + ((e_hi >>> 18) | (e_lo << 14)) ^ // ROTR 18 + ((e_lo >>> 9) | (e_hi << 23))) >>> 0; // ROTR 41/(swap + ROTR 9) + s1_lo = ( + ((e_hi << 18) | (e_lo >>> 14)) ^ // ROTR 14 + ((e_hi << 14) | (e_lo >>> 18)) ^ // ROTR 18 + ((e_lo << 23) | (e_hi >>> 9))) >>> 0; // ROTR 41/(swap + ROTR 9) + + // Ch(e, f, g) (optimized the same way as SHA-1) + ch_hi = (g_hi ^ (e_hi & (f_hi ^ g_hi))) >>> 0; + ch_lo = (g_lo ^ (e_lo & (f_lo ^ g_lo))) >>> 0; + + // Sum0(a) = ROTR 28(a) ^ ROTR 34(a) ^ ROTR 39(a) + s0_hi = ( + ((a_hi >>> 28) | (a_lo << 4)) ^ // ROTR 28 + ((a_lo >>> 2) | (a_hi << 30)) ^ // ROTR 34/(swap + ROTR 2) + ((a_lo >>> 7) | (a_hi << 25))) >>> 0; // ROTR 39/(swap + ROTR 7) + s0_lo = ( + ((a_hi << 4) | (a_lo >>> 28)) ^ // ROTR 28 + ((a_lo << 30) | (a_hi >>> 2)) ^ // ROTR 34/(swap + ROTR 2) + ((a_lo << 25) | (a_hi >>> 7))) >>> 0; // ROTR 39/(swap + ROTR 7) + + // Maj(a, b, c) (optimized the same way as SHA-1) + maj_hi = ((a_hi & b_hi) | (c_hi & (a_hi ^ b_hi))) >>> 0; + maj_lo = ((a_lo & b_lo) | (c_lo & (a_lo ^ b_lo))) >>> 0; + + // main algorithm + // t1 = (h + s1 + ch + _k[i] + _w[i]) modulo 2^64 (carry lo overflow) + lo = (h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1]); + t1_hi = (h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] + + ((lo / 0x100000000) >>> 0)) >>> 0; + t1_lo = lo >>> 0; + + // t2 = s0 + maj modulo 2^64 (carry lo overflow) + lo = s0_lo + maj_lo; + t2_hi = (s0_hi + maj_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + t2_lo = lo >>> 0; + + h_hi = g_hi; + h_lo = g_lo; + + g_hi = f_hi; + g_lo = f_lo; + + f_hi = e_hi; + f_lo = e_lo; + + // e = (d + t1) modulo 2^64 (carry lo overflow) + lo = d_lo + t1_lo; + e_hi = (d_hi + t1_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + e_lo = lo >>> 0; + + d_hi = c_hi; + d_lo = c_lo; + + c_hi = b_hi; + c_lo = b_lo; + + b_hi = a_hi; + b_lo = a_lo; + + // a = (t1 + t2) modulo 2^64 (carry lo overflow) + lo = t1_lo + t2_lo; + a_hi = (t1_hi + t2_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + a_lo = lo >>> 0; + } + + // update hash state (additional modulo 2^64) + lo = s[0][1] + a_lo; + s[0][0] = (s[0][0] + a_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[0][1] = lo >>> 0; + + lo = s[1][1] + b_lo; + s[1][0] = (s[1][0] + b_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[1][1] = lo >>> 0; + + lo = s[2][1] + c_lo; + s[2][0] = (s[2][0] + c_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[2][1] = lo >>> 0; + + lo = s[3][1] + d_lo; + s[3][0] = (s[3][0] + d_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[3][1] = lo >>> 0; + + lo = s[4][1] + e_lo; + s[4][0] = (s[4][0] + e_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[4][1] = lo >>> 0; + + lo = s[5][1] + f_lo; + s[5][0] = (s[5][0] + f_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[5][1] = lo >>> 0; + + lo = s[6][1] + g_lo; + s[6][0] = (s[6][0] + g_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[6][1] = lo >>> 0; + + lo = s[7][1] + h_lo; + s[7][0] = (s[7][0] + h_hi + ((lo / 0x100000000) >>> 0)) >>> 0; + s[7][1] = lo >>> 0; + + len -= 128; + } +} + + +/***/ }), + +/***/ 4280: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/** + * Functions to output keys in SSH-friendly formats. + * + * This is part of the Forge project which may be used under the terms of + * either the BSD License or the GNU General Public License (GPL) Version 2. + * + * See: https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE + * + * @author https://github.com/shellac + */ +var forge = __nccwpck_require__(9177); +__nccwpck_require__(7994); +__nccwpck_require__(5104); +__nccwpck_require__(6594); +__nccwpck_require__(279); +__nccwpck_require__(8339); + +var ssh = module.exports = forge.ssh = forge.ssh || {}; + +/** + * Encodes (and optionally encrypts) a private RSA key as a Putty PPK file. + * + * @param privateKey the key. + * @param passphrase a passphrase to protect the key (falsy for no encryption). + * @param comment a comment to include in the key file. + * + * @return the PPK file as a string. + */ +ssh.privateKeyToPutty = function(privateKey, passphrase, comment) { + comment = comment || ''; + passphrase = passphrase || ''; + var algorithm = 'ssh-rsa'; + var encryptionAlgorithm = (passphrase === '') ? 'none' : 'aes256-cbc'; + + var ppk = 'PuTTY-User-Key-File-2: ' + algorithm + '\r\n'; + ppk += 'Encryption: ' + encryptionAlgorithm + '\r\n'; + ppk += 'Comment: ' + comment + '\r\n'; + + // public key into buffer for ppk + var pubbuffer = forge.util.createBuffer(); + _addStringToBuffer(pubbuffer, algorithm); + _addBigIntegerToBuffer(pubbuffer, privateKey.e); + _addBigIntegerToBuffer(pubbuffer, privateKey.n); + + // write public key + var pub = forge.util.encode64(pubbuffer.bytes(), 64); + var length = Math.floor(pub.length / 66) + 1; // 66 = 64 + \r\n + ppk += 'Public-Lines: ' + length + '\r\n'; + ppk += pub; + + // private key into a buffer + var privbuffer = forge.util.createBuffer(); + _addBigIntegerToBuffer(privbuffer, privateKey.d); + _addBigIntegerToBuffer(privbuffer, privateKey.p); + _addBigIntegerToBuffer(privbuffer, privateKey.q); + _addBigIntegerToBuffer(privbuffer, privateKey.qInv); + + // optionally encrypt the private key + var priv; + if(!passphrase) { + // use the unencrypted buffer + priv = forge.util.encode64(privbuffer.bytes(), 64); + } else { + // encrypt RSA key using passphrase + var encLen = privbuffer.length() + 16 - 1; + encLen -= encLen % 16; + + // pad private key with sha1-d data -- needs to be a multiple of 16 + var padding = _sha1(privbuffer.bytes()); + + padding.truncate(padding.length() - encLen + privbuffer.length()); + privbuffer.putBuffer(padding); + + var aeskey = forge.util.createBuffer(); + aeskey.putBuffer(_sha1('\x00\x00\x00\x00', passphrase)); + aeskey.putBuffer(_sha1('\x00\x00\x00\x01', passphrase)); + + // encrypt some bytes using CBC mode + // key is 40 bytes, so truncate *by* 8 bytes + var cipher = forge.aes.createEncryptionCipher(aeskey.truncate(8), 'CBC'); + cipher.start(forge.util.createBuffer().fillWithByte(0, 16)); + cipher.update(privbuffer.copy()); + cipher.finish(); + var encrypted = cipher.output; + + // Note: this appears to differ from Putty -- is forge wrong, or putty? + // due to padding we finish as an exact multiple of 16 + encrypted.truncate(16); // all padding + + priv = forge.util.encode64(encrypted.bytes(), 64); + } + + // output private key + length = Math.floor(priv.length / 66) + 1; // 64 + \r\n + ppk += '\r\nPrivate-Lines: ' + length + '\r\n'; + ppk += priv; + + // MAC + var mackey = _sha1('putty-private-key-file-mac-key', passphrase); + + var macbuffer = forge.util.createBuffer(); + _addStringToBuffer(macbuffer, algorithm); + _addStringToBuffer(macbuffer, encryptionAlgorithm); + _addStringToBuffer(macbuffer, comment); + macbuffer.putInt32(pubbuffer.length()); + macbuffer.putBuffer(pubbuffer); + macbuffer.putInt32(privbuffer.length()); + macbuffer.putBuffer(privbuffer); + + var hmac = forge.hmac.create(); + hmac.start('sha1', mackey); + hmac.update(macbuffer.bytes()); + + ppk += '\r\nPrivate-MAC: ' + hmac.digest().toHex() + '\r\n'; + + return ppk; }; -// sha-256 padding bytes not initialized yet -var _padding = null; -var _initialized = false; +/** + * Encodes a public RSA key as an OpenSSH file. + * + * @param key the key. + * @param comment a comment. + * + * @return the public key in OpenSSH format. + */ +ssh.publicKeyToOpenSSH = function(key, comment) { + var type = 'ssh-rsa'; + comment = comment || ''; -// table of constants -var _k = null; + var buffer = forge.util.createBuffer(); + _addStringToBuffer(buffer, type); + _addBigIntegerToBuffer(buffer, key.e); + _addBigIntegerToBuffer(buffer, key.n); + + return type + ' ' + forge.util.encode64(buffer.bytes()) + ' ' + comment; +}; /** - * Initializes the constant tables. + * Encodes a private RSA key as an OpenSSH file. + * + * @param key the key. + * @param passphrase a passphrase to protect the key (falsy for no encryption). + * + * @return the public key in OpenSSH format. */ -function _init() { - // create padding - _padding = String.fromCharCode(128); - _padding += forge.util.fillString(String.fromCharCode(0x00), 64); +ssh.privateKeyToOpenSSH = function(privateKey, passphrase) { + if(!passphrase) { + return forge.pki.privateKeyToPem(privateKey); + } + // OpenSSH private key is just a legacy format, it seems + return forge.pki.encryptRsaPrivateKey(privateKey, passphrase, + {legacy: true, algorithm: 'aes128'}); +}; - // create K table for SHA-256 - _k = [ - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, - 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, - 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, - 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, - 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, - 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, - 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2]; +/** + * Gets the SSH fingerprint for the given public key. + * + * @param options the options to use. + * [md] the message digest object to use (defaults to forge.md.md5). + * [encoding] an alternative output encoding, such as 'hex' + * (defaults to none, outputs a byte buffer). + * [delimiter] the delimiter to use between bytes for 'hex' encoded + * output, eg: ':' (defaults to none). + * + * @return the fingerprint as a byte buffer or other encoding based on options. + */ +ssh.getPublicKeyFingerprint = function(key, options) { + options = options || {}; + var md = options.md || forge.md.md5.create(); - // now initialized - _initialized = true; + var type = 'ssh-rsa'; + var buffer = forge.util.createBuffer(); + _addStringToBuffer(buffer, type); + _addBigIntegerToBuffer(buffer, key.e); + _addBigIntegerToBuffer(buffer, key.n); + + // hash public key bytes + md.start(); + md.update(buffer.getBytes()); + var digest = md.digest(); + if(options.encoding === 'hex') { + var hex = digest.toHex(); + if(options.delimiter) { + return hex.match(/.{2}/g).join(options.delimiter); + } + return hex; + } else if(options.encoding === 'binary') { + return digest.getBytes(); + } else if(options.encoding) { + throw new Error('Unknown encoding "' + options.encoding + '".'); + } + return digest; +}; + +/** + * Adds len(val) then val to a buffer. + * + * @param buffer the buffer to add to. + * @param val a big integer. + */ +function _addBigIntegerToBuffer(buffer, val) { + var hexVal = val.toString(16); + // ensure 2s complement +ve + if(hexVal[0] >= '8') { + hexVal = '00' + hexVal; + } + var bytes = forge.util.hexToBytes(hexVal); + buffer.putInt32(bytes.length); + buffer.putBytes(bytes); } /** - * Updates a SHA-256 state with the given byte buffer. + * Adds len(val) then val to a buffer. * - * @param s the SHA-256 state to update. - * @param w the array to use to store words. - * @param bytes the byte buffer to update with. + * @param buffer the buffer to add to. + * @param val a string. */ -function _update(s, w, bytes) { - // consume 512 bit (64 byte) chunks - var t1, t2, s0, s1, ch, maj, i, a, b, c, d, e, f, g, h; - var len = bytes.length(); - while(len >= 64) { - // the w array will be populated with sixteen 32-bit big-endian words - // and then extended into 64 32-bit words according to SHA-256 - for(i = 0; i < 16; ++i) { - w[i] = bytes.getInt32(); - } - for(; i < 64; ++i) { - // XOR word 2 words ago rot right 17, rot right 19, shft right 10 - t1 = w[i - 2]; - t1 = - ((t1 >>> 17) | (t1 << 15)) ^ - ((t1 >>> 19) | (t1 << 13)) ^ - (t1 >>> 10); - // XOR word 15 words ago rot right 7, rot right 18, shft right 3 - t2 = w[i - 15]; - t2 = - ((t2 >>> 7) | (t2 << 25)) ^ - ((t2 >>> 18) | (t2 << 14)) ^ - (t2 >>> 3); - // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^32 - w[i] = (t1 + w[i - 7] + t2 + w[i - 16]) | 0; - } +function _addStringToBuffer(buffer, val) { + buffer.putInt32(val.length); + buffer.putString(val); +} - // initialize hash value for this chunk - a = s.h0; - b = s.h1; - c = s.h2; - d = s.h3; - e = s.h4; - f = s.h5; - g = s.h6; - h = s.h7; +/** + * Hashes the arguments into one value using SHA-1. + * + * @return the sha1 hash of the provided arguments. + */ +function _sha1() { + var sha = forge.md.sha1.create(); + var num = arguments.length; + for (var i = 0; i < num; ++i) { + sha.update(arguments[i]); + } + return sha.digest(); +} - // round function - for(i = 0; i < 64; ++i) { - // Sum1(e) - s1 = - ((e >>> 6) | (e << 26)) ^ - ((e >>> 11) | (e << 21)) ^ - ((e >>> 25) | (e << 7)); - // Ch(e, f, g) (optimized the same way as SHA-1) - ch = g ^ (e & (f ^ g)); - // Sum0(a) - s0 = - ((a >>> 2) | (a << 30)) ^ - ((a >>> 13) | (a << 19)) ^ - ((a >>> 22) | (a << 10)); - // Maj(a, b, c) (optimized the same way as SHA-1) - maj = (a & b) | (c & (a ^ b)); - // main algorithm - t1 = h + s1 + ch + _k[i] + w[i]; - t2 = s0 + maj; - h = g; - g = f; - f = e; - // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug - // can't truncate with `| 0` - e = (d + t1) >>> 0; - d = c; - c = b; - b = a; - // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug - // can't truncate with `| 0` - a = (t1 + t2) >>> 0; - } +/***/ }), + +/***/ 639: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/** + * A Javascript implementation of Transport Layer Security (TLS). + * + * @author Dave Longley + * + * Copyright (c) 2009-2014 Digital Bazaar, Inc. + * + * The TLS Handshake Protocol involves the following steps: + * + * - Exchange hello messages to agree on algorithms, exchange random values, + * and check for session resumption. + * + * - Exchange the necessary cryptographic parameters to allow the client and + * server to agree on a premaster secret. + * + * - Exchange certificates and cryptographic information to allow the client + * and server to authenticate themselves. + * + * - Generate a master secret from the premaster secret and exchanged random + * values. + * + * - Provide security parameters to the record layer. + * + * - Allow the client and server to verify that their peer has calculated the + * same security parameters and that the handshake occurred without tampering + * by an attacker. + * + * Up to 4 different messages may be sent during a key exchange. The server + * certificate, the server key exchange, the client certificate, and the + * client key exchange. + * + * A typical handshake (from the client's perspective). + * + * 1. Client sends ClientHello. + * 2. Client receives ServerHello. + * 3. Client receives optional Certificate. + * 4. Client receives optional ServerKeyExchange. + * 5. Client receives ServerHelloDone. + * 6. Client sends optional Certificate. + * 7. Client sends ClientKeyExchange. + * 8. Client sends optional CertificateVerify. + * 9. Client sends ChangeCipherSpec. + * 10. Client sends Finished. + * 11. Client receives ChangeCipherSpec. + * 12. Client receives Finished. + * 13. Client sends/receives application data. + * + * To reuse an existing session: + * + * 1. Client sends ClientHello with session ID for reuse. + * 2. Client receives ServerHello with same session ID if reusing. + * 3. Client receives ChangeCipherSpec message if reusing. + * 4. Client receives Finished. + * 5. Client sends ChangeCipherSpec. + * 6. Client sends Finished. + * + * Note: Client ignores HelloRequest if in the middle of a handshake. + * + * Record Layer: + * + * The record layer fragments information blocks into TLSPlaintext records + * carrying data in chunks of 2^14 bytes or less. Client message boundaries are + * not preserved in the record layer (i.e., multiple client messages of the + * same ContentType MAY be coalesced into a single TLSPlaintext record, or a + * single message MAY be fragmented across several records). + * + * struct { + * uint8 major; + * uint8 minor; + * } ProtocolVersion; + * + * struct { + * ContentType type; + * ProtocolVersion version; + * uint16 length; + * opaque fragment[TLSPlaintext.length]; + * } TLSPlaintext; + * + * type: + * The higher-level protocol used to process the enclosed fragment. + * + * version: + * The version of the protocol being employed. TLS Version 1.2 uses version + * {3, 3}. TLS Version 1.0 uses version {3, 1}. Note that a client that + * supports multiple versions of TLS may not know what version will be + * employed before it receives the ServerHello. + * + * length: + * The length (in bytes) of the following TLSPlaintext.fragment. The length + * MUST NOT exceed 2^14 = 16384 bytes. + * + * fragment: + * The application data. This data is transparent and treated as an + * independent block to be dealt with by the higher-level protocol specified + * by the type field. + * + * Implementations MUST NOT send zero-length fragments of Handshake, Alert, or + * ChangeCipherSpec content types. Zero-length fragments of Application data + * MAY be sent as they are potentially useful as a traffic analysis + * countermeasure. + * + * Note: Data of different TLS record layer content types MAY be interleaved. + * Application data is generally of lower precedence for transmission than + * other content types. However, records MUST be delivered to the network in + * the same order as they are protected by the record layer. Recipients MUST + * receive and process interleaved application layer traffic during handshakes + * subsequent to the first one on a connection. + * + * struct { + * ContentType type; // same as TLSPlaintext.type + * ProtocolVersion version;// same as TLSPlaintext.version + * uint16 length; + * opaque fragment[TLSCompressed.length]; + * } TLSCompressed; + * + * length: + * The length (in bytes) of the following TLSCompressed.fragment. + * The length MUST NOT exceed 2^14 + 1024. + * + * fragment: + * The compressed form of TLSPlaintext.fragment. + * + * Note: A CompressionMethod.null operation is an identity operation; no fields + * are altered. In this implementation, since no compression is supported, + * uncompressed records are always the same as compressed records. + * + * Encryption Information: + * + * The encryption and MAC functions translate a TLSCompressed structure into a + * TLSCiphertext. The decryption functions reverse the process. The MAC of the + * record also includes a sequence number so that missing, extra, or repeated + * messages are detectable. + * + * struct { + * ContentType type; + * ProtocolVersion version; + * uint16 length; + * select (SecurityParameters.cipher_type) { + * case stream: GenericStreamCipher; + * case block: GenericBlockCipher; + * case aead: GenericAEADCipher; + * } fragment; + * } TLSCiphertext; + * + * type: + * The type field is identical to TLSCompressed.type. + * + * version: + * The version field is identical to TLSCompressed.version. + * + * length: + * The length (in bytes) of the following TLSCiphertext.fragment. + * The length MUST NOT exceed 2^14 + 2048. + * + * fragment: + * The encrypted form of TLSCompressed.fragment, with the MAC. + * + * Note: Only CBC Block Ciphers are supported by this implementation. + * + * The TLSCompressed.fragment structures are converted to/from block + * TLSCiphertext.fragment structures. + * + * struct { + * opaque IV[SecurityParameters.record_iv_length]; + * block-ciphered struct { + * opaque content[TLSCompressed.length]; + * opaque MAC[SecurityParameters.mac_length]; + * uint8 padding[GenericBlockCipher.padding_length]; + * uint8 padding_length; + * }; + * } GenericBlockCipher; + * + * The MAC is generated as described in Section 6.2.3.1. + * + * IV: + * The Initialization Vector (IV) SHOULD be chosen at random, and MUST be + * unpredictable. Note that in versions of TLS prior to 1.1, there was no + * IV field, and the last ciphertext block of the previous record (the "CBC + * residue") was used as the IV. This was changed to prevent the attacks + * described in [CBCATT]. For block ciphers, the IV length is of length + * SecurityParameters.record_iv_length, which is equal to the + * SecurityParameters.block_size. + * + * padding: + * Padding that is added to force the length of the plaintext to be an + * integral multiple of the block cipher's block length. The padding MAY be + * any length up to 255 bytes, as long as it results in the + * TLSCiphertext.length being an integral multiple of the block length. + * Lengths longer than necessary might be desirable to frustrate attacks on + * a protocol that are based on analysis of the lengths of exchanged + * messages. Each uint8 in the padding data vector MUST be filled with the + * padding length value. The receiver MUST check this padding and MUST use + * the bad_record_mac alert to indicate padding errors. + * + * padding_length: + * The padding length MUST be such that the total size of the + * GenericBlockCipher structure is a multiple of the cipher's block length. + * Legal values range from zero to 255, inclusive. This length specifies the + * length of the padding field exclusive of the padding_length field itself. + * + * The encrypted data length (TLSCiphertext.length) is one more than the sum of + * SecurityParameters.block_length, TLSCompressed.length, + * SecurityParameters.mac_length, and padding_length. + * + * Example: If the block length is 8 bytes, the content length + * (TLSCompressed.length) is 61 bytes, and the MAC length is 20 bytes, then the + * length before padding is 82 bytes (this does not include the IV. Thus, the + * padding length modulo 8 must be equal to 6 in order to make the total length + * an even multiple of 8 bytes (the block length). The padding length can be + * 6, 14, 22, and so on, through 254. If the padding length were the minimum + * necessary, 6, the padding would be 6 bytes, each containing the value 6. + * Thus, the last 8 octets of the GenericBlockCipher before block encryption + * would be xx 06 06 06 06 06 06 06, where xx is the last octet of the MAC. + * + * Note: With block ciphers in CBC mode (Cipher Block Chaining), it is critical + * that the entire plaintext of the record be known before any ciphertext is + * transmitted. Otherwise, it is possible for the attacker to mount the attack + * described in [CBCATT]. + * + * Implementation note: Canvel et al. [CBCTIME] have demonstrated a timing + * attack on CBC padding based on the time required to compute the MAC. In + * order to defend against this attack, implementations MUST ensure that + * record processing time is essentially the same whether or not the padding + * is correct. In general, the best way to do this is to compute the MAC even + * if the padding is incorrect, and only then reject the packet. For instance, + * if the pad appears to be incorrect, the implementation might assume a + * zero-length pad and then compute the MAC. This leaves a small timing + * channel, since MAC performance depends, to some extent, on the size of the + * data fragment, but it is not believed to be large enough to be exploitable, + * due to the large block size of existing MACs and the small size of the + * timing signal. + */ +var forge = __nccwpck_require__(9177); +__nccwpck_require__(9549); +__nccwpck_require__(5104); +__nccwpck_require__(6594); +__nccwpck_require__(154); +__nccwpck_require__(6924); +__nccwpck_require__(7821); +__nccwpck_require__(279); +__nccwpck_require__(8339); + +/** + * Generates pseudo random bytes by mixing the result of two hash functions, + * MD5 and SHA-1. + * + * prf_TLS1(secret, label, seed) = + * P_MD5(S1, label + seed) XOR P_SHA-1(S2, label + seed); + * + * Each P_hash function functions as follows: + * + * P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) + + * HMAC_hash(secret, A(2) + seed) + + * HMAC_hash(secret, A(3) + seed) + ... + * A() is defined as: + * A(0) = seed + * A(i) = HMAC_hash(secret, A(i-1)) + * + * The '+' operator denotes concatenation. + * + * As many iterations A(N) as are needed are performed to generate enough + * pseudo random byte output. If an iteration creates more data than is + * necessary, then it is truncated. + * + * Therefore: + * A(1) = HMAC_hash(secret, A(0)) + * = HMAC_hash(secret, seed) + * A(2) = HMAC_hash(secret, A(1)) + * = HMAC_hash(secret, HMAC_hash(secret, seed)) + * + * Therefore: + * P_hash(secret, seed) = + * HMAC_hash(secret, HMAC_hash(secret, A(0)) + seed) + + * HMAC_hash(secret, HMAC_hash(secret, A(1)) + seed) + + * ... + * + * Therefore: + * P_hash(secret, seed) = + * HMAC_hash(secret, HMAC_hash(secret, seed) + seed) + + * HMAC_hash(secret, HMAC_hash(secret, HMAC_hash(secret, seed)) + seed) + + * ... + * + * @param secret the secret to use. + * @param label the label to use. + * @param seed the seed value to use. + * @param length the number of bytes to generate. + * + * @return the pseudo random bytes in a byte buffer. + */ +var prf_TLS1 = function(secret, label, seed, length) { + var rval = forge.util.createBuffer(); + + /* For TLS 1.0, the secret is split in half, into two secrets of equal + length. If the secret has an odd length then the last byte of the first + half will be the same as the first byte of the second. The length of the + two secrets is half of the secret rounded up. */ + var idx = (secret.length >> 1); + var slen = idx + (secret.length & 1); + var s1 = secret.substr(0, slen); + var s2 = secret.substr(idx, slen); + var ai = forge.util.createBuffer(); + var hmac = forge.hmac.create(); + seed = label + seed; - // update hash state - s.h0 = (s.h0 + a) | 0; - s.h1 = (s.h1 + b) | 0; - s.h2 = (s.h2 + c) | 0; - s.h3 = (s.h3 + d) | 0; - s.h4 = (s.h4 + e) | 0; - s.h5 = (s.h5 + f) | 0; - s.h6 = (s.h6 + g) | 0; - s.h7 = (s.h7 + h) | 0; - len -= 64; + // determine the number of iterations that must be performed to generate + // enough output bytes, md5 creates 16 byte hashes, sha1 creates 20 + var md5itr = Math.ceil(length / 16); + var sha1itr = Math.ceil(length / 20); + + // do md5 iterations + hmac.start('MD5', s1); + var md5bytes = forge.util.createBuffer(); + ai.putBytes(seed); + for(var i = 0; i < md5itr; ++i) { + // HMAC_hash(secret, A(i-1)) + hmac.start(null, null); + hmac.update(ai.getBytes()); + ai.putBuffer(hmac.digest()); + + // HMAC_hash(secret, A(i) + seed) + hmac.start(null, null); + hmac.update(ai.bytes() + seed); + md5bytes.putBuffer(hmac.digest()); } -} + // do sha1 iterations + hmac.start('SHA1', s2); + var sha1bytes = forge.util.createBuffer(); + ai.clear(); + ai.putBytes(seed); + for(var i = 0; i < sha1itr; ++i) { + // HMAC_hash(secret, A(i-1)) + hmac.start(null, null); + hmac.update(ai.getBytes()); + ai.putBuffer(hmac.digest()); -/***/ }), + // HMAC_hash(secret, A(i) + seed) + hmac.start(null, null); + hmac.update(ai.bytes() + seed); + sha1bytes.putBuffer(hmac.digest()); + } -/***/ 9542: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // XOR the md5 bytes with the sha1 bytes + rval.putBytes(forge.util.xorBytes( + md5bytes.getBytes(), sha1bytes.getBytes(), length)); + + return rval; +}; /** - * Secure Hash Algorithm with a 1024-bit block size implementation. + * Generates pseudo random bytes using a SHA256 algorithm. For TLS 1.2. * - * This includes: SHA-512, SHA-384, SHA-512/224, and SHA-512/256. For - * SHA-256 (block size 512 bits), see sha256.js. + * @param secret the secret to use. + * @param label the label to use. + * @param seed the seed value to use. + * @param length the number of bytes to generate. * - * See FIPS 180-4 for details. + * @return the pseudo random bytes in a byte buffer. + */ +var prf_sha256 = function(secret, label, seed, length) { + // FIXME: implement me for TLS 1.2 +}; + +/** + * Gets a MAC for a record using the SHA-1 hash algorithm. * - * @author Dave Longley + * @param key the mac key. + * @param state the sequence number (array of two 32-bit integers). + * @param record the record. * - * Copyright (c) 2014-2015 Digital Bazaar, Inc. + * @return the sha-1 hash (20 bytes) for the given record. */ -var forge = __nccwpck_require__(9177); -__nccwpck_require__(6231); -__nccwpck_require__(8339); +var hmac_sha1 = function(key, seqNum, record) { + /* MAC is computed like so: + HMAC_hash( + key, seqNum + + TLSCompressed.type + + TLSCompressed.version + + TLSCompressed.length + + TLSCompressed.fragment) + */ + var hmac = forge.hmac.create(); + hmac.start('SHA1', key); + var b = forge.util.createBuffer(); + b.putInt32(seqNum[0]); + b.putInt32(seqNum[1]); + b.putByte(record.type); + b.putByte(record.version.major); + b.putByte(record.version.minor); + b.putInt16(record.length); + b.putBytes(record.fragment.bytes()); + hmac.update(b.getBytes()); + return hmac.digest().getBytes(); +}; -var sha512 = module.exports = forge.sha512 = forge.sha512 || {}; +/** + * Compresses the TLSPlaintext record into a TLSCompressed record using the + * deflate algorithm. + * + * @param c the TLS connection. + * @param record the TLSPlaintext record to compress. + * @param s the ConnectionState to use. + * + * @return true on success, false on failure. + */ +var deflate = function(c, record, s) { + var rval = false; -// SHA-512 -forge.md.sha512 = forge.md.algorithms.sha512 = sha512; + try { + var bytes = c.deflate(record.fragment.getBytes()); + record.fragment = forge.util.createBuffer(bytes); + record.length = bytes.length; + rval = true; + } catch(ex) { + // deflate error, fail out + } -// SHA-384 -var sha384 = forge.sha384 = forge.sha512.sha384 = forge.sha512.sha384 || {}; -sha384.create = function() { - return sha512.create('SHA-384'); + return rval; }; -forge.md.sha384 = forge.md.algorithms.sha384 = sha384; -// SHA-512/256 -forge.sha512.sha256 = forge.sha512.sha256 || { - create: function() { - return sha512.create('SHA-512/256'); - } -}; -forge.md['sha512/256'] = forge.md.algorithms['sha512/256'] = - forge.sha512.sha256; +/** + * Decompresses the TLSCompressed record into a TLSPlaintext record using the + * deflate algorithm. + * + * @param c the TLS connection. + * @param record the TLSCompressed record to decompress. + * @param s the ConnectionState to use. + * + * @return true on success, false on failure. + */ +var inflate = function(c, record, s) { + var rval = false; -// SHA-512/224 -forge.sha512.sha224 = forge.sha512.sha224 || { - create: function() { - return sha512.create('SHA-512/224'); + try { + var bytes = c.inflate(record.fragment.getBytes()); + record.fragment = forge.util.createBuffer(bytes); + record.length = bytes.length; + rval = true; + } catch(ex) { + // inflate error, fail out } + + return rval; }; -forge.md['sha512/224'] = forge.md.algorithms['sha512/224'] = - forge.sha512.sha224; /** - * Creates a SHA-2 message digest object. + * Reads a TLS variable-length vector from a byte buffer. * - * @param algorithm the algorithm to use (SHA-512, SHA-384, SHA-512/224, - * SHA-512/256). + * Variable-length vectors are defined by specifying a subrange of legal + * lengths, inclusively, using the notation . When these are + * encoded, the actual length precedes the vector's contents in the byte + * stream. The length will be in the form of a number consuming as many bytes + * as required to hold the vector's specified maximum (ceiling) length. A + * variable-length vector with an actual length field of zero is referred to + * as an empty vector. * - * @return a message digest object. + * @param b the byte buffer. + * @param lenBytes the number of bytes required to store the length. + * + * @return the resulting byte buffer. */ -sha512.create = function(algorithm) { - // do initialization as necessary - if(!_initialized) { - _init(); +var readVector = function(b, lenBytes) { + var len = 0; + switch(lenBytes) { + case 1: + len = b.getByte(); + break; + case 2: + len = b.getInt16(); + break; + case 3: + len = b.getInt24(); + break; + case 4: + len = b.getInt32(); + break; } - if(typeof algorithm === 'undefined') { - algorithm = 'SHA-512'; - } + // read vector bytes into a new buffer + return forge.util.createBuffer(b.getBytes(len)); +}; - if(!(algorithm in _states)) { - throw new Error('Invalid SHA-512 algorithm: ' + algorithm); - } +/** + * Writes a TLS variable-length vector to a byte buffer. + * + * @param b the byte buffer. + * @param lenBytes the number of bytes required to store the length. + * @param v the byte buffer vector. + */ +var writeVector = function(b, lenBytes, v) { + // encode length at the start of the vector, where the number of bytes for + // the length is the maximum number of bytes it would take to encode the + // vector's ceiling + b.putInt(v.length(), lenBytes << 3); + b.putBuffer(v); +}; - // SHA-512 state contains eight 64-bit integers (each as two 32-bit ints) - var _state = _states[algorithm]; - var _h = null; +/** + * The tls implementation. + */ +var tls = {}; - // input buffer - var _input = forge.util.createBuffer(); +/** + * Version: TLS 1.2 = 3.3, TLS 1.1 = 3.2, TLS 1.0 = 3.1. Both TLS 1.1 and + * TLS 1.2 were still too new (ie: openSSL didn't implement them) at the time + * of this implementation so TLS 1.0 was implemented instead. + */ +tls.Versions = { + TLS_1_0: {major: 3, minor: 1}, + TLS_1_1: {major: 3, minor: 2}, + TLS_1_2: {major: 3, minor: 3} +}; +tls.SupportedVersions = [ + tls.Versions.TLS_1_1, + tls.Versions.TLS_1_0 +]; +tls.Version = tls.SupportedVersions[0]; - // used for 64-bit word storage - var _w = new Array(80); - for(var wi = 0; wi < 80; ++wi) { - _w[wi] = new Array(2); - } +/** + * Maximum fragment size. True maximum is 16384, but we fragment before that + * to allow for unusual small increases during compression. + */ +tls.MaxFragment = 16384 - 1024; - // determine digest length by algorithm name (default) - var digestLength = 64; - switch(algorithm) { - case 'SHA-384': - digestLength = 48; - break; - case 'SHA-512/256': - digestLength = 32; - break; - case 'SHA-512/224': - digestLength = 28; - break; - } +/** + * Whether this entity is considered the "client" or "server". + * enum { server, client } ConnectionEnd; + */ +tls.ConnectionEnd = { + server: 0, + client: 1 +}; - // message digest object - var md = { - // SHA-512 => sha512 - algorithm: algorithm.replace('-', '').toLowerCase(), - blockLength: 128, - digestLength: digestLength, - // 56-bit length of message so far (does not including padding) - messageLength: 0, - // true message length - fullMessageLength: null, - // size of message length in bytes - messageLengthSize: 16 - }; +/** + * Pseudo-random function algorithm used to generate keys from the master + * secret. + * enum { tls_prf_sha256 } PRFAlgorithm; + */ +tls.PRFAlgorithm = { + tls_prf_sha256: 0 +}; - /** - * Starts the digest. - * - * @return this digest object. - */ - md.start = function() { - // up to 56-bit message length for convenience - md.messageLength = 0; +/** + * Bulk encryption algorithms. + * enum { null, rc4, des3, aes } BulkCipherAlgorithm; + */ +tls.BulkCipherAlgorithm = { + none: null, + rc4: 0, + des3: 1, + aes: 2 +}; - // full message length (set md.messageLength128 for backwards-compatibility) - md.fullMessageLength = md.messageLength128 = []; - var int32s = md.messageLengthSize / 4; - for(var i = 0; i < int32s; ++i) { - md.fullMessageLength.push(0); - } - _input = forge.util.createBuffer(); - _h = new Array(_state.length); - for(var i = 0; i < _state.length; ++i) { - _h[i] = _state[i].slice(0); - } - return md; - }; - // start digest automatically for first time - md.start(); +/** + * Cipher types. + * enum { stream, block, aead } CipherType; + */ +tls.CipherType = { + stream: 0, + block: 1, + aead: 2 +}; - /** - * Updates the digest with the given message input. The given input can - * treated as raw input (no encoding will be applied) or an encoding of - * 'utf8' maybe given to encode the input using UTF-8. - * - * @param msg the message input to update with. - * @param encoding the encoding to use (default: 'raw', other: 'utf8'). - * - * @return this digest object. - */ - md.update = function(msg, encoding) { - if(encoding === 'utf8') { - msg = forge.util.encodeUtf8(msg); - } +/** + * MAC (Message Authentication Code) algorithms. + * enum { null, hmac_md5, hmac_sha1, hmac_sha256, + * hmac_sha384, hmac_sha512} MACAlgorithm; + */ +tls.MACAlgorithm = { + none: null, + hmac_md5: 0, + hmac_sha1: 1, + hmac_sha256: 2, + hmac_sha384: 3, + hmac_sha512: 4 +}; - // update message length - var len = msg.length; - md.messageLength += len; - len = [(len / 0x100000000) >>> 0, len >>> 0]; - for(var i = md.fullMessageLength.length - 1; i >= 0; --i) { - md.fullMessageLength[i] += len[1]; - len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0); - md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0; - len[0] = ((len[1] / 0x100000000) >>> 0); +/** + * Compression algorithms. + * enum { null(0), deflate(1), (255) } CompressionMethod; + */ +tls.CompressionMethod = { + none: 0, + deflate: 1 +}; + +/** + * TLS record content types. + * enum { + * change_cipher_spec(20), alert(21), handshake(22), + * application_data(23), (255) + * } ContentType; + */ +tls.ContentType = { + change_cipher_spec: 20, + alert: 21, + handshake: 22, + application_data: 23, + heartbeat: 24 +}; + +/** + * TLS handshake types. + * enum { + * hello_request(0), client_hello(1), server_hello(2), + * certificate(11), server_key_exchange (12), + * certificate_request(13), server_hello_done(14), + * certificate_verify(15), client_key_exchange(16), + * finished(20), (255) + * } HandshakeType; + */ +tls.HandshakeType = { + hello_request: 0, + client_hello: 1, + server_hello: 2, + certificate: 11, + server_key_exchange: 12, + certificate_request: 13, + server_hello_done: 14, + certificate_verify: 15, + client_key_exchange: 16, + finished: 20 +}; + +/** + * TLS Alert Protocol. + * + * enum { warning(1), fatal(2), (255) } AlertLevel; + * + * enum { + * close_notify(0), + * unexpected_message(10), + * bad_record_mac(20), + * decryption_failed(21), + * record_overflow(22), + * decompression_failure(30), + * handshake_failure(40), + * bad_certificate(42), + * unsupported_certificate(43), + * certificate_revoked(44), + * certificate_expired(45), + * certificate_unknown(46), + * illegal_parameter(47), + * unknown_ca(48), + * access_denied(49), + * decode_error(50), + * decrypt_error(51), + * export_restriction(60), + * protocol_version(70), + * insufficient_security(71), + * internal_error(80), + * user_canceled(90), + * no_renegotiation(100), + * (255) + * } AlertDescription; + * + * struct { + * AlertLevel level; + * AlertDescription description; + * } Alert; + */ +tls.Alert = {}; +tls.Alert.Level = { + warning: 1, + fatal: 2 +}; +tls.Alert.Description = { + close_notify: 0, + unexpected_message: 10, + bad_record_mac: 20, + decryption_failed: 21, + record_overflow: 22, + decompression_failure: 30, + handshake_failure: 40, + bad_certificate: 42, + unsupported_certificate: 43, + certificate_revoked: 44, + certificate_expired: 45, + certificate_unknown: 46, + illegal_parameter: 47, + unknown_ca: 48, + access_denied: 49, + decode_error: 50, + decrypt_error: 51, + export_restriction: 60, + protocol_version: 70, + insufficient_security: 71, + internal_error: 80, + user_canceled: 90, + no_renegotiation: 100 +}; + +/** + * TLS Heartbeat Message types. + * enum { + * heartbeat_request(1), + * heartbeat_response(2), + * (255) + * } HeartbeatMessageType; + */ +tls.HeartbeatMessageType = { + heartbeat_request: 1, + heartbeat_response: 2 +}; + +/** + * Supported cipher suites. + */ +tls.CipherSuites = {}; + +/** + * Gets a supported cipher suite from its 2 byte ID. + * + * @param twoBytes two bytes in a string. + * + * @return the matching supported cipher suite or null. + */ +tls.getCipherSuite = function(twoBytes) { + var rval = null; + for(var key in tls.CipherSuites) { + var cs = tls.CipherSuites[key]; + if(cs.id[0] === twoBytes.charCodeAt(0) && + cs.id[1] === twoBytes.charCodeAt(1)) { + rval = cs; + break; } + } + return rval; +}; - // add bytes to input buffer - _input.putBytes(msg); +/** + * Called when an unexpected record is encountered. + * + * @param c the connection. + * @param record the record. + */ +tls.handleUnexpected = function(c, record) { + // if connection is client and closed, ignore unexpected messages + var ignore = (!c.open && c.entity === tls.ConnectionEnd.client); + if(!ignore) { + c.error(c, { + message: 'Unexpected message. Received TLS record out of order.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.unexpected_message + } + }); + } +}; - // process bytes - _update(_h, _w, _input); +/** + * Called when a client receives a HelloRequest record. + * + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. + */ +tls.handleHelloRequest = function(c, record, length) { + // ignore renegotiation requests from the server during a handshake, but + // if handshaking, send a warning alert that renegotation is denied + if(!c.handshaking && c.handshakes > 0) { + // send alert warning + tls.queue(c, tls.createAlert(c, { + level: tls.Alert.Level.warning, + description: tls.Alert.Description.no_renegotiation + })); + tls.flush(c); + } - // compact input buffer every 2K or if empty - if(_input.read > 2048 || _input.length() === 0) { - _input.compact(); - } + // continue + c.process(); +}; - return md; - }; +/** + * Parses a hello message from a ClientHello or ServerHello record. + * + * @param record the record to parse. + * + * @return the parsed message. + */ +tls.parseHelloMessage = function(c, record, length) { + var msg = null; - /** - * Produces the digest. - * - * @return a byte buffer containing the digest value. - */ - md.digest = function() { - /* Note: Here we copy the remaining bytes in the input buffer and - add the appropriate SHA-512 padding. Then we do the final update - on a copy of the state so that if the user wants to get - intermediate digests they can do so. */ + var client = (c.entity === tls.ConnectionEnd.client); - /* Determine the number of bytes that must be added to the message - to ensure its length is congruent to 896 mod 1024. In other words, - the data to be digested must be a multiple of 1024 bits (or 128 bytes). - This data includes the message, some padding, and the length of the - message. Since the length of the message will be encoded as 16 bytes (128 - bits), that means that the last segment of the data must have 112 bytes - (896 bits) of message and padding. Therefore, the length of the message - plus the padding must be congruent to 896 mod 1024 because - 1024 - 128 = 896. + // minimum of 38 bytes in message + if(length < 38) { + c.error(c, { + message: client ? + 'Invalid ServerHello message. Message too short.' : + 'Invalid ClientHello message. Message too short.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } else { + // use 'remaining' to calculate # of remaining bytes in the message + var b = record.fragment; + var remaining = b.length(); + msg = { + version: { + major: b.getByte(), + minor: b.getByte() + }, + random: forge.util.createBuffer(b.getBytes(32)), + session_id: readVector(b, 1), + extensions: [] + }; + if(client) { + msg.cipher_suite = b.getBytes(2); + msg.compression_method = b.getByte(); + } else { + msg.cipher_suites = readVector(b, 2); + msg.compression_methods = readVector(b, 1); + } - In order to fill up the message length it must be filled with - padding that begins with 1 bit followed by all 0 bits. Padding - must *always* be present, so if the message length is already - congruent to 896 mod 1024, then 1024 padding bits must be added. */ + // read extensions if there are any bytes left in the message + remaining = length - (remaining - b.length()); + if(remaining > 0) { + // parse extensions + var exts = readVector(b, 2); + while(exts.length() > 0) { + msg.extensions.push({ + type: [exts.getByte(), exts.getByte()], + data: readVector(exts, 2) + }); + } - var finalBlock = forge.util.createBuffer(); - finalBlock.putBytes(_input.bytes()); + // TODO: make extension support modular + if(!client) { + for(var i = 0; i < msg.extensions.length; ++i) { + var ext = msg.extensions[i]; - // compute remaining size to be digested (include message length size) - var remaining = ( - md.fullMessageLength[md.fullMessageLength.length - 1] + - md.messageLengthSize); + // support SNI extension + if(ext.type[0] === 0x00 && ext.type[1] === 0x00) { + // get server name list + var snl = readVector(ext.data, 2); + while(snl.length() > 0) { + // read server name type + var snType = snl.getByte(); - // add padding for overflow blockSize - overflow - // _padding starts with 1 byte with first bit is set (byte value 128), then - // there may be up to (blockSize - 1) other pad bytes - var overflow = remaining & (md.blockLength - 1); - finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow)); + // only HostName type (0x00) is known, break out if + // another type is detected + if(snType !== 0x00) { + break; + } - // serialize message length in bits in big-endian order; since length - // is stored in bytes we multiply by 8 and add carry from next int - var next, carry; - var bits = md.fullMessageLength[0] * 8; - for(var i = 0; i < md.fullMessageLength.length - 1; ++i) { - next = md.fullMessageLength[i + 1] * 8; - carry = (next / 0x100000000) >>> 0; - bits += carry; - finalBlock.putInt32(bits >>> 0); - bits = next >>> 0; + // add host name to server name list + c.session.extensions.server_name.serverNameList.push( + readVector(snl, 2).getBytes()); + } + } + } + } } - finalBlock.putInt32(bits); - var h = new Array(_h.length); - for(var i = 0; i < _h.length; ++i) { - h[i] = _h[i].slice(0); + // version already set, do not allow version change + if(c.session.version) { + if(msg.version.major !== c.session.version.major || + msg.version.minor !== c.session.version.minor) { + return c.error(c, { + message: 'TLS version change is disallowed during renegotiation.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.protocol_version + } + }); + } } - _update(h, _w, finalBlock); - var rval = forge.util.createBuffer(); - var hlen; - if(algorithm === 'SHA-512') { - hlen = h.length; - } else if(algorithm === 'SHA-384') { - hlen = h.length - 2; + + // get the chosen (ServerHello) cipher suite + if(client) { + // FIXME: should be checking configured acceptable cipher suites + c.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite); } else { - hlen = h.length - 4; - } - for(var i = 0; i < hlen; ++i) { - rval.putInt32(h[i][0]); - if(i !== hlen - 1 || algorithm !== 'SHA-512/224') { - rval.putInt32(h[i][1]); + // get a supported preferred (ClientHello) cipher suite + // choose the first supported cipher suite + var tmp = forge.util.createBuffer(msg.cipher_suites.bytes()); + while(tmp.length() > 0) { + // FIXME: should be checking configured acceptable suites + // cipher suites take up 2 bytes + c.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2)); + if(c.session.cipherSuite !== null) { + break; + } } } - return rval; - }; - - return md; -}; -// sha-512 padding bytes not initialized yet -var _padding = null; -var _initialized = false; + // cipher suite not supported + if(c.session.cipherSuite === null) { + return c.error(c, { + message: 'No cipher suites in common.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.handshake_failure + }, + cipherSuite: forge.util.bytesToHex(msg.cipher_suite) + }); + } -// table of constants -var _k = null; + // TODO: handle compression methods + if(client) { + c.session.compressionMethod = msg.compression_method; + } else { + // no compression + c.session.compressionMethod = tls.CompressionMethod.none; + } + } -// initial hash states -var _states = null; + return msg; +}; /** - * Initializes the constant tables. + * Creates security parameters for the given connection based on the given + * hello message. + * + * @param c the TLS connection. + * @param msg the hello message. */ -function _init() { - // create padding - _padding = String.fromCharCode(128); - _padding += forge.util.fillString(String.fromCharCode(0x00), 128); +tls.createSecurityParameters = function(c, msg) { + /* Note: security params are from TLS 1.2, some values like prf_algorithm + are ignored for TLS 1.0/1.1 and the builtin as specified in the spec is + used. */ - // create K table for SHA-512 - _k = [ - [0x428a2f98, 0xd728ae22], [0x71374491, 0x23ef65cd], - [0xb5c0fbcf, 0xec4d3b2f], [0xe9b5dba5, 0x8189dbbc], - [0x3956c25b, 0xf348b538], [0x59f111f1, 0xb605d019], - [0x923f82a4, 0xaf194f9b], [0xab1c5ed5, 0xda6d8118], - [0xd807aa98, 0xa3030242], [0x12835b01, 0x45706fbe], - [0x243185be, 0x4ee4b28c], [0x550c7dc3, 0xd5ffb4e2], - [0x72be5d74, 0xf27b896f], [0x80deb1fe, 0x3b1696b1], - [0x9bdc06a7, 0x25c71235], [0xc19bf174, 0xcf692694], - [0xe49b69c1, 0x9ef14ad2], [0xefbe4786, 0x384f25e3], - [0x0fc19dc6, 0x8b8cd5b5], [0x240ca1cc, 0x77ac9c65], - [0x2de92c6f, 0x592b0275], [0x4a7484aa, 0x6ea6e483], - [0x5cb0a9dc, 0xbd41fbd4], [0x76f988da, 0x831153b5], - [0x983e5152, 0xee66dfab], [0xa831c66d, 0x2db43210], - [0xb00327c8, 0x98fb213f], [0xbf597fc7, 0xbeef0ee4], - [0xc6e00bf3, 0x3da88fc2], [0xd5a79147, 0x930aa725], - [0x06ca6351, 0xe003826f], [0x14292967, 0x0a0e6e70], - [0x27b70a85, 0x46d22ffc], [0x2e1b2138, 0x5c26c926], - [0x4d2c6dfc, 0x5ac42aed], [0x53380d13, 0x9d95b3df], - [0x650a7354, 0x8baf63de], [0x766a0abb, 0x3c77b2a8], - [0x81c2c92e, 0x47edaee6], [0x92722c85, 0x1482353b], - [0xa2bfe8a1, 0x4cf10364], [0xa81a664b, 0xbc423001], - [0xc24b8b70, 0xd0f89791], [0xc76c51a3, 0x0654be30], - [0xd192e819, 0xd6ef5218], [0xd6990624, 0x5565a910], - [0xf40e3585, 0x5771202a], [0x106aa070, 0x32bbd1b8], - [0x19a4c116, 0xb8d2d0c8], [0x1e376c08, 0x5141ab53], - [0x2748774c, 0xdf8eeb99], [0x34b0bcb5, 0xe19b48a8], - [0x391c0cb3, 0xc5c95a63], [0x4ed8aa4a, 0xe3418acb], - [0x5b9cca4f, 0x7763e373], [0x682e6ff3, 0xd6b2b8a3], - [0x748f82ee, 0x5defb2fc], [0x78a5636f, 0x43172f60], - [0x84c87814, 0xa1f0ab72], [0x8cc70208, 0x1a6439ec], - [0x90befffa, 0x23631e28], [0xa4506ceb, 0xde82bde9], - [0xbef9a3f7, 0xb2c67915], [0xc67178f2, 0xe372532b], - [0xca273ece, 0xea26619c], [0xd186b8c7, 0x21c0c207], - [0xeada7dd6, 0xcde0eb1e], [0xf57d4f7f, 0xee6ed178], - [0x06f067aa, 0x72176fba], [0x0a637dc5, 0xa2c898a6], - [0x113f9804, 0xbef90dae], [0x1b710b35, 0x131c471b], - [0x28db77f5, 0x23047d84], [0x32caab7b, 0x40c72493], - [0x3c9ebe0a, 0x15c9bebc], [0x431d67c4, 0x9c100d4c], - [0x4cc5d4be, 0xcb3e42b6], [0x597f299c, 0xfc657e2a], - [0x5fcb6fab, 0x3ad6faec], [0x6c44198c, 0x4a475817] - ]; + // TODO: handle other options from server when more supported - // initial hash states - _states = {}; - _states['SHA-512'] = [ - [0x6a09e667, 0xf3bcc908], - [0xbb67ae85, 0x84caa73b], - [0x3c6ef372, 0xfe94f82b], - [0xa54ff53a, 0x5f1d36f1], - [0x510e527f, 0xade682d1], - [0x9b05688c, 0x2b3e6c1f], - [0x1f83d9ab, 0xfb41bd6b], - [0x5be0cd19, 0x137e2179] - ]; - _states['SHA-384'] = [ - [0xcbbb9d5d, 0xc1059ed8], - [0x629a292a, 0x367cd507], - [0x9159015a, 0x3070dd17], - [0x152fecd8, 0xf70e5939], - [0x67332667, 0xffc00b31], - [0x8eb44a87, 0x68581511], - [0xdb0c2e0d, 0x64f98fa7], - [0x47b5481d, 0xbefa4fa4] - ]; - _states['SHA-512/256'] = [ - [0x22312194, 0xFC2BF72C], - [0x9F555FA3, 0xC84C64C2], - [0x2393B86B, 0x6F53B151], - [0x96387719, 0x5940EABD], - [0x96283EE2, 0xA88EFFE3], - [0xBE5E1E25, 0x53863992], - [0x2B0199FC, 0x2C85B8AA], - [0x0EB72DDC, 0x81C52CA2] - ]; - _states['SHA-512/224'] = [ - [0x8C3D37C8, 0x19544DA2], - [0x73E19966, 0x89DCD4D6], - [0x1DFAB7AE, 0x32FF9C82], - [0x679DD514, 0x582F9FCF], - [0x0F6D2B69, 0x7BD44DA8], - [0x77E36F73, 0x04C48942], - [0x3F9D85A8, 0x6A1D36C8], - [0x1112E6AD, 0x91D692A1] - ]; + // get client and server randoms + var client = (c.entity === tls.ConnectionEnd.client); + var msgRandom = msg.random.bytes(); + var cRandom = client ? c.session.sp.client_random : msgRandom; + var sRandom = client ? msgRandom : tls.createRandom().getBytes(); - // now initialized - _initialized = true; -} + // create new security parameters + c.session.sp = { + entity: c.entity, + prf_algorithm: tls.PRFAlgorithm.tls_prf_sha256, + bulk_cipher_algorithm: null, + cipher_type: null, + enc_key_length: null, + block_length: null, + fixed_iv_length: null, + record_iv_length: null, + mac_algorithm: null, + mac_length: null, + mac_key_length: null, + compression_algorithm: c.session.compressionMethod, + pre_master_secret: null, + master_secret: null, + client_random: cRandom, + server_random: sRandom + }; +}; /** - * Updates a SHA-512 state with the given byte buffer. + * Called when a client receives a ServerHello record. * - * @param s the SHA-512 state to update. - * @param w the array to use to store words. - * @param bytes the byte buffer to update with. + * When a ServerHello message will be sent: + * The server will send this message in response to a client hello message + * when it was able to find an acceptable set of algorithms. If it cannot + * find such a match, it will respond with a handshake failure alert. + * + * uint24 length; + * struct { + * ProtocolVersion server_version; + * Random random; + * SessionID session_id; + * CipherSuite cipher_suite; + * CompressionMethod compression_method; + * select(extensions_present) { + * case false: + * struct {}; + * case true: + * Extension extensions<0..2^16-1>; + * }; + * } ServerHello; + * + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. */ -function _update(s, w, bytes) { - // consume 512 bit (128 byte) chunks - var t1_hi, t1_lo; - var t2_hi, t2_lo; - var s0_hi, s0_lo; - var s1_hi, s1_lo; - var ch_hi, ch_lo; - var maj_hi, maj_lo; - var a_hi, a_lo; - var b_hi, b_lo; - var c_hi, c_lo; - var d_hi, d_lo; - var e_hi, e_lo; - var f_hi, f_lo; - var g_hi, g_lo; - var h_hi, h_lo; - var i, hi, lo, w2, w7, w15, w16; - var len = bytes.length(); - while(len >= 128) { - // the w array will be populated with sixteen 64-bit big-endian words - // and then extended into 64 64-bit words according to SHA-512 - for(i = 0; i < 16; ++i) { - w[i][0] = bytes.getInt32() >>> 0; - w[i][1] = bytes.getInt32() >>> 0; - } - for(; i < 80; ++i) { - // for word 2 words ago: ROTR 19(x) ^ ROTR 61(x) ^ SHR 6(x) - w2 = w[i - 2]; - hi = w2[0]; - lo = w2[1]; - - // high bits - t1_hi = ( - ((hi >>> 19) | (lo << 13)) ^ // ROTR 19 - ((lo >>> 29) | (hi << 3)) ^ // ROTR 61/(swap + ROTR 29) - (hi >>> 6)) >>> 0; // SHR 6 - // low bits - t1_lo = ( - ((hi << 13) | (lo >>> 19)) ^ // ROTR 19 - ((lo << 3) | (hi >>> 29)) ^ // ROTR 61/(swap + ROTR 29) - ((hi << 26) | (lo >>> 6))) >>> 0; // SHR 6 - - // for word 15 words ago: ROTR 1(x) ^ ROTR 8(x) ^ SHR 7(x) - w15 = w[i - 15]; - hi = w15[0]; - lo = w15[1]; - - // high bits - t2_hi = ( - ((hi >>> 1) | (lo << 31)) ^ // ROTR 1 - ((hi >>> 8) | (lo << 24)) ^ // ROTR 8 - (hi >>> 7)) >>> 0; // SHR 7 - // low bits - t2_lo = ( - ((hi << 31) | (lo >>> 1)) ^ // ROTR 1 - ((hi << 24) | (lo >>> 8)) ^ // ROTR 8 - ((hi << 25) | (lo >>> 7))) >>> 0; // SHR 7 +tls.handleServerHello = function(c, record, length) { + var msg = tls.parseHelloMessage(c, record, length); + if(c.fail) { + return; + } - // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^64 (carry lo overflow) - w7 = w[i - 7]; - w16 = w[i - 16]; - lo = (t1_lo + w7[1] + t2_lo + w16[1]); - w[i][0] = (t1_hi + w7[0] + t2_hi + w16[0] + - ((lo / 0x100000000) >>> 0)) >>> 0; - w[i][1] = lo >>> 0; - } + // ensure server version is compatible + if(msg.version.minor <= c.version.minor) { + c.version.minor = msg.version.minor; + } else { + return c.error(c, { + message: 'Incompatible TLS version.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.protocol_version + } + }); + } - // initialize hash value for this chunk - a_hi = s[0][0]; - a_lo = s[0][1]; - b_hi = s[1][0]; - b_lo = s[1][1]; - c_hi = s[2][0]; - c_lo = s[2][1]; - d_hi = s[3][0]; - d_lo = s[3][1]; - e_hi = s[4][0]; - e_lo = s[4][1]; - f_hi = s[5][0]; - f_lo = s[5][1]; - g_hi = s[6][0]; - g_lo = s[6][1]; - h_hi = s[7][0]; - h_lo = s[7][1]; + // indicate session version has been set + c.session.version = c.version; - // round function - for(i = 0; i < 80; ++i) { - // Sum1(e) = ROTR 14(e) ^ ROTR 18(e) ^ ROTR 41(e) - s1_hi = ( - ((e_hi >>> 14) | (e_lo << 18)) ^ // ROTR 14 - ((e_hi >>> 18) | (e_lo << 14)) ^ // ROTR 18 - ((e_lo >>> 9) | (e_hi << 23))) >>> 0; // ROTR 41/(swap + ROTR 9) - s1_lo = ( - ((e_hi << 18) | (e_lo >>> 14)) ^ // ROTR 14 - ((e_hi << 14) | (e_lo >>> 18)) ^ // ROTR 18 - ((e_lo << 23) | (e_hi >>> 9))) >>> 0; // ROTR 41/(swap + ROTR 9) + // get the session ID from the message + var sessionId = msg.session_id.bytes(); - // Ch(e, f, g) (optimized the same way as SHA-1) - ch_hi = (g_hi ^ (e_hi & (f_hi ^ g_hi))) >>> 0; - ch_lo = (g_lo ^ (e_lo & (f_lo ^ g_lo))) >>> 0; + // if the session ID is not blank and matches the cached one, resume + // the session + if(sessionId.length > 0 && sessionId === c.session.id) { + // resuming session, expect a ChangeCipherSpec next + c.expect = SCC; + c.session.resuming = true; - // Sum0(a) = ROTR 28(a) ^ ROTR 34(a) ^ ROTR 39(a) - s0_hi = ( - ((a_hi >>> 28) | (a_lo << 4)) ^ // ROTR 28 - ((a_lo >>> 2) | (a_hi << 30)) ^ // ROTR 34/(swap + ROTR 2) - ((a_lo >>> 7) | (a_hi << 25))) >>> 0; // ROTR 39/(swap + ROTR 7) - s0_lo = ( - ((a_hi << 4) | (a_lo >>> 28)) ^ // ROTR 28 - ((a_lo << 30) | (a_hi >>> 2)) ^ // ROTR 34/(swap + ROTR 2) - ((a_lo << 25) | (a_hi >>> 7))) >>> 0; // ROTR 39/(swap + ROTR 7) + // get new server random + c.session.sp.server_random = msg.random.bytes(); + } else { + // not resuming, expect a server Certificate message next + c.expect = SCE; + c.session.resuming = false; - // Maj(a, b, c) (optimized the same way as SHA-1) - maj_hi = ((a_hi & b_hi) | (c_hi & (a_hi ^ b_hi))) >>> 0; - maj_lo = ((a_lo & b_lo) | (c_lo & (a_lo ^ b_lo))) >>> 0; + // create new security parameters + tls.createSecurityParameters(c, msg); + } - // main algorithm - // t1 = (h + s1 + ch + _k[i] + _w[i]) modulo 2^64 (carry lo overflow) - lo = (h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1]); - t1_hi = (h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] + - ((lo / 0x100000000) >>> 0)) >>> 0; - t1_lo = lo >>> 0; + // set new session ID + c.session.id = sessionId; - // t2 = s0 + maj modulo 2^64 (carry lo overflow) - lo = s0_lo + maj_lo; - t2_hi = (s0_hi + maj_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - t2_lo = lo >>> 0; + // continue + c.process(); +}; - h_hi = g_hi; - h_lo = g_lo; +/** + * Called when a server receives a ClientHello record. + * + * When a ClientHello message will be sent: + * When a client first connects to a server it is required to send the + * client hello as its first message. The client can also send a client + * hello in response to a hello request or on its own initiative in order + * to renegotiate the security parameters in an existing connection. + * + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. + */ +tls.handleClientHello = function(c, record, length) { + var msg = tls.parseHelloMessage(c, record, length); + if(c.fail) { + return; + } - g_hi = f_hi; - g_lo = f_lo; + // get the session ID from the message + var sessionId = msg.session_id.bytes(); - f_hi = e_hi; - f_lo = e_lo; + // see if the given session ID is in the cache + var session = null; + if(c.sessionCache) { + session = c.sessionCache.getSession(sessionId); + if(session === null) { + // session ID not found + sessionId = ''; + } else if(session.version.major !== msg.version.major || + session.version.minor > msg.version.minor) { + // if session version is incompatible with client version, do not resume + session = null; + sessionId = ''; + } + } - // e = (d + t1) modulo 2^64 (carry lo overflow) - lo = d_lo + t1_lo; - e_hi = (d_hi + t1_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - e_lo = lo >>> 0; + // no session found to resume, generate a new session ID + if(sessionId.length === 0) { + sessionId = forge.random.getBytes(32); + } - d_hi = c_hi; - d_lo = c_lo; + // update session + c.session.id = sessionId; + c.session.clientHelloVersion = msg.version; + c.session.sp = {}; + if(session) { + // use version and security parameters from resumed session + c.version = c.session.version = session.version; + c.session.sp = session.sp; + } else { + // use highest compatible minor version + var version; + for(var i = 1; i < tls.SupportedVersions.length; ++i) { + version = tls.SupportedVersions[i]; + if(version.minor <= msg.version.minor) { + break; + } + } + c.version = {major: version.major, minor: version.minor}; + c.session.version = c.version; + } - c_hi = b_hi; - c_lo = b_lo; + // if a session is set, resume it + if(session !== null) { + // resuming session, expect a ChangeCipherSpec next + c.expect = CCC; + c.session.resuming = true; - b_hi = a_hi; - b_lo = a_lo; + // get new client random + c.session.sp.client_random = msg.random.bytes(); + } else { + // not resuming, expect a Certificate or ClientKeyExchange + c.expect = (c.verifyClient !== false) ? CCE : CKE; + c.session.resuming = false; - // a = (t1 + t2) modulo 2^64 (carry lo overflow) - lo = t1_lo + t2_lo; - a_hi = (t1_hi + t2_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - a_lo = lo >>> 0; - } + // create new security parameters + tls.createSecurityParameters(c, msg); + } - // update hash state (additional modulo 2^64) - lo = s[0][1] + a_lo; - s[0][0] = (s[0][0] + a_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[0][1] = lo >>> 0; + // connection now open + c.open = true; - lo = s[1][1] + b_lo; - s[1][0] = (s[1][0] + b_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[1][1] = lo >>> 0; + // queue server hello + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createServerHello(c) + })); - lo = s[2][1] + c_lo; - s[2][0] = (s[2][0] + c_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[2][1] = lo >>> 0; + if(c.session.resuming) { + // queue change cipher spec message + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.change_cipher_spec, + data: tls.createChangeCipherSpec() + })); - lo = s[3][1] + d_lo; - s[3][0] = (s[3][0] + d_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[3][1] = lo >>> 0; + // create pending state + c.state.pending = tls.createConnectionState(c); - lo = s[4][1] + e_lo; - s[4][0] = (s[4][0] + e_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[4][1] = lo >>> 0; + // change current write state to pending write state + c.state.current.write = c.state.pending.write; - lo = s[5][1] + f_lo; - s[5][0] = (s[5][0] + f_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[5][1] = lo >>> 0; + // queue finished + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createFinished(c) + })); + } else { + // queue server certificate + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createCertificate(c) + })); - lo = s[6][1] + g_lo; - s[6][0] = (s[6][0] + g_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[6][1] = lo >>> 0; + if(!c.fail) { + // queue server key exchange + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createServerKeyExchange(c) + })); - lo = s[7][1] + h_lo; - s[7][0] = (s[7][0] + h_hi + ((lo / 0x100000000) >>> 0)) >>> 0; - s[7][1] = lo >>> 0; + // request client certificate if set + if(c.verifyClient !== false) { + // queue certificate request + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createCertificateRequest(c) + })); + } - len -= 128; + // queue server hello done + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createServerHelloDone(c) + })); + } } -} + // send records + tls.flush(c); -/***/ }), - -/***/ 4280: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // continue + c.process(); +}; /** - * Functions to output keys in SSH-friendly formats. - * - * This is part of the Forge project which may be used under the terms of - * either the BSD License or the GNU General Public License (GPL) Version 2. + * Called when a client receives a Certificate record. * - * See: https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE + * When this message will be sent: + * The server must send a certificate whenever the agreed-upon key exchange + * method is not an anonymous one. This message will always immediately + * follow the server hello message. * - * @author https://github.com/shellac - */ -var forge = __nccwpck_require__(9177); -__nccwpck_require__(7994); -__nccwpck_require__(5104); -__nccwpck_require__(6594); -__nccwpck_require__(279); -__nccwpck_require__(8339); - -var ssh = module.exports = forge.ssh = forge.ssh || {}; - -/** - * Encodes (and optionally encrypts) a private RSA key as a Putty PPK file. + * Meaning of this message: + * The certificate type must be appropriate for the selected cipher suite's + * key exchange algorithm, and is generally an X.509v3 certificate. It must + * contain a key which matches the key exchange method, as follows. Unless + * otherwise specified, the signing algorithm for the certificate must be + * the same as the algorithm for the certificate key. Unless otherwise + * specified, the public key may be of any length. * - * @param privateKey the key. - * @param passphrase a passphrase to protect the key (falsy for no encryption). - * @param comment a comment to include in the key file. + * opaque ASN.1Cert<1..2^24-1>; + * struct { + * ASN.1Cert certificate_list<1..2^24-1>; + * } Certificate; * - * @return the PPK file as a string. + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. */ -ssh.privateKeyToPutty = function(privateKey, passphrase, comment) { - comment = comment || ''; - passphrase = passphrase || ''; - var algorithm = 'ssh-rsa'; - var encryptionAlgorithm = (passphrase === '') ? 'none' : 'aes256-cbc'; - - var ppk = 'PuTTY-User-Key-File-2: ' + algorithm + '\r\n'; - ppk += 'Encryption: ' + encryptionAlgorithm + '\r\n'; - ppk += 'Comment: ' + comment + '\r\n'; - - // public key into buffer for ppk - var pubbuffer = forge.util.createBuffer(); - _addStringToBuffer(pubbuffer, algorithm); - _addBigIntegerToBuffer(pubbuffer, privateKey.e); - _addBigIntegerToBuffer(pubbuffer, privateKey.n); +tls.handleCertificate = function(c, record, length) { + // minimum of 3 bytes in message + if(length < 3) { + return c.error(c, { + message: 'Invalid Certificate message. Message too short.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } - // write public key - var pub = forge.util.encode64(pubbuffer.bytes(), 64); - var length = Math.floor(pub.length / 66) + 1; // 66 = 64 + \r\n - ppk += 'Public-Lines: ' + length + '\r\n'; - ppk += pub; + var b = record.fragment; + var msg = { + certificate_list: readVector(b, 3) + }; - // private key into a buffer - var privbuffer = forge.util.createBuffer(); - _addBigIntegerToBuffer(privbuffer, privateKey.d); - _addBigIntegerToBuffer(privbuffer, privateKey.p); - _addBigIntegerToBuffer(privbuffer, privateKey.q); - _addBigIntegerToBuffer(privbuffer, privateKey.qInv); + /* The sender's certificate will be first in the list (chain), each + subsequent one that follows will certify the previous one, but root + certificates (self-signed) that specify the certificate authority may + be omitted under the assumption that clients must already possess it. */ + var cert, asn1; + var certs = []; + try { + while(msg.certificate_list.length() > 0) { + // each entry in msg.certificate_list is a vector with 3 len bytes + cert = readVector(msg.certificate_list, 3); + asn1 = forge.asn1.fromDer(cert); + cert = forge.pki.certificateFromAsn1(asn1, true); + certs.push(cert); + } + } catch(ex) { + return c.error(c, { + message: 'Could not parse certificate list.', + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.bad_certificate + } + }); + } - // optionally encrypt the private key - var priv; - if(!passphrase) { - // use the unencrypted buffer - priv = forge.util.encode64(privbuffer.bytes(), 64); + // ensure at least 1 certificate was provided if in client-mode + // or if verifyClient was set to true to require a certificate + // (as opposed to 'optional') + var client = (c.entity === tls.ConnectionEnd.client); + if((client || c.verifyClient === true) && certs.length === 0) { + // error, no certificate + c.error(c, { + message: client ? + 'No server certificate provided.' : + 'No client certificate provided.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } else if(certs.length === 0) { + // no certs to verify + // expect a ServerKeyExchange or ClientKeyExchange message next + c.expect = client ? SKE : CKE; } else { - // encrypt RSA key using passphrase - var encLen = privbuffer.length() + 16 - 1; - encLen -= encLen % 16; + // save certificate in session + if(client) { + c.session.serverCertificate = certs[0]; + } else { + c.session.clientCertificate = certs[0]; + } - // pad private key with sha1-d data -- needs to be a multiple of 16 - var padding = _sha1(privbuffer.bytes()); + if(tls.verifyCertificateChain(c, certs)) { + // expect a ServerKeyExchange or ClientKeyExchange message next + c.expect = client ? SKE : CKE; + } + } - padding.truncate(padding.length() - encLen + privbuffer.length()); - privbuffer.putBuffer(padding); + // continue + c.process(); +}; - var aeskey = forge.util.createBuffer(); - aeskey.putBuffer(_sha1('\x00\x00\x00\x00', passphrase)); - aeskey.putBuffer(_sha1('\x00\x00\x00\x01', passphrase)); +/** + * Called when a client receives a ServerKeyExchange record. + * + * When this message will be sent: + * This message will be sent immediately after the server certificate + * message (or the server hello message, if this is an anonymous + * negotiation). + * + * The server key exchange message is sent by the server only when the + * server certificate message (if sent) does not contain enough data to + * allow the client to exchange a premaster secret. + * + * Meaning of this message: + * This message conveys cryptographic information to allow the client to + * communicate the premaster secret: either an RSA public key to encrypt + * the premaster secret with, or a Diffie-Hellman public key with which the + * client can complete a key exchange (with the result being the premaster + * secret.) + * + * enum { + * dhe_dss, dhe_rsa, dh_anon, rsa, dh_dss, dh_rsa + * } KeyExchangeAlgorithm; + * + * struct { + * opaque dh_p<1..2^16-1>; + * opaque dh_g<1..2^16-1>; + * opaque dh_Ys<1..2^16-1>; + * } ServerDHParams; + * + * struct { + * select(KeyExchangeAlgorithm) { + * case dh_anon: + * ServerDHParams params; + * case dhe_dss: + * case dhe_rsa: + * ServerDHParams params; + * digitally-signed struct { + * opaque client_random[32]; + * opaque server_random[32]; + * ServerDHParams params; + * } signed_params; + * case rsa: + * case dh_dss: + * case dh_rsa: + * struct {}; + * }; + * } ServerKeyExchange; + * + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. + */ +tls.handleServerKeyExchange = function(c, record, length) { + // this implementation only supports RSA, no Diffie-Hellman support + // so any length > 0 is invalid + if(length > 0) { + return c.error(c, { + message: 'Invalid key parameters. Only RSA is supported.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.unsupported_certificate + } + }); + } - // encrypt some bytes using CBC mode - // key is 40 bytes, so truncate *by* 8 bytes - var cipher = forge.aes.createEncryptionCipher(aeskey.truncate(8), 'CBC'); - cipher.start(forge.util.createBuffer().fillWithByte(0, 16)); - cipher.update(privbuffer.copy()); - cipher.finish(); - var encrypted = cipher.output; + // expect an optional CertificateRequest message next + c.expect = SCR; - // Note: this appears to differ from Putty -- is forge wrong, or putty? - // due to padding we finish as an exact multiple of 16 - encrypted.truncate(16); // all padding + // continue + c.process(); +}; - priv = forge.util.encode64(encrypted.bytes(), 64); +/** + * Called when a client receives a ClientKeyExchange record. + * + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. + */ +tls.handleClientKeyExchange = function(c, record, length) { + // this implementation only supports RSA, no Diffie-Hellman support + // so any length < 48 is invalid + if(length < 48) { + return c.error(c, { + message: 'Invalid key parameters. Only RSA is supported.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.unsupported_certificate + } + }); } - // output private key - length = Math.floor(priv.length / 66) + 1; // 64 + \r\n - ppk += '\r\nPrivate-Lines: ' + length + '\r\n'; - ppk += priv; + var b = record.fragment; + var msg = { + enc_pre_master_secret: readVector(b, 2).getBytes() + }; - // MAC - var mackey = _sha1('putty-private-key-file-mac-key', passphrase); + // do rsa decryption + var privateKey = null; + if(c.getPrivateKey) { + try { + privateKey = c.getPrivateKey(c, c.session.serverCertificate); + privateKey = forge.pki.privateKeyFromPem(privateKey); + } catch(ex) { + c.error(c, { + message: 'Could not get private key.', + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } + } - var macbuffer = forge.util.createBuffer(); - _addStringToBuffer(macbuffer, algorithm); - _addStringToBuffer(macbuffer, encryptionAlgorithm); - _addStringToBuffer(macbuffer, comment); - macbuffer.putInt32(pubbuffer.length()); - macbuffer.putBuffer(pubbuffer); - macbuffer.putInt32(privbuffer.length()); - macbuffer.putBuffer(privbuffer); + if(privateKey === null) { + return c.error(c, { + message: 'No private key set.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } - var hmac = forge.hmac.create(); - hmac.start('sha1', mackey); - hmac.update(macbuffer.bytes()); + try { + // decrypt 48-byte pre-master secret + var sp = c.session.sp; + sp.pre_master_secret = privateKey.decrypt(msg.enc_pre_master_secret); - ppk += '\r\nPrivate-MAC: ' + hmac.digest().toHex() + '\r\n'; + // ensure client hello version matches first 2 bytes + var version = c.session.clientHelloVersion; + if(version.major !== sp.pre_master_secret.charCodeAt(0) || + version.minor !== sp.pre_master_secret.charCodeAt(1)) { + // error, do not send alert (see BLEI attack below) + throw new Error('TLS version rollback attack detected.'); + } + } catch(ex) { + /* Note: Daniel Bleichenbacher [BLEI] can be used to attack a + TLS server which is using PKCS#1 encoded RSA, so instead of + failing here, we generate 48 random bytes and use that as + the pre-master secret. */ + sp.pre_master_secret = forge.random.getBytes(48); + } - return ppk; + // expect a CertificateVerify message if a Certificate was received that + // does not have fixed Diffie-Hellman params, otherwise expect + // ChangeCipherSpec + c.expect = CCC; + if(c.session.clientCertificate !== null) { + // only RSA support, so expect CertificateVerify + // TODO: support Diffie-Hellman + c.expect = CCV; + } + + // continue + c.process(); }; /** - * Encodes a public RSA key as an OpenSSH file. + * Called when a client receives a CertificateRequest record. * - * @param key the key. - * @param comment a comment. + * When this message will be sent: + * A non-anonymous server can optionally request a certificate from the + * client, if appropriate for the selected cipher suite. This message, if + * sent, will immediately follow the Server Key Exchange message (if it is + * sent; otherwise, the Server Certificate message). * - * @return the public key in OpenSSH format. - */ -ssh.publicKeyToOpenSSH = function(key, comment) { - var type = 'ssh-rsa'; - comment = comment || ''; - - var buffer = forge.util.createBuffer(); - _addStringToBuffer(buffer, type); - _addBigIntegerToBuffer(buffer, key.e); - _addBigIntegerToBuffer(buffer, key.n); - - return type + ' ' + forge.util.encode64(buffer.bytes()) + ' ' + comment; -}; - -/** - * Encodes a private RSA key as an OpenSSH file. + * enum { + * rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4), + * rsa_ephemeral_dh_RESERVED(5), dss_ephemeral_dh_RESERVED(6), + * fortezza_dms_RESERVED(20), (255) + * } ClientCertificateType; * - * @param key the key. - * @param passphrase a passphrase to protect the key (falsy for no encryption). + * opaque DistinguishedName<1..2^16-1>; * - * @return the public key in OpenSSH format. + * struct { + * ClientCertificateType certificate_types<1..2^8-1>; + * SignatureAndHashAlgorithm supported_signature_algorithms<2^16-1>; + * DistinguishedName certificate_authorities<0..2^16-1>; + * } CertificateRequest; + * + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. */ -ssh.privateKeyToOpenSSH = function(privateKey, passphrase) { - if(!passphrase) { - return forge.pki.privateKeyToPem(privateKey); +tls.handleCertificateRequest = function(c, record, length) { + // minimum of 3 bytes in message + if(length < 3) { + return c.error(c, { + message: 'Invalid CertificateRequest. Message too short.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); } - // OpenSSH private key is just a legacy format, it seems - return forge.pki.encryptRsaPrivateKey(privateKey, passphrase, - {legacy: true, algorithm: 'aes128'}); -}; -/** - * Gets the SSH fingerprint for the given public key. - * - * @param options the options to use. - * [md] the message digest object to use (defaults to forge.md.md5). - * [encoding] an alternative output encoding, such as 'hex' - * (defaults to none, outputs a byte buffer). - * [delimiter] the delimiter to use between bytes for 'hex' encoded - * output, eg: ':' (defaults to none). - * - * @return the fingerprint as a byte buffer or other encoding based on options. - */ -ssh.getPublicKeyFingerprint = function(key, options) { - options = options || {}; - var md = options.md || forge.md.md5.create(); + // TODO: TLS 1.2+ has different format including + // SignatureAndHashAlgorithm after cert types + var b = record.fragment; + var msg = { + certificate_types: readVector(b, 1), + certificate_authorities: readVector(b, 2) + }; - var type = 'ssh-rsa'; - var buffer = forge.util.createBuffer(); - _addStringToBuffer(buffer, type); - _addBigIntegerToBuffer(buffer, key.e); - _addBigIntegerToBuffer(buffer, key.n); + // save certificate request in session + c.session.certificateRequest = msg; - // hash public key bytes - md.start(); - md.update(buffer.getBytes()); - var digest = md.digest(); - if(options.encoding === 'hex') { - var hex = digest.toHex(); - if(options.delimiter) { - return hex.match(/.{2}/g).join(options.delimiter); - } - return hex; - } else if(options.encoding === 'binary') { - return digest.getBytes(); - } else if(options.encoding) { - throw new Error('Unknown encoding "' + options.encoding + '".'); - } - return digest; + // expect a ServerHelloDone message next + c.expect = SHD; + + // continue + c.process(); }; /** - * Adds len(val) then val to a buffer. + * Called when a server receives a CertificateVerify record. * - * @param buffer the buffer to add to. - * @param val a big integer. + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. */ -function _addBigIntegerToBuffer(buffer, val) { - var hexVal = val.toString(16); - // ensure 2s complement +ve - if(hexVal[0] >= '8') { - hexVal = '00' + hexVal; +tls.handleCertificateVerify = function(c, record, length) { + if(length < 2) { + return c.error(c, { + message: 'Invalid CertificateVerify. Message too short.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); } - var bytes = forge.util.hexToBytes(hexVal); - buffer.putInt32(bytes.length); - buffer.putBytes(bytes); -} -/** - * Adds len(val) then val to a buffer. - * - * @param buffer the buffer to add to. - * @param val a string. - */ -function _addStringToBuffer(buffer, val) { - buffer.putInt32(val.length); - buffer.putString(val); -} + // rewind to get full bytes for message so it can be manually + // digested below (special case for CertificateVerify messages because + // they must be digested *after* handling as opposed to all others) + var b = record.fragment; + b.read -= 4; + var msgBytes = b.bytes(); + b.read += 4; -/** - * Hashes the arguments into one value using SHA-1. - * - * @return the sha1 hash of the provided arguments. - */ -function _sha1() { - var sha = forge.md.sha1.create(); - var num = arguments.length; - for (var i = 0; i < num; ++i) { - sha.update(arguments[i]); - } - return sha.digest(); -} + var msg = { + signature: readVector(b, 2).getBytes() + }; + // TODO: add support for DSA -/***/ }), + // generate data to verify + var verify = forge.util.createBuffer(); + verify.putBuffer(c.session.md5.digest()); + verify.putBuffer(c.session.sha1.digest()); + verify = verify.getBytes(); -/***/ 639: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + try { + var cert = c.session.clientCertificate; + /*b = forge.pki.rsa.decrypt( + msg.signature, cert.publicKey, true, verify.length); + if(b !== verify) {*/ + if(!cert.publicKey.verify(verify, msg.signature, 'NONE')) { + throw new Error('CertificateVerify signature does not match.'); + } -/** - * A Javascript implementation of Transport Layer Security (TLS). - * - * @author Dave Longley - * - * Copyright (c) 2009-2014 Digital Bazaar, Inc. - * - * The TLS Handshake Protocol involves the following steps: - * - * - Exchange hello messages to agree on algorithms, exchange random values, - * and check for session resumption. - * - * - Exchange the necessary cryptographic parameters to allow the client and - * server to agree on a premaster secret. - * - * - Exchange certificates and cryptographic information to allow the client - * and server to authenticate themselves. - * - * - Generate a master secret from the premaster secret and exchanged random - * values. - * - * - Provide security parameters to the record layer. - * - * - Allow the client and server to verify that their peer has calculated the - * same security parameters and that the handshake occurred without tampering - * by an attacker. - * - * Up to 4 different messages may be sent during a key exchange. The server - * certificate, the server key exchange, the client certificate, and the - * client key exchange. - * - * A typical handshake (from the client's perspective). - * - * 1. Client sends ClientHello. - * 2. Client receives ServerHello. - * 3. Client receives optional Certificate. - * 4. Client receives optional ServerKeyExchange. - * 5. Client receives ServerHelloDone. - * 6. Client sends optional Certificate. - * 7. Client sends ClientKeyExchange. - * 8. Client sends optional CertificateVerify. - * 9. Client sends ChangeCipherSpec. - * 10. Client sends Finished. - * 11. Client receives ChangeCipherSpec. - * 12. Client receives Finished. - * 13. Client sends/receives application data. - * - * To reuse an existing session: - * - * 1. Client sends ClientHello with session ID for reuse. - * 2. Client receives ServerHello with same session ID if reusing. - * 3. Client receives ChangeCipherSpec message if reusing. - * 4. Client receives Finished. - * 5. Client sends ChangeCipherSpec. - * 6. Client sends Finished. - * - * Note: Client ignores HelloRequest if in the middle of a handshake. - * - * Record Layer: - * - * The record layer fragments information blocks into TLSPlaintext records - * carrying data in chunks of 2^14 bytes or less. Client message boundaries are - * not preserved in the record layer (i.e., multiple client messages of the - * same ContentType MAY be coalesced into a single TLSPlaintext record, or a - * single message MAY be fragmented across several records). - * - * struct { - * uint8 major; - * uint8 minor; - * } ProtocolVersion; - * - * struct { - * ContentType type; - * ProtocolVersion version; - * uint16 length; - * opaque fragment[TLSPlaintext.length]; - * } TLSPlaintext; - * - * type: - * The higher-level protocol used to process the enclosed fragment. - * - * version: - * The version of the protocol being employed. TLS Version 1.2 uses version - * {3, 3}. TLS Version 1.0 uses version {3, 1}. Note that a client that - * supports multiple versions of TLS may not know what version will be - * employed before it receives the ServerHello. - * - * length: - * The length (in bytes) of the following TLSPlaintext.fragment. The length - * MUST NOT exceed 2^14 = 16384 bytes. - * - * fragment: - * The application data. This data is transparent and treated as an - * independent block to be dealt with by the higher-level protocol specified - * by the type field. - * - * Implementations MUST NOT send zero-length fragments of Handshake, Alert, or - * ChangeCipherSpec content types. Zero-length fragments of Application data - * MAY be sent as they are potentially useful as a traffic analysis - * countermeasure. - * - * Note: Data of different TLS record layer content types MAY be interleaved. - * Application data is generally of lower precedence for transmission than - * other content types. However, records MUST be delivered to the network in - * the same order as they are protected by the record layer. Recipients MUST - * receive and process interleaved application layer traffic during handshakes - * subsequent to the first one on a connection. - * - * struct { - * ContentType type; // same as TLSPlaintext.type - * ProtocolVersion version;// same as TLSPlaintext.version - * uint16 length; - * opaque fragment[TLSCompressed.length]; - * } TLSCompressed; - * - * length: - * The length (in bytes) of the following TLSCompressed.fragment. - * The length MUST NOT exceed 2^14 + 1024. - * - * fragment: - * The compressed form of TLSPlaintext.fragment. - * - * Note: A CompressionMethod.null operation is an identity operation; no fields - * are altered. In this implementation, since no compression is supported, - * uncompressed records are always the same as compressed records. - * - * Encryption Information: - * - * The encryption and MAC functions translate a TLSCompressed structure into a - * TLSCiphertext. The decryption functions reverse the process. The MAC of the - * record also includes a sequence number so that missing, extra, or repeated - * messages are detectable. - * - * struct { - * ContentType type; - * ProtocolVersion version; - * uint16 length; - * select (SecurityParameters.cipher_type) { - * case stream: GenericStreamCipher; - * case block: GenericBlockCipher; - * case aead: GenericAEADCipher; - * } fragment; - * } TLSCiphertext; - * - * type: - * The type field is identical to TLSCompressed.type. - * - * version: - * The version field is identical to TLSCompressed.version. - * - * length: - * The length (in bytes) of the following TLSCiphertext.fragment. - * The length MUST NOT exceed 2^14 + 2048. - * - * fragment: - * The encrypted form of TLSCompressed.fragment, with the MAC. - * - * Note: Only CBC Block Ciphers are supported by this implementation. - * - * The TLSCompressed.fragment structures are converted to/from block - * TLSCiphertext.fragment structures. - * - * struct { - * opaque IV[SecurityParameters.record_iv_length]; - * block-ciphered struct { - * opaque content[TLSCompressed.length]; - * opaque MAC[SecurityParameters.mac_length]; - * uint8 padding[GenericBlockCipher.padding_length]; - * uint8 padding_length; - * }; - * } GenericBlockCipher; - * - * The MAC is generated as described in Section 6.2.3.1. - * - * IV: - * The Initialization Vector (IV) SHOULD be chosen at random, and MUST be - * unpredictable. Note that in versions of TLS prior to 1.1, there was no - * IV field, and the last ciphertext block of the previous record (the "CBC - * residue") was used as the IV. This was changed to prevent the attacks - * described in [CBCATT]. For block ciphers, the IV length is of length - * SecurityParameters.record_iv_length, which is equal to the - * SecurityParameters.block_size. - * - * padding: - * Padding that is added to force the length of the plaintext to be an - * integral multiple of the block cipher's block length. The padding MAY be - * any length up to 255 bytes, as long as it results in the - * TLSCiphertext.length being an integral multiple of the block length. - * Lengths longer than necessary might be desirable to frustrate attacks on - * a protocol that are based on analysis of the lengths of exchanged - * messages. Each uint8 in the padding data vector MUST be filled with the - * padding length value. The receiver MUST check this padding and MUST use - * the bad_record_mac alert to indicate padding errors. - * - * padding_length: - * The padding length MUST be such that the total size of the - * GenericBlockCipher structure is a multiple of the cipher's block length. - * Legal values range from zero to 255, inclusive. This length specifies the - * length of the padding field exclusive of the padding_length field itself. - * - * The encrypted data length (TLSCiphertext.length) is one more than the sum of - * SecurityParameters.block_length, TLSCompressed.length, - * SecurityParameters.mac_length, and padding_length. - * - * Example: If the block length is 8 bytes, the content length - * (TLSCompressed.length) is 61 bytes, and the MAC length is 20 bytes, then the - * length before padding is 82 bytes (this does not include the IV. Thus, the - * padding length modulo 8 must be equal to 6 in order to make the total length - * an even multiple of 8 bytes (the block length). The padding length can be - * 6, 14, 22, and so on, through 254. If the padding length were the minimum - * necessary, 6, the padding would be 6 bytes, each containing the value 6. - * Thus, the last 8 octets of the GenericBlockCipher before block encryption - * would be xx 06 06 06 06 06 06 06, where xx is the last octet of the MAC. - * - * Note: With block ciphers in CBC mode (Cipher Block Chaining), it is critical - * that the entire plaintext of the record be known before any ciphertext is - * transmitted. Otherwise, it is possible for the attacker to mount the attack - * described in [CBCATT]. - * - * Implementation note: Canvel et al. [CBCTIME] have demonstrated a timing - * attack on CBC padding based on the time required to compute the MAC. In - * order to defend against this attack, implementations MUST ensure that - * record processing time is essentially the same whether or not the padding - * is correct. In general, the best way to do this is to compute the MAC even - * if the padding is incorrect, and only then reject the packet. For instance, - * if the pad appears to be incorrect, the implementation might assume a - * zero-length pad and then compute the MAC. This leaves a small timing - * channel, since MAC performance depends, to some extent, on the size of the - * data fragment, but it is not believed to be large enough to be exploitable, - * due to the large block size of existing MACs and the small size of the - * timing signal. - */ -var forge = __nccwpck_require__(9177); -__nccwpck_require__(9549); -__nccwpck_require__(5104); -__nccwpck_require__(6594); -__nccwpck_require__(154); -__nccwpck_require__(6924); -__nccwpck_require__(7821); -__nccwpck_require__(279); -__nccwpck_require__(8339); + // digest message now that it has been handled + c.session.md5.update(msgBytes); + c.session.sha1.update(msgBytes); + } catch(ex) { + return c.error(c, { + message: 'Bad signature in CertificateVerify.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.handshake_failure + } + }); + } + + // expect ChangeCipherSpec + c.expect = CCC; + + // continue + c.process(); +}; /** - * Generates pseudo random bytes by mixing the result of two hash functions, - * MD5 and SHA-1. - * - * prf_TLS1(secret, label, seed) = - * P_MD5(S1, label + seed) XOR P_SHA-1(S2, label + seed); - * - * Each P_hash function functions as follows: - * - * P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) + - * HMAC_hash(secret, A(2) + seed) + - * HMAC_hash(secret, A(3) + seed) + ... - * A() is defined as: - * A(0) = seed - * A(i) = HMAC_hash(secret, A(i-1)) - * - * The '+' operator denotes concatenation. - * - * As many iterations A(N) as are needed are performed to generate enough - * pseudo random byte output. If an iteration creates more data than is - * necessary, then it is truncated. + * Called when a client receives a ServerHelloDone record. * - * Therefore: - * A(1) = HMAC_hash(secret, A(0)) - * = HMAC_hash(secret, seed) - * A(2) = HMAC_hash(secret, A(1)) - * = HMAC_hash(secret, HMAC_hash(secret, seed)) + * When this message will be sent: + * The server hello done message is sent by the server to indicate the end + * of the server hello and associated messages. After sending this message + * the server will wait for a client response. * - * Therefore: - * P_hash(secret, seed) = - * HMAC_hash(secret, HMAC_hash(secret, A(0)) + seed) + - * HMAC_hash(secret, HMAC_hash(secret, A(1)) + seed) + - * ... + * Meaning of this message: + * This message means that the server is done sending messages to support + * the key exchange, and the client can proceed with its phase of the key + * exchange. * - * Therefore: - * P_hash(secret, seed) = - * HMAC_hash(secret, HMAC_hash(secret, seed) + seed) + - * HMAC_hash(secret, HMAC_hash(secret, HMAC_hash(secret, seed)) + seed) + - * ... + * Upon receipt of the server hello done message the client should verify + * that the server provided a valid certificate if required and check that + * the server hello parameters are acceptable. * - * @param secret the secret to use. - * @param label the label to use. - * @param seed the seed value to use. - * @param length the number of bytes to generate. + * struct {} ServerHelloDone; * - * @return the pseudo random bytes in a byte buffer. + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. */ -var prf_TLS1 = function(secret, label, seed, length) { - var rval = forge.util.createBuffer(); +tls.handleServerHelloDone = function(c, record, length) { + // len must be 0 bytes + if(length > 0) { + return c.error(c, { + message: 'Invalid ServerHelloDone message. Invalid length.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.record_overflow + } + }); + } - /* For TLS 1.0, the secret is split in half, into two secrets of equal - length. If the secret has an odd length then the last byte of the first - half will be the same as the first byte of the second. The length of the - two secrets is half of the secret rounded up. */ - var idx = (secret.length >> 1); - var slen = idx + (secret.length & 1); - var s1 = secret.substr(0, slen); - var s2 = secret.substr(idx, slen); - var ai = forge.util.createBuffer(); - var hmac = forge.hmac.create(); - seed = label + seed; + if(c.serverCertificate === null) { + // no server certificate was provided + var error = { + message: 'No server certificate provided. Not enough security.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.insufficient_security + } + }; - // determine the number of iterations that must be performed to generate - // enough output bytes, md5 creates 16 byte hashes, sha1 creates 20 - var md5itr = Math.ceil(length / 16); - var sha1itr = Math.ceil(length / 20); + // call application callback + var depth = 0; + var ret = c.verify(c, error.alert.description, depth, []); + if(ret !== true) { + // check for custom alert info + if(ret || ret === 0) { + // set custom message and alert description + if(typeof ret === 'object' && !forge.util.isArray(ret)) { + if(ret.message) { + error.message = ret.message; + } + if(ret.alert) { + error.alert.description = ret.alert; + } + } else if(typeof ret === 'number') { + // set custom alert description + error.alert.description = ret; + } + } - // do md5 iterations - hmac.start('MD5', s1); - var md5bytes = forge.util.createBuffer(); - ai.putBytes(seed); - for(var i = 0; i < md5itr; ++i) { - // HMAC_hash(secret, A(i-1)) - hmac.start(null, null); - hmac.update(ai.getBytes()); - ai.putBuffer(hmac.digest()); + // send error + return c.error(c, error); + } + } - // HMAC_hash(secret, A(i) + seed) - hmac.start(null, null); - hmac.update(ai.bytes() + seed); - md5bytes.putBuffer(hmac.digest()); + // create client certificate message if requested + if(c.session.certificateRequest !== null) { + record = tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createCertificate(c) + }); + tls.queue(c, record); } - // do sha1 iterations - hmac.start('SHA1', s2); - var sha1bytes = forge.util.createBuffer(); - ai.clear(); - ai.putBytes(seed); - for(var i = 0; i < sha1itr; ++i) { - // HMAC_hash(secret, A(i-1)) - hmac.start(null, null); - hmac.update(ai.getBytes()); - ai.putBuffer(hmac.digest()); + // create client key exchange message + record = tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createClientKeyExchange(c) + }); + tls.queue(c, record); - // HMAC_hash(secret, A(i) + seed) - hmac.start(null, null); - hmac.update(ai.bytes() + seed); - sha1bytes.putBuffer(hmac.digest()); - } + // expect no messages until the following callback has been called + c.expect = SER; - // XOR the md5 bytes with the sha1 bytes - rval.putBytes(forge.util.xorBytes( - md5bytes.getBytes(), sha1bytes.getBytes(), length)); + // create callback to handle client signature (for client-certs) + var callback = function(c, signature) { + if(c.session.certificateRequest !== null && + c.session.clientCertificate !== null) { + // create certificate verify message + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createCertificateVerify(c, signature) + })); + } - return rval; + // create change cipher spec message + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.change_cipher_spec, + data: tls.createChangeCipherSpec() + })); + + // create pending state + c.state.pending = tls.createConnectionState(c); + + // change current write state to pending write state + c.state.current.write = c.state.pending.write; + + // create finished message + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createFinished(c) + })); + + // expect a server ChangeCipherSpec message next + c.expect = SCC; + + // send records + tls.flush(c); + + // continue + c.process(); + }; + + // if there is no certificate request or no client certificate, do + // callback immediately + if(c.session.certificateRequest === null || + c.session.clientCertificate === null) { + return callback(c, null); + } + + // otherwise get the client signature + tls.getClientSignature(c, callback); }; /** - * Generates pseudo random bytes using a SHA256 algorithm. For TLS 1.2. - * - * @param secret the secret to use. - * @param label the label to use. - * @param seed the seed value to use. - * @param length the number of bytes to generate. + * Called when a ChangeCipherSpec record is received. * - * @return the pseudo random bytes in a byte buffer. + * @param c the connection. + * @param record the record. */ -var prf_sha256 = function(secret, label, seed, length) { - // FIXME: implement me for TLS 1.2 +tls.handleChangeCipherSpec = function(c, record) { + if(record.fragment.getByte() !== 0x01) { + return c.error(c, { + message: 'Invalid ChangeCipherSpec message received.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.illegal_parameter + } + }); + } + + // create pending state if: + // 1. Resuming session in client mode OR + // 2. NOT resuming session in server mode + var client = (c.entity === tls.ConnectionEnd.client); + if((c.session.resuming && client) || (!c.session.resuming && !client)) { + c.state.pending = tls.createConnectionState(c); + } + + // change current read state to pending read state + c.state.current.read = c.state.pending.read; + + // clear pending state if: + // 1. NOT resuming session in client mode OR + // 2. resuming a session in server mode + if((!c.session.resuming && client) || (c.session.resuming && !client)) { + c.state.pending = null; + } + + // expect a Finished record next + c.expect = client ? SFI : CFI; + + // continue + c.process(); }; /** - * Gets a MAC for a record using the SHA-1 hash algorithm. + * Called when a Finished record is received. * - * @param key the mac key. - * @param state the sequence number (array of two 32-bit integers). - * @param record the record. + * When this message will be sent: + * A finished message is always sent immediately after a change + * cipher spec message to verify that the key exchange and + * authentication processes were successful. It is essential that a + * change cipher spec message be received between the other + * handshake messages and the Finished message. * - * @return the sha-1 hash (20 bytes) for the given record. + * Meaning of this message: + * The finished message is the first protected with the just- + * negotiated algorithms, keys, and secrets. Recipients of finished + * messages must verify that the contents are correct. Once a side + * has sent its Finished message and received and validated the + * Finished message from its peer, it may begin to send and receive + * application data over the connection. + * + * struct { + * opaque verify_data[verify_data_length]; + * } Finished; + * + * verify_data + * PRF(master_secret, finished_label, Hash(handshake_messages)) + * [0..verify_data_length-1]; + * + * finished_label + * For Finished messages sent by the client, the string + * "client finished". For Finished messages sent by the server, the + * string "server finished". + * + * verify_data_length depends on the cipher suite. If it is not specified + * by the cipher suite, then it is 12. Versions of TLS < 1.2 always used + * 12 bytes. + * + * @param c the connection. + * @param record the record. + * @param length the length of the handshake message. */ -var hmac_sha1 = function(key, seqNum, record) { - /* MAC is computed like so: - HMAC_hash( - key, seqNum + - TLSCompressed.type + - TLSCompressed.version + - TLSCompressed.length + - TLSCompressed.fragment) - */ - var hmac = forge.hmac.create(); - hmac.start('SHA1', key); - var b = forge.util.createBuffer(); - b.putInt32(seqNum[0]); - b.putInt32(seqNum[1]); - b.putByte(record.type); - b.putByte(record.version.major); - b.putByte(record.version.minor); - b.putInt16(record.length); - b.putBytes(record.fragment.bytes()); - hmac.update(b.getBytes()); - return hmac.digest().getBytes(); +tls.handleFinished = function(c, record, length) { + // rewind to get full bytes for message so it can be manually + // digested below (special case for Finished messages because they + // must be digested *after* handling as opposed to all others) + var b = record.fragment; + b.read -= 4; + var msgBytes = b.bytes(); + b.read += 4; + + // message contains only verify_data + var vd = record.fragment.getBytes(); + + // ensure verify data is correct + b = forge.util.createBuffer(); + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + + // set label based on entity type + var client = (c.entity === tls.ConnectionEnd.client); + var label = client ? 'server finished' : 'client finished'; + + // TODO: determine prf function and verify length for TLS 1.2 + var sp = c.session.sp; + var vdl = 12; + var prf = prf_TLS1; + b = prf(sp.master_secret, label, b.getBytes(), vdl); + if(b.getBytes() !== vd) { + return c.error(c, { + message: 'Invalid verify_data in Finished message.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.decrypt_error + } + }); + } + + // digest finished message now that it has been handled + c.session.md5.update(msgBytes); + c.session.sha1.update(msgBytes); + + // resuming session as client or NOT resuming session as server + if((c.session.resuming && client) || (!c.session.resuming && !client)) { + // create change cipher spec message + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.change_cipher_spec, + data: tls.createChangeCipherSpec() + })); + + // change current write state to pending write state, clear pending + c.state.current.write = c.state.pending.write; + c.state.pending = null; + + // create finished message + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createFinished(c) + })); + } + + // expect application data next + c.expect = client ? SAD : CAD; + + // handshake complete + c.handshaking = false; + ++c.handshakes; + + // save access to peer certificate + c.peerCertificate = client ? + c.session.serverCertificate : c.session.clientCertificate; + + // send records + tls.flush(c); + + // now connected + c.isConnected = true; + c.connected(c); + + // continue + c.process(); }; /** - * Compresses the TLSPlaintext record into a TLSCompressed record using the - * deflate algorithm. - * - * @param c the TLS connection. - * @param record the TLSPlaintext record to compress. - * @param s the ConnectionState to use. + * Called when an Alert record is received. * - * @return true on success, false on failure. + * @param c the connection. + * @param record the record. */ -var deflate = function(c, record, s) { - var rval = false; +tls.handleAlert = function(c, record) { + // read alert + var b = record.fragment; + var alert = { + level: b.getByte(), + description: b.getByte() + }; + + // TODO: consider using a table? + // get appropriate message + var msg; + switch(alert.description) { + case tls.Alert.Description.close_notify: + msg = 'Connection closed.'; + break; + case tls.Alert.Description.unexpected_message: + msg = 'Unexpected message.'; + break; + case tls.Alert.Description.bad_record_mac: + msg = 'Bad record MAC.'; + break; + case tls.Alert.Description.decryption_failed: + msg = 'Decryption failed.'; + break; + case tls.Alert.Description.record_overflow: + msg = 'Record overflow.'; + break; + case tls.Alert.Description.decompression_failure: + msg = 'Decompression failed.'; + break; + case tls.Alert.Description.handshake_failure: + msg = 'Handshake failure.'; + break; + case tls.Alert.Description.bad_certificate: + msg = 'Bad certificate.'; + break; + case tls.Alert.Description.unsupported_certificate: + msg = 'Unsupported certificate.'; + break; + case tls.Alert.Description.certificate_revoked: + msg = 'Certificate revoked.'; + break; + case tls.Alert.Description.certificate_expired: + msg = 'Certificate expired.'; + break; + case tls.Alert.Description.certificate_unknown: + msg = 'Certificate unknown.'; + break; + case tls.Alert.Description.illegal_parameter: + msg = 'Illegal parameter.'; + break; + case tls.Alert.Description.unknown_ca: + msg = 'Unknown certificate authority.'; + break; + case tls.Alert.Description.access_denied: + msg = 'Access denied.'; + break; + case tls.Alert.Description.decode_error: + msg = 'Decode error.'; + break; + case tls.Alert.Description.decrypt_error: + msg = 'Decrypt error.'; + break; + case tls.Alert.Description.export_restriction: + msg = 'Export restriction.'; + break; + case tls.Alert.Description.protocol_version: + msg = 'Unsupported protocol version.'; + break; + case tls.Alert.Description.insufficient_security: + msg = 'Insufficient security.'; + break; + case tls.Alert.Description.internal_error: + msg = 'Internal error.'; + break; + case tls.Alert.Description.user_canceled: + msg = 'User canceled.'; + break; + case tls.Alert.Description.no_renegotiation: + msg = 'Renegotiation not supported.'; + break; + default: + msg = 'Unknown error.'; + break; + } - try { - var bytes = c.deflate(record.fragment.getBytes()); - record.fragment = forge.util.createBuffer(bytes); - record.length = bytes.length; - rval = true; - } catch(ex) { - // deflate error, fail out + // close connection on close_notify, not an error + if(alert.description === tls.Alert.Description.close_notify) { + return c.close(); } - return rval; + // call error handler + c.error(c, { + message: msg, + send: false, + // origin is the opposite end + origin: (c.entity === tls.ConnectionEnd.client) ? 'server' : 'client', + alert: alert + }); + + // continue + c.process(); }; /** - * Decompresses the TLSCompressed record into a TLSPlaintext record using the - * deflate algorithm. - * - * @param c the TLS connection. - * @param record the TLSCompressed record to decompress. - * @param s the ConnectionState to use. + * Called when a Handshake record is received. * - * @return true on success, false on failure. + * @param c the connection. + * @param record the record. */ -var inflate = function(c, record, s) { - var rval = false; +tls.handleHandshake = function(c, record) { + // get the handshake type and message length + var b = record.fragment; + var type = b.getByte(); + var length = b.getInt24(); - try { - var bytes = c.inflate(record.fragment.getBytes()); - record.fragment = forge.util.createBuffer(bytes); - record.length = bytes.length; - rval = true; - } catch(ex) { - // inflate error, fail out + // see if the record fragment doesn't yet contain the full message + if(length > b.length()) { + // cache the record, clear its fragment, and reset the buffer read + // pointer before the type and length were read + c.fragmented = record; + record.fragment = forge.util.createBuffer(); + b.read -= 4; + + // continue + return c.process(); } - return rval; -}; + // full message now available, clear cache, reset read pointer to + // before type and length + c.fragmented = null; + b.read -= 4; -/** - * Reads a TLS variable-length vector from a byte buffer. - * - * Variable-length vectors are defined by specifying a subrange of legal - * lengths, inclusively, using the notation . When these are - * encoded, the actual length precedes the vector's contents in the byte - * stream. The length will be in the form of a number consuming as many bytes - * as required to hold the vector's specified maximum (ceiling) length. A - * variable-length vector with an actual length field of zero is referred to - * as an empty vector. - * - * @param b the byte buffer. - * @param lenBytes the number of bytes required to store the length. - * - * @return the resulting byte buffer. - */ -var readVector = function(b, lenBytes) { - var len = 0; - switch(lenBytes) { - case 1: - len = b.getByte(); - break; - case 2: - len = b.getInt16(); - break; - case 3: - len = b.getInt24(); - break; - case 4: - len = b.getInt32(); - break; - } + // save the handshake bytes for digestion after handler is found + // (include type and length of handshake msg) + var bytes = b.bytes(length + 4); - // read vector bytes into a new buffer - return forge.util.createBuffer(b.getBytes(len)); -}; + // restore read pointer + b.read += 4; -/** - * Writes a TLS variable-length vector to a byte buffer. - * - * @param b the byte buffer. - * @param lenBytes the number of bytes required to store the length. - * @param v the byte buffer vector. - */ -var writeVector = function(b, lenBytes, v) { - // encode length at the start of the vector, where the number of bytes for - // the length is the maximum number of bytes it would take to encode the - // vector's ceiling - b.putInt(v.length(), lenBytes << 3); - b.putBuffer(v); -}; + // handle expected message + if(type in hsTable[c.entity][c.expect]) { + // initialize server session + if(c.entity === tls.ConnectionEnd.server && !c.open && !c.fail) { + c.handshaking = true; + c.session = { + version: null, + extensions: { + server_name: { + serverNameList: [] + } + }, + cipherSuite: null, + compressionMethod: null, + serverCertificate: null, + clientCertificate: null, + md5: forge.md.md5.create(), + sha1: forge.md.sha1.create() + }; + } -/** - * The tls implementation. - */ -var tls = {}; + /* Update handshake messages digest. Finished and CertificateVerify + messages are not digested here. They can't be digested as part of + the verify_data that they contain. These messages are manually + digested in their handlers. HelloRequest messages are simply never + included in the handshake message digest according to spec. */ + if(type !== tls.HandshakeType.hello_request && + type !== tls.HandshakeType.certificate_verify && + type !== tls.HandshakeType.finished) { + c.session.md5.update(bytes); + c.session.sha1.update(bytes); + } -/** - * Version: TLS 1.2 = 3.3, TLS 1.1 = 3.2, TLS 1.0 = 3.1. Both TLS 1.1 and - * TLS 1.2 were still too new (ie: openSSL didn't implement them) at the time - * of this implementation so TLS 1.0 was implemented instead. - */ -tls.Versions = { - TLS_1_0: {major: 3, minor: 1}, - TLS_1_1: {major: 3, minor: 2}, - TLS_1_2: {major: 3, minor: 3} + // handle specific handshake type record + hsTable[c.entity][c.expect][type](c, record, length); + } else { + // unexpected record + tls.handleUnexpected(c, record); + } }; -tls.SupportedVersions = [ - tls.Versions.TLS_1_1, - tls.Versions.TLS_1_0 -]; -tls.Version = tls.SupportedVersions[0]; /** - * Maximum fragment size. True maximum is 16384, but we fragment before that - * to allow for unusual small increases during compression. + * Called when an ApplicationData record is received. + * + * @param c the connection. + * @param record the record. */ -tls.MaxFragment = 16384 - 1024; +tls.handleApplicationData = function(c, record) { + // buffer data, notify that its ready + c.data.putBuffer(record.fragment); + c.dataReady(c); -/** - * Whether this entity is considered the "client" or "server". - * enum { server, client } ConnectionEnd; - */ -tls.ConnectionEnd = { - server: 0, - client: 1 + // continue + c.process(); }; /** - * Pseudo-random function algorithm used to generate keys from the master - * secret. - * enum { tls_prf_sha256 } PRFAlgorithm; + * Called when a Heartbeat record is received. + * + * @param c the connection. + * @param record the record. */ -tls.PRFAlgorithm = { - tls_prf_sha256: 0 -}; +tls.handleHeartbeat = function(c, record) { + // get the heartbeat type and payload + var b = record.fragment; + var type = b.getByte(); + var length = b.getInt16(); + var payload = b.getBytes(length); -/** - * Bulk encryption algorithms. - * enum { null, rc4, des3, aes } BulkCipherAlgorithm; - */ -tls.BulkCipherAlgorithm = { - none: null, - rc4: 0, - des3: 1, - aes: 2 -}; + if(type === tls.HeartbeatMessageType.heartbeat_request) { + // discard request during handshake or if length is too large + if(c.handshaking || length > payload.length) { + // continue + return c.process(); + } + // retransmit payload + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.heartbeat, + data: tls.createHeartbeat( + tls.HeartbeatMessageType.heartbeat_response, payload) + })); + tls.flush(c); + } else if(type === tls.HeartbeatMessageType.heartbeat_response) { + // check payload against expected payload, discard heartbeat if no match + if(payload !== c.expectedHeartbeatPayload) { + // continue + return c.process(); + } -/** - * Cipher types. - * enum { stream, block, aead } CipherType; - */ -tls.CipherType = { - stream: 0, - block: 1, - aead: 2 -}; + // notify that a valid heartbeat was received + if(c.heartbeatReceived) { + c.heartbeatReceived(c, forge.util.createBuffer(payload)); + } + } -/** - * MAC (Message Authentication Code) algorithms. - * enum { null, hmac_md5, hmac_sha1, hmac_sha256, - * hmac_sha384, hmac_sha512} MACAlgorithm; - */ -tls.MACAlgorithm = { - none: null, - hmac_md5: 0, - hmac_sha1: 1, - hmac_sha256: 2, - hmac_sha384: 3, - hmac_sha512: 4 + // continue + c.process(); }; /** - * Compression algorithms. - * enum { null(0), deflate(1), (255) } CompressionMethod; + * The transistional state tables for receiving TLS records. It maps the + * current TLS engine state and a received record to a function to handle the + * record and update the state. + * + * For instance, if the current state is SHE, then the TLS engine is expecting + * a ServerHello record. Once a record is received, the handler function is + * looked up using the state SHE and the record's content type. + * + * The resulting function will either be an error handler or a record handler. + * The function will take whatever action is appropriate and update the state + * for the next record. + * + * The states are all based on possible server record types. Note that the + * client will never specifically expect to receive a HelloRequest or an alert + * from the server so there is no state that reflects this. These messages may + * occur at any time. + * + * There are two tables for mapping states because there is a second tier of + * types for handshake messages. Once a record with a content type of handshake + * is received, the handshake record handler will look up the handshake type in + * the secondary map to get its appropriate handler. + * + * Valid message orders are as follows: + * + * =======================FULL HANDSHAKE====================== + * Client Server + * + * ClientHello --------> + * ServerHello + * Certificate* + * ServerKeyExchange* + * CertificateRequest* + * <-------- ServerHelloDone + * Certificate* + * ClientKeyExchange + * CertificateVerify* + * [ChangeCipherSpec] + * Finished --------> + * [ChangeCipherSpec] + * <-------- Finished + * Application Data <-------> Application Data + * + * =====================SESSION RESUMPTION===================== + * Client Server + * + * ClientHello --------> + * ServerHello + * [ChangeCipherSpec] + * <-------- Finished + * [ChangeCipherSpec] + * Finished --------> + * Application Data <-------> Application Data */ -tls.CompressionMethod = { - none: 0, - deflate: 1 -}; +// client expect states (indicate which records are expected to be received) +var SHE = 0; // rcv server hello +var SCE = 1; // rcv server certificate +var SKE = 2; // rcv server key exchange +var SCR = 3; // rcv certificate request +var SHD = 4; // rcv server hello done +var SCC = 5; // rcv change cipher spec +var SFI = 6; // rcv finished +var SAD = 7; // rcv application data +var SER = 8; // not expecting any messages at this point -/** - * TLS record content types. - * enum { - * change_cipher_spec(20), alert(21), handshake(22), - * application_data(23), (255) - * } ContentType; - */ -tls.ContentType = { - change_cipher_spec: 20, - alert: 21, - handshake: 22, - application_data: 23, - heartbeat: 24 -}; +// server expect states +var CHE = 0; // rcv client hello +var CCE = 1; // rcv client certificate +var CKE = 2; // rcv client key exchange +var CCV = 3; // rcv certificate verify +var CCC = 4; // rcv change cipher spec +var CFI = 5; // rcv finished +var CAD = 6; // rcv application data +var CER = 7; // not expecting any messages at this point -/** - * TLS handshake types. - * enum { - * hello_request(0), client_hello(1), server_hello(2), - * certificate(11), server_key_exchange (12), - * certificate_request(13), server_hello_done(14), - * certificate_verify(15), client_key_exchange(16), - * finished(20), (255) - * } HandshakeType; - */ -tls.HandshakeType = { - hello_request: 0, - client_hello: 1, - server_hello: 2, - certificate: 11, - server_key_exchange: 12, - certificate_request: 13, - server_hello_done: 14, - certificate_verify: 15, - client_key_exchange: 16, - finished: 20 -}; +// map client current expect state and content type to function +var __ = tls.handleUnexpected; +var R0 = tls.handleChangeCipherSpec; +var R1 = tls.handleAlert; +var R2 = tls.handleHandshake; +var R3 = tls.handleApplicationData; +var R4 = tls.handleHeartbeat; +var ctTable = []; +ctTable[tls.ConnectionEnd.client] = [ +// CC,AL,HS,AD,HB +/*SHE*/[__,R1,R2,__,R4], +/*SCE*/[__,R1,R2,__,R4], +/*SKE*/[__,R1,R2,__,R4], +/*SCR*/[__,R1,R2,__,R4], +/*SHD*/[__,R1,R2,__,R4], +/*SCC*/[R0,R1,__,__,R4], +/*SFI*/[__,R1,R2,__,R4], +/*SAD*/[__,R1,R2,R3,R4], +/*SER*/[__,R1,R2,__,R4] +]; + +// map server current expect state and content type to function +ctTable[tls.ConnectionEnd.server] = [ +// CC,AL,HS,AD +/*CHE*/[__,R1,R2,__,R4], +/*CCE*/[__,R1,R2,__,R4], +/*CKE*/[__,R1,R2,__,R4], +/*CCV*/[__,R1,R2,__,R4], +/*CCC*/[R0,R1,__,__,R4], +/*CFI*/[__,R1,R2,__,R4], +/*CAD*/[__,R1,R2,R3,R4], +/*CER*/[__,R1,R2,__,R4] +]; + +// map client current expect state and handshake type to function +var H0 = tls.handleHelloRequest; +var H1 = tls.handleServerHello; +var H2 = tls.handleCertificate; +var H3 = tls.handleServerKeyExchange; +var H4 = tls.handleCertificateRequest; +var H5 = tls.handleServerHelloDone; +var H6 = tls.handleFinished; +var hsTable = []; +hsTable[tls.ConnectionEnd.client] = [ +// HR,01,SH,03,04,05,06,07,08,09,10,SC,SK,CR,HD,15,CK,17,18,19,FI +/*SHE*/[__,__,H1,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], +/*SCE*/[H0,__,__,__,__,__,__,__,__,__,__,H2,H3,H4,H5,__,__,__,__,__,__], +/*SKE*/[H0,__,__,__,__,__,__,__,__,__,__,__,H3,H4,H5,__,__,__,__,__,__], +/*SCR*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,H4,H5,__,__,__,__,__,__], +/*SHD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,H5,__,__,__,__,__,__], +/*SCC*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], +/*SFI*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6], +/*SAD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], +/*SER*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__] +]; + +// map server current expect state and handshake type to function +// Note: CAD[CH] does not map to FB because renegotation is prohibited +var H7 = tls.handleClientHello; +var H8 = tls.handleClientKeyExchange; +var H9 = tls.handleCertificateVerify; +hsTable[tls.ConnectionEnd.server] = [ +// 01,CH,02,03,04,05,06,07,08,09,10,CC,12,13,14,CV,CK,17,18,19,FI +/*CHE*/[__,H7,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], +/*CCE*/[__,__,__,__,__,__,__,__,__,__,__,H2,__,__,__,__,__,__,__,__,__], +/*CKE*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H8,__,__,__,__], +/*CCV*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H9,__,__,__,__,__], +/*CCC*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], +/*CFI*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6], +/*CAD*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], +/*CER*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__] +]; /** - * TLS Alert Protocol. + * Generates the master_secret and keys using the given security parameters. + * + * The security parameters for a TLS connection state are defined as such: + * + * struct { + * ConnectionEnd entity; + * PRFAlgorithm prf_algorithm; + * BulkCipherAlgorithm bulk_cipher_algorithm; + * CipherType cipher_type; + * uint8 enc_key_length; + * uint8 block_length; + * uint8 fixed_iv_length; + * uint8 record_iv_length; + * MACAlgorithm mac_algorithm; + * uint8 mac_length; + * uint8 mac_key_length; + * CompressionMethod compression_algorithm; + * opaque master_secret[48]; + * opaque client_random[32]; + * opaque server_random[32]; + * } SecurityParameters; + * + * Note that this definition is from TLS 1.2. In TLS 1.0 some of these + * parameters are ignored because, for instance, the PRFAlgorithm is a + * builtin-fixed algorithm combining iterations of MD5 and SHA-1 in TLS 1.0. + * + * The Record Protocol requires an algorithm to generate keys required by the + * current connection state. + * + * The master secret is expanded into a sequence of secure bytes, which is then + * split to a client write MAC key, a server write MAC key, a client write + * encryption key, and a server write encryption key. In TLS 1.0 a client write + * IV and server write IV are also generated. Each of these is generated from + * the byte sequence in that order. Unused values are empty. In TLS 1.2, some + * AEAD ciphers may additionally require a client write IV and a server write + * IV (see Section 6.2.3.3). + * + * When keys, MAC keys, and IVs are generated, the master secret is used as an + * entropy source. + * + * To generate the key material, compute: + * + * master_secret = PRF(pre_master_secret, "master secret", + * ClientHello.random + ServerHello.random) + * + * key_block = PRF(SecurityParameters.master_secret, + * "key expansion", + * SecurityParameters.server_random + + * SecurityParameters.client_random); + * + * until enough output has been generated. Then, the key_block is + * partitioned as follows: + * + * client_write_MAC_key[SecurityParameters.mac_key_length] + * server_write_MAC_key[SecurityParameters.mac_key_length] + * client_write_key[SecurityParameters.enc_key_length] + * server_write_key[SecurityParameters.enc_key_length] + * client_write_IV[SecurityParameters.fixed_iv_length] + * server_write_IV[SecurityParameters.fixed_iv_length] + * + * In TLS 1.2, the client_write_IV and server_write_IV are only generated for + * implicit nonce techniques as described in Section 3.2.1 of [AEAD]. This + * implementation uses TLS 1.0 so IVs are generated. * - * enum { warning(1), fatal(2), (255) } AlertLevel; + * Implementation note: The currently defined cipher suite which requires the + * most material is AES_256_CBC_SHA256. It requires 2 x 32 byte keys and 2 x 32 + * byte MAC keys, for a total 128 bytes of key material. In TLS 1.0 it also + * requires 2 x 16 byte IVs, so it actually takes 160 bytes of key material. * - * enum { - * close_notify(0), - * unexpected_message(10), - * bad_record_mac(20), - * decryption_failed(21), - * record_overflow(22), - * decompression_failure(30), - * handshake_failure(40), - * bad_certificate(42), - * unsupported_certificate(43), - * certificate_revoked(44), - * certificate_expired(45), - * certificate_unknown(46), - * illegal_parameter(47), - * unknown_ca(48), - * access_denied(49), - * decode_error(50), - * decrypt_error(51), - * export_restriction(60), - * protocol_version(70), - * insufficient_security(71), - * internal_error(80), - * user_canceled(90), - * no_renegotiation(100), - * (255) - * } AlertDescription; + * @param c the connection. + * @param sp the security parameters to use. * - * struct { - * AlertLevel level; - * AlertDescription description; - * } Alert; + * @return the security keys. */ -tls.Alert = {}; -tls.Alert.Level = { - warning: 1, - fatal: 2 -}; -tls.Alert.Description = { - close_notify: 0, - unexpected_message: 10, - bad_record_mac: 20, - decryption_failed: 21, - record_overflow: 22, - decompression_failure: 30, - handshake_failure: 40, - bad_certificate: 42, - unsupported_certificate: 43, - certificate_revoked: 44, - certificate_expired: 45, - certificate_unknown: 46, - illegal_parameter: 47, - unknown_ca: 48, - access_denied: 49, - decode_error: 50, - decrypt_error: 51, - export_restriction: 60, - protocol_version: 70, - insufficient_security: 71, - internal_error: 80, - user_canceled: 90, - no_renegotiation: 100 -}; +tls.generateKeys = function(c, sp) { + // TLS_RSA_WITH_AES_128_CBC_SHA (required to be compliant with TLS 1.2) & + // TLS_RSA_WITH_AES_256_CBC_SHA are the only cipher suites implemented + // at present -/** - * TLS Heartbeat Message types. - * enum { - * heartbeat_request(1), - * heartbeat_response(2), - * (255) - * } HeartbeatMessageType; - */ -tls.HeartbeatMessageType = { - heartbeat_request: 1, - heartbeat_response: 2 -}; + // TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA is required to be compliant with + // TLS 1.0 but we don't care right now because AES is better and we have + // an implementation for it -/** - * Supported cipher suites. - */ -tls.CipherSuites = {}; + // TODO: TLS 1.2 implementation + /* + // determine the PRF + var prf; + switch(sp.prf_algorithm) { + case tls.PRFAlgorithm.tls_prf_sha256: + prf = prf_sha256; + break; + default: + // should never happen + throw new Error('Invalid PRF'); + } + */ -/** - * Gets a supported cipher suite from its 2 byte ID. - * - * @param twoBytes two bytes in a string. - * - * @return the matching supported cipher suite or null. - */ -tls.getCipherSuite = function(twoBytes) { - var rval = null; - for(var key in tls.CipherSuites) { - var cs = tls.CipherSuites[key]; - if(cs.id[0] === twoBytes.charCodeAt(0) && - cs.id[1] === twoBytes.charCodeAt(1)) { - rval = cs; - break; - } + // TLS 1.0/1.1 implementation + var prf = prf_TLS1; + + // concatenate server and client random + var random = sp.client_random + sp.server_random; + + // only create master secret if session is new + if(!c.session.resuming) { + // create master secret, clean up pre-master secret + sp.master_secret = prf( + sp.pre_master_secret, 'master secret', random, 48).bytes(); + sp.pre_master_secret = null; } - return rval; -}; -/** - * Called when an unexpected record is encountered. - * - * @param c the connection. - * @param record the record. - */ -tls.handleUnexpected = function(c, record) { - // if connection is client and closed, ignore unexpected messages - var ignore = (!c.open && c.entity === tls.ConnectionEnd.client); - if(!ignore) { - c.error(c, { - message: 'Unexpected message. Received TLS record out of order.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.unexpected_message - } - }); + // generate the amount of key material needed + random = sp.server_random + sp.client_random; + var length = 2 * sp.mac_key_length + 2 * sp.enc_key_length; + + // include IV for TLS/1.0 + var tls10 = (c.version.major === tls.Versions.TLS_1_0.major && + c.version.minor === tls.Versions.TLS_1_0.minor); + if(tls10) { + length += 2 * sp.fixed_iv_length; } -}; + var km = prf(sp.master_secret, 'key expansion', random, length); -/** - * Called when a client receives a HelloRequest record. - * - * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. - */ -tls.handleHelloRequest = function(c, record, length) { - // ignore renegotiation requests from the server during a handshake, but - // if handshaking, send a warning alert that renegotation is denied - if(!c.handshaking && c.handshakes > 0) { - // send alert warning - tls.queue(c, tls.createAlert(c, { - level: tls.Alert.Level.warning, - description: tls.Alert.Description.no_renegotiation - })); - tls.flush(c); + // split the key material into the MAC and encryption keys + var rval = { + client_write_MAC_key: km.getBytes(sp.mac_key_length), + server_write_MAC_key: km.getBytes(sp.mac_key_length), + client_write_key: km.getBytes(sp.enc_key_length), + server_write_key: km.getBytes(sp.enc_key_length) + }; + + // include TLS 1.0 IVs + if(tls10) { + rval.client_write_IV = km.getBytes(sp.fixed_iv_length); + rval.server_write_IV = km.getBytes(sp.fixed_iv_length); } - // continue - c.process(); + return rval; }; /** - * Parses a hello message from a ClientHello or ServerHello record. + * Creates a new initialized TLS connection state. A connection state has + * a read mode and a write mode. * - * @param record the record to parse. + * compression state: + * The current state of the compression algorithm. * - * @return the parsed message. + * cipher state: + * The current state of the encryption algorithm. This will consist of the + * scheduled key for that connection. For stream ciphers, this will also + * contain whatever state information is necessary to allow the stream to + * continue to encrypt or decrypt data. + * + * MAC key: + * The MAC key for the connection. + * + * sequence number: + * Each connection state contains a sequence number, which is maintained + * separately for read and write states. The sequence number MUST be set to + * zero whenever a connection state is made the active state. Sequence + * numbers are of type uint64 and may not exceed 2^64-1. Sequence numbers do + * not wrap. If a TLS implementation would need to wrap a sequence number, + * it must renegotiate instead. A sequence number is incremented after each + * record: specifically, the first record transmitted under a particular + * connection state MUST use sequence number 0. + * + * @param c the connection. + * + * @return the new initialized TLS connection state. */ -tls.parseHelloMessage = function(c, record, length) { - var msg = null; - +tls.createConnectionState = function(c) { var client = (c.entity === tls.ConnectionEnd.client); - // minimum of 38 bytes in message - if(length < 38) { - c.error(c, { - message: client ? - 'Invalid ServerHello message. Message too short.' : - 'Invalid ClientHello message. Message too short.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.illegal_parameter + var createMode = function() { + var mode = { + // two 32-bit numbers, first is most significant + sequenceNumber: [0, 0], + macKey: null, + macLength: 0, + macFunction: null, + cipherState: null, + cipherFunction: function(record) {return true;}, + compressionState: null, + compressFunction: function(record) {return true;}, + updateSequenceNumber: function() { + if(mode.sequenceNumber[1] === 0xFFFFFFFF) { + mode.sequenceNumber[1] = 0; + ++mode.sequenceNumber[0]; + } else { + ++mode.sequenceNumber[1]; + } } - }); - } else { - // use 'remaining' to calculate # of remaining bytes in the message - var b = record.fragment; - var remaining = b.length(); - msg = { - version: { - major: b.getByte(), - minor: b.getByte() - }, - random: forge.util.createBuffer(b.getBytes(32)), - session_id: readVector(b, 1), - extensions: [] }; - if(client) { - msg.cipher_suite = b.getBytes(2); - msg.compression_method = b.getByte(); - } else { - msg.cipher_suites = readVector(b, 2); - msg.compression_methods = readVector(b, 1); - } - - // read extensions if there are any bytes left in the message - remaining = length - (remaining - b.length()); - if(remaining > 0) { - // parse extensions - var exts = readVector(b, 2); - while(exts.length() > 0) { - msg.extensions.push({ - type: [exts.getByte(), exts.getByte()], - data: readVector(exts, 2) - }); - } - - // TODO: make extension support modular - if(!client) { - for(var i = 0; i < msg.extensions.length; ++i) { - var ext = msg.extensions[i]; - - // support SNI extension - if(ext.type[0] === 0x00 && ext.type[1] === 0x00) { - // get server name list - var snl = readVector(ext.data, 2); - while(snl.length() > 0) { - // read server name type - var snType = snl.getByte(); - - // only HostName type (0x00) is known, break out if - // another type is detected - if(snType !== 0x00) { - break; - } + return mode; + }; + var state = { + read: createMode(), + write: createMode() + }; - // add host name to server name list - c.session.extensions.server_name.serverNameList.push( - readVector(snl, 2).getBytes()); - } - } + // update function in read mode will decrypt then decompress a record + state.read.update = function(c, record) { + if(!state.read.cipherFunction(record, state.read)) { + c.error(c, { + message: 'Could not decrypt record or bad MAC.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + // doesn't matter if decryption failed or MAC was + // invalid, return the same error so as not to reveal + // which one occurred + description: tls.Alert.Description.bad_record_mac } - } - } - - // version already set, do not allow version change - if(c.session.version) { - if(msg.version.major !== c.session.version.major || - msg.version.minor !== c.session.version.minor) { - return c.error(c, { - message: 'TLS version change is disallowed during renegotiation.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.protocol_version - } - }); - } - } - - // get the chosen (ServerHello) cipher suite - if(client) { - // FIXME: should be checking configured acceptable cipher suites - c.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite); - } else { - // get a supported preferred (ClientHello) cipher suite - // choose the first supported cipher suite - var tmp = forge.util.createBuffer(msg.cipher_suites.bytes()); - while(tmp.length() > 0) { - // FIXME: should be checking configured acceptable suites - // cipher suites take up 2 bytes - c.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2)); - if(c.session.cipherSuite !== null) { - break; + }); + } else if(!state.read.compressFunction(c, record, state.read)) { + c.error(c, { + message: 'Could not decompress record.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.decompression_failure } - } + }); } + return !c.fail; + }; - // cipher suite not supported - if(c.session.cipherSuite === null) { - return c.error(c, { - message: 'No cipher suites in common.', - send: true, + // update function in write mode will compress then encrypt a record + state.write.update = function(c, record) { + if(!state.write.compressFunction(c, record, state.write)) { + // error, but do not send alert since it would require + // compression as well + c.error(c, { + message: 'Could not compress record.', + send: false, alert: { level: tls.Alert.Level.fatal, - description: tls.Alert.Description.handshake_failure - }, - cipherSuite: forge.util.bytesToHex(msg.cipher_suite) + description: tls.Alert.Description.internal_error + } + }); + } else if(!state.write.cipherFunction(record, state.write)) { + // error, but do not send alert since it would require + // encryption as well + c.error(c, { + message: 'Could not encrypt record.', + send: false, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } }); } + return !c.fail; + }; - // TODO: handle compression methods - if(client) { - c.session.compressionMethod = msg.compression_method; - } else { - // no compression - c.session.compressionMethod = tls.CompressionMethod.none; + // handle security parameters + if(c.session) { + var sp = c.session.sp; + c.session.cipherSuite.initSecurityParameters(sp); + + // generate keys + sp.keys = tls.generateKeys(c, sp); + state.read.macKey = client ? + sp.keys.server_write_MAC_key : sp.keys.client_write_MAC_key; + state.write.macKey = client ? + sp.keys.client_write_MAC_key : sp.keys.server_write_MAC_key; + + // cipher suite setup + c.session.cipherSuite.initConnectionState(state, c, sp); + + // compression setup + switch(sp.compression_algorithm) { + case tls.CompressionMethod.none: + break; + case tls.CompressionMethod.deflate: + state.read.compressFunction = inflate; + state.write.compressFunction = deflate; + break; + default: + throw new Error('Unsupported compression algorithm.'); } } - return msg; + return state; +}; + +/** + * Creates a Random structure. + * + * struct { + * uint32 gmt_unix_time; + * opaque random_bytes[28]; + * } Random; + * + * gmt_unix_time: + * The current time and date in standard UNIX 32-bit format (seconds since + * the midnight starting Jan 1, 1970, UTC, ignoring leap seconds) according + * to the sender's internal clock. Clocks are not required to be set + * correctly by the basic TLS protocol; higher-level or application + * protocols may define additional requirements. Note that, for historical + * reasons, the data element is named using GMT, the predecessor of the + * current worldwide time base, UTC. + * random_bytes: + * 28 bytes generated by a secure random number generator. + * + * @return the Random structure as a byte array. + */ +tls.createRandom = function() { + // get UTC milliseconds + var d = new Date(); + var utc = +d + d.getTimezoneOffset() * 60000; + var rval = forge.util.createBuffer(); + rval.putInt32(utc); + rval.putBytes(forge.random.getBytes(28)); + return rval; +}; + +/** + * Creates a TLS record with the given type and data. + * + * @param c the connection. + * @param options: + * type: the record type. + * data: the plain text data in a byte buffer. + * + * @return the created record. + */ +tls.createRecord = function(c, options) { + if(!options.data) { + return null; + } + var record = { + type: options.type, + version: { + major: c.version.major, + minor: c.version.minor + }, + length: options.data.length(), + fragment: options.data + }; + return record; +}; + +/** + * Creates a TLS alert record. + * + * @param c the connection. + * @param alert: + * level: the TLS alert level. + * description: the TLS alert description. + * + * @return the created alert record. + */ +tls.createAlert = function(c, alert) { + var b = forge.util.createBuffer(); + b.putByte(alert.level); + b.putByte(alert.description); + return tls.createRecord(c, { + type: tls.ContentType.alert, + data: b + }); }; -/** - * Creates security parameters for the given connection based on the given - * hello message. +/* The structure of a TLS handshake message. * - * @param c the TLS connection. - * @param msg the hello message. + * struct { + * HandshakeType msg_type; // handshake type + * uint24 length; // bytes in message + * select(HandshakeType) { + * case hello_request: HelloRequest; + * case client_hello: ClientHello; + * case server_hello: ServerHello; + * case certificate: Certificate; + * case server_key_exchange: ServerKeyExchange; + * case certificate_request: CertificateRequest; + * case server_hello_done: ServerHelloDone; + * case certificate_verify: CertificateVerify; + * case client_key_exchange: ClientKeyExchange; + * case finished: Finished; + * } body; + * } Handshake; */ -tls.createSecurityParameters = function(c, msg) { - /* Note: security params are from TLS 1.2, some values like prf_algorithm - are ignored for TLS 1.0/1.1 and the builtin as specified in the spec is - used. */ - - // TODO: handle other options from server when more supported - - // get client and server randoms - var client = (c.entity === tls.ConnectionEnd.client); - var msgRandom = msg.random.bytes(); - var cRandom = client ? c.session.sp.client_random : msgRandom; - var sRandom = client ? msgRandom : tls.createRandom().getBytes(); - - // create new security parameters - c.session.sp = { - entity: c.entity, - prf_algorithm: tls.PRFAlgorithm.tls_prf_sha256, - bulk_cipher_algorithm: null, - cipher_type: null, - enc_key_length: null, - block_length: null, - fixed_iv_length: null, - record_iv_length: null, - mac_algorithm: null, - mac_length: null, - mac_key_length: null, - compression_algorithm: c.session.compressionMethod, - pre_master_secret: null, - master_secret: null, - client_random: cRandom, - server_random: sRandom - }; -}; /** - * Called when a client receives a ServerHello record. + * Creates a ClientHello message. * - * When a ServerHello message will be sent: - * The server will send this message in response to a client hello message - * when it was able to find an acceptable set of algorithms. If it cannot - * find such a match, it will respond with a handshake failure alert. + * opaque SessionID<0..32>; + * enum { null(0), deflate(1), (255) } CompressionMethod; + * uint8 CipherSuite[2]; * - * uint24 length; * struct { - * ProtocolVersion server_version; + * ProtocolVersion client_version; * Random random; * SessionID session_id; - * CipherSuite cipher_suite; - * CompressionMethod compression_method; + * CipherSuite cipher_suites<2..2^16-2>; + * CompressionMethod compression_methods<1..2^8-1>; * select(extensions_present) { * case false: * struct {}; * case true: * Extension extensions<0..2^16-1>; * }; - * } ServerHello; + * } ClientHello; + * + * The extension format for extended client hellos and server hellos is: + * + * struct { + * ExtensionType extension_type; + * opaque extension_data<0..2^16-1>; + * } Extension; + * + * Here: + * + * - "extension_type" identifies the particular extension type. + * - "extension_data" contains information specific to the particular + * extension type. + * + * The extension types defined in this document are: + * + * enum { + * server_name(0), max_fragment_length(1), + * client_certificate_url(2), trusted_ca_keys(3), + * truncated_hmac(4), status_request(5), (65535) + * } ExtensionType; * * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * + * @return the ClientHello byte buffer. */ -tls.handleServerHello = function(c, record, length) { - var msg = tls.parseHelloMessage(c, record, length); - if(c.fail) { - return; +tls.createClientHello = function(c) { + // save hello version + c.session.clientHelloVersion = { + major: c.version.major, + minor: c.version.minor + }; + + // create supported cipher suites + var cipherSuites = forge.util.createBuffer(); + for(var i = 0; i < c.cipherSuites.length; ++i) { + var cs = c.cipherSuites[i]; + cipherSuites.putByte(cs.id[0]); + cipherSuites.putByte(cs.id[1]); } + var cSuites = cipherSuites.length(); - // ensure server version is compatible - if(msg.version.minor <= c.version.minor) { - c.version.minor = msg.version.minor; - } else { - return c.error(c, { - message: 'Incompatible TLS version.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.protocol_version - } - }); + // create supported compression methods, null always supported, but + // also support deflate if connection has inflate and deflate methods + var compressionMethods = forge.util.createBuffer(); + compressionMethods.putByte(tls.CompressionMethod.none); + // FIXME: deflate support disabled until issues with raw deflate data + // without zlib headers are resolved + /* + if(c.inflate !== null && c.deflate !== null) { + compressionMethods.putByte(tls.CompressionMethod.deflate); } + */ + var cMethods = compressionMethods.length(); - // indicate session version has been set - c.session.version = c.version; + // create TLS SNI (server name indication) extension if virtual host + // has been specified, see RFC 3546 + var extensions = forge.util.createBuffer(); + if(c.virtualHost) { + // create extension struct + var ext = forge.util.createBuffer(); + ext.putByte(0x00); // type server_name (ExtensionType is 2 bytes) + ext.putByte(0x00); - // get the session ID from the message - var sessionId = msg.session_id.bytes(); + /* In order to provide the server name, clients MAY include an + * extension of type "server_name" in the (extended) client hello. + * The "extension_data" field of this extension SHALL contain + * "ServerNameList" where: + * + * struct { + * NameType name_type; + * select(name_type) { + * case host_name: HostName; + * } name; + * } ServerName; + * + * enum { + * host_name(0), (255) + * } NameType; + * + * opaque HostName<1..2^16-1>; + * + * struct { + * ServerName server_name_list<1..2^16-1> + * } ServerNameList; + */ + var serverName = forge.util.createBuffer(); + serverName.putByte(0x00); // type host_name + writeVector(serverName, 2, forge.util.createBuffer(c.virtualHost)); - // if the session ID is not blank and matches the cached one, resume - // the session - if(sessionId.length > 0 && sessionId === c.session.id) { - // resuming session, expect a ChangeCipherSpec next - c.expect = SCC; - c.session.resuming = true; + // ServerNameList is in extension_data + var snList = forge.util.createBuffer(); + writeVector(snList, 2, serverName); + writeVector(ext, 2, snList); + extensions.putBuffer(ext); + } + var extLength = extensions.length(); + if(extLength > 0) { + // add extension vector length + extLength += 2; + } - // get new server random - c.session.sp.server_random = msg.random.bytes(); - } else { - // not resuming, expect a server Certificate message next - c.expect = SCE; - c.session.resuming = false; + // determine length of the handshake message + // cipher suites and compression methods size will need to be + // updated if more get added to the list + var sessionId = c.session.id; + var length = + sessionId.length + 1 + // session ID vector + 2 + // version (major + minor) + 4 + 28 + // random time and random bytes + 2 + cSuites + // cipher suites vector + 1 + cMethods + // compression methods vector + extLength; // extensions vector - // create new security parameters - tls.createSecurityParameters(c, msg); + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.client_hello); + rval.putInt24(length); // handshake length + rval.putByte(c.version.major); // major version + rval.putByte(c.version.minor); // minor version + rval.putBytes(c.session.sp.client_random); // random time + bytes + writeVector(rval, 1, forge.util.createBuffer(sessionId)); + writeVector(rval, 2, cipherSuites); + writeVector(rval, 1, compressionMethods); + if(extLength > 0) { + writeVector(rval, 2, extensions); } + return rval; +}; - // set new session ID - c.session.id = sessionId; +/** + * Creates a ServerHello message. + * + * @param c the connection. + * + * @return the ServerHello byte buffer. + */ +tls.createServerHello = function(c) { + // determine length of the handshake message + var sessionId = c.session.id; + var length = + sessionId.length + 1 + // session ID vector + 2 + // version (major + minor) + 4 + 28 + // random time and random bytes + 2 + // chosen cipher suite + 1; // chosen compression method - // continue - c.process(); + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.server_hello); + rval.putInt24(length); // handshake length + rval.putByte(c.version.major); // major version + rval.putByte(c.version.minor); // minor version + rval.putBytes(c.session.sp.server_random); // random time + bytes + writeVector(rval, 1, forge.util.createBuffer(sessionId)); + rval.putByte(c.session.cipherSuite.id[0]); + rval.putByte(c.session.cipherSuite.id[1]); + rval.putByte(c.session.compressionMethod); + return rval; }; /** - * Called when a server receives a ClientHello record. + * Creates a Certificate message. * - * When a ClientHello message will be sent: - * When a client first connects to a server it is required to send the - * client hello as its first message. The client can also send a client - * hello in response to a hello request or on its own initiative in order - * to renegotiate the security parameters in an existing connection. + * When this message will be sent: + * This is the first message the client can send after receiving a server + * hello done message and the first message the server can send after + * sending a ServerHello. This client message is only sent if the server + * requests a certificate. If no suitable certificate is available, the + * client should send a certificate message containing no certificates. If + * client authentication is required by the server for the handshake to + * continue, it may respond with a fatal handshake failure alert. + * + * opaque ASN.1Cert<1..2^24-1>; + * + * struct { + * ASN.1Cert certificate_list<0..2^24-1>; + * } Certificate; * * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * + * @return the Certificate byte buffer. */ -tls.handleClientHello = function(c, record, length) { - var msg = tls.parseHelloMessage(c, record, length); - if(c.fail) { - return; - } - - // get the session ID from the message - var sessionId = msg.session_id.bytes(); +tls.createCertificate = function(c) { + // TODO: check certificate request to ensure types are supported - // see if the given session ID is in the cache - var session = null; - if(c.sessionCache) { - session = c.sessionCache.getSession(sessionId); - if(session === null) { - // session ID not found - sessionId = ''; - } else if(session.version.major !== msg.version.major || - session.version.minor > msg.version.minor) { - // if session version is incompatible with client version, do not resume - session = null; - sessionId = ''; + // get a certificate (a certificate as a PEM string) + var client = (c.entity === tls.ConnectionEnd.client); + var cert = null; + if(c.getCertificate) { + var hint; + if(client) { + hint = c.session.certificateRequest; + } else { + hint = c.session.extensions.server_name.serverNameList; } + cert = c.getCertificate(c, hint); } - // no session found to resume, generate a new session ID - if(sessionId.length === 0) { - sessionId = forge.random.getBytes(32); - } - - // update session - c.session.id = sessionId; - c.session.clientHelloVersion = msg.version; - c.session.sp = {}; - if(session) { - // use version and security parameters from resumed session - c.version = c.session.version = session.version; - c.session.sp = session.sp; - } else { - // use highest compatible minor version - var version; - for(var i = 1; i < tls.SupportedVersions.length; ++i) { - version = tls.SupportedVersions[i]; - if(version.minor <= msg.version.minor) { - break; + // buffer to hold certificate list + var certList = forge.util.createBuffer(); + if(cert !== null) { + try { + // normalize cert to a chain of certificates + if(!forge.util.isArray(cert)) { + cert = [cert]; } - } - c.version = {major: version.major, minor: version.minor}; - c.session.version = c.version; - } + var asn1 = null; + for(var i = 0; i < cert.length; ++i) { + var msg = forge.pem.decode(cert[i])[0]; + if(msg.type !== 'CERTIFICATE' && + msg.type !== 'X509 CERTIFICATE' && + msg.type !== 'TRUSTED CERTIFICATE') { + var error = new Error('Could not convert certificate from PEM; PEM ' + + 'header type is not "CERTIFICATE", "X509 CERTIFICATE", or ' + + '"TRUSTED CERTIFICATE".'); + error.headerType = msg.type; + throw error; + } + if(msg.procType && msg.procType.type === 'ENCRYPTED') { + throw new Error('Could not convert certificate from PEM; PEM is encrypted.'); + } - // if a session is set, resume it - if(session !== null) { - // resuming session, expect a ChangeCipherSpec next - c.expect = CCC; - c.session.resuming = true; + var der = forge.util.createBuffer(msg.body); + if(asn1 === null) { + asn1 = forge.asn1.fromDer(der.bytes(), false); + } - // get new client random - c.session.sp.client_random = msg.random.bytes(); - } else { - // not resuming, expect a Certificate or ClientKeyExchange - c.expect = (c.verifyClient !== false) ? CCE : CKE; - c.session.resuming = false; + // certificate entry is itself a vector with 3 length bytes + var certBuffer = forge.util.createBuffer(); + writeVector(certBuffer, 3, der); - // create new security parameters - tls.createSecurityParameters(c, msg); - } + // add cert vector to cert list vector + certList.putBuffer(certBuffer); + } - // connection now open - c.open = true; + // save certificate + cert = forge.pki.certificateFromAsn1(asn1); + if(client) { + c.session.clientCertificate = cert; + } else { + c.session.serverCertificate = cert; + } + } catch(ex) { + return c.error(c, { + message: 'Could not send certificate list.', + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.bad_certificate + } + }); + } + } - // queue server hello - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createServerHello(c) - })); + // determine length of the handshake message + var length = 3 + certList.length(); // cert list vector - if(c.session.resuming) { - // queue change cipher spec message - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.change_cipher_spec, - data: tls.createChangeCipherSpec() - })); + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.certificate); + rval.putInt24(length); + writeVector(rval, 3, certList); + return rval; +}; - // create pending state - c.state.pending = tls.createConnectionState(c); +/** + * Creates a ClientKeyExchange message. + * + * When this message will be sent: + * This message is always sent by the client. It will immediately follow the + * client certificate message, if it is sent. Otherwise it will be the first + * message sent by the client after it receives the server hello done + * message. + * + * Meaning of this message: + * With this message, the premaster secret is set, either though direct + * transmission of the RSA-encrypted secret, or by the transmission of + * Diffie-Hellman parameters which will allow each side to agree upon the + * same premaster secret. When the key exchange method is DH_RSA or DH_DSS, + * client certification has been requested, and the client was able to + * respond with a certificate which contained a Diffie-Hellman public key + * whose parameters (group and generator) matched those specified by the + * server in its certificate, this message will not contain any data. + * + * Meaning of this message: + * If RSA is being used for key agreement and authentication, the client + * generates a 48-byte premaster secret, encrypts it using the public key + * from the server's certificate or the temporary RSA key provided in a + * server key exchange message, and sends the result in an encrypted + * premaster secret message. This structure is a variant of the client + * key exchange message, not a message in itself. + * + * struct { + * select(KeyExchangeAlgorithm) { + * case rsa: EncryptedPreMasterSecret; + * case diffie_hellman: ClientDiffieHellmanPublic; + * } exchange_keys; + * } ClientKeyExchange; + * + * struct { + * ProtocolVersion client_version; + * opaque random[46]; + * } PreMasterSecret; + * + * struct { + * public-key-encrypted PreMasterSecret pre_master_secret; + * } EncryptedPreMasterSecret; + * + * A public-key-encrypted element is encoded as a vector <0..2^16-1>. + * + * @param c the connection. + * + * @return the ClientKeyExchange byte buffer. + */ +tls.createClientKeyExchange = function(c) { + // create buffer to encrypt + var b = forge.util.createBuffer(); - // change current write state to pending write state - c.state.current.write = c.state.pending.write; + // add highest client-supported protocol to help server avoid version + // rollback attacks + b.putByte(c.session.clientHelloVersion.major); + b.putByte(c.session.clientHelloVersion.minor); - // queue finished - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createFinished(c) - })); - } else { - // queue server certificate - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createCertificate(c) - })); + // generate and add 46 random bytes + b.putBytes(forge.random.getBytes(46)); - if(!c.fail) { - // queue server key exchange - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createServerKeyExchange(c) - })); + // save pre-master secret + var sp = c.session.sp; + sp.pre_master_secret = b.getBytes(); - // request client certificate if set - if(c.verifyClient !== false) { - // queue certificate request - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createCertificateRequest(c) - })); - } + // RSA-encrypt the pre-master secret + var key = c.session.serverCertificate.publicKey; + b = key.encrypt(sp.pre_master_secret); - // queue server hello done - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createServerHelloDone(c) - })); - } - } + /* Note: The encrypted pre-master secret will be stored in a + public-key-encrypted opaque vector that has the length prefixed using + 2 bytes, so include those 2 bytes in the handshake message length. This + is done as a minor optimization instead of calling writeVector(). */ - // send records - tls.flush(c); + // determine length of the handshake message + var length = b.length + 2; - // continue - c.process(); + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.client_key_exchange); + rval.putInt24(length); + // add vector length bytes + rval.putInt16(b.length); + rval.putBytes(b); + return rval; }; /** - * Called when a client receives a Certificate record. - * - * When this message will be sent: - * The server must send a certificate whenever the agreed-upon key exchange - * method is not an anonymous one. This message will always immediately - * follow the server hello message. - * - * Meaning of this message: - * The certificate type must be appropriate for the selected cipher suite's - * key exchange algorithm, and is generally an X.509v3 certificate. It must - * contain a key which matches the key exchange method, as follows. Unless - * otherwise specified, the signing algorithm for the certificate must be - * the same as the algorithm for the certificate key. Unless otherwise - * specified, the public key may be of any length. - * - * opaque ASN.1Cert<1..2^24-1>; - * struct { - * ASN.1Cert certificate_list<1..2^24-1>; - * } Certificate; + * Creates a ServerKeyExchange message. * * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * + * @return the ServerKeyExchange byte buffer. */ -tls.handleCertificate = function(c, record, length) { - // minimum of 3 bytes in message - if(length < 3) { - return c.error(c, { - message: 'Invalid Certificate message. Message too short.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.illegal_parameter - } - }); - } +tls.createServerKeyExchange = function(c) { + // this implementation only supports RSA, no Diffie-Hellman support, + // so this record is empty - var b = record.fragment; - var msg = { - certificate_list: readVector(b, 3) - }; + // determine length of the handshake message + var length = 0; - /* The sender's certificate will be first in the list (chain), each - subsequent one that follows will certify the previous one, but root - certificates (self-signed) that specify the certificate authority may - be omitted under the assumption that clients must already possess it. */ - var cert, asn1; - var certs = []; - try { - while(msg.certificate_list.length() > 0) { - // each entry in msg.certificate_list is a vector with 3 len bytes - cert = readVector(msg.certificate_list, 3); - asn1 = forge.asn1.fromDer(cert); - cert = forge.pki.certificateFromAsn1(asn1, true); - certs.push(cert); - } - } catch(ex) { - return c.error(c, { - message: 'Could not parse certificate list.', - cause: ex, - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.bad_certificate - } - }); + // build record fragment + var rval = forge.util.createBuffer(); + if(length > 0) { + rval.putByte(tls.HandshakeType.server_key_exchange); + rval.putInt24(length); } + return rval; +}; - // ensure at least 1 certificate was provided if in client-mode - // or if verifyClient was set to true to require a certificate - // (as opposed to 'optional') - var client = (c.entity === tls.ConnectionEnd.client); - if((client || c.verifyClient === true) && certs.length === 0) { - // error, no certificate - c.error(c, { - message: client ? - 'No server certificate provided.' : - 'No client certificate provided.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.illegal_parameter +/** + * Gets the signed data used to verify a client-side certificate. See + * tls.createCertificateVerify() for details. + * + * @param c the connection. + * @param callback the callback to call once the signed data is ready. + */ +tls.getClientSignature = function(c, callback) { + // generate data to RSA encrypt + var b = forge.util.createBuffer(); + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + b = b.getBytes(); + + // create default signing function as necessary + c.getSignature = c.getSignature || function(c, b, callback) { + // do rsa encryption, call callback + var privateKey = null; + if(c.getPrivateKey) { + try { + privateKey = c.getPrivateKey(c, c.session.clientCertificate); + privateKey = forge.pki.privateKeyFromPem(privateKey); + } catch(ex) { + c.error(c, { + message: 'Could not get private key.', + cause: ex, + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); } - }); - } else if(certs.length === 0) { - // no certs to verify - // expect a ServerKeyExchange or ClientKeyExchange message next - c.expect = client ? SKE : CKE; - } else { - // save certificate in session - if(client) { - c.session.serverCertificate = certs[0]; - } else { - c.session.clientCertificate = certs[0]; } - - if(tls.verifyCertificateChain(c, certs)) { - // expect a ServerKeyExchange or ClientKeyExchange message next - c.expect = client ? SKE : CKE; + if(privateKey === null) { + c.error(c, { + message: 'No private key set.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.internal_error + } + }); + } else { + b = privateKey.sign(b, null); } - } + callback(c, b); + }; - // continue - c.process(); + // get client signature + c.getSignature(c, b, callback); }; /** - * Called when a client receives a ServerKeyExchange record. + * Creates a CertificateVerify message. + * + * Meaning of this message: + * This structure conveys the client's Diffie-Hellman public value + * (Yc) if it was not already included in the client's certificate. + * The encoding used for Yc is determined by the enumerated + * PublicValueEncoding. This structure is a variant of the client + * key exchange message, not a message in itself. * * When this message will be sent: - * This message will be sent immediately after the server certificate - * message (or the server hello message, if this is an anonymous - * negotiation). + * This message is used to provide explicit verification of a client + * certificate. This message is only sent following a client + * certificate that has signing capability (i.e. all certificates + * except those containing fixed Diffie-Hellman parameters). When + * sent, it will immediately follow the client key exchange message. * - * The server key exchange message is sent by the server only when the - * server certificate message (if sent) does not contain enough data to - * allow the client to exchange a premaster secret. + * struct { + * Signature signature; + * } CertificateVerify; * - * Meaning of this message: - * This message conveys cryptographic information to allow the client to - * communicate the premaster secret: either an RSA public key to encrypt - * the premaster secret with, or a Diffie-Hellman public key with which the - * client can complete a key exchange (with the result being the premaster - * secret.) + * CertificateVerify.signature.md5_hash + * MD5(handshake_messages); * - * enum { - * dhe_dss, dhe_rsa, dh_anon, rsa, dh_dss, dh_rsa - * } KeyExchangeAlgorithm; + * Certificate.signature.sha_hash + * SHA(handshake_messages); * - * struct { - * opaque dh_p<1..2^16-1>; - * opaque dh_g<1..2^16-1>; - * opaque dh_Ys<1..2^16-1>; - * } ServerDHParams; + * Here handshake_messages refers to all handshake messages sent or + * received starting at client hello up to but not including this + * message, including the type and length fields of the handshake + * messages. * - * struct { - * select(KeyExchangeAlgorithm) { - * case dh_anon: - * ServerDHParams params; - * case dhe_dss: - * case dhe_rsa: - * ServerDHParams params; - * digitally-signed struct { - * opaque client_random[32]; - * opaque server_random[32]; - * ServerDHParams params; - * } signed_params; - * case rsa: - * case dh_dss: - * case dh_rsa: - * struct {}; - * }; - * } ServerKeyExchange; + * select(SignatureAlgorithm) { + * case anonymous: struct { }; + * case rsa: + * digitally-signed struct { + * opaque md5_hash[16]; + * opaque sha_hash[20]; + * }; + * case dsa: + * digitally-signed struct { + * opaque sha_hash[20]; + * }; + * } Signature; + * + * In digital signing, one-way hash functions are used as input for a + * signing algorithm. A digitally-signed element is encoded as an opaque + * vector <0..2^16-1>, where the length is specified by the signing + * algorithm and key. + * + * In RSA signing, a 36-byte structure of two hashes (one SHA and one + * MD5) is signed (encrypted with the private key). It is encoded with + * PKCS #1 block type 0 or type 1 as described in [PKCS1]. + * + * In DSS, the 20 bytes of the SHA hash are run directly through the + * Digital Signing Algorithm with no additional hashing. * * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * @param signature the signature to include in the message. + * + * @return the CertificateVerify byte buffer. */ -tls.handleServerKeyExchange = function(c, record, length) { - // this implementation only supports RSA, no Diffie-Hellman support - // so any length > 0 is invalid - if(length > 0) { - return c.error(c, { - message: 'Invalid key parameters. Only RSA is supported.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.unsupported_certificate - } - }); - } +tls.createCertificateVerify = function(c, signature) { + /* Note: The signature will be stored in a "digitally-signed" opaque + vector that has the length prefixed using 2 bytes, so include those + 2 bytes in the handshake message length. This is done as a minor + optimization instead of calling writeVector(). */ - // expect an optional CertificateRequest message next - c.expect = SCR; + // determine length of the handshake message + var length = signature.length + 2; - // continue - c.process(); + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.certificate_verify); + rval.putInt24(length); + // add vector length bytes + rval.putInt16(signature.length); + rval.putBytes(signature); + return rval; }; /** - * Called when a client receives a ClientKeyExchange record. + * Creates a CertificateRequest message. * * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * + * @return the CertificateRequest byte buffer. */ -tls.handleClientKeyExchange = function(c, record, length) { - // this implementation only supports RSA, no Diffie-Hellman support - // so any length < 48 is invalid - if(length < 48) { - return c.error(c, { - message: 'Invalid key parameters. Only RSA is supported.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.unsupported_certificate - } - }); - } +tls.createCertificateRequest = function(c) { + // TODO: support other certificate types + var certTypes = forge.util.createBuffer(); - var b = record.fragment; - var msg = { - enc_pre_master_secret: readVector(b, 2).getBytes() - }; + // common RSA certificate type + certTypes.putByte(0x01); - // do rsa decryption - var privateKey = null; - if(c.getPrivateKey) { - try { - privateKey = c.getPrivateKey(c, c.session.serverCertificate); - privateKey = forge.pki.privateKeyFromPem(privateKey); - } catch(ex) { - c.error(c, { - message: 'Could not get private key.', - cause: ex, - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.internal_error - } - }); - } + // add distinguished names from CA store + var cAs = forge.util.createBuffer(); + for(var key in c.caStore.certs) { + var cert = c.caStore.certs[key]; + var dn = forge.pki.distinguishedNameToAsn1(cert.subject); + var byteBuffer = forge.asn1.toDer(dn); + cAs.putInt16(byteBuffer.length()); + cAs.putBuffer(byteBuffer); } - if(privateKey === null) { - return c.error(c, { - message: 'No private key set.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.internal_error - } - }); - } + // TODO: TLS 1.2+ has a different format - try { - // decrypt 48-byte pre-master secret - var sp = c.session.sp; - sp.pre_master_secret = privateKey.decrypt(msg.enc_pre_master_secret); + // determine length of the handshake message + var length = + 1 + certTypes.length() + + 2 + cAs.length(); - // ensure client hello version matches first 2 bytes - var version = c.session.clientHelloVersion; - if(version.major !== sp.pre_master_secret.charCodeAt(0) || - version.minor !== sp.pre_master_secret.charCodeAt(1)) { - // error, do not send alert (see BLEI attack below) - throw new Error('TLS version rollback attack detected.'); - } - } catch(ex) { - /* Note: Daniel Bleichenbacher [BLEI] can be used to attack a - TLS server which is using PKCS#1 encoded RSA, so instead of - failing here, we generate 48 random bytes and use that as - the pre-master secret. */ - sp.pre_master_secret = forge.random.getBytes(48); - } + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.certificate_request); + rval.putInt24(length); + writeVector(rval, 1, certTypes); + writeVector(rval, 2, cAs); + return rval; +}; - // expect a CertificateVerify message if a Certificate was received that - // does not have fixed Diffie-Hellman params, otherwise expect - // ChangeCipherSpec - c.expect = CCC; - if(c.session.clientCertificate !== null) { - // only RSA support, so expect CertificateVerify - // TODO: support Diffie-Hellman - c.expect = CCV; - } +/** + * Creates a ServerHelloDone message. + * + * @param c the connection. + * + * @return the ServerHelloDone byte buffer. + */ +tls.createServerHelloDone = function(c) { + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.server_hello_done); + rval.putInt24(0); + return rval; +}; - // continue - c.process(); +/** + * Creates a ChangeCipherSpec message. + * + * The change cipher spec protocol exists to signal transitions in + * ciphering strategies. The protocol consists of a single message, + * which is encrypted and compressed under the current (not the pending) + * connection state. The message consists of a single byte of value 1. + * + * struct { + * enum { change_cipher_spec(1), (255) } type; + * } ChangeCipherSpec; + * + * @return the ChangeCipherSpec byte buffer. + */ +tls.createChangeCipherSpec = function() { + var rval = forge.util.createBuffer(); + rval.putByte(0x01); + return rval; }; /** - * Called when a client receives a CertificateRequest record. + * Creates a Finished message. + * + * struct { + * opaque verify_data[12]; + * } Finished; + * + * verify_data + * PRF(master_secret, finished_label, MD5(handshake_messages) + + * SHA-1(handshake_messages)) [0..11]; + * + * finished_label + * For Finished messages sent by the client, the string "client + * finished". For Finished messages sent by the server, the + * string "server finished". + * + * handshake_messages + * All of the data from all handshake messages up to but not + * including this message. This is only data visible at the + * handshake layer and does not include record layer headers. + * This is the concatenation of all the Handshake structures as + * defined in 7.4 exchanged thus far. + * + * @param c the connection. + * + * @return the Finished byte buffer. + */ +tls.createFinished = function(c) { + // generate verify_data + var b = forge.util.createBuffer(); + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + + // TODO: determine prf function and verify length for TLS 1.2 + var client = (c.entity === tls.ConnectionEnd.client); + var sp = c.session.sp; + var vdl = 12; + var prf = prf_TLS1; + var label = client ? 'client finished' : 'server finished'; + b = prf(sp.master_secret, label, b.getBytes(), vdl); + + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(tls.HandshakeType.finished); + rval.putInt24(b.length()); + rval.putBuffer(b); + return rval; +}; + +/** + * Creates a HeartbeatMessage (See RFC 6520). + * + * struct { + * HeartbeatMessageType type; + * uint16 payload_length; + * opaque payload[HeartbeatMessage.payload_length]; + * opaque padding[padding_length]; + * } HeartbeatMessage; * - * When this message will be sent: - * A non-anonymous server can optionally request a certificate from the - * client, if appropriate for the selected cipher suite. This message, if - * sent, will immediately follow the Server Key Exchange message (if it is - * sent; otherwise, the Server Certificate message). + * The total length of a HeartbeatMessage MUST NOT exceed 2^14 or + * max_fragment_length when negotiated as defined in [RFC6066]. * - * enum { - * rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4), - * rsa_ephemeral_dh_RESERVED(5), dss_ephemeral_dh_RESERVED(6), - * fortezza_dms_RESERVED(20), (255) - * } ClientCertificateType; + * type: The message type, either heartbeat_request or heartbeat_response. * - * opaque DistinguishedName<1..2^16-1>; + * payload_length: The length of the payload. * - * struct { - * ClientCertificateType certificate_types<1..2^8-1>; - * SignatureAndHashAlgorithm supported_signature_algorithms<2^16-1>; - * DistinguishedName certificate_authorities<0..2^16-1>; - * } CertificateRequest; + * payload: The payload consists of arbitrary content. + * + * padding: The padding is random content that MUST be ignored by the + * receiver. The length of a HeartbeatMessage is TLSPlaintext.length + * for TLS and DTLSPlaintext.length for DTLS. Furthermore, the + * length of the type field is 1 byte, and the length of the + * payload_length is 2. Therefore, the padding_length is + * TLSPlaintext.length - payload_length - 3 for TLS and + * DTLSPlaintext.length - payload_length - 3 for DTLS. The + * padding_length MUST be at least 16. + * + * The sender of a HeartbeatMessage MUST use a random padding of at + * least 16 bytes. The padding of a received HeartbeatMessage message + * MUST be ignored. + * + * If the payload_length of a received HeartbeatMessage is too large, + * the received HeartbeatMessage MUST be discarded silently. * * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * @param type the tls.HeartbeatMessageType. + * @param payload the heartbeat data to send as the payload. + * @param [payloadLength] the payload length to use, defaults to the + * actual payload length. + * + * @return the HeartbeatRequest byte buffer. */ -tls.handleCertificateRequest = function(c, record, length) { - // minimum of 3 bytes in message - if(length < 3) { - return c.error(c, { - message: 'Invalid CertificateRequest. Message too short.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.illegal_parameter - } - }); +tls.createHeartbeat = function(type, payload, payloadLength) { + if(typeof payloadLength === 'undefined') { + payloadLength = payload.length; } - - // TODO: TLS 1.2+ has different format including - // SignatureAndHashAlgorithm after cert types - var b = record.fragment; - var msg = { - certificate_types: readVector(b, 1), - certificate_authorities: readVector(b, 2) - }; - - // save certificate request in session - c.session.certificateRequest = msg; - - // expect a ServerHelloDone message next - c.expect = SHD; - - // continue - c.process(); + // build record fragment + var rval = forge.util.createBuffer(); + rval.putByte(type); // heartbeat message type + rval.putInt16(payloadLength); // payload length + rval.putBytes(payload); // payload + // padding + var plaintextLength = rval.length(); + var paddingLength = Math.max(16, plaintextLength - payloadLength - 3); + rval.putBytes(forge.random.getBytes(paddingLength)); + return rval; }; /** - * Called when a server receives a CertificateVerify record. + * Fragments, compresses, encrypts, and queues a record for delivery. * * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * @param record the record to queue. */ -tls.handleCertificateVerify = function(c, record, length) { - if(length < 2) { - return c.error(c, { - message: 'Invalid CertificateVerify. Message too short.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.illegal_parameter - } - }); +tls.queue = function(c, record) { + // error during record creation + if(!record) { + return; } - // rewind to get full bytes for message so it can be manually - // digested below (special case for CertificateVerify messages because - // they must be digested *after* handling as opposed to all others) - var b = record.fragment; - b.read -= 4; - var msgBytes = b.bytes(); - b.read += 4; - - var msg = { - signature: readVector(b, 2).getBytes() - }; - - // TODO: add support for DSA + if(record.fragment.length() === 0) { + if(record.type === tls.ContentType.handshake || + record.type === tls.ContentType.alert || + record.type === tls.ContentType.change_cipher_spec) { + // Empty handshake, alert of change cipher spec messages are not allowed per the TLS specification and should not be sent. + return; + } + } - // generate data to verify - var verify = forge.util.createBuffer(); - verify.putBuffer(c.session.md5.digest()); - verify.putBuffer(c.session.sha1.digest()); - verify = verify.getBytes(); + // if the record is a handshake record, update handshake hashes + if(record.type === tls.ContentType.handshake) { + var bytes = record.fragment.bytes(); + c.session.md5.update(bytes); + c.session.sha1.update(bytes); + bytes = null; + } - try { - var cert = c.session.clientCertificate; - /*b = forge.pki.rsa.decrypt( - msg.signature, cert.publicKey, true, verify.length); - if(b !== verify) {*/ - if(!cert.publicKey.verify(verify, msg.signature, 'NONE')) { - throw new Error('CertificateVerify signature does not match.'); + // handle record fragmentation + var records; + if(record.fragment.length() <= tls.MaxFragment) { + records = [record]; + } else { + // fragment data as long as it is too long + records = []; + var data = record.fragment.bytes(); + while(data.length > tls.MaxFragment) { + records.push(tls.createRecord(c, { + type: record.type, + data: forge.util.createBuffer(data.slice(0, tls.MaxFragment)) + })); + data = data.slice(tls.MaxFragment); + } + // add last record + if(data.length > 0) { + records.push(tls.createRecord(c, { + type: record.type, + data: forge.util.createBuffer(data) + })); } + } - // digest message now that it has been handled - c.session.md5.update(msgBytes); - c.session.sha1.update(msgBytes); - } catch(ex) { - return c.error(c, { - message: 'Bad signature in CertificateVerify.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.handshake_failure - } - }); + // compress and encrypt all fragmented records + for(var i = 0; i < records.length && !c.fail; ++i) { + // update the record using current write state + var rec = records[i]; + var s = c.state.current.write; + if(s.update(c, rec)) { + // store record + c.records.push(rec); + } } +}; - // expect ChangeCipherSpec - c.expect = CCC; +/** + * Flushes all queued records to the output buffer and calls the + * tlsDataReady() handler on the given connection. + * + * @param c the connection. + * + * @return true on success, false on failure. + */ +tls.flush = function(c) { + for(var i = 0; i < c.records.length; ++i) { + var record = c.records[i]; - // continue - c.process(); + // add record header and fragment + c.tlsData.putByte(record.type); + c.tlsData.putByte(record.version.major); + c.tlsData.putByte(record.version.minor); + c.tlsData.putInt16(record.fragment.length()); + c.tlsData.putBuffer(c.records[i].fragment); + } + c.records = []; + return c.tlsDataReady(c); }; /** - * Called when a client receives a ServerHelloDone record. - * - * When this message will be sent: - * The server hello done message is sent by the server to indicate the end - * of the server hello and associated messages. After sending this message - * the server will wait for a client response. + * Maps a pki.certificateError to a tls.Alert.Description. * - * Meaning of this message: - * This message means that the server is done sending messages to support - * the key exchange, and the client can proceed with its phase of the key - * exchange. + * @param error the error to map. * - * Upon receipt of the server hello done message the client should verify - * that the server provided a valid certificate if required and check that - * the server hello parameters are acceptable. + * @return the alert description. + */ +var _certErrorToAlertDesc = function(error) { + switch(error) { + case true: + return true; + case forge.pki.certificateError.bad_certificate: + return tls.Alert.Description.bad_certificate; + case forge.pki.certificateError.unsupported_certificate: + return tls.Alert.Description.unsupported_certificate; + case forge.pki.certificateError.certificate_revoked: + return tls.Alert.Description.certificate_revoked; + case forge.pki.certificateError.certificate_expired: + return tls.Alert.Description.certificate_expired; + case forge.pki.certificateError.certificate_unknown: + return tls.Alert.Description.certificate_unknown; + case forge.pki.certificateError.unknown_ca: + return tls.Alert.Description.unknown_ca; + default: + return tls.Alert.Description.bad_certificate; + } +}; + +/** + * Maps a tls.Alert.Description to a pki.certificateError. * - * struct {} ServerHelloDone; + * @param desc the alert description. * - * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * @return the certificate error. */ -tls.handleServerHelloDone = function(c, record, length) { - // len must be 0 bytes - if(length > 0) { - return c.error(c, { - message: 'Invalid ServerHelloDone message. Invalid length.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.record_overflow - } - }); +var _alertDescToCertError = function(desc) { + switch(desc) { + case true: + return true; + case tls.Alert.Description.bad_certificate: + return forge.pki.certificateError.bad_certificate; + case tls.Alert.Description.unsupported_certificate: + return forge.pki.certificateError.unsupported_certificate; + case tls.Alert.Description.certificate_revoked: + return forge.pki.certificateError.certificate_revoked; + case tls.Alert.Description.certificate_expired: + return forge.pki.certificateError.certificate_expired; + case tls.Alert.Description.certificate_unknown: + return forge.pki.certificateError.certificate_unknown; + case tls.Alert.Description.unknown_ca: + return forge.pki.certificateError.unknown_ca; + default: + return forge.pki.certificateError.bad_certificate; } +}; - if(c.serverCertificate === null) { - // no server certificate was provided - var error = { - message: 'No server certificate provided. Not enough security.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.insufficient_security - } - }; +/** + * Verifies a certificate chain against the given connection's + * Certificate Authority store. + * + * @param c the TLS connection. + * @param chain the certificate chain to verify, with the root or highest + * authority at the end. + * + * @return true if successful, false if not. + */ +tls.verifyCertificateChain = function(c, chain) { + try { + // Make a copy of c.verifyOptions so that we can modify options.verify + // without modifying c.verifyOptions. + var options = {}; + for (var key in c.verifyOptions) { + options[key] = c.verifyOptions[key]; + } - // call application callback - var depth = 0; - var ret = c.verify(c, error.alert.description, depth, []); - if(ret !== true) { - // check for custom alert info - if(ret || ret === 0) { - // set custom message and alert description + options.verify = function(vfd, depth, chain) { + // convert pki.certificateError to tls alert description + var desc = _certErrorToAlertDesc(vfd); + + // call application callback + var ret = c.verify(c, vfd, depth, chain); + if(ret !== true) { if(typeof ret === 'object' && !forge.util.isArray(ret)) { + // throw custom error + var error = new Error('The application rejected the certificate.'); + error.send = true; + error.alert = { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.bad_certificate + }; if(ret.message) { error.message = ret.message; } if(ret.alert) { error.alert.description = ret.alert; } - } else if(typeof ret === 'number') { - // set custom alert description - error.alert.description = ret; + throw error; } - } - - // send error - return c.error(c, error); - } - } - - // create client certificate message if requested - if(c.session.certificateRequest !== null) { - record = tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createCertificate(c) - }); - tls.queue(c, record); - } - // create client key exchange message - record = tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createClientKeyExchange(c) - }); - tls.queue(c, record); + // convert tls alert description to pki.certificateError + if(ret !== vfd) { + ret = _alertDescToCertError(ret); + } + } - // expect no messages until the following callback has been called - c.expect = SER; + return ret; + }; - // create callback to handle client signature (for client-certs) - var callback = function(c, signature) { - if(c.session.certificateRequest !== null && - c.session.clientCertificate !== null) { - // create certificate verify message - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createCertificateVerify(c, signature) - })); + // verify chain + forge.pki.verifyCertificateChain(c.caStore, chain, options); + } catch(ex) { + // build tls error if not already customized + var err = ex; + if(typeof err !== 'object' || forge.util.isArray(err)) { + err = { + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: _certErrorToAlertDesc(ex) + } + }; + } + if(!('send' in err)) { + err.send = true; + } + if(!('alert' in err)) { + err.alert = { + level: tls.Alert.Level.fatal, + description: _certErrorToAlertDesc(err.error) + }; } - // create change cipher spec message - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.change_cipher_spec, - data: tls.createChangeCipherSpec() - })); - - // create pending state - c.state.pending = tls.createConnectionState(c); - - // change current write state to pending write state - c.state.current.write = c.state.pending.write; - - // create finished message - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createFinished(c) - })); - - // expect a server ChangeCipherSpec message next - c.expect = SCC; - - // send records - tls.flush(c); - - // continue - c.process(); - }; - - // if there is no certificate request or no client certificate, do - // callback immediately - if(c.session.certificateRequest === null || - c.session.clientCertificate === null) { - return callback(c, null); + // send error + c.error(c, err); } - // otherwise get the client signature - tls.getClientSignature(c, callback); + return !c.fail; }; /** - * Called when a ChangeCipherSpec record is received. + * Creates a new TLS session cache. * - * @param c the connection. - * @param record the record. + * @param cache optional map of session ID to cached session. + * @param capacity the maximum size for the cache (default: 100). + * + * @return the new TLS session cache. */ -tls.handleChangeCipherSpec = function(c, record) { - if(record.fragment.getByte() !== 0x01) { - return c.error(c, { - message: 'Invalid ChangeCipherSpec message received.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.illegal_parameter +tls.createSessionCache = function(cache, capacity) { + var rval = null; + + // assume input is already a session cache object + if(cache && cache.getSession && cache.setSession && cache.order) { + rval = cache; + } else { + // create cache + rval = {}; + rval.cache = cache || {}; + rval.capacity = Math.max(capacity || 100, 1); + rval.order = []; + + // store order for sessions, delete session overflow + for(var key in cache) { + if(rval.order.length <= capacity) { + rval.order.push(key); + } else { + delete cache[key]; } - }); - } + } - // create pending state if: - // 1. Resuming session in client mode OR - // 2. NOT resuming session in server mode - var client = (c.entity === tls.ConnectionEnd.client); - if((c.session.resuming && client) || (!c.session.resuming && !client)) { - c.state.pending = tls.createConnectionState(c); - } + // get a session from a session ID (or get any session) + rval.getSession = function(sessionId) { + var session = null; + var key = null; - // change current read state to pending read state - c.state.current.read = c.state.pending.read; + // if session ID provided, use it + if(sessionId) { + key = forge.util.bytesToHex(sessionId); + } else if(rval.order.length > 0) { + // get first session from cache + key = rval.order[0]; + } + + if(key !== null && key in rval.cache) { + // get cached session and remove from cache + session = rval.cache[key]; + delete rval.cache[key]; + for(var i in rval.order) { + if(rval.order[i] === key) { + rval.order.splice(i, 1); + break; + } + } + } + + return session; + }; - // clear pending state if: - // 1. NOT resuming session in client mode OR - // 2. resuming a session in server mode - if((!c.session.resuming && client) || (c.session.resuming && !client)) { - c.state.pending = null; + // set a session in the cache + rval.setSession = function(sessionId, session) { + // remove session from cache if at capacity + if(rval.order.length === rval.capacity) { + var key = rval.order.shift(); + delete rval.cache[key]; + } + // add session to cache + var key = forge.util.bytesToHex(sessionId); + rval.order.push(key); + rval.cache[key] = session; + }; } - // expect a Finished record next - c.expect = client ? SFI : CFI; - - // continue - c.process(); + return rval; }; /** - * Called when a Finished record is received. - * - * When this message will be sent: - * A finished message is always sent immediately after a change - * cipher spec message to verify that the key exchange and - * authentication processes were successful. It is essential that a - * change cipher spec message be received between the other - * handshake messages and the Finished message. - * - * Meaning of this message: - * The finished message is the first protected with the just- - * negotiated algorithms, keys, and secrets. Recipients of finished - * messages must verify that the contents are correct. Once a side - * has sent its Finished message and received and validated the - * Finished message from its peer, it may begin to send and receive - * application data over the connection. - * - * struct { - * opaque verify_data[verify_data_length]; - * } Finished; - * - * verify_data - * PRF(master_secret, finished_label, Hash(handshake_messages)) - * [0..verify_data_length-1]; + * Creates a new TLS connection. * - * finished_label - * For Finished messages sent by the client, the string - * "client finished". For Finished messages sent by the server, the - * string "server finished". + * See public createConnection() docs for more details. * - * verify_data_length depends on the cipher suite. If it is not specified - * by the cipher suite, then it is 12. Versions of TLS < 1.2 always used - * 12 bytes. + * @param options the options for this connection. * - * @param c the connection. - * @param record the record. - * @param length the length of the handshake message. + * @return the new TLS connection. */ -tls.handleFinished = function(c, record, length) { - // rewind to get full bytes for message so it can be manually - // digested below (special case for Finished messages because they - // must be digested *after* handling as opposed to all others) - var b = record.fragment; - b.read -= 4; - var msgBytes = b.bytes(); - b.read += 4; +tls.createConnection = function(options) { + var caStore = null; + if(options.caStore) { + // if CA store is an array, convert it to a CA store object + if(forge.util.isArray(options.caStore)) { + caStore = forge.pki.createCaStore(options.caStore); + } else { + caStore = options.caStore; + } + } else { + // create empty CA store + caStore = forge.pki.createCaStore(); + } - // message contains only verify_data - var vd = record.fragment.getBytes(); + // setup default cipher suites + var cipherSuites = options.cipherSuites || null; + if(cipherSuites === null) { + cipherSuites = []; + for(var key in tls.CipherSuites) { + cipherSuites.push(tls.CipherSuites[key]); + } + } - // ensure verify data is correct - b = forge.util.createBuffer(); - b.putBuffer(c.session.md5.digest()); - b.putBuffer(c.session.sha1.digest()); + // set default entity + var entity = (options.server || false) ? + tls.ConnectionEnd.server : tls.ConnectionEnd.client; - // set label based on entity type - var client = (c.entity === tls.ConnectionEnd.client); - var label = client ? 'server finished' : 'client finished'; + // create session cache if requested + var sessionCache = options.sessionCache ? + tls.createSessionCache(options.sessionCache) : null; - // TODO: determine prf function and verify length for TLS 1.2 - var sp = c.session.sp; - var vdl = 12; - var prf = prf_TLS1; - b = prf(sp.master_secret, label, b.getBytes(), vdl); - if(b.getBytes() !== vd) { - return c.error(c, { - message: 'Invalid verify_data in Finished message.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.decrypt_error + // create TLS connection + var c = { + version: {major: tls.Version.major, minor: tls.Version.minor}, + entity: entity, + sessionId: options.sessionId, + caStore: caStore, + sessionCache: sessionCache, + cipherSuites: cipherSuites, + connected: options.connected, + virtualHost: options.virtualHost || null, + verifyClient: options.verifyClient || false, + verify: options.verify || function(cn, vfd, dpth, cts) {return vfd;}, + verifyOptions: options.verifyOptions || {}, + getCertificate: options.getCertificate || null, + getPrivateKey: options.getPrivateKey || null, + getSignature: options.getSignature || null, + input: forge.util.createBuffer(), + tlsData: forge.util.createBuffer(), + data: forge.util.createBuffer(), + tlsDataReady: options.tlsDataReady, + dataReady: options.dataReady, + heartbeatReceived: options.heartbeatReceived, + closed: options.closed, + error: function(c, ex) { + // set origin if not set + ex.origin = ex.origin || + ((c.entity === tls.ConnectionEnd.client) ? 'client' : 'server'); + + // send TLS alert + if(ex.send) { + tls.queue(c, tls.createAlert(c, ex.alert)); + tls.flush(c); } - }); - } - // digest finished message now that it has been handled - c.session.md5.update(msgBytes); - c.session.sha1.update(msgBytes); + // error is fatal by default + var fatal = (ex.fatal !== false); + if(fatal) { + // set fail flag + c.fail = true; + } - // resuming session as client or NOT resuming session as server - if((c.session.resuming && client) || (!c.session.resuming && !client)) { - // create change cipher spec message - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.change_cipher_spec, - data: tls.createChangeCipherSpec() - })); + // call error handler first + options.error(c, ex); - // change current write state to pending write state, clear pending - c.state.current.write = c.state.pending.write; - c.state.pending = null; + if(fatal) { + // fatal error, close connection, do not clear fail + c.close(false); + } + }, + deflate: options.deflate || null, + inflate: options.inflate || null + }; - // create finished message - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createFinished(c) - })); - } + /** + * Resets a closed TLS connection for reuse. Called in c.close(). + * + * @param clearFail true to clear the fail flag (default: true). + */ + c.reset = function(clearFail) { + c.version = {major: tls.Version.major, minor: tls.Version.minor}; + c.record = null; + c.session = null; + c.peerCertificate = null; + c.state = { + pending: null, + current: null + }; + c.expect = (c.entity === tls.ConnectionEnd.client) ? SHE : CHE; + c.fragmented = null; + c.records = []; + c.open = false; + c.handshakes = 0; + c.handshaking = false; + c.isConnected = false; + c.fail = !(clearFail || typeof(clearFail) === 'undefined'); + c.input.clear(); + c.tlsData.clear(); + c.data.clear(); + c.state.current = tls.createConnectionState(c); + }; - // expect application data next - c.expect = client ? SAD : CAD; + // do initial reset of connection + c.reset(); - // handshake complete - c.handshaking = false; - ++c.handshakes; + /** + * Updates the current TLS engine state based on the given record. + * + * @param c the TLS connection. + * @param record the TLS record to act on. + */ + var _update = function(c, record) { + // get record handler (align type in table by subtracting lowest) + var aligned = record.type - tls.ContentType.change_cipher_spec; + var handlers = ctTable[c.entity][c.expect]; + if(aligned in handlers) { + handlers[aligned](c, record); + } else { + // unexpected record + tls.handleUnexpected(c, record); + } + }; - // save access to peer certificate - c.peerCertificate = client ? - c.session.serverCertificate : c.session.clientCertificate; + /** + * Reads the record header and initializes the next record on the given + * connection. + * + * @param c the TLS connection with the next record. + * + * @return 0 if the input data could be processed, otherwise the + * number of bytes required for data to be processed. + */ + var _readRecordHeader = function(c) { + var rval = 0; - // send records - tls.flush(c); + // get input buffer and its length + var b = c.input; + var len = b.length(); - // now connected - c.isConnected = true; - c.connected(c); + // need at least 5 bytes to initialize a record + if(len < 5) { + rval = 5 - len; + } else { + // enough bytes for header + // initialize record + c.record = { + type: b.getByte(), + version: { + major: b.getByte(), + minor: b.getByte() + }, + length: b.getInt16(), + fragment: forge.util.createBuffer(), + ready: false + }; - // continue - c.process(); -}; + // check record version + var compatibleVersion = (c.record.version.major === c.version.major); + if(compatibleVersion && c.session && c.session.version) { + // session version already set, require same minor version + compatibleVersion = (c.record.version.minor === c.version.minor); + } + if(!compatibleVersion) { + c.error(c, { + message: 'Incompatible TLS version.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: tls.Alert.Description.protocol_version + } + }); + } + } -/** - * Called when an Alert record is received. - * - * @param c the connection. - * @param record the record. - */ -tls.handleAlert = function(c, record) { - // read alert - var b = record.fragment; - var alert = { - level: b.getByte(), - description: b.getByte() + return rval; }; - // TODO: consider using a table? - // get appropriate message - var msg; - switch(alert.description) { - case tls.Alert.Description.close_notify: - msg = 'Connection closed.'; - break; - case tls.Alert.Description.unexpected_message: - msg = 'Unexpected message.'; - break; - case tls.Alert.Description.bad_record_mac: - msg = 'Bad record MAC.'; - break; - case tls.Alert.Description.decryption_failed: - msg = 'Decryption failed.'; - break; - case tls.Alert.Description.record_overflow: - msg = 'Record overflow.'; - break; - case tls.Alert.Description.decompression_failure: - msg = 'Decompression failed.'; - break; - case tls.Alert.Description.handshake_failure: - msg = 'Handshake failure.'; - break; - case tls.Alert.Description.bad_certificate: - msg = 'Bad certificate.'; - break; - case tls.Alert.Description.unsupported_certificate: - msg = 'Unsupported certificate.'; - break; - case tls.Alert.Description.certificate_revoked: - msg = 'Certificate revoked.'; - break; - case tls.Alert.Description.certificate_expired: - msg = 'Certificate expired.'; - break; - case tls.Alert.Description.certificate_unknown: - msg = 'Certificate unknown.'; - break; - case tls.Alert.Description.illegal_parameter: - msg = 'Illegal parameter.'; - break; - case tls.Alert.Description.unknown_ca: - msg = 'Unknown certificate authority.'; - break; - case tls.Alert.Description.access_denied: - msg = 'Access denied.'; - break; - case tls.Alert.Description.decode_error: - msg = 'Decode error.'; - break; - case tls.Alert.Description.decrypt_error: - msg = 'Decrypt error.'; - break; - case tls.Alert.Description.export_restriction: - msg = 'Export restriction.'; - break; - case tls.Alert.Description.protocol_version: - msg = 'Unsupported protocol version.'; - break; - case tls.Alert.Description.insufficient_security: - msg = 'Insufficient security.'; - break; - case tls.Alert.Description.internal_error: - msg = 'Internal error.'; - break; - case tls.Alert.Description.user_canceled: - msg = 'User canceled.'; - break; - case tls.Alert.Description.no_renegotiation: - msg = 'Renegotiation not supported.'; - break; - default: - msg = 'Unknown error.'; - break; - } + /** + * Reads the next record's contents and appends its message to any + * previously fragmented message. + * + * @param c the TLS connection with the next record. + * + * @return 0 if the input data could be processed, otherwise the + * number of bytes required for data to be processed. + */ + var _readRecord = function(c) { + var rval = 0; - // close connection on close_notify, not an error - if(alert.description === tls.Alert.Description.close_notify) { - return c.close(); - } + // ensure there is enough input data to get the entire record + var b = c.input; + var len = b.length(); + if(len < c.record.length) { + // not enough data yet, return how much is required + rval = c.record.length - len; + } else { + // there is enough data to parse the pending record + // fill record fragment and compact input buffer + c.record.fragment.putBytes(b.getBytes(c.record.length)); + b.compact(); - // call error handler - c.error(c, { - message: msg, - send: false, - // origin is the opposite end - origin: (c.entity === tls.ConnectionEnd.client) ? 'server' : 'client', - alert: alert - }); + // update record using current read state + var s = c.state.current.read; + if(s.update(c, c.record)) { + // see if there is a previously fragmented message that the + // new record's message fragment should be appended to + if(c.fragmented !== null) { + // if the record type matches a previously fragmented + // record, append the record fragment to it + if(c.fragmented.type === c.record.type) { + // concatenate record fragments + c.fragmented.fragment.putBuffer(c.record.fragment); + c.record = c.fragmented; + } else { + // error, invalid fragmented record + c.error(c, { + message: 'Invalid fragmented record.', + send: true, + alert: { + level: tls.Alert.Level.fatal, + description: + tls.Alert.Description.unexpected_message + } + }); + } + } - // continue - c.process(); -}; + // record is now ready + c.record.ready = true; + } + } -/** - * Called when a Handshake record is received. - * - * @param c the connection. - * @param record the record. - */ -tls.handleHandshake = function(c, record) { - // get the handshake type and message length - var b = record.fragment; - var type = b.getByte(); - var length = b.getInt24(); + return rval; + }; - // see if the record fragment doesn't yet contain the full message - if(length > b.length()) { - // cache the record, clear its fragment, and reset the buffer read - // pointer before the type and length were read - c.fragmented = record; - record.fragment = forge.util.createBuffer(); - b.read -= 4; + /** + * Performs a handshake using the TLS Handshake Protocol, as a client. + * + * This method should only be called if the connection is in client mode. + * + * @param sessionId the session ID to use, null to start a new one. + */ + c.handshake = function(sessionId) { + // error to call this in non-client mode + if(c.entity !== tls.ConnectionEnd.client) { + // not fatal error + c.error(c, { + message: 'Cannot initiate handshake as a server.', + fatal: false + }); + } else if(c.handshaking) { + // handshake is already in progress, fail but not fatal error + c.error(c, { + message: 'Handshake already in progress.', + fatal: false + }); + } else { + // clear fail flag on reuse + if(c.fail && !c.open && c.handshakes === 0) { + c.fail = false; + } - // continue - return c.process(); - } + // now handshaking + c.handshaking = true; - // full message now available, clear cache, reset read pointer to - // before type and length - c.fragmented = null; - b.read -= 4; + // default to blank (new session) + sessionId = sessionId || ''; + + // if a session ID was specified, try to find it in the cache + var session = null; + if(sessionId.length > 0) { + if(c.sessionCache) { + session = c.sessionCache.getSession(sessionId); + } - // save the handshake bytes for digestion after handler is found - // (include type and length of handshake msg) - var bytes = b.bytes(length + 4); + // matching session not found in cache, clear session ID + if(session === null) { + sessionId = ''; + } + } - // restore read pointer - b.read += 4; + // no session given, grab a session from the cache, if available + if(sessionId.length === 0 && c.sessionCache) { + session = c.sessionCache.getSession(); + if(session !== null) { + sessionId = session.id; + } + } - // handle expected message - if(type in hsTable[c.entity][c.expect]) { - // initialize server session - if(c.entity === tls.ConnectionEnd.server && !c.open && !c.fail) { - c.handshaking = true; + // set up session c.session = { + id: sessionId, version: null, - extensions: { - server_name: { - serverNameList: [] - } - }, cipherSuite: null, compressionMethod: null, serverCertificate: null, + certificateRequest: null, clientCertificate: null, + sp: {}, md5: forge.md.md5.create(), sha1: forge.md.sha1.create() }; - } - - /* Update handshake messages digest. Finished and CertificateVerify - messages are not digested here. They can't be digested as part of - the verify_data that they contain. These messages are manually - digested in their handlers. HelloRequest messages are simply never - included in the handshake message digest according to spec. */ - if(type !== tls.HandshakeType.hello_request && - type !== tls.HandshakeType.certificate_verify && - type !== tls.HandshakeType.finished) { - c.session.md5.update(bytes); - c.session.sha1.update(bytes); - } - - // handle specific handshake type record - hsTable[c.entity][c.expect][type](c, record, length); - } else { - // unexpected record - tls.handleUnexpected(c, record); - } -}; - -/** - * Called when an ApplicationData record is received. - * - * @param c the connection. - * @param record the record. - */ -tls.handleApplicationData = function(c, record) { - // buffer data, notify that its ready - c.data.putBuffer(record.fragment); - c.dataReady(c); - // continue - c.process(); -}; + // use existing session information + if(session) { + // only update version on connection, session version not yet set + c.version = session.version; + c.session.sp = session.sp; + } -/** - * Called when a Heartbeat record is received. - * - * @param c the connection. - * @param record the record. - */ -tls.handleHeartbeat = function(c, record) { - // get the heartbeat type and payload - var b = record.fragment; - var type = b.getByte(); - var length = b.getInt16(); - var payload = b.getBytes(length); + // generate new client random + c.session.sp.client_random = tls.createRandom().getBytes(); - if(type === tls.HeartbeatMessageType.heartbeat_request) { - // discard request during handshake or if length is too large - if(c.handshaking || length > payload.length) { - // continue - return c.process(); - } - // retransmit payload - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.heartbeat, - data: tls.createHeartbeat( - tls.HeartbeatMessageType.heartbeat_response, payload) - })); - tls.flush(c); - } else if(type === tls.HeartbeatMessageType.heartbeat_response) { - // check payload against expected payload, discard heartbeat if no match - if(payload !== c.expectedHeartbeatPayload) { - // continue - return c.process(); - } + // connection now open + c.open = true; - // notify that a valid heartbeat was received - if(c.heartbeatReceived) { - c.heartbeatReceived(c, forge.util.createBuffer(payload)); + // send hello + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.handshake, + data: tls.createClientHello(c) + })); + tls.flush(c); } - } - - // continue - c.process(); -}; - -/** - * The transistional state tables for receiving TLS records. It maps the - * current TLS engine state and a received record to a function to handle the - * record and update the state. - * - * For instance, if the current state is SHE, then the TLS engine is expecting - * a ServerHello record. Once a record is received, the handler function is - * looked up using the state SHE and the record's content type. - * - * The resulting function will either be an error handler or a record handler. - * The function will take whatever action is appropriate and update the state - * for the next record. - * - * The states are all based on possible server record types. Note that the - * client will never specifically expect to receive a HelloRequest or an alert - * from the server so there is no state that reflects this. These messages may - * occur at any time. - * - * There are two tables for mapping states because there is a second tier of - * types for handshake messages. Once a record with a content type of handshake - * is received, the handshake record handler will look up the handshake type in - * the secondary map to get its appropriate handler. - * - * Valid message orders are as follows: - * - * =======================FULL HANDSHAKE====================== - * Client Server - * - * ClientHello --------> - * ServerHello - * Certificate* - * ServerKeyExchange* - * CertificateRequest* - * <-------- ServerHelloDone - * Certificate* - * ClientKeyExchange - * CertificateVerify* - * [ChangeCipherSpec] - * Finished --------> - * [ChangeCipherSpec] - * <-------- Finished - * Application Data <-------> Application Data - * - * =====================SESSION RESUMPTION===================== - * Client Server - * - * ClientHello --------> - * ServerHello - * [ChangeCipherSpec] - * <-------- Finished - * [ChangeCipherSpec] - * Finished --------> - * Application Data <-------> Application Data - */ -// client expect states (indicate which records are expected to be received) -var SHE = 0; // rcv server hello -var SCE = 1; // rcv server certificate -var SKE = 2; // rcv server key exchange -var SCR = 3; // rcv certificate request -var SHD = 4; // rcv server hello done -var SCC = 5; // rcv change cipher spec -var SFI = 6; // rcv finished -var SAD = 7; // rcv application data -var SER = 8; // not expecting any messages at this point - -// server expect states -var CHE = 0; // rcv client hello -var CCE = 1; // rcv client certificate -var CKE = 2; // rcv client key exchange -var CCV = 3; // rcv certificate verify -var CCC = 4; // rcv change cipher spec -var CFI = 5; // rcv finished -var CAD = 6; // rcv application data -var CER = 7; // not expecting any messages at this point - -// map client current expect state and content type to function -var __ = tls.handleUnexpected; -var R0 = tls.handleChangeCipherSpec; -var R1 = tls.handleAlert; -var R2 = tls.handleHandshake; -var R3 = tls.handleApplicationData; -var R4 = tls.handleHeartbeat; -var ctTable = []; -ctTable[tls.ConnectionEnd.client] = [ -// CC,AL,HS,AD,HB -/*SHE*/[__,R1,R2,__,R4], -/*SCE*/[__,R1,R2,__,R4], -/*SKE*/[__,R1,R2,__,R4], -/*SCR*/[__,R1,R2,__,R4], -/*SHD*/[__,R1,R2,__,R4], -/*SCC*/[R0,R1,__,__,R4], -/*SFI*/[__,R1,R2,__,R4], -/*SAD*/[__,R1,R2,R3,R4], -/*SER*/[__,R1,R2,__,R4] -]; - -// map server current expect state and content type to function -ctTable[tls.ConnectionEnd.server] = [ -// CC,AL,HS,AD -/*CHE*/[__,R1,R2,__,R4], -/*CCE*/[__,R1,R2,__,R4], -/*CKE*/[__,R1,R2,__,R4], -/*CCV*/[__,R1,R2,__,R4], -/*CCC*/[R0,R1,__,__,R4], -/*CFI*/[__,R1,R2,__,R4], -/*CAD*/[__,R1,R2,R3,R4], -/*CER*/[__,R1,R2,__,R4] -]; - -// map client current expect state and handshake type to function -var H0 = tls.handleHelloRequest; -var H1 = tls.handleServerHello; -var H2 = tls.handleCertificate; -var H3 = tls.handleServerKeyExchange; -var H4 = tls.handleCertificateRequest; -var H5 = tls.handleServerHelloDone; -var H6 = tls.handleFinished; -var hsTable = []; -hsTable[tls.ConnectionEnd.client] = [ -// HR,01,SH,03,04,05,06,07,08,09,10,SC,SK,CR,HD,15,CK,17,18,19,FI -/*SHE*/[__,__,H1,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], -/*SCE*/[H0,__,__,__,__,__,__,__,__,__,__,H2,H3,H4,H5,__,__,__,__,__,__], -/*SKE*/[H0,__,__,__,__,__,__,__,__,__,__,__,H3,H4,H5,__,__,__,__,__,__], -/*SCR*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,H4,H5,__,__,__,__,__,__], -/*SHD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,H5,__,__,__,__,__,__], -/*SCC*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], -/*SFI*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6], -/*SAD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], -/*SER*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__] -]; - -// map server current expect state and handshake type to function -// Note: CAD[CH] does not map to FB because renegotation is prohibited -var H7 = tls.handleClientHello; -var H8 = tls.handleClientKeyExchange; -var H9 = tls.handleCertificateVerify; -hsTable[tls.ConnectionEnd.server] = [ -// 01,CH,02,03,04,05,06,07,08,09,10,CC,12,13,14,CV,CK,17,18,19,FI -/*CHE*/[__,H7,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], -/*CCE*/[__,__,__,__,__,__,__,__,__,__,__,H2,__,__,__,__,__,__,__,__,__], -/*CKE*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H8,__,__,__,__], -/*CCV*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H9,__,__,__,__,__], -/*CCC*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], -/*CFI*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6], -/*CAD*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__], -/*CER*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__] -]; - -/** - * Generates the master_secret and keys using the given security parameters. - * - * The security parameters for a TLS connection state are defined as such: - * - * struct { - * ConnectionEnd entity; - * PRFAlgorithm prf_algorithm; - * BulkCipherAlgorithm bulk_cipher_algorithm; - * CipherType cipher_type; - * uint8 enc_key_length; - * uint8 block_length; - * uint8 fixed_iv_length; - * uint8 record_iv_length; - * MACAlgorithm mac_algorithm; - * uint8 mac_length; - * uint8 mac_key_length; - * CompressionMethod compression_algorithm; - * opaque master_secret[48]; - * opaque client_random[32]; - * opaque server_random[32]; - * } SecurityParameters; - * - * Note that this definition is from TLS 1.2. In TLS 1.0 some of these - * parameters are ignored because, for instance, the PRFAlgorithm is a - * builtin-fixed algorithm combining iterations of MD5 and SHA-1 in TLS 1.0. - * - * The Record Protocol requires an algorithm to generate keys required by the - * current connection state. - * - * The master secret is expanded into a sequence of secure bytes, which is then - * split to a client write MAC key, a server write MAC key, a client write - * encryption key, and a server write encryption key. In TLS 1.0 a client write - * IV and server write IV are also generated. Each of these is generated from - * the byte sequence in that order. Unused values are empty. In TLS 1.2, some - * AEAD ciphers may additionally require a client write IV and a server write - * IV (see Section 6.2.3.3). - * - * When keys, MAC keys, and IVs are generated, the master secret is used as an - * entropy source. - * - * To generate the key material, compute: - * - * master_secret = PRF(pre_master_secret, "master secret", - * ClientHello.random + ServerHello.random) - * - * key_block = PRF(SecurityParameters.master_secret, - * "key expansion", - * SecurityParameters.server_random + - * SecurityParameters.client_random); - * - * until enough output has been generated. Then, the key_block is - * partitioned as follows: - * - * client_write_MAC_key[SecurityParameters.mac_key_length] - * server_write_MAC_key[SecurityParameters.mac_key_length] - * client_write_key[SecurityParameters.enc_key_length] - * server_write_key[SecurityParameters.enc_key_length] - * client_write_IV[SecurityParameters.fixed_iv_length] - * server_write_IV[SecurityParameters.fixed_iv_length] - * - * In TLS 1.2, the client_write_IV and server_write_IV are only generated for - * implicit nonce techniques as described in Section 3.2.1 of [AEAD]. This - * implementation uses TLS 1.0 so IVs are generated. - * - * Implementation note: The currently defined cipher suite which requires the - * most material is AES_256_CBC_SHA256. It requires 2 x 32 byte keys and 2 x 32 - * byte MAC keys, for a total 128 bytes of key material. In TLS 1.0 it also - * requires 2 x 16 byte IVs, so it actually takes 160 bytes of key material. - * - * @param c the connection. - * @param sp the security parameters to use. - * - * @return the security keys. - */ -tls.generateKeys = function(c, sp) { - // TLS_RSA_WITH_AES_128_CBC_SHA (required to be compliant with TLS 1.2) & - // TLS_RSA_WITH_AES_256_CBC_SHA are the only cipher suites implemented - // at present - - // TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA is required to be compliant with - // TLS 1.0 but we don't care right now because AES is better and we have - // an implementation for it + }; - // TODO: TLS 1.2 implementation - /* - // determine the PRF - var prf; - switch(sp.prf_algorithm) { - case tls.PRFAlgorithm.tls_prf_sha256: - prf = prf_sha256; - break; - default: - // should never happen - throw new Error('Invalid PRF'); - } - */ + /** + * Called when TLS protocol data has been received from somewhere and should + * be processed by the TLS engine. + * + * @param data the TLS protocol data, as a string, to process. + * + * @return 0 if the data could be processed, otherwise the number of bytes + * required for data to be processed. + */ + c.process = function(data) { + var rval = 0; - // TLS 1.0/1.1 implementation - var prf = prf_TLS1; + // buffer input data + if(data) { + c.input.putBytes(data); + } - // concatenate server and client random - var random = sp.client_random + sp.server_random; + // process next record if no failure, process will be called after + // each record is handled (since handling can be asynchronous) + if(!c.fail) { + // reset record if ready and now empty + if(c.record !== null && + c.record.ready && c.record.fragment.isEmpty()) { + c.record = null; + } - // only create master secret if session is new - if(!c.session.resuming) { - // create master secret, clean up pre-master secret - sp.master_secret = prf( - sp.pre_master_secret, 'master secret', random, 48).bytes(); - sp.pre_master_secret = null; - } + // if there is no pending record, try to read record header + if(c.record === null) { + rval = _readRecordHeader(c); + } - // generate the amount of key material needed - random = sp.server_random + sp.client_random; - var length = 2 * sp.mac_key_length + 2 * sp.enc_key_length; + // read the next record (if record not yet ready) + if(!c.fail && c.record !== null && !c.record.ready) { + rval = _readRecord(c); + } - // include IV for TLS/1.0 - var tls10 = (c.version.major === tls.Versions.TLS_1_0.major && - c.version.minor === tls.Versions.TLS_1_0.minor); - if(tls10) { - length += 2 * sp.fixed_iv_length; - } - var km = prf(sp.master_secret, 'key expansion', random, length); + // record ready to be handled, update engine state + if(!c.fail && c.record !== null && c.record.ready) { + _update(c, c.record); + } + } - // split the key material into the MAC and encryption keys - var rval = { - client_write_MAC_key: km.getBytes(sp.mac_key_length), - server_write_MAC_key: km.getBytes(sp.mac_key_length), - client_write_key: km.getBytes(sp.enc_key_length), - server_write_key: km.getBytes(sp.enc_key_length) + return rval; }; - // include TLS 1.0 IVs - if(tls10) { - rval.client_write_IV = km.getBytes(sp.fixed_iv_length); - rval.server_write_IV = km.getBytes(sp.fixed_iv_length); - } - - return rval; -}; - -/** - * Creates a new initialized TLS connection state. A connection state has - * a read mode and a write mode. - * - * compression state: - * The current state of the compression algorithm. - * - * cipher state: - * The current state of the encryption algorithm. This will consist of the - * scheduled key for that connection. For stream ciphers, this will also - * contain whatever state information is necessary to allow the stream to - * continue to encrypt or decrypt data. - * - * MAC key: - * The MAC key for the connection. - * - * sequence number: - * Each connection state contains a sequence number, which is maintained - * separately for read and write states. The sequence number MUST be set to - * zero whenever a connection state is made the active state. Sequence - * numbers are of type uint64 and may not exceed 2^64-1. Sequence numbers do - * not wrap. If a TLS implementation would need to wrap a sequence number, - * it must renegotiate instead. A sequence number is incremented after each - * record: specifically, the first record transmitted under a particular - * connection state MUST use sequence number 0. - * - * @param c the connection. - * - * @return the new initialized TLS connection state. - */ -tls.createConnectionState = function(c) { - var client = (c.entity === tls.ConnectionEnd.client); - - var createMode = function() { - var mode = { - // two 32-bit numbers, first is most significant - sequenceNumber: [0, 0], - macKey: null, - macLength: 0, - macFunction: null, - cipherState: null, - cipherFunction: function(record) {return true;}, - compressionState: null, - compressFunction: function(record) {return true;}, - updateSequenceNumber: function() { - if(mode.sequenceNumber[1] === 0xFFFFFFFF) { - mode.sequenceNumber[1] = 0; - ++mode.sequenceNumber[0]; - } else { - ++mode.sequenceNumber[1]; - } - } - }; - return mode; - }; - var state = { - read: createMode(), - write: createMode() + /** + * Requests that application data be packaged into a TLS record. The + * tlsDataReady handler will be called when the TLS record(s) have been + * prepared. + * + * @param data the application data, as a raw 'binary' encoded string, to + * be sent; to send utf-16/utf-8 string data, use the return value + * of util.encodeUtf8(str). + * + * @return true on success, false on failure. + */ + c.prepare = function(data) { + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.application_data, + data: forge.util.createBuffer(data) + })); + return tls.flush(c); }; - // update function in read mode will decrypt then decompress a record - state.read.update = function(c, record) { - if(!state.read.cipherFunction(record, state.read)) { - c.error(c, { - message: 'Could not decrypt record or bad MAC.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - // doesn't matter if decryption failed or MAC was - // invalid, return the same error so as not to reveal - // which one occurred - description: tls.Alert.Description.bad_record_mac - } - }); - } else if(!state.read.compressFunction(c, record, state.read)) { - c.error(c, { - message: 'Could not decompress record.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.decompression_failure - } - }); + /** + * Requests that a heartbeat request be packaged into a TLS record for + * transmission. The tlsDataReady handler will be called when TLS record(s) + * have been prepared. + * + * When a heartbeat response has been received, the heartbeatReceived + * handler will be called with the matching payload. This handler can + * be used to clear a retransmission timer, etc. + * + * @param payload the heartbeat data to send as the payload in the message. + * @param [payloadLength] the payload length to use, defaults to the + * actual payload length. + * + * @return true on success, false on failure. + */ + c.prepareHeartbeatRequest = function(payload, payloadLength) { + if(payload instanceof forge.util.ByteBuffer) { + payload = payload.bytes(); } - return !c.fail; + if(typeof payloadLength === 'undefined') { + payloadLength = payload.length; + } + c.expectedHeartbeatPayload = payload; + tls.queue(c, tls.createRecord(c, { + type: tls.ContentType.heartbeat, + data: tls.createHeartbeat( + tls.HeartbeatMessageType.heartbeat_request, payload, payloadLength) + })); + return tls.flush(c); }; - // update function in write mode will compress then encrypt a record - state.write.update = function(c, record) { - if(!state.write.compressFunction(c, record, state.write)) { - // error, but do not send alert since it would require - // compression as well - c.error(c, { - message: 'Could not compress record.', - send: false, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.internal_error - } - }); - } else if(!state.write.cipherFunction(record, state.write)) { - // error, but do not send alert since it would require - // encryption as well - c.error(c, { - message: 'Could not encrypt record.', - send: false, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.internal_error - } - }); + /** + * Closes the connection (sends a close_notify alert). + * + * @param clearFail true to clear the fail flag (default: true). + */ + c.close = function(clearFail) { + // save session if connection didn't fail + if(!c.fail && c.sessionCache && c.session) { + // only need to preserve session ID, version, and security params + var session = { + id: c.session.id, + version: c.session.version, + sp: c.session.sp + }; + session.sp.keys = null; + c.sessionCache.setSession(session.id, session); } - return !c.fail; - }; - // handle security parameters - if(c.session) { - var sp = c.session.sp; - c.session.cipherSuite.initSecurityParameters(sp); + if(c.open) { + // connection no longer open, clear input + c.open = false; + c.input.clear(); - // generate keys - sp.keys = tls.generateKeys(c, sp); - state.read.macKey = client ? - sp.keys.server_write_MAC_key : sp.keys.client_write_MAC_key; - state.write.macKey = client ? - sp.keys.client_write_MAC_key : sp.keys.server_write_MAC_key; + // if connected or handshaking, send an alert + if(c.isConnected || c.handshaking) { + c.isConnected = c.handshaking = false; - // cipher suite setup - c.session.cipherSuite.initConnectionState(state, c, sp); + // send close_notify alert + tls.queue(c, tls.createAlert(c, { + level: tls.Alert.Level.warning, + description: tls.Alert.Description.close_notify + })); + tls.flush(c); + } - // compression setup - switch(sp.compression_algorithm) { - case tls.CompressionMethod.none: - break; - case tls.CompressionMethod.deflate: - state.read.compressFunction = inflate; - state.write.compressFunction = deflate; - break; - default: - throw new Error('Unsupported compression algorithm.'); + // call handler + c.closed(c); } - } - return state; -}; + // reset TLS connection, do not clear fail flag + c.reset(clearFail); + }; -/** - * Creates a Random structure. - * - * struct { - * uint32 gmt_unix_time; - * opaque random_bytes[28]; - * } Random; - * - * gmt_unix_time: - * The current time and date in standard UNIX 32-bit format (seconds since - * the midnight starting Jan 1, 1970, UTC, ignoring leap seconds) according - * to the sender's internal clock. Clocks are not required to be set - * correctly by the basic TLS protocol; higher-level or application - * protocols may define additional requirements. Note that, for historical - * reasons, the data element is named using GMT, the predecessor of the - * current worldwide time base, UTC. - * random_bytes: - * 28 bytes generated by a secure random number generator. - * - * @return the Random structure as a byte array. - */ -tls.createRandom = function() { - // get UTC milliseconds - var d = new Date(); - var utc = +d + d.getTimezoneOffset() * 60000; - var rval = forge.util.createBuffer(); - rval.putInt32(utc); - rval.putBytes(forge.random.getBytes(28)); - return rval; + return c; }; -/** - * Creates a TLS record with the given type and data. - * - * @param c the connection. - * @param options: - * type: the record type. - * data: the plain text data in a byte buffer. - * - * @return the created record. - */ -tls.createRecord = function(c, options) { - if(!options.data) { - return null; +/* TLS API */ +module.exports = forge.tls = forge.tls || {}; + +// expose non-functions +for(var key in tls) { + if(typeof tls[key] !== 'function') { + forge.tls[key] = tls[key]; } - var record = { - type: options.type, - version: { - major: c.version.major, - minor: c.version.minor - }, - length: options.data.length(), - fragment: options.data - }; - return record; -}; +} -/** - * Creates a TLS alert record. - * - * @param c the connection. - * @param alert: - * level: the TLS alert level. - * description: the TLS alert description. - * - * @return the created alert record. - */ -tls.createAlert = function(c, alert) { - var b = forge.util.createBuffer(); - b.putByte(alert.level); - b.putByte(alert.description); - return tls.createRecord(c, { - type: tls.ContentType.alert, - data: b - }); -}; +// expose prf_tls1 for testing +forge.tls.prf_tls1 = prf_TLS1; -/* The structure of a TLS handshake message. - * - * struct { - * HandshakeType msg_type; // handshake type - * uint24 length; // bytes in message - * select(HandshakeType) { - * case hello_request: HelloRequest; - * case client_hello: ClientHello; - * case server_hello: ServerHello; - * case certificate: Certificate; - * case server_key_exchange: ServerKeyExchange; - * case certificate_request: CertificateRequest; - * case server_hello_done: ServerHelloDone; - * case certificate_verify: CertificateVerify; - * case client_key_exchange: ClientKeyExchange; - * case finished: Finished; - * } body; - * } Handshake; - */ +// expose sha1 hmac method +forge.tls.hmac_sha1 = hmac_sha1; + +// expose session cache creation +forge.tls.createSessionCache = tls.createSessionCache; /** - * Creates a ClientHello message. + * Creates a new TLS connection. This does not make any assumptions about the + * transport layer that TLS is working on top of, ie: it does not assume there + * is a TCP/IP connection or establish one. A TLS connection is totally + * abstracted away from the layer is runs on top of, it merely establishes a + * secure channel between a client" and a "server". * - * opaque SessionID<0..32>; - * enum { null(0), deflate(1), (255) } CompressionMethod; - * uint8 CipherSuite[2]; + * A TLS connection contains 4 connection states: pending read and write, and + * current read and write. * - * struct { - * ProtocolVersion client_version; - * Random random; - * SessionID session_id; - * CipherSuite cipher_suites<2..2^16-2>; - * CompressionMethod compression_methods<1..2^8-1>; - * select(extensions_present) { - * case false: - * struct {}; - * case true: - * Extension extensions<0..2^16-1>; - * }; - * } ClientHello; + * At initialization, the current read and write states will be null. Only once + * the security parameters have been set and the keys have been generated can + * the pending states be converted into current states. Current states will be + * updated for each record processed. * - * The extension format for extended client hellos and server hellos is: + * A custom certificate verify callback may be provided to check information + * like the common name on the server's certificate. It will be called for + * every certificate in the chain. It has the following signature: * - * struct { - * ExtensionType extension_type; - * opaque extension_data<0..2^16-1>; - * } Extension; + * variable func(c, certs, index, preVerify) + * Where: + * c The TLS connection + * verified Set to true if certificate was verified, otherwise the alert + * tls.Alert.Description for why the certificate failed. + * depth The current index in the chain, where 0 is the server's cert. + * certs The certificate chain, *NOTE* if the server was anonymous then + * the chain will be empty. * - * Here: + * The function returns true on success and on failure either the appropriate + * tls.Alert.Description or an object with 'alert' set to the appropriate + * tls.Alert.Description and 'message' set to a custom error message. If true + * is not returned then the connection will abort using, in order of + * availability, first the returned alert description, second the preVerify + * alert description, and lastly the default 'bad_certificate'. * - * - "extension_type" identifies the particular extension type. - * - "extension_data" contains information specific to the particular - * extension type. + * There are three callbacks that can be used to make use of client-side + * certificates where each takes the TLS connection as the first parameter: * - * The extension types defined in this document are: + * getCertificate(conn, hint) + * The second parameter is a hint as to which certificate should be + * returned. If the connection entity is a client, then the hint will be + * the CertificateRequest message from the server that is part of the + * TLS protocol. If the connection entity is a server, then it will be + * the servername list provided via an SNI extension the ClientHello, if + * one was provided (empty array if not). The hint can be examined to + * determine which certificate to use (advanced). Most implementations + * will just return a certificate. The return value must be a + * PEM-formatted certificate or an array of PEM-formatted certificates + * that constitute a certificate chain, with the first in the array/chain + * being the client's certificate. + * getPrivateKey(conn, certificate) + * The second parameter is an forge.pki X.509 certificate object that + * is associated with the requested private key. The return value must + * be a PEM-formatted private key. + * getSignature(conn, bytes, callback) + * This callback can be used instead of getPrivateKey if the private key + * is not directly accessible in javascript or should not be. For + * instance, a secure external web service could provide the signature + * in exchange for appropriate credentials. The second parameter is a + * string of bytes to be signed that are part of the TLS protocol. These + * bytes are used to verify that the private key for the previously + * provided client-side certificate is accessible to the client. The + * callback is a function that takes 2 parameters, the TLS connection + * and the RSA encrypted (signed) bytes as a string. This callback must + * be called once the signature is ready. * - * enum { - * server_name(0), max_fragment_length(1), - * client_certificate_url(2), trusted_ca_keys(3), - * truncated_hmac(4), status_request(5), (65535) - * } ExtensionType; + * @param options the options for this connection: + * server: true if the connection is server-side, false for client. + * sessionId: a session ID to reuse, null for a new connection. + * caStore: an array of certificates to trust. + * sessionCache: a session cache to use. + * cipherSuites: an optional array of cipher suites to use, + * see tls.CipherSuites. + * connected: function(conn) called when the first handshake completes. + * virtualHost: the virtual server name to use in a TLS SNI extension. + * verifyClient: true to require a client certificate in server mode, + * 'optional' to request one, false not to (default: false). + * verify: a handler used to custom verify certificates in the chain. + * verifyOptions: an object with options for the certificate chain validation. + * See documentation of pki.verifyCertificateChain for possible options. + * verifyOptions.verify is ignored. If you wish to specify a verify handler + * use the verify key. + * getCertificate: an optional callback used to get a certificate or + * a chain of certificates (as an array). + * getPrivateKey: an optional callback used to get a private key. + * getSignature: an optional callback used to get a signature. + * tlsDataReady: function(conn) called when TLS protocol data has been + * prepared and is ready to be used (typically sent over a socket + * connection to its destination), read from conn.tlsData buffer. + * dataReady: function(conn) called when application data has + * been parsed from a TLS record and should be consumed by the + * application, read from conn.data buffer. + * closed: function(conn) called when the connection has been closed. + * error: function(conn, error) called when there was an error. + * deflate: function(inBytes) if provided, will deflate TLS records using + * the deflate algorithm if the server supports it. + * inflate: function(inBytes) if provided, will inflate TLS records using + * the deflate algorithm if the server supports it. * - * @param c the connection. + * @return the new TLS connection. + */ +forge.tls.createConnection = tls.createConnection; + + +/***/ }), + +/***/ 8339: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/** + * Utility functions for web applications. * - * @return the ClientHello byte buffer. + * @author Dave Longley + * + * Copyright (c) 2010-2018 Digital Bazaar, Inc. */ -tls.createClientHello = function(c) { - // save hello version - c.session.clientHelloVersion = { - major: c.version.major, - minor: c.version.minor - }; +var forge = __nccwpck_require__(9177); +var baseN = __nccwpck_require__(2300); - // create supported cipher suites - var cipherSuites = forge.util.createBuffer(); - for(var i = 0; i < c.cipherSuites.length; ++i) { - var cs = c.cipherSuites[i]; - cipherSuites.putByte(cs.id[0]); - cipherSuites.putByte(cs.id[1]); +/* Utilities API */ +var util = module.exports = forge.util = forge.util || {}; + +// define setImmediate and nextTick +(function() { + // use native nextTick (unless we're in webpack) + // webpack (or better node-libs-browser polyfill) sets process.browser. + // this way we can detect webpack properly + if(typeof process !== 'undefined' && process.nextTick && !process.browser) { + util.nextTick = process.nextTick; + if(typeof setImmediate === 'function') { + util.setImmediate = setImmediate; + } else { + // polyfill setImmediate with nextTick, older versions of node + // (those w/o setImmediate) won't totally starve IO + util.setImmediate = util.nextTick; + } + return; } - var cSuites = cipherSuites.length(); - // create supported compression methods, null always supported, but - // also support deflate if connection has inflate and deflate methods - var compressionMethods = forge.util.createBuffer(); - compressionMethods.putByte(tls.CompressionMethod.none); - // FIXME: deflate support disabled until issues with raw deflate data - // without zlib headers are resolved - /* - if(c.inflate !== null && c.deflate !== null) { - compressionMethods.putByte(tls.CompressionMethod.deflate); + // polyfill nextTick with native setImmediate + if(typeof setImmediate === 'function') { + util.setImmediate = function() { return setImmediate.apply(undefined, arguments); }; + util.nextTick = function(callback) { + return setImmediate(callback); + }; + return; } - */ - var cMethods = compressionMethods.length(); - // create TLS SNI (server name indication) extension if virtual host - // has been specified, see RFC 3546 - var extensions = forge.util.createBuffer(); - if(c.virtualHost) { - // create extension struct - var ext = forge.util.createBuffer(); - ext.putByte(0x00); // type server_name (ExtensionType is 2 bytes) - ext.putByte(0x00); + /* Note: A polyfill upgrade pattern is used here to allow combining + polyfills. For example, MutationObserver is fast, but blocks UI updates, + so it needs to allow UI updates periodically, so it falls back on + postMessage or setTimeout. */ - /* In order to provide the server name, clients MAY include an - * extension of type "server_name" in the (extended) client hello. - * The "extension_data" field of this extension SHALL contain - * "ServerNameList" where: - * - * struct { - * NameType name_type; - * select(name_type) { - * case host_name: HostName; - * } name; - * } ServerName; - * - * enum { - * host_name(0), (255) - * } NameType; - * - * opaque HostName<1..2^16-1>; - * - * struct { - * ServerName server_name_list<1..2^16-1> - * } ServerNameList; - */ - var serverName = forge.util.createBuffer(); - serverName.putByte(0x00); // type host_name - writeVector(serverName, 2, forge.util.createBuffer(c.virtualHost)); + // polyfill with setTimeout + util.setImmediate = function(callback) { + setTimeout(callback, 0); + }; - // ServerNameList is in extension_data - var snList = forge.util.createBuffer(); - writeVector(snList, 2, serverName); - writeVector(ext, 2, snList); - extensions.putBuffer(ext); + // upgrade polyfill to use postMessage + if(typeof window !== 'undefined' && + typeof window.postMessage === 'function') { + var msg = 'forge.setImmediate'; + var callbacks = []; + util.setImmediate = function(callback) { + callbacks.push(callback); + // only send message when one hasn't been sent in + // the current turn of the event loop + if(callbacks.length === 1) { + window.postMessage(msg, '*'); + } + }; + function handler(event) { + if(event.source === window && event.data === msg) { + event.stopPropagation(); + var copy = callbacks.slice(); + callbacks.length = 0; + copy.forEach(function(callback) { + callback(); + }); + } + } + window.addEventListener('message', handler, true); } - var extLength = extensions.length(); - if(extLength > 0) { - // add extension vector length - extLength += 2; + + // upgrade polyfill to use MutationObserver + if(typeof MutationObserver !== 'undefined') { + // polyfill with MutationObserver + var now = Date.now(); + var attr = true; + var div = document.createElement('div'); + var callbacks = []; + new MutationObserver(function() { + var copy = callbacks.slice(); + callbacks.length = 0; + copy.forEach(function(callback) { + callback(); + }); + }).observe(div, {attributes: true}); + var oldSetImmediate = util.setImmediate; + util.setImmediate = function(callback) { + if(Date.now() - now > 15) { + now = Date.now(); + oldSetImmediate(callback); + } else { + callbacks.push(callback); + // only trigger observer when it hasn't been triggered in + // the current turn of the event loop + if(callbacks.length === 1) { + div.setAttribute('a', attr = !attr); + } + } + }; } - // determine length of the handshake message - // cipher suites and compression methods size will need to be - // updated if more get added to the list - var sessionId = c.session.id; - var length = - sessionId.length + 1 + // session ID vector - 2 + // version (major + minor) - 4 + 28 + // random time and random bytes - 2 + cSuites + // cipher suites vector - 1 + cMethods + // compression methods vector - extLength; // extensions vector + util.nextTick = util.setImmediate; +})(); - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.client_hello); - rval.putInt24(length); // handshake length - rval.putByte(c.version.major); // major version - rval.putByte(c.version.minor); // minor version - rval.putBytes(c.session.sp.client_random); // random time + bytes - writeVector(rval, 1, forge.util.createBuffer(sessionId)); - writeVector(rval, 2, cipherSuites); - writeVector(rval, 1, compressionMethods); - if(extLength > 0) { - writeVector(rval, 2, extensions); +// check if running under Node.js +util.isNodejs = + typeof process !== 'undefined' && process.versions && process.versions.node; + + +// 'self' will also work in Web Workers (instance of WorkerGlobalScope) while +// it will point to `window` in the main thread. +// To remain compatible with older browsers, we fall back to 'window' if 'self' +// is not available. +util.globalScope = (function() { + if(util.isNodejs) { + return global; } - return rval; + + return typeof self === 'undefined' ? window : self; +})(); + +// define isArray +util.isArray = Array.isArray || function(x) { + return Object.prototype.toString.call(x) === '[object Array]'; }; -/** - * Creates a ServerHello message. - * - * @param c the connection. - * - * @return the ServerHello byte buffer. - */ -tls.createServerHello = function(c) { - // determine length of the handshake message - var sessionId = c.session.id; - var length = - sessionId.length + 1 + // session ID vector - 2 + // version (major + minor) - 4 + 28 + // random time and random bytes - 2 + // chosen cipher suite - 1; // chosen compression method +// define isArrayBuffer +util.isArrayBuffer = function(x) { + return typeof ArrayBuffer !== 'undefined' && x instanceof ArrayBuffer; +}; - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.server_hello); - rval.putInt24(length); // handshake length - rval.putByte(c.version.major); // major version - rval.putByte(c.version.minor); // minor version - rval.putBytes(c.session.sp.server_random); // random time + bytes - writeVector(rval, 1, forge.util.createBuffer(sessionId)); - rval.putByte(c.session.cipherSuite.id[0]); - rval.putByte(c.session.cipherSuite.id[1]); - rval.putByte(c.session.compressionMethod); - return rval; +// define isArrayBufferView +util.isArrayBufferView = function(x) { + return x && util.isArrayBuffer(x.buffer) && x.byteLength !== undefined; }; /** - * Creates a Certificate message. - * - * When this message will be sent: - * This is the first message the client can send after receiving a server - * hello done message and the first message the server can send after - * sending a ServerHello. This client message is only sent if the server - * requests a certificate. If no suitable certificate is available, the - * client should send a certificate message containing no certificates. If - * client authentication is required by the server for the handshake to - * continue, it may respond with a fatal handshake failure alert. - * - * opaque ASN.1Cert<1..2^24-1>; - * - * struct { - * ASN.1Cert certificate_list<0..2^24-1>; - * } Certificate; + * Ensure a bits param is 8, 16, 24, or 32. Used to validate input for + * algorithms where bit manipulation, JavaScript limitations, and/or algorithm + * design only allow for byte operations of a limited size. * - * @param c the connection. + * @param n number of bits. * - * @return the Certificate byte buffer. + * Throw Error if n invalid. */ -tls.createCertificate = function(c) { - // TODO: check certificate request to ensure types are supported - - // get a certificate (a certificate as a PEM string) - var client = (c.entity === tls.ConnectionEnd.client); - var cert = null; - if(c.getCertificate) { - var hint; - if(client) { - hint = c.session.certificateRequest; - } else { - hint = c.session.extensions.server_name.serverNameList; - } - cert = c.getCertificate(c, hint); +function _checkBitsParam(n) { + if(!(n === 8 || n === 16 || n === 24 || n === 32)) { + throw new Error('Only 8, 16, 24, or 32 bits supported: ' + n); } +} - // buffer to hold certificate list - var certList = forge.util.createBuffer(); - if(cert !== null) { - try { - // normalize cert to a chain of certificates - if(!forge.util.isArray(cert)) { - cert = [cert]; - } - var asn1 = null; - for(var i = 0; i < cert.length; ++i) { - var msg = forge.pem.decode(cert[i])[0]; - if(msg.type !== 'CERTIFICATE' && - msg.type !== 'X509 CERTIFICATE' && - msg.type !== 'TRUSTED CERTIFICATE') { - var error = new Error('Could not convert certificate from PEM; PEM ' + - 'header type is not "CERTIFICATE", "X509 CERTIFICATE", or ' + - '"TRUSTED CERTIFICATE".'); - error.headerType = msg.type; - throw error; - } - if(msg.procType && msg.procType.type === 'ENCRYPTED') { - throw new Error('Could not convert certificate from PEM; PEM is encrypted.'); - } +// TODO: set ByteBuffer to best available backing +util.ByteBuffer = ByteStringBuffer; - var der = forge.util.createBuffer(msg.body); - if(asn1 === null) { - asn1 = forge.asn1.fromDer(der.bytes(), false); - } +/** Buffer w/BinaryString backing */ - // certificate entry is itself a vector with 3 length bytes - var certBuffer = forge.util.createBuffer(); - writeVector(certBuffer, 3, der); +/** + * Constructor for a binary string backed byte buffer. + * + * @param [b] the bytes to wrap (either encoded as string, one byte per + * character, or as an ArrayBuffer or Typed Array). + */ +function ByteStringBuffer(b) { + // TODO: update to match DataBuffer API - // add cert vector to cert list vector - certList.putBuffer(certBuffer); - } + // the data in this buffer + this.data = ''; + // the pointer for reading from this buffer + this.read = 0; - // save certificate - cert = forge.pki.certificateFromAsn1(asn1); - if(client) { - c.session.clientCertificate = cert; - } else { - c.session.serverCertificate = cert; - } - } catch(ex) { - return c.error(c, { - message: 'Could not send certificate list.', - cause: ex, - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.bad_certificate + if(typeof b === 'string') { + this.data = b; + } else if(util.isArrayBuffer(b) || util.isArrayBufferView(b)) { + if(typeof Buffer !== 'undefined' && b instanceof Buffer) { + this.data = b.toString('binary'); + } else { + // convert native buffer to forge buffer + // FIXME: support native buffers internally instead + var arr = new Uint8Array(b); + try { + this.data = String.fromCharCode.apply(null, arr); + } catch(e) { + for(var i = 0; i < arr.length; ++i) { + this.putByte(arr[i]); } - }); + } } + } else if(b instanceof ByteStringBuffer || + (typeof b === 'object' && typeof b.data === 'string' && + typeof b.read === 'number')) { + // copy existing buffer + this.data = b.data; + this.read = b.read; } - // determine length of the handshake message - var length = 3 + certList.length(); // cert list vector + // used for v8 optimization + this._constructedStringLength = 0; +} +util.ByteStringBuffer = ByteStringBuffer; - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.certificate); - rval.putInt24(length); - writeVector(rval, 3, certList); - return rval; +/* Note: This is an optimization for V8-based browsers. When V8 concatenates + a string, the strings are only joined logically using a "cons string" or + "constructed/concatenated string". These containers keep references to one + another and can result in very large memory usage. For example, if a 2MB + string is constructed by concatenating 4 bytes together at a time, the + memory usage will be ~44MB; so ~22x increase. The strings are only joined + together when an operation requiring their joining takes place, such as + substr(). This function is called when adding data to this buffer to ensure + these types of strings are periodically joined to reduce the memory + footprint. */ +var _MAX_CONSTRUCTED_STRING_LENGTH = 4096; +util.ByteStringBuffer.prototype._optimizeConstructedString = function(x) { + this._constructedStringLength += x; + if(this._constructedStringLength > _MAX_CONSTRUCTED_STRING_LENGTH) { + // this substr() should cause the constructed string to join + this.data.substr(0, 1); + this._constructedStringLength = 0; + } }; /** - * Creates a ClientKeyExchange message. - * - * When this message will be sent: - * This message is always sent by the client. It will immediately follow the - * client certificate message, if it is sent. Otherwise it will be the first - * message sent by the client after it receives the server hello done - * message. + * Gets the number of bytes in this buffer. * - * Meaning of this message: - * With this message, the premaster secret is set, either though direct - * transmission of the RSA-encrypted secret, or by the transmission of - * Diffie-Hellman parameters which will allow each side to agree upon the - * same premaster secret. When the key exchange method is DH_RSA or DH_DSS, - * client certification has been requested, and the client was able to - * respond with a certificate which contained a Diffie-Hellman public key - * whose parameters (group and generator) matched those specified by the - * server in its certificate, this message will not contain any data. + * @return the number of bytes in this buffer. + */ +util.ByteStringBuffer.prototype.length = function() { + return this.data.length - this.read; +}; + +/** + * Gets whether or not this buffer is empty. * - * Meaning of this message: - * If RSA is being used for key agreement and authentication, the client - * generates a 48-byte premaster secret, encrypts it using the public key - * from the server's certificate or the temporary RSA key provided in a - * server key exchange message, and sends the result in an encrypted - * premaster secret message. This structure is a variant of the client - * key exchange message, not a message in itself. + * @return true if this buffer is empty, false if not. + */ +util.ByteStringBuffer.prototype.isEmpty = function() { + return this.length() <= 0; +}; + +/** + * Puts a byte in this buffer. * - * struct { - * select(KeyExchangeAlgorithm) { - * case rsa: EncryptedPreMasterSecret; - * case diffie_hellman: ClientDiffieHellmanPublic; - * } exchange_keys; - * } ClientKeyExchange; + * @param b the byte to put. * - * struct { - * ProtocolVersion client_version; - * opaque random[46]; - * } PreMasterSecret; + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putByte = function(b) { + return this.putBytes(String.fromCharCode(b)); +}; + +/** + * Puts a byte in this buffer N times. * - * struct { - * public-key-encrypted PreMasterSecret pre_master_secret; - * } EncryptedPreMasterSecret; + * @param b the byte to put. + * @param n the number of bytes of value b to put. * - * A public-key-encrypted element is encoded as a vector <0..2^16-1>. + * @return this buffer. + */ +util.ByteStringBuffer.prototype.fillWithByte = function(b, n) { + b = String.fromCharCode(b); + var d = this.data; + while(n > 0) { + if(n & 1) { + d += b; + } + n >>>= 1; + if(n > 0) { + b += b; + } + } + this.data = d; + this._optimizeConstructedString(n); + return this; +}; + +/** + * Puts bytes in this buffer. * - * @param c the connection. + * @param bytes the bytes (as a binary encoded string) to put. * - * @return the ClientKeyExchange byte buffer. + * @return this buffer. */ -tls.createClientKeyExchange = function(c) { - // create buffer to encrypt - var b = forge.util.createBuffer(); - - // add highest client-supported protocol to help server avoid version - // rollback attacks - b.putByte(c.session.clientHelloVersion.major); - b.putByte(c.session.clientHelloVersion.minor); - - // generate and add 46 random bytes - b.putBytes(forge.random.getBytes(46)); - - // save pre-master secret - var sp = c.session.sp; - sp.pre_master_secret = b.getBytes(); - - // RSA-encrypt the pre-master secret - var key = c.session.serverCertificate.publicKey; - b = key.encrypt(sp.pre_master_secret); - - /* Note: The encrypted pre-master secret will be stored in a - public-key-encrypted opaque vector that has the length prefixed using - 2 bytes, so include those 2 bytes in the handshake message length. This - is done as a minor optimization instead of calling writeVector(). */ - - // determine length of the handshake message - var length = b.length + 2; - - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.client_key_exchange); - rval.putInt24(length); - // add vector length bytes - rval.putInt16(b.length); - rval.putBytes(b); - return rval; +util.ByteStringBuffer.prototype.putBytes = function(bytes) { + this.data += bytes; + this._optimizeConstructedString(bytes.length); + return this; }; /** - * Creates a ServerKeyExchange message. + * Puts a UTF-16 encoded string into this buffer. * - * @param c the connection. + * @param str the string to put. * - * @return the ServerKeyExchange byte buffer. + * @return this buffer. */ -tls.createServerKeyExchange = function(c) { - // this implementation only supports RSA, no Diffie-Hellman support, - // so this record is empty - - // determine length of the handshake message - var length = 0; +util.ByteStringBuffer.prototype.putString = function(str) { + return this.putBytes(util.encodeUtf8(str)); +}; - // build record fragment - var rval = forge.util.createBuffer(); - if(length > 0) { - rval.putByte(tls.HandshakeType.server_key_exchange); - rval.putInt24(length); - } - return rval; +/** + * Puts a 16-bit integer in this buffer in big-endian order. + * + * @param i the 16-bit integer. + * + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putInt16 = function(i) { + return this.putBytes( + String.fromCharCode(i >> 8 & 0xFF) + + String.fromCharCode(i & 0xFF)); }; /** - * Gets the signed data used to verify a client-side certificate. See - * tls.createCertificateVerify() for details. + * Puts a 24-bit integer in this buffer in big-endian order. * - * @param c the connection. - * @param callback the callback to call once the signed data is ready. + * @param i the 24-bit integer. + * + * @return this buffer. */ -tls.getClientSignature = function(c, callback) { - // generate data to RSA encrypt - var b = forge.util.createBuffer(); - b.putBuffer(c.session.md5.digest()); - b.putBuffer(c.session.sha1.digest()); - b = b.getBytes(); +util.ByteStringBuffer.prototype.putInt24 = function(i) { + return this.putBytes( + String.fromCharCode(i >> 16 & 0xFF) + + String.fromCharCode(i >> 8 & 0xFF) + + String.fromCharCode(i & 0xFF)); +}; - // create default signing function as necessary - c.getSignature = c.getSignature || function(c, b, callback) { - // do rsa encryption, call callback - var privateKey = null; - if(c.getPrivateKey) { - try { - privateKey = c.getPrivateKey(c, c.session.clientCertificate); - privateKey = forge.pki.privateKeyFromPem(privateKey); - } catch(ex) { - c.error(c, { - message: 'Could not get private key.', - cause: ex, - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.internal_error - } - }); - } - } - if(privateKey === null) { - c.error(c, { - message: 'No private key set.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.internal_error - } - }); - } else { - b = privateKey.sign(b, null); - } - callback(c, b); - }; +/** + * Puts a 32-bit integer in this buffer in big-endian order. + * + * @param i the 32-bit integer. + * + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putInt32 = function(i) { + return this.putBytes( + String.fromCharCode(i >> 24 & 0xFF) + + String.fromCharCode(i >> 16 & 0xFF) + + String.fromCharCode(i >> 8 & 0xFF) + + String.fromCharCode(i & 0xFF)); +}; - // get client signature - c.getSignature(c, b, callback); +/** + * Puts a 16-bit integer in this buffer in little-endian order. + * + * @param i the 16-bit integer. + * + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putInt16Le = function(i) { + return this.putBytes( + String.fromCharCode(i & 0xFF) + + String.fromCharCode(i >> 8 & 0xFF)); }; /** - * Creates a CertificateVerify message. - * - * Meaning of this message: - * This structure conveys the client's Diffie-Hellman public value - * (Yc) if it was not already included in the client's certificate. - * The encoding used for Yc is determined by the enumerated - * PublicValueEncoding. This structure is a variant of the client - * key exchange message, not a message in itself. - * - * When this message will be sent: - * This message is used to provide explicit verification of a client - * certificate. This message is only sent following a client - * certificate that has signing capability (i.e. all certificates - * except those containing fixed Diffie-Hellman parameters). When - * sent, it will immediately follow the client key exchange message. + * Puts a 24-bit integer in this buffer in little-endian order. * - * struct { - * Signature signature; - * } CertificateVerify; + * @param i the 24-bit integer. * - * CertificateVerify.signature.md5_hash - * MD5(handshake_messages); + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putInt24Le = function(i) { + return this.putBytes( + String.fromCharCode(i & 0xFF) + + String.fromCharCode(i >> 8 & 0xFF) + + String.fromCharCode(i >> 16 & 0xFF)); +}; + +/** + * Puts a 32-bit integer in this buffer in little-endian order. * - * Certificate.signature.sha_hash - * SHA(handshake_messages); + * @param i the 32-bit integer. * - * Here handshake_messages refers to all handshake messages sent or - * received starting at client hello up to but not including this - * message, including the type and length fields of the handshake - * messages. + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putInt32Le = function(i) { + return this.putBytes( + String.fromCharCode(i & 0xFF) + + String.fromCharCode(i >> 8 & 0xFF) + + String.fromCharCode(i >> 16 & 0xFF) + + String.fromCharCode(i >> 24 & 0xFF)); +}; + +/** + * Puts an n-bit integer in this buffer in big-endian order. * - * select(SignatureAlgorithm) { - * case anonymous: struct { }; - * case rsa: - * digitally-signed struct { - * opaque md5_hash[16]; - * opaque sha_hash[20]; - * }; - * case dsa: - * digitally-signed struct { - * opaque sha_hash[20]; - * }; - * } Signature; + * @param i the n-bit integer. + * @param n the number of bits in the integer (8, 16, 24, or 32). * - * In digital signing, one-way hash functions are used as input for a - * signing algorithm. A digitally-signed element is encoded as an opaque - * vector <0..2^16-1>, where the length is specified by the signing - * algorithm and key. + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putInt = function(i, n) { + _checkBitsParam(n); + var bytes = ''; + do { + n -= 8; + bytes += String.fromCharCode((i >> n) & 0xFF); + } while(n > 0); + return this.putBytes(bytes); +}; + +/** + * Puts a signed n-bit integer in this buffer in big-endian order. Two's + * complement representation is used. * - * In RSA signing, a 36-byte structure of two hashes (one SHA and one - * MD5) is signed (encrypted with the private key). It is encoded with - * PKCS #1 block type 0 or type 1 as described in [PKCS1]. + * @param i the n-bit integer. + * @param n the number of bits in the integer (8, 16, 24, or 32). * - * In DSS, the 20 bytes of the SHA hash are run directly through the - * Digital Signing Algorithm with no additional hashing. + * @return this buffer. + */ +util.ByteStringBuffer.prototype.putSignedInt = function(i, n) { + // putInt checks n + if(i < 0) { + i += 2 << (n - 1); + } + return this.putInt(i, n); +}; + +/** + * Puts the given buffer into this buffer. * - * @param c the connection. - * @param signature the signature to include in the message. + * @param buffer the buffer to put into this one. * - * @return the CertificateVerify byte buffer. + * @return this buffer. */ -tls.createCertificateVerify = function(c, signature) { - /* Note: The signature will be stored in a "digitally-signed" opaque - vector that has the length prefixed using 2 bytes, so include those - 2 bytes in the handshake message length. This is done as a minor - optimization instead of calling writeVector(). */ +util.ByteStringBuffer.prototype.putBuffer = function(buffer) { + return this.putBytes(buffer.getBytes()); +}; - // determine length of the handshake message - var length = signature.length + 2; +/** + * Gets a byte from this buffer and advances the read pointer by 1. + * + * @return the byte. + */ +util.ByteStringBuffer.prototype.getByte = function() { + return this.data.charCodeAt(this.read++); +}; - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.certificate_verify); - rval.putInt24(length); - // add vector length bytes - rval.putInt16(signature.length); - rval.putBytes(signature); +/** + * Gets a uint16 from this buffer in big-endian order and advances the read + * pointer by 2. + * + * @return the uint16. + */ +util.ByteStringBuffer.prototype.getInt16 = function() { + var rval = ( + this.data.charCodeAt(this.read) << 8 ^ + this.data.charCodeAt(this.read + 1)); + this.read += 2; return rval; }; /** - * Creates a CertificateRequest message. - * - * @param c the connection. + * Gets a uint24 from this buffer in big-endian order and advances the read + * pointer by 3. * - * @return the CertificateRequest byte buffer. + * @return the uint24. */ -tls.createCertificateRequest = function(c) { - // TODO: support other certificate types - var certTypes = forge.util.createBuffer(); - - // common RSA certificate type - certTypes.putByte(0x01); - - // add distinguished names from CA store - var cAs = forge.util.createBuffer(); - for(var key in c.caStore.certs) { - var cert = c.caStore.certs[key]; - var dn = forge.pki.distinguishedNameToAsn1(cert.subject); - var byteBuffer = forge.asn1.toDer(dn); - cAs.putInt16(byteBuffer.length()); - cAs.putBuffer(byteBuffer); - } - - // TODO: TLS 1.2+ has a different format - - // determine length of the handshake message - var length = - 1 + certTypes.length() + - 2 + cAs.length(); - - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.certificate_request); - rval.putInt24(length); - writeVector(rval, 1, certTypes); - writeVector(rval, 2, cAs); +util.ByteStringBuffer.prototype.getInt24 = function() { + var rval = ( + this.data.charCodeAt(this.read) << 16 ^ + this.data.charCodeAt(this.read + 1) << 8 ^ + this.data.charCodeAt(this.read + 2)); + this.read += 3; return rval; }; /** - * Creates a ServerHelloDone message. - * - * @param c the connection. + * Gets a uint32 from this buffer in big-endian order and advances the read + * pointer by 4. * - * @return the ServerHelloDone byte buffer. + * @return the word. */ -tls.createServerHelloDone = function(c) { - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.server_hello_done); - rval.putInt24(0); +util.ByteStringBuffer.prototype.getInt32 = function() { + var rval = ( + this.data.charCodeAt(this.read) << 24 ^ + this.data.charCodeAt(this.read + 1) << 16 ^ + this.data.charCodeAt(this.read + 2) << 8 ^ + this.data.charCodeAt(this.read + 3)); + this.read += 4; return rval; }; /** - * Creates a ChangeCipherSpec message. - * - * The change cipher spec protocol exists to signal transitions in - * ciphering strategies. The protocol consists of a single message, - * which is encrypted and compressed under the current (not the pending) - * connection state. The message consists of a single byte of value 1. - * - * struct { - * enum { change_cipher_spec(1), (255) } type; - * } ChangeCipherSpec; + * Gets a uint16 from this buffer in little-endian order and advances the read + * pointer by 2. * - * @return the ChangeCipherSpec byte buffer. + * @return the uint16. */ -tls.createChangeCipherSpec = function() { - var rval = forge.util.createBuffer(); - rval.putByte(0x01); +util.ByteStringBuffer.prototype.getInt16Le = function() { + var rval = ( + this.data.charCodeAt(this.read) ^ + this.data.charCodeAt(this.read + 1) << 8); + this.read += 2; return rval; }; /** - * Creates a Finished message. - * - * struct { - * opaque verify_data[12]; - * } Finished; - * - * verify_data - * PRF(master_secret, finished_label, MD5(handshake_messages) + - * SHA-1(handshake_messages)) [0..11]; + * Gets a uint24 from this buffer in little-endian order and advances the read + * pointer by 3. * - * finished_label - * For Finished messages sent by the client, the string "client - * finished". For Finished messages sent by the server, the - * string "server finished". + * @return the uint24. + */ +util.ByteStringBuffer.prototype.getInt24Le = function() { + var rval = ( + this.data.charCodeAt(this.read) ^ + this.data.charCodeAt(this.read + 1) << 8 ^ + this.data.charCodeAt(this.read + 2) << 16); + this.read += 3; + return rval; +}; + +/** + * Gets a uint32 from this buffer in little-endian order and advances the read + * pointer by 4. * - * handshake_messages - * All of the data from all handshake messages up to but not - * including this message. This is only data visible at the - * handshake layer and does not include record layer headers. - * This is the concatenation of all the Handshake structures as - * defined in 7.4 exchanged thus far. + * @return the word. + */ +util.ByteStringBuffer.prototype.getInt32Le = function() { + var rval = ( + this.data.charCodeAt(this.read) ^ + this.data.charCodeAt(this.read + 1) << 8 ^ + this.data.charCodeAt(this.read + 2) << 16 ^ + this.data.charCodeAt(this.read + 3) << 24); + this.read += 4; + return rval; +}; + +/** + * Gets an n-bit integer from this buffer in big-endian order and advances the + * read pointer by ceil(n/8). * - * @param c the connection. + * @param n the number of bits in the integer (8, 16, 24, or 32). * - * @return the Finished byte buffer. + * @return the integer. */ -tls.createFinished = function(c) { - // generate verify_data - var b = forge.util.createBuffer(); - b.putBuffer(c.session.md5.digest()); - b.putBuffer(c.session.sha1.digest()); - - // TODO: determine prf function and verify length for TLS 1.2 - var client = (c.entity === tls.ConnectionEnd.client); - var sp = c.session.sp; - var vdl = 12; - var prf = prf_TLS1; - var label = client ? 'client finished' : 'server finished'; - b = prf(sp.master_secret, label, b.getBytes(), vdl); - - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(tls.HandshakeType.finished); - rval.putInt24(b.length()); - rval.putBuffer(b); +util.ByteStringBuffer.prototype.getInt = function(n) { + _checkBitsParam(n); + var rval = 0; + do { + // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits. + rval = (rval << 8) + this.data.charCodeAt(this.read++); + n -= 8; + } while(n > 0); return rval; }; /** - * Creates a HeartbeatMessage (See RFC 6520). + * Gets a signed n-bit integer from this buffer in big-endian order, using + * two's complement, and advances the read pointer by n/8. * - * struct { - * HeartbeatMessageType type; - * uint16 payload_length; - * opaque payload[HeartbeatMessage.payload_length]; - * opaque padding[padding_length]; - * } HeartbeatMessage; + * @param n the number of bits in the integer (8, 16, 24, or 32). * - * The total length of a HeartbeatMessage MUST NOT exceed 2^14 or - * max_fragment_length when negotiated as defined in [RFC6066]. + * @return the integer. + */ +util.ByteStringBuffer.prototype.getSignedInt = function(n) { + // getInt checks n + var x = this.getInt(n); + var max = 2 << (n - 2); + if(x >= max) { + x -= max << 1; + } + return x; +}; + +/** + * Reads bytes out as a binary encoded string and clears them from the + * buffer. Note that the resulting string is binary encoded (in node.js this + * encoding is referred to as `binary`, it is *not* `utf8`). * - * type: The message type, either heartbeat_request or heartbeat_response. + * @param count the number of bytes to read, undefined or null for all. * - * payload_length: The length of the payload. + * @return a binary encoded string of bytes. + */ +util.ByteStringBuffer.prototype.getBytes = function(count) { + var rval; + if(count) { + // read count bytes + count = Math.min(this.length(), count); + rval = this.data.slice(this.read, this.read + count); + this.read += count; + } else if(count === 0) { + rval = ''; + } else { + // read all bytes, optimize to only copy when needed + rval = (this.read === 0) ? this.data : this.data.slice(this.read); + this.clear(); + } + return rval; +}; + +/** + * Gets a binary encoded string of the bytes from this buffer without + * modifying the read pointer. * - * payload: The payload consists of arbitrary content. + * @param count the number of bytes to get, omit to get all. * - * padding: The padding is random content that MUST be ignored by the - * receiver. The length of a HeartbeatMessage is TLSPlaintext.length - * for TLS and DTLSPlaintext.length for DTLS. Furthermore, the - * length of the type field is 1 byte, and the length of the - * payload_length is 2. Therefore, the padding_length is - * TLSPlaintext.length - payload_length - 3 for TLS and - * DTLSPlaintext.length - payload_length - 3 for DTLS. The - * padding_length MUST be at least 16. + * @return a string full of binary encoded characters. + */ +util.ByteStringBuffer.prototype.bytes = function(count) { + return (typeof(count) === 'undefined' ? + this.data.slice(this.read) : + this.data.slice(this.read, this.read + count)); +}; + +/** + * Gets a byte at the given index without modifying the read pointer. * - * The sender of a HeartbeatMessage MUST use a random padding of at - * least 16 bytes. The padding of a received HeartbeatMessage message - * MUST be ignored. + * @param i the byte index. * - * If the payload_length of a received HeartbeatMessage is too large, - * the received HeartbeatMessage MUST be discarded silently. + * @return the byte. + */ +util.ByteStringBuffer.prototype.at = function(i) { + return this.data.charCodeAt(this.read + i); +}; + +/** + * Puts a byte at the given index without modifying the read pointer. * - * @param c the connection. - * @param type the tls.HeartbeatMessageType. - * @param payload the heartbeat data to send as the payload. - * @param [payloadLength] the payload length to use, defaults to the - * actual payload length. + * @param i the byte index. + * @param b the byte to put. * - * @return the HeartbeatRequest byte buffer. + * @return this buffer. */ -tls.createHeartbeat = function(type, payload, payloadLength) { - if(typeof payloadLength === 'undefined') { - payloadLength = payload.length; - } - // build record fragment - var rval = forge.util.createBuffer(); - rval.putByte(type); // heartbeat message type - rval.putInt16(payloadLength); // payload length - rval.putBytes(payload); // payload - // padding - var plaintextLength = rval.length(); - var paddingLength = Math.max(16, plaintextLength - payloadLength - 3); - rval.putBytes(forge.random.getBytes(paddingLength)); - return rval; +util.ByteStringBuffer.prototype.setAt = function(i, b) { + this.data = this.data.substr(0, this.read + i) + + String.fromCharCode(b) + + this.data.substr(this.read + i + 1); + return this; }; /** - * Fragments, compresses, encrypts, and queues a record for delivery. + * Gets the last byte without modifying the read pointer. * - * @param c the connection. - * @param record the record to queue. + * @return the last byte. */ -tls.queue = function(c, record) { - // error during record creation - if(!record) { - return; - } - - if(record.fragment.length() === 0) { - if(record.type === tls.ContentType.handshake || - record.type === tls.ContentType.alert || - record.type === tls.ContentType.change_cipher_spec) { - // Empty handshake, alert of change cipher spec messages are not allowed per the TLS specification and should not be sent. - return; - } - } - - // if the record is a handshake record, update handshake hashes - if(record.type === tls.ContentType.handshake) { - var bytes = record.fragment.bytes(); - c.session.md5.update(bytes); - c.session.sha1.update(bytes); - bytes = null; - } - - // handle record fragmentation - var records; - if(record.fragment.length() <= tls.MaxFragment) { - records = [record]; - } else { - // fragment data as long as it is too long - records = []; - var data = record.fragment.bytes(); - while(data.length > tls.MaxFragment) { - records.push(tls.createRecord(c, { - type: record.type, - data: forge.util.createBuffer(data.slice(0, tls.MaxFragment)) - })); - data = data.slice(tls.MaxFragment); - } - // add last record - if(data.length > 0) { - records.push(tls.createRecord(c, { - type: record.type, - data: forge.util.createBuffer(data) - })); - } - } - - // compress and encrypt all fragmented records - for(var i = 0; i < records.length && !c.fail; ++i) { - // update the record using current write state - var rec = records[i]; - var s = c.state.current.write; - if(s.update(c, rec)) { - // store record - c.records.push(rec); - } - } +util.ByteStringBuffer.prototype.last = function() { + return this.data.charCodeAt(this.data.length - 1); }; /** - * Flushes all queued records to the output buffer and calls the - * tlsDataReady() handler on the given connection. - * - * @param c the connection. + * Creates a copy of this buffer. * - * @return true on success, false on failure. + * @return the copy. */ -tls.flush = function(c) { - for(var i = 0; i < c.records.length; ++i) { - var record = c.records[i]; - - // add record header and fragment - c.tlsData.putByte(record.type); - c.tlsData.putByte(record.version.major); - c.tlsData.putByte(record.version.minor); - c.tlsData.putInt16(record.fragment.length()); - c.tlsData.putBuffer(c.records[i].fragment); - } - c.records = []; - return c.tlsDataReady(c); +util.ByteStringBuffer.prototype.copy = function() { + var c = util.createBuffer(this.data); + c.read = this.read; + return c; }; /** - * Maps a pki.certificateError to a tls.Alert.Description. - * - * @param error the error to map. + * Compacts this buffer. * - * @return the alert description. + * @return this buffer. */ -var _certErrorToAlertDesc = function(error) { - switch(error) { - case true: - return true; - case forge.pki.certificateError.bad_certificate: - return tls.Alert.Description.bad_certificate; - case forge.pki.certificateError.unsupported_certificate: - return tls.Alert.Description.unsupported_certificate; - case forge.pki.certificateError.certificate_revoked: - return tls.Alert.Description.certificate_revoked; - case forge.pki.certificateError.certificate_expired: - return tls.Alert.Description.certificate_expired; - case forge.pki.certificateError.certificate_unknown: - return tls.Alert.Description.certificate_unknown; - case forge.pki.certificateError.unknown_ca: - return tls.Alert.Description.unknown_ca; - default: - return tls.Alert.Description.bad_certificate; +util.ByteStringBuffer.prototype.compact = function() { + if(this.read > 0) { + this.data = this.data.slice(this.read); + this.read = 0; } + return this; }; /** - * Maps a tls.Alert.Description to a pki.certificateError. - * - * @param desc the alert description. + * Clears this buffer. * - * @return the certificate error. + * @return this buffer. */ -var _alertDescToCertError = function(desc) { - switch(desc) { - case true: - return true; - case tls.Alert.Description.bad_certificate: - return forge.pki.certificateError.bad_certificate; - case tls.Alert.Description.unsupported_certificate: - return forge.pki.certificateError.unsupported_certificate; - case tls.Alert.Description.certificate_revoked: - return forge.pki.certificateError.certificate_revoked; - case tls.Alert.Description.certificate_expired: - return forge.pki.certificateError.certificate_expired; - case tls.Alert.Description.certificate_unknown: - return forge.pki.certificateError.certificate_unknown; - case tls.Alert.Description.unknown_ca: - return forge.pki.certificateError.unknown_ca; - default: - return forge.pki.certificateError.bad_certificate; - } +util.ByteStringBuffer.prototype.clear = function() { + this.data = ''; + this.read = 0; + return this; }; /** - * Verifies a certificate chain against the given connection's - * Certificate Authority store. + * Shortens this buffer by triming bytes off of the end of this buffer. * - * @param c the TLS connection. - * @param chain the certificate chain to verify, with the root or highest - * authority at the end. + * @param count the number of bytes to trim off. * - * @return true if successful, false if not. + * @return this buffer. */ -tls.verifyCertificateChain = function(c, chain) { - try { - // Make a copy of c.verifyOptions so that we can modify options.verify - // without modifying c.verifyOptions. - var options = {}; - for (var key in c.verifyOptions) { - options[key] = c.verifyOptions[key]; - } - - options.verify = function(vfd, depth, chain) { - // convert pki.certificateError to tls alert description - var desc = _certErrorToAlertDesc(vfd); - - // call application callback - var ret = c.verify(c, vfd, depth, chain); - if(ret !== true) { - if(typeof ret === 'object' && !forge.util.isArray(ret)) { - // throw custom error - var error = new Error('The application rejected the certificate.'); - error.send = true; - error.alert = { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.bad_certificate - }; - if(ret.message) { - error.message = ret.message; - } - if(ret.alert) { - error.alert.description = ret.alert; - } - throw error; - } - - // convert tls alert description to pki.certificateError - if(ret !== vfd) { - ret = _alertDescToCertError(ret); - } - } - - return ret; - }; - - // verify chain - forge.pki.verifyCertificateChain(c.caStore, chain, options); - } catch(ex) { - // build tls error if not already customized - var err = ex; - if(typeof err !== 'object' || forge.util.isArray(err)) { - err = { - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: _certErrorToAlertDesc(ex) - } - }; - } - if(!('send' in err)) { - err.send = true; - } - if(!('alert' in err)) { - err.alert = { - level: tls.Alert.Level.fatal, - description: _certErrorToAlertDesc(err.error) - }; - } - - // send error - c.error(c, err); - } - - return !c.fail; +util.ByteStringBuffer.prototype.truncate = function(count) { + var len = Math.max(0, this.length() - count); + this.data = this.data.substr(this.read, len); + this.read = 0; + return this; }; /** - * Creates a new TLS session cache. - * - * @param cache optional map of session ID to cached session. - * @param capacity the maximum size for the cache (default: 100). + * Converts this buffer to a hexadecimal string. * - * @return the new TLS session cache. + * @return a hexadecimal string. */ -tls.createSessionCache = function(cache, capacity) { - var rval = null; - - // assume input is already a session cache object - if(cache && cache.getSession && cache.setSession && cache.order) { - rval = cache; - } else { - // create cache - rval = {}; - rval.cache = cache || {}; - rval.capacity = Math.max(capacity || 100, 1); - rval.order = []; - - // store order for sessions, delete session overflow - for(var key in cache) { - if(rval.order.length <= capacity) { - rval.order.push(key); - } else { - delete cache[key]; - } +util.ByteStringBuffer.prototype.toHex = function() { + var rval = ''; + for(var i = this.read; i < this.data.length; ++i) { + var b = this.data.charCodeAt(i); + if(b < 16) { + rval += '0'; } - - // get a session from a session ID (or get any session) - rval.getSession = function(sessionId) { - var session = null; - var key = null; - - // if session ID provided, use it - if(sessionId) { - key = forge.util.bytesToHex(sessionId); - } else if(rval.order.length > 0) { - // get first session from cache - key = rval.order[0]; - } - - if(key !== null && key in rval.cache) { - // get cached session and remove from cache - session = rval.cache[key]; - delete rval.cache[key]; - for(var i in rval.order) { - if(rval.order[i] === key) { - rval.order.splice(i, 1); - break; - } - } - } - - return session; - }; - - // set a session in the cache - rval.setSession = function(sessionId, session) { - // remove session from cache if at capacity - if(rval.order.length === rval.capacity) { - var key = rval.order.shift(); - delete rval.cache[key]; - } - // add session to cache - var key = forge.util.bytesToHex(sessionId); - rval.order.push(key); - rval.cache[key] = session; - }; + rval += b.toString(16); } - return rval; }; /** - * Creates a new TLS connection. - * - * See public createConnection() docs for more details. - * - * @param options the options for this connection. + * Converts this buffer to a UTF-16 string (standard JavaScript string). * - * @return the new TLS connection. + * @return a UTF-16 string. */ -tls.createConnection = function(options) { - var caStore = null; - if(options.caStore) { - // if CA store is an array, convert it to a CA store object - if(forge.util.isArray(options.caStore)) { - caStore = forge.pki.createCaStore(options.caStore); - } else { - caStore = options.caStore; - } - } else { - // create empty CA store - caStore = forge.pki.createCaStore(); - } - - // setup default cipher suites - var cipherSuites = options.cipherSuites || null; - if(cipherSuites === null) { - cipherSuites = []; - for(var key in tls.CipherSuites) { - cipherSuites.push(tls.CipherSuites[key]); - } - } - - // set default entity - var entity = (options.server || false) ? - tls.ConnectionEnd.server : tls.ConnectionEnd.client; - - // create session cache if requested - var sessionCache = options.sessionCache ? - tls.createSessionCache(options.sessionCache) : null; - - // create TLS connection - var c = { - version: {major: tls.Version.major, minor: tls.Version.minor}, - entity: entity, - sessionId: options.sessionId, - caStore: caStore, - sessionCache: sessionCache, - cipherSuites: cipherSuites, - connected: options.connected, - virtualHost: options.virtualHost || null, - verifyClient: options.verifyClient || false, - verify: options.verify || function(cn, vfd, dpth, cts) {return vfd;}, - verifyOptions: options.verifyOptions || {}, - getCertificate: options.getCertificate || null, - getPrivateKey: options.getPrivateKey || null, - getSignature: options.getSignature || null, - input: forge.util.createBuffer(), - tlsData: forge.util.createBuffer(), - data: forge.util.createBuffer(), - tlsDataReady: options.tlsDataReady, - dataReady: options.dataReady, - heartbeatReceived: options.heartbeatReceived, - closed: options.closed, - error: function(c, ex) { - // set origin if not set - ex.origin = ex.origin || - ((c.entity === tls.ConnectionEnd.client) ? 'client' : 'server'); - - // send TLS alert - if(ex.send) { - tls.queue(c, tls.createAlert(c, ex.alert)); - tls.flush(c); - } - - // error is fatal by default - var fatal = (ex.fatal !== false); - if(fatal) { - // set fail flag - c.fail = true; - } - - // call error handler first - options.error(c, ex); - - if(fatal) { - // fatal error, close connection, do not clear fail - c.close(false); - } - }, - deflate: options.deflate || null, - inflate: options.inflate || null - }; - - /** - * Resets a closed TLS connection for reuse. Called in c.close(). - * - * @param clearFail true to clear the fail flag (default: true). - */ - c.reset = function(clearFail) { - c.version = {major: tls.Version.major, minor: tls.Version.minor}; - c.record = null; - c.session = null; - c.peerCertificate = null; - c.state = { - pending: null, - current: null - }; - c.expect = (c.entity === tls.ConnectionEnd.client) ? SHE : CHE; - c.fragmented = null; - c.records = []; - c.open = false; - c.handshakes = 0; - c.handshaking = false; - c.isConnected = false; - c.fail = !(clearFail || typeof(clearFail) === 'undefined'); - c.input.clear(); - c.tlsData.clear(); - c.data.clear(); - c.state.current = tls.createConnectionState(c); - }; +util.ByteStringBuffer.prototype.toString = function() { + return util.decodeUtf8(this.bytes()); +}; - // do initial reset of connection - c.reset(); +/** End Buffer w/BinaryString backing */ - /** - * Updates the current TLS engine state based on the given record. - * - * @param c the TLS connection. - * @param record the TLS record to act on. - */ - var _update = function(c, record) { - // get record handler (align type in table by subtracting lowest) - var aligned = record.type - tls.ContentType.change_cipher_spec; - var handlers = ctTable[c.entity][c.expect]; - if(aligned in handlers) { - handlers[aligned](c, record); - } else { - // unexpected record - tls.handleUnexpected(c, record); - } - }; +/** Buffer w/UInt8Array backing */ - /** - * Reads the record header and initializes the next record on the given - * connection. - * - * @param c the TLS connection with the next record. - * - * @return 0 if the input data could be processed, otherwise the - * number of bytes required for data to be processed. - */ - var _readRecordHeader = function(c) { - var rval = 0; +/** + * FIXME: Experimental. Do not use yet. + * + * Constructor for an ArrayBuffer-backed byte buffer. + * + * The buffer may be constructed from a string, an ArrayBuffer, DataView, or a + * TypedArray. + * + * If a string is given, its encoding should be provided as an option, + * otherwise it will default to 'binary'. A 'binary' string is encoded such + * that each character is one byte in length and size. + * + * If an ArrayBuffer, DataView, or TypedArray is given, it will be used + * *directly* without any copying. Note that, if a write to the buffer requires + * more space, the buffer will allocate a new backing ArrayBuffer to + * accommodate. The starting read and write offsets for the buffer may be + * given as options. + * + * @param [b] the initial bytes for this buffer. + * @param options the options to use: + * [readOffset] the starting read offset to use (default: 0). + * [writeOffset] the starting write offset to use (default: the + * length of the first parameter). + * [growSize] the minimum amount, in bytes, to grow the buffer by to + * accommodate writes (default: 1024). + * [encoding] the encoding ('binary', 'utf8', 'utf16', 'hex') for the + * first parameter, if it is a string (default: 'binary'). + */ +function DataBuffer(b, options) { + // default options + options = options || {}; - // get input buffer and its length - var b = c.input; - var len = b.length(); + // pointers for read from/write to buffer + this.read = options.readOffset || 0; + this.growSize = options.growSize || 1024; - // need at least 5 bytes to initialize a record - if(len < 5) { - rval = 5 - len; + var isArrayBuffer = util.isArrayBuffer(b); + var isArrayBufferView = util.isArrayBufferView(b); + if(isArrayBuffer || isArrayBufferView) { + // use ArrayBuffer directly + if(isArrayBuffer) { + this.data = new DataView(b); } else { - // enough bytes for header - // initialize record - c.record = { - type: b.getByte(), - version: { - major: b.getByte(), - minor: b.getByte() - }, - length: b.getInt16(), - fragment: forge.util.createBuffer(), - ready: false - }; - - // check record version - var compatibleVersion = (c.record.version.major === c.version.major); - if(compatibleVersion && c.session && c.session.version) { - // session version already set, require same minor version - compatibleVersion = (c.record.version.minor === c.version.minor); - } - if(!compatibleVersion) { - c.error(c, { - message: 'Incompatible TLS version.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: tls.Alert.Description.protocol_version - } - }); - } + // TODO: adjust read/write offset based on the type of view + // or specify that this must be done in the options ... that the + // offsets are byte-based + this.data = new DataView(b.buffer, b.byteOffset, b.byteLength); } + this.write = ('writeOffset' in options ? + options.writeOffset : this.data.byteLength); + return; + } - return rval; - }; - - /** - * Reads the next record's contents and appends its message to any - * previously fragmented message. - * - * @param c the TLS connection with the next record. - * - * @return 0 if the input data could be processed, otherwise the - * number of bytes required for data to be processed. - */ - var _readRecord = function(c) { - var rval = 0; - - // ensure there is enough input data to get the entire record - var b = c.input; - var len = b.length(); - if(len < c.record.length) { - // not enough data yet, return how much is required - rval = c.record.length - len; - } else { - // there is enough data to parse the pending record - // fill record fragment and compact input buffer - c.record.fragment.putBytes(b.getBytes(c.record.length)); - b.compact(); - - // update record using current read state - var s = c.state.current.read; - if(s.update(c, c.record)) { - // see if there is a previously fragmented message that the - // new record's message fragment should be appended to - if(c.fragmented !== null) { - // if the record type matches a previously fragmented - // record, append the record fragment to it - if(c.fragmented.type === c.record.type) { - // concatenate record fragments - c.fragmented.fragment.putBuffer(c.record.fragment); - c.record = c.fragmented; - } else { - // error, invalid fragmented record - c.error(c, { - message: 'Invalid fragmented record.', - send: true, - alert: { - level: tls.Alert.Level.fatal, - description: - tls.Alert.Description.unexpected_message - } - }); - } - } + // initialize to empty array buffer and add any given bytes using putBytes + this.data = new DataView(new ArrayBuffer(0)); + this.write = 0; - // record is now ready - c.record.ready = true; - } - } + if(b !== null && b !== undefined) { + this.putBytes(b); + } - return rval; - }; + if('writeOffset' in options) { + this.write = options.writeOffset; + } +} +util.DataBuffer = DataBuffer; - /** - * Performs a handshake using the TLS Handshake Protocol, as a client. - * - * This method should only be called if the connection is in client mode. - * - * @param sessionId the session ID to use, null to start a new one. - */ - c.handshake = function(sessionId) { - // error to call this in non-client mode - if(c.entity !== tls.ConnectionEnd.client) { - // not fatal error - c.error(c, { - message: 'Cannot initiate handshake as a server.', - fatal: false - }); - } else if(c.handshaking) { - // handshake is already in progress, fail but not fatal error - c.error(c, { - message: 'Handshake already in progress.', - fatal: false - }); - } else { - // clear fail flag on reuse - if(c.fail && !c.open && c.handshakes === 0) { - c.fail = false; - } +/** + * Gets the number of bytes in this buffer. + * + * @return the number of bytes in this buffer. + */ +util.DataBuffer.prototype.length = function() { + return this.write - this.read; +}; - // now handshaking - c.handshaking = true; +/** + * Gets whether or not this buffer is empty. + * + * @return true if this buffer is empty, false if not. + */ +util.DataBuffer.prototype.isEmpty = function() { + return this.length() <= 0; +}; - // default to blank (new session) - sessionId = sessionId || ''; +/** + * Ensures this buffer has enough empty space to accommodate the given number + * of bytes. An optional parameter may be given that indicates a minimum + * amount to grow the buffer if necessary. If the parameter is not given, + * the buffer will be grown by some previously-specified default amount + * or heuristic. + * + * @param amount the number of bytes to accommodate. + * @param [growSize] the minimum amount, in bytes, to grow the buffer by if + * necessary. + */ +util.DataBuffer.prototype.accommodate = function(amount, growSize) { + if(this.length() >= amount) { + return this; + } + growSize = Math.max(growSize || this.growSize, amount); - // if a session ID was specified, try to find it in the cache - var session = null; - if(sessionId.length > 0) { - if(c.sessionCache) { - session = c.sessionCache.getSession(sessionId); - } + // grow buffer + var src = new Uint8Array( + this.data.buffer, this.data.byteOffset, this.data.byteLength); + var dst = new Uint8Array(this.length() + growSize); + dst.set(src); + this.data = new DataView(dst.buffer); - // matching session not found in cache, clear session ID - if(session === null) { - sessionId = ''; - } - } + return this; +}; - // no session given, grab a session from the cache, if available - if(sessionId.length === 0 && c.sessionCache) { - session = c.sessionCache.getSession(); - if(session !== null) { - sessionId = session.id; - } - } +/** + * Puts a byte in this buffer. + * + * @param b the byte to put. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putByte = function(b) { + this.accommodate(1); + this.data.setUint8(this.write++, b); + return this; +}; - // set up session - c.session = { - id: sessionId, - version: null, - cipherSuite: null, - compressionMethod: null, - serverCertificate: null, - certificateRequest: null, - clientCertificate: null, - sp: {}, - md5: forge.md.md5.create(), - sha1: forge.md.sha1.create() - }; +/** + * Puts a byte in this buffer N times. + * + * @param b the byte to put. + * @param n the number of bytes of value b to put. + * + * @return this buffer. + */ +util.DataBuffer.prototype.fillWithByte = function(b, n) { + this.accommodate(n); + for(var i = 0; i < n; ++i) { + this.data.setUint8(b); + } + return this; +}; - // use existing session information - if(session) { - // only update version on connection, session version not yet set - c.version = session.version; - c.session.sp = session.sp; - } +/** + * Puts bytes in this buffer. The bytes may be given as a string, an + * ArrayBuffer, a DataView, or a TypedArray. + * + * @param bytes the bytes to put. + * @param [encoding] the encoding for the first parameter ('binary', 'utf8', + * 'utf16', 'hex'), if it is a string (default: 'binary'). + * + * @return this buffer. + */ +util.DataBuffer.prototype.putBytes = function(bytes, encoding) { + if(util.isArrayBufferView(bytes)) { + var src = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength); + var len = src.byteLength - src.byteOffset; + this.accommodate(len); + var dst = new Uint8Array(this.data.buffer, this.write); + dst.set(src); + this.write += len; + return this; + } - // generate new client random - c.session.sp.client_random = tls.createRandom().getBytes(); + if(util.isArrayBuffer(bytes)) { + var src = new Uint8Array(bytes); + this.accommodate(src.byteLength); + var dst = new Uint8Array(this.data.buffer); + dst.set(src, this.write); + this.write += src.byteLength; + return this; + } - // connection now open - c.open = true; + // bytes is a util.DataBuffer or equivalent + if(bytes instanceof util.DataBuffer || + (typeof bytes === 'object' && + typeof bytes.read === 'number' && typeof bytes.write === 'number' && + util.isArrayBufferView(bytes.data))) { + var src = new Uint8Array(bytes.data.byteLength, bytes.read, bytes.length()); + this.accommodate(src.byteLength); + var dst = new Uint8Array(bytes.data.byteLength, this.write); + dst.set(src); + this.write += src.byteLength; + return this; + } - // send hello - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.handshake, - data: tls.createClientHello(c) - })); - tls.flush(c); + if(bytes instanceof util.ByteStringBuffer) { + // copy binary string and process as the same as a string parameter below + bytes = bytes.data; + encoding = 'binary'; + } + + // string conversion + encoding = encoding || 'binary'; + if(typeof bytes === 'string') { + var view; + + // decode from string + if(encoding === 'hex') { + this.accommodate(Math.ceil(bytes.length / 2)); + view = new Uint8Array(this.data.buffer, this.write); + this.write += util.binary.hex.decode(bytes, view, this.write); + return this; + } + if(encoding === 'base64') { + this.accommodate(Math.ceil(bytes.length / 4) * 3); + view = new Uint8Array(this.data.buffer, this.write); + this.write += util.binary.base64.decode(bytes, view, this.write); + return this; } - }; - /** - * Called when TLS protocol data has been received from somewhere and should - * be processed by the TLS engine. - * - * @param data the TLS protocol data, as a string, to process. - * - * @return 0 if the data could be processed, otherwise the number of bytes - * required for data to be processed. - */ - c.process = function(data) { - var rval = 0; + // encode text as UTF-8 bytes + if(encoding === 'utf8') { + // encode as UTF-8 then decode string as raw binary + bytes = util.encodeUtf8(bytes); + encoding = 'binary'; + } - // buffer input data - if(data) { - c.input.putBytes(data); + // decode string as raw binary + if(encoding === 'binary' || encoding === 'raw') { + // one byte per character + this.accommodate(bytes.length); + view = new Uint8Array(this.data.buffer, this.write); + this.write += util.binary.raw.decode(view); + return this; } - // process next record if no failure, process will be called after - // each record is handled (since handling can be asynchronous) - if(!c.fail) { - // reset record if ready and now empty - if(c.record !== null && - c.record.ready && c.record.fragment.isEmpty()) { - c.record = null; - } + // encode text as UTF-16 bytes + if(encoding === 'utf16') { + // two bytes per character + this.accommodate(bytes.length * 2); + view = new Uint16Array(this.data.buffer, this.write); + this.write += util.text.utf16.encode(view); + return this; + } - // if there is no pending record, try to read record header - if(c.record === null) { - rval = _readRecordHeader(c); - } + throw new Error('Invalid encoding: ' + encoding); + } - // read the next record (if record not yet ready) - if(!c.fail && c.record !== null && !c.record.ready) { - rval = _readRecord(c); - } + throw Error('Invalid parameter: ' + bytes); +}; - // record ready to be handled, update engine state - if(!c.fail && c.record !== null && c.record.ready) { - _update(c, c.record); - } - } +/** + * Puts the given buffer into this buffer. + * + * @param buffer the buffer to put into this one. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putBuffer = function(buffer) { + this.putBytes(buffer); + buffer.clear(); + return this; +}; - return rval; - }; +/** + * Puts a string into this buffer. + * + * @param str the string to put. + * @param [encoding] the encoding for the string (default: 'utf16'). + * + * @return this buffer. + */ +util.DataBuffer.prototype.putString = function(str) { + return this.putBytes(str, 'utf16'); +}; - /** - * Requests that application data be packaged into a TLS record. The - * tlsDataReady handler will be called when the TLS record(s) have been - * prepared. - * - * @param data the application data, as a raw 'binary' encoded string, to - * be sent; to send utf-16/utf-8 string data, use the return value - * of util.encodeUtf8(str). - * - * @return true on success, false on failure. - */ - c.prepare = function(data) { - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.application_data, - data: forge.util.createBuffer(data) - })); - return tls.flush(c); - }; +/** + * Puts a 16-bit integer in this buffer in big-endian order. + * + * @param i the 16-bit integer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putInt16 = function(i) { + this.accommodate(2); + this.data.setInt16(this.write, i); + this.write += 2; + return this; +}; - /** - * Requests that a heartbeat request be packaged into a TLS record for - * transmission. The tlsDataReady handler will be called when TLS record(s) - * have been prepared. - * - * When a heartbeat response has been received, the heartbeatReceived - * handler will be called with the matching payload. This handler can - * be used to clear a retransmission timer, etc. - * - * @param payload the heartbeat data to send as the payload in the message. - * @param [payloadLength] the payload length to use, defaults to the - * actual payload length. - * - * @return true on success, false on failure. - */ - c.prepareHeartbeatRequest = function(payload, payloadLength) { - if(payload instanceof forge.util.ByteBuffer) { - payload = payload.bytes(); - } - if(typeof payloadLength === 'undefined') { - payloadLength = payload.length; - } - c.expectedHeartbeatPayload = payload; - tls.queue(c, tls.createRecord(c, { - type: tls.ContentType.heartbeat, - data: tls.createHeartbeat( - tls.HeartbeatMessageType.heartbeat_request, payload, payloadLength) - })); - return tls.flush(c); - }; +/** + * Puts a 24-bit integer in this buffer in big-endian order. + * + * @param i the 24-bit integer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putInt24 = function(i) { + this.accommodate(3); + this.data.setInt16(this.write, i >> 8 & 0xFFFF); + this.data.setInt8(this.write, i >> 16 & 0xFF); + this.write += 3; + return this; +}; - /** - * Closes the connection (sends a close_notify alert). - * - * @param clearFail true to clear the fail flag (default: true). - */ - c.close = function(clearFail) { - // save session if connection didn't fail - if(!c.fail && c.sessionCache && c.session) { - // only need to preserve session ID, version, and security params - var session = { - id: c.session.id, - version: c.session.version, - sp: c.session.sp - }; - session.sp.keys = null; - c.sessionCache.setSession(session.id, session); - } +/** + * Puts a 32-bit integer in this buffer in big-endian order. + * + * @param i the 32-bit integer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putInt32 = function(i) { + this.accommodate(4); + this.data.setInt32(this.write, i); + this.write += 4; + return this; +}; - if(c.open) { - // connection no longer open, clear input - c.open = false; - c.input.clear(); +/** + * Puts a 16-bit integer in this buffer in little-endian order. + * + * @param i the 16-bit integer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putInt16Le = function(i) { + this.accommodate(2); + this.data.setInt16(this.write, i, true); + this.write += 2; + return this; +}; - // if connected or handshaking, send an alert - if(c.isConnected || c.handshaking) { - c.isConnected = c.handshaking = false; +/** + * Puts a 24-bit integer in this buffer in little-endian order. + * + * @param i the 24-bit integer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putInt24Le = function(i) { + this.accommodate(3); + this.data.setInt8(this.write, i >> 16 & 0xFF); + this.data.setInt16(this.write, i >> 8 & 0xFFFF, true); + this.write += 3; + return this; +}; - // send close_notify alert - tls.queue(c, tls.createAlert(c, { - level: tls.Alert.Level.warning, - description: tls.Alert.Description.close_notify - })); - tls.flush(c); - } +/** + * Puts a 32-bit integer in this buffer in little-endian order. + * + * @param i the 32-bit integer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putInt32Le = function(i) { + this.accommodate(4); + this.data.setInt32(this.write, i, true); + this.write += 4; + return this; +}; - // call handler - c.closed(c); - } +/** + * Puts an n-bit integer in this buffer in big-endian order. + * + * @param i the n-bit integer. + * @param n the number of bits in the integer (8, 16, 24, or 32). + * + * @return this buffer. + */ +util.DataBuffer.prototype.putInt = function(i, n) { + _checkBitsParam(n); + this.accommodate(n / 8); + do { + n -= 8; + this.data.setInt8(this.write++, (i >> n) & 0xFF); + } while(n > 0); + return this; +}; - // reset TLS connection, do not clear fail flag - c.reset(clearFail); - }; +/** + * Puts a signed n-bit integer in this buffer in big-endian order. Two's + * complement representation is used. + * + * @param i the n-bit integer. + * @param n the number of bits in the integer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.putSignedInt = function(i, n) { + _checkBitsParam(n); + this.accommodate(n / 8); + if(i < 0) { + i += 2 << (n - 1); + } + return this.putInt(i, n); +}; - return c; +/** + * Gets a byte from this buffer and advances the read pointer by 1. + * + * @return the byte. + */ +util.DataBuffer.prototype.getByte = function() { + return this.data.getInt8(this.read++); }; -/* TLS API */ -module.exports = forge.tls = forge.tls || {}; +/** + * Gets a uint16 from this buffer in big-endian order and advances the read + * pointer by 2. + * + * @return the uint16. + */ +util.DataBuffer.prototype.getInt16 = function() { + var rval = this.data.getInt16(this.read); + this.read += 2; + return rval; +}; -// expose non-functions -for(var key in tls) { - if(typeof tls[key] !== 'function') { - forge.tls[key] = tls[key]; - } -} +/** + * Gets a uint24 from this buffer in big-endian order and advances the read + * pointer by 3. + * + * @return the uint24. + */ +util.DataBuffer.prototype.getInt24 = function() { + var rval = ( + this.data.getInt16(this.read) << 8 ^ + this.data.getInt8(this.read + 2)); + this.read += 3; + return rval; +}; -// expose prf_tls1 for testing -forge.tls.prf_tls1 = prf_TLS1; +/** + * Gets a uint32 from this buffer in big-endian order and advances the read + * pointer by 4. + * + * @return the word. + */ +util.DataBuffer.prototype.getInt32 = function() { + var rval = this.data.getInt32(this.read); + this.read += 4; + return rval; +}; -// expose sha1 hmac method -forge.tls.hmac_sha1 = hmac_sha1; +/** + * Gets a uint16 from this buffer in little-endian order and advances the read + * pointer by 2. + * + * @return the uint16. + */ +util.DataBuffer.prototype.getInt16Le = function() { + var rval = this.data.getInt16(this.read, true); + this.read += 2; + return rval; +}; -// expose session cache creation -forge.tls.createSessionCache = tls.createSessionCache; +/** + * Gets a uint24 from this buffer in little-endian order and advances the read + * pointer by 3. + * + * @return the uint24. + */ +util.DataBuffer.prototype.getInt24Le = function() { + var rval = ( + this.data.getInt8(this.read) ^ + this.data.getInt16(this.read + 1, true) << 8); + this.read += 3; + return rval; +}; /** - * Creates a new TLS connection. This does not make any assumptions about the - * transport layer that TLS is working on top of, ie: it does not assume there - * is a TCP/IP connection or establish one. A TLS connection is totally - * abstracted away from the layer is runs on top of, it merely establishes a - * secure channel between a client" and a "server". + * Gets a uint32 from this buffer in little-endian order and advances the read + * pointer by 4. * - * A TLS connection contains 4 connection states: pending read and write, and - * current read and write. + * @return the word. + */ +util.DataBuffer.prototype.getInt32Le = function() { + var rval = this.data.getInt32(this.read, true); + this.read += 4; + return rval; +}; + +/** + * Gets an n-bit integer from this buffer in big-endian order and advances the + * read pointer by n/8. * - * At initialization, the current read and write states will be null. Only once - * the security parameters have been set and the keys have been generated can - * the pending states be converted into current states. Current states will be - * updated for each record processed. + * @param n the number of bits in the integer (8, 16, 24, or 32). * - * A custom certificate verify callback may be provided to check information - * like the common name on the server's certificate. It will be called for - * every certificate in the chain. It has the following signature: + * @return the integer. + */ +util.DataBuffer.prototype.getInt = function(n) { + _checkBitsParam(n); + var rval = 0; + do { + // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits. + rval = (rval << 8) + this.data.getInt8(this.read++); + n -= 8; + } while(n > 0); + return rval; +}; + +/** + * Gets a signed n-bit integer from this buffer in big-endian order, using + * two's complement, and advances the read pointer by n/8. * - * variable func(c, certs, index, preVerify) - * Where: - * c The TLS connection - * verified Set to true if certificate was verified, otherwise the alert - * tls.Alert.Description for why the certificate failed. - * depth The current index in the chain, where 0 is the server's cert. - * certs The certificate chain, *NOTE* if the server was anonymous then - * the chain will be empty. + * @param n the number of bits in the integer (8, 16, 24, or 32). * - * The function returns true on success and on failure either the appropriate - * tls.Alert.Description or an object with 'alert' set to the appropriate - * tls.Alert.Description and 'message' set to a custom error message. If true - * is not returned then the connection will abort using, in order of - * availability, first the returned alert description, second the preVerify - * alert description, and lastly the default 'bad_certificate'. + * @return the integer. + */ +util.DataBuffer.prototype.getSignedInt = function(n) { + // getInt checks n + var x = this.getInt(n); + var max = 2 << (n - 2); + if(x >= max) { + x -= max << 1; + } + return x; +}; + +/** + * Reads bytes out as a binary encoded string and clears them from the + * buffer. * - * There are three callbacks that can be used to make use of client-side - * certificates where each takes the TLS connection as the first parameter: + * @param count the number of bytes to read, undefined or null for all. * - * getCertificate(conn, hint) - * The second parameter is a hint as to which certificate should be - * returned. If the connection entity is a client, then the hint will be - * the CertificateRequest message from the server that is part of the - * TLS protocol. If the connection entity is a server, then it will be - * the servername list provided via an SNI extension the ClientHello, if - * one was provided (empty array if not). The hint can be examined to - * determine which certificate to use (advanced). Most implementations - * will just return a certificate. The return value must be a - * PEM-formatted certificate or an array of PEM-formatted certificates - * that constitute a certificate chain, with the first in the array/chain - * being the client's certificate. - * getPrivateKey(conn, certificate) - * The second parameter is an forge.pki X.509 certificate object that - * is associated with the requested private key. The return value must - * be a PEM-formatted private key. - * getSignature(conn, bytes, callback) - * This callback can be used instead of getPrivateKey if the private key - * is not directly accessible in javascript or should not be. For - * instance, a secure external web service could provide the signature - * in exchange for appropriate credentials. The second parameter is a - * string of bytes to be signed that are part of the TLS protocol. These - * bytes are used to verify that the private key for the previously - * provided client-side certificate is accessible to the client. The - * callback is a function that takes 2 parameters, the TLS connection - * and the RSA encrypted (signed) bytes as a string. This callback must - * be called once the signature is ready. + * @return a binary encoded string of bytes. + */ +util.DataBuffer.prototype.getBytes = function(count) { + // TODO: deprecate this method, it is poorly named and + // this.toString('binary') replaces it + // add a toTypedArray()/toArrayBuffer() function + var rval; + if(count) { + // read count bytes + count = Math.min(this.length(), count); + rval = this.data.slice(this.read, this.read + count); + this.read += count; + } else if(count === 0) { + rval = ''; + } else { + // read all bytes, optimize to only copy when needed + rval = (this.read === 0) ? this.data : this.data.slice(this.read); + this.clear(); + } + return rval; +}; + +/** + * Gets a binary encoded string of the bytes from this buffer without + * modifying the read pointer. * - * @param options the options for this connection: - * server: true if the connection is server-side, false for client. - * sessionId: a session ID to reuse, null for a new connection. - * caStore: an array of certificates to trust. - * sessionCache: a session cache to use. - * cipherSuites: an optional array of cipher suites to use, - * see tls.CipherSuites. - * connected: function(conn) called when the first handshake completes. - * virtualHost: the virtual server name to use in a TLS SNI extension. - * verifyClient: true to require a client certificate in server mode, - * 'optional' to request one, false not to (default: false). - * verify: a handler used to custom verify certificates in the chain. - * verifyOptions: an object with options for the certificate chain validation. - * See documentation of pki.verifyCertificateChain for possible options. - * verifyOptions.verify is ignored. If you wish to specify a verify handler - * use the verify key. - * getCertificate: an optional callback used to get a certificate or - * a chain of certificates (as an array). - * getPrivateKey: an optional callback used to get a private key. - * getSignature: an optional callback used to get a signature. - * tlsDataReady: function(conn) called when TLS protocol data has been - * prepared and is ready to be used (typically sent over a socket - * connection to its destination), read from conn.tlsData buffer. - * dataReady: function(conn) called when application data has - * been parsed from a TLS record and should be consumed by the - * application, read from conn.data buffer. - * closed: function(conn) called when the connection has been closed. - * error: function(conn, error) called when there was an error. - * deflate: function(inBytes) if provided, will deflate TLS records using - * the deflate algorithm if the server supports it. - * inflate: function(inBytes) if provided, will inflate TLS records using - * the deflate algorithm if the server supports it. + * @param count the number of bytes to get, omit to get all. * - * @return the new TLS connection. + * @return a string full of binary encoded characters. */ -forge.tls.createConnection = tls.createConnection; - - -/***/ }), +util.DataBuffer.prototype.bytes = function(count) { + // TODO: deprecate this method, it is poorly named, add "getString()" + return (typeof(count) === 'undefined' ? + this.data.slice(this.read) : + this.data.slice(this.read, this.read + count)); +}; -/***/ 8339: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/** + * Gets a byte at the given index without modifying the read pointer. + * + * @param i the byte index. + * + * @return the byte. + */ +util.DataBuffer.prototype.at = function(i) { + return this.data.getUint8(this.read + i); +}; /** - * Utility functions for web applications. + * Puts a byte at the given index without modifying the read pointer. * - * @author Dave Longley + * @param i the byte index. + * @param b the byte to put. * - * Copyright (c) 2010-2018 Digital Bazaar, Inc. + * @return this buffer. */ -var forge = __nccwpck_require__(9177); -var baseN = __nccwpck_require__(2300); +util.DataBuffer.prototype.setAt = function(i, b) { + this.data.setUint8(i, b); + return this; +}; -/* Utilities API */ -var util = module.exports = forge.util = forge.util || {}; +/** + * Gets the last byte without modifying the read pointer. + * + * @return the last byte. + */ +util.DataBuffer.prototype.last = function() { + return this.data.getUint8(this.write - 1); +}; -// define setImmediate and nextTick -(function() { - // use native nextTick (unless we're in webpack) - // webpack (or better node-libs-browser polyfill) sets process.browser. - // this way we can detect webpack properly - if(typeof process !== 'undefined' && process.nextTick && !process.browser) { - util.nextTick = process.nextTick; - if(typeof setImmediate === 'function') { - util.setImmediate = setImmediate; - } else { - // polyfill setImmediate with nextTick, older versions of node - // (those w/o setImmediate) won't totally starve IO - util.setImmediate = util.nextTick; - } - return; - } +/** + * Creates a copy of this buffer. + * + * @return the copy. + */ +util.DataBuffer.prototype.copy = function() { + return new util.DataBuffer(this); +}; - // polyfill nextTick with native setImmediate - if(typeof setImmediate === 'function') { - util.setImmediate = function() { return setImmediate.apply(undefined, arguments); }; - util.nextTick = function(callback) { - return setImmediate(callback); - }; - return; +/** + * Compacts this buffer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.compact = function() { + if(this.read > 0) { + var src = new Uint8Array(this.data.buffer, this.read); + var dst = new Uint8Array(src.byteLength); + dst.set(src); + this.data = new DataView(dst); + this.write -= this.read; + this.read = 0; } + return this; +}; - /* Note: A polyfill upgrade pattern is used here to allow combining - polyfills. For example, MutationObserver is fast, but blocks UI updates, - so it needs to allow UI updates periodically, so it falls back on - postMessage or setTimeout. */ +/** + * Clears this buffer. + * + * @return this buffer. + */ +util.DataBuffer.prototype.clear = function() { + this.data = new DataView(new ArrayBuffer(0)); + this.read = this.write = 0; + return this; +}; - // polyfill with setTimeout - util.setImmediate = function(callback) { - setTimeout(callback, 0); - }; +/** + * Shortens this buffer by triming bytes off of the end of this buffer. + * + * @param count the number of bytes to trim off. + * + * @return this buffer. + */ +util.DataBuffer.prototype.truncate = function(count) { + this.write = Math.max(0, this.length() - count); + this.read = Math.min(this.read, this.write); + return this; +}; - // upgrade polyfill to use postMessage - if(typeof window !== 'undefined' && - typeof window.postMessage === 'function') { - var msg = 'forge.setImmediate'; - var callbacks = []; - util.setImmediate = function(callback) { - callbacks.push(callback); - // only send message when one hasn't been sent in - // the current turn of the event loop - if(callbacks.length === 1) { - window.postMessage(msg, '*'); - } - }; - function handler(event) { - if(event.source === window && event.data === msg) { - event.stopPropagation(); - var copy = callbacks.slice(); - callbacks.length = 0; - copy.forEach(function(callback) { - callback(); - }); - } +/** + * Converts this buffer to a hexadecimal string. + * + * @return a hexadecimal string. + */ +util.DataBuffer.prototype.toHex = function() { + var rval = ''; + for(var i = this.read; i < this.data.byteLength; ++i) { + var b = this.data.getUint8(i); + if(b < 16) { + rval += '0'; } - window.addEventListener('message', handler, true); - } - - // upgrade polyfill to use MutationObserver - if(typeof MutationObserver !== 'undefined') { - // polyfill with MutationObserver - var now = Date.now(); - var attr = true; - var div = document.createElement('div'); - var callbacks = []; - new MutationObserver(function() { - var copy = callbacks.slice(); - callbacks.length = 0; - copy.forEach(function(callback) { - callback(); - }); - }).observe(div, {attributes: true}); - var oldSetImmediate = util.setImmediate; - util.setImmediate = function(callback) { - if(Date.now() - now > 15) { - now = Date.now(); - oldSetImmediate(callback); - } else { - callbacks.push(callback); - // only trigger observer when it hasn't been triggered in - // the current turn of the event loop - if(callbacks.length === 1) { - div.setAttribute('a', attr = !attr); - } - } - }; + rval += b.toString(16); } + return rval; +}; - util.nextTick = util.setImmediate; -})(); - -// check if running under Node.js -util.isNodejs = - typeof process !== 'undefined' && process.versions && process.versions.node; - +/** + * Converts this buffer to a string, using the given encoding. If no + * encoding is given, 'utf8' (UTF-8) is used. + * + * @param [encoding] the encoding to use: 'binary', 'utf8', 'utf16', 'hex', + * 'base64' (default: 'utf8'). + * + * @return a string representation of the bytes in this buffer. + */ +util.DataBuffer.prototype.toString = function(encoding) { + var view = new Uint8Array(this.data, this.read, this.length()); + encoding = encoding || 'utf8'; -// 'self' will also work in Web Workers (instance of WorkerGlobalScope) while -// it will point to `window` in the main thread. -// To remain compatible with older browsers, we fall back to 'window' if 'self' -// is not available. -util.globalScope = (function() { - if(util.isNodejs) { - return global; + // encode to string + if(encoding === 'binary' || encoding === 'raw') { + return util.binary.raw.encode(view); + } + if(encoding === 'hex') { + return util.binary.hex.encode(view); + } + if(encoding === 'base64') { + return util.binary.base64.encode(view); } - return typeof self === 'undefined' ? window : self; -})(); + // decode to text + if(encoding === 'utf8') { + return util.text.utf8.decode(view); + } + if(encoding === 'utf16') { + return util.text.utf16.decode(view); + } -// define isArray -util.isArray = Array.isArray || function(x) { - return Object.prototype.toString.call(x) === '[object Array]'; + throw new Error('Invalid encoding: ' + encoding); }; -// define isArrayBuffer -util.isArrayBuffer = function(x) { - return typeof ArrayBuffer !== 'undefined' && x instanceof ArrayBuffer; +/** End Buffer w/UInt8Array backing */ + +/** + * Creates a buffer that stores bytes. A value may be given to populate the + * buffer with data. This value can either be string of encoded bytes or a + * regular string of characters. When passing a string of binary encoded + * bytes, the encoding `raw` should be given. This is also the default. When + * passing a string of characters, the encoding `utf8` should be given. + * + * @param [input] a string with encoded bytes to store in the buffer. + * @param [encoding] (default: 'raw', other: 'utf8'). + */ +util.createBuffer = function(input, encoding) { + // TODO: deprecate, use new ByteBuffer() instead + encoding = encoding || 'raw'; + if(input !== undefined && encoding === 'utf8') { + input = util.encodeUtf8(input); + } + return new util.ByteBuffer(input); }; -// define isArrayBufferView -util.isArrayBufferView = function(x) { - return x && util.isArrayBuffer(x.buffer) && x.byteLength !== undefined; +/** + * Fills a string with a particular value. If you want the string to be a byte + * string, pass in String.fromCharCode(theByte). + * + * @param c the character to fill the string with, use String.fromCharCode + * to fill the string with a byte value. + * @param n the number of characters of value c to fill with. + * + * @return the filled string. + */ +util.fillString = function(c, n) { + var s = ''; + while(n > 0) { + if(n & 1) { + s += c; + } + n >>>= 1; + if(n > 0) { + c += c; + } + } + return s; }; /** - * Ensure a bits param is 8, 16, 24, or 32. Used to validate input for - * algorithms where bit manipulation, JavaScript limitations, and/or algorithm - * design only allow for byte operations of a limited size. + * Performs a per byte XOR between two byte strings and returns the result as a + * string of bytes. * - * @param n number of bits. + * @param s1 first string of bytes. + * @param s2 second string of bytes. + * @param n the number of bytes to XOR. * - * Throw Error if n invalid. + * @return the XOR'd result. */ -function _checkBitsParam(n) { - if(!(n === 8 || n === 16 || n === 24 || n === 32)) { - throw new Error('Only 8, 16, 24, or 32 bits supported: ' + n); +util.xorBytes = function(s1, s2, n) { + var s3 = ''; + var b = ''; + var t = ''; + var i = 0; + var c = 0; + for(; n > 0; --n, ++i) { + b = s1.charCodeAt(i) ^ s2.charCodeAt(i); + if(c >= 10) { + s3 += t; + t = ''; + c = 0; + } + t += String.fromCharCode(b); + ++c; } -} - -// TODO: set ByteBuffer to best available backing -util.ByteBuffer = ByteStringBuffer; - -/** Buffer w/BinaryString backing */ + s3 += t; + return s3; +}; /** - * Constructor for a binary string backed byte buffer. + * Converts a hex string into a 'binary' encoded string of bytes. * - * @param [b] the bytes to wrap (either encoded as string, one byte per - * character, or as an ArrayBuffer or Typed Array). + * @param hex the hexadecimal string to convert. + * + * @return the binary-encoded string of bytes. */ -function ByteStringBuffer(b) { - // TODO: update to match DataBuffer API - - // the data in this buffer - this.data = ''; - // the pointer for reading from this buffer - this.read = 0; - - if(typeof b === 'string') { - this.data = b; - } else if(util.isArrayBuffer(b) || util.isArrayBufferView(b)) { - if(typeof Buffer !== 'undefined' && b instanceof Buffer) { - this.data = b.toString('binary'); - } else { - // convert native buffer to forge buffer - // FIXME: support native buffers internally instead - var arr = new Uint8Array(b); - try { - this.data = String.fromCharCode.apply(null, arr); - } catch(e) { - for(var i = 0; i < arr.length; ++i) { - this.putByte(arr[i]); - } - } - } - } else if(b instanceof ByteStringBuffer || - (typeof b === 'object' && typeof b.data === 'string' && - typeof b.read === 'number')) { - // copy existing buffer - this.data = b.data; - this.read = b.read; +util.hexToBytes = function(hex) { + // TODO: deprecate: "Deprecated. Use util.binary.hex.decode instead." + var rval = ''; + var i = 0; + if(hex.length & 1 == 1) { + // odd number of characters, convert first character alone + i = 1; + rval += String.fromCharCode(parseInt(hex[0], 16)); } - - // used for v8 optimization - this._constructedStringLength = 0; -} -util.ByteStringBuffer = ByteStringBuffer; - -/* Note: This is an optimization for V8-based browsers. When V8 concatenates - a string, the strings are only joined logically using a "cons string" or - "constructed/concatenated string". These containers keep references to one - another and can result in very large memory usage. For example, if a 2MB - string is constructed by concatenating 4 bytes together at a time, the - memory usage will be ~44MB; so ~22x increase. The strings are only joined - together when an operation requiring their joining takes place, such as - substr(). This function is called when adding data to this buffer to ensure - these types of strings are periodically joined to reduce the memory - footprint. */ -var _MAX_CONSTRUCTED_STRING_LENGTH = 4096; -util.ByteStringBuffer.prototype._optimizeConstructedString = function(x) { - this._constructedStringLength += x; - if(this._constructedStringLength > _MAX_CONSTRUCTED_STRING_LENGTH) { - // this substr() should cause the constructed string to join - this.data.substr(0, 1); - this._constructedStringLength = 0; + // convert 2 characters (1 byte) at a time + for(; i < hex.length; i += 2) { + rval += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); } + return rval; }; /** - * Gets the number of bytes in this buffer. + * Converts a 'binary' encoded string of bytes to hex. * - * @return the number of bytes in this buffer. + * @param bytes the byte string to convert. + * + * @return the string of hexadecimal characters. */ -util.ByteStringBuffer.prototype.length = function() { - return this.data.length - this.read; +util.bytesToHex = function(bytes) { + // TODO: deprecate: "Deprecated. Use util.binary.hex.encode instead." + return util.createBuffer(bytes).toHex(); }; /** - * Gets whether or not this buffer is empty. + * Converts an 32-bit integer to 4-big-endian byte string. * - * @return true if this buffer is empty, false if not. + * @param i the integer. + * + * @return the byte string. */ -util.ByteStringBuffer.prototype.isEmpty = function() { - return this.length() <= 0; +util.int32ToBytes = function(i) { + return ( + String.fromCharCode(i >> 24 & 0xFF) + + String.fromCharCode(i >> 16 & 0xFF) + + String.fromCharCode(i >> 8 & 0xFF) + + String.fromCharCode(i & 0xFF)); }; +// base64 characters, reverse mapping +var _base64 = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; +var _base64Idx = [ +/*43 -43 = 0*/ +/*'+', 1, 2, 3,'/' */ + 62, -1, -1, -1, 63, + +/*'0','1','2','3','4','5','6','7','8','9' */ + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + +/*15, 16, 17,'=', 19, 20, 21 */ + -1, -1, -1, 64, -1, -1, -1, + +/*65 - 43 = 22*/ +/*'A','B','C','D','E','F','G','H','I','J','K','L','M', */ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + +/*'N','O','P','Q','R','S','T','U','V','W','X','Y','Z' */ + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + +/*91 - 43 = 48 */ +/*48, 49, 50, 51, 52, 53 */ + -1, -1, -1, -1, -1, -1, + +/*97 - 43 = 54*/ +/*'a','b','c','d','e','f','g','h','i','j','k','l','m' */ + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + +/*'n','o','p','q','r','s','t','u','v','w','x','y','z' */ + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 +]; + +// base58 characters (Bitcoin alphabet) +var _base58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; + /** - * Puts a byte in this buffer. + * Base64 encodes a 'binary' encoded string of bytes. * - * @param b the byte to put. + * @param input the binary encoded string of bytes to base64-encode. + * @param maxline the maximum number of encoded characters per line to use, + * defaults to none. * - * @return this buffer. + * @return the base64-encoded output. */ -util.ByteStringBuffer.prototype.putByte = function(b) { - return this.putBytes(String.fromCharCode(b)); +util.encode64 = function(input, maxline) { + // TODO: deprecate: "Deprecated. Use util.binary.base64.encode instead." + var line = ''; + var output = ''; + var chr1, chr2, chr3; + var i = 0; + while(i < input.length) { + chr1 = input.charCodeAt(i++); + chr2 = input.charCodeAt(i++); + chr3 = input.charCodeAt(i++); + + // encode 4 character group + line += _base64.charAt(chr1 >> 2); + line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4)); + if(isNaN(chr2)) { + line += '=='; + } else { + line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6)); + line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63); + } + + if(maxline && line.length > maxline) { + output += line.substr(0, maxline) + '\r\n'; + line = line.substr(maxline); + } + } + output += line; + return output; }; /** - * Puts a byte in this buffer N times. + * Base64 decodes a string into a 'binary' encoded string of bytes. * - * @param b the byte to put. - * @param n the number of bytes of value b to put. + * @param input the base64-encoded input. * - * @return this buffer. + * @return the binary encoded string. */ -util.ByteStringBuffer.prototype.fillWithByte = function(b, n) { - b = String.fromCharCode(b); - var d = this.data; - while(n > 0) { - if(n & 1) { - d += b; - } - n >>>= 1; - if(n > 0) { - b += b; +util.decode64 = function(input) { + // TODO: deprecate: "Deprecated. Use util.binary.base64.decode instead." + + // remove all non-base64 characters + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); + + var output = ''; + var enc1, enc2, enc3, enc4; + var i = 0; + + while(i < input.length) { + enc1 = _base64Idx[input.charCodeAt(i++) - 43]; + enc2 = _base64Idx[input.charCodeAt(i++) - 43]; + enc3 = _base64Idx[input.charCodeAt(i++) - 43]; + enc4 = _base64Idx[input.charCodeAt(i++) - 43]; + + output += String.fromCharCode((enc1 << 2) | (enc2 >> 4)); + if(enc3 !== 64) { + // decoded at least 2 bytes + output += String.fromCharCode(((enc2 & 15) << 4) | (enc3 >> 2)); + if(enc4 !== 64) { + // decoded 3 bytes + output += String.fromCharCode(((enc3 & 3) << 6) | enc4); + } } } - this.data = d; - this._optimizeConstructedString(n); - return this; + + return output; }; /** - * Puts bytes in this buffer. + * Encodes the given string of characters (a standard JavaScript + * string) as a binary encoded string where the bytes represent + * a UTF-8 encoded string of characters. Non-ASCII characters will be + * encoded as multiple bytes according to UTF-8. * - * @param bytes the bytes (as a binary encoded string) to put. + * @param str a standard string of characters to encode. * - * @return this buffer. + * @return the binary encoded string. */ -util.ByteStringBuffer.prototype.putBytes = function(bytes) { - this.data += bytes; - this._optimizeConstructedString(bytes.length); - return this; +util.encodeUtf8 = function(str) { + return unescape(encodeURIComponent(str)); }; /** - * Puts a UTF-16 encoded string into this buffer. + * Decodes a binary encoded string that contains bytes that + * represent a UTF-8 encoded string of characters -- into a + * string of characters (a standard JavaScript string). * - * @param str the string to put. + * @param str the binary encoded string to decode. * - * @return this buffer. + * @return the resulting standard string of characters. */ -util.ByteStringBuffer.prototype.putString = function(str) { - return this.putBytes(util.encodeUtf8(str)); +util.decodeUtf8 = function(str) { + return decodeURIComponent(escape(str)); +}; + +// binary encoding/decoding tools +// FIXME: Experimental. Do not use yet. +util.binary = { + raw: {}, + hex: {}, + base64: {}, + base58: {}, + baseN : { + encode: baseN.encode, + decode: baseN.decode + } }; /** - * Puts a 16-bit integer in this buffer in big-endian order. + * Encodes a Uint8Array as a binary-encoded string. This encoding uses + * a value between 0 and 255 for each character. * - * @param i the 16-bit integer. + * @param bytes the Uint8Array to encode. * - * @return this buffer. + * @return the binary-encoded string. */ -util.ByteStringBuffer.prototype.putInt16 = function(i) { - return this.putBytes( - String.fromCharCode(i >> 8 & 0xFF) + - String.fromCharCode(i & 0xFF)); +util.binary.raw.encode = function(bytes) { + return String.fromCharCode.apply(null, bytes); }; /** - * Puts a 24-bit integer in this buffer in big-endian order. + * Decodes a binary-encoded string to a Uint8Array. This encoding uses + * a value between 0 and 255 for each character. * - * @param i the 24-bit integer. + * @param str the binary-encoded string to decode. + * @param [output] an optional Uint8Array to write the output to; if it + * is too small, an exception will be thrown. + * @param [offset] the start offset for writing to the output (default: 0). * - * @return this buffer. + * @return the Uint8Array or the number of bytes written if output was given. */ -util.ByteStringBuffer.prototype.putInt24 = function(i) { - return this.putBytes( - String.fromCharCode(i >> 16 & 0xFF) + - String.fromCharCode(i >> 8 & 0xFF) + - String.fromCharCode(i & 0xFF)); +util.binary.raw.decode = function(str, output, offset) { + var out = output; + if(!out) { + out = new Uint8Array(str.length); + } + offset = offset || 0; + var j = offset; + for(var i = 0; i < str.length; ++i) { + out[j++] = str.charCodeAt(i); + } + return output ? (j - offset) : out; }; /** - * Puts a 32-bit integer in this buffer in big-endian order. + * Encodes a 'binary' string, ArrayBuffer, DataView, TypedArray, or + * ByteBuffer as a string of hexadecimal characters. * - * @param i the 32-bit integer. + * @param bytes the bytes to convert. * - * @return this buffer. + * @return the string of hexadecimal characters. */ -util.ByteStringBuffer.prototype.putInt32 = function(i) { - return this.putBytes( - String.fromCharCode(i >> 24 & 0xFF) + - String.fromCharCode(i >> 16 & 0xFF) + - String.fromCharCode(i >> 8 & 0xFF) + - String.fromCharCode(i & 0xFF)); +util.binary.hex.encode = util.bytesToHex; + +/** + * Decodes a hex-encoded string to a Uint8Array. + * + * @param hex the hexadecimal string to convert. + * @param [output] an optional Uint8Array to write the output to; if it + * is too small, an exception will be thrown. + * @param [offset] the start offset for writing to the output (default: 0). + * + * @return the Uint8Array or the number of bytes written if output was given. + */ +util.binary.hex.decode = function(hex, output, offset) { + var out = output; + if(!out) { + out = new Uint8Array(Math.ceil(hex.length / 2)); + } + offset = offset || 0; + var i = 0, j = offset; + if(hex.length & 1) { + // odd number of characters, convert first character alone + i = 1; + out[j++] = parseInt(hex[0], 16); + } + // convert 2 characters (1 byte) at a time + for(; i < hex.length; i += 2) { + out[j++] = parseInt(hex.substr(i, 2), 16); + } + return output ? (j - offset) : out; }; /** - * Puts a 16-bit integer in this buffer in little-endian order. + * Base64-encodes a Uint8Array. * - * @param i the 16-bit integer. + * @param input the Uint8Array to encode. + * @param maxline the maximum number of encoded characters per line to use, + * defaults to none. * - * @return this buffer. + * @return the base64-encoded output string. */ -util.ByteStringBuffer.prototype.putInt16Le = function(i) { - return this.putBytes( - String.fromCharCode(i & 0xFF) + - String.fromCharCode(i >> 8 & 0xFF)); +util.binary.base64.encode = function(input, maxline) { + var line = ''; + var output = ''; + var chr1, chr2, chr3; + var i = 0; + while(i < input.byteLength) { + chr1 = input[i++]; + chr2 = input[i++]; + chr3 = input[i++]; + + // encode 4 character group + line += _base64.charAt(chr1 >> 2); + line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4)); + if(isNaN(chr2)) { + line += '=='; + } else { + line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6)); + line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63); + } + + if(maxline && line.length > maxline) { + output += line.substr(0, maxline) + '\r\n'; + line = line.substr(maxline); + } + } + output += line; + return output; }; /** - * Puts a 24-bit integer in this buffer in little-endian order. + * Decodes a base64-encoded string to a Uint8Array. * - * @param i the 24-bit integer. + * @param input the base64-encoded input string. + * @param [output] an optional Uint8Array to write the output to; if it + * is too small, an exception will be thrown. + * @param [offset] the start offset for writing to the output (default: 0). * - * @return this buffer. + * @return the Uint8Array or the number of bytes written if output was given. */ -util.ByteStringBuffer.prototype.putInt24Le = function(i) { - return this.putBytes( - String.fromCharCode(i & 0xFF) + - String.fromCharCode(i >> 8 & 0xFF) + - String.fromCharCode(i >> 16 & 0xFF)); +util.binary.base64.decode = function(input, output, offset) { + var out = output; + if(!out) { + out = new Uint8Array(Math.ceil(input.length / 4) * 3); + } + + // remove all non-base64 characters + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); + + offset = offset || 0; + var enc1, enc2, enc3, enc4; + var i = 0, j = offset; + + while(i < input.length) { + enc1 = _base64Idx[input.charCodeAt(i++) - 43]; + enc2 = _base64Idx[input.charCodeAt(i++) - 43]; + enc3 = _base64Idx[input.charCodeAt(i++) - 43]; + enc4 = _base64Idx[input.charCodeAt(i++) - 43]; + + out[j++] = (enc1 << 2) | (enc2 >> 4); + if(enc3 !== 64) { + // decoded at least 2 bytes + out[j++] = ((enc2 & 15) << 4) | (enc3 >> 2); + if(enc4 !== 64) { + // decoded 3 bytes + out[j++] = ((enc3 & 3) << 6) | enc4; + } + } + } + + // make sure result is the exact decoded length + return output ? (j - offset) : out.subarray(0, j); +}; + +// add support for base58 encoding/decoding with Bitcoin alphabet +util.binary.base58.encode = function(input, maxline) { + return util.binary.baseN.encode(input, _base58, maxline); +}; +util.binary.base58.decode = function(input, maxline) { + return util.binary.baseN.decode(input, _base58, maxline); +}; + +// text encoding/decoding tools +// FIXME: Experimental. Do not use yet. +util.text = { + utf8: {}, + utf16: {} }; /** - * Puts a 32-bit integer in this buffer in little-endian order. + * Encodes the given string as UTF-8 in a Uint8Array. * - * @param i the 32-bit integer. + * @param str the string to encode. + * @param [output] an optional Uint8Array to write the output to; if it + * is too small, an exception will be thrown. + * @param [offset] the start offset for writing to the output (default: 0). * - * @return this buffer. + * @return the Uint8Array or the number of bytes written if output was given. */ -util.ByteStringBuffer.prototype.putInt32Le = function(i) { - return this.putBytes( - String.fromCharCode(i & 0xFF) + - String.fromCharCode(i >> 8 & 0xFF) + - String.fromCharCode(i >> 16 & 0xFF) + - String.fromCharCode(i >> 24 & 0xFF)); +util.text.utf8.encode = function(str, output, offset) { + str = util.encodeUtf8(str); + var out = output; + if(!out) { + out = new Uint8Array(str.length); + } + offset = offset || 0; + var j = offset; + for(var i = 0; i < str.length; ++i) { + out[j++] = str.charCodeAt(i); + } + return output ? (j - offset) : out; }; /** - * Puts an n-bit integer in this buffer in big-endian order. + * Decodes the UTF-8 contents from a Uint8Array. * - * @param i the n-bit integer. - * @param n the number of bits in the integer (8, 16, 24, or 32). + * @param bytes the Uint8Array to decode. * - * @return this buffer. + * @return the resulting string. */ -util.ByteStringBuffer.prototype.putInt = function(i, n) { - _checkBitsParam(n); - var bytes = ''; - do { - n -= 8; - bytes += String.fromCharCode((i >> n) & 0xFF); - } while(n > 0); - return this.putBytes(bytes); +util.text.utf8.decode = function(bytes) { + return util.decodeUtf8(String.fromCharCode.apply(null, bytes)); }; /** - * Puts a signed n-bit integer in this buffer in big-endian order. Two's - * complement representation is used. + * Encodes the given string as UTF-16 in a Uint8Array. * - * @param i the n-bit integer. - * @param n the number of bits in the integer (8, 16, 24, or 32). + * @param str the string to encode. + * @param [output] an optional Uint8Array to write the output to; if it + * is too small, an exception will be thrown. + * @param [offset] the start offset for writing to the output (default: 0). * - * @return this buffer. + * @return the Uint8Array or the number of bytes written if output was given. */ -util.ByteStringBuffer.prototype.putSignedInt = function(i, n) { - // putInt checks n - if(i < 0) { - i += 2 << (n - 1); +util.text.utf16.encode = function(str, output, offset) { + var out = output; + if(!out) { + out = new Uint8Array(str.length * 2); } - return this.putInt(i, n); + var view = new Uint16Array(out.buffer); + offset = offset || 0; + var j = offset; + var k = offset; + for(var i = 0; i < str.length; ++i) { + view[k++] = str.charCodeAt(i); + j += 2; + } + return output ? (j - offset) : out; }; /** - * Puts the given buffer into this buffer. + * Decodes the UTF-16 contents from a Uint8Array. * - * @param buffer the buffer to put into this one. + * @param bytes the Uint8Array to decode. * - * @return this buffer. + * @return the resulting string. */ -util.ByteStringBuffer.prototype.putBuffer = function(buffer) { - return this.putBytes(buffer.getBytes()); +util.text.utf16.decode = function(bytes) { + return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer)); }; /** - * Gets a byte from this buffer and advances the read pointer by 1. + * Deflates the given data using a flash interface. * - * @return the byte. + * @param api the flash interface. + * @param bytes the data. + * @param raw true to return only raw deflate data, false to include zlib + * header and trailer. + * + * @return the deflated data as a string. */ -util.ByteStringBuffer.prototype.getByte = function() { - return this.data.charCodeAt(this.read++); +util.deflate = function(api, bytes, raw) { + bytes = util.decode64(api.deflate(util.encode64(bytes)).rval); + + // strip zlib header and trailer if necessary + if(raw) { + // zlib header is 2 bytes (CMF,FLG) where FLG indicates that + // there is a 4-byte DICT (alder-32) block before the data if + // its 5th bit is set + var start = 2; + var flg = bytes.charCodeAt(1); + if(flg & 0x20) { + start = 6; + } + // zlib trailer is 4 bytes of adler-32 + bytes = bytes.substring(start, bytes.length - 4); + } + + return bytes; }; /** - * Gets a uint16 from this buffer in big-endian order and advances the read - * pointer by 2. + * Inflates the given data using a flash interface. * - * @return the uint16. + * @param api the flash interface. + * @param bytes the data. + * @param raw true if the incoming data has no zlib header or trailer and is + * raw DEFLATE data. + * + * @return the inflated data as a string, null on error. */ -util.ByteStringBuffer.prototype.getInt16 = function() { - var rval = ( - this.data.charCodeAt(this.read) << 8 ^ - this.data.charCodeAt(this.read + 1)); - this.read += 2; - return rval; +util.inflate = function(api, bytes, raw) { + // TODO: add zlib header and trailer if necessary/possible + var rval = api.inflate(util.encode64(bytes)).rval; + return (rval === null) ? null : util.decode64(rval); }; /** - * Gets a uint24 from this buffer in big-endian order and advances the read - * pointer by 3. + * Sets a storage object. * - * @return the uint24. + * @param api the storage interface. + * @param id the storage ID to use. + * @param obj the storage object, null to remove. */ -util.ByteStringBuffer.prototype.getInt24 = function() { - var rval = ( - this.data.charCodeAt(this.read) << 16 ^ - this.data.charCodeAt(this.read + 1) << 8 ^ - this.data.charCodeAt(this.read + 2)); - this.read += 3; - return rval; +var _setStorageObject = function(api, id, obj) { + if(!api) { + throw new Error('WebStorage not available.'); + } + + var rval; + if(obj === null) { + rval = api.removeItem(id); + } else { + // json-encode and base64-encode object + obj = util.encode64(JSON.stringify(obj)); + rval = api.setItem(id, obj); + } + + // handle potential flash error + if(typeof(rval) !== 'undefined' && rval.rval !== true) { + var error = new Error(rval.error.message); + error.id = rval.error.id; + error.name = rval.error.name; + throw error; + } }; /** - * Gets a uint32 from this buffer in big-endian order and advances the read - * pointer by 4. + * Gets a storage object. * - * @return the word. + * @param api the storage interface. + * @param id the storage ID to use. + * + * @return the storage object entry or null if none exists. */ -util.ByteStringBuffer.prototype.getInt32 = function() { - var rval = ( - this.data.charCodeAt(this.read) << 24 ^ - this.data.charCodeAt(this.read + 1) << 16 ^ - this.data.charCodeAt(this.read + 2) << 8 ^ - this.data.charCodeAt(this.read + 3)); - this.read += 4; +var _getStorageObject = function(api, id) { + if(!api) { + throw new Error('WebStorage not available.'); + } + + // get the existing entry + var rval = api.getItem(id); + + /* Note: We check api.init because we can't do (api == localStorage) + on IE because of "Class doesn't support Automation" exception. Only + the flash api has an init method so this works too, but we need a + better solution in the future. */ + + // flash returns item wrapped in an object, handle special case + if(api.init) { + if(rval.rval === null) { + if(rval.error) { + var error = new Error(rval.error.message); + error.id = rval.error.id; + error.name = rval.error.name; + throw error; + } + // no error, but also no item + rval = null; + } else { + rval = rval.rval; + } + } + + // handle decoding + if(rval !== null) { + // base64-decode and json-decode data + rval = JSON.parse(util.decode64(rval)); + } + return rval; }; /** - * Gets a uint16 from this buffer in little-endian order and advances the read - * pointer by 2. + * Stores an item in local storage. * - * @return the uint16. + * @param api the storage interface. + * @param id the storage ID to use. + * @param key the key for the item. + * @param data the data for the item (any javascript object/primitive). */ -util.ByteStringBuffer.prototype.getInt16Le = function() { - var rval = ( - this.data.charCodeAt(this.read) ^ - this.data.charCodeAt(this.read + 1) << 8); - this.read += 2; - return rval; +var _setItem = function(api, id, key, data) { + // get storage object + var obj = _getStorageObject(api, id); + if(obj === null) { + // create a new storage object + obj = {}; + } + // update key + obj[key] = data; + + // set storage object + _setStorageObject(api, id, obj); }; /** - * Gets a uint24 from this buffer in little-endian order and advances the read - * pointer by 3. + * Gets an item from local storage. * - * @return the uint24. + * @param api the storage interface. + * @param id the storage ID to use. + * @param key the key for the item. + * + * @return the item. */ -util.ByteStringBuffer.prototype.getInt24Le = function() { - var rval = ( - this.data.charCodeAt(this.read) ^ - this.data.charCodeAt(this.read + 1) << 8 ^ - this.data.charCodeAt(this.read + 2) << 16); - this.read += 3; +var _getItem = function(api, id, key) { + // get storage object + var rval = _getStorageObject(api, id); + if(rval !== null) { + // return data at key + rval = (key in rval) ? rval[key] : null; + } + return rval; }; /** - * Gets a uint32 from this buffer in little-endian order and advances the read - * pointer by 4. + * Removes an item from local storage. * - * @return the word. + * @param api the storage interface. + * @param id the storage ID to use. + * @param key the key for the item. */ -util.ByteStringBuffer.prototype.getInt32Le = function() { - var rval = ( - this.data.charCodeAt(this.read) ^ - this.data.charCodeAt(this.read + 1) << 8 ^ - this.data.charCodeAt(this.read + 2) << 16 ^ - this.data.charCodeAt(this.read + 3) << 24); - this.read += 4; - return rval; +var _removeItem = function(api, id, key) { + // get storage object + var obj = _getStorageObject(api, id); + if(obj !== null && key in obj) { + // remove key + delete obj[key]; + + // see if entry has no keys remaining + var empty = true; + for(var prop in obj) { + empty = false; + break; + } + if(empty) { + // remove entry entirely if no keys are left + obj = null; + } + + // set storage object + _setStorageObject(api, id, obj); + } }; /** - * Gets an n-bit integer from this buffer in big-endian order and advances the - * read pointer by ceil(n/8). - * - * @param n the number of bits in the integer (8, 16, 24, or 32). + * Clears the local disk storage identified by the given ID. * - * @return the integer. + * @param api the storage interface. + * @param id the storage ID to use. */ -util.ByteStringBuffer.prototype.getInt = function(n) { - _checkBitsParam(n); - var rval = 0; - do { - // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits. - rval = (rval << 8) + this.data.charCodeAt(this.read++); - n -= 8; - } while(n > 0); - return rval; +var _clearItems = function(api, id) { + _setStorageObject(api, id, null); }; /** - * Gets a signed n-bit integer from this buffer in big-endian order, using - * two's complement, and advances the read pointer by n/8. + * Calls a storage function. * - * @param n the number of bits in the integer (8, 16, 24, or 32). + * @param func the function to call. + * @param args the arguments for the function. + * @param location the location argument. * - * @return the integer. + * @return the return value from the function. */ -util.ByteStringBuffer.prototype.getSignedInt = function(n) { - // getInt checks n - var x = this.getInt(n); - var max = 2 << (n - 2); - if(x >= max) { - x -= max << 1; +var _callStorageFunction = function(func, args, location) { + var rval = null; + + // default storage types + if(typeof(location) === 'undefined') { + location = ['web', 'flash']; } - return x; + + // apply storage types in order of preference + var type; + var done = false; + var exception = null; + for(var idx in location) { + type = location[idx]; + try { + if(type === 'flash' || type === 'both') { + if(args[0] === null) { + throw new Error('Flash local storage not available.'); + } + rval = func.apply(this, args); + done = (type === 'flash'); + } + if(type === 'web' || type === 'both') { + args[0] = localStorage; + rval = func.apply(this, args); + done = true; + } + } catch(ex) { + exception = ex; + } + if(done) { + break; + } + } + + if(!done) { + throw exception; + } + + return rval; }; /** - * Reads bytes out as a binary encoded string and clears them from the - * buffer. Note that the resulting string is binary encoded (in node.js this - * encoding is referred to as `binary`, it is *not* `utf8`). + * Stores an item on local disk. * - * @param count the number of bytes to read, undefined or null for all. + * The available types of local storage include 'flash', 'web', and 'both'. * - * @return a binary encoded string of bytes. + * The type 'flash' refers to flash local storage (SharedObject). In order + * to use flash local storage, the 'api' parameter must be valid. The type + * 'web' refers to WebStorage, if supported by the browser. The type 'both' + * refers to storing using both 'flash' and 'web', not just one or the + * other. + * + * The location array should list the storage types to use in order of + * preference: + * + * ['flash']: flash only storage + * ['web']: web only storage + * ['both']: try to store in both + * ['flash','web']: store in flash first, but if not available, 'web' + * ['web','flash']: store in web first, but if not available, 'flash' + * + * The location array defaults to: ['web', 'flash'] + * + * @param api the flash interface, null to use only WebStorage. + * @param id the storage ID to use. + * @param key the key for the item. + * @param data the data for the item (any javascript object/primitive). + * @param location an array with the preferred types of storage to use. */ -util.ByteStringBuffer.prototype.getBytes = function(count) { - var rval; - if(count) { - // read count bytes - count = Math.min(this.length(), count); - rval = this.data.slice(this.read, this.read + count); - this.read += count; - } else if(count === 0) { - rval = ''; - } else { - // read all bytes, optimize to only copy when needed - rval = (this.read === 0) ? this.data : this.data.slice(this.read); - this.clear(); - } - return rval; +util.setItem = function(api, id, key, data, location) { + _callStorageFunction(_setItem, arguments, location); }; /** - * Gets a binary encoded string of the bytes from this buffer without - * modifying the read pointer. + * Gets an item on local disk. * - * @param count the number of bytes to get, omit to get all. + * Set setItem() for details on storage types. * - * @return a string full of binary encoded characters. + * @param api the flash interface, null to use only WebStorage. + * @param id the storage ID to use. + * @param key the key for the item. + * @param location an array with the preferred types of storage to use. + * + * @return the item. */ -util.ByteStringBuffer.prototype.bytes = function(count) { - return (typeof(count) === 'undefined' ? - this.data.slice(this.read) : - this.data.slice(this.read, this.read + count)); +util.getItem = function(api, id, key, location) { + return _callStorageFunction(_getItem, arguments, location); }; /** - * Gets a byte at the given index without modifying the read pointer. + * Removes an item on local disk. * - * @param i the byte index. + * Set setItem() for details on storage types. * - * @return the byte. + * @param api the flash interface. + * @param id the storage ID to use. + * @param key the key for the item. + * @param location an array with the preferred types of storage to use. */ -util.ByteStringBuffer.prototype.at = function(i) { - return this.data.charCodeAt(this.read + i); +util.removeItem = function(api, id, key, location) { + _callStorageFunction(_removeItem, arguments, location); }; /** - * Puts a byte at the given index without modifying the read pointer. + * Clears the local disk storage identified by the given ID. * - * @param i the byte index. - * @param b the byte to put. + * Set setItem() for details on storage types. * - * @return this buffer. + * @param api the flash interface if flash is available. + * @param id the storage ID to use. + * @param location an array with the preferred types of storage to use. */ -util.ByteStringBuffer.prototype.setAt = function(i, b) { - this.data = this.data.substr(0, this.read + i) + - String.fromCharCode(b) + - this.data.substr(this.read + i + 1); - return this; +util.clearItems = function(api, id, location) { + _callStorageFunction(_clearItems, arguments, location); }; /** - * Gets the last byte without modifying the read pointer. + * Check if an object is empty. * - * @return the last byte. + * Taken from: + * http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object-from-json/679937#679937 + * + * @param object the object to check. */ -util.ByteStringBuffer.prototype.last = function() { - return this.data.charCodeAt(this.data.length - 1); +util.isEmpty = function(obj) { + for(var prop in obj) { + if(obj.hasOwnProperty(prop)) { + return false; + } + } + return true; }; /** - * Creates a copy of this buffer. + * Format with simple printf-style interpolation. * - * @return the copy. + * %%: literal '%' + * %s,%o: convert next argument into a string. + * + * @param format the string to format. + * @param ... arguments to interpolate into the format string. */ -util.ByteStringBuffer.prototype.copy = function() { - var c = util.createBuffer(this.data); - c.read = this.read; - return c; +util.format = function(format) { + var re = /%./g; + // current match + var match; + // current part + var part; + // current arg index + var argi = 0; + // collected parts to recombine later + var parts = []; + // last index found + var last = 0; + // loop while matches remain + while((match = re.exec(format))) { + part = format.substring(last, re.lastIndex - 2); + // don't add empty strings (ie, parts between %s%s) + if(part.length > 0) { + parts.push(part); + } + last = re.lastIndex; + // switch on % code + var code = match[0][1]; + switch(code) { + case 's': + case 'o': + // check if enough arguments were given + if(argi < arguments.length) { + parts.push(arguments[argi++ + 1]); + } else { + parts.push(''); + } + break; + // FIXME: do proper formating for numbers, etc + //case 'f': + //case 'd': + case '%': + parts.push('%'); + break; + default: + parts.push('<%' + code + '?>'); + } + } + // add trailing part of format string + parts.push(format.substring(last)); + return parts.join(''); }; /** - * Compacts this buffer. + * Formats a number. * - * @return this buffer. + * http://snipplr.com/view/5945/javascript-numberformat--ported-from-php/ */ -util.ByteStringBuffer.prototype.compact = function() { - if(this.read > 0) { - this.data = this.data.slice(this.read); - this.read = 0; - } - return this; +util.formatNumber = function(number, decimals, dec_point, thousands_sep) { + // http://kevin.vanzonneveld.net + // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) + // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + bugfix by: Michael White (http://crestidg.com) + // + bugfix by: Benjamin Lupton + // + bugfix by: Allan Jensen (http://www.winternet.no) + // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) + // * example 1: number_format(1234.5678, 2, '.', ''); + // * returns 1: 1234.57 + + var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals; + var d = dec_point === undefined ? ',' : dec_point; + var t = thousands_sep === undefined ? + '.' : thousands_sep, s = n < 0 ? '-' : ''; + var i = parseInt((n = Math.abs(+n || 0).toFixed(c)), 10) + ''; + var j = (i.length > 3) ? i.length % 3 : 0; + return s + (j ? i.substr(0, j) + t : '') + + i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + t) + + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ''); }; /** - * Clears this buffer. + * Formats a byte size. * - * @return this buffer. + * http://snipplr.com/view/5949/format-humanize-file-byte-size-presentation-in-javascript/ */ -util.ByteStringBuffer.prototype.clear = function() { - this.data = ''; - this.read = 0; - return this; +util.formatSize = function(size) { + if(size >= 1073741824) { + size = util.formatNumber(size / 1073741824, 2, '.', '') + ' GiB'; + } else if(size >= 1048576) { + size = util.formatNumber(size / 1048576, 2, '.', '') + ' MiB'; + } else if(size >= 1024) { + size = util.formatNumber(size / 1024, 0) + ' KiB'; + } else { + size = util.formatNumber(size, 0) + ' bytes'; + } + return size; }; /** - * Shortens this buffer by triming bytes off of the end of this buffer. + * Converts an IPv4 or IPv6 string representation into bytes (in network order). * - * @param count the number of bytes to trim off. + * @param ip the IPv4 or IPv6 address to convert. * - * @return this buffer. + * @return the 4-byte IPv6 or 16-byte IPv6 address or null if the address can't + * be parsed. */ -util.ByteStringBuffer.prototype.truncate = function(count) { - var len = Math.max(0, this.length() - count); - this.data = this.data.substr(this.read, len); - this.read = 0; - return this; +util.bytesFromIP = function(ip) { + if(ip.indexOf('.') !== -1) { + return util.bytesFromIPv4(ip); + } + if(ip.indexOf(':') !== -1) { + return util.bytesFromIPv6(ip); + } + return null; }; /** - * Converts this buffer to a hexadecimal string. + * Converts an IPv4 string representation into bytes (in network order). * - * @return a hexadecimal string. + * @param ip the IPv4 address to convert. + * + * @return the 4-byte address or null if the address can't be parsed. */ -util.ByteStringBuffer.prototype.toHex = function() { - var rval = ''; - for(var i = this.read; i < this.data.length; ++i) { - var b = this.data.charCodeAt(i); - if(b < 16) { - rval += '0'; +util.bytesFromIPv4 = function(ip) { + ip = ip.split('.'); + if(ip.length !== 4) { + return null; + } + var b = util.createBuffer(); + for(var i = 0; i < ip.length; ++i) { + var num = parseInt(ip[i], 10); + if(isNaN(num)) { + return null; } - rval += b.toString(16); + b.putByte(num); } - return rval; -}; - -/** - * Converts this buffer to a UTF-16 string (standard JavaScript string). - * - * @return a UTF-16 string. - */ -util.ByteStringBuffer.prototype.toString = function() { - return util.decodeUtf8(this.bytes()); + return b.getBytes(); }; -/** End Buffer w/BinaryString backing */ - -/** Buffer w/UInt8Array backing */ - /** - * FIXME: Experimental. Do not use yet. - * - * Constructor for an ArrayBuffer-backed byte buffer. - * - * The buffer may be constructed from a string, an ArrayBuffer, DataView, or a - * TypedArray. - * - * If a string is given, its encoding should be provided as an option, - * otherwise it will default to 'binary'. A 'binary' string is encoded such - * that each character is one byte in length and size. + * Converts an IPv6 string representation into bytes (in network order). * - * If an ArrayBuffer, DataView, or TypedArray is given, it will be used - * *directly* without any copying. Note that, if a write to the buffer requires - * more space, the buffer will allocate a new backing ArrayBuffer to - * accommodate. The starting read and write offsets for the buffer may be - * given as options. + * @param ip the IPv6 address to convert. * - * @param [b] the initial bytes for this buffer. - * @param options the options to use: - * [readOffset] the starting read offset to use (default: 0). - * [writeOffset] the starting write offset to use (default: the - * length of the first parameter). - * [growSize] the minimum amount, in bytes, to grow the buffer by to - * accommodate writes (default: 1024). - * [encoding] the encoding ('binary', 'utf8', 'utf16', 'hex') for the - * first parameter, if it is a string (default: 'binary'). + * @return the 16-byte address or null if the address can't be parsed. */ -function DataBuffer(b, options) { - // default options - options = options || {}; - - // pointers for read from/write to buffer - this.read = options.readOffset || 0; - this.growSize = options.growSize || 1024; - - var isArrayBuffer = util.isArrayBuffer(b); - var isArrayBufferView = util.isArrayBufferView(b); - if(isArrayBuffer || isArrayBufferView) { - // use ArrayBuffer directly - if(isArrayBuffer) { - this.data = new DataView(b); - } else { - // TODO: adjust read/write offset based on the type of view - // or specify that this must be done in the options ... that the - // offsets are byte-based - this.data = new DataView(b.buffer, b.byteOffset, b.byteLength); +util.bytesFromIPv6 = function(ip) { + var blanks = 0; + ip = ip.split(':').filter(function(e) { + if(e.length === 0) ++blanks; + return true; + }); + var zeros = (8 - ip.length + blanks) * 2; + var b = util.createBuffer(); + for(var i = 0; i < 8; ++i) { + if(!ip[i] || ip[i].length === 0) { + b.fillWithByte(0, zeros); + zeros = 0; + continue; } - this.write = ('writeOffset' in options ? - options.writeOffset : this.data.byteLength); - return; - } - - // initialize to empty array buffer and add any given bytes using putBytes - this.data = new DataView(new ArrayBuffer(0)); - this.write = 0; - - if(b !== null && b !== undefined) { - this.putBytes(b); - } - - if('writeOffset' in options) { - this.write = options.writeOffset; + var bytes = util.hexToBytes(ip[i]); + if(bytes.length < 2) { + b.putByte(0); + } + b.putBytes(bytes); } -} -util.DataBuffer = DataBuffer; - -/** - * Gets the number of bytes in this buffer. - * - * @return the number of bytes in this buffer. - */ -util.DataBuffer.prototype.length = function() { - return this.write - this.read; + return b.getBytes(); }; /** - * Gets whether or not this buffer is empty. + * Converts 4-bytes into an IPv4 string representation or 16-bytes into + * an IPv6 string representation. The bytes must be in network order. * - * @return true if this buffer is empty, false if not. - */ -util.DataBuffer.prototype.isEmpty = function() { - return this.length() <= 0; -}; - -/** - * Ensures this buffer has enough empty space to accommodate the given number - * of bytes. An optional parameter may be given that indicates a minimum - * amount to grow the buffer if necessary. If the parameter is not given, - * the buffer will be grown by some previously-specified default amount - * or heuristic. + * @param bytes the bytes to convert. * - * @param amount the number of bytes to accommodate. - * @param [growSize] the minimum amount, in bytes, to grow the buffer by if - * necessary. + * @return the IPv4 or IPv6 string representation if 4 or 16 bytes, + * respectively, are given, otherwise null. */ -util.DataBuffer.prototype.accommodate = function(amount, growSize) { - if(this.length() >= amount) { - return this; +util.bytesToIP = function(bytes) { + if(bytes.length === 4) { + return util.bytesToIPv4(bytes); } - growSize = Math.max(growSize || this.growSize, amount); - - // grow buffer - var src = new Uint8Array( - this.data.buffer, this.data.byteOffset, this.data.byteLength); - var dst = new Uint8Array(this.length() + growSize); - dst.set(src); - this.data = new DataView(dst.buffer); - - return this; + if(bytes.length === 16) { + return util.bytesToIPv6(bytes); + } + return null; }; /** - * Puts a byte in this buffer. + * Converts 4-bytes into an IPv4 string representation. The bytes must be + * in network order. * - * @param b the byte to put. + * @param bytes the bytes to convert. * - * @return this buffer. + * @return the IPv4 string representation or null for an invalid # of bytes. */ -util.DataBuffer.prototype.putByte = function(b) { - this.accommodate(1); - this.data.setUint8(this.write++, b); - return this; +util.bytesToIPv4 = function(bytes) { + if(bytes.length !== 4) { + return null; + } + var ip = []; + for(var i = 0; i < bytes.length; ++i) { + ip.push(bytes.charCodeAt(i)); + } + return ip.join('.'); }; /** - * Puts a byte in this buffer N times. + * Converts 16-bytes into an IPv16 string representation. The bytes must be + * in network order. * - * @param b the byte to put. - * @param n the number of bytes of value b to put. + * @param bytes the bytes to convert. * - * @return this buffer. + * @return the IPv16 string representation or null for an invalid # of bytes. */ -util.DataBuffer.prototype.fillWithByte = function(b, n) { - this.accommodate(n); - for(var i = 0; i < n; ++i) { - this.data.setUint8(b); +util.bytesToIPv6 = function(bytes) { + if(bytes.length !== 16) { + return null; } - return this; + var ip = []; + var zeroGroups = []; + var zeroMaxGroup = 0; + for(var i = 0; i < bytes.length; i += 2) { + var hex = util.bytesToHex(bytes[i] + bytes[i + 1]); + // canonicalize zero representation + while(hex[0] === '0' && hex !== '0') { + hex = hex.substr(1); + } + if(hex === '0') { + var last = zeroGroups[zeroGroups.length - 1]; + var idx = ip.length; + if(!last || idx !== last.end + 1) { + zeroGroups.push({start: idx, end: idx}); + } else { + last.end = idx; + if((last.end - last.start) > + (zeroGroups[zeroMaxGroup].end - zeroGroups[zeroMaxGroup].start)) { + zeroMaxGroup = zeroGroups.length - 1; + } + } + } + ip.push(hex); + } + if(zeroGroups.length > 0) { + var group = zeroGroups[zeroMaxGroup]; + // only shorten group of length > 0 + if(group.end - group.start > 0) { + ip.splice(group.start, group.end - group.start + 1, ''); + if(group.start === 0) { + ip.unshift(''); + } + if(group.end === 7) { + ip.push(''); + } + } + } + return ip.join(':'); }; /** - * Puts bytes in this buffer. The bytes may be given as a string, an - * ArrayBuffer, a DataView, or a TypedArray. - * - * @param bytes the bytes to put. - * @param [encoding] the encoding for the first parameter ('binary', 'utf8', - * 'utf16', 'hex'), if it is a string (default: 'binary'). + * Estimates the number of processes that can be run concurrently. If + * creating Web Workers, keep in mind that the main JavaScript process needs + * its own core. * - * @return this buffer. + * @param options the options to use: + * update true to force an update (not use the cached value). + * @param callback(err, max) called once the operation completes. */ -util.DataBuffer.prototype.putBytes = function(bytes, encoding) { - if(util.isArrayBufferView(bytes)) { - var src = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength); - var len = src.byteLength - src.byteOffset; - this.accommodate(len); - var dst = new Uint8Array(this.data.buffer, this.write); - dst.set(src); - this.write += len; - return this; +util.estimateCores = function(options, callback) { + if(typeof options === 'function') { + callback = options; + options = {}; } - - if(util.isArrayBuffer(bytes)) { - var src = new Uint8Array(bytes); - this.accommodate(src.byteLength); - var dst = new Uint8Array(this.data.buffer); - dst.set(src, this.write); - this.write += src.byteLength; - return this; + options = options || {}; + if('cores' in util && !options.update) { + return callback(null, util.cores); } - - // bytes is a util.DataBuffer or equivalent - if(bytes instanceof util.DataBuffer || - (typeof bytes === 'object' && - typeof bytes.read === 'number' && typeof bytes.write === 'number' && - util.isArrayBufferView(bytes.data))) { - var src = new Uint8Array(bytes.data.byteLength, bytes.read, bytes.length()); - this.accommodate(src.byteLength); - var dst = new Uint8Array(bytes.data.byteLength, this.write); - dst.set(src); - this.write += src.byteLength; - return this; + if(typeof navigator !== 'undefined' && + 'hardwareConcurrency' in navigator && + navigator.hardwareConcurrency > 0) { + util.cores = navigator.hardwareConcurrency; + return callback(null, util.cores); } - - if(bytes instanceof util.ByteStringBuffer) { - // copy binary string and process as the same as a string parameter below - bytes = bytes.data; - encoding = 'binary'; + if(typeof Worker === 'undefined') { + // workers not available + util.cores = 1; + return callback(null, util.cores); + } + if(typeof Blob === 'undefined') { + // can't estimate, default to 2 + util.cores = 2; + return callback(null, util.cores); } - // string conversion - encoding = encoding || 'binary'; - if(typeof bytes === 'string') { - var view; + // create worker concurrency estimation code as blob + var blobUrl = URL.createObjectURL(new Blob(['(', + function() { + self.addEventListener('message', function(e) { + // run worker for 4 ms + var st = Date.now(); + var et = st + 4; + while(Date.now() < et); + self.postMessage({st: st, et: et}); + }); + }.toString(), + ')()'], {type: 'application/javascript'})); - // decode from string - if(encoding === 'hex') { - this.accommodate(Math.ceil(bytes.length / 2)); - view = new Uint8Array(this.data.buffer, this.write); - this.write += util.binary.hex.decode(bytes, view, this.write); - return this; - } - if(encoding === 'base64') { - this.accommodate(Math.ceil(bytes.length / 4) * 3); - view = new Uint8Array(this.data.buffer, this.write); - this.write += util.binary.base64.decode(bytes, view, this.write); - return this; - } + // take 5 samples using 16 workers + sample([], 5, 16); - // encode text as UTF-8 bytes - if(encoding === 'utf8') { - // encode as UTF-8 then decode string as raw binary - bytes = util.encodeUtf8(bytes); - encoding = 'binary'; + function sample(max, samples, numWorkers) { + if(samples === 0) { + // get overlap average + var avg = Math.floor(max.reduce(function(avg, x) { + return avg + x; + }, 0) / max.length); + util.cores = Math.max(1, avg); + URL.revokeObjectURL(blobUrl); + return callback(null, util.cores); } + map(numWorkers, function(err, results) { + max.push(reduce(numWorkers, results)); + sample(max, samples - 1, numWorkers); + }); + } - // decode string as raw binary - if(encoding === 'binary' || encoding === 'raw') { - // one byte per character - this.accommodate(bytes.length); - view = new Uint8Array(this.data.buffer, this.write); - this.write += util.binary.raw.decode(view); - return this; + function map(numWorkers, callback) { + var workers = []; + var results = []; + for(var i = 0; i < numWorkers; ++i) { + var worker = new Worker(blobUrl); + worker.addEventListener('message', function(e) { + results.push(e.data); + if(results.length === numWorkers) { + for(var i = 0; i < numWorkers; ++i) { + workers[i].terminate(); + } + callback(null, results); + } + }); + workers.push(worker); } - - // encode text as UTF-16 bytes - if(encoding === 'utf16') { - // two bytes per character - this.accommodate(bytes.length * 2); - view = new Uint16Array(this.data.buffer, this.write); - this.write += util.text.utf16.encode(view); - return this; + for(var i = 0; i < numWorkers; ++i) { + workers[i].postMessage(i); } - - throw new Error('Invalid encoding: ' + encoding); } - throw Error('Invalid parameter: ' + bytes); + function reduce(numWorkers, results) { + // find overlapping time windows + var overlaps = []; + for(var n = 0; n < numWorkers; ++n) { + var r1 = results[n]; + var overlap = overlaps[n] = []; + for(var i = 0; i < numWorkers; ++i) { + if(n === i) { + continue; + } + var r2 = results[i]; + if((r1.st > r2.st && r1.st < r2.et) || + (r2.st > r1.st && r2.st < r1.et)) { + overlap.push(i); + } + } + } + // get maximum overlaps ... don't include overlapping worker itself + // as the main JS process was also being scheduled during the work and + // would have to be subtracted from the estimate anyway + return overlaps.reduce(function(max, overlap) { + return Math.max(max, overlap.length); + }, 0); + } }; -/** - * Puts the given buffer into this buffer. - * - * @param buffer the buffer to put into this one. - * - * @return this buffer. - */ -util.DataBuffer.prototype.putBuffer = function(buffer) { - this.putBytes(buffer); - buffer.clear(); - return this; -}; + +/***/ }), + +/***/ 8180: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { /** - * Puts a string into this buffer. + * Javascript implementation of X.509 and related components (such as + * Certification Signing Requests) of a Public Key Infrastructure. * - * @param str the string to put. - * @param [encoding] the encoding for the string (default: 'utf16'). + * @author Dave Longley * - * @return this buffer. - */ -util.DataBuffer.prototype.putString = function(str) { - return this.putBytes(str, 'utf16'); -}; - -/** - * Puts a 16-bit integer in this buffer in big-endian order. + * Copyright (c) 2010-2014 Digital Bazaar, Inc. * - * @param i the 16-bit integer. + * The ASN.1 representation of an X.509v3 certificate is as follows + * (see RFC 2459): * - * @return this buffer. - */ -util.DataBuffer.prototype.putInt16 = function(i) { - this.accommodate(2); - this.data.setInt16(this.write, i); - this.write += 2; - return this; -}; - -/** - * Puts a 24-bit integer in this buffer in big-endian order. + * Certificate ::= SEQUENCE { + * tbsCertificate TBSCertificate, + * signatureAlgorithm AlgorithmIdentifier, + * signatureValue BIT STRING + * } * - * @param i the 24-bit integer. + * TBSCertificate ::= SEQUENCE { + * version [0] EXPLICIT Version DEFAULT v1, + * serialNumber CertificateSerialNumber, + * signature AlgorithmIdentifier, + * issuer Name, + * validity Validity, + * subject Name, + * subjectPublicKeyInfo SubjectPublicKeyInfo, + * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, + * -- If present, version shall be v2 or v3 + * extensions [3] EXPLICIT Extensions OPTIONAL + * -- If present, version shall be v3 + * } * - * @return this buffer. - */ -util.DataBuffer.prototype.putInt24 = function(i) { - this.accommodate(3); - this.data.setInt16(this.write, i >> 8 & 0xFFFF); - this.data.setInt8(this.write, i >> 16 & 0xFF); - this.write += 3; - return this; -}; - -/** - * Puts a 32-bit integer in this buffer in big-endian order. + * Version ::= INTEGER { v1(0), v2(1), v3(2) } * - * @param i the 32-bit integer. + * CertificateSerialNumber ::= INTEGER * - * @return this buffer. - */ -util.DataBuffer.prototype.putInt32 = function(i) { - this.accommodate(4); - this.data.setInt32(this.write, i); - this.write += 4; - return this; -}; - -/** - * Puts a 16-bit integer in this buffer in little-endian order. + * Name ::= CHOICE { + * // only one possible choice for now + * RDNSequence + * } * - * @param i the 16-bit integer. + * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName * - * @return this buffer. - */ -util.DataBuffer.prototype.putInt16Le = function(i) { - this.accommodate(2); - this.data.setInt16(this.write, i, true); - this.write += 2; - return this; -}; - -/** - * Puts a 24-bit integer in this buffer in little-endian order. + * RelativeDistinguishedName ::= SET OF AttributeTypeAndValue * - * @param i the 24-bit integer. + * AttributeTypeAndValue ::= SEQUENCE { + * type AttributeType, + * value AttributeValue + * } + * AttributeType ::= OBJECT IDENTIFIER + * AttributeValue ::= ANY DEFINED BY AttributeType * - * @return this buffer. - */ -util.DataBuffer.prototype.putInt24Le = function(i) { - this.accommodate(3); - this.data.setInt8(this.write, i >> 16 & 0xFF); - this.data.setInt16(this.write, i >> 8 & 0xFFFF, true); - this.write += 3; - return this; -}; - -/** - * Puts a 32-bit integer in this buffer in little-endian order. + * Validity ::= SEQUENCE { + * notBefore Time, + * notAfter Time + * } * - * @param i the 32-bit integer. + * Time ::= CHOICE { + * utcTime UTCTime, + * generalTime GeneralizedTime + * } * - * @return this buffer. - */ -util.DataBuffer.prototype.putInt32Le = function(i) { - this.accommodate(4); - this.data.setInt32(this.write, i, true); - this.write += 4; - return this; -}; - -/** - * Puts an n-bit integer in this buffer in big-endian order. + * UniqueIdentifier ::= BIT STRING * - * @param i the n-bit integer. - * @param n the number of bits in the integer (8, 16, 24, or 32). + * SubjectPublicKeyInfo ::= SEQUENCE { + * algorithm AlgorithmIdentifier, + * subjectPublicKey BIT STRING + * } * - * @return this buffer. + * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension + * + * Extension ::= SEQUENCE { + * extnID OBJECT IDENTIFIER, + * critical BOOLEAN DEFAULT FALSE, + * extnValue OCTET STRING + * } + * + * The only key algorithm currently supported for PKI is RSA. + * + * RSASSA-PSS signatures are described in RFC 3447 and RFC 4055. + * + * PKCS#10 v1.7 describes certificate signing requests: + * + * CertificationRequestInfo: + * + * CertificationRequestInfo ::= SEQUENCE { + * version INTEGER { v1(0) } (v1,...), + * subject Name, + * subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }}, + * attributes [0] Attributes{{ CRIAttributes }} + * } + * + * Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }} + * + * CRIAttributes ATTRIBUTE ::= { + * ... -- add any locally defined attributes here -- } + * + * Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE { + * type ATTRIBUTE.&id({IOSet}), + * values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type}) + * } + * + * CertificationRequest ::= SEQUENCE { + * certificationRequestInfo CertificationRequestInfo, + * signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }}, + * signature BIT STRING + * } */ -util.DataBuffer.prototype.putInt = function(i, n) { - _checkBitsParam(n); - this.accommodate(n / 8); - do { - n -= 8; - this.data.setInt8(this.write++, (i >> n) & 0xFF); - } while(n > 0); - return this; +var forge = __nccwpck_require__(9177); +__nccwpck_require__(7994); +__nccwpck_require__(9549); +__nccwpck_require__(7157); +__nccwpck_require__(6231); +__nccwpck_require__(7973); +__nccwpck_require__(1925); +__nccwpck_require__(154); +__nccwpck_require__(4376); +__nccwpck_require__(3921); +__nccwpck_require__(8339); + +// shortcut for asn.1 API +var asn1 = forge.asn1; + +/* Public Key Infrastructure (PKI) implementation. */ +var pki = module.exports = forge.pki = forge.pki || {}; +var oids = pki.oids; + +// short name OID mappings +var _shortNames = {}; +_shortNames['CN'] = oids['commonName']; +_shortNames['commonName'] = 'CN'; +_shortNames['C'] = oids['countryName']; +_shortNames['countryName'] = 'C'; +_shortNames['L'] = oids['localityName']; +_shortNames['localityName'] = 'L'; +_shortNames['ST'] = oids['stateOrProvinceName']; +_shortNames['stateOrProvinceName'] = 'ST'; +_shortNames['O'] = oids['organizationName']; +_shortNames['organizationName'] = 'O'; +_shortNames['OU'] = oids['organizationalUnitName']; +_shortNames['organizationalUnitName'] = 'OU'; +_shortNames['E'] = oids['emailAddress']; +_shortNames['emailAddress'] = 'E'; + +// validator for an SubjectPublicKeyInfo structure +// Note: Currently only works with an RSA public key +var publicKeyValidator = forge.pki.rsa.publicKeyValidator; + +// validator for an X.509v3 certificate +var x509CertificateValidator = { + name: 'Certificate', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: 'Certificate.TBSCertificate', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: 'tbsCertificate', + value: [{ + name: 'Certificate.TBSCertificate.version', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + optional: true, + value: [{ + name: 'Certificate.TBSCertificate.version.integer', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: 'certVersion' + }] + }, { + name: 'Certificate.TBSCertificate.serialNumber', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: 'certSerialNumber' + }, { + name: 'Certificate.TBSCertificate.signature', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: 'Certificate.TBSCertificate.signature.algorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: 'certinfoSignatureOid' + }, { + name: 'Certificate.TBSCertificate.signature.parameters', + tagClass: asn1.Class.UNIVERSAL, + optional: true, + captureAsn1: 'certinfoSignatureParams' + }] + }, { + name: 'Certificate.TBSCertificate.issuer', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: 'certIssuer' + }, { + name: 'Certificate.TBSCertificate.validity', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + // Note: UTC and generalized times may both appear so the capture + // names are based on their detected order, the names used below + // are only for the common case, which validity time really means + // "notBefore" and which means "notAfter" will be determined by order + value: [{ + // notBefore (Time) (UTC time case) + name: 'Certificate.TBSCertificate.validity.notBefore (utc)', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.UTCTIME, + constructed: false, + optional: true, + capture: 'certValidity1UTCTime' + }, { + // notBefore (Time) (generalized time case) + name: 'Certificate.TBSCertificate.validity.notBefore (generalized)', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.GENERALIZEDTIME, + constructed: false, + optional: true, + capture: 'certValidity2GeneralizedTime' + }, { + // notAfter (Time) (only UTC time is supported) + name: 'Certificate.TBSCertificate.validity.notAfter (utc)', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.UTCTIME, + constructed: false, + optional: true, + capture: 'certValidity3UTCTime' + }, { + // notAfter (Time) (only UTC time is supported) + name: 'Certificate.TBSCertificate.validity.notAfter (generalized)', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.GENERALIZEDTIME, + constructed: false, + optional: true, + capture: 'certValidity4GeneralizedTime' + }] + }, { + // Name (subject) (RDNSequence) + name: 'Certificate.TBSCertificate.subject', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: 'certSubject' + }, + // SubjectPublicKeyInfo + publicKeyValidator, + { + // issuerUniqueID (optional) + name: 'Certificate.TBSCertificate.issuerUniqueID', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 1, + constructed: true, + optional: true, + value: [{ + name: 'Certificate.TBSCertificate.issuerUniqueID.id', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + // TODO: support arbitrary bit length ids + captureBitStringValue: 'certIssuerUniqueId' + }] + }, { + // subjectUniqueID (optional) + name: 'Certificate.TBSCertificate.subjectUniqueID', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 2, + constructed: true, + optional: true, + value: [{ + name: 'Certificate.TBSCertificate.subjectUniqueID.id', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + // TODO: support arbitrary bit length ids + captureBitStringValue: 'certSubjectUniqueId' + }] + }, { + // Extensions (optional) + name: 'Certificate.TBSCertificate.extensions', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 3, + constructed: true, + captureAsn1: 'certExtensions', + optional: true + }] + }, { + // AlgorithmIdentifier (signature algorithm) + name: 'Certificate.signatureAlgorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + // algorithm + name: 'Certificate.signatureAlgorithm.algorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: 'certSignatureOid' + }, { + name: 'Certificate.TBSCertificate.signature.parameters', + tagClass: asn1.Class.UNIVERSAL, + optional: true, + captureAsn1: 'certSignatureParams' + }] + }, { + // SignatureValue + name: 'Certificate.signatureValue', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + captureBitStringValue: 'certSignature' + }] +}; + +var rsassaPssParameterValidator = { + name: 'rsapss', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: 'rsapss.hashAlgorithm', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + value: [{ + name: 'rsapss.hashAlgorithm.AlgorithmIdentifier', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.SEQUENCE, + constructed: true, + optional: true, + value: [{ + name: 'rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: 'hashOid' + /* parameter block omitted, for SHA1 NULL anyhow. */ + }] + }] + }, { + name: 'rsapss.maskGenAlgorithm', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 1, + constructed: true, + value: [{ + name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.SEQUENCE, + constructed: true, + optional: true, + value: [{ + name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: 'maskGenOid' + }, { + name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: 'maskGenHashOid' + /* parameter block omitted, for SHA1 NULL anyhow. */ + }] + }] + }] + }, { + name: 'rsapss.saltLength', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 2, + optional: true, + value: [{ + name: 'rsapss.saltLength.saltLength', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.INTEGER, + constructed: false, + capture: 'saltLength' + }] + }, { + name: 'rsapss.trailerField', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 3, + optional: true, + value: [{ + name: 'rsapss.trailer.trailer', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Class.INTEGER, + constructed: false, + capture: 'trailer' + }] + }] +}; + +// validator for a CertificationRequestInfo structure +var certificationRequestInfoValidator = { + name: 'CertificationRequestInfo', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: 'certificationRequestInfo', + value: [{ + name: 'CertificationRequestInfo.integer', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.INTEGER, + constructed: false, + capture: 'certificationRequestInfoVersion' + }, { + // Name (subject) (RDNSequence) + name: 'CertificationRequestInfo.subject', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: 'certificationRequestInfoSubject' + }, + // SubjectPublicKeyInfo + publicKeyValidator, + { + name: 'CertificationRequestInfo.attributes', + tagClass: asn1.Class.CONTEXT_SPECIFIC, + type: 0, + constructed: true, + optional: true, + capture: 'certificationRequestInfoAttributes', + value: [{ + name: 'CertificationRequestInfo.attributes', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + name: 'CertificationRequestInfo.attributes.type', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false + }, { + name: 'CertificationRequestInfo.attributes.value', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SET, + constructed: true + }] + }] + }] }; -/** - * Puts a signed n-bit integer in this buffer in big-endian order. Two's - * complement representation is used. - * - * @param i the n-bit integer. - * @param n the number of bits in the integer. - * - * @return this buffer. - */ -util.DataBuffer.prototype.putSignedInt = function(i, n) { - _checkBitsParam(n); - this.accommodate(n / 8); - if(i < 0) { - i += 2 << (n - 1); - } - return this.putInt(i, n); +// validator for a CertificationRequest structure +var certificationRequestValidator = { + name: 'CertificationRequest', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + captureAsn1: 'csr', + value: [ + certificationRequestInfoValidator, { + // AlgorithmIdentifier (signature algorithm) + name: 'CertificationRequest.signatureAlgorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.SEQUENCE, + constructed: true, + value: [{ + // algorithm + name: 'CertificationRequest.signatureAlgorithm.algorithm', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.OID, + constructed: false, + capture: 'csrSignatureOid' + }, { + name: 'CertificationRequest.signatureAlgorithm.parameters', + tagClass: asn1.Class.UNIVERSAL, + optional: true, + captureAsn1: 'csrSignatureParams' + }] + }, { + // signature + name: 'CertificationRequest.signature', + tagClass: asn1.Class.UNIVERSAL, + type: asn1.Type.BITSTRING, + constructed: false, + captureBitStringValue: 'csrSignature' + } + ] }; /** - * Gets a byte from this buffer and advances the read pointer by 1. + * Converts an RDNSequence of ASN.1 DER-encoded RelativeDistinguishedName + * sets into an array with objects that have type and value properties. * - * @return the byte. + * @param rdn the RDNSequence to convert. + * @param md a message digest to append type and value to if provided. */ -util.DataBuffer.prototype.getByte = function() { - return this.data.getInt8(this.read++); -}; +pki.RDNAttributesAsArray = function(rdn, md) { + var rval = []; -/** - * Gets a uint16 from this buffer in big-endian order and advances the read - * pointer by 2. - * - * @return the uint16. - */ -util.DataBuffer.prototype.getInt16 = function() { - var rval = this.data.getInt16(this.read); - this.read += 2; - return rval; -}; + // each value in 'rdn' in is a SET of RelativeDistinguishedName + var set, attr, obj; + for(var si = 0; si < rdn.value.length; ++si) { + // get the RelativeDistinguishedName set + set = rdn.value[si]; -/** - * Gets a uint24 from this buffer in big-endian order and advances the read - * pointer by 3. - * - * @return the uint24. - */ -util.DataBuffer.prototype.getInt24 = function() { - var rval = ( - this.data.getInt16(this.read) << 8 ^ - this.data.getInt8(this.read + 2)); - this.read += 3; - return rval; -}; + // each value in the SET is an AttributeTypeAndValue sequence + // containing first a type (an OID) and second a value (defined by + // the OID) + for(var i = 0; i < set.value.length; ++i) { + obj = {}; + attr = set.value[i]; + obj.type = asn1.derToOid(attr.value[0].value); + obj.value = attr.value[1].value; + obj.valueTagClass = attr.value[1].type; + // if the OID is known, get its name and short name + if(obj.type in oids) { + obj.name = oids[obj.type]; + if(obj.name in _shortNames) { + obj.shortName = _shortNames[obj.name]; + } + } + if(md) { + md.update(obj.type); + md.update(obj.value); + } + rval.push(obj); + } + } -/** - * Gets a uint32 from this buffer in big-endian order and advances the read - * pointer by 4. - * - * @return the word. - */ -util.DataBuffer.prototype.getInt32 = function() { - var rval = this.data.getInt32(this.read); - this.read += 4; return rval; }; /** - * Gets a uint16 from this buffer in little-endian order and advances the read - * pointer by 2. + * Converts ASN.1 CRIAttributes into an array with objects that have type and + * value properties. * - * @return the uint16. + * @param attributes the CRIAttributes to convert. */ -util.DataBuffer.prototype.getInt16Le = function() { - var rval = this.data.getInt16(this.read, true); - this.read += 2; - return rval; -}; +pki.CRIAttributesAsArray = function(attributes) { + var rval = []; -/** - * Gets a uint24 from this buffer in little-endian order and advances the read - * pointer by 3. - * - * @return the uint24. - */ -util.DataBuffer.prototype.getInt24Le = function() { - var rval = ( - this.data.getInt8(this.read) ^ - this.data.getInt16(this.read + 1, true) << 8); - this.read += 3; - return rval; -}; + // each value in 'attributes' in is a SEQUENCE with an OID and a SET + for(var si = 0; si < attributes.length; ++si) { + // get the attribute sequence + var seq = attributes[si]; -/** - * Gets a uint32 from this buffer in little-endian order and advances the read - * pointer by 4. - * - * @return the word. - */ -util.DataBuffer.prototype.getInt32Le = function() { - var rval = this.data.getInt32(this.read, true); - this.read += 4; - return rval; -}; + // each value in the SEQUENCE containing first a type (an OID) and + // second a set of values (defined by the OID) + var type = asn1.derToOid(seq.value[0].value); + var values = seq.value[1].value; + for(var vi = 0; vi < values.length; ++vi) { + var obj = {}; + obj.type = type; + obj.value = values[vi].value; + obj.valueTagClass = values[vi].type; + // if the OID is known, get its name and short name + if(obj.type in oids) { + obj.name = oids[obj.type]; + if(obj.name in _shortNames) { + obj.shortName = _shortNames[obj.name]; + } + } + // parse extensions + if(obj.type === oids.extensionRequest) { + obj.extensions = []; + for(var ei = 0; ei < obj.value.length; ++ei) { + obj.extensions.push(pki.certificateExtensionFromAsn1(obj.value[ei])); + } + } + rval.push(obj); + } + } -/** - * Gets an n-bit integer from this buffer in big-endian order and advances the - * read pointer by n/8. - * - * @param n the number of bits in the integer (8, 16, 24, or 32). - * - * @return the integer. - */ -util.DataBuffer.prototype.getInt = function(n) { - _checkBitsParam(n); - var rval = 0; - do { - // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits. - rval = (rval << 8) + this.data.getInt8(this.read++); - n -= 8; - } while(n > 0); return rval; }; /** - * Gets a signed n-bit integer from this buffer in big-endian order, using - * two's complement, and advances the read pointer by n/8. + * Gets an issuer or subject attribute from its name, type, or short name. * - * @param n the number of bits in the integer (8, 16, 24, or 32). + * @param obj the issuer or subject object. + * @param options a short name string or an object with: + * shortName the short name for the attribute. + * name the name for the attribute. + * type the type for the attribute. * - * @return the integer. + * @return the attribute. */ -util.DataBuffer.prototype.getSignedInt = function(n) { - // getInt checks n - var x = this.getInt(n); - var max = 2 << (n - 2); - if(x >= max) { - x -= max << 1; +function _getAttribute(obj, options) { + if(typeof options === 'string') { + options = {shortName: options}; } - return x; -}; -/** - * Reads bytes out as a binary encoded string and clears them from the - * buffer. - * - * @param count the number of bytes to read, undefined or null for all. - * - * @return a binary encoded string of bytes. - */ -util.DataBuffer.prototype.getBytes = function(count) { - // TODO: deprecate this method, it is poorly named and - // this.toString('binary') replaces it - // add a toTypedArray()/toArrayBuffer() function - var rval; - if(count) { - // read count bytes - count = Math.min(this.length(), count); - rval = this.data.slice(this.read, this.read + count); - this.read += count; - } else if(count === 0) { - rval = ''; - } else { - // read all bytes, optimize to only copy when needed - rval = (this.read === 0) ? this.data : this.data.slice(this.read); - this.clear(); + var rval = null; + var attr; + for(var i = 0; rval === null && i < obj.attributes.length; ++i) { + attr = obj.attributes[i]; + if(options.type && options.type === attr.type) { + rval = attr; + } else if(options.name && options.name === attr.name) { + rval = attr; + } else if(options.shortName && options.shortName === attr.shortName) { + rval = attr; + } } return rval; -}; +} /** - * Gets a binary encoded string of the bytes from this buffer without - * modifying the read pointer. + * Converts signature parameters from ASN.1 structure. * - * @param count the number of bytes to get, omit to get all. + * Currently only RSASSA-PSS supported. The PKCS#1 v1.5 signature scheme had + * no parameters. * - * @return a string full of binary encoded characters. - */ -util.DataBuffer.prototype.bytes = function(count) { - // TODO: deprecate this method, it is poorly named, add "getString()" - return (typeof(count) === 'undefined' ? - this.data.slice(this.read) : - this.data.slice(this.read, this.read + count)); -}; - -/** - * Gets a byte at the given index without modifying the read pointer. + * RSASSA-PSS-params ::= SEQUENCE { + * hashAlgorithm [0] HashAlgorithm DEFAULT + * sha1Identifier, + * maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT + * mgf1SHA1Identifier, + * saltLength [2] INTEGER DEFAULT 20, + * trailerField [3] INTEGER DEFAULT 1 + * } * - * @param i the byte index. + * HashAlgorithm ::= AlgorithmIdentifier * - * @return the byte. - */ -util.DataBuffer.prototype.at = function(i) { - return this.data.getUint8(this.read + i); -}; - -/** - * Puts a byte at the given index without modifying the read pointer. + * MaskGenAlgorithm ::= AlgorithmIdentifier * - * @param i the byte index. - * @param b the byte to put. + * AlgorithmIdentifer ::= SEQUENCE { + * algorithm OBJECT IDENTIFIER, + * parameters ANY DEFINED BY algorithm OPTIONAL + * } * - * @return this buffer. + * @param oid The OID specifying the signature algorithm + * @param obj The ASN.1 structure holding the parameters + * @param fillDefaults Whether to use return default values where omitted + * @return signature parameter object */ -util.DataBuffer.prototype.setAt = function(i, b) { - this.data.setUint8(i, b); - return this; +var _readSignatureParameters = function(oid, obj, fillDefaults) { + var params = {}; + + if(oid !== oids['RSASSA-PSS']) { + return params; + } + + if(fillDefaults) { + params = { + hash: { + algorithmOid: oids['sha1'] + }, + mgf: { + algorithmOid: oids['mgf1'], + hash: { + algorithmOid: oids['sha1'] + } + }, + saltLength: 20 + }; + } + + var capture = {}; + var errors = []; + if(!asn1.validate(obj, rsassaPssParameterValidator, capture, errors)) { + var error = new Error('Cannot read RSASSA-PSS parameter block.'); + error.errors = errors; + throw error; + } + + if(capture.hashOid !== undefined) { + params.hash = params.hash || {}; + params.hash.algorithmOid = asn1.derToOid(capture.hashOid); + } + + if(capture.maskGenOid !== undefined) { + params.mgf = params.mgf || {}; + params.mgf.algorithmOid = asn1.derToOid(capture.maskGenOid); + params.mgf.hash = params.mgf.hash || {}; + params.mgf.hash.algorithmOid = asn1.derToOid(capture.maskGenHashOid); + } + + if(capture.saltLength !== undefined) { + params.saltLength = capture.saltLength.charCodeAt(0); + } + + return params; }; /** - * Gets the last byte without modifying the read pointer. + * Create signature digest for OID. * - * @return the last byte. + * @param options + * signatureOid: the OID specifying the signature algorithm. + * type: a human readable type for error messages + * @return a created md instance. throws if unknown oid. */ -util.DataBuffer.prototype.last = function() { - return this.data.getUint8(this.write - 1); +var _createSignatureDigest = function(options) { + switch(oids[options.signatureOid]) { + case 'sha1WithRSAEncryption': + // deprecated alias + case 'sha1WithRSASignature': + return forge.md.sha1.create(); + case 'md5WithRSAEncryption': + return forge.md.md5.create(); + case 'sha256WithRSAEncryption': + return forge.md.sha256.create(); + case 'sha384WithRSAEncryption': + return forge.md.sha384.create(); + case 'sha512WithRSAEncryption': + return forge.md.sha512.create(); + case 'RSASSA-PSS': + return forge.md.sha256.create(); + default: + var error = new Error( + 'Could not compute ' + options.type + ' digest. ' + + 'Unknown signature OID.'); + error.signatureOid = options.signatureOid; + throw error; + } }; /** - * Creates a copy of this buffer. + * Verify signature on certificate or CSR. * - * @return the copy. + * @param options: + * certificate the certificate or CSR to verify. + * md the signature digest. + * signature the signature + * @return a created md instance. throws if unknown oid. */ -util.DataBuffer.prototype.copy = function() { - return new util.DataBuffer(this); +var _verifySignature = function(options) { + var cert = options.certificate; + var scheme; + + switch(cert.signatureOid) { + case oids.sha1WithRSAEncryption: + // deprecated alias + case oids.sha1WithRSASignature: + /* use PKCS#1 v1.5 padding scheme */ + break; + case oids['RSASSA-PSS']: + var hash, mgf; + + /* initialize mgf */ + hash = oids[cert.signatureParameters.mgf.hash.algorithmOid]; + if(hash === undefined || forge.md[hash] === undefined) { + var error = new Error('Unsupported MGF hash function.'); + error.oid = cert.signatureParameters.mgf.hash.algorithmOid; + error.name = hash; + throw error; + } + + mgf = oids[cert.signatureParameters.mgf.algorithmOid]; + if(mgf === undefined || forge.mgf[mgf] === undefined) { + var error = new Error('Unsupported MGF function.'); + error.oid = cert.signatureParameters.mgf.algorithmOid; + error.name = mgf; + throw error; + } + + mgf = forge.mgf[mgf].create(forge.md[hash].create()); + + /* initialize hash function */ + hash = oids[cert.signatureParameters.hash.algorithmOid]; + if(hash === undefined || forge.md[hash] === undefined) { + var error = new Error('Unsupported RSASSA-PSS hash function.'); + error.oid = cert.signatureParameters.hash.algorithmOid; + error.name = hash; + throw error; + } + + scheme = forge.pss.create( + forge.md[hash].create(), mgf, cert.signatureParameters.saltLength + ); + break; + } + + // verify signature on cert using public key + return cert.publicKey.verify( + options.md.digest().getBytes(), options.signature, scheme + ); }; /** - * Compacts this buffer. + * Converts an X.509 certificate from PEM format. * - * @return this buffer. + * Note: If the certificate is to be verified then compute hash should + * be set to true. This will scan the TBSCertificate part of the ASN.1 + * object while it is converted so it doesn't need to be converted back + * to ASN.1-DER-encoding later. + * + * @param pem the PEM-formatted certificate. + * @param computeHash true to compute the hash for verification. + * @param strict true to be strict when checking ASN.1 value lengths, false to + * allow truncated values (default: true). + * + * @return the certificate. */ -util.DataBuffer.prototype.compact = function() { - if(this.read > 0) { - var src = new Uint8Array(this.data.buffer, this.read); - var dst = new Uint8Array(src.byteLength); - dst.set(src); - this.data = new DataView(dst); - this.write -= this.read; - this.read = 0; +pki.certificateFromPem = function(pem, computeHash, strict) { + var msg = forge.pem.decode(pem)[0]; + + if(msg.type !== 'CERTIFICATE' && + msg.type !== 'X509 CERTIFICATE' && + msg.type !== 'TRUSTED CERTIFICATE') { + var error = new Error( + 'Could not convert certificate from PEM; PEM header type ' + + 'is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".'); + error.headerType = msg.type; + throw error; + } + if(msg.procType && msg.procType.type === 'ENCRYPTED') { + throw new Error( + 'Could not convert certificate from PEM; PEM is encrypted.'); } - return this; -}; -/** - * Clears this buffer. - * - * @return this buffer. - */ -util.DataBuffer.prototype.clear = function() { - this.data = new DataView(new ArrayBuffer(0)); - this.read = this.write = 0; - return this; -}; + // convert DER to ASN.1 object + var obj = asn1.fromDer(msg.body, strict); -/** - * Shortens this buffer by triming bytes off of the end of this buffer. - * - * @param count the number of bytes to trim off. - * - * @return this buffer. - */ -util.DataBuffer.prototype.truncate = function(count) { - this.write = Math.max(0, this.length() - count); - this.read = Math.min(this.read, this.write); - return this; + return pki.certificateFromAsn1(obj, computeHash); }; /** - * Converts this buffer to a hexadecimal string. + * Converts an X.509 certificate to PEM format. * - * @return a hexadecimal string. + * @param cert the certificate. + * @param maxline the maximum characters per line, defaults to 64. + * + * @return the PEM-formatted certificate. */ -util.DataBuffer.prototype.toHex = function() { - var rval = ''; - for(var i = this.read; i < this.data.byteLength; ++i) { - var b = this.data.getUint8(i); - if(b < 16) { - rval += '0'; - } - rval += b.toString(16); - } - return rval; +pki.certificateToPem = function(cert, maxline) { + // convert to ASN.1, then DER, then PEM-encode + var msg = { + type: 'CERTIFICATE', + body: asn1.toDer(pki.certificateToAsn1(cert)).getBytes() + }; + return forge.pem.encode(msg, {maxline: maxline}); }; /** - * Converts this buffer to a string, using the given encoding. If no - * encoding is given, 'utf8' (UTF-8) is used. + * Converts an RSA public key from PEM format. * - * @param [encoding] the encoding to use: 'binary', 'utf8', 'utf16', 'hex', - * 'base64' (default: 'utf8'). + * @param pem the PEM-formatted public key. * - * @return a string representation of the bytes in this buffer. + * @return the public key. */ -util.DataBuffer.prototype.toString = function(encoding) { - var view = new Uint8Array(this.data, this.read, this.length()); - encoding = encoding || 'utf8'; +pki.publicKeyFromPem = function(pem) { + var msg = forge.pem.decode(pem)[0]; - // encode to string - if(encoding === 'binary' || encoding === 'raw') { - return util.binary.raw.encode(view); - } - if(encoding === 'hex') { - return util.binary.hex.encode(view); + if(msg.type !== 'PUBLIC KEY' && msg.type !== 'RSA PUBLIC KEY') { + var error = new Error('Could not convert public key from PEM; PEM header ' + + 'type is not "PUBLIC KEY" or "RSA PUBLIC KEY".'); + error.headerType = msg.type; + throw error; } - if(encoding === 'base64') { - return util.binary.base64.encode(view); + if(msg.procType && msg.procType.type === 'ENCRYPTED') { + throw new Error('Could not convert public key from PEM; PEM is encrypted.'); } - // decode to text - if(encoding === 'utf8') { - return util.text.utf8.decode(view); - } - if(encoding === 'utf16') { - return util.text.utf16.decode(view); - } + // convert DER to ASN.1 object + var obj = asn1.fromDer(msg.body); - throw new Error('Invalid encoding: ' + encoding); + return pki.publicKeyFromAsn1(obj); }; -/** End Buffer w/UInt8Array backing */ - /** - * Creates a buffer that stores bytes. A value may be given to populate the - * buffer with data. This value can either be string of encoded bytes or a - * regular string of characters. When passing a string of binary encoded - * bytes, the encoding `raw` should be given. This is also the default. When - * passing a string of characters, the encoding `utf8` should be given. + * Converts an RSA public key to PEM format (using a SubjectPublicKeyInfo). * - * @param [input] a string with encoded bytes to store in the buffer. - * @param [encoding] (default: 'raw', other: 'utf8'). + * @param key the public key. + * @param maxline the maximum characters per line, defaults to 64. + * + * @return the PEM-formatted public key. */ -util.createBuffer = function(input, encoding) { - // TODO: deprecate, use new ByteBuffer() instead - encoding = encoding || 'raw'; - if(input !== undefined && encoding === 'utf8') { - input = util.encodeUtf8(input); - } - return new util.ByteBuffer(input); +pki.publicKeyToPem = function(key, maxline) { + // convert to ASN.1, then DER, then PEM-encode + var msg = { + type: 'PUBLIC KEY', + body: asn1.toDer(pki.publicKeyToAsn1(key)).getBytes() + }; + return forge.pem.encode(msg, {maxline: maxline}); }; /** - * Fills a string with a particular value. If you want the string to be a byte - * string, pass in String.fromCharCode(theByte). + * Converts an RSA public key to PEM format (using an RSAPublicKey). * - * @param c the character to fill the string with, use String.fromCharCode - * to fill the string with a byte value. - * @param n the number of characters of value c to fill with. + * @param key the public key. + * @param maxline the maximum characters per line, defaults to 64. * - * @return the filled string. + * @return the PEM-formatted public key. */ -util.fillString = function(c, n) { - var s = ''; - while(n > 0) { - if(n & 1) { - s += c; - } - n >>>= 1; - if(n > 0) { - c += c; - } - } - return s; +pki.publicKeyToRSAPublicKeyPem = function(key, maxline) { + // convert to ASN.1, then DER, then PEM-encode + var msg = { + type: 'RSA PUBLIC KEY', + body: asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes() + }; + return forge.pem.encode(msg, {maxline: maxline}); }; /** - * Performs a per byte XOR between two byte strings and returns the result as a - * string of bytes. + * Gets a fingerprint for the given public key. * - * @param s1 first string of bytes. - * @param s2 second string of bytes. - * @param n the number of bytes to XOR. + * @param options the options to use. + * [md] the message digest object to use (defaults to forge.md.sha1). + * [type] the type of fingerprint, such as 'RSAPublicKey', + * 'SubjectPublicKeyInfo' (defaults to 'RSAPublicKey'). + * [encoding] an alternative output encoding, such as 'hex' + * (defaults to none, outputs a byte buffer). + * [delimiter] the delimiter to use between bytes for 'hex' encoded + * output, eg: ':' (defaults to none). * - * @return the XOR'd result. + * @return the fingerprint as a byte buffer or other encoding based on options. */ -util.xorBytes = function(s1, s2, n) { - var s3 = ''; - var b = ''; - var t = ''; - var i = 0; - var c = 0; - for(; n > 0; --n, ++i) { - b = s1.charCodeAt(i) ^ s2.charCodeAt(i); - if(c >= 10) { - s3 += t; - t = ''; - c = 0; +pki.getPublicKeyFingerprint = function(key, options) { + options = options || {}; + var md = options.md || forge.md.sha1.create(); + var type = options.type || 'RSAPublicKey'; + + var bytes; + switch(type) { + case 'RSAPublicKey': + bytes = asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes(); + break; + case 'SubjectPublicKeyInfo': + bytes = asn1.toDer(pki.publicKeyToAsn1(key)).getBytes(); + break; + default: + throw new Error('Unknown fingerprint type "' + options.type + '".'); + } + + // hash public key bytes + md.start(); + md.update(bytes); + var digest = md.digest(); + if(options.encoding === 'hex') { + var hex = digest.toHex(); + if(options.delimiter) { + return hex.match(/.{2}/g).join(options.delimiter); } - t += String.fromCharCode(b); - ++c; + return hex; + } else if(options.encoding === 'binary') { + return digest.getBytes(); + } else if(options.encoding) { + throw new Error('Unknown encoding "' + options.encoding + '".'); } - s3 += t; - return s3; + return digest; }; /** - * Converts a hex string into a 'binary' encoded string of bytes. + * Converts a PKCS#10 certification request (CSR) from PEM format. * - * @param hex the hexadecimal string to convert. + * Note: If the certification request is to be verified then compute hash + * should be set to true. This will scan the CertificationRequestInfo part of + * the ASN.1 object while it is converted so it doesn't need to be converted + * back to ASN.1-DER-encoding later. * - * @return the binary-encoded string of bytes. + * @param pem the PEM-formatted certificate. + * @param computeHash true to compute the hash for verification. + * @param strict true to be strict when checking ASN.1 value lengths, false to + * allow truncated values (default: true). + * + * @return the certification request (CSR). */ -util.hexToBytes = function(hex) { - // TODO: deprecate: "Deprecated. Use util.binary.hex.decode instead." - var rval = ''; - var i = 0; - if(hex.length & 1 == 1) { - // odd number of characters, convert first character alone - i = 1; - rval += String.fromCharCode(parseInt(hex[0], 16)); +pki.certificationRequestFromPem = function(pem, computeHash, strict) { + var msg = forge.pem.decode(pem)[0]; + + if(msg.type !== 'CERTIFICATE REQUEST') { + var error = new Error('Could not convert certification request from PEM; ' + + 'PEM header type is not "CERTIFICATE REQUEST".'); + error.headerType = msg.type; + throw error; } - // convert 2 characters (1 byte) at a time - for(; i < hex.length; i += 2) { - rval += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); + if(msg.procType && msg.procType.type === 'ENCRYPTED') { + throw new Error('Could not convert certification request from PEM; ' + + 'PEM is encrypted.'); } - return rval; + + // convert DER to ASN.1 object + var obj = asn1.fromDer(msg.body, strict); + + return pki.certificationRequestFromAsn1(obj, computeHash); }; /** - * Converts a 'binary' encoded string of bytes to hex. + * Converts a PKCS#10 certification request (CSR) to PEM format. * - * @param bytes the byte string to convert. + * @param csr the certification request. + * @param maxline the maximum characters per line, defaults to 64. * - * @return the string of hexadecimal characters. + * @return the PEM-formatted certification request. */ -util.bytesToHex = function(bytes) { - // TODO: deprecate: "Deprecated. Use util.binary.hex.encode instead." - return util.createBuffer(bytes).toHex(); +pki.certificationRequestToPem = function(csr, maxline) { + // convert to ASN.1, then DER, then PEM-encode + var msg = { + type: 'CERTIFICATE REQUEST', + body: asn1.toDer(pki.certificationRequestToAsn1(csr)).getBytes() + }; + return forge.pem.encode(msg, {maxline: maxline}); }; /** - * Converts an 32-bit integer to 4-big-endian byte string. - * - * @param i the integer. + * Creates an empty X.509v3 RSA certificate. * - * @return the byte string. + * @return the certificate. */ -util.int32ToBytes = function(i) { - return ( - String.fromCharCode(i >> 24 & 0xFF) + - String.fromCharCode(i >> 16 & 0xFF) + - String.fromCharCode(i >> 8 & 0xFF) + - String.fromCharCode(i & 0xFF)); -}; +pki.createCertificate = function() { + var cert = {}; + cert.version = 0x02; + cert.serialNumber = '00'; + cert.signatureOid = null; + cert.signature = null; + cert.siginfo = {}; + cert.siginfo.algorithmOid = null; + cert.validity = {}; + cert.validity.notBefore = new Date(); + cert.validity.notAfter = new Date(); -// base64 characters, reverse mapping -var _base64 = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; -var _base64Idx = [ -/*43 -43 = 0*/ -/*'+', 1, 2, 3,'/' */ - 62, -1, -1, -1, 63, + cert.issuer = {}; + cert.issuer.getField = function(sn) { + return _getAttribute(cert.issuer, sn); + }; + cert.issuer.addField = function(attr) { + _fillMissingFields([attr]); + cert.issuer.attributes.push(attr); + }; + cert.issuer.attributes = []; + cert.issuer.hash = null; -/*'0','1','2','3','4','5','6','7','8','9' */ - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + cert.subject = {}; + cert.subject.getField = function(sn) { + return _getAttribute(cert.subject, sn); + }; + cert.subject.addField = function(attr) { + _fillMissingFields([attr]); + cert.subject.attributes.push(attr); + }; + cert.subject.attributes = []; + cert.subject.hash = null; -/*15, 16, 17,'=', 19, 20, 21 */ - -1, -1, -1, 64, -1, -1, -1, + cert.extensions = []; + cert.publicKey = null; + cert.md = null; -/*65 - 43 = 22*/ -/*'A','B','C','D','E','F','G','H','I','J','K','L','M', */ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + /** + * Sets the subject of this certificate. + * + * @param attrs the array of subject attributes to use. + * @param uniqueId an optional a unique ID to use. + */ + cert.setSubject = function(attrs, uniqueId) { + // set new attributes, clear hash + _fillMissingFields(attrs); + cert.subject.attributes = attrs; + delete cert.subject.uniqueId; + if(uniqueId) { + // TODO: support arbitrary bit length ids + cert.subject.uniqueId = uniqueId; + } + cert.subject.hash = null; + }; -/*'N','O','P','Q','R','S','T','U','V','W','X','Y','Z' */ - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + /** + * Sets the issuer of this certificate. + * + * @param attrs the array of issuer attributes to use. + * @param uniqueId an optional a unique ID to use. + */ + cert.setIssuer = function(attrs, uniqueId) { + // set new attributes, clear hash + _fillMissingFields(attrs); + cert.issuer.attributes = attrs; + delete cert.issuer.uniqueId; + if(uniqueId) { + // TODO: support arbitrary bit length ids + cert.issuer.uniqueId = uniqueId; + } + cert.issuer.hash = null; + }; -/*91 - 43 = 48 */ -/*48, 49, 50, 51, 52, 53 */ - -1, -1, -1, -1, -1, -1, + /** + * Sets the extensions of this certificate. + * + * @param exts the array of extensions to use. + */ + cert.setExtensions = function(exts) { + for(var i = 0; i < exts.length; ++i) { + _fillMissingExtensionFields(exts[i], {cert: cert}); + } + // set new extensions + cert.extensions = exts; + }; -/*97 - 43 = 54*/ -/*'a','b','c','d','e','f','g','h','i','j','k','l','m' */ - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + /** + * Gets an extension by its name or id. + * + * @param options the name to use or an object with: + * name the name to use. + * id the id to use. + * + * @return the extension or null if not found. + */ + cert.getExtension = function(options) { + if(typeof options === 'string') { + options = {name: options}; + } -/*'n','o','p','q','r','s','t','u','v','w','x','y','z' */ - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 -]; + var rval = null; + var ext; + for(var i = 0; rval === null && i < cert.extensions.length; ++i) { + ext = cert.extensions[i]; + if(options.id && ext.id === options.id) { + rval = ext; + } else if(options.name && ext.name === options.name) { + rval = ext; + } + } + return rval; + }; -// base58 characters (Bitcoin alphabet) -var _base58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; + /** + * Signs this certificate using the given private key. + * + * @param key the private key to sign with. + * @param md the message digest object to use (defaults to forge.md.sha1). + */ + cert.sign = function(key, md) { + // TODO: get signature OID from private key + cert.md = md || forge.md.sha1.create(); + var algorithmOid = oids[cert.md.algorithm + 'WithRSAEncryption']; + if(!algorithmOid) { + var error = new Error('Could not compute certificate digest. ' + + 'Unknown message digest algorithm OID.'); + error.algorithm = cert.md.algorithm; + throw error; + } + cert.signatureOid = cert.siginfo.algorithmOid = algorithmOid; -/** - * Base64 encodes a 'binary' encoded string of bytes. - * - * @param input the binary encoded string of bytes to base64-encode. - * @param maxline the maximum number of encoded characters per line to use, - * defaults to none. - * - * @return the base64-encoded output. - */ -util.encode64 = function(input, maxline) { - // TODO: deprecate: "Deprecated. Use util.binary.base64.encode instead." - var line = ''; - var output = ''; - var chr1, chr2, chr3; - var i = 0; - while(i < input.length) { - chr1 = input.charCodeAt(i++); - chr2 = input.charCodeAt(i++); - chr3 = input.charCodeAt(i++); + // get TBSCertificate, convert to DER + cert.tbsCertificate = pki.getTBSCertificate(cert); + var bytes = asn1.toDer(cert.tbsCertificate); + + // digest and sign + cert.md.update(bytes.getBytes()); + cert.signature = key.sign(cert.md); + }; + + /** + * Attempts verify the signature on the passed certificate using this + * certificate's public key. + * + * @param child the certificate to verify. + * + * @return true if verified, false if not. + */ + cert.verify = function(child) { + var rval = false; + + if(!cert.issued(child)) { + var issuer = child.issuer; + var subject = cert.subject; + var error = new Error( + 'The parent certificate did not issue the given child ' + + 'certificate; the child certificate\'s issuer does not match the ' + + 'parent\'s subject.'); + error.expectedIssuer = subject.attributes; + error.actualIssuer = issuer.attributes; + throw error; + } + + var md = child.md; + if(md === null) { + // create digest for OID signature types + md = _createSignatureDigest({ + signatureOid: child.signatureOid, + type: 'certificate' + }); + + // produce DER formatted TBSCertificate and digest it + var tbsCertificate = child.tbsCertificate || pki.getTBSCertificate(child); + var bytes = asn1.toDer(tbsCertificate); + md.update(bytes.getBytes()); + } + + if(md !== null) { + rval = _verifySignature({ + certificate: cert, md: md, signature: child.signature + }); + } + + return rval; + }; + + /** + * Returns true if this certificate's issuer matches the passed + * certificate's subject. Note that no signature check is performed. + * + * @param parent the certificate to check. + * + * @return true if this certificate's issuer matches the passed certificate's + * subject. + */ + cert.isIssuer = function(parent) { + var rval = false; - // encode 4 character group - line += _base64.charAt(chr1 >> 2); - line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4)); - if(isNaN(chr2)) { - line += '=='; - } else { - line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6)); - line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63); - } + var i = cert.issuer; + var s = parent.subject; - if(maxline && line.length > maxline) { - output += line.substr(0, maxline) + '\r\n'; - line = line.substr(maxline); + // compare hashes if present + if(i.hash && s.hash) { + rval = (i.hash === s.hash); + } else if(i.attributes.length === s.attributes.length) { + // all attributes are the same so issuer matches subject + rval = true; + var iattr, sattr; + for(var n = 0; rval && n < i.attributes.length; ++n) { + iattr = i.attributes[n]; + sattr = s.attributes[n]; + if(iattr.type !== sattr.type || iattr.value !== sattr.value) { + // attribute mismatch + rval = false; + } + } } - } - output += line; - return output; -}; -/** - * Base64 decodes a string into a 'binary' encoded string of bytes. - * - * @param input the base64-encoded input. - * - * @return the binary encoded string. - */ -util.decode64 = function(input) { - // TODO: deprecate: "Deprecated. Use util.binary.base64.decode instead." + return rval; + }; - // remove all non-base64 characters - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); + /** + * Returns true if this certificate's subject matches the issuer of the + * given certificate). Note that not signature check is performed. + * + * @param child the certificate to check. + * + * @return true if this certificate's subject matches the passed + * certificate's issuer. + */ + cert.issued = function(child) { + return child.isIssuer(cert); + }; - var output = ''; - var enc1, enc2, enc3, enc4; - var i = 0; + /** + * Generates the subjectKeyIdentifier for this certificate as byte buffer. + * + * @return the subjectKeyIdentifier for this certificate as byte buffer. + */ + cert.generateSubjectKeyIdentifier = function() { + /* See: 4.2.1.2 section of the the RFC3280, keyIdentifier is either: - while(i < input.length) { - enc1 = _base64Idx[input.charCodeAt(i++) - 43]; - enc2 = _base64Idx[input.charCodeAt(i++) - 43]; - enc3 = _base64Idx[input.charCodeAt(i++) - 43]; - enc4 = _base64Idx[input.charCodeAt(i++) - 43]; + (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the + value of the BIT STRING subjectPublicKey (excluding the tag, + length, and number of unused bits). - output += String.fromCharCode((enc1 << 2) | (enc2 >> 4)); - if(enc3 !== 64) { - // decoded at least 2 bytes - output += String.fromCharCode(((enc2 & 15) << 4) | (enc3 >> 2)); - if(enc4 !== 64) { - // decoded 3 bytes - output += String.fromCharCode(((enc3 & 3) << 6) | enc4); + (2) The keyIdentifier is composed of a four bit type field with + the value 0100 followed by the least significant 60 bits of the + SHA-1 hash of the value of the BIT STRING subjectPublicKey + (excluding the tag, length, and number of unused bit string bits). + */ + + // skipping the tag, length, and number of unused bits is the same + // as just using the RSAPublicKey (for RSA keys, which are the + // only ones supported) + return pki.getPublicKeyFingerprint(cert.publicKey, {type: 'RSAPublicKey'}); + }; + + /** + * Verifies the subjectKeyIdentifier extension value for this certificate + * against its public key. If no extension is found, false will be + * returned. + * + * @return true if verified, false if not. + */ + cert.verifySubjectKeyIdentifier = function() { + var oid = oids['subjectKeyIdentifier']; + for(var i = 0; i < cert.extensions.length; ++i) { + var ext = cert.extensions[i]; + if(ext.id === oid) { + var ski = cert.generateSubjectKeyIdentifier().getBytes(); + return (forge.util.hexToBytes(ext.subjectKeyIdentifier) === ski); } } - } + return false; + }; - return output; + return cert; }; /** - * Encodes the given string of characters (a standard JavaScript - * string) as a binary encoded string where the bytes represent - * a UTF-8 encoded string of characters. Non-ASCII characters will be - * encoded as multiple bytes according to UTF-8. - * - * @param str a standard string of characters to encode. + * Converts an X.509v3 RSA certificate from an ASN.1 object. * - * @return the binary encoded string. - */ -util.encodeUtf8 = function(str) { - return unescape(encodeURIComponent(str)); -}; - -/** - * Decodes a binary encoded string that contains bytes that - * represent a UTF-8 encoded string of characters -- into a - * string of characters (a standard JavaScript string). + * Note: If the certificate is to be verified then compute hash should + * be set to true. There is currently no implementation for converting + * a certificate back to ASN.1 so the TBSCertificate part of the ASN.1 + * object needs to be scanned before the cert object is created. * - * @param str the binary encoded string to decode. + * @param obj the asn1 representation of an X.509v3 RSA certificate. + * @param computeHash true to compute the hash for verification. * - * @return the resulting standard string of characters. + * @return the certificate. */ -util.decodeUtf8 = function(str) { - return decodeURIComponent(escape(str)); -}; +pki.certificateFromAsn1 = function(obj, computeHash) { + // validate certificate and capture data + var capture = {}; + var errors = []; + if(!asn1.validate(obj, x509CertificateValidator, capture, errors)) { + var error = new Error('Cannot read X.509 certificate. ' + + 'ASN.1 object is not an X509v3 Certificate.'); + error.errors = errors; + throw error; + } -// binary encoding/decoding tools -// FIXME: Experimental. Do not use yet. -util.binary = { - raw: {}, - hex: {}, - base64: {}, - base58: {}, - baseN : { - encode: baseN.encode, - decode: baseN.decode + // get oid + var oid = asn1.derToOid(capture.publicKeyOid); + if(oid !== pki.oids.rsaEncryption) { + throw new Error('Cannot read public key. OID is not RSA.'); } -}; -/** - * Encodes a Uint8Array as a binary-encoded string. This encoding uses - * a value between 0 and 255 for each character. - * - * @param bytes the Uint8Array to encode. - * - * @return the binary-encoded string. - */ -util.binary.raw.encode = function(bytes) { - return String.fromCharCode.apply(null, bytes); -}; + // create certificate + var cert = pki.createCertificate(); + cert.version = capture.certVersion ? + capture.certVersion.charCodeAt(0) : 0; + var serial = forge.util.createBuffer(capture.certSerialNumber); + cert.serialNumber = serial.toHex(); + cert.signatureOid = forge.asn1.derToOid(capture.certSignatureOid); + cert.signatureParameters = _readSignatureParameters( + cert.signatureOid, capture.certSignatureParams, true); + cert.siginfo.algorithmOid = forge.asn1.derToOid(capture.certinfoSignatureOid); + cert.siginfo.parameters = _readSignatureParameters(cert.siginfo.algorithmOid, + capture.certinfoSignatureParams, false); + cert.signature = capture.certSignature; -/** - * Decodes a binary-encoded string to a Uint8Array. This encoding uses - * a value between 0 and 255 for each character. - * - * @param str the binary-encoded string to decode. - * @param [output] an optional Uint8Array to write the output to; if it - * is too small, an exception will be thrown. - * @param [offset] the start offset for writing to the output (default: 0). - * - * @return the Uint8Array or the number of bytes written if output was given. - */ -util.binary.raw.decode = function(str, output, offset) { - var out = output; - if(!out) { - out = new Uint8Array(str.length); + var validity = []; + if(capture.certValidity1UTCTime !== undefined) { + validity.push(asn1.utcTimeToDate(capture.certValidity1UTCTime)); } - offset = offset || 0; - var j = offset; - for(var i = 0; i < str.length; ++i) { - out[j++] = str.charCodeAt(i); + if(capture.certValidity2GeneralizedTime !== undefined) { + validity.push(asn1.generalizedTimeToDate( + capture.certValidity2GeneralizedTime)); } - return output ? (j - offset) : out; -}; - -/** - * Encodes a 'binary' string, ArrayBuffer, DataView, TypedArray, or - * ByteBuffer as a string of hexadecimal characters. - * - * @param bytes the bytes to convert. - * - * @return the string of hexadecimal characters. - */ -util.binary.hex.encode = util.bytesToHex; - -/** - * Decodes a hex-encoded string to a Uint8Array. - * - * @param hex the hexadecimal string to convert. - * @param [output] an optional Uint8Array to write the output to; if it - * is too small, an exception will be thrown. - * @param [offset] the start offset for writing to the output (default: 0). - * - * @return the Uint8Array or the number of bytes written if output was given. - */ -util.binary.hex.decode = function(hex, output, offset) { - var out = output; - if(!out) { - out = new Uint8Array(Math.ceil(hex.length / 2)); + if(capture.certValidity3UTCTime !== undefined) { + validity.push(asn1.utcTimeToDate(capture.certValidity3UTCTime)); } - offset = offset || 0; - var i = 0, j = offset; - if(hex.length & 1) { - // odd number of characters, convert first character alone - i = 1; - out[j++] = parseInt(hex[0], 16); + if(capture.certValidity4GeneralizedTime !== undefined) { + validity.push(asn1.generalizedTimeToDate( + capture.certValidity4GeneralizedTime)); } - // convert 2 characters (1 byte) at a time - for(; i < hex.length; i += 2) { - out[j++] = parseInt(hex.substr(i, 2), 16); + if(validity.length > 2) { + throw new Error('Cannot read notBefore/notAfter validity times; more ' + + 'than two times were provided in the certificate.'); } - return output ? (j - offset) : out; -}; + if(validity.length < 2) { + throw new Error('Cannot read notBefore/notAfter validity times; they ' + + 'were not provided as either UTCTime or GeneralizedTime.'); + } + cert.validity.notBefore = validity[0]; + cert.validity.notAfter = validity[1]; -/** - * Base64-encodes a Uint8Array. - * - * @param input the Uint8Array to encode. - * @param maxline the maximum number of encoded characters per line to use, - * defaults to none. - * - * @return the base64-encoded output string. - */ -util.binary.base64.encode = function(input, maxline) { - var line = ''; - var output = ''; - var chr1, chr2, chr3; - var i = 0; - while(i < input.byteLength) { - chr1 = input[i++]; - chr2 = input[i++]; - chr3 = input[i++]; + // keep TBSCertificate to preserve signature when exporting + cert.tbsCertificate = capture.tbsCertificate; - // encode 4 character group - line += _base64.charAt(chr1 >> 2); - line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4)); - if(isNaN(chr2)) { - line += '=='; - } else { - line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6)); - line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63); - } + if(computeHash) { + // create digest for OID signature type + cert.md = _createSignatureDigest({ + signatureOid: cert.signatureOid, + type: 'certificate' + }); - if(maxline && line.length > maxline) { - output += line.substr(0, maxline) + '\r\n'; - line = line.substr(maxline); - } + // produce DER formatted TBSCertificate and digest it + var bytes = asn1.toDer(cert.tbsCertificate); + cert.md.update(bytes.getBytes()); } - output += line; - return output; -}; -/** - * Decodes a base64-encoded string to a Uint8Array. - * - * @param input the base64-encoded input string. - * @param [output] an optional Uint8Array to write the output to; if it - * is too small, an exception will be thrown. - * @param [offset] the start offset for writing to the output (default: 0). - * - * @return the Uint8Array or the number of bytes written if output was given. - */ -util.binary.base64.decode = function(input, output, offset) { - var out = output; - if(!out) { - out = new Uint8Array(Math.ceil(input.length / 4) * 3); + // handle issuer, build issuer message digest + var imd = forge.md.sha1.create(); + var ibytes = asn1.toDer(capture.certIssuer); + imd.update(ibytes.getBytes()); + cert.issuer.getField = function(sn) { + return _getAttribute(cert.issuer, sn); + }; + cert.issuer.addField = function(attr) { + _fillMissingFields([attr]); + cert.issuer.attributes.push(attr); + }; + cert.issuer.attributes = pki.RDNAttributesAsArray(capture.certIssuer); + if(capture.certIssuerUniqueId) { + cert.issuer.uniqueId = capture.certIssuerUniqueId; } + cert.issuer.hash = imd.digest().toHex(); - // remove all non-base64 characters - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); - - offset = offset || 0; - var enc1, enc2, enc3, enc4; - var i = 0, j = offset; - - while(i < input.length) { - enc1 = _base64Idx[input.charCodeAt(i++) - 43]; - enc2 = _base64Idx[input.charCodeAt(i++) - 43]; - enc3 = _base64Idx[input.charCodeAt(i++) - 43]; - enc4 = _base64Idx[input.charCodeAt(i++) - 43]; - - out[j++] = (enc1 << 2) | (enc2 >> 4); - if(enc3 !== 64) { - // decoded at least 2 bytes - out[j++] = ((enc2 & 15) << 4) | (enc3 >> 2); - if(enc4 !== 64) { - // decoded 3 bytes - out[j++] = ((enc3 & 3) << 6) | enc4; - } - } + // handle subject, build subject message digest + var smd = forge.md.sha1.create(); + var sbytes = asn1.toDer(capture.certSubject); + smd.update(sbytes.getBytes()); + cert.subject.getField = function(sn) { + return _getAttribute(cert.subject, sn); + }; + cert.subject.addField = function(attr) { + _fillMissingFields([attr]); + cert.subject.attributes.push(attr); + }; + cert.subject.attributes = pki.RDNAttributesAsArray(capture.certSubject); + if(capture.certSubjectUniqueId) { + cert.subject.uniqueId = capture.certSubjectUniqueId; } + cert.subject.hash = smd.digest().toHex(); - // make sure result is the exact decoded length - return output ? (j - offset) : out.subarray(0, j); -}; + // handle extensions + if(capture.certExtensions) { + cert.extensions = pki.certificateExtensionsFromAsn1(capture.certExtensions); + } else { + cert.extensions = []; + } -// add support for base58 encoding/decoding with Bitcoin alphabet -util.binary.base58.encode = function(input, maxline) { - return util.binary.baseN.encode(input, _base58, maxline); -}; -util.binary.base58.decode = function(input, maxline) { - return util.binary.baseN.decode(input, _base58, maxline); -}; + // convert RSA public key from ASN.1 + cert.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo); -// text encoding/decoding tools -// FIXME: Experimental. Do not use yet. -util.text = { - utf8: {}, - utf16: {} + return cert; }; /** - * Encodes the given string as UTF-8 in a Uint8Array. - * - * @param str the string to encode. - * @param [output] an optional Uint8Array to write the output to; if it - * is too small, an exception will be thrown. - * @param [offset] the start offset for writing to the output (default: 0). + * Converts an ASN.1 extensions object (with extension sequences as its + * values) into an array of extension objects with types and values. * - * @return the Uint8Array or the number of bytes written if output was given. - */ -util.text.utf8.encode = function(str, output, offset) { - str = util.encodeUtf8(str); - var out = output; - if(!out) { - out = new Uint8Array(str.length); - } - offset = offset || 0; - var j = offset; - for(var i = 0; i < str.length; ++i) { - out[j++] = str.charCodeAt(i); - } - return output ? (j - offset) : out; -}; - -/** - * Decodes the UTF-8 contents from a Uint8Array. + * Supported extensions: * - * @param bytes the Uint8Array to decode. + * id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 } + * KeyUsage ::= BIT STRING { + * digitalSignature (0), + * nonRepudiation (1), + * keyEncipherment (2), + * dataEncipherment (3), + * keyAgreement (4), + * keyCertSign (5), + * cRLSign (6), + * encipherOnly (7), + * decipherOnly (8) + * } * - * @return the resulting string. - */ -util.text.utf8.decode = function(bytes) { - return util.decodeUtf8(String.fromCharCode.apply(null, bytes)); -}; - -/** - * Encodes the given string as UTF-16 in a Uint8Array. + * id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 } + * BasicConstraints ::= SEQUENCE { + * cA BOOLEAN DEFAULT FALSE, + * pathLenConstraint INTEGER (0..MAX) OPTIONAL + * } * - * @param str the string to encode. - * @param [output] an optional Uint8Array to write the output to; if it - * is too small, an exception will be thrown. - * @param [offset] the start offset for writing to the output (default: 0). + * subjectAltName EXTENSION ::= { + * SYNTAX GeneralNames + * IDENTIFIED BY id-ce-subjectAltName + * } * - * @return the Uint8Array or the number of bytes written if output was given. - */ -util.text.utf16.encode = function(str, output, offset) { - var out = output; - if(!out) { - out = new Uint8Array(str.length * 2); - } - var view = new Uint16Array(out.buffer); - offset = offset || 0; - var j = offset; - var k = offset; - for(var i = 0; i < str.length; ++i) { - view[k++] = str.charCodeAt(i); - j += 2; - } - return output ? (j - offset) : out; -}; - -/** - * Decodes the UTF-16 contents from a Uint8Array. + * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName * - * @param bytes the Uint8Array to decode. + * GeneralName ::= CHOICE { + * otherName [0] INSTANCE OF OTHER-NAME, + * rfc822Name [1] IA5String, + * dNSName [2] IA5String, + * x400Address [3] ORAddress, + * directoryName [4] Name, + * ediPartyName [5] EDIPartyName, + * uniformResourceIdentifier [6] IA5String, + * IPAddress [7] OCTET STRING, + * registeredID [8] OBJECT IDENTIFIER + * } * - * @return the resulting string. - */ -util.text.utf16.decode = function(bytes) { - return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer)); -}; - -/** - * Deflates the given data using a flash interface. + * OTHER-NAME ::= TYPE-IDENTIFIER * - * @param api the flash interface. - * @param bytes the data. - * @param raw true to return only raw deflate data, false to include zlib - * header and trailer. + * EDIPartyName ::= SEQUENCE { + * nameAssigner [0] DirectoryString {ub-name} OPTIONAL, + * partyName [1] DirectoryString {ub-name} + * } * - * @return the deflated data as a string. + * @param exts the extensions ASN.1 with extension sequences to parse. + * + * @return the array. */ -util.deflate = function(api, bytes, raw) { - bytes = util.decode64(api.deflate(util.encode64(bytes)).rval); - - // strip zlib header and trailer if necessary - if(raw) { - // zlib header is 2 bytes (CMF,FLG) where FLG indicates that - // there is a 4-byte DICT (alder-32) block before the data if - // its 5th bit is set - var start = 2; - var flg = bytes.charCodeAt(1); - if(flg & 0x20) { - start = 6; +pki.certificateExtensionsFromAsn1 = function(exts) { + var rval = []; + for(var i = 0; i < exts.value.length; ++i) { + // get extension sequence + var extseq = exts.value[i]; + for(var ei = 0; ei < extseq.value.length; ++ei) { + rval.push(pki.certificateExtensionFromAsn1(extseq.value[ei])); } - // zlib trailer is 4 bytes of adler-32 - bytes = bytes.substring(start, bytes.length - 4); } - return bytes; + return rval; }; /** - * Inflates the given data using a flash interface. - * - * @param api the flash interface. - * @param bytes the data. - * @param raw true if the incoming data has no zlib header or trailer and is - * raw DEFLATE data. + * Parses a single certificate extension from ASN.1. * - * @return the inflated data as a string, null on error. - */ -util.inflate = function(api, bytes, raw) { - // TODO: add zlib header and trailer if necessary/possible - var rval = api.inflate(util.encode64(bytes)).rval; - return (rval === null) ? null : util.decode64(rval); -}; - -/** - * Sets a storage object. + * @param ext the extension in ASN.1 format. * - * @param api the storage interface. - * @param id the storage ID to use. - * @param obj the storage object, null to remove. + * @return the parsed extension as an object. */ -var _setStorageObject = function(api, id, obj) { - if(!api) { - throw new Error('WebStorage not available.'); - } - - var rval; - if(obj === null) { - rval = api.removeItem(id); +pki.certificateExtensionFromAsn1 = function(ext) { + // an extension has: + // [0] extnID OBJECT IDENTIFIER + // [1] critical BOOLEAN DEFAULT FALSE + // [2] extnValue OCTET STRING + var e = {}; + e.id = asn1.derToOid(ext.value[0].value); + e.critical = false; + if(ext.value[1].type === asn1.Type.BOOLEAN) { + e.critical = (ext.value[1].value.charCodeAt(0) !== 0x00); + e.value = ext.value[2].value; } else { - // json-encode and base64-encode object - obj = util.encode64(JSON.stringify(obj)); - rval = api.setItem(id, obj); + e.value = ext.value[1].value; } + // if the oid is known, get its name + if(e.id in oids) { + e.name = oids[e.id]; - // handle potential flash error - if(typeof(rval) !== 'undefined' && rval.rval !== true) { - var error = new Error(rval.error.message); - error.id = rval.error.id; - error.name = rval.error.name; - throw error; + // handle key usage + if(e.name === 'keyUsage') { + // get value as BIT STRING + var ev = asn1.fromDer(e.value); + var b2 = 0x00; + var b3 = 0x00; + if(ev.value.length > 1) { + // skip first byte, just indicates unused bits which + // will be padded with 0s anyway + // get bytes with flag bits + b2 = ev.value.charCodeAt(1); + b3 = ev.value.length > 2 ? ev.value.charCodeAt(2) : 0; + } + // set flags + e.digitalSignature = (b2 & 0x80) === 0x80; + e.nonRepudiation = (b2 & 0x40) === 0x40; + e.keyEncipherment = (b2 & 0x20) === 0x20; + e.dataEncipherment = (b2 & 0x10) === 0x10; + e.keyAgreement = (b2 & 0x08) === 0x08; + e.keyCertSign = (b2 & 0x04) === 0x04; + e.cRLSign = (b2 & 0x02) === 0x02; + e.encipherOnly = (b2 & 0x01) === 0x01; + e.decipherOnly = (b3 & 0x80) === 0x80; + } else if(e.name === 'basicConstraints') { + // handle basic constraints + // get value as SEQUENCE + var ev = asn1.fromDer(e.value); + // get cA BOOLEAN flag (defaults to false) + if(ev.value.length > 0 && ev.value[0].type === asn1.Type.BOOLEAN) { + e.cA = (ev.value[0].value.charCodeAt(0) !== 0x00); + } else { + e.cA = false; + } + // get path length constraint + var value = null; + if(ev.value.length > 0 && ev.value[0].type === asn1.Type.INTEGER) { + value = ev.value[0].value; + } else if(ev.value.length > 1) { + value = ev.value[1].value; + } + if(value !== null) { + e.pathLenConstraint = asn1.derToInteger(value); + } + } else if(e.name === 'extKeyUsage') { + // handle extKeyUsage + // value is a SEQUENCE of OIDs + var ev = asn1.fromDer(e.value); + for(var vi = 0; vi < ev.value.length; ++vi) { + var oid = asn1.derToOid(ev.value[vi].value); + if(oid in oids) { + e[oids[oid]] = true; + } else { + e[oid] = true; + } + } + } else if(e.name === 'nsCertType') { + // handle nsCertType + // get value as BIT STRING + var ev = asn1.fromDer(e.value); + var b2 = 0x00; + if(ev.value.length > 1) { + // skip first byte, just indicates unused bits which + // will be padded with 0s anyway + // get bytes with flag bits + b2 = ev.value.charCodeAt(1); + } + // set flags + e.client = (b2 & 0x80) === 0x80; + e.server = (b2 & 0x40) === 0x40; + e.email = (b2 & 0x20) === 0x20; + e.objsign = (b2 & 0x10) === 0x10; + e.reserved = (b2 & 0x08) === 0x08; + e.sslCA = (b2 & 0x04) === 0x04; + e.emailCA = (b2 & 0x02) === 0x02; + e.objCA = (b2 & 0x01) === 0x01; + } else if( + e.name === 'subjectAltName' || + e.name === 'issuerAltName') { + // handle subjectAltName/issuerAltName + e.altNames = []; + + // ev is a SYNTAX SEQUENCE + var gn; + var ev = asn1.fromDer(e.value); + for(var n = 0; n < ev.value.length; ++n) { + // get GeneralName + gn = ev.value[n]; + + var altName = { + type: gn.type, + value: gn.value + }; + e.altNames.push(altName); + + // Note: Support for types 1,2,6,7,8 + switch(gn.type) { + // rfc822Name + case 1: + // dNSName + case 2: + // uniformResourceIdentifier (URI) + case 6: + break; + // IPAddress + case 7: + // convert to IPv4/IPv6 string representation + altName.ip = forge.util.bytesToIP(gn.value); + break; + // registeredID + case 8: + altName.oid = asn1.derToOid(gn.value); + break; + default: + // unsupported + } + } + } else if(e.name === 'subjectKeyIdentifier') { + // value is an OCTETSTRING w/the hash of the key-type specific + // public key structure (eg: RSAPublicKey) + var ev = asn1.fromDer(e.value); + e.subjectKeyIdentifier = forge.util.bytesToHex(ev.value); + } } + return e; }; /** - * Gets a storage object. + * Converts a PKCS#10 certification request (CSR) from an ASN.1 object. * - * @param api the storage interface. - * @param id the storage ID to use. + * Note: If the certification request is to be verified then compute hash + * should be set to true. There is currently no implementation for converting + * a certificate back to ASN.1 so the CertificationRequestInfo part of the + * ASN.1 object needs to be scanned before the csr object is created. * - * @return the storage object entry or null if none exists. + * @param obj the asn1 representation of a PKCS#10 certification request (CSR). + * @param computeHash true to compute the hash for verification. + * + * @return the certification request (CSR). */ -var _getStorageObject = function(api, id) { - if(!api) { - throw new Error('WebStorage not available.'); +pki.certificationRequestFromAsn1 = function(obj, computeHash) { + // validate certification request and capture data + var capture = {}; + var errors = []; + if(!asn1.validate(obj, certificationRequestValidator, capture, errors)) { + var error = new Error('Cannot read PKCS#10 certificate request. ' + + 'ASN.1 object is not a PKCS#10 CertificationRequest.'); + error.errors = errors; + throw error; } - // get the existing entry - var rval = api.getItem(id); + // get oid + var oid = asn1.derToOid(capture.publicKeyOid); + if(oid !== pki.oids.rsaEncryption) { + throw new Error('Cannot read public key. OID is not RSA.'); + } - /* Note: We check api.init because we can't do (api == localStorage) - on IE because of "Class doesn't support Automation" exception. Only - the flash api has an init method so this works too, but we need a - better solution in the future. */ + // create certification request + var csr = pki.createCertificationRequest(); + csr.version = capture.csrVersion ? capture.csrVersion.charCodeAt(0) : 0; + csr.signatureOid = forge.asn1.derToOid(capture.csrSignatureOid); + csr.signatureParameters = _readSignatureParameters( + csr.signatureOid, capture.csrSignatureParams, true); + csr.siginfo.algorithmOid = forge.asn1.derToOid(capture.csrSignatureOid); + csr.siginfo.parameters = _readSignatureParameters( + csr.siginfo.algorithmOid, capture.csrSignatureParams, false); + csr.signature = capture.csrSignature; - // flash returns item wrapped in an object, handle special case - if(api.init) { - if(rval.rval === null) { - if(rval.error) { - var error = new Error(rval.error.message); - error.id = rval.error.id; - error.name = rval.error.name; - throw error; - } - // no error, but also no item - rval = null; - } else { - rval = rval.rval; - } - } + // keep CertificationRequestInfo to preserve signature when exporting + csr.certificationRequestInfo = capture.certificationRequestInfo; - // handle decoding - if(rval !== null) { - // base64-decode and json-decode data - rval = JSON.parse(util.decode64(rval)); + if(computeHash) { + // create digest for OID signature type + csr.md = _createSignatureDigest({ + signatureOid: csr.signatureOid, + type: 'certification request' + }); + + // produce DER formatted CertificationRequestInfo and digest it + var bytes = asn1.toDer(csr.certificationRequestInfo); + csr.md.update(bytes.getBytes()); } - return rval; -}; + // handle subject, build subject message digest + var smd = forge.md.sha1.create(); + csr.subject.getField = function(sn) { + return _getAttribute(csr.subject, sn); + }; + csr.subject.addField = function(attr) { + _fillMissingFields([attr]); + csr.subject.attributes.push(attr); + }; + csr.subject.attributes = pki.RDNAttributesAsArray( + capture.certificationRequestInfoSubject, smd); + csr.subject.hash = smd.digest().toHex(); -/** - * Stores an item in local storage. - * - * @param api the storage interface. - * @param id the storage ID to use. - * @param key the key for the item. - * @param data the data for the item (any javascript object/primitive). - */ -var _setItem = function(api, id, key, data) { - // get storage object - var obj = _getStorageObject(api, id); - if(obj === null) { - // create a new storage object - obj = {}; - } - // update key - obj[key] = data; + // convert RSA public key from ASN.1 + csr.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo); - // set storage object - _setStorageObject(api, id, obj); + // convert attributes from ASN.1 + csr.getAttribute = function(sn) { + return _getAttribute(csr, sn); + }; + csr.addAttribute = function(attr) { + _fillMissingFields([attr]); + csr.attributes.push(attr); + }; + csr.attributes = pki.CRIAttributesAsArray( + capture.certificationRequestInfoAttributes || []); + + return csr; }; /** - * Gets an item from local storage. - * - * @param api the storage interface. - * @param id the storage ID to use. - * @param key the key for the item. + * Creates an empty certification request (a CSR or certificate signing + * request). Once created, its public key and attributes can be set and then + * it can be signed. * - * @return the item. + * @return the empty certification request. */ -var _getItem = function(api, id, key) { - // get storage object - var rval = _getStorageObject(api, id); - if(rval !== null) { - // return data at key - rval = (key in rval) ? rval[key] : null; - } +pki.createCertificationRequest = function() { + var csr = {}; + csr.version = 0x00; + csr.signatureOid = null; + csr.signature = null; + csr.siginfo = {}; + csr.siginfo.algorithmOid = null; - return rval; -}; + csr.subject = {}; + csr.subject.getField = function(sn) { + return _getAttribute(csr.subject, sn); + }; + csr.subject.addField = function(attr) { + _fillMissingFields([attr]); + csr.subject.attributes.push(attr); + }; + csr.subject.attributes = []; + csr.subject.hash = null; -/** - * Removes an item from local storage. - * - * @param api the storage interface. - * @param id the storage ID to use. - * @param key the key for the item. - */ -var _removeItem = function(api, id, key) { - // get storage object - var obj = _getStorageObject(api, id); - if(obj !== null && key in obj) { - // remove key - delete obj[key]; + csr.publicKey = null; + csr.attributes = []; + csr.getAttribute = function(sn) { + return _getAttribute(csr, sn); + }; + csr.addAttribute = function(attr) { + _fillMissingFields([attr]); + csr.attributes.push(attr); + }; + csr.md = null; - // see if entry has no keys remaining - var empty = true; - for(var prop in obj) { - empty = false; - break; - } - if(empty) { - // remove entry entirely if no keys are left - obj = null; - } + /** + * Sets the subject of this certification request. + * + * @param attrs the array of subject attributes to use. + */ + csr.setSubject = function(attrs) { + // set new attributes + _fillMissingFields(attrs); + csr.subject.attributes = attrs; + csr.subject.hash = null; + }; - // set storage object - _setStorageObject(api, id, obj); - } -}; + /** + * Sets the attributes of this certification request. + * + * @param attrs the array of attributes to use. + */ + csr.setAttributes = function(attrs) { + // set new attributes + _fillMissingFields(attrs); + csr.attributes = attrs; + }; -/** - * Clears the local disk storage identified by the given ID. - * - * @param api the storage interface. - * @param id the storage ID to use. - */ -var _clearItems = function(api, id) { - _setStorageObject(api, id, null); -}; + /** + * Signs this certification request using the given private key. + * + * @param key the private key to sign with. + * @param md the message digest object to use (defaults to forge.md.sha1). + */ + csr.sign = function(key, md) { + // TODO: get signature OID from private key + csr.md = md || forge.md.sha1.create(); + var algorithmOid = oids[csr.md.algorithm + 'WithRSAEncryption']; + if(!algorithmOid) { + var error = new Error('Could not compute certification request digest. ' + + 'Unknown message digest algorithm OID.'); + error.algorithm = csr.md.algorithm; + throw error; + } + csr.signatureOid = csr.siginfo.algorithmOid = algorithmOid; -/** - * Calls a storage function. - * - * @param func the function to call. - * @param args the arguments for the function. - * @param location the location argument. - * - * @return the return value from the function. - */ -var _callStorageFunction = function(func, args, location) { - var rval = null; + // get CertificationRequestInfo, convert to DER + csr.certificationRequestInfo = pki.getCertificationRequestInfo(csr); + var bytes = asn1.toDer(csr.certificationRequestInfo); - // default storage types - if(typeof(location) === 'undefined') { - location = ['web', 'flash']; - } + // digest and sign + csr.md.update(bytes.getBytes()); + csr.signature = key.sign(csr.md); + }; - // apply storage types in order of preference - var type; - var done = false; - var exception = null; - for(var idx in location) { - type = location[idx]; - try { - if(type === 'flash' || type === 'both') { - if(args[0] === null) { - throw new Error('Flash local storage not available.'); - } - rval = func.apply(this, args); - done = (type === 'flash'); - } - if(type === 'web' || type === 'both') { - args[0] = localStorage; - rval = func.apply(this, args); - done = true; - } - } catch(ex) { - exception = ex; + /** + * Attempts verify the signature on the passed certification request using + * its public key. + * + * A CSR that has been exported to a file in PEM format can be verified using + * OpenSSL using this command: + * + * openssl req -in -verify -noout -text + * + * @return true if verified, false if not. + */ + csr.verify = function() { + var rval = false; + + var md = csr.md; + if(md === null) { + md = _createSignatureDigest({ + signatureOid: csr.signatureOid, + type: 'certification request' + }); + + // produce DER formatted CertificationRequestInfo and digest it + var cri = csr.certificationRequestInfo || + pki.getCertificationRequestInfo(csr); + var bytes = asn1.toDer(cri); + md.update(bytes.getBytes()); } - if(done) { - break; + + if(md !== null) { + rval = _verifySignature({ + certificate: csr, md: md, signature: csr.signature + }); } - } - if(!done) { - throw exception; - } + return rval; + }; - return rval; + return csr; }; /** - * Stores an item on local disk. - * - * The available types of local storage include 'flash', 'web', and 'both'. - * - * The type 'flash' refers to flash local storage (SharedObject). In order - * to use flash local storage, the 'api' parameter must be valid. The type - * 'web' refers to WebStorage, if supported by the browser. The type 'both' - * refers to storing using both 'flash' and 'web', not just one or the - * other. - * - * The location array should list the storage types to use in order of - * preference: - * - * ['flash']: flash only storage - * ['web']: web only storage - * ['both']: try to store in both - * ['flash','web']: store in flash first, but if not available, 'web' - * ['web','flash']: store in web first, but if not available, 'flash' + * Converts an X.509 subject or issuer to an ASN.1 RDNSequence. * - * The location array defaults to: ['web', 'flash'] + * @param obj the subject or issuer (distinguished name). * - * @param api the flash interface, null to use only WebStorage. - * @param id the storage ID to use. - * @param key the key for the item. - * @param data the data for the item (any javascript object/primitive). - * @param location an array with the preferred types of storage to use. + * @return the ASN.1 RDNSequence. */ -util.setItem = function(api, id, key, data, location) { - _callStorageFunction(_setItem, arguments, location); -}; +function _dnToAsn1(obj) { + // create an empty RDNSequence + var rval = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); -/** - * Gets an item on local disk. - * - * Set setItem() for details on storage types. - * - * @param api the flash interface, null to use only WebStorage. - * @param id the storage ID to use. - * @param key the key for the item. - * @param location an array with the preferred types of storage to use. - * - * @return the item. - */ -util.getItem = function(api, id, key, location) { - return _callStorageFunction(_getItem, arguments, location); -}; + // iterate over attributes + var attr, set; + var attrs = obj.attributes; + for(var i = 0; i < attrs.length; ++i) { + attr = attrs[i]; + var value = attr.value; -/** - * Removes an item on local disk. - * - * Set setItem() for details on storage types. - * - * @param api the flash interface. - * @param id the storage ID to use. - * @param key the key for the item. - * @param location an array with the preferred types of storage to use. - */ -util.removeItem = function(api, id, key, location) { - _callStorageFunction(_removeItem, arguments, location); -}; + // reuse tag class for attribute value if available + var valueTagClass = asn1.Type.PRINTABLESTRING; + if('valueTagClass' in attr) { + valueTagClass = attr.valueTagClass; -/** - * Clears the local disk storage identified by the given ID. - * - * Set setItem() for details on storage types. - * - * @param api the flash interface if flash is available. - * @param id the storage ID to use. - * @param location an array with the preferred types of storage to use. - */ -util.clearItems = function(api, id, location) { - _callStorageFunction(_clearItems, arguments, location); -}; + if(valueTagClass === asn1.Type.UTF8) { + value = forge.util.encodeUtf8(value); + } + // FIXME: handle more encodings + } + + // create a RelativeDistinguishedName set + // each value in the set is an AttributeTypeAndValue first + // containing the type (an OID) and second the value + set = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // AttributeType + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(attr.type).getBytes()), + // AttributeValue + asn1.create(asn1.Class.UNIVERSAL, valueTagClass, false, value) + ]) + ]); + rval.value.push(set); + } + + return rval; +} /** - * Check if an object is empty. + * Gets all printable attributes (typically of an issuer or subject) in a + * simplified JSON format for display. * - * Taken from: - * http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object-from-json/679937#679937 + * @param attrs the attributes. * - * @param object the object to check. + * @return the JSON for display. */ -util.isEmpty = function(obj) { - for(var prop in obj) { - if(obj.hasOwnProperty(prop)) { - return false; +function _getAttributesAsJson(attrs) { + var rval = {}; + for(var i = 0; i < attrs.length; ++i) { + var attr = attrs[i]; + if(attr.shortName && ( + attr.valueTagClass === asn1.Type.UTF8 || + attr.valueTagClass === asn1.Type.PRINTABLESTRING || + attr.valueTagClass === asn1.Type.IA5STRING)) { + var value = attr.value; + if(attr.valueTagClass === asn1.Type.UTF8) { + value = forge.util.encodeUtf8(attr.value); + } + if(!(attr.shortName in rval)) { + rval[attr.shortName] = value; + } else if(forge.util.isArray(rval[attr.shortName])) { + rval[attr.shortName].push(value); + } else { + rval[attr.shortName] = [rval[attr.shortName], value]; + } } } - return true; -}; + return rval; +} /** - * Format with simple printf-style interpolation. - * - * %%: literal '%' - * %s,%o: convert next argument into a string. + * Fills in missing fields in attributes. * - * @param format the string to format. - * @param ... arguments to interpolate into the format string. + * @param attrs the attributes to fill missing fields in. */ -util.format = function(format) { - var re = /%./g; - // current match - var match; - // current part - var part; - // current arg index - var argi = 0; - // collected parts to recombine later - var parts = []; - // last index found - var last = 0; - // loop while matches remain - while((match = re.exec(format))) { - part = format.substring(last, re.lastIndex - 2); - // don't add empty strings (ie, parts between %s%s) - if(part.length > 0) { - parts.push(part); +function _fillMissingFields(attrs) { + var attr; + for(var i = 0; i < attrs.length; ++i) { + attr = attrs[i]; + + // populate missing name + if(typeof attr.name === 'undefined') { + if(attr.type && attr.type in pki.oids) { + attr.name = pki.oids[attr.type]; + } else if(attr.shortName && attr.shortName in _shortNames) { + attr.name = pki.oids[_shortNames[attr.shortName]]; + } } - last = re.lastIndex; - // switch on % code - var code = match[0][1]; - switch(code) { - case 's': - case 'o': - // check if enough arguments were given - if(argi < arguments.length) { - parts.push(arguments[argi++ + 1]); + + // populate missing type (OID) + if(typeof attr.type === 'undefined') { + if(attr.name && attr.name in pki.oids) { + attr.type = pki.oids[attr.name]; } else { - parts.push(''); + var error = new Error('Attribute type not specified.'); + error.attribute = attr; + throw error; + } + } + + // populate missing shortname + if(typeof attr.shortName === 'undefined') { + if(attr.name && attr.name in _shortNames) { + attr.shortName = _shortNames[attr.name]; + } + } + + // convert extensions to value + if(attr.type === oids.extensionRequest) { + attr.valueConstructed = true; + attr.valueTagClass = asn1.Type.SEQUENCE; + if(!attr.value && attr.extensions) { + attr.value = []; + for(var ei = 0; ei < attr.extensions.length; ++ei) { + attr.value.push(pki.certificateExtensionToAsn1( + _fillMissingExtensionFields(attr.extensions[ei]))); + } } - break; - // FIXME: do proper formating for numbers, etc - //case 'f': - //case 'd': - case '%': - parts.push('%'); - break; - default: - parts.push('<%' + code + '?>'); + } + + if(typeof attr.value === 'undefined') { + var error = new Error('Attribute value not specified.'); + error.attribute = attr; + throw error; } } - // add trailing part of format string - parts.push(format.substring(last)); - return parts.join(''); -}; +} /** - * Formats a number. + * Fills in missing fields in certificate extensions. * - * http://snipplr.com/view/5945/javascript-numberformat--ported-from-php/ + * @param e the extension. + * @param [options] the options to use. + * [cert] the certificate the extensions are for. + * + * @return the extension. */ -util.formatNumber = function(number, decimals, dec_point, thousands_sep) { - // http://kevin.vanzonneveld.net - // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) - // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // + bugfix by: Michael White (http://crestidg.com) - // + bugfix by: Benjamin Lupton - // + bugfix by: Allan Jensen (http://www.winternet.no) - // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com) - // * example 1: number_format(1234.5678, 2, '.', ''); - // * returns 1: 1234.57 +function _fillMissingExtensionFields(e, options) { + options = options || {}; - var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals; - var d = dec_point === undefined ? ',' : dec_point; - var t = thousands_sep === undefined ? - '.' : thousands_sep, s = n < 0 ? '-' : ''; - var i = parseInt((n = Math.abs(+n || 0).toFixed(c)), 10) + ''; - var j = (i.length > 3) ? i.length % 3 : 0; - return s + (j ? i.substr(0, j) + t : '') + - i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + t) + - (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ''); -}; + // populate missing name + if(typeof e.name === 'undefined') { + if(e.id && e.id in pki.oids) { + e.name = pki.oids[e.id]; + } + } -/** - * Formats a byte size. - * - * http://snipplr.com/view/5949/format-humanize-file-byte-size-presentation-in-javascript/ - */ -util.formatSize = function(size) { - if(size >= 1073741824) { - size = util.formatNumber(size / 1073741824, 2, '.', '') + ' GiB'; - } else if(size >= 1048576) { - size = util.formatNumber(size / 1048576, 2, '.', '') + ' MiB'; - } else if(size >= 1024) { - size = util.formatNumber(size / 1024, 0) + ' KiB'; - } else { - size = util.formatNumber(size, 0) + ' bytes'; + // populate missing id + if(typeof e.id === 'undefined') { + if(e.name && e.name in pki.oids) { + e.id = pki.oids[e.name]; + } else { + var error = new Error('Extension ID not specified.'); + error.extension = e; + throw error; + } } - return size; -}; -/** - * Converts an IPv4 or IPv6 string representation into bytes (in network order). - * - * @param ip the IPv4 or IPv6 address to convert. - * - * @return the 4-byte IPv6 or 16-byte IPv6 address or null if the address can't - * be parsed. - */ -util.bytesFromIP = function(ip) { - if(ip.indexOf('.') !== -1) { - return util.bytesFromIPv4(ip); - } - if(ip.indexOf(':') !== -1) { - return util.bytesFromIPv6(ip); - } - return null; -}; + if(typeof e.value !== 'undefined') { + return e; + } + + // handle missing value: + + // value is a BIT STRING + if(e.name === 'keyUsage') { + // build flags + var unused = 0; + var b2 = 0x00; + var b3 = 0x00; + if(e.digitalSignature) { + b2 |= 0x80; + unused = 7; + } + if(e.nonRepudiation) { + b2 |= 0x40; + unused = 6; + } + if(e.keyEncipherment) { + b2 |= 0x20; + unused = 5; + } + if(e.dataEncipherment) { + b2 |= 0x10; + unused = 4; + } + if(e.keyAgreement) { + b2 |= 0x08; + unused = 3; + } + if(e.keyCertSign) { + b2 |= 0x04; + unused = 2; + } + if(e.cRLSign) { + b2 |= 0x02; + unused = 1; + } + if(e.encipherOnly) { + b2 |= 0x01; + unused = 0; + } + if(e.decipherOnly) { + b3 |= 0x80; + unused = 7; + } + + // create bit string + var value = String.fromCharCode(unused); + if(b3 !== 0) { + value += String.fromCharCode(b2) + String.fromCharCode(b3); + } else if(b2 !== 0) { + value += String.fromCharCode(b2); + } + e.value = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value); + } else if(e.name === 'basicConstraints') { + // basicConstraints is a SEQUENCE + e.value = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + // cA BOOLEAN flag defaults to false + if(e.cA) { + e.value.value.push(asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false, + String.fromCharCode(0xFF))); + } + if('pathLenConstraint' in e) { + e.value.value.push(asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, + asn1.integerToDer(e.pathLenConstraint).getBytes())); + } + } else if(e.name === 'extKeyUsage') { + // extKeyUsage is a SEQUENCE of OIDs + e.value = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var seq = e.value.value; + for(var key in e) { + if(e[key] !== true) { + continue; + } + // key is name in OID map + if(key in oids) { + seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, + false, asn1.oidToDer(oids[key]).getBytes())); + } else if(key.indexOf('.') !== -1) { + // assume key is an OID + seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, + false, asn1.oidToDer(key).getBytes())); + } + } + } else if(e.name === 'nsCertType') { + // nsCertType is a BIT STRING + // build flags + var unused = 0; + var b2 = 0x00; + + if(e.client) { + b2 |= 0x80; + unused = 7; + } + if(e.server) { + b2 |= 0x40; + unused = 6; + } + if(e.email) { + b2 |= 0x20; + unused = 5; + } + if(e.objsign) { + b2 |= 0x10; + unused = 4; + } + if(e.reserved) { + b2 |= 0x08; + unused = 3; + } + if(e.sslCA) { + b2 |= 0x04; + unused = 2; + } + if(e.emailCA) { + b2 |= 0x02; + unused = 1; + } + if(e.objCA) { + b2 |= 0x01; + unused = 0; + } + + // create bit string + var value = String.fromCharCode(unused); + if(b2 !== 0) { + value += String.fromCharCode(b2); + } + e.value = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value); + } else if(e.name === 'subjectAltName' || e.name === 'issuerAltName') { + // SYNTAX SEQUENCE + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + + var altName; + for(var n = 0; n < e.altNames.length; ++n) { + altName = e.altNames[n]; + var value = altName.value; + // handle IP + if(altName.type === 7 && altName.ip) { + value = forge.util.bytesFromIP(altName.ip); + if(value === null) { + var error = new Error( + 'Extension "ip" value is not a valid IPv4 or IPv6 address.'); + error.extension = e; + throw error; + } + } else if(altName.type === 8) { + // handle OID + if(altName.oid) { + value = asn1.oidToDer(asn1.oidToDer(altName.oid)); + } else { + // deprecated ... convert value to OID + value = asn1.oidToDer(value); + } + } + e.value.value.push(asn1.create( + asn1.Class.CONTEXT_SPECIFIC, altName.type, false, + value)); + } + } else if(e.name === 'nsComment' && options.cert) { + // sanity check value is ASCII (req'd) and not too big + if(!(/^[\x00-\x7F]*$/.test(e.comment)) || + (e.comment.length < 1) || (e.comment.length > 128)) { + throw new Error('Invalid "nsComment" content.'); + } + // IA5STRING opaque comment + e.value = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.IA5STRING, false, e.comment); + } else if(e.name === 'subjectKeyIdentifier' && options.cert) { + var ski = options.cert.generateSubjectKeyIdentifier(); + e.subjectKeyIdentifier = ski.toHex(); + // OCTETSTRING w/digest + e.value = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ski.getBytes()); + } else if(e.name === 'authorityKeyIdentifier' && options.cert) { + // SYNTAX SEQUENCE + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var seq = e.value.value; + + if(e.keyIdentifier) { + var keyIdentifier = (e.keyIdentifier === true ? + options.cert.generateSubjectKeyIdentifier().getBytes() : + e.keyIdentifier); + seq.push( + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, false, keyIdentifier)); + } -/** - * Converts an IPv4 string representation into bytes (in network order). - * - * @param ip the IPv4 address to convert. - * - * @return the 4-byte address or null if the address can't be parsed. - */ -util.bytesFromIPv4 = function(ip) { - ip = ip.split('.'); - if(ip.length !== 4) { - return null; - } - var b = util.createBuffer(); - for(var i = 0; i < ip.length; ++i) { - var num = parseInt(ip[i], 10); - if(isNaN(num)) { - return null; + if(e.authorityCertIssuer) { + var authorityCertIssuer = [ + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 4, true, [ + _dnToAsn1(e.authorityCertIssuer === true ? + options.cert.issuer : e.authorityCertIssuer) + ]) + ]; + seq.push( + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, authorityCertIssuer)); } - b.putByte(num); - } - return b.getBytes(); -}; -/** - * Converts an IPv6 string representation into bytes (in network order). - * - * @param ip the IPv6 address to convert. - * - * @return the 16-byte address or null if the address can't be parsed. - */ -util.bytesFromIPv6 = function(ip) { - var blanks = 0; - ip = ip.split(':').filter(function(e) { - if(e.length === 0) ++blanks; - return true; - }); - var zeros = (8 - ip.length + blanks) * 2; - var b = util.createBuffer(); - for(var i = 0; i < 8; ++i) { - if(!ip[i] || ip[i].length === 0) { - b.fillWithByte(0, zeros); - zeros = 0; - continue; + if(e.serialNumber) { + var serialNumber = forge.util.hexToBytes(e.serialNumber === true ? + options.cert.serialNumber : e.serialNumber); + seq.push( + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, false, serialNumber)); } - var bytes = util.hexToBytes(ip[i]); - if(bytes.length < 2) { - b.putByte(0); + } else if(e.name === 'cRLDistributionPoints') { + e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + var seq = e.value.value; + + // Create sub SEQUENCE of DistributionPointName + var subSeq = asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + + // Create fullName CHOICE + var fullNameGeneralNames = asn1.create( + asn1.Class.CONTEXT_SPECIFIC, 0, true, []); + var altName; + for(var n = 0; n < e.altNames.length; ++n) { + altName = e.altNames[n]; + var value = altName.value; + // handle IP + if(altName.type === 7 && altName.ip) { + value = forge.util.bytesFromIP(altName.ip); + if(value === null) { + var error = new Error( + 'Extension "ip" value is not a valid IPv4 or IPv6 address.'); + error.extension = e; + throw error; + } + } else if(altName.type === 8) { + // handle OID + if(altName.oid) { + value = asn1.oidToDer(asn1.oidToDer(altName.oid)); + } else { + // deprecated ... convert value to OID + value = asn1.oidToDer(value); + } + } + fullNameGeneralNames.value.push(asn1.create( + asn1.Class.CONTEXT_SPECIFIC, altName.type, false, + value)); } - b.putBytes(bytes); - } - return b.getBytes(); -}; -/** - * Converts 4-bytes into an IPv4 string representation or 16-bytes into - * an IPv6 string representation. The bytes must be in network order. - * - * @param bytes the bytes to convert. - * - * @return the IPv4 or IPv6 string representation if 4 or 16 bytes, - * respectively, are given, otherwise null. - */ -util.bytesToIP = function(bytes) { - if(bytes.length === 4) { - return util.bytesToIPv4(bytes); - } - if(bytes.length === 16) { - return util.bytesToIPv6(bytes); + // Add to the parent SEQUENCE + subSeq.value.push(asn1.create( + asn1.Class.CONTEXT_SPECIFIC, 0, true, [fullNameGeneralNames])); + seq.push(subSeq); } - return null; -}; -/** - * Converts 4-bytes into an IPv4 string representation. The bytes must be - * in network order. - * - * @param bytes the bytes to convert. - * - * @return the IPv4 string representation or null for an invalid # of bytes. - */ -util.bytesToIPv4 = function(bytes) { - if(bytes.length !== 4) { - return null; - } - var ip = []; - for(var i = 0; i < bytes.length; ++i) { - ip.push(bytes.charCodeAt(i)); + // ensure value has been defined by now + if(typeof e.value === 'undefined') { + var error = new Error('Extension value not specified.'); + error.extension = e; + throw error; } - return ip.join('.'); -}; + + return e; +} /** - * Converts 16-bytes into an IPv16 string representation. The bytes must be - * in network order. - * - * @param bytes the bytes to convert. + * Convert signature parameters object to ASN.1 * - * @return the IPv16 string representation or null for an invalid # of bytes. + * @param {String} oid Signature algorithm OID + * @param params The signature parametrs object + * @return ASN.1 object representing signature parameters */ -util.bytesToIPv6 = function(bytes) { - if(bytes.length !== 16) { - return null; - } - var ip = []; - var zeroGroups = []; - var zeroMaxGroup = 0; - for(var i = 0; i < bytes.length; i += 2) { - var hex = util.bytesToHex(bytes[i] + bytes[i + 1]); - // canonicalize zero representation - while(hex[0] === '0' && hex !== '0') { - hex = hex.substr(1); - } - if(hex === '0') { - var last = zeroGroups[zeroGroups.length - 1]; - var idx = ip.length; - if(!last || idx !== last.end + 1) { - zeroGroups.push({start: idx, end: idx}); - } else { - last.end = idx; - if((last.end - last.start) > - (zeroGroups[zeroMaxGroup].end - zeroGroups[zeroMaxGroup].start)) { - zeroMaxGroup = zeroGroups.length - 1; - } +function _signatureParametersToAsn1(oid, params) { + switch(oid) { + case oids['RSASSA-PSS']: + var parts = []; + + if(params.hash.algorithmOid !== undefined) { + parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(params.hash.algorithmOid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '') + ]) + ])); } - } - ip.push(hex); - } - if(zeroGroups.length > 0) { - var group = zeroGroups[zeroMaxGroup]; - // only shorten group of length > 0 - if(group.end - group.start > 0) { - ip.splice(group.start, group.end - group.start + 1, ''); - if(group.start === 0) { - ip.unshift(''); + + if(params.mgf.algorithmOid !== undefined) { + parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(params.mgf.algorithmOid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(params.mgf.hash.algorithmOid).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '') + ]) + ]) + ])); } - if(group.end === 7) { - ip.push(''); + + if(params.saltLength !== undefined) { + parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, + asn1.integerToDer(params.saltLength).getBytes()) + ])); } - } + + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, parts); + + default: + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, ''); } - return ip.join(':'); -}; +} /** - * Estimates the number of processes that can be run concurrently. If - * creating Web Workers, keep in mind that the main JavaScript process needs - * its own core. + * Converts a certification request's attributes to an ASN.1 set of + * CRIAttributes. * - * @param options the options to use: - * update true to force an update (not use the cached value). - * @param callback(err, max) called once the operation completes. + * @param csr certification request. + * + * @return the ASN.1 set of CRIAttributes. */ -util.estimateCores = function(options, callback) { - if(typeof options === 'function') { - callback = options; - options = {}; - } - options = options || {}; - if('cores' in util && !options.update) { - return callback(null, util.cores); - } - if(typeof navigator !== 'undefined' && - 'hardwareConcurrency' in navigator && - navigator.hardwareConcurrency > 0) { - util.cores = navigator.hardwareConcurrency; - return callback(null, util.cores); - } - if(typeof Worker === 'undefined') { - // workers not available - util.cores = 1; - return callback(null, util.cores); - } - if(typeof Blob === 'undefined') { - // can't estimate, default to 2 - util.cores = 2; - return callback(null, util.cores); - } +function _CRIAttributesToAsn1(csr) { + // create an empty context-specific container + var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []); - // create worker concurrency estimation code as blob - var blobUrl = URL.createObjectURL(new Blob(['(', - function() { - self.addEventListener('message', function(e) { - // run worker for 4 ms - var st = Date.now(); - var et = st + 4; - while(Date.now() < et); - self.postMessage({st: st, et: et}); - }); - }.toString(), - ')()'], {type: 'application/javascript'})); + // no attributes, return empty container + if(csr.attributes.length === 0) { + return rval; + } - // take 5 samples using 16 workers - sample([], 5, 16); + // each attribute has a sequence with a type and a set of values + var attrs = csr.attributes; + for(var i = 0; i < attrs.length; ++i) { + var attr = attrs[i]; + var value = attr.value; - function sample(max, samples, numWorkers) { - if(samples === 0) { - // get overlap average - var avg = Math.floor(max.reduce(function(avg, x) { - return avg + x; - }, 0) / max.length); - util.cores = Math.max(1, avg); - URL.revokeObjectURL(blobUrl); - return callback(null, util.cores); + // reuse tag class for attribute value if available + var valueTagClass = asn1.Type.UTF8; + if('valueTagClass' in attr) { + valueTagClass = attr.valueTagClass; } - map(numWorkers, function(err, results) { - max.push(reduce(numWorkers, results)); - sample(max, samples - 1, numWorkers); - }); - } - - function map(numWorkers, callback) { - var workers = []; - var results = []; - for(var i = 0; i < numWorkers; ++i) { - var worker = new Worker(blobUrl); - worker.addEventListener('message', function(e) { - results.push(e.data); - if(results.length === numWorkers) { - for(var i = 0; i < numWorkers; ++i) { - workers[i].terminate(); - } - callback(null, results); - } - }); - workers.push(worker); + if(valueTagClass === asn1.Type.UTF8) { + value = forge.util.encodeUtf8(value); } - for(var i = 0; i < numWorkers; ++i) { - workers[i].postMessage(i); + var valueConstructed = false; + if('valueConstructed' in attr) { + valueConstructed = attr.valueConstructed; } - } + // FIXME: handle more encodings - function reduce(numWorkers, results) { - // find overlapping time windows - var overlaps = []; - for(var n = 0; n < numWorkers; ++n) { - var r1 = results[n]; - var overlap = overlaps[n] = []; - for(var i = 0; i < numWorkers; ++i) { - if(n === i) { - continue; - } - var r2 = results[i]; - if((r1.st > r2.st && r1.st < r2.et) || - (r2.st > r1.st && r2.st < r1.et)) { - overlap.push(i); - } - } - } - // get maximum overlaps ... don't include overlapping worker itself - // as the main JS process was also being scheduled during the work and - // would have to be subtracted from the estimate anyway - return overlaps.reduce(function(max, overlap) { - return Math.max(max, overlap.length); - }, 0); + // create a RelativeDistinguishedName set + // each value in the set is an AttributeTypeAndValue first + // containing the type (an OID) and second the value + var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // AttributeType + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(attr.type).getBytes()), + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ + // AttributeValue + asn1.create( + asn1.Class.UNIVERSAL, valueTagClass, valueConstructed, value) + ]) + ]); + rval.value.push(seq); } -}; - -/***/ }), + return rval; +} -/***/ 8180: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +var jan_1_1950 = new Date('1950-01-01T00:00:00Z'); +var jan_1_2050 = new Date('2050-01-01T00:00:00Z'); /** - * Javascript implementation of X.509 and related components (such as - * Certification Signing Requests) of a Public Key Infrastructure. - * - * @author Dave Longley - * - * Copyright (c) 2010-2014 Digital Bazaar, Inc. - * - * The ASN.1 representation of an X.509v3 certificate is as follows - * (see RFC 2459): - * - * Certificate ::= SEQUENCE { - * tbsCertificate TBSCertificate, - * signatureAlgorithm AlgorithmIdentifier, - * signatureValue BIT STRING - * } - * - * TBSCertificate ::= SEQUENCE { - * version [0] EXPLICIT Version DEFAULT v1, - * serialNumber CertificateSerialNumber, - * signature AlgorithmIdentifier, - * issuer Name, - * validity Validity, - * subject Name, - * subjectPublicKeyInfo SubjectPublicKeyInfo, - * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, - * -- If present, version shall be v2 or v3 - * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, - * -- If present, version shall be v2 or v3 - * extensions [3] EXPLICIT Extensions OPTIONAL - * -- If present, version shall be v3 - * } - * - * Version ::= INTEGER { v1(0), v2(1), v3(2) } - * - * CertificateSerialNumber ::= INTEGER - * - * Name ::= CHOICE { - * // only one possible choice for now - * RDNSequence - * } - * - * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName - * - * RelativeDistinguishedName ::= SET OF AttributeTypeAndValue - * - * AttributeTypeAndValue ::= SEQUENCE { - * type AttributeType, - * value AttributeValue - * } - * AttributeType ::= OBJECT IDENTIFIER - * AttributeValue ::= ANY DEFINED BY AttributeType - * - * Validity ::= SEQUENCE { - * notBefore Time, - * notAfter Time - * } - * - * Time ::= CHOICE { - * utcTime UTCTime, - * generalTime GeneralizedTime - * } - * - * UniqueIdentifier ::= BIT STRING - * - * SubjectPublicKeyInfo ::= SEQUENCE { - * algorithm AlgorithmIdentifier, - * subjectPublicKey BIT STRING - * } - * - * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension - * - * Extension ::= SEQUENCE { - * extnID OBJECT IDENTIFIER, - * critical BOOLEAN DEFAULT FALSE, - * extnValue OCTET STRING - * } - * - * The only key algorithm currently supported for PKI is RSA. - * - * RSASSA-PSS signatures are described in RFC 3447 and RFC 4055. - * - * PKCS#10 v1.7 describes certificate signing requests: - * - * CertificationRequestInfo: - * - * CertificationRequestInfo ::= SEQUENCE { - * version INTEGER { v1(0) } (v1,...), - * subject Name, - * subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }}, - * attributes [0] Attributes{{ CRIAttributes }} - * } - * - * Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }} - * - * CRIAttributes ATTRIBUTE ::= { - * ... -- add any locally defined attributes here -- } + * Converts a Date object to ASN.1 + * Handles the different format before and after 1st January 2050 * - * Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE { - * type ATTRIBUTE.&id({IOSet}), - * values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type}) - * } + * @param date date object. * - * CertificationRequest ::= SEQUENCE { - * certificationRequestInfo CertificationRequestInfo, - * signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }}, - * signature BIT STRING - * } + * @return the ASN.1 object representing the date. */ -var forge = __nccwpck_require__(9177); -__nccwpck_require__(7994); -__nccwpck_require__(9549); -__nccwpck_require__(7157); -__nccwpck_require__(6231); -__nccwpck_require__(7973); -__nccwpck_require__(1925); -__nccwpck_require__(154); -__nccwpck_require__(4376); -__nccwpck_require__(3921); -__nccwpck_require__(8339); +function _dateToAsn1(date) { + if(date >= jan_1_1950 && date < jan_1_2050) { + return asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false, + asn1.dateToUtcTime(date)); + } else { + return asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false, + asn1.dateToGeneralizedTime(date)); + } +} -// shortcut for asn.1 API -var asn1 = forge.asn1; +/** + * Gets the ASN.1 TBSCertificate part of an X.509v3 certificate. + * + * @param cert the certificate. + * + * @return the asn1 TBSCertificate. + */ +pki.getTBSCertificate = function(cert) { + // TBSCertificate + var notBefore = _dateToAsn1(cert.validity.notBefore); + var notAfter = _dateToAsn1(cert.validity.notAfter); + var tbs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // version + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ + // integer + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, + asn1.integerToDer(cert.version).getBytes()) + ]), + // serialNumber + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, + forge.util.hexToBytes(cert.serialNumber)), + // signature + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // algorithm + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(cert.siginfo.algorithmOid).getBytes()), + // parameters + _signatureParametersToAsn1( + cert.siginfo.algorithmOid, cert.siginfo.parameters) + ]), + // issuer + _dnToAsn1(cert.issuer), + // validity + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + notBefore, + notAfter + ]), + // subject + _dnToAsn1(cert.subject), + // SubjectPublicKeyInfo + pki.publicKeyToAsn1(cert.publicKey) + ]); -/* Public Key Infrastructure (PKI) implementation. */ -var pki = module.exports = forge.pki = forge.pki || {}; -var oids = pki.oids; + if(cert.issuer.uniqueId) { + // issuerUniqueID (optional) + tbs.value.push( + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, + // TODO: support arbitrary bit length ids + String.fromCharCode(0x00) + + cert.issuer.uniqueId + ) + ]) + ); + } + if(cert.subject.uniqueId) { + // subjectUniqueID (optional) + tbs.value.push( + asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [ + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, + // TODO: support arbitrary bit length ids + String.fromCharCode(0x00) + + cert.subject.uniqueId + ) + ]) + ); + } -// short name OID mappings -var _shortNames = {}; -_shortNames['CN'] = oids['commonName']; -_shortNames['commonName'] = 'CN'; -_shortNames['C'] = oids['countryName']; -_shortNames['countryName'] = 'C'; -_shortNames['L'] = oids['localityName']; -_shortNames['localityName'] = 'L'; -_shortNames['ST'] = oids['stateOrProvinceName']; -_shortNames['stateOrProvinceName'] = 'ST'; -_shortNames['O'] = oids['organizationName']; -_shortNames['organizationName'] = 'O'; -_shortNames['OU'] = oids['organizationalUnitName']; -_shortNames['organizationalUnitName'] = 'OU'; -_shortNames['E'] = oids['emailAddress']; -_shortNames['emailAddress'] = 'E'; + if(cert.extensions.length > 0) { + // extensions (optional) + tbs.value.push(pki.certificateExtensionsToAsn1(cert.extensions)); + } -// validator for an SubjectPublicKeyInfo structure -// Note: Currently only works with an RSA public key -var publicKeyValidator = forge.pki.rsa.publicKeyValidator; + return tbs; +}; -// validator for an X.509v3 certificate -var x509CertificateValidator = { - name: 'Certificate', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - value: [{ - name: 'Certificate.TBSCertificate', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - captureAsn1: 'tbsCertificate', - value: [{ - name: 'Certificate.TBSCertificate.version', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 0, - constructed: true, - optional: true, - value: [{ - name: 'Certificate.TBSCertificate.version.integer', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.INTEGER, - constructed: false, - capture: 'certVersion' - }] - }, { - name: 'Certificate.TBSCertificate.serialNumber', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.INTEGER, - constructed: false, - capture: 'certSerialNumber' - }, { - name: 'Certificate.TBSCertificate.signature', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - value: [{ - name: 'Certificate.TBSCertificate.signature.algorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.OID, - constructed: false, - capture: 'certinfoSignatureOid' - }, { - name: 'Certificate.TBSCertificate.signature.parameters', - tagClass: asn1.Class.UNIVERSAL, - optional: true, - captureAsn1: 'certinfoSignatureParams' - }] - }, { - name: 'Certificate.TBSCertificate.issuer', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - captureAsn1: 'certIssuer' - }, { - name: 'Certificate.TBSCertificate.validity', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - // Note: UTC and generalized times may both appear so the capture - // names are based on their detected order, the names used below - // are only for the common case, which validity time really means - // "notBefore" and which means "notAfter" will be determined by order - value: [{ - // notBefore (Time) (UTC time case) - name: 'Certificate.TBSCertificate.validity.notBefore (utc)', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.UTCTIME, - constructed: false, - optional: true, - capture: 'certValidity1UTCTime' - }, { - // notBefore (Time) (generalized time case) - name: 'Certificate.TBSCertificate.validity.notBefore (generalized)', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.GENERALIZEDTIME, - constructed: false, - optional: true, - capture: 'certValidity2GeneralizedTime' - }, { - // notAfter (Time) (only UTC time is supported) - name: 'Certificate.TBSCertificate.validity.notAfter (utc)', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.UTCTIME, - constructed: false, - optional: true, - capture: 'certValidity3UTCTime' - }, { - // notAfter (Time) (only UTC time is supported) - name: 'Certificate.TBSCertificate.validity.notAfter (generalized)', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.GENERALIZEDTIME, - constructed: false, - optional: true, - capture: 'certValidity4GeneralizedTime' - }] - }, { - // Name (subject) (RDNSequence) - name: 'Certificate.TBSCertificate.subject', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - captureAsn1: 'certSubject' - }, +/** + * Gets the ASN.1 CertificationRequestInfo part of a + * PKCS#10 CertificationRequest. + * + * @param csr the certification request. + * + * @return the asn1 CertificationRequestInfo. + */ +pki.getCertificationRequestInfo = function(csr) { + // CertificationRequestInfo + var cri = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // version + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, + asn1.integerToDer(csr.version).getBytes()), + // subject + _dnToAsn1(csr.subject), // SubjectPublicKeyInfo - publicKeyValidator, - { - // issuerUniqueID (optional) - name: 'Certificate.TBSCertificate.issuerUniqueID', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 1, - constructed: true, - optional: true, - value: [{ - name: 'Certificate.TBSCertificate.issuerUniqueID.id', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.BITSTRING, - constructed: false, - // TODO: support arbitrary bit length ids - captureBitStringValue: 'certIssuerUniqueId' - }] - }, { - // subjectUniqueID (optional) - name: 'Certificate.TBSCertificate.subjectUniqueID', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 2, - constructed: true, - optional: true, - value: [{ - name: 'Certificate.TBSCertificate.subjectUniqueID.id', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.BITSTRING, - constructed: false, - // TODO: support arbitrary bit length ids - captureBitStringValue: 'certSubjectUniqueId' - }] - }, { - // Extensions (optional) - name: 'Certificate.TBSCertificate.extensions', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 3, - constructed: true, - captureAsn1: 'certExtensions', - optional: true - }] - }, { - // AlgorithmIdentifier (signature algorithm) - name: 'Certificate.signatureAlgorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - value: [{ - // algorithm - name: 'Certificate.signatureAlgorithm.algorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.OID, - constructed: false, - capture: 'certSignatureOid' - }, { - name: 'Certificate.TBSCertificate.signature.parameters', - tagClass: asn1.Class.UNIVERSAL, - optional: true, - captureAsn1: 'certSignatureParams' - }] - }, { - // SignatureValue - name: 'Certificate.signatureValue', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.BITSTRING, - constructed: false, - captureBitStringValue: 'certSignature' - }] -}; + pki.publicKeyToAsn1(csr.publicKey), + // attributes + _CRIAttributesToAsn1(csr) + ]); -var rsassaPssParameterValidator = { - name: 'rsapss', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - value: [{ - name: 'rsapss.hashAlgorithm', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 0, - constructed: true, - value: [{ - name: 'rsapss.hashAlgorithm.AlgorithmIdentifier', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Class.SEQUENCE, - constructed: true, - optional: true, - value: [{ - name: 'rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.OID, - constructed: false, - capture: 'hashOid' - /* parameter block omitted, for SHA1 NULL anyhow. */ - }] - }] - }, { - name: 'rsapss.maskGenAlgorithm', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 1, - constructed: true, - value: [{ - name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Class.SEQUENCE, - constructed: true, - optional: true, - value: [{ - name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.OID, - constructed: false, - capture: 'maskGenOid' - }, { - name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - value: [{ - name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.OID, - constructed: false, - capture: 'maskGenHashOid' - /* parameter block omitted, for SHA1 NULL anyhow. */ - }] - }] - }] - }, { - name: 'rsapss.saltLength', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 2, - optional: true, - value: [{ - name: 'rsapss.saltLength.saltLength', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Class.INTEGER, - constructed: false, - capture: 'saltLength' - }] - }, { - name: 'rsapss.trailerField', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 3, - optional: true, - value: [{ - name: 'rsapss.trailer.trailer', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Class.INTEGER, - constructed: false, - capture: 'trailer' - }] - }] + return cri; }; -// validator for a CertificationRequestInfo structure -var certificationRequestInfoValidator = { - name: 'CertificationRequestInfo', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - captureAsn1: 'certificationRequestInfo', - value: [{ - name: 'CertificationRequestInfo.integer', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.INTEGER, - constructed: false, - capture: 'certificationRequestInfoVersion' - }, { - // Name (subject) (RDNSequence) - name: 'CertificationRequestInfo.subject', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - captureAsn1: 'certificationRequestInfoSubject' - }, - // SubjectPublicKeyInfo - publicKeyValidator, - { - name: 'CertificationRequestInfo.attributes', - tagClass: asn1.Class.CONTEXT_SPECIFIC, - type: 0, - constructed: true, - optional: true, - capture: 'certificationRequestInfoAttributes', - value: [{ - name: 'CertificationRequestInfo.attributes', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - value: [{ - name: 'CertificationRequestInfo.attributes.type', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.OID, - constructed: false - }, { - name: 'CertificationRequestInfo.attributes.value', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SET, - constructed: true - }] - }] - }] +/** + * Converts a DistinguishedName (subject or issuer) to an ASN.1 object. + * + * @param dn the DistinguishedName. + * + * @return the asn1 representation of a DistinguishedName. + */ +pki.distinguishedNameToAsn1 = function(dn) { + return _dnToAsn1(dn); }; -// validator for a CertificationRequest structure -var certificationRequestValidator = { - name: 'CertificationRequest', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - captureAsn1: 'csr', - value: [ - certificationRequestInfoValidator, { - // AlgorithmIdentifier (signature algorithm) - name: 'CertificationRequest.signatureAlgorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.SEQUENCE, - constructed: true, - value: [{ - // algorithm - name: 'CertificationRequest.signatureAlgorithm.algorithm', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.OID, - constructed: false, - capture: 'csrSignatureOid' - }, { - name: 'CertificationRequest.signatureAlgorithm.parameters', - tagClass: asn1.Class.UNIVERSAL, - optional: true, - captureAsn1: 'csrSignatureParams' - }] - }, { - // signature - name: 'CertificationRequest.signature', - tagClass: asn1.Class.UNIVERSAL, - type: asn1.Type.BITSTRING, - constructed: false, - captureBitStringValue: 'csrSignature' - } - ] +/** + * Converts an X.509v3 RSA certificate to an ASN.1 object. + * + * @param cert the certificate. + * + * @return the asn1 representation of an X.509v3 RSA certificate. + */ +pki.certificateToAsn1 = function(cert) { + // prefer cached TBSCertificate over generating one + var tbsCertificate = cert.tbsCertificate || pki.getTBSCertificate(cert); + + // Certificate + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // TBSCertificate + tbsCertificate, + // AlgorithmIdentifier (signature algorithm) + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // algorithm + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(cert.signatureOid).getBytes()), + // parameters + _signatureParametersToAsn1(cert.signatureOid, cert.signatureParameters) + ]), + // SignatureValue + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, + String.fromCharCode(0x00) + cert.signature) + ]); }; /** - * Converts an RDNSequence of ASN.1 DER-encoded RelativeDistinguishedName - * sets into an array with objects that have type and value properties. + * Converts X.509v3 certificate extensions to ASN.1. * - * @param rdn the RDNSequence to convert. - * @param md a message digest to append type and value to if provided. + * @param exts the extensions to convert. + * + * @return the extensions in ASN.1 format. */ -pki.RDNAttributesAsArray = function(rdn, md) { - var rval = []; +pki.certificateExtensionsToAsn1 = function(exts) { + // create top-level extension container + var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 3, true, []); - // each value in 'rdn' in is a SET of RelativeDistinguishedName - var set, attr, obj; - for(var si = 0; si < rdn.value.length; ++si) { - // get the RelativeDistinguishedName set - set = rdn.value[si]; + // create extension sequence (stores a sequence for each extension) + var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + rval.value.push(seq); - // each value in the SET is an AttributeTypeAndValue sequence - // containing first a type (an OID) and second a value (defined by - // the OID) - for(var i = 0; i < set.value.length; ++i) { - obj = {}; - attr = set.value[i]; - obj.type = asn1.derToOid(attr.value[0].value); - obj.value = attr.value[1].value; - obj.valueTagClass = attr.value[1].type; - // if the OID is known, get its name and short name - if(obj.type in oids) { - obj.name = oids[obj.type]; - if(obj.name in _shortNames) { - obj.shortName = _shortNames[obj.name]; - } - } - if(md) { - md.update(obj.type); - md.update(obj.value); - } - rval.push(obj); - } + for(var i = 0; i < exts.length; ++i) { + seq.value.push(pki.certificateExtensionToAsn1(exts[i])); } return rval; }; /** - * Converts ASN.1 CRIAttributes into an array with objects that have type and - * value properties. + * Converts a single certificate extension to ASN.1. * - * @param attributes the CRIAttributes to convert. + * @param ext the extension to convert. + * + * @return the extension in ASN.1 format. */ -pki.CRIAttributesAsArray = function(attributes) { - var rval = []; +pki.certificateExtensionToAsn1 = function(ext) { + // create a sequence for each extension + var extseq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); - // each value in 'attributes' in is a SEQUENCE with an OID and a SET - for(var si = 0; si < attributes.length; ++si) { - // get the attribute sequence - var seq = attributes[si]; + // extnID (OID) + extseq.value.push(asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(ext.id).getBytes())); - // each value in the SEQUENCE containing first a type (an OID) and - // second a set of values (defined by the OID) - var type = asn1.derToOid(seq.value[0].value); - var values = seq.value[1].value; - for(var vi = 0; vi < values.length; ++vi) { - var obj = {}; - obj.type = type; - obj.value = values[vi].value; - obj.valueTagClass = values[vi].type; - // if the OID is known, get its name and short name - if(obj.type in oids) { - obj.name = oids[obj.type]; - if(obj.name in _shortNames) { - obj.shortName = _shortNames[obj.name]; - } - } - // parse extensions - if(obj.type === oids.extensionRequest) { - obj.extensions = []; - for(var ei = 0; ei < obj.value.length; ++ei) { - obj.extensions.push(pki.certificateExtensionFromAsn1(obj.value[ei])); - } - } - rval.push(obj); - } + // critical defaults to false + if(ext.critical) { + // critical BOOLEAN DEFAULT FALSE + extseq.value.push(asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false, + String.fromCharCode(0xFF))); } - return rval; + var value = ext.value; + if(typeof ext.value !== 'string') { + // value is asn.1 + value = asn1.toDer(value).getBytes(); + } + + // extnValue (OCTET STRING) + extseq.value.push(asn1.create( + asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, value)); + + return extseq; }; /** - * Gets an issuer or subject attribute from its name, type, or short name. + * Converts a PKCS#10 certification request to an ASN.1 object. * - * @param obj the issuer or subject object. - * @param options a short name string or an object with: - * shortName the short name for the attribute. - * name the name for the attribute. - * type the type for the attribute. + * @param csr the certification request. * - * @return the attribute. + * @return the asn1 representation of a certification request. */ -function _getAttribute(obj, options) { - if(typeof options === 'string') { - options = {shortName: options}; - } +pki.certificationRequestToAsn1 = function(csr) { + // prefer cached CertificationRequestInfo over generating one + var cri = csr.certificationRequestInfo || + pki.getCertificationRequestInfo(csr); - var rval = null; - var attr; - for(var i = 0; rval === null && i < obj.attributes.length; ++i) { - attr = obj.attributes[i]; - if(options.type && options.type === attr.type) { - rval = attr; - } else if(options.name && options.name === attr.name) { - rval = attr; - } else if(options.shortName && options.shortName === attr.shortName) { - rval = attr; - } - } - return rval; -} + // Certificate + return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // CertificationRequestInfo + cri, + // AlgorithmIdentifier (signature algorithm) + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ + // algorithm + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, + asn1.oidToDer(csr.signatureOid).getBytes()), + // parameters + _signatureParametersToAsn1(csr.signatureOid, csr.signatureParameters) + ]), + // signature + asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, + String.fromCharCode(0x00) + csr.signature) + ]); +}; /** - * Converts signature parameters from ASN.1 structure. - * - * Currently only RSASSA-PSS supported. The PKCS#1 v1.5 signature scheme had - * no parameters. - * - * RSASSA-PSS-params ::= SEQUENCE { - * hashAlgorithm [0] HashAlgorithm DEFAULT - * sha1Identifier, - * maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT - * mgf1SHA1Identifier, - * saltLength [2] INTEGER DEFAULT 20, - * trailerField [3] INTEGER DEFAULT 1 - * } - * - * HashAlgorithm ::= AlgorithmIdentifier - * - * MaskGenAlgorithm ::= AlgorithmIdentifier + * Creates a CA store. * - * AlgorithmIdentifer ::= SEQUENCE { - * algorithm OBJECT IDENTIFIER, - * parameters ANY DEFINED BY algorithm OPTIONAL - * } + * @param certs an optional array of certificate objects or PEM-formatted + * certificate strings to add to the CA store. * - * @param oid The OID specifying the signature algorithm - * @param obj The ASN.1 structure holding the parameters - * @param fillDefaults Whether to use return default values where omitted - * @return signature parameter object + * @return the CA store. */ -var _readSignatureParameters = function(oid, obj, fillDefaults) { - var params = {}; +pki.createCaStore = function(certs) { + // create CA store + var caStore = { + // stored certificates + certs: {} + }; - if(oid !== oids['RSASSA-PSS']) { - return params; - } + /** + * Gets the certificate that issued the passed certificate or its + * 'parent'. + * + * @param cert the certificate to get the parent for. + * + * @return the parent certificate or null if none was found. + */ + caStore.getIssuer = function(cert) { + var rval = getBySubject(cert.issuer); - if(fillDefaults) { - params = { - hash: { - algorithmOid: oids['sha1'] - }, - mgf: { - algorithmOid: oids['mgf1'], - hash: { - algorithmOid: oids['sha1'] + // see if there are multiple matches + /*if(forge.util.isArray(rval)) { + // TODO: resolve multiple matches by checking + // authorityKey/subjectKey/issuerUniqueID/other identifiers, etc. + // FIXME: or alternatively do authority key mapping + // if possible (X.509v1 certs can't work?) + throw new Error('Resolving multiple issuer matches not implemented yet.'); + }*/ + + return rval; + }; + + /** + * Adds a trusted certificate to the store. + * + * @param cert the certificate to add as a trusted certificate (either a + * pki.certificate object or a PEM-formatted certificate). + */ + caStore.addCertificate = function(cert) { + // convert from pem if necessary + if(typeof cert === 'string') { + cert = forge.pki.certificateFromPem(cert); + } + + ensureSubjectHasHash(cert.subject); + + if(!caStore.hasCertificate(cert)) { // avoid duplicate certificates in store + if(cert.subject.hash in caStore.certs) { + // subject hash already exists, append to array + var tmp = caStore.certs[cert.subject.hash]; + if(!forge.util.isArray(tmp)) { + tmp = [tmp]; } - }, - saltLength: 20 - }; - } + tmp.push(cert); + caStore.certs[cert.subject.hash] = tmp; + } else { + caStore.certs[cert.subject.hash] = cert; + } + } + }; - var capture = {}; - var errors = []; - if(!asn1.validate(obj, rsassaPssParameterValidator, capture, errors)) { - var error = new Error('Cannot read RSASSA-PSS parameter block.'); - error.errors = errors; - throw error; - } + /** + * Checks to see if the given certificate is in the store. + * + * @param cert the certificate to check (either a pki.certificate or a + * PEM-formatted certificate). + * + * @return true if the certificate is in the store, false if not. + */ + caStore.hasCertificate = function(cert) { + // convert from pem if necessary + if(typeof cert === 'string') { + cert = forge.pki.certificateFromPem(cert); + } - if(capture.hashOid !== undefined) { - params.hash = params.hash || {}; - params.hash.algorithmOid = asn1.derToOid(capture.hashOid); + var match = getBySubject(cert.subject); + if(!match) { + return false; + } + if(!forge.util.isArray(match)) { + match = [match]; + } + // compare DER-encoding of certificates + var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes(); + for(var i = 0; i < match.length; ++i) { + var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes(); + if(der1 === der2) { + return true; + } + } + return false; + }; + + /** + * Lists all of the certificates kept in the store. + * + * @return an array of all of the pki.certificate objects in the store. + */ + caStore.listAllCertificates = function() { + var certList = []; + + for(var hash in caStore.certs) { + if(caStore.certs.hasOwnProperty(hash)) { + var value = caStore.certs[hash]; + if(!forge.util.isArray(value)) { + certList.push(value); + } else { + for(var i = 0; i < value.length; ++i) { + certList.push(value[i]); + } + } + } + } + + return certList; + }; + + /** + * Removes a certificate from the store. + * + * @param cert the certificate to remove (either a pki.certificate or a + * PEM-formatted certificate). + * + * @return the certificate that was removed or null if the certificate + * wasn't in store. + */ + caStore.removeCertificate = function(cert) { + var result; + + // convert from pem if necessary + if(typeof cert === 'string') { + cert = forge.pki.certificateFromPem(cert); + } + ensureSubjectHasHash(cert.subject); + if(!caStore.hasCertificate(cert)) { + return null; + } + + var match = getBySubject(cert.subject); + + if(!forge.util.isArray(match)) { + result = caStore.certs[cert.subject.hash]; + delete caStore.certs[cert.subject.hash]; + return result; + } + + // compare DER-encoding of certificates + var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes(); + for(var i = 0; i < match.length; ++i) { + var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes(); + if(der1 === der2) { + result = match[i]; + match.splice(i, 1); + } + } + if(match.length === 0) { + delete caStore.certs[cert.subject.hash]; + } + + return result; + }; + + function getBySubject(subject) { + ensureSubjectHasHash(subject); + return caStore.certs[subject.hash] || null; } - if(capture.maskGenOid !== undefined) { - params.mgf = params.mgf || {}; - params.mgf.algorithmOid = asn1.derToOid(capture.maskGenOid); - params.mgf.hash = params.mgf.hash || {}; - params.mgf.hash.algorithmOid = asn1.derToOid(capture.maskGenHashOid); + function ensureSubjectHasHash(subject) { + // produce subject hash if it doesn't exist + if(!subject.hash) { + var md = forge.md.sha1.create(); + subject.attributes = pki.RDNAttributesAsArray(_dnToAsn1(subject), md); + subject.hash = md.digest().toHex(); + } } - if(capture.saltLength !== undefined) { - params.saltLength = capture.saltLength.charCodeAt(0); + // auto-add passed in certs + if(certs) { + // parse PEM-formatted certificates as necessary + for(var i = 0; i < certs.length; ++i) { + var cert = certs[i]; + caStore.addCertificate(cert); + } } - return params; + return caStore; }; /** - * Create signature digest for OID. - * - * @param options - * signatureOid: the OID specifying the signature algorithm. - * type: a human readable type for error messages - * @return a created md instance. throws if unknown oid. + * Certificate verification errors, based on TLS. */ -var _createSignatureDigest = function(options) { - switch(oids[options.signatureOid]) { - case 'sha1WithRSAEncryption': - // deprecated alias - case 'sha1WithRSASignature': - return forge.md.sha1.create(); - case 'md5WithRSAEncryption': - return forge.md.md5.create(); - case 'sha256WithRSAEncryption': - return forge.md.sha256.create(); - case 'sha384WithRSAEncryption': - return forge.md.sha384.create(); - case 'sha512WithRSAEncryption': - return forge.md.sha512.create(); - case 'RSASSA-PSS': - return forge.md.sha256.create(); - default: - var error = new Error( - 'Could not compute ' + options.type + ' digest. ' + - 'Unknown signature OID.'); - error.signatureOid = options.signatureOid; - throw error; - } +pki.certificateError = { + bad_certificate: 'forge.pki.BadCertificate', + unsupported_certificate: 'forge.pki.UnsupportedCertificate', + certificate_revoked: 'forge.pki.CertificateRevoked', + certificate_expired: 'forge.pki.CertificateExpired', + certificate_unknown: 'forge.pki.CertificateUnknown', + unknown_ca: 'forge.pki.UnknownCertificateAuthority' }; -/** - * Verify signature on certificate or CSR. - * - * @param options: - * certificate the certificate or CSR to verify. - * md the signature digest. - * signature the signature - * @return a created md instance. throws if unknown oid. - */ -var _verifySignature = function(options) { - var cert = options.certificate; - var scheme; +/** + * Verifies a certificate chain against the given Certificate Authority store + * with an optional custom verify callback. + * + * @param caStore a certificate store to verify against. + * @param chain the certificate chain to verify, with the root or highest + * authority at the end (an array of certificates). + * @param options a callback to be called for every certificate in the chain or + * an object with: + * verify a callback to be called for every certificate in the + * chain + * validityCheckDate the date against which the certificate + * validity period should be checked. Pass null to not check + * the validity period. By default, the current date is used. + * + * The verify callback has the following signature: + * + * verified - Set to true if certificate was verified, otherwise the + * pki.certificateError for why the certificate failed. + * depth - The current index in the chain, where 0 is the end point's cert. + * certs - The certificate chain, *NOTE* an empty chain indicates an anonymous + * end point. + * + * The function returns true on success and on failure either the appropriate + * pki.certificateError or an object with 'error' set to the appropriate + * pki.certificateError and 'message' set to a custom error message. + * + * @return true if successful, error thrown if not. + */ +pki.verifyCertificateChain = function(caStore, chain, options) { + /* From: RFC3280 - Internet X.509 Public Key Infrastructure Certificate + Section 6: Certification Path Validation + See inline parentheticals related to this particular implementation. + + The primary goal of path validation is to verify the binding between + a subject distinguished name or a subject alternative name and subject + public key, as represented in the end entity certificate, based on the + public key of the trust anchor. This requires obtaining a sequence of + certificates that support that binding. That sequence should be provided + in the passed 'chain'. The trust anchor should be in the given CA + store. The 'end entity' certificate is the certificate provided by the + end point (typically a server) and is the first in the chain. + + To meet this goal, the path validation process verifies, among other + things, that a prospective certification path (a sequence of n + certificates or a 'chain') satisfies the following conditions: + + (a) for all x in {1, ..., n-1}, the subject of certificate x is + the issuer of certificate x+1; + + (b) certificate 1 is issued by the trust anchor; + + (c) certificate n is the certificate to be validated; and + + (d) for all x in {1, ..., n}, the certificate was valid at the + time in question. + + Note that here 'n' is index 0 in the chain and 1 is the last certificate + in the chain and it must be signed by a certificate in the connection's + CA store. + + The path validation process also determines the set of certificate + policies that are valid for this path, based on the certificate policies + extension, policy mapping extension, policy constraints extension, and + inhibit any-policy extension. + + Note: Policy mapping extension not supported (Not Required). + + Note: If the certificate has an unsupported critical extension, then it + must be rejected. + + Note: A certificate is self-issued if the DNs that appear in the subject + and issuer fields are identical and are not empty. + + The path validation algorithm assumes the following seven inputs are + provided to the path processing logic. What this specific implementation + will use is provided parenthetically: - switch(cert.signatureOid) { - case oids.sha1WithRSAEncryption: - // deprecated alias - case oids.sha1WithRSASignature: - /* use PKCS#1 v1.5 padding scheme */ - break; - case oids['RSASSA-PSS']: - var hash, mgf; + (a) a prospective certification path of length n (the 'chain') + (b) the current date/time: ('now'). + (c) user-initial-policy-set: A set of certificate policy identifiers + naming the policies that are acceptable to the certificate user. + The user-initial-policy-set contains the special value any-policy + if the user is not concerned about certificate policy + (Not implemented. Any policy is accepted). + (d) trust anchor information, describing a CA that serves as a trust + anchor for the certification path. The trust anchor information + includes: - /* initialize mgf */ - hash = oids[cert.signatureParameters.mgf.hash.algorithmOid]; - if(hash === undefined || forge.md[hash] === undefined) { - var error = new Error('Unsupported MGF hash function.'); - error.oid = cert.signatureParameters.mgf.hash.algorithmOid; - error.name = hash; - throw error; - } + (1) the trusted issuer name, + (2) the trusted public key algorithm, + (3) the trusted public key, and + (4) optionally, the trusted public key parameters associated + with the public key. - mgf = oids[cert.signatureParameters.mgf.algorithmOid]; - if(mgf === undefined || forge.mgf[mgf] === undefined) { - var error = new Error('Unsupported MGF function.'); - error.oid = cert.signatureParameters.mgf.algorithmOid; - error.name = mgf; - throw error; - } + (Trust anchors are provided via certificates in the CA store). - mgf = forge.mgf[mgf].create(forge.md[hash].create()); + The trust anchor information may be provided to the path processing + procedure in the form of a self-signed certificate. The trusted anchor + information is trusted because it was delivered to the path processing + procedure by some trustworthy out-of-band procedure. If the trusted + public key algorithm requires parameters, then the parameters are + provided along with the trusted public key (No parameters used in this + implementation). - /* initialize hash function */ - hash = oids[cert.signatureParameters.hash.algorithmOid]; - if(hash === undefined || forge.md[hash] === undefined) { - var error = new Error('Unsupported RSASSA-PSS hash function.'); - error.oid = cert.signatureParameters.hash.algorithmOid; - error.name = hash; - throw error; - } + (e) initial-policy-mapping-inhibit, which indicates if policy mapping is + allowed in the certification path. + (Not implemented, no policy checking) - scheme = forge.pss.create( - forge.md[hash].create(), mgf, cert.signatureParameters.saltLength - ); - break; - } + (f) initial-explicit-policy, which indicates if the path must be valid + for at least one of the certificate policies in the user-initial- + policy-set. + (Not implemented, no policy checking) - // verify signature on cert using public key - return cert.publicKey.verify( - options.md.digest().getBytes(), options.signature, scheme - ); -}; + (g) initial-any-policy-inhibit, which indicates whether the + anyPolicy OID should be processed if it is included in a + certificate. + (Not implemented, so any policy is valid provided that it is + not marked as critical) */ -/** - * Converts an X.509 certificate from PEM format. - * - * Note: If the certificate is to be verified then compute hash should - * be set to true. This will scan the TBSCertificate part of the ASN.1 - * object while it is converted so it doesn't need to be converted back - * to ASN.1-DER-encoding later. - * - * @param pem the PEM-formatted certificate. - * @param computeHash true to compute the hash for verification. - * @param strict true to be strict when checking ASN.1 value lengths, false to - * allow truncated values (default: true). - * - * @return the certificate. - */ -pki.certificateFromPem = function(pem, computeHash, strict) { - var msg = forge.pem.decode(pem)[0]; + /* Basic Path Processing: - if(msg.type !== 'CERTIFICATE' && - msg.type !== 'X509 CERTIFICATE' && - msg.type !== 'TRUSTED CERTIFICATE') { - var error = new Error( - 'Could not convert certificate from PEM; PEM header type ' + - 'is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".'); - error.headerType = msg.type; - throw error; + For each certificate in the 'chain', the following is checked: + + 1. The certificate validity period includes the current time. + 2. The certificate was signed by its parent (where the parent is either + the next in the chain or from the CA store). Allow processing to + continue to the next step if no parent is found but the certificate is + in the CA store. + 3. TODO: The certificate has not been revoked. + 4. The certificate issuer name matches the parent's subject name. + 5. TODO: If the certificate is self-issued and not the final certificate + in the chain, skip this step, otherwise verify that the subject name + is within one of the permitted subtrees of X.500 distinguished names + and that each of the alternative names in the subjectAltName extension + (critical or non-critical) is within one of the permitted subtrees for + that name type. + 6. TODO: If the certificate is self-issued and not the final certificate + in the chain, skip this step, otherwise verify that the subject name + is not within one of the excluded subtrees for X.500 distinguished + names and none of the subjectAltName extension names are excluded for + that name type. + 7. The other steps in the algorithm for basic path processing involve + handling the policy extension which is not presently supported in this + implementation. Instead, if a critical policy extension is found, the + certificate is rejected as not supported. + 8. If the certificate is not the first or if its the only certificate in + the chain (having no parent from the CA store or is self-signed) and it + has a critical key usage extension, verify that the keyCertSign bit is + set. If the key usage extension exists, verify that the basic + constraints extension exists. If the basic constraints extension exists, + verify that the cA flag is set. If pathLenConstraint is set, ensure that + the number of certificates that precede in the chain (come earlier + in the chain as implemented below), excluding the very first in the + chain (typically the end-entity one), isn't greater than the + pathLenConstraint. This constraint limits the number of intermediate + CAs that may appear below a CA before only end-entity certificates + may be issued. */ + + // if a verify callback is passed as the third parameter, package it within + // the options object. This is to support a legacy function signature that + // expected the verify callback as the third parameter. + if(typeof options === 'function') { + options = {verify: options}; } - if(msg.procType && msg.procType.type === 'ENCRYPTED') { - throw new Error( - 'Could not convert certificate from PEM; PEM is encrypted.'); + options = options || {}; + + // copy cert chain references to another array to protect against changes + // in verify callback + chain = chain.slice(0); + var certs = chain.slice(0); + + var validityCheckDate = options.validityCheckDate; + // if no validityCheckDate is specified, default to the current date. Make + // sure to maintain the value null because it indicates that the validity + // period should not be checked. + if(typeof validityCheckDate === 'undefined') { + validityCheckDate = new Date(); } - // convert DER to ASN.1 object - var obj = asn1.fromDer(msg.body, strict); + // verify each cert in the chain using its parent, where the parent + // is either the next in the chain or from the CA store + var first = true; + var error = null; + var depth = 0; + do { + var cert = chain.shift(); + var parent = null; + var selfSigned = false; - return pki.certificateFromAsn1(obj, computeHash); -}; + if(validityCheckDate) { + // 1. check valid time + if(validityCheckDate < cert.validity.notBefore || + validityCheckDate > cert.validity.notAfter) { + error = { + message: 'Certificate is not valid yet or has expired.', + error: pki.certificateError.certificate_expired, + notBefore: cert.validity.notBefore, + notAfter: cert.validity.notAfter, + // TODO: we might want to reconsider renaming 'now' to + // 'validityCheckDate' should this API be changed in the future. + now: validityCheckDate + }; + } + } -/** - * Converts an X.509 certificate to PEM format. - * - * @param cert the certificate. - * @param maxline the maximum characters per line, defaults to 64. - * - * @return the PEM-formatted certificate. - */ -pki.certificateToPem = function(cert, maxline) { - // convert to ASN.1, then DER, then PEM-encode - var msg = { - type: 'CERTIFICATE', - body: asn1.toDer(pki.certificateToAsn1(cert)).getBytes() - }; - return forge.pem.encode(msg, {maxline: maxline}); -}; + // 2. verify with parent from chain or CA store + if(error === null) { + parent = chain[0] || caStore.getIssuer(cert); + if(parent === null) { + // check for self-signed cert + if(cert.isIssuer(cert)) { + selfSigned = true; + parent = cert; + } + } -/** - * Converts an RSA public key from PEM format. - * - * @param pem the PEM-formatted public key. - * - * @return the public key. - */ -pki.publicKeyFromPem = function(pem) { - var msg = forge.pem.decode(pem)[0]; + if(parent) { + // FIXME: current CA store implementation might have multiple + // certificates where the issuer can't be determined from the + // certificate (happens rarely with, eg: old certificates) so normalize + // by always putting parents into an array + // TODO: there's may be an extreme degenerate case currently uncovered + // where an old intermediate certificate seems to have a matching parent + // but none of the parents actually verify ... but the intermediate + // is in the CA and it should pass this check; needs investigation + var parents = parent; + if(!forge.util.isArray(parents)) { + parents = [parents]; + } - if(msg.type !== 'PUBLIC KEY' && msg.type !== 'RSA PUBLIC KEY') { - var error = new Error('Could not convert public key from PEM; PEM header ' + - 'type is not "PUBLIC KEY" or "RSA PUBLIC KEY".'); - error.headerType = msg.type; - throw error; - } - if(msg.procType && msg.procType.type === 'ENCRYPTED') { - throw new Error('Could not convert public key from PEM; PEM is encrypted.'); - } + // try to verify with each possible parent (typically only one) + var verified = false; + while(!verified && parents.length > 0) { + parent = parents.shift(); + try { + verified = parent.verify(cert); + } catch(ex) { + // failure to verify, don't care why, try next one + } + } - // convert DER to ASN.1 object - var obj = asn1.fromDer(msg.body); + if(!verified) { + error = { + message: 'Certificate signature is invalid.', + error: pki.certificateError.bad_certificate + }; + } + } - return pki.publicKeyFromAsn1(obj); -}; + if(error === null && (!parent || selfSigned) && + !caStore.hasCertificate(cert)) { + // no parent issuer and certificate itself is not trusted + error = { + message: 'Certificate is not trusted.', + error: pki.certificateError.unknown_ca + }; + } + } -/** - * Converts an RSA public key to PEM format (using a SubjectPublicKeyInfo). - * - * @param key the public key. - * @param maxline the maximum characters per line, defaults to 64. - * - * @return the PEM-formatted public key. - */ -pki.publicKeyToPem = function(key, maxline) { - // convert to ASN.1, then DER, then PEM-encode - var msg = { - type: 'PUBLIC KEY', - body: asn1.toDer(pki.publicKeyToAsn1(key)).getBytes() - }; - return forge.pem.encode(msg, {maxline: maxline}); -}; + // TODO: 3. check revoked -/** - * Converts an RSA public key to PEM format (using an RSAPublicKey). - * - * @param key the public key. - * @param maxline the maximum characters per line, defaults to 64. - * - * @return the PEM-formatted public key. - */ -pki.publicKeyToRSAPublicKeyPem = function(key, maxline) { - // convert to ASN.1, then DER, then PEM-encode - var msg = { - type: 'RSA PUBLIC KEY', - body: asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes() - }; - return forge.pem.encode(msg, {maxline: maxline}); -}; + // 4. check for matching issuer/subject + if(error === null && parent && !cert.isIssuer(parent)) { + // parent is not issuer + error = { + message: 'Certificate issuer is invalid.', + error: pki.certificateError.bad_certificate + }; + } -/** - * Gets a fingerprint for the given public key. - * - * @param options the options to use. - * [md] the message digest object to use (defaults to forge.md.sha1). - * [type] the type of fingerprint, such as 'RSAPublicKey', - * 'SubjectPublicKeyInfo' (defaults to 'RSAPublicKey'). - * [encoding] an alternative output encoding, such as 'hex' - * (defaults to none, outputs a byte buffer). - * [delimiter] the delimiter to use between bytes for 'hex' encoded - * output, eg: ':' (defaults to none). - * - * @return the fingerprint as a byte buffer or other encoding based on options. - */ -pki.getPublicKeyFingerprint = function(key, options) { - options = options || {}; - var md = options.md || forge.md.sha1.create(); - var type = options.type || 'RSAPublicKey'; + // 5. TODO: check names with permitted names tree - var bytes; - switch(type) { - case 'RSAPublicKey': - bytes = asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes(); - break; - case 'SubjectPublicKeyInfo': - bytes = asn1.toDer(pki.publicKeyToAsn1(key)).getBytes(); - break; - default: - throw new Error('Unknown fingerprint type "' + options.type + '".'); - } + // 6. TODO: check names against excluded names tree - // hash public key bytes - md.start(); - md.update(bytes); - var digest = md.digest(); - if(options.encoding === 'hex') { - var hex = digest.toHex(); - if(options.delimiter) { - return hex.match(/.{2}/g).join(options.delimiter); + // 7. check for unsupported critical extensions + if(error === null) { + // supported extensions + var se = { + keyUsage: true, + basicConstraints: true + }; + for(var i = 0; error === null && i < cert.extensions.length; ++i) { + var ext = cert.extensions[i]; + if(ext.critical && !(ext.name in se)) { + error = { + message: + 'Certificate has an unsupported critical extension.', + error: pki.certificateError.unsupported_certificate + }; + } + } } - return hex; - } else if(options.encoding === 'binary') { - return digest.getBytes(); - } else if(options.encoding) { - throw new Error('Unknown encoding "' + options.encoding + '".'); - } - return digest; -}; -/** - * Converts a PKCS#10 certification request (CSR) from PEM format. - * - * Note: If the certification request is to be verified then compute hash - * should be set to true. This will scan the CertificationRequestInfo part of - * the ASN.1 object while it is converted so it doesn't need to be converted - * back to ASN.1-DER-encoding later. - * - * @param pem the PEM-formatted certificate. - * @param computeHash true to compute the hash for verification. - * @param strict true to be strict when checking ASN.1 value lengths, false to - * allow truncated values (default: true). - * - * @return the certification request (CSR). - */ -pki.certificationRequestFromPem = function(pem, computeHash, strict) { - var msg = forge.pem.decode(pem)[0]; + // 8. check for CA if cert is not first or is the only certificate + // remaining in chain with no parent or is self-signed + if(error === null && + (!first || (chain.length === 0 && (!parent || selfSigned)))) { + // first check keyUsage extension and then basic constraints + var bcExt = cert.getExtension('basicConstraints'); + var keyUsageExt = cert.getExtension('keyUsage'); + if(keyUsageExt !== null) { + // keyCertSign must be true and there must be a basic + // constraints extension + if(!keyUsageExt.keyCertSign || bcExt === null) { + // bad certificate + error = { + message: + 'Certificate keyUsage or basicConstraints conflict ' + + 'or indicate that the certificate is not a CA. ' + + 'If the certificate is the only one in the chain or ' + + 'isn\'t the first then the certificate must be a ' + + 'valid CA.', + error: pki.certificateError.bad_certificate + }; + } + } + // basic constraints cA flag must be set + if(error === null && bcExt !== null && !bcExt.cA) { + // bad certificate + error = { + message: + 'Certificate basicConstraints indicates the certificate ' + + 'is not a CA.', + error: pki.certificateError.bad_certificate + }; + } + // if error is not null and keyUsage is available, then we know it + // has keyCertSign and there is a basic constraints extension too, + // which means we can check pathLenConstraint (if it exists) + if(error === null && keyUsageExt !== null && + 'pathLenConstraint' in bcExt) { + // pathLen is the maximum # of intermediate CA certs that can be + // found between the current certificate and the end-entity (depth 0) + // certificate; this number does not include the end-entity (depth 0, + // last in the chain) even if it happens to be a CA certificate itself + var pathLen = depth - 1; + if(pathLen > bcExt.pathLenConstraint) { + // pathLenConstraint violated, bad certificate + error = { + message: + 'Certificate basicConstraints pathLenConstraint violated.', + error: pki.certificateError.bad_certificate + }; + } + } + } - if(msg.type !== 'CERTIFICATE REQUEST') { - var error = new Error('Could not convert certification request from PEM; ' + - 'PEM header type is not "CERTIFICATE REQUEST".'); - error.headerType = msg.type; - throw error; - } - if(msg.procType && msg.procType.type === 'ENCRYPTED') { - throw new Error('Could not convert certification request from PEM; ' + - 'PEM is encrypted.'); - } + // call application callback + var vfd = (error === null) ? true : error.error; + var ret = options.verify ? options.verify(vfd, depth, certs) : vfd; + if(ret === true) { + // clear any set error + error = null; + } else { + // if passed basic tests, set default message and alert + if(vfd === true) { + error = { + message: 'The application rejected the certificate.', + error: pki.certificateError.bad_certificate + }; + } - // convert DER to ASN.1 object - var obj = asn1.fromDer(msg.body, strict); + // check for custom error info + if(ret || ret === 0) { + // set custom message and error + if(typeof ret === 'object' && !forge.util.isArray(ret)) { + if(ret.message) { + error.message = ret.message; + } + if(ret.error) { + error.error = ret.error; + } + } else if(typeof ret === 'string') { + // set custom error + error.error = ret; + } + } + + // throw error + throw error; + } - return pki.certificationRequestFromAsn1(obj, computeHash); -}; + // no longer first cert in chain + first = false; + ++depth; + } while(chain.length > 0); -/** - * Converts a PKCS#10 certification request (CSR) to PEM format. - * - * @param csr the certification request. - * @param maxline the maximum characters per line, defaults to 64. - * - * @return the PEM-formatted certification request. - */ -pki.certificationRequestToPem = function(csr, maxline) { - // convert to ASN.1, then DER, then PEM-encode - var msg = { - type: 'CERTIFICATE REQUEST', - body: asn1.toDer(pki.certificationRequestToAsn1(csr)).getBytes() - }; - return forge.pem.encode(msg, {maxline: maxline}); + return true; }; -/** - * Creates an empty X.509v3 RSA certificate. - * - * @return the certificate. - */ -pki.createCertificate = function() { - var cert = {}; - cert.version = 0x02; - cert.serialNumber = '00'; - cert.signatureOid = null; - cert.signature = null; - cert.siginfo = {}; - cert.siginfo.algorithmOid = null; - cert.validity = {}; - cert.validity.notBefore = new Date(); - cert.validity.notAfter = new Date(); - - cert.issuer = {}; - cert.issuer.getField = function(sn) { - return _getAttribute(cert.issuer, sn); - }; - cert.issuer.addField = function(attr) { - _fillMissingFields([attr]); - cert.issuer.attributes.push(attr); - }; - cert.issuer.attributes = []; - cert.issuer.hash = null; - cert.subject = {}; - cert.subject.getField = function(sn) { - return _getAttribute(cert.subject, sn); - }; - cert.subject.addField = function(attr) { - _fillMissingFields([attr]); - cert.subject.attributes.push(attr); - }; - cert.subject.attributes = []; - cert.subject.hash = null; +/***/ }), - cert.extensions = []; - cert.publicKey = null; - cert.md = null; +/***/ 1223: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - /** - * Sets the subject of this certificate. - * - * @param attrs the array of subject attributes to use. - * @param uniqueId an optional a unique ID to use. - */ - cert.setSubject = function(attrs, uniqueId) { - // set new attributes, clear hash - _fillMissingFields(attrs); - cert.subject.attributes = attrs; - delete cert.subject.uniqueId; - if(uniqueId) { - // TODO: support arbitrary bit length ids - cert.subject.uniqueId = uniqueId; - } - cert.subject.hash = null; - }; +var wrappy = __nccwpck_require__(2940) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) - /** - * Sets the issuer of this certificate. - * - * @param attrs the array of issuer attributes to use. - * @param uniqueId an optional a unique ID to use. - */ - cert.setIssuer = function(attrs, uniqueId) { - // set new attributes, clear hash - _fillMissingFields(attrs); - cert.issuer.attributes = attrs; - delete cert.issuer.uniqueId; - if(uniqueId) { - // TODO: support arbitrary bit length ids - cert.issuer.uniqueId = uniqueId; - } - cert.issuer.hash = null; - }; +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) - /** - * Sets the extensions of this certificate. - * - * @param exts the array of extensions to use. - */ - cert.setExtensions = function(exts) { - for(var i = 0; i < exts.length; ++i) { - _fillMissingExtensionFields(exts[i], {cert: cert}); - } - // set new extensions - cert.extensions = exts; - }; + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) - /** - * Gets an extension by its name or id. - * - * @param options the name to use or an object with: - * name the name to use. - * id the id to use. - * - * @return the extension or null if not found. - */ - cert.getExtension = function(options) { - if(typeof options === 'string') { - options = {name: options}; - } +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} - var rval = null; - var ext; - for(var i = 0; rval === null && i < cert.extensions.length; ++i) { - ext = cert.extensions[i]; - if(options.id && ext.id === options.id) { - rval = ext; - } else if(options.name && ext.name === options.name) { - rval = ext; - } - } - return rval; - }; +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} - /** - * Signs this certificate using the given private key. - * - * @param key the private key to sign with. - * @param md the message digest object to use (defaults to forge.md.sha1). - */ - cert.sign = function(key, md) { - // TODO: get signature OID from private key - cert.md = md || forge.md.sha1.create(); - var algorithmOid = oids[cert.md.algorithm + 'WithRSAEncryption']; - if(!algorithmOid) { - var error = new Error('Could not compute certificate digest. ' + - 'Unknown message digest algorithm OID.'); - error.algorithm = cert.md.algorithm; - throw error; - } - cert.signatureOid = cert.siginfo.algorithmOid = algorithmOid; - // get TBSCertificate, convert to DER - cert.tbsCertificate = pki.getTBSCertificate(cert); - var bytes = asn1.toDer(cert.tbsCertificate); +/***/ }), - // digest and sign - cert.md.update(bytes.getBytes()); - cert.signature = key.sign(cert.md); - }; +/***/ 7684: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - /** - * Attempts verify the signature on the passed certificate using this - * certificate's public key. - * - * @param child the certificate to verify. - * - * @return true if verified, false if not. - */ - cert.verify = function(child) { - var rval = false; +"use strict"; - if(!cert.issued(child)) { - var issuer = child.issuer; - var subject = cert.subject; - var error = new Error( - 'The parent certificate did not issue the given child ' + - 'certificate; the child certificate\'s issuer does not match the ' + - 'parent\'s subject.'); - error.expectedIssuer = subject.attributes; - error.actualIssuer = issuer.attributes; - throw error; - } +const Queue = __nccwpck_require__(5185); - var md = child.md; - if(md === null) { - // create digest for OID signature types - md = _createSignatureDigest({ - signatureOid: child.signatureOid, - type: 'certificate' - }); +const pLimit = concurrency => { + if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { + throw new TypeError('Expected `concurrency` to be a number from 1 and up'); + } - // produce DER formatted TBSCertificate and digest it - var tbsCertificate = child.tbsCertificate || pki.getTBSCertificate(child); - var bytes = asn1.toDer(tbsCertificate); - md.update(bytes.getBytes()); - } + const queue = new Queue(); + let activeCount = 0; - if(md !== null) { - rval = _verifySignature({ - certificate: cert, md: md, signature: child.signature - }); - } + const next = () => { + activeCount--; - return rval; - }; + if (queue.size > 0) { + queue.dequeue()(); + } + }; - /** - * Returns true if this certificate's issuer matches the passed - * certificate's subject. Note that no signature check is performed. - * - * @param parent the certificate to check. - * - * @return true if this certificate's issuer matches the passed certificate's - * subject. - */ - cert.isIssuer = function(parent) { - var rval = false; + const run = async (fn, resolve, ...args) => { + activeCount++; - var i = cert.issuer; - var s = parent.subject; + const result = (async () => fn(...args))(); - // compare hashes if present - if(i.hash && s.hash) { - rval = (i.hash === s.hash); - } else if(i.attributes.length === s.attributes.length) { - // all attributes are the same so issuer matches subject - rval = true; - var iattr, sattr; - for(var n = 0; rval && n < i.attributes.length; ++n) { - iattr = i.attributes[n]; - sattr = s.attributes[n]; - if(iattr.type !== sattr.type || iattr.value !== sattr.value) { - // attribute mismatch - rval = false; - } - } - } + resolve(result); - return rval; - }; + try { + await result; + } catch {} - /** - * Returns true if this certificate's subject matches the issuer of the - * given certificate). Note that not signature check is performed. - * - * @param child the certificate to check. - * - * @return true if this certificate's subject matches the passed - * certificate's issuer. - */ - cert.issued = function(child) { - return child.isIssuer(cert); - }; + next(); + }; - /** - * Generates the subjectKeyIdentifier for this certificate as byte buffer. - * - * @return the subjectKeyIdentifier for this certificate as byte buffer. - */ - cert.generateSubjectKeyIdentifier = function() { - /* See: 4.2.1.2 section of the the RFC3280, keyIdentifier is either: + const enqueue = (fn, resolve, ...args) => { + queue.enqueue(run.bind(null, fn, resolve, ...args)); - (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the - value of the BIT STRING subjectPublicKey (excluding the tag, - length, and number of unused bits). + (async () => { + // This function needs to wait until the next microtask before comparing + // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously + // when the run function is dequeued and called. The comparison in the if-statement + // needs to happen asynchronously as well to get an up-to-date value for `activeCount`. + await Promise.resolve(); - (2) The keyIdentifier is composed of a four bit type field with - the value 0100 followed by the least significant 60 bits of the - SHA-1 hash of the value of the BIT STRING subjectPublicKey - (excluding the tag, length, and number of unused bit string bits). - */ + if (activeCount < concurrency && queue.size > 0) { + queue.dequeue()(); + } + })(); + }; - // skipping the tag, length, and number of unused bits is the same - // as just using the RSAPublicKey (for RSA keys, which are the - // only ones supported) - return pki.getPublicKeyFingerprint(cert.publicKey, {type: 'RSAPublicKey'}); - }; + const generator = (fn, ...args) => new Promise(resolve => { + enqueue(fn, resolve, ...args); + }); - /** - * Verifies the subjectKeyIdentifier extension value for this certificate - * against its public key. If no extension is found, false will be - * returned. - * - * @return true if verified, false if not. - */ - cert.verifySubjectKeyIdentifier = function() { - var oid = oids['subjectKeyIdentifier']; - for(var i = 0; i < cert.extensions.length; ++i) { - var ext = cert.extensions[i]; - if(ext.id === oid) { - var ski = cert.generateSubjectKeyIdentifier().getBytes(); - return (forge.util.hexToBytes(ext.subjectKeyIdentifier) === ski); - } - } - return false; - }; + Object.defineProperties(generator, { + activeCount: { + get: () => activeCount + }, + pendingCount: { + get: () => queue.size + }, + clearQueue: { + value: () => { + queue.clear(); + } + } + }); - return cert; + return generator; }; -/** - * Converts an X.509v3 RSA certificate from an ASN.1 object. - * - * Note: If the certificate is to be verified then compute hash should - * be set to true. There is currently no implementation for converting - * a certificate back to ASN.1 so the TBSCertificate part of the ASN.1 - * object needs to be scanned before the cert object is created. - * - * @param obj the asn1 representation of an X.509v3 RSA certificate. - * @param computeHash true to compute the hash for verification. - * - * @return the certificate. - */ -pki.certificateFromAsn1 = function(obj, computeHash) { - // validate certificate and capture data - var capture = {}; - var errors = []; - if(!asn1.validate(obj, x509CertificateValidator, capture, errors)) { - var error = new Error('Cannot read X.509 certificate. ' + - 'ASN.1 object is not an X509v3 Certificate.'); - error.errors = errors; - throw error; - } +module.exports = pLimit; - // get oid - var oid = asn1.derToOid(capture.publicKeyOid); - if(oid !== pki.oids.rsaEncryption) { - throw new Error('Cannot read public key. OID is not RSA.'); - } - // create certificate - var cert = pki.createCertificate(); - cert.version = capture.certVersion ? - capture.certVersion.charCodeAt(0) : 0; - var serial = forge.util.createBuffer(capture.certSerialNumber); - cert.serialNumber = serial.toHex(); - cert.signatureOid = forge.asn1.derToOid(capture.certSignatureOid); - cert.signatureParameters = _readSignatureParameters( - cert.signatureOid, capture.certSignatureParams, true); - cert.siginfo.algorithmOid = forge.asn1.derToOid(capture.certinfoSignatureOid); - cert.siginfo.parameters = _readSignatureParameters(cert.siginfo.algorithmOid, - capture.certinfoSignatureParams, false); - cert.signature = capture.certSignature; +/***/ }), - var validity = []; - if(capture.certValidity1UTCTime !== undefined) { - validity.push(asn1.utcTimeToDate(capture.certValidity1UTCTime)); - } - if(capture.certValidity2GeneralizedTime !== undefined) { - validity.push(asn1.generalizedTimeToDate( - capture.certValidity2GeneralizedTime)); - } - if(capture.certValidity3UTCTime !== undefined) { - validity.push(asn1.utcTimeToDate(capture.certValidity3UTCTime)); - } - if(capture.certValidity4GeneralizedTime !== undefined) { - validity.push(asn1.generalizedTimeToDate( - capture.certValidity4GeneralizedTime)); - } - if(validity.length > 2) { - throw new Error('Cannot read notBefore/notAfter validity times; more ' + - 'than two times were provided in the certificate.'); - } - if(validity.length < 2) { - throw new Error('Cannot read notBefore/notAfter validity times; they ' + - 'were not provided as either UTCTime or GeneralizedTime.'); - } - cert.validity.notBefore = validity[0]; - cert.validity.notAfter = validity[1]; +/***/ 3433: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - // keep TBSCertificate to preserve signature when exporting - cert.tbsCertificate = capture.tbsCertificate; +"use strict"; - if(computeHash) { - // create digest for OID signature type - cert.md = _createSignatureDigest({ - signatureOid: cert.signatureOid, - type: 'certificate' - }); +const {promisify} = __nccwpck_require__(3837); +const fs = __nccwpck_require__(7147); - // produce DER formatted TBSCertificate and digest it - var bytes = asn1.toDer(cert.tbsCertificate); - cert.md.update(bytes.getBytes()); - } +async function isType(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } - // handle issuer, build issuer message digest - var imd = forge.md.sha1.create(); - var ibytes = asn1.toDer(capture.certIssuer); - imd.update(ibytes.getBytes()); - cert.issuer.getField = function(sn) { - return _getAttribute(cert.issuer, sn); - }; - cert.issuer.addField = function(attr) { - _fillMissingFields([attr]); - cert.issuer.attributes.push(attr); - }; - cert.issuer.attributes = pki.RDNAttributesAsArray(capture.certIssuer); - if(capture.certIssuerUniqueId) { - cert.issuer.uniqueId = capture.certIssuerUniqueId; - } - cert.issuer.hash = imd.digest().toHex(); + try { + const stats = await promisify(fs[fsStatType])(filePath); + return stats[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } - // handle subject, build subject message digest - var smd = forge.md.sha1.create(); - var sbytes = asn1.toDer(capture.certSubject); - smd.update(sbytes.getBytes()); - cert.subject.getField = function(sn) { - return _getAttribute(cert.subject, sn); - }; - cert.subject.addField = function(attr) { - _fillMissingFields([attr]); - cert.subject.attributes.push(attr); - }; - cert.subject.attributes = pki.RDNAttributesAsArray(capture.certSubject); - if(capture.certSubjectUniqueId) { - cert.subject.uniqueId = capture.certSubjectUniqueId; - } - cert.subject.hash = smd.digest().toHex(); + throw error; + } +} + +function isTypeSync(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } - // handle extensions - if(capture.certExtensions) { - cert.extensions = pki.certificateExtensionsFromAsn1(capture.certExtensions); - } else { - cert.extensions = []; - } + try { + return fs[fsStatType](filePath)[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } - // convert RSA public key from ASN.1 - cert.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo); + throw error; + } +} - return cert; -}; +exports.isFile = isType.bind(null, 'stat', 'isFile'); +exports.isDirectory = isType.bind(null, 'stat', 'isDirectory'); +exports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink'); +exports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile'); +exports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory'); +exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); -/** - * Converts an ASN.1 extensions object (with extension sequences as its - * values) into an array of extension objects with types and values. - * - * Supported extensions: - * - * id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 } - * KeyUsage ::= BIT STRING { - * digitalSignature (0), - * nonRepudiation (1), - * keyEncipherment (2), - * dataEncipherment (3), - * keyAgreement (4), - * keyCertSign (5), - * cRLSign (6), - * encipherOnly (7), - * decipherOnly (8) - * } - * - * id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 } - * BasicConstraints ::= SEQUENCE { - * cA BOOLEAN DEFAULT FALSE, - * pathLenConstraint INTEGER (0..MAX) OPTIONAL - * } - * - * subjectAltName EXTENSION ::= { - * SYNTAX GeneralNames - * IDENTIFIED BY id-ce-subjectAltName - * } - * - * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName - * - * GeneralName ::= CHOICE { - * otherName [0] INSTANCE OF OTHER-NAME, - * rfc822Name [1] IA5String, - * dNSName [2] IA5String, - * x400Address [3] ORAddress, - * directoryName [4] Name, - * ediPartyName [5] EDIPartyName, - * uniformResourceIdentifier [6] IA5String, - * IPAddress [7] OCTET STRING, - * registeredID [8] OBJECT IDENTIFIER - * } - * - * OTHER-NAME ::= TYPE-IDENTIFIER - * - * EDIPartyName ::= SEQUENCE { - * nameAssigner [0] DirectoryString {ub-name} OPTIONAL, - * partyName [1] DirectoryString {ub-name} - * } - * - * @param exts the extensions ASN.1 with extension sequences to parse. - * - * @return the array. - */ -pki.certificateExtensionsFromAsn1 = function(exts) { - var rval = []; - for(var i = 0; i < exts.value.length; ++i) { - // get extension sequence - var extseq = exts.value[i]; - for(var ei = 0; ei < extseq.value.length; ++ei) { - rval.push(pki.certificateExtensionFromAsn1(extseq.value[ei])); - } - } - return rval; -}; +/***/ }), -/** - * Parses a single certificate extension from ASN.1. - * - * @param ext the extension in ASN.1 format. - * - * @return the parsed extension as an object. - */ -pki.certificateExtensionFromAsn1 = function(ext) { - // an extension has: - // [0] extnID OBJECT IDENTIFIER - // [1] critical BOOLEAN DEFAULT FALSE - // [2] extnValue OCTET STRING - var e = {}; - e.id = asn1.derToOid(ext.value[0].value); - e.critical = false; - if(ext.value[1].type === asn1.Type.BOOLEAN) { - e.critical = (ext.value[1].value.charCodeAt(0) !== 0x00); - e.value = ext.value[2].value; - } else { - e.value = ext.value[1].value; - } - // if the oid is known, get its name - if(e.id in oids) { - e.name = oids[e.id]; +/***/ 8569: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - // handle key usage - if(e.name === 'keyUsage') { - // get value as BIT STRING - var ev = asn1.fromDer(e.value); - var b2 = 0x00; - var b3 = 0x00; - if(ev.value.length > 1) { - // skip first byte, just indicates unused bits which - // will be padded with 0s anyway - // get bytes with flag bits - b2 = ev.value.charCodeAt(1); - b3 = ev.value.length > 2 ? ev.value.charCodeAt(2) : 0; - } - // set flags - e.digitalSignature = (b2 & 0x80) === 0x80; - e.nonRepudiation = (b2 & 0x40) === 0x40; - e.keyEncipherment = (b2 & 0x20) === 0x20; - e.dataEncipherment = (b2 & 0x10) === 0x10; - e.keyAgreement = (b2 & 0x08) === 0x08; - e.keyCertSign = (b2 & 0x04) === 0x04; - e.cRLSign = (b2 & 0x02) === 0x02; - e.encipherOnly = (b2 & 0x01) === 0x01; - e.decipherOnly = (b3 & 0x80) === 0x80; - } else if(e.name === 'basicConstraints') { - // handle basic constraints - // get value as SEQUENCE - var ev = asn1.fromDer(e.value); - // get cA BOOLEAN flag (defaults to false) - if(ev.value.length > 0 && ev.value[0].type === asn1.Type.BOOLEAN) { - e.cA = (ev.value[0].value.charCodeAt(0) !== 0x00); - } else { - e.cA = false; - } - // get path length constraint - var value = null; - if(ev.value.length > 0 && ev.value[0].type === asn1.Type.INTEGER) { - value = ev.value[0].value; - } else if(ev.value.length > 1) { - value = ev.value[1].value; - } - if(value !== null) { - e.pathLenConstraint = asn1.derToInteger(value); - } - } else if(e.name === 'extKeyUsage') { - // handle extKeyUsage - // value is a SEQUENCE of OIDs - var ev = asn1.fromDer(e.value); - for(var vi = 0; vi < ev.value.length; ++vi) { - var oid = asn1.derToOid(ev.value[vi].value); - if(oid in oids) { - e[oids[oid]] = true; - } else { - e[oid] = true; - } - } - } else if(e.name === 'nsCertType') { - // handle nsCertType - // get value as BIT STRING - var ev = asn1.fromDer(e.value); - var b2 = 0x00; - if(ev.value.length > 1) { - // skip first byte, just indicates unused bits which - // will be padded with 0s anyway - // get bytes with flag bits - b2 = ev.value.charCodeAt(1); - } - // set flags - e.client = (b2 & 0x80) === 0x80; - e.server = (b2 & 0x40) === 0x40; - e.email = (b2 & 0x20) === 0x20; - e.objsign = (b2 & 0x10) === 0x10; - e.reserved = (b2 & 0x08) === 0x08; - e.sslCA = (b2 & 0x04) === 0x04; - e.emailCA = (b2 & 0x02) === 0x02; - e.objCA = (b2 & 0x01) === 0x01; - } else if( - e.name === 'subjectAltName' || - e.name === 'issuerAltName') { - // handle subjectAltName/issuerAltName - e.altNames = []; +"use strict"; - // ev is a SYNTAX SEQUENCE - var gn; - var ev = asn1.fromDer(e.value); - for(var n = 0; n < ev.value.length; ++n) { - // get GeneralName - gn = ev.value[n]; - var altName = { - type: gn.type, - value: gn.value - }; - e.altNames.push(altName); +module.exports = __nccwpck_require__(3322); - // Note: Support for types 1,2,6,7,8 - switch(gn.type) { - // rfc822Name - case 1: - // dNSName - case 2: - // uniformResourceIdentifier (URI) - case 6: - break; - // IPAddress - case 7: - // convert to IPv4/IPv6 string representation - altName.ip = forge.util.bytesToIP(gn.value); - break; - // registeredID - case 8: - altName.oid = asn1.derToOid(gn.value); - break; - default: - // unsupported - } - } - } else if(e.name === 'subjectKeyIdentifier') { - // value is an OCTETSTRING w/the hash of the key-type specific - // public key structure (eg: RSAPublicKey) - var ev = asn1.fromDer(e.value); - e.subjectKeyIdentifier = forge.util.bytesToHex(ev.value); - } - } - return e; -}; -/** - * Converts a PKCS#10 certification request (CSR) from an ASN.1 object. - * - * Note: If the certification request is to be verified then compute hash - * should be set to true. There is currently no implementation for converting - * a certificate back to ASN.1 so the CertificationRequestInfo part of the - * ASN.1 object needs to be scanned before the csr object is created. - * - * @param obj the asn1 representation of a PKCS#10 certification request (CSR). - * @param computeHash true to compute the hash for verification. - * - * @return the certification request (CSR). - */ -pki.certificationRequestFromAsn1 = function(obj, computeHash) { - // validate certification request and capture data - var capture = {}; - var errors = []; - if(!asn1.validate(obj, certificationRequestValidator, capture, errors)) { - var error = new Error('Cannot read PKCS#10 certificate request. ' + - 'ASN.1 object is not a PKCS#10 CertificationRequest.'); - error.errors = errors; - throw error; - } +/***/ }), - // get oid - var oid = asn1.derToOid(capture.publicKeyOid); - if(oid !== pki.oids.rsaEncryption) { - throw new Error('Cannot read public key. OID is not RSA.'); - } +/***/ 6099: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - // create certification request - var csr = pki.createCertificationRequest(); - csr.version = capture.csrVersion ? capture.csrVersion.charCodeAt(0) : 0; - csr.signatureOid = forge.asn1.derToOid(capture.csrSignatureOid); - csr.signatureParameters = _readSignatureParameters( - csr.signatureOid, capture.csrSignatureParams, true); - csr.siginfo.algorithmOid = forge.asn1.derToOid(capture.csrSignatureOid); - csr.siginfo.parameters = _readSignatureParameters( - csr.siginfo.algorithmOid, capture.csrSignatureParams, false); - csr.signature = capture.csrSignature; +"use strict"; - // keep CertificationRequestInfo to preserve signature when exporting - csr.certificationRequestInfo = capture.certificationRequestInfo; - if(computeHash) { - // create digest for OID signature type - csr.md = _createSignatureDigest({ - signatureOid: csr.signatureOid, - type: 'certification request' - }); +const path = __nccwpck_require__(1017); +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; - // produce DER formatted CertificationRequestInfo and digest it - var bytes = asn1.toDer(csr.certificationRequestInfo); - csr.md.update(bytes.getBytes()); - } +/** + * Posix glob regex + */ - // handle subject, build subject message digest - var smd = forge.md.sha1.create(); - csr.subject.getField = function(sn) { - return _getAttribute(csr.subject, sn); - }; - csr.subject.addField = function(attr) { - _fillMissingFields([attr]); - csr.subject.attributes.push(attr); - }; - csr.subject.attributes = pki.RDNAttributesAsArray( - capture.certificationRequestInfoSubject, smd); - csr.subject.hash = smd.digest().toHex(); +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR = `${QMARK}*?`; - // convert RSA public key from ASN.1 - csr.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo); +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR +}; - // convert attributes from ASN.1 - csr.getAttribute = function(sn) { - return _getAttribute(csr, sn); - }; - csr.addAttribute = function(attr) { - _fillMissingFields([attr]); - csr.attributes.push(attr); - }; - csr.attributes = pki.CRIAttributesAsArray( - capture.certificationRequestInfoAttributes || []); +/** + * Windows glob regex + */ - return csr; +const WINDOWS_CHARS = { + ...POSIX_CHARS, + + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` }; /** - * Creates an empty certification request (a CSR or certificate signing - * request). Once created, its public key and attributes can be set and then - * it can be signed. - * - * @return the empty certification request. + * POSIX Bracket Regex */ -pki.createCertificationRequest = function() { - var csr = {}; - csr.version = 0x00; - csr.signatureOid = null; - csr.signature = null; - csr.siginfo = {}; - csr.siginfo.algorithmOid = null; - csr.subject = {}; - csr.subject.getField = function(sn) { - return _getAttribute(csr.subject, sn); - }; - csr.subject.addField = function(attr) { - _fillMissingFields([attr]); - csr.subject.attributes.push(attr); - }; - csr.subject.attributes = []; - csr.subject.hash = null; +const POSIX_REGEX_SOURCE = { + alnum: 'a-zA-Z0-9', + alpha: 'a-zA-Z', + ascii: '\\x00-\\x7F', + blank: ' \\t', + cntrl: '\\x00-\\x1F\\x7F', + digit: '0-9', + graph: '\\x21-\\x7E', + lower: 'a-z', + print: '\\x20-\\x7E ', + punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', + space: ' \\t\\r\\n\\v\\f', + upper: 'A-Z', + word: 'A-Za-z0-9_', + xdigit: 'A-Fa-f0-9' +}; - csr.publicKey = null; - csr.attributes = []; - csr.getAttribute = function(sn) { - return _getAttribute(csr, sn); - }; - csr.addAttribute = function(attr) { - _fillMissingFields([attr]); - csr.attributes.push(attr); - }; - csr.md = null; +module.exports = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, - /** - * Sets the subject of this certification request. - * - * @param attrs the array of subject attributes to use. - */ - csr.setSubject = function(attrs) { - // set new attributes - _fillMissingFields(attrs); - csr.subject.attributes = attrs; - csr.subject.hash = null; - }; + // regular expressions + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, - /** - * Sets the attributes of this certification request. - * - * @param attrs the array of attributes to use. - */ - csr.setAttributes = function(attrs) { - // set new attributes - _fillMissingFields(attrs); - csr.attributes = attrs; - }; + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, + + // Digits + CHAR_0: 48, /* 0 */ + CHAR_9: 57, /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 65, /* A */ + CHAR_LOWERCASE_A: 97, /* a */ + CHAR_UPPERCASE_Z: 90, /* Z */ + CHAR_LOWERCASE_Z: 122, /* z */ + + CHAR_LEFT_PARENTHESES: 40, /* ( */ + CHAR_RIGHT_PARENTHESES: 41, /* ) */ + + CHAR_ASTERISK: 42, /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, /* & */ + CHAR_AT: 64, /* @ */ + CHAR_BACKWARD_SLASH: 92, /* \ */ + CHAR_CARRIAGE_RETURN: 13, /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ + CHAR_COLON: 58, /* : */ + CHAR_COMMA: 44, /* , */ + CHAR_DOT: 46, /* . */ + CHAR_DOUBLE_QUOTE: 34, /* " */ + CHAR_EQUAL: 61, /* = */ + CHAR_EXCLAMATION_MARK: 33, /* ! */ + CHAR_FORM_FEED: 12, /* \f */ + CHAR_FORWARD_SLASH: 47, /* / */ + CHAR_GRAVE_ACCENT: 96, /* ` */ + CHAR_HASH: 35, /* # */ + CHAR_HYPHEN_MINUS: 45, /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ + CHAR_LEFT_CURLY_BRACE: 123, /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ + CHAR_LINE_FEED: 10, /* \n */ + CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ + CHAR_PERCENT: 37, /* % */ + CHAR_PLUS: 43, /* + */ + CHAR_QUESTION_MARK: 63, /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ + CHAR_SEMICOLON: 59, /* ; */ + CHAR_SINGLE_QUOTE: 39, /* ' */ + CHAR_SPACE: 32, /* */ + CHAR_TAB: 9, /* \t */ + CHAR_UNDERSCORE: 95, /* _ */ + CHAR_VERTICAL_LINE: 124, /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ + + SEP: path.sep, /** - * Signs this certification request using the given private key. - * - * @param key the private key to sign with. - * @param md the message digest object to use (defaults to forge.md.sha1). + * Create EXTGLOB_CHARS */ - csr.sign = function(key, md) { - // TODO: get signature OID from private key - csr.md = md || forge.md.sha1.create(); - var algorithmOid = oids[csr.md.algorithm + 'WithRSAEncryption']; - if(!algorithmOid) { - var error = new Error('Could not compute certification request digest. ' + - 'Unknown message digest algorithm OID.'); - error.algorithm = csr.md.algorithm; - throw error; - } - csr.signatureOid = csr.siginfo.algorithmOid = algorithmOid; - - // get CertificationRequestInfo, convert to DER - csr.certificationRequestInfo = pki.getCertificationRequestInfo(csr); - var bytes = asn1.toDer(csr.certificationRequestInfo); - // digest and sign - csr.md.update(bytes.getBytes()); - csr.signature = key.sign(csr.md); - }; + extglobChars(chars) { + return { + '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, + '?': { type: 'qmark', open: '(?:', close: ')?' }, + '+': { type: 'plus', open: '(?:', close: ')+' }, + '*': { type: 'star', open: '(?:', close: ')*' }, + '@': { type: 'at', open: '(?:', close: ')' } + }; + }, /** - * Attempts verify the signature on the passed certification request using - * its public key. - * - * A CSR that has been exported to a file in PEM format can be verified using - * OpenSSL using this command: - * - * openssl req -in -verify -noout -text - * - * @return true if verified, false if not. + * Create GLOB_CHARS */ - csr.verify = function() { - var rval = false; - var md = csr.md; - if(md === null) { - md = _createSignatureDigest({ - signatureOid: csr.signatureOid, - type: 'certification request' - }); + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } +}; - // produce DER formatted CertificationRequestInfo and digest it - var cri = csr.certificationRequestInfo || - pki.getCertificationRequestInfo(csr); - var bytes = asn1.toDer(cri); - md.update(bytes.getBytes()); - } - if(md !== null) { - rval = _verifySignature({ - certificate: csr, md: md, signature: csr.signature - }); - } +/***/ }), - return rval; - }; +/***/ 2139: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - return csr; -}; +"use strict"; + + +const constants = __nccwpck_require__(6099); +const utils = __nccwpck_require__(479); /** - * Converts an X.509 subject or issuer to an ASN.1 RDNSequence. - * - * @param obj the subject or issuer (distinguished name). - * - * @return the ASN.1 RDNSequence. + * Constants */ -function _dnToAsn1(obj) { - // create an empty RDNSequence - var rval = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); - // iterate over attributes - var attr, set; - var attrs = obj.attributes; - for(var i = 0; i < attrs.length; ++i) { - attr = attrs[i]; - var value = attr.value; +const { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants; - // reuse tag class for attribute value if available - var valueTagClass = asn1.Type.PRINTABLESTRING; - if('valueTagClass' in attr) { - valueTagClass = attr.valueTagClass; +/** + * Helpers + */ - if(valueTagClass === asn1.Type.UTF8) { - value = forge.util.encodeUtf8(value); - } - // FIXME: handle more encodings - } +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); + } - // create a RelativeDistinguishedName set - // each value in the set is an AttributeTypeAndValue first - // containing the type (an OID) and second the value - set = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // AttributeType - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(attr.type).getBytes()), - // AttributeValue - asn1.create(asn1.Class.UNIVERSAL, valueTagClass, false, value) - ]) - ]); - rval.value.push(set); + args.sort(); + const value = `[${args.join('-')}]`; + + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils.escapeRegex(v)).join('..'); } - return rval; -} + return value; +}; /** - * Gets all printable attributes (typically of an issuer or subject) in a - * simplified JSON format for display. - * - * @param attrs the attributes. - * - * @return the JSON for display. + * Create the message for a syntax error */ -function _getAttributesAsJson(attrs) { - var rval = {}; - for(var i = 0; i < attrs.length; ++i) { - var attr = attrs[i]; - if(attr.shortName && ( - attr.valueTagClass === asn1.Type.UTF8 || - attr.valueTagClass === asn1.Type.PRINTABLESTRING || - attr.valueTagClass === asn1.Type.IA5STRING)) { - var value = attr.value; - if(attr.valueTagClass === asn1.Type.UTF8) { - value = forge.util.encodeUtf8(attr.value); - } - if(!(attr.shortName in rval)) { - rval[attr.shortName] = value; - } else if(forge.util.isArray(rval[attr.shortName])) { - rval[attr.shortName].push(value); - } else { - rval[attr.shortName] = [rval[attr.shortName], value]; - } - } - } - return rval; -} + +const syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; /** - * Fills in missing fields in attributes. - * - * @param attrs the attributes to fill missing fields in. + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} */ -function _fillMissingFields(attrs) { - var attr; - for(var i = 0; i < attrs.length; ++i) { - attr = attrs[i]; - - // populate missing name - if(typeof attr.name === 'undefined') { - if(attr.type && attr.type in pki.oids) { - attr.name = pki.oids[attr.type]; - } else if(attr.shortName && attr.shortName in _shortNames) { - attr.name = pki.oids[_shortNames[attr.shortName]]; - } - } - // populate missing type (OID) - if(typeof attr.type === 'undefined') { - if(attr.name && attr.name in pki.oids) { - attr.type = pki.oids[attr.name]; - } else { - var error = new Error('Attribute type not specified.'); - error.attribute = attr; - throw error; - } - } +const parse = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } - // populate missing shortname - if(typeof attr.shortName === 'undefined') { - if(attr.name && attr.name in _shortNames) { - attr.shortName = _shortNames[attr.name]; - } - } + input = REPLACEMENTS[input] || input; - // convert extensions to value - if(attr.type === oids.extensionRequest) { - attr.valueConstructed = true; - attr.valueTagClass = asn1.Type.SEQUENCE; - if(!attr.value && attr.extensions) { - attr.value = []; - for(var ei = 0; ei < attr.extensions.length; ++ei) { - attr.value.push(pki.certificateExtensionToAsn1( - _fillMissingExtensionFields(attr.extensions[ei]))); - } - } - } + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - if(typeof attr.value === 'undefined') { - var error = new Error('Attribute value not specified.'); - error.attribute = attr; - throw error; - } + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); } -} -/** - * Fills in missing fields in certificate extensions. - * - * @param e the extension. - * @param [options] the options to use. - * [cert] the certificate the extensions are for. - * - * @return the extension. - */ -function _fillMissingExtensionFields(e, options) { - options = options || {}; + const bos = { type: 'bos', value: '', output: opts.prepend || '' }; + const tokens = [bos]; - // populate missing name - if(typeof e.name === 'undefined') { - if(e.id && e.id in pki.oids) { - e.name = pki.oids[e.id]; - } - } + const capture = opts.capture ? '' : '?:'; + const win32 = utils.isWindows(options); - // populate missing id - if(typeof e.id === 'undefined') { - if(e.name && e.name in pki.oids) { - e.id = pki.oids[e.name]; - } else { - var error = new Error('Extension ID not specified.'); - error.extension = e; - throw error; - } + // create constants based on platform, for windows or posix + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + + const globstar = opts => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + + if (opts.capture) { + star = `(${star})`; } - if(typeof e.value !== 'undefined') { - return e; + // minimatch options support + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; } - // handle missing value: + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; - // value is a BIT STRING - if(e.name === 'keyUsage') { - // build flags - var unused = 0; - var b2 = 0x00; - var b3 = 0x00; - if(e.digitalSignature) { - b2 |= 0x80; - unused = 7; - } - if(e.nonRepudiation) { - b2 |= 0x40; - unused = 6; - } - if(e.keyEncipherment) { - b2 |= 0x20; - unused = 5; - } - if(e.dataEncipherment) { - b2 |= 0x10; - unused = 4; - } - if(e.keyAgreement) { - b2 |= 0x08; - unused = 3; - } - if(e.keyCertSign) { - b2 |= 0x04; - unused = 2; - } - if(e.cRLSign) { - b2 |= 0x02; - unused = 1; - } - if(e.encipherOnly) { - b2 |= 0x01; - unused = 0; - } - if(e.decipherOnly) { - b3 |= 0x80; - unused = 7; - } + input = utils.removePrefix(input, state); + len = input.length; - // create bit string - var value = String.fromCharCode(unused); - if(b3 !== 0) { - value += String.fromCharCode(b2) + String.fromCharCode(b3); - } else if(b2 !== 0) { - value += String.fromCharCode(b2); - } - e.value = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value); - } else if(e.name === 'basicConstraints') { - // basicConstraints is a SEQUENCE - e.value = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); - // cA BOOLEAN flag defaults to false - if(e.cA) { - e.value.value.push(asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false, - String.fromCharCode(0xFF))); - } - if('pathLenConstraint' in e) { - e.value.value.push(asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, - asn1.integerToDer(e.pathLenConstraint).getBytes())); - } - } else if(e.name === 'extKeyUsage') { - // extKeyUsage is a SEQUENCE of OIDs - e.value = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); - var seq = e.value.value; - for(var key in e) { - if(e[key] !== true) { - continue; - } - // key is name in OID map - if(key in oids) { - seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, - false, asn1.oidToDer(oids[key]).getBytes())); - } else if(key.indexOf('.') !== -1) { - // assume key is an OID - seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, - false, asn1.oidToDer(key).getBytes())); - } - } - } else if(e.name === 'nsCertType') { - // nsCertType is a BIT STRING - // build flags - var unused = 0; - var b2 = 0x00; + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; - if(e.client) { - b2 |= 0x80; - unused = 7; - } - if(e.server) { - b2 |= 0x40; - unused = 6; - } - if(e.email) { - b2 |= 0x20; - unused = 5; - } - if(e.objsign) { - b2 |= 0x10; - unused = 4; - } - if(e.reserved) { - b2 |= 0x08; - unused = 3; - } - if(e.sslCA) { - b2 |= 0x04; - unused = 2; - } - if(e.emailCA) { - b2 |= 0x02; - unused = 1; - } - if(e.objCA) { - b2 |= 0x01; - unused = 0; - } + /** + * Tokenizing helpers + */ - // create bit string - var value = String.fromCharCode(unused); - if(b2 !== 0) { - value += String.fromCharCode(b2); - } - e.value = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value); - } else if(e.name === 'subjectAltName' || e.name === 'issuerAltName') { - // SYNTAX SEQUENCE - e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index] || ''; + const remaining = () => input.slice(state.index + 1); + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; + }; - var altName; - for(var n = 0; n < e.altNames.length; ++n) { - altName = e.altNames[n]; - var value = altName.value; - // handle IP - if(altName.type === 7 && altName.ip) { - value = forge.util.bytesFromIP(altName.ip); - if(value === null) { - var error = new Error( - 'Extension "ip" value is not a valid IPv4 or IPv6 address.'); - error.extension = e; - throw error; - } - } else if(altName.type === 8) { - // handle OID - if(altName.oid) { - value = asn1.oidToDer(asn1.oidToDer(altName.oid)); - } else { - // deprecated ... convert value to OID - value = asn1.oidToDer(value); - } - } - e.value.value.push(asn1.create( - asn1.Class.CONTEXT_SPECIFIC, altName.type, false, - value)); + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + + const negate = () => { + let count = 1; + + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; } - } else if(e.name === 'nsComment' && options.cert) { - // sanity check value is ASCII (req'd) and not too big - if(!(/^[\x00-\x7F]*$/.test(e.comment)) || - (e.comment.length < 1) || (e.comment.length > 128)) { - throw new Error('Invalid "nsComment" content.'); + + if (count % 2 === 0) { + return false; } - // IA5STRING opaque comment - e.value = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.IA5STRING, false, e.comment); - } else if(e.name === 'subjectKeyIdentifier' && options.cert) { - var ski = options.cert.generateSubjectKeyIdentifier(); - e.subjectKeyIdentifier = ski.toHex(); - // OCTETSTRING w/digest - e.value = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ski.getBytes()); - } else if(e.name === 'authorityKeyIdentifier' && options.cert) { - // SYNTAX SEQUENCE - e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); - var seq = e.value.value; - if(e.keyIdentifier) { - var keyIdentifier = (e.keyIdentifier === true ? - options.cert.generateSubjectKeyIdentifier().getBytes() : - e.keyIdentifier); - seq.push( - asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, false, keyIdentifier)); + state.negated = true; + state.start++; + return true; + }; + + const increment = type => { + state[type]++; + stack.push(type); + }; + + const decrement = type => { + state[type]--; + stack.pop(); + }; + + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ + + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); + + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; + } } - if(e.authorityCertIssuer) { - var authorityCertIssuer = [ - asn1.create(asn1.Class.CONTEXT_SPECIFIC, 4, true, [ - _dnToAsn1(e.authorityCertIssuer === true ? - options.cert.issuer : e.authorityCertIssuer) - ]) - ]; - seq.push( - asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, authorityCertIssuer)); + if (extglobs.length && tok.type !== 'paren') { + extglobs[extglobs.length - 1].inner += tok.value; } - if(e.serialNumber) { - var serialNumber = forge.util.hexToBytes(e.serialNumber === true ? - options.cert.serialNumber : e.serialNumber); - seq.push( - asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, false, serialNumber)); + if (tok.value || tok.output) append(tok); + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; } - } else if(e.name === 'cRLDistributionPoints') { - e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); - var seq = e.value.value; - // Create sub SEQUENCE of DistributionPointName - var subSeq = asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; - // Create fullName CHOICE - var fullNameGeneralNames = asn1.create( - asn1.Class.CONTEXT_SPECIFIC, 0, true, []); - var altName; - for(var n = 0; n < e.altNames.length; ++n) { - altName = e.altNames[n]; - var value = altName.value; - // handle IP - if(altName.type === 7 && altName.ip) { - value = forge.util.bytesFromIP(altName.ip); - if(value === null) { - var error = new Error( - 'Extension "ip" value is not a valid IPv4 or IPv6 address.'); - error.extension = e; - throw error; - } - } else if(altName.type === 8) { - // handle OID - if(altName.oid) { - value = asn1.oidToDer(asn1.oidToDer(altName.oid)); - } else { - // deprecated ... convert value to OID - value = asn1.oidToDer(value); - } - } - fullNameGeneralNames.value.push(asn1.create( - asn1.Class.CONTEXT_SPECIFIC, altName.type, false, - value)); - } + const extglobOpen = (type, value) => { + const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; - // Add to the parent SEQUENCE - subSeq.value.push(asn1.create( - asn1.Class.CONTEXT_SPECIFIC, 0, true, [fullNameGeneralNames])); - seq.push(subSeq); - } + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; - // ensure value has been defined by now - if(typeof e.value === 'undefined') { - var error = new Error('Extension value not specified.'); - error.extension = e; - throw error; - } + increment('parens'); + push({ type, value, output: state.output ? '' : ONE_CHAR }); + push({ type: 'paren', extglob: true, value: advance(), output }); + extglobs.push(token); + }; - return e; -} + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); + let rest; -/** - * Convert signature parameters object to ASN.1 - * - * @param {String} oid Signature algorithm OID - * @param params The signature parametrs object - * @return ASN.1 object representing signature parameters - */ -function _signatureParametersToAsn1(oid, params) { - switch(oid) { - case oids['RSASSA-PSS']: - var parts = []; + if (token.type === 'negate') { + let extglobStar = star; - if(params.hash.algorithmOid !== undefined) { - parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(params.hash.algorithmOid).getBytes()), - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '') - ]) - ])); + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); } - if(params.mgf.algorithmOid !== undefined) { - parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(params.mgf.algorithmOid).getBytes()), - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(params.mgf.hash.algorithmOid).getBytes()), - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '') - ]) - ]) - ])); + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; } - if(params.saltLength !== undefined) { - parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, - asn1.integerToDer(params.saltLength).getBytes()) - ])); + if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + output = token.close = `)${rest})${extglobStar})`; } - return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, parts); + if (token.prev.type === 'bos') { + state.negatedExtglob = true; + } + } - default: - return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, ''); - } -} + push({ type: 'paren', extglob: true, value, output }); + decrement('parens'); + }; -/** - * Converts a certification request's attributes to an ASN.1 set of - * CRIAttributes. - * - * @param csr certification request. - * - * @return the ASN.1 set of CRIAttributes. - */ -function _CRIAttributesToAsn1(csr) { - // create an empty context-specific container - var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []); + /** + * Fast paths + */ - // no attributes, return empty container - if(csr.attributes.length === 0) { - return rval; - } + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; - // each attribute has a sequence with a type and a set of values - var attrs = csr.attributes; - for(var i = 0; i < attrs.length; ++i) { - var attr = attrs[i]; - var value = attr.value; + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } - // reuse tag class for attribute value if available - var valueTagClass = asn1.Type.UTF8; - if('valueTagClass' in attr) { - valueTagClass = attr.valueTagClass; - } - if(valueTagClass === asn1.Type.UTF8) { - value = forge.util.encodeUtf8(value); + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } + return QMARK.repeat(chars.length); + } + + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } + + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } + return star; + } + return esc ? m : `\\${m}`; + }); + + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); + }); + } } - var valueConstructed = false; - if('valueConstructed' in attr) { - valueConstructed = attr.valueConstructed; + + if (output === input && opts.contains === true) { + state.output = input; + return state; } - // FIXME: handle more encodings - // create a RelativeDistinguishedName set - // each value in the set is an AttributeTypeAndValue first - // containing the type (an OID) and second the value - var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // AttributeType - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(attr.type).getBytes()), - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [ - // AttributeValue - asn1.create( - asn1.Class.UNIVERSAL, valueTagClass, valueConstructed, value) - ]) - ]); - rval.value.push(seq); + state.output = utils.wrapOutput(output, state, options); + return state; } - return rval; -} + /** + * Tokenize input until we reach end-of-string + */ -var jan_1_1950 = new Date('1950-01-01T00:00:00Z'); -var jan_1_2050 = new Date('2050-01-01T00:00:00Z'); + while (!eos()) { + value = advance(); -/** - * Converts a Date object to ASN.1 - * Handles the different format before and after 1st January 2050 - * - * @param date date object. - * - * @return the ASN.1 object representing the date. - */ -function _dateToAsn1(date) { - if(date >= jan_1_1950 && date < jan_1_2050) { - return asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false, - asn1.dateToUtcTime(date)); - } else { - return asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false, - asn1.dateToGeneralizedTime(date)); - } -} + if (value === '\u0000') { + continue; + } -/** - * Gets the ASN.1 TBSCertificate part of an X.509v3 certificate. - * - * @param cert the certificate. - * - * @return the asn1 TBSCertificate. - */ -pki.getTBSCertificate = function(cert) { - // TBSCertificate - var notBefore = _dateToAsn1(cert.validity.notBefore); - var notAfter = _dateToAsn1(cert.validity.notAfter); - var tbs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // version - asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [ - // integer - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, - asn1.integerToDer(cert.version).getBytes()) - ]), - // serialNumber - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, - forge.util.hexToBytes(cert.serialNumber)), - // signature - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // algorithm - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(cert.siginfo.algorithmOid).getBytes()), - // parameters - _signatureParametersToAsn1( - cert.siginfo.algorithmOid, cert.siginfo.parameters) - ]), - // issuer - _dnToAsn1(cert.issuer), - // validity - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - notBefore, - notAfter - ]), - // subject - _dnToAsn1(cert.subject), - // SubjectPublicKeyInfo - pki.publicKeyToAsn1(cert.publicKey) - ]); + /** + * Escaped characters + */ - if(cert.issuer.uniqueId) { - // issuerUniqueID (optional) - tbs.value.push( - asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, - // TODO: support arbitrary bit length ids - String.fromCharCode(0x00) + - cert.issuer.uniqueId - ) - ]) - ); - } - if(cert.subject.uniqueId) { - // subjectUniqueID (optional) - tbs.value.push( - asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [ - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, - // TODO: support arbitrary bit length ids - String.fromCharCode(0x00) + - cert.subject.uniqueId - ) - ]) - ); - } + if (value === '\\') { + const next = peek(); - if(cert.extensions.length > 0) { - // extensions (optional) - tbs.value.push(pki.certificateExtensionsToAsn1(cert.extensions)); - } + if (next === '/' && opts.bash !== true) { + continue; + } - return tbs; -}; + if (next === '.' || next === ';') { + continue; + } -/** - * Gets the ASN.1 CertificationRequestInfo part of a - * PKCS#10 CertificationRequest. - * - * @param csr the certification request. - * - * @return the asn1 CertificationRequestInfo. - */ -pki.getCertificationRequestInfo = function(csr) { - // CertificationRequestInfo - var cri = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // version - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false, - asn1.integerToDer(csr.version).getBytes()), - // subject - _dnToAsn1(csr.subject), - // SubjectPublicKeyInfo - pki.publicKeyToAsn1(csr.publicKey), - // attributes - _CRIAttributesToAsn1(csr) - ]); + if (!next) { + value += '\\'; + push({ type: 'text', value }); + continue; + } - return cri; -}; + // collapse slashes to reduce potential for exploits + const match = /^\\+/.exec(remaining()); + let slashes = 0; -/** - * Converts a DistinguishedName (subject or issuer) to an ASN.1 object. - * - * @param dn the DistinguishedName. - * - * @return the asn1 representation of a DistinguishedName. - */ -pki.distinguishedNameToAsn1 = function(dn) { - return _dnToAsn1(dn); -}; + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += '\\'; + } + } -/** - * Converts an X.509v3 RSA certificate to an ASN.1 object. - * - * @param cert the certificate. - * - * @return the asn1 representation of an X.509v3 RSA certificate. - */ -pki.certificateToAsn1 = function(cert) { - // prefer cached TBSCertificate over generating one - var tbsCertificate = cert.tbsCertificate || pki.getTBSCertificate(cert); + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } - // Certificate - return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // TBSCertificate - tbsCertificate, - // AlgorithmIdentifier (signature algorithm) - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // algorithm - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(cert.signatureOid).getBytes()), - // parameters - _signatureParametersToAsn1(cert.signatureOid, cert.signatureParameters) - ]), - // SignatureValue - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, - String.fromCharCode(0x00) + cert.signature) - ]); -}; + if (state.brackets === 0) { + push({ type: 'text', value }); + continue; + } + } -/** - * Converts X.509v3 certificate extensions to ASN.1. - * - * @param exts the extensions to convert. - * - * @return the extensions in ASN.1 format. - */ -pki.certificateExtensionsToAsn1 = function(exts) { - // create top-level extension container - var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 3, true, []); + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ - // create extension sequence (stores a sequence for each extension) - var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); - rval.value.push(seq); + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); + if (inner.includes('[')) { + prev.posix = true; - for(var i = 0; i < exts.length; ++i) { - seq.value.push(pki.certificateExtensionToAsn1(exts[i])); - } + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); - return rval; -}; + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } -/** - * Converts a single certificate extension to ASN.1. - * - * @param ext the extension to convert. - * - * @return the extension in ASN.1 format. - */ -pki.certificateExtensionToAsn1 = function(ext) { - // create a sequence for each extension - var extseq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []); + if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { + value = `\\${value}`; + } - // extnID (OID) - extseq.value.push(asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(ext.id).getBytes())); + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } - // critical defaults to false - if(ext.critical) { - // critical BOOLEAN DEFAULT FALSE - extseq.value.push(asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false, - String.fromCharCode(0xFF))); - } + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; + } - var value = ext.value; - if(typeof ext.value !== 'string') { - // value is asn.1 - value = asn1.toDer(value).getBytes(); - } + prev.value += value; + append({ value }); + continue; + } - // extnValue (OCTET STRING) - extseq.value.push(asn1.create( - asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, value)); + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ - return extseq; -}; + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ value }); + continue; + } -/** - * Converts a PKCS#10 certification request to an ASN.1 object. - * - * @param csr the certification request. - * - * @return the asn1 representation of a certification request. - */ -pki.certificationRequestToAsn1 = function(csr) { - // prefer cached CertificationRequestInfo over generating one - var cri = csr.certificationRequestInfo || - pki.getCertificationRequestInfo(csr); + /** + * Double quotes + */ - // Certificate - return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // CertificationRequestInfo - cri, - // AlgorithmIdentifier (signature algorithm) - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [ - // algorithm - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false, - asn1.oidToDer(csr.signatureOid).getBytes()), - // parameters - _signatureParametersToAsn1(csr.signatureOid, csr.signatureParameters) - ]), - // signature - asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, - String.fromCharCode(0x00) + csr.signature) - ]); -}; + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ type: 'text', value }); + } + continue; + } -/** - * Creates a CA store. - * - * @param certs an optional array of certificate objects or PEM-formatted - * certificate strings to add to the CA store. - * - * @return the CA store. - */ -pki.createCaStore = function(certs) { - // create CA store - var caStore = { - // stored certificates - certs: {} - }; + /** + * Parentheses + */ - /** - * Gets the certificate that issued the passed certificate or its - * 'parent'. - * - * @param cert the certificate to get the parent for. - * - * @return the parent certificate or null if none was found. - */ - caStore.getIssuer = function(cert) { - var rval = getBySubject(cert.issuer); + if (value === '(') { + increment('parens'); + push({ type: 'paren', value }); + continue; + } - // see if there are multiple matches - /*if(forge.util.isArray(rval)) { - // TODO: resolve multiple matches by checking - // authorityKey/subjectKey/issuerUniqueID/other identifiers, etc. - // FIXME: or alternatively do authority key mapping - // if possible (X.509v1 certs can't work?) - throw new Error('Resolving multiple issuer matches not implemented yet.'); - }*/ + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '(')); + } - return rval; - }; + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } - /** - * Adds a trusted certificate to the store. - * - * @param cert the certificate to add as a trusted certificate (either a - * pki.certificate object or a PEM-formatted certificate). - */ - caStore.addCertificate = function(cert) { - // convert from pem if necessary - if(typeof cert === 'string') { - cert = forge.pki.certificateFromPem(cert); + push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); + decrement('parens'); + continue; } - ensureSubjectHasHash(cert.subject); + /** + * Square brackets + */ - if(!caStore.hasCertificate(cert)) { // avoid duplicate certificates in store - if(cert.subject.hash in caStore.certs) { - // subject hash already exists, append to array - var tmp = caStore.certs[cert.subject.hash]; - if(!forge.util.isArray(tmp)) { - tmp = [tmp]; + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('closing', ']')); } - tmp.push(cert); - caStore.certs[cert.subject.hash] = tmp; + + value = `\\${value}`; } else { - caStore.certs[cert.subject.hash] = cert; + increment('brackets'); } - } - }; - /** - * Checks to see if the given certificate is in the store. - * - * @param cert the certificate to check (either a pki.certificate or a - * PEM-formatted certificate). - * - * @return true if the certificate is in the store, false if not. - */ - caStore.hasCertificate = function(cert) { - // convert from pem if necessary - if(typeof cert === 'string') { - cert = forge.pki.certificateFromPem(cert); + push({ type: 'bracket', value }); + continue; } - var match = getBySubject(cert.subject); - if(!match) { - return false; - } - if(!forge.util.isArray(match)) { - match = [match]; - } - // compare DER-encoding of certificates - var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes(); - for(var i = 0; i < match.length; ++i) { - var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes(); - if(der1 === der2) { - return true; + if (value === ']') { + if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { + push({ type: 'text', value, output: `\\${value}` }); + continue; } - } - return false; - }; - - /** - * Lists all of the certificates kept in the store. - * - * @return an array of all of the pki.certificate objects in the store. - */ - caStore.listAllCertificates = function() { - var certList = []; - for(var hash in caStore.certs) { - if(caStore.certs.hasOwnProperty(hash)) { - var value = caStore.certs[hash]; - if(!forge.util.isArray(value)) { - certList.push(value); - } else { - for(var i = 0; i < value.length; ++i) { - certList.push(value[i]); - } + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '[')); } + + push({ type: 'text', value, output: `\\${value}` }); + continue; } - } - return certList; - }; + decrement('brackets'); - /** - * Removes a certificate from the store. - * - * @param cert the certificate to remove (either a pki.certificate or a - * PEM-formatted certificate). - * - * @return the certificate that was removed or null if the certificate - * wasn't in store. - */ - caStore.removeCertificate = function(cert) { - var result; + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } - // convert from pem if necessary - if(typeof cert === 'string') { - cert = forge.pki.certificateFromPem(cert); - } - ensureSubjectHasHash(cert.subject); - if(!caStore.hasCertificate(cert)) { - return null; - } + prev.value += value; + append({ value }); - var match = getBySubject(cert.subject); + // when literal brackets are explicitly disabled + // assume we should match with a regex character class + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + continue; + } - if(!forge.util.isArray(match)) { - result = caStore.certs[cert.subject.hash]; - delete caStore.certs[cert.subject.hash]; - return result; - } + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); - // compare DER-encoding of certificates - var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes(); - for(var i = 0; i < match.length; ++i) { - var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes(); - if(der1 === der2) { - result = match[i]; - match.splice(i, 1); + // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; } - } - if(match.length === 0) { - delete caStore.certs[cert.subject.hash]; + + // when the user specifies nothing, try to match both + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; } - return result; - }; + /** + * Braces + */ - function getBySubject(subject) { - ensureSubjectHasHash(subject); - return caStore.certs[subject.hash] || null; - } + if (value === '{' && opts.nobrace !== true) { + increment('braces'); - function ensureSubjectHasHash(subject) { - // produce subject hash if it doesn't exist - if(!subject.hash) { - var md = forge.md.sha1.create(); - subject.attributes = pki.RDNAttributesAsArray(_dnToAsn1(subject), md); - subject.hash = md.digest().toHex(); - } - } + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; - // auto-add passed in certs - if(certs) { - // parse PEM-formatted certificates as necessary - for(var i = 0; i < certs.length; ++i) { - var cert = certs[i]; - caStore.addCertificate(cert); + braces.push(open); + push(open); + continue; } - } - return caStore; -}; + if (value === '}') { + const brace = braces[braces.length - 1]; -/** - * Certificate verification errors, based on TLS. - */ -pki.certificateError = { - bad_certificate: 'forge.pki.BadCertificate', - unsupported_certificate: 'forge.pki.UnsupportedCertificate', - certificate_revoked: 'forge.pki.CertificateRevoked', - certificate_expired: 'forge.pki.CertificateExpired', - certificate_unknown: 'forge.pki.CertificateUnknown', - unknown_ca: 'forge.pki.UnknownCertificateAuthority' -}; + if (opts.nobrace === true || !brace) { + push({ type: 'text', value, output: value }); + continue; + } -/** - * Verifies a certificate chain against the given Certificate Authority store - * with an optional custom verify callback. - * - * @param caStore a certificate store to verify against. - * @param chain the certificate chain to verify, with the root or highest - * authority at the end (an array of certificates). - * @param options a callback to be called for every certificate in the chain or - * an object with: - * verify a callback to be called for every certificate in the - * chain - * validityCheckDate the date against which the certificate - * validity period should be checked. Pass null to not check - * the validity period. By default, the current date is used. - * - * The verify callback has the following signature: - * - * verified - Set to true if certificate was verified, otherwise the - * pki.certificateError for why the certificate failed. - * depth - The current index in the chain, where 0 is the end point's cert. - * certs - The certificate chain, *NOTE* an empty chain indicates an anonymous - * end point. - * - * The function returns true on success and on failure either the appropriate - * pki.certificateError or an object with 'error' set to the appropriate - * pki.certificateError and 'message' set to a custom error message. - * - * @return true if successful, error thrown if not. - */ -pki.verifyCertificateChain = function(caStore, chain, options) { - /* From: RFC3280 - Internet X.509 Public Key Infrastructure Certificate - Section 6: Certification Path Validation - See inline parentheticals related to this particular implementation. + let output = ')'; - The primary goal of path validation is to verify the binding between - a subject distinguished name or a subject alternative name and subject - public key, as represented in the end entity certificate, based on the - public key of the trust anchor. This requires obtaining a sequence of - certificates that support that binding. That sequence should be provided - in the passed 'chain'. The trust anchor should be in the given CA - store. The 'end entity' certificate is the certificate provided by the - end point (typically a server) and is the first in the chain. + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; - To meet this goal, the path validation process verifies, among other - things, that a prospective certification path (a sequence of n - certificates or a 'chain') satisfies the following conditions: + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === 'brace') { + break; + } + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } - (a) for all x in {1, ..., n-1}, the subject of certificate x is - the issuer of certificate x+1; + output = expandRange(range, opts); + state.backtrack = true; + } - (b) certificate 1 is issued by the trust anchor; + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; + for (const t of toks) { + state.output += (t.output || t.value); + } + } - (c) certificate n is the certificate to be validated; and + push({ type: 'brace', value, output }); + decrement('braces'); + braces.pop(); + continue; + } - (d) for all x in {1, ..., n}, the certificate was valid at the - time in question. + /** + * Pipes + */ - Note that here 'n' is index 0 in the chain and 1 is the last certificate - in the chain and it must be signed by a certificate in the connection's - CA store. + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ type: 'text', value }); + continue; + } - The path validation process also determines the set of certificate - policies that are valid for this path, based on the certificate policies - extension, policy mapping extension, policy constraints extension, and - inhibit any-policy extension. + /** + * Commas + */ + + if (value === ',') { + let output = value; + + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } + + push({ type: 'comma', value, output }); + continue; + } + + /** + * Slashes + */ + + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token + continue; + } - Note: Policy mapping extension not supported (Not Required). + push({ type: 'slash', value, output: SLASH_LITERAL }); + continue; + } - Note: If the certificate has an unsupported critical extension, then it - must be rejected. + /** + * Dots + */ - Note: A certificate is self-issued if the DNs that appear in the subject - and issuer fields are identical and are not empty. + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } - The path validation algorithm assumes the following seven inputs are - provided to the path processing logic. What this specific implementation - will use is provided parenthetically: + if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ type: 'text', value, output: DOT_LITERAL }); + continue; + } - (a) a prospective certification path of length n (the 'chain') - (b) the current date/time: ('now'). - (c) user-initial-policy-set: A set of certificate policy identifiers - naming the policies that are acceptable to the certificate user. - The user-initial-policy-set contains the special value any-policy - if the user is not concerned about certificate policy - (Not implemented. Any policy is accepted). - (d) trust anchor information, describing a CA that serves as a trust - anchor for the certification path. The trust anchor information - includes: + push({ type: 'dot', value, output: DOT_LITERAL }); + continue; + } - (1) the trusted issuer name, - (2) the trusted public key algorithm, - (3) the trusted public key, and - (4) optionally, the trusted public key parameters associated - with the public key. + /** + * Question marks + */ - (Trust anchors are provided via certificates in the CA store). + if (value === '?') { + const isGroup = prev && prev.value === '('; + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } - The trust anchor information may be provided to the path processing - procedure in the form of a self-signed certificate. The trusted anchor - information is trusted because it was delivered to the path processing - procedure by some trustworthy out-of-band procedure. If the trusted - public key algorithm requires parameters, then the parameters are - provided along with the trusted public key (No parameters used in this - implementation). + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; - (e) initial-policy-mapping-inhibit, which indicates if policy mapping is - allowed in the certification path. - (Not implemented, no policy checking) + if (next === '<' && !utils.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } - (f) initial-explicit-policy, which indicates if the path must be valid - for at least one of the certificate policies in the user-initial- - policy-set. - (Not implemented, no policy checking) + if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { + output = `\\${value}`; + } - (g) initial-any-policy-inhibit, which indicates whether the - anyPolicy OID should be processed if it is included in a - certificate. - (Not implemented, so any policy is valid provided that it is - not marked as critical) */ + push({ type: 'text', value, output }); + continue; + } - /* Basic Path Processing: + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ type: 'qmark', value, output: QMARK_NO_DOT }); + continue; + } - For each certificate in the 'chain', the following is checked: + push({ type: 'qmark', value, output: QMARK }); + continue; + } - 1. The certificate validity period includes the current time. - 2. The certificate was signed by its parent (where the parent is either - the next in the chain or from the CA store). Allow processing to - continue to the next step if no parent is found but the certificate is - in the CA store. - 3. TODO: The certificate has not been revoked. - 4. The certificate issuer name matches the parent's subject name. - 5. TODO: If the certificate is self-issued and not the final certificate - in the chain, skip this step, otherwise verify that the subject name - is within one of the permitted subtrees of X.500 distinguished names - and that each of the alternative names in the subjectAltName extension - (critical or non-critical) is within one of the permitted subtrees for - that name type. - 6. TODO: If the certificate is self-issued and not the final certificate - in the chain, skip this step, otherwise verify that the subject name - is not within one of the excluded subtrees for X.500 distinguished - names and none of the subjectAltName extension names are excluded for - that name type. - 7. The other steps in the algorithm for basic path processing involve - handling the policy extension which is not presently supported in this - implementation. Instead, if a critical policy extension is found, the - certificate is rejected as not supported. - 8. If the certificate is not the first or if its the only certificate in - the chain (having no parent from the CA store or is self-signed) and it - has a critical key usage extension, verify that the keyCertSign bit is - set. If the key usage extension exists, verify that the basic - constraints extension exists. If the basic constraints extension exists, - verify that the cA flag is set. If pathLenConstraint is set, ensure that - the number of certificates that precede in the chain (come earlier - in the chain as implemented below), excluding the very first in the - chain (typically the end-entity one), isn't greater than the - pathLenConstraint. This constraint limits the number of intermediate - CAs that may appear below a CA before only end-entity certificates - may be issued. */ + /** + * Exclamation + */ - // if a verify callback is passed as the third parameter, package it within - // the options object. This is to support a legacy function signature that - // expected the verify callback as the third parameter. - if(typeof options === 'function') { - options = {verify: options}; - } - options = options || {}; + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } + } - // copy cert chain references to another array to protect against changes - // in verify callback - chain = chain.slice(0); - var certs = chain.slice(0); + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } - var validityCheckDate = options.validityCheckDate; - // if no validityCheckDate is specified, default to the current date. Make - // sure to maintain the value null because it indicates that the validity - // period should not be checked. - if(typeof validityCheckDate === 'undefined') { - validityCheckDate = new Date(); - } + /** + * Plus + */ - // verify each cert in the chain using its parent, where the parent - // is either the next in the chain or from the CA store - var first = true; - var error = null; - var depth = 0; - do { - var cert = chain.shift(); - var parent = null; - var selfSigned = false; + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } - if(validityCheckDate) { - // 1. check valid time - if(validityCheckDate < cert.validity.notBefore || - validityCheckDate > cert.validity.notAfter) { - error = { - message: 'Certificate is not valid yet or has expired.', - error: pki.certificateError.certificate_expired, - notBefore: cert.validity.notBefore, - notAfter: cert.validity.notAfter, - // TODO: we might want to reconsider renaming 'now' to - // 'validityCheckDate' should this API be changed in the future. - now: validityCheckDate - }; + if ((prev && prev.value === '(') || opts.regex === false) { + push({ type: 'plus', value, output: PLUS_LITERAL }); + continue; } - } - // 2. verify with parent from chain or CA store - if(error === null) { - parent = chain[0] || caStore.getIssuer(cert); - if(parent === null) { - // check for self-signed cert - if(cert.isIssuer(cert)) { - selfSigned = true; - parent = cert; - } + if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) { + push({ type: 'plus', value }); + continue; } - if(parent) { - // FIXME: current CA store implementation might have multiple - // certificates where the issuer can't be determined from the - // certificate (happens rarely with, eg: old certificates) so normalize - // by always putting parents into an array - // TODO: there's may be an extreme degenerate case currently uncovered - // where an old intermediate certificate seems to have a matching parent - // but none of the parents actually verify ... but the intermediate - // is in the CA and it should pass this check; needs investigation - var parents = parent; - if(!forge.util.isArray(parents)) { - parents = [parents]; - } + push({ type: 'plus', value: PLUS_LITERAL }); + continue; + } - // try to verify with each possible parent (typically only one) - var verified = false; - while(!verified && parents.length > 0) { - parent = parents.shift(); - try { - verified = parent.verify(cert); - } catch(ex) { - // failure to verify, don't care why, try next one - } - } + /** + * Plain text + */ - if(!verified) { - error = { - message: 'Certificate signature is invalid.', - error: pki.certificateError.bad_certificate - }; - } + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ type: 'at', extglob: true, value, output: '' }); + continue; } - if(error === null && (!parent || selfSigned) && - !caStore.hasCertificate(cert)) { - // no parent issuer and certificate itself is not trusted - error = { - message: 'Certificate is not trusted.', - error: pki.certificateError.unknown_ca - }; - } + push({ type: 'text', value }); + continue; } - // TODO: 3. check revoked + /** + * Plain text + */ - // 4. check for matching issuer/subject - if(error === null && parent && !cert.isIssuer(parent)) { - // parent is not issuer - error = { - message: 'Certificate issuer is invalid.', - error: pki.certificateError.bad_certificate - }; + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; + } + + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } + + push({ type: 'text', value }); + continue; } - // 5. TODO: check names with permitted names tree + /** + * Stars + */ - // 6. TODO: check names against excluded names tree + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } - // 7. check for unsupported critical extensions - if(error === null) { - // supported extensions - var se = { - keyUsage: true, - basicConstraints: true - }; - for(var i = 0; error === null && i < cert.extensions.length; ++i) { - var ext = cert.extensions[i]; - if(ext.critical && !(ext.name in se)) { - error = { - message: - 'Certificate has an unsupported critical extension.', - error: pki.certificateError.unsupported_certificate - }; - } - } + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; } - // 8. check for CA if cert is not first or is the only certificate - // remaining in chain with no parent or is self-signed - if(error === null && - (!first || (chain.length === 0 && (!parent || selfSigned)))) { - // first check keyUsage extension and then basic constraints - var bcExt = cert.getExtension('basicConstraints'); - var keyUsageExt = cert.getExtension('keyUsage'); - if(keyUsageExt !== null) { - // keyCertSign must be true and there must be a basic - // constraints extension - if(!keyUsageExt.keyCertSign || bcExt === null) { - // bad certificate - error = { - message: - 'Certificate keyUsage or basicConstraints conflict ' + - 'or indicate that the certificate is not a CA. ' + - 'If the certificate is the only one in the chain or ' + - 'isn\'t the first then the certificate must be a ' + - 'valid CA.', - error: pki.certificateError.bad_certificate - }; - } - } - // basic constraints cA flag must be set - if(error === null && bcExt !== null && !bcExt.cA) { - // bad certificate - error = { - message: - 'Certificate basicConstraints indicates the certificate ' + - 'is not a CA.', - error: pki.certificateError.bad_certificate - }; + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; } - // if error is not null and keyUsage is available, then we know it - // has keyCertSign and there is a basic constraints extension too, - // which means we can check pathLenConstraint (if it exists) - if(error === null && keyUsageExt !== null && - 'pathLenConstraint' in bcExt) { - // pathLen is the maximum # of intermediate CA certs that can be - // found between the current certificate and the end-entity (depth 0) - // certificate; this number does not include the end-entity (depth 0, - // last in the chain) even if it happens to be a CA certificate itself - var pathLen = depth - 1; - if(pathLen > bcExt.pathLenConstraint) { - // pathLenConstraint violated, bad certificate - error = { - message: - 'Certificate basicConstraints pathLenConstraint violated.', - error: pki.certificateError.bad_certificate - }; - } + + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); + + if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { + push({ type: 'star', value, output: '' }); + continue; } - } - // call application callback - var vfd = (error === null) ? true : error.error; - var ret = options.verify ? options.verify(vfd, depth, certs) : vfd; - if(ret === true) { - // clear any set error - error = null; - } else { - // if passed basic tests, set default message and alert - if(vfd === true) { - error = { - message: 'The application rejected the certificate.', - error: pki.certificateError.bad_certificate - }; + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ type: 'star', value, output: '' }); + continue; } - // check for custom error info - if(ret || ret === 0) { - // set custom message and error - if(typeof ret === 'object' && !forge.util.isArray(ret)) { - if(ret.message) { - error.message = ret.message; - } - if(ret.error) { - error.error = ret.error; - } - } else if(typeof ret === 'string') { - // set custom error - error.error = ret; + // strip consecutive `/**/` + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; + if (after && after !== '/') { + break; } + rest = rest.slice(3); + consume('/**', 3); } - // throw error - throw error; - } - - // no longer first cert in chain - first = false; - ++depth; - } while(chain.length > 0); - - return true; -}; + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; + } + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; -/***/ }), + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; -var wrappy = __nccwpck_require__(2940) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) + state.output += prior.output + prev.output; + state.globstar = true; -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} + consume(value + advance()); -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} + push({ type: 'slash', value: '/', output: '' }); + continue; + } + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: 'slash', value: '/', output: '' }); + continue; + } -/***/ }), + // remove single star from output + state.output = state.output.slice(0, -prev.output.length); -/***/ 7684: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // reset previous token to globstar + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; -"use strict"; + // reset output with globstar + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } -const Queue = __nccwpck_require__(5185); + const token = { type: 'star', value, output: star }; -const pLimit = concurrency => { - if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { - throw new TypeError('Expected `concurrency` to be a number from 1 and up'); - } + if (opts.bash === true) { + token.output = '.*?'; + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; + } + push(token); + continue; + } - const queue = new Queue(); - let activeCount = 0; + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } - const next = () => { - activeCount--; + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; - if (queue.size > 0) { - queue.dequeue()(); - } - }; + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; - const run = async (fn, resolve, ...args) => { - activeCount++; + } else { + state.output += nodot; + prev.output += nodot; + } - const result = (async () => fn(...args))(); + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } - resolve(result); + push(token); + } - try { - await result; - } catch {} + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); + state.output = utils.escapeLast(state.output, '['); + decrement('brackets'); + } - next(); - }; + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); + state.output = utils.escapeLast(state.output, '('); + decrement('parens'); + } - const enqueue = (fn, resolve, ...args) => { - queue.enqueue(run.bind(null, fn, resolve, ...args)); + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); + state.output = utils.escapeLast(state.output, '{'); + decrement('braces'); + } - (async () => { - // This function needs to wait until the next microtask before comparing - // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously - // when the run function is dequeued and called. The comparison in the if-statement - // needs to happen asynchronously as well to get an up-to-date value for `activeCount`. - await Promise.resolve(); + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); + } - if (activeCount < concurrency && queue.size > 0) { - queue.dequeue()(); - } - })(); - }; + // rebuild the output if we had to backtrack at any point + if (state.backtrack === true) { + state.output = ''; - const generator = (fn, ...args) => new Promise(resolve => { - enqueue(fn, resolve, ...args); - }); + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; - Object.defineProperties(generator, { - activeCount: { - get: () => activeCount - }, - pendingCount: { - get: () => queue.size - }, - clearQueue: { - value: () => { - queue.clear(); - } - } - }); + if (token.suffix) { + state.output += token.suffix; + } + } + } - return generator; + return state; }; -module.exports = pLimit; +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ +parse.fastpaths = (input, options) => { + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } -/***/ }), + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); -/***/ 3433: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // create constants based on platform, for windows or posix + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); -"use strict"; + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { negated: false, prefix: '' }; + let star = opts.bash === true ? '.*?' : STAR; -const {promisify} = __nccwpck_require__(3837); -const fs = __nccwpck_require__(7147); + if (opts.capture) { + star = `(${star})`; + } -async function isType(fsStatType, statsMethodName, filePath) { - if (typeof filePath !== 'string') { - throw new TypeError(`Expected a string, got ${typeof filePath}`); - } + const globstar = opts => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; - try { - const stats = await promisify(fs[fsStatType])(filePath); - return stats[statsMethodName](); - } catch (error) { - if (error.code === 'ENOENT') { - return false; - } + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; - throw error; - } -} + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; -function isTypeSync(fsStatType, statsMethodName, filePath) { - if (typeof filePath !== 'string') { - throw new TypeError(`Expected a string, got ${typeof filePath}`); - } + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - try { - return fs[fsStatType](filePath)[statsMethodName](); - } catch (error) { - if (error.code === 'ENOENT') { - return false; - } + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; - throw error; - } -} + case '**': + return nodot + globstar(opts); -exports.isFile = isType.bind(null, 'stat', 'isFile'); -exports.isDirectory = isType.bind(null, 'stat', 'isDirectory'); -exports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink'); -exports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile'); -exports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory'); -exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; -/***/ }), + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; -/***/ 8569: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; -"use strict"; + const source = create(match[1]); + if (!source) return; + + return source + DOT_LITERAL + match[2]; + } + } + }; + const output = utils.removePrefix(input, state); + let source = create(output); -module.exports = __nccwpck_require__(3322); + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + + return source; +}; + +module.exports = parse; /***/ }), -/***/ 6099: +/***/ 3322: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; const path = __nccwpck_require__(1017); -const WIN_SLASH = '\\\\/'; -const WIN_NO_SLASH = `[^${WIN_SLASH}]`; - -/** - * Posix glob regex - */ - -const DOT_LITERAL = '\\.'; -const PLUS_LITERAL = '\\+'; -const QMARK_LITERAL = '\\?'; -const SLASH_LITERAL = '\\/'; -const ONE_CHAR = '(?=.)'; -const QMARK = '[^/]'; -const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; -const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; -const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; -const NO_DOT = `(?!${DOT_LITERAL})`; -const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; -const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; -const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; -const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; -const STAR = `${QMARK}*?`; - -const POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR, - START_ANCHOR -}; - -/** - * Windows glob regex - */ - -const WINDOWS_CHARS = { - ...POSIX_CHARS, - - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` -}; +const scan = __nccwpck_require__(2429); +const parse = __nccwpck_require__(2139); +const utils = __nccwpck_require__(479); +const constants = __nccwpck_require__(6099); +const isObject = val => val && typeof val === 'object' && !Array.isArray(val); /** - * POSIX Bracket Regex + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public */ -const POSIX_REGEX_SOURCE = { - alnum: 'a-zA-Z0-9', - alpha: 'a-zA-Z', - ascii: '\\x00-\\x7F', - blank: ' \\t', - cntrl: '\\x00-\\x1F\\x7F', - digit: '0-9', - graph: '\\x21-\\x7E', - lower: 'a-z', - print: '\\x20-\\x7E ', - punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', - space: ' \\t\\r\\n\\v\\f', - upper: 'A-Z', - word: 'A-Za-z0-9_', - xdigit: 'A-Fa-f0-9' -}; - -module.exports = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE, - - // regular expressions - REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, - REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, - REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, - REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, - REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, - REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, +const picomatch = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch(input, options, returnState)); + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } + return false; + }; + return arrayMatcher; + } - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - '***': '*', - '**/**': '**', - '**/**/**': '**' - }, + const isState = isObject(glob) && glob.tokens && glob.input; - // Digits - CHAR_0: 48, /* 0 */ - CHAR_9: 57, /* 9 */ + if (glob === '' || (typeof glob !== 'string' && !isState)) { + throw new TypeError('Expected pattern to be a non-empty string'); + } - // Alphabet chars. - CHAR_UPPERCASE_A: 65, /* A */ - CHAR_LOWERCASE_A: 97, /* a */ - CHAR_UPPERCASE_Z: 90, /* Z */ - CHAR_LOWERCASE_Z: 122, /* z */ + const opts = options || {}; + const posix = utils.isWindows(options); + const regex = isState + ? picomatch.compileRe(glob, options) + : picomatch.makeRe(glob, options, false, true); - CHAR_LEFT_PARENTHESES: 40, /* ( */ - CHAR_RIGHT_PARENTHESES: 41, /* ) */ + const state = regex.state; + delete regex.state; - CHAR_ASTERISK: 42, /* * */ + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, /* & */ - CHAR_AT: 64, /* @ */ - CHAR_BACKWARD_SLASH: 92, /* \ */ - CHAR_CARRIAGE_RETURN: 13, /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ - CHAR_COLON: 58, /* : */ - CHAR_COMMA: 44, /* , */ - CHAR_DOT: 46, /* . */ - CHAR_DOUBLE_QUOTE: 34, /* " */ - CHAR_EQUAL: 61, /* = */ - CHAR_EXCLAMATION_MARK: 33, /* ! */ - CHAR_FORM_FEED: 12, /* \f */ - CHAR_FORWARD_SLASH: 47, /* / */ - CHAR_GRAVE_ACCENT: 96, /* ` */ - CHAR_HASH: 35, /* # */ - CHAR_HYPHEN_MINUS: 45, /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ - CHAR_LEFT_CURLY_BRACE: 123, /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ - CHAR_LINE_FEED: 10, /* \n */ - CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ - CHAR_PERCENT: 37, /* % */ - CHAR_PLUS: 43, /* + */ - CHAR_QUESTION_MARK: 63, /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ - CHAR_SEMICOLON: 59, /* ; */ - CHAR_SINGLE_QUOTE: 39, /* ' */ - CHAR_SPACE: 32, /* */ - CHAR_TAB: 9, /* \t */ - CHAR_UNDERSCORE: 95, /* _ */ - CHAR_VERTICAL_LINE: 124, /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ + const matcher = (input, returnObject = false) => { + const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); + const result = { glob, state, regex, posix, input, output, match, isMatch }; - SEP: path.sep, + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } - /** - * Create EXTGLOB_CHARS - */ + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } - extglobChars(chars) { - return { - '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, - '?': { type: 'qmark', open: '(?:', close: ')?' }, - '+': { type: 'plus', open: '(?:', close: ')+' }, - '*': { type: 'star', open: '(?:', close: ')*' }, - '@': { type: 'at', open: '(?:', close: ')' } - }; - }, + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } - /** - * Create GLOB_CHARS - */ + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); + } + return returnObject ? result : true; + }; - globChars(win32) { - return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + if (returnState) { + matcher.state = state; } + + return matcher; }; +/** + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public + */ + +picomatch.test = (input, regex, options, { glob, posix } = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected input to be a string'); + } -/***/ }), + if (input === '') { + return { isMatch: false, output: '' }; + } -/***/ 2139: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + const opts = options || {}; + const format = opts.format || (posix ? utils.toPosixSlashes : null); + let match = input === glob; + let output = (match && format) ? format(input) : input; -"use strict"; + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } -const constants = __nccwpck_require__(6099); -const utils = __nccwpck_require__(479); + return { isMatch: Boolean(match), match, output }; +}; /** - * Constants + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public */ -const { - MAX_LENGTH, - POSIX_REGEX_SOURCE, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS -} = constants; +picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); + return regex.test(path.basename(input)); +}; /** - * Helpers + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public */ -const expandRange = (args, options) => { - if (typeof options.expandRange === 'function') { - return options.expandRange(...args, options); - } - - args.sort(); - const value = `[${args.join('-')}]`; +picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); - try { - /* eslint-disable-next-line no-new */ - new RegExp(value); - } catch (ex) { - return args.map(v => utils.escapeRegex(v)).join('..'); - } +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ - return value; +picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); + return parse(pattern, { ...options, fastpaths: false }); }; /** - * Create the message for a syntax error + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public */ -const syntaxError = (type, char) => { - return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; -}; +picomatch.scan = (input, options) => scan(input, options); /** - * Parse the given input string. - * @param {String} input - * @param {Object} options - * @return {Object} + * Compile a regular expression from the `state` object returned by the + * [parse()](#parse) method. + * + * @param {Object} `state` + * @param {Object} `options` + * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser. + * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. + * @return {RegExp} + * @api public */ -const parse = (input, options) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); +picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; } - input = REPLACEMENTS[input] || input; - - const opts = { ...options }; - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; - let len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; } - const bos = { type: 'bos', value: '', output: opts.prepend || '' }; - const tokens = [bos]; - - const capture = opts.capture ? '' : '?:'; - const win32 = utils.isWindows(options); + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = state; + } - // create constants based on platform, for windows or posix - const PLATFORM_CHARS = constants.globChars(win32); - const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + return regex; +}; - const { - DOT_LITERAL, - PLUS_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK, - QMARK_NO_DOT, - STAR, - START_ANCHOR - } = PLATFORM_CHARS; +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. + * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression. + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ - const globstar = opts => { - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; +picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); + } - const nodot = opts.dot ? '' : NO_DOT; - const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; - let star = opts.bash === true ? globstar(opts) : STAR; + let parsed = { negated: false, fastpaths: true }; - if (opts.capture) { - star = `(${star})`; + if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + parsed.output = parse.fastpaths(input, options); } - // minimatch options support - if (typeof opts.noext === 'boolean') { - opts.noextglob = opts.noext; + if (!parsed.output) { + parsed = parse(input, options); } - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: '', - output: '', - prefix: '', - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; - - input = utils.removePrefix(input, state); - len = input.length; + return picomatch.compileRe(parsed, options, returnOutput, returnState); +}; - const extglobs = []; - const braces = []; - const stack = []; - let prev = bos; - let value; +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ - /** - * Tokenizing helpers - */ +picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; + } +}; - const eos = () => state.index === len - 1; - const peek = state.peek = (n = 1) => input[state.index + n]; - const advance = state.advance = () => input[++state.index] || ''; - const remaining = () => input.slice(state.index + 1); - const consume = (value = '', num = 0) => { - state.consumed += value; - state.index += num; - }; +/** + * Picomatch constants. + * @return {Object} + */ - const append = token => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); - }; +picomatch.constants = constants; - const negate = () => { - let count = 1; +/** + * Expose "picomatch" + */ - while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { - advance(); - state.start++; - count++; - } +module.exports = picomatch; - if (count % 2 === 0) { - return false; - } - state.negated = true; - state.start++; - return true; - }; +/***/ }), - const increment = type => { - state[type]++; - stack.push(type); - }; +/***/ 2429: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - const decrement = type => { - state[type]--; - stack.pop(); - }; +"use strict"; - /** - * Push tokens onto the tokens array. This helper speeds up - * tokenizing by 1) helping us avoid backtracking as much as possible, - * and 2) helping us avoid creating extra tokens when consecutive - * characters are plain text. This improves performance and simplifies - * lookbehinds. - */ - const push = tok => { - if (prev.type === 'globstar') { - const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); - const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); +const utils = __nccwpck_require__(479); +const { + CHAR_ASTERISK, /* * */ + CHAR_AT, /* @ */ + CHAR_BACKWARD_SLASH, /* \ */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_EXCLAMATION_MARK, /* ! */ + CHAR_FORWARD_SLASH, /* / */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_PLUS, /* + */ + CHAR_QUESTION_MARK, /* ? */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_RIGHT_SQUARE_BRACKET /* ] */ +} = __nccwpck_require__(6099); - if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = 'star'; - prev.value = '*'; - prev.output = star; - state.output += prev.output; - } - } +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; - if (extglobs.length && tok.type !== 'paren') { - extglobs[extglobs.length - 1].inner += tok.value; - } +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; + } +}; - if (tok.value || tok.output) append(tok); - if (prev && prev.type === 'text' && tok.type === 'text') { - prev.value += tok.value; - prev.output = (prev.output || '') + tok.value; - return; - } +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not + * with `!(`) and `negatedExtglob` (true if the path starts with `!(`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; +const scan = (input, options) => { + const opts = options || {}; - const extglobOpen = (type, value) => { - const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? '(' : '') + token.open; + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { value: '', depth: 0, isGlob: false }; - increment('parens'); - push({ type, value, output: state.output ? '' : ONE_CHAR }); - push({ type: 'paren', extglob: true, value: advance(), output }); - extglobs.push(token); + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); }; - const extglobClose = token => { - let output = token.close + (opts.capture ? ')' : ''); - let rest; - - if (token.type === 'negate') { - let extglobStar = star; - - if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { - extglobStar = globstar(opts); - } - - if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } - - if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { - // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis. - // In this case, we need to parse the string and use it in the output of the original pattern. - // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`. - // - // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`. - const expression = parse(rest, { ...options, fastpaths: false }).output; + while (index < length) { + code = advance(); + let next; - output = token.close = `)${expression})${extglobStar})`; - } + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); - if (token.prev.type === 'bos') { - state.negatedExtglob = true; + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; } + continue; } - push({ type: 'paren', extglob: true, value, output }); - decrement('parens'); - }; + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; - /** - * Fast paths - */ + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { - if (first === '\\') { - backslashes = true; - return m; - } + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; - if (first === '?') { - if (esc) { - return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + if (scanToEnd === true) { + continue; + } + + break; } - if (index === 0) { - return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; } - return QMARK.repeat(chars.length); - } - if (first === '.') { - return DOT_LITERAL.repeat(chars.length); - } + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; - if (first === '*') { - if (esc) { - return esc + first + (rest ? star : ''); + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } } - return star; } - return esc ? m : `\\${m}`; - }); - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ''); - } else { - output = output.replace(/\\+/g, m => { - return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); - }); + if (scanToEnd === true) { + continue; } - } - if (output === input && opts.contains === true) { - state.output = input; - return state; + break; } - state.output = utils.wrapOutput(output, state, options); - return state; - } - - /** - * Tokenize input until we reach end-of-string - */ + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { value: '', depth: 0, isGlob: false }; - while (!eos()) { - value = advance(); + if (finished === true) continue; + if (prev === CHAR_DOT && index === (start + 1)) { + start += 2; + continue; + } - if (value === '\u0000') { + lastIndex = index + 1; continue; } - /** - * Escaped characters - */ + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS + || code === CHAR_AT + || code === CHAR_ASTERISK + || code === CHAR_QUESTION_MARK + || code === CHAR_EXCLAMATION_MARK; - if (value === '\\') { - const next = peek(); + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } - if (next === '/' && opts.bash !== true) { - continue; + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; } + } - if (next === '.' || next === ';') { + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { continue; } + break; + } - if (!next) { - value += '\\'; - push({ type: 'text', value }); + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { continue; } + break; + } - // collapse slashes to reduce potential for exploits - const match = /^\\+/.exec(remaining()); - let slashes = 0; - - if (match && match[0].length > 2) { - slashes = match[0].length; - state.index += slashes; - if (slashes % 2 !== 0) { - value += '\\'; + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; } - } - if (opts.unescape === true) { - value = advance(); - } else { - value += advance(); + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } } - if (state.brackets === 0) { - push({ type: 'text', value }); + if (scanToEnd === true) { continue; } + + break; } - /** - * If we're inside a regex character class, continue - * until we reach the closing bracket. - */ + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } - if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { - if (opts.posix !== false && value === ':') { - const inner = prev.value.slice(1); - if (inner.includes('[')) { - prev.posix = true; + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; - if (inner.includes(':')) { - const idx = prev.value.lastIndexOf('['); - const pre = prev.value.slice(0, idx); - const rest = prev.value.slice(idx + 2); - const posix = POSIX_REGEX_SOURCE[rest]; - if (posix) { - prev.value = pre + posix; - state.backtrack = true; - advance(); + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR; - } - continue; - } + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; } } + continue; } + break; + } - if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { - value = `\\${value}`; - } - - if (value === ']' && (prev.value === '[' || prev.value === '[^')) { - value = `\\${value}`; - } + if (isGlob === true) { + finished = true; - if (opts.posix === true && value === '!' && prev.value === '[') { - value = '^'; + if (scanToEnd === true) { + continue; } - prev.value += value; - append({ value }); - continue; + break; } + } - /** - * If we're inside a quoted string, continue - * until we reach the closing double quote. - */ + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } - if (state.quotes === 1 && value !== '"') { - value = utils.escapeRegex(value); - prev.value += value; - append({ value }); - continue; - } + let base = str; + let prefix = ''; + let glob = ''; - /** - * Double quotes - */ + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } - if (value === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; - if (opts.keepQuotes === true) { - push({ type: 'text', value }); - } - continue; + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } + + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); } + } - /** - * Parentheses - */ + if (opts.unescape === true) { + if (glob) glob = utils.removeBackslashes(glob); - if (value === '(') { - increment('parens'); - push({ type: 'paren', value }); - continue; + if (base && backslashes === true) { + base = utils.removeBackslashes(base); } + } - if (value === ')') { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '(')); - } - - const extglob = extglobs[extglobs.length - 1]; - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; - push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); - decrement('parens'); - continue; + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); } + state.tokens = tokens; + } - /** - * Square brackets - */ + if (opts.parts === true || opts.tokens === true) { + let prevIndex; - if (value === '[') { - if (opts.nobracket === true || !remaining().includes(']')) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('closing', ']')); + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; } - - value = `\\${value}`; - } else { - increment('brackets'); + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; } - - push({ type: 'bracket', value }); - continue; - } - - if (value === ']') { - if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { - push({ type: 'text', value, output: `\\${value}` }); - continue; + if (idx !== 0 || value !== '') { + parts.push(value); } + prevIndex = i; + } - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '[')); - } + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); - push({ type: 'text', value, output: `\\${value}` }); - continue; + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; } + } - decrement('brackets'); + state.slashes = slashes; + state.parts = parts; + } - const prevValue = prev.value.slice(1); - if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { - value = `/${value}`; - } + return state; +}; - prev.value += value; - append({ value }); +module.exports = scan; - // when literal brackets are explicitly disabled - // assume we should match with a regex character class - if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { - continue; - } - const escaped = utils.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); +/***/ }), - // when literal brackets are explicitly enabled - // assume we should escape the brackets to match literal characters - if (opts.literalBrackets === true) { - state.output += escaped; - prev.value = escaped; - continue; - } +/***/ 479: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - // when the user specifies nothing, try to match both - prev.value = `(${capture}${escaped}|${prev.value})`; - state.output += prev.value; - continue; - } +"use strict"; - /** - * Braces - */ - if (value === '{' && opts.nobrace !== true) { - increment('braces'); +const path = __nccwpck_require__(1017); +const win32 = process.platform === 'win32'; +const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL +} = __nccwpck_require__(6099); - const open = { - type: 'brace', - value, - output: '(', - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; +exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); +exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); +exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); +exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); +exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); - braces.push(open); - push(open); - continue; - } +exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); +}; - if (value === '}') { - const brace = braces[braces.length - 1]; +exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); + if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { + return true; + } + return false; +}; - if (opts.nobrace === true || !brace) { - push({ type: 'text', value, output: value }); - continue; - } +exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; + } + return win32 === true || path.sep === '\\'; +}; - let output = ')'; +exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; +}; - if (brace.dots === true) { - const arr = tokens.slice(); - const range = []; +exports.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; + } + return output; +}; - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); - if (arr[i].type === 'brace') { - break; - } - if (arr[i].type !== 'dots') { - range.unshift(arr[i].value); - } - } +exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; - output = expandRange(range, opts); - state.backtrack = true; - } + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; +}; - if (brace.comma !== true && brace.dots !== true) { - const out = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = '\\{'; - value = output = '\\}'; - state.output = out; - for (const t of toks) { - state.output += (t.output || t.value); - } - } - push({ type: 'brace', value, output }); - decrement('braces'); - braces.pop(); - continue; - } +/***/ }), - /** - * Pipes - */ +/***/ 8341: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (value === '|') { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; - } - push({ type: 'text', value }); - continue; - } +var once = __nccwpck_require__(1223) +var eos = __nccwpck_require__(1205) +var fs = __nccwpck_require__(7147) // we only need fs to get the ReadStream and WriteStream prototypes + +var noop = function () {} +var ancient = /^v?\.0/.test(process.version) - /** - * Commas - */ +var isFn = function (fn) { + return typeof fn === 'function' +} - if (value === ',') { - let output = value; +var isFS = function (stream) { + if (!ancient) return false // newer node version do not need to care about fs is a special way + if (!fs) return false // browser + return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) +} - const brace = braces[braces.length - 1]; - if (brace && stack[stack.length - 1] === 'braces') { - brace.comma = true; - output = '|'; - } +var isRequest = function (stream) { + return stream.setHeader && isFn(stream.abort) +} - push({ type: 'comma', value, output }); - continue; - } +var destroyer = function (stream, reading, writing, callback) { + callback = once(callback) - /** - * Slashes - */ + var closed = false + stream.on('close', function () { + closed = true + }) - if (value === '/') { - // if the beginning of the glob is "./", advance the start - // to the current index, and don't add the "./" characters - // to the state. This greatly simplifies lookbehinds when - // checking for BOS characters like "!" and "." (not "./") - if (prev.type === 'dot' && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ''; - state.output = ''; - tokens.pop(); - prev = bos; // reset "prev" to the first token - continue; - } + eos(stream, {readable: reading, writable: writing}, function (err) { + if (err) return callback(err) + closed = true + callback() + }) - push({ type: 'slash', value, output: SLASH_LITERAL }); - continue; - } + var destroyed = false + return function (err) { + if (closed) return + if (destroyed) return + destroyed = true - /** - * Dots - */ + if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks + if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want - if (value === '.') { - if (state.braces > 0 && prev.type === 'dot') { - if (prev.value === '.') prev.output = DOT_LITERAL; - const brace = braces[braces.length - 1]; - prev.type = 'dots'; - prev.output += value; - prev.value += value; - brace.dots = true; - continue; - } + if (isFn(stream.destroy)) return stream.destroy() - if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { - push({ type: 'text', value, output: DOT_LITERAL }); - continue; - } + callback(err || new Error('stream was destroyed')) + } +} - push({ type: 'dot', value, output: DOT_LITERAL }); - continue; - } +var call = function (fn) { + fn() +} - /** - * Question marks - */ +var pipe = function (from, to) { + return from.pipe(to) +} - if (value === '?') { - const isGroup = prev && prev.value === '('; - if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('qmark', value); - continue; - } +var pump = function () { + var streams = Array.prototype.slice.call(arguments) + var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop - if (prev && prev.type === 'paren') { - const next = peek(); - let output = value; + if (Array.isArray(streams[0])) streams = streams[0] + if (streams.length < 2) throw new Error('pump requires two streams per minimum') - if (next === '<' && !utils.supportsLookbehinds()) { - throw new Error('Node.js v10 or higher is required for regex lookbehinds'); - } + var error + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1 + var writing = i > 0 + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err + if (err) destroys.forEach(call) + if (reading) return + destroys.forEach(call) + callback(error) + }) + }) - if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { - output = `\\${value}`; - } + return streams.reduce(pipe) +} - push({ type: 'text', value, output }); - continue; - } +module.exports = pump - if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { - push({ type: 'qmark', value, output: QMARK_NO_DOT }); - continue; - } - push({ type: 'qmark', value, output: QMARK }); - continue; - } +/***/ }), - /** - * Exclamation - */ +/***/ 212: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (value === '!') { - if (opts.noextglob !== true && peek() === '(') { - if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { - extglobOpen('negate', value); - continue; - } - } +var pump = __nccwpck_require__(8341) +var inherits = __nccwpck_require__(4124) +var Duplexify = __nccwpck_require__(6599) - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } - } +var toArray = function(args) { + if (!args.length) return [] + return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args) +} - /** - * Plus - */ +var define = function(opts) { + var Pumpify = function() { + var streams = toArray(arguments) + if (!(this instanceof Pumpify)) return new Pumpify(streams) + Duplexify.call(this, null, null, opts) + if (streams.length) this.setPipeline(streams) + } - if (value === '+') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('plus', value); - continue; - } + inherits(Pumpify, Duplexify) - if ((prev && prev.value === '(') || opts.regex === false) { - push({ type: 'plus', value, output: PLUS_LITERAL }); - continue; - } + Pumpify.prototype.setPipeline = function() { + var streams = toArray(arguments) + var self = this + var ended = false + var w = streams[0] + var r = streams[streams.length-1] - if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) { - push({ type: 'plus', value }); - continue; - } + r = r.readable ? r : null + w = w.writable ? w : null - push({ type: 'plus', value: PLUS_LITERAL }); - continue; + var onclose = function() { + streams[0].emit('error', new Error('stream was destroyed')) } - /** - * Plain text - */ - - if (value === '@') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - push({ type: 'at', extglob: true, value, output: '' }); - continue; - } + this.on('close', onclose) + this.on('prefinish', function() { + if (!ended) self.cork() + }) - push({ type: 'text', value }); - continue; - } + pump(streams, function(err) { + self.removeListener('close', onclose) + if (err) return self.destroy(err.message === 'premature close' ? null : err) + ended = true + // pump ends after the last stream is not writable *but* + // pumpify still forwards the readable part so we need to catch errors + // still, so reenable autoDestroy in this case + if (self._autoDestroy === false) self._autoDestroy = true + self.uncork() + }) - /** - * Plain text - */ + if (this.destroyed) return onclose() + this.setWritable(w) + this.setReadable(r) + } - if (value !== '*') { - if (value === '$' || value === '^') { - value = `\\${value}`; - } + return Pumpify +} - const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - if (match) { - value += match[0]; - state.index += match[0].length; - } +module.exports = define({autoDestroy:false, destroy:false}) +module.exports.obj = define({autoDestroy: false, destroy:false, objectMode:true, highWaterMark:16}) +module.exports.ctor = define - push({ type: 'text', value }); - continue; - } - /** - * Stars - */ +/***/ }), - if (prev && (prev.type === 'globstar' || prev.star === true)) { - prev.type = 'star'; - prev.star = true; - prev.value += value; - prev.output = star; - state.backtrack = true; - state.globstar = true; - consume(value); - continue; - } +/***/ 9795: +/***/ ((module) => { - let rest = remaining(); - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen('star', value); - continue; - } +/*! queue-microtask. MIT License. Feross Aboukhadijeh */ +let promise - if (prev.type === 'star') { - if (opts.noglobstar === true) { - consume(value); - continue; - } +module.exports = typeof queueMicrotask === 'function' + ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) + // reuse resolved promise, and allocate it lazily + : cb => (promise || (promise = Promise.resolve())) + .then(cb) + .catch(err => setTimeout(() => { throw err }, 0)) - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === 'slash' || prior.type === 'bos'; - const afterStar = before && (before.type === 'star' || before.type === 'globstar'); - if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { - push({ type: 'star', value, output: '' }); - continue; - } +/***/ }), - const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); - const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); - if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { - push({ type: 'star', value, output: '' }); - continue; - } +/***/ 7214: +/***/ ((module) => { - // strip consecutive `/**/` - while (rest.slice(0, 3) === '/**') { - const after = input[state.index + 4]; - if (after && after !== '/') { - break; - } - rest = rest.slice(3); - consume('/**', 3); - } +"use strict"; - if (prior.type === 'bos' && eos()) { - prev.type = 'globstar'; - prev.value += value; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value); - continue; - } - if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; +const codes = {}; - prev.type = 'globstar'; - prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); - prev.value += value; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value); - continue; - } +function createErrorType(code, message, Base) { + if (!Base) { + Base = Error + } - if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { - const end = rest[1] !== void 0 ? '|$' : ''; + function getMessage (arg1, arg2, arg3) { + if (typeof message === 'string') { + return message + } else { + return message(arg1, arg2, arg3) + } + } - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; + class NodeError extends Base { + constructor (arg1, arg2, arg3) { + super(getMessage(arg1, arg2, arg3)); + } + } - prev.type = 'globstar'; - prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; - prev.value += value; + NodeError.prototype.name = Base.name; + NodeError.prototype.code = code; - state.output += prior.output + prev.output; - state.globstar = true; + codes[code] = NodeError; +} - consume(value + advance()); +// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js +function oneOf(expected, thing) { + if (Array.isArray(expected)) { + const len = expected.length; + expected = expected.map((i) => String(i)); + if (len > 2) { + return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + + expected[len - 1]; + } else if (len === 2) { + return `one of ${thing} ${expected[0]} or ${expected[1]}`; + } else { + return `of ${thing} ${expected[0]}`; + } + } else { + return `of ${thing} ${String(expected)}`; + } +} - push({ type: 'slash', value: '/', output: '' }); - continue; - } +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith +function startsWith(str, search, pos) { + return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; +} - if (prior.type === 'bos' && rest[0] === '/') { - prev.type = 'globstar'; - prev.value += value; - prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; - state.output = prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: 'slash', value: '/', output: '' }); - continue; - } +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith +function endsWith(str, search, this_len) { + if (this_len === undefined || this_len > str.length) { + this_len = str.length; + } + return str.substring(this_len - search.length, this_len) === search; +} - // remove single star from output - state.output = state.output.slice(0, -prev.output.length); +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes +function includes(str, search, start) { + if (typeof start !== 'number') { + start = 0; + } - // reset previous token to globstar - prev.type = 'globstar'; - prev.output = globstar(opts); - prev.value += value; + if (start + search.length > str.length) { + return false; + } else { + return str.indexOf(search, start) !== -1; + } +} - // reset output with globstar - state.output += prev.output; - state.globstar = true; - consume(value); - continue; - } +createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { + return 'The value "' + value + '" is invalid for option "' + name + '"' +}, TypeError); +createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { + // determiner: 'must be' or 'must not be' + let determiner; + if (typeof expected === 'string' && startsWith(expected, 'not ')) { + determiner = 'must not be'; + expected = expected.replace(/^not /, ''); + } else { + determiner = 'must be'; + } - const token = { type: 'star', value, output: star }; + let msg; + if (endsWith(name, ' argument')) { + // For cases like 'first argument' + msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; + } else { + const type = includes(name, '.') ? 'property' : 'argument'; + msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; + } - if (opts.bash === true) { - token.output = '.*?'; - if (prev.type === 'bos' || prev.type === 'slash') { - token.output = nodot + token.output; - } - push(token); - continue; - } + msg += `. Received type ${typeof actual}`; + return msg; +}, TypeError); +createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); +createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { + return 'The ' + name + ' method is not implemented' +}); +createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); +createErrorType('ERR_STREAM_DESTROYED', function (name) { + return 'Cannot call ' + name + ' after a stream was destroyed'; +}); +createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); +createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); +createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); +createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); +createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { + return 'Unknown encoding: ' + arg +}, TypeError); +createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); - if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { - token.output = value; - push(token); - continue; - } +module.exports.q = codes; - if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { - if (prev.type === 'dot') { - state.output += NO_DOT_SLASH; - prev.output += NO_DOT_SLASH; - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH; - prev.output += NO_DOTS_SLASH; +/***/ }), - } else { - state.output += nodot; - prev.output += nodot; - } +/***/ 1359: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (peek() !== '*') { - state.output += ONE_CHAR; - prev.output += ONE_CHAR; - } - } +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. - push(token); - } +/**/ - while (state.brackets > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); - state.output = utils.escapeLast(state.output, '['); - decrement('brackets'); - } +var objectKeys = Object.keys || function (obj) { + var keys = []; - while (state.parens > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); - state.output = utils.escapeLast(state.output, '('); - decrement('parens'); + for (var key in obj) { + keys.push(key); } - while (state.braces > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); - state.output = utils.escapeLast(state.output, '{'); - decrement('braces'); - } + return keys; +}; +/**/ - if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { - push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); - } - // rebuild the output if we had to backtrack at any point - if (state.backtrack === true) { - state.output = ''; +module.exports = Duplex; - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; +var Readable = __nccwpck_require__(1433); - if (token.suffix) { - state.output += token.suffix; - } - } - } +var Writable = __nccwpck_require__(6993); - return state; -}; +__nccwpck_require__(4124)(Duplex, Readable); -/** - * Fast paths for creating regular expressions for common glob patterns. - * This can significantly speed up processing and has very little downside - * impact when none of the fast paths match. - */ +{ + // Allow the keys array to be GC'ed. + var keys = objectKeys(Writable.prototype); -parse.fastpaths = (input, options) => { - const opts = { ...options }; - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - const len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } +} - input = REPLACEMENTS[input] || input; - const win32 = utils.isWindows(options); - - // create constants based on platform, for windows or posix - const { - DOT_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOTS_SLASH, - STAR, - START_ANCHOR - } = constants.globChars(win32); +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + this.allowHalfOpen = true; - const nodot = opts.dot ? NO_DOTS : NO_DOT; - const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; - const capture = opts.capture ? '' : '?:'; - const state = { negated: false, prefix: '' }; - let star = opts.bash === true ? '.*?' : STAR; + if (options) { + if (options.readable === false) this.readable = false; + if (options.writable === false) this.writable = false; - if (opts.capture) { - star = `(${star})`; + if (options.allowHalfOpen === false) { + this.allowHalfOpen = false; + this.once('end', onend); + } } +} - const globstar = opts => { - if (opts.noglobstar === true) return star; - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; + } +}); +Object.defineProperty(Duplex.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); + } +}); +Object.defineProperty(Duplex.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; + } +}); // the no-half-open enforcer - const create = str => { - switch (str) { - case '*': - return `${nodot}${ONE_CHAR}${star}`; +function onend() { + // If the writable side ended, then we're ok. + if (this._writableState.ended) return; // no more data can be written. + // But allow more writes to happen in this tick. - case '.*': - return `${DOT_LITERAL}${ONE_CHAR}${star}`; + process.nextTick(onEndNT, this); +} - case '*.*': - return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; +function onEndNT(self) { + self.end(); +} - case '*/*': - return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; +Object.defineProperty(Duplex.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } - case '**': - return nodot + globstar(opts); + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } // backward compatibility, the user is explicitly + // managing destroyed - case '**/*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; - case '**/*.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); - case '**/.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; +/***/ }), - default: { - const match = /^(.*?)\.(\w+)$/.exec(str); - if (!match) return; +/***/ 1542: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - const source = create(match[1]); - if (!source) return; +"use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. - return source + DOT_LITERAL + match[2]; - } - } - }; - const output = utils.removePrefix(input, state); - let source = create(output); +module.exports = PassThrough; - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL}?`; - } +var Transform = __nccwpck_require__(4415); - return source; -}; +__nccwpck_require__(4124)(PassThrough, Transform); -module.exports = parse; +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); +} +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; /***/ }), -/***/ 3322: +/***/ 1433: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -const path = __nccwpck_require__(1017); -const scan = __nccwpck_require__(2429); -const parse = __nccwpck_require__(2139); -const utils = __nccwpck_require__(479); -const constants = __nccwpck_require__(6099); -const isObject = val => val && typeof val === 'object' && !Array.isArray(val); - -/** - * Creates a matcher function from one or more glob patterns. The - * returned function takes a string to match as its first argument, - * and returns true if the string is a match. The returned matcher - * function also takes a boolean as the second argument that, when true, - * returns an object with additional information. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch(glob[, options]); - * - * const isMatch = picomatch('*.!(*a)'); - * console.log(isMatch('a.a')); //=> false - * console.log(isMatch('a.b')); //=> true - * ``` - * @name picomatch - * @param {String|Array} `globs` One or more glob patterns. - * @param {Object=} `options` - * @return {Function=} Returns a matcher function. - * @api public - */ - -const picomatch = (glob, options, returnState = false) => { - if (Array.isArray(glob)) { - const fns = glob.map(input => picomatch(input, options, returnState)); - const arrayMatcher = str => { - for (const isMatch of fns) { - const state = isMatch(str); - if (state) return state; - } - return false; - }; - return arrayMatcher; - } +module.exports = Readable; +/**/ - const isState = isObject(glob) && glob.tokens && glob.input; +var Duplex; +/**/ - if (glob === '' || (typeof glob !== 'string' && !isState)) { - throw new TypeError('Expected pattern to be a non-empty string'); - } +Readable.ReadableState = ReadableState; +/**/ - const opts = options || {}; - const posix = utils.isWindows(options); - const regex = isState - ? picomatch.compileRe(glob, options) - : picomatch.makeRe(glob, options, false, true); +var EE = (__nccwpck_require__(2361).EventEmitter); - const state = regex.state; - delete regex.state; +var EElistenerCount = function EElistenerCount(emitter, type) { + return emitter.listeners(type).length; +}; +/**/ - let isIgnored = () => false; - if (opts.ignore) { - const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; - isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); - } +/**/ - const matcher = (input, returnObject = false) => { - const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); - const result = { glob, state, regex, posix, input, output, match, isMatch }; - if (typeof opts.onResult === 'function') { - opts.onResult(result); - } +var Stream = __nccwpck_require__(2387); +/**/ - if (isMatch === false) { - result.isMatch = false; - return returnObject ? result : false; - } - if (isIgnored(input)) { - if (typeof opts.onIgnore === 'function') { - opts.onIgnore(result); - } - result.isMatch = false; - return returnObject ? result : false; - } +var Buffer = (__nccwpck_require__(4300).Buffer); - if (typeof opts.onMatch === 'function') { - opts.onMatch(result); - } - return returnObject ? result : true; - }; +var OurUint8Array = global.Uint8Array || function () {}; - if (returnState) { - matcher.state = state; - } +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} - return matcher; -}; +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} +/**/ -/** - * Test `input` with the given `regex`. This is used by the main - * `picomatch()` function to test the input string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.test(input, regex[, options]); - * - * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); - * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } - * ``` - * @param {String} `input` String to test. - * @param {RegExp} `regex` - * @return {Object} Returns an object with matching info. - * @api public - */ -picomatch.test = (input, regex, options, { glob, posix } = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected input to be a string'); - } +var debugUtil = __nccwpck_require__(3837); - if (input === '') { - return { isMatch: false, output: '' }; - } +var debug; - const opts = options || {}; - const format = opts.format || (posix ? utils.toPosixSlashes : null); - let match = input === glob; - let output = (match && format) ? format(input) : input; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function debug() {}; +} +/**/ - if (match === false) { - output = format ? format(input) : input; - match = output === glob; - } - if (match === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match = picomatch.matchBase(input, regex, options, posix); - } else { - match = regex.exec(output); - } - } +var BufferList = __nccwpck_require__(6522); - return { isMatch: Boolean(match), match, output }; -}; +var destroyImpl = __nccwpck_require__(7049); -/** - * Match the basename of a filepath. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.matchBase(input, glob[, options]); - * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true - * ``` - * @param {String} `input` String to test. - * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). - * @return {Boolean} - * @api public - */ +var _require = __nccwpck_require__(9948), + getHighWaterMark = _require.getHighWaterMark; -picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { - const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); - return regex.test(path.basename(input)); -}; +var _require$codes = (__nccwpck_require__(7214)/* .codes */ .q), + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. -/** - * Returns true if **any** of the given glob `patterns` match the specified `string`. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.isMatch(string, patterns[, options]); - * - * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true - * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false - * ``` - * @param {String|Array} str The string to test. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} [options] See available [options](#options). - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ -picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); +var StringDecoder; +var createReadableStreamAsyncIterator; +var from; -/** - * Parse a glob pattern to create the source string for a regular - * expression. - * - * ```js - * const picomatch = require('picomatch'); - * const result = picomatch.parse(pattern[, options]); - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} Returns an object with useful properties and output to be used as a regex source string. - * @api public - */ +__nccwpck_require__(4124)(Readable, Stream); -picomatch.parse = (pattern, options) => { - if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); - return parse(pattern, { ...options, fastpaths: false }); -}; +var errorOrDestroy = destroyImpl.errorOrDestroy; +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; -/** - * Scan a glob pattern to separate the pattern into segments. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.scan(input[, options]); - * - * const result = picomatch.scan('!./foo/*.js'); - * console.log(result); - * { prefix: '!./', - * input: '!./foo/*.js', - * start: 3, - * base: 'foo', - * glob: '*.js', - * isBrace: false, - * isBracket: false, - * isGlob: true, - * isExtglob: false, - * isGlobstar: false, - * negated: true } - * ``` - * @param {String} `input` Glob pattern to scan. - * @param {Object} `options` - * @return {Object} Returns an object with - * @api public - */ +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. -picomatch.scan = (input, options) => scan(input, options); + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} -/** - * Compile a regular expression from the `state` object returned by the - * [parse()](#parse) method. - * - * @param {Object} `state` - * @param {Object} `options` - * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser. - * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. - * @return {RegExp} - * @api public - */ +function ReadableState(options, stream, isDuplex) { + Duplex = Duplex || __nccwpck_require__(1359); + options = options || {}; // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. -picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return state.output; - } + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away - const opts = options || {}; - const prepend = opts.contains ? '' : '^'; - const append = opts.contains ? '' : '$'; + this.objectMode = !!options.objectMode; + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" - let source = `${prepend}(?:${state.output})${append}`; - if (state && state.negated === true) { - source = `^(?!${source}).*$`; - } + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() - const regex = picomatch.toRegex(source, options); - if (returnState === true) { - regex.state = state; - } + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. - return regex; -}; + this.sync = true; // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. -/** - * Create a regular expression from a parsed glob pattern. - * - * ```js - * const picomatch = require('picomatch'); - * const state = picomatch.parse('*.js'); - * // picomatch.compileRe(state[, options]); - * - * console.log(picomatch.compileRe(state)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `state` The object returned from the `.parse` method. - * @param {Object} `options` - * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. - * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression. - * @return {RegExp} Returns a regex created from the given pattern. - * @api public - */ + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.paused = true; // Should close be emitted on destroy. Defaults to true. -picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { - if (!input || typeof input !== 'string') { - throw new TypeError('Expected a non-empty string'); - } + this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') - let parsed = { negated: false, fastpaths: true }; + this.autoDestroy = !!options.autoDestroy; // has it been destroyed - if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { - parsed.output = parse.fastpaths(input, options); - } + this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. - if (!parsed.output) { - parsed = parse(input, options); - } + this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s - return picomatch.compileRe(parsed, options, returnOutput, returnState); -}; + this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled -/** - * Create a regular expression from the given regex source string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.toRegex(source[, options]); - * - * const { output } = picomatch.parse('*.js'); - * console.log(picomatch.toRegex(output)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `source` Regular expression source string. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ + this.readingMore = false; + this.decoder = null; + this.encoding = null; -picomatch.toRegex = (source, options) => { - try { - const opts = options || {}; - return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); - } catch (err) { - if (options && options.debug === true) throw err; - return /$^/; + if (options.encoding) { + if (!StringDecoder) StringDecoder = (__nccwpck_require__(4841)/* .StringDecoder */ .s); + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; } -}; +} -/** - * Picomatch constants. - * @return {Object} - */ +function Readable(options) { + Duplex = Duplex || __nccwpck_require__(1359); + if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 -picomatch.constants = constants; + var isDuplex = this instanceof Duplex; + this._readableState = new ReadableState(options, this, isDuplex); // legacy -/** - * Expose "picomatch" - */ + this.readable = true; -module.exports = picomatch; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + Stream.call(this); +} -/***/ }), +Object.defineProperty(Readable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._readableState === undefined) { + return false; + } -/***/ 2429: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + return this._readableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } // backward compatibility, the user is explicitly + // managing destroyed -"use strict"; + this._readableState.destroyed = value; + } +}); +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; -const utils = __nccwpck_require__(479); -const { - CHAR_ASTERISK, /* * */ - CHAR_AT, /* @ */ - CHAR_BACKWARD_SLASH, /* \ */ - CHAR_COMMA, /* , */ - CHAR_DOT, /* . */ - CHAR_EXCLAMATION_MARK, /* ! */ - CHAR_FORWARD_SLASH, /* / */ - CHAR_LEFT_CURLY_BRACE, /* { */ - CHAR_LEFT_PARENTHESES, /* ( */ - CHAR_LEFT_SQUARE_BRACKET, /* [ */ - CHAR_PLUS, /* + */ - CHAR_QUESTION_MARK, /* ? */ - CHAR_RIGHT_CURLY_BRACE, /* } */ - CHAR_RIGHT_PARENTHESES, /* ) */ - CHAR_RIGHT_SQUARE_BRACKET /* ] */ -} = __nccwpck_require__(6099); +Readable.prototype._destroy = function (err, cb) { + cb(err); +}; // Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. -const isPathSeparator = code => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; -}; -const depth = token => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; } -}; -/** - * Quickly scans a glob pattern and returns an object with a handful of - * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), - * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not - * with `!(`) and `negatedExtglob` (true if the path starts with `!(`). - * - * ```js - * const pm = require('picomatch'); - * console.log(pm.scan('foo/bar/*.js')); - * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {Object} Returns an object with tokens and regex source string. - * @api public - */ + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; // Unshift should *always* be something directly out of read() -const scan = (input, options) => { - const opts = options || {}; - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; - let str = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob = false; - let isExtglob = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let negatedExtglob = false; - let finished = false; - let braces = 0; - let prev; - let code; - let token = { value: '', depth: 0, isGlob: false }; +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + debug('readableAddChunk', chunk); + var state = stream._readableState; - const eos = () => index >= length; - const peek = () => str.charCodeAt(index + 1); - const advance = () => { - prev = code; - return str.charCodeAt(++index); - }; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); - while (index < length) { - code = advance(); - let next; + if (er) { + errorOrDestroy(stream, er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed) { + return false; + } else { + state.reading = false; - if (code === CHAR_LEFT_CURLY_BRACE) { - braceEscaped = true; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } } - continue; + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); } + } // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { - braces++; - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} - if (code === CHAR_LEFT_CURLY_BRACE) { - braces++; - continue; - } +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + state.awaitDrain = 0; + stream.emit('data', chunk); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } - if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; + maybeReadMore(stream, state); +} - if (scanToEnd === true) { - continue; - } +function chunkInvalid(state, chunk) { + var er; - break; - } + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } - if (braceEscaped !== true && code === CHAR_COMMA) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; + return er; +} - if (scanToEnd === true) { - continue; - } +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; // backwards compatibility. - break; - } - if (code === CHAR_RIGHT_CURLY_BRACE) { - braces--; +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = (__nccwpck_require__(4841)/* .StringDecoder */ .s); + var decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 - if (braces === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } - } + this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: - if (scanToEnd === true) { - continue; - } + var p = this._readableState.buffer.head; + var content = ''; - break; - } + while (p !== null) { + content += decoder.write(p.data); + p = p.next; + } - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { value: '', depth: 0, isGlob: false }; + this._readableState.buffer.clear(); - if (finished === true) continue; - if (prev === CHAR_DOT && index === (start + 1)) { - start += 2; - continue; - } + if (content !== '') this._readableState.buffer.push(content); + this._readableState.length = content.length; + return this; +}; // Don't raise the hwm > 1GB - lastIndex = index + 1; - continue; - } - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS - || code === CHAR_AT - || code === CHAR_ASTERISK - || code === CHAR_QUESTION_MARK - || code === CHAR_EXCLAMATION_MARK; +var MAX_HWM = 0x40000000; - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - isExtglob = token.isExtglob = true; - finished = true; - if (code === CHAR_EXCLAMATION_MARK && index === start) { - negatedExtglob = true; - } +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } + return n; +} // This function is designed to be inlinable, so please take care when making +// changes to the function body. - if (code === CHAR_RIGHT_PARENTHESES) { - isGlob = token.isGlob = true; - finished = true; - break; - } - } - continue; - } - break; - } - } - if (code === CHAR_ASTERISK) { - if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; - isGlob = token.isGlob = true; - finished = true; +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; - if (scanToEnd === true) { - continue; - } - break; - } + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } // If we're asking for more than the current hwm, then raise the hwm. - if (code === CHAR_QUESTION_MARK) { - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; // Don't have enough + + if (!state.ended) { + state.needReadable = true; + return 0; + } + + return state.length; +} // you can override either this method, or the async _read(n) below. - if (code === CHAR_LEFT_SQUARE_BRACKET) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - isBracket = token.isBracket = true; - isGlob = token.isGlob = true; - finished = true; - break; - } - } +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. - if (scanToEnd === true) { - continue; - } + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } - break; - } + n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; - } + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + // if we need a readable event, then we need to do some reading. - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } + var doRead = state.needReadable; + debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some - if (code === CHAR_RIGHT_PARENTHESES) { - finished = true; - break; - } - } - continue; - } - break; - } + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. - if (isGlob === true) { - finished = true; - if (scanToEnd === true) { - continue; - } + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; // if the length is currently zero, then we *need* a readable event. - break; - } - } + if (state.length === 0) state.needReadable = true; // call internal read method - if (opts.noext === true) { - isExtglob = false; - isGlob = false; - } + this._read(state.highWaterMark); - let base = str; - let prefix = ''; - let glob = ''; + state.sync = false; // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. - if (start > 0) { - prefix = str.slice(0, start); - str = str.slice(start); - lastIndex -= start; + if (!state.reading) n = howMuchToRead(nOrig, state); } - if (base && isGlob === true && lastIndex > 0) { - base = str.slice(0, lastIndex); - glob = str.slice(lastIndex); - } else if (isGlob === true) { - base = ''; - glob = str; + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; } else { - base = str; + state.length -= n; + state.awaitDrain = 0; } - if (base && base !== '' && base !== '/' && base !== str) { - if (isPathSeparator(base.charCodeAt(base.length - 1))) { - base = base.slice(0, -1); - } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + + if (nOrig !== n && state.ended) endReadable(this); } - if (opts.unescape === true) { - if (glob) glob = utils.removeBackslashes(glob); + if (ret !== null) this.emit('data', ret); + return ret; +}; - if (base && backslashes === true) { - base = utils.removeBackslashes(base); - } - } +function onEofChunk(stream, state) { + debug('onEofChunk'); + if (state.ended) return; - const state = { - prefix, - input, - start, - base, - glob, - isBrace, - isBracket, - isGlob, - isExtglob, - isGlobstar, - negated, - negatedExtglob - }; + if (state.decoder) { + var chunk = state.decoder.end(); - if (opts.tokens === true) { - state.maxDepth = 0; - if (!isPathSeparator(code)) { - tokens.push(token); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; } - state.tokens = tokens; } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; - - for (let idx = 0; idx < slashes.length; idx++) { - const n = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx]; - const value = input.slice(n, i); - if (opts.tokens) { - if (idx === 0 && start !== 0) { - tokens[idx].isPrefix = true; - tokens[idx].value = prefix; - } else { - tokens[idx].value = value; - } - depth(tokens[idx]); - state.maxDepth += tokens[idx].depth; - } - if (idx !== 0 || value !== '') { - parts.push(value); - } - prevIndex = i; - } + state.ended = true; - if (prevIndex && prevIndex + 1 < input.length) { - const value = input.slice(prevIndex + 1); - parts.push(value); + if (state.sync) { + // if we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call + emitReadable(stream); + } else { + // emit 'readable' now to make sure it gets picked up. + state.needReadable = false; - if (opts.tokens) { - tokens[tokens.length - 1].value = value; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; - } + if (!state.emittedReadable) { + state.emittedReadable = true; + emitReadable_(stream); } - - state.slashes = slashes; - state.parts = parts; } - - return state; -}; - -module.exports = scan; +} // Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. -/***/ }), +function emitReadable(stream) { + var state = stream._readableState; + debug('emitReadable', state.needReadable, state.emittedReadable); + state.needReadable = false; -/***/ 479: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } +} -"use strict"; +function emitReadable_(stream) { + var state = stream._readableState; + debug('emitReadable_', state.destroyed, state.length, state.ended); + if (!state.destroyed && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; + } // The stream needs another readable event if + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. -const path = __nccwpck_require__(1017); -const win32 = process.platform === 'win32'; -const { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL -} = __nccwpck_require__(6099); -exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); -exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); -exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); -exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); -exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); +} // at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. -exports.removeBackslashes = str => { - return str.replace(REGEX_REMOVE_BACKSLASH, match => { - return match === '\\' ? '' : match; - }); -}; -exports.supportsLookbehinds = () => { - const segs = process.version.slice(1).split('.').map(Number); - if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { - return true; +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); } - return false; -}; +} -exports.isWindows = options => { - if (options && typeof options.windows === 'boolean') { - return options.windows; +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + var len = state.length; + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) // didn't get any data, stop spinning. + break; } - return win32 === true || path.sep === '\\'; -}; - -exports.escapeLast = (input, char, lastIdx) => { - const idx = input.lastIndexOf(char, lastIdx); - if (idx === -1) return input; - if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); - return `${input.slice(0, idx)}\\${input.slice(idx)}`; -}; -exports.removePrefix = (input, state = {}) => { - let output = input; - if (output.startsWith('./')) { - output = output.slice(2); - state.prefix = './'; - } - return output; -}; + state.readingMore = false; +} // abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. -exports.wrapOutput = (input, state = {}, options = {}) => { - const prepend = options.contains ? '' : '^'; - const append = options.contains ? '' : '$'; - let output = `${prepend}(?:${input})${append}`; - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; - } - return output; +Readable.prototype._read = function (n) { + errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); }; +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; -/***/ }), - -/***/ 8341: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var once = __nccwpck_require__(1223) -var eos = __nccwpck_require__(1205) -var fs = __nccwpck_require__(7147) // we only need fs to get the ReadStream and WriteStream prototypes + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; -var noop = function () {} -var ancient = /^v?\.0/.test(process.version) + case 1: + state.pipes = [state.pipes, dest]; + break; -var isFn = function (fn) { - return typeof fn === 'function' -} + default: + state.pipes.push(dest); + break; + } -var isFS = function (stream) { - if (!ancient) return false // newer node version do not need to care about fs is a special way - if (!fs) return false // browser - return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) -} + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); + dest.on('unpipe', onunpipe); -var isRequest = function (stream) { - return stream.setHeader && isFn(stream.abort) -} + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); -var destroyer = function (stream, reading, writing, callback) { - callback = once(callback) + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } - var closed = false - stream.on('close', function () { - closed = true - }) + function onend() { + debug('onend'); + dest.end(); + } // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. - eos(stream, {readable: reading, writable: writing}, function (err) { - if (err) return callback(err) - closed = true - callback() - }) - var destroyed = false - return function (err) { - if (closed) return - if (destroyed) return - destroyed = true + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + var cleanedUp = false; - if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks - if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want + function cleanup() { + debug('cleanup'); // cleanup event handlers once the pipe is broken - if (isFn(stream.destroy)) return stream.destroy() + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. - callback(err || new Error('stream was destroyed')) + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } -} - -var call = function (fn) { - fn() -} -var pipe = function (from, to) { - return from.pipe(to) -} - -var pump = function () { - var streams = Array.prototype.slice.call(arguments) - var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop + src.on('data', ondata); - if (Array.isArray(streams[0])) streams = streams[0] - if (streams.length < 2) throw new Error('pump requires two streams per minimum') + function ondata(chunk) { + debug('ondata'); + var ret = dest.write(chunk); + debug('dest.write', ret); - var error - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1 - var writing = i > 0 - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err - if (err) destroys.forEach(call) - if (reading) return - destroys.forEach(call) - callback(error) - }) - }) + if (ret === false) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; + } - return streams.reduce(pipe) -} + src.pause(); + } + } // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. -module.exports = pump + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); + } // Make sure our error handler is attached before userland ones. -/***/ }), -/***/ 212: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. -var pump = __nccwpck_require__(8341) -var inherits = __nccwpck_require__(4124) -var Duplexify = __nccwpck_require__(6599) + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } -var toArray = function(args) { - if (!args.length) return [] - return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args) -} + dest.once('close', onclose); -var define = function(opts) { - var Pumpify = function() { - var streams = toArray(arguments) - if (!(this instanceof Pumpify)) return new Pumpify(streams) - Duplexify.call(this, null, null, opts) - if (streams.length) this.setPipeline(streams) + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); } - inherits(Pumpify, Duplexify) + dest.once('finish', onfinish); - Pumpify.prototype.setPipeline = function() { - var streams = toArray(arguments) - var self = this - var ended = false - var w = streams[0] - var r = streams[streams.length-1] + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } // tell the dest that it's being piped to - r = r.readable ? r : null - w = w.writable ? w : null - var onclose = function() { - streams[0].emit('error', new Error('stream was destroyed')) - } + dest.emit('pipe', src); // start the flow if it hasn't been started already. - this.on('close', onclose) - this.on('prefinish', function() { - if (!ended) self.cork() - }) + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } - pump(streams, function(err) { - self.removeListener('close', onclose) - if (err) return self.destroy(err.message === 'premature close' ? null : err) - ended = true - // pump ends after the last stream is not writable *but* - // pumpify still forwards the readable part so we need to catch errors - // still, so reenable autoDestroy in this case - if (self._autoDestroy === false) self._autoDestroy = true - self.uncork() - }) + return dest; +}; - if (this.destroyed) return onclose() - this.setWritable(w) - this.setReadable(r) - } +function pipeOnDrain(src) { + return function pipeOnDrainFunctionResult() { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; - return Pumpify + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; } -module.exports = define({autoDestroy:false, destroy:false}) -module.exports.obj = define({autoDestroy: false, destroy:false, objectMode:true, highWaterMark:16}) -module.exports.ctor = define +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { + hasUnpiped: false + }; // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; // just one destination. most common case. -/***/ }), + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + if (!dest) dest = state.pipes; // got a match. -/***/ 9795: -/***/ ((module) => { + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } // slow case. multiple pipe destinations. -/*! queue-microtask. MIT License. Feross Aboukhadijeh */ -let promise -module.exports = typeof queueMicrotask === 'function' - ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) - // reuse resolved promise, and allocate it lazily - : cb => (promise || (promise = Promise.resolve())) - .then(cb) - .catch(err => setTimeout(() => { throw err }, 0)) + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, { + hasUnpiped: false + }); + } -/***/ }), + return this; + } // try to find the right one. -/***/ 7214: -/***/ ((module) => { -"use strict"; + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + dest.emit('unpipe', this, unpipeInfo); + return this; +}; // set up data events if they are asked for +// Ensure readable listeners eventually get something -const codes = {}; +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + var state = this._readableState; -function createErrorType(code, message, Base) { - if (!Base) { - Base = Error - } + if (ev === 'data') { + // update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused - function getMessage (arg1, arg2, arg3) { - if (typeof message === 'string') { - return message - } else { - return message(arg1, arg2, arg3) + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug('on readable', state.length, state.reading); + + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } } } - class NodeError extends Base { - constructor (arg1, arg2, arg3) { - super(getMessage(arg1, arg2, arg3)); - } + return res; +}; + +Readable.prototype.addListener = Readable.prototype.on; + +Readable.prototype.removeListener = function (ev, fn) { + var res = Stream.prototype.removeListener.call(this, ev, fn); + + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); } - NodeError.prototype.name = Base.name; - NodeError.prototype.code = code; + return res; +}; - codes[code] = NodeError; -} +Readable.prototype.removeAllListeners = function (ev) { + var res = Stream.prototype.removeAllListeners.apply(this, arguments); -// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js -function oneOf(expected, thing) { - if (Array.isArray(expected)) { - const len = expected.length; - expected = expected.map((i) => String(i)); - if (len > 2) { - return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` + - expected[len - 1]; - } else if (len === 2) { - return `one of ${thing} ${expected[0]} or ${expected[1]}`; - } else { - return `of ${thing} ${expected[0]}`; - } - } else { - return `of ${thing} ${String(expected)}`; + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); } -} -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith -function startsWith(str, search, pos) { - return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search; -} + return res; +}; -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith -function endsWith(str, search, this_len) { - if (this_len === undefined || this_len > str.length) { - this_len = str.length; - } - return str.substring(this_len - search.length, this_len) === search; +function updateReadableListening(self) { + var state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + + if (state.resumeScheduled && !state.paused) { + // flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; // crude way to check if we should resume + } else if (self.listenerCount('data') > 0) { + self.resume(); + } } -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes -function includes(str, search, start) { - if (typeof start !== 'number') { - start = 0; +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} // pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. + + +Readable.prototype.resume = function () { + var state = this._readableState; + + if (!state.flowing) { + debug('resume'); // we flow only if there is no one listening + // for readable, but we still have to call + // resume() + + state.flowing = !state.readableListening; + resume(this, state); } - if (start + search.length > str.length) { - return false; - } else { - return str.indexOf(search, start) !== -1; + state.paused = false; + return this; +}; + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); } } -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) { - return 'The value "' + value + '" is invalid for option "' + name + '"' -}, TypeError); -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) { - // determiner: 'must be' or 'must not be' - let determiner; - if (typeof expected === 'string' && startsWith(expected, 'not ')) { - determiner = 'must not be'; - expected = expected.replace(/^not /, ''); - } else { - determiner = 'must be'; - } +function resume_(stream, state) { + debug('resume', state.reading); - let msg; - if (endsWith(name, ' argument')) { - // For cases like 'first argument' - msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`; - } else { - const type = includes(name, '.') ? 'property' : 'argument'; - msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`; + if (!state.reading) { + stream.read(0); } - msg += `. Received type ${typeof actual}`; - return msg; -}, TypeError); -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF'); -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) { - return 'The ' + name + ' method is not implemented' -}); -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close'); -createErrorType('ERR_STREAM_DESTROYED', function (name) { - return 'Cannot call ' + name + ' after a stream was destroyed'; -}); -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times'); -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable'); -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end'); -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError); -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) { - return 'Unknown encoding: ' + arg -}, TypeError); -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event'); + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} -module.exports.q = codes; +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } -/***/ }), + this._readableState.paused = true; + return this; +}; -/***/ 1359: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. + while (state.flowing && stream.read() !== null) { + ; + } +} // wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; +Readable.prototype.wrap = function (stream) { + var _this = this; - for (var key in obj) { - keys.push(key); - } + var state = this._readableState; + var paused = false; + stream.on('end', function () { + debug('wrapped end'); - return keys; -}; -/**/ + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + _this.push(null); + }); + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode -module.exports = Duplex; + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; -var Readable = __nccwpck_require__(1433); + var ret = _this.push(chunk); -var Writable = __nccwpck_require__(6993); + if (!ret) { + paused = true; + stream.pause(); + } + }); // proxy all the other methods. + // important when wrapping filters and duplexes. -__nccwpck_require__(4124)(Duplex, Readable); + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function methodWrap(method) { + return function methodWrapReturnFunction() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } // proxy certain important events. -{ - // Allow the keys array to be GC'ed. - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } -} + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } // when we try to consume some more bytes, simply unpause the + // underlying stream. -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - Readable.call(this, options); - Writable.call(this, options); - this.allowHalfOpen = true; - if (options) { - if (options.readable === false) this.readable = false; - if (options.writable === false) this.writable = false; + this._read = function (n) { + debug('wrapped _read', n); - if (options.allowHalfOpen === false) { - this.allowHalfOpen = false; - this.once('end', onend); + if (paused) { + paused = false; + stream.resume(); } - } + }; + + return this; +}; + +if (typeof Symbol === 'function') { + Readable.prototype[Symbol.asyncIterator] = function () { + if (createReadableStreamAsyncIterator === undefined) { + createReadableStreamAsyncIterator = __nccwpck_require__(3306); + } + + return createReadableStreamAsyncIterator(this); + }; } -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function get() { - return this._writableState.highWaterMark; + return this._readableState.highWaterMark; } }); -Object.defineProperty(Duplex.prototype, 'writableBuffer', { +Object.defineProperty(Readable.prototype, 'readableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function get() { - return this._writableState && this._writableState.getBuffer(); + return this._readableState && this._readableState.buffer; } }); -Object.defineProperty(Duplex.prototype, 'writableLength', { +Object.defineProperty(Readable.prototype, 'readableFlowing', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in // userland will fail enumerable: false, get: function get() { - return this._writableState.length; + return this._readableState.flowing; + }, + set: function set(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } +}); // exposed for testing purposes only. + +Readable._fromList = fromList; +Object.defineProperty(Readable.prototype, 'readableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._readableState.length; + } +}); // Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. + +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = state.buffer.consume(n, state.decoder); + } + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + debug('endReadable', state.endEmitted); + + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); } -}); // the no-half-open enforcer +} -function onend() { - // If the writable side ended, then we're ok. - if (this._writableState.ended) return; // no more data can be written. - // But allow more writes to happen in this tick. +function endReadableNT(state, stream) { + debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. - process.nextTick(onEndNT, this); -} + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); -function onEndNT(self) { - self.end(); -} + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well + var wState = stream._writableState; -Object.defineProperty(Duplex.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined || this._writableState === undefined) { - return false; + if (!wState || wState.autoDestroy && wState.finished) { + stream.destroy(); + } } + } +} - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed +if (typeof Symbol === 'function') { + Readable.from = function (iterable, opts) { + if (from === undefined) { + from = __nccwpck_require__(9082); + } + return from(Readable, iterable, opts); + }; +} - this._readableState.destroyed = value; - this._writableState.destroyed = value; +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; } -}); + + return -1; +} /***/ }), -/***/ 1542: +/***/ 4415: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; @@ -79693,29 +79399,191 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. -module.exports = PassThrough; +module.exports = Transform; -var Transform = __nccwpck_require__(4415); +var _require$codes = (__nccwpck_require__(7214)/* .codes */ .q), + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; -__nccwpck_require__(4124)(PassThrough, Transform); +var Duplex = __nccwpck_require__(1359); -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - Transform.call(this, options); +__nccwpck_require__(4124)(Transform, Duplex); + +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + + if (cb === null) { + return this.emit('error', new ERR_MULTIPLE_CALLBACK()); + } + + ts.writechunk = null; + ts.writecb = null; + if (data != null) // single equals check for both `null` and `undefined` + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } } -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; // start out asking for a readable event once data is transformed. + + this._readableState.needReadable = true; // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } // When the writable side finishes, then flush out anything remaining. + + + this.on('prefinish', prefinish); +} + +function prefinish() { + var _this = this; + + if (typeof this._flush === 'function' && !this._readableState.destroyed) { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; // This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. + + +Transform.prototype._transform = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; // Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. + + +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && !ts.transforming) { + ts.transforming = true; + + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +Transform.prototype._destroy = function (err, cb) { + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + }); }; +function done(stream, er, data) { + if (er) return stream.emit('error', er); + if (data != null) // single equals check for both `null` and `undefined` + stream.push(data); // TODO(BridgeAR): Write a test for these two error cases + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + + if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); + if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); + return stream.push(null); +} + /***/ }), -/***/ 1433: +/***/ 6993: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { "use strict"; @@ -79739,27 +79607,51 @@ PassThrough.prototype._transform = function (chunk, encoding, cb) { // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. -module.exports = Readable; +module.exports = Writable; +/* */ + +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} // It seems a linked list but it is not +// there will be only 2 of these for each stream + + +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + /**/ + var Duplex; /**/ -Readable.ReadableState = ReadableState; +Writable.WritableState = WritableState; /**/ -var EE = (__nccwpck_require__(2361).EventEmitter); - -var EElistenerCount = function EElistenerCount(emitter, type) { - return emitter.listeners(type).length; +var internalUtil = { + deprecate: __nccwpck_require__(7127) }; /**/ /**/ - var Stream = __nccwpck_require__(2387); /**/ @@ -79775,22 +79667,6 @@ function _uint8ArrayToBuffer(chunk) { function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } -/**/ - - -var debugUtil = __nccwpck_require__(3837); - -var debug; - -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function debug() {}; -} -/**/ - - -var BufferList = __nccwpck_require__(6522); var destroyImpl = __nccwpck_require__(7049); @@ -79799,3568 +79675,3824 @@ var _require = __nccwpck_require__(9948), var _require$codes = (__nccwpck_require__(7214)/* .codes */ .q), ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. - - -var StringDecoder; -var createReadableStreamAsyncIterator; -var from; - -__nccwpck_require__(4124)(Readable, Stream); + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; var errorOrDestroy = destroyImpl.errorOrDestroy; -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. +__nccwpck_require__(4124)(Writable, Stream); - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} +function nop() {} -function ReadableState(options, stream, isDuplex) { +function WritableState(options, stream, isDuplex) { Duplex = Duplex || __nccwpck_require__(1359); options = options || {}; // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream + // contains buffers or objects. this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - - this.sync = true; // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - this.paused = true; // Should close be emitted on destroy. Defaults to true. - - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') - - this.autoDestroy = !!options.autoDestroy; // has it been destroyed - - this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - - this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s - - this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled - - this.readingMore = false; - this.decoder = null; - this.encoding = null; - - if (options.encoding) { - if (!StringDecoder) StringDecoder = (__nccwpck_require__(4841)/* .StringDecoder */ .s); - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || __nccwpck_require__(1359); - if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 - - var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); // legacy - - this.readable = true; - - if (options) { - if (typeof options.read === 'function') this._read = options.read; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - - Stream.call(this); -} - -Object.defineProperty(Readable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._readableState === undefined) { - return false; - } - - return this._readableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed - - - this._readableState.destroyed = value; - } -}); -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; - -Readable.prototype._destroy = function (err, cb) { - cb(err); -}; // Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. - - -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; // Unshift should *always* be something directly out of read() - - -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - debug('readableAddChunk', chunk); - var state = stream._readableState; - - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - - if (er) { - errorOrDestroy(stream, er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (addToFront) { - if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - } else if (state.destroyed) { - return false; - } else { - state.reading = false; - - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - maybeReadMore(stream, state); - } - } // We can push more data if we are below the highWaterMark. - // Also, if we have no data yet, we can stand some more bytes. - // This is to work around cases where hwm=0, such as the repl. + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called - return !state.ended && (state.length < state.highWaterMark || state.length === 0); -} + this.finalCalled = false; // drain event flag. -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - state.awaitDrain = 0; - stream.emit('data', chunk); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - if (state.needReadable) emitReadable(stream); - } + this.needDrain = false; // at the start of calling end() - maybeReadMore(stream, state); -} + this.ending = false; // when end() has been called, and returned -function chunkInvalid(state, chunk) { - var er; + this.ended = false; // when 'finish' is emitted - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); - } + this.finished = false; // has it been destroyed - return er; -} + this.destroyed = false; // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; // backwards compatibility. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = (__nccwpck_require__(4841)/* .StringDecoder */ .s); - var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 + this.length = 0; // a flag to see when we're in the middle of a write. - this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: + this.writing = false; // when true all writes will be buffered until .uncork() call - var p = this._readableState.buffer.head; - var content = ''; + this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. - while (p !== null) { - content += decoder.write(p.data); - p = p.next; - } + this.sync = true; // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. - this._readableState.buffer.clear(); + this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) - if (content !== '') this._readableState.buffer.push(content); - this._readableState.length = content.length; - return this; -}; // Don't raise the hwm > 1GB + this.onwrite = function (er) { + onwrite(stream, er); + }; // the callback that the user supplies to write(chunk,encoding,cb) -var MAX_HWM = 0x40000000; + this.writecb = null; // the amount that is being written when _write is called. -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted - return n; -} // This function is designed to be inlinable, so please take care when making -// changes to the function body. + this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; // True if the error was already emitted and should not be thrown again -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; + this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } // If we're asking for more than the current hwm, then raise the hwm. + this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; // count buffered requests - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; // Don't have enough + this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two - if (!state.ended) { - state.needReadable = true; - return 0; + this.corkedRequestsFree = new CorkedRequest(this); +} + +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + + while (current) { + out.push(current); + current = current.next; } - return state.length; -} // you can override either this method, or the async _read(n) below. + return out; +}; +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function writableStateBufferGetter() { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); // Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } +var realHasInstance; - n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function value(object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function realHasInstance(object) { + return object instanceof this; + }; +} - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - // if we need a readable event, then we need to do some reading. +function Writable(options) { + Duplex = Duplex || __nccwpck_require__(1359); // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5 + var isDuplex = this instanceof Duplex; + if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); // legacy. - var doRead = state.needReadable; - debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some + this.writable = true; - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + } + Stream.call(this); +} // Otherwise people can pipe Writable streams, which is just wrong. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; // call internal read method +Writable.prototype.pipe = function () { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +}; - this._read(state.highWaterMark); +function writeAfterEnd(stream, cb) { + var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb - state.sync = false; // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. + errorOrDestroy(stream, er); + process.nextTick(cb, er); +} // Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; +function validChunk(stream, state, chunk, cb) { + var er; - if (ret === null) { - state.needReadable = state.length <= state.highWaterMark; - n = 0; - } else { - state.length -= n; - state.awaitDrain = 0; + if (chunk === null) { + er = new ERR_STREAM_NULL_VALUES(); + } else if (typeof chunk !== 'string' && !state.objectMode) { + er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + if (er) { + errorOrDestroy(stream, er); + process.nextTick(cb, er); + return false; + } - if (nOrig !== n && state.ended) endReadable(this); + return true; +} + +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + + var isBuf = !state.objectMode && _isUint8Array(chunk); + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); } - if (ret !== null) this.emit('data', ret); + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + if (typeof cb !== 'function') cb = nop; + if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } return ret; }; -function onEofChunk(stream, state) { - debug('onEofChunk'); - if (state.ended) return; +Writable.prototype.cork = function () { + this._writableState.corked++; +}; - if (state.decoder) { - var chunk = state.decoder.end(); +Writable.prototype.uncork = function () { + var state = this._writableState; - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } +}; - state.ended = true; - - if (state.sync) { - // if we are sync, wait until next tick to emit the data. - // Otherwise we risk emitting data in the flow() - // the readable code triggers during a read() call - emitReadable(stream); - } else { - // emit 'readable' now to make sure it gets picked up. - state.needReadable = false; +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; - if (!state.emittedReadable) { - state.emittedReadable = true; - emitReadable_(stream); - } +Object.defineProperty(Writable.prototype, 'writableBuffer', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState && this._writableState.getBuffer(); } -} // Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. +}); +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } -function emitReadable(stream) { - var state = stream._readableState; - debug('emitReadable', state.needReadable, state.emittedReadable); - state.needReadable = false; + return chunk; +} - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - process.nextTick(emitReadable_, stream); +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.highWaterMark; } -} +}); // if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. -function emitReadable_(stream) { - var state = stream._readableState; - debug('emitReadable_', state.destroyed, state.length, state.ended); +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); - if (!state.destroyed && (state.length || state.ended)) { - stream.emit('readable'); - state.emittedReadable = false; - } // The stream needs another readable event if - // 1. It is not flowing, as the flow mechanism will take - // care of it. - // 2. It is not ended. - // 3. It is below the highWaterMark, so we can schedule - // another readable later. + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; - flow(stream); -} // at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. + if (!ret) state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - process.nextTick(maybeReadMore_, stream, state); + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); } + + return ret; } -function maybeReadMore_(stream, state) { - // Attempt to read more data if we should. - // - // The conditions for reading more data are (one of): - // - Not enough data buffered (state.length < state.highWaterMark). The loop - // is responsible for filling the buffer with enough data if such data - // is available. If highWaterMark is 0 and we are not in the flowing mode - // we should _not_ attempt to buffer any extra data. We'll get more data - // when the stream consumer calls read() instead. - // - No data in the buffer, and the stream is in flowing mode. In this mode - // the loop below is responsible for ensuring read() is called. Failing to - // call read here would abort the flow and there's no other mechanism for - // continuing the flow if the stream consumer has just subscribed to the - // 'data' event. - // - // In addition to the above conditions to keep reading data, the following - // conditions prevent the data from being read: - // - The stream has ended (state.ended). - // - There is already a pending 'read' operation (state.reading). This is a - // case where the the stream has called the implementation defined _read() - // method, but they are processing the call asynchronously and have _not_ - // called push() with new data. In this case we skip performing more - // read()s. The execution ends in this method again after the _read() ends - // up calling push() with more data. - while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { - var len = state.length; - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) // didn't get any data, stop spinning. - break; - } +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} - state.readingMore = false; -} // abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + process.nextTick(cb, er); // this can emit finish, and it will always happen + // after error -Readable.prototype._read = function (n) { - errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); -}; + process.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + errorOrDestroy(stream, er); // this can emit finish, but finish must + // always follow error -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; + finishMaybe(stream, state); + } +} - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); + onwriteStateUpdate(state); + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state) || stream.destroyed; - case 1: - state.pipes = [state.pipes, dest]; - break; + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } - default: - state.pipes.push(dest); - break; + if (sync) { + process.nextTick(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } } +} - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); - dest.on('unpipe', onunpipe); +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} // Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); } +} // if there's something in the buffer waiting, then process it - function onend() { - debug('onend'); - dest.end(); - } // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - var cleanedUp = false; + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; - function cleanup() { - debug('cleanup'); // cleanup event handlers once the pipe is broken + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - cleanedUp = true; // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } + state.pendingcb++; + state.lastBufferedRequest = null; - src.on('data', ondata); + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } - function ondata(chunk) { - debug('ondata'); - var ret = dest.write(chunk); - debug('dest.write', ret); + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. - if (ret === false) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', state.awaitDrain); - state.awaitDrain++; + if (state.writing) { + break; } - - src.pause(); } - } // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } // Make sure our error handler is attached before userland ones. + if (entry === null) state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; +} - prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); +}; - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } +Writable.prototype._writev = null; - dest.once('close', onclose); +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; } - dest.once('finish', onfinish); + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } // tell the dest that it's being piped to + if (state.corked) { + state.corked = 1; + this.uncork(); + } // ignore unnecessary end() calls. - dest.emit('pipe', src); // start the flow if it hasn't been started already. + if (!state.ending) endWritable(this, state, cb); + return this; +}; - if (!state.flowing) { - debug('pipe resume'); - src.resume(); +Object.defineProperty(Writable.prototype, 'writableLength', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + return this._writableState.length; } +}); - return dest; -}; +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} -function pipeOnDrain(src) { - return function pipeOnDrainFunctionResult() { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); + if (err) { + errorOrDestroy(stream, err); } - }; -} -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { - hasUnpiped: false - }; // if we're not piping anywhere, then do nothing. + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} - if (state.pipesCount === 0) return this; // just one destination. most common case. +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.pendingcb++; + state.finalCalled = true; + process.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; // got a match. +function finishMaybe(stream, state) { + var need = needFinish(state); - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } // slow case. multiple pipe destinations. + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well + var rState = stream._readableState; - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { - hasUnpiped: false - }); + if (!rState || rState.autoDestroy && rState.endEmitted) { + stream.destroy(); + } + } } + } - return this; - } // try to find the right one. + return need; +} +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this, unpipeInfo); - return this; -}; // set up data events if they are asked for -// Ensure readable listeners eventually get something + if (cb) { + if (state.finished) process.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - var state = this._readableState; +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; - if (ev === 'data') { - // update readableListening so that resume() may be a no-op - // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } // reuse the free corkReq. - if (state.flowing !== false) this.resume(); - } else if (ev === 'readable') { - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.flowing = false; - state.emittedReadable = false; - debug('on readable', state.length, state.reading); - if (state.length) { - emitReadable(this); - } else if (!state.reading) { - process.nextTick(nReadingNextTick, this); - } + state.corkedRequestsFree.next = corkReq; +} + +Object.defineProperty(Writable.prototype, 'destroyed', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function get() { + if (this._writableState === undefined) { + return false; } + + return this._writableState.destroyed; + }, + set: function set(value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } // backward compatibility, the user is explicitly + // managing destroyed + + + this._writableState.destroyed = value; } +}); +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; - return res; +Writable.prototype._destroy = function (err, cb) { + cb(err); }; -Readable.prototype.addListener = Readable.prototype.on; +/***/ }), -Readable.prototype.removeListener = function (ev, fn) { - var res = Stream.prototype.removeListener.call(this, ev, fn); +/***/ 3306: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (ev === 'readable') { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } +"use strict"; - return res; -}; -Readable.prototype.removeAllListeners = function (ev) { - var res = Stream.prototype.removeAllListeners.apply(this, arguments); +var _Object$setPrototypeO; - if (ev === 'readable' || ev === undefined) { - // We need to check if there is someone still listening to - // readable and reset the state. However this needs to happen - // after readable has been emitted but before I/O (nextTick) to - // support once('readable', fn) cycles. This means that calling - // resume within the same tick will have no - // effect. - process.nextTick(updateReadableListening, this); - } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - return res; -}; +var finished = __nccwpck_require__(6080); -function updateReadableListening(self) { - var state = self._readableState; - state.readableListening = self.listenerCount('readable') > 0; +var kLastResolve = Symbol('lastResolve'); +var kLastReject = Symbol('lastReject'); +var kError = Symbol('error'); +var kEnded = Symbol('ended'); +var kLastPromise = Symbol('lastPromise'); +var kHandlePromise = Symbol('handlePromise'); +var kStream = Symbol('stream'); - if (state.resumeScheduled && !state.paused) { - // flowing needs to be set to true now, otherwise - // the upcoming resume will not flow. - state.flowing = true; // crude way to check if we should resume - } else if (self.listenerCount('data') > 0) { - self.resume(); +function createIterResult(value, done) { + return { + value: value, + done: done + }; +} + +function readAndResolve(iter) { + var resolve = iter[kLastResolve]; + + if (resolve !== null) { + var data = iter[kStream].read(); // we defer if data is null + // we can be expecting either 'end' or + // 'error' + + if (data !== null) { + iter[kLastPromise] = null; + iter[kLastResolve] = null; + iter[kLastReject] = null; + resolve(createIterResult(data, false)); + } } } -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} // pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. +function onReadable(iter) { + // we wait for the next tick, because it might + // emit an error with process.nextTick + process.nextTick(readAndResolve, iter); +} +function wrapForNext(lastPromise, iter) { + return function (resolve, reject) { + lastPromise.then(function () { + if (iter[kEnded]) { + resolve(createIterResult(undefined, true)); + return; + } -Readable.prototype.resume = function () { - var state = this._readableState; + iter[kHandlePromise](resolve, reject); + }, reject); + }; +} - if (!state.flowing) { - debug('resume'); // we flow only if there is no one listening - // for readable, but we still have to call - // resume() +var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); +var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { + get stream() { + return this[kStream]; + }, - state.flowing = !state.readableListening; - resume(this, state); - } + next: function next() { + var _this = this; - state.paused = false; - return this; -}; + // if we have detected an error in the meanwhile + // reject straight away + var error = this[kError]; -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - process.nextTick(resume_, stream, state); - } -} + if (error !== null) { + return Promise.reject(error); + } + + if (this[kEnded]) { + return Promise.resolve(createIterResult(undefined, true)); + } + + if (this[kStream].destroyed) { + // We need to defer via nextTick because if .destroy(err) is + // called, the error will be emitted via nextTick, and + // we cannot guarantee that there is no error lingering around + // waiting to be emitted. + return new Promise(function (resolve, reject) { + process.nextTick(function () { + if (_this[kError]) { + reject(_this[kError]); + } else { + resolve(createIterResult(undefined, true)); + } + }); + }); + } // if we have multiple next() calls + // we will wait for the previous Promise to finish + // this logic is optimized to support for await loops, + // where next() is only called once at a time + + + var lastPromise = this[kLastPromise]; + var promise; + + if (lastPromise) { + promise = new Promise(wrapForNext(lastPromise, this)); + } else { + // fast path needed to support multiple this.push() + // without triggering the next() queue + var data = this[kStream].read(); + + if (data !== null) { + return Promise.resolve(createIterResult(data, false)); + } -function resume_(stream, state) { - debug('resume', state.reading); + promise = new Promise(this[kHandlePromise]); + } - if (!state.reading) { - stream.read(0); + this[kLastPromise] = promise; + return promise; } +}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { + return this; +}), _defineProperty(_Object$setPrototypeO, "return", function _return() { + var _this2 = this; - state.resumeScheduled = false; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); + // destroy(err, cb) is a private API + // we can guarantee we have that here, because we control the + // Readable class this is attached to + return new Promise(function (resolve, reject) { + _this2[kStream].destroy(null, function (err) { + if (err) { + reject(err); + return; + } - if (this._readableState.flowing !== false) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } + resolve(createIterResult(undefined, true)); + }); + }); +}), _Object$setPrototypeO), AsyncIteratorPrototype); - this._readableState.paused = true; - return this; -}; +var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { + var _Object$create; -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); + var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { + value: stream, + writable: true + }), _defineProperty(_Object$create, kLastResolve, { + value: null, + writable: true + }), _defineProperty(_Object$create, kLastReject, { + value: null, + writable: true + }), _defineProperty(_Object$create, kError, { + value: null, + writable: true + }), _defineProperty(_Object$create, kEnded, { + value: stream._readableState.endEmitted, + writable: true + }), _defineProperty(_Object$create, kHandlePromise, { + value: function value(resolve, reject) { + var data = iterator[kStream].read(); - while (state.flowing && stream.read() !== null) { - ; - } -} // wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. + if (data) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(data, false)); + } else { + iterator[kLastResolve] = resolve; + iterator[kLastReject] = reject; + } + }, + writable: true + }), _Object$create)); + iterator[kLastPromise] = null; + finished(stream, function (err) { + if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { + var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise + // returned by next() and store the error + if (reject !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + reject(err); + } -Readable.prototype.wrap = function (stream) { - var _this = this; + iterator[kError] = err; + return; + } - var state = this._readableState; - var paused = false; - stream.on('end', function () { - debug('wrapped end'); + var resolve = iterator[kLastResolve]; - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); + if (resolve !== null) { + iterator[kLastPromise] = null; + iterator[kLastResolve] = null; + iterator[kLastReject] = null; + resolve(createIterResult(undefined, true)); } - _this.push(null); + iterator[kEnded] = true; }); - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode + stream.on('readable', onReadable.bind(null, iterator)); + return iterator; +}; - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; +module.exports = createReadableStreamAsyncIterator; - var ret = _this.push(chunk); +/***/ }), - if (!ret) { - paused = true; - stream.pause(); - } - }); // proxy all the other methods. - // important when wrapping filters and duplexes. +/***/ 6522: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function methodWrap(method) { - return function methodWrapReturnFunction() { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } // proxy certain important events. +"use strict"; - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } // when we try to consume some more bytes, simply unpause the - // underlying stream. +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - this._read = function (n) { - debug('wrapped _read', n); +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - if (paused) { - paused = false; - stream.resume(); - } - }; +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - return this; -}; +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } -if (typeof Symbol === 'function') { - Readable.prototype[Symbol.asyncIterator] = function () { - if (createReadableStreamAsyncIterator === undefined) { - createReadableStreamAsyncIterator = __nccwpck_require__(3306); - } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - return createReadableStreamAsyncIterator(this); - }; -} +var _require = __nccwpck_require__(4300), + Buffer = _require.Buffer; -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.highWaterMark; - } -}); -Object.defineProperty(Readable.prototype, 'readableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState && this._readableState.buffer; - } -}); -Object.defineProperty(Readable.prototype, 'readableFlowing', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.flowing; - }, - set: function set(state) { - if (this._readableState) { - this._readableState.flowing = state; - } - } -}); // exposed for testing purposes only. +var _require2 = __nccwpck_require__(3837), + inspect = _require2.inspect; -Readable._fromList = fromList; -Object.defineProperty(Readable.prototype, 'readableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._readableState.length; - } -}); // Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. +var custom = inspect && inspect.custom || 'inspect'; -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = state.buffer.consume(n, state.decoder); - } - return ret; +function copyBuffer(src, target, offset) { + Buffer.prototype.copy.call(src, target, offset); } -function endReadable(stream) { - var state = stream._readableState; - debug('endReadable', state.endEmitted); +module.exports = +/*#__PURE__*/ +function () { + function BufferList() { + _classCallCheck(this, BufferList); - if (!state.endEmitted) { - state.ended = true; - process.nextTick(endReadableNT, state, stream); + this.head = null; + this.tail = null; + this.length = 0; } -} - -function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. - - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the writable side is ready for autoDestroy as well - var wState = stream._writableState; - - if (!wState || wState.autoDestroy && wState.finished) { - stream.destroy(); - } + _createClass(BufferList, [{ + key: "push", + value: function push(v) { + var entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; } - } -} - -if (typeof Symbol === 'function') { - Readable.from = function (iterable, opts) { - if (from === undefined) { - from = __nccwpck_require__(9082); + }, { + key: "unshift", + value: function unshift(v) { + var entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + }, { + key: "shift", + value: function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + } + }, { + key: "clear", + value: function clear() { + this.head = this.tail = null; + this.length = 0; } + }, { + key: "join", + value: function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; - return from(Readable, iterable, opts); - }; -} + while (p = p.next) { + ret += s + p.data; + } -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } + return ret; + } + }, { + key: "concat", + value: function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; - return -1; -} + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } -/***/ }), + return ret; + } // Consumes a specified amount of bytes or characters from the buffered data. -/***/ 4415: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + }, { + key: "consume", + value: function consume(n, hasStrings) { + var ret; -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. + if (n < this.head.data.length) { + // `slice` is the same for buffers and strings. + ret = this.head.data.slice(0, n); + this.head.data = this.head.data.slice(n); + } else if (n === this.head.data.length) { + // First chunk is a perfect match. + ret = this.shift(); + } else { + // Result spans more than one buffer. + ret = hasStrings ? this._getString(n) : this._getBuffer(n); + } + return ret; + } + }, { + key: "first", + value: function first() { + return this.head.data; + } // Consumes a specified amount of characters from the buffered data. -module.exports = Transform; + }, { + key: "_getString", + value: function _getString(n) { + var p = this.head; + var c = 1; + var ret = p.data; + n -= ret.length; -var _require$codes = (__nccwpck_require__(7214)/* .codes */ .q), - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; -var Duplex = __nccwpck_require__(1359); + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = str.slice(nb); + } -__nccwpck_require__(4124)(Transform, Duplex); + break; + } -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - var cb = ts.writecb; + ++c; + } - if (cb === null) { - return this.emit('error', new ERR_MULTIPLE_CALLBACK()); - } + this.length -= c; + return ret; + } // Consumes a specified amount of bytes from the buffered data. - ts.writechunk = null; - ts.writecb = null; - if (data != null) // single equals check for both `null` and `undefined` - this.push(data); - cb(er); - var rs = this._readableState; - rs.reading = false; + }, { + key: "_getBuffer", + value: function _getBuffer(n) { + var ret = Buffer.allocUnsafe(n); + var p = this.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); - } -} + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - Duplex.call(this, options); - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; // start out asking for a readable event once data is transformed. + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) this.head = p.next;else this.head = this.tail = null; + } else { + this.head = p; + p.data = buf.slice(nb); + } - this._readableState.needReadable = true; // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. + break; + } - this._readableState.sync = false; + ++c; + } - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - if (typeof options.flush === 'function') this._flush = options.flush; - } // When the writable side finishes, then flush out anything remaining. + this.length -= c; + return ret; + } // Make sure the linked list only shows the minimal necessary information. + }, { + key: custom, + value: function value(_, options) { + return inspect(this, _objectSpread({}, options, { + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + })); + } + }]); - this.on('prefinish', prefinish); -} + return BufferList; +}(); -function prefinish() { - var _this = this; +/***/ }), - if (typeof this._flush === 'function' && !this._readableState.destroyed) { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); - } -} +/***/ 7049: +/***/ ((module) => { -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; // This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. +"use strict"; + // undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; -Transform.prototype._transform = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); -}; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err) { + if (!this._writableState) { + process.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + process.nextTick(emitErrorNT, this, err); + } + } - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; // Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. + return this; + } // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks -Transform.prototype._read = function (n) { - var ts = this._transformState; + if (this._readableState) { + this._readableState.destroyed = true; + } // if this is a duplex stream mark the writable part as destroyed as well - if (ts.writechunk !== null && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; + if (this._writableState) { + this._writableState.destroyed = true; } -}; -Transform.prototype._destroy = function (err, cb) { - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); + this._destroy(err || null, function (err) { + if (!cb && err) { + if (!_this._writableState) { + process.nextTick(emitErrorAndCloseNT, _this, err); + } else if (!_this._writableState.errorEmitted) { + _this._writableState.errorEmitted = true; + process.nextTick(emitErrorAndCloseNT, _this, err); + } else { + process.nextTick(emitCloseNT, _this); + } + } else if (cb) { + process.nextTick(emitCloseNT, _this); + cb(err); + } else { + process.nextTick(emitCloseNT, _this); + } }); -}; -function done(stream, er, data) { - if (er) return stream.emit('error', er); - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); // TODO(BridgeAR): Write a test for these two error cases - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided + return this; +} - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); - if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); - return stream.push(null); +function emitErrorAndCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); } -/***/ }), +function emitCloseNT(self) { + if (self._writableState && !self._writableState.emitClose) return; + if (self._readableState && !self._readableState.emitClose) return; + self.emit('close'); +} -/***/ 6993: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } -"use strict"; -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} +function emitErrorNT(self, err) { + self.emit('error', err); +} -module.exports = Writable; -/* */ +function errorOrDestroy(stream, err) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. + var rState = stream._readableState; + var wState = stream._writableState; + if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); +} -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} // It seems a linked list but it is not -// there will be only 2 of these for each stream +module.exports = { + destroy: destroy, + undestroy: undestroy, + errorOrDestroy: errorOrDestroy +}; +/***/ }), -function CorkedRequest(state) { - var _this = this; +/***/ 6080: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - this.next = null; - this.entry = null; +"use strict"; +// Ported from https://github.com/mafintosh/end-of-stream with +// permission from the author, Mathias Buus (@mafintosh). - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ -/**/ +var ERR_STREAM_PREMATURE_CLOSE = (__nccwpck_require__(7214)/* .codes.ERR_STREAM_PREMATURE_CLOSE */ .q.ERR_STREAM_PREMATURE_CLOSE); +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; -var Duplex; -/**/ + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } -Writable.WritableState = WritableState; -/**/ + callback.apply(this, args); + }; +} -var internalUtil = { - deprecate: __nccwpck_require__(7127) -}; -/**/ +function noop() {} -/**/ +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} -var Stream = __nccwpck_require__(2387); -/**/ +function eos(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + callback = once(callback || noop); + var readable = opts.readable || opts.readable !== false && stream.readable; + var writable = opts.writable || opts.writable !== false && stream.writable; + var onlegacyfinish = function onlegacyfinish() { + if (!stream.writable) onfinish(); + }; -var Buffer = (__nccwpck_require__(4300).Buffer); + var writableEnded = stream._writableState && stream._writableState.finished; -var OurUint8Array = global.Uint8Array || function () {}; + var onfinish = function onfinish() { + writable = false; + writableEnded = true; + if (!readable) callback.call(stream); + }; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} + var readableEnded = stream._readableState && stream._readableState.endEmitted; -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} + var onend = function onend() { + readable = false; + readableEnded = true; + if (!writable) callback.call(stream); + }; -var destroyImpl = __nccwpck_require__(7049); + var onerror = function onerror(err) { + callback.call(stream, err); + }; -var _require = __nccwpck_require__(9948), - getHighWaterMark = _require.getHighWaterMark; + var onclose = function onclose() { + var err; -var _require$codes = (__nccwpck_require__(7214)/* .codes */ .q), - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; + if (readable && !readableEnded) { + if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } -var errorOrDestroy = destroyImpl.errorOrDestroy; + if (writable && !writableEnded) { + if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); + return callback.call(stream, err); + } + }; -__nccwpck_require__(4124)(Writable, Stream); + var onrequest = function onrequest() { + stream.req.on('finish', onfinish); + }; -function nop() {} + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest();else stream.on('request', onrequest); + } else if (writable && !stream._writableState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } -function WritableState(options, stream, isDuplex) { - Duplex = Duplex || __nccwpck_require__(1359); - options = options || {}; // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream, - // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + return function () { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +} - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream - // contains buffers or objects. +module.exports = eos; - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() +/***/ }), - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called +/***/ 9082: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - this.finalCalled = false; // drain event flag. +"use strict"; - this.needDrain = false; // at the start of calling end() - this.ending = false; // when end() has been called, and returned +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - this.ended = false; // when 'finish' is emitted +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - this.finished = false; // has it been destroyed +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - this.destroyed = false; // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. +var ERR_INVALID_ARG_TYPE = (__nccwpck_require__(7214)/* .codes.ERR_INVALID_ARG_TYPE */ .q.ERR_INVALID_ARG_TYPE); - this.length = 0; // a flag to see when we're in the middle of a write. +function from(Readable, iterable, opts) { + var iterator; - this.writing = false; // when true all writes will be buffered until .uncork() call + if (iterable && typeof iterable.next === 'function') { + iterator = iterable; + } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); - this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. + var readable = new Readable(_objectSpread({ + objectMode: true + }, opts)); // Reading boolean to protect against _read + // being called before last iteration completion. - this.sync = true; // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. + var reading = false; - this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) + readable._read = function () { + if (!reading) { + reading = true; + next(); + } + }; - this.onwrite = function (er) { - onwrite(stream, er); - }; // the callback that the user supplies to write(chunk,encoding,cb) + function next() { + return _next2.apply(this, arguments); + } + function _next2() { + _next2 = _asyncToGenerator(function* () { + try { + var _ref = yield iterator.next(), + value = _ref.value, + done = _ref.done; - this.writecb = null; // the amount that is being written when _write is called. + if (done) { + readable.push(null); + } else if (readable.push((yield value))) { + next(); + } else { + reading = false; + } + } catch (err) { + readable.destroy(err); + } + }); + return _next2.apply(this, arguments); + } - this.writelen = 0; - this.bufferedRequest = null; - this.lastBufferedRequest = null; // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted + return readable; +} - this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams +module.exports = from; - this.prefinished = false; // True if the error was already emitted and should not be thrown again +/***/ }), - this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. +/***/ 6989: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') +"use strict"; +// Ported from https://github.com/mafintosh/pump with +// permission from the author, Mathias Buus (@mafintosh). - this.autoDestroy = !!options.autoDestroy; // count buffered requests - this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two +var eos; - this.corkedRequestsFree = new CorkedRequest(this); +function once(callback) { + var called = false; + return function () { + if (called) return; + called = true; + callback.apply(void 0, arguments); + }; } -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - - while (current) { - out.push(current); - current = current.next; - } - - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function writableStateBufferGetter() { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); // Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. +var _require$codes = (__nccwpck_require__(7214)/* .codes */ .q), + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; +function noop(err) { + // Rethrow the error if it exists to avoid swallowing it + if (err) throw err; +} -var realHasInstance; +function isRequest(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +} -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function value(object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - return object && object._writableState instanceof WritableState; - } +function destroyer(stream, reading, writing, callback) { + callback = once(callback); + var closed = false; + stream.on('close', function () { + closed = true; }); -} else { - realHasInstance = function realHasInstance(object) { - return object instanceof this; + if (eos === undefined) eos = __nccwpck_require__(6080); + eos(stream, { + readable: reading, + writable: writing + }, function (err) { + if (err) return callback(err); + closed = true; + callback(); + }); + var destroyed = false; + return function (err) { + if (closed) return; + if (destroyed) return; + destroyed = true; // request.destroy just do .end - .abort is what we want + + if (isRequest(stream)) return stream.abort(); + if (typeof stream.destroy === 'function') return stream.destroy(); + callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } -function Writable(options) { - Duplex = Duplex || __nccwpck_require__(1359); // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - // Checking for a Stream.Duplex instance is faster here instead of inside - // the WritableState constructor, at least with V8 6.5 +function call(fn) { + fn(); +} - var isDuplex = this instanceof Duplex; - if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); // legacy. +function pipe(from, to) { + return from.pipe(to); +} - this.writable = true; +function popCallback(streams) { + if (!streams.length) return noop; + if (typeof streams[streams.length - 1] !== 'function') return noop; + return streams.pop(); +} - if (options) { - if (typeof options.write === 'function') this._write = options.write; - if (typeof options.writev === 'function') this._writev = options.writev; - if (typeof options.destroy === 'function') this._destroy = options.destroy; - if (typeof options.final === 'function') this._final = options.final; +function pipeline() { + for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { + streams[_key] = arguments[_key]; } - Stream.call(this); -} // Otherwise people can pipe Writable streams, which is just wrong. + var callback = popCallback(streams); + if (Array.isArray(streams[0])) streams = streams[0]; + if (streams.length < 2) { + throw new ERR_MISSING_ARGS('streams'); + } -Writable.prototype.pipe = function () { - errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); -}; + var error; + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1; + var writing = i > 0; + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err; + if (err) destroys.forEach(call); + if (reading) return; + destroys.forEach(call); + callback(error); + }); + }); + return streams.reduce(pipe); +} -function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb +module.exports = pipeline; - errorOrDestroy(stream, er); - process.nextTick(cb, er); -} // Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. +/***/ }), +/***/ 9948: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -function validChunk(stream, state, chunk, cb) { - var er; +"use strict"; - if (chunk === null) { - er = new ERR_STREAM_NULL_VALUES(); - } else if (typeof chunk !== 'string' && !state.objectMode) { - er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); - } - if (er) { - errorOrDestroy(stream, er); - process.nextTick(cb, er); - return false; - } +var ERR_INVALID_OPT_VALUE = (__nccwpck_require__(7214)/* .codes.ERR_INVALID_OPT_VALUE */ .q.ERR_INVALID_OPT_VALUE); - return true; +function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; +function getHighWaterMark(state, options, duplexKey, isDuplex) { + var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - var isBuf = !state.objectMode && _isUint8Array(chunk); + if (hwm != null) { + if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { + var name = isDuplex ? duplexKey : 'highWaterMark'; + throw new ERR_INVALID_OPT_VALUE(name, hwm); + } - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } + return Math.floor(hwm); + } // Default value - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - if (typeof cb !== 'function') cb = nop; - if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - return ret; -}; + return state.objectMode ? 16 : 16 * 1024; +} -Writable.prototype.cork = function () { - this._writableState.corked++; +module.exports = { + getHighWaterMark: getHighWaterMark }; -Writable.prototype.uncork = function () { - var state = this._writableState; +/***/ }), - if (state.corked) { - state.corked--; - if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; +/***/ 2387: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; +module.exports = __nccwpck_require__(2781); -Object.defineProperty(Writable.prototype, 'writableBuffer', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState && this._writableState.getBuffer(); - } -}); -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } +/***/ }), - return chunk; -} +/***/ 1642: +/***/ ((module, exports, __nccwpck_require__) => { -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.highWaterMark; - } -}); // if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. +var Stream = __nccwpck_require__(2781); +if (process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream.Readable; + Object.assign(module.exports, Stream); + module.exports.Stream = Stream; +} else { + exports = module.exports = __nccwpck_require__(1433); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = __nccwpck_require__(6993); + exports.Duplex = __nccwpck_require__(1359); + exports.Transform = __nccwpck_require__(4415); + exports.PassThrough = __nccwpck_require__(1542); + exports.finished = __nccwpck_require__(6080); + exports.pipeline = __nccwpck_require__(6989); +} -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } +/***/ }), - var len = state.objectMode ? 1 : chunk.length; - state.length += len; - var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. +/***/ 3515: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - if (!ret) state.needDrain = true; +"use strict"; - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } +var { PassThrough } = __nccwpck_require__(2781); +var debug = __nccwpck_require__(8237)('retry-request'); +var extend = __nccwpck_require__(8171); - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } +var DEFAULTS = { + objectMode: false, + retries: 2, - return ret; -} + /* + The maximum time to delay in seconds. If retryDelayMultiplier results in a + delay greater than maxRetryDelay, retries should delay by maxRetryDelay + seconds instead. + */ + maxRetryDelay: 64, -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} + /* + The multiplier by which to increase the delay time between the completion of + failed requests, and the initiation of the subsequent retrying request. + */ + retryDelayMultiplier: 2, -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; + /* + The length of time to keep retrying in seconds. The last sleep period will + be shortened as necessary, so that the last retry runs at deadline (and not + considerably beyond it). The total time starting from when the initial + request is sent, after which an error will be returned, regardless of the + retrying attempts made meanwhile. + */ + totalTimeout: 600, - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - process.nextTick(cb, er); // this can emit finish, and it will always happen - // after error + noResponseRetries: 2, + currentRetryAttempt: 0, + shouldRetryFn: function (response) { + var retryRanges = [ + // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes + // 1xx - Retry (Informational, request still processing) + // 2xx - Do not retry (Success) + // 3xx - Do not retry (Redirect) + // 4xx - Do not retry (Client errors) + // 429 - Retry ("Too Many Requests") + // 5xx - Retry (Server errors) + [100, 199], + [429, 429], + [500, 599] + ]; - process.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); // this can emit finish, but finish must - // always follow error + var statusCode = response.statusCode; + debug(`Response status: ${statusCode}`); - finishMaybe(stream, state); + var range; + while ((range = retryRanges.shift())) { + if (statusCode >= range[0] && statusCode <= range[1]) { + // Not a successful status or redirect. + return true; + } + } } -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK(); - onwriteStateUpdate(state); - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state) || stream.destroyed; +}; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } +function retryRequest(requestOpts, opts, callback) { + var streamMode = typeof arguments[arguments.length - 1] !== 'function'; - if (sync) { - process.nextTick(afterWrite, stream, state, finished, cb); - } else { - afterWrite(stream, state, finished, cb); - } + if (typeof opts === 'function') { + callback = opts; } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} // Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. + var manualCurrentRetryAttemptWasSet = opts && typeof opts.currentRetryAttempt === 'number'; + opts = extend({}, DEFAULTS, opts); -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); + if (typeof opts.request === 'undefined') { + try { + opts.request = __nccwpck_require__(8418); + } catch (e) { + throw new Error('A request library must be provided to retry-request.'); + } } -} // if there's something in the buffer waiting, then process it + var currentRetryAttempt = opts.currentRetryAttempt; -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; + var numNoResponseAttempts = 0; + var streamResponseHandled = false; - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - var count = 0; - var allBuffers = true; + var retryStream; + var requestStream; + var delayStream; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; + var activeRequest; + var retryRequest = { + abort: function () { + if (activeRequest && activeRequest.abort) { + activeRequest.abort(); + } } + }; - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - - state.pendingcb++; - state.lastBufferedRequest = null; + if (streamMode) { + retryStream = new PassThrough({ objectMode: opts.objectMode }); + retryStream.abort = resetStreams; + } - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } + var timeOfFirstRequest = Date.now(); + if (currentRetryAttempt > 0) { + retryAfterDelay(currentRetryAttempt); + } else { + makeRequest(); + } - state.bufferedRequestCount = 0; + if (streamMode) { + return retryStream; } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. + return retryRequest; + } - if (state.writing) { - break; + function resetStreams() { + delayStream = null; + + if (requestStream) { + requestStream.abort && requestStream.abort(); + requestStream.cancel && requestStream.cancel(); + + if (requestStream.destroy) { + requestStream.destroy(); + } else if (requestStream.end) { + requestStream.end(); } } - - if (entry === null) state.lastBufferedRequest = null; } - state.bufferedRequest = entry; - state.bufferProcessing = false; -} + function makeRequest() { + currentRetryAttempt++; + debug(`Current retry attempt: ${currentRetryAttempt}`); -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); -}; + if (streamMode) { + streamResponseHandled = false; -Writable.prototype._writev = null; + delayStream = new PassThrough({ objectMode: opts.objectMode }); + requestStream = opts.request(requestOpts); -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; + setImmediate(function () { + retryStream.emit('request'); + }); - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } + requestStream + // gRPC via google-cloud-node can emit an `error` as well as a `response` + // Whichever it emits, we run with-- we can't run with both. That's what + // is up with the `streamResponseHandled` tracking. + .on('error', function (err) { + if (streamResponseHandled) { + return; + } - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks + streamResponseHandled = true; + onResponse(err); + }) + .on('response', function (resp, body) { + if (streamResponseHandled) { + return; + } - if (state.corked) { - state.corked = 1; - this.uncork(); - } // ignore unnecessary end() calls. + streamResponseHandled = true; + onResponse(null, resp, body); + }) + .on('complete', retryStream.emit.bind(retryStream, 'complete')); + requestStream.pipe(delayStream); + } else { + activeRequest = opts.request(requestOpts, onResponse); + } + } + + function retryAfterDelay(currentRetryAttempt) { + if (streamMode) { + resetStreams(); + } - if (!state.ending) endWritable(this, state, cb); - return this; -}; + var nextRetryDelay = getNextRetryDelay({ + maxRetryDelay: opts.maxRetryDelay, + retryDelayMultiplier: opts.retryDelayMultiplier, + retryNumber: currentRetryAttempt, + timeOfFirstRequest, + totalTimeout: opts.totalTimeout, + }); + debug(`Next retry delay: ${nextRetryDelay}`); -Object.defineProperty(Writable.prototype, 'writableLength', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - return this._writableState.length; + setTimeout(makeRequest, nextRetryDelay); } -}); -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} + function onResponse(err, response, body) { + // An error such as DNS resolution. + if (err) { + numNoResponseAttempts++; -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; + if (numNoResponseAttempts <= opts.noResponseRetries) { + retryAfterDelay(numNoResponseAttempts); + } else { + if (streamMode) { + retryStream.emit('error', err); + retryStream.end(); + } else { + callback(err, response, body); + } + } - if (err) { - errorOrDestroy(stream, err); + return; } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} + // Send the response to see if we should try again. + // NOTE: "currentRetryAttempt" isn't accurate by default, as it counts + // the very first request sent as the first "retry". It is only accurate + // when a user provides their own "currentRetryAttempt" option at + // instantiation. + var adjustedCurrentRetryAttempt = manualCurrentRetryAttemptWasSet ? currentRetryAttempt : currentRetryAttempt - 1; + if (adjustedCurrentRetryAttempt < opts.retries && opts.shouldRetryFn(response)) { + retryAfterDelay(currentRetryAttempt); + return; + } -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function' && !state.destroyed) { - state.pendingcb++; - state.finalCalled = true; - process.nextTick(callFinal, stream, state); + // No more attempts need to be made, just continue on. + if (streamMode) { + retryStream.emit('response', response); + delayStream.pipe(retryStream); + requestStream.on('error', function (err) { + retryStream.destroy(err); + }); } else { - state.prefinished = true; - stream.emit('prefinish'); + callback(err, response, body); } } } -function finishMaybe(stream, state) { - var need = needFinish(state); +module.exports = retryRequest; - if (need) { - prefinish(stream, state); +function getNextRetryDelay(config) { + var { + maxRetryDelay, + retryDelayMultiplier, + retryNumber, + timeOfFirstRequest, + totalTimeout, + } = config; - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); + var maxRetryDelayMs = maxRetryDelay * 1000; + var totalTimeoutMs = totalTimeout * 1000; - if (state.autoDestroy) { - // In case of duplex streams we need a way to detect - // if the readable side is ready for autoDestroy as well - var rState = stream._readableState; + var jitter = Math.floor(Math.random() * 1000); + var calculatedNextRetryDelay = Math.pow(retryDelayMultiplier, retryNumber) * 1000 + jitter; - if (!rState || rState.autoDestroy && rState.endEmitted) { - stream.destroy(); - } - } - } - } + var maxAllowableDelayMs = totalTimeoutMs - (Date.now() - timeOfFirstRequest); - return need; + return Math.min(calculatedNextRetryDelay, maxAllowableDelayMs, maxRetryDelayMs); } -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); +module.exports.getNextRetryDelay = getNextRetryDelay; - if (cb) { - if (state.finished) process.nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} +/***/ }), -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; +/***/ 4347: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } // reuse the free corkReq. +module.exports = __nccwpck_require__(6244); +/***/ }), - state.corkedRequestsFree.next = corkReq; -} +/***/ 6244: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -Object.defineProperty(Writable.prototype, 'destroyed', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function get() { - if (this._writableState === undefined) { - return false; - } +var RetryOperation = __nccwpck_require__(5369); - return this._writableState.destroyed; - }, - set: function set(value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } // backward compatibility, the user is explicitly - // managing destroyed +exports.operation = function(options) { + var timeouts = exports.timeouts(options); + return new RetryOperation(timeouts, { + forever: options && (options.forever || options.retries === Infinity), + unref: options && options.unref, + maxRetryTime: options && options.maxRetryTime + }); +}; +exports.timeouts = function(options) { + if (options instanceof Array) { + return [].concat(options); + } - this._writableState.destroyed = value; + var opts = { + retries: 10, + factor: 2, + minTimeout: 1 * 1000, + maxTimeout: Infinity, + randomize: false + }; + for (var key in options) { + opts[key] = options[key]; } -}); -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - cb(err); + if (opts.minTimeout > opts.maxTimeout) { + throw new Error('minTimeout is greater than maxTimeout'); + } + + var timeouts = []; + for (var i = 0; i < opts.retries; i++) { + timeouts.push(this.createTimeout(i, opts)); + } + + if (options && options.forever && !timeouts.length) { + timeouts.push(this.createTimeout(i, opts)); + } + + // sort the array numerically ascending + timeouts.sort(function(a,b) { + return a - b; + }); + + return timeouts; }; -/***/ }), +exports.createTimeout = function(attempt, opts) { + var random = (opts.randomize) + ? (Math.random() + 1) + : 1; -/***/ 3306: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt)); + timeout = Math.min(timeout, opts.maxTimeout); -"use strict"; + return timeout; +}; +exports.wrap = function(obj, options, methods) { + if (options instanceof Array) { + methods = options; + options = null; + } -var _Object$setPrototypeO; + if (!methods) { + methods = []; + for (var key in obj) { + if (typeof obj[key] === 'function') { + methods.push(key); + } + } + } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + for (var i = 0; i < methods.length; i++) { + var method = methods[i]; + var original = obj[method]; -var finished = __nccwpck_require__(6080); + obj[method] = function retryWrapper(original) { + var op = exports.operation(options); + var args = Array.prototype.slice.call(arguments, 1); + var callback = args.pop(); -var kLastResolve = Symbol('lastResolve'); -var kLastReject = Symbol('lastReject'); -var kError = Symbol('error'); -var kEnded = Symbol('ended'); -var kLastPromise = Symbol('lastPromise'); -var kHandlePromise = Symbol('handlePromise'); -var kStream = Symbol('stream'); + args.push(function(err) { + if (op.retry(err)) { + return; + } + if (err) { + arguments[0] = op.mainError(); + } + callback.apply(this, arguments); + }); -function createIterResult(value, done) { - return { - value: value, - done: done - }; -} + op.attempt(function() { + original.apply(obj, args); + }); + }.bind(obj, original); + obj[method].options = options; + } +}; -function readAndResolve(iter) { - var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); // we defer if data is null - // we can be expecting either 'end' or - // 'error' +/***/ }), - if (data !== null) { - iter[kLastPromise] = null; - iter[kLastResolve] = null; - iter[kLastReject] = null; - resolve(createIterResult(data, false)); - } +/***/ 5369: +/***/ ((module) => { + +function RetryOperation(timeouts, options) { + // Compatibility for the old (timeouts, retryForever) signature + if (typeof options === 'boolean') { + options = { forever: options }; + } + + this._originalTimeouts = JSON.parse(JSON.stringify(timeouts)); + this._timeouts = timeouts; + this._options = options || {}; + this._maxRetryTime = options && options.maxRetryTime || Infinity; + this._fn = null; + this._errors = []; + this._attempts = 1; + this._operationTimeout = null; + this._operationTimeoutCb = null; + this._timeout = null; + this._operationStart = null; + this._timer = null; + + if (this._options.forever) { + this._cachedTimeouts = this._timeouts.slice(0); } } +module.exports = RetryOperation; -function onReadable(iter) { - // we wait for the next tick, because it might - // emit an error with process.nextTick - process.nextTick(readAndResolve, iter); +RetryOperation.prototype.reset = function() { + this._attempts = 1; + this._timeouts = this._originalTimeouts.slice(0); } -function wrapForNext(lastPromise, iter) { - return function (resolve, reject) { - lastPromise.then(function () { - if (iter[kEnded]) { - resolve(createIterResult(undefined, true)); - return; - } +RetryOperation.prototype.stop = function() { + if (this._timeout) { + clearTimeout(this._timeout); + } + if (this._timer) { + clearTimeout(this._timer); + } - iter[kHandlePromise](resolve, reject); - }, reject); - }; -} + this._timeouts = []; + this._cachedTimeouts = null; +}; -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { - get stream() { - return this[kStream]; - }, +RetryOperation.prototype.retry = function(err) { + if (this._timeout) { + clearTimeout(this._timeout); + } - next: function next() { - var _this = this; + if (!err) { + return false; + } + var currentTime = new Date().getTime(); + if (err && currentTime - this._operationStart >= this._maxRetryTime) { + this._errors.push(err); + this._errors.unshift(new Error('RetryOperation timeout occurred')); + return false; + } - // if we have detected an error in the meanwhile - // reject straight away - var error = this[kError]; + this._errors.push(err); - if (error !== null) { - return Promise.reject(error); + var timeout = this._timeouts.shift(); + if (timeout === undefined) { + if (this._cachedTimeouts) { + // retry forever, only keep last error + this._errors.splice(0, this._errors.length - 1); + timeout = this._cachedTimeouts.slice(-1); + } else { + return false; } + } - if (this[kEnded]) { - return Promise.resolve(createIterResult(undefined, true)); - } + var self = this; + this._timer = setTimeout(function() { + self._attempts++; - if (this[kStream].destroyed) { - // We need to defer via nextTick because if .destroy(err) is - // called, the error will be emitted via nextTick, and - // we cannot guarantee that there is no error lingering around - // waiting to be emitted. - return new Promise(function (resolve, reject) { - process.nextTick(function () { - if (_this[kError]) { - reject(_this[kError]); - } else { - resolve(createIterResult(undefined, true)); - } - }); - }); - } // if we have multiple next() calls - // we will wait for the previous Promise to finish - // this logic is optimized to support for await loops, - // where next() is only called once at a time + if (self._operationTimeoutCb) { + self._timeout = setTimeout(function() { + self._operationTimeoutCb(self._attempts); + }, self._operationTimeout); + if (self._options.unref) { + self._timeout.unref(); + } + } - var lastPromise = this[kLastPromise]; - var promise; + self._fn(self._attempts); + }, timeout); - if (lastPromise) { - promise = new Promise(wrapForNext(lastPromise, this)); - } else { - // fast path needed to support multiple this.push() - // without triggering the next() queue - var data = this[kStream].read(); + if (this._options.unref) { + this._timer.unref(); + } - if (data !== null) { - return Promise.resolve(createIterResult(data, false)); - } + return true; +}; - promise = new Promise(this[kHandlePromise]); +RetryOperation.prototype.attempt = function(fn, timeoutOps) { + this._fn = fn; + + if (timeoutOps) { + if (timeoutOps.timeout) { + this._operationTimeout = timeoutOps.timeout; } + if (timeoutOps.cb) { + this._operationTimeoutCb = timeoutOps.cb; + } + } - this[kLastPromise] = promise; - return promise; + var self = this; + if (this._operationTimeoutCb) { + this._timeout = setTimeout(function() { + self._operationTimeoutCb(); + }, self._operationTimeout); } -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () { - return this; -}), _defineProperty(_Object$setPrototypeO, "return", function _return() { - var _this2 = this; - // destroy(err, cb) is a private API - // we can guarantee we have that here, because we control the - // Readable class this is attached to - return new Promise(function (resolve, reject) { - _this2[kStream].destroy(null, function (err) { - if (err) { - reject(err); - return; - } + this._operationStart = new Date().getTime(); - resolve(createIterResult(undefined, true)); - }); - }); -}), _Object$setPrototypeO), AsyncIteratorPrototype); + this._fn(this._attempts); +}; -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { - var _Object$create; +RetryOperation.prototype.try = function(fn) { + console.log('Using RetryOperation.try() is deprecated'); + this.attempt(fn); +}; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { - value: stream, - writable: true - }), _defineProperty(_Object$create, kLastResolve, { - value: null, - writable: true - }), _defineProperty(_Object$create, kLastReject, { - value: null, - writable: true - }), _defineProperty(_Object$create, kError, { - value: null, - writable: true - }), _defineProperty(_Object$create, kEnded, { - value: stream._readableState.endEmitted, - writable: true - }), _defineProperty(_Object$create, kHandlePromise, { - value: function value(resolve, reject) { - var data = iterator[kStream].read(); +RetryOperation.prototype.start = function(fn) { + console.log('Using RetryOperation.start() is deprecated'); + this.attempt(fn); +}; - if (data) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(data, false)); - } else { - iterator[kLastResolve] = resolve; - iterator[kLastReject] = reject; - } - }, - writable: true - }), _Object$create)); - iterator[kLastPromise] = null; - finished(stream, function (err) { - if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise - // returned by next() and store the error +RetryOperation.prototype.start = RetryOperation.prototype.try; + +RetryOperation.prototype.errors = function() { + return this._errors; +}; + +RetryOperation.prototype.attempts = function() { + return this._attempts; +}; + +RetryOperation.prototype.mainError = function() { + if (this._errors.length === 0) { + return null; + } - if (reject !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - reject(err); - } + var counts = {}; + var mainError = null; + var mainErrorCount = 0; - iterator[kError] = err; - return; - } + for (var i = 0; i < this._errors.length; i++) { + var error = this._errors[i]; + var message = error.message; + var count = (counts[message] || 0) + 1; - var resolve = iterator[kLastResolve]; + counts[message] = count; - if (resolve !== null) { - iterator[kLastPromise] = null; - iterator[kLastResolve] = null; - iterator[kLastReject] = null; - resolve(createIterResult(undefined, true)); + if (count >= mainErrorCount) { + mainError = error; + mainErrorCount = count; } + } - iterator[kEnded] = true; - }); - stream.on('readable', onReadable.bind(null, iterator)); - return iterator; + return mainError; }; -module.exports = createReadableStreamAsyncIterator; /***/ }), -/***/ 6522: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/***/ 2113: +/***/ ((module) => { "use strict"; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } +function reusify (Constructor) { + var head = new Constructor() + var tail = head -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function get () { + var current = head -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + if (current.next) { + head = current.next + } else { + head = new Constructor() + tail = head + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + current.next = null -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + return current + } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + function release (obj) { + tail.next = obj + tail = obj + } -var _require = __nccwpck_require__(4300), - Buffer = _require.Buffer; + return { + get: get, + release: release + } +} -var _require2 = __nccwpck_require__(3837), - inspect = _require2.inspect; +module.exports = reusify -var custom = inspect && inspect.custom || 'inspect'; -function copyBuffer(src, target, offset) { - Buffer.prototype.copy.call(src, target, offset); -} +/***/ }), -module.exports = -/*#__PURE__*/ -function () { - function BufferList() { - _classCallCheck(this, BufferList); +/***/ 5288: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - this.head = null; - this.tail = null; - this.length = 0; +/*! run-parallel. MIT License. Feross Aboukhadijeh */ +module.exports = runParallel + +const queueMicrotask = __nccwpck_require__(9795) + +function runParallel (tasks, cb) { + let results, pending, keys + let isSync = true + + if (Array.isArray(tasks)) { + results = [] + pending = tasks.length + } else { + keys = Object.keys(tasks) + results = {} + pending = keys.length } - _createClass(BufferList, [{ - key: "push", - value: function push(v) { - var entry = { - data: v, - next: null - }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - } - }, { - key: "unshift", - value: function unshift(v) { - var entry = { - data: v, - next: this.head - }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - } - }, { - key: "shift", - value: function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; + function done (err) { + function end () { + if (cb) cb(err, results) + cb = null } - }, { - key: "clear", - value: function clear() { - this.head = this.tail = null; - this.length = 0; + if (isSync) queueMicrotask(end) + else end() + } + + function each (i, err, result) { + results[i] = result + if (--pending === 0 || err) { + done(err) } - }, { - key: "join", - value: function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; + } - while (p = p.next) { - ret += s + p.data; - } + if (!pending) { + // empty + done(null) + } else if (keys) { + // object + keys.forEach(function (key) { + tasks[key](function (err, result) { each(key, err, result) }) + }) + } else { + // array + tasks.forEach(function (task, i) { + task(function (err, result) { each(i, err, result) }) + }) + } - return ret; - } - }, { - key: "concat", - value: function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; + isSync = false +} - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - } // Consumes a specified amount of bytes or characters from the buffered data. +/***/ }), - }, { - key: "consume", - value: function consume(n, hasStrings) { - var ret; +/***/ 1867: +/***/ ((module, exports, __nccwpck_require__) => { - if (n < this.head.data.length) { - // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { - // First chunk is a perfect match. - ret = this.shift(); - } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); - } +/* eslint-disable node/no-deprecated-api */ +var buffer = __nccwpck_require__(4300) +var Buffer = buffer.Buffer - return ret; +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) } - }, { - key: "first", - value: function first() { - return this.head.data; - } // Consumes a specified amount of characters from the buffered data. + } else { + buf.fill(0) + } + return buf +} - }, { - key: "_getString", - value: function _getString(n) { - var p = this.head; - var c = 1; - var ret = p.data; - n -= ret.length; +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = str.slice(nb); - } - break; - } +/***/ }), - ++c; - } +/***/ 5911: +/***/ ((module, exports) => { - this.length -= c; - return ret; - } // Consumes a specified amount of bytes from the buffered data. +exports = module.exports = SemVer - }, { - key: "_getBuffer", - value: function _getBuffer(n) { - var ret = Buffer.allocUnsafe(n); - var p = this.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; +var debug +/* istanbul ignore next */ +if (typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments, 0) + args.unshift('SEMVER') + console.log.apply(console, args) + } +} else { + debug = function () {} +} - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = '2.0.0' - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) this.head = p.next;else this.head = this.tail = null; - } else { - this.head = p; - p.data = buf.slice(nb); - } +var MAX_LENGTH = 256 +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991 - break; - } +// Max safe segment length for coercion. +var MAX_SAFE_COMPONENT_LENGTH = 16 - ++c; - } +// The actual regexps go on exports.re +var re = exports.re = [] +var src = exports.src = [] +var t = exports.tokens = {} +var R = 0 - this.length -= c; - return ret; - } // Make sure the linked list only shows the minimal necessary information. +function tok (n) { + t[n] = R++ +} - }, { - key: custom, - value: function value(_, options) { - return inspect(this, _objectSpread({}, options, { - // Only inspect one level. - depth: 0, - // It should not recurse. - customInspect: false - })); - } - }]); +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. - return BufferList; -}(); +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. -/***/ }), +tok('NUMERICIDENTIFIER') +src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*' +tok('NUMERICIDENTIFIERLOOSE') +src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+' -/***/ 7049: -/***/ ((module) => { +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. -"use strict"; - // undocumented cb() API, needed for core, not for public API +tok('NONNUMERICIDENTIFIER') +src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*' -function destroy(err, cb) { - var _this = this; +// ## Main Version +// Three dot-separated numeric identifiers. - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; +tok('MAINVERSION') +src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIER] + ')' - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err) { - if (!this._writableState) { - process.nextTick(emitErrorNT, this, err); - } else if (!this._writableState.errorEmitted) { - this._writableState.errorEmitted = true; - process.nextTick(emitErrorNT, this, err); - } - } +tok('MAINVERSIONLOOSE') +src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')' - return this; - } // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. +tok('PRERELEASEIDENTIFIER') +src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] + + '|' + src[t.NONNUMERICIDENTIFIER] + ')' - if (this._readableState) { - this._readableState.destroyed = true; - } // if this is a duplex stream mark the writable part as destroyed as well +tok('PRERELEASEIDENTIFIERLOOSE') +src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] + + '|' + src[t.NONNUMERICIDENTIFIER] + ')' +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. - if (this._writableState) { - this._writableState.destroyed = true; - } +tok('PRERELEASE') +src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] + + '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))' - this._destroy(err || null, function (err) { - if (!cb && err) { - if (!_this._writableState) { - process.nextTick(emitErrorAndCloseNT, _this, err); - } else if (!_this._writableState.errorEmitted) { - _this._writableState.errorEmitted = true; - process.nextTick(emitErrorAndCloseNT, _this, err); - } else { - process.nextTick(emitCloseNT, _this); - } - } else if (cb) { - process.nextTick(emitCloseNT, _this); - cb(err); - } else { - process.nextTick(emitCloseNT, _this); - } - }); +tok('PRERELEASELOOSE') +src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] + + '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))' - return this; -} +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +tok('BUILDIDENTIFIER') +src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+' + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +tok('BUILD') +src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] + + '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))' + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +tok('FULL') +tok('FULLPLAIN') +src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] + + src[t.PRERELEASE] + '?' + + src[t.BUILD] + '?' + +src[t.FULL] = '^' + src[t.FULLPLAIN] + '$' + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +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] = '((?:<|>)?=?)' + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +tok('XRANGEIDENTIFIERLOOSE') +src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' +tok('XRANGEIDENTIFIER') +src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*' -function emitErrorAndCloseNT(self, err) { - emitErrorNT(self, err); - emitCloseNT(self); -} +tok('XRANGEPLAIN') +src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:' + src[t.PRERELEASE] + ')?' + + src[t.BUILD] + '?' + + ')?)?' -function emitCloseNT(self) { - if (self._writableState && !self._writableState.emitClose) return; - if (self._readableState && !self._readableState.emitClose) return; - self.emit('close'); -} +tok('XRANGEPLAINLOOSE') +src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:' + src[t.PRERELEASELOOSE] + ')?' + + src[t.BUILD] + '?' + + ')?)?' -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } +tok('XRANGE') +src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$' +tok('XRANGELOOSE') +src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$' - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finalCalled = false; - this._writableState.prefinished = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +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') -function emitErrorNT(self, err) { - self.emit('error', err); -} +// Tilde ranges. +// Meaning is "reasonably at or greater than" +tok('LONETILDE') +src[t.LONETILDE] = '(?:~>?)' -function errorOrDestroy(stream, err) { - // We have tests that rely on errors being emitted - // in the same tick, so changing this is semver major. - // For now when you opt-in to autoDestroy we allow - // the error to be emitted nextTick. In a future - // semver major update we should change the default to this. - var rState = stream._readableState; - var wState = stream._writableState; - if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); -} +tok('TILDETRIM') +src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+' +re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g') +var tildeTrimReplace = '$1~' -module.exports = { - destroy: destroy, - undestroy: undestroy, - errorOrDestroy: errorOrDestroy -}; +tok('TILDE') +src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$' +tok('TILDELOOSE') +src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$' -/***/ }), +// Caret ranges. +// Meaning is "at least and backwards compatible with" +tok('LONECARET') +src[t.LONECARET] = '(?:\\^)' -/***/ 6080: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +tok('CARETTRIM') +src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+' +re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g') +var caretTrimReplace = '$1^' -"use strict"; -// Ported from https://github.com/mafintosh/end-of-stream with -// permission from the author, Mathias Buus (@mafintosh). +tok('CARET') +src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$' +tok('CARETLOOSE') +src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$' +// A simple gt/lt/eq thing, or just "" to indicate "any version" +tok('COMPARATORLOOSE') +src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$' +tok('COMPARATOR') +src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$' -var ERR_STREAM_PREMATURE_CLOSE = (__nccwpck_require__(7214)/* .codes.ERR_STREAM_PREMATURE_CLOSE */ .q.ERR_STREAM_PREMATURE_CLOSE); +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +tok('COMPARATORTRIM') +src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] + + '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')' -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; +// this one has to use the /g flag +re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g') +var comparatorTrimReplace = '$1$2$3' - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +tok('HYPHENRANGE') +src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' + + '\\s+-\\s+' + + '(' + src[t.XRANGEPLAIN] + ')' + + '\\s*$' - callback.apply(this, args); - }; -} +tok('HYPHENRANGELOOSE') +src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' + + '\\s+-\\s+' + + '(' + src[t.XRANGEPLAINLOOSE] + ')' + + '\\s*$' -function noop() {} +// Star ranges basically just allow anything at all. +tok('STAR') +src[t.STAR] = '(<|>)?=?\\s*\\*' -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for (var i = 0; i < R; i++) { + debug(i, src[i]) + if (!re[i]) { + re[i] = new RegExp(src[i]) + } } -function eos(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - callback = once(callback || noop); - var readable = opts.readable || opts.readable !== false && stream.readable; - var writable = opts.writable || opts.writable !== false && stream.writable; +exports.parse = parse +function parse (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } - var onlegacyfinish = function onlegacyfinish() { - if (!stream.writable) onfinish(); - }; + if (version instanceof SemVer) { + return version + } - var writableEnded = stream._writableState && stream._writableState.finished; + if (typeof version !== 'string') { + return null + } - var onfinish = function onfinish() { - writable = false; - writableEnded = true; - if (!readable) callback.call(stream); - }; + if (version.length > MAX_LENGTH) { + return null + } - var readableEnded = stream._readableState && stream._readableState.endEmitted; + var r = options.loose ? re[t.LOOSE] : re[t.FULL] + if (!r.test(version)) { + return null + } - var onend = function onend() { - readable = false; - readableEnded = true; - if (!writable) callback.call(stream); - }; + try { + return new SemVer(version, options) + } catch (er) { + return null + } +} - var onerror = function onerror(err) { - callback.call(stream, err); - }; +exports.valid = valid +function valid (version, options) { + var v = parse(version, options) + return v ? v.version : null +} - var onclose = function onclose() { - var err; +exports.clean = clean +function clean (version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} - if (readable && !readableEnded) { - if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); - } +exports.SemVer = SemVer - if (writable && !writableEnded) { - if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); - return callback.call(stream, err); +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) + } - var onrequest = function onrequest() { - stream.req.on('finish', onfinish); - }; + if (version.length > MAX_LENGTH) { + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') + } - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest();else stream.on('request', onrequest); - } else if (writable && !stream._writableState) { - // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); + if (!(this instanceof SemVer)) { + return new SemVer(version, options) } - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - return function () { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -} + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose -module.exports = eos; + var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) -/***/ }), + if (!m) { + throw new TypeError('Invalid Version: ' + version) + } -/***/ 9082: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + this.raw = version -"use strict"; + // these are actually numbers + 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') + } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + // numberify any prerelease numeric ids + 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 + }) + } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + this.build = m[5] ? m[5].split('.') : [] + this.format() +} -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +SemVer.prototype.format = function () { + this.version = this.major + '.' + this.minor + '.' + this.patch + if (this.prerelease.length) { + this.version += '-' + this.prerelease.join('.') + } + return this.version +} -var ERR_INVALID_ARG_TYPE = (__nccwpck_require__(7214)/* .codes.ERR_INVALID_ARG_TYPE */ .q.ERR_INVALID_ARG_TYPE); +SemVer.prototype.toString = function () { + return this.version +} -function from(Readable, iterable, opts) { - var iterator; +SemVer.prototype.compare = function (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } - if (iterable && typeof iterable.next === 'function') { - iterator = iterable; - } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); + return this.compareMain(other) || this.comparePre(other) +} - var readable = new Readable(_objectSpread({ - objectMode: true - }, opts)); // Reading boolean to protect against _read - // being called before last iteration completion. +SemVer.prototype.compareMain = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } - var reading = false; + return compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) +} - readable._read = function () { - if (!reading) { - reading = true; - next(); +SemVer.prototype.comparePre = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + 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 i = 0 + do { + var a = this.prerelease[i] + var b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) } - }; + } while (++i) +} - function next() { - return _next2.apply(this, arguments); +SemVer.prototype.compareBuild = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) } - function _next2() { - _next2 = _asyncToGenerator(function* () { - try { - var _ref = yield iterator.next(), - value = _ref.value, - done = _ref.done; + var i = 0 + do { + var a = this.build[i] + var b = other.build[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) +} - if (done) { - readable.push(null); - } else if (readable.push((yield value))) { - next(); +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +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': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + 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 is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + 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 is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + 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 i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + this.prerelease.push(0) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0] + } } else { - reading = false; + this.prerelease = [identifier, 0] } - } catch (err) { - readable.destroy(err); } - }); - return _next2.apply(this, arguments); - } + break - return readable; + default: + throw new Error('invalid increment argument: ' + release) + } + this.format() + this.raw = this.version + return this } -module.exports = from; +exports.inc = inc +function inc (version, release, loose, identifier) { + if (typeof (loose) === 'string') { + identifier = loose + loose = undefined + } -/***/ }), + try { + return new SemVer(version, loose).inc(release, identifier).version + } catch (er) { + return null + } +} -/***/ 6989: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +exports.diff = diff +function diff (version1, version2) { + if (eq(version1, version2)) { + return null + } else { + var v1 = parse(version1) + var v2 = parse(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 // may be undefined + } +} -"use strict"; -// Ported from https://github.com/mafintosh/pump with -// permission from the author, Mathias Buus (@mafintosh). +exports.compareIdentifiers = compareIdentifiers +var numeric = /^[0-9]+$/ +function compareIdentifiers (a, b) { + var anum = numeric.test(a) + var bnum = numeric.test(b) -var eos; + if (anum && bnum) { + a = +a + b = +b + } -function once(callback) { - var called = false; - return function () { - if (called) return; - called = true; - callback.apply(void 0, arguments); - }; + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 } -var _require$codes = (__nccwpck_require__(7214)/* .codes */ .q), - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; - -function noop(err) { - // Rethrow the error if it exists to avoid swallowing it - if (err) throw err; +exports.rcompareIdentifiers = rcompareIdentifiers +function rcompareIdentifiers (a, b) { + return compareIdentifiers(b, a) } -function isRequest(stream) { - return stream.setHeader && typeof stream.abort === 'function'; +exports.major = major +function major (a, loose) { + return new SemVer(a, loose).major } -function destroyer(stream, reading, writing, callback) { - callback = once(callback); - var closed = false; - stream.on('close', function () { - closed = true; - }); - if (eos === undefined) eos = __nccwpck_require__(6080); - eos(stream, { - readable: reading, - writable: writing - }, function (err) { - if (err) return callback(err); - closed = true; - callback(); - }); - var destroyed = false; - return function (err) { - if (closed) return; - if (destroyed) return; - destroyed = true; // request.destroy just do .end - .abort is what we want - - if (isRequest(stream)) return stream.abort(); - if (typeof stream.destroy === 'function') return stream.destroy(); - callback(err || new ERR_STREAM_DESTROYED('pipe')); - }; +exports.minor = minor +function minor (a, loose) { + return new SemVer(a, loose).minor } -function call(fn) { - fn(); +exports.patch = patch +function patch (a, loose) { + return new SemVer(a, loose).patch } -function pipe(from, to) { - return from.pipe(to); +exports.compare = compare +function compare (a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)) } -function popCallback(streams) { - if (!streams.length) return noop; - if (typeof streams[streams.length - 1] !== 'function') return noop; - return streams.pop(); +exports.compareLoose = compareLoose +function compareLoose (a, b) { + return compare(a, b, true) } -function pipeline() { - for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { - streams[_key] = arguments[_key]; - } - - var callback = popCallback(streams); - if (Array.isArray(streams[0])) streams = streams[0]; - - if (streams.length < 2) { - throw new ERR_MISSING_ARGS('streams'); - } - - var error; - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1; - var writing = i > 0; - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err; - if (err) destroys.forEach(call); - if (reading) return; - destroys.forEach(call); - callback(error); - }); - }); - return streams.reduce(pipe); +exports.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) } -module.exports = pipeline; - -/***/ }), - -/***/ 9948: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -var ERR_INVALID_OPT_VALUE = (__nccwpck_require__(7214)/* .codes.ERR_INVALID_OPT_VALUE */ .q.ERR_INVALID_OPT_VALUE); - -function highWaterMarkFrom(options, isDuplex, duplexKey) { - return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; +exports.rcompare = rcompare +function rcompare (a, b, loose) { + return compare(b, a, loose) } -function getHighWaterMark(state, options, duplexKey, isDuplex) { - var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - - if (hwm != null) { - if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { - var name = isDuplex ? duplexKey : 'highWaterMark'; - throw new ERR_INVALID_OPT_VALUE(name, hwm); - } - - return Math.floor(hwm); - } // Default value - - - return state.objectMode ? 16 : 16 * 1024; +exports.sort = sort +function sort (list, loose) { + return list.sort(function (a, b) { + return exports.compareBuild(a, b, loose) + }) } -module.exports = { - getHighWaterMark: getHighWaterMark -}; - -/***/ }), - -/***/ 2387: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(2781); - +exports.rsort = rsort +function rsort (list, loose) { + return list.sort(function (a, b) { + return exports.compareBuild(b, a, loose) + }) +} -/***/ }), +exports.gt = gt +function gt (a, b, loose) { + return compare(a, b, loose) > 0 +} -/***/ 1642: -/***/ ((module, exports, __nccwpck_require__) => { +exports.lt = lt +function lt (a, b, loose) { + return compare(a, b, loose) < 0 +} -var Stream = __nccwpck_require__(2781); -if (process.env.READABLE_STREAM === 'disable' && Stream) { - module.exports = Stream.Readable; - Object.assign(module.exports, Stream); - module.exports.Stream = Stream; -} else { - exports = module.exports = __nccwpck_require__(1433); - exports.Stream = Stream || exports; - exports.Readable = exports; - exports.Writable = __nccwpck_require__(6993); - exports.Duplex = __nccwpck_require__(1359); - exports.Transform = __nccwpck_require__(4415); - exports.PassThrough = __nccwpck_require__(1542); - exports.finished = __nccwpck_require__(6080); - exports.pipeline = __nccwpck_require__(6989); +exports.eq = eq +function eq (a, b, loose) { + return compare(a, b, loose) === 0 } +exports.neq = neq +function neq (a, b, loose) { + return compare(a, b, loose) !== 0 +} -/***/ }), +exports.gte = gte +function gte (a, b, loose) { + return compare(a, b, loose) >= 0 +} -/***/ 3515: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +exports.lte = lte +function lte (a, b, loose) { + return compare(a, b, loose) <= 0 +} -"use strict"; +exports.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 -var { PassThrough } = __nccwpck_require__(2781); -var debug = __nccwpck_require__(8237)('retry-request'); -var extend = __nccwpck_require__(8171); + case '': + case '=': + case '==': + return eq(a, b, loose) -var DEFAULTS = { - objectMode: false, - retries: 2, + case '!=': + return neq(a, b, loose) - /* - The maximum time to delay in seconds. If retryDelayMultiplier results in a - delay greater than maxRetryDelay, retries should delay by maxRetryDelay - seconds instead. - */ - maxRetryDelay: 64, + case '>': + return gt(a, b, loose) - /* - The multiplier by which to increase the delay time between the completion of - failed requests, and the initiation of the subsequent retrying request. - */ - retryDelayMultiplier: 2, + case '>=': + return gte(a, b, loose) - /* - The length of time to keep retrying in seconds. The last sleep period will - be shortened as necessary, so that the last retry runs at deadline (and not - considerably beyond it). The total time starting from when the initial - request is sent, after which an error will be returned, regardless of the - retrying attempts made meanwhile. - */ - totalTimeout: 600, + case '<': + return lt(a, b, loose) - noResponseRetries: 2, - currentRetryAttempt: 0, - shouldRetryFn: function (response) { - var retryRanges = [ - // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes - // 1xx - Retry (Informational, request still processing) - // 2xx - Do not retry (Success) - // 3xx - Do not retry (Redirect) - // 4xx - Do not retry (Client errors) - // 429 - Retry ("Too Many Requests") - // 5xx - Retry (Server errors) - [100, 199], - [429, 429], - [500, 599] - ]; + case '<=': + return lte(a, b, loose) - var statusCode = response.statusCode; - debug(`Response status: ${statusCode}`); + default: + throw new TypeError('Invalid operator: ' + op) + } +} - var range; - while ((range = retryRanges.shift())) { - if (statusCode >= range[0] && statusCode <= range[1]) { - // Not a successful status or redirect. - return true; - } +exports.Comparator = Comparator +function Comparator (comp, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false } } -}; - -function retryRequest(requestOpts, opts, callback) { - var streamMode = typeof arguments[arguments.length - 1] !== 'function'; - if (typeof opts === 'function') { - callback = opts; + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } } - var manualCurrentRetryAttemptWasSet = opts && typeof opts.currentRetryAttempt === 'number'; - opts = extend({}, DEFAULTS, opts); - - if (typeof opts.request === 'undefined') { - try { - opts.request = __nccwpck_require__(8418); - } catch (e) { - throw new Error('A request library must be provided to retry-request.'); - } + if (!(this instanceof Comparator)) { + return new Comparator(comp, options) } - var currentRetryAttempt = opts.currentRetryAttempt; + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) - var numNoResponseAttempts = 0; - var streamResponseHandled = false; + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } - var retryStream; - var requestStream; - var delayStream; + debug('comp', this) +} - var activeRequest; - var retryRequest = { - abort: function () { - if (activeRequest && activeRequest.abort) { - activeRequest.abort(); - } - } - }; +var ANY = {} +Comparator.prototype.parse = function (comp) { + var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + var m = comp.match(r) - if (streamMode) { - retryStream = new PassThrough({ objectMode: opts.objectMode }); - retryStream.abort = resetStreams; + if (!m) { + throw new TypeError('Invalid comparator: ' + comp) } - var timeOfFirstRequest = Date.now(); - if (currentRetryAttempt > 0) { - retryAfterDelay(currentRetryAttempt); - } else { - makeRequest(); + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' } - if (streamMode) { - return retryStream; + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY } else { - return retryRequest; + this.semver = new SemVer(m[2], this.options.loose) } +} - function resetStreams() { - delayStream = null; +Comparator.prototype.toString = function () { + return this.value +} - if (requestStream) { - requestStream.abort && requestStream.abort(); - requestStream.cancel && requestStream.cancel(); +Comparator.prototype.test = function (version) { + debug('Comparator.test', version, this.options.loose) - if (requestStream.destroy) { - requestStream.destroy(); - } else if (requestStream.end) { - requestStream.end(); - } - } + if (this.semver === ANY || version === ANY) { + return true } - function makeRequest() { - currentRetryAttempt++; - debug(`Current retry attempt: ${currentRetryAttempt}`); - - if (streamMode) { - streamResponseHandled = false; - - delayStream = new PassThrough({ objectMode: opts.objectMode }); - requestStream = opts.request(requestOpts); - - setImmediate(function () { - retryStream.emit('request'); - }); - - requestStream - // gRPC via google-cloud-node can emit an `error` as well as a `response` - // Whichever it emits, we run with-- we can't run with both. That's what - // is up with the `streamResponseHandled` tracking. - .on('error', function (err) { - if (streamResponseHandled) { - return; - } - - streamResponseHandled = true; - onResponse(err); - }) - .on('response', function (resp, body) { - if (streamResponseHandled) { - return; - } - - streamResponseHandled = true; - onResponse(null, resp, body); - }) - .on('complete', retryStream.emit.bind(retryStream, 'complete')); - - requestStream.pipe(delayStream); - } else { - activeRequest = opts.request(requestOpts, onResponse); + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false } } - function retryAfterDelay(currentRetryAttempt) { - if (streamMode) { - resetStreams(); - } - - var nextRetryDelay = getNextRetryDelay({ - maxRetryDelay: opts.maxRetryDelay, - retryDelayMultiplier: opts.retryDelayMultiplier, - retryNumber: currentRetryAttempt, - timeOfFirstRequest, - totalTimeout: opts.totalTimeout, - }); - debug(`Next retry delay: ${nextRetryDelay}`); + return cmp(version, this.operator, this.semver, this.options) +} - setTimeout(makeRequest, nextRetryDelay); +Comparator.prototype.intersects = function (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') } - function onResponse(err, response, body) { - // An error such as DNS resolution. - if (err) { - numNoResponseAttempts++; + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } - if (numNoResponseAttempts <= opts.noResponseRetries) { - retryAfterDelay(numNoResponseAttempts); - } else { - if (streamMode) { - retryStream.emit('error', err); - retryStream.end(); - } else { - callback(err, response, body); - } - } + var rangeTmp - return; + if (this.operator === '') { + if (this.value === '') { + return true + } + rangeTmp = new Range(comp.value, options) + return satisfies(this.value, rangeTmp, options) + } else if (comp.operator === '') { + if (comp.value === '') { + return true } + rangeTmp = new Range(this.value, options) + return satisfies(comp.semver, rangeTmp, options) + } - // Send the response to see if we should try again. - // NOTE: "currentRetryAttempt" isn't accurate by default, as it counts - // the very first request sent as the first "retry". It is only accurate - // when a user provides their own "currentRetryAttempt" option at - // instantiation. - var adjustedCurrentRetryAttempt = manualCurrentRetryAttemptWasSet ? currentRetryAttempt : currentRetryAttempt - 1; - if (adjustedCurrentRetryAttempt < opts.retries && opts.shouldRetryFn(response)) { - retryAfterDelay(currentRetryAttempt); - return; + 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 +} + +exports.Range = Range +function Range (range, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false } + } - // No more attempts need to be made, just continue on. - if (streamMode) { - retryStream.emit('response', response); - delayStream.pipe(retryStream); - requestStream.on('error', function (err) { - retryStream.destroy(err); - }); + if (range instanceof Range) { + if (range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease) { + return range } else { - callback(err, response, body); + return new Range(range.raw, options) } } -} -module.exports = retryRequest; + if (range instanceof Comparator) { + return new Range(range.value, options) + } -function getNextRetryDelay(config) { - var { - maxRetryDelay, - retryDelayMultiplier, - retryNumber, - timeOfFirstRequest, - totalTimeout, - } = config; + if (!(this instanceof Range)) { + return new Range(range, options) + } - var maxRetryDelayMs = maxRetryDelay * 1000; - var totalTimeoutMs = totalTimeout * 1000; + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease - var jitter = Math.floor(Math.random() * 1000); - var calculatedNextRetryDelay = Math.pow(retryDelayMultiplier, retryNumber) * 1000 + jitter; + // First, split based on boolean or || + this.raw = range + this.set = range.split(/\s*\|\|\s*/).map(function (range) { + return this.parseRange(range.trim()) + }, this).filter(function (c) { + // throw out any that are not relevant for whatever reason + return c.length + }) - var maxAllowableDelayMs = totalTimeoutMs - (Date.now() - timeOfFirstRequest); + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + range) + } - return Math.min(calculatedNextRetryDelay, maxAllowableDelayMs, maxRetryDelayMs); + this.format() } -module.exports.getNextRetryDelay = getNextRetryDelay; +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 + range = range.trim() + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace) + debug('hyphen replace', range) + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range, re[t.COMPARATORTRIM]) -/***/ 4347: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) -module.exports = __nccwpck_require__(6244); + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) -/***/ }), + // normalize spaces + range = range.split(/\s+/).join(' ') -/***/ 6244: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + // At this point, the range is completely trimmed and + // ready to be split into comparators. -var RetryOperation = __nccwpck_require__(5369); + var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + var set = range.split(' ').map(function (comp) { + return parseComparator(comp, this.options) + }, this).join(' ').split(/\s+/) + if (this.options.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function (comp) { + return !!comp.match(compRe) + }) + } + set = set.map(function (comp) { + return new Comparator(comp, this.options) + }, this) -exports.operation = function(options) { - var timeouts = exports.timeouts(options); - return new RetryOperation(timeouts, { - forever: options && (options.forever || options.retries === Infinity), - unref: options && options.unref, - maxRetryTime: options && options.maxRetryTime - }); -}; + return set +} -exports.timeouts = function(options) { - if (options instanceof Array) { - return [].concat(options); +Range.prototype.intersects = function (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') } - var opts = { - retries: 10, - factor: 2, - minTimeout: 1 * 1000, - maxTimeout: Infinity, - randomize: false - }; - for (var key in options) { - opts[key] = options[key]; - } + 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) + }) + }) + ) + }) + ) + }) +} - if (opts.minTimeout > opts.maxTimeout) { - throw new Error('minTimeout is greater than maxTimeout'); - } +// take a set of comparators and determine whether there +// exists a version which can satisfy it +function isSatisfiable (comparators, options) { + var result = true + var remainingComparators = comparators.slice() + var testComparator = remainingComparators.pop() - var timeouts = []; - for (var i = 0; i < opts.retries; i++) { - timeouts.push(this.createTimeout(i, opts)); - } + while (result && remainingComparators.length) { + result = remainingComparators.every(function (otherComparator) { + return testComparator.intersects(otherComparator, options) + }) - if (options && options.forever && !timeouts.length) { - timeouts.push(this.createTimeout(i, opts)); + testComparator = remainingComparators.pop() } - // sort the array numerically ascending - timeouts.sort(function(a,b) { - return a - b; - }); + return result +} - return timeouts; -}; +// Mostly just for testing and legacy API reasons +exports.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(' ') + }) +} -exports.createTimeout = function(attempt, opts) { - var random = (opts.randomize) - ? (Math.random() + 1) - : 1; +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator (comp, options) { + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} - var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt)); - timeout = Math.min(timeout, opts.maxTimeout); +function isX (id) { + return !id || id.toLowerCase() === 'x' || id === '*' +} - return timeout; -}; +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options) + }).join(' ') +} -exports.wrap = function(obj, options, methods) { - if (options instanceof Array) { - methods = options; - options = null; - } +function replaceTilde (comp, options) { + var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr) + var ret - if (!methods) { - methods = []; - for (var key in obj) { - if (typeof obj[key] === 'function') { - methods.push(key); + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else if (pr) { + debug('replaceTilde pr', pr) + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options) + }).join(' ') +} + +function replaceCaret (comp, options) { + debug('caret', comp, options) + var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + return comp.replace(r, function (_, M, m, p, pr) { + debug('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) { + debug('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 { + debug('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' } } - } - for (var i = 0; i < methods.length; i++) { - var method = methods[i]; - var original = obj[method]; + debug('caret return', ret) + return ret + }) +} - obj[method] = function retryWrapper(original) { - var op = exports.operation(options); - var args = Array.prototype.slice.call(arguments, 1); - var callback = args.pop(); +function replaceXRanges (comp, options) { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options) + }).join(' ') +} - args.push(function(err) { - if (op.retry(err)) { - return; +function replaceXRange (comp, options) { + comp = comp.trim() + var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('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 = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 } - if (err) { - arguments[0] = op.mainError(); + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 } - callback.apply(this, arguments); - }); + } - op.attempt(function() { - original.apply(obj, args); - }); - }.bind(obj, original); - obj[method].options = options; - } -}; + 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 + } + debug('xRange return', ret) -/***/ }), + return ret + }) +} -/***/ 5369: -/***/ ((module) => { +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars (comp, options) { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[t.STAR], '') +} -function RetryOperation(timeouts, options) { - // Compatibility for the old (timeouts, retryForever) signature - if (typeof options === 'boolean') { - options = { forever: options }; +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +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 } - this._originalTimeouts = JSON.parse(JSON.stringify(timeouts)); - this._timeouts = timeouts; - this._options = options || {}; - this._maxRetryTime = options && options.maxRetryTime || Infinity; - this._fn = null; - this._errors = []; - this._attempts = 1; - this._operationTimeout = null; - this._operationTimeoutCb = null; - this._timeout = null; - this._operationStart = null; - this._timer = null; - - if (this._options.forever) { - this._cachedTimeouts = this._timeouts.slice(0); + 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 } -} -module.exports = RetryOperation; -RetryOperation.prototype.reset = function() { - this._attempts = 1; - this._timeouts = this._originalTimeouts.slice(0); + return (from + ' ' + to).trim() } -RetryOperation.prototype.stop = function() { - if (this._timeout) { - clearTimeout(this._timeout); - } - if (this._timer) { - clearTimeout(this._timer); +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function (version) { + if (!version) { + return false } - this._timeouts = []; - this._cachedTimeouts = null; -}; - -RetryOperation.prototype.retry = function(err) { - if (this._timeout) { - clearTimeout(this._timeout); + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } } - if (!err) { - return false; - } - var currentTime = new Date().getTime(); - if (err && currentTime - this._operationStart >= this._maxRetryTime) { - this._errors.push(err); - this._errors.unshift(new Error('RetryOperation timeout occurred')); - return false; + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } } + return false +} - this._errors.push(err); - - var timeout = this._timeouts.shift(); - if (timeout === undefined) { - if (this._cachedTimeouts) { - // retry forever, only keep last error - this._errors.splice(0, this._errors.length - 1); - timeout = this._cachedTimeouts.slice(-1); - } else { - return false; +function testSet (set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false } } - var self = this; - this._timer = setTimeout(function() { - self._attempts++; - - if (self._operationTimeoutCb) { - self._timeout = setTimeout(function() { - self._operationTimeoutCb(self._attempts); - }, self._operationTimeout); + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === ANY) { + continue + } - if (self._options.unref) { - self._timeout.unref(); + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } } } - self._fn(self._attempts); - }, timeout); - - if (this._options.unref) { - this._timer.unref(); + // Version has a -pre, but it's not one of the ones we like. + return false } - return true; -}; - -RetryOperation.prototype.attempt = function(fn, timeoutOps) { - this._fn = fn; + return true +} - if (timeoutOps) { - if (timeoutOps.timeout) { - this._operationTimeout = timeoutOps.timeout; - } - if (timeoutOps.cb) { - this._operationTimeoutCb = timeoutOps.cb; - } +exports.satisfies = satisfies +function satisfies (version, range, options) { + try { + range = new Range(range, options) + } catch (er) { + return false } + return range.test(version) +} - var self = this; - if (this._operationTimeoutCb) { - this._timeout = setTimeout(function() { - self._operationTimeoutCb(); - }, self._operationTimeout); +exports.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)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} - this._operationStart = new Date().getTime(); - - this._fn(this._attempts); -}; - -RetryOperation.prototype.try = function(fn) { - console.log('Using RetryOperation.try() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = function(fn) { - console.log('Using RetryOperation.start() is deprecated'); - this.attempt(fn); -}; - -RetryOperation.prototype.start = RetryOperation.prototype.try; - -RetryOperation.prototype.errors = function() { - return this._errors; -}; - -RetryOperation.prototype.attempts = function() { - return this._attempts; -}; - -RetryOperation.prototype.mainError = function() { - if (this._errors.length === 0) { - return null; +exports.minSatisfying = minSatisfying +function minSatisfying (versions, range, options) { + var min = null + var minSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null } - - var counts = {}; - var mainError = null; - var mainErrorCount = 0; - - for (var i = 0; i < this._errors.length; i++) { - var error = this._errors[i]; - var message = error.message; - var count = (counts[message] || 0) + 1; - - counts[message] = count; - - if (count >= mainErrorCount) { - mainError = error; - mainErrorCount = count; + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } } - } - - return mainError; -}; - - -/***/ }), - -/***/ 2113: -/***/ ((module) => { - -"use strict"; - + }) + return min +} -function reusify (Constructor) { - var head = new Constructor() - var tail = head +exports.minVersion = minVersion +function minVersion (range, loose) { + range = new Range(range, loose) - function get () { - var current = head + var minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } - if (current.next) { - head = current.next - } else { - head = new Constructor() - tail = head - } + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } - current.next = null + minver = null + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] - return current + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + 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 || gt(minver, compver)) { + minver = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error('Unexpected operation: ' + comparator.operator) + } + }) } - function release (obj) { - tail.next = obj - tail = obj + if (minver && range.test(minver)) { + return minver } - return { - get: get, - release: release - } + return null } -module.exports = reusify - - -/***/ }), - -/***/ 5288: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -/*! run-parallel. MIT License. Feross Aboukhadijeh */ -module.exports = runParallel - -const queueMicrotask = __nccwpck_require__(9795) +exports.validRange = validRange +function validRange (range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} -function runParallel (tasks, cb) { - let results, pending, keys - let isSync = true +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr +function ltr (version, range, options) { + return outside(version, range, '<', options) +} - if (Array.isArray(tasks)) { - results = [] - pending = tasks.length - } else { - keys = Object.keys(tasks) - results = {} - pending = keys.length - } +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr +function gtr (version, range, options) { + return outside(version, range, '>', options) +} - function done (err) { - function end () { - if (cb) cb(err, results) - cb = null - } - if (isSync) queueMicrotask(end) - else end() - } +exports.outside = outside +function outside (version, range, hilo, options) { + version = new SemVer(version, options) + range = new Range(range, options) - function each (i, err, result) { - results[i] = result - if (--pending === 0 || err) { - done(err) - } + var gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') } - if (!pending) { - // empty - done(null) - } else if (keys) { - // object - keys.forEach(function (key) { - tasks[key](function (err, result) { each(key, err, result) }) - }) - } else { - // array - tasks.forEach(function (task, i) { - task(function (err, result) { each(i, err, result) }) - }) + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) { + return false } - isSync = false -} + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] -/***/ }), + var high = null + var low = null -/***/ 1867: -/***/ ((module, exports, __nccwpck_require__) => { + 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 + } + }) -/* eslint-disable node/no-deprecated-api */ -var buffer = __nccwpck_require__(4300) -var Buffer = buffer.Buffer + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + 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 } -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer + +exports.prerelease = prerelease +function prerelease (version, options) { + var parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null } -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) +exports.intersects = intersects +function intersects (r1, r2, options) { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) } -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) +exports.coerce = coerce +function coerce (version, options) { + if (version instanceof SemVer) { + return version + } -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') + if (typeof version === 'number') { + version = String(version) } - return Buffer(arg, encodingOrOffset, length) -} -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') + if (typeof version !== 'string') { + return null } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } + + options = options || {} + + var match = null + if (!options.rtl) { + match = version.match(re[t.COERCE]) } else { - buf.fill(0) + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + var next + while ((next = re[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 + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + re[t.COERCERTL].lastIndex = -1 } - return buf -} -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') + if (match === null) { + return null } - return Buffer(size) -} -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) + return parse(match[2] + + '.' + (match[3] || '0') + + '.' + (match[4] || '0'), options) } @@ -91135,20 +91267,18 @@ const getIsIgnoredPredicate = (files, cwd) => { return fileOrDirectory => { fileOrDirectory = toPath(fileOrDirectory); fileOrDirectory = toRelativePath(fileOrDirectory, cwd); - return fileOrDirectory ? ignores.ignores(slash(fileOrDirectory)) : false; + return ignores.ignores(slash(fileOrDirectory)); }; }; const normalizeOptions = (options = {}) => ({ cwd: toPath(options.cwd) || external_node_process_namespaceObject.cwd(), - suppressErrors: Boolean(options.suppressErrors), - deep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY, }); const isIgnoredByIgnoreFiles = async (patterns, options) => { - const {cwd, suppressErrors, deep} = normalizeOptions(options); + const {cwd} = normalizeOptions(options); - const paths = await out(patterns, {cwd, suppressErrors, deep, ...ignoreFilesGlobOptions}); + const paths = await out(patterns, {cwd, ...ignoreFilesGlobOptions}); const files = await Promise.all( paths.map(async filePath => ({ @@ -91161,9 +91291,9 @@ const isIgnoredByIgnoreFiles = async (patterns, options) => { }; const isIgnoredByIgnoreFilesSync = (patterns, options) => { - const {cwd, suppressErrors, deep} = normalizeOptions(options); + const {cwd} = normalizeOptions(options); - const paths = out.sync(patterns, {cwd, suppressErrors, deep, ...ignoreFilesGlobOptions}); + const paths = out.sync(patterns, {cwd, ...ignoreFilesGlobOptions}); const files = paths.map(filePath => ({ filePath, @@ -91216,11 +91346,9 @@ const checkCwdOption = options => { const globby_normalizeOptions = (options = {}) => { options = { + ignore: [], + expandDirectories: true, ...options, - ignore: options.ignore || [], - expandDirectories: options.expandDirectories === undefined - ? true - : options.expandDirectories, cwd: toPath(options.cwd), }; @@ -91246,14 +91374,14 @@ const getIgnoreFilesPatterns = options => { const getFilter = async options => { const ignoreFilesPatterns = getIgnoreFilesPatterns(options); return createFilterFunction( - ignoreFilesPatterns.length > 0 && await isIgnoredByIgnoreFiles(ignoreFilesPatterns, options), + ignoreFilesPatterns.length > 0 && await isIgnoredByIgnoreFiles(ignoreFilesPatterns, {cwd: options.cwd}), ); }; const getFilterSync = options => { const ignoreFilesPatterns = getIgnoreFilesPatterns(options); return createFilterFunction( - ignoreFilesPatterns.length > 0 && isIgnoredByIgnoreFilesSync(ignoreFilesPatterns, options), + ignoreFilesPatterns.length > 0 && isIgnoredByIgnoreFilesSync(ignoreFilesPatterns, {cwd: options.cwd}), ); }; diff --git a/dist/show-visual-diffs-in-comment/index.js.map b/dist/show-visual-diffs-in-comment/index.js.map index 2ed74c0..3c32efb 100644 --- a/dist/show-visual-diffs-in-comment/index.js.map +++ b/dist/show-visual-diffs-in-comment/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9sBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzwGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzsGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACngCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACv1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACt2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1mDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACldA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;;;;;;;;ACHA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACz5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACt+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/iCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/uCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3uCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC55DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3lFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzqGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnmCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9PA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/RA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxBA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;;;;;;;;AAAA;;;;;;;;AAAA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;ACAA;;;;;;;;ACAA;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACTA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7FA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;AEDA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/show-visual-diffs-in-comment.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/context.js","../webpack://typescript-action/./node_modules/@actions/github/lib/github.js","../webpack://typescript-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/@google-cloud/paginator/build/src/index.js","../webpack://typescript-action/./node_modules/@google-cloud/paginator/build/src/resource-stream.js","../webpack://typescript-action/./node_modules/@google-cloud/projectify/build/src/index.js","../webpack://typescript-action/./node_modules/@google-cloud/promisify/build/src/index.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/acl.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/bucket.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/channel.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/file.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/gcs-resumable-upload.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/hmacKey.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/iam.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/index.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/nodejs-common/index.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/nodejs-common/service-object.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/nodejs-common/service.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/nodejs-common/util.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/notification.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/signer.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/storage.js","../webpack://typescript-action/./node_modules/@google-cloud/storage/build/src/util.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/adapters/fs.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/constants.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/index.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/providers/async.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/providers/common.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/providers/sync.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/settings.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/utils/fs.js","../webpack://typescript-action/./node_modules/@nodelib/fs.scandir/out/utils/index.js","../webpack://typescript-action/./node_modules/@nodelib/fs.stat/out/adapters/fs.js","../webpack://typescript-action/./node_modules/@nodelib/fs.stat/out/index.js","../webpack://typescript-action/./node_modules/@nodelib/fs.stat/out/providers/async.js","../webpack://typescript-action/./node_modules/@nodelib/fs.stat/out/providers/sync.js","../webpack://typescript-action/./node_modules/@nodelib/fs.stat/out/settings.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/index.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/providers/async.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/providers/stream.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/providers/sync.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/readers/async.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/readers/common.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/readers/reader.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/readers/sync.js","../webpack://typescript-action/./node_modules/@nodelib/fs.walk/out/settings.js","../webpack://typescript-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/@tootallnate/once/dist/index.js","../webpack://typescript-action/./node_modules/abort-controller/dist/abort-controller.js","../webpack://typescript-action/./node_modules/agent-base/dist/src/index.js","../webpack://typescript-action/./node_modules/agent-base/dist/src/promisify.js","../webpack://typescript-action/./node_modules/arrify/index.js","../webpack://typescript-action/./node_modules/async-retry/lib/index.js","../webpack://typescript-action/./node_modules/base64-js/index.js","../webpack://typescript-action/./node_modules/before-after-hook/index.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/add.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/register.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/remove.js","../webpack://typescript-action/./node_modules/bignumber.js/bignumber.js","../webpack://typescript-action/./node_modules/braces/index.js","../webpack://typescript-action/./node_modules/braces/lib/compile.js","../webpack://typescript-action/./node_modules/braces/lib/constants.js","../webpack://typescript-action/./node_modules/braces/lib/expand.js","../webpack://typescript-action/./node_modules/braces/lib/parse.js","../webpack://typescript-action/./node_modules/braces/lib/stringify.js","../webpack://typescript-action/./node_modules/braces/lib/utils.js","../webpack://typescript-action/./node_modules/buffer-equal-constant-time/index.js","../webpack://typescript-action/./node_modules/compressible/index.js","../webpack://typescript-action/./node_modules/configstore/index.js","../webpack://typescript-action/./node_modules/configstore/node_modules/graceful-fs/clone.js","../webpack://typescript-action/./node_modules/configstore/node_modules/graceful-fs/graceful-fs.js","../webpack://typescript-action/./node_modules/configstore/node_modules/graceful-fs/legacy-streams.js","../webpack://typescript-action/./node_modules/configstore/node_modules/graceful-fs/polyfills.js","../webpack://typescript-action/./node_modules/crypto-random-string/index.js","../webpack://typescript-action/./node_modules/debug/src/browser.js","../webpack://typescript-action/./node_modules/debug/src/common.js","../webpack://typescript-action/./node_modules/debug/src/index.js","../webpack://typescript-action/./node_modules/debug/src/node.js","../webpack://typescript-action/./node_modules/deprecation/dist-node/index.js","../webpack://typescript-action/./node_modules/dir-glob/index.js","../webpack://typescript-action/./node_modules/dot-prop/index.js","../webpack://typescript-action/./node_modules/duplexify/index.js","../webpack://typescript-action/./node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js","../webpack://typescript-action/./node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js","../webpack://typescript-action/./node_modules/end-of-stream/index.js","../webpack://typescript-action/./node_modules/ent/decode.js","../webpack://typescript-action/./node_modules/ent/encode.js","../webpack://typescript-action/./node_modules/ent/index.js","../webpack://typescript-action/./node_modules/event-target-shim/dist/event-target-shim.js","../webpack://typescript-action/./node_modules/extend/index.js","../webpack://typescript-action/./node_modules/fast-glob/node_modules/glob-parent/index.js","../webpack://typescript-action/./node_modules/fast-glob/out/index.js","../webpack://typescript-action/./node_modules/fast-glob/out/managers/tasks.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/async.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/filters/deep.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/filters/entry.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/filters/error.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/matchers/matcher.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/matchers/partial.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/provider.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/stream.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/sync.js","../webpack://typescript-action/./node_modules/fast-glob/out/providers/transformers/entry.js","../webpack://typescript-action/./node_modules/fast-glob/out/readers/async.js","../webpack://typescript-action/./node_modules/fast-glob/out/readers/reader.js","../webpack://typescript-action/./node_modules/fast-glob/out/readers/stream.js","../webpack://typescript-action/./node_modules/fast-glob/out/readers/sync.js","../webpack://typescript-action/./node_modules/fast-glob/out/settings.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/array.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/errno.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/fs.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/index.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/path.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/pattern.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/stream.js","../webpack://typescript-action/./node_modules/fast-glob/out/utils/string.js","../webpack://typescript-action/./node_modules/fast-text-encoding/text.min.js","../webpack://typescript-action/./node_modules/fastq/queue.js","../webpack://typescript-action/./node_modules/fill-range/index.js","../webpack://typescript-action/./node_modules/gaxios/build/src/common.js","../webpack://typescript-action/./node_modules/gaxios/build/src/gaxios.js","../webpack://typescript-action/./node_modules/gaxios/build/src/index.js","../webpack://typescript-action/./node_modules/gaxios/build/src/retry.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/gaxios/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/gcp-metadata/build/src/index.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/authclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/awsclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/awsrequestsigner.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/baseexternalclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/computeclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/downscopedclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/envDetect.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/externalclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/googleauth.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/iam.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/identitypoolclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/idtokenclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/impersonated.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/jwtaccess.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/jwtclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/loginticket.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/oauth2client.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/oauth2common.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/refreshclient.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/auth/stscredentials.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/crypto/browser/crypto.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/crypto/crypto.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/crypto/node/crypto.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/index.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/options.js","../webpack://typescript-action/./node_modules/google-auth-library/build/src/transporters.js","../webpack://typescript-action/./node_modules/google-p12-pem/build/src/index.js","../webpack://typescript-action/./node_modules/gtoken/build/src/index.js","../webpack://typescript-action/./node_modules/has-flag/index.js","../webpack://typescript-action/./node_modules/hash-stream-validation/crc32c.js","../webpack://typescript-action/./node_modules/hash-stream-validation/index.js","../webpack://typescript-action/./node_modules/http-proxy-agent/dist/agent.js","../webpack://typescript-action/./node_modules/http-proxy-agent/dist/index.js","../webpack://typescript-action/./node_modules/https-proxy-agent/dist/agent.js","../webpack://typescript-action/./node_modules/https-proxy-agent/dist/index.js","../webpack://typescript-action/./node_modules/https-proxy-agent/dist/parse-proxy-response.js","../webpack://typescript-action/./node_modules/ignore/index.js","../webpack://typescript-action/./node_modules/imurmurhash/imurmurhash.js","../webpack://typescript-action/./node_modules/inherits/inherits.js","../webpack://typescript-action/./node_modules/inherits/inherits_browser.js","../webpack://typescript-action/./node_modules/is-extglob/index.js","../webpack://typescript-action/./node_modules/is-glob/index.js","../webpack://typescript-action/./node_modules/is-number/index.js","../webpack://typescript-action/./node_modules/is-obj/index.js","../webpack://typescript-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://typescript-action/./node_modules/is-stream/index.js","../webpack://typescript-action/./node_modules/is-typedarray/index.js","../webpack://typescript-action/./node_modules/json-bigint/index.js","../webpack://typescript-action/./node_modules/json-bigint/lib/parse.js","../webpack://typescript-action/./node_modules/json-bigint/lib/stringify.js","../webpack://typescript-action/./node_modules/jwa/index.js","../webpack://typescript-action/./node_modules/jws/index.js","../webpack://typescript-action/./node_modules/jws/lib/data-stream.js","../webpack://typescript-action/./node_modules/jws/lib/sign-stream.js","../webpack://typescript-action/./node_modules/jws/lib/tostring.js","../webpack://typescript-action/./node_modules/jws/lib/verify-stream.js","../webpack://typescript-action/./node_modules/lru-cache/index.js","../webpack://typescript-action/./node_modules/make-dir/index.js","../webpack://typescript-action/./node_modules/make-dir/node_modules/semver/semver.js","../webpack://typescript-action/./node_modules/merge2/index.js","../webpack://typescript-action/./node_modules/micromatch/index.js","../webpack://typescript-action/./node_modules/mime-db/index.js","../webpack://typescript-action/./node_modules/mime-types/index.js","../webpack://typescript-action/./node_modules/mime/Mime.js","../webpack://typescript-action/./node_modules/mime/index.js","../webpack://typescript-action/./node_modules/mime/types/other.js","../webpack://typescript-action/./node_modules/mime/types/standard.js","../webpack://typescript-action/./node_modules/ms/index.js","../webpack://typescript-action/./node_modules/node-forge/lib/aes.js","../webpack://typescript-action/./node_modules/node-forge/lib/aesCipherSuites.js","../webpack://typescript-action/./node_modules/node-forge/lib/asn1-validator.js","../webpack://typescript-action/./node_modules/node-forge/lib/asn1.js","../webpack://typescript-action/./node_modules/node-forge/lib/baseN.js","../webpack://typescript-action/./node_modules/node-forge/lib/cipher.js","../webpack://typescript-action/./node_modules/node-forge/lib/cipherModes.js","../webpack://typescript-action/./node_modules/node-forge/lib/des.js","../webpack://typescript-action/./node_modules/node-forge/lib/ed25519.js","../webpack://typescript-action/./node_modules/node-forge/lib/forge.js","../webpack://typescript-action/./node_modules/node-forge/lib/hmac.js","../webpack://typescript-action/./node_modules/node-forge/lib/index.js","../webpack://typescript-action/./node_modules/node-forge/lib/jsbn.js","../webpack://typescript-action/./node_modules/node-forge/lib/kem.js","../webpack://typescript-action/./node_modules/node-forge/lib/log.js","../webpack://typescript-action/./node_modules/node-forge/lib/md.all.js","../webpack://typescript-action/./node_modules/node-forge/lib/md.js","../webpack://typescript-action/./node_modules/node-forge/lib/md5.js","../webpack://typescript-action/./node_modules/node-forge/lib/mgf.js","../webpack://typescript-action/./node_modules/node-forge/lib/mgf1.js","../webpack://typescript-action/./node_modules/node-forge/lib/oids.js","../webpack://typescript-action/./node_modules/node-forge/lib/pbe.js","../webpack://typescript-action/./node_modules/node-forge/lib/pbkdf2.js","../webpack://typescript-action/./node_modules/node-forge/lib/pem.js","../webpack://typescript-action/./node_modules/node-forge/lib/pkcs1.js","../webpack://typescript-action/./node_modules/node-forge/lib/pkcs12.js","../webpack://typescript-action/./node_modules/node-forge/lib/pkcs7.js","../webpack://typescript-action/./node_modules/node-forge/lib/pkcs7asn1.js","../webpack://typescript-action/./node_modules/node-forge/lib/pki.js","../webpack://typescript-action/./node_modules/node-forge/lib/prime.js","../webpack://typescript-action/./node_modules/node-forge/lib/prng.js","../webpack://typescript-action/./node_modules/node-forge/lib/pss.js","../webpack://typescript-action/./node_modules/node-forge/lib/random.js","../webpack://typescript-action/./node_modules/node-forge/lib/rc2.js","../webpack://typescript-action/./node_modules/node-forge/lib/rsa.js","../webpack://typescript-action/./node_modules/node-forge/lib/sha1.js","../webpack://typescript-action/./node_modules/node-forge/lib/sha256.js","../webpack://typescript-action/./node_modules/node-forge/lib/sha512.js","../webpack://typescript-action/./node_modules/node-forge/lib/ssh.js","../webpack://typescript-action/./node_modules/node-forge/lib/tls.js","../webpack://typescript-action/./node_modules/node-forge/lib/util.js","../webpack://typescript-action/./node_modules/node-forge/lib/x509.js","../webpack://typescript-action/./node_modules/once/once.js","../webpack://typescript-action/./node_modules/p-limit/index.js","../webpack://typescript-action/./node_modules/path-type/index.js","../webpack://typescript-action/./node_modules/picomatch/index.js","../webpack://typescript-action/./node_modules/picomatch/lib/constants.js","../webpack://typescript-action/./node_modules/picomatch/lib/parse.js","../webpack://typescript-action/./node_modules/picomatch/lib/picomatch.js","../webpack://typescript-action/./node_modules/picomatch/lib/scan.js","../webpack://typescript-action/./node_modules/picomatch/lib/utils.js","../webpack://typescript-action/./node_modules/pump/index.js","../webpack://typescript-action/./node_modules/pumpify/index.js","../webpack://typescript-action/./node_modules/queue-microtask/index.js","../webpack://typescript-action/./node_modules/readable-stream/errors.js","../webpack://typescript-action/./node_modules/readable-stream/lib/_stream_duplex.js","../webpack://typescript-action/./node_modules/readable-stream/lib/_stream_passthrough.js","../webpack://typescript-action/./node_modules/readable-stream/lib/_stream_readable.js","../webpack://typescript-action/./node_modules/readable-stream/lib/_stream_transform.js","../webpack://typescript-action/./node_modules/readable-stream/lib/_stream_writable.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/destroy.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/from.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/pipeline.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/state.js","../webpack://typescript-action/./node_modules/readable-stream/lib/internal/streams/stream.js","../webpack://typescript-action/./node_modules/readable-stream/readable.js","../webpack://typescript-action/./node_modules/retry-request/index.js","../webpack://typescript-action/./node_modules/retry/index.js","../webpack://typescript-action/./node_modules/retry/lib/retry.js","../webpack://typescript-action/./node_modules/retry/lib/retry_operation.js","../webpack://typescript-action/./node_modules/reusify/reusify.js","../webpack://typescript-action/./node_modules/run-parallel/index.js","../webpack://typescript-action/./node_modules/safe-buffer/index.js","../webpack://typescript-action/./node_modules/signal-exit/index.js","../webpack://typescript-action/./node_modules/signal-exit/signals.js","../webpack://typescript-action/./node_modules/stream-events/index.js","../webpack://typescript-action/./node_modules/stream-shift/index.js","../webpack://typescript-action/./node_modules/string_decoder/lib/string_decoder.js","../webpack://typescript-action/./node_modules/string_decoder/node_modules/safe-buffer/index.js","../webpack://typescript-action/./node_modules/stubs/index.js","../webpack://typescript-action/./node_modules/supports-color/index.js","../webpack://typescript-action/./node_modules/teeny-request/build/src/TeenyStatistics.js","../webpack://typescript-action/./node_modules/teeny-request/build/src/agents.js","../webpack://typescript-action/./node_modules/teeny-request/build/src/index.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/teeny-request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/to-regex-range/index.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/typedarray-to-buffer/index.js","../webpack://typescript-action/./node_modules/unique-string/index.js","../webpack://typescript-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://typescript-action/./node_modules/util-deprecate/node.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/wrappy/wrappy.js","../webpack://typescript-action/./node_modules/write-file-atomic/index.js","../webpack://typescript-action/./node_modules/xdg-basedir/index.js","../webpack://typescript-action/./node_modules/yallist/iterator.js","../webpack://typescript-action/./node_modules/yallist/yallist.js","../webpack://typescript-action/./node_modules/yocto-queue/index.js","../webpack://typescript-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"buffer\"","../webpack://typescript-action/external node-commonjs \"child_process\"","../webpack://typescript-action/external node-commonjs \"constants\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"punycode\"","../webpack://typescript-action/external node-commonjs \"querystring\"","../webpack://typescript-action/external node-commonjs \"stream\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"tty\"","../webpack://typescript-action/external node-commonjs \"url\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"worker_threads\"","../webpack://typescript-action/external node-commonjs \"zlib\"","../webpack://typescript-action/external node-commonjs \"node:fs\"","../webpack://typescript-action/external node-commonjs \"node:path\"","../webpack://typescript-action/external node-commonjs \"node:process\"","../webpack://typescript-action/./node_modules/globby/node_modules/slash/index.js","../webpack://typescript-action/external node-commonjs \"node:url\"","../webpack://typescript-action/external node-commonjs \"node:stream\"","../webpack://typescript-action/./node_modules/globby/utilities.js","../webpack://typescript-action/./node_modules/globby/ignore.js","../webpack://typescript-action/./node_modules/globby/index.js","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/define property getters","../webpack://typescript-action/webpack/runtime/hasOwnProperty shorthand","../webpack://typescript-action/webpack/runtime/make namespace object","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst storage_1 = require(\"@google-cloud/storage\");\nconst globby_1 = require(\"globby\");\nconst util_1 = require(\"util\");\nconst bucketName = 'visual-regression-image-bucket';\nasync function run() {\n try {\n const gCredentials = JSON.parse(core.getInput('gcloud-credentials-json'));\n const storage = new storage_1.Storage({\n credentials: gCredentials,\n projectId: gCredentials.project_id\n });\n let paths = await (0, globby_1.globby)('**/*diff.png');\n paths = paths.filter(path => !path.includes('retry'));\n const uploadPromises = paths.map(async (path) => {\n const fileName = path.split('/').pop() || '';\n const summaryPath = fileName?.replace('diff.png', '').split('-').join(' ');\n const [gcloudResponse] = await storage.bucket(bucketName).upload(path, {\n contentType: 'image/png',\n destination: `${github.context.repo.repo}-${fileName}-sha-${github.context.sha}`\n });\n core.debug(`upload gcloud response for ${path}: ${(0, util_1.inspect)(gcloudResponse)}`);\n return `\n
\n ${summaryPath}\n ${path}\n
\n\n![${path}](${gcloudResponse.metadata.mediaLink})`;\n });\n const mdLines = await Promise.all(uploadPromises);\n const commentBody = [\n '### Ch-ch-ch-ch-changes',\n '
',\n '',\n '',\n '#### Turn and face the strange (click to see diffs)',\n '',\n '',\n '---',\n 'If these changes are intentional, leave a comment with `--update-snapshots` to commit new reference snapshots\\n',\n ...mdLines,\n '
'\n ].join('\\n');\n // important note: This action does not handle the `--update-snapshots` comment\n core.setOutput('body', commentBody);\n }\n catch (error) {\n if (error instanceof Error)\n core.setFailed(error.message);\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\n/*!\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceStream = exports.paginator = exports.Paginator = void 0;\n/*!\n * @module common/paginator\n */\nconst arrify = require(\"arrify\");\nconst extend = require(\"extend\");\nconst resource_stream_1 = require(\"./resource-stream\");\nObject.defineProperty(exports, \"ResourceStream\", { enumerable: true, get: function () { return resource_stream_1.ResourceStream; } });\n/*! Developer Documentation\n *\n * paginator is used to auto-paginate `nextQuery` methods as well as\n * streamifying them.\n *\n * Before:\n *\n * search.query('done=true', function(err, results, nextQuery) {\n * search.query(nextQuery, function(err, results, nextQuery) {});\n * });\n *\n * After:\n *\n * search.query('done=true', function(err, results) {});\n *\n * Methods to extend should be written to accept callbacks and return a\n * `nextQuery`.\n */\nclass Paginator {\n /**\n * Cache the original method, then overwrite it on the Class's prototype.\n *\n * @param {function} Class - The parent class of the methods to extend.\n * @param {string|string[]} methodNames - Name(s) of the methods to extend.\n */\n // tslint:disable-next-line:variable-name\n extend(Class, methodNames) {\n methodNames = arrify(methodNames);\n methodNames.forEach(methodName => {\n const originalMethod = Class.prototype[methodName];\n // map the original method to a private member\n Class.prototype[methodName + '_'] = originalMethod;\n // overwrite the original to auto-paginate\n /* eslint-disable @typescript-eslint/no-explicit-any */\n Class.prototype[methodName] = function (...args) {\n const parsedArguments = paginator.parseArguments_(args);\n return paginator.run_(parsedArguments, originalMethod.bind(this));\n };\n });\n }\n /**\n * Wraps paginated API calls in a readable object stream.\n *\n * This method simply calls the nextQuery recursively, emitting results to a\n * stream. The stream ends when `nextQuery` is null.\n *\n * `maxResults` will act as a cap for how many results are fetched and emitted\n * to the stream.\n *\n * @param {string} methodName - Name of the method to streamify.\n * @return {function} - Wrapped function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n streamify(methodName) {\n return function (\n /* eslint-disable @typescript-eslint/no-explicit-any */\n ...args) {\n const parsedArguments = paginator.parseArguments_(args);\n const originalMethod = this[methodName + '_'] || this[methodName];\n return paginator.runAsStream_(parsedArguments, originalMethod.bind(this));\n };\n }\n /**\n * Parse a pseudo-array `arguments` for a query and callback.\n *\n * @param {array} args - The original `arguments` pseduo-array that the original\n * method received.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n parseArguments_(args) {\n let query;\n let autoPaginate = true;\n let maxApiCalls = -1;\n let maxResults = -1;\n let callback;\n const firstArgument = args[0];\n const lastArgument = args[args.length - 1];\n if (typeof firstArgument === 'function') {\n callback = firstArgument;\n }\n else {\n query = firstArgument;\n }\n if (typeof lastArgument === 'function') {\n callback = lastArgument;\n }\n if (typeof query === 'object') {\n query = extend(true, {}, query);\n // Check if the user only asked for a certain amount of results.\n if (query.maxResults && typeof query.maxResults === 'number') {\n // `maxResults` is used API-wide.\n maxResults = query.maxResults;\n }\n else if (typeof query.pageSize === 'number') {\n // `pageSize` is Pub/Sub's `maxResults`.\n maxResults = query.pageSize;\n }\n if (query.maxApiCalls && typeof query.maxApiCalls === 'number') {\n maxApiCalls = query.maxApiCalls;\n delete query.maxApiCalls;\n }\n // maxResults is the user specified limit.\n if (maxResults !== -1 || query.autoPaginate === false) {\n autoPaginate = false;\n }\n }\n const parsedArguments = {\n query: query || {},\n autoPaginate,\n maxApiCalls,\n maxResults,\n callback,\n };\n parsedArguments.streamOptions = extend(true, {}, parsedArguments.query);\n delete parsedArguments.streamOptions.autoPaginate;\n delete parsedArguments.streamOptions.maxResults;\n delete parsedArguments.streamOptions.pageSize;\n return parsedArguments;\n }\n /**\n * This simply checks to see if `autoPaginate` is set or not, if it's true\n * then we buffer all results, otherwise simply call the original method.\n *\n * @param {array} parsedArguments - Parsed arguments from the original method\n * call.\n * @param {object=|string=} parsedArguments.query - Query object. This is most\n * commonly an object, but to make the API more simple, it can also be a\n * string in some places.\n * @param {function=} parsedArguments.callback - Callback function.\n * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled.\n * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make.\n * @param {number} parsedArguments.maxResults - Maximum results to return.\n * @param {function} originalMethod - The cached method that accepts a callback\n * and returns `nextQuery` to receive more results.\n */\n run_(parsedArguments, originalMethod) {\n const query = parsedArguments.query;\n const callback = parsedArguments.callback;\n if (!parsedArguments.autoPaginate) {\n return originalMethod(query, callback);\n }\n const results = new Array();\n const promise = new Promise((resolve, reject) => {\n paginator\n .runAsStream_(parsedArguments, originalMethod)\n .on('error', reject)\n .on('data', (data) => results.push(data))\n .on('end', () => resolve(results));\n });\n if (!callback) {\n return promise.then(results => [results]);\n }\n promise.then(results => callback(null, results), (err) => callback(err));\n }\n /**\n * This method simply calls the nextQuery recursively, emitting results to a\n * stream. The stream ends when `nextQuery` is null.\n *\n * `maxResults` will act as a cap for how many results are fetched and emitted\n * to the stream.\n *\n * @param {object=|string=} parsedArguments.query - Query object. This is most\n * commonly an object, but to make the API more simple, it can also be a\n * string in some places.\n * @param {function=} parsedArguments.callback - Callback function.\n * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled.\n * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make.\n * @param {number} parsedArguments.maxResults - Maximum results to return.\n * @param {function} originalMethod - The cached method that accepts a callback\n * and returns `nextQuery` to receive more results.\n * @return {stream} - Readable object stream.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n runAsStream_(parsedArguments, originalMethod) {\n return new resource_stream_1.ResourceStream(parsedArguments, originalMethod);\n }\n}\nexports.Paginator = Paginator;\nconst paginator = new Paginator();\nexports.paginator = paginator;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/*!\n * Copyright 2019 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceStream = void 0;\nconst stream_1 = require(\"stream\");\nclass ResourceStream extends stream_1.Transform {\n constructor(args, requestFn) {\n const options = Object.assign({ objectMode: true }, args.streamOptions);\n super(options);\n this._ended = false;\n this._maxApiCalls = args.maxApiCalls === -1 ? Infinity : args.maxApiCalls;\n this._nextQuery = args.query;\n this._reading = false;\n this._requestFn = requestFn;\n this._requestsMade = 0;\n this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults;\n }\n /* eslint-disable @typescript-eslint/no-explicit-any */\n end(...args) {\n this._ended = true;\n return super.end(...args);\n }\n _read() {\n if (this._reading) {\n return;\n }\n this._reading = true;\n // Wrap in a try/catch to catch input linting errors, e.g.\n // an invalid BigQuery query. These errors are thrown in an\n // async fashion, which makes them un-catchable by the user.\n try {\n this._requestFn(this._nextQuery, (err, results, nextQuery) => {\n if (err) {\n this.destroy(err);\n return;\n }\n this._nextQuery = nextQuery;\n if (this._resultsToSend !== Infinity) {\n results = results.splice(0, this._resultsToSend);\n this._resultsToSend -= results.length;\n }\n let more = true;\n for (const result of results) {\n if (this._ended) {\n break;\n }\n more = this.push(result);\n }\n const isFinished = !this._nextQuery || this._resultsToSend < 1;\n const madeMaxCalls = ++this._requestsMade >= this._maxApiCalls;\n if (isFinished || madeMaxCalls) {\n this.end();\n }\n if (more && !this._ended) {\n setImmediate(() => this._read());\n }\n this._reading = false;\n });\n }\n catch (e) {\n this.destroy(e);\n }\n }\n}\nexports.ResourceStream = ResourceStream;\n//# sourceMappingURL=resource-stream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\n// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Populate the `{{projectId}}` placeholder.\n *\n * @throws {Error} If a projectId is required, but one is not provided.\n *\n * @param {*} - Any input value that may contain a placeholder. Arrays and objects will be looped.\n * @param {string} projectId - A projectId. If not provided\n * @return {*} - The original argument with all placeholders populated.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replaceProjectIdToken(value, projectId) {\n if (Array.isArray(value)) {\n value = value.map(v => replaceProjectIdToken(v, projectId));\n }\n if (value !== null &&\n typeof value === 'object' &&\n !(value instanceof Buffer) &&\n !(value instanceof stream_1.Stream) &&\n typeof value.hasOwnProperty === 'function') {\n for (const opt in value) {\n // eslint-disable-next-line no-prototype-builtins\n if (value.hasOwnProperty(opt)) {\n value[opt] = replaceProjectIdToken(value[opt], projectId);\n }\n }\n }\n if (typeof value === 'string' &&\n value.indexOf('{{projectId}}') > -1) {\n if (!projectId || projectId === '{{projectId}}') {\n throw new MissingProjectIdError();\n }\n value = value.replace(/{{projectId}}/g, projectId);\n }\n return value;\n}\nexports.replaceProjectIdToken = replaceProjectIdToken;\n/**\n * Custom error type for missing project ID errors.\n */\nclass MissingProjectIdError extends Error {\n constructor() {\n super(...arguments);\n this.message = `Sorry, we cannot connect to Cloud Services without a project\n ID. You may specify one with an environment variable named\n \"GOOGLE_CLOUD_PROJECT\".`.replace(/ +/g, ' ');\n }\n}\nexports.MissingProjectIdError = MissingProjectIdError;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable prefer-rest-params */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callbackifyAll = exports.callbackify = exports.promisifyAll = exports.promisify = void 0;\n/**\n * Wraps a callback style function to conditionally return a promise.\n *\n * @param {function} originalMethod - The method to promisify.\n * @param {object=} options - Promise options.\n * @param {boolean} options.singular - Resolve the promise with single arg instead of an array.\n * @return {function} wrapped\n */\nfunction promisify(originalMethod, options) {\n if (originalMethod.promisified_) {\n return originalMethod;\n }\n options = options || {};\n const slice = Array.prototype.slice;\n // tslint:disable-next-line:no-any\n const wrapper = function () {\n let last;\n for (last = arguments.length - 1; last >= 0; last--) {\n const arg = arguments[last];\n if (typeof arg === 'undefined') {\n continue; // skip trailing undefined.\n }\n if (typeof arg !== 'function') {\n break; // non-callback last argument found.\n }\n return originalMethod.apply(this, arguments);\n }\n // peel trailing undefined.\n const args = slice.call(arguments, 0, last + 1);\n // tslint:disable-next-line:variable-name\n let PromiseCtor = Promise;\n // Because dedupe will likely create a single install of\n // @google-cloud/common to be shared amongst all modules, we need to\n // localize it at the Service level.\n if (this && this.Promise) {\n PromiseCtor = this.Promise;\n }\n return new PromiseCtor((resolve, reject) => {\n // tslint:disable-next-line:no-any\n args.push((...args) => {\n const callbackArgs = slice.call(args);\n const err = callbackArgs.shift();\n if (err) {\n return reject(err);\n }\n if (options.singular && callbackArgs.length === 1) {\n resolve(callbackArgs[0]);\n }\n else {\n resolve(callbackArgs);\n }\n });\n originalMethod.apply(this, args);\n });\n };\n wrapper.promisified_ = true;\n return wrapper;\n}\nexports.promisify = promisify;\n/**\n * Promisifies certain Class methods. This will not promisify private or\n * streaming methods.\n *\n * @param {module:common/service} Class - Service class.\n * @param {object=} options - Configuration object.\n */\n// tslint:disable-next-line:variable-name\nfunction promisifyAll(Class, options) {\n const exclude = (options && options.exclude) || [];\n const ownPropertyNames = Object.getOwnPropertyNames(Class.prototype);\n const methods = ownPropertyNames.filter(methodName => {\n // clang-format off\n return (!exclude.includes(methodName) &&\n typeof Class.prototype[methodName] === 'function' && // is it a function?\n !/(^_|(Stream|_)|promise$)|^constructor$/.test(methodName) // is it promisable?\n );\n // clang-format on\n });\n methods.forEach(methodName => {\n const originalMethod = Class.prototype[methodName];\n if (!originalMethod.promisified_) {\n Class.prototype[methodName] = exports.promisify(originalMethod, options);\n }\n });\n}\nexports.promisifyAll = promisifyAll;\n/**\n * Wraps a promisy type function to conditionally call a callback function.\n *\n * @param {function} originalMethod - The method to callbackify.\n * @param {object=} options - Callback options.\n * @param {boolean} options.singular - Pass to the callback a single arg instead of an array.\n * @return {function} wrapped\n */\nfunction callbackify(originalMethod) {\n if (originalMethod.callbackified_) {\n return originalMethod;\n }\n // tslint:disable-next-line:no-any\n const wrapper = function () {\n if (typeof arguments[arguments.length - 1] !== 'function') {\n return originalMethod.apply(this, arguments);\n }\n const cb = Array.prototype.pop.call(arguments);\n originalMethod.apply(this, arguments).then(\n // tslint:disable-next-line:no-any\n (res) => {\n res = Array.isArray(res) ? res : [res];\n cb(null, ...res);\n }, (err) => cb(err));\n };\n wrapper.callbackified_ = true;\n return wrapper;\n}\nexports.callbackify = callbackify;\n/**\n * Callbackifies certain Class methods. This will not callbackify private or\n * streaming methods.\n *\n * @param {module:common/service} Class - Service class.\n * @param {object=} options - Configuration object.\n */\nfunction callbackifyAll(\n// tslint:disable-next-line:variable-name\nClass, options) {\n const exclude = (options && options.exclude) || [];\n const ownPropertyNames = Object.getOwnPropertyNames(Class.prototype);\n const methods = ownPropertyNames.filter(methodName => {\n // clang-format off\n return (!exclude.includes(methodName) &&\n typeof Class.prototype[methodName] === 'function' && // is it a function?\n !/^_|(Stream|_)|^constructor$/.test(methodName) // is it callbackifyable?\n );\n // clang-format on\n });\n methods.forEach(methodName => {\n const originalMethod = Class.prototype[methodName];\n if (!originalMethod.callbackified_) {\n Class.prototype[methodName] = exports.callbackify(originalMethod);\n }\n });\n}\nexports.callbackifyAll = callbackifyAll;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AclRoleAccessorMethods = exports.Acl = void 0;\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\n/**\n * Attach functionality to a {@link Storage.acl} instance. This will add an\n * object for each role group (owners, readers, and writers), with each object\n * containing methods to add or delete a type of entity.\n *\n * As an example, here are a few methods that are created.\n *\n * myBucket.acl.readers.deleteGroup('groupId', function(err) {});\n *\n * myBucket.acl.owners.addUser('email@example.com', function(err, acl) {});\n *\n * myBucket.acl.writers.addDomain('example.com', function(err, acl) {});\n *\n * @private\n */\nclass AclRoleAccessorMethods {\n constructor() {\n this.owners = {};\n this.readers = {};\n this.writers = {};\n /**\n * An object of convenience methods to add or delete owner ACL permissions\n * for a given entity.\n *\n * The supported methods include:\n *\n * - `myFile.acl.owners.addAllAuthenticatedUsers`\n * - `myFile.acl.owners.deleteAllAuthenticatedUsers`\n * - `myFile.acl.owners.addAllUsers`\n * - `myFile.acl.owners.deleteAllUsers`\n * - `myFile.acl.owners.addDomain`\n * - `myFile.acl.owners.deleteDomain`\n * - `myFile.acl.owners.addGroup`\n * - `myFile.acl.owners.deleteGroup`\n * - `myFile.acl.owners.addProject`\n * - `myFile.acl.owners.deleteProject`\n * - `myFile.acl.owners.addUser`\n * - `myFile.acl.owners.deleteUser`\n *\n * @name Acl#owners\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * //-\n * // Add a user as an owner of a file.\n * //-\n * const myBucket = gcs.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n * myFile.acl.owners.addUser('email@example.com', function(err, aclObject)\n * {});\n *\n * //-\n * // For reference, the above command is the same as running the following.\n * //-\n * myFile.acl.add({\n * entity: 'user-email@example.com',\n * role: gcs.acl.OWNER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.owners.addUser('email@example.com').then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n this.owners = {};\n /**\n * An object of convenience methods to add or delete reader ACL permissions\n * for a given entity.\n *\n * The supported methods include:\n *\n * - `myFile.acl.readers.addAllAuthenticatedUsers`\n * - `myFile.acl.readers.deleteAllAuthenticatedUsers`\n * - `myFile.acl.readers.addAllUsers`\n * - `myFile.acl.readers.deleteAllUsers`\n * - `myFile.acl.readers.addDomain`\n * - `myFile.acl.readers.deleteDomain`\n * - `myFile.acl.readers.addGroup`\n * - `myFile.acl.readers.deleteGroup`\n * - `myFile.acl.readers.addProject`\n * - `myFile.acl.readers.deleteProject`\n * - `myFile.acl.readers.addUser`\n * - `myFile.acl.readers.deleteUser`\n *\n * @name Acl#readers\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * //-\n * // Add a user as a reader of a file.\n * //-\n * myFile.acl.readers.addUser('email@example.com', function(err, aclObject)\n * {});\n *\n * //-\n * // For reference, the above command is the same as running the following.\n * //-\n * myFile.acl.add({\n * entity: 'user-email@example.com',\n * role: gcs.acl.READER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.readers.addUser('email@example.com').then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n this.readers = {};\n /**\n * An object of convenience methods to add or delete writer ACL permissions\n * for a given entity.\n *\n * The supported methods include:\n *\n * - `myFile.acl.writers.addAllAuthenticatedUsers`\n * - `myFile.acl.writers.deleteAllAuthenticatedUsers`\n * - `myFile.acl.writers.addAllUsers`\n * - `myFile.acl.writers.deleteAllUsers`\n * - `myFile.acl.writers.addDomain`\n * - `myFile.acl.writers.deleteDomain`\n * - `myFile.acl.writers.addGroup`\n * - `myFile.acl.writers.deleteGroup`\n * - `myFile.acl.writers.addProject`\n * - `myFile.acl.writers.deleteProject`\n * - `myFile.acl.writers.addUser`\n * - `myFile.acl.writers.deleteUser`\n *\n * @name Acl#writers\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * //-\n * // Add a user as a writer of a file.\n * //-\n * myFile.acl.writers.addUser('email@example.com', function(err, aclObject)\n * {});\n *\n * //-\n * // For reference, the above command is the same as running the following.\n * //-\n * myFile.acl.add({\n * entity: 'user-email@example.com',\n * role: gcs.acl.WRITER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.writers.addUser('email@example.com').then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n this.writers = {};\n AclRoleAccessorMethods.roles.forEach(this._assignAccessMethods.bind(this));\n }\n _assignAccessMethods(role) {\n const accessMethods = AclRoleAccessorMethods.accessMethods;\n const entities = AclRoleAccessorMethods.entities;\n const roleGroup = role.toLowerCase() + 's';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[roleGroup] = entities.reduce((acc, entity) => {\n const isPrefix = entity.charAt(entity.length - 1) === '-';\n accessMethods.forEach(accessMethod => {\n let method = accessMethod + entity[0].toUpperCase() + entity.substr(1);\n if (isPrefix) {\n method = method.replace('-', '');\n }\n // Wrap the parent accessor method (e.g. `add` or `delete`) to avoid the\n // more complex API of specifying an `entity` and `role`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n acc[method] = (entityId, options, callback) => {\n let apiEntity;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (isPrefix) {\n apiEntity = entity + entityId;\n }\n else {\n // If the entity is not a prefix, it is a special entity group\n // that does not require further details. The accessor methods\n // only accept a callback.\n apiEntity = entity;\n callback = entityId;\n }\n options = Object.assign({\n entity: apiEntity,\n role,\n }, options);\n const args = [options];\n if (typeof callback === 'function') {\n args.push(callback);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this[accessMethod].apply(this, args);\n };\n });\n return acc;\n }, {});\n }\n}\nexports.AclRoleAccessorMethods = AclRoleAccessorMethods;\nAclRoleAccessorMethods.accessMethods = ['add', 'delete'];\nAclRoleAccessorMethods.entities = [\n // Special entity groups that do not require further specification.\n 'allAuthenticatedUsers',\n 'allUsers',\n // Entity groups that require specification, e.g. `user-email@example.com`.\n 'domain-',\n 'group-',\n 'project-',\n 'user-',\n];\nAclRoleAccessorMethods.roles = ['OWNER', 'READER', 'WRITER'];\n/**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * An ACL consists of one or more entries, where each entry grants permissions\n * to an entity. Permissions define the actions that can be performed against an\n * object or bucket (for example, `READ` or `WRITE`); the entity defines who the\n * permission applies to (for example, a specific user or group of users).\n *\n * Where an `entity` value is accepted, we follow the format the Cloud Storage\n * API expects.\n *\n * Refer to\n * https://cloud.google.com/storage/docs/json_api/v1/defaultObjectAccessControls\n * for the most up-to-date values.\n *\n * - `user-userId`\n * - `user-email`\n * - `group-groupId`\n * - `group-email`\n * - `domain-domain`\n * - `project-team-projectId`\n * - `allUsers`\n * - `allAuthenticatedUsers`\n *\n * Examples:\n *\n * - The user \"liz@example.com\" would be `user-liz@example.com`.\n * - The group \"example@googlegroups.com\" would be\n * `group-example@googlegroups.com`.\n * - To refer to all members of the Google Apps for Business domain\n * \"example.com\", the entity would be `domain-example.com`.\n *\n * For more detailed information, see\n * {@link http://goo.gl/6qBBPO| About Access Control Lists}.\n *\n * @constructor Acl\n * @mixin\n * @param {object} options Configuration options.\n */\nclass Acl extends AclRoleAccessorMethods {\n constructor(options) {\n super();\n this.pathPrefix = options.pathPrefix;\n this.request_ = options.request;\n }\n /**\n * @typedef {array} AddAclResponse\n * @property {object} 0 The Acl Objects.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback AddAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object} acl The Acl Objects.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Add access controls on a {@link Bucket} or {@link File}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/insert| BucketAccessControls: insert API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/insert| ObjectAccessControls: insert API Documentation}\n *\n * @param {object} options Configuration options.\n * @param {string} options.entity Whose permissions will be added.\n * @param {string} options.role Permissions allowed for the defined entity.\n * See {@link https://cloud.google.com/storage/docs/access-control Access\n * Control}.\n * @param {number} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {AddAclCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * const options = {\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.OWNER_ROLE\n * };\n *\n * myBucket.acl.add(options, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * // Here is how you would grant ownership permissions to a user on a\n * specific\n * // revision of a file.\n * //-\n * myFile.acl.add({\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.OWNER_ROLE,\n * generation: 1\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_add_file_owner\n * Example of adding an owner to a file:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_owner\n * Example of adding an owner to a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_default_owner\n * Example of adding a default owner to a bucket:\n */\n add(options, callback) {\n const query = {};\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.request({\n method: 'POST',\n uri: '',\n qs: query,\n json: {\n entity: options.entity,\n role: options.role.toUpperCase(),\n },\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n callback(null, this.makeAclObject_(resp), resp);\n });\n }\n /**\n * @typedef {array} RemoveAclResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback RemoveAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Delete access controls on a {@link Bucket} or {@link File}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/delete| BucketAccessControls: delete API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/delete| ObjectAccessControls: delete API Documentation}\n *\n * @param {object} options Configuration object.\n * @param {string} options.entity Whose permissions will be revoked.\n * @param {int} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {RemoveAclCallback} callback The callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * myBucket.acl.delete({\n * entity: 'user-useremail@example.com'\n * }, function(err, apiResponse) {});\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * //-\n * myFile.acl.delete({\n * entity: 'user-useremail@example.com',\n * generation: 1\n * }, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_owner\n * Example of removing an owner from a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_default_owner\n * Example of removing a default owner from a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_file_owner\n * Example of removing an owner from a bucket:\n */\n delete(options, callback) {\n const query = {};\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.request({\n method: 'DELETE',\n uri: '/' + encodeURIComponent(options.entity),\n qs: query,\n }, (err, resp) => {\n callback(err, resp);\n });\n }\n /**\n * @typedef {array} GetAclResponse\n * @property {object|object[]} 0 Single or array of Acl Objects.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object|object[]} acl Single or array of Acl Objects.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get access controls on a {@link Bucket} or {@link File}. If\n * an entity is omitted, you will receive an array of all applicable access\n * controls.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/get| BucketAccessControls: get API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/get| ObjectAccessControls: get API Documentation}\n *\n * @param {object|function} [options] Configuration options. If you want to\n * receive a list of all access controls, pass the callback function as\n * the only argument.\n * @param {string} [options.entity] Whose permissions will be fetched.\n * @param {number} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetAclCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * myBucket.acl.get({\n * entity: 'user-useremail@example.com'\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // Get all access controls.\n * //-\n * myBucket.acl.get(function(err, aclObjects, apiResponse) {\n * // aclObjects = [\n * // {\n * // entity: 'user-useremail@example.com',\n * // role: 'owner'\n * // }\n * // ]\n * });\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * //-\n * myFile.acl.get({\n * entity: 'user-useremail@example.com',\n * generation: 1\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.acl.get().then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_print_file_acl\n * Example of printing a file's ACL:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_file_acl_for_user\n * Example of printing a file's ACL for a specific user:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl\n * Example of printing a bucket's ACL:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl_for_user\n * Example of printing a bucket's ACL for a specific user:\n */\n get(optionsOrCallback, cb) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : null;\n const callback = typeof optionsOrCallback === 'function' ? optionsOrCallback : cb;\n let path = '';\n const query = {};\n if (options) {\n path = '/' + encodeURIComponent(options.entity);\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n }\n this.request({\n uri: path,\n qs: query,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n let results;\n if (resp.items) {\n results = arrify(resp.items).map(this.makeAclObject_);\n }\n else {\n results = this.makeAclObject_(resp);\n }\n callback(null, results, resp);\n });\n }\n /**\n * @typedef {array} UpdateAclResponse\n * @property {object} 0 The updated Acl Objects.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback UpdateAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object} acl The updated Acl Objects.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Update access controls on a {@link Bucket} or {@link File}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/update| BucketAccessControls: update API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/update| ObjectAccessControls: update API Documentation}\n *\n * @param {object} options Configuration options.\n * @param {string} options.entity Whose permissions will be updated.\n * @param {string} options.role Permissions allowed for the defined entity.\n * See {@link Storage.acl}.\n * @param {number} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {UpdateAclCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * const options = {\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.WRITER_ROLE\n * };\n *\n * myBucket.acl.update(options, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * //-\n * myFile.acl.update({\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.WRITER_ROLE,\n * generation: 1\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.update(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n update(options, callback) {\n const query = {};\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.request({\n method: 'PUT',\n uri: '/' + encodeURIComponent(options.entity),\n qs: query,\n json: {\n role: options.role.toUpperCase(),\n },\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n callback(null, this.makeAclObject_(resp), resp);\n });\n }\n /**\n * Transform API responses to a consistent object format.\n *\n * @private\n */\n makeAclObject_(accessControlObject) {\n const obj = {\n entity: accessControlObject.entity,\n role: accessControlObject.role,\n };\n if (accessControlObject.projectTeam) {\n obj.projectTeam = accessControlObject.projectTeam;\n }\n return obj;\n }\n /**\n * Patch requests up to the bucket's request object.\n *\n * @private\n *\n * @param {string} method Action.\n * @param {string} path Request path.\n * @param {*} query Request query object.\n * @param {*} body Request body contents.\n * @param {function} callback Callback function.\n */\n request(reqOpts, callback) {\n reqOpts.uri = this.pathPrefix + reqOpts.uri;\n this.request_(reqOpts, callback);\n }\n}\nexports.Acl = Acl;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Acl, {\n exclude: ['request'],\n});\n//# sourceMappingURL=acl.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bucket = exports.BucketExceptionMessages = exports.AvailableServiceObjectMethods = exports.BucketActionToHTTPMethod = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst paginator_1 = require(\"@google-cloud/paginator\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst extend = require(\"extend\");\nconst fs = require(\"fs\");\nconst mime = require(\"mime-types\");\nconst path = require(\"path\");\nconst pLimit = require(\"p-limit\");\nconst util_1 = require(\"util\");\nconst retry = require(\"async-retry\");\nconst util_2 = require(\"./util\");\nconst acl_1 = require(\"./acl\");\nconst file_1 = require(\"./file\");\nconst iam_1 = require(\"./iam\");\nconst notification_1 = require(\"./notification\");\nconst storage_1 = require(\"./storage\");\nconst signer_1 = require(\"./signer\");\nconst stream_1 = require(\"stream\");\nvar BucketActionToHTTPMethod;\n(function (BucketActionToHTTPMethod) {\n BucketActionToHTTPMethod[\"list\"] = \"GET\";\n})(BucketActionToHTTPMethod = exports.BucketActionToHTTPMethod || (exports.BucketActionToHTTPMethod = {}));\nvar AvailableServiceObjectMethods;\n(function (AvailableServiceObjectMethods) {\n AvailableServiceObjectMethods[AvailableServiceObjectMethods[\"setMetadata\"] = 0] = \"setMetadata\";\n AvailableServiceObjectMethods[AvailableServiceObjectMethods[\"delete\"] = 1] = \"delete\";\n})(AvailableServiceObjectMethods = exports.AvailableServiceObjectMethods || (exports.AvailableServiceObjectMethods = {}));\nvar BucketExceptionMessages;\n(function (BucketExceptionMessages) {\n BucketExceptionMessages[\"PROVIDE_SOURCE_FILE\"] = \"You must provide at least one source file.\";\n BucketExceptionMessages[\"DESTINATION_FILE_NOT_SPECIFIED\"] = \"A destination file must be specified.\";\n BucketExceptionMessages[\"CHANNEL_ID_REQUIRED\"] = \"An ID is required to create a channel.\";\n BucketExceptionMessages[\"CHANNEL_ADDRESS_REQUIRED\"] = \"An address is required to create a channel.\";\n BucketExceptionMessages[\"TOPIC_NAME_REQUIRED\"] = \"A valid topic name is required.\";\n BucketExceptionMessages[\"CONFIGURATION_OBJECT_PREFIX_REQUIRED\"] = \"A configuration object with a prefix is required.\";\n BucketExceptionMessages[\"SPECIFY_FILE_NAME\"] = \"A file name must be specified.\";\n BucketExceptionMessages[\"METAGENERATION_NOT_PROVIDED\"] = \"A metageneration must be provided.\";\n BucketExceptionMessages[\"SUPPLY_NOTIFICATION_ID\"] = \"You must supply a notification ID.\";\n})(BucketExceptionMessages = exports.BucketExceptionMessages || (exports.BucketExceptionMessages = {}));\n/**\n * The size of a file (in bytes) must be greater than this number to\n * automatically trigger a resumable upload.\n *\n * @const {number}\n * @private\n */\nconst RESUMABLE_THRESHOLD = 5000000;\n/**\n * Get and set IAM policies for your bucket.\n *\n * @name Bucket#iam\n * @mixes Iam\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/iam#short_title_iam_management| Cloud Storage IAM Management}\n * See {@link https://cloud.google.com/iam/docs/granting-changing-revoking-access| Granting, Changing, and Revoking Access}\n * See {@link https://cloud.google.com/iam/docs/understanding-roles| IAM Roles}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Get the IAM policy for your bucket.\n * //-\n * bucket.iam.getPolicy(function(err, policy) {\n * console.log(policy);\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.getPolicy().then(function(data) {\n * const policy = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/iam.js\n * region_tag:storage_view_bucket_iam_members\n * Example of retrieving a bucket's IAM policy:\n *\n * @example include:samples/iam.js\n * region_tag:storage_add_bucket_iam_member\n * Example of adding to a bucket's IAM policy:\n *\n * @example include:samples/iam.js\n * region_tag:storage_remove_bucket_iam_member\n * Example of removing from a bucket's IAM policy:\n */\n/**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * An ACL consists of one or more entries, where each entry grants permissions\n * to an entity. Permissions define the actions that can be performed against\n * an object or bucket (for example, `READ` or `WRITE`); the entity defines\n * who the permission applies to (for example, a specific user or group of\n * users).\n *\n * The `acl` object on a Bucket instance provides methods to get you a list of\n * the ACLs defined on your bucket, as well as set, update, and delete them.\n *\n * Buckets also have\n * {@link https://cloud.google.com/storage/docs/access-control/lists#default| default ACLs}\n * for all created files. Default ACLs specify permissions that all new\n * objects added to the bucket will inherit by default. You can add, delete,\n * get, and update entities and permissions for these as well with\n * {@link Bucket#acl.default}.\n *\n * See {@link http://goo.gl/6qBBPO| About Access Control Lists}\n * See {@link https://cloud.google.com/storage/docs/access-control/lists#default| Default ACLs}\n *\n * @name Bucket#acl\n * @mixes Acl\n * @property {Acl} default Cloud Storage Buckets have\n * {@link https://cloud.google.com/storage/docs/access-control/lists#default| default ACLs}\n * for all created files. You can add, delete, get, and update entities and\n * permissions for these as well. The method signatures and examples are all\n * the same, after only prefixing the method call with `default`.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Make a bucket's contents publicly readable.\n * //-\n * const myBucket = storage.bucket('my-bucket');\n *\n * const options = {\n * entity: 'allUsers',\n * role: storage.acl.READER_ROLE\n * };\n *\n * myBucket.acl.add(options, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl\n * Example of printing a bucket's ACL:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl_for_user\n * Example of printing a bucket's ACL for a specific user:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_owner\n * Example of adding an owner to a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_owner\n * Example of removing an owner from a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_default_owner\n * Example of adding a default owner to a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_default_owner\n * Example of removing a default owner from a bucket:\n */\n/**\n * The API-formatted resource description of the bucket.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name Bucket#metadata\n * @type {object}\n */\n/**\n * The bucket's name.\n * @name Bucket#name\n * @type {string}\n */\n/**\n * Get {@link File} objects for the files currently in the bucket as a\n * readable object stream.\n *\n * @method Bucket#getFilesStream\n * @param {GetFilesOptions} [query] Query object for listing files.\n * @returns {ReadableStream} A readable stream that emits {@link File} instances.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getFilesStream()\n * .on('error', console.error)\n * .on('data', function(file) {\n * // file is a File object.\n * })\n * .on('end', function() {\n * // All files retrieved.\n * });\n *\n * //-\n * // If you anticipate many results, you can end a stream early to prevent\n * // unnecessary processing and API requests.\n * //-\n * bucket.getFilesStream()\n * .on('data', function(file) {\n * this.end();\n * });\n *\n * //-\n * // If you're filtering files with a delimiter, you should use\n * // {@link Bucket#getFiles} and set `autoPaginate: false` in order to\n * // preserve the `apiResponse` argument.\n * //-\n * const prefixes = [];\n *\n * function callback(err, files, nextQuery, apiResponse) {\n * prefixes = prefixes.concat(apiResponse.prefixes);\n *\n * if (nextQuery) {\n * bucket.getFiles(nextQuery, callback);\n * } else {\n * // prefixes = The finished array of prefixes.\n * }\n * }\n *\n * bucket.getFiles({\n * autoPaginate: false,\n * delimiter: '/'\n * }, callback);\n * ```\n */\n/**\n * Create a Bucket object to interact with a Cloud Storage bucket.\n *\n * @class\n * @hideconstructor\n *\n * @param {Storage} storage A {@link Storage} instance.\n * @param {string} name The name of the bucket.\n * @param {object} [options] Configuration object.\n * @param {string} [options.userProject] User project.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * ```\n */\nclass Bucket extends nodejs_common_1.ServiceObject {\n constructor(storage, name, options) {\n var _a, _b, _c, _d;\n options = options || {};\n // Allow for \"gs://\"-style input, and strip any trailing slashes.\n name = name.replace(/^gs:\\/\\//, '').replace(/\\/+$/, '');\n const requestQueryObject = {};\n if ((_a = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) {\n requestQueryObject.ifGenerationMatch =\n options.preconditionOpts.ifGenerationMatch;\n }\n if ((_b = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationNotMatch) {\n requestQueryObject.ifGenerationNotMatch =\n options.preconditionOpts.ifGenerationNotMatch;\n }\n if ((_c = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _c === void 0 ? void 0 : _c.ifMetagenerationMatch) {\n requestQueryObject.ifMetagenerationMatch =\n options.preconditionOpts.ifMetagenerationMatch;\n }\n if ((_d = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _d === void 0 ? void 0 : _d.ifMetagenerationNotMatch) {\n requestQueryObject.ifMetagenerationNotMatch =\n options.preconditionOpts.ifMetagenerationNotMatch;\n }\n const userProject = options.userProject;\n if (typeof userProject === 'string') {\n requestQueryObject.userProject = userProject;\n }\n const methods = {\n /**\n * Create a bucket.\n *\n * @method Bucket#create\n * @param {CreateBucketRequest} [metadata] Metadata to set for the bucket.\n * @param {CreateBucketCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * bucket.create(function(err, bucket, apiResponse) {\n * if (!err) {\n * // The bucket was created successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.create().then(function(data) {\n * const bucket = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n create: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} DeleteBucketOptions Configuration options.\n * @property {boolean} [ignoreNotFound = false] Ignore an error if\n * the bucket does not exist.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} DeleteBucketResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteBucketCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Delete the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/delete| Buckets: delete API Documentation}\n *\n * @method Bucket#delete\n * @param {DeleteBucketOptions} [options] Configuration options.\n * @param {boolean} [options.ignoreNotFound = false] Ignore an error if\n * the bucket does not exist.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DeleteBucketCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * bucket.delete(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/buckets.js\n * region_tag:storage_delete_bucket\n * Another example:\n */\n delete: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} BucketExistsOptions Configuration options for Bucket#exists().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} BucketExistsResponse\n * @property {boolean} 0 Whether the {@link Bucket} exists.\n */\n /**\n * @callback BucketExistsCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} exists Whether the {@link Bucket} exists.\n */\n /**\n * Check if the bucket exists.\n *\n * @method Bucket#exists\n * @param {BucketExistsOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {BucketExistsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.exists(function(err, exists) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.exists().then(function(data) {\n * const exists = data[0];\n * });\n * ```\n */\n exists: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} [GetBucketOptions] Configuration options for Bucket#get()\n * @property {boolean} [autoCreate] Automatically create the object if\n * it does not exist. Default: `false`\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} GetBucketResponse\n * @property {Bucket} 0 The {@link Bucket}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetBucketCallback\n * @param {?Error} err Request error, if any.\n * @param {Bucket} bucket The {@link Bucket}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get a bucket if it exists.\n *\n * You may optionally use this to \"get or create\" an object by providing\n * an object with `autoCreate` set to `true`. Any extra configuration that\n * is normally required for the `create` method must be contained within\n * this object as well.\n *\n * @method Bucket#get\n * @param {GetBucketOptions} [options] Configuration options.\n * @param {boolean} [options.autoCreate] Automatically create the object if\n * it does not exist. Default: `false`\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetBucketCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.get(function(err, bucket, apiResponse) {\n * // `bucket.metadata` has been populated.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.get().then(function(data) {\n * const bucket = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n get: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} GetBucketMetadataResponse\n * @property {object} 0 The bucket metadata.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetBucketMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The bucket metadata.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} GetBucketMetadataOptions Configuration options for Bucket#getMetadata().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Get the bucket's metadata.\n *\n * To set metadata, see {@link Bucket#setMetadata}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/get| Buckets: get API Documentation}\n *\n * @method Bucket#getMetadata\n * @param {GetBucketMetadataOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getMetadata(function(err, metadata, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getMetadata().then(function(data) {\n * const metadata = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/requesterPays.js\n * region_tag:storage_get_requester_pays_status\n * Example of retrieving the requester pays status of a bucket:\n */\n getMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} SetBucketMetadataOptions Configuration options for Bucket#setMetadata().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} SetBucketMetadataResponse\n * @property {object} apiResponse The full API response.\n */\n /**\n * @callback SetBucketMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The bucket metadata.\n */\n /**\n * Set the bucket's metadata.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @method Bucket#setMetadata\n * @param {object} metadata The metadata you wish to set.\n * @param {SetBucketMetadataOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Set website metadata field on the bucket.\n * //-\n * const metadata = {\n * website: {\n * mainPageSuffix: 'http://example.com',\n * notFoundPage: 'http://example.com/404.html'\n * }\n * };\n *\n * bucket.setMetadata(metadata, function(err, apiResponse) {});\n *\n * //-\n * // Enable versioning for your bucket.\n * //-\n * bucket.setMetadata({\n * versioning: {\n * enabled: true\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Enable KMS encryption for objects within this bucket.\n * //-\n * bucket.setMetadata({\n * encryption: {\n * defaultKmsKeyName: 'projects/grape-spaceship-123/...'\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Set the default event-based hold value for new objects in this\n * // bucket.\n * //-\n * bucket.setMetadata({\n * defaultEventBasedHold: true\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Remove object lifecycle rules.\n * //-\n * bucket.setMetadata({\n * lifecycle: null\n * }, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setMetadata(metadata).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n };\n super({\n parent: storage,\n baseUrl: '/b',\n id: name,\n createMethod: storage.createBucket.bind(storage),\n methods,\n });\n this.name = name;\n this.storage = storage;\n this.userProject = options.userProject;\n this.acl = new acl_1.Acl({\n request: this.request.bind(this),\n pathPrefix: '/acl',\n });\n this.acl.default = new acl_1.Acl({\n request: this.request.bind(this),\n pathPrefix: '/defaultObjectAcl',\n });\n this.iam = new iam_1.Iam(this);\n this.getFilesStream = paginator_1.paginator.streamify('getFiles');\n this.instanceRetryValue = storage.retryOptions.autoRetry;\n this.instancePreconditionOpts = options === null || options === void 0 ? void 0 : options.preconditionOpts;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getFilesStream(query) {\n // placeholder body, overwritten in constructor\n return new stream_1.Readable();\n }\n /**\n * @typedef {object} AddLifecycleRuleOptions Configuration options for Bucket#addLifecycleRule().\n * @property {boolean} [append=true] The new rules will be appended to any\n * pre-existing rules.\n */\n /**\n *\n * @typedef {object} LifecycleRule The new lifecycle rule to be added to objects\n * in this bucket.\n * @property {string|object} action The action to be taken upon matching of\n * all the conditions 'delete' or 'setStorageClass'.\n * **Note**: For configuring a raw-formatted rule object to be passed as `action`\n * please refer to the [examples]{@link https://cloud.google.com/storage/docs/managing-lifecycles#configexamples}.\n * @property {object} condition Condition a bucket must meet before the\n * action occurs on the bucket. Refer to following supported [conditions]{@link https://cloud.google.com/storage/docs/lifecycle#conditions}.\n * @property {string} [storageClass] When using the `setStorageClass`\n * action, provide this option to dictate which storage class the object\n * should update to. Please see\n * [SetStorageClass option documentation]{@link https://cloud.google.com/storage/docs/lifecycle#setstorageclass} for supported transitions.\n */\n /**\n * Add an object lifecycle management rule to the bucket.\n *\n * By default, an Object Lifecycle Management rule provided to this method\n * will be included to the existing policy. To replace all existing rules,\n * supply the `options` argument, setting `append` to `false`.\n *\n * See {@link https://cloud.google.com/storage/docs/lifecycle| Object Lifecycle Management}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @param {LifecycleRule} rule The new lifecycle rule to be added to objects\n * in this bucket.\n * @param {string|object} rule.action The action to be taken upon matching of\n * all the conditions 'delete' or 'setStorageClass'.\n * **Note**: For configuring a raw-formatted rule object to be passed as `action`\n * please refer to the [examples]{@link https://cloud.google.com/storage/docs/managing-lifecycles#configexamples}.\n * @param {object} rule.condition Condition a bucket must meet before the\n * action occurson the bucket. Refer to followitn supported [conditions]{@link https://cloud.google.com/storage/docs/lifecycle#conditions}.\n * @param {string} [rule.storageClass] When using the `setStorageClass`\n * action, provide this option to dictate which storage class the object\n * should update to.\n * @param {AddLifecycleRuleOptions} [options] Configuration object.\n * @param {boolean} [options.append=true] Append the new rule to the existing\n * policy.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Automatically have an object deleted from this bucket once it is 3 years\n * // of age.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * age: 365 * 3 // Specified in days.\n * }\n * }, function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * const lifecycleRules = bucket.metadata.lifecycle.rule;\n *\n * // Iterate over the Object Lifecycle Management rules on this bucket.\n * lifecycleRules.forEach(lifecycleRule => {});\n * });\n *\n * //-\n * // By default, the rule you provide will be added to the existing policy.\n * // Optionally, you can disable this behavior to replace all of the\n * // pre-existing rules.\n * //-\n * const options = {\n * append: false\n * };\n *\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * age: 365 * 3 // Specified in days.\n * }\n * }, options, function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // All rules have been replaced with the new \"delete\" rule.\n *\n * // Iterate over the Object Lifecycle Management rules on this bucket.\n * lifecycleRules.forEach(lifecycleRule => {});\n * });\n *\n * //-\n * // For objects created before 2018, \"downgrade\" the storage class.\n * //-\n * bucket.addLifecycleRule({\n * action: 'setStorageClass',\n * storageClass: 'COLDLINE',\n * condition: {\n * createdBefore: new Date('2018')\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete objects created before 2016 which have the Coldline storage\n * // class.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * matchesStorageClass: [\n * 'COLDLINE'\n * ],\n * createdBefore: new Date('2016')\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete object that has a noncurrent timestamp that is at least 100 days.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * daysSinceNoncurrentTime: 100\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete object that has a noncurrent timestamp before 2020-01-01.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * noncurrentTimeBefore: new Date('2020-01-01')\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete object that has a customTime that is at least 100 days.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * daysSinceCustomTime: 100\n * }\n * }, function(err, apiResponse) ());\n *\n * //-\n * // Delete object that has a customTime before 2020-01-01.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * customTimeBefore: new Date('2020-01-01')\n * }\n * }, function(err, apiResponse) {});\n * ```\n */\n addLifecycleRule(rule, optionsOrCallback, callback) {\n let options;\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n options = options || {};\n const newLifecycleRules = arrify(rule).map(rule => {\n if (typeof rule.action === 'object') {\n // This is a raw-formatted rule object, the way the API expects.\n // Just pass it through as-is.\n return rule;\n }\n const apiFormattedRule = {};\n apiFormattedRule.condition = {};\n apiFormattedRule.action = {\n type: rule.action.charAt(0).toUpperCase() + rule.action.slice(1),\n };\n if (rule.storageClass) {\n apiFormattedRule.action.storageClass = rule.storageClass;\n }\n for (const condition in rule.condition) {\n if (rule.condition[condition] instanceof Date) {\n apiFormattedRule.condition[condition] = rule.condition[condition]\n .toISOString()\n .replace(/T.+$/, '');\n }\n else {\n apiFormattedRule.condition[condition] = rule.condition[condition];\n }\n }\n return apiFormattedRule;\n });\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n if (options.append === false) {\n this.setMetadata({ lifecycle: { rule: newLifecycleRules } }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n return;\n }\n // The default behavior appends the previously-defined lifecycle rules with\n // the new ones just passed in by the user.\n this.getMetadata((err, metadata) => {\n if (err) {\n callback(err);\n return;\n }\n const currentLifecycleRules = arrify(metadata.lifecycle && metadata.lifecycle.rule);\n this.setMetadata({\n lifecycle: {\n rule: currentLifecycleRules.concat(newLifecycleRules),\n },\n }, callback);\n });\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {object} CombineOptions\n * @property {string} [kmsKeyName] Resource name of the Cloud KMS key, of\n * the form\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`,\n * that will be used to encrypt the object. Overwrites the object\n * metadata's `kms_key_name` value, if any.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback CombineCallback\n * @param {?Error} err Request error, if any.\n * @param {File} newFile The new {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} CombineResponse\n * @property {File} 0 The new {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * Combine multiple files into one new file.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/compose| Objects: compose API Documentation}\n *\n * @throws {Error} if a non-array is provided as sources argument.\n * @throws {Error} if no sources are provided.\n * @throws {Error} if no destination is provided.\n *\n * @param {string[]|File[]} sources The source files that will be\n * combined.\n * @param {string|File} destination The file you would like the\n * source files combined into.\n * @param {CombineOptions} [options] Configuration options.\n * @param {string} [options.kmsKeyName] Resource name of the Cloud KMS key, of\n * the form\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`,\n * that will be used to encrypt the object. Overwrites the object\n * metadata's `kms_key_name` value, if any.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n \n * @param {CombineCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const logBucket = storage.bucket('log-bucket');\n *\n * const sources = [\n * logBucket.file('2013-logs.txt'),\n * logBucket.file('2014-logs.txt')\n * ];\n *\n * const allLogs = logBucket.file('all-logs.txt');\n *\n * logBucket.combine(sources, allLogs, function(err, newFile, apiResponse) {\n * // newFile === allLogs\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * logBucket.combine(sources, allLogs).then(function(data) {\n * const newFile = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n combine(sources, destination, optionsOrCallback, callback) {\n if (!Array.isArray(sources) || sources.length === 0) {\n throw new Error(BucketExceptionMessages.PROVIDE_SOURCE_FILE);\n }\n if (!destination) {\n throw new Error(BucketExceptionMessages.DESTINATION_FILE_NOT_SPECIFIED);\n }\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n const convertToFile = (file) => {\n if (file instanceof file_1.File) {\n return file;\n }\n return this.file(file);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sources = sources.map(convertToFile);\n const destinationFile = convertToFile(destination);\n callback = callback || nodejs_common_1.util.noop;\n if (!destinationFile.metadata.contentType) {\n const destinationContentType = mime.contentType(destinationFile.name);\n if (destinationContentType) {\n destinationFile.metadata.contentType = destinationContentType;\n }\n }\n let maxRetries = this.storage.retryOptions.maxRetries;\n sources.forEach(source => {\n var _a;\n if ((((_a = source === null || source === void 0 ? void 0 : source.instancePreconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n maxRetries = 0;\n }\n });\n Object.assign(options, this.instancePreconditionOpts, options);\n // Make the request from the destination File object.\n destinationFile.request({\n method: 'POST',\n uri: '/compose',\n maxRetries,\n json: {\n destination: {\n contentType: destinationFile.metadata.contentType,\n },\n sourceObjects: sources.map(source => {\n var _a, _b, _c, _d;\n const sourceObject = {\n name: source.name,\n };\n if (((_a = source === null || source === void 0 ? void 0 : source.metadata) === null || _a === void 0 ? void 0 : _a.generation) || ((_b = source === null || source === void 0 ? void 0 : source.instancePreconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch)) {\n sourceObject.generation =\n ((_c = source === null || source === void 0 ? void 0 : source.metadata) === null || _c === void 0 ? void 0 : _c.generation) || ((_d = source === null || source === void 0 ? void 0 : source.instancePreconditionOpts) === null || _d === void 0 ? void 0 : _d.ifGenerationMatch);\n }\n return sourceObject;\n }),\n },\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n callback(null, destinationFile, resp);\n });\n }\n /**\n * See a {@link https://cloud.google.com/storage/docs/json_api/v1/objects/watchAll| Objects: watchAll request body}.\n *\n * @typedef {object} CreateChannelConfig\n * @property {string} address The address where notifications are\n * delivered for this channel.\n * @property {string} [delimiter] Returns results in a directory-like mode.\n * @property {number} [maxResults] Maximum number of `items` plus `prefixes`\n * to return in a single page of responses.\n * @property {string} [pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @property {string} [prefix] Filter results to objects whose names begin\n * with this prefix.\n * @property {string} [projection=noAcl] Set of properties to return.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {boolean} [versions=false] If `true`, lists all versions of an object\n * as distinct results.\n */\n /**\n * @typedef {object} CreateChannelOptions\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} CreateChannelResponse\n * @property {Channel} 0 The new {@link Channel}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback CreateChannelCallback\n * @param {?Error} err Request error, if any.\n * @param {Channel} channel The new {@link Channel}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Create a channel that will be notified when objects in this bucket changes.\n *\n * @throws {Error} If an ID is not provided.\n * @throws {Error} If an address is not provided.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/watchAll| Objects: watchAll API Documentation}\n *\n * @param {string} id The ID of the channel to create.\n * @param {CreateChannelConfig} config Configuration for creating channel.\n * @param {string} config.address The address where notifications are\n * delivered for this channel.\n * @param {string} [config.delimiter] Returns results in a directory-like mode.\n * @param {number} [config.maxResults] Maximum number of `items` plus `prefixes`\n * to return in a single page of responses.\n * @param {string} [config.pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @param {string} [config.prefix] Filter results to objects whose names begin\n * with this prefix.\n * @param {string} [config.projection=noAcl] Set of properties to return.\n * @param {string} [config.userProject] The ID of the project which will be\n * billed for the request.\n * @param {boolean} [config.versions=false] If `true`, lists all versions of an object\n * as distinct results.\n * @param {CreateChannelOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {CreateChannelCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const id = 'new-channel-id';\n *\n * const config = {\n * address: 'https://...'\n * };\n *\n * bucket.createChannel(id, config, function(err, channel, apiResponse) {\n * if (!err) {\n * // Channel created successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.createChannel(id, config).then(function(data) {\n * const channel = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n createChannel(id, config, optionsOrCallback, callback) {\n if (typeof id !== 'string') {\n throw new Error(BucketExceptionMessages.CHANNEL_ID_REQUIRED);\n }\n if (typeof config.address !== 'string') {\n throw new Error(BucketExceptionMessages.CHANNEL_ADDRESS_REQUIRED);\n }\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n this.request({\n method: 'POST',\n uri: '/o/watch',\n json: Object.assign({\n id,\n type: 'web_hook',\n }, config),\n qs: options,\n }, (err, apiResponse) => {\n if (err) {\n callback(err, null, apiResponse);\n return;\n }\n const resourceId = apiResponse.resourceId;\n const channel = this.storage.channel(id, resourceId);\n channel.metadata = apiResponse;\n callback(null, channel, apiResponse);\n });\n }\n /**\n * Metadata to set for the Notification.\n *\n * @typedef {object} CreateNotificationOptions\n * @property {object} [customAttributes] An optional list of additional\n * attributes to attach to each Cloud PubSub message published for this\n * notification subscription.\n * @property {string[]} [eventTypes] If present, only send notifications about\n * listed event types. If empty, sent notifications for all event types.\n * @property {string} [objectNamePrefix] If present, only apply this\n * notification configuration to object names that begin with this prefix.\n * @property {string} [payloadFormat] The desired content of the Payload.\n * Defaults to `JSON_API_V1`.\n *\n * Acceptable values are:\n * - `JSON_API_V1`\n *\n * - `NONE`\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback CreateNotificationCallback\n * @param {?Error} err Request error, if any.\n * @param {Notification} notification The new {@link Notification}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} CreateNotificationResponse\n * @property {Notification} 0 The new {@link Notification}.\n * @property {object} 1 The full API response.\n */\n /**\n * Creates a notification subscription for the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/insert| Notifications: insert}\n *\n * @param {Topic|string} topic The Cloud PubSub topic to which this\n * subscription publishes. If the project ID is omitted, the current\n * project ID will be used.\n *\n * Acceptable formats are:\n * - `projects/grape-spaceship-123/topics/my-topic`\n *\n * - `my-topic`\n * @param {CreateNotificationOptions} [options] Metadata to set for the\n * notification.\n * @param {object} [options.customAttributes] An optional list of additional\n * attributes to attach to each Cloud PubSub message published for this\n * notification subscription.\n * @param {string[]} [options.eventTypes] If present, only send notifications about\n * listed event types. If empty, sent notifications for all event types.\n * @param {string} [options.objectNamePrefix] If present, only apply this\n * notification configuration to object names that begin with this prefix.\n * @param {string} [options.payloadFormat] The desired content of the Payload.\n * Defaults to `JSON_API_V1`.\n *\n * Acceptable values are:\n * - `JSON_API_V1`\n *\n * - `NONE`\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {CreateNotificationCallback} [callback] Callback function.\n * @returns {Promise}\n * @throws {Error} If a valid topic is not provided.\n * @see Notification#create\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const callback = function(err, notification, apiResponse) {\n * if (!err) {\n * // The notification was created successfully.\n * }\n * };\n *\n * myBucket.createNotification('my-topic', callback);\n *\n * //-\n * // Configure the nofiication by providing Notification metadata.\n * //-\n * const metadata = {\n * objectNamePrefix: 'prefix-'\n * };\n *\n * myBucket.createNotification('my-topic', metadata, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.createNotification('my-topic').then(function(data) {\n * const notification = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/createNotification.js\n * region_tag:storage_create_bucket_notifications\n * Another example:\n */\n createNotification(topic, optionsOrCallback, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n const topicIsObject = topic !== null && typeof topic === 'object';\n if (topicIsObject && nodejs_common_1.util.isCustomType(topic, 'pubsub/topic')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n topic = topic.name;\n }\n if (typeof topic !== 'string') {\n throw new Error(BucketExceptionMessages.TOPIC_NAME_REQUIRED);\n }\n const body = Object.assign({ topic }, options);\n if (body.topic.indexOf('projects') !== 0) {\n body.topic = 'projects/{{projectId}}/topics/' + body.topic;\n }\n body.topic = '//pubsub.googleapis.com/' + body.topic;\n if (!body.payloadFormat) {\n body.payloadFormat = 'JSON_API_V1';\n }\n const query = {};\n if (body.userProject) {\n query.userProject = body.userProject;\n delete body.userProject;\n }\n this.request({\n method: 'POST',\n uri: '/notificationConfigs',\n json: util_2.convertObjKeysToSnakeCase(body),\n qs: query,\n maxRetries: 0,\n }, (err, apiResponse) => {\n if (err) {\n callback(err, null, apiResponse);\n return;\n }\n const notification = this.notification(apiResponse.id);\n notification.metadata = apiResponse;\n callback(null, notification, apiResponse);\n });\n }\n /**\n * @typedef {object} DeleteFilesOptions Query object. See {@link Bucket#getFiles}\n * for all of the supported properties.\n * @property {boolean} [force] Suppress errors until all files have been\n * processed.\n */\n /**\n * @callback DeleteFilesCallback\n * @param {?Error|?Error[]} err Request error, if any, or array of errors from\n * files that were not able to be deleted.\n * @param {object} [apiResponse] The full API response.\n */\n /**\n * Iterate over the bucket's files, calling `file.delete()` on each.\n *\n * This is not an atomic request. A delete attempt will be\n * made for each file individually. Any one can fail, in which case only a\n * portion of the files you intended to be deleted would have.\n *\n * Operations are performed in parallel, up to 10 at once. The first error\n * breaks the loop and will execute the provided callback with it. Specify\n * `{ force: true }` to suppress the errors until all files have had a chance\n * to be processed.\n *\n * The `query` object passed as the first argument will also be passed to\n * {@link Bucket#getFiles}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/delete| Objects: delete API Documentation}\n *\n * @param {DeleteFilesOptions} [query] Query object. See {@link Bucket#getFiles}\n * @param {boolean} [query.force] Suppress errors until all files have been\n * processed.\n * @param {DeleteFilesCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Delete all of the files in the bucket.\n * //-\n * bucket.deleteFiles(function(err) {});\n *\n * //-\n * // By default, if a file cannot be deleted, this method will stop deleting\n * // files from your bucket. You can override this setting with `force:\n * // true`.\n * //-\n * bucket.deleteFiles({\n * force: true\n * }, function(errors) {\n * // `errors`:\n * // Array of errors if any occurred, otherwise null.\n * });\n *\n * //-\n * // The first argument to this method acts as a query to\n * // {@link Bucket#getFiles}. As an example, you can delete files\n * // which match a prefix.\n * //-\n * bucket.deleteFiles({\n * prefix: 'images/'\n * }, function(err) {\n * if (!err) {\n * // All files in the `images` directory have been deleted.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.deleteFiles().then(function() {});\n * ```\n */\n deleteFiles(queryOrCallback, callback) {\n let query = {};\n if (typeof queryOrCallback === 'function') {\n callback = queryOrCallback;\n }\n else if (queryOrCallback) {\n query = queryOrCallback;\n }\n const MAX_PARALLEL_LIMIT = 10;\n const errors = [];\n const deleteFile = (file) => {\n return file.delete(query).catch(err => {\n if (!query.force) {\n throw err;\n }\n errors.push(err);\n });\n };\n this.getFiles(query)\n .then(([files]) => {\n const limit = pLimit(MAX_PARALLEL_LIMIT);\n const promises = files.map(file => {\n return limit(() => deleteFile(file));\n });\n return Promise.all(promises);\n })\n .then(() => callback(errors.length > 0 ? errors : null), callback);\n }\n /**\n * @typedef {array} DeleteLabelsResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteLabelsCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata Bucket's metadata.\n */\n /**\n * Delete one or more labels from this bucket.\n *\n * @param {string|string[]} [labels] The labels to delete. If no labels are\n * provided, all of the labels are removed.\n * @param {DeleteLabelsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Delete all of the labels from this bucket.\n * //-\n * bucket.deleteLabels(function(err, apiResponse) {});\n *\n * //-\n * // Delete a single label.\n * //-\n * bucket.deleteLabels('labelone', function(err, apiResponse) {});\n *\n * //-\n * // Delete a specific set of labels.\n * //-\n * bucket.deleteLabels([\n * 'labelone',\n * 'labeltwo'\n * ], function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.deleteLabels().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n deleteLabels(labelsOrCallback, callback) {\n let labels = new Array();\n if (typeof labelsOrCallback === 'function') {\n callback = labelsOrCallback;\n }\n else if (labelsOrCallback) {\n labels = arrify(labelsOrCallback);\n }\n const deleteLabels = (labels) => {\n const nullLabelMap = labels.reduce((nullLabelMap, labelKey) => {\n nullLabelMap[labelKey] = null;\n return nullLabelMap;\n }, {});\n this.setLabels(nullLabelMap, callback);\n };\n if (labels.length === 0) {\n this.getLabels((err, labels) => {\n if (err) {\n callback(err);\n return;\n }\n deleteLabels(Object.keys(labels));\n });\n }\n else {\n deleteLabels(labels);\n }\n }\n /**\n * @typedef {array} DisableRequesterPaysResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DisableRequesterPaysCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n *
\n * Early Access Testers Only\n *

\n * This feature is not yet widely-available.\n *

\n *
\n *\n * Disable `requesterPays` functionality from this bucket.\n *\n * @param {DisableRequesterPaysCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.disableRequesterPays(function(err, apiResponse) {\n * if (!err) {\n * // requesterPays functionality disabled successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.disableRequesterPays().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/requesterPays.js\n * region_tag:storage_disable_requester_pays\n * Example of disabling requester pays:\n */\n disableRequesterPays(callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n billing: {\n requesterPays: false,\n },\n }, callback || nodejs_common_1.util.noop);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Configuration object for enabling logging.\n *\n * @typedef {object} EnableLoggingOptions\n * @property {string|Bucket} [bucket] The bucket for the log entries. By\n * default, the current bucket is used.\n * @property {string} prefix A unique prefix for log object names.\n */\n /**\n * Enable logging functionality for this bucket. This will make two API\n * requests, first to grant Cloud Storage WRITE permission to the bucket, then\n * to set the appropriate configuration on the Bucket's metadata.\n *\n * @param {EnableLoggingOptions} config Configuration options.\n * @param {string|Bucket} [config.bucket] The bucket for the log entries. By\n * default, the current bucket is used.\n * @param {string} config.prefix A unique prefix for log object names.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * const config = {\n * prefix: 'log'\n * };\n *\n * bucket.enableLogging(config, function(err, apiResponse) {\n * if (!err) {\n * // Logging functionality enabled successfully.\n * }\n * });\n *\n * ```\n * @example\n * Optionally, provide a destination bucket.\n * ```\n * const config = {\n * prefix: 'log',\n * bucket: 'destination-bucket'\n * };\n *\n * bucket.enableLogging(config, function(err, apiResponse) {});\n * ```\n *\n * @example\n * If the callback is omitted, we'll return a Promise.\n * ```\n * bucket.enableLogging(config).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n enableLogging(config, callback) {\n if (!config ||\n typeof config === 'function' ||\n typeof config.prefix === 'undefined') {\n throw new Error(BucketExceptionMessages.CONFIGURATION_OBJECT_PREFIX_REQUIRED);\n }\n const logBucket = config.bucket\n ? config.bucket.id || config.bucket\n : this.id;\n (async () => {\n let setMetadataResponse;\n try {\n const [policy] = await this.iam.getPolicy();\n policy.bindings.push({\n members: ['group:cloud-storage-analytics@google.com'],\n role: 'roles/storage.objectCreator',\n });\n await this.iam.setPolicy(policy);\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n [setMetadataResponse] = await this.setMetadata({\n logging: {\n logBucket,\n logObjectPrefix: config.prefix,\n },\n });\n }\n catch (e) {\n callback(e);\n return;\n }\n finally {\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n callback(null, setMetadataResponse);\n })();\n }\n /**\n * @typedef {array} EnableRequesterPaysResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback EnableRequesterPaysCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n *
\n * Early Access Testers Only\n *

\n * This feature is not yet widely-available.\n *

\n *
\n *\n * Enable `requesterPays` functionality for this bucket. This enables you, the\n * bucket owner, to have the requesting user assume the charges for the access\n * to your bucket and its contents.\n *\n * @param {EnableRequesterPaysCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.enableRequesterPays(function(err, apiResponse) {\n * if (!err) {\n * // requesterPays functionality enabled successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.enableRequesterPays().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/requesterPays.js\n * region_tag:storage_enable_requester_pays\n * Example of enabling requester pays:\n */\n enableRequesterPays(callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n billing: {\n requesterPays: true,\n },\n }, callback || nodejs_common_1.util.noop);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Create a {@link File} object. See {@link File} to see how to handle\n * the different use cases you may have.\n *\n * @param {string} name The name of the file in this bucket.\n * @param {FileOptions} [options] Configuration options.\n * @param {string|number} [options.generation] Only use a specific revision of\n * this file.\n * @param {string} [options.encryptionKey] A custom encryption key. See\n * {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}.\n * @param {string} [options.kmsKeyName] The name of the Cloud KMS key that will\n * be used to encrypt the object. Must be in the format:\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`.\n * KMS key ring must use the same location as the bucket.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for all requests made from File object.\n * @returns {File}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const file = bucket.file('my-existing-file.png');\n * ```\n */\n file(name, options) {\n if (!name) {\n throw Error(BucketExceptionMessages.SPECIFY_FILE_NAME);\n }\n return new file_1.File(this, name, options);\n }\n /**\n * @typedef {array} GetFilesResponse\n * @property {File[]} 0 Array of {@link File} instances.\n * @param {object} nextQuery 1 A query object to receive more results.\n * @param {object} apiResponse 2 The full API response.\n */\n /**\n * @callback GetFilesCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files Array of {@link File} instances.\n * @param {object} nextQuery A query object to receive more results.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Query object for listing files.\n *\n * @typedef {object} GetFilesOptions\n * @property {boolean} [autoPaginate=true] Have pagination handled\n * automatically.\n * @property {string} [delimiter] Results will contain only objects whose\n * names, aside from the prefix, do not contain delimiter. Objects whose\n * names, aside from the prefix, contain delimiter will have their name\n * truncated after the delimiter, returned in `apiResponse.prefixes`.\n * Duplicate prefixes are omitted.\n * @deprecated @property {string} [directory] Filter results based on a directory name, or\n * more technically, a \"prefix\". Assumes delimeter to be '/'. Deprecated. Use prefix instead.\n * @property {string} [endOffset] Filter results to objects whose names are\n * lexicographically before endOffset. If startOffset is also set, the objects\n * listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @property {boolean} [includeTrailingDelimiter] If true, objects that end in\n * exactly one instance of delimiter have their metadata included in items[]\n * in addition to the relevant part of the object name appearing in prefixes[].\n * @property {string} [prefix] Filter results to objects whose names begin\n * with this prefix.\n * @property {number} [maxApiCalls] Maximum number of API calls to make.\n * @property {number} [maxResults] Maximum number of items plus prefixes to\n * return per call.\n * Note: By default will handle pagination automatically\n * if more than 1 page worth of results are requested per call.\n * When `autoPaginate` is set to `false` the smaller of `maxResults`\n * or 1 page of results will be returned per call.\n * @property {string} [pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @property {string} [startOffset] Filter results to objects whose names are\n * lexicographically equal to or after startOffset. If endOffset is also set,\n * the objects listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {boolean} [versions] If true, returns File objects scoped to\n * their versions.\n */\n /**\n * Get {@link File} objects for the files currently in the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/list| Objects: list API Documentation}\n *\n * @param {GetFilesOptions} [query] Query object for listing files.\n * @param {boolean} [query.autoPaginate=true] Have pagination handled\n * automatically.\n * @param {string} [query.delimiter] Results will contain only objects whose\n * names, aside from the prefix, do not contain delimiter. Objects whose\n * names, aside from the prefix, contain delimiter will have their name\n * truncated after the delimiter, returned in `apiResponse.prefixes`.\n * Duplicate prefixes are omitted.\n * @deprecated @param {string} [query.directory] Filter results based on a directory name, or\n * more technically, a \"prefix\". Assumes delimeter to be '/'. Deprecated. Use query.prefix instead.\n * @param {string} [query.endOffset] Filter results to objects whose names are\n * lexicographically before endOffset. If startOffset is also set, the objects\n * listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @param {boolean} [query.includeTrailingDelimiter] If true, objects that end in\n * exactly one instance of delimiter have their metadata included in items[]\n * in addition to the relevant part of the object name appearing in prefixes[].\n * @param {string} [query.prefix] Filter results to objects whose names begin\n * with this prefix.\n * @param {number} [query.maxApiCalls] Maximum number of API calls to make.\n * @param {number} [query.maxResults] Maximum number of items plus prefixes to\n * return per call.\n * Note: By default will handle pagination automatically\n * if more than 1 page worth of results are requested per call.\n * When `autoPaginate` is set to `false` the smaller of `maxResults`\n * or 1 page of results will be returned per call.\n * @param {string} [query.pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @param {string} [query.startOffset] Filter results to objects whose names are\n * lexicographically equal to or after startOffset. If endOffset is also set,\n * the objects listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @param {string} [query.userProject] The ID of the project which will be\n * billed for the request.\n * @param {boolean} [query.versions] If true, returns File objects scoped to\n * their versions.\n * @param {GetFilesCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getFiles(function(err, files) {\n * if (!err) {\n * // files is an array of File objects.\n * }\n * });\n *\n * //-\n * // If your bucket has versioning enabled, you can get all of your files\n * // scoped to their generation.\n * //-\n * bucket.getFiles({\n * versions: true\n * }, function(err, files) {\n * // Each file is scoped to its generation.\n * });\n *\n * //-\n * // To control how many API requests are made and page through the results\n * // manually, set `autoPaginate` to `false`.\n * //-\n * const callback = function(err, files, nextQuery, apiResponse) {\n * if (nextQuery) {\n * // More results exist.\n * bucket.getFiles(nextQuery, callback);\n * }\n *\n * // The `metadata` property is populated for you with the metadata at the\n * // time of fetching.\n * files[0].metadata;\n *\n * // However, in cases where you are concerned the metadata could have\n * // changed, use the `getMetadata` method.\n * files[0].getMetadata(function(err, metadata) {});\n * };\n *\n * bucket.getFiles({\n * autoPaginate: false\n * }, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getFiles().then(function(data) {\n * const files = data[0];\n * });\n *\n * ```\n * @example\n *
Simulating a File System

With `autoPaginate: false`, it's possible to iterate over files which incorporate a common structure using a delimiter.

Consider the following remote objects:

  1. \"a\"
  2. \"a/b/c/d\"
  3. \"b/d/e\"

Using a delimiter of `/` will return a single file, \"a\".

`apiResponse.prefixes` will return the \"sub-directories\" that were found:

  1. \"a/\"
  2. \"b/\"
\n * ```\n * bucket.getFiles({\n * autoPaginate: false,\n * delimiter: '/'\n * }, function(err, files, nextQuery, apiResponse) {\n * // files = [\n * // {File} // File object for file \"a\"\n * // ]\n *\n * // apiResponse.prefixes = [\n * // 'a/',\n * // 'b/'\n * // ]\n * });\n * ```\n *\n * @example\n * Using prefixes, it's now possible to simulate a file system with follow-up requests.\n * ```\n * bucket.getFiles({\n * autoPaginate: false,\n * delimiter: '/',\n * prefix: 'a/'\n * }, function(err, files, nextQuery, apiResponse) {\n * // No files found within \"directory\" a.\n * // files = []\n *\n * // However, a \"sub-directory\" was found.\n * // This prefix can be used to continue traversing the \"file system\".\n * // apiResponse.prefixes = [\n * // 'a/b/'\n * // ]\n * });\n * ```\n *\n * @example include:samples/files.js\n * region_tag:storage_list_files\n * Another example:\n *\n * @example include:samples/files.js\n * region_tag:storage_list_files_with_prefix\n * Example of listing files, filtered by a prefix:\n */\n getFiles(queryOrCallback, callback) {\n let query = typeof queryOrCallback === 'object' ? queryOrCallback : {};\n if (!callback) {\n callback = queryOrCallback;\n }\n query = Object.assign({}, query);\n if (query.directory) {\n query.prefix = `${query.directory}/`.replace(/\\/*$/, '/');\n delete query.directory;\n }\n this.request({\n uri: '/o',\n qs: query,\n }, (err, resp) => {\n if (err) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback(err, null, null, resp);\n return;\n }\n const files = arrify(resp.items).map((file) => {\n const options = {};\n if (query.versions) {\n options.generation = file.generation;\n }\n if (file.kmsKeyName) {\n options.kmsKeyName = file.kmsKeyName;\n }\n const fileInstance = this.file(file.name, options);\n fileInstance.metadata = file;\n return fileInstance;\n });\n let nextQuery = null;\n if (resp.nextPageToken) {\n nextQuery = Object.assign({}, query, {\n pageToken: resp.nextPageToken,\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback(null, files, nextQuery, resp);\n });\n }\n /**\n * @typedef {object} GetLabelsOptions Configuration options for Bucket#getLabels().\n * @param {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} GetLabelsResponse\n * @property {object} 0 Object of labels currently set on this bucket.\n */\n /**\n * @callback GetLabelsCallback\n * @param {?Error} err Request error, if any.\n * @param {object} labels Object of labels currently set on this bucket.\n */\n /**\n * Get the labels currently set on this bucket.\n *\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetLabelsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getLabels(function(err, labels) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // labels = {\n * // label: 'labelValue',\n * // ...\n * // }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getLabels().then(function(data) {\n * const labels = data[0];\n * });\n * ```\n */\n getLabels(optionsOrCallback, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n this.getMetadata(options, (err, metadata) => {\n if (err) {\n callback(err, null);\n return;\n }\n callback(null, metadata.labels || {});\n });\n }\n /**\n * @typedef {object} GetNotificationsOptions Configuration options for Bucket#getNotification().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback GetNotificationsCallback\n * @param {?Error} err Request error, if any.\n * @param {Notification[]} notifications Array of {@link Notification}\n * instances.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} GetNotificationsResponse\n * @property {Notification[]} 0 Array of {@link Notification} instances.\n * @property {object} 1 The full API response.\n */\n /**\n * Retrieves a list of notification subscriptions for a given bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/list| Notifications: list}\n *\n * @param {GetNotificationsOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetNotificationsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * bucket.getNotifications(function(err, notifications, apiResponse) {\n * if (!err) {\n * // notifications is an array of Notification objects.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getNotifications().then(function(data) {\n * const notifications = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/listNotifications.js\n * region_tag:storage_list_bucket_notifications\n * Another example:\n */\n getNotifications(optionsOrCallback, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n this.request({\n uri: '/notificationConfigs',\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n const notifications = arrify(resp.items).map((notification) => {\n const notificationInstance = this.notification(notification.id);\n notificationInstance.metadata = notification;\n return notificationInstance;\n });\n callback(null, notifications, resp);\n });\n }\n /**\n * @typedef {array} GetSignedUrlResponse\n * @property {object} 0 The signed URL.\n */\n /**\n * @callback GetSignedUrlCallback\n * @param {?Error} err Request error, if any.\n * @param {object} url The signed URL.\n */\n /**\n * @typedef {object} GetBucketSignedUrlConfig\n * @property {string} action Currently only supports \"list\" (HTTP: GET).\n * @property {*} expires A timestamp when this link will expire. Any value\n * given is passed to `new Date()`.\n * Note: 'v4' supports maximum duration of 7 days (604800 seconds) from now.\n * @property {string} [version='v2'] The signing version to use, either\n * 'v2' or 'v4'.\n * @property {boolean} [virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @property {string} [cname] The cname for this bucket, i.e.,\n * \"https://cdn.example.com\".\n * See [reference]{@link https://cloud.google.com/storage/docs/access-control/signed-urls#example}\n * @property {object} [extensionHeaders] If these headers are used, the\n * server will check to make sure that the client provides matching\n * values. See {@link https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headers| Canonical extension headers}\n * for the requirements of this feature, most notably:\n * - The header name must be prefixed with `x-goog-`\n * - The header name must be all lowercase\n *\n * Note: Multi-valued header passed as an array in the extensionHeaders\n * object is converted into a string, delimited by `,` with\n * no space. Requests made using the signed URL will need to\n * delimit multi-valued headers using a single `,` as well, or\n * else the server will report a mismatched signature.\n * @property {object} [queryParams] Additional query parameters to include\n * in the signed URL.\n */\n /**\n * Get a signed URL to allow limited time access to a bucket.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed URL. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/signed-urls| Signed URLs Reference}\n *\n * @throws {Error} if an expiration timestamp from the past is given.\n *\n * @param {GetBucketSignedUrlConfig} config Configuration object.\n * @param {string} config.action Currently only supports \"list\" (HTTP: GET).\n * @param {*} config.expires A timestamp when this link will expire. Any value\n * given is passed to `new Date()`.\n * Note: 'v4' supports maximum duration of 7 days (604800 seconds) from now.\n * @param {string} [config.version='v2'] The signing version to use, either\n * 'v2' or 'v4'.\n * @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @param {string} [config.cname] The cname for this bucket, i.e.,\n * \"https://cdn.example.com\".\n * See [reference]{@link https://cloud.google.com/storage/docs/access-control/signed-urls#example}\n * @param {object} [config.extensionHeaders] If these headers are used, the\n * server will check to make sure that the client provides matching\n * values. See {@link https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headers| Canonical extension headers}\n * for the requirements of this feature, most notably:\n * - The header name must be prefixed with `x-goog-`\n * - The header name must be all lowercase\n *\n * Note: Multi-valued header passed as an array in the extensionHeaders\n * object is converted into a string, delimited by `,` with\n * no space. Requests made using the signed URL will need to\n * delimit multi-valued headers using a single `,` as well, or\n * else the server will report a mismatched signature.\n * @property {object} [config.queryParams] Additional query parameters to include\n * in the signed URL.\n * @param {GetSignedUrlCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * //-\n * // Generate a URL that allows temporary access to list files in a bucket.\n * //-\n * const request = require('request');\n *\n * const config = {\n * action: 'list',\n * expires: '03-17-2025'\n * };\n *\n * bucket.getSignedUrl(config, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The bucket is now available to be listed from this URL.\n * request(url, function(err, resp) {\n * // resp.statusCode = 200\n * });\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getSignedUrl(config).then(function(data) {\n * const url = data[0];\n * });\n * ```\n */\n getSignedUrl(cfg, callback) {\n const method = BucketActionToHTTPMethod[cfg.action];\n if (!method) {\n throw new Error(storage_1.ExceptionMessages.INVALID_ACTION);\n }\n const signConfig = {\n method,\n expires: cfg.expires,\n version: cfg.version,\n cname: cfg.cname,\n extensionHeaders: cfg.extensionHeaders || {},\n queryParams: cfg.queryParams || {},\n };\n if (!this.signer) {\n this.signer = new signer_1.URLSigner(this.storage.authClient, this);\n }\n this.signer\n .getSignedUrl(signConfig)\n .then(signedUrl => callback(null, signedUrl), callback);\n }\n /**\n * @callback BucketLockCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Lock a previously-defined retention policy. This will prevent changes to\n * the policy.\n *\n * @throws {Error} if a metageneration is not provided.\n *\n * @param {number|string} metageneration The bucket's metageneration. This is\n * accesssible from calling {@link File#getMetadata}.\n * @param {BucketLockCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * const metageneration = 2;\n *\n * bucket.lock(metageneration, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.lock(metageneration).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n lock(metageneration, callback) {\n const metatype = typeof metageneration;\n if (metatype !== 'number' && metatype !== 'string') {\n throw new Error(BucketExceptionMessages.METAGENERATION_NOT_PROVIDED);\n }\n this.request({\n method: 'POST',\n uri: '/lockRetentionPolicy',\n qs: {\n ifMetagenerationMatch: metageneration,\n },\n }, callback);\n }\n /**\n * @typedef {array} MakeBucketPrivateResponse\n * @property {File[]} 0 List of files made private.\n */\n /**\n * @callback MakeBucketPrivateCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files List of files made private.\n */\n /**\n * @typedef {object} MakeBucketPrivateOptions\n * @property {boolean} [includeFiles=false] Make each file in the bucket\n * private.\n * @property {Metadata} [metadata] Define custom metadata properties to define\n * along with the operation.\n * @property {boolean} [force] Queue errors occurred while making files\n * private until all files have been processed.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Make the bucket listing private.\n *\n * You may also choose to make the contents of the bucket private by\n * specifying `includeFiles: true`. This will automatically run\n * {@link File#makePrivate} for every file in the bucket.\n *\n * When specifying `includeFiles: true`, use `force: true` to delay execution\n * of your callback until all files have been processed. By default, the\n * callback is executed after the first error. Use `force` to queue such\n * errors until all files have been processed, after which they will be\n * returned as an array as the first argument to your callback.\n *\n * NOTE: This may cause the process to be long-running and use a high number\n * of requests. Use with caution.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @param {MakeBucketPrivateOptions} [options] Configuration options.\n * @param {boolean} [options.includeFiles=false] Make each file in the bucket\n * private.\n * @param {Metadata} [options.metadata] Define custom metadata properties to define\n * along with the operation.\n * @param {boolean} [options.force] Queue errors occurred while making files\n * private until all files have been processed.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {MakeBucketPrivateCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Make the bucket private.\n * //-\n * bucket.makePrivate(function(err) {});\n *\n * //-\n * // Make the bucket and its contents private.\n * //-\n * const opts = {\n * includeFiles: true\n * };\n *\n * bucket.makePrivate(opts, function(err, files) {\n * // `err`:\n * // The first error to occur, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made private in the bucket.\n * });\n *\n * //-\n * // Make the bucket and its contents private, using force to suppress errors\n * // until all files have been processed.\n * //-\n * const opts = {\n * includeFiles: true,\n * force: true\n * };\n *\n * bucket.makePrivate(opts, function(errors, files) {\n * // `errors`:\n * // Array of errors if any occurred, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made private in the bucket.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.makePrivate(opts).then(function(data) {\n * const files = data[0];\n * });\n * ```\n */\n makePrivate(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n options.private = true;\n const query = {\n predefinedAcl: 'projectPrivate',\n };\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n // You aren't allowed to set both predefinedAcl & acl properties on a bucket\n // so acl must explicitly be nullified.\n const metadata = extend({}, options.metadata, { acl: null });\n this.setMetadata(metadata, query)\n .then(() => {\n if (options.includeFiles) {\n return util_1.promisify(this.makeAllFilesPublicPrivate_).call(this, options);\n }\n return [];\n })\n .then(files => callback(null, files), callback)\n .finally(() => {\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n });\n }\n /**\n * @typedef {object} MakeBucketPublicOptions\n * @property {boolean} [includeFiles=false] Make each file in the bucket\n * private.\n * @property {boolean} [force] Queue errors occurred while making files\n * private until all files have been processed.\n */\n /**\n * @callback MakeBucketPublicCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files List of files made public.\n */\n /**\n * @typedef {array} MakeBucketPublicResponse\n * @property {File[]} 0 List of files made public.\n */\n /**\n * Make the bucket publicly readable.\n *\n * You may also choose to make the contents of the bucket publicly readable by\n * specifying `includeFiles: true`. This will automatically run\n * {@link File#makePublic} for every file in the bucket.\n *\n * When specifying `includeFiles: true`, use `force: true` to delay execution\n * of your callback until all files have been processed. By default, the\n * callback is executed after the first error. Use `force` to queue such\n * errors until all files have been processed, after which they will be\n * returned as an array as the first argument to your callback.\n *\n * NOTE: This may cause the process to be long-running and use a high number\n * of requests. Use with caution.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @param {MakeBucketPublicOptions} [options] Configuration options.\n * @param {boolean} [options.includeFiles=false] Make each file in the bucket\n * private.\n * @param {boolean} [options.force] Queue errors occurred while making files\n * private until all files have been processed.\n * @param {MakeBucketPublicCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Make the bucket publicly readable.\n * //-\n * bucket.makePublic(function(err) {});\n *\n * //-\n * // Make the bucket and its contents publicly readable.\n * //-\n * const opts = {\n * includeFiles: true\n * };\n *\n * bucket.makePublic(opts, function(err, files) {\n * // `err`:\n * // The first error to occur, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made public in the bucket.\n * });\n *\n * //-\n * // Make the bucket and its contents publicly readable, using force to\n * // suppress errors until all files have been processed.\n * //-\n * const opts = {\n * includeFiles: true,\n * force: true\n * };\n *\n * bucket.makePublic(opts, function(errors, files) {\n * // `errors`:\n * // Array of errors if any occurred, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made public in the bucket.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.makePublic(opts).then(function(data) {\n * const files = data[0];\n * });\n * ```\n */\n makePublic(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const req = extend(true, { public: true }, options);\n this.acl\n .add({\n entity: 'allUsers',\n role: 'READER',\n })\n .then(() => {\n return this.acl.default.add({\n entity: 'allUsers',\n role: 'READER',\n });\n })\n .then(() => {\n if (req.includeFiles) {\n return util_1.promisify(this.makeAllFilesPublicPrivate_).call(this, req);\n }\n return [];\n })\n .then(files => callback(null, files), callback);\n }\n /**\n * Get a reference to a Cloud Pub/Sub Notification.\n *\n * @param {string} id ID of notification.\n * @returns {Notification}\n * @see Notification\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n * const notification = bucket.notification('1');\n * ```\n */\n notification(id) {\n if (!id) {\n throw new Error(BucketExceptionMessages.SUPPLY_NOTIFICATION_ID);\n }\n return new notification_1.Notification(this, id);\n }\n /**\n * Remove an already-existing retention policy from this bucket, if it is not\n * locked.\n *\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * bucket.removeRetentionPeriod(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.removeRetentionPeriod().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n removeRetentionPeriod(callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n retentionPolicy: null,\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Makes request and applies userProject query parameter if necessary.\n *\n * @private\n *\n * @param {object} reqOpts - The request options.\n * @param {function} callback - The callback function.\n */\n request(reqOpts, callback) {\n if (this.userProject && (!reqOpts.qs || !reqOpts.qs.userProject)) {\n reqOpts.qs = extend(reqOpts.qs, { userProject: this.userProject });\n }\n return super.request(reqOpts, callback);\n }\n /**\n * @typedef {array} SetLabelsResponse\n * @property {object} 0 The bucket metadata.\n */\n /**\n * @callback SetLabelsCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The bucket metadata.\n */\n /**\n * @typedef {object} SetLabelsOptions Configuration options for Bucket#setLabels().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Set labels on the bucket.\n *\n * This makes an underlying call to {@link Bucket#setMetadata}, which\n * is a PATCH request. This means an individual label can be overwritten, but\n * unmentioned labels will not be touched.\n *\n * @param {object} labels Labels to set on the bucket.\n * @param {SetLabelsOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {SetLabelsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * const labels = {\n * labelone: 'labelonevalue',\n * labeltwo: 'labeltwovalue'\n * };\n *\n * bucket.setLabels(labels, function(err, metadata) {\n * if (!err) {\n * // Labels set successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setLabels(labels).then(function(data) {\n * const metadata = data[0];\n * });\n * ```\n */\n setLabels(labels, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n callback = callback || nodejs_common_1.util.noop;\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({ labels }, options, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Lock all objects contained in the bucket, based on their creation time. Any\n * attempt to overwrite or delete objects younger than the retention period\n * will result in a `PERMISSION_DENIED` error.\n *\n * An unlocked retention policy can be modified or removed from the bucket via\n * {@link File#removeRetentionPeriod} and {@link File#setRetentionPeriod}. A\n * locked retention policy cannot be removed or shortened in duration for the\n * lifetime of the bucket. Attempting to remove or decrease period of a locked\n * retention policy will result in a `PERMISSION_DENIED` error. You can still\n * increase the policy.\n *\n * @param {*} duration In seconds, the minimum retention time for all objects\n * contained in this bucket.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * const DURATION_SECONDS = 15780000; // 6 months.\n *\n * //-\n * // Lock the objects in this bucket for 6 months.\n * //-\n * bucket.setRetentionPeriod(DURATION_SECONDS, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setRetentionPeriod(DURATION_SECONDS).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setRetentionPeriod(duration, callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n retentionPolicy: {\n retentionPeriod: duration,\n },\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n *\n * @typedef {object} Cors\n * @property {number} [maxAgeSeconds] The number of seconds the browser is\n * allowed to make requests before it must repeat the preflight request.\n * @property {string[]} [method] HTTP method allowed for cross origin resource\n * sharing with this bucket.\n * @property {string[]} [origin] an origin allowed for cross origin resource\n * sharing with this bucket.\n * @property {string[]} [responseHeader] A header allowed for cross origin\n * resource sharing with this bucket.\n */\n /**\n * This can be used to set the CORS configuration on the bucket.\n *\n * The configuration will be overwritten with the value passed into this.\n *\n * @param {Cors[]} corsConfiguration The new CORS configuration to set\n * @param {number} [corsConfiguration.maxAgeSeconds] The number of seconds the browser is\n * allowed to make requests before it must repeat the preflight request.\n * @param {string[]} [corsConfiguration.method] HTTP method allowed for cross origin resource\n * sharing with this bucket.\n * @param {string[]} [corsConfiguration.origin] an origin allowed for cross origin resource\n * sharing with this bucket.\n * @param {string[]} [corsConfiguration.responseHeader] A header allowed for cross origin\n * resource sharing with this bucket.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * const corsConfiguration = [{maxAgeSeconds: 3600}]; // 1 hour\n * bucket.setCorsConfiguration(corsConfiguration);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setCorsConfiguration(corsConfiguration).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setCorsConfiguration(corsConfiguration, callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n cors: corsConfiguration,\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {object} SetBucketStorageClassOptions\n * @property {string} [userProject] - The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback SetBucketStorageClassCallback\n * @param {?Error} err Request error, if any.\n */\n /**\n * Set the default storage class for new files in this bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/storage-classes| Storage Classes}\n *\n * @param {string} storageClass The new storage class. (`standard`,\n * `nearline`, `coldline`, or `archive`).\n * **Note:** The storage classes `multi_regional`, `regional`, and\n * `durable_reduced_availability` are now legacy and will be deprecated in\n * the future.\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] - The ID of the project which will be\n * billed for the request.\n * @param {SetStorageClassCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.setStorageClass('nearline', function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // The storage class was updated successfully.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setStorageClass('nearline').then(function() {});\n * ```\n */\n setStorageClass(storageClass, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n // In case we get input like `storageClass`, convert to `storage_class`.\n storageClass = storageClass\n .replace(/-/g, '_')\n .replace(/([a-z])([A-Z])/g, (_, low, up) => {\n return low + '_' + up;\n })\n .toUpperCase();\n this.setMetadata({ storageClass }, options, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Set a user project to be billed for all requests made from this Bucket\n * object and any files referenced from this Bucket object.\n *\n * @param {string} userProject The user project.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.setUserProject('grape-spaceship-123');\n * ```\n */\n setUserProject(userProject) {\n this.userProject = userProject;\n const methods = [\n 'create',\n 'delete',\n 'exists',\n 'get',\n 'getMetadata',\n 'setMetadata',\n ];\n methods.forEach(method => {\n const methodConfig = this.methods[method];\n if (typeof methodConfig === 'object') {\n if (typeof methodConfig.reqOpts === 'object') {\n extend(methodConfig.reqOpts.qs, { userProject });\n }\n else {\n methodConfig.reqOpts = {\n qs: { userProject },\n };\n }\n }\n });\n }\n /**\n * @typedef {object} UploadOptions Configuration options for Bucket#upload().\n * @property {string|File} [destination] The place to save\n * your file. If given a string, the file will be uploaded to the bucket\n * using the string as a filename. When given a File object, your local\n * file will be uploaded to the File object's bucket and under the File\n * object's name. Lastly, when this argument is omitted, the file is uploaded\n * to your bucket using the name of the local file.\n * @property {string} [encryptionKey] A custom encryption key. See\n * {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}.\n * @property {boolean} [gzip] Automatically gzip the file. This will set\n * `options.metadata.contentEncoding` to `gzip`.\n * @property {string} [kmsKeyName] The name of the Cloud KMS key that will\n * be used to encrypt the object. Must be in the format:\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`.\n * @property {object} [metadata] See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert#request_properties_JSON| Objects: insert request body}.\n * @property {string} [offset] The starting byte of the upload stream, for\n * resuming an interrupted upload. Defaults to 0.\n * @property {string} [predefinedAcl] Apply a predefined set of access\n * controls to this object.\n *\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @property {boolean} [private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @property {boolean} [public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @property {boolean} [resumable] Force a resumable upload. (default:\n * true for files larger than 5 MB).\n * @property {number} [timeout=60000] Set the HTTP request timeout in\n * milliseconds. This option is not available for resumable uploads.\n * Default: `60000`\n * @property {string} [uri] The URI for an already-created resumable\n * upload. See {@link File#createResumableUpload}.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string|boolean} [validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with an\n * MD5 checksum for maximum reliability. CRC32c will provide better\n * performance with less reliability. You may also choose to skip\n * validation completely, however this is **not recommended**.\n */\n /**\n * @typedef {array} UploadResponse\n * @property {object} 0 The uploaded {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback UploadCallback\n * @param {?Error} err Request error, if any.\n * @param {object} file The uploaded {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Upload a file to the bucket. This is a convenience method that wraps\n * {@link File#createWriteStream}.\n *\n * You can specify whether or not an upload is resumable by setting\n * `options.resumable`. *Resumable uploads are enabled by default if your\n * input file is larger than 5 MB.*\n *\n * For faster crc32c computation, you must manually install\n * {@link https://www.npmjs.com/package/fast-crc32c| `fast-crc32c`}:\n *\n * $ npm install --save fast-crc32c\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload#uploads| Upload Options (Simple or Resumable)}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert| Objects: insert API Documentation}\n *\n * @param {string} pathString The fully qualified path to the file you\n * wish to upload to your bucket.\n * @param {UploadOptions} [options] Configuration options.\n * @param {string|File} [options.destination] The place to save\n * your file. If given a string, the file will be uploaded to the bucket\n * using the string as a filename. When given a File object, your local\n * file will be uploaded to the File object's bucket and under the File\n * object's name. Lastly, when this argument is omitted, the file is uploaded\n * to your bucket using the name of the local file.\n * @param {string} [options.encryptionKey] A custom encryption key. See\n * {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}.\n * @param {boolean} [options.gzip] Automatically gzip the file. This will set\n * `options.metadata.contentEncoding` to `gzip`.\n * @param {string} [options.kmsKeyName] The name of the Cloud KMS key that will\n * be used to encrypt the object. Must be in the format:\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`.\n * @param {object} [options.metadata] See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert#request_properties_JSON| Objects: insert request body}.\n * @param {string} [options.offset] The starting byte of the upload stream, for\n * resuming an interrupted upload. Defaults to 0.\n * @param {string} [options.predefinedAcl] Apply a predefined set of access\n * controls to this object.\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @param {boolean} [options.private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @param {boolean} [options.public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @param {boolean} [options.resumable] Force a resumable upload. (default:\n * true for files larger than 5 MB).\n * @param {number} [options.timeout=60000] Set the HTTP request timeout in\n * milliseconds. This option is not available for resumable uploads.\n * Default: `60000`\n * @param {string} [options.uri] The URI for an already-created resumable\n * upload. See {@link File#createResumableUpload}.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {string|boolean} [options.validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with an\n * MD5 checksum for maximum reliability. CRC32c will provide better\n * performance with less reliability. You may also choose to skip\n * validation completely, however this is **not recommended**.\n * @param {UploadCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Upload a file from a local path.\n * //-\n * bucket.upload('/local/path/image.png', function(err, file, apiResponse) {\n * // Your bucket now contains:\n * // - \"image.png\" (with the contents of `/local/path/image.png')\n *\n * // `file` is an instance of a File object that refers to your new file.\n * });\n *\n *\n * //-\n * // It's not always that easy. You will likely want to specify the filename\n * // used when your new file lands in your bucket.\n * //\n * // You may also want to set metadata or customize other options.\n * //-\n * const options = {\n * destination: 'new-image.png',\n * resumable: true,\n * validation: 'crc32c',\n * metadata: {\n * metadata: {\n * event: 'Fall trip to the zoo'\n * }\n * }\n * };\n *\n * bucket.upload('local-image.png', options, function(err, file) {\n * // Your bucket now contains:\n * // - \"new-image.png\" (with the contents of `local-image.png')\n *\n * // `file` is an instance of a File object that refers to your new file.\n * });\n *\n * //-\n * // You can also have a file gzip'd on the fly.\n * //-\n * bucket.upload('index.html', { gzip: true }, function(err, file) {\n * // Your bucket now contains:\n * // - \"index.html\" (automatically compressed with gzip)\n *\n * // Downloading the file with `file.download` will automatically decode\n * the\n * // file.\n * });\n *\n * //-\n * // You may also re-use a File object, {File}, that references\n * // the file you wish to create or overwrite.\n * //-\n * const options = {\n * destination: bucket.file('existing-file.png'),\n * resumable: false\n * };\n *\n * bucket.upload('local-img.png', options, function(err, newFile) {\n * // Your bucket now contains:\n * // - \"existing-file.png\" (with the contents of `local-img.png')\n *\n * // Note:\n * // The `newFile` parameter is equal to `file`.\n * });\n *\n * //-\n * // To use\n * // \n * // Customer-supplied Encryption Keys, provide the `encryptionKey`\n * option.\n * //-\n * const crypto = require('crypto');\n * const encryptionKey = crypto.randomBytes(32);\n *\n * bucket.upload('img.png', {\n * encryptionKey: encryptionKey\n * }, function(err, newFile) {\n * // `img.png` was uploaded with your custom encryption key.\n *\n * // `newFile` is already configured to use the encryption key when making\n * // operations on the remote object.\n *\n * // However, to use your encryption key later, you must create a `File`\n * // instance with the `key` supplied:\n * const file = bucket.file('img.png', {\n * encryptionKey: encryptionKey\n * });\n *\n * // Or with `file#setEncryptionKey`:\n * const file = bucket.file('img.png');\n * file.setEncryptionKey(encryptionKey);\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.upload('local-image.png').then(function(data) {\n * const file = data[0];\n * });\n *\n * To upload a file from a URL, use {@link File#createWriteStream}.\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_upload_file\n * Another example:\n *\n * @example include:samples/encryption.js\n * region_tag:storage_upload_encrypted_file\n * Example of uploading an encrypted file:\n */\n upload(pathString, optionsOrCallback, callback) {\n var _a, _b;\n const upload = (numberOfRetries) => {\n const returnValue = retry(async (bail) => {\n await new Promise((resolve, reject) => {\n var _a, _b;\n if (numberOfRetries === 0 && ((_b = (_a = newFile === null || newFile === void 0 ? void 0 : newFile.storage) === null || _a === void 0 ? void 0 : _a.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry)) {\n newFile.storage.retryOptions.autoRetry = false;\n }\n const writable = newFile.createWriteStream(options);\n if (options.onUploadProgress) {\n writable.on('progress', options.onUploadProgress);\n }\n fs.createReadStream(pathString)\n .pipe(writable)\n .on('error', err => {\n if (this.storage.retryOptions.autoRetry &&\n this.storage.retryOptions.retryableErrorFn(err)) {\n return reject(err);\n }\n else {\n return bail(err);\n }\n })\n .on('finish', () => {\n return resolve();\n });\n });\n }, {\n retries: numberOfRetries,\n factor: this.storage.retryOptions.retryDelayMultiplier,\n maxTimeout: this.storage.retryOptions.maxRetryDelay * 1000,\n maxRetryTime: this.storage.retryOptions.totalTimeout * 1000,\n });\n if (!callback) {\n return returnValue;\n }\n else {\n return returnValue\n .then(() => {\n if (callback) {\n return callback(null, newFile, newFile.metadata);\n }\n })\n .catch(callback);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (global['GCLOUD_SANDBOX_ENV']) {\n return;\n }\n let options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n options = Object.assign({\n metadata: {},\n }, options);\n // Do not retry if precondition option ifGenerationMatch is not set\n // because this is a file operation\n let maxRetries = this.storage.retryOptions.maxRetries;\n if ((((_a = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n ((_b = this.instancePreconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n maxRetries = 0;\n }\n let newFile;\n if (options.destination instanceof file_1.File) {\n newFile = options.destination;\n }\n else if (options.destination !== null &&\n typeof options.destination === 'string') {\n // Use the string as the name of the file.\n newFile = this.file(options.destination, {\n encryptionKey: options.encryptionKey,\n kmsKeyName: options.kmsKeyName,\n preconditionOpts: this.instancePreconditionOpts,\n });\n }\n else {\n // Resort to using the name of the incoming file.\n const destination = path.basename(pathString);\n newFile = this.file(destination, {\n encryptionKey: options.encryptionKey,\n kmsKeyName: options.kmsKeyName,\n preconditionOpts: this.instancePreconditionOpts,\n });\n }\n if (options.resumable !== null && typeof options.resumable === 'boolean') {\n upload(maxRetries);\n }\n else {\n // Determine if the upload should be resumable if it's over the threshold.\n fs.stat(pathString, (err, fd) => {\n if (err) {\n callback(err);\n return;\n }\n if (fd.size <= RESUMABLE_THRESHOLD) {\n // Only disable resumable uploads so createWriteStream still attempts them and falls back to simple upload.\n options.resumable = false;\n }\n upload(maxRetries);\n });\n }\n }\n /**\n * @private\n *\n * @typedef {object} MakeAllFilesPublicPrivateOptions\n * @property {boolean} [force] Suppress errors until all files have been\n * processed.\n * @property {boolean} [private] Make files private.\n * @property {boolean} [public] Make files public.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @private\n *\n * @callback SetBucketMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files Files that were updated.\n */\n /**\n * @typedef {array} MakeAllFilesPublicPrivateResponse\n * @property {File[]} 0 List of files affected.\n */\n /**\n * Iterate over all of a bucket's files, calling `file.makePublic()` (public)\n * or `file.makePrivate()` (private) on each.\n *\n * Operations are performed in parallel, up to 10 at once. The first error\n * breaks the loop, and will execute the provided callback with it. Specify\n * `{ force: true }` to suppress the errors.\n *\n * @private\n *\n * @param {MakeAllFilesPublicPrivateOptions} [options] Configuration options.\n * @param {boolean} [options.force] Suppress errors until all files have been\n * processed.\n * @param {boolean} [options.private] Make files private.\n * @param {boolean} [options.public] Make files public.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n \n * @param {MakeAllFilesPublicPrivateCallback} callback Callback function.\n *\n * @return {Promise}\n */\n makeAllFilesPublicPrivate_(optionsOrCallback, callback) {\n const MAX_PARALLEL_LIMIT = 10;\n const errors = [];\n const updatedFiles = [];\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const processFile = async (file) => {\n try {\n await (options.public ? file.makePublic() : file.makePrivate(options));\n updatedFiles.push(file);\n }\n catch (e) {\n if (!options.force) {\n throw e;\n }\n errors.push(e);\n }\n };\n this.getFiles(options)\n .then(([files]) => {\n const limit = pLimit(MAX_PARALLEL_LIMIT);\n const promises = files.map(file => {\n return limit(() => processFile(file));\n });\n return Promise.all(promises);\n })\n .then(() => callback(errors.length > 0 ? errors : null, updatedFiles), err => callback(err, updatedFiles));\n }\n getId() {\n return this.id;\n }\n disableAutoRetryConditionallyIdempotent_(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n coreOpts, methodType) {\n var _a, _b;\n if (typeof coreOpts === 'object' &&\n ((_b = (_a = coreOpts === null || coreOpts === void 0 ? void 0 : coreOpts.reqOpts) === null || _a === void 0 ? void 0 : _a.qs) === null || _b === void 0 ? void 0 : _b.ifMetagenerationMatch) === undefined &&\n (methodType === AvailableServiceObjectMethods.setMetadata ||\n methodType === AvailableServiceObjectMethods.delete) &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) {\n this.storage.retryOptions.autoRetry = false;\n }\n else if (this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n this.storage.retryOptions.autoRetry = false;\n }\n }\n}\nexports.Bucket = Bucket;\n/*! Developer Documentation\n *\n * These methods can be auto-paginated.\n */\npaginator_1.paginator.extend(Bucket, 'getFiles');\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Bucket, {\n exclude: ['request', 'file', 'notification'],\n});\n//# sourceMappingURL=bucket.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Channel = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\n/**\n * Create a channel object to interact with a Cloud Storage channel.\n *\n * See {@link https://cloud.google.com/storage/docs/object-change-notification| Object Change Notification}\n *\n * @class\n *\n * @param {string} id The ID of the channel.\n * @param {string} resourceId The resource ID of the channel.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const channel = storage.channel('id', 'resource-id');\n * ```\n */\nclass Channel extends nodejs_common_1.ServiceObject {\n constructor(storage, id, resourceId) {\n const config = {\n parent: storage,\n baseUrl: '/channels',\n // An ID shouldn't be included in the API requests.\n // RE:\n // https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1145\n id: '',\n methods: {\n // Only need `request`.\n },\n };\n super(config);\n // TODO: remove type cast to any once ServiceObject's type declaration has\n // been fixed. https://github.com/googleapis/nodejs-common/issues/176\n const metadata = this.metadata;\n metadata.id = id;\n metadata.resourceId = resourceId;\n }\n /**\n * @typedef {array} StopResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback StopCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Stop this channel.\n *\n * @param {StopCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const channel = storage.channel('id', 'resource-id');\n * channel.stop(function(err, apiResponse) {\n * if (!err) {\n * // Channel stopped successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * channel.stop().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n stop(callback) {\n callback = callback || nodejs_common_1.util.noop;\n this.request({\n method: 'POST',\n uri: '/stop',\n json: this.metadata,\n }, (err, apiResponse) => {\n callback(err, apiResponse);\n });\n }\n}\nexports.Channel = Channel;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Channel);\n//# sourceMappingURL=channel.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.File = exports.FileExceptionMessages = exports.STORAGE_POST_POLICY_BASE_URL = exports.ActionToHTTPMethod = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst compressible = require(\"compressible\");\nconst crypto = require(\"crypto\");\nconst extend = require(\"extend\");\nconst fs = require(\"fs\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst hashStreamValidation = require('hash-stream-validation');\nconst mime = require(\"mime\");\nconst os = require(\"os\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pumpify = require('pumpify');\nconst resumableUpload = require(\"./gcs-resumable-upload\");\nconst stream_1 = require(\"stream\");\nconst streamEvents = require(\"stream-events\");\nconst xdgBasedir = require(\"xdg-basedir\");\nconst zlib = require(\"zlib\");\nconst storage_1 = require(\"./storage\");\nconst bucket_1 = require(\"./bucket\");\nconst acl_1 = require(\"./acl\");\nconst signer_1 = require(\"./signer\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst duplexify = require('duplexify');\nconst util_1 = require(\"./util\");\nconst retry = require(\"async-retry\");\nvar ActionToHTTPMethod;\n(function (ActionToHTTPMethod) {\n ActionToHTTPMethod[\"read\"] = \"GET\";\n ActionToHTTPMethod[\"write\"] = \"PUT\";\n ActionToHTTPMethod[\"delete\"] = \"DELETE\";\n ActionToHTTPMethod[\"resumable\"] = \"POST\";\n})(ActionToHTTPMethod = exports.ActionToHTTPMethod || (exports.ActionToHTTPMethod = {}));\n/**\n * Custom error type for errors related to creating a resumable upload.\n *\n * @private\n */\nclass ResumableUploadError extends Error {\n constructor() {\n super(...arguments);\n this.name = 'ResumableUploadError';\n }\n}\n/**\n * @const {string}\n * @private\n */\nexports.STORAGE_POST_POLICY_BASE_URL = 'https://storage.googleapis.com';\n/**\n * @const {RegExp}\n * @private\n */\nconst GS_URL_REGEXP = /^gs:\\/\\/([a-z0-9_.-]+)\\/(.+)$/;\nclass RequestError extends Error {\n}\nconst SEVEN_DAYS = 7 * 24 * 60 * 60;\nvar FileExceptionMessages;\n(function (FileExceptionMessages) {\n FileExceptionMessages[\"EXPIRATION_TIME_NA\"] = \"An expiration time is not available.\";\n FileExceptionMessages[\"DESTINATION_NO_NAME\"] = \"Destination file should have a name.\";\n FileExceptionMessages[\"INVALID_VALIDATION_FILE_RANGE\"] = \"Cannot use validation with file ranges (start/end).\";\n FileExceptionMessages[\"MD5_NOT_AVAILABLE\"] = \"MD5 verification was specified, but is not available for the requested object. MD5 is not available for composite objects.\";\n FileExceptionMessages[\"EQUALS_CONDITION_TWO_ELEMENTS\"] = \"Equals condition must be an array of 2 elements.\";\n FileExceptionMessages[\"STARTS_WITH_TWO_ELEMENTS\"] = \"StartsWith condition must be an array of 2 elements.\";\n FileExceptionMessages[\"CONTENT_LENGTH_RANGE_MIN_MAX\"] = \"ContentLengthRange must have numeric min & max fields.\";\n FileExceptionMessages[\"DOWNLOAD_MISMATCH\"] = \"The downloaded data did not match the data from the server. To be sure the content is the same, you should download the file again.\";\n FileExceptionMessages[\"UPLOAD_MISMATCH_DELETE_FAIL\"] = \"The uploaded data did not match the data from the server. \\n As a precaution, we attempted to delete the file, but it was not successful. \\n To be sure the content is the same, you should try removing the file manually, \\n then uploading the file again. \\n \\n\\nThe delete attempt failed with this message:\\n\\n \";\n FileExceptionMessages[\"UPLOAD_MISMATCH\"] = \"The uploaded data did not match the data from the server. \\n As a precaution, the file has been deleted. \\n To be sure the content is the same, you should try uploading the file again.\";\n})(FileExceptionMessages = exports.FileExceptionMessages || (exports.FileExceptionMessages = {}));\n/**\n * A File object is created from your {@link Bucket} object using\n * {@link Bucket#file}.\n *\n * @class\n */\nclass File extends nodejs_common_1.ServiceObject {\n /**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * An ACL consists of one or more entries, where each entry grants permissions\n * to an entity. Permissions define the actions that can be performed against\n * an object or bucket (for example, `READ` or `WRITE`); the entity defines\n * who the permission applies to (for example, a specific user or group of\n * users).\n *\n * The `acl` object on a File instance provides methods to get you a list of\n * the ACLs defined on your bucket, as well as set, update, and delete them.\n *\n * See {@link http://goo.gl/6qBBPO| About Access Control lists}\n *\n * @name File#acl\n * @mixes Acl\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * //-\n * // Make a file publicly readable.\n * //-\n * const options = {\n * entity: 'allUsers',\n * role: storage.acl.READER_ROLE\n * };\n *\n * file.acl.add(options, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n /**\n * The API-formatted resource description of the file.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name File#metadata\n * @type {object}\n */\n /**\n * The file's name.\n * @name File#name\n * @type {string}\n */\n /**\n * @typedef {object} FileOptions Options passed to the File constructor.\n * @property {string} [encryptionKey] A custom encryption key.\n * @property {number} [generation] Generation to scope the file to.\n * @property {string} [kmsKeyName] Cloud KMS Key used to encrypt this\n * object, if the object is encrypted by such a key. Limited availability;\n * usable only by enabled projects.\n * @property {string} [userProject] The ID of the project which will be\n * billed for all requests made from File object.\n */\n /**\n * Constructs a file object.\n *\n * @param {Bucket} bucket The Bucket instance this file is\n * attached to.\n * @param {string} name The name of the remote file.\n * @param {FileOptions} [options] Configuration options.\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * ```\n */\n constructor(bucket, name, options = {}) {\n var _a, _b;\n const requestQueryObject = {};\n let generation;\n if (options.generation !== null) {\n if (typeof options.generation === 'string') {\n generation = Number(options.generation);\n }\n else {\n generation = options.generation;\n }\n if (!isNaN(generation)) {\n requestQueryObject.generation = generation;\n }\n }\n Object.assign(requestQueryObject, options.preconditionOpts);\n const userProject = options.userProject || bucket.userProject;\n if (typeof userProject === 'string') {\n requestQueryObject.userProject = userProject;\n }\n const methods = {\n /**\n * @typedef {array} DeleteFileResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteFileCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Delete the file.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/delete| Objects: delete API Documentation}\n *\n * @method File#delete\n * @param {object} [options] Configuration options.\n * @param {boolean} [options.ignoreNotFound = false] Ignore an error if\n * the file does not exist.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DeleteFileCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * file.delete(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_delete_file\n * Another example:\n */\n delete: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} FileExistsResponse\n * @property {boolean} 0 Whether the {@link File} exists.\n */\n /**\n * @callback FileExistsCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} exists Whether the {@link File} exists.\n */\n /**\n * Check if the file exists.\n *\n * @method File#exists\n * @param {options} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {FileExistsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.exists(function(err, exists) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.exists().then(function(data) {\n * const exists = data[0];\n * });\n * ```\n */\n exists: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} GetFileResponse\n * @property {File} 0 The {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetFileCallback\n * @param {?Error} err Request error, if any.\n * @param {File} file The {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get a file object and its metadata if it exists.\n *\n * @method File#get\n * @param {options} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetFileCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.get(function(err, file, apiResponse) {\n * // file.metadata` has been populated.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.get().then(function(data) {\n * const file = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n get: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} GetFileMetadataResponse\n * @property {object} 0 The {@link File} metadata.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetFileMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The {@link File} metadata.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get the file's metadata.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/get| Objects: get API Documentation}\n *\n * @method File#getMetadata\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetFileMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.getMetadata(function(err, metadata, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.getMetadata().then(function(data) {\n * const metadata = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_get_metadata\n * Another example:\n */\n getMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} SetFileMetadataOptions Configuration options for File#setMetadata().\n * @param {string} [userProject] The ID of the project which will be billed for the request.\n */\n /**\n * @callback SetFileMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} SetFileMetadataResponse\n * @property {object} 0 The full API response.\n */\n /**\n * Merge the given metadata with the current remote file's metadata. This\n * will set metadata if it was previously unset or update previously set\n * metadata. To unset previously set metadata, set its value to null.\n *\n * You can set custom key/value pairs in the metadata key of the given\n * object, however the other properties outside of this object must adhere\n * to the {@link https://goo.gl/BOnnCK| official API documentation}.\n *\n *\n * See the examples below for more information.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/patch| Objects: patch API Documentation}\n *\n * @method File#setMetadata\n * @param {object} [metadata] The metadata you wish to update.\n * @param {SetFileMetadataOptions} [options] Configuration options.\n * @param {SetFileMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * const metadata = {\n * contentType: 'application/x-font-ttf',\n * metadata: {\n * my: 'custom',\n * properties: 'go here'\n * }\n * };\n *\n * file.setMetadata(metadata, function(err, apiResponse) {});\n *\n * // Assuming current metadata = { hello: 'world', unsetMe: 'will do' }\n * file.setMetadata({\n * metadata: {\n * abc: '123', // will be set.\n * unsetMe: null, // will be unset (deleted).\n * hello: 'goodbye' // will be updated from 'world' to 'goodbye'.\n * }\n * }, function(err, apiResponse) {\n * // metadata should now be { abc: '123', hello: 'goodbye' }\n * });\n *\n * //-\n * // Set a temporary hold on this file from its bucket's retention period\n * // configuration.\n * //\n * file.setMetadata({\n * temporaryHold: true\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Alternatively, you may set a temporary hold. This will follow the\n * // same behavior as an event-based hold, with the exception that the\n * // bucket's retention policy will not renew for this file from the time\n * // the hold is released.\n * //-\n * file.setMetadata({\n * eventBasedHold: true\n * }, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.setMetadata(metadata).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n };\n super({\n parent: bucket,\n baseUrl: '/o',\n id: encodeURIComponent(name),\n methods,\n });\n this.bucket = bucket;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.storage = bucket.parent;\n // @TODO Can this duplicate code from above be avoided?\n if (options.generation !== null) {\n let generation;\n if (typeof options.generation === 'string') {\n generation = Number(options.generation);\n }\n else {\n generation = options.generation;\n }\n if (!isNaN(generation)) {\n this.generation = generation;\n }\n }\n this.kmsKeyName = options.kmsKeyName;\n this.userProject = userProject;\n this.name = name;\n if (options.encryptionKey) {\n this.setEncryptionKey(options.encryptionKey);\n }\n this.acl = new acl_1.Acl({\n request: this.request.bind(this),\n pathPrefix: '/acl',\n });\n this.instanceRetryValue = (_b = (_a = this.storage) === null || _a === void 0 ? void 0 : _a.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry;\n this.instancePreconditionOpts = options === null || options === void 0 ? void 0 : options.preconditionOpts;\n }\n /**\n * A helper method for determining if a request should be retried based on preconditions.\n * This should only be used for methods where the idempotency is determined by\n * `ifGenerationMatch`\n * @private\n *\n * A request should not be retried under the following conditions:\n * - if precondition option `ifGenerationMatch` is not set OR\n * - if `idempotencyStrategy` is set to `RetryNever`\n */\n shouldRetryBasedOnPreconditionAndIdempotencyStrat(options) {\n var _a;\n return !(((options === null || options === void 0 ? void 0 : options.ifGenerationMatch) === undefined &&\n ((_a = this.instancePreconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever);\n }\n /**\n * @typedef {array} CopyResponse\n * @property {File} 0 The copied {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback CopyCallback\n * @param {?Error} err Request error, if any.\n * @param {File} copiedFile The copied {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} CopyOptions Configuration options for File#copy(). See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects#resource| Object resource}.\n * @property {string} [cacheControl] The cacheControl setting for the new file.\n * @property {string} [contentEncoding] The contentEncoding setting for the new file.\n * @property {string} [contentType] The contentType setting for the new file.\n * @property {string} [destinationKmsKeyName] Resource name of the Cloud\n * KMS key, of the form\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`,\n * that will be used to encrypt the object. Overwrites the object\n * metadata's `kms_key_name` value, if any.\n * @property {Metadata} [metadata] Metadata to specify on the copied file.\n * @property {string} [predefinedAcl] Set the ACL for the new file.\n * @property {string} [token] A previously-returned `rewriteToken` from an\n * unfinished rewrite request.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Copy this file to another file. By default, this will copy the file to the\n * same bucket, but you can choose to copy it to another Bucket by providing\n * a Bucket or File object or a URL starting with \"gs://\".\n * The generation of the file will not be preserved.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/rewrite| Objects: rewrite API Documentation}\n *\n * @throws {Error} If the destination file is not provided.\n *\n * @param {string|Bucket|File} destination Destination file.\n * @param {CopyOptions} [options] Configuration options. See an\n * @param {CopyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // You can pass in a variety of types for the destination.\n * //\n * // For all of the below examples, assume we are working with the following\n * // Bucket and File objects.\n * //-\n * const bucket = storage.bucket('my-bucket');\n * const file = bucket.file('my-image.png');\n *\n * //-\n * // If you pass in a string for the destination, the file is copied to its\n * // current bucket, under the new name provided.\n * //-\n * file.copy('my-image-copy.png', function(err, copiedFile, apiResponse) {\n * // `my-bucket` now contains:\n * // - \"my-image.png\"\n * // - \"my-image-copy.png\"\n *\n * // `copiedFile` is an instance of a File object that refers to your new\n * // file.\n * });\n *\n * //-\n * // If you pass in a string starting with \"gs://\" for the destination, the\n * // file is copied to the other bucket and under the new name provided.\n * //-\n * const newLocation = 'gs://another-bucket/my-image-copy.png';\n * file.copy(newLocation, function(err, copiedFile, apiResponse) {\n * // `my-bucket` still contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image-copy.png\"\n *\n * // `copiedFile` is an instance of a File object that refers to your new\n * // file.\n * });\n *\n * //-\n * // If you pass in a Bucket object, the file will be copied to that bucket\n * // using the same name.\n * //-\n * const anotherBucket = storage.bucket('another-bucket');\n * file.copy(anotherBucket, function(err, copiedFile, apiResponse) {\n * // `my-bucket` still contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image.png\"\n *\n * // `copiedFile` is an instance of a File object that refers to your new\n * // file.\n * });\n *\n * //-\n * // If you pass in a File object, you have complete control over the new\n * // bucket and filename.\n * //-\n * const anotherFile = anotherBucket.file('my-awesome-image.png');\n * file.copy(anotherFile, function(err, copiedFile, apiResponse) {\n * // `my-bucket` still contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-awesome-image.png\"\n *\n * // Note:\n * // The `copiedFile` parameter is equal to `anotherFile`.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.copy(newLocation).then(function(data) {\n * const newFile = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_copy_file\n * Another example:\n */\n copy(destination, optionsOrCallback, callback) {\n const noDestinationError = new Error(FileExceptionMessages.DESTINATION_NO_NAME);\n if (!destination) {\n throw noDestinationError;\n }\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n options = extend(true, {}, options);\n callback = callback || nodejs_common_1.util.noop;\n let destBucket;\n let destName;\n let newFile;\n if (typeof destination === 'string') {\n const parsedDestination = GS_URL_REGEXP.exec(destination);\n if (parsedDestination !== null && parsedDestination.length === 3) {\n destBucket = this.storage.bucket(parsedDestination[1]);\n destName = parsedDestination[2];\n }\n else {\n destBucket = this.bucket;\n destName = destination;\n }\n }\n else if (destination instanceof bucket_1.Bucket) {\n destBucket = destination;\n destName = this.name;\n }\n else if (destination instanceof File) {\n destBucket = destination.bucket;\n destName = destination.name;\n newFile = destination;\n }\n else {\n throw noDestinationError;\n }\n const query = {};\n if (this.generation !== undefined) {\n query.sourceGeneration = this.generation;\n }\n if (options.token !== undefined) {\n query.rewriteToken = options.token;\n }\n if (options.userProject !== undefined) {\n query.userProject = options.userProject;\n delete options.userProject;\n }\n if (options.predefinedAcl !== undefined) {\n query.destinationPredefinedAcl = options.predefinedAcl;\n delete options.predefinedAcl;\n }\n newFile = newFile || destBucket.file(destName);\n const headers = {};\n if (this.encryptionKey !== undefined) {\n headers['x-goog-copy-source-encryption-algorithm'] = 'AES256';\n headers['x-goog-copy-source-encryption-key'] = this.encryptionKeyBase64;\n headers['x-goog-copy-source-encryption-key-sha256'] =\n this.encryptionKeyHash;\n }\n if (newFile.encryptionKey !== undefined) {\n this.setEncryptionKey(newFile.encryptionKey);\n }\n else if (options.destinationKmsKeyName !== undefined) {\n query.destinationKmsKeyName = options.destinationKmsKeyName;\n delete options.destinationKmsKeyName;\n }\n else if (newFile.kmsKeyName !== undefined) {\n query.destinationKmsKeyName = newFile.kmsKeyName;\n }\n if (query.destinationKmsKeyName) {\n this.kmsKeyName = query.destinationKmsKeyName;\n const keyIndex = this.interceptors.indexOf(this.encryptionKeyInterceptor);\n if (keyIndex > -1) {\n this.interceptors.splice(keyIndex, 1);\n }\n }\n this.request({\n method: 'POST',\n uri: `/rewriteTo/b/${destBucket.name}/o/${encodeURIComponent(newFile.name)}`,\n qs: query,\n json: options,\n headers,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n if (resp.rewriteToken) {\n const options = {\n token: resp.rewriteToken,\n };\n if (query.userProject) {\n options.userProject = query.userProject;\n }\n if (query.destinationKmsKeyName) {\n options.destinationKmsKeyName = query.destinationKmsKeyName;\n }\n this.copy(newFile, options, callback);\n return;\n }\n callback(null, newFile, resp);\n });\n }\n /**\n * @typedef {object} CreateReadStreamOptions Configuration options for File#createReadStream.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string|boolean} [validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with a\n * CRC32c checksum. You may use MD5 if preferred, but that hash is not\n * supported for composite objects. An error will be raised if MD5 is\n * specified but is not available. You may also choose to skip validation\n * completely, however this is **not recommended**.\n * @property {number} [start] A byte offset to begin the file's download\n * from. Default is 0. NOTE: Byte ranges are inclusive; that is,\n * `options.start = 0` and `options.end = 999` represent the first 1000\n * bytes in a file or object. NOTE: when specifying a byte range, data\n * integrity is not available.\n * @property {number} [end] A byte offset to stop reading the file at.\n * NOTE: Byte ranges are inclusive; that is, `options.start = 0` and\n * `options.end = 999` represent the first 1000 bytes in a file or object.\n * NOTE: when specifying a byte range, data integrity is not available.\n * @property {boolean} [decompress=true] Disable auto decompression of the\n * received data. By default this option is set to `true`.\n * Applicable in cases where the data was uploaded with\n * `gzip: true` option. See {@link File#createWriteStream}.\n */\n /**\n * Create a readable stream to read the contents of the remote file. It can be\n * piped to a writable stream or listened to for 'data' events to read a\n * file's contents.\n *\n * In the unlikely event there is a mismatch between what you downloaded and\n * the version in your Bucket, your error handler will receive an error with\n * code \"CONTENT_DOWNLOAD_MISMATCH\". If you receive this error, the best\n * recourse is to try downloading the file again.\n *\n * For faster crc32c computation, you must manually install\n * {@link https://www.npmjs.com/package/fast-crc32c| `fast-crc32c`}:\n *\n * $ npm install --save fast-crc32c\n *\n * NOTE: Readable streams will emit the `end` event when the file is fully\n * downloaded.\n *\n * @param {CreateReadStreamOptions} [options] Configuration options.\n * @returns {ReadableStream}\n *\n * @example\n * ```\n * //-\n * //

Downloading a File

\n * //\n * // The example below demonstrates how we can reference a remote file, then\n * // pipe its contents to a local file. This is effectively creating a local\n * // backup of your remote data.\n * //-\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * const fs = require('fs');\n * const remoteFile = bucket.file('image.png');\n * const localFilename = '/Users/stephen/Photos/image.png';\n *\n * remoteFile.createReadStream()\n * .on('error', function(err) {})\n * .on('response', function(response) {\n * // Server connected and responded with the specified status and headers.\n * })\n * .on('end', function() {\n * // The file is fully downloaded.\n * })\n * .pipe(fs.createWriteStream(localFilename));\n *\n * //-\n * // To limit the downloaded data to only a byte range, pass an options\n * // object.\n * //-\n * const logFile = myBucket.file('access_log');\n * logFile.createReadStream({\n * start: 10000,\n * end: 20000\n * })\n * .on('error', function(err) {})\n * .pipe(fs.createWriteStream('/Users/stephen/logfile.txt'));\n *\n * //-\n * // To read a tail byte range, specify only `options.end` as a negative\n * // number.\n * //-\n * const logFile = myBucket.file('access_log');\n * logFile.createReadStream({\n * end: -100\n * })\n * .on('error', function(err) {})\n * .pipe(fs.createWriteStream('/Users/stephen/logfile.txt'));\n * ```\n */\n createReadStream(options = {}) {\n options = Object.assign({ decompress: true }, options);\n const rangeRequest = typeof options.start === 'number' || typeof options.end === 'number';\n const tailRequest = options.end < 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let validateStream; // Created later, if necessary.\n const throughStream = streamEvents(new stream_1.PassThrough());\n let isServedCompressed = true;\n let crc32c = true;\n let md5 = false;\n if (typeof options.validation === 'string') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.validation = options.validation.toLowerCase();\n crc32c = options.validation === 'crc32c';\n md5 = options.validation === 'md5';\n }\n else if (options.validation === false) {\n crc32c = false;\n }\n const shouldRunValidation = !rangeRequest && (crc32c || md5);\n if (rangeRequest) {\n if (typeof options.validation === 'string' ||\n options.validation === true) {\n throw new Error(FileExceptionMessages.INVALID_VALIDATION_FILE_RANGE);\n }\n // Range requests can't receive data integrity checks.\n crc32c = false;\n md5 = false;\n }\n // Authenticate the request, then pipe the remote API request to the stream\n // returned to the user.\n const makeRequest = () => {\n const query = {\n alt: 'media',\n };\n if (this.generation) {\n query.generation = this.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n const headers = {\n 'Accept-Encoding': 'gzip',\n 'Cache-Control': 'no-store',\n };\n if (rangeRequest) {\n const start = typeof options.start === 'number' ? options.start : '0';\n const end = typeof options.end === 'number' ? options.end : '';\n headers.Range = `bytes=${tailRequest ? end : `${start}-${end}`}`;\n }\n const reqOpts = {\n forever: false,\n uri: '',\n headers,\n qs: query,\n };\n const hashes = {};\n this.requestStream(reqOpts)\n .on('error', err => {\n throughStream.destroy(err);\n })\n .on('response', res => {\n throughStream.emit('response', res);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodejs_common_1.util.handleResp(null, res, null, onResponse);\n })\n .resume();\n // We listen to the response event from the request stream so that we\n // can...\n //\n // 1) Intercept any data from going to the user if an error occurred.\n // 2) Calculate the hashes from the http.IncomingMessage response\n // stream,\n // which will return the bytes from the source without decompressing\n // gzip'd content. We then send it through decompressed, if\n // applicable, to the user.\n const onResponse = (err, _body, rawResponseStream) => {\n if (err) {\n // Get error message from the body.\n this.getBufferFromReadable(rawResponseStream).then(body => {\n err.message = body.toString('utf8');\n throughStream.destroy(err);\n });\n return;\n }\n rawResponseStream.on('error', onComplete);\n const headers = rawResponseStream.toJSON().headers;\n isServedCompressed = headers['content-encoding'] === 'gzip';\n const throughStreams = [];\n if (shouldRunValidation) {\n // The x-goog-hash header should be set with a crc32c and md5 hash.\n // ex: headers['x-goog-hash'] = 'crc32c=xxxx,md5=xxxx'\n if (typeof headers['x-goog-hash'] === 'string') {\n headers['x-goog-hash']\n .split(',')\n .forEach((hashKeyValPair) => {\n const delimiterIndex = hashKeyValPair.indexOf('=');\n const hashType = hashKeyValPair.substr(0, delimiterIndex);\n const hashValue = hashKeyValPair.substr(delimiterIndex + 1);\n hashes[hashType] = hashValue;\n });\n }\n validateStream = hashStreamValidation({ crc32c, md5 });\n throughStreams.push(validateStream);\n }\n if (isServedCompressed && options.decompress) {\n throughStreams.push(zlib.createGunzip());\n }\n if (throughStreams.length === 1) {\n rawResponseStream =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rawResponseStream.pipe(throughStreams[0]);\n }\n else if (throughStreams.length > 1) {\n rawResponseStream = rawResponseStream.pipe(pumpify.obj(throughStreams));\n }\n rawResponseStream\n .on('error', onComplete)\n .on('end', onComplete)\n .pipe(throughStream, { end: false });\n };\n // This is hooked to the `complete` event from the request stream. This is\n // our chance to validate the data and let the user know if anything went\n // wrong.\n let onCompleteCalled = false;\n const onComplete = async (err) => {\n if (onCompleteCalled) {\n return;\n }\n onCompleteCalled = true;\n if (err) {\n throughStream.destroy(err);\n return;\n }\n if (rangeRequest || !shouldRunValidation) {\n throughStream.end();\n return;\n }\n // TODO(https://github.com/googleapis/nodejs-storage/issues/709):\n // Remove once the backend issue is fixed.\n // If object is stored compressed (having\n // metadata.contentEncoding === 'gzip') and was served decompressed,\n // then skip checksum validation because the remote checksum is computed\n // against the compressed version of the object.\n if (!isServedCompressed) {\n try {\n await this.getMetadata({ userProject: options.userProject });\n }\n catch (e) {\n throughStream.destroy(e);\n return;\n }\n if (this.metadata.contentEncoding === 'gzip') {\n throughStream.end();\n return;\n }\n }\n // If we're doing validation, assume the worst-- a data integrity\n // mismatch. If not, these tests won't be performed, and we can assume\n // the best.\n let failed = crc32c || md5;\n if (crc32c && hashes.crc32c) {\n // We must remove the first four bytes from the returned checksum.\n // http://stackoverflow.com/questions/25096737/\n // base64-encoding-of-crc32c-long-value\n failed = !validateStream.test('crc32c', hashes.crc32c.substr(4));\n }\n if (md5 && hashes.md5) {\n failed = !validateStream.test('md5', hashes.md5);\n }\n if (md5 && !hashes.md5) {\n const hashError = new RequestError(FileExceptionMessages.MD5_NOT_AVAILABLE);\n hashError.code = 'MD5_NOT_AVAILABLE';\n throughStream.destroy(hashError);\n }\n else if (failed) {\n const mismatchError = new RequestError(FileExceptionMessages.DOWNLOAD_MISMATCH);\n mismatchError.code = 'CONTENT_DOWNLOAD_MISMATCH';\n throughStream.destroy(mismatchError);\n }\n else {\n throughStream.end();\n }\n };\n };\n throughStream.on('reading', makeRequest);\n return throughStream;\n }\n /**\n * @callback CreateResumableUploadCallback\n * @param {?Error} err Request error, if any.\n * @param {string} uri The resumable upload's unique session URI.\n */\n /**\n * @typedef {array} CreateResumableUploadResponse\n * @property {string} 0 The resumable upload's unique session URI.\n */\n /**\n * @typedef {object} CreateResumableUploadOptions\n * @property {string} [configPath] A full JSON file path to use with\n * `gcs-resumable-upload`. This maps to the {@link https://github.com/yeoman/configstore/tree/0df1ec950d952b1f0dfb39ce22af8e505dffc71a#configpath| configstore option by the same name}.\n * @property {object} [metadata] Metadata to set on the file.\n * @property {number} [offset] The starting byte of the upload stream for resuming an interrupted upload.\n * @property {string} [origin] Origin header to set for the upload.\n * @property {string} [predefinedAcl] Apply a predefined set of access\n * controls to this object.\n *\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @property {boolean} [private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @property {boolean} [public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string} [chunkSize] Create a separate request per chunk. Should\n * be a multiple of 256 KiB (2^18).\n * {@link https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload| We recommend using at least 8 MiB for the chunk size.}\n */\n /**\n * Create a unique resumable upload session URI. This is the first step when\n * performing a resumable upload.\n *\n * See the {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload| Resumable upload guide}\n * for more on how the entire process works.\n *\n *

Note

\n *\n * If you are just looking to perform a resumable upload without worrying\n * about any of the details, see {@link File#createWriteStream}. Resumable\n * uploads are performed by default.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload| Resumable upload guide}\n *\n * @param {CreateResumableUploadOptions} [options] Configuration options.\n * @param {CreateResumableUploadCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * file.createResumableUpload(function(err, uri) {\n * if (!err) {\n * // `uri` can be used to PUT data to.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.createResumableUpload().then(function(data) {\n * const uri = data[0];\n * });\n * ```\n */\n createResumableUpload(optionsOrCallback, callback) {\n var _a, _b;\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const retryOptions = this.storage.retryOptions;\n if ((((_a = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n ((_b = this.instancePreconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n retryOptions.autoRetry = false;\n }\n resumableUpload.createURI({\n authClient: this.storage.authClient,\n apiEndpoint: this.storage.apiEndpoint,\n bucket: this.bucket.name,\n configPath: options.configPath,\n customRequestOptions: this.getRequestInterceptors().reduce((reqOpts, interceptorFn) => interceptorFn(reqOpts), {}),\n file: this.name,\n generation: this.generation,\n key: this.encryptionKey,\n kmsKeyName: this.kmsKeyName,\n metadata: options.metadata,\n offset: options.offset,\n origin: options.origin,\n predefinedAcl: options.predefinedAcl,\n private: options.private,\n public: options.public,\n userProject: options.userProject || this.userProject,\n retryOptions: retryOptions,\n params: (options === null || options === void 0 ? void 0 : options.preconditionOpts) || this.instancePreconditionOpts,\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {object} CreateWriteStreamOptions Configuration options for File#createWriteStream().\n * @property {string} [configPath] **This only applies to resumable\n * uploads.** A full JSON file path to use with `gcs-resumable-upload`.\n * This maps to the {@link https://github.com/yeoman/configstore/tree/0df1ec950d952b1f0dfb39ce22af8e505dffc71a#configpath| configstore option by the same name}.\n * @property {string} [contentType] Alias for\n * `options.metadata.contentType`. If set to `auto`, the file name is used\n * to determine the contentType.\n * @property {string|boolean} [gzip] If true, automatically gzip the file.\n * If set to `auto`, the contentType is used to determine if the file\n * should be gzipped. This will set `options.metadata.contentEncoding` to\n * `gzip` if necessary.\n * @property {object} [metadata] See the examples below or\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert#request_properties_JSON| Objects: insert request body}\n * for more details.\n * @property {number} [offset] The starting byte of the upload stream, for\n * resuming an interrupted upload. Defaults to 0.\n * @property {string} [predefinedAcl] Apply a predefined set of access\n * controls to this object.\n *\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @property {boolean} [private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @property {boolean} [public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @property {boolean} [resumable] Force a resumable upload. NOTE: When\n * working with streams, the file format and size is unknown until it's\n * completely consumed. Because of this, it's best for you to be explicit\n * for what makes sense given your input.\n * @property {number} [timeout=60000] Set the HTTP request timeout in\n * milliseconds. This option is not available for resumable uploads.\n * Default: `60000`\n * @property {string} [uri] The URI for an already-created resumable\n * upload. See {@link File#createResumableUpload}.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string|boolean} [validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with a\n * CRC32c checksum. You may use MD5 if preferred, but that hash is not\n * supported for composite objects. An error will be raised if MD5 is\n * specified but is not available. You may also choose to skip validation\n * completely, however this is **not recommended**. In addition to specifying\n * validation type, providing `metadata.crc32c` or `metadata.md5Hash` will\n * cause the server to perform validation in addition to client validation.\n * NOTE: Validation is automatically skipped for objects that were\n * uploaded using the `gzip` option and have already compressed content.\n */\n /**\n * Create a writable stream to overwrite the contents of the file in your\n * bucket.\n *\n * A File object can also be used to create files for the first time.\n *\n * Resumable uploads are automatically enabled and must be shut off explicitly\n * by setting `options.resumable` to `false`.\n *\n * Resumable uploads require write access to the $HOME directory. Through\n * {@link https://www.npmjs.com/package/configstore| `config-store`}, some metadata\n * is stored. By default, if the directory is not writable, we will fall back\n * to a simple upload. However, if you explicitly request a resumable upload,\n * and we cannot write to the config directory, we will return a\n * `ResumableUploadError`.\n *\n *

\n * There is some overhead when using a resumable upload that can cause\n * noticeable performance degradation while uploading a series of small\n * files. When uploading files less than 10MB, it is recommended that the\n * resumable feature is disabled.\n *

\n *\n * For faster crc32c computation, you must manually install\n * {@link https://www.npmjs.com/package/fast-crc32c| `fast-crc32c`}:\n *\n * $ npm install --save fast-crc32c\n *\n * NOTE: Writable streams will emit the `finish` event when the file is fully\n * uploaded.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload| Upload Options (Simple or Resumable)}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert| Objects: insert API Documentation}\n *\n * @param {CreateWriteStreamOptions} [options] Configuration options.\n * @returns {WritableStream}\n *\n * @example\n * ```\n * const fs = require('fs');\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * //

Uploading a File

\n * //\n * // Now, consider a case where we want to upload a file to your bucket. You\n * // have the option of using {@link Bucket#upload}, but that is just\n * // a convenience method which will do the following.\n * //-\n * fs.createReadStream('/Users/stephen/Photos/birthday-at-the-zoo/panda.jpg')\n * .pipe(file.createWriteStream())\n * .on('error', function(err) {})\n * .on('finish', function() {\n * // The file upload is complete.\n * });\n *\n * //-\n * //

Uploading a File with gzip compression

\n * //-\n * fs.createReadStream('/Users/stephen/site/index.html')\n * .pipe(file.createWriteStream({ gzip: true }))\n * .on('error', function(err) {})\n * .on('finish', function() {\n * // The file upload is complete.\n * });\n *\n * //-\n * // Downloading the file with `createReadStream` will automatically decode\n * // the file.\n * //-\n *\n * //-\n * //

Uploading a File with Metadata

\n * //\n * // One last case you may run into is when you want to upload a file to your\n * // bucket and set its metadata at the same time. Like above, you can use\n * // {@link Bucket#upload} to do this, which is just a wrapper around\n * // the following.\n * //-\n * fs.createReadStream('/Users/stephen/Photos/birthday-at-the-zoo/panda.jpg')\n * .pipe(file.createWriteStream({\n * metadata: {\n * contentType: 'image/jpeg',\n * metadata: {\n * custom: 'metadata'\n * }\n * }\n * }))\n * .on('error', function(err) {})\n * .on('finish', function() {\n * // The file upload is complete.\n * });\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n createWriteStream(options = {}) {\n options = extend(true, { metadata: {} }, options);\n if (options.contentType) {\n options.metadata.contentType = options.contentType;\n }\n if (!options.metadata.contentType ||\n options.metadata.contentType === 'auto') {\n const detectedContentType = mime.getType(this.name);\n if (detectedContentType) {\n options.metadata.contentType = detectedContentType;\n }\n }\n let gzip = options.gzip;\n if (gzip === 'auto') {\n gzip = compressible(options.metadata.contentType);\n }\n if (gzip) {\n options.metadata.contentEncoding = 'gzip';\n }\n let crc32c = true;\n let md5 = false;\n if (typeof options.validation === 'string') {\n options.validation = options.validation.toLowerCase();\n crc32c = options.validation === 'crc32c';\n md5 = options.validation === 'md5';\n }\n else if (options.validation === false) {\n crc32c = false;\n }\n // Collect data as it comes in to store in a hash. This is compared to the\n // checksum value on the returned metadata from the API.\n const validateStream = hashStreamValidation({\n crc32c,\n md5,\n });\n const fileWriteStream = duplexify();\n fileWriteStream.on('progress', evt => {\n stream.emit('progress', evt);\n });\n const stream = streamEvents(pumpify([\n gzip ? zlib.createGzip() : new stream_1.PassThrough(),\n validateStream,\n fileWriteStream,\n ]));\n // Wait until we've received data to determine what upload technique to use.\n stream.on('writing', () => {\n if (options.resumable === false) {\n this.startSimpleUpload_(fileWriteStream, options);\n return;\n }\n if (options.configPath) {\n this.startResumableUpload_(fileWriteStream, options);\n return;\n }\n // The logic below attempts to mimic the resumable upload library,\n // gcs-resumable-upload. That library requires a writable configuration\n // directory in order to work. If we wait for that library to discover any\n // issues, we've already started a resumable upload which is difficult to back\n // out of. We want to catch any errors first, so we can choose a simple, non-\n // resumable upload instead.\n // Same as configstore (used by gcs-resumable-upload):\n // https://github.com/yeoman/configstore/blob/f09f067e50e6a636cfc648a6fc36a522062bd49d/index.js#L11\n const configDir = xdgBasedir.config || os.tmpdir();\n fs.access(configDir, fs.constants.W_OK, accessErr => {\n if (!accessErr) {\n // A configuration directory exists, and it's writable. gcs-resumable-upload\n // should have everything it needs to work.\n this.startResumableUpload_(fileWriteStream, options);\n return;\n }\n // The configuration directory is either not writable, or it doesn't exist.\n // gcs-resumable-upload will attempt to create it for the user, but we'll try\n // it now to confirm that it won't have any issues. That way, if we catch the\n // issue before we start the resumable upload, we can instead start a simple\n // upload.\n fs.mkdir(configDir, { mode: 0o0700 }, err => {\n if (!err) {\n // We successfully created a configuration directory that\n // gcs-resumable-upload will use.\n this.startResumableUpload_(fileWriteStream, options);\n return;\n }\n if (options.resumable) {\n // The user wanted a resumable upload, but we couldn't create a\n // configuration directory, which means gcs-resumable-upload will fail.\n // Determine if the issue is that the directory does not exist or\n // if the directory exists, but is not writable.\n const error = new ResumableUploadError([\n 'A resumable upload could not be performed. The directory,',\n `${configDir}, is not writable. You may try another upload,`,\n 'this time setting `options.resumable` to `false`.',\n ].join(' '));\n fs.access(configDir, fs.constants.R_OK, noReadErr => {\n if (noReadErr) {\n error.additionalInfo = 'The directory does not exist.';\n }\n else {\n error.additionalInfo = 'The directory is read-only.';\n }\n stream.destroy(error);\n });\n }\n else {\n // The user didn't care, resumable or not. Fall back to simple upload.\n this.startSimpleUpload_(fileWriteStream, options);\n }\n });\n });\n });\n fileWriteStream.on('response', stream.emit.bind(stream, 'response'));\n // This is to preserve the `finish` event. We wait until the request stream\n // emits \"complete\", as that is when we do validation of the data. After\n // that is successful, we can allow the stream to naturally finish.\n //\n // Reference for tracking when we can use a non-hack solution:\n // https://github.com/nodejs/node/pull/2314\n fileWriteStream.on('prefinish', () => {\n stream.cork();\n });\n // Compare our hashed version vs the completed upload's version.\n fileWriteStream.on('complete', () => {\n const metadata = this.metadata;\n // If we're doing validation, assume the worst-- a data integrity\n // mismatch. If not, these tests won't be performed, and we can assume the\n // best.\n let failed = crc32c || md5;\n if (crc32c && metadata.crc32c) {\n // We must remove the first four bytes from the returned checksum.\n // http://stackoverflow.com/questions/25096737/\n // base64-encoding-of-crc32c-long-value\n failed = !validateStream.test('crc32c', metadata.crc32c.substr(4));\n }\n if (md5 && metadata.md5Hash) {\n failed = !validateStream.test('md5', metadata.md5Hash);\n }\n if (failed) {\n this.delete((err) => {\n let code;\n let message;\n if (err) {\n code = 'FILE_NO_UPLOAD_DELETE';\n message = `${FileExceptionMessages.UPLOAD_MISMATCH_DELETE_FAIL}${err.message}`;\n }\n else if (md5 && !metadata.md5Hash) {\n code = 'MD5_NOT_AVAILABLE';\n message = FileExceptionMessages.MD5_NOT_AVAILABLE;\n }\n else {\n code = 'FILE_NO_UPLOAD';\n message = FileExceptionMessages.UPLOAD_MISMATCH;\n }\n const error = new RequestError(message);\n error.code = code;\n error.errors = [err];\n fileWriteStream.destroy(error);\n });\n return;\n }\n stream.uncork();\n });\n return stream;\n }\n /**\n * Delete failed resumable upload file cache.\n *\n * Resumable file upload cache the config file to restart upload in case of\n * failure. In certain scenarios, the resumable upload will not works and\n * upload file cache needs to be deleted to upload the same file.\n *\n * Following are some of the scenarios.\n *\n * Resumable file upload failed even though the file is successfully saved\n * on the google storage and need to clean up a resumable file cache to\n * update the same file.\n *\n * Resumable file upload failed due to pre-condition\n * (i.e generation number is not matched) and want to upload a same\n * file with the new generation number.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file', { generation: 0 });\n * const contents = 'This is the contents of the file.';\n *\n * file.save(contents, function(err) {\n * if (err) {\n * file.deleteResumableCache();\n * }\n * });\n *\n * ```\n */\n deleteResumableCache() {\n const uploadStream = resumableUpload.upload({\n bucket: this.bucket.name,\n file: this.name,\n generation: this.generation,\n retryOptions: this.storage.retryOptions,\n });\n uploadStream.deleteConfig();\n }\n /**\n * @typedef {array} DownloadResponse\n * @property [0] The contents of a File.\n */\n /**\n * @callback DownloadCallback\n * @param err Request error, if any.\n * @param contents The contents of a File.\n */\n /**\n * Convenience method to download a file into memory or to a local\n * destination.\n *\n * @param {object} [options] Configuration options. The arguments match those\n * passed to {@link File#createReadStream}.\n * @param {string} [options.destination] Local file path to write the file's\n * contents to.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DownloadCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Download a file into memory. The contents will be available as the\n * second\n * // argument in the demonstration below, `contents`.\n * //-\n * file.download(function(err, contents) {});\n *\n * //-\n * // Download a file to a local destination.\n * //-\n * file.download({\n * destination: '/Users/me/Desktop/file-backup.txt'\n * }, function(err) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.download().then(function(data) {\n * const contents = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_download_file\n * Another example:\n *\n * @example include:samples/encryption.js\n * region_tag:storage_download_encrypted_file\n * Example of downloading an encrypted file:\n *\n * @example include:samples/requesterPays.js\n * region_tag:storage_download_file_requester_pays\n * Example of downloading a file where the requester pays:\n */\n download(optionsOrCallback, cb) {\n let options;\n if (typeof optionsOrCallback === 'function') {\n cb = optionsOrCallback;\n options = {};\n }\n else {\n options = optionsOrCallback;\n }\n let called = false;\n const callback = ((...args) => {\n if (!called)\n cb(...args);\n called = true;\n });\n const destination = options.destination;\n delete options.destination;\n const fileStream = this.createReadStream(options);\n if (destination) {\n fileStream.on('error', callback).once('data', data => {\n // We know that the file exists the server\n const writable = fs.createWriteStream(destination);\n writable.write(data);\n fileStream.pipe(writable).on('error', callback).on('finish', callback);\n });\n }\n else {\n this.getBufferFromReadable(fileStream)\n .then(contents => callback === null || callback === void 0 ? void 0 : callback(null, contents))\n .catch(callback);\n }\n }\n /**\n * The Storage API allows you to use a custom key for server-side encryption.\n *\n * See {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}\n *\n * @param {string|buffer} encryptionKey An AES-256 encryption key.\n * @returns {File}\n *\n * @example\n * ```\n * const crypto = require('crypto');\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const encryptionKey = crypto.randomBytes(32);\n *\n * const fileWithCustomEncryption = myBucket.file('my-file');\n * fileWithCustomEncryption.setEncryptionKey(encryptionKey);\n *\n * const fileWithoutCustomEncryption = myBucket.file('my-file');\n *\n * fileWithCustomEncryption.save('data', function(err) {\n * // Try to download with the File object that hasn't had\n * // `setEncryptionKey()` called:\n * fileWithoutCustomEncryption.download(function(err) {\n * // We will receive an error:\n * // err.message === 'Bad Request'\n *\n * // Try again with the File object we called `setEncryptionKey()` on:\n * fileWithCustomEncryption.download(function(err, contents) {\n * // contents.toString() === 'data'\n * });\n * });\n * });\n *\n * ```\n * @example include:samples/encryption.js\n * region_tag:storage_upload_encrypted_file\n * Example of uploading an encrypted file:\n *\n * @example include:samples/encryption.js\n * region_tag:storage_download_encrypted_file\n * Example of downloading an encrypted file:\n */\n setEncryptionKey(encryptionKey) {\n this.encryptionKey = encryptionKey;\n this.encryptionKeyBase64 = Buffer.from(encryptionKey).toString('base64');\n this.encryptionKeyHash = crypto\n .createHash('sha256')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .update(this.encryptionKeyBase64, 'base64')\n .digest('base64');\n this.encryptionKeyInterceptor = {\n request: reqOpts => {\n reqOpts.headers = reqOpts.headers || {};\n reqOpts.headers['x-goog-encryption-algorithm'] = 'AES256';\n reqOpts.headers['x-goog-encryption-key'] = this.encryptionKeyBase64;\n reqOpts.headers['x-goog-encryption-key-sha256'] =\n this.encryptionKeyHash;\n return reqOpts;\n },\n };\n this.interceptors.push(this.encryptionKeyInterceptor);\n return this;\n }\n /**\n * @typedef {array} GetExpirationDateResponse\n * @property {date} 0 A Date object representing the earliest time this file's\n * retention policy will expire.\n */\n /**\n * @callback GetExpirationDateCallback\n * @param {?Error} err Request error, if any.\n * @param {date} expirationDate A Date object representing the earliest time\n * this file's retention policy will expire.\n */\n /**\n * If this bucket has a retention policy defined, use this method to get a\n * Date object representing the earliest time this file will expire.\n *\n * @param {GetExpirationDateCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.getExpirationDate(function(err, expirationDate) {\n * // expirationDate is a Date object.\n * });\n * ```\n */\n getExpirationDate(callback) {\n this.getMetadata((err, metadata, apiResponse) => {\n if (err) {\n callback(err, null, apiResponse);\n return;\n }\n if (!metadata.retentionExpirationTime) {\n const error = new Error(FileExceptionMessages.EXPIRATION_TIME_NA);\n callback(error, null, apiResponse);\n return;\n }\n callback(null, new Date(metadata.retentionExpirationTime), apiResponse);\n });\n }\n /**\n * @typedef {array} GetSignedPolicyResponse\n * @property {object} 0 The document policy.\n */\n /**\n * @callback GetSignedPolicyCallback\n * @param {?Error} err Request error, if any.\n * @param {object} policy The document policy.\n */\n /**\n * Get a v2 signed policy document to allow a user to upload data with a POST\n * request.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed policy. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/xml-api/post-object#policydocument| Policy Document Reference}\n *\n * @deprecated `getSignedPolicy()` is deprecated in favor of\n * `generateSignedPostPolicyV2()` and `generateSignedPostPolicyV4()`.\n * Currently, this method is an alias to `getSignedPolicyV2()`,\n * and will be removed in a future major release.\n * We recommend signing new policies using v4.\n * @internal\n *\n * @throws {Error} If an expiration timestamp from the past is given.\n * @throws {Error} If options.equals has an array with less or more than two\n * members.\n * @throws {Error} If options.startsWith has an array with less or more than two\n * members.\n *\n * @param {object} options Configuration options.\n * @param {array|array[]} [options.equals] Array of request parameters and\n * their expected value (e.g. [['$', '']]). Values are\n * translated into equality constraints in the conditions field of the\n * policy document (e.g. ['eq', '$', '']). If only one\n * equality condition is to be specified, options.equals can be a one-\n * dimensional array (e.g. ['$', '']).\n * @param {*} options.expires - A timestamp when this policy will expire. Any\n * value given is passed to `new Date()`.\n * @param {array|array[]} [options.startsWith] Array of request parameters and\n * their expected prefixes (e.g. [['$', '']). Values are\n * translated into starts-with constraints in the conditions field of the\n * policy document (e.g. ['starts-with', '$', '']). If only\n * one prefix condition is to be specified, options.startsWith can be a\n * one- dimensional array (e.g. ['$', '']).\n * @param {string} [options.acl] ACL for the object from possibly predefined\n * ACLs.\n * @param {string} [options.successRedirect] The URL to which the user client\n * is redirected if the upload is successful.\n * @param {string} [options.successStatus] - The status of the Google Storage\n * response if the upload is successful (must be string).\n * @param {object} [options.contentLengthRange]\n * @param {number} [options.contentLengthRange.min] Minimum value for the\n * request's content length.\n * @param {number} [options.contentLengthRange.max] Maximum value for the\n * request's content length.\n * @param {GetSignedPolicyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const options = {\n * equals: ['$Content-Type', 'image/jpeg'],\n * expires: '10-25-2022',\n * contentLengthRange: {\n * min: 0,\n * max: 1024\n * }\n * };\n *\n * file.getSignedPolicy(options, function(err, policy) {\n * // policy.string: the policy document in plain text.\n * // policy.base64: the policy document in base64.\n * // policy.signature: the policy signature in base64.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.getSignedPolicy(options).then(function(data) {\n * const policy = data[0];\n * });\n * ```\n */\n getSignedPolicy(optionsOrCallback, cb) {\n const args = util_1.normalize(optionsOrCallback, cb);\n const options = args.options;\n const callback = args.callback;\n this.generateSignedPostPolicyV2(options, callback);\n }\n /**\n * @typedef {array} GenerateSignedPostPolicyV2Response\n * @property {object} 0 The document policy.\n */\n /**\n * @callback GenerateSignedPostPolicyV2Callback\n * @param {?Error} err Request error, if any.\n * @param {object} policy The document policy.\n */\n /**\n * Get a signed policy document to allow a user to upload data with a POST\n * request.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed policy. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/xml-api/post-object-v2| POST Object with the V2 signing process}\n *\n * @throws {Error} If an expiration timestamp from the past is given.\n * @throws {Error} If options.equals has an array with less or more than two\n * members.\n * @throws {Error} If options.startsWith has an array with less or more than two\n * members.\n *\n * @param {object} options Configuration options.\n * @param {array|array[]} [options.equals] Array of request parameters and\n * their expected value (e.g. [['$', '']]). Values are\n * translated into equality constraints in the conditions field of the\n * policy document (e.g. ['eq', '$', '']). If only one\n * equality condition is to be specified, options.equals can be a one-\n * dimensional array (e.g. ['$', '']).\n * @param {*} options.expires - A timestamp when this policy will expire. Any\n * value given is passed to `new Date()`.\n * @param {array|array[]} [options.startsWith] Array of request parameters and\n * their expected prefixes (e.g. [['$', '']). Values are\n * translated into starts-with constraints in the conditions field of the\n * policy document (e.g. ['starts-with', '$', '']). If only\n * one prefix condition is to be specified, options.startsWith can be a\n * one- dimensional array (e.g. ['$', '']).\n * @param {string} [options.acl] ACL for the object from possibly predefined\n * ACLs.\n * @param {string} [options.successRedirect] The URL to which the user client\n * is redirected if the upload is successful.\n * @param {string} [options.successStatus] - The status of the Google Storage\n * response if the upload is successful (must be string).\n * @param {object} [options.contentLengthRange]\n * @param {number} [options.contentLengthRange.min] Minimum value for the\n * request's content length.\n * @param {number} [options.contentLengthRange.max] Maximum value for the\n * request's content length.\n * @param {GenerateSignedPostPolicyV2Callback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const options = {\n * equals: ['$Content-Type', 'image/jpeg'],\n * expires: '10-25-2022',\n * contentLengthRange: {\n * min: 0,\n * max: 1024\n * }\n * };\n *\n * file.generateSignedPostPolicyV2(options, function(err, policy) {\n * // policy.string: the policy document in plain text.\n * // policy.base64: the policy document in base64.\n * // policy.signature: the policy signature in base64.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.generateSignedPostPolicyV2(options).then(function(data) {\n * const policy = data[0];\n * });\n * ```\n */\n generateSignedPostPolicyV2(optionsOrCallback, cb) {\n const args = util_1.normalize(optionsOrCallback, cb);\n let options = args.options;\n const callback = args.callback;\n const expires = new Date(options.expires);\n if (isNaN(expires.getTime())) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_INVALID);\n }\n if (expires.valueOf() < Date.now()) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_PAST);\n }\n options = Object.assign({}, options);\n const conditions = [\n ['eq', '$key', this.name],\n {\n bucket: this.bucket.name,\n },\n ];\n if (Array.isArray(options.equals)) {\n if (!Array.isArray(options.equals[0])) {\n options.equals = [options.equals];\n }\n options.equals.forEach(condition => {\n if (!Array.isArray(condition) || condition.length !== 2) {\n throw new Error(FileExceptionMessages.EQUALS_CONDITION_TWO_ELEMENTS);\n }\n conditions.push(['eq', condition[0], condition[1]]);\n });\n }\n if (Array.isArray(options.startsWith)) {\n if (!Array.isArray(options.startsWith[0])) {\n options.startsWith = [options.startsWith];\n }\n options.startsWith.forEach(condition => {\n if (!Array.isArray(condition) || condition.length !== 2) {\n throw new Error(FileExceptionMessages.STARTS_WITH_TWO_ELEMENTS);\n }\n conditions.push(['starts-with', condition[0], condition[1]]);\n });\n }\n if (options.acl) {\n conditions.push({\n acl: options.acl,\n });\n }\n if (options.successRedirect) {\n conditions.push({\n success_action_redirect: options.successRedirect,\n });\n }\n if (options.successStatus) {\n conditions.push({\n success_action_status: options.successStatus,\n });\n }\n if (options.contentLengthRange) {\n const min = options.contentLengthRange.min;\n const max = options.contentLengthRange.max;\n if (typeof min !== 'number' || typeof max !== 'number') {\n throw new Error(FileExceptionMessages.CONTENT_LENGTH_RANGE_MIN_MAX);\n }\n conditions.push(['content-length-range', min, max]);\n }\n const policy = {\n expiration: expires.toISOString(),\n conditions,\n };\n const policyString = JSON.stringify(policy);\n const policyBase64 = Buffer.from(policyString).toString('base64');\n this.storage.authClient.sign(policyBase64).then(signature => {\n callback(null, {\n string: policyString,\n base64: policyBase64,\n signature,\n });\n }, err => {\n callback(new signer_1.SigningError(err.message));\n });\n }\n /**\n * @typedef {object} SignedPostPolicyV4Output\n * @property {string} url The request URL.\n * @property {object} fields The form fields to include in the POST request.\n */\n /**\n * @typedef {array} GenerateSignedPostPolicyV4Response\n * @property {SignedPostPolicyV4Output} 0 An object containing the request URL and form fields.\n */\n /**\n * @callback GenerateSignedPostPolicyV4Callback\n * @param {?Error} err Request error, if any.\n * @param {SignedPostPolicyV4Output} output An object containing the request URL and form fields.\n */\n /**\n * Get a v4 signed policy document to allow a user to upload data with a POST\n * request.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed policy. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/xml-api/post-object#policydocument| Policy Document Reference}\n *\n * @param {object} options Configuration options.\n * @param {Date|number|string} options.expires - A timestamp when this policy will expire. Any\n * value given is passed to `new Date()`.\n * @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @param {string} [config.bucketBoundHostname] The bucket-bound hostname to return in\n * the result, e.g. \"https://cdn.example.com\".\n * @param {object} [config.fields] [Form fields]{@link https://cloud.google.com/storage/docs/xml-api/post-object#policydocument}\n * to include in the signed policy. Any fields with key beginning with 'x-ignore-'\n * will not be included in the policy to be signed.\n * @param {object[]} [config.conditions] [Conditions]{@link https://cloud.google.com/storage/docs/authentication/signatures#policy-document}\n * to include in the signed policy. All fields given in `config.fields` are\n * automatically included in the conditions array, adding the same entry\n * in both `fields` and `conditions` will result in duplicate entries.\n *\n * @param {GenerateSignedPostPolicyV4Callback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const options = {\n * expires: '10-25-2022',\n * conditions: [\n * ['eq', '$Content-Type', 'image/jpeg'],\n * ['content-length-range', 0, 1024],\n * ],\n * fields: {\n * acl: 'public-read',\n * 'x-goog-meta-foo': 'bar',\n * 'x-ignore-mykey': 'data'\n * }\n * };\n *\n * file.generateSignedPostPolicyV4(options, function(err, response) {\n * // response.url The request URL\n * // response.fields The form fields (including the signature) to include\n * // to be used to upload objects by HTML forms.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.generateSignedPostPolicyV4(options).then(function(data) {\n * const response = data[0];\n * // response.url The request URL\n * // response.fields The form fields (including the signature) to include\n * // to be used to upload objects by HTML forms.\n * });\n * ```\n */\n generateSignedPostPolicyV4(optionsOrCallback, cb) {\n const args = util_1.normalize(optionsOrCallback, cb);\n let options = args.options;\n const callback = args.callback;\n const expires = new Date(options.expires);\n if (isNaN(expires.getTime())) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_INVALID);\n }\n if (expires.valueOf() < Date.now()) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_PAST);\n }\n if (expires.valueOf() - Date.now() > SEVEN_DAYS * 1000) {\n throw new Error(`Max allowed expiration is seven days (${SEVEN_DAYS} seconds).`);\n }\n options = Object.assign({}, options);\n let fields = Object.assign({}, options.fields);\n const now = new Date();\n const nowISO = util_1.formatAsUTCISO(now, true);\n const todayISO = util_1.formatAsUTCISO(now);\n const sign = async () => {\n const { client_email } = await this.storage.authClient.getCredentials();\n const credential = `${client_email}/${todayISO}/auto/storage/goog4_request`;\n fields = {\n ...fields,\n bucket: this.bucket.name,\n key: this.name,\n 'x-goog-date': nowISO,\n 'x-goog-credential': credential,\n 'x-goog-algorithm': 'GOOG4-RSA-SHA256',\n };\n const conditions = options.conditions || [];\n Object.entries(fields).forEach(([key, value]) => {\n if (!key.startsWith('x-ignore-')) {\n conditions.push({ [key]: value });\n }\n });\n delete fields.bucket;\n const expiration = util_1.formatAsUTCISO(expires, true, '-', ':');\n const policy = {\n conditions,\n expiration,\n };\n const policyString = util_1.unicodeJSONStringify(policy);\n const policyBase64 = Buffer.from(policyString).toString('base64');\n try {\n const signature = await this.storage.authClient.sign(policyBase64);\n const signatureHex = Buffer.from(signature, 'base64').toString('hex');\n fields['policy'] = policyBase64;\n fields['x-goog-signature'] = signatureHex;\n let url;\n if (options.virtualHostedStyle) {\n url = `https://${this.bucket.name}.storage.googleapis.com/`;\n }\n else if (options.bucketBoundHostname) {\n url = `${options.bucketBoundHostname}/`;\n }\n else {\n url = `${exports.STORAGE_POST_POLICY_BASE_URL}/${this.bucket.name}/`;\n }\n return {\n url,\n fields,\n };\n }\n catch (err) {\n throw new signer_1.SigningError(err.message);\n }\n };\n sign().then(res => callback(null, res), callback);\n }\n /**\n * @typedef {array} GetSignedUrlResponse\n * @property {object} 0 The signed URL.\n */\n /**\n * @callback GetSignedUrlCallback\n * @param {?Error} err Request error, if any.\n * @param {object} url The signed URL.\n */\n /**\n * Get a signed URL to allow limited time access to the file.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed URL. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/signed-urls| Signed URLs Reference}\n *\n * @throws {Error} if an expiration timestamp from the past is given.\n *\n * @param {object} config Configuration object.\n * @param {string} config.action \"read\" (HTTP: GET), \"write\" (HTTP: PUT), or\n * \"delete\" (HTTP: DELETE), \"resumable\" (HTTP: POST).\n * When using \"resumable\", the header `X-Goog-Resumable: start` has\n * to be sent when making a request with the signed URL.\n * @param {*} config.expires A timestamp when this link will expire. Any value\n * given is passed to `new Date()`.\n * Note: 'v4' supports maximum duration of 7 days (604800 seconds) from now.\n * See [reference]{@link https://cloud.google.com/storage/docs/access-control/signed-urls#example}\n * @param {string} [config.version='v2'] The signing version to use, either\n * 'v2' or 'v4'.\n * @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @param {string} [config.cname] The cname for this bucket, i.e.,\n * \"https://cdn.example.com\".\n * @param {string} [config.contentMd5] The MD5 digest value in base64. Just like\n * if you provide this, the client must provide this HTTP header with this same\n * value in its request, so to if this parameter is not provided here,\n * the client must not provide any value for this HTTP header in its request.\n * @param {string} [config.contentType] Just like if you provide this, the client\n * must provide this HTTP header with this same value in its request, so to if\n * this parameter is not provided here, the client must not provide any value\n * for this HTTP header in its request.\n * @param {object} [config.extensionHeaders] If these headers are used, the\n * server will check to make sure that the client provides matching\n * values. See {@link https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headers| Canonical extension headers}\n * for the requirements of this feature, most notably:\n * - The header name must be prefixed with `x-goog-`\n * - The header name must be all lowercase\n *\n * Note: Multi-valued header passed as an array in the extensionHeaders\n * object is converted into a string, delimited by `,` with\n * no space. Requests made using the signed URL will need to\n * delimit multi-valued headers using a single `,` as well, or\n * else the server will report a mismatched signature.\n * @param {object} [config.queryParams] Additional query parameters to include\n * in the signed URL.\n * @param {string} [config.promptSaveAs] The filename to prompt the user to\n * save the file as when the signed url is accessed. This is ignored if\n * `config.responseDisposition` is set.\n * @param {string} [config.responseDisposition] The\n * {@link http://goo.gl/yMWxQV| response-content-disposition parameter} of the\n * signed url.\n * @param {*} [config.accessibleAt=Date.now()] A timestamp when this link became usable. Any value\n * given is passed to `new Date()`.\n * Note: Use for 'v4' only.\n * @param {string} [config.responseType] The response-content-type parameter\n * of the signed url.\n * @param {GetSignedUrlCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Generate a URL that allows temporary access to download your file.\n * //-\n * const request = require('request');\n *\n * const config = {\n * action: 'read',\n * expires: '03-17-2025',\n * };\n *\n * file.getSignedUrl(config, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The file is now available to read from this URL.\n * request(url, function(err, resp) {\n * // resp.statusCode = 200\n * });\n * });\n *\n * //-\n * // Generate a URL that allows temporary access to download your file.\n * // Access will begin at accessibleAt and end at expires.\n * //-\n * const request = require('request');\n *\n * const config = {\n * action: 'read',\n * expires: '03-17-2025',\n * accessibleAt: '03-13-2025'\n * };\n *\n * file.getSignedUrl(config, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The file will be available to read from this URL from 03-13-2025 to 03-17-2025.\n * request(url, function(err, resp) {\n * // resp.statusCode = 200\n * });\n * });\n *\n * //-\n * // Generate a URL to allow write permissions. This means anyone with this\n * URL\n * // can send a POST request with new data that will overwrite the file.\n * //-\n * file.getSignedUrl({\n * action: 'write',\n * expires: '03-17-2025'\n * }, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The file is now available to be written to.\n * const writeStream = request.put(url);\n * writeStream.end('New data');\n *\n * writeStream.on('complete', function(resp) {\n * // Confirm the new content was saved.\n * file.download(function(err, fileContents) {\n * console.log('Contents:', fileContents.toString());\n * // Contents: New data\n * });\n * });\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.getSignedUrl(config).then(function(data) {\n * const url = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_generate_signed_url\n * Another example:\n */\n getSignedUrl(cfg, callback) {\n const method = ActionToHTTPMethod[cfg.action];\n if (!method) {\n throw new Error(storage_1.ExceptionMessages.INVALID_ACTION);\n }\n const extensionHeaders = util_1.objectKeyToLowercase(cfg.extensionHeaders || {});\n if (cfg.action === 'resumable') {\n extensionHeaders['x-goog-resumable'] = 'start';\n }\n const queryParams = Object.assign({}, cfg.queryParams);\n if (typeof cfg.responseType === 'string') {\n queryParams['response-content-type'] = cfg.responseType;\n }\n if (typeof cfg.promptSaveAs === 'string') {\n queryParams['response-content-disposition'] =\n 'attachment; filename=\"' + cfg.promptSaveAs + '\"';\n }\n if (typeof cfg.responseDisposition === 'string') {\n queryParams['response-content-disposition'] = cfg.responseDisposition;\n }\n if (this.generation) {\n queryParams['generation'] = this.generation.toString();\n }\n const signConfig = {\n method,\n expires: cfg.expires,\n accessibleAt: cfg.accessibleAt,\n extensionHeaders,\n queryParams,\n contentMd5: cfg.contentMd5,\n contentType: cfg.contentType,\n };\n if (cfg.cname) {\n signConfig.cname = cfg.cname;\n }\n if (cfg.version) {\n signConfig.version = cfg.version;\n }\n if (cfg.virtualHostedStyle) {\n signConfig.virtualHostedStyle = cfg.virtualHostedStyle;\n }\n if (!this.signer) {\n this.signer = new signer_1.URLSigner(this.storage.authClient, this.bucket, this);\n }\n this.signer\n .getSignedUrl(signConfig)\n .then(signedUrl => callback(null, signedUrl), callback);\n }\n /**\n * @callback IsPublicCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} resp Whether file is public or not.\n */\n /**\n * @typedef {array} IsPublicResponse\n * @property {boolean} 0 Whether file is public or not.\n */\n /**\n * Check whether this file is public or not by sending\n * a HEAD request without credentials.\n * No errors from the server indicates that the current\n * file is public.\n * A 403-Forbidden error {@link https://cloud.google.com/storage/docs/json_api/v1/status-codes#403_Forbidden}\n * indicates that file is private.\n * Any other non 403 error is propagated to user.\n *\n * @param {IsPublicCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Check whether the file is publicly accessible.\n * //-\n * file.isPublic(function(err, resp) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n * console.log(`the file ${file.id} is public: ${resp}`) ;\n * })\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.isPublic().then(function(data) {\n * const resp = data[0];\n * });\n * ```\n */\n isPublic(callback) {\n var _a;\n // Build any custom headers based on the defined interceptors on the parent\n // storage object and this object\n const storageInterceptors = ((_a = this.storage) === null || _a === void 0 ? void 0 : _a.interceptors) || [];\n const fileInterceptors = this.interceptors || [];\n const allInterceptors = storageInterceptors.concat(fileInterceptors);\n const headers = allInterceptors.reduce((acc, curInterceptor) => {\n const currentHeaders = curInterceptor.request({\n uri: `${this.storage.apiEndpoint}/${this.bucket.name}/${encodeURIComponent(this.name)}`,\n });\n Object.assign(acc, currentHeaders.headers);\n return acc;\n }, {});\n nodejs_common_1.util.makeRequest({\n method: 'HEAD',\n uri: `${this.storage.apiEndpoint}/${this.bucket.name}/${encodeURIComponent(this.name)}`,\n headers,\n }, {\n retryOptions: this.storage.retryOptions,\n }, (err) => {\n if (err) {\n const apiError = err;\n if (apiError.code === 403) {\n callback(null, false);\n }\n else {\n callback(err);\n }\n }\n else {\n callback(null, true);\n }\n });\n }\n /**\n * @typedef {object} MakeFilePrivateOptions Configuration options for File#makePrivate().\n * @property {Metadata} [metadata] Define custom metadata properties to define\n * along with the operation.\n * @property {boolean} [strict] If true, set the file to be private to\n * only the owner user. Otherwise, it will be private to the project.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback MakeFilePrivateCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} MakeFilePrivateResponse\n * @property {object} 0 The full API response.\n */\n /**\n * Make a file private to the project and remove all other permissions.\n * Set `options.strict` to true to make the file private to only the owner.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/patch| Objects: patch API Documentation}\n *\n * @param {MakeFilePrivateOptions} [options] Configuration options.\n * @param {MakeFilePrivateCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Set the file private so only project maintainers can see and modify it.\n * //-\n * file.makePrivate(function(err) {});\n *\n * //-\n * // Set the file private so only the owner can see and modify it.\n * //-\n * file.makePrivate({ strict: true }, function(err) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.makePrivate().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n makePrivate(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const query = {\n predefinedAcl: options.strict ? 'private' : 'projectPrivate',\n };\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, bucket_1.AvailableServiceObjectMethods.setMetadata);\n // You aren't allowed to set both predefinedAcl & acl properties on a file,\n // so acl must explicitly be nullified, destroying all previous acls on the\n // file.\n const metadata = extend({}, options.metadata, { acl: null });\n this.setMetadata(metadata, query, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {array} MakeFilePublicResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback MakeFilePublicCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Set a file to be publicly readable and maintain all previous permissions.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/insert| ObjectAccessControls: insert API Documentation}\n *\n * @param {MakeFilePublicCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.makePublic(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.makePublic().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_make_public\n * Another example:\n */\n makePublic(callback) {\n callback = callback || nodejs_common_1.util.noop;\n this.acl.add({\n entity: 'allUsers',\n role: 'READER',\n }, (err, acl, resp) => {\n callback(err, resp);\n });\n }\n /**\n * The public URL of this File\n * Use {@link File#makePublic} to enable anonymous access via the returned URL.\n *\n * @returns {string}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const file = bucket.file('my-file');\n *\n * // publicUrl will be \"https://storage.googleapis.com/albums/my-file\"\n * const publicUrl = file.publicUrl();\n * ```\n */\n publicUrl() {\n return `${this.storage.apiEndpoint}/${this.bucket.name}/${encodeURIComponent(this.name)}`;\n }\n /**\n * @typedef {array} MoveResponse\n * @property {File} 0 The destination File.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback MoveCallback\n * @param {?Error} err Request error, if any.\n * @param {?File} destinationFile The destination File.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} MoveOptions Configuration options for File#move(). See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects#resource| Object resource}.\n * @param {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Move this file to another location. By default, this will rename the file\n * and keep it in the same bucket, but you can choose to move it to another\n * Bucket by providing a Bucket or File object or a URL beginning with\n * \"gs://\".\n *\n * **Warning**:\n * There is currently no atomic `move` method in the Cloud Storage API,\n * so this method is a composition of {@link File#copy} (to the new\n * location) and {@link File#delete} (from the old location). While\n * unlikely, it is possible that an error returned to your callback could be\n * triggered from either one of these API calls failing, which could leave a\n * duplicate file lingering. The error message will indicate what operation\n * has failed.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/copy| Objects: copy API Documentation}\n *\n * @throws {Error} If the destination file is not provided.\n *\n * @param {string|Bucket|File} destination Destination file.\n * @param {MoveCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * //-\n * // You can pass in a variety of types for the destination.\n * //\n * // For all of the below examples, assume we are working with the following\n * // Bucket and File objects.\n * //-\n * const bucket = storage.bucket('my-bucket');\n * const file = bucket.file('my-image.png');\n *\n * //-\n * // If you pass in a string for the destination, the file is moved to its\n * // current bucket, under the new name provided.\n * //-\n * file.move('my-image-new.png', function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * // but contains instead:\n * // - \"my-image-new.png\"\n *\n * // `destinationFile` is an instance of a File object that refers to your\n * // new file.\n * });\n *\n * //-\n * // If you pass in a string starting with \"gs://\" for the destination, the\n * // file is copied to the other bucket and under the new name provided.\n * //-\n * const newLocation = 'gs://another-bucket/my-image-new.png';\n * file.move(newLocation, function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image-new.png\"\n *\n * // `destinationFile` is an instance of a File object that refers to your\n * // new file.\n * });\n *\n * //-\n * // If you pass in a Bucket object, the file will be moved to that bucket\n * // using the same name.\n * //-\n * const anotherBucket = gcs.bucket('another-bucket');\n *\n * file.move(anotherBucket, function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image.png\"\n *\n * // `destinationFile` is an instance of a File object that refers to your\n * // new file.\n * });\n *\n * //-\n * // If you pass in a File object, you have complete control over the new\n * // bucket and filename.\n * //-\n * const anotherFile = anotherBucket.file('my-awesome-image.png');\n *\n * file.move(anotherFile, function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-awesome-image.png\"\n *\n * // Note:\n * // The `destinationFile` parameter is equal to `anotherFile`.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.move('my-image-new.png').then(function(data) {\n * const destinationFile = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_move_file\n * Another example:\n */\n move(destination, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n callback = callback || nodejs_common_1.util.noop;\n this.copy(destination, options, (err, destinationFile, copyApiResponse) => {\n if (err) {\n err.message = 'file#copy failed with an error - ' + err.message;\n callback(err, null, copyApiResponse);\n return;\n }\n if (this.name !== destinationFile.name ||\n this.bucket.name !== destinationFile.bucket.name) {\n this.delete(options, (err, apiResponse) => {\n if (err) {\n err.message = 'file#delete failed with an error - ' + err.message;\n callback(err, destinationFile, apiResponse);\n return;\n }\n callback(null, destinationFile, copyApiResponse);\n });\n }\n else {\n callback(null, destinationFile, copyApiResponse);\n }\n });\n }\n /**\n * @typedef {array} RenameResponse\n * @property {File} 0 The destination File.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback RenameCallback\n * @param {?Error} err Request error, if any.\n * @param {?File} destinationFile The destination File.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} RenameOptions Configuration options for File#move(). See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects#resource| Object resource}.\n * @param {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Rename this file.\n *\n * **Warning**:\n * There is currently no atomic `rename` method in the Cloud Storage API,\n * so this method is an alias of {@link File#move}, which in turn is a\n * composition of {@link File#copy} (to the new location) and\n * {@link File#delete} (from the old location). While\n * unlikely, it is possible that an error returned to your callback could be\n * triggered from either one of these API calls failing, which could leave a\n * duplicate file lingering. The error message will indicate what operation\n * has failed.\n *\n * @param {string|File} destinationFile Destination file.\n * @param {RenameCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // You can pass in a string or a File object.\n * //\n * // For all of the below examples, assume we are working with the following\n * // Bucket and File objects.\n * //-\n *\n * const bucket = storage.bucket('my-bucket');\n * const file = bucket.file('my-image.png');\n *\n * //-\n * // You can pass in a string for the destinationFile.\n * //-\n * file.rename('renamed-image.png', function(err, renamedFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * // but contains instead:\n * // - \"renamed-image.png\"\n *\n * // `renamedFile` is an instance of a File object that refers to your\n * // renamed file.\n * });\n *\n * //-\n * // You can pass in a File object.\n * //-\n * const anotherFile = anotherBucket.file('my-awesome-image.png');\n *\n * file.rename(anotherFile, function(err, renamedFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n *\n * // Note:\n * // The `renamedFile` parameter is equal to `anotherFile`.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.rename('my-renamed-image.png').then(function(data) {\n * const renamedFile = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n rename(destinationFile, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n callback = callback || nodejs_common_1.util.noop;\n this.move(destinationFile, options, callback);\n }\n /**\n * Makes request and applies userProject query parameter if necessary.\n *\n * @private\n *\n * @param {object} reqOpts - The request options.\n * @param {function} callback - The callback function.\n */\n request(reqOpts, callback) {\n return this.parent.request.call(this, reqOpts, callback);\n }\n /**\n * @callback RotateEncryptionKeyCallback\n * @extends CopyCallback\n */\n /**\n * @typedef RotateEncryptionKeyResponse\n * @extends CopyResponse\n */\n /**\n * @param {string|buffer|object} RotateEncryptionKeyOptions Configuration options\n * for File#rotateEncryptionKey().\n * If a string or Buffer is provided, it is interpreted as an AES-256,\n * customer-supplied encryption key. If you'd like to use a Cloud KMS key\n * name, you must specify an options object with the property name:\n * `kmsKeyName`.\n * @param {string|buffer} [options.encryptionKey] An AES-256 encryption key.\n * @param {string} [options.kmsKeyName] A Cloud KMS key name.\n */\n /**\n * This method allows you to update the encryption key associated with this\n * file.\n *\n * See {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}\n *\n * @param {RotateEncryptionKeyOptions} [options] - Configuration options.\n * @param {RotateEncryptionKeyCallback} [callback]\n * @returns {Promise}\n *\n * @example include:samples/encryption.js\n * region_tag:storage_rotate_encryption_key\n * Example of rotating the encryption key for this file:\n */\n rotateEncryptionKey(optionsOrCallback, callback) {\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n let options = {};\n if (typeof optionsOrCallback === 'string' ||\n optionsOrCallback instanceof Buffer) {\n options = {\n encryptionKey: optionsOrCallback,\n };\n }\n else if (typeof optionsOrCallback === 'object') {\n options = optionsOrCallback;\n }\n const newFile = this.bucket.file(this.id, options);\n this.copy(newFile, callback);\n }\n /**\n * @typedef {object} SaveOptions\n * @extends CreateWriteStreamOptions\n */\n /**\n * @callback SaveCallback\n * @param {?Error} err Request error, if any.\n */\n /**\n * Write strings or buffers to a file.\n *\n * *This is a convenience method which wraps {@link File#createWriteStream}.*\n * To upload arbitrary data to a file, please use {@link File#createWriteStream} directly.\n *\n * Resumable uploads are automatically enabled and must be shut off explicitly\n * by setting `options.resumable` to `false`.\n *\n * Multipart uploads with retryable error codes will be retried 3 times with exponential backoff.\n *\n *

\n * There is some overhead when using a resumable upload that can cause\n * noticeable performance degradation while uploading a series of small\n * files. When uploading files less than 10MB, it is recommended that the\n * resumable feature is disabled.\n *

\n *\n * @param {string | Buffer} data The data to write to a file.\n * @param {SaveOptions} [options] See {@link File#createWriteStream}'s `options`\n * parameter.\n * @param {SaveCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const contents = 'This is the contents of the file.';\n *\n * file.save(contents, function(err) {\n * if (!err) {\n * // File written successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.save(contents).then(function() {});\n * ```\n */\n save(data, optionsOrCallback, callback) {\n // tslint:enable:no-any\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n let maxRetries = this.storage.retryOptions.maxRetries;\n if (!this.shouldRetryBasedOnPreconditionAndIdempotencyStrat(options === null || options === void 0 ? void 0 : options.preconditionOpts)) {\n maxRetries = 0;\n }\n const returnValue = retry(async (bail) => {\n await new Promise((resolve, reject) => {\n if (maxRetries === 0) {\n this.storage.retryOptions.autoRetry = false;\n }\n const writable = this.createWriteStream(options)\n .on('error', err => {\n if (this.storage.retryOptions.autoRetry &&\n this.storage.retryOptions.retryableErrorFn(err)) {\n return reject(err);\n }\n else {\n return bail(err);\n }\n })\n .on('finish', () => {\n return resolve();\n });\n if (options.onUploadProgress) {\n writable.on('progress', options.onUploadProgress);\n }\n writable.end(data);\n });\n }, {\n retries: maxRetries,\n factor: this.storage.retryOptions.retryDelayMultiplier,\n maxTimeout: this.storage.retryOptions.maxRetryDelay * 1000,\n maxRetryTime: this.storage.retryOptions.totalTimeout * 1000,\n });\n if (!callback) {\n return returnValue;\n }\n else {\n return returnValue\n .then(() => {\n if (callback) {\n return callback();\n }\n })\n .catch(callback);\n }\n }\n /**\n * @typedef {array} SetStorageClassResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @typedef {object} SetStorageClassOptions Configuration options for File#setStorageClass().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback SetStorageClassCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Set the storage class for this file.\n *\n * See {@link https://cloud.google.com/storage/docs/per-object-storage-class| Per-Object Storage Class}\n * See {@link https://cloud.google.com/storage/docs/storage-classes| Storage Classes}\n *\n * @param {string} storageClass The new storage class. (`standard`,\n * `nearline`, `coldline`, or `archive`)\n * **Note:** The storage classes `multi_regional` and `regional`\n * are now legacy and will be deprecated in the future.\n * @param {SetStorageClassOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {SetStorageClassCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * file.setStorageClass('nearline', function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // The storage class was updated successfully.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.setStorageClass('nearline').then(function() {});\n * ```\n */\n setStorageClass(storageClass, optionsOrCallback, callback) {\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n const req = extend(true, {}, options);\n // In case we get input like `storageClass`, convert to `storage_class`.\n req.storageClass = storageClass\n .replace(/-/g, '_')\n .replace(/([a-z])([A-Z])/g, (_, low, up) => {\n return low + '_' + up;\n })\n .toUpperCase();\n this.copy(this, req, (err, file, apiResponse) => {\n if (err) {\n callback(err, apiResponse);\n return;\n }\n this.metadata = file.metadata;\n callback(null, apiResponse);\n });\n }\n /**\n * Set a user project to be billed for all requests made from this File\n * object.\n *\n * @param {string} userProject The user project.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const file = bucket.file('my-file');\n *\n * file.setUserProject('grape-spaceship-123');\n * ```\n */\n setUserProject(userProject) {\n this.bucket.setUserProject.call(this, userProject);\n }\n /**\n * This creates a gcs-resumable-upload upload stream.\n *\n * See {@link https://github.com/googleapis/gcs-resumable-upload| gcs-resumable-upload}\n *\n * @param {Duplexify} stream - Duplexify stream of data to pipe to the file.\n * @param {object=} options - Configuration object.\n *\n * @private\n */\n startResumableUpload_(dup, options) {\n options = extend(true, {\n metadata: {},\n }, options);\n const retryOptions = this.storage.retryOptions;\n if (!this.shouldRetryBasedOnPreconditionAndIdempotencyStrat(options === null || options === void 0 ? void 0 : options.preconditionOpts)) {\n retryOptions.autoRetry = false;\n }\n const uploadStream = resumableUpload.upload({\n authClient: this.storage.authClient,\n apiEndpoint: this.storage.apiEndpoint,\n bucket: this.bucket.name,\n configPath: options.configPath,\n customRequestOptions: this.getRequestInterceptors().reduce((reqOpts, interceptorFn) => interceptorFn(reqOpts), {}),\n file: this.name,\n generation: this.generation,\n key: this.encryptionKey,\n kmsKeyName: this.kmsKeyName,\n metadata: options.metadata,\n offset: options.offset,\n predefinedAcl: options.predefinedAcl,\n private: options.private,\n public: options.public,\n uri: options.uri,\n userProject: options.userProject || this.userProject,\n retryOptions: { ...retryOptions },\n params: (options === null || options === void 0 ? void 0 : options.preconditionOpts) || this.instancePreconditionOpts,\n chunkSize: options === null || options === void 0 ? void 0 : options.chunkSize,\n });\n uploadStream\n .on('response', resp => {\n dup.emit('response', resp);\n })\n .on('metadata', metadata => {\n this.metadata = metadata;\n })\n .on('finish', () => {\n dup.emit('complete');\n })\n .on('progress', evt => dup.emit('progress', evt));\n dup.setWritable(uploadStream);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Takes a readable stream and pipes it to a remote file. Unlike\n * `startResumableUpload_`, which uses the resumable upload technique, this\n * method uses a simple upload (all or nothing).\n *\n * @param {Duplexify} dup - Duplexify stream of data to pipe to the file.\n * @param {object=} options - Configuration object.\n *\n * @private\n */\n startSimpleUpload_(dup, options) {\n options = extend(true, {\n metadata: {},\n }, options);\n const apiEndpoint = this.storage.apiEndpoint;\n const bucketName = this.bucket.name;\n const uri = `${apiEndpoint}/upload/storage/v1/b/${bucketName}/o`;\n const reqOpts = {\n qs: {\n name: this.name,\n },\n uri: uri,\n };\n if (this.generation !== undefined) {\n reqOpts.qs.ifGenerationMatch = this.generation;\n }\n if (this.kmsKeyName !== undefined) {\n reqOpts.qs.kmsKeyName = this.kmsKeyName;\n }\n if (typeof options.timeout === 'number') {\n reqOpts.timeout = options.timeout;\n }\n if (options.userProject || this.userProject) {\n reqOpts.qs.userProject = options.userProject || this.userProject;\n }\n if (options.predefinedAcl) {\n reqOpts.qs.predefinedAcl = options.predefinedAcl;\n }\n else if (options.private) {\n reqOpts.qs.predefinedAcl = 'private';\n }\n else if (options.public) {\n reqOpts.qs.predefinedAcl = 'publicRead';\n }\n Object.assign(reqOpts.qs, this.instancePreconditionOpts, options.preconditionOpts);\n nodejs_common_1.util.makeWritableStream(dup, {\n makeAuthenticatedRequest: (reqOpts) => {\n this.request(reqOpts, (err, body, resp) => {\n if (err) {\n dup.destroy(err);\n return;\n }\n this.metadata = body;\n dup.emit('response', resp);\n dup.emit('complete');\n });\n },\n metadata: options.metadata,\n request: reqOpts,\n });\n }\n disableAutoRetryConditionallyIdempotent_(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n coreOpts, methodType) {\n var _a, _b;\n if ((typeof coreOpts === 'object' &&\n ((_b = (_a = coreOpts === null || coreOpts === void 0 ? void 0 : coreOpts.reqOpts) === null || _a === void 0 ? void 0 : _a.qs) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch) === undefined &&\n methodType === bucket_1.AvailableServiceObjectMethods.setMetadata &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n this.storage.retryOptions.autoRetry = false;\n }\n }\n async getBufferFromReadable(readable) {\n const buf = [];\n for await (const chunk of readable) {\n buf.push(chunk);\n }\n return Buffer.concat(buf);\n }\n}\nexports.File = File;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(File, {\n exclude: [\n 'publicUrl',\n 'request',\n 'save',\n 'setEncryptionKey',\n 'shouldRetryBasedOnPreconditionAndIdempotencyStrat',\n 'getBufferFromReadable',\n ],\n});\n//# sourceMappingURL=file.js.map","\"use strict\";\n// Copyright 2022 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createURI = exports.upload = exports.Upload = exports.PROTOCOL_REGEX = void 0;\nconst abort_controller_1 = require(\"abort-controller\");\nconst ConfigStore = require(\"configstore\");\nconst crypto_1 = require(\"crypto\");\nconst extend = require(\"extend\");\nconst gaxios = require(\"gaxios\");\nconst google_auth_library_1 = require(\"google-auth-library\");\nconst stream_1 = require(\"stream\");\nconst retry = require(\"async-retry\");\nconst uuid = require(\"uuid\");\nconst NOT_FOUND_STATUS_CODE = 404;\nconst TERMINATED_UPLOAD_STATUS_CODE = 410;\nconst RESUMABLE_INCOMPLETE_STATUS_CODE = 308;\nconst DEFAULT_API_ENDPOINT_REGEX = /.*\\.googleapis\\.com/;\nconst packageJson = require('../../package.json');\nexports.PROTOCOL_REGEX = /^(\\w*):\\/\\//;\nclass Upload extends stream_1.Writable {\n constructor(cfg) {\n super();\n this.numBytesWritten = 0;\n this.numRetries = 0;\n this.currentInvocationId = {\n chunk: uuid.v4(),\n uri: uuid.v4(),\n offset: uuid.v4(),\n };\n this.upstreamChunkBuffer = Buffer.alloc(0);\n this.chunkBufferEncoding = undefined;\n this.numChunksReadInRequest = 0;\n /**\n * A chunk used for caching the most recent upload chunk.\n * We should not assume that the server received all bytes sent in the request.\n * - https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload\n */\n this.lastChunkSent = Buffer.alloc(0);\n this.upstreamEnded = false;\n cfg = cfg || {};\n if (!cfg.bucket || !cfg.file) {\n throw new Error('A bucket and file name are required');\n }\n cfg.authConfig = cfg.authConfig || {};\n cfg.authConfig.scopes = [\n 'https://www.googleapis.com/auth/devstorage.full_control',\n ];\n this.authClient = cfg.authClient || new google_auth_library_1.GoogleAuth(cfg.authConfig);\n this.apiEndpoint = 'https://storage.googleapis.com';\n if (cfg.apiEndpoint) {\n this.apiEndpoint = this.sanitizeEndpoint(cfg.apiEndpoint);\n if (!DEFAULT_API_ENDPOINT_REGEX.test(cfg.apiEndpoint)) {\n this.authClient = gaxios;\n }\n }\n this.baseURI = `${this.apiEndpoint}/upload/storage/v1/b`;\n this.bucket = cfg.bucket;\n const cacheKeyElements = [cfg.bucket, cfg.file];\n if (typeof cfg.generation === 'number') {\n cacheKeyElements.push(`${cfg.generation}`);\n }\n this.cacheKey = cacheKeyElements.join('/');\n this.customRequestOptions = cfg.customRequestOptions || {};\n this.file = cfg.file;\n this.generation = cfg.generation;\n this.kmsKeyName = cfg.kmsKeyName;\n this.metadata = cfg.metadata || {};\n this.offset = cfg.offset;\n this.origin = cfg.origin;\n this.params = cfg.params || {};\n this.userProject = cfg.userProject;\n this.chunkSize = cfg.chunkSize;\n this.retryOptions = cfg.retryOptions;\n if (cfg.key) {\n const base64Key = Buffer.from(cfg.key).toString('base64');\n this.encryption = {\n key: base64Key,\n hash: crypto_1.createHash('sha256').update(cfg.key).digest('base64'),\n };\n }\n this.predefinedAcl = cfg.predefinedAcl;\n if (cfg.private)\n this.predefinedAcl = 'private';\n if (cfg.public)\n this.predefinedAcl = 'publicRead';\n const configPath = cfg.configPath;\n this.configStore = new ConfigStore('gcs-resumable-upload', null, {\n configPath,\n });\n const autoRetry = cfg.retryOptions.autoRetry;\n this.uriProvidedManually = !!cfg.uri;\n this.uri = cfg.uri || this.get('uri');\n this.numBytesWritten = 0;\n this.numRetries = 0; // counter for number of retries currently executed\n if (!autoRetry) {\n cfg.retryOptions.maxRetries = 0;\n }\n this.timeOfFirstRequest = Date.now();\n const contentLength = cfg.metadata\n ? Number(cfg.metadata.contentLength)\n : NaN;\n this.contentLength = isNaN(contentLength) ? '*' : contentLength;\n this.once('writing', () => {\n if (this.uri) {\n this.continueUploading();\n }\n else {\n this.createURI((err, uri) => {\n if (err) {\n return this.destroy(err);\n }\n this.set({ uri });\n this.startUploading();\n return;\n });\n }\n });\n }\n /**\n * Prevent 'finish' event until the upload has succeeded.\n *\n * @param fireFinishEvent The finish callback\n */\n _final(fireFinishEvent = () => { }) {\n this.upstreamEnded = true;\n this.once('uploadFinished', fireFinishEvent);\n process.nextTick(() => {\n this.emit('upstreamFinished');\n // it's possible `_write` may not be called - namely for empty object uploads\n this.emit('writing');\n });\n }\n /**\n * Handles incoming data from upstream\n *\n * @param chunk The chunk to append to the buffer\n * @param encoding The encoding of the chunk\n * @param readCallback A callback for when the buffer has been read downstream\n */\n _write(chunk, encoding, readCallback = () => { }) {\n // Backwards-compatible event\n this.emit('writing');\n this.upstreamChunkBuffer = Buffer.concat([\n this.upstreamChunkBuffer,\n typeof chunk === 'string' ? Buffer.from(chunk, encoding) : chunk,\n ]);\n this.chunkBufferEncoding = encoding;\n this.once('readFromChunkBuffer', readCallback);\n process.nextTick(() => this.emit('wroteToChunkBuffer'));\n }\n /**\n * Prepends data back to the upstream chunk buffer.\n *\n * @param chunk The data to prepend\n */\n unshiftChunkBuffer(chunk) {\n this.upstreamChunkBuffer = Buffer.concat([chunk, this.upstreamChunkBuffer]);\n }\n /**\n * Retrieves data from upstream's buffer.\n *\n * @param limit The maximum amount to return from the buffer.\n * @returns The data requested.\n */\n pullFromChunkBuffer(limit) {\n const chunk = this.upstreamChunkBuffer.slice(0, limit);\n this.upstreamChunkBuffer = this.upstreamChunkBuffer.slice(limit);\n // notify upstream we've read from the buffer so it can potentially\n // send more data down.\n process.nextTick(() => this.emit('readFromChunkBuffer'));\n return chunk;\n }\n /**\n * A handler for determining if data is ready to be read from upstream.\n *\n * @returns If there will be more chunks to read in the future\n */\n async waitForNextChunk() {\n const willBeMoreChunks = await new Promise(resolve => {\n // There's data available - it should be digested\n if (this.upstreamChunkBuffer.byteLength) {\n return resolve(true);\n }\n // The upstream writable ended, we shouldn't expect any more data.\n if (this.upstreamEnded) {\n return resolve(false);\n }\n // Nothing immediate seems to be determined. We need to prepare some\n // listeners to determine next steps...\n const wroteToChunkBufferCallback = () => {\n removeListeners();\n return resolve(true);\n };\n const upstreamFinishedCallback = () => {\n removeListeners();\n // this should be the last chunk, if there's anything there\n if (this.upstreamChunkBuffer.length)\n return resolve(true);\n return resolve(false);\n };\n // Remove listeners when we're ready to callback.\n const removeListeners = () => {\n this.removeListener('wroteToChunkBuffer', wroteToChunkBufferCallback);\n this.removeListener('upstreamFinished', upstreamFinishedCallback);\n };\n // If there's data recently written it should be digested\n this.once('wroteToChunkBuffer', wroteToChunkBufferCallback);\n // If the upstream finishes let's see if there's anything to grab\n this.once('upstreamFinished', upstreamFinishedCallback);\n });\n return willBeMoreChunks;\n }\n /**\n * Reads data from upstream up to the provided `limit`.\n * Ends when the limit has reached or no data is expected to be pushed from upstream.\n *\n * @param limit The most amount of data this iterator should return. `Infinity` by default.\n * @param oneChunkMode Determines if one, exhaustive chunk is yielded for the iterator\n */\n async *upstreamIterator(limit = Infinity, oneChunkMode) {\n let completeChunk = Buffer.alloc(0);\n // read from upstream chunk buffer\n while (limit && (await this.waitForNextChunk())) {\n // read until end or limit has been reached\n const chunk = this.pullFromChunkBuffer(limit);\n limit -= chunk.byteLength;\n if (oneChunkMode) {\n // return 1 chunk at the end of iteration\n completeChunk = Buffer.concat([completeChunk, chunk]);\n }\n else {\n // return many chunks throughout iteration\n yield {\n chunk,\n encoding: this.chunkBufferEncoding,\n };\n }\n }\n if (oneChunkMode) {\n yield {\n chunk: completeChunk,\n encoding: this.chunkBufferEncoding,\n };\n }\n }\n createURI(callback) {\n if (!callback) {\n return this.createURIAsync();\n }\n this.createURIAsync().then(r => callback(null, r), callback);\n }\n async createURIAsync() {\n const metadata = this.metadata;\n // Check if headers already exist before creating new ones\n const reqOpts = {\n method: 'POST',\n url: [this.baseURI, this.bucket, 'o'].join('/'),\n params: Object.assign({\n name: this.file,\n uploadType: 'resumable',\n }, this.params),\n data: metadata,\n headers: {\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${this.currentInvocationId.uri}`,\n },\n };\n if (metadata.contentLength) {\n reqOpts.headers['X-Upload-Content-Length'] =\n metadata.contentLength.toString();\n }\n if (metadata.contentType) {\n reqOpts.headers['X-Upload-Content-Type'] = metadata.contentType;\n }\n if (typeof this.generation !== 'undefined') {\n reqOpts.params.ifGenerationMatch = this.generation;\n }\n if (this.kmsKeyName) {\n reqOpts.params.kmsKeyName = this.kmsKeyName;\n }\n if (this.predefinedAcl) {\n reqOpts.params.predefinedAcl = this.predefinedAcl;\n }\n if (this.origin) {\n reqOpts.headers.Origin = this.origin;\n }\n const uri = await retry(async (bail) => {\n var _a, _b, _c;\n try {\n const res = await this.makeRequest(reqOpts);\n // We have successfully got a URI we can now create a new invocation id\n this.currentInvocationId.uri = uuid.v4();\n return res.headers.location;\n }\n catch (err) {\n const e = err;\n const apiError = {\n code: (_a = e.response) === null || _a === void 0 ? void 0 : _a.status,\n name: (_b = e.response) === null || _b === void 0 ? void 0 : _b.statusText,\n message: (_c = e.response) === null || _c === void 0 ? void 0 : _c.statusText,\n errors: [\n {\n reason: e.code,\n },\n ],\n };\n if (this.retryOptions.maxRetries > 0 &&\n this.retryOptions.retryableErrorFn(apiError)) {\n throw e;\n }\n else {\n return bail(e);\n }\n }\n }, {\n retries: this.retryOptions.maxRetries,\n factor: this.retryOptions.retryDelayMultiplier,\n maxTimeout: this.retryOptions.maxRetryDelay * 1000,\n maxRetryTime: this.retryOptions.totalTimeout * 1000,\n });\n this.uri = uri;\n this.offset = 0;\n return uri;\n }\n async continueUploading() {\n if (typeof this.offset === 'number') {\n this.startUploading();\n return;\n }\n await this.getAndSetOffset();\n this.startUploading();\n }\n async startUploading() {\n const multiChunkMode = !!this.chunkSize;\n let responseReceived = false;\n this.numChunksReadInRequest = 0;\n if (!this.offset) {\n this.offset = 0;\n }\n // Check if we're uploading the expected object\n if (this.numBytesWritten === 0) {\n const isSameObject = await this.ensureUploadingSameObject();\n if (!isSameObject) {\n // `ensureUploadingSameObject` will restart the upload.\n return;\n }\n }\n // Check if the offset (server) is too far behind the current stream\n if (this.offset < this.numBytesWritten) {\n const delta = this.numBytesWritten - this.offset;\n const message = `The offset is lower than the number of bytes written. The server has ${this.offset} bytes and while ${this.numBytesWritten} bytes has been uploaded - thus ${delta} bytes are missing. Stopping as this could result in data loss. Initiate a new upload to continue.`;\n this.emit('error', new RangeError(message));\n return;\n }\n // Check if we should 'fast-forward' to the relevant data to upload\n if (this.numBytesWritten < this.offset) {\n // 'fast-forward' to the byte where we need to upload.\n // only push data from the byte after the one we left off on\n const fastForwardBytes = this.offset - this.numBytesWritten;\n for await (const _chunk of this.upstreamIterator(fastForwardBytes)) {\n _chunk; // discard the data up until the point we want\n }\n this.numBytesWritten = this.offset;\n }\n let expectedUploadSize = undefined;\n // Set `expectedUploadSize` to `contentLength` if available\n if (typeof this.contentLength === 'number') {\n expectedUploadSize = this.contentLength - this.numBytesWritten;\n }\n // `expectedUploadSize` should be no more than the `chunkSize`.\n // It's possible this is the last chunk request for a multiple\n // chunk upload, thus smaller than the chunk size.\n if (this.chunkSize) {\n expectedUploadSize = expectedUploadSize\n ? Math.min(this.chunkSize, expectedUploadSize)\n : this.chunkSize;\n }\n // A queue for the upstream data\n const upstreamQueue = this.upstreamIterator(expectedUploadSize, multiChunkMode // multi-chunk mode should return 1 chunk per request\n );\n // The primary read stream for this request. This stream retrieves no more\n // than the exact requested amount from upstream.\n const requestStream = new stream_1.Readable({\n read: async () => {\n // Don't attempt to retrieve data upstream if we already have a response\n if (responseReceived)\n requestStream.push(null);\n const result = await upstreamQueue.next();\n if (result.value) {\n this.numChunksReadInRequest++;\n this.lastChunkSent = result.value.chunk;\n this.numBytesWritten += result.value.chunk.byteLength;\n this.emit('progress', {\n bytesWritten: this.numBytesWritten,\n contentLength: this.contentLength,\n });\n requestStream.push(result.value.chunk, result.value.encoding);\n }\n if (result.done) {\n requestStream.push(null);\n }\n },\n });\n const headers = {\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${this.currentInvocationId.chunk}`,\n };\n // If using multiple chunk upload, set appropriate header\n if (multiChunkMode && expectedUploadSize) {\n // The '-1' is because the ending byte is inclusive in the request.\n const endingByte = expectedUploadSize + this.numBytesWritten - 1;\n headers['Content-Length'] = expectedUploadSize;\n headers['Content-Range'] = `bytes ${this.offset}-${endingByte}/${this.contentLength}`;\n }\n else {\n headers['Content-Range'] = `bytes ${this.offset}-*/${this.contentLength}`;\n }\n const reqOpts = {\n method: 'PUT',\n url: this.uri,\n headers,\n body: requestStream,\n };\n try {\n const resp = await this.makeRequestStream(reqOpts);\n if (resp) {\n responseReceived = true;\n this.responseHandler(resp);\n }\n }\n catch (err) {\n const e = err;\n this.destroy(e);\n }\n }\n // Process the API response to look for errors that came in\n // the response body.\n responseHandler(resp) {\n if (resp.data.error) {\n this.destroy(resp.data.error);\n return;\n }\n // At this point we can safely create a new id for the chunk\n this.currentInvocationId.chunk = uuid.v4();\n const shouldContinueWithNextMultiChunkRequest = this.chunkSize &&\n resp.status === RESUMABLE_INCOMPLETE_STATUS_CODE &&\n resp.headers.range;\n if (shouldContinueWithNextMultiChunkRequest) {\n // Use the upper value in this header to determine where to start the next chunk.\n // We should not assume that the server received all bytes sent in the request.\n // https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload\n const range = resp.headers.range;\n this.offset = Number(range.split('-')[1]) + 1;\n // We should not assume that the server received all bytes sent in the request.\n // - https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload\n const missingBytes = this.numBytesWritten - this.offset;\n if (missingBytes) {\n const dataToPrependForResending = this.lastChunkSent.slice(-missingBytes);\n // As multi-chunk uploads send one chunk per request and pulls one\n // chunk into the pipeline, prepending the missing bytes back should\n // be fine for the next request.\n this.unshiftChunkBuffer(dataToPrependForResending);\n this.numBytesWritten -= missingBytes;\n this.lastChunkSent = Buffer.alloc(0);\n }\n // continue uploading next chunk\n this.continueUploading();\n }\n else if (!this.isSuccessfulResponse(resp.status)) {\n const err = {\n code: resp.status,\n name: 'Upload failed',\n message: 'Upload failed',\n };\n this.destroy(err);\n }\n else {\n // remove the last chunk sent to free memory\n this.lastChunkSent = Buffer.alloc(0);\n if (resp && resp.data) {\n resp.data.size = Number(resp.data.size);\n }\n this.emit('metadata', resp.data);\n this.deleteConfig();\n // Allow the object (Upload) to continue naturally so the user's\n // \"finish\" event fires.\n this.emit('uploadFinished');\n }\n }\n /**\n * Check if this is the same content uploaded previously. This caches a\n * slice of the first chunk, then compares it with the first byte of\n * incoming data.\n *\n * @returns if the request is ok to continue as-is\n */\n async ensureUploadingSameObject() {\n // A queue for the upstream data\n const upstreamQueue = this.upstreamIterator(16, true // we just want one chunk for this validation\n );\n const upstreamChunk = await upstreamQueue.next();\n const chunk = upstreamChunk.value\n ? upstreamChunk.value.chunk\n : Buffer.alloc(0);\n // Put the original chunk back into the buffer as we just wanted to 'peek'\n // at the stream for validation.\n this.unshiftChunkBuffer(chunk);\n let cachedFirstChunk = this.get('firstChunk');\n const firstChunk = chunk.valueOf();\n if (!cachedFirstChunk) {\n // This is a new upload. Cache the first chunk.\n this.set({ uri: this.uri, firstChunk });\n }\n else {\n // this continues an upload in progress. check if the bytes are the same\n cachedFirstChunk = Buffer.from(cachedFirstChunk);\n const nextChunk = Buffer.from(firstChunk);\n if (Buffer.compare(cachedFirstChunk, nextChunk) !== 0) {\n // this data is not the same. start a new upload\n this.restart();\n return false;\n }\n }\n return true;\n }\n async getAndSetOffset() {\n const opts = {\n method: 'PUT',\n url: this.uri,\n headers: {\n 'Content-Length': 0,\n 'Content-Range': 'bytes */*',\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${this.currentInvocationId.offset}`,\n },\n };\n try {\n const resp = await this.makeRequest(opts);\n // Successfully got the offset we can now create a new offset invocation id\n this.currentInvocationId.offset = uuid.v4();\n if (resp.status === RESUMABLE_INCOMPLETE_STATUS_CODE) {\n if (resp.headers.range) {\n const range = resp.headers.range;\n this.offset = Number(range.split('-')[1]) + 1;\n return;\n }\n }\n this.offset = 0;\n }\n catch (e) {\n const err = e;\n const resp = err.response;\n // we don't return a 404 to the user if they provided the resumable\n // URI. if we're just using the configstore file to tell us that this\n // file exists, and it turns out that it doesn't (the 404), that's\n // probably stale config data.\n if (resp &&\n resp.status === NOT_FOUND_STATUS_CODE &&\n !this.uriProvidedManually) {\n this.restart();\n return;\n }\n // this resumable upload is unrecoverable (bad data or service error).\n if (resp && resp.status === TERMINATED_UPLOAD_STATUS_CODE) {\n this.restart();\n return;\n }\n this.destroy(err);\n }\n }\n async makeRequest(reqOpts) {\n if (this.encryption) {\n reqOpts.headers = reqOpts.headers || {};\n reqOpts.headers['x-goog-encryption-algorithm'] = 'AES256';\n reqOpts.headers['x-goog-encryption-key'] = this.encryption.key.toString();\n reqOpts.headers['x-goog-encryption-key-sha256'] =\n this.encryption.hash.toString();\n }\n if (this.userProject) {\n reqOpts.params = reqOpts.params || {};\n reqOpts.params.userProject = this.userProject;\n }\n // Let gaxios know we will handle a 308 error code ourselves.\n reqOpts.validateStatus = (status) => {\n return (this.isSuccessfulResponse(status) ||\n status === RESUMABLE_INCOMPLETE_STATUS_CODE);\n };\n const combinedReqOpts = extend(true, {}, this.customRequestOptions, reqOpts);\n const res = await this.authClient.request(combinedReqOpts);\n if (res.data && res.data.error) {\n throw res.data.error;\n }\n return res;\n }\n async makeRequestStream(reqOpts) {\n const controller = new abort_controller_1.default();\n const errorCallback = () => controller.abort();\n this.once('error', errorCallback);\n if (this.userProject) {\n reqOpts.params = reqOpts.params || {};\n reqOpts.params.userProject = this.userProject;\n }\n reqOpts.signal = controller.signal;\n reqOpts.validateStatus = () => true;\n const combinedReqOpts = extend(true, {}, this.customRequestOptions, reqOpts);\n const res = await this.authClient.request(combinedReqOpts);\n const successfulRequest = this.onResponse(res);\n this.removeListener('error', errorCallback);\n return successfulRequest ? res : null;\n }\n restart() {\n if (this.numBytesWritten) {\n const message = 'Attempting to restart an upload after unrecoverable bytes have been written from upstream. Stopping as this could result in data loss. Initiate a new upload to continue.';\n this.emit('error', new RangeError(message));\n return;\n }\n this.lastChunkSent = Buffer.alloc(0);\n this.deleteConfig();\n this.createURI((err, uri) => {\n if (err) {\n return this.destroy(err);\n }\n this.set({ uri });\n this.startUploading();\n return;\n });\n }\n get(prop) {\n const store = this.configStore.get(this.cacheKey);\n return store && store[prop];\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(props) {\n this.configStore.set(this.cacheKey, props);\n }\n deleteConfig() {\n this.configStore.delete(this.cacheKey);\n }\n /**\n * @return {bool} is the request good?\n */\n onResponse(resp) {\n if (resp.status !== 200 &&\n this.retryOptions.retryableErrorFn({\n code: resp.status,\n message: resp.statusText,\n name: resp.statusText,\n })) {\n this.attemptDelayedRetry(resp);\n return false;\n }\n this.emit('response', resp);\n return true;\n }\n /**\n * @param resp GaxiosResponse object from previous attempt\n */\n attemptDelayedRetry(resp) {\n if (this.numRetries < this.retryOptions.maxRetries) {\n if (resp.status === NOT_FOUND_STATUS_CODE &&\n this.numChunksReadInRequest === 0) {\n this.startUploading();\n }\n else {\n const retryDelay = this.getRetryDelay();\n if (retryDelay <= 0) {\n this.destroy(new Error(`Retry total time limit exceeded - ${resp.data}`));\n return;\n }\n // Unshift the most recent chunk back in case it's needed for the next\n // request.\n this.numBytesWritten -= this.lastChunkSent.byteLength;\n this.unshiftChunkBuffer(this.lastChunkSent);\n this.lastChunkSent = Buffer.alloc(0);\n // We don't know how much data has been received by the server.\n // `continueUploading` will recheck the offset via `getAndSetOffset`.\n // If `offset` < `numberBytesReceived` then we will raise a RangeError\n // as we've streamed too much data that has been missed - this should\n // not be the case for multi-chunk uploads as `lastChunkSent` is the\n // body of the entire request.\n this.offset = undefined;\n setTimeout(this.continueUploading.bind(this), retryDelay);\n }\n this.numRetries++;\n }\n else {\n this.destroy(new Error('Retry limit exceeded - ' + resp.data));\n }\n }\n /**\n * @returns {number} the amount of time to wait before retrying the request\n */\n getRetryDelay() {\n const randomMs = Math.round(Math.random() * 1000);\n const waitTime = Math.pow(this.retryOptions.retryDelayMultiplier, this.numRetries) *\n 1000 +\n randomMs;\n const maxAllowableDelayMs = this.retryOptions.totalTimeout * 1000 -\n (Date.now() - this.timeOfFirstRequest);\n const maxRetryDelayMs = this.retryOptions.maxRetryDelay * 1000;\n return Math.min(waitTime, maxRetryDelayMs, maxAllowableDelayMs);\n }\n /*\n * Prepare user-defined API endpoint for compatibility with our API.\n */\n sanitizeEndpoint(url) {\n if (!exports.PROTOCOL_REGEX.test(url)) {\n url = `https://${url}`;\n }\n return url.replace(/\\/+$/, ''); // Remove trailing slashes\n }\n /**\n * Check if a given status code is 2xx\n *\n * @param status The status code to check\n * @returns if the status is 2xx\n */\n isSuccessfulResponse(status) {\n return status >= 200 && status < 300;\n }\n}\nexports.Upload = Upload;\nfunction upload(cfg) {\n return new Upload(cfg);\n}\nexports.upload = upload;\nfunction createURI(cfg, callback) {\n const up = new Upload(cfg);\n if (!callback) {\n return up.createURI();\n }\n up.createURI().then(r => callback(null, r), callback);\n}\nexports.createURI = createURI;\n//# sourceMappingURL=gcs-resumable-upload.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HmacKey = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\n/**\n * The API-formatted resource description of the HMAC key.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name HmacKey#metadata\n * @type {object}\n */\n/**\n * An HmacKey object contains metadata of an HMAC key created from a\n * service account through the {@link Storage} client using\n * {@link Storage#createHmacKey}.\n *\n * See {@link https://cloud.google.com/storage/docs/authentication/hmackeys| HMAC keys documentation}\n *\n * @class\n */\nclass HmacKey extends nodejs_common_1.ServiceObject {\n /**\n * @typedef {object} HmacKeyOptions\n * @property {string} [projectId] The project ID of the project that owns\n * the service account of the requested HMAC key. If not provided,\n * the project ID used to instantiate the Storage client will be used.\n */\n /**\n * Constructs an HmacKey object.\n *\n * Note: this only create a local reference to an HMAC key, to create\n * an HMAC key, use {@link Storage#createHmacKey}.\n *\n * @param {Storage} storage The Storage instance this HMAC key is\n * attached to.\n * @param {string} accessId The unique accessId for this HMAC key.\n * @param {HmacKeyOptions} options Constructor configurations.\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const hmacKey = storage.hmacKey('access-id');\n * ```\n */\n constructor(storage, accessId, options) {\n const methods = {\n /**\n * @typedef {object} DeleteHmacKeyOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * @typedef {array} DeleteHmacKeyResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteHmacKeyCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Deletes an HMAC key.\n * Key state must be set to `INACTIVE` prior to deletion.\n * Caution: HMAC keys cannot be recovered once you delete them.\n *\n * The authenticated user must have `storage.hmacKeys.delete` permission for the project in which the key exists.\n *\n * @method HmacKey#delete\n * @param {DeleteHmacKeyOptions} [options] Configuration options.\n * @param {DeleteHmacKeyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Delete HMAC key after making the key inactive.\n * //-\n * const hmacKey = storage.hmacKey('ACCESS_ID');\n * hmacKey.setMetadata({state: 'INACTIVE'}, (err, hmacKeyMetadata) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * hmacKey.delete((err) => {\n * if (err) {\n * console.error(err);\n * return;\n * }\n * // The HMAC key is deleted.\n * });\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * const hmacKey = storage.hmacKey('ACCESS_ID');\n * hmacKey\n * .setMetadata({state: 'INACTIVE'})\n * .then(() => {\n * return hmacKey.delete();\n * });\n * ```\n */\n delete: true,\n /**\n * @callback GetHmacKeyCallback\n * @param {?Error} err Request error, if any.\n * @param {HmacKey} hmacKey this {@link HmacKey} instance.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} GetHmacKeyResponse\n * @property {HmacKey} 0 This {@link HmacKey} instance.\n * @property {object} 1 The full API response.\n */\n /**\n * @typedef {object} GetHmacKeyOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * Retrieves and populate an HMAC key's metadata, and return\n * this {@link HmacKey} instance.\n *\n * HmacKey.get() does not give the HMAC key secret, as\n * it is only returned on creation.\n *\n * The authenticated user must have `storage.hmacKeys.get` permission\n * for the project in which the key exists.\n *\n * @method HmacKey#get\n * @param {GetHmacKeyOptions} [options] Configuration options.\n * @param {GetHmacKeyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Get the HmacKey's Metadata.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .get((err, hmacKey) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * // do something with the returned HmacKey object.\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .get()\n * .then((data) => {\n * const hmacKey = data[0];\n * });\n * ```\n */\n get: true,\n /**\n * @typedef {object} GetHmacKeyMetadataOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * Retrieves and populate an HMAC key's metadata, and return\n * the HMAC key's metadata as an object.\n *\n * HmacKey.getMetadata() does not give the HMAC key secret, as\n * it is only returned on creation.\n *\n * The authenticated user must have `storage.hmacKeys.get` permission\n * for the project in which the key exists.\n *\n * @method HmacKey#getMetadata\n * @param {GetHmacKeyMetadataOptions} [options] Configuration options.\n * @param {HmacKeyMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Get the HmacKey's metadata and populate to the metadata property.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .getMetadata((err, hmacKeyMetadata) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * console.log(hmacKeyMetadata);\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .getMetadata()\n * .then((data) => {\n * const hmacKeyMetadata = data[0];\n * console.log(hmacKeyMetadata);\n * });\n * ```\n */\n getMetadata: true,\n /**\n * @typedef {object} SetHmacKeyMetadata Subset of {@link HmacKeyMetadata} to update.\n * @property {string} state New state of the HmacKey. Either 'ACTIVE' or 'INACTIVE'.\n * @property {string} [etag] Include an etag from a previous get HMAC key request\n * to perform safe read-modify-write.\n */\n /**\n * @typedef {object} SetHmacKeyMetadataOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * @callback HmacKeyMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {HmacKeyMetadata} metadata The updated {@link HmacKeyMetadata} object.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} HmacKeyMetadataResponse\n * @property {HmacKeyMetadata} 0 The updated {@link HmacKeyMetadata} object.\n * @property {object} 1 The full API response.\n */\n /**\n * Updates the state of an HMAC key. See {@link SetHmacKeyMetadata} for\n * valid states.\n *\n * @method HmacKey#setMetadata\n * @param {SetHmacKeyMetadata} metadata The new metadata.\n * @param {SetHmacKeyMetadataOptions} [options] Configuration options.\n * @param {HmacKeyMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * const metadata = {\n * state: 'INACTIVE',\n * };\n *\n * storage.hmacKey('ACCESS_ID')\n * .setMetadata(metadata, (err, hmacKeyMetadata) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * console.log(hmacKeyMetadata);\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .setMetadata(metadata)\n * .then((data) => {\n * const hmacKeyMetadata = data[0];\n * console.log(hmacKeyMetadata);\n * });\n * ```\n */\n setMetadata: {\n reqOpts: {\n method: 'PUT',\n },\n },\n };\n const projectId = (options && options.projectId) || storage.projectId;\n super({\n parent: storage,\n id: accessId,\n baseUrl: `/projects/${projectId}/hmacKeys`,\n methods,\n });\n }\n}\nexports.HmacKey = HmacKey;\n//# sourceMappingURL=hmacKey.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Iam = exports.IAMExceptionMessages = void 0;\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst util_1 = require(\"./util\");\nvar IAMExceptionMessages;\n(function (IAMExceptionMessages) {\n IAMExceptionMessages[\"POLICY_OBJECT_REQUIRED\"] = \"A policy object is required.\";\n IAMExceptionMessages[\"PERMISSIONS_REQUIRED\"] = \"Permissions are required.\";\n})(IAMExceptionMessages = exports.IAMExceptionMessages || (exports.IAMExceptionMessages = {}));\n/**\n * Get and set IAM policies for your Cloud Storage bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/iam#short_title_iam_management| Cloud Storage IAM Management}\n * See {@link https://cloud.google.com/iam/docs/granting-changing-revoking-access| Granting, Changing, and Revoking Access}\n * See {@link https://cloud.google.com/iam/docs/understanding-roles| IAM Roles}\n *\n * @constructor Iam\n *\n * @param {Bucket} bucket The parent instance.\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n * // bucket.iam\n * ```\n */\nclass Iam {\n constructor(bucket) {\n this.request_ = bucket.request.bind(bucket);\n this.resourceId_ = 'buckets/' + bucket.getId();\n }\n /**\n * @typedef {object} GetPolicyOptions Requested options for IAM#getPolicy().\n * @property {number} [requestedPolicyVersion] The version of IAM policies to\n * request. If a policy with a condition is requested without setting\n * this, the server will return an error. This must be set to a value\n * of 3 to retrieve IAM policies containing conditions. This is to\n * prevent client code that isn't aware of IAM conditions from\n * interpreting and modifying policies incorrectly. The service might\n * return a policy with version lower than the one that was requested,\n * based on the feature syntax in the policy fetched.\n * See {@link https://cloud.google.com/iam/docs/policies#versions| IAM Policy versions}\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} GetPolicyResponse\n * @property {Policy} 0 The policy.\n * @property {object} 1 The full API response.\n */\n /**\n * @typedef {object} Policy\n * @property {PolicyBinding[]} policy.bindings Bindings associate members with roles.\n * @property {string} [policy.etag] Etags are used to perform a read-modify-write.\n * @property {number} [policy.version] The syntax schema version of the Policy.\n * To set an IAM policy with conditional binding, this field must be set to\n * 3 or greater.\n * See {@link https://cloud.google.com/iam/docs/policies#versions| IAM Policy versions}\n */\n /**\n * @typedef {object} PolicyBinding\n * @property {string} role Role that is assigned to members.\n * @property {string[]} members Specifies the identities requesting access for the bucket.\n * @property {Expr} [condition] The condition that is associated with this binding.\n */\n /**\n * @typedef {object} Expr\n * @property {string} [title] An optional title for the expression, i.e. a\n * short string describing its purpose. This can be used e.g. in UIs\n * which allow to enter the expression.\n * @property {string} [description] An optional description of the\n * expression. This is a longer text which describes the expression,\n * e.g. when hovered over it in a UI.\n * @property {string} expression Textual representation of an expression in\n * Common Expression Language syntax. The application context of the\n * containing message determines which well-known feature set of CEL\n * is supported.The condition that is associated with this binding.\n *\n * @see [Condition] https://cloud.google.com/storage/docs/access-control/iam#conditions\n */\n /**\n * Get the IAM policy.\n *\n * @param {GetPolicyOptions} [options] Request options.\n * @param {GetPolicyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/getIamPolicy| Buckets: setIamPolicy API Documentation}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * bucket.iam.getPolicy(\n * {requestedPolicyVersion: 3},\n * function(err, policy, apiResponse) {\n *\n * },\n * );\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.getPolicy({requestedPolicyVersion: 3})\n * .then(function(data) {\n * const policy = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/iam.js\n * region_tag:storage_view_bucket_iam_members\n * Example of retrieving a bucket's IAM policy:\n */\n getPolicy(optionsOrCallback, callback) {\n const { options, callback: cb } = util_1.normalize(optionsOrCallback, callback);\n const qs = {};\n if (options.userProject) {\n qs.userProject = options.userProject;\n }\n if (options.requestedPolicyVersion !== null &&\n options.requestedPolicyVersion !== undefined) {\n qs.optionsRequestedPolicyVersion = options.requestedPolicyVersion;\n }\n this.request_({\n uri: '/iam',\n qs,\n }, cb);\n }\n /**\n * Set the IAM policy.\n *\n * @throws {Error} If no policy is provided.\n *\n * @param {Policy} policy The policy.\n * @param {SetPolicyOptions} [options] Configuration options.\n * @param {SetPolicyCallback} callback Callback function.\n * @returns {Promise}\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/setIamPolicy| Buckets: setIamPolicy API Documentation}\n * See {@link https://cloud.google.com/iam/docs/understanding-roles| IAM Roles}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * const myPolicy = {\n * bindings: [\n * {\n * role: 'roles/storage.admin',\n * members:\n * ['serviceAccount:myotherproject@appspot.gserviceaccount.com']\n * }\n * ]\n * };\n *\n * bucket.iam.setPolicy(myPolicy, function(err, policy, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.setPolicy(myPolicy).then(function(data) {\n * const policy = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/iam.js\n * region_tag:storage_add_bucket_iam_member\n * Example of adding to a bucket's IAM policy:\n *\n * @example include:samples/iam.js\n * region_tag:storage_remove_bucket_iam_member\n * Example of removing from a bucket's IAM policy:\n */\n setPolicy(policy, optionsOrCallback, callback) {\n if (policy === null || typeof policy !== 'object') {\n throw new Error(IAMExceptionMessages.POLICY_OBJECT_REQUIRED);\n }\n const { options, callback: cb } = util_1.normalize(optionsOrCallback, callback);\n this.request_({\n method: 'PUT',\n uri: '/iam',\n json: Object.assign({\n resourceId: this.resourceId_,\n }, policy),\n qs: options,\n }, cb);\n }\n /**\n * Test a set of permissions for a resource.\n *\n * @throws {Error} If permissions are not provided.\n *\n * @param {string|string[]} permissions The permission(s) to test for.\n * @param {TestIamPermissionsOptions} [options] Configuration object.\n * @param {TestIamPermissionsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/testIamPermissions| Buckets: testIamPermissions API Documentation}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * //-\n * // Test a single permission.\n * //-\n * const test = 'storage.buckets.delete';\n *\n * bucket.iam.testPermissions(test, function(err, permissions, apiResponse) {\n * console.log(permissions);\n * // {\n * // \"storage.buckets.delete\": true\n * // }\n * });\n *\n * //-\n * // Test several permissions at once.\n * //-\n * const tests = [\n * 'storage.buckets.delete',\n * 'storage.buckets.get'\n * ];\n *\n * bucket.iam.testPermissions(tests, function(err, permissions) {\n * console.log(permissions);\n * // {\n * // \"storage.buckets.delete\": false,\n * // \"storage.buckets.get\": true\n * // }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.testPermissions(test).then(function(data) {\n * const permissions = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n testPermissions(permissions, optionsOrCallback, callback) {\n if (!Array.isArray(permissions) && typeof permissions !== 'string') {\n throw new Error(IAMExceptionMessages.PERMISSIONS_REQUIRED);\n }\n const { options, callback: cb } = util_1.normalize(optionsOrCallback, callback);\n const permissionsArray = arrify(permissions);\n const req = Object.assign({\n permissions: permissionsArray,\n }, options);\n this.request_({\n uri: '/iam/testPermissions',\n qs: req,\n useQuerystring: true,\n }, (err, resp) => {\n if (err) {\n cb(err, null, resp);\n return;\n }\n const availablePermissions = arrify(resp.permissions);\n const permissionsHash = permissionsArray.reduce((acc, permission) => {\n acc[permission] = availablePermissions.indexOf(permission) > -1;\n return acc;\n }, {});\n cb(null, permissionsHash, resp);\n });\n }\n}\nexports.Iam = Iam;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Iam);\n//# sourceMappingURL=iam.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar bucket_1 = require(\"./bucket\");\nObject.defineProperty(exports, \"Bucket\", { enumerable: true, get: function () { return bucket_1.Bucket; } });\nvar channel_1 = require(\"./channel\");\nObject.defineProperty(exports, \"Channel\", { enumerable: true, get: function () { return channel_1.Channel; } });\nvar file_1 = require(\"./file\");\nObject.defineProperty(exports, \"File\", { enumerable: true, get: function () { return file_1.File; } });\nvar hmacKey_1 = require(\"./hmacKey\");\nObject.defineProperty(exports, \"HmacKey\", { enumerable: true, get: function () { return hmacKey_1.HmacKey; } });\nvar iam_1 = require(\"./iam\");\nObject.defineProperty(exports, \"Iam\", { enumerable: true, get: function () { return iam_1.Iam; } });\nvar notification_1 = require(\"./notification\");\nObject.defineProperty(exports, \"Notification\", { enumerable: true, get: function () { return notification_1.Notification; } });\nvar storage_1 = require(\"./storage\");\nObject.defineProperty(exports, \"IdempotencyStrategy\", { enumerable: true, get: function () { return storage_1.IdempotencyStrategy; } });\nObject.defineProperty(exports, \"Storage\", { enumerable: true, get: function () { return storage_1.Storage; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar service_1 = require(\"./service\");\nObject.defineProperty(exports, \"Service\", { enumerable: true, get: function () { return service_1.Service; } });\nvar service_object_1 = require(\"./service-object\");\nObject.defineProperty(exports, \"ServiceObject\", { enumerable: true, get: function () { return service_object_1.ServiceObject; } });\nvar util_1 = require(\"./util\");\nObject.defineProperty(exports, \"ApiError\", { enumerable: true, get: function () { return util_1.ApiError; } });\nObject.defineProperty(exports, \"util\", { enumerable: true, get: function () { return util_1.util; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceObject = void 0;\n/*!\n * Copyright 2022 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst events_1 = require(\"events\");\nconst extend = require(\"extend\");\nconst util_1 = require(\"./util\");\n/**\n * ServiceObject is a base class, meant to be inherited from by a \"service\n * object,\" like a BigQuery dataset or Storage bucket.\n *\n * Most of the time, these objects share common functionality; they can be\n * created or deleted, and you can get or set their metadata.\n *\n * By inheriting from this class, a service object will be extended with these\n * shared behaviors. Note that any method can be overridden when the service\n * object requires specific behavior.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass ServiceObject extends events_1.EventEmitter {\n /*\n * @constructor\n * @alias module:common/service-object\n *\n * @private\n *\n * @param {object} config - Configuration object.\n * @param {string} config.baseUrl - The base URL to make API requests to.\n * @param {string} config.createMethod - The method which creates this object.\n * @param {string=} config.id - The identifier of the object. For example, the\n * name of a Storage bucket or Pub/Sub topic.\n * @param {object=} config.methods - A map of each method name that should be inherited.\n * @param {object} config.methods[].reqOpts - Default request options for this\n * particular method. A common use case is when `setMetadata` requires a\n * `PUT` method to override the default `PATCH`.\n * @param {object} config.parent - The parent service instance. For example, an\n * instance of Storage if the object is Bucket.\n */\n constructor(config) {\n super();\n this.metadata = {};\n this.baseUrl = config.baseUrl;\n this.parent = config.parent; // Parent class.\n this.id = config.id; // Name or ID (e.g. dataset ID, bucket name, etc).\n this.createMethod = config.createMethod;\n this.methods = config.methods || {};\n this.interceptors = [];\n this.projectId = config.projectId;\n if (config.methods) {\n // This filters the ServiceObject instance (e.g. a \"File\") to only have\n // the configured methods. We make a couple of exceptions for core-\n // functionality (\"request()\" and \"getRequestInterceptors()\")\n Object.getOwnPropertyNames(ServiceObject.prototype)\n .filter(methodName => {\n return (\n // All ServiceObjects need `request` and `getRequestInterceptors`.\n // clang-format off\n !/^request/.test(methodName) &&\n !/^getRequestInterceptors/.test(methodName) &&\n // clang-format on\n // The ServiceObject didn't redefine the method.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[methodName] ===\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ServiceObject.prototype[methodName] &&\n // This method isn't wanted.\n !config.methods[methodName]);\n })\n .forEach(methodName => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[methodName] = undefined;\n });\n }\n }\n create(optionsOrCallback, callback) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const args = [this.id];\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n if (typeof optionsOrCallback === 'object') {\n args.push(optionsOrCallback);\n }\n // Wrap the callback to return *this* instance of the object, not the\n // newly-created one.\n // tslint: disable-next-line no-any\n function onCreate(...args) {\n const [err, instance] = args;\n if (!err) {\n self.metadata = instance.metadata;\n if (self.id && instance.metadata) {\n self.id = instance.metadata.id;\n }\n args[1] = self; // replace the created `instance` with this one.\n }\n callback(...args);\n }\n args.push(onCreate);\n // eslint-disable-next-line prefer-spread\n this.createMethod.apply(null, args);\n }\n delete(optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const ignoreNotFound = options.ignoreNotFound;\n delete options.ignoreNotFound;\n const methodConfig = (typeof this.methods.delete === 'object' && this.methods.delete) || {};\n const reqOpts = extend(true, {\n method: 'DELETE',\n uri: '',\n }, methodConfig.reqOpts, {\n qs: options,\n });\n // The `request` method may have been overridden to hold any special\n // behavior. Ensure we call the original `request` method.\n ServiceObject.prototype.request.call(this, reqOpts, (err, ...args) => {\n if (err) {\n if (err.code === 404 && ignoreNotFound) {\n err = null;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback(err, ...args);\n });\n }\n exists(optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n this.get(options, err => {\n if (err) {\n if (err.code === 404) {\n callback(null, false);\n }\n else {\n callback(err);\n }\n return;\n }\n callback(null, true);\n });\n }\n get(optionsOrCallback, cb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const [opts, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const options = Object.assign({}, opts);\n const autoCreate = options.autoCreate && typeof this.create === 'function';\n delete options.autoCreate;\n function onCreate(err, instance, apiResponse) {\n if (err) {\n if (err.code === 409) {\n self.get(options, callback);\n return;\n }\n callback(err, null, apiResponse);\n return;\n }\n callback(null, instance, apiResponse);\n }\n this.getMetadata(options, (err, metadata) => {\n if (err) {\n if (err.code === 404 && autoCreate) {\n const args = [];\n if (Object.keys(options).length > 0) {\n args.push(options);\n }\n args.push(onCreate);\n self.create(...args);\n return;\n }\n callback(err, null, metadata);\n return;\n }\n callback(null, self, metadata);\n });\n }\n getMetadata(optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const methodConfig = (typeof this.methods.getMetadata === 'object' &&\n this.methods.getMetadata) ||\n {};\n const reqOpts = extend(true, {\n uri: '',\n }, methodConfig.reqOpts, {\n qs: options,\n });\n // The `request` method may have been overridden to hold any special\n // behavior. Ensure we call the original `request` method.\n ServiceObject.prototype.request.call(this, reqOpts, (err, body, res) => {\n this.metadata = body;\n callback(err, this.metadata, res);\n });\n }\n /**\n * Return the user's custom request interceptors.\n */\n getRequestInterceptors() {\n // Interceptors should be returned in the order they were assigned.\n const localInterceptors = this.interceptors\n .filter(interceptor => typeof interceptor.request === 'function')\n .map(interceptor => interceptor.request);\n return this.parent.getRequestInterceptors().concat(localInterceptors);\n }\n setMetadata(metadata, optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const methodConfig = (typeof this.methods.setMetadata === 'object' &&\n this.methods.setMetadata) ||\n {};\n const reqOpts = extend(true, {}, {\n method: 'PATCH',\n uri: '',\n }, methodConfig.reqOpts, {\n json: metadata,\n qs: options,\n });\n // The `request` method may have been overridden to hold any special\n // behavior. Ensure we call the original `request` method.\n ServiceObject.prototype.request.call(this, reqOpts, (err, body, res) => {\n this.metadata = body;\n callback(err, this.metadata, res);\n });\n }\n request_(reqOpts, callback) {\n reqOpts = extend(true, {}, reqOpts);\n if (this.projectId) {\n reqOpts.projectId = this.projectId;\n }\n const isAbsoluteUrl = reqOpts.uri.indexOf('http') === 0;\n const uriComponents = [this.baseUrl, this.id || '', reqOpts.uri];\n if (isAbsoluteUrl) {\n uriComponents.splice(0, uriComponents.indexOf(reqOpts.uri));\n }\n reqOpts.uri = uriComponents\n .filter(x => x.trim()) // Limit to non-empty strings.\n .map(uriComponent => {\n const trimSlashesRegex = /^\\/*|\\/*$/g;\n return uriComponent.replace(trimSlashesRegex, '');\n })\n .join('/');\n const childInterceptors = arrify(reqOpts.interceptors_);\n const localInterceptors = [].slice.call(this.interceptors);\n reqOpts.interceptors_ = childInterceptors.concat(localInterceptors);\n if (reqOpts.shouldReturnStream) {\n return this.parent.requestStream(reqOpts);\n }\n this.parent.request(reqOpts, callback);\n }\n request(reqOpts, callback) {\n this.request_(reqOpts, callback);\n }\n /**\n * Make an authenticated API request.\n *\n * @param {object} reqOpts - Request options that are passed to `request`.\n * @param {string} reqOpts.uri - A URI relative to the baseUrl.\n */\n requestStream(reqOpts) {\n const opts = extend(true, reqOpts, { shouldReturnStream: true });\n return this.request_(opts);\n }\n}\nexports.ServiceObject = ServiceObject;\npromisify_1.promisifyAll(ServiceObject, { exclude: ['getRequestInterceptors'] });\n//# sourceMappingURL=service-object.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Service = void 0;\n/*!\n * Copyright 2022 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst arrify = require(\"arrify\");\nconst extend = require(\"extend\");\nconst uuid = require(\"uuid\");\nconst util_1 = require(\"./util\");\nconst PROJECT_ID_TOKEN = '{{projectId}}';\nclass Service {\n /**\n * Service is a base class, meant to be inherited from by a \"service,\" like\n * BigQuery or Storage.\n *\n * This handles making authenticated requests by exposing a `makeReq_`\n * function.\n *\n * @constructor\n * @alias module:common/service\n *\n * @param {object} config - Configuration object.\n * @param {string} config.baseUrl - The base URL to make API requests to.\n * @param {string[]} config.scopes - The scopes required for the request.\n * @param {object=} options - [Configuration object](#/docs).\n */\n constructor(config, options = {}) {\n this.baseUrl = config.baseUrl;\n this.apiEndpoint = config.apiEndpoint;\n this.timeout = options.timeout;\n this.globalInterceptors = arrify(options.interceptors_);\n this.interceptors = [];\n this.packageJson = config.packageJson;\n this.projectId = options.projectId || PROJECT_ID_TOKEN;\n this.projectIdRequired = config.projectIdRequired !== false;\n this.providedUserAgent = options.userAgent;\n const reqCfg = extend({}, config, {\n projectIdRequired: this.projectIdRequired,\n projectId: this.projectId,\n authClient: options.authClient,\n credentials: options.credentials,\n keyFile: options.keyFilename,\n email: options.email,\n token: options.token,\n });\n this.makeAuthenticatedRequest =\n util_1.util.makeAuthenticatedRequestFactory(reqCfg);\n this.authClient = this.makeAuthenticatedRequest.authClient;\n this.getCredentials = this.makeAuthenticatedRequest.getCredentials;\n const isCloudFunctionEnv = !!process.env.FUNCTION_NAME;\n if (isCloudFunctionEnv) {\n this.interceptors.push({\n request(reqOpts) {\n reqOpts.forever = false;\n return reqOpts;\n },\n });\n }\n }\n /**\n * Return the user's custom request interceptors.\n */\n getRequestInterceptors() {\n // Interceptors should be returned in the order they were assigned.\n return [].slice\n .call(this.globalInterceptors)\n .concat(this.interceptors)\n .filter(interceptor => typeof interceptor.request === 'function')\n .map(interceptor => interceptor.request);\n }\n getProjectId(callback) {\n if (!callback) {\n return this.getProjectIdAsync();\n }\n this.getProjectIdAsync().then(p => callback(null, p), callback);\n }\n async getProjectIdAsync() {\n const projectId = await this.authClient.getProjectId();\n if (this.projectId === PROJECT_ID_TOKEN && projectId) {\n this.projectId = projectId;\n }\n return this.projectId;\n }\n request_(reqOpts, callback) {\n reqOpts = extend(true, {}, reqOpts, { timeout: this.timeout });\n const isAbsoluteUrl = reqOpts.uri.indexOf('http') === 0;\n const uriComponents = [this.baseUrl];\n if (this.projectIdRequired) {\n if (reqOpts.projectId) {\n uriComponents.push('projects');\n uriComponents.push(reqOpts.projectId);\n }\n else {\n uriComponents.push('projects');\n uriComponents.push(this.projectId);\n }\n }\n uriComponents.push(reqOpts.uri);\n if (isAbsoluteUrl) {\n uriComponents.splice(0, uriComponents.indexOf(reqOpts.uri));\n }\n reqOpts.uri = uriComponents\n .map(uriComponent => {\n const trimSlashesRegex = /^\\/*|\\/*$/g;\n return uriComponent.replace(trimSlashesRegex, '');\n })\n .join('/')\n // Some URIs have colon separators.\n // Bad: https://.../projects/:list\n // Good: https://.../projects:list\n .replace(/\\/:/g, ':');\n const requestInterceptors = this.getRequestInterceptors();\n arrify(reqOpts.interceptors_).forEach(interceptor => {\n if (typeof interceptor.request === 'function') {\n requestInterceptors.push(interceptor.request);\n }\n });\n requestInterceptors.forEach(requestInterceptor => {\n reqOpts = requestInterceptor(reqOpts);\n });\n delete reqOpts.interceptors_;\n const pkg = this.packageJson;\n let userAgent = util_1.util.getUserAgentFromPackageJson(pkg);\n if (this.providedUserAgent) {\n userAgent = `${this.providedUserAgent} ${userAgent}`;\n }\n reqOpts.headers = extend({}, reqOpts.headers, {\n 'User-Agent': userAgent,\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${pkg.version} gccl-invocation-id/${uuid.v4()}`,\n });\n if (reqOpts.shouldReturnStream) {\n return this.makeAuthenticatedRequest(reqOpts);\n }\n else {\n this.makeAuthenticatedRequest(reqOpts, callback);\n }\n }\n /**\n * Make an authenticated API request.\n *\n * @param {object} reqOpts - Request options that are passed to `request`.\n * @param {string} reqOpts.uri - A URI relative to the baseUrl.\n * @param {function} callback - The callback function passed to `request`.\n */\n request(reqOpts, callback) {\n Service.prototype.request_.call(this, reqOpts, callback);\n }\n /**\n * Make an authenticated API request.\n *\n * @param {object} reqOpts - Request options that are passed to `request`.\n * @param {string} reqOpts.uri - A URI relative to the baseUrl.\n */\n requestStream(reqOpts) {\n const opts = extend(true, reqOpts, { shouldReturnStream: true });\n return Service.prototype.request_.call(this, opts);\n }\n}\nexports.Service = Service;\n//# sourceMappingURL=service.js.map","\"use strict\";\n/*!\n * Copyright 2022 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.util = exports.Util = exports.PartialFailureError = exports.ApiError = void 0;\n/*!\n * @module common/util\n */\nconst projectify_1 = require(\"@google-cloud/projectify\");\nconst ent = require(\"ent\");\nconst extend = require(\"extend\");\nconst google_auth_library_1 = require(\"google-auth-library\");\nconst retryRequest = require(\"retry-request\");\nconst stream_1 = require(\"stream\");\nconst teeny_request_1 = require(\"teeny-request\");\nconst uuid = require(\"uuid\");\nconst packageJson = require('../../../package.json');\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst duplexify = require('duplexify');\nconst requestDefaults = {\n timeout: 60000,\n gzip: true,\n forever: true,\n pool: {\n maxSockets: Infinity,\n },\n};\n/**\n * Default behavior: Automatically retry retriable server errors.\n *\n * @const {boolean}\n * @private\n */\nconst AUTO_RETRY_DEFAULT = true;\n/**\n * Default behavior: Only attempt to retry retriable errors 3 times.\n *\n * @const {number}\n * @private\n */\nconst MAX_RETRY_DEFAULT = 3;\n/**\n * Custom error type for API errors.\n *\n * @param {object} errorBody - Error object.\n */\nclass ApiError extends Error {\n constructor(errorBodyOrMessage) {\n super();\n if (typeof errorBodyOrMessage !== 'object') {\n this.message = errorBodyOrMessage || '';\n return;\n }\n const errorBody = errorBodyOrMessage;\n this.code = errorBody.code;\n this.errors = errorBody.errors;\n this.response = errorBody.response;\n try {\n this.errors = JSON.parse(this.response.body).error.errors;\n }\n catch (e) {\n this.errors = errorBody.errors;\n }\n this.message = ApiError.createMultiErrorMessage(errorBody, this.errors);\n Error.captureStackTrace(this);\n }\n /**\n * Pieces together an error message by combining all unique error messages\n * returned from a single GoogleError\n *\n * @private\n *\n * @param {GoogleErrorBody} err The original error.\n * @param {GoogleInnerError[]} [errors] Inner errors, if any.\n * @returns {string}\n */\n static createMultiErrorMessage(err, errors) {\n const messages = new Set();\n if (err.message) {\n messages.add(err.message);\n }\n if (errors && errors.length) {\n errors.forEach(({ message }) => messages.add(message));\n }\n else if (err.response && err.response.body) {\n messages.add(ent.decode(err.response.body.toString()));\n }\n else if (!err.message) {\n messages.add('A failure occurred during this request.');\n }\n let messageArr = Array.from(messages);\n if (messageArr.length > 1) {\n messageArr = messageArr.map((message, i) => ` ${i + 1}. ${message}`);\n messageArr.unshift('Multiple errors occurred during the request. Please see the `errors` array for complete details.\\n');\n messageArr.push('\\n');\n }\n return messageArr.join('\\n');\n }\n}\nexports.ApiError = ApiError;\n/**\n * Custom error type for partial errors returned from the API.\n *\n * @param {object} b - Error object.\n */\nclass PartialFailureError extends Error {\n constructor(b) {\n super();\n const errorObject = b;\n this.errors = errorObject.errors;\n this.name = 'PartialFailureError';\n this.response = errorObject.response;\n this.message = ApiError.createMultiErrorMessage(errorObject, this.errors);\n }\n}\nexports.PartialFailureError = PartialFailureError;\nclass Util {\n constructor() {\n this.ApiError = ApiError;\n this.PartialFailureError = PartialFailureError;\n }\n /**\n * No op.\n *\n * @example\n * function doSomething(callback) {\n * callback = callback || noop;\n * }\n */\n noop() { }\n /**\n * Uniformly process an API response.\n *\n * @param {*} err - Error value.\n * @param {*} resp - Response value.\n * @param {*} body - Body value.\n * @param {function} callback - The callback function.\n */\n handleResp(err, resp, body, callback) {\n callback = callback || util.noop;\n const parsedResp = extend(true, { err: err || null }, resp && util.parseHttpRespMessage(resp), body && util.parseHttpRespBody(body));\n // Assign the parsed body to resp.body, even if { json: false } was passed\n // as a request option.\n // We assume that nobody uses the previously unparsed value of resp.body.\n if (!parsedResp.err && resp && typeof parsedResp.body === 'object') {\n parsedResp.resp.body = parsedResp.body;\n }\n if (parsedResp.err && resp) {\n parsedResp.err.response = resp;\n }\n callback(parsedResp.err, parsedResp.body, parsedResp.resp);\n }\n /**\n * Sniff an incoming HTTP response message for errors.\n *\n * @param {object} httpRespMessage - An incoming HTTP response message from `request`.\n * @return {object} parsedHttpRespMessage - The parsed response.\n * @param {?error} parsedHttpRespMessage.err - An error detected.\n * @param {object} parsedHttpRespMessage.resp - The original response object.\n */\n parseHttpRespMessage(httpRespMessage) {\n const parsedHttpRespMessage = {\n resp: httpRespMessage,\n };\n if (httpRespMessage.statusCode < 200 || httpRespMessage.statusCode > 299) {\n // Unknown error. Format according to ApiError standard.\n parsedHttpRespMessage.err = new ApiError({\n errors: new Array(),\n code: httpRespMessage.statusCode,\n message: httpRespMessage.statusMessage,\n response: httpRespMessage,\n });\n }\n return parsedHttpRespMessage;\n }\n /**\n * Parse the response body from an HTTP request.\n *\n * @param {object} body - The response body.\n * @return {object} parsedHttpRespMessage - The parsed response.\n * @param {?error} parsedHttpRespMessage.err - An error detected.\n * @param {object} parsedHttpRespMessage.body - The original body value provided\n * will try to be JSON.parse'd. If it's successful, the parsed value will\n * be returned here, otherwise the original value and an error will be returned.\n */\n parseHttpRespBody(body) {\n const parsedHttpRespBody = {\n body,\n };\n if (typeof body === 'string') {\n try {\n parsedHttpRespBody.body = JSON.parse(body);\n }\n catch (err) {\n parsedHttpRespBody.body = body;\n }\n }\n if (parsedHttpRespBody.body && parsedHttpRespBody.body.error) {\n // Error from JSON API.\n parsedHttpRespBody.err = new ApiError(parsedHttpRespBody.body.error);\n }\n return parsedHttpRespBody;\n }\n /**\n * Take a Duplexify stream, fetch an authenticated connection header, and\n * create an outgoing writable stream.\n *\n * @param {Duplexify} dup - Duplexify stream.\n * @param {object} options - Configuration object.\n * @param {module:common/connection} options.connection - A connection instance used to get a token with and send the request through.\n * @param {object} options.metadata - Metadata to send at the head of the request.\n * @param {object} options.request - Request object, in the format of a standard Node.js http.request() object.\n * @param {string=} options.request.method - Default: \"POST\".\n * @param {string=} options.request.qs.uploadType - Default: \"multipart\".\n * @param {string=} options.streamContentType - Default: \"application/octet-stream\".\n * @param {function} onComplete - Callback, executed after the writable Request stream has completed.\n */\n makeWritableStream(dup, options, onComplete) {\n onComplete = onComplete || util.noop;\n const writeStream = new ProgressStream();\n writeStream.on('progress', evt => dup.emit('progress', evt));\n dup.setWritable(writeStream);\n const defaultReqOpts = {\n method: 'POST',\n qs: {\n uploadType: 'multipart',\n },\n timeout: 0,\n maxRetries: 0,\n };\n const metadata = options.metadata || {};\n const reqOpts = extend(true, defaultReqOpts, options.request, {\n multipart: [\n {\n 'Content-Type': 'application/json',\n body: JSON.stringify(metadata),\n },\n {\n 'Content-Type': metadata.contentType || 'application/octet-stream',\n body: writeStream,\n },\n ],\n });\n options.makeAuthenticatedRequest(reqOpts, {\n onAuthenticated(err, authenticatedReqOpts) {\n if (err) {\n dup.destroy(err);\n return;\n }\n requestDefaults.headers = util._getDefaultHeaders();\n const request = teeny_request_1.teenyRequest.defaults(requestDefaults);\n request(authenticatedReqOpts, (err, resp, body) => {\n util.handleResp(err, resp, body, (err, data) => {\n if (err) {\n dup.destroy(err);\n return;\n }\n dup.emit('response', resp);\n onComplete(data);\n });\n });\n },\n });\n }\n /**\n * Returns true if the API request should be retried, given the error that was\n * given the first time the request was attempted. This is used for rate limit\n * related errors as well as intermittent server errors.\n *\n * @param {error} err - The API error to check if it is appropriate to retry.\n * @return {boolean} True if the API request should be retried, false otherwise.\n */\n shouldRetryRequest(err) {\n if (err) {\n if ([408, 429, 500, 502, 503, 504].indexOf(err.code) !== -1) {\n return true;\n }\n if (err.errors) {\n for (const e of err.errors) {\n const reason = e.reason;\n if (reason === 'rateLimitExceeded') {\n return true;\n }\n if (reason === 'userRateLimitExceeded') {\n return true;\n }\n if (reason && reason.includes('EAI_AGAIN')) {\n return true;\n }\n }\n }\n }\n return false;\n }\n /**\n * Get a function for making authenticated requests.\n *\n * @param {object} config - Configuration object.\n * @param {boolean=} config.autoRetry - Automatically retry requests if the\n * response is related to rate limits or certain intermittent server\n * errors. We will exponentially backoff subsequent requests by default.\n * (default: true)\n * @param {object=} config.credentials - Credentials object.\n * @param {boolean=} config.customEndpoint - If true, just return the provided request options. Default: false.\n * @param {boolean=} config.useAuthWithCustomEndpoint - If true, will authenticate when using a custom endpoint. Default: false.\n * @param {string=} config.email - Account email address, required for PEM/P12 usage.\n * @param {number=} config.maxRetries - Maximum number of automatic retries attempted before returning the error. (default: 3)\n * @param {string=} config.keyFile - Path to a .json, .pem, or .p12 keyfile.\n * @param {array} config.scopes - Array of scopes required for the API.\n */\n makeAuthenticatedRequestFactory(config) {\n const googleAutoAuthConfig = extend({}, config);\n if (googleAutoAuthConfig.projectId === '{{projectId}}') {\n delete googleAutoAuthConfig.projectId;\n }\n let authClient;\n if (googleAutoAuthConfig.authClient instanceof google_auth_library_1.GoogleAuth) {\n // Use an existing `GoogleAuth`\n authClient = googleAutoAuthConfig.authClient;\n }\n else {\n // Pass an `AuthClient` to `GoogleAuth`, if available\n const config = {\n ...googleAutoAuthConfig,\n authClient: googleAutoAuthConfig.authClient,\n };\n authClient = new google_auth_library_1.GoogleAuth(config);\n }\n function makeAuthenticatedRequest(reqOpts, optionsOrCallback) {\n let stream;\n let projectId;\n const reqConfig = extend({}, config);\n let activeRequest_;\n if (!optionsOrCallback) {\n stream = duplexify();\n reqConfig.stream = stream;\n }\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : undefined;\n const callback = typeof optionsOrCallback === 'function' ? optionsOrCallback : undefined;\n const onAuthenticated = (err, authenticatedReqOpts) => {\n const authLibraryError = err;\n const autoAuthFailed = err &&\n err.message.indexOf('Could not load the default credentials') > -1;\n if (autoAuthFailed) {\n // Even though authentication failed, the API might not actually\n // care.\n authenticatedReqOpts = reqOpts;\n }\n if (!err || autoAuthFailed) {\n try {\n authenticatedReqOpts = util.decorateRequest(authenticatedReqOpts, projectId);\n err = null;\n }\n catch (e) {\n // A projectId was required, but we don't have one.\n // Re-use the \"Could not load the default credentials error\" if\n // auto auth failed.\n err = err || e;\n }\n }\n if (err) {\n if (stream) {\n stream.destroy(err);\n }\n else {\n const fn = options && options.onAuthenticated\n ? options.onAuthenticated\n : callback;\n fn(err);\n }\n return;\n }\n if (options && options.onAuthenticated) {\n options.onAuthenticated(null, authenticatedReqOpts);\n }\n else {\n activeRequest_ = util.makeRequest(authenticatedReqOpts, reqConfig, (apiResponseError, ...params) => {\n if (apiResponseError &&\n apiResponseError.code === 401 &&\n authLibraryError) {\n // Re-use the \"Could not load the default credentials error\" if\n // the API request failed due to missing credentials.\n apiResponseError = authLibraryError;\n }\n callback(apiResponseError, ...params);\n });\n }\n };\n Promise.all([\n config.projectId && config.projectId !== '{{projectId}}'\n ? // The user provided a project ID. We don't need to check with the\n // auth client, it could be incorrect.\n new Promise(resolve => resolve(config.projectId))\n : authClient.getProjectId(),\n reqConfig.customEndpoint && reqConfig.useAuthWithCustomEndpoint !== true\n ? // Using a custom API override. Do not use `google-auth-library` for\n // authentication. (ex: connecting to a local Datastore server)\n new Promise(resolve => resolve(reqOpts))\n : authClient.authorizeRequest(reqOpts),\n ])\n .then(([_projectId, authorizedReqOpts]) => {\n projectId = _projectId;\n onAuthenticated(null, authorizedReqOpts);\n })\n .catch(onAuthenticated);\n if (stream) {\n return stream;\n }\n return {\n abort() {\n setImmediate(() => {\n if (activeRequest_) {\n activeRequest_.abort();\n activeRequest_ = null;\n }\n });\n },\n };\n }\n const mar = makeAuthenticatedRequest;\n mar.getCredentials = authClient.getCredentials.bind(authClient);\n mar.authClient = authClient;\n return mar;\n }\n /**\n * Make a request through the `retryRequest` module with built-in error\n * handling and exponential back off.\n *\n * @param {object} reqOpts - Request options in the format `request` expects.\n * @param {object=} config - Configuration object.\n * @param {boolean=} config.autoRetry - Automatically retry requests if the\n * response is related to rate limits or certain intermittent server\n * errors. We will exponentially backoff subsequent requests by default.\n * (default: true)\n * @param {number=} config.maxRetries - Maximum number of automatic retries\n * attempted before returning the error. (default: 3)\n * @param {object=} config.request - HTTP module for request calls.\n * @param {function} callback - The callback function.\n */\n makeRequest(reqOpts, config, callback) {\n var _a, _b, _c, _d, _e, _f, _g;\n let autoRetryValue = AUTO_RETRY_DEFAULT;\n if (config.autoRetry !== undefined &&\n ((_a = config.retryOptions) === null || _a === void 0 ? void 0 : _a.autoRetry) !== undefined) {\n throw new ApiError('autoRetry is deprecated. Use retryOptions.autoRetry instead.');\n }\n else if (config.autoRetry !== undefined) {\n autoRetryValue = config.autoRetry;\n }\n else if (((_b = config.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry) !== undefined) {\n autoRetryValue = config.retryOptions.autoRetry;\n }\n let maxRetryValue = MAX_RETRY_DEFAULT;\n if (config.maxRetries && ((_c = config.retryOptions) === null || _c === void 0 ? void 0 : _c.maxRetries)) {\n throw new ApiError('maxRetries is deprecated. Use retryOptions.maxRetries instead.');\n }\n else if (config.maxRetries) {\n maxRetryValue = config.maxRetries;\n }\n else if ((_d = config.retryOptions) === null || _d === void 0 ? void 0 : _d.maxRetries) {\n maxRetryValue = config.retryOptions.maxRetries;\n }\n requestDefaults.headers = this._getDefaultHeaders();\n const options = {\n request: teeny_request_1.teenyRequest.defaults(requestDefaults),\n retries: autoRetryValue !== false ? maxRetryValue : 0,\n noResponseRetries: autoRetryValue !== false ? maxRetryValue : 0,\n shouldRetryFn(httpRespMessage) {\n var _a, _b;\n const err = util.parseHttpRespMessage(httpRespMessage).err;\n if ((_a = config.retryOptions) === null || _a === void 0 ? void 0 : _a.retryableErrorFn) {\n return err && ((_b = config.retryOptions) === null || _b === void 0 ? void 0 : _b.retryableErrorFn(err));\n }\n return err && util.shouldRetryRequest(err);\n },\n maxRetryDelay: (_e = config.retryOptions) === null || _e === void 0 ? void 0 : _e.maxRetryDelay,\n retryDelayMultiplier: (_f = config.retryOptions) === null || _f === void 0 ? void 0 : _f.retryDelayMultiplier,\n totalTimeout: (_g = config.retryOptions) === null || _g === void 0 ? void 0 : _g.totalTimeout,\n };\n if (typeof reqOpts.maxRetries === 'number') {\n options.retries = reqOpts.maxRetries;\n }\n if (!config.stream) {\n return retryRequest(reqOpts, options, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err, response, body) => {\n util.handleResp(err, response, body, callback);\n });\n }\n const dup = config.stream;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let requestStream;\n const isGetRequest = (reqOpts.method || 'GET').toUpperCase() === 'GET';\n if (isGetRequest) {\n requestStream = retryRequest(reqOpts, options);\n dup.setReadable(requestStream);\n }\n else {\n // Streaming writable HTTP requests cannot be retried.\n requestStream = options.request(reqOpts);\n dup.setWritable(requestStream);\n }\n // Replay the Request events back to the stream.\n requestStream\n .on('error', dup.destroy.bind(dup))\n .on('response', dup.emit.bind(dup, 'response'))\n .on('complete', dup.emit.bind(dup, 'complete'));\n dup.abort = requestStream.abort;\n return dup;\n }\n /**\n * Decorate the options about to be made in a request.\n *\n * @param {object} reqOpts - The options to be passed to `request`.\n * @param {string} projectId - The project ID.\n * @return {object} reqOpts - The decorated reqOpts.\n */\n decorateRequest(reqOpts, projectId) {\n delete reqOpts.autoPaginate;\n delete reqOpts.autoPaginateVal;\n delete reqOpts.objectMode;\n if (reqOpts.qs !== null && typeof reqOpts.qs === 'object') {\n delete reqOpts.qs.autoPaginate;\n delete reqOpts.qs.autoPaginateVal;\n reqOpts.qs = projectify_1.replaceProjectIdToken(reqOpts.qs, projectId);\n }\n if (Array.isArray(reqOpts.multipart)) {\n reqOpts.multipart = reqOpts.multipart.map(part => {\n return projectify_1.replaceProjectIdToken(part, projectId);\n });\n }\n if (reqOpts.json !== null && typeof reqOpts.json === 'object') {\n delete reqOpts.json.autoPaginate;\n delete reqOpts.json.autoPaginateVal;\n reqOpts.json = projectify_1.replaceProjectIdToken(reqOpts.json, projectId);\n }\n reqOpts.uri = projectify_1.replaceProjectIdToken(reqOpts.uri, projectId);\n return reqOpts;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isCustomType(unknown, module) {\n function getConstructorName(obj) {\n return obj.constructor && obj.constructor.name.toLowerCase();\n }\n const moduleNameParts = module.split('/');\n const parentModuleName = moduleNameParts[0] && moduleNameParts[0].toLowerCase();\n const subModuleName = moduleNameParts[1] && moduleNameParts[1].toLowerCase();\n if (subModuleName && getConstructorName(unknown) !== subModuleName) {\n return false;\n }\n let walkingModule = unknown;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (getConstructorName(walkingModule) === parentModuleName) {\n return true;\n }\n walkingModule = walkingModule.parent;\n if (!walkingModule) {\n return false;\n }\n }\n }\n /**\n * Create a properly-formatted User-Agent string from a package.json file.\n *\n * @param {object} packageJson - A module's package.json file.\n * @return {string} userAgent - The formatted User-Agent string.\n */\n getUserAgentFromPackageJson(packageJson) {\n const hyphenatedPackageName = packageJson.name\n .replace('@google-cloud', 'gcloud-node') // For legacy purposes.\n .replace('/', '-'); // For UA spec-compliance purposes.\n return hyphenatedPackageName + '/' + packageJson.version;\n }\n /**\n * Given two parameters, figure out if this is either:\n * - Just a callback function\n * - An options object, and then a callback function\n * @param optionsOrCallback An options object or callback.\n * @param cb A potentially undefined callback.\n */\n maybeOptionsOrCallback(optionsOrCallback, cb) {\n return typeof optionsOrCallback === 'function'\n ? [{}, optionsOrCallback]\n : [optionsOrCallback, cb];\n }\n _getDefaultHeaders() {\n return {\n 'User-Agent': util.getUserAgentFromPackageJson(packageJson),\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${uuid.v4()}`,\n };\n }\n}\nexports.Util = Util;\n/**\n * Basic Passthrough Stream that records the number of bytes read\n * every time the cursor is moved.\n */\nclass ProgressStream extends stream_1.Transform {\n constructor() {\n super(...arguments);\n this.bytesRead = 0;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _transform(chunk, encoding, callback) {\n this.bytesRead += chunk.length;\n this.emit('progress', { bytesWritten: this.bytesRead, contentLength: '*' });\n this.push(chunk);\n callback();\n }\n}\nconst util = new Util();\nexports.util = util;\n//# sourceMappingURL=util.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Notification = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\n/**\n * The API-formatted resource description of the notification.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name Notification#metadata\n * @type {object}\n */\n/**\n * A Notification object is created from your {@link Bucket} object using\n * {@link Bucket#notification}. Use it to interact with Cloud Pub/Sub\n * notifications.\n *\n * See {@link https://cloud.google.com/storage/docs/pubsub-notifications| Cloud Pub/Sub Notifications for Google Cloud Storage}\n *\n * @class\n * @hideconstructor\n *\n * @param {Bucket} bucket The bucket instance this notification is attached to.\n * @param {string} id The ID of the notification.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const notification = myBucket.notification('1');\n * ```\n */\nclass Notification extends nodejs_common_1.ServiceObject {\n constructor(bucket, id) {\n const methods = {\n /**\n * Creates a notification subscription for the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/insert| Notifications: insert}\n * @method Notification#create\n *\n * @param {Topic|string} topic The Cloud PubSub topic to which this\n * subscription publishes. If the project ID is omitted, the current\n * project ID will be used.\n *\n * Acceptable formats are:\n * - `projects/grape-spaceship-123/topics/my-topic`\n *\n * - `my-topic`\n * @param {CreateNotificationRequest} [options] Metadata to set for\n * the notification.\n * @param {CreateNotificationCallback} [callback] Callback function.\n * @returns {Promise}\n * @throws {Error} If a valid topic is not provided.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.create(function(err, notification, apiResponse) {\n * if (!err) {\n * // The notification was created successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.create().then(function(data) {\n * const notification = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n create: true,\n /**\n * @typedef {array} NotificationExistsResponse\n * @property {boolean} 0 Whether the notification exists or not.\n */\n /**\n * @callback NotificationExistsCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} exists Whether the notification exists or not.\n */\n /**\n * Check if the notification exists.\n *\n * @method Notification#exists\n * @param {NotificationExistsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.exists(function(err, exists) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.exists().then(function(data) {\n * const exists = data[0];\n * });\n * ```\n */\n exists: true,\n };\n super({\n parent: bucket,\n baseUrl: '/notificationConfigs',\n id: id.toString(),\n createMethod: bucket.createNotification.bind(bucket),\n methods,\n });\n }\n /**\n * @typedef {array} DeleteNotificationResponse\n * @property {object} 0 The full API response.\n */\n /**\n * Permanently deletes a notification subscription.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/delete| Notifications: delete API Documentation}\n *\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DeleteNotificationCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.delete(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/deleteNotification.js\n * region_tag:storage_delete_bucket_notification\n * Another example:\n */\n delete(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n this.request({\n method: 'DELETE',\n uri: '',\n qs: options,\n }, callback || nodejs_common_1.util.noop);\n }\n /**\n * Get a notification and its metadata if it exists.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/get| Notifications: get API Documentation}\n *\n * @param {object} [options] Configuration options.\n * See {@link Bucket#createNotification} for create options.\n * @param {boolean} [options.autoCreate] Automatically create the object if\n * it does not exist. Default: `false`.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetNotificationCallback} [callback] Callback function.\n * @return {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.get(function(err, notification, apiResponse) {\n * // `notification.metadata` has been populated.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.get().then(function(data) {\n * const notification = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n get(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const autoCreate = options.autoCreate;\n delete options.autoCreate;\n const onCreate = (err, notification, apiResponse) => {\n if (err) {\n if (err.code === 409) {\n this.get(options, callback);\n return;\n }\n callback(err, null, apiResponse);\n return;\n }\n callback(null, notification, apiResponse);\n };\n this.getMetadata(options, (err, metadata) => {\n if (err) {\n if (err.code === 404 && autoCreate) {\n const args = [];\n if (Object.keys(options).length > 0) {\n args.push(options);\n }\n args.push(onCreate);\n // eslint-disable-next-line\n this.create.apply(this, args);\n return;\n }\n callback(err, null, metadata);\n return;\n }\n callback(null, this, metadata);\n });\n }\n /**\n * Get the notification's metadata.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/get| Notifications: get API Documentation}\n *\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetNotificationMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.getMetadata(function(err, metadata, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.getMetadata().then(function(data) {\n * const metadata = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/getMetadataNotifications.js\n * region_tag:storage_print_pubsub_bucket_notification\n * Another example:\n */\n getMetadata(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n this.request({\n uri: '',\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n this.metadata = resp;\n callback(null, this.metadata, resp);\n });\n }\n}\nexports.Notification = Notification;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Notification);\n//# sourceMappingURL=notification.js.map","\"use strict\";\n// Copyright 2020 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningError = exports.URLSigner = exports.PATH_STYLED_HOST = exports.SignerExceptionMessages = void 0;\nconst crypto = require(\"crypto\");\nconst url = require(\"url\");\nconst storage_1 = require(\"./storage\");\nconst util_1 = require(\"./util\");\nvar SignerExceptionMessages;\n(function (SignerExceptionMessages) {\n SignerExceptionMessages[\"ACCESSIBLE_DATE_INVALID\"] = \"The accessible at date provided was invalid.\";\n SignerExceptionMessages[\"EXPIRATION_BEFORE_ACCESSIBLE_DATE\"] = \"An expiration date cannot be before accessible date.\";\n SignerExceptionMessages[\"X_GOOG_CONTENT_SHA256\"] = \"The header X-Goog-Content-SHA256 must be a hexadecimal string.\";\n})(SignerExceptionMessages = exports.SignerExceptionMessages || (exports.SignerExceptionMessages = {}));\n/*\n * Default signing version for getSignedUrl is 'v2'.\n */\nconst DEFAULT_SIGNING_VERSION = 'v2';\nconst SEVEN_DAYS = 7 * 24 * 60 * 60;\n/**\n * @const {string}\n * @private\n */\nexports.PATH_STYLED_HOST = 'https://storage.googleapis.com';\nclass URLSigner {\n constructor(authClient, bucket, file) {\n this.bucket = bucket;\n this.file = file;\n this.authClient = authClient;\n }\n getSignedUrl(cfg) {\n const expiresInSeconds = this.parseExpires(cfg.expires);\n const method = cfg.method;\n const accessibleAtInSeconds = this.parseAccessibleAt(cfg.accessibleAt);\n if (expiresInSeconds < accessibleAtInSeconds) {\n throw new Error(SignerExceptionMessages.EXPIRATION_BEFORE_ACCESSIBLE_DATE);\n }\n let customHost;\n // Default style is `path`.\n const isVirtualHostedStyle = cfg.virtualHostedStyle || false;\n if (cfg.cname) {\n customHost = cfg.cname;\n }\n else if (isVirtualHostedStyle) {\n customHost = `https://${this.bucket.name}.storage.googleapis.com`;\n }\n const secondsToMilliseconds = 1000;\n const config = Object.assign({}, cfg, {\n method,\n expiration: expiresInSeconds,\n accessibleAt: new Date(secondsToMilliseconds * accessibleAtInSeconds),\n bucket: this.bucket.name,\n file: this.file ? util_1.encodeURI(this.file.name, false) : undefined,\n });\n if (customHost) {\n config.cname = customHost;\n }\n const version = cfg.version || DEFAULT_SIGNING_VERSION;\n let promise;\n if (version === 'v2') {\n promise = this.getSignedUrlV2(config);\n }\n else if (version === 'v4') {\n promise = this.getSignedUrlV4(config);\n }\n else {\n throw new Error(`Invalid signed URL version: ${version}. Supported versions are 'v2' and 'v4'.`);\n }\n return promise.then(query => {\n query = Object.assign(query, cfg.queryParams);\n const signedUrl = new url.URL(config.cname || exports.PATH_STYLED_HOST);\n signedUrl.pathname = this.getResourcePath(!!config.cname, this.bucket.name, config.file);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signedUrl.search = util_1.qsStringify(query);\n return signedUrl.href;\n });\n }\n getSignedUrlV2(config) {\n const canonicalHeadersString = this.getCanonicalHeaders(config.extensionHeaders || {});\n const resourcePath = this.getResourcePath(false, config.bucket, config.file);\n const blobToSign = [\n config.method,\n config.contentMd5 || '',\n config.contentType || '',\n config.expiration,\n canonicalHeadersString + resourcePath,\n ].join('\\n');\n const sign = async () => {\n const authClient = this.authClient;\n try {\n const signature = await authClient.sign(blobToSign);\n const credentials = await authClient.getCredentials();\n return {\n GoogleAccessId: credentials.client_email,\n Expires: config.expiration,\n Signature: signature,\n };\n }\n catch (err) {\n const signingErr = new SigningError(err.message);\n signingErr.stack = err.stack;\n throw signingErr;\n }\n };\n return sign();\n }\n getSignedUrlV4(config) {\n config.accessibleAt = config.accessibleAt\n ? config.accessibleAt\n : new Date();\n const millisecondsToSeconds = 1.0 / 1000.0;\n const expiresPeriodInSeconds = config.expiration - config.accessibleAt.valueOf() * millisecondsToSeconds;\n // v4 limit expiration to be 7 days maximum\n if (expiresPeriodInSeconds > SEVEN_DAYS) {\n throw new Error(`Max allowed expiration is seven days (${SEVEN_DAYS} seconds).`);\n }\n const extensionHeaders = Object.assign({}, config.extensionHeaders);\n const fqdn = new url.URL(config.cname || exports.PATH_STYLED_HOST);\n extensionHeaders.host = fqdn.host;\n if (config.contentMd5) {\n extensionHeaders['content-md5'] = config.contentMd5;\n }\n if (config.contentType) {\n extensionHeaders['content-type'] = config.contentType;\n }\n let contentSha256;\n const sha256Header = extensionHeaders['x-goog-content-sha256'];\n if (sha256Header) {\n if (typeof sha256Header !== 'string' ||\n !/[A-Fa-f0-9]{40}/.test(sha256Header)) {\n throw new Error(SignerExceptionMessages.X_GOOG_CONTENT_SHA256);\n }\n contentSha256 = sha256Header;\n }\n const signedHeaders = Object.keys(extensionHeaders)\n .map(header => header.toLowerCase())\n .sort()\n .join(';');\n const extensionHeadersString = this.getCanonicalHeaders(extensionHeaders);\n const datestamp = util_1.formatAsUTCISO(config.accessibleAt);\n const credentialScope = `${datestamp}/auto/storage/goog4_request`;\n const sign = async () => {\n const credentials = await this.authClient.getCredentials();\n const credential = `${credentials.client_email}/${credentialScope}`;\n const dateISO = util_1.formatAsUTCISO(config.accessibleAt ? config.accessibleAt : new Date(), true);\n const queryParams = {\n 'X-Goog-Algorithm': 'GOOG4-RSA-SHA256',\n 'X-Goog-Credential': credential,\n 'X-Goog-Date': dateISO,\n 'X-Goog-Expires': expiresPeriodInSeconds.toString(10),\n 'X-Goog-SignedHeaders': signedHeaders,\n ...(config.queryParams || {}),\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const canonicalQueryParams = this.getCanonicalQueryParams(queryParams);\n const canonicalRequest = this.getCanonicalRequest(config.method, this.getResourcePath(!!config.cname, config.bucket, config.file), canonicalQueryParams, extensionHeadersString, signedHeaders, contentSha256);\n const hash = crypto\n .createHash('sha256')\n .update(canonicalRequest)\n .digest('hex');\n const blobToSign = [\n 'GOOG4-RSA-SHA256',\n dateISO,\n credentialScope,\n hash,\n ].join('\\n');\n try {\n const signature = await this.authClient.sign(blobToSign);\n const signatureHex = Buffer.from(signature, 'base64').toString('hex');\n const signedQuery = Object.assign({}, queryParams, {\n 'X-Goog-Signature': signatureHex,\n });\n return signedQuery;\n }\n catch (err) {\n const signingErr = new SigningError(err.message);\n signingErr.stack = err.stack;\n throw signingErr;\n }\n };\n return sign();\n }\n /**\n * Create canonical headers for signing v4 url.\n *\n * The canonical headers for v4-signing a request demands header names are\n * first lowercased, followed by sorting the header names.\n * Then, construct the canonical headers part of the request:\n * + \":\" + Trim() + \"\\n\"\n * ..\n * + \":\" + Trim() + \"\\n\"\n *\n * @param headers\n * @private\n */\n getCanonicalHeaders(headers) {\n // Sort headers by their lowercased names\n const sortedHeaders = util_1.objectEntries(headers)\n // Convert header names to lowercase\n .map(([headerName, value]) => [\n headerName.toLowerCase(),\n value,\n ])\n .sort((a, b) => a[0].localeCompare(b[0]));\n return sortedHeaders\n .filter(([, value]) => value !== undefined)\n .map(([headerName, value]) => {\n // - Convert Array (multi-valued header) into string, delimited by\n // ',' (no space).\n // - Trim leading and trailing spaces.\n // - Convert sequential (2+) spaces into a single space\n const canonicalValue = `${value}`.trim().replace(/\\s{2,}/g, ' ');\n return `${headerName}:${canonicalValue}\\n`;\n })\n .join('');\n }\n getCanonicalRequest(method, path, query, headers, signedHeaders, contentSha256) {\n return [\n method,\n path,\n query,\n headers,\n signedHeaders,\n contentSha256 || 'UNSIGNED-PAYLOAD',\n ].join('\\n');\n }\n getCanonicalQueryParams(query) {\n return util_1.objectEntries(query)\n .map(([key, value]) => [util_1.encodeURI(key, true), util_1.encodeURI(value, true)])\n .sort((a, b) => (a[0] < b[0] ? -1 : 1))\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n }\n getResourcePath(cname, bucket, file) {\n if (cname) {\n return '/' + (file || '');\n }\n else if (file) {\n return `/${bucket}/${file}`;\n }\n else {\n return `/${bucket}`;\n }\n }\n parseExpires(expires, current = new Date()) {\n const expiresInMSeconds = new Date(expires).valueOf();\n if (isNaN(expiresInMSeconds)) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_INVALID);\n }\n if (expiresInMSeconds < current.valueOf()) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_PAST);\n }\n return Math.round(expiresInMSeconds / 1000); // The API expects seconds.\n }\n parseAccessibleAt(accessibleAt) {\n const accessibleAtInMSeconds = new Date(accessibleAt || new Date()).valueOf();\n if (isNaN(accessibleAtInMSeconds)) {\n throw new Error(SignerExceptionMessages.ACCESSIBLE_DATE_INVALID);\n }\n return Math.floor(accessibleAtInMSeconds / 1000); // The API expects seconds.\n }\n}\nexports.URLSigner = URLSigner;\n/**\n * Custom error type for errors related to getting signed errors and policies.\n *\n * @private\n */\nclass SigningError extends Error {\n constructor() {\n super(...arguments);\n this.name = 'SigningError';\n }\n}\nexports.SigningError = SigningError;\n//# sourceMappingURL=signer.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = exports.RETRYABLE_ERR_FN_DEFAULT = exports.MAX_RETRY_DELAY_DEFAULT = exports.TOTAL_TIMEOUT_DEFAULT = exports.RETRY_DELAY_MULTIPLIER_DEFAULT = exports.MAX_RETRY_DEFAULT = exports.AUTO_RETRY_DEFAULT = exports.PROTOCOL_REGEX = exports.StorageExceptionMessages = exports.ExceptionMessages = exports.IdempotencyStrategy = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst paginator_1 = require(\"@google-cloud/paginator\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst stream_1 = require(\"stream\");\nconst bucket_1 = require(\"./bucket\");\nconst channel_1 = require(\"./channel\");\nconst file_1 = require(\"./file\");\nconst util_1 = require(\"./util\");\nconst hmacKey_1 = require(\"./hmacKey\");\nvar IdempotencyStrategy;\n(function (IdempotencyStrategy) {\n IdempotencyStrategy[IdempotencyStrategy[\"RetryAlways\"] = 0] = \"RetryAlways\";\n IdempotencyStrategy[IdempotencyStrategy[\"RetryConditional\"] = 1] = \"RetryConditional\";\n IdempotencyStrategy[IdempotencyStrategy[\"RetryNever\"] = 2] = \"RetryNever\";\n})(IdempotencyStrategy = exports.IdempotencyStrategy || (exports.IdempotencyStrategy = {}));\nvar ExceptionMessages;\n(function (ExceptionMessages) {\n ExceptionMessages[\"EXPIRATION_DATE_INVALID\"] = \"The expiration date provided was invalid.\";\n ExceptionMessages[\"EXPIRATION_DATE_PAST\"] = \"An expiration date cannot be in the past.\";\n ExceptionMessages[\"INVALID_ACTION\"] = \"The action is not provided or invalid.\";\n})(ExceptionMessages = exports.ExceptionMessages || (exports.ExceptionMessages = {}));\nvar StorageExceptionMessages;\n(function (StorageExceptionMessages) {\n StorageExceptionMessages[\"AUTO_RETRY_DEPRECATED\"] = \"autoRetry is deprecated. Use retryOptions.autoRetry instead.\";\n StorageExceptionMessages[\"MAX_RETRIES_DEPRECATED\"] = \"maxRetries is deprecated. Use retryOptions.maxRetries instead.\";\n StorageExceptionMessages[\"BUCKET_NAME_REQUIRED\"] = \"A bucket name is needed to use Cloud Storage.\";\n StorageExceptionMessages[\"BUCKET_NAME_REQUIRED_CREATE\"] = \"A name is required to create a bucket.\";\n StorageExceptionMessages[\"HMAC_SERVICE_ACCOUNT\"] = \"The first argument must be a service account email to create an HMAC key.\";\n StorageExceptionMessages[\"HMAC_ACCESS_ID\"] = \"An access ID is needed to create an HmacKey object.\";\n})(StorageExceptionMessages = exports.StorageExceptionMessages || (exports.StorageExceptionMessages = {}));\nexports.PROTOCOL_REGEX = /^(\\w*):\\/\\//;\n/**\n * Default behavior: Automatically retry retriable server errors.\n *\n * @const {boolean}\n */\nexports.AUTO_RETRY_DEFAULT = true;\n/**\n * Default behavior: Only attempt to retry retriable errors 3 times.\n *\n * @const {number}\n */\nexports.MAX_RETRY_DEFAULT = 3;\n/**\n * Default behavior: Wait twice as long as previous retry before retrying.\n *\n * @const {number}\n */\nexports.RETRY_DELAY_MULTIPLIER_DEFAULT = 2;\n/**\n * Default behavior: If the operation doesn't succeed after 600 seconds,\n * stop retrying.\n *\n * @const {number}\n */\nexports.TOTAL_TIMEOUT_DEFAULT = 600;\n/**\n * Default behavior: Wait no more than 64 seconds between retries.\n *\n * @const {number}\n */\nexports.MAX_RETRY_DELAY_DEFAULT = 64;\n/**\n * Default behavior: Retry conditionally idempotent operations if correct preconditions are set.\n *\n * @const {enum}\n * @private\n */\nconst IDEMPOTENCY_STRATEGY_DEFAULT = IdempotencyStrategy.RetryConditional;\n/**\n * Returns true if the API request should be retried, given the error that was\n * given the first time the request was attempted.\n * @const\n * @param {error} err - The API error to check if it is appropriate to retry.\n * @return {boolean} True if the API request should be retried, false otherwise.\n */\nexports.RETRYABLE_ERR_FN_DEFAULT = function (err) {\n var _a;\n if (err) {\n if ([408, 429, 500, 502, 503, 504].indexOf(err.code) !== -1) {\n return true;\n }\n if (err.errors) {\n for (const e of err.errors) {\n const reason = (_a = e === null || e === void 0 ? void 0 : e.reason) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();\n if ((reason && reason.includes('eai_again')) || //DNS lookup error\n reason === 'econnreset' ||\n reason === 'unexpected connection closure') {\n return true;\n }\n }\n }\n }\n return false;\n};\n/*! Developer Documentation\n *\n * Invoke this method to create a new Storage object bound with pre-determined\n * configuration options. For each object that can be created (e.g., a bucket),\n * there is an equivalent static and instance method. While they are classes,\n * they can be instantiated without use of the `new` keyword.\n */\n/**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * This object provides constants to refer to the three permission levels that\n * can be granted to an entity:\n *\n * - `gcs.acl.OWNER_ROLE` - (\"OWNER\")\n * - `gcs.acl.READER_ROLE` - (\"READER\")\n * - `gcs.acl.WRITER_ROLE` - (\"WRITER\")\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/lists| About Access Control Lists}\n *\n * @name Storage#acl\n * @type {object}\n * @property {string} OWNER_ROLE\n * @property {string} READER_ROLE\n * @property {string} WRITER_ROLE\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const albums = storage.bucket('albums');\n *\n * //-\n * // Make all of the files currently in a bucket publicly readable.\n * //-\n * const options = {\n * entity: 'allUsers',\n * role: storage.acl.READER_ROLE\n * };\n *\n * albums.acl.add(options, function(err, aclObject) {});\n *\n * //-\n * // Make any new objects added to a bucket publicly readable.\n * //-\n * albums.acl.default.add(options, function(err, aclObject) {});\n *\n * //-\n * // Grant a user ownership permissions to a bucket.\n * //-\n * albums.acl.add({\n * entity: 'user-useremail@example.com',\n * role: storage.acl.OWNER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * albums.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n/**\n * Get {@link Bucket} objects for all of the buckets in your project as\n * a readable object stream.\n *\n * @method Storage#getBucketsStream\n * @param {GetBucketsRequest} [query] Query object for listing buckets.\n * @returns {ReadableStream} A readable stream that emits {@link Bucket}\n * instances.\n *\n * @example\n * ```\n * storage.getBucketsStream()\n * .on('error', console.error)\n * .on('data', function(bucket) {\n * // bucket is a Bucket object.\n * })\n * .on('end', function() {\n * // All buckets retrieved.\n * });\n *\n * //-\n * // If you anticipate many results, you can end a stream early to prevent\n * // unnecessary processing and API requests.\n * //-\n * storage.getBucketsStream()\n * .on('data', function(bucket) {\n * this.end();\n * });\n * ```\n */\n/**\n * Get {@link HmacKey} objects for all of the HMAC keys in the project in a\n * readable object stream.\n *\n * @method Storage#getHmacKeysStream\n * @param {GetHmacKeysOptions} [options] Configuration options.\n * @returns {ReadableStream} A readable stream that emits {@link HmacKey}\n * instances.\n *\n * @example\n * ```\n * storage.getHmacKeysStream()\n * .on('error', console.error)\n * .on('data', function(hmacKey) {\n * // hmacKey is an HmacKey object.\n * })\n * .on('end', function() {\n * // All HmacKey retrieved.\n * });\n *\n * //-\n * // If you anticipate many results, you can end a stream early to prevent\n * // unnecessary processing and API requests.\n * //-\n * storage.getHmacKeysStream()\n * .on('data', function(bucket) {\n * this.end();\n * });\n * ```\n */\n/**\n *

ACLs

\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share files with other users\n * and allow other users to access your buckets and files.\n *\n * To learn more about ACLs, read this overview on\n * {@link https://cloud.google.com/storage/docs/access-control| Access Control}.\n *\n * See {@link https://cloud.google.com/storage/docs/overview| Cloud Storage overview}\n * See {@link https://cloud.google.com/storage/docs/access-control| Access Control}\n *\n * @class\n */\nclass Storage extends nodejs_common_1.Service {\n /**\n * @typedef {object} StorageOptions\n * @property {string} [projectId] The project ID from the Google Developer's\n * Console, e.g. 'grape-spaceship-123'. We will also check the environment\n * variable `GCLOUD_PROJECT` for your project ID. If your app is running\n * in an environment which supports {@link\n * https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application\n * Application Default Credentials}, your project ID will be detected\n * automatically.\n * @property {string} [keyFilename] Full path to the a .json, .pem, or .p12 key\n * downloaded from the Google Developers Console. If you provide a path to\n * a JSON file, the `projectId` option above is not necessary. NOTE: .pem and\n * .p12 require you to specify the `email` option as well.\n * @property {string} [email] Account email address. Required when using a .pem\n * or .p12 keyFilename.\n * @property {object} [credentials] Credentials object.\n * @property {string} [credentials.client_email]\n * @property {string} [credentials.private_key]\n * @property {object} [retryOptions] Options for customizing retries. Retriable server errors\n * will be retried with exponential delay between them dictated by the formula\n * max(maxRetryDelay, retryDelayMultiplier*retryNumber) until maxRetries or totalTimeout\n * has been reached. Retries will only happen if autoRetry is set to true.\n * @property {boolean} [retryOptions.autoRetry=true] Automatically retry requests if the\n * response is related to rate limits or certain intermittent server\n * errors. We will exponentially backoff subsequent requests by default.\n * @property {number} [retryOptions.retryDelayMultiplier = 2] the multiplier by which to\n * increase the delay time between the completion of failed requests, and the\n * initiation of the subsequent retrying request.\n * @property {number} [retryOptions.totalTimeout = 600] The total time, starting from\n * when the initial request is sent, after which an error will\n * be returned, regardless of the retrying attempts made meanwhile.\n * @property {number} [retryOptions.maxRetryDelay = 64] The maximum delay time between requests.\n * When this value is reached, ``retryDelayMultiplier`` will no longer be used to\n * increase delay time.\n * @property {number} [retryOptions.maxRetries=3] Maximum number of automatic retries\n * attempted before returning the error.\n * @property {function} [retryOptions.retryableErrorFn] Function that returns true if a given\n * error should be retried and false otherwise.\n * @property {enum} [retryOptions.idempotencyStrategy=IdempotencyStrategy.RetryConditional] Enumeration\n * controls how conditionally idempotent operations are retried. Possible values are: RetryAlways -\n * will respect other retry settings and attempt to retry conditionally idempotent operations. RetryConditional -\n * will retry conditionally idempotent operations if the correct preconditions are set. RetryNever - never\n * retry a conditionally idempotent operation.\n * @property {string} [userAgent] The value to be prepended to the User-Agent\n * header in API requests.\n * @property {object} [authClient] `AuthClient` or `GoogleAuth` client to reuse instead of creating a new one.\n * @property {number} [timeout] The amount of time in milliseconds to wait per http request before timing out.\n * @property {object[]} [interceptors_] Array of custom request interceptors to be returned in the order they were assigned.\n * @property {string} [apiEndpoint = storage.google.com] The API endpoint of the service used to make requests.\n * @property {boolean} [useAuthWithCustomEndpoint = false] Controls whether or not to use authentication when using a custom endpoint.\n */\n /**\n * Constructs the Storage client.\n *\n * @example\n * Create a client that uses Application Default Credentials\n * (ADC)\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * ```\n *\n * @example\n * Create a client with explicit credentials\n * ```\n * const storage = new Storage({\n * projectId: 'your-project-id',\n * keyFilename: '/path/to/keyfile.json'\n * });\n * ```\n *\n * @example\n * Create a client with an `AuthClient` (e.g. `DownscopedClient`)\n * ```\n * const {DownscopedClient} = require('google-auth-library');\n * const authClient = new DownscopedClient({...});\n *\n * const storage = new Storage({authClient});\n * ```\n *\n * Additional samples:\n * - https://github.com/googleapis/google-auth-library-nodejs#sample-usage-1\n * - https://github.com/googleapis/google-auth-library-nodejs/blob/main/samples/downscopedclient.js\n *\n * @param {StorageOptions} [options] Configuration options.\n */\n constructor(options = {}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n let apiEndpoint = 'https://storage.googleapis.com';\n let customEndpoint = false;\n // Note: EMULATOR_HOST is an experimental configuration variable. Use apiEndpoint instead.\n const EMULATOR_HOST = process.env.STORAGE_EMULATOR_HOST;\n if (typeof EMULATOR_HOST === 'string') {\n apiEndpoint = Storage.sanitizeEndpoint(EMULATOR_HOST);\n customEndpoint = true;\n }\n if (options.apiEndpoint) {\n apiEndpoint = Storage.sanitizeEndpoint(options.apiEndpoint);\n customEndpoint = true;\n }\n options = Object.assign({}, options, { apiEndpoint });\n // Note: EMULATOR_HOST is an experimental configuration variable. Use apiEndpoint instead.\n const baseUrl = EMULATOR_HOST || `${options.apiEndpoint}/storage/v1`;\n let autoRetryValue = exports.AUTO_RETRY_DEFAULT;\n if (options.autoRetry !== undefined &&\n ((_a = options.retryOptions) === null || _a === void 0 ? void 0 : _a.autoRetry) !== undefined) {\n throw new nodejs_common_1.ApiError(StorageExceptionMessages.AUTO_RETRY_DEPRECATED);\n }\n else if (options.autoRetry !== undefined) {\n autoRetryValue = options.autoRetry;\n }\n else if (((_b = options.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry) !== undefined) {\n autoRetryValue = options.retryOptions.autoRetry;\n }\n let maxRetryValue = exports.MAX_RETRY_DEFAULT;\n if (options.maxRetries && ((_c = options.retryOptions) === null || _c === void 0 ? void 0 : _c.maxRetries)) {\n throw new nodejs_common_1.ApiError(StorageExceptionMessages.MAX_RETRIES_DEPRECATED);\n }\n else if (options.maxRetries) {\n maxRetryValue = options.maxRetries;\n }\n else if ((_d = options.retryOptions) === null || _d === void 0 ? void 0 : _d.maxRetries) {\n maxRetryValue = options.retryOptions.maxRetries;\n }\n const config = {\n apiEndpoint: options.apiEndpoint,\n retryOptions: {\n autoRetry: autoRetryValue,\n maxRetries: maxRetryValue,\n retryDelayMultiplier: ((_e = options.retryOptions) === null || _e === void 0 ? void 0 : _e.retryDelayMultiplier) ? (_f = options.retryOptions) === null || _f === void 0 ? void 0 : _f.retryDelayMultiplier : exports.RETRY_DELAY_MULTIPLIER_DEFAULT,\n totalTimeout: ((_g = options.retryOptions) === null || _g === void 0 ? void 0 : _g.totalTimeout) ? (_h = options.retryOptions) === null || _h === void 0 ? void 0 : _h.totalTimeout : exports.TOTAL_TIMEOUT_DEFAULT,\n maxRetryDelay: ((_j = options.retryOptions) === null || _j === void 0 ? void 0 : _j.maxRetryDelay) ? (_k = options.retryOptions) === null || _k === void 0 ? void 0 : _k.maxRetryDelay : exports.MAX_RETRY_DELAY_DEFAULT,\n retryableErrorFn: ((_l = options.retryOptions) === null || _l === void 0 ? void 0 : _l.retryableErrorFn) ? (_m = options.retryOptions) === null || _m === void 0 ? void 0 : _m.retryableErrorFn : exports.RETRYABLE_ERR_FN_DEFAULT,\n idempotencyStrategy: ((_o = options.retryOptions) === null || _o === void 0 ? void 0 : _o.idempotencyStrategy) !== undefined\n ? (_p = options.retryOptions) === null || _p === void 0 ? void 0 : _p.idempotencyStrategy : IDEMPOTENCY_STRATEGY_DEFAULT,\n },\n baseUrl,\n customEndpoint,\n useAuthWithCustomEndpoint: options === null || options === void 0 ? void 0 : options.useAuthWithCustomEndpoint,\n projectIdRequired: false,\n scopes: [\n 'https://www.googleapis.com/auth/iam',\n 'https://www.googleapis.com/auth/cloud-platform',\n 'https://www.googleapis.com/auth/devstorage.full_control',\n ],\n packageJson: require('../../package.json'),\n };\n super(config, options);\n /**\n * Reference to {@link Storage.acl}.\n *\n * @name Storage#acl\n * @see Storage.acl\n */\n this.acl = Storage.acl;\n this.retryOptions = config.retryOptions;\n this.getBucketsStream = paginator_1.paginator.streamify('getBuckets');\n this.getHmacKeysStream = paginator_1.paginator.streamify('getHmacKeys');\n }\n getBucketsStream() {\n // placeholder body, overwritten in constructor\n return new stream_1.Readable();\n }\n getHmacKeysStream() {\n // placeholder body, overwritten in constructor\n return new stream_1.Readable();\n }\n static sanitizeEndpoint(url) {\n if (!exports.PROTOCOL_REGEX.test(url)) {\n url = `https://${url}`;\n }\n return url.replace(/\\/+$/, ''); // Remove trailing slashes\n }\n /**\n * Get a reference to a Cloud Storage bucket.\n *\n * @param {string} name Name of the bucket.\n * @param {object} [options] Configuration object.\n * @param {string} [options.kmsKeyName] A Cloud KMS key that will be used to\n * encrypt objects inserted into this bucket, if no encryption method is\n * specified.\n * @param {string} [options.userProject] User project to be billed for all\n * requests made from this Bucket object.\n * @returns {Bucket}\n * @see Bucket\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const albums = storage.bucket('albums');\n * const photos = storage.bucket('photos');\n * ```\n */\n bucket(name, options) {\n if (!name) {\n throw new Error(StorageExceptionMessages.BUCKET_NAME_REQUIRED);\n }\n return new bucket_1.Bucket(this, name, options);\n }\n /**\n * Reference a channel to receive notifications about changes to your bucket.\n *\n * @param {string} id The ID of the channel.\n * @param {string} resourceId The resource ID of the channel.\n * @returns {Channel}\n * @see Channel\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const channel = storage.channel('id', 'resource-id');\n * ```\n */\n channel(id, resourceId) {\n return new channel_1.Channel(this, id, resourceId);\n }\n /**\n * @typedef {array} CreateBucketResponse\n * @property {Bucket} 0 The new {@link Bucket}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback CreateBucketCallback\n * @param {?Error} err Request error, if any.\n * @param {Bucket} bucket The new {@link Bucket}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Metadata to set for the bucket.\n *\n * @typedef {object} CreateBucketRequest\n * @property {boolean} [archive=false] Specify the storage class as Archive.\n * @property {boolean} [coldline=false] Specify the storage class as Coldline.\n * @property {Cors[]} [cors=[]] Specify the CORS configuration to use.\n * @property {boolean} [dra=false] Specify the storage class as Durable Reduced\n * Availability.\n * @property {string} [location] Specify the bucket's location(s). If specifying\n * a dual-region, can be specified as a string `\"US-CENTRAL1+US-WEST1\"`.\n * For more information, see {@link https://cloud.google.com/storage/docs/locations| Bucket Locations}.\n * @property {boolean} [multiRegional=false] Specify the storage class as\n * Multi-Regional.\n * @property {boolean} [nearline=false] Specify the storage class as Nearline.\n * @property {boolean} [regional=false] Specify the storage class as Regional.\n * @property {boolean} [requesterPays=false] **Early Access Testers Only**\n * Force the use of the User Project metadata field to assign operational\n * costs when an operation is made on a Bucket and its objects.\n * @property {string} [rpo] For dual-region buckets, controls whether turbo\n * replication is enabled (`ASYNC_TURBO`) or disabled (`DEFAULT`).\n * @property {boolean} [standard=true] Specify the storage class as Standard.\n * @property {string} [storageClass] The new storage class. (`standard`,\n * `nearline`, `coldline`, or `archive`).\n * **Note:** The storage classes `multi_regional`, `regional`, and\n * `durable_reduced_availability` are now legacy and will be deprecated in\n * the future.\n * @property {Versioning} [versioning=undefined] Specify the versioning status.\n * @property {string} [userProject] The ID of the project which will be billed\n * for the request.\n */\n /**\n * Create a bucket.\n *\n * Cloud Storage uses a flat namespace, so you can't create a bucket with\n * a name that is already in use. For more information, see\n * {@link https://cloud.google.com/storage/docs/bucketnaming.html#requirements| Bucket Naming Guidelines}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/insert| Buckets: insert API Documentation}\n * See {@link https://cloud.google.com/storage/docs/storage-classes| Storage Classes}\n *\n * @param {string} name Name of the bucket to create.\n * @param {CreateBucketRequest} [metadata] Metadata to set for the bucket.\n * @param {CreateBucketCallback} [callback] Callback function.\n * @returns {Promise}\n * @throws {Error} If a name is not provided.\n * @see Bucket#create\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const callback = function(err, bucket, apiResponse) {\n * // `bucket` is a Bucket object.\n * };\n *\n * storage.createBucket('new-bucket', callback);\n *\n * //-\n * // Create a bucket in a specific location and region. See the \n * // Official JSON API docs for complete details on the `location`\n * option.\n * // \n * //-\n * const metadata = {\n * location: 'US-CENTRAL1',\n * regional: true\n * };\n *\n * storage.createBucket('new-bucket', metadata, callback);\n *\n * //-\n * // Create a bucket with a retention policy of 6 months.\n * //-\n * const metadata = {\n * retentionPolicy: {\n * retentionPeriod: 15780000 // 6 months in seconds.\n * }\n * };\n *\n * storage.createBucket('new-bucket', metadata, callback);\n *\n * //-\n * // Enable versioning on a new bucket.\n * //-\n * const metadata = {\n * versioning: {\n * enabled: true\n * }\n * };\n *\n * storage.createBucket('new-bucket', metadata, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.createBucket('new-bucket').then(function(data) {\n * const bucket = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/buckets.js\n * region_tag:storage_create_bucket\n * Another example:\n */\n createBucket(name, metadataOrCallback, callback) {\n if (!name) {\n throw new Error(StorageExceptionMessages.BUCKET_NAME_REQUIRED_CREATE);\n }\n let metadata;\n if (!callback) {\n callback = metadataOrCallback;\n metadata = {};\n }\n else {\n metadata = metadataOrCallback;\n }\n const body = Object.assign({}, metadata, { name });\n const storageClasses = {\n archive: 'ARCHIVE',\n coldline: 'COLDLINE',\n dra: 'DURABLE_REDUCED_AVAILABILITY',\n multiRegional: 'MULTI_REGIONAL',\n nearline: 'NEARLINE',\n regional: 'REGIONAL',\n standard: 'STANDARD',\n };\n Object.keys(storageClasses).forEach(storageClass => {\n if (body[storageClass]) {\n if (metadata.storageClass && metadata.storageClass !== storageClass) {\n throw new Error(`Both \\`${storageClass}\\` and \\`storageClass\\` were provided.`);\n }\n body.storageClass = storageClasses[storageClass];\n delete body[storageClass];\n }\n });\n if (body.requesterPays) {\n body.billing = {\n requesterPays: body.requesterPays,\n };\n delete body.requesterPays;\n }\n const query = {\n project: this.projectId,\n };\n if (body.userProject) {\n query.userProject = body.userProject;\n delete body.userProject;\n }\n this.request({\n method: 'POST',\n uri: '/b',\n qs: query,\n json: body,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n const bucket = this.bucket(name);\n bucket.metadata = resp;\n callback(null, bucket, resp);\n });\n }\n /**\n * @typedef {object} CreateHmacKeyOptions\n * @property {string} [projectId] The project ID of the project that owns\n * the service account of the requested HMAC key. If not provided,\n * the project ID used to instantiate the Storage client will be used.\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * @typedef {object} HmacKeyMetadata\n * @property {string} accessId The access id identifies which HMAC key was\n * used to sign a request when authenticating with HMAC.\n * @property {string} etag Used to perform a read-modify-write of the key.\n * @property {string} id The resource name of the HMAC key.\n * @property {string} projectId The project ID.\n * @property {string} serviceAccountEmail The service account's email this\n * HMAC key is created for.\n * @property {string} state The state of this HMAC key. One of \"ACTIVE\",\n * \"INACTIVE\" or \"DELETED\".\n * @property {string} timeCreated The creation time of the HMAC key in\n * RFC 3339 format.\n * @property {string} [updated] The time this HMAC key was last updated in\n * RFC 3339 format.\n */\n /**\n * @typedef {array} CreateHmacKeyResponse\n * @property {HmacKey} 0 The HmacKey instance created from API response.\n * @property {string} 1 The HMAC key's secret used to access the XML API.\n * @property {object} 3 The raw API response.\n */\n /**\n * @callback CreateHmacKeyCallback Callback function.\n * @param {?Error} err Request error, if any.\n * @param {HmacKey} hmacKey The HmacKey instance created from API response.\n * @param {string} secret The HMAC key's secret used to access the XML API.\n * @param {object} apiResponse The raw API response.\n */\n /**\n * Create an HMAC key associated with an service account to authenticate\n * requests to the Cloud Storage XML API.\n *\n * See {@link https://cloud.google.com/storage/docs/authentication/hmackeys| HMAC keys documentation}\n *\n * @param {string} serviceAccountEmail The service account's email address\n * with which the HMAC key is created for.\n * @param {CreateHmacKeyCallback} [callback] Callback function.\n * @return {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('google-cloud/storage');\n * const storage = new Storage();\n *\n * // Replace with your service account's email address\n * const serviceAccountEmail =\n * 'my-service-account@appspot.gserviceaccount.com';\n *\n * storage.createHmacKey(serviceAccountEmail, function(err, hmacKey, secret) {\n * if (!err) {\n * // Securely store the secret for use with the XML API.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.createHmacKey(serviceAccountEmail)\n * .then((response) => {\n * const hmacKey = response[0];\n * const secret = response[1];\n * // Securely store the secret for use with the XML API.\n * });\n * ```\n */\n createHmacKey(serviceAccountEmail, optionsOrCb, cb) {\n if (typeof serviceAccountEmail !== 'string') {\n throw new Error(StorageExceptionMessages.HMAC_SERVICE_ACCOUNT);\n }\n const { options, callback } = util_1.normalize(optionsOrCb, cb);\n const query = Object.assign({}, options, { serviceAccountEmail });\n const projectId = query.projectId || this.projectId;\n delete query.projectId;\n this.request({\n method: 'POST',\n uri: `/projects/${projectId}/hmacKeys`,\n qs: query,\n maxRetries: 0,\n }, (err, resp) => {\n if (err) {\n callback(err, null, null, resp);\n return;\n }\n const metadata = resp.metadata;\n const hmacKey = this.hmacKey(metadata.accessId, {\n projectId: metadata.projectId,\n });\n hmacKey.metadata = resp.metadata;\n callback(null, hmacKey, resp.secret, resp);\n });\n }\n /**\n * Query object for listing buckets.\n *\n * @typedef {object} GetBucketsRequest\n * @property {boolean} [autoPaginate=true] Have pagination handled\n * automatically.\n * @property {number} [maxApiCalls] Maximum number of API calls to make.\n * @property {number} [maxResults] Maximum number of items plus prefixes to\n * return per call.\n * Note: By default will handle pagination automatically\n * if more than 1 page worth of results are requested per call.\n * When `autoPaginate` is set to `false` the smaller of `maxResults`\n * or 1 page of results will be returned per call.\n * @property {string} [pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @property {string} [userProject] The ID of the project which will be billed\n * for the request.\n */\n /**\n * @typedef {array} GetBucketsResponse\n * @property {Bucket[]} 0 Array of {@link Bucket} instances.\n * @property {object} 1 nextQuery A query object to receive more results.\n * @property {object} 2 The full API response.\n */\n /**\n * @callback GetBucketsCallback\n * @param {?Error} err Request error, if any.\n * @param {Bucket[]} buckets Array of {@link Bucket} instances.\n * @param {object} nextQuery A query object to receive more results.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get Bucket objects for all of the buckets in your project.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/list| Buckets: list API Documentation}\n *\n * @param {GetBucketsRequest} [query] Query object for listing buckets.\n * @param {GetBucketsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * storage.getBuckets(function(err, buckets) {\n * if (!err) {\n * // buckets is an array of Bucket objects.\n * }\n * });\n *\n * //-\n * // To control how many API requests are made and page through the results\n * // manually, set `autoPaginate` to `false`.\n * //-\n * const callback = function(err, buckets, nextQuery, apiResponse) {\n * if (nextQuery) {\n * // More results exist.\n * storage.getBuckets(nextQuery, callback);\n * }\n *\n * // The `metadata` property is populated for you with the metadata at the\n * // time of fetching.\n * buckets[0].metadata;\n *\n * // However, in cases where you are concerned the metadata could have\n * // changed, use the `getMetadata` method.\n * buckets[0].getMetadata(function(err, metadata, apiResponse) {});\n * };\n *\n * storage.getBuckets({\n * autoPaginate: false\n * }, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.getBuckets().then(function(data) {\n * const buckets = data[0];\n * });\n *\n * ```\n * @example include:samples/buckets.js\n * region_tag:storage_list_buckets\n * Another example:\n */\n getBuckets(optionsOrCallback, cb) {\n const { options, callback } = util_1.normalize(optionsOrCallback, cb);\n options.project = options.project || this.projectId;\n this.request({\n uri: '/b',\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, null, resp);\n return;\n }\n const buckets = arrify(resp.items).map((bucket) => {\n const bucketInstance = this.bucket(bucket.id);\n bucketInstance.metadata = bucket;\n return bucketInstance;\n });\n const nextQuery = resp.nextPageToken\n ? Object.assign({}, options, { pageToken: resp.nextPageToken })\n : null;\n callback(null, buckets, nextQuery, resp);\n });\n }\n getHmacKeys(optionsOrCb, cb) {\n const { options, callback } = util_1.normalize(optionsOrCb, cb);\n const query = Object.assign({}, options);\n const projectId = query.projectId || this.projectId;\n delete query.projectId;\n this.request({\n uri: `/projects/${projectId}/hmacKeys`,\n qs: query,\n }, (err, resp) => {\n if (err) {\n callback(err, null, null, resp);\n return;\n }\n const hmacKeys = arrify(resp.items).map((hmacKey) => {\n const hmacKeyInstance = this.hmacKey(hmacKey.accessId, {\n projectId: hmacKey.projectId,\n });\n hmacKeyInstance.metadata = hmacKey;\n return hmacKeyInstance;\n });\n const nextQuery = resp.nextPageToken\n ? Object.assign({}, options, { pageToken: resp.nextPageToken })\n : null;\n callback(null, hmacKeys, nextQuery, resp);\n });\n }\n /**\n * @typedef {array} GetServiceAccountResponse\n * @property {object} 0 The service account resource.\n * @property {object} 1 The full\n * {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount#resource| API response}.\n */\n /**\n * @callback GetServiceAccountCallback\n * @param {?Error} err Request error, if any.\n * @param {object} serviceAccount The serviceAccount resource.\n * @param {string} serviceAccount.emailAddress The service account email\n * address.\n * @param {object} apiResponse The full\n * {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount#resource| API response}.\n */\n /**\n * Get the email address of this project's Google Cloud Storage service\n * account.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount/get| Projects.serviceAccount: get API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount#resource| Projects.serviceAccount Resource}\n *\n * @param {object} [options] Configuration object.\n * @param {string} [options.userProject] User project to be billed for this\n * request.\n * @param {GetServiceAccountCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * storage.getServiceAccount(function(err, serviceAccount, apiResponse) {\n * if (!err) {\n * const serviceAccountEmail = serviceAccount.emailAddress;\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.getServiceAccount().then(function(data) {\n * const serviceAccountEmail = data[0].emailAddress;\n * const apiResponse = data[1];\n * });\n * ```\n */\n getServiceAccount(optionsOrCallback, cb) {\n const { options, callback } = util_1.normalize(optionsOrCallback, cb);\n this.request({\n uri: `/projects/${this.projectId}/serviceAccount`,\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n const camelCaseResponse = {};\n for (const prop in resp) {\n // eslint-disable-next-line no-prototype-builtins\n if (resp.hasOwnProperty(prop)) {\n const camelCaseProp = prop.replace(/_(\\w)/g, (_, match) => match.toUpperCase());\n camelCaseResponse[camelCaseProp] = resp[prop];\n }\n }\n callback(null, camelCaseResponse, resp);\n });\n }\n /**\n * Get a reference to an HmacKey object.\n * Note: this does not fetch the HMAC key's metadata. Use HmacKey#get() to\n * retrieve and populate the metadata.\n *\n * To get a reference to an HMAC key that's not created for a service\n * account in the same project used to instantiate the Storage client,\n * supply the project's ID as `projectId` in the `options` argument.\n *\n * @param {string} accessId The HMAC key's access ID.\n * @param {HmacKeyOptions} options HmacKey constructor options.\n * @returns {HmacKey}\n * @see HmacKey\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const hmacKey = storage.hmacKey('ACCESS_ID');\n * ```\n */\n hmacKey(accessId, options) {\n if (!accessId) {\n throw new Error(StorageExceptionMessages.HMAC_ACCESS_ID);\n }\n return new hmacKey_1.HmacKey(this, accessId, options);\n }\n}\nexports.Storage = Storage;\n/**\n * {@link Bucket} class.\n *\n * @name Storage.Bucket\n * @see Bucket\n * @type {Constructor}\n */\nStorage.Bucket = bucket_1.Bucket;\n/**\n * {@link Channel} class.\n *\n * @name Storage.Channel\n * @see Channel\n * @type {Constructor}\n */\nStorage.Channel = channel_1.Channel;\n/**\n * {@link File} class.\n *\n * @name Storage.File\n * @see File\n * @type {Constructor}\n */\nStorage.File = file_1.File;\n/**\n * {@link HmacKey} class.\n *\n * @name Storage.HmacKey\n * @see HmacKey\n * @type {Constructor}\n */\nStorage.HmacKey = hmacKey_1.HmacKey;\nStorage.acl = {\n OWNER_ROLE: 'OWNER',\n READER_ROLE: 'READER',\n WRITER_ROLE: 'WRITER',\n};\n/*! Developer Documentation\n *\n * These methods can be auto-paginated.\n */\npaginator_1.paginator.extend(Storage, ['getBuckets', 'getHmacKeys']);\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Storage, {\n exclude: ['bucket', 'channel', 'hmacKey'],\n});\n//# sourceMappingURL=storage.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatAsUTCISO = exports.convertObjKeysToSnakeCase = exports.unicodeJSONStringify = exports.objectKeyToLowercase = exports.qsStringify = exports.encodeURI = exports.fixedEncodeURIComponent = exports.objectEntries = exports.normalize = void 0;\nconst querystring = require(\"querystring\");\nfunction normalize(optionsOrCallback, cb) {\n const options = (typeof optionsOrCallback === 'object' ? optionsOrCallback : {});\n const callback = (typeof optionsOrCallback === 'function' ? optionsOrCallback : cb);\n return { options, callback };\n}\nexports.normalize = normalize;\n/**\n * Flatten an object into an Array of arrays, [[key, value], ..].\n * Implements Object.entries() for Node.js <8\n * @internal\n */\nfunction objectEntries(obj) {\n return Object.keys(obj).map(key => [key, obj[key]]);\n}\nexports.objectEntries = objectEntries;\n/**\n * Encode `str` with encodeURIComponent, plus these\n * reserved characters: `! * ' ( )`.\n *\n * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent| MDN: fixedEncodeURIComponent}\n *\n * @param {string} str The URI component to encode.\n * @return {string} The encoded string.\n */\nfunction fixedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase());\n}\nexports.fixedEncodeURIComponent = fixedEncodeURIComponent;\n/**\n * URI encode `uri` for generating signed URLs, using fixedEncodeURIComponent.\n *\n * Encode every byte except `A-Z a-Z 0-9 ~ - . _`.\n *\n * @param {string} uri The URI to encode.\n * @param [boolean=false] encodeSlash If `true`, the \"/\" character is not encoded.\n * @return {string} The encoded string.\n */\nfunction encodeURI(uri, encodeSlash) {\n // Split the string by `/`, and conditionally rejoin them with either\n // %2F if encodeSlash is `true`, or '/' if `false`.\n return uri\n .split('/')\n .map(fixedEncodeURIComponent)\n .join(encodeSlash ? '%2F' : '/');\n}\nexports.encodeURI = encodeURI;\n/**\n * Serialize an object to a URL query string using util.encodeURI(uri, true).\n * @param {string} url The object to serialize.\n * @return {string} Serialized string.\n */\nfunction qsStringify(qs) {\n return querystring.stringify(qs, '&', '=', {\n encodeURIComponent: (component) => encodeURI(component, true),\n });\n}\nexports.qsStringify = qsStringify;\nfunction objectKeyToLowercase(object) {\n const newObj = {};\n for (let key of Object.keys(object)) {\n const value = object[key];\n key = key.toLowerCase();\n newObj[key] = value;\n }\n return newObj;\n}\nexports.objectKeyToLowercase = objectKeyToLowercase;\n/**\n * JSON encode str, with unicode \\u+ representation.\n * @param {object} obj The object to encode.\n * @return {string} Serialized string.\n */\nfunction unicodeJSONStringify(obj) {\n return JSON.stringify(obj).replace(/[\\u0080-\\uFFFF]/g, (char) => '\\\\u' + ('0000' + char.charCodeAt(0).toString(16)).slice(-4));\n}\nexports.unicodeJSONStringify = unicodeJSONStringify;\n/**\n * Converts the given objects keys to snake_case\n * @param {object} obj object to convert keys to snake case.\n * @returns {object} object with keys converted to snake case.\n */\nfunction convertObjKeysToSnakeCase(obj) {\n if (obj instanceof Date || obj instanceof RegExp) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(convertObjKeysToSnakeCase);\n }\n if (obj instanceof Object) {\n return Object.keys(obj).reduce((acc, cur) => {\n const s = cur[0].toLocaleLowerCase() +\n cur.slice(1).replace(/([A-Z]+)/g, (match, p1) => {\n return `_${p1.toLowerCase()}`;\n });\n acc[s] = convertObjKeysToSnakeCase(obj[cur]);\n return acc;\n }, Object());\n }\n return obj;\n}\nexports.convertObjKeysToSnakeCase = convertObjKeysToSnakeCase;\n/**\n * Formats the provided date object as a UTC ISO string.\n * @param {Date} dateTimeToFormat date object to be formatted.\n * @param {boolean} includeTime flag to include hours, minutes, seconds in output.\n * @param {string} dateDelimiter delimiter between date components.\n * @param {string} timeDelimiter delimiter between time components.\n * @returns {string} UTC ISO format of provided date obect.\n */\nfunction formatAsUTCISO(dateTimeToFormat, includeTime = false, dateDelimiter = '', timeDelimiter = '') {\n const year = dateTimeToFormat.getUTCFullYear();\n const month = dateTimeToFormat.getUTCMonth() + 1;\n const day = dateTimeToFormat.getUTCDate();\n const hour = dateTimeToFormat.getUTCHours();\n const minute = dateTimeToFormat.getUTCMinutes();\n const second = dateTimeToFormat.getUTCSeconds();\n let resultString = `${year.toString().padStart(4, '0')}${dateDelimiter}${month\n .toString()\n .padStart(2, '0')}${dateDelimiter}${day.toString().padStart(2, '0')}`;\n if (includeTime) {\n resultString = `${resultString}T${hour\n .toString()\n .padStart(2, '0')}${timeDelimiter}${minute\n .toString()\n .padStart(2, '0')}${timeDelimiter}${second.toString().padStart(2, '0')}Z`;\n }\n return resultString;\n}\nexports.formatAsUTCISO = formatAsUTCISO;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n}\nfunction readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n }\n catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n}\nexports.readdir = readdir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n settings.fs.lstat(path, (lstatError, lstat) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat);\n return;\n }\n settings.fs.stat(path, (statError, stat) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat);\n return;\n }\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat);\n });\n });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n const lstat = settings.fs.lstatSync(path);\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat;\n }\n try {\n const stat = settings.fs.statSync(path);\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n return stat;\n }\n catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat;\n }\n throw error;\n }\n}\nexports.read = read;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n callback(null, entries);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => { },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit('error', error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n}\nexports.default = StreamProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n}\nexports.default = SyncProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit('end');\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error('The reader is already destroyed');\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on('entry', callback);\n }\n onError(callback) {\n this._emitter.once('error', callback);\n }\n onEnd(callback) {\n this._emitter.once('end', callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, undefined);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, undefined);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit('error', error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit('entry', entry);\n }\n}\nexports.default = AsyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n if (a === '') {\n return b;\n }\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n }\n catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n}\nexports.default = SyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, undefined);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction once(emitter, name, { signal } = {}) {\n return new Promise((resolve, reject) => {\n function cleanup() {\n signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', cleanup);\n emitter.removeListener(name, onEvent);\n emitter.removeListener('error', onError);\n }\n function onEvent(...args) {\n cleanup();\n resolve(args);\n }\n function onError(err) {\n cleanup();\n reject(err);\n }\n signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', cleanup);\n emitter.on(name, onEvent);\n emitter.on('error', onError);\n });\n}\nexports.default = once;\n//# sourceMappingURL=index.js.map","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst events_1 = require(\"events\");\nconst debug_1 = __importDefault(require(\"debug\"));\nconst promisify_1 = __importDefault(require(\"./promisify\"));\nconst debug = debug_1.default('agent-base');\nfunction isAgent(v) {\n return Boolean(v) && typeof v.addRequest === 'function';\n}\nfunction isSecureEndpoint() {\n const { stack } = new Error();\n if (typeof stack !== 'string')\n return false;\n return stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);\n}\nfunction createAgent(callback, opts) {\n return new createAgent.Agent(callback, opts);\n}\n(function (createAgent) {\n /**\n * Base `http.Agent` implementation.\n * No pooling/keep-alive is implemented by default.\n *\n * @param {Function} callback\n * @api public\n */\n class Agent extends events_1.EventEmitter {\n constructor(callback, _opts) {\n super();\n let opts = _opts;\n if (typeof callback === 'function') {\n this.callback = callback;\n }\n else if (callback) {\n opts = callback;\n }\n // Timeout for the socket to be returned from the callback\n this.timeout = null;\n if (opts && typeof opts.timeout === 'number') {\n this.timeout = opts.timeout;\n }\n // These aren't actually used by `agent-base`, but are required\n // for the TypeScript definition files in `@types/node` :/\n this.maxFreeSockets = 1;\n this.maxSockets = 1;\n this.maxTotalSockets = Infinity;\n this.sockets = {};\n this.freeSockets = {};\n this.requests = {};\n this.options = {};\n }\n get defaultPort() {\n if (typeof this.explicitDefaultPort === 'number') {\n return this.explicitDefaultPort;\n }\n return isSecureEndpoint() ? 443 : 80;\n }\n set defaultPort(v) {\n this.explicitDefaultPort = v;\n }\n get protocol() {\n if (typeof this.explicitProtocol === 'string') {\n return this.explicitProtocol;\n }\n return isSecureEndpoint() ? 'https:' : 'http:';\n }\n set protocol(v) {\n this.explicitProtocol = v;\n }\n callback(req, opts, fn) {\n throw new Error('\"agent-base\" has no default implementation, you must subclass and override `callback()`');\n }\n /**\n * Called by node-core's \"_http_client.js\" module when creating\n * a new HTTP request with this Agent instance.\n *\n * @api public\n */\n addRequest(req, _opts) {\n const opts = Object.assign({}, _opts);\n if (typeof opts.secureEndpoint !== 'boolean') {\n opts.secureEndpoint = isSecureEndpoint();\n }\n if (opts.host == null) {\n opts.host = 'localhost';\n }\n if (opts.port == null) {\n opts.port = opts.secureEndpoint ? 443 : 80;\n }\n if (opts.protocol == null) {\n opts.protocol = opts.secureEndpoint ? 'https:' : 'http:';\n }\n if (opts.host && opts.path) {\n // If both a `host` and `path` are specified then it's most\n // likely the result of a `url.parse()` call... we need to\n // remove the `path` portion so that `net.connect()` doesn't\n // attempt to open that as a unix socket file.\n delete opts.path;\n }\n delete opts.agent;\n delete opts.hostname;\n delete opts._defaultAgent;\n delete opts.defaultPort;\n delete opts.createConnection;\n // Hint to use \"Connection: close\"\n // XXX: non-documented `http` module API :(\n req._last = true;\n req.shouldKeepAlive = false;\n let timedOut = false;\n let timeoutId = null;\n const timeoutMs = opts.timeout || this.timeout;\n const onerror = (err) => {\n if (req._hadError)\n return;\n req.emit('error', err);\n // For Safety. Some additional errors might fire later on\n // and we need to make sure we don't double-fire the error event.\n req._hadError = true;\n };\n const ontimeout = () => {\n timeoutId = null;\n timedOut = true;\n const err = new Error(`A \"socket\" was not created for HTTP request before ${timeoutMs}ms`);\n err.code = 'ETIMEOUT';\n onerror(err);\n };\n const callbackError = (err) => {\n if (timedOut)\n return;\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n onerror(err);\n };\n const onsocket = (socket) => {\n if (timedOut)\n return;\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n if (isAgent(socket)) {\n // `socket` is actually an `http.Agent` instance, so\n // relinquish responsibility for this `req` to the Agent\n // from here on\n debug('Callback returned another Agent instance %o', socket.constructor.name);\n socket.addRequest(req, opts);\n return;\n }\n if (socket) {\n socket.once('free', () => {\n this.freeSocket(socket, opts);\n });\n req.onSocket(socket);\n return;\n }\n const err = new Error(`no Duplex stream was returned to agent-base for \\`${req.method} ${req.path}\\``);\n onerror(err);\n };\n if (typeof this.callback !== 'function') {\n onerror(new Error('`callback` is not defined'));\n return;\n }\n if (!this.promisifiedCallback) {\n if (this.callback.length >= 3) {\n debug('Converting legacy callback function to promise');\n this.promisifiedCallback = promisify_1.default(this.callback);\n }\n else {\n this.promisifiedCallback = this.callback;\n }\n }\n if (typeof timeoutMs === 'number' && timeoutMs > 0) {\n timeoutId = setTimeout(ontimeout, timeoutMs);\n }\n if ('port' in opts && typeof opts.port !== 'number') {\n opts.port = Number(opts.port);\n }\n try {\n debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`);\n Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError);\n }\n catch (err) {\n Promise.reject(err).catch(callbackError);\n }\n }\n freeSocket(socket, opts) {\n debug('Freeing socket %o %o', socket.constructor.name, opts);\n socket.destroy();\n }\n destroy() {\n debug('Destroying agent %o', this.constructor.name);\n }\n }\n createAgent.Agent = Agent;\n // So that `instanceof` works correctly\n createAgent.prototype = createAgent.Agent.prototype;\n})(createAgent || (createAgent = {}));\nmodule.exports = createAgent;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction promisify(fn) {\n return function (req, opts) {\n return new Promise((resolve, reject) => {\n fn.call(this, req, opts, (err, rtn) => {\n if (err) {\n reject(err);\n }\n else {\n resolve(rtn);\n }\n });\n });\n };\n}\nexports.default = promisify;\n//# sourceMappingURL=promisify.js.map","'use strict';\n\nconst arrify = value => {\n\tif (value === null || value === undefined) {\n\t\treturn [];\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value;\n\t}\n\n\tif (typeof value === 'string') {\n\t\treturn [value];\n\t}\n\n\tif (typeof value[Symbol.iterator] === 'function') {\n\t\treturn [...value];\n\t}\n\n\treturn [value];\n};\n\nmodule.exports = arrify;\n","// Packages\nvar retrier = require('retry');\n\nfunction retry(fn, opts) {\n function run(resolve, reject) {\n var options = opts || {};\n var op;\n\n // Default `randomize` to true\n if (!('randomize' in options)) {\n options.randomize = true;\n }\n\n op = retrier.operation(options);\n\n // We allow the user to abort retrying\n // this makes sense in the cases where\n // knowledge is obtained that retrying\n // would be futile (e.g.: auth errors)\n\n function bail(err) {\n reject(err || new Error('Aborted'));\n }\n\n function onError(err, num) {\n if (err.bail) {\n bail(err);\n return;\n }\n\n if (!op.retry(err)) {\n reject(op.mainError());\n } else if (options.onRetry) {\n options.onRetry(err, num);\n }\n }\n\n function runAttempt(num) {\n var val;\n\n try {\n val = fn(bail, num);\n } catch (err) {\n onError(err, num);\n return;\n }\n\n Promise.resolve(val)\n .then(resolve)\n .catch(function catchIt(err) {\n onError(err, num);\n });\n }\n\n op.attempt(runAttempt);\n }\n\n return new Promise(run);\n}\n\nmodule.exports = retry;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.0.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2021 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n let output = [];\n\n if (Array.isArray(input)) {\n for (let pattern of input) {\n let result = braces.create(pattern, options);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options));\n }\n\n if (options && options.expand === true && options.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n if (typeof input === 'string') {\n return stringify(braces.parse(input, options), options);\n }\n return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n\n let result = expand(input, options);\n\n // filter out empty strings if specified\n if (options.noempty === true) {\n result = result.filter(Boolean);\n }\n\n // filter out duplicates if specified\n if (options.nodupes === true) {\n result = [...new Set(result)];\n }\n\n return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n if (input === '' || input.length < 3) {\n return [input];\n }\n\n return options.expand !== true\n ? braces.compile(input, options)\n : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n","'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n let walk = (node, parent = {}) => {\n let invalidBlock = utils.isInvalidBrace(parent);\n let invalidNode = node.invalid === true && options.escapeInvalid === true;\n let invalid = invalidBlock === true || invalidNode === true;\n let prefix = options.escapeInvalid === true ? '\\\\' : '';\n let output = '';\n\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n if (node.isClose === true) {\n return prefix + node.value;\n }\n\n if (node.type === 'open') {\n return invalid ? (prefix + node.value) : '(';\n }\n\n if (node.type === 'close') {\n return invalid ? (prefix + node.value) : ')';\n }\n\n if (node.type === 'comma') {\n return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|');\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes && node.ranges > 0) {\n let args = utils.reduce(node.nodes);\n let range = fill(...args, { ...options, wrap: false, toRegex: true });\n\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n\n if (node.nodes) {\n for (let child of node.nodes) {\n output += walk(child, node);\n }\n }\n return output;\n };\n\n return walk(ast);\n};\n\nmodule.exports = compile;\n","'use strict';\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n\n // Digits\n CHAR_0: '0', /* 0 */\n CHAR_9: '9', /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 'A', /* A */\n CHAR_LOWERCASE_A: 'a', /* a */\n CHAR_UPPERCASE_Z: 'Z', /* Z */\n CHAR_LOWERCASE_Z: 'z', /* z */\n\n CHAR_LEFT_PARENTHESES: '(', /* ( */\n CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n CHAR_ASTERISK: '*', /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: '&', /* & */\n CHAR_AT: '@', /* @ */\n CHAR_BACKSLASH: '\\\\', /* \\ */\n CHAR_BACKTICK: '`', /* ` */\n CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n CHAR_COLON: ':', /* : */\n CHAR_COMMA: ',', /* , */\n CHAR_DOLLAR: '$', /* . */\n CHAR_DOT: '.', /* . */\n CHAR_DOUBLE_QUOTE: '\"', /* \" */\n CHAR_EQUAL: '=', /* = */\n CHAR_EXCLAMATION_MARK: '!', /* ! */\n CHAR_FORM_FEED: '\\f', /* \\f */\n CHAR_FORWARD_SLASH: '/', /* / */\n CHAR_HASH: '#', /* # */\n CHAR_HYPHEN_MINUS: '-', /* - */\n CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n CHAR_LEFT_CURLY_BRACE: '{', /* { */\n CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n CHAR_LINE_FEED: '\\n', /* \\n */\n CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n CHAR_PERCENT: '%', /* % */\n CHAR_PLUS: '+', /* + */\n CHAR_QUESTION_MARK: '?', /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n CHAR_SEMICOLON: ';', /* ; */\n CHAR_SINGLE_QUOTE: '\\'', /* ' */\n CHAR_SPACE: ' ', /* */\n CHAR_TAB: '\\t', /* \\t */\n CHAR_UNDERSCORE: '_', /* _ */\n CHAR_VERTICAL_LINE: '|', /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n","'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n let result = [];\n\n queue = [].concat(queue);\n stash = [].concat(stash);\n\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n }\n\n for (let item of queue) {\n if (Array.isArray(item)) {\n for (let value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));\n }\n }\n }\n return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit;\n\n let walk = (node, parent = {}) => {\n node.queue = [];\n\n let p = parent;\n let q = parent.queue;\n\n while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify(node, options)));\n return;\n }\n\n if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), ['{}']));\n return;\n }\n\n if (node.nodes && node.ranges > 0) {\n let args = utils.reduce(node.nodes);\n\n if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n }\n\n let range = fill(...args, options);\n if (range.length === 0) {\n range = stringify(node, options);\n }\n\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n\n let enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n\n while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i];\n\n if (child.type === 'comma' && node.type === 'brace') {\n if (i === 1) queue.push('');\n queue.push('');\n continue;\n }\n\n if (child.type === 'close') {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n\n if (child.value && child.type !== 'open') {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n\n if (child.nodes) {\n walk(child, node);\n }\n }\n\n return queue;\n };\n\n return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n","'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n CHAR_BACKSLASH, /* \\ */\n CHAR_BACKTICK, /* ` */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n CHAR_DOUBLE_QUOTE, /* \" */\n CHAR_SINGLE_QUOTE, /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n let opts = options || {};\n let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n\n let ast = { type: 'root', input, nodes: [] };\n let stack = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n let length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n let memo = {};\n\n /**\n * Helpers\n */\n\n const advance = () => input[index++];\n const push = node => {\n if (node.type === 'text' && prev.type === 'dot') {\n prev.type = 'text';\n }\n\n if (prev && prev.type === 'text' && node.type === 'text') {\n prev.value += node.value;\n return;\n }\n\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n\n push({ type: 'bos' });\n\n while (index < length) {\n block = stack[stack.length - 1];\n value = advance();\n\n /**\n * Invalid chars\n */\n\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n\n /**\n * Escaped chars\n */\n\n if (value === CHAR_BACKSLASH) {\n push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n continue;\n }\n\n /**\n * Right square bracket (literal): ']'\n */\n\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push({ type: 'text', value: '\\\\' + value });\n continue;\n }\n\n /**\n * Left square bracket: '['\n */\n\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n\n let closed = true;\n let next;\n\n while (index < length && (next = advance())) {\n value += next;\n\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n\n if (brackets === 0) {\n break;\n }\n }\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push({ type: 'paren', nodes: [] });\n stack.push(block);\n push({ type: 'text', value });\n continue;\n }\n\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== 'paren') {\n push({ type: 'text', value });\n continue;\n }\n block = stack.pop();\n push({ type: 'text', value });\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Quotes: '|\"|`\n */\n\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n let open = value;\n let next;\n\n if (options.keepQuotes !== true) {\n value = '';\n }\n\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n\n if (next === open) {\n if (options.keepQuotes === true) value += next;\n break;\n }\n\n value += next;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Left curly brace: '{'\n */\n\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n\n let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n let brace = {\n type: 'brace',\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n\n block = push(brace);\n stack.push(block);\n push({ type: 'open', value });\n continue;\n }\n\n /**\n * Right curly brace: '}'\n */\n\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== 'brace') {\n push({ type: 'text', value });\n continue;\n }\n\n let type = 'close';\n block = stack.pop();\n block.close = true;\n\n push({ type, value });\n depth--;\n\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Comma: ','\n */\n\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n let open = block.nodes.shift();\n block.nodes = [open, { type: 'text', value: stringify(block) }];\n }\n\n push({ type: 'comma', value });\n block.commas++;\n continue;\n }\n\n /**\n * Dot: '.'\n */\n\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n let siblings = block.nodes;\n\n if (depth === 0 || siblings.length === 0) {\n push({ type: 'text', value });\n continue;\n }\n\n if (prev.type === 'dot') {\n block.range = [];\n prev.value += value;\n prev.type = 'range';\n\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = 'text';\n continue;\n }\n\n block.ranges++;\n block.args = [];\n continue;\n }\n\n if (prev.type === 'range') {\n siblings.pop();\n\n let before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n\n push({ type: 'dot', value });\n continue;\n }\n\n /**\n * Text\n */\n\n push({ type: 'text', value });\n }\n\n // Mark imbalanced braces and brackets as invalid\n do {\n block = stack.pop();\n\n if (block.type !== 'root') {\n block.nodes.forEach(node => {\n if (!node.nodes) {\n if (node.type === 'open') node.isOpen = true;\n if (node.type === 'close') node.isClose = true;\n if (!node.nodes) node.type = 'text';\n node.invalid = true;\n }\n });\n\n // get the location of the block on parent.nodes (block's siblings)\n let parent = stack[stack.length - 1];\n let index = parent.nodes.indexOf(block);\n // replace the (invalid) block with it's nodes\n parent.nodes.splice(index, 1, ...block.nodes);\n }\n } while (stack.length > 0);\n\n push({ type: 'eos' });\n return ast;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n let stringify = (node, parent = {}) => {\n let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n let invalidNode = node.invalid === true && options.escapeInvalid === true;\n let output = '';\n\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return '\\\\' + node.value;\n }\n return node.value;\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes) {\n for (let child of node.nodes) {\n output += stringify(child);\n }\n }\n return output;\n };\n\n return stringify(ast);\n};\n\n","'use strict';\n\nexports.isInteger = num => {\n if (typeof num === 'number') {\n return Number.isInteger(num);\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isInteger(Number(num));\n }\n return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n let node = block.nodes[n];\n if (!node) return;\n\n if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n if (node.escaped !== true) {\n node.value = '\\\\' + node.value;\n node.escaped = true;\n }\n }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n if (node.type !== 'brace') return false;\n if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n if (block.type !== 'brace') return false;\n if (block.invalid === true || block.dollar) return true;\n if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n if (node.type === 'open' || node.type === 'close') {\n return true;\n }\n return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n if (node.type === 'text') acc.push(node.value);\n if (node.type === 'range') node.type = 'text';\n return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n const result = [];\n const flat = arr => {\n for (let i = 0; i < arr.length; i++) {\n let ele = arr[i];\n Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele);\n }\n return result;\n };\n flat(args);\n return result;\n};\n","/*jshint node:true */\n'use strict';\nvar Buffer = require('buffer').Buffer; // browserify\nvar SlowBuffer = require('buffer').SlowBuffer;\n\nmodule.exports = bufferEq;\n\nfunction bufferEq(a, b) {\n\n // shortcutting on type is necessary for correctness\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n return false;\n }\n\n // buffer sizes should be well-known information, so despite this\n // shortcutting, it doesn't leak any information about the *contents* of the\n // buffers.\n if (a.length !== b.length) {\n return false;\n }\n\n var c = 0;\n for (var i = 0; i < a.length; i++) {\n /*jshint bitwise:false */\n c |= a[i] ^ b[i]; // XOR\n }\n return c === 0;\n}\n\nbufferEq.install = function() {\n Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {\n return bufferEq(this, that);\n };\n};\n\nvar origBufEqual = Buffer.prototype.equal;\nvar origSlowBufEqual = SlowBuffer.prototype.equal;\nbufferEq.restore = function() {\n Buffer.prototype.equal = origBufEqual;\n SlowBuffer.prototype.equal = origSlowBufEqual;\n};\n","/*!\n * compressible\n * Copyright(c) 2013 Jonathan Ong\n * Copyright(c) 2014 Jeremiah Senkpiel\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\n\n/**\n * Module variables.\n * @private\n */\n\nvar COMPRESSIBLE_TYPE_REGEXP = /^text\\/|\\+(?:json|text|xml)$/i\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = compressible\n\n/**\n * Checks if a type is compressible.\n *\n * @param {string} type\n * @return {Boolean} compressible\n * @public\n */\n\nfunction compressible (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // strip parameters\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && match[1].toLowerCase()\n var data = db[mime]\n\n // return database information\n if (data && data.compressible !== undefined) {\n return data.compressible\n }\n\n // fallback to regexp or unknown\n return COMPRESSIBLE_TYPE_REGEXP.test(mime) || undefined\n}\n","'use strict';\nconst path = require('path');\nconst os = require('os');\nconst fs = require('graceful-fs');\nconst makeDir = require('make-dir');\nconst xdgBasedir = require('xdg-basedir');\nconst writeFileAtomic = require('write-file-atomic');\nconst dotProp = require('dot-prop');\nconst uniqueString = require('unique-string');\n\nconst configDirectory = xdgBasedir.config || path.join(os.tmpdir(), uniqueString());\nconst permissionError = 'You don\\'t have access to this file.';\nconst makeDirOptions = {mode: 0o0700};\nconst writeFileOptions = {mode: 0o0600};\n\nclass Configstore {\n\tconstructor(id, defaults, options = {}) {\n\t\tconst pathPrefix = options.globalConfigPath ?\n\t\t\tpath.join(id, 'config.json') :\n\t\t\tpath.join('configstore', `${id}.json`);\n\n\t\tthis.path = options.configPath || path.join(configDirectory, pathPrefix);\n\n\t\tif (defaults) {\n\t\t\tthis.all = {\n\t\t\t\t...defaults,\n\t\t\t\t...this.all\n\t\t\t};\n\t\t}\n\t}\n\n\tget all() {\n\t\ttry {\n\t\t\treturn JSON.parse(fs.readFileSync(this.path, 'utf8'));\n\t\t} catch (error) {\n\t\t\t// Create directory if it doesn't exist\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// Improve the message of permission errors\n\t\t\tif (error.code === 'EACCES') {\n\t\t\t\terror.message = `${error.message}\\n${permissionError}\\n`;\n\t\t\t}\n\n\t\t\t// Empty the file if it encounters invalid JSON\n\t\t\tif (error.name === 'SyntaxError') {\n\t\t\t\twriteFileAtomic.sync(this.path, '', writeFileOptions);\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tset all(value) {\n\t\ttry {\n\t\t\t// Make sure the folder exists as it could have been deleted in the meantime\n\t\t\tmakeDir.sync(path.dirname(this.path), makeDirOptions);\n\n\t\t\twriteFileAtomic.sync(this.path, JSON.stringify(value, undefined, '\\t'), writeFileOptions);\n\t\t} catch (error) {\n\t\t\t// Improve the message of permission errors\n\t\t\tif (error.code === 'EACCES') {\n\t\t\t\terror.message = `${error.message}\\n${permissionError}\\n`;\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tget size() {\n\t\treturn Object.keys(this.all || {}).length;\n\t}\n\n\tget(key) {\n\t\treturn dotProp.get(this.all, key);\n\t}\n\n\tset(key, value) {\n\t\tconst config = this.all;\n\n\t\tif (arguments.length === 1) {\n\t\t\tfor (const k of Object.keys(key)) {\n\t\t\t\tdotProp.set(config, k, key[k]);\n\t\t\t}\n\t\t} else {\n\t\t\tdotProp.set(config, key, value);\n\t\t}\n\n\t\tthis.all = config;\n\t}\n\n\thas(key) {\n\t\treturn dotProp.has(this.all, key);\n\t}\n\n\tdelete(key) {\n\t\tconst config = this.all;\n\t\tdotProp.delete(config, key);\n\t\tthis.all = config;\n\t}\n\n\tclear() {\n\t\tthis.all = {};\n\t}\n}\n\nmodule.exports = Configstore;\n","'use strict'\n\nmodule.exports = clone\n\nvar getPrototypeOf = Object.getPrototypeOf || function (obj) {\n return obj.__proto__\n}\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: getPrototypeOf(obj) }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n","var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar clone = require('./clone.js')\n\nvar util = require('util')\n\n/* istanbul ignore next - node 0.x polyfill */\nvar gracefulQueue\nvar previousSymbol\n\n/* istanbul ignore else - node 0.x polyfill */\nif (typeof Symbol === 'function' && typeof Symbol.for === 'function') {\n gracefulQueue = Symbol.for('graceful-fs.queue')\n // This is used in testing by future versions\n previousSymbol = Symbol.for('graceful-fs.previous')\n} else {\n gracefulQueue = '___graceful-fs.queue'\n previousSymbol = '___graceful-fs.previous'\n}\n\nfunction noop () {}\n\nfunction publishQueue(context, queue) {\n Object.defineProperty(context, gracefulQueue, {\n get: function() {\n return queue\n }\n })\n}\n\nvar debug = noop\nif (util.debuglog)\n debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n debug = function() {\n var m = util.format.apply(util, arguments)\n m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n console.error(m)\n }\n\n// Once time initialization\nif (!fs[gracefulQueue]) {\n // This queue can be shared by multiple loaded instances\n var queue = global[gracefulQueue] || []\n publishQueue(fs, queue)\n\n // Patch fs.close/closeSync to shared queue version, because we need\n // to retry() whenever a close happens *anywhere* in the program.\n // This is essential when multiple graceful-fs instances are\n // in play at the same time.\n fs.close = (function (fs$close) {\n function close (fd, cb) {\n return fs$close.call(fs, fd, function (err) {\n // This function uses the graceful-fs shared queue\n if (!err) {\n resetQueue()\n }\n\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n })\n }\n\n Object.defineProperty(close, previousSymbol, {\n value: fs$close\n })\n return close\n })(fs.close)\n\n fs.closeSync = (function (fs$closeSync) {\n function closeSync (fd) {\n // This function uses the graceful-fs shared queue\n fs$closeSync.apply(fs, arguments)\n resetQueue()\n }\n\n Object.defineProperty(closeSync, previousSymbol, {\n value: fs$closeSync\n })\n return closeSync\n })(fs.closeSync)\n\n if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n process.on('exit', function() {\n debug(fs[gracefulQueue])\n require('assert').equal(fs[gracefulQueue].length, 0)\n })\n }\n}\n\nif (!global[gracefulQueue]) {\n publishQueue(global, fs[gracefulQueue]);\n}\n\nmodule.exports = patch(clone(fs))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {\n module.exports = patch(fs)\n fs.__patched = true;\n}\n\nfunction patch (fs) {\n // Everything that references the open() function needs to be in here\n polyfills(fs)\n fs.gracefulify = patch\n\n fs.createReadStream = createReadStream\n fs.createWriteStream = createWriteStream\n var fs$readFile = fs.readFile\n fs.readFile = readFile\n function readFile (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readFile(path, options, cb)\n\n function go$readFile (path, options, cb, startTime) {\n return fs$readFile(path, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$writeFile = fs.writeFile\n fs.writeFile = writeFile\n function writeFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$writeFile(path, data, options, cb)\n\n function go$writeFile (path, data, options, cb, startTime) {\n return fs$writeFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$appendFile = fs.appendFile\n if (fs$appendFile)\n fs.appendFile = appendFile\n function appendFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$appendFile(path, data, options, cb)\n\n function go$appendFile (path, data, options, cb, startTime) {\n return fs$appendFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$copyFile = fs.copyFile\n if (fs$copyFile)\n fs.copyFile = copyFile\n function copyFile (src, dest, flags, cb) {\n if (typeof flags === 'function') {\n cb = flags\n flags = 0\n }\n return go$copyFile(src, dest, flags, cb)\n\n function go$copyFile (src, dest, flags, cb, startTime) {\n return fs$copyFile(src, dest, flags, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$readdir = fs.readdir\n fs.readdir = readdir\n function readdir (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readdir(path, options, cb)\n\n function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, options, function (err, files) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readdir, [path, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (files && files.sort)\n files.sort()\n\n if (typeof cb === 'function')\n cb.call(this, err, files)\n }\n })\n }\n }\n\n if (process.version.substr(0, 4) === 'v0.8') {\n var legStreams = legacy(fs)\n ReadStream = legStreams.ReadStream\n WriteStream = legStreams.WriteStream\n }\n\n var fs$ReadStream = fs.ReadStream\n if (fs$ReadStream) {\n ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n ReadStream.prototype.open = ReadStream$open\n }\n\n var fs$WriteStream = fs.WriteStream\n if (fs$WriteStream) {\n WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n WriteStream.prototype.open = WriteStream$open\n }\n\n Object.defineProperty(fs, 'ReadStream', {\n get: function () {\n return ReadStream\n },\n set: function (val) {\n ReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n Object.defineProperty(fs, 'WriteStream', {\n get: function () {\n return WriteStream\n },\n set: function (val) {\n WriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n // legacy names\n var FileReadStream = ReadStream\n Object.defineProperty(fs, 'FileReadStream', {\n get: function () {\n return FileReadStream\n },\n set: function (val) {\n FileReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n var FileWriteStream = WriteStream\n Object.defineProperty(fs, 'FileWriteStream', {\n get: function () {\n return FileWriteStream\n },\n set: function (val) {\n FileWriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n function ReadStream (path, options) {\n if (this instanceof ReadStream)\n return fs$ReadStream.apply(this, arguments), this\n else\n return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n }\n\n function ReadStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n if (that.autoClose)\n that.destroy()\n\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n that.read()\n }\n })\n }\n\n function WriteStream (path, options) {\n if (this instanceof WriteStream)\n return fs$WriteStream.apply(this, arguments), this\n else\n return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n }\n\n function WriteStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n that.destroy()\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n }\n })\n }\n\n function createReadStream (path, options) {\n return new fs.ReadStream(path, options)\n }\n\n function createWriteStream (path, options) {\n return new fs.WriteStream(path, options)\n }\n\n var fs$open = fs.open\n fs.open = open\n function open (path, flags, mode, cb) {\n if (typeof mode === 'function')\n cb = mode, mode = null\n\n return go$open(path, flags, mode, cb)\n\n function go$open (path, flags, mode, cb, startTime) {\n return fs$open(path, flags, mode, function (err, fd) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n return fs\n}\n\nfunction enqueue (elem) {\n debug('ENQUEUE', elem[0].name, elem[1])\n fs[gracefulQueue].push(elem)\n retry()\n}\n\n// keep track of the timeout between retry() calls\nvar retryTimer\n\n// reset the startTime and lastTime to now\n// this resets the start of the 60 second overall timeout as well as the\n// delay between attempts so that we'll retry these jobs sooner\nfunction resetQueue () {\n var now = Date.now()\n for (var i = 0; i < fs[gracefulQueue].length; ++i) {\n // entries that are only a length of 2 are from an older version, don't\n // bother modifying those since they'll be retried anyway.\n if (fs[gracefulQueue][i].length > 2) {\n fs[gracefulQueue][i][3] = now // startTime\n fs[gracefulQueue][i][4] = now // lastTime\n }\n }\n // call retry to make sure we're actively processing the queue\n retry()\n}\n\nfunction retry () {\n // clear the timer and remove it to help prevent unintended concurrency\n clearTimeout(retryTimer)\n retryTimer = undefined\n\n if (fs[gracefulQueue].length === 0)\n return\n\n var elem = fs[gracefulQueue].shift()\n var fn = elem[0]\n var args = elem[1]\n // these items may be unset if they were added by an older graceful-fs\n var err = elem[2]\n var startTime = elem[3]\n var lastTime = elem[4]\n\n // if we don't have a startTime we have no way of knowing if we've waited\n // long enough, so go ahead and retry this item now\n if (startTime === undefined) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args)\n } else if (Date.now() - startTime >= 60000) {\n // it's been more than 60 seconds total, bail now\n debug('TIMEOUT', fn.name, args)\n var cb = args.pop()\n if (typeof cb === 'function')\n cb.call(null, err)\n } else {\n // the amount of time between the last attempt and right now\n var sinceAttempt = Date.now() - lastTime\n // the amount of time between when we first tried, and when we last tried\n // rounded up to at least 1\n var sinceStart = Math.max(lastTime - startTime, 1)\n // backoff. wait longer than the total time we've been retrying, but only\n // up to a maximum of 100ms\n var desiredDelay = Math.min(sinceStart * 1.2, 100)\n // it's been long enough since the last retry, do it again\n if (sinceAttempt >= desiredDelay) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args.concat([startTime]))\n } else {\n // if we can't do this job yet, push it to the end of the queue\n // and let the next iteration check again\n fs[gracefulQueue].push(elem)\n }\n }\n\n // schedule our next run if one isn't already scheduled\n if (retryTimer === undefined) {\n retryTimer = setTimeout(retry, 0)\n }\n}\n","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n","var constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\n// This check is needed until node.js 12 is required\nif (typeof process.chdir === 'function') {\n var chdir = process.chdir\n process.chdir = function (d) {\n cwd = null\n chdir.call(process, d)\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (!fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (!fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = (function (fs$rename) { return function (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }})(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = (function (fs$read) {\n function read (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n\n // This ensures `util.promisify` works as it does for native `fs.read`.\n if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)\n return read\n })(fs.read)\n\n fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n\n function patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n }\n\n function patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\")) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n }\n\n function chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n\n function chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n function statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n function callback (er, stats) {\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n if (cb) cb.apply(this, arguments)\n }\n return options ? orig.call(fs, target, options, callback)\n : orig.call(fs, target, callback)\n }\n }\n\n function statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options) {\n var stats = options ? orig.call(fs, target, options)\n : orig.call(fs, target)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n return stats;\n }\n }\n\n // ENOSYS means that the fs doesn't support the op. Just ignore\n // that, because it doesn't matter.\n //\n // if there's no getuid, or if getuid() is something other\n // than 0, and the error is EINVAL or EPERM, then just ignore\n // it.\n //\n // This specific case is a silent failure in cp, install, tar,\n // and most other unix tools that manage permissions.\n //\n // When running as root, or if other types of errors are\n // encountered, then it's strict.\n function chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n }\n}\n","'use strict';\nconst crypto = require('crypto');\n\nmodule.exports = length => {\n\tif (!Number.isFinite(length)) {\n\t\tthrow new TypeError('Expected a finite number');\n\t}\n\n\treturn crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length);\n};\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\nconst path = require('path');\nconst pathType = require('path-type');\n\nconst getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0];\n\nconst getPath = (filepath, cwd) => {\n\tconst pth = filepath[0] === '!' ? filepath.slice(1) : filepath;\n\treturn path.isAbsolute(pth) ? pth : path.join(cwd, pth);\n};\n\nconst addExtensions = (file, extensions) => {\n\tif (path.extname(file)) {\n\t\treturn `**/${file}`;\n\t}\n\n\treturn `**/${file}.${getExtensions(extensions)}`;\n};\n\nconst getGlob = (directory, options) => {\n\tif (options.files && !Array.isArray(options.files)) {\n\t\tthrow new TypeError(`Expected \\`files\\` to be of type \\`Array\\` but received type \\`${typeof options.files}\\``);\n\t}\n\n\tif (options.extensions && !Array.isArray(options.extensions)) {\n\t\tthrow new TypeError(`Expected \\`extensions\\` to be of type \\`Array\\` but received type \\`${typeof options.extensions}\\``);\n\t}\n\n\tif (options.files && options.extensions) {\n\t\treturn options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions)));\n\t}\n\n\tif (options.files) {\n\t\treturn options.files.map(x => path.posix.join(directory, `**/${x}`));\n\t}\n\n\tif (options.extensions) {\n\t\treturn [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)];\n\t}\n\n\treturn [path.posix.join(directory, '**')];\n};\n\nmodule.exports = async (input, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\t...options\n\t};\n\n\tif (typeof options.cwd !== 'string') {\n\t\tthrow new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof options.cwd}\\``);\n\t}\n\n\tconst globs = await Promise.all([].concat(input).map(async x => {\n\t\tconst isDirectory = await pathType.isDirectory(getPath(x, options.cwd));\n\t\treturn isDirectory ? getGlob(x, options) : x;\n\t}));\n\n\treturn [].concat.apply([], globs); // eslint-disable-line prefer-spread\n};\n\nmodule.exports.sync = (input, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\t...options\n\t};\n\n\tif (typeof options.cwd !== 'string') {\n\t\tthrow new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof options.cwd}\\``);\n\t}\n\n\tconst globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x);\n\n\treturn [].concat.apply([], globs); // eslint-disable-line prefer-spread\n};\n","'use strict';\nconst isObj = require('is-obj');\n\nconst disallowedKeys = [\n\t'__proto__',\n\t'prototype',\n\t'constructor'\n];\n\nconst isValidPath = pathSegments => !pathSegments.some(segment => disallowedKeys.includes(segment));\n\nfunction getPathSegments(path) {\n\tconst pathArray = path.split('.');\n\tconst parts = [];\n\n\tfor (let i = 0; i < pathArray.length; i++) {\n\t\tlet p = pathArray[i];\n\n\t\twhile (p[p.length - 1] === '\\\\' && pathArray[i + 1] !== undefined) {\n\t\t\tp = p.slice(0, -1) + '.';\n\t\t\tp += pathArray[++i];\n\t\t}\n\n\t\tparts.push(p);\n\t}\n\n\tif (!isValidPath(parts)) {\n\t\treturn [];\n\t}\n\n\treturn parts;\n}\n\nmodule.exports = {\n\tget(object, path, value) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn value === undefined ? object : value;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\t\tif (pathArray.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tif (!Object.prototype.propertyIsEnumerable.call(object, pathArray[i])) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tobject = object[pathArray[i]];\n\n\t\t\tif (object === undefined || object === null) {\n\t\t\t\t// `object` is either `undefined` or `null` so we want to stop the loop, and\n\t\t\t\t// if this is not the last bit of the path, and\n\t\t\t\t// if it did't return `undefined`\n\t\t\t\t// it would return `null` if `object` is `null`\n\t\t\t\t// but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null`\n\t\t\t\tif (i !== pathArray.length - 1) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn object;\n\t},\n\n\tset(object, path, value) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn object;\n\t\t}\n\n\t\tconst root = object;\n\t\tconst pathArray = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tconst p = pathArray[i];\n\n\t\t\tif (!isObj(object[p])) {\n\t\t\t\tobject[p] = {};\n\t\t\t}\n\n\t\t\tif (i === pathArray.length - 1) {\n\t\t\t\tobject[p] = value;\n\t\t\t}\n\n\t\t\tobject = object[p];\n\t\t}\n\n\t\treturn root;\n\t},\n\n\tdelete(object, path) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tconst p = pathArray[i];\n\n\t\t\tif (i === pathArray.length - 1) {\n\t\t\t\tdelete object[p];\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tobject = object[p];\n\n\t\t\tif (!isObj(object)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\thas(object, path) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\t\tif (pathArray.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line unicorn/no-for-loop\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tif (isObj(object)) {\n\t\t\t\tif (!(pathArray[i] in object)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tobject = object[pathArray[i]];\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n};\n","var stream = require('readable-stream')\nvar eos = require('end-of-stream')\nvar inherits = require('inherits')\nvar shift = require('stream-shift')\n\nvar SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from)\n ? Buffer.from([0])\n : new Buffer([0])\n\nvar onuncork = function(self, fn) {\n if (self._corked) self.once('uncork', fn)\n else fn()\n}\n\nvar autoDestroy = function (self, err) {\n if (self._autoDestroy) self.destroy(err)\n}\n\nvar destroyer = function(self, end) {\n return function(err) {\n if (err) autoDestroy(self, err.message === 'premature close' ? null : err)\n else if (end && !self._ended) self.end()\n }\n}\n\nvar end = function(ws, fn) {\n if (!ws) return fn()\n if (ws._writableState && ws._writableState.finished) return fn()\n if (ws._writableState) return ws.end(fn)\n ws.end()\n fn()\n}\n\nvar noop = function() {}\n\nvar toStreams2 = function(rs) {\n return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)\n}\n\nvar Duplexify = function(writable, readable, opts) {\n if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)\n stream.Duplex.call(this, opts)\n\n this._writable = null\n this._readable = null\n this._readable2 = null\n\n this._autoDestroy = !opts || opts.autoDestroy !== false\n this._forwardDestroy = !opts || opts.destroy !== false\n this._forwardEnd = !opts || opts.end !== false\n this._corked = 1 // start corked\n this._ondrain = null\n this._drained = false\n this._forwarding = false\n this._unwrite = null\n this._unread = null\n this._ended = false\n\n this.destroyed = false\n\n if (writable) this.setWritable(writable)\n if (readable) this.setReadable(readable)\n}\n\ninherits(Duplexify, stream.Duplex)\n\nDuplexify.obj = function(writable, readable, opts) {\n if (!opts) opts = {}\n opts.objectMode = true\n opts.highWaterMark = 16\n return new Duplexify(writable, readable, opts)\n}\n\nDuplexify.prototype.cork = function() {\n if (++this._corked === 1) this.emit('cork')\n}\n\nDuplexify.prototype.uncork = function() {\n if (this._corked && --this._corked === 0) this.emit('uncork')\n}\n\nDuplexify.prototype.setWritable = function(writable) {\n if (this._unwrite) this._unwrite()\n\n if (this.destroyed) {\n if (writable && writable.destroy) writable.destroy()\n return\n }\n\n if (writable === null || writable === false) {\n this.end()\n return\n }\n\n var self = this\n var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))\n\n var ondrain = function() {\n var ondrain = self._ondrain\n self._ondrain = null\n if (ondrain) ondrain()\n }\n\n var clear = function() {\n self._writable.removeListener('drain', ondrain)\n unend()\n }\n\n if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks\n\n this._writable = writable\n this._writable.on('drain', ondrain)\n this._unwrite = clear\n\n this.uncork() // always uncork setWritable\n}\n\nDuplexify.prototype.setReadable = function(readable) {\n if (this._unread) this._unread()\n\n if (this.destroyed) {\n if (readable && readable.destroy) readable.destroy()\n return\n }\n\n if (readable === null || readable === false) {\n this.push(null)\n this.resume()\n return\n }\n\n var self = this\n var unend = eos(readable, {writable:false, readable:true}, destroyer(this))\n\n var onreadable = function() {\n self._forward()\n }\n\n var onend = function() {\n self.push(null)\n }\n\n var clear = function() {\n self._readable2.removeListener('readable', onreadable)\n self._readable2.removeListener('end', onend)\n unend()\n }\n\n this._drained = true\n this._readable = readable\n this._readable2 = readable._readableState ? readable : toStreams2(readable)\n this._readable2.on('readable', onreadable)\n this._readable2.on('end', onend)\n this._unread = clear\n\n this._forward()\n}\n\nDuplexify.prototype._read = function() {\n this._drained = true\n this._forward()\n}\n\nDuplexify.prototype._forward = function() {\n if (this._forwarding || !this._readable2 || !this._drained) return\n this._forwarding = true\n\n var data\n\n while (this._drained && (data = shift(this._readable2)) !== null) {\n if (this.destroyed) continue\n this._drained = this.push(data)\n }\n\n this._forwarding = false\n}\n\nDuplexify.prototype.destroy = function(err, cb) {\n if (!cb) cb = noop\n if (this.destroyed) return cb(null)\n this.destroyed = true\n\n var self = this\n process.nextTick(function() {\n self._destroy(err)\n cb(null)\n })\n}\n\nDuplexify.prototype._destroy = function(err) {\n if (err) {\n var ondrain = this._ondrain\n this._ondrain = null\n if (ondrain) ondrain(err)\n else this.emit('error', err)\n }\n\n if (this._forwardDestroy) {\n if (this._readable && this._readable.destroy) this._readable.destroy()\n if (this._writable && this._writable.destroy) this._writable.destroy()\n }\n\n this.emit('close')\n}\n\nDuplexify.prototype._write = function(data, enc, cb) {\n if (this.destroyed) return\n if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))\n if (data === SIGNAL_FLUSH) return this._finish(cb)\n if (!this._writable) return cb()\n\n if (this._writable.write(data) === false) this._ondrain = cb\n else if (!this.destroyed) cb()\n}\n\nDuplexify.prototype._finish = function(cb) {\n var self = this\n this.emit('preend')\n onuncork(this, function() {\n end(self._forwardEnd && self._writable, function() {\n // haxx to not emit prefinish twice\n if (self._writableState.prefinished === false) self._writableState.prefinished = true\n self.emit('prefinish')\n onuncork(self, cb)\n })\n })\n}\n\nDuplexify.prototype.end = function(data, enc, cb) {\n if (typeof data === 'function') return this.end(null, null, data)\n if (typeof enc === 'function') return this.end(data, null, enc)\n this._ended = true\n if (data) this.write(data)\n if (!this._writableState.ending && !this._writableState.destroyed) this.write(SIGNAL_FLUSH)\n return stream.Writable.prototype.end.call(this, cb)\n}\n\nmodule.exports = Duplexify\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar getParamBytesForAlg = require('./param-bytes-for-alg');\n\nvar MAX_OCTET = 0x80,\n\tCLASS_UNIVERSAL = 0,\n\tPRIMITIVE_BIT = 0x20,\n\tTAG_SEQ = 0x10,\n\tTAG_INT = 0x02,\n\tENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6),\n\tENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6);\n\nfunction base64Url(base64) {\n\treturn base64\n\t\t.replace(/=/g, '')\n\t\t.replace(/\\+/g, '-')\n\t\t.replace(/\\//g, '_');\n}\n\nfunction signatureAsBuffer(signature) {\n\tif (Buffer.isBuffer(signature)) {\n\t\treturn signature;\n\t} else if ('string' === typeof signature) {\n\t\treturn Buffer.from(signature, 'base64');\n\t}\n\n\tthrow new TypeError('ECDSA signature must be a Base64 string or a Buffer');\n}\n\nfunction derToJose(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\t// the DER encoded param should at most be the param size, plus a padding\n\t// zero, since due to being a signed integer\n\tvar maxEncodedParamLength = paramBytes + 1;\n\n\tvar inputLength = signature.length;\n\n\tvar offset = 0;\n\tif (signature[offset++] !== ENCODED_TAG_SEQ) {\n\t\tthrow new Error('Could not find expected \"seq\"');\n\t}\n\n\tvar seqLength = signature[offset++];\n\tif (seqLength === (MAX_OCTET | 1)) {\n\t\tseqLength = signature[offset++];\n\t}\n\n\tif (inputLength - offset < seqLength) {\n\t\tthrow new Error('\"seq\" specified length of \"' + seqLength + '\", only \"' + (inputLength - offset) + '\" remaining');\n\t}\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"r\"');\n\t}\n\n\tvar rLength = signature[offset++];\n\n\tif (inputLength - offset - 2 < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", only \"' + (inputLength - offset - 2) + '\" available');\n\t}\n\n\tif (maxEncodedParamLength < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar rOffset = offset;\n\toffset += rLength;\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"s\"');\n\t}\n\n\tvar sLength = signature[offset++];\n\n\tif (inputLength - offset !== sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", expected \"' + (inputLength - offset) + '\"');\n\t}\n\n\tif (maxEncodedParamLength < sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar sOffset = offset;\n\toffset += sLength;\n\n\tif (offset !== inputLength) {\n\t\tthrow new Error('Expected to consume entire buffer, but \"' + (inputLength - offset) + '\" bytes remain');\n\t}\n\n\tvar rPadding = paramBytes - rLength,\n\t\tsPadding = paramBytes - sLength;\n\n\tvar dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength);\n\n\tfor (offset = 0; offset < rPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength);\n\n\toffset = paramBytes;\n\n\tfor (var o = offset; offset < o + sPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength);\n\n\tdst = dst.toString('base64');\n\tdst = base64Url(dst);\n\n\treturn dst;\n}\n\nfunction countPadding(buf, start, stop) {\n\tvar padding = 0;\n\twhile (start + padding < stop && buf[start + padding] === 0) {\n\t\t++padding;\n\t}\n\n\tvar needsSign = buf[start + padding] >= MAX_OCTET;\n\tif (needsSign) {\n\t\t--padding;\n\t}\n\n\treturn padding;\n}\n\nfunction joseToDer(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\tvar signatureBytes = signature.length;\n\tif (signatureBytes !== paramBytes * 2) {\n\t\tthrow new TypeError('\"' + alg + '\" signatures must be \"' + paramBytes * 2 + '\" bytes, saw \"' + signatureBytes + '\"');\n\t}\n\n\tvar rPadding = countPadding(signature, 0, paramBytes);\n\tvar sPadding = countPadding(signature, paramBytes, signature.length);\n\tvar rLength = paramBytes - rPadding;\n\tvar sLength = paramBytes - sPadding;\n\n\tvar rsBytes = 1 + 1 + rLength + 1 + 1 + sLength;\n\n\tvar shortLength = rsBytes < MAX_OCTET;\n\n\tvar dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes);\n\n\tvar offset = 0;\n\tdst[offset++] = ENCODED_TAG_SEQ;\n\tif (shortLength) {\n\t\t// Bit 8 has value \"0\"\n\t\t// bits 7-1 give the length.\n\t\tdst[offset++] = rsBytes;\n\t} else {\n\t\t// Bit 8 of first octet has value \"1\"\n\t\t// bits 7-1 give the number of additional length octets.\n\t\tdst[offset++] = MAX_OCTET\t| 1;\n\t\t// length, base 256\n\t\tdst[offset++] = rsBytes & 0xff;\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = rLength;\n\tif (rPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\toffset += signature.copy(dst, offset, 0, paramBytes);\n\t} else {\n\t\toffset += signature.copy(dst, offset, rPadding, paramBytes);\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = sLength;\n\tif (sPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\tsignature.copy(dst, offset, paramBytes);\n\t} else {\n\t\tsignature.copy(dst, offset, paramBytes + sPadding);\n\t}\n\n\treturn dst;\n}\n\nmodule.exports = {\n\tderToJose: derToJose,\n\tjoseToDer: joseToDer\n};\n","'use strict';\n\nfunction getParamSize(keySize) {\n\tvar result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n\treturn result;\n}\n\nvar paramBytesForAlg = {\n\tES256: getParamSize(256),\n\tES384: getParamSize(384),\n\tES512: getParamSize(521)\n};\n\nfunction getParamBytesForAlg(alg) {\n\tvar paramBytes = paramBytesForAlg[alg];\n\tif (paramBytes) {\n\t\treturn paramBytes;\n\t}\n\n\tthrow new Error('Unknown algorithm \"' + alg + '\"');\n}\n\nmodule.exports = getParamBytesForAlg;\n","var once = require('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\tvar cancelled = false;\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tprocess.nextTick(onclosenexttick);\n\t};\n\n\tvar onclosenexttick = function() {\n\t\tif (cancelled) return;\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tcancelled = true;\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n","var punycode = require('punycode');\nvar entities = require('./entities.json');\n\nmodule.exports = decode;\n\nfunction decode (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a String');\n }\n\n return str.replace(/&(#?[^;\\W]+;?)/g, function (_, match) {\n var m;\n if (m = /^#(\\d+);?$/.exec(match)) {\n return punycode.ucs2.encode([ parseInt(m[1], 10) ]);\n } else if (m = /^#[Xx]([A-Fa-f0-9]+);?/.exec(match)) {\n return punycode.ucs2.encode([ parseInt(m[1], 16) ]);\n } else {\n // named entity\n var hasSemi = /;$/.test(match);\n var withoutSemi = hasSemi ? match.replace(/;$/, '') : match;\n var target = entities[withoutSemi] || (hasSemi && entities[match]);\n\n if (typeof target === 'number') {\n return punycode.ucs2.encode([ target ]);\n } else if (typeof target === 'string') {\n return target;\n } else {\n return '&' + match;\n }\n }\n });\n}\n","var punycode = require('punycode');\nvar revEntities = require('./reversed.json');\n\nmodule.exports = encode;\n\nfunction encode (str, opts) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a String');\n }\n if (!opts) opts = {};\n\n var numeric = true;\n if (opts.named) numeric = false;\n if (opts.numeric !== undefined) numeric = opts.numeric;\n\n var special = opts.special || {\n '\"': true, \"'\": true,\n '<': true, '>': true,\n '&': true\n };\n\n var codePoints = punycode.ucs2.decode(str);\n var chars = [];\n for (var i = 0; i < codePoints.length; i++) {\n var cc = codePoints[i];\n var c = punycode.ucs2.encode([ cc ]);\n var e = revEntities[cc];\n if (e && (cc >= 127 || special[c]) && !numeric) {\n chars.push('&' + (/;$/.test(e) ? e : e + ';'));\n }\n else if (cc < 32 || cc >= 127 || special[c]) {\n chars.push('&#' + cc + ';');\n }\n else {\n chars.push(c);\n }\n }\n return chars.join('');\n}\n","exports.encode = require('./encode');\nexports.decode = require('./decode');\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n var options = Object.assign({ flipBackslashes: true }, opts);\n\n // flip windows path separators\n if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n str = str.replace(backslash, slash);\n }\n\n // special case for strings ending in enclosure containing path separator\n if (enclosure.test(str)) {\n str += slash;\n }\n\n // preserves full path in case of trailing path separator\n str += 'a';\n\n // remove path parts that are globby\n do {\n str = pathPosixDirname(str);\n } while (isGlob(str) || globby.test(str));\n\n // remove escape chars and return result\n return str.replace(escaped, '$1');\n};\n","\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, async_1.default, options);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n FastGlob.glob = FastGlob;\n FastGlob.globSync = sync;\n FastGlob.globStream = stream;\n FastGlob.async = FastGlob;\n function sync(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, sync_1.default, options);\n return utils.array.flatten(works);\n }\n FastGlob.sync = sync;\n function stream(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, stream_1.default, options);\n /**\n * The stream returned by the provider cannot work with an asynchronous iterator.\n * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n * This affects performance (+25%). I don't see best solution right now.\n */\n return utils.stream.merge(works);\n }\n FastGlob.stream = stream;\n function generateTasks(source, options) {\n assertPatternsInput(source);\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n return taskManager.generate(patterns, settings);\n }\n FastGlob.generateTasks = generateTasks;\n function isDynamicPattern(source, options) {\n assertPatternsInput(source);\n const settings = new settings_1.default(options);\n return utils.pattern.isDynamicPattern(source, settings);\n }\n FastGlob.isDynamicPattern = isDynamicPattern;\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escape(source);\n }\n FastGlob.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPathToPattern(source);\n }\n FastGlob.convertPathToPattern = convertPathToPattern;\n let posix;\n (function (posix) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapePosixPath(source);\n }\n posix.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPosixPathToPattern(source);\n }\n posix.convertPathToPattern = convertPathToPattern;\n })(posix = FastGlob.posix || (FastGlob.posix = {}));\n let win32;\n (function (win32) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapeWindowsPath(source);\n }\n win32.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertWindowsPathToPattern(source);\n }\n win32.convertPathToPattern = convertPathToPattern;\n })(win32 = FastGlob.win32 || (FastGlob.win32 = {}));\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n const source = [].concat(input);\n const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n }\n}\nmodule.exports = FastGlob;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(input, settings) {\n const patterns = processPatterns(input, settings);\n const ignore = processPatterns(settings.ignore, settings);\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\nfunction processPatterns(input, settings) {\n let patterns = input;\n /**\n * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry\n * and some problems with the micromatch package (see fast-glob issues: #365, #394).\n *\n * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown\n * in matching in the case of a large set of patterns after expansion.\n */\n if (settings.braceExpansion) {\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n }\n /**\n * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used\n * at any nesting level.\n *\n * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change\n * the pattern in the filter before creating a regular expression. There is no need to change the patterns\n * in the application. Only on the input.\n */\n if (settings.baseNameMatch) {\n patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`);\n }\n /**\n * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion.\n */\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n}\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n /*\n * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n */\n if ('.' in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n }\n else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n }\n else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new async_1.default(this._settings);\n }\n async read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = await this.api(root, task, options);\n return entries.map((entry) => options.transform(entry));\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n /**\n * Avoid unnecessary depth calculations when it doesn't matter.\n */\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split('/').length;\n if (basePath === '') {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split('/').length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n}\nexports.default = DeepFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = new Map();\n }\n getFilter(positive, negative) {\n const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);\n const negativeRe = utils.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }));\n return (entry) => this._filter(entry, positiveRe, negativeRe);\n }\n _filter(entry, positiveRe, negativeRe) {\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) {\n return false;\n }\n const isDirectory = entry.dirent.isDirectory();\n const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory);\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(filepath);\n }\n return isMatched;\n }\n _isDuplicateEntry(filepath) {\n return this.index.has(filepath);\n }\n _createIndexRecord(filepath) {\n this.index.set(filepath, undefined);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {\n if (!this._settings.absolute) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);\n return utils.pattern.matchAny(fullpath, patternsRe);\n }\n _isMatchToPatterns(filepath, patternsRe, isDirectory) {\n // Trying to match files and directories by patterns.\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n // A pattern with a trailling slash can be used for directory matching.\n // To apply such pattern, we need to add a tralling slash to the path.\n if (!isMatched && isDirectory) {\n return utils.pattern.matchAny(filepath + '/', patternsRe);\n }\n return isMatched;\n }\n}\nexports.default = EntryFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n}\nexports.default = ErrorFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n for (const pattern of this._patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n}\nexports.default = Matcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split('/');\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n /**\n * In this case, the pattern has a globstar and we must read all directories unconditionally,\n * but only if the level has reached the end of the first group.\n *\n * fixtures/{a,b}/**\n * ^ true/false ^ always true\n */\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n}\nexports.default = PartialMatcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === '.' ? '' : task.base;\n return {\n basePath,\n pathSegmentSeparator: '/',\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n}\nexports.default = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const source = this.api(root, task, options);\n const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n source\n .once('error', (error) => destination.emit('error', error))\n .on('data', (entry) => destination.emit('data', options.transform(entry)))\n .once('end', () => destination.emit('end'));\n destination\n .once('close', () => source.destroy());\n return destination;\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = this.api(root, task, options);\n return entries.map(options.transform);\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += '/';\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n}\nexports.default = EntryTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nconst stream_1 = require(\"./stream\");\nclass ReaderAsync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkAsync = fsWalk.walk;\n this._readerStream = new stream_1.default(this._settings);\n }\n dynamic(root, options) {\n return new Promise((resolve, reject) => {\n this._walkAsync(root, options, (error, entries) => {\n if (error === null) {\n resolve(entries);\n }\n else {\n reject(error);\n }\n });\n });\n }\n async static(patterns, options) {\n const entries = [];\n const stream = this._readerStream.static(patterns, options);\n // After #235, replace it with an asynchronous iterator.\n return new Promise((resolve, reject) => {\n stream.once('error', reject);\n stream.on('data', (entry) => entries.push(entry));\n stream.once('end', () => resolve(entries));\n });\n }\n}\nexports.default = ReaderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root, options) {\n return this._walkStream(root, options);\n }\n static(patterns, options) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options)\n .then((entry) => {\n if (entry !== null && options.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n })\n .catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options) {\n return this._getStat(filepath)\n .then((stats) => this._makeEntry(stats, pattern))\n .catch((error) => {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve(stats) : reject(error);\n });\n });\n }\n}\nexports.default = ReaderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root, options) {\n return this._walkSync(root, options);\n }\n static(patterns, options) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options);\n if (entry === null || !options.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n }\n catch (error) {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n}\nexports.default = ReaderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n lstatSync: fs.lstatSync,\n stat: fs.stat,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n // Remove the cast to the array in the next major (#404).\n this.ignore = [].concat(this.ignore);\n }\n _getValue(option, value) {\n return option === undefined ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n }\n else {\n result[groupIndex].push(item);\n }\n }\n return result;\n}\nexports.splitWhen = splitWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst IS_WINDOWS_PLATFORM = os.platform() === 'win32';\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\n/**\n * All non-escaped special characters.\n * Posix: ()*?[\\]{|}, !+@ before (, ! at the beginning, \\\\ before non-special characters.\n * Windows: (){}, !+@ before (, ! at the beginning.\n */\nconst POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\nconst WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([(){}]|^!|[!+@](?=\\())/g;\n/**\n * The device path (\\\\.\\ or \\\\?\\).\n * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths\n */\nconst DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n/**\n * All backslashes except those escaping special characters.\n * Windows: !()+@{}\n * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\n */\nconst WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@{}])/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction removeLeadingDotSegment(entry) {\n // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (entry.charAt(0) === '.') {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === '/' || secondCharactery === '\\\\') {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\nexports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\nfunction escapeWindowsPath(pattern) {\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapeWindowsPath = escapeWindowsPath;\nfunction escapePosixPath(pattern) {\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapePosixPath = escapePosixPath;\nexports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\nfunction convertWindowsPathToPattern(filepath) {\n return escapeWindowsPath(filepath)\n .replace(DOS_DEVICE_PATH_RE, '//$1')\n .replace(WINDOWS_BACKSLASHES_RE, '/');\n}\nexports.convertWindowsPathToPattern = convertWindowsPathToPattern;\nfunction convertPosixPathToPattern(filepath) {\n return escapePosixPath(filepath);\n}\nexports.convertPosixPathToPattern = convertPosixPathToPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\nconst BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n/**\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\n * The latter is due to the presence of the device path at the beginning of the UNC path.\n */\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\nfunction isStaticPattern(pattern, options = {}) {\n return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n /**\n * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n * An empty string cannot be a dynamic pattern.\n * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n */\n if (pattern === '') {\n return false;\n }\n /**\n * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n * filepath directly (without read directory).\n */\n if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {\n return true;\n }\n return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction hasBraceExpansion(pattern) {\n const openingBraceIndex = pattern.indexOf('{');\n if (openingBraceIndex === -1) {\n return false;\n }\n const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);\n if (closingBraceIndex === -1) {\n return false;\n }\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n}\nfunction convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n const basename = path.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n const patterns = micromatch.braces(pattern, { expand: true, nodupes: true });\n /**\n * Sort the patterns by length so that the same depth patterns are processed side by side.\n * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']`\n */\n patterns.sort((a, b) => a.length - b.length);\n /**\n * Micromatch can return an empty string in the case of patterns like `{a,}`.\n */\n return patterns.filter((pattern) => pattern !== '');\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n /**\n * The scan method returns an empty array in some cases.\n * See micromatch/picomatch#58 for more details.\n */\n if (parts.length === 0) {\n parts = [pattern];\n }\n /**\n * The scan method does not return an empty part for the pattern with a forward slash.\n * This is another part of micromatch/picomatch#58.\n */\n if (parts[0].startsWith('/')) {\n parts[0] = parts[0].slice(1);\n parts.unshift('');\n }\n return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n/**\n * This package only works with forward slashes as a path separator.\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\n */\nfunction removeDuplicateSlashes(pattern) {\n return pattern.replace(DOUBLE_SLASH_RE, '/');\n}\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once('error', (error) => mergedStream.emit('error', error));\n });\n mergedStream.once('close', () => propagateCloseEventToSources(streams));\n mergedStream.once('end', () => propagateCloseEventToSources(streams));\n return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit('close'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n return input === '';\n}\nexports.isEmpty = isEmpty;\n","(function(l){function m(){}function k(a,c){a=void 0===a?\"utf-8\":a;c=void 0===c?{fatal:!1}:c;if(-1===r.indexOf(a.toLowerCase()))throw new RangeError(\"Failed to construct 'TextDecoder': The encoding label provided ('\"+a+\"') is invalid.\");if(c.fatal)throw Error(\"Failed to construct 'TextDecoder': the 'fatal' option is unsupported.\");}function t(a){return Buffer.from(a.buffer,a.byteOffset,a.byteLength).toString(\"utf-8\")}function u(a){var c=URL.createObjectURL(new Blob([a],{type:\"text/plain;charset=UTF-8\"}));\ntry{var f=new XMLHttpRequest;f.open(\"GET\",c,!1);f.send();return f.responseText}catch(e){return q(a)}finally{URL.revokeObjectURL(c)}}function q(a){for(var c=0,f=Math.min(65536,a.length+1),e=new Uint16Array(f),h=[],d=0;;){var b=c=f-1){h.push(String.fromCharCode.apply(null,e.subarray(0,d)));if(!b)return h.join(\"\");a=a.subarray(c);d=c=0}b=a[c++];if(0===(b&128))e[d++]=b;else if(192===(b&224)){var g=a[c++]&63;e[d++]=(b&31)<<6|g}else if(224===(b&240)){g=a[c++]&63;var n=a[c++]&63;e[d++]=\n(b&31)<<12|g<<6|n}else if(240===(b&248)){g=a[c++]&63;n=a[c++]&63;var v=a[c++]&63;b=(b&7)<<18|g<<12|n<<6|v;65535>>10&1023|55296,b=56320|b&1023);e[d++]=b}}}if(l.TextEncoder&&l.TextDecoder)return!1;var r=[\"utf-8\",\"utf8\",\"unicode-1-1-utf-8\"];Object.defineProperty(m.prototype,\"encoding\",{value:\"utf-8\"});m.prototype.encode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error(\"Failed to encode: the 'stream' option is unsupported.\");c=0;for(var f=a.length,e=0,h=Math.max(32,\nf+(f>>>1)+7),d=new Uint8Array(h>>>3<<3);c=b){if(c=b)continue}e+4>d.length&&(h+=8,h*=1+c/a.length*2,h=h>>>3<<3,g=new Uint8Array(h),g.set(d),d=g);if(0===(b&4294967168))d[e++]=b;else{if(0===(b&4294965248))d[e++]=b>>>6&31|192;else if(0===(b&4294901760))d[e++]=b>>>12&15|224,d[e++]=b>>>6&63|128;else if(0===(b&4292870144))d[e++]=b>>>18&7|240,d[e++]=b>>>12&\n63|128,d[e++]=b>>>6&63|128;else continue;d[e++]=b&63|128}}return d.slice?d.slice(0,e):d.subarray(0,e)};Object.defineProperty(k.prototype,\"encoding\",{value:\"utf-8\"});Object.defineProperty(k.prototype,\"fatal\",{value:!1});Object.defineProperty(k.prototype,\"ignoreBOM\",{value:!1});var p=q;\"function\"===typeof Buffer&&Buffer.from?p=t:\"function\"===typeof Blob&&\"function\"===typeof URL&&\"function\"===typeof URL.createObjectURL&&(p=u);k.prototype.decode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error(\"Failed to decode: the 'stream' option is unsupported.\");\na=a instanceof Uint8Array?a:a.buffer instanceof ArrayBuffer?new Uint8Array(a.buffer):new Uint8Array(a);return p(a)};l.TextEncoder=m;l.TextDecoder=k})(\"undefined\"!==typeof window?window:\"undefined\"!==typeof global?global:this);\n","'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, concurrency) {\n if (typeof context === 'function') {\n concurrency = worker\n worker = context\n context = null\n }\n\n if (concurrency < 1) {\n throw new Error('fastqueue concurrency must be greater than 1')\n }\n\n var cache = reusify(Task)\n var queueHead = null\n var queueTail = null\n var _running = 0\n var errorHandler = null\n\n var self = {\n push: push,\n drain: noop,\n saturated: noop,\n pause: pause,\n paused: false,\n concurrency: concurrency,\n running: running,\n resume: resume,\n idle: idle,\n length: length,\n getQueue: getQueue,\n unshift: unshift,\n empty: noop,\n kill: kill,\n killAndDrain: killAndDrain,\n error: error\n }\n\n return self\n\n function running () {\n return _running\n }\n\n function pause () {\n self.paused = true\n }\n\n function length () {\n var current = queueHead\n var counter = 0\n\n while (current) {\n current = current.next\n counter++\n }\n\n return counter\n }\n\n function getQueue () {\n var current = queueHead\n var tasks = []\n\n while (current) {\n tasks.push(current.value)\n current = current.next\n }\n\n return tasks\n }\n\n function resume () {\n if (!self.paused) return\n self.paused = false\n for (var i = 0; i < self.concurrency; i++) {\n _running++\n release()\n }\n }\n\n function idle () {\n return _running === 0 && self.length() === 0\n }\n\n function push (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running === self.concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current\n queueTail = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function unshift (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n\n if (_running === self.concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead\n queueHead = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function release (holder) {\n if (holder) {\n cache.release(holder)\n }\n var next = queueHead\n if (next) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null\n }\n queueHead = next.next\n next.next = null\n worker.call(context, next.value, next.worked)\n if (queueTail === null) {\n self.empty()\n }\n } else {\n _running--\n }\n } else if (--_running === 0) {\n self.drain()\n }\n }\n\n function kill () {\n queueHead = null\n queueTail = null\n self.drain = noop\n }\n\n function killAndDrain () {\n queueHead = null\n queueTail = null\n self.drain()\n self.drain = noop\n }\n\n function error (handler) {\n errorHandler = handler\n }\n}\n\nfunction noop () {}\n\nfunction Task () {\n this.value = null\n this.callback = noop\n this.next = null\n this.release = noop\n this.context = null\n this.errorHandler = null\n\n var self = this\n\n this.worked = function worked (err, result) {\n var callback = self.callback\n var errorHandler = self.errorHandler\n var val = self.value\n self.value = null\n self.callback = noop\n if (self.errorHandler) {\n errorHandler(err, val)\n }\n callback.call(self.context, err, result)\n self.release(self)\n }\n}\n\nfunction queueAsPromised (context, worker, concurrency) {\n if (typeof context === 'function') {\n concurrency = worker\n worker = context\n context = null\n }\n\n function asyncWrapper (arg, cb) {\n worker.call(this, arg)\n .then(function (res) {\n cb(null, res)\n }, cb)\n }\n\n var queue = fastqueue(context, asyncWrapper, concurrency)\n\n var pushCb = queue.push\n var unshiftCb = queue.unshift\n\n queue.push = push\n queue.unshift = unshift\n queue.drained = drained\n\n return queue\n\n function push (value) {\n var p = new Promise(function (resolve, reject) {\n pushCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function unshift (value) {\n var p = new Promise(function (resolve, reject) {\n unshiftCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function drained () {\n if (queue.idle()) {\n return new Promise(function (resolve) {\n resolve()\n })\n }\n\n var previousDrain = queue.drain\n\n var p = new Promise(function (resolve) {\n queue.drain = function () {\n previousDrain()\n resolve()\n }\n })\n\n return p\n }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n","/*!\n * fill-range \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === '-') value = value.slice(1);\n if (value === '0') return false;\n while (value[++index] === '0');\n return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n if (typeof start === 'string' || typeof end === 'string') {\n return true;\n }\n return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === '-' ? '-' : '';\n if (dash) input = input.slice(1);\n input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n let negative = input[0] === '-' ? '-' : '';\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = '0' + input;\n return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n let prefix = options.capture ? '' : '?:';\n let positives = '';\n let negatives = '';\n let result;\n\n if (parts.positives.length) {\n positives = parts.positives.join('|');\n }\n\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.join('|')})`;\n }\n\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n\n if (options.wrap) {\n return `(${prefix}${result})`;\n }\n\n return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options });\n }\n\n let start = String.fromCharCode(a);\n if (a === b) return start;\n\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n if (Array.isArray(start)) {\n let wrap = options.wrap === true;\n let prefix = options.capture ? '' : '?:';\n return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n }\n return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n};\n\nconst invalidStep = (step, options) => {\n if (options.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n let a = Number(start);\n let b = Number(end);\n\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n\n // fix negative zero\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify(start, end, options) === false;\n let format = options.transform || transform(toNumber);\n\n if (options.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n }\n\n let parts = { negatives: [], positives: [] };\n let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n if (options.toRegex === true && step > 1) {\n push(a);\n } else {\n range.push(pad(format(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return step > 1\n ? toSequence(parts, options)\n : toRegex(range, null, { wrap: false, ...options });\n }\n\n return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n return invalidRange(start, end, options);\n }\n\n\n let format = options.transform || (val => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n\n if (options.toRegex && step === 1) {\n return toRange(min, max, false, options);\n }\n\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n range.push(format(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return toRegex(range, null, { wrap: false, options });\n }\n\n return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options);\n }\n\n if (typeof step === 'function') {\n return fill(start, end, 1, { transform: step });\n }\n\n if (isObject(step)) {\n return fill(start, end, 0, step);\n }\n\n let opts = { ...options };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n\n if (!isNumber(step)) {\n if (step != null && !isObject(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GaxiosError = void 0;\n/* eslint-disable @typescript-eslint/no-explicit-any */\nclass GaxiosError extends Error {\n constructor(message, options, response) {\n super(message);\n this.response = response;\n this.config = options;\n this.code = response.status.toString();\n }\n}\nexports.GaxiosError = GaxiosError;\n//# sourceMappingURL=common.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Gaxios = void 0;\nconst extend_1 = __importDefault(require(\"extend\"));\nconst https_1 = require(\"https\");\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst querystring_1 = __importDefault(require(\"querystring\"));\nconst is_stream_1 = __importDefault(require(\"is-stream\"));\nconst url_1 = require(\"url\");\nconst common_1 = require(\"./common\");\nconst retry_1 = require(\"./retry\");\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fetch = hasFetch() ? window.fetch : node_fetch_1.default;\nfunction hasWindow() {\n return typeof window !== 'undefined' && !!window;\n}\nfunction hasFetch() {\n return hasWindow() && !!window.fetch;\n}\nfunction hasBuffer() {\n return typeof Buffer !== 'undefined';\n}\nfunction hasHeader(options, header) {\n return !!getHeader(options, header);\n}\nfunction getHeader(options, header) {\n header = header.toLowerCase();\n for (const key of Object.keys((options === null || options === void 0 ? void 0 : options.headers) || {})) {\n if (header === key.toLowerCase()) {\n return options.headers[key];\n }\n }\n return undefined;\n}\nlet HttpsProxyAgent;\nfunction loadProxy() {\n const proxy = process.env.HTTPS_PROXY ||\n process.env.https_proxy ||\n process.env.HTTP_PROXY ||\n process.env.http_proxy;\n if (proxy) {\n HttpsProxyAgent = require('https-proxy-agent');\n }\n return proxy;\n}\nloadProxy();\nfunction skipProxy(url) {\n var _a;\n const noProxyEnv = (_a = process.env.NO_PROXY) !== null && _a !== void 0 ? _a : process.env.no_proxy;\n if (!noProxyEnv) {\n return false;\n }\n const noProxyUrls = noProxyEnv.split(',');\n const parsedURL = new url_1.URL(url);\n return !!noProxyUrls.find(url => {\n if (url.startsWith('*.') || url.startsWith('.')) {\n url = url.replace(/^\\*\\./, '.');\n return parsedURL.hostname.endsWith(url);\n }\n else {\n return url === parsedURL.origin || url === parsedURL.hostname;\n }\n });\n}\n// Figure out if we should be using a proxy. Only if it's required, load\n// the https-proxy-agent module as it adds startup cost.\nfunction getProxy(url) {\n // If there is a match between the no_proxy env variables and the url, then do not proxy\n if (skipProxy(url)) {\n return undefined;\n // If there is not a match between the no_proxy env variables and the url, check to see if there should be a proxy\n }\n else {\n return loadProxy();\n }\n}\nclass Gaxios {\n /**\n * The Gaxios class is responsible for making HTTP requests.\n * @param defaults The default set of options to be used for this instance.\n */\n constructor(defaults) {\n this.agentCache = new Map();\n this.defaults = defaults || {};\n }\n /**\n * Perform an HTTP request with the given options.\n * @param opts Set of HTTP options that will be used for this HTTP request.\n */\n async request(opts = {}) {\n opts = this.validateOpts(opts);\n return this._request(opts);\n }\n async _defaultAdapter(opts) {\n const fetchImpl = opts.fetchImplementation || fetch;\n const res = (await fetchImpl(opts.url, opts));\n const data = await this.getResponseData(opts, res);\n return this.translateResponse(opts, res, data);\n }\n /**\n * Internal, retryable version of the `request` method.\n * @param opts Set of HTTP options that will be used for this HTTP request.\n */\n async _request(opts = {}) {\n try {\n let translatedResponse;\n if (opts.adapter) {\n translatedResponse = await opts.adapter(opts, this._defaultAdapter.bind(this));\n }\n else {\n translatedResponse = await this._defaultAdapter(opts);\n }\n if (!opts.validateStatus(translatedResponse.status)) {\n throw new common_1.GaxiosError(`Request failed with status code ${translatedResponse.status}`, opts, translatedResponse);\n }\n return translatedResponse;\n }\n catch (e) {\n const err = e;\n err.config = opts;\n const { shouldRetry, config } = await retry_1.getRetryConfig(e);\n if (shouldRetry && config) {\n err.config.retryConfig.currentRetryAttempt =\n config.retryConfig.currentRetryAttempt;\n return this._request(err.config);\n }\n throw err;\n }\n }\n async getResponseData(opts, res) {\n switch (opts.responseType) {\n case 'stream':\n return res.body;\n case 'json': {\n let data = await res.text();\n try {\n data = JSON.parse(data);\n }\n catch (_a) {\n // continue\n }\n return data;\n }\n case 'arraybuffer':\n return res.arrayBuffer();\n case 'blob':\n return res.blob();\n default:\n return res.text();\n }\n }\n /**\n * Validates the options, and merges them with defaults.\n * @param opts The original options passed from the client.\n */\n validateOpts(options) {\n const opts = extend_1.default(true, {}, this.defaults, options);\n if (!opts.url) {\n throw new Error('URL is required.');\n }\n // baseUrl has been deprecated, remove in 2.0\n const baseUrl = opts.baseUrl || opts.baseURL;\n if (baseUrl) {\n opts.url = baseUrl + opts.url;\n }\n opts.paramsSerializer = opts.paramsSerializer || this.paramsSerializer;\n if (opts.params && Object.keys(opts.params).length > 0) {\n let additionalQueryParams = opts.paramsSerializer(opts.params);\n if (additionalQueryParams.startsWith('?')) {\n additionalQueryParams = additionalQueryParams.slice(1);\n }\n const prefix = opts.url.includes('?') ? '&' : '?';\n opts.url = opts.url + prefix + additionalQueryParams;\n }\n if (typeof options.maxContentLength === 'number') {\n opts.size = options.maxContentLength;\n }\n if (typeof options.maxRedirects === 'number') {\n opts.follow = options.maxRedirects;\n }\n opts.headers = opts.headers || {};\n if (opts.data) {\n const isFormData = typeof FormData === 'undefined'\n ? false\n : (opts === null || opts === void 0 ? void 0 : opts.data) instanceof FormData;\n if (is_stream_1.default.readable(opts.data)) {\n opts.body = opts.data;\n }\n else if (hasBuffer() && Buffer.isBuffer(opts.data)) {\n // Do not attempt to JSON.stringify() a Buffer:\n opts.body = opts.data;\n if (!hasHeader(opts, 'Content-Type')) {\n opts.headers['Content-Type'] = 'application/json';\n }\n }\n else if (typeof opts.data === 'object') {\n // If www-form-urlencoded content type has been set, but data is\n // provided as an object, serialize the content using querystring:\n if (!isFormData) {\n if (getHeader(opts, 'content-type') ===\n 'application/x-www-form-urlencoded') {\n opts.body = opts.paramsSerializer(opts.data);\n }\n else {\n // } else if (!(opts.data instanceof FormData)) {\n if (!hasHeader(opts, 'Content-Type')) {\n opts.headers['Content-Type'] = 'application/json';\n }\n opts.body = JSON.stringify(opts.data);\n }\n }\n }\n else {\n opts.body = opts.data;\n }\n }\n opts.validateStatus = opts.validateStatus || this.validateStatus;\n opts.responseType = opts.responseType || 'json';\n if (!opts.headers['Accept'] && opts.responseType === 'json') {\n opts.headers['Accept'] = 'application/json';\n }\n opts.method = opts.method || 'GET';\n const proxy = getProxy(opts.url);\n if (proxy) {\n if (this.agentCache.has(proxy)) {\n opts.agent = this.agentCache.get(proxy);\n }\n else {\n // Proxy is being used in conjunction with mTLS.\n if (opts.cert && opts.key) {\n const parsedURL = new url_1.URL(proxy);\n opts.agent = new HttpsProxyAgent({\n port: parsedURL.port,\n host: parsedURL.host,\n protocol: parsedURL.protocol,\n cert: opts.cert,\n key: opts.key,\n });\n }\n else {\n opts.agent = new HttpsProxyAgent(proxy);\n }\n this.agentCache.set(proxy, opts.agent);\n }\n }\n else if (opts.cert && opts.key) {\n // Configure client for mTLS:\n if (this.agentCache.has(opts.key)) {\n opts.agent = this.agentCache.get(opts.key);\n }\n else {\n opts.agent = new https_1.Agent({\n cert: opts.cert,\n key: opts.key,\n });\n this.agentCache.set(opts.key, opts.agent);\n }\n }\n return opts;\n }\n /**\n * By default, throw for any non-2xx status code\n * @param status status code from the HTTP response\n */\n validateStatus(status) {\n return status >= 200 && status < 300;\n }\n /**\n * Encode a set of key/value pars into a querystring format (?foo=bar&baz=boo)\n * @param params key value pars to encode\n */\n paramsSerializer(params) {\n return querystring_1.default.stringify(params);\n }\n translateResponse(opts, res, data) {\n // headers need to be converted from a map to an obj\n const headers = {};\n res.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return {\n config: opts,\n data: data,\n headers,\n status: res.status,\n statusText: res.statusText,\n // XMLHttpRequestLike\n request: {\n responseURL: res.url,\n },\n };\n }\n}\nexports.Gaxios = Gaxios;\n//# sourceMappingURL=gaxios.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.request = exports.instance = exports.Gaxios = void 0;\nconst gaxios_1 = require(\"./gaxios\");\nObject.defineProperty(exports, \"Gaxios\", { enumerable: true, get: function () { return gaxios_1.Gaxios; } });\nvar common_1 = require(\"./common\");\nObject.defineProperty(exports, \"GaxiosError\", { enumerable: true, get: function () { return common_1.GaxiosError; } });\n/**\n * The default instance used when the `request` method is directly\n * invoked.\n */\nexports.instance = new gaxios_1.Gaxios();\n/**\n * Make an HTTP request using the given options.\n * @param opts Options for the request\n */\nasync function request(opts) {\n return exports.instance.request(opts);\n}\nexports.request = request;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRetryConfig = void 0;\nasync function getRetryConfig(err) {\n var _a;\n let config = getConfig(err);\n if (!err || !err.config || (!config && !err.config.retry)) {\n return { shouldRetry: false };\n }\n config = config || {};\n config.currentRetryAttempt = config.currentRetryAttempt || 0;\n config.retry =\n config.retry === undefined || config.retry === null ? 3 : config.retry;\n config.httpMethodsToRetry = config.httpMethodsToRetry || [\n 'GET',\n 'HEAD',\n 'PUT',\n 'OPTIONS',\n 'DELETE',\n ];\n config.noResponseRetries =\n config.noResponseRetries === undefined || config.noResponseRetries === null\n ? 2\n : config.noResponseRetries;\n // If this wasn't in the list of status codes where we want\n // to automatically retry, return.\n const retryRanges = [\n // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\n // 1xx - Retry (Informational, request still processing)\n // 2xx - Do not retry (Success)\n // 3xx - Do not retry (Redirect)\n // 4xx - Do not retry (Client errors)\n // 429 - Retry (\"Too Many Requests\")\n // 5xx - Retry (Server errors)\n [100, 199],\n [429, 429],\n [500, 599],\n ];\n config.statusCodesToRetry = config.statusCodesToRetry || retryRanges;\n // Put the config back into the err\n err.config.retryConfig = config;\n // Determine if we should retry the request\n const shouldRetryFn = config.shouldRetry || shouldRetryRequest;\n if (!(await shouldRetryFn(err))) {\n return { shouldRetry: false, config: err.config };\n }\n // Calculate time to wait with exponential backoff.\n // If this is the first retry, look for a configured retryDelay.\n const retryDelay = config.currentRetryAttempt ? 0 : (_a = config.retryDelay) !== null && _a !== void 0 ? _a : 100;\n // Formula: retryDelay + ((2^c - 1 / 2) * 1000)\n const delay = retryDelay + ((Math.pow(2, config.currentRetryAttempt) - 1) / 2) * 1000;\n // We're going to retry! Incremenent the counter.\n err.config.retryConfig.currentRetryAttempt += 1;\n // Create a promise that invokes the retry after the backOffDelay\n const backoff = new Promise(resolve => {\n setTimeout(resolve, delay);\n });\n // Notify the user if they added an `onRetryAttempt` handler\n if (config.onRetryAttempt) {\n config.onRetryAttempt(err);\n }\n // Return the promise in which recalls Gaxios to retry the request\n await backoff;\n return { shouldRetry: true, config: err.config };\n}\nexports.getRetryConfig = getRetryConfig;\n/**\n * Determine based on config if we should retry the request.\n * @param err The GaxiosError passed to the interceptor.\n */\nfunction shouldRetryRequest(err) {\n const config = getConfig(err);\n // node-fetch raises an AbortError if signaled:\n // https://github.com/bitinn/node-fetch#request-cancellation-with-abortsignal\n if (err.name === 'AbortError') {\n return false;\n }\n // If there's no config, or retries are disabled, return.\n if (!config || config.retry === 0) {\n return false;\n }\n // Check if this error has no response (ETIMEDOUT, ENOTFOUND, etc)\n if (!err.response &&\n (config.currentRetryAttempt || 0) >= config.noResponseRetries) {\n return false;\n }\n // Only retry with configured HttpMethods.\n if (!err.config.method ||\n config.httpMethodsToRetry.indexOf(err.config.method.toUpperCase()) < 0) {\n return false;\n }\n // If this wasn't in the list of status codes where we want\n // to automatically retry, return.\n if (err.response && err.response.status) {\n let isInRange = false;\n for (const [min, max] of config.statusCodesToRetry) {\n const status = err.response.status;\n if (status >= min && status <= max) {\n isInRange = true;\n break;\n }\n }\n if (!isInRange) {\n return false;\n }\n }\n // If we are out of retry attempts, return\n config.currentRetryAttempt = config.currentRetryAttempt || 0;\n if (config.currentRetryAttempt >= config.retry) {\n return false;\n }\n return true;\n}\n/**\n * Acquire the raxConfig object from an GaxiosError if available.\n * @param err The Gaxios error with a config object.\n */\nfunction getConfig(err) {\n if (err && err.config && err.config.retryConfig) {\n return err.config.retryConfig;\n }\n return;\n}\n//# sourceMappingURL=retry.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\n/**\n * Copyright 2018 Google LLC\n *\n * Distributed under MIT license.\n * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestTimeout = exports.resetIsAvailableCache = exports.isAvailable = exports.project = exports.instance = exports.HEADERS = exports.HEADER_VALUE = exports.HEADER_NAME = exports.SECONDARY_HOST_ADDRESS = exports.HOST_ADDRESS = exports.BASE_PATH = void 0;\nconst gaxios_1 = require(\"gaxios\");\nconst jsonBigint = require(\"json-bigint\");\nexports.BASE_PATH = '/computeMetadata/v1';\nexports.HOST_ADDRESS = 'http://169.254.169.254';\nexports.SECONDARY_HOST_ADDRESS = 'http://metadata.google.internal.';\nexports.HEADER_NAME = 'Metadata-Flavor';\nexports.HEADER_VALUE = 'Google';\nexports.HEADERS = Object.freeze({ [exports.HEADER_NAME]: exports.HEADER_VALUE });\n/**\n * Returns the base URL while taking into account the GCE_METADATA_HOST\n * environment variable if it exists.\n *\n * @returns The base URL, e.g., http://169.254.169.254/computeMetadata/v1.\n */\nfunction getBaseUrl(baseUrl) {\n if (!baseUrl) {\n baseUrl =\n process.env.GCE_METADATA_IP ||\n process.env.GCE_METADATA_HOST ||\n exports.HOST_ADDRESS;\n }\n // If no scheme is provided default to HTTP:\n if (!/^https?:\\/\\//.test(baseUrl)) {\n baseUrl = `http://${baseUrl}`;\n }\n return new URL(exports.BASE_PATH, baseUrl).href;\n}\n// Accepts an options object passed from the user to the API. In previous\n// versions of the API, it referred to a `Request` or an `Axios` request\n// options object. Now it refers to an object with very limited property\n// names. This is here to help ensure users don't pass invalid options when\n// they upgrade from 0.4 to 0.5 to 0.8.\nfunction validate(options) {\n Object.keys(options).forEach(key => {\n switch (key) {\n case 'params':\n case 'property':\n case 'headers':\n break;\n case 'qs':\n throw new Error(\"'qs' is not a valid configuration option. Please use 'params' instead.\");\n default:\n throw new Error(`'${key}' is not a valid configuration option.`);\n }\n });\n}\nasync function metadataAccessor(type, options, noResponseRetries = 3, fastFail = false) {\n options = options || {};\n if (typeof options === 'string') {\n options = { property: options };\n }\n let property = '';\n if (typeof options === 'object' && options.property) {\n property = '/' + options.property;\n }\n validate(options);\n try {\n const requestMethod = fastFail ? fastFailMetadataRequest : gaxios_1.request;\n const res = await requestMethod({\n url: `${getBaseUrl()}/${type}${property}`,\n headers: Object.assign({}, exports.HEADERS, options.headers),\n retryConfig: { noResponseRetries },\n params: options.params,\n responseType: 'text',\n timeout: requestTimeout(),\n });\n // NOTE: node.js converts all incoming headers to lower case.\n if (res.headers[exports.HEADER_NAME.toLowerCase()] !== exports.HEADER_VALUE) {\n throw new Error(`Invalid response from metadata service: incorrect ${exports.HEADER_NAME} header.`);\n }\n else if (!res.data) {\n throw new Error('Invalid response from the metadata service');\n }\n if (typeof res.data === 'string') {\n try {\n return jsonBigint.parse(res.data);\n }\n catch (_a) {\n /* ignore */\n }\n }\n return res.data;\n }\n catch (e) {\n if (e.response && e.response.status !== 200) {\n e.message = `Unsuccessful response status code. ${e.message}`;\n }\n throw e;\n }\n}\nasync function fastFailMetadataRequest(options) {\n const secondaryOptions = {\n ...options,\n url: options.url.replace(getBaseUrl(), getBaseUrl(exports.SECONDARY_HOST_ADDRESS)),\n };\n // We race a connection between DNS/IP to metadata server. There are a couple\n // reasons for this:\n //\n // 1. the DNS is slow in some GCP environments; by checking both, we might\n // detect the runtime environment signficantly faster.\n // 2. we can't just check the IP, which is tarpitted and slow to respond\n // on a user's local machine.\n //\n // Additional logic has been added to make sure that we don't create an\n // unhandled rejection in scenarios where a failure happens sometime\n // after a success.\n //\n // Note, however, if a failure happens prior to a success, a rejection should\n // occur, this is for folks running locally.\n //\n let responded = false;\n const r1 = gaxios_1.request(options)\n .then(res => {\n responded = true;\n return res;\n })\n .catch(err => {\n if (responded) {\n return r2;\n }\n else {\n responded = true;\n throw err;\n }\n });\n const r2 = gaxios_1.request(secondaryOptions)\n .then(res => {\n responded = true;\n return res;\n })\n .catch(err => {\n if (responded) {\n return r1;\n }\n else {\n responded = true;\n throw err;\n }\n });\n return Promise.race([r1, r2]);\n}\n/**\n * Obtain metadata for the current GCE instance\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instance(options) {\n return metadataAccessor('instance', options);\n}\nexports.instance = instance;\n/**\n * Obtain metadata for the current GCP Project.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction project(options) {\n return metadataAccessor('project', options);\n}\nexports.project = project;\n/*\n * How many times should we retry detecting GCP environment.\n */\nfunction detectGCPAvailableRetries() {\n return process.env.DETECT_GCP_RETRIES\n ? Number(process.env.DETECT_GCP_RETRIES)\n : 0;\n}\nlet cachedIsAvailableResponse;\n/**\n * Determine if the metadata server is currently available.\n */\nasync function isAvailable() {\n try {\n // If a user is instantiating several GCP libraries at the same time,\n // this may result in multiple calls to isAvailable(), to detect the\n // runtime environment. We use the same promise for each of these calls\n // to reduce the network load.\n if (cachedIsAvailableResponse === undefined) {\n cachedIsAvailableResponse = metadataAccessor('instance', undefined, detectGCPAvailableRetries(), \n // If the default HOST_ADDRESS has been overridden, we should not\n // make an effort to try SECONDARY_HOST_ADDRESS (as we are likely in\n // a non-GCP environment):\n !(process.env.GCE_METADATA_IP || process.env.GCE_METADATA_HOST));\n }\n await cachedIsAvailableResponse;\n return true;\n }\n catch (err) {\n if (process.env.DEBUG_AUTH) {\n console.info(err);\n }\n if (err.type === 'request-timeout') {\n // If running in a GCP environment, metadata endpoint should return\n // within ms.\n return false;\n }\n if (err.response && err.response.status === 404) {\n return false;\n }\n else {\n if (!(err.response && err.response.status === 404) &&\n // A warning is emitted if we see an unexpected err.code, or err.code\n // is not populated:\n (!err.code ||\n ![\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'ENETUNREACH',\n 'ENOENT',\n 'ENOTFOUND',\n 'ECONNREFUSED',\n ].includes(err.code))) {\n let code = 'UNKNOWN';\n if (err.code)\n code = err.code;\n process.emitWarning(`received unexpected error = ${err.message} code = ${code}`, 'MetadataLookupWarning');\n }\n // Failure to resolve the metadata service means that it is not available.\n return false;\n }\n }\n}\nexports.isAvailable = isAvailable;\n/**\n * reset the memoized isAvailable() lookup.\n */\nfunction resetIsAvailableCache() {\n cachedIsAvailableResponse = undefined;\n}\nexports.resetIsAvailableCache = resetIsAvailableCache;\n/**\n * Obtain the timeout for requests to the metadata server.\n */\nfunction requestTimeout() {\n // In testing, we were able to reproduce behavior similar to\n // https://github.com/googleapis/google-auth-library-nodejs/issues/798\n // by making many concurrent network requests. Requests do not actually fail,\n // rather they take significantly longer to complete (and we hit our\n // default 3000ms timeout).\n //\n // This logic detects a GCF environment, using the documented environment\n // variables K_SERVICE and FUNCTION_NAME:\n // https://cloud.google.com/functions/docs/env-var and, in a GCF environment\n // eliminates timeouts (by setting the value to 0 to disable).\n return process.env.K_SERVICE || process.env.FUNCTION_NAME ? 0 : 3000;\n}\nexports.requestTimeout = requestTimeout;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2012 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuthClient = void 0;\nconst events_1 = require(\"events\");\nconst transporters_1 = require(\"../transporters\");\nclass AuthClient extends events_1.EventEmitter {\n constructor() {\n super(...arguments);\n this.transporter = new transporters_1.DefaultTransporter();\n this.credentials = {};\n this.eagerRefreshThresholdMillis = 5 * 60 * 1000;\n this.forceRefreshOnFailure = false;\n }\n /**\n * Sets the auth credentials.\n */\n setCredentials(credentials) {\n this.credentials = credentials;\n }\n /**\n * Append additional headers, e.g., x-goog-user-project, shared across the\n * classes inheriting AuthClient. This method should be used by any method\n * that overrides getRequestMetadataAsync(), which is a shared helper for\n * setting request information in both gRPC and HTTP API calls.\n *\n * @param headers object to append additional headers to.\n */\n addSharedMetadataHeaders(headers) {\n // quota_project_id, stored in application_default_credentials.json, is set in\n // the x-goog-user-project header, to indicate an alternate account for\n // billing and quota:\n if (!headers['x-goog-user-project'] && // don't override a value the user sets.\n this.quotaProjectId) {\n headers['x-goog-user-project'] = this.quotaProjectId;\n }\n return headers;\n }\n}\nexports.AuthClient = AuthClient;\n//# sourceMappingURL=authclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsClient = void 0;\nconst awsrequestsigner_1 = require(\"./awsrequestsigner\");\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\n/**\n * AWS external account client. This is used for AWS workloads, where\n * AWS STS GetCallerIdentity serialized signed requests are exchanged for\n * GCP access token.\n */\nclass AwsClient extends baseexternalclient_1.BaseExternalAccountClient {\n /**\n * Instantiates an AwsClient instance using the provided JSON\n * object loaded from an external account credentials file.\n * An error is thrown if the credential is not a valid AWS credential.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n */\n constructor(options, additionalOptions) {\n var _a;\n super(options, additionalOptions);\n this.environmentId = options.credential_source.environment_id;\n // This is only required if the AWS region is not available in the\n // AWS_REGION or AWS_DEFAULT_REGION environment variables.\n this.regionUrl = options.credential_source.region_url;\n // This is only required if AWS security credentials are not available in\n // environment variables.\n this.securityCredentialsUrl = options.credential_source.url;\n this.regionalCredVerificationUrl =\n options.credential_source.regional_cred_verification_url;\n this.imdsV2SessionTokenUrl =\n options.credential_source.imdsv2_session_token_url;\n const match = (_a = this.environmentId) === null || _a === void 0 ? void 0 : _a.match(/^(aws)(\\d+)$/);\n if (!match || !this.regionalCredVerificationUrl) {\n throw new Error('No valid AWS \"credential_source\" provided');\n }\n else if (parseInt(match[2], 10) !== 1) {\n throw new Error(`aws version \"${match[2]}\" is not supported in the current build.`);\n }\n this.awsRequestSigner = null;\n this.region = '';\n }\n /**\n * Triggered when an external subject token is needed to be exchanged for a\n * GCP access token via GCP STS endpoint.\n * This uses the `options.credential_source` object to figure out how\n * to retrieve the token using the current environment. In this case,\n * this uses a serialized AWS signed request to the STS GetCallerIdentity\n * endpoint.\n * The logic is summarized as:\n * 1. If imdsv2_session_token_url is provided in the credential source, then\n * fetch the aws session token and include it in the headers of the\n * metadata requests. This is a requirement for IDMSv2 but optional\n * for IDMSv1.\n * 2. Retrieve AWS region from availability-zone.\n * 3a. Check AWS credentials in environment variables. If not found, get\n * from security-credentials endpoint.\n * 3b. Get AWS credentials from security-credentials endpoint. In order\n * to retrieve this, the AWS role needs to be determined by calling\n * security-credentials endpoint without any argument. Then the\n * credentials can be retrieved via: security-credentials/role_name\n * 4. Generate the signed request to AWS STS GetCallerIdentity action.\n * 5. Inject x-goog-cloud-target-resource into header and serialize the\n * signed request. This will be the subject-token to pass to GCP STS.\n * @return A promise that resolves with the external subject token.\n */\n async retrieveSubjectToken() {\n // Initialize AWS request signer if not already initialized.\n if (!this.awsRequestSigner) {\n const metadataHeaders = {};\n if (this.imdsV2SessionTokenUrl) {\n metadataHeaders['x-aws-ec2-metadata-token'] =\n await this.getImdsV2SessionToken();\n }\n this.region = await this.getAwsRegion(metadataHeaders);\n this.awsRequestSigner = new awsrequestsigner_1.AwsRequestSigner(async () => {\n // Check environment variables for permanent credentials first.\n // https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html\n if (process.env['AWS_ACCESS_KEY_ID'] &&\n process.env['AWS_SECRET_ACCESS_KEY']) {\n return {\n accessKeyId: process.env['AWS_ACCESS_KEY_ID'],\n secretAccessKey: process.env['AWS_SECRET_ACCESS_KEY'],\n // This is normally not available for permanent credentials.\n token: process.env['AWS_SESSION_TOKEN'],\n };\n }\n // Since the role on a VM can change, we don't need to cache it.\n const roleName = await this.getAwsRoleName(metadataHeaders);\n // Temporary credentials typically last for several hours.\n // Expiration is returned in response.\n // Consider future optimization of this logic to cache AWS tokens\n // until their natural expiration.\n const awsCreds = await this.getAwsSecurityCredentials(roleName, metadataHeaders);\n return {\n accessKeyId: awsCreds.AccessKeyId,\n secretAccessKey: awsCreds.SecretAccessKey,\n token: awsCreds.Token,\n };\n }, this.region);\n }\n // Generate signed request to AWS STS GetCallerIdentity API.\n // Use the required regional endpoint. Otherwise, the request will fail.\n const options = await this.awsRequestSigner.getRequestOptions({\n url: this.regionalCredVerificationUrl.replace('{region}', this.region),\n method: 'POST',\n });\n // The GCP STS endpoint expects the headers to be formatted as:\n // [\n // {key: 'x-amz-date', value: '...'},\n // {key: 'Authorization', value: '...'},\n // ...\n // ]\n // And then serialized as:\n // encodeURIComponent(JSON.stringify({\n // url: '...',\n // method: 'POST',\n // headers: [{key: 'x-amz-date', value: '...'}, ...]\n // }))\n const reformattedHeader = [];\n const extendedHeaders = Object.assign({\n // The full, canonical resource name of the workload identity pool\n // provider, with or without the HTTPS prefix.\n // Including this header as part of the signature is recommended to\n // ensure data integrity.\n 'x-goog-cloud-target-resource': this.audience,\n }, options.headers);\n // Reformat header to GCP STS expected format.\n for (const key in extendedHeaders) {\n reformattedHeader.push({\n key,\n value: extendedHeaders[key],\n });\n }\n // Serialize the reformatted signed request.\n return encodeURIComponent(JSON.stringify({\n url: options.url,\n method: options.method,\n headers: reformattedHeader,\n }));\n }\n /**\n * @return A promise that resolves with the IMDSv2 Session Token.\n */\n async getImdsV2SessionToken() {\n const opts = {\n url: this.imdsV2SessionTokenUrl,\n method: 'PUT',\n responseType: 'text',\n headers: { 'x-aws-ec2-metadata-token-ttl-seconds': '300' },\n };\n const response = await this.transporter.request(opts);\n return response.data;\n }\n /**\n * @param headers The headers to be used in the metadata request.\n * @return A promise that resolves with the current AWS region.\n */\n async getAwsRegion(headers) {\n // Priority order for region determination:\n // AWS_REGION > AWS_DEFAULT_REGION > metadata server.\n if (process.env['AWS_REGION'] || process.env['AWS_DEFAULT_REGION']) {\n return (process.env['AWS_REGION'] || process.env['AWS_DEFAULT_REGION']);\n }\n if (!this.regionUrl) {\n throw new Error('Unable to determine AWS region due to missing ' +\n '\"options.credential_source.region_url\"');\n }\n const opts = {\n url: this.regionUrl,\n method: 'GET',\n responseType: 'text',\n headers: headers,\n };\n const response = await this.transporter.request(opts);\n // Remove last character. For example, if us-east-2b is returned,\n // the region would be us-east-2.\n return response.data.substr(0, response.data.length - 1);\n }\n /**\n * @param headers The headers to be used in the metadata request.\n * @return A promise that resolves with the assigned role to the current\n * AWS VM. This is needed for calling the security-credentials endpoint.\n */\n async getAwsRoleName(headers) {\n if (!this.securityCredentialsUrl) {\n throw new Error('Unable to determine AWS role name due to missing ' +\n '\"options.credential_source.url\"');\n }\n const opts = {\n url: this.securityCredentialsUrl,\n method: 'GET',\n responseType: 'text',\n headers: headers,\n };\n const response = await this.transporter.request(opts);\n return response.data;\n }\n /**\n * Retrieves the temporary AWS credentials by calling the security-credentials\n * endpoint as specified in the `credential_source` object.\n * @param roleName The role attached to the current VM.\n * @param headers The headers to be used in the metadata request.\n * @return A promise that resolves with the temporary AWS credentials\n * needed for creating the GetCallerIdentity signed request.\n */\n async getAwsSecurityCredentials(roleName, headers) {\n const response = await this.transporter.request({\n url: `${this.securityCredentialsUrl}/${roleName}`,\n responseType: 'json',\n headers: headers,\n });\n return response.data;\n }\n}\nexports.AwsClient = AwsClient;\n//# sourceMappingURL=awsclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsRequestSigner = void 0;\nconst crypto_1 = require(\"../crypto/crypto\");\n/** AWS Signature Version 4 signing algorithm identifier. */\nconst AWS_ALGORITHM = 'AWS4-HMAC-SHA256';\n/**\n * The termination string for the AWS credential scope value as defined in\n * https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n */\nconst AWS_REQUEST_TYPE = 'aws4_request';\n/**\n * Implements an AWS API request signer based on the AWS Signature Version 4\n * signing process.\n * https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nclass AwsRequestSigner {\n /**\n * Instantiates an AWS API request signer used to send authenticated signed\n * requests to AWS APIs based on the AWS Signature Version 4 signing process.\n * This also provides a mechanism to generate the signed request without\n * sending it.\n * @param getCredentials A mechanism to retrieve AWS security credentials\n * when needed.\n * @param region The AWS region to use.\n */\n constructor(getCredentials, region) {\n this.getCredentials = getCredentials;\n this.region = region;\n this.crypto = crypto_1.createCrypto();\n }\n /**\n * Generates the signed request for the provided HTTP request for calling\n * an AWS API. This follows the steps described at:\n * https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html\n * @param amzOptions The AWS request options that need to be signed.\n * @return A promise that resolves with the GaxiosOptions containing the\n * signed HTTP request parameters.\n */\n async getRequestOptions(amzOptions) {\n if (!amzOptions.url) {\n throw new Error('\"url\" is required in \"amzOptions\"');\n }\n // Stringify JSON requests. This will be set in the request body of the\n // generated signed request.\n const requestPayloadData = typeof amzOptions.data === 'object'\n ? JSON.stringify(amzOptions.data)\n : amzOptions.data;\n const url = amzOptions.url;\n const method = amzOptions.method || 'GET';\n const requestPayload = amzOptions.body || requestPayloadData;\n const additionalAmzHeaders = amzOptions.headers;\n const awsSecurityCredentials = await this.getCredentials();\n const uri = new URL(url);\n const headerMap = await generateAuthenticationHeaderMap({\n crypto: this.crypto,\n host: uri.host,\n canonicalUri: uri.pathname,\n canonicalQuerystring: uri.search.substr(1),\n method,\n region: this.region,\n securityCredentials: awsSecurityCredentials,\n requestPayload,\n additionalAmzHeaders,\n });\n // Append additional optional headers, eg. X-Amz-Target, Content-Type, etc.\n const headers = Object.assign(\n // Add x-amz-date if available.\n headerMap.amzDate ? { 'x-amz-date': headerMap.amzDate } : {}, {\n Authorization: headerMap.authorizationHeader,\n host: uri.host,\n }, additionalAmzHeaders || {});\n if (awsSecurityCredentials.token) {\n Object.assign(headers, {\n 'x-amz-security-token': awsSecurityCredentials.token,\n });\n }\n const awsSignedReq = {\n url,\n method: method,\n headers,\n };\n if (typeof requestPayload !== 'undefined') {\n awsSignedReq.body = requestPayload;\n }\n return awsSignedReq;\n }\n}\nexports.AwsRequestSigner = AwsRequestSigner;\n/**\n * Creates the HMAC-SHA256 hash of the provided message using the\n * provided key.\n *\n * @param crypto The crypto instance used to facilitate cryptographic\n * operations.\n * @param key The HMAC-SHA256 key to use.\n * @param msg The message to hash.\n * @return The computed hash bytes.\n */\nasync function sign(crypto, key, msg) {\n return await crypto.signWithHmacSha256(key, msg);\n}\n/**\n * Calculates the signing key used to calculate the signature for\n * AWS Signature Version 4 based on:\n * https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param crypto The crypto instance used to facilitate cryptographic\n * operations.\n * @param key The AWS secret access key.\n * @param dateStamp The '%Y%m%d' date format.\n * @param region The AWS region.\n * @param serviceName The AWS service name, eg. sts.\n * @return The signing key bytes.\n */\nasync function getSigningKey(crypto, key, dateStamp, region, serviceName) {\n const kDate = await sign(crypto, `AWS4${key}`, dateStamp);\n const kRegion = await sign(crypto, kDate, region);\n const kService = await sign(crypto, kRegion, serviceName);\n const kSigning = await sign(crypto, kService, 'aws4_request');\n return kSigning;\n}\n/**\n * Generates the authentication header map needed for generating the AWS\n * Signature Version 4 signed request.\n *\n * @param option The options needed to compute the authentication header map.\n * @return The AWS authentication header map which constitutes of the following\n * components: amz-date, authorization header and canonical query string.\n */\nasync function generateAuthenticationHeaderMap(options) {\n const additionalAmzHeaders = options.additionalAmzHeaders || {};\n const requestPayload = options.requestPayload || '';\n // iam.amazonaws.com host => iam service.\n // sts.us-east-2.amazonaws.com => sts service.\n const serviceName = options.host.split('.')[0];\n const now = new Date();\n // Format: '%Y%m%dT%H%M%SZ'.\n const amzDate = now\n .toISOString()\n .replace(/[-:]/g, '')\n .replace(/\\.[0-9]+/, '');\n // Format: '%Y%m%d'.\n const dateStamp = now.toISOString().replace(/[-]/g, '').replace(/T.*/, '');\n // Change all additional headers to be lower case.\n const reformattedAdditionalAmzHeaders = {};\n Object.keys(additionalAmzHeaders).forEach(key => {\n reformattedAdditionalAmzHeaders[key.toLowerCase()] =\n additionalAmzHeaders[key];\n });\n // Add AWS token if available.\n if (options.securityCredentials.token) {\n reformattedAdditionalAmzHeaders['x-amz-security-token'] =\n options.securityCredentials.token;\n }\n // Header keys need to be sorted alphabetically.\n const amzHeaders = Object.assign({\n host: options.host,\n }, \n // Previously the date was not fixed with x-amz- and could be provided manually.\n // https://github.com/boto/botocore/blob/879f8440a4e9ace5d3cf145ce8b3d5e5ffb892ef/tests/unit/auth/aws4_testsuite/get-header-value-trim.req\n reformattedAdditionalAmzHeaders.date ? {} : { 'x-amz-date': amzDate }, reformattedAdditionalAmzHeaders);\n let canonicalHeaders = '';\n const signedHeadersList = Object.keys(amzHeaders).sort();\n signedHeadersList.forEach(key => {\n canonicalHeaders += `${key}:${amzHeaders[key]}\\n`;\n });\n const signedHeaders = signedHeadersList.join(';');\n const payloadHash = await options.crypto.sha256DigestHex(requestPayload);\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n const canonicalRequest = `${options.method}\\n` +\n `${options.canonicalUri}\\n` +\n `${options.canonicalQuerystring}\\n` +\n `${canonicalHeaders}\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`;\n const credentialScope = `${dateStamp}/${options.region}/${serviceName}/${AWS_REQUEST_TYPE}`;\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n const stringToSign = `${AWS_ALGORITHM}\\n` +\n `${amzDate}\\n` +\n `${credentialScope}\\n` +\n (await options.crypto.sha256DigestHex(canonicalRequest));\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n const signingKey = await getSigningKey(options.crypto, options.securityCredentials.secretAccessKey, dateStamp, options.region, serviceName);\n const signature = await sign(options.crypto, signingKey, stringToSign);\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n const authorizationHeader = `${AWS_ALGORITHM} Credential=${options.securityCredentials.accessKeyId}/` +\n `${credentialScope}, SignedHeaders=${signedHeaders}, ` +\n `Signature=${crypto_1.fromArrayBufferToHex(signature)}`;\n return {\n // Do not return x-amz-date if date is available.\n amzDate: reformattedAdditionalAmzHeaders.date ? undefined : amzDate,\n authorizationHeader,\n canonicalQuerystring: options.canonicalQuerystring,\n };\n}\n//# sourceMappingURL=awsrequestsigner.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseExternalAccountClient = exports.CLOUD_RESOURCE_MANAGER = exports.EXTERNAL_ACCOUNT_TYPE = exports.EXPIRATION_TIME_OFFSET = void 0;\nconst stream = require(\"stream\");\nconst authclient_1 = require(\"./authclient\");\nconst sts = require(\"./stscredentials\");\n/**\n * The required token exchange grant_type: rfc8693#section-2.1\n */\nconst STS_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchange';\n/**\n * The requested token exchange requested_token_type: rfc8693#section-2.1\n */\nconst STS_REQUEST_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token';\n/** The default OAuth scope to request when none is provided. */\nconst DEFAULT_OAUTH_SCOPE = 'https://www.googleapis.com/auth/cloud-platform';\n/** The google apis domain pattern. */\nconst GOOGLE_APIS_DOMAIN_PATTERN = '\\\\.googleapis\\\\.com$';\n/** The variable portion pattern in a Google APIs domain. */\nconst VARIABLE_PORTION_PATTERN = '[^\\\\.\\\\s\\\\/\\\\\\\\]+';\n/**\n * Offset to take into account network delays and server clock skews.\n */\nexports.EXPIRATION_TIME_OFFSET = 5 * 60 * 1000;\n/**\n * The credentials JSON file type for external account clients.\n * There are 3 types of JSON configs:\n * 1. authorized_user => Google end user credential\n * 2. service_account => Google service account credential\n * 3. external_Account => non-GCP service (eg. AWS, Azure, K8s)\n */\nexports.EXTERNAL_ACCOUNT_TYPE = 'external_account';\n/** Cloud resource manager URL used to retrieve project information. */\nexports.CLOUD_RESOURCE_MANAGER = 'https://cloudresourcemanager.googleapis.com/v1/projects/';\n/** The workforce audience pattern. */\nconst WORKFORCE_AUDIENCE_PATTERN = '//iam.googleapis.com/locations/[^/]+/workforcePools/[^/]+/providers/.+';\n/**\n * Base external account client. This is used to instantiate AuthClients for\n * exchanging external account credentials for GCP access token and authorizing\n * requests to GCP APIs.\n * The base class implements common logic for exchanging various type of\n * external credentials for GCP access token. The logic of determining and\n * retrieving the external credential based on the environment and\n * credential_source will be left for the subclasses.\n */\nclass BaseExternalAccountClient extends authclient_1.AuthClient {\n /**\n * Instantiate a BaseExternalAccountClient instance using the provided JSON\n * object loaded from an external account credentials file.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n */\n constructor(options, additionalOptions) {\n super();\n if (options.type !== exports.EXTERNAL_ACCOUNT_TYPE) {\n throw new Error(`Expected \"${exports.EXTERNAL_ACCOUNT_TYPE}\" type but ` +\n `received \"${options.type}\"`);\n }\n this.clientAuth = options.client_id\n ? {\n confidentialClientType: 'basic',\n clientId: options.client_id,\n clientSecret: options.client_secret,\n }\n : undefined;\n if (!this.validateGoogleAPIsUrl('sts', options.token_url)) {\n throw new Error(`\"${options.token_url}\" is not a valid token url.`);\n }\n this.stsCredential = new sts.StsCredentials(options.token_url, this.clientAuth);\n // Default OAuth scope. This could be overridden via public property.\n this.scopes = [DEFAULT_OAUTH_SCOPE];\n this.cachedAccessToken = null;\n this.audience = options.audience;\n this.subjectTokenType = options.subject_token_type;\n this.quotaProjectId = options.quota_project_id;\n this.workforcePoolUserProject = options.workforce_pool_user_project;\n const workforceAudiencePattern = new RegExp(WORKFORCE_AUDIENCE_PATTERN);\n if (this.workforcePoolUserProject &&\n !this.audience.match(workforceAudiencePattern)) {\n throw new Error('workforcePoolUserProject should not be set for non-workforce pool ' +\n 'credentials.');\n }\n if (typeof options.service_account_impersonation_url !== 'undefined' &&\n !this.validateGoogleAPIsUrl('iamcredentials', options.service_account_impersonation_url)) {\n throw new Error(`\"${options.service_account_impersonation_url}\" is ` +\n 'not a valid service account impersonation url.');\n }\n this.serviceAccountImpersonationUrl =\n options.service_account_impersonation_url;\n // As threshold could be zero,\n // eagerRefreshThresholdMillis || EXPIRATION_TIME_OFFSET will override the\n // zero value.\n if (typeof (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.eagerRefreshThresholdMillis) !== 'number') {\n this.eagerRefreshThresholdMillis = exports.EXPIRATION_TIME_OFFSET;\n }\n else {\n this.eagerRefreshThresholdMillis = additionalOptions\n .eagerRefreshThresholdMillis;\n }\n this.forceRefreshOnFailure = !!(additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.forceRefreshOnFailure);\n this.projectId = null;\n this.projectNumber = this.getProjectNumber(this.audience);\n }\n /** The service account email to be impersonated, if available. */\n getServiceAccountEmail() {\n var _a;\n if (this.serviceAccountImpersonationUrl) {\n // Parse email from URL. The formal looks as follows:\n // https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/name@project-id.iam.gserviceaccount.com:generateAccessToken\n const re = /serviceAccounts\\/(?[^:]+):generateAccessToken$/;\n const result = re.exec(this.serviceAccountImpersonationUrl);\n return ((_a = result === null || result === void 0 ? void 0 : result.groups) === null || _a === void 0 ? void 0 : _a.email) || null;\n }\n return null;\n }\n /**\n * Provides a mechanism to inject GCP access tokens directly.\n * When the provided credential expires, a new credential, using the\n * external account options, is retrieved.\n * @param credentials The Credentials object to set on the current client.\n */\n setCredentials(credentials) {\n super.setCredentials(credentials);\n this.cachedAccessToken = credentials;\n }\n /**\n * @return A promise that resolves with the current GCP access token\n * response. If the current credential is expired, a new one is retrieved.\n */\n async getAccessToken() {\n // If cached access token is unavailable or expired, force refresh.\n if (!this.cachedAccessToken || this.isExpired(this.cachedAccessToken)) {\n await this.refreshAccessTokenAsync();\n }\n // Return GCP access token in GetAccessTokenResponse format.\n return {\n token: this.cachedAccessToken.access_token,\n res: this.cachedAccessToken.res,\n };\n }\n /**\n * The main authentication interface. It takes an optional url which when\n * present is the endpoint being accessed, and returns a Promise which\n * resolves with authorization header fields.\n *\n * The result has the form:\n * { Authorization: 'Bearer ' }\n */\n async getRequestHeaders() {\n const accessTokenResponse = await this.getAccessToken();\n const headers = {\n Authorization: `Bearer ${accessTokenResponse.token}`,\n };\n return this.addSharedMetadataHeaders(headers);\n }\n request(opts, callback) {\n if (callback) {\n this.requestAsync(opts).then(r => callback(null, r), e => {\n return callback(e, e.response);\n });\n }\n else {\n return this.requestAsync(opts);\n }\n }\n /**\n * @return A promise that resolves with the project ID corresponding to the\n * current workload identity pool or current workforce pool if\n * determinable. For workforce pool credential, it returns the project ID\n * corresponding to the workforcePoolUserProject.\n * This is introduced to match the current pattern of using the Auth\n * library:\n * const projectId = await auth.getProjectId();\n * const url = `https://dns.googleapis.com/dns/v1/projects/${projectId}`;\n * const res = await client.request({ url });\n * The resource may not have permission\n * (resourcemanager.projects.get) to call this API or the required\n * scopes may not be selected:\n * https://cloud.google.com/resource-manager/reference/rest/v1/projects/get#authorization-scopes\n */\n async getProjectId() {\n const projectNumber = this.projectNumber || this.workforcePoolUserProject;\n if (this.projectId) {\n // Return previously determined project ID.\n return this.projectId;\n }\n else if (projectNumber) {\n // Preferable not to use request() to avoid retrial policies.\n const headers = await this.getRequestHeaders();\n const response = await this.transporter.request({\n headers,\n url: `${exports.CLOUD_RESOURCE_MANAGER}${projectNumber}`,\n responseType: 'json',\n });\n this.projectId = response.data.projectId;\n return this.projectId;\n }\n return null;\n }\n /**\n * Authenticates the provided HTTP request, processes it and resolves with the\n * returned response.\n * @param opts The HTTP request options.\n * @param retry Whether the current attempt is a retry after a failed attempt.\n * @return A promise that resolves with the successful response.\n */\n async requestAsync(opts, retry = false) {\n let response;\n try {\n const requestHeaders = await this.getRequestHeaders();\n opts.headers = opts.headers || {};\n if (requestHeaders && requestHeaders['x-goog-user-project']) {\n opts.headers['x-goog-user-project'] =\n requestHeaders['x-goog-user-project'];\n }\n if (requestHeaders && requestHeaders.Authorization) {\n opts.headers.Authorization = requestHeaders.Authorization;\n }\n response = await this.transporter.request(opts);\n }\n catch (e) {\n const res = e.response;\n if (res) {\n const statusCode = res.status;\n // Retry the request for metadata if the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - forceRefreshOnFailure is true\n const isReadableStream = res.config.data instanceof stream.Readable;\n const isAuthErr = statusCode === 401 || statusCode === 403;\n if (!retry &&\n isAuthErr &&\n !isReadableStream &&\n this.forceRefreshOnFailure) {\n await this.refreshAccessTokenAsync();\n return await this.requestAsync(opts, true);\n }\n }\n throw e;\n }\n return response;\n }\n /**\n * Forces token refresh, even if unexpired tokens are currently cached.\n * External credentials are exchanged for GCP access tokens via the token\n * exchange endpoint and other settings provided in the client options\n * object.\n * If the service_account_impersonation_url is provided, an additional\n * step to exchange the external account GCP access token for a service\n * account impersonated token is performed.\n * @return A promise that resolves with the fresh GCP access tokens.\n */\n async refreshAccessTokenAsync() {\n // Retrieve the external credential.\n const subjectToken = await this.retrieveSubjectToken();\n // Construct the STS credentials options.\n const stsCredentialsOptions = {\n grantType: STS_GRANT_TYPE,\n audience: this.audience,\n requestedTokenType: STS_REQUEST_TOKEN_TYPE,\n subjectToken,\n subjectTokenType: this.subjectTokenType,\n // generateAccessToken requires the provided access token to have\n // scopes:\n // https://www.googleapis.com/auth/iam or\n // https://www.googleapis.com/auth/cloud-platform\n // The new service account access token scopes will match the user\n // provided ones.\n scope: this.serviceAccountImpersonationUrl\n ? [DEFAULT_OAUTH_SCOPE]\n : this.getScopesArray(),\n };\n // Exchange the external credentials for a GCP access token.\n // Client auth is prioritized over passing the workforcePoolUserProject\n // parameter for STS token exchange.\n const additionalOptions = !this.clientAuth && this.workforcePoolUserProject\n ? { userProject: this.workforcePoolUserProject }\n : undefined;\n const stsResponse = await this.stsCredential.exchangeToken(stsCredentialsOptions, undefined, additionalOptions);\n if (this.serviceAccountImpersonationUrl) {\n this.cachedAccessToken = await this.getImpersonatedAccessToken(stsResponse.access_token);\n }\n else if (stsResponse.expires_in) {\n // Save response in cached access token.\n this.cachedAccessToken = {\n access_token: stsResponse.access_token,\n expiry_date: new Date().getTime() + stsResponse.expires_in * 1000,\n res: stsResponse.res,\n };\n }\n else {\n // Save response in cached access token.\n this.cachedAccessToken = {\n access_token: stsResponse.access_token,\n res: stsResponse.res,\n };\n }\n // Save credentials.\n this.credentials = {};\n Object.assign(this.credentials, this.cachedAccessToken);\n delete this.credentials.res;\n // Trigger tokens event to notify external listeners.\n this.emit('tokens', {\n refresh_token: null,\n expiry_date: this.cachedAccessToken.expiry_date,\n access_token: this.cachedAccessToken.access_token,\n token_type: 'Bearer',\n id_token: null,\n });\n // Return the cached access token.\n return this.cachedAccessToken;\n }\n /**\n * Returns the workload identity pool project number if it is determinable\n * from the audience resource name.\n * @param audience The STS audience used to determine the project number.\n * @return The project number associated with the workload identity pool, if\n * this can be determined from the STS audience field. Otherwise, null is\n * returned.\n */\n getProjectNumber(audience) {\n // STS audience pattern:\n // //iam.googleapis.com/projects/$PROJECT_NUMBER/locations/...\n const match = audience.match(/\\/projects\\/([^/]+)/);\n if (!match) {\n return null;\n }\n return match[1];\n }\n /**\n * Exchanges an external account GCP access token for a service\n * account impersonated access token using iamcredentials\n * GenerateAccessToken API.\n * @param token The access token to exchange for a service account access\n * token.\n * @return A promise that resolves with the service account impersonated\n * credentials response.\n */\n async getImpersonatedAccessToken(token) {\n const opts = {\n url: this.serviceAccountImpersonationUrl,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n data: {\n scope: this.getScopesArray(),\n },\n responseType: 'json',\n };\n const response = await this.transporter.request(opts);\n const successResponse = response.data;\n return {\n access_token: successResponse.accessToken,\n // Convert from ISO format to timestamp.\n expiry_date: new Date(successResponse.expireTime).getTime(),\n res: response,\n };\n }\n /**\n * Returns whether the provided credentials are expired or not.\n * If there is no expiry time, assumes the token is not expired or expiring.\n * @param accessToken The credentials to check for expiration.\n * @return Whether the credentials are expired or not.\n */\n isExpired(accessToken) {\n const now = new Date().getTime();\n return accessToken.expiry_date\n ? now >= accessToken.expiry_date - this.eagerRefreshThresholdMillis\n : false;\n }\n /**\n * @return The list of scopes for the requested GCP access token.\n */\n getScopesArray() {\n // Since scopes can be provided as string or array, the type should\n // be normalized.\n if (typeof this.scopes === 'string') {\n return [this.scopes];\n }\n else if (typeof this.scopes === 'undefined') {\n return [DEFAULT_OAUTH_SCOPE];\n }\n else {\n return this.scopes;\n }\n }\n /**\n * Checks whether Google APIs URL is valid.\n * @param apiName The apiName of url.\n * @param url The Google API URL to validate.\n * @return Whether the URL is valid or not.\n */\n validateGoogleAPIsUrl(apiName, url) {\n let parsedUrl;\n // Return false if error is thrown during parsing URL.\n try {\n parsedUrl = new URL(url);\n }\n catch (e) {\n return false;\n }\n const urlDomain = parsedUrl.hostname;\n // Check the protocol is https.\n if (parsedUrl.protocol !== 'https:') {\n return false;\n }\n const googleAPIsDomainPatterns = [\n new RegExp('^' +\n VARIABLE_PORTION_PATTERN +\n '\\\\.' +\n apiName +\n GOOGLE_APIS_DOMAIN_PATTERN),\n new RegExp('^' + apiName + GOOGLE_APIS_DOMAIN_PATTERN),\n new RegExp('^' +\n apiName +\n '\\\\.' +\n VARIABLE_PORTION_PATTERN +\n GOOGLE_APIS_DOMAIN_PATTERN),\n new RegExp('^' +\n VARIABLE_PORTION_PATTERN +\n '\\\\-' +\n apiName +\n GOOGLE_APIS_DOMAIN_PATTERN),\n ];\n for (const googleAPIsDomainPattern of googleAPIsDomainPatterns) {\n if (urlDomain.match(googleAPIsDomainPattern)) {\n return true;\n }\n }\n return false;\n }\n}\nexports.BaseExternalAccountClient = BaseExternalAccountClient;\n//# sourceMappingURL=baseexternalclient.js.map","\"use strict\";\n// Copyright 2013 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Compute = void 0;\nconst arrify = require(\"arrify\");\nconst gcpMetadata = require(\"gcp-metadata\");\nconst oauth2client_1 = require(\"./oauth2client\");\nclass Compute extends oauth2client_1.OAuth2Client {\n /**\n * Google Compute Engine service account credentials.\n *\n * Retrieve access token from the metadata server.\n * See: https://developers.google.com/compute/docs/authentication\n */\n constructor(options = {}) {\n super(options);\n // Start with an expired refresh token, which will automatically be\n // refreshed before the first API call is made.\n this.credentials = { expiry_date: 1, refresh_token: 'compute-placeholder' };\n this.serviceAccountEmail = options.serviceAccountEmail || 'default';\n this.scopes = arrify(options.scopes);\n }\n /**\n * Refreshes the access token.\n * @param refreshToken Unused parameter\n */\n async refreshTokenNoCache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refreshToken) {\n const tokenPath = `service-accounts/${this.serviceAccountEmail}/token`;\n let data;\n try {\n const instanceOptions = {\n property: tokenPath,\n };\n if (this.scopes.length > 0) {\n instanceOptions.params = {\n scopes: this.scopes.join(','),\n };\n }\n data = await gcpMetadata.instance(instanceOptions);\n }\n catch (e) {\n e.message = `Could not refresh access token: ${e.message}`;\n this.wrapError(e);\n throw e;\n }\n const tokens = data;\n if (data && data.expires_in) {\n tokens.expiry_date = new Date().getTime() + data.expires_in * 1000;\n delete tokens.expires_in;\n }\n this.emit('tokens', tokens);\n return { tokens, res: null };\n }\n /**\n * Fetches an ID token.\n * @param targetAudience the audience for the fetched ID token.\n */\n async fetchIdToken(targetAudience) {\n const idTokenPath = `service-accounts/${this.serviceAccountEmail}/identity` +\n `?format=full&audience=${targetAudience}`;\n let idToken;\n try {\n const instanceOptions = {\n property: idTokenPath,\n };\n idToken = await gcpMetadata.instance(instanceOptions);\n }\n catch (e) {\n e.message = `Could not fetch ID token: ${e.message}`;\n throw e;\n }\n return idToken;\n }\n wrapError(e) {\n const res = e.response;\n if (res && res.status) {\n e.code = res.status.toString();\n if (res.status === 403) {\n e.message =\n 'A Forbidden error was returned while attempting to retrieve an access ' +\n 'token for the Compute Engine built-in service account. This may be because the Compute ' +\n 'Engine instance does not have the correct permission scopes specified: ' +\n e.message;\n }\n else if (res.status === 404) {\n e.message =\n 'A Not Found error was returned while attempting to retrieve an access' +\n 'token for the Compute Engine built-in service account. This may be because the Compute ' +\n 'Engine instance does not have any permission scopes specified: ' +\n e.message;\n }\n }\n }\n}\nexports.Compute = Compute;\n//# sourceMappingURL=computeclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DownscopedClient = exports.EXPIRATION_TIME_OFFSET = exports.MAX_ACCESS_BOUNDARY_RULES_COUNT = void 0;\nconst stream = require(\"stream\");\nconst authclient_1 = require(\"./authclient\");\nconst sts = require(\"./stscredentials\");\n/**\n * The required token exchange grant_type: rfc8693#section-2.1\n */\nconst STS_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchange';\n/**\n * The requested token exchange requested_token_type: rfc8693#section-2.1\n */\nconst STS_REQUEST_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token';\n/**\n * The requested token exchange subject_token_type: rfc8693#section-2.1\n */\nconst STS_SUBJECT_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token';\n/** The STS access token exchange end point. */\nconst STS_ACCESS_TOKEN_URL = 'https://sts.googleapis.com/v1/token';\n/**\n * The maximum number of access boundary rules a Credential Access Boundary\n * can contain.\n */\nexports.MAX_ACCESS_BOUNDARY_RULES_COUNT = 10;\n/**\n * Offset to take into account network delays and server clock skews.\n */\nexports.EXPIRATION_TIME_OFFSET = 5 * 60 * 1000;\n/**\n * Defines a set of Google credentials that are downscoped from an existing set\n * of Google OAuth2 credentials. This is useful to restrict the Identity and\n * Access Management (IAM) permissions that a short-lived credential can use.\n * The common pattern of usage is to have a token broker with elevated access\n * generate these downscoped credentials from higher access source credentials\n * and pass the downscoped short-lived access tokens to a token consumer via\n * some secure authenticated channel for limited access to Google Cloud Storage\n * resources.\n */\nclass DownscopedClient extends authclient_1.AuthClient {\n /**\n * Instantiates a downscoped client object using the provided source\n * AuthClient and credential access boundary rules.\n * To downscope permissions of a source AuthClient, a Credential Access\n * Boundary that specifies which resources the new credential can access, as\n * well as an upper bound on the permissions that are available on each\n * resource, has to be defined. A downscoped client can then be instantiated\n * using the source AuthClient and the Credential Access Boundary.\n * @param authClient The source AuthClient to be downscoped based on the\n * provided Credential Access Boundary rules.\n * @param credentialAccessBoundary The Credential Access Boundary which\n * contains a list of access boundary rules. Each rule contains information\n * on the resource that the rule applies to, the upper bound of the\n * permissions that are available on that resource and an optional\n * condition to further restrict permissions.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n * @param quotaProjectId Optional quota project id for setting up in the\n * x-goog-user-project header.\n */\n constructor(authClient, credentialAccessBoundary, additionalOptions, quotaProjectId) {\n super();\n this.authClient = authClient;\n this.credentialAccessBoundary = credentialAccessBoundary;\n // Check 1-10 Access Boundary Rules are defined within Credential Access\n // Boundary.\n if (credentialAccessBoundary.accessBoundary.accessBoundaryRules.length === 0) {\n throw new Error('At least one access boundary rule needs to be defined.');\n }\n else if (credentialAccessBoundary.accessBoundary.accessBoundaryRules.length >\n exports.MAX_ACCESS_BOUNDARY_RULES_COUNT) {\n throw new Error('The provided access boundary has more than ' +\n `${exports.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);\n }\n // Check at least one permission should be defined in each Access Boundary\n // Rule.\n for (const rule of credentialAccessBoundary.accessBoundary\n .accessBoundaryRules) {\n if (rule.availablePermissions.length === 0) {\n throw new Error('At least one permission should be defined in access boundary rules.');\n }\n }\n this.stsCredential = new sts.StsCredentials(STS_ACCESS_TOKEN_URL);\n this.cachedDownscopedAccessToken = null;\n // As threshold could be zero,\n // eagerRefreshThresholdMillis || EXPIRATION_TIME_OFFSET will override the\n // zero value.\n if (typeof (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.eagerRefreshThresholdMillis) !== 'number') {\n this.eagerRefreshThresholdMillis = exports.EXPIRATION_TIME_OFFSET;\n }\n else {\n this.eagerRefreshThresholdMillis = additionalOptions\n .eagerRefreshThresholdMillis;\n }\n this.forceRefreshOnFailure = !!(additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.forceRefreshOnFailure);\n this.quotaProjectId = quotaProjectId;\n }\n /**\n * Provides a mechanism to inject Downscoped access tokens directly.\n * The expiry_date field is required to facilitate determination of the token\n * expiration which would make it easier for the token consumer to handle.\n * @param credentials The Credentials object to set on the current client.\n */\n setCredentials(credentials) {\n if (!credentials.expiry_date) {\n throw new Error('The access token expiry_date field is missing in the provided ' +\n 'credentials.');\n }\n super.setCredentials(credentials);\n this.cachedDownscopedAccessToken = credentials;\n }\n async getAccessToken() {\n // If the cached access token is unavailable or expired, force refresh.\n // The Downscoped access token will be returned in\n // DownscopedAccessTokenResponse format.\n if (!this.cachedDownscopedAccessToken ||\n this.isExpired(this.cachedDownscopedAccessToken)) {\n await this.refreshAccessTokenAsync();\n }\n // Return Downscoped access token in DownscopedAccessTokenResponse format.\n return {\n token: this.cachedDownscopedAccessToken.access_token,\n expirationTime: this.cachedDownscopedAccessToken.expiry_date,\n res: this.cachedDownscopedAccessToken.res,\n };\n }\n /**\n * The main authentication interface. It takes an optional url which when\n * present is the endpoint being accessed, and returns a Promise which\n * resolves with authorization header fields.\n *\n * The result has the form:\n * { Authorization: 'Bearer ' }\n */\n async getRequestHeaders() {\n const accessTokenResponse = await this.getAccessToken();\n const headers = {\n Authorization: `Bearer ${accessTokenResponse.token}`,\n };\n return this.addSharedMetadataHeaders(headers);\n }\n request(opts, callback) {\n if (callback) {\n this.requestAsync(opts).then(r => callback(null, r), e => {\n return callback(e, e.response);\n });\n }\n else {\n return this.requestAsync(opts);\n }\n }\n /**\n * Authenticates the provided HTTP request, processes it and resolves with the\n * returned response.\n * @param opts The HTTP request options.\n * @param retry Whether the current attempt is a retry after a failed attempt.\n * @return A promise that resolves with the successful response.\n */\n async requestAsync(opts, retry = false) {\n let response;\n try {\n const requestHeaders = await this.getRequestHeaders();\n opts.headers = opts.headers || {};\n if (requestHeaders && requestHeaders['x-goog-user-project']) {\n opts.headers['x-goog-user-project'] =\n requestHeaders['x-goog-user-project'];\n }\n if (requestHeaders && requestHeaders.Authorization) {\n opts.headers.Authorization = requestHeaders.Authorization;\n }\n response = await this.transporter.request(opts);\n }\n catch (e) {\n const res = e.response;\n if (res) {\n const statusCode = res.status;\n // Retry the request for metadata if the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - forceRefreshOnFailure is true\n const isReadableStream = res.config.data instanceof stream.Readable;\n const isAuthErr = statusCode === 401 || statusCode === 403;\n if (!retry &&\n isAuthErr &&\n !isReadableStream &&\n this.forceRefreshOnFailure) {\n await this.refreshAccessTokenAsync();\n return await this.requestAsync(opts, true);\n }\n }\n throw e;\n }\n return response;\n }\n /**\n * Forces token refresh, even if unexpired tokens are currently cached.\n * GCP access tokens are retrieved from authclient object/source credential.\n * Then GCP access tokens are exchanged for downscoped access tokens via the\n * token exchange endpoint.\n * @return A promise that resolves with the fresh downscoped access token.\n */\n async refreshAccessTokenAsync() {\n var _a;\n // Retrieve GCP access token from source credential.\n const subjectToken = (await this.authClient.getAccessToken()).token;\n // Construct the STS credentials options.\n const stsCredentialsOptions = {\n grantType: STS_GRANT_TYPE,\n requestedTokenType: STS_REQUEST_TOKEN_TYPE,\n subjectToken: subjectToken,\n subjectTokenType: STS_SUBJECT_TOKEN_TYPE,\n };\n // Exchange the source AuthClient access token for a Downscoped access\n // token.\n const stsResponse = await this.stsCredential.exchangeToken(stsCredentialsOptions, undefined, this.credentialAccessBoundary);\n /**\n * The STS endpoint will only return the expiration time for the downscoped\n * access token if the original access token represents a service account.\n * The downscoped token's expiration time will always match the source\n * credential expiration. When no expires_in is returned, we can copy the\n * source credential's expiration time.\n */\n const sourceCredExpireDate = ((_a = this.authClient.credentials) === null || _a === void 0 ? void 0 : _a.expiry_date) || null;\n const expiryDate = stsResponse.expires_in\n ? new Date().getTime() + stsResponse.expires_in * 1000\n : sourceCredExpireDate;\n // Save response in cached access token.\n this.cachedDownscopedAccessToken = {\n access_token: stsResponse.access_token,\n expiry_date: expiryDate,\n res: stsResponse.res,\n };\n // Save credentials.\n this.credentials = {};\n Object.assign(this.credentials, this.cachedDownscopedAccessToken);\n delete this.credentials.res;\n // Trigger tokens event to notify external listeners.\n this.emit('tokens', {\n refresh_token: null,\n expiry_date: this.cachedDownscopedAccessToken.expiry_date,\n access_token: this.cachedDownscopedAccessToken.access_token,\n token_type: 'Bearer',\n id_token: null,\n });\n // Return the cached access token.\n return this.cachedDownscopedAccessToken;\n }\n /**\n * Returns whether the provided credentials are expired or not.\n * If there is no expiry time, assumes the token is not expired or expiring.\n * @param downscopedAccessToken The credentials to check for expiration.\n * @return Whether the credentials are expired or not.\n */\n isExpired(downscopedAccessToken) {\n const now = new Date().getTime();\n return downscopedAccessToken.expiry_date\n ? now >=\n downscopedAccessToken.expiry_date - this.eagerRefreshThresholdMillis\n : false;\n }\n}\nexports.DownscopedClient = DownscopedClient;\n//# sourceMappingURL=downscopedclient.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEnv = exports.clear = exports.GCPEnv = void 0;\nconst gcpMetadata = require(\"gcp-metadata\");\nvar GCPEnv;\n(function (GCPEnv) {\n GCPEnv[\"APP_ENGINE\"] = \"APP_ENGINE\";\n GCPEnv[\"KUBERNETES_ENGINE\"] = \"KUBERNETES_ENGINE\";\n GCPEnv[\"CLOUD_FUNCTIONS\"] = \"CLOUD_FUNCTIONS\";\n GCPEnv[\"COMPUTE_ENGINE\"] = \"COMPUTE_ENGINE\";\n GCPEnv[\"CLOUD_RUN\"] = \"CLOUD_RUN\";\n GCPEnv[\"NONE\"] = \"NONE\";\n})(GCPEnv = exports.GCPEnv || (exports.GCPEnv = {}));\nlet envPromise;\nfunction clear() {\n envPromise = undefined;\n}\nexports.clear = clear;\nasync function getEnv() {\n if (envPromise) {\n return envPromise;\n }\n envPromise = getEnvMemoized();\n return envPromise;\n}\nexports.getEnv = getEnv;\nasync function getEnvMemoized() {\n let env = GCPEnv.NONE;\n if (isAppEngine()) {\n env = GCPEnv.APP_ENGINE;\n }\n else if (isCloudFunction()) {\n env = GCPEnv.CLOUD_FUNCTIONS;\n }\n else if (await isComputeEngine()) {\n if (await isKubernetesEngine()) {\n env = GCPEnv.KUBERNETES_ENGINE;\n }\n else if (isCloudRun()) {\n env = GCPEnv.CLOUD_RUN;\n }\n else {\n env = GCPEnv.COMPUTE_ENGINE;\n }\n }\n else {\n env = GCPEnv.NONE;\n }\n return env;\n}\nfunction isAppEngine() {\n return !!(process.env.GAE_SERVICE || process.env.GAE_MODULE_NAME);\n}\nfunction isCloudFunction() {\n return !!(process.env.FUNCTION_NAME || process.env.FUNCTION_TARGET);\n}\n/**\n * This check only verifies that the environment is running knative.\n * This must be run *after* checking for Kubernetes, otherwise it will\n * return a false positive.\n */\nfunction isCloudRun() {\n return !!process.env.K_CONFIGURATION;\n}\nasync function isKubernetesEngine() {\n try {\n await gcpMetadata.instance('attributes/cluster-name');\n return true;\n }\n catch (e) {\n return false;\n }\n}\nasync function isComputeEngine() {\n return gcpMetadata.isAvailable();\n}\n//# sourceMappingURL=envDetect.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExternalAccountClient = void 0;\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\nconst identitypoolclient_1 = require(\"./identitypoolclient\");\nconst awsclient_1 = require(\"./awsclient\");\n/**\n * Dummy class with no constructor. Developers are expected to use fromJSON.\n */\nclass ExternalAccountClient {\n constructor() {\n throw new Error('ExternalAccountClients should be initialized via: ' +\n 'ExternalAccountClient.fromJSON(), ' +\n 'directly via explicit constructors, eg. ' +\n 'new AwsClient(options), new IdentityPoolClient(options) or via ' +\n 'new GoogleAuth(options).getClient()');\n }\n /**\n * This static method will instantiate the\n * corresponding type of external account credential depending on the\n * underlying credential source.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n * @return A BaseExternalAccountClient instance or null if the options\n * provided do not correspond to an external account credential.\n */\n static fromJSON(options, additionalOptions) {\n var _a;\n if (options && options.type === baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n if ((_a = options.credential_source) === null || _a === void 0 ? void 0 : _a.environment_id) {\n return new awsclient_1.AwsClient(options, additionalOptions);\n }\n else {\n return new identitypoolclient_1.IdentityPoolClient(options, additionalOptions);\n }\n }\n else {\n return null;\n }\n }\n}\nexports.ExternalAccountClient = ExternalAccountClient;\n//# sourceMappingURL=externalclient.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GoogleAuth = exports.CLOUD_SDK_CLIENT_ID = void 0;\nconst child_process_1 = require(\"child_process\");\nconst fs = require(\"fs\");\nconst gcpMetadata = require(\"gcp-metadata\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst crypto_1 = require(\"../crypto/crypto\");\nconst transporters_1 = require(\"../transporters\");\nconst computeclient_1 = require(\"./computeclient\");\nconst idtokenclient_1 = require(\"./idtokenclient\");\nconst envDetect_1 = require(\"./envDetect\");\nconst jwtclient_1 = require(\"./jwtclient\");\nconst refreshclient_1 = require(\"./refreshclient\");\nconst externalclient_1 = require(\"./externalclient\");\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\nexports.CLOUD_SDK_CLIENT_ID = '764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com';\nclass GoogleAuth {\n constructor(opts) {\n /**\n * Caches a value indicating whether the auth layer is running on Google\n * Compute Engine.\n * @private\n */\n this.checkIsGCE = undefined;\n // To save the contents of the JSON credential file\n this.jsonContent = null;\n this.cachedCredential = null;\n opts = opts || {};\n this._cachedProjectId = opts.projectId || null;\n this.cachedCredential = opts.authClient || null;\n this.keyFilename = opts.keyFilename || opts.keyFile;\n this.scopes = opts.scopes;\n this.jsonContent = opts.credentials || null;\n this.clientOptions = opts.clientOptions;\n }\n // Note: this properly is only public to satisify unit tests.\n // https://github.com/Microsoft/TypeScript/issues/5228\n get isGCE() {\n return this.checkIsGCE;\n }\n // GAPIC client libraries should always use self-signed JWTs. The following\n // variables are set on the JWT client in order to indicate the type of library,\n // and sign the JWT with the correct audience and scopes (if not supplied).\n setGapicJWTValues(client) {\n client.defaultServicePath = this.defaultServicePath;\n client.useJWTAccessWithScope = this.useJWTAccessWithScope;\n client.defaultScopes = this.defaultScopes;\n }\n getProjectId(callback) {\n if (callback) {\n this.getProjectIdAsync().then(r => callback(null, r), callback);\n }\n else {\n return this.getProjectIdAsync();\n }\n }\n getProjectIdAsync() {\n if (this._cachedProjectId) {\n return Promise.resolve(this._cachedProjectId);\n }\n // In implicit case, supports three environments. In order of precedence,\n // the implicit environments are:\n // - GCLOUD_PROJECT or GOOGLE_CLOUD_PROJECT environment variable\n // - GOOGLE_APPLICATION_CREDENTIALS JSON file\n // - Cloud SDK: `gcloud config config-helper --format json`\n // - GCE project ID from metadata server)\n if (!this._getDefaultProjectIdPromise) {\n // TODO: refactor the below code so that it doesn't mix and match\n // promises and async/await.\n this._getDefaultProjectIdPromise = new Promise(\n // eslint-disable-next-line no-async-promise-executor\n async (resolve, reject) => {\n try {\n const projectId = this.getProductionProjectId() ||\n (await this.getFileProjectId()) ||\n (await this.getDefaultServiceProjectId()) ||\n (await this.getGCEProjectId()) ||\n (await this.getExternalAccountClientProjectId());\n this._cachedProjectId = projectId;\n if (!projectId) {\n throw new Error('Unable to detect a Project Id in the current environment. \\n' +\n 'To learn more about authentication and Google APIs, visit: \\n' +\n 'https://cloud.google.com/docs/authentication/getting-started');\n }\n resolve(projectId);\n }\n catch (e) {\n reject(e);\n }\n });\n }\n return this._getDefaultProjectIdPromise;\n }\n /**\n * @returns Any scopes (user-specified or default scopes specified by the\n * client library) that need to be set on the current Auth client.\n */\n getAnyScopes() {\n return this.scopes || this.defaultScopes;\n }\n getApplicationDefault(optionsOrCallback = {}, callback) {\n let options;\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else {\n options = optionsOrCallback;\n }\n if (callback) {\n this.getApplicationDefaultAsync(options).then(r => callback(null, r.credential, r.projectId), callback);\n }\n else {\n return this.getApplicationDefaultAsync(options);\n }\n }\n async getApplicationDefaultAsync(options = {}) {\n // If we've already got a cached credential, just return it.\n if (this.cachedCredential) {\n return {\n credential: this.cachedCredential,\n projectId: await this.getProjectIdAsync(),\n };\n }\n let credential;\n let projectId;\n // Check for the existence of a local environment variable pointing to the\n // location of the credential file. This is typically used in local\n // developer scenarios.\n credential =\n await this._tryGetApplicationCredentialsFromEnvironmentVariable(options);\n if (credential) {\n if (credential instanceof jwtclient_1.JWT) {\n credential.scopes = this.scopes;\n }\n else if (credential instanceof baseexternalclient_1.BaseExternalAccountClient) {\n credential.scopes = this.getAnyScopes();\n }\n this.cachedCredential = credential;\n projectId = await this.getProjectId();\n return { credential, projectId };\n }\n // Look in the well-known credential file location.\n credential = await this._tryGetApplicationCredentialsFromWellKnownFile(options);\n if (credential) {\n if (credential instanceof jwtclient_1.JWT) {\n credential.scopes = this.scopes;\n }\n else if (credential instanceof baseexternalclient_1.BaseExternalAccountClient) {\n credential.scopes = this.getAnyScopes();\n }\n this.cachedCredential = credential;\n projectId = await this.getProjectId();\n return { credential, projectId };\n }\n // Determine if we're running on GCE.\n let isGCE;\n try {\n isGCE = await this._checkIsGCE();\n }\n catch (e) {\n if (e instanceof Error) {\n e.message = `Unexpected error determining execution environment: ${e.message}`;\n }\n throw e;\n }\n if (!isGCE) {\n // We failed to find the default credentials. Bail out with an error.\n throw new Error('Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.');\n }\n // For GCE, just return a default ComputeClient. It will take care of\n // the rest.\n options.scopes = this.getAnyScopes();\n this.cachedCredential = new computeclient_1.Compute(options);\n projectId = await this.getProjectId();\n return { projectId, credential: this.cachedCredential };\n }\n /**\n * Determines whether the auth layer is running on Google Compute Engine.\n * @returns A promise that resolves with the boolean.\n * @api private\n */\n async _checkIsGCE() {\n if (this.checkIsGCE === undefined) {\n this.checkIsGCE = await gcpMetadata.isAvailable();\n }\n return this.checkIsGCE;\n }\n /**\n * Attempts to load default credentials from the environment variable path..\n * @returns Promise that resolves with the OAuth2Client or null.\n * @api private\n */\n async _tryGetApplicationCredentialsFromEnvironmentVariable(options) {\n const credentialsPath = process.env['GOOGLE_APPLICATION_CREDENTIALS'] ||\n process.env['google_application_credentials'];\n if (!credentialsPath || credentialsPath.length === 0) {\n return null;\n }\n try {\n return this._getApplicationCredentialsFromFilePath(credentialsPath, options);\n }\n catch (e) {\n if (e instanceof Error) {\n e.message = `Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${e.message}`;\n }\n throw e;\n }\n }\n /**\n * Attempts to load default credentials from a well-known file location\n * @return Promise that resolves with the OAuth2Client or null.\n * @api private\n */\n async _tryGetApplicationCredentialsFromWellKnownFile(options) {\n // First, figure out the location of the file, depending upon the OS type.\n let location = null;\n if (this._isWindows()) {\n // Windows\n location = process.env['APPDATA'];\n }\n else {\n // Linux or Mac\n const home = process.env['HOME'];\n if (home) {\n location = path.join(home, '.config');\n }\n }\n // If we found the root path, expand it.\n if (location) {\n location = path.join(location, 'gcloud', 'application_default_credentials.json');\n if (!fs.existsSync(location)) {\n location = null;\n }\n }\n // The file does not exist.\n if (!location) {\n return null;\n }\n // The file seems to exist. Try to use it.\n const client = await this._getApplicationCredentialsFromFilePath(location, options);\n return client;\n }\n /**\n * Attempts to load default credentials from a file at the given path..\n * @param filePath The path to the file to read.\n * @returns Promise that resolves with the OAuth2Client\n * @api private\n */\n async _getApplicationCredentialsFromFilePath(filePath, options = {}) {\n // Make sure the path looks like a string.\n if (!filePath || filePath.length === 0) {\n throw new Error('The file path is invalid.');\n }\n // Make sure there is a file at the path. lstatSync will throw if there is\n // nothing there.\n try {\n // Resolve path to actual file in case of symlink. Expect a thrown error\n // if not resolvable.\n filePath = fs.realpathSync(filePath);\n if (!fs.lstatSync(filePath).isFile()) {\n throw new Error();\n }\n }\n catch (err) {\n if (err instanceof Error) {\n err.message = `The file at ${filePath} does not exist, or it is not a file. ${err.message}`;\n }\n throw err;\n }\n // Now open a read stream on the file, and parse it.\n const readStream = fs.createReadStream(filePath);\n return this.fromStream(readStream, options);\n }\n /**\n * Create a credentials instance using the given input options.\n * @param json The input object.\n * @param options The JWT or UserRefresh options for the client\n * @returns JWT or UserRefresh Client with data\n */\n fromJSON(json, options) {\n let client;\n if (!json) {\n throw new Error('Must pass in a JSON object containing the Google auth settings.');\n }\n options = options || {};\n if (json.type === 'authorized_user') {\n client = new refreshclient_1.UserRefreshClient(options);\n client.fromJSON(json);\n }\n else if (json.type === baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n client = externalclient_1.ExternalAccountClient.fromJSON(json, options);\n client.scopes = this.getAnyScopes();\n }\n else {\n options.scopes = this.scopes;\n client = new jwtclient_1.JWT(options);\n this.setGapicJWTValues(client);\n client.fromJSON(json);\n }\n return client;\n }\n /**\n * Return a JWT or UserRefreshClient from JavaScript object, caching both the\n * object used to instantiate and the client.\n * @param json The input object.\n * @param options The JWT or UserRefresh options for the client\n * @returns JWT or UserRefresh Client with data\n */\n _cacheClientFromJSON(json, options) {\n let client;\n // create either a UserRefreshClient or JWT client.\n options = options || {};\n if (json.type === 'authorized_user') {\n client = new refreshclient_1.UserRefreshClient(options);\n client.fromJSON(json);\n }\n else if (json.type === baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n client = externalclient_1.ExternalAccountClient.fromJSON(json, options);\n client.scopes = this.getAnyScopes();\n }\n else {\n options.scopes = this.scopes;\n client = new jwtclient_1.JWT(options);\n this.setGapicJWTValues(client);\n client.fromJSON(json);\n }\n // cache both raw data used to instantiate client and client itself.\n this.jsonContent = json;\n this.cachedCredential = client;\n return client;\n }\n fromStream(inputStream, optionsOrCallback = {}, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else {\n options = optionsOrCallback;\n }\n if (callback) {\n this.fromStreamAsync(inputStream, options).then(r => callback(null, r), callback);\n }\n else {\n return this.fromStreamAsync(inputStream, options);\n }\n }\n fromStreamAsync(inputStream, options) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n throw new Error('Must pass in a stream containing the Google auth settings.');\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('error', reject)\n .on('data', chunk => (s += chunk))\n .on('end', () => {\n try {\n try {\n const data = JSON.parse(s);\n const r = this._cacheClientFromJSON(data, options);\n return resolve(r);\n }\n catch (err) {\n // If we failed parsing this.keyFileName, assume that it\n // is a PEM or p12 certificate:\n if (!this.keyFilename)\n throw err;\n const client = new jwtclient_1.JWT({\n ...this.clientOptions,\n keyFile: this.keyFilename,\n });\n this.cachedCredential = client;\n this.setGapicJWTValues(client);\n return resolve(client);\n }\n }\n catch (err) {\n return reject(err);\n }\n });\n });\n }\n /**\n * Create a credentials instance using the given API key string.\n * @param apiKey The API key string\n * @param options An optional options object.\n * @returns A JWT loaded from the key\n */\n fromAPIKey(apiKey, options) {\n options = options || {};\n const client = new jwtclient_1.JWT(options);\n client.fromAPIKey(apiKey);\n return client;\n }\n /**\n * Determines whether the current operating system is Windows.\n * @api private\n */\n _isWindows() {\n const sys = os.platform();\n if (sys && sys.length >= 3) {\n if (sys.substring(0, 3).toLowerCase() === 'win') {\n return true;\n }\n }\n return false;\n }\n /**\n * Run the Google Cloud SDK command that prints the default project ID\n */\n async getDefaultServiceProjectId() {\n return new Promise(resolve => {\n child_process_1.exec('gcloud config config-helper --format json', (err, stdout) => {\n if (!err && stdout) {\n try {\n const projectId = JSON.parse(stdout).configuration.properties.core.project;\n resolve(projectId);\n return;\n }\n catch (e) {\n // ignore errors\n }\n }\n resolve(null);\n });\n });\n }\n /**\n * Loads the project id from environment variables.\n * @api private\n */\n getProductionProjectId() {\n return (process.env['GCLOUD_PROJECT'] ||\n process.env['GOOGLE_CLOUD_PROJECT'] ||\n process.env['gcloud_project'] ||\n process.env['google_cloud_project']);\n }\n /**\n * Loads the project id from the GOOGLE_APPLICATION_CREDENTIALS json file.\n * @api private\n */\n async getFileProjectId() {\n if (this.cachedCredential) {\n // Try to read the project ID from the cached credentials file\n return this.cachedCredential.projectId;\n }\n // Ensure the projectId is loaded from the keyFile if available.\n if (this.keyFilename) {\n const creds = await this.getClient();\n if (creds && creds.projectId) {\n return creds.projectId;\n }\n }\n // Try to load a credentials file and read its project ID\n const r = await this._tryGetApplicationCredentialsFromEnvironmentVariable();\n if (r) {\n return r.projectId;\n }\n else {\n return null;\n }\n }\n /**\n * Gets the project ID from external account client if available.\n */\n async getExternalAccountClientProjectId() {\n if (!this.jsonContent || this.jsonContent.type !== baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n return null;\n }\n const creds = await this.getClient();\n // Do not suppress the underlying error, as the error could contain helpful\n // information for debugging and fixing. This is especially true for\n // external account creds as in order to get the project ID, the following\n // operations have to succeed:\n // 1. Valid credentials file should be supplied.\n // 2. Ability to retrieve access tokens from STS token exchange API.\n // 3. Ability to exchange for service account impersonated credentials (if\n // enabled).\n // 4. Ability to get project info using the access token from step 2 or 3.\n // Without surfacing the error, it is harder for developers to determine\n // which step went wrong.\n return await creds.getProjectId();\n }\n /**\n * Gets the Compute Engine project ID if it can be inferred.\n */\n async getGCEProjectId() {\n try {\n const r = await gcpMetadata.project('project-id');\n return r;\n }\n catch (e) {\n // Ignore any errors\n return null;\n }\n }\n getCredentials(callback) {\n if (callback) {\n this.getCredentialsAsync().then(r => callback(null, r), callback);\n }\n else {\n return this.getCredentialsAsync();\n }\n }\n async getCredentialsAsync() {\n await this.getClient();\n if (this.jsonContent) {\n const credential = {\n client_email: this.jsonContent.client_email,\n private_key: this.jsonContent.private_key,\n };\n return credential;\n }\n const isGCE = await this._checkIsGCE();\n if (!isGCE) {\n throw new Error('Unknown error.');\n }\n // For GCE, return the service account details from the metadata server\n // NOTE: The trailing '/' at the end of service-accounts/ is very important!\n // The GCF metadata server doesn't respect querystring params if this / is\n // not included.\n const data = await gcpMetadata.instance({\n property: 'service-accounts/',\n params: { recursive: 'true' },\n });\n if (!data || !data.default || !data.default.email) {\n throw new Error('Failure from metadata server.');\n }\n return { client_email: data.default.email };\n }\n /**\n * Automatically obtain a client based on the provided configuration. If no\n * options were passed, use Application Default Credentials.\n */\n async getClient(options) {\n if (options) {\n throw new Error('Passing options to getClient is forbidden in v5.0.0. Use new GoogleAuth(opts) instead.');\n }\n if (!this.cachedCredential) {\n if (this.jsonContent) {\n this._cacheClientFromJSON(this.jsonContent, this.clientOptions);\n }\n else if (this.keyFilename) {\n const filePath = path.resolve(this.keyFilename);\n const stream = fs.createReadStream(filePath);\n await this.fromStreamAsync(stream, this.clientOptions);\n }\n else {\n await this.getApplicationDefaultAsync(this.clientOptions);\n }\n }\n return this.cachedCredential;\n }\n /**\n * Creates a client which will fetch an ID token for authorization.\n * @param targetAudience the audience for the fetched ID token.\n * @returns IdTokenClient for making HTTP calls authenticated with ID tokens.\n */\n async getIdTokenClient(targetAudience) {\n const client = await this.getClient();\n if (!('fetchIdToken' in client)) {\n throw new Error('Cannot fetch ID token in this environment, use GCE or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to a service account credentials JSON file.');\n }\n return new idtokenclient_1.IdTokenClient({ targetAudience, idTokenProvider: client });\n }\n /**\n * Automatically obtain application default credentials, and return\n * an access token for making requests.\n */\n async getAccessToken() {\n const client = await this.getClient();\n return (await client.getAccessToken()).token;\n }\n /**\n * Obtain the HTTP headers that will provide authorization for a given\n * request.\n */\n async getRequestHeaders(url) {\n const client = await this.getClient();\n return client.getRequestHeaders(url);\n }\n /**\n * Obtain credentials for a request, then attach the appropriate headers to\n * the request options.\n * @param opts Axios or Request options on which to attach the headers\n */\n async authorizeRequest(opts) {\n opts = opts || {};\n const url = opts.url || opts.uri;\n const client = await this.getClient();\n const headers = await client.getRequestHeaders(url);\n opts.headers = Object.assign(opts.headers || {}, headers);\n return opts;\n }\n /**\n * Automatically obtain application default credentials, and make an\n * HTTP request using the given options.\n * @param opts Axios request options for the HTTP request.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async request(opts) {\n const client = await this.getClient();\n return client.request(opts);\n }\n /**\n * Determine the compute environment in which the code is running.\n */\n getEnv() {\n return envDetect_1.getEnv();\n }\n /**\n * Sign the given data with the current private key, or go out\n * to the IAM API to sign it.\n * @param data The data to be signed.\n */\n async sign(data) {\n const client = await this.getClient();\n const crypto = crypto_1.createCrypto();\n if (client instanceof jwtclient_1.JWT && client.key) {\n const sign = await crypto.sign(client.key, data);\n return sign;\n }\n // signBlob requires a service account email and the underlying\n // access token to have iam.serviceAccounts.signBlob permission\n // on the specified resource name.\n // The \"Service Account Token Creator\" role should cover this.\n // As a result external account credentials can support this\n // operation when service account impersonation is enabled.\n if (client instanceof baseexternalclient_1.BaseExternalAccountClient &&\n client.getServiceAccountEmail()) {\n return this.signBlob(crypto, client.getServiceAccountEmail(), data);\n }\n const projectId = await this.getProjectId();\n if (!projectId) {\n throw new Error('Cannot sign data without a project ID.');\n }\n const creds = await this.getCredentials();\n if (!creds.client_email) {\n throw new Error('Cannot sign data without `client_email`.');\n }\n return this.signBlob(crypto, creds.client_email, data);\n }\n async signBlob(crypto, emailOrUniqueId, data) {\n const url = 'https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/' +\n `${emailOrUniqueId}:signBlob`;\n const res = await this.request({\n method: 'POST',\n url,\n data: {\n payload: crypto.encodeBase64StringUtf8(data),\n },\n });\n return res.data.signedBlob;\n }\n}\nexports.GoogleAuth = GoogleAuth;\n/**\n * Export DefaultTransporter as a static property of the class.\n */\nGoogleAuth.DefaultTransporter = transporters_1.DefaultTransporter;\n//# sourceMappingURL=googleauth.js.map","\"use strict\";\n// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IAMAuth = void 0;\nclass IAMAuth {\n /**\n * IAM credentials.\n *\n * @param selector the iam authority selector\n * @param token the token\n * @constructor\n */\n constructor(selector, token) {\n this.selector = selector;\n this.token = token;\n this.selector = selector;\n this.token = token;\n }\n /**\n * Acquire the HTTP headers required to make an authenticated request.\n */\n getRequestHeaders() {\n return {\n 'x-goog-iam-authority-selector': this.selector,\n 'x-goog-iam-authorization-token': this.token,\n };\n }\n}\nexports.IAMAuth = IAMAuth;\n//# sourceMappingURL=iam.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentityPoolClient = void 0;\nconst fs = require(\"fs\");\nconst util_1 = require(\"util\");\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\n// fs.readfile is undefined in browser karma tests causing\n// `npm run browser-test` to fail as test.oauth2.ts imports this file via\n// src/index.ts.\n// Fallback to void function to avoid promisify throwing a TypeError.\nconst readFile = util_1.promisify((_a = fs.readFile) !== null && _a !== void 0 ? _a : (() => { }));\nconst realpath = util_1.promisify((_b = fs.realpath) !== null && _b !== void 0 ? _b : (() => { }));\nconst lstat = util_1.promisify((_c = fs.lstat) !== null && _c !== void 0 ? _c : (() => { }));\n/**\n * Defines the Url-sourced and file-sourced external account clients mainly\n * used for K8s and Azure workloads.\n */\nclass IdentityPoolClient extends baseexternalclient_1.BaseExternalAccountClient {\n /**\n * Instantiate an IdentityPoolClient instance using the provided JSON\n * object loaded from an external account credentials file.\n * An error is thrown if the credential is not a valid file-sourced or\n * url-sourced credential or a workforce pool user project is provided\n * with a non workforce audience.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n */\n constructor(options, additionalOptions) {\n var _a, _b;\n super(options, additionalOptions);\n this.file = options.credential_source.file;\n this.url = options.credential_source.url;\n this.headers = options.credential_source.headers;\n if (!this.file && !this.url) {\n throw new Error('No valid Identity Pool \"credential_source\" provided');\n }\n // Text is the default format type.\n this.formatType = ((_a = options.credential_source.format) === null || _a === void 0 ? void 0 : _a.type) || 'text';\n this.formatSubjectTokenFieldName = (_b = options.credential_source.format) === null || _b === void 0 ? void 0 : _b.subject_token_field_name;\n if (this.formatType !== 'json' && this.formatType !== 'text') {\n throw new Error(`Invalid credential_source format \"${this.formatType}\"`);\n }\n if (this.formatType === 'json' && !this.formatSubjectTokenFieldName) {\n throw new Error('Missing subject_token_field_name for JSON credential_source format');\n }\n }\n /**\n * Triggered when a external subject token is needed to be exchanged for a GCP\n * access token via GCP STS endpoint.\n * This uses the `options.credential_source` object to figure out how\n * to retrieve the token using the current environment. In this case,\n * this either retrieves the local credential from a file location (k8s\n * workload) or by sending a GET request to a local metadata server (Azure\n * workloads).\n * @return A promise that resolves with the external subject token.\n */\n async retrieveSubjectToken() {\n if (this.file) {\n return await this.getTokenFromFile(this.file, this.formatType, this.formatSubjectTokenFieldName);\n }\n return await this.getTokenFromUrl(this.url, this.formatType, this.formatSubjectTokenFieldName, this.headers);\n }\n /**\n * Looks up the external subject token in the file path provided and\n * resolves with that token.\n * @param file The file path where the external credential is located.\n * @param formatType The token file or URL response type (JSON or text).\n * @param formatSubjectTokenFieldName For JSON response types, this is the\n * subject_token field name. For Azure, this is access_token. For text\n * response types, this is ignored.\n * @return A promise that resolves with the external subject token.\n */\n async getTokenFromFile(filePath, formatType, formatSubjectTokenFieldName) {\n // Make sure there is a file at the path. lstatSync will throw if there is\n // nothing there.\n try {\n // Resolve path to actual file in case of symlink. Expect a thrown error\n // if not resolvable.\n filePath = await realpath(filePath);\n if (!(await lstat(filePath)).isFile()) {\n throw new Error();\n }\n }\n catch (err) {\n err.message = `The file at ${filePath} does not exist, or it is not a file. ${err.message}`;\n throw err;\n }\n let subjectToken;\n const rawText = await readFile(filePath, { encoding: 'utf8' });\n if (formatType === 'text') {\n subjectToken = rawText;\n }\n else if (formatType === 'json' && formatSubjectTokenFieldName) {\n const json = JSON.parse(rawText);\n subjectToken = json[formatSubjectTokenFieldName];\n }\n if (!subjectToken) {\n throw new Error('Unable to parse the subject_token from the credential_source file');\n }\n return subjectToken;\n }\n /**\n * Sends a GET request to the URL provided and resolves with the returned\n * external subject token.\n * @param url The URL to call to retrieve the subject token. This is typically\n * a local metadata server.\n * @param formatType The token file or URL response type (JSON or text).\n * @param formatSubjectTokenFieldName For JSON response types, this is the\n * subject_token field name. For Azure, this is access_token. For text\n * response types, this is ignored.\n * @param headers The optional additional headers to send with the request to\n * the metadata server url.\n * @return A promise that resolves with the external subject token.\n */\n async getTokenFromUrl(url, formatType, formatSubjectTokenFieldName, headers) {\n const opts = {\n url,\n method: 'GET',\n headers,\n responseType: formatType,\n };\n let subjectToken;\n if (formatType === 'text') {\n const response = await this.transporter.request(opts);\n subjectToken = response.data;\n }\n else if (formatType === 'json' && formatSubjectTokenFieldName) {\n const response = await this.transporter.request(opts);\n subjectToken = response.data[formatSubjectTokenFieldName];\n }\n if (!subjectToken) {\n throw new Error('Unable to parse the subject_token from the credential_source URL');\n }\n return subjectToken;\n }\n}\nexports.IdentityPoolClient = IdentityPoolClient;\n//# sourceMappingURL=identitypoolclient.js.map","\"use strict\";\n// Copyright 2020 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdTokenClient = void 0;\nconst oauth2client_1 = require(\"./oauth2client\");\nclass IdTokenClient extends oauth2client_1.OAuth2Client {\n /**\n * Google ID Token client\n *\n * Retrieve access token from the metadata server.\n * See: https://developers.google.com/compute/docs/authentication\n */\n constructor(options) {\n super();\n this.targetAudience = options.targetAudience;\n this.idTokenProvider = options.idTokenProvider;\n }\n async getRequestMetadataAsync(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n url) {\n if (!this.credentials.id_token ||\n (this.credentials.expiry_date || 0) < Date.now()) {\n const idToken = await this.idTokenProvider.fetchIdToken(this.targetAudience);\n this.credentials = {\n id_token: idToken,\n expiry_date: this.getIdTokenExpiryDate(idToken),\n };\n }\n const headers = {\n Authorization: 'Bearer ' + this.credentials.id_token,\n };\n return { headers };\n }\n getIdTokenExpiryDate(idToken) {\n const payloadB64 = idToken.split('.')[1];\n if (payloadB64) {\n const payload = JSON.parse(Buffer.from(payloadB64, 'base64').toString('ascii'));\n return payload.exp * 1000;\n }\n }\n}\nexports.IdTokenClient = IdTokenClient;\n//# sourceMappingURL=idtokenclient.js.map","\"use strict\";\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Impersonated = void 0;\nconst oauth2client_1 = require(\"./oauth2client\");\nclass Impersonated extends oauth2client_1.OAuth2Client {\n /**\n * Impersonated service account credentials.\n *\n * Create a new access token by impersonating another service account.\n *\n * Impersonated Credentials allowing credentials issued to a user or\n * service account to impersonate another. The source project using\n * Impersonated Credentials must enable the \"IAMCredentials\" API.\n * Also, the target service account must grant the orginating principal\n * the \"Service Account Token Creator\" IAM role.\n *\n * @param {object} options - The configuration object.\n * @param {object} [options.sourceClient] the source credential used as to\n * acquire the impersonated credentials.\n * @param {string} [options.targetPrincipal] the service account to\n * impersonate.\n * @param {string[]} [options.delegates] the chained list of delegates\n * required to grant the final access_token. If set, the sequence of\n * identities must have \"Service Account Token Creator\" capability granted to\n * the preceding identity. For example, if set to [serviceAccountB,\n * serviceAccountC], the sourceCredential must have the Token Creator role on\n * serviceAccountB. serviceAccountB must have the Token Creator on\n * serviceAccountC. Finally, C must have Token Creator on target_principal.\n * If left unset, sourceCredential must have that role on targetPrincipal.\n * @param {string[]} [options.targetScopes] scopes to request during the\n * authorization grant.\n * @param {number} [options.lifetime] number of seconds the delegated\n * credential should be valid for up to 3600 seconds by default, or 43,200\n * seconds by extending the token's lifetime, see:\n * https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials#sa-credentials-oauth\n * @param {string} [options.endpoint] api endpoint override.\n */\n constructor(options = {}) {\n var _a, _b, _c, _d, _e, _f;\n super(options);\n this.credentials = {\n expiry_date: 1,\n refresh_token: 'impersonated-placeholder',\n };\n this.sourceClient = (_a = options.sourceClient) !== null && _a !== void 0 ? _a : new oauth2client_1.OAuth2Client();\n this.targetPrincipal = (_b = options.targetPrincipal) !== null && _b !== void 0 ? _b : '';\n this.delegates = (_c = options.delegates) !== null && _c !== void 0 ? _c : [];\n this.targetScopes = (_d = options.targetScopes) !== null && _d !== void 0 ? _d : [];\n this.lifetime = (_e = options.lifetime) !== null && _e !== void 0 ? _e : 3600;\n this.endpoint = (_f = options.endpoint) !== null && _f !== void 0 ? _f : 'https://iamcredentials.googleapis.com';\n }\n /**\n * Refreshes the access token.\n * @param refreshToken Unused parameter\n */\n async refreshToken(refreshToken) {\n var _a, _b, _c, _d, _e, _f;\n try {\n await this.sourceClient.getAccessToken();\n const name = 'projects/-/serviceAccounts/' + this.targetPrincipal;\n const u = `${this.endpoint}/v1/${name}:generateAccessToken`;\n const body = {\n delegates: this.delegates,\n scope: this.targetScopes,\n lifetime: this.lifetime + 's',\n };\n const res = await this.sourceClient.request({\n url: u,\n data: body,\n method: 'POST',\n });\n const tokenResponse = res.data;\n this.credentials.access_token = tokenResponse.accessToken;\n this.credentials.expiry_date = Date.parse(tokenResponse.expireTime);\n return {\n tokens: this.credentials,\n res,\n };\n }\n catch (error) {\n const status = (_c = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.status;\n const message = (_f = (_e = (_d = error === null || error === void 0 ? void 0 : error.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.error) === null || _f === void 0 ? void 0 : _f.message;\n if (status && message) {\n error.message = `${status}: unable to impersonate: ${message}`;\n throw error;\n }\n else {\n error.message = `unable to impersonate: ${error}`;\n throw error;\n }\n }\n }\n}\nexports.Impersonated = Impersonated;\n//# sourceMappingURL=impersonated.js.map","\"use strict\";\n// Copyright 2015 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JWTAccess = void 0;\nconst jws = require(\"jws\");\nconst LRU = require(\"lru-cache\");\nconst DEFAULT_HEADER = {\n alg: 'RS256',\n typ: 'JWT',\n};\nclass JWTAccess {\n /**\n * JWTAccess service account credentials.\n *\n * Create a new access token by using the credential to create a new JWT token\n * that's recognized as the access token.\n *\n * @param email the service account email address.\n * @param key the private key that will be used to sign the token.\n * @param keyId the ID of the private key used to sign the token.\n */\n constructor(email, key, keyId, eagerRefreshThresholdMillis) {\n this.cache = new LRU({\n max: 500,\n maxAge: 60 * 60 * 1000,\n });\n this.email = email;\n this.key = key;\n this.keyId = keyId;\n this.eagerRefreshThresholdMillis = eagerRefreshThresholdMillis !== null && eagerRefreshThresholdMillis !== void 0 ? eagerRefreshThresholdMillis : 5 * 60 * 1000;\n }\n /**\n * Ensures that we're caching a key appropriately, giving precedence to scopes vs. url\n *\n * @param url The URI being authorized.\n * @param scopes The scope or scopes being authorized\n * @returns A string that returns the cached key.\n */\n getCachedKey(url, scopes) {\n let cacheKey = url;\n if (scopes && Array.isArray(scopes) && scopes.length) {\n cacheKey = url ? `${url}_${scopes.join('_')}` : `${scopes.join('_')}`;\n }\n else if (typeof scopes === 'string') {\n cacheKey = url ? `${url}_${scopes}` : scopes;\n }\n if (!cacheKey) {\n throw Error('Scopes or url must be provided');\n }\n return cacheKey;\n }\n /**\n * Get a non-expired access token, after refreshing if necessary.\n *\n * @param url The URI being authorized.\n * @param additionalClaims An object with a set of additional claims to\n * include in the payload.\n * @returns An object that includes the authorization header.\n */\n getRequestHeaders(url, additionalClaims, scopes) {\n // Return cached authorization headers, unless we are within\n // eagerRefreshThresholdMillis ms of them expiring:\n const key = this.getCachedKey(url, scopes);\n const cachedToken = this.cache.get(key);\n const now = Date.now();\n if (cachedToken &&\n cachedToken.expiration - now > this.eagerRefreshThresholdMillis) {\n return cachedToken.headers;\n }\n const iat = Math.floor(Date.now() / 1000);\n const exp = JWTAccess.getExpirationTime(iat);\n let defaultClaims;\n // Turn scopes into space-separated string\n if (Array.isArray(scopes)) {\n scopes = scopes.join(' ');\n }\n // If scopes are specified, sign with scopes\n if (scopes) {\n defaultClaims = {\n iss: this.email,\n sub: this.email,\n scope: scopes,\n exp,\n iat,\n };\n }\n else {\n defaultClaims = {\n iss: this.email,\n sub: this.email,\n aud: url,\n exp,\n iat,\n };\n }\n // if additionalClaims are provided, ensure they do not collide with\n // other required claims.\n if (additionalClaims) {\n for (const claim in defaultClaims) {\n if (additionalClaims[claim]) {\n throw new Error(`The '${claim}' property is not allowed when passing additionalClaims. This claim is included in the JWT by default.`);\n }\n }\n }\n const header = this.keyId\n ? { ...DEFAULT_HEADER, kid: this.keyId }\n : DEFAULT_HEADER;\n const payload = Object.assign(defaultClaims, additionalClaims);\n // Sign the jwt and add it to the cache\n const signedJWT = jws.sign({ header, payload, secret: this.key });\n const headers = { Authorization: `Bearer ${signedJWT}` };\n this.cache.set(key, {\n expiration: exp * 1000,\n headers,\n });\n return headers;\n }\n /**\n * Returns an expiration time for the JWT token.\n *\n * @param iat The issued at time for the JWT.\n * @returns An expiration time for the JWT.\n */\n static getExpirationTime(iat) {\n const exp = iat + 3600; // 3600 seconds = 1 hour\n return exp;\n }\n /**\n * Create a JWTAccess credentials instance using the given input options.\n * @param json The input object.\n */\n fromJSON(json) {\n if (!json) {\n throw new Error('Must pass in a JSON object containing the service account auth settings.');\n }\n if (!json.client_email) {\n throw new Error('The incoming JSON object does not contain a client_email field');\n }\n if (!json.private_key) {\n throw new Error('The incoming JSON object does not contain a private_key field');\n }\n // Extract the relevant information from the json key file.\n this.email = json.client_email;\n this.key = json.private_key;\n this.keyId = json.private_key_id;\n this.projectId = json.project_id;\n }\n fromStream(inputStream, callback) {\n if (callback) {\n this.fromStreamAsync(inputStream).then(() => callback(), callback);\n }\n else {\n return this.fromStreamAsync(inputStream);\n }\n }\n fromStreamAsync(inputStream) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n reject(new Error('Must pass in a stream containing the service account auth settings.'));\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('data', chunk => (s += chunk))\n .on('error', reject)\n .on('end', () => {\n try {\n const data = JSON.parse(s);\n this.fromJSON(data);\n resolve();\n }\n catch (err) {\n reject(err);\n }\n });\n });\n }\n}\nexports.JWTAccess = JWTAccess;\n//# sourceMappingURL=jwtaccess.js.map","\"use strict\";\n// Copyright 2013 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JWT = void 0;\nconst gtoken_1 = require(\"gtoken\");\nconst jwtaccess_1 = require(\"./jwtaccess\");\nconst oauth2client_1 = require(\"./oauth2client\");\nclass JWT extends oauth2client_1.OAuth2Client {\n constructor(optionsOrEmail, keyFile, key, scopes, subject, keyId) {\n const opts = optionsOrEmail && typeof optionsOrEmail === 'object'\n ? optionsOrEmail\n : { email: optionsOrEmail, keyFile, key, keyId, scopes, subject };\n super({\n eagerRefreshThresholdMillis: opts.eagerRefreshThresholdMillis,\n forceRefreshOnFailure: opts.forceRefreshOnFailure,\n });\n this.email = opts.email;\n this.keyFile = opts.keyFile;\n this.key = opts.key;\n this.keyId = opts.keyId;\n this.scopes = opts.scopes;\n this.subject = opts.subject;\n this.additionalClaims = opts.additionalClaims;\n this.credentials = { refresh_token: 'jwt-placeholder', expiry_date: 1 };\n }\n /**\n * Creates a copy of the credential with the specified scopes.\n * @param scopes List of requested scopes or a single scope.\n * @return The cloned instance.\n */\n createScoped(scopes) {\n return new JWT({\n email: this.email,\n keyFile: this.keyFile,\n key: this.key,\n keyId: this.keyId,\n scopes,\n subject: this.subject,\n additionalClaims: this.additionalClaims,\n });\n }\n /**\n * Obtains the metadata to be sent with the request.\n *\n * @param url the URI being authorized.\n */\n async getRequestMetadataAsync(url) {\n url = this.defaultServicePath ? `https://${this.defaultServicePath}/` : url;\n const useSelfSignedJWT = (!this.hasUserScopes() && url) ||\n (this.useJWTAccessWithScope && this.hasAnyScopes());\n if (!this.apiKey && useSelfSignedJWT) {\n if (this.additionalClaims &&\n this.additionalClaims.target_audience) {\n const { tokens } = await this.refreshToken();\n return {\n headers: this.addSharedMetadataHeaders({\n Authorization: `Bearer ${tokens.id_token}`,\n }),\n };\n }\n else {\n // no scopes have been set, but a uri has been provided. Use JWTAccess\n // credentials.\n if (!this.access) {\n this.access = new jwtaccess_1.JWTAccess(this.email, this.key, this.keyId, this.eagerRefreshThresholdMillis);\n }\n let scopes;\n if (this.hasUserScopes()) {\n scopes = this.scopes;\n }\n else if (!url) {\n scopes = this.defaultScopes;\n }\n const headers = await this.access.getRequestHeaders(url !== null && url !== void 0 ? url : undefined, this.additionalClaims, \n // Scopes take precedent over audience for signing,\n // so we only provide them if useJWTAccessWithScope is on\n this.useJWTAccessWithScope ? scopes : undefined);\n return { headers: this.addSharedMetadataHeaders(headers) };\n }\n }\n else if (this.hasAnyScopes() || this.apiKey) {\n return super.getRequestMetadataAsync(url);\n }\n else {\n // If no audience, apiKey, or scopes are provided, we should not attempt\n // to populate any headers:\n return { headers: {} };\n }\n }\n /**\n * Fetches an ID token.\n * @param targetAudience the audience for the fetched ID token.\n */\n async fetchIdToken(targetAudience) {\n // Create a new gToken for fetching an ID token\n const gtoken = new gtoken_1.GoogleToken({\n iss: this.email,\n sub: this.subject,\n scope: this.scopes || this.defaultScopes,\n keyFile: this.keyFile,\n key: this.key,\n additionalClaims: { target_audience: targetAudience },\n });\n await gtoken.getToken({\n forceRefresh: true,\n });\n if (!gtoken.idToken) {\n throw new Error('Unknown error: Failed to fetch ID token');\n }\n return gtoken.idToken;\n }\n /**\n * Determine if there are currently scopes available.\n */\n hasUserScopes() {\n if (!this.scopes) {\n return false;\n }\n return this.scopes.length > 0;\n }\n /**\n * Are there any default or user scopes defined.\n */\n hasAnyScopes() {\n if (this.scopes && this.scopes.length > 0)\n return true;\n if (this.defaultScopes && this.defaultScopes.length > 0)\n return true;\n return false;\n }\n authorize(callback) {\n if (callback) {\n this.authorizeAsync().then(r => callback(null, r), callback);\n }\n else {\n return this.authorizeAsync();\n }\n }\n async authorizeAsync() {\n const result = await this.refreshToken();\n if (!result) {\n throw new Error('No result returned');\n }\n this.credentials = result.tokens;\n this.credentials.refresh_token = 'jwt-placeholder';\n this.key = this.gtoken.key;\n this.email = this.gtoken.iss;\n return result.tokens;\n }\n /**\n * Refreshes the access token.\n * @param refreshToken ignored\n * @private\n */\n async refreshTokenNoCache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refreshToken) {\n const gtoken = this.createGToken();\n const token = await gtoken.getToken({\n forceRefresh: this.isTokenExpiring(),\n });\n const tokens = {\n access_token: token.access_token,\n token_type: 'Bearer',\n expiry_date: gtoken.expiresAt,\n id_token: gtoken.idToken,\n };\n this.emit('tokens', tokens);\n return { res: null, tokens };\n }\n /**\n * Create a gToken if it doesn't already exist.\n */\n createGToken() {\n if (!this.gtoken) {\n this.gtoken = new gtoken_1.GoogleToken({\n iss: this.email,\n sub: this.subject,\n scope: this.scopes || this.defaultScopes,\n keyFile: this.keyFile,\n key: this.key,\n additionalClaims: this.additionalClaims,\n });\n }\n return this.gtoken;\n }\n /**\n * Create a JWT credentials instance using the given input options.\n * @param json The input object.\n */\n fromJSON(json) {\n if (!json) {\n throw new Error('Must pass in a JSON object containing the service account auth settings.');\n }\n if (!json.client_email) {\n throw new Error('The incoming JSON object does not contain a client_email field');\n }\n if (!json.private_key) {\n throw new Error('The incoming JSON object does not contain a private_key field');\n }\n // Extract the relevant information from the json key file.\n this.email = json.client_email;\n this.key = json.private_key;\n this.keyId = json.private_key_id;\n this.projectId = json.project_id;\n this.quotaProjectId = json.quota_project_id;\n }\n fromStream(inputStream, callback) {\n if (callback) {\n this.fromStreamAsync(inputStream).then(() => callback(), callback);\n }\n else {\n return this.fromStreamAsync(inputStream);\n }\n }\n fromStreamAsync(inputStream) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n throw new Error('Must pass in a stream containing the service account auth settings.');\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('error', reject)\n .on('data', chunk => (s += chunk))\n .on('end', () => {\n try {\n const data = JSON.parse(s);\n this.fromJSON(data);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n });\n });\n }\n /**\n * Creates a JWT credentials instance using an API Key for authentication.\n * @param apiKey The API Key in string form.\n */\n fromAPIKey(apiKey) {\n if (typeof apiKey !== 'string') {\n throw new Error('Must provide an API Key string.');\n }\n this.apiKey = apiKey;\n }\n /**\n * Using the key or keyFile on the JWT client, obtain an object that contains\n * the key and the client email.\n */\n async getCredentials() {\n if (this.key) {\n return { private_key: this.key, client_email: this.email };\n }\n else if (this.keyFile) {\n const gtoken = this.createGToken();\n const creds = await gtoken.getCredentials(this.keyFile);\n return { private_key: creds.privateKey, client_email: creds.clientEmail };\n }\n throw new Error('A key or a keyFile must be provided to getCredentials.');\n }\n}\nexports.JWT = JWT;\n//# sourceMappingURL=jwtclient.js.map","\"use strict\";\n// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoginTicket = void 0;\nclass LoginTicket {\n /**\n * Create a simple class to extract user ID from an ID Token\n *\n * @param {string} env Envelope of the jwt\n * @param {TokenPayload} pay Payload of the jwt\n * @constructor\n */\n constructor(env, pay) {\n this.envelope = env;\n this.payload = pay;\n }\n getEnvelope() {\n return this.envelope;\n }\n getPayload() {\n return this.payload;\n }\n /**\n * Create a simple class to extract user ID from an ID Token\n *\n * @return The user ID\n */\n getUserId() {\n const payload = this.getPayload();\n if (payload && payload.sub) {\n return payload.sub;\n }\n return null;\n }\n /**\n * Returns attributes from the login ticket. This can contain\n * various information about the user session.\n *\n * @return The envelope and payload\n */\n getAttributes() {\n return { envelope: this.getEnvelope(), payload: this.getPayload() };\n }\n}\nexports.LoginTicket = LoginTicket;\n//# sourceMappingURL=loginticket.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OAuth2Client = exports.CertificateFormat = exports.CodeChallengeMethod = void 0;\nconst querystring = require(\"querystring\");\nconst stream = require(\"stream\");\nconst formatEcdsa = require(\"ecdsa-sig-formatter\");\nconst crypto_1 = require(\"../crypto/crypto\");\nconst authclient_1 = require(\"./authclient\");\nconst loginticket_1 = require(\"./loginticket\");\nvar CodeChallengeMethod;\n(function (CodeChallengeMethod) {\n CodeChallengeMethod[\"Plain\"] = \"plain\";\n CodeChallengeMethod[\"S256\"] = \"S256\";\n})(CodeChallengeMethod = exports.CodeChallengeMethod || (exports.CodeChallengeMethod = {}));\nvar CertificateFormat;\n(function (CertificateFormat) {\n CertificateFormat[\"PEM\"] = \"PEM\";\n CertificateFormat[\"JWK\"] = \"JWK\";\n})(CertificateFormat = exports.CertificateFormat || (exports.CertificateFormat = {}));\nclass OAuth2Client extends authclient_1.AuthClient {\n constructor(optionsOrClientId, clientSecret, redirectUri) {\n super();\n this.certificateCache = {};\n this.certificateExpiry = null;\n this.certificateCacheFormat = CertificateFormat.PEM;\n this.refreshTokenPromises = new Map();\n const opts = optionsOrClientId && typeof optionsOrClientId === 'object'\n ? optionsOrClientId\n : { clientId: optionsOrClientId, clientSecret, redirectUri };\n this._clientId = opts.clientId;\n this._clientSecret = opts.clientSecret;\n this.redirectUri = opts.redirectUri;\n this.eagerRefreshThresholdMillis =\n opts.eagerRefreshThresholdMillis || 5 * 60 * 1000;\n this.forceRefreshOnFailure = !!opts.forceRefreshOnFailure;\n }\n /**\n * Generates URL for consent page landing.\n * @param opts Options.\n * @return URL to consent page.\n */\n generateAuthUrl(opts = {}) {\n if (opts.code_challenge_method && !opts.code_challenge) {\n throw new Error('If a code_challenge_method is provided, code_challenge must be included.');\n }\n opts.response_type = opts.response_type || 'code';\n opts.client_id = opts.client_id || this._clientId;\n opts.redirect_uri = opts.redirect_uri || this.redirectUri;\n // Allow scopes to be passed either as array or a string\n if (opts.scope instanceof Array) {\n opts.scope = opts.scope.join(' ');\n }\n const rootUrl = OAuth2Client.GOOGLE_OAUTH2_AUTH_BASE_URL_;\n return (rootUrl +\n '?' +\n querystring.stringify(opts));\n }\n generateCodeVerifier() {\n // To make the code compatible with browser SubtleCrypto we need to make\n // this method async.\n throw new Error('generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.');\n }\n /**\n * Convenience method to automatically generate a code_verifier, and its\n * resulting SHA256. If used, this must be paired with a S256\n * code_challenge_method.\n *\n * For a full example see:\n * https://github.com/googleapis/google-auth-library-nodejs/blob/main/samples/oauth2-codeVerifier.js\n */\n async generateCodeVerifierAsync() {\n // base64 encoding uses 6 bits per character, and we want to generate128\n // characters. 6*128/8 = 96.\n const crypto = crypto_1.createCrypto();\n const randomString = crypto.randomBytesBase64(96);\n // The valid characters in the code_verifier are [A-Z]/[a-z]/[0-9]/\n // \"-\"/\".\"/\"_\"/\"~\". Base64 encoded strings are pretty close, so we're just\n // swapping out a few chars.\n const codeVerifier = randomString\n .replace(/\\+/g, '~')\n .replace(/=/g, '_')\n .replace(/\\//g, '-');\n // Generate the base64 encoded SHA256\n const unencodedCodeChallenge = await crypto.sha256DigestBase64(codeVerifier);\n // We need to use base64UrlEncoding instead of standard base64\n const codeChallenge = unencodedCodeChallenge\n .split('=')[0]\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n return { codeVerifier, codeChallenge };\n }\n getToken(codeOrOptions, callback) {\n const options = typeof codeOrOptions === 'string' ? { code: codeOrOptions } : codeOrOptions;\n if (callback) {\n this.getTokenAsync(options).then(r => callback(null, r.tokens, r.res), e => callback(e, null, e.response));\n }\n else {\n return this.getTokenAsync(options);\n }\n }\n async getTokenAsync(options) {\n const url = OAuth2Client.GOOGLE_OAUTH2_TOKEN_URL_;\n const values = {\n code: options.code,\n client_id: options.client_id || this._clientId,\n client_secret: this._clientSecret,\n redirect_uri: options.redirect_uri || this.redirectUri,\n grant_type: 'authorization_code',\n code_verifier: options.codeVerifier,\n };\n const res = await this.transporter.request({\n method: 'POST',\n url,\n data: querystring.stringify(values),\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n });\n const tokens = res.data;\n if (res.data && res.data.expires_in) {\n tokens.expiry_date = new Date().getTime() + res.data.expires_in * 1000;\n delete tokens.expires_in;\n }\n this.emit('tokens', tokens);\n return { tokens, res };\n }\n /**\n * Refreshes the access token.\n * @param refresh_token Existing refresh token.\n * @private\n */\n async refreshToken(refreshToken) {\n if (!refreshToken) {\n return this.refreshTokenNoCache(refreshToken);\n }\n // If a request to refresh using the same token has started,\n // return the same promise.\n if (this.refreshTokenPromises.has(refreshToken)) {\n return this.refreshTokenPromises.get(refreshToken);\n }\n const p = this.refreshTokenNoCache(refreshToken).then(r => {\n this.refreshTokenPromises.delete(refreshToken);\n return r;\n }, e => {\n this.refreshTokenPromises.delete(refreshToken);\n throw e;\n });\n this.refreshTokenPromises.set(refreshToken, p);\n return p;\n }\n async refreshTokenNoCache(refreshToken) {\n if (!refreshToken) {\n throw new Error('No refresh token is set.');\n }\n const url = OAuth2Client.GOOGLE_OAUTH2_TOKEN_URL_;\n const data = {\n refresh_token: refreshToken,\n client_id: this._clientId,\n client_secret: this._clientSecret,\n grant_type: 'refresh_token',\n };\n // request for new token\n const res = await this.transporter.request({\n method: 'POST',\n url,\n data: querystring.stringify(data),\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n });\n const tokens = res.data;\n // TODO: de-duplicate this code from a few spots\n if (res.data && res.data.expires_in) {\n tokens.expiry_date = new Date().getTime() + res.data.expires_in * 1000;\n delete tokens.expires_in;\n }\n this.emit('tokens', tokens);\n return { tokens, res };\n }\n refreshAccessToken(callback) {\n if (callback) {\n this.refreshAccessTokenAsync().then(r => callback(null, r.credentials, r.res), callback);\n }\n else {\n return this.refreshAccessTokenAsync();\n }\n }\n async refreshAccessTokenAsync() {\n const r = await this.refreshToken(this.credentials.refresh_token);\n const tokens = r.tokens;\n tokens.refresh_token = this.credentials.refresh_token;\n this.credentials = tokens;\n return { credentials: this.credentials, res: r.res };\n }\n getAccessToken(callback) {\n if (callback) {\n this.getAccessTokenAsync().then(r => callback(null, r.token, r.res), callback);\n }\n else {\n return this.getAccessTokenAsync();\n }\n }\n async getAccessTokenAsync() {\n const shouldRefresh = !this.credentials.access_token || this.isTokenExpiring();\n if (shouldRefresh) {\n if (!this.credentials.refresh_token) {\n if (this.refreshHandler) {\n const refreshedAccessToken = await this.processAndValidateRefreshHandler();\n if (refreshedAccessToken === null || refreshedAccessToken === void 0 ? void 0 : refreshedAccessToken.access_token) {\n this.setCredentials(refreshedAccessToken);\n return { token: this.credentials.access_token };\n }\n }\n else {\n throw new Error('No refresh token or refresh handler callback is set.');\n }\n }\n const r = await this.refreshAccessTokenAsync();\n if (!r.credentials || (r.credentials && !r.credentials.access_token)) {\n throw new Error('Could not refresh access token.');\n }\n return { token: r.credentials.access_token, res: r.res };\n }\n else {\n return { token: this.credentials.access_token };\n }\n }\n /**\n * The main authentication interface. It takes an optional url which when\n * present is the endpoint being accessed, and returns a Promise which\n * resolves with authorization header fields.\n *\n * In OAuth2Client, the result has the form:\n * { Authorization: 'Bearer ' }\n * @param url The optional url being authorized\n */\n async getRequestHeaders(url) {\n const headers = (await this.getRequestMetadataAsync(url)).headers;\n return headers;\n }\n async getRequestMetadataAsync(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n url) {\n const thisCreds = this.credentials;\n if (!thisCreds.access_token &&\n !thisCreds.refresh_token &&\n !this.apiKey &&\n !this.refreshHandler) {\n throw new Error('No access, refresh token, API key or refresh handler callback is set.');\n }\n if (thisCreds.access_token && !this.isTokenExpiring()) {\n thisCreds.token_type = thisCreds.token_type || 'Bearer';\n const headers = {\n Authorization: thisCreds.token_type + ' ' + thisCreds.access_token,\n };\n return { headers: this.addSharedMetadataHeaders(headers) };\n }\n // If refreshHandler exists, call processAndValidateRefreshHandler().\n if (this.refreshHandler) {\n const refreshedAccessToken = await this.processAndValidateRefreshHandler();\n if (refreshedAccessToken === null || refreshedAccessToken === void 0 ? void 0 : refreshedAccessToken.access_token) {\n this.setCredentials(refreshedAccessToken);\n const headers = {\n Authorization: 'Bearer ' + this.credentials.access_token,\n };\n return { headers: this.addSharedMetadataHeaders(headers) };\n }\n }\n if (this.apiKey) {\n return { headers: { 'X-Goog-Api-Key': this.apiKey } };\n }\n let r = null;\n let tokens = null;\n try {\n r = await this.refreshToken(thisCreds.refresh_token);\n tokens = r.tokens;\n }\n catch (err) {\n const e = err;\n if (e.response &&\n (e.response.status === 403 || e.response.status === 404)) {\n e.message = `Could not refresh access token: ${e.message}`;\n }\n throw e;\n }\n const credentials = this.credentials;\n credentials.token_type = credentials.token_type || 'Bearer';\n tokens.refresh_token = credentials.refresh_token;\n this.credentials = tokens;\n const headers = {\n Authorization: credentials.token_type + ' ' + tokens.access_token,\n };\n return { headers: this.addSharedMetadataHeaders(headers), res: r.res };\n }\n /**\n * Generates an URL to revoke the given token.\n * @param token The existing token to be revoked.\n */\n static getRevokeTokenUrl(token) {\n const parameters = querystring.stringify({ token });\n return `${OAuth2Client.GOOGLE_OAUTH2_REVOKE_URL_}?${parameters}`;\n }\n revokeToken(token, callback) {\n const opts = {\n url: OAuth2Client.getRevokeTokenUrl(token),\n method: 'POST',\n };\n if (callback) {\n this.transporter\n .request(opts)\n .then(r => callback(null, r), callback);\n }\n else {\n return this.transporter.request(opts);\n }\n }\n revokeCredentials(callback) {\n if (callback) {\n this.revokeCredentialsAsync().then(res => callback(null, res), callback);\n }\n else {\n return this.revokeCredentialsAsync();\n }\n }\n async revokeCredentialsAsync() {\n const token = this.credentials.access_token;\n this.credentials = {};\n if (token) {\n return this.revokeToken(token);\n }\n else {\n throw new Error('No access token to revoke.');\n }\n }\n request(opts, callback) {\n if (callback) {\n this.requestAsync(opts).then(r => callback(null, r), e => {\n return callback(e, e.response);\n });\n }\n else {\n return this.requestAsync(opts);\n }\n }\n async requestAsync(opts, retry = false) {\n let r2;\n try {\n const r = await this.getRequestMetadataAsync(opts.url);\n opts.headers = opts.headers || {};\n if (r.headers && r.headers['x-goog-user-project']) {\n opts.headers['x-goog-user-project'] = r.headers['x-goog-user-project'];\n }\n if (r.headers && r.headers.Authorization) {\n opts.headers.Authorization = r.headers.Authorization;\n }\n if (this.apiKey) {\n opts.headers['X-Goog-Api-Key'] = this.apiKey;\n }\n r2 = await this.transporter.request(opts);\n }\n catch (e) {\n const res = e.response;\n if (res) {\n const statusCode = res.status;\n // Retry the request for metadata if the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - An access_token and refresh_token were available, but either no\n // expiry_date was available or the forceRefreshOnFailure flag is set.\n // The absent expiry_date case can happen when developers stash the\n // access_token and refresh_token for later use, but the access_token\n // fails on the first try because it's expired. Some developers may\n // choose to enable forceRefreshOnFailure to mitigate time-related\n // errors.\n // Or the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - No refresh_token was available\n // - An access_token and a refreshHandler callback were available, but\n // either no expiry_date was available or the forceRefreshOnFailure\n // flag is set. The access_token fails on the first try because it's\n // expired. Some developers may choose to enable forceRefreshOnFailure\n // to mitigate time-related errors.\n const mayRequireRefresh = this.credentials &&\n this.credentials.access_token &&\n this.credentials.refresh_token &&\n (!this.credentials.expiry_date || this.forceRefreshOnFailure);\n const mayRequireRefreshWithNoRefreshToken = this.credentials &&\n this.credentials.access_token &&\n !this.credentials.refresh_token &&\n (!this.credentials.expiry_date || this.forceRefreshOnFailure) &&\n this.refreshHandler;\n const isReadableStream = res.config.data instanceof stream.Readable;\n const isAuthErr = statusCode === 401 || statusCode === 403;\n if (!retry && isAuthErr && !isReadableStream && mayRequireRefresh) {\n await this.refreshAccessTokenAsync();\n return this.requestAsync(opts, true);\n }\n else if (!retry &&\n isAuthErr &&\n !isReadableStream &&\n mayRequireRefreshWithNoRefreshToken) {\n const refreshedAccessToken = await this.processAndValidateRefreshHandler();\n if (refreshedAccessToken === null || refreshedAccessToken === void 0 ? void 0 : refreshedAccessToken.access_token) {\n this.setCredentials(refreshedAccessToken);\n }\n return this.requestAsync(opts, true);\n }\n }\n throw e;\n }\n return r2;\n }\n verifyIdToken(options, callback) {\n // This function used to accept two arguments instead of an options object.\n // Check the types to help users upgrade with less pain.\n // This check can be removed after a 2.0 release.\n if (callback && typeof callback !== 'function') {\n throw new Error('This method accepts an options object as the first parameter, which includes the idToken, audience, and maxExpiry.');\n }\n if (callback) {\n this.verifyIdTokenAsync(options).then(r => callback(null, r), callback);\n }\n else {\n return this.verifyIdTokenAsync(options);\n }\n }\n async verifyIdTokenAsync(options) {\n if (!options.idToken) {\n throw new Error('The verifyIdToken method requires an ID Token');\n }\n const response = await this.getFederatedSignonCertsAsync();\n const login = await this.verifySignedJwtWithCertsAsync(options.idToken, response.certs, options.audience, OAuth2Client.ISSUERS_, options.maxExpiry);\n return login;\n }\n /**\n * Obtains information about the provisioned access token. Especially useful\n * if you want to check the scopes that were provisioned to a given token.\n *\n * @param accessToken Required. The Access Token for which you want to get\n * user info.\n */\n async getTokenInfo(accessToken) {\n const { data } = await this.transporter.request({\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Authorization: `Bearer ${accessToken}`,\n },\n url: OAuth2Client.GOOGLE_TOKEN_INFO_URL,\n });\n const info = Object.assign({\n expiry_date: new Date().getTime() + data.expires_in * 1000,\n scopes: data.scope.split(' '),\n }, data);\n delete info.expires_in;\n delete info.scope;\n return info;\n }\n getFederatedSignonCerts(callback) {\n if (callback) {\n this.getFederatedSignonCertsAsync().then(r => callback(null, r.certs, r.res), callback);\n }\n else {\n return this.getFederatedSignonCertsAsync();\n }\n }\n async getFederatedSignonCertsAsync() {\n const nowTime = new Date().getTime();\n const format = crypto_1.hasBrowserCrypto()\n ? CertificateFormat.JWK\n : CertificateFormat.PEM;\n if (this.certificateExpiry &&\n nowTime < this.certificateExpiry.getTime() &&\n this.certificateCacheFormat === format) {\n return { certs: this.certificateCache, format };\n }\n let res;\n let url;\n switch (format) {\n case CertificateFormat.PEM:\n url = OAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_PEM_CERTS_URL_;\n break;\n case CertificateFormat.JWK:\n url = OAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_JWK_CERTS_URL_;\n break;\n default:\n throw new Error(`Unsupported certificate format ${format}`);\n }\n try {\n res = await this.transporter.request({ url });\n }\n catch (e) {\n e.message = `Failed to retrieve verification certificates: ${e.message}`;\n throw e;\n }\n const cacheControl = res ? res.headers['cache-control'] : undefined;\n let cacheAge = -1;\n if (cacheControl) {\n const pattern = new RegExp('max-age=([0-9]*)');\n const regexResult = pattern.exec(cacheControl);\n if (regexResult && regexResult.length === 2) {\n // Cache results with max-age (in seconds)\n cacheAge = Number(regexResult[1]) * 1000; // milliseconds\n }\n }\n let certificates = {};\n switch (format) {\n case CertificateFormat.PEM:\n certificates = res.data;\n break;\n case CertificateFormat.JWK:\n for (const key of res.data.keys) {\n certificates[key.kid] = key;\n }\n break;\n default:\n throw new Error(`Unsupported certificate format ${format}`);\n }\n const now = new Date();\n this.certificateExpiry =\n cacheAge === -1 ? null : new Date(now.getTime() + cacheAge);\n this.certificateCache = certificates;\n this.certificateCacheFormat = format;\n return { certs: certificates, format, res };\n }\n getIapPublicKeys(callback) {\n if (callback) {\n this.getIapPublicKeysAsync().then(r => callback(null, r.pubkeys, r.res), callback);\n }\n else {\n return this.getIapPublicKeysAsync();\n }\n }\n async getIapPublicKeysAsync() {\n let res;\n const url = OAuth2Client.GOOGLE_OAUTH2_IAP_PUBLIC_KEY_URL_;\n try {\n res = await this.transporter.request({ url });\n }\n catch (e) {\n e.message = `Failed to retrieve verification certificates: ${e.message}`;\n throw e;\n }\n return { pubkeys: res.data, res };\n }\n verifySignedJwtWithCerts() {\n // To make the code compatible with browser SubtleCrypto we need to make\n // this method async.\n throw new Error('verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.');\n }\n /**\n * Verify the id token is signed with the correct certificate\n * and is from the correct audience.\n * @param jwt The jwt to verify (The ID Token in this case).\n * @param certs The array of certs to test the jwt against.\n * @param requiredAudience The audience to test the jwt against.\n * @param issuers The allowed issuers of the jwt (Optional).\n * @param maxExpiry The max expiry the certificate can be (Optional).\n * @return Returns a promise resolving to LoginTicket on verification.\n */\n async verifySignedJwtWithCertsAsync(jwt, certs, requiredAudience, issuers, maxExpiry) {\n const crypto = crypto_1.createCrypto();\n if (!maxExpiry) {\n maxExpiry = OAuth2Client.MAX_TOKEN_LIFETIME_SECS_;\n }\n const segments = jwt.split('.');\n if (segments.length !== 3) {\n throw new Error('Wrong number of segments in token: ' + jwt);\n }\n const signed = segments[0] + '.' + segments[1];\n let signature = segments[2];\n let envelope;\n let payload;\n try {\n envelope = JSON.parse(crypto.decodeBase64StringUtf8(segments[0]));\n }\n catch (err) {\n err.message = `Can't parse token envelope: ${segments[0]}': ${err.message}`;\n throw err;\n }\n if (!envelope) {\n throw new Error(\"Can't parse token envelope: \" + segments[0]);\n }\n try {\n payload = JSON.parse(crypto.decodeBase64StringUtf8(segments[1]));\n }\n catch (err) {\n err.message = `Can't parse token payload '${segments[0]}`;\n throw err;\n }\n if (!payload) {\n throw new Error(\"Can't parse token payload: \" + segments[1]);\n }\n if (!Object.prototype.hasOwnProperty.call(certs, envelope.kid)) {\n // If this is not present, then there's no reason to attempt verification\n throw new Error('No pem found for envelope: ' + JSON.stringify(envelope));\n }\n const cert = certs[envelope.kid];\n if (envelope.alg === 'ES256') {\n signature = formatEcdsa.joseToDer(signature, 'ES256').toString('base64');\n }\n const verified = await crypto.verify(cert, signed, signature);\n if (!verified) {\n throw new Error('Invalid token signature: ' + jwt);\n }\n if (!payload.iat) {\n throw new Error('No issue time in token: ' + JSON.stringify(payload));\n }\n if (!payload.exp) {\n throw new Error('No expiration time in token: ' + JSON.stringify(payload));\n }\n const iat = Number(payload.iat);\n if (isNaN(iat))\n throw new Error('iat field using invalid format');\n const exp = Number(payload.exp);\n if (isNaN(exp))\n throw new Error('exp field using invalid format');\n const now = new Date().getTime() / 1000;\n if (exp >= now + maxExpiry) {\n throw new Error('Expiration time too far in future: ' + JSON.stringify(payload));\n }\n const earliest = iat - OAuth2Client.CLOCK_SKEW_SECS_;\n const latest = exp + OAuth2Client.CLOCK_SKEW_SECS_;\n if (now < earliest) {\n throw new Error('Token used too early, ' +\n now +\n ' < ' +\n earliest +\n ': ' +\n JSON.stringify(payload));\n }\n if (now > latest) {\n throw new Error('Token used too late, ' +\n now +\n ' > ' +\n latest +\n ': ' +\n JSON.stringify(payload));\n }\n if (issuers && issuers.indexOf(payload.iss) < 0) {\n throw new Error('Invalid issuer, expected one of [' +\n issuers +\n '], but got ' +\n payload.iss);\n }\n // Check the audience matches if we have one\n if (typeof requiredAudience !== 'undefined' && requiredAudience !== null) {\n const aud = payload.aud;\n let audVerified = false;\n // If the requiredAudience is an array, check if it contains token\n // audience\n if (requiredAudience.constructor === Array) {\n audVerified = requiredAudience.indexOf(aud) > -1;\n }\n else {\n audVerified = aud === requiredAudience;\n }\n if (!audVerified) {\n throw new Error('Wrong recipient, payload audience != requiredAudience');\n }\n }\n return new loginticket_1.LoginTicket(envelope, payload);\n }\n /**\n * Returns a promise that resolves with AccessTokenResponse type if\n * refreshHandler is defined.\n * If not, nothing is returned.\n */\n async processAndValidateRefreshHandler() {\n if (this.refreshHandler) {\n const accessTokenResponse = await this.refreshHandler();\n if (!accessTokenResponse.access_token) {\n throw new Error('No access token is returned by the refreshHandler callback.');\n }\n return accessTokenResponse;\n }\n return;\n }\n /**\n * Returns true if a token is expired or will expire within\n * eagerRefreshThresholdMillismilliseconds.\n * If there is no expiry time, assumes the token is not expired or expiring.\n */\n isTokenExpiring() {\n const expiryDate = this.credentials.expiry_date;\n return expiryDate\n ? expiryDate <= new Date().getTime() + this.eagerRefreshThresholdMillis\n : false;\n }\n}\nexports.OAuth2Client = OAuth2Client;\nOAuth2Client.GOOGLE_TOKEN_INFO_URL = 'https://oauth2.googleapis.com/tokeninfo';\n/**\n * The base URL for auth endpoints.\n */\nOAuth2Client.GOOGLE_OAUTH2_AUTH_BASE_URL_ = 'https://accounts.google.com/o/oauth2/v2/auth';\n/**\n * The base endpoint for token retrieval.\n */\nOAuth2Client.GOOGLE_OAUTH2_TOKEN_URL_ = 'https://oauth2.googleapis.com/token';\n/**\n * The base endpoint to revoke tokens.\n */\nOAuth2Client.GOOGLE_OAUTH2_REVOKE_URL_ = 'https://oauth2.googleapis.com/revoke';\n/**\n * Google Sign on certificates in PEM format.\n */\nOAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_PEM_CERTS_URL_ = 'https://www.googleapis.com/oauth2/v1/certs';\n/**\n * Google Sign on certificates in JWK format.\n */\nOAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_JWK_CERTS_URL_ = 'https://www.googleapis.com/oauth2/v3/certs';\n/**\n * Google Sign on certificates in JWK format.\n */\nOAuth2Client.GOOGLE_OAUTH2_IAP_PUBLIC_KEY_URL_ = 'https://www.gstatic.com/iap/verify/public_key';\n/**\n * Clock skew - five minutes in seconds\n */\nOAuth2Client.CLOCK_SKEW_SECS_ = 300;\n/**\n * Max Token Lifetime is one day in seconds\n */\nOAuth2Client.MAX_TOKEN_LIFETIME_SECS_ = 86400;\n/**\n * The allowed oauth token issuers.\n */\nOAuth2Client.ISSUERS_ = [\n 'accounts.google.com',\n 'https://accounts.google.com',\n];\n//# sourceMappingURL=oauth2client.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorFromOAuthErrorResponse = exports.OAuthClientAuthHandler = void 0;\nconst querystring = require(\"querystring\");\nconst crypto_1 = require(\"../crypto/crypto\");\n/** List of HTTP methods that accept request bodies. */\nconst METHODS_SUPPORTING_REQUEST_BODY = ['PUT', 'POST', 'PATCH'];\n/**\n * Abstract class for handling client authentication in OAuth-based\n * operations.\n * When request-body client authentication is used, only application/json and\n * application/x-www-form-urlencoded content types for HTTP methods that support\n * request bodies are supported.\n */\nclass OAuthClientAuthHandler {\n /**\n * Instantiates an OAuth client authentication handler.\n * @param clientAuthentication The client auth credentials.\n */\n constructor(clientAuthentication) {\n this.clientAuthentication = clientAuthentication;\n this.crypto = crypto_1.createCrypto();\n }\n /**\n * Applies client authentication on the OAuth request's headers or POST\n * body but does not process the request.\n * @param opts The GaxiosOptions whose headers or data are to be modified\n * depending on the client authentication mechanism to be used.\n * @param bearerToken The optional bearer token to use for authentication.\n * When this is used, no client authentication credentials are needed.\n */\n applyClientAuthenticationOptions(opts, bearerToken) {\n // Inject authenticated header.\n this.injectAuthenticatedHeaders(opts, bearerToken);\n // Inject authenticated request body.\n if (!bearerToken) {\n this.injectAuthenticatedRequestBody(opts);\n }\n }\n /**\n * Applies client authentication on the request's header if either\n * basic authentication or bearer token authentication is selected.\n *\n * @param opts The GaxiosOptions whose headers or data are to be modified\n * depending on the client authentication mechanism to be used.\n * @param bearerToken The optional bearer token to use for authentication.\n * When this is used, no client authentication credentials are needed.\n */\n injectAuthenticatedHeaders(opts, bearerToken) {\n var _a;\n // Bearer token prioritized higher than basic Auth.\n if (bearerToken) {\n opts.headers = opts.headers || {};\n Object.assign(opts.headers, {\n Authorization: `Bearer ${bearerToken}}`,\n });\n }\n else if (((_a = this.clientAuthentication) === null || _a === void 0 ? void 0 : _a.confidentialClientType) === 'basic') {\n opts.headers = opts.headers || {};\n const clientId = this.clientAuthentication.clientId;\n const clientSecret = this.clientAuthentication.clientSecret || '';\n const base64EncodedCreds = this.crypto.encodeBase64StringUtf8(`${clientId}:${clientSecret}`);\n Object.assign(opts.headers, {\n Authorization: `Basic ${base64EncodedCreds}`,\n });\n }\n }\n /**\n * Applies client authentication on the request's body if request-body\n * client authentication is selected.\n *\n * @param opts The GaxiosOptions whose headers or data are to be modified\n * depending on the client authentication mechanism to be used.\n */\n injectAuthenticatedRequestBody(opts) {\n var _a;\n if (((_a = this.clientAuthentication) === null || _a === void 0 ? void 0 : _a.confidentialClientType) === 'request-body') {\n const method = (opts.method || 'GET').toUpperCase();\n // Inject authenticated request body.\n if (METHODS_SUPPORTING_REQUEST_BODY.indexOf(method) !== -1) {\n // Get content-type.\n let contentType;\n const headers = opts.headers || {};\n for (const key in headers) {\n if (key.toLowerCase() === 'content-type' && headers[key]) {\n contentType = headers[key].toLowerCase();\n break;\n }\n }\n if (contentType === 'application/x-www-form-urlencoded') {\n opts.data = opts.data || '';\n const data = querystring.parse(opts.data);\n Object.assign(data, {\n client_id: this.clientAuthentication.clientId,\n client_secret: this.clientAuthentication.clientSecret || '',\n });\n opts.data = querystring.stringify(data);\n }\n else if (contentType === 'application/json') {\n opts.data = opts.data || {};\n Object.assign(opts.data, {\n client_id: this.clientAuthentication.clientId,\n client_secret: this.clientAuthentication.clientSecret || '',\n });\n }\n else {\n throw new Error(`${contentType} content-types are not supported with ` +\n `${this.clientAuthentication.confidentialClientType} ` +\n 'client authentication');\n }\n }\n else {\n throw new Error(`${method} HTTP method does not support ` +\n `${this.clientAuthentication.confidentialClientType} ` +\n 'client authentication');\n }\n }\n }\n}\nexports.OAuthClientAuthHandler = OAuthClientAuthHandler;\n/**\n * Converts an OAuth error response to a native JavaScript Error.\n * @param resp The OAuth error response to convert to a native Error object.\n * @param err The optional original error. If provided, the error properties\n * will be copied to the new error.\n * @return The converted native Error object.\n */\nfunction getErrorFromOAuthErrorResponse(resp, err) {\n // Error response.\n const errorCode = resp.error;\n const errorDescription = resp.error_description;\n const errorUri = resp.error_uri;\n let message = `Error code ${errorCode}`;\n if (typeof errorDescription !== 'undefined') {\n message += `: ${errorDescription}`;\n }\n if (typeof errorUri !== 'undefined') {\n message += ` - ${errorUri}`;\n }\n const newError = new Error(message);\n // Copy properties from original error to newly generated error.\n if (err) {\n const keys = Object.keys(err);\n if (err.stack) {\n // Copy error.stack if available.\n keys.push('stack');\n }\n keys.forEach(key => {\n // Do not overwrite the message field.\n if (key !== 'message') {\n Object.defineProperty(newError, key, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: err[key],\n writable: false,\n enumerable: true,\n });\n }\n });\n }\n return newError;\n}\nexports.getErrorFromOAuthErrorResponse = getErrorFromOAuthErrorResponse;\n//# sourceMappingURL=oauth2common.js.map","\"use strict\";\n// Copyright 2015 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserRefreshClient = void 0;\nconst oauth2client_1 = require(\"./oauth2client\");\nclass UserRefreshClient extends oauth2client_1.OAuth2Client {\n constructor(optionsOrClientId, clientSecret, refreshToken, eagerRefreshThresholdMillis, forceRefreshOnFailure) {\n const opts = optionsOrClientId && typeof optionsOrClientId === 'object'\n ? optionsOrClientId\n : {\n clientId: optionsOrClientId,\n clientSecret,\n refreshToken,\n eagerRefreshThresholdMillis,\n forceRefreshOnFailure,\n };\n super({\n clientId: opts.clientId,\n clientSecret: opts.clientSecret,\n eagerRefreshThresholdMillis: opts.eagerRefreshThresholdMillis,\n forceRefreshOnFailure: opts.forceRefreshOnFailure,\n });\n this._refreshToken = opts.refreshToken;\n this.credentials.refresh_token = opts.refreshToken;\n }\n /**\n * Refreshes the access token.\n * @param refreshToken An ignored refreshToken..\n * @param callback Optional callback.\n */\n async refreshTokenNoCache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refreshToken) {\n return super.refreshTokenNoCache(this._refreshToken);\n }\n /**\n * Create a UserRefreshClient credentials instance using the given input\n * options.\n * @param json The input object.\n */\n fromJSON(json) {\n if (!json) {\n throw new Error('Must pass in a JSON object containing the user refresh token');\n }\n if (json.type !== 'authorized_user') {\n throw new Error('The incoming JSON object does not have the \"authorized_user\" type');\n }\n if (!json.client_id) {\n throw new Error('The incoming JSON object does not contain a client_id field');\n }\n if (!json.client_secret) {\n throw new Error('The incoming JSON object does not contain a client_secret field');\n }\n if (!json.refresh_token) {\n throw new Error('The incoming JSON object does not contain a refresh_token field');\n }\n this._clientId = json.client_id;\n this._clientSecret = json.client_secret;\n this._refreshToken = json.refresh_token;\n this.credentials.refresh_token = json.refresh_token;\n this.quotaProjectId = json.quota_project_id;\n }\n fromStream(inputStream, callback) {\n if (callback) {\n this.fromStreamAsync(inputStream).then(() => callback(), callback);\n }\n else {\n return this.fromStreamAsync(inputStream);\n }\n }\n async fromStreamAsync(inputStream) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n return reject(new Error('Must pass in a stream containing the user refresh token.'));\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('error', reject)\n .on('data', chunk => (s += chunk))\n .on('end', () => {\n try {\n const data = JSON.parse(s);\n this.fromJSON(data);\n return resolve();\n }\n catch (err) {\n return reject(err);\n }\n });\n });\n }\n}\nexports.UserRefreshClient = UserRefreshClient;\n//# sourceMappingURL=refreshclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StsCredentials = void 0;\nconst querystring = require(\"querystring\");\nconst transporters_1 = require(\"../transporters\");\nconst oauth2common_1 = require(\"./oauth2common\");\n/**\n * Implements the OAuth 2.0 token exchange based on\n * https://tools.ietf.org/html/rfc8693\n */\nclass StsCredentials extends oauth2common_1.OAuthClientAuthHandler {\n /**\n * Initializes an STS credentials instance.\n * @param tokenExchangeEndpoint The token exchange endpoint.\n * @param clientAuthentication The client authentication credentials if\n * available.\n */\n constructor(tokenExchangeEndpoint, clientAuthentication) {\n super(clientAuthentication);\n this.tokenExchangeEndpoint = tokenExchangeEndpoint;\n this.transporter = new transporters_1.DefaultTransporter();\n }\n /**\n * Exchanges the provided token for another type of token based on the\n * rfc8693 spec.\n * @param stsCredentialsOptions The token exchange options used to populate\n * the token exchange request.\n * @param additionalHeaders Optional additional headers to pass along the\n * request.\n * @param options Optional additional GCP-specific non-spec defined options\n * to send with the request.\n * Example: `&options=${encodeUriComponent(JSON.stringified(options))}`\n * @return A promise that resolves with the token exchange response containing\n * the requested token and its expiration time.\n */\n async exchangeToken(stsCredentialsOptions, additionalHeaders, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options) {\n var _a, _b, _c;\n const values = {\n grant_type: stsCredentialsOptions.grantType,\n resource: stsCredentialsOptions.resource,\n audience: stsCredentialsOptions.audience,\n scope: (_a = stsCredentialsOptions.scope) === null || _a === void 0 ? void 0 : _a.join(' '),\n requested_token_type: stsCredentialsOptions.requestedTokenType,\n subject_token: stsCredentialsOptions.subjectToken,\n subject_token_type: stsCredentialsOptions.subjectTokenType,\n actor_token: (_b = stsCredentialsOptions.actingParty) === null || _b === void 0 ? void 0 : _b.actorToken,\n actor_token_type: (_c = stsCredentialsOptions.actingParty) === null || _c === void 0 ? void 0 : _c.actorTokenType,\n // Non-standard GCP-specific options.\n options: options && JSON.stringify(options),\n };\n // Remove undefined fields.\n Object.keys(values).forEach(key => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof values[key] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete values[key];\n }\n });\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n // Inject additional STS headers if available.\n Object.assign(headers, additionalHeaders || {});\n const opts = {\n url: this.tokenExchangeEndpoint,\n method: 'POST',\n headers,\n data: querystring.stringify(values),\n responseType: 'json',\n };\n // Apply OAuth client authentication.\n this.applyClientAuthenticationOptions(opts);\n try {\n const response = await this.transporter.request(opts);\n // Successful response.\n const stsSuccessfulResponse = response.data;\n stsSuccessfulResponse.res = response;\n return stsSuccessfulResponse;\n }\n catch (error) {\n // Translate error to OAuthError.\n if (error.response) {\n throw oauth2common_1.getErrorFromOAuthErrorResponse(error.response.data, \n // Preserve other fields from the original error.\n error);\n }\n // Request could fail before the server responds.\n throw error;\n }\n }\n}\nexports.StsCredentials = StsCredentials;\n//# sourceMappingURL=stscredentials.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* global window */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserCrypto = void 0;\n// This file implements crypto functions we need using in-browser\n// SubtleCrypto interface `window.crypto.subtle`.\nconst base64js = require(\"base64-js\");\n// Not all browsers support `TextEncoder`. The following `require` will\n// provide a fast UTF8-only replacement for those browsers that don't support\n// text encoding natively.\n// eslint-disable-next-line node/no-unsupported-features/node-builtins\nif (typeof process === 'undefined' && typeof TextEncoder === 'undefined') {\n require('fast-text-encoding');\n}\nconst crypto_1 = require(\"../crypto\");\nclass BrowserCrypto {\n constructor() {\n if (typeof window === 'undefined' ||\n window.crypto === undefined ||\n window.crypto.subtle === undefined) {\n throw new Error(\"SubtleCrypto not found. Make sure it's an https:// website.\");\n }\n }\n async sha256DigestBase64(str) {\n // SubtleCrypto digest() method is async, so we must make\n // this method async as well.\n // To calculate SHA256 digest using SubtleCrypto, we first\n // need to convert an input string to an ArrayBuffer:\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const inputBuffer = new TextEncoder().encode(str);\n // Result is ArrayBuffer as well.\n const outputBuffer = await window.crypto.subtle.digest('SHA-256', inputBuffer);\n return base64js.fromByteArray(new Uint8Array(outputBuffer));\n }\n randomBytesBase64(count) {\n const array = new Uint8Array(count);\n window.crypto.getRandomValues(array);\n return base64js.fromByteArray(array);\n }\n static padBase64(base64) {\n // base64js requires padding, so let's add some '='\n while (base64.length % 4 !== 0) {\n base64 += '=';\n }\n return base64;\n }\n async verify(pubkey, data, signature) {\n const algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' },\n };\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const dataArray = new TextEncoder().encode(data);\n const signatureArray = base64js.toByteArray(BrowserCrypto.padBase64(signature));\n const cryptoKey = await window.crypto.subtle.importKey('jwk', pubkey, algo, true, ['verify']);\n // SubtleCrypto's verify method is async so we must make\n // this method async as well.\n const result = await window.crypto.subtle.verify(algo, cryptoKey, signatureArray, dataArray);\n return result;\n }\n async sign(privateKey, data) {\n const algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' },\n };\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const dataArray = new TextEncoder().encode(data);\n const cryptoKey = await window.crypto.subtle.importKey('jwk', privateKey, algo, true, ['sign']);\n // SubtleCrypto's sign method is async so we must make\n // this method async as well.\n const result = await window.crypto.subtle.sign(algo, cryptoKey, dataArray);\n return base64js.fromByteArray(new Uint8Array(result));\n }\n decodeBase64StringUtf8(base64) {\n const uint8array = base64js.toByteArray(BrowserCrypto.padBase64(base64));\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const result = new TextDecoder().decode(uint8array);\n return result;\n }\n encodeBase64StringUtf8(text) {\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const uint8array = new TextEncoder().encode(text);\n const result = base64js.fromByteArray(uint8array);\n return result;\n }\n /**\n * Computes the SHA-256 hash of the provided string.\n * @param str The plain text string to hash.\n * @return A promise that resolves with the SHA-256 hash of the provided\n * string in hexadecimal encoding.\n */\n async sha256DigestHex(str) {\n // SubtleCrypto digest() method is async, so we must make\n // this method async as well.\n // To calculate SHA256 digest using SubtleCrypto, we first\n // need to convert an input string to an ArrayBuffer:\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const inputBuffer = new TextEncoder().encode(str);\n // Result is ArrayBuffer as well.\n const outputBuffer = await window.crypto.subtle.digest('SHA-256', inputBuffer);\n return crypto_1.fromArrayBufferToHex(outputBuffer);\n }\n /**\n * Computes the HMAC hash of a message using the provided crypto key and the\n * SHA-256 algorithm.\n * @param key The secret crypto key in utf-8 or ArrayBuffer format.\n * @param msg The plain text message.\n * @return A promise that resolves with the HMAC-SHA256 hash in ArrayBuffer\n * format.\n */\n async signWithHmacSha256(key, msg) {\n // Convert key, if provided in ArrayBuffer format, to string.\n const rawKey = typeof key === 'string'\n ? key\n : String.fromCharCode(...new Uint16Array(key));\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const enc = new TextEncoder();\n const cryptoKey = await window.crypto.subtle.importKey('raw', enc.encode(rawKey), {\n name: 'HMAC',\n hash: {\n name: 'SHA-256',\n },\n }, false, ['sign']);\n return window.crypto.subtle.sign('HMAC', cryptoKey, enc.encode(msg));\n }\n}\nexports.BrowserCrypto = BrowserCrypto;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* global window */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromArrayBufferToHex = exports.hasBrowserCrypto = exports.createCrypto = void 0;\nconst crypto_1 = require(\"./browser/crypto\");\nconst crypto_2 = require(\"./node/crypto\");\nfunction createCrypto() {\n if (hasBrowserCrypto()) {\n return new crypto_1.BrowserCrypto();\n }\n return new crypto_2.NodeCrypto();\n}\nexports.createCrypto = createCrypto;\nfunction hasBrowserCrypto() {\n return (typeof window !== 'undefined' &&\n typeof window.crypto !== 'undefined' &&\n typeof window.crypto.subtle !== 'undefined');\n}\nexports.hasBrowserCrypto = hasBrowserCrypto;\n/**\n * Converts an ArrayBuffer to a hexadecimal string.\n * @param arrayBuffer The ArrayBuffer to convert to hexadecimal string.\n * @return The hexadecimal encoding of the ArrayBuffer.\n */\nfunction fromArrayBufferToHex(arrayBuffer) {\n // Convert buffer to byte array.\n const byteArray = Array.from(new Uint8Array(arrayBuffer));\n // Convert bytes to hex string.\n return byteArray\n .map(byte => {\n return byte.toString(16).padStart(2, '0');\n })\n .join('');\n}\nexports.fromArrayBufferToHex = fromArrayBufferToHex;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeCrypto = void 0;\nconst crypto = require(\"crypto\");\nclass NodeCrypto {\n async sha256DigestBase64(str) {\n return crypto.createHash('sha256').update(str).digest('base64');\n }\n randomBytesBase64(count) {\n return crypto.randomBytes(count).toString('base64');\n }\n async verify(pubkey, data, signature) {\n const verifier = crypto.createVerify('sha256');\n verifier.update(data);\n verifier.end();\n return verifier.verify(pubkey, signature, 'base64');\n }\n async sign(privateKey, data) {\n const signer = crypto.createSign('RSA-SHA256');\n signer.update(data);\n signer.end();\n return signer.sign(privateKey, 'base64');\n }\n decodeBase64StringUtf8(base64) {\n return Buffer.from(base64, 'base64').toString('utf-8');\n }\n encodeBase64StringUtf8(text) {\n return Buffer.from(text, 'utf-8').toString('base64');\n }\n /**\n * Computes the SHA-256 hash of the provided string.\n * @param str The plain text string to hash.\n * @return A promise that resolves with the SHA-256 hash of the provided\n * string in hexadecimal encoding.\n */\n async sha256DigestHex(str) {\n return crypto.createHash('sha256').update(str).digest('hex');\n }\n /**\n * Computes the HMAC hash of a message using the provided crypto key and the\n * SHA-256 algorithm.\n * @param key The secret crypto key in utf-8 or ArrayBuffer format.\n * @param msg The plain text message.\n * @return A promise that resolves with the HMAC-SHA256 hash in ArrayBuffer\n * format.\n */\n async signWithHmacSha256(key, msg) {\n const cryptoKey = typeof key === 'string' ? key : toBuffer(key);\n return toArrayBuffer(crypto.createHmac('sha256', cryptoKey).update(msg).digest());\n }\n}\nexports.NodeCrypto = NodeCrypto;\n/**\n * Converts a Node.js Buffer to an ArrayBuffer.\n * https://stackoverflow.com/questions/8609289/convert-a-binary-nodejs-buffer-to-javascript-arraybuffer\n * @param buffer The Buffer input to covert.\n * @return The ArrayBuffer representation of the input.\n */\nfunction toArrayBuffer(buffer) {\n return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);\n}\n/**\n * Converts an ArrayBuffer to a Node.js Buffer.\n * @param arrayBuffer The ArrayBuffer input to covert.\n * @return The Buffer representation of the input.\n */\nfunction toBuffer(arrayBuffer) {\n return Buffer.from(arrayBuffer);\n}\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GoogleAuth = exports.auth = void 0;\n// Copyright 2017 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nconst googleauth_1 = require(\"./auth/googleauth\");\nObject.defineProperty(exports, \"GoogleAuth\", { enumerable: true, get: function () { return googleauth_1.GoogleAuth; } });\nvar authclient_1 = require(\"./auth/authclient\");\nObject.defineProperty(exports, \"AuthClient\", { enumerable: true, get: function () { return authclient_1.AuthClient; } });\nvar computeclient_1 = require(\"./auth/computeclient\");\nObject.defineProperty(exports, \"Compute\", { enumerable: true, get: function () { return computeclient_1.Compute; } });\nvar envDetect_1 = require(\"./auth/envDetect\");\nObject.defineProperty(exports, \"GCPEnv\", { enumerable: true, get: function () { return envDetect_1.GCPEnv; } });\nvar iam_1 = require(\"./auth/iam\");\nObject.defineProperty(exports, \"IAMAuth\", { enumerable: true, get: function () { return iam_1.IAMAuth; } });\nvar idtokenclient_1 = require(\"./auth/idtokenclient\");\nObject.defineProperty(exports, \"IdTokenClient\", { enumerable: true, get: function () { return idtokenclient_1.IdTokenClient; } });\nvar jwtaccess_1 = require(\"./auth/jwtaccess\");\nObject.defineProperty(exports, \"JWTAccess\", { enumerable: true, get: function () { return jwtaccess_1.JWTAccess; } });\nvar jwtclient_1 = require(\"./auth/jwtclient\");\nObject.defineProperty(exports, \"JWT\", { enumerable: true, get: function () { return jwtclient_1.JWT; } });\nvar impersonated_1 = require(\"./auth/impersonated\");\nObject.defineProperty(exports, \"Impersonated\", { enumerable: true, get: function () { return impersonated_1.Impersonated; } });\nvar oauth2client_1 = require(\"./auth/oauth2client\");\nObject.defineProperty(exports, \"CodeChallengeMethod\", { enumerable: true, get: function () { return oauth2client_1.CodeChallengeMethod; } });\nObject.defineProperty(exports, \"OAuth2Client\", { enumerable: true, get: function () { return oauth2client_1.OAuth2Client; } });\nvar loginticket_1 = require(\"./auth/loginticket\");\nObject.defineProperty(exports, \"LoginTicket\", { enumerable: true, get: function () { return loginticket_1.LoginTicket; } });\nvar refreshclient_1 = require(\"./auth/refreshclient\");\nObject.defineProperty(exports, \"UserRefreshClient\", { enumerable: true, get: function () { return refreshclient_1.UserRefreshClient; } });\nvar awsclient_1 = require(\"./auth/awsclient\");\nObject.defineProperty(exports, \"AwsClient\", { enumerable: true, get: function () { return awsclient_1.AwsClient; } });\nvar identitypoolclient_1 = require(\"./auth/identitypoolclient\");\nObject.defineProperty(exports, \"IdentityPoolClient\", { enumerable: true, get: function () { return identitypoolclient_1.IdentityPoolClient; } });\nvar externalclient_1 = require(\"./auth/externalclient\");\nObject.defineProperty(exports, \"ExternalAccountClient\", { enumerable: true, get: function () { return externalclient_1.ExternalAccountClient; } });\nvar baseexternalclient_1 = require(\"./auth/baseexternalclient\");\nObject.defineProperty(exports, \"BaseExternalAccountClient\", { enumerable: true, get: function () { return baseexternalclient_1.BaseExternalAccountClient; } });\nvar downscopedclient_1 = require(\"./auth/downscopedclient\");\nObject.defineProperty(exports, \"DownscopedClient\", { enumerable: true, get: function () { return downscopedclient_1.DownscopedClient; } });\nvar transporters_1 = require(\"./transporters\");\nObject.defineProperty(exports, \"DefaultTransporter\", { enumerable: true, get: function () { return transporters_1.DefaultTransporter; } });\nconst auth = new googleauth_1.GoogleAuth();\nexports.auth = auth;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2017 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validate = void 0;\n// Accepts an options object passed from the user to the API. In the\n// previous version of the API, it referred to a `Request` options object.\n// Now it refers to an Axiox Request Config object. This is here to help\n// ensure users don't pass invalid options when they upgrade from 0.x to 1.x.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction validate(options) {\n const vpairs = [\n { invalid: 'uri', expected: 'url' },\n { invalid: 'json', expected: 'data' },\n { invalid: 'qs', expected: 'params' },\n ];\n for (const pair of vpairs) {\n if (options[pair.invalid]) {\n const e = `'${pair.invalid}' is not a valid configuration option. Please use '${pair.expected}' instead. This library is using Axios for requests. Please see https://github.com/axios/axios to learn more about the valid request options.`;\n throw new Error(e);\n }\n }\n}\nexports.validate = validate;\n//# sourceMappingURL=options.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultTransporter = void 0;\nconst gaxios_1 = require(\"gaxios\");\nconst options_1 = require(\"./options\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../../package.json');\nconst PRODUCT_NAME = 'google-api-nodejs-client';\nclass DefaultTransporter {\n /**\n * Configures request options before making a request.\n * @param opts GaxiosOptions options.\n * @return Configured options.\n */\n configure(opts = {}) {\n opts.headers = opts.headers || {};\n if (typeof window === 'undefined') {\n // set transporter user agent if not in browser\n const uaValue = opts.headers['User-Agent'];\n if (!uaValue) {\n opts.headers['User-Agent'] = DefaultTransporter.USER_AGENT;\n }\n else if (!uaValue.includes(`${PRODUCT_NAME}/`)) {\n opts.headers['User-Agent'] = `${uaValue} ${DefaultTransporter.USER_AGENT}`;\n }\n // track google-auth-library-nodejs version:\n const authVersion = `auth/${pkg.version}`;\n if (opts.headers['x-goog-api-client'] &&\n !opts.headers['x-goog-api-client'].includes(authVersion)) {\n opts.headers['x-goog-api-client'] = `${opts.headers['x-goog-api-client']} ${authVersion}`;\n }\n else if (!opts.headers['x-goog-api-client']) {\n const nodeVersion = process.version.replace(/^v/, '');\n opts.headers['x-goog-api-client'] = `gl-node/${nodeVersion} ${authVersion}`;\n }\n }\n return opts;\n }\n request(opts, callback) {\n // ensure the user isn't passing in request-style options\n opts = this.configure(opts);\n try {\n options_1.validate(opts);\n }\n catch (e) {\n if (callback) {\n return callback(e);\n }\n else {\n throw e;\n }\n }\n if (callback) {\n gaxios_1.request(opts).then(r => {\n callback(null, r);\n }, e => {\n callback(this.processError(e));\n });\n }\n else {\n return gaxios_1.request(opts).catch(e => {\n throw this.processError(e);\n });\n }\n }\n /**\n * Changes the error to include details from the body.\n */\n processError(e) {\n const res = e.response;\n const err = e;\n const body = res ? res.data : null;\n if (res && body && body.error && res.status !== 200) {\n if (typeof body.error === 'string') {\n err.message = body.error;\n err.code = res.status.toString();\n }\n else if (Array.isArray(body.error.errors)) {\n err.message = body.error.errors\n .map((err2) => err2.message)\n .join('\\n');\n err.code = body.error.code;\n err.errors = body.error.errors;\n }\n else {\n err.message = body.error.message;\n err.code = body.error.code || res.status;\n }\n }\n else if (res && res.status >= 400) {\n // Consider all 4xx and 5xx responses errors.\n err.message = body;\n err.code = res.status.toString();\n }\n return err;\n }\n}\nexports.DefaultTransporter = DefaultTransporter;\n/**\n * Default user agent.\n */\nDefaultTransporter.USER_AGENT = `${PRODUCT_NAME}/${pkg.version}`;\n//# sourceMappingURL=transporters.js.map","\"use strict\";\n/**\n * Copyright 2018 Google LLC\n *\n * Distributed under MIT license.\n * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPem = void 0;\nconst fs = require(\"fs\");\nconst forge = require(\"node-forge\");\nconst util_1 = require(\"util\");\nconst readFile = util_1.promisify(fs.readFile);\nfunction getPem(filename, callback) {\n if (callback) {\n getPemAsync(filename)\n .then(pem => callback(null, pem))\n .catch(err => callback(err, null));\n }\n else {\n return getPemAsync(filename);\n }\n}\nexports.getPem = getPem;\nfunction getPemAsync(filename) {\n return readFile(filename, { encoding: 'base64' }).then(keyp12 => {\n return convertToPem(keyp12);\n });\n}\n/**\n * Converts a P12 in base64 encoding to a pem.\n * @param p12base64 String containing base64 encoded p12.\n * @returns a string containing the pem.\n */\nfunction convertToPem(p12base64) {\n const p12Der = forge.util.decode64(p12base64);\n const p12Asn1 = forge.asn1.fromDer(p12Der);\n const p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, 'notasecret');\n const bags = p12.getBags({ friendlyName: 'privatekey' });\n if (bags.friendlyName) {\n const privateKey = bags.friendlyName[0].key;\n const pem = forge.pki.privateKeyToPem(privateKey);\n return pem.replace(/\\r\\n/g, '\\n');\n }\n else {\n throw new Error('Unable to get friendly name.');\n }\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n/**\n * Copyright 2018 Google LLC\n *\n * Distributed under MIT license.\n * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GoogleToken = void 0;\nconst fs = require(\"fs\");\nconst gaxios_1 = require(\"gaxios\");\nconst jws = require(\"jws\");\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst readFile = fs.readFile\n ? util_1.promisify(fs.readFile)\n : async () => {\n // if running in the web-browser, fs.readFile may not have been shimmed.\n throw new ErrorWithCode('use key rather than keyFile.', 'MISSING_CREDENTIALS');\n };\nconst GOOGLE_TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token';\nconst GOOGLE_REVOKE_TOKEN_URL = 'https://accounts.google.com/o/oauth2/revoke?token=';\nclass ErrorWithCode extends Error {\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\nlet getPem;\nclass GoogleToken {\n /**\n * Create a GoogleToken.\n *\n * @param options Configuration object.\n */\n constructor(options) {\n this.configure(options);\n }\n get accessToken() {\n return this.rawToken ? this.rawToken.access_token : undefined;\n }\n get idToken() {\n return this.rawToken ? this.rawToken.id_token : undefined;\n }\n get tokenType() {\n return this.rawToken ? this.rawToken.token_type : undefined;\n }\n get refreshToken() {\n return this.rawToken ? this.rawToken.refresh_token : undefined;\n }\n /**\n * Returns whether the token has expired.\n *\n * @return true if the token has expired, false otherwise.\n */\n hasExpired() {\n const now = new Date().getTime();\n if (this.rawToken && this.expiresAt) {\n return now >= this.expiresAt;\n }\n else {\n return true;\n }\n }\n /**\n * Returns whether the token will expire within eagerRefreshThresholdMillis\n *\n * @return true if the token will be expired within eagerRefreshThresholdMillis, false otherwise.\n */\n isTokenExpiring() {\n var _a;\n const now = new Date().getTime();\n const eagerRefreshThresholdMillis = (_a = this.eagerRefreshThresholdMillis) !== null && _a !== void 0 ? _a : 0;\n if (this.rawToken && this.expiresAt) {\n return this.expiresAt <= now + eagerRefreshThresholdMillis;\n }\n else {\n return true;\n }\n }\n getToken(callback, opts = {}) {\n if (typeof callback === 'object') {\n opts = callback;\n callback = undefined;\n }\n opts = Object.assign({\n forceRefresh: false,\n }, opts);\n if (callback) {\n const cb = callback;\n this.getTokenAsync(opts).then(t => cb(null, t), callback);\n return;\n }\n return this.getTokenAsync(opts);\n }\n /**\n * Given a keyFile, extract the key and client email if available\n * @param keyFile Path to a json, pem, or p12 file that contains the key.\n * @returns an object with privateKey and clientEmail properties\n */\n async getCredentials(keyFile) {\n const ext = path.extname(keyFile);\n switch (ext) {\n case '.json': {\n const key = await readFile(keyFile, 'utf8');\n const body = JSON.parse(key);\n const privateKey = body.private_key;\n const clientEmail = body.client_email;\n if (!privateKey || !clientEmail) {\n throw new ErrorWithCode('private_key and client_email are required.', 'MISSING_CREDENTIALS');\n }\n return { privateKey, clientEmail };\n }\n case '.der':\n case '.crt':\n case '.pem': {\n const privateKey = await readFile(keyFile, 'utf8');\n return { privateKey };\n }\n case '.p12':\n case '.pfx': {\n // NOTE: The loading of `google-p12-pem` is deferred for performance\n // reasons. The `node-forge` npm module in `google-p12-pem` adds a fair\n // bit time to overall module loading, and is likely not frequently\n // used. In a future release, p12 support will be entirely removed.\n if (!getPem) {\n getPem = (await Promise.resolve().then(() => require('google-p12-pem'))).getPem;\n }\n const privateKey = await getPem(keyFile);\n return { privateKey };\n }\n default:\n throw new ErrorWithCode('Unknown certificate type. Type is determined based on file extension. ' +\n 'Current supported extensions are *.json, *.pem, and *.p12.', 'UNKNOWN_CERTIFICATE_TYPE');\n }\n }\n async getTokenAsync(opts) {\n if (this.inFlightRequest && !opts.forceRefresh) {\n return this.inFlightRequest;\n }\n try {\n return await (this.inFlightRequest = this.getTokenAsyncInner(opts));\n }\n finally {\n this.inFlightRequest = undefined;\n }\n }\n async getTokenAsyncInner(opts) {\n if (this.isTokenExpiring() === false && opts.forceRefresh === false) {\n return Promise.resolve(this.rawToken);\n }\n if (!this.key && !this.keyFile) {\n throw new Error('No key or keyFile set.');\n }\n if (!this.key && this.keyFile) {\n const creds = await this.getCredentials(this.keyFile);\n this.key = creds.privateKey;\n this.iss = creds.clientEmail || this.iss;\n if (!creds.clientEmail) {\n this.ensureEmail();\n }\n }\n return this.requestToken();\n }\n ensureEmail() {\n if (!this.iss) {\n throw new ErrorWithCode('email is required.', 'MISSING_CREDENTIALS');\n }\n }\n revokeToken(callback) {\n if (callback) {\n this.revokeTokenAsync().then(() => callback(), callback);\n return;\n }\n return this.revokeTokenAsync();\n }\n async revokeTokenAsync() {\n if (!this.accessToken) {\n throw new Error('No token to revoke.');\n }\n const url = GOOGLE_REVOKE_TOKEN_URL + this.accessToken;\n await gaxios_1.request({ url });\n this.configure({\n email: this.iss,\n sub: this.sub,\n key: this.key,\n keyFile: this.keyFile,\n scope: this.scope,\n additionalClaims: this.additionalClaims,\n });\n }\n /**\n * Configure the GoogleToken for re-use.\n * @param {object} options Configuration object.\n */\n configure(options = {}) {\n this.keyFile = options.keyFile;\n this.key = options.key;\n this.rawToken = undefined;\n this.iss = options.email || options.iss;\n this.sub = options.sub;\n this.additionalClaims = options.additionalClaims;\n if (typeof options.scope === 'object') {\n this.scope = options.scope.join(' ');\n }\n else {\n this.scope = options.scope;\n }\n this.eagerRefreshThresholdMillis = options.eagerRefreshThresholdMillis;\n }\n /**\n * Request the token from Google.\n */\n async requestToken() {\n const iat = Math.floor(new Date().getTime() / 1000);\n const additionalClaims = this.additionalClaims || {};\n const payload = Object.assign({\n iss: this.iss,\n scope: this.scope,\n aud: GOOGLE_TOKEN_URL,\n exp: iat + 3600,\n iat,\n sub: this.sub,\n }, additionalClaims);\n const signedJWT = jws.sign({\n header: { alg: 'RS256' },\n payload,\n secret: this.key,\n });\n try {\n const r = await gaxios_1.request({\n method: 'POST',\n url: GOOGLE_TOKEN_URL,\n data: {\n grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',\n assertion: signedJWT,\n },\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n responseType: 'json',\n });\n this.rawToken = r.data;\n this.expiresAt =\n r.data.expires_in === null || r.data.expires_in === undefined\n ? undefined\n : (iat + r.data.expires_in) * 1000;\n return this.rawToken;\n }\n catch (e) {\n this.rawToken = undefined;\n this.tokenExpires = undefined;\n const body = e.response && e.response.data ? e.response.data : {};\n if (body.error) {\n const desc = body.error_description\n ? `: ${body.error_description}`\n : '';\n e.message = `${body.error}${desc}`;\n }\n throw e;\n }\n }\n}\nexports.GoogleToken = GoogleToken;\n//# sourceMappingURL=index.js.map","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","// Original author:\n// https://github.com/ashi009/node-fast-crc32c/blob/5e7f9d63cfdb3de9b6c34577466de3dfd732c25d/impls/js_crc32c.js\n\n'use strict'\n\nvar kCRCTable = new Int32Array([\n 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4,\n 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,\n 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b,\n 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,\n 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b,\n 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,\n 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54,\n 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,\n 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a,\n 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,\n 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5,\n 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,\n 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45,\n 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,\n 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a,\n 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,\n 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48,\n 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,\n 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687,\n 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,\n 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927,\n 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,\n 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8,\n 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,\n 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096,\n 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,\n 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859,\n 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,\n 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9,\n 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,\n 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36,\n 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,\n 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c,\n 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,\n 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043,\n 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,\n 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3,\n 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,\n 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c,\n 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,\n 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652,\n 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,\n 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d,\n 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,\n 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d,\n 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,\n 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2,\n 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,\n 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530,\n 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,\n 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff,\n 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,\n 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f,\n 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,\n 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90,\n 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,\n 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee,\n 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,\n 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321,\n 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,\n 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81,\n 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,\n 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e,\n 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351\n])\n\nmodule.exports = {\n calculate: function (buf, initial) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var crc = (initial | 0) ^ -1\n for (var i = 0; i < buf.length; i++)\n crc = kCRCTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8)\n\n return (crc ^ -1) >>> 0\n }\n}","'use strict'\n\nvar crc\ntry {\n crc = require('fast-crc32c')\n} catch (e) {\n crc = require('./crc32c.js')\n}\n\nvar crypto = require('crypto')\nvar { PassThrough } = require('stream')\n\nmodule.exports = function (cfg) {\n cfg = cfg || {}\n\n var crc32c = cfg.crc32c !== false\n var md5 = cfg.md5 !== false\n\n var hashes = {}\n if (md5) hashes.md5 = crypto.createHash('md5')\n\n var onData = function (chunk, enc, done) {\n if (crc32c) hashes.crc32c = crc.calculate(chunk, hashes.crc32c || 0)\n if (md5) hashes.md5.update(chunk)\n\n done(null, chunk)\n }\n\n var onFlush = function (done) {\n if (crc32c) hashes.crc32c = Buffer.from([hashes.crc32c]).toString('base64')\n if (md5) hashes.md5 = hashes.md5.digest('base64')\n\n done()\n }\n\n var validationStream = new PassThrough({\n transform: onData,\n flush: onFlush\n })\n\n validationStream.test = function (algo, sum) {\n return hashes[algo] === sum\n }\n\n return validationStream\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst net_1 = __importDefault(require(\"net\"));\nconst tls_1 = __importDefault(require(\"tls\"));\nconst url_1 = __importDefault(require(\"url\"));\nconst debug_1 = __importDefault(require(\"debug\"));\nconst once_1 = __importDefault(require(\"@tootallnate/once\"));\nconst agent_base_1 = require(\"agent-base\");\nconst debug = (0, debug_1.default)('http-proxy-agent');\nfunction isHTTPS(protocol) {\n return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false;\n}\n/**\n * The `HttpProxyAgent` implements an HTTP Agent subclass that connects\n * to the specified \"HTTP proxy server\" in order to proxy HTTP requests.\n *\n * @api public\n */\nclass HttpProxyAgent extends agent_base_1.Agent {\n constructor(_opts) {\n let opts;\n if (typeof _opts === 'string') {\n opts = url_1.default.parse(_opts);\n }\n else {\n opts = _opts;\n }\n if (!opts) {\n throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');\n }\n debug('Creating new HttpProxyAgent instance: %o', opts);\n super(opts);\n const proxy = Object.assign({}, opts);\n // If `true`, then connect to the proxy server over TLS.\n // Defaults to `false`.\n this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol);\n // Prefer `hostname` over `host`, and set the `port` if needed.\n proxy.host = proxy.hostname || proxy.host;\n if (typeof proxy.port === 'string') {\n proxy.port = parseInt(proxy.port, 10);\n }\n if (!proxy.port && proxy.host) {\n proxy.port = this.secureProxy ? 443 : 80;\n }\n if (proxy.host && proxy.path) {\n // If both a `host` and `path` are specified then it's most likely\n // the result of a `url.parse()` call... we need to remove the\n // `path` portion so that `net.connect()` doesn't attempt to open\n // that as a Unix socket file.\n delete proxy.path;\n delete proxy.pathname;\n }\n this.proxy = proxy;\n }\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n *\n * @api protected\n */\n callback(req, opts) {\n return __awaiter(this, void 0, void 0, function* () {\n const { proxy, secureProxy } = this;\n const parsed = url_1.default.parse(req.path);\n if (!parsed.protocol) {\n parsed.protocol = 'http:';\n }\n if (!parsed.hostname) {\n parsed.hostname = opts.hostname || opts.host || null;\n }\n if (parsed.port == null && typeof opts.port) {\n parsed.port = String(opts.port);\n }\n if (parsed.port === '80') {\n // if port is 80, then we can remove the port so that the\n // \":80\" portion is not on the produced URL\n parsed.port = '';\n }\n // Change the `http.ClientRequest` instance's \"path\" field\n // to the absolute path of the URL that will be requested.\n req.path = url_1.default.format(parsed);\n // Inject the `Proxy-Authorization` header if necessary.\n if (proxy.auth) {\n req.setHeader('Proxy-Authorization', `Basic ${Buffer.from(proxy.auth).toString('base64')}`);\n }\n // Create a socket connection to the proxy server.\n let socket;\n if (secureProxy) {\n debug('Creating `tls.Socket`: %o', proxy);\n socket = tls_1.default.connect(proxy);\n }\n else {\n debug('Creating `net.Socket`: %o', proxy);\n socket = net_1.default.connect(proxy);\n }\n // At this point, the http ClientRequest's internal `_header` field\n // might have already been set. If this is the case then we'll need\n // to re-generate the string since we just changed the `req.path`.\n if (req._header) {\n let first;\n let endOfHeaders;\n debug('Regenerating stored HTTP header string for request');\n req._header = null;\n req._implicitHeader();\n if (req.output && req.output.length > 0) {\n // Node < 12\n debug('Patching connection write() output buffer with updated header');\n first = req.output[0];\n endOfHeaders = first.indexOf('\\r\\n\\r\\n') + 4;\n req.output[0] = req._header + first.substring(endOfHeaders);\n debug('Output buffer: %o', req.output);\n }\n else if (req.outputData && req.outputData.length > 0) {\n // Node >= 12\n debug('Patching connection write() output buffer with updated header');\n first = req.outputData[0].data;\n endOfHeaders = first.indexOf('\\r\\n\\r\\n') + 4;\n req.outputData[0].data =\n req._header + first.substring(endOfHeaders);\n debug('Output buffer: %o', req.outputData[0].data);\n }\n }\n // Wait for the socket's `connect` event, so that this `callback()`\n // function throws instead of the `http` request machinery. This is\n // important for i.e. `PacProxyAgent` which determines a failed proxy\n // connection via the `callback()` function throwing.\n yield (0, once_1.default)(socket, 'connect');\n return socket;\n });\n }\n}\nexports.default = HttpProxyAgent;\n//# sourceMappingURL=agent.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst agent_1 = __importDefault(require(\"./agent\"));\nfunction createHttpProxyAgent(opts) {\n return new agent_1.default(opts);\n}\n(function (createHttpProxyAgent) {\n createHttpProxyAgent.HttpProxyAgent = agent_1.default;\n createHttpProxyAgent.prototype = agent_1.default.prototype;\n})(createHttpProxyAgent || (createHttpProxyAgent = {}));\nmodule.exports = createHttpProxyAgent;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst net_1 = __importDefault(require(\"net\"));\nconst tls_1 = __importDefault(require(\"tls\"));\nconst url_1 = __importDefault(require(\"url\"));\nconst assert_1 = __importDefault(require(\"assert\"));\nconst debug_1 = __importDefault(require(\"debug\"));\nconst agent_base_1 = require(\"agent-base\");\nconst parse_proxy_response_1 = __importDefault(require(\"./parse-proxy-response\"));\nconst debug = debug_1.default('https-proxy-agent:agent');\n/**\n * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to\n * the specified \"HTTP(s) proxy server\" in order to proxy HTTPS requests.\n *\n * Outgoing HTTP requests are first tunneled through the proxy server using the\n * `CONNECT` HTTP request method to establish a connection to the proxy server,\n * and then the proxy server connects to the destination target and issues the\n * HTTP request from the proxy server.\n *\n * `https:` requests have their socket connection upgraded to TLS once\n * the connection to the proxy server has been established.\n *\n * @api public\n */\nclass HttpsProxyAgent extends agent_base_1.Agent {\n constructor(_opts) {\n let opts;\n if (typeof _opts === 'string') {\n opts = url_1.default.parse(_opts);\n }\n else {\n opts = _opts;\n }\n if (!opts) {\n throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');\n }\n debug('creating new HttpsProxyAgent instance: %o', opts);\n super(opts);\n const proxy = Object.assign({}, opts);\n // If `true`, then connect to the proxy server over TLS.\n // Defaults to `false`.\n this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol);\n // Prefer `hostname` over `host`, and set the `port` if needed.\n proxy.host = proxy.hostname || proxy.host;\n if (typeof proxy.port === 'string') {\n proxy.port = parseInt(proxy.port, 10);\n }\n if (!proxy.port && proxy.host) {\n proxy.port = this.secureProxy ? 443 : 80;\n }\n // ALPN is supported by Node.js >= v5.\n // attempt to negotiate http/1.1 for proxy servers that support http/2\n if (this.secureProxy && !('ALPNProtocols' in proxy)) {\n proxy.ALPNProtocols = ['http 1.1'];\n }\n if (proxy.host && proxy.path) {\n // If both a `host` and `path` are specified then it's most likely\n // the result of a `url.parse()` call... we need to remove the\n // `path` portion so that `net.connect()` doesn't attempt to open\n // that as a Unix socket file.\n delete proxy.path;\n delete proxy.pathname;\n }\n this.proxy = proxy;\n }\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n *\n * @api protected\n */\n callback(req, opts) {\n return __awaiter(this, void 0, void 0, function* () {\n const { proxy, secureProxy } = this;\n // Create a socket connection to the proxy server.\n let socket;\n if (secureProxy) {\n debug('Creating `tls.Socket`: %o', proxy);\n socket = tls_1.default.connect(proxy);\n }\n else {\n debug('Creating `net.Socket`: %o', proxy);\n socket = net_1.default.connect(proxy);\n }\n const headers = Object.assign({}, proxy.headers);\n const hostname = `${opts.host}:${opts.port}`;\n let payload = `CONNECT ${hostname} HTTP/1.1\\r\\n`;\n // Inject the `Proxy-Authorization` header if necessary.\n if (proxy.auth) {\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`;\n }\n // The `Host` header should only include the port\n // number when it is not the default port.\n let { host, port, secureEndpoint } = opts;\n if (!isDefaultPort(port, secureEndpoint)) {\n host += `:${port}`;\n }\n headers.Host = host;\n headers.Connection = 'close';\n for (const name of Object.keys(headers)) {\n payload += `${name}: ${headers[name]}\\r\\n`;\n }\n const proxyResponsePromise = parse_proxy_response_1.default(socket);\n socket.write(`${payload}\\r\\n`);\n const { statusCode, buffered } = yield proxyResponsePromise;\n if (statusCode === 200) {\n req.once('socket', resume);\n if (opts.secureEndpoint) {\n // The proxy is connecting to a TLS server, so upgrade\n // this socket connection to a TLS connection.\n debug('Upgrading socket connection to TLS');\n const servername = opts.servername || opts.host;\n return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket,\n servername }));\n }\n return socket;\n }\n // Some other status code that's not 200... need to re-play the HTTP\n // header \"data\" events onto the socket once the HTTP machinery is\n // attached so that the node core `http` can parse and handle the\n // error status code.\n // Close the original socket, and a new \"fake\" socket is returned\n // instead, so that the proxy doesn't get the HTTP request\n // written to it (which may contain `Authorization` headers or other\n // sensitive data).\n //\n // See: https://hackerone.com/reports/541502\n socket.destroy();\n const fakeSocket = new net_1.default.Socket({ writable: false });\n fakeSocket.readable = true;\n // Need to wait for the \"socket\" event to re-play the \"data\" events.\n req.once('socket', (s) => {\n debug('replaying proxy buffer for failed request');\n assert_1.default(s.listenerCount('data') > 0);\n // Replay the \"buffered\" Buffer onto the fake `socket`, since at\n // this point the HTTP module machinery has been hooked up for\n // the user.\n s.push(buffered);\n s.push(null);\n });\n return fakeSocket;\n });\n }\n}\nexports.default = HttpsProxyAgent;\nfunction resume(socket) {\n socket.resume();\n}\nfunction isDefaultPort(port, secure) {\n return Boolean((!secure && port === 80) || (secure && port === 443));\n}\nfunction isHTTPS(protocol) {\n return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false;\n}\nfunction omit(obj, ...keys) {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n//# sourceMappingURL=agent.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst agent_1 = __importDefault(require(\"./agent\"));\nfunction createHttpsProxyAgent(opts) {\n return new agent_1.default(opts);\n}\n(function (createHttpsProxyAgent) {\n createHttpsProxyAgent.HttpsProxyAgent = agent_1.default;\n createHttpsProxyAgent.prototype = agent_1.default.prototype;\n})(createHttpsProxyAgent || (createHttpsProxyAgent = {}));\nmodule.exports = createHttpsProxyAgent;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst debug_1 = __importDefault(require(\"debug\"));\nconst debug = debug_1.default('https-proxy-agent:parse-proxy-response');\nfunction parseProxyResponse(socket) {\n return new Promise((resolve, reject) => {\n // we need to buffer any HTTP traffic that happens with the proxy before we get\n // the CONNECT response, so that if the response is anything other than an \"200\"\n // response code, then we can re-play the \"data\" events on the socket once the\n // HTTP parser is hooked up...\n let buffersLength = 0;\n const buffers = [];\n function read() {\n const b = socket.read();\n if (b)\n ondata(b);\n else\n socket.once('readable', read);\n }\n function cleanup() {\n socket.removeListener('end', onend);\n socket.removeListener('error', onerror);\n socket.removeListener('close', onclose);\n socket.removeListener('readable', read);\n }\n function onclose(err) {\n debug('onclose had error %o', err);\n }\n function onend() {\n debug('onend');\n }\n function onerror(err) {\n cleanup();\n debug('onerror %o', err);\n reject(err);\n }\n function ondata(b) {\n buffers.push(b);\n buffersLength += b.length;\n const buffered = Buffer.concat(buffers, buffersLength);\n const endOfHeaders = buffered.indexOf('\\r\\n\\r\\n');\n if (endOfHeaders === -1) {\n // keep buffering\n debug('have not received end of HTTP headers yet...');\n read();\n return;\n }\n const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\\r\\n'));\n const statusCode = +firstLine.split(' ')[1];\n debug('got proxy server response: %o', firstLine);\n resolve({\n statusCode,\n buffered\n });\n }\n socket.on('error', onerror);\n socket.on('close', onclose);\n socket.on('end', onend);\n read();\n });\n}\nexports.default = parseProxyResponse;\n//# sourceMappingURL=parse-proxy-response.js.map","// A simple implementation of make-array\nfunction makeArray (subject) {\n return Array.isArray(subject)\n ? subject\n : [subject]\n}\n\nconst EMPTY = ''\nconst SPACE = ' '\nconst ESCAPE = '\\\\'\nconst REGEX_TEST_BLANK_LINE = /^\\s+$/\nconst REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\\\]|^)\\\\$/\nconst REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/\nconst REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/\nconst REGEX_SPLITALL_CRLF = /\\r?\\n/g\n// /foo,\n// ./foo,\n// ../foo,\n// .\n// ..\nconst REGEX_TEST_INVALID_PATH = /^\\.*\\/|^\\.+$/\n\nconst SLASH = '/'\n\n// Do not use ternary expression here, since \"istanbul ignore next\" is buggy\nlet TMP_KEY_IGNORE = 'node-ignore'\n/* istanbul ignore else */\nif (typeof Symbol !== 'undefined') {\n TMP_KEY_IGNORE = Symbol.for('node-ignore')\n}\nconst KEY_IGNORE = TMP_KEY_IGNORE\n\nconst define = (object, key, value) =>\n Object.defineProperty(object, key, {value})\n\nconst REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g\n\nconst RETURN_FALSE = () => false\n\n// Sanitize the range of a regular expression\n// The cases are complicated, see test cases for details\nconst sanitizeRange = range => range.replace(\n REGEX_REGEXP_RANGE,\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)\n ? match\n // Invalid range (out of order) which is ok for gitignore rules but\n // fatal for JavaScript regular expression, so eliminate it.\n : EMPTY\n)\n\n// See fixtures #59\nconst cleanRangeBackSlash = slashes => {\n const {length} = slashes\n return slashes.slice(0, length - length % 2)\n}\n\n// > If the pattern ends with a slash,\n// > it is removed for the purpose of the following description,\n// > but it would only find a match with a directory.\n// > In other words, foo/ will match a directory foo and paths underneath it,\n// > but will not match a regular file or a symbolic link foo\n// > (this is consistent with the way how pathspec works in general in Git).\n// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'\n// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call\n// you could use option `mark: true` with `glob`\n\n// '`foo/`' should not continue with the '`..`'\nconst REPLACERS = [\n\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\n [\n // (a\\ ) -> (a )\n // (a ) -> (a)\n // (a \\ ) -> (a )\n /\\\\?\\s+$/,\n match => match.indexOf('\\\\') === 0\n ? SPACE\n : EMPTY\n ],\n\n // replace (\\ ) with ' '\n [\n /\\\\\\s/g,\n () => SPACE\n ],\n\n // Escape metacharacters\n // which is written down by users but means special for regular expressions.\n\n // > There are 12 characters with special meanings:\n // > - the backslash \\,\n // > - the caret ^,\n // > - the dollar sign $,\n // > - the period or dot .,\n // > - the vertical bar or pipe symbol |,\n // > - the question mark ?,\n // > - the asterisk or star *,\n // > - the plus sign +,\n // > - the opening parenthesis (,\n // > - the closing parenthesis ),\n // > - and the opening square bracket [,\n // > - the opening curly brace {,\n // > These special characters are often called \"metacharacters\".\n [\n /[\\\\$.|*+(){^]/g,\n match => `\\\\${match}`\n ],\n\n [\n // > a question mark (?) matches a single character\n /(?!\\\\)\\?/g,\n () => '[^/]'\n ],\n\n // leading slash\n [\n\n // > A leading slash matches the beginning of the pathname.\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\n // A leading slash matches the beginning of the pathname\n /^\\//,\n () => '^'\n ],\n\n // replace special metacharacter slash after the leading slash\n [\n /\\//g,\n () => '\\\\/'\n ],\n\n [\n // > A leading \"**\" followed by a slash means match in all directories.\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\n // > the same as pattern \"foo\".\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\n // > under directory \"foo\".\n // Notice that the '*'s have been replaced as '\\\\*'\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\n\n // '**/foo' <-> 'foo'\n () => '^(?:.*\\\\/)?'\n ],\n\n // starting\n [\n // there will be no leading '/'\n // (which has been replaced by section \"leading slash\")\n // If starts with '**', adding a '^' to the regular expression also works\n /^(?=[^^])/,\n function startingReplacer () {\n // If has a slash `/` at the beginning or middle\n return !/\\/(?!$)/.test(this)\n // > Prior to 2.22.1\n // > If the pattern does not contain a slash /,\n // > Git treats it as a shell glob pattern\n // Actually, if there is only a trailing slash,\n // git also treats it as a shell glob pattern\n\n // After 2.22.1 (compatible but clearer)\n // > If there is a separator at the beginning or middle (or both)\n // > of the pattern, then the pattern is relative to the directory\n // > level of the particular .gitignore file itself.\n // > Otherwise the pattern may also match at any level below\n // > the .gitignore level.\n ? '(?:^|\\\\/)'\n\n // > Otherwise, Git treats the pattern as a shell glob suitable for\n // > consumption by fnmatch(3)\n : '^'\n }\n ],\n\n // two globstars\n [\n // Use lookahead assertions so that we could match more than one `'/**'`\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\n\n // Zero, one or several directories\n // should not use '*', or it will be replaced by the next replacer\n\n // Check if it is not the last `'/**'`\n (_, index, str) => index + 6 < str.length\n\n // case: /**/\n // > A slash followed by two consecutive asterisks then a slash matches\n // > zero or more directories.\n // > For example, \"a/**/b\" matches \"a/b\", \"a/x/b\", \"a/x/y/b\" and so on.\n // '/**/'\n ? '(?:\\\\/[^\\\\/]+)*'\n\n // case: /**\n // > A trailing `\"/**\"` matches everything inside.\n\n // #21: everything inside but it should not include the current folder\n : '\\\\/.+'\n ],\n\n // normal intermediate wildcards\n [\n // Never replace escaped '*'\n // ignore rule '\\*' will match the path '*'\n\n // 'abc.*/' -> go\n // 'abc.*' -> skip this rule,\n // coz trailing single wildcard will be handed by [trailing wildcard]\n /(^|[^\\\\]+)(\\\\\\*)+(?=.+)/g,\n\n // '*.js' matches '.js'\n // '*.js' doesn't match 'abc'\n (_, p1, p2) => {\n // 1.\n // > An asterisk \"*\" matches anything except a slash.\n // 2.\n // > Other consecutive asterisks are considered regular asterisks\n // > and will match according to the previous rules.\n const unescaped = p2.replace(/\\\\\\*/g, '[^\\\\/]*')\n return p1 + unescaped\n }\n ],\n\n [\n // unescape, revert step 3 except for back slash\n // For example, if a user escape a '\\\\*',\n // after step 3, the result will be '\\\\\\\\\\\\*'\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\n () => ESCAPE\n ],\n\n [\n // '\\\\\\\\' -> '\\\\'\n /\\\\\\\\/g,\n () => ESCAPE\n ],\n\n [\n // > The range notation, e.g. [a-zA-Z],\n // > can be used to match one of the characters in a range.\n\n // `\\` is escaped by step 3\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE\n // '\\\\[bar]' -> '\\\\\\\\[bar\\\\]'\n ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}`\n : close === ']'\n ? endEscape.length % 2 === 0\n // A normal case, and it is a range notation\n // '[bar]'\n // '[bar\\\\\\\\]'\n ? `[${sanitizeRange(range)}${endEscape}]`\n // Invalid range notaton\n // '[bar\\\\]' -> '[bar\\\\\\\\]'\n : '[]'\n : '[]'\n ],\n\n // ending\n [\n // 'js' will not match 'js.'\n // 'ab' will not match 'abc'\n /(?:[^*])$/,\n\n // WTF!\n // https://git-scm.com/docs/gitignore\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\n // which re-fixes #24, #38\n\n // > If there is a separator at the end of the pattern then the pattern\n // > will only match directories, otherwise the pattern can match both\n // > files and directories.\n\n // 'js*' will not match 'a.js'\n // 'js/' will not match 'a.js'\n // 'js' will match 'a.js' and 'a.js/'\n match => /\\/$/.test(match)\n // foo/ will not match 'foo'\n ? `${match}$`\n // foo matches 'foo' and 'foo/'\n : `${match}(?=$|\\\\/$)`\n ],\n\n // trailing wildcard\n [\n /(\\^|\\\\\\/)?\\\\\\*$/,\n (_, p1) => {\n const prefix = p1\n // '\\^':\n // '/*' does not match EMPTY\n // '/*' does not match everything\n\n // '\\\\\\/':\n // 'abc/*' does not match 'abc/'\n ? `${p1}[^/]+`\n\n // 'a*' matches 'a'\n // 'a*' matches 'aa'\n : '[^/]*'\n\n return `${prefix}(?=$|\\\\/$)`\n }\n ],\n]\n\n// A simple cache, because an ignore rule only has only one certain meaning\nconst regexCache = Object.create(null)\n\n// @param {pattern}\nconst makeRegex = (pattern, ignoreCase) => {\n let source = regexCache[pattern]\n\n if (!source) {\n source = REPLACERS.reduce(\n (prev, current) => prev.replace(current[0], current[1].bind(pattern)),\n pattern\n )\n regexCache[pattern] = source\n }\n\n return ignoreCase\n ? new RegExp(source, 'i')\n : new RegExp(source)\n}\n\nconst isString = subject => typeof subject === 'string'\n\n// > A blank line matches no files, so it can serve as a separator for readability.\nconst checkPattern = pattern => pattern\n && isString(pattern)\n && !REGEX_TEST_BLANK_LINE.test(pattern)\n && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern)\n\n // > A line starting with # serves as a comment.\n && pattern.indexOf('#') !== 0\n\nconst splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF)\n\nclass IgnoreRule {\n constructor (\n origin,\n pattern,\n negative,\n regex\n ) {\n this.origin = origin\n this.pattern = pattern\n this.negative = negative\n this.regex = regex\n }\n}\n\nconst createRule = (pattern, ignoreCase) => {\n const origin = pattern\n let negative = false\n\n // > An optional prefix \"!\" which negates the pattern;\n if (pattern.indexOf('!') === 0) {\n negative = true\n pattern = pattern.substr(1)\n }\n\n pattern = pattern\n // > Put a backslash (\"\\\") in front of the first \"!\" for patterns that\n // > begin with a literal \"!\", for example, `\"\\!important!.txt\"`.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')\n // > Put a backslash (\"\\\") in front of the first hash for patterns that\n // > begin with a hash.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')\n\n const regex = makeRegex(pattern, ignoreCase)\n\n return new IgnoreRule(\n origin,\n pattern,\n negative,\n regex\n )\n}\n\nconst throwError = (message, Ctor) => {\n throw new Ctor(message)\n}\n\nconst checkPath = (path, originalPath, doThrow) => {\n if (!isString(path)) {\n return doThrow(\n `path must be a string, but got \\`${originalPath}\\``,\n TypeError\n )\n }\n\n // We don't know if we should ignore EMPTY, so throw\n if (!path) {\n return doThrow(`path must not be empty`, TypeError)\n }\n\n // Check if it is a relative path\n if (checkPath.isNotRelative(path)) {\n const r = '`path.relative()`d'\n return doThrow(\n `path should be a ${r} string, but got \"${originalPath}\"`,\n RangeError\n )\n }\n\n return true\n}\n\nconst isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)\n\ncheckPath.isNotRelative = isNotRelative\ncheckPath.convert = p => p\n\nclass Ignore {\n constructor ({\n ignorecase = true,\n ignoreCase = ignorecase,\n allowRelativePaths = false\n } = {}) {\n define(this, KEY_IGNORE, true)\n\n this._rules = []\n this._ignoreCase = ignoreCase\n this._allowRelativePaths = allowRelativePaths\n this._initCache()\n }\n\n _initCache () {\n this._ignoreCache = Object.create(null)\n this._testCache = Object.create(null)\n }\n\n _addPattern (pattern) {\n // #32\n if (pattern && pattern[KEY_IGNORE]) {\n this._rules = this._rules.concat(pattern._rules)\n this._added = true\n return\n }\n\n if (checkPattern(pattern)) {\n const rule = createRule(pattern, this._ignoreCase)\n this._added = true\n this._rules.push(rule)\n }\n }\n\n // @param {Array | string | Ignore} pattern\n add (pattern) {\n this._added = false\n\n makeArray(\n isString(pattern)\n ? splitPattern(pattern)\n : pattern\n ).forEach(this._addPattern, this)\n\n // Some rules have just added to the ignore,\n // making the behavior changed.\n if (this._added) {\n this._initCache()\n }\n\n return this\n }\n\n // legacy\n addPattern (pattern) {\n return this.add(pattern)\n }\n\n // | ignored : unignored\n // negative | 0:0 | 0:1 | 1:0 | 1:1\n // -------- | ------- | ------- | ------- | --------\n // 0 | TEST | TEST | SKIP | X\n // 1 | TESTIF | SKIP | TEST | X\n\n // - SKIP: always skip\n // - TEST: always test\n // - TESTIF: only test if checkUnignored\n // - X: that never happen\n\n // @param {boolean} whether should check if the path is unignored,\n // setting `checkUnignored` to `false` could reduce additional\n // path matching.\n\n // @returns {TestResult} true if a file is ignored\n _testOne (path, checkUnignored) {\n let ignored = false\n let unignored = false\n\n this._rules.forEach(rule => {\n const {negative} = rule\n if (\n unignored === negative && ignored !== unignored\n || negative && !ignored && !unignored && !checkUnignored\n ) {\n return\n }\n\n const matched = rule.regex.test(path)\n\n if (matched) {\n ignored = !negative\n unignored = negative\n }\n })\n\n return {\n ignored,\n unignored\n }\n }\n\n // @returns {TestResult}\n _test (originalPath, cache, checkUnignored, slices) {\n const path = originalPath\n // Supports nullable path\n && checkPath.convert(originalPath)\n\n checkPath(\n path,\n originalPath,\n this._allowRelativePaths\n ? RETURN_FALSE\n : throwError\n )\n\n return this._t(path, cache, checkUnignored, slices)\n }\n\n _t (path, cache, checkUnignored, slices) {\n if (path in cache) {\n return cache[path]\n }\n\n if (!slices) {\n // path/to/a.js\n // ['path', 'to', 'a.js']\n slices = path.split(SLASH)\n }\n\n slices.pop()\n\n // If the path has no parent directory, just test it\n if (!slices.length) {\n return cache[path] = this._testOne(path, checkUnignored)\n }\n\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n cache,\n checkUnignored,\n slices\n )\n\n // If the path contains a parent directory, check the parent first\n return cache[path] = parent.ignored\n // > It is not possible to re-include a file if a parent directory of\n // > that file is excluded.\n ? parent\n : this._testOne(path, checkUnignored)\n }\n\n ignores (path) {\n return this._test(path, this._ignoreCache, false).ignored\n }\n\n createFilter () {\n return path => !this.ignores(path)\n }\n\n filter (paths) {\n return makeArray(paths).filter(this.createFilter())\n }\n\n // @returns {TestResult}\n test (path) {\n return this._test(path, this._testCache, true)\n }\n}\n\nconst factory = options => new Ignore(options)\n\nconst isPathValid = path =>\n checkPath(path && checkPath.convert(path), path, RETURN_FALSE)\n\nfactory.isPathValid = isPathValid\n\n// Fixes typescript\nfactory.default = factory\n\nmodule.exports = factory\n\n// Windows\n// --------------------------------------------------------------\n/* istanbul ignore if */\nif (\n // Detect `process` so that it can run in browsers.\n typeof process !== 'undefined'\n && (\n process.env && process.env.IGNORE_TEST_WIN32\n || process.platform === 'win32'\n )\n) {\n /* eslint no-control-regex: \"off\" */\n const makePosix = str => /^\\\\\\\\\\?\\\\/.test(str)\n || /[\"<>|\\u0000-\\u001F]+/u.test(str)\n ? str\n : str.replace(/\\\\/g, '/')\n\n checkPath.convert = makePosix\n\n // 'C:\\\\foo' <- 'C:\\\\foo' has been converted to 'C:/'\n // 'd:\\\\foo'\n const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i\n checkPath.isNotRelative = path =>\n REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path)\n || isNotRelative(path)\n}\n","/**\n * @preserve\n * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n *\n * @author Jens Taylor\n * @see http://github.com/homebrewing/brauhaus-diff\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n */\n(function(){\n var cache;\n\n // Call this function without `new` to use the cached object (good for\n // single-threaded environments), or with `new` to create a new object.\n //\n // @param {string} key A UTF-16 or ASCII string\n // @param {number} seed An optional positive integer\n // @return {object} A MurmurHash3 object for incremental hashing\n function MurmurHash3(key, seed) {\n var m = this instanceof MurmurHash3 ? this : cache;\n m.reset(seed)\n if (typeof key === 'string' && key.length > 0) {\n m.hash(key);\n }\n\n if (m !== this) {\n return m;\n }\n };\n\n // Incrementally add a string to this hash\n //\n // @param {string} key A UTF-16 or ASCII string\n // @return {object} this\n MurmurHash3.prototype.hash = function(key) {\n var h1, k1, i, top, len;\n\n len = key.length;\n this.len += len;\n\n k1 = this.k1;\n i = 0;\n switch (this.rem) {\n case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0;\n case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;\n case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;\n case 3:\n k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;\n k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;\n }\n\n this.rem = (len + this.rem) & 3; // & 3 is same as % 4\n len -= this.rem;\n if (len > 0) {\n h1 = this.h1;\n while (1) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff;\n\n if (i >= len) {\n break;\n }\n\n k1 = ((key.charCodeAt(i++) & 0xffff)) ^\n ((key.charCodeAt(i++) & 0xffff) << 8) ^\n ((key.charCodeAt(i++) & 0xffff) << 16);\n top = key.charCodeAt(i++);\n k1 ^= ((top & 0xff) << 24) ^\n ((top & 0xff00) >> 8);\n }\n\n k1 = 0;\n switch (this.rem) {\n case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;\n case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;\n case 1: k1 ^= (key.charCodeAt(i) & 0xffff);\n }\n\n this.h1 = h1;\n }\n\n this.k1 = k1;\n return this;\n };\n\n // Get the result of this hash\n //\n // @return {number} The 32-bit hash\n MurmurHash3.prototype.result = function() {\n var k1, h1;\n \n k1 = this.k1;\n h1 = this.h1;\n\n if (k1 > 0) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n h1 ^= k1;\n }\n\n h1 ^= this.len;\n\n h1 ^= h1 >>> 16;\n h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff;\n h1 ^= h1 >>> 16;\n\n return h1 >>> 0;\n };\n\n // Reset the hash object for reuse\n //\n // @param {number} seed An optional positive integer\n MurmurHash3.prototype.reset = function(seed) {\n this.h1 = typeof seed === 'number' ? seed : 0;\n this.rem = this.k1 = this.len = 0;\n return this;\n };\n\n // A cached object to use. This can be safely used if you're in a single-\n // threaded environment, otherwise you need to create new hashes to use.\n cache = new MurmurHash3();\n\n if (typeof(module) != 'undefined') {\n module.exports = MurmurHash3;\n } else {\n this.MurmurHash3 = MurmurHash3;\n }\n}());\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * is-extglob \n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n var match;\n while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n if (match[2]) return true;\n str = str.slice(match.index + match[0].length);\n }\n\n return false;\n};\n","/*!\n * is-glob \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n var pipeIndex = -2;\n var closeSquareIndex = -2;\n var closeCurlyIndex = -2;\n var closeParenIndex = -2;\n var backSlashIndex = -2;\n while (index < str.length) {\n if (str[index] === '*') {\n return true;\n }\n\n if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\n return true;\n }\n\n if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\n if (closeSquareIndex < index) {\n closeSquareIndex = str.indexOf(']', index);\n }\n if (closeSquareIndex > index) {\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n }\n }\n\n if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\n closeCurlyIndex = str.indexOf('}', index);\n if (closeCurlyIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n return true;\n }\n }\n }\n\n if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\n closeParenIndex = str.indexOf(')', index);\n if (closeParenIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n\n if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\n if (pipeIndex < index) {\n pipeIndex = str.indexOf('|', index);\n }\n if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\n closeParenIndex = str.indexOf(')', pipeIndex);\n if (closeParenIndex > pipeIndex) {\n backSlashIndex = str.indexOf('\\\\', pipeIndex);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nvar relaxedCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n while (index < str.length) {\n if (/[*?{}()[\\]]/.test(str[index])) {\n return true;\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nmodule.exports = function isGlob(str, options) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n if (isExtglob(str)) {\n return true;\n }\n\n var check = strictCheck;\n\n // optionally relax check\n if (options && options.strict === false) {\n check = relaxedCheck;\n }\n\n return check(str);\n};\n","/*!\n * is-number \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n","'use strict';\n\nmodule.exports = value => {\n\tconst type = typeof value;\n\treturn value !== null && (type === 'object' || type === 'function');\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","module.exports = isTypedArray\nisTypedArray.strict = isStrictTypedArray\nisTypedArray.loose = isLooseTypedArray\n\nvar toString = Object.prototype.toString\nvar names = {\n '[object Int8Array]': true\n , '[object Int16Array]': true\n , '[object Int32Array]': true\n , '[object Uint8Array]': true\n , '[object Uint8ClampedArray]': true\n , '[object Uint16Array]': true\n , '[object Uint32Array]': true\n , '[object Float32Array]': true\n , '[object Float64Array]': true\n}\n\nfunction isTypedArray(arr) {\n return (\n isStrictTypedArray(arr)\n || isLooseTypedArray(arr)\n )\n}\n\nfunction isStrictTypedArray(arr) {\n return (\n arr instanceof Int8Array\n || arr instanceof Int16Array\n || arr instanceof Int32Array\n || arr instanceof Uint8Array\n || arr instanceof Uint8ClampedArray\n || arr instanceof Uint16Array\n || arr instanceof Uint32Array\n || arr instanceof Float32Array\n || arr instanceof Float64Array\n )\n}\n\nfunction isLooseTypedArray(arr) {\n return names[toString.call(arr)]\n}\n","var json_stringify = require('./lib/stringify.js').stringify;\nvar json_parse = require('./lib/parse.js');\n\nmodule.exports = function(options) {\n return {\n parse: json_parse(options),\n stringify: json_stringify\n }\n};\n//create the default method members with no options applied for backwards compatibility\nmodule.exports.parse = json_parse();\nmodule.exports.stringify = json_stringify;\n","var BigNumber = null;\n\n// regexpxs extracted from\n// (c) BSD-3-Clause\n// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors\n\nconst suspectProtoRx = /(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])/;\nconst suspectConstructorRx = /(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)/;\n\n/*\n json_parse.js\n 2012-06-20\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n This file creates a json_parse function.\n During create you can (optionally) specify some behavioural switches\n\n require('json-bigint')(options)\n\n The optional options parameter holds switches that drive certain\n aspects of the parsing process:\n * options.strict = true will warn about duplicate-key usage in the json.\n The default (strict = false) will silently ignore those and overwrite\n values for keys that are in duplicate use.\n\n The resulting function follows this signature:\n json_parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = json_parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n*/\n\n/*members \"\", \"\\\"\", \"\\/\", \"\\\\\", at, b, call, charAt, f, fromCharCode,\n hasOwnProperty, message, n, name, prototype, push, r, t, text\n*/\n\nvar json_parse = function (options) {\n 'use strict';\n\n // This is a function that can parse a JSON text, producing a JavaScript\n // data structure. It is a simple, recursive descent parser. It does not use\n // eval or regular expressions, so it can be used as a model for implementing\n // a JSON parser in other languages.\n\n // We are defining the function inside of another function to avoid creating\n // global variables.\n\n // Default options one can override by passing options to the parse()\n var _options = {\n strict: false, // not being strict means do not generate syntax errors for \"duplicate key\"\n storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string\n alwaysParseAsBig: false, // toggles whether all numbers should be Big\n useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js\n protoAction: 'error',\n constructorAction: 'error',\n };\n\n // If there are options, then use them to override the default _options\n if (options !== undefined && options !== null) {\n if (options.strict === true) {\n _options.strict = true;\n }\n if (options.storeAsString === true) {\n _options.storeAsString = true;\n }\n _options.alwaysParseAsBig =\n options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;\n _options.useNativeBigInt =\n options.useNativeBigInt === true ? options.useNativeBigInt : false;\n\n if (typeof options.constructorAction !== 'undefined') {\n if (\n options.constructorAction === 'error' ||\n options.constructorAction === 'ignore' ||\n options.constructorAction === 'preserve'\n ) {\n _options.constructorAction = options.constructorAction;\n } else {\n throw new Error(\n `Incorrect value for constructorAction option, must be \"error\", \"ignore\" or undefined but passed ${options.constructorAction}`\n );\n }\n }\n\n if (typeof options.protoAction !== 'undefined') {\n if (\n options.protoAction === 'error' ||\n options.protoAction === 'ignore' ||\n options.protoAction === 'preserve'\n ) {\n _options.protoAction = options.protoAction;\n } else {\n throw new Error(\n `Incorrect value for protoAction option, must be \"error\", \"ignore\" or undefined but passed ${options.protoAction}`\n );\n }\n }\n }\n\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n },\n text,\n error = function (m) {\n // Call error when something is wrong.\n\n throw {\n name: 'SyntaxError',\n message: m,\n at: at,\n text: text,\n };\n },\n next = function (c) {\n // If a c parameter is provided, verify that it matches the current character.\n\n if (c && c !== ch) {\n error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n }\n\n // Get the next character. When there are no more characters,\n // return the empty string.\n\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function () {\n // Parse a number value.\n\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n if (BigNumber == null) BigNumber = require('bignumber.js');\n //if (number > 9007199254740992 || number < -9007199254740992)\n // Bignumber has stricter check: everything with length > 15 digits disallowed\n if (string.length > 15)\n return _options.storeAsString\n ? string\n : _options.useNativeBigInt\n ? BigInt(string)\n : new BigNumber(string);\n else\n return !_options.alwaysParseAsBig\n ? number\n : _options.useNativeBigInt\n ? BigInt(number)\n : new BigNumber(number);\n }\n },\n string = function () {\n // Parse a string value.\n\n var hex,\n i,\n string = '',\n uffff;\n\n // When parsing for string values, we must look for \" and \\ characters.\n\n if (ch === '\"') {\n var startAt = at;\n while (next()) {\n if (ch === '\"') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n return string;\n }\n if (ch === '\\\\') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n startAt = at;\n }\n }\n }\n error('Bad string');\n },\n white = function () {\n // Skip whitespace.\n\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function () {\n // true, false, or null.\n\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error(\"Unexpected '\" + ch + \"'\");\n },\n value, // Place holder for the value function.\n array = function () {\n // Parse an array value.\n\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function () {\n // Parse an object value.\n\n var key,\n object = Object.create(null);\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (\n _options.strict === true &&\n Object.hasOwnProperty.call(object, key)\n ) {\n error('Duplicate key \"' + key + '\"');\n }\n\n if (suspectProtoRx.test(key) === true) {\n if (_options.protoAction === 'error') {\n error('Object contains forbidden prototype property');\n } else if (_options.protoAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else if (suspectConstructorRx.test(key) === true) {\n if (_options.constructorAction === 'error') {\n error('Object contains forbidden constructor property');\n } else if (_options.constructorAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else {\n object[key] = value();\n }\n\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function () {\n // Parse a JSON value. It could be an object, an array, a string, a number,\n // or a word.\n\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the above\n // functions and variables.\n\n return function (source, reviver) {\n var result;\n\n text = source + '';\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n // If there is a reviver function, we recursively walk the new structure,\n // passing each name/value pair to the reviver function for possible\n // transformation, starting with a temporary root object that holds the result\n // in an empty key. If there is not a reviver function, we simply return the\n // result.\n\n return typeof reviver === 'function'\n ? (function walk(holder, key) {\n var k,\n v,\n value = holder[key];\n if (value && typeof value === 'object') {\n Object.keys(value).forEach(function (k) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n });\n }\n return reviver.call(holder, key, value);\n })({ '': result }, '')\n : result;\n };\n};\n\nmodule.exports = json_parse;\n","var BigNumber = require('bignumber.js');\n\n/*\n json2.js\n 2013-05-26\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n See http://www.JSON.org/js.html\n\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n\n\n This file creates a global JSON object containing two methods: stringify\n and parse.\n\n JSON.stringify(value, replacer, space)\n value any JavaScript value, usually an object or array.\n\n replacer an optional parameter that determines how object\n values are stringified for objects. It can be a\n function or an array of strings.\n\n space an optional parameter that specifies the indentation\n of nested structures. If it is omitted, the text will\n be packed without extra whitespace. If it is a number,\n it will specify the number of spaces to indent at each\n level. If it is a string (such as '\\t' or ' '),\n it contains the characters used to indent at each level.\n\n This method produces a JSON text from a JavaScript value.\n\n When an object value is found, if the object contains a toJSON\n method, its toJSON method will be called and the result will be\n stringified. A toJSON method does not serialize: it returns the\n value represented by the name/value pair that should be serialized,\n or undefined if nothing should be serialized. The toJSON method\n will be passed the key associated with the value, and this will be\n bound to the value\n\n For example, this would serialize Dates as ISO strings.\n\n Date.prototype.toJSON = function (key) {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n return this.getUTCFullYear() + '-' +\n f(this.getUTCMonth() + 1) + '-' +\n f(this.getUTCDate()) + 'T' +\n f(this.getUTCHours()) + ':' +\n f(this.getUTCMinutes()) + ':' +\n f(this.getUTCSeconds()) + 'Z';\n };\n\n You can provide an optional replacer method. It will be passed the\n key and value of each member, with this bound to the containing\n object. The value that is returned from your method will be\n serialized. If your method returns undefined, then the member will\n be excluded from the serialization.\n\n If the replacer parameter is an array of strings, then it will be\n used to select the members to be serialized. It filters the results\n such that only members with keys listed in the replacer array are\n stringified.\n\n Values that do not have JSON representations, such as undefined or\n functions, will not be serialized. Such values in objects will be\n dropped; in arrays they will be replaced with null. You can use\n a replacer function to replace those with JSON values.\n JSON.stringify(undefined) returns undefined.\n\n The optional space parameter produces a stringification of the\n value that is filled with line breaks and indentation to make it\n easier to read.\n\n If the space parameter is a non-empty string, then that string will\n be used for indentation. If the space parameter is a number, then\n the indentation will be that many spaces.\n\n Example:\n\n text = JSON.stringify(['e', {pluribus: 'unum'}]);\n // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n text = JSON.stringify([new Date()], function (key, value) {\n return this[key] instanceof Date ?\n 'Date(' + this[key] + ')' : value;\n });\n // text is '[\"Date(---current time---)\"]'\n\n\n JSON.parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = JSON.parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n var d;\n if (typeof value === 'string' &&\n value.slice(0, 5) === 'Date(' &&\n value.slice(-1) === ')') {\n d = new Date(value.slice(5, -1));\n if (d) {\n return d;\n }\n }\n return value;\n });\n\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nvar JSON = module.exports;\n\n(function () {\n 'use strict';\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"' : '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string'\n ? c\n : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i, // The loop counter.\n k, // The member key.\n v, // The member value.\n length,\n mind = gap,\n partial,\n value = holder[key],\n isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case 'string':\n if (isBigNumber) {\n return value;\n } else {\n return quote(value);\n }\n\n case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n case 'bigint':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n if (!value) {\n return 'null';\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? '[]'\n : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n Object.keys(value).forEach(function(k) {\n var v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n });\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? '{}'\n : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== 'function') {\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = '';\n indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === 'string') {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n return str('', {'': value});\n };\n }\n}());\n","var bufferEqual = require('buffer-equal-constant-time');\nvar Buffer = require('safe-buffer').Buffer;\nvar crypto = require('crypto');\nvar formatEcdsa = require('ecdsa-sig-formatter');\nvar util = require('util');\n\nvar MSG_INVALID_ALGORITHM = '\"%s\" is not a valid algorithm.\\n Supported algorithms are:\\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".'\nvar MSG_INVALID_SECRET = 'secret must be a string or buffer';\nvar MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer';\nvar MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object';\n\nvar supportsKeyObjects = typeof crypto.createPublicKey === 'function';\nif (supportsKeyObjects) {\n MSG_INVALID_VERIFIER_KEY += ' or a KeyObject';\n MSG_INVALID_SECRET += 'or a KeyObject';\n}\n\nfunction checkIsPublicKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.type !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.asymmetricKeyType !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n};\n\nfunction checkIsPrivateKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (typeof key === 'object') {\n return;\n }\n\n throw typeError(MSG_INVALID_SIGNER_KEY);\n};\n\nfunction checkIsSecretKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return key;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (key.type !== 'secret') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_SECRET);\n }\n}\n\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n\n var padding = 4 - base64url.length % 4;\n if (padding !== 4) {\n for (var i = 0; i < padding; ++i) {\n base64url += '=';\n }\n }\n\n return base64url\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n}\n\nfunction typeError(template) {\n var args = [].slice.call(arguments, 1);\n var errMsg = util.format.bind(util, template).apply(null, args);\n return new TypeError(errMsg);\n}\n\nfunction bufferOrString(obj) {\n return Buffer.isBuffer(obj) || typeof obj === 'string';\n}\n\nfunction normalizeInput(thing) {\n if (!bufferOrString(thing))\n thing = JSON.stringify(thing);\n return thing;\n}\n\nfunction createHmacSigner(bits) {\n return function sign(thing, secret) {\n checkIsSecretKey(secret);\n thing = normalizeInput(thing);\n var hmac = crypto.createHmac('sha' + bits, secret);\n var sig = (hmac.update(thing), hmac.digest('base64'))\n return fromBase64(sig);\n }\n}\n\nfunction createHmacVerifier(bits) {\n return function verify(thing, signature, secret) {\n var computedSig = createHmacSigner(bits)(thing, secret);\n return bufferEqual(Buffer.from(signature), Buffer.from(computedSig));\n }\n}\n\nfunction createKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n // Even though we are specifying \"RSA\" here, this works with ECDSA\n // keys as well.\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign(privateKey, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify(publicKey, signature, 'base64');\n }\n}\n\nfunction createPSSKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign({\n key: privateKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createPSSKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify({\n key: publicKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, signature, 'base64');\n }\n}\n\nfunction createECDSASigner(bits) {\n var inner = createKeySigner(bits);\n return function sign() {\n var signature = inner.apply(null, arguments);\n signature = formatEcdsa.derToJose(signature, 'ES' + bits);\n return signature;\n };\n}\n\nfunction createECDSAVerifer(bits) {\n var inner = createKeyVerifier(bits);\n return function verify(thing, signature, publicKey) {\n signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64');\n var result = inner(thing, signature, publicKey);\n return result;\n };\n}\n\nfunction createNoneSigner() {\n return function sign() {\n return '';\n }\n}\n\nfunction createNoneVerifier() {\n return function verify(thing, signature) {\n return signature === '';\n }\n}\n\nmodule.exports = function jwa(algorithm) {\n var signerFactories = {\n hs: createHmacSigner,\n rs: createKeySigner,\n ps: createPSSKeySigner,\n es: createECDSASigner,\n none: createNoneSigner,\n }\n var verifierFactories = {\n hs: createHmacVerifier,\n rs: createKeyVerifier,\n ps: createPSSKeyVerifier,\n es: createECDSAVerifer,\n none: createNoneVerifier,\n }\n var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);\n if (!match)\n throw typeError(MSG_INVALID_ALGORITHM, algorithm);\n var algo = (match[1] || match[3]).toLowerCase();\n var bits = match[2];\n\n return {\n sign: signerFactories[algo](bits),\n verify: verifierFactories[algo](bits),\n }\n};\n","/*global exports*/\nvar SignStream = require('./lib/sign-stream');\nvar VerifyStream = require('./lib/verify-stream');\n\nvar ALGORITHMS = [\n 'HS256', 'HS384', 'HS512',\n 'RS256', 'RS384', 'RS512',\n 'PS256', 'PS384', 'PS512',\n 'ES256', 'ES384', 'ES512'\n];\n\nexports.ALGORITHMS = ALGORITHMS;\nexports.sign = SignStream.sign;\nexports.verify = VerifyStream.verify;\nexports.decode = VerifyStream.decode;\nexports.isValid = VerifyStream.isValid;\nexports.createSign = function createSign(opts) {\n return new SignStream(opts);\n};\nexports.createVerify = function createVerify(opts) {\n return new VerifyStream(opts);\n};\n","/*global module, process*/\nvar Buffer = require('safe-buffer').Buffer;\nvar Stream = require('stream');\nvar util = require('util');\n\nfunction DataStream(data) {\n this.buffer = null;\n this.writable = true;\n this.readable = true;\n\n // No input\n if (!data) {\n this.buffer = Buffer.alloc(0);\n return this;\n }\n\n // Stream\n if (typeof data.pipe === 'function') {\n this.buffer = Buffer.alloc(0);\n data.pipe(this);\n return this;\n }\n\n // Buffer or String\n // or Object (assumedly a passworded key)\n if (data.length || typeof data === 'object') {\n this.buffer = data;\n this.writable = false;\n process.nextTick(function () {\n this.emit('end', data);\n this.readable = false;\n this.emit('close');\n }.bind(this));\n return this;\n }\n\n throw new TypeError('Unexpected data type ('+ typeof data + ')');\n}\nutil.inherits(DataStream, Stream);\n\nDataStream.prototype.write = function write(data) {\n this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]);\n this.emit('data', data);\n};\n\nDataStream.prototype.end = function end(data) {\n if (data)\n this.write(data);\n this.emit('end', data);\n this.emit('close');\n this.writable = false;\n this.readable = false;\n};\n\nmodule.exports = DataStream;\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\n\nfunction base64url(string, encoding) {\n return Buffer\n .from(string, encoding)\n .toString('base64')\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction jwsSecuredInput(header, payload, encoding) {\n encoding = encoding || 'utf8';\n var encodedHeader = base64url(toString(header), 'binary');\n var encodedPayload = base64url(toString(payload), encoding);\n return util.format('%s.%s', encodedHeader, encodedPayload);\n}\n\nfunction jwsSign(opts) {\n var header = opts.header;\n var payload = opts.payload;\n var secretOrKey = opts.secret || opts.privateKey;\n var encoding = opts.encoding;\n var algo = jwa(header.alg);\n var securedInput = jwsSecuredInput(header, payload, encoding);\n var signature = algo.sign(securedInput, secretOrKey);\n return util.format('%s.%s', securedInput, signature);\n}\n\nfunction SignStream(opts) {\n var secret = opts.secret||opts.privateKey||opts.key;\n var secretStream = new DataStream(secret);\n this.readable = true;\n this.header = opts.header;\n this.encoding = opts.encoding;\n this.secret = this.privateKey = this.key = secretStream;\n this.payload = new DataStream(opts.payload);\n this.secret.once('close', function () {\n if (!this.payload.writable && this.readable)\n this.sign();\n }.bind(this));\n\n this.payload.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.sign();\n }.bind(this));\n}\nutil.inherits(SignStream, Stream);\n\nSignStream.prototype.sign = function sign() {\n try {\n var signature = jwsSign({\n header: this.header,\n payload: this.payload.buffer,\n secret: this.secret.buffer,\n encoding: this.encoding\n });\n this.emit('done', signature);\n this.emit('data', signature);\n this.emit('end');\n this.readable = false;\n return signature;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nSignStream.sign = jwsSign;\n\nmodule.exports = SignStream;\n","/*global module*/\nvar Buffer = require('buffer').Buffer;\n\nmodule.exports = function toString(obj) {\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number' || Buffer.isBuffer(obj))\n return obj.toString();\n return JSON.stringify(obj);\n};\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\nvar JWS_REGEX = /^[a-zA-Z0-9\\-_]+?\\.[a-zA-Z0-9\\-_]+?\\.([a-zA-Z0-9\\-_]+)?$/;\n\nfunction isObject(thing) {\n return Object.prototype.toString.call(thing) === '[object Object]';\n}\n\nfunction safeJsonParse(thing) {\n if (isObject(thing))\n return thing;\n try { return JSON.parse(thing); }\n catch (e) { return undefined; }\n}\n\nfunction headerFromJWS(jwsSig) {\n var encodedHeader = jwsSig.split('.', 1)[0];\n return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary'));\n}\n\nfunction securedInputFromJWS(jwsSig) {\n return jwsSig.split('.', 2).join('.');\n}\n\nfunction signatureFromJWS(jwsSig) {\n return jwsSig.split('.')[2];\n}\n\nfunction payloadFromJWS(jwsSig, encoding) {\n encoding = encoding || 'utf8';\n var payload = jwsSig.split('.')[1];\n return Buffer.from(payload, 'base64').toString(encoding);\n}\n\nfunction isValidJws(string) {\n return JWS_REGEX.test(string) && !!headerFromJWS(string);\n}\n\nfunction jwsVerify(jwsSig, algorithm, secretOrKey) {\n if (!algorithm) {\n var err = new Error(\"Missing algorithm parameter for jws.verify\");\n err.code = \"MISSING_ALGORITHM\";\n throw err;\n }\n jwsSig = toString(jwsSig);\n var signature = signatureFromJWS(jwsSig);\n var securedInput = securedInputFromJWS(jwsSig);\n var algo = jwa(algorithm);\n return algo.verify(securedInput, signature, secretOrKey);\n}\n\nfunction jwsDecode(jwsSig, opts) {\n opts = opts || {};\n jwsSig = toString(jwsSig);\n\n if (!isValidJws(jwsSig))\n return null;\n\n var header = headerFromJWS(jwsSig);\n\n if (!header)\n return null;\n\n var payload = payloadFromJWS(jwsSig);\n if (header.typ === 'JWT' || opts.json)\n payload = JSON.parse(payload, opts.encoding);\n\n return {\n header: header,\n payload: payload,\n signature: signatureFromJWS(jwsSig)\n };\n}\n\nfunction VerifyStream(opts) {\n opts = opts || {};\n var secretOrKey = opts.secret||opts.publicKey||opts.key;\n var secretStream = new DataStream(secretOrKey);\n this.readable = true;\n this.algorithm = opts.algorithm;\n this.encoding = opts.encoding;\n this.secret = this.publicKey = this.key = secretStream;\n this.signature = new DataStream(opts.signature);\n this.secret.once('close', function () {\n if (!this.signature.writable && this.readable)\n this.verify();\n }.bind(this));\n\n this.signature.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.verify();\n }.bind(this));\n}\nutil.inherits(VerifyStream, Stream);\nVerifyStream.prototype.verify = function verify() {\n try {\n var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);\n var obj = jwsDecode(this.signature.buffer, this.encoding);\n this.emit('done', valid, obj);\n this.emit('data', valid);\n this.emit('end');\n this.readable = false;\n return valid;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nVerifyStream.decode = jwsDecode;\nVerifyStream.isValid = isValidJws;\nVerifyStream.verify = jwsVerify;\n\nmodule.exports = VerifyStream;\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict';\nconst fs = require('fs');\nconst path = require('path');\nconst {promisify} = require('util');\nconst semver = require('semver');\n\nconst useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0');\n\n// https://github.com/nodejs/node/issues/8987\n// https://github.com/libuv/libuv/pull/1088\nconst checkPath = pth => {\n\tif (process.platform === 'win32') {\n\t\tconst pathHasInvalidWinCharacters = /[<>:\"|?*]/.test(pth.replace(path.parse(pth).root, ''));\n\n\t\tif (pathHasInvalidWinCharacters) {\n\t\t\tconst error = new Error(`Path contains invalid characters: ${pth}`);\n\t\t\terror.code = 'EINVAL';\n\t\t\tthrow error;\n\t\t}\n\t}\n};\n\nconst processOptions = options => {\n\t// https://github.com/sindresorhus/make-dir/issues/18\n\tconst defaults = {\n\t\tmode: 0o777,\n\t\tfs\n\t};\n\n\treturn {\n\t\t...defaults,\n\t\t...options\n\t};\n};\n\nconst permissionError = pth => {\n\t// This replicates the exception of `fs.mkdir` with native the\n\t// `recusive` option when run on an invalid drive under Windows.\n\tconst error = new Error(`operation not permitted, mkdir '${pth}'`);\n\terror.code = 'EPERM';\n\terror.errno = -4048;\n\terror.path = pth;\n\terror.syscall = 'mkdir';\n\treturn error;\n};\n\nconst makeDir = async (input, options) => {\n\tcheckPath(input);\n\toptions = processOptions(options);\n\n\tconst mkdir = promisify(options.fs.mkdir);\n\tconst stat = promisify(options.fs.stat);\n\n\tif (useNativeRecursiveOption && options.fs.mkdir === fs.mkdir) {\n\t\tconst pth = path.resolve(input);\n\n\t\tawait mkdir(pth, {\n\t\t\tmode: options.mode,\n\t\t\trecursive: true\n\t\t});\n\n\t\treturn pth;\n\t}\n\n\tconst make = async pth => {\n\t\ttry {\n\t\t\tawait mkdir(pth, options.mode);\n\n\t\t\treturn pth;\n\t\t} catch (error) {\n\t\t\tif (error.code === 'EPERM') {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\tif (path.dirname(pth) === pth) {\n\t\t\t\t\tthrow permissionError(pth);\n\t\t\t\t}\n\n\t\t\t\tif (error.message.includes('null bytes')) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tawait make(path.dirname(pth));\n\n\t\t\t\treturn make(pth);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst stats = await stat(pth);\n\t\t\t\tif (!stats.isDirectory()) {\n\t\t\t\t\tthrow new Error('The path is not a directory');\n\t\t\t\t}\n\t\t\t} catch (_) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn pth;\n\t\t}\n\t};\n\n\treturn make(path.resolve(input));\n};\n\nmodule.exports = makeDir;\n\nmodule.exports.sync = (input, options) => {\n\tcheckPath(input);\n\toptions = processOptions(options);\n\n\tif (useNativeRecursiveOption && options.fs.mkdirSync === fs.mkdirSync) {\n\t\tconst pth = path.resolve(input);\n\n\t\tfs.mkdirSync(pth, {\n\t\t\tmode: options.mode,\n\t\t\trecursive: true\n\t\t});\n\n\t\treturn pth;\n\t}\n\n\tconst make = pth => {\n\t\ttry {\n\t\t\toptions.fs.mkdirSync(pth, options.mode);\n\t\t} catch (error) {\n\t\t\tif (error.code === 'EPERM') {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\tif (path.dirname(pth) === pth) {\n\t\t\t\t\tthrow permissionError(pth);\n\t\t\t\t}\n\n\t\t\t\tif (error.message.includes('null bytes')) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tmake(path.dirname(pth));\n\t\t\t\treturn make(pth);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tif (!options.fs.statSync(pth).isDirectory()) {\n\t\t\t\t\tthrow new Error('The path is not a directory');\n\t\t\t\t}\n\t\t\t} catch (_) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\treturn pth;\n\t};\n\n\treturn make(path.resolve(input));\n};\n","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n const streamsQueue = []\n const args = slice.call(arguments)\n let merging = false\n let options = args[args.length - 1]\n\n if (options && !Array.isArray(options) && options.pipe == null) {\n args.pop()\n } else {\n options = {}\n }\n\n const doEnd = options.end !== false\n const doPipeError = options.pipeError === true\n if (options.objectMode == null) {\n options.objectMode = true\n }\n if (options.highWaterMark == null) {\n options.highWaterMark = 64 * 1024\n }\n const mergedStream = PassThrough(options)\n\n function addStream () {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options))\n }\n mergeStream()\n return this\n }\n\n function mergeStream () {\n if (merging) {\n return\n }\n merging = true\n\n let streams = streamsQueue.shift()\n if (!streams) {\n process.nextTick(endStream)\n return\n }\n if (!Array.isArray(streams)) {\n streams = [streams]\n }\n\n let pipesCount = streams.length + 1\n\n function next () {\n if (--pipesCount > 0) {\n return\n }\n merging = false\n mergeStream()\n }\n\n function pipe (stream) {\n function onend () {\n stream.removeListener('merge2UnpipeEnd', onend)\n stream.removeListener('end', onend)\n if (doPipeError) {\n stream.removeListener('error', onerror)\n }\n next()\n }\n function onerror (err) {\n mergedStream.emit('error', err)\n }\n // skip ended stream\n if (stream._readableState.endEmitted) {\n return next()\n }\n\n stream.on('merge2UnpipeEnd', onend)\n stream.on('end', onend)\n\n if (doPipeError) {\n stream.on('error', onerror)\n }\n\n stream.pipe(mergedStream, { end: false })\n // compatible for old stream\n stream.resume()\n }\n\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i])\n }\n\n next()\n }\n\n function endStream () {\n merging = false\n // emit 'queueDrain' when all streams merged.\n mergedStream.emit('queueDrain')\n if (doEnd) {\n mergedStream.end()\n }\n }\n\n mergedStream.setMaxListeners(0)\n mergedStream.add = addStream\n mergedStream.on('unpipe', function (stream) {\n stream.emit('merge2UnpipeEnd')\n })\n\n if (args.length) {\n addStream.apply(null, args)\n }\n return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n if (!Array.isArray(streams)) {\n // Backwards-compat with old-style streams\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options))\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error('Only readable stream can be merged.')\n }\n streams.pause()\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options)\n }\n }\n return streams\n}\n","'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\nconst isEmptyString = val => val === '' || val === './';\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array} `list` List of strings to match.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n\n let omit = new Set();\n let keep = new Set();\n let items = new Set();\n let negatives = 0;\n\n let onResult = state => {\n items.add(state.output);\n if (options && options.onResult) {\n options.onResult(state);\n }\n };\n\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n\n for (let item of list) {\n let matched = isMatch(item, true);\n\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n\n if (negated) {\n omit.add(matched.output);\n } else {\n omit.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter(item => !omit.has(item));\n\n if (options && matches.length === 0) {\n if (options.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n }\n\n if (options.nonull === true || options.nullglob === true) {\n return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n }\n }\n\n return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = new Set();\n let items = [];\n\n let onResult = state => {\n if (options.onResult) options.onResult(state);\n items.push(state.output);\n };\n\n let matches = new Set(micromatch(list, patterns, { ...options, onResult }));\n\n for (let item of items) {\n if (!matches.has(item)) {\n result.add(item);\n }\n }\n return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n if (Array.isArray(pattern)) {\n return pattern.some(p => micromatch.contains(str, p, options));\n }\n\n if (typeof pattern === 'string') {\n if (isEmptyString(str) || isEmptyString(pattern)) {\n return false;\n }\n\n if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n return true;\n }\n }\n\n return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n if (!utils.isObject(obj)) {\n throw new TypeError('Expected the first argument to be an object');\n }\n let keys = micromatch(Object.keys(obj), patterns, options);\n let res = {};\n for (let key of keys) res[key] = obj[key];\n return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (items.some(item => isMatch(item))) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (!items.every(item => isMatch(item))) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n let posix = utils.isWindows(options);\n let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n if (match) {\n return match.slice(1).map(v => v === void 0 ? '' : v);\n }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.parse(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str of braces(String(pattern), options)) {\n res.push(picomatch.parse(str, options));\n }\n }\n return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n if ((options && options.nobrace === true) || !/\\{.*\\}/.test(pattern)) {\n return [pattern];\n }\n return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\nmodule.exports = micromatch;\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'), require('./types/other'));\n","module.exports = {\"application/prs.cww\":[\"cww\"],\"application/vnd.1000minds.decision-model+xml\":[\"1km\"],\"application/vnd.3gpp.pic-bw-large\":[\"plb\"],\"application/vnd.3gpp.pic-bw-small\":[\"psb\"],\"application/vnd.3gpp.pic-bw-var\":[\"pvb\"],\"application/vnd.3gpp2.tcap\":[\"tcap\"],\"application/vnd.3m.post-it-notes\":[\"pwn\"],\"application/vnd.accpac.simply.aso\":[\"aso\"],\"application/vnd.accpac.simply.imp\":[\"imp\"],\"application/vnd.acucobol\":[\"acu\"],\"application/vnd.acucorp\":[\"atc\",\"acutc\"],\"application/vnd.adobe.air-application-installer-package+zip\":[\"air\"],\"application/vnd.adobe.formscentral.fcdt\":[\"fcdt\"],\"application/vnd.adobe.fxp\":[\"fxp\",\"fxpl\"],\"application/vnd.adobe.xdp+xml\":[\"xdp\"],\"application/vnd.adobe.xfdf\":[\"xfdf\"],\"application/vnd.ahead.space\":[\"ahead\"],\"application/vnd.airzip.filesecure.azf\":[\"azf\"],\"application/vnd.airzip.filesecure.azs\":[\"azs\"],\"application/vnd.amazon.ebook\":[\"azw\"],\"application/vnd.americandynamics.acc\":[\"acc\"],\"application/vnd.amiga.ami\":[\"ami\"],\"application/vnd.android.package-archive\":[\"apk\"],\"application/vnd.anser-web-certificate-issue-initiation\":[\"cii\"],\"application/vnd.anser-web-funds-transfer-initiation\":[\"fti\"],\"application/vnd.antix.game-component\":[\"atx\"],\"application/vnd.apple.installer+xml\":[\"mpkg\"],\"application/vnd.apple.keynote\":[\"key\"],\"application/vnd.apple.mpegurl\":[\"m3u8\"],\"application/vnd.apple.numbers\":[\"numbers\"],\"application/vnd.apple.pages\":[\"pages\"],\"application/vnd.apple.pkpass\":[\"pkpass\"],\"application/vnd.aristanetworks.swi\":[\"swi\"],\"application/vnd.astraea-software.iota\":[\"iota\"],\"application/vnd.audiograph\":[\"aep\"],\"application/vnd.balsamiq.bmml+xml\":[\"bmml\"],\"application/vnd.blueice.multipass\":[\"mpm\"],\"application/vnd.bmi\":[\"bmi\"],\"application/vnd.businessobjects\":[\"rep\"],\"application/vnd.chemdraw+xml\":[\"cdxml\"],\"application/vnd.chipnuts.karaoke-mmd\":[\"mmd\"],\"application/vnd.cinderella\":[\"cdy\"],\"application/vnd.citationstyles.style+xml\":[\"csl\"],\"application/vnd.claymore\":[\"cla\"],\"application/vnd.cloanto.rp9\":[\"rp9\"],\"application/vnd.clonk.c4group\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"],\"application/vnd.cluetrust.cartomobile-config\":[\"c11amc\"],\"application/vnd.cluetrust.cartomobile-config-pkg\":[\"c11amz\"],\"application/vnd.commonspace\":[\"csp\"],\"application/vnd.contact.cmsg\":[\"cdbcmsg\"],\"application/vnd.cosmocaller\":[\"cmc\"],\"application/vnd.crick.clicker\":[\"clkx\"],\"application/vnd.crick.clicker.keyboard\":[\"clkk\"],\"application/vnd.crick.clicker.palette\":[\"clkp\"],\"application/vnd.crick.clicker.template\":[\"clkt\"],\"application/vnd.crick.clicker.wordbank\":[\"clkw\"],\"application/vnd.criticaltools.wbs+xml\":[\"wbs\"],\"application/vnd.ctc-posml\":[\"pml\"],\"application/vnd.cups-ppd\":[\"ppd\"],\"application/vnd.curl.car\":[\"car\"],\"application/vnd.curl.pcurl\":[\"pcurl\"],\"application/vnd.dart\":[\"dart\"],\"application/vnd.data-vision.rdz\":[\"rdz\"],\"application/vnd.dbf\":[\"dbf\"],\"application/vnd.dece.data\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"],\"application/vnd.dece.ttml+xml\":[\"uvt\",\"uvvt\"],\"application/vnd.dece.unspecified\":[\"uvx\",\"uvvx\"],\"application/vnd.dece.zip\":[\"uvz\",\"uvvz\"],\"application/vnd.denovo.fcselayout-link\":[\"fe_launch\"],\"application/vnd.dna\":[\"dna\"],\"application/vnd.dolby.mlp\":[\"mlp\"],\"application/vnd.dpgraph\":[\"dpg\"],\"application/vnd.dreamfactory\":[\"dfac\"],\"application/vnd.ds-keypoint\":[\"kpxx\"],\"application/vnd.dvb.ait\":[\"ait\"],\"application/vnd.dvb.service\":[\"svc\"],\"application/vnd.dynageo\":[\"geo\"],\"application/vnd.ecowin.chart\":[\"mag\"],\"application/vnd.enliven\":[\"nml\"],\"application/vnd.epson.esf\":[\"esf\"],\"application/vnd.epson.msf\":[\"msf\"],\"application/vnd.epson.quickanime\":[\"qam\"],\"application/vnd.epson.salt\":[\"slt\"],\"application/vnd.epson.ssf\":[\"ssf\"],\"application/vnd.eszigno3+xml\":[\"es3\",\"et3\"],\"application/vnd.ezpix-album\":[\"ez2\"],\"application/vnd.ezpix-package\":[\"ez3\"],\"application/vnd.fdf\":[\"fdf\"],\"application/vnd.fdsn.mseed\":[\"mseed\"],\"application/vnd.fdsn.seed\":[\"seed\",\"dataless\"],\"application/vnd.flographit\":[\"gph\"],\"application/vnd.fluxtime.clip\":[\"ftc\"],\"application/vnd.framemaker\":[\"fm\",\"frame\",\"maker\",\"book\"],\"application/vnd.frogans.fnc\":[\"fnc\"],\"application/vnd.frogans.ltf\":[\"ltf\"],\"application/vnd.fsc.weblaunch\":[\"fsc\"],\"application/vnd.fujitsu.oasys\":[\"oas\"],\"application/vnd.fujitsu.oasys2\":[\"oa2\"],\"application/vnd.fujitsu.oasys3\":[\"oa3\"],\"application/vnd.fujitsu.oasysgp\":[\"fg5\"],\"application/vnd.fujitsu.oasysprs\":[\"bh2\"],\"application/vnd.fujixerox.ddd\":[\"ddd\"],\"application/vnd.fujixerox.docuworks\":[\"xdw\"],\"application/vnd.fujixerox.docuworks.binder\":[\"xbd\"],\"application/vnd.fuzzysheet\":[\"fzs\"],\"application/vnd.genomatix.tuxedo\":[\"txd\"],\"application/vnd.geogebra.file\":[\"ggb\"],\"application/vnd.geogebra.tool\":[\"ggt\"],\"application/vnd.geometry-explorer\":[\"gex\",\"gre\"],\"application/vnd.geonext\":[\"gxt\"],\"application/vnd.geoplan\":[\"g2w\"],\"application/vnd.geospace\":[\"g3w\"],\"application/vnd.gmx\":[\"gmx\"],\"application/vnd.google-apps.document\":[\"gdoc\"],\"application/vnd.google-apps.presentation\":[\"gslides\"],\"application/vnd.google-apps.spreadsheet\":[\"gsheet\"],\"application/vnd.google-earth.kml+xml\":[\"kml\"],\"application/vnd.google-earth.kmz\":[\"kmz\"],\"application/vnd.grafeq\":[\"gqf\",\"gqs\"],\"application/vnd.groove-account\":[\"gac\"],\"application/vnd.groove-help\":[\"ghf\"],\"application/vnd.groove-identity-message\":[\"gim\"],\"application/vnd.groove-injector\":[\"grv\"],\"application/vnd.groove-tool-message\":[\"gtm\"],\"application/vnd.groove-tool-template\":[\"tpl\"],\"application/vnd.groove-vcard\":[\"vcg\"],\"application/vnd.hal+xml\":[\"hal\"],\"application/vnd.handheld-entertainment+xml\":[\"zmm\"],\"application/vnd.hbci\":[\"hbci\"],\"application/vnd.hhe.lesson-player\":[\"les\"],\"application/vnd.hp-hpgl\":[\"hpgl\"],\"application/vnd.hp-hpid\":[\"hpid\"],\"application/vnd.hp-hps\":[\"hps\"],\"application/vnd.hp-jlyt\":[\"jlt\"],\"application/vnd.hp-pcl\":[\"pcl\"],\"application/vnd.hp-pclxl\":[\"pclxl\"],\"application/vnd.hydrostatix.sof-data\":[\"sfd-hdstx\"],\"application/vnd.ibm.minipay\":[\"mpy\"],\"application/vnd.ibm.modcap\":[\"afp\",\"listafp\",\"list3820\"],\"application/vnd.ibm.rights-management\":[\"irm\"],\"application/vnd.ibm.secure-container\":[\"sc\"],\"application/vnd.iccprofile\":[\"icc\",\"icm\"],\"application/vnd.igloader\":[\"igl\"],\"application/vnd.immervision-ivp\":[\"ivp\"],\"application/vnd.immervision-ivu\":[\"ivu\"],\"application/vnd.insors.igm\":[\"igm\"],\"application/vnd.intercon.formnet\":[\"xpw\",\"xpx\"],\"application/vnd.intergeo\":[\"i2g\"],\"application/vnd.intu.qbo\":[\"qbo\"],\"application/vnd.intu.qfx\":[\"qfx\"],\"application/vnd.ipunplugged.rcprofile\":[\"rcprofile\"],\"application/vnd.irepository.package+xml\":[\"irp\"],\"application/vnd.is-xpr\":[\"xpr\"],\"application/vnd.isac.fcs\":[\"fcs\"],\"application/vnd.jam\":[\"jam\"],\"application/vnd.jcp.javame.midlet-rms\":[\"rms\"],\"application/vnd.jisp\":[\"jisp\"],\"application/vnd.joost.joda-archive\":[\"joda\"],\"application/vnd.kahootz\":[\"ktz\",\"ktr\"],\"application/vnd.kde.karbon\":[\"karbon\"],\"application/vnd.kde.kchart\":[\"chrt\"],\"application/vnd.kde.kformula\":[\"kfo\"],\"application/vnd.kde.kivio\":[\"flw\"],\"application/vnd.kde.kontour\":[\"kon\"],\"application/vnd.kde.kpresenter\":[\"kpr\",\"kpt\"],\"application/vnd.kde.kspread\":[\"ksp\"],\"application/vnd.kde.kword\":[\"kwd\",\"kwt\"],\"application/vnd.kenameaapp\":[\"htke\"],\"application/vnd.kidspiration\":[\"kia\"],\"application/vnd.kinar\":[\"kne\",\"knp\"],\"application/vnd.koan\":[\"skp\",\"skd\",\"skt\",\"skm\"],\"application/vnd.kodak-descriptor\":[\"sse\"],\"application/vnd.las.las+xml\":[\"lasxml\"],\"application/vnd.llamagraphics.life-balance.desktop\":[\"lbd\"],\"application/vnd.llamagraphics.life-balance.exchange+xml\":[\"lbe\"],\"application/vnd.lotus-1-2-3\":[\"123\"],\"application/vnd.lotus-approach\":[\"apr\"],\"application/vnd.lotus-freelance\":[\"pre\"],\"application/vnd.lotus-notes\":[\"nsf\"],\"application/vnd.lotus-organizer\":[\"org\"],\"application/vnd.lotus-screencam\":[\"scm\"],\"application/vnd.lotus-wordpro\":[\"lwp\"],\"application/vnd.macports.portpkg\":[\"portpkg\"],\"application/vnd.mapbox-vector-tile\":[\"mvt\"],\"application/vnd.mcd\":[\"mcd\"],\"application/vnd.medcalcdata\":[\"mc1\"],\"application/vnd.mediastation.cdkey\":[\"cdkey\"],\"application/vnd.mfer\":[\"mwf\"],\"application/vnd.mfmp\":[\"mfm\"],\"application/vnd.micrografx.flo\":[\"flo\"],\"application/vnd.micrografx.igx\":[\"igx\"],\"application/vnd.mif\":[\"mif\"],\"application/vnd.mobius.daf\":[\"daf\"],\"application/vnd.mobius.dis\":[\"dis\"],\"application/vnd.mobius.mbk\":[\"mbk\"],\"application/vnd.mobius.mqy\":[\"mqy\"],\"application/vnd.mobius.msl\":[\"msl\"],\"application/vnd.mobius.plc\":[\"plc\"],\"application/vnd.mobius.txf\":[\"txf\"],\"application/vnd.mophun.application\":[\"mpn\"],\"application/vnd.mophun.certificate\":[\"mpc\"],\"application/vnd.mozilla.xul+xml\":[\"xul\"],\"application/vnd.ms-artgalry\":[\"cil\"],\"application/vnd.ms-cab-compressed\":[\"cab\"],\"application/vnd.ms-excel\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"],\"application/vnd.ms-excel.addin.macroenabled.12\":[\"xlam\"],\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":[\"xlsb\"],\"application/vnd.ms-excel.sheet.macroenabled.12\":[\"xlsm\"],\"application/vnd.ms-excel.template.macroenabled.12\":[\"xltm\"],\"application/vnd.ms-fontobject\":[\"eot\"],\"application/vnd.ms-htmlhelp\":[\"chm\"],\"application/vnd.ms-ims\":[\"ims\"],\"application/vnd.ms-lrm\":[\"lrm\"],\"application/vnd.ms-officetheme\":[\"thmx\"],\"application/vnd.ms-outlook\":[\"msg\"],\"application/vnd.ms-pki.seccat\":[\"cat\"],\"application/vnd.ms-pki.stl\":[\"*stl\"],\"application/vnd.ms-powerpoint\":[\"ppt\",\"pps\",\"pot\"],\"application/vnd.ms-powerpoint.addin.macroenabled.12\":[\"ppam\"],\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":[\"pptm\"],\"application/vnd.ms-powerpoint.slide.macroenabled.12\":[\"sldm\"],\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":[\"ppsm\"],\"application/vnd.ms-powerpoint.template.macroenabled.12\":[\"potm\"],\"application/vnd.ms-project\":[\"mpp\",\"mpt\"],\"application/vnd.ms-word.document.macroenabled.12\":[\"docm\"],\"application/vnd.ms-word.template.macroenabled.12\":[\"dotm\"],\"application/vnd.ms-works\":[\"wps\",\"wks\",\"wcm\",\"wdb\"],\"application/vnd.ms-wpl\":[\"wpl\"],\"application/vnd.ms-xpsdocument\":[\"xps\"],\"application/vnd.mseq\":[\"mseq\"],\"application/vnd.musician\":[\"mus\"],\"application/vnd.muvee.style\":[\"msty\"],\"application/vnd.mynfc\":[\"taglet\"],\"application/vnd.neurolanguage.nlu\":[\"nlu\"],\"application/vnd.nitf\":[\"ntf\",\"nitf\"],\"application/vnd.noblenet-directory\":[\"nnd\"],\"application/vnd.noblenet-sealer\":[\"nns\"],\"application/vnd.noblenet-web\":[\"nnw\"],\"application/vnd.nokia.n-gage.ac+xml\":[\"*ac\"],\"application/vnd.nokia.n-gage.data\":[\"ngdat\"],\"application/vnd.nokia.n-gage.symbian.install\":[\"n-gage\"],\"application/vnd.nokia.radio-preset\":[\"rpst\"],\"application/vnd.nokia.radio-presets\":[\"rpss\"],\"application/vnd.novadigm.edm\":[\"edm\"],\"application/vnd.novadigm.edx\":[\"edx\"],\"application/vnd.novadigm.ext\":[\"ext\"],\"application/vnd.oasis.opendocument.chart\":[\"odc\"],\"application/vnd.oasis.opendocument.chart-template\":[\"otc\"],\"application/vnd.oasis.opendocument.database\":[\"odb\"],\"application/vnd.oasis.opendocument.formula\":[\"odf\"],\"application/vnd.oasis.opendocument.formula-template\":[\"odft\"],\"application/vnd.oasis.opendocument.graphics\":[\"odg\"],\"application/vnd.oasis.opendocument.graphics-template\":[\"otg\"],\"application/vnd.oasis.opendocument.image\":[\"odi\"],\"application/vnd.oasis.opendocument.image-template\":[\"oti\"],\"application/vnd.oasis.opendocument.presentation\":[\"odp\"],\"application/vnd.oasis.opendocument.presentation-template\":[\"otp\"],\"application/vnd.oasis.opendocument.spreadsheet\":[\"ods\"],\"application/vnd.oasis.opendocument.spreadsheet-template\":[\"ots\"],\"application/vnd.oasis.opendocument.text\":[\"odt\"],\"application/vnd.oasis.opendocument.text-master\":[\"odm\"],\"application/vnd.oasis.opendocument.text-template\":[\"ott\"],\"application/vnd.oasis.opendocument.text-web\":[\"oth\"],\"application/vnd.olpc-sugar\":[\"xo\"],\"application/vnd.oma.dd2+xml\":[\"dd2\"],\"application/vnd.openblox.game+xml\":[\"obgx\"],\"application/vnd.openofficeorg.extension\":[\"oxt\"],\"application/vnd.openstreetmap.data+xml\":[\"osm\"],\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":[\"pptx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slide\":[\"sldx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":[\"ppsx\"],\"application/vnd.openxmlformats-officedocument.presentationml.template\":[\"potx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":[\"xlsx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":[\"xltx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":[\"docx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":[\"dotx\"],\"application/vnd.osgeo.mapguide.package\":[\"mgp\"],\"application/vnd.osgi.dp\":[\"dp\"],\"application/vnd.osgi.subsystem\":[\"esa\"],\"application/vnd.palm\":[\"pdb\",\"pqa\",\"oprc\"],\"application/vnd.pawaafile\":[\"paw\"],\"application/vnd.pg.format\":[\"str\"],\"application/vnd.pg.osasli\":[\"ei6\"],\"application/vnd.picsel\":[\"efif\"],\"application/vnd.pmi.widget\":[\"wg\"],\"application/vnd.pocketlearn\":[\"plf\"],\"application/vnd.powerbuilder6\":[\"pbd\"],\"application/vnd.previewsystems.box\":[\"box\"],\"application/vnd.proteus.magazine\":[\"mgz\"],\"application/vnd.publishare-delta-tree\":[\"qps\"],\"application/vnd.pvi.ptid1\":[\"ptid\"],\"application/vnd.quark.quarkxpress\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"],\"application/vnd.rar\":[\"rar\"],\"application/vnd.realvnc.bed\":[\"bed\"],\"application/vnd.recordare.musicxml\":[\"mxl\"],\"application/vnd.recordare.musicxml+xml\":[\"musicxml\"],\"application/vnd.rig.cryptonote\":[\"cryptonote\"],\"application/vnd.rim.cod\":[\"cod\"],\"application/vnd.rn-realmedia\":[\"rm\"],\"application/vnd.rn-realmedia-vbr\":[\"rmvb\"],\"application/vnd.route66.link66+xml\":[\"link66\"],\"application/vnd.sailingtracker.track\":[\"st\"],\"application/vnd.seemail\":[\"see\"],\"application/vnd.sema\":[\"sema\"],\"application/vnd.semd\":[\"semd\"],\"application/vnd.semf\":[\"semf\"],\"application/vnd.shana.informed.formdata\":[\"ifm\"],\"application/vnd.shana.informed.formtemplate\":[\"itp\"],\"application/vnd.shana.informed.interchange\":[\"iif\"],\"application/vnd.shana.informed.package\":[\"ipk\"],\"application/vnd.simtech-mindmapper\":[\"twd\",\"twds\"],\"application/vnd.smaf\":[\"mmf\"],\"application/vnd.smart.teacher\":[\"teacher\"],\"application/vnd.software602.filler.form+xml\":[\"fo\"],\"application/vnd.solent.sdkm+xml\":[\"sdkm\",\"sdkd\"],\"application/vnd.spotfire.dxp\":[\"dxp\"],\"application/vnd.spotfire.sfs\":[\"sfs\"],\"application/vnd.stardivision.calc\":[\"sdc\"],\"application/vnd.stardivision.draw\":[\"sda\"],\"application/vnd.stardivision.impress\":[\"sdd\"],\"application/vnd.stardivision.math\":[\"smf\"],\"application/vnd.stardivision.writer\":[\"sdw\",\"vor\"],\"application/vnd.stardivision.writer-global\":[\"sgl\"],\"application/vnd.stepmania.package\":[\"smzip\"],\"application/vnd.stepmania.stepchart\":[\"sm\"],\"application/vnd.sun.wadl+xml\":[\"wadl\"],\"application/vnd.sun.xml.calc\":[\"sxc\"],\"application/vnd.sun.xml.calc.template\":[\"stc\"],\"application/vnd.sun.xml.draw\":[\"sxd\"],\"application/vnd.sun.xml.draw.template\":[\"std\"],\"application/vnd.sun.xml.impress\":[\"sxi\"],\"application/vnd.sun.xml.impress.template\":[\"sti\"],\"application/vnd.sun.xml.math\":[\"sxm\"],\"application/vnd.sun.xml.writer\":[\"sxw\"],\"application/vnd.sun.xml.writer.global\":[\"sxg\"],\"application/vnd.sun.xml.writer.template\":[\"stw\"],\"application/vnd.sus-calendar\":[\"sus\",\"susp\"],\"application/vnd.svd\":[\"svd\"],\"application/vnd.symbian.install\":[\"sis\",\"sisx\"],\"application/vnd.syncml+xml\":[\"xsm\"],\"application/vnd.syncml.dm+wbxml\":[\"bdm\"],\"application/vnd.syncml.dm+xml\":[\"xdm\"],\"application/vnd.syncml.dmddf+xml\":[\"ddf\"],\"application/vnd.tao.intent-module-archive\":[\"tao\"],\"application/vnd.tcpdump.pcap\":[\"pcap\",\"cap\",\"dmp\"],\"application/vnd.tmobile-livetv\":[\"tmo\"],\"application/vnd.trid.tpt\":[\"tpt\"],\"application/vnd.triscape.mxs\":[\"mxs\"],\"application/vnd.trueapp\":[\"tra\"],\"application/vnd.ufdl\":[\"ufd\",\"ufdl\"],\"application/vnd.uiq.theme\":[\"utz\"],\"application/vnd.umajin\":[\"umj\"],\"application/vnd.unity\":[\"unityweb\"],\"application/vnd.uoml+xml\":[\"uoml\"],\"application/vnd.vcx\":[\"vcx\"],\"application/vnd.visio\":[\"vsd\",\"vst\",\"vss\",\"vsw\"],\"application/vnd.visionary\":[\"vis\"],\"application/vnd.vsf\":[\"vsf\"],\"application/vnd.wap.wbxml\":[\"wbxml\"],\"application/vnd.wap.wmlc\":[\"wmlc\"],\"application/vnd.wap.wmlscriptc\":[\"wmlsc\"],\"application/vnd.webturbo\":[\"wtb\"],\"application/vnd.wolfram.player\":[\"nbp\"],\"application/vnd.wordperfect\":[\"wpd\"],\"application/vnd.wqd\":[\"wqd\"],\"application/vnd.wt.stf\":[\"stf\"],\"application/vnd.xara\":[\"xar\"],\"application/vnd.xfdl\":[\"xfdl\"],\"application/vnd.yamaha.hv-dic\":[\"hvd\"],\"application/vnd.yamaha.hv-script\":[\"hvs\"],\"application/vnd.yamaha.hv-voice\":[\"hvp\"],\"application/vnd.yamaha.openscoreformat\":[\"osf\"],\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":[\"osfpvg\"],\"application/vnd.yamaha.smaf-audio\":[\"saf\"],\"application/vnd.yamaha.smaf-phrase\":[\"spf\"],\"application/vnd.yellowriver-custom-menu\":[\"cmp\"],\"application/vnd.zul\":[\"zir\",\"zirz\"],\"application/vnd.zzazz.deck+xml\":[\"zaz\"],\"application/x-7z-compressed\":[\"7z\"],\"application/x-abiword\":[\"abw\"],\"application/x-ace-compressed\":[\"ace\"],\"application/x-apple-diskimage\":[\"*dmg\"],\"application/x-arj\":[\"arj\"],\"application/x-authorware-bin\":[\"aab\",\"x32\",\"u32\",\"vox\"],\"application/x-authorware-map\":[\"aam\"],\"application/x-authorware-seg\":[\"aas\"],\"application/x-bcpio\":[\"bcpio\"],\"application/x-bdoc\":[\"*bdoc\"],\"application/x-bittorrent\":[\"torrent\"],\"application/x-blorb\":[\"blb\",\"blorb\"],\"application/x-bzip\":[\"bz\"],\"application/x-bzip2\":[\"bz2\",\"boz\"],\"application/x-cbr\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"],\"application/x-cdlink\":[\"vcd\"],\"application/x-cfs-compressed\":[\"cfs\"],\"application/x-chat\":[\"chat\"],\"application/x-chess-pgn\":[\"pgn\"],\"application/x-chrome-extension\":[\"crx\"],\"application/x-cocoa\":[\"cco\"],\"application/x-conference\":[\"nsc\"],\"application/x-cpio\":[\"cpio\"],\"application/x-csh\":[\"csh\"],\"application/x-debian-package\":[\"*deb\",\"udeb\"],\"application/x-dgc-compressed\":[\"dgc\"],\"application/x-director\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"],\"application/x-doom\":[\"wad\"],\"application/x-dtbncx+xml\":[\"ncx\"],\"application/x-dtbook+xml\":[\"dtb\"],\"application/x-dtbresource+xml\":[\"res\"],\"application/x-dvi\":[\"dvi\"],\"application/x-envoy\":[\"evy\"],\"application/x-eva\":[\"eva\"],\"application/x-font-bdf\":[\"bdf\"],\"application/x-font-ghostscript\":[\"gsf\"],\"application/x-font-linux-psf\":[\"psf\"],\"application/x-font-pcf\":[\"pcf\"],\"application/x-font-snf\":[\"snf\"],\"application/x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"application/x-freearc\":[\"arc\"],\"application/x-futuresplash\":[\"spl\"],\"application/x-gca-compressed\":[\"gca\"],\"application/x-glulx\":[\"ulx\"],\"application/x-gnumeric\":[\"gnumeric\"],\"application/x-gramps-xml\":[\"gramps\"],\"application/x-gtar\":[\"gtar\"],\"application/x-hdf\":[\"hdf\"],\"application/x-httpd-php\":[\"php\"],\"application/x-install-instructions\":[\"install\"],\"application/x-iso9660-image\":[\"*iso\"],\"application/x-iwork-keynote-sffkey\":[\"*key\"],\"application/x-iwork-numbers-sffnumbers\":[\"*numbers\"],\"application/x-iwork-pages-sffpages\":[\"*pages\"],\"application/x-java-archive-diff\":[\"jardiff\"],\"application/x-java-jnlp-file\":[\"jnlp\"],\"application/x-keepass2\":[\"kdbx\"],\"application/x-latex\":[\"latex\"],\"application/x-lua-bytecode\":[\"luac\"],\"application/x-lzh-compressed\":[\"lzh\",\"lha\"],\"application/x-makeself\":[\"run\"],\"application/x-mie\":[\"mie\"],\"application/x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"application/x-ms-application\":[\"application\"],\"application/x-ms-shortcut\":[\"lnk\"],\"application/x-ms-wmd\":[\"wmd\"],\"application/x-ms-wmz\":[\"wmz\"],\"application/x-ms-xbap\":[\"xbap\"],\"application/x-msaccess\":[\"mdb\"],\"application/x-msbinder\":[\"obd\"],\"application/x-mscardfile\":[\"crd\"],\"application/x-msclip\":[\"clp\"],\"application/x-msdos-program\":[\"*exe\"],\"application/x-msdownload\":[\"*exe\",\"*dll\",\"com\",\"bat\",\"*msi\"],\"application/x-msmediaview\":[\"mvb\",\"m13\",\"m14\"],\"application/x-msmetafile\":[\"*wmf\",\"*wmz\",\"*emf\",\"emz\"],\"application/x-msmoney\":[\"mny\"],\"application/x-mspublisher\":[\"pub\"],\"application/x-msschedule\":[\"scd\"],\"application/x-msterminal\":[\"trm\"],\"application/x-mswrite\":[\"wri\"],\"application/x-netcdf\":[\"nc\",\"cdf\"],\"application/x-ns-proxy-autoconfig\":[\"pac\"],\"application/x-nzb\":[\"nzb\"],\"application/x-perl\":[\"pl\",\"pm\"],\"application/x-pilot\":[\"*prc\",\"*pdb\"],\"application/x-pkcs12\":[\"p12\",\"pfx\"],\"application/x-pkcs7-certificates\":[\"p7b\",\"spc\"],\"application/x-pkcs7-certreqresp\":[\"p7r\"],\"application/x-rar-compressed\":[\"*rar\"],\"application/x-redhat-package-manager\":[\"rpm\"],\"application/x-research-info-systems\":[\"ris\"],\"application/x-sea\":[\"sea\"],\"application/x-sh\":[\"sh\"],\"application/x-shar\":[\"shar\"],\"application/x-shockwave-flash\":[\"swf\"],\"application/x-silverlight-app\":[\"xap\"],\"application/x-sql\":[\"sql\"],\"application/x-stuffit\":[\"sit\"],\"application/x-stuffitx\":[\"sitx\"],\"application/x-subrip\":[\"srt\"],\"application/x-sv4cpio\":[\"sv4cpio\"],\"application/x-sv4crc\":[\"sv4crc\"],\"application/x-t3vm-image\":[\"t3\"],\"application/x-tads\":[\"gam\"],\"application/x-tar\":[\"tar\"],\"application/x-tcl\":[\"tcl\",\"tk\"],\"application/x-tex\":[\"tex\"],\"application/x-tex-tfm\":[\"tfm\"],\"application/x-texinfo\":[\"texinfo\",\"texi\"],\"application/x-tgif\":[\"*obj\"],\"application/x-ustar\":[\"ustar\"],\"application/x-virtualbox-hdd\":[\"hdd\"],\"application/x-virtualbox-ova\":[\"ova\"],\"application/x-virtualbox-ovf\":[\"ovf\"],\"application/x-virtualbox-vbox\":[\"vbox\"],\"application/x-virtualbox-vbox-extpack\":[\"vbox-extpack\"],\"application/x-virtualbox-vdi\":[\"vdi\"],\"application/x-virtualbox-vhd\":[\"vhd\"],\"application/x-virtualbox-vmdk\":[\"vmdk\"],\"application/x-wais-source\":[\"src\"],\"application/x-web-app-manifest+json\":[\"webapp\"],\"application/x-x509-ca-cert\":[\"der\",\"crt\",\"pem\"],\"application/x-xfig\":[\"fig\"],\"application/x-xliff+xml\":[\"*xlf\"],\"application/x-xpinstall\":[\"xpi\"],\"application/x-xz\":[\"xz\"],\"application/x-zmachine\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"],\"audio/vnd.dece.audio\":[\"uva\",\"uvva\"],\"audio/vnd.digital-winds\":[\"eol\"],\"audio/vnd.dra\":[\"dra\"],\"audio/vnd.dts\":[\"dts\"],\"audio/vnd.dts.hd\":[\"dtshd\"],\"audio/vnd.lucent.voice\":[\"lvp\"],\"audio/vnd.ms-playready.media.pya\":[\"pya\"],\"audio/vnd.nuera.ecelp4800\":[\"ecelp4800\"],\"audio/vnd.nuera.ecelp7470\":[\"ecelp7470\"],\"audio/vnd.nuera.ecelp9600\":[\"ecelp9600\"],\"audio/vnd.rip\":[\"rip\"],\"audio/x-aac\":[\"aac\"],\"audio/x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"audio/x-caf\":[\"caf\"],\"audio/x-flac\":[\"flac\"],\"audio/x-m4a\":[\"*m4a\"],\"audio/x-matroska\":[\"mka\"],\"audio/x-mpegurl\":[\"m3u\"],\"audio/x-ms-wax\":[\"wax\"],\"audio/x-ms-wma\":[\"wma\"],\"audio/x-pn-realaudio\":[\"ram\",\"ra\"],\"audio/x-pn-realaudio-plugin\":[\"rmp\"],\"audio/x-realaudio\":[\"*ra\"],\"audio/x-wav\":[\"*wav\"],\"chemical/x-cdx\":[\"cdx\"],\"chemical/x-cif\":[\"cif\"],\"chemical/x-cmdf\":[\"cmdf\"],\"chemical/x-cml\":[\"cml\"],\"chemical/x-csml\":[\"csml\"],\"chemical/x-xyz\":[\"xyz\"],\"image/prs.btif\":[\"btif\"],\"image/prs.pti\":[\"pti\"],\"image/vnd.adobe.photoshop\":[\"psd\"],\"image/vnd.airzip.accelerator.azv\":[\"azv\"],\"image/vnd.dece.graphic\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"],\"image/vnd.djvu\":[\"djvu\",\"djv\"],\"image/vnd.dvb.subtitle\":[\"*sub\"],\"image/vnd.dwg\":[\"dwg\"],\"image/vnd.dxf\":[\"dxf\"],\"image/vnd.fastbidsheet\":[\"fbs\"],\"image/vnd.fpx\":[\"fpx\"],\"image/vnd.fst\":[\"fst\"],\"image/vnd.fujixerox.edmics-mmr\":[\"mmr\"],\"image/vnd.fujixerox.edmics-rlc\":[\"rlc\"],\"image/vnd.microsoft.icon\":[\"ico\"],\"image/vnd.ms-dds\":[\"dds\"],\"image/vnd.ms-modi\":[\"mdi\"],\"image/vnd.ms-photo\":[\"wdp\"],\"image/vnd.net-fpx\":[\"npx\"],\"image/vnd.pco.b16\":[\"b16\"],\"image/vnd.tencent.tap\":[\"tap\"],\"image/vnd.valve.source.texture\":[\"vtf\"],\"image/vnd.wap.wbmp\":[\"wbmp\"],\"image/vnd.xiff\":[\"xif\"],\"image/vnd.zbrush.pcx\":[\"pcx\"],\"image/x-3ds\":[\"3ds\"],\"image/x-cmu-raster\":[\"ras\"],\"image/x-cmx\":[\"cmx\"],\"image/x-freehand\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"],\"image/x-icon\":[\"*ico\"],\"image/x-jng\":[\"jng\"],\"image/x-mrsid-image\":[\"sid\"],\"image/x-ms-bmp\":[\"*bmp\"],\"image/x-pcx\":[\"*pcx\"],\"image/x-pict\":[\"pic\",\"pct\"],\"image/x-portable-anymap\":[\"pnm\"],\"image/x-portable-bitmap\":[\"pbm\"],\"image/x-portable-graymap\":[\"pgm\"],\"image/x-portable-pixmap\":[\"ppm\"],\"image/x-rgb\":[\"rgb\"],\"image/x-tga\":[\"tga\"],\"image/x-xbitmap\":[\"xbm\"],\"image/x-xpixmap\":[\"xpm\"],\"image/x-xwindowdump\":[\"xwd\"],\"message/vnd.wfa.wsc\":[\"wsc\"],\"model/vnd.collada+xml\":[\"dae\"],\"model/vnd.dwf\":[\"dwf\"],\"model/vnd.gdl\":[\"gdl\"],\"model/vnd.gtw\":[\"gtw\"],\"model/vnd.mts\":[\"mts\"],\"model/vnd.opengex\":[\"ogex\"],\"model/vnd.parasolid.transmit.binary\":[\"x_b\"],\"model/vnd.parasolid.transmit.text\":[\"x_t\"],\"model/vnd.sap.vds\":[\"vds\"],\"model/vnd.usdz+zip\":[\"usdz\"],\"model/vnd.valve.source.compiled-map\":[\"bsp\"],\"model/vnd.vtu\":[\"vtu\"],\"text/prs.lines.tag\":[\"dsc\"],\"text/vnd.curl\":[\"curl\"],\"text/vnd.curl.dcurl\":[\"dcurl\"],\"text/vnd.curl.mcurl\":[\"mcurl\"],\"text/vnd.curl.scurl\":[\"scurl\"],\"text/vnd.dvb.subtitle\":[\"sub\"],\"text/vnd.fly\":[\"fly\"],\"text/vnd.fmi.flexstor\":[\"flx\"],\"text/vnd.graphviz\":[\"gv\"],\"text/vnd.in3d.3dml\":[\"3dml\"],\"text/vnd.in3d.spot\":[\"spot\"],\"text/vnd.sun.j2me.app-descriptor\":[\"jad\"],\"text/vnd.wap.wml\":[\"wml\"],\"text/vnd.wap.wmlscript\":[\"wmls\"],\"text/x-asm\":[\"s\",\"asm\"],\"text/x-c\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"],\"text/x-component\":[\"htc\"],\"text/x-fortran\":[\"f\",\"for\",\"f77\",\"f90\"],\"text/x-handlebars-template\":[\"hbs\"],\"text/x-java-source\":[\"java\"],\"text/x-lua\":[\"lua\"],\"text/x-markdown\":[\"mkd\"],\"text/x-nfo\":[\"nfo\"],\"text/x-opml\":[\"opml\"],\"text/x-org\":[\"*org\"],\"text/x-pascal\":[\"p\",\"pas\"],\"text/x-processing\":[\"pde\"],\"text/x-sass\":[\"sass\"],\"text/x-scss\":[\"scss\"],\"text/x-setext\":[\"etx\"],\"text/x-sfv\":[\"sfv\"],\"text/x-suse-ymp\":[\"ymp\"],\"text/x-uuencode\":[\"uu\"],\"text/x-vcalendar\":[\"vcs\"],\"text/x-vcard\":[\"vcf\"],\"video/vnd.dece.hd\":[\"uvh\",\"uvvh\"],\"video/vnd.dece.mobile\":[\"uvm\",\"uvvm\"],\"video/vnd.dece.pd\":[\"uvp\",\"uvvp\"],\"video/vnd.dece.sd\":[\"uvs\",\"uvvs\"],\"video/vnd.dece.video\":[\"uvv\",\"uvvv\"],\"video/vnd.dvb.file\":[\"dvb\"],\"video/vnd.fvt\":[\"fvt\"],\"video/vnd.mpegurl\":[\"mxu\",\"m4u\"],\"video/vnd.ms-playready.media.pyv\":[\"pyv\"],\"video/vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"video/vnd.vivo\":[\"viv\"],\"video/x-f4v\":[\"f4v\"],\"video/x-fli\":[\"fli\"],\"video/x-flv\":[\"flv\"],\"video/x-m4v\":[\"m4v\"],\"video/x-matroska\":[\"mkv\",\"mk3d\",\"mks\"],\"video/x-mng\":[\"mng\"],\"video/x-ms-asf\":[\"asf\",\"asx\"],\"video/x-ms-vob\":[\"vob\"],\"video/x-ms-wm\":[\"wm\"],\"video/x-ms-wmv\":[\"wmv\"],\"video/x-ms-wmx\":[\"wmx\"],\"video/x-ms-wvx\":[\"wvx\"],\"video/x-msvideo\":[\"avi\"],\"video/x-sgi-movie\":[\"movie\"],\"video/x-smv\":[\"smv\"],\"x-conference/x-cooltalk\":[\"ice\"]};","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/**\n * Advanced Encryption Standard (AES) implementation.\n *\n * This implementation is based on the public domain library 'jscrypto' which\n * was written by:\n *\n * Emily Stark (estark@stanford.edu)\n * Mike Hamburg (mhamburg@stanford.edu)\n * Dan Boneh (dabo@cs.stanford.edu)\n *\n * Parts of this code are based on the OpenSSL implementation of AES:\n * http://www.openssl.org\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./cipher');\nrequire('./cipherModes');\nrequire('./util');\n\n/* AES API */\nmodule.exports = forge.aes = forge.aes || {};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('AES-', key);\n * cipher.start({iv: iv});\n *\n * Creates an AES cipher object to encrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as a string of bytes, an array of bytes,\n * a byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.startEncrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: false,\n mode: mode\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('AES-', key);\n *\n * Creates an AES cipher object to encrypt data using the given symmetric key.\n *\n * The key may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.createEncryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: false,\n mode: mode\n });\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('AES-', key);\n * decipher.start({iv: iv});\n *\n * Creates an AES cipher object to decrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as a string of bytes, an array of bytes,\n * a byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.startDecrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: true,\n mode: mode\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('AES-', key);\n *\n * Creates an AES cipher object to decrypt data using the given symmetric key.\n *\n * The key may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.createDecryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: true,\n mode: mode\n });\n};\n\n/**\n * Creates a new AES cipher algorithm object.\n *\n * @param name the name of the algorithm.\n * @param mode the mode factory function.\n *\n * @return the AES algorithm object.\n */\nforge.aes.Algorithm = function(name, mode) {\n if(!init) {\n initialize();\n }\n var self = this;\n self.name = name;\n self.mode = new mode({\n blockSize: 16,\n cipher: {\n encrypt: function(inBlock, outBlock) {\n return _updateBlock(self._w, inBlock, outBlock, false);\n },\n decrypt: function(inBlock, outBlock) {\n return _updateBlock(self._w, inBlock, outBlock, true);\n }\n }\n });\n self._init = false;\n};\n\n/**\n * Initializes this AES algorithm by expanding its key.\n *\n * @param options the options to use.\n * key the key to use with this algorithm.\n * decrypt true if the algorithm should be initialized for decryption,\n * false for encryption.\n */\nforge.aes.Algorithm.prototype.initialize = function(options) {\n if(this._init) {\n return;\n }\n\n var key = options.key;\n var tmp;\n\n /* Note: The key may be a string of bytes, an array of bytes, a byte\n buffer, or an array of 32-bit integers. If the key is in bytes, then\n it must be 16, 24, or 32 bytes in length. If it is in 32-bit\n integers, it must be 4, 6, or 8 integers long. */\n\n if(typeof key === 'string' &&\n (key.length === 16 || key.length === 24 || key.length === 32)) {\n // convert key string into byte buffer\n key = forge.util.createBuffer(key);\n } else if(forge.util.isArray(key) &&\n (key.length === 16 || key.length === 24 || key.length === 32)) {\n // convert key integer array into byte buffer\n tmp = key;\n key = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n key.putByte(tmp[i]);\n }\n }\n\n // convert key byte buffer into 32-bit integer array\n if(!forge.util.isArray(key)) {\n tmp = key;\n key = [];\n\n // key lengths of 16, 24, 32 bytes allowed\n var len = tmp.length();\n if(len === 16 || len === 24 || len === 32) {\n len = len >>> 2;\n for(var i = 0; i < len; ++i) {\n key.push(tmp.getInt32());\n }\n }\n }\n\n // key must be an array of 32-bit integers by now\n if(!forge.util.isArray(key) ||\n !(key.length === 4 || key.length === 6 || key.length === 8)) {\n throw new Error('Invalid key parameter.');\n }\n\n // encryption operation is always used for these modes\n var mode = this.mode.name;\n var encryptOp = (['CFB', 'OFB', 'CTR', 'GCM'].indexOf(mode) !== -1);\n\n // do key expansion\n this._w = _expandKey(key, options.decrypt && !encryptOp);\n this._init = true;\n};\n\n/**\n * Expands a key. Typically only used for testing.\n *\n * @param key the symmetric key to expand, as an array of 32-bit words.\n * @param decrypt true to expand for decryption, false for encryption.\n *\n * @return the expanded key.\n */\nforge.aes._expandKey = function(key, decrypt) {\n if(!init) {\n initialize();\n }\n return _expandKey(key, decrypt);\n};\n\n/**\n * Updates a single block. Typically only used for testing.\n *\n * @param w the expanded key to use.\n * @param input an array of block-size 32-bit words.\n * @param output an array of block-size 32-bit words.\n * @param decrypt true to decrypt, false to encrypt.\n */\nforge.aes._updateBlock = _updateBlock;\n\n/** Register AES algorithms **/\n\nregisterAlgorithm('AES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('AES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('AES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('AES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('AES-CTR', forge.cipher.modes.ctr);\nregisterAlgorithm('AES-GCM', forge.cipher.modes.gcm);\n\nfunction registerAlgorithm(name, mode) {\n var factory = function() {\n return new forge.aes.Algorithm(name, mode);\n };\n forge.cipher.registerAlgorithm(name, factory);\n}\n\n/** AES implementation **/\n\nvar init = false; // not yet initialized\nvar Nb = 4; // number of words comprising the state (AES = 4)\nvar sbox; // non-linear substitution table used in key expansion\nvar isbox; // inversion of sbox\nvar rcon; // round constant word array\nvar mix; // mix-columns table\nvar imix; // inverse mix-columns table\n\n/**\n * Performs initialization, ie: precomputes tables to optimize for speed.\n *\n * One way to understand how AES works is to imagine that 'addition' and\n * 'multiplication' are interfaces that require certain mathematical\n * properties to hold true (ie: they are associative) but they might have\n * different implementations and produce different kinds of results ...\n * provided that their mathematical properties remain true. AES defines\n * its own methods of addition and multiplication but keeps some important\n * properties the same, ie: associativity and distributivity. The\n * explanation below tries to shed some light on how AES defines addition\n * and multiplication of bytes and 32-bit words in order to perform its\n * encryption and decryption algorithms.\n *\n * The basics:\n *\n * The AES algorithm views bytes as binary representations of polynomials\n * that have either 1 or 0 as the coefficients. It defines the addition\n * or subtraction of two bytes as the XOR operation. It also defines the\n * multiplication of two bytes as a finite field referred to as GF(2^8)\n * (Note: 'GF' means \"Galois Field\" which is a field that contains a finite\n * number of elements so GF(2^8) has 256 elements).\n *\n * This means that any two bytes can be represented as binary polynomials;\n * when they multiplied together and modularly reduced by an irreducible\n * polynomial of the 8th degree, the results are the field GF(2^8). The\n * specific irreducible polynomial that AES uses in hexadecimal is 0x11b.\n * This multiplication is associative with 0x01 as the identity:\n *\n * (b * 0x01 = GF(b, 0x01) = b).\n *\n * The operation GF(b, 0x02) can be performed at the byte level by left\n * shifting b once and then XOR'ing it (to perform the modular reduction)\n * with 0x11b if b is >= 128. Repeated application of the multiplication\n * of 0x02 can be used to implement the multiplication of any two bytes.\n *\n * For instance, multiplying 0x57 and 0x13, denoted as GF(0x57, 0x13), can\n * be performed by factoring 0x13 into 0x01, 0x02, and 0x10. Then these\n * factors can each be multiplied by 0x57 and then added together. To do\n * the multiplication, values for 0x57 multiplied by each of these 3 factors\n * can be precomputed and stored in a table. To add them, the values from\n * the table are XOR'd together.\n *\n * AES also defines addition and multiplication of words, that is 4-byte\n * numbers represented as polynomials of 3 degrees where the coefficients\n * are the values of the bytes.\n *\n * The word [a0, a1, a2, a3] is a polynomial a3x^3 + a2x^2 + a1x + a0.\n *\n * Addition is performed by XOR'ing like powers of x. Multiplication\n * is performed in two steps, the first is an algebriac expansion as\n * you would do normally (where addition is XOR). But the result is\n * a polynomial larger than 3 degrees and thus it cannot fit in a word. So\n * next the result is modularly reduced by an AES-specific polynomial of\n * degree 4 which will always produce a polynomial of less than 4 degrees\n * such that it will fit in a word. In AES, this polynomial is x^4 + 1.\n *\n * The modular product of two polynomials 'a' and 'b' is thus:\n *\n * d(x) = d3x^3 + d2x^2 + d1x + d0\n * with\n * d0 = GF(a0, b0) ^ GF(a3, b1) ^ GF(a2, b2) ^ GF(a1, b3)\n * d1 = GF(a1, b0) ^ GF(a0, b1) ^ GF(a3, b2) ^ GF(a2, b3)\n * d2 = GF(a2, b0) ^ GF(a1, b1) ^ GF(a0, b2) ^ GF(a3, b3)\n * d3 = GF(a3, b0) ^ GF(a2, b1) ^ GF(a1, b2) ^ GF(a0, b3)\n *\n * As a matrix:\n *\n * [d0] = [a0 a3 a2 a1][b0]\n * [d1] [a1 a0 a3 a2][b1]\n * [d2] [a2 a1 a0 a3][b2]\n * [d3] [a3 a2 a1 a0][b3]\n *\n * Special polynomials defined by AES (0x02 == {02}):\n * a(x) = {03}x^3 + {01}x^2 + {01}x + {02}\n * a^-1(x) = {0b}x^3 + {0d}x^2 + {09}x + {0e}.\n *\n * These polynomials are used in the MixColumns() and InverseMixColumns()\n * operations, respectively, to cause each element in the state to affect\n * the output (referred to as diffusing).\n *\n * RotWord() uses: a0 = a1 = a2 = {00} and a3 = {01}, which is the\n * polynomial x3.\n *\n * The ShiftRows() method modifies the last 3 rows in the state (where\n * the state is 4 words with 4 bytes per word) by shifting bytes cyclically.\n * The 1st byte in the second row is moved to the end of the row. The 1st\n * and 2nd bytes in the third row are moved to the end of the row. The 1st,\n * 2nd, and 3rd bytes are moved in the fourth row.\n *\n * More details on how AES arithmetic works:\n *\n * In the polynomial representation of binary numbers, XOR performs addition\n * and subtraction and multiplication in GF(2^8) denoted as GF(a, b)\n * corresponds with the multiplication of polynomials modulo an irreducible\n * polynomial of degree 8. In other words, for AES, GF(a, b) will multiply\n * polynomial 'a' with polynomial 'b' and then do a modular reduction by\n * an AES-specific irreducible polynomial of degree 8.\n *\n * A polynomial is irreducible if its only divisors are one and itself. For\n * the AES algorithm, this irreducible polynomial is:\n *\n * m(x) = x^8 + x^4 + x^3 + x + 1,\n *\n * or {01}{1b} in hexadecimal notation, where each coefficient is a bit:\n * 100011011 = 283 = 0x11b.\n *\n * For example, GF(0x57, 0x83) = 0xc1 because\n *\n * 0x57 = 87 = 01010111 = x^6 + x^4 + x^2 + x + 1\n * 0x85 = 131 = 10000101 = x^7 + x + 1\n *\n * (x^6 + x^4 + x^2 + x + 1) * (x^7 + x + 1)\n * = x^13 + x^11 + x^9 + x^8 + x^7 +\n * x^7 + x^5 + x^3 + x^2 + x +\n * x^6 + x^4 + x^2 + x + 1\n * = x^13 + x^11 + x^9 + x^8 + x^6 + x^5 + x^4 + x^3 + 1 = y\n * y modulo (x^8 + x^4 + x^3 + x + 1)\n * = x^7 + x^6 + 1.\n *\n * The modular reduction by m(x) guarantees the result will be a binary\n * polynomial of less than degree 8, so that it can fit in a byte.\n *\n * The operation to multiply a binary polynomial b with x (the polynomial\n * x in binary representation is 00000010) is:\n *\n * b_7x^8 + b_6x^7 + b_5x^6 + b_4x^5 + b_3x^4 + b_2x^3 + b_1x^2 + b_0x^1\n *\n * To get GF(b, x) we must reduce that by m(x). If b_7 is 0 (that is the\n * most significant bit is 0 in b) then the result is already reduced. If\n * it is 1, then we can reduce it by subtracting m(x) via an XOR.\n *\n * It follows that multiplication by x (00000010 or 0x02) can be implemented\n * by performing a left shift followed by a conditional bitwise XOR with\n * 0x1b. This operation on bytes is denoted by xtime(). Multiplication by\n * higher powers of x can be implemented by repeated application of xtime().\n *\n * By adding intermediate results, multiplication by any constant can be\n * implemented. For instance:\n *\n * GF(0x57, 0x13) = 0xfe because:\n *\n * xtime(b) = (b & 128) ? (b << 1 ^ 0x11b) : (b << 1)\n *\n * Note: We XOR with 0x11b instead of 0x1b because in javascript our\n * datatype for b can be larger than 1 byte, so a left shift will not\n * automatically eliminate bits that overflow a byte ... by XOR'ing the\n * overflow bit with 1 (the extra one from 0x11b) we zero it out.\n *\n * GF(0x57, 0x02) = xtime(0x57) = 0xae\n * GF(0x57, 0x04) = xtime(0xae) = 0x47\n * GF(0x57, 0x08) = xtime(0x47) = 0x8e\n * GF(0x57, 0x10) = xtime(0x8e) = 0x07\n *\n * GF(0x57, 0x13) = GF(0x57, (0x01 ^ 0x02 ^ 0x10))\n *\n * And by the distributive property (since XOR is addition and GF() is\n * multiplication):\n *\n * = GF(0x57, 0x01) ^ GF(0x57, 0x02) ^ GF(0x57, 0x10)\n * = 0x57 ^ 0xae ^ 0x07\n * = 0xfe.\n */\nfunction initialize() {\n init = true;\n\n /* Populate the Rcon table. These are the values given by\n [x^(i-1),{00},{00},{00}] where x^(i-1) are powers of x (and x = 0x02)\n in the field of GF(2^8), where i starts at 1.\n\n rcon[0] = [0x00, 0x00, 0x00, 0x00]\n rcon[1] = [0x01, 0x00, 0x00, 0x00] 2^(1-1) = 2^0 = 1\n rcon[2] = [0x02, 0x00, 0x00, 0x00] 2^(2-1) = 2^1 = 2\n ...\n rcon[9] = [0x1B, 0x00, 0x00, 0x00] 2^(9-1) = 2^8 = 0x1B\n rcon[10] = [0x36, 0x00, 0x00, 0x00] 2^(10-1) = 2^9 = 0x36\n\n We only store the first byte because it is the only one used.\n */\n rcon = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36];\n\n // compute xtime table which maps i onto GF(i, 0x02)\n var xtime = new Array(256);\n for(var i = 0; i < 128; ++i) {\n xtime[i] = i << 1;\n xtime[i + 128] = (i + 128) << 1 ^ 0x11B;\n }\n\n // compute all other tables\n sbox = new Array(256);\n isbox = new Array(256);\n mix = new Array(4);\n imix = new Array(4);\n for(var i = 0; i < 4; ++i) {\n mix[i] = new Array(256);\n imix[i] = new Array(256);\n }\n var e = 0, ei = 0, e2, e4, e8, sx, sx2, me, ime;\n for(var i = 0; i < 256; ++i) {\n /* We need to generate the SubBytes() sbox and isbox tables so that\n we can perform byte substitutions. This requires us to traverse\n all of the elements in GF, find their multiplicative inverses,\n and apply to each the following affine transformation:\n\n bi' = bi ^ b(i + 4) mod 8 ^ b(i + 5) mod 8 ^ b(i + 6) mod 8 ^\n b(i + 7) mod 8 ^ ci\n for 0 <= i < 8, where bi is the ith bit of the byte, and ci is the\n ith bit of a byte c with the value {63} or {01100011}.\n\n It is possible to traverse every possible value in a Galois field\n using what is referred to as a 'generator'. There are many\n generators (128 out of 256): 3,5,6,9,11,82 to name a few. To fully\n traverse GF we iterate 255 times, multiplying by our generator\n each time.\n\n On each iteration we can determine the multiplicative inverse for\n the current element.\n\n Suppose there is an element in GF 'e'. For a given generator 'g',\n e = g^x. The multiplicative inverse of e is g^(255 - x). It turns\n out that if use the inverse of a generator as another generator\n it will produce all of the corresponding multiplicative inverses\n at the same time. For this reason, we choose 5 as our inverse\n generator because it only requires 2 multiplies and 1 add and its\n inverse, 82, requires relatively few operations as well.\n\n In order to apply the affine transformation, the multiplicative\n inverse 'ei' of 'e' can be repeatedly XOR'd (4 times) with a\n bit-cycling of 'ei'. To do this 'ei' is first stored in 's' and\n 'x'. Then 's' is left shifted and the high bit of 's' is made the\n low bit. The resulting value is stored in 's'. Then 'x' is XOR'd\n with 's' and stored in 'x'. On each subsequent iteration the same\n operation is performed. When 4 iterations are complete, 'x' is\n XOR'd with 'c' (0x63) and the transformed value is stored in 'x'.\n For example:\n\n s = 01000001\n x = 01000001\n\n iteration 1: s = 10000010, x ^= s\n iteration 2: s = 00000101, x ^= s\n iteration 3: s = 00001010, x ^= s\n iteration 4: s = 00010100, x ^= s\n x ^= 0x63\n\n This can be done with a loop where s = (s << 1) | (s >> 7). However,\n it can also be done by using a single 16-bit (in this case 32-bit)\n number 'sx'. Since XOR is an associative operation, we can set 'sx'\n to 'ei' and then XOR it with 'sx' left-shifted 1,2,3, and 4 times.\n The most significant bits will flow into the high 8 bit positions\n and be correctly XOR'd with one another. All that remains will be\n to cycle the high 8 bits by XOR'ing them all with the lower 8 bits\n afterwards.\n\n At the same time we're populating sbox and isbox we can precompute\n the multiplication we'll need to do to do MixColumns() later.\n */\n\n // apply affine transformation\n sx = ei ^ (ei << 1) ^ (ei << 2) ^ (ei << 3) ^ (ei << 4);\n sx = (sx >> 8) ^ (sx & 255) ^ 0x63;\n\n // update tables\n sbox[e] = sx;\n isbox[sx] = e;\n\n /* Mixing columns is done using matrix multiplication. The columns\n that are to be mixed are each a single word in the current state.\n The state has Nb columns (4 columns). Therefore each column is a\n 4 byte word. So to mix the columns in a single column 'c' where\n its rows are r0, r1, r2, and r3, we use the following matrix\n multiplication:\n\n [2 3 1 1]*[r0,c]=[r'0,c]\n [1 2 3 1] [r1,c] [r'1,c]\n [1 1 2 3] [r2,c] [r'2,c]\n [3 1 1 2] [r3,c] [r'3,c]\n\n r0, r1, r2, and r3 are each 1 byte of one of the words in the\n state (a column). To do matrix multiplication for each mixed\n column c' we multiply the corresponding row from the left matrix\n with the corresponding column from the right matrix. In total, we\n get 4 equations:\n\n r0,c' = 2*r0,c + 3*r1,c + 1*r2,c + 1*r3,c\n r1,c' = 1*r0,c + 2*r1,c + 3*r2,c + 1*r3,c\n r2,c' = 1*r0,c + 1*r1,c + 2*r2,c + 3*r3,c\n r3,c' = 3*r0,c + 1*r1,c + 1*r2,c + 2*r3,c\n\n As usual, the multiplication is as previously defined and the\n addition is XOR. In order to optimize mixing columns we can store\n the multiplication results in tables. If you think of the whole\n column as a word (it might help to visualize by mentally rotating\n the equations above by counterclockwise 90 degrees) then you can\n see that it would be useful to map the multiplications performed on\n each byte (r0, r1, r2, r3) onto a word as well. For instance, we\n could map 2*r0,1*r0,1*r0,3*r0 onto a word by storing 2*r0 in the\n highest 8 bits and 3*r0 in the lowest 8 bits (with the other two\n respectively in the middle). This means that a table can be\n constructed that uses r0 as an index to the word. We can do the\n same with r1, r2, and r3, creating a total of 4 tables.\n\n To construct a full c', we can just look up each byte of c in\n their respective tables and XOR the results together.\n\n Also, to build each table we only have to calculate the word\n for 2,1,1,3 for every byte ... which we can do on each iteration\n of this loop since we will iterate over every byte. After we have\n calculated 2,1,1,3 we can get the results for the other tables\n by cycling the byte at the end to the beginning. For instance\n we can take the result of table 2,1,1,3 and produce table 3,2,1,1\n by moving the right most byte to the left most position just like\n how you can imagine the 3 moved out of 2,1,1,3 and to the front\n to produce 3,2,1,1.\n\n There is another optimization in that the same multiples of\n the current element we need in order to advance our generator\n to the next iteration can be reused in performing the 2,1,1,3\n calculation. We also calculate the inverse mix column tables,\n with e,9,d,b being the inverse of 2,1,1,3.\n\n When we're done, and we need to actually mix columns, the first\n byte of each state word should be put through mix[0] (2,1,1,3),\n the second through mix[1] (3,2,1,1) and so forth. Then they should\n be XOR'd together to produce the fully mixed column.\n */\n\n // calculate mix and imix table values\n sx2 = xtime[sx];\n e2 = xtime[e];\n e4 = xtime[e2];\n e8 = xtime[e4];\n me =\n (sx2 << 24) ^ // 2\n (sx << 16) ^ // 1\n (sx << 8) ^ // 1\n (sx ^ sx2); // 3\n ime =\n (e2 ^ e4 ^ e8) << 24 ^ // E (14)\n (e ^ e8) << 16 ^ // 9\n (e ^ e4 ^ e8) << 8 ^ // D (13)\n (e ^ e2 ^ e8); // B (11)\n // produce each of the mix tables by rotating the 2,1,1,3 value\n for(var n = 0; n < 4; ++n) {\n mix[n][e] = me;\n imix[n][sx] = ime;\n // cycle the right most byte to the left most position\n // ie: 2,1,1,3 becomes 3,2,1,1\n me = me << 24 | me >>> 8;\n ime = ime << 24 | ime >>> 8;\n }\n\n // get next element and inverse\n if(e === 0) {\n // 1 is the inverse of 1\n e = ei = 1;\n } else {\n // e = 2e + 2*2*2*(10e)) = multiply e by 82 (chosen generator)\n // ei = ei + 2*2*ei = multiply ei by 5 (inverse generator)\n e = e2 ^ xtime[xtime[xtime[e2 ^ e8]]];\n ei ^= xtime[xtime[ei]];\n }\n }\n}\n\n/**\n * Generates a key schedule using the AES key expansion algorithm.\n *\n * The AES algorithm takes the Cipher Key, K, and performs a Key Expansion\n * routine to generate a key schedule. The Key Expansion generates a total\n * of Nb*(Nr + 1) words: the algorithm requires an initial set of Nb words,\n * and each of the Nr rounds requires Nb words of key data. The resulting\n * key schedule consists of a linear array of 4-byte words, denoted [wi ],\n * with i in the range 0 <= i < Nb(Nr + 1).\n *\n * KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)\n * AES-128 (Nb=4, Nk=4, Nr=10)\n * AES-192 (Nb=4, Nk=6, Nr=12)\n * AES-256 (Nb=4, Nk=8, Nr=14)\n * Note: Nr=Nk+6.\n *\n * Nb is the number of columns (32-bit words) comprising the State (or\n * number of bytes in a block). For AES, Nb=4.\n *\n * @param key the key to schedule (as an array of 32-bit words).\n * @param decrypt true to modify the key schedule to decrypt, false not to.\n *\n * @return the generated key schedule.\n */\nfunction _expandKey(key, decrypt) {\n // copy the key's words to initialize the key schedule\n var w = key.slice(0);\n\n /* RotWord() will rotate a word, moving the first byte to the last\n byte's position (shifting the other bytes left).\n\n We will be getting the value of Rcon at i / Nk. 'i' will iterate\n from Nk to (Nb * Nr+1). Nk = 4 (4 byte key), Nb = 4 (4 words in\n a block), Nr = Nk + 6 (10). Therefore 'i' will iterate from\n 4 to 44 (exclusive). Each time we iterate 4 times, i / Nk will\n increase by 1. We use a counter iNk to keep track of this.\n */\n\n // go through the rounds expanding the key\n var temp, iNk = 1;\n var Nk = w.length;\n var Nr1 = Nk + 6 + 1;\n var end = Nb * Nr1;\n for(var i = Nk; i < end; ++i) {\n temp = w[i - 1];\n if(i % Nk === 0) {\n // temp = SubWord(RotWord(temp)) ^ Rcon[i / Nk]\n temp =\n sbox[temp >>> 16 & 255] << 24 ^\n sbox[temp >>> 8 & 255] << 16 ^\n sbox[temp & 255] << 8 ^\n sbox[temp >>> 24] ^ (rcon[iNk] << 24);\n iNk++;\n } else if(Nk > 6 && (i % Nk === 4)) {\n // temp = SubWord(temp)\n temp =\n sbox[temp >>> 24] << 24 ^\n sbox[temp >>> 16 & 255] << 16 ^\n sbox[temp >>> 8 & 255] << 8 ^\n sbox[temp & 255];\n }\n w[i] = w[i - Nk] ^ temp;\n }\n\n /* When we are updating a cipher block we always use the code path for\n encryption whether we are decrypting or not (to shorten code and\n simplify the generation of look up tables). However, because there\n are differences in the decryption algorithm, other than just swapping\n in different look up tables, we must transform our key schedule to\n account for these changes:\n\n 1. The decryption algorithm gets its key rounds in reverse order.\n 2. The decryption algorithm adds the round key before mixing columns\n instead of afterwards.\n\n We don't need to modify our key schedule to handle the first case,\n we can just traverse the key schedule in reverse order when decrypting.\n\n The second case requires a little work.\n\n The tables we built for performing rounds will take an input and then\n perform SubBytes() and MixColumns() or, for the decrypt version,\n InvSubBytes() and InvMixColumns(). But the decrypt algorithm requires\n us to AddRoundKey() before InvMixColumns(). This means we'll need to\n apply some transformations to the round key to inverse-mix its columns\n so they'll be correct for moving AddRoundKey() to after the state has\n had its columns inverse-mixed.\n\n To inverse-mix the columns of the state when we're decrypting we use a\n lookup table that will apply InvSubBytes() and InvMixColumns() at the\n same time. However, the round key's bytes are not inverse-substituted\n in the decryption algorithm. To get around this problem, we can first\n substitute the bytes in the round key so that when we apply the\n transformation via the InvSubBytes()+InvMixColumns() table, it will\n undo our substitution leaving us with the original value that we\n want -- and then inverse-mix that value.\n\n This change will correctly alter our key schedule so that we can XOR\n each round key with our already transformed decryption state. This\n allows us to use the same code path as the encryption algorithm.\n\n We make one more change to the decryption key. Since the decryption\n algorithm runs in reverse from the encryption algorithm, we reverse\n the order of the round keys to avoid having to iterate over the key\n schedule backwards when running the encryption algorithm later in\n decryption mode. In addition to reversing the order of the round keys,\n we also swap each round key's 2nd and 4th rows. See the comments\n section where rounds are performed for more details about why this is\n done. These changes are done inline with the other substitution\n described above.\n */\n if(decrypt) {\n var tmp;\n var m0 = imix[0];\n var m1 = imix[1];\n var m2 = imix[2];\n var m3 = imix[3];\n var wnew = w.slice(0);\n end = w.length;\n for(var i = 0, wi = end - Nb; i < end; i += Nb, wi -= Nb) {\n // do not sub the first or last round key (round keys are Nb\n // words) as no column mixing is performed before they are added,\n // but do change the key order\n if(i === 0 || i === (end - Nb)) {\n wnew[i] = w[wi];\n wnew[i + 1] = w[wi + 3];\n wnew[i + 2] = w[wi + 2];\n wnew[i + 3] = w[wi + 1];\n } else {\n // substitute each round key byte because the inverse-mix\n // table will inverse-substitute it (effectively cancel the\n // substitution because round key bytes aren't sub'd in\n // decryption mode) and swap indexes 3 and 1\n for(var n = 0; n < Nb; ++n) {\n tmp = w[wi + n];\n wnew[i + (3&-n)] =\n m0[sbox[tmp >>> 24]] ^\n m1[sbox[tmp >>> 16 & 255]] ^\n m2[sbox[tmp >>> 8 & 255]] ^\n m3[sbox[tmp & 255]];\n }\n }\n }\n w = wnew;\n }\n\n return w;\n}\n\n/**\n * Updates a single block (16 bytes) using AES. The update will either\n * encrypt or decrypt the block.\n *\n * @param w the key schedule.\n * @param input the input block (an array of 32-bit words).\n * @param output the updated output block.\n * @param decrypt true to decrypt the block, false to encrypt it.\n */\nfunction _updateBlock(w, input, output, decrypt) {\n /*\n Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])\n begin\n byte state[4,Nb]\n state = in\n AddRoundKey(state, w[0, Nb-1])\n for round = 1 step 1 to Nr-1\n SubBytes(state)\n ShiftRows(state)\n MixColumns(state)\n AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])\n end for\n SubBytes(state)\n ShiftRows(state)\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n out = state\n end\n\n InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])\n begin\n byte state[4,Nb]\n state = in\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n for round = Nr-1 step -1 downto 1\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])\n InvMixColumns(state)\n end for\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[0, Nb-1])\n out = state\n end\n */\n\n // Encrypt: AddRoundKey(state, w[0, Nb-1])\n // Decrypt: AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n var Nr = w.length / 4 - 1;\n var m0, m1, m2, m3, sub;\n if(decrypt) {\n m0 = imix[0];\n m1 = imix[1];\n m2 = imix[2];\n m3 = imix[3];\n sub = isbox;\n } else {\n m0 = mix[0];\n m1 = mix[1];\n m2 = mix[2];\n m3 = mix[3];\n sub = sbox;\n }\n var a, b, c, d, a2, b2, c2;\n a = input[0] ^ w[0];\n b = input[decrypt ? 3 : 1] ^ w[1];\n c = input[2] ^ w[2];\n d = input[decrypt ? 1 : 3] ^ w[3];\n var i = 3;\n\n /* In order to share code we follow the encryption algorithm when both\n encrypting and decrypting. To account for the changes required in the\n decryption algorithm, we use different lookup tables when decrypting\n and use a modified key schedule to account for the difference in the\n order of transformations applied when performing rounds. We also get\n key rounds in reverse order (relative to encryption). */\n for(var round = 1; round < Nr; ++round) {\n /* As described above, we'll be using table lookups to perform the\n column mixing. Each column is stored as a word in the state (the\n array 'input' has one column as a word at each index). In order to\n mix a column, we perform these transformations on each row in c,\n which is 1 byte in each word. The new column for c0 is c'0:\n\n m0 m1 m2 m3\n r0,c'0 = 2*r0,c0 + 3*r1,c0 + 1*r2,c0 + 1*r3,c0\n r1,c'0 = 1*r0,c0 + 2*r1,c0 + 3*r2,c0 + 1*r3,c0\n r2,c'0 = 1*r0,c0 + 1*r1,c0 + 2*r2,c0 + 3*r3,c0\n r3,c'0 = 3*r0,c0 + 1*r1,c0 + 1*r2,c0 + 2*r3,c0\n\n So using mix tables where c0 is a word with r0 being its upper\n 8 bits and r3 being its lower 8 bits:\n\n m0[c0 >> 24] will yield this word: [2*r0,1*r0,1*r0,3*r0]\n ...\n m3[c0 & 255] will yield this word: [1*r3,1*r3,3*r3,2*r3]\n\n Therefore to mix the columns in each word in the state we\n do the following (& 255 omitted for brevity):\n c'0,r0 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r1 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r2 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r3 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n\n However, before mixing, the algorithm requires us to perform\n ShiftRows(). The ShiftRows() transformation cyclically shifts the\n last 3 rows of the state over different offsets. The first row\n (r = 0) is not shifted.\n\n s'_r,c = s_r,(c + shift(r, Nb) mod Nb\n for 0 < r < 4 and 0 <= c < Nb and\n shift(1, 4) = 1\n shift(2, 4) = 2\n shift(3, 4) = 3.\n\n This causes the first byte in r = 1 to be moved to the end of\n the row, the first 2 bytes in r = 2 to be moved to the end of\n the row, the first 3 bytes in r = 3 to be moved to the end of\n the row:\n\n r1: [c0 c1 c2 c3] => [c1 c2 c3 c0]\n r2: [c0 c1 c2 c3] [c2 c3 c0 c1]\n r3: [c0 c1 c2 c3] [c3 c0 c1 c2]\n\n We can make these substitutions inline with our column mixing to\n generate an updated set of equations to produce each word in the\n state (note the columns have changed positions):\n\n c0 c1 c2 c3 => c0 c1 c2 c3\n c0 c1 c2 c3 c1 c2 c3 c0 (cycled 1 byte)\n c0 c1 c2 c3 c2 c3 c0 c1 (cycled 2 bytes)\n c0 c1 c2 c3 c3 c0 c1 c2 (cycled 3 bytes)\n\n Therefore:\n\n c'0 = 2*r0,c0 + 3*r1,c1 + 1*r2,c2 + 1*r3,c3\n c'0 = 1*r0,c0 + 2*r1,c1 + 3*r2,c2 + 1*r3,c3\n c'0 = 1*r0,c0 + 1*r1,c1 + 2*r2,c2 + 3*r3,c3\n c'0 = 3*r0,c0 + 1*r1,c1 + 1*r2,c2 + 2*r3,c3\n\n c'1 = 2*r0,c1 + 3*r1,c2 + 1*r2,c3 + 1*r3,c0\n c'1 = 1*r0,c1 + 2*r1,c2 + 3*r2,c3 + 1*r3,c0\n c'1 = 1*r0,c1 + 1*r1,c2 + 2*r2,c3 + 3*r3,c0\n c'1 = 3*r0,c1 + 1*r1,c2 + 1*r2,c3 + 2*r3,c0\n\n ... and so forth for c'2 and c'3. The important distinction is\n that the columns are cycling, with c0 being used with the m0\n map when calculating c0, but c1 being used with the m0 map when\n calculating c1 ... and so forth.\n\n When performing the inverse we transform the mirror image and\n skip the bottom row, instead of the top one, and move upwards:\n\n c3 c2 c1 c0 => c0 c3 c2 c1 (cycled 3 bytes) *same as encryption\n c3 c2 c1 c0 c1 c0 c3 c2 (cycled 2 bytes)\n c3 c2 c1 c0 c2 c1 c0 c3 (cycled 1 byte) *same as encryption\n c3 c2 c1 c0 c3 c2 c1 c0\n\n If you compare the resulting matrices for ShiftRows()+MixColumns()\n and for InvShiftRows()+InvMixColumns() the 2nd and 4th columns are\n different (in encrypt mode vs. decrypt mode). So in order to use\n the same code to handle both encryption and decryption, we will\n need to do some mapping.\n\n If in encryption mode we let a=c0, b=c1, c=c2, d=c3, and r be\n a row number in the state, then the resulting matrix in encryption\n mode for applying the above transformations would be:\n\n r1: a b c d\n r2: b c d a\n r3: c d a b\n r4: d a b c\n\n If we did the same in decryption mode we would get:\n\n r1: a d c b\n r2: b a d c\n r3: c b a d\n r4: d c b a\n\n If instead we swap d and b (set b=c3 and d=c1), then we get:\n\n r1: a b c d\n r2: d a b c\n r3: c d a b\n r4: b c d a\n\n Now the 1st and 3rd rows are the same as the encryption matrix. All\n we need to do then to make the mapping exactly the same is to swap\n the 2nd and 4th rows when in decryption mode. To do this without\n having to do it on each iteration, we swapped the 2nd and 4th rows\n in the decryption key schedule. We also have to do the swap above\n when we first pull in the input and when we set the final output. */\n a2 =\n m0[a >>> 24] ^\n m1[b >>> 16 & 255] ^\n m2[c >>> 8 & 255] ^\n m3[d & 255] ^ w[++i];\n b2 =\n m0[b >>> 24] ^\n m1[c >>> 16 & 255] ^\n m2[d >>> 8 & 255] ^\n m3[a & 255] ^ w[++i];\n c2 =\n m0[c >>> 24] ^\n m1[d >>> 16 & 255] ^\n m2[a >>> 8 & 255] ^\n m3[b & 255] ^ w[++i];\n d =\n m0[d >>> 24] ^\n m1[a >>> 16 & 255] ^\n m2[b >>> 8 & 255] ^\n m3[c & 255] ^ w[++i];\n a = a2;\n b = b2;\n c = c2;\n }\n\n /*\n Encrypt:\n SubBytes(state)\n ShiftRows(state)\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n\n Decrypt:\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[0, Nb-1])\n */\n // Note: rows are shifted inline\n output[0] =\n (sub[a >>> 24] << 24) ^\n (sub[b >>> 16 & 255] << 16) ^\n (sub[c >>> 8 & 255] << 8) ^\n (sub[d & 255]) ^ w[++i];\n output[decrypt ? 3 : 1] =\n (sub[b >>> 24] << 24) ^\n (sub[c >>> 16 & 255] << 16) ^\n (sub[d >>> 8 & 255] << 8) ^\n (sub[a & 255]) ^ w[++i];\n output[2] =\n (sub[c >>> 24] << 24) ^\n (sub[d >>> 16 & 255] << 16) ^\n (sub[a >>> 8 & 255] << 8) ^\n (sub[b & 255]) ^ w[++i];\n output[decrypt ? 1 : 3] =\n (sub[d >>> 24] << 24) ^\n (sub[a >>> 16 & 255] << 16) ^\n (sub[b >>> 8 & 255] << 8) ^\n (sub[c & 255]) ^ w[++i];\n}\n\n/**\n * Deprecated. Instead, use:\n *\n * forge.cipher.createCipher('AES-', key);\n * forge.cipher.createDecipher('AES-', key);\n *\n * Creates a deprecated AES cipher object. This object's mode will default to\n * CBC (cipher-block-chaining).\n *\n * The key and iv may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param options the options to use.\n * key the symmetric key to use.\n * output the buffer to write to.\n * decrypt true for decryption, false for encryption.\n * mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nfunction _createCipher(options) {\n options = options || {};\n var mode = (options.mode || 'CBC').toUpperCase();\n var algorithm = 'AES-' + mode;\n\n var cipher;\n if(options.decrypt) {\n cipher = forge.cipher.createDecipher(algorithm, options.key);\n } else {\n cipher = forge.cipher.createCipher(algorithm, options.key);\n }\n\n // backwards compatible start API\n var start = cipher.start;\n cipher.start = function(iv, options) {\n // backwards compatibility: support second arg as output buffer\n var output = null;\n if(options instanceof forge.util.ByteBuffer) {\n output = options;\n options = {};\n }\n options = options || {};\n options.output = output;\n options.iv = iv;\n start.call(cipher, options);\n };\n\n return cipher;\n}\n","/**\n * A Javascript implementation of AES Cipher Suites for TLS.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2015 Digital Bazaar, Inc.\n *\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./tls');\n\nvar tls = module.exports = forge.tls;\n\n/**\n * Supported cipher suites.\n */\ntls.CipherSuites['TLS_RSA_WITH_AES_128_CBC_SHA'] = {\n id: [0x00, 0x2f],\n name: 'TLS_RSA_WITH_AES_128_CBC_SHA',\n initSecurityParameters: function(sp) {\n sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes;\n sp.cipher_type = tls.CipherType.block;\n sp.enc_key_length = 16;\n sp.block_length = 16;\n sp.fixed_iv_length = 16;\n sp.record_iv_length = 16;\n sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1;\n sp.mac_length = 20;\n sp.mac_key_length = 20;\n },\n initConnectionState: initConnectionState\n};\ntls.CipherSuites['TLS_RSA_WITH_AES_256_CBC_SHA'] = {\n id: [0x00, 0x35],\n name: 'TLS_RSA_WITH_AES_256_CBC_SHA',\n initSecurityParameters: function(sp) {\n sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes;\n sp.cipher_type = tls.CipherType.block;\n sp.enc_key_length = 32;\n sp.block_length = 16;\n sp.fixed_iv_length = 16;\n sp.record_iv_length = 16;\n sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1;\n sp.mac_length = 20;\n sp.mac_key_length = 20;\n },\n initConnectionState: initConnectionState\n};\n\nfunction initConnectionState(state, c, sp) {\n var client = (c.entity === forge.tls.ConnectionEnd.client);\n\n // cipher setup\n state.read.cipherState = {\n init: false,\n cipher: forge.cipher.createDecipher('AES-CBC', client ?\n sp.keys.server_write_key : sp.keys.client_write_key),\n iv: client ? sp.keys.server_write_IV : sp.keys.client_write_IV\n };\n state.write.cipherState = {\n init: false,\n cipher: forge.cipher.createCipher('AES-CBC', client ?\n sp.keys.client_write_key : sp.keys.server_write_key),\n iv: client ? sp.keys.client_write_IV : sp.keys.server_write_IV\n };\n state.read.cipherFunction = decrypt_aes_cbc_sha1;\n state.write.cipherFunction = encrypt_aes_cbc_sha1;\n\n // MAC setup\n state.read.macLength = state.write.macLength = sp.mac_length;\n state.read.macFunction = state.write.macFunction = tls.hmac_sha1;\n}\n\n/**\n * Encrypts the TLSCompressed record into a TLSCipherText record using AES\n * in CBC mode.\n *\n * @param record the TLSCompressed record to encrypt.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nfunction encrypt_aes_cbc_sha1(record, s) {\n var rval = false;\n\n // append MAC to fragment, update sequence number\n var mac = s.macFunction(s.macKey, s.sequenceNumber, record);\n record.fragment.putBytes(mac);\n s.updateSequenceNumber();\n\n // TLS 1.1+ use an explicit IV every time to protect against CBC attacks\n var iv;\n if(record.version.minor === tls.Versions.TLS_1_0.minor) {\n // use the pre-generated IV when initializing for TLS 1.0, otherwise use\n // the residue from the previous encryption\n iv = s.cipherState.init ? null : s.cipherState.iv;\n } else {\n iv = forge.random.getBytesSync(16);\n }\n\n s.cipherState.init = true;\n\n // start cipher\n var cipher = s.cipherState.cipher;\n cipher.start({iv: iv});\n\n // TLS 1.1+ write IV into output\n if(record.version.minor >= tls.Versions.TLS_1_1.minor) {\n cipher.output.putBytes(iv);\n }\n\n // do encryption (default padding is appropriate)\n cipher.update(record.fragment);\n if(cipher.finish(encrypt_aes_cbc_sha1_padding)) {\n // set record fragment to encrypted output\n record.fragment = cipher.output;\n record.length = record.fragment.length();\n rval = true;\n }\n\n return rval;\n}\n\n/**\n * Handles padding for aes_cbc_sha1 in encrypt mode.\n *\n * @param blockSize the block size.\n * @param input the input buffer.\n * @param decrypt true in decrypt mode, false in encrypt mode.\n *\n * @return true on success, false on failure.\n */\nfunction encrypt_aes_cbc_sha1_padding(blockSize, input, decrypt) {\n /* The encrypted data length (TLSCiphertext.length) is one more than the sum\n of SecurityParameters.block_length, TLSCompressed.length,\n SecurityParameters.mac_length, and padding_length.\n\n The padding may be any length up to 255 bytes long, as long as it results in\n the TLSCiphertext.length being an integral multiple of the block length.\n Lengths longer than necessary might be desirable to frustrate attacks on a\n protocol based on analysis of the lengths of exchanged messages. Each uint8\n in the padding data vector must be filled with the padding length value.\n\n The padding length should be such that the total size of the\n GenericBlockCipher structure is a multiple of the cipher's block length.\n Legal values range from zero to 255, inclusive. This length specifies the\n length of the padding field exclusive of the padding_length field itself.\n\n This is slightly different from PKCS#7 because the padding value is 1\n less than the actual number of padding bytes if you include the\n padding_length uint8 itself as a padding byte. */\n if(!decrypt) {\n // get the number of padding bytes required to reach the blockSize and\n // subtract 1 for the padding value (to make room for the padding_length\n // uint8)\n var padding = blockSize - (input.length() % blockSize);\n input.fillWithByte(padding - 1, padding);\n }\n return true;\n}\n\n/**\n * Handles padding for aes_cbc_sha1 in decrypt mode.\n *\n * @param blockSize the block size.\n * @param output the output buffer.\n * @param decrypt true in decrypt mode, false in encrypt mode.\n *\n * @return true on success, false on failure.\n */\nfunction decrypt_aes_cbc_sha1_padding(blockSize, output, decrypt) {\n var rval = true;\n if(decrypt) {\n /* The last byte in the output specifies the number of padding bytes not\n including itself. Each of the padding bytes has the same value as that\n last byte (known as the padding_length). Here we check all padding\n bytes to ensure they have the value of padding_length even if one of\n them is bad in order to ward-off timing attacks. */\n var len = output.length();\n var paddingLength = output.last();\n for(var i = len - 1 - paddingLength; i < len - 1; ++i) {\n rval = rval && (output.at(i) == paddingLength);\n }\n if(rval) {\n // trim off padding bytes and last padding length byte\n output.truncate(paddingLength + 1);\n }\n }\n return rval;\n}\n\n/**\n * Decrypts a TLSCipherText record into a TLSCompressed record using\n * AES in CBC mode.\n *\n * @param record the TLSCipherText record to decrypt.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nfunction decrypt_aes_cbc_sha1(record, s) {\n var rval = false;\n\n var iv;\n if(record.version.minor === tls.Versions.TLS_1_0.minor) {\n // use pre-generated IV when initializing for TLS 1.0, otherwise use the\n // residue from the previous decryption\n iv = s.cipherState.init ? null : s.cipherState.iv;\n } else {\n // TLS 1.1+ use an explicit IV every time to protect against CBC attacks\n // that is appended to the record fragment\n iv = record.fragment.getBytes(16);\n }\n\n s.cipherState.init = true;\n\n // start cipher\n var cipher = s.cipherState.cipher;\n cipher.start({iv: iv});\n\n // do decryption\n cipher.update(record.fragment);\n rval = cipher.finish(decrypt_aes_cbc_sha1_padding);\n\n // even if decryption fails, keep going to minimize timing attacks\n\n // decrypted data:\n // first (len - 20) bytes = application data\n // last 20 bytes = MAC\n var macLen = s.macLength;\n\n // create a random MAC to check against should the mac length check fail\n // Note: do this regardless of the failure to keep timing consistent\n var mac = forge.random.getBytesSync(macLen);\n\n // get fragment and mac\n var len = cipher.output.length();\n if(len >= macLen) {\n record.fragment = cipher.output.getBytes(len - macLen);\n mac = cipher.output.getBytes(macLen);\n } else {\n // bad data, but get bytes anyway to try to keep timing consistent\n record.fragment = cipher.output.getBytes();\n }\n record.fragment = forge.util.createBuffer(record.fragment);\n record.length = record.fragment.length();\n\n // see if data integrity checks out, update sequence number\n var mac2 = s.macFunction(s.macKey, s.sequenceNumber, record);\n s.updateSequenceNumber();\n rval = compareMacs(s.macKey, mac, mac2) && rval;\n return rval;\n}\n\n/**\n * Safely compare two MACs. This function will compare two MACs in a way\n * that protects against timing attacks.\n *\n * TODO: Expose elsewhere as a utility API.\n *\n * See: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n *\n * @param key the MAC key to use.\n * @param mac1 as a binary-encoded string of bytes.\n * @param mac2 as a binary-encoded string of bytes.\n *\n * @return true if the MACs are the same, false if not.\n */\nfunction compareMacs(key, mac1, mac2) {\n var hmac = forge.hmac.create();\n\n hmac.start('SHA1', key);\n hmac.update(mac1);\n mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(mac2);\n mac2 = hmac.digest().getBytes();\n\n return mac1 === mac2;\n}\n","/**\n * Copyright (c) 2019 Digital Bazaar, Inc.\n */\n\nvar forge = require('./forge');\nrequire('./asn1');\nvar asn1 = forge.asn1;\n\nexports.privateKeyValidator = {\n // PrivateKeyInfo\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'PrivateKeyInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // privateKeyAlgorithm\n name: 'PrivateKeyInfo.privateKeyAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'privateKeyOid'\n }]\n }, {\n // PrivateKey\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'privateKey'\n }]\n};\n\nexports.publicKeyValidator = {\n name: 'SubjectPublicKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'subjectPublicKeyInfo',\n value: [{\n name: 'SubjectPublicKeyInfo.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'publicKeyOid'\n }]\n },\n // capture group for ed25519PublicKey\n {\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n composed: true,\n captureBitStringValue: 'ed25519PublicKey'\n }\n // FIXME: this is capture group for rsaPublicKey, use it in this API or\n // discard?\n /* {\n // subjectPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n value: [{\n // RSAPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'rsaPublicKey'\n }]\n } */\n ]\n};\n","/**\n * Javascript implementation of Abstract Syntax Notation Number One.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n *\n * An API for storing data using the Abstract Syntax Notation Number One\n * format using DER (Distinguished Encoding Rules) encoding. This encoding is\n * commonly used to store data for PKI, i.e. X.509 Certificates, and this\n * implementation exists for that purpose.\n *\n * Abstract Syntax Notation Number One (ASN.1) is used to define the abstract\n * syntax of information without restricting the way the information is encoded\n * for transmission. It provides a standard that allows for open systems\n * communication. ASN.1 defines the syntax of information data and a number of\n * simple data types as well as a notation for describing them and specifying\n * values for them.\n *\n * The RSA algorithm creates public and private keys that are often stored in\n * X.509 or PKCS#X formats -- which use ASN.1 (encoded in DER format). This\n * class provides the most basic functionality required to store and load DSA\n * keys that are encoded according to ASN.1.\n *\n * The most common binary encodings for ASN.1 are BER (Basic Encoding Rules)\n * and DER (Distinguished Encoding Rules). DER is just a subset of BER that\n * has stricter requirements for how data must be encoded.\n *\n * Each ASN.1 structure has a tag (a byte identifying the ASN.1 structure type)\n * and a byte array for the value of this ASN1 structure which may be data or a\n * list of ASN.1 structures.\n *\n * Each ASN.1 structure using BER is (Tag-Length-Value):\n *\n * | byte 0 | bytes X | bytes Y |\n * |--------|---------|----------\n * | tag | length | value |\n *\n * ASN.1 allows for tags to be of \"High-tag-number form\" which allows a tag to\n * be two or more octets, but that is not supported by this class. A tag is\n * only 1 byte. Bits 1-5 give the tag number (ie the data type within a\n * particular 'class'), 6 indicates whether or not the ASN.1 value is\n * constructed from other ASN.1 values, and bits 7 and 8 give the 'class'. If\n * bits 7 and 8 are both zero, the class is UNIVERSAL. If only bit 7 is set,\n * then the class is APPLICATION. If only bit 8 is set, then the class is\n * CONTEXT_SPECIFIC. If both bits 7 and 8 are set, then the class is PRIVATE.\n * The tag numbers for the data types for the class UNIVERSAL are listed below:\n *\n * UNIVERSAL 0 Reserved for use by the encoding rules\n * UNIVERSAL 1 Boolean type\n * UNIVERSAL 2 Integer type\n * UNIVERSAL 3 Bitstring type\n * UNIVERSAL 4 Octetstring type\n * UNIVERSAL 5 Null type\n * UNIVERSAL 6 Object identifier type\n * UNIVERSAL 7 Object descriptor type\n * UNIVERSAL 8 External type and Instance-of type\n * UNIVERSAL 9 Real type\n * UNIVERSAL 10 Enumerated type\n * UNIVERSAL 11 Embedded-pdv type\n * UNIVERSAL 12 UTF8String type\n * UNIVERSAL 13 Relative object identifier type\n * UNIVERSAL 14-15 Reserved for future editions\n * UNIVERSAL 16 Sequence and Sequence-of types\n * UNIVERSAL 17 Set and Set-of types\n * UNIVERSAL 18-22, 25-30 Character string types\n * UNIVERSAL 23-24 Time types\n *\n * The length of an ASN.1 structure is specified after the tag identifier.\n * There is a definite form and an indefinite form. The indefinite form may\n * be used if the encoding is constructed and not all immediately available.\n * The indefinite form is encoded using a length byte with only the 8th bit\n * set. The end of the constructed object is marked using end-of-contents\n * octets (two zero bytes).\n *\n * The definite form looks like this:\n *\n * The length may take up 1 or more bytes, it depends on the length of the\n * value of the ASN.1 structure. DER encoding requires that if the ASN.1\n * structure has a value that has a length greater than 127, more than 1 byte\n * will be used to store its length, otherwise just one byte will be used.\n * This is strict.\n *\n * In the case that the length of the ASN.1 value is less than 127, 1 octet\n * (byte) is used to store the \"short form\" length. The 8th bit has a value of\n * 0 indicating the length is \"short form\" and not \"long form\" and bits 7-1\n * give the length of the data. (The 8th bit is the left-most, most significant\n * bit: also known as big endian or network format).\n *\n * In the case that the length of the ASN.1 value is greater than 127, 2 to\n * 127 octets (bytes) are used to store the \"long form\" length. The first\n * byte's 8th bit is set to 1 to indicate the length is \"long form.\" Bits 7-1\n * give the number of additional octets. All following octets are in base 256\n * with the most significant digit first (typical big-endian binary unsigned\n * integer storage). So, for instance, if the length of a value was 257, the\n * first byte would be set to:\n *\n * 10000010 = 130 = 0x82.\n *\n * This indicates there are 2 octets (base 256) for the length. The second and\n * third bytes (the octets just mentioned) would store the length in base 256:\n *\n * octet 2: 00000001 = 1 * 256^1 = 256\n * octet 3: 00000001 = 1 * 256^0 = 1\n * total = 257\n *\n * The algorithm for converting a js integer value of 257 to base-256 is:\n *\n * var value = 257;\n * var bytes = [];\n * bytes[0] = (value >>> 8) & 0xFF; // most significant byte first\n * bytes[1] = value & 0xFF; // least significant byte last\n *\n * On the ASN.1 UNIVERSAL Object Identifier (OID) type:\n *\n * An OID can be written like: \"value1.value2.value3...valueN\"\n *\n * The DER encoding rules:\n *\n * The first byte has the value 40 * value1 + value2.\n * The following bytes, if any, encode the remaining values. Each value is\n * encoded in base 128, most significant digit first (big endian), with as\n * few digits as possible, and the most significant bit of each byte set\n * to 1 except the last in each value's encoding. For example: Given the\n * OID \"1.2.840.113549\", its DER encoding is (remember each byte except the\n * last one in each encoding is OR'd with 0x80):\n *\n * byte 1: 40 * 1 + 2 = 42 = 0x2A.\n * bytes 2-3: 128 * 6 + 72 = 840 = 6 72 = 6 72 = 0x0648 = 0x8648\n * bytes 4-6: 16384 * 6 + 128 * 119 + 13 = 6 119 13 = 0x06770D = 0x86F70D\n *\n * The final value is: 0x2A864886F70D.\n * The full OID (including ASN.1 tag and length of 6 bytes) is:\n * 0x06062A864886F70D\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./oids');\n\n/* ASN.1 API */\nvar asn1 = module.exports = forge.asn1 = forge.asn1 || {};\n\n/**\n * ASN.1 classes.\n */\nasn1.Class = {\n UNIVERSAL: 0x00,\n APPLICATION: 0x40,\n CONTEXT_SPECIFIC: 0x80,\n PRIVATE: 0xC0\n};\n\n/**\n * ASN.1 types. Not all types are supported by this implementation, only\n * those necessary to implement a simple PKI are implemented.\n */\nasn1.Type = {\n NONE: 0,\n BOOLEAN: 1,\n INTEGER: 2,\n BITSTRING: 3,\n OCTETSTRING: 4,\n NULL: 5,\n OID: 6,\n ODESC: 7,\n EXTERNAL: 8,\n REAL: 9,\n ENUMERATED: 10,\n EMBEDDED: 11,\n UTF8: 12,\n ROID: 13,\n SEQUENCE: 16,\n SET: 17,\n PRINTABLESTRING: 19,\n IA5STRING: 22,\n UTCTIME: 23,\n GENERALIZEDTIME: 24,\n BMPSTRING: 30\n};\n\n/**\n * Creates a new asn1 object.\n *\n * @param tagClass the tag class for the object.\n * @param type the data type (tag number) for the object.\n * @param constructed true if the asn1 object is in constructed form.\n * @param value the value for the object, if it is not constructed.\n * @param [options] the options to use:\n * [bitStringContents] the plain BIT STRING content including padding\n * byte.\n *\n * @return the asn1 object.\n */\nasn1.create = function(tagClass, type, constructed, value, options) {\n /* An asn1 object has a tagClass, a type, a constructed flag, and a\n value. The value's type depends on the constructed flag. If\n constructed, it will contain a list of other asn1 objects. If not,\n it will contain the ASN.1 value as an array of bytes formatted\n according to the ASN.1 data type. */\n\n // remove undefined values\n if(forge.util.isArray(value)) {\n var tmp = [];\n for(var i = 0; i < value.length; ++i) {\n if(value[i] !== undefined) {\n tmp.push(value[i]);\n }\n }\n value = tmp;\n }\n\n var obj = {\n tagClass: tagClass,\n type: type,\n constructed: constructed,\n composed: constructed || forge.util.isArray(value),\n value: value\n };\n if(options && 'bitStringContents' in options) {\n // TODO: copy byte buffer if it's a buffer not a string\n obj.bitStringContents = options.bitStringContents;\n // TODO: add readonly flag to avoid this overhead\n // save copy to detect changes\n obj.original = asn1.copy(obj);\n }\n return obj;\n};\n\n/**\n * Copies an asn1 object.\n *\n * @param obj the asn1 object.\n * @param [options] copy options:\n * [excludeBitStringContents] true to not copy bitStringContents\n *\n * @return the a copy of the asn1 object.\n */\nasn1.copy = function(obj, options) {\n var copy;\n\n if(forge.util.isArray(obj)) {\n copy = [];\n for(var i = 0; i < obj.length; ++i) {\n copy.push(asn1.copy(obj[i], options));\n }\n return copy;\n }\n\n if(typeof obj === 'string') {\n // TODO: copy byte buffer if it's a buffer not a string\n return obj;\n }\n\n copy = {\n tagClass: obj.tagClass,\n type: obj.type,\n constructed: obj.constructed,\n composed: obj.composed,\n value: asn1.copy(obj.value, options)\n };\n if(options && !options.excludeBitStringContents) {\n // TODO: copy byte buffer if it's a buffer not a string\n copy.bitStringContents = obj.bitStringContents;\n }\n return copy;\n};\n\n/**\n * Compares asn1 objects for equality.\n *\n * Note this function does not run in constant time.\n *\n * @param obj1 the first asn1 object.\n * @param obj2 the second asn1 object.\n * @param [options] compare options:\n * [includeBitStringContents] true to compare bitStringContents\n *\n * @return true if the asn1 objects are equal.\n */\nasn1.equals = function(obj1, obj2, options) {\n if(forge.util.isArray(obj1)) {\n if(!forge.util.isArray(obj2)) {\n return false;\n }\n if(obj1.length !== obj2.length) {\n return false;\n }\n for(var i = 0; i < obj1.length; ++i) {\n if(!asn1.equals(obj1[i], obj2[i])) {\n return false;\n }\n }\n return true;\n }\n\n if(typeof obj1 !== typeof obj2) {\n return false;\n }\n\n if(typeof obj1 === 'string') {\n return obj1 === obj2;\n }\n\n var equal = obj1.tagClass === obj2.tagClass &&\n obj1.type === obj2.type &&\n obj1.constructed === obj2.constructed &&\n obj1.composed === obj2.composed &&\n asn1.equals(obj1.value, obj2.value);\n if(options && options.includeBitStringContents) {\n equal = equal && (obj1.bitStringContents === obj2.bitStringContents);\n }\n\n return equal;\n};\n\n/**\n * Gets the length of a BER-encoded ASN.1 value.\n *\n * In case the length is not specified, undefined is returned.\n *\n * @param b the BER-encoded ASN.1 byte buffer, starting with the first\n * length byte.\n *\n * @return the length of the BER-encoded ASN.1 value or undefined.\n */\nasn1.getBerValueLength = function(b) {\n // TODO: move this function and related DER/BER functions to a der.js\n // file; better abstract ASN.1 away from der/ber.\n var b2 = b.getByte();\n if(b2 === 0x80) {\n return undefined;\n }\n\n // see if the length is \"short form\" or \"long form\" (bit 8 set)\n var length;\n var longForm = b2 & 0x80;\n if(!longForm) {\n // length is just the first byte\n length = b2;\n } else {\n // the number of bytes the length is specified in bits 7 through 1\n // and each length byte is in big-endian base-256\n length = b.getInt((b2 & 0x7F) << 3);\n }\n return length;\n};\n\n/**\n * Check if the byte buffer has enough bytes. Throws an Error if not.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the bytes remaining in the current parsing state.\n * @param n the number of bytes the buffer must have.\n */\nfunction _checkBufferLength(bytes, remaining, n) {\n if(n > remaining) {\n var error = new Error('Too few bytes to parse DER.');\n error.available = bytes.length();\n error.remaining = remaining;\n error.requested = n;\n throw error;\n }\n}\n\n/**\n * Gets the length of a BER-encoded ASN.1 value.\n *\n * In case the length is not specified, undefined is returned.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the bytes remaining in the current parsing state.\n *\n * @return the length of the BER-encoded ASN.1 value or undefined.\n */\nvar _getValueLength = function(bytes, remaining) {\n // TODO: move this function and related DER/BER functions to a der.js\n // file; better abstract ASN.1 away from der/ber.\n // fromDer already checked that this byte exists\n var b2 = bytes.getByte();\n remaining--;\n if(b2 === 0x80) {\n return undefined;\n }\n\n // see if the length is \"short form\" or \"long form\" (bit 8 set)\n var length;\n var longForm = b2 & 0x80;\n if(!longForm) {\n // length is just the first byte\n length = b2;\n } else {\n // the number of bytes the length is specified in bits 7 through 1\n // and each length byte is in big-endian base-256\n var longFormBytes = b2 & 0x7F;\n _checkBufferLength(bytes, remaining, longFormBytes);\n length = bytes.getInt(longFormBytes << 3);\n }\n // FIXME: this will only happen for 32 bit getInt with high bit set\n if(length < 0) {\n throw new Error('Negative length: ' + length);\n }\n return length;\n};\n\n/**\n * Parses an asn1 object from a byte buffer in DER format.\n *\n * @param bytes the byte buffer to parse from.\n * @param [strict] true to be strict when checking value lengths, false to\n * allow truncated values (default: true).\n * @param [options] object with options or boolean strict flag\n * [strict] true to be strict when checking value lengths, false to\n * allow truncated values (default: true).\n * [parseAllBytes] true to ensure all bytes are parsed\n * (default: true)\n * [decodeBitStrings] true to attempt to decode the content of\n * BIT STRINGs (not OCTET STRINGs) using strict mode. Note that\n * without schema support to understand the data context this can\n * erroneously decode values that happen to be valid ASN.1. This\n * flag will be deprecated or removed as soon as schema support is\n * available. (default: true)\n *\n * @throws Will throw an error for various malformed input conditions.\n *\n * @return the parsed asn1 object.\n */\nasn1.fromDer = function(bytes, options) {\n if(options === undefined) {\n options = {\n strict: true,\n parseAllBytes: true,\n decodeBitStrings: true\n };\n }\n if(typeof options === 'boolean') {\n options = {\n strict: options,\n parseAllBytes: true,\n decodeBitStrings: true\n };\n }\n if(!('strict' in options)) {\n options.strict = true;\n }\n if(!('parseAllBytes' in options)) {\n options.parseAllBytes = true;\n }\n if(!('decodeBitStrings' in options)) {\n options.decodeBitStrings = true;\n }\n\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n var byteCount = bytes.length();\n var value = _fromDer(bytes, bytes.length(), 0, options);\n if(options.parseAllBytes && bytes.length() !== 0) {\n var error = new Error('Unparsed DER bytes remain after ASN.1 parsing.');\n error.byteCount = byteCount;\n error.remaining = bytes.length();\n throw error;\n }\n return value;\n};\n\n/**\n * Internal function to parse an asn1 object from a byte buffer in DER format.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the number of bytes remaining for this chunk.\n * @param depth the current parsing depth.\n * @param options object with same options as fromDer().\n *\n * @return the parsed asn1 object.\n */\nfunction _fromDer(bytes, remaining, depth, options) {\n // temporary storage for consumption calculations\n var start;\n\n // minimum length for ASN.1 DER structure is 2\n _checkBufferLength(bytes, remaining, 2);\n\n // get the first byte\n var b1 = bytes.getByte();\n // consumed one byte\n remaining--;\n\n // get the tag class\n var tagClass = (b1 & 0xC0);\n\n // get the type (bits 1-5)\n var type = b1 & 0x1F;\n\n // get the variable value length and adjust remaining bytes\n start = bytes.length();\n var length = _getValueLength(bytes, remaining);\n remaining -= start - bytes.length();\n\n // ensure there are enough bytes to get the value\n if(length !== undefined && length > remaining) {\n if(options.strict) {\n var error = new Error('Too few bytes to read ASN.1 value.');\n error.available = bytes.length();\n error.remaining = remaining;\n error.requested = length;\n throw error;\n }\n // Note: be lenient with truncated values and use remaining state bytes\n length = remaining;\n }\n\n // value storage\n var value;\n // possible BIT STRING contents storage\n var bitStringContents;\n\n // constructed flag is bit 6 (32 = 0x20) of the first byte\n var constructed = ((b1 & 0x20) === 0x20);\n if(constructed) {\n // parse child asn1 objects from the value\n value = [];\n if(length === undefined) {\n // asn1 object of indefinite length, read until end tag\n for(;;) {\n _checkBufferLength(bytes, remaining, 2);\n if(bytes.bytes(2) === String.fromCharCode(0, 0)) {\n bytes.getBytes(2);\n remaining -= 2;\n break;\n }\n start = bytes.length();\n value.push(_fromDer(bytes, remaining, depth + 1, options));\n remaining -= start - bytes.length();\n }\n } else {\n // parsing asn1 object of definite length\n while(length > 0) {\n start = bytes.length();\n value.push(_fromDer(bytes, length, depth + 1, options));\n remaining -= start - bytes.length();\n length -= start - bytes.length();\n }\n }\n }\n\n // if a BIT STRING, save the contents including padding\n if(value === undefined && tagClass === asn1.Class.UNIVERSAL &&\n type === asn1.Type.BITSTRING) {\n bitStringContents = bytes.bytes(length);\n }\n\n // determine if a non-constructed value should be decoded as a composed\n // value that contains other ASN.1 objects. BIT STRINGs (and OCTET STRINGs)\n // can be used this way.\n if(value === undefined && options.decodeBitStrings &&\n tagClass === asn1.Class.UNIVERSAL &&\n // FIXME: OCTET STRINGs not yet supported here\n // .. other parts of forge expect to decode OCTET STRINGs manually\n (type === asn1.Type.BITSTRING /*|| type === asn1.Type.OCTETSTRING*/) &&\n length > 1) {\n // save read position\n var savedRead = bytes.read;\n var savedRemaining = remaining;\n var unused = 0;\n if(type === asn1.Type.BITSTRING) {\n /* The first octet gives the number of bits by which the length of the\n bit string is less than the next multiple of eight (this is called\n the \"number of unused bits\").\n\n The second and following octets give the value of the bit string\n converted to an octet string. */\n _checkBufferLength(bytes, remaining, 1);\n unused = bytes.getByte();\n remaining--;\n }\n // if all bits are used, maybe the BIT/OCTET STRING holds ASN.1 objs\n if(unused === 0) {\n try {\n // attempt to parse child asn1 object from the value\n // (stored in array to signal composed value)\n start = bytes.length();\n var subOptions = {\n // enforce strict mode to avoid parsing ASN.1 from plain data\n strict: true,\n decodeBitStrings: true\n };\n var composed = _fromDer(bytes, remaining, depth + 1, subOptions);\n var used = start - bytes.length();\n remaining -= used;\n if(type == asn1.Type.BITSTRING) {\n used++;\n }\n\n // if the data all decoded and the class indicates UNIVERSAL or\n // CONTEXT_SPECIFIC then assume we've got an encapsulated ASN.1 object\n var tc = composed.tagClass;\n if(used === length &&\n (tc === asn1.Class.UNIVERSAL || tc === asn1.Class.CONTEXT_SPECIFIC)) {\n value = [composed];\n }\n } catch(ex) {\n }\n }\n if(value === undefined) {\n // restore read position\n bytes.read = savedRead;\n remaining = savedRemaining;\n }\n }\n\n if(value === undefined) {\n // asn1 not constructed or composed, get raw value\n // TODO: do DER to OID conversion and vice-versa in .toDer?\n\n if(length === undefined) {\n if(options.strict) {\n throw new Error('Non-constructed ASN.1 object of indefinite length.');\n }\n // be lenient and use remaining state bytes\n length = remaining;\n }\n\n if(type === asn1.Type.BMPSTRING) {\n value = '';\n for(; length > 0; length -= 2) {\n _checkBufferLength(bytes, remaining, 2);\n value += String.fromCharCode(bytes.getInt16());\n remaining -= 2;\n }\n } else {\n value = bytes.getBytes(length);\n remaining -= length;\n }\n }\n\n // add BIT STRING contents if available\n var asn1Options = bitStringContents === undefined ? null : {\n bitStringContents: bitStringContents\n };\n\n // create and return asn1 object\n return asn1.create(tagClass, type, constructed, value, asn1Options);\n}\n\n/**\n * Converts the given asn1 object to a buffer of bytes in DER format.\n *\n * @param asn1 the asn1 object to convert to bytes.\n *\n * @return the buffer of bytes.\n */\nasn1.toDer = function(obj) {\n var bytes = forge.util.createBuffer();\n\n // build the first byte\n var b1 = obj.tagClass | obj.type;\n\n // for storing the ASN.1 value\n var value = forge.util.createBuffer();\n\n // use BIT STRING contents if available and data not changed\n var useBitStringContents = false;\n if('bitStringContents' in obj) {\n useBitStringContents = true;\n if(obj.original) {\n useBitStringContents = asn1.equals(obj, obj.original);\n }\n }\n\n if(useBitStringContents) {\n value.putBytes(obj.bitStringContents);\n } else if(obj.composed) {\n // if composed, use each child asn1 object's DER bytes as value\n // turn on 6th bit (0x20 = 32) to indicate asn1 is constructed\n // from other asn1 objects\n if(obj.constructed) {\n b1 |= 0x20;\n } else {\n // type is a bit string, add unused bits of 0x00\n value.putByte(0x00);\n }\n\n // add all of the child DER bytes together\n for(var i = 0; i < obj.value.length; ++i) {\n if(obj.value[i] !== undefined) {\n value.putBuffer(asn1.toDer(obj.value[i]));\n }\n }\n } else {\n // use asn1.value directly\n if(obj.type === asn1.Type.BMPSTRING) {\n for(var i = 0; i < obj.value.length; ++i) {\n value.putInt16(obj.value.charCodeAt(i));\n }\n } else {\n // ensure integer is minimally-encoded\n // TODO: should all leading bytes be stripped vs just one?\n // .. ex '00 00 01' => '01'?\n if(obj.type === asn1.Type.INTEGER &&\n obj.value.length > 1 &&\n // leading 0x00 for positive integer\n ((obj.value.charCodeAt(0) === 0 &&\n (obj.value.charCodeAt(1) & 0x80) === 0) ||\n // leading 0xFF for negative integer\n (obj.value.charCodeAt(0) === 0xFF &&\n (obj.value.charCodeAt(1) & 0x80) === 0x80))) {\n value.putBytes(obj.value.substr(1));\n } else {\n value.putBytes(obj.value);\n }\n }\n }\n\n // add tag byte\n bytes.putByte(b1);\n\n // use \"short form\" encoding\n if(value.length() <= 127) {\n // one byte describes the length\n // bit 8 = 0 and bits 7-1 = length\n bytes.putByte(value.length() & 0x7F);\n } else {\n // use \"long form\" encoding\n // 2 to 127 bytes describe the length\n // first byte: bit 8 = 1 and bits 7-1 = # of additional bytes\n // other bytes: length in base 256, big-endian\n var len = value.length();\n var lenBytes = '';\n do {\n lenBytes += String.fromCharCode(len & 0xFF);\n len = len >>> 8;\n } while(len > 0);\n\n // set first byte to # bytes used to store the length and turn on\n // bit 8 to indicate long-form length is used\n bytes.putByte(lenBytes.length | 0x80);\n\n // concatenate length bytes in reverse since they were generated\n // little endian and we need big endian\n for(var i = lenBytes.length - 1; i >= 0; --i) {\n bytes.putByte(lenBytes.charCodeAt(i));\n }\n }\n\n // concatenate value bytes\n bytes.putBuffer(value);\n return bytes;\n};\n\n/**\n * Converts an OID dot-separated string to a byte buffer. The byte buffer\n * contains only the DER-encoded value, not any tag or length bytes.\n *\n * @param oid the OID dot-separated string.\n *\n * @return the byte buffer.\n */\nasn1.oidToDer = function(oid) {\n // split OID into individual values\n var values = oid.split('.');\n var bytes = forge.util.createBuffer();\n\n // first byte is 40 * value1 + value2\n bytes.putByte(40 * parseInt(values[0], 10) + parseInt(values[1], 10));\n // other bytes are each value in base 128 with 8th bit set except for\n // the last byte for each value\n var last, valueBytes, value, b;\n for(var i = 2; i < values.length; ++i) {\n // produce value bytes in reverse because we don't know how many\n // bytes it will take to store the value\n last = true;\n valueBytes = [];\n value = parseInt(values[i], 10);\n do {\n b = value & 0x7F;\n value = value >>> 7;\n // if value is not last, then turn on 8th bit\n if(!last) {\n b |= 0x80;\n }\n valueBytes.push(b);\n last = false;\n } while(value > 0);\n\n // add value bytes in reverse (needs to be in big endian)\n for(var n = valueBytes.length - 1; n >= 0; --n) {\n bytes.putByte(valueBytes[n]);\n }\n }\n\n return bytes;\n};\n\n/**\n * Converts a DER-encoded byte buffer to an OID dot-separated string. The\n * byte buffer should contain only the DER-encoded value, not any tag or\n * length bytes.\n *\n * @param bytes the byte buffer.\n *\n * @return the OID dot-separated string.\n */\nasn1.derToOid = function(bytes) {\n var oid;\n\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n // first byte is 40 * value1 + value2\n var b = bytes.getByte();\n oid = Math.floor(b / 40) + '.' + (b % 40);\n\n // other bytes are each value in base 128 with 8th bit set except for\n // the last byte for each value\n var value = 0;\n while(bytes.length() > 0) {\n b = bytes.getByte();\n value = value << 7;\n // not the last byte for the value\n if(b & 0x80) {\n value += b & 0x7F;\n } else {\n // last byte\n oid += '.' + (value + b);\n value = 0;\n }\n }\n\n return oid;\n};\n\n/**\n * Converts a UTCTime value to a date.\n *\n * Note: GeneralizedTime has 4 digits for the year and is used for X.509\n * dates past 2049. Parsing that structure hasn't been implemented yet.\n *\n * @param utc the UTCTime value to convert.\n *\n * @return the date.\n */\nasn1.utcTimeToDate = function(utc) {\n /* The following formats can be used:\n\n YYMMDDhhmmZ\n YYMMDDhhmm+hh'mm'\n YYMMDDhhmm-hh'mm'\n YYMMDDhhmmssZ\n YYMMDDhhmmss+hh'mm'\n YYMMDDhhmmss-hh'mm'\n\n Where:\n\n YY is the least significant two digits of the year\n MM is the month (01 to 12)\n DD is the day (01 to 31)\n hh is the hour (00 to 23)\n mm are the minutes (00 to 59)\n ss are the seconds (00 to 59)\n Z indicates that local time is GMT, + indicates that local time is\n later than GMT, and - indicates that local time is earlier than GMT\n hh' is the absolute value of the offset from GMT in hours\n mm' is the absolute value of the offset from GMT in minutes */\n var date = new Date();\n\n // if YY >= 50 use 19xx, if YY < 50 use 20xx\n var year = parseInt(utc.substr(0, 2), 10);\n year = (year >= 50) ? 1900 + year : 2000 + year;\n var MM = parseInt(utc.substr(2, 2), 10) - 1; // use 0-11 for month\n var DD = parseInt(utc.substr(4, 2), 10);\n var hh = parseInt(utc.substr(6, 2), 10);\n var mm = parseInt(utc.substr(8, 2), 10);\n var ss = 0;\n\n // not just YYMMDDhhmmZ\n if(utc.length > 11) {\n // get character after minutes\n var c = utc.charAt(10);\n var end = 10;\n\n // see if seconds are present\n if(c !== '+' && c !== '-') {\n // get seconds\n ss = parseInt(utc.substr(10, 2), 10);\n end += 2;\n }\n }\n\n // update date\n date.setUTCFullYear(year, MM, DD);\n date.setUTCHours(hh, mm, ss, 0);\n\n if(end) {\n // get +/- after end of time\n c = utc.charAt(end);\n if(c === '+' || c === '-') {\n // get hours+minutes offset\n var hhoffset = parseInt(utc.substr(end + 1, 2), 10);\n var mmoffset = parseInt(utc.substr(end + 4, 2), 10);\n\n // calculate offset in milliseconds\n var offset = hhoffset * 60 + mmoffset;\n offset *= 60000;\n\n // apply offset\n if(c === '+') {\n date.setTime(+date - offset);\n } else {\n date.setTime(+date + offset);\n }\n }\n }\n\n return date;\n};\n\n/**\n * Converts a GeneralizedTime value to a date.\n *\n * @param gentime the GeneralizedTime value to convert.\n *\n * @return the date.\n */\nasn1.generalizedTimeToDate = function(gentime) {\n /* The following formats can be used:\n\n YYYYMMDDHHMMSS\n YYYYMMDDHHMMSS.fff\n YYYYMMDDHHMMSSZ\n YYYYMMDDHHMMSS.fffZ\n YYYYMMDDHHMMSS+hh'mm'\n YYYYMMDDHHMMSS.fff+hh'mm'\n YYYYMMDDHHMMSS-hh'mm'\n YYYYMMDDHHMMSS.fff-hh'mm'\n\n Where:\n\n YYYY is the year\n MM is the month (01 to 12)\n DD is the day (01 to 31)\n hh is the hour (00 to 23)\n mm are the minutes (00 to 59)\n ss are the seconds (00 to 59)\n .fff is the second fraction, accurate to three decimal places\n Z indicates that local time is GMT, + indicates that local time is\n later than GMT, and - indicates that local time is earlier than GMT\n hh' is the absolute value of the offset from GMT in hours\n mm' is the absolute value of the offset from GMT in minutes */\n var date = new Date();\n\n var YYYY = parseInt(gentime.substr(0, 4), 10);\n var MM = parseInt(gentime.substr(4, 2), 10) - 1; // use 0-11 for month\n var DD = parseInt(gentime.substr(6, 2), 10);\n var hh = parseInt(gentime.substr(8, 2), 10);\n var mm = parseInt(gentime.substr(10, 2), 10);\n var ss = parseInt(gentime.substr(12, 2), 10);\n var fff = 0;\n var offset = 0;\n var isUTC = false;\n\n if(gentime.charAt(gentime.length - 1) === 'Z') {\n isUTC = true;\n }\n\n var end = gentime.length - 5, c = gentime.charAt(end);\n if(c === '+' || c === '-') {\n // get hours+minutes offset\n var hhoffset = parseInt(gentime.substr(end + 1, 2), 10);\n var mmoffset = parseInt(gentime.substr(end + 4, 2), 10);\n\n // calculate offset in milliseconds\n offset = hhoffset * 60 + mmoffset;\n offset *= 60000;\n\n // apply offset\n if(c === '+') {\n offset *= -1;\n }\n\n isUTC = true;\n }\n\n // check for second fraction\n if(gentime.charAt(14) === '.') {\n fff = parseFloat(gentime.substr(14), 10) * 1000;\n }\n\n if(isUTC) {\n date.setUTCFullYear(YYYY, MM, DD);\n date.setUTCHours(hh, mm, ss, fff);\n\n // apply offset\n date.setTime(+date + offset);\n } else {\n date.setFullYear(YYYY, MM, DD);\n date.setHours(hh, mm, ss, fff);\n }\n\n return date;\n};\n\n/**\n * Converts a date to a UTCTime value.\n *\n * Note: GeneralizedTime has 4 digits for the year and is used for X.509\n * dates past 2049. Converting to a GeneralizedTime hasn't been\n * implemented yet.\n *\n * @param date the date to convert.\n *\n * @return the UTCTime value.\n */\nasn1.dateToUtcTime = function(date) {\n // TODO: validate; currently assumes proper format\n if(typeof date === 'string') {\n return date;\n }\n\n var rval = '';\n\n // create format YYMMDDhhmmssZ\n var format = [];\n format.push(('' + date.getUTCFullYear()).substr(2));\n format.push('' + (date.getUTCMonth() + 1));\n format.push('' + date.getUTCDate());\n format.push('' + date.getUTCHours());\n format.push('' + date.getUTCMinutes());\n format.push('' + date.getUTCSeconds());\n\n // ensure 2 digits are used for each format entry\n for(var i = 0; i < format.length; ++i) {\n if(format[i].length < 2) {\n rval += '0';\n }\n rval += format[i];\n }\n rval += 'Z';\n\n return rval;\n};\n\n/**\n * Converts a date to a GeneralizedTime value.\n *\n * @param date the date to convert.\n *\n * @return the GeneralizedTime value as a string.\n */\nasn1.dateToGeneralizedTime = function(date) {\n // TODO: validate; currently assumes proper format\n if(typeof date === 'string') {\n return date;\n }\n\n var rval = '';\n\n // create format YYYYMMDDHHMMSSZ\n var format = [];\n format.push('' + date.getUTCFullYear());\n format.push('' + (date.getUTCMonth() + 1));\n format.push('' + date.getUTCDate());\n format.push('' + date.getUTCHours());\n format.push('' + date.getUTCMinutes());\n format.push('' + date.getUTCSeconds());\n\n // ensure 2 digits are used for each format entry\n for(var i = 0; i < format.length; ++i) {\n if(format[i].length < 2) {\n rval += '0';\n }\n rval += format[i];\n }\n rval += 'Z';\n\n return rval;\n};\n\n/**\n * Converts a javascript integer to a DER-encoded byte buffer to be used\n * as the value for an INTEGER type.\n *\n * @param x the integer.\n *\n * @return the byte buffer.\n */\nasn1.integerToDer = function(x) {\n var rval = forge.util.createBuffer();\n if(x >= -0x80 && x < 0x80) {\n return rval.putSignedInt(x, 8);\n }\n if(x >= -0x8000 && x < 0x8000) {\n return rval.putSignedInt(x, 16);\n }\n if(x >= -0x800000 && x < 0x800000) {\n return rval.putSignedInt(x, 24);\n }\n if(x >= -0x80000000 && x < 0x80000000) {\n return rval.putSignedInt(x, 32);\n }\n var error = new Error('Integer too large; max is 32-bits.');\n error.integer = x;\n throw error;\n};\n\n/**\n * Converts a DER-encoded byte buffer to a javascript integer. This is\n * typically used to decode the value of an INTEGER type.\n *\n * @param bytes the byte buffer.\n *\n * @return the integer.\n */\nasn1.derToInteger = function(bytes) {\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n var n = bytes.length() * 8;\n if(n > 32) {\n throw new Error('Integer too large; max is 32-bits.');\n }\n return bytes.getSignedInt(n);\n};\n\n/**\n * Validates that the given ASN.1 object is at least a super set of the\n * given ASN.1 structure. Only tag classes and types are checked. An\n * optional map may also be provided to capture ASN.1 values while the\n * structure is checked.\n *\n * To capture an ASN.1 value, set an object in the validator's 'capture'\n * parameter to the key to use in the capture map. To capture the full\n * ASN.1 object, specify 'captureAsn1'. To capture BIT STRING bytes, including\n * the leading unused bits counter byte, specify 'captureBitStringContents'.\n * To capture BIT STRING bytes, without the leading unused bits counter byte,\n * specify 'captureBitStringValue'.\n *\n * Objects in the validator may set a field 'optional' to true to indicate\n * that it isn't necessary to pass validation.\n *\n * @param obj the ASN.1 object to validate.\n * @param v the ASN.1 structure validator.\n * @param capture an optional map to capture values in.\n * @param errors an optional array for storing validation errors.\n *\n * @return true on success, false on failure.\n */\nasn1.validate = function(obj, v, capture, errors) {\n var rval = false;\n\n // ensure tag class and type are the same if specified\n if((obj.tagClass === v.tagClass || typeof(v.tagClass) === 'undefined') &&\n (obj.type === v.type || typeof(v.type) === 'undefined')) {\n // ensure constructed flag is the same if specified\n if(obj.constructed === v.constructed ||\n typeof(v.constructed) === 'undefined') {\n rval = true;\n\n // handle sub values\n if(v.value && forge.util.isArray(v.value)) {\n var j = 0;\n for(var i = 0; rval && i < v.value.length; ++i) {\n rval = v.value[i].optional || false;\n if(obj.value[j]) {\n rval = asn1.validate(obj.value[j], v.value[i], capture, errors);\n if(rval) {\n ++j;\n } else if(v.value[i].optional) {\n rval = true;\n }\n }\n if(!rval && errors) {\n errors.push(\n '[' + v.name + '] ' +\n 'Tag class \"' + v.tagClass + '\", type \"' +\n v.type + '\" expected value length \"' +\n v.value.length + '\", got \"' +\n obj.value.length + '\"');\n }\n }\n }\n\n if(rval && capture) {\n if(v.capture) {\n capture[v.capture] = obj.value;\n }\n if(v.captureAsn1) {\n capture[v.captureAsn1] = obj;\n }\n if(v.captureBitStringContents && 'bitStringContents' in obj) {\n capture[v.captureBitStringContents] = obj.bitStringContents;\n }\n if(v.captureBitStringValue && 'bitStringContents' in obj) {\n var value;\n if(obj.bitStringContents.length < 2) {\n capture[v.captureBitStringValue] = '';\n } else {\n // FIXME: support unused bits with data shifting\n var unused = obj.bitStringContents.charCodeAt(0);\n if(unused !== 0) {\n throw new Error(\n 'captureBitStringValue only supported for zero unused bits');\n }\n capture[v.captureBitStringValue] = obj.bitStringContents.slice(1);\n }\n }\n }\n } else if(errors) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected constructed \"' + v.constructed + '\", got \"' +\n obj.constructed + '\"');\n }\n } else if(errors) {\n if(obj.tagClass !== v.tagClass) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected tag class \"' + v.tagClass + '\", got \"' +\n obj.tagClass + '\"');\n }\n if(obj.type !== v.type) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected type \"' + v.type + '\", got \"' + obj.type + '\"');\n }\n }\n return rval;\n};\n\n// regex for testing for non-latin characters\nvar _nonLatinRegex = /[^\\\\u0000-\\\\u00ff]/;\n\n/**\n * Pretty prints an ASN.1 object to a string.\n *\n * @param obj the object to write out.\n * @param level the level in the tree.\n * @param indentation the indentation to use.\n *\n * @return the string.\n */\nasn1.prettyPrint = function(obj, level, indentation) {\n var rval = '';\n\n // set default level and indentation\n level = level || 0;\n indentation = indentation || 2;\n\n // start new line for deep levels\n if(level > 0) {\n rval += '\\n';\n }\n\n // create indent\n var indent = '';\n for(var i = 0; i < level * indentation; ++i) {\n indent += ' ';\n }\n\n // print class:type\n rval += indent + 'Tag: ';\n switch(obj.tagClass) {\n case asn1.Class.UNIVERSAL:\n rval += 'Universal:';\n break;\n case asn1.Class.APPLICATION:\n rval += 'Application:';\n break;\n case asn1.Class.CONTEXT_SPECIFIC:\n rval += 'Context-Specific:';\n break;\n case asn1.Class.PRIVATE:\n rval += 'Private:';\n break;\n }\n\n if(obj.tagClass === asn1.Class.UNIVERSAL) {\n rval += obj.type;\n\n // known types\n switch(obj.type) {\n case asn1.Type.NONE:\n rval += ' (None)';\n break;\n case asn1.Type.BOOLEAN:\n rval += ' (Boolean)';\n break;\n case asn1.Type.INTEGER:\n rval += ' (Integer)';\n break;\n case asn1.Type.BITSTRING:\n rval += ' (Bit string)';\n break;\n case asn1.Type.OCTETSTRING:\n rval += ' (Octet string)';\n break;\n case asn1.Type.NULL:\n rval += ' (Null)';\n break;\n case asn1.Type.OID:\n rval += ' (Object Identifier)';\n break;\n case asn1.Type.ODESC:\n rval += ' (Object Descriptor)';\n break;\n case asn1.Type.EXTERNAL:\n rval += ' (External or Instance of)';\n break;\n case asn1.Type.REAL:\n rval += ' (Real)';\n break;\n case asn1.Type.ENUMERATED:\n rval += ' (Enumerated)';\n break;\n case asn1.Type.EMBEDDED:\n rval += ' (Embedded PDV)';\n break;\n case asn1.Type.UTF8:\n rval += ' (UTF8)';\n break;\n case asn1.Type.ROID:\n rval += ' (Relative Object Identifier)';\n break;\n case asn1.Type.SEQUENCE:\n rval += ' (Sequence)';\n break;\n case asn1.Type.SET:\n rval += ' (Set)';\n break;\n case asn1.Type.PRINTABLESTRING:\n rval += ' (Printable String)';\n break;\n case asn1.Type.IA5String:\n rval += ' (IA5String (ASCII))';\n break;\n case asn1.Type.UTCTIME:\n rval += ' (UTC time)';\n break;\n case asn1.Type.GENERALIZEDTIME:\n rval += ' (Generalized time)';\n break;\n case asn1.Type.BMPSTRING:\n rval += ' (BMP String)';\n break;\n }\n } else {\n rval += obj.type;\n }\n\n rval += '\\n';\n rval += indent + 'Constructed: ' + obj.constructed + '\\n';\n\n if(obj.composed) {\n var subvalues = 0;\n var sub = '';\n for(var i = 0; i < obj.value.length; ++i) {\n if(obj.value[i] !== undefined) {\n subvalues += 1;\n sub += asn1.prettyPrint(obj.value[i], level + 1, indentation);\n if((i + 1) < obj.value.length) {\n sub += ',';\n }\n }\n }\n rval += indent + 'Sub values: ' + subvalues + sub;\n } else {\n rval += indent + 'Value: ';\n if(obj.type === asn1.Type.OID) {\n var oid = asn1.derToOid(obj.value);\n rval += oid;\n if(forge.pki && forge.pki.oids) {\n if(oid in forge.pki.oids) {\n rval += ' (' + forge.pki.oids[oid] + ') ';\n }\n }\n }\n if(obj.type === asn1.Type.INTEGER) {\n try {\n rval += asn1.derToInteger(obj.value);\n } catch(ex) {\n rval += '0x' + forge.util.bytesToHex(obj.value);\n }\n } else if(obj.type === asn1.Type.BITSTRING) {\n // TODO: shift bits as needed to display without padding\n if(obj.value.length > 1) {\n // remove unused bits field\n rval += '0x' + forge.util.bytesToHex(obj.value.slice(1));\n } else {\n rval += '(none)';\n }\n // show unused bit count\n if(obj.value.length > 0) {\n var unused = obj.value.charCodeAt(0);\n if(unused == 1) {\n rval += ' (1 unused bit shown)';\n } else if(unused > 1) {\n rval += ' (' + unused + ' unused bits shown)';\n }\n }\n } else if(obj.type === asn1.Type.OCTETSTRING) {\n if(!_nonLatinRegex.test(obj.value)) {\n rval += '(' + obj.value + ') ';\n }\n rval += '0x' + forge.util.bytesToHex(obj.value);\n } else if(obj.type === asn1.Type.UTF8) {\n try {\n rval += forge.util.decodeUtf8(obj.value);\n } catch(e) {\n if(e.message === 'URI malformed') {\n rval +=\n '0x' + forge.util.bytesToHex(obj.value) + ' (malformed UTF8)';\n } else {\n throw e;\n }\n }\n } else if(obj.type === asn1.Type.PRINTABLESTRING ||\n obj.type === asn1.Type.IA5String) {\n rval += obj.value;\n } else if(_nonLatinRegex.test(obj.value)) {\n rval += '0x' + forge.util.bytesToHex(obj.value);\n } else if(obj.value.length === 0) {\n rval += '[null]';\n } else {\n rval += obj.value;\n }\n }\n\n return rval;\n};\n","/**\n * Base-N/Base-X encoding/decoding functions.\n *\n * Original implementation from base-x:\n * https://github.com/cryptocoinjs/base-x\n *\n * Which is MIT licensed:\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n */\nvar api = {};\nmodule.exports = api;\n\n// baseN alphabet indexes\nvar _reverseAlphabets = {};\n\n/**\n * BaseN-encodes a Uint8Array using the given alphabet.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the baseN-encoded output string.\n */\napi.encode = function(input, alphabet, maxline) {\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(maxline !== undefined && typeof maxline !== 'number') {\n throw new TypeError('\"maxline\" must be a number.');\n }\n\n var output = '';\n\n if(!(input instanceof Uint8Array)) {\n // assume forge byte buffer\n output = _encodeWithByteBuffer(input, alphabet);\n } else {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length; ++i) {\n for(var j = 0, carry = input[i]; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n // deal with leading zeros\n for(i = 0; input[i] === 0 && i < input.length - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n }\n\n if(maxline) {\n var regex = new RegExp('.{1,' + maxline + '}', 'g');\n output = output.match(regex).join('\\r\\n');\n }\n\n return output;\n};\n\n/**\n * Decodes a baseN-encoded (using the given alphabet) string to a\n * Uint8Array.\n *\n * @param input the baseN-encoded input string.\n *\n * @return the Uint8Array.\n */\napi.decode = function(input, alphabet) {\n if(typeof input !== 'string') {\n throw new TypeError('\"input\" must be a string.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n\n var table = _reverseAlphabets[alphabet];\n if(!table) {\n // compute reverse alphabet\n table = _reverseAlphabets[alphabet] = [];\n for(var i = 0; i < alphabet.length; ++i) {\n table[alphabet.charCodeAt(i)] = i;\n }\n }\n\n // remove whitespace characters\n input = input.replace(/\\s/g, '');\n\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var bytes = [0];\n for(var i = 0; i < input.length; i++) {\n var value = table[input.charCodeAt(i)];\n if(value === undefined) {\n return;\n }\n\n for(var j = 0, carry = value; j < bytes.length; ++j) {\n carry += bytes[j] * base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while(carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for(var k = 0; input[k] === first && k < input.length - 1; ++k) {\n bytes.push(0);\n }\n\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(bytes.reverse());\n }\n\n return new Uint8Array(bytes.reverse());\n};\n\nfunction _encodeWithByteBuffer(input, alphabet) {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length(); ++i) {\n for(var j = 0, carry = input.at(i); j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n var output = '';\n\n // deal with leading zeros\n for(i = 0; input.at(i) === 0 && i < input.length() - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n\n return output;\n}\n","/**\n * Cipher base API.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nmodule.exports = forge.cipher = forge.cipher || {};\n\n// registered algorithms\nforge.cipher.algorithms = forge.cipher.algorithms || {};\n\n/**\n * Creates a cipher object that can be used to encrypt data using the given\n * algorithm and key. The algorithm may be provided as a string value for a\n * previously registered algorithm or it may be given as a cipher algorithm\n * API object.\n *\n * @param algorithm the algorithm to use, either a string or an algorithm API\n * object.\n * @param key the key to use, as a binary-encoded string of bytes or a\n * byte buffer.\n *\n * @return the cipher.\n */\nforge.cipher.createCipher = function(algorithm, key) {\n var api = algorithm;\n if(typeof api === 'string') {\n api = forge.cipher.getAlgorithm(api);\n if(api) {\n api = api();\n }\n }\n if(!api) {\n throw new Error('Unsupported algorithm: ' + algorithm);\n }\n\n // assume block cipher\n return new forge.cipher.BlockCipher({\n algorithm: api,\n key: key,\n decrypt: false\n });\n};\n\n/**\n * Creates a decipher object that can be used to decrypt data using the given\n * algorithm and key. The algorithm may be provided as a string value for a\n * previously registered algorithm or it may be given as a cipher algorithm\n * API object.\n *\n * @param algorithm the algorithm to use, either a string or an algorithm API\n * object.\n * @param key the key to use, as a binary-encoded string of bytes or a\n * byte buffer.\n *\n * @return the cipher.\n */\nforge.cipher.createDecipher = function(algorithm, key) {\n var api = algorithm;\n if(typeof api === 'string') {\n api = forge.cipher.getAlgorithm(api);\n if(api) {\n api = api();\n }\n }\n if(!api) {\n throw new Error('Unsupported algorithm: ' + algorithm);\n }\n\n // assume block cipher\n return new forge.cipher.BlockCipher({\n algorithm: api,\n key: key,\n decrypt: true\n });\n};\n\n/**\n * Registers an algorithm by name. If the name was already registered, the\n * algorithm API object will be overwritten.\n *\n * @param name the name of the algorithm.\n * @param algorithm the algorithm API object.\n */\nforge.cipher.registerAlgorithm = function(name, algorithm) {\n name = name.toUpperCase();\n forge.cipher.algorithms[name] = algorithm;\n};\n\n/**\n * Gets a registered algorithm by name.\n *\n * @param name the name of the algorithm.\n *\n * @return the algorithm, if found, null if not.\n */\nforge.cipher.getAlgorithm = function(name) {\n name = name.toUpperCase();\n if(name in forge.cipher.algorithms) {\n return forge.cipher.algorithms[name];\n }\n return null;\n};\n\nvar BlockCipher = forge.cipher.BlockCipher = function(options) {\n this.algorithm = options.algorithm;\n this.mode = this.algorithm.mode;\n this.blockSize = this.mode.blockSize;\n this._finish = false;\n this._input = null;\n this.output = null;\n this._op = options.decrypt ? this.mode.decrypt : this.mode.encrypt;\n this._decrypt = options.decrypt;\n this.algorithm.initialize(options);\n};\n\n/**\n * Starts or restarts the encryption or decryption process, whichever\n * was previously configured.\n *\n * For non-GCM mode, the IV may be a binary-encoded string of bytes, an array\n * of bytes, a byte buffer, or an array of 32-bit integers. If the IV is in\n * bytes, then it must be Nb (16) bytes in length. If the IV is given in as\n * 32-bit integers, then it must be 4 integers long.\n *\n * Note: an IV is not required or used in ECB mode.\n *\n * For GCM-mode, the IV must be given as a binary-encoded string of bytes or\n * a byte buffer. The number of bytes should be 12 (96 bits) as recommended\n * by NIST SP-800-38D but another length may be given.\n *\n * @param options the options to use:\n * iv the initialization vector to use as a binary-encoded string of\n * bytes, null to reuse the last ciphered block from a previous\n * update() (this \"residue\" method is for legacy support only).\n * additionalData additional authentication data as a binary-encoded\n * string of bytes, for 'GCM' mode, (default: none).\n * tagLength desired length of authentication tag, in bits, for\n * 'GCM' mode (0-128, default: 128).\n * tag the authentication tag to check if decrypting, as a\n * binary-encoded string of bytes.\n * output the output the buffer to write to, null to create one.\n */\nBlockCipher.prototype.start = function(options) {\n options = options || {};\n var opts = {};\n for(var key in options) {\n opts[key] = options[key];\n }\n opts.decrypt = this._decrypt;\n this._finish = false;\n this._input = forge.util.createBuffer();\n this.output = options.output || forge.util.createBuffer();\n this.mode.start(opts);\n};\n\n/**\n * Updates the next block according to the cipher mode.\n *\n * @param input the buffer to read from.\n */\nBlockCipher.prototype.update = function(input) {\n if(input) {\n // input given, so empty it into the input buffer\n this._input.putBuffer(input);\n }\n\n // do cipher operation until it needs more input and not finished\n while(!this._op.call(this.mode, this._input, this.output, this._finish) &&\n !this._finish) {}\n\n // free consumed memory from input buffer\n this._input.compact();\n};\n\n/**\n * Finishes encrypting or decrypting.\n *\n * @param pad a padding function to use in CBC mode, null for default,\n * signature(blockSize, buffer, decrypt).\n *\n * @return true if successful, false on error.\n */\nBlockCipher.prototype.finish = function(pad) {\n // backwards-compatibility w/deprecated padding API\n // Note: will overwrite padding functions even after another start() call\n if(pad && (this.mode.name === 'ECB' || this.mode.name === 'CBC')) {\n this.mode.pad = function(input) {\n return pad(this.blockSize, input, false);\n };\n this.mode.unpad = function(output) {\n return pad(this.blockSize, output, true);\n };\n }\n\n // build options for padding and afterFinish functions\n var options = {};\n options.decrypt = this._decrypt;\n\n // get # of bytes that won't fill a block\n options.overflow = this._input.length() % this.blockSize;\n\n if(!this._decrypt && this.mode.pad) {\n if(!this.mode.pad(this._input, options)) {\n return false;\n }\n }\n\n // do final update\n this._finish = true;\n this.update();\n\n if(this._decrypt && this.mode.unpad) {\n if(!this.mode.unpad(this.output, options)) {\n return false;\n }\n }\n\n if(this.mode.afterFinish) {\n if(!this.mode.afterFinish(this.output, options)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\n * Supported cipher modes.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nforge.cipher = forge.cipher || {};\n\n// supported cipher modes\nvar modes = module.exports = forge.cipher.modes = forge.cipher.modes || {};\n\n/** Electronic codebook (ECB) (Don't use this; it's not secure) **/\n\nmodes.ecb = function(options) {\n options = options || {};\n this.name = 'ECB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n};\n\nmodes.ecb.prototype.start = function(options) {};\n\nmodes.ecb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // write output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n};\n\nmodes.ecb.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // decrypt block\n this.cipher.decrypt(this._inBlock, this._outBlock);\n\n // write output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n};\n\nmodes.ecb.prototype.pad = function(input, options) {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (input.length() === this.blockSize ?\n this.blockSize : (this.blockSize - input.length()));\n input.fillWithByte(padding, padding);\n return true;\n};\n\nmodes.ecb.prototype.unpad = function(output, options) {\n // check for error: input data not a multiple of blockSize\n if(options.overflow > 0) {\n return false;\n }\n\n // ensure padding byte count is valid\n var len = output.length();\n var count = output.at(len - 1);\n if(count > (this.blockSize << 2)) {\n return false;\n }\n\n // trim off padding bytes\n output.truncate(count);\n return true;\n};\n\n/** Cipher-block Chaining (CBC) **/\n\nmodes.cbc = function(options) {\n options = options || {};\n this.name = 'CBC';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n};\n\nmodes.cbc.prototype.start = function(options) {\n // Note: legacy support for using IV residue (has security flaws)\n // if IV is null, reuse block from previous processing\n if(options.iv === null) {\n // must have a previous block\n if(!this._prev) {\n throw new Error('Invalid IV parameter.');\n }\n this._iv = this._prev.slice(0);\n } else if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n } else {\n // save IV as \"previous\" block\n this._iv = transformIV(options.iv, this.blockSize);\n this._prev = this._iv.slice(0);\n }\n};\n\nmodes.cbc.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n // CBC XOR's IV (or previous block) with plaintext\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._prev[i] ^ input.getInt32();\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // write output, save previous block\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n this._prev = this._outBlock;\n};\n\nmodes.cbc.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // decrypt block\n this.cipher.decrypt(this._inBlock, this._outBlock);\n\n // write output, save previous ciphered block\n // CBC XOR's IV (or previous block) with ciphertext\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._prev[i] ^ this._outBlock[i]);\n }\n this._prev = this._inBlock.slice(0);\n};\n\nmodes.cbc.prototype.pad = function(input, options) {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (input.length() === this.blockSize ?\n this.blockSize : (this.blockSize - input.length()));\n input.fillWithByte(padding, padding);\n return true;\n};\n\nmodes.cbc.prototype.unpad = function(output, options) {\n // check for error: input data not a multiple of blockSize\n if(options.overflow > 0) {\n return false;\n }\n\n // ensure padding byte count is valid\n var len = output.length();\n var count = output.at(len - 1);\n if(count > (this.blockSize << 2)) {\n return false;\n }\n\n // trim off padding bytes\n output.truncate(count);\n return true;\n};\n\n/** Cipher feedback (CFB) **/\n\nmodes.cfb = function(options) {\n options = options || {};\n this.name = 'CFB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output, write input as output\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32() ^ this._outBlock[i];\n output.putInt32(this._inBlock[i]);\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output, write input as partial output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialBlock[i] = input.getInt32() ^ this._outBlock[i];\n this._partialOutput.putInt32(this._partialBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._partialBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block (CFB always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output, write input as output\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n output.putInt32(this._inBlock[i] ^ this._outBlock[i]);\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output, write input as partial output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialBlock[i] = input.getInt32();\n this._partialOutput.putInt32(this._partialBlock[i] ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._partialBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\n/** Output feedback (OFB) **/\n\nmodes.ofb = function(options) {\n options = options || {};\n this.name = 'OFB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(input.length() === 0) {\n return true;\n }\n\n // encrypt block (OFB always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output and update next input\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(input.getInt32() ^ this._outBlock[i]);\n this._inBlock[i] = this._outBlock[i];\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._outBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.decrypt = modes.ofb.prototype.encrypt;\n\n/** Counter (CTR) **/\n\nmodes.ctr = function(options) {\n options = options || {};\n this.name = 'CTR';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.ctr.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.ctr.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block (CTR always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n } else {\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n }\n\n // block complete, increment counter (input block)\n inc32(this._inBlock);\n};\n\nmodes.ctr.prototype.decrypt = modes.ctr.prototype.encrypt;\n\n/** Galois/Counter Mode (GCM) **/\n\nmodes.gcm = function(options) {\n options = options || {};\n this.name = 'GCM';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n\n // R is actually this value concatenated with 120 more zero bits, but\n // we only XOR against R so the other zeros have no effect -- we just\n // apply this value to the first integer in a block\n this._R = 0xE1000000;\n};\n\nmodes.gcm.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // ensure IV is a byte buffer\n var iv = forge.util.createBuffer(options.iv);\n\n // no ciphered data processed yet\n this._cipherLength = 0;\n\n // default additional data is none\n var additionalData;\n if('additionalData' in options) {\n additionalData = forge.util.createBuffer(options.additionalData);\n } else {\n additionalData = forge.util.createBuffer();\n }\n\n // default tag length is 128 bits\n if('tagLength' in options) {\n this._tagLength = options.tagLength;\n } else {\n this._tagLength = 128;\n }\n\n // if tag is given, ensure tag matches tag length\n this._tag = null;\n if(options.decrypt) {\n // save tag to check later\n this._tag = forge.util.createBuffer(options.tag).getBytes();\n if(this._tag.length !== (this._tagLength / 8)) {\n throw new Error('Authentication tag does not match tag length.');\n }\n }\n\n // create tmp storage for hash calculation\n this._hashBlock = new Array(this._ints);\n\n // no tag generated yet\n this.tag = null;\n\n // generate hash subkey\n // (apply block cipher to \"zero\" block)\n this._hashSubkey = new Array(this._ints);\n this.cipher.encrypt([0, 0, 0, 0], this._hashSubkey);\n\n // generate table M\n // use 4-bit tables (32 component decomposition of a 16 byte value)\n // 8-bit tables take more space and are known to have security\n // vulnerabilities (in native implementations)\n this.componentBits = 4;\n this._m = this.generateHashTable(this._hashSubkey, this.componentBits);\n\n // Note: support IV length different from 96 bits? (only supporting\n // 96 bits is recommended by NIST SP-800-38D)\n // generate J_0\n var ivLength = iv.length();\n if(ivLength === 12) {\n // 96-bit IV\n this._j0 = [iv.getInt32(), iv.getInt32(), iv.getInt32(), 1];\n } else {\n // IV is NOT 96-bits\n this._j0 = [0, 0, 0, 0];\n while(iv.length() > 0) {\n this._j0 = this.ghash(\n this._hashSubkey, this._j0,\n [iv.getInt32(), iv.getInt32(), iv.getInt32(), iv.getInt32()]);\n }\n this._j0 = this.ghash(\n this._hashSubkey, this._j0, [0, 0].concat(from64To32(ivLength * 8)));\n }\n\n // generate ICB (initial counter block)\n this._inBlock = this._j0.slice(0);\n inc32(this._inBlock);\n this._partialBytes = 0;\n\n // consume authentication data\n additionalData = forge.util.createBuffer(additionalData);\n // save additional data length as a BE 64-bit number\n this._aDataLength = from64To32(additionalData.length() * 8);\n // pad additional data to 128 bit (16 byte) block size\n var overflow = additionalData.length() % this.blockSize;\n if(overflow) {\n additionalData.fillWithByte(0, this.blockSize - overflow);\n }\n this._s = [0, 0, 0, 0];\n while(additionalData.length() > 0) {\n this._s = this.ghash(this._hashSubkey, this._s, [\n additionalData.getInt32(),\n additionalData.getInt32(),\n additionalData.getInt32(),\n additionalData.getInt32()\n ]);\n }\n};\n\nmodes.gcm.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i] ^= input.getInt32());\n }\n this._cipherLength += this.blockSize;\n } else {\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes <= 0 || finish) {\n // handle overflow prior to hashing\n if(finish) {\n // get block overflow\n var overflow = inputLength % this.blockSize;\n this._cipherLength += overflow;\n // truncate for hash function\n this._partialOutput.truncate(this.blockSize - overflow);\n } else {\n this._cipherLength += this.blockSize;\n }\n\n // get output block for hashing\n for(var i = 0; i < this._ints; ++i) {\n this._outBlock[i] = this._partialOutput.getInt32();\n }\n this._partialOutput.read -= this.blockSize;\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n // block still incomplete, restore input buffer, get partial output,\n // and return early\n input.read -= this.blockSize;\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n }\n\n // update hash block S\n this._s = this.ghash(this._hashSubkey, this._s, this._outBlock);\n\n // increment counter (input block)\n inc32(this._inBlock);\n};\n\nmodes.gcm.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n var inputLength = input.length();\n if(inputLength < this.blockSize && !(finish && inputLength > 0)) {\n return true;\n }\n\n // encrypt block (GCM always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // increment counter (input block)\n inc32(this._inBlock);\n\n // update hash block S\n this._hashBlock[0] = input.getInt32();\n this._hashBlock[1] = input.getInt32();\n this._hashBlock[2] = input.getInt32();\n this._hashBlock[3] = input.getInt32();\n this._s = this.ghash(this._hashSubkey, this._s, this._hashBlock);\n\n // XOR hash input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i] ^ this._hashBlock[i]);\n }\n\n // increment cipher data length\n if(inputLength < this.blockSize) {\n this._cipherLength += inputLength % this.blockSize;\n } else {\n this._cipherLength += this.blockSize;\n }\n};\n\nmodes.gcm.prototype.afterFinish = function(output, options) {\n var rval = true;\n\n // handle overflow\n if(options.decrypt && options.overflow) {\n output.truncate(this.blockSize - options.overflow);\n }\n\n // handle authentication tag\n this.tag = forge.util.createBuffer();\n\n // concatenate additional data length with cipher length\n var lengths = this._aDataLength.concat(from64To32(this._cipherLength * 8));\n\n // include lengths in hash\n this._s = this.ghash(this._hashSubkey, this._s, lengths);\n\n // do GCTR(J_0, S)\n var tag = [];\n this.cipher.encrypt(this._j0, tag);\n for(var i = 0; i < this._ints; ++i) {\n this.tag.putInt32(this._s[i] ^ tag[i]);\n }\n\n // trim tag to length\n this.tag.truncate(this.tag.length() % (this._tagLength / 8));\n\n // check authentication tag\n if(options.decrypt && this.tag.bytes() !== this._tag) {\n rval = false;\n }\n\n return rval;\n};\n\n/**\n * See NIST SP-800-38D 6.3 (Algorithm 1). This function performs Galois\n * field multiplication. The field, GF(2^128), is defined by the polynomial:\n *\n * x^128 + x^7 + x^2 + x + 1\n *\n * Which is represented in little-endian binary form as: 11100001 (0xe1). When\n * the value of a coefficient is 1, a bit is set. The value R, is the\n * concatenation of this value and 120 zero bits, yielding a 128-bit value\n * which matches the block size.\n *\n * This function will multiply two elements (vectors of bytes), X and Y, in\n * the field GF(2^128). The result is initialized to zero. For each bit of\n * X (out of 128), x_i, if x_i is set, then the result is multiplied (XOR'd)\n * by the current value of Y. For each bit, the value of Y will be raised by\n * a power of x (multiplied by the polynomial x). This can be achieved by\n * shifting Y once to the right. If the current value of Y, prior to being\n * multiplied by x, has 0 as its LSB, then it is a 127th degree polynomial.\n * Otherwise, we must divide by R after shifting to find the remainder.\n *\n * @param x the first block to multiply by the second.\n * @param y the second block to multiply by the first.\n *\n * @return the block result of the multiplication.\n */\nmodes.gcm.prototype.multiply = function(x, y) {\n var z_i = [0, 0, 0, 0];\n var v_i = y.slice(0);\n\n // calculate Z_128 (block has 128 bits)\n for(var i = 0; i < 128; ++i) {\n // if x_i is 0, Z_{i+1} = Z_i (unchanged)\n // else Z_{i+1} = Z_i ^ V_i\n // get x_i by finding 32-bit int position, then left shift 1 by remainder\n var x_i = x[(i / 32) | 0] & (1 << (31 - i % 32));\n if(x_i) {\n z_i[0] ^= v_i[0];\n z_i[1] ^= v_i[1];\n z_i[2] ^= v_i[2];\n z_i[3] ^= v_i[3];\n }\n\n // if LSB(V_i) is 1, V_i = V_i >> 1\n // else V_i = (V_i >> 1) ^ R\n this.pow(v_i, v_i);\n }\n\n return z_i;\n};\n\nmodes.gcm.prototype.pow = function(x, out) {\n // if LSB(x) is 1, x = x >>> 1\n // else x = (x >>> 1) ^ R\n var lsb = x[3] & 1;\n\n // always do x >>> 1:\n // starting with the rightmost integer, shift each integer to the right\n // one bit, pulling in the bit from the integer to the left as its top\n // most bit (do this for the last 3 integers)\n for(var i = 3; i > 0; --i) {\n out[i] = (x[i] >>> 1) | ((x[i - 1] & 1) << 31);\n }\n // shift the first integer normally\n out[0] = x[0] >>> 1;\n\n // if lsb was not set, then polynomial had a degree of 127 and doesn't\n // need to divided; otherwise, XOR with R to find the remainder; we only\n // need to XOR the first integer since R technically ends w/120 zero bits\n if(lsb) {\n out[0] ^= this._R;\n }\n};\n\nmodes.gcm.prototype.tableMultiply = function(x) {\n // assumes 4-bit tables are used\n var z = [0, 0, 0, 0];\n for(var i = 0; i < 32; ++i) {\n var idx = (i / 8) | 0;\n var x_i = (x[idx] >>> ((7 - (i % 8)) * 4)) & 0xF;\n var ah = this._m[i][x_i];\n z[0] ^= ah[0];\n z[1] ^= ah[1];\n z[2] ^= ah[2];\n z[3] ^= ah[3];\n }\n return z;\n};\n\n/**\n * A continuing version of the GHASH algorithm that operates on a single\n * block. The hash block, last hash value (Ym) and the new block to hash\n * are given.\n *\n * @param h the hash block.\n * @param y the previous value for Ym, use [0, 0, 0, 0] for a new hash.\n * @param x the block to hash.\n *\n * @return the hashed value (Ym).\n */\nmodes.gcm.prototype.ghash = function(h, y, x) {\n y[0] ^= x[0];\n y[1] ^= x[1];\n y[2] ^= x[2];\n y[3] ^= x[3];\n return this.tableMultiply(y);\n //return this.multiply(y, h);\n};\n\n/**\n * Precomputes a table for multiplying against the hash subkey. This\n * mechanism provides a substantial speed increase over multiplication\n * performed without a table. The table-based multiplication this table is\n * for solves X * H by multiplying each component of X by H and then\n * composing the results together using XOR.\n *\n * This function can be used to generate tables with different bit sizes\n * for the components, however, this implementation assumes there are\n * 32 components of X (which is a 16 byte vector), therefore each component\n * takes 4-bits (so the table is constructed with bits=4).\n *\n * @param h the hash subkey.\n * @param bits the bit size for a component.\n */\nmodes.gcm.prototype.generateHashTable = function(h, bits) {\n // TODO: There are further optimizations that would use only the\n // first table M_0 (or some variant) along with a remainder table;\n // this can be explored in the future\n var multiplier = 8 / bits;\n var perInt = 4 * multiplier;\n var size = 16 * multiplier;\n var m = new Array(size);\n for(var i = 0; i < size; ++i) {\n var tmp = [0, 0, 0, 0];\n var idx = (i / perInt) | 0;\n var shft = ((perInt - 1 - (i % perInt)) * bits);\n tmp[idx] = (1 << (bits - 1)) << shft;\n m[i] = this.generateSubHashTable(this.multiply(tmp, h), bits);\n }\n return m;\n};\n\n/**\n * Generates a table for multiplying against the hash subkey for one\n * particular component (out of all possible component values).\n *\n * @param mid the pre-multiplied value for the middle key of the table.\n * @param bits the bit size for a component.\n */\nmodes.gcm.prototype.generateSubHashTable = function(mid, bits) {\n // compute the table quickly by minimizing the number of\n // POW operations -- they only need to be performed for powers of 2,\n // all other entries can be composed from those powers using XOR\n var size = 1 << bits;\n var half = size >>> 1;\n var m = new Array(size);\n m[half] = mid.slice(0);\n var i = half >>> 1;\n while(i > 0) {\n // raise m0[2 * i] and store in m0[i]\n this.pow(m[2 * i], m[i] = []);\n i >>= 1;\n }\n i = 2;\n while(i < half) {\n for(var j = 1; j < i; ++j) {\n var m_i = m[i];\n var m_j = m[j];\n m[i + j] = [\n m_i[0] ^ m_j[0],\n m_i[1] ^ m_j[1],\n m_i[2] ^ m_j[2],\n m_i[3] ^ m_j[3]\n ];\n }\n i *= 2;\n }\n m[0] = [0, 0, 0, 0];\n /* Note: We could avoid storing these by doing composition during multiply\n calculate top half using composition by speed is preferred. */\n for(i = half + 1; i < size; ++i) {\n var c = m[i ^ half];\n m[i] = [mid[0] ^ c[0], mid[1] ^ c[1], mid[2] ^ c[2], mid[3] ^ c[3]];\n }\n return m;\n};\n\n/** Utility functions */\n\nfunction transformIV(iv, blockSize) {\n if(typeof iv === 'string') {\n // convert iv string into byte buffer\n iv = forge.util.createBuffer(iv);\n }\n\n if(forge.util.isArray(iv) && iv.length > 4) {\n // convert iv byte array into byte buffer\n var tmp = iv;\n iv = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n iv.putByte(tmp[i]);\n }\n }\n\n if(iv.length() < blockSize) {\n throw new Error(\n 'Invalid IV length; got ' + iv.length() +\n ' bytes and expected ' + blockSize + ' bytes.');\n }\n\n if(!forge.util.isArray(iv)) {\n // convert iv byte buffer into 32-bit integer array\n var ints = [];\n var blocks = blockSize / 4;\n for(var i = 0; i < blocks; ++i) {\n ints.push(iv.getInt32());\n }\n iv = ints;\n }\n\n return iv;\n}\n\nfunction inc32(block) {\n // increment last 32 bits of block only\n block[block.length - 1] = (block[block.length - 1] + 1) & 0xFFFFFFFF;\n}\n\nfunction from64To32(num) {\n // convert 64-bit number to two BE Int32s\n return [(num / 0x100000000) | 0, num & 0xFFFFFFFF];\n}\n","/**\n * DES (Data Encryption Standard) implementation.\n *\n * This implementation supports DES as well as 3DES-EDE in ECB and CBC mode.\n * It is based on the BSD-licensed implementation by Paul Tero:\n *\n * Paul Tero, July 2001\n * http://www.tero.co.uk/des/\n *\n * Optimised for performance with large blocks by\n * Michael Hayworth, November 2001\n * http://www.netdealing.com\n *\n * THIS SOFTWARE IS PROVIDED \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2012-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./cipher');\nrequire('./cipherModes');\nrequire('./util');\n\n/* DES API */\nmodule.exports = forge.des = forge.des || {};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('DES-', key);\n * cipher.start({iv: iv});\n *\n * Creates an DES cipher object to encrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as binary-encoded strings of bytes or\n * byte buffers.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC' if IV is\n * given, 'ECB' if null).\n *\n * @return the cipher.\n */\nforge.des.startEncrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: false,\n mode: mode || (iv === null ? 'ECB' : 'CBC')\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('DES-', key);\n *\n * Creates an DES cipher object to encrypt data using the given symmetric key.\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.des.createEncryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: false,\n mode: mode\n });\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('DES-', key);\n * decipher.start({iv: iv});\n *\n * Creates an DES cipher object to decrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as binary-encoded strings of bytes or\n * byte buffers.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC' if IV is\n * given, 'ECB' if null).\n *\n * @return the cipher.\n */\nforge.des.startDecrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: true,\n mode: mode || (iv === null ? 'ECB' : 'CBC')\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('DES-', key);\n *\n * Creates an DES cipher object to decrypt data using the given symmetric key.\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.des.createDecryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: true,\n mode: mode\n });\n};\n\n/**\n * Creates a new DES cipher algorithm object.\n *\n * @param name the name of the algorithm.\n * @param mode the mode factory function.\n *\n * @return the DES algorithm object.\n */\nforge.des.Algorithm = function(name, mode) {\n var self = this;\n self.name = name;\n self.mode = new mode({\n blockSize: 8,\n cipher: {\n encrypt: function(inBlock, outBlock) {\n return _updateBlock(self._keys, inBlock, outBlock, false);\n },\n decrypt: function(inBlock, outBlock) {\n return _updateBlock(self._keys, inBlock, outBlock, true);\n }\n }\n });\n self._init = false;\n};\n\n/**\n * Initializes this DES algorithm by expanding its key.\n *\n * @param options the options to use.\n * key the key to use with this algorithm.\n * decrypt true if the algorithm should be initialized for decryption,\n * false for encryption.\n */\nforge.des.Algorithm.prototype.initialize = function(options) {\n if(this._init) {\n return;\n }\n\n var key = forge.util.createBuffer(options.key);\n if(this.name.indexOf('3DES') === 0) {\n if(key.length() !== 24) {\n throw new Error('Invalid Triple-DES key size: ' + key.length() * 8);\n }\n }\n\n // do key expansion to 16 or 48 subkeys (single or triple DES)\n this._keys = _createKeys(key);\n this._init = true;\n};\n\n/** Register DES algorithms **/\n\nregisterAlgorithm('DES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('DES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('DES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('DES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('DES-CTR', forge.cipher.modes.ctr);\n\nregisterAlgorithm('3DES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('3DES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('3DES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('3DES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('3DES-CTR', forge.cipher.modes.ctr);\n\nfunction registerAlgorithm(name, mode) {\n var factory = function() {\n return new forge.des.Algorithm(name, mode);\n };\n forge.cipher.registerAlgorithm(name, factory);\n}\n\n/** DES implementation **/\n\nvar spfunction1 = [0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004];\nvar spfunction2 = [-0x7fef7fe0,-0x7fff8000,0x8000,0x108020,0x100000,0x20,-0x7fefffe0,-0x7fff7fe0,-0x7fffffe0,-0x7fef7fe0,-0x7fef8000,-0x80000000,-0x7fff8000,0x100000,0x20,-0x7fefffe0,0x108000,0x100020,-0x7fff7fe0,0,-0x80000000,0x8000,0x108020,-0x7ff00000,0x100020,-0x7fffffe0,0,0x108000,0x8020,-0x7fef8000,-0x7ff00000,0x8020,0,0x108020,-0x7fefffe0,0x100000,-0x7fff7fe0,-0x7ff00000,-0x7fef8000,0x8000,-0x7ff00000,-0x7fff8000,0x20,-0x7fef7fe0,0x108020,0x20,0x8000,-0x80000000,0x8020,-0x7fef8000,0x100000,-0x7fffffe0,0x100020,-0x7fff7fe0,-0x7fffffe0,0x100020,0x108000,0,-0x7fff8000,0x8020,-0x80000000,-0x7fefffe0,-0x7fef7fe0,0x108000];\nvar spfunction3 = [0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200];\nvar spfunction4 = [0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080];\nvar spfunction5 = [0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100];\nvar spfunction6 = [0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010];\nvar spfunction7 = [0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002];\nvar spfunction8 = [0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000];\n\n/**\n * Create necessary sub keys.\n *\n * @param key the 64-bit or 192-bit key.\n *\n * @return the expanded keys.\n */\nfunction _createKeys(key) {\n var pc2bytes0 = [0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204],\n pc2bytes1 = [0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101],\n pc2bytes2 = [0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808],\n pc2bytes3 = [0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000],\n pc2bytes4 = [0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010],\n pc2bytes5 = [0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420],\n pc2bytes6 = [0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002],\n pc2bytes7 = [0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800],\n pc2bytes8 = [0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002],\n pc2bytes9 = [0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408],\n pc2bytes10 = [0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020],\n pc2bytes11 = [0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200],\n pc2bytes12 = [0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010],\n pc2bytes13 = [0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105];\n\n // how many iterations (1 for des, 3 for triple des)\n // changed by Paul 16/6/2007 to use Triple DES for 9+ byte keys\n var iterations = key.length() > 8 ? 3 : 1;\n\n // stores the return keys\n var keys = [];\n\n // now define the left shifts which need to be done\n var shifts = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0];\n\n var n = 0, tmp;\n for(var j = 0; j < iterations; j++) {\n var left = key.getInt32();\n var right = key.getInt32();\n\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n tmp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= tmp;\n right ^= (tmp << -16);\n\n tmp = ((left >>> 2) ^ right) & 0x33333333;\n right ^= tmp;\n left ^= (tmp << 2);\n\n tmp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= tmp;\n right ^= (tmp << -16);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n // right needs to be shifted and OR'd with last four bits of left\n tmp = (left << 8) | ((right >>> 20) & 0x000000f0);\n\n // left needs to be put upside down\n left = ((right << 24) | ((right << 8) & 0xff0000) |\n ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0));\n right = tmp;\n\n // now go through and perform these shifts on the left and right keys\n for(var i = 0; i < shifts.length; ++i) {\n //shift the keys either one or two bits to the left\n if(shifts[i]) {\n left = (left << 2) | (left >>> 26);\n right = (right << 2) | (right >>> 26);\n } else {\n left = (left << 1) | (left >>> 27);\n right = (right << 1) | (right >>> 27);\n }\n left &= -0xf;\n right &= -0xf;\n\n // now apply PC-2, in such a way that E is easier when encrypting or\n // decrypting this conversion will look like PC-2 except only the last 6\n // bits of each byte are used rather than 48 consecutive bits and the\n // order of lines will be according to how the S selection functions will\n // be applied: S2, S4, S6, S8, S1, S3, S5, S7\n var lefttmp = (\n pc2bytes0[left >>> 28] | pc2bytes1[(left >>> 24) & 0xf] |\n pc2bytes2[(left >>> 20) & 0xf] | pc2bytes3[(left >>> 16) & 0xf] |\n pc2bytes4[(left >>> 12) & 0xf] | pc2bytes5[(left >>> 8) & 0xf] |\n pc2bytes6[(left >>> 4) & 0xf]);\n var righttmp = (\n pc2bytes7[right >>> 28] | pc2bytes8[(right >>> 24) & 0xf] |\n pc2bytes9[(right >>> 20) & 0xf] | pc2bytes10[(right >>> 16) & 0xf] |\n pc2bytes11[(right >>> 12) & 0xf] | pc2bytes12[(right >>> 8) & 0xf] |\n pc2bytes13[(right >>> 4) & 0xf]);\n tmp = ((righttmp >>> 16) ^ lefttmp) & 0x0000ffff;\n keys[n++] = lefttmp ^ tmp;\n keys[n++] = righttmp ^ (tmp << 16);\n }\n }\n\n return keys;\n}\n\n/**\n * Updates a single block (1 byte) using DES. The update will either\n * encrypt or decrypt the block.\n *\n * @param keys the expanded keys.\n * @param input the input block (an array of 32-bit words).\n * @param output the updated output block.\n * @param decrypt true to decrypt the block, false to encrypt it.\n */\nfunction _updateBlock(keys, input, output, decrypt) {\n // set up loops for single or triple DES\n var iterations = keys.length === 32 ? 3 : 9;\n var looping;\n if(iterations === 3) {\n looping = decrypt ? [30, -2, -2] : [0, 32, 2];\n } else {\n looping = (decrypt ?\n [94, 62, -2, 32, 64, 2, 30, -2, -2] :\n [0, 32, 2, 62, 30, -2, 64, 96, 2]);\n }\n\n var tmp;\n\n var left = input[0];\n var right = input[1];\n\n // first each 64 bit chunk of the message must be permuted according to IP\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n tmp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= tmp;\n left ^= (tmp << 16);\n\n tmp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= tmp;\n right ^= (tmp << 2);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n // rotate left 1 bit\n left = ((left << 1) | (left >>> 31));\n right = ((right << 1) | (right >>> 31));\n\n for(var j = 0; j < iterations; j += 3) {\n var endloop = looping[j + 1];\n var loopinc = looping[j + 2];\n\n // now go through and perform the encryption or decryption\n for(var i = looping[j]; i != endloop; i += loopinc) {\n var right1 = right ^ keys[i];\n var right2 = ((right >>> 4) | (right << 28)) ^ keys[i + 1];\n\n // passing these bytes through the S selection functions\n tmp = left;\n left = right;\n right = tmp ^ (\n spfunction2[(right1 >>> 24) & 0x3f] |\n spfunction4[(right1 >>> 16) & 0x3f] |\n spfunction6[(right1 >>> 8) & 0x3f] |\n spfunction8[right1 & 0x3f] |\n spfunction1[(right2 >>> 24) & 0x3f] |\n spfunction3[(right2 >>> 16) & 0x3f] |\n spfunction5[(right2 >>> 8) & 0x3f] |\n spfunction7[right2 & 0x3f]);\n }\n // unreverse left and right\n tmp = left;\n left = right;\n right = tmp;\n }\n\n // rotate right 1 bit\n left = ((left >>> 1) | (left << 31));\n right = ((right >>> 1) | (right << 31));\n\n // now perform IP-1, which is IP in the opposite direction\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= tmp;\n right ^= (tmp << 2);\n\n tmp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= tmp;\n left ^= (tmp << 16);\n\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n output[0] = left;\n output[1] = right;\n}\n\n/**\n * Deprecated. Instead, use:\n *\n * forge.cipher.createCipher('DES-', key);\n * forge.cipher.createDecipher('DES-', key);\n *\n * Creates a deprecated DES cipher object. This object's mode will default to\n * CBC (cipher-block-chaining).\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param options the options to use.\n * key the symmetric key to use (64 or 192 bits).\n * output the buffer to write to.\n * decrypt true for decryption, false for encryption.\n * mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nfunction _createCipher(options) {\n options = options || {};\n var mode = (options.mode || 'CBC').toUpperCase();\n var algorithm = 'DES-' + mode;\n\n var cipher;\n if(options.decrypt) {\n cipher = forge.cipher.createDecipher(algorithm, options.key);\n } else {\n cipher = forge.cipher.createCipher(algorithm, options.key);\n }\n\n // backwards compatible start API\n var start = cipher.start;\n cipher.start = function(iv, options) {\n // backwards compatibility: support second arg as output buffer\n var output = null;\n if(options instanceof forge.util.ByteBuffer) {\n output = options;\n options = {};\n }\n options = options || {};\n options.output = output;\n options.iv = iv;\n start.call(cipher, options);\n };\n\n return cipher;\n}\n","/**\n * JavaScript implementation of Ed25519.\n *\n * Copyright (c) 2017-2019 Digital Bazaar, Inc.\n *\n * This implementation is based on the most excellent TweetNaCl which is\n * in the public domain. Many thanks to its contributors:\n *\n * https://github.com/dchest/tweetnacl-js\n */\nvar forge = require('./forge');\nrequire('./jsbn');\nrequire('./random');\nrequire('./sha512');\nrequire('./util');\nvar asn1Validator = require('./asn1-validator');\nvar publicKeyValidator = asn1Validator.publicKeyValidator;\nvar privateKeyValidator = asn1Validator.privateKeyValidator;\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\nvar ByteBuffer = forge.util.ByteBuffer;\nvar NativeBuffer = typeof Buffer === 'undefined' ? Uint8Array : Buffer;\n\n/*\n * Ed25519 algorithms, see RFC 8032:\n * https://tools.ietf.org/html/rfc8032\n */\nforge.pki = forge.pki || {};\nmodule.exports = forge.pki.ed25519 = forge.ed25519 = forge.ed25519 || {};\nvar ed25519 = forge.ed25519;\n\ned25519.constants = {};\ned25519.constants.PUBLIC_KEY_BYTE_LENGTH = 32;\ned25519.constants.PRIVATE_KEY_BYTE_LENGTH = 64;\ned25519.constants.SEED_BYTE_LENGTH = 32;\ned25519.constants.SIGN_BYTE_LENGTH = 64;\ned25519.constants.HASH_BYTE_LENGTH = 64;\n\ned25519.generateKeyPair = function(options) {\n options = options || {};\n var seed = options.seed;\n if(seed === undefined) {\n // generate seed\n seed = forge.random.getBytesSync(ed25519.constants.SEED_BYTE_LENGTH);\n } else if(typeof seed === 'string') {\n if(seed.length !== ed25519.constants.SEED_BYTE_LENGTH) {\n throw new TypeError(\n '\"seed\" must be ' + ed25519.constants.SEED_BYTE_LENGTH +\n ' bytes in length.');\n }\n } else if(!(seed instanceof Uint8Array)) {\n throw new TypeError(\n '\"seed\" must be a node.js Buffer, Uint8Array, or a binary string.');\n }\n\n seed = messageToNativeBuffer({message: seed, encoding: 'binary'});\n\n var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n var sk = new NativeBuffer(ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n for(var i = 0; i < 32; ++i) {\n sk[i] = seed[i];\n }\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, privateKey: sk};\n};\n\n/**\n * Converts a private key from a RFC8410 ASN.1 encoding.\n *\n * @param obj - The asn1 representation of a private key.\n *\n * @returns {Object} keyInfo - The key information.\n * @returns {Buffer|Uint8Array} keyInfo.privateKeyBytes - 32 private key bytes.\n */\ned25519.privateKeyFromAsn1 = function(obj) {\n var capture = {};\n var errors = [];\n var valid = forge.asn1.validate(obj, privateKeyValidator, capture, errors);\n if(!valid) {\n var error = new Error('Invalid Key.');\n error.errors = errors;\n throw error;\n }\n var oid = forge.asn1.derToOid(capture.privateKeyOid);\n var ed25519Oid = forge.oids.EdDSA25519;\n if(oid !== ed25519Oid) {\n throw new Error('Invalid OID \"' + oid + '\"; OID must be \"' +\n ed25519Oid + '\".');\n }\n var privateKey = capture.privateKey;\n // manually extract the private key bytes from nested octet string, see FIXME:\n // https://github.com/digitalbazaar/forge/blob/master/lib/asn1.js#L542\n var privateKeyBytes = messageToNativeBuffer({\n message: forge.asn1.fromDer(privateKey).value,\n encoding: 'binary'\n });\n // TODO: RFC8410 specifies a format for encoding the public key bytes along\n // with the private key bytes. `publicKeyBytes` can be returned in the\n // future. https://tools.ietf.org/html/rfc8410#section-10.3\n return {privateKeyBytes: privateKeyBytes};\n};\n\n/**\n * Converts a public key from a RFC8410 ASN.1 encoding.\n *\n * @param obj - The asn1 representation of a public key.\n *\n * @return {Buffer|Uint8Array} - 32 public key bytes.\n */\ned25519.publicKeyFromAsn1 = function(obj) {\n // get SubjectPublicKeyInfo\n var capture = {};\n var errors = [];\n var valid = forge.asn1.validate(obj, publicKeyValidator, capture, errors);\n if(!valid) {\n var error = new Error('Invalid Key.');\n error.errors = errors;\n throw error;\n }\n var oid = forge.asn1.derToOid(capture.publicKeyOid);\n var ed25519Oid = forge.oids.EdDSA25519;\n if(oid !== ed25519Oid) {\n throw new Error('Invalid OID \"' + oid + '\"; OID must be \"' +\n ed25519Oid + '\".');\n }\n var publicKeyBytes = capture.ed25519PublicKey;\n if(publicKeyBytes.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) {\n throw new Error('Key length is invalid.');\n }\n return messageToNativeBuffer({\n message: publicKeyBytes,\n encoding: 'binary'\n });\n};\n\ned25519.publicKeyFromPrivateKey = function(options) {\n options = options || {};\n var privateKey = messageToNativeBuffer({\n message: options.privateKey, encoding: 'binary'\n });\n if(privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.privateKey\" must have a byte length of ' +\n ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n }\n\n var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n for(var i = 0; i < pk.length; ++i) {\n pk[i] = privateKey[32 + i];\n }\n return pk;\n};\n\ned25519.sign = function(options) {\n options = options || {};\n var msg = messageToNativeBuffer(options);\n var privateKey = messageToNativeBuffer({\n message: options.privateKey,\n encoding: 'binary'\n });\n if(privateKey.length === ed25519.constants.SEED_BYTE_LENGTH) {\n var keyPair = ed25519.generateKeyPair({seed: privateKey});\n privateKey = keyPair.privateKey;\n } else if(privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.privateKey\" must have a byte length of ' +\n ed25519.constants.SEED_BYTE_LENGTH + ' or ' +\n ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n }\n\n var signedMsg = new NativeBuffer(\n ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n crypto_sign(signedMsg, msg, msg.length, privateKey);\n\n var sig = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH);\n for(var i = 0; i < sig.length; ++i) {\n sig[i] = signedMsg[i];\n }\n return sig;\n};\n\ned25519.verify = function(options) {\n options = options || {};\n var msg = messageToNativeBuffer(options);\n if(options.signature === undefined) {\n throw new TypeError(\n '\"options.signature\" must be a node.js Buffer, a Uint8Array, a forge ' +\n 'ByteBuffer, or a binary string.');\n }\n var sig = messageToNativeBuffer({\n message: options.signature,\n encoding: 'binary'\n });\n if(sig.length !== ed25519.constants.SIGN_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.signature\" must have a byte length of ' +\n ed25519.constants.SIGN_BYTE_LENGTH);\n }\n var publicKey = messageToNativeBuffer({\n message: options.publicKey,\n encoding: 'binary'\n });\n if(publicKey.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.publicKey\" must have a byte length of ' +\n ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n }\n\n var sm = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n var m = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n var i;\n for(i = 0; i < ed25519.constants.SIGN_BYTE_LENGTH; ++i) {\n sm[i] = sig[i];\n }\n for(i = 0; i < msg.length; ++i) {\n sm[i + ed25519.constants.SIGN_BYTE_LENGTH] = msg[i];\n }\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nfunction messageToNativeBuffer(options) {\n var message = options.message;\n if(message instanceof Uint8Array || message instanceof NativeBuffer) {\n return message;\n }\n\n var encoding = options.encoding;\n if(message === undefined) {\n if(options.md) {\n // TODO: more rigorous validation that `md` is a MessageDigest\n message = options.md.digest().getBytes();\n encoding = 'binary';\n } else {\n throw new TypeError('\"options.message\" or \"options.md\" not specified.');\n }\n }\n\n if(typeof message === 'string' && !encoding) {\n throw new TypeError('\"options.encoding\" must be \"binary\" or \"utf8\".');\n }\n\n if(typeof message === 'string') {\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(message, encoding);\n }\n message = new ByteBuffer(message, encoding);\n } else if(!(message instanceof ByteBuffer)) {\n throw new TypeError(\n '\"options.message\" must be a node.js Buffer, a Uint8Array, a forge ' +\n 'ByteBuffer, or a string with \"options.encoding\" specifying its ' +\n 'encoding.');\n }\n\n // convert to native buffer\n var buffer = new NativeBuffer(message.length());\n for(var i = 0; i < buffer.length; ++i) {\n buffer[i] = message.at(i);\n }\n return buffer;\n}\n\nvar gf0 = gf();\nvar gf1 = gf([1]);\nvar D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]);\nvar D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]);\nvar X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]);\nvar Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]);\nvar L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,\n 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\nvar I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\n// TODO: update forge buffer implementation to use `Buffer` or `Uint8Array`,\n// whichever is available, to improve performance\nfunction sha512(msg, msgLen) {\n // Note: `out` and `msg` are NativeBuffer\n var md = forge.md.sha512.create();\n var buffer = new ByteBuffer(msg);\n md.update(buffer.getBytes(msgLen), 'binary');\n var hash = md.digest().getBytes();\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(hash, 'binary');\n }\n var out = new NativeBuffer(ed25519.constants.HASH_BYTE_LENGTH);\n for(var i = 0; i < 64; ++i) {\n out[i] = hash.charCodeAt(i);\n }\n return out;\n}\n\nfunction crypto_sign_keypair(pk, sk) {\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n var d = sha512(sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for(i = 0; i < 32; ++i) {\n sk[i + 32] = pk[i];\n }\n return 0;\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n var d = sha512(sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for(i = 0; i < n; ++i) {\n sm[64 + i] = m[i];\n }\n for(i = 0; i < 32; ++i) {\n sm[32 + i] = d[32 + i];\n }\n\n var r = sha512(sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for(i = 32; i < 64; ++i) {\n sm[i] = sk[i];\n }\n var h = sha512(sm, n + 64);\n reduce(h);\n\n for(i = 32; i < 64; ++i) {\n x[i] = 0;\n }\n for(i = 0; i < 32; ++i) {\n x[i] = r[i];\n }\n for(i = 0; i < 32; ++i) {\n for(j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new NativeBuffer(32);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if(n < 64) {\n return -1;\n }\n\n if(unpackneg(q, pk)) {\n return -1;\n }\n\n for(i = 0; i < n; ++i) {\n m[i] = sm[i];\n }\n for(i = 0; i < 32; ++i) {\n m[i + 32] = pk[i];\n }\n var h = sha512(m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if(crypto_verify_32(sm, 0, t, 0)) {\n for(i = 0; i < n; ++i) {\n m[i] = 0;\n }\n return -1;\n }\n\n for(i = 0; i < n; ++i) {\n m[i] = sm[i + 64];\n }\n mlen = n;\n return mlen;\n}\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for(i = 63; i >= 32; --i) {\n carry = 0;\n for(j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for(j = 0; j < 32; ++j) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for(j = 0; j < 32; ++j) {\n x[j] -= carry * L[j];\n }\n for(i = 0; i < 32; ++i) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64);\n for(var i = 0; i < 64; ++i) {\n x[i] = r[i];\n r[i] = 0;\n }\n modL(r, x);\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n for(var i = 0; i < 4; ++i) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for(i = 0; i < 16; ++i) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for(j = 0; j < 2; ++j) {\n m[0] = t[0] - 0xffed;\n for(i = 1; i < 15; ++i) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if(neq25519(chk, num)) {\n M(r[0], r[0], I);\n }\n\n S(chk, r[0]);\n M(chk, chk, den);\n if(neq25519(chk, num)) {\n return -1;\n }\n\n if(par25519(r[0]) === (p[31] >> 7)) {\n Z(r[0], gf0, r[0]);\n }\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for(i = 0; i < 16; ++i) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; ++a) {\n c[a] = i[a];\n }\n for(a = 250; a >= 0; --a) {\n S(c, c);\n if(a !== 1) {\n M(c, c, i);\n }\n }\n for(a = 0; a < 16; ++a) {\n o[a] = c[a];\n }\n}\n\nfunction neq25519(a, b) {\n var c = new NativeBuffer(32);\n var d = new NativeBuffer(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x, xi, y, yi, 32);\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i, d = 0;\n for(i = 0; i < n; ++i) {\n d |= x[xi + i] ^ y[yi + i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction par25519(a) {\n var d = new NativeBuffer(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for(i = 255; i >= 0; --i) {\n b = (s[(i / 8)|0] >> (i & 7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction set25519(r, a) {\n var i;\n for(i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; ++a) {\n c[a] = i[a];\n }\n for(a = 253; a >= 0; --a) {\n S(c, c);\n if(a !== 2 && a !== 4) {\n M(c, c, i);\n }\n }\n for(a = 0; a < 16; ++a) {\n o[a] = c[a];\n }\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for(i = 0; i < 16; ++i) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b - 1);\n for(var i = 0; i < 16; ++i) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction gf(init) {\n var i, r = new Float64Array(16);\n if(init) {\n for(i = 0; i < init.length; ++i) {\n r[i] = init[i];\n }\n }\n return r;\n}\n\nfunction A(o, a, b) {\n for(var i = 0; i < 16; ++i) {\n o[i] = a[i] + b[i];\n }\n}\n\nfunction Z(o, a, b) {\n for(var i = 0; i < 16; ++i) {\n o[i] = a[i] - b[i];\n }\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n","/**\n * Node.js module for Forge.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2016 Digital Bazaar, Inc.\n */\nmodule.exports = {\n // default options\n options: {\n usePureJavaScript: false\n }\n};\n","/**\n * Hash-based Message Authentication Code implementation. Requires a message\n * digest object that can be obtained, for example, from forge.md.sha1 or\n * forge.md.md5.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2012 Digital Bazaar, Inc. All rights reserved.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\n/* HMAC API */\nvar hmac = module.exports = forge.hmac = forge.hmac || {};\n\n/**\n * Creates an HMAC object that uses the given message digest object.\n *\n * @return an HMAC object.\n */\nhmac.create = function() {\n // the hmac key to use\n var _key = null;\n\n // the message digest to use\n var _md = null;\n\n // the inner padding\n var _ipadding = null;\n\n // the outer padding\n var _opadding = null;\n\n // hmac context\n var ctx = {};\n\n /**\n * Starts or restarts the HMAC with the given key and message digest.\n *\n * @param md the message digest to use, null to reuse the previous one,\n * a string to use builtin 'sha1', 'md5', 'sha256'.\n * @param key the key to use as a string, array of bytes, byte buffer,\n * or null to reuse the previous key.\n */\n ctx.start = function(md, key) {\n if(md !== null) {\n if(typeof md === 'string') {\n // create builtin message digest\n md = md.toLowerCase();\n if(md in forge.md.algorithms) {\n _md = forge.md.algorithms[md].create();\n } else {\n throw new Error('Unknown hash algorithm \"' + md + '\"');\n }\n } else {\n // store message digest\n _md = md;\n }\n }\n\n if(key === null) {\n // reuse previous key\n key = _key;\n } else {\n if(typeof key === 'string') {\n // convert string into byte buffer\n key = forge.util.createBuffer(key);\n } else if(forge.util.isArray(key)) {\n // convert byte array into byte buffer\n var tmp = key;\n key = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n key.putByte(tmp[i]);\n }\n }\n\n // if key is longer than blocksize, hash it\n var keylen = key.length();\n if(keylen > _md.blockLength) {\n _md.start();\n _md.update(key.bytes());\n key = _md.digest();\n }\n\n // mix key into inner and outer padding\n // ipadding = [0x36 * blocksize] ^ key\n // opadding = [0x5C * blocksize] ^ key\n _ipadding = forge.util.createBuffer();\n _opadding = forge.util.createBuffer();\n keylen = key.length();\n for(var i = 0; i < keylen; ++i) {\n var tmp = key.at(i);\n _ipadding.putByte(0x36 ^ tmp);\n _opadding.putByte(0x5C ^ tmp);\n }\n\n // if key is shorter than blocksize, add additional padding\n if(keylen < _md.blockLength) {\n var tmp = _md.blockLength - keylen;\n for(var i = 0; i < tmp; ++i) {\n _ipadding.putByte(0x36);\n _opadding.putByte(0x5C);\n }\n }\n _key = key;\n _ipadding = _ipadding.bytes();\n _opadding = _opadding.bytes();\n }\n\n // digest is done like so: hash(opadding | hash(ipadding | message))\n\n // prepare to do inner hash\n // hash(ipadding | message)\n _md.start();\n _md.update(_ipadding);\n };\n\n /**\n * Updates the HMAC with the given message bytes.\n *\n * @param bytes the bytes to update with.\n */\n ctx.update = function(bytes) {\n _md.update(bytes);\n };\n\n /**\n * Produces the Message Authentication Code (MAC).\n *\n * @return a byte buffer containing the digest value.\n */\n ctx.getMac = function() {\n // digest is done like so: hash(opadding | hash(ipadding | message))\n // here we do the outer hashing\n var inner = _md.digest().bytes();\n _md.start();\n _md.update(_opadding);\n _md.update(inner);\n return _md.digest();\n };\n // alias for getMac\n ctx.digest = ctx.getMac;\n\n return ctx;\n};\n","/**\n * Node.js module for Forge.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2016 Digital Bazaar, Inc.\n */\nmodule.exports = require('./forge');\nrequire('./aes');\nrequire('./aesCipherSuites');\nrequire('./asn1');\nrequire('./cipher');\nrequire('./des');\nrequire('./ed25519');\nrequire('./hmac');\nrequire('./kem');\nrequire('./log');\nrequire('./md.all');\nrequire('./mgf1');\nrequire('./pbkdf2');\nrequire('./pem');\nrequire('./pkcs1');\nrequire('./pkcs12');\nrequire('./pkcs7');\nrequire('./pki');\nrequire('./prime');\nrequire('./prng');\nrequire('./pss');\nrequire('./random');\nrequire('./rc2');\nrequire('./ssh');\nrequire('./tls');\nrequire('./util');\n","// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n/*\nLicensing (LICENSE)\n-------------------\n\nThis software is covered under the following copyright:\n*/\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n/*\nAddress all questions regarding this license to:\n\n Tom Wu\n tjw@cs.Stanford.EDU\n*/\nvar forge = require('./forge');\n\nmodule.exports = forge.jsbn = forge.jsbn || {};\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary&0xffffff)==0xefcafe);\n\n// (public) Constructor\nfunction BigInteger(a,b,c) {\n this.data = [];\n if(a != null)\n if(\"number\" == typeof a) this.fromNumber(a,b,c);\n else if(b == null && \"string\" != typeof a) this.fromString(a,256);\n else this.fromString(a,b);\n}\nforge.jsbn.BigInteger = BigInteger;\n\n// return new, unset BigInteger\nfunction nbi() { return new BigInteger(null); }\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i,x,w,j,c,n) {\n while(--n >= 0) {\n var v = x*this.data[i++]+w.data[j]+c;\n c = Math.floor(v/0x4000000);\n w.data[j++] = v&0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i,x,w,j,c,n) {\n var xl = x&0x7fff, xh = x>>15;\n while(--n >= 0) {\n var l = this.data[i]&0x7fff;\n var h = this.data[i++]>>15;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x7fff)<<15)+w.data[j]+(c&0x3fffffff);\n c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);\n w.data[j++] = l&0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i,x,w,j,c,n) {\n var xl = x&0x3fff, xh = x>>14;\n while(--n >= 0) {\n var l = this.data[i]&0x3fff;\n var h = this.data[i++]>>14;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x3fff)<<14)+w.data[j]+c;\n c = (l>>28)+(m>>14)+xh*h;\n w.data[j++] = l&0xfffffff;\n }\n return c;\n}\n\n// node.js (no browser)\nif(typeof(navigator) === 'undefined')\n{\n BigInteger.prototype.am = am3;\n dbits = 28;\n} else if(j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if(j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else { // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\n\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1<= 0; --i) r.data[i] = this.data[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = (x<0)?-1:0;\n if(x > 0) this.data[0] = x;\n else if(x < -1) this.data[0] = x+this.DV;\n else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) { var r = nbi(); r.fromInt(i); return r; }\n\n// (protected) set from string and radix\nfunction bnpFromString(s,b) {\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 256) k = 8; // byte array\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else { this.fromRadix(s,b); return; }\n this.t = 0;\n this.s = 0;\n var i = s.length, mi = false, sh = 0;\n while(--i >= 0) {\n var x = (k==8)?s[i]&0xff:intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\") mi = true;\n continue;\n }\n mi = false;\n if(sh == 0)\n this.data[this.t++] = x;\n else if(sh+k > this.DB) {\n this.data[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh));\n } else\n this.data[this.t-1] |= x<= this.DB) sh -= this.DB;\n }\n if(k == 8 && (s[0]&0x80) != 0) {\n this.s = -1;\n if(sh > 0) this.data[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this.data[this.t-1] == c) --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if(this.s < 0) return \"-\"+this.negate().toString(b);\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else return this.toRadix(b);\n var km = (1< 0) {\n if(p < this.DB && (d = this.data[i]>>p) > 0) { m = true; r = int2char(d); }\n while(i >= 0) {\n if(p < k) {\n d = (this.data[i]&((1<>(p+=this.DB-k);\n } else {\n d = (this.data[i]>>(p-=k))&km;\n if(p <= 0) { p += this.DB; --i; }\n }\n if(d > 0) m = true;\n if(m) r += int2char(d);\n }\n }\n return m?r:\"0\";\n}\n\n// (public) -this\nfunction bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }\n\n// (public) |this|\nfunction bnAbs() { return (this.s<0)?this.negate():this; }\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s-a.s;\n if(r != 0) return r;\n var i = this.t;\n r = i-a.t;\n if(r != 0) return (this.s<0)?-r:r;\n while(--i >= 0) if((r=this.data[i]-a.data[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1, t;\n if((t=x>>>16) != 0) { x = t; r += 16; }\n if((t=x>>8) != 0) { x = t; r += 8; }\n if((t=x>>4) != 0) { x = t; r += 4; }\n if((t=x>>2) != 0) { x = t; r += 2; }\n if((t=x>>1) != 0) { x = t; r += 1; }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if(this.t <= 0) return 0;\n return this.DB*(this.t-1)+nbits(this.data[this.t-1]^(this.s&this.DM));\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n,r) {\n var i;\n for(i = this.t-1; i >= 0; --i) r.data[i+n] = this.data[i];\n for(i = n-1; i >= 0; --i) r.data[i] = 0;\n r.t = this.t+n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n,r) {\n for(var i = n; i < this.t; ++i) r.data[i-n] = this.data[i];\n r.t = Math.max(this.t-n,0);\n r.s = this.s;\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n,r) {\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<= 0; --i) {\n r.data[i+ds+1] = (this.data[i]>>cbs)|c;\n c = (this.data[i]&bm)<= 0; --i) r.data[i] = 0;\n r.data[ds] = c;\n r.t = this.t+ds+1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n,r) {\n r.s = this.s;\n var ds = Math.floor(n/this.DB);\n if(ds >= this.t) { r.t = 0; return; }\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<>bs;\n for(var i = ds+1; i < this.t; ++i) {\n r.data[i-ds-1] |= (this.data[i]&bm)<>bs;\n }\n if(bs > 0) r.data[this.t-ds-1] |= (this.s&bm)<>= this.DB;\n }\n if(a.t < this.t) {\n c -= a.s;\n while(i < this.t) {\n c += this.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while(i < a.t) {\n c -= a.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c<0)?-1:0;\n if(c < -1) r.data[i++] = this.DV+c;\n else if(c > 0) r.data[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a,r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i+y.t;\n while(--i >= 0) r.data[i] = 0;\n for(i = 0; i < y.t; ++i) r.data[i+x.t] = x.am(0,y.data[i],r,i,0,x.t);\n r.s = 0;\n r.clamp();\n if(this.s != a.s) BigInteger.ZERO.subTo(r,r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2*x.t;\n while(--i >= 0) r.data[i] = 0;\n for(i = 0; i < x.t-1; ++i) {\n var c = x.am(i,x.data[i],r,2*i,0,1);\n if((r.data[i+x.t]+=x.am(i+1,2*x.data[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {\n r.data[i+x.t] -= x.DV;\n r.data[i+x.t+1] = 1;\n }\n }\n if(r.t > 0) r.data[r.t-1] += x.am(i,x.data[i],r,2*i,0,1);\n r.s = 0;\n r.clamp();\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m,q,r) {\n var pm = m.abs();\n if(pm.t <= 0) return;\n var pt = this.abs();\n if(pt.t < pm.t) {\n if(q != null) q.fromInt(0);\n if(r != null) this.copyTo(r);\n return;\n }\n if(r == null) r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB-nbits(pm.data[pm.t-1]);\t// normalize modulus\n if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } else { pm.copyTo(y); pt.copyTo(r); }\n var ys = y.t;\n var y0 = y.data[ys-1];\n if(y0 == 0) return;\n var yt = y0*(1<1)?y.data[ys-2]>>this.F2:0);\n var d1 = this.FV/yt, d2 = (1<= 0) {\n r.data[r.t++] = 1;\n r.subTo(t,r);\n }\n BigInteger.ONE.dlShiftTo(ys,t);\n t.subTo(y,y);\t// \"negative\" y so we can replace sub with am later\n while(y.t < ys) y.data[y.t++] = 0;\n while(--j >= 0) {\n // Estimate quotient digit\n var qd = (r.data[--i]==y0)?this.DM:Math.floor(r.data[i]*d1+(r.data[i-1]+e)*d2);\n if((r.data[i]+=y.am(0,qd,r,j,0,ys)) < qd) {\t// Try it out\n y.dlShiftTo(j,t);\n r.subTo(t,r);\n while(r.data[i] < --qd) r.subTo(t,r);\n }\n }\n if(q != null) {\n r.drShiftTo(ys,q);\n if(ts != ms) BigInteger.ZERO.subTo(q,q);\n }\n r.t = ys;\n r.clamp();\n if(nsh > 0) r.rShiftTo(nsh,r);\t// Denormalize remainder\n if(ts < 0) BigInteger.ZERO.subTo(r,r);\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a,null,r);\n if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);\n return r;\n}\n\n// Modular reduction using \"classic\" algorithm\nfunction Classic(m) { this.m = m; }\nfunction cConvert(x) {\n if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);\n else return x;\n}\nfunction cRevert(x) { return x; }\nfunction cReduce(x) { x.divRemTo(this.m,null,x); }\nfunction cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\nfunction cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\nClassic.prototype.convert = cConvert;\nClassic.prototype.revert = cRevert;\nClassic.prototype.reduce = cReduce;\nClassic.prototype.mulTo = cMulTo;\nClassic.prototype.sqrTo = cSqrTo;\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if(this.t < 1) return 0;\n var x = this.data[0];\n if((x&1) == 0) return 0;\n var y = x&3;\t\t// y == 1/x mod 2^2\n y = (y*(2-(x&0xf)*y))&0xf;\t// y == 1/x mod 2^4\n y = (y*(2-(x&0xff)*y))&0xff;\t// y == 1/x mod 2^8\n y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;\t// y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y*(2-x*y%this.DV))%this.DV;\t\t// y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y>0)?this.DV-y:-y;\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp&0x7fff;\n this.mph = this.mp>>15;\n this.um = (1<<(m.DB-15))-1;\n this.mt2 = 2*m.t;\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t,r);\n r.divRemTo(this.m,null,r);\n if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);\n return r;\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while(x.t <= this.mt2)\t// pad x so am has enough room later\n x.data[x.t++] = 0;\n for(var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x.data[i]*mp mod DV\n var j = x.data[i]&0x7fff;\n var u0 = (j*this.mpl+(((j*this.mph+(x.data[i]>>15)*this.mpl)&this.um)<<15))&x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i+this.m.t;\n x.data[j] += this.m.am(0,u0,x,i,0,this.m.t);\n // propagate carry\n while(x.data[j] >= x.DV) { x.data[j] -= x.DV; x.data[++j]++; }\n }\n x.clamp();\n x.drShiftTo(this.m.t,x);\n if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n\n// (protected) true iff this is even\nfunction bnpIsEven() { return ((this.t>0)?(this.data[0]&1):this.s) == 0; }\n\n// (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\nfunction bnpExp(e,z) {\n if(e > 0xffffffff || e < 1) return BigInteger.ONE;\n var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;\n g.copyTo(r);\n while(--i >= 0) {\n z.sqrTo(r,r2);\n if((e&(1< 0) z.mulTo(r2,g,r);\n else { var t = r; r = r2; r2 = t; }\n }\n return z.revert(r);\n}\n\n// (public) this^e % m, 0 <= e < 2^32\nfunction bnModPowInt(e,m) {\n var z;\n if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);\n return this.exp(e,z);\n}\n\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.isEven = bnpIsEven;\nBigInteger.prototype.exp = bnpExp;\n\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.modPowInt = bnModPowInt;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n// jsbn2 lib\n\n//Copyright (c) 2005-2009 Tom Wu\n//All Rights Reserved.\n//See \"LICENSE\" for details (See jsbn.js for LICENSE).\n\n//Extended JavaScript BN functions, required for RSA private ops.\n\n//Version 1.1: new BigInteger(\"0\", 10) returns \"proper\" zero\n\n//(public)\nfunction bnClone() { var r = nbi(); this.copyTo(r); return r; }\n\n//(public) return value as integer\nfunction bnIntValue() {\nif(this.s < 0) {\n if(this.t == 1) return this.data[0]-this.DV;\n else if(this.t == 0) return -1;\n} else if(this.t == 1) return this.data[0];\nelse if(this.t == 0) return 0;\n// assumes 16 < DB < 32\nreturn ((this.data[1]&((1<<(32-this.DB))-1))<>24; }\n\n//(public) return value as short (assumes DB>=16)\nfunction bnShortValue() { return (this.t==0)?this.s:(this.data[0]<<16)>>16; }\n\n//(protected) return x s.t. r^x < DV\nfunction bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }\n\n//(public) 0 if this == 0, 1 if this > 0\nfunction bnSigNum() {\nif(this.s < 0) return -1;\nelse if(this.t <= 0 || (this.t == 1 && this.data[0] <= 0)) return 0;\nelse return 1;\n}\n\n//(protected) convert to radix string\nfunction bnpToRadix(b) {\nif(b == null) b = 10;\nif(this.signum() == 0 || b < 2 || b > 36) return \"0\";\nvar cs = this.chunkSize(b);\nvar a = Math.pow(b,cs);\nvar d = nbv(a), y = nbi(), z = nbi(), r = \"\";\nthis.divRemTo(d,y,z);\nwhile(y.signum() > 0) {\n r = (a+z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d,y,z);\n}\nreturn z.intValue().toString(b) + r;\n}\n\n//(protected) convert from radix string\nfunction bnpFromRadix(s,b) {\nthis.fromInt(0);\nif(b == null) b = 10;\nvar cs = this.chunkSize(b);\nvar d = Math.pow(b,cs), mi = false, j = 0, w = 0;\nfor(var i = 0; i < s.length; ++i) {\n var x = intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\" && this.signum() == 0) mi = true;\n continue;\n }\n w = b*w+x;\n if(++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w,0);\n j = 0;\n w = 0;\n }\n}\nif(j > 0) {\n this.dMultiply(Math.pow(b,j));\n this.dAddOffset(w,0);\n}\nif(mi) BigInteger.ZERO.subTo(this,this);\n}\n\n//(protected) alternate constructor\nfunction bnpFromNumber(a,b,c) {\nif(\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if(a < 2) this.fromInt(1);\n else {\n this.fromNumber(a,c);\n if(!this.testBit(a-1)) // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);\n if(this.isEven()) this.dAddOffset(1,0); // force odd\n while(!this.isProbablePrime(b)) {\n this.dAddOffset(2,0);\n if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);\n }\n }\n} else {\n // new BigInteger(int,RNG)\n var x = new Array(), t = a&7;\n x.length = (a>>3)+1;\n b.nextBytes(x);\n if(t > 0) x[0] &= ((1< 0) {\n if(p < this.DB && (d = this.data[i]>>p) != (this.s&this.DM)>>p)\n r[k++] = d|(this.s<<(this.DB-p));\n while(i >= 0) {\n if(p < 8) {\n d = (this.data[i]&((1<>(p+=this.DB-8);\n } else {\n d = (this.data[i]>>(p-=8))&0xff;\n if(p <= 0) { p += this.DB; --i; }\n }\n if((d&0x80) != 0) d |= -256;\n if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;\n if(k > 0 || d != this.s) r[k++] = d;\n }\n}\nreturn r;\n}\n\nfunction bnEquals(a) { return(this.compareTo(a)==0); }\nfunction bnMin(a) { return(this.compareTo(a)<0)?this:a; }\nfunction bnMax(a) { return(this.compareTo(a)>0)?this:a; }\n\n//(protected) r = this op a (bitwise)\nfunction bnpBitwiseTo(a,op,r) {\nvar i, f, m = Math.min(a.t,this.t);\nfor(i = 0; i < m; ++i) r.data[i] = op(this.data[i],a.data[i]);\nif(a.t < this.t) {\n f = a.s&this.DM;\n for(i = m; i < this.t; ++i) r.data[i] = op(this.data[i],f);\n r.t = this.t;\n} else {\n f = this.s&this.DM;\n for(i = m; i < a.t; ++i) r.data[i] = op(f,a.data[i]);\n r.t = a.t;\n}\nr.s = op(this.s,a.s);\nr.clamp();\n}\n\n//(public) this & a\nfunction op_and(x,y) { return x&y; }\nfunction bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }\n\n//(public) this | a\nfunction op_or(x,y) { return x|y; }\nfunction bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }\n\n//(public) this ^ a\nfunction op_xor(x,y) { return x^y; }\nfunction bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }\n\n//(public) this & ~a\nfunction op_andnot(x,y) { return x&~y; }\nfunction bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }\n\n//(public) ~this\nfunction bnNot() {\nvar r = nbi();\nfor(var i = 0; i < this.t; ++i) r.data[i] = this.DM&~this.data[i];\nr.t = this.t;\nr.s = ~this.s;\nreturn r;\n}\n\n//(public) this << n\nfunction bnShiftLeft(n) {\nvar r = nbi();\nif(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);\nreturn r;\n}\n\n//(public) this >> n\nfunction bnShiftRight(n) {\nvar r = nbi();\nif(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);\nreturn r;\n}\n\n//return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\nif(x == 0) return -1;\nvar r = 0;\nif((x&0xffff) == 0) { x >>= 16; r += 16; }\nif((x&0xff) == 0) { x >>= 8; r += 8; }\nif((x&0xf) == 0) { x >>= 4; r += 4; }\nif((x&3) == 0) { x >>= 2; r += 2; }\nif((x&1) == 0) ++r;\nreturn r;\n}\n\n//(public) returns index of lowest 1-bit (or -1 if none)\nfunction bnGetLowestSetBit() {\nfor(var i = 0; i < this.t; ++i)\n if(this.data[i] != 0) return i*this.DB+lbit(this.data[i]);\nif(this.s < 0) return this.t*this.DB;\nreturn -1;\n}\n\n//return number of 1 bits in x\nfunction cbit(x) {\nvar r = 0;\nwhile(x != 0) { x &= x-1; ++r; }\nreturn r;\n}\n\n//(public) return number of set bits\nfunction bnBitCount() {\nvar r = 0, x = this.s&this.DM;\nfor(var i = 0; i < this.t; ++i) r += cbit(this.data[i]^x);\nreturn r;\n}\n\n//(public) true iff nth bit is set\nfunction bnTestBit(n) {\nvar j = Math.floor(n/this.DB);\nif(j >= this.t) return(this.s!=0);\nreturn((this.data[j]&(1<<(n%this.DB)))!=0);\n}\n\n//(protected) this op (1<>= this.DB;\n}\nif(a.t < this.t) {\n c += a.s;\n while(i < this.t) {\n c += this.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n} else {\n c += this.s;\n while(i < a.t) {\n c += a.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += a.s;\n}\nr.s = (c<0)?-1:0;\nif(c > 0) r.data[i++] = c;\nelse if(c < -1) r.data[i++] = this.DV+c;\nr.t = i;\nr.clamp();\n}\n\n//(public) this + a\nfunction bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }\n\n//(public) this - a\nfunction bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }\n\n//(public) this * a\nfunction bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }\n\n//(public) this / a\nfunction bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }\n\n//(public) this % a\nfunction bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }\n\n//(public) [this/a,this%a]\nfunction bnDivideAndRemainder(a) {\nvar q = nbi(), r = nbi();\nthis.divRemTo(a,q,r);\nreturn new Array(q,r);\n}\n\n//(protected) this *= n, this >= 0, 1 < n < DV\nfunction bnpDMultiply(n) {\nthis.data[this.t] = this.am(0,n-1,this,0,0,this.t);\n++this.t;\nthis.clamp();\n}\n\n//(protected) this += n << w words, this >= 0\nfunction bnpDAddOffset(n,w) {\nif(n == 0) return;\nwhile(this.t <= w) this.data[this.t++] = 0;\nthis.data[w] += n;\nwhile(this.data[w] >= this.DV) {\n this.data[w] -= this.DV;\n if(++w >= this.t) this.data[this.t++] = 0;\n ++this.data[w];\n}\n}\n\n//A \"null\" reducer\nfunction NullExp() {}\nfunction nNop(x) { return x; }\nfunction nMulTo(x,y,r) { x.multiplyTo(y,r); }\nfunction nSqrTo(x,r) { x.squareTo(r); }\n\nNullExp.prototype.convert = nNop;\nNullExp.prototype.revert = nNop;\nNullExp.prototype.mulTo = nMulTo;\nNullExp.prototype.sqrTo = nSqrTo;\n\n//(public) this^e\nfunction bnPow(e) { return this.exp(e,new NullExp()); }\n\n//(protected) r = lower n words of \"this * a\", a.t <= n\n//\"this\" should be the larger one if appropriate.\nfunction bnpMultiplyLowerTo(a,n,r) {\nvar i = Math.min(this.t+a.t,n);\nr.s = 0; // assumes a,this >= 0\nr.t = i;\nwhile(i > 0) r.data[--i] = 0;\nvar j;\nfor(j = r.t-this.t; i < j; ++i) r.data[i+this.t] = this.am(0,a.data[i],r,i,0,this.t);\nfor(j = Math.min(a.t,n); i < j; ++i) this.am(0,a.data[i],r,i,0,n-i);\nr.clamp();\n}\n\n//(protected) r = \"this * a\" without lower n words, n > 0\n//\"this\" should be the larger one if appropriate.\nfunction bnpMultiplyUpperTo(a,n,r) {\n--n;\nvar i = r.t = this.t+a.t-n;\nr.s = 0; // assumes a,this >= 0\nwhile(--i >= 0) r.data[i] = 0;\nfor(i = Math.max(n-this.t,0); i < a.t; ++i)\n r.data[this.t+i-n] = this.am(n-i,a.data[i],r,0,0,this.t+i-n);\nr.clamp();\nr.drShiftTo(1,r);\n}\n\n//Barrett modular reduction\nfunction Barrett(m) {\n// setup Barrett\nthis.r2 = nbi();\nthis.q3 = nbi();\nBigInteger.ONE.dlShiftTo(2*m.t,this.r2);\nthis.mu = this.r2.divide(m);\nthis.m = m;\n}\n\nfunction barrettConvert(x) {\nif(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);\nelse if(x.compareTo(this.m) < 0) return x;\nelse { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }\n}\n\nfunction barrettRevert(x) { return x; }\n\n//x = x mod m (HAC 14.42)\nfunction barrettReduce(x) {\nx.drShiftTo(this.m.t-1,this.r2);\nif(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }\nthis.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);\nthis.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);\nwhile(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);\nx.subTo(this.r2,x);\nwhile(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n}\n\n//r = x^2 mod m; x != r\nfunction barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n//r = x*y mod m; x,y != r\nfunction barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\nBarrett.prototype.convert = barrettConvert;\nBarrett.prototype.revert = barrettRevert;\nBarrett.prototype.reduce = barrettReduce;\nBarrett.prototype.mulTo = barrettMulTo;\nBarrett.prototype.sqrTo = barrettSqrTo;\n\n//(public) this^e % m (HAC 14.85)\nfunction bnModPow(e,m) {\nvar i = e.bitLength(), k, r = nbv(1), z;\nif(i <= 0) return r;\nelse if(i < 18) k = 1;\nelse if(i < 48) k = 3;\nelse if(i < 144) k = 4;\nelse if(i < 768) k = 5;\nelse k = 6;\nif(i < 8)\n z = new Classic(m);\nelse if(m.isEven())\n z = new Barrett(m);\nelse\n z = new Montgomery(m);\n\n// precomputation\nvar g = new Array(), n = 3, k1 = k-1, km = (1< 1) {\n var g2 = nbi();\n z.sqrTo(g[1],g2);\n while(n <= km) {\n g[n] = nbi();\n z.mulTo(g2,g[n-2],g[n]);\n n += 2;\n }\n}\n\nvar j = e.t-1, w, is1 = true, r2 = nbi(), t;\ni = nbits(e.data[j])-1;\nwhile(j >= 0) {\n if(i >= k1) w = (e.data[j]>>(i-k1))&km;\n else {\n w = (e.data[j]&((1<<(i+1))-1))<<(k1-i);\n if(j > 0) w |= e.data[j-1]>>(this.DB+i-k1);\n }\n\n n = k;\n while((w&1) == 0) { w >>= 1; --n; }\n if((i -= n) < 0) { i += this.DB; --j; }\n if(is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }\n if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }\n z.mulTo(r2,g[w],r);\n }\n\n while(j >= 0 && (e.data[j]&(1< 0) {\n x.rShiftTo(g,x);\n y.rShiftTo(g,y);\n}\nwhile(x.signum() > 0) {\n if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);\n if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);\n if(x.compareTo(y) >= 0) {\n x.subTo(y,x);\n x.rShiftTo(1,x);\n } else {\n y.subTo(x,y);\n y.rShiftTo(1,y);\n }\n}\nif(g > 0) y.lShiftTo(g,y);\nreturn y;\n}\n\n//(protected) this % n, n < 2^26\nfunction bnpModInt(n) {\nif(n <= 0) return 0;\nvar d = this.DV%n, r = (this.s<0)?n-1:0;\nif(this.t > 0)\n if(d == 0) r = this.data[0]%n;\n else for(var i = this.t-1; i >= 0; --i) r = (d*r+this.data[i])%n;\nreturn r;\n}\n\n//(public) 1/this % m (HAC 14.61)\nfunction bnModInverse(m) {\nvar ac = m.isEven();\nif((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;\nvar u = m.clone(), v = this.clone();\nvar a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);\nwhile(u.signum() != 0) {\n while(u.isEven()) {\n u.rShiftTo(1,u);\n if(ac) {\n if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }\n a.rShiftTo(1,a);\n } else if(!b.isEven()) b.subTo(m,b);\n b.rShiftTo(1,b);\n }\n while(v.isEven()) {\n v.rShiftTo(1,v);\n if(ac) {\n if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }\n c.rShiftTo(1,c);\n } else if(!d.isEven()) d.subTo(m,d);\n d.rShiftTo(1,d);\n }\n if(u.compareTo(v) >= 0) {\n u.subTo(v,u);\n if(ac) a.subTo(c,a);\n b.subTo(d,b);\n } else {\n v.subTo(u,v);\n if(ac) c.subTo(a,c);\n d.subTo(b,d);\n }\n}\nif(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;\nif(d.compareTo(m) >= 0) return d.subtract(m);\nif(d.signum() < 0) d.addTo(m,d); else return d;\nif(d.signum() < 0) return d.add(m); else return d;\n}\n\nvar lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];\nvar lplim = (1<<26)/lowprimes[lowprimes.length-1];\n\n//(public) test primality with certainty >= 1-.5^t\nfunction bnIsProbablePrime(t) {\nvar i, x = this.abs();\nif(x.t == 1 && x.data[0] <= lowprimes[lowprimes.length-1]) {\n for(i = 0; i < lowprimes.length; ++i)\n if(x.data[0] == lowprimes[i]) return true;\n return false;\n}\nif(x.isEven()) return false;\ni = 1;\nwhile(i < lowprimes.length) {\n var m = lowprimes[i], j = i+1;\n while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];\n m = x.modInt(m);\n while(i < j) if(m%lowprimes[i++] == 0) return false;\n}\nreturn x.millerRabin(t);\n}\n\n//(protected) true if probably prime (HAC 4.24, Miller-Rabin)\nfunction bnpMillerRabin(t) {\nvar n1 = this.subtract(BigInteger.ONE);\nvar k = n1.getLowestSetBit();\nif(k <= 0) return false;\nvar r = n1.shiftRight(k);\nvar prng = bnGetPrng();\nvar a;\nfor(var i = 0; i < t; ++i) {\n // select witness 'a' at random from between 1 and n1\n do {\n a = new BigInteger(this.bitLength(), prng);\n }\n while(a.compareTo(BigInteger.ONE) <= 0 || a.compareTo(n1) >= 0);\n var y = a.modPow(r,this);\n if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while(j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2,this);\n if(y.compareTo(BigInteger.ONE) == 0) return false;\n }\n if(y.compareTo(n1) != 0) return false;\n }\n}\nreturn true;\n}\n\n// get pseudo random number generator\nfunction bnGetPrng() {\n // create prng with api that matches BigInteger secure random\n return {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n for(var i = 0; i < x.length; ++i) {\n x[i] = Math.floor(Math.random() * 0x0100);\n }\n }\n };\n}\n\n//protected\nBigInteger.prototype.chunkSize = bnpChunkSize;\nBigInteger.prototype.toRadix = bnpToRadix;\nBigInteger.prototype.fromRadix = bnpFromRadix;\nBigInteger.prototype.fromNumber = bnpFromNumber;\nBigInteger.prototype.bitwiseTo = bnpBitwiseTo;\nBigInteger.prototype.changeBit = bnpChangeBit;\nBigInteger.prototype.addTo = bnpAddTo;\nBigInteger.prototype.dMultiply = bnpDMultiply;\nBigInteger.prototype.dAddOffset = bnpDAddOffset;\nBigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\nBigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\nBigInteger.prototype.modInt = bnpModInt;\nBigInteger.prototype.millerRabin = bnpMillerRabin;\n\n//public\nBigInteger.prototype.clone = bnClone;\nBigInteger.prototype.intValue = bnIntValue;\nBigInteger.prototype.byteValue = bnByteValue;\nBigInteger.prototype.shortValue = bnShortValue;\nBigInteger.prototype.signum = bnSigNum;\nBigInteger.prototype.toByteArray = bnToByteArray;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.min = bnMin;\nBigInteger.prototype.max = bnMax;\nBigInteger.prototype.and = bnAnd;\nBigInteger.prototype.or = bnOr;\nBigInteger.prototype.xor = bnXor;\nBigInteger.prototype.andNot = bnAndNot;\nBigInteger.prototype.not = bnNot;\nBigInteger.prototype.shiftLeft = bnShiftLeft;\nBigInteger.prototype.shiftRight = bnShiftRight;\nBigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\nBigInteger.prototype.bitCount = bnBitCount;\nBigInteger.prototype.testBit = bnTestBit;\nBigInteger.prototype.setBit = bnSetBit;\nBigInteger.prototype.clearBit = bnClearBit;\nBigInteger.prototype.flipBit = bnFlipBit;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.remainder = bnRemainder;\nBigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\nBigInteger.prototype.modPow = bnModPow;\nBigInteger.prototype.modInverse = bnModInverse;\nBigInteger.prototype.pow = bnPow;\nBigInteger.prototype.gcd = bnGCD;\nBigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n\n//BigInteger interfaces not implemented in jsbn:\n\n//BigInteger(int signum, byte[] magnitude)\n//double doubleValue()\n//float floatValue()\n//int hashCode()\n//long longValue()\n//static BigInteger valueOf(long val)\n","/**\n * Javascript implementation of RSA-KEM.\n *\n * @author Lautaro Cozzani Rodriguez\n * @author Dave Longley\n *\n * Copyright (c) 2014 Lautaro Cozzani \n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./random');\nrequire('./jsbn');\n\nmodule.exports = forge.kem = forge.kem || {};\n\nvar BigInteger = forge.jsbn.BigInteger;\n\n/**\n * The API for the RSA Key Encapsulation Mechanism (RSA-KEM) from ISO 18033-2.\n */\nforge.kem.rsa = {};\n\n/**\n * Creates an RSA KEM API object for generating a secret asymmetric key.\n *\n * The symmetric key may be generated via a call to 'encrypt', which will\n * produce a ciphertext to be transmitted to the recipient and a key to be\n * kept secret. The ciphertext is a parameter to be passed to 'decrypt' which\n * will produce the same secret key for the recipient to use to decrypt a\n * message that was encrypted with the secret key.\n *\n * @param kdf the KDF API to use (eg: new forge.kem.kdf1()).\n * @param options the options to use.\n * [prng] a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n */\nforge.kem.rsa.create = function(kdf, options) {\n options = options || {};\n var prng = options.prng || forge.random;\n\n var kem = {};\n\n /**\n * Generates a secret key and its encapsulation.\n *\n * @param publicKey the RSA public key to encrypt with.\n * @param keyLength the length, in bytes, of the secret key to generate.\n *\n * @return an object with:\n * encapsulation: the ciphertext for generating the secret key, as a\n * binary-encoded string of bytes.\n * key: the secret key to use for encrypting a message.\n */\n kem.encrypt = function(publicKey, keyLength) {\n // generate a random r where 1 < r < n\n var byteLength = Math.ceil(publicKey.n.bitLength() / 8);\n var r;\n do {\n r = new BigInteger(\n forge.util.bytesToHex(prng.getBytesSync(byteLength)),\n 16).mod(publicKey.n);\n } while(r.compareTo(BigInteger.ONE) <= 0);\n\n // prepend r with zeros\n r = forge.util.hexToBytes(r.toString(16));\n var zeros = byteLength - r.length;\n if(zeros > 0) {\n r = forge.util.fillString(String.fromCharCode(0), zeros) + r;\n }\n\n // encrypt the random\n var encapsulation = publicKey.encrypt(r, 'NONE');\n\n // generate the secret key\n var key = kdf.generate(r, keyLength);\n\n return {encapsulation: encapsulation, key: key};\n };\n\n /**\n * Decrypts an encapsulated secret key.\n *\n * @param privateKey the RSA private key to decrypt with.\n * @param encapsulation the ciphertext for generating the secret key, as\n * a binary-encoded string of bytes.\n * @param keyLength the length, in bytes, of the secret key to generate.\n *\n * @return the secret key as a binary-encoded string of bytes.\n */\n kem.decrypt = function(privateKey, encapsulation, keyLength) {\n // decrypt the encapsulation and generate the secret key\n var r = privateKey.decrypt(encapsulation, 'NONE');\n return kdf.generate(r, keyLength);\n };\n\n return kem;\n};\n\n// TODO: add forge.kem.kdf.create('KDF1', {md: ..., ...}) API?\n\n/**\n * Creates a key derivation API object that implements KDF1 per ISO 18033-2.\n *\n * @param md the hash API to use.\n * @param [digestLength] an optional digest length that must be positive and\n * less than or equal to md.digestLength.\n *\n * @return a KDF1 API object.\n */\nforge.kem.kdf1 = function(md, digestLength) {\n _createKDF(this, md, 0, digestLength || md.digestLength);\n};\n\n/**\n * Creates a key derivation API object that implements KDF2 per ISO 18033-2.\n *\n * @param md the hash API to use.\n * @param [digestLength] an optional digest length that must be positive and\n * less than or equal to md.digestLength.\n *\n * @return a KDF2 API object.\n */\nforge.kem.kdf2 = function(md, digestLength) {\n _createKDF(this, md, 1, digestLength || md.digestLength);\n};\n\n/**\n * Creates a KDF1 or KDF2 API object.\n *\n * @param md the hash API to use.\n * @param counterStart the starting index for the counter.\n * @param digestLength the digest length to use.\n *\n * @return the KDF API object.\n */\nfunction _createKDF(kdf, md, counterStart, digestLength) {\n /**\n * Generate a key of the specified length.\n *\n * @param x the binary-encoded byte string to generate a key from.\n * @param length the number of bytes to generate (the size of the key).\n *\n * @return the key as a binary-encoded string.\n */\n kdf.generate = function(x, length) {\n var key = new forge.util.ByteBuffer();\n\n // run counter from counterStart to ceil(length / Hash.len)\n var k = Math.ceil(length / digestLength) + counterStart;\n\n var c = new forge.util.ByteBuffer();\n for(var i = counterStart; i < k; ++i) {\n // I2OSP(i, 4): convert counter to an octet string of 4 octets\n c.putInt32(i);\n\n // digest 'x' and the counter and add the result to the key\n md.start();\n md.update(x + c.getBytes());\n var hash = md.digest();\n key.putBytes(hash.getBytes(digestLength));\n }\n\n // truncate to the correct key length\n key.truncate(key.length() - length);\n return key.getBytes();\n };\n}\n","/**\n * Cross-browser support for logging in a web application.\n *\n * @author David I. Lehn \n *\n * Copyright (c) 2008-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\n/* LOG API */\nmodule.exports = forge.log = forge.log || {};\n\n/**\n * Application logging system.\n *\n * Each logger level available as it's own function of the form:\n * forge.log.level(category, args...)\n * The category is an arbitrary string, and the args are the same as\n * Firebug's console.log API. By default the call will be output as:\n * 'LEVEL [category] , args[1], ...'\n * This enables proper % formatting via the first argument.\n * Each category is enabled by default but can be enabled or disabled with\n * the setCategoryEnabled() function.\n */\n// list of known levels\nforge.log.levels = [\n 'none', 'error', 'warning', 'info', 'debug', 'verbose', 'max'];\n// info on the levels indexed by name:\n// index: level index\n// name: uppercased display name\nvar sLevelInfo = {};\n// list of loggers\nvar sLoggers = [];\n/**\n * Standard console logger. If no console support is enabled this will\n * remain null. Check before using.\n */\nvar sConsoleLogger = null;\n\n// logger flags\n/**\n * Lock the level at the current value. Used in cases where user config may\n * set the level such that only critical messages are seen but more verbose\n * messages are needed for debugging or other purposes.\n */\nforge.log.LEVEL_LOCKED = (1 << 1);\n/**\n * Always call log function. By default, the logging system will check the\n * message level against logger.level before calling the log function. This\n * flag allows the function to do its own check.\n */\nforge.log.NO_LEVEL_CHECK = (1 << 2);\n/**\n * Perform message interpolation with the passed arguments. \"%\" style\n * fields in log messages will be replaced by arguments as needed. Some\n * loggers, such as Firebug, may do this automatically. The original log\n * message will be available as 'message' and the interpolated version will\n * be available as 'fullMessage'.\n */\nforge.log.INTERPOLATE = (1 << 3);\n\n// setup each log level\nfor(var i = 0; i < forge.log.levels.length; ++i) {\n var level = forge.log.levels[i];\n sLevelInfo[level] = {\n index: i,\n name: level.toUpperCase()\n };\n}\n\n/**\n * Message logger. Will dispatch a message to registered loggers as needed.\n *\n * @param message message object\n */\nforge.log.logMessage = function(message) {\n var messageLevelIndex = sLevelInfo[message.level].index;\n for(var i = 0; i < sLoggers.length; ++i) {\n var logger = sLoggers[i];\n if(logger.flags & forge.log.NO_LEVEL_CHECK) {\n logger.f(message);\n } else {\n // get logger level\n var loggerLevelIndex = sLevelInfo[logger.level].index;\n // check level\n if(messageLevelIndex <= loggerLevelIndex) {\n // message critical enough, call logger\n logger.f(logger, message);\n }\n }\n }\n};\n\n/**\n * Sets the 'standard' key on a message object to:\n * \"LEVEL [category] \" + message\n *\n * @param message a message log object\n */\nforge.log.prepareStandard = function(message) {\n if(!('standard' in message)) {\n message.standard =\n sLevelInfo[message.level].name +\n //' ' + +message.timestamp +\n ' [' + message.category + '] ' +\n message.message;\n }\n};\n\n/**\n * Sets the 'full' key on a message object to the original message\n * interpolated via % formatting with the message arguments.\n *\n * @param message a message log object.\n */\nforge.log.prepareFull = function(message) {\n if(!('full' in message)) {\n // copy args and insert message at the front\n var args = [message.message];\n args = args.concat([] || message['arguments']);\n // format the message\n message.full = forge.util.format.apply(this, args);\n }\n};\n\n/**\n * Applies both preparseStandard() and prepareFull() to a message object and\n * store result in 'standardFull'.\n *\n * @param message a message log object.\n */\nforge.log.prepareStandardFull = function(message) {\n if(!('standardFull' in message)) {\n // FIXME implement 'standardFull' logging\n forge.log.prepareStandard(message);\n message.standardFull = message.standard;\n }\n};\n\n// create log level functions\nif(true) {\n // levels for which we want functions\n var levels = ['error', 'warning', 'info', 'debug', 'verbose'];\n for(var i = 0; i < levels.length; ++i) {\n // wrap in a function to ensure proper level var is passed\n (function(level) {\n // create function for this level\n forge.log[level] = function(category, message/*, args...*/) {\n // convert arguments to real array, remove category and message\n var args = Array.prototype.slice.call(arguments).slice(2);\n // create message object\n // Note: interpolation and standard formatting is done lazily\n var msg = {\n timestamp: new Date(),\n level: level,\n category: category,\n message: message,\n 'arguments': args\n /*standard*/\n /*full*/\n /*fullMessage*/\n };\n // process this message\n forge.log.logMessage(msg);\n };\n })(levels[i]);\n }\n}\n\n/**\n * Creates a new logger with specified custom logging function.\n *\n * The logging function has a signature of:\n * function(logger, message)\n * logger: current logger\n * message: object:\n * level: level id\n * category: category\n * message: string message\n * arguments: Array of extra arguments\n * fullMessage: interpolated message and arguments if INTERPOLATE flag set\n *\n * @param logFunction a logging function which takes a log message object\n * as a parameter.\n *\n * @return a logger object.\n */\nforge.log.makeLogger = function(logFunction) {\n var logger = {\n flags: 0,\n f: logFunction\n };\n forge.log.setLevel(logger, 'none');\n return logger;\n};\n\n/**\n * Sets the current log level on a logger.\n *\n * @param logger the target logger.\n * @param level the new maximum log level as a string.\n *\n * @return true if set, false if not.\n */\nforge.log.setLevel = function(logger, level) {\n var rval = false;\n if(logger && !(logger.flags & forge.log.LEVEL_LOCKED)) {\n for(var i = 0; i < forge.log.levels.length; ++i) {\n var aValidLevel = forge.log.levels[i];\n if(level == aValidLevel) {\n // set level\n logger.level = level;\n rval = true;\n break;\n }\n }\n }\n\n return rval;\n};\n\n/**\n * Locks the log level at its current value.\n *\n * @param logger the target logger.\n * @param lock boolean lock value, default to true.\n */\nforge.log.lock = function(logger, lock) {\n if(typeof lock === 'undefined' || lock) {\n logger.flags |= forge.log.LEVEL_LOCKED;\n } else {\n logger.flags &= ~forge.log.LEVEL_LOCKED;\n }\n};\n\n/**\n * Adds a logger.\n *\n * @param logger the logger object.\n */\nforge.log.addLogger = function(logger) {\n sLoggers.push(logger);\n};\n\n// setup the console logger if possible, else create fake console.log\nif(typeof(console) !== 'undefined' && 'log' in console) {\n var logger;\n if(console.error && console.warn && console.info && console.debug) {\n // looks like Firebug-style logging is available\n // level handlers map\n var levelHandlers = {\n error: console.error,\n warning: console.warn,\n info: console.info,\n debug: console.debug,\n verbose: console.debug\n };\n var f = function(logger, message) {\n forge.log.prepareStandard(message);\n var handler = levelHandlers[message.level];\n // prepend standard message and concat args\n var args = [message.standard];\n args = args.concat(message['arguments'].slice());\n // apply to low-level console function\n handler.apply(console, args);\n };\n logger = forge.log.makeLogger(f);\n } else {\n // only appear to have basic console.log\n var f = function(logger, message) {\n forge.log.prepareStandardFull(message);\n console.log(message.standardFull);\n };\n logger = forge.log.makeLogger(f);\n }\n forge.log.setLevel(logger, 'debug');\n forge.log.addLogger(logger);\n sConsoleLogger = logger;\n} else {\n // define fake console.log to avoid potential script errors on\n // browsers that do not have console logging\n console = {\n log: function() {}\n };\n}\n\n/*\n * Check for logging control query vars in current URL.\n *\n * console.level=\n * Set's the console log level by name. Useful to override defaults and\n * allow more verbose logging before a user config is loaded.\n *\n * console.lock=\n * Lock the console log level at whatever level it is set at. This is run\n * after console.level is processed. Useful to force a level of verbosity\n * that could otherwise be limited by a user config.\n */\nif(sConsoleLogger !== null &&\n typeof window !== 'undefined' && window.location\n) {\n var query = new URL(window.location.href).searchParams;\n if(query.has('console.level')) {\n // set with last value\n forge.log.setLevel(\n sConsoleLogger, query.get('console.level').slice(-1)[0]);\n }\n if(query.has('console.lock')) {\n // set with last value\n var lock = query.get('console.lock').slice(-1)[0];\n if(lock == 'true') {\n forge.log.lock(sConsoleLogger);\n }\n }\n}\n\n// provide public access to console logger\nforge.log.consoleLogger = sConsoleLogger;\n","/**\n * Node.js module for all known Forge message digests.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2017 Digital Bazaar, Inc.\n */\nmodule.exports = require('./md');\n\nrequire('./md5');\nrequire('./sha1');\nrequire('./sha256');\nrequire('./sha512');\n","/**\n * Node.js module for Forge message digests.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2017 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\n\nmodule.exports = forge.md = forge.md || {};\nforge.md.algorithms = forge.md.algorithms || {};\n","/**\n * Message Digest Algorithm 5 with 128-bit digest (MD5) implementation.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar md5 = module.exports = forge.md5 = forge.md5 || {};\nforge.md.md5 = forge.md.algorithms.md5 = md5;\n\n/**\n * Creates an MD5 message digest object.\n *\n * @return a message digest object.\n */\nmd5.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // MD5 state contains four 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(16);\n\n // message digest object\n var md = {\n algorithm: 'md5',\n blockLength: 64,\n digestLength: 16,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x67452301,\n h1: 0xEFCDAB89,\n h2: 0x98BADCFE,\n h3: 0x10325476\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = (len[1] / 0x100000000) >>> 0;\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate MD5 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in little-endian order; since length\n // is stored in bytes we multiply by 8 and add carry\n var bits, carry = 0;\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n bits = md.fullMessageLength[i] * 8 + carry;\n carry = (bits / 0x100000000) >>> 0;\n finalBlock.putInt32Le(bits >>> 0);\n }\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32Le(s2.h0);\n rval.putInt32Le(s2.h1);\n rval.putInt32Le(s2.h2);\n rval.putInt32Le(s2.h3);\n return rval;\n };\n\n return md;\n};\n\n// padding, constant tables for calculating md5\nvar _padding = null;\nvar _g = null;\nvar _r = null;\nvar _k = null;\nvar _initialized = false;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // g values\n _g = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12,\n 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2,\n 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9];\n\n // rounds table\n _r = [\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,\n 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,\n 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,\n 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21];\n\n // get the result of abs(sin(i + 1)) as a 32-bit integer\n _k = new Array(64);\n for(var i = 0; i < 64; ++i) {\n _k[i] = Math.floor(Math.abs(Math.sin(i + 1)) * 0x100000000);\n }\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates an MD5 state with the given byte buffer.\n *\n * @param s the MD5 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t, a, b, c, d, f, r, i;\n var len = bytes.length();\n while(len >= 64) {\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n\n // round 1\n for(i = 0; i < 16; ++i) {\n w[i] = bytes.getInt32Le();\n f = d ^ (b & (c ^ d));\n t = (a + f + _k[i] + w[i]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 2\n for(; i < 32; ++i) {\n f = c ^ (d & (b ^ c));\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 3\n for(; i < 48; ++i) {\n f = b ^ c ^ d;\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 4\n for(; i < 64; ++i) {\n f = c ^ (b | ~d);\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n\n len -= 64;\n }\n}\n","/**\n * Node.js module for Forge mask generation functions.\n *\n * @author Stefan Siegl\n *\n * Copyright 2012 Stefan Siegl \n */\nvar forge = require('./forge');\nrequire('./mgf1');\n\nmodule.exports = forge.mgf = forge.mgf || {};\nforge.mgf.mgf1 = forge.mgf1;\n","/**\n * Javascript implementation of mask generation function MGF1.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nforge.mgf = forge.mgf || {};\nvar mgf1 = module.exports = forge.mgf.mgf1 = forge.mgf1 = forge.mgf1 || {};\n\n/**\n * Creates a MGF1 mask generation function object.\n *\n * @param md the message digest API to use (eg: forge.md.sha1.create()).\n *\n * @return a mask generation function object.\n */\nmgf1.create = function(md) {\n var mgf = {\n /**\n * Generate mask of specified length.\n *\n * @param {String} seed The seed for mask generation.\n * @param maskLen Number of bytes to generate.\n * @return {String} The generated mask.\n */\n generate: function(seed, maskLen) {\n /* 2. Let T be the empty octet string. */\n var t = new forge.util.ByteBuffer();\n\n /* 3. For counter from 0 to ceil(maskLen / hLen), do the following: */\n var len = Math.ceil(maskLen / md.digestLength);\n for(var i = 0; i < len; i++) {\n /* a. Convert counter to an octet string C of length 4 octets */\n var c = new forge.util.ByteBuffer();\n c.putInt32(i);\n\n /* b. Concatenate the hash of the seed mgfSeed and C to the octet\n * string T: */\n md.start();\n md.update(seed + c.getBytes());\n t.putBuffer(md.digest());\n }\n\n /* Output the leading maskLen octets of T as the octet string mask. */\n t.truncate(t.length() - maskLen);\n return t.getBytes();\n }\n };\n\n return mgf;\n};\n","/**\n * Object IDs for ASN.1.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\n\nforge.pki = forge.pki || {};\nvar oids = module.exports = forge.pki.oids = forge.oids = forge.oids || {};\n\n// set id to name mapping and name to id mapping\nfunction _IN(id, name) {\n oids[id] = name;\n oids[name] = id;\n}\n// set id to name mapping only\nfunction _I_(id, name) {\n oids[id] = name;\n}\n\n// algorithm OIDs\n_IN('1.2.840.113549.1.1.1', 'rsaEncryption');\n// Note: md2 & md4 not implemented\n//_IN('1.2.840.113549.1.1.2', 'md2WithRSAEncryption');\n//_IN('1.2.840.113549.1.1.3', 'md4WithRSAEncryption');\n_IN('1.2.840.113549.1.1.4', 'md5WithRSAEncryption');\n_IN('1.2.840.113549.1.1.5', 'sha1WithRSAEncryption');\n_IN('1.2.840.113549.1.1.7', 'RSAES-OAEP');\n_IN('1.2.840.113549.1.1.8', 'mgf1');\n_IN('1.2.840.113549.1.1.9', 'pSpecified');\n_IN('1.2.840.113549.1.1.10', 'RSASSA-PSS');\n_IN('1.2.840.113549.1.1.11', 'sha256WithRSAEncryption');\n_IN('1.2.840.113549.1.1.12', 'sha384WithRSAEncryption');\n_IN('1.2.840.113549.1.1.13', 'sha512WithRSAEncryption');\n// Edwards-curve Digital Signature Algorithm (EdDSA) Ed25519\n_IN('1.3.101.112', 'EdDSA25519');\n\n_IN('1.2.840.10040.4.3', 'dsa-with-sha1');\n\n_IN('1.3.14.3.2.7', 'desCBC');\n\n_IN('1.3.14.3.2.26', 'sha1');\n// Deprecated equivalent of sha1WithRSAEncryption\n_IN('1.3.14.3.2.29', 'sha1WithRSASignature');\n_IN('2.16.840.1.101.3.4.2.1', 'sha256');\n_IN('2.16.840.1.101.3.4.2.2', 'sha384');\n_IN('2.16.840.1.101.3.4.2.3', 'sha512');\n_IN('2.16.840.1.101.3.4.2.4', 'sha224');\n_IN('2.16.840.1.101.3.4.2.5', 'sha512-224');\n_IN('2.16.840.1.101.3.4.2.6', 'sha512-256');\n_IN('1.2.840.113549.2.2', 'md2');\n_IN('1.2.840.113549.2.5', 'md5');\n\n// pkcs#7 content types\n_IN('1.2.840.113549.1.7.1', 'data');\n_IN('1.2.840.113549.1.7.2', 'signedData');\n_IN('1.2.840.113549.1.7.3', 'envelopedData');\n_IN('1.2.840.113549.1.7.4', 'signedAndEnvelopedData');\n_IN('1.2.840.113549.1.7.5', 'digestedData');\n_IN('1.2.840.113549.1.7.6', 'encryptedData');\n\n// pkcs#9 oids\n_IN('1.2.840.113549.1.9.1', 'emailAddress');\n_IN('1.2.840.113549.1.9.2', 'unstructuredName');\n_IN('1.2.840.113549.1.9.3', 'contentType');\n_IN('1.2.840.113549.1.9.4', 'messageDigest');\n_IN('1.2.840.113549.1.9.5', 'signingTime');\n_IN('1.2.840.113549.1.9.6', 'counterSignature');\n_IN('1.2.840.113549.1.9.7', 'challengePassword');\n_IN('1.2.840.113549.1.9.8', 'unstructuredAddress');\n_IN('1.2.840.113549.1.9.14', 'extensionRequest');\n\n_IN('1.2.840.113549.1.9.20', 'friendlyName');\n_IN('1.2.840.113549.1.9.21', 'localKeyId');\n_IN('1.2.840.113549.1.9.22.1', 'x509Certificate');\n\n// pkcs#12 safe bags\n_IN('1.2.840.113549.1.12.10.1.1', 'keyBag');\n_IN('1.2.840.113549.1.12.10.1.2', 'pkcs8ShroudedKeyBag');\n_IN('1.2.840.113549.1.12.10.1.3', 'certBag');\n_IN('1.2.840.113549.1.12.10.1.4', 'crlBag');\n_IN('1.2.840.113549.1.12.10.1.5', 'secretBag');\n_IN('1.2.840.113549.1.12.10.1.6', 'safeContentsBag');\n\n// password-based-encryption for pkcs#12\n_IN('1.2.840.113549.1.5.13', 'pkcs5PBES2');\n_IN('1.2.840.113549.1.5.12', 'pkcs5PBKDF2');\n\n_IN('1.2.840.113549.1.12.1.1', 'pbeWithSHAAnd128BitRC4');\n_IN('1.2.840.113549.1.12.1.2', 'pbeWithSHAAnd40BitRC4');\n_IN('1.2.840.113549.1.12.1.3', 'pbeWithSHAAnd3-KeyTripleDES-CBC');\n_IN('1.2.840.113549.1.12.1.4', 'pbeWithSHAAnd2-KeyTripleDES-CBC');\n_IN('1.2.840.113549.1.12.1.5', 'pbeWithSHAAnd128BitRC2-CBC');\n_IN('1.2.840.113549.1.12.1.6', 'pbewithSHAAnd40BitRC2-CBC');\n\n// hmac OIDs\n_IN('1.2.840.113549.2.7', 'hmacWithSHA1');\n_IN('1.2.840.113549.2.8', 'hmacWithSHA224');\n_IN('1.2.840.113549.2.9', 'hmacWithSHA256');\n_IN('1.2.840.113549.2.10', 'hmacWithSHA384');\n_IN('1.2.840.113549.2.11', 'hmacWithSHA512');\n\n// symmetric key algorithm oids\n_IN('1.2.840.113549.3.7', 'des-EDE3-CBC');\n_IN('2.16.840.1.101.3.4.1.2', 'aes128-CBC');\n_IN('2.16.840.1.101.3.4.1.22', 'aes192-CBC');\n_IN('2.16.840.1.101.3.4.1.42', 'aes256-CBC');\n\n// certificate issuer/subject OIDs\n_IN('2.5.4.3', 'commonName');\n_IN('2.5.4.4', 'surname');\n_IN('2.5.4.5', 'serialNumber');\n_IN('2.5.4.6', 'countryName');\n_IN('2.5.4.7', 'localityName');\n_IN('2.5.4.8', 'stateOrProvinceName');\n_IN('2.5.4.9', 'streetAddress');\n_IN('2.5.4.10', 'organizationName');\n_IN('2.5.4.11', 'organizationalUnitName');\n_IN('2.5.4.12', 'title');\n_IN('2.5.4.13', 'description');\n_IN('2.5.4.15', 'businessCategory');\n_IN('2.5.4.17', 'postalCode');\n_IN('2.5.4.42', 'givenName');\n_IN('1.3.6.1.4.1.311.60.2.1.2', 'jurisdictionOfIncorporationStateOrProvinceName');\n_IN('1.3.6.1.4.1.311.60.2.1.3', 'jurisdictionOfIncorporationCountryName');\n\n// X.509 extension OIDs\n_IN('2.16.840.1.113730.1.1', 'nsCertType');\n_IN('2.16.840.1.113730.1.13', 'nsComment'); // deprecated in theory; still widely used\n_I_('2.5.29.1', 'authorityKeyIdentifier'); // deprecated, use .35\n_I_('2.5.29.2', 'keyAttributes'); // obsolete use .37 or .15\n_I_('2.5.29.3', 'certificatePolicies'); // deprecated, use .32\n_I_('2.5.29.4', 'keyUsageRestriction'); // obsolete use .37 or .15\n_I_('2.5.29.5', 'policyMapping'); // deprecated use .33\n_I_('2.5.29.6', 'subtreesConstraint'); // obsolete use .30\n_I_('2.5.29.7', 'subjectAltName'); // deprecated use .17\n_I_('2.5.29.8', 'issuerAltName'); // deprecated use .18\n_I_('2.5.29.9', 'subjectDirectoryAttributes');\n_I_('2.5.29.10', 'basicConstraints'); // deprecated use .19\n_I_('2.5.29.11', 'nameConstraints'); // deprecated use .30\n_I_('2.5.29.12', 'policyConstraints'); // deprecated use .36\n_I_('2.5.29.13', 'basicConstraints'); // deprecated use .19\n_IN('2.5.29.14', 'subjectKeyIdentifier');\n_IN('2.5.29.15', 'keyUsage');\n_I_('2.5.29.16', 'privateKeyUsagePeriod');\n_IN('2.5.29.17', 'subjectAltName');\n_IN('2.5.29.18', 'issuerAltName');\n_IN('2.5.29.19', 'basicConstraints');\n_I_('2.5.29.20', 'cRLNumber');\n_I_('2.5.29.21', 'cRLReason');\n_I_('2.5.29.22', 'expirationDate');\n_I_('2.5.29.23', 'instructionCode');\n_I_('2.5.29.24', 'invalidityDate');\n_I_('2.5.29.25', 'cRLDistributionPoints'); // deprecated use .31\n_I_('2.5.29.26', 'issuingDistributionPoint'); // deprecated use .28\n_I_('2.5.29.27', 'deltaCRLIndicator');\n_I_('2.5.29.28', 'issuingDistributionPoint');\n_I_('2.5.29.29', 'certificateIssuer');\n_I_('2.5.29.30', 'nameConstraints');\n_IN('2.5.29.31', 'cRLDistributionPoints');\n_IN('2.5.29.32', 'certificatePolicies');\n_I_('2.5.29.33', 'policyMappings');\n_I_('2.5.29.34', 'policyConstraints'); // deprecated use .36\n_IN('2.5.29.35', 'authorityKeyIdentifier');\n_I_('2.5.29.36', 'policyConstraints');\n_IN('2.5.29.37', 'extKeyUsage');\n_I_('2.5.29.46', 'freshestCRL');\n_I_('2.5.29.54', 'inhibitAnyPolicy');\n\n// extKeyUsage purposes\n_IN('1.3.6.1.4.1.11129.2.4.2', 'timestampList');\n_IN('1.3.6.1.5.5.7.1.1', 'authorityInfoAccess');\n_IN('1.3.6.1.5.5.7.3.1', 'serverAuth');\n_IN('1.3.6.1.5.5.7.3.2', 'clientAuth');\n_IN('1.3.6.1.5.5.7.3.3', 'codeSigning');\n_IN('1.3.6.1.5.5.7.3.4', 'emailProtection');\n_IN('1.3.6.1.5.5.7.3.8', 'timeStamping');\n","/**\n * Password-based encryption functions.\n *\n * @author Dave Longley\n * @author Stefan Siegl \n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * An EncryptedPrivateKeyInfo:\n *\n * EncryptedPrivateKeyInfo ::= SEQUENCE {\n * encryptionAlgorithm EncryptionAlgorithmIdentifier,\n * encryptedData EncryptedData }\n *\n * EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * EncryptedData ::= OCTET STRING\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./md');\nrequire('./oids');\nrequire('./pbkdf2');\nrequire('./pem');\nrequire('./random');\nrequire('./rc2');\nrequire('./rsa');\nrequire('./util');\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Password-based encryption implementation. */\nvar pki = forge.pki = forge.pki || {};\nmodule.exports = pki.pbe = forge.pbe = forge.pbe || {};\nvar oids = pki.oids;\n\n// validator for an EncryptedPrivateKeyInfo structure\n// Note: Currently only works w/algorithm params\nvar encryptedPrivateKeyValidator = {\n name: 'EncryptedPrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedPrivateKeyInfo.encryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encryptionOid'\n }, {\n name: 'AlgorithmIdentifier.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'encryptionParams'\n }]\n }, {\n // encryptedData\n name: 'EncryptedPrivateKeyInfo.encryptedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encryptedData'\n }]\n};\n\n// validator for a PBES2Algorithms structure\n// Note: Currently only works w/PBKDF2 + AES encryption schemes\nvar PBES2AlgorithmsValidator = {\n name: 'PBES2Algorithms',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.keyDerivationFunc',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.keyDerivationFunc.oid',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'kdfOid'\n }, {\n name: 'PBES2Algorithms.params',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.params.salt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'kdfSalt'\n }, {\n name: 'PBES2Algorithms.params.iterationCount',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'kdfIterationCount'\n }, {\n name: 'PBES2Algorithms.params.keyLength',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n optional: true,\n capture: 'keyLength'\n }, {\n // prf\n name: 'PBES2Algorithms.params.prf',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'PBES2Algorithms.params.prf.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'prfOid'\n }]\n }]\n }]\n }, {\n name: 'PBES2Algorithms.encryptionScheme',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.encryptionScheme.oid',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encOid'\n }, {\n name: 'PBES2Algorithms.encryptionScheme.iv',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encIv'\n }]\n }]\n};\n\nvar pkcs12PbeParamsValidator = {\n name: 'pkcs-12PbeParams',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'pkcs-12PbeParams.salt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'salt'\n }, {\n name: 'pkcs-12PbeParams.iterations',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'iterations'\n }]\n};\n\n/**\n * Encrypts a ASN.1 PrivateKeyInfo object, producing an EncryptedPrivateKeyInfo.\n *\n * PBES2Algorithms ALGORITHM-IDENTIFIER ::=\n * { {PBES2-params IDENTIFIED BY id-PBES2}, ...}\n *\n * id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13}\n *\n * PBES2-params ::= SEQUENCE {\n * keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},\n * encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}\n * }\n *\n * PBES2-KDFs ALGORITHM-IDENTIFIER ::=\n * { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }\n *\n * PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... }\n *\n * PBKDF2-params ::= SEQUENCE {\n * salt CHOICE {\n * specified OCTET STRING,\n * otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}\n * },\n * iterationCount INTEGER (1..MAX),\n * keyLength INTEGER (1..MAX) OPTIONAL,\n * prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1\n * }\n *\n * @param obj the ASN.1 PrivateKeyInfo object.\n * @param password the password to encrypt with.\n * @param options:\n * algorithm the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des'), defaults to 'aes128'.\n * count the iteration count to use.\n * saltSize the salt size to use.\n * prfAlgorithm the PRF message digest algorithm to use\n * ('sha1', 'sha224', 'sha256', 'sha384', 'sha512')\n *\n * @return the ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptPrivateKeyInfo = function(obj, password, options) {\n // set default options\n options = options || {};\n options.saltSize = options.saltSize || 8;\n options.count = options.count || 2048;\n options.algorithm = options.algorithm || 'aes128';\n options.prfAlgorithm = options.prfAlgorithm || 'sha1';\n\n // generate PBE params\n var salt = forge.random.getBytesSync(options.saltSize);\n var count = options.count;\n var countBytes = asn1.integerToDer(count);\n var dkLen;\n var encryptionAlgorithm;\n var encryptedData;\n if(options.algorithm.indexOf('aes') === 0 || options.algorithm === 'des') {\n // do PBES2\n var ivLen, encOid, cipherFn;\n switch(options.algorithm) {\n case 'aes128':\n dkLen = 16;\n ivLen = 16;\n encOid = oids['aes128-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes192':\n dkLen = 24;\n ivLen = 16;\n encOid = oids['aes192-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes256':\n dkLen = 32;\n ivLen = 16;\n encOid = oids['aes256-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'des':\n dkLen = 8;\n ivLen = 8;\n encOid = oids['desCBC'];\n cipherFn = forge.des.createEncryptionCipher;\n break;\n default:\n var error = new Error('Cannot encrypt private key. Unknown encryption algorithm.');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // get PRF message digest\n var prfAlgorithm = 'hmacWith' + options.prfAlgorithm.toUpperCase();\n var md = prfAlgorithmToMessageDigest(prfAlgorithm);\n\n // encrypt private key using pbe SHA-1 and AES/DES\n var dk = forge.pkcs5.pbkdf2(password, salt, count, dkLen, md);\n var iv = forge.random.getBytesSync(ivLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(obj));\n cipher.finish();\n encryptedData = cipher.output.getBytes();\n\n // get PBKDF2-params\n var params = createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm);\n\n encryptionAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pkcs5PBES2']).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // keyDerivationFunc\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pkcs5PBKDF2']).getBytes()),\n // PBKDF2-params\n params\n ]),\n // encryptionScheme\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(encOid).getBytes()),\n // iv\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, iv)\n ])\n ])\n ]);\n } else if(options.algorithm === '3des') {\n // Do PKCS12 PBE\n dkLen = 24;\n\n var saltBytes = new forge.util.ByteBuffer(salt);\n var dk = pki.pbe.generatePkcs12Key(password, saltBytes, 1, count, dkLen);\n var iv = pki.pbe.generatePkcs12Key(password, saltBytes, 2, count, dkLen);\n var cipher = forge.des.createEncryptionCipher(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(obj));\n cipher.finish();\n encryptedData = cipher.output.getBytes();\n\n encryptionAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pbeWithSHAAnd3-KeyTripleDES-CBC']).getBytes()),\n // pkcs-12PbeParams\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // salt\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt),\n // iteration count\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n countBytes.getBytes())\n ])\n ]);\n } else {\n var error = new Error('Cannot encrypt private key. Unknown encryption algorithm.');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // EncryptedPrivateKeyInfo\n var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // encryptionAlgorithm\n encryptionAlgorithm,\n // encryptedData\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, encryptedData)\n ]);\n return rval;\n};\n\n/**\n * Decrypts a ASN.1 PrivateKeyInfo object.\n *\n * @param obj the ASN.1 EncryptedPrivateKeyInfo object.\n * @param password the password to decrypt with.\n *\n * @return the ASN.1 PrivateKeyInfo on success, null on failure.\n */\npki.decryptPrivateKeyInfo = function(obj, password) {\n var rval = null;\n\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, encryptedPrivateKeyValidator, capture, errors)) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n // get cipher\n var oid = asn1.derToOid(capture.encryptionOid);\n var cipher = pki.pbe.getCipher(oid, capture.encryptionParams, password);\n\n // get encrypted data\n var encrypted = forge.util.createBuffer(capture.encryptedData);\n\n cipher.update(encrypted);\n if(cipher.finish()) {\n rval = asn1.fromDer(cipher.output);\n }\n\n return rval;\n};\n\n/**\n * Converts a EncryptedPrivateKeyInfo to PEM format.\n *\n * @param epki the EncryptedPrivateKeyInfo.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted encrypted private key.\n */\npki.encryptedPrivateKeyToPem = function(epki, maxline) {\n // convert to DER, then PEM-encode\n var msg = {\n type: 'ENCRYPTED PRIVATE KEY',\n body: asn1.toDer(epki).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts a PEM-encoded EncryptedPrivateKeyInfo to ASN.1 format. Decryption\n * is not performed.\n *\n * @param pem the EncryptedPrivateKeyInfo in PEM-format.\n *\n * @return the ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptedPrivateKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'ENCRYPTED PRIVATE KEY') {\n var error = new Error('Could not convert encrypted private key from PEM; ' +\n 'PEM header type is \"ENCRYPTED PRIVATE KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert encrypted private key from PEM; ' +\n 'PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n return asn1.fromDer(msg.body);\n};\n\n/**\n * Encrypts an RSA private key. By default, the key will be wrapped in\n * a PrivateKeyInfo and encrypted to produce a PKCS#8 EncryptedPrivateKeyInfo.\n * This is the standard, preferred way to encrypt a private key.\n *\n * To produce a non-standard PEM-encrypted private key that uses encapsulated\n * headers to indicate the encryption algorithm (old-style non-PKCS#8 OpenSSL\n * private key encryption), set the 'legacy' option to true. Note: Using this\n * option will cause the iteration count to be forced to 1.\n *\n * Note: The 'des' algorithm is supported, but it is not considered to be\n * secure because it only uses a single 56-bit key. If possible, it is highly\n * recommended that a different algorithm be used.\n *\n * @param rsaKey the RSA key to encrypt.\n * @param password the password to use.\n * @param options:\n * algorithm: the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des', 'des').\n * count: the iteration count to use.\n * saltSize: the salt size to use.\n * legacy: output an old non-PKCS#8 PEM-encrypted+encapsulated\n * headers (DEK-Info) private key.\n *\n * @return the PEM-encoded ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptRsaPrivateKey = function(rsaKey, password, options) {\n // standard PKCS#8\n options = options || {};\n if(!options.legacy) {\n // encrypt PrivateKeyInfo\n var rval = pki.wrapRsaPrivateKey(pki.privateKeyToAsn1(rsaKey));\n rval = pki.encryptPrivateKeyInfo(rval, password, options);\n return pki.encryptedPrivateKeyToPem(rval);\n }\n\n // legacy non-PKCS#8\n var algorithm;\n var iv;\n var dkLen;\n var cipherFn;\n switch(options.algorithm) {\n case 'aes128':\n algorithm = 'AES-128-CBC';\n dkLen = 16;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes192':\n algorithm = 'AES-192-CBC';\n dkLen = 24;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes256':\n algorithm = 'AES-256-CBC';\n dkLen = 32;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case '3des':\n algorithm = 'DES-EDE3-CBC';\n dkLen = 24;\n iv = forge.random.getBytesSync(8);\n cipherFn = forge.des.createEncryptionCipher;\n break;\n case 'des':\n algorithm = 'DES-CBC';\n dkLen = 8;\n iv = forge.random.getBytesSync(8);\n cipherFn = forge.des.createEncryptionCipher;\n break;\n default:\n var error = new Error('Could not encrypt RSA private key; unsupported ' +\n 'encryption algorithm \"' + options.algorithm + '\".');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // encrypt private key using OpenSSL legacy key derivation\n var dk = forge.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(pki.privateKeyToAsn1(rsaKey)));\n cipher.finish();\n\n var msg = {\n type: 'RSA PRIVATE KEY',\n procType: {\n version: '4',\n type: 'ENCRYPTED'\n },\n dekInfo: {\n algorithm: algorithm,\n parameters: forge.util.bytesToHex(iv).toUpperCase()\n },\n body: cipher.output.getBytes()\n };\n return forge.pem.encode(msg);\n};\n\n/**\n * Decrypts an RSA private key.\n *\n * @param pem the PEM-formatted EncryptedPrivateKeyInfo to decrypt.\n * @param password the password to use.\n *\n * @return the RSA key on success, null on failure.\n */\npki.decryptRsaPrivateKey = function(pem, password) {\n var rval = null;\n\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'ENCRYPTED PRIVATE KEY' &&\n msg.type !== 'PRIVATE KEY' &&\n msg.type !== 'RSA PRIVATE KEY') {\n var error = new Error('Could not convert private key from PEM; PEM header type ' +\n 'is not \"ENCRYPTED PRIVATE KEY\", \"PRIVATE KEY\", or \"RSA PRIVATE KEY\".');\n error.headerType = error;\n throw error;\n }\n\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n var dkLen;\n var cipherFn;\n switch(msg.dekInfo.algorithm) {\n case 'DES-CBC':\n dkLen = 8;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'DES-EDE3-CBC':\n dkLen = 24;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'AES-128-CBC':\n dkLen = 16;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'AES-192-CBC':\n dkLen = 24;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'AES-256-CBC':\n dkLen = 32;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'RC2-40-CBC':\n dkLen = 5;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 40);\n };\n break;\n case 'RC2-64-CBC':\n dkLen = 8;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 64);\n };\n break;\n case 'RC2-128-CBC':\n dkLen = 16;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 128);\n };\n break;\n default:\n var error = new Error('Could not decrypt private key; unsupported ' +\n 'encryption algorithm \"' + msg.dekInfo.algorithm + '\".');\n error.algorithm = msg.dekInfo.algorithm;\n throw error;\n }\n\n // use OpenSSL legacy key derivation\n var iv = forge.util.hexToBytes(msg.dekInfo.parameters);\n var dk = forge.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(forge.util.createBuffer(msg.body));\n if(cipher.finish()) {\n rval = cipher.output.getBytes();\n } else {\n return rval;\n }\n } else {\n rval = msg.body;\n }\n\n if(msg.type === 'ENCRYPTED PRIVATE KEY') {\n rval = pki.decryptPrivateKeyInfo(asn1.fromDer(rval), password);\n } else {\n // decryption already performed above\n rval = asn1.fromDer(rval);\n }\n\n if(rval !== null) {\n rval = pki.privateKeyFromAsn1(rval);\n }\n\n return rval;\n};\n\n/**\n * Derives a PKCS#12 key.\n *\n * @param password the password to derive the key material from, null or\n * undefined for none.\n * @param salt the salt, as a ByteBuffer, to use.\n * @param id the PKCS#12 ID byte (1 = key material, 2 = IV, 3 = MAC).\n * @param iter the iteration count.\n * @param n the number of bytes to derive from the password.\n * @param md the message digest to use, defaults to SHA-1.\n *\n * @return a ByteBuffer with the bytes derived from the password.\n */\npki.pbe.generatePkcs12Key = function(password, salt, id, iter, n, md) {\n var j, l;\n\n if(typeof md === 'undefined' || md === null) {\n if(!('sha1' in forge.md)) {\n throw new Error('\"sha1\" hash algorithm unavailable.');\n }\n md = forge.md.sha1.create();\n }\n\n var u = md.digestLength;\n var v = md.blockLength;\n var result = new forge.util.ByteBuffer();\n\n /* Convert password to Unicode byte buffer + trailing 0-byte. */\n var passBuf = new forge.util.ByteBuffer();\n if(password !== null && password !== undefined) {\n for(l = 0; l < password.length; l++) {\n passBuf.putInt16(password.charCodeAt(l));\n }\n passBuf.putInt16(0);\n }\n\n /* Length of salt and password in BYTES. */\n var p = passBuf.length();\n var s = salt.length();\n\n /* 1. Construct a string, D (the \"diversifier\"), by concatenating\n v copies of ID. */\n var D = new forge.util.ByteBuffer();\n D.fillWithByte(id, v);\n\n /* 2. Concatenate copies of the salt together to create a string S of length\n v * ceil(s / v) bytes (the final copy of the salt may be trunacted\n to create S).\n Note that if the salt is the empty string, then so is S. */\n var Slen = v * Math.ceil(s / v);\n var S = new forge.util.ByteBuffer();\n for(l = 0; l < Slen; l++) {\n S.putByte(salt.at(l % s));\n }\n\n /* 3. Concatenate copies of the password together to create a string P of\n length v * ceil(p / v) bytes (the final copy of the password may be\n truncated to create P).\n Note that if the password is the empty string, then so is P. */\n var Plen = v * Math.ceil(p / v);\n var P = new forge.util.ByteBuffer();\n for(l = 0; l < Plen; l++) {\n P.putByte(passBuf.at(l % p));\n }\n\n /* 4. Set I=S||P to be the concatenation of S and P. */\n var I = S;\n I.putBuffer(P);\n\n /* 5. Set c=ceil(n / u). */\n var c = Math.ceil(n / u);\n\n /* 6. For i=1, 2, ..., c, do the following: */\n for(var i = 1; i <= c; i++) {\n /* a) Set Ai=H^r(D||I). (l.e. the rth hash of D||I, H(H(H(...H(D||I)))) */\n var buf = new forge.util.ByteBuffer();\n buf.putBytes(D.bytes());\n buf.putBytes(I.bytes());\n for(var round = 0; round < iter; round++) {\n md.start();\n md.update(buf.getBytes());\n buf = md.digest();\n }\n\n /* b) Concatenate copies of Ai to create a string B of length v bytes (the\n final copy of Ai may be truncated to create B). */\n var B = new forge.util.ByteBuffer();\n for(l = 0; l < v; l++) {\n B.putByte(buf.at(l % u));\n }\n\n /* c) Treating I as a concatenation I0, I1, ..., Ik-1 of v-byte blocks,\n where k=ceil(s / v) + ceil(p / v), modify I by setting\n Ij=(Ij+B+1) mod 2v for each j. */\n var k = Math.ceil(s / v) + Math.ceil(p / v);\n var Inew = new forge.util.ByteBuffer();\n for(j = 0; j < k; j++) {\n var chunk = new forge.util.ByteBuffer(I.getBytes(v));\n var x = 0x1ff;\n for(l = B.length() - 1; l >= 0; l--) {\n x = x >> 8;\n x += B.at(l) + chunk.at(l);\n chunk.setAt(l, x & 0xff);\n }\n Inew.putBuffer(chunk);\n }\n I = Inew;\n\n /* Add Ai to A. */\n result.putBuffer(buf);\n }\n\n result.truncate(result.length() - n);\n return result;\n};\n\n/**\n * Get new Forge cipher object instance.\n *\n * @param oid the OID (in string notation).\n * @param params the ASN.1 params object.\n * @param password the password to decrypt with.\n *\n * @return new cipher object instance.\n */\npki.pbe.getCipher = function(oid, params, password) {\n switch(oid) {\n case pki.oids['pkcs5PBES2']:\n return pki.pbe.getCipherForPBES2(oid, params, password);\n\n case pki.oids['pbeWithSHAAnd3-KeyTripleDES-CBC']:\n case pki.oids['pbewithSHAAnd40BitRC2-CBC']:\n return pki.pbe.getCipherForPKCS12PBE(oid, params, password);\n\n default:\n var error = new Error('Cannot read encrypted PBE data block. Unsupported OID.');\n error.oid = oid;\n error.supportedOids = [\n 'pkcs5PBES2',\n 'pbeWithSHAAnd3-KeyTripleDES-CBC',\n 'pbewithSHAAnd40BitRC2-CBC'\n ];\n throw error;\n }\n};\n\n/**\n * Get new Forge cipher object instance according to PBES2 params block.\n *\n * The returned cipher instance is already started using the IV\n * from PBES2 parameter block.\n *\n * @param oid the PKCS#5 PBKDF2 OID (in string notation).\n * @param params the ASN.1 PBES2-params object.\n * @param password the password to decrypt with.\n *\n * @return new cipher object instance.\n */\npki.pbe.getCipherForPBES2 = function(oid, params, password) {\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(params, PBES2AlgorithmsValidator, capture, errors)) {\n var error = new Error('Cannot read password-based-encryption algorithm ' +\n 'parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n // check oids\n oid = asn1.derToOid(capture.kdfOid);\n if(oid !== pki.oids['pkcs5PBKDF2']) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'Unsupported key derivation function OID.');\n error.oid = oid;\n error.supportedOids = ['pkcs5PBKDF2'];\n throw error;\n }\n oid = asn1.derToOid(capture.encOid);\n if(oid !== pki.oids['aes128-CBC'] &&\n oid !== pki.oids['aes192-CBC'] &&\n oid !== pki.oids['aes256-CBC'] &&\n oid !== pki.oids['des-EDE3-CBC'] &&\n oid !== pki.oids['desCBC']) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'Unsupported encryption scheme OID.');\n error.oid = oid;\n error.supportedOids = [\n 'aes128-CBC', 'aes192-CBC', 'aes256-CBC', 'des-EDE3-CBC', 'desCBC'];\n throw error;\n }\n\n // set PBE params\n var salt = capture.kdfSalt;\n var count = forge.util.createBuffer(capture.kdfIterationCount);\n count = count.getInt(count.length() << 3);\n var dkLen;\n var cipherFn;\n switch(pki.oids[oid]) {\n case 'aes128-CBC':\n dkLen = 16;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'aes192-CBC':\n dkLen = 24;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'aes256-CBC':\n dkLen = 32;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'des-EDE3-CBC':\n dkLen = 24;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'desCBC':\n dkLen = 8;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n }\n\n // get PRF message digest\n var md = prfOidToMessageDigest(capture.prfOid);\n\n // decrypt private key using pbe with chosen PRF and AES/DES\n var dk = forge.pkcs5.pbkdf2(password, salt, count, dkLen, md);\n var iv = capture.encIv;\n var cipher = cipherFn(dk);\n cipher.start(iv);\n\n return cipher;\n};\n\n/**\n * Get new Forge cipher object instance for PKCS#12 PBE.\n *\n * The returned cipher instance is already started using the key & IV\n * derived from the provided password and PKCS#12 PBE salt.\n *\n * @param oid The PKCS#12 PBE OID (in string notation).\n * @param params The ASN.1 PKCS#12 PBE-params object.\n * @param password The password to decrypt with.\n *\n * @return the new cipher object instance.\n */\npki.pbe.getCipherForPKCS12PBE = function(oid, params, password) {\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(params, pkcs12PbeParamsValidator, capture, errors)) {\n var error = new Error('Cannot read password-based-encryption algorithm ' +\n 'parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n var salt = forge.util.createBuffer(capture.salt);\n var count = forge.util.createBuffer(capture.iterations);\n count = count.getInt(count.length() << 3);\n\n var dkLen, dIvLen, cipherFn;\n switch(oid) {\n case pki.oids['pbeWithSHAAnd3-KeyTripleDES-CBC']:\n dkLen = 24;\n dIvLen = 8;\n cipherFn = forge.des.startDecrypting;\n break;\n\n case pki.oids['pbewithSHAAnd40BitRC2-CBC']:\n dkLen = 5;\n dIvLen = 8;\n cipherFn = function(key, iv) {\n var cipher = forge.rc2.createDecryptionCipher(key, 40);\n cipher.start(iv, null);\n return cipher;\n };\n break;\n\n default:\n var error = new Error('Cannot read PKCS #12 PBE data block. Unsupported OID.');\n error.oid = oid;\n throw error;\n }\n\n // get PRF message digest\n var md = prfOidToMessageDigest(capture.prfOid);\n var key = pki.pbe.generatePkcs12Key(password, salt, 1, count, dkLen, md);\n md.start();\n var iv = pki.pbe.generatePkcs12Key(password, salt, 2, count, dIvLen, md);\n\n return cipherFn(key, iv);\n};\n\n/**\n * OpenSSL's legacy key derivation function.\n *\n * See: http://www.openssl.org/docs/crypto/EVP_BytesToKey.html\n *\n * @param password the password to derive the key from.\n * @param salt the salt to use, null for none.\n * @param dkLen the number of bytes needed for the derived key.\n * @param [options] the options to use:\n * [md] an optional message digest object to use.\n */\npki.pbe.opensslDeriveBytes = function(password, salt, dkLen, md) {\n if(typeof md === 'undefined' || md === null) {\n if(!('md5' in forge.md)) {\n throw new Error('\"md5\" hash algorithm unavailable.');\n }\n md = forge.md.md5.create();\n }\n if(salt === null) {\n salt = '';\n }\n var digests = [hash(md, password + salt)];\n for(var length = 16, i = 1; length < dkLen; ++i, length += 16) {\n digests.push(hash(md, digests[i - 1] + password + salt));\n }\n return digests.join('').substr(0, dkLen);\n};\n\nfunction hash(md, bytes) {\n return md.start().update(bytes).digest().getBytes();\n}\n\nfunction prfOidToMessageDigest(prfOid) {\n // get PRF algorithm, default to SHA-1\n var prfAlgorithm;\n if(!prfOid) {\n prfAlgorithm = 'hmacWithSHA1';\n } else {\n prfAlgorithm = pki.oids[asn1.derToOid(prfOid)];\n if(!prfAlgorithm) {\n var error = new Error('Unsupported PRF OID.');\n error.oid = prfOid;\n error.supported = [\n 'hmacWithSHA1', 'hmacWithSHA224', 'hmacWithSHA256', 'hmacWithSHA384',\n 'hmacWithSHA512'];\n throw error;\n }\n }\n return prfAlgorithmToMessageDigest(prfAlgorithm);\n}\n\nfunction prfAlgorithmToMessageDigest(prfAlgorithm) {\n var factory = forge.md;\n switch(prfAlgorithm) {\n case 'hmacWithSHA224':\n factory = forge.md.sha512;\n case 'hmacWithSHA1':\n case 'hmacWithSHA256':\n case 'hmacWithSHA384':\n case 'hmacWithSHA512':\n prfAlgorithm = prfAlgorithm.substr(8).toLowerCase();\n break;\n default:\n var error = new Error('Unsupported PRF algorithm.');\n error.algorithm = prfAlgorithm;\n error.supported = [\n 'hmacWithSHA1', 'hmacWithSHA224', 'hmacWithSHA256', 'hmacWithSHA384',\n 'hmacWithSHA512'];\n throw error;\n }\n if(!factory || !(prfAlgorithm in factory)) {\n throw new Error('Unknown hash algorithm: ' + prfAlgorithm);\n }\n return factory[prfAlgorithm].create();\n}\n\nfunction createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm) {\n var params = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // salt\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt),\n // iteration count\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n countBytes.getBytes())\n ]);\n // when PRF algorithm is not SHA-1 default, add key length and PRF algorithm\n if(prfAlgorithm !== 'hmacWithSHA1') {\n params.value.push(\n // key length\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(dkLen.toString(16))),\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids[prfAlgorithm]).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n }\n return params;\n}\n","/**\n * Password-Based Key-Derivation Function #2 implementation.\n *\n * See RFC 2898 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./hmac');\nrequire('./md');\nrequire('./util');\n\nvar pkcs5 = forge.pkcs5 = forge.pkcs5 || {};\n\nvar crypto;\nif(forge.util.isNodejs && !forge.options.usePureJavaScript) {\n crypto = require('crypto');\n}\n\n/**\n * Derives a key from a password.\n *\n * @param p the password as a binary-encoded string of bytes.\n * @param s the salt as a binary-encoded string of bytes.\n * @param c the iteration count, a positive integer.\n * @param dkLen the intended length, in bytes, of the derived key,\n * (max: 2^32 - 1) * hash length of the PRF.\n * @param [md] the message digest (or algorithm identifier as a string) to use\n * in the PRF, defaults to SHA-1.\n * @param [callback(err, key)] presence triggers asynchronous version, called\n * once the operation completes.\n *\n * @return the derived key, as a binary-encoded string of bytes, for the\n * synchronous version (if no callback is specified).\n */\nmodule.exports = forge.pbkdf2 = pkcs5.pbkdf2 = function(\n p, s, c, dkLen, md, callback) {\n if(typeof md === 'function') {\n callback = md;\n md = null;\n }\n\n // use native implementation if possible and not disabled, note that\n // some node versions only support SHA-1, others allow digest to be changed\n if(forge.util.isNodejs && !forge.options.usePureJavaScript &&\n crypto.pbkdf2 && (md === null || typeof md !== 'object') &&\n (crypto.pbkdf2Sync.length > 4 || (!md || md === 'sha1'))) {\n if(typeof md !== 'string') {\n // default prf to SHA-1\n md = 'sha1';\n }\n p = Buffer.from(p, 'binary');\n s = Buffer.from(s, 'binary');\n if(!callback) {\n if(crypto.pbkdf2Sync.length === 4) {\n return crypto.pbkdf2Sync(p, s, c, dkLen).toString('binary');\n }\n return crypto.pbkdf2Sync(p, s, c, dkLen, md).toString('binary');\n }\n if(crypto.pbkdf2Sync.length === 4) {\n return crypto.pbkdf2(p, s, c, dkLen, function(err, key) {\n if(err) {\n return callback(err);\n }\n callback(null, key.toString('binary'));\n });\n }\n return crypto.pbkdf2(p, s, c, dkLen, md, function(err, key) {\n if(err) {\n return callback(err);\n }\n callback(null, key.toString('binary'));\n });\n }\n\n if(typeof md === 'undefined' || md === null) {\n // default prf to SHA-1\n md = 'sha1';\n }\n if(typeof md === 'string') {\n if(!(md in forge.md.algorithms)) {\n throw new Error('Unknown hash algorithm: ' + md);\n }\n md = forge.md[md].create();\n }\n\n var hLen = md.digestLength;\n\n /* 1. If dkLen > (2^32 - 1) * hLen, output \"derived key too long\" and\n stop. */\n if(dkLen > (0xFFFFFFFF * hLen)) {\n var err = new Error('Derived key is too long.');\n if(callback) {\n return callback(err);\n }\n throw err;\n }\n\n /* 2. Let len be the number of hLen-octet blocks in the derived key,\n rounding up, and let r be the number of octets in the last\n block:\n\n len = CEIL(dkLen / hLen),\n r = dkLen - (len - 1) * hLen. */\n var len = Math.ceil(dkLen / hLen);\n var r = dkLen - (len - 1) * hLen;\n\n /* 3. For each block of the derived key apply the function F defined\n below to the password P, the salt S, the iteration count c, and\n the block index to compute the block:\n\n T_1 = F(P, S, c, 1),\n T_2 = F(P, S, c, 2),\n ...\n T_len = F(P, S, c, len),\n\n where the function F is defined as the exclusive-or sum of the\n first c iterates of the underlying pseudorandom function PRF\n applied to the password P and the concatenation of the salt S\n and the block index i:\n\n F(P, S, c, i) = u_1 XOR u_2 XOR ... XOR u_c\n\n where\n\n u_1 = PRF(P, S || INT(i)),\n u_2 = PRF(P, u_1),\n ...\n u_c = PRF(P, u_{c-1}).\n\n Here, INT(i) is a four-octet encoding of the integer i, most\n significant octet first. */\n var prf = forge.hmac.create();\n prf.start(md, p);\n var dk = '';\n var xor, u_c, u_c1;\n\n // sync version\n if(!callback) {\n for(var i = 1; i <= len; ++i) {\n // PRF(P, S || INT(i)) (first iteration)\n prf.start(null, null);\n prf.update(s);\n prf.update(forge.util.int32ToBytes(i));\n xor = u_c1 = prf.digest().getBytes();\n\n // PRF(P, u_{c-1}) (other iterations)\n for(var j = 2; j <= c; ++j) {\n prf.start(null, null);\n prf.update(u_c1);\n u_c = prf.digest().getBytes();\n // F(p, s, c, i)\n xor = forge.util.xorBytes(xor, u_c, hLen);\n u_c1 = u_c;\n }\n\n /* 4. Concatenate the blocks and extract the first dkLen octets to\n produce a derived key DK:\n\n DK = T_1 || T_2 || ... || T_len<0..r-1> */\n dk += (i < len) ? xor : xor.substr(0, r);\n }\n /* 5. Output the derived key DK. */\n return dk;\n }\n\n // async version\n var i = 1, j;\n function outer() {\n if(i > len) {\n // done\n return callback(null, dk);\n }\n\n // PRF(P, S || INT(i)) (first iteration)\n prf.start(null, null);\n prf.update(s);\n prf.update(forge.util.int32ToBytes(i));\n xor = u_c1 = prf.digest().getBytes();\n\n // PRF(P, u_{c-1}) (other iterations)\n j = 2;\n inner();\n }\n\n function inner() {\n if(j <= c) {\n prf.start(null, null);\n prf.update(u_c1);\n u_c = prf.digest().getBytes();\n // F(p, s, c, i)\n xor = forge.util.xorBytes(xor, u_c, hLen);\n u_c1 = u_c;\n ++j;\n return forge.util.setImmediate(inner);\n }\n\n /* 4. Concatenate the blocks and extract the first dkLen octets to\n produce a derived key DK:\n\n DK = T_1 || T_2 || ... || T_len<0..r-1> */\n dk += (i < len) ? xor : xor.substr(0, r);\n\n ++i;\n outer();\n }\n\n outer();\n};\n","/**\n * Javascript implementation of basic PEM (Privacy Enhanced Mail) algorithms.\n *\n * See: RFC 1421.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2013-2014 Digital Bazaar, Inc.\n *\n * A Forge PEM object has the following fields:\n *\n * type: identifies the type of message (eg: \"RSA PRIVATE KEY\").\n *\n * procType: identifies the type of processing performed on the message,\n * it has two subfields: version and type, eg: 4,ENCRYPTED.\n *\n * contentDomain: identifies the type of content in the message, typically\n * only uses the value: \"RFC822\".\n *\n * dekInfo: identifies the message encryption algorithm and mode and includes\n * any parameters for the algorithm, it has two subfields: algorithm and\n * parameters, eg: DES-CBC,F8143EDE5960C597.\n *\n * headers: contains all other PEM encapsulated headers -- where order is\n * significant (for pairing data like recipient ID + key info).\n *\n * body: the binary-encoded body.\n */\nvar forge = require('./forge');\nrequire('./util');\n\n// shortcut for pem API\nvar pem = module.exports = forge.pem = forge.pem || {};\n\n/**\n * Encodes (serializes) the given PEM object.\n *\n * @param msg the PEM message object to encode.\n * @param options the options to use:\n * maxline the maximum characters per line for the body, (default: 64).\n *\n * @return the PEM-formatted string.\n */\npem.encode = function(msg, options) {\n options = options || {};\n var rval = '-----BEGIN ' + msg.type + '-----\\r\\n';\n\n // encode special headers\n var header;\n if(msg.procType) {\n header = {\n name: 'Proc-Type',\n values: [String(msg.procType.version), msg.procType.type]\n };\n rval += foldHeader(header);\n }\n if(msg.contentDomain) {\n header = {name: 'Content-Domain', values: [msg.contentDomain]};\n rval += foldHeader(header);\n }\n if(msg.dekInfo) {\n header = {name: 'DEK-Info', values: [msg.dekInfo.algorithm]};\n if(msg.dekInfo.parameters) {\n header.values.push(msg.dekInfo.parameters);\n }\n rval += foldHeader(header);\n }\n\n if(msg.headers) {\n // encode all other headers\n for(var i = 0; i < msg.headers.length; ++i) {\n rval += foldHeader(msg.headers[i]);\n }\n }\n\n // terminate header\n if(msg.procType) {\n rval += '\\r\\n';\n }\n\n // add body\n rval += forge.util.encode64(msg.body, options.maxline || 64) + '\\r\\n';\n\n rval += '-----END ' + msg.type + '-----\\r\\n';\n return rval;\n};\n\n/**\n * Decodes (deserializes) all PEM messages found in the given string.\n *\n * @param str the PEM-formatted string to decode.\n *\n * @return the PEM message objects in an array.\n */\npem.decode = function(str) {\n var rval = [];\n\n // split string into PEM messages (be lenient w/EOF on BEGIN line)\n var rMessage = /\\s*-----BEGIN ([A-Z0-9- ]+)-----\\r?\\n?([\\x21-\\x7e\\s]+?(?:\\r?\\n\\r?\\n))?([:A-Za-z0-9+\\/=\\s]+?)-----END \\1-----/g;\n var rHeader = /([\\x21-\\x7e]+):\\s*([\\x21-\\x7e\\s^:]+)/;\n var rCRLF = /\\r?\\n/;\n var match;\n while(true) {\n match = rMessage.exec(str);\n if(!match) {\n break;\n }\n\n // accept \"NEW CERTIFICATE REQUEST\" as \"CERTIFICATE REQUEST\"\n // https://datatracker.ietf.org/doc/html/rfc7468#section-7\n var type = match[1];\n if(type === 'NEW CERTIFICATE REQUEST') {\n type = 'CERTIFICATE REQUEST';\n }\n\n var msg = {\n type: type,\n procType: null,\n contentDomain: null,\n dekInfo: null,\n headers: [],\n body: forge.util.decode64(match[3])\n };\n rval.push(msg);\n\n // no headers\n if(!match[2]) {\n continue;\n }\n\n // parse headers\n var lines = match[2].split(rCRLF);\n var li = 0;\n while(match && li < lines.length) {\n // get line, trim any rhs whitespace\n var line = lines[li].replace(/\\s+$/, '');\n\n // RFC2822 unfold any following folded lines\n for(var nl = li + 1; nl < lines.length; ++nl) {\n var next = lines[nl];\n if(!/\\s/.test(next[0])) {\n break;\n }\n line += next;\n li = nl;\n }\n\n // parse header\n match = line.match(rHeader);\n if(match) {\n var header = {name: match[1], values: []};\n var values = match[2].split(',');\n for(var vi = 0; vi < values.length; ++vi) {\n header.values.push(ltrim(values[vi]));\n }\n\n // Proc-Type must be the first header\n if(!msg.procType) {\n if(header.name !== 'Proc-Type') {\n throw new Error('Invalid PEM formatted message. The first ' +\n 'encapsulated header must be \"Proc-Type\".');\n } else if(header.values.length !== 2) {\n throw new Error('Invalid PEM formatted message. The \"Proc-Type\" ' +\n 'header must have two subfields.');\n }\n msg.procType = {version: values[0], type: values[1]};\n } else if(!msg.contentDomain && header.name === 'Content-Domain') {\n // special-case Content-Domain\n msg.contentDomain = values[0] || '';\n } else if(!msg.dekInfo && header.name === 'DEK-Info') {\n // special-case DEK-Info\n if(header.values.length === 0) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must have at least one subfield.');\n }\n msg.dekInfo = {algorithm: values[0], parameters: values[1] || null};\n } else {\n msg.headers.push(header);\n }\n }\n\n ++li;\n }\n\n if(msg.procType === 'ENCRYPTED' && !msg.dekInfo) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must be present if \"Proc-Type\" is \"ENCRYPTED\".');\n }\n }\n\n if(rval.length === 0) {\n throw new Error('Invalid PEM formatted message.');\n }\n\n return rval;\n};\n\nfunction foldHeader(header) {\n var rval = header.name + ': ';\n\n // ensure values with CRLF are folded\n var values = [];\n var insertSpace = function(match, $1) {\n return ' ' + $1;\n };\n for(var i = 0; i < header.values.length; ++i) {\n values.push(header.values[i].replace(/^(\\S+\\r\\n)/, insertSpace));\n }\n rval += values.join(',') + '\\r\\n';\n\n // do folding\n var length = 0;\n var candidate = -1;\n for(var i = 0; i < rval.length; ++i, ++length) {\n if(length > 65 && candidate !== -1) {\n var insert = rval[candidate];\n if(insert === ',') {\n ++candidate;\n rval = rval.substr(0, candidate) + '\\r\\n ' + rval.substr(candidate);\n } else {\n rval = rval.substr(0, candidate) +\n '\\r\\n' + insert + rval.substr(candidate + 1);\n }\n length = (i - candidate - 1);\n candidate = -1;\n ++i;\n } else if(rval[i] === ' ' || rval[i] === '\\t' || rval[i] === ',') {\n candidate = i;\n }\n }\n\n return rval;\n}\n\nfunction ltrim(str) {\n return str.replace(/^\\s+/, '');\n}\n","/**\n * Partial implementation of PKCS#1 v2.2: RSA-OEAP\n *\n * Modified but based on the following MIT and BSD licensed code:\n *\n * https://github.com/kjur/jsjws/blob/master/rsa.js:\n *\n * The 'jsjws'(JSON Web Signature JavaScript Library) License\n *\n * Copyright (c) 2012 Kenji Urushima\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * http://webrsa.cvs.sourceforge.net/viewvc/webrsa/Client/RSAES-OAEP.js?content-type=text%2Fplain:\n *\n * RSAES-OAEP.js\n * $Id: RSAES-OAEP.js,v 1.1.1.1 2003/03/19 15:37:20 ellispritchard Exp $\n * JavaScript Implementation of PKCS #1 v2.1 RSA CRYPTOGRAPHY STANDARD (RSA Laboratories, June 14, 2002)\n * Copyright (C) Ellis Pritchard, Guardian Unlimited 2003.\n * Contact: ellis@nukinetics.com\n * Distributed under the BSD License.\n *\n * Official documentation: http://www.rsa.com/rsalabs/node.asp?id=2125\n *\n * @author Evan Jones (http://evanjones.ca/)\n * @author Dave Longley\n *\n * Copyright (c) 2013-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./random');\nrequire('./sha1');\n\n// shortcut for PKCS#1 API\nvar pkcs1 = module.exports = forge.pkcs1 = forge.pkcs1 || {};\n\n/**\n * Encode the given RSAES-OAEP message (M) using key, with optional label (L)\n * and seed.\n *\n * This method does not perform RSA encryption, it only encodes the message\n * using RSAES-OAEP.\n *\n * @param key the RSA key to use.\n * @param message the message to encode.\n * @param options the options to use:\n * label an optional label to use.\n * seed the seed to use.\n * md the message digest object to use, undefined for SHA-1.\n * mgf1 optional mgf1 parameters:\n * md the message digest object to use for MGF1.\n *\n * @return the encoded message bytes.\n */\npkcs1.encode_rsa_oaep = function(key, message, options) {\n // parse arguments\n var label;\n var seed;\n var md;\n var mgf1Md;\n // legacy args (label, seed, md)\n if(typeof options === 'string') {\n label = options;\n seed = arguments[3] || undefined;\n md = arguments[4] || undefined;\n } else if(options) {\n label = options.label || undefined;\n seed = options.seed || undefined;\n md = options.md || undefined;\n if(options.mgf1 && options.mgf1.md) {\n mgf1Md = options.mgf1.md;\n }\n }\n\n // default OAEP to SHA-1 message digest\n if(!md) {\n md = forge.md.sha1.create();\n } else {\n md.start();\n }\n\n // default MGF-1 to same as OAEP\n if(!mgf1Md) {\n mgf1Md = md;\n }\n\n // compute length in bytes and check output\n var keyLength = Math.ceil(key.n.bitLength() / 8);\n var maxLength = keyLength - 2 * md.digestLength - 2;\n if(message.length > maxLength) {\n var error = new Error('RSAES-OAEP input message length is too long.');\n error.length = message.length;\n error.maxLength = maxLength;\n throw error;\n }\n\n if(!label) {\n label = '';\n }\n md.update(label, 'raw');\n var lHash = md.digest();\n\n var PS = '';\n var PS_length = maxLength - message.length;\n for(var i = 0; i < PS_length; i++) {\n PS += '\\x00';\n }\n\n var DB = lHash.getBytes() + PS + '\\x01' + message;\n\n if(!seed) {\n seed = forge.random.getBytes(md.digestLength);\n } else if(seed.length !== md.digestLength) {\n var error = new Error('Invalid RSAES-OAEP seed. The seed length must ' +\n 'match the digest length.');\n error.seedLength = seed.length;\n error.digestLength = md.digestLength;\n throw error;\n }\n\n var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md);\n var maskedDB = forge.util.xorBytes(DB, dbMask, DB.length);\n\n var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md);\n var maskedSeed = forge.util.xorBytes(seed, seedMask, seed.length);\n\n // return encoded message\n return '\\x00' + maskedSeed + maskedDB;\n};\n\n/**\n * Decode the given RSAES-OAEP encoded message (EM) using key, with optional\n * label (L).\n *\n * This method does not perform RSA decryption, it only decodes the message\n * using RSAES-OAEP.\n *\n * @param key the RSA key to use.\n * @param em the encoded message to decode.\n * @param options the options to use:\n * label an optional label to use.\n * md the message digest object to use for OAEP, undefined for SHA-1.\n * mgf1 optional mgf1 parameters:\n * md the message digest object to use for MGF1.\n *\n * @return the decoded message bytes.\n */\npkcs1.decode_rsa_oaep = function(key, em, options) {\n // parse args\n var label;\n var md;\n var mgf1Md;\n // legacy args\n if(typeof options === 'string') {\n label = options;\n md = arguments[3] || undefined;\n } else if(options) {\n label = options.label || undefined;\n md = options.md || undefined;\n if(options.mgf1 && options.mgf1.md) {\n mgf1Md = options.mgf1.md;\n }\n }\n\n // compute length in bytes\n var keyLength = Math.ceil(key.n.bitLength() / 8);\n\n if(em.length !== keyLength) {\n var error = new Error('RSAES-OAEP encoded message length is invalid.');\n error.length = em.length;\n error.expectedLength = keyLength;\n throw error;\n }\n\n // default OAEP to SHA-1 message digest\n if(md === undefined) {\n md = forge.md.sha1.create();\n } else {\n md.start();\n }\n\n // default MGF-1 to same as OAEP\n if(!mgf1Md) {\n mgf1Md = md;\n }\n\n if(keyLength < 2 * md.digestLength + 2) {\n throw new Error('RSAES-OAEP key is too short for the hash function.');\n }\n\n if(!label) {\n label = '';\n }\n md.update(label, 'raw');\n var lHash = md.digest().getBytes();\n\n // split the message into its parts\n var y = em.charAt(0);\n var maskedSeed = em.substring(1, md.digestLength + 1);\n var maskedDB = em.substring(1 + md.digestLength);\n\n var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md);\n var seed = forge.util.xorBytes(maskedSeed, seedMask, maskedSeed.length);\n\n var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md);\n var db = forge.util.xorBytes(maskedDB, dbMask, maskedDB.length);\n\n var lHashPrime = db.substring(0, md.digestLength);\n\n // constant time check that all values match what is expected\n var error = (y !== '\\x00');\n\n // constant time check lHash vs lHashPrime\n for(var i = 0; i < md.digestLength; ++i) {\n error |= (lHash.charAt(i) !== lHashPrime.charAt(i));\n }\n\n // \"constant time\" find the 0x1 byte separating the padding (zeros) from the\n // message\n // TODO: It must be possible to do this in a better/smarter way?\n var in_ps = 1;\n var index = md.digestLength;\n for(var j = md.digestLength; j < db.length; j++) {\n var code = db.charCodeAt(j);\n\n var is_0 = (code & 0x1) ^ 0x1;\n\n // non-zero if not 0 or 1 in the ps section\n var error_mask = in_ps ? 0xfffe : 0x0000;\n error |= (code & error_mask);\n\n // latch in_ps to zero after we find 0x1\n in_ps = in_ps & is_0;\n index += in_ps;\n }\n\n if(error || db.charCodeAt(index) !== 0x1) {\n throw new Error('Invalid RSAES-OAEP padding.');\n }\n\n return db.substring(index + 1);\n};\n\nfunction rsa_mgf1(seed, maskLength, hash) {\n // default to SHA-1 message digest\n if(!hash) {\n hash = forge.md.sha1.create();\n }\n var t = '';\n var count = Math.ceil(maskLength / hash.digestLength);\n for(var i = 0; i < count; ++i) {\n var c = String.fromCharCode(\n (i >> 24) & 0xFF, (i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF);\n hash.start();\n hash.update(seed + c);\n t += hash.digest().getBytes();\n }\n return t.substring(0, maskLength);\n}\n","/**\n * Javascript implementation of PKCS#12.\n *\n * @author Dave Longley\n * @author Stefan Siegl \n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * The ASN.1 representation of PKCS#12 is as follows\n * (see ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12-tc1.pdf for details)\n *\n * PFX ::= SEQUENCE {\n * version INTEGER {v3(3)}(v3,...),\n * authSafe ContentInfo,\n * macData MacData OPTIONAL\n * }\n *\n * MacData ::= SEQUENCE {\n * mac DigestInfo,\n * macSalt OCTET STRING,\n * iterations INTEGER DEFAULT 1\n * }\n * Note: The iterations default is for historical reasons and its use is\n * deprecated. A higher value, like 1024, is recommended.\n *\n * DigestInfo is defined in PKCS#7 as follows:\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n *\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of SHA1 there is none.\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * Digest ::= OCTET STRING\n *\n *\n * ContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL\n * }\n *\n * ContentType ::= OBJECT IDENTIFIER\n *\n * AuthenticatedSafe ::= SEQUENCE OF ContentInfo\n * -- Data if unencrypted\n * -- EncryptedData if password-encrypted\n * -- EnvelopedData if public key-encrypted\n *\n *\n * SafeContents ::= SEQUENCE OF SafeBag\n *\n * SafeBag ::= SEQUENCE {\n * bagId BAG-TYPE.&id ({PKCS12BagSet})\n * bagValue [0] EXPLICIT BAG-TYPE.&Type({PKCS12BagSet}{@bagId}),\n * bagAttributes SET OF PKCS12Attribute OPTIONAL\n * }\n *\n * PKCS12Attribute ::= SEQUENCE {\n * attrId ATTRIBUTE.&id ({PKCS12AttrSet}),\n * attrValues SET OF ATTRIBUTE.&Type ({PKCS12AttrSet}{@attrId})\n * } -- This type is compatible with the X.500 type 'Attribute'\n *\n * PKCS12AttrSet ATTRIBUTE ::= {\n * friendlyName | -- from PKCS #9\n * localKeyId, -- from PKCS #9\n * ... -- Other attributes are allowed\n * }\n *\n * CertBag ::= SEQUENCE {\n * certId BAG-TYPE.&id ({CertTypes}),\n * certValue [0] EXPLICIT BAG-TYPE.&Type ({CertTypes}{@certId})\n * }\n *\n * x509Certificate BAG-TYPE ::= {OCTET STRING IDENTIFIED BY {certTypes 1}}\n * -- DER-encoded X.509 certificate stored in OCTET STRING\n *\n * sdsiCertificate BAG-TYPE ::= {IA5String IDENTIFIED BY {certTypes 2}}\n * -- Base64-encoded SDSI certificate stored in IA5String\n *\n * CertTypes BAG-TYPE ::= {\n * x509Certificate |\n * sdsiCertificate,\n * ... -- For future extensions\n * }\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./hmac');\nrequire('./oids');\nrequire('./pkcs7asn1');\nrequire('./pbe');\nrequire('./random');\nrequire('./rsa');\nrequire('./sha1');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for asn.1 & PKI API\nvar asn1 = forge.asn1;\nvar pki = forge.pki;\n\n// shortcut for PKCS#12 API\nvar p12 = module.exports = forge.pkcs12 = forge.pkcs12 || {};\n\nvar contentInfoValidator = {\n name: 'ContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // a ContentInfo\n constructed: true,\n value: [{\n name: 'ContentInfo.contentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'ContentInfo.content',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n captureAsn1: 'content'\n }]\n};\n\nvar pfxValidator = {\n name: 'PFX',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PFX.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n },\n contentInfoValidator, {\n name: 'PFX.macData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'mac',\n value: [{\n name: 'PFX.macData.mac',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // DigestInfo\n constructed: true,\n value: [{\n name: 'PFX.macData.mac.digestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // DigestAlgorithmIdentifier\n constructed: true,\n value: [{\n name: 'PFX.macData.mac.digestAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'macAlgorithm'\n }, {\n name: 'PFX.macData.mac.digestAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n captureAsn1: 'macAlgorithmParameters'\n }]\n }, {\n name: 'PFX.macData.mac.digest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'macDigest'\n }]\n }, {\n name: 'PFX.macData.macSalt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'macSalt'\n }, {\n name: 'PFX.macData.iterations',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n optional: true,\n capture: 'macIterations'\n }]\n }]\n};\n\nvar safeBagValidator = {\n name: 'SafeBag',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SafeBag.bagId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'bagId'\n }, {\n name: 'SafeBag.bagValue',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n captureAsn1: 'bagValue'\n }, {\n name: 'SafeBag.bagAttributes',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n optional: true,\n capture: 'bagAttributes'\n }]\n};\n\nvar attributeValidator = {\n name: 'Attribute',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Attribute.attrId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'oid'\n }, {\n name: 'Attribute.attrValues',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n capture: 'values'\n }]\n};\n\nvar certBagValidator = {\n name: 'CertBag',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'CertBag.certId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certId'\n }, {\n name: 'CertBag.certValue',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n /* So far we only support X.509 certificates (which are wrapped in\n an OCTET STRING, hence hard code that here). */\n value: [{\n name: 'CertBag.certValue[0]',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.OCTETSTRING,\n constructed: false,\n capture: 'cert'\n }]\n }]\n};\n\n/**\n * Search SafeContents structure for bags with matching attributes.\n *\n * The search can optionally be narrowed by a certain bag type.\n *\n * @param safeContents the SafeContents structure to search in.\n * @param attrName the name of the attribute to compare against.\n * @param attrValue the attribute value to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of matching bags.\n */\nfunction _getBagsByAttribute(safeContents, attrName, attrValue, bagType) {\n var result = [];\n\n for(var i = 0; i < safeContents.length; i++) {\n for(var j = 0; j < safeContents[i].safeBags.length; j++) {\n var bag = safeContents[i].safeBags[j];\n if(bagType !== undefined && bag.type !== bagType) {\n continue;\n }\n // only filter by bag type, no attribute specified\n if(attrName === null) {\n result.push(bag);\n continue;\n }\n if(bag.attributes[attrName] !== undefined &&\n bag.attributes[attrName].indexOf(attrValue) >= 0) {\n result.push(bag);\n }\n }\n }\n\n return result;\n}\n\n/**\n * Converts a PKCS#12 PFX in ASN.1 notation into a PFX object.\n *\n * @param obj The PKCS#12 PFX in ASN.1 notation.\n * @param strict true to use strict DER decoding, false not to (default: true).\n * @param {String} password Password to decrypt with (optional).\n *\n * @return PKCS#12 PFX object.\n */\np12.pkcs12FromAsn1 = function(obj, strict, password) {\n // handle args\n if(typeof strict === 'string') {\n password = strict;\n strict = true;\n } else if(strict === undefined) {\n strict = true;\n }\n\n // validate PFX and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, pfxValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 PFX. ' +\n 'ASN.1 object is not an PKCS#12 PFX.');\n error.errors = error;\n throw error;\n }\n\n var pfx = {\n version: capture.version.charCodeAt(0),\n safeContents: [],\n\n /**\n * Gets bags with matching attributes.\n *\n * @param filter the attributes to filter by:\n * [localKeyId] the localKeyId to search for.\n * [localKeyIdHex] the localKeyId in hex to search for.\n * [friendlyName] the friendly name to search for.\n * [bagType] bag type to narrow each attribute search by.\n *\n * @return a map of attribute type to an array of matching bags or, if no\n * attribute was given but a bag type, the map key will be the\n * bag type.\n */\n getBags: function(filter) {\n var rval = {};\n\n var localKeyId;\n if('localKeyId' in filter) {\n localKeyId = filter.localKeyId;\n } else if('localKeyIdHex' in filter) {\n localKeyId = forge.util.hexToBytes(filter.localKeyIdHex);\n }\n\n // filter on bagType only\n if(localKeyId === undefined && !('friendlyName' in filter) &&\n 'bagType' in filter) {\n rval[filter.bagType] = _getBagsByAttribute(\n pfx.safeContents, null, null, filter.bagType);\n }\n\n if(localKeyId !== undefined) {\n rval.localKeyId = _getBagsByAttribute(\n pfx.safeContents, 'localKeyId',\n localKeyId, filter.bagType);\n }\n if('friendlyName' in filter) {\n rval.friendlyName = _getBagsByAttribute(\n pfx.safeContents, 'friendlyName',\n filter.friendlyName, filter.bagType);\n }\n\n return rval;\n },\n\n /**\n * DEPRECATED: use getBags() instead.\n *\n * Get bags with matching friendlyName attribute.\n *\n * @param friendlyName the friendly name to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of bags with matching friendlyName attribute.\n */\n getBagsByFriendlyName: function(friendlyName, bagType) {\n return _getBagsByAttribute(\n pfx.safeContents, 'friendlyName', friendlyName, bagType);\n },\n\n /**\n * DEPRECATED: use getBags() instead.\n *\n * Get bags with matching localKeyId attribute.\n *\n * @param localKeyId the localKeyId to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of bags with matching localKeyId attribute.\n */\n getBagsByLocalKeyId: function(localKeyId, bagType) {\n return _getBagsByAttribute(\n pfx.safeContents, 'localKeyId', localKeyId, bagType);\n }\n };\n\n if(capture.version.charCodeAt(0) !== 3) {\n var error = new Error('PKCS#12 PFX of version other than 3 not supported.');\n error.version = capture.version.charCodeAt(0);\n throw error;\n }\n\n if(asn1.derToOid(capture.contentType) !== pki.oids.data) {\n var error = new Error('Only PKCS#12 PFX in password integrity mode supported.');\n error.oid = asn1.derToOid(capture.contentType);\n throw error;\n }\n\n var data = capture.content.value[0];\n if(data.tagClass !== asn1.Class.UNIVERSAL ||\n data.type !== asn1.Type.OCTETSTRING) {\n throw new Error('PKCS#12 authSafe content data is not an OCTET STRING.');\n }\n data = _decodePkcs7Data(data);\n\n // check for MAC\n if(capture.mac) {\n var md = null;\n var macKeyBytes = 0;\n var macAlgorithm = asn1.derToOid(capture.macAlgorithm);\n switch(macAlgorithm) {\n case pki.oids.sha1:\n md = forge.md.sha1.create();\n macKeyBytes = 20;\n break;\n case pki.oids.sha256:\n md = forge.md.sha256.create();\n macKeyBytes = 32;\n break;\n case pki.oids.sha384:\n md = forge.md.sha384.create();\n macKeyBytes = 48;\n break;\n case pki.oids.sha512:\n md = forge.md.sha512.create();\n macKeyBytes = 64;\n break;\n case pki.oids.md5:\n md = forge.md.md5.create();\n macKeyBytes = 16;\n break;\n }\n if(md === null) {\n throw new Error('PKCS#12 uses unsupported MAC algorithm: ' + macAlgorithm);\n }\n\n // verify MAC (iterations default to 1)\n var macSalt = new forge.util.ByteBuffer(capture.macSalt);\n var macIterations = (('macIterations' in capture) ?\n parseInt(forge.util.bytesToHex(capture.macIterations), 16) : 1);\n var macKey = p12.generateKey(\n password, macSalt, 3, macIterations, macKeyBytes, md);\n var mac = forge.hmac.create();\n mac.start(md, macKey);\n mac.update(data.value);\n var macValue = mac.getMac();\n if(macValue.getBytes() !== capture.macDigest) {\n throw new Error('PKCS#12 MAC could not be verified. Invalid password?');\n }\n }\n\n _decodeAuthenticatedSafe(pfx, data.value, strict, password);\n return pfx;\n};\n\n/**\n * Decodes PKCS#7 Data. PKCS#7 (RFC 2315) defines \"Data\" as an OCTET STRING,\n * but it is sometimes an OCTET STRING that is composed/constructed of chunks,\n * each its own OCTET STRING. This is BER-encoding vs. DER-encoding. This\n * function transforms this corner-case into the usual simple,\n * non-composed/constructed OCTET STRING.\n *\n * This function may be moved to ASN.1 at some point to better deal with\n * more BER-encoding issues, should they arise.\n *\n * @param data the ASN.1 Data object to transform.\n */\nfunction _decodePkcs7Data(data) {\n // handle special case of \"chunked\" data content: an octet string composed\n // of other octet strings\n if(data.composed || data.constructed) {\n var value = forge.util.createBuffer();\n for(var i = 0; i < data.value.length; ++i) {\n value.putBytes(data.value[i].value);\n }\n data.composed = data.constructed = false;\n data.value = value.getBytes();\n }\n return data;\n}\n\n/**\n * Decode PKCS#12 AuthenticatedSafe (BER encoded) into PFX object.\n *\n * The AuthenticatedSafe is a BER-encoded SEQUENCE OF ContentInfo.\n *\n * @param pfx The PKCS#12 PFX object to fill.\n * @param {String} authSafe BER-encoded AuthenticatedSafe.\n * @param strict true to use strict DER decoding, false not to.\n * @param {String} password Password to decrypt with (optional).\n */\nfunction _decodeAuthenticatedSafe(pfx, authSafe, strict, password) {\n authSafe = asn1.fromDer(authSafe, strict); /* actually it's BER encoded */\n\n if(authSafe.tagClass !== asn1.Class.UNIVERSAL ||\n authSafe.type !== asn1.Type.SEQUENCE ||\n authSafe.constructed !== true) {\n throw new Error('PKCS#12 AuthenticatedSafe expected to be a ' +\n 'SEQUENCE OF ContentInfo');\n }\n\n for(var i = 0; i < authSafe.value.length; i++) {\n var contentInfo = authSafe.value[i];\n\n // validate contentInfo and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(contentInfo, contentInfoValidator, capture, errors)) {\n var error = new Error('Cannot read ContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var obj = {\n encrypted: false\n };\n var safeContents = null;\n var data = capture.content.value[0];\n switch(asn1.derToOid(capture.contentType)) {\n case pki.oids.data:\n if(data.tagClass !== asn1.Class.UNIVERSAL ||\n data.type !== asn1.Type.OCTETSTRING) {\n throw new Error('PKCS#12 SafeContents Data is not an OCTET STRING.');\n }\n safeContents = _decodePkcs7Data(data).value;\n break;\n case pki.oids.encryptedData:\n safeContents = _decryptSafeContents(data, password);\n obj.encrypted = true;\n break;\n default:\n var error = new Error('Unsupported PKCS#12 contentType.');\n error.contentType = asn1.derToOid(capture.contentType);\n throw error;\n }\n\n obj.safeBags = _decodeSafeContents(safeContents, strict, password);\n pfx.safeContents.push(obj);\n }\n}\n\n/**\n * Decrypt PKCS#7 EncryptedData structure.\n *\n * @param data ASN.1 encoded EncryptedContentInfo object.\n * @param password The user-provided password.\n *\n * @return The decrypted SafeContents (ASN.1 object).\n */\nfunction _decryptSafeContents(data, password) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(\n data, forge.pkcs7.asn1.encryptedDataValidator, capture, errors)) {\n var error = new Error('Cannot read EncryptedContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var oid = asn1.derToOid(capture.contentType);\n if(oid !== pki.oids.data) {\n var error = new Error(\n 'PKCS#12 EncryptedContentInfo ContentType is not Data.');\n error.oid = oid;\n throw error;\n }\n\n // get cipher\n oid = asn1.derToOid(capture.encAlgorithm);\n var cipher = pki.pbe.getCipher(oid, capture.encParameter, password);\n\n // get encrypted data\n var encryptedContentAsn1 = _decodePkcs7Data(capture.encryptedContentAsn1);\n var encrypted = forge.util.createBuffer(encryptedContentAsn1.value);\n\n cipher.update(encrypted);\n if(!cipher.finish()) {\n throw new Error('Failed to decrypt PKCS#12 SafeContents.');\n }\n\n return cipher.output.getBytes();\n}\n\n/**\n * Decode PKCS#12 SafeContents (BER-encoded) into array of Bag objects.\n *\n * The safeContents is a BER-encoded SEQUENCE OF SafeBag.\n *\n * @param {String} safeContents BER-encoded safeContents.\n * @param strict true to use strict DER decoding, false not to.\n * @param {String} password Password to decrypt with (optional).\n *\n * @return {Array} Array of Bag objects.\n */\nfunction _decodeSafeContents(safeContents, strict, password) {\n // if strict and no safe contents, return empty safes\n if(!strict && safeContents.length === 0) {\n return [];\n }\n\n // actually it's BER-encoded\n safeContents = asn1.fromDer(safeContents, strict);\n\n if(safeContents.tagClass !== asn1.Class.UNIVERSAL ||\n safeContents.type !== asn1.Type.SEQUENCE ||\n safeContents.constructed !== true) {\n throw new Error(\n 'PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag.');\n }\n\n var res = [];\n for(var i = 0; i < safeContents.value.length; i++) {\n var safeBag = safeContents.value[i];\n\n // validate SafeBag and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(safeBag, safeBagValidator, capture, errors)) {\n var error = new Error('Cannot read SafeBag.');\n error.errors = errors;\n throw error;\n }\n\n /* Create bag object and push to result array. */\n var bag = {\n type: asn1.derToOid(capture.bagId),\n attributes: _decodeBagAttributes(capture.bagAttributes)\n };\n res.push(bag);\n\n var validator, decoder;\n var bagAsn1 = capture.bagValue.value[0];\n switch(bag.type) {\n case pki.oids.pkcs8ShroudedKeyBag:\n /* bagAsn1 has a EncryptedPrivateKeyInfo, which we need to decrypt.\n Afterwards we can handle it like a keyBag,\n which is a PrivateKeyInfo. */\n bagAsn1 = pki.decryptPrivateKeyInfo(bagAsn1, password);\n if(bagAsn1 === null) {\n throw new Error(\n 'Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?');\n }\n\n /* fall through */\n case pki.oids.keyBag:\n /* A PKCS#12 keyBag is a simple PrivateKeyInfo as understood by our\n PKI module, hence we don't have to do validation/capturing here,\n just pass what we already got. */\n try {\n bag.key = pki.privateKeyFromAsn1(bagAsn1);\n } catch(e) {\n // ignore unknown key type, pass asn1 value\n bag.key = null;\n bag.asn1 = bagAsn1;\n }\n continue; /* Nothing more to do. */\n\n case pki.oids.certBag:\n /* A PKCS#12 certBag can wrap both X.509 and sdsi certificates.\n Therefore put the SafeBag content through another validator to\n capture the fields. Afterwards check & store the results. */\n validator = certBagValidator;\n decoder = function() {\n if(asn1.derToOid(capture.certId) !== pki.oids.x509Certificate) {\n var error = new Error(\n 'Unsupported certificate type, only X.509 supported.');\n error.oid = asn1.derToOid(capture.certId);\n throw error;\n }\n\n // true=produce cert hash\n var certAsn1 = asn1.fromDer(capture.cert, strict);\n try {\n bag.cert = pki.certificateFromAsn1(certAsn1, true);\n } catch(e) {\n // ignore unknown cert type, pass asn1 value\n bag.cert = null;\n bag.asn1 = certAsn1;\n }\n };\n break;\n\n default:\n var error = new Error('Unsupported PKCS#12 SafeBag type.');\n error.oid = bag.type;\n throw error;\n }\n\n /* Validate SafeBag value (i.e. CertBag, etc.) and capture data if needed. */\n if(validator !== undefined &&\n !asn1.validate(bagAsn1, validator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 ' + validator.name);\n error.errors = errors;\n throw error;\n }\n\n /* Call decoder function from above to store the results. */\n decoder();\n }\n\n return res;\n}\n\n/**\n * Decode PKCS#12 SET OF PKCS12Attribute into JavaScript object.\n *\n * @param attributes SET OF PKCS12Attribute (ASN.1 object).\n *\n * @return the decoded attributes.\n */\nfunction _decodeBagAttributes(attributes) {\n var decodedAttrs = {};\n\n if(attributes !== undefined) {\n for(var i = 0; i < attributes.length; ++i) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(attributes[i], attributeValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 BagAttribute.');\n error.errors = errors;\n throw error;\n }\n\n var oid = asn1.derToOid(capture.oid);\n if(pki.oids[oid] === undefined) {\n // unsupported attribute type, ignore.\n continue;\n }\n\n decodedAttrs[pki.oids[oid]] = [];\n for(var j = 0; j < capture.values.length; ++j) {\n decodedAttrs[pki.oids[oid]].push(capture.values[j].value);\n }\n }\n }\n\n return decodedAttrs;\n}\n\n/**\n * Wraps a private key and certificate in a PKCS#12 PFX wrapper. If a\n * password is provided then the private key will be encrypted.\n *\n * An entire certificate chain may also be included. To do this, pass\n * an array for the \"cert\" parameter where the first certificate is\n * the one that is paired with the private key and each subsequent one\n * verifies the previous one. The certificates may be in PEM format or\n * have been already parsed by Forge.\n *\n * @todo implement password-based-encryption for the whole package\n *\n * @param key the private key.\n * @param cert the certificate (may be an array of certificates in order\n * to specify a certificate chain).\n * @param password the password to use, null for none.\n * @param options:\n * algorithm the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des'), defaults to 'aes128'.\n * count the iteration count to use.\n * saltSize the salt size to use.\n * useMac true to include a MAC, false not to, defaults to true.\n * localKeyId the local key ID to use, in hex.\n * friendlyName the friendly name to use.\n * generateLocalKeyId true to generate a random local key ID,\n * false not to, defaults to true.\n *\n * @return the PKCS#12 PFX ASN.1 object.\n */\np12.toPkcs12Asn1 = function(key, cert, password, options) {\n // set default options\n options = options || {};\n options.saltSize = options.saltSize || 8;\n options.count = options.count || 2048;\n options.algorithm = options.algorithm || options.encAlgorithm || 'aes128';\n if(!('useMac' in options)) {\n options.useMac = true;\n }\n if(!('localKeyId' in options)) {\n options.localKeyId = null;\n }\n if(!('generateLocalKeyId' in options)) {\n options.generateLocalKeyId = true;\n }\n\n var localKeyId = options.localKeyId;\n var bagAttrs;\n if(localKeyId !== null) {\n localKeyId = forge.util.hexToBytes(localKeyId);\n } else if(options.generateLocalKeyId) {\n // use SHA-1 of paired cert, if available\n if(cert) {\n var pairedCert = forge.util.isArray(cert) ? cert[0] : cert;\n if(typeof pairedCert === 'string') {\n pairedCert = pki.certificateFromPem(pairedCert);\n }\n var sha1 = forge.md.sha1.create();\n sha1.update(asn1.toDer(pki.certificateToAsn1(pairedCert)).getBytes());\n localKeyId = sha1.digest().getBytes();\n } else {\n // FIXME: consider using SHA-1 of public key (which can be generated\n // from private key components), see: cert.generateSubjectKeyIdentifier\n // generate random bytes\n localKeyId = forge.random.getBytes(20);\n }\n }\n\n var attrs = [];\n if(localKeyId !== null) {\n attrs.push(\n // localKeyID\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // attrId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.localKeyId).getBytes()),\n // attrValues\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n localKeyId)\n ])\n ]));\n }\n if('friendlyName' in options) {\n attrs.push(\n // friendlyName\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // attrId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.friendlyName).getBytes()),\n // attrValues\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BMPSTRING, false,\n options.friendlyName)\n ])\n ]));\n }\n\n if(attrs.length > 0) {\n bagAttrs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, attrs);\n }\n\n // collect contents for AuthenticatedSafe\n var contents = [];\n\n // create safe bag(s) for certificate chain\n var chain = [];\n if(cert !== null) {\n if(forge.util.isArray(cert)) {\n chain = cert;\n } else {\n chain = [cert];\n }\n }\n\n var certSafeBags = [];\n for(var i = 0; i < chain.length; ++i) {\n // convert cert from PEM as necessary\n cert = chain[i];\n if(typeof cert === 'string') {\n cert = pki.certificateFromPem(cert);\n }\n\n // SafeBag\n var certBagAttrs = (i === 0) ? bagAttrs : undefined;\n var certAsn1 = pki.certificateToAsn1(cert);\n var certSafeBag =\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.certBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // CertBag\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // certId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.x509Certificate).getBytes()),\n // certValue (x509Certificate)\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(certAsn1).getBytes())\n ])])]),\n // bagAttributes (OPTIONAL)\n certBagAttrs\n ]);\n certSafeBags.push(certSafeBag);\n }\n\n if(certSafeBags.length > 0) {\n // SafeContents\n var certSafeContents = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, certSafeBags);\n\n // ContentInfo\n var certCI =\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(certSafeContents).getBytes())\n ])\n ]);\n contents.push(certCI);\n }\n\n // create safe contents for private key\n var keyBag = null;\n if(key !== null) {\n // SafeBag\n var pkAsn1 = pki.wrapRsaPrivateKey(pki.privateKeyToAsn1(key));\n if(password === null) {\n // no encryption\n keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.keyBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // PrivateKeyInfo\n pkAsn1\n ]),\n // bagAttributes (OPTIONAL)\n bagAttrs\n ]);\n } else {\n // encrypted PrivateKeyInfo\n keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.pkcs8ShroudedKeyBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // EncryptedPrivateKeyInfo\n pki.encryptPrivateKeyInfo(pkAsn1, password, options)\n ]),\n // bagAttributes (OPTIONAL)\n bagAttrs\n ]);\n }\n\n // SafeContents\n var keySafeContents =\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [keyBag]);\n\n // ContentInfo\n var keyCI =\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(keySafeContents).getBytes())\n ])\n ]);\n contents.push(keyCI);\n }\n\n // create AuthenticatedSafe by stringing together the contents\n var safe = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, contents);\n\n var macData;\n if(options.useMac) {\n // MacData\n var sha1 = forge.md.sha1.create();\n var macSalt = new forge.util.ByteBuffer(\n forge.random.getBytes(options.saltSize));\n var count = options.count;\n // 160-bit key\n var key = p12.generateKey(password, macSalt, 3, count, 20);\n var mac = forge.hmac.create();\n mac.start(sha1, key);\n mac.update(asn1.toDer(safe).getBytes());\n var macValue = mac.getMac();\n macData = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // mac DigestInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // digestAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm = SHA-1\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.sha1).getBytes()),\n // parameters = Null\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // digest\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING,\n false, macValue.getBytes())\n ]),\n // macSalt OCTET STRING\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, macSalt.getBytes()),\n // iterations INTEGER (XXX: Only support count < 65536)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(count).getBytes()\n )\n ]);\n }\n\n // PFX\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (3)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(3).getBytes()),\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(safe).getBytes())\n ])\n ]),\n macData\n ]);\n};\n\n/**\n * Derives a PKCS#12 key.\n *\n * @param password the password to derive the key material from, null or\n * undefined for none.\n * @param salt the salt, as a ByteBuffer, to use.\n * @param id the PKCS#12 ID byte (1 = key material, 2 = IV, 3 = MAC).\n * @param iter the iteration count.\n * @param n the number of bytes to derive from the password.\n * @param md the message digest to use, defaults to SHA-1.\n *\n * @return a ByteBuffer with the bytes derived from the password.\n */\np12.generateKey = forge.pbe.generatePkcs12Key;\n","/**\n * Javascript implementation of PKCS#7 v1.5.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2012-2015 Digital Bazaar, Inc.\n *\n * Currently this implementation only supports ContentType of EnvelopedData,\n * EncryptedData, or SignedData at the root level. The top level elements may\n * contain only a ContentInfo of ContentType Data, i.e. plain data. Further\n * nesting is not (yet) supported.\n *\n * The Forge validators for PKCS #7's ASN.1 structures are available from\n * a separate file pkcs7asn1.js, since those are referenced from other\n * PKCS standards like PKCS #12.\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./oids');\nrequire('./pem');\nrequire('./pkcs7asn1');\nrequire('./random');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for ASN.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for PKCS#7 API\nvar p7 = module.exports = forge.pkcs7 = forge.pkcs7 || {};\n\n/**\n * Converts a PKCS#7 message from PEM format.\n *\n * @param pem the PEM-formatted PKCS#7 message.\n *\n * @return the PKCS#7 message.\n */\np7.messageFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PKCS7') {\n var error = new Error('Could not convert PKCS#7 message from PEM; PEM ' +\n 'header type is not \"PKCS#7\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert PKCS#7 message from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return p7.messageFromAsn1(obj);\n};\n\n/**\n * Converts a PKCS#7 message to PEM format.\n *\n * @param msg The PKCS#7 message object\n * @param maxline The maximum characters per line, defaults to 64.\n *\n * @return The PEM-formatted PKCS#7 message.\n */\np7.messageToPem = function(msg, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var pemObj = {\n type: 'PKCS7',\n body: asn1.toDer(msg.toAsn1()).getBytes()\n };\n return forge.pem.encode(pemObj, {maxline: maxline});\n};\n\n/**\n * Converts a PKCS#7 message from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a ContentInfo.\n *\n * @return the PKCS#7 message.\n */\np7.messageFromAsn1 = function(obj) {\n // validate root level ContentInfo and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.contentInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 message. ' +\n 'ASN.1 object is not an PKCS#7 ContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var contentType = asn1.derToOid(capture.contentType);\n var msg;\n\n switch(contentType) {\n case forge.pki.oids.envelopedData:\n msg = p7.createEnvelopedData();\n break;\n\n case forge.pki.oids.encryptedData:\n msg = p7.createEncryptedData();\n break;\n\n case forge.pki.oids.signedData:\n msg = p7.createSignedData();\n break;\n\n default:\n throw new Error('Cannot read PKCS#7 message. ContentType with OID ' +\n contentType + ' is not (yet) supported.');\n }\n\n msg.fromAsn1(capture.content.value[0]);\n return msg;\n};\n\np7.createSignedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.signedData,\n version: 1,\n certificates: [],\n crls: [],\n // TODO: add json-formatted signer stuff here?\n signers: [],\n // populated during sign()\n digestAlgorithmIdentifiers: [],\n contentInfo: null,\n signerInfos: [],\n\n fromAsn1: function(obj) {\n // validate SignedData content block and capture data.\n _fromAsn1(msg, obj, p7.asn1.signedDataValidator);\n msg.certificates = [];\n msg.crls = [];\n msg.digestAlgorithmIdentifiers = [];\n msg.contentInfo = null;\n msg.signerInfos = [];\n\n if(msg.rawCapture.certificates) {\n var certs = msg.rawCapture.certificates.value;\n for(var i = 0; i < certs.length; ++i) {\n msg.certificates.push(forge.pki.certificateFromAsn1(certs[i]));\n }\n }\n\n // TODO: parse crls\n },\n\n toAsn1: function() {\n // degenerate case with no content\n if(!msg.contentInfo) {\n msg.sign();\n }\n\n var certs = [];\n for(var i = 0; i < msg.certificates.length; ++i) {\n certs.push(forge.pki.certificateToAsn1(msg.certificates[i]));\n }\n\n var crls = [];\n // TODO: implement CRLs\n\n // [0] SignedData\n var signedData = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(msg.version).getBytes()),\n // DigestAlgorithmIdentifiers\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n msg.digestAlgorithmIdentifiers),\n // ContentInfo\n msg.contentInfo\n ])\n ]);\n if(certs.length > 0) {\n // [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL\n signedData.value[0].value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, certs));\n }\n if(crls.length > 0) {\n // [1] IMPLICIT CertificateRevocationLists OPTIONAL\n signedData.value[0].value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, crls));\n }\n // SignerInfos\n signedData.value[0].value.push(\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n msg.signerInfos));\n\n // ContentInfo\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(msg.type).getBytes()),\n // [0] SignedData\n signedData\n ]);\n },\n\n /**\n * Add (another) entity to list of signers.\n *\n * Note: If authenticatedAttributes are provided, then, per RFC 2315,\n * they must include at least two attributes: content type and\n * message digest. The message digest attribute value will be\n * auto-calculated during signing and will be ignored if provided.\n *\n * Here's an example of providing these two attributes:\n *\n * forge.pkcs7.createSignedData();\n * p7.addSigner({\n * issuer: cert.issuer.attributes,\n * serialNumber: cert.serialNumber,\n * key: privateKey,\n * digestAlgorithm: forge.pki.oids.sha1,\n * authenticatedAttributes: [{\n * type: forge.pki.oids.contentType,\n * value: forge.pki.oids.data\n * }, {\n * type: forge.pki.oids.messageDigest\n * }]\n * });\n *\n * TODO: Support [subjectKeyIdentifier] as signer's ID.\n *\n * @param signer the signer information:\n * key the signer's private key.\n * [certificate] a certificate containing the public key\n * associated with the signer's private key; use this option as\n * an alternative to specifying signer.issuer and\n * signer.serialNumber.\n * [issuer] the issuer attributes (eg: cert.issuer.attributes).\n * [serialNumber] the signer's certificate's serial number in\n * hexadecimal (eg: cert.serialNumber).\n * [digestAlgorithm] the message digest OID, as a string, to use\n * (eg: forge.pki.oids.sha1).\n * [authenticatedAttributes] an optional array of attributes\n * to also sign along with the content.\n */\n addSigner: function(signer) {\n var issuer = signer.issuer;\n var serialNumber = signer.serialNumber;\n if(signer.certificate) {\n var cert = signer.certificate;\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n issuer = cert.issuer.attributes;\n serialNumber = cert.serialNumber;\n }\n var key = signer.key;\n if(!key) {\n throw new Error(\n 'Could not add PKCS#7 signer; no private key specified.');\n }\n if(typeof key === 'string') {\n key = forge.pki.privateKeyFromPem(key);\n }\n\n // ensure OID known for digest algorithm\n var digestAlgorithm = signer.digestAlgorithm || forge.pki.oids.sha1;\n switch(digestAlgorithm) {\n case forge.pki.oids.sha1:\n case forge.pki.oids.sha256:\n case forge.pki.oids.sha384:\n case forge.pki.oids.sha512:\n case forge.pki.oids.md5:\n break;\n default:\n throw new Error(\n 'Could not add PKCS#7 signer; unknown message digest algorithm: ' +\n digestAlgorithm);\n }\n\n // if authenticatedAttributes is present, then the attributes\n // must contain at least PKCS #9 content-type and message-digest\n var authenticatedAttributes = signer.authenticatedAttributes || [];\n if(authenticatedAttributes.length > 0) {\n var contentType = false;\n var messageDigest = false;\n for(var i = 0; i < authenticatedAttributes.length; ++i) {\n var attr = authenticatedAttributes[i];\n if(!contentType && attr.type === forge.pki.oids.contentType) {\n contentType = true;\n if(messageDigest) {\n break;\n }\n continue;\n }\n if(!messageDigest && attr.type === forge.pki.oids.messageDigest) {\n messageDigest = true;\n if(contentType) {\n break;\n }\n continue;\n }\n }\n\n if(!contentType || !messageDigest) {\n throw new Error('Invalid signer.authenticatedAttributes. If ' +\n 'signer.authenticatedAttributes is specified, then it must ' +\n 'contain at least two attributes, PKCS #9 content-type and ' +\n 'PKCS #9 message-digest.');\n }\n }\n\n msg.signers.push({\n key: key,\n version: 1,\n issuer: issuer,\n serialNumber: serialNumber,\n digestAlgorithm: digestAlgorithm,\n signatureAlgorithm: forge.pki.oids.rsaEncryption,\n signature: null,\n authenticatedAttributes: authenticatedAttributes,\n unauthenticatedAttributes: []\n });\n },\n\n /**\n * Signs the content.\n * @param options Options to apply when signing:\n * [detached] boolean. If signing should be done in detached mode. Defaults to false.\n */\n sign: function(options) {\n options = options || {};\n // auto-generate content info\n if(typeof msg.content !== 'object' || msg.contentInfo === null) {\n // use Data ContentInfo\n msg.contentInfo = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(forge.pki.oids.data).getBytes())\n ]);\n\n // add actual content, if present\n if('content' in msg) {\n var content;\n if(msg.content instanceof forge.util.ByteBuffer) {\n content = msg.content.bytes();\n } else if(typeof msg.content === 'string') {\n content = forge.util.encodeUtf8(msg.content);\n }\n\n if (options.detached) {\n msg.detachedContent = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, content);\n } else {\n msg.contentInfo.value.push(\n // [0] EXPLICIT content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n content)\n ]));\n }\n }\n }\n\n // no signers, return early (degenerate case for certificate container)\n if(msg.signers.length === 0) {\n return;\n }\n\n // generate digest algorithm identifiers\n var mds = addDigestAlgorithmIds();\n\n // generate signerInfos\n addSignerInfos(mds);\n },\n\n verify: function() {\n throw new Error('PKCS#7 signature verification not yet implemented.');\n },\n\n /**\n * Add a certificate.\n *\n * @param cert the certificate to add.\n */\n addCertificate: function(cert) {\n // convert from PEM\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n msg.certificates.push(cert);\n },\n\n /**\n * Add a certificate revokation list.\n *\n * @param crl the certificate revokation list to add.\n */\n addCertificateRevokationList: function(crl) {\n throw new Error('PKCS#7 CRL support not yet implemented.');\n }\n };\n return msg;\n\n function addDigestAlgorithmIds() {\n var mds = {};\n\n for(var i = 0; i < msg.signers.length; ++i) {\n var signer = msg.signers[i];\n var oid = signer.digestAlgorithm;\n if(!(oid in mds)) {\n // content digest\n mds[oid] = forge.md[forge.pki.oids[oid]].create();\n }\n if(signer.authenticatedAttributes.length === 0) {\n // no custom attributes to digest; use content message digest\n signer.md = mds[oid];\n } else {\n // custom attributes to be digested; use own message digest\n // TODO: optimize to just copy message digest state if that\n // feature is ever supported with message digests\n signer.md = forge.md[forge.pki.oids[oid]].create();\n }\n }\n\n // add unique digest algorithm identifiers\n msg.digestAlgorithmIdentifiers = [];\n for(var oid in mds) {\n msg.digestAlgorithmIdentifiers.push(\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oid).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n }\n\n return mds;\n }\n\n function addSignerInfos(mds) {\n var content;\n\n if (msg.detachedContent) {\n // Signature has been made in detached mode.\n content = msg.detachedContent;\n } else {\n // Note: ContentInfo is a SEQUENCE with 2 values, second value is\n // the content field and is optional for a ContentInfo but required here\n // since signers are present\n // get ContentInfo content\n content = msg.contentInfo.value[1];\n // skip [0] EXPLICIT content wrapper\n content = content.value[0];\n }\n\n if(!content) {\n throw new Error(\n 'Could not sign PKCS#7 message; there is no content to sign.');\n }\n\n // get ContentInfo content type\n var contentType = asn1.derToOid(msg.contentInfo.value[0].value);\n\n // serialize content\n var bytes = asn1.toDer(content);\n\n // skip identifier and length per RFC 2315 9.3\n // skip identifier (1 byte)\n bytes.getByte();\n // read and discard length bytes\n asn1.getBerValueLength(bytes);\n bytes = bytes.getBytes();\n\n // digest content DER value bytes\n for(var oid in mds) {\n mds[oid].start().update(bytes);\n }\n\n // sign content\n var signingTime = new Date();\n for(var i = 0; i < msg.signers.length; ++i) {\n var signer = msg.signers[i];\n\n if(signer.authenticatedAttributes.length === 0) {\n // if ContentInfo content type is not \"Data\", then\n // authenticatedAttributes must be present per RFC 2315\n if(contentType !== forge.pki.oids.data) {\n throw new Error(\n 'Invalid signer; authenticatedAttributes must be present ' +\n 'when the ContentInfo content type is not PKCS#7 Data.');\n }\n } else {\n // process authenticated attributes\n // [0] IMPLICIT\n signer.authenticatedAttributesAsn1 = asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n\n // per RFC 2315, attributes are to be digested using a SET container\n // not the above [0] IMPLICIT container\n var attrsAsn1 = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SET, true, []);\n\n for(var ai = 0; ai < signer.authenticatedAttributes.length; ++ai) {\n var attr = signer.authenticatedAttributes[ai];\n if(attr.type === forge.pki.oids.messageDigest) {\n // use content message digest as value\n attr.value = mds[signer.digestAlgorithm].digest();\n } else if(attr.type === forge.pki.oids.signingTime) {\n // auto-populate signing time if not already set\n if(!attr.value) {\n attr.value = signingTime;\n }\n }\n\n // convert to ASN.1 and push onto Attributes SET (for signing) and\n // onto authenticatedAttributesAsn1 to complete SignedData ASN.1\n // TODO: optimize away duplication\n attrsAsn1.value.push(_attributeToAsn1(attr));\n signer.authenticatedAttributesAsn1.value.push(_attributeToAsn1(attr));\n }\n\n // DER-serialize and digest SET OF attributes only\n bytes = asn1.toDer(attrsAsn1).getBytes();\n signer.md.start().update(bytes);\n }\n\n // sign digest\n signer.signature = signer.key.sign(signer.md, 'RSASSA-PKCS1-V1_5');\n }\n\n // add signer info\n msg.signerInfos = _signersToAsn1(msg.signers);\n }\n};\n\n/**\n * Creates an empty PKCS#7 message of type EncryptedData.\n *\n * @return the message.\n */\np7.createEncryptedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.encryptedData,\n version: 0,\n encryptedContent: {\n algorithm: forge.pki.oids['aes256-CBC']\n },\n\n /**\n * Reads an EncryptedData content block (in ASN.1 format)\n *\n * @param obj The ASN.1 representation of the EncryptedData content block\n */\n fromAsn1: function(obj) {\n // Validate EncryptedData content block and capture data.\n _fromAsn1(msg, obj, p7.asn1.encryptedDataValidator);\n },\n\n /**\n * Decrypt encrypted content\n *\n * @param key The (symmetric) key as a byte buffer\n */\n decrypt: function(key) {\n if(key !== undefined) {\n msg.encryptedContent.key = key;\n }\n _decryptContent(msg);\n }\n };\n return msg;\n};\n\n/**\n * Creates an empty PKCS#7 message of type EnvelopedData.\n *\n * @return the message.\n */\np7.createEnvelopedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.envelopedData,\n version: 0,\n recipients: [],\n encryptedContent: {\n algorithm: forge.pki.oids['aes256-CBC']\n },\n\n /**\n * Reads an EnvelopedData content block (in ASN.1 format)\n *\n * @param obj the ASN.1 representation of the EnvelopedData content block.\n */\n fromAsn1: function(obj) {\n // validate EnvelopedData content block and capture data\n var capture = _fromAsn1(msg, obj, p7.asn1.envelopedDataValidator);\n msg.recipients = _recipientsFromAsn1(capture.recipientInfos.value);\n },\n\n toAsn1: function() {\n // ContentInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(msg.type).getBytes()),\n // [0] EnvelopedData\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(msg.version).getBytes()),\n // RecipientInfos\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n _recipientsToAsn1(msg.recipients)),\n // EncryptedContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true,\n _encryptedContentToAsn1(msg.encryptedContent))\n ])\n ])\n ]);\n },\n\n /**\n * Find recipient by X.509 certificate's issuer.\n *\n * @param cert the certificate with the issuer to look for.\n *\n * @return the recipient object.\n */\n findRecipient: function(cert) {\n var sAttr = cert.issuer.attributes;\n\n for(var i = 0; i < msg.recipients.length; ++i) {\n var r = msg.recipients[i];\n var rAttr = r.issuer;\n\n if(r.serialNumber !== cert.serialNumber) {\n continue;\n }\n\n if(rAttr.length !== sAttr.length) {\n continue;\n }\n\n var match = true;\n for(var j = 0; j < sAttr.length; ++j) {\n if(rAttr[j].type !== sAttr[j].type ||\n rAttr[j].value !== sAttr[j].value) {\n match = false;\n break;\n }\n }\n\n if(match) {\n return r;\n }\n }\n\n return null;\n },\n\n /**\n * Decrypt enveloped content\n *\n * @param recipient The recipient object related to the private key\n * @param privKey The (RSA) private key object\n */\n decrypt: function(recipient, privKey) {\n if(msg.encryptedContent.key === undefined && recipient !== undefined &&\n privKey !== undefined) {\n switch(recipient.encryptedContent.algorithm) {\n case forge.pki.oids.rsaEncryption:\n case forge.pki.oids.desCBC:\n var key = privKey.decrypt(recipient.encryptedContent.content);\n msg.encryptedContent.key = forge.util.createBuffer(key);\n break;\n\n default:\n throw new Error('Unsupported asymmetric cipher, ' +\n 'OID ' + recipient.encryptedContent.algorithm);\n }\n }\n\n _decryptContent(msg);\n },\n\n /**\n * Add (another) entity to list of recipients.\n *\n * @param cert The certificate of the entity to add.\n */\n addRecipient: function(cert) {\n msg.recipients.push({\n version: 0,\n issuer: cert.issuer.attributes,\n serialNumber: cert.serialNumber,\n encryptedContent: {\n // We simply assume rsaEncryption here, since forge.pki only\n // supports RSA so far. If the PKI module supports other\n // ciphers one day, we need to modify this one as well.\n algorithm: forge.pki.oids.rsaEncryption,\n key: cert.publicKey\n }\n });\n },\n\n /**\n * Encrypt enveloped content.\n *\n * This function supports two optional arguments, cipher and key, which\n * can be used to influence symmetric encryption. Unless cipher is\n * provided, the cipher specified in encryptedContent.algorithm is used\n * (defaults to AES-256-CBC). If no key is provided, encryptedContent.key\n * is (re-)used. If that one's not set, a random key will be generated\n * automatically.\n *\n * @param [key] The key to be used for symmetric encryption.\n * @param [cipher] The OID of the symmetric cipher to use.\n */\n encrypt: function(key, cipher) {\n // Part 1: Symmetric encryption\n if(msg.encryptedContent.content === undefined) {\n cipher = cipher || msg.encryptedContent.algorithm;\n key = key || msg.encryptedContent.key;\n\n var keyLen, ivLen, ciphFn;\n switch(cipher) {\n case forge.pki.oids['aes128-CBC']:\n keyLen = 16;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['aes192-CBC']:\n keyLen = 24;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['aes256-CBC']:\n keyLen = 32;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['des-EDE3-CBC']:\n keyLen = 24;\n ivLen = 8;\n ciphFn = forge.des.createEncryptionCipher;\n break;\n\n default:\n throw new Error('Unsupported symmetric cipher, OID ' + cipher);\n }\n\n if(key === undefined) {\n key = forge.util.createBuffer(forge.random.getBytes(keyLen));\n } else if(key.length() != keyLen) {\n throw new Error('Symmetric key has wrong length; ' +\n 'got ' + key.length() + ' bytes, expected ' + keyLen + '.');\n }\n\n // Keep a copy of the key & IV in the object, so the caller can\n // use it for whatever reason.\n msg.encryptedContent.algorithm = cipher;\n msg.encryptedContent.key = key;\n msg.encryptedContent.parameter = forge.util.createBuffer(\n forge.random.getBytes(ivLen));\n\n var ciph = ciphFn(key);\n ciph.start(msg.encryptedContent.parameter.copy());\n ciph.update(msg.content);\n\n // The finish function does PKCS#7 padding by default, therefore\n // no action required by us.\n if(!ciph.finish()) {\n throw new Error('Symmetric encryption failed.');\n }\n\n msg.encryptedContent.content = ciph.output;\n }\n\n // Part 2: asymmetric encryption for each recipient\n for(var i = 0; i < msg.recipients.length; ++i) {\n var recipient = msg.recipients[i];\n\n // Nothing to do, encryption already done.\n if(recipient.encryptedContent.content !== undefined) {\n continue;\n }\n\n switch(recipient.encryptedContent.algorithm) {\n case forge.pki.oids.rsaEncryption:\n recipient.encryptedContent.content =\n recipient.encryptedContent.key.encrypt(\n msg.encryptedContent.key.data);\n break;\n\n default:\n throw new Error('Unsupported asymmetric cipher, OID ' +\n recipient.encryptedContent.algorithm);\n }\n }\n }\n };\n return msg;\n};\n\n/**\n * Converts a single recipient from an ASN.1 object.\n *\n * @param obj the ASN.1 RecipientInfo.\n *\n * @return the recipient object.\n */\nfunction _recipientFromAsn1(obj) {\n // validate EnvelopedData content block and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.recipientInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 RecipientInfo. ' +\n 'ASN.1 object is not an PKCS#7 RecipientInfo.');\n error.errors = errors;\n throw error;\n }\n\n return {\n version: capture.version.charCodeAt(0),\n issuer: forge.pki.RDNAttributesAsArray(capture.issuer),\n serialNumber: forge.util.createBuffer(capture.serial).toHex(),\n encryptedContent: {\n algorithm: asn1.derToOid(capture.encAlgorithm),\n parameter: capture.encParameter ? capture.encParameter.value : undefined,\n content: capture.encKey\n }\n };\n}\n\n/**\n * Converts a single recipient object to an ASN.1 object.\n *\n * @param obj the recipient object.\n *\n * @return the ASN.1 RecipientInfo.\n */\nfunction _recipientToAsn1(obj) {\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(obj.version).getBytes()),\n // IssuerAndSerialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Name\n forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),\n // Serial\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(obj.serialNumber))\n ]),\n // KeyEncryptionAlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.encryptedContent.algorithm).getBytes()),\n // Parameter, force NULL, only RSA supported for now.\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // EncryptedKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n obj.encryptedContent.content)\n ]);\n}\n\n/**\n * Map a set of RecipientInfo ASN.1 objects to recipient objects.\n *\n * @param infos an array of ASN.1 representations RecipientInfo (i.e. SET OF).\n *\n * @return an array of recipient objects.\n */\nfunction _recipientsFromAsn1(infos) {\n var ret = [];\n for(var i = 0; i < infos.length; ++i) {\n ret.push(_recipientFromAsn1(infos[i]));\n }\n return ret;\n}\n\n/**\n * Map an array of recipient objects to ASN.1 RecipientInfo objects.\n *\n * @param recipients an array of recipientInfo objects.\n *\n * @return an array of ASN.1 RecipientInfos.\n */\nfunction _recipientsToAsn1(recipients) {\n var ret = [];\n for(var i = 0; i < recipients.length; ++i) {\n ret.push(_recipientToAsn1(recipients[i]));\n }\n return ret;\n}\n\n/**\n * Converts a single signer from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a SignerInfo.\n *\n * @return the signer object.\n */\nfunction _signerFromAsn1(obj) {\n // validate EnvelopedData content block and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.signerInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 SignerInfo. ' +\n 'ASN.1 object is not an PKCS#7 SignerInfo.');\n error.errors = errors;\n throw error;\n }\n\n var rval = {\n version: capture.version.charCodeAt(0),\n issuer: forge.pki.RDNAttributesAsArray(capture.issuer),\n serialNumber: forge.util.createBuffer(capture.serial).toHex(),\n digestAlgorithm: asn1.derToOid(capture.digestAlgorithm),\n signatureAlgorithm: asn1.derToOid(capture.signatureAlgorithm),\n signature: capture.signature,\n authenticatedAttributes: [],\n unauthenticatedAttributes: []\n };\n\n // TODO: convert attributes\n var authenticatedAttributes = capture.authenticatedAttributes || [];\n var unauthenticatedAttributes = capture.unauthenticatedAttributes || [];\n\n return rval;\n}\n\n/**\n * Converts a single signerInfo object to an ASN.1 object.\n *\n * @param obj the signerInfo object.\n *\n * @return the ASN.1 representation of a SignerInfo.\n */\nfunction _signerToAsn1(obj) {\n // SignerInfo\n var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(obj.version).getBytes()),\n // issuerAndSerialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // name\n forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),\n // serial\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(obj.serialNumber))\n ]),\n // digestAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.digestAlgorithm).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ]);\n\n // authenticatedAttributes (OPTIONAL)\n if(obj.authenticatedAttributesAsn1) {\n // add ASN.1 previously generated during signing\n rval.value.push(obj.authenticatedAttributesAsn1);\n }\n\n // digestEncryptionAlgorithm\n rval.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.signatureAlgorithm).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n\n // encryptedDigest\n rval.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, obj.signature));\n\n // unauthenticatedAttributes (OPTIONAL)\n if(obj.unauthenticatedAttributes.length > 0) {\n // [1] IMPLICIT\n var attrsAsn1 = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, []);\n for(var i = 0; i < obj.unauthenticatedAttributes.length; ++i) {\n var attr = obj.unauthenticatedAttributes[i];\n attrsAsn1.values.push(_attributeToAsn1(attr));\n }\n rval.value.push(attrsAsn1);\n }\n\n return rval;\n}\n\n/**\n * Map a set of SignerInfo ASN.1 objects to an array of signer objects.\n *\n * @param signerInfoAsn1s an array of ASN.1 SignerInfos (i.e. SET OF).\n *\n * @return an array of signers objects.\n */\nfunction _signersFromAsn1(signerInfoAsn1s) {\n var ret = [];\n for(var i = 0; i < signerInfoAsn1s.length; ++i) {\n ret.push(_signerFromAsn1(signerInfoAsn1s[i]));\n }\n return ret;\n}\n\n/**\n * Map an array of signer objects to ASN.1 objects.\n *\n * @param signers an array of signer objects.\n *\n * @return an array of ASN.1 SignerInfos.\n */\nfunction _signersToAsn1(signers) {\n var ret = [];\n for(var i = 0; i < signers.length; ++i) {\n ret.push(_signerToAsn1(signers[i]));\n }\n return ret;\n}\n\n/**\n * Convert an attribute object to an ASN.1 Attribute.\n *\n * @param attr the attribute object.\n *\n * @return the ASN.1 Attribute.\n */\nfunction _attributeToAsn1(attr) {\n var value;\n\n // TODO: generalize to support more attributes\n if(attr.type === forge.pki.oids.contentType) {\n value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.value).getBytes());\n } else if(attr.type === forge.pki.oids.messageDigest) {\n value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n attr.value.bytes());\n } else if(attr.type === forge.pki.oids.signingTime) {\n /* Note per RFC 2985: Dates between 1 January 1950 and 31 December 2049\n (inclusive) MUST be encoded as UTCTime. Any dates with year values\n before 1950 or after 2049 MUST be encoded as GeneralizedTime. [Further,]\n UTCTime values MUST be expressed in Greenwich Mean Time (Zulu) and MUST\n include seconds (i.e., times are YYMMDDHHMMSSZ), even where the\n number of seconds is zero. Midnight (GMT) must be represented as\n \"YYMMDD000000Z\". */\n // TODO: make these module-level constants\n var jan_1_1950 = new Date('1950-01-01T00:00:00Z');\n var jan_1_2050 = new Date('2050-01-01T00:00:00Z');\n var date = attr.value;\n if(typeof date === 'string') {\n // try to parse date\n var timestamp = Date.parse(date);\n if(!isNaN(timestamp)) {\n date = new Date(timestamp);\n } else if(date.length === 13) {\n // YYMMDDHHMMSSZ (13 chars for UTCTime)\n date = asn1.utcTimeToDate(date);\n } else {\n // assume generalized time\n date = asn1.generalizedTimeToDate(date);\n }\n }\n\n if(date >= jan_1_1950 && date < jan_1_2050) {\n value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false,\n asn1.dateToUtcTime(date));\n } else {\n value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false,\n asn1.dateToGeneralizedTime(date));\n }\n }\n\n // TODO: expose as common API call\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n // AttributeValue\n value\n ])\n ]);\n}\n\n/**\n * Map messages encrypted content to ASN.1 objects.\n *\n * @param ec The encryptedContent object of the message.\n *\n * @return ASN.1 representation of the encryptedContent object (SEQUENCE).\n */\nfunction _encryptedContentToAsn1(ec) {\n return [\n // ContentType, always Data for the moment\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(forge.pki.oids.data).getBytes()),\n // ContentEncryptionAlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(ec.algorithm).getBytes()),\n // Parameters (IV)\n !ec.parameter ?\n undefined :\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n ec.parameter.getBytes())\n ]),\n // [0] EncryptedContent\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n ec.content.getBytes())\n ])\n ];\n}\n\n/**\n * Reads the \"common part\" of an PKCS#7 content block (in ASN.1 format)\n *\n * This function reads the \"common part\" of the PKCS#7 content blocks\n * EncryptedData and EnvelopedData, i.e. version number and symmetrically\n * encrypted content block.\n *\n * The result of the ASN.1 validate and capture process is returned\n * to allow the caller to extract further data, e.g. the list of recipients\n * in case of a EnvelopedData object.\n *\n * @param msg the PKCS#7 object to read the data to.\n * @param obj the ASN.1 representation of the content block.\n * @param validator the ASN.1 structure validator object to use.\n *\n * @return the value map captured by validator object.\n */\nfunction _fromAsn1(msg, obj, validator) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, validator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 message. ' +\n 'ASN.1 object is not a supported PKCS#7 message.');\n error.errors = error;\n throw error;\n }\n\n // Check contentType, so far we only support (raw) Data.\n var contentType = asn1.derToOid(capture.contentType);\n if(contentType !== forge.pki.oids.data) {\n throw new Error('Unsupported PKCS#7 message. ' +\n 'Only wrapped ContentType Data supported.');\n }\n\n if(capture.encryptedContent) {\n var content = '';\n if(forge.util.isArray(capture.encryptedContent)) {\n for(var i = 0; i < capture.encryptedContent.length; ++i) {\n if(capture.encryptedContent[i].type !== asn1.Type.OCTETSTRING) {\n throw new Error('Malformed PKCS#7 message, expecting encrypted ' +\n 'content constructed of only OCTET STRING objects.');\n }\n content += capture.encryptedContent[i].value;\n }\n } else {\n content = capture.encryptedContent;\n }\n msg.encryptedContent = {\n algorithm: asn1.derToOid(capture.encAlgorithm),\n parameter: forge.util.createBuffer(capture.encParameter.value),\n content: forge.util.createBuffer(content)\n };\n }\n\n if(capture.content) {\n var content = '';\n if(forge.util.isArray(capture.content)) {\n for(var i = 0; i < capture.content.length; ++i) {\n if(capture.content[i].type !== asn1.Type.OCTETSTRING) {\n throw new Error('Malformed PKCS#7 message, expecting ' +\n 'content constructed of only OCTET STRING objects.');\n }\n content += capture.content[i].value;\n }\n } else {\n content = capture.content;\n }\n msg.content = forge.util.createBuffer(content);\n }\n\n msg.version = capture.version.charCodeAt(0);\n msg.rawCapture = capture;\n\n return capture;\n}\n\n/**\n * Decrypt the symmetrically encrypted content block of the PKCS#7 message.\n *\n * Decryption is skipped in case the PKCS#7 message object already has a\n * (decrypted) content attribute. The algorithm, key and cipher parameters\n * (probably the iv) are taken from the encryptedContent attribute of the\n * message object.\n *\n * @param The PKCS#7 message object.\n */\nfunction _decryptContent(msg) {\n if(msg.encryptedContent.key === undefined) {\n throw new Error('Symmetric key not available.');\n }\n\n if(msg.content === undefined) {\n var ciph;\n\n switch(msg.encryptedContent.algorithm) {\n case forge.pki.oids['aes128-CBC']:\n case forge.pki.oids['aes192-CBC']:\n case forge.pki.oids['aes256-CBC']:\n ciph = forge.aes.createDecryptionCipher(msg.encryptedContent.key);\n break;\n\n case forge.pki.oids['desCBC']:\n case forge.pki.oids['des-EDE3-CBC']:\n ciph = forge.des.createDecryptionCipher(msg.encryptedContent.key);\n break;\n\n default:\n throw new Error('Unsupported symmetric cipher, OID ' +\n msg.encryptedContent.algorithm);\n }\n ciph.start(msg.encryptedContent.parameter);\n ciph.update(msg.encryptedContent.content);\n\n if(!ciph.finish()) {\n throw new Error('Symmetric decryption failed.');\n }\n\n msg.content = ciph.output;\n }\n}\n","/**\n * Javascript implementation of ASN.1 validators for PKCS#7 v1.5.\n *\n * @author Dave Longley\n * @author Stefan Siegl\n *\n * Copyright (c) 2012-2015 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * The ASN.1 representation of PKCS#7 is as follows\n * (see RFC #2315 for details, http://www.ietf.org/rfc/rfc2315.txt):\n *\n * A PKCS#7 message consists of a ContentInfo on root level, which may\n * contain any number of further ContentInfo nested into it.\n *\n * ContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL\n * }\n *\n * ContentType ::= OBJECT IDENTIFIER\n *\n * EnvelopedData ::= SEQUENCE {\n * version Version,\n * recipientInfos RecipientInfos,\n * encryptedContentInfo EncryptedContentInfo\n * }\n *\n * EncryptedData ::= SEQUENCE {\n * version Version,\n * encryptedContentInfo EncryptedContentInfo\n * }\n *\n * id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)\n * us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }\n *\n * SignedData ::= SEQUENCE {\n * version INTEGER,\n * digestAlgorithms DigestAlgorithmIdentifiers,\n * contentInfo ContentInfo,\n * certificates [0] IMPLICIT Certificates OPTIONAL,\n * crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,\n * signerInfos SignerInfos\n * }\n *\n * SignerInfos ::= SET OF SignerInfo\n *\n * SignerInfo ::= SEQUENCE {\n * version Version,\n * issuerAndSerialNumber IssuerAndSerialNumber,\n * digestAlgorithm DigestAlgorithmIdentifier,\n * authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,\n * digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,\n * encryptedDigest EncryptedDigest,\n * unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL\n * }\n *\n * EncryptedDigest ::= OCTET STRING\n *\n * Attributes ::= SET OF Attribute\n *\n * Attribute ::= SEQUENCE {\n * attrType OBJECT IDENTIFIER,\n * attrValues SET OF AttributeValue\n * }\n *\n * AttributeValue ::= ANY\n *\n * Version ::= INTEGER\n *\n * RecipientInfos ::= SET OF RecipientInfo\n *\n * EncryptedContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,\n * encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL\n * }\n *\n * ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of AES and DES3, there is only one,\n * the IV.\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * EncryptedContent ::= OCTET STRING\n *\n * RecipientInfo ::= SEQUENCE {\n * version Version,\n * issuerAndSerialNumber IssuerAndSerialNumber,\n * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,\n * encryptedKey EncryptedKey\n * }\n *\n * IssuerAndSerialNumber ::= SEQUENCE {\n * issuer Name,\n * serialNumber CertificateSerialNumber\n * }\n *\n * CertificateSerialNumber ::= INTEGER\n *\n * KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * EncryptedKey ::= OCTET STRING\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./util');\n\n// shortcut for ASN.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for PKCS#7 API\nvar p7v = module.exports = forge.pkcs7asn1 = forge.pkcs7asn1 || {};\nforge.pkcs7 = forge.pkcs7 || {};\nforge.pkcs7.asn1 = p7v;\n\nvar contentInfoValidator = {\n name: 'ContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'ContentInfo.ContentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'ContentInfo.content',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n captureAsn1: 'content'\n }]\n};\np7v.contentInfoValidator = contentInfoValidator;\n\nvar encryptedContentInfoValidator = {\n name: 'EncryptedContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedContentInfo.contentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encAlgorithm'\n }, {\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n captureAsn1: 'encParameter'\n }]\n }, {\n name: 'EncryptedContentInfo.encryptedContent',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n /* The PKCS#7 structure output by OpenSSL somewhat differs from what\n * other implementations do generate.\n *\n * OpenSSL generates a structure like this:\n * SEQUENCE {\n * ...\n * [0]\n * 26 DA 67 D2 17 9C 45 3C B1 2A A8 59 2F 29 33 38\n * C3 C3 DF 86 71 74 7A 19 9F 40 D0 29 BE 85 90 45\n * ...\n * }\n *\n * Whereas other implementations (and this PKCS#7 module) generate:\n * SEQUENCE {\n * ...\n * [0] {\n * OCTET STRING\n * 26 DA 67 D2 17 9C 45 3C B1 2A A8 59 2F 29 33 38\n * C3 C3 DF 86 71 74 7A 19 9F 40 D0 29 BE 85 90 45\n * ...\n * }\n * }\n *\n * In order to support both, we just capture the context specific\n * field here. The OCTET STRING bit is removed below.\n */\n capture: 'encryptedContent',\n captureAsn1: 'encryptedContentAsn1'\n }]\n};\n\np7v.envelopedDataValidator = {\n name: 'EnvelopedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EnvelopedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'EnvelopedData.RecipientInfos',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n captureAsn1: 'recipientInfos'\n }].concat(encryptedContentInfoValidator)\n};\n\np7v.encryptedDataValidator = {\n name: 'EncryptedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }].concat(encryptedContentInfoValidator)\n};\n\nvar signerValidator = {\n name: 'SignerInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false\n }, {\n name: 'SignerInfo.issuerAndSerialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.issuerAndSerialNumber.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'issuer'\n }, {\n name: 'SignerInfo.issuerAndSerialNumber.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'serial'\n }]\n }, {\n name: 'SignerInfo.digestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.digestAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'digestAlgorithm'\n }, {\n name: 'SignerInfo.digestAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n constructed: false,\n captureAsn1: 'digestParameter',\n optional: true\n }]\n }, {\n name: 'SignerInfo.authenticatedAttributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n capture: 'authenticatedAttributes'\n }, {\n name: 'SignerInfo.digestEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n capture: 'signatureAlgorithm'\n }, {\n name: 'SignerInfo.encryptedDigest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'signature'\n }, {\n name: 'SignerInfo.unauthenticatedAttributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n optional: true,\n capture: 'unauthenticatedAttributes'\n }]\n};\n\np7v.signedDataValidator = {\n name: 'SignedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'SignedData.DigestAlgorithms',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n captureAsn1: 'digestAlgorithms'\n },\n contentInfoValidator,\n {\n name: 'SignedData.Certificates',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n optional: true,\n captureAsn1: 'certificates'\n }, {\n name: 'SignedData.CertificateRevocationLists',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n optional: true,\n captureAsn1: 'crls'\n }, {\n name: 'SignedData.SignerInfos',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n capture: 'signerInfos',\n optional: true,\n value: [signerValidator]\n }]\n};\n\np7v.recipientInfoValidator = {\n name: 'RecipientInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'RecipientInfo.issuerAndSerial',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.issuerAndSerial.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'issuer'\n }, {\n name: 'RecipientInfo.issuerAndSerial.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'serial'\n }]\n }, {\n name: 'RecipientInfo.keyEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.keyEncryptionAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encAlgorithm'\n }, {\n name: 'RecipientInfo.keyEncryptionAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n constructed: false,\n captureAsn1: 'encParameter',\n optional: true\n }]\n }, {\n name: 'RecipientInfo.encryptedKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encKey'\n }]\n};\n","/**\n * Javascript implementation of a basic Public Key Infrastructure, including\n * support for RSA public and private keys.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./oids');\nrequire('./pbe');\nrequire('./pem');\nrequire('./pbkdf2');\nrequire('./pkcs12');\nrequire('./pss');\nrequire('./rsa');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Public Key Infrastructure (PKI) implementation. */\nvar pki = module.exports = forge.pki = forge.pki || {};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED. Use pem.decode() instead.\n *\n * Converts PEM-formatted data to DER.\n *\n * @param pem the PEM-formatted data.\n *\n * @return the DER-formatted data.\n */\npki.pemToDer = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert PEM to DER; PEM is encrypted.');\n }\n return forge.util.createBuffer(msg.body);\n};\n\n/**\n * Converts an RSA private key from PEM format.\n *\n * @param pem the PEM-formatted private key.\n *\n * @return the private key.\n */\npki.privateKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PRIVATE KEY' && msg.type !== 'RSA PRIVATE KEY') {\n var error = new Error('Could not convert private key from PEM; PEM ' +\n 'header type is not \"PRIVATE KEY\" or \"RSA PRIVATE KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert private key from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return pki.privateKeyFromAsn1(obj);\n};\n\n/**\n * Converts an RSA private key to PEM format.\n *\n * @param key the private key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted private key.\n */\npki.privateKeyToPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'RSA PRIVATE KEY',\n body: asn1.toDer(pki.privateKeyToAsn1(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts a PrivateKeyInfo to PEM format.\n *\n * @param pki the PrivateKeyInfo.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted private key.\n */\npki.privateKeyInfoToPem = function(pki, maxline) {\n // convert to DER, then PEM-encode\n var msg = {\n type: 'PRIVATE KEY',\n body: asn1.toDer(pki).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n","/**\n * Prime number generation API.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./jsbn');\nrequire('./random');\n\n(function() {\n\n// forge.prime already defined\nif(forge.prime) {\n module.exports = forge.prime;\n return;\n}\n\n/* PRIME API */\nvar prime = module.exports = forge.prime = forge.prime || {};\n\nvar BigInteger = forge.jsbn.BigInteger;\n\n// primes are 30k+i for i = 1, 7, 11, 13, 17, 19, 23, 29\nvar GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2];\nvar THIRTY = new BigInteger(null);\nTHIRTY.fromInt(30);\nvar op_or = function(x, y) {return x|y;};\n\n/**\n * Generates a random probable prime with the given number of bits.\n *\n * Alternative algorithms can be specified by name as a string or as an\n * object with custom options like so:\n *\n * {\n * name: 'PRIMEINC',\n * options: {\n * maxBlockTime: ,\n * millerRabinTests: ,\n * workerScript: ,\n * workers: .\n * workLoad: the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * }\n * }\n *\n * @param bits the number of bits for the prime number.\n * @param options the options to use.\n * [algorithm] the algorithm to use (default: 'PRIMEINC').\n * [prng] a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n *\n * @return callback(err, num) called once the operation completes.\n */\nprime.generateProbablePrime = function(bits, options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n\n // default to PRIMEINC algorithm\n var algorithm = options.algorithm || 'PRIMEINC';\n if(typeof algorithm === 'string') {\n algorithm = {name: algorithm};\n }\n algorithm.options = algorithm.options || {};\n\n // create prng with api that matches BigInteger secure random\n var prng = options.prng || forge.random;\n var rng = {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n var b = prng.getBytesSync(x.length);\n for(var i = 0; i < x.length; ++i) {\n x[i] = b.charCodeAt(i);\n }\n }\n };\n\n if(algorithm.name === 'PRIMEINC') {\n return primeincFindPrime(bits, rng, algorithm.options, callback);\n }\n\n throw new Error('Invalid prime generation algorithm: ' + algorithm.name);\n};\n\nfunction primeincFindPrime(bits, rng, options, callback) {\n if('workers' in options) {\n return primeincFindPrimeWithWorkers(bits, rng, options, callback);\n }\n return primeincFindPrimeWithoutWorkers(bits, rng, options, callback);\n}\n\nfunction primeincFindPrimeWithoutWorkers(bits, rng, options, callback) {\n // initialize random number\n var num = generateRandom(bits, rng);\n\n /* Note: All primes are of the form 30k+i for i < 30 and gcd(30, i)=1. The\n number we are given is always aligned at 30k + 1. Each time the number is\n determined not to be prime we add to get to the next 'i', eg: if the number\n was at 30k + 1 we add 6. */\n var deltaIdx = 0;\n\n // get required number of MR tests\n var mrTests = getMillerRabinTests(num.bitLength());\n if('millerRabinTests' in options) {\n mrTests = options.millerRabinTests;\n }\n\n // find prime nearest to 'num' for maxBlockTime ms\n // 10 ms gives 5ms of leeway for other calculations before dropping\n // below 60fps (1000/60 == 16.67), but in reality, the number will\n // likely be higher due to an 'atomic' big int modPow\n var maxBlockTime = 10;\n if('maxBlockTime' in options) {\n maxBlockTime = options.maxBlockTime;\n }\n\n _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback);\n}\n\nfunction _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback) {\n var start = +new Date();\n do {\n // overflow, regenerate random number\n if(num.bitLength() > bits) {\n num = generateRandom(bits, rng);\n }\n // do primality test\n if(num.isProbablePrime(mrTests)) {\n return callback(null, num);\n }\n // get next potential prime\n num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0);\n } while(maxBlockTime < 0 || (+new Date() - start < maxBlockTime));\n\n // keep trying later\n forge.util.setImmediate(function() {\n _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback);\n });\n}\n\n// NOTE: This algorithm is indeterminate in nature because workers\n// run in parallel looking at different segments of numbers. Even if this\n// algorithm is run twice with the same input from a predictable RNG, it\n// may produce different outputs.\nfunction primeincFindPrimeWithWorkers(bits, rng, options, callback) {\n // web workers unavailable\n if(typeof Worker === 'undefined') {\n return primeincFindPrimeWithoutWorkers(bits, rng, options, callback);\n }\n\n // initialize random number\n var num = generateRandom(bits, rng);\n\n // use web workers to generate keys\n var numWorkers = options.workers;\n var workLoad = options.workLoad || 100;\n var range = workLoad * 30 / 8;\n var workerScript = options.workerScript || 'forge/prime.worker.js';\n if(numWorkers === -1) {\n return forge.util.estimateCores(function(err, cores) {\n if(err) {\n // default to 2\n cores = 2;\n }\n numWorkers = cores - 1;\n generate();\n });\n }\n generate();\n\n function generate() {\n // require at least 1 worker\n numWorkers = Math.max(1, numWorkers);\n\n // TODO: consider optimizing by starting workers outside getPrime() ...\n // note that in order to clean up they will have to be made internally\n // asynchronous which may actually be slower\n\n // start workers immediately\n var workers = [];\n for(var i = 0; i < numWorkers; ++i) {\n // FIXME: fix path or use blob URLs\n workers[i] = new Worker(workerScript);\n }\n var running = numWorkers;\n\n // listen for requests from workers and assign ranges to find prime\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].addEventListener('message', workerMessage);\n }\n\n /* Note: The distribution of random numbers is unknown. Therefore, each\n web worker is continuously allocated a range of numbers to check for a\n random number until one is found.\n\n Every 30 numbers will be checked just 8 times, because prime numbers\n have the form:\n\n 30k+i, for i < 30 and gcd(30, i)=1 (there are 8 values of i for this)\n\n Therefore, if we want a web worker to run N checks before asking for\n a new range of numbers, each range must contain N*30/8 numbers.\n\n For 100 checks (workLoad), this is a range of 375. */\n\n var found = false;\n function workerMessage(e) {\n // ignore message, prime already found\n if(found) {\n return;\n }\n\n --running;\n var data = e.data;\n if(data.found) {\n // terminate all workers\n for(var i = 0; i < workers.length; ++i) {\n workers[i].terminate();\n }\n found = true;\n return callback(null, new BigInteger(data.prime, 16));\n }\n\n // overflow, regenerate random number\n if(num.bitLength() > bits) {\n num = generateRandom(bits, rng);\n }\n\n // assign new range to check\n var hex = num.toString(16);\n\n // start prime search\n e.target.postMessage({\n hex: hex,\n workLoad: workLoad\n });\n\n num.dAddOffset(range, 0);\n }\n }\n}\n\n/**\n * Generates a random number using the given number of bits and RNG.\n *\n * @param bits the number of bits for the number.\n * @param rng the random number generator to use.\n *\n * @return the random number.\n */\nfunction generateRandom(bits, rng) {\n var num = new BigInteger(bits, rng);\n // force MSB set\n var bits1 = bits - 1;\n if(!num.testBit(bits1)) {\n num.bitwiseTo(BigInteger.ONE.shiftLeft(bits1), op_or, num);\n }\n // align number on 30k+1 boundary\n num.dAddOffset(31 - num.mod(THIRTY).byteValue(), 0);\n return num;\n}\n\n/**\n * Returns the required number of Miller-Rabin tests to generate a\n * prime with an error probability of (1/2)^80.\n *\n * See Handbook of Applied Cryptography Chapter 4, Table 4.4.\n *\n * @param bits the bit size.\n *\n * @return the required number of iterations.\n */\nfunction getMillerRabinTests(bits) {\n if(bits <= 100) return 27;\n if(bits <= 150) return 18;\n if(bits <= 200) return 15;\n if(bits <= 250) return 12;\n if(bits <= 300) return 9;\n if(bits <= 350) return 8;\n if(bits <= 400) return 7;\n if(bits <= 500) return 6;\n if(bits <= 600) return 5;\n if(bits <= 800) return 4;\n if(bits <= 1250) return 3;\n return 2;\n}\n\n})();\n","/**\n * A javascript implementation of a cryptographically-secure\n * Pseudo Random Number Generator (PRNG). The Fortuna algorithm is followed\n * here though the use of SHA-256 is not enforced; when generating an\n * a PRNG context, the hashing algorithm and block cipher used for\n * the generator are specified via a plugin.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nvar _crypto = null;\nif(forge.util.isNodejs && !forge.options.usePureJavaScript &&\n !process.versions['node-webkit']) {\n _crypto = require('crypto');\n}\n\n/* PRNG API */\nvar prng = module.exports = forge.prng = forge.prng || {};\n\n/**\n * Creates a new PRNG context.\n *\n * A PRNG plugin must be passed in that will provide:\n *\n * 1. A function that initializes the key and seed of a PRNG context. It\n * will be given a 16 byte key and a 16 byte seed. Any key expansion\n * or transformation of the seed from a byte string into an array of\n * integers (or similar) should be performed.\n * 2. The cryptographic function used by the generator. It takes a key and\n * a seed.\n * 3. A seed increment function. It takes the seed and returns seed + 1.\n * 4. An api to create a message digest.\n *\n * For an example, see random.js.\n *\n * @param plugin the PRNG plugin to use.\n */\nprng.create = function(plugin) {\n var ctx = {\n plugin: plugin,\n key: null,\n seed: null,\n time: null,\n // number of reseeds so far\n reseeds: 0,\n // amount of data generated so far\n generated: 0,\n // no initial key bytes\n keyBytes: ''\n };\n\n // create 32 entropy pools (each is a message digest)\n var md = plugin.md;\n var pools = new Array(32);\n for(var i = 0; i < 32; ++i) {\n pools[i] = md.create();\n }\n ctx.pools = pools;\n\n // entropy pools are written to cyclically, starting at index 0\n ctx.pool = 0;\n\n /**\n * Generates random bytes. The bytes may be generated synchronously or\n * asynchronously. Web workers must use the asynchronous interface or\n * else the behavior is undefined.\n *\n * @param count the number of random bytes to generate.\n * @param [callback(err, bytes)] called once the operation completes.\n *\n * @return count random bytes as a string.\n */\n ctx.generate = function(count, callback) {\n // do synchronously\n if(!callback) {\n return ctx.generateSync(count);\n }\n\n // simple generator using counter-based CBC\n var cipher = ctx.plugin.cipher;\n var increment = ctx.plugin.increment;\n var formatKey = ctx.plugin.formatKey;\n var formatSeed = ctx.plugin.formatSeed;\n var b = forge.util.createBuffer();\n\n // paranoid deviation from Fortuna:\n // reset key for every request to protect previously\n // generated random bytes should the key be discovered;\n // there is no 100ms based reseeding because of this\n // forced reseed for every `generate` call\n ctx.key = null;\n\n generate();\n\n function generate(err) {\n if(err) {\n return callback(err);\n }\n\n // sufficient bytes generated\n if(b.length() >= count) {\n return callback(null, b.getBytes(count));\n }\n\n // if amount of data generated is greater than 1 MiB, trigger reseed\n if(ctx.generated > 0xfffff) {\n ctx.key = null;\n }\n\n if(ctx.key === null) {\n // prevent stack overflow\n return forge.util.nextTick(function() {\n _reseed(generate);\n });\n }\n\n // generate the random bytes\n var bytes = cipher(ctx.key, ctx.seed);\n ctx.generated += bytes.length;\n b.putBytes(bytes);\n\n // generate bytes for a new key and seed\n ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed)));\n ctx.seed = formatSeed(cipher(ctx.key, ctx.seed));\n\n forge.util.setImmediate(generate);\n }\n };\n\n /**\n * Generates random bytes synchronously.\n *\n * @param count the number of random bytes to generate.\n *\n * @return count random bytes as a string.\n */\n ctx.generateSync = function(count) {\n // simple generator using counter-based CBC\n var cipher = ctx.plugin.cipher;\n var increment = ctx.plugin.increment;\n var formatKey = ctx.plugin.formatKey;\n var formatSeed = ctx.plugin.formatSeed;\n\n // paranoid deviation from Fortuna:\n // reset key for every request to protect previously\n // generated random bytes should the key be discovered;\n // there is no 100ms based reseeding because of this\n // forced reseed for every `generateSync` call\n ctx.key = null;\n\n var b = forge.util.createBuffer();\n while(b.length() < count) {\n // if amount of data generated is greater than 1 MiB, trigger reseed\n if(ctx.generated > 0xfffff) {\n ctx.key = null;\n }\n\n if(ctx.key === null) {\n _reseedSync();\n }\n\n // generate the random bytes\n var bytes = cipher(ctx.key, ctx.seed);\n ctx.generated += bytes.length;\n b.putBytes(bytes);\n\n // generate bytes for a new key and seed\n ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed)));\n ctx.seed = formatSeed(cipher(ctx.key, ctx.seed));\n }\n\n return b.getBytes(count);\n };\n\n /**\n * Private function that asynchronously reseeds a generator.\n *\n * @param callback(err) called once the operation completes.\n */\n function _reseed(callback) {\n if(ctx.pools[0].messageLength >= 32) {\n _seed();\n return callback();\n }\n // not enough seed data...\n var needed = (32 - ctx.pools[0].messageLength) << 5;\n ctx.seedFile(needed, function(err, bytes) {\n if(err) {\n return callback(err);\n }\n ctx.collect(bytes);\n _seed();\n callback();\n });\n }\n\n /**\n * Private function that synchronously reseeds a generator.\n */\n function _reseedSync() {\n if(ctx.pools[0].messageLength >= 32) {\n return _seed();\n }\n // not enough seed data...\n var needed = (32 - ctx.pools[0].messageLength) << 5;\n ctx.collect(ctx.seedFileSync(needed));\n _seed();\n }\n\n /**\n * Private function that seeds a generator once enough bytes are available.\n */\n function _seed() {\n // update reseed count\n ctx.reseeds = (ctx.reseeds === 0xffffffff) ? 0 : ctx.reseeds + 1;\n\n // goal is to update `key` via:\n // key = hash(key + s)\n // where 's' is all collected entropy from selected pools, then...\n\n // create a plugin-based message digest\n var md = ctx.plugin.md.create();\n\n // consume current key bytes\n md.update(ctx.keyBytes);\n\n // digest the entropy of pools whose index k meet the\n // condition 'n mod 2^k == 0' where n is the number of reseeds\n var _2powK = 1;\n for(var k = 0; k < 32; ++k) {\n if(ctx.reseeds % _2powK === 0) {\n md.update(ctx.pools[k].digest().getBytes());\n ctx.pools[k].start();\n }\n _2powK = _2powK << 1;\n }\n\n // get digest for key bytes\n ctx.keyBytes = md.digest().getBytes();\n\n // paranoid deviation from Fortuna:\n // update `seed` via `seed = hash(key)`\n // instead of initializing to zero once and only\n // ever incrementing it\n md.start();\n md.update(ctx.keyBytes);\n var seedBytes = md.digest().getBytes();\n\n // update state\n ctx.key = ctx.plugin.formatKey(ctx.keyBytes);\n ctx.seed = ctx.plugin.formatSeed(seedBytes);\n ctx.generated = 0;\n }\n\n /**\n * The built-in default seedFile. This seedFile is used when entropy\n * is needed immediately.\n *\n * @param needed the number of bytes that are needed.\n *\n * @return the random bytes.\n */\n function defaultSeedFile(needed) {\n // use window.crypto.getRandomValues strong source of entropy if available\n var getRandomValues = null;\n var globalScope = forge.util.globalScope;\n var _crypto = globalScope.crypto || globalScope.msCrypto;\n if(_crypto && _crypto.getRandomValues) {\n getRandomValues = function(arr) {\n return _crypto.getRandomValues(arr);\n };\n }\n\n var b = forge.util.createBuffer();\n if(getRandomValues) {\n while(b.length() < needed) {\n // max byte length is 65536 before QuotaExceededError is thrown\n // http://www.w3.org/TR/WebCryptoAPI/#RandomSource-method-getRandomValues\n var count = Math.max(1, Math.min(needed - b.length(), 65536) / 4);\n var entropy = new Uint32Array(Math.floor(count));\n try {\n getRandomValues(entropy);\n for(var i = 0; i < entropy.length; ++i) {\n b.putInt32(entropy[i]);\n }\n } catch(e) {\n /* only ignore QuotaExceededError */\n if(!(typeof QuotaExceededError !== 'undefined' &&\n e instanceof QuotaExceededError)) {\n throw e;\n }\n }\n }\n }\n\n // be sad and add some weak random data\n if(b.length() < needed) {\n /* Draws from Park-Miller \"minimal standard\" 31 bit PRNG,\n implemented with David G. Carta's optimization: with 32 bit math\n and without division (Public Domain). */\n var hi, lo, next;\n var seed = Math.floor(Math.random() * 0x010000);\n while(b.length() < needed) {\n lo = 16807 * (seed & 0xFFFF);\n hi = 16807 * (seed >> 16);\n lo += (hi & 0x7FFF) << 16;\n lo += hi >> 15;\n lo = (lo & 0x7FFFFFFF) + (lo >> 31);\n seed = lo & 0xFFFFFFFF;\n\n // consume lower 3 bytes of seed\n for(var i = 0; i < 3; ++i) {\n // throw in more pseudo random\n next = seed >>> (i << 3);\n next ^= Math.floor(Math.random() * 0x0100);\n b.putByte(next & 0xFF);\n }\n }\n }\n\n return b.getBytes(needed);\n }\n // initialize seed file APIs\n if(_crypto) {\n // use nodejs async API\n ctx.seedFile = function(needed, callback) {\n _crypto.randomBytes(needed, function(err, bytes) {\n if(err) {\n return callback(err);\n }\n callback(null, bytes.toString());\n });\n };\n // use nodejs sync API\n ctx.seedFileSync = function(needed) {\n return _crypto.randomBytes(needed).toString();\n };\n } else {\n ctx.seedFile = function(needed, callback) {\n try {\n callback(null, defaultSeedFile(needed));\n } catch(e) {\n callback(e);\n }\n };\n ctx.seedFileSync = defaultSeedFile;\n }\n\n /**\n * Adds entropy to a prng ctx's accumulator.\n *\n * @param bytes the bytes of entropy as a string.\n */\n ctx.collect = function(bytes) {\n // iterate over pools distributing entropy cyclically\n var count = bytes.length;\n for(var i = 0; i < count; ++i) {\n ctx.pools[ctx.pool].update(bytes.substr(i, 1));\n ctx.pool = (ctx.pool === 31) ? 0 : ctx.pool + 1;\n }\n };\n\n /**\n * Collects an integer of n bits.\n *\n * @param i the integer entropy.\n * @param n the number of bits in the integer.\n */\n ctx.collectInt = function(i, n) {\n var bytes = '';\n for(var x = 0; x < n; x += 8) {\n bytes += String.fromCharCode((i >> x) & 0xFF);\n }\n ctx.collect(bytes);\n };\n\n /**\n * Registers a Web Worker to receive immediate entropy from the main thread.\n * This method is required until Web Workers can access the native crypto\n * API. This method should be called twice for each created worker, once in\n * the main thread, and once in the worker itself.\n *\n * @param worker the worker to register.\n */\n ctx.registerWorker = function(worker) {\n // worker receives random bytes\n if(worker === self) {\n ctx.seedFile = function(needed, callback) {\n function listener(e) {\n var data = e.data;\n if(data.forge && data.forge.prng) {\n self.removeEventListener('message', listener);\n callback(data.forge.prng.err, data.forge.prng.bytes);\n }\n }\n self.addEventListener('message', listener);\n self.postMessage({forge: {prng: {needed: needed}}});\n };\n } else {\n // main thread sends random bytes upon request\n var listener = function(e) {\n var data = e.data;\n if(data.forge && data.forge.prng) {\n ctx.seedFile(data.forge.prng.needed, function(err, bytes) {\n worker.postMessage({forge: {prng: {err: err, bytes: bytes}}});\n });\n }\n };\n // TODO: do we need to remove the event listener when the worker dies?\n worker.addEventListener('message', listener);\n }\n };\n\n return ctx;\n};\n","/**\n * Javascript implementation of PKCS#1 PSS signature padding.\n *\n * @author Stefan Siegl\n *\n * Copyright (c) 2012 Stefan Siegl \n */\nvar forge = require('./forge');\nrequire('./random');\nrequire('./util');\n\n// shortcut for PSS API\nvar pss = module.exports = forge.pss = forge.pss || {};\n\n/**\n * Creates a PSS signature scheme object.\n *\n * There are several ways to provide a salt for encoding:\n *\n * 1. Specify the saltLength only and the built-in PRNG will generate it.\n * 2. Specify the saltLength and a custom PRNG with 'getBytesSync' defined that\n * will be used.\n * 3. Specify the salt itself as a forge.util.ByteBuffer.\n *\n * @param options the options to use:\n * md the message digest object to use, a forge md instance.\n * mgf the mask generation function to use, a forge mgf instance.\n * [saltLength] the length of the salt in octets.\n * [prng] the pseudo-random number generator to use to produce a salt.\n * [salt] the salt to use when encoding.\n *\n * @return a signature scheme object.\n */\npss.create = function(options) {\n // backwards compatibility w/legacy args: hash, mgf, sLen\n if(arguments.length === 3) {\n options = {\n md: arguments[0],\n mgf: arguments[1],\n saltLength: arguments[2]\n };\n }\n\n var hash = options.md;\n var mgf = options.mgf;\n var hLen = hash.digestLength;\n\n var salt_ = options.salt || null;\n if(typeof salt_ === 'string') {\n // assume binary-encoded string\n salt_ = forge.util.createBuffer(salt_);\n }\n\n var sLen;\n if('saltLength' in options) {\n sLen = options.saltLength;\n } else if(salt_ !== null) {\n sLen = salt_.length();\n } else {\n throw new Error('Salt length not specified or specific salt not given.');\n }\n\n if(salt_ !== null && salt_.length() !== sLen) {\n throw new Error('Given salt length does not match length of given salt.');\n }\n\n var prng = options.prng || forge.random;\n\n var pssobj = {};\n\n /**\n * Encodes a PSS signature.\n *\n * This function implements EMSA-PSS-ENCODE as per RFC 3447, section 9.1.1.\n *\n * @param md the message digest object with the hash to sign.\n * @param modsBits the length of the RSA modulus in bits.\n *\n * @return the encoded message as a binary-encoded string of length\n * ceil((modBits - 1) / 8).\n */\n pssobj.encode = function(md, modBits) {\n var i;\n var emBits = modBits - 1;\n var emLen = Math.ceil(emBits / 8);\n\n /* 2. Let mHash = Hash(M), an octet string of length hLen. */\n var mHash = md.digest().getBytes();\n\n /* 3. If emLen < hLen + sLen + 2, output \"encoding error\" and stop. */\n if(emLen < hLen + sLen + 2) {\n throw new Error('Message is too long to encrypt.');\n }\n\n /* 4. Generate a random octet string salt of length sLen; if sLen = 0,\n * then salt is the empty string. */\n var salt;\n if(salt_ === null) {\n salt = prng.getBytesSync(sLen);\n } else {\n salt = salt_.bytes();\n }\n\n /* 5. Let M' = (0x)00 00 00 00 00 00 00 00 || mHash || salt; */\n var m_ = new forge.util.ByteBuffer();\n m_.fillWithByte(0, 8);\n m_.putBytes(mHash);\n m_.putBytes(salt);\n\n /* 6. Let H = Hash(M'), an octet string of length hLen. */\n hash.start();\n hash.update(m_.getBytes());\n var h = hash.digest().getBytes();\n\n /* 7. Generate an octet string PS consisting of emLen - sLen - hLen - 2\n * zero octets. The length of PS may be 0. */\n var ps = new forge.util.ByteBuffer();\n ps.fillWithByte(0, emLen - sLen - hLen - 2);\n\n /* 8. Let DB = PS || 0x01 || salt; DB is an octet string of length\n * emLen - hLen - 1. */\n ps.putByte(0x01);\n ps.putBytes(salt);\n var db = ps.getBytes();\n\n /* 9. Let dbMask = MGF(H, emLen - hLen - 1). */\n var maskLen = emLen - hLen - 1;\n var dbMask = mgf.generate(h, maskLen);\n\n /* 10. Let maskedDB = DB \\xor dbMask. */\n var maskedDB = '';\n for(i = 0; i < maskLen; i++) {\n maskedDB += String.fromCharCode(db.charCodeAt(i) ^ dbMask.charCodeAt(i));\n }\n\n /* 11. Set the leftmost 8emLen - emBits bits of the leftmost octet in\n * maskedDB to zero. */\n var mask = (0xFF00 >> (8 * emLen - emBits)) & 0xFF;\n maskedDB = String.fromCharCode(maskedDB.charCodeAt(0) & ~mask) +\n maskedDB.substr(1);\n\n /* 12. Let EM = maskedDB || H || 0xbc.\n * 13. Output EM. */\n return maskedDB + h + String.fromCharCode(0xbc);\n };\n\n /**\n * Verifies a PSS signature.\n *\n * This function implements EMSA-PSS-VERIFY as per RFC 3447, section 9.1.2.\n *\n * @param mHash the message digest hash, as a binary-encoded string, to\n * compare against the signature.\n * @param em the encoded message, as a binary-encoded string\n * (RSA decryption result).\n * @param modsBits the length of the RSA modulus in bits.\n *\n * @return true if the signature was verified, false if not.\n */\n pssobj.verify = function(mHash, em, modBits) {\n var i;\n var emBits = modBits - 1;\n var emLen = Math.ceil(emBits / 8);\n\n /* c. Convert the message representative m to an encoded message EM\n * of length emLen = ceil((modBits - 1) / 8) octets, where modBits\n * is the length in bits of the RSA modulus n */\n em = em.substr(-emLen);\n\n /* 3. If emLen < hLen + sLen + 2, output \"inconsistent\" and stop. */\n if(emLen < hLen + sLen + 2) {\n throw new Error('Inconsistent parameters to PSS signature verification.');\n }\n\n /* 4. If the rightmost octet of EM does not have hexadecimal value\n * 0xbc, output \"inconsistent\" and stop. */\n if(em.charCodeAt(emLen - 1) !== 0xbc) {\n throw new Error('Encoded message does not end in 0xBC.');\n }\n\n /* 5. Let maskedDB be the leftmost emLen - hLen - 1 octets of EM, and\n * let H be the next hLen octets. */\n var maskLen = emLen - hLen - 1;\n var maskedDB = em.substr(0, maskLen);\n var h = em.substr(maskLen, hLen);\n\n /* 6. If the leftmost 8emLen - emBits bits of the leftmost octet in\n * maskedDB are not all equal to zero, output \"inconsistent\" and stop. */\n var mask = (0xFF00 >> (8 * emLen - emBits)) & 0xFF;\n if((maskedDB.charCodeAt(0) & mask) !== 0) {\n throw new Error('Bits beyond keysize not zero as expected.');\n }\n\n /* 7. Let dbMask = MGF(H, emLen - hLen - 1). */\n var dbMask = mgf.generate(h, maskLen);\n\n /* 8. Let DB = maskedDB \\xor dbMask. */\n var db = '';\n for(i = 0; i < maskLen; i++) {\n db += String.fromCharCode(maskedDB.charCodeAt(i) ^ dbMask.charCodeAt(i));\n }\n\n /* 9. Set the leftmost 8emLen - emBits bits of the leftmost octet\n * in DB to zero. */\n db = String.fromCharCode(db.charCodeAt(0) & ~mask) + db.substr(1);\n\n /* 10. If the emLen - hLen - sLen - 2 leftmost octets of DB are not zero\n * or if the octet at position emLen - hLen - sLen - 1 (the leftmost\n * position is \"position 1\") does not have hexadecimal value 0x01,\n * output \"inconsistent\" and stop. */\n var checkLen = emLen - hLen - sLen - 2;\n for(i = 0; i < checkLen; i++) {\n if(db.charCodeAt(i) !== 0x00) {\n throw new Error('Leftmost octets not zero as expected');\n }\n }\n\n if(db.charCodeAt(checkLen) !== 0x01) {\n throw new Error('Inconsistent PSS signature, 0x01 marker not found');\n }\n\n /* 11. Let salt be the last sLen octets of DB. */\n var salt = db.substr(-sLen);\n\n /* 12. Let M' = (0x)00 00 00 00 00 00 00 00 || mHash || salt */\n var m_ = new forge.util.ByteBuffer();\n m_.fillWithByte(0, 8);\n m_.putBytes(mHash);\n m_.putBytes(salt);\n\n /* 13. Let H' = Hash(M'), an octet string of length hLen. */\n hash.start();\n hash.update(m_.getBytes());\n var h_ = hash.digest().getBytes();\n\n /* 14. If H = H', output \"consistent.\" Otherwise, output \"inconsistent.\" */\n return h === h_;\n };\n\n return pssobj;\n};\n","/**\n * An API for getting cryptographically-secure random bytes. The bytes are\n * generated using the Fortuna algorithm devised by Bruce Schneier and\n * Niels Ferguson.\n *\n * Getting strong random bytes is not yet easy to do in javascript. The only\n * truish random entropy that can be collected is from the mouse, keyboard, or\n * from timing with respect to page loads, etc. This generator makes a poor\n * attempt at providing random bytes when those sources haven't yet provided\n * enough entropy to initially seed or to reseed the PRNG.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./sha256');\nrequire('./prng');\nrequire('./util');\n\n(function() {\n\n// forge.random already defined\nif(forge.random && forge.random.getBytes) {\n module.exports = forge.random;\n return;\n}\n\n(function(jQuery) {\n\n// the default prng plugin, uses AES-128\nvar prng_aes = {};\nvar _prng_aes_output = new Array(4);\nvar _prng_aes_buffer = forge.util.createBuffer();\nprng_aes.formatKey = function(key) {\n // convert the key into 32-bit integers\n var tmp = forge.util.createBuffer(key);\n key = new Array(4);\n key[0] = tmp.getInt32();\n key[1] = tmp.getInt32();\n key[2] = tmp.getInt32();\n key[3] = tmp.getInt32();\n\n // return the expanded key\n return forge.aes._expandKey(key, false);\n};\nprng_aes.formatSeed = function(seed) {\n // convert seed into 32-bit integers\n var tmp = forge.util.createBuffer(seed);\n seed = new Array(4);\n seed[0] = tmp.getInt32();\n seed[1] = tmp.getInt32();\n seed[2] = tmp.getInt32();\n seed[3] = tmp.getInt32();\n return seed;\n};\nprng_aes.cipher = function(key, seed) {\n forge.aes._updateBlock(key, seed, _prng_aes_output, false);\n _prng_aes_buffer.putInt32(_prng_aes_output[0]);\n _prng_aes_buffer.putInt32(_prng_aes_output[1]);\n _prng_aes_buffer.putInt32(_prng_aes_output[2]);\n _prng_aes_buffer.putInt32(_prng_aes_output[3]);\n return _prng_aes_buffer.getBytes();\n};\nprng_aes.increment = function(seed) {\n // FIXME: do we care about carry or signed issues?\n ++seed[3];\n return seed;\n};\nprng_aes.md = forge.md.sha256;\n\n/**\n * Creates a new PRNG.\n */\nfunction spawnPrng() {\n var ctx = forge.prng.create(prng_aes);\n\n /**\n * Gets random bytes. If a native secure crypto API is unavailable, this\n * method tries to make the bytes more unpredictable by drawing from data that\n * can be collected from the user of the browser, eg: mouse movement.\n *\n * If a callback is given, this method will be called asynchronously.\n *\n * @param count the number of random bytes to get.\n * @param [callback(err, bytes)] called once the operation completes.\n *\n * @return the random bytes in a string.\n */\n ctx.getBytes = function(count, callback) {\n return ctx.generate(count, callback);\n };\n\n /**\n * Gets random bytes asynchronously. If a native secure crypto API is\n * unavailable, this method tries to make the bytes more unpredictable by\n * drawing from data that can be collected from the user of the browser,\n * eg: mouse movement.\n *\n * @param count the number of random bytes to get.\n *\n * @return the random bytes in a string.\n */\n ctx.getBytesSync = function(count) {\n return ctx.generate(count);\n };\n\n return ctx;\n}\n\n// create default prng context\nvar _ctx = spawnPrng();\n\n// add other sources of entropy only if window.crypto.getRandomValues is not\n// available -- otherwise this source will be automatically used by the prng\nvar getRandomValues = null;\nvar globalScope = forge.util.globalScope;\nvar _crypto = globalScope.crypto || globalScope.msCrypto;\nif(_crypto && _crypto.getRandomValues) {\n getRandomValues = function(arr) {\n return _crypto.getRandomValues(arr);\n };\n}\n\nif(forge.options.usePureJavaScript ||\n (!forge.util.isNodejs && !getRandomValues)) {\n // if this is a web worker, do not use weak entropy, instead register to\n // receive strong entropy asynchronously from the main thread\n if(typeof window === 'undefined' || window.document === undefined) {\n // FIXME:\n }\n\n // get load time entropy\n _ctx.collectInt(+new Date(), 32);\n\n // add some entropy from navigator object\n if(typeof(navigator) !== 'undefined') {\n var _navBytes = '';\n for(var key in navigator) {\n try {\n if(typeof(navigator[key]) == 'string') {\n _navBytes += navigator[key];\n }\n } catch(e) {\n /* Some navigator keys might not be accessible, e.g. the geolocation\n attribute throws an exception if touched in Mozilla chrome://\n context.\n\n Silently ignore this and just don't use this as a source of\n entropy. */\n }\n }\n _ctx.collect(_navBytes);\n _navBytes = null;\n }\n\n // add mouse and keyboard collectors if jquery is available\n if(jQuery) {\n // set up mouse entropy capture\n jQuery().mousemove(function(e) {\n // add mouse coords\n _ctx.collectInt(e.clientX, 16);\n _ctx.collectInt(e.clientY, 16);\n });\n\n // set up keyboard entropy capture\n jQuery().keypress(function(e) {\n _ctx.collectInt(e.charCode, 8);\n });\n }\n}\n\n/* Random API */\nif(!forge.random) {\n forge.random = _ctx;\n} else {\n // extend forge.random with _ctx\n for(var key in _ctx) {\n forge.random[key] = _ctx[key];\n }\n}\n\n// expose spawn PRNG\nforge.random.createInstance = spawnPrng;\n\nmodule.exports = forge.random;\n\n})(typeof(jQuery) !== 'undefined' ? jQuery : null);\n\n})();\n","/**\n * RC2 implementation.\n *\n * @author Stefan Siegl\n *\n * Copyright (c) 2012 Stefan Siegl \n *\n * Information on the RC2 cipher is available from RFC #2268,\n * http://www.ietf.org/rfc/rfc2268.txt\n */\nvar forge = require('./forge');\nrequire('./util');\n\nvar piTable = [\n 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d,\n 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2,\n 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32,\n 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82,\n 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc,\n 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26,\n 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03,\n 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7,\n 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a,\n 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec,\n 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39,\n 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31,\n 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9,\n 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9,\n 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e,\n 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad\n];\n\nvar s = [1, 2, 3, 5];\n\n/**\n * Rotate a word left by given number of bits.\n *\n * Bits that are shifted out on the left are put back in on the right\n * hand side.\n *\n * @param word The word to shift left.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar rol = function(word, bits) {\n return ((word << bits) & 0xffff) | ((word & 0xffff) >> (16 - bits));\n};\n\n/**\n * Rotate a word right by given number of bits.\n *\n * Bits that are shifted out on the right are put back in on the left\n * hand side.\n *\n * @param word The word to shift right.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar ror = function(word, bits) {\n return ((word & 0xffff) >> bits) | ((word << (16 - bits)) & 0xffff);\n};\n\n/* RC2 API */\nmodule.exports = forge.rc2 = forge.rc2 || {};\n\n/**\n * Perform RC2 key expansion as per RFC #2268, section 2.\n *\n * @param key variable-length user key (between 1 and 128 bytes)\n * @param effKeyBits number of effective key bits (default: 128)\n * @return the expanded RC2 key (ByteBuffer of 128 bytes)\n */\nforge.rc2.expandKey = function(key, effKeyBits) {\n if(typeof key === 'string') {\n key = forge.util.createBuffer(key);\n }\n effKeyBits = effKeyBits || 128;\n\n /* introduce variables that match the names used in RFC #2268 */\n var L = key;\n var T = key.length();\n var T1 = effKeyBits;\n var T8 = Math.ceil(T1 / 8);\n var TM = 0xff >> (T1 & 0x07);\n var i;\n\n for(i = T; i < 128; i++) {\n L.putByte(piTable[(L.at(i - 1) + L.at(i - T)) & 0xff]);\n }\n\n L.setAt(128 - T8, piTable[L.at(128 - T8) & TM]);\n\n for(i = 127 - T8; i >= 0; i--) {\n L.setAt(i, piTable[L.at(i + 1) ^ L.at(i + T8)]);\n }\n\n return L;\n};\n\n/**\n * Creates a RC2 cipher object.\n *\n * @param key the symmetric key to use (as base for key generation).\n * @param bits the number of effective key bits.\n * @param encrypt false for decryption, true for encryption.\n *\n * @return the cipher.\n */\nvar createCipher = function(key, bits, encrypt) {\n var _finish = false, _input = null, _output = null, _iv = null;\n var mixRound, mashRound;\n var i, j, K = [];\n\n /* Expand key and fill into K[] Array */\n key = forge.rc2.expandKey(key, bits);\n for(i = 0; i < 64; i++) {\n K.push(key.getInt16Le());\n }\n\n if(encrypt) {\n /**\n * Perform one mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n R[i] = rol(R[i], s[i]);\n j++;\n }\n };\n\n /**\n * Perform one mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[R[(i + 3) % 4] & 63];\n }\n };\n } else {\n /**\n * Perform one r-mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] = ror(R[i], s[i]);\n R[i] -= K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n j--;\n }\n };\n\n /**\n * Perform one r-mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] -= K[R[(i + 3) % 4] & 63];\n }\n };\n }\n\n /**\n * Run the specified cipher execution plan.\n *\n * This function takes four words from the input buffer, applies the IV on\n * it (if requested) and runs the provided execution plan.\n *\n * The plan must be put together in form of a array of arrays. Where the\n * outer one is simply a list of steps to perform and the inner one needs\n * to have two elements: the first one telling how many rounds to perform,\n * the second one telling what to do (i.e. the function to call).\n *\n * @param {Array} plan The plan to execute.\n */\n var runPlan = function(plan) {\n var R = [];\n\n /* Get data from input buffer and fill the four words into R */\n for(i = 0; i < 4; i++) {\n var val = _input.getInt16Le();\n\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting, apply the IV first. */\n val ^= _iv.getInt16Le();\n } else {\n /* We're decryption, keep cipher text for next block. */\n _iv.putInt16Le(val);\n }\n }\n\n R.push(val & 0xffff);\n }\n\n /* Reset global \"j\" variable as per spec. */\n j = encrypt ? 0 : 63;\n\n /* Run execution plan. */\n for(var ptr = 0; ptr < plan.length; ptr++) {\n for(var ctr = 0; ctr < plan[ptr][0]; ctr++) {\n plan[ptr][1](R);\n }\n }\n\n /* Write back result to output buffer. */\n for(i = 0; i < 4; i++) {\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting in CBC-mode, feed back encrypted bytes into\n IV buffer to carry it forward to next block. */\n _iv.putInt16Le(R[i]);\n } else {\n R[i] ^= _iv.getInt16Le();\n }\n }\n\n _output.putInt16Le(R[i]);\n }\n };\n\n /* Create cipher object */\n var cipher = null;\n cipher = {\n /**\n * Starts or restarts the encryption or decryption process, whichever\n * was previously configured.\n *\n * To use the cipher in CBC mode, iv may be given either as a string\n * of bytes, or as a byte buffer. For ECB mode, give null as iv.\n *\n * @param iv the initialization vector to use, null for ECB mode.\n * @param output the output the buffer to write to, null to create one.\n */\n start: function(iv, output) {\n if(iv) {\n /* CBC mode */\n if(typeof iv === 'string') {\n iv = forge.util.createBuffer(iv);\n }\n }\n\n _finish = false;\n _input = forge.util.createBuffer();\n _output = output || new forge.util.createBuffer();\n _iv = iv;\n\n cipher.output = _output;\n },\n\n /**\n * Updates the next block.\n *\n * @param input the buffer to read from.\n */\n update: function(input) {\n if(!_finish) {\n // not finishing, so fill the input buffer with more input\n _input.putBuffer(input);\n }\n\n while(_input.length() >= 8) {\n runPlan([\n [ 5, mixRound ],\n [ 1, mashRound ],\n [ 6, mixRound ],\n [ 1, mashRound ],\n [ 5, mixRound ]\n ]);\n }\n },\n\n /**\n * Finishes encrypting or decrypting.\n *\n * @param pad a padding function to use, null for PKCS#7 padding,\n * signature(blockSize, buffer, decrypt).\n *\n * @return true if successful, false on error.\n */\n finish: function(pad) {\n var rval = true;\n\n if(encrypt) {\n if(pad) {\n rval = pad(8, _input, !encrypt);\n } else {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (_input.length() === 8) ? 8 : (8 - _input.length());\n _input.fillWithByte(padding, padding);\n }\n }\n\n if(rval) {\n // do final update\n _finish = true;\n cipher.update();\n }\n\n if(!encrypt) {\n // check for error: input data not a multiple of block size\n rval = (_input.length() === 0);\n if(rval) {\n if(pad) {\n rval = pad(8, _output, !encrypt);\n } else {\n // ensure padding byte count is valid\n var len = _output.length();\n var count = _output.at(len - 1);\n\n if(count > len) {\n rval = false;\n } else {\n // trim off padding bytes\n _output.truncate(count);\n }\n }\n }\n }\n\n return rval;\n }\n };\n\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startEncrypting = function(key, iv, output) {\n var cipher = forge.rc2.createEncryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start encrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createEncryptionCipher = function(key, bits) {\n return createCipher(key, bits, true);\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startDecrypting = function(key, iv, output) {\n var cipher = forge.rc2.createDecryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start decrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createDecryptionCipher = function(key, bits) {\n return createCipher(key, bits, false);\n};\n","/**\n * Javascript implementation of basic RSA algorithms.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n *\n * The only algorithm currently supported for PKI is RSA.\n *\n * An RSA key is often stored in ASN.1 DER format. The SubjectPublicKeyInfo\n * ASN.1 structure is composed of an algorithm of type AlgorithmIdentifier\n * and a subjectPublicKey of type bit string.\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of RSA, there aren't any.\n *\n * SubjectPublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * subjectPublicKey BIT STRING\n * }\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * For an RSA public key, the subjectPublicKey is:\n *\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n *\n * PrivateKeyInfo ::= SEQUENCE {\n * version Version,\n * privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,\n * privateKey PrivateKey,\n * attributes [0] IMPLICIT Attributes OPTIONAL\n * }\n *\n * Version ::= INTEGER\n * PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier\n * PrivateKey ::= OCTET STRING\n * Attributes ::= SET OF Attribute\n *\n * An RSA private key as the following structure:\n *\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponent INTEGER, -- d\n * prime1 INTEGER, -- p\n * prime2 INTEGER, -- q\n * exponent1 INTEGER, -- d mod (p-1)\n * exponent2 INTEGER, -- d mod (q-1)\n * coefficient INTEGER -- (inverse of q) mod p\n * }\n *\n * Version ::= INTEGER\n *\n * The OID for the RSA key algorithm is: 1.2.840.113549.1.1.1\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./jsbn');\nrequire('./oids');\nrequire('./pkcs1');\nrequire('./prime');\nrequire('./random');\nrequire('./util');\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\nvar _crypto = forge.util.isNodejs ? require('crypto') : null;\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for util API\nvar util = forge.util;\n\n/*\n * RSA encryption and decryption, see RFC 2313.\n */\nforge.pki = forge.pki || {};\nmodule.exports = forge.pki.rsa = forge.rsa = forge.rsa || {};\nvar pki = forge.pki;\n\n// for finding primes, which are 30k+i for i = 1, 7, 11, 13, 17, 19, 23, 29\nvar GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2];\n\n// validator for a PrivateKeyInfo structure\nvar privateKeyValidator = {\n // PrivateKeyInfo\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'PrivateKeyInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // privateKeyAlgorithm\n name: 'PrivateKeyInfo.privateKeyAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'privateKeyOid'\n }]\n }, {\n // PrivateKey\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'privateKey'\n }]\n};\n\n// validator for an RSA private key\nvar rsaPrivateKeyValidator = {\n // RSAPrivateKey\n name: 'RSAPrivateKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'RSAPrivateKey.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // modulus (n)\n name: 'RSAPrivateKey.modulus',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyModulus'\n }, {\n // publicExponent (e)\n name: 'RSAPrivateKey.publicExponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPublicExponent'\n }, {\n // privateExponent (d)\n name: 'RSAPrivateKey.privateExponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrivateExponent'\n }, {\n // prime1 (p)\n name: 'RSAPrivateKey.prime1',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrime1'\n }, {\n // prime2 (q)\n name: 'RSAPrivateKey.prime2',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrime2'\n }, {\n // exponent1 (d mod (p-1))\n name: 'RSAPrivateKey.exponent1',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyExponent1'\n }, {\n // exponent2 (d mod (q-1))\n name: 'RSAPrivateKey.exponent2',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyExponent2'\n }, {\n // coefficient ((inverse of q) mod p)\n name: 'RSAPrivateKey.coefficient',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyCoefficient'\n }]\n};\n\n// validator for an RSA public key\nvar rsaPublicKeyValidator = {\n // RSAPublicKey\n name: 'RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // modulus (n)\n name: 'RSAPublicKey.modulus',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'publicKeyModulus'\n }, {\n // publicExponent (e)\n name: 'RSAPublicKey.exponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'publicKeyExponent'\n }]\n};\n\n// validator for an SubjectPublicKeyInfo structure\n// Note: Currently only works with an RSA public key\nvar publicKeyValidator = forge.pki.rsa.publicKeyValidator = {\n name: 'SubjectPublicKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'subjectPublicKeyInfo',\n value: [{\n name: 'SubjectPublicKeyInfo.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'publicKeyOid'\n }]\n }, {\n // subjectPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n value: [{\n // RSAPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'rsaPublicKey'\n }]\n }]\n};\n\n// validator for a DigestInfo structure\nvar digestInfoValidator = {\n name: 'DigestInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'DigestInfo.DigestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'DigestInfo.DigestAlgorithm.algorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'algorithmIdentifier'\n }, {\n // NULL paramters\n name: 'DigestInfo.DigestAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.NULL,\n // captured only to check existence for md2 and md5\n capture: 'parameters',\n optional: true,\n constructed: false\n }]\n }, {\n // digest\n name: 'DigestInfo.digest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'digest'\n }]\n};\n\n/**\n * Wrap digest in DigestInfo object.\n *\n * This function implements EMSA-PKCS1-v1_5-ENCODE as per RFC 3447.\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n *\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n * Digest ::= OCTET STRING\n *\n * @param md the message digest object with the hash to sign.\n *\n * @return the encoded message (ready for RSA encrytion)\n */\nvar emsaPkcs1v15encode = function(md) {\n // get the oid for the algorithm\n var oid;\n if(md.algorithm in pki.oids) {\n oid = pki.oids[md.algorithm];\n } else {\n var error = new Error('Unknown message digest algorithm.');\n error.algorithm = md.algorithm;\n throw error;\n }\n var oidBytes = asn1.oidToDer(oid).getBytes();\n\n // create the digest info\n var digestInfo = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var digestAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n digestAlgorithm.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false, oidBytes));\n digestAlgorithm.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.NULL, false, ''));\n var digest = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING,\n false, md.digest().getBytes());\n digestInfo.value.push(digestAlgorithm);\n digestInfo.value.push(digest);\n\n // encode digest info\n return asn1.toDer(digestInfo).getBytes();\n};\n\n/**\n * Performs x^c mod n (RSA encryption or decryption operation).\n *\n * @param x the number to raise and mod.\n * @param key the key to use.\n * @param pub true if the key is public, false if private.\n *\n * @return the result of x^c mod n.\n */\nvar _modPow = function(x, key, pub) {\n if(pub) {\n return x.modPow(key.e, key.n);\n }\n\n if(!key.p || !key.q) {\n // allow calculation without CRT params (slow)\n return x.modPow(key.d, key.n);\n }\n\n // pre-compute dP, dQ, and qInv if necessary\n if(!key.dP) {\n key.dP = key.d.mod(key.p.subtract(BigInteger.ONE));\n }\n if(!key.dQ) {\n key.dQ = key.d.mod(key.q.subtract(BigInteger.ONE));\n }\n if(!key.qInv) {\n key.qInv = key.q.modInverse(key.p);\n }\n\n /* Chinese remainder theorem (CRT) states:\n\n Suppose n1, n2, ..., nk are positive integers which are pairwise\n coprime (n1 and n2 have no common factors other than 1). For any\n integers x1, x2, ..., xk there exists an integer x solving the\n system of simultaneous congruences (where ~= means modularly\n congruent so a ~= b mod n means a mod n = b mod n):\n\n x ~= x1 mod n1\n x ~= x2 mod n2\n ...\n x ~= xk mod nk\n\n This system of congruences has a single simultaneous solution x\n between 0 and n - 1. Furthermore, each xk solution and x itself\n is congruent modulo the product n = n1*n2*...*nk.\n So x1 mod n = x2 mod n = xk mod n = x mod n.\n\n The single simultaneous solution x can be solved with the following\n equation:\n\n x = sum(xi*ri*si) mod n where ri = n/ni and si = ri^-1 mod ni.\n\n Where x is less than n, xi = x mod ni.\n\n For RSA we are only concerned with k = 2. The modulus n = pq, where\n p and q are coprime. The RSA decryption algorithm is:\n\n y = x^d mod n\n\n Given the above:\n\n x1 = x^d mod p\n r1 = n/p = q\n s1 = q^-1 mod p\n x2 = x^d mod q\n r2 = n/q = p\n s2 = p^-1 mod q\n\n So y = (x1r1s1 + x2r2s2) mod n\n = ((x^d mod p)q(q^-1 mod p) + (x^d mod q)p(p^-1 mod q)) mod n\n\n According to Fermat's Little Theorem, if the modulus P is prime,\n for any integer A not evenly divisible by P, A^(P-1) ~= 1 mod P.\n Since A is not divisible by P it follows that if:\n N ~= M mod (P - 1), then A^N mod P = A^M mod P. Therefore:\n\n A^N mod P = A^(M mod (P - 1)) mod P. (The latter takes less effort\n to calculate). In order to calculate x^d mod p more quickly the\n exponent d mod (p - 1) is stored in the RSA private key (the same\n is done for x^d mod q). These values are referred to as dP and dQ\n respectively. Therefore we now have:\n\n y = ((x^dP mod p)q(q^-1 mod p) + (x^dQ mod q)p(p^-1 mod q)) mod n\n\n Since we'll be reducing x^dP by modulo p (same for q) we can also\n reduce x by p (and q respectively) before hand. Therefore, let\n\n xp = ((x mod p)^dP mod p), and\n xq = ((x mod q)^dQ mod q), yielding:\n\n y = (xp*q*(q^-1 mod p) + xq*p*(p^-1 mod q)) mod n\n\n This can be further reduced to a simple algorithm that only\n requires 1 inverse (the q inverse is used) to be used and stored.\n The algorithm is called Garner's algorithm. If qInv is the\n inverse of q, we simply calculate:\n\n y = (qInv*(xp - xq) mod p) * q + xq\n\n However, there are two further complications. First, we need to\n ensure that xp > xq to prevent signed BigIntegers from being used\n so we add p until this is true (since we will be mod'ing with\n p anyway). Then, there is a known timing attack on algorithms\n using the CRT. To mitigate this risk, \"cryptographic blinding\"\n should be used. This requires simply generating a random number r\n between 0 and n-1 and its inverse and multiplying x by r^e before\n calculating y and then multiplying y by r^-1 afterwards. Note that\n r must be coprime with n (gcd(r, n) === 1) in order to have an\n inverse.\n */\n\n // cryptographic blinding\n var r;\n do {\n r = new BigInteger(\n forge.util.bytesToHex(forge.random.getBytes(key.n.bitLength() / 8)),\n 16);\n } while(r.compareTo(key.n) >= 0 || !r.gcd(key.n).equals(BigInteger.ONE));\n x = x.multiply(r.modPow(key.e, key.n)).mod(key.n);\n\n // calculate xp and xq\n var xp = x.mod(key.p).modPow(key.dP, key.p);\n var xq = x.mod(key.q).modPow(key.dQ, key.q);\n\n // xp must be larger than xq to avoid signed bit usage\n while(xp.compareTo(xq) < 0) {\n xp = xp.add(key.p);\n }\n\n // do last step\n var y = xp.subtract(xq)\n .multiply(key.qInv).mod(key.p)\n .multiply(key.q).add(xq);\n\n // remove effect of random for cryptographic blinding\n y = y.multiply(r.modInverse(key.n)).mod(key.n);\n\n return y;\n};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED, use 'sign' on a private key object or\n * 'encrypt' on a public key object instead.\n *\n * Performs RSA encryption.\n *\n * The parameter bt controls whether to put padding bytes before the\n * message passed in. Set bt to either true or false to disable padding\n * completely (in order to handle e.g. EMSA-PSS encoding seperately before),\n * signaling whether the encryption operation is a public key operation\n * (i.e. encrypting data) or not, i.e. private key operation (data signing).\n *\n * For PKCS#1 v1.5 padding pass in the block type to use, i.e. either 0x01\n * (for signing) or 0x02 (for encryption). The key operation mode (private\n * or public) is derived from this flag in that case).\n *\n * @param m the message to encrypt as a byte string.\n * @param key the RSA key to use.\n * @param bt for PKCS#1 v1.5 padding, the block type to use\n * (0x01 for private key, 0x02 for public),\n * to disable padding: true = public key, false = private key.\n *\n * @return the encrypted bytes as a string.\n */\npki.rsa.encrypt = function(m, key, bt) {\n var pub = bt;\n var eb;\n\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n if(bt !== false && bt !== true) {\n // legacy, default to PKCS#1 v1.5 padding\n pub = (bt === 0x02);\n eb = _encodePkcs1_v1_5(m, key, bt);\n } else {\n eb = forge.util.createBuffer();\n eb.putBytes(m);\n }\n\n // load encryption block as big integer 'x'\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var x = new BigInteger(eb.toHex(), 16);\n\n // do RSA encryption\n var y = _modPow(x, key, pub);\n\n // convert y into the encrypted data byte string, if y is shorter in\n // bytes than k, then prepend zero bytes to fill up ed\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var yhex = y.toString(16);\n var ed = forge.util.createBuffer();\n var zeros = k - Math.ceil(yhex.length / 2);\n while(zeros > 0) {\n ed.putByte(0x00);\n --zeros;\n }\n ed.putBytes(forge.util.hexToBytes(yhex));\n return ed.getBytes();\n};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED, use 'decrypt' on a private key object or\n * 'verify' on a public key object instead.\n *\n * Performs RSA decryption.\n *\n * The parameter ml controls whether to apply PKCS#1 v1.5 padding\n * or not. Set ml = false to disable padding removal completely\n * (in order to handle e.g. EMSA-PSS later on) and simply pass back\n * the RSA encryption block.\n *\n * @param ed the encrypted data to decrypt in as a byte string.\n * @param key the RSA key to use.\n * @param pub true for a public key operation, false for private.\n * @param ml the message length, if known, false to disable padding.\n *\n * @return the decrypted message as a byte string.\n */\npki.rsa.decrypt = function(ed, key, pub, ml) {\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n // error if the length of the encrypted data ED is not k\n if(ed.length !== k) {\n var error = new Error('Encrypted message length is invalid.');\n error.length = ed.length;\n error.expected = k;\n throw error;\n }\n\n // convert encrypted data into a big integer\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var y = new BigInteger(forge.util.createBuffer(ed).toHex(), 16);\n\n // y must be less than the modulus or it wasn't the result of\n // a previous mod operation (encryption) using that modulus\n if(y.compareTo(key.n) >= 0) {\n throw new Error('Encrypted message is invalid.');\n }\n\n // do RSA decryption\n var x = _modPow(y, key, pub);\n\n // create the encryption block, if x is shorter in bytes than k, then\n // prepend zero bytes to fill up eb\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var xhex = x.toString(16);\n var eb = forge.util.createBuffer();\n var zeros = k - Math.ceil(xhex.length / 2);\n while(zeros > 0) {\n eb.putByte(0x00);\n --zeros;\n }\n eb.putBytes(forge.util.hexToBytes(xhex));\n\n if(ml !== false) {\n // legacy, default to PKCS#1 v1.5 padding\n return _decodePkcs1_v1_5(eb.getBytes(), key, pub);\n }\n\n // return message\n return eb.getBytes();\n};\n\n/**\n * Creates an RSA key-pair generation state object. It is used to allow\n * key-generation to be performed in steps. It also allows for a UI to\n * display progress updates.\n *\n * @param bits the size for the private key in bits, defaults to 2048.\n * @param e the public exponent to use, defaults to 65537 (0x10001).\n * @param [options] the options to use.\n * prng a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n * algorithm the algorithm to use (default: 'PRIMEINC').\n *\n * @return the state object to use to generate the key-pair.\n */\npki.rsa.createKeyPairGenerationState = function(bits, e, options) {\n // TODO: migrate step-based prime generation code to forge.prime\n\n // set default bits\n if(typeof(bits) === 'string') {\n bits = parseInt(bits, 10);\n }\n bits = bits || 2048;\n\n // create prng with api that matches BigInteger secure random\n options = options || {};\n var prng = options.prng || forge.random;\n var rng = {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n var b = prng.getBytesSync(x.length);\n for(var i = 0; i < x.length; ++i) {\n x[i] = b.charCodeAt(i);\n }\n }\n };\n\n var algorithm = options.algorithm || 'PRIMEINC';\n\n // create PRIMEINC algorithm state\n var rval;\n if(algorithm === 'PRIMEINC') {\n rval = {\n algorithm: algorithm,\n state: 0,\n bits: bits,\n rng: rng,\n eInt: e || 65537,\n e: new BigInteger(null),\n p: null,\n q: null,\n qBits: bits >> 1,\n pBits: bits - (bits >> 1),\n pqState: 0,\n num: null,\n keys: null\n };\n rval.e.fromInt(rval.eInt);\n } else {\n throw new Error('Invalid key generation algorithm: ' + algorithm);\n }\n\n return rval;\n};\n\n/**\n * Attempts to runs the key-generation algorithm for at most n seconds\n * (approximately) using the given state. When key-generation has completed,\n * the keys will be stored in state.keys.\n *\n * To use this function to update a UI while generating a key or to prevent\n * causing browser lockups/warnings, set \"n\" to a value other than 0. A\n * simple pattern for generating a key and showing a progress indicator is:\n *\n * var state = pki.rsa.createKeyPairGenerationState(2048);\n * var step = function() {\n * // step key-generation, run algorithm for 100 ms, repeat\n * if(!forge.pki.rsa.stepKeyPairGenerationState(state, 100)) {\n * setTimeout(step, 1);\n * } else {\n * // key-generation complete\n * // TODO: turn off progress indicator here\n * // TODO: use the generated key-pair in \"state.keys\"\n * }\n * };\n * // TODO: turn on progress indicator here\n * setTimeout(step, 0);\n *\n * @param state the state to use.\n * @param n the maximum number of milliseconds to run the algorithm for, 0\n * to run the algorithm to completion.\n *\n * @return true if the key-generation completed, false if not.\n */\npki.rsa.stepKeyPairGenerationState = function(state, n) {\n // set default algorithm if not set\n if(!('algorithm' in state)) {\n state.algorithm = 'PRIMEINC';\n }\n\n // TODO: migrate step-based prime generation code to forge.prime\n // TODO: abstract as PRIMEINC algorithm\n\n // do key generation (based on Tom Wu's rsa.js, see jsbn.js license)\n // with some minor optimizations and designed to run in steps\n\n // local state vars\n var THIRTY = new BigInteger(null);\n THIRTY.fromInt(30);\n var deltaIdx = 0;\n var op_or = function(x, y) {return x | y;};\n\n // keep stepping until time limit is reached or done\n var t1 = +new Date();\n var t2;\n var total = 0;\n while(state.keys === null && (n <= 0 || total < n)) {\n // generate p or q\n if(state.state === 0) {\n /* Note: All primes are of the form:\n\n 30k+i, for i < 30 and gcd(30, i)=1, where there are 8 values for i\n\n When we generate a random number, we always align it at 30k + 1. Each\n time the number is determined not to be prime we add to get to the\n next 'i', eg: if the number was at 30k + 1 we add 6. */\n var bits = (state.p === null) ? state.pBits : state.qBits;\n var bits1 = bits - 1;\n\n // get a random number\n if(state.pqState === 0) {\n state.num = new BigInteger(bits, state.rng);\n // force MSB set\n if(!state.num.testBit(bits1)) {\n state.num.bitwiseTo(\n BigInteger.ONE.shiftLeft(bits1), op_or, state.num);\n }\n // align number on 30k+1 boundary\n state.num.dAddOffset(31 - state.num.mod(THIRTY).byteValue(), 0);\n deltaIdx = 0;\n\n ++state.pqState;\n } else if(state.pqState === 1) {\n // try to make the number a prime\n if(state.num.bitLength() > bits) {\n // overflow, try again\n state.pqState = 0;\n // do primality test\n } else if(state.num.isProbablePrime(\n _getMillerRabinTests(state.num.bitLength()))) {\n ++state.pqState;\n } else {\n // get next potential prime\n state.num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0);\n }\n } else if(state.pqState === 2) {\n // ensure number is coprime with e\n state.pqState =\n (state.num.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) === 0) ? 3 : 0;\n } else if(state.pqState === 3) {\n // store p or q\n state.pqState = 0;\n if(state.p === null) {\n state.p = state.num;\n } else {\n state.q = state.num;\n }\n\n // advance state if both p and q are ready\n if(state.p !== null && state.q !== null) {\n ++state.state;\n }\n state.num = null;\n }\n } else if(state.state === 1) {\n // ensure p is larger than q (swap them if not)\n if(state.p.compareTo(state.q) < 0) {\n state.num = state.p;\n state.p = state.q;\n state.q = state.num;\n }\n ++state.state;\n } else if(state.state === 2) {\n // compute phi: (p - 1)(q - 1) (Euler's totient function)\n state.p1 = state.p.subtract(BigInteger.ONE);\n state.q1 = state.q.subtract(BigInteger.ONE);\n state.phi = state.p1.multiply(state.q1);\n ++state.state;\n } else if(state.state === 3) {\n // ensure e and phi are coprime\n if(state.phi.gcd(state.e).compareTo(BigInteger.ONE) === 0) {\n // phi and e are coprime, advance\n ++state.state;\n } else {\n // phi and e aren't coprime, so generate a new p and q\n state.p = null;\n state.q = null;\n state.state = 0;\n }\n } else if(state.state === 4) {\n // create n, ensure n is has the right number of bits\n state.n = state.p.multiply(state.q);\n\n // ensure n is right number of bits\n if(state.n.bitLength() === state.bits) {\n // success, advance\n ++state.state;\n } else {\n // failed, get new q\n state.q = null;\n state.state = 0;\n }\n } else if(state.state === 5) {\n // set keys\n var d = state.e.modInverse(state.phi);\n state.keys = {\n privateKey: pki.rsa.setPrivateKey(\n state.n, state.e, d, state.p, state.q,\n d.mod(state.p1), d.mod(state.q1),\n state.q.modInverse(state.p)),\n publicKey: pki.rsa.setPublicKey(state.n, state.e)\n };\n }\n\n // update timing\n t2 = +new Date();\n total += t2 - t1;\n t1 = t2;\n }\n\n return state.keys !== null;\n};\n\n/**\n * Generates an RSA public-private key pair in a single call.\n *\n * To generate a key-pair in steps (to allow for progress updates and to\n * prevent blocking or warnings in slow browsers) then use the key-pair\n * generation state functions.\n *\n * To generate a key-pair asynchronously (either through web-workers, if\n * available, or by breaking up the work on the main thread), pass a\n * callback function.\n *\n * @param [bits] the size for the private key in bits, defaults to 2048.\n * @param [e] the public exponent to use, defaults to 65537.\n * @param [options] options for key-pair generation, if given then 'bits'\n * and 'e' must *not* be given:\n * bits the size for the private key in bits, (default: 2048).\n * e the public exponent to use, (default: 65537 (0x10001)).\n * workerScript the worker script URL.\n * workers the number of web workers (if supported) to use,\n * (default: 2).\n * workLoad the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * prng a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\". Disables use of native APIs.\n * algorithm the algorithm to use (default: 'PRIMEINC').\n * @param [callback(err, keypair)] called once the operation completes.\n *\n * @return an object with privateKey and publicKey properties.\n */\npki.rsa.generateKeyPair = function(bits, e, options, callback) {\n // (bits), (options), (callback)\n if(arguments.length === 1) {\n if(typeof bits === 'object') {\n options = bits;\n bits = undefined;\n } else if(typeof bits === 'function') {\n callback = bits;\n bits = undefined;\n }\n } else if(arguments.length === 2) {\n // (bits, e), (bits, options), (bits, callback), (options, callback)\n if(typeof bits === 'number') {\n if(typeof e === 'function') {\n callback = e;\n e = undefined;\n } else if(typeof e !== 'number') {\n options = e;\n e = undefined;\n }\n } else {\n options = bits;\n callback = e;\n bits = undefined;\n e = undefined;\n }\n } else if(arguments.length === 3) {\n // (bits, e, options), (bits, e, callback), (bits, options, callback)\n if(typeof e === 'number') {\n if(typeof options === 'function') {\n callback = options;\n options = undefined;\n }\n } else {\n callback = options;\n options = e;\n e = undefined;\n }\n }\n options = options || {};\n if(bits === undefined) {\n bits = options.bits || 2048;\n }\n if(e === undefined) {\n e = options.e || 0x10001;\n }\n\n // use native code if permitted, available, and parameters are acceptable\n if(!forge.options.usePureJavaScript && !options.prng &&\n bits >= 256 && bits <= 16384 && (e === 0x10001 || e === 3)) {\n if(callback) {\n // try native async\n if(_detectNodeCrypto('generateKeyPair')) {\n return _crypto.generateKeyPair('rsa', {\n modulusLength: bits,\n publicExponent: e,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n }, function(err, pub, priv) {\n if(err) {\n return callback(err);\n }\n callback(null, {\n privateKey: pki.privateKeyFromPem(priv),\n publicKey: pki.publicKeyFromPem(pub)\n });\n });\n }\n if(_detectSubtleCrypto('generateKey') &&\n _detectSubtleCrypto('exportKey')) {\n // use standard native generateKey\n return util.globalScope.crypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: bits,\n publicExponent: _intToUint8Array(e),\n hash: {name: 'SHA-256'}\n }, true /* key can be exported*/, ['sign', 'verify'])\n .then(function(pair) {\n return util.globalScope.crypto.subtle.exportKey(\n 'pkcs8', pair.privateKey);\n // avoiding catch(function(err) {...}) to support IE <= 8\n }).then(undefined, function(err) {\n callback(err);\n }).then(function(pkcs8) {\n if(pkcs8) {\n var privateKey = pki.privateKeyFromAsn1(\n asn1.fromDer(forge.util.createBuffer(pkcs8)));\n callback(null, {\n privateKey: privateKey,\n publicKey: pki.setRsaPublicKey(privateKey.n, privateKey.e)\n });\n }\n });\n }\n if(_detectSubtleMsCrypto('generateKey') &&\n _detectSubtleMsCrypto('exportKey')) {\n var genOp = util.globalScope.msCrypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: bits,\n publicExponent: _intToUint8Array(e),\n hash: {name: 'SHA-256'}\n }, true /* key can be exported*/, ['sign', 'verify']);\n genOp.oncomplete = function(e) {\n var pair = e.target.result;\n var exportOp = util.globalScope.msCrypto.subtle.exportKey(\n 'pkcs8', pair.privateKey);\n exportOp.oncomplete = function(e) {\n var pkcs8 = e.target.result;\n var privateKey = pki.privateKeyFromAsn1(\n asn1.fromDer(forge.util.createBuffer(pkcs8)));\n callback(null, {\n privateKey: privateKey,\n publicKey: pki.setRsaPublicKey(privateKey.n, privateKey.e)\n });\n };\n exportOp.onerror = function(err) {\n callback(err);\n };\n };\n genOp.onerror = function(err) {\n callback(err);\n };\n return;\n }\n } else {\n // try native sync\n if(_detectNodeCrypto('generateKeyPairSync')) {\n var keypair = _crypto.generateKeyPairSync('rsa', {\n modulusLength: bits,\n publicExponent: e,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n });\n return {\n privateKey: pki.privateKeyFromPem(keypair.privateKey),\n publicKey: pki.publicKeyFromPem(keypair.publicKey)\n };\n }\n }\n }\n\n // use JavaScript implementation\n var state = pki.rsa.createKeyPairGenerationState(bits, e, options);\n if(!callback) {\n pki.rsa.stepKeyPairGenerationState(state, 0);\n return state.keys;\n }\n _generateKeyPair(state, options, callback);\n};\n\n/**\n * Sets an RSA public key from BigIntegers modulus and exponent.\n *\n * @param n the modulus.\n * @param e the exponent.\n *\n * @return the public key.\n */\npki.setRsaPublicKey = pki.rsa.setPublicKey = function(n, e) {\n var key = {\n n: n,\n e: e\n };\n\n /**\n * Encrypts the given data with this public key. Newer applications\n * should use the 'RSA-OAEP' decryption scheme, 'RSAES-PKCS1-V1_5' is for\n * legacy applications.\n *\n * @param data the byte string to encrypt.\n * @param scheme the encryption scheme to use:\n * 'RSAES-PKCS1-V1_5' (default),\n * 'RSA-OAEP',\n * 'RAW', 'NONE', or null to perform raw RSA encryption,\n * an object with an 'encode' property set to a function\n * with the signature 'function(data, key)' that returns\n * a binary-encoded string representing the encoded data.\n * @param schemeOptions any scheme-specific options.\n *\n * @return the encrypted byte string.\n */\n key.encrypt = function(data, scheme, schemeOptions) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSAES-PKCS1-V1_5';\n }\n\n if(scheme === 'RSAES-PKCS1-V1_5') {\n scheme = {\n encode: function(m, key, pub) {\n return _encodePkcs1_v1_5(m, key, 0x02).getBytes();\n }\n };\n } else if(scheme === 'RSA-OAEP' || scheme === 'RSAES-OAEP') {\n scheme = {\n encode: function(m, key) {\n return forge.pkcs1.encode_rsa_oaep(key, m, schemeOptions);\n }\n };\n } else if(['RAW', 'NONE', 'NULL', null].indexOf(scheme) !== -1) {\n scheme = {encode: function(e) {return e;}};\n } else if(typeof scheme === 'string') {\n throw new Error('Unsupported encryption scheme: \"' + scheme + '\".');\n }\n\n // do scheme-based encoding then rsa encryption\n var e = scheme.encode(data, key, true);\n return pki.rsa.encrypt(e, key, true);\n };\n\n /**\n * Verifies the given signature against the given digest.\n *\n * PKCS#1 supports multiple (currently two) signature schemes:\n * RSASSA-PKCS1-V1_5 and RSASSA-PSS.\n *\n * By default this implementation uses the \"old scheme\", i.e.\n * RSASSA-PKCS1-V1_5, in which case once RSA-decrypted, the\n * signature is an OCTET STRING that holds a DigestInfo.\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n * Digest ::= OCTET STRING\n *\n * To perform PSS signature verification, provide an instance\n * of Forge PSS object as the scheme parameter.\n *\n * @param digest the message digest hash to compare against the signature,\n * as a binary-encoded string.\n * @param signature the signature to verify, as a binary-encoded string.\n * @param scheme signature verification scheme to use:\n * 'RSASSA-PKCS1-V1_5' or undefined for RSASSA PKCS#1 v1.5,\n * a Forge PSS object for RSASSA-PSS,\n * 'NONE' or null for none, DigestInfo will not be expected, but\n * PKCS#1 v1.5 padding will still be used.\n * @param options optional verify options\n * _parseAllDigestBytes testing flag to control parsing of all\n * digest bytes. Unsupported and not for general usage.\n * (default: true)\n *\n * @return true if the signature was verified, false if not.\n */\n key.verify = function(digest, signature, scheme, options) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSASSA-PKCS1-V1_5';\n }\n if(options === undefined) {\n options = {\n _parseAllDigestBytes: true\n };\n }\n if(!('_parseAllDigestBytes' in options)) {\n options._parseAllDigestBytes = true;\n }\n\n if(scheme === 'RSASSA-PKCS1-V1_5') {\n scheme = {\n verify: function(digest, d) {\n // remove padding\n d = _decodePkcs1_v1_5(d, key, true);\n // d is ASN.1 BER-encoded DigestInfo\n var obj = asn1.fromDer(d, {\n parseAllBytes: options._parseAllDigestBytes\n });\n\n // validate DigestInfo\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, digestInfoValidator, capture, errors)) {\n var error = new Error(\n 'ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 ' +\n 'DigestInfo value.');\n error.errors = errors;\n throw error;\n }\n // check hash algorithm identifier\n // see PKCS1-v1-5DigestAlgorithms in RFC 8017\n // FIXME: add support to vaidator for strict value choices\n var oid = asn1.derToOid(capture.algorithmIdentifier);\n if(!(oid === forge.oids.md2 ||\n oid === forge.oids.md5 ||\n oid === forge.oids.sha1 ||\n oid === forge.oids.sha224 ||\n oid === forge.oids.sha256 ||\n oid === forge.oids.sha384 ||\n oid === forge.oids.sha512 ||\n oid === forge.oids['sha512-224'] ||\n oid === forge.oids['sha512-256'])) {\n var error = new Error(\n 'Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.');\n error.oid = oid;\n throw error;\n }\n\n // special check for md2 and md5 that NULL parameters exist\n if(oid === forge.oids.md2 || oid === forge.oids.md5) {\n if(!('parameters' in capture)) {\n throw new Error(\n 'ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 ' +\n 'DigestInfo value. ' +\n 'Missing algorithm identifer NULL parameters.');\n }\n }\n\n // compare the given digest to the decrypted one\n return digest === capture.digest;\n }\n };\n } else if(scheme === 'NONE' || scheme === 'NULL' || scheme === null) {\n scheme = {\n verify: function(digest, d) {\n // remove padding\n d = _decodePkcs1_v1_5(d, key, true);\n return digest === d;\n }\n };\n }\n\n // do rsa decryption w/o any decoding, then verify -- which does decoding\n var d = pki.rsa.decrypt(signature, key, true, false);\n return scheme.verify(digest, d, key.n.bitLength());\n };\n\n return key;\n};\n\n/**\n * Sets an RSA private key from BigIntegers modulus, exponent, primes,\n * prime exponents, and modular multiplicative inverse.\n *\n * @param n the modulus.\n * @param e the public exponent.\n * @param d the private exponent ((inverse of e) mod n).\n * @param p the first prime.\n * @param q the second prime.\n * @param dP exponent1 (d mod (p-1)).\n * @param dQ exponent2 (d mod (q-1)).\n * @param qInv ((inverse of q) mod p)\n *\n * @return the private key.\n */\npki.setRsaPrivateKey = pki.rsa.setPrivateKey = function(\n n, e, d, p, q, dP, dQ, qInv) {\n var key = {\n n: n,\n e: e,\n d: d,\n p: p,\n q: q,\n dP: dP,\n dQ: dQ,\n qInv: qInv\n };\n\n /**\n * Decrypts the given data with this private key. The decryption scheme\n * must match the one used to encrypt the data.\n *\n * @param data the byte string to decrypt.\n * @param scheme the decryption scheme to use:\n * 'RSAES-PKCS1-V1_5' (default),\n * 'RSA-OAEP',\n * 'RAW', 'NONE', or null to perform raw RSA decryption.\n * @param schemeOptions any scheme-specific options.\n *\n * @return the decrypted byte string.\n */\n key.decrypt = function(data, scheme, schemeOptions) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSAES-PKCS1-V1_5';\n }\n\n // do rsa decryption w/o any decoding\n var d = pki.rsa.decrypt(data, key, false, false);\n\n if(scheme === 'RSAES-PKCS1-V1_5') {\n scheme = {decode: _decodePkcs1_v1_5};\n } else if(scheme === 'RSA-OAEP' || scheme === 'RSAES-OAEP') {\n scheme = {\n decode: function(d, key) {\n return forge.pkcs1.decode_rsa_oaep(key, d, schemeOptions);\n }\n };\n } else if(['RAW', 'NONE', 'NULL', null].indexOf(scheme) !== -1) {\n scheme = {decode: function(d) {return d;}};\n } else {\n throw new Error('Unsupported encryption scheme: \"' + scheme + '\".');\n }\n\n // decode according to scheme\n return scheme.decode(d, key, false);\n };\n\n /**\n * Signs the given digest, producing a signature.\n *\n * PKCS#1 supports multiple (currently two) signature schemes:\n * RSASSA-PKCS1-V1_5 and RSASSA-PSS.\n *\n * By default this implementation uses the \"old scheme\", i.e.\n * RSASSA-PKCS1-V1_5. In order to generate a PSS signature, provide\n * an instance of Forge PSS object as the scheme parameter.\n *\n * @param md the message digest object with the hash to sign.\n * @param scheme the signature scheme to use:\n * 'RSASSA-PKCS1-V1_5' or undefined for RSASSA PKCS#1 v1.5,\n * a Forge PSS object for RSASSA-PSS,\n * 'NONE' or null for none, DigestInfo will not be used but\n * PKCS#1 v1.5 padding will still be used.\n *\n * @return the signature as a byte string.\n */\n key.sign = function(md, scheme) {\n /* Note: The internal implementation of RSA operations is being\n transitioned away from a PKCS#1 v1.5 hard-coded scheme. Some legacy\n code like the use of an encoding block identifier 'bt' will eventually\n be removed. */\n\n // private key operation\n var bt = false;\n\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n }\n\n if(scheme === undefined || scheme === 'RSASSA-PKCS1-V1_5') {\n scheme = {encode: emsaPkcs1v15encode};\n bt = 0x01;\n } else if(scheme === 'NONE' || scheme === 'NULL' || scheme === null) {\n scheme = {encode: function() {return md;}};\n bt = 0x01;\n }\n\n // encode and then encrypt\n var d = scheme.encode(md, key.n.bitLength());\n return pki.rsa.encrypt(d, key, bt);\n };\n\n return key;\n};\n\n/**\n * Wraps an RSAPrivateKey ASN.1 object in an ASN.1 PrivateKeyInfo object.\n *\n * @param rsaKey the ASN.1 RSAPrivateKey.\n *\n * @return the ASN.1 PrivateKeyInfo.\n */\npki.wrapRsaPrivateKey = function(rsaKey) {\n // PrivateKeyInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (0)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(0).getBytes()),\n // privateKeyAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.rsaEncryption).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // PrivateKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(rsaKey).getBytes())\n ]);\n};\n\n/**\n * Converts a private key from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a PrivateKeyInfo containing an\n * RSAPrivateKey or an RSAPrivateKey.\n *\n * @return the private key.\n */\npki.privateKeyFromAsn1 = function(obj) {\n // get PrivateKeyInfo\n var capture = {};\n var errors = [];\n if(asn1.validate(obj, privateKeyValidator, capture, errors)) {\n obj = asn1.fromDer(forge.util.createBuffer(capture.privateKey));\n }\n\n // get RSAPrivateKey\n capture = {};\n errors = [];\n if(!asn1.validate(obj, rsaPrivateKeyValidator, capture, errors)) {\n var error = new Error('Cannot read private key. ' +\n 'ASN.1 object does not contain an RSAPrivateKey.');\n error.errors = errors;\n throw error;\n }\n\n // Note: Version is currently ignored.\n // capture.privateKeyVersion\n // FIXME: inefficient, get a BigInteger that uses byte strings\n var n, e, d, p, q, dP, dQ, qInv;\n n = forge.util.createBuffer(capture.privateKeyModulus).toHex();\n e = forge.util.createBuffer(capture.privateKeyPublicExponent).toHex();\n d = forge.util.createBuffer(capture.privateKeyPrivateExponent).toHex();\n p = forge.util.createBuffer(capture.privateKeyPrime1).toHex();\n q = forge.util.createBuffer(capture.privateKeyPrime2).toHex();\n dP = forge.util.createBuffer(capture.privateKeyExponent1).toHex();\n dQ = forge.util.createBuffer(capture.privateKeyExponent2).toHex();\n qInv = forge.util.createBuffer(capture.privateKeyCoefficient).toHex();\n\n // set private key\n return pki.setRsaPrivateKey(\n new BigInteger(n, 16),\n new BigInteger(e, 16),\n new BigInteger(d, 16),\n new BigInteger(p, 16),\n new BigInteger(q, 16),\n new BigInteger(dP, 16),\n new BigInteger(dQ, 16),\n new BigInteger(qInv, 16));\n};\n\n/**\n * Converts a private key to an ASN.1 RSAPrivateKey.\n *\n * @param key the private key.\n *\n * @return the ASN.1 representation of an RSAPrivateKey.\n */\npki.privateKeyToAsn1 = pki.privateKeyToRSAPrivateKey = function(key) {\n // RSAPrivateKey\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (0 = only 2 primes, 1 multiple primes)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(0).getBytes()),\n // modulus (n)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.n)),\n // publicExponent (e)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.e)),\n // privateExponent (d)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.d)),\n // privateKeyPrime1 (p)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.p)),\n // privateKeyPrime2 (q)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.q)),\n // privateKeyExponent1 (dP)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.dP)),\n // privateKeyExponent2 (dQ)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.dQ)),\n // coefficient (qInv)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.qInv))\n ]);\n};\n\n/**\n * Converts a public key from an ASN.1 SubjectPublicKeyInfo or RSAPublicKey.\n *\n * @param obj the asn1 representation of a SubjectPublicKeyInfo or RSAPublicKey.\n *\n * @return the public key.\n */\npki.publicKeyFromAsn1 = function(obj) {\n // get SubjectPublicKeyInfo\n var capture = {};\n var errors = [];\n if(asn1.validate(obj, publicKeyValidator, capture, errors)) {\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n var error = new Error('Cannot read public key. Unknown OID.');\n error.oid = oid;\n throw error;\n }\n obj = capture.rsaPublicKey;\n }\n\n // get RSA params\n errors = [];\n if(!asn1.validate(obj, rsaPublicKeyValidator, capture, errors)) {\n var error = new Error('Cannot read public key. ' +\n 'ASN.1 object does not contain an RSAPublicKey.');\n error.errors = errors;\n throw error;\n }\n\n // FIXME: inefficient, get a BigInteger that uses byte strings\n var n = forge.util.createBuffer(capture.publicKeyModulus).toHex();\n var e = forge.util.createBuffer(capture.publicKeyExponent).toHex();\n\n // set public key\n return pki.setRsaPublicKey(\n new BigInteger(n, 16),\n new BigInteger(e, 16));\n};\n\n/**\n * Converts a public key to an ASN.1 SubjectPublicKeyInfo.\n *\n * @param key the public key.\n *\n * @return the asn1 representation of a SubjectPublicKeyInfo.\n */\npki.publicKeyToAsn1 = pki.publicKeyToSubjectPublicKeyInfo = function(key) {\n // SubjectPublicKeyInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.rsaEncryption).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // subjectPublicKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, [\n pki.publicKeyToRSAPublicKey(key)\n ])\n ]);\n};\n\n/**\n * Converts a public key to an ASN.1 RSAPublicKey.\n *\n * @param key the public key.\n *\n * @return the asn1 representation of a RSAPublicKey.\n */\npki.publicKeyToRSAPublicKey = function(key) {\n // RSAPublicKey\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // modulus (n)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.n)),\n // publicExponent (e)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.e))\n ]);\n};\n\n/**\n * Encodes a message using PKCS#1 v1.5 padding.\n *\n * @param m the message to encode.\n * @param key the RSA key to use.\n * @param bt the block type to use, i.e. either 0x01 (for signing) or 0x02\n * (for encryption).\n *\n * @return the padded byte buffer.\n */\nfunction _encodePkcs1_v1_5(m, key, bt) {\n var eb = forge.util.createBuffer();\n\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n /* use PKCS#1 v1.5 padding */\n if(m.length > (k - 11)) {\n var error = new Error('Message is too long for PKCS#1 v1.5 padding.');\n error.length = m.length;\n error.max = k - 11;\n throw error;\n }\n\n /* A block type BT, a padding string PS, and the data D shall be\n formatted into an octet string EB, the encryption block:\n\n EB = 00 || BT || PS || 00 || D\n\n The block type BT shall be a single octet indicating the structure of\n the encryption block. For this version of the document it shall have\n value 00, 01, or 02. For a private-key operation, the block type\n shall be 00 or 01. For a public-key operation, it shall be 02.\n\n The padding string PS shall consist of k-3-||D|| octets. For block\n type 00, the octets shall have value 00; for block type 01, they\n shall have value FF; and for block type 02, they shall be\n pseudorandomly generated and nonzero. This makes the length of the\n encryption block EB equal to k. */\n\n // build the encryption block\n eb.putByte(0x00);\n eb.putByte(bt);\n\n // create the padding\n var padNum = k - 3 - m.length;\n var padByte;\n // private key op\n if(bt === 0x00 || bt === 0x01) {\n padByte = (bt === 0x00) ? 0x00 : 0xFF;\n for(var i = 0; i < padNum; ++i) {\n eb.putByte(padByte);\n }\n } else {\n // public key op\n // pad with random non-zero values\n while(padNum > 0) {\n var numZeros = 0;\n var padBytes = forge.random.getBytes(padNum);\n for(var i = 0; i < padNum; ++i) {\n padByte = padBytes.charCodeAt(i);\n if(padByte === 0) {\n ++numZeros;\n } else {\n eb.putByte(padByte);\n }\n }\n padNum = numZeros;\n }\n }\n\n // zero followed by message\n eb.putByte(0x00);\n eb.putBytes(m);\n\n return eb;\n}\n\n/**\n * Decodes a message using PKCS#1 v1.5 padding.\n *\n * @param em the message to decode.\n * @param key the RSA key to use.\n * @param pub true if the key is a public key, false if it is private.\n * @param ml the message length, if specified.\n *\n * @return the decoded bytes.\n */\nfunction _decodePkcs1_v1_5(em, key, pub, ml) {\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n /* It is an error if any of the following conditions occurs:\n\n 1. The encryption block EB cannot be parsed unambiguously.\n 2. The padding string PS consists of fewer than eight octets\n or is inconsisent with the block type BT.\n 3. The decryption process is a public-key operation and the block\n type BT is not 00 or 01, or the decryption process is a\n private-key operation and the block type is not 02.\n */\n\n // parse the encryption block\n var eb = forge.util.createBuffer(em);\n var first = eb.getByte();\n var bt = eb.getByte();\n if(first !== 0x00 ||\n (pub && bt !== 0x00 && bt !== 0x01) ||\n (!pub && bt != 0x02) ||\n (pub && bt === 0x00 && typeof(ml) === 'undefined')) {\n throw new Error('Encryption block is invalid.');\n }\n\n var padNum = 0;\n if(bt === 0x00) {\n // check all padding bytes for 0x00\n padNum = k - 3 - ml;\n for(var i = 0; i < padNum; ++i) {\n if(eb.getByte() !== 0x00) {\n throw new Error('Encryption block is invalid.');\n }\n }\n } else if(bt === 0x01) {\n // find the first byte that isn't 0xFF, should be after all padding\n padNum = 0;\n while(eb.length() > 1) {\n if(eb.getByte() !== 0xFF) {\n --eb.read;\n break;\n }\n ++padNum;\n }\n } else if(bt === 0x02) {\n // look for 0x00 byte\n padNum = 0;\n while(eb.length() > 1) {\n if(eb.getByte() === 0x00) {\n --eb.read;\n break;\n }\n ++padNum;\n }\n }\n\n // zero must be 0x00 and padNum must be (k - 3 - message length)\n var zero = eb.getByte();\n if(zero !== 0x00 || padNum !== (k - 3 - eb.length())) {\n throw new Error('Encryption block is invalid.');\n }\n\n return eb.getBytes();\n}\n\n/**\n * Runs the key-generation algorithm asynchronously, either in the background\n * via Web Workers, or using the main thread and setImmediate.\n *\n * @param state the key-pair generation state.\n * @param [options] options for key-pair generation:\n * workerScript the worker script URL.\n * workers the number of web workers (if supported) to use,\n * (default: 2, -1 to use estimated cores minus one).\n * workLoad the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * @param callback(err, keypair) called once the operation completes.\n */\nfunction _generateKeyPair(state, options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n\n var opts = {\n algorithm: {\n name: options.algorithm || 'PRIMEINC',\n options: {\n workers: options.workers || 2,\n workLoad: options.workLoad || 100,\n workerScript: options.workerScript\n }\n }\n };\n if('prng' in options) {\n opts.prng = options.prng;\n }\n\n generate();\n\n function generate() {\n // find p and then q (done in series to simplify)\n getPrime(state.pBits, function(err, num) {\n if(err) {\n return callback(err);\n }\n state.p = num;\n if(state.q !== null) {\n return finish(err, state.q);\n }\n getPrime(state.qBits, finish);\n });\n }\n\n function getPrime(bits, callback) {\n forge.prime.generateProbablePrime(bits, opts, callback);\n }\n\n function finish(err, num) {\n if(err) {\n return callback(err);\n }\n\n // set q\n state.q = num;\n\n // ensure p is larger than q (swap them if not)\n if(state.p.compareTo(state.q) < 0) {\n var tmp = state.p;\n state.p = state.q;\n state.q = tmp;\n }\n\n // ensure p is coprime with e\n if(state.p.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) !== 0) {\n state.p = null;\n generate();\n return;\n }\n\n // ensure q is coprime with e\n if(state.q.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) !== 0) {\n state.q = null;\n getPrime(state.qBits, finish);\n return;\n }\n\n // compute phi: (p - 1)(q - 1) (Euler's totient function)\n state.p1 = state.p.subtract(BigInteger.ONE);\n state.q1 = state.q.subtract(BigInteger.ONE);\n state.phi = state.p1.multiply(state.q1);\n\n // ensure e and phi are coprime\n if(state.phi.gcd(state.e).compareTo(BigInteger.ONE) !== 0) {\n // phi and e aren't coprime, so generate a new p and q\n state.p = state.q = null;\n generate();\n return;\n }\n\n // create n, ensure n is has the right number of bits\n state.n = state.p.multiply(state.q);\n if(state.n.bitLength() !== state.bits) {\n // failed, get new q\n state.q = null;\n getPrime(state.qBits, finish);\n return;\n }\n\n // set keys\n var d = state.e.modInverse(state.phi);\n state.keys = {\n privateKey: pki.rsa.setPrivateKey(\n state.n, state.e, d, state.p, state.q,\n d.mod(state.p1), d.mod(state.q1),\n state.q.modInverse(state.p)),\n publicKey: pki.rsa.setPublicKey(state.n, state.e)\n };\n\n callback(null, state.keys);\n }\n}\n\n/**\n * Converts a positive BigInteger into 2's-complement big-endian bytes.\n *\n * @param b the big integer to convert.\n *\n * @return the bytes.\n */\nfunction _bnToBytes(b) {\n // prepend 0x00 if first byte >= 0x80\n var hex = b.toString(16);\n if(hex[0] >= '8') {\n hex = '00' + hex;\n }\n var bytes = forge.util.hexToBytes(hex);\n\n // ensure integer is minimally-encoded\n if(bytes.length > 1 &&\n // leading 0x00 for positive integer\n ((bytes.charCodeAt(0) === 0 &&\n (bytes.charCodeAt(1) & 0x80) === 0) ||\n // leading 0xFF for negative integer\n (bytes.charCodeAt(0) === 0xFF &&\n (bytes.charCodeAt(1) & 0x80) === 0x80))) {\n return bytes.substr(1);\n }\n return bytes;\n}\n\n/**\n * Returns the required number of Miller-Rabin tests to generate a\n * prime with an error probability of (1/2)^80.\n *\n * See Handbook of Applied Cryptography Chapter 4, Table 4.4.\n *\n * @param bits the bit size.\n *\n * @return the required number of iterations.\n */\nfunction _getMillerRabinTests(bits) {\n if(bits <= 100) return 27;\n if(bits <= 150) return 18;\n if(bits <= 200) return 15;\n if(bits <= 250) return 12;\n if(bits <= 300) return 9;\n if(bits <= 350) return 8;\n if(bits <= 400) return 7;\n if(bits <= 500) return 6;\n if(bits <= 600) return 5;\n if(bits <= 800) return 4;\n if(bits <= 1250) return 3;\n return 2;\n}\n\n/**\n * Performs feature detection on the Node crypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectNodeCrypto(fn) {\n return forge.util.isNodejs && typeof _crypto[fn] === 'function';\n}\n\n/**\n * Performs feature detection on the SubtleCrypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectSubtleCrypto(fn) {\n return (typeof util.globalScope !== 'undefined' &&\n typeof util.globalScope.crypto === 'object' &&\n typeof util.globalScope.crypto.subtle === 'object' &&\n typeof util.globalScope.crypto.subtle[fn] === 'function');\n}\n\n/**\n * Performs feature detection on the deprecated Microsoft Internet Explorer\n * outdated SubtleCrypto interface. This function should only be used after\n * checking for the modern, standard SubtleCrypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectSubtleMsCrypto(fn) {\n return (typeof util.globalScope !== 'undefined' &&\n typeof util.globalScope.msCrypto === 'object' &&\n typeof util.globalScope.msCrypto.subtle === 'object' &&\n typeof util.globalScope.msCrypto.subtle[fn] === 'function');\n}\n\nfunction _intToUint8Array(x) {\n var bytes = forge.util.hexToBytes(x.toString(16));\n var buffer = new Uint8Array(bytes.length);\n for(var i = 0; i < bytes.length; ++i) {\n buffer[i] = bytes.charCodeAt(i);\n }\n return buffer;\n}\n\nfunction _privateKeyFromJwk(jwk) {\n if(jwk.kty !== 'RSA') {\n throw new Error(\n 'Unsupported key algorithm \"' + jwk.kty + '\"; algorithm must be \"RSA\".');\n }\n return pki.setRsaPrivateKey(\n _base64ToBigInt(jwk.n),\n _base64ToBigInt(jwk.e),\n _base64ToBigInt(jwk.d),\n _base64ToBigInt(jwk.p),\n _base64ToBigInt(jwk.q),\n _base64ToBigInt(jwk.dp),\n _base64ToBigInt(jwk.dq),\n _base64ToBigInt(jwk.qi));\n}\n\nfunction _publicKeyFromJwk(jwk) {\n if(jwk.kty !== 'RSA') {\n throw new Error('Key algorithm must be \"RSA\".');\n }\n return pki.setRsaPublicKey(\n _base64ToBigInt(jwk.n),\n _base64ToBigInt(jwk.e));\n}\n\nfunction _base64ToBigInt(b64) {\n return new BigInteger(forge.util.bytesToHex(forge.util.decode64(b64)), 16);\n}\n","/**\n * Secure Hash Algorithm with 160-bit digest (SHA-1) implementation.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha1 = module.exports = forge.sha1 = forge.sha1 || {};\nforge.md.sha1 = forge.md.algorithms.sha1 = sha1;\n\n/**\n * Creates a SHA-1 message digest object.\n *\n * @return a message digest object.\n */\nsha1.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // SHA-1 state contains five 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(80);\n\n // message digest object\n var md = {\n algorithm: 'sha1',\n blockLength: 64,\n digestLength: 20,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x67452301,\n h1: 0xEFCDAB89,\n h2: 0x98BADCFE,\n h3: 0x10325476,\n h4: 0xC3D2E1F0\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-1 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3,\n h4: _state.h4\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32(s2.h0);\n rval.putInt32(s2.h1);\n rval.putInt32(s2.h2);\n rval.putInt32(s2.h3);\n rval.putInt32(s2.h4);\n return rval;\n };\n\n return md;\n};\n\n// sha-1 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-1 state with the given byte buffer.\n *\n * @param s the SHA-1 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t, a, b, c, d, e, f, i;\n var len = bytes.length();\n while(len >= 64) {\n // the w array will be populated with sixteen 32-bit big-endian words\n // and then extended into 80 32-bit words according to SHA-1 algorithm\n // and for 32-79 using Max Locktyukhin's optimization\n\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n e = s.h4;\n\n // round 1\n for(i = 0; i < 16; ++i) {\n t = bytes.getInt32();\n w[i] = t;\n f = d ^ (b & (c ^ d));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x5A827999 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n for(; i < 20; ++i) {\n t = (w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n t = (t << 1) | (t >>> 31);\n w[i] = t;\n f = d ^ (b & (c ^ d));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x5A827999 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 2\n for(; i < 32; ++i) {\n t = (w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n t = (t << 1) | (t >>> 31);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0x6ED9EBA1 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n for(; i < 40; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0x6ED9EBA1 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 3\n for(; i < 60; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = (b & c) | (d & (b ^ c));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x8F1BBCDC + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 4\n for(; i < 80; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0xCA62C1D6 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n s.h4 = (s.h4 + e) | 0;\n\n len -= 64;\n }\n}\n","/**\n * Secure Hash Algorithm with 256-bit digest (SHA-256) implementation.\n *\n * See FIPS 180-2 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha256 = module.exports = forge.sha256 = forge.sha256 || {};\nforge.md.sha256 = forge.md.algorithms.sha256 = sha256;\n\n/**\n * Creates a SHA-256 message digest object.\n *\n * @return a message digest object.\n */\nsha256.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // SHA-256 state contains eight 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(64);\n\n // message digest object\n var md = {\n algorithm: 'sha256',\n blockLength: 64,\n digestLength: 32,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x6A09E667,\n h1: 0xBB67AE85,\n h2: 0x3C6EF372,\n h3: 0xA54FF53A,\n h4: 0x510E527F,\n h5: 0x9B05688C,\n h6: 0x1F83D9AB,\n h7: 0x5BE0CD19\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-256 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3,\n h4: _state.h4,\n h5: _state.h5,\n h6: _state.h6,\n h7: _state.h7\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32(s2.h0);\n rval.putInt32(s2.h1);\n rval.putInt32(s2.h2);\n rval.putInt32(s2.h3);\n rval.putInt32(s2.h4);\n rval.putInt32(s2.h5);\n rval.putInt32(s2.h6);\n rval.putInt32(s2.h7);\n return rval;\n };\n\n return md;\n};\n\n// sha-256 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n// table of constants\nvar _k = null;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // create K table for SHA-256\n _k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-256 state with the given byte buffer.\n *\n * @param s the SHA-256 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t1, t2, s0, s1, ch, maj, i, a, b, c, d, e, f, g, h;\n var len = bytes.length();\n while(len >= 64) {\n // the w array will be populated with sixteen 32-bit big-endian words\n // and then extended into 64 32-bit words according to SHA-256\n for(i = 0; i < 16; ++i) {\n w[i] = bytes.getInt32();\n }\n for(; i < 64; ++i) {\n // XOR word 2 words ago rot right 17, rot right 19, shft right 10\n t1 = w[i - 2];\n t1 =\n ((t1 >>> 17) | (t1 << 15)) ^\n ((t1 >>> 19) | (t1 << 13)) ^\n (t1 >>> 10);\n // XOR word 15 words ago rot right 7, rot right 18, shft right 3\n t2 = w[i - 15];\n t2 =\n ((t2 >>> 7) | (t2 << 25)) ^\n ((t2 >>> 18) | (t2 << 14)) ^\n (t2 >>> 3);\n // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^32\n w[i] = (t1 + w[i - 7] + t2 + w[i - 16]) | 0;\n }\n\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n e = s.h4;\n f = s.h5;\n g = s.h6;\n h = s.h7;\n\n // round function\n for(i = 0; i < 64; ++i) {\n // Sum1(e)\n s1 =\n ((e >>> 6) | (e << 26)) ^\n ((e >>> 11) | (e << 21)) ^\n ((e >>> 25) | (e << 7));\n // Ch(e, f, g) (optimized the same way as SHA-1)\n ch = g ^ (e & (f ^ g));\n // Sum0(a)\n s0 =\n ((a >>> 2) | (a << 30)) ^\n ((a >>> 13) | (a << 19)) ^\n ((a >>> 22) | (a << 10));\n // Maj(a, b, c) (optimized the same way as SHA-1)\n maj = (a & b) | (c & (a ^ b));\n\n // main algorithm\n t1 = h + s1 + ch + _k[i] + w[i];\n t2 = s0 + maj;\n h = g;\n g = f;\n f = e;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n // can't truncate with `| 0`\n e = (d + t1) >>> 0;\n d = c;\n c = b;\n b = a;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n // can't truncate with `| 0`\n a = (t1 + t2) >>> 0;\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n s.h4 = (s.h4 + e) | 0;\n s.h5 = (s.h5 + f) | 0;\n s.h6 = (s.h6 + g) | 0;\n s.h7 = (s.h7 + h) | 0;\n len -= 64;\n }\n}\n","/**\n * Secure Hash Algorithm with a 1024-bit block size implementation.\n *\n * This includes: SHA-512, SHA-384, SHA-512/224, and SHA-512/256. For\n * SHA-256 (block size 512 bits), see sha256.js.\n *\n * See FIPS 180-4 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2014-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha512 = module.exports = forge.sha512 = forge.sha512 || {};\n\n// SHA-512\nforge.md.sha512 = forge.md.algorithms.sha512 = sha512;\n\n// SHA-384\nvar sha384 = forge.sha384 = forge.sha512.sha384 = forge.sha512.sha384 || {};\nsha384.create = function() {\n return sha512.create('SHA-384');\n};\nforge.md.sha384 = forge.md.algorithms.sha384 = sha384;\n\n// SHA-512/256\nforge.sha512.sha256 = forge.sha512.sha256 || {\n create: function() {\n return sha512.create('SHA-512/256');\n }\n};\nforge.md['sha512/256'] = forge.md.algorithms['sha512/256'] =\n forge.sha512.sha256;\n\n// SHA-512/224\nforge.sha512.sha224 = forge.sha512.sha224 || {\n create: function() {\n return sha512.create('SHA-512/224');\n }\n};\nforge.md['sha512/224'] = forge.md.algorithms['sha512/224'] =\n forge.sha512.sha224;\n\n/**\n * Creates a SHA-2 message digest object.\n *\n * @param algorithm the algorithm to use (SHA-512, SHA-384, SHA-512/224,\n * SHA-512/256).\n *\n * @return a message digest object.\n */\nsha512.create = function(algorithm) {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n if(typeof algorithm === 'undefined') {\n algorithm = 'SHA-512';\n }\n\n if(!(algorithm in _states)) {\n throw new Error('Invalid SHA-512 algorithm: ' + algorithm);\n }\n\n // SHA-512 state contains eight 64-bit integers (each as two 32-bit ints)\n var _state = _states[algorithm];\n var _h = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for 64-bit word storage\n var _w = new Array(80);\n for(var wi = 0; wi < 80; ++wi) {\n _w[wi] = new Array(2);\n }\n\n // determine digest length by algorithm name (default)\n var digestLength = 64;\n switch(algorithm) {\n case 'SHA-384':\n digestLength = 48;\n break;\n case 'SHA-512/256':\n digestLength = 32;\n break;\n case 'SHA-512/224':\n digestLength = 28;\n break;\n }\n\n // message digest object\n var md = {\n // SHA-512 => sha512\n algorithm: algorithm.replace('-', '').toLowerCase(),\n blockLength: 128,\n digestLength: digestLength,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 16\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength128 for backwards-compatibility)\n md.fullMessageLength = md.messageLength128 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _h = new Array(_state.length);\n for(var i = 0; i < _state.length; ++i) {\n _h[i] = _state[i].slice(0);\n }\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_h, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-512 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 896 mod 1024. In other words,\n the data to be digested must be a multiple of 1024 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 16 bytes (128\n bits), that means that the last segment of the data must have 112 bytes\n (896 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 896 mod 1024 because\n 1024 - 128 = 896.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 896 mod 1024, then 1024 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var h = new Array(_h.length);\n for(var i = 0; i < _h.length; ++i) {\n h[i] = _h[i].slice(0);\n }\n _update(h, _w, finalBlock);\n var rval = forge.util.createBuffer();\n var hlen;\n if(algorithm === 'SHA-512') {\n hlen = h.length;\n } else if(algorithm === 'SHA-384') {\n hlen = h.length - 2;\n } else {\n hlen = h.length - 4;\n }\n for(var i = 0; i < hlen; ++i) {\n rval.putInt32(h[i][0]);\n if(i !== hlen - 1 || algorithm !== 'SHA-512/224') {\n rval.putInt32(h[i][1]);\n }\n }\n return rval;\n };\n\n return md;\n};\n\n// sha-512 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n// table of constants\nvar _k = null;\n\n// initial hash states\nvar _states = null;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 128);\n\n // create K table for SHA-512\n _k = [\n [0x428a2f98, 0xd728ae22], [0x71374491, 0x23ef65cd],\n [0xb5c0fbcf, 0xec4d3b2f], [0xe9b5dba5, 0x8189dbbc],\n [0x3956c25b, 0xf348b538], [0x59f111f1, 0xb605d019],\n [0x923f82a4, 0xaf194f9b], [0xab1c5ed5, 0xda6d8118],\n [0xd807aa98, 0xa3030242], [0x12835b01, 0x45706fbe],\n [0x243185be, 0x4ee4b28c], [0x550c7dc3, 0xd5ffb4e2],\n [0x72be5d74, 0xf27b896f], [0x80deb1fe, 0x3b1696b1],\n [0x9bdc06a7, 0x25c71235], [0xc19bf174, 0xcf692694],\n [0xe49b69c1, 0x9ef14ad2], [0xefbe4786, 0x384f25e3],\n [0x0fc19dc6, 0x8b8cd5b5], [0x240ca1cc, 0x77ac9c65],\n [0x2de92c6f, 0x592b0275], [0x4a7484aa, 0x6ea6e483],\n [0x5cb0a9dc, 0xbd41fbd4], [0x76f988da, 0x831153b5],\n [0x983e5152, 0xee66dfab], [0xa831c66d, 0x2db43210],\n [0xb00327c8, 0x98fb213f], [0xbf597fc7, 0xbeef0ee4],\n [0xc6e00bf3, 0x3da88fc2], [0xd5a79147, 0x930aa725],\n [0x06ca6351, 0xe003826f], [0x14292967, 0x0a0e6e70],\n [0x27b70a85, 0x46d22ffc], [0x2e1b2138, 0x5c26c926],\n [0x4d2c6dfc, 0x5ac42aed], [0x53380d13, 0x9d95b3df],\n [0x650a7354, 0x8baf63de], [0x766a0abb, 0x3c77b2a8],\n [0x81c2c92e, 0x47edaee6], [0x92722c85, 0x1482353b],\n [0xa2bfe8a1, 0x4cf10364], [0xa81a664b, 0xbc423001],\n [0xc24b8b70, 0xd0f89791], [0xc76c51a3, 0x0654be30],\n [0xd192e819, 0xd6ef5218], [0xd6990624, 0x5565a910],\n [0xf40e3585, 0x5771202a], [0x106aa070, 0x32bbd1b8],\n [0x19a4c116, 0xb8d2d0c8], [0x1e376c08, 0x5141ab53],\n [0x2748774c, 0xdf8eeb99], [0x34b0bcb5, 0xe19b48a8],\n [0x391c0cb3, 0xc5c95a63], [0x4ed8aa4a, 0xe3418acb],\n [0x5b9cca4f, 0x7763e373], [0x682e6ff3, 0xd6b2b8a3],\n [0x748f82ee, 0x5defb2fc], [0x78a5636f, 0x43172f60],\n [0x84c87814, 0xa1f0ab72], [0x8cc70208, 0x1a6439ec],\n [0x90befffa, 0x23631e28], [0xa4506ceb, 0xde82bde9],\n [0xbef9a3f7, 0xb2c67915], [0xc67178f2, 0xe372532b],\n [0xca273ece, 0xea26619c], [0xd186b8c7, 0x21c0c207],\n [0xeada7dd6, 0xcde0eb1e], [0xf57d4f7f, 0xee6ed178],\n [0x06f067aa, 0x72176fba], [0x0a637dc5, 0xa2c898a6],\n [0x113f9804, 0xbef90dae], [0x1b710b35, 0x131c471b],\n [0x28db77f5, 0x23047d84], [0x32caab7b, 0x40c72493],\n [0x3c9ebe0a, 0x15c9bebc], [0x431d67c4, 0x9c100d4c],\n [0x4cc5d4be, 0xcb3e42b6], [0x597f299c, 0xfc657e2a],\n [0x5fcb6fab, 0x3ad6faec], [0x6c44198c, 0x4a475817]\n ];\n\n // initial hash states\n _states = {};\n _states['SHA-512'] = [\n [0x6a09e667, 0xf3bcc908],\n [0xbb67ae85, 0x84caa73b],\n [0x3c6ef372, 0xfe94f82b],\n [0xa54ff53a, 0x5f1d36f1],\n [0x510e527f, 0xade682d1],\n [0x9b05688c, 0x2b3e6c1f],\n [0x1f83d9ab, 0xfb41bd6b],\n [0x5be0cd19, 0x137e2179]\n ];\n _states['SHA-384'] = [\n [0xcbbb9d5d, 0xc1059ed8],\n [0x629a292a, 0x367cd507],\n [0x9159015a, 0x3070dd17],\n [0x152fecd8, 0xf70e5939],\n [0x67332667, 0xffc00b31],\n [0x8eb44a87, 0x68581511],\n [0xdb0c2e0d, 0x64f98fa7],\n [0x47b5481d, 0xbefa4fa4]\n ];\n _states['SHA-512/256'] = [\n [0x22312194, 0xFC2BF72C],\n [0x9F555FA3, 0xC84C64C2],\n [0x2393B86B, 0x6F53B151],\n [0x96387719, 0x5940EABD],\n [0x96283EE2, 0xA88EFFE3],\n [0xBE5E1E25, 0x53863992],\n [0x2B0199FC, 0x2C85B8AA],\n [0x0EB72DDC, 0x81C52CA2]\n ];\n _states['SHA-512/224'] = [\n [0x8C3D37C8, 0x19544DA2],\n [0x73E19966, 0x89DCD4D6],\n [0x1DFAB7AE, 0x32FF9C82],\n [0x679DD514, 0x582F9FCF],\n [0x0F6D2B69, 0x7BD44DA8],\n [0x77E36F73, 0x04C48942],\n [0x3F9D85A8, 0x6A1D36C8],\n [0x1112E6AD, 0x91D692A1]\n ];\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-512 state with the given byte buffer.\n *\n * @param s the SHA-512 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (128 byte) chunks\n var t1_hi, t1_lo;\n var t2_hi, t2_lo;\n var s0_hi, s0_lo;\n var s1_hi, s1_lo;\n var ch_hi, ch_lo;\n var maj_hi, maj_lo;\n var a_hi, a_lo;\n var b_hi, b_lo;\n var c_hi, c_lo;\n var d_hi, d_lo;\n var e_hi, e_lo;\n var f_hi, f_lo;\n var g_hi, g_lo;\n var h_hi, h_lo;\n var i, hi, lo, w2, w7, w15, w16;\n var len = bytes.length();\n while(len >= 128) {\n // the w array will be populated with sixteen 64-bit big-endian words\n // and then extended into 64 64-bit words according to SHA-512\n for(i = 0; i < 16; ++i) {\n w[i][0] = bytes.getInt32() >>> 0;\n w[i][1] = bytes.getInt32() >>> 0;\n }\n for(; i < 80; ++i) {\n // for word 2 words ago: ROTR 19(x) ^ ROTR 61(x) ^ SHR 6(x)\n w2 = w[i - 2];\n hi = w2[0];\n lo = w2[1];\n\n // high bits\n t1_hi = (\n ((hi >>> 19) | (lo << 13)) ^ // ROTR 19\n ((lo >>> 29) | (hi << 3)) ^ // ROTR 61/(swap + ROTR 29)\n (hi >>> 6)) >>> 0; // SHR 6\n // low bits\n t1_lo = (\n ((hi << 13) | (lo >>> 19)) ^ // ROTR 19\n ((lo << 3) | (hi >>> 29)) ^ // ROTR 61/(swap + ROTR 29)\n ((hi << 26) | (lo >>> 6))) >>> 0; // SHR 6\n\n // for word 15 words ago: ROTR 1(x) ^ ROTR 8(x) ^ SHR 7(x)\n w15 = w[i - 15];\n hi = w15[0];\n lo = w15[1];\n\n // high bits\n t2_hi = (\n ((hi >>> 1) | (lo << 31)) ^ // ROTR 1\n ((hi >>> 8) | (lo << 24)) ^ // ROTR 8\n (hi >>> 7)) >>> 0; // SHR 7\n // low bits\n t2_lo = (\n ((hi << 31) | (lo >>> 1)) ^ // ROTR 1\n ((hi << 24) | (lo >>> 8)) ^ // ROTR 8\n ((hi << 25) | (lo >>> 7))) >>> 0; // SHR 7\n\n // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^64 (carry lo overflow)\n w7 = w[i - 7];\n w16 = w[i - 16];\n lo = (t1_lo + w7[1] + t2_lo + w16[1]);\n w[i][0] = (t1_hi + w7[0] + t2_hi + w16[0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n w[i][1] = lo >>> 0;\n }\n\n // initialize hash value for this chunk\n a_hi = s[0][0];\n a_lo = s[0][1];\n b_hi = s[1][0];\n b_lo = s[1][1];\n c_hi = s[2][0];\n c_lo = s[2][1];\n d_hi = s[3][0];\n d_lo = s[3][1];\n e_hi = s[4][0];\n e_lo = s[4][1];\n f_hi = s[5][0];\n f_lo = s[5][1];\n g_hi = s[6][0];\n g_lo = s[6][1];\n h_hi = s[7][0];\n h_lo = s[7][1];\n\n // round function\n for(i = 0; i < 80; ++i) {\n // Sum1(e) = ROTR 14(e) ^ ROTR 18(e) ^ ROTR 41(e)\n s1_hi = (\n ((e_hi >>> 14) | (e_lo << 18)) ^ // ROTR 14\n ((e_hi >>> 18) | (e_lo << 14)) ^ // ROTR 18\n ((e_lo >>> 9) | (e_hi << 23))) >>> 0; // ROTR 41/(swap + ROTR 9)\n s1_lo = (\n ((e_hi << 18) | (e_lo >>> 14)) ^ // ROTR 14\n ((e_hi << 14) | (e_lo >>> 18)) ^ // ROTR 18\n ((e_lo << 23) | (e_hi >>> 9))) >>> 0; // ROTR 41/(swap + ROTR 9)\n\n // Ch(e, f, g) (optimized the same way as SHA-1)\n ch_hi = (g_hi ^ (e_hi & (f_hi ^ g_hi))) >>> 0;\n ch_lo = (g_lo ^ (e_lo & (f_lo ^ g_lo))) >>> 0;\n\n // Sum0(a) = ROTR 28(a) ^ ROTR 34(a) ^ ROTR 39(a)\n s0_hi = (\n ((a_hi >>> 28) | (a_lo << 4)) ^ // ROTR 28\n ((a_lo >>> 2) | (a_hi << 30)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo >>> 7) | (a_hi << 25))) >>> 0; // ROTR 39/(swap + ROTR 7)\n s0_lo = (\n ((a_hi << 4) | (a_lo >>> 28)) ^ // ROTR 28\n ((a_lo << 30) | (a_hi >>> 2)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo << 25) | (a_hi >>> 7))) >>> 0; // ROTR 39/(swap + ROTR 7)\n\n // Maj(a, b, c) (optimized the same way as SHA-1)\n maj_hi = ((a_hi & b_hi) | (c_hi & (a_hi ^ b_hi))) >>> 0;\n maj_lo = ((a_lo & b_lo) | (c_lo & (a_lo ^ b_lo))) >>> 0;\n\n // main algorithm\n // t1 = (h + s1 + ch + _k[i] + _w[i]) modulo 2^64 (carry lo overflow)\n lo = (h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1]);\n t1_hi = (h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n t1_lo = lo >>> 0;\n\n // t2 = s0 + maj modulo 2^64 (carry lo overflow)\n lo = s0_lo + maj_lo;\n t2_hi = (s0_hi + maj_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n t2_lo = lo >>> 0;\n\n h_hi = g_hi;\n h_lo = g_lo;\n\n g_hi = f_hi;\n g_lo = f_lo;\n\n f_hi = e_hi;\n f_lo = e_lo;\n\n // e = (d + t1) modulo 2^64 (carry lo overflow)\n lo = d_lo + t1_lo;\n e_hi = (d_hi + t1_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n e_lo = lo >>> 0;\n\n d_hi = c_hi;\n d_lo = c_lo;\n\n c_hi = b_hi;\n c_lo = b_lo;\n\n b_hi = a_hi;\n b_lo = a_lo;\n\n // a = (t1 + t2) modulo 2^64 (carry lo overflow)\n lo = t1_lo + t2_lo;\n a_hi = (t1_hi + t2_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n a_lo = lo >>> 0;\n }\n\n // update hash state (additional modulo 2^64)\n lo = s[0][1] + a_lo;\n s[0][0] = (s[0][0] + a_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[0][1] = lo >>> 0;\n\n lo = s[1][1] + b_lo;\n s[1][0] = (s[1][0] + b_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[1][1] = lo >>> 0;\n\n lo = s[2][1] + c_lo;\n s[2][0] = (s[2][0] + c_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[2][1] = lo >>> 0;\n\n lo = s[3][1] + d_lo;\n s[3][0] = (s[3][0] + d_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[3][1] = lo >>> 0;\n\n lo = s[4][1] + e_lo;\n s[4][0] = (s[4][0] + e_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[4][1] = lo >>> 0;\n\n lo = s[5][1] + f_lo;\n s[5][0] = (s[5][0] + f_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[5][1] = lo >>> 0;\n\n lo = s[6][1] + g_lo;\n s[6][0] = (s[6][0] + g_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[6][1] = lo >>> 0;\n\n lo = s[7][1] + h_lo;\n s[7][0] = (s[7][0] + h_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[7][1] = lo >>> 0;\n\n len -= 128;\n }\n}\n","/**\n * Functions to output keys in SSH-friendly formats.\n *\n * This is part of the Forge project which may be used under the terms of\n * either the BSD License or the GNU General Public License (GPL) Version 2.\n *\n * See: https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE\n *\n * @author https://github.com/shellac\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./hmac');\nrequire('./md5');\nrequire('./sha1');\nrequire('./util');\n\nvar ssh = module.exports = forge.ssh = forge.ssh || {};\n\n/**\n * Encodes (and optionally encrypts) a private RSA key as a Putty PPK file.\n *\n * @param privateKey the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n * @param comment a comment to include in the key file.\n *\n * @return the PPK file as a string.\n */\nssh.privateKeyToPutty = function(privateKey, passphrase, comment) {\n comment = comment || '';\n passphrase = passphrase || '';\n var algorithm = 'ssh-rsa';\n var encryptionAlgorithm = (passphrase === '') ? 'none' : 'aes256-cbc';\n\n var ppk = 'PuTTY-User-Key-File-2: ' + algorithm + '\\r\\n';\n ppk += 'Encryption: ' + encryptionAlgorithm + '\\r\\n';\n ppk += 'Comment: ' + comment + '\\r\\n';\n\n // public key into buffer for ppk\n var pubbuffer = forge.util.createBuffer();\n _addStringToBuffer(pubbuffer, algorithm);\n _addBigIntegerToBuffer(pubbuffer, privateKey.e);\n _addBigIntegerToBuffer(pubbuffer, privateKey.n);\n\n // write public key\n var pub = forge.util.encode64(pubbuffer.bytes(), 64);\n var length = Math.floor(pub.length / 66) + 1; // 66 = 64 + \\r\\n\n ppk += 'Public-Lines: ' + length + '\\r\\n';\n ppk += pub;\n\n // private key into a buffer\n var privbuffer = forge.util.createBuffer();\n _addBigIntegerToBuffer(privbuffer, privateKey.d);\n _addBigIntegerToBuffer(privbuffer, privateKey.p);\n _addBigIntegerToBuffer(privbuffer, privateKey.q);\n _addBigIntegerToBuffer(privbuffer, privateKey.qInv);\n\n // optionally encrypt the private key\n var priv;\n if(!passphrase) {\n // use the unencrypted buffer\n priv = forge.util.encode64(privbuffer.bytes(), 64);\n } else {\n // encrypt RSA key using passphrase\n var encLen = privbuffer.length() + 16 - 1;\n encLen -= encLen % 16;\n\n // pad private key with sha1-d data -- needs to be a multiple of 16\n var padding = _sha1(privbuffer.bytes());\n\n padding.truncate(padding.length() - encLen + privbuffer.length());\n privbuffer.putBuffer(padding);\n\n var aeskey = forge.util.createBuffer();\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x00', passphrase));\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x01', passphrase));\n\n // encrypt some bytes using CBC mode\n // key is 40 bytes, so truncate *by* 8 bytes\n var cipher = forge.aes.createEncryptionCipher(aeskey.truncate(8), 'CBC');\n cipher.start(forge.util.createBuffer().fillWithByte(0, 16));\n cipher.update(privbuffer.copy());\n cipher.finish();\n var encrypted = cipher.output;\n\n // Note: this appears to differ from Putty -- is forge wrong, or putty?\n // due to padding we finish as an exact multiple of 16\n encrypted.truncate(16); // all padding\n\n priv = forge.util.encode64(encrypted.bytes(), 64);\n }\n\n // output private key\n length = Math.floor(priv.length / 66) + 1; // 64 + \\r\\n\n ppk += '\\r\\nPrivate-Lines: ' + length + '\\r\\n';\n ppk += priv;\n\n // MAC\n var mackey = _sha1('putty-private-key-file-mac-key', passphrase);\n\n var macbuffer = forge.util.createBuffer();\n _addStringToBuffer(macbuffer, algorithm);\n _addStringToBuffer(macbuffer, encryptionAlgorithm);\n _addStringToBuffer(macbuffer, comment);\n macbuffer.putInt32(pubbuffer.length());\n macbuffer.putBuffer(pubbuffer);\n macbuffer.putInt32(privbuffer.length());\n macbuffer.putBuffer(privbuffer);\n\n var hmac = forge.hmac.create();\n hmac.start('sha1', mackey);\n hmac.update(macbuffer.bytes());\n\n ppk += '\\r\\nPrivate-MAC: ' + hmac.digest().toHex() + '\\r\\n';\n\n return ppk;\n};\n\n/**\n * Encodes a public RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param comment a comment.\n *\n * @return the public key in OpenSSH format.\n */\nssh.publicKeyToOpenSSH = function(key, comment) {\n var type = 'ssh-rsa';\n comment = comment || '';\n\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n return type + ' ' + forge.util.encode64(buffer.bytes()) + ' ' + comment;\n};\n\n/**\n * Encodes a private RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n *\n * @return the public key in OpenSSH format.\n */\nssh.privateKeyToOpenSSH = function(privateKey, passphrase) {\n if(!passphrase) {\n return forge.pki.privateKeyToPem(privateKey);\n }\n // OpenSSH private key is just a legacy format, it seems\n return forge.pki.encryptRsaPrivateKey(privateKey, passphrase,\n {legacy: true, algorithm: 'aes128'});\n};\n\n/**\n * Gets the SSH fingerprint for the given public key.\n *\n * @param options the options to use.\n * [md] the message digest object to use (defaults to forge.md.md5).\n * [encoding] an alternative output encoding, such as 'hex'\n * (defaults to none, outputs a byte buffer).\n * [delimiter] the delimiter to use between bytes for 'hex' encoded\n * output, eg: ':' (defaults to none).\n *\n * @return the fingerprint as a byte buffer or other encoding based on options.\n */\nssh.getPublicKeyFingerprint = function(key, options) {\n options = options || {};\n var md = options.md || forge.md.md5.create();\n\n var type = 'ssh-rsa';\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n // hash public key bytes\n md.start();\n md.update(buffer.getBytes());\n var digest = md.digest();\n if(options.encoding === 'hex') {\n var hex = digest.toHex();\n if(options.delimiter) {\n return hex.match(/.{2}/g).join(options.delimiter);\n }\n return hex;\n } else if(options.encoding === 'binary') {\n return digest.getBytes();\n } else if(options.encoding) {\n throw new Error('Unknown encoding \"' + options.encoding + '\".');\n }\n return digest;\n};\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a big integer.\n */\nfunction _addBigIntegerToBuffer(buffer, val) {\n var hexVal = val.toString(16);\n // ensure 2s complement +ve\n if(hexVal[0] >= '8') {\n hexVal = '00' + hexVal;\n }\n var bytes = forge.util.hexToBytes(hexVal);\n buffer.putInt32(bytes.length);\n buffer.putBytes(bytes);\n}\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a string.\n */\nfunction _addStringToBuffer(buffer, val) {\n buffer.putInt32(val.length);\n buffer.putString(val);\n}\n\n/**\n * Hashes the arguments into one value using SHA-1.\n *\n * @return the sha1 hash of the provided arguments.\n */\nfunction _sha1() {\n var sha = forge.md.sha1.create();\n var num = arguments.length;\n for (var i = 0; i < num; ++i) {\n sha.update(arguments[i]);\n }\n return sha.digest();\n}\n","/**\n * A Javascript implementation of Transport Layer Security (TLS).\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2014 Digital Bazaar, Inc.\n *\n * The TLS Handshake Protocol involves the following steps:\n *\n * - Exchange hello messages to agree on algorithms, exchange random values,\n * and check for session resumption.\n *\n * - Exchange the necessary cryptographic parameters to allow the client and\n * server to agree on a premaster secret.\n *\n * - Exchange certificates and cryptographic information to allow the client\n * and server to authenticate themselves.\n *\n * - Generate a master secret from the premaster secret and exchanged random\n * values.\n *\n * - Provide security parameters to the record layer.\n *\n * - Allow the client and server to verify that their peer has calculated the\n * same security parameters and that the handshake occurred without tampering\n * by an attacker.\n *\n * Up to 4 different messages may be sent during a key exchange. The server\n * certificate, the server key exchange, the client certificate, and the\n * client key exchange.\n *\n * A typical handshake (from the client's perspective).\n *\n * 1. Client sends ClientHello.\n * 2. Client receives ServerHello.\n * 3. Client receives optional Certificate.\n * 4. Client receives optional ServerKeyExchange.\n * 5. Client receives ServerHelloDone.\n * 6. Client sends optional Certificate.\n * 7. Client sends ClientKeyExchange.\n * 8. Client sends optional CertificateVerify.\n * 9. Client sends ChangeCipherSpec.\n * 10. Client sends Finished.\n * 11. Client receives ChangeCipherSpec.\n * 12. Client receives Finished.\n * 13. Client sends/receives application data.\n *\n * To reuse an existing session:\n *\n * 1. Client sends ClientHello with session ID for reuse.\n * 2. Client receives ServerHello with same session ID if reusing.\n * 3. Client receives ChangeCipherSpec message if reusing.\n * 4. Client receives Finished.\n * 5. Client sends ChangeCipherSpec.\n * 6. Client sends Finished.\n *\n * Note: Client ignores HelloRequest if in the middle of a handshake.\n *\n * Record Layer:\n *\n * The record layer fragments information blocks into TLSPlaintext records\n * carrying data in chunks of 2^14 bytes or less. Client message boundaries are\n * not preserved in the record layer (i.e., multiple client messages of the\n * same ContentType MAY be coalesced into a single TLSPlaintext record, or a\n * single message MAY be fragmented across several records).\n *\n * struct {\n * uint8 major;\n * uint8 minor;\n * } ProtocolVersion;\n *\n * struct {\n * ContentType type;\n * ProtocolVersion version;\n * uint16 length;\n * opaque fragment[TLSPlaintext.length];\n * } TLSPlaintext;\n *\n * type:\n * The higher-level protocol used to process the enclosed fragment.\n *\n * version:\n * The version of the protocol being employed. TLS Version 1.2 uses version\n * {3, 3}. TLS Version 1.0 uses version {3, 1}. Note that a client that\n * supports multiple versions of TLS may not know what version will be\n * employed before it receives the ServerHello.\n *\n * length:\n * The length (in bytes) of the following TLSPlaintext.fragment. The length\n * MUST NOT exceed 2^14 = 16384 bytes.\n *\n * fragment:\n * The application data. This data is transparent and treated as an\n * independent block to be dealt with by the higher-level protocol specified\n * by the type field.\n *\n * Implementations MUST NOT send zero-length fragments of Handshake, Alert, or\n * ChangeCipherSpec content types. Zero-length fragments of Application data\n * MAY be sent as they are potentially useful as a traffic analysis\n * countermeasure.\n *\n * Note: Data of different TLS record layer content types MAY be interleaved.\n * Application data is generally of lower precedence for transmission than\n * other content types. However, records MUST be delivered to the network in\n * the same order as they are protected by the record layer. Recipients MUST\n * receive and process interleaved application layer traffic during handshakes\n * subsequent to the first one on a connection.\n *\n * struct {\n * ContentType type; // same as TLSPlaintext.type\n * ProtocolVersion version;// same as TLSPlaintext.version\n * uint16 length;\n * opaque fragment[TLSCompressed.length];\n * } TLSCompressed;\n *\n * length:\n * The length (in bytes) of the following TLSCompressed.fragment.\n * The length MUST NOT exceed 2^14 + 1024.\n *\n * fragment:\n * The compressed form of TLSPlaintext.fragment.\n *\n * Note: A CompressionMethod.null operation is an identity operation; no fields\n * are altered. In this implementation, since no compression is supported,\n * uncompressed records are always the same as compressed records.\n *\n * Encryption Information:\n *\n * The encryption and MAC functions translate a TLSCompressed structure into a\n * TLSCiphertext. The decryption functions reverse the process. The MAC of the\n * record also includes a sequence number so that missing, extra, or repeated\n * messages are detectable.\n *\n * struct {\n * ContentType type;\n * ProtocolVersion version;\n * uint16 length;\n * select (SecurityParameters.cipher_type) {\n * case stream: GenericStreamCipher;\n * case block: GenericBlockCipher;\n * case aead: GenericAEADCipher;\n * } fragment;\n * } TLSCiphertext;\n *\n * type:\n * The type field is identical to TLSCompressed.type.\n *\n * version:\n * The version field is identical to TLSCompressed.version.\n *\n * length:\n * The length (in bytes) of the following TLSCiphertext.fragment.\n * The length MUST NOT exceed 2^14 + 2048.\n *\n * fragment:\n * The encrypted form of TLSCompressed.fragment, with the MAC.\n *\n * Note: Only CBC Block Ciphers are supported by this implementation.\n *\n * The TLSCompressed.fragment structures are converted to/from block\n * TLSCiphertext.fragment structures.\n *\n * struct {\n * opaque IV[SecurityParameters.record_iv_length];\n * block-ciphered struct {\n * opaque content[TLSCompressed.length];\n * opaque MAC[SecurityParameters.mac_length];\n * uint8 padding[GenericBlockCipher.padding_length];\n * uint8 padding_length;\n * };\n * } GenericBlockCipher;\n *\n * The MAC is generated as described in Section 6.2.3.1.\n *\n * IV:\n * The Initialization Vector (IV) SHOULD be chosen at random, and MUST be\n * unpredictable. Note that in versions of TLS prior to 1.1, there was no\n * IV field, and the last ciphertext block of the previous record (the \"CBC\n * residue\") was used as the IV. This was changed to prevent the attacks\n * described in [CBCATT]. For block ciphers, the IV length is of length\n * SecurityParameters.record_iv_length, which is equal to the\n * SecurityParameters.block_size.\n *\n * padding:\n * Padding that is added to force the length of the plaintext to be an\n * integral multiple of the block cipher's block length. The padding MAY be\n * any length up to 255 bytes, as long as it results in the\n * TLSCiphertext.length being an integral multiple of the block length.\n * Lengths longer than necessary might be desirable to frustrate attacks on\n * a protocol that are based on analysis of the lengths of exchanged\n * messages. Each uint8 in the padding data vector MUST be filled with the\n * padding length value. The receiver MUST check this padding and MUST use\n * the bad_record_mac alert to indicate padding errors.\n *\n * padding_length:\n * The padding length MUST be such that the total size of the\n * GenericBlockCipher structure is a multiple of the cipher's block length.\n * Legal values range from zero to 255, inclusive. This length specifies the\n * length of the padding field exclusive of the padding_length field itself.\n *\n * The encrypted data length (TLSCiphertext.length) is one more than the sum of\n * SecurityParameters.block_length, TLSCompressed.length,\n * SecurityParameters.mac_length, and padding_length.\n *\n * Example: If the block length is 8 bytes, the content length\n * (TLSCompressed.length) is 61 bytes, and the MAC length is 20 bytes, then the\n * length before padding is 82 bytes (this does not include the IV. Thus, the\n * padding length modulo 8 must be equal to 6 in order to make the total length\n * an even multiple of 8 bytes (the block length). The padding length can be\n * 6, 14, 22, and so on, through 254. If the padding length were the minimum\n * necessary, 6, the padding would be 6 bytes, each containing the value 6.\n * Thus, the last 8 octets of the GenericBlockCipher before block encryption\n * would be xx 06 06 06 06 06 06 06, where xx is the last octet of the MAC.\n *\n * Note: With block ciphers in CBC mode (Cipher Block Chaining), it is critical\n * that the entire plaintext of the record be known before any ciphertext is\n * transmitted. Otherwise, it is possible for the attacker to mount the attack\n * described in [CBCATT].\n *\n * Implementation note: Canvel et al. [CBCTIME] have demonstrated a timing\n * attack on CBC padding based on the time required to compute the MAC. In\n * order to defend against this attack, implementations MUST ensure that\n * record processing time is essentially the same whether or not the padding\n * is correct. In general, the best way to do this is to compute the MAC even\n * if the padding is incorrect, and only then reject the packet. For instance,\n * if the pad appears to be incorrect, the implementation might assume a\n * zero-length pad and then compute the MAC. This leaves a small timing\n * channel, since MAC performance depends, to some extent, on the size of the\n * data fragment, but it is not believed to be large enough to be exploitable,\n * due to the large block size of existing MACs and the small size of the\n * timing signal.\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./hmac');\nrequire('./md5');\nrequire('./pem');\nrequire('./pki');\nrequire('./random');\nrequire('./sha1');\nrequire('./util');\n\n/**\n * Generates pseudo random bytes by mixing the result of two hash functions,\n * MD5 and SHA-1.\n *\n * prf_TLS1(secret, label, seed) =\n * P_MD5(S1, label + seed) XOR P_SHA-1(S2, label + seed);\n *\n * Each P_hash function functions as follows:\n *\n * P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) +\n * HMAC_hash(secret, A(2) + seed) +\n * HMAC_hash(secret, A(3) + seed) + ...\n * A() is defined as:\n * A(0) = seed\n * A(i) = HMAC_hash(secret, A(i-1))\n *\n * The '+' operator denotes concatenation.\n *\n * As many iterations A(N) as are needed are performed to generate enough\n * pseudo random byte output. If an iteration creates more data than is\n * necessary, then it is truncated.\n *\n * Therefore:\n * A(1) = HMAC_hash(secret, A(0))\n * = HMAC_hash(secret, seed)\n * A(2) = HMAC_hash(secret, A(1))\n * = HMAC_hash(secret, HMAC_hash(secret, seed))\n *\n * Therefore:\n * P_hash(secret, seed) =\n * HMAC_hash(secret, HMAC_hash(secret, A(0)) + seed) +\n * HMAC_hash(secret, HMAC_hash(secret, A(1)) + seed) +\n * ...\n *\n * Therefore:\n * P_hash(secret, seed) =\n * HMAC_hash(secret, HMAC_hash(secret, seed) + seed) +\n * HMAC_hash(secret, HMAC_hash(secret, HMAC_hash(secret, seed)) + seed) +\n * ...\n *\n * @param secret the secret to use.\n * @param label the label to use.\n * @param seed the seed value to use.\n * @param length the number of bytes to generate.\n *\n * @return the pseudo random bytes in a byte buffer.\n */\nvar prf_TLS1 = function(secret, label, seed, length) {\n var rval = forge.util.createBuffer();\n\n /* For TLS 1.0, the secret is split in half, into two secrets of equal\n length. If the secret has an odd length then the last byte of the first\n half will be the same as the first byte of the second. The length of the\n two secrets is half of the secret rounded up. */\n var idx = (secret.length >> 1);\n var slen = idx + (secret.length & 1);\n var s1 = secret.substr(0, slen);\n var s2 = secret.substr(idx, slen);\n var ai = forge.util.createBuffer();\n var hmac = forge.hmac.create();\n seed = label + seed;\n\n // determine the number of iterations that must be performed to generate\n // enough output bytes, md5 creates 16 byte hashes, sha1 creates 20\n var md5itr = Math.ceil(length / 16);\n var sha1itr = Math.ceil(length / 20);\n\n // do md5 iterations\n hmac.start('MD5', s1);\n var md5bytes = forge.util.createBuffer();\n ai.putBytes(seed);\n for(var i = 0; i < md5itr; ++i) {\n // HMAC_hash(secret, A(i-1))\n hmac.start(null, null);\n hmac.update(ai.getBytes());\n ai.putBuffer(hmac.digest());\n\n // HMAC_hash(secret, A(i) + seed)\n hmac.start(null, null);\n hmac.update(ai.bytes() + seed);\n md5bytes.putBuffer(hmac.digest());\n }\n\n // do sha1 iterations\n hmac.start('SHA1', s2);\n var sha1bytes = forge.util.createBuffer();\n ai.clear();\n ai.putBytes(seed);\n for(var i = 0; i < sha1itr; ++i) {\n // HMAC_hash(secret, A(i-1))\n hmac.start(null, null);\n hmac.update(ai.getBytes());\n ai.putBuffer(hmac.digest());\n\n // HMAC_hash(secret, A(i) + seed)\n hmac.start(null, null);\n hmac.update(ai.bytes() + seed);\n sha1bytes.putBuffer(hmac.digest());\n }\n\n // XOR the md5 bytes with the sha1 bytes\n rval.putBytes(forge.util.xorBytes(\n md5bytes.getBytes(), sha1bytes.getBytes(), length));\n\n return rval;\n};\n\n/**\n * Generates pseudo random bytes using a SHA256 algorithm. For TLS 1.2.\n *\n * @param secret the secret to use.\n * @param label the label to use.\n * @param seed the seed value to use.\n * @param length the number of bytes to generate.\n *\n * @return the pseudo random bytes in a byte buffer.\n */\nvar prf_sha256 = function(secret, label, seed, length) {\n // FIXME: implement me for TLS 1.2\n};\n\n/**\n * Gets a MAC for a record using the SHA-1 hash algorithm.\n *\n * @param key the mac key.\n * @param state the sequence number (array of two 32-bit integers).\n * @param record the record.\n *\n * @return the sha-1 hash (20 bytes) for the given record.\n */\nvar hmac_sha1 = function(key, seqNum, record) {\n /* MAC is computed like so:\n HMAC_hash(\n key, seqNum +\n TLSCompressed.type +\n TLSCompressed.version +\n TLSCompressed.length +\n TLSCompressed.fragment)\n */\n var hmac = forge.hmac.create();\n hmac.start('SHA1', key);\n var b = forge.util.createBuffer();\n b.putInt32(seqNum[0]);\n b.putInt32(seqNum[1]);\n b.putByte(record.type);\n b.putByte(record.version.major);\n b.putByte(record.version.minor);\n b.putInt16(record.length);\n b.putBytes(record.fragment.bytes());\n hmac.update(b.getBytes());\n return hmac.digest().getBytes();\n};\n\n/**\n * Compresses the TLSPlaintext record into a TLSCompressed record using the\n * deflate algorithm.\n *\n * @param c the TLS connection.\n * @param record the TLSPlaintext record to compress.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nvar deflate = function(c, record, s) {\n var rval = false;\n\n try {\n var bytes = c.deflate(record.fragment.getBytes());\n record.fragment = forge.util.createBuffer(bytes);\n record.length = bytes.length;\n rval = true;\n } catch(ex) {\n // deflate error, fail out\n }\n\n return rval;\n};\n\n/**\n * Decompresses the TLSCompressed record into a TLSPlaintext record using the\n * deflate algorithm.\n *\n * @param c the TLS connection.\n * @param record the TLSCompressed record to decompress.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nvar inflate = function(c, record, s) {\n var rval = false;\n\n try {\n var bytes = c.inflate(record.fragment.getBytes());\n record.fragment = forge.util.createBuffer(bytes);\n record.length = bytes.length;\n rval = true;\n } catch(ex) {\n // inflate error, fail out\n }\n\n return rval;\n};\n\n/**\n * Reads a TLS variable-length vector from a byte buffer.\n *\n * Variable-length vectors are defined by specifying a subrange of legal\n * lengths, inclusively, using the notation . When these are\n * encoded, the actual length precedes the vector's contents in the byte\n * stream. The length will be in the form of a number consuming as many bytes\n * as required to hold the vector's specified maximum (ceiling) length. A\n * variable-length vector with an actual length field of zero is referred to\n * as an empty vector.\n *\n * @param b the byte buffer.\n * @param lenBytes the number of bytes required to store the length.\n *\n * @return the resulting byte buffer.\n */\nvar readVector = function(b, lenBytes) {\n var len = 0;\n switch(lenBytes) {\n case 1:\n len = b.getByte();\n break;\n case 2:\n len = b.getInt16();\n break;\n case 3:\n len = b.getInt24();\n break;\n case 4:\n len = b.getInt32();\n break;\n }\n\n // read vector bytes into a new buffer\n return forge.util.createBuffer(b.getBytes(len));\n};\n\n/**\n * Writes a TLS variable-length vector to a byte buffer.\n *\n * @param b the byte buffer.\n * @param lenBytes the number of bytes required to store the length.\n * @param v the byte buffer vector.\n */\nvar writeVector = function(b, lenBytes, v) {\n // encode length at the start of the vector, where the number of bytes for\n // the length is the maximum number of bytes it would take to encode the\n // vector's ceiling\n b.putInt(v.length(), lenBytes << 3);\n b.putBuffer(v);\n};\n\n/**\n * The tls implementation.\n */\nvar tls = {};\n\n/**\n * Version: TLS 1.2 = 3.3, TLS 1.1 = 3.2, TLS 1.0 = 3.1. Both TLS 1.1 and\n * TLS 1.2 were still too new (ie: openSSL didn't implement them) at the time\n * of this implementation so TLS 1.0 was implemented instead.\n */\ntls.Versions = {\n TLS_1_0: {major: 3, minor: 1},\n TLS_1_1: {major: 3, minor: 2},\n TLS_1_2: {major: 3, minor: 3}\n};\ntls.SupportedVersions = [\n tls.Versions.TLS_1_1,\n tls.Versions.TLS_1_0\n];\ntls.Version = tls.SupportedVersions[0];\n\n/**\n * Maximum fragment size. True maximum is 16384, but we fragment before that\n * to allow for unusual small increases during compression.\n */\ntls.MaxFragment = 16384 - 1024;\n\n/**\n * Whether this entity is considered the \"client\" or \"server\".\n * enum { server, client } ConnectionEnd;\n */\ntls.ConnectionEnd = {\n server: 0,\n client: 1\n};\n\n/**\n * Pseudo-random function algorithm used to generate keys from the master\n * secret.\n * enum { tls_prf_sha256 } PRFAlgorithm;\n */\ntls.PRFAlgorithm = {\n tls_prf_sha256: 0\n};\n\n/**\n * Bulk encryption algorithms.\n * enum { null, rc4, des3, aes } BulkCipherAlgorithm;\n */\ntls.BulkCipherAlgorithm = {\n none: null,\n rc4: 0,\n des3: 1,\n aes: 2\n};\n\n/**\n * Cipher types.\n * enum { stream, block, aead } CipherType;\n */\ntls.CipherType = {\n stream: 0,\n block: 1,\n aead: 2\n};\n\n/**\n * MAC (Message Authentication Code) algorithms.\n * enum { null, hmac_md5, hmac_sha1, hmac_sha256,\n * hmac_sha384, hmac_sha512} MACAlgorithm;\n */\ntls.MACAlgorithm = {\n none: null,\n hmac_md5: 0,\n hmac_sha1: 1,\n hmac_sha256: 2,\n hmac_sha384: 3,\n hmac_sha512: 4\n};\n\n/**\n * Compression algorithms.\n * enum { null(0), deflate(1), (255) } CompressionMethod;\n */\ntls.CompressionMethod = {\n none: 0,\n deflate: 1\n};\n\n/**\n * TLS record content types.\n * enum {\n * change_cipher_spec(20), alert(21), handshake(22),\n * application_data(23), (255)\n * } ContentType;\n */\ntls.ContentType = {\n change_cipher_spec: 20,\n alert: 21,\n handshake: 22,\n application_data: 23,\n heartbeat: 24\n};\n\n/**\n * TLS handshake types.\n * enum {\n * hello_request(0), client_hello(1), server_hello(2),\n * certificate(11), server_key_exchange (12),\n * certificate_request(13), server_hello_done(14),\n * certificate_verify(15), client_key_exchange(16),\n * finished(20), (255)\n * } HandshakeType;\n */\ntls.HandshakeType = {\n hello_request: 0,\n client_hello: 1,\n server_hello: 2,\n certificate: 11,\n server_key_exchange: 12,\n certificate_request: 13,\n server_hello_done: 14,\n certificate_verify: 15,\n client_key_exchange: 16,\n finished: 20\n};\n\n/**\n * TLS Alert Protocol.\n *\n * enum { warning(1), fatal(2), (255) } AlertLevel;\n *\n * enum {\n * close_notify(0),\n * unexpected_message(10),\n * bad_record_mac(20),\n * decryption_failed(21),\n * record_overflow(22),\n * decompression_failure(30),\n * handshake_failure(40),\n * bad_certificate(42),\n * unsupported_certificate(43),\n * certificate_revoked(44),\n * certificate_expired(45),\n * certificate_unknown(46),\n * illegal_parameter(47),\n * unknown_ca(48),\n * access_denied(49),\n * decode_error(50),\n * decrypt_error(51),\n * export_restriction(60),\n * protocol_version(70),\n * insufficient_security(71),\n * internal_error(80),\n * user_canceled(90),\n * no_renegotiation(100),\n * (255)\n * } AlertDescription;\n *\n * struct {\n * AlertLevel level;\n * AlertDescription description;\n * } Alert;\n */\ntls.Alert = {};\ntls.Alert.Level = {\n warning: 1,\n fatal: 2\n};\ntls.Alert.Description = {\n close_notify: 0,\n unexpected_message: 10,\n bad_record_mac: 20,\n decryption_failed: 21,\n record_overflow: 22,\n decompression_failure: 30,\n handshake_failure: 40,\n bad_certificate: 42,\n unsupported_certificate: 43,\n certificate_revoked: 44,\n certificate_expired: 45,\n certificate_unknown: 46,\n illegal_parameter: 47,\n unknown_ca: 48,\n access_denied: 49,\n decode_error: 50,\n decrypt_error: 51,\n export_restriction: 60,\n protocol_version: 70,\n insufficient_security: 71,\n internal_error: 80,\n user_canceled: 90,\n no_renegotiation: 100\n};\n\n/**\n * TLS Heartbeat Message types.\n * enum {\n * heartbeat_request(1),\n * heartbeat_response(2),\n * (255)\n * } HeartbeatMessageType;\n */\ntls.HeartbeatMessageType = {\n heartbeat_request: 1,\n heartbeat_response: 2\n};\n\n/**\n * Supported cipher suites.\n */\ntls.CipherSuites = {};\n\n/**\n * Gets a supported cipher suite from its 2 byte ID.\n *\n * @param twoBytes two bytes in a string.\n *\n * @return the matching supported cipher suite or null.\n */\ntls.getCipherSuite = function(twoBytes) {\n var rval = null;\n for(var key in tls.CipherSuites) {\n var cs = tls.CipherSuites[key];\n if(cs.id[0] === twoBytes.charCodeAt(0) &&\n cs.id[1] === twoBytes.charCodeAt(1)) {\n rval = cs;\n break;\n }\n }\n return rval;\n};\n\n/**\n * Called when an unexpected record is encountered.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleUnexpected = function(c, record) {\n // if connection is client and closed, ignore unexpected messages\n var ignore = (!c.open && c.entity === tls.ConnectionEnd.client);\n if(!ignore) {\n c.error(c, {\n message: 'Unexpected message. Received TLS record out of order.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unexpected_message\n }\n });\n }\n};\n\n/**\n * Called when a client receives a HelloRequest record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleHelloRequest = function(c, record, length) {\n // ignore renegotiation requests from the server during a handshake, but\n // if handshaking, send a warning alert that renegotation is denied\n if(!c.handshaking && c.handshakes > 0) {\n // send alert warning\n tls.queue(c, tls.createAlert(c, {\n level: tls.Alert.Level.warning,\n description: tls.Alert.Description.no_renegotiation\n }));\n tls.flush(c);\n }\n\n // continue\n c.process();\n};\n\n/**\n * Parses a hello message from a ClientHello or ServerHello record.\n *\n * @param record the record to parse.\n *\n * @return the parsed message.\n */\ntls.parseHelloMessage = function(c, record, length) {\n var msg = null;\n\n var client = (c.entity === tls.ConnectionEnd.client);\n\n // minimum of 38 bytes in message\n if(length < 38) {\n c.error(c, {\n message: client ?\n 'Invalid ServerHello message. Message too short.' :\n 'Invalid ClientHello message. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n } else {\n // use 'remaining' to calculate # of remaining bytes in the message\n var b = record.fragment;\n var remaining = b.length();\n msg = {\n version: {\n major: b.getByte(),\n minor: b.getByte()\n },\n random: forge.util.createBuffer(b.getBytes(32)),\n session_id: readVector(b, 1),\n extensions: []\n };\n if(client) {\n msg.cipher_suite = b.getBytes(2);\n msg.compression_method = b.getByte();\n } else {\n msg.cipher_suites = readVector(b, 2);\n msg.compression_methods = readVector(b, 1);\n }\n\n // read extensions if there are any bytes left in the message\n remaining = length - (remaining - b.length());\n if(remaining > 0) {\n // parse extensions\n var exts = readVector(b, 2);\n while(exts.length() > 0) {\n msg.extensions.push({\n type: [exts.getByte(), exts.getByte()],\n data: readVector(exts, 2)\n });\n }\n\n // TODO: make extension support modular\n if(!client) {\n for(var i = 0; i < msg.extensions.length; ++i) {\n var ext = msg.extensions[i];\n\n // support SNI extension\n if(ext.type[0] === 0x00 && ext.type[1] === 0x00) {\n // get server name list\n var snl = readVector(ext.data, 2);\n while(snl.length() > 0) {\n // read server name type\n var snType = snl.getByte();\n\n // only HostName type (0x00) is known, break out if\n // another type is detected\n if(snType !== 0x00) {\n break;\n }\n\n // add host name to server name list\n c.session.extensions.server_name.serverNameList.push(\n readVector(snl, 2).getBytes());\n }\n }\n }\n }\n }\n\n // version already set, do not allow version change\n if(c.session.version) {\n if(msg.version.major !== c.session.version.major ||\n msg.version.minor !== c.session.version.minor) {\n return c.error(c, {\n message: 'TLS version change is disallowed during renegotiation.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n }\n\n // get the chosen (ServerHello) cipher suite\n if(client) {\n // FIXME: should be checking configured acceptable cipher suites\n c.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite);\n } else {\n // get a supported preferred (ClientHello) cipher suite\n // choose the first supported cipher suite\n var tmp = forge.util.createBuffer(msg.cipher_suites.bytes());\n while(tmp.length() > 0) {\n // FIXME: should be checking configured acceptable suites\n // cipher suites take up 2 bytes\n c.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2));\n if(c.session.cipherSuite !== null) {\n break;\n }\n }\n }\n\n // cipher suite not supported\n if(c.session.cipherSuite === null) {\n return c.error(c, {\n message: 'No cipher suites in common.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.handshake_failure\n },\n cipherSuite: forge.util.bytesToHex(msg.cipher_suite)\n });\n }\n\n // TODO: handle compression methods\n if(client) {\n c.session.compressionMethod = msg.compression_method;\n } else {\n // no compression\n c.session.compressionMethod = tls.CompressionMethod.none;\n }\n }\n\n return msg;\n};\n\n/**\n * Creates security parameters for the given connection based on the given\n * hello message.\n *\n * @param c the TLS connection.\n * @param msg the hello message.\n */\ntls.createSecurityParameters = function(c, msg) {\n /* Note: security params are from TLS 1.2, some values like prf_algorithm\n are ignored for TLS 1.0/1.1 and the builtin as specified in the spec is\n used. */\n\n // TODO: handle other options from server when more supported\n\n // get client and server randoms\n var client = (c.entity === tls.ConnectionEnd.client);\n var msgRandom = msg.random.bytes();\n var cRandom = client ? c.session.sp.client_random : msgRandom;\n var sRandom = client ? msgRandom : tls.createRandom().getBytes();\n\n // create new security parameters\n c.session.sp = {\n entity: c.entity,\n prf_algorithm: tls.PRFAlgorithm.tls_prf_sha256,\n bulk_cipher_algorithm: null,\n cipher_type: null,\n enc_key_length: null,\n block_length: null,\n fixed_iv_length: null,\n record_iv_length: null,\n mac_algorithm: null,\n mac_length: null,\n mac_key_length: null,\n compression_algorithm: c.session.compressionMethod,\n pre_master_secret: null,\n master_secret: null,\n client_random: cRandom,\n server_random: sRandom\n };\n};\n\n/**\n * Called when a client receives a ServerHello record.\n *\n * When a ServerHello message will be sent:\n * The server will send this message in response to a client hello message\n * when it was able to find an acceptable set of algorithms. If it cannot\n * find such a match, it will respond with a handshake failure alert.\n *\n * uint24 length;\n * struct {\n * ProtocolVersion server_version;\n * Random random;\n * SessionID session_id;\n * CipherSuite cipher_suite;\n * CompressionMethod compression_method;\n * select(extensions_present) {\n * case false:\n * struct {};\n * case true:\n * Extension extensions<0..2^16-1>;\n * };\n * } ServerHello;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerHello = function(c, record, length) {\n var msg = tls.parseHelloMessage(c, record, length);\n if(c.fail) {\n return;\n }\n\n // ensure server version is compatible\n if(msg.version.minor <= c.version.minor) {\n c.version.minor = msg.version.minor;\n } else {\n return c.error(c, {\n message: 'Incompatible TLS version.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n\n // indicate session version has been set\n c.session.version = c.version;\n\n // get the session ID from the message\n var sessionId = msg.session_id.bytes();\n\n // if the session ID is not blank and matches the cached one, resume\n // the session\n if(sessionId.length > 0 && sessionId === c.session.id) {\n // resuming session, expect a ChangeCipherSpec next\n c.expect = SCC;\n c.session.resuming = true;\n\n // get new server random\n c.session.sp.server_random = msg.random.bytes();\n } else {\n // not resuming, expect a server Certificate message next\n c.expect = SCE;\n c.session.resuming = false;\n\n // create new security parameters\n tls.createSecurityParameters(c, msg);\n }\n\n // set new session ID\n c.session.id = sessionId;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a server receives a ClientHello record.\n *\n * When a ClientHello message will be sent:\n * When a client first connects to a server it is required to send the\n * client hello as its first message. The client can also send a client\n * hello in response to a hello request or on its own initiative in order\n * to renegotiate the security parameters in an existing connection.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleClientHello = function(c, record, length) {\n var msg = tls.parseHelloMessage(c, record, length);\n if(c.fail) {\n return;\n }\n\n // get the session ID from the message\n var sessionId = msg.session_id.bytes();\n\n // see if the given session ID is in the cache\n var session = null;\n if(c.sessionCache) {\n session = c.sessionCache.getSession(sessionId);\n if(session === null) {\n // session ID not found\n sessionId = '';\n } else if(session.version.major !== msg.version.major ||\n session.version.minor > msg.version.minor) {\n // if session version is incompatible with client version, do not resume\n session = null;\n sessionId = '';\n }\n }\n\n // no session found to resume, generate a new session ID\n if(sessionId.length === 0) {\n sessionId = forge.random.getBytes(32);\n }\n\n // update session\n c.session.id = sessionId;\n c.session.clientHelloVersion = msg.version;\n c.session.sp = {};\n if(session) {\n // use version and security parameters from resumed session\n c.version = c.session.version = session.version;\n c.session.sp = session.sp;\n } else {\n // use highest compatible minor version\n var version;\n for(var i = 1; i < tls.SupportedVersions.length; ++i) {\n version = tls.SupportedVersions[i];\n if(version.minor <= msg.version.minor) {\n break;\n }\n }\n c.version = {major: version.major, minor: version.minor};\n c.session.version = c.version;\n }\n\n // if a session is set, resume it\n if(session !== null) {\n // resuming session, expect a ChangeCipherSpec next\n c.expect = CCC;\n c.session.resuming = true;\n\n // get new client random\n c.session.sp.client_random = msg.random.bytes();\n } else {\n // not resuming, expect a Certificate or ClientKeyExchange\n c.expect = (c.verifyClient !== false) ? CCE : CKE;\n c.session.resuming = false;\n\n // create new security parameters\n tls.createSecurityParameters(c, msg);\n }\n\n // connection now open\n c.open = true;\n\n // queue server hello\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerHello(c)\n }));\n\n if(c.session.resuming) {\n // queue change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // create pending state\n c.state.pending = tls.createConnectionState(c);\n\n // change current write state to pending write state\n c.state.current.write = c.state.pending.write;\n\n // queue finished\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n } else {\n // queue server certificate\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificate(c)\n }));\n\n if(!c.fail) {\n // queue server key exchange\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerKeyExchange(c)\n }));\n\n // request client certificate if set\n if(c.verifyClient !== false) {\n // queue certificate request\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificateRequest(c)\n }));\n }\n\n // queue server hello done\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerHelloDone(c)\n }));\n }\n }\n\n // send records\n tls.flush(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a Certificate record.\n *\n * When this message will be sent:\n * The server must send a certificate whenever the agreed-upon key exchange\n * method is not an anonymous one. This message will always immediately\n * follow the server hello message.\n *\n * Meaning of this message:\n * The certificate type must be appropriate for the selected cipher suite's\n * key exchange algorithm, and is generally an X.509v3 certificate. It must\n * contain a key which matches the key exchange method, as follows. Unless\n * otherwise specified, the signing algorithm for the certificate must be\n * the same as the algorithm for the certificate key. Unless otherwise\n * specified, the public key may be of any length.\n *\n * opaque ASN.1Cert<1..2^24-1>;\n * struct {\n * ASN.1Cert certificate_list<1..2^24-1>;\n * } Certificate;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificate = function(c, record, length) {\n // minimum of 3 bytes in message\n if(length < 3) {\n return c.error(c, {\n message: 'Invalid Certificate message. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n var b = record.fragment;\n var msg = {\n certificate_list: readVector(b, 3)\n };\n\n /* The sender's certificate will be first in the list (chain), each\n subsequent one that follows will certify the previous one, but root\n certificates (self-signed) that specify the certificate authority may\n be omitted under the assumption that clients must already possess it. */\n var cert, asn1;\n var certs = [];\n try {\n while(msg.certificate_list.length() > 0) {\n // each entry in msg.certificate_list is a vector with 3 len bytes\n cert = readVector(msg.certificate_list, 3);\n asn1 = forge.asn1.fromDer(cert);\n cert = forge.pki.certificateFromAsn1(asn1, true);\n certs.push(cert);\n }\n } catch(ex) {\n return c.error(c, {\n message: 'Could not parse certificate list.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n }\n });\n }\n\n // ensure at least 1 certificate was provided if in client-mode\n // or if verifyClient was set to true to require a certificate\n // (as opposed to 'optional')\n var client = (c.entity === tls.ConnectionEnd.client);\n if((client || c.verifyClient === true) && certs.length === 0) {\n // error, no certificate\n c.error(c, {\n message: client ?\n 'No server certificate provided.' :\n 'No client certificate provided.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n } else if(certs.length === 0) {\n // no certs to verify\n // expect a ServerKeyExchange or ClientKeyExchange message next\n c.expect = client ? SKE : CKE;\n } else {\n // save certificate in session\n if(client) {\n c.session.serverCertificate = certs[0];\n } else {\n c.session.clientCertificate = certs[0];\n }\n\n if(tls.verifyCertificateChain(c, certs)) {\n // expect a ServerKeyExchange or ClientKeyExchange message next\n c.expect = client ? SKE : CKE;\n }\n }\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ServerKeyExchange record.\n *\n * When this message will be sent:\n * This message will be sent immediately after the server certificate\n * message (or the server hello message, if this is an anonymous\n * negotiation).\n *\n * The server key exchange message is sent by the server only when the\n * server certificate message (if sent) does not contain enough data to\n * allow the client to exchange a premaster secret.\n *\n * Meaning of this message:\n * This message conveys cryptographic information to allow the client to\n * communicate the premaster secret: either an RSA public key to encrypt\n * the premaster secret with, or a Diffie-Hellman public key with which the\n * client can complete a key exchange (with the result being the premaster\n * secret.)\n *\n * enum {\n * dhe_dss, dhe_rsa, dh_anon, rsa, dh_dss, dh_rsa\n * } KeyExchangeAlgorithm;\n *\n * struct {\n * opaque dh_p<1..2^16-1>;\n * opaque dh_g<1..2^16-1>;\n * opaque dh_Ys<1..2^16-1>;\n * } ServerDHParams;\n *\n * struct {\n * select(KeyExchangeAlgorithm) {\n * case dh_anon:\n * ServerDHParams params;\n * case dhe_dss:\n * case dhe_rsa:\n * ServerDHParams params;\n * digitally-signed struct {\n * opaque client_random[32];\n * opaque server_random[32];\n * ServerDHParams params;\n * } signed_params;\n * case rsa:\n * case dh_dss:\n * case dh_rsa:\n * struct {};\n * };\n * } ServerKeyExchange;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerKeyExchange = function(c, record, length) {\n // this implementation only supports RSA, no Diffie-Hellman support\n // so any length > 0 is invalid\n if(length > 0) {\n return c.error(c, {\n message: 'Invalid key parameters. Only RSA is supported.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unsupported_certificate\n }\n });\n }\n\n // expect an optional CertificateRequest message next\n c.expect = SCR;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ClientKeyExchange record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleClientKeyExchange = function(c, record, length) {\n // this implementation only supports RSA, no Diffie-Hellman support\n // so any length < 48 is invalid\n if(length < 48) {\n return c.error(c, {\n message: 'Invalid key parameters. Only RSA is supported.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unsupported_certificate\n }\n });\n }\n\n var b = record.fragment;\n var msg = {\n enc_pre_master_secret: readVector(b, 2).getBytes()\n };\n\n // do rsa decryption\n var privateKey = null;\n if(c.getPrivateKey) {\n try {\n privateKey = c.getPrivateKey(c, c.session.serverCertificate);\n privateKey = forge.pki.privateKeyFromPem(privateKey);\n } catch(ex) {\n c.error(c, {\n message: 'Could not get private key.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n }\n\n if(privateKey === null) {\n return c.error(c, {\n message: 'No private key set.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n\n try {\n // decrypt 48-byte pre-master secret\n var sp = c.session.sp;\n sp.pre_master_secret = privateKey.decrypt(msg.enc_pre_master_secret);\n\n // ensure client hello version matches first 2 bytes\n var version = c.session.clientHelloVersion;\n if(version.major !== sp.pre_master_secret.charCodeAt(0) ||\n version.minor !== sp.pre_master_secret.charCodeAt(1)) {\n // error, do not send alert (see BLEI attack below)\n throw new Error('TLS version rollback attack detected.');\n }\n } catch(ex) {\n /* Note: Daniel Bleichenbacher [BLEI] can be used to attack a\n TLS server which is using PKCS#1 encoded RSA, so instead of\n failing here, we generate 48 random bytes and use that as\n the pre-master secret. */\n sp.pre_master_secret = forge.random.getBytes(48);\n }\n\n // expect a CertificateVerify message if a Certificate was received that\n // does not have fixed Diffie-Hellman params, otherwise expect\n // ChangeCipherSpec\n c.expect = CCC;\n if(c.session.clientCertificate !== null) {\n // only RSA support, so expect CertificateVerify\n // TODO: support Diffie-Hellman\n c.expect = CCV;\n }\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a CertificateRequest record.\n *\n * When this message will be sent:\n * A non-anonymous server can optionally request a certificate from the\n * client, if appropriate for the selected cipher suite. This message, if\n * sent, will immediately follow the Server Key Exchange message (if it is\n * sent; otherwise, the Server Certificate message).\n *\n * enum {\n * rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4),\n * rsa_ephemeral_dh_RESERVED(5), dss_ephemeral_dh_RESERVED(6),\n * fortezza_dms_RESERVED(20), (255)\n * } ClientCertificateType;\n *\n * opaque DistinguishedName<1..2^16-1>;\n *\n * struct {\n * ClientCertificateType certificate_types<1..2^8-1>;\n * SignatureAndHashAlgorithm supported_signature_algorithms<2^16-1>;\n * DistinguishedName certificate_authorities<0..2^16-1>;\n * } CertificateRequest;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificateRequest = function(c, record, length) {\n // minimum of 3 bytes in message\n if(length < 3) {\n return c.error(c, {\n message: 'Invalid CertificateRequest. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // TODO: TLS 1.2+ has different format including\n // SignatureAndHashAlgorithm after cert types\n var b = record.fragment;\n var msg = {\n certificate_types: readVector(b, 1),\n certificate_authorities: readVector(b, 2)\n };\n\n // save certificate request in session\n c.session.certificateRequest = msg;\n\n // expect a ServerHelloDone message next\n c.expect = SHD;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a server receives a CertificateVerify record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificateVerify = function(c, record, length) {\n if(length < 2) {\n return c.error(c, {\n message: 'Invalid CertificateVerify. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // rewind to get full bytes for message so it can be manually\n // digested below (special case for CertificateVerify messages because\n // they must be digested *after* handling as opposed to all others)\n var b = record.fragment;\n b.read -= 4;\n var msgBytes = b.bytes();\n b.read += 4;\n\n var msg = {\n signature: readVector(b, 2).getBytes()\n };\n\n // TODO: add support for DSA\n\n // generate data to verify\n var verify = forge.util.createBuffer();\n verify.putBuffer(c.session.md5.digest());\n verify.putBuffer(c.session.sha1.digest());\n verify = verify.getBytes();\n\n try {\n var cert = c.session.clientCertificate;\n /*b = forge.pki.rsa.decrypt(\n msg.signature, cert.publicKey, true, verify.length);\n if(b !== verify) {*/\n if(!cert.publicKey.verify(verify, msg.signature, 'NONE')) {\n throw new Error('CertificateVerify signature does not match.');\n }\n\n // digest message now that it has been handled\n c.session.md5.update(msgBytes);\n c.session.sha1.update(msgBytes);\n } catch(ex) {\n return c.error(c, {\n message: 'Bad signature in CertificateVerify.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.handshake_failure\n }\n });\n }\n\n // expect ChangeCipherSpec\n c.expect = CCC;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ServerHelloDone record.\n *\n * When this message will be sent:\n * The server hello done message is sent by the server to indicate the end\n * of the server hello and associated messages. After sending this message\n * the server will wait for a client response.\n *\n * Meaning of this message:\n * This message means that the server is done sending messages to support\n * the key exchange, and the client can proceed with its phase of the key\n * exchange.\n *\n * Upon receipt of the server hello done message the client should verify\n * that the server provided a valid certificate if required and check that\n * the server hello parameters are acceptable.\n *\n * struct {} ServerHelloDone;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerHelloDone = function(c, record, length) {\n // len must be 0 bytes\n if(length > 0) {\n return c.error(c, {\n message: 'Invalid ServerHelloDone message. Invalid length.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.record_overflow\n }\n });\n }\n\n if(c.serverCertificate === null) {\n // no server certificate was provided\n var error = {\n message: 'No server certificate provided. Not enough security.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.insufficient_security\n }\n };\n\n // call application callback\n var depth = 0;\n var ret = c.verify(c, error.alert.description, depth, []);\n if(ret !== true) {\n // check for custom alert info\n if(ret || ret === 0) {\n // set custom message and alert description\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.alert) {\n error.alert.description = ret.alert;\n }\n } else if(typeof ret === 'number') {\n // set custom alert description\n error.alert.description = ret;\n }\n }\n\n // send error\n return c.error(c, error);\n }\n }\n\n // create client certificate message if requested\n if(c.session.certificateRequest !== null) {\n record = tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificate(c)\n });\n tls.queue(c, record);\n }\n\n // create client key exchange message\n record = tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createClientKeyExchange(c)\n });\n tls.queue(c, record);\n\n // expect no messages until the following callback has been called\n c.expect = SER;\n\n // create callback to handle client signature (for client-certs)\n var callback = function(c, signature) {\n if(c.session.certificateRequest !== null &&\n c.session.clientCertificate !== null) {\n // create certificate verify message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificateVerify(c, signature)\n }));\n }\n\n // create change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // create pending state\n c.state.pending = tls.createConnectionState(c);\n\n // change current write state to pending write state\n c.state.current.write = c.state.pending.write;\n\n // create finished message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n\n // expect a server ChangeCipherSpec message next\n c.expect = SCC;\n\n // send records\n tls.flush(c);\n\n // continue\n c.process();\n };\n\n // if there is no certificate request or no client certificate, do\n // callback immediately\n if(c.session.certificateRequest === null ||\n c.session.clientCertificate === null) {\n return callback(c, null);\n }\n\n // otherwise get the client signature\n tls.getClientSignature(c, callback);\n};\n\n/**\n * Called when a ChangeCipherSpec record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleChangeCipherSpec = function(c, record) {\n if(record.fragment.getByte() !== 0x01) {\n return c.error(c, {\n message: 'Invalid ChangeCipherSpec message received.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // create pending state if:\n // 1. Resuming session in client mode OR\n // 2. NOT resuming session in server mode\n var client = (c.entity === tls.ConnectionEnd.client);\n if((c.session.resuming && client) || (!c.session.resuming && !client)) {\n c.state.pending = tls.createConnectionState(c);\n }\n\n // change current read state to pending read state\n c.state.current.read = c.state.pending.read;\n\n // clear pending state if:\n // 1. NOT resuming session in client mode OR\n // 2. resuming a session in server mode\n if((!c.session.resuming && client) || (c.session.resuming && !client)) {\n c.state.pending = null;\n }\n\n // expect a Finished record next\n c.expect = client ? SFI : CFI;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Finished record is received.\n *\n * When this message will be sent:\n * A finished message is always sent immediately after a change\n * cipher spec message to verify that the key exchange and\n * authentication processes were successful. It is essential that a\n * change cipher spec message be received between the other\n * handshake messages and the Finished message.\n *\n * Meaning of this message:\n * The finished message is the first protected with the just-\n * negotiated algorithms, keys, and secrets. Recipients of finished\n * messages must verify that the contents are correct. Once a side\n * has sent its Finished message and received and validated the\n * Finished message from its peer, it may begin to send and receive\n * application data over the connection.\n *\n * struct {\n * opaque verify_data[verify_data_length];\n * } Finished;\n *\n * verify_data\n * PRF(master_secret, finished_label, Hash(handshake_messages))\n * [0..verify_data_length-1];\n *\n * finished_label\n * For Finished messages sent by the client, the string\n * \"client finished\". For Finished messages sent by the server, the\n * string \"server finished\".\n *\n * verify_data_length depends on the cipher suite. If it is not specified\n * by the cipher suite, then it is 12. Versions of TLS < 1.2 always used\n * 12 bytes.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleFinished = function(c, record, length) {\n // rewind to get full bytes for message so it can be manually\n // digested below (special case for Finished messages because they\n // must be digested *after* handling as opposed to all others)\n var b = record.fragment;\n b.read -= 4;\n var msgBytes = b.bytes();\n b.read += 4;\n\n // message contains only verify_data\n var vd = record.fragment.getBytes();\n\n // ensure verify data is correct\n b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n\n // set label based on entity type\n var client = (c.entity === tls.ConnectionEnd.client);\n var label = client ? 'server finished' : 'client finished';\n\n // TODO: determine prf function and verify length for TLS 1.2\n var sp = c.session.sp;\n var vdl = 12;\n var prf = prf_TLS1;\n b = prf(sp.master_secret, label, b.getBytes(), vdl);\n if(b.getBytes() !== vd) {\n return c.error(c, {\n message: 'Invalid verify_data in Finished message.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.decrypt_error\n }\n });\n }\n\n // digest finished message now that it has been handled\n c.session.md5.update(msgBytes);\n c.session.sha1.update(msgBytes);\n\n // resuming session as client or NOT resuming session as server\n if((c.session.resuming && client) || (!c.session.resuming && !client)) {\n // create change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // change current write state to pending write state, clear pending\n c.state.current.write = c.state.pending.write;\n c.state.pending = null;\n\n // create finished message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n }\n\n // expect application data next\n c.expect = client ? SAD : CAD;\n\n // handshake complete\n c.handshaking = false;\n ++c.handshakes;\n\n // save access to peer certificate\n c.peerCertificate = client ?\n c.session.serverCertificate : c.session.clientCertificate;\n\n // send records\n tls.flush(c);\n\n // now connected\n c.isConnected = true;\n c.connected(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when an Alert record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleAlert = function(c, record) {\n // read alert\n var b = record.fragment;\n var alert = {\n level: b.getByte(),\n description: b.getByte()\n };\n\n // TODO: consider using a table?\n // get appropriate message\n var msg;\n switch(alert.description) {\n case tls.Alert.Description.close_notify:\n msg = 'Connection closed.';\n break;\n case tls.Alert.Description.unexpected_message:\n msg = 'Unexpected message.';\n break;\n case tls.Alert.Description.bad_record_mac:\n msg = 'Bad record MAC.';\n break;\n case tls.Alert.Description.decryption_failed:\n msg = 'Decryption failed.';\n break;\n case tls.Alert.Description.record_overflow:\n msg = 'Record overflow.';\n break;\n case tls.Alert.Description.decompression_failure:\n msg = 'Decompression failed.';\n break;\n case tls.Alert.Description.handshake_failure:\n msg = 'Handshake failure.';\n break;\n case tls.Alert.Description.bad_certificate:\n msg = 'Bad certificate.';\n break;\n case tls.Alert.Description.unsupported_certificate:\n msg = 'Unsupported certificate.';\n break;\n case tls.Alert.Description.certificate_revoked:\n msg = 'Certificate revoked.';\n break;\n case tls.Alert.Description.certificate_expired:\n msg = 'Certificate expired.';\n break;\n case tls.Alert.Description.certificate_unknown:\n msg = 'Certificate unknown.';\n break;\n case tls.Alert.Description.illegal_parameter:\n msg = 'Illegal parameter.';\n break;\n case tls.Alert.Description.unknown_ca:\n msg = 'Unknown certificate authority.';\n break;\n case tls.Alert.Description.access_denied:\n msg = 'Access denied.';\n break;\n case tls.Alert.Description.decode_error:\n msg = 'Decode error.';\n break;\n case tls.Alert.Description.decrypt_error:\n msg = 'Decrypt error.';\n break;\n case tls.Alert.Description.export_restriction:\n msg = 'Export restriction.';\n break;\n case tls.Alert.Description.protocol_version:\n msg = 'Unsupported protocol version.';\n break;\n case tls.Alert.Description.insufficient_security:\n msg = 'Insufficient security.';\n break;\n case tls.Alert.Description.internal_error:\n msg = 'Internal error.';\n break;\n case tls.Alert.Description.user_canceled:\n msg = 'User canceled.';\n break;\n case tls.Alert.Description.no_renegotiation:\n msg = 'Renegotiation not supported.';\n break;\n default:\n msg = 'Unknown error.';\n break;\n }\n\n // close connection on close_notify, not an error\n if(alert.description === tls.Alert.Description.close_notify) {\n return c.close();\n }\n\n // call error handler\n c.error(c, {\n message: msg,\n send: false,\n // origin is the opposite end\n origin: (c.entity === tls.ConnectionEnd.client) ? 'server' : 'client',\n alert: alert\n });\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Handshake record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleHandshake = function(c, record) {\n // get the handshake type and message length\n var b = record.fragment;\n var type = b.getByte();\n var length = b.getInt24();\n\n // see if the record fragment doesn't yet contain the full message\n if(length > b.length()) {\n // cache the record, clear its fragment, and reset the buffer read\n // pointer before the type and length were read\n c.fragmented = record;\n record.fragment = forge.util.createBuffer();\n b.read -= 4;\n\n // continue\n return c.process();\n }\n\n // full message now available, clear cache, reset read pointer to\n // before type and length\n c.fragmented = null;\n b.read -= 4;\n\n // save the handshake bytes for digestion after handler is found\n // (include type and length of handshake msg)\n var bytes = b.bytes(length + 4);\n\n // restore read pointer\n b.read += 4;\n\n // handle expected message\n if(type in hsTable[c.entity][c.expect]) {\n // initialize server session\n if(c.entity === tls.ConnectionEnd.server && !c.open && !c.fail) {\n c.handshaking = true;\n c.session = {\n version: null,\n extensions: {\n server_name: {\n serverNameList: []\n }\n },\n cipherSuite: null,\n compressionMethod: null,\n serverCertificate: null,\n clientCertificate: null,\n md5: forge.md.md5.create(),\n sha1: forge.md.sha1.create()\n };\n }\n\n /* Update handshake messages digest. Finished and CertificateVerify\n messages are not digested here. They can't be digested as part of\n the verify_data that they contain. These messages are manually\n digested in their handlers. HelloRequest messages are simply never\n included in the handshake message digest according to spec. */\n if(type !== tls.HandshakeType.hello_request &&\n type !== tls.HandshakeType.certificate_verify &&\n type !== tls.HandshakeType.finished) {\n c.session.md5.update(bytes);\n c.session.sha1.update(bytes);\n }\n\n // handle specific handshake type record\n hsTable[c.entity][c.expect][type](c, record, length);\n } else {\n // unexpected record\n tls.handleUnexpected(c, record);\n }\n};\n\n/**\n * Called when an ApplicationData record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleApplicationData = function(c, record) {\n // buffer data, notify that its ready\n c.data.putBuffer(record.fragment);\n c.dataReady(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Heartbeat record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleHeartbeat = function(c, record) {\n // get the heartbeat type and payload\n var b = record.fragment;\n var type = b.getByte();\n var length = b.getInt16();\n var payload = b.getBytes(length);\n\n if(type === tls.HeartbeatMessageType.heartbeat_request) {\n // discard request during handshake or if length is too large\n if(c.handshaking || length > payload.length) {\n // continue\n return c.process();\n }\n // retransmit payload\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.heartbeat,\n data: tls.createHeartbeat(\n tls.HeartbeatMessageType.heartbeat_response, payload)\n }));\n tls.flush(c);\n } else if(type === tls.HeartbeatMessageType.heartbeat_response) {\n // check payload against expected payload, discard heartbeat if no match\n if(payload !== c.expectedHeartbeatPayload) {\n // continue\n return c.process();\n }\n\n // notify that a valid heartbeat was received\n if(c.heartbeatReceived) {\n c.heartbeatReceived(c, forge.util.createBuffer(payload));\n }\n }\n\n // continue\n c.process();\n};\n\n/**\n * The transistional state tables for receiving TLS records. It maps the\n * current TLS engine state and a received record to a function to handle the\n * record and update the state.\n *\n * For instance, if the current state is SHE, then the TLS engine is expecting\n * a ServerHello record. Once a record is received, the handler function is\n * looked up using the state SHE and the record's content type.\n *\n * The resulting function will either be an error handler or a record handler.\n * The function will take whatever action is appropriate and update the state\n * for the next record.\n *\n * The states are all based on possible server record types. Note that the\n * client will never specifically expect to receive a HelloRequest or an alert\n * from the server so there is no state that reflects this. These messages may\n * occur at any time.\n *\n * There are two tables for mapping states because there is a second tier of\n * types for handshake messages. Once a record with a content type of handshake\n * is received, the handshake record handler will look up the handshake type in\n * the secondary map to get its appropriate handler.\n *\n * Valid message orders are as follows:\n *\n * =======================FULL HANDSHAKE======================\n * Client Server\n *\n * ClientHello -------->\n * ServerHello\n * Certificate*\n * ServerKeyExchange*\n * CertificateRequest*\n * <-------- ServerHelloDone\n * Certificate*\n * ClientKeyExchange\n * CertificateVerify*\n * [ChangeCipherSpec]\n * Finished -------->\n * [ChangeCipherSpec]\n * <-------- Finished\n * Application Data <-------> Application Data\n *\n * =====================SESSION RESUMPTION=====================\n * Client Server\n *\n * ClientHello -------->\n * ServerHello\n * [ChangeCipherSpec]\n * <-------- Finished\n * [ChangeCipherSpec]\n * Finished -------->\n * Application Data <-------> Application Data\n */\n// client expect states (indicate which records are expected to be received)\nvar SHE = 0; // rcv server hello\nvar SCE = 1; // rcv server certificate\nvar SKE = 2; // rcv server key exchange\nvar SCR = 3; // rcv certificate request\nvar SHD = 4; // rcv server hello done\nvar SCC = 5; // rcv change cipher spec\nvar SFI = 6; // rcv finished\nvar SAD = 7; // rcv application data\nvar SER = 8; // not expecting any messages at this point\n\n// server expect states\nvar CHE = 0; // rcv client hello\nvar CCE = 1; // rcv client certificate\nvar CKE = 2; // rcv client key exchange\nvar CCV = 3; // rcv certificate verify\nvar CCC = 4; // rcv change cipher spec\nvar CFI = 5; // rcv finished\nvar CAD = 6; // rcv application data\nvar CER = 7; // not expecting any messages at this point\n\n// map client current expect state and content type to function\nvar __ = tls.handleUnexpected;\nvar R0 = tls.handleChangeCipherSpec;\nvar R1 = tls.handleAlert;\nvar R2 = tls.handleHandshake;\nvar R3 = tls.handleApplicationData;\nvar R4 = tls.handleHeartbeat;\nvar ctTable = [];\nctTable[tls.ConnectionEnd.client] = [\n// CC,AL,HS,AD,HB\n/*SHE*/[__,R1,R2,__,R4],\n/*SCE*/[__,R1,R2,__,R4],\n/*SKE*/[__,R1,R2,__,R4],\n/*SCR*/[__,R1,R2,__,R4],\n/*SHD*/[__,R1,R2,__,R4],\n/*SCC*/[R0,R1,__,__,R4],\n/*SFI*/[__,R1,R2,__,R4],\n/*SAD*/[__,R1,R2,R3,R4],\n/*SER*/[__,R1,R2,__,R4]\n];\n\n// map server current expect state and content type to function\nctTable[tls.ConnectionEnd.server] = [\n// CC,AL,HS,AD\n/*CHE*/[__,R1,R2,__,R4],\n/*CCE*/[__,R1,R2,__,R4],\n/*CKE*/[__,R1,R2,__,R4],\n/*CCV*/[__,R1,R2,__,R4],\n/*CCC*/[R0,R1,__,__,R4],\n/*CFI*/[__,R1,R2,__,R4],\n/*CAD*/[__,R1,R2,R3,R4],\n/*CER*/[__,R1,R2,__,R4]\n];\n\n// map client current expect state and handshake type to function\nvar H0 = tls.handleHelloRequest;\nvar H1 = tls.handleServerHello;\nvar H2 = tls.handleCertificate;\nvar H3 = tls.handleServerKeyExchange;\nvar H4 = tls.handleCertificateRequest;\nvar H5 = tls.handleServerHelloDone;\nvar H6 = tls.handleFinished;\nvar hsTable = [];\nhsTable[tls.ConnectionEnd.client] = [\n// HR,01,SH,03,04,05,06,07,08,09,10,SC,SK,CR,HD,15,CK,17,18,19,FI\n/*SHE*/[__,__,H1,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SCE*/[H0,__,__,__,__,__,__,__,__,__,__,H2,H3,H4,H5,__,__,__,__,__,__],\n/*SKE*/[H0,__,__,__,__,__,__,__,__,__,__,__,H3,H4,H5,__,__,__,__,__,__],\n/*SCR*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,H4,H5,__,__,__,__,__,__],\n/*SHD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,H5,__,__,__,__,__,__],\n/*SCC*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SFI*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],\n/*SAD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SER*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]\n];\n\n// map server current expect state and handshake type to function\n// Note: CAD[CH] does not map to FB because renegotation is prohibited\nvar H7 = tls.handleClientHello;\nvar H8 = tls.handleClientKeyExchange;\nvar H9 = tls.handleCertificateVerify;\nhsTable[tls.ConnectionEnd.server] = [\n// 01,CH,02,03,04,05,06,07,08,09,10,CC,12,13,14,CV,CK,17,18,19,FI\n/*CHE*/[__,H7,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CCE*/[__,__,__,__,__,__,__,__,__,__,__,H2,__,__,__,__,__,__,__,__,__],\n/*CKE*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H8,__,__,__,__],\n/*CCV*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H9,__,__,__,__,__],\n/*CCC*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CFI*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],\n/*CAD*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CER*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]\n];\n\n/**\n * Generates the master_secret and keys using the given security parameters.\n *\n * The security parameters for a TLS connection state are defined as such:\n *\n * struct {\n * ConnectionEnd entity;\n * PRFAlgorithm prf_algorithm;\n * BulkCipherAlgorithm bulk_cipher_algorithm;\n * CipherType cipher_type;\n * uint8 enc_key_length;\n * uint8 block_length;\n * uint8 fixed_iv_length;\n * uint8 record_iv_length;\n * MACAlgorithm mac_algorithm;\n * uint8 mac_length;\n * uint8 mac_key_length;\n * CompressionMethod compression_algorithm;\n * opaque master_secret[48];\n * opaque client_random[32];\n * opaque server_random[32];\n * } SecurityParameters;\n *\n * Note that this definition is from TLS 1.2. In TLS 1.0 some of these\n * parameters are ignored because, for instance, the PRFAlgorithm is a\n * builtin-fixed algorithm combining iterations of MD5 and SHA-1 in TLS 1.0.\n *\n * The Record Protocol requires an algorithm to generate keys required by the\n * current connection state.\n *\n * The master secret is expanded into a sequence of secure bytes, which is then\n * split to a client write MAC key, a server write MAC key, a client write\n * encryption key, and a server write encryption key. In TLS 1.0 a client write\n * IV and server write IV are also generated. Each of these is generated from\n * the byte sequence in that order. Unused values are empty. In TLS 1.2, some\n * AEAD ciphers may additionally require a client write IV and a server write\n * IV (see Section 6.2.3.3).\n *\n * When keys, MAC keys, and IVs are generated, the master secret is used as an\n * entropy source.\n *\n * To generate the key material, compute:\n *\n * master_secret = PRF(pre_master_secret, \"master secret\",\n * ClientHello.random + ServerHello.random)\n *\n * key_block = PRF(SecurityParameters.master_secret,\n * \"key expansion\",\n * SecurityParameters.server_random +\n * SecurityParameters.client_random);\n *\n * until enough output has been generated. Then, the key_block is\n * partitioned as follows:\n *\n * client_write_MAC_key[SecurityParameters.mac_key_length]\n * server_write_MAC_key[SecurityParameters.mac_key_length]\n * client_write_key[SecurityParameters.enc_key_length]\n * server_write_key[SecurityParameters.enc_key_length]\n * client_write_IV[SecurityParameters.fixed_iv_length]\n * server_write_IV[SecurityParameters.fixed_iv_length]\n *\n * In TLS 1.2, the client_write_IV and server_write_IV are only generated for\n * implicit nonce techniques as described in Section 3.2.1 of [AEAD]. This\n * implementation uses TLS 1.0 so IVs are generated.\n *\n * Implementation note: The currently defined cipher suite which requires the\n * most material is AES_256_CBC_SHA256. It requires 2 x 32 byte keys and 2 x 32\n * byte MAC keys, for a total 128 bytes of key material. In TLS 1.0 it also\n * requires 2 x 16 byte IVs, so it actually takes 160 bytes of key material.\n *\n * @param c the connection.\n * @param sp the security parameters to use.\n *\n * @return the security keys.\n */\ntls.generateKeys = function(c, sp) {\n // TLS_RSA_WITH_AES_128_CBC_SHA (required to be compliant with TLS 1.2) &\n // TLS_RSA_WITH_AES_256_CBC_SHA are the only cipher suites implemented\n // at present\n\n // TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA is required to be compliant with\n // TLS 1.0 but we don't care right now because AES is better and we have\n // an implementation for it\n\n // TODO: TLS 1.2 implementation\n /*\n // determine the PRF\n var prf;\n switch(sp.prf_algorithm) {\n case tls.PRFAlgorithm.tls_prf_sha256:\n prf = prf_sha256;\n break;\n default:\n // should never happen\n throw new Error('Invalid PRF');\n }\n */\n\n // TLS 1.0/1.1 implementation\n var prf = prf_TLS1;\n\n // concatenate server and client random\n var random = sp.client_random + sp.server_random;\n\n // only create master secret if session is new\n if(!c.session.resuming) {\n // create master secret, clean up pre-master secret\n sp.master_secret = prf(\n sp.pre_master_secret, 'master secret', random, 48).bytes();\n sp.pre_master_secret = null;\n }\n\n // generate the amount of key material needed\n random = sp.server_random + sp.client_random;\n var length = 2 * sp.mac_key_length + 2 * sp.enc_key_length;\n\n // include IV for TLS/1.0\n var tls10 = (c.version.major === tls.Versions.TLS_1_0.major &&\n c.version.minor === tls.Versions.TLS_1_0.minor);\n if(tls10) {\n length += 2 * sp.fixed_iv_length;\n }\n var km = prf(sp.master_secret, 'key expansion', random, length);\n\n // split the key material into the MAC and encryption keys\n var rval = {\n client_write_MAC_key: km.getBytes(sp.mac_key_length),\n server_write_MAC_key: km.getBytes(sp.mac_key_length),\n client_write_key: km.getBytes(sp.enc_key_length),\n server_write_key: km.getBytes(sp.enc_key_length)\n };\n\n // include TLS 1.0 IVs\n if(tls10) {\n rval.client_write_IV = km.getBytes(sp.fixed_iv_length);\n rval.server_write_IV = km.getBytes(sp.fixed_iv_length);\n }\n\n return rval;\n};\n\n/**\n * Creates a new initialized TLS connection state. A connection state has\n * a read mode and a write mode.\n *\n * compression state:\n * The current state of the compression algorithm.\n *\n * cipher state:\n * The current state of the encryption algorithm. This will consist of the\n * scheduled key for that connection. For stream ciphers, this will also\n * contain whatever state information is necessary to allow the stream to\n * continue to encrypt or decrypt data.\n *\n * MAC key:\n * The MAC key for the connection.\n *\n * sequence number:\n * Each connection state contains a sequence number, which is maintained\n * separately for read and write states. The sequence number MUST be set to\n * zero whenever a connection state is made the active state. Sequence\n * numbers are of type uint64 and may not exceed 2^64-1. Sequence numbers do\n * not wrap. If a TLS implementation would need to wrap a sequence number,\n * it must renegotiate instead. A sequence number is incremented after each\n * record: specifically, the first record transmitted under a particular\n * connection state MUST use sequence number 0.\n *\n * @param c the connection.\n *\n * @return the new initialized TLS connection state.\n */\ntls.createConnectionState = function(c) {\n var client = (c.entity === tls.ConnectionEnd.client);\n\n var createMode = function() {\n var mode = {\n // two 32-bit numbers, first is most significant\n sequenceNumber: [0, 0],\n macKey: null,\n macLength: 0,\n macFunction: null,\n cipherState: null,\n cipherFunction: function(record) {return true;},\n compressionState: null,\n compressFunction: function(record) {return true;},\n updateSequenceNumber: function() {\n if(mode.sequenceNumber[1] === 0xFFFFFFFF) {\n mode.sequenceNumber[1] = 0;\n ++mode.sequenceNumber[0];\n } else {\n ++mode.sequenceNumber[1];\n }\n }\n };\n return mode;\n };\n var state = {\n read: createMode(),\n write: createMode()\n };\n\n // update function in read mode will decrypt then decompress a record\n state.read.update = function(c, record) {\n if(!state.read.cipherFunction(record, state.read)) {\n c.error(c, {\n message: 'Could not decrypt record or bad MAC.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n // doesn't matter if decryption failed or MAC was\n // invalid, return the same error so as not to reveal\n // which one occurred\n description: tls.Alert.Description.bad_record_mac\n }\n });\n } else if(!state.read.compressFunction(c, record, state.read)) {\n c.error(c, {\n message: 'Could not decompress record.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.decompression_failure\n }\n });\n }\n return !c.fail;\n };\n\n // update function in write mode will compress then encrypt a record\n state.write.update = function(c, record) {\n if(!state.write.compressFunction(c, record, state.write)) {\n // error, but do not send alert since it would require\n // compression as well\n c.error(c, {\n message: 'Could not compress record.',\n send: false,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n } else if(!state.write.cipherFunction(record, state.write)) {\n // error, but do not send alert since it would require\n // encryption as well\n c.error(c, {\n message: 'Could not encrypt record.',\n send: false,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n return !c.fail;\n };\n\n // handle security parameters\n if(c.session) {\n var sp = c.session.sp;\n c.session.cipherSuite.initSecurityParameters(sp);\n\n // generate keys\n sp.keys = tls.generateKeys(c, sp);\n state.read.macKey = client ?\n sp.keys.server_write_MAC_key : sp.keys.client_write_MAC_key;\n state.write.macKey = client ?\n sp.keys.client_write_MAC_key : sp.keys.server_write_MAC_key;\n\n // cipher suite setup\n c.session.cipherSuite.initConnectionState(state, c, sp);\n\n // compression setup\n switch(sp.compression_algorithm) {\n case tls.CompressionMethod.none:\n break;\n case tls.CompressionMethod.deflate:\n state.read.compressFunction = inflate;\n state.write.compressFunction = deflate;\n break;\n default:\n throw new Error('Unsupported compression algorithm.');\n }\n }\n\n return state;\n};\n\n/**\n * Creates a Random structure.\n *\n * struct {\n * uint32 gmt_unix_time;\n * opaque random_bytes[28];\n * } Random;\n *\n * gmt_unix_time:\n * The current time and date in standard UNIX 32-bit format (seconds since\n * the midnight starting Jan 1, 1970, UTC, ignoring leap seconds) according\n * to the sender's internal clock. Clocks are not required to be set\n * correctly by the basic TLS protocol; higher-level or application\n * protocols may define additional requirements. Note that, for historical\n * reasons, the data element is named using GMT, the predecessor of the\n * current worldwide time base, UTC.\n * random_bytes:\n * 28 bytes generated by a secure random number generator.\n *\n * @return the Random structure as a byte array.\n */\ntls.createRandom = function() {\n // get UTC milliseconds\n var d = new Date();\n var utc = +d + d.getTimezoneOffset() * 60000;\n var rval = forge.util.createBuffer();\n rval.putInt32(utc);\n rval.putBytes(forge.random.getBytes(28));\n return rval;\n};\n\n/**\n * Creates a TLS record with the given type and data.\n *\n * @param c the connection.\n * @param options:\n * type: the record type.\n * data: the plain text data in a byte buffer.\n *\n * @return the created record.\n */\ntls.createRecord = function(c, options) {\n if(!options.data) {\n return null;\n }\n var record = {\n type: options.type,\n version: {\n major: c.version.major,\n minor: c.version.minor\n },\n length: options.data.length(),\n fragment: options.data\n };\n return record;\n};\n\n/**\n * Creates a TLS alert record.\n *\n * @param c the connection.\n * @param alert:\n * level: the TLS alert level.\n * description: the TLS alert description.\n *\n * @return the created alert record.\n */\ntls.createAlert = function(c, alert) {\n var b = forge.util.createBuffer();\n b.putByte(alert.level);\n b.putByte(alert.description);\n return tls.createRecord(c, {\n type: tls.ContentType.alert,\n data: b\n });\n};\n\n/* The structure of a TLS handshake message.\n *\n * struct {\n * HandshakeType msg_type; // handshake type\n * uint24 length; // bytes in message\n * select(HandshakeType) {\n * case hello_request: HelloRequest;\n * case client_hello: ClientHello;\n * case server_hello: ServerHello;\n * case certificate: Certificate;\n * case server_key_exchange: ServerKeyExchange;\n * case certificate_request: CertificateRequest;\n * case server_hello_done: ServerHelloDone;\n * case certificate_verify: CertificateVerify;\n * case client_key_exchange: ClientKeyExchange;\n * case finished: Finished;\n * } body;\n * } Handshake;\n */\n\n/**\n * Creates a ClientHello message.\n *\n * opaque SessionID<0..32>;\n * enum { null(0), deflate(1), (255) } CompressionMethod;\n * uint8 CipherSuite[2];\n *\n * struct {\n * ProtocolVersion client_version;\n * Random random;\n * SessionID session_id;\n * CipherSuite cipher_suites<2..2^16-2>;\n * CompressionMethod compression_methods<1..2^8-1>;\n * select(extensions_present) {\n * case false:\n * struct {};\n * case true:\n * Extension extensions<0..2^16-1>;\n * };\n * } ClientHello;\n *\n * The extension format for extended client hellos and server hellos is:\n *\n * struct {\n * ExtensionType extension_type;\n * opaque extension_data<0..2^16-1>;\n * } Extension;\n *\n * Here:\n *\n * - \"extension_type\" identifies the particular extension type.\n * - \"extension_data\" contains information specific to the particular\n * extension type.\n *\n * The extension types defined in this document are:\n *\n * enum {\n * server_name(0), max_fragment_length(1),\n * client_certificate_url(2), trusted_ca_keys(3),\n * truncated_hmac(4), status_request(5), (65535)\n * } ExtensionType;\n *\n * @param c the connection.\n *\n * @return the ClientHello byte buffer.\n */\ntls.createClientHello = function(c) {\n // save hello version\n c.session.clientHelloVersion = {\n major: c.version.major,\n minor: c.version.minor\n };\n\n // create supported cipher suites\n var cipherSuites = forge.util.createBuffer();\n for(var i = 0; i < c.cipherSuites.length; ++i) {\n var cs = c.cipherSuites[i];\n cipherSuites.putByte(cs.id[0]);\n cipherSuites.putByte(cs.id[1]);\n }\n var cSuites = cipherSuites.length();\n\n // create supported compression methods, null always supported, but\n // also support deflate if connection has inflate and deflate methods\n var compressionMethods = forge.util.createBuffer();\n compressionMethods.putByte(tls.CompressionMethod.none);\n // FIXME: deflate support disabled until issues with raw deflate data\n // without zlib headers are resolved\n /*\n if(c.inflate !== null && c.deflate !== null) {\n compressionMethods.putByte(tls.CompressionMethod.deflate);\n }\n */\n var cMethods = compressionMethods.length();\n\n // create TLS SNI (server name indication) extension if virtual host\n // has been specified, see RFC 3546\n var extensions = forge.util.createBuffer();\n if(c.virtualHost) {\n // create extension struct\n var ext = forge.util.createBuffer();\n ext.putByte(0x00); // type server_name (ExtensionType is 2 bytes)\n ext.putByte(0x00);\n\n /* In order to provide the server name, clients MAY include an\n * extension of type \"server_name\" in the (extended) client hello.\n * The \"extension_data\" field of this extension SHALL contain\n * \"ServerNameList\" where:\n *\n * struct {\n * NameType name_type;\n * select(name_type) {\n * case host_name: HostName;\n * } name;\n * } ServerName;\n *\n * enum {\n * host_name(0), (255)\n * } NameType;\n *\n * opaque HostName<1..2^16-1>;\n *\n * struct {\n * ServerName server_name_list<1..2^16-1>\n * } ServerNameList;\n */\n var serverName = forge.util.createBuffer();\n serverName.putByte(0x00); // type host_name\n writeVector(serverName, 2, forge.util.createBuffer(c.virtualHost));\n\n // ServerNameList is in extension_data\n var snList = forge.util.createBuffer();\n writeVector(snList, 2, serverName);\n writeVector(ext, 2, snList);\n extensions.putBuffer(ext);\n }\n var extLength = extensions.length();\n if(extLength > 0) {\n // add extension vector length\n extLength += 2;\n }\n\n // determine length of the handshake message\n // cipher suites and compression methods size will need to be\n // updated if more get added to the list\n var sessionId = c.session.id;\n var length =\n sessionId.length + 1 + // session ID vector\n 2 + // version (major + minor)\n 4 + 28 + // random time and random bytes\n 2 + cSuites + // cipher suites vector\n 1 + cMethods + // compression methods vector\n extLength; // extensions vector\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.client_hello);\n rval.putInt24(length); // handshake length\n rval.putByte(c.version.major); // major version\n rval.putByte(c.version.minor); // minor version\n rval.putBytes(c.session.sp.client_random); // random time + bytes\n writeVector(rval, 1, forge.util.createBuffer(sessionId));\n writeVector(rval, 2, cipherSuites);\n writeVector(rval, 1, compressionMethods);\n if(extLength > 0) {\n writeVector(rval, 2, extensions);\n }\n return rval;\n};\n\n/**\n * Creates a ServerHello message.\n *\n * @param c the connection.\n *\n * @return the ServerHello byte buffer.\n */\ntls.createServerHello = function(c) {\n // determine length of the handshake message\n var sessionId = c.session.id;\n var length =\n sessionId.length + 1 + // session ID vector\n 2 + // version (major + minor)\n 4 + 28 + // random time and random bytes\n 2 + // chosen cipher suite\n 1; // chosen compression method\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.server_hello);\n rval.putInt24(length); // handshake length\n rval.putByte(c.version.major); // major version\n rval.putByte(c.version.minor); // minor version\n rval.putBytes(c.session.sp.server_random); // random time + bytes\n writeVector(rval, 1, forge.util.createBuffer(sessionId));\n rval.putByte(c.session.cipherSuite.id[0]);\n rval.putByte(c.session.cipherSuite.id[1]);\n rval.putByte(c.session.compressionMethod);\n return rval;\n};\n\n/**\n * Creates a Certificate message.\n *\n * When this message will be sent:\n * This is the first message the client can send after receiving a server\n * hello done message and the first message the server can send after\n * sending a ServerHello. This client message is only sent if the server\n * requests a certificate. If no suitable certificate is available, the\n * client should send a certificate message containing no certificates. If\n * client authentication is required by the server for the handshake to\n * continue, it may respond with a fatal handshake failure alert.\n *\n * opaque ASN.1Cert<1..2^24-1>;\n *\n * struct {\n * ASN.1Cert certificate_list<0..2^24-1>;\n * } Certificate;\n *\n * @param c the connection.\n *\n * @return the Certificate byte buffer.\n */\ntls.createCertificate = function(c) {\n // TODO: check certificate request to ensure types are supported\n\n // get a certificate (a certificate as a PEM string)\n var client = (c.entity === tls.ConnectionEnd.client);\n var cert = null;\n if(c.getCertificate) {\n var hint;\n if(client) {\n hint = c.session.certificateRequest;\n } else {\n hint = c.session.extensions.server_name.serverNameList;\n }\n cert = c.getCertificate(c, hint);\n }\n\n // buffer to hold certificate list\n var certList = forge.util.createBuffer();\n if(cert !== null) {\n try {\n // normalize cert to a chain of certificates\n if(!forge.util.isArray(cert)) {\n cert = [cert];\n }\n var asn1 = null;\n for(var i = 0; i < cert.length; ++i) {\n var msg = forge.pem.decode(cert[i])[0];\n if(msg.type !== 'CERTIFICATE' &&\n msg.type !== 'X509 CERTIFICATE' &&\n msg.type !== 'TRUSTED CERTIFICATE') {\n var error = new Error('Could not convert certificate from PEM; PEM ' +\n 'header type is not \"CERTIFICATE\", \"X509 CERTIFICATE\", or ' +\n '\"TRUSTED CERTIFICATE\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert certificate from PEM; PEM is encrypted.');\n }\n\n var der = forge.util.createBuffer(msg.body);\n if(asn1 === null) {\n asn1 = forge.asn1.fromDer(der.bytes(), false);\n }\n\n // certificate entry is itself a vector with 3 length bytes\n var certBuffer = forge.util.createBuffer();\n writeVector(certBuffer, 3, der);\n\n // add cert vector to cert list vector\n certList.putBuffer(certBuffer);\n }\n\n // save certificate\n cert = forge.pki.certificateFromAsn1(asn1);\n if(client) {\n c.session.clientCertificate = cert;\n } else {\n c.session.serverCertificate = cert;\n }\n } catch(ex) {\n return c.error(c, {\n message: 'Could not send certificate list.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n }\n });\n }\n }\n\n // determine length of the handshake message\n var length = 3 + certList.length(); // cert list vector\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate);\n rval.putInt24(length);\n writeVector(rval, 3, certList);\n return rval;\n};\n\n/**\n * Creates a ClientKeyExchange message.\n *\n * When this message will be sent:\n * This message is always sent by the client. It will immediately follow the\n * client certificate message, if it is sent. Otherwise it will be the first\n * message sent by the client after it receives the server hello done\n * message.\n *\n * Meaning of this message:\n * With this message, the premaster secret is set, either though direct\n * transmission of the RSA-encrypted secret, or by the transmission of\n * Diffie-Hellman parameters which will allow each side to agree upon the\n * same premaster secret. When the key exchange method is DH_RSA or DH_DSS,\n * client certification has been requested, and the client was able to\n * respond with a certificate which contained a Diffie-Hellman public key\n * whose parameters (group and generator) matched those specified by the\n * server in its certificate, this message will not contain any data.\n *\n * Meaning of this message:\n * If RSA is being used for key agreement and authentication, the client\n * generates a 48-byte premaster secret, encrypts it using the public key\n * from the server's certificate or the temporary RSA key provided in a\n * server key exchange message, and sends the result in an encrypted\n * premaster secret message. This structure is a variant of the client\n * key exchange message, not a message in itself.\n *\n * struct {\n * select(KeyExchangeAlgorithm) {\n * case rsa: EncryptedPreMasterSecret;\n * case diffie_hellman: ClientDiffieHellmanPublic;\n * } exchange_keys;\n * } ClientKeyExchange;\n *\n * struct {\n * ProtocolVersion client_version;\n * opaque random[46];\n * } PreMasterSecret;\n *\n * struct {\n * public-key-encrypted PreMasterSecret pre_master_secret;\n * } EncryptedPreMasterSecret;\n *\n * A public-key-encrypted element is encoded as a vector <0..2^16-1>.\n *\n * @param c the connection.\n *\n * @return the ClientKeyExchange byte buffer.\n */\ntls.createClientKeyExchange = function(c) {\n // create buffer to encrypt\n var b = forge.util.createBuffer();\n\n // add highest client-supported protocol to help server avoid version\n // rollback attacks\n b.putByte(c.session.clientHelloVersion.major);\n b.putByte(c.session.clientHelloVersion.minor);\n\n // generate and add 46 random bytes\n b.putBytes(forge.random.getBytes(46));\n\n // save pre-master secret\n var sp = c.session.sp;\n sp.pre_master_secret = b.getBytes();\n\n // RSA-encrypt the pre-master secret\n var key = c.session.serverCertificate.publicKey;\n b = key.encrypt(sp.pre_master_secret);\n\n /* Note: The encrypted pre-master secret will be stored in a\n public-key-encrypted opaque vector that has the length prefixed using\n 2 bytes, so include those 2 bytes in the handshake message length. This\n is done as a minor optimization instead of calling writeVector(). */\n\n // determine length of the handshake message\n var length = b.length + 2;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.client_key_exchange);\n rval.putInt24(length);\n // add vector length bytes\n rval.putInt16(b.length);\n rval.putBytes(b);\n return rval;\n};\n\n/**\n * Creates a ServerKeyExchange message.\n *\n * @param c the connection.\n *\n * @return the ServerKeyExchange byte buffer.\n */\ntls.createServerKeyExchange = function(c) {\n // this implementation only supports RSA, no Diffie-Hellman support,\n // so this record is empty\n\n // determine length of the handshake message\n var length = 0;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n if(length > 0) {\n rval.putByte(tls.HandshakeType.server_key_exchange);\n rval.putInt24(length);\n }\n return rval;\n};\n\n/**\n * Gets the signed data used to verify a client-side certificate. See\n * tls.createCertificateVerify() for details.\n *\n * @param c the connection.\n * @param callback the callback to call once the signed data is ready.\n */\ntls.getClientSignature = function(c, callback) {\n // generate data to RSA encrypt\n var b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n b = b.getBytes();\n\n // create default signing function as necessary\n c.getSignature = c.getSignature || function(c, b, callback) {\n // do rsa encryption, call callback\n var privateKey = null;\n if(c.getPrivateKey) {\n try {\n privateKey = c.getPrivateKey(c, c.session.clientCertificate);\n privateKey = forge.pki.privateKeyFromPem(privateKey);\n } catch(ex) {\n c.error(c, {\n message: 'Could not get private key.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n }\n if(privateKey === null) {\n c.error(c, {\n message: 'No private key set.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n } else {\n b = privateKey.sign(b, null);\n }\n callback(c, b);\n };\n\n // get client signature\n c.getSignature(c, b, callback);\n};\n\n/**\n * Creates a CertificateVerify message.\n *\n * Meaning of this message:\n * This structure conveys the client's Diffie-Hellman public value\n * (Yc) if it was not already included in the client's certificate.\n * The encoding used for Yc is determined by the enumerated\n * PublicValueEncoding. This structure is a variant of the client\n * key exchange message, not a message in itself.\n *\n * When this message will be sent:\n * This message is used to provide explicit verification of a client\n * certificate. This message is only sent following a client\n * certificate that has signing capability (i.e. all certificates\n * except those containing fixed Diffie-Hellman parameters). When\n * sent, it will immediately follow the client key exchange message.\n *\n * struct {\n * Signature signature;\n * } CertificateVerify;\n *\n * CertificateVerify.signature.md5_hash\n * MD5(handshake_messages);\n *\n * Certificate.signature.sha_hash\n * SHA(handshake_messages);\n *\n * Here handshake_messages refers to all handshake messages sent or\n * received starting at client hello up to but not including this\n * message, including the type and length fields of the handshake\n * messages.\n *\n * select(SignatureAlgorithm) {\n * case anonymous: struct { };\n * case rsa:\n * digitally-signed struct {\n * opaque md5_hash[16];\n * opaque sha_hash[20];\n * };\n * case dsa:\n * digitally-signed struct {\n * opaque sha_hash[20];\n * };\n * } Signature;\n *\n * In digital signing, one-way hash functions are used as input for a\n * signing algorithm. A digitally-signed element is encoded as an opaque\n * vector <0..2^16-1>, where the length is specified by the signing\n * algorithm and key.\n *\n * In RSA signing, a 36-byte structure of two hashes (one SHA and one\n * MD5) is signed (encrypted with the private key). It is encoded with\n * PKCS #1 block type 0 or type 1 as described in [PKCS1].\n *\n * In DSS, the 20 bytes of the SHA hash are run directly through the\n * Digital Signing Algorithm with no additional hashing.\n *\n * @param c the connection.\n * @param signature the signature to include in the message.\n *\n * @return the CertificateVerify byte buffer.\n */\ntls.createCertificateVerify = function(c, signature) {\n /* Note: The signature will be stored in a \"digitally-signed\" opaque\n vector that has the length prefixed using 2 bytes, so include those\n 2 bytes in the handshake message length. This is done as a minor\n optimization instead of calling writeVector(). */\n\n // determine length of the handshake message\n var length = signature.length + 2;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate_verify);\n rval.putInt24(length);\n // add vector length bytes\n rval.putInt16(signature.length);\n rval.putBytes(signature);\n return rval;\n};\n\n/**\n * Creates a CertificateRequest message.\n *\n * @param c the connection.\n *\n * @return the CertificateRequest byte buffer.\n */\ntls.createCertificateRequest = function(c) {\n // TODO: support other certificate types\n var certTypes = forge.util.createBuffer();\n\n // common RSA certificate type\n certTypes.putByte(0x01);\n\n // add distinguished names from CA store\n var cAs = forge.util.createBuffer();\n for(var key in c.caStore.certs) {\n var cert = c.caStore.certs[key];\n var dn = forge.pki.distinguishedNameToAsn1(cert.subject);\n var byteBuffer = forge.asn1.toDer(dn);\n cAs.putInt16(byteBuffer.length());\n cAs.putBuffer(byteBuffer);\n }\n\n // TODO: TLS 1.2+ has a different format\n\n // determine length of the handshake message\n var length =\n 1 + certTypes.length() +\n 2 + cAs.length();\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate_request);\n rval.putInt24(length);\n writeVector(rval, 1, certTypes);\n writeVector(rval, 2, cAs);\n return rval;\n};\n\n/**\n * Creates a ServerHelloDone message.\n *\n * @param c the connection.\n *\n * @return the ServerHelloDone byte buffer.\n */\ntls.createServerHelloDone = function(c) {\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.server_hello_done);\n rval.putInt24(0);\n return rval;\n};\n\n/**\n * Creates a ChangeCipherSpec message.\n *\n * The change cipher spec protocol exists to signal transitions in\n * ciphering strategies. The protocol consists of a single message,\n * which is encrypted and compressed under the current (not the pending)\n * connection state. The message consists of a single byte of value 1.\n *\n * struct {\n * enum { change_cipher_spec(1), (255) } type;\n * } ChangeCipherSpec;\n *\n * @return the ChangeCipherSpec byte buffer.\n */\ntls.createChangeCipherSpec = function() {\n var rval = forge.util.createBuffer();\n rval.putByte(0x01);\n return rval;\n};\n\n/**\n * Creates a Finished message.\n *\n * struct {\n * opaque verify_data[12];\n * } Finished;\n *\n * verify_data\n * PRF(master_secret, finished_label, MD5(handshake_messages) +\n * SHA-1(handshake_messages)) [0..11];\n *\n * finished_label\n * For Finished messages sent by the client, the string \"client\n * finished\". For Finished messages sent by the server, the\n * string \"server finished\".\n *\n * handshake_messages\n * All of the data from all handshake messages up to but not\n * including this message. This is only data visible at the\n * handshake layer and does not include record layer headers.\n * This is the concatenation of all the Handshake structures as\n * defined in 7.4 exchanged thus far.\n *\n * @param c the connection.\n *\n * @return the Finished byte buffer.\n */\ntls.createFinished = function(c) {\n // generate verify_data\n var b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n\n // TODO: determine prf function and verify length for TLS 1.2\n var client = (c.entity === tls.ConnectionEnd.client);\n var sp = c.session.sp;\n var vdl = 12;\n var prf = prf_TLS1;\n var label = client ? 'client finished' : 'server finished';\n b = prf(sp.master_secret, label, b.getBytes(), vdl);\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.finished);\n rval.putInt24(b.length());\n rval.putBuffer(b);\n return rval;\n};\n\n/**\n * Creates a HeartbeatMessage (See RFC 6520).\n *\n * struct {\n * HeartbeatMessageType type;\n * uint16 payload_length;\n * opaque payload[HeartbeatMessage.payload_length];\n * opaque padding[padding_length];\n * } HeartbeatMessage;\n *\n * The total length of a HeartbeatMessage MUST NOT exceed 2^14 or\n * max_fragment_length when negotiated as defined in [RFC6066].\n *\n * type: The message type, either heartbeat_request or heartbeat_response.\n *\n * payload_length: The length of the payload.\n *\n * payload: The payload consists of arbitrary content.\n *\n * padding: The padding is random content that MUST be ignored by the\n * receiver. The length of a HeartbeatMessage is TLSPlaintext.length\n * for TLS and DTLSPlaintext.length for DTLS. Furthermore, the\n * length of the type field is 1 byte, and the length of the\n * payload_length is 2. Therefore, the padding_length is\n * TLSPlaintext.length - payload_length - 3 for TLS and\n * DTLSPlaintext.length - payload_length - 3 for DTLS. The\n * padding_length MUST be at least 16.\n *\n * The sender of a HeartbeatMessage MUST use a random padding of at\n * least 16 bytes. The padding of a received HeartbeatMessage message\n * MUST be ignored.\n *\n * If the payload_length of a received HeartbeatMessage is too large,\n * the received HeartbeatMessage MUST be discarded silently.\n *\n * @param c the connection.\n * @param type the tls.HeartbeatMessageType.\n * @param payload the heartbeat data to send as the payload.\n * @param [payloadLength] the payload length to use, defaults to the\n * actual payload length.\n *\n * @return the HeartbeatRequest byte buffer.\n */\ntls.createHeartbeat = function(type, payload, payloadLength) {\n if(typeof payloadLength === 'undefined') {\n payloadLength = payload.length;\n }\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(type); // heartbeat message type\n rval.putInt16(payloadLength); // payload length\n rval.putBytes(payload); // payload\n // padding\n var plaintextLength = rval.length();\n var paddingLength = Math.max(16, plaintextLength - payloadLength - 3);\n rval.putBytes(forge.random.getBytes(paddingLength));\n return rval;\n};\n\n/**\n * Fragments, compresses, encrypts, and queues a record for delivery.\n *\n * @param c the connection.\n * @param record the record to queue.\n */\ntls.queue = function(c, record) {\n // error during record creation\n if(!record) {\n return;\n }\n\n if(record.fragment.length() === 0) {\n if(record.type === tls.ContentType.handshake ||\n record.type === tls.ContentType.alert ||\n record.type === tls.ContentType.change_cipher_spec) {\n // Empty handshake, alert of change cipher spec messages are not allowed per the TLS specification and should not be sent.\n return;\n }\n }\n\n // if the record is a handshake record, update handshake hashes\n if(record.type === tls.ContentType.handshake) {\n var bytes = record.fragment.bytes();\n c.session.md5.update(bytes);\n c.session.sha1.update(bytes);\n bytes = null;\n }\n\n // handle record fragmentation\n var records;\n if(record.fragment.length() <= tls.MaxFragment) {\n records = [record];\n } else {\n // fragment data as long as it is too long\n records = [];\n var data = record.fragment.bytes();\n while(data.length > tls.MaxFragment) {\n records.push(tls.createRecord(c, {\n type: record.type,\n data: forge.util.createBuffer(data.slice(0, tls.MaxFragment))\n }));\n data = data.slice(tls.MaxFragment);\n }\n // add last record\n if(data.length > 0) {\n records.push(tls.createRecord(c, {\n type: record.type,\n data: forge.util.createBuffer(data)\n }));\n }\n }\n\n // compress and encrypt all fragmented records\n for(var i = 0; i < records.length && !c.fail; ++i) {\n // update the record using current write state\n var rec = records[i];\n var s = c.state.current.write;\n if(s.update(c, rec)) {\n // store record\n c.records.push(rec);\n }\n }\n};\n\n/**\n * Flushes all queued records to the output buffer and calls the\n * tlsDataReady() handler on the given connection.\n *\n * @param c the connection.\n *\n * @return true on success, false on failure.\n */\ntls.flush = function(c) {\n for(var i = 0; i < c.records.length; ++i) {\n var record = c.records[i];\n\n // add record header and fragment\n c.tlsData.putByte(record.type);\n c.tlsData.putByte(record.version.major);\n c.tlsData.putByte(record.version.minor);\n c.tlsData.putInt16(record.fragment.length());\n c.tlsData.putBuffer(c.records[i].fragment);\n }\n c.records = [];\n return c.tlsDataReady(c);\n};\n\n/**\n * Maps a pki.certificateError to a tls.Alert.Description.\n *\n * @param error the error to map.\n *\n * @return the alert description.\n */\nvar _certErrorToAlertDesc = function(error) {\n switch(error) {\n case true:\n return true;\n case forge.pki.certificateError.bad_certificate:\n return tls.Alert.Description.bad_certificate;\n case forge.pki.certificateError.unsupported_certificate:\n return tls.Alert.Description.unsupported_certificate;\n case forge.pki.certificateError.certificate_revoked:\n return tls.Alert.Description.certificate_revoked;\n case forge.pki.certificateError.certificate_expired:\n return tls.Alert.Description.certificate_expired;\n case forge.pki.certificateError.certificate_unknown:\n return tls.Alert.Description.certificate_unknown;\n case forge.pki.certificateError.unknown_ca:\n return tls.Alert.Description.unknown_ca;\n default:\n return tls.Alert.Description.bad_certificate;\n }\n};\n\n/**\n * Maps a tls.Alert.Description to a pki.certificateError.\n *\n * @param desc the alert description.\n *\n * @return the certificate error.\n */\nvar _alertDescToCertError = function(desc) {\n switch(desc) {\n case true:\n return true;\n case tls.Alert.Description.bad_certificate:\n return forge.pki.certificateError.bad_certificate;\n case tls.Alert.Description.unsupported_certificate:\n return forge.pki.certificateError.unsupported_certificate;\n case tls.Alert.Description.certificate_revoked:\n return forge.pki.certificateError.certificate_revoked;\n case tls.Alert.Description.certificate_expired:\n return forge.pki.certificateError.certificate_expired;\n case tls.Alert.Description.certificate_unknown:\n return forge.pki.certificateError.certificate_unknown;\n case tls.Alert.Description.unknown_ca:\n return forge.pki.certificateError.unknown_ca;\n default:\n return forge.pki.certificateError.bad_certificate;\n }\n};\n\n/**\n * Verifies a certificate chain against the given connection's\n * Certificate Authority store.\n *\n * @param c the TLS connection.\n * @param chain the certificate chain to verify, with the root or highest\n * authority at the end.\n *\n * @return true if successful, false if not.\n */\ntls.verifyCertificateChain = function(c, chain) {\n try {\n // Make a copy of c.verifyOptions so that we can modify options.verify\n // without modifying c.verifyOptions.\n var options = {};\n for (var key in c.verifyOptions) {\n options[key] = c.verifyOptions[key];\n }\n\n options.verify = function(vfd, depth, chain) {\n // convert pki.certificateError to tls alert description\n var desc = _certErrorToAlertDesc(vfd);\n\n // call application callback\n var ret = c.verify(c, vfd, depth, chain);\n if(ret !== true) {\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n // throw custom error\n var error = new Error('The application rejected the certificate.');\n error.send = true;\n error.alert = {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n };\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.alert) {\n error.alert.description = ret.alert;\n }\n throw error;\n }\n\n // convert tls alert description to pki.certificateError\n if(ret !== vfd) {\n ret = _alertDescToCertError(ret);\n }\n }\n\n return ret;\n };\n\n // verify chain\n forge.pki.verifyCertificateChain(c.caStore, chain, options);\n } catch(ex) {\n // build tls error if not already customized\n var err = ex;\n if(typeof err !== 'object' || forge.util.isArray(err)) {\n err = {\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: _certErrorToAlertDesc(ex)\n }\n };\n }\n if(!('send' in err)) {\n err.send = true;\n }\n if(!('alert' in err)) {\n err.alert = {\n level: tls.Alert.Level.fatal,\n description: _certErrorToAlertDesc(err.error)\n };\n }\n\n // send error\n c.error(c, err);\n }\n\n return !c.fail;\n};\n\n/**\n * Creates a new TLS session cache.\n *\n * @param cache optional map of session ID to cached session.\n * @param capacity the maximum size for the cache (default: 100).\n *\n * @return the new TLS session cache.\n */\ntls.createSessionCache = function(cache, capacity) {\n var rval = null;\n\n // assume input is already a session cache object\n if(cache && cache.getSession && cache.setSession && cache.order) {\n rval = cache;\n } else {\n // create cache\n rval = {};\n rval.cache = cache || {};\n rval.capacity = Math.max(capacity || 100, 1);\n rval.order = [];\n\n // store order for sessions, delete session overflow\n for(var key in cache) {\n if(rval.order.length <= capacity) {\n rval.order.push(key);\n } else {\n delete cache[key];\n }\n }\n\n // get a session from a session ID (or get any session)\n rval.getSession = function(sessionId) {\n var session = null;\n var key = null;\n\n // if session ID provided, use it\n if(sessionId) {\n key = forge.util.bytesToHex(sessionId);\n } else if(rval.order.length > 0) {\n // get first session from cache\n key = rval.order[0];\n }\n\n if(key !== null && key in rval.cache) {\n // get cached session and remove from cache\n session = rval.cache[key];\n delete rval.cache[key];\n for(var i in rval.order) {\n if(rval.order[i] === key) {\n rval.order.splice(i, 1);\n break;\n }\n }\n }\n\n return session;\n };\n\n // set a session in the cache\n rval.setSession = function(sessionId, session) {\n // remove session from cache if at capacity\n if(rval.order.length === rval.capacity) {\n var key = rval.order.shift();\n delete rval.cache[key];\n }\n // add session to cache\n var key = forge.util.bytesToHex(sessionId);\n rval.order.push(key);\n rval.cache[key] = session;\n };\n }\n\n return rval;\n};\n\n/**\n * Creates a new TLS connection.\n *\n * See public createConnection() docs for more details.\n *\n * @param options the options for this connection.\n *\n * @return the new TLS connection.\n */\ntls.createConnection = function(options) {\n var caStore = null;\n if(options.caStore) {\n // if CA store is an array, convert it to a CA store object\n if(forge.util.isArray(options.caStore)) {\n caStore = forge.pki.createCaStore(options.caStore);\n } else {\n caStore = options.caStore;\n }\n } else {\n // create empty CA store\n caStore = forge.pki.createCaStore();\n }\n\n // setup default cipher suites\n var cipherSuites = options.cipherSuites || null;\n if(cipherSuites === null) {\n cipherSuites = [];\n for(var key in tls.CipherSuites) {\n cipherSuites.push(tls.CipherSuites[key]);\n }\n }\n\n // set default entity\n var entity = (options.server || false) ?\n tls.ConnectionEnd.server : tls.ConnectionEnd.client;\n\n // create session cache if requested\n var sessionCache = options.sessionCache ?\n tls.createSessionCache(options.sessionCache) : null;\n\n // create TLS connection\n var c = {\n version: {major: tls.Version.major, minor: tls.Version.minor},\n entity: entity,\n sessionId: options.sessionId,\n caStore: caStore,\n sessionCache: sessionCache,\n cipherSuites: cipherSuites,\n connected: options.connected,\n virtualHost: options.virtualHost || null,\n verifyClient: options.verifyClient || false,\n verify: options.verify || function(cn, vfd, dpth, cts) {return vfd;},\n verifyOptions: options.verifyOptions || {},\n getCertificate: options.getCertificate || null,\n getPrivateKey: options.getPrivateKey || null,\n getSignature: options.getSignature || null,\n input: forge.util.createBuffer(),\n tlsData: forge.util.createBuffer(),\n data: forge.util.createBuffer(),\n tlsDataReady: options.tlsDataReady,\n dataReady: options.dataReady,\n heartbeatReceived: options.heartbeatReceived,\n closed: options.closed,\n error: function(c, ex) {\n // set origin if not set\n ex.origin = ex.origin ||\n ((c.entity === tls.ConnectionEnd.client) ? 'client' : 'server');\n\n // send TLS alert\n if(ex.send) {\n tls.queue(c, tls.createAlert(c, ex.alert));\n tls.flush(c);\n }\n\n // error is fatal by default\n var fatal = (ex.fatal !== false);\n if(fatal) {\n // set fail flag\n c.fail = true;\n }\n\n // call error handler first\n options.error(c, ex);\n\n if(fatal) {\n // fatal error, close connection, do not clear fail\n c.close(false);\n }\n },\n deflate: options.deflate || null,\n inflate: options.inflate || null\n };\n\n /**\n * Resets a closed TLS connection for reuse. Called in c.close().\n *\n * @param clearFail true to clear the fail flag (default: true).\n */\n c.reset = function(clearFail) {\n c.version = {major: tls.Version.major, minor: tls.Version.minor};\n c.record = null;\n c.session = null;\n c.peerCertificate = null;\n c.state = {\n pending: null,\n current: null\n };\n c.expect = (c.entity === tls.ConnectionEnd.client) ? SHE : CHE;\n c.fragmented = null;\n c.records = [];\n c.open = false;\n c.handshakes = 0;\n c.handshaking = false;\n c.isConnected = false;\n c.fail = !(clearFail || typeof(clearFail) === 'undefined');\n c.input.clear();\n c.tlsData.clear();\n c.data.clear();\n c.state.current = tls.createConnectionState(c);\n };\n\n // do initial reset of connection\n c.reset();\n\n /**\n * Updates the current TLS engine state based on the given record.\n *\n * @param c the TLS connection.\n * @param record the TLS record to act on.\n */\n var _update = function(c, record) {\n // get record handler (align type in table by subtracting lowest)\n var aligned = record.type - tls.ContentType.change_cipher_spec;\n var handlers = ctTable[c.entity][c.expect];\n if(aligned in handlers) {\n handlers[aligned](c, record);\n } else {\n // unexpected record\n tls.handleUnexpected(c, record);\n }\n };\n\n /**\n * Reads the record header and initializes the next record on the given\n * connection.\n *\n * @param c the TLS connection with the next record.\n *\n * @return 0 if the input data could be processed, otherwise the\n * number of bytes required for data to be processed.\n */\n var _readRecordHeader = function(c) {\n var rval = 0;\n\n // get input buffer and its length\n var b = c.input;\n var len = b.length();\n\n // need at least 5 bytes to initialize a record\n if(len < 5) {\n rval = 5 - len;\n } else {\n // enough bytes for header\n // initialize record\n c.record = {\n type: b.getByte(),\n version: {\n major: b.getByte(),\n minor: b.getByte()\n },\n length: b.getInt16(),\n fragment: forge.util.createBuffer(),\n ready: false\n };\n\n // check record version\n var compatibleVersion = (c.record.version.major === c.version.major);\n if(compatibleVersion && c.session && c.session.version) {\n // session version already set, require same minor version\n compatibleVersion = (c.record.version.minor === c.version.minor);\n }\n if(!compatibleVersion) {\n c.error(c, {\n message: 'Incompatible TLS version.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n }\n\n return rval;\n };\n\n /**\n * Reads the next record's contents and appends its message to any\n * previously fragmented message.\n *\n * @param c the TLS connection with the next record.\n *\n * @return 0 if the input data could be processed, otherwise the\n * number of bytes required for data to be processed.\n */\n var _readRecord = function(c) {\n var rval = 0;\n\n // ensure there is enough input data to get the entire record\n var b = c.input;\n var len = b.length();\n if(len < c.record.length) {\n // not enough data yet, return how much is required\n rval = c.record.length - len;\n } else {\n // there is enough data to parse the pending record\n // fill record fragment and compact input buffer\n c.record.fragment.putBytes(b.getBytes(c.record.length));\n b.compact();\n\n // update record using current read state\n var s = c.state.current.read;\n if(s.update(c, c.record)) {\n // see if there is a previously fragmented message that the\n // new record's message fragment should be appended to\n if(c.fragmented !== null) {\n // if the record type matches a previously fragmented\n // record, append the record fragment to it\n if(c.fragmented.type === c.record.type) {\n // concatenate record fragments\n c.fragmented.fragment.putBuffer(c.record.fragment);\n c.record = c.fragmented;\n } else {\n // error, invalid fragmented record\n c.error(c, {\n message: 'Invalid fragmented record.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description:\n tls.Alert.Description.unexpected_message\n }\n });\n }\n }\n\n // record is now ready\n c.record.ready = true;\n }\n }\n\n return rval;\n };\n\n /**\n * Performs a handshake using the TLS Handshake Protocol, as a client.\n *\n * This method should only be called if the connection is in client mode.\n *\n * @param sessionId the session ID to use, null to start a new one.\n */\n c.handshake = function(sessionId) {\n // error to call this in non-client mode\n if(c.entity !== tls.ConnectionEnd.client) {\n // not fatal error\n c.error(c, {\n message: 'Cannot initiate handshake as a server.',\n fatal: false\n });\n } else if(c.handshaking) {\n // handshake is already in progress, fail but not fatal error\n c.error(c, {\n message: 'Handshake already in progress.',\n fatal: false\n });\n } else {\n // clear fail flag on reuse\n if(c.fail && !c.open && c.handshakes === 0) {\n c.fail = false;\n }\n\n // now handshaking\n c.handshaking = true;\n\n // default to blank (new session)\n sessionId = sessionId || '';\n\n // if a session ID was specified, try to find it in the cache\n var session = null;\n if(sessionId.length > 0) {\n if(c.sessionCache) {\n session = c.sessionCache.getSession(sessionId);\n }\n\n // matching session not found in cache, clear session ID\n if(session === null) {\n sessionId = '';\n }\n }\n\n // no session given, grab a session from the cache, if available\n if(sessionId.length === 0 && c.sessionCache) {\n session = c.sessionCache.getSession();\n if(session !== null) {\n sessionId = session.id;\n }\n }\n\n // set up session\n c.session = {\n id: sessionId,\n version: null,\n cipherSuite: null,\n compressionMethod: null,\n serverCertificate: null,\n certificateRequest: null,\n clientCertificate: null,\n sp: {},\n md5: forge.md.md5.create(),\n sha1: forge.md.sha1.create()\n };\n\n // use existing session information\n if(session) {\n // only update version on connection, session version not yet set\n c.version = session.version;\n c.session.sp = session.sp;\n }\n\n // generate new client random\n c.session.sp.client_random = tls.createRandom().getBytes();\n\n // connection now open\n c.open = true;\n\n // send hello\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createClientHello(c)\n }));\n tls.flush(c);\n }\n };\n\n /**\n * Called when TLS protocol data has been received from somewhere and should\n * be processed by the TLS engine.\n *\n * @param data the TLS protocol data, as a string, to process.\n *\n * @return 0 if the data could be processed, otherwise the number of bytes\n * required for data to be processed.\n */\n c.process = function(data) {\n var rval = 0;\n\n // buffer input data\n if(data) {\n c.input.putBytes(data);\n }\n\n // process next record if no failure, process will be called after\n // each record is handled (since handling can be asynchronous)\n if(!c.fail) {\n // reset record if ready and now empty\n if(c.record !== null &&\n c.record.ready && c.record.fragment.isEmpty()) {\n c.record = null;\n }\n\n // if there is no pending record, try to read record header\n if(c.record === null) {\n rval = _readRecordHeader(c);\n }\n\n // read the next record (if record not yet ready)\n if(!c.fail && c.record !== null && !c.record.ready) {\n rval = _readRecord(c);\n }\n\n // record ready to be handled, update engine state\n if(!c.fail && c.record !== null && c.record.ready) {\n _update(c, c.record);\n }\n }\n\n return rval;\n };\n\n /**\n * Requests that application data be packaged into a TLS record. The\n * tlsDataReady handler will be called when the TLS record(s) have been\n * prepared.\n *\n * @param data the application data, as a raw 'binary' encoded string, to\n * be sent; to send utf-16/utf-8 string data, use the return value\n * of util.encodeUtf8(str).\n *\n * @return true on success, false on failure.\n */\n c.prepare = function(data) {\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.application_data,\n data: forge.util.createBuffer(data)\n }));\n return tls.flush(c);\n };\n\n /**\n * Requests that a heartbeat request be packaged into a TLS record for\n * transmission. The tlsDataReady handler will be called when TLS record(s)\n * have been prepared.\n *\n * When a heartbeat response has been received, the heartbeatReceived\n * handler will be called with the matching payload. This handler can\n * be used to clear a retransmission timer, etc.\n *\n * @param payload the heartbeat data to send as the payload in the message.\n * @param [payloadLength] the payload length to use, defaults to the\n * actual payload length.\n *\n * @return true on success, false on failure.\n */\n c.prepareHeartbeatRequest = function(payload, payloadLength) {\n if(payload instanceof forge.util.ByteBuffer) {\n payload = payload.bytes();\n }\n if(typeof payloadLength === 'undefined') {\n payloadLength = payload.length;\n }\n c.expectedHeartbeatPayload = payload;\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.heartbeat,\n data: tls.createHeartbeat(\n tls.HeartbeatMessageType.heartbeat_request, payload, payloadLength)\n }));\n return tls.flush(c);\n };\n\n /**\n * Closes the connection (sends a close_notify alert).\n *\n * @param clearFail true to clear the fail flag (default: true).\n */\n c.close = function(clearFail) {\n // save session if connection didn't fail\n if(!c.fail && c.sessionCache && c.session) {\n // only need to preserve session ID, version, and security params\n var session = {\n id: c.session.id,\n version: c.session.version,\n sp: c.session.sp\n };\n session.sp.keys = null;\n c.sessionCache.setSession(session.id, session);\n }\n\n if(c.open) {\n // connection no longer open, clear input\n c.open = false;\n c.input.clear();\n\n // if connected or handshaking, send an alert\n if(c.isConnected || c.handshaking) {\n c.isConnected = c.handshaking = false;\n\n // send close_notify alert\n tls.queue(c, tls.createAlert(c, {\n level: tls.Alert.Level.warning,\n description: tls.Alert.Description.close_notify\n }));\n tls.flush(c);\n }\n\n // call handler\n c.closed(c);\n }\n\n // reset TLS connection, do not clear fail flag\n c.reset(clearFail);\n };\n\n return c;\n};\n\n/* TLS API */\nmodule.exports = forge.tls = forge.tls || {};\n\n// expose non-functions\nfor(var key in tls) {\n if(typeof tls[key] !== 'function') {\n forge.tls[key] = tls[key];\n }\n}\n\n// expose prf_tls1 for testing\nforge.tls.prf_tls1 = prf_TLS1;\n\n// expose sha1 hmac method\nforge.tls.hmac_sha1 = hmac_sha1;\n\n// expose session cache creation\nforge.tls.createSessionCache = tls.createSessionCache;\n\n/**\n * Creates a new TLS connection. This does not make any assumptions about the\n * transport layer that TLS is working on top of, ie: it does not assume there\n * is a TCP/IP connection or establish one. A TLS connection is totally\n * abstracted away from the layer is runs on top of, it merely establishes a\n * secure channel between a client\" and a \"server\".\n *\n * A TLS connection contains 4 connection states: pending read and write, and\n * current read and write.\n *\n * At initialization, the current read and write states will be null. Only once\n * the security parameters have been set and the keys have been generated can\n * the pending states be converted into current states. Current states will be\n * updated for each record processed.\n *\n * A custom certificate verify callback may be provided to check information\n * like the common name on the server's certificate. It will be called for\n * every certificate in the chain. It has the following signature:\n *\n * variable func(c, certs, index, preVerify)\n * Where:\n * c The TLS connection\n * verified Set to true if certificate was verified, otherwise the alert\n * tls.Alert.Description for why the certificate failed.\n * depth The current index in the chain, where 0 is the server's cert.\n * certs The certificate chain, *NOTE* if the server was anonymous then\n * the chain will be empty.\n *\n * The function returns true on success and on failure either the appropriate\n * tls.Alert.Description or an object with 'alert' set to the appropriate\n * tls.Alert.Description and 'message' set to a custom error message. If true\n * is not returned then the connection will abort using, in order of\n * availability, first the returned alert description, second the preVerify\n * alert description, and lastly the default 'bad_certificate'.\n *\n * There are three callbacks that can be used to make use of client-side\n * certificates where each takes the TLS connection as the first parameter:\n *\n * getCertificate(conn, hint)\n * The second parameter is a hint as to which certificate should be\n * returned. If the connection entity is a client, then the hint will be\n * the CertificateRequest message from the server that is part of the\n * TLS protocol. If the connection entity is a server, then it will be\n * the servername list provided via an SNI extension the ClientHello, if\n * one was provided (empty array if not). The hint can be examined to\n * determine which certificate to use (advanced). Most implementations\n * will just return a certificate. The return value must be a\n * PEM-formatted certificate or an array of PEM-formatted certificates\n * that constitute a certificate chain, with the first in the array/chain\n * being the client's certificate.\n * getPrivateKey(conn, certificate)\n * The second parameter is an forge.pki X.509 certificate object that\n * is associated with the requested private key. The return value must\n * be a PEM-formatted private key.\n * getSignature(conn, bytes, callback)\n * This callback can be used instead of getPrivateKey if the private key\n * is not directly accessible in javascript or should not be. For\n * instance, a secure external web service could provide the signature\n * in exchange for appropriate credentials. The second parameter is a\n * string of bytes to be signed that are part of the TLS protocol. These\n * bytes are used to verify that the private key for the previously\n * provided client-side certificate is accessible to the client. The\n * callback is a function that takes 2 parameters, the TLS connection\n * and the RSA encrypted (signed) bytes as a string. This callback must\n * be called once the signature is ready.\n *\n * @param options the options for this connection:\n * server: true if the connection is server-side, false for client.\n * sessionId: a session ID to reuse, null for a new connection.\n * caStore: an array of certificates to trust.\n * sessionCache: a session cache to use.\n * cipherSuites: an optional array of cipher suites to use,\n * see tls.CipherSuites.\n * connected: function(conn) called when the first handshake completes.\n * virtualHost: the virtual server name to use in a TLS SNI extension.\n * verifyClient: true to require a client certificate in server mode,\n * 'optional' to request one, false not to (default: false).\n * verify: a handler used to custom verify certificates in the chain.\n * verifyOptions: an object with options for the certificate chain validation.\n * See documentation of pki.verifyCertificateChain for possible options.\n * verifyOptions.verify is ignored. If you wish to specify a verify handler\n * use the verify key.\n * getCertificate: an optional callback used to get a certificate or\n * a chain of certificates (as an array).\n * getPrivateKey: an optional callback used to get a private key.\n * getSignature: an optional callback used to get a signature.\n * tlsDataReady: function(conn) called when TLS protocol data has been\n * prepared and is ready to be used (typically sent over a socket\n * connection to its destination), read from conn.tlsData buffer.\n * dataReady: function(conn) called when application data has\n * been parsed from a TLS record and should be consumed by the\n * application, read from conn.data buffer.\n * closed: function(conn) called when the connection has been closed.\n * error: function(conn, error) called when there was an error.\n * deflate: function(inBytes) if provided, will deflate TLS records using\n * the deflate algorithm if the server supports it.\n * inflate: function(inBytes) if provided, will inflate TLS records using\n * the deflate algorithm if the server supports it.\n *\n * @return the new TLS connection.\n */\nforge.tls.createConnection = tls.createConnection;\n","/**\n * Utility functions for web applications.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2018 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nvar baseN = require('./baseN');\n\n/* Utilities API */\nvar util = module.exports = forge.util = forge.util || {};\n\n// define setImmediate and nextTick\n(function() {\n // use native nextTick (unless we're in webpack)\n // webpack (or better node-libs-browser polyfill) sets process.browser.\n // this way we can detect webpack properly\n if(typeof process !== 'undefined' && process.nextTick && !process.browser) {\n util.nextTick = process.nextTick;\n if(typeof setImmediate === 'function') {\n util.setImmediate = setImmediate;\n } else {\n // polyfill setImmediate with nextTick, older versions of node\n // (those w/o setImmediate) won't totally starve IO\n util.setImmediate = util.nextTick;\n }\n return;\n }\n\n // polyfill nextTick with native setImmediate\n if(typeof setImmediate === 'function') {\n util.setImmediate = function() { return setImmediate.apply(undefined, arguments); };\n util.nextTick = function(callback) {\n return setImmediate(callback);\n };\n return;\n }\n\n /* Note: A polyfill upgrade pattern is used here to allow combining\n polyfills. For example, MutationObserver is fast, but blocks UI updates,\n so it needs to allow UI updates periodically, so it falls back on\n postMessage or setTimeout. */\n\n // polyfill with setTimeout\n util.setImmediate = function(callback) {\n setTimeout(callback, 0);\n };\n\n // upgrade polyfill to use postMessage\n if(typeof window !== 'undefined' &&\n typeof window.postMessage === 'function') {\n var msg = 'forge.setImmediate';\n var callbacks = [];\n util.setImmediate = function(callback) {\n callbacks.push(callback);\n // only send message when one hasn't been sent in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n window.postMessage(msg, '*');\n }\n };\n function handler(event) {\n if(event.source === window && event.data === msg) {\n event.stopPropagation();\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }\n }\n window.addEventListener('message', handler, true);\n }\n\n // upgrade polyfill to use MutationObserver\n if(typeof MutationObserver !== 'undefined') {\n // polyfill with MutationObserver\n var now = Date.now();\n var attr = true;\n var div = document.createElement('div');\n var callbacks = [];\n new MutationObserver(function() {\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }).observe(div, {attributes: true});\n var oldSetImmediate = util.setImmediate;\n util.setImmediate = function(callback) {\n if(Date.now() - now > 15) {\n now = Date.now();\n oldSetImmediate(callback);\n } else {\n callbacks.push(callback);\n // only trigger observer when it hasn't been triggered in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n div.setAttribute('a', attr = !attr);\n }\n }\n };\n }\n\n util.nextTick = util.setImmediate;\n})();\n\n// check if running under Node.js\nutil.isNodejs =\n typeof process !== 'undefined' && process.versions && process.versions.node;\n\n\n// 'self' will also work in Web Workers (instance of WorkerGlobalScope) while\n// it will point to `window` in the main thread.\n// To remain compatible with older browsers, we fall back to 'window' if 'self'\n// is not available.\nutil.globalScope = (function() {\n if(util.isNodejs) {\n return global;\n }\n\n return typeof self === 'undefined' ? window : self;\n})();\n\n// define isArray\nutil.isArray = Array.isArray || function(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n};\n\n// define isArrayBuffer\nutil.isArrayBuffer = function(x) {\n return typeof ArrayBuffer !== 'undefined' && x instanceof ArrayBuffer;\n};\n\n// define isArrayBufferView\nutil.isArrayBufferView = function(x) {\n return x && util.isArrayBuffer(x.buffer) && x.byteLength !== undefined;\n};\n\n/**\n * Ensure a bits param is 8, 16, 24, or 32. Used to validate input for\n * algorithms where bit manipulation, JavaScript limitations, and/or algorithm\n * design only allow for byte operations of a limited size.\n *\n * @param n number of bits.\n *\n * Throw Error if n invalid.\n */\nfunction _checkBitsParam(n) {\n if(!(n === 8 || n === 16 || n === 24 || n === 32)) {\n throw new Error('Only 8, 16, 24, or 32 bits supported: ' + n);\n }\n}\n\n// TODO: set ByteBuffer to best available backing\nutil.ByteBuffer = ByteStringBuffer;\n\n/** Buffer w/BinaryString backing */\n\n/**\n * Constructor for a binary string backed byte buffer.\n *\n * @param [b] the bytes to wrap (either encoded as string, one byte per\n * character, or as an ArrayBuffer or Typed Array).\n */\nfunction ByteStringBuffer(b) {\n // TODO: update to match DataBuffer API\n\n // the data in this buffer\n this.data = '';\n // the pointer for reading from this buffer\n this.read = 0;\n\n if(typeof b === 'string') {\n this.data = b;\n } else if(util.isArrayBuffer(b) || util.isArrayBufferView(b)) {\n if(typeof Buffer !== 'undefined' && b instanceof Buffer) {\n this.data = b.toString('binary');\n } else {\n // convert native buffer to forge buffer\n // FIXME: support native buffers internally instead\n var arr = new Uint8Array(b);\n try {\n this.data = String.fromCharCode.apply(null, arr);\n } catch(e) {\n for(var i = 0; i < arr.length; ++i) {\n this.putByte(arr[i]);\n }\n }\n }\n } else if(b instanceof ByteStringBuffer ||\n (typeof b === 'object' && typeof b.data === 'string' &&\n typeof b.read === 'number')) {\n // copy existing buffer\n this.data = b.data;\n this.read = b.read;\n }\n\n // used for v8 optimization\n this._constructedStringLength = 0;\n}\nutil.ByteStringBuffer = ByteStringBuffer;\n\n/* Note: This is an optimization for V8-based browsers. When V8 concatenates\n a string, the strings are only joined logically using a \"cons string\" or\n \"constructed/concatenated string\". These containers keep references to one\n another and can result in very large memory usage. For example, if a 2MB\n string is constructed by concatenating 4 bytes together at a time, the\n memory usage will be ~44MB; so ~22x increase. The strings are only joined\n together when an operation requiring their joining takes place, such as\n substr(). This function is called when adding data to this buffer to ensure\n these types of strings are periodically joined to reduce the memory\n footprint. */\nvar _MAX_CONSTRUCTED_STRING_LENGTH = 4096;\nutil.ByteStringBuffer.prototype._optimizeConstructedString = function(x) {\n this._constructedStringLength += x;\n if(this._constructedStringLength > _MAX_CONSTRUCTED_STRING_LENGTH) {\n // this substr() should cause the constructed string to join\n this.data.substr(0, 1);\n this._constructedStringLength = 0;\n }\n};\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.ByteStringBuffer.prototype.length = function() {\n return this.data.length - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.ByteStringBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putByte = function(b) {\n return this.putBytes(String.fromCharCode(b));\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.fillWithByte = function(b, n) {\n b = String.fromCharCode(b);\n var d = this.data;\n while(n > 0) {\n if(n & 1) {\n d += b;\n }\n n >>>= 1;\n if(n > 0) {\n b += b;\n }\n }\n this.data = d;\n this._optimizeConstructedString(n);\n return this;\n};\n\n/**\n * Puts bytes in this buffer.\n *\n * @param bytes the bytes (as a binary encoded string) to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBytes = function(bytes) {\n this.data += bytes;\n this._optimizeConstructedString(bytes.length);\n return this;\n};\n\n/**\n * Puts a UTF-16 encoded string into this buffer.\n *\n * @param str the string to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putString = function(str) {\n return this.putBytes(util.encodeUtf8(str));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 24 & 0xFF));\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n var bytes = '';\n do {\n n -= 8;\n bytes += String.fromCharCode((i >> n) & 0xFF);\n } while(n > 0);\n return this.putBytes(bytes);\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putSignedInt = function(i, n) {\n // putInt checks n\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBuffer = function(buffer) {\n return this.putBytes(buffer.getBytes());\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.getByte = function() {\n return this.data.charCodeAt(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 8 ^\n this.data.charCodeAt(this.read + 1));\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 16 ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 24 ^\n this.data.charCodeAt(this.read + 1) << 16 ^\n this.data.charCodeAt(this.read + 2) << 8 ^\n this.data.charCodeAt(this.read + 3));\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16 ^\n this.data.charCodeAt(this.read + 3) << 24);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by ceil(n/8).\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.charCodeAt(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer. Note that the resulting string is binary encoded (in node.js this\n * encoding is referred to as `binary`, it is *not* `utf8`).\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.ByteStringBuffer.prototype.getBytes = function(count) {\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.ByteStringBuffer.prototype.bytes = function(count) {\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.at = function(i) {\n return this.data.charCodeAt(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.setAt = function(i, b) {\n this.data = this.data.substr(0, this.read + i) +\n String.fromCharCode(b) +\n this.data.substr(this.read + i + 1);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.ByteStringBuffer.prototype.last = function() {\n return this.data.charCodeAt(this.data.length - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.ByteStringBuffer.prototype.copy = function() {\n var c = util.createBuffer(this.data);\n c.read = this.read;\n return c;\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.compact = function() {\n if(this.read > 0) {\n this.data = this.data.slice(this.read);\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.clear = function() {\n this.data = '';\n this.read = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.truncate = function(count) {\n var len = Math.max(0, this.length() - count);\n this.data = this.data.substr(this.read, len);\n this.read = 0;\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.ByteStringBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.length; ++i) {\n var b = this.data.charCodeAt(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a UTF-16 string (standard JavaScript string).\n *\n * @return a UTF-16 string.\n */\nutil.ByteStringBuffer.prototype.toString = function() {\n return util.decodeUtf8(this.bytes());\n};\n\n/** End Buffer w/BinaryString backing */\n\n/** Buffer w/UInt8Array backing */\n\n/**\n * FIXME: Experimental. Do not use yet.\n *\n * Constructor for an ArrayBuffer-backed byte buffer.\n *\n * The buffer may be constructed from a string, an ArrayBuffer, DataView, or a\n * TypedArray.\n *\n * If a string is given, its encoding should be provided as an option,\n * otherwise it will default to 'binary'. A 'binary' string is encoded such\n * that each character is one byte in length and size.\n *\n * If an ArrayBuffer, DataView, or TypedArray is given, it will be used\n * *directly* without any copying. Note that, if a write to the buffer requires\n * more space, the buffer will allocate a new backing ArrayBuffer to\n * accommodate. The starting read and write offsets for the buffer may be\n * given as options.\n *\n * @param [b] the initial bytes for this buffer.\n * @param options the options to use:\n * [readOffset] the starting read offset to use (default: 0).\n * [writeOffset] the starting write offset to use (default: the\n * length of the first parameter).\n * [growSize] the minimum amount, in bytes, to grow the buffer by to\n * accommodate writes (default: 1024).\n * [encoding] the encoding ('binary', 'utf8', 'utf16', 'hex') for the\n * first parameter, if it is a string (default: 'binary').\n */\nfunction DataBuffer(b, options) {\n // default options\n options = options || {};\n\n // pointers for read from/write to buffer\n this.read = options.readOffset || 0;\n this.growSize = options.growSize || 1024;\n\n var isArrayBuffer = util.isArrayBuffer(b);\n var isArrayBufferView = util.isArrayBufferView(b);\n if(isArrayBuffer || isArrayBufferView) {\n // use ArrayBuffer directly\n if(isArrayBuffer) {\n this.data = new DataView(b);\n } else {\n // TODO: adjust read/write offset based on the type of view\n // or specify that this must be done in the options ... that the\n // offsets are byte-based\n this.data = new DataView(b.buffer, b.byteOffset, b.byteLength);\n }\n this.write = ('writeOffset' in options ?\n options.writeOffset : this.data.byteLength);\n return;\n }\n\n // initialize to empty array buffer and add any given bytes using putBytes\n this.data = new DataView(new ArrayBuffer(0));\n this.write = 0;\n\n if(b !== null && b !== undefined) {\n this.putBytes(b);\n }\n\n if('writeOffset' in options) {\n this.write = options.writeOffset;\n }\n}\nutil.DataBuffer = DataBuffer;\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.DataBuffer.prototype.length = function() {\n return this.write - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.DataBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Ensures this buffer has enough empty space to accommodate the given number\n * of bytes. An optional parameter may be given that indicates a minimum\n * amount to grow the buffer if necessary. If the parameter is not given,\n * the buffer will be grown by some previously-specified default amount\n * or heuristic.\n *\n * @param amount the number of bytes to accommodate.\n * @param [growSize] the minimum amount, in bytes, to grow the buffer by if\n * necessary.\n */\nutil.DataBuffer.prototype.accommodate = function(amount, growSize) {\n if(this.length() >= amount) {\n return this;\n }\n growSize = Math.max(growSize || this.growSize, amount);\n\n // grow buffer\n var src = new Uint8Array(\n this.data.buffer, this.data.byteOffset, this.data.byteLength);\n var dst = new Uint8Array(this.length() + growSize);\n dst.set(src);\n this.data = new DataView(dst.buffer);\n\n return this;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putByte = function(b) {\n this.accommodate(1);\n this.data.setUint8(this.write++, b);\n return this;\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.fillWithByte = function(b, n) {\n this.accommodate(n);\n for(var i = 0; i < n; ++i) {\n this.data.setUint8(b);\n }\n return this;\n};\n\n/**\n * Puts bytes in this buffer. The bytes may be given as a string, an\n * ArrayBuffer, a DataView, or a TypedArray.\n *\n * @param bytes the bytes to put.\n * @param [encoding] the encoding for the first parameter ('binary', 'utf8',\n * 'utf16', 'hex'), if it is a string (default: 'binary').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBytes = function(bytes, encoding) {\n if(util.isArrayBufferView(bytes)) {\n var src = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var len = src.byteLength - src.byteOffset;\n this.accommodate(len);\n var dst = new Uint8Array(this.data.buffer, this.write);\n dst.set(src);\n this.write += len;\n return this;\n }\n\n if(util.isArrayBuffer(bytes)) {\n var src = new Uint8Array(bytes);\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(this.data.buffer);\n dst.set(src, this.write);\n this.write += src.byteLength;\n return this;\n }\n\n // bytes is a util.DataBuffer or equivalent\n if(bytes instanceof util.DataBuffer ||\n (typeof bytes === 'object' &&\n typeof bytes.read === 'number' && typeof bytes.write === 'number' &&\n util.isArrayBufferView(bytes.data))) {\n var src = new Uint8Array(bytes.data.byteLength, bytes.read, bytes.length());\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(bytes.data.byteLength, this.write);\n dst.set(src);\n this.write += src.byteLength;\n return this;\n }\n\n if(bytes instanceof util.ByteStringBuffer) {\n // copy binary string and process as the same as a string parameter below\n bytes = bytes.data;\n encoding = 'binary';\n }\n\n // string conversion\n encoding = encoding || 'binary';\n if(typeof bytes === 'string') {\n var view;\n\n // decode from string\n if(encoding === 'hex') {\n this.accommodate(Math.ceil(bytes.length / 2));\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.hex.decode(bytes, view, this.write);\n return this;\n }\n if(encoding === 'base64') {\n this.accommodate(Math.ceil(bytes.length / 4) * 3);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.base64.decode(bytes, view, this.write);\n return this;\n }\n\n // encode text as UTF-8 bytes\n if(encoding === 'utf8') {\n // encode as UTF-8 then decode string as raw binary\n bytes = util.encodeUtf8(bytes);\n encoding = 'binary';\n }\n\n // decode string as raw binary\n if(encoding === 'binary' || encoding === 'raw') {\n // one byte per character\n this.accommodate(bytes.length);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.raw.decode(view);\n return this;\n }\n\n // encode text as UTF-16 bytes\n if(encoding === 'utf16') {\n // two bytes per character\n this.accommodate(bytes.length * 2);\n view = new Uint16Array(this.data.buffer, this.write);\n this.write += util.text.utf16.encode(view);\n return this;\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n }\n\n throw Error('Invalid parameter: ' + bytes);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBuffer = function(buffer) {\n this.putBytes(buffer);\n buffer.clear();\n return this;\n};\n\n/**\n * Puts a string into this buffer.\n *\n * @param str the string to put.\n * @param [encoding] the encoding for the string (default: 'utf16').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putString = function(str) {\n return this.putBytes(str, 'utf16');\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16 = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24 = function(i) {\n this.accommodate(3);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32 = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16Le = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i, true);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24Le = function(i) {\n this.accommodate(3);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF, true);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32Le = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i, true);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n do {\n n -= 8;\n this.data.setInt8(this.write++, (i >> n) & 0xFF);\n } while(n > 0);\n return this;\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putSignedInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.getByte = function() {\n return this.data.getInt8(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16 = function() {\n var rval = this.data.getInt16(this.read);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.getInt16(this.read) << 8 ^\n this.data.getInt8(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32 = function() {\n var rval = this.data.getInt32(this.read);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16Le = function() {\n var rval = this.data.getInt16(this.read, true);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.getInt8(this.read) ^\n this.data.getInt16(this.read + 1, true) << 8);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32Le = function() {\n var rval = this.data.getInt32(this.read, true);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.getInt8(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer.\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.DataBuffer.prototype.getBytes = function(count) {\n // TODO: deprecate this method, it is poorly named and\n // this.toString('binary') replaces it\n // add a toTypedArray()/toArrayBuffer() function\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.DataBuffer.prototype.bytes = function(count) {\n // TODO: deprecate this method, it is poorly named, add \"getString()\"\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.at = function(i) {\n return this.data.getUint8(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.setAt = function(i, b) {\n this.data.setUint8(i, b);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.DataBuffer.prototype.last = function() {\n return this.data.getUint8(this.write - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.DataBuffer.prototype.copy = function() {\n return new util.DataBuffer(this);\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.compact = function() {\n if(this.read > 0) {\n var src = new Uint8Array(this.data.buffer, this.read);\n var dst = new Uint8Array(src.byteLength);\n dst.set(src);\n this.data = new DataView(dst);\n this.write -= this.read;\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.clear = function() {\n this.data = new DataView(new ArrayBuffer(0));\n this.read = this.write = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.truncate = function(count) {\n this.write = Math.max(0, this.length() - count);\n this.read = Math.min(this.read, this.write);\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.DataBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.byteLength; ++i) {\n var b = this.data.getUint8(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a string, using the given encoding. If no\n * encoding is given, 'utf8' (UTF-8) is used.\n *\n * @param [encoding] the encoding to use: 'binary', 'utf8', 'utf16', 'hex',\n * 'base64' (default: 'utf8').\n *\n * @return a string representation of the bytes in this buffer.\n */\nutil.DataBuffer.prototype.toString = function(encoding) {\n var view = new Uint8Array(this.data, this.read, this.length());\n encoding = encoding || 'utf8';\n\n // encode to string\n if(encoding === 'binary' || encoding === 'raw') {\n return util.binary.raw.encode(view);\n }\n if(encoding === 'hex') {\n return util.binary.hex.encode(view);\n }\n if(encoding === 'base64') {\n return util.binary.base64.encode(view);\n }\n\n // decode to text\n if(encoding === 'utf8') {\n return util.text.utf8.decode(view);\n }\n if(encoding === 'utf16') {\n return util.text.utf16.decode(view);\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n};\n\n/** End Buffer w/UInt8Array backing */\n\n/**\n * Creates a buffer that stores bytes. A value may be given to populate the\n * buffer with data. This value can either be string of encoded bytes or a\n * regular string of characters. When passing a string of binary encoded\n * bytes, the encoding `raw` should be given. This is also the default. When\n * passing a string of characters, the encoding `utf8` should be given.\n *\n * @param [input] a string with encoded bytes to store in the buffer.\n * @param [encoding] (default: 'raw', other: 'utf8').\n */\nutil.createBuffer = function(input, encoding) {\n // TODO: deprecate, use new ByteBuffer() instead\n encoding = encoding || 'raw';\n if(input !== undefined && encoding === 'utf8') {\n input = util.encodeUtf8(input);\n }\n return new util.ByteBuffer(input);\n};\n\n/**\n * Fills a string with a particular value. If you want the string to be a byte\n * string, pass in String.fromCharCode(theByte).\n *\n * @param c the character to fill the string with, use String.fromCharCode\n * to fill the string with a byte value.\n * @param n the number of characters of value c to fill with.\n *\n * @return the filled string.\n */\nutil.fillString = function(c, n) {\n var s = '';\n while(n > 0) {\n if(n & 1) {\n s += c;\n }\n n >>>= 1;\n if(n > 0) {\n c += c;\n }\n }\n return s;\n};\n\n/**\n * Performs a per byte XOR between two byte strings and returns the result as a\n * string of bytes.\n *\n * @param s1 first string of bytes.\n * @param s2 second string of bytes.\n * @param n the number of bytes to XOR.\n *\n * @return the XOR'd result.\n */\nutil.xorBytes = function(s1, s2, n) {\n var s3 = '';\n var b = '';\n var t = '';\n var i = 0;\n var c = 0;\n for(; n > 0; --n, ++i) {\n b = s1.charCodeAt(i) ^ s2.charCodeAt(i);\n if(c >= 10) {\n s3 += t;\n t = '';\n c = 0;\n }\n t += String.fromCharCode(b);\n ++c;\n }\n s3 += t;\n return s3;\n};\n\n/**\n * Converts a hex string into a 'binary' encoded string of bytes.\n *\n * @param hex the hexadecimal string to convert.\n *\n * @return the binary-encoded string of bytes.\n */\nutil.hexToBytes = function(hex) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.decode instead.\"\n var rval = '';\n var i = 0;\n if(hex.length & 1 == 1) {\n // odd number of characters, convert first character alone\n i = 1;\n rval += String.fromCharCode(parseInt(hex[0], 16));\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n rval += String.fromCharCode(parseInt(hex.substr(i, 2), 16));\n }\n return rval;\n};\n\n/**\n * Converts a 'binary' encoded string of bytes to hex.\n *\n * @param bytes the byte string to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.bytesToHex = function(bytes) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.encode instead.\"\n return util.createBuffer(bytes).toHex();\n};\n\n/**\n * Converts an 32-bit integer to 4-big-endian byte string.\n *\n * @param i the integer.\n *\n * @return the byte string.\n */\nutil.int32ToBytes = function(i) {\n return (\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n// base64 characters, reverse mapping\nvar _base64 =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar _base64Idx = [\n/*43 -43 = 0*/\n/*'+', 1, 2, 3,'/' */\n 62, -1, -1, -1, 63,\n\n/*'0','1','2','3','4','5','6','7','8','9' */\n 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n\n/*15, 16, 17,'=', 19, 20, 21 */\n -1, -1, -1, 64, -1, -1, -1,\n\n/*65 - 43 = 22*/\n/*'A','B','C','D','E','F','G','H','I','J','K','L','M', */\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n\n/*'N','O','P','Q','R','S','T','U','V','W','X','Y','Z' */\n 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n\n/*91 - 43 = 48 */\n/*48, 49, 50, 51, 52, 53 */\n -1, -1, -1, -1, -1, -1,\n\n/*97 - 43 = 54*/\n/*'a','b','c','d','e','f','g','h','i','j','k','l','m' */\n 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,\n\n/*'n','o','p','q','r','s','t','u','v','w','x','y','z' */\n 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51\n];\n\n// base58 characters (Bitcoin alphabet)\nvar _base58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\n/**\n * Base64 encodes a 'binary' encoded string of bytes.\n *\n * @param input the binary encoded string of bytes to base64-encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output.\n */\nutil.encode64 = function(input, maxline) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.encode instead.\"\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Base64 decodes a string into a 'binary' encoded string of bytes.\n *\n * @param input the base64-encoded input.\n *\n * @return the binary encoded string.\n */\nutil.decode64 = function(input) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.decode instead.\"\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n var output = '';\n var enc1, enc2, enc3, enc4;\n var i = 0;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n output += String.fromCharCode((enc1 << 2) | (enc2 >> 4));\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n output += String.fromCharCode(((enc2 & 15) << 4) | (enc3 >> 2));\n if(enc4 !== 64) {\n // decoded 3 bytes\n output += String.fromCharCode(((enc3 & 3) << 6) | enc4);\n }\n }\n }\n\n return output;\n};\n\n/**\n * Encodes the given string of characters (a standard JavaScript\n * string) as a binary encoded string where the bytes represent\n * a UTF-8 encoded string of characters. Non-ASCII characters will be\n * encoded as multiple bytes according to UTF-8.\n *\n * @param str a standard string of characters to encode.\n *\n * @return the binary encoded string.\n */\nutil.encodeUtf8 = function(str) {\n return unescape(encodeURIComponent(str));\n};\n\n/**\n * Decodes a binary encoded string that contains bytes that\n * represent a UTF-8 encoded string of characters -- into a\n * string of characters (a standard JavaScript string).\n *\n * @param str the binary encoded string to decode.\n *\n * @return the resulting standard string of characters.\n */\nutil.decodeUtf8 = function(str) {\n return decodeURIComponent(escape(str));\n};\n\n// binary encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.binary = {\n raw: {},\n hex: {},\n base64: {},\n base58: {},\n baseN : {\n encode: baseN.encode,\n decode: baseN.decode\n }\n};\n\n/**\n * Encodes a Uint8Array as a binary-encoded string. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param bytes the Uint8Array to encode.\n *\n * @return the binary-encoded string.\n */\nutil.binary.raw.encode = function(bytes) {\n return String.fromCharCode.apply(null, bytes);\n};\n\n/**\n * Decodes a binary-encoded string to a Uint8Array. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param str the binary-encoded string to decode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.raw.decode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Encodes a 'binary' string, ArrayBuffer, DataView, TypedArray, or\n * ByteBuffer as a string of hexadecimal characters.\n *\n * @param bytes the bytes to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.binary.hex.encode = util.bytesToHex;\n\n/**\n * Decodes a hex-encoded string to a Uint8Array.\n *\n * @param hex the hexadecimal string to convert.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.hex.decode = function(hex, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(hex.length / 2));\n }\n offset = offset || 0;\n var i = 0, j = offset;\n if(hex.length & 1) {\n // odd number of characters, convert first character alone\n i = 1;\n out[j++] = parseInt(hex[0], 16);\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n out[j++] = parseInt(hex.substr(i, 2), 16);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Base64-encodes a Uint8Array.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output string.\n */\nutil.binary.base64.encode = function(input, maxline) {\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.byteLength) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Decodes a base64-encoded string to a Uint8Array.\n *\n * @param input the base64-encoded input string.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.base64.decode = function(input, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(input.length / 4) * 3);\n }\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n offset = offset || 0;\n var enc1, enc2, enc3, enc4;\n var i = 0, j = offset;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n out[j++] = (enc1 << 2) | (enc2 >> 4);\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n out[j++] = ((enc2 & 15) << 4) | (enc3 >> 2);\n if(enc4 !== 64) {\n // decoded 3 bytes\n out[j++] = ((enc3 & 3) << 6) | enc4;\n }\n }\n }\n\n // make sure result is the exact decoded length\n return output ? (j - offset) : out.subarray(0, j);\n};\n\n// add support for base58 encoding/decoding with Bitcoin alphabet\nutil.binary.base58.encode = function(input, maxline) {\n return util.binary.baseN.encode(input, _base58, maxline);\n};\nutil.binary.base58.decode = function(input, maxline) {\n return util.binary.baseN.decode(input, _base58, maxline);\n};\n\n// text encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.text = {\n utf8: {},\n utf16: {}\n};\n\n/**\n * Encodes the given string as UTF-8 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf8.encode = function(str, output, offset) {\n str = util.encodeUtf8(str);\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-8 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf8.decode = function(bytes) {\n return util.decodeUtf8(String.fromCharCode.apply(null, bytes));\n};\n\n/**\n * Encodes the given string as UTF-16 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf16.encode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length * 2);\n }\n var view = new Uint16Array(out.buffer);\n offset = offset || 0;\n var j = offset;\n var k = offset;\n for(var i = 0; i < str.length; ++i) {\n view[k++] = str.charCodeAt(i);\n j += 2;\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-16 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf16.decode = function(bytes) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n};\n\n/**\n * Deflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true to return only raw deflate data, false to include zlib\n * header and trailer.\n *\n * @return the deflated data as a string.\n */\nutil.deflate = function(api, bytes, raw) {\n bytes = util.decode64(api.deflate(util.encode64(bytes)).rval);\n\n // strip zlib header and trailer if necessary\n if(raw) {\n // zlib header is 2 bytes (CMF,FLG) where FLG indicates that\n // there is a 4-byte DICT (alder-32) block before the data if\n // its 5th bit is set\n var start = 2;\n var flg = bytes.charCodeAt(1);\n if(flg & 0x20) {\n start = 6;\n }\n // zlib trailer is 4 bytes of adler-32\n bytes = bytes.substring(start, bytes.length - 4);\n }\n\n return bytes;\n};\n\n/**\n * Inflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true if the incoming data has no zlib header or trailer and is\n * raw DEFLATE data.\n *\n * @return the inflated data as a string, null on error.\n */\nutil.inflate = function(api, bytes, raw) {\n // TODO: add zlib header and trailer if necessary/possible\n var rval = api.inflate(util.encode64(bytes)).rval;\n return (rval === null) ? null : util.decode64(rval);\n};\n\n/**\n * Sets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param obj the storage object, null to remove.\n */\nvar _setStorageObject = function(api, id, obj) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n var rval;\n if(obj === null) {\n rval = api.removeItem(id);\n } else {\n // json-encode and base64-encode object\n obj = util.encode64(JSON.stringify(obj));\n rval = api.setItem(id, obj);\n }\n\n // handle potential flash error\n if(typeof(rval) !== 'undefined' && rval.rval !== true) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n};\n\n/**\n * Gets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n *\n * @return the storage object entry or null if none exists.\n */\nvar _getStorageObject = function(api, id) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n // get the existing entry\n var rval = api.getItem(id);\n\n /* Note: We check api.init because we can't do (api == localStorage)\n on IE because of \"Class doesn't support Automation\" exception. Only\n the flash api has an init method so this works too, but we need a\n better solution in the future. */\n\n // flash returns item wrapped in an object, handle special case\n if(api.init) {\n if(rval.rval === null) {\n if(rval.error) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n // no error, but also no item\n rval = null;\n } else {\n rval = rval.rval;\n }\n }\n\n // handle decoding\n if(rval !== null) {\n // base64-decode and json-decode data\n rval = JSON.parse(util.decode64(rval));\n }\n\n return rval;\n};\n\n/**\n * Stores an item in local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n */\nvar _setItem = function(api, id, key, data) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj === null) {\n // create a new storage object\n obj = {};\n }\n // update key\n obj[key] = data;\n\n // set storage object\n _setStorageObject(api, id, obj);\n};\n\n/**\n * Gets an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n *\n * @return the item.\n */\nvar _getItem = function(api, id, key) {\n // get storage object\n var rval = _getStorageObject(api, id);\n if(rval !== null) {\n // return data at key\n rval = (key in rval) ? rval[key] : null;\n }\n\n return rval;\n};\n\n/**\n * Removes an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n */\nvar _removeItem = function(api, id, key) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj !== null && key in obj) {\n // remove key\n delete obj[key];\n\n // see if entry has no keys remaining\n var empty = true;\n for(var prop in obj) {\n empty = false;\n break;\n }\n if(empty) {\n // remove entry entirely if no keys are left\n obj = null;\n }\n\n // set storage object\n _setStorageObject(api, id, obj);\n }\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n */\nvar _clearItems = function(api, id) {\n _setStorageObject(api, id, null);\n};\n\n/**\n * Calls a storage function.\n *\n * @param func the function to call.\n * @param args the arguments for the function.\n * @param location the location argument.\n *\n * @return the return value from the function.\n */\nvar _callStorageFunction = function(func, args, location) {\n var rval = null;\n\n // default storage types\n if(typeof(location) === 'undefined') {\n location = ['web', 'flash'];\n }\n\n // apply storage types in order of preference\n var type;\n var done = false;\n var exception = null;\n for(var idx in location) {\n type = location[idx];\n try {\n if(type === 'flash' || type === 'both') {\n if(args[0] === null) {\n throw new Error('Flash local storage not available.');\n }\n rval = func.apply(this, args);\n done = (type === 'flash');\n }\n if(type === 'web' || type === 'both') {\n args[0] = localStorage;\n rval = func.apply(this, args);\n done = true;\n }\n } catch(ex) {\n exception = ex;\n }\n if(done) {\n break;\n }\n }\n\n if(!done) {\n throw exception;\n }\n\n return rval;\n};\n\n/**\n * Stores an item on local disk.\n *\n * The available types of local storage include 'flash', 'web', and 'both'.\n *\n * The type 'flash' refers to flash local storage (SharedObject). In order\n * to use flash local storage, the 'api' parameter must be valid. The type\n * 'web' refers to WebStorage, if supported by the browser. The type 'both'\n * refers to storing using both 'flash' and 'web', not just one or the\n * other.\n *\n * The location array should list the storage types to use in order of\n * preference:\n *\n * ['flash']: flash only storage\n * ['web']: web only storage\n * ['both']: try to store in both\n * ['flash','web']: store in flash first, but if not available, 'web'\n * ['web','flash']: store in web first, but if not available, 'flash'\n *\n * The location array defaults to: ['web', 'flash']\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n * @param location an array with the preferred types of storage to use.\n */\nutil.setItem = function(api, id, key, data, location) {\n _callStorageFunction(_setItem, arguments, location);\n};\n\n/**\n * Gets an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n *\n * @return the item.\n */\nutil.getItem = function(api, id, key, location) {\n return _callStorageFunction(_getItem, arguments, location);\n};\n\n/**\n * Removes an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n */\nutil.removeItem = function(api, id, key, location) {\n _callStorageFunction(_removeItem, arguments, location);\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface if flash is available.\n * @param id the storage ID to use.\n * @param location an array with the preferred types of storage to use.\n */\nutil.clearItems = function(api, id, location) {\n _callStorageFunction(_clearItems, arguments, location);\n};\n\n/**\n * Check if an object is empty.\n *\n * Taken from:\n * http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object-from-json/679937#679937\n *\n * @param object the object to check.\n */\nutil.isEmpty = function(obj) {\n for(var prop in obj) {\n if(obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Format with simple printf-style interpolation.\n *\n * %%: literal '%'\n * %s,%o: convert next argument into a string.\n *\n * @param format the string to format.\n * @param ... arguments to interpolate into the format string.\n */\nutil.format = function(format) {\n var re = /%./g;\n // current match\n var match;\n // current part\n var part;\n // current arg index\n var argi = 0;\n // collected parts to recombine later\n var parts = [];\n // last index found\n var last = 0;\n // loop while matches remain\n while((match = re.exec(format))) {\n part = format.substring(last, re.lastIndex - 2);\n // don't add empty strings (ie, parts between %s%s)\n if(part.length > 0) {\n parts.push(part);\n }\n last = re.lastIndex;\n // switch on % code\n var code = match[0][1];\n switch(code) {\n case 's':\n case 'o':\n // check if enough arguments were given\n if(argi < arguments.length) {\n parts.push(arguments[argi++ + 1]);\n } else {\n parts.push('');\n }\n break;\n // FIXME: do proper formating for numbers, etc\n //case 'f':\n //case 'd':\n case '%':\n parts.push('%');\n break;\n default:\n parts.push('<%' + code + '?>');\n }\n }\n // add trailing part of format string\n parts.push(format.substring(last));\n return parts.join('');\n};\n\n/**\n * Formats a number.\n *\n * http://snipplr.com/view/5945/javascript-numberformat--ported-from-php/\n */\nutil.formatNumber = function(number, decimals, dec_point, thousands_sep) {\n // http://kevin.vanzonneveld.net\n // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfix by: Michael White (http://crestidg.com)\n // + bugfix by: Benjamin Lupton\n // + bugfix by: Allan Jensen (http://www.winternet.no)\n // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // * example 1: number_format(1234.5678, 2, '.', '');\n // * returns 1: 1234.57\n\n var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;\n var d = dec_point === undefined ? ',' : dec_point;\n var t = thousands_sep === undefined ?\n '.' : thousands_sep, s = n < 0 ? '-' : '';\n var i = parseInt((n = Math.abs(+n || 0).toFixed(c)), 10) + '';\n var j = (i.length > 3) ? i.length % 3 : 0;\n return s + (j ? i.substr(0, j) + t : '') +\n i.substr(j).replace(/(\\d{3})(?=\\d)/g, '$1' + t) +\n (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');\n};\n\n/**\n * Formats a byte size.\n *\n * http://snipplr.com/view/5949/format-humanize-file-byte-size-presentation-in-javascript/\n */\nutil.formatSize = function(size) {\n if(size >= 1073741824) {\n size = util.formatNumber(size / 1073741824, 2, '.', '') + ' GiB';\n } else if(size >= 1048576) {\n size = util.formatNumber(size / 1048576, 2, '.', '') + ' MiB';\n } else if(size >= 1024) {\n size = util.formatNumber(size / 1024, 0) + ' KiB';\n } else {\n size = util.formatNumber(size, 0) + ' bytes';\n }\n return size;\n};\n\n/**\n * Converts an IPv4 or IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv4 or IPv6 address to convert.\n *\n * @return the 4-byte IPv6 or 16-byte IPv6 address or null if the address can't\n * be parsed.\n */\nutil.bytesFromIP = function(ip) {\n if(ip.indexOf('.') !== -1) {\n return util.bytesFromIPv4(ip);\n }\n if(ip.indexOf(':') !== -1) {\n return util.bytesFromIPv6(ip);\n }\n return null;\n};\n\n/**\n * Converts an IPv4 string representation into bytes (in network order).\n *\n * @param ip the IPv4 address to convert.\n *\n * @return the 4-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv4 = function(ip) {\n ip = ip.split('.');\n if(ip.length !== 4) {\n return null;\n }\n var b = util.createBuffer();\n for(var i = 0; i < ip.length; ++i) {\n var num = parseInt(ip[i], 10);\n if(isNaN(num)) {\n return null;\n }\n b.putByte(num);\n }\n return b.getBytes();\n};\n\n/**\n * Converts an IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv6 address to convert.\n *\n * @return the 16-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv6 = function(ip) {\n var blanks = 0;\n ip = ip.split(':').filter(function(e) {\n if(e.length === 0) ++blanks;\n return true;\n });\n var zeros = (8 - ip.length + blanks) * 2;\n var b = util.createBuffer();\n for(var i = 0; i < 8; ++i) {\n if(!ip[i] || ip[i].length === 0) {\n b.fillWithByte(0, zeros);\n zeros = 0;\n continue;\n }\n var bytes = util.hexToBytes(ip[i]);\n if(bytes.length < 2) {\n b.putByte(0);\n }\n b.putBytes(bytes);\n }\n return b.getBytes();\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation or 16-bytes into\n * an IPv6 string representation. The bytes must be in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 or IPv6 string representation if 4 or 16 bytes,\n * respectively, are given, otherwise null.\n */\nutil.bytesToIP = function(bytes) {\n if(bytes.length === 4) {\n return util.bytesToIPv4(bytes);\n }\n if(bytes.length === 16) {\n return util.bytesToIPv6(bytes);\n }\n return null;\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv4 = function(bytes) {\n if(bytes.length !== 4) {\n return null;\n }\n var ip = [];\n for(var i = 0; i < bytes.length; ++i) {\n ip.push(bytes.charCodeAt(i));\n }\n return ip.join('.');\n};\n\n/**\n * Converts 16-bytes into an IPv16 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv16 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv6 = function(bytes) {\n if(bytes.length !== 16) {\n return null;\n }\n var ip = [];\n var zeroGroups = [];\n var zeroMaxGroup = 0;\n for(var i = 0; i < bytes.length; i += 2) {\n var hex = util.bytesToHex(bytes[i] + bytes[i + 1]);\n // canonicalize zero representation\n while(hex[0] === '0' && hex !== '0') {\n hex = hex.substr(1);\n }\n if(hex === '0') {\n var last = zeroGroups[zeroGroups.length - 1];\n var idx = ip.length;\n if(!last || idx !== last.end + 1) {\n zeroGroups.push({start: idx, end: idx});\n } else {\n last.end = idx;\n if((last.end - last.start) >\n (zeroGroups[zeroMaxGroup].end - zeroGroups[zeroMaxGroup].start)) {\n zeroMaxGroup = zeroGroups.length - 1;\n }\n }\n }\n ip.push(hex);\n }\n if(zeroGroups.length > 0) {\n var group = zeroGroups[zeroMaxGroup];\n // only shorten group of length > 0\n if(group.end - group.start > 0) {\n ip.splice(group.start, group.end - group.start + 1, '');\n if(group.start === 0) {\n ip.unshift('');\n }\n if(group.end === 7) {\n ip.push('');\n }\n }\n }\n return ip.join(':');\n};\n\n/**\n * Estimates the number of processes that can be run concurrently. If\n * creating Web Workers, keep in mind that the main JavaScript process needs\n * its own core.\n *\n * @param options the options to use:\n * update true to force an update (not use the cached value).\n * @param callback(err, max) called once the operation completes.\n */\nutil.estimateCores = function(options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n if('cores' in util && !options.update) {\n return callback(null, util.cores);\n }\n if(typeof navigator !== 'undefined' &&\n 'hardwareConcurrency' in navigator &&\n navigator.hardwareConcurrency > 0) {\n util.cores = navigator.hardwareConcurrency;\n return callback(null, util.cores);\n }\n if(typeof Worker === 'undefined') {\n // workers not available\n util.cores = 1;\n return callback(null, util.cores);\n }\n if(typeof Blob === 'undefined') {\n // can't estimate, default to 2\n util.cores = 2;\n return callback(null, util.cores);\n }\n\n // create worker concurrency estimation code as blob\n var blobUrl = URL.createObjectURL(new Blob(['(',\n function() {\n self.addEventListener('message', function(e) {\n // run worker for 4 ms\n var st = Date.now();\n var et = st + 4;\n while(Date.now() < et);\n self.postMessage({st: st, et: et});\n });\n }.toString(),\n ')()'], {type: 'application/javascript'}));\n\n // take 5 samples using 16 workers\n sample([], 5, 16);\n\n function sample(max, samples, numWorkers) {\n if(samples === 0) {\n // get overlap average\n var avg = Math.floor(max.reduce(function(avg, x) {\n return avg + x;\n }, 0) / max.length);\n util.cores = Math.max(1, avg);\n URL.revokeObjectURL(blobUrl);\n return callback(null, util.cores);\n }\n map(numWorkers, function(err, results) {\n max.push(reduce(numWorkers, results));\n sample(max, samples - 1, numWorkers);\n });\n }\n\n function map(numWorkers, callback) {\n var workers = [];\n var results = [];\n for(var i = 0; i < numWorkers; ++i) {\n var worker = new Worker(blobUrl);\n worker.addEventListener('message', function(e) {\n results.push(e.data);\n if(results.length === numWorkers) {\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].terminate();\n }\n callback(null, results);\n }\n });\n workers.push(worker);\n }\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].postMessage(i);\n }\n }\n\n function reduce(numWorkers, results) {\n // find overlapping time windows\n var overlaps = [];\n for(var n = 0; n < numWorkers; ++n) {\n var r1 = results[n];\n var overlap = overlaps[n] = [];\n for(var i = 0; i < numWorkers; ++i) {\n if(n === i) {\n continue;\n }\n var r2 = results[i];\n if((r1.st > r2.st && r1.st < r2.et) ||\n (r2.st > r1.st && r2.st < r1.et)) {\n overlap.push(i);\n }\n }\n }\n // get maximum overlaps ... don't include overlapping worker itself\n // as the main JS process was also being scheduled during the work and\n // would have to be subtracted from the estimate anyway\n return overlaps.reduce(function(max, overlap) {\n return Math.max(max, overlap.length);\n }, 0);\n }\n};\n","/**\n * Javascript implementation of X.509 and related components (such as\n * Certification Signing Requests) of a Public Key Infrastructure.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n *\n * The ASN.1 representation of an X.509v3 certificate is as follows\n * (see RFC 2459):\n *\n * Certificate ::= SEQUENCE {\n * tbsCertificate TBSCertificate,\n * signatureAlgorithm AlgorithmIdentifier,\n * signatureValue BIT STRING\n * }\n *\n * TBSCertificate ::= SEQUENCE {\n * version [0] EXPLICIT Version DEFAULT v1,\n * serialNumber CertificateSerialNumber,\n * signature AlgorithmIdentifier,\n * issuer Name,\n * validity Validity,\n * subject Name,\n * subjectPublicKeyInfo SubjectPublicKeyInfo,\n * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,\n * -- If present, version shall be v2 or v3\n * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,\n * -- If present, version shall be v2 or v3\n * extensions [3] EXPLICIT Extensions OPTIONAL\n * -- If present, version shall be v3\n * }\n *\n * Version ::= INTEGER { v1(0), v2(1), v3(2) }\n *\n * CertificateSerialNumber ::= INTEGER\n *\n * Name ::= CHOICE {\n * // only one possible choice for now\n * RDNSequence\n * }\n *\n * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName\n *\n * RelativeDistinguishedName ::= SET OF AttributeTypeAndValue\n *\n * AttributeTypeAndValue ::= SEQUENCE {\n * type AttributeType,\n * value AttributeValue\n * }\n * AttributeType ::= OBJECT IDENTIFIER\n * AttributeValue ::= ANY DEFINED BY AttributeType\n *\n * Validity ::= SEQUENCE {\n * notBefore Time,\n * notAfter Time\n * }\n *\n * Time ::= CHOICE {\n * utcTime UTCTime,\n * generalTime GeneralizedTime\n * }\n *\n * UniqueIdentifier ::= BIT STRING\n *\n * SubjectPublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * subjectPublicKey BIT STRING\n * }\n *\n * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension\n *\n * Extension ::= SEQUENCE {\n * extnID OBJECT IDENTIFIER,\n * critical BOOLEAN DEFAULT FALSE,\n * extnValue OCTET STRING\n * }\n *\n * The only key algorithm currently supported for PKI is RSA.\n *\n * RSASSA-PSS signatures are described in RFC 3447 and RFC 4055.\n *\n * PKCS#10 v1.7 describes certificate signing requests:\n *\n * CertificationRequestInfo:\n *\n * CertificationRequestInfo ::= SEQUENCE {\n * version INTEGER { v1(0) } (v1,...),\n * subject Name,\n * subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},\n * attributes [0] Attributes{{ CRIAttributes }}\n * }\n *\n * Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }}\n *\n * CRIAttributes ATTRIBUTE ::= {\n * ... -- add any locally defined attributes here -- }\n *\n * Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {\n * type ATTRIBUTE.&id({IOSet}),\n * values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type})\n * }\n *\n * CertificationRequest ::= SEQUENCE {\n * certificationRequestInfo CertificationRequestInfo,\n * signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},\n * signature BIT STRING\n * }\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./md');\nrequire('./mgf');\nrequire('./oids');\nrequire('./pem');\nrequire('./pss');\nrequire('./rsa');\nrequire('./util');\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Public Key Infrastructure (PKI) implementation. */\nvar pki = module.exports = forge.pki = forge.pki || {};\nvar oids = pki.oids;\n\n// short name OID mappings\nvar _shortNames = {};\n_shortNames['CN'] = oids['commonName'];\n_shortNames['commonName'] = 'CN';\n_shortNames['C'] = oids['countryName'];\n_shortNames['countryName'] = 'C';\n_shortNames['L'] = oids['localityName'];\n_shortNames['localityName'] = 'L';\n_shortNames['ST'] = oids['stateOrProvinceName'];\n_shortNames['stateOrProvinceName'] = 'ST';\n_shortNames['O'] = oids['organizationName'];\n_shortNames['organizationName'] = 'O';\n_shortNames['OU'] = oids['organizationalUnitName'];\n_shortNames['organizationalUnitName'] = 'OU';\n_shortNames['E'] = oids['emailAddress'];\n_shortNames['emailAddress'] = 'E';\n\n// validator for an SubjectPublicKeyInfo structure\n// Note: Currently only works with an RSA public key\nvar publicKeyValidator = forge.pki.rsa.publicKeyValidator;\n\n// validator for an X.509v3 certificate\nvar x509CertificateValidator = {\n name: 'Certificate',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'tbsCertificate',\n value: [{\n name: 'Certificate.TBSCertificate.version',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.version.integer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certVersion'\n }]\n }, {\n name: 'Certificate.TBSCertificate.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certSerialNumber'\n }, {\n name: 'Certificate.TBSCertificate.signature',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate.signature.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certinfoSignatureOid'\n }, {\n name: 'Certificate.TBSCertificate.signature.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'certinfoSignatureParams'\n }]\n }, {\n name: 'Certificate.TBSCertificate.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certIssuer'\n }, {\n name: 'Certificate.TBSCertificate.validity',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n // Note: UTC and generalized times may both appear so the capture\n // names are based on their detected order, the names used below\n // are only for the common case, which validity time really means\n // \"notBefore\" and which means \"notAfter\" will be determined by order\n value: [{\n // notBefore (Time) (UTC time case)\n name: 'Certificate.TBSCertificate.validity.notBefore (utc)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.UTCTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity1UTCTime'\n }, {\n // notBefore (Time) (generalized time case)\n name: 'Certificate.TBSCertificate.validity.notBefore (generalized)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.GENERALIZEDTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity2GeneralizedTime'\n }, {\n // notAfter (Time) (only UTC time is supported)\n name: 'Certificate.TBSCertificate.validity.notAfter (utc)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.UTCTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity3UTCTime'\n }, {\n // notAfter (Time) (only UTC time is supported)\n name: 'Certificate.TBSCertificate.validity.notAfter (generalized)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.GENERALIZEDTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity4GeneralizedTime'\n }]\n }, {\n // Name (subject) (RDNSequence)\n name: 'Certificate.TBSCertificate.subject',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certSubject'\n },\n // SubjectPublicKeyInfo\n publicKeyValidator,\n {\n // issuerUniqueID (optional)\n name: 'Certificate.TBSCertificate.issuerUniqueID',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.issuerUniqueID.id',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n // TODO: support arbitrary bit length ids\n captureBitStringValue: 'certIssuerUniqueId'\n }]\n }, {\n // subjectUniqueID (optional)\n name: 'Certificate.TBSCertificate.subjectUniqueID',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 2,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.subjectUniqueID.id',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n // TODO: support arbitrary bit length ids\n captureBitStringValue: 'certSubjectUniqueId'\n }]\n }, {\n // Extensions (optional)\n name: 'Certificate.TBSCertificate.extensions',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 3,\n constructed: true,\n captureAsn1: 'certExtensions',\n optional: true\n }]\n }, {\n // AlgorithmIdentifier (signature algorithm)\n name: 'Certificate.signatureAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // algorithm\n name: 'Certificate.signatureAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certSignatureOid'\n }, {\n name: 'Certificate.TBSCertificate.signature.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'certSignatureParams'\n }]\n }, {\n // SignatureValue\n name: 'Certificate.signatureValue',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n captureBitStringValue: 'certSignature'\n }]\n};\n\nvar rsassaPssParameterValidator = {\n name: 'rsapss',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'rsapss.hashAlgorithm',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n value: [{\n name: 'rsapss.hashAlgorithm.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'hashOid'\n /* parameter block omitted, for SHA1 NULL anyhow. */\n }]\n }]\n }, {\n name: 'rsapss.maskGenAlgorithm',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'maskGenOid'\n }, {\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'maskGenHashOid'\n /* parameter block omitted, for SHA1 NULL anyhow. */\n }]\n }]\n }]\n }, {\n name: 'rsapss.saltLength',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 2,\n optional: true,\n value: [{\n name: 'rsapss.saltLength.saltLength',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.INTEGER,\n constructed: false,\n capture: 'saltLength'\n }]\n }, {\n name: 'rsapss.trailerField',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 3,\n optional: true,\n value: [{\n name: 'rsapss.trailer.trailer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.INTEGER,\n constructed: false,\n capture: 'trailer'\n }]\n }]\n};\n\n// validator for a CertificationRequestInfo structure\nvar certificationRequestInfoValidator = {\n name: 'CertificationRequestInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certificationRequestInfo',\n value: [{\n name: 'CertificationRequestInfo.integer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certificationRequestInfoVersion'\n }, {\n // Name (subject) (RDNSequence)\n name: 'CertificationRequestInfo.subject',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certificationRequestInfoSubject'\n },\n // SubjectPublicKeyInfo\n publicKeyValidator,\n {\n name: 'CertificationRequestInfo.attributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n capture: 'certificationRequestInfoAttributes',\n value: [{\n name: 'CertificationRequestInfo.attributes',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'CertificationRequestInfo.attributes.type',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false\n }, {\n name: 'CertificationRequestInfo.attributes.value',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true\n }]\n }]\n }]\n};\n\n// validator for a CertificationRequest structure\nvar certificationRequestValidator = {\n name: 'CertificationRequest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'csr',\n value: [\n certificationRequestInfoValidator, {\n // AlgorithmIdentifier (signature algorithm)\n name: 'CertificationRequest.signatureAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // algorithm\n name: 'CertificationRequest.signatureAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'csrSignatureOid'\n }, {\n name: 'CertificationRequest.signatureAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'csrSignatureParams'\n }]\n }, {\n // signature\n name: 'CertificationRequest.signature',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n captureBitStringValue: 'csrSignature'\n }\n ]\n};\n\n/**\n * Converts an RDNSequence of ASN.1 DER-encoded RelativeDistinguishedName\n * sets into an array with objects that have type and value properties.\n *\n * @param rdn the RDNSequence to convert.\n * @param md a message digest to append type and value to if provided.\n */\npki.RDNAttributesAsArray = function(rdn, md) {\n var rval = [];\n\n // each value in 'rdn' in is a SET of RelativeDistinguishedName\n var set, attr, obj;\n for(var si = 0; si < rdn.value.length; ++si) {\n // get the RelativeDistinguishedName set\n set = rdn.value[si];\n\n // each value in the SET is an AttributeTypeAndValue sequence\n // containing first a type (an OID) and second a value (defined by\n // the OID)\n for(var i = 0; i < set.value.length; ++i) {\n obj = {};\n attr = set.value[i];\n obj.type = asn1.derToOid(attr.value[0].value);\n obj.value = attr.value[1].value;\n obj.valueTagClass = attr.value[1].type;\n // if the OID is known, get its name and short name\n if(obj.type in oids) {\n obj.name = oids[obj.type];\n if(obj.name in _shortNames) {\n obj.shortName = _shortNames[obj.name];\n }\n }\n if(md) {\n md.update(obj.type);\n md.update(obj.value);\n }\n rval.push(obj);\n }\n }\n\n return rval;\n};\n\n/**\n * Converts ASN.1 CRIAttributes into an array with objects that have type and\n * value properties.\n *\n * @param attributes the CRIAttributes to convert.\n */\npki.CRIAttributesAsArray = function(attributes) {\n var rval = [];\n\n // each value in 'attributes' in is a SEQUENCE with an OID and a SET\n for(var si = 0; si < attributes.length; ++si) {\n // get the attribute sequence\n var seq = attributes[si];\n\n // each value in the SEQUENCE containing first a type (an OID) and\n // second a set of values (defined by the OID)\n var type = asn1.derToOid(seq.value[0].value);\n var values = seq.value[1].value;\n for(var vi = 0; vi < values.length; ++vi) {\n var obj = {};\n obj.type = type;\n obj.value = values[vi].value;\n obj.valueTagClass = values[vi].type;\n // if the OID is known, get its name and short name\n if(obj.type in oids) {\n obj.name = oids[obj.type];\n if(obj.name in _shortNames) {\n obj.shortName = _shortNames[obj.name];\n }\n }\n // parse extensions\n if(obj.type === oids.extensionRequest) {\n obj.extensions = [];\n for(var ei = 0; ei < obj.value.length; ++ei) {\n obj.extensions.push(pki.certificateExtensionFromAsn1(obj.value[ei]));\n }\n }\n rval.push(obj);\n }\n }\n\n return rval;\n};\n\n/**\n * Gets an issuer or subject attribute from its name, type, or short name.\n *\n * @param obj the issuer or subject object.\n * @param options a short name string or an object with:\n * shortName the short name for the attribute.\n * name the name for the attribute.\n * type the type for the attribute.\n *\n * @return the attribute.\n */\nfunction _getAttribute(obj, options) {\n if(typeof options === 'string') {\n options = {shortName: options};\n }\n\n var rval = null;\n var attr;\n for(var i = 0; rval === null && i < obj.attributes.length; ++i) {\n attr = obj.attributes[i];\n if(options.type && options.type === attr.type) {\n rval = attr;\n } else if(options.name && options.name === attr.name) {\n rval = attr;\n } else if(options.shortName && options.shortName === attr.shortName) {\n rval = attr;\n }\n }\n return rval;\n}\n\n/**\n * Converts signature parameters from ASN.1 structure.\n *\n * Currently only RSASSA-PSS supported. The PKCS#1 v1.5 signature scheme had\n * no parameters.\n *\n * RSASSA-PSS-params ::= SEQUENCE {\n * hashAlgorithm [0] HashAlgorithm DEFAULT\n * sha1Identifier,\n * maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT\n * mgf1SHA1Identifier,\n * saltLength [2] INTEGER DEFAULT 20,\n * trailerField [3] INTEGER DEFAULT 1\n * }\n *\n * HashAlgorithm ::= AlgorithmIdentifier\n *\n * MaskGenAlgorithm ::= AlgorithmIdentifier\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * @param oid The OID specifying the signature algorithm\n * @param obj The ASN.1 structure holding the parameters\n * @param fillDefaults Whether to use return default values where omitted\n * @return signature parameter object\n */\nvar _readSignatureParameters = function(oid, obj, fillDefaults) {\n var params = {};\n\n if(oid !== oids['RSASSA-PSS']) {\n return params;\n }\n\n if(fillDefaults) {\n params = {\n hash: {\n algorithmOid: oids['sha1']\n },\n mgf: {\n algorithmOid: oids['mgf1'],\n hash: {\n algorithmOid: oids['sha1']\n }\n },\n saltLength: 20\n };\n }\n\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, rsassaPssParameterValidator, capture, errors)) {\n var error = new Error('Cannot read RSASSA-PSS parameter block.');\n error.errors = errors;\n throw error;\n }\n\n if(capture.hashOid !== undefined) {\n params.hash = params.hash || {};\n params.hash.algorithmOid = asn1.derToOid(capture.hashOid);\n }\n\n if(capture.maskGenOid !== undefined) {\n params.mgf = params.mgf || {};\n params.mgf.algorithmOid = asn1.derToOid(capture.maskGenOid);\n params.mgf.hash = params.mgf.hash || {};\n params.mgf.hash.algorithmOid = asn1.derToOid(capture.maskGenHashOid);\n }\n\n if(capture.saltLength !== undefined) {\n params.saltLength = capture.saltLength.charCodeAt(0);\n }\n\n return params;\n};\n\n/**\n * Create signature digest for OID.\n *\n * @param options\n * signatureOid: the OID specifying the signature algorithm.\n * type: a human readable type for error messages\n * @return a created md instance. throws if unknown oid.\n */\nvar _createSignatureDigest = function(options) {\n switch(oids[options.signatureOid]) {\n case 'sha1WithRSAEncryption':\n // deprecated alias\n case 'sha1WithRSASignature':\n return forge.md.sha1.create();\n case 'md5WithRSAEncryption':\n return forge.md.md5.create();\n case 'sha256WithRSAEncryption':\n return forge.md.sha256.create();\n case 'sha384WithRSAEncryption':\n return forge.md.sha384.create();\n case 'sha512WithRSAEncryption':\n return forge.md.sha512.create();\n case 'RSASSA-PSS':\n return forge.md.sha256.create();\n default:\n var error = new Error(\n 'Could not compute ' + options.type + ' digest. ' +\n 'Unknown signature OID.');\n error.signatureOid = options.signatureOid;\n throw error;\n }\n};\n\n/**\n * Verify signature on certificate or CSR.\n *\n * @param options:\n * certificate the certificate or CSR to verify.\n * md the signature digest.\n * signature the signature\n * @return a created md instance. throws if unknown oid.\n */\nvar _verifySignature = function(options) {\n var cert = options.certificate;\n var scheme;\n\n switch(cert.signatureOid) {\n case oids.sha1WithRSAEncryption:\n // deprecated alias\n case oids.sha1WithRSASignature:\n /* use PKCS#1 v1.5 padding scheme */\n break;\n case oids['RSASSA-PSS']:\n var hash, mgf;\n\n /* initialize mgf */\n hash = oids[cert.signatureParameters.mgf.hash.algorithmOid];\n if(hash === undefined || forge.md[hash] === undefined) {\n var error = new Error('Unsupported MGF hash function.');\n error.oid = cert.signatureParameters.mgf.hash.algorithmOid;\n error.name = hash;\n throw error;\n }\n\n mgf = oids[cert.signatureParameters.mgf.algorithmOid];\n if(mgf === undefined || forge.mgf[mgf] === undefined) {\n var error = new Error('Unsupported MGF function.');\n error.oid = cert.signatureParameters.mgf.algorithmOid;\n error.name = mgf;\n throw error;\n }\n\n mgf = forge.mgf[mgf].create(forge.md[hash].create());\n\n /* initialize hash function */\n hash = oids[cert.signatureParameters.hash.algorithmOid];\n if(hash === undefined || forge.md[hash] === undefined) {\n var error = new Error('Unsupported RSASSA-PSS hash function.');\n error.oid = cert.signatureParameters.hash.algorithmOid;\n error.name = hash;\n throw error;\n }\n\n scheme = forge.pss.create(\n forge.md[hash].create(), mgf, cert.signatureParameters.saltLength\n );\n break;\n }\n\n // verify signature on cert using public key\n return cert.publicKey.verify(\n options.md.digest().getBytes(), options.signature, scheme\n );\n};\n\n/**\n * Converts an X.509 certificate from PEM format.\n *\n * Note: If the certificate is to be verified then compute hash should\n * be set to true. This will scan the TBSCertificate part of the ASN.1\n * object while it is converted so it doesn't need to be converted back\n * to ASN.1-DER-encoding later.\n *\n * @param pem the PEM-formatted certificate.\n * @param computeHash true to compute the hash for verification.\n * @param strict true to be strict when checking ASN.1 value lengths, false to\n * allow truncated values (default: true).\n *\n * @return the certificate.\n */\npki.certificateFromPem = function(pem, computeHash, strict) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'CERTIFICATE' &&\n msg.type !== 'X509 CERTIFICATE' &&\n msg.type !== 'TRUSTED CERTIFICATE') {\n var error = new Error(\n 'Could not convert certificate from PEM; PEM header type ' +\n 'is not \"CERTIFICATE\", \"X509 CERTIFICATE\", or \"TRUSTED CERTIFICATE\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error(\n 'Could not convert certificate from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body, strict);\n\n return pki.certificateFromAsn1(obj, computeHash);\n};\n\n/**\n * Converts an X.509 certificate to PEM format.\n *\n * @param cert the certificate.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted certificate.\n */\npki.certificateToPem = function(cert, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'CERTIFICATE',\n body: asn1.toDer(pki.certificateToAsn1(cert)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts an RSA public key from PEM format.\n *\n * @param pem the PEM-formatted public key.\n *\n * @return the public key.\n */\npki.publicKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PUBLIC KEY' && msg.type !== 'RSA PUBLIC KEY') {\n var error = new Error('Could not convert public key from PEM; PEM header ' +\n 'type is not \"PUBLIC KEY\" or \"RSA PUBLIC KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert public key from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return pki.publicKeyFromAsn1(obj);\n};\n\n/**\n * Converts an RSA public key to PEM format (using a SubjectPublicKeyInfo).\n *\n * @param key the public key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted public key.\n */\npki.publicKeyToPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'PUBLIC KEY',\n body: asn1.toDer(pki.publicKeyToAsn1(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts an RSA public key to PEM format (using an RSAPublicKey).\n *\n * @param key the public key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted public key.\n */\npki.publicKeyToRSAPublicKeyPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'RSA PUBLIC KEY',\n body: asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Gets a fingerprint for the given public key.\n *\n * @param options the options to use.\n * [md] the message digest object to use (defaults to forge.md.sha1).\n * [type] the type of fingerprint, such as 'RSAPublicKey',\n * 'SubjectPublicKeyInfo' (defaults to 'RSAPublicKey').\n * [encoding] an alternative output encoding, such as 'hex'\n * (defaults to none, outputs a byte buffer).\n * [delimiter] the delimiter to use between bytes for 'hex' encoded\n * output, eg: ':' (defaults to none).\n *\n * @return the fingerprint as a byte buffer or other encoding based on options.\n */\npki.getPublicKeyFingerprint = function(key, options) {\n options = options || {};\n var md = options.md || forge.md.sha1.create();\n var type = options.type || 'RSAPublicKey';\n\n var bytes;\n switch(type) {\n case 'RSAPublicKey':\n bytes = asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes();\n break;\n case 'SubjectPublicKeyInfo':\n bytes = asn1.toDer(pki.publicKeyToAsn1(key)).getBytes();\n break;\n default:\n throw new Error('Unknown fingerprint type \"' + options.type + '\".');\n }\n\n // hash public key bytes\n md.start();\n md.update(bytes);\n var digest = md.digest();\n if(options.encoding === 'hex') {\n var hex = digest.toHex();\n if(options.delimiter) {\n return hex.match(/.{2}/g).join(options.delimiter);\n }\n return hex;\n } else if(options.encoding === 'binary') {\n return digest.getBytes();\n } else if(options.encoding) {\n throw new Error('Unknown encoding \"' + options.encoding + '\".');\n }\n return digest;\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) from PEM format.\n *\n * Note: If the certification request is to be verified then compute hash\n * should be set to true. This will scan the CertificationRequestInfo part of\n * the ASN.1 object while it is converted so it doesn't need to be converted\n * back to ASN.1-DER-encoding later.\n *\n * @param pem the PEM-formatted certificate.\n * @param computeHash true to compute the hash for verification.\n * @param strict true to be strict when checking ASN.1 value lengths, false to\n * allow truncated values (default: true).\n *\n * @return the certification request (CSR).\n */\npki.certificationRequestFromPem = function(pem, computeHash, strict) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'CERTIFICATE REQUEST') {\n var error = new Error('Could not convert certification request from PEM; ' +\n 'PEM header type is not \"CERTIFICATE REQUEST\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert certification request from PEM; ' +\n 'PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body, strict);\n\n return pki.certificationRequestFromAsn1(obj, computeHash);\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) to PEM format.\n *\n * @param csr the certification request.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted certification request.\n */\npki.certificationRequestToPem = function(csr, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'CERTIFICATE REQUEST',\n body: asn1.toDer(pki.certificationRequestToAsn1(csr)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Creates an empty X.509v3 RSA certificate.\n *\n * @return the certificate.\n */\npki.createCertificate = function() {\n var cert = {};\n cert.version = 0x02;\n cert.serialNumber = '00';\n cert.signatureOid = null;\n cert.signature = null;\n cert.siginfo = {};\n cert.siginfo.algorithmOid = null;\n cert.validity = {};\n cert.validity.notBefore = new Date();\n cert.validity.notAfter = new Date();\n\n cert.issuer = {};\n cert.issuer.getField = function(sn) {\n return _getAttribute(cert.issuer, sn);\n };\n cert.issuer.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.issuer.attributes.push(attr);\n };\n cert.issuer.attributes = [];\n cert.issuer.hash = null;\n\n cert.subject = {};\n cert.subject.getField = function(sn) {\n return _getAttribute(cert.subject, sn);\n };\n cert.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.subject.attributes.push(attr);\n };\n cert.subject.attributes = [];\n cert.subject.hash = null;\n\n cert.extensions = [];\n cert.publicKey = null;\n cert.md = null;\n\n /**\n * Sets the subject of this certificate.\n *\n * @param attrs the array of subject attributes to use.\n * @param uniqueId an optional a unique ID to use.\n */\n cert.setSubject = function(attrs, uniqueId) {\n // set new attributes, clear hash\n _fillMissingFields(attrs);\n cert.subject.attributes = attrs;\n delete cert.subject.uniqueId;\n if(uniqueId) {\n // TODO: support arbitrary bit length ids\n cert.subject.uniqueId = uniqueId;\n }\n cert.subject.hash = null;\n };\n\n /**\n * Sets the issuer of this certificate.\n *\n * @param attrs the array of issuer attributes to use.\n * @param uniqueId an optional a unique ID to use.\n */\n cert.setIssuer = function(attrs, uniqueId) {\n // set new attributes, clear hash\n _fillMissingFields(attrs);\n cert.issuer.attributes = attrs;\n delete cert.issuer.uniqueId;\n if(uniqueId) {\n // TODO: support arbitrary bit length ids\n cert.issuer.uniqueId = uniqueId;\n }\n cert.issuer.hash = null;\n };\n\n /**\n * Sets the extensions of this certificate.\n *\n * @param exts the array of extensions to use.\n */\n cert.setExtensions = function(exts) {\n for(var i = 0; i < exts.length; ++i) {\n _fillMissingExtensionFields(exts[i], {cert: cert});\n }\n // set new extensions\n cert.extensions = exts;\n };\n\n /**\n * Gets an extension by its name or id.\n *\n * @param options the name to use or an object with:\n * name the name to use.\n * id the id to use.\n *\n * @return the extension or null if not found.\n */\n cert.getExtension = function(options) {\n if(typeof options === 'string') {\n options = {name: options};\n }\n\n var rval = null;\n var ext;\n for(var i = 0; rval === null && i < cert.extensions.length; ++i) {\n ext = cert.extensions[i];\n if(options.id && ext.id === options.id) {\n rval = ext;\n } else if(options.name && ext.name === options.name) {\n rval = ext;\n }\n }\n return rval;\n };\n\n /**\n * Signs this certificate using the given private key.\n *\n * @param key the private key to sign with.\n * @param md the message digest object to use (defaults to forge.md.sha1).\n */\n cert.sign = function(key, md) {\n // TODO: get signature OID from private key\n cert.md = md || forge.md.sha1.create();\n var algorithmOid = oids[cert.md.algorithm + 'WithRSAEncryption'];\n if(!algorithmOid) {\n var error = new Error('Could not compute certificate digest. ' +\n 'Unknown message digest algorithm OID.');\n error.algorithm = cert.md.algorithm;\n throw error;\n }\n cert.signatureOid = cert.siginfo.algorithmOid = algorithmOid;\n\n // get TBSCertificate, convert to DER\n cert.tbsCertificate = pki.getTBSCertificate(cert);\n var bytes = asn1.toDer(cert.tbsCertificate);\n\n // digest and sign\n cert.md.update(bytes.getBytes());\n cert.signature = key.sign(cert.md);\n };\n\n /**\n * Attempts verify the signature on the passed certificate using this\n * certificate's public key.\n *\n * @param child the certificate to verify.\n *\n * @return true if verified, false if not.\n */\n cert.verify = function(child) {\n var rval = false;\n\n if(!cert.issued(child)) {\n var issuer = child.issuer;\n var subject = cert.subject;\n var error = new Error(\n 'The parent certificate did not issue the given child ' +\n 'certificate; the child certificate\\'s issuer does not match the ' +\n 'parent\\'s subject.');\n error.expectedIssuer = subject.attributes;\n error.actualIssuer = issuer.attributes;\n throw error;\n }\n\n var md = child.md;\n if(md === null) {\n // create digest for OID signature types\n md = _createSignatureDigest({\n signatureOid: child.signatureOid,\n type: 'certificate'\n });\n\n // produce DER formatted TBSCertificate and digest it\n var tbsCertificate = child.tbsCertificate || pki.getTBSCertificate(child);\n var bytes = asn1.toDer(tbsCertificate);\n md.update(bytes.getBytes());\n }\n\n if(md !== null) {\n rval = _verifySignature({\n certificate: cert, md: md, signature: child.signature\n });\n }\n\n return rval;\n };\n\n /**\n * Returns true if this certificate's issuer matches the passed\n * certificate's subject. Note that no signature check is performed.\n *\n * @param parent the certificate to check.\n *\n * @return true if this certificate's issuer matches the passed certificate's\n * subject.\n */\n cert.isIssuer = function(parent) {\n var rval = false;\n\n var i = cert.issuer;\n var s = parent.subject;\n\n // compare hashes if present\n if(i.hash && s.hash) {\n rval = (i.hash === s.hash);\n } else if(i.attributes.length === s.attributes.length) {\n // all attributes are the same so issuer matches subject\n rval = true;\n var iattr, sattr;\n for(var n = 0; rval && n < i.attributes.length; ++n) {\n iattr = i.attributes[n];\n sattr = s.attributes[n];\n if(iattr.type !== sattr.type || iattr.value !== sattr.value) {\n // attribute mismatch\n rval = false;\n }\n }\n }\n\n return rval;\n };\n\n /**\n * Returns true if this certificate's subject matches the issuer of the\n * given certificate). Note that not signature check is performed.\n *\n * @param child the certificate to check.\n *\n * @return true if this certificate's subject matches the passed\n * certificate's issuer.\n */\n cert.issued = function(child) {\n return child.isIssuer(cert);\n };\n\n /**\n * Generates the subjectKeyIdentifier for this certificate as byte buffer.\n *\n * @return the subjectKeyIdentifier for this certificate as byte buffer.\n */\n cert.generateSubjectKeyIdentifier = function() {\n /* See: 4.2.1.2 section of the the RFC3280, keyIdentifier is either:\n\n (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the\n value of the BIT STRING subjectPublicKey (excluding the tag,\n length, and number of unused bits).\n\n (2) The keyIdentifier is composed of a four bit type field with\n the value 0100 followed by the least significant 60 bits of the\n SHA-1 hash of the value of the BIT STRING subjectPublicKey\n (excluding the tag, length, and number of unused bit string bits).\n */\n\n // skipping the tag, length, and number of unused bits is the same\n // as just using the RSAPublicKey (for RSA keys, which are the\n // only ones supported)\n return pki.getPublicKeyFingerprint(cert.publicKey, {type: 'RSAPublicKey'});\n };\n\n /**\n * Verifies the subjectKeyIdentifier extension value for this certificate\n * against its public key. If no extension is found, false will be\n * returned.\n *\n * @return true if verified, false if not.\n */\n cert.verifySubjectKeyIdentifier = function() {\n var oid = oids['subjectKeyIdentifier'];\n for(var i = 0; i < cert.extensions.length; ++i) {\n var ext = cert.extensions[i];\n if(ext.id === oid) {\n var ski = cert.generateSubjectKeyIdentifier().getBytes();\n return (forge.util.hexToBytes(ext.subjectKeyIdentifier) === ski);\n }\n }\n return false;\n };\n\n return cert;\n};\n\n/**\n * Converts an X.509v3 RSA certificate from an ASN.1 object.\n *\n * Note: If the certificate is to be verified then compute hash should\n * be set to true. There is currently no implementation for converting\n * a certificate back to ASN.1 so the TBSCertificate part of the ASN.1\n * object needs to be scanned before the cert object is created.\n *\n * @param obj the asn1 representation of an X.509v3 RSA certificate.\n * @param computeHash true to compute the hash for verification.\n *\n * @return the certificate.\n */\npki.certificateFromAsn1 = function(obj, computeHash) {\n // validate certificate and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, x509CertificateValidator, capture, errors)) {\n var error = new Error('Cannot read X.509 certificate. ' +\n 'ASN.1 object is not an X509v3 Certificate.');\n error.errors = errors;\n throw error;\n }\n\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n throw new Error('Cannot read public key. OID is not RSA.');\n }\n\n // create certificate\n var cert = pki.createCertificate();\n cert.version = capture.certVersion ?\n capture.certVersion.charCodeAt(0) : 0;\n var serial = forge.util.createBuffer(capture.certSerialNumber);\n cert.serialNumber = serial.toHex();\n cert.signatureOid = forge.asn1.derToOid(capture.certSignatureOid);\n cert.signatureParameters = _readSignatureParameters(\n cert.signatureOid, capture.certSignatureParams, true);\n cert.siginfo.algorithmOid = forge.asn1.derToOid(capture.certinfoSignatureOid);\n cert.siginfo.parameters = _readSignatureParameters(cert.siginfo.algorithmOid,\n capture.certinfoSignatureParams, false);\n cert.signature = capture.certSignature;\n\n var validity = [];\n if(capture.certValidity1UTCTime !== undefined) {\n validity.push(asn1.utcTimeToDate(capture.certValidity1UTCTime));\n }\n if(capture.certValidity2GeneralizedTime !== undefined) {\n validity.push(asn1.generalizedTimeToDate(\n capture.certValidity2GeneralizedTime));\n }\n if(capture.certValidity3UTCTime !== undefined) {\n validity.push(asn1.utcTimeToDate(capture.certValidity3UTCTime));\n }\n if(capture.certValidity4GeneralizedTime !== undefined) {\n validity.push(asn1.generalizedTimeToDate(\n capture.certValidity4GeneralizedTime));\n }\n if(validity.length > 2) {\n throw new Error('Cannot read notBefore/notAfter validity times; more ' +\n 'than two times were provided in the certificate.');\n }\n if(validity.length < 2) {\n throw new Error('Cannot read notBefore/notAfter validity times; they ' +\n 'were not provided as either UTCTime or GeneralizedTime.');\n }\n cert.validity.notBefore = validity[0];\n cert.validity.notAfter = validity[1];\n\n // keep TBSCertificate to preserve signature when exporting\n cert.tbsCertificate = capture.tbsCertificate;\n\n if(computeHash) {\n // create digest for OID signature type\n cert.md = _createSignatureDigest({\n signatureOid: cert.signatureOid,\n type: 'certificate'\n });\n\n // produce DER formatted TBSCertificate and digest it\n var bytes = asn1.toDer(cert.tbsCertificate);\n cert.md.update(bytes.getBytes());\n }\n\n // handle issuer, build issuer message digest\n var imd = forge.md.sha1.create();\n var ibytes = asn1.toDer(capture.certIssuer);\n imd.update(ibytes.getBytes());\n cert.issuer.getField = function(sn) {\n return _getAttribute(cert.issuer, sn);\n };\n cert.issuer.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.issuer.attributes.push(attr);\n };\n cert.issuer.attributes = pki.RDNAttributesAsArray(capture.certIssuer);\n if(capture.certIssuerUniqueId) {\n cert.issuer.uniqueId = capture.certIssuerUniqueId;\n }\n cert.issuer.hash = imd.digest().toHex();\n\n // handle subject, build subject message digest\n var smd = forge.md.sha1.create();\n var sbytes = asn1.toDer(capture.certSubject);\n smd.update(sbytes.getBytes());\n cert.subject.getField = function(sn) {\n return _getAttribute(cert.subject, sn);\n };\n cert.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.subject.attributes.push(attr);\n };\n cert.subject.attributes = pki.RDNAttributesAsArray(capture.certSubject);\n if(capture.certSubjectUniqueId) {\n cert.subject.uniqueId = capture.certSubjectUniqueId;\n }\n cert.subject.hash = smd.digest().toHex();\n\n // handle extensions\n if(capture.certExtensions) {\n cert.extensions = pki.certificateExtensionsFromAsn1(capture.certExtensions);\n } else {\n cert.extensions = [];\n }\n\n // convert RSA public key from ASN.1\n cert.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo);\n\n return cert;\n};\n\n/**\n * Converts an ASN.1 extensions object (with extension sequences as its\n * values) into an array of extension objects with types and values.\n *\n * Supported extensions:\n *\n * id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }\n * KeyUsage ::= BIT STRING {\n * digitalSignature (0),\n * nonRepudiation (1),\n * keyEncipherment (2),\n * dataEncipherment (3),\n * keyAgreement (4),\n * keyCertSign (5),\n * cRLSign (6),\n * encipherOnly (7),\n * decipherOnly (8)\n * }\n *\n * id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }\n * BasicConstraints ::= SEQUENCE {\n * cA BOOLEAN DEFAULT FALSE,\n * pathLenConstraint INTEGER (0..MAX) OPTIONAL\n * }\n *\n * subjectAltName EXTENSION ::= {\n * SYNTAX GeneralNames\n * IDENTIFIED BY id-ce-subjectAltName\n * }\n *\n * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName\n *\n * GeneralName ::= CHOICE {\n * otherName [0] INSTANCE OF OTHER-NAME,\n * rfc822Name [1] IA5String,\n * dNSName [2] IA5String,\n * x400Address [3] ORAddress,\n * directoryName [4] Name,\n * ediPartyName [5] EDIPartyName,\n * uniformResourceIdentifier [6] IA5String,\n * IPAddress [7] OCTET STRING,\n * registeredID [8] OBJECT IDENTIFIER\n * }\n *\n * OTHER-NAME ::= TYPE-IDENTIFIER\n *\n * EDIPartyName ::= SEQUENCE {\n * nameAssigner [0] DirectoryString {ub-name} OPTIONAL,\n * partyName [1] DirectoryString {ub-name}\n * }\n *\n * @param exts the extensions ASN.1 with extension sequences to parse.\n *\n * @return the array.\n */\npki.certificateExtensionsFromAsn1 = function(exts) {\n var rval = [];\n for(var i = 0; i < exts.value.length; ++i) {\n // get extension sequence\n var extseq = exts.value[i];\n for(var ei = 0; ei < extseq.value.length; ++ei) {\n rval.push(pki.certificateExtensionFromAsn1(extseq.value[ei]));\n }\n }\n\n return rval;\n};\n\n/**\n * Parses a single certificate extension from ASN.1.\n *\n * @param ext the extension in ASN.1 format.\n *\n * @return the parsed extension as an object.\n */\npki.certificateExtensionFromAsn1 = function(ext) {\n // an extension has:\n // [0] extnID OBJECT IDENTIFIER\n // [1] critical BOOLEAN DEFAULT FALSE\n // [2] extnValue OCTET STRING\n var e = {};\n e.id = asn1.derToOid(ext.value[0].value);\n e.critical = false;\n if(ext.value[1].type === asn1.Type.BOOLEAN) {\n e.critical = (ext.value[1].value.charCodeAt(0) !== 0x00);\n e.value = ext.value[2].value;\n } else {\n e.value = ext.value[1].value;\n }\n // if the oid is known, get its name\n if(e.id in oids) {\n e.name = oids[e.id];\n\n // handle key usage\n if(e.name === 'keyUsage') {\n // get value as BIT STRING\n var ev = asn1.fromDer(e.value);\n var b2 = 0x00;\n var b3 = 0x00;\n if(ev.value.length > 1) {\n // skip first byte, just indicates unused bits which\n // will be padded with 0s anyway\n // get bytes with flag bits\n b2 = ev.value.charCodeAt(1);\n b3 = ev.value.length > 2 ? ev.value.charCodeAt(2) : 0;\n }\n // set flags\n e.digitalSignature = (b2 & 0x80) === 0x80;\n e.nonRepudiation = (b2 & 0x40) === 0x40;\n e.keyEncipherment = (b2 & 0x20) === 0x20;\n e.dataEncipherment = (b2 & 0x10) === 0x10;\n e.keyAgreement = (b2 & 0x08) === 0x08;\n e.keyCertSign = (b2 & 0x04) === 0x04;\n e.cRLSign = (b2 & 0x02) === 0x02;\n e.encipherOnly = (b2 & 0x01) === 0x01;\n e.decipherOnly = (b3 & 0x80) === 0x80;\n } else if(e.name === 'basicConstraints') {\n // handle basic constraints\n // get value as SEQUENCE\n var ev = asn1.fromDer(e.value);\n // get cA BOOLEAN flag (defaults to false)\n if(ev.value.length > 0 && ev.value[0].type === asn1.Type.BOOLEAN) {\n e.cA = (ev.value[0].value.charCodeAt(0) !== 0x00);\n } else {\n e.cA = false;\n }\n // get path length constraint\n var value = null;\n if(ev.value.length > 0 && ev.value[0].type === asn1.Type.INTEGER) {\n value = ev.value[0].value;\n } else if(ev.value.length > 1) {\n value = ev.value[1].value;\n }\n if(value !== null) {\n e.pathLenConstraint = asn1.derToInteger(value);\n }\n } else if(e.name === 'extKeyUsage') {\n // handle extKeyUsage\n // value is a SEQUENCE of OIDs\n var ev = asn1.fromDer(e.value);\n for(var vi = 0; vi < ev.value.length; ++vi) {\n var oid = asn1.derToOid(ev.value[vi].value);\n if(oid in oids) {\n e[oids[oid]] = true;\n } else {\n e[oid] = true;\n }\n }\n } else if(e.name === 'nsCertType') {\n // handle nsCertType\n // get value as BIT STRING\n var ev = asn1.fromDer(e.value);\n var b2 = 0x00;\n if(ev.value.length > 1) {\n // skip first byte, just indicates unused bits which\n // will be padded with 0s anyway\n // get bytes with flag bits\n b2 = ev.value.charCodeAt(1);\n }\n // set flags\n e.client = (b2 & 0x80) === 0x80;\n e.server = (b2 & 0x40) === 0x40;\n e.email = (b2 & 0x20) === 0x20;\n e.objsign = (b2 & 0x10) === 0x10;\n e.reserved = (b2 & 0x08) === 0x08;\n e.sslCA = (b2 & 0x04) === 0x04;\n e.emailCA = (b2 & 0x02) === 0x02;\n e.objCA = (b2 & 0x01) === 0x01;\n } else if(\n e.name === 'subjectAltName' ||\n e.name === 'issuerAltName') {\n // handle subjectAltName/issuerAltName\n e.altNames = [];\n\n // ev is a SYNTAX SEQUENCE\n var gn;\n var ev = asn1.fromDer(e.value);\n for(var n = 0; n < ev.value.length; ++n) {\n // get GeneralName\n gn = ev.value[n];\n\n var altName = {\n type: gn.type,\n value: gn.value\n };\n e.altNames.push(altName);\n\n // Note: Support for types 1,2,6,7,8\n switch(gn.type) {\n // rfc822Name\n case 1:\n // dNSName\n case 2:\n // uniformResourceIdentifier (URI)\n case 6:\n break;\n // IPAddress\n case 7:\n // convert to IPv4/IPv6 string representation\n altName.ip = forge.util.bytesToIP(gn.value);\n break;\n // registeredID\n case 8:\n altName.oid = asn1.derToOid(gn.value);\n break;\n default:\n // unsupported\n }\n }\n } else if(e.name === 'subjectKeyIdentifier') {\n // value is an OCTETSTRING w/the hash of the key-type specific\n // public key structure (eg: RSAPublicKey)\n var ev = asn1.fromDer(e.value);\n e.subjectKeyIdentifier = forge.util.bytesToHex(ev.value);\n }\n }\n return e;\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) from an ASN.1 object.\n *\n * Note: If the certification request is to be verified then compute hash\n * should be set to true. There is currently no implementation for converting\n * a certificate back to ASN.1 so the CertificationRequestInfo part of the\n * ASN.1 object needs to be scanned before the csr object is created.\n *\n * @param obj the asn1 representation of a PKCS#10 certification request (CSR).\n * @param computeHash true to compute the hash for verification.\n *\n * @return the certification request (CSR).\n */\npki.certificationRequestFromAsn1 = function(obj, computeHash) {\n // validate certification request and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, certificationRequestValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#10 certificate request. ' +\n 'ASN.1 object is not a PKCS#10 CertificationRequest.');\n error.errors = errors;\n throw error;\n }\n\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n throw new Error('Cannot read public key. OID is not RSA.');\n }\n\n // create certification request\n var csr = pki.createCertificationRequest();\n csr.version = capture.csrVersion ? capture.csrVersion.charCodeAt(0) : 0;\n csr.signatureOid = forge.asn1.derToOid(capture.csrSignatureOid);\n csr.signatureParameters = _readSignatureParameters(\n csr.signatureOid, capture.csrSignatureParams, true);\n csr.siginfo.algorithmOid = forge.asn1.derToOid(capture.csrSignatureOid);\n csr.siginfo.parameters = _readSignatureParameters(\n csr.siginfo.algorithmOid, capture.csrSignatureParams, false);\n csr.signature = capture.csrSignature;\n\n // keep CertificationRequestInfo to preserve signature when exporting\n csr.certificationRequestInfo = capture.certificationRequestInfo;\n\n if(computeHash) {\n // create digest for OID signature type\n csr.md = _createSignatureDigest({\n signatureOid: csr.signatureOid,\n type: 'certification request'\n });\n\n // produce DER formatted CertificationRequestInfo and digest it\n var bytes = asn1.toDer(csr.certificationRequestInfo);\n csr.md.update(bytes.getBytes());\n }\n\n // handle subject, build subject message digest\n var smd = forge.md.sha1.create();\n csr.subject.getField = function(sn) {\n return _getAttribute(csr.subject, sn);\n };\n csr.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n csr.subject.attributes.push(attr);\n };\n csr.subject.attributes = pki.RDNAttributesAsArray(\n capture.certificationRequestInfoSubject, smd);\n csr.subject.hash = smd.digest().toHex();\n\n // convert RSA public key from ASN.1\n csr.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo);\n\n // convert attributes from ASN.1\n csr.getAttribute = function(sn) {\n return _getAttribute(csr, sn);\n };\n csr.addAttribute = function(attr) {\n _fillMissingFields([attr]);\n csr.attributes.push(attr);\n };\n csr.attributes = pki.CRIAttributesAsArray(\n capture.certificationRequestInfoAttributes || []);\n\n return csr;\n};\n\n/**\n * Creates an empty certification request (a CSR or certificate signing\n * request). Once created, its public key and attributes can be set and then\n * it can be signed.\n *\n * @return the empty certification request.\n */\npki.createCertificationRequest = function() {\n var csr = {};\n csr.version = 0x00;\n csr.signatureOid = null;\n csr.signature = null;\n csr.siginfo = {};\n csr.siginfo.algorithmOid = null;\n\n csr.subject = {};\n csr.subject.getField = function(sn) {\n return _getAttribute(csr.subject, sn);\n };\n csr.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n csr.subject.attributes.push(attr);\n };\n csr.subject.attributes = [];\n csr.subject.hash = null;\n\n csr.publicKey = null;\n csr.attributes = [];\n csr.getAttribute = function(sn) {\n return _getAttribute(csr, sn);\n };\n csr.addAttribute = function(attr) {\n _fillMissingFields([attr]);\n csr.attributes.push(attr);\n };\n csr.md = null;\n\n /**\n * Sets the subject of this certification request.\n *\n * @param attrs the array of subject attributes to use.\n */\n csr.setSubject = function(attrs) {\n // set new attributes\n _fillMissingFields(attrs);\n csr.subject.attributes = attrs;\n csr.subject.hash = null;\n };\n\n /**\n * Sets the attributes of this certification request.\n *\n * @param attrs the array of attributes to use.\n */\n csr.setAttributes = function(attrs) {\n // set new attributes\n _fillMissingFields(attrs);\n csr.attributes = attrs;\n };\n\n /**\n * Signs this certification request using the given private key.\n *\n * @param key the private key to sign with.\n * @param md the message digest object to use (defaults to forge.md.sha1).\n */\n csr.sign = function(key, md) {\n // TODO: get signature OID from private key\n csr.md = md || forge.md.sha1.create();\n var algorithmOid = oids[csr.md.algorithm + 'WithRSAEncryption'];\n if(!algorithmOid) {\n var error = new Error('Could not compute certification request digest. ' +\n 'Unknown message digest algorithm OID.');\n error.algorithm = csr.md.algorithm;\n throw error;\n }\n csr.signatureOid = csr.siginfo.algorithmOid = algorithmOid;\n\n // get CertificationRequestInfo, convert to DER\n csr.certificationRequestInfo = pki.getCertificationRequestInfo(csr);\n var bytes = asn1.toDer(csr.certificationRequestInfo);\n\n // digest and sign\n csr.md.update(bytes.getBytes());\n csr.signature = key.sign(csr.md);\n };\n\n /**\n * Attempts verify the signature on the passed certification request using\n * its public key.\n *\n * A CSR that has been exported to a file in PEM format can be verified using\n * OpenSSL using this command:\n *\n * openssl req -in -verify -noout -text\n *\n * @return true if verified, false if not.\n */\n csr.verify = function() {\n var rval = false;\n\n var md = csr.md;\n if(md === null) {\n md = _createSignatureDigest({\n signatureOid: csr.signatureOid,\n type: 'certification request'\n });\n\n // produce DER formatted CertificationRequestInfo and digest it\n var cri = csr.certificationRequestInfo ||\n pki.getCertificationRequestInfo(csr);\n var bytes = asn1.toDer(cri);\n md.update(bytes.getBytes());\n }\n\n if(md !== null) {\n rval = _verifySignature({\n certificate: csr, md: md, signature: csr.signature\n });\n }\n\n return rval;\n };\n\n return csr;\n};\n\n/**\n * Converts an X.509 subject or issuer to an ASN.1 RDNSequence.\n *\n * @param obj the subject or issuer (distinguished name).\n *\n * @return the ASN.1 RDNSequence.\n */\nfunction _dnToAsn1(obj) {\n // create an empty RDNSequence\n var rval = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // iterate over attributes\n var attr, set;\n var attrs = obj.attributes;\n for(var i = 0; i < attrs.length; ++i) {\n attr = attrs[i];\n var value = attr.value;\n\n // reuse tag class for attribute value if available\n var valueTagClass = asn1.Type.PRINTABLESTRING;\n if('valueTagClass' in attr) {\n valueTagClass = attr.valueTagClass;\n\n if(valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(value);\n }\n // FIXME: handle more encodings\n }\n\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n set = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n // AttributeValue\n asn1.create(asn1.Class.UNIVERSAL, valueTagClass, false, value)\n ])\n ]);\n rval.value.push(set);\n }\n\n return rval;\n}\n\n/**\n * Gets all printable attributes (typically of an issuer or subject) in a\n * simplified JSON format for display.\n *\n * @param attrs the attributes.\n *\n * @return the JSON for display.\n */\nfunction _getAttributesAsJson(attrs) {\n var rval = {};\n for(var i = 0; i < attrs.length; ++i) {\n var attr = attrs[i];\n if(attr.shortName && (\n attr.valueTagClass === asn1.Type.UTF8 ||\n attr.valueTagClass === asn1.Type.PRINTABLESTRING ||\n attr.valueTagClass === asn1.Type.IA5STRING)) {\n var value = attr.value;\n if(attr.valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(attr.value);\n }\n if(!(attr.shortName in rval)) {\n rval[attr.shortName] = value;\n } else if(forge.util.isArray(rval[attr.shortName])) {\n rval[attr.shortName].push(value);\n } else {\n rval[attr.shortName] = [rval[attr.shortName], value];\n }\n }\n }\n return rval;\n}\n\n/**\n * Fills in missing fields in attributes.\n *\n * @param attrs the attributes to fill missing fields in.\n */\nfunction _fillMissingFields(attrs) {\n var attr;\n for(var i = 0; i < attrs.length; ++i) {\n attr = attrs[i];\n\n // populate missing name\n if(typeof attr.name === 'undefined') {\n if(attr.type && attr.type in pki.oids) {\n attr.name = pki.oids[attr.type];\n } else if(attr.shortName && attr.shortName in _shortNames) {\n attr.name = pki.oids[_shortNames[attr.shortName]];\n }\n }\n\n // populate missing type (OID)\n if(typeof attr.type === 'undefined') {\n if(attr.name && attr.name in pki.oids) {\n attr.type = pki.oids[attr.name];\n } else {\n var error = new Error('Attribute type not specified.');\n error.attribute = attr;\n throw error;\n }\n }\n\n // populate missing shortname\n if(typeof attr.shortName === 'undefined') {\n if(attr.name && attr.name in _shortNames) {\n attr.shortName = _shortNames[attr.name];\n }\n }\n\n // convert extensions to value\n if(attr.type === oids.extensionRequest) {\n attr.valueConstructed = true;\n attr.valueTagClass = asn1.Type.SEQUENCE;\n if(!attr.value && attr.extensions) {\n attr.value = [];\n for(var ei = 0; ei < attr.extensions.length; ++ei) {\n attr.value.push(pki.certificateExtensionToAsn1(\n _fillMissingExtensionFields(attr.extensions[ei])));\n }\n }\n }\n\n if(typeof attr.value === 'undefined') {\n var error = new Error('Attribute value not specified.');\n error.attribute = attr;\n throw error;\n }\n }\n}\n\n/**\n * Fills in missing fields in certificate extensions.\n *\n * @param e the extension.\n * @param [options] the options to use.\n * [cert] the certificate the extensions are for.\n *\n * @return the extension.\n */\nfunction _fillMissingExtensionFields(e, options) {\n options = options || {};\n\n // populate missing name\n if(typeof e.name === 'undefined') {\n if(e.id && e.id in pki.oids) {\n e.name = pki.oids[e.id];\n }\n }\n\n // populate missing id\n if(typeof e.id === 'undefined') {\n if(e.name && e.name in pki.oids) {\n e.id = pki.oids[e.name];\n } else {\n var error = new Error('Extension ID not specified.');\n error.extension = e;\n throw error;\n }\n }\n\n if(typeof e.value !== 'undefined') {\n return e;\n }\n\n // handle missing value:\n\n // value is a BIT STRING\n if(e.name === 'keyUsage') {\n // build flags\n var unused = 0;\n var b2 = 0x00;\n var b3 = 0x00;\n if(e.digitalSignature) {\n b2 |= 0x80;\n unused = 7;\n }\n if(e.nonRepudiation) {\n b2 |= 0x40;\n unused = 6;\n }\n if(e.keyEncipherment) {\n b2 |= 0x20;\n unused = 5;\n }\n if(e.dataEncipherment) {\n b2 |= 0x10;\n unused = 4;\n }\n if(e.keyAgreement) {\n b2 |= 0x08;\n unused = 3;\n }\n if(e.keyCertSign) {\n b2 |= 0x04;\n unused = 2;\n }\n if(e.cRLSign) {\n b2 |= 0x02;\n unused = 1;\n }\n if(e.encipherOnly) {\n b2 |= 0x01;\n unused = 0;\n }\n if(e.decipherOnly) {\n b3 |= 0x80;\n unused = 7;\n }\n\n // create bit string\n var value = String.fromCharCode(unused);\n if(b3 !== 0) {\n value += String.fromCharCode(b2) + String.fromCharCode(b3);\n } else if(b2 !== 0) {\n value += String.fromCharCode(b2);\n }\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value);\n } else if(e.name === 'basicConstraints') {\n // basicConstraints is a SEQUENCE\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n // cA BOOLEAN flag defaults to false\n if(e.cA) {\n e.value.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false,\n String.fromCharCode(0xFF)));\n }\n if('pathLenConstraint' in e) {\n e.value.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(e.pathLenConstraint).getBytes()));\n }\n } else if(e.name === 'extKeyUsage') {\n // extKeyUsage is a SEQUENCE of OIDs\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n for(var key in e) {\n if(e[key] !== true) {\n continue;\n }\n // key is name in OID map\n if(key in oids) {\n seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID,\n false, asn1.oidToDer(oids[key]).getBytes()));\n } else if(key.indexOf('.') !== -1) {\n // assume key is an OID\n seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID,\n false, asn1.oidToDer(key).getBytes()));\n }\n }\n } else if(e.name === 'nsCertType') {\n // nsCertType is a BIT STRING\n // build flags\n var unused = 0;\n var b2 = 0x00;\n\n if(e.client) {\n b2 |= 0x80;\n unused = 7;\n }\n if(e.server) {\n b2 |= 0x40;\n unused = 6;\n }\n if(e.email) {\n b2 |= 0x20;\n unused = 5;\n }\n if(e.objsign) {\n b2 |= 0x10;\n unused = 4;\n }\n if(e.reserved) {\n b2 |= 0x08;\n unused = 3;\n }\n if(e.sslCA) {\n b2 |= 0x04;\n unused = 2;\n }\n if(e.emailCA) {\n b2 |= 0x02;\n unused = 1;\n }\n if(e.objCA) {\n b2 |= 0x01;\n unused = 0;\n }\n\n // create bit string\n var value = String.fromCharCode(unused);\n if(b2 !== 0) {\n value += String.fromCharCode(b2);\n }\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value);\n } else if(e.name === 'subjectAltName' || e.name === 'issuerAltName') {\n // SYNTAX SEQUENCE\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n var altName;\n for(var n = 0; n < e.altNames.length; ++n) {\n altName = e.altNames[n];\n var value = altName.value;\n // handle IP\n if(altName.type === 7 && altName.ip) {\n value = forge.util.bytesFromIP(altName.ip);\n if(value === null) {\n var error = new Error(\n 'Extension \"ip\" value is not a valid IPv4 or IPv6 address.');\n error.extension = e;\n throw error;\n }\n } else if(altName.type === 8) {\n // handle OID\n if(altName.oid) {\n value = asn1.oidToDer(asn1.oidToDer(altName.oid));\n } else {\n // deprecated ... convert value to OID\n value = asn1.oidToDer(value);\n }\n }\n e.value.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, altName.type, false,\n value));\n }\n } else if(e.name === 'nsComment' && options.cert) {\n // sanity check value is ASCII (req'd) and not too big\n if(!(/^[\\x00-\\x7F]*$/.test(e.comment)) ||\n (e.comment.length < 1) || (e.comment.length > 128)) {\n throw new Error('Invalid \"nsComment\" content.');\n }\n // IA5STRING opaque comment\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.IA5STRING, false, e.comment);\n } else if(e.name === 'subjectKeyIdentifier' && options.cert) {\n var ski = options.cert.generateSubjectKeyIdentifier();\n e.subjectKeyIdentifier = ski.toHex();\n // OCTETSTRING w/digest\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ski.getBytes());\n } else if(e.name === 'authorityKeyIdentifier' && options.cert) {\n // SYNTAX SEQUENCE\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n\n if(e.keyIdentifier) {\n var keyIdentifier = (e.keyIdentifier === true ?\n options.cert.generateSubjectKeyIdentifier().getBytes() :\n e.keyIdentifier);\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, false, keyIdentifier));\n }\n\n if(e.authorityCertIssuer) {\n var authorityCertIssuer = [\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 4, true, [\n _dnToAsn1(e.authorityCertIssuer === true ?\n options.cert.issuer : e.authorityCertIssuer)\n ])\n ];\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, authorityCertIssuer));\n }\n\n if(e.serialNumber) {\n var serialNumber = forge.util.hexToBytes(e.serialNumber === true ?\n options.cert.serialNumber : e.serialNumber);\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, false, serialNumber));\n }\n } else if(e.name === 'cRLDistributionPoints') {\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n\n // Create sub SEQUENCE of DistributionPointName\n var subSeq = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // Create fullName CHOICE\n var fullNameGeneralNames = asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n var altName;\n for(var n = 0; n < e.altNames.length; ++n) {\n altName = e.altNames[n];\n var value = altName.value;\n // handle IP\n if(altName.type === 7 && altName.ip) {\n value = forge.util.bytesFromIP(altName.ip);\n if(value === null) {\n var error = new Error(\n 'Extension \"ip\" value is not a valid IPv4 or IPv6 address.');\n error.extension = e;\n throw error;\n }\n } else if(altName.type === 8) {\n // handle OID\n if(altName.oid) {\n value = asn1.oidToDer(asn1.oidToDer(altName.oid));\n } else {\n // deprecated ... convert value to OID\n value = asn1.oidToDer(value);\n }\n }\n fullNameGeneralNames.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, altName.type, false,\n value));\n }\n\n // Add to the parent SEQUENCE\n subSeq.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, [fullNameGeneralNames]));\n seq.push(subSeq);\n }\n\n // ensure value has been defined by now\n if(typeof e.value === 'undefined') {\n var error = new Error('Extension value not specified.');\n error.extension = e;\n throw error;\n }\n\n return e;\n}\n\n/**\n * Convert signature parameters object to ASN.1\n *\n * @param {String} oid Signature algorithm OID\n * @param params The signature parametrs object\n * @return ASN.1 object representing signature parameters\n */\nfunction _signatureParametersToAsn1(oid, params) {\n switch(oid) {\n case oids['RSASSA-PSS']:\n var parts = [];\n\n if(params.hash.algorithmOid !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.hash.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ]));\n }\n\n if(params.mgf.algorithmOid !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.mgf.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.mgf.hash.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ])\n ]));\n }\n\n if(params.saltLength !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(params.saltLength).getBytes())\n ]));\n }\n\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, parts);\n\n default:\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '');\n }\n}\n\n/**\n * Converts a certification request's attributes to an ASN.1 set of\n * CRIAttributes.\n *\n * @param csr certification request.\n *\n * @return the ASN.1 set of CRIAttributes.\n */\nfunction _CRIAttributesToAsn1(csr) {\n // create an empty context-specific container\n var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n\n // no attributes, return empty container\n if(csr.attributes.length === 0) {\n return rval;\n }\n\n // each attribute has a sequence with a type and a set of values\n var attrs = csr.attributes;\n for(var i = 0; i < attrs.length; ++i) {\n var attr = attrs[i];\n var value = attr.value;\n\n // reuse tag class for attribute value if available\n var valueTagClass = asn1.Type.UTF8;\n if('valueTagClass' in attr) {\n valueTagClass = attr.valueTagClass;\n }\n if(valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(value);\n }\n var valueConstructed = false;\n if('valueConstructed' in attr) {\n valueConstructed = attr.valueConstructed;\n }\n // FIXME: handle more encodings\n\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n // AttributeValue\n asn1.create(\n asn1.Class.UNIVERSAL, valueTagClass, valueConstructed, value)\n ])\n ]);\n rval.value.push(seq);\n }\n\n return rval;\n}\n\nvar jan_1_1950 = new Date('1950-01-01T00:00:00Z');\nvar jan_1_2050 = new Date('2050-01-01T00:00:00Z');\n\n/**\n * Converts a Date object to ASN.1\n * Handles the different format before and after 1st January 2050\n *\n * @param date date object.\n *\n * @return the ASN.1 object representing the date.\n */\nfunction _dateToAsn1(date) {\n if(date >= jan_1_1950 && date < jan_1_2050) {\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false,\n asn1.dateToUtcTime(date));\n } else {\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false,\n asn1.dateToGeneralizedTime(date));\n }\n}\n\n/**\n * Gets the ASN.1 TBSCertificate part of an X.509v3 certificate.\n *\n * @param cert the certificate.\n *\n * @return the asn1 TBSCertificate.\n */\npki.getTBSCertificate = function(cert) {\n // TBSCertificate\n var notBefore = _dateToAsn1(cert.validity.notBefore);\n var notAfter = _dateToAsn1(cert.validity.notAfter);\n var tbs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // integer\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(cert.version).getBytes())\n ]),\n // serialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(cert.serialNumber)),\n // signature\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(cert.siginfo.algorithmOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(\n cert.siginfo.algorithmOid, cert.siginfo.parameters)\n ]),\n // issuer\n _dnToAsn1(cert.issuer),\n // validity\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n notBefore,\n notAfter\n ]),\n // subject\n _dnToAsn1(cert.subject),\n // SubjectPublicKeyInfo\n pki.publicKeyToAsn1(cert.publicKey)\n ]);\n\n if(cert.issuer.uniqueId) {\n // issuerUniqueID (optional)\n tbs.value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n // TODO: support arbitrary bit length ids\n String.fromCharCode(0x00) +\n cert.issuer.uniqueId\n )\n ])\n );\n }\n if(cert.subject.uniqueId) {\n // subjectUniqueID (optional)\n tbs.value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n // TODO: support arbitrary bit length ids\n String.fromCharCode(0x00) +\n cert.subject.uniqueId\n )\n ])\n );\n }\n\n if(cert.extensions.length > 0) {\n // extensions (optional)\n tbs.value.push(pki.certificateExtensionsToAsn1(cert.extensions));\n }\n\n return tbs;\n};\n\n/**\n * Gets the ASN.1 CertificationRequestInfo part of a\n * PKCS#10 CertificationRequest.\n *\n * @param csr the certification request.\n *\n * @return the asn1 CertificationRequestInfo.\n */\npki.getCertificationRequestInfo = function(csr) {\n // CertificationRequestInfo\n var cri = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(csr.version).getBytes()),\n // subject\n _dnToAsn1(csr.subject),\n // SubjectPublicKeyInfo\n pki.publicKeyToAsn1(csr.publicKey),\n // attributes\n _CRIAttributesToAsn1(csr)\n ]);\n\n return cri;\n};\n\n/**\n * Converts a DistinguishedName (subject or issuer) to an ASN.1 object.\n *\n * @param dn the DistinguishedName.\n *\n * @return the asn1 representation of a DistinguishedName.\n */\npki.distinguishedNameToAsn1 = function(dn) {\n return _dnToAsn1(dn);\n};\n\n/**\n * Converts an X.509v3 RSA certificate to an ASN.1 object.\n *\n * @param cert the certificate.\n *\n * @return the asn1 representation of an X.509v3 RSA certificate.\n */\npki.certificateToAsn1 = function(cert) {\n // prefer cached TBSCertificate over generating one\n var tbsCertificate = cert.tbsCertificate || pki.getTBSCertificate(cert);\n\n // Certificate\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // TBSCertificate\n tbsCertificate,\n // AlgorithmIdentifier (signature algorithm)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(cert.signatureOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(cert.signatureOid, cert.signatureParameters)\n ]),\n // SignatureValue\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n String.fromCharCode(0x00) + cert.signature)\n ]);\n};\n\n/**\n * Converts X.509v3 certificate extensions to ASN.1.\n *\n * @param exts the extensions to convert.\n *\n * @return the extensions in ASN.1 format.\n */\npki.certificateExtensionsToAsn1 = function(exts) {\n // create top-level extension container\n var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 3, true, []);\n\n // create extension sequence (stores a sequence for each extension)\n var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n rval.value.push(seq);\n\n for(var i = 0; i < exts.length; ++i) {\n seq.value.push(pki.certificateExtensionToAsn1(exts[i]));\n }\n\n return rval;\n};\n\n/**\n * Converts a single certificate extension to ASN.1.\n *\n * @param ext the extension to convert.\n *\n * @return the extension in ASN.1 format.\n */\npki.certificateExtensionToAsn1 = function(ext) {\n // create a sequence for each extension\n var extseq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // extnID (OID)\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(ext.id).getBytes()));\n\n // critical defaults to false\n if(ext.critical) {\n // critical BOOLEAN DEFAULT FALSE\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false,\n String.fromCharCode(0xFF)));\n }\n\n var value = ext.value;\n if(typeof ext.value !== 'string') {\n // value is asn.1\n value = asn1.toDer(value).getBytes();\n }\n\n // extnValue (OCTET STRING)\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, value));\n\n return extseq;\n};\n\n/**\n * Converts a PKCS#10 certification request to an ASN.1 object.\n *\n * @param csr the certification request.\n *\n * @return the asn1 representation of a certification request.\n */\npki.certificationRequestToAsn1 = function(csr) {\n // prefer cached CertificationRequestInfo over generating one\n var cri = csr.certificationRequestInfo ||\n pki.getCertificationRequestInfo(csr);\n\n // Certificate\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // CertificationRequestInfo\n cri,\n // AlgorithmIdentifier (signature algorithm)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(csr.signatureOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(csr.signatureOid, csr.signatureParameters)\n ]),\n // signature\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n String.fromCharCode(0x00) + csr.signature)\n ]);\n};\n\n/**\n * Creates a CA store.\n *\n * @param certs an optional array of certificate objects or PEM-formatted\n * certificate strings to add to the CA store.\n *\n * @return the CA store.\n */\npki.createCaStore = function(certs) {\n // create CA store\n var caStore = {\n // stored certificates\n certs: {}\n };\n\n /**\n * Gets the certificate that issued the passed certificate or its\n * 'parent'.\n *\n * @param cert the certificate to get the parent for.\n *\n * @return the parent certificate or null if none was found.\n */\n caStore.getIssuer = function(cert) {\n var rval = getBySubject(cert.issuer);\n\n // see if there are multiple matches\n /*if(forge.util.isArray(rval)) {\n // TODO: resolve multiple matches by checking\n // authorityKey/subjectKey/issuerUniqueID/other identifiers, etc.\n // FIXME: or alternatively do authority key mapping\n // if possible (X.509v1 certs can't work?)\n throw new Error('Resolving multiple issuer matches not implemented yet.');\n }*/\n\n return rval;\n };\n\n /**\n * Adds a trusted certificate to the store.\n *\n * @param cert the certificate to add as a trusted certificate (either a\n * pki.certificate object or a PEM-formatted certificate).\n */\n caStore.addCertificate = function(cert) {\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n\n ensureSubjectHasHash(cert.subject);\n\n if(!caStore.hasCertificate(cert)) { // avoid duplicate certificates in store\n if(cert.subject.hash in caStore.certs) {\n // subject hash already exists, append to array\n var tmp = caStore.certs[cert.subject.hash];\n if(!forge.util.isArray(tmp)) {\n tmp = [tmp];\n }\n tmp.push(cert);\n caStore.certs[cert.subject.hash] = tmp;\n } else {\n caStore.certs[cert.subject.hash] = cert;\n }\n }\n };\n\n /**\n * Checks to see if the given certificate is in the store.\n *\n * @param cert the certificate to check (either a pki.certificate or a\n * PEM-formatted certificate).\n *\n * @return true if the certificate is in the store, false if not.\n */\n caStore.hasCertificate = function(cert) {\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n\n var match = getBySubject(cert.subject);\n if(!match) {\n return false;\n }\n if(!forge.util.isArray(match)) {\n match = [match];\n }\n // compare DER-encoding of certificates\n var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes();\n for(var i = 0; i < match.length; ++i) {\n var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes();\n if(der1 === der2) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * Lists all of the certificates kept in the store.\n *\n * @return an array of all of the pki.certificate objects in the store.\n */\n caStore.listAllCertificates = function() {\n var certList = [];\n\n for(var hash in caStore.certs) {\n if(caStore.certs.hasOwnProperty(hash)) {\n var value = caStore.certs[hash];\n if(!forge.util.isArray(value)) {\n certList.push(value);\n } else {\n for(var i = 0; i < value.length; ++i) {\n certList.push(value[i]);\n }\n }\n }\n }\n\n return certList;\n };\n\n /**\n * Removes a certificate from the store.\n *\n * @param cert the certificate to remove (either a pki.certificate or a\n * PEM-formatted certificate).\n *\n * @return the certificate that was removed or null if the certificate\n * wasn't in store.\n */\n caStore.removeCertificate = function(cert) {\n var result;\n\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n ensureSubjectHasHash(cert.subject);\n if(!caStore.hasCertificate(cert)) {\n return null;\n }\n\n var match = getBySubject(cert.subject);\n\n if(!forge.util.isArray(match)) {\n result = caStore.certs[cert.subject.hash];\n delete caStore.certs[cert.subject.hash];\n return result;\n }\n\n // compare DER-encoding of certificates\n var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes();\n for(var i = 0; i < match.length; ++i) {\n var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes();\n if(der1 === der2) {\n result = match[i];\n match.splice(i, 1);\n }\n }\n if(match.length === 0) {\n delete caStore.certs[cert.subject.hash];\n }\n\n return result;\n };\n\n function getBySubject(subject) {\n ensureSubjectHasHash(subject);\n return caStore.certs[subject.hash] || null;\n }\n\n function ensureSubjectHasHash(subject) {\n // produce subject hash if it doesn't exist\n if(!subject.hash) {\n var md = forge.md.sha1.create();\n subject.attributes = pki.RDNAttributesAsArray(_dnToAsn1(subject), md);\n subject.hash = md.digest().toHex();\n }\n }\n\n // auto-add passed in certs\n if(certs) {\n // parse PEM-formatted certificates as necessary\n for(var i = 0; i < certs.length; ++i) {\n var cert = certs[i];\n caStore.addCertificate(cert);\n }\n }\n\n return caStore;\n};\n\n/**\n * Certificate verification errors, based on TLS.\n */\npki.certificateError = {\n bad_certificate: 'forge.pki.BadCertificate',\n unsupported_certificate: 'forge.pki.UnsupportedCertificate',\n certificate_revoked: 'forge.pki.CertificateRevoked',\n certificate_expired: 'forge.pki.CertificateExpired',\n certificate_unknown: 'forge.pki.CertificateUnknown',\n unknown_ca: 'forge.pki.UnknownCertificateAuthority'\n};\n\n/**\n * Verifies a certificate chain against the given Certificate Authority store\n * with an optional custom verify callback.\n *\n * @param caStore a certificate store to verify against.\n * @param chain the certificate chain to verify, with the root or highest\n * authority at the end (an array of certificates).\n * @param options a callback to be called for every certificate in the chain or\n * an object with:\n * verify a callback to be called for every certificate in the\n * chain\n * validityCheckDate the date against which the certificate\n * validity period should be checked. Pass null to not check\n * the validity period. By default, the current date is used.\n *\n * The verify callback has the following signature:\n *\n * verified - Set to true if certificate was verified, otherwise the\n * pki.certificateError for why the certificate failed.\n * depth - The current index in the chain, where 0 is the end point's cert.\n * certs - The certificate chain, *NOTE* an empty chain indicates an anonymous\n * end point.\n *\n * The function returns true on success and on failure either the appropriate\n * pki.certificateError or an object with 'error' set to the appropriate\n * pki.certificateError and 'message' set to a custom error message.\n *\n * @return true if successful, error thrown if not.\n */\npki.verifyCertificateChain = function(caStore, chain, options) {\n /* From: RFC3280 - Internet X.509 Public Key Infrastructure Certificate\n Section 6: Certification Path Validation\n See inline parentheticals related to this particular implementation.\n\n The primary goal of path validation is to verify the binding between\n a subject distinguished name or a subject alternative name and subject\n public key, as represented in the end entity certificate, based on the\n public key of the trust anchor. This requires obtaining a sequence of\n certificates that support that binding. That sequence should be provided\n in the passed 'chain'. The trust anchor should be in the given CA\n store. The 'end entity' certificate is the certificate provided by the\n end point (typically a server) and is the first in the chain.\n\n To meet this goal, the path validation process verifies, among other\n things, that a prospective certification path (a sequence of n\n certificates or a 'chain') satisfies the following conditions:\n\n (a) for all x in {1, ..., n-1}, the subject of certificate x is\n the issuer of certificate x+1;\n\n (b) certificate 1 is issued by the trust anchor;\n\n (c) certificate n is the certificate to be validated; and\n\n (d) for all x in {1, ..., n}, the certificate was valid at the\n time in question.\n\n Note that here 'n' is index 0 in the chain and 1 is the last certificate\n in the chain and it must be signed by a certificate in the connection's\n CA store.\n\n The path validation process also determines the set of certificate\n policies that are valid for this path, based on the certificate policies\n extension, policy mapping extension, policy constraints extension, and\n inhibit any-policy extension.\n\n Note: Policy mapping extension not supported (Not Required).\n\n Note: If the certificate has an unsupported critical extension, then it\n must be rejected.\n\n Note: A certificate is self-issued if the DNs that appear in the subject\n and issuer fields are identical and are not empty.\n\n The path validation algorithm assumes the following seven inputs are\n provided to the path processing logic. What this specific implementation\n will use is provided parenthetically:\n\n (a) a prospective certification path of length n (the 'chain')\n (b) the current date/time: ('now').\n (c) user-initial-policy-set: A set of certificate policy identifiers\n naming the policies that are acceptable to the certificate user.\n The user-initial-policy-set contains the special value any-policy\n if the user is not concerned about certificate policy\n (Not implemented. Any policy is accepted).\n (d) trust anchor information, describing a CA that serves as a trust\n anchor for the certification path. The trust anchor information\n includes:\n\n (1) the trusted issuer name,\n (2) the trusted public key algorithm,\n (3) the trusted public key, and\n (4) optionally, the trusted public key parameters associated\n with the public key.\n\n (Trust anchors are provided via certificates in the CA store).\n\n The trust anchor information may be provided to the path processing\n procedure in the form of a self-signed certificate. The trusted anchor\n information is trusted because it was delivered to the path processing\n procedure by some trustworthy out-of-band procedure. If the trusted\n public key algorithm requires parameters, then the parameters are\n provided along with the trusted public key (No parameters used in this\n implementation).\n\n (e) initial-policy-mapping-inhibit, which indicates if policy mapping is\n allowed in the certification path.\n (Not implemented, no policy checking)\n\n (f) initial-explicit-policy, which indicates if the path must be valid\n for at least one of the certificate policies in the user-initial-\n policy-set.\n (Not implemented, no policy checking)\n\n (g) initial-any-policy-inhibit, which indicates whether the\n anyPolicy OID should be processed if it is included in a\n certificate.\n (Not implemented, so any policy is valid provided that it is\n not marked as critical) */\n\n /* Basic Path Processing:\n\n For each certificate in the 'chain', the following is checked:\n\n 1. The certificate validity period includes the current time.\n 2. The certificate was signed by its parent (where the parent is either\n the next in the chain or from the CA store). Allow processing to\n continue to the next step if no parent is found but the certificate is\n in the CA store.\n 3. TODO: The certificate has not been revoked.\n 4. The certificate issuer name matches the parent's subject name.\n 5. TODO: If the certificate is self-issued and not the final certificate\n in the chain, skip this step, otherwise verify that the subject name\n is within one of the permitted subtrees of X.500 distinguished names\n and that each of the alternative names in the subjectAltName extension\n (critical or non-critical) is within one of the permitted subtrees for\n that name type.\n 6. TODO: If the certificate is self-issued and not the final certificate\n in the chain, skip this step, otherwise verify that the subject name\n is not within one of the excluded subtrees for X.500 distinguished\n names and none of the subjectAltName extension names are excluded for\n that name type.\n 7. The other steps in the algorithm for basic path processing involve\n handling the policy extension which is not presently supported in this\n implementation. Instead, if a critical policy extension is found, the\n certificate is rejected as not supported.\n 8. If the certificate is not the first or if its the only certificate in\n the chain (having no parent from the CA store or is self-signed) and it\n has a critical key usage extension, verify that the keyCertSign bit is\n set. If the key usage extension exists, verify that the basic\n constraints extension exists. If the basic constraints extension exists,\n verify that the cA flag is set. If pathLenConstraint is set, ensure that\n the number of certificates that precede in the chain (come earlier\n in the chain as implemented below), excluding the very first in the\n chain (typically the end-entity one), isn't greater than the\n pathLenConstraint. This constraint limits the number of intermediate\n CAs that may appear below a CA before only end-entity certificates\n may be issued. */\n\n // if a verify callback is passed as the third parameter, package it within\n // the options object. This is to support a legacy function signature that\n // expected the verify callback as the third parameter.\n if(typeof options === 'function') {\n options = {verify: options};\n }\n options = options || {};\n\n // copy cert chain references to another array to protect against changes\n // in verify callback\n chain = chain.slice(0);\n var certs = chain.slice(0);\n\n var validityCheckDate = options.validityCheckDate;\n // if no validityCheckDate is specified, default to the current date. Make\n // sure to maintain the value null because it indicates that the validity\n // period should not be checked.\n if(typeof validityCheckDate === 'undefined') {\n validityCheckDate = new Date();\n }\n\n // verify each cert in the chain using its parent, where the parent\n // is either the next in the chain or from the CA store\n var first = true;\n var error = null;\n var depth = 0;\n do {\n var cert = chain.shift();\n var parent = null;\n var selfSigned = false;\n\n if(validityCheckDate) {\n // 1. check valid time\n if(validityCheckDate < cert.validity.notBefore ||\n validityCheckDate > cert.validity.notAfter) {\n error = {\n message: 'Certificate is not valid yet or has expired.',\n error: pki.certificateError.certificate_expired,\n notBefore: cert.validity.notBefore,\n notAfter: cert.validity.notAfter,\n // TODO: we might want to reconsider renaming 'now' to\n // 'validityCheckDate' should this API be changed in the future.\n now: validityCheckDate\n };\n }\n }\n\n // 2. verify with parent from chain or CA store\n if(error === null) {\n parent = chain[0] || caStore.getIssuer(cert);\n if(parent === null) {\n // check for self-signed cert\n if(cert.isIssuer(cert)) {\n selfSigned = true;\n parent = cert;\n }\n }\n\n if(parent) {\n // FIXME: current CA store implementation might have multiple\n // certificates where the issuer can't be determined from the\n // certificate (happens rarely with, eg: old certificates) so normalize\n // by always putting parents into an array\n // TODO: there's may be an extreme degenerate case currently uncovered\n // where an old intermediate certificate seems to have a matching parent\n // but none of the parents actually verify ... but the intermediate\n // is in the CA and it should pass this check; needs investigation\n var parents = parent;\n if(!forge.util.isArray(parents)) {\n parents = [parents];\n }\n\n // try to verify with each possible parent (typically only one)\n var verified = false;\n while(!verified && parents.length > 0) {\n parent = parents.shift();\n try {\n verified = parent.verify(cert);\n } catch(ex) {\n // failure to verify, don't care why, try next one\n }\n }\n\n if(!verified) {\n error = {\n message: 'Certificate signature is invalid.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n\n if(error === null && (!parent || selfSigned) &&\n !caStore.hasCertificate(cert)) {\n // no parent issuer and certificate itself is not trusted\n error = {\n message: 'Certificate is not trusted.',\n error: pki.certificateError.unknown_ca\n };\n }\n }\n\n // TODO: 3. check revoked\n\n // 4. check for matching issuer/subject\n if(error === null && parent && !cert.isIssuer(parent)) {\n // parent is not issuer\n error = {\n message: 'Certificate issuer is invalid.',\n error: pki.certificateError.bad_certificate\n };\n }\n\n // 5. TODO: check names with permitted names tree\n\n // 6. TODO: check names against excluded names tree\n\n // 7. check for unsupported critical extensions\n if(error === null) {\n // supported extensions\n var se = {\n keyUsage: true,\n basicConstraints: true\n };\n for(var i = 0; error === null && i < cert.extensions.length; ++i) {\n var ext = cert.extensions[i];\n if(ext.critical && !(ext.name in se)) {\n error = {\n message:\n 'Certificate has an unsupported critical extension.',\n error: pki.certificateError.unsupported_certificate\n };\n }\n }\n }\n\n // 8. check for CA if cert is not first or is the only certificate\n // remaining in chain with no parent or is self-signed\n if(error === null &&\n (!first || (chain.length === 0 && (!parent || selfSigned)))) {\n // first check keyUsage extension and then basic constraints\n var bcExt = cert.getExtension('basicConstraints');\n var keyUsageExt = cert.getExtension('keyUsage');\n if(keyUsageExt !== null) {\n // keyCertSign must be true and there must be a basic\n // constraints extension\n if(!keyUsageExt.keyCertSign || bcExt === null) {\n // bad certificate\n error = {\n message:\n 'Certificate keyUsage or basicConstraints conflict ' +\n 'or indicate that the certificate is not a CA. ' +\n 'If the certificate is the only one in the chain or ' +\n 'isn\\'t the first then the certificate must be a ' +\n 'valid CA.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n // basic constraints cA flag must be set\n if(error === null && bcExt !== null && !bcExt.cA) {\n // bad certificate\n error = {\n message:\n 'Certificate basicConstraints indicates the certificate ' +\n 'is not a CA.',\n error: pki.certificateError.bad_certificate\n };\n }\n // if error is not null and keyUsage is available, then we know it\n // has keyCertSign and there is a basic constraints extension too,\n // which means we can check pathLenConstraint (if it exists)\n if(error === null && keyUsageExt !== null &&\n 'pathLenConstraint' in bcExt) {\n // pathLen is the maximum # of intermediate CA certs that can be\n // found between the current certificate and the end-entity (depth 0)\n // certificate; this number does not include the end-entity (depth 0,\n // last in the chain) even if it happens to be a CA certificate itself\n var pathLen = depth - 1;\n if(pathLen > bcExt.pathLenConstraint) {\n // pathLenConstraint violated, bad certificate\n error = {\n message:\n 'Certificate basicConstraints pathLenConstraint violated.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n }\n\n // call application callback\n var vfd = (error === null) ? true : error.error;\n var ret = options.verify ? options.verify(vfd, depth, certs) : vfd;\n if(ret === true) {\n // clear any set error\n error = null;\n } else {\n // if passed basic tests, set default message and alert\n if(vfd === true) {\n error = {\n message: 'The application rejected the certificate.',\n error: pki.certificateError.bad_certificate\n };\n }\n\n // check for custom error info\n if(ret || ret === 0) {\n // set custom message and error\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.error) {\n error.error = ret.error;\n }\n } else if(typeof ret === 'string') {\n // set custom error\n error.error = ret;\n }\n }\n\n // throw error\n throw error;\n }\n\n // no longer first cert in chain\n first = false;\n ++depth;\n } while(chain.length > 0);\n\n return true;\n};\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","'use strict';\nconst Queue = require('yocto-queue');\n\nconst pLimit = concurrency => {\n\tif (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, ...args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, ...args) => {\n\t\tqueue.enqueue(run.bind(null, fn, resolve, ...args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, ...args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn generator;\n};\n\nmodule.exports = pLimit;\n","'use strict';\nconst {promisify} = require('util');\nconst fs = require('fs');\n\nasync function isType(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\tconst stats = await promisify(fs[fsStatType])(filePath);\n\t\treturn stats[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nfunction isTypeSync(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\treturn fs[fsStatType](filePath)[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nexports.isFile = isType.bind(null, 'stat', 'isFile');\nexports.isDirectory = isType.bind(null, 'stat', 'isDirectory');\nexports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink');\nexports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile');\nexports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory');\nexports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink');\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n","'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n SEP: path.sep,\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split('.').map(Number);\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n return true;\n }\n return false;\n};\n\nexports.isWindows = options => {\n if (options && typeof options.windows === 'boolean') {\n return options.windows;\n }\n return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n","var once = require('once')\nvar eos = require('end-of-stream')\nvar fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n if (!ancient) return false // newer node version do not need to care about fs is a special way\n if (!fs) return false // browser\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n callback = once(callback)\n\n var closed = false\n stream.on('close', function () {\n closed = true\n })\n\n eos(stream, {readable: reading, writable: writing}, function (err) {\n if (err) return callback(err)\n closed = true\n callback()\n })\n\n var destroyed = false\n return function (err) {\n if (closed) return\n if (destroyed) return\n destroyed = true\n\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n if (isFn(stream.destroy)) return stream.destroy()\n\n callback(err || new Error('stream was destroyed'))\n }\n}\n\nvar call = function (fn) {\n fn()\n}\n\nvar pipe = function (from, to) {\n return from.pipe(to)\n}\n\nvar pump = function () {\n var streams = Array.prototype.slice.call(arguments)\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n if (Array.isArray(streams[0])) streams = streams[0]\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n var error\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1\n var writing = i > 0\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err\n if (err) destroys.forEach(call)\n if (reading) return\n destroys.forEach(call)\n callback(error)\n })\n })\n\n return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n","var pump = require('pump')\nvar inherits = require('inherits')\nvar Duplexify = require('duplexify')\n\nvar toArray = function(args) {\n if (!args.length) return []\n return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args)\n}\n\nvar define = function(opts) {\n var Pumpify = function() {\n var streams = toArray(arguments)\n if (!(this instanceof Pumpify)) return new Pumpify(streams)\n Duplexify.call(this, null, null, opts)\n if (streams.length) this.setPipeline(streams)\n }\n\n inherits(Pumpify, Duplexify)\n\n Pumpify.prototype.setPipeline = function() {\n var streams = toArray(arguments)\n var self = this\n var ended = false\n var w = streams[0]\n var r = streams[streams.length-1]\n\n r = r.readable ? r : null\n w = w.writable ? w : null\n\n var onclose = function() {\n streams[0].emit('error', new Error('stream was destroyed'))\n }\n\n this.on('close', onclose)\n this.on('prefinish', function() {\n if (!ended) self.cork()\n })\n\n pump(streams, function(err) {\n self.removeListener('close', onclose)\n if (err) return self.destroy(err.message === 'premature close' ? null : err)\n ended = true\n // pump ends after the last stream is not writable *but*\n // pumpify still forwards the readable part so we need to catch errors\n // still, so reenable autoDestroy in this case\n if (self._autoDestroy === false) self._autoDestroy = true\n self.uncork()\n })\n\n if (this.destroyed) return onclose()\n this.setWritable(w)\n this.setReadable(r)\n }\n\n return Pumpify\n}\n\nmodule.exports = define({autoDestroy:false, destroy:false})\nmodule.exports.obj = define({autoDestroy: false, destroy:false, objectMode:true, highWaterMark:16})\nmodule.exports.ctor = define\n","/*! queue-microtask. MIT License. Feross Aboukhadijeh */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n","'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\n\nfunction from(Readable, iterable, opts) {\n var iterator;\n\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts)); // Reading boolean to protect against _read\n // being called before last iteration completion.\n\n var reading = false;\n\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n\n function next() {\n return _next2.apply(this, arguments);\n }\n\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _ref = yield iterator.next(),\n value = _ref.value,\n done = _ref.done;\n\n if (done) {\n readable.push(null);\n } else if (readable.push((yield value))) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n\n return readable;\n}\n\nmodule.exports = from;","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('stream');\n","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n","'use strict';\n\nvar { PassThrough } = require('stream');\nvar debug = require('debug')('retry-request');\nvar extend = require('extend');\n\nvar DEFAULTS = {\n objectMode: false,\n retries: 2,\n\n /*\n The maximum time to delay in seconds. If retryDelayMultiplier results in a\n delay greater than maxRetryDelay, retries should delay by maxRetryDelay\n seconds instead.\n */\n maxRetryDelay: 64, \n\n /*\n The multiplier by which to increase the delay time between the completion of\n failed requests, and the initiation of the subsequent retrying request.\n */\n retryDelayMultiplier: 2,\n\n /*\n The length of time to keep retrying in seconds. The last sleep period will\n be shortened as necessary, so that the last retry runs at deadline (and not\n considerably beyond it). The total time starting from when the initial\n request is sent, after which an error will be returned, regardless of the\n retrying attempts made meanwhile.\n */\n totalTimeout: 600,\n\n noResponseRetries: 2,\n currentRetryAttempt: 0,\n shouldRetryFn: function (response) {\n var retryRanges = [\n // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\n // 1xx - Retry (Informational, request still processing)\n // 2xx - Do not retry (Success)\n // 3xx - Do not retry (Redirect)\n // 4xx - Do not retry (Client errors)\n // 429 - Retry (\"Too Many Requests\")\n // 5xx - Retry (Server errors)\n [100, 199],\n [429, 429],\n [500, 599]\n ];\n\n var statusCode = response.statusCode;\n debug(`Response status: ${statusCode}`);\n\n var range;\n while ((range = retryRanges.shift())) {\n if (statusCode >= range[0] && statusCode <= range[1]) {\n // Not a successful status or redirect.\n return true;\n }\n }\n }\n};\n\nfunction retryRequest(requestOpts, opts, callback) {\n var streamMode = typeof arguments[arguments.length - 1] !== 'function';\n\n if (typeof opts === 'function') {\n callback = opts;\n }\n\n var manualCurrentRetryAttemptWasSet = opts && typeof opts.currentRetryAttempt === 'number';\n opts = extend({}, DEFAULTS, opts);\n\n if (typeof opts.request === 'undefined') {\n try {\n opts.request = require('request');\n } catch (e) {\n throw new Error('A request library must be provided to retry-request.');\n }\n }\n\n var currentRetryAttempt = opts.currentRetryAttempt;\n\n var numNoResponseAttempts = 0;\n var streamResponseHandled = false;\n\n var retryStream;\n var requestStream;\n var delayStream;\n\n var activeRequest;\n var retryRequest = {\n abort: function () {\n if (activeRequest && activeRequest.abort) {\n activeRequest.abort();\n }\n }\n };\n\n if (streamMode) {\n retryStream = new PassThrough({ objectMode: opts.objectMode });\n retryStream.abort = resetStreams;\n }\n\n var timeOfFirstRequest = Date.now();\n if (currentRetryAttempt > 0) {\n retryAfterDelay(currentRetryAttempt);\n } else {\n makeRequest();\n }\n\n if (streamMode) {\n return retryStream;\n } else {\n return retryRequest;\n }\n\n function resetStreams() {\n delayStream = null;\n\n if (requestStream) {\n requestStream.abort && requestStream.abort();\n requestStream.cancel && requestStream.cancel();\n\n if (requestStream.destroy) {\n requestStream.destroy();\n } else if (requestStream.end) {\n requestStream.end();\n }\n }\n }\n\n function makeRequest() {\n currentRetryAttempt++;\n debug(`Current retry attempt: ${currentRetryAttempt}`);\n\n if (streamMode) {\n streamResponseHandled = false;\n\n delayStream = new PassThrough({ objectMode: opts.objectMode });\n requestStream = opts.request(requestOpts);\n\n setImmediate(function () {\n retryStream.emit('request');\n });\n\n requestStream\n // gRPC via google-cloud-node can emit an `error` as well as a `response`\n // Whichever it emits, we run with-- we can't run with both. That's what\n // is up with the `streamResponseHandled` tracking.\n .on('error', function (err) {\n if (streamResponseHandled) {\n return;\n }\n\n streamResponseHandled = true;\n onResponse(err);\n })\n .on('response', function (resp, body) {\n if (streamResponseHandled) {\n return;\n }\n\n streamResponseHandled = true;\n onResponse(null, resp, body);\n })\n .on('complete', retryStream.emit.bind(retryStream, 'complete'));\n\n requestStream.pipe(delayStream);\n } else {\n activeRequest = opts.request(requestOpts, onResponse);\n }\n }\n\n function retryAfterDelay(currentRetryAttempt) {\n if (streamMode) {\n resetStreams();\n }\n\n var nextRetryDelay = getNextRetryDelay({\n maxRetryDelay: opts.maxRetryDelay,\n retryDelayMultiplier: opts.retryDelayMultiplier,\n retryNumber: currentRetryAttempt,\n timeOfFirstRequest,\n totalTimeout: opts.totalTimeout,\n });\n debug(`Next retry delay: ${nextRetryDelay}`);\n\n setTimeout(makeRequest, nextRetryDelay);\n }\n\n function onResponse(err, response, body) {\n // An error such as DNS resolution.\n if (err) {\n numNoResponseAttempts++;\n\n if (numNoResponseAttempts <= opts.noResponseRetries) {\n retryAfterDelay(numNoResponseAttempts);\n } else {\n if (streamMode) {\n retryStream.emit('error', err);\n retryStream.end();\n } else {\n callback(err, response, body);\n }\n }\n\n return;\n }\n\n // Send the response to see if we should try again.\n // NOTE: \"currentRetryAttempt\" isn't accurate by default, as it counts\n // the very first request sent as the first \"retry\". It is only accurate\n // when a user provides their own \"currentRetryAttempt\" option at\n // instantiation.\n var adjustedCurrentRetryAttempt = manualCurrentRetryAttemptWasSet ? currentRetryAttempt : currentRetryAttempt - 1;\n if (adjustedCurrentRetryAttempt < opts.retries && opts.shouldRetryFn(response)) {\n retryAfterDelay(currentRetryAttempt);\n return;\n }\n\n // No more attempts need to be made, just continue on.\n if (streamMode) {\n retryStream.emit('response', response);\n delayStream.pipe(retryStream);\n requestStream.on('error', function (err) {\n retryStream.destroy(err);\n });\n } else {\n callback(err, response, body);\n }\n }\n}\n\nmodule.exports = retryRequest;\n\nfunction getNextRetryDelay(config) {\n var {\n maxRetryDelay,\n retryDelayMultiplier,\n retryNumber,\n timeOfFirstRequest,\n totalTimeout,\n } = config;\n\n var maxRetryDelayMs = maxRetryDelay * 1000;\n var totalTimeoutMs = totalTimeout * 1000;\n\n var jitter = Math.floor(Math.random() * 1000);\n var calculatedNextRetryDelay = Math.pow(retryDelayMultiplier, retryNumber) * 1000 + jitter;\n\n var maxAllowableDelayMs = totalTimeoutMs - (Date.now() - timeOfFirstRequest);\n\n return Math.min(calculatedNextRetryDelay, maxAllowableDelayMs, maxRetryDelayMs);\n}\n\nmodule.exports.getNextRetryDelay = getNextRetryDelay;\n","module.exports = require('./lib/retry');","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","'use strict'\n\nfunction reusify (Constructor) {\n var head = new Constructor()\n var tail = head\n\n function get () {\n var current = head\n\n if (current.next) {\n head = current.next\n } else {\n head = new Constructor()\n tail = head\n }\n\n current.next = null\n\n return current\n }\n\n function release (obj) {\n tail.next = obj\n tail = obj\n }\n\n return {\n get: get,\n release: release\n }\n}\n\nmodule.exports = reusify\n","/*! run-parallel. MIT License. Feross Aboukhadijeh */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n let results, pending, keys\n let isSync = true\n\n if (Array.isArray(tasks)) {\n results = []\n pending = tasks.length\n } else {\n keys = Object.keys(tasks)\n results = {}\n pending = keys.length\n }\n\n function done (err) {\n function end () {\n if (cb) cb(err, results)\n cb = null\n }\n if (isSync) queueMicrotask(end)\n else end()\n }\n\n function each (i, err, result) {\n results[i] = result\n if (--pending === 0 || err) {\n done(err)\n }\n }\n\n if (!pending) {\n // empty\n done(null)\n } else if (keys) {\n // object\n keys.forEach(function (key) {\n tasks[key](function (err, result) { each(key, err, result) })\n })\n } else {\n // array\n tasks.forEach(function (task, i) {\n task(function (err, result) { each(i, err, result) })\n })\n }\n\n isSync = false\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nvar process = global.process\n\nconst processOk = function (process) {\n return process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n}\n\n// some kind of non-node environment, just no-op\n/* istanbul ignore if */\nif (!processOk(process)) {\n module.exports = function () {\n return function () {}\n }\n} else {\n var assert = require('assert')\n var signals = require('./signals.js')\n var isWin = /^win/i.test(process.platform)\n\n var EE = require('events')\n /* istanbul ignore if */\n if (typeof EE !== 'function') {\n EE = EE.EventEmitter\n }\n\n var emitter\n if (process.__signal_exit_emitter__) {\n emitter = process.__signal_exit_emitter__\n } else {\n emitter = process.__signal_exit_emitter__ = new EE()\n emitter.count = 0\n emitter.emitted = {}\n }\n\n // Because this emitter is a global, we have to check to see if a\n // previous version of this library failed to enable infinite listeners.\n // I know what you're about to say. But literally everything about\n // signal-exit is a compromise with evil. Get used to it.\n if (!emitter.infinite) {\n emitter.setMaxListeners(Infinity)\n emitter.infinite = true\n }\n\n module.exports = function (cb, opts) {\n /* istanbul ignore if */\n if (!processOk(global.process)) {\n return function () {}\n }\n assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')\n\n if (loaded === false) {\n load()\n }\n\n var ev = 'exit'\n if (opts && opts.alwaysLast) {\n ev = 'afterexit'\n }\n\n var remove = function () {\n emitter.removeListener(ev, cb)\n if (emitter.listeners('exit').length === 0 &&\n emitter.listeners('afterexit').length === 0) {\n unload()\n }\n }\n emitter.on(ev, cb)\n\n return remove\n }\n\n var unload = function unload () {\n if (!loaded || !processOk(global.process)) {\n return\n }\n loaded = false\n\n signals.forEach(function (sig) {\n try {\n process.removeListener(sig, sigListeners[sig])\n } catch (er) {}\n })\n process.emit = originalProcessEmit\n process.reallyExit = originalProcessReallyExit\n emitter.count -= 1\n }\n module.exports.unload = unload\n\n var emit = function emit (event, code, signal) {\n /* istanbul ignore if */\n if (emitter.emitted[event]) {\n return\n }\n emitter.emitted[event] = true\n emitter.emit(event, code, signal)\n }\n\n // { : , ... }\n var sigListeners = {}\n signals.forEach(function (sig) {\n sigListeners[sig] = function listener () {\n /* istanbul ignore if */\n if (!processOk(global.process)) {\n return\n }\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n var listeners = process.listeners(sig)\n if (listeners.length === emitter.count) {\n unload()\n emit('exit', null, sig)\n /* istanbul ignore next */\n emit('afterexit', null, sig)\n /* istanbul ignore next */\n if (isWin && sig === 'SIGHUP') {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n sig = 'SIGINT'\n }\n /* istanbul ignore next */\n process.kill(process.pid, sig)\n }\n }\n })\n\n module.exports.signals = function () {\n return signals\n }\n\n var loaded = false\n\n var load = function load () {\n if (loaded || !processOk(global.process)) {\n return\n }\n loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n emitter.count += 1\n\n signals = signals.filter(function (sig) {\n try {\n process.on(sig, sigListeners[sig])\n return true\n } catch (er) {\n return false\n }\n })\n\n process.emit = processEmit\n process.reallyExit = processReallyExit\n }\n module.exports.load = load\n\n var originalProcessReallyExit = process.reallyExit\n var processReallyExit = function processReallyExit (code) {\n /* istanbul ignore if */\n if (!processOk(global.process)) {\n return\n }\n process.exitCode = code || /* istanbul ignore next */ 0\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n /* istanbul ignore next */\n originalProcessReallyExit.call(process, process.exitCode)\n }\n\n var originalProcessEmit = process.emit\n var processEmit = function processEmit (ev, arg) {\n if (ev === 'exit' && processOk(global.process)) {\n /* istanbul ignore else */\n if (arg !== undefined) {\n process.exitCode = arg\n }\n var ret = originalProcessEmit.apply(this, arguments)\n /* istanbul ignore next */\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n /* istanbul ignore next */\n return ret\n } else {\n return originalProcessEmit.apply(this, arguments)\n }\n }\n}\n","// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n 'SIGABRT',\n 'SIGALRM',\n 'SIGHUP',\n 'SIGINT',\n 'SIGTERM'\n]\n\nif (process.platform !== 'win32') {\n module.exports.push(\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n module.exports.push(\n 'SIGIO',\n 'SIGPOLL',\n 'SIGPWR',\n 'SIGSTKFLT',\n 'SIGUNUSED'\n )\n}\n","'use strict';\n\nvar stubs = require('stubs')\n\n/*\n * StreamEvents can be used 2 ways:\n *\n * 1:\n * function MyStream() {\n * require('stream-events').call(this)\n * }\n *\n * 2:\n * require('stream-events')(myStream)\n */\nfunction StreamEvents(stream) {\n stream = stream || this\n\n var cfg = {\n callthrough: true,\n calls: 1\n }\n\n stubs(stream, '_read', cfg, stream.emit.bind(stream, 'reading'))\n stubs(stream, '_write', cfg, stream.emit.bind(stream, 'writing'))\n\n return stream\n}\n\nmodule.exports = StreamEvents\n","module.exports = shift\n\nfunction shift (stream) {\n var rs = stream._readableState\n if (!rs) return null\n return (rs.objectMode || typeof stream._duplexState === 'number') ? stream.read() : stream.read(getStateLength(rs))\n}\n\nfunction getStateLength (state) {\n if (state.buffer.length) {\n // Since node 6.3.0 state.buffer is a BufferList not an array\n if (state.buffer.head) {\n return state.buffer.head.data.length\n }\n\n return state.buffer[0].length\n }\n\n return state.length\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n\nmodule.exports = function stubs(obj, method, cfg, stub) {\n if (!obj || !method || !obj[method])\n throw new Error('You must provide an object and a key for an existing method')\n\n if (!stub) {\n stub = cfg\n cfg = {}\n }\n\n stub = stub || function() {}\n\n cfg.callthrough = cfg.callthrough || false\n cfg.calls = cfg.calls || 0\n\n var norevert = cfg.calls === 0\n\n var cached = obj[method].bind(obj)\n\n obj[method] = function() {\n var args = [].slice.call(arguments)\n var returnVal\n\n if (cfg.callthrough)\n returnVal = cached.apply(obj, args)\n\n returnVal = stub.apply(obj, args) || returnVal\n\n if (!norevert && --cfg.calls === 0)\n obj[method] = cached\n\n return returnVal\n }\n}\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","\"use strict\";\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TeenyStatistics = exports.TeenyStatisticsWarning = void 0;\n/**\n * @class TeenyStatisticsWarning\n * @extends Error\n * @description While an error, is used for emitting warnings when\n * meeting certain configured thresholds.\n * @see process.emitWarning\n */\nclass TeenyStatisticsWarning extends Error {\n /**\n * @param {string} message\n */\n constructor(message) {\n super(message);\n this.threshold = 0;\n this.type = '';\n this.value = 0;\n this.name = this.constructor.name;\n Error.captureStackTrace(this, this.constructor);\n }\n}\nexports.TeenyStatisticsWarning = TeenyStatisticsWarning;\nTeenyStatisticsWarning.CONCURRENT_REQUESTS = 'ConcurrentRequestsExceededWarning';\n/**\n * @class TeenyStatistics\n * @description Maintain various statistics internal to teeny-request. Tracking\n * is not automatic and must be instrumented within teeny-request.\n */\nclass TeenyStatistics {\n /**\n * @param {TeenyStatisticsOptions} [opts]\n */\n constructor(opts) {\n /**\n * @type {number}\n * @private\n * @default 0\n */\n this._concurrentRequests = 0;\n /**\n * @type {boolean}\n * @private\n * @default false\n */\n this._didConcurrentRequestWarn = false;\n this._options = TeenyStatistics._prepareOptions(opts);\n }\n /**\n * Returns a copy of the current options.\n * @return {TeenyStatisticsOptions}\n */\n getOptions() {\n return Object.assign({}, this._options);\n }\n /**\n * Change configured statistics options. This will not preserve unspecified\n * options that were previously specified, i.e. this is a reset of options.\n * @param {TeenyStatisticsOptions} [opts]\n * @returns {TeenyStatisticsConfig} The previous options.\n * @see _prepareOptions\n */\n setOptions(opts) {\n const oldOpts = this._options;\n this._options = TeenyStatistics._prepareOptions(opts);\n return oldOpts;\n }\n /**\n * @readonly\n * @return {TeenyStatisticsCounters}\n */\n get counters() {\n return {\n concurrentRequests: this._concurrentRequests,\n };\n }\n /**\n * @description Should call this right before making a request.\n */\n requestStarting() {\n this._concurrentRequests++;\n if (this._options.concurrentRequests > 0 &&\n this._concurrentRequests >= this._options.concurrentRequests &&\n !this._didConcurrentRequestWarn) {\n this._didConcurrentRequestWarn = true;\n const warning = new TeenyStatisticsWarning('Possible excessive concurrent requests detected. ' +\n this._concurrentRequests +\n ' requests in-flight, which exceeds the configured threshold of ' +\n this._options.concurrentRequests +\n '. Use the TEENY_REQUEST_WARN_CONCURRENT_REQUESTS environment ' +\n 'variable or the concurrentRequests option of teeny-request to ' +\n 'increase or disable (0) this warning.');\n warning.type = TeenyStatisticsWarning.CONCURRENT_REQUESTS;\n warning.value = this._concurrentRequests;\n warning.threshold = this._options.concurrentRequests;\n process.emitWarning(warning);\n }\n }\n /**\n * @description When using `requestStarting`, call this after the request\n * has finished.\n */\n requestFinished() {\n // TODO negative?\n this._concurrentRequests--;\n }\n /**\n * Configuration Precedence:\n * 1. Dependency inversion via defined option.\n * 2. Global numeric environment variable.\n * 3. Built-in default.\n * This will not preserve unspecified options previously specified.\n * @param {TeenyStatisticsOptions} [opts]\n * @returns {TeenyStatisticsOptions}\n * @private\n */\n static _prepareOptions({ concurrentRequests: diConcurrentRequests, } = {}) {\n let concurrentRequests = this.DEFAULT_WARN_CONCURRENT_REQUESTS;\n const envConcurrentRequests = Number(process.env.TEENY_REQUEST_WARN_CONCURRENT_REQUESTS);\n if (diConcurrentRequests !== undefined) {\n concurrentRequests = diConcurrentRequests;\n }\n else if (!Number.isNaN(envConcurrentRequests)) {\n concurrentRequests = envConcurrentRequests;\n }\n return { concurrentRequests };\n }\n}\nexports.TeenyStatistics = TeenyStatistics;\n/**\n * @description A default threshold representing when to warn about excessive\n * in-flight/concurrent requests.\n * @type {number}\n * @static\n * @readonly\n * @default 5000\n */\nTeenyStatistics.DEFAULT_WARN_CONCURRENT_REQUESTS = 5000;\n//# sourceMappingURL=TeenyStatistics.js.map","\"use strict\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAgent = exports.pool = void 0;\nconst http_1 = require(\"http\");\nconst https_1 = require(\"https\");\n// eslint-disable-next-line node/no-deprecated-api\nconst url_1 = require(\"url\");\nexports.pool = new Map();\n/**\n * Determines if a proxy should be considered based on the environment.\n *\n * @param uri The request uri\n * @returns {boolean}\n */\nfunction shouldUseProxyForURI(uri) {\n const noProxyEnv = process.env.NO_PROXY || process.env.no_proxy;\n if (!noProxyEnv) {\n return true;\n }\n const givenURI = new URL(uri);\n for (const noProxyRaw of noProxyEnv.split(',')) {\n const noProxy = noProxyRaw.trim();\n if (noProxy === givenURI.origin || noProxy === givenURI.hostname) {\n return false;\n }\n else if (noProxy.startsWith('*.') || noProxy.startsWith('.')) {\n const noProxyWildcard = noProxy.replace(/^\\*\\./, '.');\n if (givenURI.hostname.endsWith(noProxyWildcard)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Returns a custom request Agent if one is found, otherwise returns undefined\n * which will result in the global http(s) Agent being used.\n * @private\n * @param {string} uri The request uri\n * @param {Options} reqOpts The request options\n * @returns {HttpAnyAgent|undefined}\n */\nfunction getAgent(uri, reqOpts) {\n const isHttp = uri.startsWith('http://');\n const proxy = reqOpts.proxy ||\n process.env.HTTP_PROXY ||\n process.env.http_proxy ||\n process.env.HTTPS_PROXY ||\n process.env.https_proxy;\n const poolOptions = Object.assign({}, reqOpts.pool);\n const manuallyProvidedProxy = !!reqOpts.proxy;\n const shouldUseProxy = manuallyProvidedProxy || shouldUseProxyForURI(uri);\n if (proxy && shouldUseProxy) {\n // tslint:disable-next-line variable-name\n const Agent = isHttp\n ? require('http-proxy-agent')\n : require('https-proxy-agent');\n const proxyOpts = { ...url_1.parse(proxy), ...poolOptions };\n return new Agent(proxyOpts);\n }\n let key = isHttp ? 'http' : 'https';\n if (reqOpts.forever) {\n key += ':forever';\n if (!exports.pool.has(key)) {\n // tslint:disable-next-line variable-name\n const Agent = isHttp ? http_1.Agent : https_1.Agent;\n exports.pool.set(key, new Agent({ ...poolOptions, keepAlive: true }));\n }\n }\n return exports.pool.get(key);\n}\nexports.getAgent = getAgent;\n//# sourceMappingURL=agents.js.map","\"use strict\";\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.teenyRequest = exports.RequestError = void 0;\nconst node_fetch_1 = require(\"node-fetch\");\nconst stream_1 = require(\"stream\");\nconst uuid = require(\"uuid\");\nconst agents_1 = require(\"./agents\");\nconst TeenyStatistics_1 = require(\"./TeenyStatistics\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst streamEvents = require('stream-events');\nclass RequestError extends Error {\n}\nexports.RequestError = RequestError;\n/**\n * Convert options from Request to Fetch format\n * @private\n * @param reqOpts Request options\n */\nfunction requestToFetchOptions(reqOpts) {\n const options = {\n method: reqOpts.method || 'GET',\n ...(reqOpts.timeout && { timeout: reqOpts.timeout }),\n ...(typeof reqOpts.gzip === 'boolean' && { compress: reqOpts.gzip }),\n };\n if (typeof reqOpts.json === 'object') {\n // Add Content-type: application/json header\n reqOpts.headers = reqOpts.headers || {};\n reqOpts.headers['Content-Type'] = 'application/json';\n // Set body to JSON representation of value\n options.body = JSON.stringify(reqOpts.json);\n }\n else {\n if (Buffer.isBuffer(reqOpts.body)) {\n options.body = reqOpts.body;\n }\n else if (typeof reqOpts.body !== 'string') {\n options.body = JSON.stringify(reqOpts.body);\n }\n else {\n options.body = reqOpts.body;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.headers = reqOpts.headers;\n let uri = (reqOpts.uri ||\n reqOpts.url);\n if (!uri) {\n throw new Error('Missing uri or url in reqOpts.');\n }\n if (reqOpts.useQuerystring === true || typeof reqOpts.qs === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const qs = require('querystring');\n const params = qs.stringify(reqOpts.qs);\n uri = uri + '?' + params;\n }\n options.agent = agents_1.getAgent(uri, reqOpts);\n return { uri, options };\n}\n/**\n * Convert a response from `fetch` to `request` format.\n * @private\n * @param opts The `request` options used to create the request.\n * @param res The Fetch response\n * @returns A `request` response object\n */\nfunction fetchToRequestResponse(opts, res) {\n const request = {};\n request.agent = opts.agent || false;\n request.headers = (opts.headers || {});\n request.href = res.url;\n // headers need to be converted from a map to an obj\n const resHeaders = {};\n res.headers.forEach((value, key) => (resHeaders[key] = value));\n const response = Object.assign(res.body, {\n statusCode: res.status,\n statusMessage: res.statusText,\n request,\n body: res.body,\n headers: resHeaders,\n toJSON: () => ({ headers: resHeaders }),\n });\n return response;\n}\n/**\n * Create POST body from two parts as multipart/related content-type\n * @private\n * @param boundary\n * @param multipart\n */\nfunction createMultipartStream(boundary, multipart) {\n const finale = `--${boundary}--`;\n const stream = new stream_1.PassThrough();\n for (const part of multipart) {\n const preamble = `--${boundary}\\r\\nContent-Type: ${part['Content-Type']}\\r\\n\\r\\n`;\n stream.write(preamble);\n if (typeof part.body === 'string') {\n stream.write(part.body);\n stream.write('\\r\\n');\n }\n else {\n part.body.pipe(stream, { end: false });\n part.body.on('end', () => {\n stream.write('\\r\\n');\n stream.write(finale);\n stream.end();\n });\n }\n }\n return stream;\n}\nfunction teenyRequest(reqOpts, callback) {\n const { uri, options } = requestToFetchOptions(reqOpts);\n const multipart = reqOpts.multipart;\n if (reqOpts.multipart && multipart.length === 2) {\n if (!callback) {\n // TODO: add support for multipart uploads through streaming\n throw new Error('Multipart without callback is not implemented.');\n }\n const boundary = uuid.v4();\n options.headers['Content-Type'] = `multipart/related; boundary=${boundary}`;\n options.body = createMultipartStream(boundary, multipart);\n // Multipart upload\n teenyRequest.stats.requestStarting();\n node_fetch_1.default(uri, options).then(res => {\n teenyRequest.stats.requestFinished();\n const header = res.headers.get('content-type');\n const response = fetchToRequestResponse(options, res);\n const body = response.body;\n if (header === 'application/json' ||\n header === 'application/json; charset=utf-8') {\n res.json().then(json => {\n response.body = json;\n callback(null, response, json);\n }, (err) => {\n callback(err, response, body);\n });\n return;\n }\n res.text().then(text => {\n response.body = text;\n callback(null, response, text);\n }, err => {\n callback(err, response, body);\n });\n }, err => {\n teenyRequest.stats.requestFinished();\n callback(err, null, null);\n });\n return;\n }\n if (callback === undefined) {\n // Stream mode\n const requestStream = streamEvents(new stream_1.PassThrough());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let responseStream;\n requestStream.once('reading', () => {\n if (responseStream) {\n responseStream.pipe(requestStream);\n }\n else {\n requestStream.once('response', () => {\n responseStream.pipe(requestStream);\n });\n }\n });\n options.compress = false;\n teenyRequest.stats.requestStarting();\n node_fetch_1.default(uri, options).then(res => {\n teenyRequest.stats.requestFinished();\n responseStream = res.body;\n responseStream.on('error', (err) => {\n requestStream.emit('error', err);\n });\n const response = fetchToRequestResponse(options, res);\n requestStream.emit('response', response);\n }, err => {\n teenyRequest.stats.requestFinished();\n requestStream.emit('error', err);\n });\n // fetch doesn't supply the raw HTTP stream, instead it\n // returns a PassThrough piped from the HTTP response\n // stream.\n return requestStream;\n }\n // GET or POST with callback\n teenyRequest.stats.requestStarting();\n node_fetch_1.default(uri, options).then(res => {\n teenyRequest.stats.requestFinished();\n const header = res.headers.get('content-type');\n const response = fetchToRequestResponse(options, res);\n const body = response.body;\n if (header === 'application/json' ||\n header === 'application/json; charset=utf-8') {\n if (response.statusCode === 204) {\n // Probably a DELETE\n callback(null, response, body);\n return;\n }\n res.json().then(json => {\n response.body = json;\n callback(null, response, json);\n }, err => {\n callback(err, response, body);\n });\n return;\n }\n res.text().then(text => {\n const response = fetchToRequestResponse(options, res);\n response.body = text;\n callback(null, response, text);\n }, err => {\n callback(err, response, body);\n });\n }, err => {\n teenyRequest.stats.requestFinished();\n callback(err, null, null);\n });\n return;\n}\nexports.teenyRequest = teenyRequest;\nteenyRequest.defaults = (defaults) => {\n return (reqOpts, callback) => {\n const opts = { ...defaults, ...reqOpts };\n if (callback === undefined) {\n return teenyRequest(opts);\n }\n teenyRequest(opts, callback);\n };\n};\n/**\n * Single instance of an interface for keeping track of things.\n */\nteenyRequest.stats = new TeenyStatistics_1.TeenyStatistics();\nteenyRequest.resetStats = () => {\n teenyRequest.stats = new TeenyStatistics_1.TeenyStatistics(teenyRequest.stats.getOptions());\n};\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","/*!\n * to-regex-range \n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n if (isNumber(min) === false) {\n throw new TypeError('toRegexRange: expected the first argument to be a number');\n }\n\n if (max === void 0 || min === max) {\n return String(min);\n }\n\n if (isNumber(max) === false) {\n throw new TypeError('toRegexRange: expected the second argument to be a number.');\n }\n\n let opts = { relaxZeros: true, ...options };\n if (typeof opts.strictZeros === 'boolean') {\n opts.relaxZeros = opts.strictZeros === false;\n }\n\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n\n if (Math.abs(a - b) === 1) {\n let result = min + '|' + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n state.result = `(?:${state.result})`;\n }\n\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n\n let stop = countNines(min, nines);\n let stops = new Set([max]);\n\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n\n stop = countZeros(max + 1, zeros) - 1;\n\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n\n stops = [...stops];\n stops.sort(compare);\n return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = '';\n let count = 0;\n\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n\n if (startDigit === stopDigit) {\n pattern += startDigit;\n\n } else if (startDigit !== '0' || stopDigit !== '9') {\n pattern += toCharacterClass(startDigit, stopDigit, options);\n\n } else {\n count++;\n }\n }\n\n if (count) {\n pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n }\n\n return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n\n for (let i = 0; i < ranges.length; i++) {\n let max = ranges[i];\n let obj = rangeToPattern(String(start), String(max), options);\n let zeros = '';\n\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max + 1;\n continue;\n }\n\n if (tok.isPadded) {\n zeros = padZeros(max, tok, options);\n }\n\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max + 1;\n prev = obj;\n }\n\n return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n let result = [];\n\n for (let ele of arr) {\n let { string } = ele;\n\n // only push if _both_ are negative...\n if (!intersection && !contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n\n // or _both_ are positive\n if (intersection && contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n }\n return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n}\n\nfunction compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n let [start = 0, stop = ''] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? ',' + stop : '')}}`;\n }\n return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n if (!tok.isPadded) {\n return value;\n }\n\n let diff = Math.abs(tok.maxLen - String(value).length);\n let relax = options.relaxZeros !== false;\n\n switch (diff) {\n case 0:\n return '';\n case 1:\n return relax ? '0?' : '0';\n case 2:\n return relax ? '0{0,2}' : '00';\n default: {\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\n }\n }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","/**\n * Convert a typed array to a Buffer without a copy\n *\n * Author: Feross Aboukhadijeh \n * License: MIT\n *\n * `npm install typedarray-to-buffer`\n */\n\nvar isTypedArray = require('is-typedarray').strict\n\nmodule.exports = function typedarrayToBuffer (arr) {\n if (isTypedArray(arr)) {\n // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer\n var buf = Buffer.from(arr.buffer)\n if (arr.byteLength !== arr.buffer.byteLength) {\n // Respect the \"view\", i.e. byteOffset and byteLength, without doing a copy\n buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength)\n }\n return buf\n } else {\n // Pass through all other types to `Buffer.from`\n return Buffer.from(arr)\n }\n}\n","'use strict';\nconst cryptoRandomString = require('crypto-random-string');\n\nmodule.exports = () => cryptoRandomString(32);\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","'use strict'\nmodule.exports = writeFile\nmodule.exports.sync = writeFileSync\nmodule.exports._getTmpname = getTmpname // for testing\nmodule.exports._cleanupOnExit = cleanupOnExit\n\nconst fs = require('fs')\nconst MurmurHash3 = require('imurmurhash')\nconst onExit = require('signal-exit')\nconst path = require('path')\nconst isTypedArray = require('is-typedarray')\nconst typedArrayToBuffer = require('typedarray-to-buffer')\nconst { promisify } = require('util')\nconst activeFiles = {}\n\n// if we run inside of a worker_thread, `process.pid` is not unique\n/* istanbul ignore next */\nconst threadId = (function getId () {\n try {\n const workerThreads = require('worker_threads')\n\n /// if we are in main thread, this is set to `0`\n return workerThreads.threadId\n } catch (e) {\n // worker_threads are not available, fallback to 0\n return 0\n }\n})()\n\nlet invocations = 0\nfunction getTmpname (filename) {\n return filename + '.' +\n MurmurHash3(__filename)\n .hash(String(process.pid))\n .hash(String(threadId))\n .hash(String(++invocations))\n .result()\n}\n\nfunction cleanupOnExit (tmpfile) {\n return () => {\n try {\n fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile)\n } catch (_) {}\n }\n}\n\nfunction serializeActiveFile (absoluteName) {\n return new Promise(resolve => {\n // make a queue if it doesn't already exist\n if (!activeFiles[absoluteName]) activeFiles[absoluteName] = []\n\n activeFiles[absoluteName].push(resolve) // add this job to the queue\n if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one\n })\n}\n\n// https://github.com/isaacs/node-graceful-fs/blob/master/polyfills.js#L315-L342\nfunction isChownErrOk (err) {\n if (err.code === 'ENOSYS') {\n return true\n }\n\n const nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (err.code === 'EINVAL' || err.code === 'EPERM') {\n return true\n }\n }\n\n return false\n}\n\nasync function writeFileAsync (filename, data, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n let fd\n let tmpfile\n /* istanbul ignore next -- The closure only gets called when onExit triggers */\n const removeOnExitHandler = onExit(cleanupOnExit(() => tmpfile))\n const absoluteName = path.resolve(filename)\n\n try {\n await serializeActiveFile(absoluteName)\n const truename = await promisify(fs.realpath)(filename).catch(() => filename)\n tmpfile = getTmpname(truename)\n\n if (!options.mode || !options.chown) {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n const stats = await promisify(fs.stat)(truename).catch(() => {})\n if (stats) {\n if (options.mode == null) {\n options.mode = stats.mode\n }\n\n if (options.chown == null && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n }\n }\n\n fd = await promisify(fs.open)(tmpfile, 'w', options.mode)\n if (options.tmpfileCreated) {\n await options.tmpfileCreated(tmpfile)\n }\n if (isTypedArray(data)) {\n data = typedArrayToBuffer(data)\n }\n if (Buffer.isBuffer(data)) {\n await promisify(fs.write)(fd, data, 0, data.length, 0)\n } else if (data != null) {\n await promisify(fs.write)(fd, String(data), 0, String(options.encoding || 'utf8'))\n }\n\n if (options.fsync !== false) {\n await promisify(fs.fsync)(fd)\n }\n\n await promisify(fs.close)(fd)\n fd = null\n\n if (options.chown) {\n await promisify(fs.chown)(tmpfile, options.chown.uid, options.chown.gid).catch(err => {\n if (!isChownErrOk(err)) {\n throw err\n }\n })\n }\n\n if (options.mode) {\n await promisify(fs.chmod)(tmpfile, options.mode).catch(err => {\n if (!isChownErrOk(err)) {\n throw err\n }\n })\n }\n\n await promisify(fs.rename)(tmpfile, truename)\n } finally {\n if (fd) {\n await promisify(fs.close)(fd).catch(\n /* istanbul ignore next */\n () => {}\n )\n }\n removeOnExitHandler()\n await promisify(fs.unlink)(tmpfile).catch(() => {})\n activeFiles[absoluteName].shift() // remove the element added by serializeSameFile\n if (activeFiles[absoluteName].length > 0) {\n activeFiles[absoluteName][0]() // start next job if one is pending\n } else delete activeFiles[absoluteName]\n }\n}\n\nfunction writeFile (filename, data, options, callback) {\n if (options instanceof Function) {\n callback = options\n options = {}\n }\n\n const promise = writeFileAsync(filename, data, options)\n if (callback) {\n promise.then(callback, callback)\n }\n\n return promise\n}\n\nfunction writeFileSync (filename, data, options) {\n if (typeof options === 'string') options = { encoding: options }\n else if (!options) options = {}\n try {\n filename = fs.realpathSync(filename)\n } catch (ex) {\n // it's ok, it'll happen on a not yet existing file\n }\n const tmpfile = getTmpname(filename)\n\n if (!options.mode || !options.chown) {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n try {\n const stats = fs.statSync(filename)\n options = Object.assign({}, options)\n if (!options.mode) {\n options.mode = stats.mode\n }\n if (!options.chown && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n } catch (ex) {\n // ignore stat errors\n }\n }\n\n let fd\n const cleanup = cleanupOnExit(tmpfile)\n const removeOnExitHandler = onExit(cleanup)\n\n let threw = true\n try {\n fd = fs.openSync(tmpfile, 'w', options.mode || 0o666)\n if (options.tmpfileCreated) {\n options.tmpfileCreated(tmpfile)\n }\n if (isTypedArray(data)) {\n data = typedArrayToBuffer(data)\n }\n if (Buffer.isBuffer(data)) {\n fs.writeSync(fd, data, 0, data.length, 0)\n } else if (data != null) {\n fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8'))\n }\n if (options.fsync !== false) {\n fs.fsyncSync(fd)\n }\n\n fs.closeSync(fd)\n fd = null\n\n if (options.chown) {\n try {\n fs.chownSync(tmpfile, options.chown.uid, options.chown.gid)\n } catch (err) {\n if (!isChownErrOk(err)) {\n throw err\n }\n }\n }\n\n if (options.mode) {\n try {\n fs.chmodSync(tmpfile, options.mode)\n } catch (err) {\n if (!isChownErrOk(err)) {\n throw err\n }\n }\n }\n\n fs.renameSync(tmpfile, filename)\n threw = false\n } finally {\n if (fd) {\n try {\n fs.closeSync(fd)\n } catch (ex) {\n // ignore close errors at this stage, error may have closed fd already.\n }\n }\n removeOnExitHandler()\n if (threw) {\n cleanup()\n }\n }\n}\n","'use strict';\nconst os = require('os');\nconst path = require('path');\n\nconst homeDirectory = os.homedir();\nconst {env} = process;\n\nexports.data = env.XDG_DATA_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'share') : undefined);\n\nexports.config = env.XDG_CONFIG_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.config') : undefined);\n\nexports.cache = env.XDG_CACHE_HOME || (homeDirectory ? path.join(homeDirectory, '.cache') : undefined);\n\nexports.runtime = env.XDG_RUNTIME_DIR || undefined;\n\nexports.dataDirs = (env.XDG_DATA_DIRS || '/usr/local/share/:/usr/share/').split(':');\n\nif (exports.data) {\n\texports.dataDirs.unshift(exports.data);\n}\n\nexports.configDirs = (env.XDG_CONFIG_DIRS || '/etc/xdg').split(':');\n\nif (exports.config) {\n\texports.configDirs.unshift(exports.config);\n}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\n\t\t// TODO: Remove this when targeting Node.js 12.\n\t\tthis.next = undefined;\n\t}\n}\n\nclass Queue {\n\t// TODO: Use private class fields when targeting Node.js 12.\n\t// #_head;\n\t// #_tail;\n\t// #_size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this._head) {\n\t\t\tthis._tail.next = node;\n\t\t\tthis._tail = node;\n\t\t} else {\n\t\t\tthis._head = node;\n\t\t\tthis._tail = node;\n\t\t}\n\n\t\tthis._size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this._head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._head = this._head.next;\n\t\tthis._size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t}\n\n\tget size() {\n\t\treturn this._size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this._head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n\nmodule.exports = Queue;\n",null,"module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"constants\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"querystring\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","module.exports = require(\"zlib\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:process\");","export default function slash(path) {\n\tconst isExtendedLengthPath = /^\\\\\\\\\\?\\\\/.test(path);\n\tconst hasNonAscii = /[^\\u0000-\\u0080]+/.test(path); // eslint-disable-line no-control-regex\n\n\tif (isExtendedLengthPath || hasNonAscii) {\n\t\treturn path;\n\t}\n\n\treturn path.replace(/\\\\/g, '/');\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:stream\");","import {fileURLToPath} from 'node:url';\nimport {Transform} from 'node:stream';\n\nexport const toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport class FilterStream extends Transform {\n\tconstructor(filter) {\n\t\tsuper({\n\t\t\tobjectMode: true,\n\t\t\ttransform(data, encoding, callback) {\n\t\t\t\tcallback(undefined, filter(data) ? data : undefined);\n\t\t\t},\n\t\t});\n\t}\n}\n\nexport const isNegativePattern = pattern => pattern[0] === '!';\n","import process from 'node:process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport fastGlob from 'fast-glob';\nimport gitIgnore from 'ignore';\nimport slash from 'slash';\nimport {toPath, isNegativePattern} from './utilities.js';\n\nconst ignoreFilesGlobOptions = {\n\tignore: [\n\t\t'**/node_modules',\n\t\t'**/flow-typed',\n\t\t'**/coverage',\n\t\t'**/.git',\n\t],\n\tabsolute: true,\n\tdot: true,\n};\n\nexport const GITIGNORE_FILES_PATTERN = '**/.gitignore';\n\nconst applyBaseToPattern = (pattern, base) => isNegativePattern(pattern)\n\t? '!' + path.posix.join(base, pattern.slice(1))\n\t: path.posix.join(base, pattern);\n\nconst parseIgnoreFile = (file, cwd) => {\n\tconst base = slash(path.relative(cwd, path.dirname(file.filePath)));\n\n\treturn file.content\n\t\t.split(/\\r?\\n/)\n\t\t.filter(line => line && !line.startsWith('#'))\n\t\t.map(pattern => applyBaseToPattern(pattern, base));\n};\n\nconst toRelativePath = (fileOrDirectory, cwd) => {\n\tcwd = slash(cwd);\n\tif (path.isAbsolute(fileOrDirectory)) {\n\t\tif (slash(fileOrDirectory).startsWith(cwd)) {\n\t\t\treturn path.relative(cwd, fileOrDirectory);\n\t\t}\n\n\t\tthrow new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);\n\t}\n\n\treturn fileOrDirectory;\n};\n\nconst getIsIgnoredPredicate = (files, cwd) => {\n\tconst patterns = files.flatMap(file => parseIgnoreFile(file, cwd));\n\tconst ignores = gitIgnore().add(patterns);\n\n\treturn fileOrDirectory => {\n\t\tfileOrDirectory = toPath(fileOrDirectory);\n\t\tfileOrDirectory = toRelativePath(fileOrDirectory, cwd);\n\t\treturn fileOrDirectory ? ignores.ignores(slash(fileOrDirectory)) : false;\n\t};\n};\n\nconst normalizeOptions = (options = {}) => ({\n\tcwd: toPath(options.cwd) || process.cwd(),\n\tsuppressErrors: Boolean(options.suppressErrors),\n\tdeep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY,\n});\n\nexport const isIgnoredByIgnoreFiles = async (patterns, options) => {\n\tconst {cwd, suppressErrors, deep} = normalizeOptions(options);\n\n\tconst paths = await fastGlob(patterns, {cwd, suppressErrors, deep, ...ignoreFilesGlobOptions});\n\n\tconst files = await Promise.all(\n\t\tpaths.map(async filePath => ({\n\t\t\tfilePath,\n\t\t\tcontent: await fs.promises.readFile(filePath, 'utf8'),\n\t\t})),\n\t);\n\n\treturn getIsIgnoredPredicate(files, cwd);\n};\n\nexport const isIgnoredByIgnoreFilesSync = (patterns, options) => {\n\tconst {cwd, suppressErrors, deep} = normalizeOptions(options);\n\n\tconst paths = fastGlob.sync(patterns, {cwd, suppressErrors, deep, ...ignoreFilesGlobOptions});\n\n\tconst files = paths.map(filePath => ({\n\t\tfilePath,\n\t\tcontent: fs.readFileSync(filePath, 'utf8'),\n\t}));\n\n\treturn getIsIgnoredPredicate(files, cwd);\n};\n\nexport const isGitIgnored = options => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);\nexport const isGitIgnoredSync = options => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);\n","import fs from 'node:fs';\nimport nodePath from 'node:path';\nimport merge2 from 'merge2';\nimport fastGlob from 'fast-glob';\nimport dirGlob from 'dir-glob';\nimport {\n\tGITIGNORE_FILES_PATTERN,\n\tisIgnoredByIgnoreFiles,\n\tisIgnoredByIgnoreFilesSync,\n} from './ignore.js';\nimport {FilterStream, toPath, isNegativePattern} from './utilities.js';\n\nconst assertPatternsInput = patterns => {\n\tif (patterns.some(pattern => typeof pattern !== 'string')) {\n\t\tthrow new TypeError('Patterns must be a string or an array of strings');\n\t}\n};\n\nconst toPatternsArray = patterns => {\n\tpatterns = [...new Set([patterns].flat())];\n\tassertPatternsInput(patterns);\n\treturn patterns;\n};\n\nconst checkCwdOption = options => {\n\tif (!options.cwd) {\n\t\treturn;\n\t}\n\n\tlet stat;\n\ttry {\n\t\tstat = fs.statSync(options.cwd);\n\t} catch {\n\t\treturn;\n\t}\n\n\tif (!stat.isDirectory()) {\n\t\tthrow new Error('The `cwd` option must be a path to a directory');\n\t}\n};\n\nconst normalizeOptions = (options = {}) => {\n\toptions = {\n\t\t...options,\n\t\tignore: options.ignore || [],\n\t\texpandDirectories: options.expandDirectories === undefined\n\t\t\t? true\n\t\t\t: options.expandDirectories,\n\t\tcwd: toPath(options.cwd),\n\t};\n\n\tcheckCwdOption(options);\n\n\treturn options;\n};\n\nconst normalizeArguments = fn => async (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));\nconst normalizeArgumentsSync = fn => (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));\n\nconst getIgnoreFilesPatterns = options => {\n\tconst {ignoreFiles, gitignore} = options;\n\n\tconst patterns = ignoreFiles ? toPatternsArray(ignoreFiles) : [];\n\tif (gitignore) {\n\t\tpatterns.push(GITIGNORE_FILES_PATTERN);\n\t}\n\n\treturn patterns;\n};\n\nconst getFilter = async options => {\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\n\treturn createFilterFunction(\n\t\tignoreFilesPatterns.length > 0 && await isIgnoredByIgnoreFiles(ignoreFilesPatterns, options),\n\t);\n};\n\nconst getFilterSync = options => {\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\n\treturn createFilterFunction(\n\t\tignoreFilesPatterns.length > 0 && isIgnoredByIgnoreFilesSync(ignoreFilesPatterns, options),\n\t);\n};\n\nconst createFilterFunction = isIgnored => {\n\tconst seen = new Set();\n\n\treturn fastGlobResult => {\n\t\tconst path = fastGlobResult.path || fastGlobResult;\n\t\tconst pathKey = nodePath.normalize(path);\n\t\tconst seenOrIgnored = seen.has(pathKey) || (isIgnored && isIgnored(path));\n\t\tseen.add(pathKey);\n\t\treturn !seenOrIgnored;\n\t};\n};\n\nconst unionFastGlobResults = (results, filter) => results.flat().filter(fastGlobResult => filter(fastGlobResult));\nconst unionFastGlobStreams = (streams, filter) => merge2(streams).pipe(new FilterStream(fastGlobResult => filter(fastGlobResult)));\n\nconst convertNegativePatterns = (patterns, options) => {\n\tconst tasks = [];\n\n\twhile (patterns.length > 0) {\n\t\tconst index = patterns.findIndex(pattern => isNegativePattern(pattern));\n\n\t\tif (index === -1) {\n\t\t\ttasks.push({patterns, options});\n\t\t\tbreak;\n\t\t}\n\n\t\tconst ignorePattern = patterns[index].slice(1);\n\n\t\tfor (const task of tasks) {\n\t\t\ttask.options.ignore.push(ignorePattern);\n\t\t}\n\n\t\tif (index !== 0) {\n\t\t\ttasks.push({\n\t\t\t\tpatterns: patterns.slice(0, index),\n\t\t\t\toptions: {\n\t\t\t\t\t...options,\n\t\t\t\t\tignore: [\n\t\t\t\t\t\t...options.ignore,\n\t\t\t\t\t\tignorePattern,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tpatterns = patterns.slice(index + 1);\n\t}\n\n\treturn tasks;\n};\n\nconst getDirGlobOptions = (options, cwd) => ({\n\t...(cwd ? {cwd} : {}),\n\t...(Array.isArray(options) ? {files: options} : options),\n});\n\nconst generateTasks = async (patterns, options) => {\n\tconst globTasks = convertNegativePatterns(patterns, options);\n\n\tconst {cwd, expandDirectories} = options;\n\n\tif (!expandDirectories) {\n\t\treturn globTasks;\n\t}\n\n\tconst patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);\n\tconst ignoreExpandOptions = cwd ? {cwd} : undefined;\n\n\treturn Promise.all(\n\t\tglobTasks.map(async task => {\n\t\t\tlet {patterns, options} = task;\n\n\t\t\t[\n\t\t\t\tpatterns,\n\t\t\t\toptions.ignore,\n\t\t\t] = await Promise.all([\n\t\t\t\tdirGlob(patterns, patternExpandOptions),\n\t\t\t\tdirGlob(options.ignore, ignoreExpandOptions),\n\t\t\t]);\n\n\t\t\treturn {patterns, options};\n\t\t}),\n\t);\n};\n\nconst generateTasksSync = (patterns, options) => {\n\tconst globTasks = convertNegativePatterns(patterns, options);\n\n\tconst {cwd, expandDirectories} = options;\n\n\tif (!expandDirectories) {\n\t\treturn globTasks;\n\t}\n\n\tconst patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);\n\tconst ignoreExpandOptions = cwd ? {cwd} : undefined;\n\n\treturn globTasks.map(task => {\n\t\tlet {patterns, options} = task;\n\t\tpatterns = dirGlob.sync(patterns, patternExpandOptions);\n\t\toptions.ignore = dirGlob.sync(options.ignore, ignoreExpandOptions);\n\t\treturn {patterns, options};\n\t});\n};\n\nexport const globby = normalizeArguments(async (patterns, options) => {\n\tconst [\n\t\ttasks,\n\t\tfilter,\n\t] = await Promise.all([\n\t\tgenerateTasks(patterns, options),\n\t\tgetFilter(options),\n\t]);\n\tconst results = await Promise.all(tasks.map(task => fastGlob(task.patterns, task.options)));\n\n\treturn unionFastGlobResults(results, filter);\n});\n\nexport const globbySync = normalizeArgumentsSync((patterns, options) => {\n\tconst tasks = generateTasksSync(patterns, options);\n\tconst filter = getFilterSync(options);\n\tconst results = tasks.map(task => fastGlob.sync(task.patterns, task.options));\n\n\treturn unionFastGlobResults(results, filter);\n});\n\nexport const globbyStream = normalizeArgumentsSync((patterns, options) => {\n\tconst tasks = generateTasksSync(patterns, options);\n\tconst filter = getFilterSync(options);\n\tconst streams = tasks.map(task => fastGlob.stream(task.patterns, task.options));\n\n\treturn unionFastGlobStreams(streams, filter);\n});\n\nexport const isDynamicPattern = normalizeArgumentsSync(\n\t(patterns, options) => patterns.some(pattern => fastGlob.isDynamicPattern(pattern, options)),\n);\n\nexport const generateGlobTasks = normalizeArguments(generateTasks);\nexport const generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);\n\nexport {\n\tisGitIgnored,\n\tisGitIgnoredSync,\n} from './ignore.js';\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(1156);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9sBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzwGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzsGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACngCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACv1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACt2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACldA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChGA;AACA;AACA;AACA;;;;;;;;ACHA;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACz5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACt+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/iCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/uCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3uCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC55DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3lFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzqGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1CA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3jCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnmCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9PA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3jDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/RA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxBA;AACA;AACA;AACA;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnEA;;;;;;;;AAAA;;;;;;;;AAAA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;ACAA;;;;;;;;ACAA;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACTA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3FA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;AEDA;AACA;AACA;AACA","sources":[".././lib/show-visual-diffs-in-comment.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/@google-cloud/paginator/build/src/index.js",".././node_modules/@google-cloud/paginator/build/src/resource-stream.js",".././node_modules/@google-cloud/projectify/build/src/index.js",".././node_modules/@google-cloud/promisify/build/src/index.js",".././node_modules/@google-cloud/storage/build/src/acl.js",".././node_modules/@google-cloud/storage/build/src/bucket.js",".././node_modules/@google-cloud/storage/build/src/channel.js",".././node_modules/@google-cloud/storage/build/src/file.js",".././node_modules/@google-cloud/storage/build/src/gcs-resumable-upload.js",".././node_modules/@google-cloud/storage/build/src/hmacKey.js",".././node_modules/@google-cloud/storage/build/src/iam.js",".././node_modules/@google-cloud/storage/build/src/index.js",".././node_modules/@google-cloud/storage/build/src/nodejs-common/index.js",".././node_modules/@google-cloud/storage/build/src/nodejs-common/service-object.js",".././node_modules/@google-cloud/storage/build/src/nodejs-common/service.js",".././node_modules/@google-cloud/storage/build/src/nodejs-common/util.js",".././node_modules/@google-cloud/storage/build/src/notification.js",".././node_modules/@google-cloud/storage/build/src/signer.js",".././node_modules/@google-cloud/storage/build/src/storage.js",".././node_modules/@google-cloud/storage/build/src/util.js",".././node_modules/@nodelib/fs.scandir/out/adapters/fs.js",".././node_modules/@nodelib/fs.scandir/out/constants.js",".././node_modules/@nodelib/fs.scandir/out/index.js",".././node_modules/@nodelib/fs.scandir/out/providers/async.js",".././node_modules/@nodelib/fs.scandir/out/providers/common.js",".././node_modules/@nodelib/fs.scandir/out/providers/sync.js",".././node_modules/@nodelib/fs.scandir/out/settings.js",".././node_modules/@nodelib/fs.scandir/out/utils/fs.js",".././node_modules/@nodelib/fs.scandir/out/utils/index.js",".././node_modules/@nodelib/fs.stat/out/adapters/fs.js",".././node_modules/@nodelib/fs.stat/out/index.js",".././node_modules/@nodelib/fs.stat/out/providers/async.js",".././node_modules/@nodelib/fs.stat/out/providers/sync.js",".././node_modules/@nodelib/fs.stat/out/settings.js",".././node_modules/@nodelib/fs.walk/out/index.js",".././node_modules/@nodelib/fs.walk/out/providers/async.js",".././node_modules/@nodelib/fs.walk/out/providers/stream.js",".././node_modules/@nodelib/fs.walk/out/providers/sync.js",".././node_modules/@nodelib/fs.walk/out/readers/async.js",".././node_modules/@nodelib/fs.walk/out/readers/common.js",".././node_modules/@nodelib/fs.walk/out/readers/reader.js",".././node_modules/@nodelib/fs.walk/out/readers/sync.js",".././node_modules/@nodelib/fs.walk/out/settings.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@octokit/request/node_modules/node-fetch/lib/index.js",".././node_modules/@octokit/request/node_modules/tr46/index.js",".././node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js",".././node_modules/@tootallnate/once/dist/index.js",".././node_modules/abort-controller/dist/abort-controller.js",".././node_modules/agent-base/dist/src/index.js",".././node_modules/agent-base/dist/src/promisify.js",".././node_modules/arrify/index.js",".././node_modules/async-retry/lib/index.js",".././node_modules/base64-js/index.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/bignumber.js/bignumber.js",".././node_modules/braces/index.js",".././node_modules/braces/lib/compile.js",".././node_modules/braces/lib/constants.js",".././node_modules/braces/lib/expand.js",".././node_modules/braces/lib/parse.js",".././node_modules/braces/lib/stringify.js",".././node_modules/braces/lib/utils.js",".././node_modules/buffer-equal-constant-time/index.js",".././node_modules/compressible/index.js",".././node_modules/configstore/index.js",".././node_modules/crypto-random-string/index.js",".././node_modules/debug/src/browser.js",".././node_modules/debug/src/common.js",".././node_modules/debug/src/index.js",".././node_modules/debug/src/node.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/dir-glob/index.js",".././node_modules/dot-prop/index.js",".././node_modules/duplexify/index.js",".././node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js",".././node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js",".././node_modules/end-of-stream/index.js",".././node_modules/ent/decode.js",".././node_modules/ent/encode.js",".././node_modules/ent/index.js",".././node_modules/event-target-shim/dist/event-target-shim.js",".././node_modules/extend/index.js",".././node_modules/fast-glob/node_modules/glob-parent/index.js",".././node_modules/fast-glob/out/index.js",".././node_modules/fast-glob/out/managers/tasks.js",".././node_modules/fast-glob/out/providers/async.js",".././node_modules/fast-glob/out/providers/filters/deep.js",".././node_modules/fast-glob/out/providers/filters/entry.js",".././node_modules/fast-glob/out/providers/filters/error.js",".././node_modules/fast-glob/out/providers/matchers/matcher.js",".././node_modules/fast-glob/out/providers/matchers/partial.js",".././node_modules/fast-glob/out/providers/provider.js",".././node_modules/fast-glob/out/providers/stream.js",".././node_modules/fast-glob/out/providers/sync.js",".././node_modules/fast-glob/out/providers/transformers/entry.js",".././node_modules/fast-glob/out/readers/async.js",".././node_modules/fast-glob/out/readers/reader.js",".././node_modules/fast-glob/out/readers/stream.js",".././node_modules/fast-glob/out/readers/sync.js",".././node_modules/fast-glob/out/settings.js",".././node_modules/fast-glob/out/utils/array.js",".././node_modules/fast-glob/out/utils/errno.js",".././node_modules/fast-glob/out/utils/fs.js",".././node_modules/fast-glob/out/utils/index.js",".././node_modules/fast-glob/out/utils/path.js",".././node_modules/fast-glob/out/utils/pattern.js",".././node_modules/fast-glob/out/utils/stream.js",".././node_modules/fast-glob/out/utils/string.js",".././node_modules/fast-text-encoding/text.min.js",".././node_modules/fastq/queue.js",".././node_modules/fill-range/index.js",".././node_modules/gaxios/build/src/common.js",".././node_modules/gaxios/build/src/gaxios.js",".././node_modules/gaxios/build/src/index.js",".././node_modules/gaxios/build/src/retry.js",".././node_modules/gaxios/node_modules/node-fetch/lib/index.js",".././node_modules/gaxios/node_modules/tr46/index.js",".././node_modules/gaxios/node_modules/webidl-conversions/lib/index.js",".././node_modules/gaxios/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/gaxios/node_modules/whatwg-url/lib/URL.js",".././node_modules/gaxios/node_modules/whatwg-url/lib/public-api.js",".././node_modules/gaxios/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/gaxios/node_modules/whatwg-url/lib/utils.js",".././node_modules/gcp-metadata/build/src/index.js",".././node_modules/google-auth-library/build/src/auth/authclient.js",".././node_modules/google-auth-library/build/src/auth/awsclient.js",".././node_modules/google-auth-library/build/src/auth/awsrequestsigner.js",".././node_modules/google-auth-library/build/src/auth/baseexternalclient.js",".././node_modules/google-auth-library/build/src/auth/computeclient.js",".././node_modules/google-auth-library/build/src/auth/downscopedclient.js",".././node_modules/google-auth-library/build/src/auth/envDetect.js",".././node_modules/google-auth-library/build/src/auth/externalclient.js",".././node_modules/google-auth-library/build/src/auth/googleauth.js",".././node_modules/google-auth-library/build/src/auth/iam.js",".././node_modules/google-auth-library/build/src/auth/identitypoolclient.js",".././node_modules/google-auth-library/build/src/auth/idtokenclient.js",".././node_modules/google-auth-library/build/src/auth/impersonated.js",".././node_modules/google-auth-library/build/src/auth/jwtaccess.js",".././node_modules/google-auth-library/build/src/auth/jwtclient.js",".././node_modules/google-auth-library/build/src/auth/loginticket.js",".././node_modules/google-auth-library/build/src/auth/oauth2client.js",".././node_modules/google-auth-library/build/src/auth/oauth2common.js",".././node_modules/google-auth-library/build/src/auth/refreshclient.js",".././node_modules/google-auth-library/build/src/auth/stscredentials.js",".././node_modules/google-auth-library/build/src/crypto/browser/crypto.js",".././node_modules/google-auth-library/build/src/crypto/crypto.js",".././node_modules/google-auth-library/build/src/crypto/node/crypto.js",".././node_modules/google-auth-library/build/src/index.js",".././node_modules/google-auth-library/build/src/options.js",".././node_modules/google-auth-library/build/src/transporters.js",".././node_modules/google-p12-pem/build/src/index.js",".././node_modules/graceful-fs/clone.js",".././node_modules/graceful-fs/graceful-fs.js",".././node_modules/graceful-fs/legacy-streams.js",".././node_modules/graceful-fs/polyfills.js",".././node_modules/gtoken/build/src/index.js",".././node_modules/has-flag/index.js",".././node_modules/hash-stream-validation/crc32c.js",".././node_modules/hash-stream-validation/index.js",".././node_modules/http-proxy-agent/dist/agent.js",".././node_modules/http-proxy-agent/dist/index.js",".././node_modules/https-proxy-agent/dist/agent.js",".././node_modules/https-proxy-agent/dist/index.js",".././node_modules/https-proxy-agent/dist/parse-proxy-response.js",".././node_modules/ignore/index.js",".././node_modules/imurmurhash/imurmurhash.js",".././node_modules/inherits/inherits.js",".././node_modules/inherits/inherits_browser.js",".././node_modules/is-extglob/index.js",".././node_modules/is-glob/index.js",".././node_modules/is-number/index.js",".././node_modules/is-obj/index.js",".././node_modules/is-plain-object/dist/is-plain-object.js",".././node_modules/is-stream/index.js",".././node_modules/is-typedarray/index.js",".././node_modules/json-bigint/index.js",".././node_modules/json-bigint/lib/parse.js",".././node_modules/json-bigint/lib/stringify.js",".././node_modules/jwa/index.js",".././node_modules/jws/index.js",".././node_modules/jws/lib/data-stream.js",".././node_modules/jws/lib/sign-stream.js",".././node_modules/jws/lib/tostring.js",".././node_modules/jws/lib/verify-stream.js",".././node_modules/lru-cache/index.js",".././node_modules/make-dir/index.js",".././node_modules/merge2/index.js",".././node_modules/micromatch/index.js",".././node_modules/mime-db/index.js",".././node_modules/mime-types/index.js",".././node_modules/mime/Mime.js",".././node_modules/mime/index.js",".././node_modules/mime/types/other.js",".././node_modules/mime/types/standard.js",".././node_modules/ms/index.js",".././node_modules/node-forge/lib/aes.js",".././node_modules/node-forge/lib/aesCipherSuites.js",".././node_modules/node-forge/lib/asn1-validator.js",".././node_modules/node-forge/lib/asn1.js",".././node_modules/node-forge/lib/baseN.js",".././node_modules/node-forge/lib/cipher.js",".././node_modules/node-forge/lib/cipherModes.js",".././node_modules/node-forge/lib/des.js",".././node_modules/node-forge/lib/ed25519.js",".././node_modules/node-forge/lib/forge.js",".././node_modules/node-forge/lib/hmac.js",".././node_modules/node-forge/lib/index.js",".././node_modules/node-forge/lib/jsbn.js",".././node_modules/node-forge/lib/kem.js",".././node_modules/node-forge/lib/log.js",".././node_modules/node-forge/lib/md.all.js",".././node_modules/node-forge/lib/md.js",".././node_modules/node-forge/lib/md5.js",".././node_modules/node-forge/lib/mgf.js",".././node_modules/node-forge/lib/mgf1.js",".././node_modules/node-forge/lib/oids.js",".././node_modules/node-forge/lib/pbe.js",".././node_modules/node-forge/lib/pbkdf2.js",".././node_modules/node-forge/lib/pem.js",".././node_modules/node-forge/lib/pkcs1.js",".././node_modules/node-forge/lib/pkcs12.js",".././node_modules/node-forge/lib/pkcs7.js",".././node_modules/node-forge/lib/pkcs7asn1.js",".././node_modules/node-forge/lib/pki.js",".././node_modules/node-forge/lib/prime.js",".././node_modules/node-forge/lib/prng.js",".././node_modules/node-forge/lib/pss.js",".././node_modules/node-forge/lib/random.js",".././node_modules/node-forge/lib/rc2.js",".././node_modules/node-forge/lib/rsa.js",".././node_modules/node-forge/lib/sha1.js",".././node_modules/node-forge/lib/sha256.js",".././node_modules/node-forge/lib/sha512.js",".././node_modules/node-forge/lib/ssh.js",".././node_modules/node-forge/lib/tls.js",".././node_modules/node-forge/lib/util.js",".././node_modules/node-forge/lib/x509.js",".././node_modules/once/once.js",".././node_modules/p-limit/index.js",".././node_modules/path-type/index.js",".././node_modules/picomatch/index.js",".././node_modules/picomatch/lib/constants.js",".././node_modules/picomatch/lib/parse.js",".././node_modules/picomatch/lib/picomatch.js",".././node_modules/picomatch/lib/scan.js",".././node_modules/picomatch/lib/utils.js",".././node_modules/pump/index.js",".././node_modules/pumpify/index.js",".././node_modules/queue-microtask/index.js",".././node_modules/readable-stream/errors.js",".././node_modules/readable-stream/lib/_stream_duplex.js",".././node_modules/readable-stream/lib/_stream_passthrough.js",".././node_modules/readable-stream/lib/_stream_readable.js",".././node_modules/readable-stream/lib/_stream_transform.js",".././node_modules/readable-stream/lib/_stream_writable.js",".././node_modules/readable-stream/lib/internal/streams/async_iterator.js",".././node_modules/readable-stream/lib/internal/streams/buffer_list.js",".././node_modules/readable-stream/lib/internal/streams/destroy.js",".././node_modules/readable-stream/lib/internal/streams/end-of-stream.js",".././node_modules/readable-stream/lib/internal/streams/from.js",".././node_modules/readable-stream/lib/internal/streams/pipeline.js",".././node_modules/readable-stream/lib/internal/streams/state.js",".././node_modules/readable-stream/lib/internal/streams/stream.js",".././node_modules/readable-stream/readable.js",".././node_modules/retry-request/index.js",".././node_modules/retry/index.js",".././node_modules/retry/lib/retry.js",".././node_modules/retry/lib/retry_operation.js",".././node_modules/reusify/reusify.js",".././node_modules/run-parallel/index.js",".././node_modules/safe-buffer/index.js",".././node_modules/semver/semver.js",".././node_modules/signal-exit/index.js",".././node_modules/signal-exit/signals.js",".././node_modules/stream-events/index.js",".././node_modules/stream-shift/index.js",".././node_modules/string_decoder/lib/string_decoder.js",".././node_modules/string_decoder/node_modules/safe-buffer/index.js",".././node_modules/stubs/index.js",".././node_modules/supports-color/index.js",".././node_modules/teeny-request/build/src/TeenyStatistics.js",".././node_modules/teeny-request/build/src/agents.js",".././node_modules/teeny-request/build/src/index.js",".././node_modules/teeny-request/node_modules/node-fetch/lib/index.js",".././node_modules/teeny-request/node_modules/tr46/index.js",".././node_modules/teeny-request/node_modules/webidl-conversions/lib/index.js",".././node_modules/teeny-request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/teeny-request/node_modules/whatwg-url/lib/URL.js",".././node_modules/teeny-request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/teeny-request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/teeny-request/node_modules/whatwg-url/lib/utils.js",".././node_modules/to-regex-range/index.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/typedarray-to-buffer/index.js",".././node_modules/unique-string/index.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/util-deprecate/node.js",".././node_modules/uuid/dist/index.js",".././node_modules/uuid/dist/md5.js",".././node_modules/uuid/dist/nil.js",".././node_modules/uuid/dist/parse.js",".././node_modules/uuid/dist/regex.js",".././node_modules/uuid/dist/rng.js",".././node_modules/uuid/dist/sha1.js",".././node_modules/uuid/dist/stringify.js",".././node_modules/uuid/dist/v1.js",".././node_modules/uuid/dist/v3.js",".././node_modules/uuid/dist/v35.js",".././node_modules/uuid/dist/v4.js",".././node_modules/uuid/dist/v5.js",".././node_modules/uuid/dist/validate.js",".././node_modules/uuid/dist/version.js",".././node_modules/wrappy/wrappy.js",".././node_modules/write-file-atomic/index.js",".././node_modules/xdg-basedir/index.js",".././node_modules/yallist/iterator.js",".././node_modules/yallist/yallist.js",".././node_modules/yocto-queue/index.js",".././node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../external node-commonjs \"assert\"","../external node-commonjs \"buffer\"","../external node-commonjs \"child_process\"","../external node-commonjs \"constants\"","../external node-commonjs \"crypto\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"punycode\"","../external node-commonjs \"querystring\"","../external node-commonjs \"stream\"","../external node-commonjs \"tls\"","../external node-commonjs \"tty\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"worker_threads\"","../external node-commonjs \"zlib\"","../external node-commonjs \"node:fs\"","../external node-commonjs \"node:path\"","../external node-commonjs \"node:process\"",".././node_modules/globby/node_modules/slash/index.js","../external node-commonjs \"node:url\"","../external node-commonjs \"node:stream\"",".././node_modules/globby/utilities.js",".././node_modules/globby/ignore.js",".././node_modules/globby/index.js","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/compat","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst storage_1 = require(\"@google-cloud/storage\");\nconst globby_1 = require(\"globby\");\nconst util_1 = require(\"util\");\nconst bucketName = 'visual-regression-image-bucket';\nasync function run() {\n try {\n const gCredentials = JSON.parse(core.getInput('gcloud-credentials-json'));\n const storage = new storage_1.Storage({\n credentials: gCredentials,\n projectId: gCredentials.project_id\n });\n let paths = await (0, globby_1.globby)('**/*diff.png');\n paths = paths.filter(path => !path.includes('retry'));\n const uploadPromises = paths.map(async (path) => {\n const fileName = path.split('/').pop() || '';\n const summaryPath = fileName?.replace('diff.png', '').split('-').join(' ');\n const [gcloudResponse] = await storage.bucket(bucketName).upload(path, {\n contentType: 'image/png',\n destination: `${github.context.repo.repo}-${fileName}-sha-${github.context.sha}`\n });\n core.debug(`upload gcloud response for ${path}: ${(0, util_1.inspect)(gcloudResponse)}`);\n return `\n
\n ${summaryPath}\n ${path}\n
\n\n![${path}](${gcloudResponse.metadata.mediaLink})`;\n });\n const mdLines = await Promise.all(uploadPromises);\n const commentBody = [\n '### Ch-ch-ch-ch-changes',\n '
',\n '',\n '',\n '#### Turn and face the strange (click to see diffs)',\n '',\n '',\n '---',\n 'If these changes are intentional, leave a comment with `--update-snapshots` to commit new reference snapshots\\n',\n ...mdLines,\n '
'\n ].join('\\n');\n // important note: This action does not handle the `--update-snapshots` comment\n core.setOutput('body', commentBody);\n }\n catch (error) {\n if (error instanceof Error)\n core.setFailed(error.message);\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","\"use strict\";\n/*!\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceStream = exports.paginator = exports.Paginator = void 0;\n/*!\n * @module common/paginator\n */\nconst arrify = require(\"arrify\");\nconst extend = require(\"extend\");\nconst resource_stream_1 = require(\"./resource-stream\");\nObject.defineProperty(exports, \"ResourceStream\", { enumerable: true, get: function () { return resource_stream_1.ResourceStream; } });\n/*! Developer Documentation\n *\n * paginator is used to auto-paginate `nextQuery` methods as well as\n * streamifying them.\n *\n * Before:\n *\n * search.query('done=true', function(err, results, nextQuery) {\n * search.query(nextQuery, function(err, results, nextQuery) {});\n * });\n *\n * After:\n *\n * search.query('done=true', function(err, results) {});\n *\n * Methods to extend should be written to accept callbacks and return a\n * `nextQuery`.\n */\nclass Paginator {\n /**\n * Cache the original method, then overwrite it on the Class's prototype.\n *\n * @param {function} Class - The parent class of the methods to extend.\n * @param {string|string[]} methodNames - Name(s) of the methods to extend.\n */\n // tslint:disable-next-line:variable-name\n extend(Class, methodNames) {\n methodNames = arrify(methodNames);\n methodNames.forEach(methodName => {\n const originalMethod = Class.prototype[methodName];\n // map the original method to a private member\n Class.prototype[methodName + '_'] = originalMethod;\n // overwrite the original to auto-paginate\n /* eslint-disable @typescript-eslint/no-explicit-any */\n Class.prototype[methodName] = function (...args) {\n const parsedArguments = paginator.parseArguments_(args);\n return paginator.run_(parsedArguments, originalMethod.bind(this));\n };\n });\n }\n /**\n * Wraps paginated API calls in a readable object stream.\n *\n * This method simply calls the nextQuery recursively, emitting results to a\n * stream. The stream ends when `nextQuery` is null.\n *\n * `maxResults` will act as a cap for how many results are fetched and emitted\n * to the stream.\n *\n * @param {string} methodName - Name of the method to streamify.\n * @return {function} - Wrapped function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n streamify(methodName) {\n return function (\n /* eslint-disable @typescript-eslint/no-explicit-any */\n ...args) {\n const parsedArguments = paginator.parseArguments_(args);\n const originalMethod = this[methodName + '_'] || this[methodName];\n return paginator.runAsStream_(parsedArguments, originalMethod.bind(this));\n };\n }\n /**\n * Parse a pseudo-array `arguments` for a query and callback.\n *\n * @param {array} args - The original `arguments` pseduo-array that the original\n * method received.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n parseArguments_(args) {\n let query;\n let autoPaginate = true;\n let maxApiCalls = -1;\n let maxResults = -1;\n let callback;\n const firstArgument = args[0];\n const lastArgument = args[args.length - 1];\n if (typeof firstArgument === 'function') {\n callback = firstArgument;\n }\n else {\n query = firstArgument;\n }\n if (typeof lastArgument === 'function') {\n callback = lastArgument;\n }\n if (typeof query === 'object') {\n query = extend(true, {}, query);\n // Check if the user only asked for a certain amount of results.\n if (query.maxResults && typeof query.maxResults === 'number') {\n // `maxResults` is used API-wide.\n maxResults = query.maxResults;\n }\n else if (typeof query.pageSize === 'number') {\n // `pageSize` is Pub/Sub's `maxResults`.\n maxResults = query.pageSize;\n }\n if (query.maxApiCalls && typeof query.maxApiCalls === 'number') {\n maxApiCalls = query.maxApiCalls;\n delete query.maxApiCalls;\n }\n // maxResults is the user specified limit.\n if (maxResults !== -1 || query.autoPaginate === false) {\n autoPaginate = false;\n }\n }\n const parsedArguments = {\n query: query || {},\n autoPaginate,\n maxApiCalls,\n maxResults,\n callback,\n };\n parsedArguments.streamOptions = extend(true, {}, parsedArguments.query);\n delete parsedArguments.streamOptions.autoPaginate;\n delete parsedArguments.streamOptions.maxResults;\n delete parsedArguments.streamOptions.pageSize;\n return parsedArguments;\n }\n /**\n * This simply checks to see if `autoPaginate` is set or not, if it's true\n * then we buffer all results, otherwise simply call the original method.\n *\n * @param {array} parsedArguments - Parsed arguments from the original method\n * call.\n * @param {object=|string=} parsedArguments.query - Query object. This is most\n * commonly an object, but to make the API more simple, it can also be a\n * string in some places.\n * @param {function=} parsedArguments.callback - Callback function.\n * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled.\n * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make.\n * @param {number} parsedArguments.maxResults - Maximum results to return.\n * @param {function} originalMethod - The cached method that accepts a callback\n * and returns `nextQuery` to receive more results.\n */\n run_(parsedArguments, originalMethod) {\n const query = parsedArguments.query;\n const callback = parsedArguments.callback;\n if (!parsedArguments.autoPaginate) {\n return originalMethod(query, callback);\n }\n const results = new Array();\n const promise = new Promise((resolve, reject) => {\n paginator\n .runAsStream_(parsedArguments, originalMethod)\n .on('error', reject)\n .on('data', (data) => results.push(data))\n .on('end', () => resolve(results));\n });\n if (!callback) {\n return promise.then(results => [results]);\n }\n promise.then(results => callback(null, results), (err) => callback(err));\n }\n /**\n * This method simply calls the nextQuery recursively, emitting results to a\n * stream. The stream ends when `nextQuery` is null.\n *\n * `maxResults` will act as a cap for how many results are fetched and emitted\n * to the stream.\n *\n * @param {object=|string=} parsedArguments.query - Query object. This is most\n * commonly an object, but to make the API more simple, it can also be a\n * string in some places.\n * @param {function=} parsedArguments.callback - Callback function.\n * @param {boolean} parsedArguments.autoPaginate - Auto-pagination enabled.\n * @param {boolean} parsedArguments.maxApiCalls - Maximum API calls to make.\n * @param {number} parsedArguments.maxResults - Maximum results to return.\n * @param {function} originalMethod - The cached method that accepts a callback\n * and returns `nextQuery` to receive more results.\n * @return {stream} - Readable object stream.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n runAsStream_(parsedArguments, originalMethod) {\n return new resource_stream_1.ResourceStream(parsedArguments, originalMethod);\n }\n}\nexports.Paginator = Paginator;\nconst paginator = new Paginator();\nexports.paginator = paginator;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/*!\n * Copyright 2019 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResourceStream = void 0;\nconst stream_1 = require(\"stream\");\nclass ResourceStream extends stream_1.Transform {\n constructor(args, requestFn) {\n const options = Object.assign({ objectMode: true }, args.streamOptions);\n super(options);\n this._ended = false;\n this._maxApiCalls = args.maxApiCalls === -1 ? Infinity : args.maxApiCalls;\n this._nextQuery = args.query;\n this._reading = false;\n this._requestFn = requestFn;\n this._requestsMade = 0;\n this._resultsToSend = args.maxResults === -1 ? Infinity : args.maxResults;\n }\n /* eslint-disable @typescript-eslint/no-explicit-any */\n end(...args) {\n this._ended = true;\n return super.end(...args);\n }\n _read() {\n if (this._reading) {\n return;\n }\n this._reading = true;\n // Wrap in a try/catch to catch input linting errors, e.g.\n // an invalid BigQuery query. These errors are thrown in an\n // async fashion, which makes them un-catchable by the user.\n try {\n this._requestFn(this._nextQuery, (err, results, nextQuery) => {\n if (err) {\n this.destroy(err);\n return;\n }\n this._nextQuery = nextQuery;\n if (this._resultsToSend !== Infinity) {\n results = results.splice(0, this._resultsToSend);\n this._resultsToSend -= results.length;\n }\n let more = true;\n for (const result of results) {\n if (this._ended) {\n break;\n }\n more = this.push(result);\n }\n const isFinished = !this._nextQuery || this._resultsToSend < 1;\n const madeMaxCalls = ++this._requestsMade >= this._maxApiCalls;\n if (isFinished || madeMaxCalls) {\n this.end();\n }\n if (more && !this._ended) {\n setImmediate(() => this._read());\n }\n this._reading = false;\n });\n }\n catch (e) {\n this.destroy(e);\n }\n }\n}\nexports.ResourceStream = ResourceStream;\n//# sourceMappingURL=resource-stream.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\n// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Populate the `{{projectId}}` placeholder.\n *\n * @throws {Error} If a projectId is required, but one is not provided.\n *\n * @param {*} - Any input value that may contain a placeholder. Arrays and objects will be looped.\n * @param {string} projectId - A projectId. If not provided\n * @return {*} - The original argument with all placeholders populated.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replaceProjectIdToken(value, projectId) {\n if (Array.isArray(value)) {\n value = value.map(v => replaceProjectIdToken(v, projectId));\n }\n if (value !== null &&\n typeof value === 'object' &&\n !(value instanceof Buffer) &&\n !(value instanceof stream_1.Stream) &&\n typeof value.hasOwnProperty === 'function') {\n for (const opt in value) {\n // eslint-disable-next-line no-prototype-builtins\n if (value.hasOwnProperty(opt)) {\n value[opt] = replaceProjectIdToken(value[opt], projectId);\n }\n }\n }\n if (typeof value === 'string' &&\n value.indexOf('{{projectId}}') > -1) {\n if (!projectId || projectId === '{{projectId}}') {\n throw new MissingProjectIdError();\n }\n value = value.replace(/{{projectId}}/g, projectId);\n }\n return value;\n}\nexports.replaceProjectIdToken = replaceProjectIdToken;\n/**\n * Custom error type for missing project ID errors.\n */\nclass MissingProjectIdError extends Error {\n constructor() {\n super(...arguments);\n this.message = `Sorry, we cannot connect to Cloud Services without a project\n ID. You may specify one with an environment variable named\n \"GOOGLE_CLOUD_PROJECT\".`.replace(/ +/g, ' ');\n }\n}\nexports.MissingProjectIdError = MissingProjectIdError;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable prefer-rest-params */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callbackifyAll = exports.callbackify = exports.promisifyAll = exports.promisify = void 0;\n/**\n * Wraps a callback style function to conditionally return a promise.\n *\n * @param {function} originalMethod - The method to promisify.\n * @param {object=} options - Promise options.\n * @param {boolean} options.singular - Resolve the promise with single arg instead of an array.\n * @return {function} wrapped\n */\nfunction promisify(originalMethod, options) {\n if (originalMethod.promisified_) {\n return originalMethod;\n }\n options = options || {};\n const slice = Array.prototype.slice;\n // tslint:disable-next-line:no-any\n const wrapper = function () {\n let last;\n for (last = arguments.length - 1; last >= 0; last--) {\n const arg = arguments[last];\n if (typeof arg === 'undefined') {\n continue; // skip trailing undefined.\n }\n if (typeof arg !== 'function') {\n break; // non-callback last argument found.\n }\n return originalMethod.apply(this, arguments);\n }\n // peel trailing undefined.\n const args = slice.call(arguments, 0, last + 1);\n // tslint:disable-next-line:variable-name\n let PromiseCtor = Promise;\n // Because dedupe will likely create a single install of\n // @google-cloud/common to be shared amongst all modules, we need to\n // localize it at the Service level.\n if (this && this.Promise) {\n PromiseCtor = this.Promise;\n }\n return new PromiseCtor((resolve, reject) => {\n // tslint:disable-next-line:no-any\n args.push((...args) => {\n const callbackArgs = slice.call(args);\n const err = callbackArgs.shift();\n if (err) {\n return reject(err);\n }\n if (options.singular && callbackArgs.length === 1) {\n resolve(callbackArgs[0]);\n }\n else {\n resolve(callbackArgs);\n }\n });\n originalMethod.apply(this, args);\n });\n };\n wrapper.promisified_ = true;\n return wrapper;\n}\nexports.promisify = promisify;\n/**\n * Promisifies certain Class methods. This will not promisify private or\n * streaming methods.\n *\n * @param {module:common/service} Class - Service class.\n * @param {object=} options - Configuration object.\n */\n// tslint:disable-next-line:variable-name\nfunction promisifyAll(Class, options) {\n const exclude = (options && options.exclude) || [];\n const ownPropertyNames = Object.getOwnPropertyNames(Class.prototype);\n const methods = ownPropertyNames.filter(methodName => {\n // clang-format off\n return (!exclude.includes(methodName) &&\n typeof Class.prototype[methodName] === 'function' && // is it a function?\n !/(^_|(Stream|_)|promise$)|^constructor$/.test(methodName) // is it promisable?\n );\n // clang-format on\n });\n methods.forEach(methodName => {\n const originalMethod = Class.prototype[methodName];\n if (!originalMethod.promisified_) {\n Class.prototype[methodName] = exports.promisify(originalMethod, options);\n }\n });\n}\nexports.promisifyAll = promisifyAll;\n/**\n * Wraps a promisy type function to conditionally call a callback function.\n *\n * @param {function} originalMethod - The method to callbackify.\n * @param {object=} options - Callback options.\n * @param {boolean} options.singular - Pass to the callback a single arg instead of an array.\n * @return {function} wrapped\n */\nfunction callbackify(originalMethod) {\n if (originalMethod.callbackified_) {\n return originalMethod;\n }\n // tslint:disable-next-line:no-any\n const wrapper = function () {\n if (typeof arguments[arguments.length - 1] !== 'function') {\n return originalMethod.apply(this, arguments);\n }\n const cb = Array.prototype.pop.call(arguments);\n originalMethod.apply(this, arguments).then(\n // tslint:disable-next-line:no-any\n (res) => {\n res = Array.isArray(res) ? res : [res];\n cb(null, ...res);\n }, (err) => cb(err));\n };\n wrapper.callbackified_ = true;\n return wrapper;\n}\nexports.callbackify = callbackify;\n/**\n * Callbackifies certain Class methods. This will not callbackify private or\n * streaming methods.\n *\n * @param {module:common/service} Class - Service class.\n * @param {object=} options - Configuration object.\n */\nfunction callbackifyAll(\n// tslint:disable-next-line:variable-name\nClass, options) {\n const exclude = (options && options.exclude) || [];\n const ownPropertyNames = Object.getOwnPropertyNames(Class.prototype);\n const methods = ownPropertyNames.filter(methodName => {\n // clang-format off\n return (!exclude.includes(methodName) &&\n typeof Class.prototype[methodName] === 'function' && // is it a function?\n !/^_|(Stream|_)|^constructor$/.test(methodName) // is it callbackifyable?\n );\n // clang-format on\n });\n methods.forEach(methodName => {\n const originalMethod = Class.prototype[methodName];\n if (!originalMethod.callbackified_) {\n Class.prototype[methodName] = exports.callbackify(originalMethod);\n }\n });\n}\nexports.callbackifyAll = callbackifyAll;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AclRoleAccessorMethods = exports.Acl = void 0;\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\n/**\n * Attach functionality to a {@link Storage.acl} instance. This will add an\n * object for each role group (owners, readers, and writers), with each object\n * containing methods to add or delete a type of entity.\n *\n * As an example, here are a few methods that are created.\n *\n * myBucket.acl.readers.deleteGroup('groupId', function(err) {});\n *\n * myBucket.acl.owners.addUser('email@example.com', function(err, acl) {});\n *\n * myBucket.acl.writers.addDomain('example.com', function(err, acl) {});\n *\n * @private\n */\nclass AclRoleAccessorMethods {\n constructor() {\n this.owners = {};\n this.readers = {};\n this.writers = {};\n /**\n * An object of convenience methods to add or delete owner ACL permissions\n * for a given entity.\n *\n * The supported methods include:\n *\n * - `myFile.acl.owners.addAllAuthenticatedUsers`\n * - `myFile.acl.owners.deleteAllAuthenticatedUsers`\n * - `myFile.acl.owners.addAllUsers`\n * - `myFile.acl.owners.deleteAllUsers`\n * - `myFile.acl.owners.addDomain`\n * - `myFile.acl.owners.deleteDomain`\n * - `myFile.acl.owners.addGroup`\n * - `myFile.acl.owners.deleteGroup`\n * - `myFile.acl.owners.addProject`\n * - `myFile.acl.owners.deleteProject`\n * - `myFile.acl.owners.addUser`\n * - `myFile.acl.owners.deleteUser`\n *\n * @name Acl#owners\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * //-\n * // Add a user as an owner of a file.\n * //-\n * const myBucket = gcs.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n * myFile.acl.owners.addUser('email@example.com', function(err, aclObject)\n * {});\n *\n * //-\n * // For reference, the above command is the same as running the following.\n * //-\n * myFile.acl.add({\n * entity: 'user-email@example.com',\n * role: gcs.acl.OWNER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.owners.addUser('email@example.com').then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n this.owners = {};\n /**\n * An object of convenience methods to add or delete reader ACL permissions\n * for a given entity.\n *\n * The supported methods include:\n *\n * - `myFile.acl.readers.addAllAuthenticatedUsers`\n * - `myFile.acl.readers.deleteAllAuthenticatedUsers`\n * - `myFile.acl.readers.addAllUsers`\n * - `myFile.acl.readers.deleteAllUsers`\n * - `myFile.acl.readers.addDomain`\n * - `myFile.acl.readers.deleteDomain`\n * - `myFile.acl.readers.addGroup`\n * - `myFile.acl.readers.deleteGroup`\n * - `myFile.acl.readers.addProject`\n * - `myFile.acl.readers.deleteProject`\n * - `myFile.acl.readers.addUser`\n * - `myFile.acl.readers.deleteUser`\n *\n * @name Acl#readers\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * //-\n * // Add a user as a reader of a file.\n * //-\n * myFile.acl.readers.addUser('email@example.com', function(err, aclObject)\n * {});\n *\n * //-\n * // For reference, the above command is the same as running the following.\n * //-\n * myFile.acl.add({\n * entity: 'user-email@example.com',\n * role: gcs.acl.READER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.readers.addUser('email@example.com').then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n this.readers = {};\n /**\n * An object of convenience methods to add or delete writer ACL permissions\n * for a given entity.\n *\n * The supported methods include:\n *\n * - `myFile.acl.writers.addAllAuthenticatedUsers`\n * - `myFile.acl.writers.deleteAllAuthenticatedUsers`\n * - `myFile.acl.writers.addAllUsers`\n * - `myFile.acl.writers.deleteAllUsers`\n * - `myFile.acl.writers.addDomain`\n * - `myFile.acl.writers.deleteDomain`\n * - `myFile.acl.writers.addGroup`\n * - `myFile.acl.writers.deleteGroup`\n * - `myFile.acl.writers.addProject`\n * - `myFile.acl.writers.deleteProject`\n * - `myFile.acl.writers.addUser`\n * - `myFile.acl.writers.deleteUser`\n *\n * @name Acl#writers\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * //-\n * // Add a user as a writer of a file.\n * //-\n * myFile.acl.writers.addUser('email@example.com', function(err, aclObject)\n * {});\n *\n * //-\n * // For reference, the above command is the same as running the following.\n * //-\n * myFile.acl.add({\n * entity: 'user-email@example.com',\n * role: gcs.acl.WRITER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.writers.addUser('email@example.com').then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n this.writers = {};\n AclRoleAccessorMethods.roles.forEach(this._assignAccessMethods.bind(this));\n }\n _assignAccessMethods(role) {\n const accessMethods = AclRoleAccessorMethods.accessMethods;\n const entities = AclRoleAccessorMethods.entities;\n const roleGroup = role.toLowerCase() + 's';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[roleGroup] = entities.reduce((acc, entity) => {\n const isPrefix = entity.charAt(entity.length - 1) === '-';\n accessMethods.forEach(accessMethod => {\n let method = accessMethod + entity[0].toUpperCase() + entity.substr(1);\n if (isPrefix) {\n method = method.replace('-', '');\n }\n // Wrap the parent accessor method (e.g. `add` or `delete`) to avoid the\n // more complex API of specifying an `entity` and `role`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n acc[method] = (entityId, options, callback) => {\n let apiEntity;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (isPrefix) {\n apiEntity = entity + entityId;\n }\n else {\n // If the entity is not a prefix, it is a special entity group\n // that does not require further details. The accessor methods\n // only accept a callback.\n apiEntity = entity;\n callback = entityId;\n }\n options = Object.assign({\n entity: apiEntity,\n role,\n }, options);\n const args = [options];\n if (typeof callback === 'function') {\n args.push(callback);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this[accessMethod].apply(this, args);\n };\n });\n return acc;\n }, {});\n }\n}\nexports.AclRoleAccessorMethods = AclRoleAccessorMethods;\nAclRoleAccessorMethods.accessMethods = ['add', 'delete'];\nAclRoleAccessorMethods.entities = [\n // Special entity groups that do not require further specification.\n 'allAuthenticatedUsers',\n 'allUsers',\n // Entity groups that require specification, e.g. `user-email@example.com`.\n 'domain-',\n 'group-',\n 'project-',\n 'user-',\n];\nAclRoleAccessorMethods.roles = ['OWNER', 'READER', 'WRITER'];\n/**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * An ACL consists of one or more entries, where each entry grants permissions\n * to an entity. Permissions define the actions that can be performed against an\n * object or bucket (for example, `READ` or `WRITE`); the entity defines who the\n * permission applies to (for example, a specific user or group of users).\n *\n * Where an `entity` value is accepted, we follow the format the Cloud Storage\n * API expects.\n *\n * Refer to\n * https://cloud.google.com/storage/docs/json_api/v1/defaultObjectAccessControls\n * for the most up-to-date values.\n *\n * - `user-userId`\n * - `user-email`\n * - `group-groupId`\n * - `group-email`\n * - `domain-domain`\n * - `project-team-projectId`\n * - `allUsers`\n * - `allAuthenticatedUsers`\n *\n * Examples:\n *\n * - The user \"liz@example.com\" would be `user-liz@example.com`.\n * - The group \"example@googlegroups.com\" would be\n * `group-example@googlegroups.com`.\n * - To refer to all members of the Google Apps for Business domain\n * \"example.com\", the entity would be `domain-example.com`.\n *\n * For more detailed information, see\n * {@link http://goo.gl/6qBBPO| About Access Control Lists}.\n *\n * @constructor Acl\n * @mixin\n * @param {object} options Configuration options.\n */\nclass Acl extends AclRoleAccessorMethods {\n constructor(options) {\n super();\n this.pathPrefix = options.pathPrefix;\n this.request_ = options.request;\n }\n /**\n * @typedef {array} AddAclResponse\n * @property {object} 0 The Acl Objects.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback AddAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object} acl The Acl Objects.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Add access controls on a {@link Bucket} or {@link File}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/insert| BucketAccessControls: insert API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/insert| ObjectAccessControls: insert API Documentation}\n *\n * @param {object} options Configuration options.\n * @param {string} options.entity Whose permissions will be added.\n * @param {string} options.role Permissions allowed for the defined entity.\n * See {@link https://cloud.google.com/storage/docs/access-control Access\n * Control}.\n * @param {number} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {AddAclCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * const options = {\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.OWNER_ROLE\n * };\n *\n * myBucket.acl.add(options, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * // Here is how you would grant ownership permissions to a user on a\n * specific\n * // revision of a file.\n * //-\n * myFile.acl.add({\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.OWNER_ROLE,\n * generation: 1\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_add_file_owner\n * Example of adding an owner to a file:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_owner\n * Example of adding an owner to a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_default_owner\n * Example of adding a default owner to a bucket:\n */\n add(options, callback) {\n const query = {};\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.request({\n method: 'POST',\n uri: '',\n qs: query,\n json: {\n entity: options.entity,\n role: options.role.toUpperCase(),\n },\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n callback(null, this.makeAclObject_(resp), resp);\n });\n }\n /**\n * @typedef {array} RemoveAclResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback RemoveAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Delete access controls on a {@link Bucket} or {@link File}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/delete| BucketAccessControls: delete API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/delete| ObjectAccessControls: delete API Documentation}\n *\n * @param {object} options Configuration object.\n * @param {string} options.entity Whose permissions will be revoked.\n * @param {int} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {RemoveAclCallback} callback The callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * myBucket.acl.delete({\n * entity: 'user-useremail@example.com'\n * }, function(err, apiResponse) {});\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * //-\n * myFile.acl.delete({\n * entity: 'user-useremail@example.com',\n * generation: 1\n * }, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_owner\n * Example of removing an owner from a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_default_owner\n * Example of removing a default owner from a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_file_owner\n * Example of removing an owner from a bucket:\n */\n delete(options, callback) {\n const query = {};\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.request({\n method: 'DELETE',\n uri: '/' + encodeURIComponent(options.entity),\n qs: query,\n }, (err, resp) => {\n callback(err, resp);\n });\n }\n /**\n * @typedef {array} GetAclResponse\n * @property {object|object[]} 0 Single or array of Acl Objects.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object|object[]} acl Single or array of Acl Objects.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get access controls on a {@link Bucket} or {@link File}. If\n * an entity is omitted, you will receive an array of all applicable access\n * controls.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/get| BucketAccessControls: get API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/get| ObjectAccessControls: get API Documentation}\n *\n * @param {object|function} [options] Configuration options. If you want to\n * receive a list of all access controls, pass the callback function as\n * the only argument.\n * @param {string} [options.entity] Whose permissions will be fetched.\n * @param {number} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetAclCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * myBucket.acl.get({\n * entity: 'user-useremail@example.com'\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // Get all access controls.\n * //-\n * myBucket.acl.get(function(err, aclObjects, apiResponse) {\n * // aclObjects = [\n * // {\n * // entity: 'user-useremail@example.com',\n * // role: 'owner'\n * // }\n * // ]\n * });\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * //-\n * myFile.acl.get({\n * entity: 'user-useremail@example.com',\n * generation: 1\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.acl.get().then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_print_file_acl\n * Example of printing a file's ACL:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_file_acl_for_user\n * Example of printing a file's ACL for a specific user:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl\n * Example of printing a bucket's ACL:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl_for_user\n * Example of printing a bucket's ACL for a specific user:\n */\n get(optionsOrCallback, cb) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : null;\n const callback = typeof optionsOrCallback === 'function' ? optionsOrCallback : cb;\n let path = '';\n const query = {};\n if (options) {\n path = '/' + encodeURIComponent(options.entity);\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n }\n this.request({\n uri: path,\n qs: query,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n let results;\n if (resp.items) {\n results = arrify(resp.items).map(this.makeAclObject_);\n }\n else {\n results = this.makeAclObject_(resp);\n }\n callback(null, results, resp);\n });\n }\n /**\n * @typedef {array} UpdateAclResponse\n * @property {object} 0 The updated Acl Objects.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback UpdateAclCallback\n * @param {?Error} err Request error, if any.\n * @param {object} acl The updated Acl Objects.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Update access controls on a {@link Bucket} or {@link File}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls/update| BucketAccessControls: update API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/update| ObjectAccessControls: update API Documentation}\n *\n * @param {object} options Configuration options.\n * @param {string} options.entity Whose permissions will be updated.\n * @param {string} options.role Permissions allowed for the defined entity.\n * See {@link Storage.acl}.\n * @param {number} [options.generation] **File Objects Only** Select a specific\n * revision of this file (as opposed to the latest version, the default).\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {UpdateAclCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n * const myFile = myBucket.file('my-file');\n *\n * const options = {\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.WRITER_ROLE\n * };\n *\n * myBucket.acl.update(options, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // For file ACL operations, you can also specify a `generation` property.\n * //-\n * myFile.acl.update({\n * entity: 'user-useremail@example.com',\n * role: gcs.acl.WRITER_ROLE,\n * generation: 1\n * }, function(err, aclObject, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myFile.acl.update(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n update(options, callback) {\n const query = {};\n if (options.generation) {\n query.generation = options.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.request({\n method: 'PUT',\n uri: '/' + encodeURIComponent(options.entity),\n qs: query,\n json: {\n role: options.role.toUpperCase(),\n },\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n callback(null, this.makeAclObject_(resp), resp);\n });\n }\n /**\n * Transform API responses to a consistent object format.\n *\n * @private\n */\n makeAclObject_(accessControlObject) {\n const obj = {\n entity: accessControlObject.entity,\n role: accessControlObject.role,\n };\n if (accessControlObject.projectTeam) {\n obj.projectTeam = accessControlObject.projectTeam;\n }\n return obj;\n }\n /**\n * Patch requests up to the bucket's request object.\n *\n * @private\n *\n * @param {string} method Action.\n * @param {string} path Request path.\n * @param {*} query Request query object.\n * @param {*} body Request body contents.\n * @param {function} callback Callback function.\n */\n request(reqOpts, callback) {\n reqOpts.uri = this.pathPrefix + reqOpts.uri;\n this.request_(reqOpts, callback);\n }\n}\nexports.Acl = Acl;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Acl, {\n exclude: ['request'],\n});\n//# sourceMappingURL=acl.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bucket = exports.BucketExceptionMessages = exports.AvailableServiceObjectMethods = exports.BucketActionToHTTPMethod = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst paginator_1 = require(\"@google-cloud/paginator\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst extend = require(\"extend\");\nconst fs = require(\"fs\");\nconst mime = require(\"mime-types\");\nconst path = require(\"path\");\nconst pLimit = require(\"p-limit\");\nconst util_1 = require(\"util\");\nconst retry = require(\"async-retry\");\nconst util_2 = require(\"./util\");\nconst acl_1 = require(\"./acl\");\nconst file_1 = require(\"./file\");\nconst iam_1 = require(\"./iam\");\nconst notification_1 = require(\"./notification\");\nconst storage_1 = require(\"./storage\");\nconst signer_1 = require(\"./signer\");\nconst stream_1 = require(\"stream\");\nvar BucketActionToHTTPMethod;\n(function (BucketActionToHTTPMethod) {\n BucketActionToHTTPMethod[\"list\"] = \"GET\";\n})(BucketActionToHTTPMethod = exports.BucketActionToHTTPMethod || (exports.BucketActionToHTTPMethod = {}));\nvar AvailableServiceObjectMethods;\n(function (AvailableServiceObjectMethods) {\n AvailableServiceObjectMethods[AvailableServiceObjectMethods[\"setMetadata\"] = 0] = \"setMetadata\";\n AvailableServiceObjectMethods[AvailableServiceObjectMethods[\"delete\"] = 1] = \"delete\";\n})(AvailableServiceObjectMethods = exports.AvailableServiceObjectMethods || (exports.AvailableServiceObjectMethods = {}));\nvar BucketExceptionMessages;\n(function (BucketExceptionMessages) {\n BucketExceptionMessages[\"PROVIDE_SOURCE_FILE\"] = \"You must provide at least one source file.\";\n BucketExceptionMessages[\"DESTINATION_FILE_NOT_SPECIFIED\"] = \"A destination file must be specified.\";\n BucketExceptionMessages[\"CHANNEL_ID_REQUIRED\"] = \"An ID is required to create a channel.\";\n BucketExceptionMessages[\"CHANNEL_ADDRESS_REQUIRED\"] = \"An address is required to create a channel.\";\n BucketExceptionMessages[\"TOPIC_NAME_REQUIRED\"] = \"A valid topic name is required.\";\n BucketExceptionMessages[\"CONFIGURATION_OBJECT_PREFIX_REQUIRED\"] = \"A configuration object with a prefix is required.\";\n BucketExceptionMessages[\"SPECIFY_FILE_NAME\"] = \"A file name must be specified.\";\n BucketExceptionMessages[\"METAGENERATION_NOT_PROVIDED\"] = \"A metageneration must be provided.\";\n BucketExceptionMessages[\"SUPPLY_NOTIFICATION_ID\"] = \"You must supply a notification ID.\";\n})(BucketExceptionMessages = exports.BucketExceptionMessages || (exports.BucketExceptionMessages = {}));\n/**\n * The size of a file (in bytes) must be greater than this number to\n * automatically trigger a resumable upload.\n *\n * @const {number}\n * @private\n */\nconst RESUMABLE_THRESHOLD = 5000000;\n/**\n * Get and set IAM policies for your bucket.\n *\n * @name Bucket#iam\n * @mixes Iam\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/iam#short_title_iam_management| Cloud Storage IAM Management}\n * See {@link https://cloud.google.com/iam/docs/granting-changing-revoking-access| Granting, Changing, and Revoking Access}\n * See {@link https://cloud.google.com/iam/docs/understanding-roles| IAM Roles}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Get the IAM policy for your bucket.\n * //-\n * bucket.iam.getPolicy(function(err, policy) {\n * console.log(policy);\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.getPolicy().then(function(data) {\n * const policy = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/iam.js\n * region_tag:storage_view_bucket_iam_members\n * Example of retrieving a bucket's IAM policy:\n *\n * @example include:samples/iam.js\n * region_tag:storage_add_bucket_iam_member\n * Example of adding to a bucket's IAM policy:\n *\n * @example include:samples/iam.js\n * region_tag:storage_remove_bucket_iam_member\n * Example of removing from a bucket's IAM policy:\n */\n/**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * An ACL consists of one or more entries, where each entry grants permissions\n * to an entity. Permissions define the actions that can be performed against\n * an object or bucket (for example, `READ` or `WRITE`); the entity defines\n * who the permission applies to (for example, a specific user or group of\n * users).\n *\n * The `acl` object on a Bucket instance provides methods to get you a list of\n * the ACLs defined on your bucket, as well as set, update, and delete them.\n *\n * Buckets also have\n * {@link https://cloud.google.com/storage/docs/access-control/lists#default| default ACLs}\n * for all created files. Default ACLs specify permissions that all new\n * objects added to the bucket will inherit by default. You can add, delete,\n * get, and update entities and permissions for these as well with\n * {@link Bucket#acl.default}.\n *\n * See {@link http://goo.gl/6qBBPO| About Access Control Lists}\n * See {@link https://cloud.google.com/storage/docs/access-control/lists#default| Default ACLs}\n *\n * @name Bucket#acl\n * @mixes Acl\n * @property {Acl} default Cloud Storage Buckets have\n * {@link https://cloud.google.com/storage/docs/access-control/lists#default| default ACLs}\n * for all created files. You can add, delete, get, and update entities and\n * permissions for these as well. The method signatures and examples are all\n * the same, after only prefixing the method call with `default`.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Make a bucket's contents publicly readable.\n * //-\n * const myBucket = storage.bucket('my-bucket');\n *\n * const options = {\n * entity: 'allUsers',\n * role: storage.acl.READER_ROLE\n * };\n *\n * myBucket.acl.add(options, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl\n * Example of printing a bucket's ACL:\n *\n * @example include:samples/acl.js\n * region_tag:storage_print_bucket_acl_for_user\n * Example of printing a bucket's ACL for a specific user:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_owner\n * Example of adding an owner to a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_owner\n * Example of removing an owner from a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_add_bucket_default_owner\n * Example of adding a default owner to a bucket:\n *\n * @example include:samples/acl.js\n * region_tag:storage_remove_bucket_default_owner\n * Example of removing a default owner from a bucket:\n */\n/**\n * The API-formatted resource description of the bucket.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name Bucket#metadata\n * @type {object}\n */\n/**\n * The bucket's name.\n * @name Bucket#name\n * @type {string}\n */\n/**\n * Get {@link File} objects for the files currently in the bucket as a\n * readable object stream.\n *\n * @method Bucket#getFilesStream\n * @param {GetFilesOptions} [query] Query object for listing files.\n * @returns {ReadableStream} A readable stream that emits {@link File} instances.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getFilesStream()\n * .on('error', console.error)\n * .on('data', function(file) {\n * // file is a File object.\n * })\n * .on('end', function() {\n * // All files retrieved.\n * });\n *\n * //-\n * // If you anticipate many results, you can end a stream early to prevent\n * // unnecessary processing and API requests.\n * //-\n * bucket.getFilesStream()\n * .on('data', function(file) {\n * this.end();\n * });\n *\n * //-\n * // If you're filtering files with a delimiter, you should use\n * // {@link Bucket#getFiles} and set `autoPaginate: false` in order to\n * // preserve the `apiResponse` argument.\n * //-\n * const prefixes = [];\n *\n * function callback(err, files, nextQuery, apiResponse) {\n * prefixes = prefixes.concat(apiResponse.prefixes);\n *\n * if (nextQuery) {\n * bucket.getFiles(nextQuery, callback);\n * } else {\n * // prefixes = The finished array of prefixes.\n * }\n * }\n *\n * bucket.getFiles({\n * autoPaginate: false,\n * delimiter: '/'\n * }, callback);\n * ```\n */\n/**\n * Create a Bucket object to interact with a Cloud Storage bucket.\n *\n * @class\n * @hideconstructor\n *\n * @param {Storage} storage A {@link Storage} instance.\n * @param {string} name The name of the bucket.\n * @param {object} [options] Configuration object.\n * @param {string} [options.userProject] User project.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * ```\n */\nclass Bucket extends nodejs_common_1.ServiceObject {\n constructor(storage, name, options) {\n var _a, _b, _c, _d;\n options = options || {};\n // Allow for \"gs://\"-style input, and strip any trailing slashes.\n name = name.replace(/^gs:\\/\\//, '').replace(/\\/+$/, '');\n const requestQueryObject = {};\n if ((_a = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) {\n requestQueryObject.ifGenerationMatch =\n options.preconditionOpts.ifGenerationMatch;\n }\n if ((_b = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationNotMatch) {\n requestQueryObject.ifGenerationNotMatch =\n options.preconditionOpts.ifGenerationNotMatch;\n }\n if ((_c = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _c === void 0 ? void 0 : _c.ifMetagenerationMatch) {\n requestQueryObject.ifMetagenerationMatch =\n options.preconditionOpts.ifMetagenerationMatch;\n }\n if ((_d = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _d === void 0 ? void 0 : _d.ifMetagenerationNotMatch) {\n requestQueryObject.ifMetagenerationNotMatch =\n options.preconditionOpts.ifMetagenerationNotMatch;\n }\n const userProject = options.userProject;\n if (typeof userProject === 'string') {\n requestQueryObject.userProject = userProject;\n }\n const methods = {\n /**\n * Create a bucket.\n *\n * @method Bucket#create\n * @param {CreateBucketRequest} [metadata] Metadata to set for the bucket.\n * @param {CreateBucketCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * bucket.create(function(err, bucket, apiResponse) {\n * if (!err) {\n * // The bucket was created successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.create().then(function(data) {\n * const bucket = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n create: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} DeleteBucketOptions Configuration options.\n * @property {boolean} [ignoreNotFound = false] Ignore an error if\n * the bucket does not exist.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} DeleteBucketResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteBucketCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Delete the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/delete| Buckets: delete API Documentation}\n *\n * @method Bucket#delete\n * @param {DeleteBucketOptions} [options] Configuration options.\n * @param {boolean} [options.ignoreNotFound = false] Ignore an error if\n * the bucket does not exist.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DeleteBucketCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * bucket.delete(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/buckets.js\n * region_tag:storage_delete_bucket\n * Another example:\n */\n delete: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} BucketExistsOptions Configuration options for Bucket#exists().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} BucketExistsResponse\n * @property {boolean} 0 Whether the {@link Bucket} exists.\n */\n /**\n * @callback BucketExistsCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} exists Whether the {@link Bucket} exists.\n */\n /**\n * Check if the bucket exists.\n *\n * @method Bucket#exists\n * @param {BucketExistsOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {BucketExistsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.exists(function(err, exists) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.exists().then(function(data) {\n * const exists = data[0];\n * });\n * ```\n */\n exists: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} [GetBucketOptions] Configuration options for Bucket#get()\n * @property {boolean} [autoCreate] Automatically create the object if\n * it does not exist. Default: `false`\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} GetBucketResponse\n * @property {Bucket} 0 The {@link Bucket}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetBucketCallback\n * @param {?Error} err Request error, if any.\n * @param {Bucket} bucket The {@link Bucket}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get a bucket if it exists.\n *\n * You may optionally use this to \"get or create\" an object by providing\n * an object with `autoCreate` set to `true`. Any extra configuration that\n * is normally required for the `create` method must be contained within\n * this object as well.\n *\n * @method Bucket#get\n * @param {GetBucketOptions} [options] Configuration options.\n * @param {boolean} [options.autoCreate] Automatically create the object if\n * it does not exist. Default: `false`\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetBucketCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.get(function(err, bucket, apiResponse) {\n * // `bucket.metadata` has been populated.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.get().then(function(data) {\n * const bucket = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n get: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} GetBucketMetadataResponse\n * @property {object} 0 The bucket metadata.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetBucketMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The bucket metadata.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} GetBucketMetadataOptions Configuration options for Bucket#getMetadata().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Get the bucket's metadata.\n *\n * To set metadata, see {@link Bucket#setMetadata}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/get| Buckets: get API Documentation}\n *\n * @method Bucket#getMetadata\n * @param {GetBucketMetadataOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getMetadata(function(err, metadata, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getMetadata().then(function(data) {\n * const metadata = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/requesterPays.js\n * region_tag:storage_get_requester_pays_status\n * Example of retrieving the requester pays status of a bucket:\n */\n getMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} SetBucketMetadataOptions Configuration options for Bucket#setMetadata().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} SetBucketMetadataResponse\n * @property {object} apiResponse The full API response.\n */\n /**\n * @callback SetBucketMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The bucket metadata.\n */\n /**\n * Set the bucket's metadata.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @method Bucket#setMetadata\n * @param {object} metadata The metadata you wish to set.\n * @param {SetBucketMetadataOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Set website metadata field on the bucket.\n * //-\n * const metadata = {\n * website: {\n * mainPageSuffix: 'http://example.com',\n * notFoundPage: 'http://example.com/404.html'\n * }\n * };\n *\n * bucket.setMetadata(metadata, function(err, apiResponse) {});\n *\n * //-\n * // Enable versioning for your bucket.\n * //-\n * bucket.setMetadata({\n * versioning: {\n * enabled: true\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Enable KMS encryption for objects within this bucket.\n * //-\n * bucket.setMetadata({\n * encryption: {\n * defaultKmsKeyName: 'projects/grape-spaceship-123/...'\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Set the default event-based hold value for new objects in this\n * // bucket.\n * //-\n * bucket.setMetadata({\n * defaultEventBasedHold: true\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Remove object lifecycle rules.\n * //-\n * bucket.setMetadata({\n * lifecycle: null\n * }, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setMetadata(metadata).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n };\n super({\n parent: storage,\n baseUrl: '/b',\n id: name,\n createMethod: storage.createBucket.bind(storage),\n methods,\n });\n this.name = name;\n this.storage = storage;\n this.userProject = options.userProject;\n this.acl = new acl_1.Acl({\n request: this.request.bind(this),\n pathPrefix: '/acl',\n });\n this.acl.default = new acl_1.Acl({\n request: this.request.bind(this),\n pathPrefix: '/defaultObjectAcl',\n });\n this.iam = new iam_1.Iam(this);\n this.getFilesStream = paginator_1.paginator.streamify('getFiles');\n this.instanceRetryValue = storage.retryOptions.autoRetry;\n this.instancePreconditionOpts = options === null || options === void 0 ? void 0 : options.preconditionOpts;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getFilesStream(query) {\n // placeholder body, overwritten in constructor\n return new stream_1.Readable();\n }\n /**\n * @typedef {object} AddLifecycleRuleOptions Configuration options for Bucket#addLifecycleRule().\n * @property {boolean} [append=true] The new rules will be appended to any\n * pre-existing rules.\n */\n /**\n *\n * @typedef {object} LifecycleRule The new lifecycle rule to be added to objects\n * in this bucket.\n * @property {string|object} action The action to be taken upon matching of\n * all the conditions 'delete' or 'setStorageClass'.\n * **Note**: For configuring a raw-formatted rule object to be passed as `action`\n * please refer to the [examples]{@link https://cloud.google.com/storage/docs/managing-lifecycles#configexamples}.\n * @property {object} condition Condition a bucket must meet before the\n * action occurs on the bucket. Refer to following supported [conditions]{@link https://cloud.google.com/storage/docs/lifecycle#conditions}.\n * @property {string} [storageClass] When using the `setStorageClass`\n * action, provide this option to dictate which storage class the object\n * should update to. Please see\n * [SetStorageClass option documentation]{@link https://cloud.google.com/storage/docs/lifecycle#setstorageclass} for supported transitions.\n */\n /**\n * Add an object lifecycle management rule to the bucket.\n *\n * By default, an Object Lifecycle Management rule provided to this method\n * will be included to the existing policy. To replace all existing rules,\n * supply the `options` argument, setting `append` to `false`.\n *\n * See {@link https://cloud.google.com/storage/docs/lifecycle| Object Lifecycle Management}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @param {LifecycleRule} rule The new lifecycle rule to be added to objects\n * in this bucket.\n * @param {string|object} rule.action The action to be taken upon matching of\n * all the conditions 'delete' or 'setStorageClass'.\n * **Note**: For configuring a raw-formatted rule object to be passed as `action`\n * please refer to the [examples]{@link https://cloud.google.com/storage/docs/managing-lifecycles#configexamples}.\n * @param {object} rule.condition Condition a bucket must meet before the\n * action occurson the bucket. Refer to followitn supported [conditions]{@link https://cloud.google.com/storage/docs/lifecycle#conditions}.\n * @param {string} [rule.storageClass] When using the `setStorageClass`\n * action, provide this option to dictate which storage class the object\n * should update to.\n * @param {AddLifecycleRuleOptions} [options] Configuration object.\n * @param {boolean} [options.append=true] Append the new rule to the existing\n * policy.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Automatically have an object deleted from this bucket once it is 3 years\n * // of age.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * age: 365 * 3 // Specified in days.\n * }\n * }, function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * const lifecycleRules = bucket.metadata.lifecycle.rule;\n *\n * // Iterate over the Object Lifecycle Management rules on this bucket.\n * lifecycleRules.forEach(lifecycleRule => {});\n * });\n *\n * //-\n * // By default, the rule you provide will be added to the existing policy.\n * // Optionally, you can disable this behavior to replace all of the\n * // pre-existing rules.\n * //-\n * const options = {\n * append: false\n * };\n *\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * age: 365 * 3 // Specified in days.\n * }\n * }, options, function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // All rules have been replaced with the new \"delete\" rule.\n *\n * // Iterate over the Object Lifecycle Management rules on this bucket.\n * lifecycleRules.forEach(lifecycleRule => {});\n * });\n *\n * //-\n * // For objects created before 2018, \"downgrade\" the storage class.\n * //-\n * bucket.addLifecycleRule({\n * action: 'setStorageClass',\n * storageClass: 'COLDLINE',\n * condition: {\n * createdBefore: new Date('2018')\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete objects created before 2016 which have the Coldline storage\n * // class.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * matchesStorageClass: [\n * 'COLDLINE'\n * ],\n * createdBefore: new Date('2016')\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete object that has a noncurrent timestamp that is at least 100 days.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * daysSinceNoncurrentTime: 100\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete object that has a noncurrent timestamp before 2020-01-01.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * noncurrentTimeBefore: new Date('2020-01-01')\n * }\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Delete object that has a customTime that is at least 100 days.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * daysSinceCustomTime: 100\n * }\n * }, function(err, apiResponse) ());\n *\n * //-\n * // Delete object that has a customTime before 2020-01-01.\n * //-\n * bucket.addLifecycleRule({\n * action: 'delete',\n * condition: {\n * customTimeBefore: new Date('2020-01-01')\n * }\n * }, function(err, apiResponse) {});\n * ```\n */\n addLifecycleRule(rule, optionsOrCallback, callback) {\n let options;\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n options = options || {};\n const newLifecycleRules = arrify(rule).map(rule => {\n if (typeof rule.action === 'object') {\n // This is a raw-formatted rule object, the way the API expects.\n // Just pass it through as-is.\n return rule;\n }\n const apiFormattedRule = {};\n apiFormattedRule.condition = {};\n apiFormattedRule.action = {\n type: rule.action.charAt(0).toUpperCase() + rule.action.slice(1),\n };\n if (rule.storageClass) {\n apiFormattedRule.action.storageClass = rule.storageClass;\n }\n for (const condition in rule.condition) {\n if (rule.condition[condition] instanceof Date) {\n apiFormattedRule.condition[condition] = rule.condition[condition]\n .toISOString()\n .replace(/T.+$/, '');\n }\n else {\n apiFormattedRule.condition[condition] = rule.condition[condition];\n }\n }\n return apiFormattedRule;\n });\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n if (options.append === false) {\n this.setMetadata({ lifecycle: { rule: newLifecycleRules } }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n return;\n }\n // The default behavior appends the previously-defined lifecycle rules with\n // the new ones just passed in by the user.\n this.getMetadata((err, metadata) => {\n if (err) {\n callback(err);\n return;\n }\n const currentLifecycleRules = arrify(metadata.lifecycle && metadata.lifecycle.rule);\n this.setMetadata({\n lifecycle: {\n rule: currentLifecycleRules.concat(newLifecycleRules),\n },\n }, callback);\n });\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {object} CombineOptions\n * @property {string} [kmsKeyName] Resource name of the Cloud KMS key, of\n * the form\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`,\n * that will be used to encrypt the object. Overwrites the object\n * metadata's `kms_key_name` value, if any.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback CombineCallback\n * @param {?Error} err Request error, if any.\n * @param {File} newFile The new {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} CombineResponse\n * @property {File} 0 The new {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * Combine multiple files into one new file.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/compose| Objects: compose API Documentation}\n *\n * @throws {Error} if a non-array is provided as sources argument.\n * @throws {Error} if no sources are provided.\n * @throws {Error} if no destination is provided.\n *\n * @param {string[]|File[]} sources The source files that will be\n * combined.\n * @param {string|File} destination The file you would like the\n * source files combined into.\n * @param {CombineOptions} [options] Configuration options.\n * @param {string} [options.kmsKeyName] Resource name of the Cloud KMS key, of\n * the form\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`,\n * that will be used to encrypt the object. Overwrites the object\n * metadata's `kms_key_name` value, if any.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n \n * @param {CombineCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const logBucket = storage.bucket('log-bucket');\n *\n * const sources = [\n * logBucket.file('2013-logs.txt'),\n * logBucket.file('2014-logs.txt')\n * ];\n *\n * const allLogs = logBucket.file('all-logs.txt');\n *\n * logBucket.combine(sources, allLogs, function(err, newFile, apiResponse) {\n * // newFile === allLogs\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * logBucket.combine(sources, allLogs).then(function(data) {\n * const newFile = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n combine(sources, destination, optionsOrCallback, callback) {\n if (!Array.isArray(sources) || sources.length === 0) {\n throw new Error(BucketExceptionMessages.PROVIDE_SOURCE_FILE);\n }\n if (!destination) {\n throw new Error(BucketExceptionMessages.DESTINATION_FILE_NOT_SPECIFIED);\n }\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n const convertToFile = (file) => {\n if (file instanceof file_1.File) {\n return file;\n }\n return this.file(file);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sources = sources.map(convertToFile);\n const destinationFile = convertToFile(destination);\n callback = callback || nodejs_common_1.util.noop;\n if (!destinationFile.metadata.contentType) {\n const destinationContentType = mime.contentType(destinationFile.name);\n if (destinationContentType) {\n destinationFile.metadata.contentType = destinationContentType;\n }\n }\n let maxRetries = this.storage.retryOptions.maxRetries;\n sources.forEach(source => {\n var _a;\n if ((((_a = source === null || source === void 0 ? void 0 : source.instancePreconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n maxRetries = 0;\n }\n });\n Object.assign(options, this.instancePreconditionOpts, options);\n // Make the request from the destination File object.\n destinationFile.request({\n method: 'POST',\n uri: '/compose',\n maxRetries,\n json: {\n destination: {\n contentType: destinationFile.metadata.contentType,\n },\n sourceObjects: sources.map(source => {\n var _a, _b, _c, _d;\n const sourceObject = {\n name: source.name,\n };\n if (((_a = source === null || source === void 0 ? void 0 : source.metadata) === null || _a === void 0 ? void 0 : _a.generation) || ((_b = source === null || source === void 0 ? void 0 : source.instancePreconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch)) {\n sourceObject.generation =\n ((_c = source === null || source === void 0 ? void 0 : source.metadata) === null || _c === void 0 ? void 0 : _c.generation) || ((_d = source === null || source === void 0 ? void 0 : source.instancePreconditionOpts) === null || _d === void 0 ? void 0 : _d.ifGenerationMatch);\n }\n return sourceObject;\n }),\n },\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n callback(null, destinationFile, resp);\n });\n }\n /**\n * See a {@link https://cloud.google.com/storage/docs/json_api/v1/objects/watchAll| Objects: watchAll request body}.\n *\n * @typedef {object} CreateChannelConfig\n * @property {string} address The address where notifications are\n * delivered for this channel.\n * @property {string} [delimiter] Returns results in a directory-like mode.\n * @property {number} [maxResults] Maximum number of `items` plus `prefixes`\n * to return in a single page of responses.\n * @property {string} [pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @property {string} [prefix] Filter results to objects whose names begin\n * with this prefix.\n * @property {string} [projection=noAcl] Set of properties to return.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {boolean} [versions=false] If `true`, lists all versions of an object\n * as distinct results.\n */\n /**\n * @typedef {object} CreateChannelOptions\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} CreateChannelResponse\n * @property {Channel} 0 The new {@link Channel}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback CreateChannelCallback\n * @param {?Error} err Request error, if any.\n * @param {Channel} channel The new {@link Channel}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Create a channel that will be notified when objects in this bucket changes.\n *\n * @throws {Error} If an ID is not provided.\n * @throws {Error} If an address is not provided.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/watchAll| Objects: watchAll API Documentation}\n *\n * @param {string} id The ID of the channel to create.\n * @param {CreateChannelConfig} config Configuration for creating channel.\n * @param {string} config.address The address where notifications are\n * delivered for this channel.\n * @param {string} [config.delimiter] Returns results in a directory-like mode.\n * @param {number} [config.maxResults] Maximum number of `items` plus `prefixes`\n * to return in a single page of responses.\n * @param {string} [config.pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @param {string} [config.prefix] Filter results to objects whose names begin\n * with this prefix.\n * @param {string} [config.projection=noAcl] Set of properties to return.\n * @param {string} [config.userProject] The ID of the project which will be\n * billed for the request.\n * @param {boolean} [config.versions=false] If `true`, lists all versions of an object\n * as distinct results.\n * @param {CreateChannelOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {CreateChannelCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const id = 'new-channel-id';\n *\n * const config = {\n * address: 'https://...'\n * };\n *\n * bucket.createChannel(id, config, function(err, channel, apiResponse) {\n * if (!err) {\n * // Channel created successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.createChannel(id, config).then(function(data) {\n * const channel = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n createChannel(id, config, optionsOrCallback, callback) {\n if (typeof id !== 'string') {\n throw new Error(BucketExceptionMessages.CHANNEL_ID_REQUIRED);\n }\n if (typeof config.address !== 'string') {\n throw new Error(BucketExceptionMessages.CHANNEL_ADDRESS_REQUIRED);\n }\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n this.request({\n method: 'POST',\n uri: '/o/watch',\n json: Object.assign({\n id,\n type: 'web_hook',\n }, config),\n qs: options,\n }, (err, apiResponse) => {\n if (err) {\n callback(err, null, apiResponse);\n return;\n }\n const resourceId = apiResponse.resourceId;\n const channel = this.storage.channel(id, resourceId);\n channel.metadata = apiResponse;\n callback(null, channel, apiResponse);\n });\n }\n /**\n * Metadata to set for the Notification.\n *\n * @typedef {object} CreateNotificationOptions\n * @property {object} [customAttributes] An optional list of additional\n * attributes to attach to each Cloud PubSub message published for this\n * notification subscription.\n * @property {string[]} [eventTypes] If present, only send notifications about\n * listed event types. If empty, sent notifications for all event types.\n * @property {string} [objectNamePrefix] If present, only apply this\n * notification configuration to object names that begin with this prefix.\n * @property {string} [payloadFormat] The desired content of the Payload.\n * Defaults to `JSON_API_V1`.\n *\n * Acceptable values are:\n * - `JSON_API_V1`\n *\n * - `NONE`\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback CreateNotificationCallback\n * @param {?Error} err Request error, if any.\n * @param {Notification} notification The new {@link Notification}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} CreateNotificationResponse\n * @property {Notification} 0 The new {@link Notification}.\n * @property {object} 1 The full API response.\n */\n /**\n * Creates a notification subscription for the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/insert| Notifications: insert}\n *\n * @param {Topic|string} topic The Cloud PubSub topic to which this\n * subscription publishes. If the project ID is omitted, the current\n * project ID will be used.\n *\n * Acceptable formats are:\n * - `projects/grape-spaceship-123/topics/my-topic`\n *\n * - `my-topic`\n * @param {CreateNotificationOptions} [options] Metadata to set for the\n * notification.\n * @param {object} [options.customAttributes] An optional list of additional\n * attributes to attach to each Cloud PubSub message published for this\n * notification subscription.\n * @param {string[]} [options.eventTypes] If present, only send notifications about\n * listed event types. If empty, sent notifications for all event types.\n * @param {string} [options.objectNamePrefix] If present, only apply this\n * notification configuration to object names that begin with this prefix.\n * @param {string} [options.payloadFormat] The desired content of the Payload.\n * Defaults to `JSON_API_V1`.\n *\n * Acceptable values are:\n * - `JSON_API_V1`\n *\n * - `NONE`\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {CreateNotificationCallback} [callback] Callback function.\n * @returns {Promise}\n * @throws {Error} If a valid topic is not provided.\n * @see Notification#create\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const callback = function(err, notification, apiResponse) {\n * if (!err) {\n * // The notification was created successfully.\n * }\n * };\n *\n * myBucket.createNotification('my-topic', callback);\n *\n * //-\n * // Configure the nofiication by providing Notification metadata.\n * //-\n * const metadata = {\n * objectNamePrefix: 'prefix-'\n * };\n *\n * myBucket.createNotification('my-topic', metadata, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * myBucket.createNotification('my-topic').then(function(data) {\n * const notification = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/createNotification.js\n * region_tag:storage_create_bucket_notifications\n * Another example:\n */\n createNotification(topic, optionsOrCallback, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n const topicIsObject = topic !== null && typeof topic === 'object';\n if (topicIsObject && nodejs_common_1.util.isCustomType(topic, 'pubsub/topic')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n topic = topic.name;\n }\n if (typeof topic !== 'string') {\n throw new Error(BucketExceptionMessages.TOPIC_NAME_REQUIRED);\n }\n const body = Object.assign({ topic }, options);\n if (body.topic.indexOf('projects') !== 0) {\n body.topic = 'projects/{{projectId}}/topics/' + body.topic;\n }\n body.topic = '//pubsub.googleapis.com/' + body.topic;\n if (!body.payloadFormat) {\n body.payloadFormat = 'JSON_API_V1';\n }\n const query = {};\n if (body.userProject) {\n query.userProject = body.userProject;\n delete body.userProject;\n }\n this.request({\n method: 'POST',\n uri: '/notificationConfigs',\n json: util_2.convertObjKeysToSnakeCase(body),\n qs: query,\n maxRetries: 0,\n }, (err, apiResponse) => {\n if (err) {\n callback(err, null, apiResponse);\n return;\n }\n const notification = this.notification(apiResponse.id);\n notification.metadata = apiResponse;\n callback(null, notification, apiResponse);\n });\n }\n /**\n * @typedef {object} DeleteFilesOptions Query object. See {@link Bucket#getFiles}\n * for all of the supported properties.\n * @property {boolean} [force] Suppress errors until all files have been\n * processed.\n */\n /**\n * @callback DeleteFilesCallback\n * @param {?Error|?Error[]} err Request error, if any, or array of errors from\n * files that were not able to be deleted.\n * @param {object} [apiResponse] The full API response.\n */\n /**\n * Iterate over the bucket's files, calling `file.delete()` on each.\n *\n * This is not an atomic request. A delete attempt will be\n * made for each file individually. Any one can fail, in which case only a\n * portion of the files you intended to be deleted would have.\n *\n * Operations are performed in parallel, up to 10 at once. The first error\n * breaks the loop and will execute the provided callback with it. Specify\n * `{ force: true }` to suppress the errors until all files have had a chance\n * to be processed.\n *\n * The `query` object passed as the first argument will also be passed to\n * {@link Bucket#getFiles}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/delete| Objects: delete API Documentation}\n *\n * @param {DeleteFilesOptions} [query] Query object. See {@link Bucket#getFiles}\n * @param {boolean} [query.force] Suppress errors until all files have been\n * processed.\n * @param {DeleteFilesCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Delete all of the files in the bucket.\n * //-\n * bucket.deleteFiles(function(err) {});\n *\n * //-\n * // By default, if a file cannot be deleted, this method will stop deleting\n * // files from your bucket. You can override this setting with `force:\n * // true`.\n * //-\n * bucket.deleteFiles({\n * force: true\n * }, function(errors) {\n * // `errors`:\n * // Array of errors if any occurred, otherwise null.\n * });\n *\n * //-\n * // The first argument to this method acts as a query to\n * // {@link Bucket#getFiles}. As an example, you can delete files\n * // which match a prefix.\n * //-\n * bucket.deleteFiles({\n * prefix: 'images/'\n * }, function(err) {\n * if (!err) {\n * // All files in the `images` directory have been deleted.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.deleteFiles().then(function() {});\n * ```\n */\n deleteFiles(queryOrCallback, callback) {\n let query = {};\n if (typeof queryOrCallback === 'function') {\n callback = queryOrCallback;\n }\n else if (queryOrCallback) {\n query = queryOrCallback;\n }\n const MAX_PARALLEL_LIMIT = 10;\n const errors = [];\n const deleteFile = (file) => {\n return file.delete(query).catch(err => {\n if (!query.force) {\n throw err;\n }\n errors.push(err);\n });\n };\n this.getFiles(query)\n .then(([files]) => {\n const limit = pLimit(MAX_PARALLEL_LIMIT);\n const promises = files.map(file => {\n return limit(() => deleteFile(file));\n });\n return Promise.all(promises);\n })\n .then(() => callback(errors.length > 0 ? errors : null), callback);\n }\n /**\n * @typedef {array} DeleteLabelsResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteLabelsCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata Bucket's metadata.\n */\n /**\n * Delete one or more labels from this bucket.\n *\n * @param {string|string[]} [labels] The labels to delete. If no labels are\n * provided, all of the labels are removed.\n * @param {DeleteLabelsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Delete all of the labels from this bucket.\n * //-\n * bucket.deleteLabels(function(err, apiResponse) {});\n *\n * //-\n * // Delete a single label.\n * //-\n * bucket.deleteLabels('labelone', function(err, apiResponse) {});\n *\n * //-\n * // Delete a specific set of labels.\n * //-\n * bucket.deleteLabels([\n * 'labelone',\n * 'labeltwo'\n * ], function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.deleteLabels().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n deleteLabels(labelsOrCallback, callback) {\n let labels = new Array();\n if (typeof labelsOrCallback === 'function') {\n callback = labelsOrCallback;\n }\n else if (labelsOrCallback) {\n labels = arrify(labelsOrCallback);\n }\n const deleteLabels = (labels) => {\n const nullLabelMap = labels.reduce((nullLabelMap, labelKey) => {\n nullLabelMap[labelKey] = null;\n return nullLabelMap;\n }, {});\n this.setLabels(nullLabelMap, callback);\n };\n if (labels.length === 0) {\n this.getLabels((err, labels) => {\n if (err) {\n callback(err);\n return;\n }\n deleteLabels(Object.keys(labels));\n });\n }\n else {\n deleteLabels(labels);\n }\n }\n /**\n * @typedef {array} DisableRequesterPaysResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DisableRequesterPaysCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n *
\n * Early Access Testers Only\n *

\n * This feature is not yet widely-available.\n *

\n *
\n *\n * Disable `requesterPays` functionality from this bucket.\n *\n * @param {DisableRequesterPaysCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.disableRequesterPays(function(err, apiResponse) {\n * if (!err) {\n * // requesterPays functionality disabled successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.disableRequesterPays().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/requesterPays.js\n * region_tag:storage_disable_requester_pays\n * Example of disabling requester pays:\n */\n disableRequesterPays(callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n billing: {\n requesterPays: false,\n },\n }, callback || nodejs_common_1.util.noop);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Configuration object for enabling logging.\n *\n * @typedef {object} EnableLoggingOptions\n * @property {string|Bucket} [bucket] The bucket for the log entries. By\n * default, the current bucket is used.\n * @property {string} prefix A unique prefix for log object names.\n */\n /**\n * Enable logging functionality for this bucket. This will make two API\n * requests, first to grant Cloud Storage WRITE permission to the bucket, then\n * to set the appropriate configuration on the Bucket's metadata.\n *\n * @param {EnableLoggingOptions} config Configuration options.\n * @param {string|Bucket} [config.bucket] The bucket for the log entries. By\n * default, the current bucket is used.\n * @param {string} config.prefix A unique prefix for log object names.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * const config = {\n * prefix: 'log'\n * };\n *\n * bucket.enableLogging(config, function(err, apiResponse) {\n * if (!err) {\n * // Logging functionality enabled successfully.\n * }\n * });\n *\n * ```\n * @example\n * Optionally, provide a destination bucket.\n * ```\n * const config = {\n * prefix: 'log',\n * bucket: 'destination-bucket'\n * };\n *\n * bucket.enableLogging(config, function(err, apiResponse) {});\n * ```\n *\n * @example\n * If the callback is omitted, we'll return a Promise.\n * ```\n * bucket.enableLogging(config).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n enableLogging(config, callback) {\n if (!config ||\n typeof config === 'function' ||\n typeof config.prefix === 'undefined') {\n throw new Error(BucketExceptionMessages.CONFIGURATION_OBJECT_PREFIX_REQUIRED);\n }\n const logBucket = config.bucket\n ? config.bucket.id || config.bucket\n : this.id;\n (async () => {\n let setMetadataResponse;\n try {\n const [policy] = await this.iam.getPolicy();\n policy.bindings.push({\n members: ['group:cloud-storage-analytics@google.com'],\n role: 'roles/storage.objectCreator',\n });\n await this.iam.setPolicy(policy);\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n [setMetadataResponse] = await this.setMetadata({\n logging: {\n logBucket,\n logObjectPrefix: config.prefix,\n },\n });\n }\n catch (e) {\n callback(e);\n return;\n }\n finally {\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n callback(null, setMetadataResponse);\n })();\n }\n /**\n * @typedef {array} EnableRequesterPaysResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback EnableRequesterPaysCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n *
\n * Early Access Testers Only\n *

\n * This feature is not yet widely-available.\n *

\n *
\n *\n * Enable `requesterPays` functionality for this bucket. This enables you, the\n * bucket owner, to have the requesting user assume the charges for the access\n * to your bucket and its contents.\n *\n * @param {EnableRequesterPaysCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.enableRequesterPays(function(err, apiResponse) {\n * if (!err) {\n * // requesterPays functionality enabled successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.enableRequesterPays().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/requesterPays.js\n * region_tag:storage_enable_requester_pays\n * Example of enabling requester pays:\n */\n enableRequesterPays(callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n billing: {\n requesterPays: true,\n },\n }, callback || nodejs_common_1.util.noop);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Create a {@link File} object. See {@link File} to see how to handle\n * the different use cases you may have.\n *\n * @param {string} name The name of the file in this bucket.\n * @param {FileOptions} [options] Configuration options.\n * @param {string|number} [options.generation] Only use a specific revision of\n * this file.\n * @param {string} [options.encryptionKey] A custom encryption key. See\n * {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}.\n * @param {string} [options.kmsKeyName] The name of the Cloud KMS key that will\n * be used to encrypt the object. Must be in the format:\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`.\n * KMS key ring must use the same location as the bucket.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for all requests made from File object.\n * @returns {File}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const file = bucket.file('my-existing-file.png');\n * ```\n */\n file(name, options) {\n if (!name) {\n throw Error(BucketExceptionMessages.SPECIFY_FILE_NAME);\n }\n return new file_1.File(this, name, options);\n }\n /**\n * @typedef {array} GetFilesResponse\n * @property {File[]} 0 Array of {@link File} instances.\n * @param {object} nextQuery 1 A query object to receive more results.\n * @param {object} apiResponse 2 The full API response.\n */\n /**\n * @callback GetFilesCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files Array of {@link File} instances.\n * @param {object} nextQuery A query object to receive more results.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Query object for listing files.\n *\n * @typedef {object} GetFilesOptions\n * @property {boolean} [autoPaginate=true] Have pagination handled\n * automatically.\n * @property {string} [delimiter] Results will contain only objects whose\n * names, aside from the prefix, do not contain delimiter. Objects whose\n * names, aside from the prefix, contain delimiter will have their name\n * truncated after the delimiter, returned in `apiResponse.prefixes`.\n * Duplicate prefixes are omitted.\n * @deprecated @property {string} [directory] Filter results based on a directory name, or\n * more technically, a \"prefix\". Assumes delimeter to be '/'. Deprecated. Use prefix instead.\n * @property {string} [endOffset] Filter results to objects whose names are\n * lexicographically before endOffset. If startOffset is also set, the objects\n * listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @property {boolean} [includeTrailingDelimiter] If true, objects that end in\n * exactly one instance of delimiter have their metadata included in items[]\n * in addition to the relevant part of the object name appearing in prefixes[].\n * @property {string} [prefix] Filter results to objects whose names begin\n * with this prefix.\n * @property {number} [maxApiCalls] Maximum number of API calls to make.\n * @property {number} [maxResults] Maximum number of items plus prefixes to\n * return per call.\n * Note: By default will handle pagination automatically\n * if more than 1 page worth of results are requested per call.\n * When `autoPaginate` is set to `false` the smaller of `maxResults`\n * or 1 page of results will be returned per call.\n * @property {string} [pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @property {string} [startOffset] Filter results to objects whose names are\n * lexicographically equal to or after startOffset. If endOffset is also set,\n * the objects listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {boolean} [versions] If true, returns File objects scoped to\n * their versions.\n */\n /**\n * Get {@link File} objects for the files currently in the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/list| Objects: list API Documentation}\n *\n * @param {GetFilesOptions} [query] Query object for listing files.\n * @param {boolean} [query.autoPaginate=true] Have pagination handled\n * automatically.\n * @param {string} [query.delimiter] Results will contain only objects whose\n * names, aside from the prefix, do not contain delimiter. Objects whose\n * names, aside from the prefix, contain delimiter will have their name\n * truncated after the delimiter, returned in `apiResponse.prefixes`.\n * Duplicate prefixes are omitted.\n * @deprecated @param {string} [query.directory] Filter results based on a directory name, or\n * more technically, a \"prefix\". Assumes delimeter to be '/'. Deprecated. Use query.prefix instead.\n * @param {string} [query.endOffset] Filter results to objects whose names are\n * lexicographically before endOffset. If startOffset is also set, the objects\n * listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @param {boolean} [query.includeTrailingDelimiter] If true, objects that end in\n * exactly one instance of delimiter have their metadata included in items[]\n * in addition to the relevant part of the object name appearing in prefixes[].\n * @param {string} [query.prefix] Filter results to objects whose names begin\n * with this prefix.\n * @param {number} [query.maxApiCalls] Maximum number of API calls to make.\n * @param {number} [query.maxResults] Maximum number of items plus prefixes to\n * return per call.\n * Note: By default will handle pagination automatically\n * if more than 1 page worth of results are requested per call.\n * When `autoPaginate` is set to `false` the smaller of `maxResults`\n * or 1 page of results will be returned per call.\n * @param {string} [query.pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @param {string} [query.startOffset] Filter results to objects whose names are\n * lexicographically equal to or after startOffset. If endOffset is also set,\n * the objects listed have names between startOffset (inclusive) and endOffset (exclusive).\n * @param {string} [query.userProject] The ID of the project which will be\n * billed for the request.\n * @param {boolean} [query.versions] If true, returns File objects scoped to\n * their versions.\n * @param {GetFilesCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getFiles(function(err, files) {\n * if (!err) {\n * // files is an array of File objects.\n * }\n * });\n *\n * //-\n * // If your bucket has versioning enabled, you can get all of your files\n * // scoped to their generation.\n * //-\n * bucket.getFiles({\n * versions: true\n * }, function(err, files) {\n * // Each file is scoped to its generation.\n * });\n *\n * //-\n * // To control how many API requests are made and page through the results\n * // manually, set `autoPaginate` to `false`.\n * //-\n * const callback = function(err, files, nextQuery, apiResponse) {\n * if (nextQuery) {\n * // More results exist.\n * bucket.getFiles(nextQuery, callback);\n * }\n *\n * // The `metadata` property is populated for you with the metadata at the\n * // time of fetching.\n * files[0].metadata;\n *\n * // However, in cases where you are concerned the metadata could have\n * // changed, use the `getMetadata` method.\n * files[0].getMetadata(function(err, metadata) {});\n * };\n *\n * bucket.getFiles({\n * autoPaginate: false\n * }, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getFiles().then(function(data) {\n * const files = data[0];\n * });\n *\n * ```\n * @example\n *
Simulating a File System

With `autoPaginate: false`, it's possible to iterate over files which incorporate a common structure using a delimiter.

Consider the following remote objects:

  1. \"a\"
  2. \"a/b/c/d\"
  3. \"b/d/e\"

Using a delimiter of `/` will return a single file, \"a\".

`apiResponse.prefixes` will return the \"sub-directories\" that were found:

  1. \"a/\"
  2. \"b/\"
\n * ```\n * bucket.getFiles({\n * autoPaginate: false,\n * delimiter: '/'\n * }, function(err, files, nextQuery, apiResponse) {\n * // files = [\n * // {File} // File object for file \"a\"\n * // ]\n *\n * // apiResponse.prefixes = [\n * // 'a/',\n * // 'b/'\n * // ]\n * });\n * ```\n *\n * @example\n * Using prefixes, it's now possible to simulate a file system with follow-up requests.\n * ```\n * bucket.getFiles({\n * autoPaginate: false,\n * delimiter: '/',\n * prefix: 'a/'\n * }, function(err, files, nextQuery, apiResponse) {\n * // No files found within \"directory\" a.\n * // files = []\n *\n * // However, a \"sub-directory\" was found.\n * // This prefix can be used to continue traversing the \"file system\".\n * // apiResponse.prefixes = [\n * // 'a/b/'\n * // ]\n * });\n * ```\n *\n * @example include:samples/files.js\n * region_tag:storage_list_files\n * Another example:\n *\n * @example include:samples/files.js\n * region_tag:storage_list_files_with_prefix\n * Example of listing files, filtered by a prefix:\n */\n getFiles(queryOrCallback, callback) {\n let query = typeof queryOrCallback === 'object' ? queryOrCallback : {};\n if (!callback) {\n callback = queryOrCallback;\n }\n query = Object.assign({}, query);\n if (query.directory) {\n query.prefix = `${query.directory}/`.replace(/\\/*$/, '/');\n delete query.directory;\n }\n this.request({\n uri: '/o',\n qs: query,\n }, (err, resp) => {\n if (err) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback(err, null, null, resp);\n return;\n }\n const files = arrify(resp.items).map((file) => {\n const options = {};\n if (query.versions) {\n options.generation = file.generation;\n }\n if (file.kmsKeyName) {\n options.kmsKeyName = file.kmsKeyName;\n }\n const fileInstance = this.file(file.name, options);\n fileInstance.metadata = file;\n return fileInstance;\n });\n let nextQuery = null;\n if (resp.nextPageToken) {\n nextQuery = Object.assign({}, query, {\n pageToken: resp.nextPageToken,\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback(null, files, nextQuery, resp);\n });\n }\n /**\n * @typedef {object} GetLabelsOptions Configuration options for Bucket#getLabels().\n * @param {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} GetLabelsResponse\n * @property {object} 0 Object of labels currently set on this bucket.\n */\n /**\n * @callback GetLabelsCallback\n * @param {?Error} err Request error, if any.\n * @param {object} labels Object of labels currently set on this bucket.\n */\n /**\n * Get the labels currently set on this bucket.\n *\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetLabelsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.getLabels(function(err, labels) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // labels = {\n * // label: 'labelValue',\n * // ...\n * // }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getLabels().then(function(data) {\n * const labels = data[0];\n * });\n * ```\n */\n getLabels(optionsOrCallback, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n this.getMetadata(options, (err, metadata) => {\n if (err) {\n callback(err, null);\n return;\n }\n callback(null, metadata.labels || {});\n });\n }\n /**\n * @typedef {object} GetNotificationsOptions Configuration options for Bucket#getNotification().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback GetNotificationsCallback\n * @param {?Error} err Request error, if any.\n * @param {Notification[]} notifications Array of {@link Notification}\n * instances.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} GetNotificationsResponse\n * @property {Notification[]} 0 Array of {@link Notification} instances.\n * @property {object} 1 The full API response.\n */\n /**\n * Retrieves a list of notification subscriptions for a given bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/list| Notifications: list}\n *\n * @param {GetNotificationsOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetNotificationsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * bucket.getNotifications(function(err, notifications, apiResponse) {\n * if (!err) {\n * // notifications is an array of Notification objects.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getNotifications().then(function(data) {\n * const notifications = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/listNotifications.js\n * region_tag:storage_list_bucket_notifications\n * Another example:\n */\n getNotifications(optionsOrCallback, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n this.request({\n uri: '/notificationConfigs',\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n const notifications = arrify(resp.items).map((notification) => {\n const notificationInstance = this.notification(notification.id);\n notificationInstance.metadata = notification;\n return notificationInstance;\n });\n callback(null, notifications, resp);\n });\n }\n /**\n * @typedef {array} GetSignedUrlResponse\n * @property {object} 0 The signed URL.\n */\n /**\n * @callback GetSignedUrlCallback\n * @param {?Error} err Request error, if any.\n * @param {object} url The signed URL.\n */\n /**\n * @typedef {object} GetBucketSignedUrlConfig\n * @property {string} action Currently only supports \"list\" (HTTP: GET).\n * @property {*} expires A timestamp when this link will expire. Any value\n * given is passed to `new Date()`.\n * Note: 'v4' supports maximum duration of 7 days (604800 seconds) from now.\n * @property {string} [version='v2'] The signing version to use, either\n * 'v2' or 'v4'.\n * @property {boolean} [virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @property {string} [cname] The cname for this bucket, i.e.,\n * \"https://cdn.example.com\".\n * See [reference]{@link https://cloud.google.com/storage/docs/access-control/signed-urls#example}\n * @property {object} [extensionHeaders] If these headers are used, the\n * server will check to make sure that the client provides matching\n * values. See {@link https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headers| Canonical extension headers}\n * for the requirements of this feature, most notably:\n * - The header name must be prefixed with `x-goog-`\n * - The header name must be all lowercase\n *\n * Note: Multi-valued header passed as an array in the extensionHeaders\n * object is converted into a string, delimited by `,` with\n * no space. Requests made using the signed URL will need to\n * delimit multi-valued headers using a single `,` as well, or\n * else the server will report a mismatched signature.\n * @property {object} [queryParams] Additional query parameters to include\n * in the signed URL.\n */\n /**\n * Get a signed URL to allow limited time access to a bucket.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed URL. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/signed-urls| Signed URLs Reference}\n *\n * @throws {Error} if an expiration timestamp from the past is given.\n *\n * @param {GetBucketSignedUrlConfig} config Configuration object.\n * @param {string} config.action Currently only supports \"list\" (HTTP: GET).\n * @param {*} config.expires A timestamp when this link will expire. Any value\n * given is passed to `new Date()`.\n * Note: 'v4' supports maximum duration of 7 days (604800 seconds) from now.\n * @param {string} [config.version='v2'] The signing version to use, either\n * 'v2' or 'v4'.\n * @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @param {string} [config.cname] The cname for this bucket, i.e.,\n * \"https://cdn.example.com\".\n * See [reference]{@link https://cloud.google.com/storage/docs/access-control/signed-urls#example}\n * @param {object} [config.extensionHeaders] If these headers are used, the\n * server will check to make sure that the client provides matching\n * values. See {@link https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headers| Canonical extension headers}\n * for the requirements of this feature, most notably:\n * - The header name must be prefixed with `x-goog-`\n * - The header name must be all lowercase\n *\n * Note: Multi-valued header passed as an array in the extensionHeaders\n * object is converted into a string, delimited by `,` with\n * no space. Requests made using the signed URL will need to\n * delimit multi-valued headers using a single `,` as well, or\n * else the server will report a mismatched signature.\n * @property {object} [config.queryParams] Additional query parameters to include\n * in the signed URL.\n * @param {GetSignedUrlCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * //-\n * // Generate a URL that allows temporary access to list files in a bucket.\n * //-\n * const request = require('request');\n *\n * const config = {\n * action: 'list',\n * expires: '03-17-2025'\n * };\n *\n * bucket.getSignedUrl(config, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The bucket is now available to be listed from this URL.\n * request(url, function(err, resp) {\n * // resp.statusCode = 200\n * });\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.getSignedUrl(config).then(function(data) {\n * const url = data[0];\n * });\n * ```\n */\n getSignedUrl(cfg, callback) {\n const method = BucketActionToHTTPMethod[cfg.action];\n if (!method) {\n throw new Error(storage_1.ExceptionMessages.INVALID_ACTION);\n }\n const signConfig = {\n method,\n expires: cfg.expires,\n version: cfg.version,\n cname: cfg.cname,\n extensionHeaders: cfg.extensionHeaders || {},\n queryParams: cfg.queryParams || {},\n };\n if (!this.signer) {\n this.signer = new signer_1.URLSigner(this.storage.authClient, this);\n }\n this.signer\n .getSignedUrl(signConfig)\n .then(signedUrl => callback(null, signedUrl), callback);\n }\n /**\n * @callback BucketLockCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Lock a previously-defined retention policy. This will prevent changes to\n * the policy.\n *\n * @throws {Error} if a metageneration is not provided.\n *\n * @param {number|string} metageneration The bucket's metageneration. This is\n * accesssible from calling {@link File#getMetadata}.\n * @param {BucketLockCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * const metageneration = 2;\n *\n * bucket.lock(metageneration, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.lock(metageneration).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n lock(metageneration, callback) {\n const metatype = typeof metageneration;\n if (metatype !== 'number' && metatype !== 'string') {\n throw new Error(BucketExceptionMessages.METAGENERATION_NOT_PROVIDED);\n }\n this.request({\n method: 'POST',\n uri: '/lockRetentionPolicy',\n qs: {\n ifMetagenerationMatch: metageneration,\n },\n }, callback);\n }\n /**\n * @typedef {array} MakeBucketPrivateResponse\n * @property {File[]} 0 List of files made private.\n */\n /**\n * @callback MakeBucketPrivateCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files List of files made private.\n */\n /**\n * @typedef {object} MakeBucketPrivateOptions\n * @property {boolean} [includeFiles=false] Make each file in the bucket\n * private.\n * @property {Metadata} [metadata] Define custom metadata properties to define\n * along with the operation.\n * @property {boolean} [force] Queue errors occurred while making files\n * private until all files have been processed.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Make the bucket listing private.\n *\n * You may also choose to make the contents of the bucket private by\n * specifying `includeFiles: true`. This will automatically run\n * {@link File#makePrivate} for every file in the bucket.\n *\n * When specifying `includeFiles: true`, use `force: true` to delay execution\n * of your callback until all files have been processed. By default, the\n * callback is executed after the first error. Use `force` to queue such\n * errors until all files have been processed, after which they will be\n * returned as an array as the first argument to your callback.\n *\n * NOTE: This may cause the process to be long-running and use a high number\n * of requests. Use with caution.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @param {MakeBucketPrivateOptions} [options] Configuration options.\n * @param {boolean} [options.includeFiles=false] Make each file in the bucket\n * private.\n * @param {Metadata} [options.metadata] Define custom metadata properties to define\n * along with the operation.\n * @param {boolean} [options.force] Queue errors occurred while making files\n * private until all files have been processed.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {MakeBucketPrivateCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Make the bucket private.\n * //-\n * bucket.makePrivate(function(err) {});\n *\n * //-\n * // Make the bucket and its contents private.\n * //-\n * const opts = {\n * includeFiles: true\n * };\n *\n * bucket.makePrivate(opts, function(err, files) {\n * // `err`:\n * // The first error to occur, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made private in the bucket.\n * });\n *\n * //-\n * // Make the bucket and its contents private, using force to suppress errors\n * // until all files have been processed.\n * //-\n * const opts = {\n * includeFiles: true,\n * force: true\n * };\n *\n * bucket.makePrivate(opts, function(errors, files) {\n * // `errors`:\n * // Array of errors if any occurred, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made private in the bucket.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.makePrivate(opts).then(function(data) {\n * const files = data[0];\n * });\n * ```\n */\n makePrivate(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n options.private = true;\n const query = {\n predefinedAcl: 'projectPrivate',\n };\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n // You aren't allowed to set both predefinedAcl & acl properties on a bucket\n // so acl must explicitly be nullified.\n const metadata = extend({}, options.metadata, { acl: null });\n this.setMetadata(metadata, query)\n .then(() => {\n if (options.includeFiles) {\n return util_1.promisify(this.makeAllFilesPublicPrivate_).call(this, options);\n }\n return [];\n })\n .then(files => callback(null, files), callback)\n .finally(() => {\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n });\n }\n /**\n * @typedef {object} MakeBucketPublicOptions\n * @property {boolean} [includeFiles=false] Make each file in the bucket\n * private.\n * @property {boolean} [force] Queue errors occurred while making files\n * private until all files have been processed.\n */\n /**\n * @callback MakeBucketPublicCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files List of files made public.\n */\n /**\n * @typedef {array} MakeBucketPublicResponse\n * @property {File[]} 0 List of files made public.\n */\n /**\n * Make the bucket publicly readable.\n *\n * You may also choose to make the contents of the bucket publicly readable by\n * specifying `includeFiles: true`. This will automatically run\n * {@link File#makePublic} for every file in the bucket.\n *\n * When specifying `includeFiles: true`, use `force: true` to delay execution\n * of your callback until all files have been processed. By default, the\n * callback is executed after the first error. Use `force` to queue such\n * errors until all files have been processed, after which they will be\n * returned as an array as the first argument to your callback.\n *\n * NOTE: This may cause the process to be long-running and use a high number\n * of requests. Use with caution.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/patch| Buckets: patch API Documentation}\n *\n * @param {MakeBucketPublicOptions} [options] Configuration options.\n * @param {boolean} [options.includeFiles=false] Make each file in the bucket\n * private.\n * @param {boolean} [options.force] Queue errors occurred while making files\n * private until all files have been processed.\n * @param {MakeBucketPublicCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Make the bucket publicly readable.\n * //-\n * bucket.makePublic(function(err) {});\n *\n * //-\n * // Make the bucket and its contents publicly readable.\n * //-\n * const opts = {\n * includeFiles: true\n * };\n *\n * bucket.makePublic(opts, function(err, files) {\n * // `err`:\n * // The first error to occur, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made public in the bucket.\n * });\n *\n * //-\n * // Make the bucket and its contents publicly readable, using force to\n * // suppress errors until all files have been processed.\n * //-\n * const opts = {\n * includeFiles: true,\n * force: true\n * };\n *\n * bucket.makePublic(opts, function(errors, files) {\n * // `errors`:\n * // Array of errors if any occurred, otherwise null.\n * //\n * // `files`:\n * // Array of files successfully made public in the bucket.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.makePublic(opts).then(function(data) {\n * const files = data[0];\n * });\n * ```\n */\n makePublic(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const req = extend(true, { public: true }, options);\n this.acl\n .add({\n entity: 'allUsers',\n role: 'READER',\n })\n .then(() => {\n return this.acl.default.add({\n entity: 'allUsers',\n role: 'READER',\n });\n })\n .then(() => {\n if (req.includeFiles) {\n return util_1.promisify(this.makeAllFilesPublicPrivate_).call(this, req);\n }\n return [];\n })\n .then(files => callback(null, files), callback);\n }\n /**\n * Get a reference to a Cloud Pub/Sub Notification.\n *\n * @param {string} id ID of notification.\n * @returns {Notification}\n * @see Notification\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n * const notification = bucket.notification('1');\n * ```\n */\n notification(id) {\n if (!id) {\n throw new Error(BucketExceptionMessages.SUPPLY_NOTIFICATION_ID);\n }\n return new notification_1.Notification(this, id);\n }\n /**\n * Remove an already-existing retention policy from this bucket, if it is not\n * locked.\n *\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * bucket.removeRetentionPeriod(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.removeRetentionPeriod().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n removeRetentionPeriod(callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n retentionPolicy: null,\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Makes request and applies userProject query parameter if necessary.\n *\n * @private\n *\n * @param {object} reqOpts - The request options.\n * @param {function} callback - The callback function.\n */\n request(reqOpts, callback) {\n if (this.userProject && (!reqOpts.qs || !reqOpts.qs.userProject)) {\n reqOpts.qs = extend(reqOpts.qs, { userProject: this.userProject });\n }\n return super.request(reqOpts, callback);\n }\n /**\n * @typedef {array} SetLabelsResponse\n * @property {object} 0 The bucket metadata.\n */\n /**\n * @callback SetLabelsCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The bucket metadata.\n */\n /**\n * @typedef {object} SetLabelsOptions Configuration options for Bucket#setLabels().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Set labels on the bucket.\n *\n * This makes an underlying call to {@link Bucket#setMetadata}, which\n * is a PATCH request. This means an individual label can be overwritten, but\n * unmentioned labels will not be touched.\n *\n * @param {object} labels Labels to set on the bucket.\n * @param {SetLabelsOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {SetLabelsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * const labels = {\n * labelone: 'labelonevalue',\n * labeltwo: 'labeltwovalue'\n * };\n *\n * bucket.setLabels(labels, function(err, metadata) {\n * if (!err) {\n * // Labels set successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setLabels(labels).then(function(data) {\n * const metadata = data[0];\n * });\n * ```\n */\n setLabels(labels, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n callback = callback || nodejs_common_1.util.noop;\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({ labels }, options, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Lock all objects contained in the bucket, based on their creation time. Any\n * attempt to overwrite or delete objects younger than the retention period\n * will result in a `PERMISSION_DENIED` error.\n *\n * An unlocked retention policy can be modified or removed from the bucket via\n * {@link File#removeRetentionPeriod} and {@link File#setRetentionPeriod}. A\n * locked retention policy cannot be removed or shortened in duration for the\n * lifetime of the bucket. Attempting to remove or decrease period of a locked\n * retention policy will result in a `PERMISSION_DENIED` error. You can still\n * increase the policy.\n *\n * @param {*} duration In seconds, the minimum retention time for all objects\n * contained in this bucket.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * const DURATION_SECONDS = 15780000; // 6 months.\n *\n * //-\n * // Lock the objects in this bucket for 6 months.\n * //-\n * bucket.setRetentionPeriod(DURATION_SECONDS, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setRetentionPeriod(DURATION_SECONDS).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setRetentionPeriod(duration, callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n retentionPolicy: {\n retentionPeriod: duration,\n },\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n *\n * @typedef {object} Cors\n * @property {number} [maxAgeSeconds] The number of seconds the browser is\n * allowed to make requests before it must repeat the preflight request.\n * @property {string[]} [method] HTTP method allowed for cross origin resource\n * sharing with this bucket.\n * @property {string[]} [origin] an origin allowed for cross origin resource\n * sharing with this bucket.\n * @property {string[]} [responseHeader] A header allowed for cross origin\n * resource sharing with this bucket.\n */\n /**\n * This can be used to set the CORS configuration on the bucket.\n *\n * The configuration will be overwritten with the value passed into this.\n *\n * @param {Cors[]} corsConfiguration The new CORS configuration to set\n * @param {number} [corsConfiguration.maxAgeSeconds] The number of seconds the browser is\n * allowed to make requests before it must repeat the preflight request.\n * @param {string[]} [corsConfiguration.method] HTTP method allowed for cross origin resource\n * sharing with this bucket.\n * @param {string[]} [corsConfiguration.origin] an origin allowed for cross origin resource\n * sharing with this bucket.\n * @param {string[]} [corsConfiguration.responseHeader] A header allowed for cross origin\n * resource sharing with this bucket.\n * @param {SetBucketMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const bucket = storage.bucket('albums');\n *\n * const corsConfiguration = [{maxAgeSeconds: 3600}]; // 1 hour\n * bucket.setCorsConfiguration(corsConfiguration);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setCorsConfiguration(corsConfiguration).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setCorsConfiguration(corsConfiguration, callback) {\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n this.setMetadata({\n cors: corsConfiguration,\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {object} SetBucketStorageClassOptions\n * @property {string} [userProject] - The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback SetBucketStorageClassCallback\n * @param {?Error} err Request error, if any.\n */\n /**\n * Set the default storage class for new files in this bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/storage-classes| Storage Classes}\n *\n * @param {string} storageClass The new storage class. (`standard`,\n * `nearline`, `coldline`, or `archive`).\n * **Note:** The storage classes `multi_regional`, `regional`, and\n * `durable_reduced_availability` are now legacy and will be deprecated in\n * the future.\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] - The ID of the project which will be\n * billed for the request.\n * @param {SetStorageClassCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.setStorageClass('nearline', function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // The storage class was updated successfully.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.setStorageClass('nearline').then(function() {});\n * ```\n */\n setStorageClass(storageClass, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, AvailableServiceObjectMethods.setMetadata);\n // In case we get input like `storageClass`, convert to `storage_class`.\n storageClass = storageClass\n .replace(/-/g, '_')\n .replace(/([a-z])([A-Z])/g, (_, low, up) => {\n return low + '_' + up;\n })\n .toUpperCase();\n this.setMetadata({ storageClass }, options, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Set a user project to be billed for all requests made from this Bucket\n * object and any files referenced from this Bucket object.\n *\n * @param {string} userProject The user project.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * bucket.setUserProject('grape-spaceship-123');\n * ```\n */\n setUserProject(userProject) {\n this.userProject = userProject;\n const methods = [\n 'create',\n 'delete',\n 'exists',\n 'get',\n 'getMetadata',\n 'setMetadata',\n ];\n methods.forEach(method => {\n const methodConfig = this.methods[method];\n if (typeof methodConfig === 'object') {\n if (typeof methodConfig.reqOpts === 'object') {\n extend(methodConfig.reqOpts.qs, { userProject });\n }\n else {\n methodConfig.reqOpts = {\n qs: { userProject },\n };\n }\n }\n });\n }\n /**\n * @typedef {object} UploadOptions Configuration options for Bucket#upload().\n * @property {string|File} [destination] The place to save\n * your file. If given a string, the file will be uploaded to the bucket\n * using the string as a filename. When given a File object, your local\n * file will be uploaded to the File object's bucket and under the File\n * object's name. Lastly, when this argument is omitted, the file is uploaded\n * to your bucket using the name of the local file.\n * @property {string} [encryptionKey] A custom encryption key. See\n * {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}.\n * @property {boolean} [gzip] Automatically gzip the file. This will set\n * `options.metadata.contentEncoding` to `gzip`.\n * @property {string} [kmsKeyName] The name of the Cloud KMS key that will\n * be used to encrypt the object. Must be in the format:\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`.\n * @property {object} [metadata] See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert#request_properties_JSON| Objects: insert request body}.\n * @property {string} [offset] The starting byte of the upload stream, for\n * resuming an interrupted upload. Defaults to 0.\n * @property {string} [predefinedAcl] Apply a predefined set of access\n * controls to this object.\n *\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @property {boolean} [private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @property {boolean} [public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @property {boolean} [resumable] Force a resumable upload. (default:\n * true for files larger than 5 MB).\n * @property {number} [timeout=60000] Set the HTTP request timeout in\n * milliseconds. This option is not available for resumable uploads.\n * Default: `60000`\n * @property {string} [uri] The URI for an already-created resumable\n * upload. See {@link File#createResumableUpload}.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string|boolean} [validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with an\n * MD5 checksum for maximum reliability. CRC32c will provide better\n * performance with less reliability. You may also choose to skip\n * validation completely, however this is **not recommended**.\n */\n /**\n * @typedef {array} UploadResponse\n * @property {object} 0 The uploaded {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback UploadCallback\n * @param {?Error} err Request error, if any.\n * @param {object} file The uploaded {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Upload a file to the bucket. This is a convenience method that wraps\n * {@link File#createWriteStream}.\n *\n * You can specify whether or not an upload is resumable by setting\n * `options.resumable`. *Resumable uploads are enabled by default if your\n * input file is larger than 5 MB.*\n *\n * For faster crc32c computation, you must manually install\n * {@link https://www.npmjs.com/package/fast-crc32c| `fast-crc32c`}:\n *\n * $ npm install --save fast-crc32c\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload#uploads| Upload Options (Simple or Resumable)}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert| Objects: insert API Documentation}\n *\n * @param {string} pathString The fully qualified path to the file you\n * wish to upload to your bucket.\n * @param {UploadOptions} [options] Configuration options.\n * @param {string|File} [options.destination] The place to save\n * your file. If given a string, the file will be uploaded to the bucket\n * using the string as a filename. When given a File object, your local\n * file will be uploaded to the File object's bucket and under the File\n * object's name. Lastly, when this argument is omitted, the file is uploaded\n * to your bucket using the name of the local file.\n * @param {string} [options.encryptionKey] A custom encryption key. See\n * {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}.\n * @param {boolean} [options.gzip] Automatically gzip the file. This will set\n * `options.metadata.contentEncoding` to `gzip`.\n * @param {string} [options.kmsKeyName] The name of the Cloud KMS key that will\n * be used to encrypt the object. Must be in the format:\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`.\n * @param {object} [options.metadata] See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert#request_properties_JSON| Objects: insert request body}.\n * @param {string} [options.offset] The starting byte of the upload stream, for\n * resuming an interrupted upload. Defaults to 0.\n * @param {string} [options.predefinedAcl] Apply a predefined set of access\n * controls to this object.\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @param {boolean} [options.private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @param {boolean} [options.public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @param {boolean} [options.resumable] Force a resumable upload. (default:\n * true for files larger than 5 MB).\n * @param {number} [options.timeout=60000] Set the HTTP request timeout in\n * milliseconds. This option is not available for resumable uploads.\n * Default: `60000`\n * @param {string} [options.uri] The URI for an already-created resumable\n * upload. See {@link File#createResumableUpload}.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {string|boolean} [options.validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with an\n * MD5 checksum for maximum reliability. CRC32c will provide better\n * performance with less reliability. You may also choose to skip\n * validation completely, however this is **not recommended**.\n * @param {UploadCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n *\n * //-\n * // Upload a file from a local path.\n * //-\n * bucket.upload('/local/path/image.png', function(err, file, apiResponse) {\n * // Your bucket now contains:\n * // - \"image.png\" (with the contents of `/local/path/image.png')\n *\n * // `file` is an instance of a File object that refers to your new file.\n * });\n *\n *\n * //-\n * // It's not always that easy. You will likely want to specify the filename\n * // used when your new file lands in your bucket.\n * //\n * // You may also want to set metadata or customize other options.\n * //-\n * const options = {\n * destination: 'new-image.png',\n * resumable: true,\n * validation: 'crc32c',\n * metadata: {\n * metadata: {\n * event: 'Fall trip to the zoo'\n * }\n * }\n * };\n *\n * bucket.upload('local-image.png', options, function(err, file) {\n * // Your bucket now contains:\n * // - \"new-image.png\" (with the contents of `local-image.png')\n *\n * // `file` is an instance of a File object that refers to your new file.\n * });\n *\n * //-\n * // You can also have a file gzip'd on the fly.\n * //-\n * bucket.upload('index.html', { gzip: true }, function(err, file) {\n * // Your bucket now contains:\n * // - \"index.html\" (automatically compressed with gzip)\n *\n * // Downloading the file with `file.download` will automatically decode\n * the\n * // file.\n * });\n *\n * //-\n * // You may also re-use a File object, {File}, that references\n * // the file you wish to create or overwrite.\n * //-\n * const options = {\n * destination: bucket.file('existing-file.png'),\n * resumable: false\n * };\n *\n * bucket.upload('local-img.png', options, function(err, newFile) {\n * // Your bucket now contains:\n * // - \"existing-file.png\" (with the contents of `local-img.png')\n *\n * // Note:\n * // The `newFile` parameter is equal to `file`.\n * });\n *\n * //-\n * // To use\n * // \n * // Customer-supplied Encryption Keys, provide the `encryptionKey`\n * option.\n * //-\n * const crypto = require('crypto');\n * const encryptionKey = crypto.randomBytes(32);\n *\n * bucket.upload('img.png', {\n * encryptionKey: encryptionKey\n * }, function(err, newFile) {\n * // `img.png` was uploaded with your custom encryption key.\n *\n * // `newFile` is already configured to use the encryption key when making\n * // operations on the remote object.\n *\n * // However, to use your encryption key later, you must create a `File`\n * // instance with the `key` supplied:\n * const file = bucket.file('img.png', {\n * encryptionKey: encryptionKey\n * });\n *\n * // Or with `file#setEncryptionKey`:\n * const file = bucket.file('img.png');\n * file.setEncryptionKey(encryptionKey);\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.upload('local-image.png').then(function(data) {\n * const file = data[0];\n * });\n *\n * To upload a file from a URL, use {@link File#createWriteStream}.\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_upload_file\n * Another example:\n *\n * @example include:samples/encryption.js\n * region_tag:storage_upload_encrypted_file\n * Example of uploading an encrypted file:\n */\n upload(pathString, optionsOrCallback, callback) {\n var _a, _b;\n const upload = (numberOfRetries) => {\n const returnValue = retry(async (bail) => {\n await new Promise((resolve, reject) => {\n var _a, _b;\n if (numberOfRetries === 0 && ((_b = (_a = newFile === null || newFile === void 0 ? void 0 : newFile.storage) === null || _a === void 0 ? void 0 : _a.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry)) {\n newFile.storage.retryOptions.autoRetry = false;\n }\n const writable = newFile.createWriteStream(options);\n if (options.onUploadProgress) {\n writable.on('progress', options.onUploadProgress);\n }\n fs.createReadStream(pathString)\n .pipe(writable)\n .on('error', err => {\n if (this.storage.retryOptions.autoRetry &&\n this.storage.retryOptions.retryableErrorFn(err)) {\n return reject(err);\n }\n else {\n return bail(err);\n }\n })\n .on('finish', () => {\n return resolve();\n });\n });\n }, {\n retries: numberOfRetries,\n factor: this.storage.retryOptions.retryDelayMultiplier,\n maxTimeout: this.storage.retryOptions.maxRetryDelay * 1000,\n maxRetryTime: this.storage.retryOptions.totalTimeout * 1000,\n });\n if (!callback) {\n return returnValue;\n }\n else {\n return returnValue\n .then(() => {\n if (callback) {\n return callback(null, newFile, newFile.metadata);\n }\n })\n .catch(callback);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (global['GCLOUD_SANDBOX_ENV']) {\n return;\n }\n let options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n options = Object.assign({\n metadata: {},\n }, options);\n // Do not retry if precondition option ifGenerationMatch is not set\n // because this is a file operation\n let maxRetries = this.storage.retryOptions.maxRetries;\n if ((((_a = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n ((_b = this.instancePreconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n maxRetries = 0;\n }\n let newFile;\n if (options.destination instanceof file_1.File) {\n newFile = options.destination;\n }\n else if (options.destination !== null &&\n typeof options.destination === 'string') {\n // Use the string as the name of the file.\n newFile = this.file(options.destination, {\n encryptionKey: options.encryptionKey,\n kmsKeyName: options.kmsKeyName,\n preconditionOpts: this.instancePreconditionOpts,\n });\n }\n else {\n // Resort to using the name of the incoming file.\n const destination = path.basename(pathString);\n newFile = this.file(destination, {\n encryptionKey: options.encryptionKey,\n kmsKeyName: options.kmsKeyName,\n preconditionOpts: this.instancePreconditionOpts,\n });\n }\n if (options.resumable !== null && typeof options.resumable === 'boolean') {\n upload(maxRetries);\n }\n else {\n // Determine if the upload should be resumable if it's over the threshold.\n fs.stat(pathString, (err, fd) => {\n if (err) {\n callback(err);\n return;\n }\n if (fd.size <= RESUMABLE_THRESHOLD) {\n // Only disable resumable uploads so createWriteStream still attempts them and falls back to simple upload.\n options.resumable = false;\n }\n upload(maxRetries);\n });\n }\n }\n /**\n * @private\n *\n * @typedef {object} MakeAllFilesPublicPrivateOptions\n * @property {boolean} [force] Suppress errors until all files have been\n * processed.\n * @property {boolean} [private] Make files private.\n * @property {boolean} [public] Make files public.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @private\n *\n * @callback SetBucketMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {File[]} files Files that were updated.\n */\n /**\n * @typedef {array} MakeAllFilesPublicPrivateResponse\n * @property {File[]} 0 List of files affected.\n */\n /**\n * Iterate over all of a bucket's files, calling `file.makePublic()` (public)\n * or `file.makePrivate()` (private) on each.\n *\n * Operations are performed in parallel, up to 10 at once. The first error\n * breaks the loop, and will execute the provided callback with it. Specify\n * `{ force: true }` to suppress the errors.\n *\n * @private\n *\n * @param {MakeAllFilesPublicPrivateOptions} [options] Configuration options.\n * @param {boolean} [options.force] Suppress errors until all files have been\n * processed.\n * @param {boolean} [options.private] Make files private.\n * @param {boolean} [options.public] Make files public.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n \n * @param {MakeAllFilesPublicPrivateCallback} callback Callback function.\n *\n * @return {Promise}\n */\n makeAllFilesPublicPrivate_(optionsOrCallback, callback) {\n const MAX_PARALLEL_LIMIT = 10;\n const errors = [];\n const updatedFiles = [];\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const processFile = async (file) => {\n try {\n await (options.public ? file.makePublic() : file.makePrivate(options));\n updatedFiles.push(file);\n }\n catch (e) {\n if (!options.force) {\n throw e;\n }\n errors.push(e);\n }\n };\n this.getFiles(options)\n .then(([files]) => {\n const limit = pLimit(MAX_PARALLEL_LIMIT);\n const promises = files.map(file => {\n return limit(() => processFile(file));\n });\n return Promise.all(promises);\n })\n .then(() => callback(errors.length > 0 ? errors : null, updatedFiles), err => callback(err, updatedFiles));\n }\n getId() {\n return this.id;\n }\n disableAutoRetryConditionallyIdempotent_(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n coreOpts, methodType) {\n var _a, _b;\n if (typeof coreOpts === 'object' &&\n ((_b = (_a = coreOpts === null || coreOpts === void 0 ? void 0 : coreOpts.reqOpts) === null || _a === void 0 ? void 0 : _a.qs) === null || _b === void 0 ? void 0 : _b.ifMetagenerationMatch) === undefined &&\n (methodType === AvailableServiceObjectMethods.setMetadata ||\n methodType === AvailableServiceObjectMethods.delete) &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) {\n this.storage.retryOptions.autoRetry = false;\n }\n else if (this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n this.storage.retryOptions.autoRetry = false;\n }\n }\n}\nexports.Bucket = Bucket;\n/*! Developer Documentation\n *\n * These methods can be auto-paginated.\n */\npaginator_1.paginator.extend(Bucket, 'getFiles');\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Bucket, {\n exclude: ['request', 'file', 'notification'],\n});\n//# sourceMappingURL=bucket.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Channel = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\n/**\n * Create a channel object to interact with a Cloud Storage channel.\n *\n * See {@link https://cloud.google.com/storage/docs/object-change-notification| Object Change Notification}\n *\n * @class\n *\n * @param {string} id The ID of the channel.\n * @param {string} resourceId The resource ID of the channel.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const channel = storage.channel('id', 'resource-id');\n * ```\n */\nclass Channel extends nodejs_common_1.ServiceObject {\n constructor(storage, id, resourceId) {\n const config = {\n parent: storage,\n baseUrl: '/channels',\n // An ID shouldn't be included in the API requests.\n // RE:\n // https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1145\n id: '',\n methods: {\n // Only need `request`.\n },\n };\n super(config);\n // TODO: remove type cast to any once ServiceObject's type declaration has\n // been fixed. https://github.com/googleapis/nodejs-common/issues/176\n const metadata = this.metadata;\n metadata.id = id;\n metadata.resourceId = resourceId;\n }\n /**\n * @typedef {array} StopResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback StopCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Stop this channel.\n *\n * @param {StopCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const channel = storage.channel('id', 'resource-id');\n * channel.stop(function(err, apiResponse) {\n * if (!err) {\n * // Channel stopped successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * channel.stop().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n stop(callback) {\n callback = callback || nodejs_common_1.util.noop;\n this.request({\n method: 'POST',\n uri: '/stop',\n json: this.metadata,\n }, (err, apiResponse) => {\n callback(err, apiResponse);\n });\n }\n}\nexports.Channel = Channel;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Channel);\n//# sourceMappingURL=channel.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.File = exports.FileExceptionMessages = exports.STORAGE_POST_POLICY_BASE_URL = exports.ActionToHTTPMethod = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst compressible = require(\"compressible\");\nconst crypto = require(\"crypto\");\nconst extend = require(\"extend\");\nconst fs = require(\"fs\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst hashStreamValidation = require('hash-stream-validation');\nconst mime = require(\"mime\");\nconst os = require(\"os\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pumpify = require('pumpify');\nconst resumableUpload = require(\"./gcs-resumable-upload\");\nconst stream_1 = require(\"stream\");\nconst streamEvents = require(\"stream-events\");\nconst xdgBasedir = require(\"xdg-basedir\");\nconst zlib = require(\"zlib\");\nconst storage_1 = require(\"./storage\");\nconst bucket_1 = require(\"./bucket\");\nconst acl_1 = require(\"./acl\");\nconst signer_1 = require(\"./signer\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst duplexify = require('duplexify');\nconst util_1 = require(\"./util\");\nconst retry = require(\"async-retry\");\nvar ActionToHTTPMethod;\n(function (ActionToHTTPMethod) {\n ActionToHTTPMethod[\"read\"] = \"GET\";\n ActionToHTTPMethod[\"write\"] = \"PUT\";\n ActionToHTTPMethod[\"delete\"] = \"DELETE\";\n ActionToHTTPMethod[\"resumable\"] = \"POST\";\n})(ActionToHTTPMethod = exports.ActionToHTTPMethod || (exports.ActionToHTTPMethod = {}));\n/**\n * Custom error type for errors related to creating a resumable upload.\n *\n * @private\n */\nclass ResumableUploadError extends Error {\n constructor() {\n super(...arguments);\n this.name = 'ResumableUploadError';\n }\n}\n/**\n * @const {string}\n * @private\n */\nexports.STORAGE_POST_POLICY_BASE_URL = 'https://storage.googleapis.com';\n/**\n * @const {RegExp}\n * @private\n */\nconst GS_URL_REGEXP = /^gs:\\/\\/([a-z0-9_.-]+)\\/(.+)$/;\nclass RequestError extends Error {\n}\nconst SEVEN_DAYS = 7 * 24 * 60 * 60;\nvar FileExceptionMessages;\n(function (FileExceptionMessages) {\n FileExceptionMessages[\"EXPIRATION_TIME_NA\"] = \"An expiration time is not available.\";\n FileExceptionMessages[\"DESTINATION_NO_NAME\"] = \"Destination file should have a name.\";\n FileExceptionMessages[\"INVALID_VALIDATION_FILE_RANGE\"] = \"Cannot use validation with file ranges (start/end).\";\n FileExceptionMessages[\"MD5_NOT_AVAILABLE\"] = \"MD5 verification was specified, but is not available for the requested object. MD5 is not available for composite objects.\";\n FileExceptionMessages[\"EQUALS_CONDITION_TWO_ELEMENTS\"] = \"Equals condition must be an array of 2 elements.\";\n FileExceptionMessages[\"STARTS_WITH_TWO_ELEMENTS\"] = \"StartsWith condition must be an array of 2 elements.\";\n FileExceptionMessages[\"CONTENT_LENGTH_RANGE_MIN_MAX\"] = \"ContentLengthRange must have numeric min & max fields.\";\n FileExceptionMessages[\"DOWNLOAD_MISMATCH\"] = \"The downloaded data did not match the data from the server. To be sure the content is the same, you should download the file again.\";\n FileExceptionMessages[\"UPLOAD_MISMATCH_DELETE_FAIL\"] = \"The uploaded data did not match the data from the server. \\n As a precaution, we attempted to delete the file, but it was not successful. \\n To be sure the content is the same, you should try removing the file manually, \\n then uploading the file again. \\n \\n\\nThe delete attempt failed with this message:\\n\\n \";\n FileExceptionMessages[\"UPLOAD_MISMATCH\"] = \"The uploaded data did not match the data from the server. \\n As a precaution, the file has been deleted. \\n To be sure the content is the same, you should try uploading the file again.\";\n})(FileExceptionMessages = exports.FileExceptionMessages || (exports.FileExceptionMessages = {}));\n/**\n * A File object is created from your {@link Bucket} object using\n * {@link Bucket#file}.\n *\n * @class\n */\nclass File extends nodejs_common_1.ServiceObject {\n /**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * An ACL consists of one or more entries, where each entry grants permissions\n * to an entity. Permissions define the actions that can be performed against\n * an object or bucket (for example, `READ` or `WRITE`); the entity defines\n * who the permission applies to (for example, a specific user or group of\n * users).\n *\n * The `acl` object on a File instance provides methods to get you a list of\n * the ACLs defined on your bucket, as well as set, update, and delete them.\n *\n * See {@link http://goo.gl/6qBBPO| About Access Control lists}\n *\n * @name File#acl\n * @mixes Acl\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * //-\n * // Make a file publicly readable.\n * //-\n * const options = {\n * entity: 'allUsers',\n * role: storage.acl.READER_ROLE\n * };\n *\n * file.acl.add(options, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n /**\n * The API-formatted resource description of the file.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name File#metadata\n * @type {object}\n */\n /**\n * The file's name.\n * @name File#name\n * @type {string}\n */\n /**\n * @typedef {object} FileOptions Options passed to the File constructor.\n * @property {string} [encryptionKey] A custom encryption key.\n * @property {number} [generation] Generation to scope the file to.\n * @property {string} [kmsKeyName] Cloud KMS Key used to encrypt this\n * object, if the object is encrypted by such a key. Limited availability;\n * usable only by enabled projects.\n * @property {string} [userProject] The ID of the project which will be\n * billed for all requests made from File object.\n */\n /**\n * Constructs a file object.\n *\n * @param {Bucket} bucket The Bucket instance this file is\n * attached to.\n * @param {string} name The name of the remote file.\n * @param {FileOptions} [options] Configuration options.\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * ```\n */\n constructor(bucket, name, options = {}) {\n var _a, _b;\n const requestQueryObject = {};\n let generation;\n if (options.generation !== null) {\n if (typeof options.generation === 'string') {\n generation = Number(options.generation);\n }\n else {\n generation = options.generation;\n }\n if (!isNaN(generation)) {\n requestQueryObject.generation = generation;\n }\n }\n Object.assign(requestQueryObject, options.preconditionOpts);\n const userProject = options.userProject || bucket.userProject;\n if (typeof userProject === 'string') {\n requestQueryObject.userProject = userProject;\n }\n const methods = {\n /**\n * @typedef {array} DeleteFileResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteFileCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Delete the file.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/delete| Objects: delete API Documentation}\n *\n * @method File#delete\n * @param {object} [options] Configuration options.\n * @param {boolean} [options.ignoreNotFound = false] Ignore an error if\n * the file does not exist.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DeleteFileCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * file.delete(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_delete_file\n * Another example:\n */\n delete: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} FileExistsResponse\n * @property {boolean} 0 Whether the {@link File} exists.\n */\n /**\n * @callback FileExistsCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} exists Whether the {@link File} exists.\n */\n /**\n * Check if the file exists.\n *\n * @method File#exists\n * @param {options} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {FileExistsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.exists(function(err, exists) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.exists().then(function(data) {\n * const exists = data[0];\n * });\n * ```\n */\n exists: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} GetFileResponse\n * @property {File} 0 The {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetFileCallback\n * @param {?Error} err Request error, if any.\n * @param {File} file The {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get a file object and its metadata if it exists.\n *\n * @method File#get\n * @param {options} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetFileCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.get(function(err, file, apiResponse) {\n * // file.metadata` has been populated.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.get().then(function(data) {\n * const file = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n get: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {array} GetFileMetadataResponse\n * @property {object} 0 The {@link File} metadata.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback GetFileMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} metadata The {@link File} metadata.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get the file's metadata.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/get| Objects: get API Documentation}\n *\n * @method File#getMetadata\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetFileMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.getMetadata(function(err, metadata, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.getMetadata().then(function(data) {\n * const metadata = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_get_metadata\n * Another example:\n */\n getMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n /**\n * @typedef {object} SetFileMetadataOptions Configuration options for File#setMetadata().\n * @param {string} [userProject] The ID of the project which will be billed for the request.\n */\n /**\n * @callback SetFileMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} SetFileMetadataResponse\n * @property {object} 0 The full API response.\n */\n /**\n * Merge the given metadata with the current remote file's metadata. This\n * will set metadata if it was previously unset or update previously set\n * metadata. To unset previously set metadata, set its value to null.\n *\n * You can set custom key/value pairs in the metadata key of the given\n * object, however the other properties outside of this object must adhere\n * to the {@link https://goo.gl/BOnnCK| official API documentation}.\n *\n *\n * See the examples below for more information.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/patch| Objects: patch API Documentation}\n *\n * @method File#setMetadata\n * @param {object} [metadata] The metadata you wish to update.\n * @param {SetFileMetadataOptions} [options] Configuration options.\n * @param {SetFileMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * const metadata = {\n * contentType: 'application/x-font-ttf',\n * metadata: {\n * my: 'custom',\n * properties: 'go here'\n * }\n * };\n *\n * file.setMetadata(metadata, function(err, apiResponse) {});\n *\n * // Assuming current metadata = { hello: 'world', unsetMe: 'will do' }\n * file.setMetadata({\n * metadata: {\n * abc: '123', // will be set.\n * unsetMe: null, // will be unset (deleted).\n * hello: 'goodbye' // will be updated from 'world' to 'goodbye'.\n * }\n * }, function(err, apiResponse) {\n * // metadata should now be { abc: '123', hello: 'goodbye' }\n * });\n *\n * //-\n * // Set a temporary hold on this file from its bucket's retention period\n * // configuration.\n * //\n * file.setMetadata({\n * temporaryHold: true\n * }, function(err, apiResponse) {});\n *\n * //-\n * // Alternatively, you may set a temporary hold. This will follow the\n * // same behavior as an event-based hold, with the exception that the\n * // bucket's retention policy will not renew for this file from the time\n * // the hold is released.\n * //-\n * file.setMetadata({\n * eventBasedHold: true\n * }, function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.setMetadata(metadata).then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n setMetadata: {\n reqOpts: {\n qs: requestQueryObject,\n },\n },\n };\n super({\n parent: bucket,\n baseUrl: '/o',\n id: encodeURIComponent(name),\n methods,\n });\n this.bucket = bucket;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.storage = bucket.parent;\n // @TODO Can this duplicate code from above be avoided?\n if (options.generation !== null) {\n let generation;\n if (typeof options.generation === 'string') {\n generation = Number(options.generation);\n }\n else {\n generation = options.generation;\n }\n if (!isNaN(generation)) {\n this.generation = generation;\n }\n }\n this.kmsKeyName = options.kmsKeyName;\n this.userProject = userProject;\n this.name = name;\n if (options.encryptionKey) {\n this.setEncryptionKey(options.encryptionKey);\n }\n this.acl = new acl_1.Acl({\n request: this.request.bind(this),\n pathPrefix: '/acl',\n });\n this.instanceRetryValue = (_b = (_a = this.storage) === null || _a === void 0 ? void 0 : _a.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry;\n this.instancePreconditionOpts = options === null || options === void 0 ? void 0 : options.preconditionOpts;\n }\n /**\n * A helper method for determining if a request should be retried based on preconditions.\n * This should only be used for methods where the idempotency is determined by\n * `ifGenerationMatch`\n * @private\n *\n * A request should not be retried under the following conditions:\n * - if precondition option `ifGenerationMatch` is not set OR\n * - if `idempotencyStrategy` is set to `RetryNever`\n */\n shouldRetryBasedOnPreconditionAndIdempotencyStrat(options) {\n var _a;\n return !(((options === null || options === void 0 ? void 0 : options.ifGenerationMatch) === undefined &&\n ((_a = this.instancePreconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever);\n }\n /**\n * @typedef {array} CopyResponse\n * @property {File} 0 The copied {@link File}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback CopyCallback\n * @param {?Error} err Request error, if any.\n * @param {File} copiedFile The copied {@link File}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} CopyOptions Configuration options for File#copy(). See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects#resource| Object resource}.\n * @property {string} [cacheControl] The cacheControl setting for the new file.\n * @property {string} [contentEncoding] The contentEncoding setting for the new file.\n * @property {string} [contentType] The contentType setting for the new file.\n * @property {string} [destinationKmsKeyName] Resource name of the Cloud\n * KMS key, of the form\n * `projects/my-project/locations/location/keyRings/my-kr/cryptoKeys/my-key`,\n * that will be used to encrypt the object. Overwrites the object\n * metadata's `kms_key_name` value, if any.\n * @property {Metadata} [metadata] Metadata to specify on the copied file.\n * @property {string} [predefinedAcl] Set the ACL for the new file.\n * @property {string} [token] A previously-returned `rewriteToken` from an\n * unfinished rewrite request.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Copy this file to another file. By default, this will copy the file to the\n * same bucket, but you can choose to copy it to another Bucket by providing\n * a Bucket or File object or a URL starting with \"gs://\".\n * The generation of the file will not be preserved.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/rewrite| Objects: rewrite API Documentation}\n *\n * @throws {Error} If the destination file is not provided.\n *\n * @param {string|Bucket|File} destination Destination file.\n * @param {CopyOptions} [options] Configuration options. See an\n * @param {CopyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // You can pass in a variety of types for the destination.\n * //\n * // For all of the below examples, assume we are working with the following\n * // Bucket and File objects.\n * //-\n * const bucket = storage.bucket('my-bucket');\n * const file = bucket.file('my-image.png');\n *\n * //-\n * // If you pass in a string for the destination, the file is copied to its\n * // current bucket, under the new name provided.\n * //-\n * file.copy('my-image-copy.png', function(err, copiedFile, apiResponse) {\n * // `my-bucket` now contains:\n * // - \"my-image.png\"\n * // - \"my-image-copy.png\"\n *\n * // `copiedFile` is an instance of a File object that refers to your new\n * // file.\n * });\n *\n * //-\n * // If you pass in a string starting with \"gs://\" for the destination, the\n * // file is copied to the other bucket and under the new name provided.\n * //-\n * const newLocation = 'gs://another-bucket/my-image-copy.png';\n * file.copy(newLocation, function(err, copiedFile, apiResponse) {\n * // `my-bucket` still contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image-copy.png\"\n *\n * // `copiedFile` is an instance of a File object that refers to your new\n * // file.\n * });\n *\n * //-\n * // If you pass in a Bucket object, the file will be copied to that bucket\n * // using the same name.\n * //-\n * const anotherBucket = storage.bucket('another-bucket');\n * file.copy(anotherBucket, function(err, copiedFile, apiResponse) {\n * // `my-bucket` still contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image.png\"\n *\n * // `copiedFile` is an instance of a File object that refers to your new\n * // file.\n * });\n *\n * //-\n * // If you pass in a File object, you have complete control over the new\n * // bucket and filename.\n * //-\n * const anotherFile = anotherBucket.file('my-awesome-image.png');\n * file.copy(anotherFile, function(err, copiedFile, apiResponse) {\n * // `my-bucket` still contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-awesome-image.png\"\n *\n * // Note:\n * // The `copiedFile` parameter is equal to `anotherFile`.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.copy(newLocation).then(function(data) {\n * const newFile = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_copy_file\n * Another example:\n */\n copy(destination, optionsOrCallback, callback) {\n const noDestinationError = new Error(FileExceptionMessages.DESTINATION_NO_NAME);\n if (!destination) {\n throw noDestinationError;\n }\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else if (optionsOrCallback) {\n options = optionsOrCallback;\n }\n options = extend(true, {}, options);\n callback = callback || nodejs_common_1.util.noop;\n let destBucket;\n let destName;\n let newFile;\n if (typeof destination === 'string') {\n const parsedDestination = GS_URL_REGEXP.exec(destination);\n if (parsedDestination !== null && parsedDestination.length === 3) {\n destBucket = this.storage.bucket(parsedDestination[1]);\n destName = parsedDestination[2];\n }\n else {\n destBucket = this.bucket;\n destName = destination;\n }\n }\n else if (destination instanceof bucket_1.Bucket) {\n destBucket = destination;\n destName = this.name;\n }\n else if (destination instanceof File) {\n destBucket = destination.bucket;\n destName = destination.name;\n newFile = destination;\n }\n else {\n throw noDestinationError;\n }\n const query = {};\n if (this.generation !== undefined) {\n query.sourceGeneration = this.generation;\n }\n if (options.token !== undefined) {\n query.rewriteToken = options.token;\n }\n if (options.userProject !== undefined) {\n query.userProject = options.userProject;\n delete options.userProject;\n }\n if (options.predefinedAcl !== undefined) {\n query.destinationPredefinedAcl = options.predefinedAcl;\n delete options.predefinedAcl;\n }\n newFile = newFile || destBucket.file(destName);\n const headers = {};\n if (this.encryptionKey !== undefined) {\n headers['x-goog-copy-source-encryption-algorithm'] = 'AES256';\n headers['x-goog-copy-source-encryption-key'] = this.encryptionKeyBase64;\n headers['x-goog-copy-source-encryption-key-sha256'] =\n this.encryptionKeyHash;\n }\n if (newFile.encryptionKey !== undefined) {\n this.setEncryptionKey(newFile.encryptionKey);\n }\n else if (options.destinationKmsKeyName !== undefined) {\n query.destinationKmsKeyName = options.destinationKmsKeyName;\n delete options.destinationKmsKeyName;\n }\n else if (newFile.kmsKeyName !== undefined) {\n query.destinationKmsKeyName = newFile.kmsKeyName;\n }\n if (query.destinationKmsKeyName) {\n this.kmsKeyName = query.destinationKmsKeyName;\n const keyIndex = this.interceptors.indexOf(this.encryptionKeyInterceptor);\n if (keyIndex > -1) {\n this.interceptors.splice(keyIndex, 1);\n }\n }\n this.request({\n method: 'POST',\n uri: `/rewriteTo/b/${destBucket.name}/o/${encodeURIComponent(newFile.name)}`,\n qs: query,\n json: options,\n headers,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n if (resp.rewriteToken) {\n const options = {\n token: resp.rewriteToken,\n };\n if (query.userProject) {\n options.userProject = query.userProject;\n }\n if (query.destinationKmsKeyName) {\n options.destinationKmsKeyName = query.destinationKmsKeyName;\n }\n this.copy(newFile, options, callback);\n return;\n }\n callback(null, newFile, resp);\n });\n }\n /**\n * @typedef {object} CreateReadStreamOptions Configuration options for File#createReadStream.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string|boolean} [validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with a\n * CRC32c checksum. You may use MD5 if preferred, but that hash is not\n * supported for composite objects. An error will be raised if MD5 is\n * specified but is not available. You may also choose to skip validation\n * completely, however this is **not recommended**.\n * @property {number} [start] A byte offset to begin the file's download\n * from. Default is 0. NOTE: Byte ranges are inclusive; that is,\n * `options.start = 0` and `options.end = 999` represent the first 1000\n * bytes in a file or object. NOTE: when specifying a byte range, data\n * integrity is not available.\n * @property {number} [end] A byte offset to stop reading the file at.\n * NOTE: Byte ranges are inclusive; that is, `options.start = 0` and\n * `options.end = 999` represent the first 1000 bytes in a file or object.\n * NOTE: when specifying a byte range, data integrity is not available.\n * @property {boolean} [decompress=true] Disable auto decompression of the\n * received data. By default this option is set to `true`.\n * Applicable in cases where the data was uploaded with\n * `gzip: true` option. See {@link File#createWriteStream}.\n */\n /**\n * Create a readable stream to read the contents of the remote file. It can be\n * piped to a writable stream or listened to for 'data' events to read a\n * file's contents.\n *\n * In the unlikely event there is a mismatch between what you downloaded and\n * the version in your Bucket, your error handler will receive an error with\n * code \"CONTENT_DOWNLOAD_MISMATCH\". If you receive this error, the best\n * recourse is to try downloading the file again.\n *\n * For faster crc32c computation, you must manually install\n * {@link https://www.npmjs.com/package/fast-crc32c| `fast-crc32c`}:\n *\n * $ npm install --save fast-crc32c\n *\n * NOTE: Readable streams will emit the `end` event when the file is fully\n * downloaded.\n *\n * @param {CreateReadStreamOptions} [options] Configuration options.\n * @returns {ReadableStream}\n *\n * @example\n * ```\n * //-\n * //

Downloading a File

\n * //\n * // The example below demonstrates how we can reference a remote file, then\n * // pipe its contents to a local file. This is effectively creating a local\n * // backup of your remote data.\n * //-\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * const fs = require('fs');\n * const remoteFile = bucket.file('image.png');\n * const localFilename = '/Users/stephen/Photos/image.png';\n *\n * remoteFile.createReadStream()\n * .on('error', function(err) {})\n * .on('response', function(response) {\n * // Server connected and responded with the specified status and headers.\n * })\n * .on('end', function() {\n * // The file is fully downloaded.\n * })\n * .pipe(fs.createWriteStream(localFilename));\n *\n * //-\n * // To limit the downloaded data to only a byte range, pass an options\n * // object.\n * //-\n * const logFile = myBucket.file('access_log');\n * logFile.createReadStream({\n * start: 10000,\n * end: 20000\n * })\n * .on('error', function(err) {})\n * .pipe(fs.createWriteStream('/Users/stephen/logfile.txt'));\n *\n * //-\n * // To read a tail byte range, specify only `options.end` as a negative\n * // number.\n * //-\n * const logFile = myBucket.file('access_log');\n * logFile.createReadStream({\n * end: -100\n * })\n * .on('error', function(err) {})\n * .pipe(fs.createWriteStream('/Users/stephen/logfile.txt'));\n * ```\n */\n createReadStream(options = {}) {\n options = Object.assign({ decompress: true }, options);\n const rangeRequest = typeof options.start === 'number' || typeof options.end === 'number';\n const tailRequest = options.end < 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let validateStream; // Created later, if necessary.\n const throughStream = streamEvents(new stream_1.PassThrough());\n let isServedCompressed = true;\n let crc32c = true;\n let md5 = false;\n if (typeof options.validation === 'string') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.validation = options.validation.toLowerCase();\n crc32c = options.validation === 'crc32c';\n md5 = options.validation === 'md5';\n }\n else if (options.validation === false) {\n crc32c = false;\n }\n const shouldRunValidation = !rangeRequest && (crc32c || md5);\n if (rangeRequest) {\n if (typeof options.validation === 'string' ||\n options.validation === true) {\n throw new Error(FileExceptionMessages.INVALID_VALIDATION_FILE_RANGE);\n }\n // Range requests can't receive data integrity checks.\n crc32c = false;\n md5 = false;\n }\n // Authenticate the request, then pipe the remote API request to the stream\n // returned to the user.\n const makeRequest = () => {\n const query = {\n alt: 'media',\n };\n if (this.generation) {\n query.generation = this.generation;\n }\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n const headers = {\n 'Accept-Encoding': 'gzip',\n 'Cache-Control': 'no-store',\n };\n if (rangeRequest) {\n const start = typeof options.start === 'number' ? options.start : '0';\n const end = typeof options.end === 'number' ? options.end : '';\n headers.Range = `bytes=${tailRequest ? end : `${start}-${end}`}`;\n }\n const reqOpts = {\n forever: false,\n uri: '',\n headers,\n qs: query,\n };\n const hashes = {};\n this.requestStream(reqOpts)\n .on('error', err => {\n throughStream.destroy(err);\n })\n .on('response', res => {\n throughStream.emit('response', res);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodejs_common_1.util.handleResp(null, res, null, onResponse);\n })\n .resume();\n // We listen to the response event from the request stream so that we\n // can...\n //\n // 1) Intercept any data from going to the user if an error occurred.\n // 2) Calculate the hashes from the http.IncomingMessage response\n // stream,\n // which will return the bytes from the source without decompressing\n // gzip'd content. We then send it through decompressed, if\n // applicable, to the user.\n const onResponse = (err, _body, rawResponseStream) => {\n if (err) {\n // Get error message from the body.\n this.getBufferFromReadable(rawResponseStream).then(body => {\n err.message = body.toString('utf8');\n throughStream.destroy(err);\n });\n return;\n }\n rawResponseStream.on('error', onComplete);\n const headers = rawResponseStream.toJSON().headers;\n isServedCompressed = headers['content-encoding'] === 'gzip';\n const throughStreams = [];\n if (shouldRunValidation) {\n // The x-goog-hash header should be set with a crc32c and md5 hash.\n // ex: headers['x-goog-hash'] = 'crc32c=xxxx,md5=xxxx'\n if (typeof headers['x-goog-hash'] === 'string') {\n headers['x-goog-hash']\n .split(',')\n .forEach((hashKeyValPair) => {\n const delimiterIndex = hashKeyValPair.indexOf('=');\n const hashType = hashKeyValPair.substr(0, delimiterIndex);\n const hashValue = hashKeyValPair.substr(delimiterIndex + 1);\n hashes[hashType] = hashValue;\n });\n }\n validateStream = hashStreamValidation({ crc32c, md5 });\n throughStreams.push(validateStream);\n }\n if (isServedCompressed && options.decompress) {\n throughStreams.push(zlib.createGunzip());\n }\n if (throughStreams.length === 1) {\n rawResponseStream =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rawResponseStream.pipe(throughStreams[0]);\n }\n else if (throughStreams.length > 1) {\n rawResponseStream = rawResponseStream.pipe(pumpify.obj(throughStreams));\n }\n rawResponseStream\n .on('error', onComplete)\n .on('end', onComplete)\n .pipe(throughStream, { end: false });\n };\n // This is hooked to the `complete` event from the request stream. This is\n // our chance to validate the data and let the user know if anything went\n // wrong.\n let onCompleteCalled = false;\n const onComplete = async (err) => {\n if (onCompleteCalled) {\n return;\n }\n onCompleteCalled = true;\n if (err) {\n throughStream.destroy(err);\n return;\n }\n if (rangeRequest || !shouldRunValidation) {\n throughStream.end();\n return;\n }\n // TODO(https://github.com/googleapis/nodejs-storage/issues/709):\n // Remove once the backend issue is fixed.\n // If object is stored compressed (having\n // metadata.contentEncoding === 'gzip') and was served decompressed,\n // then skip checksum validation because the remote checksum is computed\n // against the compressed version of the object.\n if (!isServedCompressed) {\n try {\n await this.getMetadata({ userProject: options.userProject });\n }\n catch (e) {\n throughStream.destroy(e);\n return;\n }\n if (this.metadata.contentEncoding === 'gzip') {\n throughStream.end();\n return;\n }\n }\n // If we're doing validation, assume the worst-- a data integrity\n // mismatch. If not, these tests won't be performed, and we can assume\n // the best.\n let failed = crc32c || md5;\n if (crc32c && hashes.crc32c) {\n // We must remove the first four bytes from the returned checksum.\n // http://stackoverflow.com/questions/25096737/\n // base64-encoding-of-crc32c-long-value\n failed = !validateStream.test('crc32c', hashes.crc32c.substr(4));\n }\n if (md5 && hashes.md5) {\n failed = !validateStream.test('md5', hashes.md5);\n }\n if (md5 && !hashes.md5) {\n const hashError = new RequestError(FileExceptionMessages.MD5_NOT_AVAILABLE);\n hashError.code = 'MD5_NOT_AVAILABLE';\n throughStream.destroy(hashError);\n }\n else if (failed) {\n const mismatchError = new RequestError(FileExceptionMessages.DOWNLOAD_MISMATCH);\n mismatchError.code = 'CONTENT_DOWNLOAD_MISMATCH';\n throughStream.destroy(mismatchError);\n }\n else {\n throughStream.end();\n }\n };\n };\n throughStream.on('reading', makeRequest);\n return throughStream;\n }\n /**\n * @callback CreateResumableUploadCallback\n * @param {?Error} err Request error, if any.\n * @param {string} uri The resumable upload's unique session URI.\n */\n /**\n * @typedef {array} CreateResumableUploadResponse\n * @property {string} 0 The resumable upload's unique session URI.\n */\n /**\n * @typedef {object} CreateResumableUploadOptions\n * @property {string} [configPath] A full JSON file path to use with\n * `gcs-resumable-upload`. This maps to the {@link https://github.com/yeoman/configstore/tree/0df1ec950d952b1f0dfb39ce22af8e505dffc71a#configpath| configstore option by the same name}.\n * @property {object} [metadata] Metadata to set on the file.\n * @property {number} [offset] The starting byte of the upload stream for resuming an interrupted upload.\n * @property {string} [origin] Origin header to set for the upload.\n * @property {string} [predefinedAcl] Apply a predefined set of access\n * controls to this object.\n *\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @property {boolean} [private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @property {boolean} [public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string} [chunkSize] Create a separate request per chunk. Should\n * be a multiple of 256 KiB (2^18).\n * {@link https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload| We recommend using at least 8 MiB for the chunk size.}\n */\n /**\n * Create a unique resumable upload session URI. This is the first step when\n * performing a resumable upload.\n *\n * See the {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload| Resumable upload guide}\n * for more on how the entire process works.\n *\n *

Note

\n *\n * If you are just looking to perform a resumable upload without worrying\n * about any of the details, see {@link File#createWriteStream}. Resumable\n * uploads are performed by default.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload| Resumable upload guide}\n *\n * @param {CreateResumableUploadOptions} [options] Configuration options.\n * @param {CreateResumableUploadCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * file.createResumableUpload(function(err, uri) {\n * if (!err) {\n * // `uri` can be used to PUT data to.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.createResumableUpload().then(function(data) {\n * const uri = data[0];\n * });\n * ```\n */\n createResumableUpload(optionsOrCallback, callback) {\n var _a, _b;\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const retryOptions = this.storage.retryOptions;\n if ((((_a = options === null || options === void 0 ? void 0 : options.preconditionOpts) === null || _a === void 0 ? void 0 : _a.ifGenerationMatch) === undefined &&\n ((_b = this.instancePreconditionOpts) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch) === undefined &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n retryOptions.autoRetry = false;\n }\n resumableUpload.createURI({\n authClient: this.storage.authClient,\n apiEndpoint: this.storage.apiEndpoint,\n bucket: this.bucket.name,\n configPath: options.configPath,\n customRequestOptions: this.getRequestInterceptors().reduce((reqOpts, interceptorFn) => interceptorFn(reqOpts), {}),\n file: this.name,\n generation: this.generation,\n key: this.encryptionKey,\n kmsKeyName: this.kmsKeyName,\n metadata: options.metadata,\n offset: options.offset,\n origin: options.origin,\n predefinedAcl: options.predefinedAcl,\n private: options.private,\n public: options.public,\n userProject: options.userProject || this.userProject,\n retryOptions: retryOptions,\n params: (options === null || options === void 0 ? void 0 : options.preconditionOpts) || this.instancePreconditionOpts,\n }, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {object} CreateWriteStreamOptions Configuration options for File#createWriteStream().\n * @property {string} [configPath] **This only applies to resumable\n * uploads.** A full JSON file path to use with `gcs-resumable-upload`.\n * This maps to the {@link https://github.com/yeoman/configstore/tree/0df1ec950d952b1f0dfb39ce22af8e505dffc71a#configpath| configstore option by the same name}.\n * @property {string} [contentType] Alias for\n * `options.metadata.contentType`. If set to `auto`, the file name is used\n * to determine the contentType.\n * @property {string|boolean} [gzip] If true, automatically gzip the file.\n * If set to `auto`, the contentType is used to determine if the file\n * should be gzipped. This will set `options.metadata.contentEncoding` to\n * `gzip` if necessary.\n * @property {object} [metadata] See the examples below or\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert#request_properties_JSON| Objects: insert request body}\n * for more details.\n * @property {number} [offset] The starting byte of the upload stream, for\n * resuming an interrupted upload. Defaults to 0.\n * @property {string} [predefinedAcl] Apply a predefined set of access\n * controls to this object.\n *\n * Acceptable values are:\n * - **`authenticatedRead`** - Object owner gets `OWNER` access, and\n * `allAuthenticatedUsers` get `READER` access.\n *\n * - **`bucketOwnerFullControl`** - Object owner gets `OWNER` access, and\n * project team owners get `OWNER` access.\n *\n * - **`bucketOwnerRead`** - Object owner gets `OWNER` access, and project\n * team owners get `READER` access.\n *\n * - **`private`** - Object owner gets `OWNER` access.\n *\n * - **`projectPrivate`** - Object owner gets `OWNER` access, and project\n * team members get access according to their roles.\n *\n * - **`publicRead`** - Object owner gets `OWNER` access, and `allUsers`\n * get `READER` access.\n * @property {boolean} [private] Make the uploaded file private. (Alias for\n * `options.predefinedAcl = 'private'`)\n * @property {boolean} [public] Make the uploaded file public. (Alias for\n * `options.predefinedAcl = 'publicRead'`)\n * @property {boolean} [resumable] Force a resumable upload. NOTE: When\n * working with streams, the file format and size is unknown until it's\n * completely consumed. Because of this, it's best for you to be explicit\n * for what makes sense given your input.\n * @property {number} [timeout=60000] Set the HTTP request timeout in\n * milliseconds. This option is not available for resumable uploads.\n * Default: `60000`\n * @property {string} [uri] The URI for an already-created resumable\n * upload. See {@link File#createResumableUpload}.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n * @property {string|boolean} [validation] Possible values: `\"md5\"`,\n * `\"crc32c\"`, or `false`. By default, data integrity is validated with a\n * CRC32c checksum. You may use MD5 if preferred, but that hash is not\n * supported for composite objects. An error will be raised if MD5 is\n * specified but is not available. You may also choose to skip validation\n * completely, however this is **not recommended**. In addition to specifying\n * validation type, providing `metadata.crc32c` or `metadata.md5Hash` will\n * cause the server to perform validation in addition to client validation.\n * NOTE: Validation is automatically skipped for objects that were\n * uploaded using the `gzip` option and have already compressed content.\n */\n /**\n * Create a writable stream to overwrite the contents of the file in your\n * bucket.\n *\n * A File object can also be used to create files for the first time.\n *\n * Resumable uploads are automatically enabled and must be shut off explicitly\n * by setting `options.resumable` to `false`.\n *\n * Resumable uploads require write access to the $HOME directory. Through\n * {@link https://www.npmjs.com/package/configstore| `config-store`}, some metadata\n * is stored. By default, if the directory is not writable, we will fall back\n * to a simple upload. However, if you explicitly request a resumable upload,\n * and we cannot write to the config directory, we will return a\n * `ResumableUploadError`.\n *\n *

\n * There is some overhead when using a resumable upload that can cause\n * noticeable performance degradation while uploading a series of small\n * files. When uploading files less than 10MB, it is recommended that the\n * resumable feature is disabled.\n *

\n *\n * For faster crc32c computation, you must manually install\n * {@link https://www.npmjs.com/package/fast-crc32c| `fast-crc32c`}:\n *\n * $ npm install --save fast-crc32c\n *\n * NOTE: Writable streams will emit the `finish` event when the file is fully\n * uploaded.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload| Upload Options (Simple or Resumable)}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/insert| Objects: insert API Documentation}\n *\n * @param {CreateWriteStreamOptions} [options] Configuration options.\n * @returns {WritableStream}\n *\n * @example\n * ```\n * const fs = require('fs');\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * //

Uploading a File

\n * //\n * // Now, consider a case where we want to upload a file to your bucket. You\n * // have the option of using {@link Bucket#upload}, but that is just\n * // a convenience method which will do the following.\n * //-\n * fs.createReadStream('/Users/stephen/Photos/birthday-at-the-zoo/panda.jpg')\n * .pipe(file.createWriteStream())\n * .on('error', function(err) {})\n * .on('finish', function() {\n * // The file upload is complete.\n * });\n *\n * //-\n * //

Uploading a File with gzip compression

\n * //-\n * fs.createReadStream('/Users/stephen/site/index.html')\n * .pipe(file.createWriteStream({ gzip: true }))\n * .on('error', function(err) {})\n * .on('finish', function() {\n * // The file upload is complete.\n * });\n *\n * //-\n * // Downloading the file with `createReadStream` will automatically decode\n * // the file.\n * //-\n *\n * //-\n * //

Uploading a File with Metadata

\n * //\n * // One last case you may run into is when you want to upload a file to your\n * // bucket and set its metadata at the same time. Like above, you can use\n * // {@link Bucket#upload} to do this, which is just a wrapper around\n * // the following.\n * //-\n * fs.createReadStream('/Users/stephen/Photos/birthday-at-the-zoo/panda.jpg')\n * .pipe(file.createWriteStream({\n * metadata: {\n * contentType: 'image/jpeg',\n * metadata: {\n * custom: 'metadata'\n * }\n * }\n * }))\n * .on('error', function(err) {})\n * .on('finish', function() {\n * // The file upload is complete.\n * });\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n createWriteStream(options = {}) {\n options = extend(true, { metadata: {} }, options);\n if (options.contentType) {\n options.metadata.contentType = options.contentType;\n }\n if (!options.metadata.contentType ||\n options.metadata.contentType === 'auto') {\n const detectedContentType = mime.getType(this.name);\n if (detectedContentType) {\n options.metadata.contentType = detectedContentType;\n }\n }\n let gzip = options.gzip;\n if (gzip === 'auto') {\n gzip = compressible(options.metadata.contentType);\n }\n if (gzip) {\n options.metadata.contentEncoding = 'gzip';\n }\n let crc32c = true;\n let md5 = false;\n if (typeof options.validation === 'string') {\n options.validation = options.validation.toLowerCase();\n crc32c = options.validation === 'crc32c';\n md5 = options.validation === 'md5';\n }\n else if (options.validation === false) {\n crc32c = false;\n }\n // Collect data as it comes in to store in a hash. This is compared to the\n // checksum value on the returned metadata from the API.\n const validateStream = hashStreamValidation({\n crc32c,\n md5,\n });\n const fileWriteStream = duplexify();\n fileWriteStream.on('progress', evt => {\n stream.emit('progress', evt);\n });\n const stream = streamEvents(pumpify([\n gzip ? zlib.createGzip() : new stream_1.PassThrough(),\n validateStream,\n fileWriteStream,\n ]));\n // Wait until we've received data to determine what upload technique to use.\n stream.on('writing', () => {\n if (options.resumable === false) {\n this.startSimpleUpload_(fileWriteStream, options);\n return;\n }\n if (options.configPath) {\n this.startResumableUpload_(fileWriteStream, options);\n return;\n }\n // The logic below attempts to mimic the resumable upload library,\n // gcs-resumable-upload. That library requires a writable configuration\n // directory in order to work. If we wait for that library to discover any\n // issues, we've already started a resumable upload which is difficult to back\n // out of. We want to catch any errors first, so we can choose a simple, non-\n // resumable upload instead.\n // Same as configstore (used by gcs-resumable-upload):\n // https://github.com/yeoman/configstore/blob/f09f067e50e6a636cfc648a6fc36a522062bd49d/index.js#L11\n const configDir = xdgBasedir.config || os.tmpdir();\n fs.access(configDir, fs.constants.W_OK, accessErr => {\n if (!accessErr) {\n // A configuration directory exists, and it's writable. gcs-resumable-upload\n // should have everything it needs to work.\n this.startResumableUpload_(fileWriteStream, options);\n return;\n }\n // The configuration directory is either not writable, or it doesn't exist.\n // gcs-resumable-upload will attempt to create it for the user, but we'll try\n // it now to confirm that it won't have any issues. That way, if we catch the\n // issue before we start the resumable upload, we can instead start a simple\n // upload.\n fs.mkdir(configDir, { mode: 0o0700 }, err => {\n if (!err) {\n // We successfully created a configuration directory that\n // gcs-resumable-upload will use.\n this.startResumableUpload_(fileWriteStream, options);\n return;\n }\n if (options.resumable) {\n // The user wanted a resumable upload, but we couldn't create a\n // configuration directory, which means gcs-resumable-upload will fail.\n // Determine if the issue is that the directory does not exist or\n // if the directory exists, but is not writable.\n const error = new ResumableUploadError([\n 'A resumable upload could not be performed. The directory,',\n `${configDir}, is not writable. You may try another upload,`,\n 'this time setting `options.resumable` to `false`.',\n ].join(' '));\n fs.access(configDir, fs.constants.R_OK, noReadErr => {\n if (noReadErr) {\n error.additionalInfo = 'The directory does not exist.';\n }\n else {\n error.additionalInfo = 'The directory is read-only.';\n }\n stream.destroy(error);\n });\n }\n else {\n // The user didn't care, resumable or not. Fall back to simple upload.\n this.startSimpleUpload_(fileWriteStream, options);\n }\n });\n });\n });\n fileWriteStream.on('response', stream.emit.bind(stream, 'response'));\n // This is to preserve the `finish` event. We wait until the request stream\n // emits \"complete\", as that is when we do validation of the data. After\n // that is successful, we can allow the stream to naturally finish.\n //\n // Reference for tracking when we can use a non-hack solution:\n // https://github.com/nodejs/node/pull/2314\n fileWriteStream.on('prefinish', () => {\n stream.cork();\n });\n // Compare our hashed version vs the completed upload's version.\n fileWriteStream.on('complete', () => {\n const metadata = this.metadata;\n // If we're doing validation, assume the worst-- a data integrity\n // mismatch. If not, these tests won't be performed, and we can assume the\n // best.\n let failed = crc32c || md5;\n if (crc32c && metadata.crc32c) {\n // We must remove the first four bytes from the returned checksum.\n // http://stackoverflow.com/questions/25096737/\n // base64-encoding-of-crc32c-long-value\n failed = !validateStream.test('crc32c', metadata.crc32c.substr(4));\n }\n if (md5 && metadata.md5Hash) {\n failed = !validateStream.test('md5', metadata.md5Hash);\n }\n if (failed) {\n this.delete((err) => {\n let code;\n let message;\n if (err) {\n code = 'FILE_NO_UPLOAD_DELETE';\n message = `${FileExceptionMessages.UPLOAD_MISMATCH_DELETE_FAIL}${err.message}`;\n }\n else if (md5 && !metadata.md5Hash) {\n code = 'MD5_NOT_AVAILABLE';\n message = FileExceptionMessages.MD5_NOT_AVAILABLE;\n }\n else {\n code = 'FILE_NO_UPLOAD';\n message = FileExceptionMessages.UPLOAD_MISMATCH;\n }\n const error = new RequestError(message);\n error.code = code;\n error.errors = [err];\n fileWriteStream.destroy(error);\n });\n return;\n }\n stream.uncork();\n });\n return stream;\n }\n /**\n * Delete failed resumable upload file cache.\n *\n * Resumable file upload cache the config file to restart upload in case of\n * failure. In certain scenarios, the resumable upload will not works and\n * upload file cache needs to be deleted to upload the same file.\n *\n * Following are some of the scenarios.\n *\n * Resumable file upload failed even though the file is successfully saved\n * on the google storage and need to clean up a resumable file cache to\n * update the same file.\n *\n * Resumable file upload failed due to pre-condition\n * (i.e generation number is not matched) and want to upload a same\n * file with the new generation number.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file', { generation: 0 });\n * const contents = 'This is the contents of the file.';\n *\n * file.save(contents, function(err) {\n * if (err) {\n * file.deleteResumableCache();\n * }\n * });\n *\n * ```\n */\n deleteResumableCache() {\n const uploadStream = resumableUpload.upload({\n bucket: this.bucket.name,\n file: this.name,\n generation: this.generation,\n retryOptions: this.storage.retryOptions,\n });\n uploadStream.deleteConfig();\n }\n /**\n * @typedef {array} DownloadResponse\n * @property [0] The contents of a File.\n */\n /**\n * @callback DownloadCallback\n * @param err Request error, if any.\n * @param contents The contents of a File.\n */\n /**\n * Convenience method to download a file into memory or to a local\n * destination.\n *\n * @param {object} [options] Configuration options. The arguments match those\n * passed to {@link File#createReadStream}.\n * @param {string} [options.destination] Local file path to write the file's\n * contents to.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DownloadCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Download a file into memory. The contents will be available as the\n * second\n * // argument in the demonstration below, `contents`.\n * //-\n * file.download(function(err, contents) {});\n *\n * //-\n * // Download a file to a local destination.\n * //-\n * file.download({\n * destination: '/Users/me/Desktop/file-backup.txt'\n * }, function(err) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.download().then(function(data) {\n * const contents = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_download_file\n * Another example:\n *\n * @example include:samples/encryption.js\n * region_tag:storage_download_encrypted_file\n * Example of downloading an encrypted file:\n *\n * @example include:samples/requesterPays.js\n * region_tag:storage_download_file_requester_pays\n * Example of downloading a file where the requester pays:\n */\n download(optionsOrCallback, cb) {\n let options;\n if (typeof optionsOrCallback === 'function') {\n cb = optionsOrCallback;\n options = {};\n }\n else {\n options = optionsOrCallback;\n }\n let called = false;\n const callback = ((...args) => {\n if (!called)\n cb(...args);\n called = true;\n });\n const destination = options.destination;\n delete options.destination;\n const fileStream = this.createReadStream(options);\n if (destination) {\n fileStream.on('error', callback).once('data', data => {\n // We know that the file exists the server\n const writable = fs.createWriteStream(destination);\n writable.write(data);\n fileStream.pipe(writable).on('error', callback).on('finish', callback);\n });\n }\n else {\n this.getBufferFromReadable(fileStream)\n .then(contents => callback === null || callback === void 0 ? void 0 : callback(null, contents))\n .catch(callback);\n }\n }\n /**\n * The Storage API allows you to use a custom key for server-side encryption.\n *\n * See {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}\n *\n * @param {string|buffer} encryptionKey An AES-256 encryption key.\n * @returns {File}\n *\n * @example\n * ```\n * const crypto = require('crypto');\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const encryptionKey = crypto.randomBytes(32);\n *\n * const fileWithCustomEncryption = myBucket.file('my-file');\n * fileWithCustomEncryption.setEncryptionKey(encryptionKey);\n *\n * const fileWithoutCustomEncryption = myBucket.file('my-file');\n *\n * fileWithCustomEncryption.save('data', function(err) {\n * // Try to download with the File object that hasn't had\n * // `setEncryptionKey()` called:\n * fileWithoutCustomEncryption.download(function(err) {\n * // We will receive an error:\n * // err.message === 'Bad Request'\n *\n * // Try again with the File object we called `setEncryptionKey()` on:\n * fileWithCustomEncryption.download(function(err, contents) {\n * // contents.toString() === 'data'\n * });\n * });\n * });\n *\n * ```\n * @example include:samples/encryption.js\n * region_tag:storage_upload_encrypted_file\n * Example of uploading an encrypted file:\n *\n * @example include:samples/encryption.js\n * region_tag:storage_download_encrypted_file\n * Example of downloading an encrypted file:\n */\n setEncryptionKey(encryptionKey) {\n this.encryptionKey = encryptionKey;\n this.encryptionKeyBase64 = Buffer.from(encryptionKey).toString('base64');\n this.encryptionKeyHash = crypto\n .createHash('sha256')\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .update(this.encryptionKeyBase64, 'base64')\n .digest('base64');\n this.encryptionKeyInterceptor = {\n request: reqOpts => {\n reqOpts.headers = reqOpts.headers || {};\n reqOpts.headers['x-goog-encryption-algorithm'] = 'AES256';\n reqOpts.headers['x-goog-encryption-key'] = this.encryptionKeyBase64;\n reqOpts.headers['x-goog-encryption-key-sha256'] =\n this.encryptionKeyHash;\n return reqOpts;\n },\n };\n this.interceptors.push(this.encryptionKeyInterceptor);\n return this;\n }\n /**\n * @typedef {array} GetExpirationDateResponse\n * @property {date} 0 A Date object representing the earliest time this file's\n * retention policy will expire.\n */\n /**\n * @callback GetExpirationDateCallback\n * @param {?Error} err Request error, if any.\n * @param {date} expirationDate A Date object representing the earliest time\n * this file's retention policy will expire.\n */\n /**\n * If this bucket has a retention policy defined, use this method to get a\n * Date object representing the earliest time this file will expire.\n *\n * @param {GetExpirationDateCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const storage = require('@google-cloud/storage')();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.getExpirationDate(function(err, expirationDate) {\n * // expirationDate is a Date object.\n * });\n * ```\n */\n getExpirationDate(callback) {\n this.getMetadata((err, metadata, apiResponse) => {\n if (err) {\n callback(err, null, apiResponse);\n return;\n }\n if (!metadata.retentionExpirationTime) {\n const error = new Error(FileExceptionMessages.EXPIRATION_TIME_NA);\n callback(error, null, apiResponse);\n return;\n }\n callback(null, new Date(metadata.retentionExpirationTime), apiResponse);\n });\n }\n /**\n * @typedef {array} GetSignedPolicyResponse\n * @property {object} 0 The document policy.\n */\n /**\n * @callback GetSignedPolicyCallback\n * @param {?Error} err Request error, if any.\n * @param {object} policy The document policy.\n */\n /**\n * Get a v2 signed policy document to allow a user to upload data with a POST\n * request.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed policy. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/xml-api/post-object#policydocument| Policy Document Reference}\n *\n * @deprecated `getSignedPolicy()` is deprecated in favor of\n * `generateSignedPostPolicyV2()` and `generateSignedPostPolicyV4()`.\n * Currently, this method is an alias to `getSignedPolicyV2()`,\n * and will be removed in a future major release.\n * We recommend signing new policies using v4.\n * @internal\n *\n * @throws {Error} If an expiration timestamp from the past is given.\n * @throws {Error} If options.equals has an array with less or more than two\n * members.\n * @throws {Error} If options.startsWith has an array with less or more than two\n * members.\n *\n * @param {object} options Configuration options.\n * @param {array|array[]} [options.equals] Array of request parameters and\n * their expected value (e.g. [['$', '']]). Values are\n * translated into equality constraints in the conditions field of the\n * policy document (e.g. ['eq', '$', '']). If only one\n * equality condition is to be specified, options.equals can be a one-\n * dimensional array (e.g. ['$', '']).\n * @param {*} options.expires - A timestamp when this policy will expire. Any\n * value given is passed to `new Date()`.\n * @param {array|array[]} [options.startsWith] Array of request parameters and\n * their expected prefixes (e.g. [['$', '']). Values are\n * translated into starts-with constraints in the conditions field of the\n * policy document (e.g. ['starts-with', '$', '']). If only\n * one prefix condition is to be specified, options.startsWith can be a\n * one- dimensional array (e.g. ['$', '']).\n * @param {string} [options.acl] ACL for the object from possibly predefined\n * ACLs.\n * @param {string} [options.successRedirect] The URL to which the user client\n * is redirected if the upload is successful.\n * @param {string} [options.successStatus] - The status of the Google Storage\n * response if the upload is successful (must be string).\n * @param {object} [options.contentLengthRange]\n * @param {number} [options.contentLengthRange.min] Minimum value for the\n * request's content length.\n * @param {number} [options.contentLengthRange.max] Maximum value for the\n * request's content length.\n * @param {GetSignedPolicyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const options = {\n * equals: ['$Content-Type', 'image/jpeg'],\n * expires: '10-25-2022',\n * contentLengthRange: {\n * min: 0,\n * max: 1024\n * }\n * };\n *\n * file.getSignedPolicy(options, function(err, policy) {\n * // policy.string: the policy document in plain text.\n * // policy.base64: the policy document in base64.\n * // policy.signature: the policy signature in base64.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.getSignedPolicy(options).then(function(data) {\n * const policy = data[0];\n * });\n * ```\n */\n getSignedPolicy(optionsOrCallback, cb) {\n const args = util_1.normalize(optionsOrCallback, cb);\n const options = args.options;\n const callback = args.callback;\n this.generateSignedPostPolicyV2(options, callback);\n }\n /**\n * @typedef {array} GenerateSignedPostPolicyV2Response\n * @property {object} 0 The document policy.\n */\n /**\n * @callback GenerateSignedPostPolicyV2Callback\n * @param {?Error} err Request error, if any.\n * @param {object} policy The document policy.\n */\n /**\n * Get a signed policy document to allow a user to upload data with a POST\n * request.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed policy. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/xml-api/post-object-v2| POST Object with the V2 signing process}\n *\n * @throws {Error} If an expiration timestamp from the past is given.\n * @throws {Error} If options.equals has an array with less or more than two\n * members.\n * @throws {Error} If options.startsWith has an array with less or more than two\n * members.\n *\n * @param {object} options Configuration options.\n * @param {array|array[]} [options.equals] Array of request parameters and\n * their expected value (e.g. [['$', '']]). Values are\n * translated into equality constraints in the conditions field of the\n * policy document (e.g. ['eq', '$', '']). If only one\n * equality condition is to be specified, options.equals can be a one-\n * dimensional array (e.g. ['$', '']).\n * @param {*} options.expires - A timestamp when this policy will expire. Any\n * value given is passed to `new Date()`.\n * @param {array|array[]} [options.startsWith] Array of request parameters and\n * their expected prefixes (e.g. [['$', '']). Values are\n * translated into starts-with constraints in the conditions field of the\n * policy document (e.g. ['starts-with', '$', '']). If only\n * one prefix condition is to be specified, options.startsWith can be a\n * one- dimensional array (e.g. ['$', '']).\n * @param {string} [options.acl] ACL for the object from possibly predefined\n * ACLs.\n * @param {string} [options.successRedirect] The URL to which the user client\n * is redirected if the upload is successful.\n * @param {string} [options.successStatus] - The status of the Google Storage\n * response if the upload is successful (must be string).\n * @param {object} [options.contentLengthRange]\n * @param {number} [options.contentLengthRange.min] Minimum value for the\n * request's content length.\n * @param {number} [options.contentLengthRange.max] Maximum value for the\n * request's content length.\n * @param {GenerateSignedPostPolicyV2Callback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const options = {\n * equals: ['$Content-Type', 'image/jpeg'],\n * expires: '10-25-2022',\n * contentLengthRange: {\n * min: 0,\n * max: 1024\n * }\n * };\n *\n * file.generateSignedPostPolicyV2(options, function(err, policy) {\n * // policy.string: the policy document in plain text.\n * // policy.base64: the policy document in base64.\n * // policy.signature: the policy signature in base64.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.generateSignedPostPolicyV2(options).then(function(data) {\n * const policy = data[0];\n * });\n * ```\n */\n generateSignedPostPolicyV2(optionsOrCallback, cb) {\n const args = util_1.normalize(optionsOrCallback, cb);\n let options = args.options;\n const callback = args.callback;\n const expires = new Date(options.expires);\n if (isNaN(expires.getTime())) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_INVALID);\n }\n if (expires.valueOf() < Date.now()) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_PAST);\n }\n options = Object.assign({}, options);\n const conditions = [\n ['eq', '$key', this.name],\n {\n bucket: this.bucket.name,\n },\n ];\n if (Array.isArray(options.equals)) {\n if (!Array.isArray(options.equals[0])) {\n options.equals = [options.equals];\n }\n options.equals.forEach(condition => {\n if (!Array.isArray(condition) || condition.length !== 2) {\n throw new Error(FileExceptionMessages.EQUALS_CONDITION_TWO_ELEMENTS);\n }\n conditions.push(['eq', condition[0], condition[1]]);\n });\n }\n if (Array.isArray(options.startsWith)) {\n if (!Array.isArray(options.startsWith[0])) {\n options.startsWith = [options.startsWith];\n }\n options.startsWith.forEach(condition => {\n if (!Array.isArray(condition) || condition.length !== 2) {\n throw new Error(FileExceptionMessages.STARTS_WITH_TWO_ELEMENTS);\n }\n conditions.push(['starts-with', condition[0], condition[1]]);\n });\n }\n if (options.acl) {\n conditions.push({\n acl: options.acl,\n });\n }\n if (options.successRedirect) {\n conditions.push({\n success_action_redirect: options.successRedirect,\n });\n }\n if (options.successStatus) {\n conditions.push({\n success_action_status: options.successStatus,\n });\n }\n if (options.contentLengthRange) {\n const min = options.contentLengthRange.min;\n const max = options.contentLengthRange.max;\n if (typeof min !== 'number' || typeof max !== 'number') {\n throw new Error(FileExceptionMessages.CONTENT_LENGTH_RANGE_MIN_MAX);\n }\n conditions.push(['content-length-range', min, max]);\n }\n const policy = {\n expiration: expires.toISOString(),\n conditions,\n };\n const policyString = JSON.stringify(policy);\n const policyBase64 = Buffer.from(policyString).toString('base64');\n this.storage.authClient.sign(policyBase64).then(signature => {\n callback(null, {\n string: policyString,\n base64: policyBase64,\n signature,\n });\n }, err => {\n callback(new signer_1.SigningError(err.message));\n });\n }\n /**\n * @typedef {object} SignedPostPolicyV4Output\n * @property {string} url The request URL.\n * @property {object} fields The form fields to include in the POST request.\n */\n /**\n * @typedef {array} GenerateSignedPostPolicyV4Response\n * @property {SignedPostPolicyV4Output} 0 An object containing the request URL and form fields.\n */\n /**\n * @callback GenerateSignedPostPolicyV4Callback\n * @param {?Error} err Request error, if any.\n * @param {SignedPostPolicyV4Output} output An object containing the request URL and form fields.\n */\n /**\n * Get a v4 signed policy document to allow a user to upload data with a POST\n * request.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed policy. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/xml-api/post-object#policydocument| Policy Document Reference}\n *\n * @param {object} options Configuration options.\n * @param {Date|number|string} options.expires - A timestamp when this policy will expire. Any\n * value given is passed to `new Date()`.\n * @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @param {string} [config.bucketBoundHostname] The bucket-bound hostname to return in\n * the result, e.g. \"https://cdn.example.com\".\n * @param {object} [config.fields] [Form fields]{@link https://cloud.google.com/storage/docs/xml-api/post-object#policydocument}\n * to include in the signed policy. Any fields with key beginning with 'x-ignore-'\n * will not be included in the policy to be signed.\n * @param {object[]} [config.conditions] [Conditions]{@link https://cloud.google.com/storage/docs/authentication/signatures#policy-document}\n * to include in the signed policy. All fields given in `config.fields` are\n * automatically included in the conditions array, adding the same entry\n * in both `fields` and `conditions` will result in duplicate entries.\n *\n * @param {GenerateSignedPostPolicyV4Callback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const options = {\n * expires: '10-25-2022',\n * conditions: [\n * ['eq', '$Content-Type', 'image/jpeg'],\n * ['content-length-range', 0, 1024],\n * ],\n * fields: {\n * acl: 'public-read',\n * 'x-goog-meta-foo': 'bar',\n * 'x-ignore-mykey': 'data'\n * }\n * };\n *\n * file.generateSignedPostPolicyV4(options, function(err, response) {\n * // response.url The request URL\n * // response.fields The form fields (including the signature) to include\n * // to be used to upload objects by HTML forms.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.generateSignedPostPolicyV4(options).then(function(data) {\n * const response = data[0];\n * // response.url The request URL\n * // response.fields The form fields (including the signature) to include\n * // to be used to upload objects by HTML forms.\n * });\n * ```\n */\n generateSignedPostPolicyV4(optionsOrCallback, cb) {\n const args = util_1.normalize(optionsOrCallback, cb);\n let options = args.options;\n const callback = args.callback;\n const expires = new Date(options.expires);\n if (isNaN(expires.getTime())) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_INVALID);\n }\n if (expires.valueOf() < Date.now()) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_PAST);\n }\n if (expires.valueOf() - Date.now() > SEVEN_DAYS * 1000) {\n throw new Error(`Max allowed expiration is seven days (${SEVEN_DAYS} seconds).`);\n }\n options = Object.assign({}, options);\n let fields = Object.assign({}, options.fields);\n const now = new Date();\n const nowISO = util_1.formatAsUTCISO(now, true);\n const todayISO = util_1.formatAsUTCISO(now);\n const sign = async () => {\n const { client_email } = await this.storage.authClient.getCredentials();\n const credential = `${client_email}/${todayISO}/auto/storage/goog4_request`;\n fields = {\n ...fields,\n bucket: this.bucket.name,\n key: this.name,\n 'x-goog-date': nowISO,\n 'x-goog-credential': credential,\n 'x-goog-algorithm': 'GOOG4-RSA-SHA256',\n };\n const conditions = options.conditions || [];\n Object.entries(fields).forEach(([key, value]) => {\n if (!key.startsWith('x-ignore-')) {\n conditions.push({ [key]: value });\n }\n });\n delete fields.bucket;\n const expiration = util_1.formatAsUTCISO(expires, true, '-', ':');\n const policy = {\n conditions,\n expiration,\n };\n const policyString = util_1.unicodeJSONStringify(policy);\n const policyBase64 = Buffer.from(policyString).toString('base64');\n try {\n const signature = await this.storage.authClient.sign(policyBase64);\n const signatureHex = Buffer.from(signature, 'base64').toString('hex');\n fields['policy'] = policyBase64;\n fields['x-goog-signature'] = signatureHex;\n let url;\n if (options.virtualHostedStyle) {\n url = `https://${this.bucket.name}.storage.googleapis.com/`;\n }\n else if (options.bucketBoundHostname) {\n url = `${options.bucketBoundHostname}/`;\n }\n else {\n url = `${exports.STORAGE_POST_POLICY_BASE_URL}/${this.bucket.name}/`;\n }\n return {\n url,\n fields,\n };\n }\n catch (err) {\n throw new signer_1.SigningError(err.message);\n }\n };\n sign().then(res => callback(null, res), callback);\n }\n /**\n * @typedef {array} GetSignedUrlResponse\n * @property {object} 0 The signed URL.\n */\n /**\n * @callback GetSignedUrlCallback\n * @param {?Error} err Request error, if any.\n * @param {object} url The signed URL.\n */\n /**\n * Get a signed URL to allow limited time access to the file.\n *\n * In Google Cloud Platform environments, such as Cloud Functions and App\n * Engine, you usually don't provide a `keyFilename` or `credentials` during\n * instantiation. In those environments, we call the\n * {@link https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/signBlob| signBlob API}\n * to create a signed URL. That API requires either the\n * `https://www.googleapis.com/auth/iam` or\n * `https://www.googleapis.com/auth/cloud-platform` scope, so be sure they are\n * enabled.\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/signed-urls| Signed URLs Reference}\n *\n * @throws {Error} if an expiration timestamp from the past is given.\n *\n * @param {object} config Configuration object.\n * @param {string} config.action \"read\" (HTTP: GET), \"write\" (HTTP: PUT), or\n * \"delete\" (HTTP: DELETE), \"resumable\" (HTTP: POST).\n * When using \"resumable\", the header `X-Goog-Resumable: start` has\n * to be sent when making a request with the signed URL.\n * @param {*} config.expires A timestamp when this link will expire. Any value\n * given is passed to `new Date()`.\n * Note: 'v4' supports maximum duration of 7 days (604800 seconds) from now.\n * See [reference]{@link https://cloud.google.com/storage/docs/access-control/signed-urls#example}\n * @param {string} [config.version='v2'] The signing version to use, either\n * 'v2' or 'v4'.\n * @param {boolean} [config.virtualHostedStyle=false] Use virtual hosted-style\n * URLs ('https://mybucket.storage.googleapis.com/...') instead of path-style\n * ('https://storage.googleapis.com/mybucket/...'). Virtual hosted-style URLs\n * should generally be preferred instaed of path-style URL.\n * Currently defaults to `false` for path-style, although this may change in a\n * future major-version release.\n * @param {string} [config.cname] The cname for this bucket, i.e.,\n * \"https://cdn.example.com\".\n * @param {string} [config.contentMd5] The MD5 digest value in base64. Just like\n * if you provide this, the client must provide this HTTP header with this same\n * value in its request, so to if this parameter is not provided here,\n * the client must not provide any value for this HTTP header in its request.\n * @param {string} [config.contentType] Just like if you provide this, the client\n * must provide this HTTP header with this same value in its request, so to if\n * this parameter is not provided here, the client must not provide any value\n * for this HTTP header in its request.\n * @param {object} [config.extensionHeaders] If these headers are used, the\n * server will check to make sure that the client provides matching\n * values. See {@link https://cloud.google.com/storage/docs/access-control/signed-urls#about-canonical-extension-headers| Canonical extension headers}\n * for the requirements of this feature, most notably:\n * - The header name must be prefixed with `x-goog-`\n * - The header name must be all lowercase\n *\n * Note: Multi-valued header passed as an array in the extensionHeaders\n * object is converted into a string, delimited by `,` with\n * no space. Requests made using the signed URL will need to\n * delimit multi-valued headers using a single `,` as well, or\n * else the server will report a mismatched signature.\n * @param {object} [config.queryParams] Additional query parameters to include\n * in the signed URL.\n * @param {string} [config.promptSaveAs] The filename to prompt the user to\n * save the file as when the signed url is accessed. This is ignored if\n * `config.responseDisposition` is set.\n * @param {string} [config.responseDisposition] The\n * {@link http://goo.gl/yMWxQV| response-content-disposition parameter} of the\n * signed url.\n * @param {*} [config.accessibleAt=Date.now()] A timestamp when this link became usable. Any value\n * given is passed to `new Date()`.\n * Note: Use for 'v4' only.\n * @param {string} [config.responseType] The response-content-type parameter\n * of the signed url.\n * @param {GetSignedUrlCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Generate a URL that allows temporary access to download your file.\n * //-\n * const request = require('request');\n *\n * const config = {\n * action: 'read',\n * expires: '03-17-2025',\n * };\n *\n * file.getSignedUrl(config, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The file is now available to read from this URL.\n * request(url, function(err, resp) {\n * // resp.statusCode = 200\n * });\n * });\n *\n * //-\n * // Generate a URL that allows temporary access to download your file.\n * // Access will begin at accessibleAt and end at expires.\n * //-\n * const request = require('request');\n *\n * const config = {\n * action: 'read',\n * expires: '03-17-2025',\n * accessibleAt: '03-13-2025'\n * };\n *\n * file.getSignedUrl(config, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The file will be available to read from this URL from 03-13-2025 to 03-17-2025.\n * request(url, function(err, resp) {\n * // resp.statusCode = 200\n * });\n * });\n *\n * //-\n * // Generate a URL to allow write permissions. This means anyone with this\n * URL\n * // can send a POST request with new data that will overwrite the file.\n * //-\n * file.getSignedUrl({\n * action: 'write',\n * expires: '03-17-2025'\n * }, function(err, url) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n *\n * // The file is now available to be written to.\n * const writeStream = request.put(url);\n * writeStream.end('New data');\n *\n * writeStream.on('complete', function(resp) {\n * // Confirm the new content was saved.\n * file.download(function(err, fileContents) {\n * console.log('Contents:', fileContents.toString());\n * // Contents: New data\n * });\n * });\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.getSignedUrl(config).then(function(data) {\n * const url = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_generate_signed_url\n * Another example:\n */\n getSignedUrl(cfg, callback) {\n const method = ActionToHTTPMethod[cfg.action];\n if (!method) {\n throw new Error(storage_1.ExceptionMessages.INVALID_ACTION);\n }\n const extensionHeaders = util_1.objectKeyToLowercase(cfg.extensionHeaders || {});\n if (cfg.action === 'resumable') {\n extensionHeaders['x-goog-resumable'] = 'start';\n }\n const queryParams = Object.assign({}, cfg.queryParams);\n if (typeof cfg.responseType === 'string') {\n queryParams['response-content-type'] = cfg.responseType;\n }\n if (typeof cfg.promptSaveAs === 'string') {\n queryParams['response-content-disposition'] =\n 'attachment; filename=\"' + cfg.promptSaveAs + '\"';\n }\n if (typeof cfg.responseDisposition === 'string') {\n queryParams['response-content-disposition'] = cfg.responseDisposition;\n }\n if (this.generation) {\n queryParams['generation'] = this.generation.toString();\n }\n const signConfig = {\n method,\n expires: cfg.expires,\n accessibleAt: cfg.accessibleAt,\n extensionHeaders,\n queryParams,\n contentMd5: cfg.contentMd5,\n contentType: cfg.contentType,\n };\n if (cfg.cname) {\n signConfig.cname = cfg.cname;\n }\n if (cfg.version) {\n signConfig.version = cfg.version;\n }\n if (cfg.virtualHostedStyle) {\n signConfig.virtualHostedStyle = cfg.virtualHostedStyle;\n }\n if (!this.signer) {\n this.signer = new signer_1.URLSigner(this.storage.authClient, this.bucket, this);\n }\n this.signer\n .getSignedUrl(signConfig)\n .then(signedUrl => callback(null, signedUrl), callback);\n }\n /**\n * @callback IsPublicCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} resp Whether file is public or not.\n */\n /**\n * @typedef {array} IsPublicResponse\n * @property {boolean} 0 Whether file is public or not.\n */\n /**\n * Check whether this file is public or not by sending\n * a HEAD request without credentials.\n * No errors from the server indicates that the current\n * file is public.\n * A 403-Forbidden error {@link https://cloud.google.com/storage/docs/json_api/v1/status-codes#403_Forbidden}\n * indicates that file is private.\n * Any other non 403 error is propagated to user.\n *\n * @param {IsPublicCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Check whether the file is publicly accessible.\n * //-\n * file.isPublic(function(err, resp) {\n * if (err) {\n * console.error(err);\n * return;\n * }\n * console.log(`the file ${file.id} is public: ${resp}`) ;\n * })\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.isPublic().then(function(data) {\n * const resp = data[0];\n * });\n * ```\n */\n isPublic(callback) {\n var _a;\n // Build any custom headers based on the defined interceptors on the parent\n // storage object and this object\n const storageInterceptors = ((_a = this.storage) === null || _a === void 0 ? void 0 : _a.interceptors) || [];\n const fileInterceptors = this.interceptors || [];\n const allInterceptors = storageInterceptors.concat(fileInterceptors);\n const headers = allInterceptors.reduce((acc, curInterceptor) => {\n const currentHeaders = curInterceptor.request({\n uri: `${this.storage.apiEndpoint}/${this.bucket.name}/${encodeURIComponent(this.name)}`,\n });\n Object.assign(acc, currentHeaders.headers);\n return acc;\n }, {});\n nodejs_common_1.util.makeRequest({\n method: 'HEAD',\n uri: `${this.storage.apiEndpoint}/${this.bucket.name}/${encodeURIComponent(this.name)}`,\n headers,\n }, {\n retryOptions: this.storage.retryOptions,\n }, (err) => {\n if (err) {\n const apiError = err;\n if (apiError.code === 403) {\n callback(null, false);\n }\n else {\n callback(err);\n }\n }\n else {\n callback(null, true);\n }\n });\n }\n /**\n * @typedef {object} MakeFilePrivateOptions Configuration options for File#makePrivate().\n * @property {Metadata} [metadata] Define custom metadata properties to define\n * along with the operation.\n * @property {boolean} [strict] If true, set the file to be private to\n * only the owner user. Otherwise, it will be private to the project.\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback MakeFilePrivateCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} MakeFilePrivateResponse\n * @property {object} 0 The full API response.\n */\n /**\n * Make a file private to the project and remove all other permissions.\n * Set `options.strict` to true to make the file private to only the owner.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/patch| Objects: patch API Documentation}\n *\n * @param {MakeFilePrivateOptions} [options] Configuration options.\n * @param {MakeFilePrivateCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * //-\n * // Set the file private so only project maintainers can see and modify it.\n * //-\n * file.makePrivate(function(err) {});\n *\n * //-\n * // Set the file private so only the owner can see and modify it.\n * //-\n * file.makePrivate({ strict: true }, function(err) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.makePrivate().then(function(data) {\n * const apiResponse = data[0];\n * });\n * ```\n */\n makePrivate(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const query = {\n predefinedAcl: options.strict ? 'private' : 'projectPrivate',\n };\n if (options.userProject) {\n query.userProject = options.userProject;\n }\n this.disableAutoRetryConditionallyIdempotent_(this.methods.setMetadata, bucket_1.AvailableServiceObjectMethods.setMetadata);\n // You aren't allowed to set both predefinedAcl & acl properties on a file,\n // so acl must explicitly be nullified, destroying all previous acls on the\n // file.\n const metadata = extend({}, options.metadata, { acl: null });\n this.setMetadata(metadata, query, callback);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * @typedef {array} MakeFilePublicResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback MakeFilePublicCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Set a file to be publicly readable and maintain all previous permissions.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls/insert| ObjectAccessControls: insert API Documentation}\n *\n * @param {MakeFilePublicCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n *\n * file.makePublic(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.makePublic().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_make_public\n * Another example:\n */\n makePublic(callback) {\n callback = callback || nodejs_common_1.util.noop;\n this.acl.add({\n entity: 'allUsers',\n role: 'READER',\n }, (err, acl, resp) => {\n callback(err, resp);\n });\n }\n /**\n * The public URL of this File\n * Use {@link File#makePublic} to enable anonymous access via the returned URL.\n *\n * @returns {string}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const file = bucket.file('my-file');\n *\n * // publicUrl will be \"https://storage.googleapis.com/albums/my-file\"\n * const publicUrl = file.publicUrl();\n * ```\n */\n publicUrl() {\n return `${this.storage.apiEndpoint}/${this.bucket.name}/${encodeURIComponent(this.name)}`;\n }\n /**\n * @typedef {array} MoveResponse\n * @property {File} 0 The destination File.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback MoveCallback\n * @param {?Error} err Request error, if any.\n * @param {?File} destinationFile The destination File.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} MoveOptions Configuration options for File#move(). See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects#resource| Object resource}.\n * @param {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Move this file to another location. By default, this will rename the file\n * and keep it in the same bucket, but you can choose to move it to another\n * Bucket by providing a Bucket or File object or a URL beginning with\n * \"gs://\".\n *\n * **Warning**:\n * There is currently no atomic `move` method in the Cloud Storage API,\n * so this method is a composition of {@link File#copy} (to the new\n * location) and {@link File#delete} (from the old location). While\n * unlikely, it is possible that an error returned to your callback could be\n * triggered from either one of these API calls failing, which could leave a\n * duplicate file lingering. The error message will indicate what operation\n * has failed.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/objects/copy| Objects: copy API Documentation}\n *\n * @throws {Error} If the destination file is not provided.\n *\n * @param {string|Bucket|File} destination Destination file.\n * @param {MoveCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * //-\n * // You can pass in a variety of types for the destination.\n * //\n * // For all of the below examples, assume we are working with the following\n * // Bucket and File objects.\n * //-\n * const bucket = storage.bucket('my-bucket');\n * const file = bucket.file('my-image.png');\n *\n * //-\n * // If you pass in a string for the destination, the file is moved to its\n * // current bucket, under the new name provided.\n * //-\n * file.move('my-image-new.png', function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * // but contains instead:\n * // - \"my-image-new.png\"\n *\n * // `destinationFile` is an instance of a File object that refers to your\n * // new file.\n * });\n *\n * //-\n * // If you pass in a string starting with \"gs://\" for the destination, the\n * // file is copied to the other bucket and under the new name provided.\n * //-\n * const newLocation = 'gs://another-bucket/my-image-new.png';\n * file.move(newLocation, function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image-new.png\"\n *\n * // `destinationFile` is an instance of a File object that refers to your\n * // new file.\n * });\n *\n * //-\n * // If you pass in a Bucket object, the file will be moved to that bucket\n * // using the same name.\n * //-\n * const anotherBucket = gcs.bucket('another-bucket');\n *\n * file.move(anotherBucket, function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-image.png\"\n *\n * // `destinationFile` is an instance of a File object that refers to your\n * // new file.\n * });\n *\n * //-\n * // If you pass in a File object, you have complete control over the new\n * // bucket and filename.\n * //-\n * const anotherFile = anotherBucket.file('my-awesome-image.png');\n *\n * file.move(anotherFile, function(err, destinationFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * //\n * // `another-bucket` now contains:\n * // - \"my-awesome-image.png\"\n *\n * // Note:\n * // The `destinationFile` parameter is equal to `anotherFile`.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.move('my-image-new.png').then(function(data) {\n * const destinationFile = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/files.js\n * region_tag:storage_move_file\n * Another example:\n */\n move(destination, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n callback = callback || nodejs_common_1.util.noop;\n this.copy(destination, options, (err, destinationFile, copyApiResponse) => {\n if (err) {\n err.message = 'file#copy failed with an error - ' + err.message;\n callback(err, null, copyApiResponse);\n return;\n }\n if (this.name !== destinationFile.name ||\n this.bucket.name !== destinationFile.bucket.name) {\n this.delete(options, (err, apiResponse) => {\n if (err) {\n err.message = 'file#delete failed with an error - ' + err.message;\n callback(err, destinationFile, apiResponse);\n return;\n }\n callback(null, destinationFile, copyApiResponse);\n });\n }\n else {\n callback(null, destinationFile, copyApiResponse);\n }\n });\n }\n /**\n * @typedef {array} RenameResponse\n * @property {File} 0 The destination File.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback RenameCallback\n * @param {?Error} err Request error, if any.\n * @param {?File} destinationFile The destination File.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {object} RenameOptions Configuration options for File#move(). See an\n * {@link https://cloud.google.com/storage/docs/json_api/v1/objects#resource| Object resource}.\n * @param {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * Rename this file.\n *\n * **Warning**:\n * There is currently no atomic `rename` method in the Cloud Storage API,\n * so this method is an alias of {@link File#move}, which in turn is a\n * composition of {@link File#copy} (to the new location) and\n * {@link File#delete} (from the old location). While\n * unlikely, it is possible that an error returned to your callback could be\n * triggered from either one of these API calls failing, which could leave a\n * duplicate file lingering. The error message will indicate what operation\n * has failed.\n *\n * @param {string|File} destinationFile Destination file.\n * @param {RenameCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // You can pass in a string or a File object.\n * //\n * // For all of the below examples, assume we are working with the following\n * // Bucket and File objects.\n * //-\n *\n * const bucket = storage.bucket('my-bucket');\n * const file = bucket.file('my-image.png');\n *\n * //-\n * // You can pass in a string for the destinationFile.\n * //-\n * file.rename('renamed-image.png', function(err, renamedFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n * // but contains instead:\n * // - \"renamed-image.png\"\n *\n * // `renamedFile` is an instance of a File object that refers to your\n * // renamed file.\n * });\n *\n * //-\n * // You can pass in a File object.\n * //-\n * const anotherFile = anotherBucket.file('my-awesome-image.png');\n *\n * file.rename(anotherFile, function(err, renamedFile, apiResponse) {\n * // `my-bucket` no longer contains:\n * // - \"my-image.png\"\n *\n * // Note:\n * // The `renamedFile` parameter is equal to `anotherFile`.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.rename('my-renamed-image.png').then(function(data) {\n * const renamedFile = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n rename(destinationFile, optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n callback = callback || nodejs_common_1.util.noop;\n this.move(destinationFile, options, callback);\n }\n /**\n * Makes request and applies userProject query parameter if necessary.\n *\n * @private\n *\n * @param {object} reqOpts - The request options.\n * @param {function} callback - The callback function.\n */\n request(reqOpts, callback) {\n return this.parent.request.call(this, reqOpts, callback);\n }\n /**\n * @callback RotateEncryptionKeyCallback\n * @extends CopyCallback\n */\n /**\n * @typedef RotateEncryptionKeyResponse\n * @extends CopyResponse\n */\n /**\n * @param {string|buffer|object} RotateEncryptionKeyOptions Configuration options\n * for File#rotateEncryptionKey().\n * If a string or Buffer is provided, it is interpreted as an AES-256,\n * customer-supplied encryption key. If you'd like to use a Cloud KMS key\n * name, you must specify an options object with the property name:\n * `kmsKeyName`.\n * @param {string|buffer} [options.encryptionKey] An AES-256 encryption key.\n * @param {string} [options.kmsKeyName] A Cloud KMS key name.\n */\n /**\n * This method allows you to update the encryption key associated with this\n * file.\n *\n * See {@link https://cloud.google.com/storage/docs/encryption#customer-supplied| Customer-supplied Encryption Keys}\n *\n * @param {RotateEncryptionKeyOptions} [options] - Configuration options.\n * @param {RotateEncryptionKeyCallback} [callback]\n * @returns {Promise}\n *\n * @example include:samples/encryption.js\n * region_tag:storage_rotate_encryption_key\n * Example of rotating the encryption key for this file:\n */\n rotateEncryptionKey(optionsOrCallback, callback) {\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n let options = {};\n if (typeof optionsOrCallback === 'string' ||\n optionsOrCallback instanceof Buffer) {\n options = {\n encryptionKey: optionsOrCallback,\n };\n }\n else if (typeof optionsOrCallback === 'object') {\n options = optionsOrCallback;\n }\n const newFile = this.bucket.file(this.id, options);\n this.copy(newFile, callback);\n }\n /**\n * @typedef {object} SaveOptions\n * @extends CreateWriteStreamOptions\n */\n /**\n * @callback SaveCallback\n * @param {?Error} err Request error, if any.\n */\n /**\n * Write strings or buffers to a file.\n *\n * *This is a convenience method which wraps {@link File#createWriteStream}.*\n * To upload arbitrary data to a file, please use {@link File#createWriteStream} directly.\n *\n * Resumable uploads are automatically enabled and must be shut off explicitly\n * by setting `options.resumable` to `false`.\n *\n * Multipart uploads with retryable error codes will be retried 3 times with exponential backoff.\n *\n *

\n * There is some overhead when using a resumable upload that can cause\n * noticeable performance degradation while uploading a series of small\n * files. When uploading files less than 10MB, it is recommended that the\n * resumable feature is disabled.\n *

\n *\n * @param {string | Buffer} data The data to write to a file.\n * @param {SaveOptions} [options] See {@link File#createWriteStream}'s `options`\n * parameter.\n * @param {SaveCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const file = myBucket.file('my-file');\n * const contents = 'This is the contents of the file.';\n *\n * file.save(contents, function(err) {\n * if (!err) {\n * // File written successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.save(contents).then(function() {});\n * ```\n */\n save(data, optionsOrCallback, callback) {\n // tslint:enable:no-any\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n let maxRetries = this.storage.retryOptions.maxRetries;\n if (!this.shouldRetryBasedOnPreconditionAndIdempotencyStrat(options === null || options === void 0 ? void 0 : options.preconditionOpts)) {\n maxRetries = 0;\n }\n const returnValue = retry(async (bail) => {\n await new Promise((resolve, reject) => {\n if (maxRetries === 0) {\n this.storage.retryOptions.autoRetry = false;\n }\n const writable = this.createWriteStream(options)\n .on('error', err => {\n if (this.storage.retryOptions.autoRetry &&\n this.storage.retryOptions.retryableErrorFn(err)) {\n return reject(err);\n }\n else {\n return bail(err);\n }\n })\n .on('finish', () => {\n return resolve();\n });\n if (options.onUploadProgress) {\n writable.on('progress', options.onUploadProgress);\n }\n writable.end(data);\n });\n }, {\n retries: maxRetries,\n factor: this.storage.retryOptions.retryDelayMultiplier,\n maxTimeout: this.storage.retryOptions.maxRetryDelay * 1000,\n maxRetryTime: this.storage.retryOptions.totalTimeout * 1000,\n });\n if (!callback) {\n return returnValue;\n }\n else {\n return returnValue\n .then(() => {\n if (callback) {\n return callback();\n }\n })\n .catch(callback);\n }\n }\n /**\n * @typedef {array} SetStorageClassResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @typedef {object} SetStorageClassOptions Configuration options for File#setStorageClass().\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @callback SetStorageClassCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Set the storage class for this file.\n *\n * See {@link https://cloud.google.com/storage/docs/per-object-storage-class| Per-Object Storage Class}\n * See {@link https://cloud.google.com/storage/docs/storage-classes| Storage Classes}\n *\n * @param {string} storageClass The new storage class. (`standard`,\n * `nearline`, `coldline`, or `archive`)\n * **Note:** The storage classes `multi_regional` and `regional`\n * are now legacy and will be deprecated in the future.\n * @param {SetStorageClassOptions} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {SetStorageClassCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * file.setStorageClass('nearline', function(err, apiResponse) {\n * if (err) {\n * // Error handling omitted.\n * }\n *\n * // The storage class was updated successfully.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * file.setStorageClass('nearline').then(function() {});\n * ```\n */\n setStorageClass(storageClass, optionsOrCallback, callback) {\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n const req = extend(true, {}, options);\n // In case we get input like `storageClass`, convert to `storage_class`.\n req.storageClass = storageClass\n .replace(/-/g, '_')\n .replace(/([a-z])([A-Z])/g, (_, low, up) => {\n return low + '_' + up;\n })\n .toUpperCase();\n this.copy(this, req, (err, file, apiResponse) => {\n if (err) {\n callback(err, apiResponse);\n return;\n }\n this.metadata = file.metadata;\n callback(null, apiResponse);\n });\n }\n /**\n * Set a user project to be billed for all requests made from this File\n * object.\n *\n * @param {string} userProject The user project.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('albums');\n * const file = bucket.file('my-file');\n *\n * file.setUserProject('grape-spaceship-123');\n * ```\n */\n setUserProject(userProject) {\n this.bucket.setUserProject.call(this, userProject);\n }\n /**\n * This creates a gcs-resumable-upload upload stream.\n *\n * See {@link https://github.com/googleapis/gcs-resumable-upload| gcs-resumable-upload}\n *\n * @param {Duplexify} stream - Duplexify stream of data to pipe to the file.\n * @param {object=} options - Configuration object.\n *\n * @private\n */\n startResumableUpload_(dup, options) {\n options = extend(true, {\n metadata: {},\n }, options);\n const retryOptions = this.storage.retryOptions;\n if (!this.shouldRetryBasedOnPreconditionAndIdempotencyStrat(options === null || options === void 0 ? void 0 : options.preconditionOpts)) {\n retryOptions.autoRetry = false;\n }\n const uploadStream = resumableUpload.upload({\n authClient: this.storage.authClient,\n apiEndpoint: this.storage.apiEndpoint,\n bucket: this.bucket.name,\n configPath: options.configPath,\n customRequestOptions: this.getRequestInterceptors().reduce((reqOpts, interceptorFn) => interceptorFn(reqOpts), {}),\n file: this.name,\n generation: this.generation,\n key: this.encryptionKey,\n kmsKeyName: this.kmsKeyName,\n metadata: options.metadata,\n offset: options.offset,\n predefinedAcl: options.predefinedAcl,\n private: options.private,\n public: options.public,\n uri: options.uri,\n userProject: options.userProject || this.userProject,\n retryOptions: { ...retryOptions },\n params: (options === null || options === void 0 ? void 0 : options.preconditionOpts) || this.instancePreconditionOpts,\n chunkSize: options === null || options === void 0 ? void 0 : options.chunkSize,\n });\n uploadStream\n .on('response', resp => {\n dup.emit('response', resp);\n })\n .on('metadata', metadata => {\n this.metadata = metadata;\n })\n .on('finish', () => {\n dup.emit('complete');\n })\n .on('progress', evt => dup.emit('progress', evt));\n dup.setWritable(uploadStream);\n this.storage.retryOptions.autoRetry = this.instanceRetryValue;\n }\n /**\n * Takes a readable stream and pipes it to a remote file. Unlike\n * `startResumableUpload_`, which uses the resumable upload technique, this\n * method uses a simple upload (all or nothing).\n *\n * @param {Duplexify} dup - Duplexify stream of data to pipe to the file.\n * @param {object=} options - Configuration object.\n *\n * @private\n */\n startSimpleUpload_(dup, options) {\n options = extend(true, {\n metadata: {},\n }, options);\n const apiEndpoint = this.storage.apiEndpoint;\n const bucketName = this.bucket.name;\n const uri = `${apiEndpoint}/upload/storage/v1/b/${bucketName}/o`;\n const reqOpts = {\n qs: {\n name: this.name,\n },\n uri: uri,\n };\n if (this.generation !== undefined) {\n reqOpts.qs.ifGenerationMatch = this.generation;\n }\n if (this.kmsKeyName !== undefined) {\n reqOpts.qs.kmsKeyName = this.kmsKeyName;\n }\n if (typeof options.timeout === 'number') {\n reqOpts.timeout = options.timeout;\n }\n if (options.userProject || this.userProject) {\n reqOpts.qs.userProject = options.userProject || this.userProject;\n }\n if (options.predefinedAcl) {\n reqOpts.qs.predefinedAcl = options.predefinedAcl;\n }\n else if (options.private) {\n reqOpts.qs.predefinedAcl = 'private';\n }\n else if (options.public) {\n reqOpts.qs.predefinedAcl = 'publicRead';\n }\n Object.assign(reqOpts.qs, this.instancePreconditionOpts, options.preconditionOpts);\n nodejs_common_1.util.makeWritableStream(dup, {\n makeAuthenticatedRequest: (reqOpts) => {\n this.request(reqOpts, (err, body, resp) => {\n if (err) {\n dup.destroy(err);\n return;\n }\n this.metadata = body;\n dup.emit('response', resp);\n dup.emit('complete');\n });\n },\n metadata: options.metadata,\n request: reqOpts,\n });\n }\n disableAutoRetryConditionallyIdempotent_(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n coreOpts, methodType) {\n var _a, _b;\n if ((typeof coreOpts === 'object' &&\n ((_b = (_a = coreOpts === null || coreOpts === void 0 ? void 0 : coreOpts.reqOpts) === null || _a === void 0 ? void 0 : _a.qs) === null || _b === void 0 ? void 0 : _b.ifGenerationMatch) === undefined &&\n methodType === bucket_1.AvailableServiceObjectMethods.setMetadata &&\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryConditional) ||\n this.storage.retryOptions.idempotencyStrategy ===\n storage_1.IdempotencyStrategy.RetryNever) {\n this.storage.retryOptions.autoRetry = false;\n }\n }\n async getBufferFromReadable(readable) {\n const buf = [];\n for await (const chunk of readable) {\n buf.push(chunk);\n }\n return Buffer.concat(buf);\n }\n}\nexports.File = File;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(File, {\n exclude: [\n 'publicUrl',\n 'request',\n 'save',\n 'setEncryptionKey',\n 'shouldRetryBasedOnPreconditionAndIdempotencyStrat',\n 'getBufferFromReadable',\n ],\n});\n//# sourceMappingURL=file.js.map","\"use strict\";\n// Copyright 2022 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createURI = exports.upload = exports.Upload = exports.PROTOCOL_REGEX = void 0;\nconst abort_controller_1 = require(\"abort-controller\");\nconst ConfigStore = require(\"configstore\");\nconst crypto_1 = require(\"crypto\");\nconst extend = require(\"extend\");\nconst gaxios = require(\"gaxios\");\nconst google_auth_library_1 = require(\"google-auth-library\");\nconst stream_1 = require(\"stream\");\nconst retry = require(\"async-retry\");\nconst uuid = require(\"uuid\");\nconst NOT_FOUND_STATUS_CODE = 404;\nconst TERMINATED_UPLOAD_STATUS_CODE = 410;\nconst RESUMABLE_INCOMPLETE_STATUS_CODE = 308;\nconst DEFAULT_API_ENDPOINT_REGEX = /.*\\.googleapis\\.com/;\nconst packageJson = require('../../package.json');\nexports.PROTOCOL_REGEX = /^(\\w*):\\/\\//;\nclass Upload extends stream_1.Writable {\n constructor(cfg) {\n super();\n this.numBytesWritten = 0;\n this.numRetries = 0;\n this.currentInvocationId = {\n chunk: uuid.v4(),\n uri: uuid.v4(),\n offset: uuid.v4(),\n };\n this.upstreamChunkBuffer = Buffer.alloc(0);\n this.chunkBufferEncoding = undefined;\n this.numChunksReadInRequest = 0;\n /**\n * A chunk used for caching the most recent upload chunk.\n * We should not assume that the server received all bytes sent in the request.\n * - https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload\n */\n this.lastChunkSent = Buffer.alloc(0);\n this.upstreamEnded = false;\n cfg = cfg || {};\n if (!cfg.bucket || !cfg.file) {\n throw new Error('A bucket and file name are required');\n }\n cfg.authConfig = cfg.authConfig || {};\n cfg.authConfig.scopes = [\n 'https://www.googleapis.com/auth/devstorage.full_control',\n ];\n this.authClient = cfg.authClient || new google_auth_library_1.GoogleAuth(cfg.authConfig);\n this.apiEndpoint = 'https://storage.googleapis.com';\n if (cfg.apiEndpoint) {\n this.apiEndpoint = this.sanitizeEndpoint(cfg.apiEndpoint);\n if (!DEFAULT_API_ENDPOINT_REGEX.test(cfg.apiEndpoint)) {\n this.authClient = gaxios;\n }\n }\n this.baseURI = `${this.apiEndpoint}/upload/storage/v1/b`;\n this.bucket = cfg.bucket;\n const cacheKeyElements = [cfg.bucket, cfg.file];\n if (typeof cfg.generation === 'number') {\n cacheKeyElements.push(`${cfg.generation}`);\n }\n this.cacheKey = cacheKeyElements.join('/');\n this.customRequestOptions = cfg.customRequestOptions || {};\n this.file = cfg.file;\n this.generation = cfg.generation;\n this.kmsKeyName = cfg.kmsKeyName;\n this.metadata = cfg.metadata || {};\n this.offset = cfg.offset;\n this.origin = cfg.origin;\n this.params = cfg.params || {};\n this.userProject = cfg.userProject;\n this.chunkSize = cfg.chunkSize;\n this.retryOptions = cfg.retryOptions;\n if (cfg.key) {\n const base64Key = Buffer.from(cfg.key).toString('base64');\n this.encryption = {\n key: base64Key,\n hash: crypto_1.createHash('sha256').update(cfg.key).digest('base64'),\n };\n }\n this.predefinedAcl = cfg.predefinedAcl;\n if (cfg.private)\n this.predefinedAcl = 'private';\n if (cfg.public)\n this.predefinedAcl = 'publicRead';\n const configPath = cfg.configPath;\n this.configStore = new ConfigStore('gcs-resumable-upload', null, {\n configPath,\n });\n const autoRetry = cfg.retryOptions.autoRetry;\n this.uriProvidedManually = !!cfg.uri;\n this.uri = cfg.uri || this.get('uri');\n this.numBytesWritten = 0;\n this.numRetries = 0; // counter for number of retries currently executed\n if (!autoRetry) {\n cfg.retryOptions.maxRetries = 0;\n }\n this.timeOfFirstRequest = Date.now();\n const contentLength = cfg.metadata\n ? Number(cfg.metadata.contentLength)\n : NaN;\n this.contentLength = isNaN(contentLength) ? '*' : contentLength;\n this.once('writing', () => {\n if (this.uri) {\n this.continueUploading();\n }\n else {\n this.createURI((err, uri) => {\n if (err) {\n return this.destroy(err);\n }\n this.set({ uri });\n this.startUploading();\n return;\n });\n }\n });\n }\n /**\n * Prevent 'finish' event until the upload has succeeded.\n *\n * @param fireFinishEvent The finish callback\n */\n _final(fireFinishEvent = () => { }) {\n this.upstreamEnded = true;\n this.once('uploadFinished', fireFinishEvent);\n process.nextTick(() => {\n this.emit('upstreamFinished');\n // it's possible `_write` may not be called - namely for empty object uploads\n this.emit('writing');\n });\n }\n /**\n * Handles incoming data from upstream\n *\n * @param chunk The chunk to append to the buffer\n * @param encoding The encoding of the chunk\n * @param readCallback A callback for when the buffer has been read downstream\n */\n _write(chunk, encoding, readCallback = () => { }) {\n // Backwards-compatible event\n this.emit('writing');\n this.upstreamChunkBuffer = Buffer.concat([\n this.upstreamChunkBuffer,\n typeof chunk === 'string' ? Buffer.from(chunk, encoding) : chunk,\n ]);\n this.chunkBufferEncoding = encoding;\n this.once('readFromChunkBuffer', readCallback);\n process.nextTick(() => this.emit('wroteToChunkBuffer'));\n }\n /**\n * Prepends data back to the upstream chunk buffer.\n *\n * @param chunk The data to prepend\n */\n unshiftChunkBuffer(chunk) {\n this.upstreamChunkBuffer = Buffer.concat([chunk, this.upstreamChunkBuffer]);\n }\n /**\n * Retrieves data from upstream's buffer.\n *\n * @param limit The maximum amount to return from the buffer.\n * @returns The data requested.\n */\n pullFromChunkBuffer(limit) {\n const chunk = this.upstreamChunkBuffer.slice(0, limit);\n this.upstreamChunkBuffer = this.upstreamChunkBuffer.slice(limit);\n // notify upstream we've read from the buffer so it can potentially\n // send more data down.\n process.nextTick(() => this.emit('readFromChunkBuffer'));\n return chunk;\n }\n /**\n * A handler for determining if data is ready to be read from upstream.\n *\n * @returns If there will be more chunks to read in the future\n */\n async waitForNextChunk() {\n const willBeMoreChunks = await new Promise(resolve => {\n // There's data available - it should be digested\n if (this.upstreamChunkBuffer.byteLength) {\n return resolve(true);\n }\n // The upstream writable ended, we shouldn't expect any more data.\n if (this.upstreamEnded) {\n return resolve(false);\n }\n // Nothing immediate seems to be determined. We need to prepare some\n // listeners to determine next steps...\n const wroteToChunkBufferCallback = () => {\n removeListeners();\n return resolve(true);\n };\n const upstreamFinishedCallback = () => {\n removeListeners();\n // this should be the last chunk, if there's anything there\n if (this.upstreamChunkBuffer.length)\n return resolve(true);\n return resolve(false);\n };\n // Remove listeners when we're ready to callback.\n const removeListeners = () => {\n this.removeListener('wroteToChunkBuffer', wroteToChunkBufferCallback);\n this.removeListener('upstreamFinished', upstreamFinishedCallback);\n };\n // If there's data recently written it should be digested\n this.once('wroteToChunkBuffer', wroteToChunkBufferCallback);\n // If the upstream finishes let's see if there's anything to grab\n this.once('upstreamFinished', upstreamFinishedCallback);\n });\n return willBeMoreChunks;\n }\n /**\n * Reads data from upstream up to the provided `limit`.\n * Ends when the limit has reached or no data is expected to be pushed from upstream.\n *\n * @param limit The most amount of data this iterator should return. `Infinity` by default.\n * @param oneChunkMode Determines if one, exhaustive chunk is yielded for the iterator\n */\n async *upstreamIterator(limit = Infinity, oneChunkMode) {\n let completeChunk = Buffer.alloc(0);\n // read from upstream chunk buffer\n while (limit && (await this.waitForNextChunk())) {\n // read until end or limit has been reached\n const chunk = this.pullFromChunkBuffer(limit);\n limit -= chunk.byteLength;\n if (oneChunkMode) {\n // return 1 chunk at the end of iteration\n completeChunk = Buffer.concat([completeChunk, chunk]);\n }\n else {\n // return many chunks throughout iteration\n yield {\n chunk,\n encoding: this.chunkBufferEncoding,\n };\n }\n }\n if (oneChunkMode) {\n yield {\n chunk: completeChunk,\n encoding: this.chunkBufferEncoding,\n };\n }\n }\n createURI(callback) {\n if (!callback) {\n return this.createURIAsync();\n }\n this.createURIAsync().then(r => callback(null, r), callback);\n }\n async createURIAsync() {\n const metadata = this.metadata;\n // Check if headers already exist before creating new ones\n const reqOpts = {\n method: 'POST',\n url: [this.baseURI, this.bucket, 'o'].join('/'),\n params: Object.assign({\n name: this.file,\n uploadType: 'resumable',\n }, this.params),\n data: metadata,\n headers: {\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${this.currentInvocationId.uri}`,\n },\n };\n if (metadata.contentLength) {\n reqOpts.headers['X-Upload-Content-Length'] =\n metadata.contentLength.toString();\n }\n if (metadata.contentType) {\n reqOpts.headers['X-Upload-Content-Type'] = metadata.contentType;\n }\n if (typeof this.generation !== 'undefined') {\n reqOpts.params.ifGenerationMatch = this.generation;\n }\n if (this.kmsKeyName) {\n reqOpts.params.kmsKeyName = this.kmsKeyName;\n }\n if (this.predefinedAcl) {\n reqOpts.params.predefinedAcl = this.predefinedAcl;\n }\n if (this.origin) {\n reqOpts.headers.Origin = this.origin;\n }\n const uri = await retry(async (bail) => {\n var _a, _b, _c;\n try {\n const res = await this.makeRequest(reqOpts);\n // We have successfully got a URI we can now create a new invocation id\n this.currentInvocationId.uri = uuid.v4();\n return res.headers.location;\n }\n catch (err) {\n const e = err;\n const apiError = {\n code: (_a = e.response) === null || _a === void 0 ? void 0 : _a.status,\n name: (_b = e.response) === null || _b === void 0 ? void 0 : _b.statusText,\n message: (_c = e.response) === null || _c === void 0 ? void 0 : _c.statusText,\n errors: [\n {\n reason: e.code,\n },\n ],\n };\n if (this.retryOptions.maxRetries > 0 &&\n this.retryOptions.retryableErrorFn(apiError)) {\n throw e;\n }\n else {\n return bail(e);\n }\n }\n }, {\n retries: this.retryOptions.maxRetries,\n factor: this.retryOptions.retryDelayMultiplier,\n maxTimeout: this.retryOptions.maxRetryDelay * 1000,\n maxRetryTime: this.retryOptions.totalTimeout * 1000,\n });\n this.uri = uri;\n this.offset = 0;\n return uri;\n }\n async continueUploading() {\n if (typeof this.offset === 'number') {\n this.startUploading();\n return;\n }\n await this.getAndSetOffset();\n this.startUploading();\n }\n async startUploading() {\n const multiChunkMode = !!this.chunkSize;\n let responseReceived = false;\n this.numChunksReadInRequest = 0;\n if (!this.offset) {\n this.offset = 0;\n }\n // Check if we're uploading the expected object\n if (this.numBytesWritten === 0) {\n const isSameObject = await this.ensureUploadingSameObject();\n if (!isSameObject) {\n // `ensureUploadingSameObject` will restart the upload.\n return;\n }\n }\n // Check if the offset (server) is too far behind the current stream\n if (this.offset < this.numBytesWritten) {\n const delta = this.numBytesWritten - this.offset;\n const message = `The offset is lower than the number of bytes written. The server has ${this.offset} bytes and while ${this.numBytesWritten} bytes has been uploaded - thus ${delta} bytes are missing. Stopping as this could result in data loss. Initiate a new upload to continue.`;\n this.emit('error', new RangeError(message));\n return;\n }\n // Check if we should 'fast-forward' to the relevant data to upload\n if (this.numBytesWritten < this.offset) {\n // 'fast-forward' to the byte where we need to upload.\n // only push data from the byte after the one we left off on\n const fastForwardBytes = this.offset - this.numBytesWritten;\n for await (const _chunk of this.upstreamIterator(fastForwardBytes)) {\n _chunk; // discard the data up until the point we want\n }\n this.numBytesWritten = this.offset;\n }\n let expectedUploadSize = undefined;\n // Set `expectedUploadSize` to `contentLength` if available\n if (typeof this.contentLength === 'number') {\n expectedUploadSize = this.contentLength - this.numBytesWritten;\n }\n // `expectedUploadSize` should be no more than the `chunkSize`.\n // It's possible this is the last chunk request for a multiple\n // chunk upload, thus smaller than the chunk size.\n if (this.chunkSize) {\n expectedUploadSize = expectedUploadSize\n ? Math.min(this.chunkSize, expectedUploadSize)\n : this.chunkSize;\n }\n // A queue for the upstream data\n const upstreamQueue = this.upstreamIterator(expectedUploadSize, multiChunkMode // multi-chunk mode should return 1 chunk per request\n );\n // The primary read stream for this request. This stream retrieves no more\n // than the exact requested amount from upstream.\n const requestStream = new stream_1.Readable({\n read: async () => {\n // Don't attempt to retrieve data upstream if we already have a response\n if (responseReceived)\n requestStream.push(null);\n const result = await upstreamQueue.next();\n if (result.value) {\n this.numChunksReadInRequest++;\n this.lastChunkSent = result.value.chunk;\n this.numBytesWritten += result.value.chunk.byteLength;\n this.emit('progress', {\n bytesWritten: this.numBytesWritten,\n contentLength: this.contentLength,\n });\n requestStream.push(result.value.chunk, result.value.encoding);\n }\n if (result.done) {\n requestStream.push(null);\n }\n },\n });\n const headers = {\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${this.currentInvocationId.chunk}`,\n };\n // If using multiple chunk upload, set appropriate header\n if (multiChunkMode && expectedUploadSize) {\n // The '-1' is because the ending byte is inclusive in the request.\n const endingByte = expectedUploadSize + this.numBytesWritten - 1;\n headers['Content-Length'] = expectedUploadSize;\n headers['Content-Range'] = `bytes ${this.offset}-${endingByte}/${this.contentLength}`;\n }\n else {\n headers['Content-Range'] = `bytes ${this.offset}-*/${this.contentLength}`;\n }\n const reqOpts = {\n method: 'PUT',\n url: this.uri,\n headers,\n body: requestStream,\n };\n try {\n const resp = await this.makeRequestStream(reqOpts);\n if (resp) {\n responseReceived = true;\n this.responseHandler(resp);\n }\n }\n catch (err) {\n const e = err;\n this.destroy(e);\n }\n }\n // Process the API response to look for errors that came in\n // the response body.\n responseHandler(resp) {\n if (resp.data.error) {\n this.destroy(resp.data.error);\n return;\n }\n // At this point we can safely create a new id for the chunk\n this.currentInvocationId.chunk = uuid.v4();\n const shouldContinueWithNextMultiChunkRequest = this.chunkSize &&\n resp.status === RESUMABLE_INCOMPLETE_STATUS_CODE &&\n resp.headers.range;\n if (shouldContinueWithNextMultiChunkRequest) {\n // Use the upper value in this header to determine where to start the next chunk.\n // We should not assume that the server received all bytes sent in the request.\n // https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload\n const range = resp.headers.range;\n this.offset = Number(range.split('-')[1]) + 1;\n // We should not assume that the server received all bytes sent in the request.\n // - https://cloud.google.com/storage/docs/performing-resumable-uploads#chunked-upload\n const missingBytes = this.numBytesWritten - this.offset;\n if (missingBytes) {\n const dataToPrependForResending = this.lastChunkSent.slice(-missingBytes);\n // As multi-chunk uploads send one chunk per request and pulls one\n // chunk into the pipeline, prepending the missing bytes back should\n // be fine for the next request.\n this.unshiftChunkBuffer(dataToPrependForResending);\n this.numBytesWritten -= missingBytes;\n this.lastChunkSent = Buffer.alloc(0);\n }\n // continue uploading next chunk\n this.continueUploading();\n }\n else if (!this.isSuccessfulResponse(resp.status)) {\n const err = {\n code: resp.status,\n name: 'Upload failed',\n message: 'Upload failed',\n };\n this.destroy(err);\n }\n else {\n // remove the last chunk sent to free memory\n this.lastChunkSent = Buffer.alloc(0);\n if (resp && resp.data) {\n resp.data.size = Number(resp.data.size);\n }\n this.emit('metadata', resp.data);\n this.deleteConfig();\n // Allow the object (Upload) to continue naturally so the user's\n // \"finish\" event fires.\n this.emit('uploadFinished');\n }\n }\n /**\n * Check if this is the same content uploaded previously. This caches a\n * slice of the first chunk, then compares it with the first byte of\n * incoming data.\n *\n * @returns if the request is ok to continue as-is\n */\n async ensureUploadingSameObject() {\n // A queue for the upstream data\n const upstreamQueue = this.upstreamIterator(16, true // we just want one chunk for this validation\n );\n const upstreamChunk = await upstreamQueue.next();\n const chunk = upstreamChunk.value\n ? upstreamChunk.value.chunk\n : Buffer.alloc(0);\n // Put the original chunk back into the buffer as we just wanted to 'peek'\n // at the stream for validation.\n this.unshiftChunkBuffer(chunk);\n let cachedFirstChunk = this.get('firstChunk');\n const firstChunk = chunk.valueOf();\n if (!cachedFirstChunk) {\n // This is a new upload. Cache the first chunk.\n this.set({ uri: this.uri, firstChunk });\n }\n else {\n // this continues an upload in progress. check if the bytes are the same\n cachedFirstChunk = Buffer.from(cachedFirstChunk);\n const nextChunk = Buffer.from(firstChunk);\n if (Buffer.compare(cachedFirstChunk, nextChunk) !== 0) {\n // this data is not the same. start a new upload\n this.restart();\n return false;\n }\n }\n return true;\n }\n async getAndSetOffset() {\n const opts = {\n method: 'PUT',\n url: this.uri,\n headers: {\n 'Content-Length': 0,\n 'Content-Range': 'bytes */*',\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${this.currentInvocationId.offset}`,\n },\n };\n try {\n const resp = await this.makeRequest(opts);\n // Successfully got the offset we can now create a new offset invocation id\n this.currentInvocationId.offset = uuid.v4();\n if (resp.status === RESUMABLE_INCOMPLETE_STATUS_CODE) {\n if (resp.headers.range) {\n const range = resp.headers.range;\n this.offset = Number(range.split('-')[1]) + 1;\n return;\n }\n }\n this.offset = 0;\n }\n catch (e) {\n const err = e;\n const resp = err.response;\n // we don't return a 404 to the user if they provided the resumable\n // URI. if we're just using the configstore file to tell us that this\n // file exists, and it turns out that it doesn't (the 404), that's\n // probably stale config data.\n if (resp &&\n resp.status === NOT_FOUND_STATUS_CODE &&\n !this.uriProvidedManually) {\n this.restart();\n return;\n }\n // this resumable upload is unrecoverable (bad data or service error).\n if (resp && resp.status === TERMINATED_UPLOAD_STATUS_CODE) {\n this.restart();\n return;\n }\n this.destroy(err);\n }\n }\n async makeRequest(reqOpts) {\n if (this.encryption) {\n reqOpts.headers = reqOpts.headers || {};\n reqOpts.headers['x-goog-encryption-algorithm'] = 'AES256';\n reqOpts.headers['x-goog-encryption-key'] = this.encryption.key.toString();\n reqOpts.headers['x-goog-encryption-key-sha256'] =\n this.encryption.hash.toString();\n }\n if (this.userProject) {\n reqOpts.params = reqOpts.params || {};\n reqOpts.params.userProject = this.userProject;\n }\n // Let gaxios know we will handle a 308 error code ourselves.\n reqOpts.validateStatus = (status) => {\n return (this.isSuccessfulResponse(status) ||\n status === RESUMABLE_INCOMPLETE_STATUS_CODE);\n };\n const combinedReqOpts = extend(true, {}, this.customRequestOptions, reqOpts);\n const res = await this.authClient.request(combinedReqOpts);\n if (res.data && res.data.error) {\n throw res.data.error;\n }\n return res;\n }\n async makeRequestStream(reqOpts) {\n const controller = new abort_controller_1.default();\n const errorCallback = () => controller.abort();\n this.once('error', errorCallback);\n if (this.userProject) {\n reqOpts.params = reqOpts.params || {};\n reqOpts.params.userProject = this.userProject;\n }\n reqOpts.signal = controller.signal;\n reqOpts.validateStatus = () => true;\n const combinedReqOpts = extend(true, {}, this.customRequestOptions, reqOpts);\n const res = await this.authClient.request(combinedReqOpts);\n const successfulRequest = this.onResponse(res);\n this.removeListener('error', errorCallback);\n return successfulRequest ? res : null;\n }\n restart() {\n if (this.numBytesWritten) {\n const message = 'Attempting to restart an upload after unrecoverable bytes have been written from upstream. Stopping as this could result in data loss. Initiate a new upload to continue.';\n this.emit('error', new RangeError(message));\n return;\n }\n this.lastChunkSent = Buffer.alloc(0);\n this.deleteConfig();\n this.createURI((err, uri) => {\n if (err) {\n return this.destroy(err);\n }\n this.set({ uri });\n this.startUploading();\n return;\n });\n }\n get(prop) {\n const store = this.configStore.get(this.cacheKey);\n return store && store[prop];\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(props) {\n this.configStore.set(this.cacheKey, props);\n }\n deleteConfig() {\n this.configStore.delete(this.cacheKey);\n }\n /**\n * @return {bool} is the request good?\n */\n onResponse(resp) {\n if (resp.status !== 200 &&\n this.retryOptions.retryableErrorFn({\n code: resp.status,\n message: resp.statusText,\n name: resp.statusText,\n })) {\n this.attemptDelayedRetry(resp);\n return false;\n }\n this.emit('response', resp);\n return true;\n }\n /**\n * @param resp GaxiosResponse object from previous attempt\n */\n attemptDelayedRetry(resp) {\n if (this.numRetries < this.retryOptions.maxRetries) {\n if (resp.status === NOT_FOUND_STATUS_CODE &&\n this.numChunksReadInRequest === 0) {\n this.startUploading();\n }\n else {\n const retryDelay = this.getRetryDelay();\n if (retryDelay <= 0) {\n this.destroy(new Error(`Retry total time limit exceeded - ${resp.data}`));\n return;\n }\n // Unshift the most recent chunk back in case it's needed for the next\n // request.\n this.numBytesWritten -= this.lastChunkSent.byteLength;\n this.unshiftChunkBuffer(this.lastChunkSent);\n this.lastChunkSent = Buffer.alloc(0);\n // We don't know how much data has been received by the server.\n // `continueUploading` will recheck the offset via `getAndSetOffset`.\n // If `offset` < `numberBytesReceived` then we will raise a RangeError\n // as we've streamed too much data that has been missed - this should\n // not be the case for multi-chunk uploads as `lastChunkSent` is the\n // body of the entire request.\n this.offset = undefined;\n setTimeout(this.continueUploading.bind(this), retryDelay);\n }\n this.numRetries++;\n }\n else {\n this.destroy(new Error('Retry limit exceeded - ' + resp.data));\n }\n }\n /**\n * @returns {number} the amount of time to wait before retrying the request\n */\n getRetryDelay() {\n const randomMs = Math.round(Math.random() * 1000);\n const waitTime = Math.pow(this.retryOptions.retryDelayMultiplier, this.numRetries) *\n 1000 +\n randomMs;\n const maxAllowableDelayMs = this.retryOptions.totalTimeout * 1000 -\n (Date.now() - this.timeOfFirstRequest);\n const maxRetryDelayMs = this.retryOptions.maxRetryDelay * 1000;\n return Math.min(waitTime, maxRetryDelayMs, maxAllowableDelayMs);\n }\n /*\n * Prepare user-defined API endpoint for compatibility with our API.\n */\n sanitizeEndpoint(url) {\n if (!exports.PROTOCOL_REGEX.test(url)) {\n url = `https://${url}`;\n }\n return url.replace(/\\/+$/, ''); // Remove trailing slashes\n }\n /**\n * Check if a given status code is 2xx\n *\n * @param status The status code to check\n * @returns if the status is 2xx\n */\n isSuccessfulResponse(status) {\n return status >= 200 && status < 300;\n }\n}\nexports.Upload = Upload;\nfunction upload(cfg) {\n return new Upload(cfg);\n}\nexports.upload = upload;\nfunction createURI(cfg, callback) {\n const up = new Upload(cfg);\n if (!callback) {\n return up.createURI();\n }\n up.createURI().then(r => callback(null, r), callback);\n}\nexports.createURI = createURI;\n//# sourceMappingURL=gcs-resumable-upload.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HmacKey = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\n/**\n * The API-formatted resource description of the HMAC key.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name HmacKey#metadata\n * @type {object}\n */\n/**\n * An HmacKey object contains metadata of an HMAC key created from a\n * service account through the {@link Storage} client using\n * {@link Storage#createHmacKey}.\n *\n * See {@link https://cloud.google.com/storage/docs/authentication/hmackeys| HMAC keys documentation}\n *\n * @class\n */\nclass HmacKey extends nodejs_common_1.ServiceObject {\n /**\n * @typedef {object} HmacKeyOptions\n * @property {string} [projectId] The project ID of the project that owns\n * the service account of the requested HMAC key. If not provided,\n * the project ID used to instantiate the Storage client will be used.\n */\n /**\n * Constructs an HmacKey object.\n *\n * Note: this only create a local reference to an HMAC key, to create\n * an HMAC key, use {@link Storage#createHmacKey}.\n *\n * @param {Storage} storage The Storage instance this HMAC key is\n * attached to.\n * @param {string} accessId The unique accessId for this HMAC key.\n * @param {HmacKeyOptions} options Constructor configurations.\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const hmacKey = storage.hmacKey('access-id');\n * ```\n */\n constructor(storage, accessId, options) {\n const methods = {\n /**\n * @typedef {object} DeleteHmacKeyOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * @typedef {array} DeleteHmacKeyResponse\n * @property {object} 0 The full API response.\n */\n /**\n * @callback DeleteHmacKeyCallback\n * @param {?Error} err Request error, if any.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Deletes an HMAC key.\n * Key state must be set to `INACTIVE` prior to deletion.\n * Caution: HMAC keys cannot be recovered once you delete them.\n *\n * The authenticated user must have `storage.hmacKeys.delete` permission for the project in which the key exists.\n *\n * @method HmacKey#delete\n * @param {DeleteHmacKeyOptions} [options] Configuration options.\n * @param {DeleteHmacKeyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Delete HMAC key after making the key inactive.\n * //-\n * const hmacKey = storage.hmacKey('ACCESS_ID');\n * hmacKey.setMetadata({state: 'INACTIVE'}, (err, hmacKeyMetadata) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * hmacKey.delete((err) => {\n * if (err) {\n * console.error(err);\n * return;\n * }\n * // The HMAC key is deleted.\n * });\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * const hmacKey = storage.hmacKey('ACCESS_ID');\n * hmacKey\n * .setMetadata({state: 'INACTIVE'})\n * .then(() => {\n * return hmacKey.delete();\n * });\n * ```\n */\n delete: true,\n /**\n * @callback GetHmacKeyCallback\n * @param {?Error} err Request error, if any.\n * @param {HmacKey} hmacKey this {@link HmacKey} instance.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} GetHmacKeyResponse\n * @property {HmacKey} 0 This {@link HmacKey} instance.\n * @property {object} 1 The full API response.\n */\n /**\n * @typedef {object} GetHmacKeyOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * Retrieves and populate an HMAC key's metadata, and return\n * this {@link HmacKey} instance.\n *\n * HmacKey.get() does not give the HMAC key secret, as\n * it is only returned on creation.\n *\n * The authenticated user must have `storage.hmacKeys.get` permission\n * for the project in which the key exists.\n *\n * @method HmacKey#get\n * @param {GetHmacKeyOptions} [options] Configuration options.\n * @param {GetHmacKeyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Get the HmacKey's Metadata.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .get((err, hmacKey) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * // do something with the returned HmacKey object.\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .get()\n * .then((data) => {\n * const hmacKey = data[0];\n * });\n * ```\n */\n get: true,\n /**\n * @typedef {object} GetHmacKeyMetadataOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * Retrieves and populate an HMAC key's metadata, and return\n * the HMAC key's metadata as an object.\n *\n * HmacKey.getMetadata() does not give the HMAC key secret, as\n * it is only returned on creation.\n *\n * The authenticated user must have `storage.hmacKeys.get` permission\n * for the project in which the key exists.\n *\n * @method HmacKey#getMetadata\n * @param {GetHmacKeyMetadataOptions} [options] Configuration options.\n * @param {HmacKeyMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * //-\n * // Get the HmacKey's metadata and populate to the metadata property.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .getMetadata((err, hmacKeyMetadata) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * console.log(hmacKeyMetadata);\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .getMetadata()\n * .then((data) => {\n * const hmacKeyMetadata = data[0];\n * console.log(hmacKeyMetadata);\n * });\n * ```\n */\n getMetadata: true,\n /**\n * @typedef {object} SetHmacKeyMetadata Subset of {@link HmacKeyMetadata} to update.\n * @property {string} state New state of the HmacKey. Either 'ACTIVE' or 'INACTIVE'.\n * @property {string} [etag] Include an etag from a previous get HMAC key request\n * to perform safe read-modify-write.\n */\n /**\n * @typedef {object} SetHmacKeyMetadataOptions\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * @callback HmacKeyMetadataCallback\n * @param {?Error} err Request error, if any.\n * @param {HmacKeyMetadata} metadata The updated {@link HmacKeyMetadata} object.\n * @param {object} apiResponse The full API response.\n */\n /**\n * @typedef {array} HmacKeyMetadataResponse\n * @property {HmacKeyMetadata} 0 The updated {@link HmacKeyMetadata} object.\n * @property {object} 1 The full API response.\n */\n /**\n * Updates the state of an HMAC key. See {@link SetHmacKeyMetadata} for\n * valid states.\n *\n * @method HmacKey#setMetadata\n * @param {SetHmacKeyMetadata} metadata The new metadata.\n * @param {SetHmacKeyMetadataOptions} [options] Configuration options.\n * @param {HmacKeyMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * const metadata = {\n * state: 'INACTIVE',\n * };\n *\n * storage.hmacKey('ACCESS_ID')\n * .setMetadata(metadata, (err, hmacKeyMetadata) => {\n * if (err) {\n * // The request was an error.\n * console.error(err);\n * return;\n * }\n * console.log(hmacKeyMetadata);\n * });\n *\n * //-\n * // If the callback is omitted, a promise is returned.\n * //-\n * storage.hmacKey('ACCESS_ID')\n * .setMetadata(metadata)\n * .then((data) => {\n * const hmacKeyMetadata = data[0];\n * console.log(hmacKeyMetadata);\n * });\n * ```\n */\n setMetadata: {\n reqOpts: {\n method: 'PUT',\n },\n },\n };\n const projectId = (options && options.projectId) || storage.projectId;\n super({\n parent: storage,\n id: accessId,\n baseUrl: `/projects/${projectId}/hmacKeys`,\n methods,\n });\n }\n}\nexports.HmacKey = HmacKey;\n//# sourceMappingURL=hmacKey.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Iam = exports.IAMExceptionMessages = void 0;\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst util_1 = require(\"./util\");\nvar IAMExceptionMessages;\n(function (IAMExceptionMessages) {\n IAMExceptionMessages[\"POLICY_OBJECT_REQUIRED\"] = \"A policy object is required.\";\n IAMExceptionMessages[\"PERMISSIONS_REQUIRED\"] = \"Permissions are required.\";\n})(IAMExceptionMessages = exports.IAMExceptionMessages || (exports.IAMExceptionMessages = {}));\n/**\n * Get and set IAM policies for your Cloud Storage bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/iam#short_title_iam_management| Cloud Storage IAM Management}\n * See {@link https://cloud.google.com/iam/docs/granting-changing-revoking-access| Granting, Changing, and Revoking Access}\n * See {@link https://cloud.google.com/iam/docs/understanding-roles| IAM Roles}\n *\n * @constructor Iam\n *\n * @param {Bucket} bucket The parent instance.\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n * // bucket.iam\n * ```\n */\nclass Iam {\n constructor(bucket) {\n this.request_ = bucket.request.bind(bucket);\n this.resourceId_ = 'buckets/' + bucket.getId();\n }\n /**\n * @typedef {object} GetPolicyOptions Requested options for IAM#getPolicy().\n * @property {number} [requestedPolicyVersion] The version of IAM policies to\n * request. If a policy with a condition is requested without setting\n * this, the server will return an error. This must be set to a value\n * of 3 to retrieve IAM policies containing conditions. This is to\n * prevent client code that isn't aware of IAM conditions from\n * interpreting and modifying policies incorrectly. The service might\n * return a policy with version lower than the one that was requested,\n * based on the feature syntax in the policy fetched.\n * See {@link https://cloud.google.com/iam/docs/policies#versions| IAM Policy versions}\n * @property {string} [userProject] The ID of the project which will be\n * billed for the request.\n */\n /**\n * @typedef {array} GetPolicyResponse\n * @property {Policy} 0 The policy.\n * @property {object} 1 The full API response.\n */\n /**\n * @typedef {object} Policy\n * @property {PolicyBinding[]} policy.bindings Bindings associate members with roles.\n * @property {string} [policy.etag] Etags are used to perform a read-modify-write.\n * @property {number} [policy.version] The syntax schema version of the Policy.\n * To set an IAM policy with conditional binding, this field must be set to\n * 3 or greater.\n * See {@link https://cloud.google.com/iam/docs/policies#versions| IAM Policy versions}\n */\n /**\n * @typedef {object} PolicyBinding\n * @property {string} role Role that is assigned to members.\n * @property {string[]} members Specifies the identities requesting access for the bucket.\n * @property {Expr} [condition] The condition that is associated with this binding.\n */\n /**\n * @typedef {object} Expr\n * @property {string} [title] An optional title for the expression, i.e. a\n * short string describing its purpose. This can be used e.g. in UIs\n * which allow to enter the expression.\n * @property {string} [description] An optional description of the\n * expression. This is a longer text which describes the expression,\n * e.g. when hovered over it in a UI.\n * @property {string} expression Textual representation of an expression in\n * Common Expression Language syntax. The application context of the\n * containing message determines which well-known feature set of CEL\n * is supported.The condition that is associated with this binding.\n *\n * @see [Condition] https://cloud.google.com/storage/docs/access-control/iam#conditions\n */\n /**\n * Get the IAM policy.\n *\n * @param {GetPolicyOptions} [options] Request options.\n * @param {GetPolicyCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/getIamPolicy| Buckets: setIamPolicy API Documentation}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * bucket.iam.getPolicy(\n * {requestedPolicyVersion: 3},\n * function(err, policy, apiResponse) {\n *\n * },\n * );\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.getPolicy({requestedPolicyVersion: 3})\n * .then(function(data) {\n * const policy = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/iam.js\n * region_tag:storage_view_bucket_iam_members\n * Example of retrieving a bucket's IAM policy:\n */\n getPolicy(optionsOrCallback, callback) {\n const { options, callback: cb } = util_1.normalize(optionsOrCallback, callback);\n const qs = {};\n if (options.userProject) {\n qs.userProject = options.userProject;\n }\n if (options.requestedPolicyVersion !== null &&\n options.requestedPolicyVersion !== undefined) {\n qs.optionsRequestedPolicyVersion = options.requestedPolicyVersion;\n }\n this.request_({\n uri: '/iam',\n qs,\n }, cb);\n }\n /**\n * Set the IAM policy.\n *\n * @throws {Error} If no policy is provided.\n *\n * @param {Policy} policy The policy.\n * @param {SetPolicyOptions} [options] Configuration options.\n * @param {SetPolicyCallback} callback Callback function.\n * @returns {Promise}\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/setIamPolicy| Buckets: setIamPolicy API Documentation}\n * See {@link https://cloud.google.com/iam/docs/understanding-roles| IAM Roles}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * const myPolicy = {\n * bindings: [\n * {\n * role: 'roles/storage.admin',\n * members:\n * ['serviceAccount:myotherproject@appspot.gserviceaccount.com']\n * }\n * ]\n * };\n *\n * bucket.iam.setPolicy(myPolicy, function(err, policy, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.setPolicy(myPolicy).then(function(data) {\n * const policy = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/iam.js\n * region_tag:storage_add_bucket_iam_member\n * Example of adding to a bucket's IAM policy:\n *\n * @example include:samples/iam.js\n * region_tag:storage_remove_bucket_iam_member\n * Example of removing from a bucket's IAM policy:\n */\n setPolicy(policy, optionsOrCallback, callback) {\n if (policy === null || typeof policy !== 'object') {\n throw new Error(IAMExceptionMessages.POLICY_OBJECT_REQUIRED);\n }\n const { options, callback: cb } = util_1.normalize(optionsOrCallback, callback);\n this.request_({\n method: 'PUT',\n uri: '/iam',\n json: Object.assign({\n resourceId: this.resourceId_,\n }, policy),\n qs: options,\n }, cb);\n }\n /**\n * Test a set of permissions for a resource.\n *\n * @throws {Error} If permissions are not provided.\n *\n * @param {string|string[]} permissions The permission(s) to test for.\n * @param {TestIamPermissionsOptions} [options] Configuration object.\n * @param {TestIamPermissionsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/testIamPermissions| Buckets: testIamPermissions API Documentation}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const bucket = storage.bucket('my-bucket');\n *\n * //-\n * // Test a single permission.\n * //-\n * const test = 'storage.buckets.delete';\n *\n * bucket.iam.testPermissions(test, function(err, permissions, apiResponse) {\n * console.log(permissions);\n * // {\n * // \"storage.buckets.delete\": true\n * // }\n * });\n *\n * //-\n * // Test several permissions at once.\n * //-\n * const tests = [\n * 'storage.buckets.delete',\n * 'storage.buckets.get'\n * ];\n *\n * bucket.iam.testPermissions(tests, function(err, permissions) {\n * console.log(permissions);\n * // {\n * // \"storage.buckets.delete\": false,\n * // \"storage.buckets.get\": true\n * // }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * bucket.iam.testPermissions(test).then(function(data) {\n * const permissions = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n testPermissions(permissions, optionsOrCallback, callback) {\n if (!Array.isArray(permissions) && typeof permissions !== 'string') {\n throw new Error(IAMExceptionMessages.PERMISSIONS_REQUIRED);\n }\n const { options, callback: cb } = util_1.normalize(optionsOrCallback, callback);\n const permissionsArray = arrify(permissions);\n const req = Object.assign({\n permissions: permissionsArray,\n }, options);\n this.request_({\n uri: '/iam/testPermissions',\n qs: req,\n useQuerystring: true,\n }, (err, resp) => {\n if (err) {\n cb(err, null, resp);\n return;\n }\n const availablePermissions = arrify(resp.permissions);\n const permissionsHash = permissionsArray.reduce((acc, permission) => {\n acc[permission] = availablePermissions.indexOf(permission) > -1;\n return acc;\n }, {});\n cb(null, permissionsHash, resp);\n });\n }\n}\nexports.Iam = Iam;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Iam);\n//# sourceMappingURL=iam.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar bucket_1 = require(\"./bucket\");\nObject.defineProperty(exports, \"Bucket\", { enumerable: true, get: function () { return bucket_1.Bucket; } });\nvar channel_1 = require(\"./channel\");\nObject.defineProperty(exports, \"Channel\", { enumerable: true, get: function () { return channel_1.Channel; } });\nvar file_1 = require(\"./file\");\nObject.defineProperty(exports, \"File\", { enumerable: true, get: function () { return file_1.File; } });\nvar hmacKey_1 = require(\"./hmacKey\");\nObject.defineProperty(exports, \"HmacKey\", { enumerable: true, get: function () { return hmacKey_1.HmacKey; } });\nvar iam_1 = require(\"./iam\");\nObject.defineProperty(exports, \"Iam\", { enumerable: true, get: function () { return iam_1.Iam; } });\nvar notification_1 = require(\"./notification\");\nObject.defineProperty(exports, \"Notification\", { enumerable: true, get: function () { return notification_1.Notification; } });\nvar storage_1 = require(\"./storage\");\nObject.defineProperty(exports, \"IdempotencyStrategy\", { enumerable: true, get: function () { return storage_1.IdempotencyStrategy; } });\nObject.defineProperty(exports, \"Storage\", { enumerable: true, get: function () { return storage_1.Storage; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar service_1 = require(\"./service\");\nObject.defineProperty(exports, \"Service\", { enumerable: true, get: function () { return service_1.Service; } });\nvar service_object_1 = require(\"./service-object\");\nObject.defineProperty(exports, \"ServiceObject\", { enumerable: true, get: function () { return service_object_1.ServiceObject; } });\nvar util_1 = require(\"./util\");\nObject.defineProperty(exports, \"ApiError\", { enumerable: true, get: function () { return util_1.ApiError; } });\nObject.defineProperty(exports, \"util\", { enumerable: true, get: function () { return util_1.util; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServiceObject = void 0;\n/*!\n * Copyright 2022 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst events_1 = require(\"events\");\nconst extend = require(\"extend\");\nconst util_1 = require(\"./util\");\n/**\n * ServiceObject is a base class, meant to be inherited from by a \"service\n * object,\" like a BigQuery dataset or Storage bucket.\n *\n * Most of the time, these objects share common functionality; they can be\n * created or deleted, and you can get or set their metadata.\n *\n * By inheriting from this class, a service object will be extended with these\n * shared behaviors. Note that any method can be overridden when the service\n * object requires specific behavior.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass ServiceObject extends events_1.EventEmitter {\n /*\n * @constructor\n * @alias module:common/service-object\n *\n * @private\n *\n * @param {object} config - Configuration object.\n * @param {string} config.baseUrl - The base URL to make API requests to.\n * @param {string} config.createMethod - The method which creates this object.\n * @param {string=} config.id - The identifier of the object. For example, the\n * name of a Storage bucket or Pub/Sub topic.\n * @param {object=} config.methods - A map of each method name that should be inherited.\n * @param {object} config.methods[].reqOpts - Default request options for this\n * particular method. A common use case is when `setMetadata` requires a\n * `PUT` method to override the default `PATCH`.\n * @param {object} config.parent - The parent service instance. For example, an\n * instance of Storage if the object is Bucket.\n */\n constructor(config) {\n super();\n this.metadata = {};\n this.baseUrl = config.baseUrl;\n this.parent = config.parent; // Parent class.\n this.id = config.id; // Name or ID (e.g. dataset ID, bucket name, etc).\n this.createMethod = config.createMethod;\n this.methods = config.methods || {};\n this.interceptors = [];\n this.projectId = config.projectId;\n if (config.methods) {\n // This filters the ServiceObject instance (e.g. a \"File\") to only have\n // the configured methods. We make a couple of exceptions for core-\n // functionality (\"request()\" and \"getRequestInterceptors()\")\n Object.getOwnPropertyNames(ServiceObject.prototype)\n .filter(methodName => {\n return (\n // All ServiceObjects need `request` and `getRequestInterceptors`.\n // clang-format off\n !/^request/.test(methodName) &&\n !/^getRequestInterceptors/.test(methodName) &&\n // clang-format on\n // The ServiceObject didn't redefine the method.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[methodName] ===\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ServiceObject.prototype[methodName] &&\n // This method isn't wanted.\n !config.methods[methodName]);\n })\n .forEach(methodName => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[methodName] = undefined;\n });\n }\n }\n create(optionsOrCallback, callback) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const args = [this.id];\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n if (typeof optionsOrCallback === 'object') {\n args.push(optionsOrCallback);\n }\n // Wrap the callback to return *this* instance of the object, not the\n // newly-created one.\n // tslint: disable-next-line no-any\n function onCreate(...args) {\n const [err, instance] = args;\n if (!err) {\n self.metadata = instance.metadata;\n if (self.id && instance.metadata) {\n self.id = instance.metadata.id;\n }\n args[1] = self; // replace the created `instance` with this one.\n }\n callback(...args);\n }\n args.push(onCreate);\n // eslint-disable-next-line prefer-spread\n this.createMethod.apply(null, args);\n }\n delete(optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const ignoreNotFound = options.ignoreNotFound;\n delete options.ignoreNotFound;\n const methodConfig = (typeof this.methods.delete === 'object' && this.methods.delete) || {};\n const reqOpts = extend(true, {\n method: 'DELETE',\n uri: '',\n }, methodConfig.reqOpts, {\n qs: options,\n });\n // The `request` method may have been overridden to hold any special\n // behavior. Ensure we call the original `request` method.\n ServiceObject.prototype.request.call(this, reqOpts, (err, ...args) => {\n if (err) {\n if (err.code === 404 && ignoreNotFound) {\n err = null;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback(err, ...args);\n });\n }\n exists(optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n this.get(options, err => {\n if (err) {\n if (err.code === 404) {\n callback(null, false);\n }\n else {\n callback(err);\n }\n return;\n }\n callback(null, true);\n });\n }\n get(optionsOrCallback, cb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const [opts, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const options = Object.assign({}, opts);\n const autoCreate = options.autoCreate && typeof this.create === 'function';\n delete options.autoCreate;\n function onCreate(err, instance, apiResponse) {\n if (err) {\n if (err.code === 409) {\n self.get(options, callback);\n return;\n }\n callback(err, null, apiResponse);\n return;\n }\n callback(null, instance, apiResponse);\n }\n this.getMetadata(options, (err, metadata) => {\n if (err) {\n if (err.code === 404 && autoCreate) {\n const args = [];\n if (Object.keys(options).length > 0) {\n args.push(options);\n }\n args.push(onCreate);\n self.create(...args);\n return;\n }\n callback(err, null, metadata);\n return;\n }\n callback(null, self, metadata);\n });\n }\n getMetadata(optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const methodConfig = (typeof this.methods.getMetadata === 'object' &&\n this.methods.getMetadata) ||\n {};\n const reqOpts = extend(true, {\n uri: '',\n }, methodConfig.reqOpts, {\n qs: options,\n });\n // The `request` method may have been overridden to hold any special\n // behavior. Ensure we call the original `request` method.\n ServiceObject.prototype.request.call(this, reqOpts, (err, body, res) => {\n this.metadata = body;\n callback(err, this.metadata, res);\n });\n }\n /**\n * Return the user's custom request interceptors.\n */\n getRequestInterceptors() {\n // Interceptors should be returned in the order they were assigned.\n const localInterceptors = this.interceptors\n .filter(interceptor => typeof interceptor.request === 'function')\n .map(interceptor => interceptor.request);\n return this.parent.getRequestInterceptors().concat(localInterceptors);\n }\n setMetadata(metadata, optionsOrCallback, cb) {\n const [options, callback] = util_1.util.maybeOptionsOrCallback(optionsOrCallback, cb);\n const methodConfig = (typeof this.methods.setMetadata === 'object' &&\n this.methods.setMetadata) ||\n {};\n const reqOpts = extend(true, {}, {\n method: 'PATCH',\n uri: '',\n }, methodConfig.reqOpts, {\n json: metadata,\n qs: options,\n });\n // The `request` method may have been overridden to hold any special\n // behavior. Ensure we call the original `request` method.\n ServiceObject.prototype.request.call(this, reqOpts, (err, body, res) => {\n this.metadata = body;\n callback(err, this.metadata, res);\n });\n }\n request_(reqOpts, callback) {\n reqOpts = extend(true, {}, reqOpts);\n if (this.projectId) {\n reqOpts.projectId = this.projectId;\n }\n const isAbsoluteUrl = reqOpts.uri.indexOf('http') === 0;\n const uriComponents = [this.baseUrl, this.id || '', reqOpts.uri];\n if (isAbsoluteUrl) {\n uriComponents.splice(0, uriComponents.indexOf(reqOpts.uri));\n }\n reqOpts.uri = uriComponents\n .filter(x => x.trim()) // Limit to non-empty strings.\n .map(uriComponent => {\n const trimSlashesRegex = /^\\/*|\\/*$/g;\n return uriComponent.replace(trimSlashesRegex, '');\n })\n .join('/');\n const childInterceptors = arrify(reqOpts.interceptors_);\n const localInterceptors = [].slice.call(this.interceptors);\n reqOpts.interceptors_ = childInterceptors.concat(localInterceptors);\n if (reqOpts.shouldReturnStream) {\n return this.parent.requestStream(reqOpts);\n }\n this.parent.request(reqOpts, callback);\n }\n request(reqOpts, callback) {\n this.request_(reqOpts, callback);\n }\n /**\n * Make an authenticated API request.\n *\n * @param {object} reqOpts - Request options that are passed to `request`.\n * @param {string} reqOpts.uri - A URI relative to the baseUrl.\n */\n requestStream(reqOpts) {\n const opts = extend(true, reqOpts, { shouldReturnStream: true });\n return this.request_(opts);\n }\n}\nexports.ServiceObject = ServiceObject;\npromisify_1.promisifyAll(ServiceObject, { exclude: ['getRequestInterceptors'] });\n//# sourceMappingURL=service-object.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Service = void 0;\n/*!\n * Copyright 2022 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst arrify = require(\"arrify\");\nconst extend = require(\"extend\");\nconst uuid = require(\"uuid\");\nconst util_1 = require(\"./util\");\nconst PROJECT_ID_TOKEN = '{{projectId}}';\nclass Service {\n /**\n * Service is a base class, meant to be inherited from by a \"service,\" like\n * BigQuery or Storage.\n *\n * This handles making authenticated requests by exposing a `makeReq_`\n * function.\n *\n * @constructor\n * @alias module:common/service\n *\n * @param {object} config - Configuration object.\n * @param {string} config.baseUrl - The base URL to make API requests to.\n * @param {string[]} config.scopes - The scopes required for the request.\n * @param {object=} options - [Configuration object](#/docs).\n */\n constructor(config, options = {}) {\n this.baseUrl = config.baseUrl;\n this.apiEndpoint = config.apiEndpoint;\n this.timeout = options.timeout;\n this.globalInterceptors = arrify(options.interceptors_);\n this.interceptors = [];\n this.packageJson = config.packageJson;\n this.projectId = options.projectId || PROJECT_ID_TOKEN;\n this.projectIdRequired = config.projectIdRequired !== false;\n this.providedUserAgent = options.userAgent;\n const reqCfg = extend({}, config, {\n projectIdRequired: this.projectIdRequired,\n projectId: this.projectId,\n authClient: options.authClient,\n credentials: options.credentials,\n keyFile: options.keyFilename,\n email: options.email,\n token: options.token,\n });\n this.makeAuthenticatedRequest =\n util_1.util.makeAuthenticatedRequestFactory(reqCfg);\n this.authClient = this.makeAuthenticatedRequest.authClient;\n this.getCredentials = this.makeAuthenticatedRequest.getCredentials;\n const isCloudFunctionEnv = !!process.env.FUNCTION_NAME;\n if (isCloudFunctionEnv) {\n this.interceptors.push({\n request(reqOpts) {\n reqOpts.forever = false;\n return reqOpts;\n },\n });\n }\n }\n /**\n * Return the user's custom request interceptors.\n */\n getRequestInterceptors() {\n // Interceptors should be returned in the order they were assigned.\n return [].slice\n .call(this.globalInterceptors)\n .concat(this.interceptors)\n .filter(interceptor => typeof interceptor.request === 'function')\n .map(interceptor => interceptor.request);\n }\n getProjectId(callback) {\n if (!callback) {\n return this.getProjectIdAsync();\n }\n this.getProjectIdAsync().then(p => callback(null, p), callback);\n }\n async getProjectIdAsync() {\n const projectId = await this.authClient.getProjectId();\n if (this.projectId === PROJECT_ID_TOKEN && projectId) {\n this.projectId = projectId;\n }\n return this.projectId;\n }\n request_(reqOpts, callback) {\n reqOpts = extend(true, {}, reqOpts, { timeout: this.timeout });\n const isAbsoluteUrl = reqOpts.uri.indexOf('http') === 0;\n const uriComponents = [this.baseUrl];\n if (this.projectIdRequired) {\n if (reqOpts.projectId) {\n uriComponents.push('projects');\n uriComponents.push(reqOpts.projectId);\n }\n else {\n uriComponents.push('projects');\n uriComponents.push(this.projectId);\n }\n }\n uriComponents.push(reqOpts.uri);\n if (isAbsoluteUrl) {\n uriComponents.splice(0, uriComponents.indexOf(reqOpts.uri));\n }\n reqOpts.uri = uriComponents\n .map(uriComponent => {\n const trimSlashesRegex = /^\\/*|\\/*$/g;\n return uriComponent.replace(trimSlashesRegex, '');\n })\n .join('/')\n // Some URIs have colon separators.\n // Bad: https://.../projects/:list\n // Good: https://.../projects:list\n .replace(/\\/:/g, ':');\n const requestInterceptors = this.getRequestInterceptors();\n arrify(reqOpts.interceptors_).forEach(interceptor => {\n if (typeof interceptor.request === 'function') {\n requestInterceptors.push(interceptor.request);\n }\n });\n requestInterceptors.forEach(requestInterceptor => {\n reqOpts = requestInterceptor(reqOpts);\n });\n delete reqOpts.interceptors_;\n const pkg = this.packageJson;\n let userAgent = util_1.util.getUserAgentFromPackageJson(pkg);\n if (this.providedUserAgent) {\n userAgent = `${this.providedUserAgent} ${userAgent}`;\n }\n reqOpts.headers = extend({}, reqOpts.headers, {\n 'User-Agent': userAgent,\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${pkg.version} gccl-invocation-id/${uuid.v4()}`,\n });\n if (reqOpts.shouldReturnStream) {\n return this.makeAuthenticatedRequest(reqOpts);\n }\n else {\n this.makeAuthenticatedRequest(reqOpts, callback);\n }\n }\n /**\n * Make an authenticated API request.\n *\n * @param {object} reqOpts - Request options that are passed to `request`.\n * @param {string} reqOpts.uri - A URI relative to the baseUrl.\n * @param {function} callback - The callback function passed to `request`.\n */\n request(reqOpts, callback) {\n Service.prototype.request_.call(this, reqOpts, callback);\n }\n /**\n * Make an authenticated API request.\n *\n * @param {object} reqOpts - Request options that are passed to `request`.\n * @param {string} reqOpts.uri - A URI relative to the baseUrl.\n */\n requestStream(reqOpts) {\n const opts = extend(true, reqOpts, { shouldReturnStream: true });\n return Service.prototype.request_.call(this, opts);\n }\n}\nexports.Service = Service;\n//# sourceMappingURL=service.js.map","\"use strict\";\n/*!\n * Copyright 2022 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.util = exports.Util = exports.PartialFailureError = exports.ApiError = void 0;\n/*!\n * @module common/util\n */\nconst projectify_1 = require(\"@google-cloud/projectify\");\nconst ent = require(\"ent\");\nconst extend = require(\"extend\");\nconst google_auth_library_1 = require(\"google-auth-library\");\nconst retryRequest = require(\"retry-request\");\nconst stream_1 = require(\"stream\");\nconst teeny_request_1 = require(\"teeny-request\");\nconst uuid = require(\"uuid\");\nconst packageJson = require('../../../package.json');\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst duplexify = require('duplexify');\nconst requestDefaults = {\n timeout: 60000,\n gzip: true,\n forever: true,\n pool: {\n maxSockets: Infinity,\n },\n};\n/**\n * Default behavior: Automatically retry retriable server errors.\n *\n * @const {boolean}\n * @private\n */\nconst AUTO_RETRY_DEFAULT = true;\n/**\n * Default behavior: Only attempt to retry retriable errors 3 times.\n *\n * @const {number}\n * @private\n */\nconst MAX_RETRY_DEFAULT = 3;\n/**\n * Custom error type for API errors.\n *\n * @param {object} errorBody - Error object.\n */\nclass ApiError extends Error {\n constructor(errorBodyOrMessage) {\n super();\n if (typeof errorBodyOrMessage !== 'object') {\n this.message = errorBodyOrMessage || '';\n return;\n }\n const errorBody = errorBodyOrMessage;\n this.code = errorBody.code;\n this.errors = errorBody.errors;\n this.response = errorBody.response;\n try {\n this.errors = JSON.parse(this.response.body).error.errors;\n }\n catch (e) {\n this.errors = errorBody.errors;\n }\n this.message = ApiError.createMultiErrorMessage(errorBody, this.errors);\n Error.captureStackTrace(this);\n }\n /**\n * Pieces together an error message by combining all unique error messages\n * returned from a single GoogleError\n *\n * @private\n *\n * @param {GoogleErrorBody} err The original error.\n * @param {GoogleInnerError[]} [errors] Inner errors, if any.\n * @returns {string}\n */\n static createMultiErrorMessage(err, errors) {\n const messages = new Set();\n if (err.message) {\n messages.add(err.message);\n }\n if (errors && errors.length) {\n errors.forEach(({ message }) => messages.add(message));\n }\n else if (err.response && err.response.body) {\n messages.add(ent.decode(err.response.body.toString()));\n }\n else if (!err.message) {\n messages.add('A failure occurred during this request.');\n }\n let messageArr = Array.from(messages);\n if (messageArr.length > 1) {\n messageArr = messageArr.map((message, i) => ` ${i + 1}. ${message}`);\n messageArr.unshift('Multiple errors occurred during the request. Please see the `errors` array for complete details.\\n');\n messageArr.push('\\n');\n }\n return messageArr.join('\\n');\n }\n}\nexports.ApiError = ApiError;\n/**\n * Custom error type for partial errors returned from the API.\n *\n * @param {object} b - Error object.\n */\nclass PartialFailureError extends Error {\n constructor(b) {\n super();\n const errorObject = b;\n this.errors = errorObject.errors;\n this.name = 'PartialFailureError';\n this.response = errorObject.response;\n this.message = ApiError.createMultiErrorMessage(errorObject, this.errors);\n }\n}\nexports.PartialFailureError = PartialFailureError;\nclass Util {\n constructor() {\n this.ApiError = ApiError;\n this.PartialFailureError = PartialFailureError;\n }\n /**\n * No op.\n *\n * @example\n * function doSomething(callback) {\n * callback = callback || noop;\n * }\n */\n noop() { }\n /**\n * Uniformly process an API response.\n *\n * @param {*} err - Error value.\n * @param {*} resp - Response value.\n * @param {*} body - Body value.\n * @param {function} callback - The callback function.\n */\n handleResp(err, resp, body, callback) {\n callback = callback || util.noop;\n const parsedResp = extend(true, { err: err || null }, resp && util.parseHttpRespMessage(resp), body && util.parseHttpRespBody(body));\n // Assign the parsed body to resp.body, even if { json: false } was passed\n // as a request option.\n // We assume that nobody uses the previously unparsed value of resp.body.\n if (!parsedResp.err && resp && typeof parsedResp.body === 'object') {\n parsedResp.resp.body = parsedResp.body;\n }\n if (parsedResp.err && resp) {\n parsedResp.err.response = resp;\n }\n callback(parsedResp.err, parsedResp.body, parsedResp.resp);\n }\n /**\n * Sniff an incoming HTTP response message for errors.\n *\n * @param {object} httpRespMessage - An incoming HTTP response message from `request`.\n * @return {object} parsedHttpRespMessage - The parsed response.\n * @param {?error} parsedHttpRespMessage.err - An error detected.\n * @param {object} parsedHttpRespMessage.resp - The original response object.\n */\n parseHttpRespMessage(httpRespMessage) {\n const parsedHttpRespMessage = {\n resp: httpRespMessage,\n };\n if (httpRespMessage.statusCode < 200 || httpRespMessage.statusCode > 299) {\n // Unknown error. Format according to ApiError standard.\n parsedHttpRespMessage.err = new ApiError({\n errors: new Array(),\n code: httpRespMessage.statusCode,\n message: httpRespMessage.statusMessage,\n response: httpRespMessage,\n });\n }\n return parsedHttpRespMessage;\n }\n /**\n * Parse the response body from an HTTP request.\n *\n * @param {object} body - The response body.\n * @return {object} parsedHttpRespMessage - The parsed response.\n * @param {?error} parsedHttpRespMessage.err - An error detected.\n * @param {object} parsedHttpRespMessage.body - The original body value provided\n * will try to be JSON.parse'd. If it's successful, the parsed value will\n * be returned here, otherwise the original value and an error will be returned.\n */\n parseHttpRespBody(body) {\n const parsedHttpRespBody = {\n body,\n };\n if (typeof body === 'string') {\n try {\n parsedHttpRespBody.body = JSON.parse(body);\n }\n catch (err) {\n parsedHttpRespBody.body = body;\n }\n }\n if (parsedHttpRespBody.body && parsedHttpRespBody.body.error) {\n // Error from JSON API.\n parsedHttpRespBody.err = new ApiError(parsedHttpRespBody.body.error);\n }\n return parsedHttpRespBody;\n }\n /**\n * Take a Duplexify stream, fetch an authenticated connection header, and\n * create an outgoing writable stream.\n *\n * @param {Duplexify} dup - Duplexify stream.\n * @param {object} options - Configuration object.\n * @param {module:common/connection} options.connection - A connection instance used to get a token with and send the request through.\n * @param {object} options.metadata - Metadata to send at the head of the request.\n * @param {object} options.request - Request object, in the format of a standard Node.js http.request() object.\n * @param {string=} options.request.method - Default: \"POST\".\n * @param {string=} options.request.qs.uploadType - Default: \"multipart\".\n * @param {string=} options.streamContentType - Default: \"application/octet-stream\".\n * @param {function} onComplete - Callback, executed after the writable Request stream has completed.\n */\n makeWritableStream(dup, options, onComplete) {\n onComplete = onComplete || util.noop;\n const writeStream = new ProgressStream();\n writeStream.on('progress', evt => dup.emit('progress', evt));\n dup.setWritable(writeStream);\n const defaultReqOpts = {\n method: 'POST',\n qs: {\n uploadType: 'multipart',\n },\n timeout: 0,\n maxRetries: 0,\n };\n const metadata = options.metadata || {};\n const reqOpts = extend(true, defaultReqOpts, options.request, {\n multipart: [\n {\n 'Content-Type': 'application/json',\n body: JSON.stringify(metadata),\n },\n {\n 'Content-Type': metadata.contentType || 'application/octet-stream',\n body: writeStream,\n },\n ],\n });\n options.makeAuthenticatedRequest(reqOpts, {\n onAuthenticated(err, authenticatedReqOpts) {\n if (err) {\n dup.destroy(err);\n return;\n }\n requestDefaults.headers = util._getDefaultHeaders();\n const request = teeny_request_1.teenyRequest.defaults(requestDefaults);\n request(authenticatedReqOpts, (err, resp, body) => {\n util.handleResp(err, resp, body, (err, data) => {\n if (err) {\n dup.destroy(err);\n return;\n }\n dup.emit('response', resp);\n onComplete(data);\n });\n });\n },\n });\n }\n /**\n * Returns true if the API request should be retried, given the error that was\n * given the first time the request was attempted. This is used for rate limit\n * related errors as well as intermittent server errors.\n *\n * @param {error} err - The API error to check if it is appropriate to retry.\n * @return {boolean} True if the API request should be retried, false otherwise.\n */\n shouldRetryRequest(err) {\n if (err) {\n if ([408, 429, 500, 502, 503, 504].indexOf(err.code) !== -1) {\n return true;\n }\n if (err.errors) {\n for (const e of err.errors) {\n const reason = e.reason;\n if (reason === 'rateLimitExceeded') {\n return true;\n }\n if (reason === 'userRateLimitExceeded') {\n return true;\n }\n if (reason && reason.includes('EAI_AGAIN')) {\n return true;\n }\n }\n }\n }\n return false;\n }\n /**\n * Get a function for making authenticated requests.\n *\n * @param {object} config - Configuration object.\n * @param {boolean=} config.autoRetry - Automatically retry requests if the\n * response is related to rate limits or certain intermittent server\n * errors. We will exponentially backoff subsequent requests by default.\n * (default: true)\n * @param {object=} config.credentials - Credentials object.\n * @param {boolean=} config.customEndpoint - If true, just return the provided request options. Default: false.\n * @param {boolean=} config.useAuthWithCustomEndpoint - If true, will authenticate when using a custom endpoint. Default: false.\n * @param {string=} config.email - Account email address, required for PEM/P12 usage.\n * @param {number=} config.maxRetries - Maximum number of automatic retries attempted before returning the error. (default: 3)\n * @param {string=} config.keyFile - Path to a .json, .pem, or .p12 keyfile.\n * @param {array} config.scopes - Array of scopes required for the API.\n */\n makeAuthenticatedRequestFactory(config) {\n const googleAutoAuthConfig = extend({}, config);\n if (googleAutoAuthConfig.projectId === '{{projectId}}') {\n delete googleAutoAuthConfig.projectId;\n }\n let authClient;\n if (googleAutoAuthConfig.authClient instanceof google_auth_library_1.GoogleAuth) {\n // Use an existing `GoogleAuth`\n authClient = googleAutoAuthConfig.authClient;\n }\n else {\n // Pass an `AuthClient` to `GoogleAuth`, if available\n const config = {\n ...googleAutoAuthConfig,\n authClient: googleAutoAuthConfig.authClient,\n };\n authClient = new google_auth_library_1.GoogleAuth(config);\n }\n function makeAuthenticatedRequest(reqOpts, optionsOrCallback) {\n let stream;\n let projectId;\n const reqConfig = extend({}, config);\n let activeRequest_;\n if (!optionsOrCallback) {\n stream = duplexify();\n reqConfig.stream = stream;\n }\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : undefined;\n const callback = typeof optionsOrCallback === 'function' ? optionsOrCallback : undefined;\n const onAuthenticated = (err, authenticatedReqOpts) => {\n const authLibraryError = err;\n const autoAuthFailed = err &&\n err.message.indexOf('Could not load the default credentials') > -1;\n if (autoAuthFailed) {\n // Even though authentication failed, the API might not actually\n // care.\n authenticatedReqOpts = reqOpts;\n }\n if (!err || autoAuthFailed) {\n try {\n authenticatedReqOpts = util.decorateRequest(authenticatedReqOpts, projectId);\n err = null;\n }\n catch (e) {\n // A projectId was required, but we don't have one.\n // Re-use the \"Could not load the default credentials error\" if\n // auto auth failed.\n err = err || e;\n }\n }\n if (err) {\n if (stream) {\n stream.destroy(err);\n }\n else {\n const fn = options && options.onAuthenticated\n ? options.onAuthenticated\n : callback;\n fn(err);\n }\n return;\n }\n if (options && options.onAuthenticated) {\n options.onAuthenticated(null, authenticatedReqOpts);\n }\n else {\n activeRequest_ = util.makeRequest(authenticatedReqOpts, reqConfig, (apiResponseError, ...params) => {\n if (apiResponseError &&\n apiResponseError.code === 401 &&\n authLibraryError) {\n // Re-use the \"Could not load the default credentials error\" if\n // the API request failed due to missing credentials.\n apiResponseError = authLibraryError;\n }\n callback(apiResponseError, ...params);\n });\n }\n };\n Promise.all([\n config.projectId && config.projectId !== '{{projectId}}'\n ? // The user provided a project ID. We don't need to check with the\n // auth client, it could be incorrect.\n new Promise(resolve => resolve(config.projectId))\n : authClient.getProjectId(),\n reqConfig.customEndpoint && reqConfig.useAuthWithCustomEndpoint !== true\n ? // Using a custom API override. Do not use `google-auth-library` for\n // authentication. (ex: connecting to a local Datastore server)\n new Promise(resolve => resolve(reqOpts))\n : authClient.authorizeRequest(reqOpts),\n ])\n .then(([_projectId, authorizedReqOpts]) => {\n projectId = _projectId;\n onAuthenticated(null, authorizedReqOpts);\n })\n .catch(onAuthenticated);\n if (stream) {\n return stream;\n }\n return {\n abort() {\n setImmediate(() => {\n if (activeRequest_) {\n activeRequest_.abort();\n activeRequest_ = null;\n }\n });\n },\n };\n }\n const mar = makeAuthenticatedRequest;\n mar.getCredentials = authClient.getCredentials.bind(authClient);\n mar.authClient = authClient;\n return mar;\n }\n /**\n * Make a request through the `retryRequest` module with built-in error\n * handling and exponential back off.\n *\n * @param {object} reqOpts - Request options in the format `request` expects.\n * @param {object=} config - Configuration object.\n * @param {boolean=} config.autoRetry - Automatically retry requests if the\n * response is related to rate limits or certain intermittent server\n * errors. We will exponentially backoff subsequent requests by default.\n * (default: true)\n * @param {number=} config.maxRetries - Maximum number of automatic retries\n * attempted before returning the error. (default: 3)\n * @param {object=} config.request - HTTP module for request calls.\n * @param {function} callback - The callback function.\n */\n makeRequest(reqOpts, config, callback) {\n var _a, _b, _c, _d, _e, _f, _g;\n let autoRetryValue = AUTO_RETRY_DEFAULT;\n if (config.autoRetry !== undefined &&\n ((_a = config.retryOptions) === null || _a === void 0 ? void 0 : _a.autoRetry) !== undefined) {\n throw new ApiError('autoRetry is deprecated. Use retryOptions.autoRetry instead.');\n }\n else if (config.autoRetry !== undefined) {\n autoRetryValue = config.autoRetry;\n }\n else if (((_b = config.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry) !== undefined) {\n autoRetryValue = config.retryOptions.autoRetry;\n }\n let maxRetryValue = MAX_RETRY_DEFAULT;\n if (config.maxRetries && ((_c = config.retryOptions) === null || _c === void 0 ? void 0 : _c.maxRetries)) {\n throw new ApiError('maxRetries is deprecated. Use retryOptions.maxRetries instead.');\n }\n else if (config.maxRetries) {\n maxRetryValue = config.maxRetries;\n }\n else if ((_d = config.retryOptions) === null || _d === void 0 ? void 0 : _d.maxRetries) {\n maxRetryValue = config.retryOptions.maxRetries;\n }\n requestDefaults.headers = this._getDefaultHeaders();\n const options = {\n request: teeny_request_1.teenyRequest.defaults(requestDefaults),\n retries: autoRetryValue !== false ? maxRetryValue : 0,\n noResponseRetries: autoRetryValue !== false ? maxRetryValue : 0,\n shouldRetryFn(httpRespMessage) {\n var _a, _b;\n const err = util.parseHttpRespMessage(httpRespMessage).err;\n if ((_a = config.retryOptions) === null || _a === void 0 ? void 0 : _a.retryableErrorFn) {\n return err && ((_b = config.retryOptions) === null || _b === void 0 ? void 0 : _b.retryableErrorFn(err));\n }\n return err && util.shouldRetryRequest(err);\n },\n maxRetryDelay: (_e = config.retryOptions) === null || _e === void 0 ? void 0 : _e.maxRetryDelay,\n retryDelayMultiplier: (_f = config.retryOptions) === null || _f === void 0 ? void 0 : _f.retryDelayMultiplier,\n totalTimeout: (_g = config.retryOptions) === null || _g === void 0 ? void 0 : _g.totalTimeout,\n };\n if (typeof reqOpts.maxRetries === 'number') {\n options.retries = reqOpts.maxRetries;\n }\n if (!config.stream) {\n return retryRequest(reqOpts, options, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err, response, body) => {\n util.handleResp(err, response, body, callback);\n });\n }\n const dup = config.stream;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let requestStream;\n const isGetRequest = (reqOpts.method || 'GET').toUpperCase() === 'GET';\n if (isGetRequest) {\n requestStream = retryRequest(reqOpts, options);\n dup.setReadable(requestStream);\n }\n else {\n // Streaming writable HTTP requests cannot be retried.\n requestStream = options.request(reqOpts);\n dup.setWritable(requestStream);\n }\n // Replay the Request events back to the stream.\n requestStream\n .on('error', dup.destroy.bind(dup))\n .on('response', dup.emit.bind(dup, 'response'))\n .on('complete', dup.emit.bind(dup, 'complete'));\n dup.abort = requestStream.abort;\n return dup;\n }\n /**\n * Decorate the options about to be made in a request.\n *\n * @param {object} reqOpts - The options to be passed to `request`.\n * @param {string} projectId - The project ID.\n * @return {object} reqOpts - The decorated reqOpts.\n */\n decorateRequest(reqOpts, projectId) {\n delete reqOpts.autoPaginate;\n delete reqOpts.autoPaginateVal;\n delete reqOpts.objectMode;\n if (reqOpts.qs !== null && typeof reqOpts.qs === 'object') {\n delete reqOpts.qs.autoPaginate;\n delete reqOpts.qs.autoPaginateVal;\n reqOpts.qs = projectify_1.replaceProjectIdToken(reqOpts.qs, projectId);\n }\n if (Array.isArray(reqOpts.multipart)) {\n reqOpts.multipart = reqOpts.multipart.map(part => {\n return projectify_1.replaceProjectIdToken(part, projectId);\n });\n }\n if (reqOpts.json !== null && typeof reqOpts.json === 'object') {\n delete reqOpts.json.autoPaginate;\n delete reqOpts.json.autoPaginateVal;\n reqOpts.json = projectify_1.replaceProjectIdToken(reqOpts.json, projectId);\n }\n reqOpts.uri = projectify_1.replaceProjectIdToken(reqOpts.uri, projectId);\n return reqOpts;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n isCustomType(unknown, module) {\n function getConstructorName(obj) {\n return obj.constructor && obj.constructor.name.toLowerCase();\n }\n const moduleNameParts = module.split('/');\n const parentModuleName = moduleNameParts[0] && moduleNameParts[0].toLowerCase();\n const subModuleName = moduleNameParts[1] && moduleNameParts[1].toLowerCase();\n if (subModuleName && getConstructorName(unknown) !== subModuleName) {\n return false;\n }\n let walkingModule = unknown;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (getConstructorName(walkingModule) === parentModuleName) {\n return true;\n }\n walkingModule = walkingModule.parent;\n if (!walkingModule) {\n return false;\n }\n }\n }\n /**\n * Create a properly-formatted User-Agent string from a package.json file.\n *\n * @param {object} packageJson - A module's package.json file.\n * @return {string} userAgent - The formatted User-Agent string.\n */\n getUserAgentFromPackageJson(packageJson) {\n const hyphenatedPackageName = packageJson.name\n .replace('@google-cloud', 'gcloud-node') // For legacy purposes.\n .replace('/', '-'); // For UA spec-compliance purposes.\n return hyphenatedPackageName + '/' + packageJson.version;\n }\n /**\n * Given two parameters, figure out if this is either:\n * - Just a callback function\n * - An options object, and then a callback function\n * @param optionsOrCallback An options object or callback.\n * @param cb A potentially undefined callback.\n */\n maybeOptionsOrCallback(optionsOrCallback, cb) {\n return typeof optionsOrCallback === 'function'\n ? [{}, optionsOrCallback]\n : [optionsOrCallback, cb];\n }\n _getDefaultHeaders() {\n return {\n 'User-Agent': util.getUserAgentFromPackageJson(packageJson),\n 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${packageJson.version} gccl-invocation-id/${uuid.v4()}`,\n };\n }\n}\nexports.Util = Util;\n/**\n * Basic Passthrough Stream that records the number of bytes read\n * every time the cursor is moved.\n */\nclass ProgressStream extends stream_1.Transform {\n constructor() {\n super(...arguments);\n this.bytesRead = 0;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _transform(chunk, encoding, callback) {\n this.bytesRead += chunk.length;\n this.emit('progress', { bytesWritten: this.bytesRead, contentLength: '*' });\n this.push(chunk);\n callback();\n }\n}\nconst util = new Util();\nexports.util = util;\n//# sourceMappingURL=util.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Notification = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\n/**\n * The API-formatted resource description of the notification.\n *\n * Note: This is not guaranteed to be up-to-date when accessed. To get the\n * latest record, call the `getMetadata()` method.\n *\n * @name Notification#metadata\n * @type {object}\n */\n/**\n * A Notification object is created from your {@link Bucket} object using\n * {@link Bucket#notification}. Use it to interact with Cloud Pub/Sub\n * notifications.\n *\n * See {@link https://cloud.google.com/storage/docs/pubsub-notifications| Cloud Pub/Sub Notifications for Google Cloud Storage}\n *\n * @class\n * @hideconstructor\n *\n * @param {Bucket} bucket The bucket instance this notification is attached to.\n * @param {string} id The ID of the notification.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n *\n * const notification = myBucket.notification('1');\n * ```\n */\nclass Notification extends nodejs_common_1.ServiceObject {\n constructor(bucket, id) {\n const methods = {\n /**\n * Creates a notification subscription for the bucket.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/insert| Notifications: insert}\n * @method Notification#create\n *\n * @param {Topic|string} topic The Cloud PubSub topic to which this\n * subscription publishes. If the project ID is omitted, the current\n * project ID will be used.\n *\n * Acceptable formats are:\n * - `projects/grape-spaceship-123/topics/my-topic`\n *\n * - `my-topic`\n * @param {CreateNotificationRequest} [options] Metadata to set for\n * the notification.\n * @param {CreateNotificationCallback} [callback] Callback function.\n * @returns {Promise}\n * @throws {Error} If a valid topic is not provided.\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.create(function(err, notification, apiResponse) {\n * if (!err) {\n * // The notification was created successfully.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.create().then(function(data) {\n * const notification = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n create: true,\n /**\n * @typedef {array} NotificationExistsResponse\n * @property {boolean} 0 Whether the notification exists or not.\n */\n /**\n * @callback NotificationExistsCallback\n * @param {?Error} err Request error, if any.\n * @param {boolean} exists Whether the notification exists or not.\n */\n /**\n * Check if the notification exists.\n *\n * @method Notification#exists\n * @param {NotificationExistsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.exists(function(err, exists) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.exists().then(function(data) {\n * const exists = data[0];\n * });\n * ```\n */\n exists: true,\n };\n super({\n parent: bucket,\n baseUrl: '/notificationConfigs',\n id: id.toString(),\n createMethod: bucket.createNotification.bind(bucket),\n methods,\n });\n }\n /**\n * @typedef {array} DeleteNotificationResponse\n * @property {object} 0 The full API response.\n */\n /**\n * Permanently deletes a notification subscription.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/delete| Notifications: delete API Documentation}\n *\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {DeleteNotificationCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.delete(function(err, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.delete().then(function(data) {\n * const apiResponse = data[0];\n * });\n *\n * ```\n * @example include:samples/deleteNotification.js\n * region_tag:storage_delete_bucket_notification\n * Another example:\n */\n delete(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n this.request({\n method: 'DELETE',\n uri: '',\n qs: options,\n }, callback || nodejs_common_1.util.noop);\n }\n /**\n * Get a notification and its metadata if it exists.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/get| Notifications: get API Documentation}\n *\n * @param {object} [options] Configuration options.\n * See {@link Bucket#createNotification} for create options.\n * @param {boolean} [options.autoCreate] Automatically create the object if\n * it does not exist. Default: `false`.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetNotificationCallback} [callback] Callback function.\n * @return {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.get(function(err, notification, apiResponse) {\n * // `notification.metadata` has been populated.\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.get().then(function(data) {\n * const notification = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n get(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n const autoCreate = options.autoCreate;\n delete options.autoCreate;\n const onCreate = (err, notification, apiResponse) => {\n if (err) {\n if (err.code === 409) {\n this.get(options, callback);\n return;\n }\n callback(err, null, apiResponse);\n return;\n }\n callback(null, notification, apiResponse);\n };\n this.getMetadata(options, (err, metadata) => {\n if (err) {\n if (err.code === 404 && autoCreate) {\n const args = [];\n if (Object.keys(options).length > 0) {\n args.push(options);\n }\n args.push(onCreate);\n // eslint-disable-next-line\n this.create.apply(this, args);\n return;\n }\n callback(err, null, metadata);\n return;\n }\n callback(null, this, metadata);\n });\n }\n /**\n * Get the notification's metadata.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/notifications/get| Notifications: get API Documentation}\n *\n * @param {object} [options] Configuration options.\n * @param {string} [options.userProject] The ID of the project which will be\n * billed for the request.\n * @param {GetNotificationMetadataCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const myBucket = storage.bucket('my-bucket');\n * const notification = myBucket.notification('1');\n *\n * notification.getMetadata(function(err, metadata, apiResponse) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * notification.getMetadata().then(function(data) {\n * const metadata = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/getMetadataNotifications.js\n * region_tag:storage_print_pubsub_bucket_notification\n * Another example:\n */\n getMetadata(optionsOrCallback, callback) {\n const options = typeof optionsOrCallback === 'object' ? optionsOrCallback : {};\n callback =\n typeof optionsOrCallback === 'function' ? optionsOrCallback : callback;\n this.request({\n uri: '',\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n this.metadata = resp;\n callback(null, this.metadata, resp);\n });\n }\n}\nexports.Notification = Notification;\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Notification);\n//# sourceMappingURL=notification.js.map","\"use strict\";\n// Copyright 2020 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SigningError = exports.URLSigner = exports.PATH_STYLED_HOST = exports.SignerExceptionMessages = void 0;\nconst crypto = require(\"crypto\");\nconst url = require(\"url\");\nconst storage_1 = require(\"./storage\");\nconst util_1 = require(\"./util\");\nvar SignerExceptionMessages;\n(function (SignerExceptionMessages) {\n SignerExceptionMessages[\"ACCESSIBLE_DATE_INVALID\"] = \"The accessible at date provided was invalid.\";\n SignerExceptionMessages[\"EXPIRATION_BEFORE_ACCESSIBLE_DATE\"] = \"An expiration date cannot be before accessible date.\";\n SignerExceptionMessages[\"X_GOOG_CONTENT_SHA256\"] = \"The header X-Goog-Content-SHA256 must be a hexadecimal string.\";\n})(SignerExceptionMessages = exports.SignerExceptionMessages || (exports.SignerExceptionMessages = {}));\n/*\n * Default signing version for getSignedUrl is 'v2'.\n */\nconst DEFAULT_SIGNING_VERSION = 'v2';\nconst SEVEN_DAYS = 7 * 24 * 60 * 60;\n/**\n * @const {string}\n * @private\n */\nexports.PATH_STYLED_HOST = 'https://storage.googleapis.com';\nclass URLSigner {\n constructor(authClient, bucket, file) {\n this.bucket = bucket;\n this.file = file;\n this.authClient = authClient;\n }\n getSignedUrl(cfg) {\n const expiresInSeconds = this.parseExpires(cfg.expires);\n const method = cfg.method;\n const accessibleAtInSeconds = this.parseAccessibleAt(cfg.accessibleAt);\n if (expiresInSeconds < accessibleAtInSeconds) {\n throw new Error(SignerExceptionMessages.EXPIRATION_BEFORE_ACCESSIBLE_DATE);\n }\n let customHost;\n // Default style is `path`.\n const isVirtualHostedStyle = cfg.virtualHostedStyle || false;\n if (cfg.cname) {\n customHost = cfg.cname;\n }\n else if (isVirtualHostedStyle) {\n customHost = `https://${this.bucket.name}.storage.googleapis.com`;\n }\n const secondsToMilliseconds = 1000;\n const config = Object.assign({}, cfg, {\n method,\n expiration: expiresInSeconds,\n accessibleAt: new Date(secondsToMilliseconds * accessibleAtInSeconds),\n bucket: this.bucket.name,\n file: this.file ? util_1.encodeURI(this.file.name, false) : undefined,\n });\n if (customHost) {\n config.cname = customHost;\n }\n const version = cfg.version || DEFAULT_SIGNING_VERSION;\n let promise;\n if (version === 'v2') {\n promise = this.getSignedUrlV2(config);\n }\n else if (version === 'v4') {\n promise = this.getSignedUrlV4(config);\n }\n else {\n throw new Error(`Invalid signed URL version: ${version}. Supported versions are 'v2' and 'v4'.`);\n }\n return promise.then(query => {\n query = Object.assign(query, cfg.queryParams);\n const signedUrl = new url.URL(config.cname || exports.PATH_STYLED_HOST);\n signedUrl.pathname = this.getResourcePath(!!config.cname, this.bucket.name, config.file);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signedUrl.search = util_1.qsStringify(query);\n return signedUrl.href;\n });\n }\n getSignedUrlV2(config) {\n const canonicalHeadersString = this.getCanonicalHeaders(config.extensionHeaders || {});\n const resourcePath = this.getResourcePath(false, config.bucket, config.file);\n const blobToSign = [\n config.method,\n config.contentMd5 || '',\n config.contentType || '',\n config.expiration,\n canonicalHeadersString + resourcePath,\n ].join('\\n');\n const sign = async () => {\n const authClient = this.authClient;\n try {\n const signature = await authClient.sign(blobToSign);\n const credentials = await authClient.getCredentials();\n return {\n GoogleAccessId: credentials.client_email,\n Expires: config.expiration,\n Signature: signature,\n };\n }\n catch (err) {\n const signingErr = new SigningError(err.message);\n signingErr.stack = err.stack;\n throw signingErr;\n }\n };\n return sign();\n }\n getSignedUrlV4(config) {\n config.accessibleAt = config.accessibleAt\n ? config.accessibleAt\n : new Date();\n const millisecondsToSeconds = 1.0 / 1000.0;\n const expiresPeriodInSeconds = config.expiration - config.accessibleAt.valueOf() * millisecondsToSeconds;\n // v4 limit expiration to be 7 days maximum\n if (expiresPeriodInSeconds > SEVEN_DAYS) {\n throw new Error(`Max allowed expiration is seven days (${SEVEN_DAYS} seconds).`);\n }\n const extensionHeaders = Object.assign({}, config.extensionHeaders);\n const fqdn = new url.URL(config.cname || exports.PATH_STYLED_HOST);\n extensionHeaders.host = fqdn.host;\n if (config.contentMd5) {\n extensionHeaders['content-md5'] = config.contentMd5;\n }\n if (config.contentType) {\n extensionHeaders['content-type'] = config.contentType;\n }\n let contentSha256;\n const sha256Header = extensionHeaders['x-goog-content-sha256'];\n if (sha256Header) {\n if (typeof sha256Header !== 'string' ||\n !/[A-Fa-f0-9]{40}/.test(sha256Header)) {\n throw new Error(SignerExceptionMessages.X_GOOG_CONTENT_SHA256);\n }\n contentSha256 = sha256Header;\n }\n const signedHeaders = Object.keys(extensionHeaders)\n .map(header => header.toLowerCase())\n .sort()\n .join(';');\n const extensionHeadersString = this.getCanonicalHeaders(extensionHeaders);\n const datestamp = util_1.formatAsUTCISO(config.accessibleAt);\n const credentialScope = `${datestamp}/auto/storage/goog4_request`;\n const sign = async () => {\n const credentials = await this.authClient.getCredentials();\n const credential = `${credentials.client_email}/${credentialScope}`;\n const dateISO = util_1.formatAsUTCISO(config.accessibleAt ? config.accessibleAt : new Date(), true);\n const queryParams = {\n 'X-Goog-Algorithm': 'GOOG4-RSA-SHA256',\n 'X-Goog-Credential': credential,\n 'X-Goog-Date': dateISO,\n 'X-Goog-Expires': expiresPeriodInSeconds.toString(10),\n 'X-Goog-SignedHeaders': signedHeaders,\n ...(config.queryParams || {}),\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const canonicalQueryParams = this.getCanonicalQueryParams(queryParams);\n const canonicalRequest = this.getCanonicalRequest(config.method, this.getResourcePath(!!config.cname, config.bucket, config.file), canonicalQueryParams, extensionHeadersString, signedHeaders, contentSha256);\n const hash = crypto\n .createHash('sha256')\n .update(canonicalRequest)\n .digest('hex');\n const blobToSign = [\n 'GOOG4-RSA-SHA256',\n dateISO,\n credentialScope,\n hash,\n ].join('\\n');\n try {\n const signature = await this.authClient.sign(blobToSign);\n const signatureHex = Buffer.from(signature, 'base64').toString('hex');\n const signedQuery = Object.assign({}, queryParams, {\n 'X-Goog-Signature': signatureHex,\n });\n return signedQuery;\n }\n catch (err) {\n const signingErr = new SigningError(err.message);\n signingErr.stack = err.stack;\n throw signingErr;\n }\n };\n return sign();\n }\n /**\n * Create canonical headers for signing v4 url.\n *\n * The canonical headers for v4-signing a request demands header names are\n * first lowercased, followed by sorting the header names.\n * Then, construct the canonical headers part of the request:\n * + \":\" + Trim() + \"\\n\"\n * ..\n * + \":\" + Trim() + \"\\n\"\n *\n * @param headers\n * @private\n */\n getCanonicalHeaders(headers) {\n // Sort headers by their lowercased names\n const sortedHeaders = util_1.objectEntries(headers)\n // Convert header names to lowercase\n .map(([headerName, value]) => [\n headerName.toLowerCase(),\n value,\n ])\n .sort((a, b) => a[0].localeCompare(b[0]));\n return sortedHeaders\n .filter(([, value]) => value !== undefined)\n .map(([headerName, value]) => {\n // - Convert Array (multi-valued header) into string, delimited by\n // ',' (no space).\n // - Trim leading and trailing spaces.\n // - Convert sequential (2+) spaces into a single space\n const canonicalValue = `${value}`.trim().replace(/\\s{2,}/g, ' ');\n return `${headerName}:${canonicalValue}\\n`;\n })\n .join('');\n }\n getCanonicalRequest(method, path, query, headers, signedHeaders, contentSha256) {\n return [\n method,\n path,\n query,\n headers,\n signedHeaders,\n contentSha256 || 'UNSIGNED-PAYLOAD',\n ].join('\\n');\n }\n getCanonicalQueryParams(query) {\n return util_1.objectEntries(query)\n .map(([key, value]) => [util_1.encodeURI(key, true), util_1.encodeURI(value, true)])\n .sort((a, b) => (a[0] < b[0] ? -1 : 1))\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n }\n getResourcePath(cname, bucket, file) {\n if (cname) {\n return '/' + (file || '');\n }\n else if (file) {\n return `/${bucket}/${file}`;\n }\n else {\n return `/${bucket}`;\n }\n }\n parseExpires(expires, current = new Date()) {\n const expiresInMSeconds = new Date(expires).valueOf();\n if (isNaN(expiresInMSeconds)) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_INVALID);\n }\n if (expiresInMSeconds < current.valueOf()) {\n throw new Error(storage_1.ExceptionMessages.EXPIRATION_DATE_PAST);\n }\n return Math.round(expiresInMSeconds / 1000); // The API expects seconds.\n }\n parseAccessibleAt(accessibleAt) {\n const accessibleAtInMSeconds = new Date(accessibleAt || new Date()).valueOf();\n if (isNaN(accessibleAtInMSeconds)) {\n throw new Error(SignerExceptionMessages.ACCESSIBLE_DATE_INVALID);\n }\n return Math.floor(accessibleAtInMSeconds / 1000); // The API expects seconds.\n }\n}\nexports.URLSigner = URLSigner;\n/**\n * Custom error type for errors related to getting signed errors and policies.\n *\n * @private\n */\nclass SigningError extends Error {\n constructor() {\n super(...arguments);\n this.name = 'SigningError';\n }\n}\nexports.SigningError = SigningError;\n//# sourceMappingURL=signer.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = exports.RETRYABLE_ERR_FN_DEFAULT = exports.MAX_RETRY_DELAY_DEFAULT = exports.TOTAL_TIMEOUT_DEFAULT = exports.RETRY_DELAY_MULTIPLIER_DEFAULT = exports.MAX_RETRY_DEFAULT = exports.AUTO_RETRY_DEFAULT = exports.PROTOCOL_REGEX = exports.StorageExceptionMessages = exports.ExceptionMessages = exports.IdempotencyStrategy = void 0;\nconst nodejs_common_1 = require(\"./nodejs-common\");\nconst paginator_1 = require(\"@google-cloud/paginator\");\nconst promisify_1 = require(\"@google-cloud/promisify\");\nconst arrify = require(\"arrify\");\nconst stream_1 = require(\"stream\");\nconst bucket_1 = require(\"./bucket\");\nconst channel_1 = require(\"./channel\");\nconst file_1 = require(\"./file\");\nconst util_1 = require(\"./util\");\nconst hmacKey_1 = require(\"./hmacKey\");\nvar IdempotencyStrategy;\n(function (IdempotencyStrategy) {\n IdempotencyStrategy[IdempotencyStrategy[\"RetryAlways\"] = 0] = \"RetryAlways\";\n IdempotencyStrategy[IdempotencyStrategy[\"RetryConditional\"] = 1] = \"RetryConditional\";\n IdempotencyStrategy[IdempotencyStrategy[\"RetryNever\"] = 2] = \"RetryNever\";\n})(IdempotencyStrategy = exports.IdempotencyStrategy || (exports.IdempotencyStrategy = {}));\nvar ExceptionMessages;\n(function (ExceptionMessages) {\n ExceptionMessages[\"EXPIRATION_DATE_INVALID\"] = \"The expiration date provided was invalid.\";\n ExceptionMessages[\"EXPIRATION_DATE_PAST\"] = \"An expiration date cannot be in the past.\";\n ExceptionMessages[\"INVALID_ACTION\"] = \"The action is not provided or invalid.\";\n})(ExceptionMessages = exports.ExceptionMessages || (exports.ExceptionMessages = {}));\nvar StorageExceptionMessages;\n(function (StorageExceptionMessages) {\n StorageExceptionMessages[\"AUTO_RETRY_DEPRECATED\"] = \"autoRetry is deprecated. Use retryOptions.autoRetry instead.\";\n StorageExceptionMessages[\"MAX_RETRIES_DEPRECATED\"] = \"maxRetries is deprecated. Use retryOptions.maxRetries instead.\";\n StorageExceptionMessages[\"BUCKET_NAME_REQUIRED\"] = \"A bucket name is needed to use Cloud Storage.\";\n StorageExceptionMessages[\"BUCKET_NAME_REQUIRED_CREATE\"] = \"A name is required to create a bucket.\";\n StorageExceptionMessages[\"HMAC_SERVICE_ACCOUNT\"] = \"The first argument must be a service account email to create an HMAC key.\";\n StorageExceptionMessages[\"HMAC_ACCESS_ID\"] = \"An access ID is needed to create an HmacKey object.\";\n})(StorageExceptionMessages = exports.StorageExceptionMessages || (exports.StorageExceptionMessages = {}));\nexports.PROTOCOL_REGEX = /^(\\w*):\\/\\//;\n/**\n * Default behavior: Automatically retry retriable server errors.\n *\n * @const {boolean}\n */\nexports.AUTO_RETRY_DEFAULT = true;\n/**\n * Default behavior: Only attempt to retry retriable errors 3 times.\n *\n * @const {number}\n */\nexports.MAX_RETRY_DEFAULT = 3;\n/**\n * Default behavior: Wait twice as long as previous retry before retrying.\n *\n * @const {number}\n */\nexports.RETRY_DELAY_MULTIPLIER_DEFAULT = 2;\n/**\n * Default behavior: If the operation doesn't succeed after 600 seconds,\n * stop retrying.\n *\n * @const {number}\n */\nexports.TOTAL_TIMEOUT_DEFAULT = 600;\n/**\n * Default behavior: Wait no more than 64 seconds between retries.\n *\n * @const {number}\n */\nexports.MAX_RETRY_DELAY_DEFAULT = 64;\n/**\n * Default behavior: Retry conditionally idempotent operations if correct preconditions are set.\n *\n * @const {enum}\n * @private\n */\nconst IDEMPOTENCY_STRATEGY_DEFAULT = IdempotencyStrategy.RetryConditional;\n/**\n * Returns true if the API request should be retried, given the error that was\n * given the first time the request was attempted.\n * @const\n * @param {error} err - The API error to check if it is appropriate to retry.\n * @return {boolean} True if the API request should be retried, false otherwise.\n */\nexports.RETRYABLE_ERR_FN_DEFAULT = function (err) {\n var _a;\n if (err) {\n if ([408, 429, 500, 502, 503, 504].indexOf(err.code) !== -1) {\n return true;\n }\n if (err.errors) {\n for (const e of err.errors) {\n const reason = (_a = e === null || e === void 0 ? void 0 : e.reason) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();\n if ((reason && reason.includes('eai_again')) || //DNS lookup error\n reason === 'econnreset' ||\n reason === 'unexpected connection closure') {\n return true;\n }\n }\n }\n }\n return false;\n};\n/*! Developer Documentation\n *\n * Invoke this method to create a new Storage object bound with pre-determined\n * configuration options. For each object that can be created (e.g., a bucket),\n * there is an equivalent static and instance method. While they are classes,\n * they can be instantiated without use of the `new` keyword.\n */\n/**\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share objects with other\n * users and allow other users to access your buckets and objects.\n *\n * This object provides constants to refer to the three permission levels that\n * can be granted to an entity:\n *\n * - `gcs.acl.OWNER_ROLE` - (\"OWNER\")\n * - `gcs.acl.READER_ROLE` - (\"READER\")\n * - `gcs.acl.WRITER_ROLE` - (\"WRITER\")\n *\n * See {@link https://cloud.google.com/storage/docs/access-control/lists| About Access Control Lists}\n *\n * @name Storage#acl\n * @type {object}\n * @property {string} OWNER_ROLE\n * @property {string} READER_ROLE\n * @property {string} WRITER_ROLE\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const albums = storage.bucket('albums');\n *\n * //-\n * // Make all of the files currently in a bucket publicly readable.\n * //-\n * const options = {\n * entity: 'allUsers',\n * role: storage.acl.READER_ROLE\n * };\n *\n * albums.acl.add(options, function(err, aclObject) {});\n *\n * //-\n * // Make any new objects added to a bucket publicly readable.\n * //-\n * albums.acl.default.add(options, function(err, aclObject) {});\n *\n * //-\n * // Grant a user ownership permissions to a bucket.\n * //-\n * albums.acl.add({\n * entity: 'user-useremail@example.com',\n * role: storage.acl.OWNER_ROLE\n * }, function(err, aclObject) {});\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * albums.acl.add(options).then(function(data) {\n * const aclObject = data[0];\n * const apiResponse = data[1];\n * });\n * ```\n */\n/**\n * Get {@link Bucket} objects for all of the buckets in your project as\n * a readable object stream.\n *\n * @method Storage#getBucketsStream\n * @param {GetBucketsRequest} [query] Query object for listing buckets.\n * @returns {ReadableStream} A readable stream that emits {@link Bucket}\n * instances.\n *\n * @example\n * ```\n * storage.getBucketsStream()\n * .on('error', console.error)\n * .on('data', function(bucket) {\n * // bucket is a Bucket object.\n * })\n * .on('end', function() {\n * // All buckets retrieved.\n * });\n *\n * //-\n * // If you anticipate many results, you can end a stream early to prevent\n * // unnecessary processing and API requests.\n * //-\n * storage.getBucketsStream()\n * .on('data', function(bucket) {\n * this.end();\n * });\n * ```\n */\n/**\n * Get {@link HmacKey} objects for all of the HMAC keys in the project in a\n * readable object stream.\n *\n * @method Storage#getHmacKeysStream\n * @param {GetHmacKeysOptions} [options] Configuration options.\n * @returns {ReadableStream} A readable stream that emits {@link HmacKey}\n * instances.\n *\n * @example\n * ```\n * storage.getHmacKeysStream()\n * .on('error', console.error)\n * .on('data', function(hmacKey) {\n * // hmacKey is an HmacKey object.\n * })\n * .on('end', function() {\n * // All HmacKey retrieved.\n * });\n *\n * //-\n * // If you anticipate many results, you can end a stream early to prevent\n * // unnecessary processing and API requests.\n * //-\n * storage.getHmacKeysStream()\n * .on('data', function(bucket) {\n * this.end();\n * });\n * ```\n */\n/**\n *

ACLs

\n * Cloud Storage uses access control lists (ACLs) to manage object and\n * bucket access. ACLs are the mechanism you use to share files with other users\n * and allow other users to access your buckets and files.\n *\n * To learn more about ACLs, read this overview on\n * {@link https://cloud.google.com/storage/docs/access-control| Access Control}.\n *\n * See {@link https://cloud.google.com/storage/docs/overview| Cloud Storage overview}\n * See {@link https://cloud.google.com/storage/docs/access-control| Access Control}\n *\n * @class\n */\nclass Storage extends nodejs_common_1.Service {\n /**\n * @typedef {object} StorageOptions\n * @property {string} [projectId] The project ID from the Google Developer's\n * Console, e.g. 'grape-spaceship-123'. We will also check the environment\n * variable `GCLOUD_PROJECT` for your project ID. If your app is running\n * in an environment which supports {@link\n * https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application\n * Application Default Credentials}, your project ID will be detected\n * automatically.\n * @property {string} [keyFilename] Full path to the a .json, .pem, or .p12 key\n * downloaded from the Google Developers Console. If you provide a path to\n * a JSON file, the `projectId` option above is not necessary. NOTE: .pem and\n * .p12 require you to specify the `email` option as well.\n * @property {string} [email] Account email address. Required when using a .pem\n * or .p12 keyFilename.\n * @property {object} [credentials] Credentials object.\n * @property {string} [credentials.client_email]\n * @property {string} [credentials.private_key]\n * @property {object} [retryOptions] Options for customizing retries. Retriable server errors\n * will be retried with exponential delay between them dictated by the formula\n * max(maxRetryDelay, retryDelayMultiplier*retryNumber) until maxRetries or totalTimeout\n * has been reached. Retries will only happen if autoRetry is set to true.\n * @property {boolean} [retryOptions.autoRetry=true] Automatically retry requests if the\n * response is related to rate limits or certain intermittent server\n * errors. We will exponentially backoff subsequent requests by default.\n * @property {number} [retryOptions.retryDelayMultiplier = 2] the multiplier by which to\n * increase the delay time between the completion of failed requests, and the\n * initiation of the subsequent retrying request.\n * @property {number} [retryOptions.totalTimeout = 600] The total time, starting from\n * when the initial request is sent, after which an error will\n * be returned, regardless of the retrying attempts made meanwhile.\n * @property {number} [retryOptions.maxRetryDelay = 64] The maximum delay time between requests.\n * When this value is reached, ``retryDelayMultiplier`` will no longer be used to\n * increase delay time.\n * @property {number} [retryOptions.maxRetries=3] Maximum number of automatic retries\n * attempted before returning the error.\n * @property {function} [retryOptions.retryableErrorFn] Function that returns true if a given\n * error should be retried and false otherwise.\n * @property {enum} [retryOptions.idempotencyStrategy=IdempotencyStrategy.RetryConditional] Enumeration\n * controls how conditionally idempotent operations are retried. Possible values are: RetryAlways -\n * will respect other retry settings and attempt to retry conditionally idempotent operations. RetryConditional -\n * will retry conditionally idempotent operations if the correct preconditions are set. RetryNever - never\n * retry a conditionally idempotent operation.\n * @property {string} [userAgent] The value to be prepended to the User-Agent\n * header in API requests.\n * @property {object} [authClient] `AuthClient` or `GoogleAuth` client to reuse instead of creating a new one.\n * @property {number} [timeout] The amount of time in milliseconds to wait per http request before timing out.\n * @property {object[]} [interceptors_] Array of custom request interceptors to be returned in the order they were assigned.\n * @property {string} [apiEndpoint = storage.google.com] The API endpoint of the service used to make requests.\n * @property {boolean} [useAuthWithCustomEndpoint = false] Controls whether or not to use authentication when using a custom endpoint.\n */\n /**\n * Constructs the Storage client.\n *\n * @example\n * Create a client that uses Application Default Credentials\n * (ADC)\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * ```\n *\n * @example\n * Create a client with explicit credentials\n * ```\n * const storage = new Storage({\n * projectId: 'your-project-id',\n * keyFilename: '/path/to/keyfile.json'\n * });\n * ```\n *\n * @example\n * Create a client with an `AuthClient` (e.g. `DownscopedClient`)\n * ```\n * const {DownscopedClient} = require('google-auth-library');\n * const authClient = new DownscopedClient({...});\n *\n * const storage = new Storage({authClient});\n * ```\n *\n * Additional samples:\n * - https://github.com/googleapis/google-auth-library-nodejs#sample-usage-1\n * - https://github.com/googleapis/google-auth-library-nodejs/blob/main/samples/downscopedclient.js\n *\n * @param {StorageOptions} [options] Configuration options.\n */\n constructor(options = {}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n let apiEndpoint = 'https://storage.googleapis.com';\n let customEndpoint = false;\n // Note: EMULATOR_HOST is an experimental configuration variable. Use apiEndpoint instead.\n const EMULATOR_HOST = process.env.STORAGE_EMULATOR_HOST;\n if (typeof EMULATOR_HOST === 'string') {\n apiEndpoint = Storage.sanitizeEndpoint(EMULATOR_HOST);\n customEndpoint = true;\n }\n if (options.apiEndpoint) {\n apiEndpoint = Storage.sanitizeEndpoint(options.apiEndpoint);\n customEndpoint = true;\n }\n options = Object.assign({}, options, { apiEndpoint });\n // Note: EMULATOR_HOST is an experimental configuration variable. Use apiEndpoint instead.\n const baseUrl = EMULATOR_HOST || `${options.apiEndpoint}/storage/v1`;\n let autoRetryValue = exports.AUTO_RETRY_DEFAULT;\n if (options.autoRetry !== undefined &&\n ((_a = options.retryOptions) === null || _a === void 0 ? void 0 : _a.autoRetry) !== undefined) {\n throw new nodejs_common_1.ApiError(StorageExceptionMessages.AUTO_RETRY_DEPRECATED);\n }\n else if (options.autoRetry !== undefined) {\n autoRetryValue = options.autoRetry;\n }\n else if (((_b = options.retryOptions) === null || _b === void 0 ? void 0 : _b.autoRetry) !== undefined) {\n autoRetryValue = options.retryOptions.autoRetry;\n }\n let maxRetryValue = exports.MAX_RETRY_DEFAULT;\n if (options.maxRetries && ((_c = options.retryOptions) === null || _c === void 0 ? void 0 : _c.maxRetries)) {\n throw new nodejs_common_1.ApiError(StorageExceptionMessages.MAX_RETRIES_DEPRECATED);\n }\n else if (options.maxRetries) {\n maxRetryValue = options.maxRetries;\n }\n else if ((_d = options.retryOptions) === null || _d === void 0 ? void 0 : _d.maxRetries) {\n maxRetryValue = options.retryOptions.maxRetries;\n }\n const config = {\n apiEndpoint: options.apiEndpoint,\n retryOptions: {\n autoRetry: autoRetryValue,\n maxRetries: maxRetryValue,\n retryDelayMultiplier: ((_e = options.retryOptions) === null || _e === void 0 ? void 0 : _e.retryDelayMultiplier) ? (_f = options.retryOptions) === null || _f === void 0 ? void 0 : _f.retryDelayMultiplier : exports.RETRY_DELAY_MULTIPLIER_DEFAULT,\n totalTimeout: ((_g = options.retryOptions) === null || _g === void 0 ? void 0 : _g.totalTimeout) ? (_h = options.retryOptions) === null || _h === void 0 ? void 0 : _h.totalTimeout : exports.TOTAL_TIMEOUT_DEFAULT,\n maxRetryDelay: ((_j = options.retryOptions) === null || _j === void 0 ? void 0 : _j.maxRetryDelay) ? (_k = options.retryOptions) === null || _k === void 0 ? void 0 : _k.maxRetryDelay : exports.MAX_RETRY_DELAY_DEFAULT,\n retryableErrorFn: ((_l = options.retryOptions) === null || _l === void 0 ? void 0 : _l.retryableErrorFn) ? (_m = options.retryOptions) === null || _m === void 0 ? void 0 : _m.retryableErrorFn : exports.RETRYABLE_ERR_FN_DEFAULT,\n idempotencyStrategy: ((_o = options.retryOptions) === null || _o === void 0 ? void 0 : _o.idempotencyStrategy) !== undefined\n ? (_p = options.retryOptions) === null || _p === void 0 ? void 0 : _p.idempotencyStrategy : IDEMPOTENCY_STRATEGY_DEFAULT,\n },\n baseUrl,\n customEndpoint,\n useAuthWithCustomEndpoint: options === null || options === void 0 ? void 0 : options.useAuthWithCustomEndpoint,\n projectIdRequired: false,\n scopes: [\n 'https://www.googleapis.com/auth/iam',\n 'https://www.googleapis.com/auth/cloud-platform',\n 'https://www.googleapis.com/auth/devstorage.full_control',\n ],\n packageJson: require('../../package.json'),\n };\n super(config, options);\n /**\n * Reference to {@link Storage.acl}.\n *\n * @name Storage#acl\n * @see Storage.acl\n */\n this.acl = Storage.acl;\n this.retryOptions = config.retryOptions;\n this.getBucketsStream = paginator_1.paginator.streamify('getBuckets');\n this.getHmacKeysStream = paginator_1.paginator.streamify('getHmacKeys');\n }\n getBucketsStream() {\n // placeholder body, overwritten in constructor\n return new stream_1.Readable();\n }\n getHmacKeysStream() {\n // placeholder body, overwritten in constructor\n return new stream_1.Readable();\n }\n static sanitizeEndpoint(url) {\n if (!exports.PROTOCOL_REGEX.test(url)) {\n url = `https://${url}`;\n }\n return url.replace(/\\/+$/, ''); // Remove trailing slashes\n }\n /**\n * Get a reference to a Cloud Storage bucket.\n *\n * @param {string} name Name of the bucket.\n * @param {object} [options] Configuration object.\n * @param {string} [options.kmsKeyName] A Cloud KMS key that will be used to\n * encrypt objects inserted into this bucket, if no encryption method is\n * specified.\n * @param {string} [options.userProject] User project to be billed for all\n * requests made from this Bucket object.\n * @returns {Bucket}\n * @see Bucket\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const albums = storage.bucket('albums');\n * const photos = storage.bucket('photos');\n * ```\n */\n bucket(name, options) {\n if (!name) {\n throw new Error(StorageExceptionMessages.BUCKET_NAME_REQUIRED);\n }\n return new bucket_1.Bucket(this, name, options);\n }\n /**\n * Reference a channel to receive notifications about changes to your bucket.\n *\n * @param {string} id The ID of the channel.\n * @param {string} resourceId The resource ID of the channel.\n * @returns {Channel}\n * @see Channel\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const channel = storage.channel('id', 'resource-id');\n * ```\n */\n channel(id, resourceId) {\n return new channel_1.Channel(this, id, resourceId);\n }\n /**\n * @typedef {array} CreateBucketResponse\n * @property {Bucket} 0 The new {@link Bucket}.\n * @property {object} 1 The full API response.\n */\n /**\n * @callback CreateBucketCallback\n * @param {?Error} err Request error, if any.\n * @param {Bucket} bucket The new {@link Bucket}.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Metadata to set for the bucket.\n *\n * @typedef {object} CreateBucketRequest\n * @property {boolean} [archive=false] Specify the storage class as Archive.\n * @property {boolean} [coldline=false] Specify the storage class as Coldline.\n * @property {Cors[]} [cors=[]] Specify the CORS configuration to use.\n * @property {boolean} [dra=false] Specify the storage class as Durable Reduced\n * Availability.\n * @property {string} [location] Specify the bucket's location(s). If specifying\n * a dual-region, can be specified as a string `\"US-CENTRAL1+US-WEST1\"`.\n * For more information, see {@link https://cloud.google.com/storage/docs/locations| Bucket Locations}.\n * @property {boolean} [multiRegional=false] Specify the storage class as\n * Multi-Regional.\n * @property {boolean} [nearline=false] Specify the storage class as Nearline.\n * @property {boolean} [regional=false] Specify the storage class as Regional.\n * @property {boolean} [requesterPays=false] **Early Access Testers Only**\n * Force the use of the User Project metadata field to assign operational\n * costs when an operation is made on a Bucket and its objects.\n * @property {string} [rpo] For dual-region buckets, controls whether turbo\n * replication is enabled (`ASYNC_TURBO`) or disabled (`DEFAULT`).\n * @property {boolean} [standard=true] Specify the storage class as Standard.\n * @property {string} [storageClass] The new storage class. (`standard`,\n * `nearline`, `coldline`, or `archive`).\n * **Note:** The storage classes `multi_regional`, `regional`, and\n * `durable_reduced_availability` are now legacy and will be deprecated in\n * the future.\n * @property {Versioning} [versioning=undefined] Specify the versioning status.\n * @property {string} [userProject] The ID of the project which will be billed\n * for the request.\n */\n /**\n * Create a bucket.\n *\n * Cloud Storage uses a flat namespace, so you can't create a bucket with\n * a name that is already in use. For more information, see\n * {@link https://cloud.google.com/storage/docs/bucketnaming.html#requirements| Bucket Naming Guidelines}.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/insert| Buckets: insert API Documentation}\n * See {@link https://cloud.google.com/storage/docs/storage-classes| Storage Classes}\n *\n * @param {string} name Name of the bucket to create.\n * @param {CreateBucketRequest} [metadata] Metadata to set for the bucket.\n * @param {CreateBucketCallback} [callback] Callback function.\n * @returns {Promise}\n * @throws {Error} If a name is not provided.\n * @see Bucket#create\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const callback = function(err, bucket, apiResponse) {\n * // `bucket` is a Bucket object.\n * };\n *\n * storage.createBucket('new-bucket', callback);\n *\n * //-\n * // Create a bucket in a specific location and region. See the \n * // Official JSON API docs for complete details on the `location`\n * option.\n * // \n * //-\n * const metadata = {\n * location: 'US-CENTRAL1',\n * regional: true\n * };\n *\n * storage.createBucket('new-bucket', metadata, callback);\n *\n * //-\n * // Create a bucket with a retention policy of 6 months.\n * //-\n * const metadata = {\n * retentionPolicy: {\n * retentionPeriod: 15780000 // 6 months in seconds.\n * }\n * };\n *\n * storage.createBucket('new-bucket', metadata, callback);\n *\n * //-\n * // Enable versioning on a new bucket.\n * //-\n * const metadata = {\n * versioning: {\n * enabled: true\n * }\n * };\n *\n * storage.createBucket('new-bucket', metadata, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.createBucket('new-bucket').then(function(data) {\n * const bucket = data[0];\n * const apiResponse = data[1];\n * });\n *\n * ```\n * @example include:samples/buckets.js\n * region_tag:storage_create_bucket\n * Another example:\n */\n createBucket(name, metadataOrCallback, callback) {\n if (!name) {\n throw new Error(StorageExceptionMessages.BUCKET_NAME_REQUIRED_CREATE);\n }\n let metadata;\n if (!callback) {\n callback = metadataOrCallback;\n metadata = {};\n }\n else {\n metadata = metadataOrCallback;\n }\n const body = Object.assign({}, metadata, { name });\n const storageClasses = {\n archive: 'ARCHIVE',\n coldline: 'COLDLINE',\n dra: 'DURABLE_REDUCED_AVAILABILITY',\n multiRegional: 'MULTI_REGIONAL',\n nearline: 'NEARLINE',\n regional: 'REGIONAL',\n standard: 'STANDARD',\n };\n Object.keys(storageClasses).forEach(storageClass => {\n if (body[storageClass]) {\n if (metadata.storageClass && metadata.storageClass !== storageClass) {\n throw new Error(`Both \\`${storageClass}\\` and \\`storageClass\\` were provided.`);\n }\n body.storageClass = storageClasses[storageClass];\n delete body[storageClass];\n }\n });\n if (body.requesterPays) {\n body.billing = {\n requesterPays: body.requesterPays,\n };\n delete body.requesterPays;\n }\n const query = {\n project: this.projectId,\n };\n if (body.userProject) {\n query.userProject = body.userProject;\n delete body.userProject;\n }\n this.request({\n method: 'POST',\n uri: '/b',\n qs: query,\n json: body,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n const bucket = this.bucket(name);\n bucket.metadata = resp;\n callback(null, bucket, resp);\n });\n }\n /**\n * @typedef {object} CreateHmacKeyOptions\n * @property {string} [projectId] The project ID of the project that owns\n * the service account of the requested HMAC key. If not provided,\n * the project ID used to instantiate the Storage client will be used.\n * @property {string} [userProject] This parameter is currently ignored.\n */\n /**\n * @typedef {object} HmacKeyMetadata\n * @property {string} accessId The access id identifies which HMAC key was\n * used to sign a request when authenticating with HMAC.\n * @property {string} etag Used to perform a read-modify-write of the key.\n * @property {string} id The resource name of the HMAC key.\n * @property {string} projectId The project ID.\n * @property {string} serviceAccountEmail The service account's email this\n * HMAC key is created for.\n * @property {string} state The state of this HMAC key. One of \"ACTIVE\",\n * \"INACTIVE\" or \"DELETED\".\n * @property {string} timeCreated The creation time of the HMAC key in\n * RFC 3339 format.\n * @property {string} [updated] The time this HMAC key was last updated in\n * RFC 3339 format.\n */\n /**\n * @typedef {array} CreateHmacKeyResponse\n * @property {HmacKey} 0 The HmacKey instance created from API response.\n * @property {string} 1 The HMAC key's secret used to access the XML API.\n * @property {object} 3 The raw API response.\n */\n /**\n * @callback CreateHmacKeyCallback Callback function.\n * @param {?Error} err Request error, if any.\n * @param {HmacKey} hmacKey The HmacKey instance created from API response.\n * @param {string} secret The HMAC key's secret used to access the XML API.\n * @param {object} apiResponse The raw API response.\n */\n /**\n * Create an HMAC key associated with an service account to authenticate\n * requests to the Cloud Storage XML API.\n *\n * See {@link https://cloud.google.com/storage/docs/authentication/hmackeys| HMAC keys documentation}\n *\n * @param {string} serviceAccountEmail The service account's email address\n * with which the HMAC key is created for.\n * @param {CreateHmacKeyCallback} [callback] Callback function.\n * @return {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('google-cloud/storage');\n * const storage = new Storage();\n *\n * // Replace with your service account's email address\n * const serviceAccountEmail =\n * 'my-service-account@appspot.gserviceaccount.com';\n *\n * storage.createHmacKey(serviceAccountEmail, function(err, hmacKey, secret) {\n * if (!err) {\n * // Securely store the secret for use with the XML API.\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.createHmacKey(serviceAccountEmail)\n * .then((response) => {\n * const hmacKey = response[0];\n * const secret = response[1];\n * // Securely store the secret for use with the XML API.\n * });\n * ```\n */\n createHmacKey(serviceAccountEmail, optionsOrCb, cb) {\n if (typeof serviceAccountEmail !== 'string') {\n throw new Error(StorageExceptionMessages.HMAC_SERVICE_ACCOUNT);\n }\n const { options, callback } = util_1.normalize(optionsOrCb, cb);\n const query = Object.assign({}, options, { serviceAccountEmail });\n const projectId = query.projectId || this.projectId;\n delete query.projectId;\n this.request({\n method: 'POST',\n uri: `/projects/${projectId}/hmacKeys`,\n qs: query,\n maxRetries: 0,\n }, (err, resp) => {\n if (err) {\n callback(err, null, null, resp);\n return;\n }\n const metadata = resp.metadata;\n const hmacKey = this.hmacKey(metadata.accessId, {\n projectId: metadata.projectId,\n });\n hmacKey.metadata = resp.metadata;\n callback(null, hmacKey, resp.secret, resp);\n });\n }\n /**\n * Query object for listing buckets.\n *\n * @typedef {object} GetBucketsRequest\n * @property {boolean} [autoPaginate=true] Have pagination handled\n * automatically.\n * @property {number} [maxApiCalls] Maximum number of API calls to make.\n * @property {number} [maxResults] Maximum number of items plus prefixes to\n * return per call.\n * Note: By default will handle pagination automatically\n * if more than 1 page worth of results are requested per call.\n * When `autoPaginate` is set to `false` the smaller of `maxResults`\n * or 1 page of results will be returned per call.\n * @property {string} [pageToken] A previously-returned page token\n * representing part of the larger set of results to view.\n * @property {string} [userProject] The ID of the project which will be billed\n * for the request.\n */\n /**\n * @typedef {array} GetBucketsResponse\n * @property {Bucket[]} 0 Array of {@link Bucket} instances.\n * @property {object} 1 nextQuery A query object to receive more results.\n * @property {object} 2 The full API response.\n */\n /**\n * @callback GetBucketsCallback\n * @param {?Error} err Request error, if any.\n * @param {Bucket[]} buckets Array of {@link Bucket} instances.\n * @param {object} nextQuery A query object to receive more results.\n * @param {object} apiResponse The full API response.\n */\n /**\n * Get Bucket objects for all of the buckets in your project.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/buckets/list| Buckets: list API Documentation}\n *\n * @param {GetBucketsRequest} [query] Query object for listing buckets.\n * @param {GetBucketsCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * storage.getBuckets(function(err, buckets) {\n * if (!err) {\n * // buckets is an array of Bucket objects.\n * }\n * });\n *\n * //-\n * // To control how many API requests are made and page through the results\n * // manually, set `autoPaginate` to `false`.\n * //-\n * const callback = function(err, buckets, nextQuery, apiResponse) {\n * if (nextQuery) {\n * // More results exist.\n * storage.getBuckets(nextQuery, callback);\n * }\n *\n * // The `metadata` property is populated for you with the metadata at the\n * // time of fetching.\n * buckets[0].metadata;\n *\n * // However, in cases where you are concerned the metadata could have\n * // changed, use the `getMetadata` method.\n * buckets[0].getMetadata(function(err, metadata, apiResponse) {});\n * };\n *\n * storage.getBuckets({\n * autoPaginate: false\n * }, callback);\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.getBuckets().then(function(data) {\n * const buckets = data[0];\n * });\n *\n * ```\n * @example include:samples/buckets.js\n * region_tag:storage_list_buckets\n * Another example:\n */\n getBuckets(optionsOrCallback, cb) {\n const { options, callback } = util_1.normalize(optionsOrCallback, cb);\n options.project = options.project || this.projectId;\n this.request({\n uri: '/b',\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, null, resp);\n return;\n }\n const buckets = arrify(resp.items).map((bucket) => {\n const bucketInstance = this.bucket(bucket.id);\n bucketInstance.metadata = bucket;\n return bucketInstance;\n });\n const nextQuery = resp.nextPageToken\n ? Object.assign({}, options, { pageToken: resp.nextPageToken })\n : null;\n callback(null, buckets, nextQuery, resp);\n });\n }\n getHmacKeys(optionsOrCb, cb) {\n const { options, callback } = util_1.normalize(optionsOrCb, cb);\n const query = Object.assign({}, options);\n const projectId = query.projectId || this.projectId;\n delete query.projectId;\n this.request({\n uri: `/projects/${projectId}/hmacKeys`,\n qs: query,\n }, (err, resp) => {\n if (err) {\n callback(err, null, null, resp);\n return;\n }\n const hmacKeys = arrify(resp.items).map((hmacKey) => {\n const hmacKeyInstance = this.hmacKey(hmacKey.accessId, {\n projectId: hmacKey.projectId,\n });\n hmacKeyInstance.metadata = hmacKey;\n return hmacKeyInstance;\n });\n const nextQuery = resp.nextPageToken\n ? Object.assign({}, options, { pageToken: resp.nextPageToken })\n : null;\n callback(null, hmacKeys, nextQuery, resp);\n });\n }\n /**\n * @typedef {array} GetServiceAccountResponse\n * @property {object} 0 The service account resource.\n * @property {object} 1 The full\n * {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount#resource| API response}.\n */\n /**\n * @callback GetServiceAccountCallback\n * @param {?Error} err Request error, if any.\n * @param {object} serviceAccount The serviceAccount resource.\n * @param {string} serviceAccount.emailAddress The service account email\n * address.\n * @param {object} apiResponse The full\n * {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount#resource| API response}.\n */\n /**\n * Get the email address of this project's Google Cloud Storage service\n * account.\n *\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount/get| Projects.serviceAccount: get API Documentation}\n * See {@link https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount#resource| Projects.serviceAccount Resource}\n *\n * @param {object} [options] Configuration object.\n * @param {string} [options.userProject] User project to be billed for this\n * request.\n * @param {GetServiceAccountCallback} [callback] Callback function.\n * @returns {Promise}\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n *\n * storage.getServiceAccount(function(err, serviceAccount, apiResponse) {\n * if (!err) {\n * const serviceAccountEmail = serviceAccount.emailAddress;\n * }\n * });\n *\n * //-\n * // If the callback is omitted, we'll return a Promise.\n * //-\n * storage.getServiceAccount().then(function(data) {\n * const serviceAccountEmail = data[0].emailAddress;\n * const apiResponse = data[1];\n * });\n * ```\n */\n getServiceAccount(optionsOrCallback, cb) {\n const { options, callback } = util_1.normalize(optionsOrCallback, cb);\n this.request({\n uri: `/projects/${this.projectId}/serviceAccount`,\n qs: options,\n }, (err, resp) => {\n if (err) {\n callback(err, null, resp);\n return;\n }\n const camelCaseResponse = {};\n for (const prop in resp) {\n // eslint-disable-next-line no-prototype-builtins\n if (resp.hasOwnProperty(prop)) {\n const camelCaseProp = prop.replace(/_(\\w)/g, (_, match) => match.toUpperCase());\n camelCaseResponse[camelCaseProp] = resp[prop];\n }\n }\n callback(null, camelCaseResponse, resp);\n });\n }\n /**\n * Get a reference to an HmacKey object.\n * Note: this does not fetch the HMAC key's metadata. Use HmacKey#get() to\n * retrieve and populate the metadata.\n *\n * To get a reference to an HMAC key that's not created for a service\n * account in the same project used to instantiate the Storage client,\n * supply the project's ID as `projectId` in the `options` argument.\n *\n * @param {string} accessId The HMAC key's access ID.\n * @param {HmacKeyOptions} options HmacKey constructor options.\n * @returns {HmacKey}\n * @see HmacKey\n *\n * @example\n * ```\n * const {Storage} = require('@google-cloud/storage');\n * const storage = new Storage();\n * const hmacKey = storage.hmacKey('ACCESS_ID');\n * ```\n */\n hmacKey(accessId, options) {\n if (!accessId) {\n throw new Error(StorageExceptionMessages.HMAC_ACCESS_ID);\n }\n return new hmacKey_1.HmacKey(this, accessId, options);\n }\n}\nexports.Storage = Storage;\n/**\n * {@link Bucket} class.\n *\n * @name Storage.Bucket\n * @see Bucket\n * @type {Constructor}\n */\nStorage.Bucket = bucket_1.Bucket;\n/**\n * {@link Channel} class.\n *\n * @name Storage.Channel\n * @see Channel\n * @type {Constructor}\n */\nStorage.Channel = channel_1.Channel;\n/**\n * {@link File} class.\n *\n * @name Storage.File\n * @see File\n * @type {Constructor}\n */\nStorage.File = file_1.File;\n/**\n * {@link HmacKey} class.\n *\n * @name Storage.HmacKey\n * @see HmacKey\n * @type {Constructor}\n */\nStorage.HmacKey = hmacKey_1.HmacKey;\nStorage.acl = {\n OWNER_ROLE: 'OWNER',\n READER_ROLE: 'READER',\n WRITER_ROLE: 'WRITER',\n};\n/*! Developer Documentation\n *\n * These methods can be auto-paginated.\n */\npaginator_1.paginator.extend(Storage, ['getBuckets', 'getHmacKeys']);\n/*! Developer Documentation\n *\n * All async methods (except for streams) will return a Promise in the event\n * that a callback is omitted.\n */\npromisify_1.promisifyAll(Storage, {\n exclude: ['bucket', 'channel', 'hmacKey'],\n});\n//# sourceMappingURL=storage.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatAsUTCISO = exports.convertObjKeysToSnakeCase = exports.unicodeJSONStringify = exports.objectKeyToLowercase = exports.qsStringify = exports.encodeURI = exports.fixedEncodeURIComponent = exports.objectEntries = exports.normalize = void 0;\nconst querystring = require(\"querystring\");\nfunction normalize(optionsOrCallback, cb) {\n const options = (typeof optionsOrCallback === 'object' ? optionsOrCallback : {});\n const callback = (typeof optionsOrCallback === 'function' ? optionsOrCallback : cb);\n return { options, callback };\n}\nexports.normalize = normalize;\n/**\n * Flatten an object into an Array of arrays, [[key, value], ..].\n * Implements Object.entries() for Node.js <8\n * @internal\n */\nfunction objectEntries(obj) {\n return Object.keys(obj).map(key => [key, obj[key]]);\n}\nexports.objectEntries = objectEntries;\n/**\n * Encode `str` with encodeURIComponent, plus these\n * reserved characters: `! * ' ( )`.\n *\n * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent| MDN: fixedEncodeURIComponent}\n *\n * @param {string} str The URI component to encode.\n * @return {string} The encoded string.\n */\nfunction fixedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase());\n}\nexports.fixedEncodeURIComponent = fixedEncodeURIComponent;\n/**\n * URI encode `uri` for generating signed URLs, using fixedEncodeURIComponent.\n *\n * Encode every byte except `A-Z a-Z 0-9 ~ - . _`.\n *\n * @param {string} uri The URI to encode.\n * @param [boolean=false] encodeSlash If `true`, the \"/\" character is not encoded.\n * @return {string} The encoded string.\n */\nfunction encodeURI(uri, encodeSlash) {\n // Split the string by `/`, and conditionally rejoin them with either\n // %2F if encodeSlash is `true`, or '/' if `false`.\n return uri\n .split('/')\n .map(fixedEncodeURIComponent)\n .join(encodeSlash ? '%2F' : '/');\n}\nexports.encodeURI = encodeURI;\n/**\n * Serialize an object to a URL query string using util.encodeURI(uri, true).\n * @param {string} url The object to serialize.\n * @return {string} Serialized string.\n */\nfunction qsStringify(qs) {\n return querystring.stringify(qs, '&', '=', {\n encodeURIComponent: (component) => encodeURI(component, true),\n });\n}\nexports.qsStringify = qsStringify;\nfunction objectKeyToLowercase(object) {\n const newObj = {};\n for (let key of Object.keys(object)) {\n const value = object[key];\n key = key.toLowerCase();\n newObj[key] = value;\n }\n return newObj;\n}\nexports.objectKeyToLowercase = objectKeyToLowercase;\n/**\n * JSON encode str, with unicode \\u+ representation.\n * @param {object} obj The object to encode.\n * @return {string} Serialized string.\n */\nfunction unicodeJSONStringify(obj) {\n return JSON.stringify(obj).replace(/[\\u0080-\\uFFFF]/g, (char) => '\\\\u' + ('0000' + char.charCodeAt(0).toString(16)).slice(-4));\n}\nexports.unicodeJSONStringify = unicodeJSONStringify;\n/**\n * Converts the given objects keys to snake_case\n * @param {object} obj object to convert keys to snake case.\n * @returns {object} object with keys converted to snake case.\n */\nfunction convertObjKeysToSnakeCase(obj) {\n if (obj instanceof Date || obj instanceof RegExp) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(convertObjKeysToSnakeCase);\n }\n if (obj instanceof Object) {\n return Object.keys(obj).reduce((acc, cur) => {\n const s = cur[0].toLocaleLowerCase() +\n cur.slice(1).replace(/([A-Z]+)/g, (match, p1) => {\n return `_${p1.toLowerCase()}`;\n });\n acc[s] = convertObjKeysToSnakeCase(obj[cur]);\n return acc;\n }, Object());\n }\n return obj;\n}\nexports.convertObjKeysToSnakeCase = convertObjKeysToSnakeCase;\n/**\n * Formats the provided date object as a UTC ISO string.\n * @param {Date} dateTimeToFormat date object to be formatted.\n * @param {boolean} includeTime flag to include hours, minutes, seconds in output.\n * @param {string} dateDelimiter delimiter between date components.\n * @param {string} timeDelimiter delimiter between time components.\n * @returns {string} UTC ISO format of provided date obect.\n */\nfunction formatAsUTCISO(dateTimeToFormat, includeTime = false, dateDelimiter = '', timeDelimiter = '') {\n const year = dateTimeToFormat.getUTCFullYear();\n const month = dateTimeToFormat.getUTCMonth() + 1;\n const day = dateTimeToFormat.getUTCDate();\n const hour = dateTimeToFormat.getUTCHours();\n const minute = dateTimeToFormat.getUTCMinutes();\n const second = dateTimeToFormat.getUTCSeconds();\n let resultString = `${year.toString().padStart(4, '0')}${dateDelimiter}${month\n .toString()\n .padStart(2, '0')}${dateDelimiter}${day.toString().padStart(2, '0')}`;\n if (includeTime) {\n resultString = `${resultString}T${hour\n .toString()\n .padStart(2, '0')}${timeDelimiter}${minute\n .toString()\n .padStart(2, '0')}${timeDelimiter}${second.toString().padStart(2, '0')}Z`;\n }\n return resultString;\n}\nexports.formatAsUTCISO = formatAsUTCISO;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\nconst NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');\nif (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n}\nconst MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\nconst MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\nconst SUPPORTED_MAJOR_VERSION = 10;\nconst SUPPORTED_MINOR_VERSION = 10;\nconst IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\nconst IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n/**\n * IS `true` for Node.js 10.10 and greater.\n */\nexports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.scandirSync = exports.scandir = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction scandir(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.scandir = scandir;\nfunction scandirSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.scandirSync = scandirSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst rpl = require(\"run-parallel\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n}\nfunction readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n}\nexports.readdir = readdir;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = void 0;\nfunction joinPathSegments(a, b, separator) {\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst constants_1 = require(\"../constants\");\nconst utils = require(\"../utils\");\nconst common = require(\"./common\");\nfunction read(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n}\nexports.read = read;\nfunction readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n }\n catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n}\nexports.readdirWithFileTypes = readdirWithFileTypes;\nfunction readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n}\nexports.readdir = readdir;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fs = void 0;\nconst fs = require(\"./fs\");\nexports.fs = fs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nexports.FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n stat: fs.stat,\n lstatSync: fs.lstatSync,\n statSync: fs.statSync\n};\nfunction createFileSystemAdapter(fsMethods) {\n if (fsMethods === undefined) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n}\nexports.createFileSystemAdapter = createFileSystemAdapter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statSync = exports.stat = exports.Settings = void 0;\nconst async = require(\"./providers/async\");\nconst sync = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction stat(path, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n async.read(path, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path, getSettings(optionsOrSettingsOrCallback), callback);\n}\nexports.stat = stat;\nfunction statSync(path, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path, settings);\n}\nexports.statSync = statSync;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings, callback) {\n settings.fs.lstat(path, (lstatError, lstat) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat);\n return;\n }\n settings.fs.stat(path, (statError, stat) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat);\n return;\n }\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat);\n });\n });\n}\nexports.read = read;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, result) {\n callback(null, result);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.read = void 0;\nfunction read(path, settings) {\n const lstat = settings.fs.lstatSync(path);\n if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat;\n }\n try {\n const stat = settings.fs.statSync(path);\n if (settings.markSymbolicLink) {\n stat.isSymbolicLink = () => true;\n }\n return stat;\n }\n catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat;\n }\n throw error;\n }\n}\nexports.read = read;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs = require(\"./adapters/fs\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nexports.Settings = settings_1.default;\nfunction walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === 'function') {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n}\nexports.walk = walk;\nfunction walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n}\nexports.walkSync = walkSync;\nfunction walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n}\nexports.walkStream = walkStream;\nfunction getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nclass AsyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n}\nexports.default = AsyncProvider;\nfunction callFailureCallback(callback, error) {\n callback(error);\n}\nfunction callSuccessCallback(callback, entries) {\n callback(null, entries);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst async_1 = require(\"../readers/async\");\nclass StreamProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => { },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit('error', error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n}\nexports.default = StreamProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nclass SyncProvider {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n}\nexports.default = SyncProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst fastq = require(\"fastq\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass AsyncReader extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit('end');\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error('The reader is already destroyed');\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on('entry', callback);\n }\n onError(callback) {\n this._emitter.once('error', callback);\n }\n onEnd(callback) {\n this._emitter.once('end', callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, undefined);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, undefined);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit('error', error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit('entry', entry);\n }\n}\nexports.default = AsyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\nfunction isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n}\nexports.isFatalError = isFatalError;\nfunction isAppliedFilter(filter, value) {\n return filter === null || filter(value);\n}\nexports.isAppliedFilter = isAppliedFilter;\nfunction replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n}\nexports.replacePathSegmentSeparator = replacePathSegmentSeparator;\nfunction joinPathSegments(a, b, separator) {\n if (a === '') {\n return b;\n }\n /**\n * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).\n */\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n}\nexports.joinPathSegments = joinPathSegments;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst common = require(\"./common\");\nclass Reader {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nconst common = require(\"./common\");\nconst reader_1 = require(\"./reader\");\nclass SyncReader extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n }\n catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== undefined) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n}\nexports.default = SyncReader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsScandir = require(\"@nodelib/fs.scandir\");\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, undefined);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n}\nexports.default = Settings;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction once(emitter, name, { signal } = {}) {\n return new Promise((resolve, reject) => {\n function cleanup() {\n signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', cleanup);\n emitter.removeListener(name, onEvent);\n emitter.removeListener('error', onError);\n }\n function onEvent(...args) {\n cleanup();\n resolve(args);\n }\n function onError(err) {\n cleanup();\n reject(err);\n }\n signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', cleanup);\n emitter.on(name, onEvent);\n emitter.on('error', onError);\n });\n}\nexports.default = once;\n//# sourceMappingURL=index.js.map","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar eventTargetShim = require('event-target-shim');\n\n/**\n * The signal class.\n * @see https://dom.spec.whatwg.org/#abortsignal\n */\nclass AbortSignal extends eventTargetShim.EventTarget {\n /**\n * AbortSignal cannot be constructed directly.\n */\n constructor() {\n super();\n throw new TypeError(\"AbortSignal cannot be constructed directly\");\n }\n /**\n * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.\n */\n get aborted() {\n const aborted = abortedFlags.get(this);\n if (typeof aborted !== \"boolean\") {\n throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? \"null\" : typeof this}`);\n }\n return aborted;\n }\n}\neventTargetShim.defineEventAttribute(AbortSignal.prototype, \"abort\");\n/**\n * Create an AbortSignal object.\n */\nfunction createAbortSignal() {\n const signal = Object.create(AbortSignal.prototype);\n eventTargetShim.EventTarget.call(signal);\n abortedFlags.set(signal, false);\n return signal;\n}\n/**\n * Abort a given signal.\n */\nfunction abortSignal(signal) {\n if (abortedFlags.get(signal) !== false) {\n return;\n }\n abortedFlags.set(signal, true);\n signal.dispatchEvent({ type: \"abort\" });\n}\n/**\n * Aborted flag for each instances.\n */\nconst abortedFlags = new WeakMap();\n// Properties should be enumerable.\nObject.defineProperties(AbortSignal.prototype, {\n aborted: { enumerable: true },\n});\n// `toString()` should return `\"[object AbortSignal]\"`\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortSignal\",\n });\n}\n\n/**\n * The AbortController.\n * @see https://dom.spec.whatwg.org/#abortcontroller\n */\nclass AbortController {\n /**\n * Initialize this controller.\n */\n constructor() {\n signals.set(this, createAbortSignal());\n }\n /**\n * Returns the `AbortSignal` object associated with this object.\n */\n get signal() {\n return getSignal(this);\n }\n /**\n * Abort and signal to any observers that the associated activity is to be aborted.\n */\n abort() {\n abortSignal(getSignal(this));\n }\n}\n/**\n * Associated signals.\n */\nconst signals = new WeakMap();\n/**\n * Get the associated signal of a given controller.\n */\nfunction getSignal(controller) {\n const signal = signals.get(controller);\n if (signal == null) {\n throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? \"null\" : typeof controller}`);\n }\n return signal;\n}\n// Properties should be enumerable.\nObject.defineProperties(AbortController.prototype, {\n signal: { enumerable: true },\n abort: { enumerable: true },\n});\nif (typeof Symbol === \"function\" && typeof Symbol.toStringTag === \"symbol\") {\n Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {\n configurable: true,\n value: \"AbortController\",\n });\n}\n\nexports.AbortController = AbortController;\nexports.AbortSignal = AbortSignal;\nexports.default = AbortController;\n\nmodule.exports = AbortController\nmodule.exports.AbortController = module.exports[\"default\"] = AbortController\nmodule.exports.AbortSignal = AbortSignal\n//# sourceMappingURL=abort-controller.js.map\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst events_1 = require(\"events\");\nconst debug_1 = __importDefault(require(\"debug\"));\nconst promisify_1 = __importDefault(require(\"./promisify\"));\nconst debug = debug_1.default('agent-base');\nfunction isAgent(v) {\n return Boolean(v) && typeof v.addRequest === 'function';\n}\nfunction isSecureEndpoint() {\n const { stack } = new Error();\n if (typeof stack !== 'string')\n return false;\n return stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);\n}\nfunction createAgent(callback, opts) {\n return new createAgent.Agent(callback, opts);\n}\n(function (createAgent) {\n /**\n * Base `http.Agent` implementation.\n * No pooling/keep-alive is implemented by default.\n *\n * @param {Function} callback\n * @api public\n */\n class Agent extends events_1.EventEmitter {\n constructor(callback, _opts) {\n super();\n let opts = _opts;\n if (typeof callback === 'function') {\n this.callback = callback;\n }\n else if (callback) {\n opts = callback;\n }\n // Timeout for the socket to be returned from the callback\n this.timeout = null;\n if (opts && typeof opts.timeout === 'number') {\n this.timeout = opts.timeout;\n }\n // These aren't actually used by `agent-base`, but are required\n // for the TypeScript definition files in `@types/node` :/\n this.maxFreeSockets = 1;\n this.maxSockets = 1;\n this.maxTotalSockets = Infinity;\n this.sockets = {};\n this.freeSockets = {};\n this.requests = {};\n this.options = {};\n }\n get defaultPort() {\n if (typeof this.explicitDefaultPort === 'number') {\n return this.explicitDefaultPort;\n }\n return isSecureEndpoint() ? 443 : 80;\n }\n set defaultPort(v) {\n this.explicitDefaultPort = v;\n }\n get protocol() {\n if (typeof this.explicitProtocol === 'string') {\n return this.explicitProtocol;\n }\n return isSecureEndpoint() ? 'https:' : 'http:';\n }\n set protocol(v) {\n this.explicitProtocol = v;\n }\n callback(req, opts, fn) {\n throw new Error('\"agent-base\" has no default implementation, you must subclass and override `callback()`');\n }\n /**\n * Called by node-core's \"_http_client.js\" module when creating\n * a new HTTP request with this Agent instance.\n *\n * @api public\n */\n addRequest(req, _opts) {\n const opts = Object.assign({}, _opts);\n if (typeof opts.secureEndpoint !== 'boolean') {\n opts.secureEndpoint = isSecureEndpoint();\n }\n if (opts.host == null) {\n opts.host = 'localhost';\n }\n if (opts.port == null) {\n opts.port = opts.secureEndpoint ? 443 : 80;\n }\n if (opts.protocol == null) {\n opts.protocol = opts.secureEndpoint ? 'https:' : 'http:';\n }\n if (opts.host && opts.path) {\n // If both a `host` and `path` are specified then it's most\n // likely the result of a `url.parse()` call... we need to\n // remove the `path` portion so that `net.connect()` doesn't\n // attempt to open that as a unix socket file.\n delete opts.path;\n }\n delete opts.agent;\n delete opts.hostname;\n delete opts._defaultAgent;\n delete opts.defaultPort;\n delete opts.createConnection;\n // Hint to use \"Connection: close\"\n // XXX: non-documented `http` module API :(\n req._last = true;\n req.shouldKeepAlive = false;\n let timedOut = false;\n let timeoutId = null;\n const timeoutMs = opts.timeout || this.timeout;\n const onerror = (err) => {\n if (req._hadError)\n return;\n req.emit('error', err);\n // For Safety. Some additional errors might fire later on\n // and we need to make sure we don't double-fire the error event.\n req._hadError = true;\n };\n const ontimeout = () => {\n timeoutId = null;\n timedOut = true;\n const err = new Error(`A \"socket\" was not created for HTTP request before ${timeoutMs}ms`);\n err.code = 'ETIMEOUT';\n onerror(err);\n };\n const callbackError = (err) => {\n if (timedOut)\n return;\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n onerror(err);\n };\n const onsocket = (socket) => {\n if (timedOut)\n return;\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n if (isAgent(socket)) {\n // `socket` is actually an `http.Agent` instance, so\n // relinquish responsibility for this `req` to the Agent\n // from here on\n debug('Callback returned another Agent instance %o', socket.constructor.name);\n socket.addRequest(req, opts);\n return;\n }\n if (socket) {\n socket.once('free', () => {\n this.freeSocket(socket, opts);\n });\n req.onSocket(socket);\n return;\n }\n const err = new Error(`no Duplex stream was returned to agent-base for \\`${req.method} ${req.path}\\``);\n onerror(err);\n };\n if (typeof this.callback !== 'function') {\n onerror(new Error('`callback` is not defined'));\n return;\n }\n if (!this.promisifiedCallback) {\n if (this.callback.length >= 3) {\n debug('Converting legacy callback function to promise');\n this.promisifiedCallback = promisify_1.default(this.callback);\n }\n else {\n this.promisifiedCallback = this.callback;\n }\n }\n if (typeof timeoutMs === 'number' && timeoutMs > 0) {\n timeoutId = setTimeout(ontimeout, timeoutMs);\n }\n if ('port' in opts && typeof opts.port !== 'number') {\n opts.port = Number(opts.port);\n }\n try {\n debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`);\n Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError);\n }\n catch (err) {\n Promise.reject(err).catch(callbackError);\n }\n }\n freeSocket(socket, opts) {\n debug('Freeing socket %o %o', socket.constructor.name, opts);\n socket.destroy();\n }\n destroy() {\n debug('Destroying agent %o', this.constructor.name);\n }\n }\n createAgent.Agent = Agent;\n // So that `instanceof` works correctly\n createAgent.prototype = createAgent.Agent.prototype;\n})(createAgent || (createAgent = {}));\nmodule.exports = createAgent;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction promisify(fn) {\n return function (req, opts) {\n return new Promise((resolve, reject) => {\n fn.call(this, req, opts, (err, rtn) => {\n if (err) {\n reject(err);\n }\n else {\n resolve(rtn);\n }\n });\n });\n };\n}\nexports.default = promisify;\n//# sourceMappingURL=promisify.js.map","'use strict';\n\nconst arrify = value => {\n\tif (value === null || value === undefined) {\n\t\treturn [];\n\t}\n\n\tif (Array.isArray(value)) {\n\t\treturn value;\n\t}\n\n\tif (typeof value === 'string') {\n\t\treturn [value];\n\t}\n\n\tif (typeof value[Symbol.iterator] === 'function') {\n\t\treturn [...value];\n\t}\n\n\treturn [value];\n};\n\nmodule.exports = arrify;\n","// Packages\nvar retrier = require('retry');\n\nfunction retry(fn, opts) {\n function run(resolve, reject) {\n var options = opts || {};\n var op;\n\n // Default `randomize` to true\n if (!('randomize' in options)) {\n options.randomize = true;\n }\n\n op = retrier.operation(options);\n\n // We allow the user to abort retrying\n // this makes sense in the cases where\n // knowledge is obtained that retrying\n // would be futile (e.g.: auth errors)\n\n function bail(err) {\n reject(err || new Error('Aborted'));\n }\n\n function onError(err, num) {\n if (err.bail) {\n bail(err);\n return;\n }\n\n if (!op.retry(err)) {\n reject(op.mainError());\n } else if (options.onRetry) {\n options.onRetry(err, num);\n }\n }\n\n function runAttempt(num) {\n var val;\n\n try {\n val = fn(bail, num);\n } catch (err) {\n onError(err, num);\n return;\n }\n\n Promise.resolve(val)\n .then(resolve)\n .catch(function catchIt(err) {\n onError(err, num);\n });\n }\n\n op.attempt(runAttempt);\n }\n\n return new Promise(run);\n}\n\nmodule.exports = retry;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.0.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2021 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","'use strict';\n\nconst stringify = require('./lib/stringify');\nconst compile = require('./lib/compile');\nconst expand = require('./lib/expand');\nconst parse = require('./lib/parse');\n\n/**\n * Expand the given pattern or create a regex-compatible string.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)']\n * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c']\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {String}\n * @api public\n */\n\nconst braces = (input, options = {}) => {\n let output = [];\n\n if (Array.isArray(input)) {\n for (let pattern of input) {\n let result = braces.create(pattern, options);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options));\n }\n\n if (options && options.expand === true && options.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n};\n\n/**\n * Parse the given `str` with the given `options`.\n *\n * ```js\n * // braces.parse(pattern, [, options]);\n * const ast = braces.parse('a/{b,c}/d');\n * console.log(ast);\n * ```\n * @param {String} pattern Brace pattern to parse\n * @param {Object} options\n * @return {Object} Returns an AST\n * @api public\n */\n\nbraces.parse = (input, options = {}) => parse(input, options);\n\n/**\n * Creates a braces string from an AST, or an AST node.\n *\n * ```js\n * const braces = require('braces');\n * let ast = braces.parse('foo/{a,b}/bar');\n * console.log(stringify(ast.nodes[2])); //=> '{a,b}'\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.stringify = (input, options = {}) => {\n if (typeof input === 'string') {\n return stringify(braces.parse(input, options), options);\n }\n return stringify(input, options);\n};\n\n/**\n * Compiles a brace pattern into a regex-compatible, optimized string.\n * This method is called by the main [braces](#braces) function by default.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.compile('a/{b,c}/d'));\n * //=> ['a/(b|c)/d']\n * ```\n * @param {String} `input` Brace pattern or AST.\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.compile = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n return compile(input, options);\n};\n\n/**\n * Expands a brace pattern into an array. This method is called by the\n * main [braces](#braces) function when `options.expand` is true. Before\n * using this method it's recommended that you read the [performance notes](#performance))\n * and advantages of using [.compile](#compile) instead.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.expand('a/{b,c}/d'));\n * //=> ['a/b/d', 'a/c/d'];\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.expand = (input, options = {}) => {\n if (typeof input === 'string') {\n input = braces.parse(input, options);\n }\n\n let result = expand(input, options);\n\n // filter out empty strings if specified\n if (options.noempty === true) {\n result = result.filter(Boolean);\n }\n\n // filter out duplicates if specified\n if (options.nodupes === true) {\n result = [...new Set(result)];\n }\n\n return result;\n};\n\n/**\n * Processes a brace pattern and returns either an expanded array\n * (if `options.expand` is true), a highly optimized regex-compatible string.\n * This method is called by the main [braces](#braces) function.\n *\n * ```js\n * const braces = require('braces');\n * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}'))\n * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)'\n * ```\n * @param {String} `pattern` Brace pattern\n * @param {Object} `options`\n * @return {Array} Returns an array of expanded values.\n * @api public\n */\n\nbraces.create = (input, options = {}) => {\n if (input === '' || input.length < 3) {\n return [input];\n }\n\n return options.expand !== true\n ? braces.compile(input, options)\n : braces.expand(input, options);\n};\n\n/**\n * Expose \"braces\"\n */\n\nmodule.exports = braces;\n","'use strict';\n\nconst fill = require('fill-range');\nconst utils = require('./utils');\n\nconst compile = (ast, options = {}) => {\n let walk = (node, parent = {}) => {\n let invalidBlock = utils.isInvalidBrace(parent);\n let invalidNode = node.invalid === true && options.escapeInvalid === true;\n let invalid = invalidBlock === true || invalidNode === true;\n let prefix = options.escapeInvalid === true ? '\\\\' : '';\n let output = '';\n\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n if (node.isClose === true) {\n return prefix + node.value;\n }\n\n if (node.type === 'open') {\n return invalid ? (prefix + node.value) : '(';\n }\n\n if (node.type === 'close') {\n return invalid ? (prefix + node.value) : ')';\n }\n\n if (node.type === 'comma') {\n return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|');\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes && node.ranges > 0) {\n let args = utils.reduce(node.nodes);\n let range = fill(...args, { ...options, wrap: false, toRegex: true });\n\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n\n if (node.nodes) {\n for (let child of node.nodes) {\n output += walk(child, node);\n }\n }\n return output;\n };\n\n return walk(ast);\n};\n\nmodule.exports = compile;\n","'use strict';\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n\n // Digits\n CHAR_0: '0', /* 0 */\n CHAR_9: '9', /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 'A', /* A */\n CHAR_LOWERCASE_A: 'a', /* a */\n CHAR_UPPERCASE_Z: 'Z', /* Z */\n CHAR_LOWERCASE_Z: 'z', /* z */\n\n CHAR_LEFT_PARENTHESES: '(', /* ( */\n CHAR_RIGHT_PARENTHESES: ')', /* ) */\n\n CHAR_ASTERISK: '*', /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: '&', /* & */\n CHAR_AT: '@', /* @ */\n CHAR_BACKSLASH: '\\\\', /* \\ */\n CHAR_BACKTICK: '`', /* ` */\n CHAR_CARRIAGE_RETURN: '\\r', /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */\n CHAR_COLON: ':', /* : */\n CHAR_COMMA: ',', /* , */\n CHAR_DOLLAR: '$', /* . */\n CHAR_DOT: '.', /* . */\n CHAR_DOUBLE_QUOTE: '\"', /* \" */\n CHAR_EQUAL: '=', /* = */\n CHAR_EXCLAMATION_MARK: '!', /* ! */\n CHAR_FORM_FEED: '\\f', /* \\f */\n CHAR_FORWARD_SLASH: '/', /* / */\n CHAR_HASH: '#', /* # */\n CHAR_HYPHEN_MINUS: '-', /* - */\n CHAR_LEFT_ANGLE_BRACKET: '<', /* < */\n CHAR_LEFT_CURLY_BRACE: '{', /* { */\n CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */\n CHAR_LINE_FEED: '\\n', /* \\n */\n CHAR_NO_BREAK_SPACE: '\\u00A0', /* \\u00A0 */\n CHAR_PERCENT: '%', /* % */\n CHAR_PLUS: '+', /* + */\n CHAR_QUESTION_MARK: '?', /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */\n CHAR_RIGHT_CURLY_BRACE: '}', /* } */\n CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */\n CHAR_SEMICOLON: ';', /* ; */\n CHAR_SINGLE_QUOTE: '\\'', /* ' */\n CHAR_SPACE: ' ', /* */\n CHAR_TAB: '\\t', /* \\t */\n CHAR_UNDERSCORE: '_', /* _ */\n CHAR_VERTICAL_LINE: '|', /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\\uFEFF' /* \\uFEFF */\n};\n","'use strict';\n\nconst fill = require('fill-range');\nconst stringify = require('./stringify');\nconst utils = require('./utils');\n\nconst append = (queue = '', stash = '', enclose = false) => {\n let result = [];\n\n queue = [].concat(queue);\n stash = [].concat(stash);\n\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;\n }\n\n for (let item of queue) {\n if (Array.isArray(item)) {\n for (let value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));\n }\n }\n }\n return utils.flatten(result);\n};\n\nconst expand = (ast, options = {}) => {\n let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit;\n\n let walk = (node, parent = {}) => {\n node.queue = [];\n\n let p = parent;\n let q = parent.queue;\n\n while (p.type !== 'brace' && p.type !== 'root' && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify(node, options)));\n return;\n }\n\n if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), ['{}']));\n return;\n }\n\n if (node.nodes && node.ranges > 0) {\n let args = utils.reduce(node.nodes);\n\n if (utils.exceedsLimit(...args, options.step, rangeLimit)) {\n throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.');\n }\n\n let range = fill(...args, options);\n if (range.length === 0) {\n range = stringify(node, options);\n }\n\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n\n let enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n\n while (block.type !== 'brace' && block.type !== 'root' && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i];\n\n if (child.type === 'comma' && node.type === 'brace') {\n if (i === 1) queue.push('');\n queue.push('');\n continue;\n }\n\n if (child.type === 'close') {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n\n if (child.value && child.type !== 'open') {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n\n if (child.nodes) {\n walk(child, node);\n }\n }\n\n return queue;\n };\n\n return utils.flatten(walk(ast));\n};\n\nmodule.exports = expand;\n","'use strict';\n\nconst stringify = require('./stringify');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n CHAR_BACKSLASH, /* \\ */\n CHAR_BACKTICK, /* ` */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_RIGHT_SQUARE_BRACKET, /* ] */\n CHAR_DOUBLE_QUOTE, /* \" */\n CHAR_SINGLE_QUOTE, /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n} = require('./constants');\n\n/**\n * parse\n */\n\nconst parse = (input, options = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n let opts = options || {};\n let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n\n let ast = { type: 'root', input, nodes: [] };\n let stack = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n let length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n let memo = {};\n\n /**\n * Helpers\n */\n\n const advance = () => input[index++];\n const push = node => {\n if (node.type === 'text' && prev.type === 'dot') {\n prev.type = 'text';\n }\n\n if (prev && prev.type === 'text' && node.type === 'text') {\n prev.value += node.value;\n return;\n }\n\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n\n push({ type: 'bos' });\n\n while (index < length) {\n block = stack[stack.length - 1];\n value = advance();\n\n /**\n * Invalid chars\n */\n\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n\n /**\n * Escaped chars\n */\n\n if (value === CHAR_BACKSLASH) {\n push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() });\n continue;\n }\n\n /**\n * Right square bracket (literal): ']'\n */\n\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push({ type: 'text', value: '\\\\' + value });\n continue;\n }\n\n /**\n * Left square bracket: '['\n */\n\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n\n let closed = true;\n let next;\n\n while (index < length && (next = advance())) {\n value += next;\n\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n\n if (brackets === 0) {\n break;\n }\n }\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push({ type: 'paren', nodes: [] });\n stack.push(block);\n push({ type: 'text', value });\n continue;\n }\n\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== 'paren') {\n push({ type: 'text', value });\n continue;\n }\n block = stack.pop();\n push({ type: 'text', value });\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Quotes: '|\"|`\n */\n\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n let open = value;\n let next;\n\n if (options.keepQuotes !== true) {\n value = '';\n }\n\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n\n if (next === open) {\n if (options.keepQuotes === true) value += next;\n break;\n }\n\n value += next;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Left curly brace: '{'\n */\n\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n\n let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true;\n let brace = {\n type: 'brace',\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n\n block = push(brace);\n stack.push(block);\n push({ type: 'open', value });\n continue;\n }\n\n /**\n * Right curly brace: '}'\n */\n\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== 'brace') {\n push({ type: 'text', value });\n continue;\n }\n\n let type = 'close';\n block = stack.pop();\n block.close = true;\n\n push({ type, value });\n depth--;\n\n block = stack[stack.length - 1];\n continue;\n }\n\n /**\n * Comma: ','\n */\n\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n let open = block.nodes.shift();\n block.nodes = [open, { type: 'text', value: stringify(block) }];\n }\n\n push({ type: 'comma', value });\n block.commas++;\n continue;\n }\n\n /**\n * Dot: '.'\n */\n\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n let siblings = block.nodes;\n\n if (depth === 0 || siblings.length === 0) {\n push({ type: 'text', value });\n continue;\n }\n\n if (prev.type === 'dot') {\n block.range = [];\n prev.value += value;\n prev.type = 'range';\n\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = 'text';\n continue;\n }\n\n block.ranges++;\n block.args = [];\n continue;\n }\n\n if (prev.type === 'range') {\n siblings.pop();\n\n let before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n\n push({ type: 'dot', value });\n continue;\n }\n\n /**\n * Text\n */\n\n push({ type: 'text', value });\n }\n\n // Mark imbalanced braces and brackets as invalid\n do {\n block = stack.pop();\n\n if (block.type !== 'root') {\n block.nodes.forEach(node => {\n if (!node.nodes) {\n if (node.type === 'open') node.isOpen = true;\n if (node.type === 'close') node.isClose = true;\n if (!node.nodes) node.type = 'text';\n node.invalid = true;\n }\n });\n\n // get the location of the block on parent.nodes (block's siblings)\n let parent = stack[stack.length - 1];\n let index = parent.nodes.indexOf(block);\n // replace the (invalid) block with it's nodes\n parent.nodes.splice(index, 1, ...block.nodes);\n }\n } while (stack.length > 0);\n\n push({ type: 'eos' });\n return ast;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst utils = require('./utils');\n\nmodule.exports = (ast, options = {}) => {\n let stringify = (node, parent = {}) => {\n let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent);\n let invalidNode = node.invalid === true && options.escapeInvalid === true;\n let output = '';\n\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return '\\\\' + node.value;\n }\n return node.value;\n }\n\n if (node.value) {\n return node.value;\n }\n\n if (node.nodes) {\n for (let child of node.nodes) {\n output += stringify(child);\n }\n }\n return output;\n };\n\n return stringify(ast);\n};\n\n","'use strict';\n\nexports.isInteger = num => {\n if (typeof num === 'number') {\n return Number.isInteger(num);\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isInteger(Number(num));\n }\n return false;\n};\n\n/**\n * Find a node of the given type\n */\n\nexports.find = (node, type) => node.nodes.find(node => node.type === type);\n\n/**\n * Find a node of the given type\n */\n\nexports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return ((Number(max) - Number(min)) / Number(step)) >= limit;\n};\n\n/**\n * Escape the given node with '\\\\' before node.value\n */\n\nexports.escapeNode = (block, n = 0, type) => {\n let node = block.nodes[n];\n if (!node) return;\n\n if ((type && node.type === type) || node.type === 'open' || node.type === 'close') {\n if (node.escaped !== true) {\n node.value = '\\\\' + node.value;\n node.escaped = true;\n }\n }\n};\n\n/**\n * Returns true if the given brace node should be enclosed in literal braces\n */\n\nexports.encloseBrace = node => {\n if (node.type !== 'brace') return false;\n if ((node.commas >> 0 + node.ranges >> 0) === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a brace node is invalid.\n */\n\nexports.isInvalidBrace = block => {\n if (block.type !== 'brace') return false;\n if (block.invalid === true || block.dollar) return true;\n if ((block.commas >> 0 + block.ranges >> 0) === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n};\n\n/**\n * Returns true if a node is an open or close node\n */\n\nexports.isOpenOrClose = node => {\n if (node.type === 'open' || node.type === 'close') {\n return true;\n }\n return node.open === true || node.close === true;\n};\n\n/**\n * Reduce an array of text nodes.\n */\n\nexports.reduce = nodes => nodes.reduce((acc, node) => {\n if (node.type === 'text') acc.push(node.value);\n if (node.type === 'range') node.type = 'text';\n return acc;\n}, []);\n\n/**\n * Flatten an array\n */\n\nexports.flatten = (...args) => {\n const result = [];\n const flat = arr => {\n for (let i = 0; i < arr.length; i++) {\n let ele = arr[i];\n Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele);\n }\n return result;\n };\n flat(args);\n return result;\n};\n","/*jshint node:true */\n'use strict';\nvar Buffer = require('buffer').Buffer; // browserify\nvar SlowBuffer = require('buffer').SlowBuffer;\n\nmodule.exports = bufferEq;\n\nfunction bufferEq(a, b) {\n\n // shortcutting on type is necessary for correctness\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n return false;\n }\n\n // buffer sizes should be well-known information, so despite this\n // shortcutting, it doesn't leak any information about the *contents* of the\n // buffers.\n if (a.length !== b.length) {\n return false;\n }\n\n var c = 0;\n for (var i = 0; i < a.length; i++) {\n /*jshint bitwise:false */\n c |= a[i] ^ b[i]; // XOR\n }\n return c === 0;\n}\n\nbufferEq.install = function() {\n Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {\n return bufferEq(this, that);\n };\n};\n\nvar origBufEqual = Buffer.prototype.equal;\nvar origSlowBufEqual = SlowBuffer.prototype.equal;\nbufferEq.restore = function() {\n Buffer.prototype.equal = origBufEqual;\n SlowBuffer.prototype.equal = origSlowBufEqual;\n};\n","/*!\n * compressible\n * Copyright(c) 2013 Jonathan Ong\n * Copyright(c) 2014 Jeremiah Senkpiel\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\n\n/**\n * Module variables.\n * @private\n */\n\nvar COMPRESSIBLE_TYPE_REGEXP = /^text\\/|\\+(?:json|text|xml)$/i\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = compressible\n\n/**\n * Checks if a type is compressible.\n *\n * @param {string} type\n * @return {Boolean} compressible\n * @public\n */\n\nfunction compressible (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // strip parameters\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && match[1].toLowerCase()\n var data = db[mime]\n\n // return database information\n if (data && data.compressible !== undefined) {\n return data.compressible\n }\n\n // fallback to regexp or unknown\n return COMPRESSIBLE_TYPE_REGEXP.test(mime) || undefined\n}\n","'use strict';\nconst path = require('path');\nconst os = require('os');\nconst fs = require('graceful-fs');\nconst makeDir = require('make-dir');\nconst xdgBasedir = require('xdg-basedir');\nconst writeFileAtomic = require('write-file-atomic');\nconst dotProp = require('dot-prop');\nconst uniqueString = require('unique-string');\n\nconst configDirectory = xdgBasedir.config || path.join(os.tmpdir(), uniqueString());\nconst permissionError = 'You don\\'t have access to this file.';\nconst makeDirOptions = {mode: 0o0700};\nconst writeFileOptions = {mode: 0o0600};\n\nclass Configstore {\n\tconstructor(id, defaults, options = {}) {\n\t\tconst pathPrefix = options.globalConfigPath ?\n\t\t\tpath.join(id, 'config.json') :\n\t\t\tpath.join('configstore', `${id}.json`);\n\n\t\tthis.path = options.configPath || path.join(configDirectory, pathPrefix);\n\n\t\tif (defaults) {\n\t\t\tthis.all = {\n\t\t\t\t...defaults,\n\t\t\t\t...this.all\n\t\t\t};\n\t\t}\n\t}\n\n\tget all() {\n\t\ttry {\n\t\t\treturn JSON.parse(fs.readFileSync(this.path, 'utf8'));\n\t\t} catch (error) {\n\t\t\t// Create directory if it doesn't exist\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// Improve the message of permission errors\n\t\t\tif (error.code === 'EACCES') {\n\t\t\t\terror.message = `${error.message}\\n${permissionError}\\n`;\n\t\t\t}\n\n\t\t\t// Empty the file if it encounters invalid JSON\n\t\t\tif (error.name === 'SyntaxError') {\n\t\t\t\twriteFileAtomic.sync(this.path, '', writeFileOptions);\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tset all(value) {\n\t\ttry {\n\t\t\t// Make sure the folder exists as it could have been deleted in the meantime\n\t\t\tmakeDir.sync(path.dirname(this.path), makeDirOptions);\n\n\t\t\twriteFileAtomic.sync(this.path, JSON.stringify(value, undefined, '\\t'), writeFileOptions);\n\t\t} catch (error) {\n\t\t\t// Improve the message of permission errors\n\t\t\tif (error.code === 'EACCES') {\n\t\t\t\terror.message = `${error.message}\\n${permissionError}\\n`;\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tget size() {\n\t\treturn Object.keys(this.all || {}).length;\n\t}\n\n\tget(key) {\n\t\treturn dotProp.get(this.all, key);\n\t}\n\n\tset(key, value) {\n\t\tconst config = this.all;\n\n\t\tif (arguments.length === 1) {\n\t\t\tfor (const k of Object.keys(key)) {\n\t\t\t\tdotProp.set(config, k, key[k]);\n\t\t\t}\n\t\t} else {\n\t\t\tdotProp.set(config, key, value);\n\t\t}\n\n\t\tthis.all = config;\n\t}\n\n\thas(key) {\n\t\treturn dotProp.has(this.all, key);\n\t}\n\n\tdelete(key) {\n\t\tconst config = this.all;\n\t\tdotProp.delete(config, key);\n\t\tthis.all = config;\n\t}\n\n\tclear() {\n\t\tthis.all = {};\n\t}\n}\n\nmodule.exports = Configstore;\n","'use strict';\nconst crypto = require('crypto');\n\nmodule.exports = length => {\n\tif (!Number.isFinite(length)) {\n\t\tthrow new TypeError('Expected a finite number');\n\t}\n\n\treturn crypto.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length);\n};\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\nconst path = require('path');\nconst pathType = require('path-type');\n\nconst getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0];\n\nconst getPath = (filepath, cwd) => {\n\tconst pth = filepath[0] === '!' ? filepath.slice(1) : filepath;\n\treturn path.isAbsolute(pth) ? pth : path.join(cwd, pth);\n};\n\nconst addExtensions = (file, extensions) => {\n\tif (path.extname(file)) {\n\t\treturn `**/${file}`;\n\t}\n\n\treturn `**/${file}.${getExtensions(extensions)}`;\n};\n\nconst getGlob = (directory, options) => {\n\tif (options.files && !Array.isArray(options.files)) {\n\t\tthrow new TypeError(`Expected \\`files\\` to be of type \\`Array\\` but received type \\`${typeof options.files}\\``);\n\t}\n\n\tif (options.extensions && !Array.isArray(options.extensions)) {\n\t\tthrow new TypeError(`Expected \\`extensions\\` to be of type \\`Array\\` but received type \\`${typeof options.extensions}\\``);\n\t}\n\n\tif (options.files && options.extensions) {\n\t\treturn options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions)));\n\t}\n\n\tif (options.files) {\n\t\treturn options.files.map(x => path.posix.join(directory, `**/${x}`));\n\t}\n\n\tif (options.extensions) {\n\t\treturn [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)];\n\t}\n\n\treturn [path.posix.join(directory, '**')];\n};\n\nmodule.exports = async (input, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\t...options\n\t};\n\n\tif (typeof options.cwd !== 'string') {\n\t\tthrow new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof options.cwd}\\``);\n\t}\n\n\tconst globs = await Promise.all([].concat(input).map(async x => {\n\t\tconst isDirectory = await pathType.isDirectory(getPath(x, options.cwd));\n\t\treturn isDirectory ? getGlob(x, options) : x;\n\t}));\n\n\treturn [].concat.apply([], globs); // eslint-disable-line prefer-spread\n};\n\nmodule.exports.sync = (input, options) => {\n\toptions = {\n\t\tcwd: process.cwd(),\n\t\t...options\n\t};\n\n\tif (typeof options.cwd !== 'string') {\n\t\tthrow new TypeError(`Expected \\`cwd\\` to be of type \\`string\\` but received type \\`${typeof options.cwd}\\``);\n\t}\n\n\tconst globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x);\n\n\treturn [].concat.apply([], globs); // eslint-disable-line prefer-spread\n};\n","'use strict';\nconst isObj = require('is-obj');\n\nconst disallowedKeys = [\n\t'__proto__',\n\t'prototype',\n\t'constructor'\n];\n\nconst isValidPath = pathSegments => !pathSegments.some(segment => disallowedKeys.includes(segment));\n\nfunction getPathSegments(path) {\n\tconst pathArray = path.split('.');\n\tconst parts = [];\n\n\tfor (let i = 0; i < pathArray.length; i++) {\n\t\tlet p = pathArray[i];\n\n\t\twhile (p[p.length - 1] === '\\\\' && pathArray[i + 1] !== undefined) {\n\t\t\tp = p.slice(0, -1) + '.';\n\t\t\tp += pathArray[++i];\n\t\t}\n\n\t\tparts.push(p);\n\t}\n\n\tif (!isValidPath(parts)) {\n\t\treturn [];\n\t}\n\n\treturn parts;\n}\n\nmodule.exports = {\n\tget(object, path, value) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn value === undefined ? object : value;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\t\tif (pathArray.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tif (!Object.prototype.propertyIsEnumerable.call(object, pathArray[i])) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tobject = object[pathArray[i]];\n\n\t\t\tif (object === undefined || object === null) {\n\t\t\t\t// `object` is either `undefined` or `null` so we want to stop the loop, and\n\t\t\t\t// if this is not the last bit of the path, and\n\t\t\t\t// if it did't return `undefined`\n\t\t\t\t// it would return `null` if `object` is `null`\n\t\t\t\t// but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null`\n\t\t\t\tif (i !== pathArray.length - 1) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn object;\n\t},\n\n\tset(object, path, value) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn object;\n\t\t}\n\n\t\tconst root = object;\n\t\tconst pathArray = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tconst p = pathArray[i];\n\n\t\t\tif (!isObj(object[p])) {\n\t\t\t\tobject[p] = {};\n\t\t\t}\n\n\t\t\tif (i === pathArray.length - 1) {\n\t\t\t\tobject[p] = value;\n\t\t\t}\n\n\t\t\tobject = object[p];\n\t\t}\n\n\t\treturn root;\n\t},\n\n\tdelete(object, path) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tconst p = pathArray[i];\n\n\t\t\tif (i === pathArray.length - 1) {\n\t\t\t\tdelete object[p];\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tobject = object[p];\n\n\t\t\tif (!isObj(object)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\thas(object, path) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\t\tif (pathArray.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line unicorn/no-for-loop\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tif (isObj(object)) {\n\t\t\t\tif (!(pathArray[i] in object)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tobject = object[pathArray[i]];\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n};\n","var stream = require('readable-stream')\nvar eos = require('end-of-stream')\nvar inherits = require('inherits')\nvar shift = require('stream-shift')\n\nvar SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from)\n ? Buffer.from([0])\n : new Buffer([0])\n\nvar onuncork = function(self, fn) {\n if (self._corked) self.once('uncork', fn)\n else fn()\n}\n\nvar autoDestroy = function (self, err) {\n if (self._autoDestroy) self.destroy(err)\n}\n\nvar destroyer = function(self, end) {\n return function(err) {\n if (err) autoDestroy(self, err.message === 'premature close' ? null : err)\n else if (end && !self._ended) self.end()\n }\n}\n\nvar end = function(ws, fn) {\n if (!ws) return fn()\n if (ws._writableState && ws._writableState.finished) return fn()\n if (ws._writableState) return ws.end(fn)\n ws.end()\n fn()\n}\n\nvar noop = function() {}\n\nvar toStreams2 = function(rs) {\n return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)\n}\n\nvar Duplexify = function(writable, readable, opts) {\n if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)\n stream.Duplex.call(this, opts)\n\n this._writable = null\n this._readable = null\n this._readable2 = null\n\n this._autoDestroy = !opts || opts.autoDestroy !== false\n this._forwardDestroy = !opts || opts.destroy !== false\n this._forwardEnd = !opts || opts.end !== false\n this._corked = 1 // start corked\n this._ondrain = null\n this._drained = false\n this._forwarding = false\n this._unwrite = null\n this._unread = null\n this._ended = false\n\n this.destroyed = false\n\n if (writable) this.setWritable(writable)\n if (readable) this.setReadable(readable)\n}\n\ninherits(Duplexify, stream.Duplex)\n\nDuplexify.obj = function(writable, readable, opts) {\n if (!opts) opts = {}\n opts.objectMode = true\n opts.highWaterMark = 16\n return new Duplexify(writable, readable, opts)\n}\n\nDuplexify.prototype.cork = function() {\n if (++this._corked === 1) this.emit('cork')\n}\n\nDuplexify.prototype.uncork = function() {\n if (this._corked && --this._corked === 0) this.emit('uncork')\n}\n\nDuplexify.prototype.setWritable = function(writable) {\n if (this._unwrite) this._unwrite()\n\n if (this.destroyed) {\n if (writable && writable.destroy) writable.destroy()\n return\n }\n\n if (writable === null || writable === false) {\n this.end()\n return\n }\n\n var self = this\n var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))\n\n var ondrain = function() {\n var ondrain = self._ondrain\n self._ondrain = null\n if (ondrain) ondrain()\n }\n\n var clear = function() {\n self._writable.removeListener('drain', ondrain)\n unend()\n }\n\n if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks\n\n this._writable = writable\n this._writable.on('drain', ondrain)\n this._unwrite = clear\n\n this.uncork() // always uncork setWritable\n}\n\nDuplexify.prototype.setReadable = function(readable) {\n if (this._unread) this._unread()\n\n if (this.destroyed) {\n if (readable && readable.destroy) readable.destroy()\n return\n }\n\n if (readable === null || readable === false) {\n this.push(null)\n this.resume()\n return\n }\n\n var self = this\n var unend = eos(readable, {writable:false, readable:true}, destroyer(this))\n\n var onreadable = function() {\n self._forward()\n }\n\n var onend = function() {\n self.push(null)\n }\n\n var clear = function() {\n self._readable2.removeListener('readable', onreadable)\n self._readable2.removeListener('end', onend)\n unend()\n }\n\n this._drained = true\n this._readable = readable\n this._readable2 = readable._readableState ? readable : toStreams2(readable)\n this._readable2.on('readable', onreadable)\n this._readable2.on('end', onend)\n this._unread = clear\n\n this._forward()\n}\n\nDuplexify.prototype._read = function() {\n this._drained = true\n this._forward()\n}\n\nDuplexify.prototype._forward = function() {\n if (this._forwarding || !this._readable2 || !this._drained) return\n this._forwarding = true\n\n var data\n\n while (this._drained && (data = shift(this._readable2)) !== null) {\n if (this.destroyed) continue\n this._drained = this.push(data)\n }\n\n this._forwarding = false\n}\n\nDuplexify.prototype.destroy = function(err, cb) {\n if (!cb) cb = noop\n if (this.destroyed) return cb(null)\n this.destroyed = true\n\n var self = this\n process.nextTick(function() {\n self._destroy(err)\n cb(null)\n })\n}\n\nDuplexify.prototype._destroy = function(err) {\n if (err) {\n var ondrain = this._ondrain\n this._ondrain = null\n if (ondrain) ondrain(err)\n else this.emit('error', err)\n }\n\n if (this._forwardDestroy) {\n if (this._readable && this._readable.destroy) this._readable.destroy()\n if (this._writable && this._writable.destroy) this._writable.destroy()\n }\n\n this.emit('close')\n}\n\nDuplexify.prototype._write = function(data, enc, cb) {\n if (this.destroyed) return\n if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))\n if (data === SIGNAL_FLUSH) return this._finish(cb)\n if (!this._writable) return cb()\n\n if (this._writable.write(data) === false) this._ondrain = cb\n else if (!this.destroyed) cb()\n}\n\nDuplexify.prototype._finish = function(cb) {\n var self = this\n this.emit('preend')\n onuncork(this, function() {\n end(self._forwardEnd && self._writable, function() {\n // haxx to not emit prefinish twice\n if (self._writableState.prefinished === false) self._writableState.prefinished = true\n self.emit('prefinish')\n onuncork(self, cb)\n })\n })\n}\n\nDuplexify.prototype.end = function(data, enc, cb) {\n if (typeof data === 'function') return this.end(null, null, data)\n if (typeof enc === 'function') return this.end(data, null, enc)\n this._ended = true\n if (data) this.write(data)\n if (!this._writableState.ending && !this._writableState.destroyed) this.write(SIGNAL_FLUSH)\n return stream.Writable.prototype.end.call(this, cb)\n}\n\nmodule.exports = Duplexify\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar getParamBytesForAlg = require('./param-bytes-for-alg');\n\nvar MAX_OCTET = 0x80,\n\tCLASS_UNIVERSAL = 0,\n\tPRIMITIVE_BIT = 0x20,\n\tTAG_SEQ = 0x10,\n\tTAG_INT = 0x02,\n\tENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6),\n\tENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6);\n\nfunction base64Url(base64) {\n\treturn base64\n\t\t.replace(/=/g, '')\n\t\t.replace(/\\+/g, '-')\n\t\t.replace(/\\//g, '_');\n}\n\nfunction signatureAsBuffer(signature) {\n\tif (Buffer.isBuffer(signature)) {\n\t\treturn signature;\n\t} else if ('string' === typeof signature) {\n\t\treturn Buffer.from(signature, 'base64');\n\t}\n\n\tthrow new TypeError('ECDSA signature must be a Base64 string or a Buffer');\n}\n\nfunction derToJose(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\t// the DER encoded param should at most be the param size, plus a padding\n\t// zero, since due to being a signed integer\n\tvar maxEncodedParamLength = paramBytes + 1;\n\n\tvar inputLength = signature.length;\n\n\tvar offset = 0;\n\tif (signature[offset++] !== ENCODED_TAG_SEQ) {\n\t\tthrow new Error('Could not find expected \"seq\"');\n\t}\n\n\tvar seqLength = signature[offset++];\n\tif (seqLength === (MAX_OCTET | 1)) {\n\t\tseqLength = signature[offset++];\n\t}\n\n\tif (inputLength - offset < seqLength) {\n\t\tthrow new Error('\"seq\" specified length of \"' + seqLength + '\", only \"' + (inputLength - offset) + '\" remaining');\n\t}\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"r\"');\n\t}\n\n\tvar rLength = signature[offset++];\n\n\tif (inputLength - offset - 2 < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", only \"' + (inputLength - offset - 2) + '\" available');\n\t}\n\n\tif (maxEncodedParamLength < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar rOffset = offset;\n\toffset += rLength;\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"s\"');\n\t}\n\n\tvar sLength = signature[offset++];\n\n\tif (inputLength - offset !== sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", expected \"' + (inputLength - offset) + '\"');\n\t}\n\n\tif (maxEncodedParamLength < sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar sOffset = offset;\n\toffset += sLength;\n\n\tif (offset !== inputLength) {\n\t\tthrow new Error('Expected to consume entire buffer, but \"' + (inputLength - offset) + '\" bytes remain');\n\t}\n\n\tvar rPadding = paramBytes - rLength,\n\t\tsPadding = paramBytes - sLength;\n\n\tvar dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength);\n\n\tfor (offset = 0; offset < rPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength);\n\n\toffset = paramBytes;\n\n\tfor (var o = offset; offset < o + sPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength);\n\n\tdst = dst.toString('base64');\n\tdst = base64Url(dst);\n\n\treturn dst;\n}\n\nfunction countPadding(buf, start, stop) {\n\tvar padding = 0;\n\twhile (start + padding < stop && buf[start + padding] === 0) {\n\t\t++padding;\n\t}\n\n\tvar needsSign = buf[start + padding] >= MAX_OCTET;\n\tif (needsSign) {\n\t\t--padding;\n\t}\n\n\treturn padding;\n}\n\nfunction joseToDer(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\tvar signatureBytes = signature.length;\n\tif (signatureBytes !== paramBytes * 2) {\n\t\tthrow new TypeError('\"' + alg + '\" signatures must be \"' + paramBytes * 2 + '\" bytes, saw \"' + signatureBytes + '\"');\n\t}\n\n\tvar rPadding = countPadding(signature, 0, paramBytes);\n\tvar sPadding = countPadding(signature, paramBytes, signature.length);\n\tvar rLength = paramBytes - rPadding;\n\tvar sLength = paramBytes - sPadding;\n\n\tvar rsBytes = 1 + 1 + rLength + 1 + 1 + sLength;\n\n\tvar shortLength = rsBytes < MAX_OCTET;\n\n\tvar dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes);\n\n\tvar offset = 0;\n\tdst[offset++] = ENCODED_TAG_SEQ;\n\tif (shortLength) {\n\t\t// Bit 8 has value \"0\"\n\t\t// bits 7-1 give the length.\n\t\tdst[offset++] = rsBytes;\n\t} else {\n\t\t// Bit 8 of first octet has value \"1\"\n\t\t// bits 7-1 give the number of additional length octets.\n\t\tdst[offset++] = MAX_OCTET\t| 1;\n\t\t// length, base 256\n\t\tdst[offset++] = rsBytes & 0xff;\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = rLength;\n\tif (rPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\toffset += signature.copy(dst, offset, 0, paramBytes);\n\t} else {\n\t\toffset += signature.copy(dst, offset, rPadding, paramBytes);\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = sLength;\n\tif (sPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\tsignature.copy(dst, offset, paramBytes);\n\t} else {\n\t\tsignature.copy(dst, offset, paramBytes + sPadding);\n\t}\n\n\treturn dst;\n}\n\nmodule.exports = {\n\tderToJose: derToJose,\n\tjoseToDer: joseToDer\n};\n","'use strict';\n\nfunction getParamSize(keySize) {\n\tvar result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n\treturn result;\n}\n\nvar paramBytesForAlg = {\n\tES256: getParamSize(256),\n\tES384: getParamSize(384),\n\tES512: getParamSize(521)\n};\n\nfunction getParamBytesForAlg(alg) {\n\tvar paramBytes = paramBytesForAlg[alg];\n\tif (paramBytes) {\n\t\treturn paramBytes;\n\t}\n\n\tthrow new Error('Unknown algorithm \"' + alg + '\"');\n}\n\nmodule.exports = getParamBytesForAlg;\n","var once = require('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\tvar cancelled = false;\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tprocess.nextTick(onclosenexttick);\n\t};\n\n\tvar onclosenexttick = function() {\n\t\tif (cancelled) return;\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tcancelled = true;\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n","var punycode = require('punycode');\nvar entities = require('./entities.json');\n\nmodule.exports = decode;\n\nfunction decode (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a String');\n }\n\n return str.replace(/&(#?[^;\\W]+;?)/g, function (_, match) {\n var m;\n if (m = /^#(\\d+);?$/.exec(match)) {\n return punycode.ucs2.encode([ parseInt(m[1], 10) ]);\n } else if (m = /^#[Xx]([A-Fa-f0-9]+);?/.exec(match)) {\n return punycode.ucs2.encode([ parseInt(m[1], 16) ]);\n } else {\n // named entity\n var hasSemi = /;$/.test(match);\n var withoutSemi = hasSemi ? match.replace(/;$/, '') : match;\n var target = entities[withoutSemi] || (hasSemi && entities[match]);\n\n if (typeof target === 'number') {\n return punycode.ucs2.encode([ target ]);\n } else if (typeof target === 'string') {\n return target;\n } else {\n return '&' + match;\n }\n }\n });\n}\n","var punycode = require('punycode');\nvar revEntities = require('./reversed.json');\n\nmodule.exports = encode;\n\nfunction encode (str, opts) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a String');\n }\n if (!opts) opts = {};\n\n var numeric = true;\n if (opts.named) numeric = false;\n if (opts.numeric !== undefined) numeric = opts.numeric;\n\n var special = opts.special || {\n '\"': true, \"'\": true,\n '<': true, '>': true,\n '&': true\n };\n\n var codePoints = punycode.ucs2.decode(str);\n var chars = [];\n for (var i = 0; i < codePoints.length; i++) {\n var cc = codePoints[i];\n var c = punycode.ucs2.encode([ cc ]);\n var e = revEntities[cc];\n if (e && (cc >= 127 || special[c]) && !numeric) {\n chars.push('&' + (/;$/.test(e) ? e : e + ';'));\n }\n else if (cc < 32 || cc >= 127 || special[c]) {\n chars.push('&#' + cc + ';');\n }\n else {\n chars.push(c);\n }\n }\n return chars.join('');\n}\n","exports.encode = require('./encode');\nexports.decode = require('./decode');\n","/**\n * @author Toru Nagashima \n * @copyright 2015 Toru Nagashima. All rights reserved.\n * See LICENSE file in root directory for full license.\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @typedef {object} PrivateData\n * @property {EventTarget} eventTarget The event target.\n * @property {{type:string}} event The original event object.\n * @property {number} eventPhase The current event phase.\n * @property {EventTarget|null} currentTarget The current event target.\n * @property {boolean} canceled The flag to prevent default.\n * @property {boolean} stopped The flag to stop propagation.\n * @property {boolean} immediateStopped The flag to stop propagation immediately.\n * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.\n * @property {number} timeStamp The unix time.\n * @private\n */\n\n/**\n * Private data for event wrappers.\n * @type {WeakMap}\n * @private\n */\nconst privateData = new WeakMap();\n\n/**\n * Cache for wrapper classes.\n * @type {WeakMap}\n * @private\n */\nconst wrappers = new WeakMap();\n\n/**\n * Get private data.\n * @param {Event} event The event object to get private data.\n * @returns {PrivateData} The private data of the event.\n * @private\n */\nfunction pd(event) {\n const retv = privateData.get(event);\n console.assert(\n retv != null,\n \"'this' is expected an Event object, but got\",\n event\n );\n return retv\n}\n\n/**\n * https://dom.spec.whatwg.org/#set-the-canceled-flag\n * @param data {PrivateData} private data.\n */\nfunction setCancelFlag(data) {\n if (data.passiveListener != null) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(\n \"Unable to preventDefault inside passive event listener invocation.\",\n data.passiveListener\n );\n }\n return\n }\n if (!data.event.cancelable) {\n return\n }\n\n data.canceled = true;\n if (typeof data.event.preventDefault === \"function\") {\n data.event.preventDefault();\n }\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#interface-event\n * @private\n */\n/**\n * The event wrapper.\n * @constructor\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Event|{type:string}} event The original event to wrap.\n */\nfunction Event(eventTarget, event) {\n privateData.set(this, {\n eventTarget,\n event,\n eventPhase: 2,\n currentTarget: eventTarget,\n canceled: false,\n stopped: false,\n immediateStopped: false,\n passiveListener: null,\n timeStamp: event.timeStamp || Date.now(),\n });\n\n // https://heycam.github.io/webidl/#Unforgeable\n Object.defineProperty(this, \"isTrusted\", { value: false, enumerable: true });\n\n // Define accessors\n const keys = Object.keys(event);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in this)) {\n Object.defineProperty(this, key, defineRedirectDescriptor(key));\n }\n }\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEvent.prototype = {\n /**\n * The type of this event.\n * @type {string}\n */\n get type() {\n return pd(this).event.type\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get target() {\n return pd(this).eventTarget\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n */\n get currentTarget() {\n return pd(this).currentTarget\n },\n\n /**\n * @returns {EventTarget[]} The composed path of this event.\n */\n composedPath() {\n const currentTarget = pd(this).currentTarget;\n if (currentTarget == null) {\n return []\n }\n return [currentTarget]\n },\n\n /**\n * Constant of NONE.\n * @type {number}\n */\n get NONE() {\n return 0\n },\n\n /**\n * Constant of CAPTURING_PHASE.\n * @type {number}\n */\n get CAPTURING_PHASE() {\n return 1\n },\n\n /**\n * Constant of AT_TARGET.\n * @type {number}\n */\n get AT_TARGET() {\n return 2\n },\n\n /**\n * Constant of BUBBLING_PHASE.\n * @type {number}\n */\n get BUBBLING_PHASE() {\n return 3\n },\n\n /**\n * The target of this event.\n * @type {number}\n */\n get eventPhase() {\n return pd(this).eventPhase\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopPropagation() {\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.stopPropagation === \"function\") {\n data.event.stopPropagation();\n }\n },\n\n /**\n * Stop event bubbling.\n * @returns {void}\n */\n stopImmediatePropagation() {\n const data = pd(this);\n\n data.stopped = true;\n data.immediateStopped = true;\n if (typeof data.event.stopImmediatePropagation === \"function\") {\n data.event.stopImmediatePropagation();\n }\n },\n\n /**\n * The flag to be bubbling.\n * @type {boolean}\n */\n get bubbles() {\n return Boolean(pd(this).event.bubbles)\n },\n\n /**\n * The flag to be cancelable.\n * @type {boolean}\n */\n get cancelable() {\n return Boolean(pd(this).event.cancelable)\n },\n\n /**\n * Cancel this event.\n * @returns {void}\n */\n preventDefault() {\n setCancelFlag(pd(this));\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n */\n get defaultPrevented() {\n return pd(this).canceled\n },\n\n /**\n * The flag to be composed.\n * @type {boolean}\n */\n get composed() {\n return Boolean(pd(this).event.composed)\n },\n\n /**\n * The unix time of this event.\n * @type {number}\n */\n get timeStamp() {\n return pd(this).timeStamp\n },\n\n /**\n * The target of this event.\n * @type {EventTarget}\n * @deprecated\n */\n get srcElement() {\n return pd(this).eventTarget\n },\n\n /**\n * The flag to stop event bubbling.\n * @type {boolean}\n * @deprecated\n */\n get cancelBubble() {\n return pd(this).stopped\n },\n set cancelBubble(value) {\n if (!value) {\n return\n }\n const data = pd(this);\n\n data.stopped = true;\n if (typeof data.event.cancelBubble === \"boolean\") {\n data.event.cancelBubble = true;\n }\n },\n\n /**\n * The flag to indicate cancellation state.\n * @type {boolean}\n * @deprecated\n */\n get returnValue() {\n return !pd(this).canceled\n },\n set returnValue(value) {\n if (!value) {\n setCancelFlag(pd(this));\n }\n },\n\n /**\n * Initialize this event object. But do nothing under event dispatching.\n * @param {string} type The event type.\n * @param {boolean} [bubbles=false] The flag to be possible to bubble up.\n * @param {boolean} [cancelable=false] The flag to be possible to cancel.\n * @deprecated\n */\n initEvent() {\n // Do nothing.\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(Event.prototype, \"constructor\", {\n value: Event,\n configurable: true,\n writable: true,\n});\n\n// Ensure `event instanceof window.Event` is `true`.\nif (typeof window !== \"undefined\" && typeof window.Event !== \"undefined\") {\n Object.setPrototypeOf(Event.prototype, window.Event.prototype);\n\n // Make association for wrappers.\n wrappers.set(window.Event.prototype, Event);\n}\n\n/**\n * Get the property descriptor to redirect a given property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to redirect the property.\n * @private\n */\nfunction defineRedirectDescriptor(key) {\n return {\n get() {\n return pd(this).event[key]\n },\n set(value) {\n pd(this).event[key] = value;\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Get the property descriptor to call a given method property.\n * @param {string} key Property name to define property descriptor.\n * @returns {PropertyDescriptor} The property descriptor to call the method property.\n * @private\n */\nfunction defineCallDescriptor(key) {\n return {\n value() {\n const event = pd(this).event;\n return event[key].apply(event, arguments)\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define new wrapper class.\n * @param {Function} BaseEvent The base wrapper class.\n * @param {Object} proto The prototype of the original event.\n * @returns {Function} The defined wrapper class.\n * @private\n */\nfunction defineWrapper(BaseEvent, proto) {\n const keys = Object.keys(proto);\n if (keys.length === 0) {\n return BaseEvent\n }\n\n /** CustomEvent */\n function CustomEvent(eventTarget, event) {\n BaseEvent.call(this, eventTarget, event);\n }\n\n CustomEvent.prototype = Object.create(BaseEvent.prototype, {\n constructor: { value: CustomEvent, configurable: true, writable: true },\n });\n\n // Define accessors.\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!(key in BaseEvent.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n const isFunc = typeof descriptor.value === \"function\";\n Object.defineProperty(\n CustomEvent.prototype,\n key,\n isFunc\n ? defineCallDescriptor(key)\n : defineRedirectDescriptor(key)\n );\n }\n }\n\n return CustomEvent\n}\n\n/**\n * Get the wrapper class of a given prototype.\n * @param {Object} proto The prototype of the original event to get its wrapper.\n * @returns {Function} The wrapper class.\n * @private\n */\nfunction getWrapper(proto) {\n if (proto == null || proto === Object.prototype) {\n return Event\n }\n\n let wrapper = wrappers.get(proto);\n if (wrapper == null) {\n wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);\n wrappers.set(proto, wrapper);\n }\n return wrapper\n}\n\n/**\n * Wrap a given event to management a dispatching.\n * @param {EventTarget} eventTarget The event target of this dispatching.\n * @param {Object} event The event to wrap.\n * @returns {Event} The wrapper instance.\n * @private\n */\nfunction wrapEvent(eventTarget, event) {\n const Wrapper = getWrapper(Object.getPrototypeOf(event));\n return new Wrapper(eventTarget, event)\n}\n\n/**\n * Get the immediateStopped flag of a given event.\n * @param {Event} event The event to get.\n * @returns {boolean} The flag to stop propagation immediately.\n * @private\n */\nfunction isStopped(event) {\n return pd(event).immediateStopped\n}\n\n/**\n * Set the current event phase of a given event.\n * @param {Event} event The event to set current target.\n * @param {number} eventPhase New event phase.\n * @returns {void}\n * @private\n */\nfunction setEventPhase(event, eventPhase) {\n pd(event).eventPhase = eventPhase;\n}\n\n/**\n * Set the current target of a given event.\n * @param {Event} event The event to set current target.\n * @param {EventTarget|null} currentTarget New current target.\n * @returns {void}\n * @private\n */\nfunction setCurrentTarget(event, currentTarget) {\n pd(event).currentTarget = currentTarget;\n}\n\n/**\n * Set a passive listener of a given event.\n * @param {Event} event The event to set current target.\n * @param {Function|null} passiveListener New passive listener.\n * @returns {void}\n * @private\n */\nfunction setPassiveListener(event, passiveListener) {\n pd(event).passiveListener = passiveListener;\n}\n\n/**\n * @typedef {object} ListenerNode\n * @property {Function} listener\n * @property {1|2|3} listenerType\n * @property {boolean} passive\n * @property {boolean} once\n * @property {ListenerNode|null} next\n * @private\n */\n\n/**\n * @type {WeakMap>}\n * @private\n */\nconst listenersMap = new WeakMap();\n\n// Listener types\nconst CAPTURE = 1;\nconst BUBBLE = 2;\nconst ATTRIBUTE = 3;\n\n/**\n * Check whether a given value is an object or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an object.\n */\nfunction isObject(x) {\n return x !== null && typeof x === \"object\" //eslint-disable-line no-restricted-syntax\n}\n\n/**\n * Get listeners.\n * @param {EventTarget} eventTarget The event target to get.\n * @returns {Map} The listeners.\n * @private\n */\nfunction getListeners(eventTarget) {\n const listeners = listenersMap.get(eventTarget);\n if (listeners == null) {\n throw new TypeError(\n \"'this' is expected an EventTarget object, but got another value.\"\n )\n }\n return listeners\n}\n\n/**\n * Get the property descriptor for the event attribute of a given event.\n * @param {string} eventName The event name to get property descriptor.\n * @returns {PropertyDescriptor} The property descriptor.\n * @private\n */\nfunction defineEventAttributeDescriptor(eventName) {\n return {\n get() {\n const listeners = getListeners(this);\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n return node.listener\n }\n node = node.next;\n }\n return null\n },\n\n set(listener) {\n if (typeof listener !== \"function\" && !isObject(listener)) {\n listener = null; // eslint-disable-line no-param-reassign\n }\n const listeners = getListeners(this);\n\n // Traverse to the tail while removing old value.\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (node.listenerType === ATTRIBUTE) {\n // Remove old value.\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n node = node.next;\n }\n\n // Add new value.\n if (listener !== null) {\n const newNode = {\n listener,\n listenerType: ATTRIBUTE,\n passive: false,\n once: false,\n next: null,\n };\n if (prev === null) {\n listeners.set(eventName, newNode);\n } else {\n prev.next = newNode;\n }\n }\n },\n configurable: true,\n enumerable: true,\n }\n}\n\n/**\n * Define an event attribute (e.g. `eventTarget.onclick`).\n * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.\n * @param {string} eventName The event name to define.\n * @returns {void}\n */\nfunction defineEventAttribute(eventTargetPrototype, eventName) {\n Object.defineProperty(\n eventTargetPrototype,\n `on${eventName}`,\n defineEventAttributeDescriptor(eventName)\n );\n}\n\n/**\n * Define a custom EventTarget with event attributes.\n * @param {string[]} eventNames Event names for event attributes.\n * @returns {EventTarget} The custom EventTarget.\n * @private\n */\nfunction defineCustomEventTarget(eventNames) {\n /** CustomEventTarget */\n function CustomEventTarget() {\n EventTarget.call(this);\n }\n\n CustomEventTarget.prototype = Object.create(EventTarget.prototype, {\n constructor: {\n value: CustomEventTarget,\n configurable: true,\n writable: true,\n },\n });\n\n for (let i = 0; i < eventNames.length; ++i) {\n defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);\n }\n\n return CustomEventTarget\n}\n\n/**\n * EventTarget.\n *\n * - This is constructor if no arguments.\n * - This is a function which returns a CustomEventTarget constructor if there are arguments.\n *\n * For example:\n *\n * class A extends EventTarget {}\n * class B extends EventTarget(\"message\") {}\n * class C extends EventTarget(\"message\", \"error\") {}\n * class D extends EventTarget([\"message\", \"error\"]) {}\n */\nfunction EventTarget() {\n /*eslint-disable consistent-return */\n if (this instanceof EventTarget) {\n listenersMap.set(this, new Map());\n return\n }\n if (arguments.length === 1 && Array.isArray(arguments[0])) {\n return defineCustomEventTarget(arguments[0])\n }\n if (arguments.length > 0) {\n const types = new Array(arguments.length);\n for (let i = 0; i < arguments.length; ++i) {\n types[i] = arguments[i];\n }\n return defineCustomEventTarget(types)\n }\n throw new TypeError(\"Cannot call a class as a function\")\n /*eslint-enable consistent-return */\n}\n\n// Should be enumerable, but class methods are not enumerable.\nEventTarget.prototype = {\n /**\n * Add a given listener to this event target.\n * @param {string} eventName The event name to add.\n * @param {Function} listener The listener to add.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n addEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n if (typeof listener !== \"function\" && !isObject(listener)) {\n throw new TypeError(\"'listener' should be a function or an object.\")\n }\n\n const listeners = getListeners(this);\n const optionsIsObj = isObject(options);\n const capture = optionsIsObj\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n const newNode = {\n listener,\n listenerType,\n passive: optionsIsObj && Boolean(options.passive),\n once: optionsIsObj && Boolean(options.once),\n next: null,\n };\n\n // Set it as the first node if the first node is null.\n let node = listeners.get(eventName);\n if (node === undefined) {\n listeners.set(eventName, newNode);\n return\n }\n\n // Traverse to the tail while checking duplication..\n let prev = null;\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n // Should ignore duplication.\n return\n }\n prev = node;\n node = node.next;\n }\n\n // Add it.\n prev.next = newNode;\n },\n\n /**\n * Remove a given listener from this event target.\n * @param {string} eventName The event name to remove.\n * @param {Function} listener The listener to remove.\n * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.\n * @returns {void}\n */\n removeEventListener(eventName, listener, options) {\n if (listener == null) {\n return\n }\n\n const listeners = getListeners(this);\n const capture = isObject(options)\n ? Boolean(options.capture)\n : Boolean(options);\n const listenerType = capture ? CAPTURE : BUBBLE;\n\n let prev = null;\n let node = listeners.get(eventName);\n while (node != null) {\n if (\n node.listener === listener &&\n node.listenerType === listenerType\n ) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n return\n }\n\n prev = node;\n node = node.next;\n }\n },\n\n /**\n * Dispatch a given event.\n * @param {Event|{type:string}} event The event to dispatch.\n * @returns {boolean} `false` if canceled.\n */\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.')\n }\n\n // If listeners aren't registered, terminate.\n const listeners = getListeners(this);\n const eventName = event.type;\n let node = listeners.get(eventName);\n if (node == null) {\n return true\n }\n\n // Since we cannot rewrite several properties, so wrap object.\n const wrappedEvent = wrapEvent(this, event);\n\n // This doesn't process capturing phase and bubbling phase.\n // This isn't participating in a tree.\n let prev = null;\n while (node != null) {\n // Remove this listener if it's once\n if (node.once) {\n if (prev !== null) {\n prev.next = node.next;\n } else if (node.next !== null) {\n listeners.set(eventName, node.next);\n } else {\n listeners.delete(eventName);\n }\n } else {\n prev = node;\n }\n\n // Call this listener\n setPassiveListener(\n wrappedEvent,\n node.passive ? node.listener : null\n );\n if (typeof node.listener === \"function\") {\n try {\n node.listener.call(this, wrappedEvent);\n } catch (err) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.error === \"function\"\n ) {\n console.error(err);\n }\n }\n } else if (\n node.listenerType !== ATTRIBUTE &&\n typeof node.listener.handleEvent === \"function\"\n ) {\n node.listener.handleEvent(wrappedEvent);\n }\n\n // Break if `event.stopImmediatePropagation` was called.\n if (isStopped(wrappedEvent)) {\n break\n }\n\n node = node.next;\n }\n setPassiveListener(wrappedEvent, null);\n setEventPhase(wrappedEvent, 0);\n setCurrentTarget(wrappedEvent, null);\n\n return !wrappedEvent.defaultPrevented\n },\n};\n\n// `constructor` is not enumerable.\nObject.defineProperty(EventTarget.prototype, \"constructor\", {\n value: EventTarget,\n configurable: true,\n writable: true,\n});\n\n// Ensure `eventTarget instanceof window.EventTarget` is `true`.\nif (\n typeof window !== \"undefined\" &&\n typeof window.EventTarget !== \"undefined\"\n) {\n Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);\n}\n\nexports.defineEventAttribute = defineEventAttribute;\nexports.EventTarget = EventTarget;\nexports.default = EventTarget;\n\nmodule.exports = EventTarget\nmodule.exports.EventTarget = module.exports[\"default\"] = EventTarget\nmodule.exports.defineEventAttribute = defineEventAttribute\n//# sourceMappingURL=event-target-shim.js.map\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict';\n\nvar isGlob = require('is-glob');\nvar pathPosixDirname = require('path').posix.dirname;\nvar isWin32 = require('os').platform() === 'win32';\n\nvar slash = '/';\nvar backslash = /\\\\/g;\nvar enclosure = /[\\{\\[].*[\\}\\]]$/;\nvar globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\nvar escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n\n/**\n * @param {string} str\n * @param {Object} opts\n * @param {boolean} [opts.flipBackslashes=true]\n * @returns {string}\n */\nmodule.exports = function globParent(str, opts) {\n var options = Object.assign({ flipBackslashes: true }, opts);\n\n // flip windows path separators\n if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {\n str = str.replace(backslash, slash);\n }\n\n // special case for strings ending in enclosure containing path separator\n if (enclosure.test(str)) {\n str += slash;\n }\n\n // preserves full path in case of trailing path separator\n str += 'a';\n\n // remove path parts that are globby\n do {\n str = pathPosixDirname(str);\n } while (isGlob(str) || globby.test(str));\n\n // remove escape chars and return result\n return str.replace(escaped, '$1');\n};\n","\"use strict\";\nconst taskManager = require(\"./managers/tasks\");\nconst async_1 = require(\"./providers/async\");\nconst stream_1 = require(\"./providers/stream\");\nconst sync_1 = require(\"./providers/sync\");\nconst settings_1 = require(\"./settings\");\nconst utils = require(\"./utils\");\nasync function FastGlob(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, async_1.default, options);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n}\n// https://github.com/typescript-eslint/typescript-eslint/issues/60\n// eslint-disable-next-line no-redeclare\n(function (FastGlob) {\n FastGlob.glob = FastGlob;\n FastGlob.globSync = sync;\n FastGlob.globStream = stream;\n FastGlob.async = FastGlob;\n function sync(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, sync_1.default, options);\n return utils.array.flatten(works);\n }\n FastGlob.sync = sync;\n function stream(source, options) {\n assertPatternsInput(source);\n const works = getWorks(source, stream_1.default, options);\n /**\n * The stream returned by the provider cannot work with an asynchronous iterator.\n * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams.\n * This affects performance (+25%). I don't see best solution right now.\n */\n return utils.stream.merge(works);\n }\n FastGlob.stream = stream;\n function generateTasks(source, options) {\n assertPatternsInput(source);\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n return taskManager.generate(patterns, settings);\n }\n FastGlob.generateTasks = generateTasks;\n function isDynamicPattern(source, options) {\n assertPatternsInput(source);\n const settings = new settings_1.default(options);\n return utils.pattern.isDynamicPattern(source, settings);\n }\n FastGlob.isDynamicPattern = isDynamicPattern;\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escape(source);\n }\n FastGlob.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPathToPattern(source);\n }\n FastGlob.convertPathToPattern = convertPathToPattern;\n let posix;\n (function (posix) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapePosixPath(source);\n }\n posix.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertPosixPathToPattern(source);\n }\n posix.convertPathToPattern = convertPathToPattern;\n })(posix = FastGlob.posix || (FastGlob.posix = {}));\n let win32;\n (function (win32) {\n function escapePath(source) {\n assertPatternsInput(source);\n return utils.path.escapeWindowsPath(source);\n }\n win32.escapePath = escapePath;\n function convertPathToPattern(source) {\n assertPatternsInput(source);\n return utils.path.convertWindowsPathToPattern(source);\n }\n win32.convertPathToPattern = convertPathToPattern;\n })(win32 = FastGlob.win32 || (FastGlob.win32 = {}));\n})(FastGlob || (FastGlob = {}));\nfunction getWorks(source, _Provider, options) {\n const patterns = [].concat(source);\n const settings = new settings_1.default(options);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n}\nfunction assertPatternsInput(input) {\n const source = [].concat(input);\n const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError('Patterns must be a string (non empty) or an array of strings');\n }\n}\nmodule.exports = FastGlob;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\nconst utils = require(\"../utils\");\nfunction generate(input, settings) {\n const patterns = processPatterns(input, settings);\n const ignore = processPatterns(settings.ignore, settings);\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false);\n const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true);\n return staticTasks.concat(dynamicTasks);\n}\nexports.generate = generate;\nfunction processPatterns(input, settings) {\n let patterns = input;\n /**\n * The original pattern like `{,*,**,a/*}` can lead to problems checking the depth when matching entry\n * and some problems with the micromatch package (see fast-glob issues: #365, #394).\n *\n * To solve this problem, we expand all patterns containing brace expansion. This can lead to a slight slowdown\n * in matching in the case of a large set of patterns after expansion.\n */\n if (settings.braceExpansion) {\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n }\n /**\n * If the `baseNameMatch` option is enabled, we must add globstar to patterns, so that they can be used\n * at any nesting level.\n *\n * We do this here, because otherwise we have to complicate the filtering logic. For example, we need to change\n * the pattern in the filter before creating a regular expression. There is no need to change the patterns\n * in the application. Only on the input.\n */\n if (settings.baseNameMatch) {\n patterns = patterns.map((pattern) => pattern.includes('/') ? pattern : `**/${pattern}`);\n }\n /**\n * This method also removes duplicate slashes that may have been in the pattern or formed as a result of expansion.\n */\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n}\n/**\n * Returns tasks grouped by basic pattern directories.\n *\n * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately.\n * This is necessary because directory traversal starts at the base directory and goes deeper.\n */\nfunction convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n /*\n * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory\n * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest.\n */\n if ('.' in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic));\n }\n else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n}\nexports.convertPatternsToTasks = convertPatternsToTasks;\nfunction getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n}\nexports.getPositivePatterns = getPositivePatterns;\nfunction getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n}\nexports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\nfunction groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n }\n else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n}\nexports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\nfunction convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n}\nexports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\nfunction convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n}\nexports.convertPatternGroupToTask = convertPatternGroupToTask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst async_1 = require(\"../readers/async\");\nconst provider_1 = require(\"./provider\");\nclass ProviderAsync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new async_1.default(this._settings);\n }\n async read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = await this.api(root, task, options);\n return entries.map((entry) => options.transform(entry));\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nconst partial_1 = require(\"../matchers/partial\");\nclass DeepFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n /**\n * Avoid unnecessary depth calculations when it doesn't matter.\n */\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split('/').length;\n if (basePath === '') {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split('/').length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n}\nexports.default = DeepFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryFilter {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = new Map();\n }\n getFilter(positive, negative) {\n const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions);\n const negativeRe = utils.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }));\n return (entry) => this._filter(entry, positiveRe, negativeRe);\n }\n _filter(entry, positiveRe, negativeRe) {\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) {\n return false;\n }\n const isDirectory = entry.dirent.isDirectory();\n const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory);\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(filepath);\n }\n return isMatched;\n }\n _isDuplicateEntry(filepath) {\n return this.index.has(filepath);\n }\n _createIndexRecord(filepath) {\n this.index.set(filepath, undefined);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {\n if (!this._settings.absolute) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath);\n return utils.pattern.matchAny(fullpath, patternsRe);\n }\n _isMatchToPatterns(filepath, patternsRe, isDirectory) {\n // Trying to match files and directories by patterns.\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n // A pattern with a trailling slash can be used for directory matching.\n // To apply such pattern, we need to add a tralling slash to the path.\n if (!isMatched && isDirectory) {\n return utils.pattern.matchAny(filepath + '/', patternsRe);\n }\n return isMatched;\n }\n}\nexports.default = EntryFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass ErrorFilter {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n}\nexports.default = ErrorFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass Matcher {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n for (const pattern of this._patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n}\nexports.default = Matcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst matcher_1 = require(\"./matcher\");\nclass PartialMatcher extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split('/');\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n /**\n * In this case, the pattern has a globstar and we must read all directories unconditionally,\n * but only if the level has reached the end of the first group.\n *\n * fixtures/{a,b}/**\n * ^ true/false ^ always true\n */\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n}\nexports.default = PartialMatcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst deep_1 = require(\"./filters/deep\");\nconst entry_1 = require(\"./filters/entry\");\nconst error_1 = require(\"./filters/error\");\nconst entry_2 = require(\"./transformers/entry\");\nclass Provider {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === '.' ? '' : task.base;\n return {\n basePath,\n pathSegmentSeparator: '/',\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n}\nexports.default = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst stream_2 = require(\"../readers/stream\");\nconst provider_1 = require(\"./provider\");\nclass ProviderStream extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const source = this.api(root, task, options);\n const destination = new stream_1.Readable({ objectMode: true, read: () => { } });\n source\n .once('error', (error) => destination.emit('error', error))\n .on('data', (entry) => destination.emit('data', options.transform(entry)))\n .once('end', () => destination.emit('end'));\n destination\n .once('close', () => source.destroy());\n return destination;\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst sync_1 = require(\"../readers/sync\");\nconst provider_1 = require(\"./provider\");\nclass ProviderSync extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root = this._getRootDirectory(task);\n const options = this._getReaderOptions(task);\n const entries = this.api(root, task, options);\n return entries.map(options.transform);\n }\n api(root, task, options) {\n if (task.dynamic) {\n return this._reader.dynamic(root, options);\n }\n return this._reader.static(task.patterns, options);\n }\n}\nexports.default = ProviderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils = require(\"../../utils\");\nclass EntryTransformer {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += '/';\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n}\nexports.default = EntryTransformer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nconst stream_1 = require(\"./stream\");\nclass ReaderAsync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkAsync = fsWalk.walk;\n this._readerStream = new stream_1.default(this._settings);\n }\n dynamic(root, options) {\n return new Promise((resolve, reject) => {\n this._walkAsync(root, options, (error, entries) => {\n if (error === null) {\n resolve(entries);\n }\n else {\n reject(error);\n }\n });\n });\n }\n async static(patterns, options) {\n const entries = [];\n const stream = this._readerStream.static(patterns, options);\n // After #235, replace it with an asynchronous iterator.\n return new Promise((resolve, reject) => {\n stream.once('error', reject);\n stream.on('data', (entry) => entries.push(entry));\n stream.once('end', () => resolve(entries));\n });\n }\n}\nexports.default = ReaderAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst path = require(\"path\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst utils = require(\"../utils\");\nclass Reader {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n}\nexports.default = Reader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stream_1 = require(\"stream\");\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderStream extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root, options) {\n return this._walkStream(root, options);\n }\n static(patterns, options) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options)\n .then((entry) => {\n if (entry !== null && options.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n })\n .catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options) {\n return this._getStat(filepath)\n .then((stats) => this._makeEntry(stats, pattern))\n .catch((error) => {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve(stats) : reject(error);\n });\n });\n }\n}\nexports.default = ReaderStream;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fsStat = require(\"@nodelib/fs.stat\");\nconst fsWalk = require(\"@nodelib/fs.walk\");\nconst reader_1 = require(\"./reader\");\nclass ReaderSync extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root, options) {\n return this._walkSync(root, options);\n }\n static(patterns, options) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options);\n if (entry === null || !options.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n }\n catch (error) {\n if (options.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n}\nexports.default = ReaderSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\nconst fs = require(\"fs\");\nconst os = require(\"os\");\n/**\n * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.\n * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107\n */\nconst CPU_COUNT = Math.max(os.cpus().length, 1);\nexports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs.lstat,\n lstatSync: fs.lstatSync,\n stat: fs.stat,\n statSync: fs.statSync,\n readdir: fs.readdir,\n readdirSync: fs.readdirSync\n};\nclass Settings {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n // Remove the cast to the array in the next major (#404).\n this.ignore = [].concat(this.ignore);\n }\n _getValue(option, value) {\n return option === undefined ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n}\nexports.default = Settings;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitWhen = exports.flatten = void 0;\nfunction flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n}\nexports.flatten = flatten;\nfunction splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n }\n else {\n result[groupIndex].push(item);\n }\n }\n return result;\n}\nexports.splitWhen = splitWhen;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEnoentCodeError = void 0;\nfunction isEnoentCodeError(error) {\n return error.code === 'ENOENT';\n}\nexports.isEnoentCodeError = isEnoentCodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createDirentFromStats = void 0;\nclass DirentFromStats {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n}\nfunction createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n}\nexports.createDirentFromStats = createDirentFromStats;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\nconst array = require(\"./array\");\nexports.array = array;\nconst errno = require(\"./errno\");\nexports.errno = errno;\nconst fs = require(\"./fs\");\nexports.fs = fs;\nconst path = require(\"./path\");\nexports.path = path;\nconst pattern = require(\"./pattern\");\nexports.pattern = pattern;\nconst stream = require(\"./stream\");\nexports.stream = stream;\nconst string = require(\"./string\");\nexports.string = string;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst IS_WINDOWS_PLATFORM = os.platform() === 'win32';\nconst LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\\\\n/**\n * All non-escaped special characters.\n * Posix: ()*?[\\]{|}, !+@ before (, ! at the beginning, \\\\ before non-special characters.\n * Windows: (){}, !+@ before (, ! at the beginning.\n */\nconst POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\nconst WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([(){}]|^!|[!+@](?=\\())/g;\n/**\n * The device path (\\\\.\\ or \\\\?\\).\n * https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#dos-device-paths\n */\nconst DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n/**\n * All backslashes except those escaping special characters.\n * Windows: !()+@{}\n * https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\n */\nconst WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@{}])/g;\n/**\n * Designed to work only with simple paths: `dir\\\\file`.\n */\nfunction unixify(filepath) {\n return filepath.replace(/\\\\/g, '/');\n}\nexports.unixify = unixify;\nfunction makeAbsolute(cwd, filepath) {\n return path.resolve(cwd, filepath);\n}\nexports.makeAbsolute = makeAbsolute;\nfunction removeLeadingDotSegment(entry) {\n // We do not use `startsWith` because this is 10x slower than current implementation for some cases.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (entry.charAt(0) === '.') {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === '/' || secondCharactery === '\\\\') {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n}\nexports.removeLeadingDotSegment = removeLeadingDotSegment;\nexports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\nfunction escapeWindowsPath(pattern) {\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapeWindowsPath = escapeWindowsPath;\nfunction escapePosixPath(pattern) {\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, '\\\\$2');\n}\nexports.escapePosixPath = escapePosixPath;\nexports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\nfunction convertWindowsPathToPattern(filepath) {\n return escapeWindowsPath(filepath)\n .replace(DOS_DEVICE_PATH_RE, '//$1')\n .replace(WINDOWS_BACKSLASHES_RE, '/');\n}\nexports.convertWindowsPathToPattern = convertWindowsPathToPattern;\nfunction convertPosixPathToPattern(filepath) {\n return escapePosixPath(filepath);\n}\nexports.convertPosixPathToPattern = convertPosixPathToPattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\nconst path = require(\"path\");\nconst globParent = require(\"glob-parent\");\nconst micromatch = require(\"micromatch\");\nconst GLOBSTAR = '**';\nconst ESCAPE_SYMBOL = '\\\\';\nconst COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\nconst REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\nconst REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\nconst GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\nconst BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n/**\n * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string.\n * The latter is due to the presence of the device path at the beginning of the UNC path.\n */\nconst DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\nfunction isStaticPattern(pattern, options = {}) {\n return !isDynamicPattern(pattern, options);\n}\nexports.isStaticPattern = isStaticPattern;\nfunction isDynamicPattern(pattern, options = {}) {\n /**\n * A special case with an empty string is necessary for matching patterns that start with a forward slash.\n * An empty string cannot be a dynamic pattern.\n * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'.\n */\n if (pattern === '') {\n return false;\n }\n /**\n * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check\n * filepath directly (without read directory).\n */\n if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options.braceExpansion !== false && hasBraceExpansion(pattern)) {\n return true;\n }\n return false;\n}\nexports.isDynamicPattern = isDynamicPattern;\nfunction hasBraceExpansion(pattern) {\n const openingBraceIndex = pattern.indexOf('{');\n if (openingBraceIndex === -1) {\n return false;\n }\n const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1);\n if (closingBraceIndex === -1) {\n return false;\n }\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n}\nfunction convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n}\nexports.convertToPositivePattern = convertToPositivePattern;\nfunction convertToNegativePattern(pattern) {\n return '!' + pattern;\n}\nexports.convertToNegativePattern = convertToNegativePattern;\nfunction isNegativePattern(pattern) {\n return pattern.startsWith('!') && pattern[1] !== '(';\n}\nexports.isNegativePattern = isNegativePattern;\nfunction isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n}\nexports.isPositivePattern = isPositivePattern;\nfunction getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n}\nexports.getNegativePatterns = getNegativePatterns;\nfunction getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n}\nexports.getPositivePatterns = getPositivePatterns;\n/**\n * Returns patterns that can be applied inside the current directory.\n *\n * @example\n * // ['./*', '*', 'a/*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n}\nexports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n/**\n * Returns patterns to be expanded relative to (outside) the current directory.\n *\n * @example\n * // ['../*', './../*']\n * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*'])\n */\nfunction getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n}\nexports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\nfunction isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith('..') || pattern.startsWith('./..');\n}\nexports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\nfunction getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n}\nexports.getBaseDirectory = getBaseDirectory;\nfunction hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n}\nexports.hasGlobStar = hasGlobStar;\nfunction endsWithSlashGlobStar(pattern) {\n return pattern.endsWith('/' + GLOBSTAR);\n}\nexports.endsWithSlashGlobStar = endsWithSlashGlobStar;\nfunction isAffectDepthOfReadingPattern(pattern) {\n const basename = path.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n}\nexports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\nfunction expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n}\nexports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\nfunction expandBraceExpansion(pattern) {\n const patterns = micromatch.braces(pattern, { expand: true, nodupes: true });\n /**\n * Sort the patterns by length so that the same depth patterns are processed side by side.\n * `a/{b,}/{c,}/*` – `['a///*', 'a/b//*', 'a//c/*', 'a/b/c/*']`\n */\n patterns.sort((a, b) => a.length - b.length);\n /**\n * Micromatch can return an empty string in the case of patterns like `{a,}`.\n */\n return patterns.filter((pattern) => pattern !== '');\n}\nexports.expandBraceExpansion = expandBraceExpansion;\nfunction getPatternParts(pattern, options) {\n let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));\n /**\n * The scan method returns an empty array in some cases.\n * See micromatch/picomatch#58 for more details.\n */\n if (parts.length === 0) {\n parts = [pattern];\n }\n /**\n * The scan method does not return an empty part for the pattern with a forward slash.\n * This is another part of micromatch/picomatch#58.\n */\n if (parts[0].startsWith('/')) {\n parts[0] = parts[0].slice(1);\n parts.unshift('');\n }\n return parts;\n}\nexports.getPatternParts = getPatternParts;\nfunction makeRe(pattern, options) {\n return micromatch.makeRe(pattern, options);\n}\nexports.makeRe = makeRe;\nfunction convertPatternsToRe(patterns, options) {\n return patterns.map((pattern) => makeRe(pattern, options));\n}\nexports.convertPatternsToRe = convertPatternsToRe;\nfunction matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n}\nexports.matchAny = matchAny;\n/**\n * This package only works with forward slashes as a path separator.\n * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes.\n */\nfunction removeDuplicateSlashes(pattern) {\n return pattern.replace(DOUBLE_SLASH_RE, '/');\n}\nexports.removeDuplicateSlashes = removeDuplicateSlashes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.merge = void 0;\nconst merge2 = require(\"merge2\");\nfunction merge(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once('error', (error) => mergedStream.emit('error', error));\n });\n mergedStream.once('close', () => propagateCloseEventToSources(streams));\n mergedStream.once('end', () => propagateCloseEventToSources(streams));\n return mergedStream;\n}\nexports.merge = merge;\nfunction propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit('close'));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmpty = exports.isString = void 0;\nfunction isString(input) {\n return typeof input === 'string';\n}\nexports.isString = isString;\nfunction isEmpty(input) {\n return input === '';\n}\nexports.isEmpty = isEmpty;\n","(function(l){function m(){}function k(a,c){a=void 0===a?\"utf-8\":a;c=void 0===c?{fatal:!1}:c;if(-1===r.indexOf(a.toLowerCase()))throw new RangeError(\"Failed to construct 'TextDecoder': The encoding label provided ('\"+a+\"') is invalid.\");if(c.fatal)throw Error(\"Failed to construct 'TextDecoder': the 'fatal' option is unsupported.\");}function t(a){return Buffer.from(a.buffer,a.byteOffset,a.byteLength).toString(\"utf-8\")}function u(a){var c=URL.createObjectURL(new Blob([a],{type:\"text/plain;charset=UTF-8\"}));\ntry{var f=new XMLHttpRequest;f.open(\"GET\",c,!1);f.send();return f.responseText}catch(e){return q(a)}finally{URL.revokeObjectURL(c)}}function q(a){for(var c=0,f=Math.min(65536,a.length+1),e=new Uint16Array(f),h=[],d=0;;){var b=c=f-1){h.push(String.fromCharCode.apply(null,e.subarray(0,d)));if(!b)return h.join(\"\");a=a.subarray(c);d=c=0}b=a[c++];if(0===(b&128))e[d++]=b;else if(192===(b&224)){var g=a[c++]&63;e[d++]=(b&31)<<6|g}else if(224===(b&240)){g=a[c++]&63;var n=a[c++]&63;e[d++]=\n(b&31)<<12|g<<6|n}else if(240===(b&248)){g=a[c++]&63;n=a[c++]&63;var v=a[c++]&63;b=(b&7)<<18|g<<12|n<<6|v;65535>>10&1023|55296,b=56320|b&1023);e[d++]=b}}}if(l.TextEncoder&&l.TextDecoder)return!1;var r=[\"utf-8\",\"utf8\",\"unicode-1-1-utf-8\"];Object.defineProperty(m.prototype,\"encoding\",{value:\"utf-8\"});m.prototype.encode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error(\"Failed to encode: the 'stream' option is unsupported.\");c=0;for(var f=a.length,e=0,h=Math.max(32,\nf+(f>>>1)+7),d=new Uint8Array(h>>>3<<3);c=b){if(c=b)continue}e+4>d.length&&(h+=8,h*=1+c/a.length*2,h=h>>>3<<3,g=new Uint8Array(h),g.set(d),d=g);if(0===(b&4294967168))d[e++]=b;else{if(0===(b&4294965248))d[e++]=b>>>6&31|192;else if(0===(b&4294901760))d[e++]=b>>>12&15|224,d[e++]=b>>>6&63|128;else if(0===(b&4292870144))d[e++]=b>>>18&7|240,d[e++]=b>>>12&\n63|128,d[e++]=b>>>6&63|128;else continue;d[e++]=b&63|128}}return d.slice?d.slice(0,e):d.subarray(0,e)};Object.defineProperty(k.prototype,\"encoding\",{value:\"utf-8\"});Object.defineProperty(k.prototype,\"fatal\",{value:!1});Object.defineProperty(k.prototype,\"ignoreBOM\",{value:!1});var p=q;\"function\"===typeof Buffer&&Buffer.from?p=t:\"function\"===typeof Blob&&\"function\"===typeof URL&&\"function\"===typeof URL.createObjectURL&&(p=u);k.prototype.decode=function(a,c){c=void 0===c?{stream:!1}:c;if(c.stream)throw Error(\"Failed to decode: the 'stream' option is unsupported.\");\na=a instanceof Uint8Array?a:a.buffer instanceof ArrayBuffer?new Uint8Array(a.buffer):new Uint8Array(a);return p(a)};l.TextEncoder=m;l.TextDecoder=k})(\"undefined\"!==typeof window?window:\"undefined\"!==typeof global?global:this);\n","'use strict'\n\n/* eslint-disable no-var */\n\nvar reusify = require('reusify')\n\nfunction fastqueue (context, worker, concurrency) {\n if (typeof context === 'function') {\n concurrency = worker\n worker = context\n context = null\n }\n\n if (concurrency < 1) {\n throw new Error('fastqueue concurrency must be greater than 1')\n }\n\n var cache = reusify(Task)\n var queueHead = null\n var queueTail = null\n var _running = 0\n var errorHandler = null\n\n var self = {\n push: push,\n drain: noop,\n saturated: noop,\n pause: pause,\n paused: false,\n concurrency: concurrency,\n running: running,\n resume: resume,\n idle: idle,\n length: length,\n getQueue: getQueue,\n unshift: unshift,\n empty: noop,\n kill: kill,\n killAndDrain: killAndDrain,\n error: error\n }\n\n return self\n\n function running () {\n return _running\n }\n\n function pause () {\n self.paused = true\n }\n\n function length () {\n var current = queueHead\n var counter = 0\n\n while (current) {\n current = current.next\n counter++\n }\n\n return counter\n }\n\n function getQueue () {\n var current = queueHead\n var tasks = []\n\n while (current) {\n tasks.push(current.value)\n current = current.next\n }\n\n return tasks\n }\n\n function resume () {\n if (!self.paused) return\n self.paused = false\n for (var i = 0; i < self.concurrency; i++) {\n _running++\n release()\n }\n }\n\n function idle () {\n return _running === 0 && self.length() === 0\n }\n\n function push (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n current.errorHandler = errorHandler\n\n if (_running === self.concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current\n queueTail = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function unshift (value, done) {\n var current = cache.get()\n\n current.context = context\n current.release = release\n current.value = value\n current.callback = done || noop\n\n if (_running === self.concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead\n queueHead = current\n } else {\n queueHead = current\n queueTail = current\n self.saturated()\n }\n } else {\n _running++\n worker.call(context, current.value, current.worked)\n }\n }\n\n function release (holder) {\n if (holder) {\n cache.release(holder)\n }\n var next = queueHead\n if (next) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null\n }\n queueHead = next.next\n next.next = null\n worker.call(context, next.value, next.worked)\n if (queueTail === null) {\n self.empty()\n }\n } else {\n _running--\n }\n } else if (--_running === 0) {\n self.drain()\n }\n }\n\n function kill () {\n queueHead = null\n queueTail = null\n self.drain = noop\n }\n\n function killAndDrain () {\n queueHead = null\n queueTail = null\n self.drain()\n self.drain = noop\n }\n\n function error (handler) {\n errorHandler = handler\n }\n}\n\nfunction noop () {}\n\nfunction Task () {\n this.value = null\n this.callback = noop\n this.next = null\n this.release = noop\n this.context = null\n this.errorHandler = null\n\n var self = this\n\n this.worked = function worked (err, result) {\n var callback = self.callback\n var errorHandler = self.errorHandler\n var val = self.value\n self.value = null\n self.callback = noop\n if (self.errorHandler) {\n errorHandler(err, val)\n }\n callback.call(self.context, err, result)\n self.release(self)\n }\n}\n\nfunction queueAsPromised (context, worker, concurrency) {\n if (typeof context === 'function') {\n concurrency = worker\n worker = context\n context = null\n }\n\n function asyncWrapper (arg, cb) {\n worker.call(this, arg)\n .then(function (res) {\n cb(null, res)\n }, cb)\n }\n\n var queue = fastqueue(context, asyncWrapper, concurrency)\n\n var pushCb = queue.push\n var unshiftCb = queue.unshift\n\n queue.push = push\n queue.unshift = unshift\n queue.drained = drained\n\n return queue\n\n function push (value) {\n var p = new Promise(function (resolve, reject) {\n pushCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function unshift (value) {\n var p = new Promise(function (resolve, reject) {\n unshiftCb(value, function (err, result) {\n if (err) {\n reject(err)\n return\n }\n resolve(result)\n })\n })\n\n // Let's fork the promise chain to\n // make the error bubble up to the user but\n // not lead to a unhandledRejection\n p.catch(noop)\n\n return p\n }\n\n function drained () {\n var previousDrain = queue.drain\n\n var p = new Promise(function (resolve) {\n queue.drain = function () {\n previousDrain()\n resolve()\n }\n })\n\n return p\n }\n}\n\nmodule.exports = fastqueue\nmodule.exports.promise = queueAsPromised\n","/*!\n * fill-range \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nconst util = require('util');\nconst toRegexRange = require('to-regex-range');\n\nconst isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst transform = toNumber => {\n return value => toNumber === true ? Number(value) : String(value);\n};\n\nconst isValidValue = value => {\n return typeof value === 'number' || (typeof value === 'string' && value !== '');\n};\n\nconst isNumber = num => Number.isInteger(+num);\n\nconst zeros = input => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === '-') value = value.slice(1);\n if (value === '0') return false;\n while (value[++index] === '0');\n return index > 0;\n};\n\nconst stringify = (start, end, options) => {\n if (typeof start === 'string' || typeof end === 'string') {\n return true;\n }\n return options.stringify === true;\n};\n\nconst pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === '-' ? '-' : '';\n if (dash) input = input.slice(1);\n input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'));\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n};\n\nconst toMaxLen = (input, maxLength) => {\n let negative = input[0] === '-' ? '-' : '';\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = '0' + input;\n return negative ? ('-' + input) : input;\n};\n\nconst toSequence = (parts, options) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n\n let prefix = options.capture ? '' : '?:';\n let positives = '';\n let negatives = '';\n let result;\n\n if (parts.positives.length) {\n positives = parts.positives.join('|');\n }\n\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.join('|')})`;\n }\n\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n\n if (options.wrap) {\n return `(${prefix}${result})`;\n }\n\n return result;\n};\n\nconst toRange = (a, b, isNumbers, options) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options });\n }\n\n let start = String.fromCharCode(a);\n if (a === b) return start;\n\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n};\n\nconst toRegex = (start, end, options) => {\n if (Array.isArray(start)) {\n let wrap = options.wrap === true;\n let prefix = options.capture ? '' : '?:';\n return wrap ? `(${prefix}${start.join('|')})` : start.join('|');\n }\n return toRegexRange(start, end, options);\n};\n\nconst rangeError = (...args) => {\n return new RangeError('Invalid range arguments: ' + util.inspect(...args));\n};\n\nconst invalidRange = (start, end, options) => {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n};\n\nconst invalidStep = (step, options) => {\n if (options.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n};\n\nconst fillNumbers = (start, end, step = 1, options = {}) => {\n let a = Number(start);\n let b = Number(end);\n\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n\n // fix negative zero\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify(start, end, options) === false;\n let format = options.transform || transform(toNumber);\n\n if (options.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options);\n }\n\n let parts = { negatives: [], positives: [] };\n let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num));\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n if (options.toRegex === true && step > 1) {\n push(a);\n } else {\n range.push(pad(format(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return step > 1\n ? toSequence(parts, options)\n : toRegex(range, null, { wrap: false, ...options });\n }\n\n return range;\n};\n\nconst fillLetters = (start, end, step = 1, options = {}) => {\n if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) {\n return invalidRange(start, end, options);\n }\n\n\n let format = options.transform || (val => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n\n if (options.toRegex && step === 1) {\n return toRange(min, max, false, options);\n }\n\n let range = [];\n let index = 0;\n\n while (descending ? a >= b : a <= b) {\n range.push(format(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n\n if (options.toRegex === true) {\n return toRegex(range, null, { wrap: false, options });\n }\n\n return range;\n};\n\nconst fill = (start, end, step, options = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options);\n }\n\n if (typeof step === 'function') {\n return fill(start, end, 1, { transform: step });\n }\n\n if (isObject(step)) {\n return fill(start, end, 0, step);\n }\n\n let opts = { ...options };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n\n if (!isNumber(step)) {\n if (step != null && !isObject(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n};\n\nmodule.exports = fill;\n","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GaxiosError = void 0;\n/* eslint-disable @typescript-eslint/no-explicit-any */\nclass GaxiosError extends Error {\n constructor(message, options, response) {\n super(message);\n this.response = response;\n this.config = options;\n this.code = response.status.toString();\n }\n}\nexports.GaxiosError = GaxiosError;\n//# sourceMappingURL=common.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Gaxios = void 0;\nconst extend_1 = __importDefault(require(\"extend\"));\nconst https_1 = require(\"https\");\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst querystring_1 = __importDefault(require(\"querystring\"));\nconst is_stream_1 = __importDefault(require(\"is-stream\"));\nconst url_1 = require(\"url\");\nconst common_1 = require(\"./common\");\nconst retry_1 = require(\"./retry\");\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fetch = hasFetch() ? window.fetch : node_fetch_1.default;\nfunction hasWindow() {\n return typeof window !== 'undefined' && !!window;\n}\nfunction hasFetch() {\n return hasWindow() && !!window.fetch;\n}\nfunction hasBuffer() {\n return typeof Buffer !== 'undefined';\n}\nfunction hasHeader(options, header) {\n return !!getHeader(options, header);\n}\nfunction getHeader(options, header) {\n header = header.toLowerCase();\n for (const key of Object.keys((options === null || options === void 0 ? void 0 : options.headers) || {})) {\n if (header === key.toLowerCase()) {\n return options.headers[key];\n }\n }\n return undefined;\n}\nlet HttpsProxyAgent;\nfunction loadProxy() {\n const proxy = process.env.HTTPS_PROXY ||\n process.env.https_proxy ||\n process.env.HTTP_PROXY ||\n process.env.http_proxy;\n if (proxy) {\n HttpsProxyAgent = require('https-proxy-agent');\n }\n return proxy;\n}\nloadProxy();\nfunction skipProxy(url) {\n var _a;\n const noProxyEnv = (_a = process.env.NO_PROXY) !== null && _a !== void 0 ? _a : process.env.no_proxy;\n if (!noProxyEnv) {\n return false;\n }\n const noProxyUrls = noProxyEnv.split(',');\n const parsedURL = new url_1.URL(url);\n return !!noProxyUrls.find(url => {\n if (url.startsWith('*.') || url.startsWith('.')) {\n url = url.replace(/^\\*\\./, '.');\n return parsedURL.hostname.endsWith(url);\n }\n else {\n return url === parsedURL.origin || url === parsedURL.hostname;\n }\n });\n}\n// Figure out if we should be using a proxy. Only if it's required, load\n// the https-proxy-agent module as it adds startup cost.\nfunction getProxy(url) {\n // If there is a match between the no_proxy env variables and the url, then do not proxy\n if (skipProxy(url)) {\n return undefined;\n // If there is not a match between the no_proxy env variables and the url, check to see if there should be a proxy\n }\n else {\n return loadProxy();\n }\n}\nclass Gaxios {\n /**\n * The Gaxios class is responsible for making HTTP requests.\n * @param defaults The default set of options to be used for this instance.\n */\n constructor(defaults) {\n this.agentCache = new Map();\n this.defaults = defaults || {};\n }\n /**\n * Perform an HTTP request with the given options.\n * @param opts Set of HTTP options that will be used for this HTTP request.\n */\n async request(opts = {}) {\n opts = this.validateOpts(opts);\n return this._request(opts);\n }\n async _defaultAdapter(opts) {\n const fetchImpl = opts.fetchImplementation || fetch;\n const res = (await fetchImpl(opts.url, opts));\n const data = await this.getResponseData(opts, res);\n return this.translateResponse(opts, res, data);\n }\n /**\n * Internal, retryable version of the `request` method.\n * @param opts Set of HTTP options that will be used for this HTTP request.\n */\n async _request(opts = {}) {\n try {\n let translatedResponse;\n if (opts.adapter) {\n translatedResponse = await opts.adapter(opts, this._defaultAdapter.bind(this));\n }\n else {\n translatedResponse = await this._defaultAdapter(opts);\n }\n if (!opts.validateStatus(translatedResponse.status)) {\n throw new common_1.GaxiosError(`Request failed with status code ${translatedResponse.status}`, opts, translatedResponse);\n }\n return translatedResponse;\n }\n catch (e) {\n const err = e;\n err.config = opts;\n const { shouldRetry, config } = await retry_1.getRetryConfig(e);\n if (shouldRetry && config) {\n err.config.retryConfig.currentRetryAttempt =\n config.retryConfig.currentRetryAttempt;\n return this._request(err.config);\n }\n throw err;\n }\n }\n async getResponseData(opts, res) {\n switch (opts.responseType) {\n case 'stream':\n return res.body;\n case 'json': {\n let data = await res.text();\n try {\n data = JSON.parse(data);\n }\n catch (_a) {\n // continue\n }\n return data;\n }\n case 'arraybuffer':\n return res.arrayBuffer();\n case 'blob':\n return res.blob();\n default:\n return res.text();\n }\n }\n /**\n * Validates the options, and merges them with defaults.\n * @param opts The original options passed from the client.\n */\n validateOpts(options) {\n const opts = extend_1.default(true, {}, this.defaults, options);\n if (!opts.url) {\n throw new Error('URL is required.');\n }\n // baseUrl has been deprecated, remove in 2.0\n const baseUrl = opts.baseUrl || opts.baseURL;\n if (baseUrl) {\n opts.url = baseUrl + opts.url;\n }\n opts.paramsSerializer = opts.paramsSerializer || this.paramsSerializer;\n if (opts.params && Object.keys(opts.params).length > 0) {\n let additionalQueryParams = opts.paramsSerializer(opts.params);\n if (additionalQueryParams.startsWith('?')) {\n additionalQueryParams = additionalQueryParams.slice(1);\n }\n const prefix = opts.url.includes('?') ? '&' : '?';\n opts.url = opts.url + prefix + additionalQueryParams;\n }\n if (typeof options.maxContentLength === 'number') {\n opts.size = options.maxContentLength;\n }\n if (typeof options.maxRedirects === 'number') {\n opts.follow = options.maxRedirects;\n }\n opts.headers = opts.headers || {};\n if (opts.data) {\n const isFormData = typeof FormData === 'undefined'\n ? false\n : (opts === null || opts === void 0 ? void 0 : opts.data) instanceof FormData;\n if (is_stream_1.default.readable(opts.data)) {\n opts.body = opts.data;\n }\n else if (hasBuffer() && Buffer.isBuffer(opts.data)) {\n // Do not attempt to JSON.stringify() a Buffer:\n opts.body = opts.data;\n if (!hasHeader(opts, 'Content-Type')) {\n opts.headers['Content-Type'] = 'application/json';\n }\n }\n else if (typeof opts.data === 'object') {\n // If www-form-urlencoded content type has been set, but data is\n // provided as an object, serialize the content using querystring:\n if (!isFormData) {\n if (getHeader(opts, 'content-type') ===\n 'application/x-www-form-urlencoded') {\n opts.body = opts.paramsSerializer(opts.data);\n }\n else {\n // } else if (!(opts.data instanceof FormData)) {\n if (!hasHeader(opts, 'Content-Type')) {\n opts.headers['Content-Type'] = 'application/json';\n }\n opts.body = JSON.stringify(opts.data);\n }\n }\n }\n else {\n opts.body = opts.data;\n }\n }\n opts.validateStatus = opts.validateStatus || this.validateStatus;\n opts.responseType = opts.responseType || 'json';\n if (!opts.headers['Accept'] && opts.responseType === 'json') {\n opts.headers['Accept'] = 'application/json';\n }\n opts.method = opts.method || 'GET';\n const proxy = getProxy(opts.url);\n if (proxy) {\n if (this.agentCache.has(proxy)) {\n opts.agent = this.agentCache.get(proxy);\n }\n else {\n // Proxy is being used in conjunction with mTLS.\n if (opts.cert && opts.key) {\n const parsedURL = new url_1.URL(proxy);\n opts.agent = new HttpsProxyAgent({\n port: parsedURL.port,\n host: parsedURL.host,\n protocol: parsedURL.protocol,\n cert: opts.cert,\n key: opts.key,\n });\n }\n else {\n opts.agent = new HttpsProxyAgent(proxy);\n }\n this.agentCache.set(proxy, opts.agent);\n }\n }\n else if (opts.cert && opts.key) {\n // Configure client for mTLS:\n if (this.agentCache.has(opts.key)) {\n opts.agent = this.agentCache.get(opts.key);\n }\n else {\n opts.agent = new https_1.Agent({\n cert: opts.cert,\n key: opts.key,\n });\n this.agentCache.set(opts.key, opts.agent);\n }\n }\n return opts;\n }\n /**\n * By default, throw for any non-2xx status code\n * @param status status code from the HTTP response\n */\n validateStatus(status) {\n return status >= 200 && status < 300;\n }\n /**\n * Encode a set of key/value pars into a querystring format (?foo=bar&baz=boo)\n * @param params key value pars to encode\n */\n paramsSerializer(params) {\n return querystring_1.default.stringify(params);\n }\n translateResponse(opts, res, data) {\n // headers need to be converted from a map to an obj\n const headers = {};\n res.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return {\n config: opts,\n data: data,\n headers,\n status: res.status,\n statusText: res.statusText,\n // XMLHttpRequestLike\n request: {\n responseURL: res.url,\n },\n };\n }\n}\nexports.Gaxios = Gaxios;\n//# sourceMappingURL=gaxios.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.request = exports.instance = exports.Gaxios = void 0;\nconst gaxios_1 = require(\"./gaxios\");\nObject.defineProperty(exports, \"Gaxios\", { enumerable: true, get: function () { return gaxios_1.Gaxios; } });\nvar common_1 = require(\"./common\");\nObject.defineProperty(exports, \"GaxiosError\", { enumerable: true, get: function () { return common_1.GaxiosError; } });\n/**\n * The default instance used when the `request` method is directly\n * invoked.\n */\nexports.instance = new gaxios_1.Gaxios();\n/**\n * Make an HTTP request using the given options.\n * @param opts Options for the request\n */\nasync function request(opts) {\n return exports.instance.request(opts);\n}\nexports.request = request;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRetryConfig = void 0;\nasync function getRetryConfig(err) {\n var _a;\n let config = getConfig(err);\n if (!err || !err.config || (!config && !err.config.retry)) {\n return { shouldRetry: false };\n }\n config = config || {};\n config.currentRetryAttempt = config.currentRetryAttempt || 0;\n config.retry =\n config.retry === undefined || config.retry === null ? 3 : config.retry;\n config.httpMethodsToRetry = config.httpMethodsToRetry || [\n 'GET',\n 'HEAD',\n 'PUT',\n 'OPTIONS',\n 'DELETE',\n ];\n config.noResponseRetries =\n config.noResponseRetries === undefined || config.noResponseRetries === null\n ? 2\n : config.noResponseRetries;\n // If this wasn't in the list of status codes where we want\n // to automatically retry, return.\n const retryRanges = [\n // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\n // 1xx - Retry (Informational, request still processing)\n // 2xx - Do not retry (Success)\n // 3xx - Do not retry (Redirect)\n // 4xx - Do not retry (Client errors)\n // 429 - Retry (\"Too Many Requests\")\n // 5xx - Retry (Server errors)\n [100, 199],\n [429, 429],\n [500, 599],\n ];\n config.statusCodesToRetry = config.statusCodesToRetry || retryRanges;\n // Put the config back into the err\n err.config.retryConfig = config;\n // Determine if we should retry the request\n const shouldRetryFn = config.shouldRetry || shouldRetryRequest;\n if (!(await shouldRetryFn(err))) {\n return { shouldRetry: false, config: err.config };\n }\n // Calculate time to wait with exponential backoff.\n // If this is the first retry, look for a configured retryDelay.\n const retryDelay = config.currentRetryAttempt ? 0 : (_a = config.retryDelay) !== null && _a !== void 0 ? _a : 100;\n // Formula: retryDelay + ((2^c - 1 / 2) * 1000)\n const delay = retryDelay + ((Math.pow(2, config.currentRetryAttempt) - 1) / 2) * 1000;\n // We're going to retry! Incremenent the counter.\n err.config.retryConfig.currentRetryAttempt += 1;\n // Create a promise that invokes the retry after the backOffDelay\n const backoff = new Promise(resolve => {\n setTimeout(resolve, delay);\n });\n // Notify the user if they added an `onRetryAttempt` handler\n if (config.onRetryAttempt) {\n config.onRetryAttempt(err);\n }\n // Return the promise in which recalls Gaxios to retry the request\n await backoff;\n return { shouldRetry: true, config: err.config };\n}\nexports.getRetryConfig = getRetryConfig;\n/**\n * Determine based on config if we should retry the request.\n * @param err The GaxiosError passed to the interceptor.\n */\nfunction shouldRetryRequest(err) {\n const config = getConfig(err);\n // node-fetch raises an AbortError if signaled:\n // https://github.com/bitinn/node-fetch#request-cancellation-with-abortsignal\n if (err.name === 'AbortError') {\n return false;\n }\n // If there's no config, or retries are disabled, return.\n if (!config || config.retry === 0) {\n return false;\n }\n // Check if this error has no response (ETIMEDOUT, ENOTFOUND, etc)\n if (!err.response &&\n (config.currentRetryAttempt || 0) >= config.noResponseRetries) {\n return false;\n }\n // Only retry with configured HttpMethods.\n if (!err.config.method ||\n config.httpMethodsToRetry.indexOf(err.config.method.toUpperCase()) < 0) {\n return false;\n }\n // If this wasn't in the list of status codes where we want\n // to automatically retry, return.\n if (err.response && err.response.status) {\n let isInRange = false;\n for (const [min, max] of config.statusCodesToRetry) {\n const status = err.response.status;\n if (status >= min && status <= max) {\n isInRange = true;\n break;\n }\n }\n if (!isInRange) {\n return false;\n }\n }\n // If we are out of retry attempts, return\n config.currentRetryAttempt = config.currentRetryAttempt || 0;\n if (config.currentRetryAttempt >= config.retry) {\n return false;\n }\n return true;\n}\n/**\n * Acquire the raxConfig object from an GaxiosError if available.\n * @param err The Gaxios error with a config object.\n */\nfunction getConfig(err) {\n if (err && err.config && err.config.retryConfig) {\n return err.config.retryConfig;\n }\n return;\n}\n//# sourceMappingURL=retry.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\n/**\n * Copyright 2018 Google LLC\n *\n * Distributed under MIT license.\n * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestTimeout = exports.resetIsAvailableCache = exports.isAvailable = exports.project = exports.instance = exports.HEADERS = exports.HEADER_VALUE = exports.HEADER_NAME = exports.SECONDARY_HOST_ADDRESS = exports.HOST_ADDRESS = exports.BASE_PATH = void 0;\nconst gaxios_1 = require(\"gaxios\");\nconst jsonBigint = require(\"json-bigint\");\nexports.BASE_PATH = '/computeMetadata/v1';\nexports.HOST_ADDRESS = 'http://169.254.169.254';\nexports.SECONDARY_HOST_ADDRESS = 'http://metadata.google.internal.';\nexports.HEADER_NAME = 'Metadata-Flavor';\nexports.HEADER_VALUE = 'Google';\nexports.HEADERS = Object.freeze({ [exports.HEADER_NAME]: exports.HEADER_VALUE });\n/**\n * Returns the base URL while taking into account the GCE_METADATA_HOST\n * environment variable if it exists.\n *\n * @returns The base URL, e.g., http://169.254.169.254/computeMetadata/v1.\n */\nfunction getBaseUrl(baseUrl) {\n if (!baseUrl) {\n baseUrl =\n process.env.GCE_METADATA_IP ||\n process.env.GCE_METADATA_HOST ||\n exports.HOST_ADDRESS;\n }\n // If no scheme is provided default to HTTP:\n if (!/^https?:\\/\\//.test(baseUrl)) {\n baseUrl = `http://${baseUrl}`;\n }\n return new URL(exports.BASE_PATH, baseUrl).href;\n}\n// Accepts an options object passed from the user to the API. In previous\n// versions of the API, it referred to a `Request` or an `Axios` request\n// options object. Now it refers to an object with very limited property\n// names. This is here to help ensure users don't pass invalid options when\n// they upgrade from 0.4 to 0.5 to 0.8.\nfunction validate(options) {\n Object.keys(options).forEach(key => {\n switch (key) {\n case 'params':\n case 'property':\n case 'headers':\n break;\n case 'qs':\n throw new Error(\"'qs' is not a valid configuration option. Please use 'params' instead.\");\n default:\n throw new Error(`'${key}' is not a valid configuration option.`);\n }\n });\n}\nasync function metadataAccessor(type, options, noResponseRetries = 3, fastFail = false) {\n options = options || {};\n if (typeof options === 'string') {\n options = { property: options };\n }\n let property = '';\n if (typeof options === 'object' && options.property) {\n property = '/' + options.property;\n }\n validate(options);\n try {\n const requestMethod = fastFail ? fastFailMetadataRequest : gaxios_1.request;\n const res = await requestMethod({\n url: `${getBaseUrl()}/${type}${property}`,\n headers: Object.assign({}, exports.HEADERS, options.headers),\n retryConfig: { noResponseRetries },\n params: options.params,\n responseType: 'text',\n timeout: requestTimeout(),\n });\n // NOTE: node.js converts all incoming headers to lower case.\n if (res.headers[exports.HEADER_NAME.toLowerCase()] !== exports.HEADER_VALUE) {\n throw new Error(`Invalid response from metadata service: incorrect ${exports.HEADER_NAME} header.`);\n }\n else if (!res.data) {\n throw new Error('Invalid response from the metadata service');\n }\n if (typeof res.data === 'string') {\n try {\n return jsonBigint.parse(res.data);\n }\n catch (_a) {\n /* ignore */\n }\n }\n return res.data;\n }\n catch (e) {\n if (e.response && e.response.status !== 200) {\n e.message = `Unsuccessful response status code. ${e.message}`;\n }\n throw e;\n }\n}\nasync function fastFailMetadataRequest(options) {\n const secondaryOptions = {\n ...options,\n url: options.url.replace(getBaseUrl(), getBaseUrl(exports.SECONDARY_HOST_ADDRESS)),\n };\n // We race a connection between DNS/IP to metadata server. There are a couple\n // reasons for this:\n //\n // 1. the DNS is slow in some GCP environments; by checking both, we might\n // detect the runtime environment signficantly faster.\n // 2. we can't just check the IP, which is tarpitted and slow to respond\n // on a user's local machine.\n //\n // Additional logic has been added to make sure that we don't create an\n // unhandled rejection in scenarios where a failure happens sometime\n // after a success.\n //\n // Note, however, if a failure happens prior to a success, a rejection should\n // occur, this is for folks running locally.\n //\n let responded = false;\n const r1 = gaxios_1.request(options)\n .then(res => {\n responded = true;\n return res;\n })\n .catch(err => {\n if (responded) {\n return r2;\n }\n else {\n responded = true;\n throw err;\n }\n });\n const r2 = gaxios_1.request(secondaryOptions)\n .then(res => {\n responded = true;\n return res;\n })\n .catch(err => {\n if (responded) {\n return r1;\n }\n else {\n responded = true;\n throw err;\n }\n });\n return Promise.race([r1, r2]);\n}\n/**\n * Obtain metadata for the current GCE instance\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instance(options) {\n return metadataAccessor('instance', options);\n}\nexports.instance = instance;\n/**\n * Obtain metadata for the current GCP Project.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction project(options) {\n return metadataAccessor('project', options);\n}\nexports.project = project;\n/*\n * How many times should we retry detecting GCP environment.\n */\nfunction detectGCPAvailableRetries() {\n return process.env.DETECT_GCP_RETRIES\n ? Number(process.env.DETECT_GCP_RETRIES)\n : 0;\n}\nlet cachedIsAvailableResponse;\n/**\n * Determine if the metadata server is currently available.\n */\nasync function isAvailable() {\n try {\n // If a user is instantiating several GCP libraries at the same time,\n // this may result in multiple calls to isAvailable(), to detect the\n // runtime environment. We use the same promise for each of these calls\n // to reduce the network load.\n if (cachedIsAvailableResponse === undefined) {\n cachedIsAvailableResponse = metadataAccessor('instance', undefined, detectGCPAvailableRetries(), \n // If the default HOST_ADDRESS has been overridden, we should not\n // make an effort to try SECONDARY_HOST_ADDRESS (as we are likely in\n // a non-GCP environment):\n !(process.env.GCE_METADATA_IP || process.env.GCE_METADATA_HOST));\n }\n await cachedIsAvailableResponse;\n return true;\n }\n catch (err) {\n if (process.env.DEBUG_AUTH) {\n console.info(err);\n }\n if (err.type === 'request-timeout') {\n // If running in a GCP environment, metadata endpoint should return\n // within ms.\n return false;\n }\n if (err.response && err.response.status === 404) {\n return false;\n }\n else {\n if (!(err.response && err.response.status === 404) &&\n // A warning is emitted if we see an unexpected err.code, or err.code\n // is not populated:\n (!err.code ||\n ![\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'ENETUNREACH',\n 'ENOENT',\n 'ENOTFOUND',\n 'ECONNREFUSED',\n ].includes(err.code))) {\n let code = 'UNKNOWN';\n if (err.code)\n code = err.code;\n process.emitWarning(`received unexpected error = ${err.message} code = ${code}`, 'MetadataLookupWarning');\n }\n // Failure to resolve the metadata service means that it is not available.\n return false;\n }\n }\n}\nexports.isAvailable = isAvailable;\n/**\n * reset the memoized isAvailable() lookup.\n */\nfunction resetIsAvailableCache() {\n cachedIsAvailableResponse = undefined;\n}\nexports.resetIsAvailableCache = resetIsAvailableCache;\n/**\n * Obtain the timeout for requests to the metadata server.\n */\nfunction requestTimeout() {\n // In testing, we were able to reproduce behavior similar to\n // https://github.com/googleapis/google-auth-library-nodejs/issues/798\n // by making many concurrent network requests. Requests do not actually fail,\n // rather they take significantly longer to complete (and we hit our\n // default 3000ms timeout).\n //\n // This logic detects a GCF environment, using the documented environment\n // variables K_SERVICE and FUNCTION_NAME:\n // https://cloud.google.com/functions/docs/env-var and, in a GCF environment\n // eliminates timeouts (by setting the value to 0 to disable).\n return process.env.K_SERVICE || process.env.FUNCTION_NAME ? 0 : 3000;\n}\nexports.requestTimeout = requestTimeout;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2012 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuthClient = void 0;\nconst events_1 = require(\"events\");\nconst transporters_1 = require(\"../transporters\");\nclass AuthClient extends events_1.EventEmitter {\n constructor() {\n super(...arguments);\n this.transporter = new transporters_1.DefaultTransporter();\n this.credentials = {};\n this.eagerRefreshThresholdMillis = 5 * 60 * 1000;\n this.forceRefreshOnFailure = false;\n }\n /**\n * Sets the auth credentials.\n */\n setCredentials(credentials) {\n this.credentials = credentials;\n }\n /**\n * Append additional headers, e.g., x-goog-user-project, shared across the\n * classes inheriting AuthClient. This method should be used by any method\n * that overrides getRequestMetadataAsync(), which is a shared helper for\n * setting request information in both gRPC and HTTP API calls.\n *\n * @param headers object to append additional headers to.\n */\n addSharedMetadataHeaders(headers) {\n // quota_project_id, stored in application_default_credentials.json, is set in\n // the x-goog-user-project header, to indicate an alternate account for\n // billing and quota:\n if (!headers['x-goog-user-project'] && // don't override a value the user sets.\n this.quotaProjectId) {\n headers['x-goog-user-project'] = this.quotaProjectId;\n }\n return headers;\n }\n}\nexports.AuthClient = AuthClient;\n//# sourceMappingURL=authclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsClient = void 0;\nconst awsrequestsigner_1 = require(\"./awsrequestsigner\");\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\n/**\n * AWS external account client. This is used for AWS workloads, where\n * AWS STS GetCallerIdentity serialized signed requests are exchanged for\n * GCP access token.\n */\nclass AwsClient extends baseexternalclient_1.BaseExternalAccountClient {\n /**\n * Instantiates an AwsClient instance using the provided JSON\n * object loaded from an external account credentials file.\n * An error is thrown if the credential is not a valid AWS credential.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n */\n constructor(options, additionalOptions) {\n var _a;\n super(options, additionalOptions);\n this.environmentId = options.credential_source.environment_id;\n // This is only required if the AWS region is not available in the\n // AWS_REGION or AWS_DEFAULT_REGION environment variables.\n this.regionUrl = options.credential_source.region_url;\n // This is only required if AWS security credentials are not available in\n // environment variables.\n this.securityCredentialsUrl = options.credential_source.url;\n this.regionalCredVerificationUrl =\n options.credential_source.regional_cred_verification_url;\n this.imdsV2SessionTokenUrl =\n options.credential_source.imdsv2_session_token_url;\n const match = (_a = this.environmentId) === null || _a === void 0 ? void 0 : _a.match(/^(aws)(\\d+)$/);\n if (!match || !this.regionalCredVerificationUrl) {\n throw new Error('No valid AWS \"credential_source\" provided');\n }\n else if (parseInt(match[2], 10) !== 1) {\n throw new Error(`aws version \"${match[2]}\" is not supported in the current build.`);\n }\n this.awsRequestSigner = null;\n this.region = '';\n }\n /**\n * Triggered when an external subject token is needed to be exchanged for a\n * GCP access token via GCP STS endpoint.\n * This uses the `options.credential_source` object to figure out how\n * to retrieve the token using the current environment. In this case,\n * this uses a serialized AWS signed request to the STS GetCallerIdentity\n * endpoint.\n * The logic is summarized as:\n * 1. If imdsv2_session_token_url is provided in the credential source, then\n * fetch the aws session token and include it in the headers of the\n * metadata requests. This is a requirement for IDMSv2 but optional\n * for IDMSv1.\n * 2. Retrieve AWS region from availability-zone.\n * 3a. Check AWS credentials in environment variables. If not found, get\n * from security-credentials endpoint.\n * 3b. Get AWS credentials from security-credentials endpoint. In order\n * to retrieve this, the AWS role needs to be determined by calling\n * security-credentials endpoint without any argument. Then the\n * credentials can be retrieved via: security-credentials/role_name\n * 4. Generate the signed request to AWS STS GetCallerIdentity action.\n * 5. Inject x-goog-cloud-target-resource into header and serialize the\n * signed request. This will be the subject-token to pass to GCP STS.\n * @return A promise that resolves with the external subject token.\n */\n async retrieveSubjectToken() {\n // Initialize AWS request signer if not already initialized.\n if (!this.awsRequestSigner) {\n const metadataHeaders = {};\n if (this.imdsV2SessionTokenUrl) {\n metadataHeaders['x-aws-ec2-metadata-token'] =\n await this.getImdsV2SessionToken();\n }\n this.region = await this.getAwsRegion(metadataHeaders);\n this.awsRequestSigner = new awsrequestsigner_1.AwsRequestSigner(async () => {\n // Check environment variables for permanent credentials first.\n // https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html\n if (process.env['AWS_ACCESS_KEY_ID'] &&\n process.env['AWS_SECRET_ACCESS_KEY']) {\n return {\n accessKeyId: process.env['AWS_ACCESS_KEY_ID'],\n secretAccessKey: process.env['AWS_SECRET_ACCESS_KEY'],\n // This is normally not available for permanent credentials.\n token: process.env['AWS_SESSION_TOKEN'],\n };\n }\n // Since the role on a VM can change, we don't need to cache it.\n const roleName = await this.getAwsRoleName(metadataHeaders);\n // Temporary credentials typically last for several hours.\n // Expiration is returned in response.\n // Consider future optimization of this logic to cache AWS tokens\n // until their natural expiration.\n const awsCreds = await this.getAwsSecurityCredentials(roleName, metadataHeaders);\n return {\n accessKeyId: awsCreds.AccessKeyId,\n secretAccessKey: awsCreds.SecretAccessKey,\n token: awsCreds.Token,\n };\n }, this.region);\n }\n // Generate signed request to AWS STS GetCallerIdentity API.\n // Use the required regional endpoint. Otherwise, the request will fail.\n const options = await this.awsRequestSigner.getRequestOptions({\n url: this.regionalCredVerificationUrl.replace('{region}', this.region),\n method: 'POST',\n });\n // The GCP STS endpoint expects the headers to be formatted as:\n // [\n // {key: 'x-amz-date', value: '...'},\n // {key: 'Authorization', value: '...'},\n // ...\n // ]\n // And then serialized as:\n // encodeURIComponent(JSON.stringify({\n // url: '...',\n // method: 'POST',\n // headers: [{key: 'x-amz-date', value: '...'}, ...]\n // }))\n const reformattedHeader = [];\n const extendedHeaders = Object.assign({\n // The full, canonical resource name of the workload identity pool\n // provider, with or without the HTTPS prefix.\n // Including this header as part of the signature is recommended to\n // ensure data integrity.\n 'x-goog-cloud-target-resource': this.audience,\n }, options.headers);\n // Reformat header to GCP STS expected format.\n for (const key in extendedHeaders) {\n reformattedHeader.push({\n key,\n value: extendedHeaders[key],\n });\n }\n // Serialize the reformatted signed request.\n return encodeURIComponent(JSON.stringify({\n url: options.url,\n method: options.method,\n headers: reformattedHeader,\n }));\n }\n /**\n * @return A promise that resolves with the IMDSv2 Session Token.\n */\n async getImdsV2SessionToken() {\n const opts = {\n url: this.imdsV2SessionTokenUrl,\n method: 'PUT',\n responseType: 'text',\n headers: { 'x-aws-ec2-metadata-token-ttl-seconds': '300' },\n };\n const response = await this.transporter.request(opts);\n return response.data;\n }\n /**\n * @param headers The headers to be used in the metadata request.\n * @return A promise that resolves with the current AWS region.\n */\n async getAwsRegion(headers) {\n // Priority order for region determination:\n // AWS_REGION > AWS_DEFAULT_REGION > metadata server.\n if (process.env['AWS_REGION'] || process.env['AWS_DEFAULT_REGION']) {\n return (process.env['AWS_REGION'] || process.env['AWS_DEFAULT_REGION']);\n }\n if (!this.regionUrl) {\n throw new Error('Unable to determine AWS region due to missing ' +\n '\"options.credential_source.region_url\"');\n }\n const opts = {\n url: this.regionUrl,\n method: 'GET',\n responseType: 'text',\n headers: headers,\n };\n const response = await this.transporter.request(opts);\n // Remove last character. For example, if us-east-2b is returned,\n // the region would be us-east-2.\n return response.data.substr(0, response.data.length - 1);\n }\n /**\n * @param headers The headers to be used in the metadata request.\n * @return A promise that resolves with the assigned role to the current\n * AWS VM. This is needed for calling the security-credentials endpoint.\n */\n async getAwsRoleName(headers) {\n if (!this.securityCredentialsUrl) {\n throw new Error('Unable to determine AWS role name due to missing ' +\n '\"options.credential_source.url\"');\n }\n const opts = {\n url: this.securityCredentialsUrl,\n method: 'GET',\n responseType: 'text',\n headers: headers,\n };\n const response = await this.transporter.request(opts);\n return response.data;\n }\n /**\n * Retrieves the temporary AWS credentials by calling the security-credentials\n * endpoint as specified in the `credential_source` object.\n * @param roleName The role attached to the current VM.\n * @param headers The headers to be used in the metadata request.\n * @return A promise that resolves with the temporary AWS credentials\n * needed for creating the GetCallerIdentity signed request.\n */\n async getAwsSecurityCredentials(roleName, headers) {\n const response = await this.transporter.request({\n url: `${this.securityCredentialsUrl}/${roleName}`,\n responseType: 'json',\n headers: headers,\n });\n return response.data;\n }\n}\nexports.AwsClient = AwsClient;\n//# sourceMappingURL=awsclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsRequestSigner = void 0;\nconst crypto_1 = require(\"../crypto/crypto\");\n/** AWS Signature Version 4 signing algorithm identifier. */\nconst AWS_ALGORITHM = 'AWS4-HMAC-SHA256';\n/**\n * The termination string for the AWS credential scope value as defined in\n * https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n */\nconst AWS_REQUEST_TYPE = 'aws4_request';\n/**\n * Implements an AWS API request signer based on the AWS Signature Version 4\n * signing process.\n * https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nclass AwsRequestSigner {\n /**\n * Instantiates an AWS API request signer used to send authenticated signed\n * requests to AWS APIs based on the AWS Signature Version 4 signing process.\n * This also provides a mechanism to generate the signed request without\n * sending it.\n * @param getCredentials A mechanism to retrieve AWS security credentials\n * when needed.\n * @param region The AWS region to use.\n */\n constructor(getCredentials, region) {\n this.getCredentials = getCredentials;\n this.region = region;\n this.crypto = crypto_1.createCrypto();\n }\n /**\n * Generates the signed request for the provided HTTP request for calling\n * an AWS API. This follows the steps described at:\n * https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html\n * @param amzOptions The AWS request options that need to be signed.\n * @return A promise that resolves with the GaxiosOptions containing the\n * signed HTTP request parameters.\n */\n async getRequestOptions(amzOptions) {\n if (!amzOptions.url) {\n throw new Error('\"url\" is required in \"amzOptions\"');\n }\n // Stringify JSON requests. This will be set in the request body of the\n // generated signed request.\n const requestPayloadData = typeof amzOptions.data === 'object'\n ? JSON.stringify(amzOptions.data)\n : amzOptions.data;\n const url = amzOptions.url;\n const method = amzOptions.method || 'GET';\n const requestPayload = amzOptions.body || requestPayloadData;\n const additionalAmzHeaders = amzOptions.headers;\n const awsSecurityCredentials = await this.getCredentials();\n const uri = new URL(url);\n const headerMap = await generateAuthenticationHeaderMap({\n crypto: this.crypto,\n host: uri.host,\n canonicalUri: uri.pathname,\n canonicalQuerystring: uri.search.substr(1),\n method,\n region: this.region,\n securityCredentials: awsSecurityCredentials,\n requestPayload,\n additionalAmzHeaders,\n });\n // Append additional optional headers, eg. X-Amz-Target, Content-Type, etc.\n const headers = Object.assign(\n // Add x-amz-date if available.\n headerMap.amzDate ? { 'x-amz-date': headerMap.amzDate } : {}, {\n Authorization: headerMap.authorizationHeader,\n host: uri.host,\n }, additionalAmzHeaders || {});\n if (awsSecurityCredentials.token) {\n Object.assign(headers, {\n 'x-amz-security-token': awsSecurityCredentials.token,\n });\n }\n const awsSignedReq = {\n url,\n method: method,\n headers,\n };\n if (typeof requestPayload !== 'undefined') {\n awsSignedReq.body = requestPayload;\n }\n return awsSignedReq;\n }\n}\nexports.AwsRequestSigner = AwsRequestSigner;\n/**\n * Creates the HMAC-SHA256 hash of the provided message using the\n * provided key.\n *\n * @param crypto The crypto instance used to facilitate cryptographic\n * operations.\n * @param key The HMAC-SHA256 key to use.\n * @param msg The message to hash.\n * @return The computed hash bytes.\n */\nasync function sign(crypto, key, msg) {\n return await crypto.signWithHmacSha256(key, msg);\n}\n/**\n * Calculates the signing key used to calculate the signature for\n * AWS Signature Version 4 based on:\n * https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param crypto The crypto instance used to facilitate cryptographic\n * operations.\n * @param key The AWS secret access key.\n * @param dateStamp The '%Y%m%d' date format.\n * @param region The AWS region.\n * @param serviceName The AWS service name, eg. sts.\n * @return The signing key bytes.\n */\nasync function getSigningKey(crypto, key, dateStamp, region, serviceName) {\n const kDate = await sign(crypto, `AWS4${key}`, dateStamp);\n const kRegion = await sign(crypto, kDate, region);\n const kService = await sign(crypto, kRegion, serviceName);\n const kSigning = await sign(crypto, kService, 'aws4_request');\n return kSigning;\n}\n/**\n * Generates the authentication header map needed for generating the AWS\n * Signature Version 4 signed request.\n *\n * @param option The options needed to compute the authentication header map.\n * @return The AWS authentication header map which constitutes of the following\n * components: amz-date, authorization header and canonical query string.\n */\nasync function generateAuthenticationHeaderMap(options) {\n const additionalAmzHeaders = options.additionalAmzHeaders || {};\n const requestPayload = options.requestPayload || '';\n // iam.amazonaws.com host => iam service.\n // sts.us-east-2.amazonaws.com => sts service.\n const serviceName = options.host.split('.')[0];\n const now = new Date();\n // Format: '%Y%m%dT%H%M%SZ'.\n const amzDate = now\n .toISOString()\n .replace(/[-:]/g, '')\n .replace(/\\.[0-9]+/, '');\n // Format: '%Y%m%d'.\n const dateStamp = now.toISOString().replace(/[-]/g, '').replace(/T.*/, '');\n // Change all additional headers to be lower case.\n const reformattedAdditionalAmzHeaders = {};\n Object.keys(additionalAmzHeaders).forEach(key => {\n reformattedAdditionalAmzHeaders[key.toLowerCase()] =\n additionalAmzHeaders[key];\n });\n // Add AWS token if available.\n if (options.securityCredentials.token) {\n reformattedAdditionalAmzHeaders['x-amz-security-token'] =\n options.securityCredentials.token;\n }\n // Header keys need to be sorted alphabetically.\n const amzHeaders = Object.assign({\n host: options.host,\n }, \n // Previously the date was not fixed with x-amz- and could be provided manually.\n // https://github.com/boto/botocore/blob/879f8440a4e9ace5d3cf145ce8b3d5e5ffb892ef/tests/unit/auth/aws4_testsuite/get-header-value-trim.req\n reformattedAdditionalAmzHeaders.date ? {} : { 'x-amz-date': amzDate }, reformattedAdditionalAmzHeaders);\n let canonicalHeaders = '';\n const signedHeadersList = Object.keys(amzHeaders).sort();\n signedHeadersList.forEach(key => {\n canonicalHeaders += `${key}:${amzHeaders[key]}\\n`;\n });\n const signedHeaders = signedHeadersList.join(';');\n const payloadHash = await options.crypto.sha256DigestHex(requestPayload);\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n const canonicalRequest = `${options.method}\\n` +\n `${options.canonicalUri}\\n` +\n `${options.canonicalQuerystring}\\n` +\n `${canonicalHeaders}\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`;\n const credentialScope = `${dateStamp}/${options.region}/${serviceName}/${AWS_REQUEST_TYPE}`;\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n const stringToSign = `${AWS_ALGORITHM}\\n` +\n `${amzDate}\\n` +\n `${credentialScope}\\n` +\n (await options.crypto.sha256DigestHex(canonicalRequest));\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n const signingKey = await getSigningKey(options.crypto, options.securityCredentials.secretAccessKey, dateStamp, options.region, serviceName);\n const signature = await sign(options.crypto, signingKey, stringToSign);\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n const authorizationHeader = `${AWS_ALGORITHM} Credential=${options.securityCredentials.accessKeyId}/` +\n `${credentialScope}, SignedHeaders=${signedHeaders}, ` +\n `Signature=${crypto_1.fromArrayBufferToHex(signature)}`;\n return {\n // Do not return x-amz-date if date is available.\n amzDate: reformattedAdditionalAmzHeaders.date ? undefined : amzDate,\n authorizationHeader,\n canonicalQuerystring: options.canonicalQuerystring,\n };\n}\n//# sourceMappingURL=awsrequestsigner.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseExternalAccountClient = exports.CLOUD_RESOURCE_MANAGER = exports.EXTERNAL_ACCOUNT_TYPE = exports.EXPIRATION_TIME_OFFSET = void 0;\nconst stream = require(\"stream\");\nconst authclient_1 = require(\"./authclient\");\nconst sts = require(\"./stscredentials\");\n/**\n * The required token exchange grant_type: rfc8693#section-2.1\n */\nconst STS_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchange';\n/**\n * The requested token exchange requested_token_type: rfc8693#section-2.1\n */\nconst STS_REQUEST_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token';\n/** The default OAuth scope to request when none is provided. */\nconst DEFAULT_OAUTH_SCOPE = 'https://www.googleapis.com/auth/cloud-platform';\n/** The google apis domain pattern. */\nconst GOOGLE_APIS_DOMAIN_PATTERN = '\\\\.googleapis\\\\.com$';\n/** The variable portion pattern in a Google APIs domain. */\nconst VARIABLE_PORTION_PATTERN = '[^\\\\.\\\\s\\\\/\\\\\\\\]+';\n/**\n * Offset to take into account network delays and server clock skews.\n */\nexports.EXPIRATION_TIME_OFFSET = 5 * 60 * 1000;\n/**\n * The credentials JSON file type for external account clients.\n * There are 3 types of JSON configs:\n * 1. authorized_user => Google end user credential\n * 2. service_account => Google service account credential\n * 3. external_Account => non-GCP service (eg. AWS, Azure, K8s)\n */\nexports.EXTERNAL_ACCOUNT_TYPE = 'external_account';\n/** Cloud resource manager URL used to retrieve project information. */\nexports.CLOUD_RESOURCE_MANAGER = 'https://cloudresourcemanager.googleapis.com/v1/projects/';\n/** The workforce audience pattern. */\nconst WORKFORCE_AUDIENCE_PATTERN = '//iam.googleapis.com/locations/[^/]+/workforcePools/[^/]+/providers/.+';\n/**\n * Base external account client. This is used to instantiate AuthClients for\n * exchanging external account credentials for GCP access token and authorizing\n * requests to GCP APIs.\n * The base class implements common logic for exchanging various type of\n * external credentials for GCP access token. The logic of determining and\n * retrieving the external credential based on the environment and\n * credential_source will be left for the subclasses.\n */\nclass BaseExternalAccountClient extends authclient_1.AuthClient {\n /**\n * Instantiate a BaseExternalAccountClient instance using the provided JSON\n * object loaded from an external account credentials file.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n */\n constructor(options, additionalOptions) {\n super();\n if (options.type !== exports.EXTERNAL_ACCOUNT_TYPE) {\n throw new Error(`Expected \"${exports.EXTERNAL_ACCOUNT_TYPE}\" type but ` +\n `received \"${options.type}\"`);\n }\n this.clientAuth = options.client_id\n ? {\n confidentialClientType: 'basic',\n clientId: options.client_id,\n clientSecret: options.client_secret,\n }\n : undefined;\n if (!this.validateGoogleAPIsUrl('sts', options.token_url)) {\n throw new Error(`\"${options.token_url}\" is not a valid token url.`);\n }\n this.stsCredential = new sts.StsCredentials(options.token_url, this.clientAuth);\n // Default OAuth scope. This could be overridden via public property.\n this.scopes = [DEFAULT_OAUTH_SCOPE];\n this.cachedAccessToken = null;\n this.audience = options.audience;\n this.subjectTokenType = options.subject_token_type;\n this.quotaProjectId = options.quota_project_id;\n this.workforcePoolUserProject = options.workforce_pool_user_project;\n const workforceAudiencePattern = new RegExp(WORKFORCE_AUDIENCE_PATTERN);\n if (this.workforcePoolUserProject &&\n !this.audience.match(workforceAudiencePattern)) {\n throw new Error('workforcePoolUserProject should not be set for non-workforce pool ' +\n 'credentials.');\n }\n if (typeof options.service_account_impersonation_url !== 'undefined' &&\n !this.validateGoogleAPIsUrl('iamcredentials', options.service_account_impersonation_url)) {\n throw new Error(`\"${options.service_account_impersonation_url}\" is ` +\n 'not a valid service account impersonation url.');\n }\n this.serviceAccountImpersonationUrl =\n options.service_account_impersonation_url;\n // As threshold could be zero,\n // eagerRefreshThresholdMillis || EXPIRATION_TIME_OFFSET will override the\n // zero value.\n if (typeof (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.eagerRefreshThresholdMillis) !== 'number') {\n this.eagerRefreshThresholdMillis = exports.EXPIRATION_TIME_OFFSET;\n }\n else {\n this.eagerRefreshThresholdMillis = additionalOptions\n .eagerRefreshThresholdMillis;\n }\n this.forceRefreshOnFailure = !!(additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.forceRefreshOnFailure);\n this.projectId = null;\n this.projectNumber = this.getProjectNumber(this.audience);\n }\n /** The service account email to be impersonated, if available. */\n getServiceAccountEmail() {\n var _a;\n if (this.serviceAccountImpersonationUrl) {\n // Parse email from URL. The formal looks as follows:\n // https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/name@project-id.iam.gserviceaccount.com:generateAccessToken\n const re = /serviceAccounts\\/(?[^:]+):generateAccessToken$/;\n const result = re.exec(this.serviceAccountImpersonationUrl);\n return ((_a = result === null || result === void 0 ? void 0 : result.groups) === null || _a === void 0 ? void 0 : _a.email) || null;\n }\n return null;\n }\n /**\n * Provides a mechanism to inject GCP access tokens directly.\n * When the provided credential expires, a new credential, using the\n * external account options, is retrieved.\n * @param credentials The Credentials object to set on the current client.\n */\n setCredentials(credentials) {\n super.setCredentials(credentials);\n this.cachedAccessToken = credentials;\n }\n /**\n * @return A promise that resolves with the current GCP access token\n * response. If the current credential is expired, a new one is retrieved.\n */\n async getAccessToken() {\n // If cached access token is unavailable or expired, force refresh.\n if (!this.cachedAccessToken || this.isExpired(this.cachedAccessToken)) {\n await this.refreshAccessTokenAsync();\n }\n // Return GCP access token in GetAccessTokenResponse format.\n return {\n token: this.cachedAccessToken.access_token,\n res: this.cachedAccessToken.res,\n };\n }\n /**\n * The main authentication interface. It takes an optional url which when\n * present is the endpoint being accessed, and returns a Promise which\n * resolves with authorization header fields.\n *\n * The result has the form:\n * { Authorization: 'Bearer ' }\n */\n async getRequestHeaders() {\n const accessTokenResponse = await this.getAccessToken();\n const headers = {\n Authorization: `Bearer ${accessTokenResponse.token}`,\n };\n return this.addSharedMetadataHeaders(headers);\n }\n request(opts, callback) {\n if (callback) {\n this.requestAsync(opts).then(r => callback(null, r), e => {\n return callback(e, e.response);\n });\n }\n else {\n return this.requestAsync(opts);\n }\n }\n /**\n * @return A promise that resolves with the project ID corresponding to the\n * current workload identity pool or current workforce pool if\n * determinable. For workforce pool credential, it returns the project ID\n * corresponding to the workforcePoolUserProject.\n * This is introduced to match the current pattern of using the Auth\n * library:\n * const projectId = await auth.getProjectId();\n * const url = `https://dns.googleapis.com/dns/v1/projects/${projectId}`;\n * const res = await client.request({ url });\n * The resource may not have permission\n * (resourcemanager.projects.get) to call this API or the required\n * scopes may not be selected:\n * https://cloud.google.com/resource-manager/reference/rest/v1/projects/get#authorization-scopes\n */\n async getProjectId() {\n const projectNumber = this.projectNumber || this.workforcePoolUserProject;\n if (this.projectId) {\n // Return previously determined project ID.\n return this.projectId;\n }\n else if (projectNumber) {\n // Preferable not to use request() to avoid retrial policies.\n const headers = await this.getRequestHeaders();\n const response = await this.transporter.request({\n headers,\n url: `${exports.CLOUD_RESOURCE_MANAGER}${projectNumber}`,\n responseType: 'json',\n });\n this.projectId = response.data.projectId;\n return this.projectId;\n }\n return null;\n }\n /**\n * Authenticates the provided HTTP request, processes it and resolves with the\n * returned response.\n * @param opts The HTTP request options.\n * @param retry Whether the current attempt is a retry after a failed attempt.\n * @return A promise that resolves with the successful response.\n */\n async requestAsync(opts, retry = false) {\n let response;\n try {\n const requestHeaders = await this.getRequestHeaders();\n opts.headers = opts.headers || {};\n if (requestHeaders && requestHeaders['x-goog-user-project']) {\n opts.headers['x-goog-user-project'] =\n requestHeaders['x-goog-user-project'];\n }\n if (requestHeaders && requestHeaders.Authorization) {\n opts.headers.Authorization = requestHeaders.Authorization;\n }\n response = await this.transporter.request(opts);\n }\n catch (e) {\n const res = e.response;\n if (res) {\n const statusCode = res.status;\n // Retry the request for metadata if the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - forceRefreshOnFailure is true\n const isReadableStream = res.config.data instanceof stream.Readable;\n const isAuthErr = statusCode === 401 || statusCode === 403;\n if (!retry &&\n isAuthErr &&\n !isReadableStream &&\n this.forceRefreshOnFailure) {\n await this.refreshAccessTokenAsync();\n return await this.requestAsync(opts, true);\n }\n }\n throw e;\n }\n return response;\n }\n /**\n * Forces token refresh, even if unexpired tokens are currently cached.\n * External credentials are exchanged for GCP access tokens via the token\n * exchange endpoint and other settings provided in the client options\n * object.\n * If the service_account_impersonation_url is provided, an additional\n * step to exchange the external account GCP access token for a service\n * account impersonated token is performed.\n * @return A promise that resolves with the fresh GCP access tokens.\n */\n async refreshAccessTokenAsync() {\n // Retrieve the external credential.\n const subjectToken = await this.retrieveSubjectToken();\n // Construct the STS credentials options.\n const stsCredentialsOptions = {\n grantType: STS_GRANT_TYPE,\n audience: this.audience,\n requestedTokenType: STS_REQUEST_TOKEN_TYPE,\n subjectToken,\n subjectTokenType: this.subjectTokenType,\n // generateAccessToken requires the provided access token to have\n // scopes:\n // https://www.googleapis.com/auth/iam or\n // https://www.googleapis.com/auth/cloud-platform\n // The new service account access token scopes will match the user\n // provided ones.\n scope: this.serviceAccountImpersonationUrl\n ? [DEFAULT_OAUTH_SCOPE]\n : this.getScopesArray(),\n };\n // Exchange the external credentials for a GCP access token.\n // Client auth is prioritized over passing the workforcePoolUserProject\n // parameter for STS token exchange.\n const additionalOptions = !this.clientAuth && this.workforcePoolUserProject\n ? { userProject: this.workforcePoolUserProject }\n : undefined;\n const stsResponse = await this.stsCredential.exchangeToken(stsCredentialsOptions, undefined, additionalOptions);\n if (this.serviceAccountImpersonationUrl) {\n this.cachedAccessToken = await this.getImpersonatedAccessToken(stsResponse.access_token);\n }\n else if (stsResponse.expires_in) {\n // Save response in cached access token.\n this.cachedAccessToken = {\n access_token: stsResponse.access_token,\n expiry_date: new Date().getTime() + stsResponse.expires_in * 1000,\n res: stsResponse.res,\n };\n }\n else {\n // Save response in cached access token.\n this.cachedAccessToken = {\n access_token: stsResponse.access_token,\n res: stsResponse.res,\n };\n }\n // Save credentials.\n this.credentials = {};\n Object.assign(this.credentials, this.cachedAccessToken);\n delete this.credentials.res;\n // Trigger tokens event to notify external listeners.\n this.emit('tokens', {\n refresh_token: null,\n expiry_date: this.cachedAccessToken.expiry_date,\n access_token: this.cachedAccessToken.access_token,\n token_type: 'Bearer',\n id_token: null,\n });\n // Return the cached access token.\n return this.cachedAccessToken;\n }\n /**\n * Returns the workload identity pool project number if it is determinable\n * from the audience resource name.\n * @param audience The STS audience used to determine the project number.\n * @return The project number associated with the workload identity pool, if\n * this can be determined from the STS audience field. Otherwise, null is\n * returned.\n */\n getProjectNumber(audience) {\n // STS audience pattern:\n // //iam.googleapis.com/projects/$PROJECT_NUMBER/locations/...\n const match = audience.match(/\\/projects\\/([^/]+)/);\n if (!match) {\n return null;\n }\n return match[1];\n }\n /**\n * Exchanges an external account GCP access token for a service\n * account impersonated access token using iamcredentials\n * GenerateAccessToken API.\n * @param token The access token to exchange for a service account access\n * token.\n * @return A promise that resolves with the service account impersonated\n * credentials response.\n */\n async getImpersonatedAccessToken(token) {\n const opts = {\n url: this.serviceAccountImpersonationUrl,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n data: {\n scope: this.getScopesArray(),\n },\n responseType: 'json',\n };\n const response = await this.transporter.request(opts);\n const successResponse = response.data;\n return {\n access_token: successResponse.accessToken,\n // Convert from ISO format to timestamp.\n expiry_date: new Date(successResponse.expireTime).getTime(),\n res: response,\n };\n }\n /**\n * Returns whether the provided credentials are expired or not.\n * If there is no expiry time, assumes the token is not expired or expiring.\n * @param accessToken The credentials to check for expiration.\n * @return Whether the credentials are expired or not.\n */\n isExpired(accessToken) {\n const now = new Date().getTime();\n return accessToken.expiry_date\n ? now >= accessToken.expiry_date - this.eagerRefreshThresholdMillis\n : false;\n }\n /**\n * @return The list of scopes for the requested GCP access token.\n */\n getScopesArray() {\n // Since scopes can be provided as string or array, the type should\n // be normalized.\n if (typeof this.scopes === 'string') {\n return [this.scopes];\n }\n else if (typeof this.scopes === 'undefined') {\n return [DEFAULT_OAUTH_SCOPE];\n }\n else {\n return this.scopes;\n }\n }\n /**\n * Checks whether Google APIs URL is valid.\n * @param apiName The apiName of url.\n * @param url The Google API URL to validate.\n * @return Whether the URL is valid or not.\n */\n validateGoogleAPIsUrl(apiName, url) {\n let parsedUrl;\n // Return false if error is thrown during parsing URL.\n try {\n parsedUrl = new URL(url);\n }\n catch (e) {\n return false;\n }\n const urlDomain = parsedUrl.hostname;\n // Check the protocol is https.\n if (parsedUrl.protocol !== 'https:') {\n return false;\n }\n const googleAPIsDomainPatterns = [\n new RegExp('^' +\n VARIABLE_PORTION_PATTERN +\n '\\\\.' +\n apiName +\n GOOGLE_APIS_DOMAIN_PATTERN),\n new RegExp('^' + apiName + GOOGLE_APIS_DOMAIN_PATTERN),\n new RegExp('^' +\n apiName +\n '\\\\.' +\n VARIABLE_PORTION_PATTERN +\n GOOGLE_APIS_DOMAIN_PATTERN),\n new RegExp('^' +\n VARIABLE_PORTION_PATTERN +\n '\\\\-' +\n apiName +\n GOOGLE_APIS_DOMAIN_PATTERN),\n ];\n for (const googleAPIsDomainPattern of googleAPIsDomainPatterns) {\n if (urlDomain.match(googleAPIsDomainPattern)) {\n return true;\n }\n }\n return false;\n }\n}\nexports.BaseExternalAccountClient = BaseExternalAccountClient;\n//# sourceMappingURL=baseexternalclient.js.map","\"use strict\";\n// Copyright 2013 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Compute = void 0;\nconst arrify = require(\"arrify\");\nconst gcpMetadata = require(\"gcp-metadata\");\nconst oauth2client_1 = require(\"./oauth2client\");\nclass Compute extends oauth2client_1.OAuth2Client {\n /**\n * Google Compute Engine service account credentials.\n *\n * Retrieve access token from the metadata server.\n * See: https://developers.google.com/compute/docs/authentication\n */\n constructor(options = {}) {\n super(options);\n // Start with an expired refresh token, which will automatically be\n // refreshed before the first API call is made.\n this.credentials = { expiry_date: 1, refresh_token: 'compute-placeholder' };\n this.serviceAccountEmail = options.serviceAccountEmail || 'default';\n this.scopes = arrify(options.scopes);\n }\n /**\n * Refreshes the access token.\n * @param refreshToken Unused parameter\n */\n async refreshTokenNoCache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refreshToken) {\n const tokenPath = `service-accounts/${this.serviceAccountEmail}/token`;\n let data;\n try {\n const instanceOptions = {\n property: tokenPath,\n };\n if (this.scopes.length > 0) {\n instanceOptions.params = {\n scopes: this.scopes.join(','),\n };\n }\n data = await gcpMetadata.instance(instanceOptions);\n }\n catch (e) {\n e.message = `Could not refresh access token: ${e.message}`;\n this.wrapError(e);\n throw e;\n }\n const tokens = data;\n if (data && data.expires_in) {\n tokens.expiry_date = new Date().getTime() + data.expires_in * 1000;\n delete tokens.expires_in;\n }\n this.emit('tokens', tokens);\n return { tokens, res: null };\n }\n /**\n * Fetches an ID token.\n * @param targetAudience the audience for the fetched ID token.\n */\n async fetchIdToken(targetAudience) {\n const idTokenPath = `service-accounts/${this.serviceAccountEmail}/identity` +\n `?format=full&audience=${targetAudience}`;\n let idToken;\n try {\n const instanceOptions = {\n property: idTokenPath,\n };\n idToken = await gcpMetadata.instance(instanceOptions);\n }\n catch (e) {\n e.message = `Could not fetch ID token: ${e.message}`;\n throw e;\n }\n return idToken;\n }\n wrapError(e) {\n const res = e.response;\n if (res && res.status) {\n e.code = res.status.toString();\n if (res.status === 403) {\n e.message =\n 'A Forbidden error was returned while attempting to retrieve an access ' +\n 'token for the Compute Engine built-in service account. This may be because the Compute ' +\n 'Engine instance does not have the correct permission scopes specified: ' +\n e.message;\n }\n else if (res.status === 404) {\n e.message =\n 'A Not Found error was returned while attempting to retrieve an access' +\n 'token for the Compute Engine built-in service account. This may be because the Compute ' +\n 'Engine instance does not have any permission scopes specified: ' +\n e.message;\n }\n }\n }\n}\nexports.Compute = Compute;\n//# sourceMappingURL=computeclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DownscopedClient = exports.EXPIRATION_TIME_OFFSET = exports.MAX_ACCESS_BOUNDARY_RULES_COUNT = void 0;\nconst stream = require(\"stream\");\nconst authclient_1 = require(\"./authclient\");\nconst sts = require(\"./stscredentials\");\n/**\n * The required token exchange grant_type: rfc8693#section-2.1\n */\nconst STS_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchange';\n/**\n * The requested token exchange requested_token_type: rfc8693#section-2.1\n */\nconst STS_REQUEST_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token';\n/**\n * The requested token exchange subject_token_type: rfc8693#section-2.1\n */\nconst STS_SUBJECT_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token';\n/** The STS access token exchange end point. */\nconst STS_ACCESS_TOKEN_URL = 'https://sts.googleapis.com/v1/token';\n/**\n * The maximum number of access boundary rules a Credential Access Boundary\n * can contain.\n */\nexports.MAX_ACCESS_BOUNDARY_RULES_COUNT = 10;\n/**\n * Offset to take into account network delays and server clock skews.\n */\nexports.EXPIRATION_TIME_OFFSET = 5 * 60 * 1000;\n/**\n * Defines a set of Google credentials that are downscoped from an existing set\n * of Google OAuth2 credentials. This is useful to restrict the Identity and\n * Access Management (IAM) permissions that a short-lived credential can use.\n * The common pattern of usage is to have a token broker with elevated access\n * generate these downscoped credentials from higher access source credentials\n * and pass the downscoped short-lived access tokens to a token consumer via\n * some secure authenticated channel for limited access to Google Cloud Storage\n * resources.\n */\nclass DownscopedClient extends authclient_1.AuthClient {\n /**\n * Instantiates a downscoped client object using the provided source\n * AuthClient and credential access boundary rules.\n * To downscope permissions of a source AuthClient, a Credential Access\n * Boundary that specifies which resources the new credential can access, as\n * well as an upper bound on the permissions that are available on each\n * resource, has to be defined. A downscoped client can then be instantiated\n * using the source AuthClient and the Credential Access Boundary.\n * @param authClient The source AuthClient to be downscoped based on the\n * provided Credential Access Boundary rules.\n * @param credentialAccessBoundary The Credential Access Boundary which\n * contains a list of access boundary rules. Each rule contains information\n * on the resource that the rule applies to, the upper bound of the\n * permissions that are available on that resource and an optional\n * condition to further restrict permissions.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n * @param quotaProjectId Optional quota project id for setting up in the\n * x-goog-user-project header.\n */\n constructor(authClient, credentialAccessBoundary, additionalOptions, quotaProjectId) {\n super();\n this.authClient = authClient;\n this.credentialAccessBoundary = credentialAccessBoundary;\n // Check 1-10 Access Boundary Rules are defined within Credential Access\n // Boundary.\n if (credentialAccessBoundary.accessBoundary.accessBoundaryRules.length === 0) {\n throw new Error('At least one access boundary rule needs to be defined.');\n }\n else if (credentialAccessBoundary.accessBoundary.accessBoundaryRules.length >\n exports.MAX_ACCESS_BOUNDARY_RULES_COUNT) {\n throw new Error('The provided access boundary has more than ' +\n `${exports.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);\n }\n // Check at least one permission should be defined in each Access Boundary\n // Rule.\n for (const rule of credentialAccessBoundary.accessBoundary\n .accessBoundaryRules) {\n if (rule.availablePermissions.length === 0) {\n throw new Error('At least one permission should be defined in access boundary rules.');\n }\n }\n this.stsCredential = new sts.StsCredentials(STS_ACCESS_TOKEN_URL);\n this.cachedDownscopedAccessToken = null;\n // As threshold could be zero,\n // eagerRefreshThresholdMillis || EXPIRATION_TIME_OFFSET will override the\n // zero value.\n if (typeof (additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.eagerRefreshThresholdMillis) !== 'number') {\n this.eagerRefreshThresholdMillis = exports.EXPIRATION_TIME_OFFSET;\n }\n else {\n this.eagerRefreshThresholdMillis = additionalOptions\n .eagerRefreshThresholdMillis;\n }\n this.forceRefreshOnFailure = !!(additionalOptions === null || additionalOptions === void 0 ? void 0 : additionalOptions.forceRefreshOnFailure);\n this.quotaProjectId = quotaProjectId;\n }\n /**\n * Provides a mechanism to inject Downscoped access tokens directly.\n * The expiry_date field is required to facilitate determination of the token\n * expiration which would make it easier for the token consumer to handle.\n * @param credentials The Credentials object to set on the current client.\n */\n setCredentials(credentials) {\n if (!credentials.expiry_date) {\n throw new Error('The access token expiry_date field is missing in the provided ' +\n 'credentials.');\n }\n super.setCredentials(credentials);\n this.cachedDownscopedAccessToken = credentials;\n }\n async getAccessToken() {\n // If the cached access token is unavailable or expired, force refresh.\n // The Downscoped access token will be returned in\n // DownscopedAccessTokenResponse format.\n if (!this.cachedDownscopedAccessToken ||\n this.isExpired(this.cachedDownscopedAccessToken)) {\n await this.refreshAccessTokenAsync();\n }\n // Return Downscoped access token in DownscopedAccessTokenResponse format.\n return {\n token: this.cachedDownscopedAccessToken.access_token,\n expirationTime: this.cachedDownscopedAccessToken.expiry_date,\n res: this.cachedDownscopedAccessToken.res,\n };\n }\n /**\n * The main authentication interface. It takes an optional url which when\n * present is the endpoint being accessed, and returns a Promise which\n * resolves with authorization header fields.\n *\n * The result has the form:\n * { Authorization: 'Bearer ' }\n */\n async getRequestHeaders() {\n const accessTokenResponse = await this.getAccessToken();\n const headers = {\n Authorization: `Bearer ${accessTokenResponse.token}`,\n };\n return this.addSharedMetadataHeaders(headers);\n }\n request(opts, callback) {\n if (callback) {\n this.requestAsync(opts).then(r => callback(null, r), e => {\n return callback(e, e.response);\n });\n }\n else {\n return this.requestAsync(opts);\n }\n }\n /**\n * Authenticates the provided HTTP request, processes it and resolves with the\n * returned response.\n * @param opts The HTTP request options.\n * @param retry Whether the current attempt is a retry after a failed attempt.\n * @return A promise that resolves with the successful response.\n */\n async requestAsync(opts, retry = false) {\n let response;\n try {\n const requestHeaders = await this.getRequestHeaders();\n opts.headers = opts.headers || {};\n if (requestHeaders && requestHeaders['x-goog-user-project']) {\n opts.headers['x-goog-user-project'] =\n requestHeaders['x-goog-user-project'];\n }\n if (requestHeaders && requestHeaders.Authorization) {\n opts.headers.Authorization = requestHeaders.Authorization;\n }\n response = await this.transporter.request(opts);\n }\n catch (e) {\n const res = e.response;\n if (res) {\n const statusCode = res.status;\n // Retry the request for metadata if the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - forceRefreshOnFailure is true\n const isReadableStream = res.config.data instanceof stream.Readable;\n const isAuthErr = statusCode === 401 || statusCode === 403;\n if (!retry &&\n isAuthErr &&\n !isReadableStream &&\n this.forceRefreshOnFailure) {\n await this.refreshAccessTokenAsync();\n return await this.requestAsync(opts, true);\n }\n }\n throw e;\n }\n return response;\n }\n /**\n * Forces token refresh, even if unexpired tokens are currently cached.\n * GCP access tokens are retrieved from authclient object/source credential.\n * Then GCP access tokens are exchanged for downscoped access tokens via the\n * token exchange endpoint.\n * @return A promise that resolves with the fresh downscoped access token.\n */\n async refreshAccessTokenAsync() {\n var _a;\n // Retrieve GCP access token from source credential.\n const subjectToken = (await this.authClient.getAccessToken()).token;\n // Construct the STS credentials options.\n const stsCredentialsOptions = {\n grantType: STS_GRANT_TYPE,\n requestedTokenType: STS_REQUEST_TOKEN_TYPE,\n subjectToken: subjectToken,\n subjectTokenType: STS_SUBJECT_TOKEN_TYPE,\n };\n // Exchange the source AuthClient access token for a Downscoped access\n // token.\n const stsResponse = await this.stsCredential.exchangeToken(stsCredentialsOptions, undefined, this.credentialAccessBoundary);\n /**\n * The STS endpoint will only return the expiration time for the downscoped\n * access token if the original access token represents a service account.\n * The downscoped token's expiration time will always match the source\n * credential expiration. When no expires_in is returned, we can copy the\n * source credential's expiration time.\n */\n const sourceCredExpireDate = ((_a = this.authClient.credentials) === null || _a === void 0 ? void 0 : _a.expiry_date) || null;\n const expiryDate = stsResponse.expires_in\n ? new Date().getTime() + stsResponse.expires_in * 1000\n : sourceCredExpireDate;\n // Save response in cached access token.\n this.cachedDownscopedAccessToken = {\n access_token: stsResponse.access_token,\n expiry_date: expiryDate,\n res: stsResponse.res,\n };\n // Save credentials.\n this.credentials = {};\n Object.assign(this.credentials, this.cachedDownscopedAccessToken);\n delete this.credentials.res;\n // Trigger tokens event to notify external listeners.\n this.emit('tokens', {\n refresh_token: null,\n expiry_date: this.cachedDownscopedAccessToken.expiry_date,\n access_token: this.cachedDownscopedAccessToken.access_token,\n token_type: 'Bearer',\n id_token: null,\n });\n // Return the cached access token.\n return this.cachedDownscopedAccessToken;\n }\n /**\n * Returns whether the provided credentials are expired or not.\n * If there is no expiry time, assumes the token is not expired or expiring.\n * @param downscopedAccessToken The credentials to check for expiration.\n * @return Whether the credentials are expired or not.\n */\n isExpired(downscopedAccessToken) {\n const now = new Date().getTime();\n return downscopedAccessToken.expiry_date\n ? now >=\n downscopedAccessToken.expiry_date - this.eagerRefreshThresholdMillis\n : false;\n }\n}\nexports.DownscopedClient = DownscopedClient;\n//# sourceMappingURL=downscopedclient.js.map","\"use strict\";\n// Copyright 2018 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEnv = exports.clear = exports.GCPEnv = void 0;\nconst gcpMetadata = require(\"gcp-metadata\");\nvar GCPEnv;\n(function (GCPEnv) {\n GCPEnv[\"APP_ENGINE\"] = \"APP_ENGINE\";\n GCPEnv[\"KUBERNETES_ENGINE\"] = \"KUBERNETES_ENGINE\";\n GCPEnv[\"CLOUD_FUNCTIONS\"] = \"CLOUD_FUNCTIONS\";\n GCPEnv[\"COMPUTE_ENGINE\"] = \"COMPUTE_ENGINE\";\n GCPEnv[\"CLOUD_RUN\"] = \"CLOUD_RUN\";\n GCPEnv[\"NONE\"] = \"NONE\";\n})(GCPEnv = exports.GCPEnv || (exports.GCPEnv = {}));\nlet envPromise;\nfunction clear() {\n envPromise = undefined;\n}\nexports.clear = clear;\nasync function getEnv() {\n if (envPromise) {\n return envPromise;\n }\n envPromise = getEnvMemoized();\n return envPromise;\n}\nexports.getEnv = getEnv;\nasync function getEnvMemoized() {\n let env = GCPEnv.NONE;\n if (isAppEngine()) {\n env = GCPEnv.APP_ENGINE;\n }\n else if (isCloudFunction()) {\n env = GCPEnv.CLOUD_FUNCTIONS;\n }\n else if (await isComputeEngine()) {\n if (await isKubernetesEngine()) {\n env = GCPEnv.KUBERNETES_ENGINE;\n }\n else if (isCloudRun()) {\n env = GCPEnv.CLOUD_RUN;\n }\n else {\n env = GCPEnv.COMPUTE_ENGINE;\n }\n }\n else {\n env = GCPEnv.NONE;\n }\n return env;\n}\nfunction isAppEngine() {\n return !!(process.env.GAE_SERVICE || process.env.GAE_MODULE_NAME);\n}\nfunction isCloudFunction() {\n return !!(process.env.FUNCTION_NAME || process.env.FUNCTION_TARGET);\n}\n/**\n * This check only verifies that the environment is running knative.\n * This must be run *after* checking for Kubernetes, otherwise it will\n * return a false positive.\n */\nfunction isCloudRun() {\n return !!process.env.K_CONFIGURATION;\n}\nasync function isKubernetesEngine() {\n try {\n await gcpMetadata.instance('attributes/cluster-name');\n return true;\n }\n catch (e) {\n return false;\n }\n}\nasync function isComputeEngine() {\n return gcpMetadata.isAvailable();\n}\n//# sourceMappingURL=envDetect.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExternalAccountClient = void 0;\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\nconst identitypoolclient_1 = require(\"./identitypoolclient\");\nconst awsclient_1 = require(\"./awsclient\");\n/**\n * Dummy class with no constructor. Developers are expected to use fromJSON.\n */\nclass ExternalAccountClient {\n constructor() {\n throw new Error('ExternalAccountClients should be initialized via: ' +\n 'ExternalAccountClient.fromJSON(), ' +\n 'directly via explicit constructors, eg. ' +\n 'new AwsClient(options), new IdentityPoolClient(options) or via ' +\n 'new GoogleAuth(options).getClient()');\n }\n /**\n * This static method will instantiate the\n * corresponding type of external account credential depending on the\n * underlying credential source.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n * @return A BaseExternalAccountClient instance or null if the options\n * provided do not correspond to an external account credential.\n */\n static fromJSON(options, additionalOptions) {\n var _a;\n if (options && options.type === baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n if ((_a = options.credential_source) === null || _a === void 0 ? void 0 : _a.environment_id) {\n return new awsclient_1.AwsClient(options, additionalOptions);\n }\n else {\n return new identitypoolclient_1.IdentityPoolClient(options, additionalOptions);\n }\n }\n else {\n return null;\n }\n }\n}\nexports.ExternalAccountClient = ExternalAccountClient;\n//# sourceMappingURL=externalclient.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GoogleAuth = exports.CLOUD_SDK_CLIENT_ID = void 0;\nconst child_process_1 = require(\"child_process\");\nconst fs = require(\"fs\");\nconst gcpMetadata = require(\"gcp-metadata\");\nconst os = require(\"os\");\nconst path = require(\"path\");\nconst crypto_1 = require(\"../crypto/crypto\");\nconst transporters_1 = require(\"../transporters\");\nconst computeclient_1 = require(\"./computeclient\");\nconst idtokenclient_1 = require(\"./idtokenclient\");\nconst envDetect_1 = require(\"./envDetect\");\nconst jwtclient_1 = require(\"./jwtclient\");\nconst refreshclient_1 = require(\"./refreshclient\");\nconst externalclient_1 = require(\"./externalclient\");\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\nexports.CLOUD_SDK_CLIENT_ID = '764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com';\nclass GoogleAuth {\n constructor(opts) {\n /**\n * Caches a value indicating whether the auth layer is running on Google\n * Compute Engine.\n * @private\n */\n this.checkIsGCE = undefined;\n // To save the contents of the JSON credential file\n this.jsonContent = null;\n this.cachedCredential = null;\n opts = opts || {};\n this._cachedProjectId = opts.projectId || null;\n this.cachedCredential = opts.authClient || null;\n this.keyFilename = opts.keyFilename || opts.keyFile;\n this.scopes = opts.scopes;\n this.jsonContent = opts.credentials || null;\n this.clientOptions = opts.clientOptions;\n }\n // Note: this properly is only public to satisify unit tests.\n // https://github.com/Microsoft/TypeScript/issues/5228\n get isGCE() {\n return this.checkIsGCE;\n }\n // GAPIC client libraries should always use self-signed JWTs. The following\n // variables are set on the JWT client in order to indicate the type of library,\n // and sign the JWT with the correct audience and scopes (if not supplied).\n setGapicJWTValues(client) {\n client.defaultServicePath = this.defaultServicePath;\n client.useJWTAccessWithScope = this.useJWTAccessWithScope;\n client.defaultScopes = this.defaultScopes;\n }\n getProjectId(callback) {\n if (callback) {\n this.getProjectIdAsync().then(r => callback(null, r), callback);\n }\n else {\n return this.getProjectIdAsync();\n }\n }\n getProjectIdAsync() {\n if (this._cachedProjectId) {\n return Promise.resolve(this._cachedProjectId);\n }\n // In implicit case, supports three environments. In order of precedence,\n // the implicit environments are:\n // - GCLOUD_PROJECT or GOOGLE_CLOUD_PROJECT environment variable\n // - GOOGLE_APPLICATION_CREDENTIALS JSON file\n // - Cloud SDK: `gcloud config config-helper --format json`\n // - GCE project ID from metadata server)\n if (!this._getDefaultProjectIdPromise) {\n // TODO: refactor the below code so that it doesn't mix and match\n // promises and async/await.\n this._getDefaultProjectIdPromise = new Promise(\n // eslint-disable-next-line no-async-promise-executor\n async (resolve, reject) => {\n try {\n const projectId = this.getProductionProjectId() ||\n (await this.getFileProjectId()) ||\n (await this.getDefaultServiceProjectId()) ||\n (await this.getGCEProjectId()) ||\n (await this.getExternalAccountClientProjectId());\n this._cachedProjectId = projectId;\n if (!projectId) {\n throw new Error('Unable to detect a Project Id in the current environment. \\n' +\n 'To learn more about authentication and Google APIs, visit: \\n' +\n 'https://cloud.google.com/docs/authentication/getting-started');\n }\n resolve(projectId);\n }\n catch (e) {\n reject(e);\n }\n });\n }\n return this._getDefaultProjectIdPromise;\n }\n /**\n * @returns Any scopes (user-specified or default scopes specified by the\n * client library) that need to be set on the current Auth client.\n */\n getAnyScopes() {\n return this.scopes || this.defaultScopes;\n }\n getApplicationDefault(optionsOrCallback = {}, callback) {\n let options;\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else {\n options = optionsOrCallback;\n }\n if (callback) {\n this.getApplicationDefaultAsync(options).then(r => callback(null, r.credential, r.projectId), callback);\n }\n else {\n return this.getApplicationDefaultAsync(options);\n }\n }\n async getApplicationDefaultAsync(options = {}) {\n // If we've already got a cached credential, just return it.\n if (this.cachedCredential) {\n return {\n credential: this.cachedCredential,\n projectId: await this.getProjectIdAsync(),\n };\n }\n let credential;\n let projectId;\n // Check for the existence of a local environment variable pointing to the\n // location of the credential file. This is typically used in local\n // developer scenarios.\n credential =\n await this._tryGetApplicationCredentialsFromEnvironmentVariable(options);\n if (credential) {\n if (credential instanceof jwtclient_1.JWT) {\n credential.scopes = this.scopes;\n }\n else if (credential instanceof baseexternalclient_1.BaseExternalAccountClient) {\n credential.scopes = this.getAnyScopes();\n }\n this.cachedCredential = credential;\n projectId = await this.getProjectId();\n return { credential, projectId };\n }\n // Look in the well-known credential file location.\n credential = await this._tryGetApplicationCredentialsFromWellKnownFile(options);\n if (credential) {\n if (credential instanceof jwtclient_1.JWT) {\n credential.scopes = this.scopes;\n }\n else if (credential instanceof baseexternalclient_1.BaseExternalAccountClient) {\n credential.scopes = this.getAnyScopes();\n }\n this.cachedCredential = credential;\n projectId = await this.getProjectId();\n return { credential, projectId };\n }\n // Determine if we're running on GCE.\n let isGCE;\n try {\n isGCE = await this._checkIsGCE();\n }\n catch (e) {\n if (e instanceof Error) {\n e.message = `Unexpected error determining execution environment: ${e.message}`;\n }\n throw e;\n }\n if (!isGCE) {\n // We failed to find the default credentials. Bail out with an error.\n throw new Error('Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.');\n }\n // For GCE, just return a default ComputeClient. It will take care of\n // the rest.\n options.scopes = this.getAnyScopes();\n this.cachedCredential = new computeclient_1.Compute(options);\n projectId = await this.getProjectId();\n return { projectId, credential: this.cachedCredential };\n }\n /**\n * Determines whether the auth layer is running on Google Compute Engine.\n * @returns A promise that resolves with the boolean.\n * @api private\n */\n async _checkIsGCE() {\n if (this.checkIsGCE === undefined) {\n this.checkIsGCE = await gcpMetadata.isAvailable();\n }\n return this.checkIsGCE;\n }\n /**\n * Attempts to load default credentials from the environment variable path..\n * @returns Promise that resolves with the OAuth2Client or null.\n * @api private\n */\n async _tryGetApplicationCredentialsFromEnvironmentVariable(options) {\n const credentialsPath = process.env['GOOGLE_APPLICATION_CREDENTIALS'] ||\n process.env['google_application_credentials'];\n if (!credentialsPath || credentialsPath.length === 0) {\n return null;\n }\n try {\n return this._getApplicationCredentialsFromFilePath(credentialsPath, options);\n }\n catch (e) {\n if (e instanceof Error) {\n e.message = `Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${e.message}`;\n }\n throw e;\n }\n }\n /**\n * Attempts to load default credentials from a well-known file location\n * @return Promise that resolves with the OAuth2Client or null.\n * @api private\n */\n async _tryGetApplicationCredentialsFromWellKnownFile(options) {\n // First, figure out the location of the file, depending upon the OS type.\n let location = null;\n if (this._isWindows()) {\n // Windows\n location = process.env['APPDATA'];\n }\n else {\n // Linux or Mac\n const home = process.env['HOME'];\n if (home) {\n location = path.join(home, '.config');\n }\n }\n // If we found the root path, expand it.\n if (location) {\n location = path.join(location, 'gcloud', 'application_default_credentials.json');\n if (!fs.existsSync(location)) {\n location = null;\n }\n }\n // The file does not exist.\n if (!location) {\n return null;\n }\n // The file seems to exist. Try to use it.\n const client = await this._getApplicationCredentialsFromFilePath(location, options);\n return client;\n }\n /**\n * Attempts to load default credentials from a file at the given path..\n * @param filePath The path to the file to read.\n * @returns Promise that resolves with the OAuth2Client\n * @api private\n */\n async _getApplicationCredentialsFromFilePath(filePath, options = {}) {\n // Make sure the path looks like a string.\n if (!filePath || filePath.length === 0) {\n throw new Error('The file path is invalid.');\n }\n // Make sure there is a file at the path. lstatSync will throw if there is\n // nothing there.\n try {\n // Resolve path to actual file in case of symlink. Expect a thrown error\n // if not resolvable.\n filePath = fs.realpathSync(filePath);\n if (!fs.lstatSync(filePath).isFile()) {\n throw new Error();\n }\n }\n catch (err) {\n if (err instanceof Error) {\n err.message = `The file at ${filePath} does not exist, or it is not a file. ${err.message}`;\n }\n throw err;\n }\n // Now open a read stream on the file, and parse it.\n const readStream = fs.createReadStream(filePath);\n return this.fromStream(readStream, options);\n }\n /**\n * Create a credentials instance using the given input options.\n * @param json The input object.\n * @param options The JWT or UserRefresh options for the client\n * @returns JWT or UserRefresh Client with data\n */\n fromJSON(json, options) {\n let client;\n if (!json) {\n throw new Error('Must pass in a JSON object containing the Google auth settings.');\n }\n options = options || {};\n if (json.type === 'authorized_user') {\n client = new refreshclient_1.UserRefreshClient(options);\n client.fromJSON(json);\n }\n else if (json.type === baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n client = externalclient_1.ExternalAccountClient.fromJSON(json, options);\n client.scopes = this.getAnyScopes();\n }\n else {\n options.scopes = this.scopes;\n client = new jwtclient_1.JWT(options);\n this.setGapicJWTValues(client);\n client.fromJSON(json);\n }\n return client;\n }\n /**\n * Return a JWT or UserRefreshClient from JavaScript object, caching both the\n * object used to instantiate and the client.\n * @param json The input object.\n * @param options The JWT or UserRefresh options for the client\n * @returns JWT or UserRefresh Client with data\n */\n _cacheClientFromJSON(json, options) {\n let client;\n // create either a UserRefreshClient or JWT client.\n options = options || {};\n if (json.type === 'authorized_user') {\n client = new refreshclient_1.UserRefreshClient(options);\n client.fromJSON(json);\n }\n else if (json.type === baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n client = externalclient_1.ExternalAccountClient.fromJSON(json, options);\n client.scopes = this.getAnyScopes();\n }\n else {\n options.scopes = this.scopes;\n client = new jwtclient_1.JWT(options);\n this.setGapicJWTValues(client);\n client.fromJSON(json);\n }\n // cache both raw data used to instantiate client and client itself.\n this.jsonContent = json;\n this.cachedCredential = client;\n return client;\n }\n fromStream(inputStream, optionsOrCallback = {}, callback) {\n let options = {};\n if (typeof optionsOrCallback === 'function') {\n callback = optionsOrCallback;\n }\n else {\n options = optionsOrCallback;\n }\n if (callback) {\n this.fromStreamAsync(inputStream, options).then(r => callback(null, r), callback);\n }\n else {\n return this.fromStreamAsync(inputStream, options);\n }\n }\n fromStreamAsync(inputStream, options) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n throw new Error('Must pass in a stream containing the Google auth settings.');\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('error', reject)\n .on('data', chunk => (s += chunk))\n .on('end', () => {\n try {\n try {\n const data = JSON.parse(s);\n const r = this._cacheClientFromJSON(data, options);\n return resolve(r);\n }\n catch (err) {\n // If we failed parsing this.keyFileName, assume that it\n // is a PEM or p12 certificate:\n if (!this.keyFilename)\n throw err;\n const client = new jwtclient_1.JWT({\n ...this.clientOptions,\n keyFile: this.keyFilename,\n });\n this.cachedCredential = client;\n this.setGapicJWTValues(client);\n return resolve(client);\n }\n }\n catch (err) {\n return reject(err);\n }\n });\n });\n }\n /**\n * Create a credentials instance using the given API key string.\n * @param apiKey The API key string\n * @param options An optional options object.\n * @returns A JWT loaded from the key\n */\n fromAPIKey(apiKey, options) {\n options = options || {};\n const client = new jwtclient_1.JWT(options);\n client.fromAPIKey(apiKey);\n return client;\n }\n /**\n * Determines whether the current operating system is Windows.\n * @api private\n */\n _isWindows() {\n const sys = os.platform();\n if (sys && sys.length >= 3) {\n if (sys.substring(0, 3).toLowerCase() === 'win') {\n return true;\n }\n }\n return false;\n }\n /**\n * Run the Google Cloud SDK command that prints the default project ID\n */\n async getDefaultServiceProjectId() {\n return new Promise(resolve => {\n child_process_1.exec('gcloud config config-helper --format json', (err, stdout) => {\n if (!err && stdout) {\n try {\n const projectId = JSON.parse(stdout).configuration.properties.core.project;\n resolve(projectId);\n return;\n }\n catch (e) {\n // ignore errors\n }\n }\n resolve(null);\n });\n });\n }\n /**\n * Loads the project id from environment variables.\n * @api private\n */\n getProductionProjectId() {\n return (process.env['GCLOUD_PROJECT'] ||\n process.env['GOOGLE_CLOUD_PROJECT'] ||\n process.env['gcloud_project'] ||\n process.env['google_cloud_project']);\n }\n /**\n * Loads the project id from the GOOGLE_APPLICATION_CREDENTIALS json file.\n * @api private\n */\n async getFileProjectId() {\n if (this.cachedCredential) {\n // Try to read the project ID from the cached credentials file\n return this.cachedCredential.projectId;\n }\n // Ensure the projectId is loaded from the keyFile if available.\n if (this.keyFilename) {\n const creds = await this.getClient();\n if (creds && creds.projectId) {\n return creds.projectId;\n }\n }\n // Try to load a credentials file and read its project ID\n const r = await this._tryGetApplicationCredentialsFromEnvironmentVariable();\n if (r) {\n return r.projectId;\n }\n else {\n return null;\n }\n }\n /**\n * Gets the project ID from external account client if available.\n */\n async getExternalAccountClientProjectId() {\n if (!this.jsonContent || this.jsonContent.type !== baseexternalclient_1.EXTERNAL_ACCOUNT_TYPE) {\n return null;\n }\n const creds = await this.getClient();\n // Do not suppress the underlying error, as the error could contain helpful\n // information for debugging and fixing. This is especially true for\n // external account creds as in order to get the project ID, the following\n // operations have to succeed:\n // 1. Valid credentials file should be supplied.\n // 2. Ability to retrieve access tokens from STS token exchange API.\n // 3. Ability to exchange for service account impersonated credentials (if\n // enabled).\n // 4. Ability to get project info using the access token from step 2 or 3.\n // Without surfacing the error, it is harder for developers to determine\n // which step went wrong.\n return await creds.getProjectId();\n }\n /**\n * Gets the Compute Engine project ID if it can be inferred.\n */\n async getGCEProjectId() {\n try {\n const r = await gcpMetadata.project('project-id');\n return r;\n }\n catch (e) {\n // Ignore any errors\n return null;\n }\n }\n getCredentials(callback) {\n if (callback) {\n this.getCredentialsAsync().then(r => callback(null, r), callback);\n }\n else {\n return this.getCredentialsAsync();\n }\n }\n async getCredentialsAsync() {\n await this.getClient();\n if (this.jsonContent) {\n const credential = {\n client_email: this.jsonContent.client_email,\n private_key: this.jsonContent.private_key,\n };\n return credential;\n }\n const isGCE = await this._checkIsGCE();\n if (!isGCE) {\n throw new Error('Unknown error.');\n }\n // For GCE, return the service account details from the metadata server\n // NOTE: The trailing '/' at the end of service-accounts/ is very important!\n // The GCF metadata server doesn't respect querystring params if this / is\n // not included.\n const data = await gcpMetadata.instance({\n property: 'service-accounts/',\n params: { recursive: 'true' },\n });\n if (!data || !data.default || !data.default.email) {\n throw new Error('Failure from metadata server.');\n }\n return { client_email: data.default.email };\n }\n /**\n * Automatically obtain a client based on the provided configuration. If no\n * options were passed, use Application Default Credentials.\n */\n async getClient(options) {\n if (options) {\n throw new Error('Passing options to getClient is forbidden in v5.0.0. Use new GoogleAuth(opts) instead.');\n }\n if (!this.cachedCredential) {\n if (this.jsonContent) {\n this._cacheClientFromJSON(this.jsonContent, this.clientOptions);\n }\n else if (this.keyFilename) {\n const filePath = path.resolve(this.keyFilename);\n const stream = fs.createReadStream(filePath);\n await this.fromStreamAsync(stream, this.clientOptions);\n }\n else {\n await this.getApplicationDefaultAsync(this.clientOptions);\n }\n }\n return this.cachedCredential;\n }\n /**\n * Creates a client which will fetch an ID token for authorization.\n * @param targetAudience the audience for the fetched ID token.\n * @returns IdTokenClient for making HTTP calls authenticated with ID tokens.\n */\n async getIdTokenClient(targetAudience) {\n const client = await this.getClient();\n if (!('fetchIdToken' in client)) {\n throw new Error('Cannot fetch ID token in this environment, use GCE or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to a service account credentials JSON file.');\n }\n return new idtokenclient_1.IdTokenClient({ targetAudience, idTokenProvider: client });\n }\n /**\n * Automatically obtain application default credentials, and return\n * an access token for making requests.\n */\n async getAccessToken() {\n const client = await this.getClient();\n return (await client.getAccessToken()).token;\n }\n /**\n * Obtain the HTTP headers that will provide authorization for a given\n * request.\n */\n async getRequestHeaders(url) {\n const client = await this.getClient();\n return client.getRequestHeaders(url);\n }\n /**\n * Obtain credentials for a request, then attach the appropriate headers to\n * the request options.\n * @param opts Axios or Request options on which to attach the headers\n */\n async authorizeRequest(opts) {\n opts = opts || {};\n const url = opts.url || opts.uri;\n const client = await this.getClient();\n const headers = await client.getRequestHeaders(url);\n opts.headers = Object.assign(opts.headers || {}, headers);\n return opts;\n }\n /**\n * Automatically obtain application default credentials, and make an\n * HTTP request using the given options.\n * @param opts Axios request options for the HTTP request.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async request(opts) {\n const client = await this.getClient();\n return client.request(opts);\n }\n /**\n * Determine the compute environment in which the code is running.\n */\n getEnv() {\n return envDetect_1.getEnv();\n }\n /**\n * Sign the given data with the current private key, or go out\n * to the IAM API to sign it.\n * @param data The data to be signed.\n */\n async sign(data) {\n const client = await this.getClient();\n const crypto = crypto_1.createCrypto();\n if (client instanceof jwtclient_1.JWT && client.key) {\n const sign = await crypto.sign(client.key, data);\n return sign;\n }\n // signBlob requires a service account email and the underlying\n // access token to have iam.serviceAccounts.signBlob permission\n // on the specified resource name.\n // The \"Service Account Token Creator\" role should cover this.\n // As a result external account credentials can support this\n // operation when service account impersonation is enabled.\n if (client instanceof baseexternalclient_1.BaseExternalAccountClient &&\n client.getServiceAccountEmail()) {\n return this.signBlob(crypto, client.getServiceAccountEmail(), data);\n }\n const projectId = await this.getProjectId();\n if (!projectId) {\n throw new Error('Cannot sign data without a project ID.');\n }\n const creds = await this.getCredentials();\n if (!creds.client_email) {\n throw new Error('Cannot sign data without `client_email`.');\n }\n return this.signBlob(crypto, creds.client_email, data);\n }\n async signBlob(crypto, emailOrUniqueId, data) {\n const url = 'https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/' +\n `${emailOrUniqueId}:signBlob`;\n const res = await this.request({\n method: 'POST',\n url,\n data: {\n payload: crypto.encodeBase64StringUtf8(data),\n },\n });\n return res.data.signedBlob;\n }\n}\nexports.GoogleAuth = GoogleAuth;\n/**\n * Export DefaultTransporter as a static property of the class.\n */\nGoogleAuth.DefaultTransporter = transporters_1.DefaultTransporter;\n//# sourceMappingURL=googleauth.js.map","\"use strict\";\n// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IAMAuth = void 0;\nclass IAMAuth {\n /**\n * IAM credentials.\n *\n * @param selector the iam authority selector\n * @param token the token\n * @constructor\n */\n constructor(selector, token) {\n this.selector = selector;\n this.token = token;\n this.selector = selector;\n this.token = token;\n }\n /**\n * Acquire the HTTP headers required to make an authenticated request.\n */\n getRequestHeaders() {\n return {\n 'x-goog-iam-authority-selector': this.selector,\n 'x-goog-iam-authorization-token': this.token,\n };\n }\n}\nexports.IAMAuth = IAMAuth;\n//# sourceMappingURL=iam.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdentityPoolClient = void 0;\nconst fs = require(\"fs\");\nconst util_1 = require(\"util\");\nconst baseexternalclient_1 = require(\"./baseexternalclient\");\n// fs.readfile is undefined in browser karma tests causing\n// `npm run browser-test` to fail as test.oauth2.ts imports this file via\n// src/index.ts.\n// Fallback to void function to avoid promisify throwing a TypeError.\nconst readFile = util_1.promisify((_a = fs.readFile) !== null && _a !== void 0 ? _a : (() => { }));\nconst realpath = util_1.promisify((_b = fs.realpath) !== null && _b !== void 0 ? _b : (() => { }));\nconst lstat = util_1.promisify((_c = fs.lstat) !== null && _c !== void 0 ? _c : (() => { }));\n/**\n * Defines the Url-sourced and file-sourced external account clients mainly\n * used for K8s and Azure workloads.\n */\nclass IdentityPoolClient extends baseexternalclient_1.BaseExternalAccountClient {\n /**\n * Instantiate an IdentityPoolClient instance using the provided JSON\n * object loaded from an external account credentials file.\n * An error is thrown if the credential is not a valid file-sourced or\n * url-sourced credential or a workforce pool user project is provided\n * with a non workforce audience.\n * @param options The external account options object typically loaded\n * from the external account JSON credential file.\n * @param additionalOptions Optional additional behavior customization\n * options. These currently customize expiration threshold time and\n * whether to retry on 401/403 API request errors.\n */\n constructor(options, additionalOptions) {\n var _a, _b;\n super(options, additionalOptions);\n this.file = options.credential_source.file;\n this.url = options.credential_source.url;\n this.headers = options.credential_source.headers;\n if (!this.file && !this.url) {\n throw new Error('No valid Identity Pool \"credential_source\" provided');\n }\n // Text is the default format type.\n this.formatType = ((_a = options.credential_source.format) === null || _a === void 0 ? void 0 : _a.type) || 'text';\n this.formatSubjectTokenFieldName = (_b = options.credential_source.format) === null || _b === void 0 ? void 0 : _b.subject_token_field_name;\n if (this.formatType !== 'json' && this.formatType !== 'text') {\n throw new Error(`Invalid credential_source format \"${this.formatType}\"`);\n }\n if (this.formatType === 'json' && !this.formatSubjectTokenFieldName) {\n throw new Error('Missing subject_token_field_name for JSON credential_source format');\n }\n }\n /**\n * Triggered when a external subject token is needed to be exchanged for a GCP\n * access token via GCP STS endpoint.\n * This uses the `options.credential_source` object to figure out how\n * to retrieve the token using the current environment. In this case,\n * this either retrieves the local credential from a file location (k8s\n * workload) or by sending a GET request to a local metadata server (Azure\n * workloads).\n * @return A promise that resolves with the external subject token.\n */\n async retrieveSubjectToken() {\n if (this.file) {\n return await this.getTokenFromFile(this.file, this.formatType, this.formatSubjectTokenFieldName);\n }\n return await this.getTokenFromUrl(this.url, this.formatType, this.formatSubjectTokenFieldName, this.headers);\n }\n /**\n * Looks up the external subject token in the file path provided and\n * resolves with that token.\n * @param file The file path where the external credential is located.\n * @param formatType The token file or URL response type (JSON or text).\n * @param formatSubjectTokenFieldName For JSON response types, this is the\n * subject_token field name. For Azure, this is access_token. For text\n * response types, this is ignored.\n * @return A promise that resolves with the external subject token.\n */\n async getTokenFromFile(filePath, formatType, formatSubjectTokenFieldName) {\n // Make sure there is a file at the path. lstatSync will throw if there is\n // nothing there.\n try {\n // Resolve path to actual file in case of symlink. Expect a thrown error\n // if not resolvable.\n filePath = await realpath(filePath);\n if (!(await lstat(filePath)).isFile()) {\n throw new Error();\n }\n }\n catch (err) {\n err.message = `The file at ${filePath} does not exist, or it is not a file. ${err.message}`;\n throw err;\n }\n let subjectToken;\n const rawText = await readFile(filePath, { encoding: 'utf8' });\n if (formatType === 'text') {\n subjectToken = rawText;\n }\n else if (formatType === 'json' && formatSubjectTokenFieldName) {\n const json = JSON.parse(rawText);\n subjectToken = json[formatSubjectTokenFieldName];\n }\n if (!subjectToken) {\n throw new Error('Unable to parse the subject_token from the credential_source file');\n }\n return subjectToken;\n }\n /**\n * Sends a GET request to the URL provided and resolves with the returned\n * external subject token.\n * @param url The URL to call to retrieve the subject token. This is typically\n * a local metadata server.\n * @param formatType The token file or URL response type (JSON or text).\n * @param formatSubjectTokenFieldName For JSON response types, this is the\n * subject_token field name. For Azure, this is access_token. For text\n * response types, this is ignored.\n * @param headers The optional additional headers to send with the request to\n * the metadata server url.\n * @return A promise that resolves with the external subject token.\n */\n async getTokenFromUrl(url, formatType, formatSubjectTokenFieldName, headers) {\n const opts = {\n url,\n method: 'GET',\n headers,\n responseType: formatType,\n };\n let subjectToken;\n if (formatType === 'text') {\n const response = await this.transporter.request(opts);\n subjectToken = response.data;\n }\n else if (formatType === 'json' && formatSubjectTokenFieldName) {\n const response = await this.transporter.request(opts);\n subjectToken = response.data[formatSubjectTokenFieldName];\n }\n if (!subjectToken) {\n throw new Error('Unable to parse the subject_token from the credential_source URL');\n }\n return subjectToken;\n }\n}\nexports.IdentityPoolClient = IdentityPoolClient;\n//# sourceMappingURL=identitypoolclient.js.map","\"use strict\";\n// Copyright 2020 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdTokenClient = void 0;\nconst oauth2client_1 = require(\"./oauth2client\");\nclass IdTokenClient extends oauth2client_1.OAuth2Client {\n /**\n * Google ID Token client\n *\n * Retrieve access token from the metadata server.\n * See: https://developers.google.com/compute/docs/authentication\n */\n constructor(options) {\n super();\n this.targetAudience = options.targetAudience;\n this.idTokenProvider = options.idTokenProvider;\n }\n async getRequestMetadataAsync(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n url) {\n if (!this.credentials.id_token ||\n (this.credentials.expiry_date || 0) < Date.now()) {\n const idToken = await this.idTokenProvider.fetchIdToken(this.targetAudience);\n this.credentials = {\n id_token: idToken,\n expiry_date: this.getIdTokenExpiryDate(idToken),\n };\n }\n const headers = {\n Authorization: 'Bearer ' + this.credentials.id_token,\n };\n return { headers };\n }\n getIdTokenExpiryDate(idToken) {\n const payloadB64 = idToken.split('.')[1];\n if (payloadB64) {\n const payload = JSON.parse(Buffer.from(payloadB64, 'base64').toString('ascii'));\n return payload.exp * 1000;\n }\n }\n}\nexports.IdTokenClient = IdTokenClient;\n//# sourceMappingURL=idtokenclient.js.map","\"use strict\";\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Impersonated = void 0;\nconst oauth2client_1 = require(\"./oauth2client\");\nclass Impersonated extends oauth2client_1.OAuth2Client {\n /**\n * Impersonated service account credentials.\n *\n * Create a new access token by impersonating another service account.\n *\n * Impersonated Credentials allowing credentials issued to a user or\n * service account to impersonate another. The source project using\n * Impersonated Credentials must enable the \"IAMCredentials\" API.\n * Also, the target service account must grant the orginating principal\n * the \"Service Account Token Creator\" IAM role.\n *\n * @param {object} options - The configuration object.\n * @param {object} [options.sourceClient] the source credential used as to\n * acquire the impersonated credentials.\n * @param {string} [options.targetPrincipal] the service account to\n * impersonate.\n * @param {string[]} [options.delegates] the chained list of delegates\n * required to grant the final access_token. If set, the sequence of\n * identities must have \"Service Account Token Creator\" capability granted to\n * the preceding identity. For example, if set to [serviceAccountB,\n * serviceAccountC], the sourceCredential must have the Token Creator role on\n * serviceAccountB. serviceAccountB must have the Token Creator on\n * serviceAccountC. Finally, C must have Token Creator on target_principal.\n * If left unset, sourceCredential must have that role on targetPrincipal.\n * @param {string[]} [options.targetScopes] scopes to request during the\n * authorization grant.\n * @param {number} [options.lifetime] number of seconds the delegated\n * credential should be valid for up to 3600 seconds by default, or 43,200\n * seconds by extending the token's lifetime, see:\n * https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials#sa-credentials-oauth\n * @param {string} [options.endpoint] api endpoint override.\n */\n constructor(options = {}) {\n var _a, _b, _c, _d, _e, _f;\n super(options);\n this.credentials = {\n expiry_date: 1,\n refresh_token: 'impersonated-placeholder',\n };\n this.sourceClient = (_a = options.sourceClient) !== null && _a !== void 0 ? _a : new oauth2client_1.OAuth2Client();\n this.targetPrincipal = (_b = options.targetPrincipal) !== null && _b !== void 0 ? _b : '';\n this.delegates = (_c = options.delegates) !== null && _c !== void 0 ? _c : [];\n this.targetScopes = (_d = options.targetScopes) !== null && _d !== void 0 ? _d : [];\n this.lifetime = (_e = options.lifetime) !== null && _e !== void 0 ? _e : 3600;\n this.endpoint = (_f = options.endpoint) !== null && _f !== void 0 ? _f : 'https://iamcredentials.googleapis.com';\n }\n /**\n * Refreshes the access token.\n * @param refreshToken Unused parameter\n */\n async refreshToken(refreshToken) {\n var _a, _b, _c, _d, _e, _f;\n try {\n await this.sourceClient.getAccessToken();\n const name = 'projects/-/serviceAccounts/' + this.targetPrincipal;\n const u = `${this.endpoint}/v1/${name}:generateAccessToken`;\n const body = {\n delegates: this.delegates,\n scope: this.targetScopes,\n lifetime: this.lifetime + 's',\n };\n const res = await this.sourceClient.request({\n url: u,\n data: body,\n method: 'POST',\n });\n const tokenResponse = res.data;\n this.credentials.access_token = tokenResponse.accessToken;\n this.credentials.expiry_date = Date.parse(tokenResponse.expireTime);\n return {\n tokens: this.credentials,\n res,\n };\n }\n catch (error) {\n const status = (_c = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.status;\n const message = (_f = (_e = (_d = error === null || error === void 0 ? void 0 : error.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.error) === null || _f === void 0 ? void 0 : _f.message;\n if (status && message) {\n error.message = `${status}: unable to impersonate: ${message}`;\n throw error;\n }\n else {\n error.message = `unable to impersonate: ${error}`;\n throw error;\n }\n }\n }\n}\nexports.Impersonated = Impersonated;\n//# sourceMappingURL=impersonated.js.map","\"use strict\";\n// Copyright 2015 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JWTAccess = void 0;\nconst jws = require(\"jws\");\nconst LRU = require(\"lru-cache\");\nconst DEFAULT_HEADER = {\n alg: 'RS256',\n typ: 'JWT',\n};\nclass JWTAccess {\n /**\n * JWTAccess service account credentials.\n *\n * Create a new access token by using the credential to create a new JWT token\n * that's recognized as the access token.\n *\n * @param email the service account email address.\n * @param key the private key that will be used to sign the token.\n * @param keyId the ID of the private key used to sign the token.\n */\n constructor(email, key, keyId, eagerRefreshThresholdMillis) {\n this.cache = new LRU({\n max: 500,\n maxAge: 60 * 60 * 1000,\n });\n this.email = email;\n this.key = key;\n this.keyId = keyId;\n this.eagerRefreshThresholdMillis = eagerRefreshThresholdMillis !== null && eagerRefreshThresholdMillis !== void 0 ? eagerRefreshThresholdMillis : 5 * 60 * 1000;\n }\n /**\n * Ensures that we're caching a key appropriately, giving precedence to scopes vs. url\n *\n * @param url The URI being authorized.\n * @param scopes The scope or scopes being authorized\n * @returns A string that returns the cached key.\n */\n getCachedKey(url, scopes) {\n let cacheKey = url;\n if (scopes && Array.isArray(scopes) && scopes.length) {\n cacheKey = url ? `${url}_${scopes.join('_')}` : `${scopes.join('_')}`;\n }\n else if (typeof scopes === 'string') {\n cacheKey = url ? `${url}_${scopes}` : scopes;\n }\n if (!cacheKey) {\n throw Error('Scopes or url must be provided');\n }\n return cacheKey;\n }\n /**\n * Get a non-expired access token, after refreshing if necessary.\n *\n * @param url The URI being authorized.\n * @param additionalClaims An object with a set of additional claims to\n * include in the payload.\n * @returns An object that includes the authorization header.\n */\n getRequestHeaders(url, additionalClaims, scopes) {\n // Return cached authorization headers, unless we are within\n // eagerRefreshThresholdMillis ms of them expiring:\n const key = this.getCachedKey(url, scopes);\n const cachedToken = this.cache.get(key);\n const now = Date.now();\n if (cachedToken &&\n cachedToken.expiration - now > this.eagerRefreshThresholdMillis) {\n return cachedToken.headers;\n }\n const iat = Math.floor(Date.now() / 1000);\n const exp = JWTAccess.getExpirationTime(iat);\n let defaultClaims;\n // Turn scopes into space-separated string\n if (Array.isArray(scopes)) {\n scopes = scopes.join(' ');\n }\n // If scopes are specified, sign with scopes\n if (scopes) {\n defaultClaims = {\n iss: this.email,\n sub: this.email,\n scope: scopes,\n exp,\n iat,\n };\n }\n else {\n defaultClaims = {\n iss: this.email,\n sub: this.email,\n aud: url,\n exp,\n iat,\n };\n }\n // if additionalClaims are provided, ensure they do not collide with\n // other required claims.\n if (additionalClaims) {\n for (const claim in defaultClaims) {\n if (additionalClaims[claim]) {\n throw new Error(`The '${claim}' property is not allowed when passing additionalClaims. This claim is included in the JWT by default.`);\n }\n }\n }\n const header = this.keyId\n ? { ...DEFAULT_HEADER, kid: this.keyId }\n : DEFAULT_HEADER;\n const payload = Object.assign(defaultClaims, additionalClaims);\n // Sign the jwt and add it to the cache\n const signedJWT = jws.sign({ header, payload, secret: this.key });\n const headers = { Authorization: `Bearer ${signedJWT}` };\n this.cache.set(key, {\n expiration: exp * 1000,\n headers,\n });\n return headers;\n }\n /**\n * Returns an expiration time for the JWT token.\n *\n * @param iat The issued at time for the JWT.\n * @returns An expiration time for the JWT.\n */\n static getExpirationTime(iat) {\n const exp = iat + 3600; // 3600 seconds = 1 hour\n return exp;\n }\n /**\n * Create a JWTAccess credentials instance using the given input options.\n * @param json The input object.\n */\n fromJSON(json) {\n if (!json) {\n throw new Error('Must pass in a JSON object containing the service account auth settings.');\n }\n if (!json.client_email) {\n throw new Error('The incoming JSON object does not contain a client_email field');\n }\n if (!json.private_key) {\n throw new Error('The incoming JSON object does not contain a private_key field');\n }\n // Extract the relevant information from the json key file.\n this.email = json.client_email;\n this.key = json.private_key;\n this.keyId = json.private_key_id;\n this.projectId = json.project_id;\n }\n fromStream(inputStream, callback) {\n if (callback) {\n this.fromStreamAsync(inputStream).then(() => callback(), callback);\n }\n else {\n return this.fromStreamAsync(inputStream);\n }\n }\n fromStreamAsync(inputStream) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n reject(new Error('Must pass in a stream containing the service account auth settings.'));\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('data', chunk => (s += chunk))\n .on('error', reject)\n .on('end', () => {\n try {\n const data = JSON.parse(s);\n this.fromJSON(data);\n resolve();\n }\n catch (err) {\n reject(err);\n }\n });\n });\n }\n}\nexports.JWTAccess = JWTAccess;\n//# sourceMappingURL=jwtaccess.js.map","\"use strict\";\n// Copyright 2013 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JWT = void 0;\nconst gtoken_1 = require(\"gtoken\");\nconst jwtaccess_1 = require(\"./jwtaccess\");\nconst oauth2client_1 = require(\"./oauth2client\");\nclass JWT extends oauth2client_1.OAuth2Client {\n constructor(optionsOrEmail, keyFile, key, scopes, subject, keyId) {\n const opts = optionsOrEmail && typeof optionsOrEmail === 'object'\n ? optionsOrEmail\n : { email: optionsOrEmail, keyFile, key, keyId, scopes, subject };\n super({\n eagerRefreshThresholdMillis: opts.eagerRefreshThresholdMillis,\n forceRefreshOnFailure: opts.forceRefreshOnFailure,\n });\n this.email = opts.email;\n this.keyFile = opts.keyFile;\n this.key = opts.key;\n this.keyId = opts.keyId;\n this.scopes = opts.scopes;\n this.subject = opts.subject;\n this.additionalClaims = opts.additionalClaims;\n this.credentials = { refresh_token: 'jwt-placeholder', expiry_date: 1 };\n }\n /**\n * Creates a copy of the credential with the specified scopes.\n * @param scopes List of requested scopes or a single scope.\n * @return The cloned instance.\n */\n createScoped(scopes) {\n return new JWT({\n email: this.email,\n keyFile: this.keyFile,\n key: this.key,\n keyId: this.keyId,\n scopes,\n subject: this.subject,\n additionalClaims: this.additionalClaims,\n });\n }\n /**\n * Obtains the metadata to be sent with the request.\n *\n * @param url the URI being authorized.\n */\n async getRequestMetadataAsync(url) {\n url = this.defaultServicePath ? `https://${this.defaultServicePath}/` : url;\n const useSelfSignedJWT = (!this.hasUserScopes() && url) ||\n (this.useJWTAccessWithScope && this.hasAnyScopes());\n if (!this.apiKey && useSelfSignedJWT) {\n if (this.additionalClaims &&\n this.additionalClaims.target_audience) {\n const { tokens } = await this.refreshToken();\n return {\n headers: this.addSharedMetadataHeaders({\n Authorization: `Bearer ${tokens.id_token}`,\n }),\n };\n }\n else {\n // no scopes have been set, but a uri has been provided. Use JWTAccess\n // credentials.\n if (!this.access) {\n this.access = new jwtaccess_1.JWTAccess(this.email, this.key, this.keyId, this.eagerRefreshThresholdMillis);\n }\n let scopes;\n if (this.hasUserScopes()) {\n scopes = this.scopes;\n }\n else if (!url) {\n scopes = this.defaultScopes;\n }\n const headers = await this.access.getRequestHeaders(url !== null && url !== void 0 ? url : undefined, this.additionalClaims, \n // Scopes take precedent over audience for signing,\n // so we only provide them if useJWTAccessWithScope is on\n this.useJWTAccessWithScope ? scopes : undefined);\n return { headers: this.addSharedMetadataHeaders(headers) };\n }\n }\n else if (this.hasAnyScopes() || this.apiKey) {\n return super.getRequestMetadataAsync(url);\n }\n else {\n // If no audience, apiKey, or scopes are provided, we should not attempt\n // to populate any headers:\n return { headers: {} };\n }\n }\n /**\n * Fetches an ID token.\n * @param targetAudience the audience for the fetched ID token.\n */\n async fetchIdToken(targetAudience) {\n // Create a new gToken for fetching an ID token\n const gtoken = new gtoken_1.GoogleToken({\n iss: this.email,\n sub: this.subject,\n scope: this.scopes || this.defaultScopes,\n keyFile: this.keyFile,\n key: this.key,\n additionalClaims: { target_audience: targetAudience },\n });\n await gtoken.getToken({\n forceRefresh: true,\n });\n if (!gtoken.idToken) {\n throw new Error('Unknown error: Failed to fetch ID token');\n }\n return gtoken.idToken;\n }\n /**\n * Determine if there are currently scopes available.\n */\n hasUserScopes() {\n if (!this.scopes) {\n return false;\n }\n return this.scopes.length > 0;\n }\n /**\n * Are there any default or user scopes defined.\n */\n hasAnyScopes() {\n if (this.scopes && this.scopes.length > 0)\n return true;\n if (this.defaultScopes && this.defaultScopes.length > 0)\n return true;\n return false;\n }\n authorize(callback) {\n if (callback) {\n this.authorizeAsync().then(r => callback(null, r), callback);\n }\n else {\n return this.authorizeAsync();\n }\n }\n async authorizeAsync() {\n const result = await this.refreshToken();\n if (!result) {\n throw new Error('No result returned');\n }\n this.credentials = result.tokens;\n this.credentials.refresh_token = 'jwt-placeholder';\n this.key = this.gtoken.key;\n this.email = this.gtoken.iss;\n return result.tokens;\n }\n /**\n * Refreshes the access token.\n * @param refreshToken ignored\n * @private\n */\n async refreshTokenNoCache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refreshToken) {\n const gtoken = this.createGToken();\n const token = await gtoken.getToken({\n forceRefresh: this.isTokenExpiring(),\n });\n const tokens = {\n access_token: token.access_token,\n token_type: 'Bearer',\n expiry_date: gtoken.expiresAt,\n id_token: gtoken.idToken,\n };\n this.emit('tokens', tokens);\n return { res: null, tokens };\n }\n /**\n * Create a gToken if it doesn't already exist.\n */\n createGToken() {\n if (!this.gtoken) {\n this.gtoken = new gtoken_1.GoogleToken({\n iss: this.email,\n sub: this.subject,\n scope: this.scopes || this.defaultScopes,\n keyFile: this.keyFile,\n key: this.key,\n additionalClaims: this.additionalClaims,\n });\n }\n return this.gtoken;\n }\n /**\n * Create a JWT credentials instance using the given input options.\n * @param json The input object.\n */\n fromJSON(json) {\n if (!json) {\n throw new Error('Must pass in a JSON object containing the service account auth settings.');\n }\n if (!json.client_email) {\n throw new Error('The incoming JSON object does not contain a client_email field');\n }\n if (!json.private_key) {\n throw new Error('The incoming JSON object does not contain a private_key field');\n }\n // Extract the relevant information from the json key file.\n this.email = json.client_email;\n this.key = json.private_key;\n this.keyId = json.private_key_id;\n this.projectId = json.project_id;\n this.quotaProjectId = json.quota_project_id;\n }\n fromStream(inputStream, callback) {\n if (callback) {\n this.fromStreamAsync(inputStream).then(() => callback(), callback);\n }\n else {\n return this.fromStreamAsync(inputStream);\n }\n }\n fromStreamAsync(inputStream) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n throw new Error('Must pass in a stream containing the service account auth settings.');\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('error', reject)\n .on('data', chunk => (s += chunk))\n .on('end', () => {\n try {\n const data = JSON.parse(s);\n this.fromJSON(data);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n });\n });\n }\n /**\n * Creates a JWT credentials instance using an API Key for authentication.\n * @param apiKey The API Key in string form.\n */\n fromAPIKey(apiKey) {\n if (typeof apiKey !== 'string') {\n throw new Error('Must provide an API Key string.');\n }\n this.apiKey = apiKey;\n }\n /**\n * Using the key or keyFile on the JWT client, obtain an object that contains\n * the key and the client email.\n */\n async getCredentials() {\n if (this.key) {\n return { private_key: this.key, client_email: this.email };\n }\n else if (this.keyFile) {\n const gtoken = this.createGToken();\n const creds = await gtoken.getCredentials(this.keyFile);\n return { private_key: creds.privateKey, client_email: creds.clientEmail };\n }\n throw new Error('A key or a keyFile must be provided to getCredentials.');\n }\n}\nexports.JWT = JWT;\n//# sourceMappingURL=jwtclient.js.map","\"use strict\";\n// Copyright 2014 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoginTicket = void 0;\nclass LoginTicket {\n /**\n * Create a simple class to extract user ID from an ID Token\n *\n * @param {string} env Envelope of the jwt\n * @param {TokenPayload} pay Payload of the jwt\n * @constructor\n */\n constructor(env, pay) {\n this.envelope = env;\n this.payload = pay;\n }\n getEnvelope() {\n return this.envelope;\n }\n getPayload() {\n return this.payload;\n }\n /**\n * Create a simple class to extract user ID from an ID Token\n *\n * @return The user ID\n */\n getUserId() {\n const payload = this.getPayload();\n if (payload && payload.sub) {\n return payload.sub;\n }\n return null;\n }\n /**\n * Returns attributes from the login ticket. This can contain\n * various information about the user session.\n *\n * @return The envelope and payload\n */\n getAttributes() {\n return { envelope: this.getEnvelope(), payload: this.getPayload() };\n }\n}\nexports.LoginTicket = LoginTicket;\n//# sourceMappingURL=loginticket.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OAuth2Client = exports.CertificateFormat = exports.CodeChallengeMethod = void 0;\nconst querystring = require(\"querystring\");\nconst stream = require(\"stream\");\nconst formatEcdsa = require(\"ecdsa-sig-formatter\");\nconst crypto_1 = require(\"../crypto/crypto\");\nconst authclient_1 = require(\"./authclient\");\nconst loginticket_1 = require(\"./loginticket\");\nvar CodeChallengeMethod;\n(function (CodeChallengeMethod) {\n CodeChallengeMethod[\"Plain\"] = \"plain\";\n CodeChallengeMethod[\"S256\"] = \"S256\";\n})(CodeChallengeMethod = exports.CodeChallengeMethod || (exports.CodeChallengeMethod = {}));\nvar CertificateFormat;\n(function (CertificateFormat) {\n CertificateFormat[\"PEM\"] = \"PEM\";\n CertificateFormat[\"JWK\"] = \"JWK\";\n})(CertificateFormat = exports.CertificateFormat || (exports.CertificateFormat = {}));\nclass OAuth2Client extends authclient_1.AuthClient {\n constructor(optionsOrClientId, clientSecret, redirectUri) {\n super();\n this.certificateCache = {};\n this.certificateExpiry = null;\n this.certificateCacheFormat = CertificateFormat.PEM;\n this.refreshTokenPromises = new Map();\n const opts = optionsOrClientId && typeof optionsOrClientId === 'object'\n ? optionsOrClientId\n : { clientId: optionsOrClientId, clientSecret, redirectUri };\n this._clientId = opts.clientId;\n this._clientSecret = opts.clientSecret;\n this.redirectUri = opts.redirectUri;\n this.eagerRefreshThresholdMillis =\n opts.eagerRefreshThresholdMillis || 5 * 60 * 1000;\n this.forceRefreshOnFailure = !!opts.forceRefreshOnFailure;\n }\n /**\n * Generates URL for consent page landing.\n * @param opts Options.\n * @return URL to consent page.\n */\n generateAuthUrl(opts = {}) {\n if (opts.code_challenge_method && !opts.code_challenge) {\n throw new Error('If a code_challenge_method is provided, code_challenge must be included.');\n }\n opts.response_type = opts.response_type || 'code';\n opts.client_id = opts.client_id || this._clientId;\n opts.redirect_uri = opts.redirect_uri || this.redirectUri;\n // Allow scopes to be passed either as array or a string\n if (opts.scope instanceof Array) {\n opts.scope = opts.scope.join(' ');\n }\n const rootUrl = OAuth2Client.GOOGLE_OAUTH2_AUTH_BASE_URL_;\n return (rootUrl +\n '?' +\n querystring.stringify(opts));\n }\n generateCodeVerifier() {\n // To make the code compatible with browser SubtleCrypto we need to make\n // this method async.\n throw new Error('generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.');\n }\n /**\n * Convenience method to automatically generate a code_verifier, and its\n * resulting SHA256. If used, this must be paired with a S256\n * code_challenge_method.\n *\n * For a full example see:\n * https://github.com/googleapis/google-auth-library-nodejs/blob/main/samples/oauth2-codeVerifier.js\n */\n async generateCodeVerifierAsync() {\n // base64 encoding uses 6 bits per character, and we want to generate128\n // characters. 6*128/8 = 96.\n const crypto = crypto_1.createCrypto();\n const randomString = crypto.randomBytesBase64(96);\n // The valid characters in the code_verifier are [A-Z]/[a-z]/[0-9]/\n // \"-\"/\".\"/\"_\"/\"~\". Base64 encoded strings are pretty close, so we're just\n // swapping out a few chars.\n const codeVerifier = randomString\n .replace(/\\+/g, '~')\n .replace(/=/g, '_')\n .replace(/\\//g, '-');\n // Generate the base64 encoded SHA256\n const unencodedCodeChallenge = await crypto.sha256DigestBase64(codeVerifier);\n // We need to use base64UrlEncoding instead of standard base64\n const codeChallenge = unencodedCodeChallenge\n .split('=')[0]\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n return { codeVerifier, codeChallenge };\n }\n getToken(codeOrOptions, callback) {\n const options = typeof codeOrOptions === 'string' ? { code: codeOrOptions } : codeOrOptions;\n if (callback) {\n this.getTokenAsync(options).then(r => callback(null, r.tokens, r.res), e => callback(e, null, e.response));\n }\n else {\n return this.getTokenAsync(options);\n }\n }\n async getTokenAsync(options) {\n const url = OAuth2Client.GOOGLE_OAUTH2_TOKEN_URL_;\n const values = {\n code: options.code,\n client_id: options.client_id || this._clientId,\n client_secret: this._clientSecret,\n redirect_uri: options.redirect_uri || this.redirectUri,\n grant_type: 'authorization_code',\n code_verifier: options.codeVerifier,\n };\n const res = await this.transporter.request({\n method: 'POST',\n url,\n data: querystring.stringify(values),\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n });\n const tokens = res.data;\n if (res.data && res.data.expires_in) {\n tokens.expiry_date = new Date().getTime() + res.data.expires_in * 1000;\n delete tokens.expires_in;\n }\n this.emit('tokens', tokens);\n return { tokens, res };\n }\n /**\n * Refreshes the access token.\n * @param refresh_token Existing refresh token.\n * @private\n */\n async refreshToken(refreshToken) {\n if (!refreshToken) {\n return this.refreshTokenNoCache(refreshToken);\n }\n // If a request to refresh using the same token has started,\n // return the same promise.\n if (this.refreshTokenPromises.has(refreshToken)) {\n return this.refreshTokenPromises.get(refreshToken);\n }\n const p = this.refreshTokenNoCache(refreshToken).then(r => {\n this.refreshTokenPromises.delete(refreshToken);\n return r;\n }, e => {\n this.refreshTokenPromises.delete(refreshToken);\n throw e;\n });\n this.refreshTokenPromises.set(refreshToken, p);\n return p;\n }\n async refreshTokenNoCache(refreshToken) {\n if (!refreshToken) {\n throw new Error('No refresh token is set.');\n }\n const url = OAuth2Client.GOOGLE_OAUTH2_TOKEN_URL_;\n const data = {\n refresh_token: refreshToken,\n client_id: this._clientId,\n client_secret: this._clientSecret,\n grant_type: 'refresh_token',\n };\n // request for new token\n const res = await this.transporter.request({\n method: 'POST',\n url,\n data: querystring.stringify(data),\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n });\n const tokens = res.data;\n // TODO: de-duplicate this code from a few spots\n if (res.data && res.data.expires_in) {\n tokens.expiry_date = new Date().getTime() + res.data.expires_in * 1000;\n delete tokens.expires_in;\n }\n this.emit('tokens', tokens);\n return { tokens, res };\n }\n refreshAccessToken(callback) {\n if (callback) {\n this.refreshAccessTokenAsync().then(r => callback(null, r.credentials, r.res), callback);\n }\n else {\n return this.refreshAccessTokenAsync();\n }\n }\n async refreshAccessTokenAsync() {\n const r = await this.refreshToken(this.credentials.refresh_token);\n const tokens = r.tokens;\n tokens.refresh_token = this.credentials.refresh_token;\n this.credentials = tokens;\n return { credentials: this.credentials, res: r.res };\n }\n getAccessToken(callback) {\n if (callback) {\n this.getAccessTokenAsync().then(r => callback(null, r.token, r.res), callback);\n }\n else {\n return this.getAccessTokenAsync();\n }\n }\n async getAccessTokenAsync() {\n const shouldRefresh = !this.credentials.access_token || this.isTokenExpiring();\n if (shouldRefresh) {\n if (!this.credentials.refresh_token) {\n if (this.refreshHandler) {\n const refreshedAccessToken = await this.processAndValidateRefreshHandler();\n if (refreshedAccessToken === null || refreshedAccessToken === void 0 ? void 0 : refreshedAccessToken.access_token) {\n this.setCredentials(refreshedAccessToken);\n return { token: this.credentials.access_token };\n }\n }\n else {\n throw new Error('No refresh token or refresh handler callback is set.');\n }\n }\n const r = await this.refreshAccessTokenAsync();\n if (!r.credentials || (r.credentials && !r.credentials.access_token)) {\n throw new Error('Could not refresh access token.');\n }\n return { token: r.credentials.access_token, res: r.res };\n }\n else {\n return { token: this.credentials.access_token };\n }\n }\n /**\n * The main authentication interface. It takes an optional url which when\n * present is the endpoint being accessed, and returns a Promise which\n * resolves with authorization header fields.\n *\n * In OAuth2Client, the result has the form:\n * { Authorization: 'Bearer ' }\n * @param url The optional url being authorized\n */\n async getRequestHeaders(url) {\n const headers = (await this.getRequestMetadataAsync(url)).headers;\n return headers;\n }\n async getRequestMetadataAsync(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n url) {\n const thisCreds = this.credentials;\n if (!thisCreds.access_token &&\n !thisCreds.refresh_token &&\n !this.apiKey &&\n !this.refreshHandler) {\n throw new Error('No access, refresh token, API key or refresh handler callback is set.');\n }\n if (thisCreds.access_token && !this.isTokenExpiring()) {\n thisCreds.token_type = thisCreds.token_type || 'Bearer';\n const headers = {\n Authorization: thisCreds.token_type + ' ' + thisCreds.access_token,\n };\n return { headers: this.addSharedMetadataHeaders(headers) };\n }\n // If refreshHandler exists, call processAndValidateRefreshHandler().\n if (this.refreshHandler) {\n const refreshedAccessToken = await this.processAndValidateRefreshHandler();\n if (refreshedAccessToken === null || refreshedAccessToken === void 0 ? void 0 : refreshedAccessToken.access_token) {\n this.setCredentials(refreshedAccessToken);\n const headers = {\n Authorization: 'Bearer ' + this.credentials.access_token,\n };\n return { headers: this.addSharedMetadataHeaders(headers) };\n }\n }\n if (this.apiKey) {\n return { headers: { 'X-Goog-Api-Key': this.apiKey } };\n }\n let r = null;\n let tokens = null;\n try {\n r = await this.refreshToken(thisCreds.refresh_token);\n tokens = r.tokens;\n }\n catch (err) {\n const e = err;\n if (e.response &&\n (e.response.status === 403 || e.response.status === 404)) {\n e.message = `Could not refresh access token: ${e.message}`;\n }\n throw e;\n }\n const credentials = this.credentials;\n credentials.token_type = credentials.token_type || 'Bearer';\n tokens.refresh_token = credentials.refresh_token;\n this.credentials = tokens;\n const headers = {\n Authorization: credentials.token_type + ' ' + tokens.access_token,\n };\n return { headers: this.addSharedMetadataHeaders(headers), res: r.res };\n }\n /**\n * Generates an URL to revoke the given token.\n * @param token The existing token to be revoked.\n */\n static getRevokeTokenUrl(token) {\n const parameters = querystring.stringify({ token });\n return `${OAuth2Client.GOOGLE_OAUTH2_REVOKE_URL_}?${parameters}`;\n }\n revokeToken(token, callback) {\n const opts = {\n url: OAuth2Client.getRevokeTokenUrl(token),\n method: 'POST',\n };\n if (callback) {\n this.transporter\n .request(opts)\n .then(r => callback(null, r), callback);\n }\n else {\n return this.transporter.request(opts);\n }\n }\n revokeCredentials(callback) {\n if (callback) {\n this.revokeCredentialsAsync().then(res => callback(null, res), callback);\n }\n else {\n return this.revokeCredentialsAsync();\n }\n }\n async revokeCredentialsAsync() {\n const token = this.credentials.access_token;\n this.credentials = {};\n if (token) {\n return this.revokeToken(token);\n }\n else {\n throw new Error('No access token to revoke.');\n }\n }\n request(opts, callback) {\n if (callback) {\n this.requestAsync(opts).then(r => callback(null, r), e => {\n return callback(e, e.response);\n });\n }\n else {\n return this.requestAsync(opts);\n }\n }\n async requestAsync(opts, retry = false) {\n let r2;\n try {\n const r = await this.getRequestMetadataAsync(opts.url);\n opts.headers = opts.headers || {};\n if (r.headers && r.headers['x-goog-user-project']) {\n opts.headers['x-goog-user-project'] = r.headers['x-goog-user-project'];\n }\n if (r.headers && r.headers.Authorization) {\n opts.headers.Authorization = r.headers.Authorization;\n }\n if (this.apiKey) {\n opts.headers['X-Goog-Api-Key'] = this.apiKey;\n }\n r2 = await this.transporter.request(opts);\n }\n catch (e) {\n const res = e.response;\n if (res) {\n const statusCode = res.status;\n // Retry the request for metadata if the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - An access_token and refresh_token were available, but either no\n // expiry_date was available or the forceRefreshOnFailure flag is set.\n // The absent expiry_date case can happen when developers stash the\n // access_token and refresh_token for later use, but the access_token\n // fails on the first try because it's expired. Some developers may\n // choose to enable forceRefreshOnFailure to mitigate time-related\n // errors.\n // Or the following criteria are true:\n // - We haven't already retried. It only makes sense to retry once.\n // - The response was a 401 or a 403\n // - The request didn't send a readableStream\n // - No refresh_token was available\n // - An access_token and a refreshHandler callback were available, but\n // either no expiry_date was available or the forceRefreshOnFailure\n // flag is set. The access_token fails on the first try because it's\n // expired. Some developers may choose to enable forceRefreshOnFailure\n // to mitigate time-related errors.\n const mayRequireRefresh = this.credentials &&\n this.credentials.access_token &&\n this.credentials.refresh_token &&\n (!this.credentials.expiry_date || this.forceRefreshOnFailure);\n const mayRequireRefreshWithNoRefreshToken = this.credentials &&\n this.credentials.access_token &&\n !this.credentials.refresh_token &&\n (!this.credentials.expiry_date || this.forceRefreshOnFailure) &&\n this.refreshHandler;\n const isReadableStream = res.config.data instanceof stream.Readable;\n const isAuthErr = statusCode === 401 || statusCode === 403;\n if (!retry && isAuthErr && !isReadableStream && mayRequireRefresh) {\n await this.refreshAccessTokenAsync();\n return this.requestAsync(opts, true);\n }\n else if (!retry &&\n isAuthErr &&\n !isReadableStream &&\n mayRequireRefreshWithNoRefreshToken) {\n const refreshedAccessToken = await this.processAndValidateRefreshHandler();\n if (refreshedAccessToken === null || refreshedAccessToken === void 0 ? void 0 : refreshedAccessToken.access_token) {\n this.setCredentials(refreshedAccessToken);\n }\n return this.requestAsync(opts, true);\n }\n }\n throw e;\n }\n return r2;\n }\n verifyIdToken(options, callback) {\n // This function used to accept two arguments instead of an options object.\n // Check the types to help users upgrade with less pain.\n // This check can be removed after a 2.0 release.\n if (callback && typeof callback !== 'function') {\n throw new Error('This method accepts an options object as the first parameter, which includes the idToken, audience, and maxExpiry.');\n }\n if (callback) {\n this.verifyIdTokenAsync(options).then(r => callback(null, r), callback);\n }\n else {\n return this.verifyIdTokenAsync(options);\n }\n }\n async verifyIdTokenAsync(options) {\n if (!options.idToken) {\n throw new Error('The verifyIdToken method requires an ID Token');\n }\n const response = await this.getFederatedSignonCertsAsync();\n const login = await this.verifySignedJwtWithCertsAsync(options.idToken, response.certs, options.audience, OAuth2Client.ISSUERS_, options.maxExpiry);\n return login;\n }\n /**\n * Obtains information about the provisioned access token. Especially useful\n * if you want to check the scopes that were provisioned to a given token.\n *\n * @param accessToken Required. The Access Token for which you want to get\n * user info.\n */\n async getTokenInfo(accessToken) {\n const { data } = await this.transporter.request({\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n Authorization: `Bearer ${accessToken}`,\n },\n url: OAuth2Client.GOOGLE_TOKEN_INFO_URL,\n });\n const info = Object.assign({\n expiry_date: new Date().getTime() + data.expires_in * 1000,\n scopes: data.scope.split(' '),\n }, data);\n delete info.expires_in;\n delete info.scope;\n return info;\n }\n getFederatedSignonCerts(callback) {\n if (callback) {\n this.getFederatedSignonCertsAsync().then(r => callback(null, r.certs, r.res), callback);\n }\n else {\n return this.getFederatedSignonCertsAsync();\n }\n }\n async getFederatedSignonCertsAsync() {\n const nowTime = new Date().getTime();\n const format = crypto_1.hasBrowserCrypto()\n ? CertificateFormat.JWK\n : CertificateFormat.PEM;\n if (this.certificateExpiry &&\n nowTime < this.certificateExpiry.getTime() &&\n this.certificateCacheFormat === format) {\n return { certs: this.certificateCache, format };\n }\n let res;\n let url;\n switch (format) {\n case CertificateFormat.PEM:\n url = OAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_PEM_CERTS_URL_;\n break;\n case CertificateFormat.JWK:\n url = OAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_JWK_CERTS_URL_;\n break;\n default:\n throw new Error(`Unsupported certificate format ${format}`);\n }\n try {\n res = await this.transporter.request({ url });\n }\n catch (e) {\n e.message = `Failed to retrieve verification certificates: ${e.message}`;\n throw e;\n }\n const cacheControl = res ? res.headers['cache-control'] : undefined;\n let cacheAge = -1;\n if (cacheControl) {\n const pattern = new RegExp('max-age=([0-9]*)');\n const regexResult = pattern.exec(cacheControl);\n if (regexResult && regexResult.length === 2) {\n // Cache results with max-age (in seconds)\n cacheAge = Number(regexResult[1]) * 1000; // milliseconds\n }\n }\n let certificates = {};\n switch (format) {\n case CertificateFormat.PEM:\n certificates = res.data;\n break;\n case CertificateFormat.JWK:\n for (const key of res.data.keys) {\n certificates[key.kid] = key;\n }\n break;\n default:\n throw new Error(`Unsupported certificate format ${format}`);\n }\n const now = new Date();\n this.certificateExpiry =\n cacheAge === -1 ? null : new Date(now.getTime() + cacheAge);\n this.certificateCache = certificates;\n this.certificateCacheFormat = format;\n return { certs: certificates, format, res };\n }\n getIapPublicKeys(callback) {\n if (callback) {\n this.getIapPublicKeysAsync().then(r => callback(null, r.pubkeys, r.res), callback);\n }\n else {\n return this.getIapPublicKeysAsync();\n }\n }\n async getIapPublicKeysAsync() {\n let res;\n const url = OAuth2Client.GOOGLE_OAUTH2_IAP_PUBLIC_KEY_URL_;\n try {\n res = await this.transporter.request({ url });\n }\n catch (e) {\n e.message = `Failed to retrieve verification certificates: ${e.message}`;\n throw e;\n }\n return { pubkeys: res.data, res };\n }\n verifySignedJwtWithCerts() {\n // To make the code compatible with browser SubtleCrypto we need to make\n // this method async.\n throw new Error('verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.');\n }\n /**\n * Verify the id token is signed with the correct certificate\n * and is from the correct audience.\n * @param jwt The jwt to verify (The ID Token in this case).\n * @param certs The array of certs to test the jwt against.\n * @param requiredAudience The audience to test the jwt against.\n * @param issuers The allowed issuers of the jwt (Optional).\n * @param maxExpiry The max expiry the certificate can be (Optional).\n * @return Returns a promise resolving to LoginTicket on verification.\n */\n async verifySignedJwtWithCertsAsync(jwt, certs, requiredAudience, issuers, maxExpiry) {\n const crypto = crypto_1.createCrypto();\n if (!maxExpiry) {\n maxExpiry = OAuth2Client.MAX_TOKEN_LIFETIME_SECS_;\n }\n const segments = jwt.split('.');\n if (segments.length !== 3) {\n throw new Error('Wrong number of segments in token: ' + jwt);\n }\n const signed = segments[0] + '.' + segments[1];\n let signature = segments[2];\n let envelope;\n let payload;\n try {\n envelope = JSON.parse(crypto.decodeBase64StringUtf8(segments[0]));\n }\n catch (err) {\n err.message = `Can't parse token envelope: ${segments[0]}': ${err.message}`;\n throw err;\n }\n if (!envelope) {\n throw new Error(\"Can't parse token envelope: \" + segments[0]);\n }\n try {\n payload = JSON.parse(crypto.decodeBase64StringUtf8(segments[1]));\n }\n catch (err) {\n err.message = `Can't parse token payload '${segments[0]}`;\n throw err;\n }\n if (!payload) {\n throw new Error(\"Can't parse token payload: \" + segments[1]);\n }\n if (!Object.prototype.hasOwnProperty.call(certs, envelope.kid)) {\n // If this is not present, then there's no reason to attempt verification\n throw new Error('No pem found for envelope: ' + JSON.stringify(envelope));\n }\n const cert = certs[envelope.kid];\n if (envelope.alg === 'ES256') {\n signature = formatEcdsa.joseToDer(signature, 'ES256').toString('base64');\n }\n const verified = await crypto.verify(cert, signed, signature);\n if (!verified) {\n throw new Error('Invalid token signature: ' + jwt);\n }\n if (!payload.iat) {\n throw new Error('No issue time in token: ' + JSON.stringify(payload));\n }\n if (!payload.exp) {\n throw new Error('No expiration time in token: ' + JSON.stringify(payload));\n }\n const iat = Number(payload.iat);\n if (isNaN(iat))\n throw new Error('iat field using invalid format');\n const exp = Number(payload.exp);\n if (isNaN(exp))\n throw new Error('exp field using invalid format');\n const now = new Date().getTime() / 1000;\n if (exp >= now + maxExpiry) {\n throw new Error('Expiration time too far in future: ' + JSON.stringify(payload));\n }\n const earliest = iat - OAuth2Client.CLOCK_SKEW_SECS_;\n const latest = exp + OAuth2Client.CLOCK_SKEW_SECS_;\n if (now < earliest) {\n throw new Error('Token used too early, ' +\n now +\n ' < ' +\n earliest +\n ': ' +\n JSON.stringify(payload));\n }\n if (now > latest) {\n throw new Error('Token used too late, ' +\n now +\n ' > ' +\n latest +\n ': ' +\n JSON.stringify(payload));\n }\n if (issuers && issuers.indexOf(payload.iss) < 0) {\n throw new Error('Invalid issuer, expected one of [' +\n issuers +\n '], but got ' +\n payload.iss);\n }\n // Check the audience matches if we have one\n if (typeof requiredAudience !== 'undefined' && requiredAudience !== null) {\n const aud = payload.aud;\n let audVerified = false;\n // If the requiredAudience is an array, check if it contains token\n // audience\n if (requiredAudience.constructor === Array) {\n audVerified = requiredAudience.indexOf(aud) > -1;\n }\n else {\n audVerified = aud === requiredAudience;\n }\n if (!audVerified) {\n throw new Error('Wrong recipient, payload audience != requiredAudience');\n }\n }\n return new loginticket_1.LoginTicket(envelope, payload);\n }\n /**\n * Returns a promise that resolves with AccessTokenResponse type if\n * refreshHandler is defined.\n * If not, nothing is returned.\n */\n async processAndValidateRefreshHandler() {\n if (this.refreshHandler) {\n const accessTokenResponse = await this.refreshHandler();\n if (!accessTokenResponse.access_token) {\n throw new Error('No access token is returned by the refreshHandler callback.');\n }\n return accessTokenResponse;\n }\n return;\n }\n /**\n * Returns true if a token is expired or will expire within\n * eagerRefreshThresholdMillismilliseconds.\n * If there is no expiry time, assumes the token is not expired or expiring.\n */\n isTokenExpiring() {\n const expiryDate = this.credentials.expiry_date;\n return expiryDate\n ? expiryDate <= new Date().getTime() + this.eagerRefreshThresholdMillis\n : false;\n }\n}\nexports.OAuth2Client = OAuth2Client;\nOAuth2Client.GOOGLE_TOKEN_INFO_URL = 'https://oauth2.googleapis.com/tokeninfo';\n/**\n * The base URL for auth endpoints.\n */\nOAuth2Client.GOOGLE_OAUTH2_AUTH_BASE_URL_ = 'https://accounts.google.com/o/oauth2/v2/auth';\n/**\n * The base endpoint for token retrieval.\n */\nOAuth2Client.GOOGLE_OAUTH2_TOKEN_URL_ = 'https://oauth2.googleapis.com/token';\n/**\n * The base endpoint to revoke tokens.\n */\nOAuth2Client.GOOGLE_OAUTH2_REVOKE_URL_ = 'https://oauth2.googleapis.com/revoke';\n/**\n * Google Sign on certificates in PEM format.\n */\nOAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_PEM_CERTS_URL_ = 'https://www.googleapis.com/oauth2/v1/certs';\n/**\n * Google Sign on certificates in JWK format.\n */\nOAuth2Client.GOOGLE_OAUTH2_FEDERATED_SIGNON_JWK_CERTS_URL_ = 'https://www.googleapis.com/oauth2/v3/certs';\n/**\n * Google Sign on certificates in JWK format.\n */\nOAuth2Client.GOOGLE_OAUTH2_IAP_PUBLIC_KEY_URL_ = 'https://www.gstatic.com/iap/verify/public_key';\n/**\n * Clock skew - five minutes in seconds\n */\nOAuth2Client.CLOCK_SKEW_SECS_ = 300;\n/**\n * Max Token Lifetime is one day in seconds\n */\nOAuth2Client.MAX_TOKEN_LIFETIME_SECS_ = 86400;\n/**\n * The allowed oauth token issuers.\n */\nOAuth2Client.ISSUERS_ = [\n 'accounts.google.com',\n 'https://accounts.google.com',\n];\n//# sourceMappingURL=oauth2client.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorFromOAuthErrorResponse = exports.OAuthClientAuthHandler = void 0;\nconst querystring = require(\"querystring\");\nconst crypto_1 = require(\"../crypto/crypto\");\n/** List of HTTP methods that accept request bodies. */\nconst METHODS_SUPPORTING_REQUEST_BODY = ['PUT', 'POST', 'PATCH'];\n/**\n * Abstract class for handling client authentication in OAuth-based\n * operations.\n * When request-body client authentication is used, only application/json and\n * application/x-www-form-urlencoded content types for HTTP methods that support\n * request bodies are supported.\n */\nclass OAuthClientAuthHandler {\n /**\n * Instantiates an OAuth client authentication handler.\n * @param clientAuthentication The client auth credentials.\n */\n constructor(clientAuthentication) {\n this.clientAuthentication = clientAuthentication;\n this.crypto = crypto_1.createCrypto();\n }\n /**\n * Applies client authentication on the OAuth request's headers or POST\n * body but does not process the request.\n * @param opts The GaxiosOptions whose headers or data are to be modified\n * depending on the client authentication mechanism to be used.\n * @param bearerToken The optional bearer token to use for authentication.\n * When this is used, no client authentication credentials are needed.\n */\n applyClientAuthenticationOptions(opts, bearerToken) {\n // Inject authenticated header.\n this.injectAuthenticatedHeaders(opts, bearerToken);\n // Inject authenticated request body.\n if (!bearerToken) {\n this.injectAuthenticatedRequestBody(opts);\n }\n }\n /**\n * Applies client authentication on the request's header if either\n * basic authentication or bearer token authentication is selected.\n *\n * @param opts The GaxiosOptions whose headers or data are to be modified\n * depending on the client authentication mechanism to be used.\n * @param bearerToken The optional bearer token to use for authentication.\n * When this is used, no client authentication credentials are needed.\n */\n injectAuthenticatedHeaders(opts, bearerToken) {\n var _a;\n // Bearer token prioritized higher than basic Auth.\n if (bearerToken) {\n opts.headers = opts.headers || {};\n Object.assign(opts.headers, {\n Authorization: `Bearer ${bearerToken}}`,\n });\n }\n else if (((_a = this.clientAuthentication) === null || _a === void 0 ? void 0 : _a.confidentialClientType) === 'basic') {\n opts.headers = opts.headers || {};\n const clientId = this.clientAuthentication.clientId;\n const clientSecret = this.clientAuthentication.clientSecret || '';\n const base64EncodedCreds = this.crypto.encodeBase64StringUtf8(`${clientId}:${clientSecret}`);\n Object.assign(opts.headers, {\n Authorization: `Basic ${base64EncodedCreds}`,\n });\n }\n }\n /**\n * Applies client authentication on the request's body if request-body\n * client authentication is selected.\n *\n * @param opts The GaxiosOptions whose headers or data are to be modified\n * depending on the client authentication mechanism to be used.\n */\n injectAuthenticatedRequestBody(opts) {\n var _a;\n if (((_a = this.clientAuthentication) === null || _a === void 0 ? void 0 : _a.confidentialClientType) === 'request-body') {\n const method = (opts.method || 'GET').toUpperCase();\n // Inject authenticated request body.\n if (METHODS_SUPPORTING_REQUEST_BODY.indexOf(method) !== -1) {\n // Get content-type.\n let contentType;\n const headers = opts.headers || {};\n for (const key in headers) {\n if (key.toLowerCase() === 'content-type' && headers[key]) {\n contentType = headers[key].toLowerCase();\n break;\n }\n }\n if (contentType === 'application/x-www-form-urlencoded') {\n opts.data = opts.data || '';\n const data = querystring.parse(opts.data);\n Object.assign(data, {\n client_id: this.clientAuthentication.clientId,\n client_secret: this.clientAuthentication.clientSecret || '',\n });\n opts.data = querystring.stringify(data);\n }\n else if (contentType === 'application/json') {\n opts.data = opts.data || {};\n Object.assign(opts.data, {\n client_id: this.clientAuthentication.clientId,\n client_secret: this.clientAuthentication.clientSecret || '',\n });\n }\n else {\n throw new Error(`${contentType} content-types are not supported with ` +\n `${this.clientAuthentication.confidentialClientType} ` +\n 'client authentication');\n }\n }\n else {\n throw new Error(`${method} HTTP method does not support ` +\n `${this.clientAuthentication.confidentialClientType} ` +\n 'client authentication');\n }\n }\n }\n}\nexports.OAuthClientAuthHandler = OAuthClientAuthHandler;\n/**\n * Converts an OAuth error response to a native JavaScript Error.\n * @param resp The OAuth error response to convert to a native Error object.\n * @param err The optional original error. If provided, the error properties\n * will be copied to the new error.\n * @return The converted native Error object.\n */\nfunction getErrorFromOAuthErrorResponse(resp, err) {\n // Error response.\n const errorCode = resp.error;\n const errorDescription = resp.error_description;\n const errorUri = resp.error_uri;\n let message = `Error code ${errorCode}`;\n if (typeof errorDescription !== 'undefined') {\n message += `: ${errorDescription}`;\n }\n if (typeof errorUri !== 'undefined') {\n message += ` - ${errorUri}`;\n }\n const newError = new Error(message);\n // Copy properties from original error to newly generated error.\n if (err) {\n const keys = Object.keys(err);\n if (err.stack) {\n // Copy error.stack if available.\n keys.push('stack');\n }\n keys.forEach(key => {\n // Do not overwrite the message field.\n if (key !== 'message') {\n Object.defineProperty(newError, key, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: err[key],\n writable: false,\n enumerable: true,\n });\n }\n });\n }\n return newError;\n}\nexports.getErrorFromOAuthErrorResponse = getErrorFromOAuthErrorResponse;\n//# sourceMappingURL=oauth2common.js.map","\"use strict\";\n// Copyright 2015 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserRefreshClient = void 0;\nconst oauth2client_1 = require(\"./oauth2client\");\nclass UserRefreshClient extends oauth2client_1.OAuth2Client {\n constructor(optionsOrClientId, clientSecret, refreshToken, eagerRefreshThresholdMillis, forceRefreshOnFailure) {\n const opts = optionsOrClientId && typeof optionsOrClientId === 'object'\n ? optionsOrClientId\n : {\n clientId: optionsOrClientId,\n clientSecret,\n refreshToken,\n eagerRefreshThresholdMillis,\n forceRefreshOnFailure,\n };\n super({\n clientId: opts.clientId,\n clientSecret: opts.clientSecret,\n eagerRefreshThresholdMillis: opts.eagerRefreshThresholdMillis,\n forceRefreshOnFailure: opts.forceRefreshOnFailure,\n });\n this._refreshToken = opts.refreshToken;\n this.credentials.refresh_token = opts.refreshToken;\n }\n /**\n * Refreshes the access token.\n * @param refreshToken An ignored refreshToken..\n * @param callback Optional callback.\n */\n async refreshTokenNoCache(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refreshToken) {\n return super.refreshTokenNoCache(this._refreshToken);\n }\n /**\n * Create a UserRefreshClient credentials instance using the given input\n * options.\n * @param json The input object.\n */\n fromJSON(json) {\n if (!json) {\n throw new Error('Must pass in a JSON object containing the user refresh token');\n }\n if (json.type !== 'authorized_user') {\n throw new Error('The incoming JSON object does not have the \"authorized_user\" type');\n }\n if (!json.client_id) {\n throw new Error('The incoming JSON object does not contain a client_id field');\n }\n if (!json.client_secret) {\n throw new Error('The incoming JSON object does not contain a client_secret field');\n }\n if (!json.refresh_token) {\n throw new Error('The incoming JSON object does not contain a refresh_token field');\n }\n this._clientId = json.client_id;\n this._clientSecret = json.client_secret;\n this._refreshToken = json.refresh_token;\n this.credentials.refresh_token = json.refresh_token;\n this.quotaProjectId = json.quota_project_id;\n }\n fromStream(inputStream, callback) {\n if (callback) {\n this.fromStreamAsync(inputStream).then(() => callback(), callback);\n }\n else {\n return this.fromStreamAsync(inputStream);\n }\n }\n async fromStreamAsync(inputStream) {\n return new Promise((resolve, reject) => {\n if (!inputStream) {\n return reject(new Error('Must pass in a stream containing the user refresh token.'));\n }\n let s = '';\n inputStream\n .setEncoding('utf8')\n .on('error', reject)\n .on('data', chunk => (s += chunk))\n .on('end', () => {\n try {\n const data = JSON.parse(s);\n this.fromJSON(data);\n return resolve();\n }\n catch (err) {\n return reject(err);\n }\n });\n });\n }\n}\nexports.UserRefreshClient = UserRefreshClient;\n//# sourceMappingURL=refreshclient.js.map","\"use strict\";\n// Copyright 2021 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StsCredentials = void 0;\nconst querystring = require(\"querystring\");\nconst transporters_1 = require(\"../transporters\");\nconst oauth2common_1 = require(\"./oauth2common\");\n/**\n * Implements the OAuth 2.0 token exchange based on\n * https://tools.ietf.org/html/rfc8693\n */\nclass StsCredentials extends oauth2common_1.OAuthClientAuthHandler {\n /**\n * Initializes an STS credentials instance.\n * @param tokenExchangeEndpoint The token exchange endpoint.\n * @param clientAuthentication The client authentication credentials if\n * available.\n */\n constructor(tokenExchangeEndpoint, clientAuthentication) {\n super(clientAuthentication);\n this.tokenExchangeEndpoint = tokenExchangeEndpoint;\n this.transporter = new transporters_1.DefaultTransporter();\n }\n /**\n * Exchanges the provided token for another type of token based on the\n * rfc8693 spec.\n * @param stsCredentialsOptions The token exchange options used to populate\n * the token exchange request.\n * @param additionalHeaders Optional additional headers to pass along the\n * request.\n * @param options Optional additional GCP-specific non-spec defined options\n * to send with the request.\n * Example: `&options=${encodeUriComponent(JSON.stringified(options))}`\n * @return A promise that resolves with the token exchange response containing\n * the requested token and its expiration time.\n */\n async exchangeToken(stsCredentialsOptions, additionalHeaders, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options) {\n var _a, _b, _c;\n const values = {\n grant_type: stsCredentialsOptions.grantType,\n resource: stsCredentialsOptions.resource,\n audience: stsCredentialsOptions.audience,\n scope: (_a = stsCredentialsOptions.scope) === null || _a === void 0 ? void 0 : _a.join(' '),\n requested_token_type: stsCredentialsOptions.requestedTokenType,\n subject_token: stsCredentialsOptions.subjectToken,\n subject_token_type: stsCredentialsOptions.subjectTokenType,\n actor_token: (_b = stsCredentialsOptions.actingParty) === null || _b === void 0 ? void 0 : _b.actorToken,\n actor_token_type: (_c = stsCredentialsOptions.actingParty) === null || _c === void 0 ? void 0 : _c.actorTokenType,\n // Non-standard GCP-specific options.\n options: options && JSON.stringify(options),\n };\n // Remove undefined fields.\n Object.keys(values).forEach(key => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof values[key] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete values[key];\n }\n });\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n // Inject additional STS headers if available.\n Object.assign(headers, additionalHeaders || {});\n const opts = {\n url: this.tokenExchangeEndpoint,\n method: 'POST',\n headers,\n data: querystring.stringify(values),\n responseType: 'json',\n };\n // Apply OAuth client authentication.\n this.applyClientAuthenticationOptions(opts);\n try {\n const response = await this.transporter.request(opts);\n // Successful response.\n const stsSuccessfulResponse = response.data;\n stsSuccessfulResponse.res = response;\n return stsSuccessfulResponse;\n }\n catch (error) {\n // Translate error to OAuthError.\n if (error.response) {\n throw oauth2common_1.getErrorFromOAuthErrorResponse(error.response.data, \n // Preserve other fields from the original error.\n error);\n }\n // Request could fail before the server responds.\n throw error;\n }\n }\n}\nexports.StsCredentials = StsCredentials;\n//# sourceMappingURL=stscredentials.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* global window */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserCrypto = void 0;\n// This file implements crypto functions we need using in-browser\n// SubtleCrypto interface `window.crypto.subtle`.\nconst base64js = require(\"base64-js\");\n// Not all browsers support `TextEncoder`. The following `require` will\n// provide a fast UTF8-only replacement for those browsers that don't support\n// text encoding natively.\n// eslint-disable-next-line node/no-unsupported-features/node-builtins\nif (typeof process === 'undefined' && typeof TextEncoder === 'undefined') {\n require('fast-text-encoding');\n}\nconst crypto_1 = require(\"../crypto\");\nclass BrowserCrypto {\n constructor() {\n if (typeof window === 'undefined' ||\n window.crypto === undefined ||\n window.crypto.subtle === undefined) {\n throw new Error(\"SubtleCrypto not found. Make sure it's an https:// website.\");\n }\n }\n async sha256DigestBase64(str) {\n // SubtleCrypto digest() method is async, so we must make\n // this method async as well.\n // To calculate SHA256 digest using SubtleCrypto, we first\n // need to convert an input string to an ArrayBuffer:\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const inputBuffer = new TextEncoder().encode(str);\n // Result is ArrayBuffer as well.\n const outputBuffer = await window.crypto.subtle.digest('SHA-256', inputBuffer);\n return base64js.fromByteArray(new Uint8Array(outputBuffer));\n }\n randomBytesBase64(count) {\n const array = new Uint8Array(count);\n window.crypto.getRandomValues(array);\n return base64js.fromByteArray(array);\n }\n static padBase64(base64) {\n // base64js requires padding, so let's add some '='\n while (base64.length % 4 !== 0) {\n base64 += '=';\n }\n return base64;\n }\n async verify(pubkey, data, signature) {\n const algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' },\n };\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const dataArray = new TextEncoder().encode(data);\n const signatureArray = base64js.toByteArray(BrowserCrypto.padBase64(signature));\n const cryptoKey = await window.crypto.subtle.importKey('jwk', pubkey, algo, true, ['verify']);\n // SubtleCrypto's verify method is async so we must make\n // this method async as well.\n const result = await window.crypto.subtle.verify(algo, cryptoKey, signatureArray, dataArray);\n return result;\n }\n async sign(privateKey, data) {\n const algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' },\n };\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const dataArray = new TextEncoder().encode(data);\n const cryptoKey = await window.crypto.subtle.importKey('jwk', privateKey, algo, true, ['sign']);\n // SubtleCrypto's sign method is async so we must make\n // this method async as well.\n const result = await window.crypto.subtle.sign(algo, cryptoKey, dataArray);\n return base64js.fromByteArray(new Uint8Array(result));\n }\n decodeBase64StringUtf8(base64) {\n const uint8array = base64js.toByteArray(BrowserCrypto.padBase64(base64));\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const result = new TextDecoder().decode(uint8array);\n return result;\n }\n encodeBase64StringUtf8(text) {\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const uint8array = new TextEncoder().encode(text);\n const result = base64js.fromByteArray(uint8array);\n return result;\n }\n /**\n * Computes the SHA-256 hash of the provided string.\n * @param str The plain text string to hash.\n * @return A promise that resolves with the SHA-256 hash of the provided\n * string in hexadecimal encoding.\n */\n async sha256DigestHex(str) {\n // SubtleCrypto digest() method is async, so we must make\n // this method async as well.\n // To calculate SHA256 digest using SubtleCrypto, we first\n // need to convert an input string to an ArrayBuffer:\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const inputBuffer = new TextEncoder().encode(str);\n // Result is ArrayBuffer as well.\n const outputBuffer = await window.crypto.subtle.digest('SHA-256', inputBuffer);\n return crypto_1.fromArrayBufferToHex(outputBuffer);\n }\n /**\n * Computes the HMAC hash of a message using the provided crypto key and the\n * SHA-256 algorithm.\n * @param key The secret crypto key in utf-8 or ArrayBuffer format.\n * @param msg The plain text message.\n * @return A promise that resolves with the HMAC-SHA256 hash in ArrayBuffer\n * format.\n */\n async signWithHmacSha256(key, msg) {\n // Convert key, if provided in ArrayBuffer format, to string.\n const rawKey = typeof key === 'string'\n ? key\n : String.fromCharCode(...new Uint16Array(key));\n // eslint-disable-next-line node/no-unsupported-features/node-builtins\n const enc = new TextEncoder();\n const cryptoKey = await window.crypto.subtle.importKey('raw', enc.encode(rawKey), {\n name: 'HMAC',\n hash: {\n name: 'SHA-256',\n },\n }, false, ['sign']);\n return window.crypto.subtle.sign('HMAC', cryptoKey, enc.encode(msg));\n }\n}\nexports.BrowserCrypto = BrowserCrypto;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* global window */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromArrayBufferToHex = exports.hasBrowserCrypto = exports.createCrypto = void 0;\nconst crypto_1 = require(\"./browser/crypto\");\nconst crypto_2 = require(\"./node/crypto\");\nfunction createCrypto() {\n if (hasBrowserCrypto()) {\n return new crypto_1.BrowserCrypto();\n }\n return new crypto_2.NodeCrypto();\n}\nexports.createCrypto = createCrypto;\nfunction hasBrowserCrypto() {\n return (typeof window !== 'undefined' &&\n typeof window.crypto !== 'undefined' &&\n typeof window.crypto.subtle !== 'undefined');\n}\nexports.hasBrowserCrypto = hasBrowserCrypto;\n/**\n * Converts an ArrayBuffer to a hexadecimal string.\n * @param arrayBuffer The ArrayBuffer to convert to hexadecimal string.\n * @return The hexadecimal encoding of the ArrayBuffer.\n */\nfunction fromArrayBufferToHex(arrayBuffer) {\n // Convert buffer to byte array.\n const byteArray = Array.from(new Uint8Array(arrayBuffer));\n // Convert bytes to hex string.\n return byteArray\n .map(byte => {\n return byte.toString(16).padStart(2, '0');\n })\n .join('');\n}\nexports.fromArrayBufferToHex = fromArrayBufferToHex;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeCrypto = void 0;\nconst crypto = require(\"crypto\");\nclass NodeCrypto {\n async sha256DigestBase64(str) {\n return crypto.createHash('sha256').update(str).digest('base64');\n }\n randomBytesBase64(count) {\n return crypto.randomBytes(count).toString('base64');\n }\n async verify(pubkey, data, signature) {\n const verifier = crypto.createVerify('sha256');\n verifier.update(data);\n verifier.end();\n return verifier.verify(pubkey, signature, 'base64');\n }\n async sign(privateKey, data) {\n const signer = crypto.createSign('RSA-SHA256');\n signer.update(data);\n signer.end();\n return signer.sign(privateKey, 'base64');\n }\n decodeBase64StringUtf8(base64) {\n return Buffer.from(base64, 'base64').toString('utf-8');\n }\n encodeBase64StringUtf8(text) {\n return Buffer.from(text, 'utf-8').toString('base64');\n }\n /**\n * Computes the SHA-256 hash of the provided string.\n * @param str The plain text string to hash.\n * @return A promise that resolves with the SHA-256 hash of the provided\n * string in hexadecimal encoding.\n */\n async sha256DigestHex(str) {\n return crypto.createHash('sha256').update(str).digest('hex');\n }\n /**\n * Computes the HMAC hash of a message using the provided crypto key and the\n * SHA-256 algorithm.\n * @param key The secret crypto key in utf-8 or ArrayBuffer format.\n * @param msg The plain text message.\n * @return A promise that resolves with the HMAC-SHA256 hash in ArrayBuffer\n * format.\n */\n async signWithHmacSha256(key, msg) {\n const cryptoKey = typeof key === 'string' ? key : toBuffer(key);\n return toArrayBuffer(crypto.createHmac('sha256', cryptoKey).update(msg).digest());\n }\n}\nexports.NodeCrypto = NodeCrypto;\n/**\n * Converts a Node.js Buffer to an ArrayBuffer.\n * https://stackoverflow.com/questions/8609289/convert-a-binary-nodejs-buffer-to-javascript-arraybuffer\n * @param buffer The Buffer input to covert.\n * @return The ArrayBuffer representation of the input.\n */\nfunction toArrayBuffer(buffer) {\n return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);\n}\n/**\n * Converts an ArrayBuffer to a Node.js Buffer.\n * @param arrayBuffer The ArrayBuffer input to covert.\n * @return The Buffer representation of the input.\n */\nfunction toBuffer(arrayBuffer) {\n return Buffer.from(arrayBuffer);\n}\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GoogleAuth = exports.auth = void 0;\n// Copyright 2017 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nconst googleauth_1 = require(\"./auth/googleauth\");\nObject.defineProperty(exports, \"GoogleAuth\", { enumerable: true, get: function () { return googleauth_1.GoogleAuth; } });\nvar authclient_1 = require(\"./auth/authclient\");\nObject.defineProperty(exports, \"AuthClient\", { enumerable: true, get: function () { return authclient_1.AuthClient; } });\nvar computeclient_1 = require(\"./auth/computeclient\");\nObject.defineProperty(exports, \"Compute\", { enumerable: true, get: function () { return computeclient_1.Compute; } });\nvar envDetect_1 = require(\"./auth/envDetect\");\nObject.defineProperty(exports, \"GCPEnv\", { enumerable: true, get: function () { return envDetect_1.GCPEnv; } });\nvar iam_1 = require(\"./auth/iam\");\nObject.defineProperty(exports, \"IAMAuth\", { enumerable: true, get: function () { return iam_1.IAMAuth; } });\nvar idtokenclient_1 = require(\"./auth/idtokenclient\");\nObject.defineProperty(exports, \"IdTokenClient\", { enumerable: true, get: function () { return idtokenclient_1.IdTokenClient; } });\nvar jwtaccess_1 = require(\"./auth/jwtaccess\");\nObject.defineProperty(exports, \"JWTAccess\", { enumerable: true, get: function () { return jwtaccess_1.JWTAccess; } });\nvar jwtclient_1 = require(\"./auth/jwtclient\");\nObject.defineProperty(exports, \"JWT\", { enumerable: true, get: function () { return jwtclient_1.JWT; } });\nvar impersonated_1 = require(\"./auth/impersonated\");\nObject.defineProperty(exports, \"Impersonated\", { enumerable: true, get: function () { return impersonated_1.Impersonated; } });\nvar oauth2client_1 = require(\"./auth/oauth2client\");\nObject.defineProperty(exports, \"CodeChallengeMethod\", { enumerable: true, get: function () { return oauth2client_1.CodeChallengeMethod; } });\nObject.defineProperty(exports, \"OAuth2Client\", { enumerable: true, get: function () { return oauth2client_1.OAuth2Client; } });\nvar loginticket_1 = require(\"./auth/loginticket\");\nObject.defineProperty(exports, \"LoginTicket\", { enumerable: true, get: function () { return loginticket_1.LoginTicket; } });\nvar refreshclient_1 = require(\"./auth/refreshclient\");\nObject.defineProperty(exports, \"UserRefreshClient\", { enumerable: true, get: function () { return refreshclient_1.UserRefreshClient; } });\nvar awsclient_1 = require(\"./auth/awsclient\");\nObject.defineProperty(exports, \"AwsClient\", { enumerable: true, get: function () { return awsclient_1.AwsClient; } });\nvar identitypoolclient_1 = require(\"./auth/identitypoolclient\");\nObject.defineProperty(exports, \"IdentityPoolClient\", { enumerable: true, get: function () { return identitypoolclient_1.IdentityPoolClient; } });\nvar externalclient_1 = require(\"./auth/externalclient\");\nObject.defineProperty(exports, \"ExternalAccountClient\", { enumerable: true, get: function () { return externalclient_1.ExternalAccountClient; } });\nvar baseexternalclient_1 = require(\"./auth/baseexternalclient\");\nObject.defineProperty(exports, \"BaseExternalAccountClient\", { enumerable: true, get: function () { return baseexternalclient_1.BaseExternalAccountClient; } });\nvar downscopedclient_1 = require(\"./auth/downscopedclient\");\nObject.defineProperty(exports, \"DownscopedClient\", { enumerable: true, get: function () { return downscopedclient_1.DownscopedClient; } });\nvar transporters_1 = require(\"./transporters\");\nObject.defineProperty(exports, \"DefaultTransporter\", { enumerable: true, get: function () { return transporters_1.DefaultTransporter; } });\nconst auth = new googleauth_1.GoogleAuth();\nexports.auth = auth;\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright 2017 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validate = void 0;\n// Accepts an options object passed from the user to the API. In the\n// previous version of the API, it referred to a `Request` options object.\n// Now it refers to an Axiox Request Config object. This is here to help\n// ensure users don't pass invalid options when they upgrade from 0.x to 1.x.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction validate(options) {\n const vpairs = [\n { invalid: 'uri', expected: 'url' },\n { invalid: 'json', expected: 'data' },\n { invalid: 'qs', expected: 'params' },\n ];\n for (const pair of vpairs) {\n if (options[pair.invalid]) {\n const e = `'${pair.invalid}' is not a valid configuration option. Please use '${pair.expected}' instead. This library is using Axios for requests. Please see https://github.com/axios/axios to learn more about the valid request options.`;\n throw new Error(e);\n }\n }\n}\nexports.validate = validate;\n//# sourceMappingURL=options.js.map","\"use strict\";\n// Copyright 2019 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultTransporter = void 0;\nconst gaxios_1 = require(\"gaxios\");\nconst options_1 = require(\"./options\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../../package.json');\nconst PRODUCT_NAME = 'google-api-nodejs-client';\nclass DefaultTransporter {\n /**\n * Configures request options before making a request.\n * @param opts GaxiosOptions options.\n * @return Configured options.\n */\n configure(opts = {}) {\n opts.headers = opts.headers || {};\n if (typeof window === 'undefined') {\n // set transporter user agent if not in browser\n const uaValue = opts.headers['User-Agent'];\n if (!uaValue) {\n opts.headers['User-Agent'] = DefaultTransporter.USER_AGENT;\n }\n else if (!uaValue.includes(`${PRODUCT_NAME}/`)) {\n opts.headers['User-Agent'] = `${uaValue} ${DefaultTransporter.USER_AGENT}`;\n }\n // track google-auth-library-nodejs version:\n const authVersion = `auth/${pkg.version}`;\n if (opts.headers['x-goog-api-client'] &&\n !opts.headers['x-goog-api-client'].includes(authVersion)) {\n opts.headers['x-goog-api-client'] = `${opts.headers['x-goog-api-client']} ${authVersion}`;\n }\n else if (!opts.headers['x-goog-api-client']) {\n const nodeVersion = process.version.replace(/^v/, '');\n opts.headers['x-goog-api-client'] = `gl-node/${nodeVersion} ${authVersion}`;\n }\n }\n return opts;\n }\n request(opts, callback) {\n // ensure the user isn't passing in request-style options\n opts = this.configure(opts);\n try {\n options_1.validate(opts);\n }\n catch (e) {\n if (callback) {\n return callback(e);\n }\n else {\n throw e;\n }\n }\n if (callback) {\n gaxios_1.request(opts).then(r => {\n callback(null, r);\n }, e => {\n callback(this.processError(e));\n });\n }\n else {\n return gaxios_1.request(opts).catch(e => {\n throw this.processError(e);\n });\n }\n }\n /**\n * Changes the error to include details from the body.\n */\n processError(e) {\n const res = e.response;\n const err = e;\n const body = res ? res.data : null;\n if (res && body && body.error && res.status !== 200) {\n if (typeof body.error === 'string') {\n err.message = body.error;\n err.code = res.status.toString();\n }\n else if (Array.isArray(body.error.errors)) {\n err.message = body.error.errors\n .map((err2) => err2.message)\n .join('\\n');\n err.code = body.error.code;\n err.errors = body.error.errors;\n }\n else {\n err.message = body.error.message;\n err.code = body.error.code || res.status;\n }\n }\n else if (res && res.status >= 400) {\n // Consider all 4xx and 5xx responses errors.\n err.message = body;\n err.code = res.status.toString();\n }\n return err;\n }\n}\nexports.DefaultTransporter = DefaultTransporter;\n/**\n * Default user agent.\n */\nDefaultTransporter.USER_AGENT = `${PRODUCT_NAME}/${pkg.version}`;\n//# sourceMappingURL=transporters.js.map","\"use strict\";\n/**\n * Copyright 2018 Google LLC\n *\n * Distributed under MIT license.\n * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPem = void 0;\nconst fs = require(\"fs\");\nconst forge = require(\"node-forge\");\nconst util_1 = require(\"util\");\nconst readFile = util_1.promisify(fs.readFile);\nfunction getPem(filename, callback) {\n if (callback) {\n getPemAsync(filename)\n .then(pem => callback(null, pem))\n .catch(err => callback(err, null));\n }\n else {\n return getPemAsync(filename);\n }\n}\nexports.getPem = getPem;\nfunction getPemAsync(filename) {\n return readFile(filename, { encoding: 'base64' }).then(keyp12 => {\n return convertToPem(keyp12);\n });\n}\n/**\n * Converts a P12 in base64 encoding to a pem.\n * @param p12base64 String containing base64 encoded p12.\n * @returns a string containing the pem.\n */\nfunction convertToPem(p12base64) {\n const p12Der = forge.util.decode64(p12base64);\n const p12Asn1 = forge.asn1.fromDer(p12Der);\n const p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, 'notasecret');\n const bags = p12.getBags({ friendlyName: 'privatekey' });\n if (bags.friendlyName) {\n const privateKey = bags.friendlyName[0].key;\n const pem = forge.pki.privateKeyToPem(privateKey);\n return pem.replace(/\\r\\n/g, '\\n');\n }\n else {\n throw new Error('Unable to get friendly name.');\n }\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\nmodule.exports = clone\n\nvar getPrototypeOf = Object.getPrototypeOf || function (obj) {\n return obj.__proto__\n}\n\nfunction clone (obj) {\n if (obj === null || typeof obj !== 'object')\n return obj\n\n if (obj instanceof Object)\n var copy = { __proto__: getPrototypeOf(obj) }\n else\n var copy = Object.create(null)\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))\n })\n\n return copy\n}\n","var fs = require('fs')\nvar polyfills = require('./polyfills.js')\nvar legacy = require('./legacy-streams.js')\nvar clone = require('./clone.js')\n\nvar util = require('util')\n\n/* istanbul ignore next - node 0.x polyfill */\nvar gracefulQueue\nvar previousSymbol\n\n/* istanbul ignore else - node 0.x polyfill */\nif (typeof Symbol === 'function' && typeof Symbol.for === 'function') {\n gracefulQueue = Symbol.for('graceful-fs.queue')\n // This is used in testing by future versions\n previousSymbol = Symbol.for('graceful-fs.previous')\n} else {\n gracefulQueue = '___graceful-fs.queue'\n previousSymbol = '___graceful-fs.previous'\n}\n\nfunction noop () {}\n\nfunction publishQueue(context, queue) {\n Object.defineProperty(context, gracefulQueue, {\n get: function() {\n return queue\n }\n })\n}\n\nvar debug = noop\nif (util.debuglog)\n debug = util.debuglog('gfs4')\nelse if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || ''))\n debug = function() {\n var m = util.format.apply(util, arguments)\n m = 'GFS4: ' + m.split(/\\n/).join('\\nGFS4: ')\n console.error(m)\n }\n\n// Once time initialization\nif (!fs[gracefulQueue]) {\n // This queue can be shared by multiple loaded instances\n var queue = global[gracefulQueue] || []\n publishQueue(fs, queue)\n\n // Patch fs.close/closeSync to shared queue version, because we need\n // to retry() whenever a close happens *anywhere* in the program.\n // This is essential when multiple graceful-fs instances are\n // in play at the same time.\n fs.close = (function (fs$close) {\n function close (fd, cb) {\n return fs$close.call(fs, fd, function (err) {\n // This function uses the graceful-fs shared queue\n if (!err) {\n resetQueue()\n }\n\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n })\n }\n\n Object.defineProperty(close, previousSymbol, {\n value: fs$close\n })\n return close\n })(fs.close)\n\n fs.closeSync = (function (fs$closeSync) {\n function closeSync (fd) {\n // This function uses the graceful-fs shared queue\n fs$closeSync.apply(fs, arguments)\n resetQueue()\n }\n\n Object.defineProperty(closeSync, previousSymbol, {\n value: fs$closeSync\n })\n return closeSync\n })(fs.closeSync)\n\n if (/\\bgfs4\\b/i.test(process.env.NODE_DEBUG || '')) {\n process.on('exit', function() {\n debug(fs[gracefulQueue])\n require('assert').equal(fs[gracefulQueue].length, 0)\n })\n }\n}\n\nif (!global[gracefulQueue]) {\n publishQueue(global, fs[gracefulQueue]);\n}\n\nmodule.exports = patch(clone(fs))\nif (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {\n module.exports = patch(fs)\n fs.__patched = true;\n}\n\nfunction patch (fs) {\n // Everything that references the open() function needs to be in here\n polyfills(fs)\n fs.gracefulify = patch\n\n fs.createReadStream = createReadStream\n fs.createWriteStream = createWriteStream\n var fs$readFile = fs.readFile\n fs.readFile = readFile\n function readFile (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readFile(path, options, cb)\n\n function go$readFile (path, options, cb, startTime) {\n return fs$readFile(path, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$writeFile = fs.writeFile\n fs.writeFile = writeFile\n function writeFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$writeFile(path, data, options, cb)\n\n function go$writeFile (path, data, options, cb, startTime) {\n return fs$writeFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$appendFile = fs.appendFile\n if (fs$appendFile)\n fs.appendFile = appendFile\n function appendFile (path, data, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$appendFile(path, data, options, cb)\n\n function go$appendFile (path, data, options, cb, startTime) {\n return fs$appendFile(path, data, options, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$copyFile = fs.copyFile\n if (fs$copyFile)\n fs.copyFile = copyFile\n function copyFile (src, dest, flags, cb) {\n if (typeof flags === 'function') {\n cb = flags\n flags = 0\n }\n return go$copyFile(src, dest, flags, cb)\n\n function go$copyFile (src, dest, flags, cb, startTime) {\n return fs$copyFile(src, dest, flags, function (err) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n var fs$readdir = fs.readdir\n fs.readdir = readdir\n function readdir (path, options, cb) {\n if (typeof options === 'function')\n cb = options, options = null\n\n return go$readdir(path, options, cb)\n\n function go$readdir (path, options, cb, startTime) {\n return fs$readdir(path, options, function (err, files) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$readdir, [path, options, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (files && files.sort)\n files.sort()\n\n if (typeof cb === 'function')\n cb.call(this, err, files)\n }\n })\n }\n }\n\n if (process.version.substr(0, 4) === 'v0.8') {\n var legStreams = legacy(fs)\n ReadStream = legStreams.ReadStream\n WriteStream = legStreams.WriteStream\n }\n\n var fs$ReadStream = fs.ReadStream\n if (fs$ReadStream) {\n ReadStream.prototype = Object.create(fs$ReadStream.prototype)\n ReadStream.prototype.open = ReadStream$open\n }\n\n var fs$WriteStream = fs.WriteStream\n if (fs$WriteStream) {\n WriteStream.prototype = Object.create(fs$WriteStream.prototype)\n WriteStream.prototype.open = WriteStream$open\n }\n\n Object.defineProperty(fs, 'ReadStream', {\n get: function () {\n return ReadStream\n },\n set: function (val) {\n ReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n Object.defineProperty(fs, 'WriteStream', {\n get: function () {\n return WriteStream\n },\n set: function (val) {\n WriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n // legacy names\n var FileReadStream = ReadStream\n Object.defineProperty(fs, 'FileReadStream', {\n get: function () {\n return FileReadStream\n },\n set: function (val) {\n FileReadStream = val\n },\n enumerable: true,\n configurable: true\n })\n var FileWriteStream = WriteStream\n Object.defineProperty(fs, 'FileWriteStream', {\n get: function () {\n return FileWriteStream\n },\n set: function (val) {\n FileWriteStream = val\n },\n enumerable: true,\n configurable: true\n })\n\n function ReadStream (path, options) {\n if (this instanceof ReadStream)\n return fs$ReadStream.apply(this, arguments), this\n else\n return ReadStream.apply(Object.create(ReadStream.prototype), arguments)\n }\n\n function ReadStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n if (that.autoClose)\n that.destroy()\n\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n that.read()\n }\n })\n }\n\n function WriteStream (path, options) {\n if (this instanceof WriteStream)\n return fs$WriteStream.apply(this, arguments), this\n else\n return WriteStream.apply(Object.create(WriteStream.prototype), arguments)\n }\n\n function WriteStream$open () {\n var that = this\n open(that.path, that.flags, that.mode, function (err, fd) {\n if (err) {\n that.destroy()\n that.emit('error', err)\n } else {\n that.fd = fd\n that.emit('open', fd)\n }\n })\n }\n\n function createReadStream (path, options) {\n return new fs.ReadStream(path, options)\n }\n\n function createWriteStream (path, options) {\n return new fs.WriteStream(path, options)\n }\n\n var fs$open = fs.open\n fs.open = open\n function open (path, flags, mode, cb) {\n if (typeof mode === 'function')\n cb = mode, mode = null\n\n return go$open(path, flags, mode, cb)\n\n function go$open (path, flags, mode, cb, startTime) {\n return fs$open(path, flags, mode, function (err, fd) {\n if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))\n enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()])\n else {\n if (typeof cb === 'function')\n cb.apply(this, arguments)\n }\n })\n }\n }\n\n return fs\n}\n\nfunction enqueue (elem) {\n debug('ENQUEUE', elem[0].name, elem[1])\n fs[gracefulQueue].push(elem)\n retry()\n}\n\n// keep track of the timeout between retry() calls\nvar retryTimer\n\n// reset the startTime and lastTime to now\n// this resets the start of the 60 second overall timeout as well as the\n// delay between attempts so that we'll retry these jobs sooner\nfunction resetQueue () {\n var now = Date.now()\n for (var i = 0; i < fs[gracefulQueue].length; ++i) {\n // entries that are only a length of 2 are from an older version, don't\n // bother modifying those since they'll be retried anyway.\n if (fs[gracefulQueue][i].length > 2) {\n fs[gracefulQueue][i][3] = now // startTime\n fs[gracefulQueue][i][4] = now // lastTime\n }\n }\n // call retry to make sure we're actively processing the queue\n retry()\n}\n\nfunction retry () {\n // clear the timer and remove it to help prevent unintended concurrency\n clearTimeout(retryTimer)\n retryTimer = undefined\n\n if (fs[gracefulQueue].length === 0)\n return\n\n var elem = fs[gracefulQueue].shift()\n var fn = elem[0]\n var args = elem[1]\n // these items may be unset if they were added by an older graceful-fs\n var err = elem[2]\n var startTime = elem[3]\n var lastTime = elem[4]\n\n // if we don't have a startTime we have no way of knowing if we've waited\n // long enough, so go ahead and retry this item now\n if (startTime === undefined) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args)\n } else if (Date.now() - startTime >= 60000) {\n // it's been more than 60 seconds total, bail now\n debug('TIMEOUT', fn.name, args)\n var cb = args.pop()\n if (typeof cb === 'function')\n cb.call(null, err)\n } else {\n // the amount of time between the last attempt and right now\n var sinceAttempt = Date.now() - lastTime\n // the amount of time between when we first tried, and when we last tried\n // rounded up to at least 1\n var sinceStart = Math.max(lastTime - startTime, 1)\n // backoff. wait longer than the total time we've been retrying, but only\n // up to a maximum of 100ms\n var desiredDelay = Math.min(sinceStart * 1.2, 100)\n // it's been long enough since the last retry, do it again\n if (sinceAttempt >= desiredDelay) {\n debug('RETRY', fn.name, args)\n fn.apply(null, args.concat([startTime]))\n } else {\n // if we can't do this job yet, push it to the end of the queue\n // and let the next iteration check again\n fs[gracefulQueue].push(elem)\n }\n }\n\n // schedule our next run if one isn't already scheduled\n if (retryTimer === undefined) {\n retryTimer = setTimeout(retry, 0)\n }\n}\n","var Stream = require('stream').Stream\n\nmodule.exports = legacy\n\nfunction legacy (fs) {\n return {\n ReadStream: ReadStream,\n WriteStream: WriteStream\n }\n\n function ReadStream (path, options) {\n if (!(this instanceof ReadStream)) return new ReadStream(path, options);\n\n Stream.call(this);\n\n var self = this;\n\n this.path = path;\n this.fd = null;\n this.readable = true;\n this.paused = false;\n\n this.flags = 'r';\n this.mode = 438; /*=0666*/\n this.bufferSize = 64 * 1024;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.encoding) this.setEncoding(this.encoding);\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.end === undefined) {\n this.end = Infinity;\n } else if ('number' !== typeof this.end) {\n throw TypeError('end must be a Number');\n }\n\n if (this.start > this.end) {\n throw new Error('start must be <= end');\n }\n\n this.pos = this.start;\n }\n\n if (this.fd !== null) {\n process.nextTick(function() {\n self._read();\n });\n return;\n }\n\n fs.open(this.path, this.flags, this.mode, function (err, fd) {\n if (err) {\n self.emit('error', err);\n self.readable = false;\n return;\n }\n\n self.fd = fd;\n self.emit('open', fd);\n self._read();\n })\n }\n\n function WriteStream (path, options) {\n if (!(this instanceof WriteStream)) return new WriteStream(path, options);\n\n Stream.call(this);\n\n this.path = path;\n this.fd = null;\n this.writable = true;\n\n this.flags = 'w';\n this.encoding = 'binary';\n this.mode = 438; /*=0666*/\n this.bytesWritten = 0;\n\n options = options || {};\n\n // Mixin options into this\n var keys = Object.keys(options);\n for (var index = 0, length = keys.length; index < length; index++) {\n var key = keys[index];\n this[key] = options[key];\n }\n\n if (this.start !== undefined) {\n if ('number' !== typeof this.start) {\n throw TypeError('start must be a Number');\n }\n if (this.start < 0) {\n throw new Error('start must be >= zero');\n }\n\n this.pos = this.start;\n }\n\n this.busy = false;\n this._queue = [];\n\n if (this.fd === null) {\n this._open = fs.open;\n this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);\n this.flush();\n }\n }\n}\n","var constants = require('constants')\n\nvar origCwd = process.cwd\nvar cwd = null\n\nvar platform = process.env.GRACEFUL_FS_PLATFORM || process.platform\n\nprocess.cwd = function() {\n if (!cwd)\n cwd = origCwd.call(process)\n return cwd\n}\ntry {\n process.cwd()\n} catch (er) {}\n\n// This check is needed until node.js 12 is required\nif (typeof process.chdir === 'function') {\n var chdir = process.chdir\n process.chdir = function (d) {\n cwd = null\n chdir.call(process, d)\n }\n if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)\n}\n\nmodule.exports = patch\n\nfunction patch (fs) {\n // (re-)implement some things that are known busted or missing.\n\n // lchmod, broken prior to 0.6.2\n // back-port the fix here.\n if (constants.hasOwnProperty('O_SYMLINK') &&\n process.version.match(/^v0\\.6\\.[0-2]|^v0\\.5\\./)) {\n patchLchmod(fs)\n }\n\n // lutimes implementation, or no-op\n if (!fs.lutimes) {\n patchLutimes(fs)\n }\n\n // https://github.com/isaacs/node-graceful-fs/issues/4\n // Chown should not fail on einval or eperm if non-root.\n // It should not fail on enosys ever, as this just indicates\n // that a fs doesn't support the intended operation.\n\n fs.chown = chownFix(fs.chown)\n fs.fchown = chownFix(fs.fchown)\n fs.lchown = chownFix(fs.lchown)\n\n fs.chmod = chmodFix(fs.chmod)\n fs.fchmod = chmodFix(fs.fchmod)\n fs.lchmod = chmodFix(fs.lchmod)\n\n fs.chownSync = chownFixSync(fs.chownSync)\n fs.fchownSync = chownFixSync(fs.fchownSync)\n fs.lchownSync = chownFixSync(fs.lchownSync)\n\n fs.chmodSync = chmodFixSync(fs.chmodSync)\n fs.fchmodSync = chmodFixSync(fs.fchmodSync)\n fs.lchmodSync = chmodFixSync(fs.lchmodSync)\n\n fs.stat = statFix(fs.stat)\n fs.fstat = statFix(fs.fstat)\n fs.lstat = statFix(fs.lstat)\n\n fs.statSync = statFixSync(fs.statSync)\n fs.fstatSync = statFixSync(fs.fstatSync)\n fs.lstatSync = statFixSync(fs.lstatSync)\n\n // if lchmod/lchown do not exist, then make them no-ops\n if (!fs.lchmod) {\n fs.lchmod = function (path, mode, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchmodSync = function () {}\n }\n if (!fs.lchown) {\n fs.lchown = function (path, uid, gid, cb) {\n if (cb) process.nextTick(cb)\n }\n fs.lchownSync = function () {}\n }\n\n // on Windows, A/V software can lock the directory, causing this\n // to fail with an EACCES or EPERM if the directory contains newly\n // created files. Try again on failure, for up to 60 seconds.\n\n // Set the timeout this long because some Windows Anti-Virus, such as Parity\n // bit9, may lock files for up to a minute, causing npm package install\n // failures. Also, take care to yield the scheduler. Windows scheduling gives\n // CPU to a busy looping process, which can cause the program causing the lock\n // contention to be starved of CPU by node, so the contention doesn't resolve.\n if (platform === \"win32\") {\n fs.rename = (function (fs$rename) { return function (from, to, cb) {\n var start = Date.now()\n var backoff = 0;\n fs$rename(from, to, function CB (er) {\n if (er\n && (er.code === \"EACCES\" || er.code === \"EPERM\")\n && Date.now() - start < 60000) {\n setTimeout(function() {\n fs.stat(to, function (stater, st) {\n if (stater && stater.code === \"ENOENT\")\n fs$rename(from, to, CB);\n else\n cb(er)\n })\n }, backoff)\n if (backoff < 100)\n backoff += 10;\n return;\n }\n if (cb) cb(er)\n })\n }})(fs.rename)\n }\n\n // if read() returns EAGAIN, then just try it again.\n fs.read = (function (fs$read) {\n function read (fd, buffer, offset, length, position, callback_) {\n var callback\n if (callback_ && typeof callback_ === 'function') {\n var eagCounter = 0\n callback = function (er, _, __) {\n if (er && er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n callback_.apply(this, arguments)\n }\n }\n return fs$read.call(fs, fd, buffer, offset, length, position, callback)\n }\n\n // This ensures `util.promisify` works as it does for native `fs.read`.\n if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)\n return read\n })(fs.read)\n\n fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {\n var eagCounter = 0\n while (true) {\n try {\n return fs$readSync.call(fs, fd, buffer, offset, length, position)\n } catch (er) {\n if (er.code === 'EAGAIN' && eagCounter < 10) {\n eagCounter ++\n continue\n }\n throw er\n }\n }\n }})(fs.readSync)\n\n function patchLchmod (fs) {\n fs.lchmod = function (path, mode, callback) {\n fs.open( path\n , constants.O_WRONLY | constants.O_SYMLINK\n , mode\n , function (err, fd) {\n if (err) {\n if (callback) callback(err)\n return\n }\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n fs.fchmod(fd, mode, function (err) {\n fs.close(fd, function(err2) {\n if (callback) callback(err || err2)\n })\n })\n })\n }\n\n fs.lchmodSync = function (path, mode) {\n var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)\n\n // prefer to return the chmod error, if one occurs,\n // but still try to close, and report closing errors if they occur.\n var threw = true\n var ret\n try {\n ret = fs.fchmodSync(fd, mode)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n }\n\n function patchLutimes (fs) {\n if (constants.hasOwnProperty(\"O_SYMLINK\")) {\n fs.lutimes = function (path, at, mt, cb) {\n fs.open(path, constants.O_SYMLINK, function (er, fd) {\n if (er) {\n if (cb) cb(er)\n return\n }\n fs.futimes(fd, at, mt, function (er) {\n fs.close(fd, function (er2) {\n if (cb) cb(er || er2)\n })\n })\n })\n }\n\n fs.lutimesSync = function (path, at, mt) {\n var fd = fs.openSync(path, constants.O_SYMLINK)\n var ret\n var threw = true\n try {\n ret = fs.futimesSync(fd, at, mt)\n threw = false\n } finally {\n if (threw) {\n try {\n fs.closeSync(fd)\n } catch (er) {}\n } else {\n fs.closeSync(fd)\n }\n }\n return ret\n }\n\n } else {\n fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }\n fs.lutimesSync = function () {}\n }\n }\n\n function chmodFix (orig) {\n if (!orig) return orig\n return function (target, mode, cb) {\n return orig.call(fs, target, mode, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chmodFixSync (orig) {\n if (!orig) return orig\n return function (target, mode) {\n try {\n return orig.call(fs, target, mode)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n\n function chownFix (orig) {\n if (!orig) return orig\n return function (target, uid, gid, cb) {\n return orig.call(fs, target, uid, gid, function (er) {\n if (chownErOk(er)) er = null\n if (cb) cb.apply(this, arguments)\n })\n }\n }\n\n function chownFixSync (orig) {\n if (!orig) return orig\n return function (target, uid, gid) {\n try {\n return orig.call(fs, target, uid, gid)\n } catch (er) {\n if (!chownErOk(er)) throw er\n }\n }\n }\n\n function statFix (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = null\n }\n function callback (er, stats) {\n if (stats) {\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n }\n if (cb) cb.apply(this, arguments)\n }\n return options ? orig.call(fs, target, options, callback)\n : orig.call(fs, target, callback)\n }\n }\n\n function statFixSync (orig) {\n if (!orig) return orig\n // Older versions of Node erroneously returned signed integers for\n // uid + gid.\n return function (target, options) {\n var stats = options ? orig.call(fs, target, options)\n : orig.call(fs, target)\n if (stats.uid < 0) stats.uid += 0x100000000\n if (stats.gid < 0) stats.gid += 0x100000000\n return stats;\n }\n }\n\n // ENOSYS means that the fs doesn't support the op. Just ignore\n // that, because it doesn't matter.\n //\n // if there's no getuid, or if getuid() is something other\n // than 0, and the error is EINVAL or EPERM, then just ignore\n // it.\n //\n // This specific case is a silent failure in cp, install, tar,\n // and most other unix tools that manage permissions.\n //\n // When running as root, or if other types of errors are\n // encountered, then it's strict.\n function chownErOk (er) {\n if (!er)\n return true\n\n if (er.code === \"ENOSYS\")\n return true\n\n var nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (er.code === \"EINVAL\" || er.code === \"EPERM\")\n return true\n }\n\n return false\n }\n}\n","\"use strict\";\n/**\n * Copyright 2018 Google LLC\n *\n * Distributed under MIT license.\n * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GoogleToken = void 0;\nconst fs = require(\"fs\");\nconst gaxios_1 = require(\"gaxios\");\nconst jws = require(\"jws\");\nconst path = require(\"path\");\nconst util_1 = require(\"util\");\nconst readFile = fs.readFile\n ? util_1.promisify(fs.readFile)\n : async () => {\n // if running in the web-browser, fs.readFile may not have been shimmed.\n throw new ErrorWithCode('use key rather than keyFile.', 'MISSING_CREDENTIALS');\n };\nconst GOOGLE_TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token';\nconst GOOGLE_REVOKE_TOKEN_URL = 'https://accounts.google.com/o/oauth2/revoke?token=';\nclass ErrorWithCode extends Error {\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\nlet getPem;\nclass GoogleToken {\n /**\n * Create a GoogleToken.\n *\n * @param options Configuration object.\n */\n constructor(options) {\n this.configure(options);\n }\n get accessToken() {\n return this.rawToken ? this.rawToken.access_token : undefined;\n }\n get idToken() {\n return this.rawToken ? this.rawToken.id_token : undefined;\n }\n get tokenType() {\n return this.rawToken ? this.rawToken.token_type : undefined;\n }\n get refreshToken() {\n return this.rawToken ? this.rawToken.refresh_token : undefined;\n }\n /**\n * Returns whether the token has expired.\n *\n * @return true if the token has expired, false otherwise.\n */\n hasExpired() {\n const now = new Date().getTime();\n if (this.rawToken && this.expiresAt) {\n return now >= this.expiresAt;\n }\n else {\n return true;\n }\n }\n /**\n * Returns whether the token will expire within eagerRefreshThresholdMillis\n *\n * @return true if the token will be expired within eagerRefreshThresholdMillis, false otherwise.\n */\n isTokenExpiring() {\n var _a;\n const now = new Date().getTime();\n const eagerRefreshThresholdMillis = (_a = this.eagerRefreshThresholdMillis) !== null && _a !== void 0 ? _a : 0;\n if (this.rawToken && this.expiresAt) {\n return this.expiresAt <= now + eagerRefreshThresholdMillis;\n }\n else {\n return true;\n }\n }\n getToken(callback, opts = {}) {\n if (typeof callback === 'object') {\n opts = callback;\n callback = undefined;\n }\n opts = Object.assign({\n forceRefresh: false,\n }, opts);\n if (callback) {\n const cb = callback;\n this.getTokenAsync(opts).then(t => cb(null, t), callback);\n return;\n }\n return this.getTokenAsync(opts);\n }\n /**\n * Given a keyFile, extract the key and client email if available\n * @param keyFile Path to a json, pem, or p12 file that contains the key.\n * @returns an object with privateKey and clientEmail properties\n */\n async getCredentials(keyFile) {\n const ext = path.extname(keyFile);\n switch (ext) {\n case '.json': {\n const key = await readFile(keyFile, 'utf8');\n const body = JSON.parse(key);\n const privateKey = body.private_key;\n const clientEmail = body.client_email;\n if (!privateKey || !clientEmail) {\n throw new ErrorWithCode('private_key and client_email are required.', 'MISSING_CREDENTIALS');\n }\n return { privateKey, clientEmail };\n }\n case '.der':\n case '.crt':\n case '.pem': {\n const privateKey = await readFile(keyFile, 'utf8');\n return { privateKey };\n }\n case '.p12':\n case '.pfx': {\n // NOTE: The loading of `google-p12-pem` is deferred for performance\n // reasons. The `node-forge` npm module in `google-p12-pem` adds a fair\n // bit time to overall module loading, and is likely not frequently\n // used. In a future release, p12 support will be entirely removed.\n if (!getPem) {\n getPem = (await Promise.resolve().then(() => require('google-p12-pem'))).getPem;\n }\n const privateKey = await getPem(keyFile);\n return { privateKey };\n }\n default:\n throw new ErrorWithCode('Unknown certificate type. Type is determined based on file extension. ' +\n 'Current supported extensions are *.json, *.pem, and *.p12.', 'UNKNOWN_CERTIFICATE_TYPE');\n }\n }\n async getTokenAsync(opts) {\n if (this.inFlightRequest && !opts.forceRefresh) {\n return this.inFlightRequest;\n }\n try {\n return await (this.inFlightRequest = this.getTokenAsyncInner(opts));\n }\n finally {\n this.inFlightRequest = undefined;\n }\n }\n async getTokenAsyncInner(opts) {\n if (this.isTokenExpiring() === false && opts.forceRefresh === false) {\n return Promise.resolve(this.rawToken);\n }\n if (!this.key && !this.keyFile) {\n throw new Error('No key or keyFile set.');\n }\n if (!this.key && this.keyFile) {\n const creds = await this.getCredentials(this.keyFile);\n this.key = creds.privateKey;\n this.iss = creds.clientEmail || this.iss;\n if (!creds.clientEmail) {\n this.ensureEmail();\n }\n }\n return this.requestToken();\n }\n ensureEmail() {\n if (!this.iss) {\n throw new ErrorWithCode('email is required.', 'MISSING_CREDENTIALS');\n }\n }\n revokeToken(callback) {\n if (callback) {\n this.revokeTokenAsync().then(() => callback(), callback);\n return;\n }\n return this.revokeTokenAsync();\n }\n async revokeTokenAsync() {\n if (!this.accessToken) {\n throw new Error('No token to revoke.');\n }\n const url = GOOGLE_REVOKE_TOKEN_URL + this.accessToken;\n await gaxios_1.request({ url });\n this.configure({\n email: this.iss,\n sub: this.sub,\n key: this.key,\n keyFile: this.keyFile,\n scope: this.scope,\n additionalClaims: this.additionalClaims,\n });\n }\n /**\n * Configure the GoogleToken for re-use.\n * @param {object} options Configuration object.\n */\n configure(options = {}) {\n this.keyFile = options.keyFile;\n this.key = options.key;\n this.rawToken = undefined;\n this.iss = options.email || options.iss;\n this.sub = options.sub;\n this.additionalClaims = options.additionalClaims;\n if (typeof options.scope === 'object') {\n this.scope = options.scope.join(' ');\n }\n else {\n this.scope = options.scope;\n }\n this.eagerRefreshThresholdMillis = options.eagerRefreshThresholdMillis;\n }\n /**\n * Request the token from Google.\n */\n async requestToken() {\n const iat = Math.floor(new Date().getTime() / 1000);\n const additionalClaims = this.additionalClaims || {};\n const payload = Object.assign({\n iss: this.iss,\n scope: this.scope,\n aud: GOOGLE_TOKEN_URL,\n exp: iat + 3600,\n iat,\n sub: this.sub,\n }, additionalClaims);\n const signedJWT = jws.sign({\n header: { alg: 'RS256' },\n payload,\n secret: this.key,\n });\n try {\n const r = await gaxios_1.request({\n method: 'POST',\n url: GOOGLE_TOKEN_URL,\n data: {\n grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',\n assertion: signedJWT,\n },\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n responseType: 'json',\n });\n this.rawToken = r.data;\n this.expiresAt =\n r.data.expires_in === null || r.data.expires_in === undefined\n ? undefined\n : (iat + r.data.expires_in) * 1000;\n return this.rawToken;\n }\n catch (e) {\n this.rawToken = undefined;\n this.tokenExpires = undefined;\n const body = e.response && e.response.data ? e.response.data : {};\n if (body.error) {\n const desc = body.error_description\n ? `: ${body.error_description}`\n : '';\n e.message = `${body.error}${desc}`;\n }\n throw e;\n }\n }\n}\nexports.GoogleToken = GoogleToken;\n//# sourceMappingURL=index.js.map","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","// Original author:\n// https://github.com/ashi009/node-fast-crc32c/blob/5e7f9d63cfdb3de9b6c34577466de3dfd732c25d/impls/js_crc32c.js\n\n'use strict'\n\nvar kCRCTable = new Int32Array([\n 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4,\n 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,\n 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b,\n 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,\n 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b,\n 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,\n 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54,\n 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,\n 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a,\n 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,\n 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5,\n 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,\n 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45,\n 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,\n 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a,\n 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,\n 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48,\n 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,\n 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687,\n 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,\n 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927,\n 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,\n 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8,\n 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,\n 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096,\n 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,\n 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859,\n 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,\n 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9,\n 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,\n 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36,\n 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,\n 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c,\n 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,\n 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043,\n 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,\n 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3,\n 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,\n 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c,\n 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,\n 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652,\n 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,\n 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d,\n 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,\n 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d,\n 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,\n 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2,\n 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,\n 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530,\n 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,\n 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff,\n 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,\n 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f,\n 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,\n 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90,\n 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,\n 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee,\n 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,\n 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321,\n 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,\n 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81,\n 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,\n 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e,\n 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351\n])\n\nmodule.exports = {\n calculate: function (buf, initial) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var crc = (initial | 0) ^ -1\n for (var i = 0; i < buf.length; i++)\n crc = kCRCTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8)\n\n return (crc ^ -1) >>> 0\n }\n}","'use strict'\n\nvar crc\ntry {\n crc = require('fast-crc32c')\n} catch (e) {\n crc = require('./crc32c.js')\n}\n\nvar crypto = require('crypto')\nvar { PassThrough } = require('stream')\n\nmodule.exports = function (cfg) {\n cfg = cfg || {}\n\n var crc32c = cfg.crc32c !== false\n var md5 = cfg.md5 !== false\n\n var hashes = {}\n if (md5) hashes.md5 = crypto.createHash('md5')\n\n var onData = function (chunk, enc, done) {\n if (crc32c) hashes.crc32c = crc.calculate(chunk, hashes.crc32c || 0)\n if (md5) hashes.md5.update(chunk)\n\n done(null, chunk)\n }\n\n var onFlush = function (done) {\n if (crc32c) hashes.crc32c = Buffer.from([hashes.crc32c]).toString('base64')\n if (md5) hashes.md5 = hashes.md5.digest('base64')\n\n done()\n }\n\n var validationStream = new PassThrough({\n transform: onData,\n flush: onFlush\n })\n\n validationStream.test = function (algo, sum) {\n return hashes[algo] === sum\n }\n\n return validationStream\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst net_1 = __importDefault(require(\"net\"));\nconst tls_1 = __importDefault(require(\"tls\"));\nconst url_1 = __importDefault(require(\"url\"));\nconst debug_1 = __importDefault(require(\"debug\"));\nconst once_1 = __importDefault(require(\"@tootallnate/once\"));\nconst agent_base_1 = require(\"agent-base\");\nconst debug = (0, debug_1.default)('http-proxy-agent');\nfunction isHTTPS(protocol) {\n return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false;\n}\n/**\n * The `HttpProxyAgent` implements an HTTP Agent subclass that connects\n * to the specified \"HTTP proxy server\" in order to proxy HTTP requests.\n *\n * @api public\n */\nclass HttpProxyAgent extends agent_base_1.Agent {\n constructor(_opts) {\n let opts;\n if (typeof _opts === 'string') {\n opts = url_1.default.parse(_opts);\n }\n else {\n opts = _opts;\n }\n if (!opts) {\n throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');\n }\n debug('Creating new HttpProxyAgent instance: %o', opts);\n super(opts);\n const proxy = Object.assign({}, opts);\n // If `true`, then connect to the proxy server over TLS.\n // Defaults to `false`.\n this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol);\n // Prefer `hostname` over `host`, and set the `port` if needed.\n proxy.host = proxy.hostname || proxy.host;\n if (typeof proxy.port === 'string') {\n proxy.port = parseInt(proxy.port, 10);\n }\n if (!proxy.port && proxy.host) {\n proxy.port = this.secureProxy ? 443 : 80;\n }\n if (proxy.host && proxy.path) {\n // If both a `host` and `path` are specified then it's most likely\n // the result of a `url.parse()` call... we need to remove the\n // `path` portion so that `net.connect()` doesn't attempt to open\n // that as a Unix socket file.\n delete proxy.path;\n delete proxy.pathname;\n }\n this.proxy = proxy;\n }\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n *\n * @api protected\n */\n callback(req, opts) {\n return __awaiter(this, void 0, void 0, function* () {\n const { proxy, secureProxy } = this;\n const parsed = url_1.default.parse(req.path);\n if (!parsed.protocol) {\n parsed.protocol = 'http:';\n }\n if (!parsed.hostname) {\n parsed.hostname = opts.hostname || opts.host || null;\n }\n if (parsed.port == null && typeof opts.port) {\n parsed.port = String(opts.port);\n }\n if (parsed.port === '80') {\n // if port is 80, then we can remove the port so that the\n // \":80\" portion is not on the produced URL\n parsed.port = '';\n }\n // Change the `http.ClientRequest` instance's \"path\" field\n // to the absolute path of the URL that will be requested.\n req.path = url_1.default.format(parsed);\n // Inject the `Proxy-Authorization` header if necessary.\n if (proxy.auth) {\n req.setHeader('Proxy-Authorization', `Basic ${Buffer.from(proxy.auth).toString('base64')}`);\n }\n // Create a socket connection to the proxy server.\n let socket;\n if (secureProxy) {\n debug('Creating `tls.Socket`: %o', proxy);\n socket = tls_1.default.connect(proxy);\n }\n else {\n debug('Creating `net.Socket`: %o', proxy);\n socket = net_1.default.connect(proxy);\n }\n // At this point, the http ClientRequest's internal `_header` field\n // might have already been set. If this is the case then we'll need\n // to re-generate the string since we just changed the `req.path`.\n if (req._header) {\n let first;\n let endOfHeaders;\n debug('Regenerating stored HTTP header string for request');\n req._header = null;\n req._implicitHeader();\n if (req.output && req.output.length > 0) {\n // Node < 12\n debug('Patching connection write() output buffer with updated header');\n first = req.output[0];\n endOfHeaders = first.indexOf('\\r\\n\\r\\n') + 4;\n req.output[0] = req._header + first.substring(endOfHeaders);\n debug('Output buffer: %o', req.output);\n }\n else if (req.outputData && req.outputData.length > 0) {\n // Node >= 12\n debug('Patching connection write() output buffer with updated header');\n first = req.outputData[0].data;\n endOfHeaders = first.indexOf('\\r\\n\\r\\n') + 4;\n req.outputData[0].data =\n req._header + first.substring(endOfHeaders);\n debug('Output buffer: %o', req.outputData[0].data);\n }\n }\n // Wait for the socket's `connect` event, so that this `callback()`\n // function throws instead of the `http` request machinery. This is\n // important for i.e. `PacProxyAgent` which determines a failed proxy\n // connection via the `callback()` function throwing.\n yield (0, once_1.default)(socket, 'connect');\n return socket;\n });\n }\n}\nexports.default = HttpProxyAgent;\n//# sourceMappingURL=agent.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst agent_1 = __importDefault(require(\"./agent\"));\nfunction createHttpProxyAgent(opts) {\n return new agent_1.default(opts);\n}\n(function (createHttpProxyAgent) {\n createHttpProxyAgent.HttpProxyAgent = agent_1.default;\n createHttpProxyAgent.prototype = agent_1.default.prototype;\n})(createHttpProxyAgent || (createHttpProxyAgent = {}));\nmodule.exports = createHttpProxyAgent;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst net_1 = __importDefault(require(\"net\"));\nconst tls_1 = __importDefault(require(\"tls\"));\nconst url_1 = __importDefault(require(\"url\"));\nconst assert_1 = __importDefault(require(\"assert\"));\nconst debug_1 = __importDefault(require(\"debug\"));\nconst agent_base_1 = require(\"agent-base\");\nconst parse_proxy_response_1 = __importDefault(require(\"./parse-proxy-response\"));\nconst debug = debug_1.default('https-proxy-agent:agent');\n/**\n * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to\n * the specified \"HTTP(s) proxy server\" in order to proxy HTTPS requests.\n *\n * Outgoing HTTP requests are first tunneled through the proxy server using the\n * `CONNECT` HTTP request method to establish a connection to the proxy server,\n * and then the proxy server connects to the destination target and issues the\n * HTTP request from the proxy server.\n *\n * `https:` requests have their socket connection upgraded to TLS once\n * the connection to the proxy server has been established.\n *\n * @api public\n */\nclass HttpsProxyAgent extends agent_base_1.Agent {\n constructor(_opts) {\n let opts;\n if (typeof _opts === 'string') {\n opts = url_1.default.parse(_opts);\n }\n else {\n opts = _opts;\n }\n if (!opts) {\n throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');\n }\n debug('creating new HttpsProxyAgent instance: %o', opts);\n super(opts);\n const proxy = Object.assign({}, opts);\n // If `true`, then connect to the proxy server over TLS.\n // Defaults to `false`.\n this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol);\n // Prefer `hostname` over `host`, and set the `port` if needed.\n proxy.host = proxy.hostname || proxy.host;\n if (typeof proxy.port === 'string') {\n proxy.port = parseInt(proxy.port, 10);\n }\n if (!proxy.port && proxy.host) {\n proxy.port = this.secureProxy ? 443 : 80;\n }\n // ALPN is supported by Node.js >= v5.\n // attempt to negotiate http/1.1 for proxy servers that support http/2\n if (this.secureProxy && !('ALPNProtocols' in proxy)) {\n proxy.ALPNProtocols = ['http 1.1'];\n }\n if (proxy.host && proxy.path) {\n // If both a `host` and `path` are specified then it's most likely\n // the result of a `url.parse()` call... we need to remove the\n // `path` portion so that `net.connect()` doesn't attempt to open\n // that as a Unix socket file.\n delete proxy.path;\n delete proxy.pathname;\n }\n this.proxy = proxy;\n }\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n *\n * @api protected\n */\n callback(req, opts) {\n return __awaiter(this, void 0, void 0, function* () {\n const { proxy, secureProxy } = this;\n // Create a socket connection to the proxy server.\n let socket;\n if (secureProxy) {\n debug('Creating `tls.Socket`: %o', proxy);\n socket = tls_1.default.connect(proxy);\n }\n else {\n debug('Creating `net.Socket`: %o', proxy);\n socket = net_1.default.connect(proxy);\n }\n const headers = Object.assign({}, proxy.headers);\n const hostname = `${opts.host}:${opts.port}`;\n let payload = `CONNECT ${hostname} HTTP/1.1\\r\\n`;\n // Inject the `Proxy-Authorization` header if necessary.\n if (proxy.auth) {\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`;\n }\n // The `Host` header should only include the port\n // number when it is not the default port.\n let { host, port, secureEndpoint } = opts;\n if (!isDefaultPort(port, secureEndpoint)) {\n host += `:${port}`;\n }\n headers.Host = host;\n headers.Connection = 'close';\n for (const name of Object.keys(headers)) {\n payload += `${name}: ${headers[name]}\\r\\n`;\n }\n const proxyResponsePromise = parse_proxy_response_1.default(socket);\n socket.write(`${payload}\\r\\n`);\n const { statusCode, buffered } = yield proxyResponsePromise;\n if (statusCode === 200) {\n req.once('socket', resume);\n if (opts.secureEndpoint) {\n const servername = opts.servername || opts.host;\n if (!servername) {\n throw new Error('Could not determine \"servername\"');\n }\n // The proxy is connecting to a TLS server, so upgrade\n // this socket connection to a TLS connection.\n debug('Upgrading socket connection to TLS');\n return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket,\n servername }));\n }\n return socket;\n }\n // Some other status code that's not 200... need to re-play the HTTP\n // header \"data\" events onto the socket once the HTTP machinery is\n // attached so that the node core `http` can parse and handle the\n // error status code.\n // Close the original socket, and a new \"fake\" socket is returned\n // instead, so that the proxy doesn't get the HTTP request\n // written to it (which may contain `Authorization` headers or other\n // sensitive data).\n //\n // See: https://hackerone.com/reports/541502\n socket.destroy();\n const fakeSocket = new net_1.default.Socket();\n fakeSocket.readable = true;\n // Need to wait for the \"socket\" event to re-play the \"data\" events.\n req.once('socket', (s) => {\n debug('replaying proxy buffer for failed request');\n assert_1.default(s.listenerCount('data') > 0);\n // Replay the \"buffered\" Buffer onto the fake `socket`, since at\n // this point the HTTP module machinery has been hooked up for\n // the user.\n s.push(buffered);\n s.push(null);\n });\n return fakeSocket;\n });\n }\n}\nexports.default = HttpsProxyAgent;\nfunction resume(socket) {\n socket.resume();\n}\nfunction isDefaultPort(port, secure) {\n return Boolean((!secure && port === 80) || (secure && port === 443));\n}\nfunction isHTTPS(protocol) {\n return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false;\n}\nfunction omit(obj, ...keys) {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n//# sourceMappingURL=agent.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nconst agent_1 = __importDefault(require(\"./agent\"));\nfunction createHttpsProxyAgent(opts) {\n return new agent_1.default(opts);\n}\n(function (createHttpsProxyAgent) {\n createHttpsProxyAgent.HttpsProxyAgent = agent_1.default;\n createHttpsProxyAgent.prototype = agent_1.default.prototype;\n})(createHttpsProxyAgent || (createHttpsProxyAgent = {}));\nmodule.exports = createHttpsProxyAgent;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst debug_1 = __importDefault(require(\"debug\"));\nconst debug = debug_1.default('https-proxy-agent:parse-proxy-response');\nfunction parseProxyResponse(socket) {\n return new Promise((resolve, reject) => {\n // we need to buffer any HTTP traffic that happens with the proxy before we get\n // the CONNECT response, so that if the response is anything other than an \"200\"\n // response code, then we can re-play the \"data\" events on the socket once the\n // HTTP parser is hooked up...\n let buffersLength = 0;\n const buffers = [];\n function read() {\n const b = socket.read();\n if (b)\n ondata(b);\n else\n socket.once('readable', read);\n }\n function cleanup() {\n socket.removeListener('end', onend);\n socket.removeListener('error', onerror);\n socket.removeListener('close', onclose);\n socket.removeListener('readable', read);\n }\n function onclose(err) {\n debug('onclose had error %o', err);\n }\n function onend() {\n debug('onend');\n }\n function onerror(err) {\n cleanup();\n debug('onerror %o', err);\n reject(err);\n }\n function ondata(b) {\n buffers.push(b);\n buffersLength += b.length;\n const buffered = Buffer.concat(buffers, buffersLength);\n const endOfHeaders = buffered.indexOf('\\r\\n\\r\\n');\n if (endOfHeaders === -1) {\n // keep buffering\n debug('have not received end of HTTP headers yet...');\n read();\n return;\n }\n const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\\r\\n'));\n const statusCode = +firstLine.split(' ')[1];\n debug('got proxy server response: %o', firstLine);\n resolve({\n statusCode,\n buffered\n });\n }\n socket.on('error', onerror);\n socket.on('close', onclose);\n socket.on('end', onend);\n read();\n });\n}\nexports.default = parseProxyResponse;\n//# sourceMappingURL=parse-proxy-response.js.map","// A simple implementation of make-array\nfunction makeArray (subject) {\n return Array.isArray(subject)\n ? subject\n : [subject]\n}\n\nconst EMPTY = ''\nconst SPACE = ' '\nconst ESCAPE = '\\\\'\nconst REGEX_TEST_BLANK_LINE = /^\\s+$/\nconst REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\\\]|^)\\\\$/\nconst REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/\nconst REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/\nconst REGEX_SPLITALL_CRLF = /\\r?\\n/g\n// /foo,\n// ./foo,\n// ../foo,\n// .\n// ..\nconst REGEX_TEST_INVALID_PATH = /^\\.*\\/|^\\.+$/\n\nconst SLASH = '/'\n\n// Do not use ternary expression here, since \"istanbul ignore next\" is buggy\nlet TMP_KEY_IGNORE = 'node-ignore'\n/* istanbul ignore else */\nif (typeof Symbol !== 'undefined') {\n TMP_KEY_IGNORE = Symbol.for('node-ignore')\n}\nconst KEY_IGNORE = TMP_KEY_IGNORE\n\nconst define = (object, key, value) =>\n Object.defineProperty(object, key, {value})\n\nconst REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g\n\nconst RETURN_FALSE = () => false\n\n// Sanitize the range of a regular expression\n// The cases are complicated, see test cases for details\nconst sanitizeRange = range => range.replace(\n REGEX_REGEXP_RANGE,\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)\n ? match\n // Invalid range (out of order) which is ok for gitignore rules but\n // fatal for JavaScript regular expression, so eliminate it.\n : EMPTY\n)\n\n// See fixtures #59\nconst cleanRangeBackSlash = slashes => {\n const {length} = slashes\n return slashes.slice(0, length - length % 2)\n}\n\n// > If the pattern ends with a slash,\n// > it is removed for the purpose of the following description,\n// > but it would only find a match with a directory.\n// > In other words, foo/ will match a directory foo and paths underneath it,\n// > but will not match a regular file or a symbolic link foo\n// > (this is consistent with the way how pathspec works in general in Git).\n// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'\n// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call\n// you could use option `mark: true` with `glob`\n\n// '`foo/`' should not continue with the '`..`'\nconst REPLACERS = [\n\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\n [\n // (a\\ ) -> (a )\n // (a ) -> (a)\n // (a \\ ) -> (a )\n /\\\\?\\s+$/,\n match => match.indexOf('\\\\') === 0\n ? SPACE\n : EMPTY\n ],\n\n // replace (\\ ) with ' '\n [\n /\\\\\\s/g,\n () => SPACE\n ],\n\n // Escape metacharacters\n // which is written down by users but means special for regular expressions.\n\n // > There are 12 characters with special meanings:\n // > - the backslash \\,\n // > - the caret ^,\n // > - the dollar sign $,\n // > - the period or dot .,\n // > - the vertical bar or pipe symbol |,\n // > - the question mark ?,\n // > - the asterisk or star *,\n // > - the plus sign +,\n // > - the opening parenthesis (,\n // > - the closing parenthesis ),\n // > - and the opening square bracket [,\n // > - the opening curly brace {,\n // > These special characters are often called \"metacharacters\".\n [\n /[\\\\$.|*+(){^]/g,\n match => `\\\\${match}`\n ],\n\n [\n // > a question mark (?) matches a single character\n /(?!\\\\)\\?/g,\n () => '[^/]'\n ],\n\n // leading slash\n [\n\n // > A leading slash matches the beginning of the pathname.\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\n // A leading slash matches the beginning of the pathname\n /^\\//,\n () => '^'\n ],\n\n // replace special metacharacter slash after the leading slash\n [\n /\\//g,\n () => '\\\\/'\n ],\n\n [\n // > A leading \"**\" followed by a slash means match in all directories.\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\n // > the same as pattern \"foo\".\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\n // > under directory \"foo\".\n // Notice that the '*'s have been replaced as '\\\\*'\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\n\n // '**/foo' <-> 'foo'\n () => '^(?:.*\\\\/)?'\n ],\n\n // starting\n [\n // there will be no leading '/'\n // (which has been replaced by section \"leading slash\")\n // If starts with '**', adding a '^' to the regular expression also works\n /^(?=[^^])/,\n function startingReplacer () {\n // If has a slash `/` at the beginning or middle\n return !/\\/(?!$)/.test(this)\n // > Prior to 2.22.1\n // > If the pattern does not contain a slash /,\n // > Git treats it as a shell glob pattern\n // Actually, if there is only a trailing slash,\n // git also treats it as a shell glob pattern\n\n // After 2.22.1 (compatible but clearer)\n // > If there is a separator at the beginning or middle (or both)\n // > of the pattern, then the pattern is relative to the directory\n // > level of the particular .gitignore file itself.\n // > Otherwise the pattern may also match at any level below\n // > the .gitignore level.\n ? '(?:^|\\\\/)'\n\n // > Otherwise, Git treats the pattern as a shell glob suitable for\n // > consumption by fnmatch(3)\n : '^'\n }\n ],\n\n // two globstars\n [\n // Use lookahead assertions so that we could match more than one `'/**'`\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\n\n // Zero, one or several directories\n // should not use '*', or it will be replaced by the next replacer\n\n // Check if it is not the last `'/**'`\n (_, index, str) => index + 6 < str.length\n\n // case: /**/\n // > A slash followed by two consecutive asterisks then a slash matches\n // > zero or more directories.\n // > For example, \"a/**/b\" matches \"a/b\", \"a/x/b\", \"a/x/y/b\" and so on.\n // '/**/'\n ? '(?:\\\\/[^\\\\/]+)*'\n\n // case: /**\n // > A trailing `\"/**\"` matches everything inside.\n\n // #21: everything inside but it should not include the current folder\n : '\\\\/.+'\n ],\n\n // normal intermediate wildcards\n [\n // Never replace escaped '*'\n // ignore rule '\\*' will match the path '*'\n\n // 'abc.*/' -> go\n // 'abc.*' -> skip this rule,\n // coz trailing single wildcard will be handed by [trailing wildcard]\n /(^|[^\\\\]+)(\\\\\\*)+(?=.+)/g,\n\n // '*.js' matches '.js'\n // '*.js' doesn't match 'abc'\n (_, p1, p2) => {\n // 1.\n // > An asterisk \"*\" matches anything except a slash.\n // 2.\n // > Other consecutive asterisks are considered regular asterisks\n // > and will match according to the previous rules.\n const unescaped = p2.replace(/\\\\\\*/g, '[^\\\\/]*')\n return p1 + unescaped\n }\n ],\n\n [\n // unescape, revert step 3 except for back slash\n // For example, if a user escape a '\\\\*',\n // after step 3, the result will be '\\\\\\\\\\\\*'\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\n () => ESCAPE\n ],\n\n [\n // '\\\\\\\\' -> '\\\\'\n /\\\\\\\\/g,\n () => ESCAPE\n ],\n\n [\n // > The range notation, e.g. [a-zA-Z],\n // > can be used to match one of the characters in a range.\n\n // `\\` is escaped by step 3\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE\n // '\\\\[bar]' -> '\\\\\\\\[bar\\\\]'\n ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}`\n : close === ']'\n ? endEscape.length % 2 === 0\n // A normal case, and it is a range notation\n // '[bar]'\n // '[bar\\\\\\\\]'\n ? `[${sanitizeRange(range)}${endEscape}]`\n // Invalid range notaton\n // '[bar\\\\]' -> '[bar\\\\\\\\]'\n : '[]'\n : '[]'\n ],\n\n // ending\n [\n // 'js' will not match 'js.'\n // 'ab' will not match 'abc'\n /(?:[^*])$/,\n\n // WTF!\n // https://git-scm.com/docs/gitignore\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\n // which re-fixes #24, #38\n\n // > If there is a separator at the end of the pattern then the pattern\n // > will only match directories, otherwise the pattern can match both\n // > files and directories.\n\n // 'js*' will not match 'a.js'\n // 'js/' will not match 'a.js'\n // 'js' will match 'a.js' and 'a.js/'\n match => /\\/$/.test(match)\n // foo/ will not match 'foo'\n ? `${match}$`\n // foo matches 'foo' and 'foo/'\n : `${match}(?=$|\\\\/$)`\n ],\n\n // trailing wildcard\n [\n /(\\^|\\\\\\/)?\\\\\\*$/,\n (_, p1) => {\n const prefix = p1\n // '\\^':\n // '/*' does not match EMPTY\n // '/*' does not match everything\n\n // '\\\\\\/':\n // 'abc/*' does not match 'abc/'\n ? `${p1}[^/]+`\n\n // 'a*' matches 'a'\n // 'a*' matches 'aa'\n : '[^/]*'\n\n return `${prefix}(?=$|\\\\/$)`\n }\n ],\n]\n\n// A simple cache, because an ignore rule only has only one certain meaning\nconst regexCache = Object.create(null)\n\n// @param {pattern}\nconst makeRegex = (pattern, ignoreCase) => {\n let source = regexCache[pattern]\n\n if (!source) {\n source = REPLACERS.reduce(\n (prev, current) => prev.replace(current[0], current[1].bind(pattern)),\n pattern\n )\n regexCache[pattern] = source\n }\n\n return ignoreCase\n ? new RegExp(source, 'i')\n : new RegExp(source)\n}\n\nconst isString = subject => typeof subject === 'string'\n\n// > A blank line matches no files, so it can serve as a separator for readability.\nconst checkPattern = pattern => pattern\n && isString(pattern)\n && !REGEX_TEST_BLANK_LINE.test(pattern)\n && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern)\n\n // > A line starting with # serves as a comment.\n && pattern.indexOf('#') !== 0\n\nconst splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF)\n\nclass IgnoreRule {\n constructor (\n origin,\n pattern,\n negative,\n regex\n ) {\n this.origin = origin\n this.pattern = pattern\n this.negative = negative\n this.regex = regex\n }\n}\n\nconst createRule = (pattern, ignoreCase) => {\n const origin = pattern\n let negative = false\n\n // > An optional prefix \"!\" which negates the pattern;\n if (pattern.indexOf('!') === 0) {\n negative = true\n pattern = pattern.substr(1)\n }\n\n pattern = pattern\n // > Put a backslash (\"\\\") in front of the first \"!\" for patterns that\n // > begin with a literal \"!\", for example, `\"\\!important!.txt\"`.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')\n // > Put a backslash (\"\\\") in front of the first hash for patterns that\n // > begin with a hash.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')\n\n const regex = makeRegex(pattern, ignoreCase)\n\n return new IgnoreRule(\n origin,\n pattern,\n negative,\n regex\n )\n}\n\nconst throwError = (message, Ctor) => {\n throw new Ctor(message)\n}\n\nconst checkPath = (path, originalPath, doThrow) => {\n if (!isString(path)) {\n return doThrow(\n `path must be a string, but got \\`${originalPath}\\``,\n TypeError\n )\n }\n\n // We don't know if we should ignore EMPTY, so throw\n if (!path) {\n return doThrow(`path must not be empty`, TypeError)\n }\n\n // Check if it is a relative path\n if (checkPath.isNotRelative(path)) {\n const r = '`path.relative()`d'\n return doThrow(\n `path should be a ${r} string, but got \"${originalPath}\"`,\n RangeError\n )\n }\n\n return true\n}\n\nconst isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)\n\ncheckPath.isNotRelative = isNotRelative\ncheckPath.convert = p => p\n\nclass Ignore {\n constructor ({\n ignorecase = true,\n ignoreCase = ignorecase,\n allowRelativePaths = false\n } = {}) {\n define(this, KEY_IGNORE, true)\n\n this._rules = []\n this._ignoreCase = ignoreCase\n this._allowRelativePaths = allowRelativePaths\n this._initCache()\n }\n\n _initCache () {\n this._ignoreCache = Object.create(null)\n this._testCache = Object.create(null)\n }\n\n _addPattern (pattern) {\n // #32\n if (pattern && pattern[KEY_IGNORE]) {\n this._rules = this._rules.concat(pattern._rules)\n this._added = true\n return\n }\n\n if (checkPattern(pattern)) {\n const rule = createRule(pattern, this._ignoreCase)\n this._added = true\n this._rules.push(rule)\n }\n }\n\n // @param {Array | string | Ignore} pattern\n add (pattern) {\n this._added = false\n\n makeArray(\n isString(pattern)\n ? splitPattern(pattern)\n : pattern\n ).forEach(this._addPattern, this)\n\n // Some rules have just added to the ignore,\n // making the behavior changed.\n if (this._added) {\n this._initCache()\n }\n\n return this\n }\n\n // legacy\n addPattern (pattern) {\n return this.add(pattern)\n }\n\n // | ignored : unignored\n // negative | 0:0 | 0:1 | 1:0 | 1:1\n // -------- | ------- | ------- | ------- | --------\n // 0 | TEST | TEST | SKIP | X\n // 1 | TESTIF | SKIP | TEST | X\n\n // - SKIP: always skip\n // - TEST: always test\n // - TESTIF: only test if checkUnignored\n // - X: that never happen\n\n // @param {boolean} whether should check if the path is unignored,\n // setting `checkUnignored` to `false` could reduce additional\n // path matching.\n\n // @returns {TestResult} true if a file is ignored\n _testOne (path, checkUnignored) {\n let ignored = false\n let unignored = false\n\n this._rules.forEach(rule => {\n const {negative} = rule\n if (\n unignored === negative && ignored !== unignored\n || negative && !ignored && !unignored && !checkUnignored\n ) {\n return\n }\n\n const matched = rule.regex.test(path)\n\n if (matched) {\n ignored = !negative\n unignored = negative\n }\n })\n\n return {\n ignored,\n unignored\n }\n }\n\n // @returns {TestResult}\n _test (originalPath, cache, checkUnignored, slices) {\n const path = originalPath\n // Supports nullable path\n && checkPath.convert(originalPath)\n\n checkPath(\n path,\n originalPath,\n this._allowRelativePaths\n ? RETURN_FALSE\n : throwError\n )\n\n return this._t(path, cache, checkUnignored, slices)\n }\n\n _t (path, cache, checkUnignored, slices) {\n if (path in cache) {\n return cache[path]\n }\n\n if (!slices) {\n // path/to/a.js\n // ['path', 'to', 'a.js']\n slices = path.split(SLASH)\n }\n\n slices.pop()\n\n // If the path has no parent directory, just test it\n if (!slices.length) {\n return cache[path] = this._testOne(path, checkUnignored)\n }\n\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n cache,\n checkUnignored,\n slices\n )\n\n // If the path contains a parent directory, check the parent first\n return cache[path] = parent.ignored\n // > It is not possible to re-include a file if a parent directory of\n // > that file is excluded.\n ? parent\n : this._testOne(path, checkUnignored)\n }\n\n ignores (path) {\n return this._test(path, this._ignoreCache, false).ignored\n }\n\n createFilter () {\n return path => !this.ignores(path)\n }\n\n filter (paths) {\n return makeArray(paths).filter(this.createFilter())\n }\n\n // @returns {TestResult}\n test (path) {\n return this._test(path, this._testCache, true)\n }\n}\n\nconst factory = options => new Ignore(options)\n\nconst isPathValid = path =>\n checkPath(path && checkPath.convert(path), path, RETURN_FALSE)\n\nfactory.isPathValid = isPathValid\n\n// Fixes typescript\nfactory.default = factory\n\nmodule.exports = factory\n\n// Windows\n// --------------------------------------------------------------\n/* istanbul ignore if */\nif (\n // Detect `process` so that it can run in browsers.\n typeof process !== 'undefined'\n && (\n process.env && process.env.IGNORE_TEST_WIN32\n || process.platform === 'win32'\n )\n) {\n /* eslint no-control-regex: \"off\" */\n const makePosix = str => /^\\\\\\\\\\?\\\\/.test(str)\n || /[\"<>|\\u0000-\\u001F]+/u.test(str)\n ? str\n : str.replace(/\\\\/g, '/')\n\n checkPath.convert = makePosix\n\n // 'C:\\\\foo' <- 'C:\\\\foo' has been converted to 'C:/'\n // 'd:\\\\foo'\n const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i\n checkPath.isNotRelative = path =>\n REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path)\n || isNotRelative(path)\n}\n","/**\n * @preserve\n * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n *\n * @author Jens Taylor\n * @see http://github.com/homebrewing/brauhaus-diff\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n */\n(function(){\n var cache;\n\n // Call this function without `new` to use the cached object (good for\n // single-threaded environments), or with `new` to create a new object.\n //\n // @param {string} key A UTF-16 or ASCII string\n // @param {number} seed An optional positive integer\n // @return {object} A MurmurHash3 object for incremental hashing\n function MurmurHash3(key, seed) {\n var m = this instanceof MurmurHash3 ? this : cache;\n m.reset(seed)\n if (typeof key === 'string' && key.length > 0) {\n m.hash(key);\n }\n\n if (m !== this) {\n return m;\n }\n };\n\n // Incrementally add a string to this hash\n //\n // @param {string} key A UTF-16 or ASCII string\n // @return {object} this\n MurmurHash3.prototype.hash = function(key) {\n var h1, k1, i, top, len;\n\n len = key.length;\n this.len += len;\n\n k1 = this.k1;\n i = 0;\n switch (this.rem) {\n case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0;\n case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;\n case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;\n case 3:\n k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;\n k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;\n }\n\n this.rem = (len + this.rem) & 3; // & 3 is same as % 4\n len -= this.rem;\n if (len > 0) {\n h1 = this.h1;\n while (1) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff;\n\n if (i >= len) {\n break;\n }\n\n k1 = ((key.charCodeAt(i++) & 0xffff)) ^\n ((key.charCodeAt(i++) & 0xffff) << 8) ^\n ((key.charCodeAt(i++) & 0xffff) << 16);\n top = key.charCodeAt(i++);\n k1 ^= ((top & 0xff) << 24) ^\n ((top & 0xff00) >> 8);\n }\n\n k1 = 0;\n switch (this.rem) {\n case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;\n case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;\n case 1: k1 ^= (key.charCodeAt(i) & 0xffff);\n }\n\n this.h1 = h1;\n }\n\n this.k1 = k1;\n return this;\n };\n\n // Get the result of this hash\n //\n // @return {number} The 32-bit hash\n MurmurHash3.prototype.result = function() {\n var k1, h1;\n \n k1 = this.k1;\n h1 = this.h1;\n\n if (k1 > 0) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n h1 ^= k1;\n }\n\n h1 ^= this.len;\n\n h1 ^= h1 >>> 16;\n h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff;\n h1 ^= h1 >>> 16;\n\n return h1 >>> 0;\n };\n\n // Reset the hash object for reuse\n //\n // @param {number} seed An optional positive integer\n MurmurHash3.prototype.reset = function(seed) {\n this.h1 = typeof seed === 'number' ? seed : 0;\n this.rem = this.k1 = this.len = 0;\n return this;\n };\n\n // A cached object to use. This can be safely used if you're in a single-\n // threaded environment, otherwise you need to create new hashes to use.\n cache = new MurmurHash3();\n\n if (typeof(module) != 'undefined') {\n module.exports = MurmurHash3;\n } else {\n this.MurmurHash3 = MurmurHash3;\n }\n}());\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * is-extglob \n *\n * Copyright (c) 2014-2016, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function isExtglob(str) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n var match;\n while ((match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str))) {\n if (match[2]) return true;\n str = str.slice(match.index + match[0].length);\n }\n\n return false;\n};\n","/*!\n * is-glob \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nvar isExtglob = require('is-extglob');\nvar chars = { '{': '}', '(': ')', '[': ']'};\nvar strictCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n var pipeIndex = -2;\n var closeSquareIndex = -2;\n var closeCurlyIndex = -2;\n var closeParenIndex = -2;\n var backSlashIndex = -2;\n while (index < str.length) {\n if (str[index] === '*') {\n return true;\n }\n\n if (str[index + 1] === '?' && /[\\].+)]/.test(str[index])) {\n return true;\n }\n\n if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') {\n if (closeSquareIndex < index) {\n closeSquareIndex = str.indexOf(']', index);\n }\n if (closeSquareIndex > index) {\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n }\n }\n\n if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') {\n closeCurlyIndex = str.indexOf('}', index);\n if (closeCurlyIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n return true;\n }\n }\n }\n\n if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') {\n closeParenIndex = str.indexOf(')', index);\n if (closeParenIndex > index) {\n backSlashIndex = str.indexOf('\\\\', index);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n\n if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') {\n if (pipeIndex < index) {\n pipeIndex = str.indexOf('|', index);\n }\n if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') {\n closeParenIndex = str.indexOf(')', pipeIndex);\n if (closeParenIndex > pipeIndex) {\n backSlashIndex = str.indexOf('\\\\', pipeIndex);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nvar relaxedCheck = function(str) {\n if (str[0] === '!') {\n return true;\n }\n var index = 0;\n while (index < str.length) {\n if (/[*?{}()[\\]]/.test(str[index])) {\n return true;\n }\n\n if (str[index] === '\\\\') {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n\n if (str[index] === '!') {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n};\n\nmodule.exports = function isGlob(str, options) {\n if (typeof str !== 'string' || str === '') {\n return false;\n }\n\n if (isExtglob(str)) {\n return true;\n }\n\n var check = strictCheck;\n\n // optionally relax check\n if (options && options.strict === false) {\n check = relaxedCheck;\n }\n\n return check(str);\n};\n","/*!\n * is-number \n *\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(num) {\n if (typeof num === 'number') {\n return num - num === 0;\n }\n if (typeof num === 'string' && num.trim() !== '') {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n};\n","'use strict';\n\nmodule.exports = value => {\n\tconst type = typeof value;\n\treturn value !== null && (type === 'object' || type === 'function');\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","module.exports = isTypedArray\nisTypedArray.strict = isStrictTypedArray\nisTypedArray.loose = isLooseTypedArray\n\nvar toString = Object.prototype.toString\nvar names = {\n '[object Int8Array]': true\n , '[object Int16Array]': true\n , '[object Int32Array]': true\n , '[object Uint8Array]': true\n , '[object Uint8ClampedArray]': true\n , '[object Uint16Array]': true\n , '[object Uint32Array]': true\n , '[object Float32Array]': true\n , '[object Float64Array]': true\n}\n\nfunction isTypedArray(arr) {\n return (\n isStrictTypedArray(arr)\n || isLooseTypedArray(arr)\n )\n}\n\nfunction isStrictTypedArray(arr) {\n return (\n arr instanceof Int8Array\n || arr instanceof Int16Array\n || arr instanceof Int32Array\n || arr instanceof Uint8Array\n || arr instanceof Uint8ClampedArray\n || arr instanceof Uint16Array\n || arr instanceof Uint32Array\n || arr instanceof Float32Array\n || arr instanceof Float64Array\n )\n}\n\nfunction isLooseTypedArray(arr) {\n return names[toString.call(arr)]\n}\n","var json_stringify = require('./lib/stringify.js').stringify;\nvar json_parse = require('./lib/parse.js');\n\nmodule.exports = function(options) {\n return {\n parse: json_parse(options),\n stringify: json_stringify\n }\n};\n//create the default method members with no options applied for backwards compatibility\nmodule.exports.parse = json_parse();\nmodule.exports.stringify = json_stringify;\n","var BigNumber = null;\n\n// regexpxs extracted from\n// (c) BSD-3-Clause\n// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors\n\nconst suspectProtoRx = /(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])/;\nconst suspectConstructorRx = /(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)/;\n\n/*\n json_parse.js\n 2012-06-20\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n This file creates a json_parse function.\n During create you can (optionally) specify some behavioural switches\n\n require('json-bigint')(options)\n\n The optional options parameter holds switches that drive certain\n aspects of the parsing process:\n * options.strict = true will warn about duplicate-key usage in the json.\n The default (strict = false) will silently ignore those and overwrite\n values for keys that are in duplicate use.\n\n The resulting function follows this signature:\n json_parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = json_parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n*/\n\n/*members \"\", \"\\\"\", \"\\/\", \"\\\\\", at, b, call, charAt, f, fromCharCode,\n hasOwnProperty, message, n, name, prototype, push, r, t, text\n*/\n\nvar json_parse = function (options) {\n 'use strict';\n\n // This is a function that can parse a JSON text, producing a JavaScript\n // data structure. It is a simple, recursive descent parser. It does not use\n // eval or regular expressions, so it can be used as a model for implementing\n // a JSON parser in other languages.\n\n // We are defining the function inside of another function to avoid creating\n // global variables.\n\n // Default options one can override by passing options to the parse()\n var _options = {\n strict: false, // not being strict means do not generate syntax errors for \"duplicate key\"\n storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string\n alwaysParseAsBig: false, // toggles whether all numbers should be Big\n useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js\n protoAction: 'error',\n constructorAction: 'error',\n };\n\n // If there are options, then use them to override the default _options\n if (options !== undefined && options !== null) {\n if (options.strict === true) {\n _options.strict = true;\n }\n if (options.storeAsString === true) {\n _options.storeAsString = true;\n }\n _options.alwaysParseAsBig =\n options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;\n _options.useNativeBigInt =\n options.useNativeBigInt === true ? options.useNativeBigInt : false;\n\n if (typeof options.constructorAction !== 'undefined') {\n if (\n options.constructorAction === 'error' ||\n options.constructorAction === 'ignore' ||\n options.constructorAction === 'preserve'\n ) {\n _options.constructorAction = options.constructorAction;\n } else {\n throw new Error(\n `Incorrect value for constructorAction option, must be \"error\", \"ignore\" or undefined but passed ${options.constructorAction}`\n );\n }\n }\n\n if (typeof options.protoAction !== 'undefined') {\n if (\n options.protoAction === 'error' ||\n options.protoAction === 'ignore' ||\n options.protoAction === 'preserve'\n ) {\n _options.protoAction = options.protoAction;\n } else {\n throw new Error(\n `Incorrect value for protoAction option, must be \"error\", \"ignore\" or undefined but passed ${options.protoAction}`\n );\n }\n }\n }\n\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n },\n text,\n error = function (m) {\n // Call error when something is wrong.\n\n throw {\n name: 'SyntaxError',\n message: m,\n at: at,\n text: text,\n };\n },\n next = function (c) {\n // If a c parameter is provided, verify that it matches the current character.\n\n if (c && c !== ch) {\n error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n }\n\n // Get the next character. When there are no more characters,\n // return the empty string.\n\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function () {\n // Parse a number value.\n\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n if (BigNumber == null) BigNumber = require('bignumber.js');\n //if (number > 9007199254740992 || number < -9007199254740992)\n // Bignumber has stricter check: everything with length > 15 digits disallowed\n if (string.length > 15)\n return _options.storeAsString\n ? string\n : _options.useNativeBigInt\n ? BigInt(string)\n : new BigNumber(string);\n else\n return !_options.alwaysParseAsBig\n ? number\n : _options.useNativeBigInt\n ? BigInt(number)\n : new BigNumber(number);\n }\n },\n string = function () {\n // Parse a string value.\n\n var hex,\n i,\n string = '',\n uffff;\n\n // When parsing for string values, we must look for \" and \\ characters.\n\n if (ch === '\"') {\n var startAt = at;\n while (next()) {\n if (ch === '\"') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n return string;\n }\n if (ch === '\\\\') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n startAt = at;\n }\n }\n }\n error('Bad string');\n },\n white = function () {\n // Skip whitespace.\n\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function () {\n // true, false, or null.\n\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error(\"Unexpected '\" + ch + \"'\");\n },\n value, // Place holder for the value function.\n array = function () {\n // Parse an array value.\n\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function () {\n // Parse an object value.\n\n var key,\n object = Object.create(null);\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (\n _options.strict === true &&\n Object.hasOwnProperty.call(object, key)\n ) {\n error('Duplicate key \"' + key + '\"');\n }\n\n if (suspectProtoRx.test(key) === true) {\n if (_options.protoAction === 'error') {\n error('Object contains forbidden prototype property');\n } else if (_options.protoAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else if (suspectConstructorRx.test(key) === true) {\n if (_options.constructorAction === 'error') {\n error('Object contains forbidden constructor property');\n } else if (_options.constructorAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else {\n object[key] = value();\n }\n\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function () {\n // Parse a JSON value. It could be an object, an array, a string, a number,\n // or a word.\n\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the above\n // functions and variables.\n\n return function (source, reviver) {\n var result;\n\n text = source + '';\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n // If there is a reviver function, we recursively walk the new structure,\n // passing each name/value pair to the reviver function for possible\n // transformation, starting with a temporary root object that holds the result\n // in an empty key. If there is not a reviver function, we simply return the\n // result.\n\n return typeof reviver === 'function'\n ? (function walk(holder, key) {\n var k,\n v,\n value = holder[key];\n if (value && typeof value === 'object') {\n Object.keys(value).forEach(function (k) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n });\n }\n return reviver.call(holder, key, value);\n })({ '': result }, '')\n : result;\n };\n};\n\nmodule.exports = json_parse;\n","var BigNumber = require('bignumber.js');\n\n/*\n json2.js\n 2013-05-26\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n See http://www.JSON.org/js.html\n\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n\n\n This file creates a global JSON object containing two methods: stringify\n and parse.\n\n JSON.stringify(value, replacer, space)\n value any JavaScript value, usually an object or array.\n\n replacer an optional parameter that determines how object\n values are stringified for objects. It can be a\n function or an array of strings.\n\n space an optional parameter that specifies the indentation\n of nested structures. If it is omitted, the text will\n be packed without extra whitespace. If it is a number,\n it will specify the number of spaces to indent at each\n level. If it is a string (such as '\\t' or ' '),\n it contains the characters used to indent at each level.\n\n This method produces a JSON text from a JavaScript value.\n\n When an object value is found, if the object contains a toJSON\n method, its toJSON method will be called and the result will be\n stringified. A toJSON method does not serialize: it returns the\n value represented by the name/value pair that should be serialized,\n or undefined if nothing should be serialized. The toJSON method\n will be passed the key associated with the value, and this will be\n bound to the value\n\n For example, this would serialize Dates as ISO strings.\n\n Date.prototype.toJSON = function (key) {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n return this.getUTCFullYear() + '-' +\n f(this.getUTCMonth() + 1) + '-' +\n f(this.getUTCDate()) + 'T' +\n f(this.getUTCHours()) + ':' +\n f(this.getUTCMinutes()) + ':' +\n f(this.getUTCSeconds()) + 'Z';\n };\n\n You can provide an optional replacer method. It will be passed the\n key and value of each member, with this bound to the containing\n object. The value that is returned from your method will be\n serialized. If your method returns undefined, then the member will\n be excluded from the serialization.\n\n If the replacer parameter is an array of strings, then it will be\n used to select the members to be serialized. It filters the results\n such that only members with keys listed in the replacer array are\n stringified.\n\n Values that do not have JSON representations, such as undefined or\n functions, will not be serialized. Such values in objects will be\n dropped; in arrays they will be replaced with null. You can use\n a replacer function to replace those with JSON values.\n JSON.stringify(undefined) returns undefined.\n\n The optional space parameter produces a stringification of the\n value that is filled with line breaks and indentation to make it\n easier to read.\n\n If the space parameter is a non-empty string, then that string will\n be used for indentation. If the space parameter is a number, then\n the indentation will be that many spaces.\n\n Example:\n\n text = JSON.stringify(['e', {pluribus: 'unum'}]);\n // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n text = JSON.stringify([new Date()], function (key, value) {\n return this[key] instanceof Date ?\n 'Date(' + this[key] + ')' : value;\n });\n // text is '[\"Date(---current time---)\"]'\n\n\n JSON.parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = JSON.parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n var d;\n if (typeof value === 'string' &&\n value.slice(0, 5) === 'Date(' &&\n value.slice(-1) === ')') {\n d = new Date(value.slice(5, -1));\n if (d) {\n return d;\n }\n }\n return value;\n });\n\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nvar JSON = module.exports;\n\n(function () {\n 'use strict';\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"' : '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string'\n ? c\n : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i, // The loop counter.\n k, // The member key.\n v, // The member value.\n length,\n mind = gap,\n partial,\n value = holder[key],\n isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case 'string':\n if (isBigNumber) {\n return value;\n } else {\n return quote(value);\n }\n\n case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n case 'bigint':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n if (!value) {\n return 'null';\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? '[]'\n : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n Object.keys(value).forEach(function(k) {\n var v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n });\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? '{}'\n : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== 'function') {\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = '';\n indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === 'string') {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n return str('', {'': value});\n };\n }\n}());\n","var bufferEqual = require('buffer-equal-constant-time');\nvar Buffer = require('safe-buffer').Buffer;\nvar crypto = require('crypto');\nvar formatEcdsa = require('ecdsa-sig-formatter');\nvar util = require('util');\n\nvar MSG_INVALID_ALGORITHM = '\"%s\" is not a valid algorithm.\\n Supported algorithms are:\\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".'\nvar MSG_INVALID_SECRET = 'secret must be a string or buffer';\nvar MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer';\nvar MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object';\n\nvar supportsKeyObjects = typeof crypto.createPublicKey === 'function';\nif (supportsKeyObjects) {\n MSG_INVALID_VERIFIER_KEY += ' or a KeyObject';\n MSG_INVALID_SECRET += 'or a KeyObject';\n}\n\nfunction checkIsPublicKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.type !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.asymmetricKeyType !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n};\n\nfunction checkIsPrivateKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (typeof key === 'object') {\n return;\n }\n\n throw typeError(MSG_INVALID_SIGNER_KEY);\n};\n\nfunction checkIsSecretKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return key;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (key.type !== 'secret') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_SECRET);\n }\n}\n\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n\n var padding = 4 - base64url.length % 4;\n if (padding !== 4) {\n for (var i = 0; i < padding; ++i) {\n base64url += '=';\n }\n }\n\n return base64url\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n}\n\nfunction typeError(template) {\n var args = [].slice.call(arguments, 1);\n var errMsg = util.format.bind(util, template).apply(null, args);\n return new TypeError(errMsg);\n}\n\nfunction bufferOrString(obj) {\n return Buffer.isBuffer(obj) || typeof obj === 'string';\n}\n\nfunction normalizeInput(thing) {\n if (!bufferOrString(thing))\n thing = JSON.stringify(thing);\n return thing;\n}\n\nfunction createHmacSigner(bits) {\n return function sign(thing, secret) {\n checkIsSecretKey(secret);\n thing = normalizeInput(thing);\n var hmac = crypto.createHmac('sha' + bits, secret);\n var sig = (hmac.update(thing), hmac.digest('base64'))\n return fromBase64(sig);\n }\n}\n\nfunction createHmacVerifier(bits) {\n return function verify(thing, signature, secret) {\n var computedSig = createHmacSigner(bits)(thing, secret);\n return bufferEqual(Buffer.from(signature), Buffer.from(computedSig));\n }\n}\n\nfunction createKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n // Even though we are specifying \"RSA\" here, this works with ECDSA\n // keys as well.\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign(privateKey, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify(publicKey, signature, 'base64');\n }\n}\n\nfunction createPSSKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign({\n key: privateKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createPSSKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify({\n key: publicKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, signature, 'base64');\n }\n}\n\nfunction createECDSASigner(bits) {\n var inner = createKeySigner(bits);\n return function sign() {\n var signature = inner.apply(null, arguments);\n signature = formatEcdsa.derToJose(signature, 'ES' + bits);\n return signature;\n };\n}\n\nfunction createECDSAVerifer(bits) {\n var inner = createKeyVerifier(bits);\n return function verify(thing, signature, publicKey) {\n signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64');\n var result = inner(thing, signature, publicKey);\n return result;\n };\n}\n\nfunction createNoneSigner() {\n return function sign() {\n return '';\n }\n}\n\nfunction createNoneVerifier() {\n return function verify(thing, signature) {\n return signature === '';\n }\n}\n\nmodule.exports = function jwa(algorithm) {\n var signerFactories = {\n hs: createHmacSigner,\n rs: createKeySigner,\n ps: createPSSKeySigner,\n es: createECDSASigner,\n none: createNoneSigner,\n }\n var verifierFactories = {\n hs: createHmacVerifier,\n rs: createKeyVerifier,\n ps: createPSSKeyVerifier,\n es: createECDSAVerifer,\n none: createNoneVerifier,\n }\n var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);\n if (!match)\n throw typeError(MSG_INVALID_ALGORITHM, algorithm);\n var algo = (match[1] || match[3]).toLowerCase();\n var bits = match[2];\n\n return {\n sign: signerFactories[algo](bits),\n verify: verifierFactories[algo](bits),\n }\n};\n","/*global exports*/\nvar SignStream = require('./lib/sign-stream');\nvar VerifyStream = require('./lib/verify-stream');\n\nvar ALGORITHMS = [\n 'HS256', 'HS384', 'HS512',\n 'RS256', 'RS384', 'RS512',\n 'PS256', 'PS384', 'PS512',\n 'ES256', 'ES384', 'ES512'\n];\n\nexports.ALGORITHMS = ALGORITHMS;\nexports.sign = SignStream.sign;\nexports.verify = VerifyStream.verify;\nexports.decode = VerifyStream.decode;\nexports.isValid = VerifyStream.isValid;\nexports.createSign = function createSign(opts) {\n return new SignStream(opts);\n};\nexports.createVerify = function createVerify(opts) {\n return new VerifyStream(opts);\n};\n","/*global module, process*/\nvar Buffer = require('safe-buffer').Buffer;\nvar Stream = require('stream');\nvar util = require('util');\n\nfunction DataStream(data) {\n this.buffer = null;\n this.writable = true;\n this.readable = true;\n\n // No input\n if (!data) {\n this.buffer = Buffer.alloc(0);\n return this;\n }\n\n // Stream\n if (typeof data.pipe === 'function') {\n this.buffer = Buffer.alloc(0);\n data.pipe(this);\n return this;\n }\n\n // Buffer or String\n // or Object (assumedly a passworded key)\n if (data.length || typeof data === 'object') {\n this.buffer = data;\n this.writable = false;\n process.nextTick(function () {\n this.emit('end', data);\n this.readable = false;\n this.emit('close');\n }.bind(this));\n return this;\n }\n\n throw new TypeError('Unexpected data type ('+ typeof data + ')');\n}\nutil.inherits(DataStream, Stream);\n\nDataStream.prototype.write = function write(data) {\n this.buffer = Buffer.concat([this.buffer, Buffer.from(data)]);\n this.emit('data', data);\n};\n\nDataStream.prototype.end = function end(data) {\n if (data)\n this.write(data);\n this.emit('end', data);\n this.emit('close');\n this.writable = false;\n this.readable = false;\n};\n\nmodule.exports = DataStream;\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\n\nfunction base64url(string, encoding) {\n return Buffer\n .from(string, encoding)\n .toString('base64')\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction jwsSecuredInput(header, payload, encoding) {\n encoding = encoding || 'utf8';\n var encodedHeader = base64url(toString(header), 'binary');\n var encodedPayload = base64url(toString(payload), encoding);\n return util.format('%s.%s', encodedHeader, encodedPayload);\n}\n\nfunction jwsSign(opts) {\n var header = opts.header;\n var payload = opts.payload;\n var secretOrKey = opts.secret || opts.privateKey;\n var encoding = opts.encoding;\n var algo = jwa(header.alg);\n var securedInput = jwsSecuredInput(header, payload, encoding);\n var signature = algo.sign(securedInput, secretOrKey);\n return util.format('%s.%s', securedInput, signature);\n}\n\nfunction SignStream(opts) {\n var secret = opts.secret||opts.privateKey||opts.key;\n var secretStream = new DataStream(secret);\n this.readable = true;\n this.header = opts.header;\n this.encoding = opts.encoding;\n this.secret = this.privateKey = this.key = secretStream;\n this.payload = new DataStream(opts.payload);\n this.secret.once('close', function () {\n if (!this.payload.writable && this.readable)\n this.sign();\n }.bind(this));\n\n this.payload.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.sign();\n }.bind(this));\n}\nutil.inherits(SignStream, Stream);\n\nSignStream.prototype.sign = function sign() {\n try {\n var signature = jwsSign({\n header: this.header,\n payload: this.payload.buffer,\n secret: this.secret.buffer,\n encoding: this.encoding\n });\n this.emit('done', signature);\n this.emit('data', signature);\n this.emit('end');\n this.readable = false;\n return signature;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nSignStream.sign = jwsSign;\n\nmodule.exports = SignStream;\n","/*global module*/\nvar Buffer = require('buffer').Buffer;\n\nmodule.exports = function toString(obj) {\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number' || Buffer.isBuffer(obj))\n return obj.toString();\n return JSON.stringify(obj);\n};\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\nvar JWS_REGEX = /^[a-zA-Z0-9\\-_]+?\\.[a-zA-Z0-9\\-_]+?\\.([a-zA-Z0-9\\-_]+)?$/;\n\nfunction isObject(thing) {\n return Object.prototype.toString.call(thing) === '[object Object]';\n}\n\nfunction safeJsonParse(thing) {\n if (isObject(thing))\n return thing;\n try { return JSON.parse(thing); }\n catch (e) { return undefined; }\n}\n\nfunction headerFromJWS(jwsSig) {\n var encodedHeader = jwsSig.split('.', 1)[0];\n return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary'));\n}\n\nfunction securedInputFromJWS(jwsSig) {\n return jwsSig.split('.', 2).join('.');\n}\n\nfunction signatureFromJWS(jwsSig) {\n return jwsSig.split('.')[2];\n}\n\nfunction payloadFromJWS(jwsSig, encoding) {\n encoding = encoding || 'utf8';\n var payload = jwsSig.split('.')[1];\n return Buffer.from(payload, 'base64').toString(encoding);\n}\n\nfunction isValidJws(string) {\n return JWS_REGEX.test(string) && !!headerFromJWS(string);\n}\n\nfunction jwsVerify(jwsSig, algorithm, secretOrKey) {\n if (!algorithm) {\n var err = new Error(\"Missing algorithm parameter for jws.verify\");\n err.code = \"MISSING_ALGORITHM\";\n throw err;\n }\n jwsSig = toString(jwsSig);\n var signature = signatureFromJWS(jwsSig);\n var securedInput = securedInputFromJWS(jwsSig);\n var algo = jwa(algorithm);\n return algo.verify(securedInput, signature, secretOrKey);\n}\n\nfunction jwsDecode(jwsSig, opts) {\n opts = opts || {};\n jwsSig = toString(jwsSig);\n\n if (!isValidJws(jwsSig))\n return null;\n\n var header = headerFromJWS(jwsSig);\n\n if (!header)\n return null;\n\n var payload = payloadFromJWS(jwsSig);\n if (header.typ === 'JWT' || opts.json)\n payload = JSON.parse(payload, opts.encoding);\n\n return {\n header: header,\n payload: payload,\n signature: signatureFromJWS(jwsSig)\n };\n}\n\nfunction VerifyStream(opts) {\n opts = opts || {};\n var secretOrKey = opts.secret||opts.publicKey||opts.key;\n var secretStream = new DataStream(secretOrKey);\n this.readable = true;\n this.algorithm = opts.algorithm;\n this.encoding = opts.encoding;\n this.secret = this.publicKey = this.key = secretStream;\n this.signature = new DataStream(opts.signature);\n this.secret.once('close', function () {\n if (!this.signature.writable && this.readable)\n this.verify();\n }.bind(this));\n\n this.signature.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.verify();\n }.bind(this));\n}\nutil.inherits(VerifyStream, Stream);\nVerifyStream.prototype.verify = function verify() {\n try {\n var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);\n var obj = jwsDecode(this.signature.buffer, this.encoding);\n this.emit('done', valid, obj);\n this.emit('data', valid);\n this.emit('end');\n this.readable = false;\n return valid;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nVerifyStream.decode = jwsDecode;\nVerifyStream.isValid = isValidJws;\nVerifyStream.verify = jwsVerify;\n\nmodule.exports = VerifyStream;\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","'use strict';\nconst fs = require('fs');\nconst path = require('path');\nconst {promisify} = require('util');\nconst semver = require('semver');\n\nconst useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0');\n\n// https://github.com/nodejs/node/issues/8987\n// https://github.com/libuv/libuv/pull/1088\nconst checkPath = pth => {\n\tif (process.platform === 'win32') {\n\t\tconst pathHasInvalidWinCharacters = /[<>:\"|?*]/.test(pth.replace(path.parse(pth).root, ''));\n\n\t\tif (pathHasInvalidWinCharacters) {\n\t\t\tconst error = new Error(`Path contains invalid characters: ${pth}`);\n\t\t\terror.code = 'EINVAL';\n\t\t\tthrow error;\n\t\t}\n\t}\n};\n\nconst processOptions = options => {\n\t// https://github.com/sindresorhus/make-dir/issues/18\n\tconst defaults = {\n\t\tmode: 0o777,\n\t\tfs\n\t};\n\n\treturn {\n\t\t...defaults,\n\t\t...options\n\t};\n};\n\nconst permissionError = pth => {\n\t// This replicates the exception of `fs.mkdir` with native the\n\t// `recusive` option when run on an invalid drive under Windows.\n\tconst error = new Error(`operation not permitted, mkdir '${pth}'`);\n\terror.code = 'EPERM';\n\terror.errno = -4048;\n\terror.path = pth;\n\terror.syscall = 'mkdir';\n\treturn error;\n};\n\nconst makeDir = async (input, options) => {\n\tcheckPath(input);\n\toptions = processOptions(options);\n\n\tconst mkdir = promisify(options.fs.mkdir);\n\tconst stat = promisify(options.fs.stat);\n\n\tif (useNativeRecursiveOption && options.fs.mkdir === fs.mkdir) {\n\t\tconst pth = path.resolve(input);\n\n\t\tawait mkdir(pth, {\n\t\t\tmode: options.mode,\n\t\t\trecursive: true\n\t\t});\n\n\t\treturn pth;\n\t}\n\n\tconst make = async pth => {\n\t\ttry {\n\t\t\tawait mkdir(pth, options.mode);\n\n\t\t\treturn pth;\n\t\t} catch (error) {\n\t\t\tif (error.code === 'EPERM') {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\tif (path.dirname(pth) === pth) {\n\t\t\t\t\tthrow permissionError(pth);\n\t\t\t\t}\n\n\t\t\t\tif (error.message.includes('null bytes')) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tawait make(path.dirname(pth));\n\n\t\t\t\treturn make(pth);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst stats = await stat(pth);\n\t\t\t\tif (!stats.isDirectory()) {\n\t\t\t\t\tthrow new Error('The path is not a directory');\n\t\t\t\t}\n\t\t\t} catch (_) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn pth;\n\t\t}\n\t};\n\n\treturn make(path.resolve(input));\n};\n\nmodule.exports = makeDir;\n\nmodule.exports.sync = (input, options) => {\n\tcheckPath(input);\n\toptions = processOptions(options);\n\n\tif (useNativeRecursiveOption && options.fs.mkdirSync === fs.mkdirSync) {\n\t\tconst pth = path.resolve(input);\n\n\t\tfs.mkdirSync(pth, {\n\t\t\tmode: options.mode,\n\t\t\trecursive: true\n\t\t});\n\n\t\treturn pth;\n\t}\n\n\tconst make = pth => {\n\t\ttry {\n\t\t\toptions.fs.mkdirSync(pth, options.mode);\n\t\t} catch (error) {\n\t\t\tif (error.code === 'EPERM') {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\tif (path.dirname(pth) === pth) {\n\t\t\t\t\tthrow permissionError(pth);\n\t\t\t\t}\n\n\t\t\t\tif (error.message.includes('null bytes')) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tmake(path.dirname(pth));\n\t\t\t\treturn make(pth);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tif (!options.fs.statSync(pth).isDirectory()) {\n\t\t\t\t\tthrow new Error('The path is not a directory');\n\t\t\t\t}\n\t\t\t} catch (_) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\treturn pth;\n\t};\n\n\treturn make(path.resolve(input));\n};\n","'use strict'\n/*\n * merge2\n * https://github.com/teambition/merge2\n *\n * Copyright (c) 2014-2020 Teambition\n * Licensed under the MIT license.\n */\nconst Stream = require('stream')\nconst PassThrough = Stream.PassThrough\nconst slice = Array.prototype.slice\n\nmodule.exports = merge2\n\nfunction merge2 () {\n const streamsQueue = []\n const args = slice.call(arguments)\n let merging = false\n let options = args[args.length - 1]\n\n if (options && !Array.isArray(options) && options.pipe == null) {\n args.pop()\n } else {\n options = {}\n }\n\n const doEnd = options.end !== false\n const doPipeError = options.pipeError === true\n if (options.objectMode == null) {\n options.objectMode = true\n }\n if (options.highWaterMark == null) {\n options.highWaterMark = 64 * 1024\n }\n const mergedStream = PassThrough(options)\n\n function addStream () {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options))\n }\n mergeStream()\n return this\n }\n\n function mergeStream () {\n if (merging) {\n return\n }\n merging = true\n\n let streams = streamsQueue.shift()\n if (!streams) {\n process.nextTick(endStream)\n return\n }\n if (!Array.isArray(streams)) {\n streams = [streams]\n }\n\n let pipesCount = streams.length + 1\n\n function next () {\n if (--pipesCount > 0) {\n return\n }\n merging = false\n mergeStream()\n }\n\n function pipe (stream) {\n function onend () {\n stream.removeListener('merge2UnpipeEnd', onend)\n stream.removeListener('end', onend)\n if (doPipeError) {\n stream.removeListener('error', onerror)\n }\n next()\n }\n function onerror (err) {\n mergedStream.emit('error', err)\n }\n // skip ended stream\n if (stream._readableState.endEmitted) {\n return next()\n }\n\n stream.on('merge2UnpipeEnd', onend)\n stream.on('end', onend)\n\n if (doPipeError) {\n stream.on('error', onerror)\n }\n\n stream.pipe(mergedStream, { end: false })\n // compatible for old stream\n stream.resume()\n }\n\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i])\n }\n\n next()\n }\n\n function endStream () {\n merging = false\n // emit 'queueDrain' when all streams merged.\n mergedStream.emit('queueDrain')\n if (doEnd) {\n mergedStream.end()\n }\n }\n\n mergedStream.setMaxListeners(0)\n mergedStream.add = addStream\n mergedStream.on('unpipe', function (stream) {\n stream.emit('merge2UnpipeEnd')\n })\n\n if (args.length) {\n addStream.apply(null, args)\n }\n return mergedStream\n}\n\n// check and pause streams for pipe.\nfunction pauseStreams (streams, options) {\n if (!Array.isArray(streams)) {\n // Backwards-compat with old-style streams\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options))\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error('Only readable stream can be merged.')\n }\n streams.pause()\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options)\n }\n }\n return streams\n}\n","'use strict';\n\nconst util = require('util');\nconst braces = require('braces');\nconst picomatch = require('picomatch');\nconst utils = require('picomatch/lib/utils');\nconst isEmptyString = val => val === '' || val === './';\n\n/**\n * Returns an array of strings that match one or more glob patterns.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm(list, patterns[, options]);\n *\n * console.log(mm(['a.js', 'a.txt'], ['*.js']));\n * //=> [ 'a.js' ]\n * ```\n * @param {String|Array} `list` List of strings to match.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options)\n * @return {Array} Returns an array of matches\n * @summary false\n * @api public\n */\n\nconst micromatch = (list, patterns, options) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n\n let omit = new Set();\n let keep = new Set();\n let items = new Set();\n let negatives = 0;\n\n let onResult = state => {\n items.add(state.output);\n if (options && options.onResult) {\n options.onResult(state);\n }\n };\n\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n\n for (let item of list) {\n let matched = isMatch(item, true);\n\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n\n if (negated) {\n omit.add(matched.output);\n } else {\n omit.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter(item => !omit.has(item));\n\n if (options && matches.length === 0) {\n if (options.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(', ')}\"`);\n }\n\n if (options.nonull === true || options.nullglob === true) {\n return options.unescape ? patterns.map(p => p.replace(/\\\\/g, '')) : patterns;\n }\n }\n\n return matches;\n};\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.match = micromatch;\n\n/**\n * Returns a matcher function from the given glob `pattern` and `options`.\n * The returned function takes a string to match as its only argument and returns\n * true if the string is a match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matcher(pattern[, options]);\n *\n * const isMatch = mm.matcher('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @param {String} `pattern` Glob pattern\n * @param {Object} `options`\n * @return {Function} Returns a matcher function.\n * @api public\n */\n\nmicromatch.matcher = (pattern, options) => picomatch(pattern, options);\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.isMatch(string, patterns[, options]);\n *\n * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(mm.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `[options]` See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Backwards compatibility\n */\n\nmicromatch.any = micromatch.isMatch;\n\n/**\n * Returns a list of strings that _**do not match any**_ of the given `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.not(list, patterns[, options]);\n *\n * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));\n * //=> ['b.b', 'c.c']\n * ```\n * @param {Array} `list` Array of strings to match.\n * @param {String|Array} `patterns` One or more glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array} Returns an array of strings that **do not match** the given patterns.\n * @api public\n */\n\nmicromatch.not = (list, patterns, options = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = new Set();\n let items = [];\n\n let onResult = state => {\n if (options.onResult) options.onResult(state);\n items.push(state.output);\n };\n\n let matches = micromatch(list, patterns, { ...options, onResult });\n\n for (let item of items) {\n if (!matches.includes(item)) {\n result.add(item);\n }\n }\n return [...result];\n};\n\n/**\n * Returns true if the given `string` contains the given pattern. Similar\n * to [.isMatch](#isMatch) but the pattern can match any part of the string.\n *\n * ```js\n * var mm = require('micromatch');\n * // mm.contains(string, pattern[, options]);\n *\n * console.log(mm.contains('aa/bb/cc', '*b'));\n * //=> true\n * console.log(mm.contains('aa/bb/cc', '*d'));\n * //=> false\n * ```\n * @param {String} `str` The string to match.\n * @param {String|Array} `patterns` Glob pattern to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any of the patterns matches any part of `str`.\n * @api public\n */\n\nmicromatch.contains = (str, pattern, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n if (Array.isArray(pattern)) {\n return pattern.some(p => micromatch.contains(str, p, options));\n }\n\n if (typeof pattern === 'string') {\n if (isEmptyString(str) || isEmptyString(pattern)) {\n return false;\n }\n\n if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) {\n return true;\n }\n }\n\n return micromatch.isMatch(str, pattern, { ...options, contains: true });\n};\n\n/**\n * Filter the keys of the given object with the given `glob` pattern\n * and `options`. Does not attempt to match nested keys. If you need this feature,\n * use [glob-object][] instead.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.matchKeys(object, patterns[, options]);\n *\n * const obj = { aa: 'a', ab: 'b', ac: 'c' };\n * console.log(mm.matchKeys(obj, '*b'));\n * //=> { ab: 'b' }\n * ```\n * @param {Object} `object` The object with keys to filter.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Object} Returns an object with only keys that match the given patterns.\n * @api public\n */\n\nmicromatch.matchKeys = (obj, patterns, options) => {\n if (!utils.isObject(obj)) {\n throw new TypeError('Expected the first argument to be an object');\n }\n let keys = micromatch(Object.keys(obj), patterns, options);\n let res = {};\n for (let key of keys) res[key] = obj[key];\n return res;\n};\n\n/**\n * Returns true if some of the strings in the given `list` match any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.some(list, patterns[, options]);\n *\n * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // true\n * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list`\n * @api public\n */\n\nmicromatch.some = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (items.some(item => isMatch(item))) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Returns true if every string in the given `list` matches\n * any of the given glob `patterns`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.every(list, patterns[, options]);\n *\n * console.log(mm.every('foo.js', ['foo.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));\n * // true\n * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));\n * // false\n * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));\n * // false\n * ```\n * @param {String|Array} `list` The string or array of strings to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list`\n * @api public\n */\n\nmicromatch.every = (list, patterns, options) => {\n let items = [].concat(list);\n\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options);\n if (!items.every(item => isMatch(item))) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Returns true if **all** of the given `patterns` match\n * the specified string.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.all(string, patterns[, options]);\n *\n * console.log(mm.all('foo.js', ['foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', '!foo.js']));\n * // false\n *\n * console.log(mm.all('foo.js', ['*.js', 'foo.js']));\n * // true\n *\n * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));\n * // true\n * ```\n * @param {String|Array} `str` The string to test.\n * @param {String|Array} `patterns` One or more glob patterns to use for matching.\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\nmicromatch.all = (str, patterns, options) => {\n if (typeof str !== 'string') {\n throw new TypeError(`Expected a string: \"${util.inspect(str)}\"`);\n }\n\n return [].concat(patterns).every(p => picomatch(p, options)(str));\n};\n\n/**\n * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.capture(pattern, string[, options]);\n *\n * console.log(mm.capture('test/*.js', 'test/foo.js'));\n * //=> ['foo']\n * console.log(mm.capture('test/*.js', 'foo/bar.css'));\n * //=> null\n * ```\n * @param {String} `glob` Glob pattern to use for matching.\n * @param {String} `input` String to match\n * @param {Object} `options` See available [options](#options) for changing how matches are performed\n * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`.\n * @api public\n */\n\nmicromatch.capture = (glob, input, options) => {\n let posix = utils.isWindows(options);\n let regex = picomatch.makeRe(String(glob), { ...options, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n\n if (match) {\n return match.slice(1).map(v => v === void 0 ? '' : v);\n }\n};\n\n/**\n * Create a regular expression from the given glob `pattern`.\n *\n * ```js\n * const mm = require('micromatch');\n * // mm.makeRe(pattern[, options]);\n *\n * console.log(mm.makeRe('*.js'));\n * //=> /^(?:(\\.[\\\\\\/])?(?!\\.)(?=.)[^\\/]*?\\.js)$/\n * ```\n * @param {String} `pattern` A glob pattern to convert to regex.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\nmicromatch.makeRe = (...args) => picomatch.makeRe(...args);\n\n/**\n * Scan a glob pattern to separate the pattern into segments. Used\n * by the [split](#split) method.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm.scan(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\nmicromatch.scan = (...args) => picomatch.scan(...args);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const mm = require('micromatch');\n * const state = mm(pattern[, options]);\n * ```\n * @param {String} `glob`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as regex source string.\n * @api public\n */\n\nmicromatch.parse = (patterns, options) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str of braces(String(pattern), options)) {\n res.push(picomatch.parse(str, options));\n }\n }\n return res;\n};\n\n/**\n * Process the given brace `pattern`.\n *\n * ```js\n * const { braces } = require('micromatch');\n * console.log(braces('foo/{a,b,c}/bar'));\n * //=> [ 'foo/(a|b|c)/bar' ]\n *\n * console.log(braces('foo/{a,b,c}/bar', { expand: true }));\n * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ]\n * ```\n * @param {String} `pattern` String with brace pattern to process.\n * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.\n * @return {Array}\n * @api public\n */\n\nmicromatch.braces = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n if ((options && options.nobrace === true) || !/\\{.*\\}/.test(pattern)) {\n return [pattern];\n }\n return braces(pattern, options);\n};\n\n/**\n * Expand braces\n */\n\nmicromatch.braceExpand = (pattern, options) => {\n if (typeof pattern !== 'string') throw new TypeError('Expected a string');\n return micromatch.braces(pattern, { ...options, expand: true });\n};\n\n/**\n * Expose micromatch\n */\n\nmodule.exports = micromatch;\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'), require('./types/other'));\n","module.exports = {\"application/prs.cww\":[\"cww\"],\"application/vnd.1000minds.decision-model+xml\":[\"1km\"],\"application/vnd.3gpp.pic-bw-large\":[\"plb\"],\"application/vnd.3gpp.pic-bw-small\":[\"psb\"],\"application/vnd.3gpp.pic-bw-var\":[\"pvb\"],\"application/vnd.3gpp2.tcap\":[\"tcap\"],\"application/vnd.3m.post-it-notes\":[\"pwn\"],\"application/vnd.accpac.simply.aso\":[\"aso\"],\"application/vnd.accpac.simply.imp\":[\"imp\"],\"application/vnd.acucobol\":[\"acu\"],\"application/vnd.acucorp\":[\"atc\",\"acutc\"],\"application/vnd.adobe.air-application-installer-package+zip\":[\"air\"],\"application/vnd.adobe.formscentral.fcdt\":[\"fcdt\"],\"application/vnd.adobe.fxp\":[\"fxp\",\"fxpl\"],\"application/vnd.adobe.xdp+xml\":[\"xdp\"],\"application/vnd.adobe.xfdf\":[\"xfdf\"],\"application/vnd.ahead.space\":[\"ahead\"],\"application/vnd.airzip.filesecure.azf\":[\"azf\"],\"application/vnd.airzip.filesecure.azs\":[\"azs\"],\"application/vnd.amazon.ebook\":[\"azw\"],\"application/vnd.americandynamics.acc\":[\"acc\"],\"application/vnd.amiga.ami\":[\"ami\"],\"application/vnd.android.package-archive\":[\"apk\"],\"application/vnd.anser-web-certificate-issue-initiation\":[\"cii\"],\"application/vnd.anser-web-funds-transfer-initiation\":[\"fti\"],\"application/vnd.antix.game-component\":[\"atx\"],\"application/vnd.apple.installer+xml\":[\"mpkg\"],\"application/vnd.apple.keynote\":[\"key\"],\"application/vnd.apple.mpegurl\":[\"m3u8\"],\"application/vnd.apple.numbers\":[\"numbers\"],\"application/vnd.apple.pages\":[\"pages\"],\"application/vnd.apple.pkpass\":[\"pkpass\"],\"application/vnd.aristanetworks.swi\":[\"swi\"],\"application/vnd.astraea-software.iota\":[\"iota\"],\"application/vnd.audiograph\":[\"aep\"],\"application/vnd.balsamiq.bmml+xml\":[\"bmml\"],\"application/vnd.blueice.multipass\":[\"mpm\"],\"application/vnd.bmi\":[\"bmi\"],\"application/vnd.businessobjects\":[\"rep\"],\"application/vnd.chemdraw+xml\":[\"cdxml\"],\"application/vnd.chipnuts.karaoke-mmd\":[\"mmd\"],\"application/vnd.cinderella\":[\"cdy\"],\"application/vnd.citationstyles.style+xml\":[\"csl\"],\"application/vnd.claymore\":[\"cla\"],\"application/vnd.cloanto.rp9\":[\"rp9\"],\"application/vnd.clonk.c4group\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"],\"application/vnd.cluetrust.cartomobile-config\":[\"c11amc\"],\"application/vnd.cluetrust.cartomobile-config-pkg\":[\"c11amz\"],\"application/vnd.commonspace\":[\"csp\"],\"application/vnd.contact.cmsg\":[\"cdbcmsg\"],\"application/vnd.cosmocaller\":[\"cmc\"],\"application/vnd.crick.clicker\":[\"clkx\"],\"application/vnd.crick.clicker.keyboard\":[\"clkk\"],\"application/vnd.crick.clicker.palette\":[\"clkp\"],\"application/vnd.crick.clicker.template\":[\"clkt\"],\"application/vnd.crick.clicker.wordbank\":[\"clkw\"],\"application/vnd.criticaltools.wbs+xml\":[\"wbs\"],\"application/vnd.ctc-posml\":[\"pml\"],\"application/vnd.cups-ppd\":[\"ppd\"],\"application/vnd.curl.car\":[\"car\"],\"application/vnd.curl.pcurl\":[\"pcurl\"],\"application/vnd.dart\":[\"dart\"],\"application/vnd.data-vision.rdz\":[\"rdz\"],\"application/vnd.dbf\":[\"dbf\"],\"application/vnd.dece.data\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"],\"application/vnd.dece.ttml+xml\":[\"uvt\",\"uvvt\"],\"application/vnd.dece.unspecified\":[\"uvx\",\"uvvx\"],\"application/vnd.dece.zip\":[\"uvz\",\"uvvz\"],\"application/vnd.denovo.fcselayout-link\":[\"fe_launch\"],\"application/vnd.dna\":[\"dna\"],\"application/vnd.dolby.mlp\":[\"mlp\"],\"application/vnd.dpgraph\":[\"dpg\"],\"application/vnd.dreamfactory\":[\"dfac\"],\"application/vnd.ds-keypoint\":[\"kpxx\"],\"application/vnd.dvb.ait\":[\"ait\"],\"application/vnd.dvb.service\":[\"svc\"],\"application/vnd.dynageo\":[\"geo\"],\"application/vnd.ecowin.chart\":[\"mag\"],\"application/vnd.enliven\":[\"nml\"],\"application/vnd.epson.esf\":[\"esf\"],\"application/vnd.epson.msf\":[\"msf\"],\"application/vnd.epson.quickanime\":[\"qam\"],\"application/vnd.epson.salt\":[\"slt\"],\"application/vnd.epson.ssf\":[\"ssf\"],\"application/vnd.eszigno3+xml\":[\"es3\",\"et3\"],\"application/vnd.ezpix-album\":[\"ez2\"],\"application/vnd.ezpix-package\":[\"ez3\"],\"application/vnd.fdf\":[\"fdf\"],\"application/vnd.fdsn.mseed\":[\"mseed\"],\"application/vnd.fdsn.seed\":[\"seed\",\"dataless\"],\"application/vnd.flographit\":[\"gph\"],\"application/vnd.fluxtime.clip\":[\"ftc\"],\"application/vnd.framemaker\":[\"fm\",\"frame\",\"maker\",\"book\"],\"application/vnd.frogans.fnc\":[\"fnc\"],\"application/vnd.frogans.ltf\":[\"ltf\"],\"application/vnd.fsc.weblaunch\":[\"fsc\"],\"application/vnd.fujitsu.oasys\":[\"oas\"],\"application/vnd.fujitsu.oasys2\":[\"oa2\"],\"application/vnd.fujitsu.oasys3\":[\"oa3\"],\"application/vnd.fujitsu.oasysgp\":[\"fg5\"],\"application/vnd.fujitsu.oasysprs\":[\"bh2\"],\"application/vnd.fujixerox.ddd\":[\"ddd\"],\"application/vnd.fujixerox.docuworks\":[\"xdw\"],\"application/vnd.fujixerox.docuworks.binder\":[\"xbd\"],\"application/vnd.fuzzysheet\":[\"fzs\"],\"application/vnd.genomatix.tuxedo\":[\"txd\"],\"application/vnd.geogebra.file\":[\"ggb\"],\"application/vnd.geogebra.tool\":[\"ggt\"],\"application/vnd.geometry-explorer\":[\"gex\",\"gre\"],\"application/vnd.geonext\":[\"gxt\"],\"application/vnd.geoplan\":[\"g2w\"],\"application/vnd.geospace\":[\"g3w\"],\"application/vnd.gmx\":[\"gmx\"],\"application/vnd.google-apps.document\":[\"gdoc\"],\"application/vnd.google-apps.presentation\":[\"gslides\"],\"application/vnd.google-apps.spreadsheet\":[\"gsheet\"],\"application/vnd.google-earth.kml+xml\":[\"kml\"],\"application/vnd.google-earth.kmz\":[\"kmz\"],\"application/vnd.grafeq\":[\"gqf\",\"gqs\"],\"application/vnd.groove-account\":[\"gac\"],\"application/vnd.groove-help\":[\"ghf\"],\"application/vnd.groove-identity-message\":[\"gim\"],\"application/vnd.groove-injector\":[\"grv\"],\"application/vnd.groove-tool-message\":[\"gtm\"],\"application/vnd.groove-tool-template\":[\"tpl\"],\"application/vnd.groove-vcard\":[\"vcg\"],\"application/vnd.hal+xml\":[\"hal\"],\"application/vnd.handheld-entertainment+xml\":[\"zmm\"],\"application/vnd.hbci\":[\"hbci\"],\"application/vnd.hhe.lesson-player\":[\"les\"],\"application/vnd.hp-hpgl\":[\"hpgl\"],\"application/vnd.hp-hpid\":[\"hpid\"],\"application/vnd.hp-hps\":[\"hps\"],\"application/vnd.hp-jlyt\":[\"jlt\"],\"application/vnd.hp-pcl\":[\"pcl\"],\"application/vnd.hp-pclxl\":[\"pclxl\"],\"application/vnd.hydrostatix.sof-data\":[\"sfd-hdstx\"],\"application/vnd.ibm.minipay\":[\"mpy\"],\"application/vnd.ibm.modcap\":[\"afp\",\"listafp\",\"list3820\"],\"application/vnd.ibm.rights-management\":[\"irm\"],\"application/vnd.ibm.secure-container\":[\"sc\"],\"application/vnd.iccprofile\":[\"icc\",\"icm\"],\"application/vnd.igloader\":[\"igl\"],\"application/vnd.immervision-ivp\":[\"ivp\"],\"application/vnd.immervision-ivu\":[\"ivu\"],\"application/vnd.insors.igm\":[\"igm\"],\"application/vnd.intercon.formnet\":[\"xpw\",\"xpx\"],\"application/vnd.intergeo\":[\"i2g\"],\"application/vnd.intu.qbo\":[\"qbo\"],\"application/vnd.intu.qfx\":[\"qfx\"],\"application/vnd.ipunplugged.rcprofile\":[\"rcprofile\"],\"application/vnd.irepository.package+xml\":[\"irp\"],\"application/vnd.is-xpr\":[\"xpr\"],\"application/vnd.isac.fcs\":[\"fcs\"],\"application/vnd.jam\":[\"jam\"],\"application/vnd.jcp.javame.midlet-rms\":[\"rms\"],\"application/vnd.jisp\":[\"jisp\"],\"application/vnd.joost.joda-archive\":[\"joda\"],\"application/vnd.kahootz\":[\"ktz\",\"ktr\"],\"application/vnd.kde.karbon\":[\"karbon\"],\"application/vnd.kde.kchart\":[\"chrt\"],\"application/vnd.kde.kformula\":[\"kfo\"],\"application/vnd.kde.kivio\":[\"flw\"],\"application/vnd.kde.kontour\":[\"kon\"],\"application/vnd.kde.kpresenter\":[\"kpr\",\"kpt\"],\"application/vnd.kde.kspread\":[\"ksp\"],\"application/vnd.kde.kword\":[\"kwd\",\"kwt\"],\"application/vnd.kenameaapp\":[\"htke\"],\"application/vnd.kidspiration\":[\"kia\"],\"application/vnd.kinar\":[\"kne\",\"knp\"],\"application/vnd.koan\":[\"skp\",\"skd\",\"skt\",\"skm\"],\"application/vnd.kodak-descriptor\":[\"sse\"],\"application/vnd.las.las+xml\":[\"lasxml\"],\"application/vnd.llamagraphics.life-balance.desktop\":[\"lbd\"],\"application/vnd.llamagraphics.life-balance.exchange+xml\":[\"lbe\"],\"application/vnd.lotus-1-2-3\":[\"123\"],\"application/vnd.lotus-approach\":[\"apr\"],\"application/vnd.lotus-freelance\":[\"pre\"],\"application/vnd.lotus-notes\":[\"nsf\"],\"application/vnd.lotus-organizer\":[\"org\"],\"application/vnd.lotus-screencam\":[\"scm\"],\"application/vnd.lotus-wordpro\":[\"lwp\"],\"application/vnd.macports.portpkg\":[\"portpkg\"],\"application/vnd.mapbox-vector-tile\":[\"mvt\"],\"application/vnd.mcd\":[\"mcd\"],\"application/vnd.medcalcdata\":[\"mc1\"],\"application/vnd.mediastation.cdkey\":[\"cdkey\"],\"application/vnd.mfer\":[\"mwf\"],\"application/vnd.mfmp\":[\"mfm\"],\"application/vnd.micrografx.flo\":[\"flo\"],\"application/vnd.micrografx.igx\":[\"igx\"],\"application/vnd.mif\":[\"mif\"],\"application/vnd.mobius.daf\":[\"daf\"],\"application/vnd.mobius.dis\":[\"dis\"],\"application/vnd.mobius.mbk\":[\"mbk\"],\"application/vnd.mobius.mqy\":[\"mqy\"],\"application/vnd.mobius.msl\":[\"msl\"],\"application/vnd.mobius.plc\":[\"plc\"],\"application/vnd.mobius.txf\":[\"txf\"],\"application/vnd.mophun.application\":[\"mpn\"],\"application/vnd.mophun.certificate\":[\"mpc\"],\"application/vnd.mozilla.xul+xml\":[\"xul\"],\"application/vnd.ms-artgalry\":[\"cil\"],\"application/vnd.ms-cab-compressed\":[\"cab\"],\"application/vnd.ms-excel\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"],\"application/vnd.ms-excel.addin.macroenabled.12\":[\"xlam\"],\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":[\"xlsb\"],\"application/vnd.ms-excel.sheet.macroenabled.12\":[\"xlsm\"],\"application/vnd.ms-excel.template.macroenabled.12\":[\"xltm\"],\"application/vnd.ms-fontobject\":[\"eot\"],\"application/vnd.ms-htmlhelp\":[\"chm\"],\"application/vnd.ms-ims\":[\"ims\"],\"application/vnd.ms-lrm\":[\"lrm\"],\"application/vnd.ms-officetheme\":[\"thmx\"],\"application/vnd.ms-outlook\":[\"msg\"],\"application/vnd.ms-pki.seccat\":[\"cat\"],\"application/vnd.ms-pki.stl\":[\"*stl\"],\"application/vnd.ms-powerpoint\":[\"ppt\",\"pps\",\"pot\"],\"application/vnd.ms-powerpoint.addin.macroenabled.12\":[\"ppam\"],\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":[\"pptm\"],\"application/vnd.ms-powerpoint.slide.macroenabled.12\":[\"sldm\"],\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":[\"ppsm\"],\"application/vnd.ms-powerpoint.template.macroenabled.12\":[\"potm\"],\"application/vnd.ms-project\":[\"mpp\",\"mpt\"],\"application/vnd.ms-word.document.macroenabled.12\":[\"docm\"],\"application/vnd.ms-word.template.macroenabled.12\":[\"dotm\"],\"application/vnd.ms-works\":[\"wps\",\"wks\",\"wcm\",\"wdb\"],\"application/vnd.ms-wpl\":[\"wpl\"],\"application/vnd.ms-xpsdocument\":[\"xps\"],\"application/vnd.mseq\":[\"mseq\"],\"application/vnd.musician\":[\"mus\"],\"application/vnd.muvee.style\":[\"msty\"],\"application/vnd.mynfc\":[\"taglet\"],\"application/vnd.neurolanguage.nlu\":[\"nlu\"],\"application/vnd.nitf\":[\"ntf\",\"nitf\"],\"application/vnd.noblenet-directory\":[\"nnd\"],\"application/vnd.noblenet-sealer\":[\"nns\"],\"application/vnd.noblenet-web\":[\"nnw\"],\"application/vnd.nokia.n-gage.ac+xml\":[\"*ac\"],\"application/vnd.nokia.n-gage.data\":[\"ngdat\"],\"application/vnd.nokia.n-gage.symbian.install\":[\"n-gage\"],\"application/vnd.nokia.radio-preset\":[\"rpst\"],\"application/vnd.nokia.radio-presets\":[\"rpss\"],\"application/vnd.novadigm.edm\":[\"edm\"],\"application/vnd.novadigm.edx\":[\"edx\"],\"application/vnd.novadigm.ext\":[\"ext\"],\"application/vnd.oasis.opendocument.chart\":[\"odc\"],\"application/vnd.oasis.opendocument.chart-template\":[\"otc\"],\"application/vnd.oasis.opendocument.database\":[\"odb\"],\"application/vnd.oasis.opendocument.formula\":[\"odf\"],\"application/vnd.oasis.opendocument.formula-template\":[\"odft\"],\"application/vnd.oasis.opendocument.graphics\":[\"odg\"],\"application/vnd.oasis.opendocument.graphics-template\":[\"otg\"],\"application/vnd.oasis.opendocument.image\":[\"odi\"],\"application/vnd.oasis.opendocument.image-template\":[\"oti\"],\"application/vnd.oasis.opendocument.presentation\":[\"odp\"],\"application/vnd.oasis.opendocument.presentation-template\":[\"otp\"],\"application/vnd.oasis.opendocument.spreadsheet\":[\"ods\"],\"application/vnd.oasis.opendocument.spreadsheet-template\":[\"ots\"],\"application/vnd.oasis.opendocument.text\":[\"odt\"],\"application/vnd.oasis.opendocument.text-master\":[\"odm\"],\"application/vnd.oasis.opendocument.text-template\":[\"ott\"],\"application/vnd.oasis.opendocument.text-web\":[\"oth\"],\"application/vnd.olpc-sugar\":[\"xo\"],\"application/vnd.oma.dd2+xml\":[\"dd2\"],\"application/vnd.openblox.game+xml\":[\"obgx\"],\"application/vnd.openofficeorg.extension\":[\"oxt\"],\"application/vnd.openstreetmap.data+xml\":[\"osm\"],\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":[\"pptx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slide\":[\"sldx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":[\"ppsx\"],\"application/vnd.openxmlformats-officedocument.presentationml.template\":[\"potx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":[\"xlsx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":[\"xltx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":[\"docx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":[\"dotx\"],\"application/vnd.osgeo.mapguide.package\":[\"mgp\"],\"application/vnd.osgi.dp\":[\"dp\"],\"application/vnd.osgi.subsystem\":[\"esa\"],\"application/vnd.palm\":[\"pdb\",\"pqa\",\"oprc\"],\"application/vnd.pawaafile\":[\"paw\"],\"application/vnd.pg.format\":[\"str\"],\"application/vnd.pg.osasli\":[\"ei6\"],\"application/vnd.picsel\":[\"efif\"],\"application/vnd.pmi.widget\":[\"wg\"],\"application/vnd.pocketlearn\":[\"plf\"],\"application/vnd.powerbuilder6\":[\"pbd\"],\"application/vnd.previewsystems.box\":[\"box\"],\"application/vnd.proteus.magazine\":[\"mgz\"],\"application/vnd.publishare-delta-tree\":[\"qps\"],\"application/vnd.pvi.ptid1\":[\"ptid\"],\"application/vnd.quark.quarkxpress\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"],\"application/vnd.rar\":[\"rar\"],\"application/vnd.realvnc.bed\":[\"bed\"],\"application/vnd.recordare.musicxml\":[\"mxl\"],\"application/vnd.recordare.musicxml+xml\":[\"musicxml\"],\"application/vnd.rig.cryptonote\":[\"cryptonote\"],\"application/vnd.rim.cod\":[\"cod\"],\"application/vnd.rn-realmedia\":[\"rm\"],\"application/vnd.rn-realmedia-vbr\":[\"rmvb\"],\"application/vnd.route66.link66+xml\":[\"link66\"],\"application/vnd.sailingtracker.track\":[\"st\"],\"application/vnd.seemail\":[\"see\"],\"application/vnd.sema\":[\"sema\"],\"application/vnd.semd\":[\"semd\"],\"application/vnd.semf\":[\"semf\"],\"application/vnd.shana.informed.formdata\":[\"ifm\"],\"application/vnd.shana.informed.formtemplate\":[\"itp\"],\"application/vnd.shana.informed.interchange\":[\"iif\"],\"application/vnd.shana.informed.package\":[\"ipk\"],\"application/vnd.simtech-mindmapper\":[\"twd\",\"twds\"],\"application/vnd.smaf\":[\"mmf\"],\"application/vnd.smart.teacher\":[\"teacher\"],\"application/vnd.software602.filler.form+xml\":[\"fo\"],\"application/vnd.solent.sdkm+xml\":[\"sdkm\",\"sdkd\"],\"application/vnd.spotfire.dxp\":[\"dxp\"],\"application/vnd.spotfire.sfs\":[\"sfs\"],\"application/vnd.stardivision.calc\":[\"sdc\"],\"application/vnd.stardivision.draw\":[\"sda\"],\"application/vnd.stardivision.impress\":[\"sdd\"],\"application/vnd.stardivision.math\":[\"smf\"],\"application/vnd.stardivision.writer\":[\"sdw\",\"vor\"],\"application/vnd.stardivision.writer-global\":[\"sgl\"],\"application/vnd.stepmania.package\":[\"smzip\"],\"application/vnd.stepmania.stepchart\":[\"sm\"],\"application/vnd.sun.wadl+xml\":[\"wadl\"],\"application/vnd.sun.xml.calc\":[\"sxc\"],\"application/vnd.sun.xml.calc.template\":[\"stc\"],\"application/vnd.sun.xml.draw\":[\"sxd\"],\"application/vnd.sun.xml.draw.template\":[\"std\"],\"application/vnd.sun.xml.impress\":[\"sxi\"],\"application/vnd.sun.xml.impress.template\":[\"sti\"],\"application/vnd.sun.xml.math\":[\"sxm\"],\"application/vnd.sun.xml.writer\":[\"sxw\"],\"application/vnd.sun.xml.writer.global\":[\"sxg\"],\"application/vnd.sun.xml.writer.template\":[\"stw\"],\"application/vnd.sus-calendar\":[\"sus\",\"susp\"],\"application/vnd.svd\":[\"svd\"],\"application/vnd.symbian.install\":[\"sis\",\"sisx\"],\"application/vnd.syncml+xml\":[\"xsm\"],\"application/vnd.syncml.dm+wbxml\":[\"bdm\"],\"application/vnd.syncml.dm+xml\":[\"xdm\"],\"application/vnd.syncml.dmddf+xml\":[\"ddf\"],\"application/vnd.tao.intent-module-archive\":[\"tao\"],\"application/vnd.tcpdump.pcap\":[\"pcap\",\"cap\",\"dmp\"],\"application/vnd.tmobile-livetv\":[\"tmo\"],\"application/vnd.trid.tpt\":[\"tpt\"],\"application/vnd.triscape.mxs\":[\"mxs\"],\"application/vnd.trueapp\":[\"tra\"],\"application/vnd.ufdl\":[\"ufd\",\"ufdl\"],\"application/vnd.uiq.theme\":[\"utz\"],\"application/vnd.umajin\":[\"umj\"],\"application/vnd.unity\":[\"unityweb\"],\"application/vnd.uoml+xml\":[\"uoml\"],\"application/vnd.vcx\":[\"vcx\"],\"application/vnd.visio\":[\"vsd\",\"vst\",\"vss\",\"vsw\"],\"application/vnd.visionary\":[\"vis\"],\"application/vnd.vsf\":[\"vsf\"],\"application/vnd.wap.wbxml\":[\"wbxml\"],\"application/vnd.wap.wmlc\":[\"wmlc\"],\"application/vnd.wap.wmlscriptc\":[\"wmlsc\"],\"application/vnd.webturbo\":[\"wtb\"],\"application/vnd.wolfram.player\":[\"nbp\"],\"application/vnd.wordperfect\":[\"wpd\"],\"application/vnd.wqd\":[\"wqd\"],\"application/vnd.wt.stf\":[\"stf\"],\"application/vnd.xara\":[\"xar\"],\"application/vnd.xfdl\":[\"xfdl\"],\"application/vnd.yamaha.hv-dic\":[\"hvd\"],\"application/vnd.yamaha.hv-script\":[\"hvs\"],\"application/vnd.yamaha.hv-voice\":[\"hvp\"],\"application/vnd.yamaha.openscoreformat\":[\"osf\"],\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":[\"osfpvg\"],\"application/vnd.yamaha.smaf-audio\":[\"saf\"],\"application/vnd.yamaha.smaf-phrase\":[\"spf\"],\"application/vnd.yellowriver-custom-menu\":[\"cmp\"],\"application/vnd.zul\":[\"zir\",\"zirz\"],\"application/vnd.zzazz.deck+xml\":[\"zaz\"],\"application/x-7z-compressed\":[\"7z\"],\"application/x-abiword\":[\"abw\"],\"application/x-ace-compressed\":[\"ace\"],\"application/x-apple-diskimage\":[\"*dmg\"],\"application/x-arj\":[\"arj\"],\"application/x-authorware-bin\":[\"aab\",\"x32\",\"u32\",\"vox\"],\"application/x-authorware-map\":[\"aam\"],\"application/x-authorware-seg\":[\"aas\"],\"application/x-bcpio\":[\"bcpio\"],\"application/x-bdoc\":[\"*bdoc\"],\"application/x-bittorrent\":[\"torrent\"],\"application/x-blorb\":[\"blb\",\"blorb\"],\"application/x-bzip\":[\"bz\"],\"application/x-bzip2\":[\"bz2\",\"boz\"],\"application/x-cbr\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"],\"application/x-cdlink\":[\"vcd\"],\"application/x-cfs-compressed\":[\"cfs\"],\"application/x-chat\":[\"chat\"],\"application/x-chess-pgn\":[\"pgn\"],\"application/x-chrome-extension\":[\"crx\"],\"application/x-cocoa\":[\"cco\"],\"application/x-conference\":[\"nsc\"],\"application/x-cpio\":[\"cpio\"],\"application/x-csh\":[\"csh\"],\"application/x-debian-package\":[\"*deb\",\"udeb\"],\"application/x-dgc-compressed\":[\"dgc\"],\"application/x-director\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"],\"application/x-doom\":[\"wad\"],\"application/x-dtbncx+xml\":[\"ncx\"],\"application/x-dtbook+xml\":[\"dtb\"],\"application/x-dtbresource+xml\":[\"res\"],\"application/x-dvi\":[\"dvi\"],\"application/x-envoy\":[\"evy\"],\"application/x-eva\":[\"eva\"],\"application/x-font-bdf\":[\"bdf\"],\"application/x-font-ghostscript\":[\"gsf\"],\"application/x-font-linux-psf\":[\"psf\"],\"application/x-font-pcf\":[\"pcf\"],\"application/x-font-snf\":[\"snf\"],\"application/x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"application/x-freearc\":[\"arc\"],\"application/x-futuresplash\":[\"spl\"],\"application/x-gca-compressed\":[\"gca\"],\"application/x-glulx\":[\"ulx\"],\"application/x-gnumeric\":[\"gnumeric\"],\"application/x-gramps-xml\":[\"gramps\"],\"application/x-gtar\":[\"gtar\"],\"application/x-hdf\":[\"hdf\"],\"application/x-httpd-php\":[\"php\"],\"application/x-install-instructions\":[\"install\"],\"application/x-iso9660-image\":[\"*iso\"],\"application/x-iwork-keynote-sffkey\":[\"*key\"],\"application/x-iwork-numbers-sffnumbers\":[\"*numbers\"],\"application/x-iwork-pages-sffpages\":[\"*pages\"],\"application/x-java-archive-diff\":[\"jardiff\"],\"application/x-java-jnlp-file\":[\"jnlp\"],\"application/x-keepass2\":[\"kdbx\"],\"application/x-latex\":[\"latex\"],\"application/x-lua-bytecode\":[\"luac\"],\"application/x-lzh-compressed\":[\"lzh\",\"lha\"],\"application/x-makeself\":[\"run\"],\"application/x-mie\":[\"mie\"],\"application/x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"application/x-ms-application\":[\"application\"],\"application/x-ms-shortcut\":[\"lnk\"],\"application/x-ms-wmd\":[\"wmd\"],\"application/x-ms-wmz\":[\"wmz\"],\"application/x-ms-xbap\":[\"xbap\"],\"application/x-msaccess\":[\"mdb\"],\"application/x-msbinder\":[\"obd\"],\"application/x-mscardfile\":[\"crd\"],\"application/x-msclip\":[\"clp\"],\"application/x-msdos-program\":[\"*exe\"],\"application/x-msdownload\":[\"*exe\",\"*dll\",\"com\",\"bat\",\"*msi\"],\"application/x-msmediaview\":[\"mvb\",\"m13\",\"m14\"],\"application/x-msmetafile\":[\"*wmf\",\"*wmz\",\"*emf\",\"emz\"],\"application/x-msmoney\":[\"mny\"],\"application/x-mspublisher\":[\"pub\"],\"application/x-msschedule\":[\"scd\"],\"application/x-msterminal\":[\"trm\"],\"application/x-mswrite\":[\"wri\"],\"application/x-netcdf\":[\"nc\",\"cdf\"],\"application/x-ns-proxy-autoconfig\":[\"pac\"],\"application/x-nzb\":[\"nzb\"],\"application/x-perl\":[\"pl\",\"pm\"],\"application/x-pilot\":[\"*prc\",\"*pdb\"],\"application/x-pkcs12\":[\"p12\",\"pfx\"],\"application/x-pkcs7-certificates\":[\"p7b\",\"spc\"],\"application/x-pkcs7-certreqresp\":[\"p7r\"],\"application/x-rar-compressed\":[\"*rar\"],\"application/x-redhat-package-manager\":[\"rpm\"],\"application/x-research-info-systems\":[\"ris\"],\"application/x-sea\":[\"sea\"],\"application/x-sh\":[\"sh\"],\"application/x-shar\":[\"shar\"],\"application/x-shockwave-flash\":[\"swf\"],\"application/x-silverlight-app\":[\"xap\"],\"application/x-sql\":[\"sql\"],\"application/x-stuffit\":[\"sit\"],\"application/x-stuffitx\":[\"sitx\"],\"application/x-subrip\":[\"srt\"],\"application/x-sv4cpio\":[\"sv4cpio\"],\"application/x-sv4crc\":[\"sv4crc\"],\"application/x-t3vm-image\":[\"t3\"],\"application/x-tads\":[\"gam\"],\"application/x-tar\":[\"tar\"],\"application/x-tcl\":[\"tcl\",\"tk\"],\"application/x-tex\":[\"tex\"],\"application/x-tex-tfm\":[\"tfm\"],\"application/x-texinfo\":[\"texinfo\",\"texi\"],\"application/x-tgif\":[\"*obj\"],\"application/x-ustar\":[\"ustar\"],\"application/x-virtualbox-hdd\":[\"hdd\"],\"application/x-virtualbox-ova\":[\"ova\"],\"application/x-virtualbox-ovf\":[\"ovf\"],\"application/x-virtualbox-vbox\":[\"vbox\"],\"application/x-virtualbox-vbox-extpack\":[\"vbox-extpack\"],\"application/x-virtualbox-vdi\":[\"vdi\"],\"application/x-virtualbox-vhd\":[\"vhd\"],\"application/x-virtualbox-vmdk\":[\"vmdk\"],\"application/x-wais-source\":[\"src\"],\"application/x-web-app-manifest+json\":[\"webapp\"],\"application/x-x509-ca-cert\":[\"der\",\"crt\",\"pem\"],\"application/x-xfig\":[\"fig\"],\"application/x-xliff+xml\":[\"*xlf\"],\"application/x-xpinstall\":[\"xpi\"],\"application/x-xz\":[\"xz\"],\"application/x-zmachine\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"],\"audio/vnd.dece.audio\":[\"uva\",\"uvva\"],\"audio/vnd.digital-winds\":[\"eol\"],\"audio/vnd.dra\":[\"dra\"],\"audio/vnd.dts\":[\"dts\"],\"audio/vnd.dts.hd\":[\"dtshd\"],\"audio/vnd.lucent.voice\":[\"lvp\"],\"audio/vnd.ms-playready.media.pya\":[\"pya\"],\"audio/vnd.nuera.ecelp4800\":[\"ecelp4800\"],\"audio/vnd.nuera.ecelp7470\":[\"ecelp7470\"],\"audio/vnd.nuera.ecelp9600\":[\"ecelp9600\"],\"audio/vnd.rip\":[\"rip\"],\"audio/x-aac\":[\"aac\"],\"audio/x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"audio/x-caf\":[\"caf\"],\"audio/x-flac\":[\"flac\"],\"audio/x-m4a\":[\"*m4a\"],\"audio/x-matroska\":[\"mka\"],\"audio/x-mpegurl\":[\"m3u\"],\"audio/x-ms-wax\":[\"wax\"],\"audio/x-ms-wma\":[\"wma\"],\"audio/x-pn-realaudio\":[\"ram\",\"ra\"],\"audio/x-pn-realaudio-plugin\":[\"rmp\"],\"audio/x-realaudio\":[\"*ra\"],\"audio/x-wav\":[\"*wav\"],\"chemical/x-cdx\":[\"cdx\"],\"chemical/x-cif\":[\"cif\"],\"chemical/x-cmdf\":[\"cmdf\"],\"chemical/x-cml\":[\"cml\"],\"chemical/x-csml\":[\"csml\"],\"chemical/x-xyz\":[\"xyz\"],\"image/prs.btif\":[\"btif\"],\"image/prs.pti\":[\"pti\"],\"image/vnd.adobe.photoshop\":[\"psd\"],\"image/vnd.airzip.accelerator.azv\":[\"azv\"],\"image/vnd.dece.graphic\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"],\"image/vnd.djvu\":[\"djvu\",\"djv\"],\"image/vnd.dvb.subtitle\":[\"*sub\"],\"image/vnd.dwg\":[\"dwg\"],\"image/vnd.dxf\":[\"dxf\"],\"image/vnd.fastbidsheet\":[\"fbs\"],\"image/vnd.fpx\":[\"fpx\"],\"image/vnd.fst\":[\"fst\"],\"image/vnd.fujixerox.edmics-mmr\":[\"mmr\"],\"image/vnd.fujixerox.edmics-rlc\":[\"rlc\"],\"image/vnd.microsoft.icon\":[\"ico\"],\"image/vnd.ms-dds\":[\"dds\"],\"image/vnd.ms-modi\":[\"mdi\"],\"image/vnd.ms-photo\":[\"wdp\"],\"image/vnd.net-fpx\":[\"npx\"],\"image/vnd.pco.b16\":[\"b16\"],\"image/vnd.tencent.tap\":[\"tap\"],\"image/vnd.valve.source.texture\":[\"vtf\"],\"image/vnd.wap.wbmp\":[\"wbmp\"],\"image/vnd.xiff\":[\"xif\"],\"image/vnd.zbrush.pcx\":[\"pcx\"],\"image/x-3ds\":[\"3ds\"],\"image/x-cmu-raster\":[\"ras\"],\"image/x-cmx\":[\"cmx\"],\"image/x-freehand\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"],\"image/x-icon\":[\"*ico\"],\"image/x-jng\":[\"jng\"],\"image/x-mrsid-image\":[\"sid\"],\"image/x-ms-bmp\":[\"*bmp\"],\"image/x-pcx\":[\"*pcx\"],\"image/x-pict\":[\"pic\",\"pct\"],\"image/x-portable-anymap\":[\"pnm\"],\"image/x-portable-bitmap\":[\"pbm\"],\"image/x-portable-graymap\":[\"pgm\"],\"image/x-portable-pixmap\":[\"ppm\"],\"image/x-rgb\":[\"rgb\"],\"image/x-tga\":[\"tga\"],\"image/x-xbitmap\":[\"xbm\"],\"image/x-xpixmap\":[\"xpm\"],\"image/x-xwindowdump\":[\"xwd\"],\"message/vnd.wfa.wsc\":[\"wsc\"],\"model/vnd.collada+xml\":[\"dae\"],\"model/vnd.dwf\":[\"dwf\"],\"model/vnd.gdl\":[\"gdl\"],\"model/vnd.gtw\":[\"gtw\"],\"model/vnd.mts\":[\"mts\"],\"model/vnd.opengex\":[\"ogex\"],\"model/vnd.parasolid.transmit.binary\":[\"x_b\"],\"model/vnd.parasolid.transmit.text\":[\"x_t\"],\"model/vnd.sap.vds\":[\"vds\"],\"model/vnd.usdz+zip\":[\"usdz\"],\"model/vnd.valve.source.compiled-map\":[\"bsp\"],\"model/vnd.vtu\":[\"vtu\"],\"text/prs.lines.tag\":[\"dsc\"],\"text/vnd.curl\":[\"curl\"],\"text/vnd.curl.dcurl\":[\"dcurl\"],\"text/vnd.curl.mcurl\":[\"mcurl\"],\"text/vnd.curl.scurl\":[\"scurl\"],\"text/vnd.dvb.subtitle\":[\"sub\"],\"text/vnd.fly\":[\"fly\"],\"text/vnd.fmi.flexstor\":[\"flx\"],\"text/vnd.graphviz\":[\"gv\"],\"text/vnd.in3d.3dml\":[\"3dml\"],\"text/vnd.in3d.spot\":[\"spot\"],\"text/vnd.sun.j2me.app-descriptor\":[\"jad\"],\"text/vnd.wap.wml\":[\"wml\"],\"text/vnd.wap.wmlscript\":[\"wmls\"],\"text/x-asm\":[\"s\",\"asm\"],\"text/x-c\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"],\"text/x-component\":[\"htc\"],\"text/x-fortran\":[\"f\",\"for\",\"f77\",\"f90\"],\"text/x-handlebars-template\":[\"hbs\"],\"text/x-java-source\":[\"java\"],\"text/x-lua\":[\"lua\"],\"text/x-markdown\":[\"mkd\"],\"text/x-nfo\":[\"nfo\"],\"text/x-opml\":[\"opml\"],\"text/x-org\":[\"*org\"],\"text/x-pascal\":[\"p\",\"pas\"],\"text/x-processing\":[\"pde\"],\"text/x-sass\":[\"sass\"],\"text/x-scss\":[\"scss\"],\"text/x-setext\":[\"etx\"],\"text/x-sfv\":[\"sfv\"],\"text/x-suse-ymp\":[\"ymp\"],\"text/x-uuencode\":[\"uu\"],\"text/x-vcalendar\":[\"vcs\"],\"text/x-vcard\":[\"vcf\"],\"video/vnd.dece.hd\":[\"uvh\",\"uvvh\"],\"video/vnd.dece.mobile\":[\"uvm\",\"uvvm\"],\"video/vnd.dece.pd\":[\"uvp\",\"uvvp\"],\"video/vnd.dece.sd\":[\"uvs\",\"uvvs\"],\"video/vnd.dece.video\":[\"uvv\",\"uvvv\"],\"video/vnd.dvb.file\":[\"dvb\"],\"video/vnd.fvt\":[\"fvt\"],\"video/vnd.mpegurl\":[\"mxu\",\"m4u\"],\"video/vnd.ms-playready.media.pyv\":[\"pyv\"],\"video/vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"video/vnd.vivo\":[\"viv\"],\"video/x-f4v\":[\"f4v\"],\"video/x-fli\":[\"fli\"],\"video/x-flv\":[\"flv\"],\"video/x-m4v\":[\"m4v\"],\"video/x-matroska\":[\"mkv\",\"mk3d\",\"mks\"],\"video/x-mng\":[\"mng\"],\"video/x-ms-asf\":[\"asf\",\"asx\"],\"video/x-ms-vob\":[\"vob\"],\"video/x-ms-wm\":[\"wm\"],\"video/x-ms-wmv\":[\"wmv\"],\"video/x-ms-wmx\":[\"wmx\"],\"video/x-ms-wvx\":[\"wvx\"],\"video/x-msvideo\":[\"avi\"],\"video/x-sgi-movie\":[\"movie\"],\"video/x-smv\":[\"smv\"],\"x-conference/x-cooltalk\":[\"ice\"]};","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/**\n * Advanced Encryption Standard (AES) implementation.\n *\n * This implementation is based on the public domain library 'jscrypto' which\n * was written by:\n *\n * Emily Stark (estark@stanford.edu)\n * Mike Hamburg (mhamburg@stanford.edu)\n * Dan Boneh (dabo@cs.stanford.edu)\n *\n * Parts of this code are based on the OpenSSL implementation of AES:\n * http://www.openssl.org\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./cipher');\nrequire('./cipherModes');\nrequire('./util');\n\n/* AES API */\nmodule.exports = forge.aes = forge.aes || {};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('AES-', key);\n * cipher.start({iv: iv});\n *\n * Creates an AES cipher object to encrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as a string of bytes, an array of bytes,\n * a byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.startEncrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: false,\n mode: mode\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('AES-', key);\n *\n * Creates an AES cipher object to encrypt data using the given symmetric key.\n *\n * The key may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.createEncryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: false,\n mode: mode\n });\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('AES-', key);\n * decipher.start({iv: iv});\n *\n * Creates an AES cipher object to decrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as a string of bytes, an array of bytes,\n * a byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.startDecrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: true,\n mode: mode\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('AES-', key);\n *\n * Creates an AES cipher object to decrypt data using the given symmetric key.\n *\n * The key may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.createDecryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: true,\n mode: mode\n });\n};\n\n/**\n * Creates a new AES cipher algorithm object.\n *\n * @param name the name of the algorithm.\n * @param mode the mode factory function.\n *\n * @return the AES algorithm object.\n */\nforge.aes.Algorithm = function(name, mode) {\n if(!init) {\n initialize();\n }\n var self = this;\n self.name = name;\n self.mode = new mode({\n blockSize: 16,\n cipher: {\n encrypt: function(inBlock, outBlock) {\n return _updateBlock(self._w, inBlock, outBlock, false);\n },\n decrypt: function(inBlock, outBlock) {\n return _updateBlock(self._w, inBlock, outBlock, true);\n }\n }\n });\n self._init = false;\n};\n\n/**\n * Initializes this AES algorithm by expanding its key.\n *\n * @param options the options to use.\n * key the key to use with this algorithm.\n * decrypt true if the algorithm should be initialized for decryption,\n * false for encryption.\n */\nforge.aes.Algorithm.prototype.initialize = function(options) {\n if(this._init) {\n return;\n }\n\n var key = options.key;\n var tmp;\n\n /* Note: The key may be a string of bytes, an array of bytes, a byte\n buffer, or an array of 32-bit integers. If the key is in bytes, then\n it must be 16, 24, or 32 bytes in length. If it is in 32-bit\n integers, it must be 4, 6, or 8 integers long. */\n\n if(typeof key === 'string' &&\n (key.length === 16 || key.length === 24 || key.length === 32)) {\n // convert key string into byte buffer\n key = forge.util.createBuffer(key);\n } else if(forge.util.isArray(key) &&\n (key.length === 16 || key.length === 24 || key.length === 32)) {\n // convert key integer array into byte buffer\n tmp = key;\n key = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n key.putByte(tmp[i]);\n }\n }\n\n // convert key byte buffer into 32-bit integer array\n if(!forge.util.isArray(key)) {\n tmp = key;\n key = [];\n\n // key lengths of 16, 24, 32 bytes allowed\n var len = tmp.length();\n if(len === 16 || len === 24 || len === 32) {\n len = len >>> 2;\n for(var i = 0; i < len; ++i) {\n key.push(tmp.getInt32());\n }\n }\n }\n\n // key must be an array of 32-bit integers by now\n if(!forge.util.isArray(key) ||\n !(key.length === 4 || key.length === 6 || key.length === 8)) {\n throw new Error('Invalid key parameter.');\n }\n\n // encryption operation is always used for these modes\n var mode = this.mode.name;\n var encryptOp = (['CFB', 'OFB', 'CTR', 'GCM'].indexOf(mode) !== -1);\n\n // do key expansion\n this._w = _expandKey(key, options.decrypt && !encryptOp);\n this._init = true;\n};\n\n/**\n * Expands a key. Typically only used for testing.\n *\n * @param key the symmetric key to expand, as an array of 32-bit words.\n * @param decrypt true to expand for decryption, false for encryption.\n *\n * @return the expanded key.\n */\nforge.aes._expandKey = function(key, decrypt) {\n if(!init) {\n initialize();\n }\n return _expandKey(key, decrypt);\n};\n\n/**\n * Updates a single block. Typically only used for testing.\n *\n * @param w the expanded key to use.\n * @param input an array of block-size 32-bit words.\n * @param output an array of block-size 32-bit words.\n * @param decrypt true to decrypt, false to encrypt.\n */\nforge.aes._updateBlock = _updateBlock;\n\n/** Register AES algorithms **/\n\nregisterAlgorithm('AES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('AES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('AES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('AES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('AES-CTR', forge.cipher.modes.ctr);\nregisterAlgorithm('AES-GCM', forge.cipher.modes.gcm);\n\nfunction registerAlgorithm(name, mode) {\n var factory = function() {\n return new forge.aes.Algorithm(name, mode);\n };\n forge.cipher.registerAlgorithm(name, factory);\n}\n\n/** AES implementation **/\n\nvar init = false; // not yet initialized\nvar Nb = 4; // number of words comprising the state (AES = 4)\nvar sbox; // non-linear substitution table used in key expansion\nvar isbox; // inversion of sbox\nvar rcon; // round constant word array\nvar mix; // mix-columns table\nvar imix; // inverse mix-columns table\n\n/**\n * Performs initialization, ie: precomputes tables to optimize for speed.\n *\n * One way to understand how AES works is to imagine that 'addition' and\n * 'multiplication' are interfaces that require certain mathematical\n * properties to hold true (ie: they are associative) but they might have\n * different implementations and produce different kinds of results ...\n * provided that their mathematical properties remain true. AES defines\n * its own methods of addition and multiplication but keeps some important\n * properties the same, ie: associativity and distributivity. The\n * explanation below tries to shed some light on how AES defines addition\n * and multiplication of bytes and 32-bit words in order to perform its\n * encryption and decryption algorithms.\n *\n * The basics:\n *\n * The AES algorithm views bytes as binary representations of polynomials\n * that have either 1 or 0 as the coefficients. It defines the addition\n * or subtraction of two bytes as the XOR operation. It also defines the\n * multiplication of two bytes as a finite field referred to as GF(2^8)\n * (Note: 'GF' means \"Galois Field\" which is a field that contains a finite\n * number of elements so GF(2^8) has 256 elements).\n *\n * This means that any two bytes can be represented as binary polynomials;\n * when they multiplied together and modularly reduced by an irreducible\n * polynomial of the 8th degree, the results are the field GF(2^8). The\n * specific irreducible polynomial that AES uses in hexadecimal is 0x11b.\n * This multiplication is associative with 0x01 as the identity:\n *\n * (b * 0x01 = GF(b, 0x01) = b).\n *\n * The operation GF(b, 0x02) can be performed at the byte level by left\n * shifting b once and then XOR'ing it (to perform the modular reduction)\n * with 0x11b if b is >= 128. Repeated application of the multiplication\n * of 0x02 can be used to implement the multiplication of any two bytes.\n *\n * For instance, multiplying 0x57 and 0x13, denoted as GF(0x57, 0x13), can\n * be performed by factoring 0x13 into 0x01, 0x02, and 0x10. Then these\n * factors can each be multiplied by 0x57 and then added together. To do\n * the multiplication, values for 0x57 multiplied by each of these 3 factors\n * can be precomputed and stored in a table. To add them, the values from\n * the table are XOR'd together.\n *\n * AES also defines addition and multiplication of words, that is 4-byte\n * numbers represented as polynomials of 3 degrees where the coefficients\n * are the values of the bytes.\n *\n * The word [a0, a1, a2, a3] is a polynomial a3x^3 + a2x^2 + a1x + a0.\n *\n * Addition is performed by XOR'ing like powers of x. Multiplication\n * is performed in two steps, the first is an algebriac expansion as\n * you would do normally (where addition is XOR). But the result is\n * a polynomial larger than 3 degrees and thus it cannot fit in a word. So\n * next the result is modularly reduced by an AES-specific polynomial of\n * degree 4 which will always produce a polynomial of less than 4 degrees\n * such that it will fit in a word. In AES, this polynomial is x^4 + 1.\n *\n * The modular product of two polynomials 'a' and 'b' is thus:\n *\n * d(x) = d3x^3 + d2x^2 + d1x + d0\n * with\n * d0 = GF(a0, b0) ^ GF(a3, b1) ^ GF(a2, b2) ^ GF(a1, b3)\n * d1 = GF(a1, b0) ^ GF(a0, b1) ^ GF(a3, b2) ^ GF(a2, b3)\n * d2 = GF(a2, b0) ^ GF(a1, b1) ^ GF(a0, b2) ^ GF(a3, b3)\n * d3 = GF(a3, b0) ^ GF(a2, b1) ^ GF(a1, b2) ^ GF(a0, b3)\n *\n * As a matrix:\n *\n * [d0] = [a0 a3 a2 a1][b0]\n * [d1] [a1 a0 a3 a2][b1]\n * [d2] [a2 a1 a0 a3][b2]\n * [d3] [a3 a2 a1 a0][b3]\n *\n * Special polynomials defined by AES (0x02 == {02}):\n * a(x) = {03}x^3 + {01}x^2 + {01}x + {02}\n * a^-1(x) = {0b}x^3 + {0d}x^2 + {09}x + {0e}.\n *\n * These polynomials are used in the MixColumns() and InverseMixColumns()\n * operations, respectively, to cause each element in the state to affect\n * the output (referred to as diffusing).\n *\n * RotWord() uses: a0 = a1 = a2 = {00} and a3 = {01}, which is the\n * polynomial x3.\n *\n * The ShiftRows() method modifies the last 3 rows in the state (where\n * the state is 4 words with 4 bytes per word) by shifting bytes cyclically.\n * The 1st byte in the second row is moved to the end of the row. The 1st\n * and 2nd bytes in the third row are moved to the end of the row. The 1st,\n * 2nd, and 3rd bytes are moved in the fourth row.\n *\n * More details on how AES arithmetic works:\n *\n * In the polynomial representation of binary numbers, XOR performs addition\n * and subtraction and multiplication in GF(2^8) denoted as GF(a, b)\n * corresponds with the multiplication of polynomials modulo an irreducible\n * polynomial of degree 8. In other words, for AES, GF(a, b) will multiply\n * polynomial 'a' with polynomial 'b' and then do a modular reduction by\n * an AES-specific irreducible polynomial of degree 8.\n *\n * A polynomial is irreducible if its only divisors are one and itself. For\n * the AES algorithm, this irreducible polynomial is:\n *\n * m(x) = x^8 + x^4 + x^3 + x + 1,\n *\n * or {01}{1b} in hexadecimal notation, where each coefficient is a bit:\n * 100011011 = 283 = 0x11b.\n *\n * For example, GF(0x57, 0x83) = 0xc1 because\n *\n * 0x57 = 87 = 01010111 = x^6 + x^4 + x^2 + x + 1\n * 0x85 = 131 = 10000101 = x^7 + x + 1\n *\n * (x^6 + x^4 + x^2 + x + 1) * (x^7 + x + 1)\n * = x^13 + x^11 + x^9 + x^8 + x^7 +\n * x^7 + x^5 + x^3 + x^2 + x +\n * x^6 + x^4 + x^2 + x + 1\n * = x^13 + x^11 + x^9 + x^8 + x^6 + x^5 + x^4 + x^3 + 1 = y\n * y modulo (x^8 + x^4 + x^3 + x + 1)\n * = x^7 + x^6 + 1.\n *\n * The modular reduction by m(x) guarantees the result will be a binary\n * polynomial of less than degree 8, so that it can fit in a byte.\n *\n * The operation to multiply a binary polynomial b with x (the polynomial\n * x in binary representation is 00000010) is:\n *\n * b_7x^8 + b_6x^7 + b_5x^6 + b_4x^5 + b_3x^4 + b_2x^3 + b_1x^2 + b_0x^1\n *\n * To get GF(b, x) we must reduce that by m(x). If b_7 is 0 (that is the\n * most significant bit is 0 in b) then the result is already reduced. If\n * it is 1, then we can reduce it by subtracting m(x) via an XOR.\n *\n * It follows that multiplication by x (00000010 or 0x02) can be implemented\n * by performing a left shift followed by a conditional bitwise XOR with\n * 0x1b. This operation on bytes is denoted by xtime(). Multiplication by\n * higher powers of x can be implemented by repeated application of xtime().\n *\n * By adding intermediate results, multiplication by any constant can be\n * implemented. For instance:\n *\n * GF(0x57, 0x13) = 0xfe because:\n *\n * xtime(b) = (b & 128) ? (b << 1 ^ 0x11b) : (b << 1)\n *\n * Note: We XOR with 0x11b instead of 0x1b because in javascript our\n * datatype for b can be larger than 1 byte, so a left shift will not\n * automatically eliminate bits that overflow a byte ... by XOR'ing the\n * overflow bit with 1 (the extra one from 0x11b) we zero it out.\n *\n * GF(0x57, 0x02) = xtime(0x57) = 0xae\n * GF(0x57, 0x04) = xtime(0xae) = 0x47\n * GF(0x57, 0x08) = xtime(0x47) = 0x8e\n * GF(0x57, 0x10) = xtime(0x8e) = 0x07\n *\n * GF(0x57, 0x13) = GF(0x57, (0x01 ^ 0x02 ^ 0x10))\n *\n * And by the distributive property (since XOR is addition and GF() is\n * multiplication):\n *\n * = GF(0x57, 0x01) ^ GF(0x57, 0x02) ^ GF(0x57, 0x10)\n * = 0x57 ^ 0xae ^ 0x07\n * = 0xfe.\n */\nfunction initialize() {\n init = true;\n\n /* Populate the Rcon table. These are the values given by\n [x^(i-1),{00},{00},{00}] where x^(i-1) are powers of x (and x = 0x02)\n in the field of GF(2^8), where i starts at 1.\n\n rcon[0] = [0x00, 0x00, 0x00, 0x00]\n rcon[1] = [0x01, 0x00, 0x00, 0x00] 2^(1-1) = 2^0 = 1\n rcon[2] = [0x02, 0x00, 0x00, 0x00] 2^(2-1) = 2^1 = 2\n ...\n rcon[9] = [0x1B, 0x00, 0x00, 0x00] 2^(9-1) = 2^8 = 0x1B\n rcon[10] = [0x36, 0x00, 0x00, 0x00] 2^(10-1) = 2^9 = 0x36\n\n We only store the first byte because it is the only one used.\n */\n rcon = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36];\n\n // compute xtime table which maps i onto GF(i, 0x02)\n var xtime = new Array(256);\n for(var i = 0; i < 128; ++i) {\n xtime[i] = i << 1;\n xtime[i + 128] = (i + 128) << 1 ^ 0x11B;\n }\n\n // compute all other tables\n sbox = new Array(256);\n isbox = new Array(256);\n mix = new Array(4);\n imix = new Array(4);\n for(var i = 0; i < 4; ++i) {\n mix[i] = new Array(256);\n imix[i] = new Array(256);\n }\n var e = 0, ei = 0, e2, e4, e8, sx, sx2, me, ime;\n for(var i = 0; i < 256; ++i) {\n /* We need to generate the SubBytes() sbox and isbox tables so that\n we can perform byte substitutions. This requires us to traverse\n all of the elements in GF, find their multiplicative inverses,\n and apply to each the following affine transformation:\n\n bi' = bi ^ b(i + 4) mod 8 ^ b(i + 5) mod 8 ^ b(i + 6) mod 8 ^\n b(i + 7) mod 8 ^ ci\n for 0 <= i < 8, where bi is the ith bit of the byte, and ci is the\n ith bit of a byte c with the value {63} or {01100011}.\n\n It is possible to traverse every possible value in a Galois field\n using what is referred to as a 'generator'. There are many\n generators (128 out of 256): 3,5,6,9,11,82 to name a few. To fully\n traverse GF we iterate 255 times, multiplying by our generator\n each time.\n\n On each iteration we can determine the multiplicative inverse for\n the current element.\n\n Suppose there is an element in GF 'e'. For a given generator 'g',\n e = g^x. The multiplicative inverse of e is g^(255 - x). It turns\n out that if use the inverse of a generator as another generator\n it will produce all of the corresponding multiplicative inverses\n at the same time. For this reason, we choose 5 as our inverse\n generator because it only requires 2 multiplies and 1 add and its\n inverse, 82, requires relatively few operations as well.\n\n In order to apply the affine transformation, the multiplicative\n inverse 'ei' of 'e' can be repeatedly XOR'd (4 times) with a\n bit-cycling of 'ei'. To do this 'ei' is first stored in 's' and\n 'x'. Then 's' is left shifted and the high bit of 's' is made the\n low bit. The resulting value is stored in 's'. Then 'x' is XOR'd\n with 's' and stored in 'x'. On each subsequent iteration the same\n operation is performed. When 4 iterations are complete, 'x' is\n XOR'd with 'c' (0x63) and the transformed value is stored in 'x'.\n For example:\n\n s = 01000001\n x = 01000001\n\n iteration 1: s = 10000010, x ^= s\n iteration 2: s = 00000101, x ^= s\n iteration 3: s = 00001010, x ^= s\n iteration 4: s = 00010100, x ^= s\n x ^= 0x63\n\n This can be done with a loop where s = (s << 1) | (s >> 7). However,\n it can also be done by using a single 16-bit (in this case 32-bit)\n number 'sx'. Since XOR is an associative operation, we can set 'sx'\n to 'ei' and then XOR it with 'sx' left-shifted 1,2,3, and 4 times.\n The most significant bits will flow into the high 8 bit positions\n and be correctly XOR'd with one another. All that remains will be\n to cycle the high 8 bits by XOR'ing them all with the lower 8 bits\n afterwards.\n\n At the same time we're populating sbox and isbox we can precompute\n the multiplication we'll need to do to do MixColumns() later.\n */\n\n // apply affine transformation\n sx = ei ^ (ei << 1) ^ (ei << 2) ^ (ei << 3) ^ (ei << 4);\n sx = (sx >> 8) ^ (sx & 255) ^ 0x63;\n\n // update tables\n sbox[e] = sx;\n isbox[sx] = e;\n\n /* Mixing columns is done using matrix multiplication. The columns\n that are to be mixed are each a single word in the current state.\n The state has Nb columns (4 columns). Therefore each column is a\n 4 byte word. So to mix the columns in a single column 'c' where\n its rows are r0, r1, r2, and r3, we use the following matrix\n multiplication:\n\n [2 3 1 1]*[r0,c]=[r'0,c]\n [1 2 3 1] [r1,c] [r'1,c]\n [1 1 2 3] [r2,c] [r'2,c]\n [3 1 1 2] [r3,c] [r'3,c]\n\n r0, r1, r2, and r3 are each 1 byte of one of the words in the\n state (a column). To do matrix multiplication for each mixed\n column c' we multiply the corresponding row from the left matrix\n with the corresponding column from the right matrix. In total, we\n get 4 equations:\n\n r0,c' = 2*r0,c + 3*r1,c + 1*r2,c + 1*r3,c\n r1,c' = 1*r0,c + 2*r1,c + 3*r2,c + 1*r3,c\n r2,c' = 1*r0,c + 1*r1,c + 2*r2,c + 3*r3,c\n r3,c' = 3*r0,c + 1*r1,c + 1*r2,c + 2*r3,c\n\n As usual, the multiplication is as previously defined and the\n addition is XOR. In order to optimize mixing columns we can store\n the multiplication results in tables. If you think of the whole\n column as a word (it might help to visualize by mentally rotating\n the equations above by counterclockwise 90 degrees) then you can\n see that it would be useful to map the multiplications performed on\n each byte (r0, r1, r2, r3) onto a word as well. For instance, we\n could map 2*r0,1*r0,1*r0,3*r0 onto a word by storing 2*r0 in the\n highest 8 bits and 3*r0 in the lowest 8 bits (with the other two\n respectively in the middle). This means that a table can be\n constructed that uses r0 as an index to the word. We can do the\n same with r1, r2, and r3, creating a total of 4 tables.\n\n To construct a full c', we can just look up each byte of c in\n their respective tables and XOR the results together.\n\n Also, to build each table we only have to calculate the word\n for 2,1,1,3 for every byte ... which we can do on each iteration\n of this loop since we will iterate over every byte. After we have\n calculated 2,1,1,3 we can get the results for the other tables\n by cycling the byte at the end to the beginning. For instance\n we can take the result of table 2,1,1,3 and produce table 3,2,1,1\n by moving the right most byte to the left most position just like\n how you can imagine the 3 moved out of 2,1,1,3 and to the front\n to produce 3,2,1,1.\n\n There is another optimization in that the same multiples of\n the current element we need in order to advance our generator\n to the next iteration can be reused in performing the 2,1,1,3\n calculation. We also calculate the inverse mix column tables,\n with e,9,d,b being the inverse of 2,1,1,3.\n\n When we're done, and we need to actually mix columns, the first\n byte of each state word should be put through mix[0] (2,1,1,3),\n the second through mix[1] (3,2,1,1) and so forth. Then they should\n be XOR'd together to produce the fully mixed column.\n */\n\n // calculate mix and imix table values\n sx2 = xtime[sx];\n e2 = xtime[e];\n e4 = xtime[e2];\n e8 = xtime[e4];\n me =\n (sx2 << 24) ^ // 2\n (sx << 16) ^ // 1\n (sx << 8) ^ // 1\n (sx ^ sx2); // 3\n ime =\n (e2 ^ e4 ^ e8) << 24 ^ // E (14)\n (e ^ e8) << 16 ^ // 9\n (e ^ e4 ^ e8) << 8 ^ // D (13)\n (e ^ e2 ^ e8); // B (11)\n // produce each of the mix tables by rotating the 2,1,1,3 value\n for(var n = 0; n < 4; ++n) {\n mix[n][e] = me;\n imix[n][sx] = ime;\n // cycle the right most byte to the left most position\n // ie: 2,1,1,3 becomes 3,2,1,1\n me = me << 24 | me >>> 8;\n ime = ime << 24 | ime >>> 8;\n }\n\n // get next element and inverse\n if(e === 0) {\n // 1 is the inverse of 1\n e = ei = 1;\n } else {\n // e = 2e + 2*2*2*(10e)) = multiply e by 82 (chosen generator)\n // ei = ei + 2*2*ei = multiply ei by 5 (inverse generator)\n e = e2 ^ xtime[xtime[xtime[e2 ^ e8]]];\n ei ^= xtime[xtime[ei]];\n }\n }\n}\n\n/**\n * Generates a key schedule using the AES key expansion algorithm.\n *\n * The AES algorithm takes the Cipher Key, K, and performs a Key Expansion\n * routine to generate a key schedule. The Key Expansion generates a total\n * of Nb*(Nr + 1) words: the algorithm requires an initial set of Nb words,\n * and each of the Nr rounds requires Nb words of key data. The resulting\n * key schedule consists of a linear array of 4-byte words, denoted [wi ],\n * with i in the range 0 <= i < Nb(Nr + 1).\n *\n * KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)\n * AES-128 (Nb=4, Nk=4, Nr=10)\n * AES-192 (Nb=4, Nk=6, Nr=12)\n * AES-256 (Nb=4, Nk=8, Nr=14)\n * Note: Nr=Nk+6.\n *\n * Nb is the number of columns (32-bit words) comprising the State (or\n * number of bytes in a block). For AES, Nb=4.\n *\n * @param key the key to schedule (as an array of 32-bit words).\n * @param decrypt true to modify the key schedule to decrypt, false not to.\n *\n * @return the generated key schedule.\n */\nfunction _expandKey(key, decrypt) {\n // copy the key's words to initialize the key schedule\n var w = key.slice(0);\n\n /* RotWord() will rotate a word, moving the first byte to the last\n byte's position (shifting the other bytes left).\n\n We will be getting the value of Rcon at i / Nk. 'i' will iterate\n from Nk to (Nb * Nr+1). Nk = 4 (4 byte key), Nb = 4 (4 words in\n a block), Nr = Nk + 6 (10). Therefore 'i' will iterate from\n 4 to 44 (exclusive). Each time we iterate 4 times, i / Nk will\n increase by 1. We use a counter iNk to keep track of this.\n */\n\n // go through the rounds expanding the key\n var temp, iNk = 1;\n var Nk = w.length;\n var Nr1 = Nk + 6 + 1;\n var end = Nb * Nr1;\n for(var i = Nk; i < end; ++i) {\n temp = w[i - 1];\n if(i % Nk === 0) {\n // temp = SubWord(RotWord(temp)) ^ Rcon[i / Nk]\n temp =\n sbox[temp >>> 16 & 255] << 24 ^\n sbox[temp >>> 8 & 255] << 16 ^\n sbox[temp & 255] << 8 ^\n sbox[temp >>> 24] ^ (rcon[iNk] << 24);\n iNk++;\n } else if(Nk > 6 && (i % Nk === 4)) {\n // temp = SubWord(temp)\n temp =\n sbox[temp >>> 24] << 24 ^\n sbox[temp >>> 16 & 255] << 16 ^\n sbox[temp >>> 8 & 255] << 8 ^\n sbox[temp & 255];\n }\n w[i] = w[i - Nk] ^ temp;\n }\n\n /* When we are updating a cipher block we always use the code path for\n encryption whether we are decrypting or not (to shorten code and\n simplify the generation of look up tables). However, because there\n are differences in the decryption algorithm, other than just swapping\n in different look up tables, we must transform our key schedule to\n account for these changes:\n\n 1. The decryption algorithm gets its key rounds in reverse order.\n 2. The decryption algorithm adds the round key before mixing columns\n instead of afterwards.\n\n We don't need to modify our key schedule to handle the first case,\n we can just traverse the key schedule in reverse order when decrypting.\n\n The second case requires a little work.\n\n The tables we built for performing rounds will take an input and then\n perform SubBytes() and MixColumns() or, for the decrypt version,\n InvSubBytes() and InvMixColumns(). But the decrypt algorithm requires\n us to AddRoundKey() before InvMixColumns(). This means we'll need to\n apply some transformations to the round key to inverse-mix its columns\n so they'll be correct for moving AddRoundKey() to after the state has\n had its columns inverse-mixed.\n\n To inverse-mix the columns of the state when we're decrypting we use a\n lookup table that will apply InvSubBytes() and InvMixColumns() at the\n same time. However, the round key's bytes are not inverse-substituted\n in the decryption algorithm. To get around this problem, we can first\n substitute the bytes in the round key so that when we apply the\n transformation via the InvSubBytes()+InvMixColumns() table, it will\n undo our substitution leaving us with the original value that we\n want -- and then inverse-mix that value.\n\n This change will correctly alter our key schedule so that we can XOR\n each round key with our already transformed decryption state. This\n allows us to use the same code path as the encryption algorithm.\n\n We make one more change to the decryption key. Since the decryption\n algorithm runs in reverse from the encryption algorithm, we reverse\n the order of the round keys to avoid having to iterate over the key\n schedule backwards when running the encryption algorithm later in\n decryption mode. In addition to reversing the order of the round keys,\n we also swap each round key's 2nd and 4th rows. See the comments\n section where rounds are performed for more details about why this is\n done. These changes are done inline with the other substitution\n described above.\n */\n if(decrypt) {\n var tmp;\n var m0 = imix[0];\n var m1 = imix[1];\n var m2 = imix[2];\n var m3 = imix[3];\n var wnew = w.slice(0);\n end = w.length;\n for(var i = 0, wi = end - Nb; i < end; i += Nb, wi -= Nb) {\n // do not sub the first or last round key (round keys are Nb\n // words) as no column mixing is performed before they are added,\n // but do change the key order\n if(i === 0 || i === (end - Nb)) {\n wnew[i] = w[wi];\n wnew[i + 1] = w[wi + 3];\n wnew[i + 2] = w[wi + 2];\n wnew[i + 3] = w[wi + 1];\n } else {\n // substitute each round key byte because the inverse-mix\n // table will inverse-substitute it (effectively cancel the\n // substitution because round key bytes aren't sub'd in\n // decryption mode) and swap indexes 3 and 1\n for(var n = 0; n < Nb; ++n) {\n tmp = w[wi + n];\n wnew[i + (3&-n)] =\n m0[sbox[tmp >>> 24]] ^\n m1[sbox[tmp >>> 16 & 255]] ^\n m2[sbox[tmp >>> 8 & 255]] ^\n m3[sbox[tmp & 255]];\n }\n }\n }\n w = wnew;\n }\n\n return w;\n}\n\n/**\n * Updates a single block (16 bytes) using AES. The update will either\n * encrypt or decrypt the block.\n *\n * @param w the key schedule.\n * @param input the input block (an array of 32-bit words).\n * @param output the updated output block.\n * @param decrypt true to decrypt the block, false to encrypt it.\n */\nfunction _updateBlock(w, input, output, decrypt) {\n /*\n Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])\n begin\n byte state[4,Nb]\n state = in\n AddRoundKey(state, w[0, Nb-1])\n for round = 1 step 1 to Nr-1\n SubBytes(state)\n ShiftRows(state)\n MixColumns(state)\n AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])\n end for\n SubBytes(state)\n ShiftRows(state)\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n out = state\n end\n\n InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])\n begin\n byte state[4,Nb]\n state = in\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n for round = Nr-1 step -1 downto 1\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])\n InvMixColumns(state)\n end for\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[0, Nb-1])\n out = state\n end\n */\n\n // Encrypt: AddRoundKey(state, w[0, Nb-1])\n // Decrypt: AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n var Nr = w.length / 4 - 1;\n var m0, m1, m2, m3, sub;\n if(decrypt) {\n m0 = imix[0];\n m1 = imix[1];\n m2 = imix[2];\n m3 = imix[3];\n sub = isbox;\n } else {\n m0 = mix[0];\n m1 = mix[1];\n m2 = mix[2];\n m3 = mix[3];\n sub = sbox;\n }\n var a, b, c, d, a2, b2, c2;\n a = input[0] ^ w[0];\n b = input[decrypt ? 3 : 1] ^ w[1];\n c = input[2] ^ w[2];\n d = input[decrypt ? 1 : 3] ^ w[3];\n var i = 3;\n\n /* In order to share code we follow the encryption algorithm when both\n encrypting and decrypting. To account for the changes required in the\n decryption algorithm, we use different lookup tables when decrypting\n and use a modified key schedule to account for the difference in the\n order of transformations applied when performing rounds. We also get\n key rounds in reverse order (relative to encryption). */\n for(var round = 1; round < Nr; ++round) {\n /* As described above, we'll be using table lookups to perform the\n column mixing. Each column is stored as a word in the state (the\n array 'input' has one column as a word at each index). In order to\n mix a column, we perform these transformations on each row in c,\n which is 1 byte in each word. The new column for c0 is c'0:\n\n m0 m1 m2 m3\n r0,c'0 = 2*r0,c0 + 3*r1,c0 + 1*r2,c0 + 1*r3,c0\n r1,c'0 = 1*r0,c0 + 2*r1,c0 + 3*r2,c0 + 1*r3,c0\n r2,c'0 = 1*r0,c0 + 1*r1,c0 + 2*r2,c0 + 3*r3,c0\n r3,c'0 = 3*r0,c0 + 1*r1,c0 + 1*r2,c0 + 2*r3,c0\n\n So using mix tables where c0 is a word with r0 being its upper\n 8 bits and r3 being its lower 8 bits:\n\n m0[c0 >> 24] will yield this word: [2*r0,1*r0,1*r0,3*r0]\n ...\n m3[c0 & 255] will yield this word: [1*r3,1*r3,3*r3,2*r3]\n\n Therefore to mix the columns in each word in the state we\n do the following (& 255 omitted for brevity):\n c'0,r0 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r1 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r2 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r3 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n\n However, before mixing, the algorithm requires us to perform\n ShiftRows(). The ShiftRows() transformation cyclically shifts the\n last 3 rows of the state over different offsets. The first row\n (r = 0) is not shifted.\n\n s'_r,c = s_r,(c + shift(r, Nb) mod Nb\n for 0 < r < 4 and 0 <= c < Nb and\n shift(1, 4) = 1\n shift(2, 4) = 2\n shift(3, 4) = 3.\n\n This causes the first byte in r = 1 to be moved to the end of\n the row, the first 2 bytes in r = 2 to be moved to the end of\n the row, the first 3 bytes in r = 3 to be moved to the end of\n the row:\n\n r1: [c0 c1 c2 c3] => [c1 c2 c3 c0]\n r2: [c0 c1 c2 c3] [c2 c3 c0 c1]\n r3: [c0 c1 c2 c3] [c3 c0 c1 c2]\n\n We can make these substitutions inline with our column mixing to\n generate an updated set of equations to produce each word in the\n state (note the columns have changed positions):\n\n c0 c1 c2 c3 => c0 c1 c2 c3\n c0 c1 c2 c3 c1 c2 c3 c0 (cycled 1 byte)\n c0 c1 c2 c3 c2 c3 c0 c1 (cycled 2 bytes)\n c0 c1 c2 c3 c3 c0 c1 c2 (cycled 3 bytes)\n\n Therefore:\n\n c'0 = 2*r0,c0 + 3*r1,c1 + 1*r2,c2 + 1*r3,c3\n c'0 = 1*r0,c0 + 2*r1,c1 + 3*r2,c2 + 1*r3,c3\n c'0 = 1*r0,c0 + 1*r1,c1 + 2*r2,c2 + 3*r3,c3\n c'0 = 3*r0,c0 + 1*r1,c1 + 1*r2,c2 + 2*r3,c3\n\n c'1 = 2*r0,c1 + 3*r1,c2 + 1*r2,c3 + 1*r3,c0\n c'1 = 1*r0,c1 + 2*r1,c2 + 3*r2,c3 + 1*r3,c0\n c'1 = 1*r0,c1 + 1*r1,c2 + 2*r2,c3 + 3*r3,c0\n c'1 = 3*r0,c1 + 1*r1,c2 + 1*r2,c3 + 2*r3,c0\n\n ... and so forth for c'2 and c'3. The important distinction is\n that the columns are cycling, with c0 being used with the m0\n map when calculating c0, but c1 being used with the m0 map when\n calculating c1 ... and so forth.\n\n When performing the inverse we transform the mirror image and\n skip the bottom row, instead of the top one, and move upwards:\n\n c3 c2 c1 c0 => c0 c3 c2 c1 (cycled 3 bytes) *same as encryption\n c3 c2 c1 c0 c1 c0 c3 c2 (cycled 2 bytes)\n c3 c2 c1 c0 c2 c1 c0 c3 (cycled 1 byte) *same as encryption\n c3 c2 c1 c0 c3 c2 c1 c0\n\n If you compare the resulting matrices for ShiftRows()+MixColumns()\n and for InvShiftRows()+InvMixColumns() the 2nd and 4th columns are\n different (in encrypt mode vs. decrypt mode). So in order to use\n the same code to handle both encryption and decryption, we will\n need to do some mapping.\n\n If in encryption mode we let a=c0, b=c1, c=c2, d=c3, and r be\n a row number in the state, then the resulting matrix in encryption\n mode for applying the above transformations would be:\n\n r1: a b c d\n r2: b c d a\n r3: c d a b\n r4: d a b c\n\n If we did the same in decryption mode we would get:\n\n r1: a d c b\n r2: b a d c\n r3: c b a d\n r4: d c b a\n\n If instead we swap d and b (set b=c3 and d=c1), then we get:\n\n r1: a b c d\n r2: d a b c\n r3: c d a b\n r4: b c d a\n\n Now the 1st and 3rd rows are the same as the encryption matrix. All\n we need to do then to make the mapping exactly the same is to swap\n the 2nd and 4th rows when in decryption mode. To do this without\n having to do it on each iteration, we swapped the 2nd and 4th rows\n in the decryption key schedule. We also have to do the swap above\n when we first pull in the input and when we set the final output. */\n a2 =\n m0[a >>> 24] ^\n m1[b >>> 16 & 255] ^\n m2[c >>> 8 & 255] ^\n m3[d & 255] ^ w[++i];\n b2 =\n m0[b >>> 24] ^\n m1[c >>> 16 & 255] ^\n m2[d >>> 8 & 255] ^\n m3[a & 255] ^ w[++i];\n c2 =\n m0[c >>> 24] ^\n m1[d >>> 16 & 255] ^\n m2[a >>> 8 & 255] ^\n m3[b & 255] ^ w[++i];\n d =\n m0[d >>> 24] ^\n m1[a >>> 16 & 255] ^\n m2[b >>> 8 & 255] ^\n m3[c & 255] ^ w[++i];\n a = a2;\n b = b2;\n c = c2;\n }\n\n /*\n Encrypt:\n SubBytes(state)\n ShiftRows(state)\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n\n Decrypt:\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[0, Nb-1])\n */\n // Note: rows are shifted inline\n output[0] =\n (sub[a >>> 24] << 24) ^\n (sub[b >>> 16 & 255] << 16) ^\n (sub[c >>> 8 & 255] << 8) ^\n (sub[d & 255]) ^ w[++i];\n output[decrypt ? 3 : 1] =\n (sub[b >>> 24] << 24) ^\n (sub[c >>> 16 & 255] << 16) ^\n (sub[d >>> 8 & 255] << 8) ^\n (sub[a & 255]) ^ w[++i];\n output[2] =\n (sub[c >>> 24] << 24) ^\n (sub[d >>> 16 & 255] << 16) ^\n (sub[a >>> 8 & 255] << 8) ^\n (sub[b & 255]) ^ w[++i];\n output[decrypt ? 1 : 3] =\n (sub[d >>> 24] << 24) ^\n (sub[a >>> 16 & 255] << 16) ^\n (sub[b >>> 8 & 255] << 8) ^\n (sub[c & 255]) ^ w[++i];\n}\n\n/**\n * Deprecated. Instead, use:\n *\n * forge.cipher.createCipher('AES-', key);\n * forge.cipher.createDecipher('AES-', key);\n *\n * Creates a deprecated AES cipher object. This object's mode will default to\n * CBC (cipher-block-chaining).\n *\n * The key and iv may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param options the options to use.\n * key the symmetric key to use.\n * output the buffer to write to.\n * decrypt true for decryption, false for encryption.\n * mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nfunction _createCipher(options) {\n options = options || {};\n var mode = (options.mode || 'CBC').toUpperCase();\n var algorithm = 'AES-' + mode;\n\n var cipher;\n if(options.decrypt) {\n cipher = forge.cipher.createDecipher(algorithm, options.key);\n } else {\n cipher = forge.cipher.createCipher(algorithm, options.key);\n }\n\n // backwards compatible start API\n var start = cipher.start;\n cipher.start = function(iv, options) {\n // backwards compatibility: support second arg as output buffer\n var output = null;\n if(options instanceof forge.util.ByteBuffer) {\n output = options;\n options = {};\n }\n options = options || {};\n options.output = output;\n options.iv = iv;\n start.call(cipher, options);\n };\n\n return cipher;\n}\n","/**\n * A Javascript implementation of AES Cipher Suites for TLS.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2015 Digital Bazaar, Inc.\n *\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./tls');\n\nvar tls = module.exports = forge.tls;\n\n/**\n * Supported cipher suites.\n */\ntls.CipherSuites['TLS_RSA_WITH_AES_128_CBC_SHA'] = {\n id: [0x00, 0x2f],\n name: 'TLS_RSA_WITH_AES_128_CBC_SHA',\n initSecurityParameters: function(sp) {\n sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes;\n sp.cipher_type = tls.CipherType.block;\n sp.enc_key_length = 16;\n sp.block_length = 16;\n sp.fixed_iv_length = 16;\n sp.record_iv_length = 16;\n sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1;\n sp.mac_length = 20;\n sp.mac_key_length = 20;\n },\n initConnectionState: initConnectionState\n};\ntls.CipherSuites['TLS_RSA_WITH_AES_256_CBC_SHA'] = {\n id: [0x00, 0x35],\n name: 'TLS_RSA_WITH_AES_256_CBC_SHA',\n initSecurityParameters: function(sp) {\n sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes;\n sp.cipher_type = tls.CipherType.block;\n sp.enc_key_length = 32;\n sp.block_length = 16;\n sp.fixed_iv_length = 16;\n sp.record_iv_length = 16;\n sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1;\n sp.mac_length = 20;\n sp.mac_key_length = 20;\n },\n initConnectionState: initConnectionState\n};\n\nfunction initConnectionState(state, c, sp) {\n var client = (c.entity === forge.tls.ConnectionEnd.client);\n\n // cipher setup\n state.read.cipherState = {\n init: false,\n cipher: forge.cipher.createDecipher('AES-CBC', client ?\n sp.keys.server_write_key : sp.keys.client_write_key),\n iv: client ? sp.keys.server_write_IV : sp.keys.client_write_IV\n };\n state.write.cipherState = {\n init: false,\n cipher: forge.cipher.createCipher('AES-CBC', client ?\n sp.keys.client_write_key : sp.keys.server_write_key),\n iv: client ? sp.keys.client_write_IV : sp.keys.server_write_IV\n };\n state.read.cipherFunction = decrypt_aes_cbc_sha1;\n state.write.cipherFunction = encrypt_aes_cbc_sha1;\n\n // MAC setup\n state.read.macLength = state.write.macLength = sp.mac_length;\n state.read.macFunction = state.write.macFunction = tls.hmac_sha1;\n}\n\n/**\n * Encrypts the TLSCompressed record into a TLSCipherText record using AES\n * in CBC mode.\n *\n * @param record the TLSCompressed record to encrypt.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nfunction encrypt_aes_cbc_sha1(record, s) {\n var rval = false;\n\n // append MAC to fragment, update sequence number\n var mac = s.macFunction(s.macKey, s.sequenceNumber, record);\n record.fragment.putBytes(mac);\n s.updateSequenceNumber();\n\n // TLS 1.1+ use an explicit IV every time to protect against CBC attacks\n var iv;\n if(record.version.minor === tls.Versions.TLS_1_0.minor) {\n // use the pre-generated IV when initializing for TLS 1.0, otherwise use\n // the residue from the previous encryption\n iv = s.cipherState.init ? null : s.cipherState.iv;\n } else {\n iv = forge.random.getBytesSync(16);\n }\n\n s.cipherState.init = true;\n\n // start cipher\n var cipher = s.cipherState.cipher;\n cipher.start({iv: iv});\n\n // TLS 1.1+ write IV into output\n if(record.version.minor >= tls.Versions.TLS_1_1.minor) {\n cipher.output.putBytes(iv);\n }\n\n // do encryption (default padding is appropriate)\n cipher.update(record.fragment);\n if(cipher.finish(encrypt_aes_cbc_sha1_padding)) {\n // set record fragment to encrypted output\n record.fragment = cipher.output;\n record.length = record.fragment.length();\n rval = true;\n }\n\n return rval;\n}\n\n/**\n * Handles padding for aes_cbc_sha1 in encrypt mode.\n *\n * @param blockSize the block size.\n * @param input the input buffer.\n * @param decrypt true in decrypt mode, false in encrypt mode.\n *\n * @return true on success, false on failure.\n */\nfunction encrypt_aes_cbc_sha1_padding(blockSize, input, decrypt) {\n /* The encrypted data length (TLSCiphertext.length) is one more than the sum\n of SecurityParameters.block_length, TLSCompressed.length,\n SecurityParameters.mac_length, and padding_length.\n\n The padding may be any length up to 255 bytes long, as long as it results in\n the TLSCiphertext.length being an integral multiple of the block length.\n Lengths longer than necessary might be desirable to frustrate attacks on a\n protocol based on analysis of the lengths of exchanged messages. Each uint8\n in the padding data vector must be filled with the padding length value.\n\n The padding length should be such that the total size of the\n GenericBlockCipher structure is a multiple of the cipher's block length.\n Legal values range from zero to 255, inclusive. This length specifies the\n length of the padding field exclusive of the padding_length field itself.\n\n This is slightly different from PKCS#7 because the padding value is 1\n less than the actual number of padding bytes if you include the\n padding_length uint8 itself as a padding byte. */\n if(!decrypt) {\n // get the number of padding bytes required to reach the blockSize and\n // subtract 1 for the padding value (to make room for the padding_length\n // uint8)\n var padding = blockSize - (input.length() % blockSize);\n input.fillWithByte(padding - 1, padding);\n }\n return true;\n}\n\n/**\n * Handles padding for aes_cbc_sha1 in decrypt mode.\n *\n * @param blockSize the block size.\n * @param output the output buffer.\n * @param decrypt true in decrypt mode, false in encrypt mode.\n *\n * @return true on success, false on failure.\n */\nfunction decrypt_aes_cbc_sha1_padding(blockSize, output, decrypt) {\n var rval = true;\n if(decrypt) {\n /* The last byte in the output specifies the number of padding bytes not\n including itself. Each of the padding bytes has the same value as that\n last byte (known as the padding_length). Here we check all padding\n bytes to ensure they have the value of padding_length even if one of\n them is bad in order to ward-off timing attacks. */\n var len = output.length();\n var paddingLength = output.last();\n for(var i = len - 1 - paddingLength; i < len - 1; ++i) {\n rval = rval && (output.at(i) == paddingLength);\n }\n if(rval) {\n // trim off padding bytes and last padding length byte\n output.truncate(paddingLength + 1);\n }\n }\n return rval;\n}\n\n/**\n * Decrypts a TLSCipherText record into a TLSCompressed record using\n * AES in CBC mode.\n *\n * @param record the TLSCipherText record to decrypt.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nfunction decrypt_aes_cbc_sha1(record, s) {\n var rval = false;\n\n var iv;\n if(record.version.minor === tls.Versions.TLS_1_0.minor) {\n // use pre-generated IV when initializing for TLS 1.0, otherwise use the\n // residue from the previous decryption\n iv = s.cipherState.init ? null : s.cipherState.iv;\n } else {\n // TLS 1.1+ use an explicit IV every time to protect against CBC attacks\n // that is appended to the record fragment\n iv = record.fragment.getBytes(16);\n }\n\n s.cipherState.init = true;\n\n // start cipher\n var cipher = s.cipherState.cipher;\n cipher.start({iv: iv});\n\n // do decryption\n cipher.update(record.fragment);\n rval = cipher.finish(decrypt_aes_cbc_sha1_padding);\n\n // even if decryption fails, keep going to minimize timing attacks\n\n // decrypted data:\n // first (len - 20) bytes = application data\n // last 20 bytes = MAC\n var macLen = s.macLength;\n\n // create a random MAC to check against should the mac length check fail\n // Note: do this regardless of the failure to keep timing consistent\n var mac = forge.random.getBytesSync(macLen);\n\n // get fragment and mac\n var len = cipher.output.length();\n if(len >= macLen) {\n record.fragment = cipher.output.getBytes(len - macLen);\n mac = cipher.output.getBytes(macLen);\n } else {\n // bad data, but get bytes anyway to try to keep timing consistent\n record.fragment = cipher.output.getBytes();\n }\n record.fragment = forge.util.createBuffer(record.fragment);\n record.length = record.fragment.length();\n\n // see if data integrity checks out, update sequence number\n var mac2 = s.macFunction(s.macKey, s.sequenceNumber, record);\n s.updateSequenceNumber();\n rval = compareMacs(s.macKey, mac, mac2) && rval;\n return rval;\n}\n\n/**\n * Safely compare two MACs. This function will compare two MACs in a way\n * that protects against timing attacks.\n *\n * TODO: Expose elsewhere as a utility API.\n *\n * See: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n *\n * @param key the MAC key to use.\n * @param mac1 as a binary-encoded string of bytes.\n * @param mac2 as a binary-encoded string of bytes.\n *\n * @return true if the MACs are the same, false if not.\n */\nfunction compareMacs(key, mac1, mac2) {\n var hmac = forge.hmac.create();\n\n hmac.start('SHA1', key);\n hmac.update(mac1);\n mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(mac2);\n mac2 = hmac.digest().getBytes();\n\n return mac1 === mac2;\n}\n","/**\n * Copyright (c) 2019 Digital Bazaar, Inc.\n */\n\nvar forge = require('./forge');\nrequire('./asn1');\nvar asn1 = forge.asn1;\n\nexports.privateKeyValidator = {\n // PrivateKeyInfo\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'PrivateKeyInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // privateKeyAlgorithm\n name: 'PrivateKeyInfo.privateKeyAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'privateKeyOid'\n }]\n }, {\n // PrivateKey\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'privateKey'\n }]\n};\n\nexports.publicKeyValidator = {\n name: 'SubjectPublicKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'subjectPublicKeyInfo',\n value: [{\n name: 'SubjectPublicKeyInfo.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'publicKeyOid'\n }]\n },\n // capture group for ed25519PublicKey\n {\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n composed: true,\n captureBitStringValue: 'ed25519PublicKey'\n }\n // FIXME: this is capture group for rsaPublicKey, use it in this API or\n // discard?\n /* {\n // subjectPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n value: [{\n // RSAPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'rsaPublicKey'\n }]\n } */\n ]\n};\n","/**\n * Javascript implementation of Abstract Syntax Notation Number One.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n *\n * An API for storing data using the Abstract Syntax Notation Number One\n * format using DER (Distinguished Encoding Rules) encoding. This encoding is\n * commonly used to store data for PKI, i.e. X.509 Certificates, and this\n * implementation exists for that purpose.\n *\n * Abstract Syntax Notation Number One (ASN.1) is used to define the abstract\n * syntax of information without restricting the way the information is encoded\n * for transmission. It provides a standard that allows for open systems\n * communication. ASN.1 defines the syntax of information data and a number of\n * simple data types as well as a notation for describing them and specifying\n * values for them.\n *\n * The RSA algorithm creates public and private keys that are often stored in\n * X.509 or PKCS#X formats -- which use ASN.1 (encoded in DER format). This\n * class provides the most basic functionality required to store and load DSA\n * keys that are encoded according to ASN.1.\n *\n * The most common binary encodings for ASN.1 are BER (Basic Encoding Rules)\n * and DER (Distinguished Encoding Rules). DER is just a subset of BER that\n * has stricter requirements for how data must be encoded.\n *\n * Each ASN.1 structure has a tag (a byte identifying the ASN.1 structure type)\n * and a byte array for the value of this ASN1 structure which may be data or a\n * list of ASN.1 structures.\n *\n * Each ASN.1 structure using BER is (Tag-Length-Value):\n *\n * | byte 0 | bytes X | bytes Y |\n * |--------|---------|----------\n * | tag | length | value |\n *\n * ASN.1 allows for tags to be of \"High-tag-number form\" which allows a tag to\n * be two or more octets, but that is not supported by this class. A tag is\n * only 1 byte. Bits 1-5 give the tag number (ie the data type within a\n * particular 'class'), 6 indicates whether or not the ASN.1 value is\n * constructed from other ASN.1 values, and bits 7 and 8 give the 'class'. If\n * bits 7 and 8 are both zero, the class is UNIVERSAL. If only bit 7 is set,\n * then the class is APPLICATION. If only bit 8 is set, then the class is\n * CONTEXT_SPECIFIC. If both bits 7 and 8 are set, then the class is PRIVATE.\n * The tag numbers for the data types for the class UNIVERSAL are listed below:\n *\n * UNIVERSAL 0 Reserved for use by the encoding rules\n * UNIVERSAL 1 Boolean type\n * UNIVERSAL 2 Integer type\n * UNIVERSAL 3 Bitstring type\n * UNIVERSAL 4 Octetstring type\n * UNIVERSAL 5 Null type\n * UNIVERSAL 6 Object identifier type\n * UNIVERSAL 7 Object descriptor type\n * UNIVERSAL 8 External type and Instance-of type\n * UNIVERSAL 9 Real type\n * UNIVERSAL 10 Enumerated type\n * UNIVERSAL 11 Embedded-pdv type\n * UNIVERSAL 12 UTF8String type\n * UNIVERSAL 13 Relative object identifier type\n * UNIVERSAL 14-15 Reserved for future editions\n * UNIVERSAL 16 Sequence and Sequence-of types\n * UNIVERSAL 17 Set and Set-of types\n * UNIVERSAL 18-22, 25-30 Character string types\n * UNIVERSAL 23-24 Time types\n *\n * The length of an ASN.1 structure is specified after the tag identifier.\n * There is a definite form and an indefinite form. The indefinite form may\n * be used if the encoding is constructed and not all immediately available.\n * The indefinite form is encoded using a length byte with only the 8th bit\n * set. The end of the constructed object is marked using end-of-contents\n * octets (two zero bytes).\n *\n * The definite form looks like this:\n *\n * The length may take up 1 or more bytes, it depends on the length of the\n * value of the ASN.1 structure. DER encoding requires that if the ASN.1\n * structure has a value that has a length greater than 127, more than 1 byte\n * will be used to store its length, otherwise just one byte will be used.\n * This is strict.\n *\n * In the case that the length of the ASN.1 value is less than 127, 1 octet\n * (byte) is used to store the \"short form\" length. The 8th bit has a value of\n * 0 indicating the length is \"short form\" and not \"long form\" and bits 7-1\n * give the length of the data. (The 8th bit is the left-most, most significant\n * bit: also known as big endian or network format).\n *\n * In the case that the length of the ASN.1 value is greater than 127, 2 to\n * 127 octets (bytes) are used to store the \"long form\" length. The first\n * byte's 8th bit is set to 1 to indicate the length is \"long form.\" Bits 7-1\n * give the number of additional octets. All following octets are in base 256\n * with the most significant digit first (typical big-endian binary unsigned\n * integer storage). So, for instance, if the length of a value was 257, the\n * first byte would be set to:\n *\n * 10000010 = 130 = 0x82.\n *\n * This indicates there are 2 octets (base 256) for the length. The second and\n * third bytes (the octets just mentioned) would store the length in base 256:\n *\n * octet 2: 00000001 = 1 * 256^1 = 256\n * octet 3: 00000001 = 1 * 256^0 = 1\n * total = 257\n *\n * The algorithm for converting a js integer value of 257 to base-256 is:\n *\n * var value = 257;\n * var bytes = [];\n * bytes[0] = (value >>> 8) & 0xFF; // most significant byte first\n * bytes[1] = value & 0xFF; // least significant byte last\n *\n * On the ASN.1 UNIVERSAL Object Identifier (OID) type:\n *\n * An OID can be written like: \"value1.value2.value3...valueN\"\n *\n * The DER encoding rules:\n *\n * The first byte has the value 40 * value1 + value2.\n * The following bytes, if any, encode the remaining values. Each value is\n * encoded in base 128, most significant digit first (big endian), with as\n * few digits as possible, and the most significant bit of each byte set\n * to 1 except the last in each value's encoding. For example: Given the\n * OID \"1.2.840.113549\", its DER encoding is (remember each byte except the\n * last one in each encoding is OR'd with 0x80):\n *\n * byte 1: 40 * 1 + 2 = 42 = 0x2A.\n * bytes 2-3: 128 * 6 + 72 = 840 = 6 72 = 6 72 = 0x0648 = 0x8648\n * bytes 4-6: 16384 * 6 + 128 * 119 + 13 = 6 119 13 = 0x06770D = 0x86F70D\n *\n * The final value is: 0x2A864886F70D.\n * The full OID (including ASN.1 tag and length of 6 bytes) is:\n * 0x06062A864886F70D\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./oids');\n\n/* ASN.1 API */\nvar asn1 = module.exports = forge.asn1 = forge.asn1 || {};\n\n/**\n * ASN.1 classes.\n */\nasn1.Class = {\n UNIVERSAL: 0x00,\n APPLICATION: 0x40,\n CONTEXT_SPECIFIC: 0x80,\n PRIVATE: 0xC0\n};\n\n/**\n * ASN.1 types. Not all types are supported by this implementation, only\n * those necessary to implement a simple PKI are implemented.\n */\nasn1.Type = {\n NONE: 0,\n BOOLEAN: 1,\n INTEGER: 2,\n BITSTRING: 3,\n OCTETSTRING: 4,\n NULL: 5,\n OID: 6,\n ODESC: 7,\n EXTERNAL: 8,\n REAL: 9,\n ENUMERATED: 10,\n EMBEDDED: 11,\n UTF8: 12,\n ROID: 13,\n SEQUENCE: 16,\n SET: 17,\n PRINTABLESTRING: 19,\n IA5STRING: 22,\n UTCTIME: 23,\n GENERALIZEDTIME: 24,\n BMPSTRING: 30\n};\n\n/**\n * Creates a new asn1 object.\n *\n * @param tagClass the tag class for the object.\n * @param type the data type (tag number) for the object.\n * @param constructed true if the asn1 object is in constructed form.\n * @param value the value for the object, if it is not constructed.\n * @param [options] the options to use:\n * [bitStringContents] the plain BIT STRING content including padding\n * byte.\n *\n * @return the asn1 object.\n */\nasn1.create = function(tagClass, type, constructed, value, options) {\n /* An asn1 object has a tagClass, a type, a constructed flag, and a\n value. The value's type depends on the constructed flag. If\n constructed, it will contain a list of other asn1 objects. If not,\n it will contain the ASN.1 value as an array of bytes formatted\n according to the ASN.1 data type. */\n\n // remove undefined values\n if(forge.util.isArray(value)) {\n var tmp = [];\n for(var i = 0; i < value.length; ++i) {\n if(value[i] !== undefined) {\n tmp.push(value[i]);\n }\n }\n value = tmp;\n }\n\n var obj = {\n tagClass: tagClass,\n type: type,\n constructed: constructed,\n composed: constructed || forge.util.isArray(value),\n value: value\n };\n if(options && 'bitStringContents' in options) {\n // TODO: copy byte buffer if it's a buffer not a string\n obj.bitStringContents = options.bitStringContents;\n // TODO: add readonly flag to avoid this overhead\n // save copy to detect changes\n obj.original = asn1.copy(obj);\n }\n return obj;\n};\n\n/**\n * Copies an asn1 object.\n *\n * @param obj the asn1 object.\n * @param [options] copy options:\n * [excludeBitStringContents] true to not copy bitStringContents\n *\n * @return the a copy of the asn1 object.\n */\nasn1.copy = function(obj, options) {\n var copy;\n\n if(forge.util.isArray(obj)) {\n copy = [];\n for(var i = 0; i < obj.length; ++i) {\n copy.push(asn1.copy(obj[i], options));\n }\n return copy;\n }\n\n if(typeof obj === 'string') {\n // TODO: copy byte buffer if it's a buffer not a string\n return obj;\n }\n\n copy = {\n tagClass: obj.tagClass,\n type: obj.type,\n constructed: obj.constructed,\n composed: obj.composed,\n value: asn1.copy(obj.value, options)\n };\n if(options && !options.excludeBitStringContents) {\n // TODO: copy byte buffer if it's a buffer not a string\n copy.bitStringContents = obj.bitStringContents;\n }\n return copy;\n};\n\n/**\n * Compares asn1 objects for equality.\n *\n * Note this function does not run in constant time.\n *\n * @param obj1 the first asn1 object.\n * @param obj2 the second asn1 object.\n * @param [options] compare options:\n * [includeBitStringContents] true to compare bitStringContents\n *\n * @return true if the asn1 objects are equal.\n */\nasn1.equals = function(obj1, obj2, options) {\n if(forge.util.isArray(obj1)) {\n if(!forge.util.isArray(obj2)) {\n return false;\n }\n if(obj1.length !== obj2.length) {\n return false;\n }\n for(var i = 0; i < obj1.length; ++i) {\n if(!asn1.equals(obj1[i], obj2[i])) {\n return false;\n }\n }\n return true;\n }\n\n if(typeof obj1 !== typeof obj2) {\n return false;\n }\n\n if(typeof obj1 === 'string') {\n return obj1 === obj2;\n }\n\n var equal = obj1.tagClass === obj2.tagClass &&\n obj1.type === obj2.type &&\n obj1.constructed === obj2.constructed &&\n obj1.composed === obj2.composed &&\n asn1.equals(obj1.value, obj2.value);\n if(options && options.includeBitStringContents) {\n equal = equal && (obj1.bitStringContents === obj2.bitStringContents);\n }\n\n return equal;\n};\n\n/**\n * Gets the length of a BER-encoded ASN.1 value.\n *\n * In case the length is not specified, undefined is returned.\n *\n * @param b the BER-encoded ASN.1 byte buffer, starting with the first\n * length byte.\n *\n * @return the length of the BER-encoded ASN.1 value or undefined.\n */\nasn1.getBerValueLength = function(b) {\n // TODO: move this function and related DER/BER functions to a der.js\n // file; better abstract ASN.1 away from der/ber.\n var b2 = b.getByte();\n if(b2 === 0x80) {\n return undefined;\n }\n\n // see if the length is \"short form\" or \"long form\" (bit 8 set)\n var length;\n var longForm = b2 & 0x80;\n if(!longForm) {\n // length is just the first byte\n length = b2;\n } else {\n // the number of bytes the length is specified in bits 7 through 1\n // and each length byte is in big-endian base-256\n length = b.getInt((b2 & 0x7F) << 3);\n }\n return length;\n};\n\n/**\n * Check if the byte buffer has enough bytes. Throws an Error if not.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the bytes remaining in the current parsing state.\n * @param n the number of bytes the buffer must have.\n */\nfunction _checkBufferLength(bytes, remaining, n) {\n if(n > remaining) {\n var error = new Error('Too few bytes to parse DER.');\n error.available = bytes.length();\n error.remaining = remaining;\n error.requested = n;\n throw error;\n }\n}\n\n/**\n * Gets the length of a BER-encoded ASN.1 value.\n *\n * In case the length is not specified, undefined is returned.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the bytes remaining in the current parsing state.\n *\n * @return the length of the BER-encoded ASN.1 value or undefined.\n */\nvar _getValueLength = function(bytes, remaining) {\n // TODO: move this function and related DER/BER functions to a der.js\n // file; better abstract ASN.1 away from der/ber.\n // fromDer already checked that this byte exists\n var b2 = bytes.getByte();\n remaining--;\n if(b2 === 0x80) {\n return undefined;\n }\n\n // see if the length is \"short form\" or \"long form\" (bit 8 set)\n var length;\n var longForm = b2 & 0x80;\n if(!longForm) {\n // length is just the first byte\n length = b2;\n } else {\n // the number of bytes the length is specified in bits 7 through 1\n // and each length byte is in big-endian base-256\n var longFormBytes = b2 & 0x7F;\n _checkBufferLength(bytes, remaining, longFormBytes);\n length = bytes.getInt(longFormBytes << 3);\n }\n // FIXME: this will only happen for 32 bit getInt with high bit set\n if(length < 0) {\n throw new Error('Negative length: ' + length);\n }\n return length;\n};\n\n/**\n * Parses an asn1 object from a byte buffer in DER format.\n *\n * @param bytes the byte buffer to parse from.\n * @param [strict] true to be strict when checking value lengths, false to\n * allow truncated values (default: true).\n * @param [options] object with options or boolean strict flag\n * [strict] true to be strict when checking value lengths, false to\n * allow truncated values (default: true).\n * [parseAllBytes] true to ensure all bytes are parsed\n * (default: true)\n * [decodeBitStrings] true to attempt to decode the content of\n * BIT STRINGs (not OCTET STRINGs) using strict mode. Note that\n * without schema support to understand the data context this can\n * erroneously decode values that happen to be valid ASN.1. This\n * flag will be deprecated or removed as soon as schema support is\n * available. (default: true)\n *\n * @throws Will throw an error for various malformed input conditions.\n *\n * @return the parsed asn1 object.\n */\nasn1.fromDer = function(bytes, options) {\n if(options === undefined) {\n options = {\n strict: true,\n parseAllBytes: true,\n decodeBitStrings: true\n };\n }\n if(typeof options === 'boolean') {\n options = {\n strict: options,\n parseAllBytes: true,\n decodeBitStrings: true\n };\n }\n if(!('strict' in options)) {\n options.strict = true;\n }\n if(!('parseAllBytes' in options)) {\n options.parseAllBytes = true;\n }\n if(!('decodeBitStrings' in options)) {\n options.decodeBitStrings = true;\n }\n\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n var byteCount = bytes.length();\n var value = _fromDer(bytes, bytes.length(), 0, options);\n if(options.parseAllBytes && bytes.length() !== 0) {\n var error = new Error('Unparsed DER bytes remain after ASN.1 parsing.');\n error.byteCount = byteCount;\n error.remaining = bytes.length();\n throw error;\n }\n return value;\n};\n\n/**\n * Internal function to parse an asn1 object from a byte buffer in DER format.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the number of bytes remaining for this chunk.\n * @param depth the current parsing depth.\n * @param options object with same options as fromDer().\n *\n * @return the parsed asn1 object.\n */\nfunction _fromDer(bytes, remaining, depth, options) {\n // temporary storage for consumption calculations\n var start;\n\n // minimum length for ASN.1 DER structure is 2\n _checkBufferLength(bytes, remaining, 2);\n\n // get the first byte\n var b1 = bytes.getByte();\n // consumed one byte\n remaining--;\n\n // get the tag class\n var tagClass = (b1 & 0xC0);\n\n // get the type (bits 1-5)\n var type = b1 & 0x1F;\n\n // get the variable value length and adjust remaining bytes\n start = bytes.length();\n var length = _getValueLength(bytes, remaining);\n remaining -= start - bytes.length();\n\n // ensure there are enough bytes to get the value\n if(length !== undefined && length > remaining) {\n if(options.strict) {\n var error = new Error('Too few bytes to read ASN.1 value.');\n error.available = bytes.length();\n error.remaining = remaining;\n error.requested = length;\n throw error;\n }\n // Note: be lenient with truncated values and use remaining state bytes\n length = remaining;\n }\n\n // value storage\n var value;\n // possible BIT STRING contents storage\n var bitStringContents;\n\n // constructed flag is bit 6 (32 = 0x20) of the first byte\n var constructed = ((b1 & 0x20) === 0x20);\n if(constructed) {\n // parse child asn1 objects from the value\n value = [];\n if(length === undefined) {\n // asn1 object of indefinite length, read until end tag\n for(;;) {\n _checkBufferLength(bytes, remaining, 2);\n if(bytes.bytes(2) === String.fromCharCode(0, 0)) {\n bytes.getBytes(2);\n remaining -= 2;\n break;\n }\n start = bytes.length();\n value.push(_fromDer(bytes, remaining, depth + 1, options));\n remaining -= start - bytes.length();\n }\n } else {\n // parsing asn1 object of definite length\n while(length > 0) {\n start = bytes.length();\n value.push(_fromDer(bytes, length, depth + 1, options));\n remaining -= start - bytes.length();\n length -= start - bytes.length();\n }\n }\n }\n\n // if a BIT STRING, save the contents including padding\n if(value === undefined && tagClass === asn1.Class.UNIVERSAL &&\n type === asn1.Type.BITSTRING) {\n bitStringContents = bytes.bytes(length);\n }\n\n // determine if a non-constructed value should be decoded as a composed\n // value that contains other ASN.1 objects. BIT STRINGs (and OCTET STRINGs)\n // can be used this way.\n if(value === undefined && options.decodeBitStrings &&\n tagClass === asn1.Class.UNIVERSAL &&\n // FIXME: OCTET STRINGs not yet supported here\n // .. other parts of forge expect to decode OCTET STRINGs manually\n (type === asn1.Type.BITSTRING /*|| type === asn1.Type.OCTETSTRING*/) &&\n length > 1) {\n // save read position\n var savedRead = bytes.read;\n var savedRemaining = remaining;\n var unused = 0;\n if(type === asn1.Type.BITSTRING) {\n /* The first octet gives the number of bits by which the length of the\n bit string is less than the next multiple of eight (this is called\n the \"number of unused bits\").\n\n The second and following octets give the value of the bit string\n converted to an octet string. */\n _checkBufferLength(bytes, remaining, 1);\n unused = bytes.getByte();\n remaining--;\n }\n // if all bits are used, maybe the BIT/OCTET STRING holds ASN.1 objs\n if(unused === 0) {\n try {\n // attempt to parse child asn1 object from the value\n // (stored in array to signal composed value)\n start = bytes.length();\n var subOptions = {\n // enforce strict mode to avoid parsing ASN.1 from plain data\n strict: true,\n decodeBitStrings: true\n };\n var composed = _fromDer(bytes, remaining, depth + 1, subOptions);\n var used = start - bytes.length();\n remaining -= used;\n if(type == asn1.Type.BITSTRING) {\n used++;\n }\n\n // if the data all decoded and the class indicates UNIVERSAL or\n // CONTEXT_SPECIFIC then assume we've got an encapsulated ASN.1 object\n var tc = composed.tagClass;\n if(used === length &&\n (tc === asn1.Class.UNIVERSAL || tc === asn1.Class.CONTEXT_SPECIFIC)) {\n value = [composed];\n }\n } catch(ex) {\n }\n }\n if(value === undefined) {\n // restore read position\n bytes.read = savedRead;\n remaining = savedRemaining;\n }\n }\n\n if(value === undefined) {\n // asn1 not constructed or composed, get raw value\n // TODO: do DER to OID conversion and vice-versa in .toDer?\n\n if(length === undefined) {\n if(options.strict) {\n throw new Error('Non-constructed ASN.1 object of indefinite length.');\n }\n // be lenient and use remaining state bytes\n length = remaining;\n }\n\n if(type === asn1.Type.BMPSTRING) {\n value = '';\n for(; length > 0; length -= 2) {\n _checkBufferLength(bytes, remaining, 2);\n value += String.fromCharCode(bytes.getInt16());\n remaining -= 2;\n }\n } else {\n value = bytes.getBytes(length);\n remaining -= length;\n }\n }\n\n // add BIT STRING contents if available\n var asn1Options = bitStringContents === undefined ? null : {\n bitStringContents: bitStringContents\n };\n\n // create and return asn1 object\n return asn1.create(tagClass, type, constructed, value, asn1Options);\n}\n\n/**\n * Converts the given asn1 object to a buffer of bytes in DER format.\n *\n * @param asn1 the asn1 object to convert to bytes.\n *\n * @return the buffer of bytes.\n */\nasn1.toDer = function(obj) {\n var bytes = forge.util.createBuffer();\n\n // build the first byte\n var b1 = obj.tagClass | obj.type;\n\n // for storing the ASN.1 value\n var value = forge.util.createBuffer();\n\n // use BIT STRING contents if available and data not changed\n var useBitStringContents = false;\n if('bitStringContents' in obj) {\n useBitStringContents = true;\n if(obj.original) {\n useBitStringContents = asn1.equals(obj, obj.original);\n }\n }\n\n if(useBitStringContents) {\n value.putBytes(obj.bitStringContents);\n } else if(obj.composed) {\n // if composed, use each child asn1 object's DER bytes as value\n // turn on 6th bit (0x20 = 32) to indicate asn1 is constructed\n // from other asn1 objects\n if(obj.constructed) {\n b1 |= 0x20;\n } else {\n // type is a bit string, add unused bits of 0x00\n value.putByte(0x00);\n }\n\n // add all of the child DER bytes together\n for(var i = 0; i < obj.value.length; ++i) {\n if(obj.value[i] !== undefined) {\n value.putBuffer(asn1.toDer(obj.value[i]));\n }\n }\n } else {\n // use asn1.value directly\n if(obj.type === asn1.Type.BMPSTRING) {\n for(var i = 0; i < obj.value.length; ++i) {\n value.putInt16(obj.value.charCodeAt(i));\n }\n } else {\n // ensure integer is minimally-encoded\n // TODO: should all leading bytes be stripped vs just one?\n // .. ex '00 00 01' => '01'?\n if(obj.type === asn1.Type.INTEGER &&\n obj.value.length > 1 &&\n // leading 0x00 for positive integer\n ((obj.value.charCodeAt(0) === 0 &&\n (obj.value.charCodeAt(1) & 0x80) === 0) ||\n // leading 0xFF for negative integer\n (obj.value.charCodeAt(0) === 0xFF &&\n (obj.value.charCodeAt(1) & 0x80) === 0x80))) {\n value.putBytes(obj.value.substr(1));\n } else {\n value.putBytes(obj.value);\n }\n }\n }\n\n // add tag byte\n bytes.putByte(b1);\n\n // use \"short form\" encoding\n if(value.length() <= 127) {\n // one byte describes the length\n // bit 8 = 0 and bits 7-1 = length\n bytes.putByte(value.length() & 0x7F);\n } else {\n // use \"long form\" encoding\n // 2 to 127 bytes describe the length\n // first byte: bit 8 = 1 and bits 7-1 = # of additional bytes\n // other bytes: length in base 256, big-endian\n var len = value.length();\n var lenBytes = '';\n do {\n lenBytes += String.fromCharCode(len & 0xFF);\n len = len >>> 8;\n } while(len > 0);\n\n // set first byte to # bytes used to store the length and turn on\n // bit 8 to indicate long-form length is used\n bytes.putByte(lenBytes.length | 0x80);\n\n // concatenate length bytes in reverse since they were generated\n // little endian and we need big endian\n for(var i = lenBytes.length - 1; i >= 0; --i) {\n bytes.putByte(lenBytes.charCodeAt(i));\n }\n }\n\n // concatenate value bytes\n bytes.putBuffer(value);\n return bytes;\n};\n\n/**\n * Converts an OID dot-separated string to a byte buffer. The byte buffer\n * contains only the DER-encoded value, not any tag or length bytes.\n *\n * @param oid the OID dot-separated string.\n *\n * @return the byte buffer.\n */\nasn1.oidToDer = function(oid) {\n // split OID into individual values\n var values = oid.split('.');\n var bytes = forge.util.createBuffer();\n\n // first byte is 40 * value1 + value2\n bytes.putByte(40 * parseInt(values[0], 10) + parseInt(values[1], 10));\n // other bytes are each value in base 128 with 8th bit set except for\n // the last byte for each value\n var last, valueBytes, value, b;\n for(var i = 2; i < values.length; ++i) {\n // produce value bytes in reverse because we don't know how many\n // bytes it will take to store the value\n last = true;\n valueBytes = [];\n value = parseInt(values[i], 10);\n do {\n b = value & 0x7F;\n value = value >>> 7;\n // if value is not last, then turn on 8th bit\n if(!last) {\n b |= 0x80;\n }\n valueBytes.push(b);\n last = false;\n } while(value > 0);\n\n // add value bytes in reverse (needs to be in big endian)\n for(var n = valueBytes.length - 1; n >= 0; --n) {\n bytes.putByte(valueBytes[n]);\n }\n }\n\n return bytes;\n};\n\n/**\n * Converts a DER-encoded byte buffer to an OID dot-separated string. The\n * byte buffer should contain only the DER-encoded value, not any tag or\n * length bytes.\n *\n * @param bytes the byte buffer.\n *\n * @return the OID dot-separated string.\n */\nasn1.derToOid = function(bytes) {\n var oid;\n\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n // first byte is 40 * value1 + value2\n var b = bytes.getByte();\n oid = Math.floor(b / 40) + '.' + (b % 40);\n\n // other bytes are each value in base 128 with 8th bit set except for\n // the last byte for each value\n var value = 0;\n while(bytes.length() > 0) {\n b = bytes.getByte();\n value = value << 7;\n // not the last byte for the value\n if(b & 0x80) {\n value += b & 0x7F;\n } else {\n // last byte\n oid += '.' + (value + b);\n value = 0;\n }\n }\n\n return oid;\n};\n\n/**\n * Converts a UTCTime value to a date.\n *\n * Note: GeneralizedTime has 4 digits for the year and is used for X.509\n * dates past 2049. Parsing that structure hasn't been implemented yet.\n *\n * @param utc the UTCTime value to convert.\n *\n * @return the date.\n */\nasn1.utcTimeToDate = function(utc) {\n /* The following formats can be used:\n\n YYMMDDhhmmZ\n YYMMDDhhmm+hh'mm'\n YYMMDDhhmm-hh'mm'\n YYMMDDhhmmssZ\n YYMMDDhhmmss+hh'mm'\n YYMMDDhhmmss-hh'mm'\n\n Where:\n\n YY is the least significant two digits of the year\n MM is the month (01 to 12)\n DD is the day (01 to 31)\n hh is the hour (00 to 23)\n mm are the minutes (00 to 59)\n ss are the seconds (00 to 59)\n Z indicates that local time is GMT, + indicates that local time is\n later than GMT, and - indicates that local time is earlier than GMT\n hh' is the absolute value of the offset from GMT in hours\n mm' is the absolute value of the offset from GMT in minutes */\n var date = new Date();\n\n // if YY >= 50 use 19xx, if YY < 50 use 20xx\n var year = parseInt(utc.substr(0, 2), 10);\n year = (year >= 50) ? 1900 + year : 2000 + year;\n var MM = parseInt(utc.substr(2, 2), 10) - 1; // use 0-11 for month\n var DD = parseInt(utc.substr(4, 2), 10);\n var hh = parseInt(utc.substr(6, 2), 10);\n var mm = parseInt(utc.substr(8, 2), 10);\n var ss = 0;\n\n // not just YYMMDDhhmmZ\n if(utc.length > 11) {\n // get character after minutes\n var c = utc.charAt(10);\n var end = 10;\n\n // see if seconds are present\n if(c !== '+' && c !== '-') {\n // get seconds\n ss = parseInt(utc.substr(10, 2), 10);\n end += 2;\n }\n }\n\n // update date\n date.setUTCFullYear(year, MM, DD);\n date.setUTCHours(hh, mm, ss, 0);\n\n if(end) {\n // get +/- after end of time\n c = utc.charAt(end);\n if(c === '+' || c === '-') {\n // get hours+minutes offset\n var hhoffset = parseInt(utc.substr(end + 1, 2), 10);\n var mmoffset = parseInt(utc.substr(end + 4, 2), 10);\n\n // calculate offset in milliseconds\n var offset = hhoffset * 60 + mmoffset;\n offset *= 60000;\n\n // apply offset\n if(c === '+') {\n date.setTime(+date - offset);\n } else {\n date.setTime(+date + offset);\n }\n }\n }\n\n return date;\n};\n\n/**\n * Converts a GeneralizedTime value to a date.\n *\n * @param gentime the GeneralizedTime value to convert.\n *\n * @return the date.\n */\nasn1.generalizedTimeToDate = function(gentime) {\n /* The following formats can be used:\n\n YYYYMMDDHHMMSS\n YYYYMMDDHHMMSS.fff\n YYYYMMDDHHMMSSZ\n YYYYMMDDHHMMSS.fffZ\n YYYYMMDDHHMMSS+hh'mm'\n YYYYMMDDHHMMSS.fff+hh'mm'\n YYYYMMDDHHMMSS-hh'mm'\n YYYYMMDDHHMMSS.fff-hh'mm'\n\n Where:\n\n YYYY is the year\n MM is the month (01 to 12)\n DD is the day (01 to 31)\n hh is the hour (00 to 23)\n mm are the minutes (00 to 59)\n ss are the seconds (00 to 59)\n .fff is the second fraction, accurate to three decimal places\n Z indicates that local time is GMT, + indicates that local time is\n later than GMT, and - indicates that local time is earlier than GMT\n hh' is the absolute value of the offset from GMT in hours\n mm' is the absolute value of the offset from GMT in minutes */\n var date = new Date();\n\n var YYYY = parseInt(gentime.substr(0, 4), 10);\n var MM = parseInt(gentime.substr(4, 2), 10) - 1; // use 0-11 for month\n var DD = parseInt(gentime.substr(6, 2), 10);\n var hh = parseInt(gentime.substr(8, 2), 10);\n var mm = parseInt(gentime.substr(10, 2), 10);\n var ss = parseInt(gentime.substr(12, 2), 10);\n var fff = 0;\n var offset = 0;\n var isUTC = false;\n\n if(gentime.charAt(gentime.length - 1) === 'Z') {\n isUTC = true;\n }\n\n var end = gentime.length - 5, c = gentime.charAt(end);\n if(c === '+' || c === '-') {\n // get hours+minutes offset\n var hhoffset = parseInt(gentime.substr(end + 1, 2), 10);\n var mmoffset = parseInt(gentime.substr(end + 4, 2), 10);\n\n // calculate offset in milliseconds\n offset = hhoffset * 60 + mmoffset;\n offset *= 60000;\n\n // apply offset\n if(c === '+') {\n offset *= -1;\n }\n\n isUTC = true;\n }\n\n // check for second fraction\n if(gentime.charAt(14) === '.') {\n fff = parseFloat(gentime.substr(14), 10) * 1000;\n }\n\n if(isUTC) {\n date.setUTCFullYear(YYYY, MM, DD);\n date.setUTCHours(hh, mm, ss, fff);\n\n // apply offset\n date.setTime(+date + offset);\n } else {\n date.setFullYear(YYYY, MM, DD);\n date.setHours(hh, mm, ss, fff);\n }\n\n return date;\n};\n\n/**\n * Converts a date to a UTCTime value.\n *\n * Note: GeneralizedTime has 4 digits for the year and is used for X.509\n * dates past 2049. Converting to a GeneralizedTime hasn't been\n * implemented yet.\n *\n * @param date the date to convert.\n *\n * @return the UTCTime value.\n */\nasn1.dateToUtcTime = function(date) {\n // TODO: validate; currently assumes proper format\n if(typeof date === 'string') {\n return date;\n }\n\n var rval = '';\n\n // create format YYMMDDhhmmssZ\n var format = [];\n format.push(('' + date.getUTCFullYear()).substr(2));\n format.push('' + (date.getUTCMonth() + 1));\n format.push('' + date.getUTCDate());\n format.push('' + date.getUTCHours());\n format.push('' + date.getUTCMinutes());\n format.push('' + date.getUTCSeconds());\n\n // ensure 2 digits are used for each format entry\n for(var i = 0; i < format.length; ++i) {\n if(format[i].length < 2) {\n rval += '0';\n }\n rval += format[i];\n }\n rval += 'Z';\n\n return rval;\n};\n\n/**\n * Converts a date to a GeneralizedTime value.\n *\n * @param date the date to convert.\n *\n * @return the GeneralizedTime value as a string.\n */\nasn1.dateToGeneralizedTime = function(date) {\n // TODO: validate; currently assumes proper format\n if(typeof date === 'string') {\n return date;\n }\n\n var rval = '';\n\n // create format YYYYMMDDHHMMSSZ\n var format = [];\n format.push('' + date.getUTCFullYear());\n format.push('' + (date.getUTCMonth() + 1));\n format.push('' + date.getUTCDate());\n format.push('' + date.getUTCHours());\n format.push('' + date.getUTCMinutes());\n format.push('' + date.getUTCSeconds());\n\n // ensure 2 digits are used for each format entry\n for(var i = 0; i < format.length; ++i) {\n if(format[i].length < 2) {\n rval += '0';\n }\n rval += format[i];\n }\n rval += 'Z';\n\n return rval;\n};\n\n/**\n * Converts a javascript integer to a DER-encoded byte buffer to be used\n * as the value for an INTEGER type.\n *\n * @param x the integer.\n *\n * @return the byte buffer.\n */\nasn1.integerToDer = function(x) {\n var rval = forge.util.createBuffer();\n if(x >= -0x80 && x < 0x80) {\n return rval.putSignedInt(x, 8);\n }\n if(x >= -0x8000 && x < 0x8000) {\n return rval.putSignedInt(x, 16);\n }\n if(x >= -0x800000 && x < 0x800000) {\n return rval.putSignedInt(x, 24);\n }\n if(x >= -0x80000000 && x < 0x80000000) {\n return rval.putSignedInt(x, 32);\n }\n var error = new Error('Integer too large; max is 32-bits.');\n error.integer = x;\n throw error;\n};\n\n/**\n * Converts a DER-encoded byte buffer to a javascript integer. This is\n * typically used to decode the value of an INTEGER type.\n *\n * @param bytes the byte buffer.\n *\n * @return the integer.\n */\nasn1.derToInteger = function(bytes) {\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n var n = bytes.length() * 8;\n if(n > 32) {\n throw new Error('Integer too large; max is 32-bits.');\n }\n return bytes.getSignedInt(n);\n};\n\n/**\n * Validates that the given ASN.1 object is at least a super set of the\n * given ASN.1 structure. Only tag classes and types are checked. An\n * optional map may also be provided to capture ASN.1 values while the\n * structure is checked.\n *\n * To capture an ASN.1 value, set an object in the validator's 'capture'\n * parameter to the key to use in the capture map. To capture the full\n * ASN.1 object, specify 'captureAsn1'. To capture BIT STRING bytes, including\n * the leading unused bits counter byte, specify 'captureBitStringContents'.\n * To capture BIT STRING bytes, without the leading unused bits counter byte,\n * specify 'captureBitStringValue'.\n *\n * Objects in the validator may set a field 'optional' to true to indicate\n * that it isn't necessary to pass validation.\n *\n * @param obj the ASN.1 object to validate.\n * @param v the ASN.1 structure validator.\n * @param capture an optional map to capture values in.\n * @param errors an optional array for storing validation errors.\n *\n * @return true on success, false on failure.\n */\nasn1.validate = function(obj, v, capture, errors) {\n var rval = false;\n\n // ensure tag class and type are the same if specified\n if((obj.tagClass === v.tagClass || typeof(v.tagClass) === 'undefined') &&\n (obj.type === v.type || typeof(v.type) === 'undefined')) {\n // ensure constructed flag is the same if specified\n if(obj.constructed === v.constructed ||\n typeof(v.constructed) === 'undefined') {\n rval = true;\n\n // handle sub values\n if(v.value && forge.util.isArray(v.value)) {\n var j = 0;\n for(var i = 0; rval && i < v.value.length; ++i) {\n rval = v.value[i].optional || false;\n if(obj.value[j]) {\n rval = asn1.validate(obj.value[j], v.value[i], capture, errors);\n if(rval) {\n ++j;\n } else if(v.value[i].optional) {\n rval = true;\n }\n }\n if(!rval && errors) {\n errors.push(\n '[' + v.name + '] ' +\n 'Tag class \"' + v.tagClass + '\", type \"' +\n v.type + '\" expected value length \"' +\n v.value.length + '\", got \"' +\n obj.value.length + '\"');\n }\n }\n }\n\n if(rval && capture) {\n if(v.capture) {\n capture[v.capture] = obj.value;\n }\n if(v.captureAsn1) {\n capture[v.captureAsn1] = obj;\n }\n if(v.captureBitStringContents && 'bitStringContents' in obj) {\n capture[v.captureBitStringContents] = obj.bitStringContents;\n }\n if(v.captureBitStringValue && 'bitStringContents' in obj) {\n var value;\n if(obj.bitStringContents.length < 2) {\n capture[v.captureBitStringValue] = '';\n } else {\n // FIXME: support unused bits with data shifting\n var unused = obj.bitStringContents.charCodeAt(0);\n if(unused !== 0) {\n throw new Error(\n 'captureBitStringValue only supported for zero unused bits');\n }\n capture[v.captureBitStringValue] = obj.bitStringContents.slice(1);\n }\n }\n }\n } else if(errors) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected constructed \"' + v.constructed + '\", got \"' +\n obj.constructed + '\"');\n }\n } else if(errors) {\n if(obj.tagClass !== v.tagClass) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected tag class \"' + v.tagClass + '\", got \"' +\n obj.tagClass + '\"');\n }\n if(obj.type !== v.type) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected type \"' + v.type + '\", got \"' + obj.type + '\"');\n }\n }\n return rval;\n};\n\n// regex for testing for non-latin characters\nvar _nonLatinRegex = /[^\\\\u0000-\\\\u00ff]/;\n\n/**\n * Pretty prints an ASN.1 object to a string.\n *\n * @param obj the object to write out.\n * @param level the level in the tree.\n * @param indentation the indentation to use.\n *\n * @return the string.\n */\nasn1.prettyPrint = function(obj, level, indentation) {\n var rval = '';\n\n // set default level and indentation\n level = level || 0;\n indentation = indentation || 2;\n\n // start new line for deep levels\n if(level > 0) {\n rval += '\\n';\n }\n\n // create indent\n var indent = '';\n for(var i = 0; i < level * indentation; ++i) {\n indent += ' ';\n }\n\n // print class:type\n rval += indent + 'Tag: ';\n switch(obj.tagClass) {\n case asn1.Class.UNIVERSAL:\n rval += 'Universal:';\n break;\n case asn1.Class.APPLICATION:\n rval += 'Application:';\n break;\n case asn1.Class.CONTEXT_SPECIFIC:\n rval += 'Context-Specific:';\n break;\n case asn1.Class.PRIVATE:\n rval += 'Private:';\n break;\n }\n\n if(obj.tagClass === asn1.Class.UNIVERSAL) {\n rval += obj.type;\n\n // known types\n switch(obj.type) {\n case asn1.Type.NONE:\n rval += ' (None)';\n break;\n case asn1.Type.BOOLEAN:\n rval += ' (Boolean)';\n break;\n case asn1.Type.INTEGER:\n rval += ' (Integer)';\n break;\n case asn1.Type.BITSTRING:\n rval += ' (Bit string)';\n break;\n case asn1.Type.OCTETSTRING:\n rval += ' (Octet string)';\n break;\n case asn1.Type.NULL:\n rval += ' (Null)';\n break;\n case asn1.Type.OID:\n rval += ' (Object Identifier)';\n break;\n case asn1.Type.ODESC:\n rval += ' (Object Descriptor)';\n break;\n case asn1.Type.EXTERNAL:\n rval += ' (External or Instance of)';\n break;\n case asn1.Type.REAL:\n rval += ' (Real)';\n break;\n case asn1.Type.ENUMERATED:\n rval += ' (Enumerated)';\n break;\n case asn1.Type.EMBEDDED:\n rval += ' (Embedded PDV)';\n break;\n case asn1.Type.UTF8:\n rval += ' (UTF8)';\n break;\n case asn1.Type.ROID:\n rval += ' (Relative Object Identifier)';\n break;\n case asn1.Type.SEQUENCE:\n rval += ' (Sequence)';\n break;\n case asn1.Type.SET:\n rval += ' (Set)';\n break;\n case asn1.Type.PRINTABLESTRING:\n rval += ' (Printable String)';\n break;\n case asn1.Type.IA5String:\n rval += ' (IA5String (ASCII))';\n break;\n case asn1.Type.UTCTIME:\n rval += ' (UTC time)';\n break;\n case asn1.Type.GENERALIZEDTIME:\n rval += ' (Generalized time)';\n break;\n case asn1.Type.BMPSTRING:\n rval += ' (BMP String)';\n break;\n }\n } else {\n rval += obj.type;\n }\n\n rval += '\\n';\n rval += indent + 'Constructed: ' + obj.constructed + '\\n';\n\n if(obj.composed) {\n var subvalues = 0;\n var sub = '';\n for(var i = 0; i < obj.value.length; ++i) {\n if(obj.value[i] !== undefined) {\n subvalues += 1;\n sub += asn1.prettyPrint(obj.value[i], level + 1, indentation);\n if((i + 1) < obj.value.length) {\n sub += ',';\n }\n }\n }\n rval += indent + 'Sub values: ' + subvalues + sub;\n } else {\n rval += indent + 'Value: ';\n if(obj.type === asn1.Type.OID) {\n var oid = asn1.derToOid(obj.value);\n rval += oid;\n if(forge.pki && forge.pki.oids) {\n if(oid in forge.pki.oids) {\n rval += ' (' + forge.pki.oids[oid] + ') ';\n }\n }\n }\n if(obj.type === asn1.Type.INTEGER) {\n try {\n rval += asn1.derToInteger(obj.value);\n } catch(ex) {\n rval += '0x' + forge.util.bytesToHex(obj.value);\n }\n } else if(obj.type === asn1.Type.BITSTRING) {\n // TODO: shift bits as needed to display without padding\n if(obj.value.length > 1) {\n // remove unused bits field\n rval += '0x' + forge.util.bytesToHex(obj.value.slice(1));\n } else {\n rval += '(none)';\n }\n // show unused bit count\n if(obj.value.length > 0) {\n var unused = obj.value.charCodeAt(0);\n if(unused == 1) {\n rval += ' (1 unused bit shown)';\n } else if(unused > 1) {\n rval += ' (' + unused + ' unused bits shown)';\n }\n }\n } else if(obj.type === asn1.Type.OCTETSTRING) {\n if(!_nonLatinRegex.test(obj.value)) {\n rval += '(' + obj.value + ') ';\n }\n rval += '0x' + forge.util.bytesToHex(obj.value);\n } else if(obj.type === asn1.Type.UTF8) {\n try {\n rval += forge.util.decodeUtf8(obj.value);\n } catch(e) {\n if(e.message === 'URI malformed') {\n rval +=\n '0x' + forge.util.bytesToHex(obj.value) + ' (malformed UTF8)';\n } else {\n throw e;\n }\n }\n } else if(obj.type === asn1.Type.PRINTABLESTRING ||\n obj.type === asn1.Type.IA5String) {\n rval += obj.value;\n } else if(_nonLatinRegex.test(obj.value)) {\n rval += '0x' + forge.util.bytesToHex(obj.value);\n } else if(obj.value.length === 0) {\n rval += '[null]';\n } else {\n rval += obj.value;\n }\n }\n\n return rval;\n};\n","/**\n * Base-N/Base-X encoding/decoding functions.\n *\n * Original implementation from base-x:\n * https://github.com/cryptocoinjs/base-x\n *\n * Which is MIT licensed:\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n */\nvar api = {};\nmodule.exports = api;\n\n// baseN alphabet indexes\nvar _reverseAlphabets = {};\n\n/**\n * BaseN-encodes a Uint8Array using the given alphabet.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the baseN-encoded output string.\n */\napi.encode = function(input, alphabet, maxline) {\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(maxline !== undefined && typeof maxline !== 'number') {\n throw new TypeError('\"maxline\" must be a number.');\n }\n\n var output = '';\n\n if(!(input instanceof Uint8Array)) {\n // assume forge byte buffer\n output = _encodeWithByteBuffer(input, alphabet);\n } else {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length; ++i) {\n for(var j = 0, carry = input[i]; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n // deal with leading zeros\n for(i = 0; input[i] === 0 && i < input.length - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n }\n\n if(maxline) {\n var regex = new RegExp('.{1,' + maxline + '}', 'g');\n output = output.match(regex).join('\\r\\n');\n }\n\n return output;\n};\n\n/**\n * Decodes a baseN-encoded (using the given alphabet) string to a\n * Uint8Array.\n *\n * @param input the baseN-encoded input string.\n *\n * @return the Uint8Array.\n */\napi.decode = function(input, alphabet) {\n if(typeof input !== 'string') {\n throw new TypeError('\"input\" must be a string.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n\n var table = _reverseAlphabets[alphabet];\n if(!table) {\n // compute reverse alphabet\n table = _reverseAlphabets[alphabet] = [];\n for(var i = 0; i < alphabet.length; ++i) {\n table[alphabet.charCodeAt(i)] = i;\n }\n }\n\n // remove whitespace characters\n input = input.replace(/\\s/g, '');\n\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var bytes = [0];\n for(var i = 0; i < input.length; i++) {\n var value = table[input.charCodeAt(i)];\n if(value === undefined) {\n return;\n }\n\n for(var j = 0, carry = value; j < bytes.length; ++j) {\n carry += bytes[j] * base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while(carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for(var k = 0; input[k] === first && k < input.length - 1; ++k) {\n bytes.push(0);\n }\n\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(bytes.reverse());\n }\n\n return new Uint8Array(bytes.reverse());\n};\n\nfunction _encodeWithByteBuffer(input, alphabet) {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length(); ++i) {\n for(var j = 0, carry = input.at(i); j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n var output = '';\n\n // deal with leading zeros\n for(i = 0; input.at(i) === 0 && i < input.length() - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n\n return output;\n}\n","/**\n * Cipher base API.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nmodule.exports = forge.cipher = forge.cipher || {};\n\n// registered algorithms\nforge.cipher.algorithms = forge.cipher.algorithms || {};\n\n/**\n * Creates a cipher object that can be used to encrypt data using the given\n * algorithm and key. The algorithm may be provided as a string value for a\n * previously registered algorithm or it may be given as a cipher algorithm\n * API object.\n *\n * @param algorithm the algorithm to use, either a string or an algorithm API\n * object.\n * @param key the key to use, as a binary-encoded string of bytes or a\n * byte buffer.\n *\n * @return the cipher.\n */\nforge.cipher.createCipher = function(algorithm, key) {\n var api = algorithm;\n if(typeof api === 'string') {\n api = forge.cipher.getAlgorithm(api);\n if(api) {\n api = api();\n }\n }\n if(!api) {\n throw new Error('Unsupported algorithm: ' + algorithm);\n }\n\n // assume block cipher\n return new forge.cipher.BlockCipher({\n algorithm: api,\n key: key,\n decrypt: false\n });\n};\n\n/**\n * Creates a decipher object that can be used to decrypt data using the given\n * algorithm and key. The algorithm may be provided as a string value for a\n * previously registered algorithm or it may be given as a cipher algorithm\n * API object.\n *\n * @param algorithm the algorithm to use, either a string or an algorithm API\n * object.\n * @param key the key to use, as a binary-encoded string of bytes or a\n * byte buffer.\n *\n * @return the cipher.\n */\nforge.cipher.createDecipher = function(algorithm, key) {\n var api = algorithm;\n if(typeof api === 'string') {\n api = forge.cipher.getAlgorithm(api);\n if(api) {\n api = api();\n }\n }\n if(!api) {\n throw new Error('Unsupported algorithm: ' + algorithm);\n }\n\n // assume block cipher\n return new forge.cipher.BlockCipher({\n algorithm: api,\n key: key,\n decrypt: true\n });\n};\n\n/**\n * Registers an algorithm by name. If the name was already registered, the\n * algorithm API object will be overwritten.\n *\n * @param name the name of the algorithm.\n * @param algorithm the algorithm API object.\n */\nforge.cipher.registerAlgorithm = function(name, algorithm) {\n name = name.toUpperCase();\n forge.cipher.algorithms[name] = algorithm;\n};\n\n/**\n * Gets a registered algorithm by name.\n *\n * @param name the name of the algorithm.\n *\n * @return the algorithm, if found, null if not.\n */\nforge.cipher.getAlgorithm = function(name) {\n name = name.toUpperCase();\n if(name in forge.cipher.algorithms) {\n return forge.cipher.algorithms[name];\n }\n return null;\n};\n\nvar BlockCipher = forge.cipher.BlockCipher = function(options) {\n this.algorithm = options.algorithm;\n this.mode = this.algorithm.mode;\n this.blockSize = this.mode.blockSize;\n this._finish = false;\n this._input = null;\n this.output = null;\n this._op = options.decrypt ? this.mode.decrypt : this.mode.encrypt;\n this._decrypt = options.decrypt;\n this.algorithm.initialize(options);\n};\n\n/**\n * Starts or restarts the encryption or decryption process, whichever\n * was previously configured.\n *\n * For non-GCM mode, the IV may be a binary-encoded string of bytes, an array\n * of bytes, a byte buffer, or an array of 32-bit integers. If the IV is in\n * bytes, then it must be Nb (16) bytes in length. If the IV is given in as\n * 32-bit integers, then it must be 4 integers long.\n *\n * Note: an IV is not required or used in ECB mode.\n *\n * For GCM-mode, the IV must be given as a binary-encoded string of bytes or\n * a byte buffer. The number of bytes should be 12 (96 bits) as recommended\n * by NIST SP-800-38D but another length may be given.\n *\n * @param options the options to use:\n * iv the initialization vector to use as a binary-encoded string of\n * bytes, null to reuse the last ciphered block from a previous\n * update() (this \"residue\" method is for legacy support only).\n * additionalData additional authentication data as a binary-encoded\n * string of bytes, for 'GCM' mode, (default: none).\n * tagLength desired length of authentication tag, in bits, for\n * 'GCM' mode (0-128, default: 128).\n * tag the authentication tag to check if decrypting, as a\n * binary-encoded string of bytes.\n * output the output the buffer to write to, null to create one.\n */\nBlockCipher.prototype.start = function(options) {\n options = options || {};\n var opts = {};\n for(var key in options) {\n opts[key] = options[key];\n }\n opts.decrypt = this._decrypt;\n this._finish = false;\n this._input = forge.util.createBuffer();\n this.output = options.output || forge.util.createBuffer();\n this.mode.start(opts);\n};\n\n/**\n * Updates the next block according to the cipher mode.\n *\n * @param input the buffer to read from.\n */\nBlockCipher.prototype.update = function(input) {\n if(input) {\n // input given, so empty it into the input buffer\n this._input.putBuffer(input);\n }\n\n // do cipher operation until it needs more input and not finished\n while(!this._op.call(this.mode, this._input, this.output, this._finish) &&\n !this._finish) {}\n\n // free consumed memory from input buffer\n this._input.compact();\n};\n\n/**\n * Finishes encrypting or decrypting.\n *\n * @param pad a padding function to use in CBC mode, null for default,\n * signature(blockSize, buffer, decrypt).\n *\n * @return true if successful, false on error.\n */\nBlockCipher.prototype.finish = function(pad) {\n // backwards-compatibility w/deprecated padding API\n // Note: will overwrite padding functions even after another start() call\n if(pad && (this.mode.name === 'ECB' || this.mode.name === 'CBC')) {\n this.mode.pad = function(input) {\n return pad(this.blockSize, input, false);\n };\n this.mode.unpad = function(output) {\n return pad(this.blockSize, output, true);\n };\n }\n\n // build options for padding and afterFinish functions\n var options = {};\n options.decrypt = this._decrypt;\n\n // get # of bytes that won't fill a block\n options.overflow = this._input.length() % this.blockSize;\n\n if(!this._decrypt && this.mode.pad) {\n if(!this.mode.pad(this._input, options)) {\n return false;\n }\n }\n\n // do final update\n this._finish = true;\n this.update();\n\n if(this._decrypt && this.mode.unpad) {\n if(!this.mode.unpad(this.output, options)) {\n return false;\n }\n }\n\n if(this.mode.afterFinish) {\n if(!this.mode.afterFinish(this.output, options)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\n * Supported cipher modes.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nforge.cipher = forge.cipher || {};\n\n// supported cipher modes\nvar modes = module.exports = forge.cipher.modes = forge.cipher.modes || {};\n\n/** Electronic codebook (ECB) (Don't use this; it's not secure) **/\n\nmodes.ecb = function(options) {\n options = options || {};\n this.name = 'ECB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n};\n\nmodes.ecb.prototype.start = function(options) {};\n\nmodes.ecb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // write output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n};\n\nmodes.ecb.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // decrypt block\n this.cipher.decrypt(this._inBlock, this._outBlock);\n\n // write output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n};\n\nmodes.ecb.prototype.pad = function(input, options) {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (input.length() === this.blockSize ?\n this.blockSize : (this.blockSize - input.length()));\n input.fillWithByte(padding, padding);\n return true;\n};\n\nmodes.ecb.prototype.unpad = function(output, options) {\n // check for error: input data not a multiple of blockSize\n if(options.overflow > 0) {\n return false;\n }\n\n // ensure padding byte count is valid\n var len = output.length();\n var count = output.at(len - 1);\n if(count > (this.blockSize << 2)) {\n return false;\n }\n\n // trim off padding bytes\n output.truncate(count);\n return true;\n};\n\n/** Cipher-block Chaining (CBC) **/\n\nmodes.cbc = function(options) {\n options = options || {};\n this.name = 'CBC';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n};\n\nmodes.cbc.prototype.start = function(options) {\n // Note: legacy support for using IV residue (has security flaws)\n // if IV is null, reuse block from previous processing\n if(options.iv === null) {\n // must have a previous block\n if(!this._prev) {\n throw new Error('Invalid IV parameter.');\n }\n this._iv = this._prev.slice(0);\n } else if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n } else {\n // save IV as \"previous\" block\n this._iv = transformIV(options.iv, this.blockSize);\n this._prev = this._iv.slice(0);\n }\n};\n\nmodes.cbc.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n // CBC XOR's IV (or previous block) with plaintext\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._prev[i] ^ input.getInt32();\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // write output, save previous block\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n this._prev = this._outBlock;\n};\n\nmodes.cbc.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // decrypt block\n this.cipher.decrypt(this._inBlock, this._outBlock);\n\n // write output, save previous ciphered block\n // CBC XOR's IV (or previous block) with ciphertext\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._prev[i] ^ this._outBlock[i]);\n }\n this._prev = this._inBlock.slice(0);\n};\n\nmodes.cbc.prototype.pad = function(input, options) {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (input.length() === this.blockSize ?\n this.blockSize : (this.blockSize - input.length()));\n input.fillWithByte(padding, padding);\n return true;\n};\n\nmodes.cbc.prototype.unpad = function(output, options) {\n // check for error: input data not a multiple of blockSize\n if(options.overflow > 0) {\n return false;\n }\n\n // ensure padding byte count is valid\n var len = output.length();\n var count = output.at(len - 1);\n if(count > (this.blockSize << 2)) {\n return false;\n }\n\n // trim off padding bytes\n output.truncate(count);\n return true;\n};\n\n/** Cipher feedback (CFB) **/\n\nmodes.cfb = function(options) {\n options = options || {};\n this.name = 'CFB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output, write input as output\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32() ^ this._outBlock[i];\n output.putInt32(this._inBlock[i]);\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output, write input as partial output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialBlock[i] = input.getInt32() ^ this._outBlock[i];\n this._partialOutput.putInt32(this._partialBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._partialBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block (CFB always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output, write input as output\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n output.putInt32(this._inBlock[i] ^ this._outBlock[i]);\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output, write input as partial output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialBlock[i] = input.getInt32();\n this._partialOutput.putInt32(this._partialBlock[i] ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._partialBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\n/** Output feedback (OFB) **/\n\nmodes.ofb = function(options) {\n options = options || {};\n this.name = 'OFB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(input.length() === 0) {\n return true;\n }\n\n // encrypt block (OFB always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output and update next input\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(input.getInt32() ^ this._outBlock[i]);\n this._inBlock[i] = this._outBlock[i];\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._outBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.decrypt = modes.ofb.prototype.encrypt;\n\n/** Counter (CTR) **/\n\nmodes.ctr = function(options) {\n options = options || {};\n this.name = 'CTR';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.ctr.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.ctr.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block (CTR always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n } else {\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n }\n\n // block complete, increment counter (input block)\n inc32(this._inBlock);\n};\n\nmodes.ctr.prototype.decrypt = modes.ctr.prototype.encrypt;\n\n/** Galois/Counter Mode (GCM) **/\n\nmodes.gcm = function(options) {\n options = options || {};\n this.name = 'GCM';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n\n // R is actually this value concatenated with 120 more zero bits, but\n // we only XOR against R so the other zeros have no effect -- we just\n // apply this value to the first integer in a block\n this._R = 0xE1000000;\n};\n\nmodes.gcm.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // ensure IV is a byte buffer\n var iv = forge.util.createBuffer(options.iv);\n\n // no ciphered data processed yet\n this._cipherLength = 0;\n\n // default additional data is none\n var additionalData;\n if('additionalData' in options) {\n additionalData = forge.util.createBuffer(options.additionalData);\n } else {\n additionalData = forge.util.createBuffer();\n }\n\n // default tag length is 128 bits\n if('tagLength' in options) {\n this._tagLength = options.tagLength;\n } else {\n this._tagLength = 128;\n }\n\n // if tag is given, ensure tag matches tag length\n this._tag = null;\n if(options.decrypt) {\n // save tag to check later\n this._tag = forge.util.createBuffer(options.tag).getBytes();\n if(this._tag.length !== (this._tagLength / 8)) {\n throw new Error('Authentication tag does not match tag length.');\n }\n }\n\n // create tmp storage for hash calculation\n this._hashBlock = new Array(this._ints);\n\n // no tag generated yet\n this.tag = null;\n\n // generate hash subkey\n // (apply block cipher to \"zero\" block)\n this._hashSubkey = new Array(this._ints);\n this.cipher.encrypt([0, 0, 0, 0], this._hashSubkey);\n\n // generate table M\n // use 4-bit tables (32 component decomposition of a 16 byte value)\n // 8-bit tables take more space and are known to have security\n // vulnerabilities (in native implementations)\n this.componentBits = 4;\n this._m = this.generateHashTable(this._hashSubkey, this.componentBits);\n\n // Note: support IV length different from 96 bits? (only supporting\n // 96 bits is recommended by NIST SP-800-38D)\n // generate J_0\n var ivLength = iv.length();\n if(ivLength === 12) {\n // 96-bit IV\n this._j0 = [iv.getInt32(), iv.getInt32(), iv.getInt32(), 1];\n } else {\n // IV is NOT 96-bits\n this._j0 = [0, 0, 0, 0];\n while(iv.length() > 0) {\n this._j0 = this.ghash(\n this._hashSubkey, this._j0,\n [iv.getInt32(), iv.getInt32(), iv.getInt32(), iv.getInt32()]);\n }\n this._j0 = this.ghash(\n this._hashSubkey, this._j0, [0, 0].concat(from64To32(ivLength * 8)));\n }\n\n // generate ICB (initial counter block)\n this._inBlock = this._j0.slice(0);\n inc32(this._inBlock);\n this._partialBytes = 0;\n\n // consume authentication data\n additionalData = forge.util.createBuffer(additionalData);\n // save additional data length as a BE 64-bit number\n this._aDataLength = from64To32(additionalData.length() * 8);\n // pad additional data to 128 bit (16 byte) block size\n var overflow = additionalData.length() % this.blockSize;\n if(overflow) {\n additionalData.fillWithByte(0, this.blockSize - overflow);\n }\n this._s = [0, 0, 0, 0];\n while(additionalData.length() > 0) {\n this._s = this.ghash(this._hashSubkey, this._s, [\n additionalData.getInt32(),\n additionalData.getInt32(),\n additionalData.getInt32(),\n additionalData.getInt32()\n ]);\n }\n};\n\nmodes.gcm.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i] ^= input.getInt32());\n }\n this._cipherLength += this.blockSize;\n } else {\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes <= 0 || finish) {\n // handle overflow prior to hashing\n if(finish) {\n // get block overflow\n var overflow = inputLength % this.blockSize;\n this._cipherLength += overflow;\n // truncate for hash function\n this._partialOutput.truncate(this.blockSize - overflow);\n } else {\n this._cipherLength += this.blockSize;\n }\n\n // get output block for hashing\n for(var i = 0; i < this._ints; ++i) {\n this._outBlock[i] = this._partialOutput.getInt32();\n }\n this._partialOutput.read -= this.blockSize;\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n // block still incomplete, restore input buffer, get partial output,\n // and return early\n input.read -= this.blockSize;\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n }\n\n // update hash block S\n this._s = this.ghash(this._hashSubkey, this._s, this._outBlock);\n\n // increment counter (input block)\n inc32(this._inBlock);\n};\n\nmodes.gcm.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n var inputLength = input.length();\n if(inputLength < this.blockSize && !(finish && inputLength > 0)) {\n return true;\n }\n\n // encrypt block (GCM always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // increment counter (input block)\n inc32(this._inBlock);\n\n // update hash block S\n this._hashBlock[0] = input.getInt32();\n this._hashBlock[1] = input.getInt32();\n this._hashBlock[2] = input.getInt32();\n this._hashBlock[3] = input.getInt32();\n this._s = this.ghash(this._hashSubkey, this._s, this._hashBlock);\n\n // XOR hash input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i] ^ this._hashBlock[i]);\n }\n\n // increment cipher data length\n if(inputLength < this.blockSize) {\n this._cipherLength += inputLength % this.blockSize;\n } else {\n this._cipherLength += this.blockSize;\n }\n};\n\nmodes.gcm.prototype.afterFinish = function(output, options) {\n var rval = true;\n\n // handle overflow\n if(options.decrypt && options.overflow) {\n output.truncate(this.blockSize - options.overflow);\n }\n\n // handle authentication tag\n this.tag = forge.util.createBuffer();\n\n // concatenate additional data length with cipher length\n var lengths = this._aDataLength.concat(from64To32(this._cipherLength * 8));\n\n // include lengths in hash\n this._s = this.ghash(this._hashSubkey, this._s, lengths);\n\n // do GCTR(J_0, S)\n var tag = [];\n this.cipher.encrypt(this._j0, tag);\n for(var i = 0; i < this._ints; ++i) {\n this.tag.putInt32(this._s[i] ^ tag[i]);\n }\n\n // trim tag to length\n this.tag.truncate(this.tag.length() % (this._tagLength / 8));\n\n // check authentication tag\n if(options.decrypt && this.tag.bytes() !== this._tag) {\n rval = false;\n }\n\n return rval;\n};\n\n/**\n * See NIST SP-800-38D 6.3 (Algorithm 1). This function performs Galois\n * field multiplication. The field, GF(2^128), is defined by the polynomial:\n *\n * x^128 + x^7 + x^2 + x + 1\n *\n * Which is represented in little-endian binary form as: 11100001 (0xe1). When\n * the value of a coefficient is 1, a bit is set. The value R, is the\n * concatenation of this value and 120 zero bits, yielding a 128-bit value\n * which matches the block size.\n *\n * This function will multiply two elements (vectors of bytes), X and Y, in\n * the field GF(2^128). The result is initialized to zero. For each bit of\n * X (out of 128), x_i, if x_i is set, then the result is multiplied (XOR'd)\n * by the current value of Y. For each bit, the value of Y will be raised by\n * a power of x (multiplied by the polynomial x). This can be achieved by\n * shifting Y once to the right. If the current value of Y, prior to being\n * multiplied by x, has 0 as its LSB, then it is a 127th degree polynomial.\n * Otherwise, we must divide by R after shifting to find the remainder.\n *\n * @param x the first block to multiply by the second.\n * @param y the second block to multiply by the first.\n *\n * @return the block result of the multiplication.\n */\nmodes.gcm.prototype.multiply = function(x, y) {\n var z_i = [0, 0, 0, 0];\n var v_i = y.slice(0);\n\n // calculate Z_128 (block has 128 bits)\n for(var i = 0; i < 128; ++i) {\n // if x_i is 0, Z_{i+1} = Z_i (unchanged)\n // else Z_{i+1} = Z_i ^ V_i\n // get x_i by finding 32-bit int position, then left shift 1 by remainder\n var x_i = x[(i / 32) | 0] & (1 << (31 - i % 32));\n if(x_i) {\n z_i[0] ^= v_i[0];\n z_i[1] ^= v_i[1];\n z_i[2] ^= v_i[2];\n z_i[3] ^= v_i[3];\n }\n\n // if LSB(V_i) is 1, V_i = V_i >> 1\n // else V_i = (V_i >> 1) ^ R\n this.pow(v_i, v_i);\n }\n\n return z_i;\n};\n\nmodes.gcm.prototype.pow = function(x, out) {\n // if LSB(x) is 1, x = x >>> 1\n // else x = (x >>> 1) ^ R\n var lsb = x[3] & 1;\n\n // always do x >>> 1:\n // starting with the rightmost integer, shift each integer to the right\n // one bit, pulling in the bit from the integer to the left as its top\n // most bit (do this for the last 3 integers)\n for(var i = 3; i > 0; --i) {\n out[i] = (x[i] >>> 1) | ((x[i - 1] & 1) << 31);\n }\n // shift the first integer normally\n out[0] = x[0] >>> 1;\n\n // if lsb was not set, then polynomial had a degree of 127 and doesn't\n // need to divided; otherwise, XOR with R to find the remainder; we only\n // need to XOR the first integer since R technically ends w/120 zero bits\n if(lsb) {\n out[0] ^= this._R;\n }\n};\n\nmodes.gcm.prototype.tableMultiply = function(x) {\n // assumes 4-bit tables are used\n var z = [0, 0, 0, 0];\n for(var i = 0; i < 32; ++i) {\n var idx = (i / 8) | 0;\n var x_i = (x[idx] >>> ((7 - (i % 8)) * 4)) & 0xF;\n var ah = this._m[i][x_i];\n z[0] ^= ah[0];\n z[1] ^= ah[1];\n z[2] ^= ah[2];\n z[3] ^= ah[3];\n }\n return z;\n};\n\n/**\n * A continuing version of the GHASH algorithm that operates on a single\n * block. The hash block, last hash value (Ym) and the new block to hash\n * are given.\n *\n * @param h the hash block.\n * @param y the previous value for Ym, use [0, 0, 0, 0] for a new hash.\n * @param x the block to hash.\n *\n * @return the hashed value (Ym).\n */\nmodes.gcm.prototype.ghash = function(h, y, x) {\n y[0] ^= x[0];\n y[1] ^= x[1];\n y[2] ^= x[2];\n y[3] ^= x[3];\n return this.tableMultiply(y);\n //return this.multiply(y, h);\n};\n\n/**\n * Precomputes a table for multiplying against the hash subkey. This\n * mechanism provides a substantial speed increase over multiplication\n * performed without a table. The table-based multiplication this table is\n * for solves X * H by multiplying each component of X by H and then\n * composing the results together using XOR.\n *\n * This function can be used to generate tables with different bit sizes\n * for the components, however, this implementation assumes there are\n * 32 components of X (which is a 16 byte vector), therefore each component\n * takes 4-bits (so the table is constructed with bits=4).\n *\n * @param h the hash subkey.\n * @param bits the bit size for a component.\n */\nmodes.gcm.prototype.generateHashTable = function(h, bits) {\n // TODO: There are further optimizations that would use only the\n // first table M_0 (or some variant) along with a remainder table;\n // this can be explored in the future\n var multiplier = 8 / bits;\n var perInt = 4 * multiplier;\n var size = 16 * multiplier;\n var m = new Array(size);\n for(var i = 0; i < size; ++i) {\n var tmp = [0, 0, 0, 0];\n var idx = (i / perInt) | 0;\n var shft = ((perInt - 1 - (i % perInt)) * bits);\n tmp[idx] = (1 << (bits - 1)) << shft;\n m[i] = this.generateSubHashTable(this.multiply(tmp, h), bits);\n }\n return m;\n};\n\n/**\n * Generates a table for multiplying against the hash subkey for one\n * particular component (out of all possible component values).\n *\n * @param mid the pre-multiplied value for the middle key of the table.\n * @param bits the bit size for a component.\n */\nmodes.gcm.prototype.generateSubHashTable = function(mid, bits) {\n // compute the table quickly by minimizing the number of\n // POW operations -- they only need to be performed for powers of 2,\n // all other entries can be composed from those powers using XOR\n var size = 1 << bits;\n var half = size >>> 1;\n var m = new Array(size);\n m[half] = mid.slice(0);\n var i = half >>> 1;\n while(i > 0) {\n // raise m0[2 * i] and store in m0[i]\n this.pow(m[2 * i], m[i] = []);\n i >>= 1;\n }\n i = 2;\n while(i < half) {\n for(var j = 1; j < i; ++j) {\n var m_i = m[i];\n var m_j = m[j];\n m[i + j] = [\n m_i[0] ^ m_j[0],\n m_i[1] ^ m_j[1],\n m_i[2] ^ m_j[2],\n m_i[3] ^ m_j[3]\n ];\n }\n i *= 2;\n }\n m[0] = [0, 0, 0, 0];\n /* Note: We could avoid storing these by doing composition during multiply\n calculate top half using composition by speed is preferred. */\n for(i = half + 1; i < size; ++i) {\n var c = m[i ^ half];\n m[i] = [mid[0] ^ c[0], mid[1] ^ c[1], mid[2] ^ c[2], mid[3] ^ c[3]];\n }\n return m;\n};\n\n/** Utility functions */\n\nfunction transformIV(iv, blockSize) {\n if(typeof iv === 'string') {\n // convert iv string into byte buffer\n iv = forge.util.createBuffer(iv);\n }\n\n if(forge.util.isArray(iv) && iv.length > 4) {\n // convert iv byte array into byte buffer\n var tmp = iv;\n iv = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n iv.putByte(tmp[i]);\n }\n }\n\n if(iv.length() < blockSize) {\n throw new Error(\n 'Invalid IV length; got ' + iv.length() +\n ' bytes and expected ' + blockSize + ' bytes.');\n }\n\n if(!forge.util.isArray(iv)) {\n // convert iv byte buffer into 32-bit integer array\n var ints = [];\n var blocks = blockSize / 4;\n for(var i = 0; i < blocks; ++i) {\n ints.push(iv.getInt32());\n }\n iv = ints;\n }\n\n return iv;\n}\n\nfunction inc32(block) {\n // increment last 32 bits of block only\n block[block.length - 1] = (block[block.length - 1] + 1) & 0xFFFFFFFF;\n}\n\nfunction from64To32(num) {\n // convert 64-bit number to two BE Int32s\n return [(num / 0x100000000) | 0, num & 0xFFFFFFFF];\n}\n","/**\n * DES (Data Encryption Standard) implementation.\n *\n * This implementation supports DES as well as 3DES-EDE in ECB and CBC mode.\n * It is based on the BSD-licensed implementation by Paul Tero:\n *\n * Paul Tero, July 2001\n * http://www.tero.co.uk/des/\n *\n * Optimised for performance with large blocks by\n * Michael Hayworth, November 2001\n * http://www.netdealing.com\n *\n * THIS SOFTWARE IS PROVIDED \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2012-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./cipher');\nrequire('./cipherModes');\nrequire('./util');\n\n/* DES API */\nmodule.exports = forge.des = forge.des || {};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('DES-', key);\n * cipher.start({iv: iv});\n *\n * Creates an DES cipher object to encrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as binary-encoded strings of bytes or\n * byte buffers.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC' if IV is\n * given, 'ECB' if null).\n *\n * @return the cipher.\n */\nforge.des.startEncrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: false,\n mode: mode || (iv === null ? 'ECB' : 'CBC')\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('DES-', key);\n *\n * Creates an DES cipher object to encrypt data using the given symmetric key.\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.des.createEncryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: false,\n mode: mode\n });\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('DES-', key);\n * decipher.start({iv: iv});\n *\n * Creates an DES cipher object to decrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as binary-encoded strings of bytes or\n * byte buffers.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC' if IV is\n * given, 'ECB' if null).\n *\n * @return the cipher.\n */\nforge.des.startDecrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: true,\n mode: mode || (iv === null ? 'ECB' : 'CBC')\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('DES-', key);\n *\n * Creates an DES cipher object to decrypt data using the given symmetric key.\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.des.createDecryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: true,\n mode: mode\n });\n};\n\n/**\n * Creates a new DES cipher algorithm object.\n *\n * @param name the name of the algorithm.\n * @param mode the mode factory function.\n *\n * @return the DES algorithm object.\n */\nforge.des.Algorithm = function(name, mode) {\n var self = this;\n self.name = name;\n self.mode = new mode({\n blockSize: 8,\n cipher: {\n encrypt: function(inBlock, outBlock) {\n return _updateBlock(self._keys, inBlock, outBlock, false);\n },\n decrypt: function(inBlock, outBlock) {\n return _updateBlock(self._keys, inBlock, outBlock, true);\n }\n }\n });\n self._init = false;\n};\n\n/**\n * Initializes this DES algorithm by expanding its key.\n *\n * @param options the options to use.\n * key the key to use with this algorithm.\n * decrypt true if the algorithm should be initialized for decryption,\n * false for encryption.\n */\nforge.des.Algorithm.prototype.initialize = function(options) {\n if(this._init) {\n return;\n }\n\n var key = forge.util.createBuffer(options.key);\n if(this.name.indexOf('3DES') === 0) {\n if(key.length() !== 24) {\n throw new Error('Invalid Triple-DES key size: ' + key.length() * 8);\n }\n }\n\n // do key expansion to 16 or 48 subkeys (single or triple DES)\n this._keys = _createKeys(key);\n this._init = true;\n};\n\n/** Register DES algorithms **/\n\nregisterAlgorithm('DES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('DES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('DES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('DES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('DES-CTR', forge.cipher.modes.ctr);\n\nregisterAlgorithm('3DES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('3DES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('3DES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('3DES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('3DES-CTR', forge.cipher.modes.ctr);\n\nfunction registerAlgorithm(name, mode) {\n var factory = function() {\n return new forge.des.Algorithm(name, mode);\n };\n forge.cipher.registerAlgorithm(name, factory);\n}\n\n/** DES implementation **/\n\nvar spfunction1 = [0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004];\nvar spfunction2 = [-0x7fef7fe0,-0x7fff8000,0x8000,0x108020,0x100000,0x20,-0x7fefffe0,-0x7fff7fe0,-0x7fffffe0,-0x7fef7fe0,-0x7fef8000,-0x80000000,-0x7fff8000,0x100000,0x20,-0x7fefffe0,0x108000,0x100020,-0x7fff7fe0,0,-0x80000000,0x8000,0x108020,-0x7ff00000,0x100020,-0x7fffffe0,0,0x108000,0x8020,-0x7fef8000,-0x7ff00000,0x8020,0,0x108020,-0x7fefffe0,0x100000,-0x7fff7fe0,-0x7ff00000,-0x7fef8000,0x8000,-0x7ff00000,-0x7fff8000,0x20,-0x7fef7fe0,0x108020,0x20,0x8000,-0x80000000,0x8020,-0x7fef8000,0x100000,-0x7fffffe0,0x100020,-0x7fff7fe0,-0x7fffffe0,0x100020,0x108000,0,-0x7fff8000,0x8020,-0x80000000,-0x7fefffe0,-0x7fef7fe0,0x108000];\nvar spfunction3 = [0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200];\nvar spfunction4 = [0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080];\nvar spfunction5 = [0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100];\nvar spfunction6 = [0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010];\nvar spfunction7 = [0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002];\nvar spfunction8 = [0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000];\n\n/**\n * Create necessary sub keys.\n *\n * @param key the 64-bit or 192-bit key.\n *\n * @return the expanded keys.\n */\nfunction _createKeys(key) {\n var pc2bytes0 = [0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204],\n pc2bytes1 = [0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101],\n pc2bytes2 = [0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808],\n pc2bytes3 = [0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000],\n pc2bytes4 = [0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010],\n pc2bytes5 = [0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420],\n pc2bytes6 = [0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002],\n pc2bytes7 = [0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800],\n pc2bytes8 = [0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002],\n pc2bytes9 = [0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408],\n pc2bytes10 = [0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020],\n pc2bytes11 = [0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200],\n pc2bytes12 = [0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010],\n pc2bytes13 = [0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105];\n\n // how many iterations (1 for des, 3 for triple des)\n // changed by Paul 16/6/2007 to use Triple DES for 9+ byte keys\n var iterations = key.length() > 8 ? 3 : 1;\n\n // stores the return keys\n var keys = [];\n\n // now define the left shifts which need to be done\n var shifts = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0];\n\n var n = 0, tmp;\n for(var j = 0; j < iterations; j++) {\n var left = key.getInt32();\n var right = key.getInt32();\n\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n tmp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= tmp;\n right ^= (tmp << -16);\n\n tmp = ((left >>> 2) ^ right) & 0x33333333;\n right ^= tmp;\n left ^= (tmp << 2);\n\n tmp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= tmp;\n right ^= (tmp << -16);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n // right needs to be shifted and OR'd with last four bits of left\n tmp = (left << 8) | ((right >>> 20) & 0x000000f0);\n\n // left needs to be put upside down\n left = ((right << 24) | ((right << 8) & 0xff0000) |\n ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0));\n right = tmp;\n\n // now go through and perform these shifts on the left and right keys\n for(var i = 0; i < shifts.length; ++i) {\n //shift the keys either one or two bits to the left\n if(shifts[i]) {\n left = (left << 2) | (left >>> 26);\n right = (right << 2) | (right >>> 26);\n } else {\n left = (left << 1) | (left >>> 27);\n right = (right << 1) | (right >>> 27);\n }\n left &= -0xf;\n right &= -0xf;\n\n // now apply PC-2, in such a way that E is easier when encrypting or\n // decrypting this conversion will look like PC-2 except only the last 6\n // bits of each byte are used rather than 48 consecutive bits and the\n // order of lines will be according to how the S selection functions will\n // be applied: S2, S4, S6, S8, S1, S3, S5, S7\n var lefttmp = (\n pc2bytes0[left >>> 28] | pc2bytes1[(left >>> 24) & 0xf] |\n pc2bytes2[(left >>> 20) & 0xf] | pc2bytes3[(left >>> 16) & 0xf] |\n pc2bytes4[(left >>> 12) & 0xf] | pc2bytes5[(left >>> 8) & 0xf] |\n pc2bytes6[(left >>> 4) & 0xf]);\n var righttmp = (\n pc2bytes7[right >>> 28] | pc2bytes8[(right >>> 24) & 0xf] |\n pc2bytes9[(right >>> 20) & 0xf] | pc2bytes10[(right >>> 16) & 0xf] |\n pc2bytes11[(right >>> 12) & 0xf] | pc2bytes12[(right >>> 8) & 0xf] |\n pc2bytes13[(right >>> 4) & 0xf]);\n tmp = ((righttmp >>> 16) ^ lefttmp) & 0x0000ffff;\n keys[n++] = lefttmp ^ tmp;\n keys[n++] = righttmp ^ (tmp << 16);\n }\n }\n\n return keys;\n}\n\n/**\n * Updates a single block (1 byte) using DES. The update will either\n * encrypt or decrypt the block.\n *\n * @param keys the expanded keys.\n * @param input the input block (an array of 32-bit words).\n * @param output the updated output block.\n * @param decrypt true to decrypt the block, false to encrypt it.\n */\nfunction _updateBlock(keys, input, output, decrypt) {\n // set up loops for single or triple DES\n var iterations = keys.length === 32 ? 3 : 9;\n var looping;\n if(iterations === 3) {\n looping = decrypt ? [30, -2, -2] : [0, 32, 2];\n } else {\n looping = (decrypt ?\n [94, 62, -2, 32, 64, 2, 30, -2, -2] :\n [0, 32, 2, 62, 30, -2, 64, 96, 2]);\n }\n\n var tmp;\n\n var left = input[0];\n var right = input[1];\n\n // first each 64 bit chunk of the message must be permuted according to IP\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n tmp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= tmp;\n left ^= (tmp << 16);\n\n tmp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= tmp;\n right ^= (tmp << 2);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n // rotate left 1 bit\n left = ((left << 1) | (left >>> 31));\n right = ((right << 1) | (right >>> 31));\n\n for(var j = 0; j < iterations; j += 3) {\n var endloop = looping[j + 1];\n var loopinc = looping[j + 2];\n\n // now go through and perform the encryption or decryption\n for(var i = looping[j]; i != endloop; i += loopinc) {\n var right1 = right ^ keys[i];\n var right2 = ((right >>> 4) | (right << 28)) ^ keys[i + 1];\n\n // passing these bytes through the S selection functions\n tmp = left;\n left = right;\n right = tmp ^ (\n spfunction2[(right1 >>> 24) & 0x3f] |\n spfunction4[(right1 >>> 16) & 0x3f] |\n spfunction6[(right1 >>> 8) & 0x3f] |\n spfunction8[right1 & 0x3f] |\n spfunction1[(right2 >>> 24) & 0x3f] |\n spfunction3[(right2 >>> 16) & 0x3f] |\n spfunction5[(right2 >>> 8) & 0x3f] |\n spfunction7[right2 & 0x3f]);\n }\n // unreverse left and right\n tmp = left;\n left = right;\n right = tmp;\n }\n\n // rotate right 1 bit\n left = ((left >>> 1) | (left << 31));\n right = ((right >>> 1) | (right << 31));\n\n // now perform IP-1, which is IP in the opposite direction\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= tmp;\n right ^= (tmp << 2);\n\n tmp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= tmp;\n left ^= (tmp << 16);\n\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n output[0] = left;\n output[1] = right;\n}\n\n/**\n * Deprecated. Instead, use:\n *\n * forge.cipher.createCipher('DES-', key);\n * forge.cipher.createDecipher('DES-', key);\n *\n * Creates a deprecated DES cipher object. This object's mode will default to\n * CBC (cipher-block-chaining).\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param options the options to use.\n * key the symmetric key to use (64 or 192 bits).\n * output the buffer to write to.\n * decrypt true for decryption, false for encryption.\n * mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nfunction _createCipher(options) {\n options = options || {};\n var mode = (options.mode || 'CBC').toUpperCase();\n var algorithm = 'DES-' + mode;\n\n var cipher;\n if(options.decrypt) {\n cipher = forge.cipher.createDecipher(algorithm, options.key);\n } else {\n cipher = forge.cipher.createCipher(algorithm, options.key);\n }\n\n // backwards compatible start API\n var start = cipher.start;\n cipher.start = function(iv, options) {\n // backwards compatibility: support second arg as output buffer\n var output = null;\n if(options instanceof forge.util.ByteBuffer) {\n output = options;\n options = {};\n }\n options = options || {};\n options.output = output;\n options.iv = iv;\n start.call(cipher, options);\n };\n\n return cipher;\n}\n","/**\n * JavaScript implementation of Ed25519.\n *\n * Copyright (c) 2017-2019 Digital Bazaar, Inc.\n *\n * This implementation is based on the most excellent TweetNaCl which is\n * in the public domain. Many thanks to its contributors:\n *\n * https://github.com/dchest/tweetnacl-js\n */\nvar forge = require('./forge');\nrequire('./jsbn');\nrequire('./random');\nrequire('./sha512');\nrequire('./util');\nvar asn1Validator = require('./asn1-validator');\nvar publicKeyValidator = asn1Validator.publicKeyValidator;\nvar privateKeyValidator = asn1Validator.privateKeyValidator;\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\nvar ByteBuffer = forge.util.ByteBuffer;\nvar NativeBuffer = typeof Buffer === 'undefined' ? Uint8Array : Buffer;\n\n/*\n * Ed25519 algorithms, see RFC 8032:\n * https://tools.ietf.org/html/rfc8032\n */\nforge.pki = forge.pki || {};\nmodule.exports = forge.pki.ed25519 = forge.ed25519 = forge.ed25519 || {};\nvar ed25519 = forge.ed25519;\n\ned25519.constants = {};\ned25519.constants.PUBLIC_KEY_BYTE_LENGTH = 32;\ned25519.constants.PRIVATE_KEY_BYTE_LENGTH = 64;\ned25519.constants.SEED_BYTE_LENGTH = 32;\ned25519.constants.SIGN_BYTE_LENGTH = 64;\ned25519.constants.HASH_BYTE_LENGTH = 64;\n\ned25519.generateKeyPair = function(options) {\n options = options || {};\n var seed = options.seed;\n if(seed === undefined) {\n // generate seed\n seed = forge.random.getBytesSync(ed25519.constants.SEED_BYTE_LENGTH);\n } else if(typeof seed === 'string') {\n if(seed.length !== ed25519.constants.SEED_BYTE_LENGTH) {\n throw new TypeError(\n '\"seed\" must be ' + ed25519.constants.SEED_BYTE_LENGTH +\n ' bytes in length.');\n }\n } else if(!(seed instanceof Uint8Array)) {\n throw new TypeError(\n '\"seed\" must be a node.js Buffer, Uint8Array, or a binary string.');\n }\n\n seed = messageToNativeBuffer({message: seed, encoding: 'binary'});\n\n var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n var sk = new NativeBuffer(ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n for(var i = 0; i < 32; ++i) {\n sk[i] = seed[i];\n }\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, privateKey: sk};\n};\n\n/**\n * Converts a private key from a RFC8410 ASN.1 encoding.\n *\n * @param obj - The asn1 representation of a private key.\n *\n * @returns {Object} keyInfo - The key information.\n * @returns {Buffer|Uint8Array} keyInfo.privateKeyBytes - 32 private key bytes.\n */\ned25519.privateKeyFromAsn1 = function(obj) {\n var capture = {};\n var errors = [];\n var valid = forge.asn1.validate(obj, privateKeyValidator, capture, errors);\n if(!valid) {\n var error = new Error('Invalid Key.');\n error.errors = errors;\n throw error;\n }\n var oid = forge.asn1.derToOid(capture.privateKeyOid);\n var ed25519Oid = forge.oids.EdDSA25519;\n if(oid !== ed25519Oid) {\n throw new Error('Invalid OID \"' + oid + '\"; OID must be \"' +\n ed25519Oid + '\".');\n }\n var privateKey = capture.privateKey;\n // manually extract the private key bytes from nested octet string, see FIXME:\n // https://github.com/digitalbazaar/forge/blob/master/lib/asn1.js#L542\n var privateKeyBytes = messageToNativeBuffer({\n message: forge.asn1.fromDer(privateKey).value,\n encoding: 'binary'\n });\n // TODO: RFC8410 specifies a format for encoding the public key bytes along\n // with the private key bytes. `publicKeyBytes` can be returned in the\n // future. https://tools.ietf.org/html/rfc8410#section-10.3\n return {privateKeyBytes: privateKeyBytes};\n};\n\n/**\n * Converts a public key from a RFC8410 ASN.1 encoding.\n *\n * @param obj - The asn1 representation of a public key.\n *\n * @return {Buffer|Uint8Array} - 32 public key bytes.\n */\ned25519.publicKeyFromAsn1 = function(obj) {\n // get SubjectPublicKeyInfo\n var capture = {};\n var errors = [];\n var valid = forge.asn1.validate(obj, publicKeyValidator, capture, errors);\n if(!valid) {\n var error = new Error('Invalid Key.');\n error.errors = errors;\n throw error;\n }\n var oid = forge.asn1.derToOid(capture.publicKeyOid);\n var ed25519Oid = forge.oids.EdDSA25519;\n if(oid !== ed25519Oid) {\n throw new Error('Invalid OID \"' + oid + '\"; OID must be \"' +\n ed25519Oid + '\".');\n }\n var publicKeyBytes = capture.ed25519PublicKey;\n if(publicKeyBytes.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) {\n throw new Error('Key length is invalid.');\n }\n return messageToNativeBuffer({\n message: publicKeyBytes,\n encoding: 'binary'\n });\n};\n\ned25519.publicKeyFromPrivateKey = function(options) {\n options = options || {};\n var privateKey = messageToNativeBuffer({\n message: options.privateKey, encoding: 'binary'\n });\n if(privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.privateKey\" must have a byte length of ' +\n ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n }\n\n var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n for(var i = 0; i < pk.length; ++i) {\n pk[i] = privateKey[32 + i];\n }\n return pk;\n};\n\ned25519.sign = function(options) {\n options = options || {};\n var msg = messageToNativeBuffer(options);\n var privateKey = messageToNativeBuffer({\n message: options.privateKey,\n encoding: 'binary'\n });\n if(privateKey.length === ed25519.constants.SEED_BYTE_LENGTH) {\n var keyPair = ed25519.generateKeyPair({seed: privateKey});\n privateKey = keyPair.privateKey;\n } else if(privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.privateKey\" must have a byte length of ' +\n ed25519.constants.SEED_BYTE_LENGTH + ' or ' +\n ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n }\n\n var signedMsg = new NativeBuffer(\n ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n crypto_sign(signedMsg, msg, msg.length, privateKey);\n\n var sig = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH);\n for(var i = 0; i < sig.length; ++i) {\n sig[i] = signedMsg[i];\n }\n return sig;\n};\n\ned25519.verify = function(options) {\n options = options || {};\n var msg = messageToNativeBuffer(options);\n if(options.signature === undefined) {\n throw new TypeError(\n '\"options.signature\" must be a node.js Buffer, a Uint8Array, a forge ' +\n 'ByteBuffer, or a binary string.');\n }\n var sig = messageToNativeBuffer({\n message: options.signature,\n encoding: 'binary'\n });\n if(sig.length !== ed25519.constants.SIGN_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.signature\" must have a byte length of ' +\n ed25519.constants.SIGN_BYTE_LENGTH);\n }\n var publicKey = messageToNativeBuffer({\n message: options.publicKey,\n encoding: 'binary'\n });\n if(publicKey.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.publicKey\" must have a byte length of ' +\n ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n }\n\n var sm = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n var m = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n var i;\n for(i = 0; i < ed25519.constants.SIGN_BYTE_LENGTH; ++i) {\n sm[i] = sig[i];\n }\n for(i = 0; i < msg.length; ++i) {\n sm[i + ed25519.constants.SIGN_BYTE_LENGTH] = msg[i];\n }\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nfunction messageToNativeBuffer(options) {\n var message = options.message;\n if(message instanceof Uint8Array || message instanceof NativeBuffer) {\n return message;\n }\n\n var encoding = options.encoding;\n if(message === undefined) {\n if(options.md) {\n // TODO: more rigorous validation that `md` is a MessageDigest\n message = options.md.digest().getBytes();\n encoding = 'binary';\n } else {\n throw new TypeError('\"options.message\" or \"options.md\" not specified.');\n }\n }\n\n if(typeof message === 'string' && !encoding) {\n throw new TypeError('\"options.encoding\" must be \"binary\" or \"utf8\".');\n }\n\n if(typeof message === 'string') {\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(message, encoding);\n }\n message = new ByteBuffer(message, encoding);\n } else if(!(message instanceof ByteBuffer)) {\n throw new TypeError(\n '\"options.message\" must be a node.js Buffer, a Uint8Array, a forge ' +\n 'ByteBuffer, or a string with \"options.encoding\" specifying its ' +\n 'encoding.');\n }\n\n // convert to native buffer\n var buffer = new NativeBuffer(message.length());\n for(var i = 0; i < buffer.length; ++i) {\n buffer[i] = message.at(i);\n }\n return buffer;\n}\n\nvar gf0 = gf();\nvar gf1 = gf([1]);\nvar D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]);\nvar D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]);\nvar X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]);\nvar Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]);\nvar L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,\n 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\nvar I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\n// TODO: update forge buffer implementation to use `Buffer` or `Uint8Array`,\n// whichever is available, to improve performance\nfunction sha512(msg, msgLen) {\n // Note: `out` and `msg` are NativeBuffer\n var md = forge.md.sha512.create();\n var buffer = new ByteBuffer(msg);\n md.update(buffer.getBytes(msgLen), 'binary');\n var hash = md.digest().getBytes();\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(hash, 'binary');\n }\n var out = new NativeBuffer(ed25519.constants.HASH_BYTE_LENGTH);\n for(var i = 0; i < 64; ++i) {\n out[i] = hash.charCodeAt(i);\n }\n return out;\n}\n\nfunction crypto_sign_keypair(pk, sk) {\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n var d = sha512(sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for(i = 0; i < 32; ++i) {\n sk[i + 32] = pk[i];\n }\n return 0;\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n var d = sha512(sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for(i = 0; i < n; ++i) {\n sm[64 + i] = m[i];\n }\n for(i = 0; i < 32; ++i) {\n sm[32 + i] = d[32 + i];\n }\n\n var r = sha512(sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for(i = 32; i < 64; ++i) {\n sm[i] = sk[i];\n }\n var h = sha512(sm, n + 64);\n reduce(h);\n\n for(i = 32; i < 64; ++i) {\n x[i] = 0;\n }\n for(i = 0; i < 32; ++i) {\n x[i] = r[i];\n }\n for(i = 0; i < 32; ++i) {\n for(j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new NativeBuffer(32);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if(n < 64) {\n return -1;\n }\n\n if(unpackneg(q, pk)) {\n return -1;\n }\n\n for(i = 0; i < n; ++i) {\n m[i] = sm[i];\n }\n for(i = 0; i < 32; ++i) {\n m[i + 32] = pk[i];\n }\n var h = sha512(m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if(crypto_verify_32(sm, 0, t, 0)) {\n for(i = 0; i < n; ++i) {\n m[i] = 0;\n }\n return -1;\n }\n\n for(i = 0; i < n; ++i) {\n m[i] = sm[i + 64];\n }\n mlen = n;\n return mlen;\n}\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for(i = 63; i >= 32; --i) {\n carry = 0;\n for(j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for(j = 0; j < 32; ++j) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for(j = 0; j < 32; ++j) {\n x[j] -= carry * L[j];\n }\n for(i = 0; i < 32; ++i) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64);\n for(var i = 0; i < 64; ++i) {\n x[i] = r[i];\n r[i] = 0;\n }\n modL(r, x);\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n for(var i = 0; i < 4; ++i) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for(i = 0; i < 16; ++i) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for(j = 0; j < 2; ++j) {\n m[0] = t[0] - 0xffed;\n for(i = 1; i < 15; ++i) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if(neq25519(chk, num)) {\n M(r[0], r[0], I);\n }\n\n S(chk, r[0]);\n M(chk, chk, den);\n if(neq25519(chk, num)) {\n return -1;\n }\n\n if(par25519(r[0]) === (p[31] >> 7)) {\n Z(r[0], gf0, r[0]);\n }\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for(i = 0; i < 16; ++i) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; ++a) {\n c[a] = i[a];\n }\n for(a = 250; a >= 0; --a) {\n S(c, c);\n if(a !== 1) {\n M(c, c, i);\n }\n }\n for(a = 0; a < 16; ++a) {\n o[a] = c[a];\n }\n}\n\nfunction neq25519(a, b) {\n var c = new NativeBuffer(32);\n var d = new NativeBuffer(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x, xi, y, yi, 32);\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i, d = 0;\n for(i = 0; i < n; ++i) {\n d |= x[xi + i] ^ y[yi + i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction par25519(a) {\n var d = new NativeBuffer(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for(i = 255; i >= 0; --i) {\n b = (s[(i / 8)|0] >> (i & 7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction set25519(r, a) {\n var i;\n for(i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; ++a) {\n c[a] = i[a];\n }\n for(a = 253; a >= 0; --a) {\n S(c, c);\n if(a !== 2 && a !== 4) {\n M(c, c, i);\n }\n }\n for(a = 0; a < 16; ++a) {\n o[a] = c[a];\n }\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for(i = 0; i < 16; ++i) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b - 1);\n for(var i = 0; i < 16; ++i) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction gf(init) {\n var i, r = new Float64Array(16);\n if(init) {\n for(i = 0; i < init.length; ++i) {\n r[i] = init[i];\n }\n }\n return r;\n}\n\nfunction A(o, a, b) {\n for(var i = 0; i < 16; ++i) {\n o[i] = a[i] + b[i];\n }\n}\n\nfunction Z(o, a, b) {\n for(var i = 0; i < 16; ++i) {\n o[i] = a[i] - b[i];\n }\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n","/**\n * Node.js module for Forge.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2016 Digital Bazaar, Inc.\n */\nmodule.exports = {\n // default options\n options: {\n usePureJavaScript: false\n }\n};\n","/**\n * Hash-based Message Authentication Code implementation. Requires a message\n * digest object that can be obtained, for example, from forge.md.sha1 or\n * forge.md.md5.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2012 Digital Bazaar, Inc. All rights reserved.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\n/* HMAC API */\nvar hmac = module.exports = forge.hmac = forge.hmac || {};\n\n/**\n * Creates an HMAC object that uses the given message digest object.\n *\n * @return an HMAC object.\n */\nhmac.create = function() {\n // the hmac key to use\n var _key = null;\n\n // the message digest to use\n var _md = null;\n\n // the inner padding\n var _ipadding = null;\n\n // the outer padding\n var _opadding = null;\n\n // hmac context\n var ctx = {};\n\n /**\n * Starts or restarts the HMAC with the given key and message digest.\n *\n * @param md the message digest to use, null to reuse the previous one,\n * a string to use builtin 'sha1', 'md5', 'sha256'.\n * @param key the key to use as a string, array of bytes, byte buffer,\n * or null to reuse the previous key.\n */\n ctx.start = function(md, key) {\n if(md !== null) {\n if(typeof md === 'string') {\n // create builtin message digest\n md = md.toLowerCase();\n if(md in forge.md.algorithms) {\n _md = forge.md.algorithms[md].create();\n } else {\n throw new Error('Unknown hash algorithm \"' + md + '\"');\n }\n } else {\n // store message digest\n _md = md;\n }\n }\n\n if(key === null) {\n // reuse previous key\n key = _key;\n } else {\n if(typeof key === 'string') {\n // convert string into byte buffer\n key = forge.util.createBuffer(key);\n } else if(forge.util.isArray(key)) {\n // convert byte array into byte buffer\n var tmp = key;\n key = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n key.putByte(tmp[i]);\n }\n }\n\n // if key is longer than blocksize, hash it\n var keylen = key.length();\n if(keylen > _md.blockLength) {\n _md.start();\n _md.update(key.bytes());\n key = _md.digest();\n }\n\n // mix key into inner and outer padding\n // ipadding = [0x36 * blocksize] ^ key\n // opadding = [0x5C * blocksize] ^ key\n _ipadding = forge.util.createBuffer();\n _opadding = forge.util.createBuffer();\n keylen = key.length();\n for(var i = 0; i < keylen; ++i) {\n var tmp = key.at(i);\n _ipadding.putByte(0x36 ^ tmp);\n _opadding.putByte(0x5C ^ tmp);\n }\n\n // if key is shorter than blocksize, add additional padding\n if(keylen < _md.blockLength) {\n var tmp = _md.blockLength - keylen;\n for(var i = 0; i < tmp; ++i) {\n _ipadding.putByte(0x36);\n _opadding.putByte(0x5C);\n }\n }\n _key = key;\n _ipadding = _ipadding.bytes();\n _opadding = _opadding.bytes();\n }\n\n // digest is done like so: hash(opadding | hash(ipadding | message))\n\n // prepare to do inner hash\n // hash(ipadding | message)\n _md.start();\n _md.update(_ipadding);\n };\n\n /**\n * Updates the HMAC with the given message bytes.\n *\n * @param bytes the bytes to update with.\n */\n ctx.update = function(bytes) {\n _md.update(bytes);\n };\n\n /**\n * Produces the Message Authentication Code (MAC).\n *\n * @return a byte buffer containing the digest value.\n */\n ctx.getMac = function() {\n // digest is done like so: hash(opadding | hash(ipadding | message))\n // here we do the outer hashing\n var inner = _md.digest().bytes();\n _md.start();\n _md.update(_opadding);\n _md.update(inner);\n return _md.digest();\n };\n // alias for getMac\n ctx.digest = ctx.getMac;\n\n return ctx;\n};\n","/**\n * Node.js module for Forge.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2016 Digital Bazaar, Inc.\n */\nmodule.exports = require('./forge');\nrequire('./aes');\nrequire('./aesCipherSuites');\nrequire('./asn1');\nrequire('./cipher');\nrequire('./des');\nrequire('./ed25519');\nrequire('./hmac');\nrequire('./kem');\nrequire('./log');\nrequire('./md.all');\nrequire('./mgf1');\nrequire('./pbkdf2');\nrequire('./pem');\nrequire('./pkcs1');\nrequire('./pkcs12');\nrequire('./pkcs7');\nrequire('./pki');\nrequire('./prime');\nrequire('./prng');\nrequire('./pss');\nrequire('./random');\nrequire('./rc2');\nrequire('./ssh');\nrequire('./tls');\nrequire('./util');\n","// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n/*\nLicensing (LICENSE)\n-------------------\n\nThis software is covered under the following copyright:\n*/\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n/*\nAddress all questions regarding this license to:\n\n Tom Wu\n tjw@cs.Stanford.EDU\n*/\nvar forge = require('./forge');\n\nmodule.exports = forge.jsbn = forge.jsbn || {};\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary&0xffffff)==0xefcafe);\n\n// (public) Constructor\nfunction BigInteger(a,b,c) {\n this.data = [];\n if(a != null)\n if(\"number\" == typeof a) this.fromNumber(a,b,c);\n else if(b == null && \"string\" != typeof a) this.fromString(a,256);\n else this.fromString(a,b);\n}\nforge.jsbn.BigInteger = BigInteger;\n\n// return new, unset BigInteger\nfunction nbi() { return new BigInteger(null); }\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i,x,w,j,c,n) {\n while(--n >= 0) {\n var v = x*this.data[i++]+w.data[j]+c;\n c = Math.floor(v/0x4000000);\n w.data[j++] = v&0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i,x,w,j,c,n) {\n var xl = x&0x7fff, xh = x>>15;\n while(--n >= 0) {\n var l = this.data[i]&0x7fff;\n var h = this.data[i++]>>15;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x7fff)<<15)+w.data[j]+(c&0x3fffffff);\n c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);\n w.data[j++] = l&0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i,x,w,j,c,n) {\n var xl = x&0x3fff, xh = x>>14;\n while(--n >= 0) {\n var l = this.data[i]&0x3fff;\n var h = this.data[i++]>>14;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x3fff)<<14)+w.data[j]+c;\n c = (l>>28)+(m>>14)+xh*h;\n w.data[j++] = l&0xfffffff;\n }\n return c;\n}\n\n// node.js (no browser)\nif(typeof(navigator) === 'undefined')\n{\n BigInteger.prototype.am = am3;\n dbits = 28;\n} else if(j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if(j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else { // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\n\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1<= 0; --i) r.data[i] = this.data[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = (x<0)?-1:0;\n if(x > 0) this.data[0] = x;\n else if(x < -1) this.data[0] = x+this.DV;\n else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) { var r = nbi(); r.fromInt(i); return r; }\n\n// (protected) set from string and radix\nfunction bnpFromString(s,b) {\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 256) k = 8; // byte array\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else { this.fromRadix(s,b); return; }\n this.t = 0;\n this.s = 0;\n var i = s.length, mi = false, sh = 0;\n while(--i >= 0) {\n var x = (k==8)?s[i]&0xff:intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\") mi = true;\n continue;\n }\n mi = false;\n if(sh == 0)\n this.data[this.t++] = x;\n else if(sh+k > this.DB) {\n this.data[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh));\n } else\n this.data[this.t-1] |= x<= this.DB) sh -= this.DB;\n }\n if(k == 8 && (s[0]&0x80) != 0) {\n this.s = -1;\n if(sh > 0) this.data[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this.data[this.t-1] == c) --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if(this.s < 0) return \"-\"+this.negate().toString(b);\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else return this.toRadix(b);\n var km = (1< 0) {\n if(p < this.DB && (d = this.data[i]>>p) > 0) { m = true; r = int2char(d); }\n while(i >= 0) {\n if(p < k) {\n d = (this.data[i]&((1<>(p+=this.DB-k);\n } else {\n d = (this.data[i]>>(p-=k))&km;\n if(p <= 0) { p += this.DB; --i; }\n }\n if(d > 0) m = true;\n if(m) r += int2char(d);\n }\n }\n return m?r:\"0\";\n}\n\n// (public) -this\nfunction bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }\n\n// (public) |this|\nfunction bnAbs() { return (this.s<0)?this.negate():this; }\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s-a.s;\n if(r != 0) return r;\n var i = this.t;\n r = i-a.t;\n if(r != 0) return (this.s<0)?-r:r;\n while(--i >= 0) if((r=this.data[i]-a.data[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1, t;\n if((t=x>>>16) != 0) { x = t; r += 16; }\n if((t=x>>8) != 0) { x = t; r += 8; }\n if((t=x>>4) != 0) { x = t; r += 4; }\n if((t=x>>2) != 0) { x = t; r += 2; }\n if((t=x>>1) != 0) { x = t; r += 1; }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if(this.t <= 0) return 0;\n return this.DB*(this.t-1)+nbits(this.data[this.t-1]^(this.s&this.DM));\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n,r) {\n var i;\n for(i = this.t-1; i >= 0; --i) r.data[i+n] = this.data[i];\n for(i = n-1; i >= 0; --i) r.data[i] = 0;\n r.t = this.t+n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n,r) {\n for(var i = n; i < this.t; ++i) r.data[i-n] = this.data[i];\n r.t = Math.max(this.t-n,0);\n r.s = this.s;\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n,r) {\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<= 0; --i) {\n r.data[i+ds+1] = (this.data[i]>>cbs)|c;\n c = (this.data[i]&bm)<= 0; --i) r.data[i] = 0;\n r.data[ds] = c;\n r.t = this.t+ds+1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n,r) {\n r.s = this.s;\n var ds = Math.floor(n/this.DB);\n if(ds >= this.t) { r.t = 0; return; }\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<>bs;\n for(var i = ds+1; i < this.t; ++i) {\n r.data[i-ds-1] |= (this.data[i]&bm)<>bs;\n }\n if(bs > 0) r.data[this.t-ds-1] |= (this.s&bm)<>= this.DB;\n }\n if(a.t < this.t) {\n c -= a.s;\n while(i < this.t) {\n c += this.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while(i < a.t) {\n c -= a.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c<0)?-1:0;\n if(c < -1) r.data[i++] = this.DV+c;\n else if(c > 0) r.data[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a,r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i+y.t;\n while(--i >= 0) r.data[i] = 0;\n for(i = 0; i < y.t; ++i) r.data[i+x.t] = x.am(0,y.data[i],r,i,0,x.t);\n r.s = 0;\n r.clamp();\n if(this.s != a.s) BigInteger.ZERO.subTo(r,r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2*x.t;\n while(--i >= 0) r.data[i] = 0;\n for(i = 0; i < x.t-1; ++i) {\n var c = x.am(i,x.data[i],r,2*i,0,1);\n if((r.data[i+x.t]+=x.am(i+1,2*x.data[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {\n r.data[i+x.t] -= x.DV;\n r.data[i+x.t+1] = 1;\n }\n }\n if(r.t > 0) r.data[r.t-1] += x.am(i,x.data[i],r,2*i,0,1);\n r.s = 0;\n r.clamp();\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m,q,r) {\n var pm = m.abs();\n if(pm.t <= 0) return;\n var pt = this.abs();\n if(pt.t < pm.t) {\n if(q != null) q.fromInt(0);\n if(r != null) this.copyTo(r);\n return;\n }\n if(r == null) r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB-nbits(pm.data[pm.t-1]);\t// normalize modulus\n if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } else { pm.copyTo(y); pt.copyTo(r); }\n var ys = y.t;\n var y0 = y.data[ys-1];\n if(y0 == 0) return;\n var yt = y0*(1<1)?y.data[ys-2]>>this.F2:0);\n var d1 = this.FV/yt, d2 = (1<= 0) {\n r.data[r.t++] = 1;\n r.subTo(t,r);\n }\n BigInteger.ONE.dlShiftTo(ys,t);\n t.subTo(y,y);\t// \"negative\" y so we can replace sub with am later\n while(y.t < ys) y.data[y.t++] = 0;\n while(--j >= 0) {\n // Estimate quotient digit\n var qd = (r.data[--i]==y0)?this.DM:Math.floor(r.data[i]*d1+(r.data[i-1]+e)*d2);\n if((r.data[i]+=y.am(0,qd,r,j,0,ys)) < qd) {\t// Try it out\n y.dlShiftTo(j,t);\n r.subTo(t,r);\n while(r.data[i] < --qd) r.subTo(t,r);\n }\n }\n if(q != null) {\n r.drShiftTo(ys,q);\n if(ts != ms) BigInteger.ZERO.subTo(q,q);\n }\n r.t = ys;\n r.clamp();\n if(nsh > 0) r.rShiftTo(nsh,r);\t// Denormalize remainder\n if(ts < 0) BigInteger.ZERO.subTo(r,r);\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a,null,r);\n if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);\n return r;\n}\n\n// Modular reduction using \"classic\" algorithm\nfunction Classic(m) { this.m = m; }\nfunction cConvert(x) {\n if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);\n else return x;\n}\nfunction cRevert(x) { return x; }\nfunction cReduce(x) { x.divRemTo(this.m,null,x); }\nfunction cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\nfunction cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\nClassic.prototype.convert = cConvert;\nClassic.prototype.revert = cRevert;\nClassic.prototype.reduce = cReduce;\nClassic.prototype.mulTo = cMulTo;\nClassic.prototype.sqrTo = cSqrTo;\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if(this.t < 1) return 0;\n var x = this.data[0];\n if((x&1) == 0) return 0;\n var y = x&3;\t\t// y == 1/x mod 2^2\n y = (y*(2-(x&0xf)*y))&0xf;\t// y == 1/x mod 2^4\n y = (y*(2-(x&0xff)*y))&0xff;\t// y == 1/x mod 2^8\n y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;\t// y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y*(2-x*y%this.DV))%this.DV;\t\t// y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y>0)?this.DV-y:-y;\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp&0x7fff;\n this.mph = this.mp>>15;\n this.um = (1<<(m.DB-15))-1;\n this.mt2 = 2*m.t;\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t,r);\n r.divRemTo(this.m,null,r);\n if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);\n return r;\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while(x.t <= this.mt2)\t// pad x so am has enough room later\n x.data[x.t++] = 0;\n for(var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x.data[i]*mp mod DV\n var j = x.data[i]&0x7fff;\n var u0 = (j*this.mpl+(((j*this.mph+(x.data[i]>>15)*this.mpl)&this.um)<<15))&x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i+this.m.t;\n x.data[j] += this.m.am(0,u0,x,i,0,this.m.t);\n // propagate carry\n while(x.data[j] >= x.DV) { x.data[j] -= x.DV; x.data[++j]++; }\n }\n x.clamp();\n x.drShiftTo(this.m.t,x);\n if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n\n// (protected) true iff this is even\nfunction bnpIsEven() { return ((this.t>0)?(this.data[0]&1):this.s) == 0; }\n\n// (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\nfunction bnpExp(e,z) {\n if(e > 0xffffffff || e < 1) return BigInteger.ONE;\n var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;\n g.copyTo(r);\n while(--i >= 0) {\n z.sqrTo(r,r2);\n if((e&(1< 0) z.mulTo(r2,g,r);\n else { var t = r; r = r2; r2 = t; }\n }\n return z.revert(r);\n}\n\n// (public) this^e % m, 0 <= e < 2^32\nfunction bnModPowInt(e,m) {\n var z;\n if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);\n return this.exp(e,z);\n}\n\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.isEven = bnpIsEven;\nBigInteger.prototype.exp = bnpExp;\n\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.modPowInt = bnModPowInt;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n// jsbn2 lib\n\n//Copyright (c) 2005-2009 Tom Wu\n//All Rights Reserved.\n//See \"LICENSE\" for details (See jsbn.js for LICENSE).\n\n//Extended JavaScript BN functions, required for RSA private ops.\n\n//Version 1.1: new BigInteger(\"0\", 10) returns \"proper\" zero\n\n//(public)\nfunction bnClone() { var r = nbi(); this.copyTo(r); return r; }\n\n//(public) return value as integer\nfunction bnIntValue() {\nif(this.s < 0) {\n if(this.t == 1) return this.data[0]-this.DV;\n else if(this.t == 0) return -1;\n} else if(this.t == 1) return this.data[0];\nelse if(this.t == 0) return 0;\n// assumes 16 < DB < 32\nreturn ((this.data[1]&((1<<(32-this.DB))-1))<>24; }\n\n//(public) return value as short (assumes DB>=16)\nfunction bnShortValue() { return (this.t==0)?this.s:(this.data[0]<<16)>>16; }\n\n//(protected) return x s.t. r^x < DV\nfunction bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }\n\n//(public) 0 if this == 0, 1 if this > 0\nfunction bnSigNum() {\nif(this.s < 0) return -1;\nelse if(this.t <= 0 || (this.t == 1 && this.data[0] <= 0)) return 0;\nelse return 1;\n}\n\n//(protected) convert to radix string\nfunction bnpToRadix(b) {\nif(b == null) b = 10;\nif(this.signum() == 0 || b < 2 || b > 36) return \"0\";\nvar cs = this.chunkSize(b);\nvar a = Math.pow(b,cs);\nvar d = nbv(a), y = nbi(), z = nbi(), r = \"\";\nthis.divRemTo(d,y,z);\nwhile(y.signum() > 0) {\n r = (a+z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d,y,z);\n}\nreturn z.intValue().toString(b) + r;\n}\n\n//(protected) convert from radix string\nfunction bnpFromRadix(s,b) {\nthis.fromInt(0);\nif(b == null) b = 10;\nvar cs = this.chunkSize(b);\nvar d = Math.pow(b,cs), mi = false, j = 0, w = 0;\nfor(var i = 0; i < s.length; ++i) {\n var x = intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\" && this.signum() == 0) mi = true;\n continue;\n }\n w = b*w+x;\n if(++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w,0);\n j = 0;\n w = 0;\n }\n}\nif(j > 0) {\n this.dMultiply(Math.pow(b,j));\n this.dAddOffset(w,0);\n}\nif(mi) BigInteger.ZERO.subTo(this,this);\n}\n\n//(protected) alternate constructor\nfunction bnpFromNumber(a,b,c) {\nif(\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if(a < 2) this.fromInt(1);\n else {\n this.fromNumber(a,c);\n if(!this.testBit(a-1)) // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);\n if(this.isEven()) this.dAddOffset(1,0); // force odd\n while(!this.isProbablePrime(b)) {\n this.dAddOffset(2,0);\n if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);\n }\n }\n} else {\n // new BigInteger(int,RNG)\n var x = new Array(), t = a&7;\n x.length = (a>>3)+1;\n b.nextBytes(x);\n if(t > 0) x[0] &= ((1< 0) {\n if(p < this.DB && (d = this.data[i]>>p) != (this.s&this.DM)>>p)\n r[k++] = d|(this.s<<(this.DB-p));\n while(i >= 0) {\n if(p < 8) {\n d = (this.data[i]&((1<>(p+=this.DB-8);\n } else {\n d = (this.data[i]>>(p-=8))&0xff;\n if(p <= 0) { p += this.DB; --i; }\n }\n if((d&0x80) != 0) d |= -256;\n if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;\n if(k > 0 || d != this.s) r[k++] = d;\n }\n}\nreturn r;\n}\n\nfunction bnEquals(a) { return(this.compareTo(a)==0); }\nfunction bnMin(a) { return(this.compareTo(a)<0)?this:a; }\nfunction bnMax(a) { return(this.compareTo(a)>0)?this:a; }\n\n//(protected) r = this op a (bitwise)\nfunction bnpBitwiseTo(a,op,r) {\nvar i, f, m = Math.min(a.t,this.t);\nfor(i = 0; i < m; ++i) r.data[i] = op(this.data[i],a.data[i]);\nif(a.t < this.t) {\n f = a.s&this.DM;\n for(i = m; i < this.t; ++i) r.data[i] = op(this.data[i],f);\n r.t = this.t;\n} else {\n f = this.s&this.DM;\n for(i = m; i < a.t; ++i) r.data[i] = op(f,a.data[i]);\n r.t = a.t;\n}\nr.s = op(this.s,a.s);\nr.clamp();\n}\n\n//(public) this & a\nfunction op_and(x,y) { return x&y; }\nfunction bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }\n\n//(public) this | a\nfunction op_or(x,y) { return x|y; }\nfunction bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }\n\n//(public) this ^ a\nfunction op_xor(x,y) { return x^y; }\nfunction bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }\n\n//(public) this & ~a\nfunction op_andnot(x,y) { return x&~y; }\nfunction bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }\n\n//(public) ~this\nfunction bnNot() {\nvar r = nbi();\nfor(var i = 0; i < this.t; ++i) r.data[i] = this.DM&~this.data[i];\nr.t = this.t;\nr.s = ~this.s;\nreturn r;\n}\n\n//(public) this << n\nfunction bnShiftLeft(n) {\nvar r = nbi();\nif(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);\nreturn r;\n}\n\n//(public) this >> n\nfunction bnShiftRight(n) {\nvar r = nbi();\nif(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);\nreturn r;\n}\n\n//return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\nif(x == 0) return -1;\nvar r = 0;\nif((x&0xffff) == 0) { x >>= 16; r += 16; }\nif((x&0xff) == 0) { x >>= 8; r += 8; }\nif((x&0xf) == 0) { x >>= 4; r += 4; }\nif((x&3) == 0) { x >>= 2; r += 2; }\nif((x&1) == 0) ++r;\nreturn r;\n}\n\n//(public) returns index of lowest 1-bit (or -1 if none)\nfunction bnGetLowestSetBit() {\nfor(var i = 0; i < this.t; ++i)\n if(this.data[i] != 0) return i*this.DB+lbit(this.data[i]);\nif(this.s < 0) return this.t*this.DB;\nreturn -1;\n}\n\n//return number of 1 bits in x\nfunction cbit(x) {\nvar r = 0;\nwhile(x != 0) { x &= x-1; ++r; }\nreturn r;\n}\n\n//(public) return number of set bits\nfunction bnBitCount() {\nvar r = 0, x = this.s&this.DM;\nfor(var i = 0; i < this.t; ++i) r += cbit(this.data[i]^x);\nreturn r;\n}\n\n//(public) true iff nth bit is set\nfunction bnTestBit(n) {\nvar j = Math.floor(n/this.DB);\nif(j >= this.t) return(this.s!=0);\nreturn((this.data[j]&(1<<(n%this.DB)))!=0);\n}\n\n//(protected) this op (1<>= this.DB;\n}\nif(a.t < this.t) {\n c += a.s;\n while(i < this.t) {\n c += this.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n} else {\n c += this.s;\n while(i < a.t) {\n c += a.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += a.s;\n}\nr.s = (c<0)?-1:0;\nif(c > 0) r.data[i++] = c;\nelse if(c < -1) r.data[i++] = this.DV+c;\nr.t = i;\nr.clamp();\n}\n\n//(public) this + a\nfunction bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }\n\n//(public) this - a\nfunction bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }\n\n//(public) this * a\nfunction bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }\n\n//(public) this / a\nfunction bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }\n\n//(public) this % a\nfunction bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }\n\n//(public) [this/a,this%a]\nfunction bnDivideAndRemainder(a) {\nvar q = nbi(), r = nbi();\nthis.divRemTo(a,q,r);\nreturn new Array(q,r);\n}\n\n//(protected) this *= n, this >= 0, 1 < n < DV\nfunction bnpDMultiply(n) {\nthis.data[this.t] = this.am(0,n-1,this,0,0,this.t);\n++this.t;\nthis.clamp();\n}\n\n//(protected) this += n << w words, this >= 0\nfunction bnpDAddOffset(n,w) {\nif(n == 0) return;\nwhile(this.t <= w) this.data[this.t++] = 0;\nthis.data[w] += n;\nwhile(this.data[w] >= this.DV) {\n this.data[w] -= this.DV;\n if(++w >= this.t) this.data[this.t++] = 0;\n ++this.data[w];\n}\n}\n\n//A \"null\" reducer\nfunction NullExp() {}\nfunction nNop(x) { return x; }\nfunction nMulTo(x,y,r) { x.multiplyTo(y,r); }\nfunction nSqrTo(x,r) { x.squareTo(r); }\n\nNullExp.prototype.convert = nNop;\nNullExp.prototype.revert = nNop;\nNullExp.prototype.mulTo = nMulTo;\nNullExp.prototype.sqrTo = nSqrTo;\n\n//(public) this^e\nfunction bnPow(e) { return this.exp(e,new NullExp()); }\n\n//(protected) r = lower n words of \"this * a\", a.t <= n\n//\"this\" should be the larger one if appropriate.\nfunction bnpMultiplyLowerTo(a,n,r) {\nvar i = Math.min(this.t+a.t,n);\nr.s = 0; // assumes a,this >= 0\nr.t = i;\nwhile(i > 0) r.data[--i] = 0;\nvar j;\nfor(j = r.t-this.t; i < j; ++i) r.data[i+this.t] = this.am(0,a.data[i],r,i,0,this.t);\nfor(j = Math.min(a.t,n); i < j; ++i) this.am(0,a.data[i],r,i,0,n-i);\nr.clamp();\n}\n\n//(protected) r = \"this * a\" without lower n words, n > 0\n//\"this\" should be the larger one if appropriate.\nfunction bnpMultiplyUpperTo(a,n,r) {\n--n;\nvar i = r.t = this.t+a.t-n;\nr.s = 0; // assumes a,this >= 0\nwhile(--i >= 0) r.data[i] = 0;\nfor(i = Math.max(n-this.t,0); i < a.t; ++i)\n r.data[this.t+i-n] = this.am(n-i,a.data[i],r,0,0,this.t+i-n);\nr.clamp();\nr.drShiftTo(1,r);\n}\n\n//Barrett modular reduction\nfunction Barrett(m) {\n// setup Barrett\nthis.r2 = nbi();\nthis.q3 = nbi();\nBigInteger.ONE.dlShiftTo(2*m.t,this.r2);\nthis.mu = this.r2.divide(m);\nthis.m = m;\n}\n\nfunction barrettConvert(x) {\nif(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);\nelse if(x.compareTo(this.m) < 0) return x;\nelse { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }\n}\n\nfunction barrettRevert(x) { return x; }\n\n//x = x mod m (HAC 14.42)\nfunction barrettReduce(x) {\nx.drShiftTo(this.m.t-1,this.r2);\nif(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }\nthis.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);\nthis.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);\nwhile(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);\nx.subTo(this.r2,x);\nwhile(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n}\n\n//r = x^2 mod m; x != r\nfunction barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n//r = x*y mod m; x,y != r\nfunction barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\nBarrett.prototype.convert = barrettConvert;\nBarrett.prototype.revert = barrettRevert;\nBarrett.prototype.reduce = barrettReduce;\nBarrett.prototype.mulTo = barrettMulTo;\nBarrett.prototype.sqrTo = barrettSqrTo;\n\n//(public) this^e % m (HAC 14.85)\nfunction bnModPow(e,m) {\nvar i = e.bitLength(), k, r = nbv(1), z;\nif(i <= 0) return r;\nelse if(i < 18) k = 1;\nelse if(i < 48) k = 3;\nelse if(i < 144) k = 4;\nelse if(i < 768) k = 5;\nelse k = 6;\nif(i < 8)\n z = new Classic(m);\nelse if(m.isEven())\n z = new Barrett(m);\nelse\n z = new Montgomery(m);\n\n// precomputation\nvar g = new Array(), n = 3, k1 = k-1, km = (1< 1) {\n var g2 = nbi();\n z.sqrTo(g[1],g2);\n while(n <= km) {\n g[n] = nbi();\n z.mulTo(g2,g[n-2],g[n]);\n n += 2;\n }\n}\n\nvar j = e.t-1, w, is1 = true, r2 = nbi(), t;\ni = nbits(e.data[j])-1;\nwhile(j >= 0) {\n if(i >= k1) w = (e.data[j]>>(i-k1))&km;\n else {\n w = (e.data[j]&((1<<(i+1))-1))<<(k1-i);\n if(j > 0) w |= e.data[j-1]>>(this.DB+i-k1);\n }\n\n n = k;\n while((w&1) == 0) { w >>= 1; --n; }\n if((i -= n) < 0) { i += this.DB; --j; }\n if(is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }\n if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }\n z.mulTo(r2,g[w],r);\n }\n\n while(j >= 0 && (e.data[j]&(1< 0) {\n x.rShiftTo(g,x);\n y.rShiftTo(g,y);\n}\nwhile(x.signum() > 0) {\n if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);\n if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);\n if(x.compareTo(y) >= 0) {\n x.subTo(y,x);\n x.rShiftTo(1,x);\n } else {\n y.subTo(x,y);\n y.rShiftTo(1,y);\n }\n}\nif(g > 0) y.lShiftTo(g,y);\nreturn y;\n}\n\n//(protected) this % n, n < 2^26\nfunction bnpModInt(n) {\nif(n <= 0) return 0;\nvar d = this.DV%n, r = (this.s<0)?n-1:0;\nif(this.t > 0)\n if(d == 0) r = this.data[0]%n;\n else for(var i = this.t-1; i >= 0; --i) r = (d*r+this.data[i])%n;\nreturn r;\n}\n\n//(public) 1/this % m (HAC 14.61)\nfunction bnModInverse(m) {\nvar ac = m.isEven();\nif((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;\nvar u = m.clone(), v = this.clone();\nvar a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);\nwhile(u.signum() != 0) {\n while(u.isEven()) {\n u.rShiftTo(1,u);\n if(ac) {\n if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }\n a.rShiftTo(1,a);\n } else if(!b.isEven()) b.subTo(m,b);\n b.rShiftTo(1,b);\n }\n while(v.isEven()) {\n v.rShiftTo(1,v);\n if(ac) {\n if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }\n c.rShiftTo(1,c);\n } else if(!d.isEven()) d.subTo(m,d);\n d.rShiftTo(1,d);\n }\n if(u.compareTo(v) >= 0) {\n u.subTo(v,u);\n if(ac) a.subTo(c,a);\n b.subTo(d,b);\n } else {\n v.subTo(u,v);\n if(ac) c.subTo(a,c);\n d.subTo(b,d);\n }\n}\nif(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;\nif(d.compareTo(m) >= 0) return d.subtract(m);\nif(d.signum() < 0) d.addTo(m,d); else return d;\nif(d.signum() < 0) return d.add(m); else return d;\n}\n\nvar lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];\nvar lplim = (1<<26)/lowprimes[lowprimes.length-1];\n\n//(public) test primality with certainty >= 1-.5^t\nfunction bnIsProbablePrime(t) {\nvar i, x = this.abs();\nif(x.t == 1 && x.data[0] <= lowprimes[lowprimes.length-1]) {\n for(i = 0; i < lowprimes.length; ++i)\n if(x.data[0] == lowprimes[i]) return true;\n return false;\n}\nif(x.isEven()) return false;\ni = 1;\nwhile(i < lowprimes.length) {\n var m = lowprimes[i], j = i+1;\n while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];\n m = x.modInt(m);\n while(i < j) if(m%lowprimes[i++] == 0) return false;\n}\nreturn x.millerRabin(t);\n}\n\n//(protected) true if probably prime (HAC 4.24, Miller-Rabin)\nfunction bnpMillerRabin(t) {\nvar n1 = this.subtract(BigInteger.ONE);\nvar k = n1.getLowestSetBit();\nif(k <= 0) return false;\nvar r = n1.shiftRight(k);\nvar prng = bnGetPrng();\nvar a;\nfor(var i = 0; i < t; ++i) {\n // select witness 'a' at random from between 1 and n1\n do {\n a = new BigInteger(this.bitLength(), prng);\n }\n while(a.compareTo(BigInteger.ONE) <= 0 || a.compareTo(n1) >= 0);\n var y = a.modPow(r,this);\n if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while(j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2,this);\n if(y.compareTo(BigInteger.ONE) == 0) return false;\n }\n if(y.compareTo(n1) != 0) return false;\n }\n}\nreturn true;\n}\n\n// get pseudo random number generator\nfunction bnGetPrng() {\n // create prng with api that matches BigInteger secure random\n return {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n for(var i = 0; i < x.length; ++i) {\n x[i] = Math.floor(Math.random() * 0x0100);\n }\n }\n };\n}\n\n//protected\nBigInteger.prototype.chunkSize = bnpChunkSize;\nBigInteger.prototype.toRadix = bnpToRadix;\nBigInteger.prototype.fromRadix = bnpFromRadix;\nBigInteger.prototype.fromNumber = bnpFromNumber;\nBigInteger.prototype.bitwiseTo = bnpBitwiseTo;\nBigInteger.prototype.changeBit = bnpChangeBit;\nBigInteger.prototype.addTo = bnpAddTo;\nBigInteger.prototype.dMultiply = bnpDMultiply;\nBigInteger.prototype.dAddOffset = bnpDAddOffset;\nBigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\nBigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\nBigInteger.prototype.modInt = bnpModInt;\nBigInteger.prototype.millerRabin = bnpMillerRabin;\n\n//public\nBigInteger.prototype.clone = bnClone;\nBigInteger.prototype.intValue = bnIntValue;\nBigInteger.prototype.byteValue = bnByteValue;\nBigInteger.prototype.shortValue = bnShortValue;\nBigInteger.prototype.signum = bnSigNum;\nBigInteger.prototype.toByteArray = bnToByteArray;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.min = bnMin;\nBigInteger.prototype.max = bnMax;\nBigInteger.prototype.and = bnAnd;\nBigInteger.prototype.or = bnOr;\nBigInteger.prototype.xor = bnXor;\nBigInteger.prototype.andNot = bnAndNot;\nBigInteger.prototype.not = bnNot;\nBigInteger.prototype.shiftLeft = bnShiftLeft;\nBigInteger.prototype.shiftRight = bnShiftRight;\nBigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\nBigInteger.prototype.bitCount = bnBitCount;\nBigInteger.prototype.testBit = bnTestBit;\nBigInteger.prototype.setBit = bnSetBit;\nBigInteger.prototype.clearBit = bnClearBit;\nBigInteger.prototype.flipBit = bnFlipBit;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.remainder = bnRemainder;\nBigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\nBigInteger.prototype.modPow = bnModPow;\nBigInteger.prototype.modInverse = bnModInverse;\nBigInteger.prototype.pow = bnPow;\nBigInteger.prototype.gcd = bnGCD;\nBigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n\n//BigInteger interfaces not implemented in jsbn:\n\n//BigInteger(int signum, byte[] magnitude)\n//double doubleValue()\n//float floatValue()\n//int hashCode()\n//long longValue()\n//static BigInteger valueOf(long val)\n","/**\n * Javascript implementation of RSA-KEM.\n *\n * @author Lautaro Cozzani Rodriguez\n * @author Dave Longley\n *\n * Copyright (c) 2014 Lautaro Cozzani \n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./random');\nrequire('./jsbn');\n\nmodule.exports = forge.kem = forge.kem || {};\n\nvar BigInteger = forge.jsbn.BigInteger;\n\n/**\n * The API for the RSA Key Encapsulation Mechanism (RSA-KEM) from ISO 18033-2.\n */\nforge.kem.rsa = {};\n\n/**\n * Creates an RSA KEM API object for generating a secret asymmetric key.\n *\n * The symmetric key may be generated via a call to 'encrypt', which will\n * produce a ciphertext to be transmitted to the recipient and a key to be\n * kept secret. The ciphertext is a parameter to be passed to 'decrypt' which\n * will produce the same secret key for the recipient to use to decrypt a\n * message that was encrypted with the secret key.\n *\n * @param kdf the KDF API to use (eg: new forge.kem.kdf1()).\n * @param options the options to use.\n * [prng] a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n */\nforge.kem.rsa.create = function(kdf, options) {\n options = options || {};\n var prng = options.prng || forge.random;\n\n var kem = {};\n\n /**\n * Generates a secret key and its encapsulation.\n *\n * @param publicKey the RSA public key to encrypt with.\n * @param keyLength the length, in bytes, of the secret key to generate.\n *\n * @return an object with:\n * encapsulation: the ciphertext for generating the secret key, as a\n * binary-encoded string of bytes.\n * key: the secret key to use for encrypting a message.\n */\n kem.encrypt = function(publicKey, keyLength) {\n // generate a random r where 1 < r < n\n var byteLength = Math.ceil(publicKey.n.bitLength() / 8);\n var r;\n do {\n r = new BigInteger(\n forge.util.bytesToHex(prng.getBytesSync(byteLength)),\n 16).mod(publicKey.n);\n } while(r.compareTo(BigInteger.ONE) <= 0);\n\n // prepend r with zeros\n r = forge.util.hexToBytes(r.toString(16));\n var zeros = byteLength - r.length;\n if(zeros > 0) {\n r = forge.util.fillString(String.fromCharCode(0), zeros) + r;\n }\n\n // encrypt the random\n var encapsulation = publicKey.encrypt(r, 'NONE');\n\n // generate the secret key\n var key = kdf.generate(r, keyLength);\n\n return {encapsulation: encapsulation, key: key};\n };\n\n /**\n * Decrypts an encapsulated secret key.\n *\n * @param privateKey the RSA private key to decrypt with.\n * @param encapsulation the ciphertext for generating the secret key, as\n * a binary-encoded string of bytes.\n * @param keyLength the length, in bytes, of the secret key to generate.\n *\n * @return the secret key as a binary-encoded string of bytes.\n */\n kem.decrypt = function(privateKey, encapsulation, keyLength) {\n // decrypt the encapsulation and generate the secret key\n var r = privateKey.decrypt(encapsulation, 'NONE');\n return kdf.generate(r, keyLength);\n };\n\n return kem;\n};\n\n// TODO: add forge.kem.kdf.create('KDF1', {md: ..., ...}) API?\n\n/**\n * Creates a key derivation API object that implements KDF1 per ISO 18033-2.\n *\n * @param md the hash API to use.\n * @param [digestLength] an optional digest length that must be positive and\n * less than or equal to md.digestLength.\n *\n * @return a KDF1 API object.\n */\nforge.kem.kdf1 = function(md, digestLength) {\n _createKDF(this, md, 0, digestLength || md.digestLength);\n};\n\n/**\n * Creates a key derivation API object that implements KDF2 per ISO 18033-2.\n *\n * @param md the hash API to use.\n * @param [digestLength] an optional digest length that must be positive and\n * less than or equal to md.digestLength.\n *\n * @return a KDF2 API object.\n */\nforge.kem.kdf2 = function(md, digestLength) {\n _createKDF(this, md, 1, digestLength || md.digestLength);\n};\n\n/**\n * Creates a KDF1 or KDF2 API object.\n *\n * @param md the hash API to use.\n * @param counterStart the starting index for the counter.\n * @param digestLength the digest length to use.\n *\n * @return the KDF API object.\n */\nfunction _createKDF(kdf, md, counterStart, digestLength) {\n /**\n * Generate a key of the specified length.\n *\n * @param x the binary-encoded byte string to generate a key from.\n * @param length the number of bytes to generate (the size of the key).\n *\n * @return the key as a binary-encoded string.\n */\n kdf.generate = function(x, length) {\n var key = new forge.util.ByteBuffer();\n\n // run counter from counterStart to ceil(length / Hash.len)\n var k = Math.ceil(length / digestLength) + counterStart;\n\n var c = new forge.util.ByteBuffer();\n for(var i = counterStart; i < k; ++i) {\n // I2OSP(i, 4): convert counter to an octet string of 4 octets\n c.putInt32(i);\n\n // digest 'x' and the counter and add the result to the key\n md.start();\n md.update(x + c.getBytes());\n var hash = md.digest();\n key.putBytes(hash.getBytes(digestLength));\n }\n\n // truncate to the correct key length\n key.truncate(key.length() - length);\n return key.getBytes();\n };\n}\n","/**\n * Cross-browser support for logging in a web application.\n *\n * @author David I. Lehn \n *\n * Copyright (c) 2008-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\n/* LOG API */\nmodule.exports = forge.log = forge.log || {};\n\n/**\n * Application logging system.\n *\n * Each logger level available as it's own function of the form:\n * forge.log.level(category, args...)\n * The category is an arbitrary string, and the args are the same as\n * Firebug's console.log API. By default the call will be output as:\n * 'LEVEL [category] , args[1], ...'\n * This enables proper % formatting via the first argument.\n * Each category is enabled by default but can be enabled or disabled with\n * the setCategoryEnabled() function.\n */\n// list of known levels\nforge.log.levels = [\n 'none', 'error', 'warning', 'info', 'debug', 'verbose', 'max'];\n// info on the levels indexed by name:\n// index: level index\n// name: uppercased display name\nvar sLevelInfo = {};\n// list of loggers\nvar sLoggers = [];\n/**\n * Standard console logger. If no console support is enabled this will\n * remain null. Check before using.\n */\nvar sConsoleLogger = null;\n\n// logger flags\n/**\n * Lock the level at the current value. Used in cases where user config may\n * set the level such that only critical messages are seen but more verbose\n * messages are needed for debugging or other purposes.\n */\nforge.log.LEVEL_LOCKED = (1 << 1);\n/**\n * Always call log function. By default, the logging system will check the\n * message level against logger.level before calling the log function. This\n * flag allows the function to do its own check.\n */\nforge.log.NO_LEVEL_CHECK = (1 << 2);\n/**\n * Perform message interpolation with the passed arguments. \"%\" style\n * fields in log messages will be replaced by arguments as needed. Some\n * loggers, such as Firebug, may do this automatically. The original log\n * message will be available as 'message' and the interpolated version will\n * be available as 'fullMessage'.\n */\nforge.log.INTERPOLATE = (1 << 3);\n\n// setup each log level\nfor(var i = 0; i < forge.log.levels.length; ++i) {\n var level = forge.log.levels[i];\n sLevelInfo[level] = {\n index: i,\n name: level.toUpperCase()\n };\n}\n\n/**\n * Message logger. Will dispatch a message to registered loggers as needed.\n *\n * @param message message object\n */\nforge.log.logMessage = function(message) {\n var messageLevelIndex = sLevelInfo[message.level].index;\n for(var i = 0; i < sLoggers.length; ++i) {\n var logger = sLoggers[i];\n if(logger.flags & forge.log.NO_LEVEL_CHECK) {\n logger.f(message);\n } else {\n // get logger level\n var loggerLevelIndex = sLevelInfo[logger.level].index;\n // check level\n if(messageLevelIndex <= loggerLevelIndex) {\n // message critical enough, call logger\n logger.f(logger, message);\n }\n }\n }\n};\n\n/**\n * Sets the 'standard' key on a message object to:\n * \"LEVEL [category] \" + message\n *\n * @param message a message log object\n */\nforge.log.prepareStandard = function(message) {\n if(!('standard' in message)) {\n message.standard =\n sLevelInfo[message.level].name +\n //' ' + +message.timestamp +\n ' [' + message.category + '] ' +\n message.message;\n }\n};\n\n/**\n * Sets the 'full' key on a message object to the original message\n * interpolated via % formatting with the message arguments.\n *\n * @param message a message log object.\n */\nforge.log.prepareFull = function(message) {\n if(!('full' in message)) {\n // copy args and insert message at the front\n var args = [message.message];\n args = args.concat([] || message['arguments']);\n // format the message\n message.full = forge.util.format.apply(this, args);\n }\n};\n\n/**\n * Applies both preparseStandard() and prepareFull() to a message object and\n * store result in 'standardFull'.\n *\n * @param message a message log object.\n */\nforge.log.prepareStandardFull = function(message) {\n if(!('standardFull' in message)) {\n // FIXME implement 'standardFull' logging\n forge.log.prepareStandard(message);\n message.standardFull = message.standard;\n }\n};\n\n// create log level functions\nif(true) {\n // levels for which we want functions\n var levels = ['error', 'warning', 'info', 'debug', 'verbose'];\n for(var i = 0; i < levels.length; ++i) {\n // wrap in a function to ensure proper level var is passed\n (function(level) {\n // create function for this level\n forge.log[level] = function(category, message/*, args...*/) {\n // convert arguments to real array, remove category and message\n var args = Array.prototype.slice.call(arguments).slice(2);\n // create message object\n // Note: interpolation and standard formatting is done lazily\n var msg = {\n timestamp: new Date(),\n level: level,\n category: category,\n message: message,\n 'arguments': args\n /*standard*/\n /*full*/\n /*fullMessage*/\n };\n // process this message\n forge.log.logMessage(msg);\n };\n })(levels[i]);\n }\n}\n\n/**\n * Creates a new logger with specified custom logging function.\n *\n * The logging function has a signature of:\n * function(logger, message)\n * logger: current logger\n * message: object:\n * level: level id\n * category: category\n * message: string message\n * arguments: Array of extra arguments\n * fullMessage: interpolated message and arguments if INTERPOLATE flag set\n *\n * @param logFunction a logging function which takes a log message object\n * as a parameter.\n *\n * @return a logger object.\n */\nforge.log.makeLogger = function(logFunction) {\n var logger = {\n flags: 0,\n f: logFunction\n };\n forge.log.setLevel(logger, 'none');\n return logger;\n};\n\n/**\n * Sets the current log level on a logger.\n *\n * @param logger the target logger.\n * @param level the new maximum log level as a string.\n *\n * @return true if set, false if not.\n */\nforge.log.setLevel = function(logger, level) {\n var rval = false;\n if(logger && !(logger.flags & forge.log.LEVEL_LOCKED)) {\n for(var i = 0; i < forge.log.levels.length; ++i) {\n var aValidLevel = forge.log.levels[i];\n if(level == aValidLevel) {\n // set level\n logger.level = level;\n rval = true;\n break;\n }\n }\n }\n\n return rval;\n};\n\n/**\n * Locks the log level at its current value.\n *\n * @param logger the target logger.\n * @param lock boolean lock value, default to true.\n */\nforge.log.lock = function(logger, lock) {\n if(typeof lock === 'undefined' || lock) {\n logger.flags |= forge.log.LEVEL_LOCKED;\n } else {\n logger.flags &= ~forge.log.LEVEL_LOCKED;\n }\n};\n\n/**\n * Adds a logger.\n *\n * @param logger the logger object.\n */\nforge.log.addLogger = function(logger) {\n sLoggers.push(logger);\n};\n\n// setup the console logger if possible, else create fake console.log\nif(typeof(console) !== 'undefined' && 'log' in console) {\n var logger;\n if(console.error && console.warn && console.info && console.debug) {\n // looks like Firebug-style logging is available\n // level handlers map\n var levelHandlers = {\n error: console.error,\n warning: console.warn,\n info: console.info,\n debug: console.debug,\n verbose: console.debug\n };\n var f = function(logger, message) {\n forge.log.prepareStandard(message);\n var handler = levelHandlers[message.level];\n // prepend standard message and concat args\n var args = [message.standard];\n args = args.concat(message['arguments'].slice());\n // apply to low-level console function\n handler.apply(console, args);\n };\n logger = forge.log.makeLogger(f);\n } else {\n // only appear to have basic console.log\n var f = function(logger, message) {\n forge.log.prepareStandardFull(message);\n console.log(message.standardFull);\n };\n logger = forge.log.makeLogger(f);\n }\n forge.log.setLevel(logger, 'debug');\n forge.log.addLogger(logger);\n sConsoleLogger = logger;\n} else {\n // define fake console.log to avoid potential script errors on\n // browsers that do not have console logging\n console = {\n log: function() {}\n };\n}\n\n/*\n * Check for logging control query vars in current URL.\n *\n * console.level=\n * Set's the console log level by name. Useful to override defaults and\n * allow more verbose logging before a user config is loaded.\n *\n * console.lock=\n * Lock the console log level at whatever level it is set at. This is run\n * after console.level is processed. Useful to force a level of verbosity\n * that could otherwise be limited by a user config.\n */\nif(sConsoleLogger !== null &&\n typeof window !== 'undefined' && window.location\n) {\n var query = new URL(window.location.href).searchParams;\n if(query.has('console.level')) {\n // set with last value\n forge.log.setLevel(\n sConsoleLogger, query.get('console.level').slice(-1)[0]);\n }\n if(query.has('console.lock')) {\n // set with last value\n var lock = query.get('console.lock').slice(-1)[0];\n if(lock == 'true') {\n forge.log.lock(sConsoleLogger);\n }\n }\n}\n\n// provide public access to console logger\nforge.log.consoleLogger = sConsoleLogger;\n","/**\n * Node.js module for all known Forge message digests.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2017 Digital Bazaar, Inc.\n */\nmodule.exports = require('./md');\n\nrequire('./md5');\nrequire('./sha1');\nrequire('./sha256');\nrequire('./sha512');\n","/**\n * Node.js module for Forge message digests.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2017 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\n\nmodule.exports = forge.md = forge.md || {};\nforge.md.algorithms = forge.md.algorithms || {};\n","/**\n * Message Digest Algorithm 5 with 128-bit digest (MD5) implementation.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar md5 = module.exports = forge.md5 = forge.md5 || {};\nforge.md.md5 = forge.md.algorithms.md5 = md5;\n\n/**\n * Creates an MD5 message digest object.\n *\n * @return a message digest object.\n */\nmd5.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // MD5 state contains four 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(16);\n\n // message digest object\n var md = {\n algorithm: 'md5',\n blockLength: 64,\n digestLength: 16,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x67452301,\n h1: 0xEFCDAB89,\n h2: 0x98BADCFE,\n h3: 0x10325476\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = (len[1] / 0x100000000) >>> 0;\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate MD5 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in little-endian order; since length\n // is stored in bytes we multiply by 8 and add carry\n var bits, carry = 0;\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n bits = md.fullMessageLength[i] * 8 + carry;\n carry = (bits / 0x100000000) >>> 0;\n finalBlock.putInt32Le(bits >>> 0);\n }\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32Le(s2.h0);\n rval.putInt32Le(s2.h1);\n rval.putInt32Le(s2.h2);\n rval.putInt32Le(s2.h3);\n return rval;\n };\n\n return md;\n};\n\n// padding, constant tables for calculating md5\nvar _padding = null;\nvar _g = null;\nvar _r = null;\nvar _k = null;\nvar _initialized = false;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // g values\n _g = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12,\n 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2,\n 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9];\n\n // rounds table\n _r = [\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,\n 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,\n 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,\n 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21];\n\n // get the result of abs(sin(i + 1)) as a 32-bit integer\n _k = new Array(64);\n for(var i = 0; i < 64; ++i) {\n _k[i] = Math.floor(Math.abs(Math.sin(i + 1)) * 0x100000000);\n }\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates an MD5 state with the given byte buffer.\n *\n * @param s the MD5 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t, a, b, c, d, f, r, i;\n var len = bytes.length();\n while(len >= 64) {\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n\n // round 1\n for(i = 0; i < 16; ++i) {\n w[i] = bytes.getInt32Le();\n f = d ^ (b & (c ^ d));\n t = (a + f + _k[i] + w[i]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 2\n for(; i < 32; ++i) {\n f = c ^ (d & (b ^ c));\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 3\n for(; i < 48; ++i) {\n f = b ^ c ^ d;\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 4\n for(; i < 64; ++i) {\n f = c ^ (b | ~d);\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n\n len -= 64;\n }\n}\n","/**\n * Node.js module for Forge mask generation functions.\n *\n * @author Stefan Siegl\n *\n * Copyright 2012 Stefan Siegl \n */\nvar forge = require('./forge');\nrequire('./mgf1');\n\nmodule.exports = forge.mgf = forge.mgf || {};\nforge.mgf.mgf1 = forge.mgf1;\n","/**\n * Javascript implementation of mask generation function MGF1.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nforge.mgf = forge.mgf || {};\nvar mgf1 = module.exports = forge.mgf.mgf1 = forge.mgf1 = forge.mgf1 || {};\n\n/**\n * Creates a MGF1 mask generation function object.\n *\n * @param md the message digest API to use (eg: forge.md.sha1.create()).\n *\n * @return a mask generation function object.\n */\nmgf1.create = function(md) {\n var mgf = {\n /**\n * Generate mask of specified length.\n *\n * @param {String} seed The seed for mask generation.\n * @param maskLen Number of bytes to generate.\n * @return {String} The generated mask.\n */\n generate: function(seed, maskLen) {\n /* 2. Let T be the empty octet string. */\n var t = new forge.util.ByteBuffer();\n\n /* 3. For counter from 0 to ceil(maskLen / hLen), do the following: */\n var len = Math.ceil(maskLen / md.digestLength);\n for(var i = 0; i < len; i++) {\n /* a. Convert counter to an octet string C of length 4 octets */\n var c = new forge.util.ByteBuffer();\n c.putInt32(i);\n\n /* b. Concatenate the hash of the seed mgfSeed and C to the octet\n * string T: */\n md.start();\n md.update(seed + c.getBytes());\n t.putBuffer(md.digest());\n }\n\n /* Output the leading maskLen octets of T as the octet string mask. */\n t.truncate(t.length() - maskLen);\n return t.getBytes();\n }\n };\n\n return mgf;\n};\n","/**\n * Object IDs for ASN.1.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\n\nforge.pki = forge.pki || {};\nvar oids = module.exports = forge.pki.oids = forge.oids = forge.oids || {};\n\n// set id to name mapping and name to id mapping\nfunction _IN(id, name) {\n oids[id] = name;\n oids[name] = id;\n}\n// set id to name mapping only\nfunction _I_(id, name) {\n oids[id] = name;\n}\n\n// algorithm OIDs\n_IN('1.2.840.113549.1.1.1', 'rsaEncryption');\n// Note: md2 & md4 not implemented\n//_IN('1.2.840.113549.1.1.2', 'md2WithRSAEncryption');\n//_IN('1.2.840.113549.1.1.3', 'md4WithRSAEncryption');\n_IN('1.2.840.113549.1.1.4', 'md5WithRSAEncryption');\n_IN('1.2.840.113549.1.1.5', 'sha1WithRSAEncryption');\n_IN('1.2.840.113549.1.1.7', 'RSAES-OAEP');\n_IN('1.2.840.113549.1.1.8', 'mgf1');\n_IN('1.2.840.113549.1.1.9', 'pSpecified');\n_IN('1.2.840.113549.1.1.10', 'RSASSA-PSS');\n_IN('1.2.840.113549.1.1.11', 'sha256WithRSAEncryption');\n_IN('1.2.840.113549.1.1.12', 'sha384WithRSAEncryption');\n_IN('1.2.840.113549.1.1.13', 'sha512WithRSAEncryption');\n// Edwards-curve Digital Signature Algorithm (EdDSA) Ed25519\n_IN('1.3.101.112', 'EdDSA25519');\n\n_IN('1.2.840.10040.4.3', 'dsa-with-sha1');\n\n_IN('1.3.14.3.2.7', 'desCBC');\n\n_IN('1.3.14.3.2.26', 'sha1');\n// Deprecated equivalent of sha1WithRSAEncryption\n_IN('1.3.14.3.2.29', 'sha1WithRSASignature');\n_IN('2.16.840.1.101.3.4.2.1', 'sha256');\n_IN('2.16.840.1.101.3.4.2.2', 'sha384');\n_IN('2.16.840.1.101.3.4.2.3', 'sha512');\n_IN('2.16.840.1.101.3.4.2.4', 'sha224');\n_IN('2.16.840.1.101.3.4.2.5', 'sha512-224');\n_IN('2.16.840.1.101.3.4.2.6', 'sha512-256');\n_IN('1.2.840.113549.2.2', 'md2');\n_IN('1.2.840.113549.2.5', 'md5');\n\n// pkcs#7 content types\n_IN('1.2.840.113549.1.7.1', 'data');\n_IN('1.2.840.113549.1.7.2', 'signedData');\n_IN('1.2.840.113549.1.7.3', 'envelopedData');\n_IN('1.2.840.113549.1.7.4', 'signedAndEnvelopedData');\n_IN('1.2.840.113549.1.7.5', 'digestedData');\n_IN('1.2.840.113549.1.7.6', 'encryptedData');\n\n// pkcs#9 oids\n_IN('1.2.840.113549.1.9.1', 'emailAddress');\n_IN('1.2.840.113549.1.9.2', 'unstructuredName');\n_IN('1.2.840.113549.1.9.3', 'contentType');\n_IN('1.2.840.113549.1.9.4', 'messageDigest');\n_IN('1.2.840.113549.1.9.5', 'signingTime');\n_IN('1.2.840.113549.1.9.6', 'counterSignature');\n_IN('1.2.840.113549.1.9.7', 'challengePassword');\n_IN('1.2.840.113549.1.9.8', 'unstructuredAddress');\n_IN('1.2.840.113549.1.9.14', 'extensionRequest');\n\n_IN('1.2.840.113549.1.9.20', 'friendlyName');\n_IN('1.2.840.113549.1.9.21', 'localKeyId');\n_IN('1.2.840.113549.1.9.22.1', 'x509Certificate');\n\n// pkcs#12 safe bags\n_IN('1.2.840.113549.1.12.10.1.1', 'keyBag');\n_IN('1.2.840.113549.1.12.10.1.2', 'pkcs8ShroudedKeyBag');\n_IN('1.2.840.113549.1.12.10.1.3', 'certBag');\n_IN('1.2.840.113549.1.12.10.1.4', 'crlBag');\n_IN('1.2.840.113549.1.12.10.1.5', 'secretBag');\n_IN('1.2.840.113549.1.12.10.1.6', 'safeContentsBag');\n\n// password-based-encryption for pkcs#12\n_IN('1.2.840.113549.1.5.13', 'pkcs5PBES2');\n_IN('1.2.840.113549.1.5.12', 'pkcs5PBKDF2');\n\n_IN('1.2.840.113549.1.12.1.1', 'pbeWithSHAAnd128BitRC4');\n_IN('1.2.840.113549.1.12.1.2', 'pbeWithSHAAnd40BitRC4');\n_IN('1.2.840.113549.1.12.1.3', 'pbeWithSHAAnd3-KeyTripleDES-CBC');\n_IN('1.2.840.113549.1.12.1.4', 'pbeWithSHAAnd2-KeyTripleDES-CBC');\n_IN('1.2.840.113549.1.12.1.5', 'pbeWithSHAAnd128BitRC2-CBC');\n_IN('1.2.840.113549.1.12.1.6', 'pbewithSHAAnd40BitRC2-CBC');\n\n// hmac OIDs\n_IN('1.2.840.113549.2.7', 'hmacWithSHA1');\n_IN('1.2.840.113549.2.8', 'hmacWithSHA224');\n_IN('1.2.840.113549.2.9', 'hmacWithSHA256');\n_IN('1.2.840.113549.2.10', 'hmacWithSHA384');\n_IN('1.2.840.113549.2.11', 'hmacWithSHA512');\n\n// symmetric key algorithm oids\n_IN('1.2.840.113549.3.7', 'des-EDE3-CBC');\n_IN('2.16.840.1.101.3.4.1.2', 'aes128-CBC');\n_IN('2.16.840.1.101.3.4.1.22', 'aes192-CBC');\n_IN('2.16.840.1.101.3.4.1.42', 'aes256-CBC');\n\n// certificate issuer/subject OIDs\n_IN('2.5.4.3', 'commonName');\n_IN('2.5.4.4', 'surname');\n_IN('2.5.4.5', 'serialNumber');\n_IN('2.5.4.6', 'countryName');\n_IN('2.5.4.7', 'localityName');\n_IN('2.5.4.8', 'stateOrProvinceName');\n_IN('2.5.4.9', 'streetAddress');\n_IN('2.5.4.10', 'organizationName');\n_IN('2.5.4.11', 'organizationalUnitName');\n_IN('2.5.4.12', 'title');\n_IN('2.5.4.13', 'description');\n_IN('2.5.4.15', 'businessCategory');\n_IN('2.5.4.17', 'postalCode');\n_IN('2.5.4.42', 'givenName');\n_IN('1.3.6.1.4.1.311.60.2.1.2', 'jurisdictionOfIncorporationStateOrProvinceName');\n_IN('1.3.6.1.4.1.311.60.2.1.3', 'jurisdictionOfIncorporationCountryName');\n\n// X.509 extension OIDs\n_IN('2.16.840.1.113730.1.1', 'nsCertType');\n_IN('2.16.840.1.113730.1.13', 'nsComment'); // deprecated in theory; still widely used\n_I_('2.5.29.1', 'authorityKeyIdentifier'); // deprecated, use .35\n_I_('2.5.29.2', 'keyAttributes'); // obsolete use .37 or .15\n_I_('2.5.29.3', 'certificatePolicies'); // deprecated, use .32\n_I_('2.5.29.4', 'keyUsageRestriction'); // obsolete use .37 or .15\n_I_('2.5.29.5', 'policyMapping'); // deprecated use .33\n_I_('2.5.29.6', 'subtreesConstraint'); // obsolete use .30\n_I_('2.5.29.7', 'subjectAltName'); // deprecated use .17\n_I_('2.5.29.8', 'issuerAltName'); // deprecated use .18\n_I_('2.5.29.9', 'subjectDirectoryAttributes');\n_I_('2.5.29.10', 'basicConstraints'); // deprecated use .19\n_I_('2.5.29.11', 'nameConstraints'); // deprecated use .30\n_I_('2.5.29.12', 'policyConstraints'); // deprecated use .36\n_I_('2.5.29.13', 'basicConstraints'); // deprecated use .19\n_IN('2.5.29.14', 'subjectKeyIdentifier');\n_IN('2.5.29.15', 'keyUsage');\n_I_('2.5.29.16', 'privateKeyUsagePeriod');\n_IN('2.5.29.17', 'subjectAltName');\n_IN('2.5.29.18', 'issuerAltName');\n_IN('2.5.29.19', 'basicConstraints');\n_I_('2.5.29.20', 'cRLNumber');\n_I_('2.5.29.21', 'cRLReason');\n_I_('2.5.29.22', 'expirationDate');\n_I_('2.5.29.23', 'instructionCode');\n_I_('2.5.29.24', 'invalidityDate');\n_I_('2.5.29.25', 'cRLDistributionPoints'); // deprecated use .31\n_I_('2.5.29.26', 'issuingDistributionPoint'); // deprecated use .28\n_I_('2.5.29.27', 'deltaCRLIndicator');\n_I_('2.5.29.28', 'issuingDistributionPoint');\n_I_('2.5.29.29', 'certificateIssuer');\n_I_('2.5.29.30', 'nameConstraints');\n_IN('2.5.29.31', 'cRLDistributionPoints');\n_IN('2.5.29.32', 'certificatePolicies');\n_I_('2.5.29.33', 'policyMappings');\n_I_('2.5.29.34', 'policyConstraints'); // deprecated use .36\n_IN('2.5.29.35', 'authorityKeyIdentifier');\n_I_('2.5.29.36', 'policyConstraints');\n_IN('2.5.29.37', 'extKeyUsage');\n_I_('2.5.29.46', 'freshestCRL');\n_I_('2.5.29.54', 'inhibitAnyPolicy');\n\n// extKeyUsage purposes\n_IN('1.3.6.1.4.1.11129.2.4.2', 'timestampList');\n_IN('1.3.6.1.5.5.7.1.1', 'authorityInfoAccess');\n_IN('1.3.6.1.5.5.7.3.1', 'serverAuth');\n_IN('1.3.6.1.5.5.7.3.2', 'clientAuth');\n_IN('1.3.6.1.5.5.7.3.3', 'codeSigning');\n_IN('1.3.6.1.5.5.7.3.4', 'emailProtection');\n_IN('1.3.6.1.5.5.7.3.8', 'timeStamping');\n","/**\n * Password-based encryption functions.\n *\n * @author Dave Longley\n * @author Stefan Siegl \n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * An EncryptedPrivateKeyInfo:\n *\n * EncryptedPrivateKeyInfo ::= SEQUENCE {\n * encryptionAlgorithm EncryptionAlgorithmIdentifier,\n * encryptedData EncryptedData }\n *\n * EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * EncryptedData ::= OCTET STRING\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./md');\nrequire('./oids');\nrequire('./pbkdf2');\nrequire('./pem');\nrequire('./random');\nrequire('./rc2');\nrequire('./rsa');\nrequire('./util');\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Password-based encryption implementation. */\nvar pki = forge.pki = forge.pki || {};\nmodule.exports = pki.pbe = forge.pbe = forge.pbe || {};\nvar oids = pki.oids;\n\n// validator for an EncryptedPrivateKeyInfo structure\n// Note: Currently only works w/algorithm params\nvar encryptedPrivateKeyValidator = {\n name: 'EncryptedPrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedPrivateKeyInfo.encryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encryptionOid'\n }, {\n name: 'AlgorithmIdentifier.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'encryptionParams'\n }]\n }, {\n // encryptedData\n name: 'EncryptedPrivateKeyInfo.encryptedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encryptedData'\n }]\n};\n\n// validator for a PBES2Algorithms structure\n// Note: Currently only works w/PBKDF2 + AES encryption schemes\nvar PBES2AlgorithmsValidator = {\n name: 'PBES2Algorithms',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.keyDerivationFunc',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.keyDerivationFunc.oid',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'kdfOid'\n }, {\n name: 'PBES2Algorithms.params',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.params.salt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'kdfSalt'\n }, {\n name: 'PBES2Algorithms.params.iterationCount',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'kdfIterationCount'\n }, {\n name: 'PBES2Algorithms.params.keyLength',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n optional: true,\n capture: 'keyLength'\n }, {\n // prf\n name: 'PBES2Algorithms.params.prf',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'PBES2Algorithms.params.prf.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'prfOid'\n }]\n }]\n }]\n }, {\n name: 'PBES2Algorithms.encryptionScheme',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.encryptionScheme.oid',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encOid'\n }, {\n name: 'PBES2Algorithms.encryptionScheme.iv',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encIv'\n }]\n }]\n};\n\nvar pkcs12PbeParamsValidator = {\n name: 'pkcs-12PbeParams',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'pkcs-12PbeParams.salt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'salt'\n }, {\n name: 'pkcs-12PbeParams.iterations',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'iterations'\n }]\n};\n\n/**\n * Encrypts a ASN.1 PrivateKeyInfo object, producing an EncryptedPrivateKeyInfo.\n *\n * PBES2Algorithms ALGORITHM-IDENTIFIER ::=\n * { {PBES2-params IDENTIFIED BY id-PBES2}, ...}\n *\n * id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13}\n *\n * PBES2-params ::= SEQUENCE {\n * keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},\n * encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}\n * }\n *\n * PBES2-KDFs ALGORITHM-IDENTIFIER ::=\n * { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }\n *\n * PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... }\n *\n * PBKDF2-params ::= SEQUENCE {\n * salt CHOICE {\n * specified OCTET STRING,\n * otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}\n * },\n * iterationCount INTEGER (1..MAX),\n * keyLength INTEGER (1..MAX) OPTIONAL,\n * prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1\n * }\n *\n * @param obj the ASN.1 PrivateKeyInfo object.\n * @param password the password to encrypt with.\n * @param options:\n * algorithm the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des'), defaults to 'aes128'.\n * count the iteration count to use.\n * saltSize the salt size to use.\n * prfAlgorithm the PRF message digest algorithm to use\n * ('sha1', 'sha224', 'sha256', 'sha384', 'sha512')\n *\n * @return the ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptPrivateKeyInfo = function(obj, password, options) {\n // set default options\n options = options || {};\n options.saltSize = options.saltSize || 8;\n options.count = options.count || 2048;\n options.algorithm = options.algorithm || 'aes128';\n options.prfAlgorithm = options.prfAlgorithm || 'sha1';\n\n // generate PBE params\n var salt = forge.random.getBytesSync(options.saltSize);\n var count = options.count;\n var countBytes = asn1.integerToDer(count);\n var dkLen;\n var encryptionAlgorithm;\n var encryptedData;\n if(options.algorithm.indexOf('aes') === 0 || options.algorithm === 'des') {\n // do PBES2\n var ivLen, encOid, cipherFn;\n switch(options.algorithm) {\n case 'aes128':\n dkLen = 16;\n ivLen = 16;\n encOid = oids['aes128-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes192':\n dkLen = 24;\n ivLen = 16;\n encOid = oids['aes192-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes256':\n dkLen = 32;\n ivLen = 16;\n encOid = oids['aes256-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'des':\n dkLen = 8;\n ivLen = 8;\n encOid = oids['desCBC'];\n cipherFn = forge.des.createEncryptionCipher;\n break;\n default:\n var error = new Error('Cannot encrypt private key. Unknown encryption algorithm.');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // get PRF message digest\n var prfAlgorithm = 'hmacWith' + options.prfAlgorithm.toUpperCase();\n var md = prfAlgorithmToMessageDigest(prfAlgorithm);\n\n // encrypt private key using pbe SHA-1 and AES/DES\n var dk = forge.pkcs5.pbkdf2(password, salt, count, dkLen, md);\n var iv = forge.random.getBytesSync(ivLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(obj));\n cipher.finish();\n encryptedData = cipher.output.getBytes();\n\n // get PBKDF2-params\n var params = createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm);\n\n encryptionAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pkcs5PBES2']).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // keyDerivationFunc\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pkcs5PBKDF2']).getBytes()),\n // PBKDF2-params\n params\n ]),\n // encryptionScheme\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(encOid).getBytes()),\n // iv\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, iv)\n ])\n ])\n ]);\n } else if(options.algorithm === '3des') {\n // Do PKCS12 PBE\n dkLen = 24;\n\n var saltBytes = new forge.util.ByteBuffer(salt);\n var dk = pki.pbe.generatePkcs12Key(password, saltBytes, 1, count, dkLen);\n var iv = pki.pbe.generatePkcs12Key(password, saltBytes, 2, count, dkLen);\n var cipher = forge.des.createEncryptionCipher(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(obj));\n cipher.finish();\n encryptedData = cipher.output.getBytes();\n\n encryptionAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pbeWithSHAAnd3-KeyTripleDES-CBC']).getBytes()),\n // pkcs-12PbeParams\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // salt\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt),\n // iteration count\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n countBytes.getBytes())\n ])\n ]);\n } else {\n var error = new Error('Cannot encrypt private key. Unknown encryption algorithm.');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // EncryptedPrivateKeyInfo\n var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // encryptionAlgorithm\n encryptionAlgorithm,\n // encryptedData\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, encryptedData)\n ]);\n return rval;\n};\n\n/**\n * Decrypts a ASN.1 PrivateKeyInfo object.\n *\n * @param obj the ASN.1 EncryptedPrivateKeyInfo object.\n * @param password the password to decrypt with.\n *\n * @return the ASN.1 PrivateKeyInfo on success, null on failure.\n */\npki.decryptPrivateKeyInfo = function(obj, password) {\n var rval = null;\n\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, encryptedPrivateKeyValidator, capture, errors)) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n // get cipher\n var oid = asn1.derToOid(capture.encryptionOid);\n var cipher = pki.pbe.getCipher(oid, capture.encryptionParams, password);\n\n // get encrypted data\n var encrypted = forge.util.createBuffer(capture.encryptedData);\n\n cipher.update(encrypted);\n if(cipher.finish()) {\n rval = asn1.fromDer(cipher.output);\n }\n\n return rval;\n};\n\n/**\n * Converts a EncryptedPrivateKeyInfo to PEM format.\n *\n * @param epki the EncryptedPrivateKeyInfo.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted encrypted private key.\n */\npki.encryptedPrivateKeyToPem = function(epki, maxline) {\n // convert to DER, then PEM-encode\n var msg = {\n type: 'ENCRYPTED PRIVATE KEY',\n body: asn1.toDer(epki).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts a PEM-encoded EncryptedPrivateKeyInfo to ASN.1 format. Decryption\n * is not performed.\n *\n * @param pem the EncryptedPrivateKeyInfo in PEM-format.\n *\n * @return the ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptedPrivateKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'ENCRYPTED PRIVATE KEY') {\n var error = new Error('Could not convert encrypted private key from PEM; ' +\n 'PEM header type is \"ENCRYPTED PRIVATE KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert encrypted private key from PEM; ' +\n 'PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n return asn1.fromDer(msg.body);\n};\n\n/**\n * Encrypts an RSA private key. By default, the key will be wrapped in\n * a PrivateKeyInfo and encrypted to produce a PKCS#8 EncryptedPrivateKeyInfo.\n * This is the standard, preferred way to encrypt a private key.\n *\n * To produce a non-standard PEM-encrypted private key that uses encapsulated\n * headers to indicate the encryption algorithm (old-style non-PKCS#8 OpenSSL\n * private key encryption), set the 'legacy' option to true. Note: Using this\n * option will cause the iteration count to be forced to 1.\n *\n * Note: The 'des' algorithm is supported, but it is not considered to be\n * secure because it only uses a single 56-bit key. If possible, it is highly\n * recommended that a different algorithm be used.\n *\n * @param rsaKey the RSA key to encrypt.\n * @param password the password to use.\n * @param options:\n * algorithm: the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des', 'des').\n * count: the iteration count to use.\n * saltSize: the salt size to use.\n * legacy: output an old non-PKCS#8 PEM-encrypted+encapsulated\n * headers (DEK-Info) private key.\n *\n * @return the PEM-encoded ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptRsaPrivateKey = function(rsaKey, password, options) {\n // standard PKCS#8\n options = options || {};\n if(!options.legacy) {\n // encrypt PrivateKeyInfo\n var rval = pki.wrapRsaPrivateKey(pki.privateKeyToAsn1(rsaKey));\n rval = pki.encryptPrivateKeyInfo(rval, password, options);\n return pki.encryptedPrivateKeyToPem(rval);\n }\n\n // legacy non-PKCS#8\n var algorithm;\n var iv;\n var dkLen;\n var cipherFn;\n switch(options.algorithm) {\n case 'aes128':\n algorithm = 'AES-128-CBC';\n dkLen = 16;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes192':\n algorithm = 'AES-192-CBC';\n dkLen = 24;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes256':\n algorithm = 'AES-256-CBC';\n dkLen = 32;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case '3des':\n algorithm = 'DES-EDE3-CBC';\n dkLen = 24;\n iv = forge.random.getBytesSync(8);\n cipherFn = forge.des.createEncryptionCipher;\n break;\n case 'des':\n algorithm = 'DES-CBC';\n dkLen = 8;\n iv = forge.random.getBytesSync(8);\n cipherFn = forge.des.createEncryptionCipher;\n break;\n default:\n var error = new Error('Could not encrypt RSA private key; unsupported ' +\n 'encryption algorithm \"' + options.algorithm + '\".');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // encrypt private key using OpenSSL legacy key derivation\n var dk = forge.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(pki.privateKeyToAsn1(rsaKey)));\n cipher.finish();\n\n var msg = {\n type: 'RSA PRIVATE KEY',\n procType: {\n version: '4',\n type: 'ENCRYPTED'\n },\n dekInfo: {\n algorithm: algorithm,\n parameters: forge.util.bytesToHex(iv).toUpperCase()\n },\n body: cipher.output.getBytes()\n };\n return forge.pem.encode(msg);\n};\n\n/**\n * Decrypts an RSA private key.\n *\n * @param pem the PEM-formatted EncryptedPrivateKeyInfo to decrypt.\n * @param password the password to use.\n *\n * @return the RSA key on success, null on failure.\n */\npki.decryptRsaPrivateKey = function(pem, password) {\n var rval = null;\n\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'ENCRYPTED PRIVATE KEY' &&\n msg.type !== 'PRIVATE KEY' &&\n msg.type !== 'RSA PRIVATE KEY') {\n var error = new Error('Could not convert private key from PEM; PEM header type ' +\n 'is not \"ENCRYPTED PRIVATE KEY\", \"PRIVATE KEY\", or \"RSA PRIVATE KEY\".');\n error.headerType = error;\n throw error;\n }\n\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n var dkLen;\n var cipherFn;\n switch(msg.dekInfo.algorithm) {\n case 'DES-CBC':\n dkLen = 8;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'DES-EDE3-CBC':\n dkLen = 24;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'AES-128-CBC':\n dkLen = 16;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'AES-192-CBC':\n dkLen = 24;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'AES-256-CBC':\n dkLen = 32;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'RC2-40-CBC':\n dkLen = 5;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 40);\n };\n break;\n case 'RC2-64-CBC':\n dkLen = 8;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 64);\n };\n break;\n case 'RC2-128-CBC':\n dkLen = 16;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 128);\n };\n break;\n default:\n var error = new Error('Could not decrypt private key; unsupported ' +\n 'encryption algorithm \"' + msg.dekInfo.algorithm + '\".');\n error.algorithm = msg.dekInfo.algorithm;\n throw error;\n }\n\n // use OpenSSL legacy key derivation\n var iv = forge.util.hexToBytes(msg.dekInfo.parameters);\n var dk = forge.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(forge.util.createBuffer(msg.body));\n if(cipher.finish()) {\n rval = cipher.output.getBytes();\n } else {\n return rval;\n }\n } else {\n rval = msg.body;\n }\n\n if(msg.type === 'ENCRYPTED PRIVATE KEY') {\n rval = pki.decryptPrivateKeyInfo(asn1.fromDer(rval), password);\n } else {\n // decryption already performed above\n rval = asn1.fromDer(rval);\n }\n\n if(rval !== null) {\n rval = pki.privateKeyFromAsn1(rval);\n }\n\n return rval;\n};\n\n/**\n * Derives a PKCS#12 key.\n *\n * @param password the password to derive the key material from, null or\n * undefined for none.\n * @param salt the salt, as a ByteBuffer, to use.\n * @param id the PKCS#12 ID byte (1 = key material, 2 = IV, 3 = MAC).\n * @param iter the iteration count.\n * @param n the number of bytes to derive from the password.\n * @param md the message digest to use, defaults to SHA-1.\n *\n * @return a ByteBuffer with the bytes derived from the password.\n */\npki.pbe.generatePkcs12Key = function(password, salt, id, iter, n, md) {\n var j, l;\n\n if(typeof md === 'undefined' || md === null) {\n if(!('sha1' in forge.md)) {\n throw new Error('\"sha1\" hash algorithm unavailable.');\n }\n md = forge.md.sha1.create();\n }\n\n var u = md.digestLength;\n var v = md.blockLength;\n var result = new forge.util.ByteBuffer();\n\n /* Convert password to Unicode byte buffer + trailing 0-byte. */\n var passBuf = new forge.util.ByteBuffer();\n if(password !== null && password !== undefined) {\n for(l = 0; l < password.length; l++) {\n passBuf.putInt16(password.charCodeAt(l));\n }\n passBuf.putInt16(0);\n }\n\n /* Length of salt and password in BYTES. */\n var p = passBuf.length();\n var s = salt.length();\n\n /* 1. Construct a string, D (the \"diversifier\"), by concatenating\n v copies of ID. */\n var D = new forge.util.ByteBuffer();\n D.fillWithByte(id, v);\n\n /* 2. Concatenate copies of the salt together to create a string S of length\n v * ceil(s / v) bytes (the final copy of the salt may be trunacted\n to create S).\n Note that if the salt is the empty string, then so is S. */\n var Slen = v * Math.ceil(s / v);\n var S = new forge.util.ByteBuffer();\n for(l = 0; l < Slen; l++) {\n S.putByte(salt.at(l % s));\n }\n\n /* 3. Concatenate copies of the password together to create a string P of\n length v * ceil(p / v) bytes (the final copy of the password may be\n truncated to create P).\n Note that if the password is the empty string, then so is P. */\n var Plen = v * Math.ceil(p / v);\n var P = new forge.util.ByteBuffer();\n for(l = 0; l < Plen; l++) {\n P.putByte(passBuf.at(l % p));\n }\n\n /* 4. Set I=S||P to be the concatenation of S and P. */\n var I = S;\n I.putBuffer(P);\n\n /* 5. Set c=ceil(n / u). */\n var c = Math.ceil(n / u);\n\n /* 6. For i=1, 2, ..., c, do the following: */\n for(var i = 1; i <= c; i++) {\n /* a) Set Ai=H^r(D||I). (l.e. the rth hash of D||I, H(H(H(...H(D||I)))) */\n var buf = new forge.util.ByteBuffer();\n buf.putBytes(D.bytes());\n buf.putBytes(I.bytes());\n for(var round = 0; round < iter; round++) {\n md.start();\n md.update(buf.getBytes());\n buf = md.digest();\n }\n\n /* b) Concatenate copies of Ai to create a string B of length v bytes (the\n final copy of Ai may be truncated to create B). */\n var B = new forge.util.ByteBuffer();\n for(l = 0; l < v; l++) {\n B.putByte(buf.at(l % u));\n }\n\n /* c) Treating I as a concatenation I0, I1, ..., Ik-1 of v-byte blocks,\n where k=ceil(s / v) + ceil(p / v), modify I by setting\n Ij=(Ij+B+1) mod 2v for each j. */\n var k = Math.ceil(s / v) + Math.ceil(p / v);\n var Inew = new forge.util.ByteBuffer();\n for(j = 0; j < k; j++) {\n var chunk = new forge.util.ByteBuffer(I.getBytes(v));\n var x = 0x1ff;\n for(l = B.length() - 1; l >= 0; l--) {\n x = x >> 8;\n x += B.at(l) + chunk.at(l);\n chunk.setAt(l, x & 0xff);\n }\n Inew.putBuffer(chunk);\n }\n I = Inew;\n\n /* Add Ai to A. */\n result.putBuffer(buf);\n }\n\n result.truncate(result.length() - n);\n return result;\n};\n\n/**\n * Get new Forge cipher object instance.\n *\n * @param oid the OID (in string notation).\n * @param params the ASN.1 params object.\n * @param password the password to decrypt with.\n *\n * @return new cipher object instance.\n */\npki.pbe.getCipher = function(oid, params, password) {\n switch(oid) {\n case pki.oids['pkcs5PBES2']:\n return pki.pbe.getCipherForPBES2(oid, params, password);\n\n case pki.oids['pbeWithSHAAnd3-KeyTripleDES-CBC']:\n case pki.oids['pbewithSHAAnd40BitRC2-CBC']:\n return pki.pbe.getCipherForPKCS12PBE(oid, params, password);\n\n default:\n var error = new Error('Cannot read encrypted PBE data block. Unsupported OID.');\n error.oid = oid;\n error.supportedOids = [\n 'pkcs5PBES2',\n 'pbeWithSHAAnd3-KeyTripleDES-CBC',\n 'pbewithSHAAnd40BitRC2-CBC'\n ];\n throw error;\n }\n};\n\n/**\n * Get new Forge cipher object instance according to PBES2 params block.\n *\n * The returned cipher instance is already started using the IV\n * from PBES2 parameter block.\n *\n * @param oid the PKCS#5 PBKDF2 OID (in string notation).\n * @param params the ASN.1 PBES2-params object.\n * @param password the password to decrypt with.\n *\n * @return new cipher object instance.\n */\npki.pbe.getCipherForPBES2 = function(oid, params, password) {\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(params, PBES2AlgorithmsValidator, capture, errors)) {\n var error = new Error('Cannot read password-based-encryption algorithm ' +\n 'parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n // check oids\n oid = asn1.derToOid(capture.kdfOid);\n if(oid !== pki.oids['pkcs5PBKDF2']) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'Unsupported key derivation function OID.');\n error.oid = oid;\n error.supportedOids = ['pkcs5PBKDF2'];\n throw error;\n }\n oid = asn1.derToOid(capture.encOid);\n if(oid !== pki.oids['aes128-CBC'] &&\n oid !== pki.oids['aes192-CBC'] &&\n oid !== pki.oids['aes256-CBC'] &&\n oid !== pki.oids['des-EDE3-CBC'] &&\n oid !== pki.oids['desCBC']) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'Unsupported encryption scheme OID.');\n error.oid = oid;\n error.supportedOids = [\n 'aes128-CBC', 'aes192-CBC', 'aes256-CBC', 'des-EDE3-CBC', 'desCBC'];\n throw error;\n }\n\n // set PBE params\n var salt = capture.kdfSalt;\n var count = forge.util.createBuffer(capture.kdfIterationCount);\n count = count.getInt(count.length() << 3);\n var dkLen;\n var cipherFn;\n switch(pki.oids[oid]) {\n case 'aes128-CBC':\n dkLen = 16;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'aes192-CBC':\n dkLen = 24;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'aes256-CBC':\n dkLen = 32;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'des-EDE3-CBC':\n dkLen = 24;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'desCBC':\n dkLen = 8;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n }\n\n // get PRF message digest\n var md = prfOidToMessageDigest(capture.prfOid);\n\n // decrypt private key using pbe with chosen PRF and AES/DES\n var dk = forge.pkcs5.pbkdf2(password, salt, count, dkLen, md);\n var iv = capture.encIv;\n var cipher = cipherFn(dk);\n cipher.start(iv);\n\n return cipher;\n};\n\n/**\n * Get new Forge cipher object instance for PKCS#12 PBE.\n *\n * The returned cipher instance is already started using the key & IV\n * derived from the provided password and PKCS#12 PBE salt.\n *\n * @param oid The PKCS#12 PBE OID (in string notation).\n * @param params The ASN.1 PKCS#12 PBE-params object.\n * @param password The password to decrypt with.\n *\n * @return the new cipher object instance.\n */\npki.pbe.getCipherForPKCS12PBE = function(oid, params, password) {\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(params, pkcs12PbeParamsValidator, capture, errors)) {\n var error = new Error('Cannot read password-based-encryption algorithm ' +\n 'parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n var salt = forge.util.createBuffer(capture.salt);\n var count = forge.util.createBuffer(capture.iterations);\n count = count.getInt(count.length() << 3);\n\n var dkLen, dIvLen, cipherFn;\n switch(oid) {\n case pki.oids['pbeWithSHAAnd3-KeyTripleDES-CBC']:\n dkLen = 24;\n dIvLen = 8;\n cipherFn = forge.des.startDecrypting;\n break;\n\n case pki.oids['pbewithSHAAnd40BitRC2-CBC']:\n dkLen = 5;\n dIvLen = 8;\n cipherFn = function(key, iv) {\n var cipher = forge.rc2.createDecryptionCipher(key, 40);\n cipher.start(iv, null);\n return cipher;\n };\n break;\n\n default:\n var error = new Error('Cannot read PKCS #12 PBE data block. Unsupported OID.');\n error.oid = oid;\n throw error;\n }\n\n // get PRF message digest\n var md = prfOidToMessageDigest(capture.prfOid);\n var key = pki.pbe.generatePkcs12Key(password, salt, 1, count, dkLen, md);\n md.start();\n var iv = pki.pbe.generatePkcs12Key(password, salt, 2, count, dIvLen, md);\n\n return cipherFn(key, iv);\n};\n\n/**\n * OpenSSL's legacy key derivation function.\n *\n * See: http://www.openssl.org/docs/crypto/EVP_BytesToKey.html\n *\n * @param password the password to derive the key from.\n * @param salt the salt to use, null for none.\n * @param dkLen the number of bytes needed for the derived key.\n * @param [options] the options to use:\n * [md] an optional message digest object to use.\n */\npki.pbe.opensslDeriveBytes = function(password, salt, dkLen, md) {\n if(typeof md === 'undefined' || md === null) {\n if(!('md5' in forge.md)) {\n throw new Error('\"md5\" hash algorithm unavailable.');\n }\n md = forge.md.md5.create();\n }\n if(salt === null) {\n salt = '';\n }\n var digests = [hash(md, password + salt)];\n for(var length = 16, i = 1; length < dkLen; ++i, length += 16) {\n digests.push(hash(md, digests[i - 1] + password + salt));\n }\n return digests.join('').substr(0, dkLen);\n};\n\nfunction hash(md, bytes) {\n return md.start().update(bytes).digest().getBytes();\n}\n\nfunction prfOidToMessageDigest(prfOid) {\n // get PRF algorithm, default to SHA-1\n var prfAlgorithm;\n if(!prfOid) {\n prfAlgorithm = 'hmacWithSHA1';\n } else {\n prfAlgorithm = pki.oids[asn1.derToOid(prfOid)];\n if(!prfAlgorithm) {\n var error = new Error('Unsupported PRF OID.');\n error.oid = prfOid;\n error.supported = [\n 'hmacWithSHA1', 'hmacWithSHA224', 'hmacWithSHA256', 'hmacWithSHA384',\n 'hmacWithSHA512'];\n throw error;\n }\n }\n return prfAlgorithmToMessageDigest(prfAlgorithm);\n}\n\nfunction prfAlgorithmToMessageDigest(prfAlgorithm) {\n var factory = forge.md;\n switch(prfAlgorithm) {\n case 'hmacWithSHA224':\n factory = forge.md.sha512;\n case 'hmacWithSHA1':\n case 'hmacWithSHA256':\n case 'hmacWithSHA384':\n case 'hmacWithSHA512':\n prfAlgorithm = prfAlgorithm.substr(8).toLowerCase();\n break;\n default:\n var error = new Error('Unsupported PRF algorithm.');\n error.algorithm = prfAlgorithm;\n error.supported = [\n 'hmacWithSHA1', 'hmacWithSHA224', 'hmacWithSHA256', 'hmacWithSHA384',\n 'hmacWithSHA512'];\n throw error;\n }\n if(!factory || !(prfAlgorithm in factory)) {\n throw new Error('Unknown hash algorithm: ' + prfAlgorithm);\n }\n return factory[prfAlgorithm].create();\n}\n\nfunction createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm) {\n var params = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // salt\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt),\n // iteration count\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n countBytes.getBytes())\n ]);\n // when PRF algorithm is not SHA-1 default, add key length and PRF algorithm\n if(prfAlgorithm !== 'hmacWithSHA1') {\n params.value.push(\n // key length\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(dkLen.toString(16))),\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids[prfAlgorithm]).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n }\n return params;\n}\n","/**\n * Password-Based Key-Derivation Function #2 implementation.\n *\n * See RFC 2898 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./hmac');\nrequire('./md');\nrequire('./util');\n\nvar pkcs5 = forge.pkcs5 = forge.pkcs5 || {};\n\nvar crypto;\nif(forge.util.isNodejs && !forge.options.usePureJavaScript) {\n crypto = require('crypto');\n}\n\n/**\n * Derives a key from a password.\n *\n * @param p the password as a binary-encoded string of bytes.\n * @param s the salt as a binary-encoded string of bytes.\n * @param c the iteration count, a positive integer.\n * @param dkLen the intended length, in bytes, of the derived key,\n * (max: 2^32 - 1) * hash length of the PRF.\n * @param [md] the message digest (or algorithm identifier as a string) to use\n * in the PRF, defaults to SHA-1.\n * @param [callback(err, key)] presence triggers asynchronous version, called\n * once the operation completes.\n *\n * @return the derived key, as a binary-encoded string of bytes, for the\n * synchronous version (if no callback is specified).\n */\nmodule.exports = forge.pbkdf2 = pkcs5.pbkdf2 = function(\n p, s, c, dkLen, md, callback) {\n if(typeof md === 'function') {\n callback = md;\n md = null;\n }\n\n // use native implementation if possible and not disabled, note that\n // some node versions only support SHA-1, others allow digest to be changed\n if(forge.util.isNodejs && !forge.options.usePureJavaScript &&\n crypto.pbkdf2 && (md === null || typeof md !== 'object') &&\n (crypto.pbkdf2Sync.length > 4 || (!md || md === 'sha1'))) {\n if(typeof md !== 'string') {\n // default prf to SHA-1\n md = 'sha1';\n }\n p = Buffer.from(p, 'binary');\n s = Buffer.from(s, 'binary');\n if(!callback) {\n if(crypto.pbkdf2Sync.length === 4) {\n return crypto.pbkdf2Sync(p, s, c, dkLen).toString('binary');\n }\n return crypto.pbkdf2Sync(p, s, c, dkLen, md).toString('binary');\n }\n if(crypto.pbkdf2Sync.length === 4) {\n return crypto.pbkdf2(p, s, c, dkLen, function(err, key) {\n if(err) {\n return callback(err);\n }\n callback(null, key.toString('binary'));\n });\n }\n return crypto.pbkdf2(p, s, c, dkLen, md, function(err, key) {\n if(err) {\n return callback(err);\n }\n callback(null, key.toString('binary'));\n });\n }\n\n if(typeof md === 'undefined' || md === null) {\n // default prf to SHA-1\n md = 'sha1';\n }\n if(typeof md === 'string') {\n if(!(md in forge.md.algorithms)) {\n throw new Error('Unknown hash algorithm: ' + md);\n }\n md = forge.md[md].create();\n }\n\n var hLen = md.digestLength;\n\n /* 1. If dkLen > (2^32 - 1) * hLen, output \"derived key too long\" and\n stop. */\n if(dkLen > (0xFFFFFFFF * hLen)) {\n var err = new Error('Derived key is too long.');\n if(callback) {\n return callback(err);\n }\n throw err;\n }\n\n /* 2. Let len be the number of hLen-octet blocks in the derived key,\n rounding up, and let r be the number of octets in the last\n block:\n\n len = CEIL(dkLen / hLen),\n r = dkLen - (len - 1) * hLen. */\n var len = Math.ceil(dkLen / hLen);\n var r = dkLen - (len - 1) * hLen;\n\n /* 3. For each block of the derived key apply the function F defined\n below to the password P, the salt S, the iteration count c, and\n the block index to compute the block:\n\n T_1 = F(P, S, c, 1),\n T_2 = F(P, S, c, 2),\n ...\n T_len = F(P, S, c, len),\n\n where the function F is defined as the exclusive-or sum of the\n first c iterates of the underlying pseudorandom function PRF\n applied to the password P and the concatenation of the salt S\n and the block index i:\n\n F(P, S, c, i) = u_1 XOR u_2 XOR ... XOR u_c\n\n where\n\n u_1 = PRF(P, S || INT(i)),\n u_2 = PRF(P, u_1),\n ...\n u_c = PRF(P, u_{c-1}).\n\n Here, INT(i) is a four-octet encoding of the integer i, most\n significant octet first. */\n var prf = forge.hmac.create();\n prf.start(md, p);\n var dk = '';\n var xor, u_c, u_c1;\n\n // sync version\n if(!callback) {\n for(var i = 1; i <= len; ++i) {\n // PRF(P, S || INT(i)) (first iteration)\n prf.start(null, null);\n prf.update(s);\n prf.update(forge.util.int32ToBytes(i));\n xor = u_c1 = prf.digest().getBytes();\n\n // PRF(P, u_{c-1}) (other iterations)\n for(var j = 2; j <= c; ++j) {\n prf.start(null, null);\n prf.update(u_c1);\n u_c = prf.digest().getBytes();\n // F(p, s, c, i)\n xor = forge.util.xorBytes(xor, u_c, hLen);\n u_c1 = u_c;\n }\n\n /* 4. Concatenate the blocks and extract the first dkLen octets to\n produce a derived key DK:\n\n DK = T_1 || T_2 || ... || T_len<0..r-1> */\n dk += (i < len) ? xor : xor.substr(0, r);\n }\n /* 5. Output the derived key DK. */\n return dk;\n }\n\n // async version\n var i = 1, j;\n function outer() {\n if(i > len) {\n // done\n return callback(null, dk);\n }\n\n // PRF(P, S || INT(i)) (first iteration)\n prf.start(null, null);\n prf.update(s);\n prf.update(forge.util.int32ToBytes(i));\n xor = u_c1 = prf.digest().getBytes();\n\n // PRF(P, u_{c-1}) (other iterations)\n j = 2;\n inner();\n }\n\n function inner() {\n if(j <= c) {\n prf.start(null, null);\n prf.update(u_c1);\n u_c = prf.digest().getBytes();\n // F(p, s, c, i)\n xor = forge.util.xorBytes(xor, u_c, hLen);\n u_c1 = u_c;\n ++j;\n return forge.util.setImmediate(inner);\n }\n\n /* 4. Concatenate the blocks and extract the first dkLen octets to\n produce a derived key DK:\n\n DK = T_1 || T_2 || ... || T_len<0..r-1> */\n dk += (i < len) ? xor : xor.substr(0, r);\n\n ++i;\n outer();\n }\n\n outer();\n};\n","/**\n * Javascript implementation of basic PEM (Privacy Enhanced Mail) algorithms.\n *\n * See: RFC 1421.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2013-2014 Digital Bazaar, Inc.\n *\n * A Forge PEM object has the following fields:\n *\n * type: identifies the type of message (eg: \"RSA PRIVATE KEY\").\n *\n * procType: identifies the type of processing performed on the message,\n * it has two subfields: version and type, eg: 4,ENCRYPTED.\n *\n * contentDomain: identifies the type of content in the message, typically\n * only uses the value: \"RFC822\".\n *\n * dekInfo: identifies the message encryption algorithm and mode and includes\n * any parameters for the algorithm, it has two subfields: algorithm and\n * parameters, eg: DES-CBC,F8143EDE5960C597.\n *\n * headers: contains all other PEM encapsulated headers -- where order is\n * significant (for pairing data like recipient ID + key info).\n *\n * body: the binary-encoded body.\n */\nvar forge = require('./forge');\nrequire('./util');\n\n// shortcut for pem API\nvar pem = module.exports = forge.pem = forge.pem || {};\n\n/**\n * Encodes (serializes) the given PEM object.\n *\n * @param msg the PEM message object to encode.\n * @param options the options to use:\n * maxline the maximum characters per line for the body, (default: 64).\n *\n * @return the PEM-formatted string.\n */\npem.encode = function(msg, options) {\n options = options || {};\n var rval = '-----BEGIN ' + msg.type + '-----\\r\\n';\n\n // encode special headers\n var header;\n if(msg.procType) {\n header = {\n name: 'Proc-Type',\n values: [String(msg.procType.version), msg.procType.type]\n };\n rval += foldHeader(header);\n }\n if(msg.contentDomain) {\n header = {name: 'Content-Domain', values: [msg.contentDomain]};\n rval += foldHeader(header);\n }\n if(msg.dekInfo) {\n header = {name: 'DEK-Info', values: [msg.dekInfo.algorithm]};\n if(msg.dekInfo.parameters) {\n header.values.push(msg.dekInfo.parameters);\n }\n rval += foldHeader(header);\n }\n\n if(msg.headers) {\n // encode all other headers\n for(var i = 0; i < msg.headers.length; ++i) {\n rval += foldHeader(msg.headers[i]);\n }\n }\n\n // terminate header\n if(msg.procType) {\n rval += '\\r\\n';\n }\n\n // add body\n rval += forge.util.encode64(msg.body, options.maxline || 64) + '\\r\\n';\n\n rval += '-----END ' + msg.type + '-----\\r\\n';\n return rval;\n};\n\n/**\n * Decodes (deserializes) all PEM messages found in the given string.\n *\n * @param str the PEM-formatted string to decode.\n *\n * @return the PEM message objects in an array.\n */\npem.decode = function(str) {\n var rval = [];\n\n // split string into PEM messages (be lenient w/EOF on BEGIN line)\n var rMessage = /\\s*-----BEGIN ([A-Z0-9- ]+)-----\\r?\\n?([\\x21-\\x7e\\s]+?(?:\\r?\\n\\r?\\n))?([:A-Za-z0-9+\\/=\\s]+?)-----END \\1-----/g;\n var rHeader = /([\\x21-\\x7e]+):\\s*([\\x21-\\x7e\\s^:]+)/;\n var rCRLF = /\\r?\\n/;\n var match;\n while(true) {\n match = rMessage.exec(str);\n if(!match) {\n break;\n }\n\n // accept \"NEW CERTIFICATE REQUEST\" as \"CERTIFICATE REQUEST\"\n // https://datatracker.ietf.org/doc/html/rfc7468#section-7\n var type = match[1];\n if(type === 'NEW CERTIFICATE REQUEST') {\n type = 'CERTIFICATE REQUEST';\n }\n\n var msg = {\n type: type,\n procType: null,\n contentDomain: null,\n dekInfo: null,\n headers: [],\n body: forge.util.decode64(match[3])\n };\n rval.push(msg);\n\n // no headers\n if(!match[2]) {\n continue;\n }\n\n // parse headers\n var lines = match[2].split(rCRLF);\n var li = 0;\n while(match && li < lines.length) {\n // get line, trim any rhs whitespace\n var line = lines[li].replace(/\\s+$/, '');\n\n // RFC2822 unfold any following folded lines\n for(var nl = li + 1; nl < lines.length; ++nl) {\n var next = lines[nl];\n if(!/\\s/.test(next[0])) {\n break;\n }\n line += next;\n li = nl;\n }\n\n // parse header\n match = line.match(rHeader);\n if(match) {\n var header = {name: match[1], values: []};\n var values = match[2].split(',');\n for(var vi = 0; vi < values.length; ++vi) {\n header.values.push(ltrim(values[vi]));\n }\n\n // Proc-Type must be the first header\n if(!msg.procType) {\n if(header.name !== 'Proc-Type') {\n throw new Error('Invalid PEM formatted message. The first ' +\n 'encapsulated header must be \"Proc-Type\".');\n } else if(header.values.length !== 2) {\n throw new Error('Invalid PEM formatted message. The \"Proc-Type\" ' +\n 'header must have two subfields.');\n }\n msg.procType = {version: values[0], type: values[1]};\n } else if(!msg.contentDomain && header.name === 'Content-Domain') {\n // special-case Content-Domain\n msg.contentDomain = values[0] || '';\n } else if(!msg.dekInfo && header.name === 'DEK-Info') {\n // special-case DEK-Info\n if(header.values.length === 0) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must have at least one subfield.');\n }\n msg.dekInfo = {algorithm: values[0], parameters: values[1] || null};\n } else {\n msg.headers.push(header);\n }\n }\n\n ++li;\n }\n\n if(msg.procType === 'ENCRYPTED' && !msg.dekInfo) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must be present if \"Proc-Type\" is \"ENCRYPTED\".');\n }\n }\n\n if(rval.length === 0) {\n throw new Error('Invalid PEM formatted message.');\n }\n\n return rval;\n};\n\nfunction foldHeader(header) {\n var rval = header.name + ': ';\n\n // ensure values with CRLF are folded\n var values = [];\n var insertSpace = function(match, $1) {\n return ' ' + $1;\n };\n for(var i = 0; i < header.values.length; ++i) {\n values.push(header.values[i].replace(/^(\\S+\\r\\n)/, insertSpace));\n }\n rval += values.join(',') + '\\r\\n';\n\n // do folding\n var length = 0;\n var candidate = -1;\n for(var i = 0; i < rval.length; ++i, ++length) {\n if(length > 65 && candidate !== -1) {\n var insert = rval[candidate];\n if(insert === ',') {\n ++candidate;\n rval = rval.substr(0, candidate) + '\\r\\n ' + rval.substr(candidate);\n } else {\n rval = rval.substr(0, candidate) +\n '\\r\\n' + insert + rval.substr(candidate + 1);\n }\n length = (i - candidate - 1);\n candidate = -1;\n ++i;\n } else if(rval[i] === ' ' || rval[i] === '\\t' || rval[i] === ',') {\n candidate = i;\n }\n }\n\n return rval;\n}\n\nfunction ltrim(str) {\n return str.replace(/^\\s+/, '');\n}\n","/**\n * Partial implementation of PKCS#1 v2.2: RSA-OEAP\n *\n * Modified but based on the following MIT and BSD licensed code:\n *\n * https://github.com/kjur/jsjws/blob/master/rsa.js:\n *\n * The 'jsjws'(JSON Web Signature JavaScript Library) License\n *\n * Copyright (c) 2012 Kenji Urushima\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * http://webrsa.cvs.sourceforge.net/viewvc/webrsa/Client/RSAES-OAEP.js?content-type=text%2Fplain:\n *\n * RSAES-OAEP.js\n * $Id: RSAES-OAEP.js,v 1.1.1.1 2003/03/19 15:37:20 ellispritchard Exp $\n * JavaScript Implementation of PKCS #1 v2.1 RSA CRYPTOGRAPHY STANDARD (RSA Laboratories, June 14, 2002)\n * Copyright (C) Ellis Pritchard, Guardian Unlimited 2003.\n * Contact: ellis@nukinetics.com\n * Distributed under the BSD License.\n *\n * Official documentation: http://www.rsa.com/rsalabs/node.asp?id=2125\n *\n * @author Evan Jones (http://evanjones.ca/)\n * @author Dave Longley\n *\n * Copyright (c) 2013-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./random');\nrequire('./sha1');\n\n// shortcut for PKCS#1 API\nvar pkcs1 = module.exports = forge.pkcs1 = forge.pkcs1 || {};\n\n/**\n * Encode the given RSAES-OAEP message (M) using key, with optional label (L)\n * and seed.\n *\n * This method does not perform RSA encryption, it only encodes the message\n * using RSAES-OAEP.\n *\n * @param key the RSA key to use.\n * @param message the message to encode.\n * @param options the options to use:\n * label an optional label to use.\n * seed the seed to use.\n * md the message digest object to use, undefined for SHA-1.\n * mgf1 optional mgf1 parameters:\n * md the message digest object to use for MGF1.\n *\n * @return the encoded message bytes.\n */\npkcs1.encode_rsa_oaep = function(key, message, options) {\n // parse arguments\n var label;\n var seed;\n var md;\n var mgf1Md;\n // legacy args (label, seed, md)\n if(typeof options === 'string') {\n label = options;\n seed = arguments[3] || undefined;\n md = arguments[4] || undefined;\n } else if(options) {\n label = options.label || undefined;\n seed = options.seed || undefined;\n md = options.md || undefined;\n if(options.mgf1 && options.mgf1.md) {\n mgf1Md = options.mgf1.md;\n }\n }\n\n // default OAEP to SHA-1 message digest\n if(!md) {\n md = forge.md.sha1.create();\n } else {\n md.start();\n }\n\n // default MGF-1 to same as OAEP\n if(!mgf1Md) {\n mgf1Md = md;\n }\n\n // compute length in bytes and check output\n var keyLength = Math.ceil(key.n.bitLength() / 8);\n var maxLength = keyLength - 2 * md.digestLength - 2;\n if(message.length > maxLength) {\n var error = new Error('RSAES-OAEP input message length is too long.');\n error.length = message.length;\n error.maxLength = maxLength;\n throw error;\n }\n\n if(!label) {\n label = '';\n }\n md.update(label, 'raw');\n var lHash = md.digest();\n\n var PS = '';\n var PS_length = maxLength - message.length;\n for(var i = 0; i < PS_length; i++) {\n PS += '\\x00';\n }\n\n var DB = lHash.getBytes() + PS + '\\x01' + message;\n\n if(!seed) {\n seed = forge.random.getBytes(md.digestLength);\n } else if(seed.length !== md.digestLength) {\n var error = new Error('Invalid RSAES-OAEP seed. The seed length must ' +\n 'match the digest length.');\n error.seedLength = seed.length;\n error.digestLength = md.digestLength;\n throw error;\n }\n\n var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md);\n var maskedDB = forge.util.xorBytes(DB, dbMask, DB.length);\n\n var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md);\n var maskedSeed = forge.util.xorBytes(seed, seedMask, seed.length);\n\n // return encoded message\n return '\\x00' + maskedSeed + maskedDB;\n};\n\n/**\n * Decode the given RSAES-OAEP encoded message (EM) using key, with optional\n * label (L).\n *\n * This method does not perform RSA decryption, it only decodes the message\n * using RSAES-OAEP.\n *\n * @param key the RSA key to use.\n * @param em the encoded message to decode.\n * @param options the options to use:\n * label an optional label to use.\n * md the message digest object to use for OAEP, undefined for SHA-1.\n * mgf1 optional mgf1 parameters:\n * md the message digest object to use for MGF1.\n *\n * @return the decoded message bytes.\n */\npkcs1.decode_rsa_oaep = function(key, em, options) {\n // parse args\n var label;\n var md;\n var mgf1Md;\n // legacy args\n if(typeof options === 'string') {\n label = options;\n md = arguments[3] || undefined;\n } else if(options) {\n label = options.label || undefined;\n md = options.md || undefined;\n if(options.mgf1 && options.mgf1.md) {\n mgf1Md = options.mgf1.md;\n }\n }\n\n // compute length in bytes\n var keyLength = Math.ceil(key.n.bitLength() / 8);\n\n if(em.length !== keyLength) {\n var error = new Error('RSAES-OAEP encoded message length is invalid.');\n error.length = em.length;\n error.expectedLength = keyLength;\n throw error;\n }\n\n // default OAEP to SHA-1 message digest\n if(md === undefined) {\n md = forge.md.sha1.create();\n } else {\n md.start();\n }\n\n // default MGF-1 to same as OAEP\n if(!mgf1Md) {\n mgf1Md = md;\n }\n\n if(keyLength < 2 * md.digestLength + 2) {\n throw new Error('RSAES-OAEP key is too short for the hash function.');\n }\n\n if(!label) {\n label = '';\n }\n md.update(label, 'raw');\n var lHash = md.digest().getBytes();\n\n // split the message into its parts\n var y = em.charAt(0);\n var maskedSeed = em.substring(1, md.digestLength + 1);\n var maskedDB = em.substring(1 + md.digestLength);\n\n var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md);\n var seed = forge.util.xorBytes(maskedSeed, seedMask, maskedSeed.length);\n\n var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md);\n var db = forge.util.xorBytes(maskedDB, dbMask, maskedDB.length);\n\n var lHashPrime = db.substring(0, md.digestLength);\n\n // constant time check that all values match what is expected\n var error = (y !== '\\x00');\n\n // constant time check lHash vs lHashPrime\n for(var i = 0; i < md.digestLength; ++i) {\n error |= (lHash.charAt(i) !== lHashPrime.charAt(i));\n }\n\n // \"constant time\" find the 0x1 byte separating the padding (zeros) from the\n // message\n // TODO: It must be possible to do this in a better/smarter way?\n var in_ps = 1;\n var index = md.digestLength;\n for(var j = md.digestLength; j < db.length; j++) {\n var code = db.charCodeAt(j);\n\n var is_0 = (code & 0x1) ^ 0x1;\n\n // non-zero if not 0 or 1 in the ps section\n var error_mask = in_ps ? 0xfffe : 0x0000;\n error |= (code & error_mask);\n\n // latch in_ps to zero after we find 0x1\n in_ps = in_ps & is_0;\n index += in_ps;\n }\n\n if(error || db.charCodeAt(index) !== 0x1) {\n throw new Error('Invalid RSAES-OAEP padding.');\n }\n\n return db.substring(index + 1);\n};\n\nfunction rsa_mgf1(seed, maskLength, hash) {\n // default to SHA-1 message digest\n if(!hash) {\n hash = forge.md.sha1.create();\n }\n var t = '';\n var count = Math.ceil(maskLength / hash.digestLength);\n for(var i = 0; i < count; ++i) {\n var c = String.fromCharCode(\n (i >> 24) & 0xFF, (i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF);\n hash.start();\n hash.update(seed + c);\n t += hash.digest().getBytes();\n }\n return t.substring(0, maskLength);\n}\n","/**\n * Javascript implementation of PKCS#12.\n *\n * @author Dave Longley\n * @author Stefan Siegl \n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * The ASN.1 representation of PKCS#12 is as follows\n * (see ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12-tc1.pdf for details)\n *\n * PFX ::= SEQUENCE {\n * version INTEGER {v3(3)}(v3,...),\n * authSafe ContentInfo,\n * macData MacData OPTIONAL\n * }\n *\n * MacData ::= SEQUENCE {\n * mac DigestInfo,\n * macSalt OCTET STRING,\n * iterations INTEGER DEFAULT 1\n * }\n * Note: The iterations default is for historical reasons and its use is\n * deprecated. A higher value, like 1024, is recommended.\n *\n * DigestInfo is defined in PKCS#7 as follows:\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n *\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of SHA1 there is none.\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * Digest ::= OCTET STRING\n *\n *\n * ContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL\n * }\n *\n * ContentType ::= OBJECT IDENTIFIER\n *\n * AuthenticatedSafe ::= SEQUENCE OF ContentInfo\n * -- Data if unencrypted\n * -- EncryptedData if password-encrypted\n * -- EnvelopedData if public key-encrypted\n *\n *\n * SafeContents ::= SEQUENCE OF SafeBag\n *\n * SafeBag ::= SEQUENCE {\n * bagId BAG-TYPE.&id ({PKCS12BagSet})\n * bagValue [0] EXPLICIT BAG-TYPE.&Type({PKCS12BagSet}{@bagId}),\n * bagAttributes SET OF PKCS12Attribute OPTIONAL\n * }\n *\n * PKCS12Attribute ::= SEQUENCE {\n * attrId ATTRIBUTE.&id ({PKCS12AttrSet}),\n * attrValues SET OF ATTRIBUTE.&Type ({PKCS12AttrSet}{@attrId})\n * } -- This type is compatible with the X.500 type 'Attribute'\n *\n * PKCS12AttrSet ATTRIBUTE ::= {\n * friendlyName | -- from PKCS #9\n * localKeyId, -- from PKCS #9\n * ... -- Other attributes are allowed\n * }\n *\n * CertBag ::= SEQUENCE {\n * certId BAG-TYPE.&id ({CertTypes}),\n * certValue [0] EXPLICIT BAG-TYPE.&Type ({CertTypes}{@certId})\n * }\n *\n * x509Certificate BAG-TYPE ::= {OCTET STRING IDENTIFIED BY {certTypes 1}}\n * -- DER-encoded X.509 certificate stored in OCTET STRING\n *\n * sdsiCertificate BAG-TYPE ::= {IA5String IDENTIFIED BY {certTypes 2}}\n * -- Base64-encoded SDSI certificate stored in IA5String\n *\n * CertTypes BAG-TYPE ::= {\n * x509Certificate |\n * sdsiCertificate,\n * ... -- For future extensions\n * }\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./hmac');\nrequire('./oids');\nrequire('./pkcs7asn1');\nrequire('./pbe');\nrequire('./random');\nrequire('./rsa');\nrequire('./sha1');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for asn.1 & PKI API\nvar asn1 = forge.asn1;\nvar pki = forge.pki;\n\n// shortcut for PKCS#12 API\nvar p12 = module.exports = forge.pkcs12 = forge.pkcs12 || {};\n\nvar contentInfoValidator = {\n name: 'ContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // a ContentInfo\n constructed: true,\n value: [{\n name: 'ContentInfo.contentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'ContentInfo.content',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n captureAsn1: 'content'\n }]\n};\n\nvar pfxValidator = {\n name: 'PFX',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PFX.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n },\n contentInfoValidator, {\n name: 'PFX.macData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'mac',\n value: [{\n name: 'PFX.macData.mac',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // DigestInfo\n constructed: true,\n value: [{\n name: 'PFX.macData.mac.digestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // DigestAlgorithmIdentifier\n constructed: true,\n value: [{\n name: 'PFX.macData.mac.digestAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'macAlgorithm'\n }, {\n name: 'PFX.macData.mac.digestAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n captureAsn1: 'macAlgorithmParameters'\n }]\n }, {\n name: 'PFX.macData.mac.digest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'macDigest'\n }]\n }, {\n name: 'PFX.macData.macSalt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'macSalt'\n }, {\n name: 'PFX.macData.iterations',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n optional: true,\n capture: 'macIterations'\n }]\n }]\n};\n\nvar safeBagValidator = {\n name: 'SafeBag',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SafeBag.bagId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'bagId'\n }, {\n name: 'SafeBag.bagValue',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n captureAsn1: 'bagValue'\n }, {\n name: 'SafeBag.bagAttributes',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n optional: true,\n capture: 'bagAttributes'\n }]\n};\n\nvar attributeValidator = {\n name: 'Attribute',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Attribute.attrId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'oid'\n }, {\n name: 'Attribute.attrValues',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n capture: 'values'\n }]\n};\n\nvar certBagValidator = {\n name: 'CertBag',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'CertBag.certId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certId'\n }, {\n name: 'CertBag.certValue',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n /* So far we only support X.509 certificates (which are wrapped in\n an OCTET STRING, hence hard code that here). */\n value: [{\n name: 'CertBag.certValue[0]',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.OCTETSTRING,\n constructed: false,\n capture: 'cert'\n }]\n }]\n};\n\n/**\n * Search SafeContents structure for bags with matching attributes.\n *\n * The search can optionally be narrowed by a certain bag type.\n *\n * @param safeContents the SafeContents structure to search in.\n * @param attrName the name of the attribute to compare against.\n * @param attrValue the attribute value to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of matching bags.\n */\nfunction _getBagsByAttribute(safeContents, attrName, attrValue, bagType) {\n var result = [];\n\n for(var i = 0; i < safeContents.length; i++) {\n for(var j = 0; j < safeContents[i].safeBags.length; j++) {\n var bag = safeContents[i].safeBags[j];\n if(bagType !== undefined && bag.type !== bagType) {\n continue;\n }\n // only filter by bag type, no attribute specified\n if(attrName === null) {\n result.push(bag);\n continue;\n }\n if(bag.attributes[attrName] !== undefined &&\n bag.attributes[attrName].indexOf(attrValue) >= 0) {\n result.push(bag);\n }\n }\n }\n\n return result;\n}\n\n/**\n * Converts a PKCS#12 PFX in ASN.1 notation into a PFX object.\n *\n * @param obj The PKCS#12 PFX in ASN.1 notation.\n * @param strict true to use strict DER decoding, false not to (default: true).\n * @param {String} password Password to decrypt with (optional).\n *\n * @return PKCS#12 PFX object.\n */\np12.pkcs12FromAsn1 = function(obj, strict, password) {\n // handle args\n if(typeof strict === 'string') {\n password = strict;\n strict = true;\n } else if(strict === undefined) {\n strict = true;\n }\n\n // validate PFX and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, pfxValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 PFX. ' +\n 'ASN.1 object is not an PKCS#12 PFX.');\n error.errors = error;\n throw error;\n }\n\n var pfx = {\n version: capture.version.charCodeAt(0),\n safeContents: [],\n\n /**\n * Gets bags with matching attributes.\n *\n * @param filter the attributes to filter by:\n * [localKeyId] the localKeyId to search for.\n * [localKeyIdHex] the localKeyId in hex to search for.\n * [friendlyName] the friendly name to search for.\n * [bagType] bag type to narrow each attribute search by.\n *\n * @return a map of attribute type to an array of matching bags or, if no\n * attribute was given but a bag type, the map key will be the\n * bag type.\n */\n getBags: function(filter) {\n var rval = {};\n\n var localKeyId;\n if('localKeyId' in filter) {\n localKeyId = filter.localKeyId;\n } else if('localKeyIdHex' in filter) {\n localKeyId = forge.util.hexToBytes(filter.localKeyIdHex);\n }\n\n // filter on bagType only\n if(localKeyId === undefined && !('friendlyName' in filter) &&\n 'bagType' in filter) {\n rval[filter.bagType] = _getBagsByAttribute(\n pfx.safeContents, null, null, filter.bagType);\n }\n\n if(localKeyId !== undefined) {\n rval.localKeyId = _getBagsByAttribute(\n pfx.safeContents, 'localKeyId',\n localKeyId, filter.bagType);\n }\n if('friendlyName' in filter) {\n rval.friendlyName = _getBagsByAttribute(\n pfx.safeContents, 'friendlyName',\n filter.friendlyName, filter.bagType);\n }\n\n return rval;\n },\n\n /**\n * DEPRECATED: use getBags() instead.\n *\n * Get bags with matching friendlyName attribute.\n *\n * @param friendlyName the friendly name to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of bags with matching friendlyName attribute.\n */\n getBagsByFriendlyName: function(friendlyName, bagType) {\n return _getBagsByAttribute(\n pfx.safeContents, 'friendlyName', friendlyName, bagType);\n },\n\n /**\n * DEPRECATED: use getBags() instead.\n *\n * Get bags with matching localKeyId attribute.\n *\n * @param localKeyId the localKeyId to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of bags with matching localKeyId attribute.\n */\n getBagsByLocalKeyId: function(localKeyId, bagType) {\n return _getBagsByAttribute(\n pfx.safeContents, 'localKeyId', localKeyId, bagType);\n }\n };\n\n if(capture.version.charCodeAt(0) !== 3) {\n var error = new Error('PKCS#12 PFX of version other than 3 not supported.');\n error.version = capture.version.charCodeAt(0);\n throw error;\n }\n\n if(asn1.derToOid(capture.contentType) !== pki.oids.data) {\n var error = new Error('Only PKCS#12 PFX in password integrity mode supported.');\n error.oid = asn1.derToOid(capture.contentType);\n throw error;\n }\n\n var data = capture.content.value[0];\n if(data.tagClass !== asn1.Class.UNIVERSAL ||\n data.type !== asn1.Type.OCTETSTRING) {\n throw new Error('PKCS#12 authSafe content data is not an OCTET STRING.');\n }\n data = _decodePkcs7Data(data);\n\n // check for MAC\n if(capture.mac) {\n var md = null;\n var macKeyBytes = 0;\n var macAlgorithm = asn1.derToOid(capture.macAlgorithm);\n switch(macAlgorithm) {\n case pki.oids.sha1:\n md = forge.md.sha1.create();\n macKeyBytes = 20;\n break;\n case pki.oids.sha256:\n md = forge.md.sha256.create();\n macKeyBytes = 32;\n break;\n case pki.oids.sha384:\n md = forge.md.sha384.create();\n macKeyBytes = 48;\n break;\n case pki.oids.sha512:\n md = forge.md.sha512.create();\n macKeyBytes = 64;\n break;\n case pki.oids.md5:\n md = forge.md.md5.create();\n macKeyBytes = 16;\n break;\n }\n if(md === null) {\n throw new Error('PKCS#12 uses unsupported MAC algorithm: ' + macAlgorithm);\n }\n\n // verify MAC (iterations default to 1)\n var macSalt = new forge.util.ByteBuffer(capture.macSalt);\n var macIterations = (('macIterations' in capture) ?\n parseInt(forge.util.bytesToHex(capture.macIterations), 16) : 1);\n var macKey = p12.generateKey(\n password, macSalt, 3, macIterations, macKeyBytes, md);\n var mac = forge.hmac.create();\n mac.start(md, macKey);\n mac.update(data.value);\n var macValue = mac.getMac();\n if(macValue.getBytes() !== capture.macDigest) {\n throw new Error('PKCS#12 MAC could not be verified. Invalid password?');\n }\n }\n\n _decodeAuthenticatedSafe(pfx, data.value, strict, password);\n return pfx;\n};\n\n/**\n * Decodes PKCS#7 Data. PKCS#7 (RFC 2315) defines \"Data\" as an OCTET STRING,\n * but it is sometimes an OCTET STRING that is composed/constructed of chunks,\n * each its own OCTET STRING. This is BER-encoding vs. DER-encoding. This\n * function transforms this corner-case into the usual simple,\n * non-composed/constructed OCTET STRING.\n *\n * This function may be moved to ASN.1 at some point to better deal with\n * more BER-encoding issues, should they arise.\n *\n * @param data the ASN.1 Data object to transform.\n */\nfunction _decodePkcs7Data(data) {\n // handle special case of \"chunked\" data content: an octet string composed\n // of other octet strings\n if(data.composed || data.constructed) {\n var value = forge.util.createBuffer();\n for(var i = 0; i < data.value.length; ++i) {\n value.putBytes(data.value[i].value);\n }\n data.composed = data.constructed = false;\n data.value = value.getBytes();\n }\n return data;\n}\n\n/**\n * Decode PKCS#12 AuthenticatedSafe (BER encoded) into PFX object.\n *\n * The AuthenticatedSafe is a BER-encoded SEQUENCE OF ContentInfo.\n *\n * @param pfx The PKCS#12 PFX object to fill.\n * @param {String} authSafe BER-encoded AuthenticatedSafe.\n * @param strict true to use strict DER decoding, false not to.\n * @param {String} password Password to decrypt with (optional).\n */\nfunction _decodeAuthenticatedSafe(pfx, authSafe, strict, password) {\n authSafe = asn1.fromDer(authSafe, strict); /* actually it's BER encoded */\n\n if(authSafe.tagClass !== asn1.Class.UNIVERSAL ||\n authSafe.type !== asn1.Type.SEQUENCE ||\n authSafe.constructed !== true) {\n throw new Error('PKCS#12 AuthenticatedSafe expected to be a ' +\n 'SEQUENCE OF ContentInfo');\n }\n\n for(var i = 0; i < authSafe.value.length; i++) {\n var contentInfo = authSafe.value[i];\n\n // validate contentInfo and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(contentInfo, contentInfoValidator, capture, errors)) {\n var error = new Error('Cannot read ContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var obj = {\n encrypted: false\n };\n var safeContents = null;\n var data = capture.content.value[0];\n switch(asn1.derToOid(capture.contentType)) {\n case pki.oids.data:\n if(data.tagClass !== asn1.Class.UNIVERSAL ||\n data.type !== asn1.Type.OCTETSTRING) {\n throw new Error('PKCS#12 SafeContents Data is not an OCTET STRING.');\n }\n safeContents = _decodePkcs7Data(data).value;\n break;\n case pki.oids.encryptedData:\n safeContents = _decryptSafeContents(data, password);\n obj.encrypted = true;\n break;\n default:\n var error = new Error('Unsupported PKCS#12 contentType.');\n error.contentType = asn1.derToOid(capture.contentType);\n throw error;\n }\n\n obj.safeBags = _decodeSafeContents(safeContents, strict, password);\n pfx.safeContents.push(obj);\n }\n}\n\n/**\n * Decrypt PKCS#7 EncryptedData structure.\n *\n * @param data ASN.1 encoded EncryptedContentInfo object.\n * @param password The user-provided password.\n *\n * @return The decrypted SafeContents (ASN.1 object).\n */\nfunction _decryptSafeContents(data, password) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(\n data, forge.pkcs7.asn1.encryptedDataValidator, capture, errors)) {\n var error = new Error('Cannot read EncryptedContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var oid = asn1.derToOid(capture.contentType);\n if(oid !== pki.oids.data) {\n var error = new Error(\n 'PKCS#12 EncryptedContentInfo ContentType is not Data.');\n error.oid = oid;\n throw error;\n }\n\n // get cipher\n oid = asn1.derToOid(capture.encAlgorithm);\n var cipher = pki.pbe.getCipher(oid, capture.encParameter, password);\n\n // get encrypted data\n var encryptedContentAsn1 = _decodePkcs7Data(capture.encryptedContentAsn1);\n var encrypted = forge.util.createBuffer(encryptedContentAsn1.value);\n\n cipher.update(encrypted);\n if(!cipher.finish()) {\n throw new Error('Failed to decrypt PKCS#12 SafeContents.');\n }\n\n return cipher.output.getBytes();\n}\n\n/**\n * Decode PKCS#12 SafeContents (BER-encoded) into array of Bag objects.\n *\n * The safeContents is a BER-encoded SEQUENCE OF SafeBag.\n *\n * @param {String} safeContents BER-encoded safeContents.\n * @param strict true to use strict DER decoding, false not to.\n * @param {String} password Password to decrypt with (optional).\n *\n * @return {Array} Array of Bag objects.\n */\nfunction _decodeSafeContents(safeContents, strict, password) {\n // if strict and no safe contents, return empty safes\n if(!strict && safeContents.length === 0) {\n return [];\n }\n\n // actually it's BER-encoded\n safeContents = asn1.fromDer(safeContents, strict);\n\n if(safeContents.tagClass !== asn1.Class.UNIVERSAL ||\n safeContents.type !== asn1.Type.SEQUENCE ||\n safeContents.constructed !== true) {\n throw new Error(\n 'PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag.');\n }\n\n var res = [];\n for(var i = 0; i < safeContents.value.length; i++) {\n var safeBag = safeContents.value[i];\n\n // validate SafeBag and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(safeBag, safeBagValidator, capture, errors)) {\n var error = new Error('Cannot read SafeBag.');\n error.errors = errors;\n throw error;\n }\n\n /* Create bag object and push to result array. */\n var bag = {\n type: asn1.derToOid(capture.bagId),\n attributes: _decodeBagAttributes(capture.bagAttributes)\n };\n res.push(bag);\n\n var validator, decoder;\n var bagAsn1 = capture.bagValue.value[0];\n switch(bag.type) {\n case pki.oids.pkcs8ShroudedKeyBag:\n /* bagAsn1 has a EncryptedPrivateKeyInfo, which we need to decrypt.\n Afterwards we can handle it like a keyBag,\n which is a PrivateKeyInfo. */\n bagAsn1 = pki.decryptPrivateKeyInfo(bagAsn1, password);\n if(bagAsn1 === null) {\n throw new Error(\n 'Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?');\n }\n\n /* fall through */\n case pki.oids.keyBag:\n /* A PKCS#12 keyBag is a simple PrivateKeyInfo as understood by our\n PKI module, hence we don't have to do validation/capturing here,\n just pass what we already got. */\n try {\n bag.key = pki.privateKeyFromAsn1(bagAsn1);\n } catch(e) {\n // ignore unknown key type, pass asn1 value\n bag.key = null;\n bag.asn1 = bagAsn1;\n }\n continue; /* Nothing more to do. */\n\n case pki.oids.certBag:\n /* A PKCS#12 certBag can wrap both X.509 and sdsi certificates.\n Therefore put the SafeBag content through another validator to\n capture the fields. Afterwards check & store the results. */\n validator = certBagValidator;\n decoder = function() {\n if(asn1.derToOid(capture.certId) !== pki.oids.x509Certificate) {\n var error = new Error(\n 'Unsupported certificate type, only X.509 supported.');\n error.oid = asn1.derToOid(capture.certId);\n throw error;\n }\n\n // true=produce cert hash\n var certAsn1 = asn1.fromDer(capture.cert, strict);\n try {\n bag.cert = pki.certificateFromAsn1(certAsn1, true);\n } catch(e) {\n // ignore unknown cert type, pass asn1 value\n bag.cert = null;\n bag.asn1 = certAsn1;\n }\n };\n break;\n\n default:\n var error = new Error('Unsupported PKCS#12 SafeBag type.');\n error.oid = bag.type;\n throw error;\n }\n\n /* Validate SafeBag value (i.e. CertBag, etc.) and capture data if needed. */\n if(validator !== undefined &&\n !asn1.validate(bagAsn1, validator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 ' + validator.name);\n error.errors = errors;\n throw error;\n }\n\n /* Call decoder function from above to store the results. */\n decoder();\n }\n\n return res;\n}\n\n/**\n * Decode PKCS#12 SET OF PKCS12Attribute into JavaScript object.\n *\n * @param attributes SET OF PKCS12Attribute (ASN.1 object).\n *\n * @return the decoded attributes.\n */\nfunction _decodeBagAttributes(attributes) {\n var decodedAttrs = {};\n\n if(attributes !== undefined) {\n for(var i = 0; i < attributes.length; ++i) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(attributes[i], attributeValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 BagAttribute.');\n error.errors = errors;\n throw error;\n }\n\n var oid = asn1.derToOid(capture.oid);\n if(pki.oids[oid] === undefined) {\n // unsupported attribute type, ignore.\n continue;\n }\n\n decodedAttrs[pki.oids[oid]] = [];\n for(var j = 0; j < capture.values.length; ++j) {\n decodedAttrs[pki.oids[oid]].push(capture.values[j].value);\n }\n }\n }\n\n return decodedAttrs;\n}\n\n/**\n * Wraps a private key and certificate in a PKCS#12 PFX wrapper. If a\n * password is provided then the private key will be encrypted.\n *\n * An entire certificate chain may also be included. To do this, pass\n * an array for the \"cert\" parameter where the first certificate is\n * the one that is paired with the private key and each subsequent one\n * verifies the previous one. The certificates may be in PEM format or\n * have been already parsed by Forge.\n *\n * @todo implement password-based-encryption for the whole package\n *\n * @param key the private key.\n * @param cert the certificate (may be an array of certificates in order\n * to specify a certificate chain).\n * @param password the password to use, null for none.\n * @param options:\n * algorithm the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des'), defaults to 'aes128'.\n * count the iteration count to use.\n * saltSize the salt size to use.\n * useMac true to include a MAC, false not to, defaults to true.\n * localKeyId the local key ID to use, in hex.\n * friendlyName the friendly name to use.\n * generateLocalKeyId true to generate a random local key ID,\n * false not to, defaults to true.\n *\n * @return the PKCS#12 PFX ASN.1 object.\n */\np12.toPkcs12Asn1 = function(key, cert, password, options) {\n // set default options\n options = options || {};\n options.saltSize = options.saltSize || 8;\n options.count = options.count || 2048;\n options.algorithm = options.algorithm || options.encAlgorithm || 'aes128';\n if(!('useMac' in options)) {\n options.useMac = true;\n }\n if(!('localKeyId' in options)) {\n options.localKeyId = null;\n }\n if(!('generateLocalKeyId' in options)) {\n options.generateLocalKeyId = true;\n }\n\n var localKeyId = options.localKeyId;\n var bagAttrs;\n if(localKeyId !== null) {\n localKeyId = forge.util.hexToBytes(localKeyId);\n } else if(options.generateLocalKeyId) {\n // use SHA-1 of paired cert, if available\n if(cert) {\n var pairedCert = forge.util.isArray(cert) ? cert[0] : cert;\n if(typeof pairedCert === 'string') {\n pairedCert = pki.certificateFromPem(pairedCert);\n }\n var sha1 = forge.md.sha1.create();\n sha1.update(asn1.toDer(pki.certificateToAsn1(pairedCert)).getBytes());\n localKeyId = sha1.digest().getBytes();\n } else {\n // FIXME: consider using SHA-1 of public key (which can be generated\n // from private key components), see: cert.generateSubjectKeyIdentifier\n // generate random bytes\n localKeyId = forge.random.getBytes(20);\n }\n }\n\n var attrs = [];\n if(localKeyId !== null) {\n attrs.push(\n // localKeyID\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // attrId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.localKeyId).getBytes()),\n // attrValues\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n localKeyId)\n ])\n ]));\n }\n if('friendlyName' in options) {\n attrs.push(\n // friendlyName\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // attrId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.friendlyName).getBytes()),\n // attrValues\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BMPSTRING, false,\n options.friendlyName)\n ])\n ]));\n }\n\n if(attrs.length > 0) {\n bagAttrs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, attrs);\n }\n\n // collect contents for AuthenticatedSafe\n var contents = [];\n\n // create safe bag(s) for certificate chain\n var chain = [];\n if(cert !== null) {\n if(forge.util.isArray(cert)) {\n chain = cert;\n } else {\n chain = [cert];\n }\n }\n\n var certSafeBags = [];\n for(var i = 0; i < chain.length; ++i) {\n // convert cert from PEM as necessary\n cert = chain[i];\n if(typeof cert === 'string') {\n cert = pki.certificateFromPem(cert);\n }\n\n // SafeBag\n var certBagAttrs = (i === 0) ? bagAttrs : undefined;\n var certAsn1 = pki.certificateToAsn1(cert);\n var certSafeBag =\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.certBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // CertBag\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // certId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.x509Certificate).getBytes()),\n // certValue (x509Certificate)\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(certAsn1).getBytes())\n ])])]),\n // bagAttributes (OPTIONAL)\n certBagAttrs\n ]);\n certSafeBags.push(certSafeBag);\n }\n\n if(certSafeBags.length > 0) {\n // SafeContents\n var certSafeContents = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, certSafeBags);\n\n // ContentInfo\n var certCI =\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(certSafeContents).getBytes())\n ])\n ]);\n contents.push(certCI);\n }\n\n // create safe contents for private key\n var keyBag = null;\n if(key !== null) {\n // SafeBag\n var pkAsn1 = pki.wrapRsaPrivateKey(pki.privateKeyToAsn1(key));\n if(password === null) {\n // no encryption\n keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.keyBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // PrivateKeyInfo\n pkAsn1\n ]),\n // bagAttributes (OPTIONAL)\n bagAttrs\n ]);\n } else {\n // encrypted PrivateKeyInfo\n keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.pkcs8ShroudedKeyBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // EncryptedPrivateKeyInfo\n pki.encryptPrivateKeyInfo(pkAsn1, password, options)\n ]),\n // bagAttributes (OPTIONAL)\n bagAttrs\n ]);\n }\n\n // SafeContents\n var keySafeContents =\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [keyBag]);\n\n // ContentInfo\n var keyCI =\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(keySafeContents).getBytes())\n ])\n ]);\n contents.push(keyCI);\n }\n\n // create AuthenticatedSafe by stringing together the contents\n var safe = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, contents);\n\n var macData;\n if(options.useMac) {\n // MacData\n var sha1 = forge.md.sha1.create();\n var macSalt = new forge.util.ByteBuffer(\n forge.random.getBytes(options.saltSize));\n var count = options.count;\n // 160-bit key\n var key = p12.generateKey(password, macSalt, 3, count, 20);\n var mac = forge.hmac.create();\n mac.start(sha1, key);\n mac.update(asn1.toDer(safe).getBytes());\n var macValue = mac.getMac();\n macData = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // mac DigestInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // digestAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm = SHA-1\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.sha1).getBytes()),\n // parameters = Null\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // digest\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING,\n false, macValue.getBytes())\n ]),\n // macSalt OCTET STRING\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, macSalt.getBytes()),\n // iterations INTEGER (XXX: Only support count < 65536)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(count).getBytes()\n )\n ]);\n }\n\n // PFX\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (3)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(3).getBytes()),\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(safe).getBytes())\n ])\n ]),\n macData\n ]);\n};\n\n/**\n * Derives a PKCS#12 key.\n *\n * @param password the password to derive the key material from, null or\n * undefined for none.\n * @param salt the salt, as a ByteBuffer, to use.\n * @param id the PKCS#12 ID byte (1 = key material, 2 = IV, 3 = MAC).\n * @param iter the iteration count.\n * @param n the number of bytes to derive from the password.\n * @param md the message digest to use, defaults to SHA-1.\n *\n * @return a ByteBuffer with the bytes derived from the password.\n */\np12.generateKey = forge.pbe.generatePkcs12Key;\n","/**\n * Javascript implementation of PKCS#7 v1.5.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2012-2015 Digital Bazaar, Inc.\n *\n * Currently this implementation only supports ContentType of EnvelopedData,\n * EncryptedData, or SignedData at the root level. The top level elements may\n * contain only a ContentInfo of ContentType Data, i.e. plain data. Further\n * nesting is not (yet) supported.\n *\n * The Forge validators for PKCS #7's ASN.1 structures are available from\n * a separate file pkcs7asn1.js, since those are referenced from other\n * PKCS standards like PKCS #12.\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./oids');\nrequire('./pem');\nrequire('./pkcs7asn1');\nrequire('./random');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for ASN.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for PKCS#7 API\nvar p7 = module.exports = forge.pkcs7 = forge.pkcs7 || {};\n\n/**\n * Converts a PKCS#7 message from PEM format.\n *\n * @param pem the PEM-formatted PKCS#7 message.\n *\n * @return the PKCS#7 message.\n */\np7.messageFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PKCS7') {\n var error = new Error('Could not convert PKCS#7 message from PEM; PEM ' +\n 'header type is not \"PKCS#7\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert PKCS#7 message from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return p7.messageFromAsn1(obj);\n};\n\n/**\n * Converts a PKCS#7 message to PEM format.\n *\n * @param msg The PKCS#7 message object\n * @param maxline The maximum characters per line, defaults to 64.\n *\n * @return The PEM-formatted PKCS#7 message.\n */\np7.messageToPem = function(msg, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var pemObj = {\n type: 'PKCS7',\n body: asn1.toDer(msg.toAsn1()).getBytes()\n };\n return forge.pem.encode(pemObj, {maxline: maxline});\n};\n\n/**\n * Converts a PKCS#7 message from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a ContentInfo.\n *\n * @return the PKCS#7 message.\n */\np7.messageFromAsn1 = function(obj) {\n // validate root level ContentInfo and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.contentInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 message. ' +\n 'ASN.1 object is not an PKCS#7 ContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var contentType = asn1.derToOid(capture.contentType);\n var msg;\n\n switch(contentType) {\n case forge.pki.oids.envelopedData:\n msg = p7.createEnvelopedData();\n break;\n\n case forge.pki.oids.encryptedData:\n msg = p7.createEncryptedData();\n break;\n\n case forge.pki.oids.signedData:\n msg = p7.createSignedData();\n break;\n\n default:\n throw new Error('Cannot read PKCS#7 message. ContentType with OID ' +\n contentType + ' is not (yet) supported.');\n }\n\n msg.fromAsn1(capture.content.value[0]);\n return msg;\n};\n\np7.createSignedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.signedData,\n version: 1,\n certificates: [],\n crls: [],\n // TODO: add json-formatted signer stuff here?\n signers: [],\n // populated during sign()\n digestAlgorithmIdentifiers: [],\n contentInfo: null,\n signerInfos: [],\n\n fromAsn1: function(obj) {\n // validate SignedData content block and capture data.\n _fromAsn1(msg, obj, p7.asn1.signedDataValidator);\n msg.certificates = [];\n msg.crls = [];\n msg.digestAlgorithmIdentifiers = [];\n msg.contentInfo = null;\n msg.signerInfos = [];\n\n if(msg.rawCapture.certificates) {\n var certs = msg.rawCapture.certificates.value;\n for(var i = 0; i < certs.length; ++i) {\n msg.certificates.push(forge.pki.certificateFromAsn1(certs[i]));\n }\n }\n\n // TODO: parse crls\n },\n\n toAsn1: function() {\n // degenerate case with no content\n if(!msg.contentInfo) {\n msg.sign();\n }\n\n var certs = [];\n for(var i = 0; i < msg.certificates.length; ++i) {\n certs.push(forge.pki.certificateToAsn1(msg.certificates[i]));\n }\n\n var crls = [];\n // TODO: implement CRLs\n\n // [0] SignedData\n var signedData = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(msg.version).getBytes()),\n // DigestAlgorithmIdentifiers\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n msg.digestAlgorithmIdentifiers),\n // ContentInfo\n msg.contentInfo\n ])\n ]);\n if(certs.length > 0) {\n // [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL\n signedData.value[0].value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, certs));\n }\n if(crls.length > 0) {\n // [1] IMPLICIT CertificateRevocationLists OPTIONAL\n signedData.value[0].value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, crls));\n }\n // SignerInfos\n signedData.value[0].value.push(\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n msg.signerInfos));\n\n // ContentInfo\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(msg.type).getBytes()),\n // [0] SignedData\n signedData\n ]);\n },\n\n /**\n * Add (another) entity to list of signers.\n *\n * Note: If authenticatedAttributes are provided, then, per RFC 2315,\n * they must include at least two attributes: content type and\n * message digest. The message digest attribute value will be\n * auto-calculated during signing and will be ignored if provided.\n *\n * Here's an example of providing these two attributes:\n *\n * forge.pkcs7.createSignedData();\n * p7.addSigner({\n * issuer: cert.issuer.attributes,\n * serialNumber: cert.serialNumber,\n * key: privateKey,\n * digestAlgorithm: forge.pki.oids.sha1,\n * authenticatedAttributes: [{\n * type: forge.pki.oids.contentType,\n * value: forge.pki.oids.data\n * }, {\n * type: forge.pki.oids.messageDigest\n * }]\n * });\n *\n * TODO: Support [subjectKeyIdentifier] as signer's ID.\n *\n * @param signer the signer information:\n * key the signer's private key.\n * [certificate] a certificate containing the public key\n * associated with the signer's private key; use this option as\n * an alternative to specifying signer.issuer and\n * signer.serialNumber.\n * [issuer] the issuer attributes (eg: cert.issuer.attributes).\n * [serialNumber] the signer's certificate's serial number in\n * hexadecimal (eg: cert.serialNumber).\n * [digestAlgorithm] the message digest OID, as a string, to use\n * (eg: forge.pki.oids.sha1).\n * [authenticatedAttributes] an optional array of attributes\n * to also sign along with the content.\n */\n addSigner: function(signer) {\n var issuer = signer.issuer;\n var serialNumber = signer.serialNumber;\n if(signer.certificate) {\n var cert = signer.certificate;\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n issuer = cert.issuer.attributes;\n serialNumber = cert.serialNumber;\n }\n var key = signer.key;\n if(!key) {\n throw new Error(\n 'Could not add PKCS#7 signer; no private key specified.');\n }\n if(typeof key === 'string') {\n key = forge.pki.privateKeyFromPem(key);\n }\n\n // ensure OID known for digest algorithm\n var digestAlgorithm = signer.digestAlgorithm || forge.pki.oids.sha1;\n switch(digestAlgorithm) {\n case forge.pki.oids.sha1:\n case forge.pki.oids.sha256:\n case forge.pki.oids.sha384:\n case forge.pki.oids.sha512:\n case forge.pki.oids.md5:\n break;\n default:\n throw new Error(\n 'Could not add PKCS#7 signer; unknown message digest algorithm: ' +\n digestAlgorithm);\n }\n\n // if authenticatedAttributes is present, then the attributes\n // must contain at least PKCS #9 content-type and message-digest\n var authenticatedAttributes = signer.authenticatedAttributes || [];\n if(authenticatedAttributes.length > 0) {\n var contentType = false;\n var messageDigest = false;\n for(var i = 0; i < authenticatedAttributes.length; ++i) {\n var attr = authenticatedAttributes[i];\n if(!contentType && attr.type === forge.pki.oids.contentType) {\n contentType = true;\n if(messageDigest) {\n break;\n }\n continue;\n }\n if(!messageDigest && attr.type === forge.pki.oids.messageDigest) {\n messageDigest = true;\n if(contentType) {\n break;\n }\n continue;\n }\n }\n\n if(!contentType || !messageDigest) {\n throw new Error('Invalid signer.authenticatedAttributes. If ' +\n 'signer.authenticatedAttributes is specified, then it must ' +\n 'contain at least two attributes, PKCS #9 content-type and ' +\n 'PKCS #9 message-digest.');\n }\n }\n\n msg.signers.push({\n key: key,\n version: 1,\n issuer: issuer,\n serialNumber: serialNumber,\n digestAlgorithm: digestAlgorithm,\n signatureAlgorithm: forge.pki.oids.rsaEncryption,\n signature: null,\n authenticatedAttributes: authenticatedAttributes,\n unauthenticatedAttributes: []\n });\n },\n\n /**\n * Signs the content.\n * @param options Options to apply when signing:\n * [detached] boolean. If signing should be done in detached mode. Defaults to false.\n */\n sign: function(options) {\n options = options || {};\n // auto-generate content info\n if(typeof msg.content !== 'object' || msg.contentInfo === null) {\n // use Data ContentInfo\n msg.contentInfo = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(forge.pki.oids.data).getBytes())\n ]);\n\n // add actual content, if present\n if('content' in msg) {\n var content;\n if(msg.content instanceof forge.util.ByteBuffer) {\n content = msg.content.bytes();\n } else if(typeof msg.content === 'string') {\n content = forge.util.encodeUtf8(msg.content);\n }\n\n if (options.detached) {\n msg.detachedContent = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, content);\n } else {\n msg.contentInfo.value.push(\n // [0] EXPLICIT content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n content)\n ]));\n }\n }\n }\n\n // no signers, return early (degenerate case for certificate container)\n if(msg.signers.length === 0) {\n return;\n }\n\n // generate digest algorithm identifiers\n var mds = addDigestAlgorithmIds();\n\n // generate signerInfos\n addSignerInfos(mds);\n },\n\n verify: function() {\n throw new Error('PKCS#7 signature verification not yet implemented.');\n },\n\n /**\n * Add a certificate.\n *\n * @param cert the certificate to add.\n */\n addCertificate: function(cert) {\n // convert from PEM\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n msg.certificates.push(cert);\n },\n\n /**\n * Add a certificate revokation list.\n *\n * @param crl the certificate revokation list to add.\n */\n addCertificateRevokationList: function(crl) {\n throw new Error('PKCS#7 CRL support not yet implemented.');\n }\n };\n return msg;\n\n function addDigestAlgorithmIds() {\n var mds = {};\n\n for(var i = 0; i < msg.signers.length; ++i) {\n var signer = msg.signers[i];\n var oid = signer.digestAlgorithm;\n if(!(oid in mds)) {\n // content digest\n mds[oid] = forge.md[forge.pki.oids[oid]].create();\n }\n if(signer.authenticatedAttributes.length === 0) {\n // no custom attributes to digest; use content message digest\n signer.md = mds[oid];\n } else {\n // custom attributes to be digested; use own message digest\n // TODO: optimize to just copy message digest state if that\n // feature is ever supported with message digests\n signer.md = forge.md[forge.pki.oids[oid]].create();\n }\n }\n\n // add unique digest algorithm identifiers\n msg.digestAlgorithmIdentifiers = [];\n for(var oid in mds) {\n msg.digestAlgorithmIdentifiers.push(\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oid).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n }\n\n return mds;\n }\n\n function addSignerInfos(mds) {\n var content;\n\n if (msg.detachedContent) {\n // Signature has been made in detached mode.\n content = msg.detachedContent;\n } else {\n // Note: ContentInfo is a SEQUENCE with 2 values, second value is\n // the content field and is optional for a ContentInfo but required here\n // since signers are present\n // get ContentInfo content\n content = msg.contentInfo.value[1];\n // skip [0] EXPLICIT content wrapper\n content = content.value[0];\n }\n\n if(!content) {\n throw new Error(\n 'Could not sign PKCS#7 message; there is no content to sign.');\n }\n\n // get ContentInfo content type\n var contentType = asn1.derToOid(msg.contentInfo.value[0].value);\n\n // serialize content\n var bytes = asn1.toDer(content);\n\n // skip identifier and length per RFC 2315 9.3\n // skip identifier (1 byte)\n bytes.getByte();\n // read and discard length bytes\n asn1.getBerValueLength(bytes);\n bytes = bytes.getBytes();\n\n // digest content DER value bytes\n for(var oid in mds) {\n mds[oid].start().update(bytes);\n }\n\n // sign content\n var signingTime = new Date();\n for(var i = 0; i < msg.signers.length; ++i) {\n var signer = msg.signers[i];\n\n if(signer.authenticatedAttributes.length === 0) {\n // if ContentInfo content type is not \"Data\", then\n // authenticatedAttributes must be present per RFC 2315\n if(contentType !== forge.pki.oids.data) {\n throw new Error(\n 'Invalid signer; authenticatedAttributes must be present ' +\n 'when the ContentInfo content type is not PKCS#7 Data.');\n }\n } else {\n // process authenticated attributes\n // [0] IMPLICIT\n signer.authenticatedAttributesAsn1 = asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n\n // per RFC 2315, attributes are to be digested using a SET container\n // not the above [0] IMPLICIT container\n var attrsAsn1 = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SET, true, []);\n\n for(var ai = 0; ai < signer.authenticatedAttributes.length; ++ai) {\n var attr = signer.authenticatedAttributes[ai];\n if(attr.type === forge.pki.oids.messageDigest) {\n // use content message digest as value\n attr.value = mds[signer.digestAlgorithm].digest();\n } else if(attr.type === forge.pki.oids.signingTime) {\n // auto-populate signing time if not already set\n if(!attr.value) {\n attr.value = signingTime;\n }\n }\n\n // convert to ASN.1 and push onto Attributes SET (for signing) and\n // onto authenticatedAttributesAsn1 to complete SignedData ASN.1\n // TODO: optimize away duplication\n attrsAsn1.value.push(_attributeToAsn1(attr));\n signer.authenticatedAttributesAsn1.value.push(_attributeToAsn1(attr));\n }\n\n // DER-serialize and digest SET OF attributes only\n bytes = asn1.toDer(attrsAsn1).getBytes();\n signer.md.start().update(bytes);\n }\n\n // sign digest\n signer.signature = signer.key.sign(signer.md, 'RSASSA-PKCS1-V1_5');\n }\n\n // add signer info\n msg.signerInfos = _signersToAsn1(msg.signers);\n }\n};\n\n/**\n * Creates an empty PKCS#7 message of type EncryptedData.\n *\n * @return the message.\n */\np7.createEncryptedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.encryptedData,\n version: 0,\n encryptedContent: {\n algorithm: forge.pki.oids['aes256-CBC']\n },\n\n /**\n * Reads an EncryptedData content block (in ASN.1 format)\n *\n * @param obj The ASN.1 representation of the EncryptedData content block\n */\n fromAsn1: function(obj) {\n // Validate EncryptedData content block and capture data.\n _fromAsn1(msg, obj, p7.asn1.encryptedDataValidator);\n },\n\n /**\n * Decrypt encrypted content\n *\n * @param key The (symmetric) key as a byte buffer\n */\n decrypt: function(key) {\n if(key !== undefined) {\n msg.encryptedContent.key = key;\n }\n _decryptContent(msg);\n }\n };\n return msg;\n};\n\n/**\n * Creates an empty PKCS#7 message of type EnvelopedData.\n *\n * @return the message.\n */\np7.createEnvelopedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.envelopedData,\n version: 0,\n recipients: [],\n encryptedContent: {\n algorithm: forge.pki.oids['aes256-CBC']\n },\n\n /**\n * Reads an EnvelopedData content block (in ASN.1 format)\n *\n * @param obj the ASN.1 representation of the EnvelopedData content block.\n */\n fromAsn1: function(obj) {\n // validate EnvelopedData content block and capture data\n var capture = _fromAsn1(msg, obj, p7.asn1.envelopedDataValidator);\n msg.recipients = _recipientsFromAsn1(capture.recipientInfos.value);\n },\n\n toAsn1: function() {\n // ContentInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(msg.type).getBytes()),\n // [0] EnvelopedData\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(msg.version).getBytes()),\n // RecipientInfos\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n _recipientsToAsn1(msg.recipients)),\n // EncryptedContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true,\n _encryptedContentToAsn1(msg.encryptedContent))\n ])\n ])\n ]);\n },\n\n /**\n * Find recipient by X.509 certificate's issuer.\n *\n * @param cert the certificate with the issuer to look for.\n *\n * @return the recipient object.\n */\n findRecipient: function(cert) {\n var sAttr = cert.issuer.attributes;\n\n for(var i = 0; i < msg.recipients.length; ++i) {\n var r = msg.recipients[i];\n var rAttr = r.issuer;\n\n if(r.serialNumber !== cert.serialNumber) {\n continue;\n }\n\n if(rAttr.length !== sAttr.length) {\n continue;\n }\n\n var match = true;\n for(var j = 0; j < sAttr.length; ++j) {\n if(rAttr[j].type !== sAttr[j].type ||\n rAttr[j].value !== sAttr[j].value) {\n match = false;\n break;\n }\n }\n\n if(match) {\n return r;\n }\n }\n\n return null;\n },\n\n /**\n * Decrypt enveloped content\n *\n * @param recipient The recipient object related to the private key\n * @param privKey The (RSA) private key object\n */\n decrypt: function(recipient, privKey) {\n if(msg.encryptedContent.key === undefined && recipient !== undefined &&\n privKey !== undefined) {\n switch(recipient.encryptedContent.algorithm) {\n case forge.pki.oids.rsaEncryption:\n case forge.pki.oids.desCBC:\n var key = privKey.decrypt(recipient.encryptedContent.content);\n msg.encryptedContent.key = forge.util.createBuffer(key);\n break;\n\n default:\n throw new Error('Unsupported asymmetric cipher, ' +\n 'OID ' + recipient.encryptedContent.algorithm);\n }\n }\n\n _decryptContent(msg);\n },\n\n /**\n * Add (another) entity to list of recipients.\n *\n * @param cert The certificate of the entity to add.\n */\n addRecipient: function(cert) {\n msg.recipients.push({\n version: 0,\n issuer: cert.issuer.attributes,\n serialNumber: cert.serialNumber,\n encryptedContent: {\n // We simply assume rsaEncryption here, since forge.pki only\n // supports RSA so far. If the PKI module supports other\n // ciphers one day, we need to modify this one as well.\n algorithm: forge.pki.oids.rsaEncryption,\n key: cert.publicKey\n }\n });\n },\n\n /**\n * Encrypt enveloped content.\n *\n * This function supports two optional arguments, cipher and key, which\n * can be used to influence symmetric encryption. Unless cipher is\n * provided, the cipher specified in encryptedContent.algorithm is used\n * (defaults to AES-256-CBC). If no key is provided, encryptedContent.key\n * is (re-)used. If that one's not set, a random key will be generated\n * automatically.\n *\n * @param [key] The key to be used for symmetric encryption.\n * @param [cipher] The OID of the symmetric cipher to use.\n */\n encrypt: function(key, cipher) {\n // Part 1: Symmetric encryption\n if(msg.encryptedContent.content === undefined) {\n cipher = cipher || msg.encryptedContent.algorithm;\n key = key || msg.encryptedContent.key;\n\n var keyLen, ivLen, ciphFn;\n switch(cipher) {\n case forge.pki.oids['aes128-CBC']:\n keyLen = 16;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['aes192-CBC']:\n keyLen = 24;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['aes256-CBC']:\n keyLen = 32;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['des-EDE3-CBC']:\n keyLen = 24;\n ivLen = 8;\n ciphFn = forge.des.createEncryptionCipher;\n break;\n\n default:\n throw new Error('Unsupported symmetric cipher, OID ' + cipher);\n }\n\n if(key === undefined) {\n key = forge.util.createBuffer(forge.random.getBytes(keyLen));\n } else if(key.length() != keyLen) {\n throw new Error('Symmetric key has wrong length; ' +\n 'got ' + key.length() + ' bytes, expected ' + keyLen + '.');\n }\n\n // Keep a copy of the key & IV in the object, so the caller can\n // use it for whatever reason.\n msg.encryptedContent.algorithm = cipher;\n msg.encryptedContent.key = key;\n msg.encryptedContent.parameter = forge.util.createBuffer(\n forge.random.getBytes(ivLen));\n\n var ciph = ciphFn(key);\n ciph.start(msg.encryptedContent.parameter.copy());\n ciph.update(msg.content);\n\n // The finish function does PKCS#7 padding by default, therefore\n // no action required by us.\n if(!ciph.finish()) {\n throw new Error('Symmetric encryption failed.');\n }\n\n msg.encryptedContent.content = ciph.output;\n }\n\n // Part 2: asymmetric encryption for each recipient\n for(var i = 0; i < msg.recipients.length; ++i) {\n var recipient = msg.recipients[i];\n\n // Nothing to do, encryption already done.\n if(recipient.encryptedContent.content !== undefined) {\n continue;\n }\n\n switch(recipient.encryptedContent.algorithm) {\n case forge.pki.oids.rsaEncryption:\n recipient.encryptedContent.content =\n recipient.encryptedContent.key.encrypt(\n msg.encryptedContent.key.data);\n break;\n\n default:\n throw new Error('Unsupported asymmetric cipher, OID ' +\n recipient.encryptedContent.algorithm);\n }\n }\n }\n };\n return msg;\n};\n\n/**\n * Converts a single recipient from an ASN.1 object.\n *\n * @param obj the ASN.1 RecipientInfo.\n *\n * @return the recipient object.\n */\nfunction _recipientFromAsn1(obj) {\n // validate EnvelopedData content block and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.recipientInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 RecipientInfo. ' +\n 'ASN.1 object is not an PKCS#7 RecipientInfo.');\n error.errors = errors;\n throw error;\n }\n\n return {\n version: capture.version.charCodeAt(0),\n issuer: forge.pki.RDNAttributesAsArray(capture.issuer),\n serialNumber: forge.util.createBuffer(capture.serial).toHex(),\n encryptedContent: {\n algorithm: asn1.derToOid(capture.encAlgorithm),\n parameter: capture.encParameter ? capture.encParameter.value : undefined,\n content: capture.encKey\n }\n };\n}\n\n/**\n * Converts a single recipient object to an ASN.1 object.\n *\n * @param obj the recipient object.\n *\n * @return the ASN.1 RecipientInfo.\n */\nfunction _recipientToAsn1(obj) {\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(obj.version).getBytes()),\n // IssuerAndSerialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Name\n forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),\n // Serial\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(obj.serialNumber))\n ]),\n // KeyEncryptionAlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.encryptedContent.algorithm).getBytes()),\n // Parameter, force NULL, only RSA supported for now.\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // EncryptedKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n obj.encryptedContent.content)\n ]);\n}\n\n/**\n * Map a set of RecipientInfo ASN.1 objects to recipient objects.\n *\n * @param infos an array of ASN.1 representations RecipientInfo (i.e. SET OF).\n *\n * @return an array of recipient objects.\n */\nfunction _recipientsFromAsn1(infos) {\n var ret = [];\n for(var i = 0; i < infos.length; ++i) {\n ret.push(_recipientFromAsn1(infos[i]));\n }\n return ret;\n}\n\n/**\n * Map an array of recipient objects to ASN.1 RecipientInfo objects.\n *\n * @param recipients an array of recipientInfo objects.\n *\n * @return an array of ASN.1 RecipientInfos.\n */\nfunction _recipientsToAsn1(recipients) {\n var ret = [];\n for(var i = 0; i < recipients.length; ++i) {\n ret.push(_recipientToAsn1(recipients[i]));\n }\n return ret;\n}\n\n/**\n * Converts a single signer from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a SignerInfo.\n *\n * @return the signer object.\n */\nfunction _signerFromAsn1(obj) {\n // validate EnvelopedData content block and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.signerInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 SignerInfo. ' +\n 'ASN.1 object is not an PKCS#7 SignerInfo.');\n error.errors = errors;\n throw error;\n }\n\n var rval = {\n version: capture.version.charCodeAt(0),\n issuer: forge.pki.RDNAttributesAsArray(capture.issuer),\n serialNumber: forge.util.createBuffer(capture.serial).toHex(),\n digestAlgorithm: asn1.derToOid(capture.digestAlgorithm),\n signatureAlgorithm: asn1.derToOid(capture.signatureAlgorithm),\n signature: capture.signature,\n authenticatedAttributes: [],\n unauthenticatedAttributes: []\n };\n\n // TODO: convert attributes\n var authenticatedAttributes = capture.authenticatedAttributes || [];\n var unauthenticatedAttributes = capture.unauthenticatedAttributes || [];\n\n return rval;\n}\n\n/**\n * Converts a single signerInfo object to an ASN.1 object.\n *\n * @param obj the signerInfo object.\n *\n * @return the ASN.1 representation of a SignerInfo.\n */\nfunction _signerToAsn1(obj) {\n // SignerInfo\n var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(obj.version).getBytes()),\n // issuerAndSerialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // name\n forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),\n // serial\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(obj.serialNumber))\n ]),\n // digestAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.digestAlgorithm).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ]);\n\n // authenticatedAttributes (OPTIONAL)\n if(obj.authenticatedAttributesAsn1) {\n // add ASN.1 previously generated during signing\n rval.value.push(obj.authenticatedAttributesAsn1);\n }\n\n // digestEncryptionAlgorithm\n rval.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.signatureAlgorithm).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n\n // encryptedDigest\n rval.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, obj.signature));\n\n // unauthenticatedAttributes (OPTIONAL)\n if(obj.unauthenticatedAttributes.length > 0) {\n // [1] IMPLICIT\n var attrsAsn1 = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, []);\n for(var i = 0; i < obj.unauthenticatedAttributes.length; ++i) {\n var attr = obj.unauthenticatedAttributes[i];\n attrsAsn1.values.push(_attributeToAsn1(attr));\n }\n rval.value.push(attrsAsn1);\n }\n\n return rval;\n}\n\n/**\n * Map a set of SignerInfo ASN.1 objects to an array of signer objects.\n *\n * @param signerInfoAsn1s an array of ASN.1 SignerInfos (i.e. SET OF).\n *\n * @return an array of signers objects.\n */\nfunction _signersFromAsn1(signerInfoAsn1s) {\n var ret = [];\n for(var i = 0; i < signerInfoAsn1s.length; ++i) {\n ret.push(_signerFromAsn1(signerInfoAsn1s[i]));\n }\n return ret;\n}\n\n/**\n * Map an array of signer objects to ASN.1 objects.\n *\n * @param signers an array of signer objects.\n *\n * @return an array of ASN.1 SignerInfos.\n */\nfunction _signersToAsn1(signers) {\n var ret = [];\n for(var i = 0; i < signers.length; ++i) {\n ret.push(_signerToAsn1(signers[i]));\n }\n return ret;\n}\n\n/**\n * Convert an attribute object to an ASN.1 Attribute.\n *\n * @param attr the attribute object.\n *\n * @return the ASN.1 Attribute.\n */\nfunction _attributeToAsn1(attr) {\n var value;\n\n // TODO: generalize to support more attributes\n if(attr.type === forge.pki.oids.contentType) {\n value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.value).getBytes());\n } else if(attr.type === forge.pki.oids.messageDigest) {\n value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n attr.value.bytes());\n } else if(attr.type === forge.pki.oids.signingTime) {\n /* Note per RFC 2985: Dates between 1 January 1950 and 31 December 2049\n (inclusive) MUST be encoded as UTCTime. Any dates with year values\n before 1950 or after 2049 MUST be encoded as GeneralizedTime. [Further,]\n UTCTime values MUST be expressed in Greenwich Mean Time (Zulu) and MUST\n include seconds (i.e., times are YYMMDDHHMMSSZ), even where the\n number of seconds is zero. Midnight (GMT) must be represented as\n \"YYMMDD000000Z\". */\n // TODO: make these module-level constants\n var jan_1_1950 = new Date('1950-01-01T00:00:00Z');\n var jan_1_2050 = new Date('2050-01-01T00:00:00Z');\n var date = attr.value;\n if(typeof date === 'string') {\n // try to parse date\n var timestamp = Date.parse(date);\n if(!isNaN(timestamp)) {\n date = new Date(timestamp);\n } else if(date.length === 13) {\n // YYMMDDHHMMSSZ (13 chars for UTCTime)\n date = asn1.utcTimeToDate(date);\n } else {\n // assume generalized time\n date = asn1.generalizedTimeToDate(date);\n }\n }\n\n if(date >= jan_1_1950 && date < jan_1_2050) {\n value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false,\n asn1.dateToUtcTime(date));\n } else {\n value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false,\n asn1.dateToGeneralizedTime(date));\n }\n }\n\n // TODO: expose as common API call\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n // AttributeValue\n value\n ])\n ]);\n}\n\n/**\n * Map messages encrypted content to ASN.1 objects.\n *\n * @param ec The encryptedContent object of the message.\n *\n * @return ASN.1 representation of the encryptedContent object (SEQUENCE).\n */\nfunction _encryptedContentToAsn1(ec) {\n return [\n // ContentType, always Data for the moment\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(forge.pki.oids.data).getBytes()),\n // ContentEncryptionAlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(ec.algorithm).getBytes()),\n // Parameters (IV)\n !ec.parameter ?\n undefined :\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n ec.parameter.getBytes())\n ]),\n // [0] EncryptedContent\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n ec.content.getBytes())\n ])\n ];\n}\n\n/**\n * Reads the \"common part\" of an PKCS#7 content block (in ASN.1 format)\n *\n * This function reads the \"common part\" of the PKCS#7 content blocks\n * EncryptedData and EnvelopedData, i.e. version number and symmetrically\n * encrypted content block.\n *\n * The result of the ASN.1 validate and capture process is returned\n * to allow the caller to extract further data, e.g. the list of recipients\n * in case of a EnvelopedData object.\n *\n * @param msg the PKCS#7 object to read the data to.\n * @param obj the ASN.1 representation of the content block.\n * @param validator the ASN.1 structure validator object to use.\n *\n * @return the value map captured by validator object.\n */\nfunction _fromAsn1(msg, obj, validator) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, validator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 message. ' +\n 'ASN.1 object is not a supported PKCS#7 message.');\n error.errors = error;\n throw error;\n }\n\n // Check contentType, so far we only support (raw) Data.\n var contentType = asn1.derToOid(capture.contentType);\n if(contentType !== forge.pki.oids.data) {\n throw new Error('Unsupported PKCS#7 message. ' +\n 'Only wrapped ContentType Data supported.');\n }\n\n if(capture.encryptedContent) {\n var content = '';\n if(forge.util.isArray(capture.encryptedContent)) {\n for(var i = 0; i < capture.encryptedContent.length; ++i) {\n if(capture.encryptedContent[i].type !== asn1.Type.OCTETSTRING) {\n throw new Error('Malformed PKCS#7 message, expecting encrypted ' +\n 'content constructed of only OCTET STRING objects.');\n }\n content += capture.encryptedContent[i].value;\n }\n } else {\n content = capture.encryptedContent;\n }\n msg.encryptedContent = {\n algorithm: asn1.derToOid(capture.encAlgorithm),\n parameter: forge.util.createBuffer(capture.encParameter.value),\n content: forge.util.createBuffer(content)\n };\n }\n\n if(capture.content) {\n var content = '';\n if(forge.util.isArray(capture.content)) {\n for(var i = 0; i < capture.content.length; ++i) {\n if(capture.content[i].type !== asn1.Type.OCTETSTRING) {\n throw new Error('Malformed PKCS#7 message, expecting ' +\n 'content constructed of only OCTET STRING objects.');\n }\n content += capture.content[i].value;\n }\n } else {\n content = capture.content;\n }\n msg.content = forge.util.createBuffer(content);\n }\n\n msg.version = capture.version.charCodeAt(0);\n msg.rawCapture = capture;\n\n return capture;\n}\n\n/**\n * Decrypt the symmetrically encrypted content block of the PKCS#7 message.\n *\n * Decryption is skipped in case the PKCS#7 message object already has a\n * (decrypted) content attribute. The algorithm, key and cipher parameters\n * (probably the iv) are taken from the encryptedContent attribute of the\n * message object.\n *\n * @param The PKCS#7 message object.\n */\nfunction _decryptContent(msg) {\n if(msg.encryptedContent.key === undefined) {\n throw new Error('Symmetric key not available.');\n }\n\n if(msg.content === undefined) {\n var ciph;\n\n switch(msg.encryptedContent.algorithm) {\n case forge.pki.oids['aes128-CBC']:\n case forge.pki.oids['aes192-CBC']:\n case forge.pki.oids['aes256-CBC']:\n ciph = forge.aes.createDecryptionCipher(msg.encryptedContent.key);\n break;\n\n case forge.pki.oids['desCBC']:\n case forge.pki.oids['des-EDE3-CBC']:\n ciph = forge.des.createDecryptionCipher(msg.encryptedContent.key);\n break;\n\n default:\n throw new Error('Unsupported symmetric cipher, OID ' +\n msg.encryptedContent.algorithm);\n }\n ciph.start(msg.encryptedContent.parameter);\n ciph.update(msg.encryptedContent.content);\n\n if(!ciph.finish()) {\n throw new Error('Symmetric decryption failed.');\n }\n\n msg.content = ciph.output;\n }\n}\n","/**\n * Javascript implementation of ASN.1 validators for PKCS#7 v1.5.\n *\n * @author Dave Longley\n * @author Stefan Siegl\n *\n * Copyright (c) 2012-2015 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * The ASN.1 representation of PKCS#7 is as follows\n * (see RFC #2315 for details, http://www.ietf.org/rfc/rfc2315.txt):\n *\n * A PKCS#7 message consists of a ContentInfo on root level, which may\n * contain any number of further ContentInfo nested into it.\n *\n * ContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL\n * }\n *\n * ContentType ::= OBJECT IDENTIFIER\n *\n * EnvelopedData ::= SEQUENCE {\n * version Version,\n * recipientInfos RecipientInfos,\n * encryptedContentInfo EncryptedContentInfo\n * }\n *\n * EncryptedData ::= SEQUENCE {\n * version Version,\n * encryptedContentInfo EncryptedContentInfo\n * }\n *\n * id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)\n * us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }\n *\n * SignedData ::= SEQUENCE {\n * version INTEGER,\n * digestAlgorithms DigestAlgorithmIdentifiers,\n * contentInfo ContentInfo,\n * certificates [0] IMPLICIT Certificates OPTIONAL,\n * crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,\n * signerInfos SignerInfos\n * }\n *\n * SignerInfos ::= SET OF SignerInfo\n *\n * SignerInfo ::= SEQUENCE {\n * version Version,\n * issuerAndSerialNumber IssuerAndSerialNumber,\n * digestAlgorithm DigestAlgorithmIdentifier,\n * authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,\n * digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,\n * encryptedDigest EncryptedDigest,\n * unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL\n * }\n *\n * EncryptedDigest ::= OCTET STRING\n *\n * Attributes ::= SET OF Attribute\n *\n * Attribute ::= SEQUENCE {\n * attrType OBJECT IDENTIFIER,\n * attrValues SET OF AttributeValue\n * }\n *\n * AttributeValue ::= ANY\n *\n * Version ::= INTEGER\n *\n * RecipientInfos ::= SET OF RecipientInfo\n *\n * EncryptedContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,\n * encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL\n * }\n *\n * ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of AES and DES3, there is only one,\n * the IV.\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * EncryptedContent ::= OCTET STRING\n *\n * RecipientInfo ::= SEQUENCE {\n * version Version,\n * issuerAndSerialNumber IssuerAndSerialNumber,\n * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,\n * encryptedKey EncryptedKey\n * }\n *\n * IssuerAndSerialNumber ::= SEQUENCE {\n * issuer Name,\n * serialNumber CertificateSerialNumber\n * }\n *\n * CertificateSerialNumber ::= INTEGER\n *\n * KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * EncryptedKey ::= OCTET STRING\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./util');\n\n// shortcut for ASN.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for PKCS#7 API\nvar p7v = module.exports = forge.pkcs7asn1 = forge.pkcs7asn1 || {};\nforge.pkcs7 = forge.pkcs7 || {};\nforge.pkcs7.asn1 = p7v;\n\nvar contentInfoValidator = {\n name: 'ContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'ContentInfo.ContentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'ContentInfo.content',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n captureAsn1: 'content'\n }]\n};\np7v.contentInfoValidator = contentInfoValidator;\n\nvar encryptedContentInfoValidator = {\n name: 'EncryptedContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedContentInfo.contentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encAlgorithm'\n }, {\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n captureAsn1: 'encParameter'\n }]\n }, {\n name: 'EncryptedContentInfo.encryptedContent',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n /* The PKCS#7 structure output by OpenSSL somewhat differs from what\n * other implementations do generate.\n *\n * OpenSSL generates a structure like this:\n * SEQUENCE {\n * ...\n * [0]\n * 26 DA 67 D2 17 9C 45 3C B1 2A A8 59 2F 29 33 38\n * C3 C3 DF 86 71 74 7A 19 9F 40 D0 29 BE 85 90 45\n * ...\n * }\n *\n * Whereas other implementations (and this PKCS#7 module) generate:\n * SEQUENCE {\n * ...\n * [0] {\n * OCTET STRING\n * 26 DA 67 D2 17 9C 45 3C B1 2A A8 59 2F 29 33 38\n * C3 C3 DF 86 71 74 7A 19 9F 40 D0 29 BE 85 90 45\n * ...\n * }\n * }\n *\n * In order to support both, we just capture the context specific\n * field here. The OCTET STRING bit is removed below.\n */\n capture: 'encryptedContent',\n captureAsn1: 'encryptedContentAsn1'\n }]\n};\n\np7v.envelopedDataValidator = {\n name: 'EnvelopedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EnvelopedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'EnvelopedData.RecipientInfos',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n captureAsn1: 'recipientInfos'\n }].concat(encryptedContentInfoValidator)\n};\n\np7v.encryptedDataValidator = {\n name: 'EncryptedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }].concat(encryptedContentInfoValidator)\n};\n\nvar signerValidator = {\n name: 'SignerInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false\n }, {\n name: 'SignerInfo.issuerAndSerialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.issuerAndSerialNumber.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'issuer'\n }, {\n name: 'SignerInfo.issuerAndSerialNumber.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'serial'\n }]\n }, {\n name: 'SignerInfo.digestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.digestAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'digestAlgorithm'\n }, {\n name: 'SignerInfo.digestAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n constructed: false,\n captureAsn1: 'digestParameter',\n optional: true\n }]\n }, {\n name: 'SignerInfo.authenticatedAttributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n capture: 'authenticatedAttributes'\n }, {\n name: 'SignerInfo.digestEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n capture: 'signatureAlgorithm'\n }, {\n name: 'SignerInfo.encryptedDigest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'signature'\n }, {\n name: 'SignerInfo.unauthenticatedAttributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n optional: true,\n capture: 'unauthenticatedAttributes'\n }]\n};\n\np7v.signedDataValidator = {\n name: 'SignedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'SignedData.DigestAlgorithms',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n captureAsn1: 'digestAlgorithms'\n },\n contentInfoValidator,\n {\n name: 'SignedData.Certificates',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n optional: true,\n captureAsn1: 'certificates'\n }, {\n name: 'SignedData.CertificateRevocationLists',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n optional: true,\n captureAsn1: 'crls'\n }, {\n name: 'SignedData.SignerInfos',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n capture: 'signerInfos',\n optional: true,\n value: [signerValidator]\n }]\n};\n\np7v.recipientInfoValidator = {\n name: 'RecipientInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'RecipientInfo.issuerAndSerial',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.issuerAndSerial.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'issuer'\n }, {\n name: 'RecipientInfo.issuerAndSerial.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'serial'\n }]\n }, {\n name: 'RecipientInfo.keyEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.keyEncryptionAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encAlgorithm'\n }, {\n name: 'RecipientInfo.keyEncryptionAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n constructed: false,\n captureAsn1: 'encParameter',\n optional: true\n }]\n }, {\n name: 'RecipientInfo.encryptedKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encKey'\n }]\n};\n","/**\n * Javascript implementation of a basic Public Key Infrastructure, including\n * support for RSA public and private keys.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./oids');\nrequire('./pbe');\nrequire('./pem');\nrequire('./pbkdf2');\nrequire('./pkcs12');\nrequire('./pss');\nrequire('./rsa');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Public Key Infrastructure (PKI) implementation. */\nvar pki = module.exports = forge.pki = forge.pki || {};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED. Use pem.decode() instead.\n *\n * Converts PEM-formatted data to DER.\n *\n * @param pem the PEM-formatted data.\n *\n * @return the DER-formatted data.\n */\npki.pemToDer = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert PEM to DER; PEM is encrypted.');\n }\n return forge.util.createBuffer(msg.body);\n};\n\n/**\n * Converts an RSA private key from PEM format.\n *\n * @param pem the PEM-formatted private key.\n *\n * @return the private key.\n */\npki.privateKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PRIVATE KEY' && msg.type !== 'RSA PRIVATE KEY') {\n var error = new Error('Could not convert private key from PEM; PEM ' +\n 'header type is not \"PRIVATE KEY\" or \"RSA PRIVATE KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert private key from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return pki.privateKeyFromAsn1(obj);\n};\n\n/**\n * Converts an RSA private key to PEM format.\n *\n * @param key the private key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted private key.\n */\npki.privateKeyToPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'RSA PRIVATE KEY',\n body: asn1.toDer(pki.privateKeyToAsn1(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts a PrivateKeyInfo to PEM format.\n *\n * @param pki the PrivateKeyInfo.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted private key.\n */\npki.privateKeyInfoToPem = function(pki, maxline) {\n // convert to DER, then PEM-encode\n var msg = {\n type: 'PRIVATE KEY',\n body: asn1.toDer(pki).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n","/**\n * Prime number generation API.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./jsbn');\nrequire('./random');\n\n(function() {\n\n// forge.prime already defined\nif(forge.prime) {\n module.exports = forge.prime;\n return;\n}\n\n/* PRIME API */\nvar prime = module.exports = forge.prime = forge.prime || {};\n\nvar BigInteger = forge.jsbn.BigInteger;\n\n// primes are 30k+i for i = 1, 7, 11, 13, 17, 19, 23, 29\nvar GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2];\nvar THIRTY = new BigInteger(null);\nTHIRTY.fromInt(30);\nvar op_or = function(x, y) {return x|y;};\n\n/**\n * Generates a random probable prime with the given number of bits.\n *\n * Alternative algorithms can be specified by name as a string or as an\n * object with custom options like so:\n *\n * {\n * name: 'PRIMEINC',\n * options: {\n * maxBlockTime: ,\n * millerRabinTests: ,\n * workerScript: ,\n * workers: .\n * workLoad: the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * }\n * }\n *\n * @param bits the number of bits for the prime number.\n * @param options the options to use.\n * [algorithm] the algorithm to use (default: 'PRIMEINC').\n * [prng] a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n *\n * @return callback(err, num) called once the operation completes.\n */\nprime.generateProbablePrime = function(bits, options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n\n // default to PRIMEINC algorithm\n var algorithm = options.algorithm || 'PRIMEINC';\n if(typeof algorithm === 'string') {\n algorithm = {name: algorithm};\n }\n algorithm.options = algorithm.options || {};\n\n // create prng with api that matches BigInteger secure random\n var prng = options.prng || forge.random;\n var rng = {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n var b = prng.getBytesSync(x.length);\n for(var i = 0; i < x.length; ++i) {\n x[i] = b.charCodeAt(i);\n }\n }\n };\n\n if(algorithm.name === 'PRIMEINC') {\n return primeincFindPrime(bits, rng, algorithm.options, callback);\n }\n\n throw new Error('Invalid prime generation algorithm: ' + algorithm.name);\n};\n\nfunction primeincFindPrime(bits, rng, options, callback) {\n if('workers' in options) {\n return primeincFindPrimeWithWorkers(bits, rng, options, callback);\n }\n return primeincFindPrimeWithoutWorkers(bits, rng, options, callback);\n}\n\nfunction primeincFindPrimeWithoutWorkers(bits, rng, options, callback) {\n // initialize random number\n var num = generateRandom(bits, rng);\n\n /* Note: All primes are of the form 30k+i for i < 30 and gcd(30, i)=1. The\n number we are given is always aligned at 30k + 1. Each time the number is\n determined not to be prime we add to get to the next 'i', eg: if the number\n was at 30k + 1 we add 6. */\n var deltaIdx = 0;\n\n // get required number of MR tests\n var mrTests = getMillerRabinTests(num.bitLength());\n if('millerRabinTests' in options) {\n mrTests = options.millerRabinTests;\n }\n\n // find prime nearest to 'num' for maxBlockTime ms\n // 10 ms gives 5ms of leeway for other calculations before dropping\n // below 60fps (1000/60 == 16.67), but in reality, the number will\n // likely be higher due to an 'atomic' big int modPow\n var maxBlockTime = 10;\n if('maxBlockTime' in options) {\n maxBlockTime = options.maxBlockTime;\n }\n\n _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback);\n}\n\nfunction _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback) {\n var start = +new Date();\n do {\n // overflow, regenerate random number\n if(num.bitLength() > bits) {\n num = generateRandom(bits, rng);\n }\n // do primality test\n if(num.isProbablePrime(mrTests)) {\n return callback(null, num);\n }\n // get next potential prime\n num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0);\n } while(maxBlockTime < 0 || (+new Date() - start < maxBlockTime));\n\n // keep trying later\n forge.util.setImmediate(function() {\n _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback);\n });\n}\n\n// NOTE: This algorithm is indeterminate in nature because workers\n// run in parallel looking at different segments of numbers. Even if this\n// algorithm is run twice with the same input from a predictable RNG, it\n// may produce different outputs.\nfunction primeincFindPrimeWithWorkers(bits, rng, options, callback) {\n // web workers unavailable\n if(typeof Worker === 'undefined') {\n return primeincFindPrimeWithoutWorkers(bits, rng, options, callback);\n }\n\n // initialize random number\n var num = generateRandom(bits, rng);\n\n // use web workers to generate keys\n var numWorkers = options.workers;\n var workLoad = options.workLoad || 100;\n var range = workLoad * 30 / 8;\n var workerScript = options.workerScript || 'forge/prime.worker.js';\n if(numWorkers === -1) {\n return forge.util.estimateCores(function(err, cores) {\n if(err) {\n // default to 2\n cores = 2;\n }\n numWorkers = cores - 1;\n generate();\n });\n }\n generate();\n\n function generate() {\n // require at least 1 worker\n numWorkers = Math.max(1, numWorkers);\n\n // TODO: consider optimizing by starting workers outside getPrime() ...\n // note that in order to clean up they will have to be made internally\n // asynchronous which may actually be slower\n\n // start workers immediately\n var workers = [];\n for(var i = 0; i < numWorkers; ++i) {\n // FIXME: fix path or use blob URLs\n workers[i] = new Worker(workerScript);\n }\n var running = numWorkers;\n\n // listen for requests from workers and assign ranges to find prime\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].addEventListener('message', workerMessage);\n }\n\n /* Note: The distribution of random numbers is unknown. Therefore, each\n web worker is continuously allocated a range of numbers to check for a\n random number until one is found.\n\n Every 30 numbers will be checked just 8 times, because prime numbers\n have the form:\n\n 30k+i, for i < 30 and gcd(30, i)=1 (there are 8 values of i for this)\n\n Therefore, if we want a web worker to run N checks before asking for\n a new range of numbers, each range must contain N*30/8 numbers.\n\n For 100 checks (workLoad), this is a range of 375. */\n\n var found = false;\n function workerMessage(e) {\n // ignore message, prime already found\n if(found) {\n return;\n }\n\n --running;\n var data = e.data;\n if(data.found) {\n // terminate all workers\n for(var i = 0; i < workers.length; ++i) {\n workers[i].terminate();\n }\n found = true;\n return callback(null, new BigInteger(data.prime, 16));\n }\n\n // overflow, regenerate random number\n if(num.bitLength() > bits) {\n num = generateRandom(bits, rng);\n }\n\n // assign new range to check\n var hex = num.toString(16);\n\n // start prime search\n e.target.postMessage({\n hex: hex,\n workLoad: workLoad\n });\n\n num.dAddOffset(range, 0);\n }\n }\n}\n\n/**\n * Generates a random number using the given number of bits and RNG.\n *\n * @param bits the number of bits for the number.\n * @param rng the random number generator to use.\n *\n * @return the random number.\n */\nfunction generateRandom(bits, rng) {\n var num = new BigInteger(bits, rng);\n // force MSB set\n var bits1 = bits - 1;\n if(!num.testBit(bits1)) {\n num.bitwiseTo(BigInteger.ONE.shiftLeft(bits1), op_or, num);\n }\n // align number on 30k+1 boundary\n num.dAddOffset(31 - num.mod(THIRTY).byteValue(), 0);\n return num;\n}\n\n/**\n * Returns the required number of Miller-Rabin tests to generate a\n * prime with an error probability of (1/2)^80.\n *\n * See Handbook of Applied Cryptography Chapter 4, Table 4.4.\n *\n * @param bits the bit size.\n *\n * @return the required number of iterations.\n */\nfunction getMillerRabinTests(bits) {\n if(bits <= 100) return 27;\n if(bits <= 150) return 18;\n if(bits <= 200) return 15;\n if(bits <= 250) return 12;\n if(bits <= 300) return 9;\n if(bits <= 350) return 8;\n if(bits <= 400) return 7;\n if(bits <= 500) return 6;\n if(bits <= 600) return 5;\n if(bits <= 800) return 4;\n if(bits <= 1250) return 3;\n return 2;\n}\n\n})();\n","/**\n * A javascript implementation of a cryptographically-secure\n * Pseudo Random Number Generator (PRNG). The Fortuna algorithm is followed\n * here though the use of SHA-256 is not enforced; when generating an\n * a PRNG context, the hashing algorithm and block cipher used for\n * the generator are specified via a plugin.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nvar _crypto = null;\nif(forge.util.isNodejs && !forge.options.usePureJavaScript &&\n !process.versions['node-webkit']) {\n _crypto = require('crypto');\n}\n\n/* PRNG API */\nvar prng = module.exports = forge.prng = forge.prng || {};\n\n/**\n * Creates a new PRNG context.\n *\n * A PRNG plugin must be passed in that will provide:\n *\n * 1. A function that initializes the key and seed of a PRNG context. It\n * will be given a 16 byte key and a 16 byte seed. Any key expansion\n * or transformation of the seed from a byte string into an array of\n * integers (or similar) should be performed.\n * 2. The cryptographic function used by the generator. It takes a key and\n * a seed.\n * 3. A seed increment function. It takes the seed and returns seed + 1.\n * 4. An api to create a message digest.\n *\n * For an example, see random.js.\n *\n * @param plugin the PRNG plugin to use.\n */\nprng.create = function(plugin) {\n var ctx = {\n plugin: plugin,\n key: null,\n seed: null,\n time: null,\n // number of reseeds so far\n reseeds: 0,\n // amount of data generated so far\n generated: 0,\n // no initial key bytes\n keyBytes: ''\n };\n\n // create 32 entropy pools (each is a message digest)\n var md = plugin.md;\n var pools = new Array(32);\n for(var i = 0; i < 32; ++i) {\n pools[i] = md.create();\n }\n ctx.pools = pools;\n\n // entropy pools are written to cyclically, starting at index 0\n ctx.pool = 0;\n\n /**\n * Generates random bytes. The bytes may be generated synchronously or\n * asynchronously. Web workers must use the asynchronous interface or\n * else the behavior is undefined.\n *\n * @param count the number of random bytes to generate.\n * @param [callback(err, bytes)] called once the operation completes.\n *\n * @return count random bytes as a string.\n */\n ctx.generate = function(count, callback) {\n // do synchronously\n if(!callback) {\n return ctx.generateSync(count);\n }\n\n // simple generator using counter-based CBC\n var cipher = ctx.plugin.cipher;\n var increment = ctx.plugin.increment;\n var formatKey = ctx.plugin.formatKey;\n var formatSeed = ctx.plugin.formatSeed;\n var b = forge.util.createBuffer();\n\n // paranoid deviation from Fortuna:\n // reset key for every request to protect previously\n // generated random bytes should the key be discovered;\n // there is no 100ms based reseeding because of this\n // forced reseed for every `generate` call\n ctx.key = null;\n\n generate();\n\n function generate(err) {\n if(err) {\n return callback(err);\n }\n\n // sufficient bytes generated\n if(b.length() >= count) {\n return callback(null, b.getBytes(count));\n }\n\n // if amount of data generated is greater than 1 MiB, trigger reseed\n if(ctx.generated > 0xfffff) {\n ctx.key = null;\n }\n\n if(ctx.key === null) {\n // prevent stack overflow\n return forge.util.nextTick(function() {\n _reseed(generate);\n });\n }\n\n // generate the random bytes\n var bytes = cipher(ctx.key, ctx.seed);\n ctx.generated += bytes.length;\n b.putBytes(bytes);\n\n // generate bytes for a new key and seed\n ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed)));\n ctx.seed = formatSeed(cipher(ctx.key, ctx.seed));\n\n forge.util.setImmediate(generate);\n }\n };\n\n /**\n * Generates random bytes synchronously.\n *\n * @param count the number of random bytes to generate.\n *\n * @return count random bytes as a string.\n */\n ctx.generateSync = function(count) {\n // simple generator using counter-based CBC\n var cipher = ctx.plugin.cipher;\n var increment = ctx.plugin.increment;\n var formatKey = ctx.plugin.formatKey;\n var formatSeed = ctx.plugin.formatSeed;\n\n // paranoid deviation from Fortuna:\n // reset key for every request to protect previously\n // generated random bytes should the key be discovered;\n // there is no 100ms based reseeding because of this\n // forced reseed for every `generateSync` call\n ctx.key = null;\n\n var b = forge.util.createBuffer();\n while(b.length() < count) {\n // if amount of data generated is greater than 1 MiB, trigger reseed\n if(ctx.generated > 0xfffff) {\n ctx.key = null;\n }\n\n if(ctx.key === null) {\n _reseedSync();\n }\n\n // generate the random bytes\n var bytes = cipher(ctx.key, ctx.seed);\n ctx.generated += bytes.length;\n b.putBytes(bytes);\n\n // generate bytes for a new key and seed\n ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed)));\n ctx.seed = formatSeed(cipher(ctx.key, ctx.seed));\n }\n\n return b.getBytes(count);\n };\n\n /**\n * Private function that asynchronously reseeds a generator.\n *\n * @param callback(err) called once the operation completes.\n */\n function _reseed(callback) {\n if(ctx.pools[0].messageLength >= 32) {\n _seed();\n return callback();\n }\n // not enough seed data...\n var needed = (32 - ctx.pools[0].messageLength) << 5;\n ctx.seedFile(needed, function(err, bytes) {\n if(err) {\n return callback(err);\n }\n ctx.collect(bytes);\n _seed();\n callback();\n });\n }\n\n /**\n * Private function that synchronously reseeds a generator.\n */\n function _reseedSync() {\n if(ctx.pools[0].messageLength >= 32) {\n return _seed();\n }\n // not enough seed data...\n var needed = (32 - ctx.pools[0].messageLength) << 5;\n ctx.collect(ctx.seedFileSync(needed));\n _seed();\n }\n\n /**\n * Private function that seeds a generator once enough bytes are available.\n */\n function _seed() {\n // update reseed count\n ctx.reseeds = (ctx.reseeds === 0xffffffff) ? 0 : ctx.reseeds + 1;\n\n // goal is to update `key` via:\n // key = hash(key + s)\n // where 's' is all collected entropy from selected pools, then...\n\n // create a plugin-based message digest\n var md = ctx.plugin.md.create();\n\n // consume current key bytes\n md.update(ctx.keyBytes);\n\n // digest the entropy of pools whose index k meet the\n // condition 'n mod 2^k == 0' where n is the number of reseeds\n var _2powK = 1;\n for(var k = 0; k < 32; ++k) {\n if(ctx.reseeds % _2powK === 0) {\n md.update(ctx.pools[k].digest().getBytes());\n ctx.pools[k].start();\n }\n _2powK = _2powK << 1;\n }\n\n // get digest for key bytes\n ctx.keyBytes = md.digest().getBytes();\n\n // paranoid deviation from Fortuna:\n // update `seed` via `seed = hash(key)`\n // instead of initializing to zero once and only\n // ever incrementing it\n md.start();\n md.update(ctx.keyBytes);\n var seedBytes = md.digest().getBytes();\n\n // update state\n ctx.key = ctx.plugin.formatKey(ctx.keyBytes);\n ctx.seed = ctx.plugin.formatSeed(seedBytes);\n ctx.generated = 0;\n }\n\n /**\n * The built-in default seedFile. This seedFile is used when entropy\n * is needed immediately.\n *\n * @param needed the number of bytes that are needed.\n *\n * @return the random bytes.\n */\n function defaultSeedFile(needed) {\n // use window.crypto.getRandomValues strong source of entropy if available\n var getRandomValues = null;\n var globalScope = forge.util.globalScope;\n var _crypto = globalScope.crypto || globalScope.msCrypto;\n if(_crypto && _crypto.getRandomValues) {\n getRandomValues = function(arr) {\n return _crypto.getRandomValues(arr);\n };\n }\n\n var b = forge.util.createBuffer();\n if(getRandomValues) {\n while(b.length() < needed) {\n // max byte length is 65536 before QuotaExceededError is thrown\n // http://www.w3.org/TR/WebCryptoAPI/#RandomSource-method-getRandomValues\n var count = Math.max(1, Math.min(needed - b.length(), 65536) / 4);\n var entropy = new Uint32Array(Math.floor(count));\n try {\n getRandomValues(entropy);\n for(var i = 0; i < entropy.length; ++i) {\n b.putInt32(entropy[i]);\n }\n } catch(e) {\n /* only ignore QuotaExceededError */\n if(!(typeof QuotaExceededError !== 'undefined' &&\n e instanceof QuotaExceededError)) {\n throw e;\n }\n }\n }\n }\n\n // be sad and add some weak random data\n if(b.length() < needed) {\n /* Draws from Park-Miller \"minimal standard\" 31 bit PRNG,\n implemented with David G. Carta's optimization: with 32 bit math\n and without division (Public Domain). */\n var hi, lo, next;\n var seed = Math.floor(Math.random() * 0x010000);\n while(b.length() < needed) {\n lo = 16807 * (seed & 0xFFFF);\n hi = 16807 * (seed >> 16);\n lo += (hi & 0x7FFF) << 16;\n lo += hi >> 15;\n lo = (lo & 0x7FFFFFFF) + (lo >> 31);\n seed = lo & 0xFFFFFFFF;\n\n // consume lower 3 bytes of seed\n for(var i = 0; i < 3; ++i) {\n // throw in more pseudo random\n next = seed >>> (i << 3);\n next ^= Math.floor(Math.random() * 0x0100);\n b.putByte(next & 0xFF);\n }\n }\n }\n\n return b.getBytes(needed);\n }\n // initialize seed file APIs\n if(_crypto) {\n // use nodejs async API\n ctx.seedFile = function(needed, callback) {\n _crypto.randomBytes(needed, function(err, bytes) {\n if(err) {\n return callback(err);\n }\n callback(null, bytes.toString());\n });\n };\n // use nodejs sync API\n ctx.seedFileSync = function(needed) {\n return _crypto.randomBytes(needed).toString();\n };\n } else {\n ctx.seedFile = function(needed, callback) {\n try {\n callback(null, defaultSeedFile(needed));\n } catch(e) {\n callback(e);\n }\n };\n ctx.seedFileSync = defaultSeedFile;\n }\n\n /**\n * Adds entropy to a prng ctx's accumulator.\n *\n * @param bytes the bytes of entropy as a string.\n */\n ctx.collect = function(bytes) {\n // iterate over pools distributing entropy cyclically\n var count = bytes.length;\n for(var i = 0; i < count; ++i) {\n ctx.pools[ctx.pool].update(bytes.substr(i, 1));\n ctx.pool = (ctx.pool === 31) ? 0 : ctx.pool + 1;\n }\n };\n\n /**\n * Collects an integer of n bits.\n *\n * @param i the integer entropy.\n * @param n the number of bits in the integer.\n */\n ctx.collectInt = function(i, n) {\n var bytes = '';\n for(var x = 0; x < n; x += 8) {\n bytes += String.fromCharCode((i >> x) & 0xFF);\n }\n ctx.collect(bytes);\n };\n\n /**\n * Registers a Web Worker to receive immediate entropy from the main thread.\n * This method is required until Web Workers can access the native crypto\n * API. This method should be called twice for each created worker, once in\n * the main thread, and once in the worker itself.\n *\n * @param worker the worker to register.\n */\n ctx.registerWorker = function(worker) {\n // worker receives random bytes\n if(worker === self) {\n ctx.seedFile = function(needed, callback) {\n function listener(e) {\n var data = e.data;\n if(data.forge && data.forge.prng) {\n self.removeEventListener('message', listener);\n callback(data.forge.prng.err, data.forge.prng.bytes);\n }\n }\n self.addEventListener('message', listener);\n self.postMessage({forge: {prng: {needed: needed}}});\n };\n } else {\n // main thread sends random bytes upon request\n var listener = function(e) {\n var data = e.data;\n if(data.forge && data.forge.prng) {\n ctx.seedFile(data.forge.prng.needed, function(err, bytes) {\n worker.postMessage({forge: {prng: {err: err, bytes: bytes}}});\n });\n }\n };\n // TODO: do we need to remove the event listener when the worker dies?\n worker.addEventListener('message', listener);\n }\n };\n\n return ctx;\n};\n","/**\n * Javascript implementation of PKCS#1 PSS signature padding.\n *\n * @author Stefan Siegl\n *\n * Copyright (c) 2012 Stefan Siegl \n */\nvar forge = require('./forge');\nrequire('./random');\nrequire('./util');\n\n// shortcut for PSS API\nvar pss = module.exports = forge.pss = forge.pss || {};\n\n/**\n * Creates a PSS signature scheme object.\n *\n * There are several ways to provide a salt for encoding:\n *\n * 1. Specify the saltLength only and the built-in PRNG will generate it.\n * 2. Specify the saltLength and a custom PRNG with 'getBytesSync' defined that\n * will be used.\n * 3. Specify the salt itself as a forge.util.ByteBuffer.\n *\n * @param options the options to use:\n * md the message digest object to use, a forge md instance.\n * mgf the mask generation function to use, a forge mgf instance.\n * [saltLength] the length of the salt in octets.\n * [prng] the pseudo-random number generator to use to produce a salt.\n * [salt] the salt to use when encoding.\n *\n * @return a signature scheme object.\n */\npss.create = function(options) {\n // backwards compatibility w/legacy args: hash, mgf, sLen\n if(arguments.length === 3) {\n options = {\n md: arguments[0],\n mgf: arguments[1],\n saltLength: arguments[2]\n };\n }\n\n var hash = options.md;\n var mgf = options.mgf;\n var hLen = hash.digestLength;\n\n var salt_ = options.salt || null;\n if(typeof salt_ === 'string') {\n // assume binary-encoded string\n salt_ = forge.util.createBuffer(salt_);\n }\n\n var sLen;\n if('saltLength' in options) {\n sLen = options.saltLength;\n } else if(salt_ !== null) {\n sLen = salt_.length();\n } else {\n throw new Error('Salt length not specified or specific salt not given.');\n }\n\n if(salt_ !== null && salt_.length() !== sLen) {\n throw new Error('Given salt length does not match length of given salt.');\n }\n\n var prng = options.prng || forge.random;\n\n var pssobj = {};\n\n /**\n * Encodes a PSS signature.\n *\n * This function implements EMSA-PSS-ENCODE as per RFC 3447, section 9.1.1.\n *\n * @param md the message digest object with the hash to sign.\n * @param modsBits the length of the RSA modulus in bits.\n *\n * @return the encoded message as a binary-encoded string of length\n * ceil((modBits - 1) / 8).\n */\n pssobj.encode = function(md, modBits) {\n var i;\n var emBits = modBits - 1;\n var emLen = Math.ceil(emBits / 8);\n\n /* 2. Let mHash = Hash(M), an octet string of length hLen. */\n var mHash = md.digest().getBytes();\n\n /* 3. If emLen < hLen + sLen + 2, output \"encoding error\" and stop. */\n if(emLen < hLen + sLen + 2) {\n throw new Error('Message is too long to encrypt.');\n }\n\n /* 4. Generate a random octet string salt of length sLen; if sLen = 0,\n * then salt is the empty string. */\n var salt;\n if(salt_ === null) {\n salt = prng.getBytesSync(sLen);\n } else {\n salt = salt_.bytes();\n }\n\n /* 5. Let M' = (0x)00 00 00 00 00 00 00 00 || mHash || salt; */\n var m_ = new forge.util.ByteBuffer();\n m_.fillWithByte(0, 8);\n m_.putBytes(mHash);\n m_.putBytes(salt);\n\n /* 6. Let H = Hash(M'), an octet string of length hLen. */\n hash.start();\n hash.update(m_.getBytes());\n var h = hash.digest().getBytes();\n\n /* 7. Generate an octet string PS consisting of emLen - sLen - hLen - 2\n * zero octets. The length of PS may be 0. */\n var ps = new forge.util.ByteBuffer();\n ps.fillWithByte(0, emLen - sLen - hLen - 2);\n\n /* 8. Let DB = PS || 0x01 || salt; DB is an octet string of length\n * emLen - hLen - 1. */\n ps.putByte(0x01);\n ps.putBytes(salt);\n var db = ps.getBytes();\n\n /* 9. Let dbMask = MGF(H, emLen - hLen - 1). */\n var maskLen = emLen - hLen - 1;\n var dbMask = mgf.generate(h, maskLen);\n\n /* 10. Let maskedDB = DB \\xor dbMask. */\n var maskedDB = '';\n for(i = 0; i < maskLen; i++) {\n maskedDB += String.fromCharCode(db.charCodeAt(i) ^ dbMask.charCodeAt(i));\n }\n\n /* 11. Set the leftmost 8emLen - emBits bits of the leftmost octet in\n * maskedDB to zero. */\n var mask = (0xFF00 >> (8 * emLen - emBits)) & 0xFF;\n maskedDB = String.fromCharCode(maskedDB.charCodeAt(0) & ~mask) +\n maskedDB.substr(1);\n\n /* 12. Let EM = maskedDB || H || 0xbc.\n * 13. Output EM. */\n return maskedDB + h + String.fromCharCode(0xbc);\n };\n\n /**\n * Verifies a PSS signature.\n *\n * This function implements EMSA-PSS-VERIFY as per RFC 3447, section 9.1.2.\n *\n * @param mHash the message digest hash, as a binary-encoded string, to\n * compare against the signature.\n * @param em the encoded message, as a binary-encoded string\n * (RSA decryption result).\n * @param modsBits the length of the RSA modulus in bits.\n *\n * @return true if the signature was verified, false if not.\n */\n pssobj.verify = function(mHash, em, modBits) {\n var i;\n var emBits = modBits - 1;\n var emLen = Math.ceil(emBits / 8);\n\n /* c. Convert the message representative m to an encoded message EM\n * of length emLen = ceil((modBits - 1) / 8) octets, where modBits\n * is the length in bits of the RSA modulus n */\n em = em.substr(-emLen);\n\n /* 3. If emLen < hLen + sLen + 2, output \"inconsistent\" and stop. */\n if(emLen < hLen + sLen + 2) {\n throw new Error('Inconsistent parameters to PSS signature verification.');\n }\n\n /* 4. If the rightmost octet of EM does not have hexadecimal value\n * 0xbc, output \"inconsistent\" and stop. */\n if(em.charCodeAt(emLen - 1) !== 0xbc) {\n throw new Error('Encoded message does not end in 0xBC.');\n }\n\n /* 5. Let maskedDB be the leftmost emLen - hLen - 1 octets of EM, and\n * let H be the next hLen octets. */\n var maskLen = emLen - hLen - 1;\n var maskedDB = em.substr(0, maskLen);\n var h = em.substr(maskLen, hLen);\n\n /* 6. If the leftmost 8emLen - emBits bits of the leftmost octet in\n * maskedDB are not all equal to zero, output \"inconsistent\" and stop. */\n var mask = (0xFF00 >> (8 * emLen - emBits)) & 0xFF;\n if((maskedDB.charCodeAt(0) & mask) !== 0) {\n throw new Error('Bits beyond keysize not zero as expected.');\n }\n\n /* 7. Let dbMask = MGF(H, emLen - hLen - 1). */\n var dbMask = mgf.generate(h, maskLen);\n\n /* 8. Let DB = maskedDB \\xor dbMask. */\n var db = '';\n for(i = 0; i < maskLen; i++) {\n db += String.fromCharCode(maskedDB.charCodeAt(i) ^ dbMask.charCodeAt(i));\n }\n\n /* 9. Set the leftmost 8emLen - emBits bits of the leftmost octet\n * in DB to zero. */\n db = String.fromCharCode(db.charCodeAt(0) & ~mask) + db.substr(1);\n\n /* 10. If the emLen - hLen - sLen - 2 leftmost octets of DB are not zero\n * or if the octet at position emLen - hLen - sLen - 1 (the leftmost\n * position is \"position 1\") does not have hexadecimal value 0x01,\n * output \"inconsistent\" and stop. */\n var checkLen = emLen - hLen - sLen - 2;\n for(i = 0; i < checkLen; i++) {\n if(db.charCodeAt(i) !== 0x00) {\n throw new Error('Leftmost octets not zero as expected');\n }\n }\n\n if(db.charCodeAt(checkLen) !== 0x01) {\n throw new Error('Inconsistent PSS signature, 0x01 marker not found');\n }\n\n /* 11. Let salt be the last sLen octets of DB. */\n var salt = db.substr(-sLen);\n\n /* 12. Let M' = (0x)00 00 00 00 00 00 00 00 || mHash || salt */\n var m_ = new forge.util.ByteBuffer();\n m_.fillWithByte(0, 8);\n m_.putBytes(mHash);\n m_.putBytes(salt);\n\n /* 13. Let H' = Hash(M'), an octet string of length hLen. */\n hash.start();\n hash.update(m_.getBytes());\n var h_ = hash.digest().getBytes();\n\n /* 14. If H = H', output \"consistent.\" Otherwise, output \"inconsistent.\" */\n return h === h_;\n };\n\n return pssobj;\n};\n","/**\n * An API for getting cryptographically-secure random bytes. The bytes are\n * generated using the Fortuna algorithm devised by Bruce Schneier and\n * Niels Ferguson.\n *\n * Getting strong random bytes is not yet easy to do in javascript. The only\n * truish random entropy that can be collected is from the mouse, keyboard, or\n * from timing with respect to page loads, etc. This generator makes a poor\n * attempt at providing random bytes when those sources haven't yet provided\n * enough entropy to initially seed or to reseed the PRNG.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./sha256');\nrequire('./prng');\nrequire('./util');\n\n(function() {\n\n// forge.random already defined\nif(forge.random && forge.random.getBytes) {\n module.exports = forge.random;\n return;\n}\n\n(function(jQuery) {\n\n// the default prng plugin, uses AES-128\nvar prng_aes = {};\nvar _prng_aes_output = new Array(4);\nvar _prng_aes_buffer = forge.util.createBuffer();\nprng_aes.formatKey = function(key) {\n // convert the key into 32-bit integers\n var tmp = forge.util.createBuffer(key);\n key = new Array(4);\n key[0] = tmp.getInt32();\n key[1] = tmp.getInt32();\n key[2] = tmp.getInt32();\n key[3] = tmp.getInt32();\n\n // return the expanded key\n return forge.aes._expandKey(key, false);\n};\nprng_aes.formatSeed = function(seed) {\n // convert seed into 32-bit integers\n var tmp = forge.util.createBuffer(seed);\n seed = new Array(4);\n seed[0] = tmp.getInt32();\n seed[1] = tmp.getInt32();\n seed[2] = tmp.getInt32();\n seed[3] = tmp.getInt32();\n return seed;\n};\nprng_aes.cipher = function(key, seed) {\n forge.aes._updateBlock(key, seed, _prng_aes_output, false);\n _prng_aes_buffer.putInt32(_prng_aes_output[0]);\n _prng_aes_buffer.putInt32(_prng_aes_output[1]);\n _prng_aes_buffer.putInt32(_prng_aes_output[2]);\n _prng_aes_buffer.putInt32(_prng_aes_output[3]);\n return _prng_aes_buffer.getBytes();\n};\nprng_aes.increment = function(seed) {\n // FIXME: do we care about carry or signed issues?\n ++seed[3];\n return seed;\n};\nprng_aes.md = forge.md.sha256;\n\n/**\n * Creates a new PRNG.\n */\nfunction spawnPrng() {\n var ctx = forge.prng.create(prng_aes);\n\n /**\n * Gets random bytes. If a native secure crypto API is unavailable, this\n * method tries to make the bytes more unpredictable by drawing from data that\n * can be collected from the user of the browser, eg: mouse movement.\n *\n * If a callback is given, this method will be called asynchronously.\n *\n * @param count the number of random bytes to get.\n * @param [callback(err, bytes)] called once the operation completes.\n *\n * @return the random bytes in a string.\n */\n ctx.getBytes = function(count, callback) {\n return ctx.generate(count, callback);\n };\n\n /**\n * Gets random bytes asynchronously. If a native secure crypto API is\n * unavailable, this method tries to make the bytes more unpredictable by\n * drawing from data that can be collected from the user of the browser,\n * eg: mouse movement.\n *\n * @param count the number of random bytes to get.\n *\n * @return the random bytes in a string.\n */\n ctx.getBytesSync = function(count) {\n return ctx.generate(count);\n };\n\n return ctx;\n}\n\n// create default prng context\nvar _ctx = spawnPrng();\n\n// add other sources of entropy only if window.crypto.getRandomValues is not\n// available -- otherwise this source will be automatically used by the prng\nvar getRandomValues = null;\nvar globalScope = forge.util.globalScope;\nvar _crypto = globalScope.crypto || globalScope.msCrypto;\nif(_crypto && _crypto.getRandomValues) {\n getRandomValues = function(arr) {\n return _crypto.getRandomValues(arr);\n };\n}\n\nif(forge.options.usePureJavaScript ||\n (!forge.util.isNodejs && !getRandomValues)) {\n // if this is a web worker, do not use weak entropy, instead register to\n // receive strong entropy asynchronously from the main thread\n if(typeof window === 'undefined' || window.document === undefined) {\n // FIXME:\n }\n\n // get load time entropy\n _ctx.collectInt(+new Date(), 32);\n\n // add some entropy from navigator object\n if(typeof(navigator) !== 'undefined') {\n var _navBytes = '';\n for(var key in navigator) {\n try {\n if(typeof(navigator[key]) == 'string') {\n _navBytes += navigator[key];\n }\n } catch(e) {\n /* Some navigator keys might not be accessible, e.g. the geolocation\n attribute throws an exception if touched in Mozilla chrome://\n context.\n\n Silently ignore this and just don't use this as a source of\n entropy. */\n }\n }\n _ctx.collect(_navBytes);\n _navBytes = null;\n }\n\n // add mouse and keyboard collectors if jquery is available\n if(jQuery) {\n // set up mouse entropy capture\n jQuery().mousemove(function(e) {\n // add mouse coords\n _ctx.collectInt(e.clientX, 16);\n _ctx.collectInt(e.clientY, 16);\n });\n\n // set up keyboard entropy capture\n jQuery().keypress(function(e) {\n _ctx.collectInt(e.charCode, 8);\n });\n }\n}\n\n/* Random API */\nif(!forge.random) {\n forge.random = _ctx;\n} else {\n // extend forge.random with _ctx\n for(var key in _ctx) {\n forge.random[key] = _ctx[key];\n }\n}\n\n// expose spawn PRNG\nforge.random.createInstance = spawnPrng;\n\nmodule.exports = forge.random;\n\n})(typeof(jQuery) !== 'undefined' ? jQuery : null);\n\n})();\n","/**\n * RC2 implementation.\n *\n * @author Stefan Siegl\n *\n * Copyright (c) 2012 Stefan Siegl \n *\n * Information on the RC2 cipher is available from RFC #2268,\n * http://www.ietf.org/rfc/rfc2268.txt\n */\nvar forge = require('./forge');\nrequire('./util');\n\nvar piTable = [\n 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d,\n 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2,\n 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32,\n 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82,\n 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc,\n 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26,\n 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03,\n 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7,\n 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a,\n 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec,\n 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39,\n 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31,\n 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9,\n 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9,\n 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e,\n 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad\n];\n\nvar s = [1, 2, 3, 5];\n\n/**\n * Rotate a word left by given number of bits.\n *\n * Bits that are shifted out on the left are put back in on the right\n * hand side.\n *\n * @param word The word to shift left.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar rol = function(word, bits) {\n return ((word << bits) & 0xffff) | ((word & 0xffff) >> (16 - bits));\n};\n\n/**\n * Rotate a word right by given number of bits.\n *\n * Bits that are shifted out on the right are put back in on the left\n * hand side.\n *\n * @param word The word to shift right.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar ror = function(word, bits) {\n return ((word & 0xffff) >> bits) | ((word << (16 - bits)) & 0xffff);\n};\n\n/* RC2 API */\nmodule.exports = forge.rc2 = forge.rc2 || {};\n\n/**\n * Perform RC2 key expansion as per RFC #2268, section 2.\n *\n * @param key variable-length user key (between 1 and 128 bytes)\n * @param effKeyBits number of effective key bits (default: 128)\n * @return the expanded RC2 key (ByteBuffer of 128 bytes)\n */\nforge.rc2.expandKey = function(key, effKeyBits) {\n if(typeof key === 'string') {\n key = forge.util.createBuffer(key);\n }\n effKeyBits = effKeyBits || 128;\n\n /* introduce variables that match the names used in RFC #2268 */\n var L = key;\n var T = key.length();\n var T1 = effKeyBits;\n var T8 = Math.ceil(T1 / 8);\n var TM = 0xff >> (T1 & 0x07);\n var i;\n\n for(i = T; i < 128; i++) {\n L.putByte(piTable[(L.at(i - 1) + L.at(i - T)) & 0xff]);\n }\n\n L.setAt(128 - T8, piTable[L.at(128 - T8) & TM]);\n\n for(i = 127 - T8; i >= 0; i--) {\n L.setAt(i, piTable[L.at(i + 1) ^ L.at(i + T8)]);\n }\n\n return L;\n};\n\n/**\n * Creates a RC2 cipher object.\n *\n * @param key the symmetric key to use (as base for key generation).\n * @param bits the number of effective key bits.\n * @param encrypt false for decryption, true for encryption.\n *\n * @return the cipher.\n */\nvar createCipher = function(key, bits, encrypt) {\n var _finish = false, _input = null, _output = null, _iv = null;\n var mixRound, mashRound;\n var i, j, K = [];\n\n /* Expand key and fill into K[] Array */\n key = forge.rc2.expandKey(key, bits);\n for(i = 0; i < 64; i++) {\n K.push(key.getInt16Le());\n }\n\n if(encrypt) {\n /**\n * Perform one mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n R[i] = rol(R[i], s[i]);\n j++;\n }\n };\n\n /**\n * Perform one mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[R[(i + 3) % 4] & 63];\n }\n };\n } else {\n /**\n * Perform one r-mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] = ror(R[i], s[i]);\n R[i] -= K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n j--;\n }\n };\n\n /**\n * Perform one r-mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] -= K[R[(i + 3) % 4] & 63];\n }\n };\n }\n\n /**\n * Run the specified cipher execution plan.\n *\n * This function takes four words from the input buffer, applies the IV on\n * it (if requested) and runs the provided execution plan.\n *\n * The plan must be put together in form of a array of arrays. Where the\n * outer one is simply a list of steps to perform and the inner one needs\n * to have two elements: the first one telling how many rounds to perform,\n * the second one telling what to do (i.e. the function to call).\n *\n * @param {Array} plan The plan to execute.\n */\n var runPlan = function(plan) {\n var R = [];\n\n /* Get data from input buffer and fill the four words into R */\n for(i = 0; i < 4; i++) {\n var val = _input.getInt16Le();\n\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting, apply the IV first. */\n val ^= _iv.getInt16Le();\n } else {\n /* We're decryption, keep cipher text for next block. */\n _iv.putInt16Le(val);\n }\n }\n\n R.push(val & 0xffff);\n }\n\n /* Reset global \"j\" variable as per spec. */\n j = encrypt ? 0 : 63;\n\n /* Run execution plan. */\n for(var ptr = 0; ptr < plan.length; ptr++) {\n for(var ctr = 0; ctr < plan[ptr][0]; ctr++) {\n plan[ptr][1](R);\n }\n }\n\n /* Write back result to output buffer. */\n for(i = 0; i < 4; i++) {\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting in CBC-mode, feed back encrypted bytes into\n IV buffer to carry it forward to next block. */\n _iv.putInt16Le(R[i]);\n } else {\n R[i] ^= _iv.getInt16Le();\n }\n }\n\n _output.putInt16Le(R[i]);\n }\n };\n\n /* Create cipher object */\n var cipher = null;\n cipher = {\n /**\n * Starts or restarts the encryption or decryption process, whichever\n * was previously configured.\n *\n * To use the cipher in CBC mode, iv may be given either as a string\n * of bytes, or as a byte buffer. For ECB mode, give null as iv.\n *\n * @param iv the initialization vector to use, null for ECB mode.\n * @param output the output the buffer to write to, null to create one.\n */\n start: function(iv, output) {\n if(iv) {\n /* CBC mode */\n if(typeof iv === 'string') {\n iv = forge.util.createBuffer(iv);\n }\n }\n\n _finish = false;\n _input = forge.util.createBuffer();\n _output = output || new forge.util.createBuffer();\n _iv = iv;\n\n cipher.output = _output;\n },\n\n /**\n * Updates the next block.\n *\n * @param input the buffer to read from.\n */\n update: function(input) {\n if(!_finish) {\n // not finishing, so fill the input buffer with more input\n _input.putBuffer(input);\n }\n\n while(_input.length() >= 8) {\n runPlan([\n [ 5, mixRound ],\n [ 1, mashRound ],\n [ 6, mixRound ],\n [ 1, mashRound ],\n [ 5, mixRound ]\n ]);\n }\n },\n\n /**\n * Finishes encrypting or decrypting.\n *\n * @param pad a padding function to use, null for PKCS#7 padding,\n * signature(blockSize, buffer, decrypt).\n *\n * @return true if successful, false on error.\n */\n finish: function(pad) {\n var rval = true;\n\n if(encrypt) {\n if(pad) {\n rval = pad(8, _input, !encrypt);\n } else {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (_input.length() === 8) ? 8 : (8 - _input.length());\n _input.fillWithByte(padding, padding);\n }\n }\n\n if(rval) {\n // do final update\n _finish = true;\n cipher.update();\n }\n\n if(!encrypt) {\n // check for error: input data not a multiple of block size\n rval = (_input.length() === 0);\n if(rval) {\n if(pad) {\n rval = pad(8, _output, !encrypt);\n } else {\n // ensure padding byte count is valid\n var len = _output.length();\n var count = _output.at(len - 1);\n\n if(count > len) {\n rval = false;\n } else {\n // trim off padding bytes\n _output.truncate(count);\n }\n }\n }\n }\n\n return rval;\n }\n };\n\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startEncrypting = function(key, iv, output) {\n var cipher = forge.rc2.createEncryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start encrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createEncryptionCipher = function(key, bits) {\n return createCipher(key, bits, true);\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startDecrypting = function(key, iv, output) {\n var cipher = forge.rc2.createDecryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start decrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createDecryptionCipher = function(key, bits) {\n return createCipher(key, bits, false);\n};\n","/**\n * Javascript implementation of basic RSA algorithms.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n *\n * The only algorithm currently supported for PKI is RSA.\n *\n * An RSA key is often stored in ASN.1 DER format. The SubjectPublicKeyInfo\n * ASN.1 structure is composed of an algorithm of type AlgorithmIdentifier\n * and a subjectPublicKey of type bit string.\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of RSA, there aren't any.\n *\n * SubjectPublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * subjectPublicKey BIT STRING\n * }\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * For an RSA public key, the subjectPublicKey is:\n *\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n *\n * PrivateKeyInfo ::= SEQUENCE {\n * version Version,\n * privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,\n * privateKey PrivateKey,\n * attributes [0] IMPLICIT Attributes OPTIONAL\n * }\n *\n * Version ::= INTEGER\n * PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier\n * PrivateKey ::= OCTET STRING\n * Attributes ::= SET OF Attribute\n *\n * An RSA private key as the following structure:\n *\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponent INTEGER, -- d\n * prime1 INTEGER, -- p\n * prime2 INTEGER, -- q\n * exponent1 INTEGER, -- d mod (p-1)\n * exponent2 INTEGER, -- d mod (q-1)\n * coefficient INTEGER -- (inverse of q) mod p\n * }\n *\n * Version ::= INTEGER\n *\n * The OID for the RSA key algorithm is: 1.2.840.113549.1.1.1\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./jsbn');\nrequire('./oids');\nrequire('./pkcs1');\nrequire('./prime');\nrequire('./random');\nrequire('./util');\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\nvar _crypto = forge.util.isNodejs ? require('crypto') : null;\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for util API\nvar util = forge.util;\n\n/*\n * RSA encryption and decryption, see RFC 2313.\n */\nforge.pki = forge.pki || {};\nmodule.exports = forge.pki.rsa = forge.rsa = forge.rsa || {};\nvar pki = forge.pki;\n\n// for finding primes, which are 30k+i for i = 1, 7, 11, 13, 17, 19, 23, 29\nvar GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2];\n\n// validator for a PrivateKeyInfo structure\nvar privateKeyValidator = {\n // PrivateKeyInfo\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'PrivateKeyInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // privateKeyAlgorithm\n name: 'PrivateKeyInfo.privateKeyAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'privateKeyOid'\n }]\n }, {\n // PrivateKey\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'privateKey'\n }]\n};\n\n// validator for an RSA private key\nvar rsaPrivateKeyValidator = {\n // RSAPrivateKey\n name: 'RSAPrivateKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'RSAPrivateKey.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // modulus (n)\n name: 'RSAPrivateKey.modulus',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyModulus'\n }, {\n // publicExponent (e)\n name: 'RSAPrivateKey.publicExponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPublicExponent'\n }, {\n // privateExponent (d)\n name: 'RSAPrivateKey.privateExponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrivateExponent'\n }, {\n // prime1 (p)\n name: 'RSAPrivateKey.prime1',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrime1'\n }, {\n // prime2 (q)\n name: 'RSAPrivateKey.prime2',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrime2'\n }, {\n // exponent1 (d mod (p-1))\n name: 'RSAPrivateKey.exponent1',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyExponent1'\n }, {\n // exponent2 (d mod (q-1))\n name: 'RSAPrivateKey.exponent2',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyExponent2'\n }, {\n // coefficient ((inverse of q) mod p)\n name: 'RSAPrivateKey.coefficient',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyCoefficient'\n }]\n};\n\n// validator for an RSA public key\nvar rsaPublicKeyValidator = {\n // RSAPublicKey\n name: 'RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // modulus (n)\n name: 'RSAPublicKey.modulus',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'publicKeyModulus'\n }, {\n // publicExponent (e)\n name: 'RSAPublicKey.exponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'publicKeyExponent'\n }]\n};\n\n// validator for an SubjectPublicKeyInfo structure\n// Note: Currently only works with an RSA public key\nvar publicKeyValidator = forge.pki.rsa.publicKeyValidator = {\n name: 'SubjectPublicKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'subjectPublicKeyInfo',\n value: [{\n name: 'SubjectPublicKeyInfo.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'publicKeyOid'\n }]\n }, {\n // subjectPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n value: [{\n // RSAPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'rsaPublicKey'\n }]\n }]\n};\n\n// validator for a DigestInfo structure\nvar digestInfoValidator = {\n name: 'DigestInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'DigestInfo.DigestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'DigestInfo.DigestAlgorithm.algorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'algorithmIdentifier'\n }, {\n // NULL paramters\n name: 'DigestInfo.DigestAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.NULL,\n // captured only to check existence for md2 and md5\n capture: 'parameters',\n optional: true,\n constructed: false\n }]\n }, {\n // digest\n name: 'DigestInfo.digest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'digest'\n }]\n};\n\n/**\n * Wrap digest in DigestInfo object.\n *\n * This function implements EMSA-PKCS1-v1_5-ENCODE as per RFC 3447.\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n *\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n * Digest ::= OCTET STRING\n *\n * @param md the message digest object with the hash to sign.\n *\n * @return the encoded message (ready for RSA encrytion)\n */\nvar emsaPkcs1v15encode = function(md) {\n // get the oid for the algorithm\n var oid;\n if(md.algorithm in pki.oids) {\n oid = pki.oids[md.algorithm];\n } else {\n var error = new Error('Unknown message digest algorithm.');\n error.algorithm = md.algorithm;\n throw error;\n }\n var oidBytes = asn1.oidToDer(oid).getBytes();\n\n // create the digest info\n var digestInfo = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var digestAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n digestAlgorithm.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false, oidBytes));\n digestAlgorithm.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.NULL, false, ''));\n var digest = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING,\n false, md.digest().getBytes());\n digestInfo.value.push(digestAlgorithm);\n digestInfo.value.push(digest);\n\n // encode digest info\n return asn1.toDer(digestInfo).getBytes();\n};\n\n/**\n * Performs x^c mod n (RSA encryption or decryption operation).\n *\n * @param x the number to raise and mod.\n * @param key the key to use.\n * @param pub true if the key is public, false if private.\n *\n * @return the result of x^c mod n.\n */\nvar _modPow = function(x, key, pub) {\n if(pub) {\n return x.modPow(key.e, key.n);\n }\n\n if(!key.p || !key.q) {\n // allow calculation without CRT params (slow)\n return x.modPow(key.d, key.n);\n }\n\n // pre-compute dP, dQ, and qInv if necessary\n if(!key.dP) {\n key.dP = key.d.mod(key.p.subtract(BigInteger.ONE));\n }\n if(!key.dQ) {\n key.dQ = key.d.mod(key.q.subtract(BigInteger.ONE));\n }\n if(!key.qInv) {\n key.qInv = key.q.modInverse(key.p);\n }\n\n /* Chinese remainder theorem (CRT) states:\n\n Suppose n1, n2, ..., nk are positive integers which are pairwise\n coprime (n1 and n2 have no common factors other than 1). For any\n integers x1, x2, ..., xk there exists an integer x solving the\n system of simultaneous congruences (where ~= means modularly\n congruent so a ~= b mod n means a mod n = b mod n):\n\n x ~= x1 mod n1\n x ~= x2 mod n2\n ...\n x ~= xk mod nk\n\n This system of congruences has a single simultaneous solution x\n between 0 and n - 1. Furthermore, each xk solution and x itself\n is congruent modulo the product n = n1*n2*...*nk.\n So x1 mod n = x2 mod n = xk mod n = x mod n.\n\n The single simultaneous solution x can be solved with the following\n equation:\n\n x = sum(xi*ri*si) mod n where ri = n/ni and si = ri^-1 mod ni.\n\n Where x is less than n, xi = x mod ni.\n\n For RSA we are only concerned with k = 2. The modulus n = pq, where\n p and q are coprime. The RSA decryption algorithm is:\n\n y = x^d mod n\n\n Given the above:\n\n x1 = x^d mod p\n r1 = n/p = q\n s1 = q^-1 mod p\n x2 = x^d mod q\n r2 = n/q = p\n s2 = p^-1 mod q\n\n So y = (x1r1s1 + x2r2s2) mod n\n = ((x^d mod p)q(q^-1 mod p) + (x^d mod q)p(p^-1 mod q)) mod n\n\n According to Fermat's Little Theorem, if the modulus P is prime,\n for any integer A not evenly divisible by P, A^(P-1) ~= 1 mod P.\n Since A is not divisible by P it follows that if:\n N ~= M mod (P - 1), then A^N mod P = A^M mod P. Therefore:\n\n A^N mod P = A^(M mod (P - 1)) mod P. (The latter takes less effort\n to calculate). In order to calculate x^d mod p more quickly the\n exponent d mod (p - 1) is stored in the RSA private key (the same\n is done for x^d mod q). These values are referred to as dP and dQ\n respectively. Therefore we now have:\n\n y = ((x^dP mod p)q(q^-1 mod p) + (x^dQ mod q)p(p^-1 mod q)) mod n\n\n Since we'll be reducing x^dP by modulo p (same for q) we can also\n reduce x by p (and q respectively) before hand. Therefore, let\n\n xp = ((x mod p)^dP mod p), and\n xq = ((x mod q)^dQ mod q), yielding:\n\n y = (xp*q*(q^-1 mod p) + xq*p*(p^-1 mod q)) mod n\n\n This can be further reduced to a simple algorithm that only\n requires 1 inverse (the q inverse is used) to be used and stored.\n The algorithm is called Garner's algorithm. If qInv is the\n inverse of q, we simply calculate:\n\n y = (qInv*(xp - xq) mod p) * q + xq\n\n However, there are two further complications. First, we need to\n ensure that xp > xq to prevent signed BigIntegers from being used\n so we add p until this is true (since we will be mod'ing with\n p anyway). Then, there is a known timing attack on algorithms\n using the CRT. To mitigate this risk, \"cryptographic blinding\"\n should be used. This requires simply generating a random number r\n between 0 and n-1 and its inverse and multiplying x by r^e before\n calculating y and then multiplying y by r^-1 afterwards. Note that\n r must be coprime with n (gcd(r, n) === 1) in order to have an\n inverse.\n */\n\n // cryptographic blinding\n var r;\n do {\n r = new BigInteger(\n forge.util.bytesToHex(forge.random.getBytes(key.n.bitLength() / 8)),\n 16);\n } while(r.compareTo(key.n) >= 0 || !r.gcd(key.n).equals(BigInteger.ONE));\n x = x.multiply(r.modPow(key.e, key.n)).mod(key.n);\n\n // calculate xp and xq\n var xp = x.mod(key.p).modPow(key.dP, key.p);\n var xq = x.mod(key.q).modPow(key.dQ, key.q);\n\n // xp must be larger than xq to avoid signed bit usage\n while(xp.compareTo(xq) < 0) {\n xp = xp.add(key.p);\n }\n\n // do last step\n var y = xp.subtract(xq)\n .multiply(key.qInv).mod(key.p)\n .multiply(key.q).add(xq);\n\n // remove effect of random for cryptographic blinding\n y = y.multiply(r.modInverse(key.n)).mod(key.n);\n\n return y;\n};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED, use 'sign' on a private key object or\n * 'encrypt' on a public key object instead.\n *\n * Performs RSA encryption.\n *\n * The parameter bt controls whether to put padding bytes before the\n * message passed in. Set bt to either true or false to disable padding\n * completely (in order to handle e.g. EMSA-PSS encoding seperately before),\n * signaling whether the encryption operation is a public key operation\n * (i.e. encrypting data) or not, i.e. private key operation (data signing).\n *\n * For PKCS#1 v1.5 padding pass in the block type to use, i.e. either 0x01\n * (for signing) or 0x02 (for encryption). The key operation mode (private\n * or public) is derived from this flag in that case).\n *\n * @param m the message to encrypt as a byte string.\n * @param key the RSA key to use.\n * @param bt for PKCS#1 v1.5 padding, the block type to use\n * (0x01 for private key, 0x02 for public),\n * to disable padding: true = public key, false = private key.\n *\n * @return the encrypted bytes as a string.\n */\npki.rsa.encrypt = function(m, key, bt) {\n var pub = bt;\n var eb;\n\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n if(bt !== false && bt !== true) {\n // legacy, default to PKCS#1 v1.5 padding\n pub = (bt === 0x02);\n eb = _encodePkcs1_v1_5(m, key, bt);\n } else {\n eb = forge.util.createBuffer();\n eb.putBytes(m);\n }\n\n // load encryption block as big integer 'x'\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var x = new BigInteger(eb.toHex(), 16);\n\n // do RSA encryption\n var y = _modPow(x, key, pub);\n\n // convert y into the encrypted data byte string, if y is shorter in\n // bytes than k, then prepend zero bytes to fill up ed\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var yhex = y.toString(16);\n var ed = forge.util.createBuffer();\n var zeros = k - Math.ceil(yhex.length / 2);\n while(zeros > 0) {\n ed.putByte(0x00);\n --zeros;\n }\n ed.putBytes(forge.util.hexToBytes(yhex));\n return ed.getBytes();\n};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED, use 'decrypt' on a private key object or\n * 'verify' on a public key object instead.\n *\n * Performs RSA decryption.\n *\n * The parameter ml controls whether to apply PKCS#1 v1.5 padding\n * or not. Set ml = false to disable padding removal completely\n * (in order to handle e.g. EMSA-PSS later on) and simply pass back\n * the RSA encryption block.\n *\n * @param ed the encrypted data to decrypt in as a byte string.\n * @param key the RSA key to use.\n * @param pub true for a public key operation, false for private.\n * @param ml the message length, if known, false to disable padding.\n *\n * @return the decrypted message as a byte string.\n */\npki.rsa.decrypt = function(ed, key, pub, ml) {\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n // error if the length of the encrypted data ED is not k\n if(ed.length !== k) {\n var error = new Error('Encrypted message length is invalid.');\n error.length = ed.length;\n error.expected = k;\n throw error;\n }\n\n // convert encrypted data into a big integer\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var y = new BigInteger(forge.util.createBuffer(ed).toHex(), 16);\n\n // y must be less than the modulus or it wasn't the result of\n // a previous mod operation (encryption) using that modulus\n if(y.compareTo(key.n) >= 0) {\n throw new Error('Encrypted message is invalid.');\n }\n\n // do RSA decryption\n var x = _modPow(y, key, pub);\n\n // create the encryption block, if x is shorter in bytes than k, then\n // prepend zero bytes to fill up eb\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var xhex = x.toString(16);\n var eb = forge.util.createBuffer();\n var zeros = k - Math.ceil(xhex.length / 2);\n while(zeros > 0) {\n eb.putByte(0x00);\n --zeros;\n }\n eb.putBytes(forge.util.hexToBytes(xhex));\n\n if(ml !== false) {\n // legacy, default to PKCS#1 v1.5 padding\n return _decodePkcs1_v1_5(eb.getBytes(), key, pub);\n }\n\n // return message\n return eb.getBytes();\n};\n\n/**\n * Creates an RSA key-pair generation state object. It is used to allow\n * key-generation to be performed in steps. It also allows for a UI to\n * display progress updates.\n *\n * @param bits the size for the private key in bits, defaults to 2048.\n * @param e the public exponent to use, defaults to 65537 (0x10001).\n * @param [options] the options to use.\n * prng a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n * algorithm the algorithm to use (default: 'PRIMEINC').\n *\n * @return the state object to use to generate the key-pair.\n */\npki.rsa.createKeyPairGenerationState = function(bits, e, options) {\n // TODO: migrate step-based prime generation code to forge.prime\n\n // set default bits\n if(typeof(bits) === 'string') {\n bits = parseInt(bits, 10);\n }\n bits = bits || 2048;\n\n // create prng with api that matches BigInteger secure random\n options = options || {};\n var prng = options.prng || forge.random;\n var rng = {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n var b = prng.getBytesSync(x.length);\n for(var i = 0; i < x.length; ++i) {\n x[i] = b.charCodeAt(i);\n }\n }\n };\n\n var algorithm = options.algorithm || 'PRIMEINC';\n\n // create PRIMEINC algorithm state\n var rval;\n if(algorithm === 'PRIMEINC') {\n rval = {\n algorithm: algorithm,\n state: 0,\n bits: bits,\n rng: rng,\n eInt: e || 65537,\n e: new BigInteger(null),\n p: null,\n q: null,\n qBits: bits >> 1,\n pBits: bits - (bits >> 1),\n pqState: 0,\n num: null,\n keys: null\n };\n rval.e.fromInt(rval.eInt);\n } else {\n throw new Error('Invalid key generation algorithm: ' + algorithm);\n }\n\n return rval;\n};\n\n/**\n * Attempts to runs the key-generation algorithm for at most n seconds\n * (approximately) using the given state. When key-generation has completed,\n * the keys will be stored in state.keys.\n *\n * To use this function to update a UI while generating a key or to prevent\n * causing browser lockups/warnings, set \"n\" to a value other than 0. A\n * simple pattern for generating a key and showing a progress indicator is:\n *\n * var state = pki.rsa.createKeyPairGenerationState(2048);\n * var step = function() {\n * // step key-generation, run algorithm for 100 ms, repeat\n * if(!forge.pki.rsa.stepKeyPairGenerationState(state, 100)) {\n * setTimeout(step, 1);\n * } else {\n * // key-generation complete\n * // TODO: turn off progress indicator here\n * // TODO: use the generated key-pair in \"state.keys\"\n * }\n * };\n * // TODO: turn on progress indicator here\n * setTimeout(step, 0);\n *\n * @param state the state to use.\n * @param n the maximum number of milliseconds to run the algorithm for, 0\n * to run the algorithm to completion.\n *\n * @return true if the key-generation completed, false if not.\n */\npki.rsa.stepKeyPairGenerationState = function(state, n) {\n // set default algorithm if not set\n if(!('algorithm' in state)) {\n state.algorithm = 'PRIMEINC';\n }\n\n // TODO: migrate step-based prime generation code to forge.prime\n // TODO: abstract as PRIMEINC algorithm\n\n // do key generation (based on Tom Wu's rsa.js, see jsbn.js license)\n // with some minor optimizations and designed to run in steps\n\n // local state vars\n var THIRTY = new BigInteger(null);\n THIRTY.fromInt(30);\n var deltaIdx = 0;\n var op_or = function(x, y) {return x | y;};\n\n // keep stepping until time limit is reached or done\n var t1 = +new Date();\n var t2;\n var total = 0;\n while(state.keys === null && (n <= 0 || total < n)) {\n // generate p or q\n if(state.state === 0) {\n /* Note: All primes are of the form:\n\n 30k+i, for i < 30 and gcd(30, i)=1, where there are 8 values for i\n\n When we generate a random number, we always align it at 30k + 1. Each\n time the number is determined not to be prime we add to get to the\n next 'i', eg: if the number was at 30k + 1 we add 6. */\n var bits = (state.p === null) ? state.pBits : state.qBits;\n var bits1 = bits - 1;\n\n // get a random number\n if(state.pqState === 0) {\n state.num = new BigInteger(bits, state.rng);\n // force MSB set\n if(!state.num.testBit(bits1)) {\n state.num.bitwiseTo(\n BigInteger.ONE.shiftLeft(bits1), op_or, state.num);\n }\n // align number on 30k+1 boundary\n state.num.dAddOffset(31 - state.num.mod(THIRTY).byteValue(), 0);\n deltaIdx = 0;\n\n ++state.pqState;\n } else if(state.pqState === 1) {\n // try to make the number a prime\n if(state.num.bitLength() > bits) {\n // overflow, try again\n state.pqState = 0;\n // do primality test\n } else if(state.num.isProbablePrime(\n _getMillerRabinTests(state.num.bitLength()))) {\n ++state.pqState;\n } else {\n // get next potential prime\n state.num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0);\n }\n } else if(state.pqState === 2) {\n // ensure number is coprime with e\n state.pqState =\n (state.num.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) === 0) ? 3 : 0;\n } else if(state.pqState === 3) {\n // store p or q\n state.pqState = 0;\n if(state.p === null) {\n state.p = state.num;\n } else {\n state.q = state.num;\n }\n\n // advance state if both p and q are ready\n if(state.p !== null && state.q !== null) {\n ++state.state;\n }\n state.num = null;\n }\n } else if(state.state === 1) {\n // ensure p is larger than q (swap them if not)\n if(state.p.compareTo(state.q) < 0) {\n state.num = state.p;\n state.p = state.q;\n state.q = state.num;\n }\n ++state.state;\n } else if(state.state === 2) {\n // compute phi: (p - 1)(q - 1) (Euler's totient function)\n state.p1 = state.p.subtract(BigInteger.ONE);\n state.q1 = state.q.subtract(BigInteger.ONE);\n state.phi = state.p1.multiply(state.q1);\n ++state.state;\n } else if(state.state === 3) {\n // ensure e and phi are coprime\n if(state.phi.gcd(state.e).compareTo(BigInteger.ONE) === 0) {\n // phi and e are coprime, advance\n ++state.state;\n } else {\n // phi and e aren't coprime, so generate a new p and q\n state.p = null;\n state.q = null;\n state.state = 0;\n }\n } else if(state.state === 4) {\n // create n, ensure n is has the right number of bits\n state.n = state.p.multiply(state.q);\n\n // ensure n is right number of bits\n if(state.n.bitLength() === state.bits) {\n // success, advance\n ++state.state;\n } else {\n // failed, get new q\n state.q = null;\n state.state = 0;\n }\n } else if(state.state === 5) {\n // set keys\n var d = state.e.modInverse(state.phi);\n state.keys = {\n privateKey: pki.rsa.setPrivateKey(\n state.n, state.e, d, state.p, state.q,\n d.mod(state.p1), d.mod(state.q1),\n state.q.modInverse(state.p)),\n publicKey: pki.rsa.setPublicKey(state.n, state.e)\n };\n }\n\n // update timing\n t2 = +new Date();\n total += t2 - t1;\n t1 = t2;\n }\n\n return state.keys !== null;\n};\n\n/**\n * Generates an RSA public-private key pair in a single call.\n *\n * To generate a key-pair in steps (to allow for progress updates and to\n * prevent blocking or warnings in slow browsers) then use the key-pair\n * generation state functions.\n *\n * To generate a key-pair asynchronously (either through web-workers, if\n * available, or by breaking up the work on the main thread), pass a\n * callback function.\n *\n * @param [bits] the size for the private key in bits, defaults to 2048.\n * @param [e] the public exponent to use, defaults to 65537.\n * @param [options] options for key-pair generation, if given then 'bits'\n * and 'e' must *not* be given:\n * bits the size for the private key in bits, (default: 2048).\n * e the public exponent to use, (default: 65537 (0x10001)).\n * workerScript the worker script URL.\n * workers the number of web workers (if supported) to use,\n * (default: 2).\n * workLoad the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * prng a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\". Disables use of native APIs.\n * algorithm the algorithm to use (default: 'PRIMEINC').\n * @param [callback(err, keypair)] called once the operation completes.\n *\n * @return an object with privateKey and publicKey properties.\n */\npki.rsa.generateKeyPair = function(bits, e, options, callback) {\n // (bits), (options), (callback)\n if(arguments.length === 1) {\n if(typeof bits === 'object') {\n options = bits;\n bits = undefined;\n } else if(typeof bits === 'function') {\n callback = bits;\n bits = undefined;\n }\n } else if(arguments.length === 2) {\n // (bits, e), (bits, options), (bits, callback), (options, callback)\n if(typeof bits === 'number') {\n if(typeof e === 'function') {\n callback = e;\n e = undefined;\n } else if(typeof e !== 'number') {\n options = e;\n e = undefined;\n }\n } else {\n options = bits;\n callback = e;\n bits = undefined;\n e = undefined;\n }\n } else if(arguments.length === 3) {\n // (bits, e, options), (bits, e, callback), (bits, options, callback)\n if(typeof e === 'number') {\n if(typeof options === 'function') {\n callback = options;\n options = undefined;\n }\n } else {\n callback = options;\n options = e;\n e = undefined;\n }\n }\n options = options || {};\n if(bits === undefined) {\n bits = options.bits || 2048;\n }\n if(e === undefined) {\n e = options.e || 0x10001;\n }\n\n // use native code if permitted, available, and parameters are acceptable\n if(!forge.options.usePureJavaScript && !options.prng &&\n bits >= 256 && bits <= 16384 && (e === 0x10001 || e === 3)) {\n if(callback) {\n // try native async\n if(_detectNodeCrypto('generateKeyPair')) {\n return _crypto.generateKeyPair('rsa', {\n modulusLength: bits,\n publicExponent: e,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n }, function(err, pub, priv) {\n if(err) {\n return callback(err);\n }\n callback(null, {\n privateKey: pki.privateKeyFromPem(priv),\n publicKey: pki.publicKeyFromPem(pub)\n });\n });\n }\n if(_detectSubtleCrypto('generateKey') &&\n _detectSubtleCrypto('exportKey')) {\n // use standard native generateKey\n return util.globalScope.crypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: bits,\n publicExponent: _intToUint8Array(e),\n hash: {name: 'SHA-256'}\n }, true /* key can be exported*/, ['sign', 'verify'])\n .then(function(pair) {\n return util.globalScope.crypto.subtle.exportKey(\n 'pkcs8', pair.privateKey);\n // avoiding catch(function(err) {...}) to support IE <= 8\n }).then(undefined, function(err) {\n callback(err);\n }).then(function(pkcs8) {\n if(pkcs8) {\n var privateKey = pki.privateKeyFromAsn1(\n asn1.fromDer(forge.util.createBuffer(pkcs8)));\n callback(null, {\n privateKey: privateKey,\n publicKey: pki.setRsaPublicKey(privateKey.n, privateKey.e)\n });\n }\n });\n }\n if(_detectSubtleMsCrypto('generateKey') &&\n _detectSubtleMsCrypto('exportKey')) {\n var genOp = util.globalScope.msCrypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: bits,\n publicExponent: _intToUint8Array(e),\n hash: {name: 'SHA-256'}\n }, true /* key can be exported*/, ['sign', 'verify']);\n genOp.oncomplete = function(e) {\n var pair = e.target.result;\n var exportOp = util.globalScope.msCrypto.subtle.exportKey(\n 'pkcs8', pair.privateKey);\n exportOp.oncomplete = function(e) {\n var pkcs8 = e.target.result;\n var privateKey = pki.privateKeyFromAsn1(\n asn1.fromDer(forge.util.createBuffer(pkcs8)));\n callback(null, {\n privateKey: privateKey,\n publicKey: pki.setRsaPublicKey(privateKey.n, privateKey.e)\n });\n };\n exportOp.onerror = function(err) {\n callback(err);\n };\n };\n genOp.onerror = function(err) {\n callback(err);\n };\n return;\n }\n } else {\n // try native sync\n if(_detectNodeCrypto('generateKeyPairSync')) {\n var keypair = _crypto.generateKeyPairSync('rsa', {\n modulusLength: bits,\n publicExponent: e,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n });\n return {\n privateKey: pki.privateKeyFromPem(keypair.privateKey),\n publicKey: pki.publicKeyFromPem(keypair.publicKey)\n };\n }\n }\n }\n\n // use JavaScript implementation\n var state = pki.rsa.createKeyPairGenerationState(bits, e, options);\n if(!callback) {\n pki.rsa.stepKeyPairGenerationState(state, 0);\n return state.keys;\n }\n _generateKeyPair(state, options, callback);\n};\n\n/**\n * Sets an RSA public key from BigIntegers modulus and exponent.\n *\n * @param n the modulus.\n * @param e the exponent.\n *\n * @return the public key.\n */\npki.setRsaPublicKey = pki.rsa.setPublicKey = function(n, e) {\n var key = {\n n: n,\n e: e\n };\n\n /**\n * Encrypts the given data with this public key. Newer applications\n * should use the 'RSA-OAEP' decryption scheme, 'RSAES-PKCS1-V1_5' is for\n * legacy applications.\n *\n * @param data the byte string to encrypt.\n * @param scheme the encryption scheme to use:\n * 'RSAES-PKCS1-V1_5' (default),\n * 'RSA-OAEP',\n * 'RAW', 'NONE', or null to perform raw RSA encryption,\n * an object with an 'encode' property set to a function\n * with the signature 'function(data, key)' that returns\n * a binary-encoded string representing the encoded data.\n * @param schemeOptions any scheme-specific options.\n *\n * @return the encrypted byte string.\n */\n key.encrypt = function(data, scheme, schemeOptions) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSAES-PKCS1-V1_5';\n }\n\n if(scheme === 'RSAES-PKCS1-V1_5') {\n scheme = {\n encode: function(m, key, pub) {\n return _encodePkcs1_v1_5(m, key, 0x02).getBytes();\n }\n };\n } else if(scheme === 'RSA-OAEP' || scheme === 'RSAES-OAEP') {\n scheme = {\n encode: function(m, key) {\n return forge.pkcs1.encode_rsa_oaep(key, m, schemeOptions);\n }\n };\n } else if(['RAW', 'NONE', 'NULL', null].indexOf(scheme) !== -1) {\n scheme = {encode: function(e) {return e;}};\n } else if(typeof scheme === 'string') {\n throw new Error('Unsupported encryption scheme: \"' + scheme + '\".');\n }\n\n // do scheme-based encoding then rsa encryption\n var e = scheme.encode(data, key, true);\n return pki.rsa.encrypt(e, key, true);\n };\n\n /**\n * Verifies the given signature against the given digest.\n *\n * PKCS#1 supports multiple (currently two) signature schemes:\n * RSASSA-PKCS1-V1_5 and RSASSA-PSS.\n *\n * By default this implementation uses the \"old scheme\", i.e.\n * RSASSA-PKCS1-V1_5, in which case once RSA-decrypted, the\n * signature is an OCTET STRING that holds a DigestInfo.\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n * Digest ::= OCTET STRING\n *\n * To perform PSS signature verification, provide an instance\n * of Forge PSS object as the scheme parameter.\n *\n * @param digest the message digest hash to compare against the signature,\n * as a binary-encoded string.\n * @param signature the signature to verify, as a binary-encoded string.\n * @param scheme signature verification scheme to use:\n * 'RSASSA-PKCS1-V1_5' or undefined for RSASSA PKCS#1 v1.5,\n * a Forge PSS object for RSASSA-PSS,\n * 'NONE' or null for none, DigestInfo will not be expected, but\n * PKCS#1 v1.5 padding will still be used.\n * @param options optional verify options\n * _parseAllDigestBytes testing flag to control parsing of all\n * digest bytes. Unsupported and not for general usage.\n * (default: true)\n *\n * @return true if the signature was verified, false if not.\n */\n key.verify = function(digest, signature, scheme, options) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSASSA-PKCS1-V1_5';\n }\n if(options === undefined) {\n options = {\n _parseAllDigestBytes: true\n };\n }\n if(!('_parseAllDigestBytes' in options)) {\n options._parseAllDigestBytes = true;\n }\n\n if(scheme === 'RSASSA-PKCS1-V1_5') {\n scheme = {\n verify: function(digest, d) {\n // remove padding\n d = _decodePkcs1_v1_5(d, key, true);\n // d is ASN.1 BER-encoded DigestInfo\n var obj = asn1.fromDer(d, {\n parseAllBytes: options._parseAllDigestBytes\n });\n\n // validate DigestInfo\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, digestInfoValidator, capture, errors)) {\n var error = new Error(\n 'ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 ' +\n 'DigestInfo value.');\n error.errors = errors;\n throw error;\n }\n // check hash algorithm identifier\n // see PKCS1-v1-5DigestAlgorithms in RFC 8017\n // FIXME: add support to vaidator for strict value choices\n var oid = asn1.derToOid(capture.algorithmIdentifier);\n if(!(oid === forge.oids.md2 ||\n oid === forge.oids.md5 ||\n oid === forge.oids.sha1 ||\n oid === forge.oids.sha224 ||\n oid === forge.oids.sha256 ||\n oid === forge.oids.sha384 ||\n oid === forge.oids.sha512 ||\n oid === forge.oids['sha512-224'] ||\n oid === forge.oids['sha512-256'])) {\n var error = new Error(\n 'Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.');\n error.oid = oid;\n throw error;\n }\n\n // special check for md2 and md5 that NULL parameters exist\n if(oid === forge.oids.md2 || oid === forge.oids.md5) {\n if(!('parameters' in capture)) {\n throw new Error(\n 'ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 ' +\n 'DigestInfo value. ' +\n 'Missing algorithm identifer NULL parameters.');\n }\n }\n\n // compare the given digest to the decrypted one\n return digest === capture.digest;\n }\n };\n } else if(scheme === 'NONE' || scheme === 'NULL' || scheme === null) {\n scheme = {\n verify: function(digest, d) {\n // remove padding\n d = _decodePkcs1_v1_5(d, key, true);\n return digest === d;\n }\n };\n }\n\n // do rsa decryption w/o any decoding, then verify -- which does decoding\n var d = pki.rsa.decrypt(signature, key, true, false);\n return scheme.verify(digest, d, key.n.bitLength());\n };\n\n return key;\n};\n\n/**\n * Sets an RSA private key from BigIntegers modulus, exponent, primes,\n * prime exponents, and modular multiplicative inverse.\n *\n * @param n the modulus.\n * @param e the public exponent.\n * @param d the private exponent ((inverse of e) mod n).\n * @param p the first prime.\n * @param q the second prime.\n * @param dP exponent1 (d mod (p-1)).\n * @param dQ exponent2 (d mod (q-1)).\n * @param qInv ((inverse of q) mod p)\n *\n * @return the private key.\n */\npki.setRsaPrivateKey = pki.rsa.setPrivateKey = function(\n n, e, d, p, q, dP, dQ, qInv) {\n var key = {\n n: n,\n e: e,\n d: d,\n p: p,\n q: q,\n dP: dP,\n dQ: dQ,\n qInv: qInv\n };\n\n /**\n * Decrypts the given data with this private key. The decryption scheme\n * must match the one used to encrypt the data.\n *\n * @param data the byte string to decrypt.\n * @param scheme the decryption scheme to use:\n * 'RSAES-PKCS1-V1_5' (default),\n * 'RSA-OAEP',\n * 'RAW', 'NONE', or null to perform raw RSA decryption.\n * @param schemeOptions any scheme-specific options.\n *\n * @return the decrypted byte string.\n */\n key.decrypt = function(data, scheme, schemeOptions) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSAES-PKCS1-V1_5';\n }\n\n // do rsa decryption w/o any decoding\n var d = pki.rsa.decrypt(data, key, false, false);\n\n if(scheme === 'RSAES-PKCS1-V1_5') {\n scheme = {decode: _decodePkcs1_v1_5};\n } else if(scheme === 'RSA-OAEP' || scheme === 'RSAES-OAEP') {\n scheme = {\n decode: function(d, key) {\n return forge.pkcs1.decode_rsa_oaep(key, d, schemeOptions);\n }\n };\n } else if(['RAW', 'NONE', 'NULL', null].indexOf(scheme) !== -1) {\n scheme = {decode: function(d) {return d;}};\n } else {\n throw new Error('Unsupported encryption scheme: \"' + scheme + '\".');\n }\n\n // decode according to scheme\n return scheme.decode(d, key, false);\n };\n\n /**\n * Signs the given digest, producing a signature.\n *\n * PKCS#1 supports multiple (currently two) signature schemes:\n * RSASSA-PKCS1-V1_5 and RSASSA-PSS.\n *\n * By default this implementation uses the \"old scheme\", i.e.\n * RSASSA-PKCS1-V1_5. In order to generate a PSS signature, provide\n * an instance of Forge PSS object as the scheme parameter.\n *\n * @param md the message digest object with the hash to sign.\n * @param scheme the signature scheme to use:\n * 'RSASSA-PKCS1-V1_5' or undefined for RSASSA PKCS#1 v1.5,\n * a Forge PSS object for RSASSA-PSS,\n * 'NONE' or null for none, DigestInfo will not be used but\n * PKCS#1 v1.5 padding will still be used.\n *\n * @return the signature as a byte string.\n */\n key.sign = function(md, scheme) {\n /* Note: The internal implementation of RSA operations is being\n transitioned away from a PKCS#1 v1.5 hard-coded scheme. Some legacy\n code like the use of an encoding block identifier 'bt' will eventually\n be removed. */\n\n // private key operation\n var bt = false;\n\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n }\n\n if(scheme === undefined || scheme === 'RSASSA-PKCS1-V1_5') {\n scheme = {encode: emsaPkcs1v15encode};\n bt = 0x01;\n } else if(scheme === 'NONE' || scheme === 'NULL' || scheme === null) {\n scheme = {encode: function() {return md;}};\n bt = 0x01;\n }\n\n // encode and then encrypt\n var d = scheme.encode(md, key.n.bitLength());\n return pki.rsa.encrypt(d, key, bt);\n };\n\n return key;\n};\n\n/**\n * Wraps an RSAPrivateKey ASN.1 object in an ASN.1 PrivateKeyInfo object.\n *\n * @param rsaKey the ASN.1 RSAPrivateKey.\n *\n * @return the ASN.1 PrivateKeyInfo.\n */\npki.wrapRsaPrivateKey = function(rsaKey) {\n // PrivateKeyInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (0)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(0).getBytes()),\n // privateKeyAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.rsaEncryption).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // PrivateKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(rsaKey).getBytes())\n ]);\n};\n\n/**\n * Converts a private key from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a PrivateKeyInfo containing an\n * RSAPrivateKey or an RSAPrivateKey.\n *\n * @return the private key.\n */\npki.privateKeyFromAsn1 = function(obj) {\n // get PrivateKeyInfo\n var capture = {};\n var errors = [];\n if(asn1.validate(obj, privateKeyValidator, capture, errors)) {\n obj = asn1.fromDer(forge.util.createBuffer(capture.privateKey));\n }\n\n // get RSAPrivateKey\n capture = {};\n errors = [];\n if(!asn1.validate(obj, rsaPrivateKeyValidator, capture, errors)) {\n var error = new Error('Cannot read private key. ' +\n 'ASN.1 object does not contain an RSAPrivateKey.');\n error.errors = errors;\n throw error;\n }\n\n // Note: Version is currently ignored.\n // capture.privateKeyVersion\n // FIXME: inefficient, get a BigInteger that uses byte strings\n var n, e, d, p, q, dP, dQ, qInv;\n n = forge.util.createBuffer(capture.privateKeyModulus).toHex();\n e = forge.util.createBuffer(capture.privateKeyPublicExponent).toHex();\n d = forge.util.createBuffer(capture.privateKeyPrivateExponent).toHex();\n p = forge.util.createBuffer(capture.privateKeyPrime1).toHex();\n q = forge.util.createBuffer(capture.privateKeyPrime2).toHex();\n dP = forge.util.createBuffer(capture.privateKeyExponent1).toHex();\n dQ = forge.util.createBuffer(capture.privateKeyExponent2).toHex();\n qInv = forge.util.createBuffer(capture.privateKeyCoefficient).toHex();\n\n // set private key\n return pki.setRsaPrivateKey(\n new BigInteger(n, 16),\n new BigInteger(e, 16),\n new BigInteger(d, 16),\n new BigInteger(p, 16),\n new BigInteger(q, 16),\n new BigInteger(dP, 16),\n new BigInteger(dQ, 16),\n new BigInteger(qInv, 16));\n};\n\n/**\n * Converts a private key to an ASN.1 RSAPrivateKey.\n *\n * @param key the private key.\n *\n * @return the ASN.1 representation of an RSAPrivateKey.\n */\npki.privateKeyToAsn1 = pki.privateKeyToRSAPrivateKey = function(key) {\n // RSAPrivateKey\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (0 = only 2 primes, 1 multiple primes)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(0).getBytes()),\n // modulus (n)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.n)),\n // publicExponent (e)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.e)),\n // privateExponent (d)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.d)),\n // privateKeyPrime1 (p)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.p)),\n // privateKeyPrime2 (q)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.q)),\n // privateKeyExponent1 (dP)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.dP)),\n // privateKeyExponent2 (dQ)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.dQ)),\n // coefficient (qInv)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.qInv))\n ]);\n};\n\n/**\n * Converts a public key from an ASN.1 SubjectPublicKeyInfo or RSAPublicKey.\n *\n * @param obj the asn1 representation of a SubjectPublicKeyInfo or RSAPublicKey.\n *\n * @return the public key.\n */\npki.publicKeyFromAsn1 = function(obj) {\n // get SubjectPublicKeyInfo\n var capture = {};\n var errors = [];\n if(asn1.validate(obj, publicKeyValidator, capture, errors)) {\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n var error = new Error('Cannot read public key. Unknown OID.');\n error.oid = oid;\n throw error;\n }\n obj = capture.rsaPublicKey;\n }\n\n // get RSA params\n errors = [];\n if(!asn1.validate(obj, rsaPublicKeyValidator, capture, errors)) {\n var error = new Error('Cannot read public key. ' +\n 'ASN.1 object does not contain an RSAPublicKey.');\n error.errors = errors;\n throw error;\n }\n\n // FIXME: inefficient, get a BigInteger that uses byte strings\n var n = forge.util.createBuffer(capture.publicKeyModulus).toHex();\n var e = forge.util.createBuffer(capture.publicKeyExponent).toHex();\n\n // set public key\n return pki.setRsaPublicKey(\n new BigInteger(n, 16),\n new BigInteger(e, 16));\n};\n\n/**\n * Converts a public key to an ASN.1 SubjectPublicKeyInfo.\n *\n * @param key the public key.\n *\n * @return the asn1 representation of a SubjectPublicKeyInfo.\n */\npki.publicKeyToAsn1 = pki.publicKeyToSubjectPublicKeyInfo = function(key) {\n // SubjectPublicKeyInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.rsaEncryption).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // subjectPublicKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, [\n pki.publicKeyToRSAPublicKey(key)\n ])\n ]);\n};\n\n/**\n * Converts a public key to an ASN.1 RSAPublicKey.\n *\n * @param key the public key.\n *\n * @return the asn1 representation of a RSAPublicKey.\n */\npki.publicKeyToRSAPublicKey = function(key) {\n // RSAPublicKey\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // modulus (n)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.n)),\n // publicExponent (e)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.e))\n ]);\n};\n\n/**\n * Encodes a message using PKCS#1 v1.5 padding.\n *\n * @param m the message to encode.\n * @param key the RSA key to use.\n * @param bt the block type to use, i.e. either 0x01 (for signing) or 0x02\n * (for encryption).\n *\n * @return the padded byte buffer.\n */\nfunction _encodePkcs1_v1_5(m, key, bt) {\n var eb = forge.util.createBuffer();\n\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n /* use PKCS#1 v1.5 padding */\n if(m.length > (k - 11)) {\n var error = new Error('Message is too long for PKCS#1 v1.5 padding.');\n error.length = m.length;\n error.max = k - 11;\n throw error;\n }\n\n /* A block type BT, a padding string PS, and the data D shall be\n formatted into an octet string EB, the encryption block:\n\n EB = 00 || BT || PS || 00 || D\n\n The block type BT shall be a single octet indicating the structure of\n the encryption block. For this version of the document it shall have\n value 00, 01, or 02. For a private-key operation, the block type\n shall be 00 or 01. For a public-key operation, it shall be 02.\n\n The padding string PS shall consist of k-3-||D|| octets. For block\n type 00, the octets shall have value 00; for block type 01, they\n shall have value FF; and for block type 02, they shall be\n pseudorandomly generated and nonzero. This makes the length of the\n encryption block EB equal to k. */\n\n // build the encryption block\n eb.putByte(0x00);\n eb.putByte(bt);\n\n // create the padding\n var padNum = k - 3 - m.length;\n var padByte;\n // private key op\n if(bt === 0x00 || bt === 0x01) {\n padByte = (bt === 0x00) ? 0x00 : 0xFF;\n for(var i = 0; i < padNum; ++i) {\n eb.putByte(padByte);\n }\n } else {\n // public key op\n // pad with random non-zero values\n while(padNum > 0) {\n var numZeros = 0;\n var padBytes = forge.random.getBytes(padNum);\n for(var i = 0; i < padNum; ++i) {\n padByte = padBytes.charCodeAt(i);\n if(padByte === 0) {\n ++numZeros;\n } else {\n eb.putByte(padByte);\n }\n }\n padNum = numZeros;\n }\n }\n\n // zero followed by message\n eb.putByte(0x00);\n eb.putBytes(m);\n\n return eb;\n}\n\n/**\n * Decodes a message using PKCS#1 v1.5 padding.\n *\n * @param em the message to decode.\n * @param key the RSA key to use.\n * @param pub true if the key is a public key, false if it is private.\n * @param ml the message length, if specified.\n *\n * @return the decoded bytes.\n */\nfunction _decodePkcs1_v1_5(em, key, pub, ml) {\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n /* It is an error if any of the following conditions occurs:\n\n 1. The encryption block EB cannot be parsed unambiguously.\n 2. The padding string PS consists of fewer than eight octets\n or is inconsisent with the block type BT.\n 3. The decryption process is a public-key operation and the block\n type BT is not 00 or 01, or the decryption process is a\n private-key operation and the block type is not 02.\n */\n\n // parse the encryption block\n var eb = forge.util.createBuffer(em);\n var first = eb.getByte();\n var bt = eb.getByte();\n if(first !== 0x00 ||\n (pub && bt !== 0x00 && bt !== 0x01) ||\n (!pub && bt != 0x02) ||\n (pub && bt === 0x00 && typeof(ml) === 'undefined')) {\n throw new Error('Encryption block is invalid.');\n }\n\n var padNum = 0;\n if(bt === 0x00) {\n // check all padding bytes for 0x00\n padNum = k - 3 - ml;\n for(var i = 0; i < padNum; ++i) {\n if(eb.getByte() !== 0x00) {\n throw new Error('Encryption block is invalid.');\n }\n }\n } else if(bt === 0x01) {\n // find the first byte that isn't 0xFF, should be after all padding\n padNum = 0;\n while(eb.length() > 1) {\n if(eb.getByte() !== 0xFF) {\n --eb.read;\n break;\n }\n ++padNum;\n }\n } else if(bt === 0x02) {\n // look for 0x00 byte\n padNum = 0;\n while(eb.length() > 1) {\n if(eb.getByte() === 0x00) {\n --eb.read;\n break;\n }\n ++padNum;\n }\n }\n\n // zero must be 0x00 and padNum must be (k - 3 - message length)\n var zero = eb.getByte();\n if(zero !== 0x00 || padNum !== (k - 3 - eb.length())) {\n throw new Error('Encryption block is invalid.');\n }\n\n return eb.getBytes();\n}\n\n/**\n * Runs the key-generation algorithm asynchronously, either in the background\n * via Web Workers, or using the main thread and setImmediate.\n *\n * @param state the key-pair generation state.\n * @param [options] options for key-pair generation:\n * workerScript the worker script URL.\n * workers the number of web workers (if supported) to use,\n * (default: 2, -1 to use estimated cores minus one).\n * workLoad the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * @param callback(err, keypair) called once the operation completes.\n */\nfunction _generateKeyPair(state, options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n\n var opts = {\n algorithm: {\n name: options.algorithm || 'PRIMEINC',\n options: {\n workers: options.workers || 2,\n workLoad: options.workLoad || 100,\n workerScript: options.workerScript\n }\n }\n };\n if('prng' in options) {\n opts.prng = options.prng;\n }\n\n generate();\n\n function generate() {\n // find p and then q (done in series to simplify)\n getPrime(state.pBits, function(err, num) {\n if(err) {\n return callback(err);\n }\n state.p = num;\n if(state.q !== null) {\n return finish(err, state.q);\n }\n getPrime(state.qBits, finish);\n });\n }\n\n function getPrime(bits, callback) {\n forge.prime.generateProbablePrime(bits, opts, callback);\n }\n\n function finish(err, num) {\n if(err) {\n return callback(err);\n }\n\n // set q\n state.q = num;\n\n // ensure p is larger than q (swap them if not)\n if(state.p.compareTo(state.q) < 0) {\n var tmp = state.p;\n state.p = state.q;\n state.q = tmp;\n }\n\n // ensure p is coprime with e\n if(state.p.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) !== 0) {\n state.p = null;\n generate();\n return;\n }\n\n // ensure q is coprime with e\n if(state.q.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) !== 0) {\n state.q = null;\n getPrime(state.qBits, finish);\n return;\n }\n\n // compute phi: (p - 1)(q - 1) (Euler's totient function)\n state.p1 = state.p.subtract(BigInteger.ONE);\n state.q1 = state.q.subtract(BigInteger.ONE);\n state.phi = state.p1.multiply(state.q1);\n\n // ensure e and phi are coprime\n if(state.phi.gcd(state.e).compareTo(BigInteger.ONE) !== 0) {\n // phi and e aren't coprime, so generate a new p and q\n state.p = state.q = null;\n generate();\n return;\n }\n\n // create n, ensure n is has the right number of bits\n state.n = state.p.multiply(state.q);\n if(state.n.bitLength() !== state.bits) {\n // failed, get new q\n state.q = null;\n getPrime(state.qBits, finish);\n return;\n }\n\n // set keys\n var d = state.e.modInverse(state.phi);\n state.keys = {\n privateKey: pki.rsa.setPrivateKey(\n state.n, state.e, d, state.p, state.q,\n d.mod(state.p1), d.mod(state.q1),\n state.q.modInverse(state.p)),\n publicKey: pki.rsa.setPublicKey(state.n, state.e)\n };\n\n callback(null, state.keys);\n }\n}\n\n/**\n * Converts a positive BigInteger into 2's-complement big-endian bytes.\n *\n * @param b the big integer to convert.\n *\n * @return the bytes.\n */\nfunction _bnToBytes(b) {\n // prepend 0x00 if first byte >= 0x80\n var hex = b.toString(16);\n if(hex[0] >= '8') {\n hex = '00' + hex;\n }\n var bytes = forge.util.hexToBytes(hex);\n\n // ensure integer is minimally-encoded\n if(bytes.length > 1 &&\n // leading 0x00 for positive integer\n ((bytes.charCodeAt(0) === 0 &&\n (bytes.charCodeAt(1) & 0x80) === 0) ||\n // leading 0xFF for negative integer\n (bytes.charCodeAt(0) === 0xFF &&\n (bytes.charCodeAt(1) & 0x80) === 0x80))) {\n return bytes.substr(1);\n }\n return bytes;\n}\n\n/**\n * Returns the required number of Miller-Rabin tests to generate a\n * prime with an error probability of (1/2)^80.\n *\n * See Handbook of Applied Cryptography Chapter 4, Table 4.4.\n *\n * @param bits the bit size.\n *\n * @return the required number of iterations.\n */\nfunction _getMillerRabinTests(bits) {\n if(bits <= 100) return 27;\n if(bits <= 150) return 18;\n if(bits <= 200) return 15;\n if(bits <= 250) return 12;\n if(bits <= 300) return 9;\n if(bits <= 350) return 8;\n if(bits <= 400) return 7;\n if(bits <= 500) return 6;\n if(bits <= 600) return 5;\n if(bits <= 800) return 4;\n if(bits <= 1250) return 3;\n return 2;\n}\n\n/**\n * Performs feature detection on the Node crypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectNodeCrypto(fn) {\n return forge.util.isNodejs && typeof _crypto[fn] === 'function';\n}\n\n/**\n * Performs feature detection on the SubtleCrypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectSubtleCrypto(fn) {\n return (typeof util.globalScope !== 'undefined' &&\n typeof util.globalScope.crypto === 'object' &&\n typeof util.globalScope.crypto.subtle === 'object' &&\n typeof util.globalScope.crypto.subtle[fn] === 'function');\n}\n\n/**\n * Performs feature detection on the deprecated Microsoft Internet Explorer\n * outdated SubtleCrypto interface. This function should only be used after\n * checking for the modern, standard SubtleCrypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectSubtleMsCrypto(fn) {\n return (typeof util.globalScope !== 'undefined' &&\n typeof util.globalScope.msCrypto === 'object' &&\n typeof util.globalScope.msCrypto.subtle === 'object' &&\n typeof util.globalScope.msCrypto.subtle[fn] === 'function');\n}\n\nfunction _intToUint8Array(x) {\n var bytes = forge.util.hexToBytes(x.toString(16));\n var buffer = new Uint8Array(bytes.length);\n for(var i = 0; i < bytes.length; ++i) {\n buffer[i] = bytes.charCodeAt(i);\n }\n return buffer;\n}\n\nfunction _privateKeyFromJwk(jwk) {\n if(jwk.kty !== 'RSA') {\n throw new Error(\n 'Unsupported key algorithm \"' + jwk.kty + '\"; algorithm must be \"RSA\".');\n }\n return pki.setRsaPrivateKey(\n _base64ToBigInt(jwk.n),\n _base64ToBigInt(jwk.e),\n _base64ToBigInt(jwk.d),\n _base64ToBigInt(jwk.p),\n _base64ToBigInt(jwk.q),\n _base64ToBigInt(jwk.dp),\n _base64ToBigInt(jwk.dq),\n _base64ToBigInt(jwk.qi));\n}\n\nfunction _publicKeyFromJwk(jwk) {\n if(jwk.kty !== 'RSA') {\n throw new Error('Key algorithm must be \"RSA\".');\n }\n return pki.setRsaPublicKey(\n _base64ToBigInt(jwk.n),\n _base64ToBigInt(jwk.e));\n}\n\nfunction _base64ToBigInt(b64) {\n return new BigInteger(forge.util.bytesToHex(forge.util.decode64(b64)), 16);\n}\n","/**\n * Secure Hash Algorithm with 160-bit digest (SHA-1) implementation.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha1 = module.exports = forge.sha1 = forge.sha1 || {};\nforge.md.sha1 = forge.md.algorithms.sha1 = sha1;\n\n/**\n * Creates a SHA-1 message digest object.\n *\n * @return a message digest object.\n */\nsha1.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // SHA-1 state contains five 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(80);\n\n // message digest object\n var md = {\n algorithm: 'sha1',\n blockLength: 64,\n digestLength: 20,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x67452301,\n h1: 0xEFCDAB89,\n h2: 0x98BADCFE,\n h3: 0x10325476,\n h4: 0xC3D2E1F0\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-1 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3,\n h4: _state.h4\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32(s2.h0);\n rval.putInt32(s2.h1);\n rval.putInt32(s2.h2);\n rval.putInt32(s2.h3);\n rval.putInt32(s2.h4);\n return rval;\n };\n\n return md;\n};\n\n// sha-1 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-1 state with the given byte buffer.\n *\n * @param s the SHA-1 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t, a, b, c, d, e, f, i;\n var len = bytes.length();\n while(len >= 64) {\n // the w array will be populated with sixteen 32-bit big-endian words\n // and then extended into 80 32-bit words according to SHA-1 algorithm\n // and for 32-79 using Max Locktyukhin's optimization\n\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n e = s.h4;\n\n // round 1\n for(i = 0; i < 16; ++i) {\n t = bytes.getInt32();\n w[i] = t;\n f = d ^ (b & (c ^ d));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x5A827999 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n for(; i < 20; ++i) {\n t = (w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n t = (t << 1) | (t >>> 31);\n w[i] = t;\n f = d ^ (b & (c ^ d));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x5A827999 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 2\n for(; i < 32; ++i) {\n t = (w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n t = (t << 1) | (t >>> 31);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0x6ED9EBA1 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n for(; i < 40; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0x6ED9EBA1 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 3\n for(; i < 60; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = (b & c) | (d & (b ^ c));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x8F1BBCDC + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 4\n for(; i < 80; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0xCA62C1D6 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n s.h4 = (s.h4 + e) | 0;\n\n len -= 64;\n }\n}\n","/**\n * Secure Hash Algorithm with 256-bit digest (SHA-256) implementation.\n *\n * See FIPS 180-2 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha256 = module.exports = forge.sha256 = forge.sha256 || {};\nforge.md.sha256 = forge.md.algorithms.sha256 = sha256;\n\n/**\n * Creates a SHA-256 message digest object.\n *\n * @return a message digest object.\n */\nsha256.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // SHA-256 state contains eight 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(64);\n\n // message digest object\n var md = {\n algorithm: 'sha256',\n blockLength: 64,\n digestLength: 32,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x6A09E667,\n h1: 0xBB67AE85,\n h2: 0x3C6EF372,\n h3: 0xA54FF53A,\n h4: 0x510E527F,\n h5: 0x9B05688C,\n h6: 0x1F83D9AB,\n h7: 0x5BE0CD19\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-256 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3,\n h4: _state.h4,\n h5: _state.h5,\n h6: _state.h6,\n h7: _state.h7\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32(s2.h0);\n rval.putInt32(s2.h1);\n rval.putInt32(s2.h2);\n rval.putInt32(s2.h3);\n rval.putInt32(s2.h4);\n rval.putInt32(s2.h5);\n rval.putInt32(s2.h6);\n rval.putInt32(s2.h7);\n return rval;\n };\n\n return md;\n};\n\n// sha-256 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n// table of constants\nvar _k = null;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // create K table for SHA-256\n _k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-256 state with the given byte buffer.\n *\n * @param s the SHA-256 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t1, t2, s0, s1, ch, maj, i, a, b, c, d, e, f, g, h;\n var len = bytes.length();\n while(len >= 64) {\n // the w array will be populated with sixteen 32-bit big-endian words\n // and then extended into 64 32-bit words according to SHA-256\n for(i = 0; i < 16; ++i) {\n w[i] = bytes.getInt32();\n }\n for(; i < 64; ++i) {\n // XOR word 2 words ago rot right 17, rot right 19, shft right 10\n t1 = w[i - 2];\n t1 =\n ((t1 >>> 17) | (t1 << 15)) ^\n ((t1 >>> 19) | (t1 << 13)) ^\n (t1 >>> 10);\n // XOR word 15 words ago rot right 7, rot right 18, shft right 3\n t2 = w[i - 15];\n t2 =\n ((t2 >>> 7) | (t2 << 25)) ^\n ((t2 >>> 18) | (t2 << 14)) ^\n (t2 >>> 3);\n // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^32\n w[i] = (t1 + w[i - 7] + t2 + w[i - 16]) | 0;\n }\n\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n e = s.h4;\n f = s.h5;\n g = s.h6;\n h = s.h7;\n\n // round function\n for(i = 0; i < 64; ++i) {\n // Sum1(e)\n s1 =\n ((e >>> 6) | (e << 26)) ^\n ((e >>> 11) | (e << 21)) ^\n ((e >>> 25) | (e << 7));\n // Ch(e, f, g) (optimized the same way as SHA-1)\n ch = g ^ (e & (f ^ g));\n // Sum0(a)\n s0 =\n ((a >>> 2) | (a << 30)) ^\n ((a >>> 13) | (a << 19)) ^\n ((a >>> 22) | (a << 10));\n // Maj(a, b, c) (optimized the same way as SHA-1)\n maj = (a & b) | (c & (a ^ b));\n\n // main algorithm\n t1 = h + s1 + ch + _k[i] + w[i];\n t2 = s0 + maj;\n h = g;\n g = f;\n f = e;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n // can't truncate with `| 0`\n e = (d + t1) >>> 0;\n d = c;\n c = b;\n b = a;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n // can't truncate with `| 0`\n a = (t1 + t2) >>> 0;\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n s.h4 = (s.h4 + e) | 0;\n s.h5 = (s.h5 + f) | 0;\n s.h6 = (s.h6 + g) | 0;\n s.h7 = (s.h7 + h) | 0;\n len -= 64;\n }\n}\n","/**\n * Secure Hash Algorithm with a 1024-bit block size implementation.\n *\n * This includes: SHA-512, SHA-384, SHA-512/224, and SHA-512/256. For\n * SHA-256 (block size 512 bits), see sha256.js.\n *\n * See FIPS 180-4 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2014-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha512 = module.exports = forge.sha512 = forge.sha512 || {};\n\n// SHA-512\nforge.md.sha512 = forge.md.algorithms.sha512 = sha512;\n\n// SHA-384\nvar sha384 = forge.sha384 = forge.sha512.sha384 = forge.sha512.sha384 || {};\nsha384.create = function() {\n return sha512.create('SHA-384');\n};\nforge.md.sha384 = forge.md.algorithms.sha384 = sha384;\n\n// SHA-512/256\nforge.sha512.sha256 = forge.sha512.sha256 || {\n create: function() {\n return sha512.create('SHA-512/256');\n }\n};\nforge.md['sha512/256'] = forge.md.algorithms['sha512/256'] =\n forge.sha512.sha256;\n\n// SHA-512/224\nforge.sha512.sha224 = forge.sha512.sha224 || {\n create: function() {\n return sha512.create('SHA-512/224');\n }\n};\nforge.md['sha512/224'] = forge.md.algorithms['sha512/224'] =\n forge.sha512.sha224;\n\n/**\n * Creates a SHA-2 message digest object.\n *\n * @param algorithm the algorithm to use (SHA-512, SHA-384, SHA-512/224,\n * SHA-512/256).\n *\n * @return a message digest object.\n */\nsha512.create = function(algorithm) {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n if(typeof algorithm === 'undefined') {\n algorithm = 'SHA-512';\n }\n\n if(!(algorithm in _states)) {\n throw new Error('Invalid SHA-512 algorithm: ' + algorithm);\n }\n\n // SHA-512 state contains eight 64-bit integers (each as two 32-bit ints)\n var _state = _states[algorithm];\n var _h = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for 64-bit word storage\n var _w = new Array(80);\n for(var wi = 0; wi < 80; ++wi) {\n _w[wi] = new Array(2);\n }\n\n // determine digest length by algorithm name (default)\n var digestLength = 64;\n switch(algorithm) {\n case 'SHA-384':\n digestLength = 48;\n break;\n case 'SHA-512/256':\n digestLength = 32;\n break;\n case 'SHA-512/224':\n digestLength = 28;\n break;\n }\n\n // message digest object\n var md = {\n // SHA-512 => sha512\n algorithm: algorithm.replace('-', '').toLowerCase(),\n blockLength: 128,\n digestLength: digestLength,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 16\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength128 for backwards-compatibility)\n md.fullMessageLength = md.messageLength128 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _h = new Array(_state.length);\n for(var i = 0; i < _state.length; ++i) {\n _h[i] = _state[i].slice(0);\n }\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_h, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-512 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 896 mod 1024. In other words,\n the data to be digested must be a multiple of 1024 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 16 bytes (128\n bits), that means that the last segment of the data must have 112 bytes\n (896 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 896 mod 1024 because\n 1024 - 128 = 896.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 896 mod 1024, then 1024 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var h = new Array(_h.length);\n for(var i = 0; i < _h.length; ++i) {\n h[i] = _h[i].slice(0);\n }\n _update(h, _w, finalBlock);\n var rval = forge.util.createBuffer();\n var hlen;\n if(algorithm === 'SHA-512') {\n hlen = h.length;\n } else if(algorithm === 'SHA-384') {\n hlen = h.length - 2;\n } else {\n hlen = h.length - 4;\n }\n for(var i = 0; i < hlen; ++i) {\n rval.putInt32(h[i][0]);\n if(i !== hlen - 1 || algorithm !== 'SHA-512/224') {\n rval.putInt32(h[i][1]);\n }\n }\n return rval;\n };\n\n return md;\n};\n\n// sha-512 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n// table of constants\nvar _k = null;\n\n// initial hash states\nvar _states = null;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 128);\n\n // create K table for SHA-512\n _k = [\n [0x428a2f98, 0xd728ae22], [0x71374491, 0x23ef65cd],\n [0xb5c0fbcf, 0xec4d3b2f], [0xe9b5dba5, 0x8189dbbc],\n [0x3956c25b, 0xf348b538], [0x59f111f1, 0xb605d019],\n [0x923f82a4, 0xaf194f9b], [0xab1c5ed5, 0xda6d8118],\n [0xd807aa98, 0xa3030242], [0x12835b01, 0x45706fbe],\n [0x243185be, 0x4ee4b28c], [0x550c7dc3, 0xd5ffb4e2],\n [0x72be5d74, 0xf27b896f], [0x80deb1fe, 0x3b1696b1],\n [0x9bdc06a7, 0x25c71235], [0xc19bf174, 0xcf692694],\n [0xe49b69c1, 0x9ef14ad2], [0xefbe4786, 0x384f25e3],\n [0x0fc19dc6, 0x8b8cd5b5], [0x240ca1cc, 0x77ac9c65],\n [0x2de92c6f, 0x592b0275], [0x4a7484aa, 0x6ea6e483],\n [0x5cb0a9dc, 0xbd41fbd4], [0x76f988da, 0x831153b5],\n [0x983e5152, 0xee66dfab], [0xa831c66d, 0x2db43210],\n [0xb00327c8, 0x98fb213f], [0xbf597fc7, 0xbeef0ee4],\n [0xc6e00bf3, 0x3da88fc2], [0xd5a79147, 0x930aa725],\n [0x06ca6351, 0xe003826f], [0x14292967, 0x0a0e6e70],\n [0x27b70a85, 0x46d22ffc], [0x2e1b2138, 0x5c26c926],\n [0x4d2c6dfc, 0x5ac42aed], [0x53380d13, 0x9d95b3df],\n [0x650a7354, 0x8baf63de], [0x766a0abb, 0x3c77b2a8],\n [0x81c2c92e, 0x47edaee6], [0x92722c85, 0x1482353b],\n [0xa2bfe8a1, 0x4cf10364], [0xa81a664b, 0xbc423001],\n [0xc24b8b70, 0xd0f89791], [0xc76c51a3, 0x0654be30],\n [0xd192e819, 0xd6ef5218], [0xd6990624, 0x5565a910],\n [0xf40e3585, 0x5771202a], [0x106aa070, 0x32bbd1b8],\n [0x19a4c116, 0xb8d2d0c8], [0x1e376c08, 0x5141ab53],\n [0x2748774c, 0xdf8eeb99], [0x34b0bcb5, 0xe19b48a8],\n [0x391c0cb3, 0xc5c95a63], [0x4ed8aa4a, 0xe3418acb],\n [0x5b9cca4f, 0x7763e373], [0x682e6ff3, 0xd6b2b8a3],\n [0x748f82ee, 0x5defb2fc], [0x78a5636f, 0x43172f60],\n [0x84c87814, 0xa1f0ab72], [0x8cc70208, 0x1a6439ec],\n [0x90befffa, 0x23631e28], [0xa4506ceb, 0xde82bde9],\n [0xbef9a3f7, 0xb2c67915], [0xc67178f2, 0xe372532b],\n [0xca273ece, 0xea26619c], [0xd186b8c7, 0x21c0c207],\n [0xeada7dd6, 0xcde0eb1e], [0xf57d4f7f, 0xee6ed178],\n [0x06f067aa, 0x72176fba], [0x0a637dc5, 0xa2c898a6],\n [0x113f9804, 0xbef90dae], [0x1b710b35, 0x131c471b],\n [0x28db77f5, 0x23047d84], [0x32caab7b, 0x40c72493],\n [0x3c9ebe0a, 0x15c9bebc], [0x431d67c4, 0x9c100d4c],\n [0x4cc5d4be, 0xcb3e42b6], [0x597f299c, 0xfc657e2a],\n [0x5fcb6fab, 0x3ad6faec], [0x6c44198c, 0x4a475817]\n ];\n\n // initial hash states\n _states = {};\n _states['SHA-512'] = [\n [0x6a09e667, 0xf3bcc908],\n [0xbb67ae85, 0x84caa73b],\n [0x3c6ef372, 0xfe94f82b],\n [0xa54ff53a, 0x5f1d36f1],\n [0x510e527f, 0xade682d1],\n [0x9b05688c, 0x2b3e6c1f],\n [0x1f83d9ab, 0xfb41bd6b],\n [0x5be0cd19, 0x137e2179]\n ];\n _states['SHA-384'] = [\n [0xcbbb9d5d, 0xc1059ed8],\n [0x629a292a, 0x367cd507],\n [0x9159015a, 0x3070dd17],\n [0x152fecd8, 0xf70e5939],\n [0x67332667, 0xffc00b31],\n [0x8eb44a87, 0x68581511],\n [0xdb0c2e0d, 0x64f98fa7],\n [0x47b5481d, 0xbefa4fa4]\n ];\n _states['SHA-512/256'] = [\n [0x22312194, 0xFC2BF72C],\n [0x9F555FA3, 0xC84C64C2],\n [0x2393B86B, 0x6F53B151],\n [0x96387719, 0x5940EABD],\n [0x96283EE2, 0xA88EFFE3],\n [0xBE5E1E25, 0x53863992],\n [0x2B0199FC, 0x2C85B8AA],\n [0x0EB72DDC, 0x81C52CA2]\n ];\n _states['SHA-512/224'] = [\n [0x8C3D37C8, 0x19544DA2],\n [0x73E19966, 0x89DCD4D6],\n [0x1DFAB7AE, 0x32FF9C82],\n [0x679DD514, 0x582F9FCF],\n [0x0F6D2B69, 0x7BD44DA8],\n [0x77E36F73, 0x04C48942],\n [0x3F9D85A8, 0x6A1D36C8],\n [0x1112E6AD, 0x91D692A1]\n ];\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-512 state with the given byte buffer.\n *\n * @param s the SHA-512 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (128 byte) chunks\n var t1_hi, t1_lo;\n var t2_hi, t2_lo;\n var s0_hi, s0_lo;\n var s1_hi, s1_lo;\n var ch_hi, ch_lo;\n var maj_hi, maj_lo;\n var a_hi, a_lo;\n var b_hi, b_lo;\n var c_hi, c_lo;\n var d_hi, d_lo;\n var e_hi, e_lo;\n var f_hi, f_lo;\n var g_hi, g_lo;\n var h_hi, h_lo;\n var i, hi, lo, w2, w7, w15, w16;\n var len = bytes.length();\n while(len >= 128) {\n // the w array will be populated with sixteen 64-bit big-endian words\n // and then extended into 64 64-bit words according to SHA-512\n for(i = 0; i < 16; ++i) {\n w[i][0] = bytes.getInt32() >>> 0;\n w[i][1] = bytes.getInt32() >>> 0;\n }\n for(; i < 80; ++i) {\n // for word 2 words ago: ROTR 19(x) ^ ROTR 61(x) ^ SHR 6(x)\n w2 = w[i - 2];\n hi = w2[0];\n lo = w2[1];\n\n // high bits\n t1_hi = (\n ((hi >>> 19) | (lo << 13)) ^ // ROTR 19\n ((lo >>> 29) | (hi << 3)) ^ // ROTR 61/(swap + ROTR 29)\n (hi >>> 6)) >>> 0; // SHR 6\n // low bits\n t1_lo = (\n ((hi << 13) | (lo >>> 19)) ^ // ROTR 19\n ((lo << 3) | (hi >>> 29)) ^ // ROTR 61/(swap + ROTR 29)\n ((hi << 26) | (lo >>> 6))) >>> 0; // SHR 6\n\n // for word 15 words ago: ROTR 1(x) ^ ROTR 8(x) ^ SHR 7(x)\n w15 = w[i - 15];\n hi = w15[0];\n lo = w15[1];\n\n // high bits\n t2_hi = (\n ((hi >>> 1) | (lo << 31)) ^ // ROTR 1\n ((hi >>> 8) | (lo << 24)) ^ // ROTR 8\n (hi >>> 7)) >>> 0; // SHR 7\n // low bits\n t2_lo = (\n ((hi << 31) | (lo >>> 1)) ^ // ROTR 1\n ((hi << 24) | (lo >>> 8)) ^ // ROTR 8\n ((hi << 25) | (lo >>> 7))) >>> 0; // SHR 7\n\n // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^64 (carry lo overflow)\n w7 = w[i - 7];\n w16 = w[i - 16];\n lo = (t1_lo + w7[1] + t2_lo + w16[1]);\n w[i][0] = (t1_hi + w7[0] + t2_hi + w16[0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n w[i][1] = lo >>> 0;\n }\n\n // initialize hash value for this chunk\n a_hi = s[0][0];\n a_lo = s[0][1];\n b_hi = s[1][0];\n b_lo = s[1][1];\n c_hi = s[2][0];\n c_lo = s[2][1];\n d_hi = s[3][0];\n d_lo = s[3][1];\n e_hi = s[4][0];\n e_lo = s[4][1];\n f_hi = s[5][0];\n f_lo = s[5][1];\n g_hi = s[6][0];\n g_lo = s[6][1];\n h_hi = s[7][0];\n h_lo = s[7][1];\n\n // round function\n for(i = 0; i < 80; ++i) {\n // Sum1(e) = ROTR 14(e) ^ ROTR 18(e) ^ ROTR 41(e)\n s1_hi = (\n ((e_hi >>> 14) | (e_lo << 18)) ^ // ROTR 14\n ((e_hi >>> 18) | (e_lo << 14)) ^ // ROTR 18\n ((e_lo >>> 9) | (e_hi << 23))) >>> 0; // ROTR 41/(swap + ROTR 9)\n s1_lo = (\n ((e_hi << 18) | (e_lo >>> 14)) ^ // ROTR 14\n ((e_hi << 14) | (e_lo >>> 18)) ^ // ROTR 18\n ((e_lo << 23) | (e_hi >>> 9))) >>> 0; // ROTR 41/(swap + ROTR 9)\n\n // Ch(e, f, g) (optimized the same way as SHA-1)\n ch_hi = (g_hi ^ (e_hi & (f_hi ^ g_hi))) >>> 0;\n ch_lo = (g_lo ^ (e_lo & (f_lo ^ g_lo))) >>> 0;\n\n // Sum0(a) = ROTR 28(a) ^ ROTR 34(a) ^ ROTR 39(a)\n s0_hi = (\n ((a_hi >>> 28) | (a_lo << 4)) ^ // ROTR 28\n ((a_lo >>> 2) | (a_hi << 30)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo >>> 7) | (a_hi << 25))) >>> 0; // ROTR 39/(swap + ROTR 7)\n s0_lo = (\n ((a_hi << 4) | (a_lo >>> 28)) ^ // ROTR 28\n ((a_lo << 30) | (a_hi >>> 2)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo << 25) | (a_hi >>> 7))) >>> 0; // ROTR 39/(swap + ROTR 7)\n\n // Maj(a, b, c) (optimized the same way as SHA-1)\n maj_hi = ((a_hi & b_hi) | (c_hi & (a_hi ^ b_hi))) >>> 0;\n maj_lo = ((a_lo & b_lo) | (c_lo & (a_lo ^ b_lo))) >>> 0;\n\n // main algorithm\n // t1 = (h + s1 + ch + _k[i] + _w[i]) modulo 2^64 (carry lo overflow)\n lo = (h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1]);\n t1_hi = (h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n t1_lo = lo >>> 0;\n\n // t2 = s0 + maj modulo 2^64 (carry lo overflow)\n lo = s0_lo + maj_lo;\n t2_hi = (s0_hi + maj_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n t2_lo = lo >>> 0;\n\n h_hi = g_hi;\n h_lo = g_lo;\n\n g_hi = f_hi;\n g_lo = f_lo;\n\n f_hi = e_hi;\n f_lo = e_lo;\n\n // e = (d + t1) modulo 2^64 (carry lo overflow)\n lo = d_lo + t1_lo;\n e_hi = (d_hi + t1_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n e_lo = lo >>> 0;\n\n d_hi = c_hi;\n d_lo = c_lo;\n\n c_hi = b_hi;\n c_lo = b_lo;\n\n b_hi = a_hi;\n b_lo = a_lo;\n\n // a = (t1 + t2) modulo 2^64 (carry lo overflow)\n lo = t1_lo + t2_lo;\n a_hi = (t1_hi + t2_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n a_lo = lo >>> 0;\n }\n\n // update hash state (additional modulo 2^64)\n lo = s[0][1] + a_lo;\n s[0][0] = (s[0][0] + a_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[0][1] = lo >>> 0;\n\n lo = s[1][1] + b_lo;\n s[1][0] = (s[1][0] + b_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[1][1] = lo >>> 0;\n\n lo = s[2][1] + c_lo;\n s[2][0] = (s[2][0] + c_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[2][1] = lo >>> 0;\n\n lo = s[3][1] + d_lo;\n s[3][0] = (s[3][0] + d_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[3][1] = lo >>> 0;\n\n lo = s[4][1] + e_lo;\n s[4][0] = (s[4][0] + e_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[4][1] = lo >>> 0;\n\n lo = s[5][1] + f_lo;\n s[5][0] = (s[5][0] + f_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[5][1] = lo >>> 0;\n\n lo = s[6][1] + g_lo;\n s[6][0] = (s[6][0] + g_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[6][1] = lo >>> 0;\n\n lo = s[7][1] + h_lo;\n s[7][0] = (s[7][0] + h_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[7][1] = lo >>> 0;\n\n len -= 128;\n }\n}\n","/**\n * Functions to output keys in SSH-friendly formats.\n *\n * This is part of the Forge project which may be used under the terms of\n * either the BSD License or the GNU General Public License (GPL) Version 2.\n *\n * See: https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE\n *\n * @author https://github.com/shellac\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./hmac');\nrequire('./md5');\nrequire('./sha1');\nrequire('./util');\n\nvar ssh = module.exports = forge.ssh = forge.ssh || {};\n\n/**\n * Encodes (and optionally encrypts) a private RSA key as a Putty PPK file.\n *\n * @param privateKey the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n * @param comment a comment to include in the key file.\n *\n * @return the PPK file as a string.\n */\nssh.privateKeyToPutty = function(privateKey, passphrase, comment) {\n comment = comment || '';\n passphrase = passphrase || '';\n var algorithm = 'ssh-rsa';\n var encryptionAlgorithm = (passphrase === '') ? 'none' : 'aes256-cbc';\n\n var ppk = 'PuTTY-User-Key-File-2: ' + algorithm + '\\r\\n';\n ppk += 'Encryption: ' + encryptionAlgorithm + '\\r\\n';\n ppk += 'Comment: ' + comment + '\\r\\n';\n\n // public key into buffer for ppk\n var pubbuffer = forge.util.createBuffer();\n _addStringToBuffer(pubbuffer, algorithm);\n _addBigIntegerToBuffer(pubbuffer, privateKey.e);\n _addBigIntegerToBuffer(pubbuffer, privateKey.n);\n\n // write public key\n var pub = forge.util.encode64(pubbuffer.bytes(), 64);\n var length = Math.floor(pub.length / 66) + 1; // 66 = 64 + \\r\\n\n ppk += 'Public-Lines: ' + length + '\\r\\n';\n ppk += pub;\n\n // private key into a buffer\n var privbuffer = forge.util.createBuffer();\n _addBigIntegerToBuffer(privbuffer, privateKey.d);\n _addBigIntegerToBuffer(privbuffer, privateKey.p);\n _addBigIntegerToBuffer(privbuffer, privateKey.q);\n _addBigIntegerToBuffer(privbuffer, privateKey.qInv);\n\n // optionally encrypt the private key\n var priv;\n if(!passphrase) {\n // use the unencrypted buffer\n priv = forge.util.encode64(privbuffer.bytes(), 64);\n } else {\n // encrypt RSA key using passphrase\n var encLen = privbuffer.length() + 16 - 1;\n encLen -= encLen % 16;\n\n // pad private key with sha1-d data -- needs to be a multiple of 16\n var padding = _sha1(privbuffer.bytes());\n\n padding.truncate(padding.length() - encLen + privbuffer.length());\n privbuffer.putBuffer(padding);\n\n var aeskey = forge.util.createBuffer();\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x00', passphrase));\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x01', passphrase));\n\n // encrypt some bytes using CBC mode\n // key is 40 bytes, so truncate *by* 8 bytes\n var cipher = forge.aes.createEncryptionCipher(aeskey.truncate(8), 'CBC');\n cipher.start(forge.util.createBuffer().fillWithByte(0, 16));\n cipher.update(privbuffer.copy());\n cipher.finish();\n var encrypted = cipher.output;\n\n // Note: this appears to differ from Putty -- is forge wrong, or putty?\n // due to padding we finish as an exact multiple of 16\n encrypted.truncate(16); // all padding\n\n priv = forge.util.encode64(encrypted.bytes(), 64);\n }\n\n // output private key\n length = Math.floor(priv.length / 66) + 1; // 64 + \\r\\n\n ppk += '\\r\\nPrivate-Lines: ' + length + '\\r\\n';\n ppk += priv;\n\n // MAC\n var mackey = _sha1('putty-private-key-file-mac-key', passphrase);\n\n var macbuffer = forge.util.createBuffer();\n _addStringToBuffer(macbuffer, algorithm);\n _addStringToBuffer(macbuffer, encryptionAlgorithm);\n _addStringToBuffer(macbuffer, comment);\n macbuffer.putInt32(pubbuffer.length());\n macbuffer.putBuffer(pubbuffer);\n macbuffer.putInt32(privbuffer.length());\n macbuffer.putBuffer(privbuffer);\n\n var hmac = forge.hmac.create();\n hmac.start('sha1', mackey);\n hmac.update(macbuffer.bytes());\n\n ppk += '\\r\\nPrivate-MAC: ' + hmac.digest().toHex() + '\\r\\n';\n\n return ppk;\n};\n\n/**\n * Encodes a public RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param comment a comment.\n *\n * @return the public key in OpenSSH format.\n */\nssh.publicKeyToOpenSSH = function(key, comment) {\n var type = 'ssh-rsa';\n comment = comment || '';\n\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n return type + ' ' + forge.util.encode64(buffer.bytes()) + ' ' + comment;\n};\n\n/**\n * Encodes a private RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n *\n * @return the public key in OpenSSH format.\n */\nssh.privateKeyToOpenSSH = function(privateKey, passphrase) {\n if(!passphrase) {\n return forge.pki.privateKeyToPem(privateKey);\n }\n // OpenSSH private key is just a legacy format, it seems\n return forge.pki.encryptRsaPrivateKey(privateKey, passphrase,\n {legacy: true, algorithm: 'aes128'});\n};\n\n/**\n * Gets the SSH fingerprint for the given public key.\n *\n * @param options the options to use.\n * [md] the message digest object to use (defaults to forge.md.md5).\n * [encoding] an alternative output encoding, such as 'hex'\n * (defaults to none, outputs a byte buffer).\n * [delimiter] the delimiter to use between bytes for 'hex' encoded\n * output, eg: ':' (defaults to none).\n *\n * @return the fingerprint as a byte buffer or other encoding based on options.\n */\nssh.getPublicKeyFingerprint = function(key, options) {\n options = options || {};\n var md = options.md || forge.md.md5.create();\n\n var type = 'ssh-rsa';\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n // hash public key bytes\n md.start();\n md.update(buffer.getBytes());\n var digest = md.digest();\n if(options.encoding === 'hex') {\n var hex = digest.toHex();\n if(options.delimiter) {\n return hex.match(/.{2}/g).join(options.delimiter);\n }\n return hex;\n } else if(options.encoding === 'binary') {\n return digest.getBytes();\n } else if(options.encoding) {\n throw new Error('Unknown encoding \"' + options.encoding + '\".');\n }\n return digest;\n};\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a big integer.\n */\nfunction _addBigIntegerToBuffer(buffer, val) {\n var hexVal = val.toString(16);\n // ensure 2s complement +ve\n if(hexVal[0] >= '8') {\n hexVal = '00' + hexVal;\n }\n var bytes = forge.util.hexToBytes(hexVal);\n buffer.putInt32(bytes.length);\n buffer.putBytes(bytes);\n}\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a string.\n */\nfunction _addStringToBuffer(buffer, val) {\n buffer.putInt32(val.length);\n buffer.putString(val);\n}\n\n/**\n * Hashes the arguments into one value using SHA-1.\n *\n * @return the sha1 hash of the provided arguments.\n */\nfunction _sha1() {\n var sha = forge.md.sha1.create();\n var num = arguments.length;\n for (var i = 0; i < num; ++i) {\n sha.update(arguments[i]);\n }\n return sha.digest();\n}\n","/**\n * A Javascript implementation of Transport Layer Security (TLS).\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2014 Digital Bazaar, Inc.\n *\n * The TLS Handshake Protocol involves the following steps:\n *\n * - Exchange hello messages to agree on algorithms, exchange random values,\n * and check for session resumption.\n *\n * - Exchange the necessary cryptographic parameters to allow the client and\n * server to agree on a premaster secret.\n *\n * - Exchange certificates and cryptographic information to allow the client\n * and server to authenticate themselves.\n *\n * - Generate a master secret from the premaster secret and exchanged random\n * values.\n *\n * - Provide security parameters to the record layer.\n *\n * - Allow the client and server to verify that their peer has calculated the\n * same security parameters and that the handshake occurred without tampering\n * by an attacker.\n *\n * Up to 4 different messages may be sent during a key exchange. The server\n * certificate, the server key exchange, the client certificate, and the\n * client key exchange.\n *\n * A typical handshake (from the client's perspective).\n *\n * 1. Client sends ClientHello.\n * 2. Client receives ServerHello.\n * 3. Client receives optional Certificate.\n * 4. Client receives optional ServerKeyExchange.\n * 5. Client receives ServerHelloDone.\n * 6. Client sends optional Certificate.\n * 7. Client sends ClientKeyExchange.\n * 8. Client sends optional CertificateVerify.\n * 9. Client sends ChangeCipherSpec.\n * 10. Client sends Finished.\n * 11. Client receives ChangeCipherSpec.\n * 12. Client receives Finished.\n * 13. Client sends/receives application data.\n *\n * To reuse an existing session:\n *\n * 1. Client sends ClientHello with session ID for reuse.\n * 2. Client receives ServerHello with same session ID if reusing.\n * 3. Client receives ChangeCipherSpec message if reusing.\n * 4. Client receives Finished.\n * 5. Client sends ChangeCipherSpec.\n * 6. Client sends Finished.\n *\n * Note: Client ignores HelloRequest if in the middle of a handshake.\n *\n * Record Layer:\n *\n * The record layer fragments information blocks into TLSPlaintext records\n * carrying data in chunks of 2^14 bytes or less. Client message boundaries are\n * not preserved in the record layer (i.e., multiple client messages of the\n * same ContentType MAY be coalesced into a single TLSPlaintext record, or a\n * single message MAY be fragmented across several records).\n *\n * struct {\n * uint8 major;\n * uint8 minor;\n * } ProtocolVersion;\n *\n * struct {\n * ContentType type;\n * ProtocolVersion version;\n * uint16 length;\n * opaque fragment[TLSPlaintext.length];\n * } TLSPlaintext;\n *\n * type:\n * The higher-level protocol used to process the enclosed fragment.\n *\n * version:\n * The version of the protocol being employed. TLS Version 1.2 uses version\n * {3, 3}. TLS Version 1.0 uses version {3, 1}. Note that a client that\n * supports multiple versions of TLS may not know what version will be\n * employed before it receives the ServerHello.\n *\n * length:\n * The length (in bytes) of the following TLSPlaintext.fragment. The length\n * MUST NOT exceed 2^14 = 16384 bytes.\n *\n * fragment:\n * The application data. This data is transparent and treated as an\n * independent block to be dealt with by the higher-level protocol specified\n * by the type field.\n *\n * Implementations MUST NOT send zero-length fragments of Handshake, Alert, or\n * ChangeCipherSpec content types. Zero-length fragments of Application data\n * MAY be sent as they are potentially useful as a traffic analysis\n * countermeasure.\n *\n * Note: Data of different TLS record layer content types MAY be interleaved.\n * Application data is generally of lower precedence for transmission than\n * other content types. However, records MUST be delivered to the network in\n * the same order as they are protected by the record layer. Recipients MUST\n * receive and process interleaved application layer traffic during handshakes\n * subsequent to the first one on a connection.\n *\n * struct {\n * ContentType type; // same as TLSPlaintext.type\n * ProtocolVersion version;// same as TLSPlaintext.version\n * uint16 length;\n * opaque fragment[TLSCompressed.length];\n * } TLSCompressed;\n *\n * length:\n * The length (in bytes) of the following TLSCompressed.fragment.\n * The length MUST NOT exceed 2^14 + 1024.\n *\n * fragment:\n * The compressed form of TLSPlaintext.fragment.\n *\n * Note: A CompressionMethod.null operation is an identity operation; no fields\n * are altered. In this implementation, since no compression is supported,\n * uncompressed records are always the same as compressed records.\n *\n * Encryption Information:\n *\n * The encryption and MAC functions translate a TLSCompressed structure into a\n * TLSCiphertext. The decryption functions reverse the process. The MAC of the\n * record also includes a sequence number so that missing, extra, or repeated\n * messages are detectable.\n *\n * struct {\n * ContentType type;\n * ProtocolVersion version;\n * uint16 length;\n * select (SecurityParameters.cipher_type) {\n * case stream: GenericStreamCipher;\n * case block: GenericBlockCipher;\n * case aead: GenericAEADCipher;\n * } fragment;\n * } TLSCiphertext;\n *\n * type:\n * The type field is identical to TLSCompressed.type.\n *\n * version:\n * The version field is identical to TLSCompressed.version.\n *\n * length:\n * The length (in bytes) of the following TLSCiphertext.fragment.\n * The length MUST NOT exceed 2^14 + 2048.\n *\n * fragment:\n * The encrypted form of TLSCompressed.fragment, with the MAC.\n *\n * Note: Only CBC Block Ciphers are supported by this implementation.\n *\n * The TLSCompressed.fragment structures are converted to/from block\n * TLSCiphertext.fragment structures.\n *\n * struct {\n * opaque IV[SecurityParameters.record_iv_length];\n * block-ciphered struct {\n * opaque content[TLSCompressed.length];\n * opaque MAC[SecurityParameters.mac_length];\n * uint8 padding[GenericBlockCipher.padding_length];\n * uint8 padding_length;\n * };\n * } GenericBlockCipher;\n *\n * The MAC is generated as described in Section 6.2.3.1.\n *\n * IV:\n * The Initialization Vector (IV) SHOULD be chosen at random, and MUST be\n * unpredictable. Note that in versions of TLS prior to 1.1, there was no\n * IV field, and the last ciphertext block of the previous record (the \"CBC\n * residue\") was used as the IV. This was changed to prevent the attacks\n * described in [CBCATT]. For block ciphers, the IV length is of length\n * SecurityParameters.record_iv_length, which is equal to the\n * SecurityParameters.block_size.\n *\n * padding:\n * Padding that is added to force the length of the plaintext to be an\n * integral multiple of the block cipher's block length. The padding MAY be\n * any length up to 255 bytes, as long as it results in the\n * TLSCiphertext.length being an integral multiple of the block length.\n * Lengths longer than necessary might be desirable to frustrate attacks on\n * a protocol that are based on analysis of the lengths of exchanged\n * messages. Each uint8 in the padding data vector MUST be filled with the\n * padding length value. The receiver MUST check this padding and MUST use\n * the bad_record_mac alert to indicate padding errors.\n *\n * padding_length:\n * The padding length MUST be such that the total size of the\n * GenericBlockCipher structure is a multiple of the cipher's block length.\n * Legal values range from zero to 255, inclusive. This length specifies the\n * length of the padding field exclusive of the padding_length field itself.\n *\n * The encrypted data length (TLSCiphertext.length) is one more than the sum of\n * SecurityParameters.block_length, TLSCompressed.length,\n * SecurityParameters.mac_length, and padding_length.\n *\n * Example: If the block length is 8 bytes, the content length\n * (TLSCompressed.length) is 61 bytes, and the MAC length is 20 bytes, then the\n * length before padding is 82 bytes (this does not include the IV. Thus, the\n * padding length modulo 8 must be equal to 6 in order to make the total length\n * an even multiple of 8 bytes (the block length). The padding length can be\n * 6, 14, 22, and so on, through 254. If the padding length were the minimum\n * necessary, 6, the padding would be 6 bytes, each containing the value 6.\n * Thus, the last 8 octets of the GenericBlockCipher before block encryption\n * would be xx 06 06 06 06 06 06 06, where xx is the last octet of the MAC.\n *\n * Note: With block ciphers in CBC mode (Cipher Block Chaining), it is critical\n * that the entire plaintext of the record be known before any ciphertext is\n * transmitted. Otherwise, it is possible for the attacker to mount the attack\n * described in [CBCATT].\n *\n * Implementation note: Canvel et al. [CBCTIME] have demonstrated a timing\n * attack on CBC padding based on the time required to compute the MAC. In\n * order to defend against this attack, implementations MUST ensure that\n * record processing time is essentially the same whether or not the padding\n * is correct. In general, the best way to do this is to compute the MAC even\n * if the padding is incorrect, and only then reject the packet. For instance,\n * if the pad appears to be incorrect, the implementation might assume a\n * zero-length pad and then compute the MAC. This leaves a small timing\n * channel, since MAC performance depends, to some extent, on the size of the\n * data fragment, but it is not believed to be large enough to be exploitable,\n * due to the large block size of existing MACs and the small size of the\n * timing signal.\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./hmac');\nrequire('./md5');\nrequire('./pem');\nrequire('./pki');\nrequire('./random');\nrequire('./sha1');\nrequire('./util');\n\n/**\n * Generates pseudo random bytes by mixing the result of two hash functions,\n * MD5 and SHA-1.\n *\n * prf_TLS1(secret, label, seed) =\n * P_MD5(S1, label + seed) XOR P_SHA-1(S2, label + seed);\n *\n * Each P_hash function functions as follows:\n *\n * P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) +\n * HMAC_hash(secret, A(2) + seed) +\n * HMAC_hash(secret, A(3) + seed) + ...\n * A() is defined as:\n * A(0) = seed\n * A(i) = HMAC_hash(secret, A(i-1))\n *\n * The '+' operator denotes concatenation.\n *\n * As many iterations A(N) as are needed are performed to generate enough\n * pseudo random byte output. If an iteration creates more data than is\n * necessary, then it is truncated.\n *\n * Therefore:\n * A(1) = HMAC_hash(secret, A(0))\n * = HMAC_hash(secret, seed)\n * A(2) = HMAC_hash(secret, A(1))\n * = HMAC_hash(secret, HMAC_hash(secret, seed))\n *\n * Therefore:\n * P_hash(secret, seed) =\n * HMAC_hash(secret, HMAC_hash(secret, A(0)) + seed) +\n * HMAC_hash(secret, HMAC_hash(secret, A(1)) + seed) +\n * ...\n *\n * Therefore:\n * P_hash(secret, seed) =\n * HMAC_hash(secret, HMAC_hash(secret, seed) + seed) +\n * HMAC_hash(secret, HMAC_hash(secret, HMAC_hash(secret, seed)) + seed) +\n * ...\n *\n * @param secret the secret to use.\n * @param label the label to use.\n * @param seed the seed value to use.\n * @param length the number of bytes to generate.\n *\n * @return the pseudo random bytes in a byte buffer.\n */\nvar prf_TLS1 = function(secret, label, seed, length) {\n var rval = forge.util.createBuffer();\n\n /* For TLS 1.0, the secret is split in half, into two secrets of equal\n length. If the secret has an odd length then the last byte of the first\n half will be the same as the first byte of the second. The length of the\n two secrets is half of the secret rounded up. */\n var idx = (secret.length >> 1);\n var slen = idx + (secret.length & 1);\n var s1 = secret.substr(0, slen);\n var s2 = secret.substr(idx, slen);\n var ai = forge.util.createBuffer();\n var hmac = forge.hmac.create();\n seed = label + seed;\n\n // determine the number of iterations that must be performed to generate\n // enough output bytes, md5 creates 16 byte hashes, sha1 creates 20\n var md5itr = Math.ceil(length / 16);\n var sha1itr = Math.ceil(length / 20);\n\n // do md5 iterations\n hmac.start('MD5', s1);\n var md5bytes = forge.util.createBuffer();\n ai.putBytes(seed);\n for(var i = 0; i < md5itr; ++i) {\n // HMAC_hash(secret, A(i-1))\n hmac.start(null, null);\n hmac.update(ai.getBytes());\n ai.putBuffer(hmac.digest());\n\n // HMAC_hash(secret, A(i) + seed)\n hmac.start(null, null);\n hmac.update(ai.bytes() + seed);\n md5bytes.putBuffer(hmac.digest());\n }\n\n // do sha1 iterations\n hmac.start('SHA1', s2);\n var sha1bytes = forge.util.createBuffer();\n ai.clear();\n ai.putBytes(seed);\n for(var i = 0; i < sha1itr; ++i) {\n // HMAC_hash(secret, A(i-1))\n hmac.start(null, null);\n hmac.update(ai.getBytes());\n ai.putBuffer(hmac.digest());\n\n // HMAC_hash(secret, A(i) + seed)\n hmac.start(null, null);\n hmac.update(ai.bytes() + seed);\n sha1bytes.putBuffer(hmac.digest());\n }\n\n // XOR the md5 bytes with the sha1 bytes\n rval.putBytes(forge.util.xorBytes(\n md5bytes.getBytes(), sha1bytes.getBytes(), length));\n\n return rval;\n};\n\n/**\n * Generates pseudo random bytes using a SHA256 algorithm. For TLS 1.2.\n *\n * @param secret the secret to use.\n * @param label the label to use.\n * @param seed the seed value to use.\n * @param length the number of bytes to generate.\n *\n * @return the pseudo random bytes in a byte buffer.\n */\nvar prf_sha256 = function(secret, label, seed, length) {\n // FIXME: implement me for TLS 1.2\n};\n\n/**\n * Gets a MAC for a record using the SHA-1 hash algorithm.\n *\n * @param key the mac key.\n * @param state the sequence number (array of two 32-bit integers).\n * @param record the record.\n *\n * @return the sha-1 hash (20 bytes) for the given record.\n */\nvar hmac_sha1 = function(key, seqNum, record) {\n /* MAC is computed like so:\n HMAC_hash(\n key, seqNum +\n TLSCompressed.type +\n TLSCompressed.version +\n TLSCompressed.length +\n TLSCompressed.fragment)\n */\n var hmac = forge.hmac.create();\n hmac.start('SHA1', key);\n var b = forge.util.createBuffer();\n b.putInt32(seqNum[0]);\n b.putInt32(seqNum[1]);\n b.putByte(record.type);\n b.putByte(record.version.major);\n b.putByte(record.version.minor);\n b.putInt16(record.length);\n b.putBytes(record.fragment.bytes());\n hmac.update(b.getBytes());\n return hmac.digest().getBytes();\n};\n\n/**\n * Compresses the TLSPlaintext record into a TLSCompressed record using the\n * deflate algorithm.\n *\n * @param c the TLS connection.\n * @param record the TLSPlaintext record to compress.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nvar deflate = function(c, record, s) {\n var rval = false;\n\n try {\n var bytes = c.deflate(record.fragment.getBytes());\n record.fragment = forge.util.createBuffer(bytes);\n record.length = bytes.length;\n rval = true;\n } catch(ex) {\n // deflate error, fail out\n }\n\n return rval;\n};\n\n/**\n * Decompresses the TLSCompressed record into a TLSPlaintext record using the\n * deflate algorithm.\n *\n * @param c the TLS connection.\n * @param record the TLSCompressed record to decompress.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nvar inflate = function(c, record, s) {\n var rval = false;\n\n try {\n var bytes = c.inflate(record.fragment.getBytes());\n record.fragment = forge.util.createBuffer(bytes);\n record.length = bytes.length;\n rval = true;\n } catch(ex) {\n // inflate error, fail out\n }\n\n return rval;\n};\n\n/**\n * Reads a TLS variable-length vector from a byte buffer.\n *\n * Variable-length vectors are defined by specifying a subrange of legal\n * lengths, inclusively, using the notation . When these are\n * encoded, the actual length precedes the vector's contents in the byte\n * stream. The length will be in the form of a number consuming as many bytes\n * as required to hold the vector's specified maximum (ceiling) length. A\n * variable-length vector with an actual length field of zero is referred to\n * as an empty vector.\n *\n * @param b the byte buffer.\n * @param lenBytes the number of bytes required to store the length.\n *\n * @return the resulting byte buffer.\n */\nvar readVector = function(b, lenBytes) {\n var len = 0;\n switch(lenBytes) {\n case 1:\n len = b.getByte();\n break;\n case 2:\n len = b.getInt16();\n break;\n case 3:\n len = b.getInt24();\n break;\n case 4:\n len = b.getInt32();\n break;\n }\n\n // read vector bytes into a new buffer\n return forge.util.createBuffer(b.getBytes(len));\n};\n\n/**\n * Writes a TLS variable-length vector to a byte buffer.\n *\n * @param b the byte buffer.\n * @param lenBytes the number of bytes required to store the length.\n * @param v the byte buffer vector.\n */\nvar writeVector = function(b, lenBytes, v) {\n // encode length at the start of the vector, where the number of bytes for\n // the length is the maximum number of bytes it would take to encode the\n // vector's ceiling\n b.putInt(v.length(), lenBytes << 3);\n b.putBuffer(v);\n};\n\n/**\n * The tls implementation.\n */\nvar tls = {};\n\n/**\n * Version: TLS 1.2 = 3.3, TLS 1.1 = 3.2, TLS 1.0 = 3.1. Both TLS 1.1 and\n * TLS 1.2 were still too new (ie: openSSL didn't implement them) at the time\n * of this implementation so TLS 1.0 was implemented instead.\n */\ntls.Versions = {\n TLS_1_0: {major: 3, minor: 1},\n TLS_1_1: {major: 3, minor: 2},\n TLS_1_2: {major: 3, minor: 3}\n};\ntls.SupportedVersions = [\n tls.Versions.TLS_1_1,\n tls.Versions.TLS_1_0\n];\ntls.Version = tls.SupportedVersions[0];\n\n/**\n * Maximum fragment size. True maximum is 16384, but we fragment before that\n * to allow for unusual small increases during compression.\n */\ntls.MaxFragment = 16384 - 1024;\n\n/**\n * Whether this entity is considered the \"client\" or \"server\".\n * enum { server, client } ConnectionEnd;\n */\ntls.ConnectionEnd = {\n server: 0,\n client: 1\n};\n\n/**\n * Pseudo-random function algorithm used to generate keys from the master\n * secret.\n * enum { tls_prf_sha256 } PRFAlgorithm;\n */\ntls.PRFAlgorithm = {\n tls_prf_sha256: 0\n};\n\n/**\n * Bulk encryption algorithms.\n * enum { null, rc4, des3, aes } BulkCipherAlgorithm;\n */\ntls.BulkCipherAlgorithm = {\n none: null,\n rc4: 0,\n des3: 1,\n aes: 2\n};\n\n/**\n * Cipher types.\n * enum { stream, block, aead } CipherType;\n */\ntls.CipherType = {\n stream: 0,\n block: 1,\n aead: 2\n};\n\n/**\n * MAC (Message Authentication Code) algorithms.\n * enum { null, hmac_md5, hmac_sha1, hmac_sha256,\n * hmac_sha384, hmac_sha512} MACAlgorithm;\n */\ntls.MACAlgorithm = {\n none: null,\n hmac_md5: 0,\n hmac_sha1: 1,\n hmac_sha256: 2,\n hmac_sha384: 3,\n hmac_sha512: 4\n};\n\n/**\n * Compression algorithms.\n * enum { null(0), deflate(1), (255) } CompressionMethod;\n */\ntls.CompressionMethod = {\n none: 0,\n deflate: 1\n};\n\n/**\n * TLS record content types.\n * enum {\n * change_cipher_spec(20), alert(21), handshake(22),\n * application_data(23), (255)\n * } ContentType;\n */\ntls.ContentType = {\n change_cipher_spec: 20,\n alert: 21,\n handshake: 22,\n application_data: 23,\n heartbeat: 24\n};\n\n/**\n * TLS handshake types.\n * enum {\n * hello_request(0), client_hello(1), server_hello(2),\n * certificate(11), server_key_exchange (12),\n * certificate_request(13), server_hello_done(14),\n * certificate_verify(15), client_key_exchange(16),\n * finished(20), (255)\n * } HandshakeType;\n */\ntls.HandshakeType = {\n hello_request: 0,\n client_hello: 1,\n server_hello: 2,\n certificate: 11,\n server_key_exchange: 12,\n certificate_request: 13,\n server_hello_done: 14,\n certificate_verify: 15,\n client_key_exchange: 16,\n finished: 20\n};\n\n/**\n * TLS Alert Protocol.\n *\n * enum { warning(1), fatal(2), (255) } AlertLevel;\n *\n * enum {\n * close_notify(0),\n * unexpected_message(10),\n * bad_record_mac(20),\n * decryption_failed(21),\n * record_overflow(22),\n * decompression_failure(30),\n * handshake_failure(40),\n * bad_certificate(42),\n * unsupported_certificate(43),\n * certificate_revoked(44),\n * certificate_expired(45),\n * certificate_unknown(46),\n * illegal_parameter(47),\n * unknown_ca(48),\n * access_denied(49),\n * decode_error(50),\n * decrypt_error(51),\n * export_restriction(60),\n * protocol_version(70),\n * insufficient_security(71),\n * internal_error(80),\n * user_canceled(90),\n * no_renegotiation(100),\n * (255)\n * } AlertDescription;\n *\n * struct {\n * AlertLevel level;\n * AlertDescription description;\n * } Alert;\n */\ntls.Alert = {};\ntls.Alert.Level = {\n warning: 1,\n fatal: 2\n};\ntls.Alert.Description = {\n close_notify: 0,\n unexpected_message: 10,\n bad_record_mac: 20,\n decryption_failed: 21,\n record_overflow: 22,\n decompression_failure: 30,\n handshake_failure: 40,\n bad_certificate: 42,\n unsupported_certificate: 43,\n certificate_revoked: 44,\n certificate_expired: 45,\n certificate_unknown: 46,\n illegal_parameter: 47,\n unknown_ca: 48,\n access_denied: 49,\n decode_error: 50,\n decrypt_error: 51,\n export_restriction: 60,\n protocol_version: 70,\n insufficient_security: 71,\n internal_error: 80,\n user_canceled: 90,\n no_renegotiation: 100\n};\n\n/**\n * TLS Heartbeat Message types.\n * enum {\n * heartbeat_request(1),\n * heartbeat_response(2),\n * (255)\n * } HeartbeatMessageType;\n */\ntls.HeartbeatMessageType = {\n heartbeat_request: 1,\n heartbeat_response: 2\n};\n\n/**\n * Supported cipher suites.\n */\ntls.CipherSuites = {};\n\n/**\n * Gets a supported cipher suite from its 2 byte ID.\n *\n * @param twoBytes two bytes in a string.\n *\n * @return the matching supported cipher suite or null.\n */\ntls.getCipherSuite = function(twoBytes) {\n var rval = null;\n for(var key in tls.CipherSuites) {\n var cs = tls.CipherSuites[key];\n if(cs.id[0] === twoBytes.charCodeAt(0) &&\n cs.id[1] === twoBytes.charCodeAt(1)) {\n rval = cs;\n break;\n }\n }\n return rval;\n};\n\n/**\n * Called when an unexpected record is encountered.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleUnexpected = function(c, record) {\n // if connection is client and closed, ignore unexpected messages\n var ignore = (!c.open && c.entity === tls.ConnectionEnd.client);\n if(!ignore) {\n c.error(c, {\n message: 'Unexpected message. Received TLS record out of order.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unexpected_message\n }\n });\n }\n};\n\n/**\n * Called when a client receives a HelloRequest record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleHelloRequest = function(c, record, length) {\n // ignore renegotiation requests from the server during a handshake, but\n // if handshaking, send a warning alert that renegotation is denied\n if(!c.handshaking && c.handshakes > 0) {\n // send alert warning\n tls.queue(c, tls.createAlert(c, {\n level: tls.Alert.Level.warning,\n description: tls.Alert.Description.no_renegotiation\n }));\n tls.flush(c);\n }\n\n // continue\n c.process();\n};\n\n/**\n * Parses a hello message from a ClientHello or ServerHello record.\n *\n * @param record the record to parse.\n *\n * @return the parsed message.\n */\ntls.parseHelloMessage = function(c, record, length) {\n var msg = null;\n\n var client = (c.entity === tls.ConnectionEnd.client);\n\n // minimum of 38 bytes in message\n if(length < 38) {\n c.error(c, {\n message: client ?\n 'Invalid ServerHello message. Message too short.' :\n 'Invalid ClientHello message. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n } else {\n // use 'remaining' to calculate # of remaining bytes in the message\n var b = record.fragment;\n var remaining = b.length();\n msg = {\n version: {\n major: b.getByte(),\n minor: b.getByte()\n },\n random: forge.util.createBuffer(b.getBytes(32)),\n session_id: readVector(b, 1),\n extensions: []\n };\n if(client) {\n msg.cipher_suite = b.getBytes(2);\n msg.compression_method = b.getByte();\n } else {\n msg.cipher_suites = readVector(b, 2);\n msg.compression_methods = readVector(b, 1);\n }\n\n // read extensions if there are any bytes left in the message\n remaining = length - (remaining - b.length());\n if(remaining > 0) {\n // parse extensions\n var exts = readVector(b, 2);\n while(exts.length() > 0) {\n msg.extensions.push({\n type: [exts.getByte(), exts.getByte()],\n data: readVector(exts, 2)\n });\n }\n\n // TODO: make extension support modular\n if(!client) {\n for(var i = 0; i < msg.extensions.length; ++i) {\n var ext = msg.extensions[i];\n\n // support SNI extension\n if(ext.type[0] === 0x00 && ext.type[1] === 0x00) {\n // get server name list\n var snl = readVector(ext.data, 2);\n while(snl.length() > 0) {\n // read server name type\n var snType = snl.getByte();\n\n // only HostName type (0x00) is known, break out if\n // another type is detected\n if(snType !== 0x00) {\n break;\n }\n\n // add host name to server name list\n c.session.extensions.server_name.serverNameList.push(\n readVector(snl, 2).getBytes());\n }\n }\n }\n }\n }\n\n // version already set, do not allow version change\n if(c.session.version) {\n if(msg.version.major !== c.session.version.major ||\n msg.version.minor !== c.session.version.minor) {\n return c.error(c, {\n message: 'TLS version change is disallowed during renegotiation.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n }\n\n // get the chosen (ServerHello) cipher suite\n if(client) {\n // FIXME: should be checking configured acceptable cipher suites\n c.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite);\n } else {\n // get a supported preferred (ClientHello) cipher suite\n // choose the first supported cipher suite\n var tmp = forge.util.createBuffer(msg.cipher_suites.bytes());\n while(tmp.length() > 0) {\n // FIXME: should be checking configured acceptable suites\n // cipher suites take up 2 bytes\n c.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2));\n if(c.session.cipherSuite !== null) {\n break;\n }\n }\n }\n\n // cipher suite not supported\n if(c.session.cipherSuite === null) {\n return c.error(c, {\n message: 'No cipher suites in common.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.handshake_failure\n },\n cipherSuite: forge.util.bytesToHex(msg.cipher_suite)\n });\n }\n\n // TODO: handle compression methods\n if(client) {\n c.session.compressionMethod = msg.compression_method;\n } else {\n // no compression\n c.session.compressionMethod = tls.CompressionMethod.none;\n }\n }\n\n return msg;\n};\n\n/**\n * Creates security parameters for the given connection based on the given\n * hello message.\n *\n * @param c the TLS connection.\n * @param msg the hello message.\n */\ntls.createSecurityParameters = function(c, msg) {\n /* Note: security params are from TLS 1.2, some values like prf_algorithm\n are ignored for TLS 1.0/1.1 and the builtin as specified in the spec is\n used. */\n\n // TODO: handle other options from server when more supported\n\n // get client and server randoms\n var client = (c.entity === tls.ConnectionEnd.client);\n var msgRandom = msg.random.bytes();\n var cRandom = client ? c.session.sp.client_random : msgRandom;\n var sRandom = client ? msgRandom : tls.createRandom().getBytes();\n\n // create new security parameters\n c.session.sp = {\n entity: c.entity,\n prf_algorithm: tls.PRFAlgorithm.tls_prf_sha256,\n bulk_cipher_algorithm: null,\n cipher_type: null,\n enc_key_length: null,\n block_length: null,\n fixed_iv_length: null,\n record_iv_length: null,\n mac_algorithm: null,\n mac_length: null,\n mac_key_length: null,\n compression_algorithm: c.session.compressionMethod,\n pre_master_secret: null,\n master_secret: null,\n client_random: cRandom,\n server_random: sRandom\n };\n};\n\n/**\n * Called when a client receives a ServerHello record.\n *\n * When a ServerHello message will be sent:\n * The server will send this message in response to a client hello message\n * when it was able to find an acceptable set of algorithms. If it cannot\n * find such a match, it will respond with a handshake failure alert.\n *\n * uint24 length;\n * struct {\n * ProtocolVersion server_version;\n * Random random;\n * SessionID session_id;\n * CipherSuite cipher_suite;\n * CompressionMethod compression_method;\n * select(extensions_present) {\n * case false:\n * struct {};\n * case true:\n * Extension extensions<0..2^16-1>;\n * };\n * } ServerHello;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerHello = function(c, record, length) {\n var msg = tls.parseHelloMessage(c, record, length);\n if(c.fail) {\n return;\n }\n\n // ensure server version is compatible\n if(msg.version.minor <= c.version.minor) {\n c.version.minor = msg.version.minor;\n } else {\n return c.error(c, {\n message: 'Incompatible TLS version.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n\n // indicate session version has been set\n c.session.version = c.version;\n\n // get the session ID from the message\n var sessionId = msg.session_id.bytes();\n\n // if the session ID is not blank and matches the cached one, resume\n // the session\n if(sessionId.length > 0 && sessionId === c.session.id) {\n // resuming session, expect a ChangeCipherSpec next\n c.expect = SCC;\n c.session.resuming = true;\n\n // get new server random\n c.session.sp.server_random = msg.random.bytes();\n } else {\n // not resuming, expect a server Certificate message next\n c.expect = SCE;\n c.session.resuming = false;\n\n // create new security parameters\n tls.createSecurityParameters(c, msg);\n }\n\n // set new session ID\n c.session.id = sessionId;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a server receives a ClientHello record.\n *\n * When a ClientHello message will be sent:\n * When a client first connects to a server it is required to send the\n * client hello as its first message. The client can also send a client\n * hello in response to a hello request or on its own initiative in order\n * to renegotiate the security parameters in an existing connection.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleClientHello = function(c, record, length) {\n var msg = tls.parseHelloMessage(c, record, length);\n if(c.fail) {\n return;\n }\n\n // get the session ID from the message\n var sessionId = msg.session_id.bytes();\n\n // see if the given session ID is in the cache\n var session = null;\n if(c.sessionCache) {\n session = c.sessionCache.getSession(sessionId);\n if(session === null) {\n // session ID not found\n sessionId = '';\n } else if(session.version.major !== msg.version.major ||\n session.version.minor > msg.version.minor) {\n // if session version is incompatible with client version, do not resume\n session = null;\n sessionId = '';\n }\n }\n\n // no session found to resume, generate a new session ID\n if(sessionId.length === 0) {\n sessionId = forge.random.getBytes(32);\n }\n\n // update session\n c.session.id = sessionId;\n c.session.clientHelloVersion = msg.version;\n c.session.sp = {};\n if(session) {\n // use version and security parameters from resumed session\n c.version = c.session.version = session.version;\n c.session.sp = session.sp;\n } else {\n // use highest compatible minor version\n var version;\n for(var i = 1; i < tls.SupportedVersions.length; ++i) {\n version = tls.SupportedVersions[i];\n if(version.minor <= msg.version.minor) {\n break;\n }\n }\n c.version = {major: version.major, minor: version.minor};\n c.session.version = c.version;\n }\n\n // if a session is set, resume it\n if(session !== null) {\n // resuming session, expect a ChangeCipherSpec next\n c.expect = CCC;\n c.session.resuming = true;\n\n // get new client random\n c.session.sp.client_random = msg.random.bytes();\n } else {\n // not resuming, expect a Certificate or ClientKeyExchange\n c.expect = (c.verifyClient !== false) ? CCE : CKE;\n c.session.resuming = false;\n\n // create new security parameters\n tls.createSecurityParameters(c, msg);\n }\n\n // connection now open\n c.open = true;\n\n // queue server hello\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerHello(c)\n }));\n\n if(c.session.resuming) {\n // queue change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // create pending state\n c.state.pending = tls.createConnectionState(c);\n\n // change current write state to pending write state\n c.state.current.write = c.state.pending.write;\n\n // queue finished\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n } else {\n // queue server certificate\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificate(c)\n }));\n\n if(!c.fail) {\n // queue server key exchange\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerKeyExchange(c)\n }));\n\n // request client certificate if set\n if(c.verifyClient !== false) {\n // queue certificate request\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificateRequest(c)\n }));\n }\n\n // queue server hello done\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerHelloDone(c)\n }));\n }\n }\n\n // send records\n tls.flush(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a Certificate record.\n *\n * When this message will be sent:\n * The server must send a certificate whenever the agreed-upon key exchange\n * method is not an anonymous one. This message will always immediately\n * follow the server hello message.\n *\n * Meaning of this message:\n * The certificate type must be appropriate for the selected cipher suite's\n * key exchange algorithm, and is generally an X.509v3 certificate. It must\n * contain a key which matches the key exchange method, as follows. Unless\n * otherwise specified, the signing algorithm for the certificate must be\n * the same as the algorithm for the certificate key. Unless otherwise\n * specified, the public key may be of any length.\n *\n * opaque ASN.1Cert<1..2^24-1>;\n * struct {\n * ASN.1Cert certificate_list<1..2^24-1>;\n * } Certificate;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificate = function(c, record, length) {\n // minimum of 3 bytes in message\n if(length < 3) {\n return c.error(c, {\n message: 'Invalid Certificate message. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n var b = record.fragment;\n var msg = {\n certificate_list: readVector(b, 3)\n };\n\n /* The sender's certificate will be first in the list (chain), each\n subsequent one that follows will certify the previous one, but root\n certificates (self-signed) that specify the certificate authority may\n be omitted under the assumption that clients must already possess it. */\n var cert, asn1;\n var certs = [];\n try {\n while(msg.certificate_list.length() > 0) {\n // each entry in msg.certificate_list is a vector with 3 len bytes\n cert = readVector(msg.certificate_list, 3);\n asn1 = forge.asn1.fromDer(cert);\n cert = forge.pki.certificateFromAsn1(asn1, true);\n certs.push(cert);\n }\n } catch(ex) {\n return c.error(c, {\n message: 'Could not parse certificate list.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n }\n });\n }\n\n // ensure at least 1 certificate was provided if in client-mode\n // or if verifyClient was set to true to require a certificate\n // (as opposed to 'optional')\n var client = (c.entity === tls.ConnectionEnd.client);\n if((client || c.verifyClient === true) && certs.length === 0) {\n // error, no certificate\n c.error(c, {\n message: client ?\n 'No server certificate provided.' :\n 'No client certificate provided.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n } else if(certs.length === 0) {\n // no certs to verify\n // expect a ServerKeyExchange or ClientKeyExchange message next\n c.expect = client ? SKE : CKE;\n } else {\n // save certificate in session\n if(client) {\n c.session.serverCertificate = certs[0];\n } else {\n c.session.clientCertificate = certs[0];\n }\n\n if(tls.verifyCertificateChain(c, certs)) {\n // expect a ServerKeyExchange or ClientKeyExchange message next\n c.expect = client ? SKE : CKE;\n }\n }\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ServerKeyExchange record.\n *\n * When this message will be sent:\n * This message will be sent immediately after the server certificate\n * message (or the server hello message, if this is an anonymous\n * negotiation).\n *\n * The server key exchange message is sent by the server only when the\n * server certificate message (if sent) does not contain enough data to\n * allow the client to exchange a premaster secret.\n *\n * Meaning of this message:\n * This message conveys cryptographic information to allow the client to\n * communicate the premaster secret: either an RSA public key to encrypt\n * the premaster secret with, or a Diffie-Hellman public key with which the\n * client can complete a key exchange (with the result being the premaster\n * secret.)\n *\n * enum {\n * dhe_dss, dhe_rsa, dh_anon, rsa, dh_dss, dh_rsa\n * } KeyExchangeAlgorithm;\n *\n * struct {\n * opaque dh_p<1..2^16-1>;\n * opaque dh_g<1..2^16-1>;\n * opaque dh_Ys<1..2^16-1>;\n * } ServerDHParams;\n *\n * struct {\n * select(KeyExchangeAlgorithm) {\n * case dh_anon:\n * ServerDHParams params;\n * case dhe_dss:\n * case dhe_rsa:\n * ServerDHParams params;\n * digitally-signed struct {\n * opaque client_random[32];\n * opaque server_random[32];\n * ServerDHParams params;\n * } signed_params;\n * case rsa:\n * case dh_dss:\n * case dh_rsa:\n * struct {};\n * };\n * } ServerKeyExchange;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerKeyExchange = function(c, record, length) {\n // this implementation only supports RSA, no Diffie-Hellman support\n // so any length > 0 is invalid\n if(length > 0) {\n return c.error(c, {\n message: 'Invalid key parameters. Only RSA is supported.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unsupported_certificate\n }\n });\n }\n\n // expect an optional CertificateRequest message next\n c.expect = SCR;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ClientKeyExchange record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleClientKeyExchange = function(c, record, length) {\n // this implementation only supports RSA, no Diffie-Hellman support\n // so any length < 48 is invalid\n if(length < 48) {\n return c.error(c, {\n message: 'Invalid key parameters. Only RSA is supported.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unsupported_certificate\n }\n });\n }\n\n var b = record.fragment;\n var msg = {\n enc_pre_master_secret: readVector(b, 2).getBytes()\n };\n\n // do rsa decryption\n var privateKey = null;\n if(c.getPrivateKey) {\n try {\n privateKey = c.getPrivateKey(c, c.session.serverCertificate);\n privateKey = forge.pki.privateKeyFromPem(privateKey);\n } catch(ex) {\n c.error(c, {\n message: 'Could not get private key.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n }\n\n if(privateKey === null) {\n return c.error(c, {\n message: 'No private key set.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n\n try {\n // decrypt 48-byte pre-master secret\n var sp = c.session.sp;\n sp.pre_master_secret = privateKey.decrypt(msg.enc_pre_master_secret);\n\n // ensure client hello version matches first 2 bytes\n var version = c.session.clientHelloVersion;\n if(version.major !== sp.pre_master_secret.charCodeAt(0) ||\n version.minor !== sp.pre_master_secret.charCodeAt(1)) {\n // error, do not send alert (see BLEI attack below)\n throw new Error('TLS version rollback attack detected.');\n }\n } catch(ex) {\n /* Note: Daniel Bleichenbacher [BLEI] can be used to attack a\n TLS server which is using PKCS#1 encoded RSA, so instead of\n failing here, we generate 48 random bytes and use that as\n the pre-master secret. */\n sp.pre_master_secret = forge.random.getBytes(48);\n }\n\n // expect a CertificateVerify message if a Certificate was received that\n // does not have fixed Diffie-Hellman params, otherwise expect\n // ChangeCipherSpec\n c.expect = CCC;\n if(c.session.clientCertificate !== null) {\n // only RSA support, so expect CertificateVerify\n // TODO: support Diffie-Hellman\n c.expect = CCV;\n }\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a CertificateRequest record.\n *\n * When this message will be sent:\n * A non-anonymous server can optionally request a certificate from the\n * client, if appropriate for the selected cipher suite. This message, if\n * sent, will immediately follow the Server Key Exchange message (if it is\n * sent; otherwise, the Server Certificate message).\n *\n * enum {\n * rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4),\n * rsa_ephemeral_dh_RESERVED(5), dss_ephemeral_dh_RESERVED(6),\n * fortezza_dms_RESERVED(20), (255)\n * } ClientCertificateType;\n *\n * opaque DistinguishedName<1..2^16-1>;\n *\n * struct {\n * ClientCertificateType certificate_types<1..2^8-1>;\n * SignatureAndHashAlgorithm supported_signature_algorithms<2^16-1>;\n * DistinguishedName certificate_authorities<0..2^16-1>;\n * } CertificateRequest;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificateRequest = function(c, record, length) {\n // minimum of 3 bytes in message\n if(length < 3) {\n return c.error(c, {\n message: 'Invalid CertificateRequest. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // TODO: TLS 1.2+ has different format including\n // SignatureAndHashAlgorithm after cert types\n var b = record.fragment;\n var msg = {\n certificate_types: readVector(b, 1),\n certificate_authorities: readVector(b, 2)\n };\n\n // save certificate request in session\n c.session.certificateRequest = msg;\n\n // expect a ServerHelloDone message next\n c.expect = SHD;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a server receives a CertificateVerify record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificateVerify = function(c, record, length) {\n if(length < 2) {\n return c.error(c, {\n message: 'Invalid CertificateVerify. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // rewind to get full bytes for message so it can be manually\n // digested below (special case for CertificateVerify messages because\n // they must be digested *after* handling as opposed to all others)\n var b = record.fragment;\n b.read -= 4;\n var msgBytes = b.bytes();\n b.read += 4;\n\n var msg = {\n signature: readVector(b, 2).getBytes()\n };\n\n // TODO: add support for DSA\n\n // generate data to verify\n var verify = forge.util.createBuffer();\n verify.putBuffer(c.session.md5.digest());\n verify.putBuffer(c.session.sha1.digest());\n verify = verify.getBytes();\n\n try {\n var cert = c.session.clientCertificate;\n /*b = forge.pki.rsa.decrypt(\n msg.signature, cert.publicKey, true, verify.length);\n if(b !== verify) {*/\n if(!cert.publicKey.verify(verify, msg.signature, 'NONE')) {\n throw new Error('CertificateVerify signature does not match.');\n }\n\n // digest message now that it has been handled\n c.session.md5.update(msgBytes);\n c.session.sha1.update(msgBytes);\n } catch(ex) {\n return c.error(c, {\n message: 'Bad signature in CertificateVerify.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.handshake_failure\n }\n });\n }\n\n // expect ChangeCipherSpec\n c.expect = CCC;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ServerHelloDone record.\n *\n * When this message will be sent:\n * The server hello done message is sent by the server to indicate the end\n * of the server hello and associated messages. After sending this message\n * the server will wait for a client response.\n *\n * Meaning of this message:\n * This message means that the server is done sending messages to support\n * the key exchange, and the client can proceed with its phase of the key\n * exchange.\n *\n * Upon receipt of the server hello done message the client should verify\n * that the server provided a valid certificate if required and check that\n * the server hello parameters are acceptable.\n *\n * struct {} ServerHelloDone;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerHelloDone = function(c, record, length) {\n // len must be 0 bytes\n if(length > 0) {\n return c.error(c, {\n message: 'Invalid ServerHelloDone message. Invalid length.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.record_overflow\n }\n });\n }\n\n if(c.serverCertificate === null) {\n // no server certificate was provided\n var error = {\n message: 'No server certificate provided. Not enough security.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.insufficient_security\n }\n };\n\n // call application callback\n var depth = 0;\n var ret = c.verify(c, error.alert.description, depth, []);\n if(ret !== true) {\n // check for custom alert info\n if(ret || ret === 0) {\n // set custom message and alert description\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.alert) {\n error.alert.description = ret.alert;\n }\n } else if(typeof ret === 'number') {\n // set custom alert description\n error.alert.description = ret;\n }\n }\n\n // send error\n return c.error(c, error);\n }\n }\n\n // create client certificate message if requested\n if(c.session.certificateRequest !== null) {\n record = tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificate(c)\n });\n tls.queue(c, record);\n }\n\n // create client key exchange message\n record = tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createClientKeyExchange(c)\n });\n tls.queue(c, record);\n\n // expect no messages until the following callback has been called\n c.expect = SER;\n\n // create callback to handle client signature (for client-certs)\n var callback = function(c, signature) {\n if(c.session.certificateRequest !== null &&\n c.session.clientCertificate !== null) {\n // create certificate verify message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificateVerify(c, signature)\n }));\n }\n\n // create change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // create pending state\n c.state.pending = tls.createConnectionState(c);\n\n // change current write state to pending write state\n c.state.current.write = c.state.pending.write;\n\n // create finished message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n\n // expect a server ChangeCipherSpec message next\n c.expect = SCC;\n\n // send records\n tls.flush(c);\n\n // continue\n c.process();\n };\n\n // if there is no certificate request or no client certificate, do\n // callback immediately\n if(c.session.certificateRequest === null ||\n c.session.clientCertificate === null) {\n return callback(c, null);\n }\n\n // otherwise get the client signature\n tls.getClientSignature(c, callback);\n};\n\n/**\n * Called when a ChangeCipherSpec record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleChangeCipherSpec = function(c, record) {\n if(record.fragment.getByte() !== 0x01) {\n return c.error(c, {\n message: 'Invalid ChangeCipherSpec message received.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // create pending state if:\n // 1. Resuming session in client mode OR\n // 2. NOT resuming session in server mode\n var client = (c.entity === tls.ConnectionEnd.client);\n if((c.session.resuming && client) || (!c.session.resuming && !client)) {\n c.state.pending = tls.createConnectionState(c);\n }\n\n // change current read state to pending read state\n c.state.current.read = c.state.pending.read;\n\n // clear pending state if:\n // 1. NOT resuming session in client mode OR\n // 2. resuming a session in server mode\n if((!c.session.resuming && client) || (c.session.resuming && !client)) {\n c.state.pending = null;\n }\n\n // expect a Finished record next\n c.expect = client ? SFI : CFI;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Finished record is received.\n *\n * When this message will be sent:\n * A finished message is always sent immediately after a change\n * cipher spec message to verify that the key exchange and\n * authentication processes were successful. It is essential that a\n * change cipher spec message be received between the other\n * handshake messages and the Finished message.\n *\n * Meaning of this message:\n * The finished message is the first protected with the just-\n * negotiated algorithms, keys, and secrets. Recipients of finished\n * messages must verify that the contents are correct. Once a side\n * has sent its Finished message and received and validated the\n * Finished message from its peer, it may begin to send and receive\n * application data over the connection.\n *\n * struct {\n * opaque verify_data[verify_data_length];\n * } Finished;\n *\n * verify_data\n * PRF(master_secret, finished_label, Hash(handshake_messages))\n * [0..verify_data_length-1];\n *\n * finished_label\n * For Finished messages sent by the client, the string\n * \"client finished\". For Finished messages sent by the server, the\n * string \"server finished\".\n *\n * verify_data_length depends on the cipher suite. If it is not specified\n * by the cipher suite, then it is 12. Versions of TLS < 1.2 always used\n * 12 bytes.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleFinished = function(c, record, length) {\n // rewind to get full bytes for message so it can be manually\n // digested below (special case for Finished messages because they\n // must be digested *after* handling as opposed to all others)\n var b = record.fragment;\n b.read -= 4;\n var msgBytes = b.bytes();\n b.read += 4;\n\n // message contains only verify_data\n var vd = record.fragment.getBytes();\n\n // ensure verify data is correct\n b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n\n // set label based on entity type\n var client = (c.entity === tls.ConnectionEnd.client);\n var label = client ? 'server finished' : 'client finished';\n\n // TODO: determine prf function and verify length for TLS 1.2\n var sp = c.session.sp;\n var vdl = 12;\n var prf = prf_TLS1;\n b = prf(sp.master_secret, label, b.getBytes(), vdl);\n if(b.getBytes() !== vd) {\n return c.error(c, {\n message: 'Invalid verify_data in Finished message.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.decrypt_error\n }\n });\n }\n\n // digest finished message now that it has been handled\n c.session.md5.update(msgBytes);\n c.session.sha1.update(msgBytes);\n\n // resuming session as client or NOT resuming session as server\n if((c.session.resuming && client) || (!c.session.resuming && !client)) {\n // create change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // change current write state to pending write state, clear pending\n c.state.current.write = c.state.pending.write;\n c.state.pending = null;\n\n // create finished message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n }\n\n // expect application data next\n c.expect = client ? SAD : CAD;\n\n // handshake complete\n c.handshaking = false;\n ++c.handshakes;\n\n // save access to peer certificate\n c.peerCertificate = client ?\n c.session.serverCertificate : c.session.clientCertificate;\n\n // send records\n tls.flush(c);\n\n // now connected\n c.isConnected = true;\n c.connected(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when an Alert record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleAlert = function(c, record) {\n // read alert\n var b = record.fragment;\n var alert = {\n level: b.getByte(),\n description: b.getByte()\n };\n\n // TODO: consider using a table?\n // get appropriate message\n var msg;\n switch(alert.description) {\n case tls.Alert.Description.close_notify:\n msg = 'Connection closed.';\n break;\n case tls.Alert.Description.unexpected_message:\n msg = 'Unexpected message.';\n break;\n case tls.Alert.Description.bad_record_mac:\n msg = 'Bad record MAC.';\n break;\n case tls.Alert.Description.decryption_failed:\n msg = 'Decryption failed.';\n break;\n case tls.Alert.Description.record_overflow:\n msg = 'Record overflow.';\n break;\n case tls.Alert.Description.decompression_failure:\n msg = 'Decompression failed.';\n break;\n case tls.Alert.Description.handshake_failure:\n msg = 'Handshake failure.';\n break;\n case tls.Alert.Description.bad_certificate:\n msg = 'Bad certificate.';\n break;\n case tls.Alert.Description.unsupported_certificate:\n msg = 'Unsupported certificate.';\n break;\n case tls.Alert.Description.certificate_revoked:\n msg = 'Certificate revoked.';\n break;\n case tls.Alert.Description.certificate_expired:\n msg = 'Certificate expired.';\n break;\n case tls.Alert.Description.certificate_unknown:\n msg = 'Certificate unknown.';\n break;\n case tls.Alert.Description.illegal_parameter:\n msg = 'Illegal parameter.';\n break;\n case tls.Alert.Description.unknown_ca:\n msg = 'Unknown certificate authority.';\n break;\n case tls.Alert.Description.access_denied:\n msg = 'Access denied.';\n break;\n case tls.Alert.Description.decode_error:\n msg = 'Decode error.';\n break;\n case tls.Alert.Description.decrypt_error:\n msg = 'Decrypt error.';\n break;\n case tls.Alert.Description.export_restriction:\n msg = 'Export restriction.';\n break;\n case tls.Alert.Description.protocol_version:\n msg = 'Unsupported protocol version.';\n break;\n case tls.Alert.Description.insufficient_security:\n msg = 'Insufficient security.';\n break;\n case tls.Alert.Description.internal_error:\n msg = 'Internal error.';\n break;\n case tls.Alert.Description.user_canceled:\n msg = 'User canceled.';\n break;\n case tls.Alert.Description.no_renegotiation:\n msg = 'Renegotiation not supported.';\n break;\n default:\n msg = 'Unknown error.';\n break;\n }\n\n // close connection on close_notify, not an error\n if(alert.description === tls.Alert.Description.close_notify) {\n return c.close();\n }\n\n // call error handler\n c.error(c, {\n message: msg,\n send: false,\n // origin is the opposite end\n origin: (c.entity === tls.ConnectionEnd.client) ? 'server' : 'client',\n alert: alert\n });\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Handshake record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleHandshake = function(c, record) {\n // get the handshake type and message length\n var b = record.fragment;\n var type = b.getByte();\n var length = b.getInt24();\n\n // see if the record fragment doesn't yet contain the full message\n if(length > b.length()) {\n // cache the record, clear its fragment, and reset the buffer read\n // pointer before the type and length were read\n c.fragmented = record;\n record.fragment = forge.util.createBuffer();\n b.read -= 4;\n\n // continue\n return c.process();\n }\n\n // full message now available, clear cache, reset read pointer to\n // before type and length\n c.fragmented = null;\n b.read -= 4;\n\n // save the handshake bytes for digestion after handler is found\n // (include type and length of handshake msg)\n var bytes = b.bytes(length + 4);\n\n // restore read pointer\n b.read += 4;\n\n // handle expected message\n if(type in hsTable[c.entity][c.expect]) {\n // initialize server session\n if(c.entity === tls.ConnectionEnd.server && !c.open && !c.fail) {\n c.handshaking = true;\n c.session = {\n version: null,\n extensions: {\n server_name: {\n serverNameList: []\n }\n },\n cipherSuite: null,\n compressionMethod: null,\n serverCertificate: null,\n clientCertificate: null,\n md5: forge.md.md5.create(),\n sha1: forge.md.sha1.create()\n };\n }\n\n /* Update handshake messages digest. Finished and CertificateVerify\n messages are not digested here. They can't be digested as part of\n the verify_data that they contain. These messages are manually\n digested in their handlers. HelloRequest messages are simply never\n included in the handshake message digest according to spec. */\n if(type !== tls.HandshakeType.hello_request &&\n type !== tls.HandshakeType.certificate_verify &&\n type !== tls.HandshakeType.finished) {\n c.session.md5.update(bytes);\n c.session.sha1.update(bytes);\n }\n\n // handle specific handshake type record\n hsTable[c.entity][c.expect][type](c, record, length);\n } else {\n // unexpected record\n tls.handleUnexpected(c, record);\n }\n};\n\n/**\n * Called when an ApplicationData record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleApplicationData = function(c, record) {\n // buffer data, notify that its ready\n c.data.putBuffer(record.fragment);\n c.dataReady(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Heartbeat record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleHeartbeat = function(c, record) {\n // get the heartbeat type and payload\n var b = record.fragment;\n var type = b.getByte();\n var length = b.getInt16();\n var payload = b.getBytes(length);\n\n if(type === tls.HeartbeatMessageType.heartbeat_request) {\n // discard request during handshake or if length is too large\n if(c.handshaking || length > payload.length) {\n // continue\n return c.process();\n }\n // retransmit payload\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.heartbeat,\n data: tls.createHeartbeat(\n tls.HeartbeatMessageType.heartbeat_response, payload)\n }));\n tls.flush(c);\n } else if(type === tls.HeartbeatMessageType.heartbeat_response) {\n // check payload against expected payload, discard heartbeat if no match\n if(payload !== c.expectedHeartbeatPayload) {\n // continue\n return c.process();\n }\n\n // notify that a valid heartbeat was received\n if(c.heartbeatReceived) {\n c.heartbeatReceived(c, forge.util.createBuffer(payload));\n }\n }\n\n // continue\n c.process();\n};\n\n/**\n * The transistional state tables for receiving TLS records. It maps the\n * current TLS engine state and a received record to a function to handle the\n * record and update the state.\n *\n * For instance, if the current state is SHE, then the TLS engine is expecting\n * a ServerHello record. Once a record is received, the handler function is\n * looked up using the state SHE and the record's content type.\n *\n * The resulting function will either be an error handler or a record handler.\n * The function will take whatever action is appropriate and update the state\n * for the next record.\n *\n * The states are all based on possible server record types. Note that the\n * client will never specifically expect to receive a HelloRequest or an alert\n * from the server so there is no state that reflects this. These messages may\n * occur at any time.\n *\n * There are two tables for mapping states because there is a second tier of\n * types for handshake messages. Once a record with a content type of handshake\n * is received, the handshake record handler will look up the handshake type in\n * the secondary map to get its appropriate handler.\n *\n * Valid message orders are as follows:\n *\n * =======================FULL HANDSHAKE======================\n * Client Server\n *\n * ClientHello -------->\n * ServerHello\n * Certificate*\n * ServerKeyExchange*\n * CertificateRequest*\n * <-------- ServerHelloDone\n * Certificate*\n * ClientKeyExchange\n * CertificateVerify*\n * [ChangeCipherSpec]\n * Finished -------->\n * [ChangeCipherSpec]\n * <-------- Finished\n * Application Data <-------> Application Data\n *\n * =====================SESSION RESUMPTION=====================\n * Client Server\n *\n * ClientHello -------->\n * ServerHello\n * [ChangeCipherSpec]\n * <-------- Finished\n * [ChangeCipherSpec]\n * Finished -------->\n * Application Data <-------> Application Data\n */\n// client expect states (indicate which records are expected to be received)\nvar SHE = 0; // rcv server hello\nvar SCE = 1; // rcv server certificate\nvar SKE = 2; // rcv server key exchange\nvar SCR = 3; // rcv certificate request\nvar SHD = 4; // rcv server hello done\nvar SCC = 5; // rcv change cipher spec\nvar SFI = 6; // rcv finished\nvar SAD = 7; // rcv application data\nvar SER = 8; // not expecting any messages at this point\n\n// server expect states\nvar CHE = 0; // rcv client hello\nvar CCE = 1; // rcv client certificate\nvar CKE = 2; // rcv client key exchange\nvar CCV = 3; // rcv certificate verify\nvar CCC = 4; // rcv change cipher spec\nvar CFI = 5; // rcv finished\nvar CAD = 6; // rcv application data\nvar CER = 7; // not expecting any messages at this point\n\n// map client current expect state and content type to function\nvar __ = tls.handleUnexpected;\nvar R0 = tls.handleChangeCipherSpec;\nvar R1 = tls.handleAlert;\nvar R2 = tls.handleHandshake;\nvar R3 = tls.handleApplicationData;\nvar R4 = tls.handleHeartbeat;\nvar ctTable = [];\nctTable[tls.ConnectionEnd.client] = [\n// CC,AL,HS,AD,HB\n/*SHE*/[__,R1,R2,__,R4],\n/*SCE*/[__,R1,R2,__,R4],\n/*SKE*/[__,R1,R2,__,R4],\n/*SCR*/[__,R1,R2,__,R4],\n/*SHD*/[__,R1,R2,__,R4],\n/*SCC*/[R0,R1,__,__,R4],\n/*SFI*/[__,R1,R2,__,R4],\n/*SAD*/[__,R1,R2,R3,R4],\n/*SER*/[__,R1,R2,__,R4]\n];\n\n// map server current expect state and content type to function\nctTable[tls.ConnectionEnd.server] = [\n// CC,AL,HS,AD\n/*CHE*/[__,R1,R2,__,R4],\n/*CCE*/[__,R1,R2,__,R4],\n/*CKE*/[__,R1,R2,__,R4],\n/*CCV*/[__,R1,R2,__,R4],\n/*CCC*/[R0,R1,__,__,R4],\n/*CFI*/[__,R1,R2,__,R4],\n/*CAD*/[__,R1,R2,R3,R4],\n/*CER*/[__,R1,R2,__,R4]\n];\n\n// map client current expect state and handshake type to function\nvar H0 = tls.handleHelloRequest;\nvar H1 = tls.handleServerHello;\nvar H2 = tls.handleCertificate;\nvar H3 = tls.handleServerKeyExchange;\nvar H4 = tls.handleCertificateRequest;\nvar H5 = tls.handleServerHelloDone;\nvar H6 = tls.handleFinished;\nvar hsTable = [];\nhsTable[tls.ConnectionEnd.client] = [\n// HR,01,SH,03,04,05,06,07,08,09,10,SC,SK,CR,HD,15,CK,17,18,19,FI\n/*SHE*/[__,__,H1,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SCE*/[H0,__,__,__,__,__,__,__,__,__,__,H2,H3,H4,H5,__,__,__,__,__,__],\n/*SKE*/[H0,__,__,__,__,__,__,__,__,__,__,__,H3,H4,H5,__,__,__,__,__,__],\n/*SCR*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,H4,H5,__,__,__,__,__,__],\n/*SHD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,H5,__,__,__,__,__,__],\n/*SCC*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SFI*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],\n/*SAD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SER*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]\n];\n\n// map server current expect state and handshake type to function\n// Note: CAD[CH] does not map to FB because renegotation is prohibited\nvar H7 = tls.handleClientHello;\nvar H8 = tls.handleClientKeyExchange;\nvar H9 = tls.handleCertificateVerify;\nhsTable[tls.ConnectionEnd.server] = [\n// 01,CH,02,03,04,05,06,07,08,09,10,CC,12,13,14,CV,CK,17,18,19,FI\n/*CHE*/[__,H7,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CCE*/[__,__,__,__,__,__,__,__,__,__,__,H2,__,__,__,__,__,__,__,__,__],\n/*CKE*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H8,__,__,__,__],\n/*CCV*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H9,__,__,__,__,__],\n/*CCC*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CFI*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],\n/*CAD*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CER*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]\n];\n\n/**\n * Generates the master_secret and keys using the given security parameters.\n *\n * The security parameters for a TLS connection state are defined as such:\n *\n * struct {\n * ConnectionEnd entity;\n * PRFAlgorithm prf_algorithm;\n * BulkCipherAlgorithm bulk_cipher_algorithm;\n * CipherType cipher_type;\n * uint8 enc_key_length;\n * uint8 block_length;\n * uint8 fixed_iv_length;\n * uint8 record_iv_length;\n * MACAlgorithm mac_algorithm;\n * uint8 mac_length;\n * uint8 mac_key_length;\n * CompressionMethod compression_algorithm;\n * opaque master_secret[48];\n * opaque client_random[32];\n * opaque server_random[32];\n * } SecurityParameters;\n *\n * Note that this definition is from TLS 1.2. In TLS 1.0 some of these\n * parameters are ignored because, for instance, the PRFAlgorithm is a\n * builtin-fixed algorithm combining iterations of MD5 and SHA-1 in TLS 1.0.\n *\n * The Record Protocol requires an algorithm to generate keys required by the\n * current connection state.\n *\n * The master secret is expanded into a sequence of secure bytes, which is then\n * split to a client write MAC key, a server write MAC key, a client write\n * encryption key, and a server write encryption key. In TLS 1.0 a client write\n * IV and server write IV are also generated. Each of these is generated from\n * the byte sequence in that order. Unused values are empty. In TLS 1.2, some\n * AEAD ciphers may additionally require a client write IV and a server write\n * IV (see Section 6.2.3.3).\n *\n * When keys, MAC keys, and IVs are generated, the master secret is used as an\n * entropy source.\n *\n * To generate the key material, compute:\n *\n * master_secret = PRF(pre_master_secret, \"master secret\",\n * ClientHello.random + ServerHello.random)\n *\n * key_block = PRF(SecurityParameters.master_secret,\n * \"key expansion\",\n * SecurityParameters.server_random +\n * SecurityParameters.client_random);\n *\n * until enough output has been generated. Then, the key_block is\n * partitioned as follows:\n *\n * client_write_MAC_key[SecurityParameters.mac_key_length]\n * server_write_MAC_key[SecurityParameters.mac_key_length]\n * client_write_key[SecurityParameters.enc_key_length]\n * server_write_key[SecurityParameters.enc_key_length]\n * client_write_IV[SecurityParameters.fixed_iv_length]\n * server_write_IV[SecurityParameters.fixed_iv_length]\n *\n * In TLS 1.2, the client_write_IV and server_write_IV are only generated for\n * implicit nonce techniques as described in Section 3.2.1 of [AEAD]. This\n * implementation uses TLS 1.0 so IVs are generated.\n *\n * Implementation note: The currently defined cipher suite which requires the\n * most material is AES_256_CBC_SHA256. It requires 2 x 32 byte keys and 2 x 32\n * byte MAC keys, for a total 128 bytes of key material. In TLS 1.0 it also\n * requires 2 x 16 byte IVs, so it actually takes 160 bytes of key material.\n *\n * @param c the connection.\n * @param sp the security parameters to use.\n *\n * @return the security keys.\n */\ntls.generateKeys = function(c, sp) {\n // TLS_RSA_WITH_AES_128_CBC_SHA (required to be compliant with TLS 1.2) &\n // TLS_RSA_WITH_AES_256_CBC_SHA are the only cipher suites implemented\n // at present\n\n // TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA is required to be compliant with\n // TLS 1.0 but we don't care right now because AES is better and we have\n // an implementation for it\n\n // TODO: TLS 1.2 implementation\n /*\n // determine the PRF\n var prf;\n switch(sp.prf_algorithm) {\n case tls.PRFAlgorithm.tls_prf_sha256:\n prf = prf_sha256;\n break;\n default:\n // should never happen\n throw new Error('Invalid PRF');\n }\n */\n\n // TLS 1.0/1.1 implementation\n var prf = prf_TLS1;\n\n // concatenate server and client random\n var random = sp.client_random + sp.server_random;\n\n // only create master secret if session is new\n if(!c.session.resuming) {\n // create master secret, clean up pre-master secret\n sp.master_secret = prf(\n sp.pre_master_secret, 'master secret', random, 48).bytes();\n sp.pre_master_secret = null;\n }\n\n // generate the amount of key material needed\n random = sp.server_random + sp.client_random;\n var length = 2 * sp.mac_key_length + 2 * sp.enc_key_length;\n\n // include IV for TLS/1.0\n var tls10 = (c.version.major === tls.Versions.TLS_1_0.major &&\n c.version.minor === tls.Versions.TLS_1_0.minor);\n if(tls10) {\n length += 2 * sp.fixed_iv_length;\n }\n var km = prf(sp.master_secret, 'key expansion', random, length);\n\n // split the key material into the MAC and encryption keys\n var rval = {\n client_write_MAC_key: km.getBytes(sp.mac_key_length),\n server_write_MAC_key: km.getBytes(sp.mac_key_length),\n client_write_key: km.getBytes(sp.enc_key_length),\n server_write_key: km.getBytes(sp.enc_key_length)\n };\n\n // include TLS 1.0 IVs\n if(tls10) {\n rval.client_write_IV = km.getBytes(sp.fixed_iv_length);\n rval.server_write_IV = km.getBytes(sp.fixed_iv_length);\n }\n\n return rval;\n};\n\n/**\n * Creates a new initialized TLS connection state. A connection state has\n * a read mode and a write mode.\n *\n * compression state:\n * The current state of the compression algorithm.\n *\n * cipher state:\n * The current state of the encryption algorithm. This will consist of the\n * scheduled key for that connection. For stream ciphers, this will also\n * contain whatever state information is necessary to allow the stream to\n * continue to encrypt or decrypt data.\n *\n * MAC key:\n * The MAC key for the connection.\n *\n * sequence number:\n * Each connection state contains a sequence number, which is maintained\n * separately for read and write states. The sequence number MUST be set to\n * zero whenever a connection state is made the active state. Sequence\n * numbers are of type uint64 and may not exceed 2^64-1. Sequence numbers do\n * not wrap. If a TLS implementation would need to wrap a sequence number,\n * it must renegotiate instead. A sequence number is incremented after each\n * record: specifically, the first record transmitted under a particular\n * connection state MUST use sequence number 0.\n *\n * @param c the connection.\n *\n * @return the new initialized TLS connection state.\n */\ntls.createConnectionState = function(c) {\n var client = (c.entity === tls.ConnectionEnd.client);\n\n var createMode = function() {\n var mode = {\n // two 32-bit numbers, first is most significant\n sequenceNumber: [0, 0],\n macKey: null,\n macLength: 0,\n macFunction: null,\n cipherState: null,\n cipherFunction: function(record) {return true;},\n compressionState: null,\n compressFunction: function(record) {return true;},\n updateSequenceNumber: function() {\n if(mode.sequenceNumber[1] === 0xFFFFFFFF) {\n mode.sequenceNumber[1] = 0;\n ++mode.sequenceNumber[0];\n } else {\n ++mode.sequenceNumber[1];\n }\n }\n };\n return mode;\n };\n var state = {\n read: createMode(),\n write: createMode()\n };\n\n // update function in read mode will decrypt then decompress a record\n state.read.update = function(c, record) {\n if(!state.read.cipherFunction(record, state.read)) {\n c.error(c, {\n message: 'Could not decrypt record or bad MAC.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n // doesn't matter if decryption failed or MAC was\n // invalid, return the same error so as not to reveal\n // which one occurred\n description: tls.Alert.Description.bad_record_mac\n }\n });\n } else if(!state.read.compressFunction(c, record, state.read)) {\n c.error(c, {\n message: 'Could not decompress record.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.decompression_failure\n }\n });\n }\n return !c.fail;\n };\n\n // update function in write mode will compress then encrypt a record\n state.write.update = function(c, record) {\n if(!state.write.compressFunction(c, record, state.write)) {\n // error, but do not send alert since it would require\n // compression as well\n c.error(c, {\n message: 'Could not compress record.',\n send: false,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n } else if(!state.write.cipherFunction(record, state.write)) {\n // error, but do not send alert since it would require\n // encryption as well\n c.error(c, {\n message: 'Could not encrypt record.',\n send: false,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n return !c.fail;\n };\n\n // handle security parameters\n if(c.session) {\n var sp = c.session.sp;\n c.session.cipherSuite.initSecurityParameters(sp);\n\n // generate keys\n sp.keys = tls.generateKeys(c, sp);\n state.read.macKey = client ?\n sp.keys.server_write_MAC_key : sp.keys.client_write_MAC_key;\n state.write.macKey = client ?\n sp.keys.client_write_MAC_key : sp.keys.server_write_MAC_key;\n\n // cipher suite setup\n c.session.cipherSuite.initConnectionState(state, c, sp);\n\n // compression setup\n switch(sp.compression_algorithm) {\n case tls.CompressionMethod.none:\n break;\n case tls.CompressionMethod.deflate:\n state.read.compressFunction = inflate;\n state.write.compressFunction = deflate;\n break;\n default:\n throw new Error('Unsupported compression algorithm.');\n }\n }\n\n return state;\n};\n\n/**\n * Creates a Random structure.\n *\n * struct {\n * uint32 gmt_unix_time;\n * opaque random_bytes[28];\n * } Random;\n *\n * gmt_unix_time:\n * The current time and date in standard UNIX 32-bit format (seconds since\n * the midnight starting Jan 1, 1970, UTC, ignoring leap seconds) according\n * to the sender's internal clock. Clocks are not required to be set\n * correctly by the basic TLS protocol; higher-level or application\n * protocols may define additional requirements. Note that, for historical\n * reasons, the data element is named using GMT, the predecessor of the\n * current worldwide time base, UTC.\n * random_bytes:\n * 28 bytes generated by a secure random number generator.\n *\n * @return the Random structure as a byte array.\n */\ntls.createRandom = function() {\n // get UTC milliseconds\n var d = new Date();\n var utc = +d + d.getTimezoneOffset() * 60000;\n var rval = forge.util.createBuffer();\n rval.putInt32(utc);\n rval.putBytes(forge.random.getBytes(28));\n return rval;\n};\n\n/**\n * Creates a TLS record with the given type and data.\n *\n * @param c the connection.\n * @param options:\n * type: the record type.\n * data: the plain text data in a byte buffer.\n *\n * @return the created record.\n */\ntls.createRecord = function(c, options) {\n if(!options.data) {\n return null;\n }\n var record = {\n type: options.type,\n version: {\n major: c.version.major,\n minor: c.version.minor\n },\n length: options.data.length(),\n fragment: options.data\n };\n return record;\n};\n\n/**\n * Creates a TLS alert record.\n *\n * @param c the connection.\n * @param alert:\n * level: the TLS alert level.\n * description: the TLS alert description.\n *\n * @return the created alert record.\n */\ntls.createAlert = function(c, alert) {\n var b = forge.util.createBuffer();\n b.putByte(alert.level);\n b.putByte(alert.description);\n return tls.createRecord(c, {\n type: tls.ContentType.alert,\n data: b\n });\n};\n\n/* The structure of a TLS handshake message.\n *\n * struct {\n * HandshakeType msg_type; // handshake type\n * uint24 length; // bytes in message\n * select(HandshakeType) {\n * case hello_request: HelloRequest;\n * case client_hello: ClientHello;\n * case server_hello: ServerHello;\n * case certificate: Certificate;\n * case server_key_exchange: ServerKeyExchange;\n * case certificate_request: CertificateRequest;\n * case server_hello_done: ServerHelloDone;\n * case certificate_verify: CertificateVerify;\n * case client_key_exchange: ClientKeyExchange;\n * case finished: Finished;\n * } body;\n * } Handshake;\n */\n\n/**\n * Creates a ClientHello message.\n *\n * opaque SessionID<0..32>;\n * enum { null(0), deflate(1), (255) } CompressionMethod;\n * uint8 CipherSuite[2];\n *\n * struct {\n * ProtocolVersion client_version;\n * Random random;\n * SessionID session_id;\n * CipherSuite cipher_suites<2..2^16-2>;\n * CompressionMethod compression_methods<1..2^8-1>;\n * select(extensions_present) {\n * case false:\n * struct {};\n * case true:\n * Extension extensions<0..2^16-1>;\n * };\n * } ClientHello;\n *\n * The extension format for extended client hellos and server hellos is:\n *\n * struct {\n * ExtensionType extension_type;\n * opaque extension_data<0..2^16-1>;\n * } Extension;\n *\n * Here:\n *\n * - \"extension_type\" identifies the particular extension type.\n * - \"extension_data\" contains information specific to the particular\n * extension type.\n *\n * The extension types defined in this document are:\n *\n * enum {\n * server_name(0), max_fragment_length(1),\n * client_certificate_url(2), trusted_ca_keys(3),\n * truncated_hmac(4), status_request(5), (65535)\n * } ExtensionType;\n *\n * @param c the connection.\n *\n * @return the ClientHello byte buffer.\n */\ntls.createClientHello = function(c) {\n // save hello version\n c.session.clientHelloVersion = {\n major: c.version.major,\n minor: c.version.minor\n };\n\n // create supported cipher suites\n var cipherSuites = forge.util.createBuffer();\n for(var i = 0; i < c.cipherSuites.length; ++i) {\n var cs = c.cipherSuites[i];\n cipherSuites.putByte(cs.id[0]);\n cipherSuites.putByte(cs.id[1]);\n }\n var cSuites = cipherSuites.length();\n\n // create supported compression methods, null always supported, but\n // also support deflate if connection has inflate and deflate methods\n var compressionMethods = forge.util.createBuffer();\n compressionMethods.putByte(tls.CompressionMethod.none);\n // FIXME: deflate support disabled until issues with raw deflate data\n // without zlib headers are resolved\n /*\n if(c.inflate !== null && c.deflate !== null) {\n compressionMethods.putByte(tls.CompressionMethod.deflate);\n }\n */\n var cMethods = compressionMethods.length();\n\n // create TLS SNI (server name indication) extension if virtual host\n // has been specified, see RFC 3546\n var extensions = forge.util.createBuffer();\n if(c.virtualHost) {\n // create extension struct\n var ext = forge.util.createBuffer();\n ext.putByte(0x00); // type server_name (ExtensionType is 2 bytes)\n ext.putByte(0x00);\n\n /* In order to provide the server name, clients MAY include an\n * extension of type \"server_name\" in the (extended) client hello.\n * The \"extension_data\" field of this extension SHALL contain\n * \"ServerNameList\" where:\n *\n * struct {\n * NameType name_type;\n * select(name_type) {\n * case host_name: HostName;\n * } name;\n * } ServerName;\n *\n * enum {\n * host_name(0), (255)\n * } NameType;\n *\n * opaque HostName<1..2^16-1>;\n *\n * struct {\n * ServerName server_name_list<1..2^16-1>\n * } ServerNameList;\n */\n var serverName = forge.util.createBuffer();\n serverName.putByte(0x00); // type host_name\n writeVector(serverName, 2, forge.util.createBuffer(c.virtualHost));\n\n // ServerNameList is in extension_data\n var snList = forge.util.createBuffer();\n writeVector(snList, 2, serverName);\n writeVector(ext, 2, snList);\n extensions.putBuffer(ext);\n }\n var extLength = extensions.length();\n if(extLength > 0) {\n // add extension vector length\n extLength += 2;\n }\n\n // determine length of the handshake message\n // cipher suites and compression methods size will need to be\n // updated if more get added to the list\n var sessionId = c.session.id;\n var length =\n sessionId.length + 1 + // session ID vector\n 2 + // version (major + minor)\n 4 + 28 + // random time and random bytes\n 2 + cSuites + // cipher suites vector\n 1 + cMethods + // compression methods vector\n extLength; // extensions vector\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.client_hello);\n rval.putInt24(length); // handshake length\n rval.putByte(c.version.major); // major version\n rval.putByte(c.version.minor); // minor version\n rval.putBytes(c.session.sp.client_random); // random time + bytes\n writeVector(rval, 1, forge.util.createBuffer(sessionId));\n writeVector(rval, 2, cipherSuites);\n writeVector(rval, 1, compressionMethods);\n if(extLength > 0) {\n writeVector(rval, 2, extensions);\n }\n return rval;\n};\n\n/**\n * Creates a ServerHello message.\n *\n * @param c the connection.\n *\n * @return the ServerHello byte buffer.\n */\ntls.createServerHello = function(c) {\n // determine length of the handshake message\n var sessionId = c.session.id;\n var length =\n sessionId.length + 1 + // session ID vector\n 2 + // version (major + minor)\n 4 + 28 + // random time and random bytes\n 2 + // chosen cipher suite\n 1; // chosen compression method\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.server_hello);\n rval.putInt24(length); // handshake length\n rval.putByte(c.version.major); // major version\n rval.putByte(c.version.minor); // minor version\n rval.putBytes(c.session.sp.server_random); // random time + bytes\n writeVector(rval, 1, forge.util.createBuffer(sessionId));\n rval.putByte(c.session.cipherSuite.id[0]);\n rval.putByte(c.session.cipherSuite.id[1]);\n rval.putByte(c.session.compressionMethod);\n return rval;\n};\n\n/**\n * Creates a Certificate message.\n *\n * When this message will be sent:\n * This is the first message the client can send after receiving a server\n * hello done message and the first message the server can send after\n * sending a ServerHello. This client message is only sent if the server\n * requests a certificate. If no suitable certificate is available, the\n * client should send a certificate message containing no certificates. If\n * client authentication is required by the server for the handshake to\n * continue, it may respond with a fatal handshake failure alert.\n *\n * opaque ASN.1Cert<1..2^24-1>;\n *\n * struct {\n * ASN.1Cert certificate_list<0..2^24-1>;\n * } Certificate;\n *\n * @param c the connection.\n *\n * @return the Certificate byte buffer.\n */\ntls.createCertificate = function(c) {\n // TODO: check certificate request to ensure types are supported\n\n // get a certificate (a certificate as a PEM string)\n var client = (c.entity === tls.ConnectionEnd.client);\n var cert = null;\n if(c.getCertificate) {\n var hint;\n if(client) {\n hint = c.session.certificateRequest;\n } else {\n hint = c.session.extensions.server_name.serverNameList;\n }\n cert = c.getCertificate(c, hint);\n }\n\n // buffer to hold certificate list\n var certList = forge.util.createBuffer();\n if(cert !== null) {\n try {\n // normalize cert to a chain of certificates\n if(!forge.util.isArray(cert)) {\n cert = [cert];\n }\n var asn1 = null;\n for(var i = 0; i < cert.length; ++i) {\n var msg = forge.pem.decode(cert[i])[0];\n if(msg.type !== 'CERTIFICATE' &&\n msg.type !== 'X509 CERTIFICATE' &&\n msg.type !== 'TRUSTED CERTIFICATE') {\n var error = new Error('Could not convert certificate from PEM; PEM ' +\n 'header type is not \"CERTIFICATE\", \"X509 CERTIFICATE\", or ' +\n '\"TRUSTED CERTIFICATE\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert certificate from PEM; PEM is encrypted.');\n }\n\n var der = forge.util.createBuffer(msg.body);\n if(asn1 === null) {\n asn1 = forge.asn1.fromDer(der.bytes(), false);\n }\n\n // certificate entry is itself a vector with 3 length bytes\n var certBuffer = forge.util.createBuffer();\n writeVector(certBuffer, 3, der);\n\n // add cert vector to cert list vector\n certList.putBuffer(certBuffer);\n }\n\n // save certificate\n cert = forge.pki.certificateFromAsn1(asn1);\n if(client) {\n c.session.clientCertificate = cert;\n } else {\n c.session.serverCertificate = cert;\n }\n } catch(ex) {\n return c.error(c, {\n message: 'Could not send certificate list.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n }\n });\n }\n }\n\n // determine length of the handshake message\n var length = 3 + certList.length(); // cert list vector\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate);\n rval.putInt24(length);\n writeVector(rval, 3, certList);\n return rval;\n};\n\n/**\n * Creates a ClientKeyExchange message.\n *\n * When this message will be sent:\n * This message is always sent by the client. It will immediately follow the\n * client certificate message, if it is sent. Otherwise it will be the first\n * message sent by the client after it receives the server hello done\n * message.\n *\n * Meaning of this message:\n * With this message, the premaster secret is set, either though direct\n * transmission of the RSA-encrypted secret, or by the transmission of\n * Diffie-Hellman parameters which will allow each side to agree upon the\n * same premaster secret. When the key exchange method is DH_RSA or DH_DSS,\n * client certification has been requested, and the client was able to\n * respond with a certificate which contained a Diffie-Hellman public key\n * whose parameters (group and generator) matched those specified by the\n * server in its certificate, this message will not contain any data.\n *\n * Meaning of this message:\n * If RSA is being used for key agreement and authentication, the client\n * generates a 48-byte premaster secret, encrypts it using the public key\n * from the server's certificate or the temporary RSA key provided in a\n * server key exchange message, and sends the result in an encrypted\n * premaster secret message. This structure is a variant of the client\n * key exchange message, not a message in itself.\n *\n * struct {\n * select(KeyExchangeAlgorithm) {\n * case rsa: EncryptedPreMasterSecret;\n * case diffie_hellman: ClientDiffieHellmanPublic;\n * } exchange_keys;\n * } ClientKeyExchange;\n *\n * struct {\n * ProtocolVersion client_version;\n * opaque random[46];\n * } PreMasterSecret;\n *\n * struct {\n * public-key-encrypted PreMasterSecret pre_master_secret;\n * } EncryptedPreMasterSecret;\n *\n * A public-key-encrypted element is encoded as a vector <0..2^16-1>.\n *\n * @param c the connection.\n *\n * @return the ClientKeyExchange byte buffer.\n */\ntls.createClientKeyExchange = function(c) {\n // create buffer to encrypt\n var b = forge.util.createBuffer();\n\n // add highest client-supported protocol to help server avoid version\n // rollback attacks\n b.putByte(c.session.clientHelloVersion.major);\n b.putByte(c.session.clientHelloVersion.minor);\n\n // generate and add 46 random bytes\n b.putBytes(forge.random.getBytes(46));\n\n // save pre-master secret\n var sp = c.session.sp;\n sp.pre_master_secret = b.getBytes();\n\n // RSA-encrypt the pre-master secret\n var key = c.session.serverCertificate.publicKey;\n b = key.encrypt(sp.pre_master_secret);\n\n /* Note: The encrypted pre-master secret will be stored in a\n public-key-encrypted opaque vector that has the length prefixed using\n 2 bytes, so include those 2 bytes in the handshake message length. This\n is done as a minor optimization instead of calling writeVector(). */\n\n // determine length of the handshake message\n var length = b.length + 2;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.client_key_exchange);\n rval.putInt24(length);\n // add vector length bytes\n rval.putInt16(b.length);\n rval.putBytes(b);\n return rval;\n};\n\n/**\n * Creates a ServerKeyExchange message.\n *\n * @param c the connection.\n *\n * @return the ServerKeyExchange byte buffer.\n */\ntls.createServerKeyExchange = function(c) {\n // this implementation only supports RSA, no Diffie-Hellman support,\n // so this record is empty\n\n // determine length of the handshake message\n var length = 0;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n if(length > 0) {\n rval.putByte(tls.HandshakeType.server_key_exchange);\n rval.putInt24(length);\n }\n return rval;\n};\n\n/**\n * Gets the signed data used to verify a client-side certificate. See\n * tls.createCertificateVerify() for details.\n *\n * @param c the connection.\n * @param callback the callback to call once the signed data is ready.\n */\ntls.getClientSignature = function(c, callback) {\n // generate data to RSA encrypt\n var b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n b = b.getBytes();\n\n // create default signing function as necessary\n c.getSignature = c.getSignature || function(c, b, callback) {\n // do rsa encryption, call callback\n var privateKey = null;\n if(c.getPrivateKey) {\n try {\n privateKey = c.getPrivateKey(c, c.session.clientCertificate);\n privateKey = forge.pki.privateKeyFromPem(privateKey);\n } catch(ex) {\n c.error(c, {\n message: 'Could not get private key.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n }\n if(privateKey === null) {\n c.error(c, {\n message: 'No private key set.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n } else {\n b = privateKey.sign(b, null);\n }\n callback(c, b);\n };\n\n // get client signature\n c.getSignature(c, b, callback);\n};\n\n/**\n * Creates a CertificateVerify message.\n *\n * Meaning of this message:\n * This structure conveys the client's Diffie-Hellman public value\n * (Yc) if it was not already included in the client's certificate.\n * The encoding used for Yc is determined by the enumerated\n * PublicValueEncoding. This structure is a variant of the client\n * key exchange message, not a message in itself.\n *\n * When this message will be sent:\n * This message is used to provide explicit verification of a client\n * certificate. This message is only sent following a client\n * certificate that has signing capability (i.e. all certificates\n * except those containing fixed Diffie-Hellman parameters). When\n * sent, it will immediately follow the client key exchange message.\n *\n * struct {\n * Signature signature;\n * } CertificateVerify;\n *\n * CertificateVerify.signature.md5_hash\n * MD5(handshake_messages);\n *\n * Certificate.signature.sha_hash\n * SHA(handshake_messages);\n *\n * Here handshake_messages refers to all handshake messages sent or\n * received starting at client hello up to but not including this\n * message, including the type and length fields of the handshake\n * messages.\n *\n * select(SignatureAlgorithm) {\n * case anonymous: struct { };\n * case rsa:\n * digitally-signed struct {\n * opaque md5_hash[16];\n * opaque sha_hash[20];\n * };\n * case dsa:\n * digitally-signed struct {\n * opaque sha_hash[20];\n * };\n * } Signature;\n *\n * In digital signing, one-way hash functions are used as input for a\n * signing algorithm. A digitally-signed element is encoded as an opaque\n * vector <0..2^16-1>, where the length is specified by the signing\n * algorithm and key.\n *\n * In RSA signing, a 36-byte structure of two hashes (one SHA and one\n * MD5) is signed (encrypted with the private key). It is encoded with\n * PKCS #1 block type 0 or type 1 as described in [PKCS1].\n *\n * In DSS, the 20 bytes of the SHA hash are run directly through the\n * Digital Signing Algorithm with no additional hashing.\n *\n * @param c the connection.\n * @param signature the signature to include in the message.\n *\n * @return the CertificateVerify byte buffer.\n */\ntls.createCertificateVerify = function(c, signature) {\n /* Note: The signature will be stored in a \"digitally-signed\" opaque\n vector that has the length prefixed using 2 bytes, so include those\n 2 bytes in the handshake message length. This is done as a minor\n optimization instead of calling writeVector(). */\n\n // determine length of the handshake message\n var length = signature.length + 2;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate_verify);\n rval.putInt24(length);\n // add vector length bytes\n rval.putInt16(signature.length);\n rval.putBytes(signature);\n return rval;\n};\n\n/**\n * Creates a CertificateRequest message.\n *\n * @param c the connection.\n *\n * @return the CertificateRequest byte buffer.\n */\ntls.createCertificateRequest = function(c) {\n // TODO: support other certificate types\n var certTypes = forge.util.createBuffer();\n\n // common RSA certificate type\n certTypes.putByte(0x01);\n\n // add distinguished names from CA store\n var cAs = forge.util.createBuffer();\n for(var key in c.caStore.certs) {\n var cert = c.caStore.certs[key];\n var dn = forge.pki.distinguishedNameToAsn1(cert.subject);\n var byteBuffer = forge.asn1.toDer(dn);\n cAs.putInt16(byteBuffer.length());\n cAs.putBuffer(byteBuffer);\n }\n\n // TODO: TLS 1.2+ has a different format\n\n // determine length of the handshake message\n var length =\n 1 + certTypes.length() +\n 2 + cAs.length();\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate_request);\n rval.putInt24(length);\n writeVector(rval, 1, certTypes);\n writeVector(rval, 2, cAs);\n return rval;\n};\n\n/**\n * Creates a ServerHelloDone message.\n *\n * @param c the connection.\n *\n * @return the ServerHelloDone byte buffer.\n */\ntls.createServerHelloDone = function(c) {\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.server_hello_done);\n rval.putInt24(0);\n return rval;\n};\n\n/**\n * Creates a ChangeCipherSpec message.\n *\n * The change cipher spec protocol exists to signal transitions in\n * ciphering strategies. The protocol consists of a single message,\n * which is encrypted and compressed under the current (not the pending)\n * connection state. The message consists of a single byte of value 1.\n *\n * struct {\n * enum { change_cipher_spec(1), (255) } type;\n * } ChangeCipherSpec;\n *\n * @return the ChangeCipherSpec byte buffer.\n */\ntls.createChangeCipherSpec = function() {\n var rval = forge.util.createBuffer();\n rval.putByte(0x01);\n return rval;\n};\n\n/**\n * Creates a Finished message.\n *\n * struct {\n * opaque verify_data[12];\n * } Finished;\n *\n * verify_data\n * PRF(master_secret, finished_label, MD5(handshake_messages) +\n * SHA-1(handshake_messages)) [0..11];\n *\n * finished_label\n * For Finished messages sent by the client, the string \"client\n * finished\". For Finished messages sent by the server, the\n * string \"server finished\".\n *\n * handshake_messages\n * All of the data from all handshake messages up to but not\n * including this message. This is only data visible at the\n * handshake layer and does not include record layer headers.\n * This is the concatenation of all the Handshake structures as\n * defined in 7.4 exchanged thus far.\n *\n * @param c the connection.\n *\n * @return the Finished byte buffer.\n */\ntls.createFinished = function(c) {\n // generate verify_data\n var b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n\n // TODO: determine prf function and verify length for TLS 1.2\n var client = (c.entity === tls.ConnectionEnd.client);\n var sp = c.session.sp;\n var vdl = 12;\n var prf = prf_TLS1;\n var label = client ? 'client finished' : 'server finished';\n b = prf(sp.master_secret, label, b.getBytes(), vdl);\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.finished);\n rval.putInt24(b.length());\n rval.putBuffer(b);\n return rval;\n};\n\n/**\n * Creates a HeartbeatMessage (See RFC 6520).\n *\n * struct {\n * HeartbeatMessageType type;\n * uint16 payload_length;\n * opaque payload[HeartbeatMessage.payload_length];\n * opaque padding[padding_length];\n * } HeartbeatMessage;\n *\n * The total length of a HeartbeatMessage MUST NOT exceed 2^14 or\n * max_fragment_length when negotiated as defined in [RFC6066].\n *\n * type: The message type, either heartbeat_request or heartbeat_response.\n *\n * payload_length: The length of the payload.\n *\n * payload: The payload consists of arbitrary content.\n *\n * padding: The padding is random content that MUST be ignored by the\n * receiver. The length of a HeartbeatMessage is TLSPlaintext.length\n * for TLS and DTLSPlaintext.length for DTLS. Furthermore, the\n * length of the type field is 1 byte, and the length of the\n * payload_length is 2. Therefore, the padding_length is\n * TLSPlaintext.length - payload_length - 3 for TLS and\n * DTLSPlaintext.length - payload_length - 3 for DTLS. The\n * padding_length MUST be at least 16.\n *\n * The sender of a HeartbeatMessage MUST use a random padding of at\n * least 16 bytes. The padding of a received HeartbeatMessage message\n * MUST be ignored.\n *\n * If the payload_length of a received HeartbeatMessage is too large,\n * the received HeartbeatMessage MUST be discarded silently.\n *\n * @param c the connection.\n * @param type the tls.HeartbeatMessageType.\n * @param payload the heartbeat data to send as the payload.\n * @param [payloadLength] the payload length to use, defaults to the\n * actual payload length.\n *\n * @return the HeartbeatRequest byte buffer.\n */\ntls.createHeartbeat = function(type, payload, payloadLength) {\n if(typeof payloadLength === 'undefined') {\n payloadLength = payload.length;\n }\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(type); // heartbeat message type\n rval.putInt16(payloadLength); // payload length\n rval.putBytes(payload); // payload\n // padding\n var plaintextLength = rval.length();\n var paddingLength = Math.max(16, plaintextLength - payloadLength - 3);\n rval.putBytes(forge.random.getBytes(paddingLength));\n return rval;\n};\n\n/**\n * Fragments, compresses, encrypts, and queues a record for delivery.\n *\n * @param c the connection.\n * @param record the record to queue.\n */\ntls.queue = function(c, record) {\n // error during record creation\n if(!record) {\n return;\n }\n\n if(record.fragment.length() === 0) {\n if(record.type === tls.ContentType.handshake ||\n record.type === tls.ContentType.alert ||\n record.type === tls.ContentType.change_cipher_spec) {\n // Empty handshake, alert of change cipher spec messages are not allowed per the TLS specification and should not be sent.\n return;\n }\n }\n\n // if the record is a handshake record, update handshake hashes\n if(record.type === tls.ContentType.handshake) {\n var bytes = record.fragment.bytes();\n c.session.md5.update(bytes);\n c.session.sha1.update(bytes);\n bytes = null;\n }\n\n // handle record fragmentation\n var records;\n if(record.fragment.length() <= tls.MaxFragment) {\n records = [record];\n } else {\n // fragment data as long as it is too long\n records = [];\n var data = record.fragment.bytes();\n while(data.length > tls.MaxFragment) {\n records.push(tls.createRecord(c, {\n type: record.type,\n data: forge.util.createBuffer(data.slice(0, tls.MaxFragment))\n }));\n data = data.slice(tls.MaxFragment);\n }\n // add last record\n if(data.length > 0) {\n records.push(tls.createRecord(c, {\n type: record.type,\n data: forge.util.createBuffer(data)\n }));\n }\n }\n\n // compress and encrypt all fragmented records\n for(var i = 0; i < records.length && !c.fail; ++i) {\n // update the record using current write state\n var rec = records[i];\n var s = c.state.current.write;\n if(s.update(c, rec)) {\n // store record\n c.records.push(rec);\n }\n }\n};\n\n/**\n * Flushes all queued records to the output buffer and calls the\n * tlsDataReady() handler on the given connection.\n *\n * @param c the connection.\n *\n * @return true on success, false on failure.\n */\ntls.flush = function(c) {\n for(var i = 0; i < c.records.length; ++i) {\n var record = c.records[i];\n\n // add record header and fragment\n c.tlsData.putByte(record.type);\n c.tlsData.putByte(record.version.major);\n c.tlsData.putByte(record.version.minor);\n c.tlsData.putInt16(record.fragment.length());\n c.tlsData.putBuffer(c.records[i].fragment);\n }\n c.records = [];\n return c.tlsDataReady(c);\n};\n\n/**\n * Maps a pki.certificateError to a tls.Alert.Description.\n *\n * @param error the error to map.\n *\n * @return the alert description.\n */\nvar _certErrorToAlertDesc = function(error) {\n switch(error) {\n case true:\n return true;\n case forge.pki.certificateError.bad_certificate:\n return tls.Alert.Description.bad_certificate;\n case forge.pki.certificateError.unsupported_certificate:\n return tls.Alert.Description.unsupported_certificate;\n case forge.pki.certificateError.certificate_revoked:\n return tls.Alert.Description.certificate_revoked;\n case forge.pki.certificateError.certificate_expired:\n return tls.Alert.Description.certificate_expired;\n case forge.pki.certificateError.certificate_unknown:\n return tls.Alert.Description.certificate_unknown;\n case forge.pki.certificateError.unknown_ca:\n return tls.Alert.Description.unknown_ca;\n default:\n return tls.Alert.Description.bad_certificate;\n }\n};\n\n/**\n * Maps a tls.Alert.Description to a pki.certificateError.\n *\n * @param desc the alert description.\n *\n * @return the certificate error.\n */\nvar _alertDescToCertError = function(desc) {\n switch(desc) {\n case true:\n return true;\n case tls.Alert.Description.bad_certificate:\n return forge.pki.certificateError.bad_certificate;\n case tls.Alert.Description.unsupported_certificate:\n return forge.pki.certificateError.unsupported_certificate;\n case tls.Alert.Description.certificate_revoked:\n return forge.pki.certificateError.certificate_revoked;\n case tls.Alert.Description.certificate_expired:\n return forge.pki.certificateError.certificate_expired;\n case tls.Alert.Description.certificate_unknown:\n return forge.pki.certificateError.certificate_unknown;\n case tls.Alert.Description.unknown_ca:\n return forge.pki.certificateError.unknown_ca;\n default:\n return forge.pki.certificateError.bad_certificate;\n }\n};\n\n/**\n * Verifies a certificate chain against the given connection's\n * Certificate Authority store.\n *\n * @param c the TLS connection.\n * @param chain the certificate chain to verify, with the root or highest\n * authority at the end.\n *\n * @return true if successful, false if not.\n */\ntls.verifyCertificateChain = function(c, chain) {\n try {\n // Make a copy of c.verifyOptions so that we can modify options.verify\n // without modifying c.verifyOptions.\n var options = {};\n for (var key in c.verifyOptions) {\n options[key] = c.verifyOptions[key];\n }\n\n options.verify = function(vfd, depth, chain) {\n // convert pki.certificateError to tls alert description\n var desc = _certErrorToAlertDesc(vfd);\n\n // call application callback\n var ret = c.verify(c, vfd, depth, chain);\n if(ret !== true) {\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n // throw custom error\n var error = new Error('The application rejected the certificate.');\n error.send = true;\n error.alert = {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n };\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.alert) {\n error.alert.description = ret.alert;\n }\n throw error;\n }\n\n // convert tls alert description to pki.certificateError\n if(ret !== vfd) {\n ret = _alertDescToCertError(ret);\n }\n }\n\n return ret;\n };\n\n // verify chain\n forge.pki.verifyCertificateChain(c.caStore, chain, options);\n } catch(ex) {\n // build tls error if not already customized\n var err = ex;\n if(typeof err !== 'object' || forge.util.isArray(err)) {\n err = {\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: _certErrorToAlertDesc(ex)\n }\n };\n }\n if(!('send' in err)) {\n err.send = true;\n }\n if(!('alert' in err)) {\n err.alert = {\n level: tls.Alert.Level.fatal,\n description: _certErrorToAlertDesc(err.error)\n };\n }\n\n // send error\n c.error(c, err);\n }\n\n return !c.fail;\n};\n\n/**\n * Creates a new TLS session cache.\n *\n * @param cache optional map of session ID to cached session.\n * @param capacity the maximum size for the cache (default: 100).\n *\n * @return the new TLS session cache.\n */\ntls.createSessionCache = function(cache, capacity) {\n var rval = null;\n\n // assume input is already a session cache object\n if(cache && cache.getSession && cache.setSession && cache.order) {\n rval = cache;\n } else {\n // create cache\n rval = {};\n rval.cache = cache || {};\n rval.capacity = Math.max(capacity || 100, 1);\n rval.order = [];\n\n // store order for sessions, delete session overflow\n for(var key in cache) {\n if(rval.order.length <= capacity) {\n rval.order.push(key);\n } else {\n delete cache[key];\n }\n }\n\n // get a session from a session ID (or get any session)\n rval.getSession = function(sessionId) {\n var session = null;\n var key = null;\n\n // if session ID provided, use it\n if(sessionId) {\n key = forge.util.bytesToHex(sessionId);\n } else if(rval.order.length > 0) {\n // get first session from cache\n key = rval.order[0];\n }\n\n if(key !== null && key in rval.cache) {\n // get cached session and remove from cache\n session = rval.cache[key];\n delete rval.cache[key];\n for(var i in rval.order) {\n if(rval.order[i] === key) {\n rval.order.splice(i, 1);\n break;\n }\n }\n }\n\n return session;\n };\n\n // set a session in the cache\n rval.setSession = function(sessionId, session) {\n // remove session from cache if at capacity\n if(rval.order.length === rval.capacity) {\n var key = rval.order.shift();\n delete rval.cache[key];\n }\n // add session to cache\n var key = forge.util.bytesToHex(sessionId);\n rval.order.push(key);\n rval.cache[key] = session;\n };\n }\n\n return rval;\n};\n\n/**\n * Creates a new TLS connection.\n *\n * See public createConnection() docs for more details.\n *\n * @param options the options for this connection.\n *\n * @return the new TLS connection.\n */\ntls.createConnection = function(options) {\n var caStore = null;\n if(options.caStore) {\n // if CA store is an array, convert it to a CA store object\n if(forge.util.isArray(options.caStore)) {\n caStore = forge.pki.createCaStore(options.caStore);\n } else {\n caStore = options.caStore;\n }\n } else {\n // create empty CA store\n caStore = forge.pki.createCaStore();\n }\n\n // setup default cipher suites\n var cipherSuites = options.cipherSuites || null;\n if(cipherSuites === null) {\n cipherSuites = [];\n for(var key in tls.CipherSuites) {\n cipherSuites.push(tls.CipherSuites[key]);\n }\n }\n\n // set default entity\n var entity = (options.server || false) ?\n tls.ConnectionEnd.server : tls.ConnectionEnd.client;\n\n // create session cache if requested\n var sessionCache = options.sessionCache ?\n tls.createSessionCache(options.sessionCache) : null;\n\n // create TLS connection\n var c = {\n version: {major: tls.Version.major, minor: tls.Version.minor},\n entity: entity,\n sessionId: options.sessionId,\n caStore: caStore,\n sessionCache: sessionCache,\n cipherSuites: cipherSuites,\n connected: options.connected,\n virtualHost: options.virtualHost || null,\n verifyClient: options.verifyClient || false,\n verify: options.verify || function(cn, vfd, dpth, cts) {return vfd;},\n verifyOptions: options.verifyOptions || {},\n getCertificate: options.getCertificate || null,\n getPrivateKey: options.getPrivateKey || null,\n getSignature: options.getSignature || null,\n input: forge.util.createBuffer(),\n tlsData: forge.util.createBuffer(),\n data: forge.util.createBuffer(),\n tlsDataReady: options.tlsDataReady,\n dataReady: options.dataReady,\n heartbeatReceived: options.heartbeatReceived,\n closed: options.closed,\n error: function(c, ex) {\n // set origin if not set\n ex.origin = ex.origin ||\n ((c.entity === tls.ConnectionEnd.client) ? 'client' : 'server');\n\n // send TLS alert\n if(ex.send) {\n tls.queue(c, tls.createAlert(c, ex.alert));\n tls.flush(c);\n }\n\n // error is fatal by default\n var fatal = (ex.fatal !== false);\n if(fatal) {\n // set fail flag\n c.fail = true;\n }\n\n // call error handler first\n options.error(c, ex);\n\n if(fatal) {\n // fatal error, close connection, do not clear fail\n c.close(false);\n }\n },\n deflate: options.deflate || null,\n inflate: options.inflate || null\n };\n\n /**\n * Resets a closed TLS connection for reuse. Called in c.close().\n *\n * @param clearFail true to clear the fail flag (default: true).\n */\n c.reset = function(clearFail) {\n c.version = {major: tls.Version.major, minor: tls.Version.minor};\n c.record = null;\n c.session = null;\n c.peerCertificate = null;\n c.state = {\n pending: null,\n current: null\n };\n c.expect = (c.entity === tls.ConnectionEnd.client) ? SHE : CHE;\n c.fragmented = null;\n c.records = [];\n c.open = false;\n c.handshakes = 0;\n c.handshaking = false;\n c.isConnected = false;\n c.fail = !(clearFail || typeof(clearFail) === 'undefined');\n c.input.clear();\n c.tlsData.clear();\n c.data.clear();\n c.state.current = tls.createConnectionState(c);\n };\n\n // do initial reset of connection\n c.reset();\n\n /**\n * Updates the current TLS engine state based on the given record.\n *\n * @param c the TLS connection.\n * @param record the TLS record to act on.\n */\n var _update = function(c, record) {\n // get record handler (align type in table by subtracting lowest)\n var aligned = record.type - tls.ContentType.change_cipher_spec;\n var handlers = ctTable[c.entity][c.expect];\n if(aligned in handlers) {\n handlers[aligned](c, record);\n } else {\n // unexpected record\n tls.handleUnexpected(c, record);\n }\n };\n\n /**\n * Reads the record header and initializes the next record on the given\n * connection.\n *\n * @param c the TLS connection with the next record.\n *\n * @return 0 if the input data could be processed, otherwise the\n * number of bytes required for data to be processed.\n */\n var _readRecordHeader = function(c) {\n var rval = 0;\n\n // get input buffer and its length\n var b = c.input;\n var len = b.length();\n\n // need at least 5 bytes to initialize a record\n if(len < 5) {\n rval = 5 - len;\n } else {\n // enough bytes for header\n // initialize record\n c.record = {\n type: b.getByte(),\n version: {\n major: b.getByte(),\n minor: b.getByte()\n },\n length: b.getInt16(),\n fragment: forge.util.createBuffer(),\n ready: false\n };\n\n // check record version\n var compatibleVersion = (c.record.version.major === c.version.major);\n if(compatibleVersion && c.session && c.session.version) {\n // session version already set, require same minor version\n compatibleVersion = (c.record.version.minor === c.version.minor);\n }\n if(!compatibleVersion) {\n c.error(c, {\n message: 'Incompatible TLS version.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n }\n\n return rval;\n };\n\n /**\n * Reads the next record's contents and appends its message to any\n * previously fragmented message.\n *\n * @param c the TLS connection with the next record.\n *\n * @return 0 if the input data could be processed, otherwise the\n * number of bytes required for data to be processed.\n */\n var _readRecord = function(c) {\n var rval = 0;\n\n // ensure there is enough input data to get the entire record\n var b = c.input;\n var len = b.length();\n if(len < c.record.length) {\n // not enough data yet, return how much is required\n rval = c.record.length - len;\n } else {\n // there is enough data to parse the pending record\n // fill record fragment and compact input buffer\n c.record.fragment.putBytes(b.getBytes(c.record.length));\n b.compact();\n\n // update record using current read state\n var s = c.state.current.read;\n if(s.update(c, c.record)) {\n // see if there is a previously fragmented message that the\n // new record's message fragment should be appended to\n if(c.fragmented !== null) {\n // if the record type matches a previously fragmented\n // record, append the record fragment to it\n if(c.fragmented.type === c.record.type) {\n // concatenate record fragments\n c.fragmented.fragment.putBuffer(c.record.fragment);\n c.record = c.fragmented;\n } else {\n // error, invalid fragmented record\n c.error(c, {\n message: 'Invalid fragmented record.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description:\n tls.Alert.Description.unexpected_message\n }\n });\n }\n }\n\n // record is now ready\n c.record.ready = true;\n }\n }\n\n return rval;\n };\n\n /**\n * Performs a handshake using the TLS Handshake Protocol, as a client.\n *\n * This method should only be called if the connection is in client mode.\n *\n * @param sessionId the session ID to use, null to start a new one.\n */\n c.handshake = function(sessionId) {\n // error to call this in non-client mode\n if(c.entity !== tls.ConnectionEnd.client) {\n // not fatal error\n c.error(c, {\n message: 'Cannot initiate handshake as a server.',\n fatal: false\n });\n } else if(c.handshaking) {\n // handshake is already in progress, fail but not fatal error\n c.error(c, {\n message: 'Handshake already in progress.',\n fatal: false\n });\n } else {\n // clear fail flag on reuse\n if(c.fail && !c.open && c.handshakes === 0) {\n c.fail = false;\n }\n\n // now handshaking\n c.handshaking = true;\n\n // default to blank (new session)\n sessionId = sessionId || '';\n\n // if a session ID was specified, try to find it in the cache\n var session = null;\n if(sessionId.length > 0) {\n if(c.sessionCache) {\n session = c.sessionCache.getSession(sessionId);\n }\n\n // matching session not found in cache, clear session ID\n if(session === null) {\n sessionId = '';\n }\n }\n\n // no session given, grab a session from the cache, if available\n if(sessionId.length === 0 && c.sessionCache) {\n session = c.sessionCache.getSession();\n if(session !== null) {\n sessionId = session.id;\n }\n }\n\n // set up session\n c.session = {\n id: sessionId,\n version: null,\n cipherSuite: null,\n compressionMethod: null,\n serverCertificate: null,\n certificateRequest: null,\n clientCertificate: null,\n sp: {},\n md5: forge.md.md5.create(),\n sha1: forge.md.sha1.create()\n };\n\n // use existing session information\n if(session) {\n // only update version on connection, session version not yet set\n c.version = session.version;\n c.session.sp = session.sp;\n }\n\n // generate new client random\n c.session.sp.client_random = tls.createRandom().getBytes();\n\n // connection now open\n c.open = true;\n\n // send hello\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createClientHello(c)\n }));\n tls.flush(c);\n }\n };\n\n /**\n * Called when TLS protocol data has been received from somewhere and should\n * be processed by the TLS engine.\n *\n * @param data the TLS protocol data, as a string, to process.\n *\n * @return 0 if the data could be processed, otherwise the number of bytes\n * required for data to be processed.\n */\n c.process = function(data) {\n var rval = 0;\n\n // buffer input data\n if(data) {\n c.input.putBytes(data);\n }\n\n // process next record if no failure, process will be called after\n // each record is handled (since handling can be asynchronous)\n if(!c.fail) {\n // reset record if ready and now empty\n if(c.record !== null &&\n c.record.ready && c.record.fragment.isEmpty()) {\n c.record = null;\n }\n\n // if there is no pending record, try to read record header\n if(c.record === null) {\n rval = _readRecordHeader(c);\n }\n\n // read the next record (if record not yet ready)\n if(!c.fail && c.record !== null && !c.record.ready) {\n rval = _readRecord(c);\n }\n\n // record ready to be handled, update engine state\n if(!c.fail && c.record !== null && c.record.ready) {\n _update(c, c.record);\n }\n }\n\n return rval;\n };\n\n /**\n * Requests that application data be packaged into a TLS record. The\n * tlsDataReady handler will be called when the TLS record(s) have been\n * prepared.\n *\n * @param data the application data, as a raw 'binary' encoded string, to\n * be sent; to send utf-16/utf-8 string data, use the return value\n * of util.encodeUtf8(str).\n *\n * @return true on success, false on failure.\n */\n c.prepare = function(data) {\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.application_data,\n data: forge.util.createBuffer(data)\n }));\n return tls.flush(c);\n };\n\n /**\n * Requests that a heartbeat request be packaged into a TLS record for\n * transmission. The tlsDataReady handler will be called when TLS record(s)\n * have been prepared.\n *\n * When a heartbeat response has been received, the heartbeatReceived\n * handler will be called with the matching payload. This handler can\n * be used to clear a retransmission timer, etc.\n *\n * @param payload the heartbeat data to send as the payload in the message.\n * @param [payloadLength] the payload length to use, defaults to the\n * actual payload length.\n *\n * @return true on success, false on failure.\n */\n c.prepareHeartbeatRequest = function(payload, payloadLength) {\n if(payload instanceof forge.util.ByteBuffer) {\n payload = payload.bytes();\n }\n if(typeof payloadLength === 'undefined') {\n payloadLength = payload.length;\n }\n c.expectedHeartbeatPayload = payload;\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.heartbeat,\n data: tls.createHeartbeat(\n tls.HeartbeatMessageType.heartbeat_request, payload, payloadLength)\n }));\n return tls.flush(c);\n };\n\n /**\n * Closes the connection (sends a close_notify alert).\n *\n * @param clearFail true to clear the fail flag (default: true).\n */\n c.close = function(clearFail) {\n // save session if connection didn't fail\n if(!c.fail && c.sessionCache && c.session) {\n // only need to preserve session ID, version, and security params\n var session = {\n id: c.session.id,\n version: c.session.version,\n sp: c.session.sp\n };\n session.sp.keys = null;\n c.sessionCache.setSession(session.id, session);\n }\n\n if(c.open) {\n // connection no longer open, clear input\n c.open = false;\n c.input.clear();\n\n // if connected or handshaking, send an alert\n if(c.isConnected || c.handshaking) {\n c.isConnected = c.handshaking = false;\n\n // send close_notify alert\n tls.queue(c, tls.createAlert(c, {\n level: tls.Alert.Level.warning,\n description: tls.Alert.Description.close_notify\n }));\n tls.flush(c);\n }\n\n // call handler\n c.closed(c);\n }\n\n // reset TLS connection, do not clear fail flag\n c.reset(clearFail);\n };\n\n return c;\n};\n\n/* TLS API */\nmodule.exports = forge.tls = forge.tls || {};\n\n// expose non-functions\nfor(var key in tls) {\n if(typeof tls[key] !== 'function') {\n forge.tls[key] = tls[key];\n }\n}\n\n// expose prf_tls1 for testing\nforge.tls.prf_tls1 = prf_TLS1;\n\n// expose sha1 hmac method\nforge.tls.hmac_sha1 = hmac_sha1;\n\n// expose session cache creation\nforge.tls.createSessionCache = tls.createSessionCache;\n\n/**\n * Creates a new TLS connection. This does not make any assumptions about the\n * transport layer that TLS is working on top of, ie: it does not assume there\n * is a TCP/IP connection or establish one. A TLS connection is totally\n * abstracted away from the layer is runs on top of, it merely establishes a\n * secure channel between a client\" and a \"server\".\n *\n * A TLS connection contains 4 connection states: pending read and write, and\n * current read and write.\n *\n * At initialization, the current read and write states will be null. Only once\n * the security parameters have been set and the keys have been generated can\n * the pending states be converted into current states. Current states will be\n * updated for each record processed.\n *\n * A custom certificate verify callback may be provided to check information\n * like the common name on the server's certificate. It will be called for\n * every certificate in the chain. It has the following signature:\n *\n * variable func(c, certs, index, preVerify)\n * Where:\n * c The TLS connection\n * verified Set to true if certificate was verified, otherwise the alert\n * tls.Alert.Description for why the certificate failed.\n * depth The current index in the chain, where 0 is the server's cert.\n * certs The certificate chain, *NOTE* if the server was anonymous then\n * the chain will be empty.\n *\n * The function returns true on success and on failure either the appropriate\n * tls.Alert.Description or an object with 'alert' set to the appropriate\n * tls.Alert.Description and 'message' set to a custom error message. If true\n * is not returned then the connection will abort using, in order of\n * availability, first the returned alert description, second the preVerify\n * alert description, and lastly the default 'bad_certificate'.\n *\n * There are three callbacks that can be used to make use of client-side\n * certificates where each takes the TLS connection as the first parameter:\n *\n * getCertificate(conn, hint)\n * The second parameter is a hint as to which certificate should be\n * returned. If the connection entity is a client, then the hint will be\n * the CertificateRequest message from the server that is part of the\n * TLS protocol. If the connection entity is a server, then it will be\n * the servername list provided via an SNI extension the ClientHello, if\n * one was provided (empty array if not). The hint can be examined to\n * determine which certificate to use (advanced). Most implementations\n * will just return a certificate. The return value must be a\n * PEM-formatted certificate or an array of PEM-formatted certificates\n * that constitute a certificate chain, with the first in the array/chain\n * being the client's certificate.\n * getPrivateKey(conn, certificate)\n * The second parameter is an forge.pki X.509 certificate object that\n * is associated with the requested private key. The return value must\n * be a PEM-formatted private key.\n * getSignature(conn, bytes, callback)\n * This callback can be used instead of getPrivateKey if the private key\n * is not directly accessible in javascript or should not be. For\n * instance, a secure external web service could provide the signature\n * in exchange for appropriate credentials. The second parameter is a\n * string of bytes to be signed that are part of the TLS protocol. These\n * bytes are used to verify that the private key for the previously\n * provided client-side certificate is accessible to the client. The\n * callback is a function that takes 2 parameters, the TLS connection\n * and the RSA encrypted (signed) bytes as a string. This callback must\n * be called once the signature is ready.\n *\n * @param options the options for this connection:\n * server: true if the connection is server-side, false for client.\n * sessionId: a session ID to reuse, null for a new connection.\n * caStore: an array of certificates to trust.\n * sessionCache: a session cache to use.\n * cipherSuites: an optional array of cipher suites to use,\n * see tls.CipherSuites.\n * connected: function(conn) called when the first handshake completes.\n * virtualHost: the virtual server name to use in a TLS SNI extension.\n * verifyClient: true to require a client certificate in server mode,\n * 'optional' to request one, false not to (default: false).\n * verify: a handler used to custom verify certificates in the chain.\n * verifyOptions: an object with options for the certificate chain validation.\n * See documentation of pki.verifyCertificateChain for possible options.\n * verifyOptions.verify is ignored. If you wish to specify a verify handler\n * use the verify key.\n * getCertificate: an optional callback used to get a certificate or\n * a chain of certificates (as an array).\n * getPrivateKey: an optional callback used to get a private key.\n * getSignature: an optional callback used to get a signature.\n * tlsDataReady: function(conn) called when TLS protocol data has been\n * prepared and is ready to be used (typically sent over a socket\n * connection to its destination), read from conn.tlsData buffer.\n * dataReady: function(conn) called when application data has\n * been parsed from a TLS record and should be consumed by the\n * application, read from conn.data buffer.\n * closed: function(conn) called when the connection has been closed.\n * error: function(conn, error) called when there was an error.\n * deflate: function(inBytes) if provided, will deflate TLS records using\n * the deflate algorithm if the server supports it.\n * inflate: function(inBytes) if provided, will inflate TLS records using\n * the deflate algorithm if the server supports it.\n *\n * @return the new TLS connection.\n */\nforge.tls.createConnection = tls.createConnection;\n","/**\n * Utility functions for web applications.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2018 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nvar baseN = require('./baseN');\n\n/* Utilities API */\nvar util = module.exports = forge.util = forge.util || {};\n\n// define setImmediate and nextTick\n(function() {\n // use native nextTick (unless we're in webpack)\n // webpack (or better node-libs-browser polyfill) sets process.browser.\n // this way we can detect webpack properly\n if(typeof process !== 'undefined' && process.nextTick && !process.browser) {\n util.nextTick = process.nextTick;\n if(typeof setImmediate === 'function') {\n util.setImmediate = setImmediate;\n } else {\n // polyfill setImmediate with nextTick, older versions of node\n // (those w/o setImmediate) won't totally starve IO\n util.setImmediate = util.nextTick;\n }\n return;\n }\n\n // polyfill nextTick with native setImmediate\n if(typeof setImmediate === 'function') {\n util.setImmediate = function() { return setImmediate.apply(undefined, arguments); };\n util.nextTick = function(callback) {\n return setImmediate(callback);\n };\n return;\n }\n\n /* Note: A polyfill upgrade pattern is used here to allow combining\n polyfills. For example, MutationObserver is fast, but blocks UI updates,\n so it needs to allow UI updates periodically, so it falls back on\n postMessage or setTimeout. */\n\n // polyfill with setTimeout\n util.setImmediate = function(callback) {\n setTimeout(callback, 0);\n };\n\n // upgrade polyfill to use postMessage\n if(typeof window !== 'undefined' &&\n typeof window.postMessage === 'function') {\n var msg = 'forge.setImmediate';\n var callbacks = [];\n util.setImmediate = function(callback) {\n callbacks.push(callback);\n // only send message when one hasn't been sent in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n window.postMessage(msg, '*');\n }\n };\n function handler(event) {\n if(event.source === window && event.data === msg) {\n event.stopPropagation();\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }\n }\n window.addEventListener('message', handler, true);\n }\n\n // upgrade polyfill to use MutationObserver\n if(typeof MutationObserver !== 'undefined') {\n // polyfill with MutationObserver\n var now = Date.now();\n var attr = true;\n var div = document.createElement('div');\n var callbacks = [];\n new MutationObserver(function() {\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }).observe(div, {attributes: true});\n var oldSetImmediate = util.setImmediate;\n util.setImmediate = function(callback) {\n if(Date.now() - now > 15) {\n now = Date.now();\n oldSetImmediate(callback);\n } else {\n callbacks.push(callback);\n // only trigger observer when it hasn't been triggered in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n div.setAttribute('a', attr = !attr);\n }\n }\n };\n }\n\n util.nextTick = util.setImmediate;\n})();\n\n// check if running under Node.js\nutil.isNodejs =\n typeof process !== 'undefined' && process.versions && process.versions.node;\n\n\n// 'self' will also work in Web Workers (instance of WorkerGlobalScope) while\n// it will point to `window` in the main thread.\n// To remain compatible with older browsers, we fall back to 'window' if 'self'\n// is not available.\nutil.globalScope = (function() {\n if(util.isNodejs) {\n return global;\n }\n\n return typeof self === 'undefined' ? window : self;\n})();\n\n// define isArray\nutil.isArray = Array.isArray || function(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n};\n\n// define isArrayBuffer\nutil.isArrayBuffer = function(x) {\n return typeof ArrayBuffer !== 'undefined' && x instanceof ArrayBuffer;\n};\n\n// define isArrayBufferView\nutil.isArrayBufferView = function(x) {\n return x && util.isArrayBuffer(x.buffer) && x.byteLength !== undefined;\n};\n\n/**\n * Ensure a bits param is 8, 16, 24, or 32. Used to validate input for\n * algorithms where bit manipulation, JavaScript limitations, and/or algorithm\n * design only allow for byte operations of a limited size.\n *\n * @param n number of bits.\n *\n * Throw Error if n invalid.\n */\nfunction _checkBitsParam(n) {\n if(!(n === 8 || n === 16 || n === 24 || n === 32)) {\n throw new Error('Only 8, 16, 24, or 32 bits supported: ' + n);\n }\n}\n\n// TODO: set ByteBuffer to best available backing\nutil.ByteBuffer = ByteStringBuffer;\n\n/** Buffer w/BinaryString backing */\n\n/**\n * Constructor for a binary string backed byte buffer.\n *\n * @param [b] the bytes to wrap (either encoded as string, one byte per\n * character, or as an ArrayBuffer or Typed Array).\n */\nfunction ByteStringBuffer(b) {\n // TODO: update to match DataBuffer API\n\n // the data in this buffer\n this.data = '';\n // the pointer for reading from this buffer\n this.read = 0;\n\n if(typeof b === 'string') {\n this.data = b;\n } else if(util.isArrayBuffer(b) || util.isArrayBufferView(b)) {\n if(typeof Buffer !== 'undefined' && b instanceof Buffer) {\n this.data = b.toString('binary');\n } else {\n // convert native buffer to forge buffer\n // FIXME: support native buffers internally instead\n var arr = new Uint8Array(b);\n try {\n this.data = String.fromCharCode.apply(null, arr);\n } catch(e) {\n for(var i = 0; i < arr.length; ++i) {\n this.putByte(arr[i]);\n }\n }\n }\n } else if(b instanceof ByteStringBuffer ||\n (typeof b === 'object' && typeof b.data === 'string' &&\n typeof b.read === 'number')) {\n // copy existing buffer\n this.data = b.data;\n this.read = b.read;\n }\n\n // used for v8 optimization\n this._constructedStringLength = 0;\n}\nutil.ByteStringBuffer = ByteStringBuffer;\n\n/* Note: This is an optimization for V8-based browsers. When V8 concatenates\n a string, the strings are only joined logically using a \"cons string\" or\n \"constructed/concatenated string\". These containers keep references to one\n another and can result in very large memory usage. For example, if a 2MB\n string is constructed by concatenating 4 bytes together at a time, the\n memory usage will be ~44MB; so ~22x increase. The strings are only joined\n together when an operation requiring their joining takes place, such as\n substr(). This function is called when adding data to this buffer to ensure\n these types of strings are periodically joined to reduce the memory\n footprint. */\nvar _MAX_CONSTRUCTED_STRING_LENGTH = 4096;\nutil.ByteStringBuffer.prototype._optimizeConstructedString = function(x) {\n this._constructedStringLength += x;\n if(this._constructedStringLength > _MAX_CONSTRUCTED_STRING_LENGTH) {\n // this substr() should cause the constructed string to join\n this.data.substr(0, 1);\n this._constructedStringLength = 0;\n }\n};\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.ByteStringBuffer.prototype.length = function() {\n return this.data.length - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.ByteStringBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putByte = function(b) {\n return this.putBytes(String.fromCharCode(b));\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.fillWithByte = function(b, n) {\n b = String.fromCharCode(b);\n var d = this.data;\n while(n > 0) {\n if(n & 1) {\n d += b;\n }\n n >>>= 1;\n if(n > 0) {\n b += b;\n }\n }\n this.data = d;\n this._optimizeConstructedString(n);\n return this;\n};\n\n/**\n * Puts bytes in this buffer.\n *\n * @param bytes the bytes (as a binary encoded string) to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBytes = function(bytes) {\n this.data += bytes;\n this._optimizeConstructedString(bytes.length);\n return this;\n};\n\n/**\n * Puts a UTF-16 encoded string into this buffer.\n *\n * @param str the string to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putString = function(str) {\n return this.putBytes(util.encodeUtf8(str));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 24 & 0xFF));\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n var bytes = '';\n do {\n n -= 8;\n bytes += String.fromCharCode((i >> n) & 0xFF);\n } while(n > 0);\n return this.putBytes(bytes);\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putSignedInt = function(i, n) {\n // putInt checks n\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBuffer = function(buffer) {\n return this.putBytes(buffer.getBytes());\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.getByte = function() {\n return this.data.charCodeAt(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 8 ^\n this.data.charCodeAt(this.read + 1));\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 16 ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 24 ^\n this.data.charCodeAt(this.read + 1) << 16 ^\n this.data.charCodeAt(this.read + 2) << 8 ^\n this.data.charCodeAt(this.read + 3));\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16 ^\n this.data.charCodeAt(this.read + 3) << 24);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by ceil(n/8).\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.charCodeAt(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer. Note that the resulting string is binary encoded (in node.js this\n * encoding is referred to as `binary`, it is *not* `utf8`).\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.ByteStringBuffer.prototype.getBytes = function(count) {\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.ByteStringBuffer.prototype.bytes = function(count) {\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.at = function(i) {\n return this.data.charCodeAt(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.setAt = function(i, b) {\n this.data = this.data.substr(0, this.read + i) +\n String.fromCharCode(b) +\n this.data.substr(this.read + i + 1);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.ByteStringBuffer.prototype.last = function() {\n return this.data.charCodeAt(this.data.length - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.ByteStringBuffer.prototype.copy = function() {\n var c = util.createBuffer(this.data);\n c.read = this.read;\n return c;\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.compact = function() {\n if(this.read > 0) {\n this.data = this.data.slice(this.read);\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.clear = function() {\n this.data = '';\n this.read = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.truncate = function(count) {\n var len = Math.max(0, this.length() - count);\n this.data = this.data.substr(this.read, len);\n this.read = 0;\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.ByteStringBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.length; ++i) {\n var b = this.data.charCodeAt(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a UTF-16 string (standard JavaScript string).\n *\n * @return a UTF-16 string.\n */\nutil.ByteStringBuffer.prototype.toString = function() {\n return util.decodeUtf8(this.bytes());\n};\n\n/** End Buffer w/BinaryString backing */\n\n/** Buffer w/UInt8Array backing */\n\n/**\n * FIXME: Experimental. Do not use yet.\n *\n * Constructor for an ArrayBuffer-backed byte buffer.\n *\n * The buffer may be constructed from a string, an ArrayBuffer, DataView, or a\n * TypedArray.\n *\n * If a string is given, its encoding should be provided as an option,\n * otherwise it will default to 'binary'. A 'binary' string is encoded such\n * that each character is one byte in length and size.\n *\n * If an ArrayBuffer, DataView, or TypedArray is given, it will be used\n * *directly* without any copying. Note that, if a write to the buffer requires\n * more space, the buffer will allocate a new backing ArrayBuffer to\n * accommodate. The starting read and write offsets for the buffer may be\n * given as options.\n *\n * @param [b] the initial bytes for this buffer.\n * @param options the options to use:\n * [readOffset] the starting read offset to use (default: 0).\n * [writeOffset] the starting write offset to use (default: the\n * length of the first parameter).\n * [growSize] the minimum amount, in bytes, to grow the buffer by to\n * accommodate writes (default: 1024).\n * [encoding] the encoding ('binary', 'utf8', 'utf16', 'hex') for the\n * first parameter, if it is a string (default: 'binary').\n */\nfunction DataBuffer(b, options) {\n // default options\n options = options || {};\n\n // pointers for read from/write to buffer\n this.read = options.readOffset || 0;\n this.growSize = options.growSize || 1024;\n\n var isArrayBuffer = util.isArrayBuffer(b);\n var isArrayBufferView = util.isArrayBufferView(b);\n if(isArrayBuffer || isArrayBufferView) {\n // use ArrayBuffer directly\n if(isArrayBuffer) {\n this.data = new DataView(b);\n } else {\n // TODO: adjust read/write offset based on the type of view\n // or specify that this must be done in the options ... that the\n // offsets are byte-based\n this.data = new DataView(b.buffer, b.byteOffset, b.byteLength);\n }\n this.write = ('writeOffset' in options ?\n options.writeOffset : this.data.byteLength);\n return;\n }\n\n // initialize to empty array buffer and add any given bytes using putBytes\n this.data = new DataView(new ArrayBuffer(0));\n this.write = 0;\n\n if(b !== null && b !== undefined) {\n this.putBytes(b);\n }\n\n if('writeOffset' in options) {\n this.write = options.writeOffset;\n }\n}\nutil.DataBuffer = DataBuffer;\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.DataBuffer.prototype.length = function() {\n return this.write - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.DataBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Ensures this buffer has enough empty space to accommodate the given number\n * of bytes. An optional parameter may be given that indicates a minimum\n * amount to grow the buffer if necessary. If the parameter is not given,\n * the buffer will be grown by some previously-specified default amount\n * or heuristic.\n *\n * @param amount the number of bytes to accommodate.\n * @param [growSize] the minimum amount, in bytes, to grow the buffer by if\n * necessary.\n */\nutil.DataBuffer.prototype.accommodate = function(amount, growSize) {\n if(this.length() >= amount) {\n return this;\n }\n growSize = Math.max(growSize || this.growSize, amount);\n\n // grow buffer\n var src = new Uint8Array(\n this.data.buffer, this.data.byteOffset, this.data.byteLength);\n var dst = new Uint8Array(this.length() + growSize);\n dst.set(src);\n this.data = new DataView(dst.buffer);\n\n return this;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putByte = function(b) {\n this.accommodate(1);\n this.data.setUint8(this.write++, b);\n return this;\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.fillWithByte = function(b, n) {\n this.accommodate(n);\n for(var i = 0; i < n; ++i) {\n this.data.setUint8(b);\n }\n return this;\n};\n\n/**\n * Puts bytes in this buffer. The bytes may be given as a string, an\n * ArrayBuffer, a DataView, or a TypedArray.\n *\n * @param bytes the bytes to put.\n * @param [encoding] the encoding for the first parameter ('binary', 'utf8',\n * 'utf16', 'hex'), if it is a string (default: 'binary').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBytes = function(bytes, encoding) {\n if(util.isArrayBufferView(bytes)) {\n var src = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var len = src.byteLength - src.byteOffset;\n this.accommodate(len);\n var dst = new Uint8Array(this.data.buffer, this.write);\n dst.set(src);\n this.write += len;\n return this;\n }\n\n if(util.isArrayBuffer(bytes)) {\n var src = new Uint8Array(bytes);\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(this.data.buffer);\n dst.set(src, this.write);\n this.write += src.byteLength;\n return this;\n }\n\n // bytes is a util.DataBuffer or equivalent\n if(bytes instanceof util.DataBuffer ||\n (typeof bytes === 'object' &&\n typeof bytes.read === 'number' && typeof bytes.write === 'number' &&\n util.isArrayBufferView(bytes.data))) {\n var src = new Uint8Array(bytes.data.byteLength, bytes.read, bytes.length());\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(bytes.data.byteLength, this.write);\n dst.set(src);\n this.write += src.byteLength;\n return this;\n }\n\n if(bytes instanceof util.ByteStringBuffer) {\n // copy binary string and process as the same as a string parameter below\n bytes = bytes.data;\n encoding = 'binary';\n }\n\n // string conversion\n encoding = encoding || 'binary';\n if(typeof bytes === 'string') {\n var view;\n\n // decode from string\n if(encoding === 'hex') {\n this.accommodate(Math.ceil(bytes.length / 2));\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.hex.decode(bytes, view, this.write);\n return this;\n }\n if(encoding === 'base64') {\n this.accommodate(Math.ceil(bytes.length / 4) * 3);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.base64.decode(bytes, view, this.write);\n return this;\n }\n\n // encode text as UTF-8 bytes\n if(encoding === 'utf8') {\n // encode as UTF-8 then decode string as raw binary\n bytes = util.encodeUtf8(bytes);\n encoding = 'binary';\n }\n\n // decode string as raw binary\n if(encoding === 'binary' || encoding === 'raw') {\n // one byte per character\n this.accommodate(bytes.length);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.raw.decode(view);\n return this;\n }\n\n // encode text as UTF-16 bytes\n if(encoding === 'utf16') {\n // two bytes per character\n this.accommodate(bytes.length * 2);\n view = new Uint16Array(this.data.buffer, this.write);\n this.write += util.text.utf16.encode(view);\n return this;\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n }\n\n throw Error('Invalid parameter: ' + bytes);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBuffer = function(buffer) {\n this.putBytes(buffer);\n buffer.clear();\n return this;\n};\n\n/**\n * Puts a string into this buffer.\n *\n * @param str the string to put.\n * @param [encoding] the encoding for the string (default: 'utf16').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putString = function(str) {\n return this.putBytes(str, 'utf16');\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16 = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24 = function(i) {\n this.accommodate(3);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32 = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16Le = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i, true);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24Le = function(i) {\n this.accommodate(3);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF, true);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32Le = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i, true);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n do {\n n -= 8;\n this.data.setInt8(this.write++, (i >> n) & 0xFF);\n } while(n > 0);\n return this;\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putSignedInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.getByte = function() {\n return this.data.getInt8(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16 = function() {\n var rval = this.data.getInt16(this.read);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.getInt16(this.read) << 8 ^\n this.data.getInt8(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32 = function() {\n var rval = this.data.getInt32(this.read);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16Le = function() {\n var rval = this.data.getInt16(this.read, true);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.getInt8(this.read) ^\n this.data.getInt16(this.read + 1, true) << 8);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32Le = function() {\n var rval = this.data.getInt32(this.read, true);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.getInt8(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer.\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.DataBuffer.prototype.getBytes = function(count) {\n // TODO: deprecate this method, it is poorly named and\n // this.toString('binary') replaces it\n // add a toTypedArray()/toArrayBuffer() function\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.DataBuffer.prototype.bytes = function(count) {\n // TODO: deprecate this method, it is poorly named, add \"getString()\"\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.at = function(i) {\n return this.data.getUint8(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.setAt = function(i, b) {\n this.data.setUint8(i, b);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.DataBuffer.prototype.last = function() {\n return this.data.getUint8(this.write - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.DataBuffer.prototype.copy = function() {\n return new util.DataBuffer(this);\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.compact = function() {\n if(this.read > 0) {\n var src = new Uint8Array(this.data.buffer, this.read);\n var dst = new Uint8Array(src.byteLength);\n dst.set(src);\n this.data = new DataView(dst);\n this.write -= this.read;\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.clear = function() {\n this.data = new DataView(new ArrayBuffer(0));\n this.read = this.write = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.truncate = function(count) {\n this.write = Math.max(0, this.length() - count);\n this.read = Math.min(this.read, this.write);\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.DataBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.byteLength; ++i) {\n var b = this.data.getUint8(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a string, using the given encoding. If no\n * encoding is given, 'utf8' (UTF-8) is used.\n *\n * @param [encoding] the encoding to use: 'binary', 'utf8', 'utf16', 'hex',\n * 'base64' (default: 'utf8').\n *\n * @return a string representation of the bytes in this buffer.\n */\nutil.DataBuffer.prototype.toString = function(encoding) {\n var view = new Uint8Array(this.data, this.read, this.length());\n encoding = encoding || 'utf8';\n\n // encode to string\n if(encoding === 'binary' || encoding === 'raw') {\n return util.binary.raw.encode(view);\n }\n if(encoding === 'hex') {\n return util.binary.hex.encode(view);\n }\n if(encoding === 'base64') {\n return util.binary.base64.encode(view);\n }\n\n // decode to text\n if(encoding === 'utf8') {\n return util.text.utf8.decode(view);\n }\n if(encoding === 'utf16') {\n return util.text.utf16.decode(view);\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n};\n\n/** End Buffer w/UInt8Array backing */\n\n/**\n * Creates a buffer that stores bytes. A value may be given to populate the\n * buffer with data. This value can either be string of encoded bytes or a\n * regular string of characters. When passing a string of binary encoded\n * bytes, the encoding `raw` should be given. This is also the default. When\n * passing a string of characters, the encoding `utf8` should be given.\n *\n * @param [input] a string with encoded bytes to store in the buffer.\n * @param [encoding] (default: 'raw', other: 'utf8').\n */\nutil.createBuffer = function(input, encoding) {\n // TODO: deprecate, use new ByteBuffer() instead\n encoding = encoding || 'raw';\n if(input !== undefined && encoding === 'utf8') {\n input = util.encodeUtf8(input);\n }\n return new util.ByteBuffer(input);\n};\n\n/**\n * Fills a string with a particular value. If you want the string to be a byte\n * string, pass in String.fromCharCode(theByte).\n *\n * @param c the character to fill the string with, use String.fromCharCode\n * to fill the string with a byte value.\n * @param n the number of characters of value c to fill with.\n *\n * @return the filled string.\n */\nutil.fillString = function(c, n) {\n var s = '';\n while(n > 0) {\n if(n & 1) {\n s += c;\n }\n n >>>= 1;\n if(n > 0) {\n c += c;\n }\n }\n return s;\n};\n\n/**\n * Performs a per byte XOR between two byte strings and returns the result as a\n * string of bytes.\n *\n * @param s1 first string of bytes.\n * @param s2 second string of bytes.\n * @param n the number of bytes to XOR.\n *\n * @return the XOR'd result.\n */\nutil.xorBytes = function(s1, s2, n) {\n var s3 = '';\n var b = '';\n var t = '';\n var i = 0;\n var c = 0;\n for(; n > 0; --n, ++i) {\n b = s1.charCodeAt(i) ^ s2.charCodeAt(i);\n if(c >= 10) {\n s3 += t;\n t = '';\n c = 0;\n }\n t += String.fromCharCode(b);\n ++c;\n }\n s3 += t;\n return s3;\n};\n\n/**\n * Converts a hex string into a 'binary' encoded string of bytes.\n *\n * @param hex the hexadecimal string to convert.\n *\n * @return the binary-encoded string of bytes.\n */\nutil.hexToBytes = function(hex) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.decode instead.\"\n var rval = '';\n var i = 0;\n if(hex.length & 1 == 1) {\n // odd number of characters, convert first character alone\n i = 1;\n rval += String.fromCharCode(parseInt(hex[0], 16));\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n rval += String.fromCharCode(parseInt(hex.substr(i, 2), 16));\n }\n return rval;\n};\n\n/**\n * Converts a 'binary' encoded string of bytes to hex.\n *\n * @param bytes the byte string to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.bytesToHex = function(bytes) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.encode instead.\"\n return util.createBuffer(bytes).toHex();\n};\n\n/**\n * Converts an 32-bit integer to 4-big-endian byte string.\n *\n * @param i the integer.\n *\n * @return the byte string.\n */\nutil.int32ToBytes = function(i) {\n return (\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n// base64 characters, reverse mapping\nvar _base64 =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar _base64Idx = [\n/*43 -43 = 0*/\n/*'+', 1, 2, 3,'/' */\n 62, -1, -1, -1, 63,\n\n/*'0','1','2','3','4','5','6','7','8','9' */\n 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n\n/*15, 16, 17,'=', 19, 20, 21 */\n -1, -1, -1, 64, -1, -1, -1,\n\n/*65 - 43 = 22*/\n/*'A','B','C','D','E','F','G','H','I','J','K','L','M', */\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n\n/*'N','O','P','Q','R','S','T','U','V','W','X','Y','Z' */\n 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n\n/*91 - 43 = 48 */\n/*48, 49, 50, 51, 52, 53 */\n -1, -1, -1, -1, -1, -1,\n\n/*97 - 43 = 54*/\n/*'a','b','c','d','e','f','g','h','i','j','k','l','m' */\n 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,\n\n/*'n','o','p','q','r','s','t','u','v','w','x','y','z' */\n 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51\n];\n\n// base58 characters (Bitcoin alphabet)\nvar _base58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\n/**\n * Base64 encodes a 'binary' encoded string of bytes.\n *\n * @param input the binary encoded string of bytes to base64-encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output.\n */\nutil.encode64 = function(input, maxline) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.encode instead.\"\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Base64 decodes a string into a 'binary' encoded string of bytes.\n *\n * @param input the base64-encoded input.\n *\n * @return the binary encoded string.\n */\nutil.decode64 = function(input) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.decode instead.\"\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n var output = '';\n var enc1, enc2, enc3, enc4;\n var i = 0;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n output += String.fromCharCode((enc1 << 2) | (enc2 >> 4));\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n output += String.fromCharCode(((enc2 & 15) << 4) | (enc3 >> 2));\n if(enc4 !== 64) {\n // decoded 3 bytes\n output += String.fromCharCode(((enc3 & 3) << 6) | enc4);\n }\n }\n }\n\n return output;\n};\n\n/**\n * Encodes the given string of characters (a standard JavaScript\n * string) as a binary encoded string where the bytes represent\n * a UTF-8 encoded string of characters. Non-ASCII characters will be\n * encoded as multiple bytes according to UTF-8.\n *\n * @param str a standard string of characters to encode.\n *\n * @return the binary encoded string.\n */\nutil.encodeUtf8 = function(str) {\n return unescape(encodeURIComponent(str));\n};\n\n/**\n * Decodes a binary encoded string that contains bytes that\n * represent a UTF-8 encoded string of characters -- into a\n * string of characters (a standard JavaScript string).\n *\n * @param str the binary encoded string to decode.\n *\n * @return the resulting standard string of characters.\n */\nutil.decodeUtf8 = function(str) {\n return decodeURIComponent(escape(str));\n};\n\n// binary encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.binary = {\n raw: {},\n hex: {},\n base64: {},\n base58: {},\n baseN : {\n encode: baseN.encode,\n decode: baseN.decode\n }\n};\n\n/**\n * Encodes a Uint8Array as a binary-encoded string. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param bytes the Uint8Array to encode.\n *\n * @return the binary-encoded string.\n */\nutil.binary.raw.encode = function(bytes) {\n return String.fromCharCode.apply(null, bytes);\n};\n\n/**\n * Decodes a binary-encoded string to a Uint8Array. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param str the binary-encoded string to decode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.raw.decode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Encodes a 'binary' string, ArrayBuffer, DataView, TypedArray, or\n * ByteBuffer as a string of hexadecimal characters.\n *\n * @param bytes the bytes to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.binary.hex.encode = util.bytesToHex;\n\n/**\n * Decodes a hex-encoded string to a Uint8Array.\n *\n * @param hex the hexadecimal string to convert.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.hex.decode = function(hex, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(hex.length / 2));\n }\n offset = offset || 0;\n var i = 0, j = offset;\n if(hex.length & 1) {\n // odd number of characters, convert first character alone\n i = 1;\n out[j++] = parseInt(hex[0], 16);\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n out[j++] = parseInt(hex.substr(i, 2), 16);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Base64-encodes a Uint8Array.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output string.\n */\nutil.binary.base64.encode = function(input, maxline) {\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.byteLength) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Decodes a base64-encoded string to a Uint8Array.\n *\n * @param input the base64-encoded input string.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.base64.decode = function(input, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(input.length / 4) * 3);\n }\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n offset = offset || 0;\n var enc1, enc2, enc3, enc4;\n var i = 0, j = offset;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n out[j++] = (enc1 << 2) | (enc2 >> 4);\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n out[j++] = ((enc2 & 15) << 4) | (enc3 >> 2);\n if(enc4 !== 64) {\n // decoded 3 bytes\n out[j++] = ((enc3 & 3) << 6) | enc4;\n }\n }\n }\n\n // make sure result is the exact decoded length\n return output ? (j - offset) : out.subarray(0, j);\n};\n\n// add support for base58 encoding/decoding with Bitcoin alphabet\nutil.binary.base58.encode = function(input, maxline) {\n return util.binary.baseN.encode(input, _base58, maxline);\n};\nutil.binary.base58.decode = function(input, maxline) {\n return util.binary.baseN.decode(input, _base58, maxline);\n};\n\n// text encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.text = {\n utf8: {},\n utf16: {}\n};\n\n/**\n * Encodes the given string as UTF-8 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf8.encode = function(str, output, offset) {\n str = util.encodeUtf8(str);\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-8 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf8.decode = function(bytes) {\n return util.decodeUtf8(String.fromCharCode.apply(null, bytes));\n};\n\n/**\n * Encodes the given string as UTF-16 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf16.encode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length * 2);\n }\n var view = new Uint16Array(out.buffer);\n offset = offset || 0;\n var j = offset;\n var k = offset;\n for(var i = 0; i < str.length; ++i) {\n view[k++] = str.charCodeAt(i);\n j += 2;\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-16 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf16.decode = function(bytes) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n};\n\n/**\n * Deflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true to return only raw deflate data, false to include zlib\n * header and trailer.\n *\n * @return the deflated data as a string.\n */\nutil.deflate = function(api, bytes, raw) {\n bytes = util.decode64(api.deflate(util.encode64(bytes)).rval);\n\n // strip zlib header and trailer if necessary\n if(raw) {\n // zlib header is 2 bytes (CMF,FLG) where FLG indicates that\n // there is a 4-byte DICT (alder-32) block before the data if\n // its 5th bit is set\n var start = 2;\n var flg = bytes.charCodeAt(1);\n if(flg & 0x20) {\n start = 6;\n }\n // zlib trailer is 4 bytes of adler-32\n bytes = bytes.substring(start, bytes.length - 4);\n }\n\n return bytes;\n};\n\n/**\n * Inflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true if the incoming data has no zlib header or trailer and is\n * raw DEFLATE data.\n *\n * @return the inflated data as a string, null on error.\n */\nutil.inflate = function(api, bytes, raw) {\n // TODO: add zlib header and trailer if necessary/possible\n var rval = api.inflate(util.encode64(bytes)).rval;\n return (rval === null) ? null : util.decode64(rval);\n};\n\n/**\n * Sets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param obj the storage object, null to remove.\n */\nvar _setStorageObject = function(api, id, obj) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n var rval;\n if(obj === null) {\n rval = api.removeItem(id);\n } else {\n // json-encode and base64-encode object\n obj = util.encode64(JSON.stringify(obj));\n rval = api.setItem(id, obj);\n }\n\n // handle potential flash error\n if(typeof(rval) !== 'undefined' && rval.rval !== true) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n};\n\n/**\n * Gets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n *\n * @return the storage object entry or null if none exists.\n */\nvar _getStorageObject = function(api, id) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n // get the existing entry\n var rval = api.getItem(id);\n\n /* Note: We check api.init because we can't do (api == localStorage)\n on IE because of \"Class doesn't support Automation\" exception. Only\n the flash api has an init method so this works too, but we need a\n better solution in the future. */\n\n // flash returns item wrapped in an object, handle special case\n if(api.init) {\n if(rval.rval === null) {\n if(rval.error) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n // no error, but also no item\n rval = null;\n } else {\n rval = rval.rval;\n }\n }\n\n // handle decoding\n if(rval !== null) {\n // base64-decode and json-decode data\n rval = JSON.parse(util.decode64(rval));\n }\n\n return rval;\n};\n\n/**\n * Stores an item in local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n */\nvar _setItem = function(api, id, key, data) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj === null) {\n // create a new storage object\n obj = {};\n }\n // update key\n obj[key] = data;\n\n // set storage object\n _setStorageObject(api, id, obj);\n};\n\n/**\n * Gets an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n *\n * @return the item.\n */\nvar _getItem = function(api, id, key) {\n // get storage object\n var rval = _getStorageObject(api, id);\n if(rval !== null) {\n // return data at key\n rval = (key in rval) ? rval[key] : null;\n }\n\n return rval;\n};\n\n/**\n * Removes an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n */\nvar _removeItem = function(api, id, key) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj !== null && key in obj) {\n // remove key\n delete obj[key];\n\n // see if entry has no keys remaining\n var empty = true;\n for(var prop in obj) {\n empty = false;\n break;\n }\n if(empty) {\n // remove entry entirely if no keys are left\n obj = null;\n }\n\n // set storage object\n _setStorageObject(api, id, obj);\n }\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n */\nvar _clearItems = function(api, id) {\n _setStorageObject(api, id, null);\n};\n\n/**\n * Calls a storage function.\n *\n * @param func the function to call.\n * @param args the arguments for the function.\n * @param location the location argument.\n *\n * @return the return value from the function.\n */\nvar _callStorageFunction = function(func, args, location) {\n var rval = null;\n\n // default storage types\n if(typeof(location) === 'undefined') {\n location = ['web', 'flash'];\n }\n\n // apply storage types in order of preference\n var type;\n var done = false;\n var exception = null;\n for(var idx in location) {\n type = location[idx];\n try {\n if(type === 'flash' || type === 'both') {\n if(args[0] === null) {\n throw new Error('Flash local storage not available.');\n }\n rval = func.apply(this, args);\n done = (type === 'flash');\n }\n if(type === 'web' || type === 'both') {\n args[0] = localStorage;\n rval = func.apply(this, args);\n done = true;\n }\n } catch(ex) {\n exception = ex;\n }\n if(done) {\n break;\n }\n }\n\n if(!done) {\n throw exception;\n }\n\n return rval;\n};\n\n/**\n * Stores an item on local disk.\n *\n * The available types of local storage include 'flash', 'web', and 'both'.\n *\n * The type 'flash' refers to flash local storage (SharedObject). In order\n * to use flash local storage, the 'api' parameter must be valid. The type\n * 'web' refers to WebStorage, if supported by the browser. The type 'both'\n * refers to storing using both 'flash' and 'web', not just one or the\n * other.\n *\n * The location array should list the storage types to use in order of\n * preference:\n *\n * ['flash']: flash only storage\n * ['web']: web only storage\n * ['both']: try to store in both\n * ['flash','web']: store in flash first, but if not available, 'web'\n * ['web','flash']: store in web first, but if not available, 'flash'\n *\n * The location array defaults to: ['web', 'flash']\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n * @param location an array with the preferred types of storage to use.\n */\nutil.setItem = function(api, id, key, data, location) {\n _callStorageFunction(_setItem, arguments, location);\n};\n\n/**\n * Gets an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n *\n * @return the item.\n */\nutil.getItem = function(api, id, key, location) {\n return _callStorageFunction(_getItem, arguments, location);\n};\n\n/**\n * Removes an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n */\nutil.removeItem = function(api, id, key, location) {\n _callStorageFunction(_removeItem, arguments, location);\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface if flash is available.\n * @param id the storage ID to use.\n * @param location an array with the preferred types of storage to use.\n */\nutil.clearItems = function(api, id, location) {\n _callStorageFunction(_clearItems, arguments, location);\n};\n\n/**\n * Check if an object is empty.\n *\n * Taken from:\n * http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object-from-json/679937#679937\n *\n * @param object the object to check.\n */\nutil.isEmpty = function(obj) {\n for(var prop in obj) {\n if(obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Format with simple printf-style interpolation.\n *\n * %%: literal '%'\n * %s,%o: convert next argument into a string.\n *\n * @param format the string to format.\n * @param ... arguments to interpolate into the format string.\n */\nutil.format = function(format) {\n var re = /%./g;\n // current match\n var match;\n // current part\n var part;\n // current arg index\n var argi = 0;\n // collected parts to recombine later\n var parts = [];\n // last index found\n var last = 0;\n // loop while matches remain\n while((match = re.exec(format))) {\n part = format.substring(last, re.lastIndex - 2);\n // don't add empty strings (ie, parts between %s%s)\n if(part.length > 0) {\n parts.push(part);\n }\n last = re.lastIndex;\n // switch on % code\n var code = match[0][1];\n switch(code) {\n case 's':\n case 'o':\n // check if enough arguments were given\n if(argi < arguments.length) {\n parts.push(arguments[argi++ + 1]);\n } else {\n parts.push('');\n }\n break;\n // FIXME: do proper formating for numbers, etc\n //case 'f':\n //case 'd':\n case '%':\n parts.push('%');\n break;\n default:\n parts.push('<%' + code + '?>');\n }\n }\n // add trailing part of format string\n parts.push(format.substring(last));\n return parts.join('');\n};\n\n/**\n * Formats a number.\n *\n * http://snipplr.com/view/5945/javascript-numberformat--ported-from-php/\n */\nutil.formatNumber = function(number, decimals, dec_point, thousands_sep) {\n // http://kevin.vanzonneveld.net\n // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfix by: Michael White (http://crestidg.com)\n // + bugfix by: Benjamin Lupton\n // + bugfix by: Allan Jensen (http://www.winternet.no)\n // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // * example 1: number_format(1234.5678, 2, '.', '');\n // * returns 1: 1234.57\n\n var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;\n var d = dec_point === undefined ? ',' : dec_point;\n var t = thousands_sep === undefined ?\n '.' : thousands_sep, s = n < 0 ? '-' : '';\n var i = parseInt((n = Math.abs(+n || 0).toFixed(c)), 10) + '';\n var j = (i.length > 3) ? i.length % 3 : 0;\n return s + (j ? i.substr(0, j) + t : '') +\n i.substr(j).replace(/(\\d{3})(?=\\d)/g, '$1' + t) +\n (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');\n};\n\n/**\n * Formats a byte size.\n *\n * http://snipplr.com/view/5949/format-humanize-file-byte-size-presentation-in-javascript/\n */\nutil.formatSize = function(size) {\n if(size >= 1073741824) {\n size = util.formatNumber(size / 1073741824, 2, '.', '') + ' GiB';\n } else if(size >= 1048576) {\n size = util.formatNumber(size / 1048576, 2, '.', '') + ' MiB';\n } else if(size >= 1024) {\n size = util.formatNumber(size / 1024, 0) + ' KiB';\n } else {\n size = util.formatNumber(size, 0) + ' bytes';\n }\n return size;\n};\n\n/**\n * Converts an IPv4 or IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv4 or IPv6 address to convert.\n *\n * @return the 4-byte IPv6 or 16-byte IPv6 address or null if the address can't\n * be parsed.\n */\nutil.bytesFromIP = function(ip) {\n if(ip.indexOf('.') !== -1) {\n return util.bytesFromIPv4(ip);\n }\n if(ip.indexOf(':') !== -1) {\n return util.bytesFromIPv6(ip);\n }\n return null;\n};\n\n/**\n * Converts an IPv4 string representation into bytes (in network order).\n *\n * @param ip the IPv4 address to convert.\n *\n * @return the 4-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv4 = function(ip) {\n ip = ip.split('.');\n if(ip.length !== 4) {\n return null;\n }\n var b = util.createBuffer();\n for(var i = 0; i < ip.length; ++i) {\n var num = parseInt(ip[i], 10);\n if(isNaN(num)) {\n return null;\n }\n b.putByte(num);\n }\n return b.getBytes();\n};\n\n/**\n * Converts an IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv6 address to convert.\n *\n * @return the 16-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv6 = function(ip) {\n var blanks = 0;\n ip = ip.split(':').filter(function(e) {\n if(e.length === 0) ++blanks;\n return true;\n });\n var zeros = (8 - ip.length + blanks) * 2;\n var b = util.createBuffer();\n for(var i = 0; i < 8; ++i) {\n if(!ip[i] || ip[i].length === 0) {\n b.fillWithByte(0, zeros);\n zeros = 0;\n continue;\n }\n var bytes = util.hexToBytes(ip[i]);\n if(bytes.length < 2) {\n b.putByte(0);\n }\n b.putBytes(bytes);\n }\n return b.getBytes();\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation or 16-bytes into\n * an IPv6 string representation. The bytes must be in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 or IPv6 string representation if 4 or 16 bytes,\n * respectively, are given, otherwise null.\n */\nutil.bytesToIP = function(bytes) {\n if(bytes.length === 4) {\n return util.bytesToIPv4(bytes);\n }\n if(bytes.length === 16) {\n return util.bytesToIPv6(bytes);\n }\n return null;\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv4 = function(bytes) {\n if(bytes.length !== 4) {\n return null;\n }\n var ip = [];\n for(var i = 0; i < bytes.length; ++i) {\n ip.push(bytes.charCodeAt(i));\n }\n return ip.join('.');\n};\n\n/**\n * Converts 16-bytes into an IPv16 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv16 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv6 = function(bytes) {\n if(bytes.length !== 16) {\n return null;\n }\n var ip = [];\n var zeroGroups = [];\n var zeroMaxGroup = 0;\n for(var i = 0; i < bytes.length; i += 2) {\n var hex = util.bytesToHex(bytes[i] + bytes[i + 1]);\n // canonicalize zero representation\n while(hex[0] === '0' && hex !== '0') {\n hex = hex.substr(1);\n }\n if(hex === '0') {\n var last = zeroGroups[zeroGroups.length - 1];\n var idx = ip.length;\n if(!last || idx !== last.end + 1) {\n zeroGroups.push({start: idx, end: idx});\n } else {\n last.end = idx;\n if((last.end - last.start) >\n (zeroGroups[zeroMaxGroup].end - zeroGroups[zeroMaxGroup].start)) {\n zeroMaxGroup = zeroGroups.length - 1;\n }\n }\n }\n ip.push(hex);\n }\n if(zeroGroups.length > 0) {\n var group = zeroGroups[zeroMaxGroup];\n // only shorten group of length > 0\n if(group.end - group.start > 0) {\n ip.splice(group.start, group.end - group.start + 1, '');\n if(group.start === 0) {\n ip.unshift('');\n }\n if(group.end === 7) {\n ip.push('');\n }\n }\n }\n return ip.join(':');\n};\n\n/**\n * Estimates the number of processes that can be run concurrently. If\n * creating Web Workers, keep in mind that the main JavaScript process needs\n * its own core.\n *\n * @param options the options to use:\n * update true to force an update (not use the cached value).\n * @param callback(err, max) called once the operation completes.\n */\nutil.estimateCores = function(options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n if('cores' in util && !options.update) {\n return callback(null, util.cores);\n }\n if(typeof navigator !== 'undefined' &&\n 'hardwareConcurrency' in navigator &&\n navigator.hardwareConcurrency > 0) {\n util.cores = navigator.hardwareConcurrency;\n return callback(null, util.cores);\n }\n if(typeof Worker === 'undefined') {\n // workers not available\n util.cores = 1;\n return callback(null, util.cores);\n }\n if(typeof Blob === 'undefined') {\n // can't estimate, default to 2\n util.cores = 2;\n return callback(null, util.cores);\n }\n\n // create worker concurrency estimation code as blob\n var blobUrl = URL.createObjectURL(new Blob(['(',\n function() {\n self.addEventListener('message', function(e) {\n // run worker for 4 ms\n var st = Date.now();\n var et = st + 4;\n while(Date.now() < et);\n self.postMessage({st: st, et: et});\n });\n }.toString(),\n ')()'], {type: 'application/javascript'}));\n\n // take 5 samples using 16 workers\n sample([], 5, 16);\n\n function sample(max, samples, numWorkers) {\n if(samples === 0) {\n // get overlap average\n var avg = Math.floor(max.reduce(function(avg, x) {\n return avg + x;\n }, 0) / max.length);\n util.cores = Math.max(1, avg);\n URL.revokeObjectURL(blobUrl);\n return callback(null, util.cores);\n }\n map(numWorkers, function(err, results) {\n max.push(reduce(numWorkers, results));\n sample(max, samples - 1, numWorkers);\n });\n }\n\n function map(numWorkers, callback) {\n var workers = [];\n var results = [];\n for(var i = 0; i < numWorkers; ++i) {\n var worker = new Worker(blobUrl);\n worker.addEventListener('message', function(e) {\n results.push(e.data);\n if(results.length === numWorkers) {\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].terminate();\n }\n callback(null, results);\n }\n });\n workers.push(worker);\n }\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].postMessage(i);\n }\n }\n\n function reduce(numWorkers, results) {\n // find overlapping time windows\n var overlaps = [];\n for(var n = 0; n < numWorkers; ++n) {\n var r1 = results[n];\n var overlap = overlaps[n] = [];\n for(var i = 0; i < numWorkers; ++i) {\n if(n === i) {\n continue;\n }\n var r2 = results[i];\n if((r1.st > r2.st && r1.st < r2.et) ||\n (r2.st > r1.st && r2.st < r1.et)) {\n overlap.push(i);\n }\n }\n }\n // get maximum overlaps ... don't include overlapping worker itself\n // as the main JS process was also being scheduled during the work and\n // would have to be subtracted from the estimate anyway\n return overlaps.reduce(function(max, overlap) {\n return Math.max(max, overlap.length);\n }, 0);\n }\n};\n","/**\n * Javascript implementation of X.509 and related components (such as\n * Certification Signing Requests) of a Public Key Infrastructure.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n *\n * The ASN.1 representation of an X.509v3 certificate is as follows\n * (see RFC 2459):\n *\n * Certificate ::= SEQUENCE {\n * tbsCertificate TBSCertificate,\n * signatureAlgorithm AlgorithmIdentifier,\n * signatureValue BIT STRING\n * }\n *\n * TBSCertificate ::= SEQUENCE {\n * version [0] EXPLICIT Version DEFAULT v1,\n * serialNumber CertificateSerialNumber,\n * signature AlgorithmIdentifier,\n * issuer Name,\n * validity Validity,\n * subject Name,\n * subjectPublicKeyInfo SubjectPublicKeyInfo,\n * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,\n * -- If present, version shall be v2 or v3\n * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,\n * -- If present, version shall be v2 or v3\n * extensions [3] EXPLICIT Extensions OPTIONAL\n * -- If present, version shall be v3\n * }\n *\n * Version ::= INTEGER { v1(0), v2(1), v3(2) }\n *\n * CertificateSerialNumber ::= INTEGER\n *\n * Name ::= CHOICE {\n * // only one possible choice for now\n * RDNSequence\n * }\n *\n * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName\n *\n * RelativeDistinguishedName ::= SET OF AttributeTypeAndValue\n *\n * AttributeTypeAndValue ::= SEQUENCE {\n * type AttributeType,\n * value AttributeValue\n * }\n * AttributeType ::= OBJECT IDENTIFIER\n * AttributeValue ::= ANY DEFINED BY AttributeType\n *\n * Validity ::= SEQUENCE {\n * notBefore Time,\n * notAfter Time\n * }\n *\n * Time ::= CHOICE {\n * utcTime UTCTime,\n * generalTime GeneralizedTime\n * }\n *\n * UniqueIdentifier ::= BIT STRING\n *\n * SubjectPublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * subjectPublicKey BIT STRING\n * }\n *\n * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension\n *\n * Extension ::= SEQUENCE {\n * extnID OBJECT IDENTIFIER,\n * critical BOOLEAN DEFAULT FALSE,\n * extnValue OCTET STRING\n * }\n *\n * The only key algorithm currently supported for PKI is RSA.\n *\n * RSASSA-PSS signatures are described in RFC 3447 and RFC 4055.\n *\n * PKCS#10 v1.7 describes certificate signing requests:\n *\n * CertificationRequestInfo:\n *\n * CertificationRequestInfo ::= SEQUENCE {\n * version INTEGER { v1(0) } (v1,...),\n * subject Name,\n * subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},\n * attributes [0] Attributes{{ CRIAttributes }}\n * }\n *\n * Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }}\n *\n * CRIAttributes ATTRIBUTE ::= {\n * ... -- add any locally defined attributes here -- }\n *\n * Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {\n * type ATTRIBUTE.&id({IOSet}),\n * values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type})\n * }\n *\n * CertificationRequest ::= SEQUENCE {\n * certificationRequestInfo CertificationRequestInfo,\n * signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},\n * signature BIT STRING\n * }\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./md');\nrequire('./mgf');\nrequire('./oids');\nrequire('./pem');\nrequire('./pss');\nrequire('./rsa');\nrequire('./util');\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Public Key Infrastructure (PKI) implementation. */\nvar pki = module.exports = forge.pki = forge.pki || {};\nvar oids = pki.oids;\n\n// short name OID mappings\nvar _shortNames = {};\n_shortNames['CN'] = oids['commonName'];\n_shortNames['commonName'] = 'CN';\n_shortNames['C'] = oids['countryName'];\n_shortNames['countryName'] = 'C';\n_shortNames['L'] = oids['localityName'];\n_shortNames['localityName'] = 'L';\n_shortNames['ST'] = oids['stateOrProvinceName'];\n_shortNames['stateOrProvinceName'] = 'ST';\n_shortNames['O'] = oids['organizationName'];\n_shortNames['organizationName'] = 'O';\n_shortNames['OU'] = oids['organizationalUnitName'];\n_shortNames['organizationalUnitName'] = 'OU';\n_shortNames['E'] = oids['emailAddress'];\n_shortNames['emailAddress'] = 'E';\n\n// validator for an SubjectPublicKeyInfo structure\n// Note: Currently only works with an RSA public key\nvar publicKeyValidator = forge.pki.rsa.publicKeyValidator;\n\n// validator for an X.509v3 certificate\nvar x509CertificateValidator = {\n name: 'Certificate',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'tbsCertificate',\n value: [{\n name: 'Certificate.TBSCertificate.version',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.version.integer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certVersion'\n }]\n }, {\n name: 'Certificate.TBSCertificate.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certSerialNumber'\n }, {\n name: 'Certificate.TBSCertificate.signature',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate.signature.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certinfoSignatureOid'\n }, {\n name: 'Certificate.TBSCertificate.signature.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'certinfoSignatureParams'\n }]\n }, {\n name: 'Certificate.TBSCertificate.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certIssuer'\n }, {\n name: 'Certificate.TBSCertificate.validity',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n // Note: UTC and generalized times may both appear so the capture\n // names are based on their detected order, the names used below\n // are only for the common case, which validity time really means\n // \"notBefore\" and which means \"notAfter\" will be determined by order\n value: [{\n // notBefore (Time) (UTC time case)\n name: 'Certificate.TBSCertificate.validity.notBefore (utc)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.UTCTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity1UTCTime'\n }, {\n // notBefore (Time) (generalized time case)\n name: 'Certificate.TBSCertificate.validity.notBefore (generalized)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.GENERALIZEDTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity2GeneralizedTime'\n }, {\n // notAfter (Time) (only UTC time is supported)\n name: 'Certificate.TBSCertificate.validity.notAfter (utc)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.UTCTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity3UTCTime'\n }, {\n // notAfter (Time) (only UTC time is supported)\n name: 'Certificate.TBSCertificate.validity.notAfter (generalized)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.GENERALIZEDTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity4GeneralizedTime'\n }]\n }, {\n // Name (subject) (RDNSequence)\n name: 'Certificate.TBSCertificate.subject',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certSubject'\n },\n // SubjectPublicKeyInfo\n publicKeyValidator,\n {\n // issuerUniqueID (optional)\n name: 'Certificate.TBSCertificate.issuerUniqueID',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.issuerUniqueID.id',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n // TODO: support arbitrary bit length ids\n captureBitStringValue: 'certIssuerUniqueId'\n }]\n }, {\n // subjectUniqueID (optional)\n name: 'Certificate.TBSCertificate.subjectUniqueID',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 2,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.subjectUniqueID.id',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n // TODO: support arbitrary bit length ids\n captureBitStringValue: 'certSubjectUniqueId'\n }]\n }, {\n // Extensions (optional)\n name: 'Certificate.TBSCertificate.extensions',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 3,\n constructed: true,\n captureAsn1: 'certExtensions',\n optional: true\n }]\n }, {\n // AlgorithmIdentifier (signature algorithm)\n name: 'Certificate.signatureAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // algorithm\n name: 'Certificate.signatureAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certSignatureOid'\n }, {\n name: 'Certificate.TBSCertificate.signature.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'certSignatureParams'\n }]\n }, {\n // SignatureValue\n name: 'Certificate.signatureValue',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n captureBitStringValue: 'certSignature'\n }]\n};\n\nvar rsassaPssParameterValidator = {\n name: 'rsapss',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'rsapss.hashAlgorithm',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n value: [{\n name: 'rsapss.hashAlgorithm.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'hashOid'\n /* parameter block omitted, for SHA1 NULL anyhow. */\n }]\n }]\n }, {\n name: 'rsapss.maskGenAlgorithm',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'maskGenOid'\n }, {\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'maskGenHashOid'\n /* parameter block omitted, for SHA1 NULL anyhow. */\n }]\n }]\n }]\n }, {\n name: 'rsapss.saltLength',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 2,\n optional: true,\n value: [{\n name: 'rsapss.saltLength.saltLength',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.INTEGER,\n constructed: false,\n capture: 'saltLength'\n }]\n }, {\n name: 'rsapss.trailerField',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 3,\n optional: true,\n value: [{\n name: 'rsapss.trailer.trailer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.INTEGER,\n constructed: false,\n capture: 'trailer'\n }]\n }]\n};\n\n// validator for a CertificationRequestInfo structure\nvar certificationRequestInfoValidator = {\n name: 'CertificationRequestInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certificationRequestInfo',\n value: [{\n name: 'CertificationRequestInfo.integer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certificationRequestInfoVersion'\n }, {\n // Name (subject) (RDNSequence)\n name: 'CertificationRequestInfo.subject',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certificationRequestInfoSubject'\n },\n // SubjectPublicKeyInfo\n publicKeyValidator,\n {\n name: 'CertificationRequestInfo.attributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n capture: 'certificationRequestInfoAttributes',\n value: [{\n name: 'CertificationRequestInfo.attributes',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'CertificationRequestInfo.attributes.type',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false\n }, {\n name: 'CertificationRequestInfo.attributes.value',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true\n }]\n }]\n }]\n};\n\n// validator for a CertificationRequest structure\nvar certificationRequestValidator = {\n name: 'CertificationRequest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'csr',\n value: [\n certificationRequestInfoValidator, {\n // AlgorithmIdentifier (signature algorithm)\n name: 'CertificationRequest.signatureAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // algorithm\n name: 'CertificationRequest.signatureAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'csrSignatureOid'\n }, {\n name: 'CertificationRequest.signatureAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'csrSignatureParams'\n }]\n }, {\n // signature\n name: 'CertificationRequest.signature',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n captureBitStringValue: 'csrSignature'\n }\n ]\n};\n\n/**\n * Converts an RDNSequence of ASN.1 DER-encoded RelativeDistinguishedName\n * sets into an array with objects that have type and value properties.\n *\n * @param rdn the RDNSequence to convert.\n * @param md a message digest to append type and value to if provided.\n */\npki.RDNAttributesAsArray = function(rdn, md) {\n var rval = [];\n\n // each value in 'rdn' in is a SET of RelativeDistinguishedName\n var set, attr, obj;\n for(var si = 0; si < rdn.value.length; ++si) {\n // get the RelativeDistinguishedName set\n set = rdn.value[si];\n\n // each value in the SET is an AttributeTypeAndValue sequence\n // containing first a type (an OID) and second a value (defined by\n // the OID)\n for(var i = 0; i < set.value.length; ++i) {\n obj = {};\n attr = set.value[i];\n obj.type = asn1.derToOid(attr.value[0].value);\n obj.value = attr.value[1].value;\n obj.valueTagClass = attr.value[1].type;\n // if the OID is known, get its name and short name\n if(obj.type in oids) {\n obj.name = oids[obj.type];\n if(obj.name in _shortNames) {\n obj.shortName = _shortNames[obj.name];\n }\n }\n if(md) {\n md.update(obj.type);\n md.update(obj.value);\n }\n rval.push(obj);\n }\n }\n\n return rval;\n};\n\n/**\n * Converts ASN.1 CRIAttributes into an array with objects that have type and\n * value properties.\n *\n * @param attributes the CRIAttributes to convert.\n */\npki.CRIAttributesAsArray = function(attributes) {\n var rval = [];\n\n // each value in 'attributes' in is a SEQUENCE with an OID and a SET\n for(var si = 0; si < attributes.length; ++si) {\n // get the attribute sequence\n var seq = attributes[si];\n\n // each value in the SEQUENCE containing first a type (an OID) and\n // second a set of values (defined by the OID)\n var type = asn1.derToOid(seq.value[0].value);\n var values = seq.value[1].value;\n for(var vi = 0; vi < values.length; ++vi) {\n var obj = {};\n obj.type = type;\n obj.value = values[vi].value;\n obj.valueTagClass = values[vi].type;\n // if the OID is known, get its name and short name\n if(obj.type in oids) {\n obj.name = oids[obj.type];\n if(obj.name in _shortNames) {\n obj.shortName = _shortNames[obj.name];\n }\n }\n // parse extensions\n if(obj.type === oids.extensionRequest) {\n obj.extensions = [];\n for(var ei = 0; ei < obj.value.length; ++ei) {\n obj.extensions.push(pki.certificateExtensionFromAsn1(obj.value[ei]));\n }\n }\n rval.push(obj);\n }\n }\n\n return rval;\n};\n\n/**\n * Gets an issuer or subject attribute from its name, type, or short name.\n *\n * @param obj the issuer or subject object.\n * @param options a short name string or an object with:\n * shortName the short name for the attribute.\n * name the name for the attribute.\n * type the type for the attribute.\n *\n * @return the attribute.\n */\nfunction _getAttribute(obj, options) {\n if(typeof options === 'string') {\n options = {shortName: options};\n }\n\n var rval = null;\n var attr;\n for(var i = 0; rval === null && i < obj.attributes.length; ++i) {\n attr = obj.attributes[i];\n if(options.type && options.type === attr.type) {\n rval = attr;\n } else if(options.name && options.name === attr.name) {\n rval = attr;\n } else if(options.shortName && options.shortName === attr.shortName) {\n rval = attr;\n }\n }\n return rval;\n}\n\n/**\n * Converts signature parameters from ASN.1 structure.\n *\n * Currently only RSASSA-PSS supported. The PKCS#1 v1.5 signature scheme had\n * no parameters.\n *\n * RSASSA-PSS-params ::= SEQUENCE {\n * hashAlgorithm [0] HashAlgorithm DEFAULT\n * sha1Identifier,\n * maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT\n * mgf1SHA1Identifier,\n * saltLength [2] INTEGER DEFAULT 20,\n * trailerField [3] INTEGER DEFAULT 1\n * }\n *\n * HashAlgorithm ::= AlgorithmIdentifier\n *\n * MaskGenAlgorithm ::= AlgorithmIdentifier\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * @param oid The OID specifying the signature algorithm\n * @param obj The ASN.1 structure holding the parameters\n * @param fillDefaults Whether to use return default values where omitted\n * @return signature parameter object\n */\nvar _readSignatureParameters = function(oid, obj, fillDefaults) {\n var params = {};\n\n if(oid !== oids['RSASSA-PSS']) {\n return params;\n }\n\n if(fillDefaults) {\n params = {\n hash: {\n algorithmOid: oids['sha1']\n },\n mgf: {\n algorithmOid: oids['mgf1'],\n hash: {\n algorithmOid: oids['sha1']\n }\n },\n saltLength: 20\n };\n }\n\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, rsassaPssParameterValidator, capture, errors)) {\n var error = new Error('Cannot read RSASSA-PSS parameter block.');\n error.errors = errors;\n throw error;\n }\n\n if(capture.hashOid !== undefined) {\n params.hash = params.hash || {};\n params.hash.algorithmOid = asn1.derToOid(capture.hashOid);\n }\n\n if(capture.maskGenOid !== undefined) {\n params.mgf = params.mgf || {};\n params.mgf.algorithmOid = asn1.derToOid(capture.maskGenOid);\n params.mgf.hash = params.mgf.hash || {};\n params.mgf.hash.algorithmOid = asn1.derToOid(capture.maskGenHashOid);\n }\n\n if(capture.saltLength !== undefined) {\n params.saltLength = capture.saltLength.charCodeAt(0);\n }\n\n return params;\n};\n\n/**\n * Create signature digest for OID.\n *\n * @param options\n * signatureOid: the OID specifying the signature algorithm.\n * type: a human readable type for error messages\n * @return a created md instance. throws if unknown oid.\n */\nvar _createSignatureDigest = function(options) {\n switch(oids[options.signatureOid]) {\n case 'sha1WithRSAEncryption':\n // deprecated alias\n case 'sha1WithRSASignature':\n return forge.md.sha1.create();\n case 'md5WithRSAEncryption':\n return forge.md.md5.create();\n case 'sha256WithRSAEncryption':\n return forge.md.sha256.create();\n case 'sha384WithRSAEncryption':\n return forge.md.sha384.create();\n case 'sha512WithRSAEncryption':\n return forge.md.sha512.create();\n case 'RSASSA-PSS':\n return forge.md.sha256.create();\n default:\n var error = new Error(\n 'Could not compute ' + options.type + ' digest. ' +\n 'Unknown signature OID.');\n error.signatureOid = options.signatureOid;\n throw error;\n }\n};\n\n/**\n * Verify signature on certificate or CSR.\n *\n * @param options:\n * certificate the certificate or CSR to verify.\n * md the signature digest.\n * signature the signature\n * @return a created md instance. throws if unknown oid.\n */\nvar _verifySignature = function(options) {\n var cert = options.certificate;\n var scheme;\n\n switch(cert.signatureOid) {\n case oids.sha1WithRSAEncryption:\n // deprecated alias\n case oids.sha1WithRSASignature:\n /* use PKCS#1 v1.5 padding scheme */\n break;\n case oids['RSASSA-PSS']:\n var hash, mgf;\n\n /* initialize mgf */\n hash = oids[cert.signatureParameters.mgf.hash.algorithmOid];\n if(hash === undefined || forge.md[hash] === undefined) {\n var error = new Error('Unsupported MGF hash function.');\n error.oid = cert.signatureParameters.mgf.hash.algorithmOid;\n error.name = hash;\n throw error;\n }\n\n mgf = oids[cert.signatureParameters.mgf.algorithmOid];\n if(mgf === undefined || forge.mgf[mgf] === undefined) {\n var error = new Error('Unsupported MGF function.');\n error.oid = cert.signatureParameters.mgf.algorithmOid;\n error.name = mgf;\n throw error;\n }\n\n mgf = forge.mgf[mgf].create(forge.md[hash].create());\n\n /* initialize hash function */\n hash = oids[cert.signatureParameters.hash.algorithmOid];\n if(hash === undefined || forge.md[hash] === undefined) {\n var error = new Error('Unsupported RSASSA-PSS hash function.');\n error.oid = cert.signatureParameters.hash.algorithmOid;\n error.name = hash;\n throw error;\n }\n\n scheme = forge.pss.create(\n forge.md[hash].create(), mgf, cert.signatureParameters.saltLength\n );\n break;\n }\n\n // verify signature on cert using public key\n return cert.publicKey.verify(\n options.md.digest().getBytes(), options.signature, scheme\n );\n};\n\n/**\n * Converts an X.509 certificate from PEM format.\n *\n * Note: If the certificate is to be verified then compute hash should\n * be set to true. This will scan the TBSCertificate part of the ASN.1\n * object while it is converted so it doesn't need to be converted back\n * to ASN.1-DER-encoding later.\n *\n * @param pem the PEM-formatted certificate.\n * @param computeHash true to compute the hash for verification.\n * @param strict true to be strict when checking ASN.1 value lengths, false to\n * allow truncated values (default: true).\n *\n * @return the certificate.\n */\npki.certificateFromPem = function(pem, computeHash, strict) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'CERTIFICATE' &&\n msg.type !== 'X509 CERTIFICATE' &&\n msg.type !== 'TRUSTED CERTIFICATE') {\n var error = new Error(\n 'Could not convert certificate from PEM; PEM header type ' +\n 'is not \"CERTIFICATE\", \"X509 CERTIFICATE\", or \"TRUSTED CERTIFICATE\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error(\n 'Could not convert certificate from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body, strict);\n\n return pki.certificateFromAsn1(obj, computeHash);\n};\n\n/**\n * Converts an X.509 certificate to PEM format.\n *\n * @param cert the certificate.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted certificate.\n */\npki.certificateToPem = function(cert, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'CERTIFICATE',\n body: asn1.toDer(pki.certificateToAsn1(cert)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts an RSA public key from PEM format.\n *\n * @param pem the PEM-formatted public key.\n *\n * @return the public key.\n */\npki.publicKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PUBLIC KEY' && msg.type !== 'RSA PUBLIC KEY') {\n var error = new Error('Could not convert public key from PEM; PEM header ' +\n 'type is not \"PUBLIC KEY\" or \"RSA PUBLIC KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert public key from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return pki.publicKeyFromAsn1(obj);\n};\n\n/**\n * Converts an RSA public key to PEM format (using a SubjectPublicKeyInfo).\n *\n * @param key the public key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted public key.\n */\npki.publicKeyToPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'PUBLIC KEY',\n body: asn1.toDer(pki.publicKeyToAsn1(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts an RSA public key to PEM format (using an RSAPublicKey).\n *\n * @param key the public key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted public key.\n */\npki.publicKeyToRSAPublicKeyPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'RSA PUBLIC KEY',\n body: asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Gets a fingerprint for the given public key.\n *\n * @param options the options to use.\n * [md] the message digest object to use (defaults to forge.md.sha1).\n * [type] the type of fingerprint, such as 'RSAPublicKey',\n * 'SubjectPublicKeyInfo' (defaults to 'RSAPublicKey').\n * [encoding] an alternative output encoding, such as 'hex'\n * (defaults to none, outputs a byte buffer).\n * [delimiter] the delimiter to use between bytes for 'hex' encoded\n * output, eg: ':' (defaults to none).\n *\n * @return the fingerprint as a byte buffer or other encoding based on options.\n */\npki.getPublicKeyFingerprint = function(key, options) {\n options = options || {};\n var md = options.md || forge.md.sha1.create();\n var type = options.type || 'RSAPublicKey';\n\n var bytes;\n switch(type) {\n case 'RSAPublicKey':\n bytes = asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes();\n break;\n case 'SubjectPublicKeyInfo':\n bytes = asn1.toDer(pki.publicKeyToAsn1(key)).getBytes();\n break;\n default:\n throw new Error('Unknown fingerprint type \"' + options.type + '\".');\n }\n\n // hash public key bytes\n md.start();\n md.update(bytes);\n var digest = md.digest();\n if(options.encoding === 'hex') {\n var hex = digest.toHex();\n if(options.delimiter) {\n return hex.match(/.{2}/g).join(options.delimiter);\n }\n return hex;\n } else if(options.encoding === 'binary') {\n return digest.getBytes();\n } else if(options.encoding) {\n throw new Error('Unknown encoding \"' + options.encoding + '\".');\n }\n return digest;\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) from PEM format.\n *\n * Note: If the certification request is to be verified then compute hash\n * should be set to true. This will scan the CertificationRequestInfo part of\n * the ASN.1 object while it is converted so it doesn't need to be converted\n * back to ASN.1-DER-encoding later.\n *\n * @param pem the PEM-formatted certificate.\n * @param computeHash true to compute the hash for verification.\n * @param strict true to be strict when checking ASN.1 value lengths, false to\n * allow truncated values (default: true).\n *\n * @return the certification request (CSR).\n */\npki.certificationRequestFromPem = function(pem, computeHash, strict) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'CERTIFICATE REQUEST') {\n var error = new Error('Could not convert certification request from PEM; ' +\n 'PEM header type is not \"CERTIFICATE REQUEST\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert certification request from PEM; ' +\n 'PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body, strict);\n\n return pki.certificationRequestFromAsn1(obj, computeHash);\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) to PEM format.\n *\n * @param csr the certification request.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted certification request.\n */\npki.certificationRequestToPem = function(csr, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'CERTIFICATE REQUEST',\n body: asn1.toDer(pki.certificationRequestToAsn1(csr)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Creates an empty X.509v3 RSA certificate.\n *\n * @return the certificate.\n */\npki.createCertificate = function() {\n var cert = {};\n cert.version = 0x02;\n cert.serialNumber = '00';\n cert.signatureOid = null;\n cert.signature = null;\n cert.siginfo = {};\n cert.siginfo.algorithmOid = null;\n cert.validity = {};\n cert.validity.notBefore = new Date();\n cert.validity.notAfter = new Date();\n\n cert.issuer = {};\n cert.issuer.getField = function(sn) {\n return _getAttribute(cert.issuer, sn);\n };\n cert.issuer.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.issuer.attributes.push(attr);\n };\n cert.issuer.attributes = [];\n cert.issuer.hash = null;\n\n cert.subject = {};\n cert.subject.getField = function(sn) {\n return _getAttribute(cert.subject, sn);\n };\n cert.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.subject.attributes.push(attr);\n };\n cert.subject.attributes = [];\n cert.subject.hash = null;\n\n cert.extensions = [];\n cert.publicKey = null;\n cert.md = null;\n\n /**\n * Sets the subject of this certificate.\n *\n * @param attrs the array of subject attributes to use.\n * @param uniqueId an optional a unique ID to use.\n */\n cert.setSubject = function(attrs, uniqueId) {\n // set new attributes, clear hash\n _fillMissingFields(attrs);\n cert.subject.attributes = attrs;\n delete cert.subject.uniqueId;\n if(uniqueId) {\n // TODO: support arbitrary bit length ids\n cert.subject.uniqueId = uniqueId;\n }\n cert.subject.hash = null;\n };\n\n /**\n * Sets the issuer of this certificate.\n *\n * @param attrs the array of issuer attributes to use.\n * @param uniqueId an optional a unique ID to use.\n */\n cert.setIssuer = function(attrs, uniqueId) {\n // set new attributes, clear hash\n _fillMissingFields(attrs);\n cert.issuer.attributes = attrs;\n delete cert.issuer.uniqueId;\n if(uniqueId) {\n // TODO: support arbitrary bit length ids\n cert.issuer.uniqueId = uniqueId;\n }\n cert.issuer.hash = null;\n };\n\n /**\n * Sets the extensions of this certificate.\n *\n * @param exts the array of extensions to use.\n */\n cert.setExtensions = function(exts) {\n for(var i = 0; i < exts.length; ++i) {\n _fillMissingExtensionFields(exts[i], {cert: cert});\n }\n // set new extensions\n cert.extensions = exts;\n };\n\n /**\n * Gets an extension by its name or id.\n *\n * @param options the name to use or an object with:\n * name the name to use.\n * id the id to use.\n *\n * @return the extension or null if not found.\n */\n cert.getExtension = function(options) {\n if(typeof options === 'string') {\n options = {name: options};\n }\n\n var rval = null;\n var ext;\n for(var i = 0; rval === null && i < cert.extensions.length; ++i) {\n ext = cert.extensions[i];\n if(options.id && ext.id === options.id) {\n rval = ext;\n } else if(options.name && ext.name === options.name) {\n rval = ext;\n }\n }\n return rval;\n };\n\n /**\n * Signs this certificate using the given private key.\n *\n * @param key the private key to sign with.\n * @param md the message digest object to use (defaults to forge.md.sha1).\n */\n cert.sign = function(key, md) {\n // TODO: get signature OID from private key\n cert.md = md || forge.md.sha1.create();\n var algorithmOid = oids[cert.md.algorithm + 'WithRSAEncryption'];\n if(!algorithmOid) {\n var error = new Error('Could not compute certificate digest. ' +\n 'Unknown message digest algorithm OID.');\n error.algorithm = cert.md.algorithm;\n throw error;\n }\n cert.signatureOid = cert.siginfo.algorithmOid = algorithmOid;\n\n // get TBSCertificate, convert to DER\n cert.tbsCertificate = pki.getTBSCertificate(cert);\n var bytes = asn1.toDer(cert.tbsCertificate);\n\n // digest and sign\n cert.md.update(bytes.getBytes());\n cert.signature = key.sign(cert.md);\n };\n\n /**\n * Attempts verify the signature on the passed certificate using this\n * certificate's public key.\n *\n * @param child the certificate to verify.\n *\n * @return true if verified, false if not.\n */\n cert.verify = function(child) {\n var rval = false;\n\n if(!cert.issued(child)) {\n var issuer = child.issuer;\n var subject = cert.subject;\n var error = new Error(\n 'The parent certificate did not issue the given child ' +\n 'certificate; the child certificate\\'s issuer does not match the ' +\n 'parent\\'s subject.');\n error.expectedIssuer = subject.attributes;\n error.actualIssuer = issuer.attributes;\n throw error;\n }\n\n var md = child.md;\n if(md === null) {\n // create digest for OID signature types\n md = _createSignatureDigest({\n signatureOid: child.signatureOid,\n type: 'certificate'\n });\n\n // produce DER formatted TBSCertificate and digest it\n var tbsCertificate = child.tbsCertificate || pki.getTBSCertificate(child);\n var bytes = asn1.toDer(tbsCertificate);\n md.update(bytes.getBytes());\n }\n\n if(md !== null) {\n rval = _verifySignature({\n certificate: cert, md: md, signature: child.signature\n });\n }\n\n return rval;\n };\n\n /**\n * Returns true if this certificate's issuer matches the passed\n * certificate's subject. Note that no signature check is performed.\n *\n * @param parent the certificate to check.\n *\n * @return true if this certificate's issuer matches the passed certificate's\n * subject.\n */\n cert.isIssuer = function(parent) {\n var rval = false;\n\n var i = cert.issuer;\n var s = parent.subject;\n\n // compare hashes if present\n if(i.hash && s.hash) {\n rval = (i.hash === s.hash);\n } else if(i.attributes.length === s.attributes.length) {\n // all attributes are the same so issuer matches subject\n rval = true;\n var iattr, sattr;\n for(var n = 0; rval && n < i.attributes.length; ++n) {\n iattr = i.attributes[n];\n sattr = s.attributes[n];\n if(iattr.type !== sattr.type || iattr.value !== sattr.value) {\n // attribute mismatch\n rval = false;\n }\n }\n }\n\n return rval;\n };\n\n /**\n * Returns true if this certificate's subject matches the issuer of the\n * given certificate). Note that not signature check is performed.\n *\n * @param child the certificate to check.\n *\n * @return true if this certificate's subject matches the passed\n * certificate's issuer.\n */\n cert.issued = function(child) {\n return child.isIssuer(cert);\n };\n\n /**\n * Generates the subjectKeyIdentifier for this certificate as byte buffer.\n *\n * @return the subjectKeyIdentifier for this certificate as byte buffer.\n */\n cert.generateSubjectKeyIdentifier = function() {\n /* See: 4.2.1.2 section of the the RFC3280, keyIdentifier is either:\n\n (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the\n value of the BIT STRING subjectPublicKey (excluding the tag,\n length, and number of unused bits).\n\n (2) The keyIdentifier is composed of a four bit type field with\n the value 0100 followed by the least significant 60 bits of the\n SHA-1 hash of the value of the BIT STRING subjectPublicKey\n (excluding the tag, length, and number of unused bit string bits).\n */\n\n // skipping the tag, length, and number of unused bits is the same\n // as just using the RSAPublicKey (for RSA keys, which are the\n // only ones supported)\n return pki.getPublicKeyFingerprint(cert.publicKey, {type: 'RSAPublicKey'});\n };\n\n /**\n * Verifies the subjectKeyIdentifier extension value for this certificate\n * against its public key. If no extension is found, false will be\n * returned.\n *\n * @return true if verified, false if not.\n */\n cert.verifySubjectKeyIdentifier = function() {\n var oid = oids['subjectKeyIdentifier'];\n for(var i = 0; i < cert.extensions.length; ++i) {\n var ext = cert.extensions[i];\n if(ext.id === oid) {\n var ski = cert.generateSubjectKeyIdentifier().getBytes();\n return (forge.util.hexToBytes(ext.subjectKeyIdentifier) === ski);\n }\n }\n return false;\n };\n\n return cert;\n};\n\n/**\n * Converts an X.509v3 RSA certificate from an ASN.1 object.\n *\n * Note: If the certificate is to be verified then compute hash should\n * be set to true. There is currently no implementation for converting\n * a certificate back to ASN.1 so the TBSCertificate part of the ASN.1\n * object needs to be scanned before the cert object is created.\n *\n * @param obj the asn1 representation of an X.509v3 RSA certificate.\n * @param computeHash true to compute the hash for verification.\n *\n * @return the certificate.\n */\npki.certificateFromAsn1 = function(obj, computeHash) {\n // validate certificate and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, x509CertificateValidator, capture, errors)) {\n var error = new Error('Cannot read X.509 certificate. ' +\n 'ASN.1 object is not an X509v3 Certificate.');\n error.errors = errors;\n throw error;\n }\n\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n throw new Error('Cannot read public key. OID is not RSA.');\n }\n\n // create certificate\n var cert = pki.createCertificate();\n cert.version = capture.certVersion ?\n capture.certVersion.charCodeAt(0) : 0;\n var serial = forge.util.createBuffer(capture.certSerialNumber);\n cert.serialNumber = serial.toHex();\n cert.signatureOid = forge.asn1.derToOid(capture.certSignatureOid);\n cert.signatureParameters = _readSignatureParameters(\n cert.signatureOid, capture.certSignatureParams, true);\n cert.siginfo.algorithmOid = forge.asn1.derToOid(capture.certinfoSignatureOid);\n cert.siginfo.parameters = _readSignatureParameters(cert.siginfo.algorithmOid,\n capture.certinfoSignatureParams, false);\n cert.signature = capture.certSignature;\n\n var validity = [];\n if(capture.certValidity1UTCTime !== undefined) {\n validity.push(asn1.utcTimeToDate(capture.certValidity1UTCTime));\n }\n if(capture.certValidity2GeneralizedTime !== undefined) {\n validity.push(asn1.generalizedTimeToDate(\n capture.certValidity2GeneralizedTime));\n }\n if(capture.certValidity3UTCTime !== undefined) {\n validity.push(asn1.utcTimeToDate(capture.certValidity3UTCTime));\n }\n if(capture.certValidity4GeneralizedTime !== undefined) {\n validity.push(asn1.generalizedTimeToDate(\n capture.certValidity4GeneralizedTime));\n }\n if(validity.length > 2) {\n throw new Error('Cannot read notBefore/notAfter validity times; more ' +\n 'than two times were provided in the certificate.');\n }\n if(validity.length < 2) {\n throw new Error('Cannot read notBefore/notAfter validity times; they ' +\n 'were not provided as either UTCTime or GeneralizedTime.');\n }\n cert.validity.notBefore = validity[0];\n cert.validity.notAfter = validity[1];\n\n // keep TBSCertificate to preserve signature when exporting\n cert.tbsCertificate = capture.tbsCertificate;\n\n if(computeHash) {\n // create digest for OID signature type\n cert.md = _createSignatureDigest({\n signatureOid: cert.signatureOid,\n type: 'certificate'\n });\n\n // produce DER formatted TBSCertificate and digest it\n var bytes = asn1.toDer(cert.tbsCertificate);\n cert.md.update(bytes.getBytes());\n }\n\n // handle issuer, build issuer message digest\n var imd = forge.md.sha1.create();\n var ibytes = asn1.toDer(capture.certIssuer);\n imd.update(ibytes.getBytes());\n cert.issuer.getField = function(sn) {\n return _getAttribute(cert.issuer, sn);\n };\n cert.issuer.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.issuer.attributes.push(attr);\n };\n cert.issuer.attributes = pki.RDNAttributesAsArray(capture.certIssuer);\n if(capture.certIssuerUniqueId) {\n cert.issuer.uniqueId = capture.certIssuerUniqueId;\n }\n cert.issuer.hash = imd.digest().toHex();\n\n // handle subject, build subject message digest\n var smd = forge.md.sha1.create();\n var sbytes = asn1.toDer(capture.certSubject);\n smd.update(sbytes.getBytes());\n cert.subject.getField = function(sn) {\n return _getAttribute(cert.subject, sn);\n };\n cert.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.subject.attributes.push(attr);\n };\n cert.subject.attributes = pki.RDNAttributesAsArray(capture.certSubject);\n if(capture.certSubjectUniqueId) {\n cert.subject.uniqueId = capture.certSubjectUniqueId;\n }\n cert.subject.hash = smd.digest().toHex();\n\n // handle extensions\n if(capture.certExtensions) {\n cert.extensions = pki.certificateExtensionsFromAsn1(capture.certExtensions);\n } else {\n cert.extensions = [];\n }\n\n // convert RSA public key from ASN.1\n cert.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo);\n\n return cert;\n};\n\n/**\n * Converts an ASN.1 extensions object (with extension sequences as its\n * values) into an array of extension objects with types and values.\n *\n * Supported extensions:\n *\n * id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }\n * KeyUsage ::= BIT STRING {\n * digitalSignature (0),\n * nonRepudiation (1),\n * keyEncipherment (2),\n * dataEncipherment (3),\n * keyAgreement (4),\n * keyCertSign (5),\n * cRLSign (6),\n * encipherOnly (7),\n * decipherOnly (8)\n * }\n *\n * id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }\n * BasicConstraints ::= SEQUENCE {\n * cA BOOLEAN DEFAULT FALSE,\n * pathLenConstraint INTEGER (0..MAX) OPTIONAL\n * }\n *\n * subjectAltName EXTENSION ::= {\n * SYNTAX GeneralNames\n * IDENTIFIED BY id-ce-subjectAltName\n * }\n *\n * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName\n *\n * GeneralName ::= CHOICE {\n * otherName [0] INSTANCE OF OTHER-NAME,\n * rfc822Name [1] IA5String,\n * dNSName [2] IA5String,\n * x400Address [3] ORAddress,\n * directoryName [4] Name,\n * ediPartyName [5] EDIPartyName,\n * uniformResourceIdentifier [6] IA5String,\n * IPAddress [7] OCTET STRING,\n * registeredID [8] OBJECT IDENTIFIER\n * }\n *\n * OTHER-NAME ::= TYPE-IDENTIFIER\n *\n * EDIPartyName ::= SEQUENCE {\n * nameAssigner [0] DirectoryString {ub-name} OPTIONAL,\n * partyName [1] DirectoryString {ub-name}\n * }\n *\n * @param exts the extensions ASN.1 with extension sequences to parse.\n *\n * @return the array.\n */\npki.certificateExtensionsFromAsn1 = function(exts) {\n var rval = [];\n for(var i = 0; i < exts.value.length; ++i) {\n // get extension sequence\n var extseq = exts.value[i];\n for(var ei = 0; ei < extseq.value.length; ++ei) {\n rval.push(pki.certificateExtensionFromAsn1(extseq.value[ei]));\n }\n }\n\n return rval;\n};\n\n/**\n * Parses a single certificate extension from ASN.1.\n *\n * @param ext the extension in ASN.1 format.\n *\n * @return the parsed extension as an object.\n */\npki.certificateExtensionFromAsn1 = function(ext) {\n // an extension has:\n // [0] extnID OBJECT IDENTIFIER\n // [1] critical BOOLEAN DEFAULT FALSE\n // [2] extnValue OCTET STRING\n var e = {};\n e.id = asn1.derToOid(ext.value[0].value);\n e.critical = false;\n if(ext.value[1].type === asn1.Type.BOOLEAN) {\n e.critical = (ext.value[1].value.charCodeAt(0) !== 0x00);\n e.value = ext.value[2].value;\n } else {\n e.value = ext.value[1].value;\n }\n // if the oid is known, get its name\n if(e.id in oids) {\n e.name = oids[e.id];\n\n // handle key usage\n if(e.name === 'keyUsage') {\n // get value as BIT STRING\n var ev = asn1.fromDer(e.value);\n var b2 = 0x00;\n var b3 = 0x00;\n if(ev.value.length > 1) {\n // skip first byte, just indicates unused bits which\n // will be padded with 0s anyway\n // get bytes with flag bits\n b2 = ev.value.charCodeAt(1);\n b3 = ev.value.length > 2 ? ev.value.charCodeAt(2) : 0;\n }\n // set flags\n e.digitalSignature = (b2 & 0x80) === 0x80;\n e.nonRepudiation = (b2 & 0x40) === 0x40;\n e.keyEncipherment = (b2 & 0x20) === 0x20;\n e.dataEncipherment = (b2 & 0x10) === 0x10;\n e.keyAgreement = (b2 & 0x08) === 0x08;\n e.keyCertSign = (b2 & 0x04) === 0x04;\n e.cRLSign = (b2 & 0x02) === 0x02;\n e.encipherOnly = (b2 & 0x01) === 0x01;\n e.decipherOnly = (b3 & 0x80) === 0x80;\n } else if(e.name === 'basicConstraints') {\n // handle basic constraints\n // get value as SEQUENCE\n var ev = asn1.fromDer(e.value);\n // get cA BOOLEAN flag (defaults to false)\n if(ev.value.length > 0 && ev.value[0].type === asn1.Type.BOOLEAN) {\n e.cA = (ev.value[0].value.charCodeAt(0) !== 0x00);\n } else {\n e.cA = false;\n }\n // get path length constraint\n var value = null;\n if(ev.value.length > 0 && ev.value[0].type === asn1.Type.INTEGER) {\n value = ev.value[0].value;\n } else if(ev.value.length > 1) {\n value = ev.value[1].value;\n }\n if(value !== null) {\n e.pathLenConstraint = asn1.derToInteger(value);\n }\n } else if(e.name === 'extKeyUsage') {\n // handle extKeyUsage\n // value is a SEQUENCE of OIDs\n var ev = asn1.fromDer(e.value);\n for(var vi = 0; vi < ev.value.length; ++vi) {\n var oid = asn1.derToOid(ev.value[vi].value);\n if(oid in oids) {\n e[oids[oid]] = true;\n } else {\n e[oid] = true;\n }\n }\n } else if(e.name === 'nsCertType') {\n // handle nsCertType\n // get value as BIT STRING\n var ev = asn1.fromDer(e.value);\n var b2 = 0x00;\n if(ev.value.length > 1) {\n // skip first byte, just indicates unused bits which\n // will be padded with 0s anyway\n // get bytes with flag bits\n b2 = ev.value.charCodeAt(1);\n }\n // set flags\n e.client = (b2 & 0x80) === 0x80;\n e.server = (b2 & 0x40) === 0x40;\n e.email = (b2 & 0x20) === 0x20;\n e.objsign = (b2 & 0x10) === 0x10;\n e.reserved = (b2 & 0x08) === 0x08;\n e.sslCA = (b2 & 0x04) === 0x04;\n e.emailCA = (b2 & 0x02) === 0x02;\n e.objCA = (b2 & 0x01) === 0x01;\n } else if(\n e.name === 'subjectAltName' ||\n e.name === 'issuerAltName') {\n // handle subjectAltName/issuerAltName\n e.altNames = [];\n\n // ev is a SYNTAX SEQUENCE\n var gn;\n var ev = asn1.fromDer(e.value);\n for(var n = 0; n < ev.value.length; ++n) {\n // get GeneralName\n gn = ev.value[n];\n\n var altName = {\n type: gn.type,\n value: gn.value\n };\n e.altNames.push(altName);\n\n // Note: Support for types 1,2,6,7,8\n switch(gn.type) {\n // rfc822Name\n case 1:\n // dNSName\n case 2:\n // uniformResourceIdentifier (URI)\n case 6:\n break;\n // IPAddress\n case 7:\n // convert to IPv4/IPv6 string representation\n altName.ip = forge.util.bytesToIP(gn.value);\n break;\n // registeredID\n case 8:\n altName.oid = asn1.derToOid(gn.value);\n break;\n default:\n // unsupported\n }\n }\n } else if(e.name === 'subjectKeyIdentifier') {\n // value is an OCTETSTRING w/the hash of the key-type specific\n // public key structure (eg: RSAPublicKey)\n var ev = asn1.fromDer(e.value);\n e.subjectKeyIdentifier = forge.util.bytesToHex(ev.value);\n }\n }\n return e;\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) from an ASN.1 object.\n *\n * Note: If the certification request is to be verified then compute hash\n * should be set to true. There is currently no implementation for converting\n * a certificate back to ASN.1 so the CertificationRequestInfo part of the\n * ASN.1 object needs to be scanned before the csr object is created.\n *\n * @param obj the asn1 representation of a PKCS#10 certification request (CSR).\n * @param computeHash true to compute the hash for verification.\n *\n * @return the certification request (CSR).\n */\npki.certificationRequestFromAsn1 = function(obj, computeHash) {\n // validate certification request and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, certificationRequestValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#10 certificate request. ' +\n 'ASN.1 object is not a PKCS#10 CertificationRequest.');\n error.errors = errors;\n throw error;\n }\n\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n throw new Error('Cannot read public key. OID is not RSA.');\n }\n\n // create certification request\n var csr = pki.createCertificationRequest();\n csr.version = capture.csrVersion ? capture.csrVersion.charCodeAt(0) : 0;\n csr.signatureOid = forge.asn1.derToOid(capture.csrSignatureOid);\n csr.signatureParameters = _readSignatureParameters(\n csr.signatureOid, capture.csrSignatureParams, true);\n csr.siginfo.algorithmOid = forge.asn1.derToOid(capture.csrSignatureOid);\n csr.siginfo.parameters = _readSignatureParameters(\n csr.siginfo.algorithmOid, capture.csrSignatureParams, false);\n csr.signature = capture.csrSignature;\n\n // keep CertificationRequestInfo to preserve signature when exporting\n csr.certificationRequestInfo = capture.certificationRequestInfo;\n\n if(computeHash) {\n // create digest for OID signature type\n csr.md = _createSignatureDigest({\n signatureOid: csr.signatureOid,\n type: 'certification request'\n });\n\n // produce DER formatted CertificationRequestInfo and digest it\n var bytes = asn1.toDer(csr.certificationRequestInfo);\n csr.md.update(bytes.getBytes());\n }\n\n // handle subject, build subject message digest\n var smd = forge.md.sha1.create();\n csr.subject.getField = function(sn) {\n return _getAttribute(csr.subject, sn);\n };\n csr.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n csr.subject.attributes.push(attr);\n };\n csr.subject.attributes = pki.RDNAttributesAsArray(\n capture.certificationRequestInfoSubject, smd);\n csr.subject.hash = smd.digest().toHex();\n\n // convert RSA public key from ASN.1\n csr.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo);\n\n // convert attributes from ASN.1\n csr.getAttribute = function(sn) {\n return _getAttribute(csr, sn);\n };\n csr.addAttribute = function(attr) {\n _fillMissingFields([attr]);\n csr.attributes.push(attr);\n };\n csr.attributes = pki.CRIAttributesAsArray(\n capture.certificationRequestInfoAttributes || []);\n\n return csr;\n};\n\n/**\n * Creates an empty certification request (a CSR or certificate signing\n * request). Once created, its public key and attributes can be set and then\n * it can be signed.\n *\n * @return the empty certification request.\n */\npki.createCertificationRequest = function() {\n var csr = {};\n csr.version = 0x00;\n csr.signatureOid = null;\n csr.signature = null;\n csr.siginfo = {};\n csr.siginfo.algorithmOid = null;\n\n csr.subject = {};\n csr.subject.getField = function(sn) {\n return _getAttribute(csr.subject, sn);\n };\n csr.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n csr.subject.attributes.push(attr);\n };\n csr.subject.attributes = [];\n csr.subject.hash = null;\n\n csr.publicKey = null;\n csr.attributes = [];\n csr.getAttribute = function(sn) {\n return _getAttribute(csr, sn);\n };\n csr.addAttribute = function(attr) {\n _fillMissingFields([attr]);\n csr.attributes.push(attr);\n };\n csr.md = null;\n\n /**\n * Sets the subject of this certification request.\n *\n * @param attrs the array of subject attributes to use.\n */\n csr.setSubject = function(attrs) {\n // set new attributes\n _fillMissingFields(attrs);\n csr.subject.attributes = attrs;\n csr.subject.hash = null;\n };\n\n /**\n * Sets the attributes of this certification request.\n *\n * @param attrs the array of attributes to use.\n */\n csr.setAttributes = function(attrs) {\n // set new attributes\n _fillMissingFields(attrs);\n csr.attributes = attrs;\n };\n\n /**\n * Signs this certification request using the given private key.\n *\n * @param key the private key to sign with.\n * @param md the message digest object to use (defaults to forge.md.sha1).\n */\n csr.sign = function(key, md) {\n // TODO: get signature OID from private key\n csr.md = md || forge.md.sha1.create();\n var algorithmOid = oids[csr.md.algorithm + 'WithRSAEncryption'];\n if(!algorithmOid) {\n var error = new Error('Could not compute certification request digest. ' +\n 'Unknown message digest algorithm OID.');\n error.algorithm = csr.md.algorithm;\n throw error;\n }\n csr.signatureOid = csr.siginfo.algorithmOid = algorithmOid;\n\n // get CertificationRequestInfo, convert to DER\n csr.certificationRequestInfo = pki.getCertificationRequestInfo(csr);\n var bytes = asn1.toDer(csr.certificationRequestInfo);\n\n // digest and sign\n csr.md.update(bytes.getBytes());\n csr.signature = key.sign(csr.md);\n };\n\n /**\n * Attempts verify the signature on the passed certification request using\n * its public key.\n *\n * A CSR that has been exported to a file in PEM format can be verified using\n * OpenSSL using this command:\n *\n * openssl req -in -verify -noout -text\n *\n * @return true if verified, false if not.\n */\n csr.verify = function() {\n var rval = false;\n\n var md = csr.md;\n if(md === null) {\n md = _createSignatureDigest({\n signatureOid: csr.signatureOid,\n type: 'certification request'\n });\n\n // produce DER formatted CertificationRequestInfo and digest it\n var cri = csr.certificationRequestInfo ||\n pki.getCertificationRequestInfo(csr);\n var bytes = asn1.toDer(cri);\n md.update(bytes.getBytes());\n }\n\n if(md !== null) {\n rval = _verifySignature({\n certificate: csr, md: md, signature: csr.signature\n });\n }\n\n return rval;\n };\n\n return csr;\n};\n\n/**\n * Converts an X.509 subject or issuer to an ASN.1 RDNSequence.\n *\n * @param obj the subject or issuer (distinguished name).\n *\n * @return the ASN.1 RDNSequence.\n */\nfunction _dnToAsn1(obj) {\n // create an empty RDNSequence\n var rval = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // iterate over attributes\n var attr, set;\n var attrs = obj.attributes;\n for(var i = 0; i < attrs.length; ++i) {\n attr = attrs[i];\n var value = attr.value;\n\n // reuse tag class for attribute value if available\n var valueTagClass = asn1.Type.PRINTABLESTRING;\n if('valueTagClass' in attr) {\n valueTagClass = attr.valueTagClass;\n\n if(valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(value);\n }\n // FIXME: handle more encodings\n }\n\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n set = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n // AttributeValue\n asn1.create(asn1.Class.UNIVERSAL, valueTagClass, false, value)\n ])\n ]);\n rval.value.push(set);\n }\n\n return rval;\n}\n\n/**\n * Gets all printable attributes (typically of an issuer or subject) in a\n * simplified JSON format for display.\n *\n * @param attrs the attributes.\n *\n * @return the JSON for display.\n */\nfunction _getAttributesAsJson(attrs) {\n var rval = {};\n for(var i = 0; i < attrs.length; ++i) {\n var attr = attrs[i];\n if(attr.shortName && (\n attr.valueTagClass === asn1.Type.UTF8 ||\n attr.valueTagClass === asn1.Type.PRINTABLESTRING ||\n attr.valueTagClass === asn1.Type.IA5STRING)) {\n var value = attr.value;\n if(attr.valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(attr.value);\n }\n if(!(attr.shortName in rval)) {\n rval[attr.shortName] = value;\n } else if(forge.util.isArray(rval[attr.shortName])) {\n rval[attr.shortName].push(value);\n } else {\n rval[attr.shortName] = [rval[attr.shortName], value];\n }\n }\n }\n return rval;\n}\n\n/**\n * Fills in missing fields in attributes.\n *\n * @param attrs the attributes to fill missing fields in.\n */\nfunction _fillMissingFields(attrs) {\n var attr;\n for(var i = 0; i < attrs.length; ++i) {\n attr = attrs[i];\n\n // populate missing name\n if(typeof attr.name === 'undefined') {\n if(attr.type && attr.type in pki.oids) {\n attr.name = pki.oids[attr.type];\n } else if(attr.shortName && attr.shortName in _shortNames) {\n attr.name = pki.oids[_shortNames[attr.shortName]];\n }\n }\n\n // populate missing type (OID)\n if(typeof attr.type === 'undefined') {\n if(attr.name && attr.name in pki.oids) {\n attr.type = pki.oids[attr.name];\n } else {\n var error = new Error('Attribute type not specified.');\n error.attribute = attr;\n throw error;\n }\n }\n\n // populate missing shortname\n if(typeof attr.shortName === 'undefined') {\n if(attr.name && attr.name in _shortNames) {\n attr.shortName = _shortNames[attr.name];\n }\n }\n\n // convert extensions to value\n if(attr.type === oids.extensionRequest) {\n attr.valueConstructed = true;\n attr.valueTagClass = asn1.Type.SEQUENCE;\n if(!attr.value && attr.extensions) {\n attr.value = [];\n for(var ei = 0; ei < attr.extensions.length; ++ei) {\n attr.value.push(pki.certificateExtensionToAsn1(\n _fillMissingExtensionFields(attr.extensions[ei])));\n }\n }\n }\n\n if(typeof attr.value === 'undefined') {\n var error = new Error('Attribute value not specified.');\n error.attribute = attr;\n throw error;\n }\n }\n}\n\n/**\n * Fills in missing fields in certificate extensions.\n *\n * @param e the extension.\n * @param [options] the options to use.\n * [cert] the certificate the extensions are for.\n *\n * @return the extension.\n */\nfunction _fillMissingExtensionFields(e, options) {\n options = options || {};\n\n // populate missing name\n if(typeof e.name === 'undefined') {\n if(e.id && e.id in pki.oids) {\n e.name = pki.oids[e.id];\n }\n }\n\n // populate missing id\n if(typeof e.id === 'undefined') {\n if(e.name && e.name in pki.oids) {\n e.id = pki.oids[e.name];\n } else {\n var error = new Error('Extension ID not specified.');\n error.extension = e;\n throw error;\n }\n }\n\n if(typeof e.value !== 'undefined') {\n return e;\n }\n\n // handle missing value:\n\n // value is a BIT STRING\n if(e.name === 'keyUsage') {\n // build flags\n var unused = 0;\n var b2 = 0x00;\n var b3 = 0x00;\n if(e.digitalSignature) {\n b2 |= 0x80;\n unused = 7;\n }\n if(e.nonRepudiation) {\n b2 |= 0x40;\n unused = 6;\n }\n if(e.keyEncipherment) {\n b2 |= 0x20;\n unused = 5;\n }\n if(e.dataEncipherment) {\n b2 |= 0x10;\n unused = 4;\n }\n if(e.keyAgreement) {\n b2 |= 0x08;\n unused = 3;\n }\n if(e.keyCertSign) {\n b2 |= 0x04;\n unused = 2;\n }\n if(e.cRLSign) {\n b2 |= 0x02;\n unused = 1;\n }\n if(e.encipherOnly) {\n b2 |= 0x01;\n unused = 0;\n }\n if(e.decipherOnly) {\n b3 |= 0x80;\n unused = 7;\n }\n\n // create bit string\n var value = String.fromCharCode(unused);\n if(b3 !== 0) {\n value += String.fromCharCode(b2) + String.fromCharCode(b3);\n } else if(b2 !== 0) {\n value += String.fromCharCode(b2);\n }\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value);\n } else if(e.name === 'basicConstraints') {\n // basicConstraints is a SEQUENCE\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n // cA BOOLEAN flag defaults to false\n if(e.cA) {\n e.value.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false,\n String.fromCharCode(0xFF)));\n }\n if('pathLenConstraint' in e) {\n e.value.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(e.pathLenConstraint).getBytes()));\n }\n } else if(e.name === 'extKeyUsage') {\n // extKeyUsage is a SEQUENCE of OIDs\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n for(var key in e) {\n if(e[key] !== true) {\n continue;\n }\n // key is name in OID map\n if(key in oids) {\n seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID,\n false, asn1.oidToDer(oids[key]).getBytes()));\n } else if(key.indexOf('.') !== -1) {\n // assume key is an OID\n seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID,\n false, asn1.oidToDer(key).getBytes()));\n }\n }\n } else if(e.name === 'nsCertType') {\n // nsCertType is a BIT STRING\n // build flags\n var unused = 0;\n var b2 = 0x00;\n\n if(e.client) {\n b2 |= 0x80;\n unused = 7;\n }\n if(e.server) {\n b2 |= 0x40;\n unused = 6;\n }\n if(e.email) {\n b2 |= 0x20;\n unused = 5;\n }\n if(e.objsign) {\n b2 |= 0x10;\n unused = 4;\n }\n if(e.reserved) {\n b2 |= 0x08;\n unused = 3;\n }\n if(e.sslCA) {\n b2 |= 0x04;\n unused = 2;\n }\n if(e.emailCA) {\n b2 |= 0x02;\n unused = 1;\n }\n if(e.objCA) {\n b2 |= 0x01;\n unused = 0;\n }\n\n // create bit string\n var value = String.fromCharCode(unused);\n if(b2 !== 0) {\n value += String.fromCharCode(b2);\n }\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value);\n } else if(e.name === 'subjectAltName' || e.name === 'issuerAltName') {\n // SYNTAX SEQUENCE\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n var altName;\n for(var n = 0; n < e.altNames.length; ++n) {\n altName = e.altNames[n];\n var value = altName.value;\n // handle IP\n if(altName.type === 7 && altName.ip) {\n value = forge.util.bytesFromIP(altName.ip);\n if(value === null) {\n var error = new Error(\n 'Extension \"ip\" value is not a valid IPv4 or IPv6 address.');\n error.extension = e;\n throw error;\n }\n } else if(altName.type === 8) {\n // handle OID\n if(altName.oid) {\n value = asn1.oidToDer(asn1.oidToDer(altName.oid));\n } else {\n // deprecated ... convert value to OID\n value = asn1.oidToDer(value);\n }\n }\n e.value.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, altName.type, false,\n value));\n }\n } else if(e.name === 'nsComment' && options.cert) {\n // sanity check value is ASCII (req'd) and not too big\n if(!(/^[\\x00-\\x7F]*$/.test(e.comment)) ||\n (e.comment.length < 1) || (e.comment.length > 128)) {\n throw new Error('Invalid \"nsComment\" content.');\n }\n // IA5STRING opaque comment\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.IA5STRING, false, e.comment);\n } else if(e.name === 'subjectKeyIdentifier' && options.cert) {\n var ski = options.cert.generateSubjectKeyIdentifier();\n e.subjectKeyIdentifier = ski.toHex();\n // OCTETSTRING w/digest\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ski.getBytes());\n } else if(e.name === 'authorityKeyIdentifier' && options.cert) {\n // SYNTAX SEQUENCE\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n\n if(e.keyIdentifier) {\n var keyIdentifier = (e.keyIdentifier === true ?\n options.cert.generateSubjectKeyIdentifier().getBytes() :\n e.keyIdentifier);\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, false, keyIdentifier));\n }\n\n if(e.authorityCertIssuer) {\n var authorityCertIssuer = [\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 4, true, [\n _dnToAsn1(e.authorityCertIssuer === true ?\n options.cert.issuer : e.authorityCertIssuer)\n ])\n ];\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, authorityCertIssuer));\n }\n\n if(e.serialNumber) {\n var serialNumber = forge.util.hexToBytes(e.serialNumber === true ?\n options.cert.serialNumber : e.serialNumber);\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, false, serialNumber));\n }\n } else if(e.name === 'cRLDistributionPoints') {\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n\n // Create sub SEQUENCE of DistributionPointName\n var subSeq = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // Create fullName CHOICE\n var fullNameGeneralNames = asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n var altName;\n for(var n = 0; n < e.altNames.length; ++n) {\n altName = e.altNames[n];\n var value = altName.value;\n // handle IP\n if(altName.type === 7 && altName.ip) {\n value = forge.util.bytesFromIP(altName.ip);\n if(value === null) {\n var error = new Error(\n 'Extension \"ip\" value is not a valid IPv4 or IPv6 address.');\n error.extension = e;\n throw error;\n }\n } else if(altName.type === 8) {\n // handle OID\n if(altName.oid) {\n value = asn1.oidToDer(asn1.oidToDer(altName.oid));\n } else {\n // deprecated ... convert value to OID\n value = asn1.oidToDer(value);\n }\n }\n fullNameGeneralNames.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, altName.type, false,\n value));\n }\n\n // Add to the parent SEQUENCE\n subSeq.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, [fullNameGeneralNames]));\n seq.push(subSeq);\n }\n\n // ensure value has been defined by now\n if(typeof e.value === 'undefined') {\n var error = new Error('Extension value not specified.');\n error.extension = e;\n throw error;\n }\n\n return e;\n}\n\n/**\n * Convert signature parameters object to ASN.1\n *\n * @param {String} oid Signature algorithm OID\n * @param params The signature parametrs object\n * @return ASN.1 object representing signature parameters\n */\nfunction _signatureParametersToAsn1(oid, params) {\n switch(oid) {\n case oids['RSASSA-PSS']:\n var parts = [];\n\n if(params.hash.algorithmOid !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.hash.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ]));\n }\n\n if(params.mgf.algorithmOid !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.mgf.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.mgf.hash.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ])\n ]));\n }\n\n if(params.saltLength !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(params.saltLength).getBytes())\n ]));\n }\n\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, parts);\n\n default:\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '');\n }\n}\n\n/**\n * Converts a certification request's attributes to an ASN.1 set of\n * CRIAttributes.\n *\n * @param csr certification request.\n *\n * @return the ASN.1 set of CRIAttributes.\n */\nfunction _CRIAttributesToAsn1(csr) {\n // create an empty context-specific container\n var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n\n // no attributes, return empty container\n if(csr.attributes.length === 0) {\n return rval;\n }\n\n // each attribute has a sequence with a type and a set of values\n var attrs = csr.attributes;\n for(var i = 0; i < attrs.length; ++i) {\n var attr = attrs[i];\n var value = attr.value;\n\n // reuse tag class for attribute value if available\n var valueTagClass = asn1.Type.UTF8;\n if('valueTagClass' in attr) {\n valueTagClass = attr.valueTagClass;\n }\n if(valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(value);\n }\n var valueConstructed = false;\n if('valueConstructed' in attr) {\n valueConstructed = attr.valueConstructed;\n }\n // FIXME: handle more encodings\n\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n // AttributeValue\n asn1.create(\n asn1.Class.UNIVERSAL, valueTagClass, valueConstructed, value)\n ])\n ]);\n rval.value.push(seq);\n }\n\n return rval;\n}\n\nvar jan_1_1950 = new Date('1950-01-01T00:00:00Z');\nvar jan_1_2050 = new Date('2050-01-01T00:00:00Z');\n\n/**\n * Converts a Date object to ASN.1\n * Handles the different format before and after 1st January 2050\n *\n * @param date date object.\n *\n * @return the ASN.1 object representing the date.\n */\nfunction _dateToAsn1(date) {\n if(date >= jan_1_1950 && date < jan_1_2050) {\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false,\n asn1.dateToUtcTime(date));\n } else {\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false,\n asn1.dateToGeneralizedTime(date));\n }\n}\n\n/**\n * Gets the ASN.1 TBSCertificate part of an X.509v3 certificate.\n *\n * @param cert the certificate.\n *\n * @return the asn1 TBSCertificate.\n */\npki.getTBSCertificate = function(cert) {\n // TBSCertificate\n var notBefore = _dateToAsn1(cert.validity.notBefore);\n var notAfter = _dateToAsn1(cert.validity.notAfter);\n var tbs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // integer\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(cert.version).getBytes())\n ]),\n // serialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(cert.serialNumber)),\n // signature\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(cert.siginfo.algorithmOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(\n cert.siginfo.algorithmOid, cert.siginfo.parameters)\n ]),\n // issuer\n _dnToAsn1(cert.issuer),\n // validity\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n notBefore,\n notAfter\n ]),\n // subject\n _dnToAsn1(cert.subject),\n // SubjectPublicKeyInfo\n pki.publicKeyToAsn1(cert.publicKey)\n ]);\n\n if(cert.issuer.uniqueId) {\n // issuerUniqueID (optional)\n tbs.value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n // TODO: support arbitrary bit length ids\n String.fromCharCode(0x00) +\n cert.issuer.uniqueId\n )\n ])\n );\n }\n if(cert.subject.uniqueId) {\n // subjectUniqueID (optional)\n tbs.value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n // TODO: support arbitrary bit length ids\n String.fromCharCode(0x00) +\n cert.subject.uniqueId\n )\n ])\n );\n }\n\n if(cert.extensions.length > 0) {\n // extensions (optional)\n tbs.value.push(pki.certificateExtensionsToAsn1(cert.extensions));\n }\n\n return tbs;\n};\n\n/**\n * Gets the ASN.1 CertificationRequestInfo part of a\n * PKCS#10 CertificationRequest.\n *\n * @param csr the certification request.\n *\n * @return the asn1 CertificationRequestInfo.\n */\npki.getCertificationRequestInfo = function(csr) {\n // CertificationRequestInfo\n var cri = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(csr.version).getBytes()),\n // subject\n _dnToAsn1(csr.subject),\n // SubjectPublicKeyInfo\n pki.publicKeyToAsn1(csr.publicKey),\n // attributes\n _CRIAttributesToAsn1(csr)\n ]);\n\n return cri;\n};\n\n/**\n * Converts a DistinguishedName (subject or issuer) to an ASN.1 object.\n *\n * @param dn the DistinguishedName.\n *\n * @return the asn1 representation of a DistinguishedName.\n */\npki.distinguishedNameToAsn1 = function(dn) {\n return _dnToAsn1(dn);\n};\n\n/**\n * Converts an X.509v3 RSA certificate to an ASN.1 object.\n *\n * @param cert the certificate.\n *\n * @return the asn1 representation of an X.509v3 RSA certificate.\n */\npki.certificateToAsn1 = function(cert) {\n // prefer cached TBSCertificate over generating one\n var tbsCertificate = cert.tbsCertificate || pki.getTBSCertificate(cert);\n\n // Certificate\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // TBSCertificate\n tbsCertificate,\n // AlgorithmIdentifier (signature algorithm)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(cert.signatureOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(cert.signatureOid, cert.signatureParameters)\n ]),\n // SignatureValue\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n String.fromCharCode(0x00) + cert.signature)\n ]);\n};\n\n/**\n * Converts X.509v3 certificate extensions to ASN.1.\n *\n * @param exts the extensions to convert.\n *\n * @return the extensions in ASN.1 format.\n */\npki.certificateExtensionsToAsn1 = function(exts) {\n // create top-level extension container\n var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 3, true, []);\n\n // create extension sequence (stores a sequence for each extension)\n var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n rval.value.push(seq);\n\n for(var i = 0; i < exts.length; ++i) {\n seq.value.push(pki.certificateExtensionToAsn1(exts[i]));\n }\n\n return rval;\n};\n\n/**\n * Converts a single certificate extension to ASN.1.\n *\n * @param ext the extension to convert.\n *\n * @return the extension in ASN.1 format.\n */\npki.certificateExtensionToAsn1 = function(ext) {\n // create a sequence for each extension\n var extseq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // extnID (OID)\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(ext.id).getBytes()));\n\n // critical defaults to false\n if(ext.critical) {\n // critical BOOLEAN DEFAULT FALSE\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false,\n String.fromCharCode(0xFF)));\n }\n\n var value = ext.value;\n if(typeof ext.value !== 'string') {\n // value is asn.1\n value = asn1.toDer(value).getBytes();\n }\n\n // extnValue (OCTET STRING)\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, value));\n\n return extseq;\n};\n\n/**\n * Converts a PKCS#10 certification request to an ASN.1 object.\n *\n * @param csr the certification request.\n *\n * @return the asn1 representation of a certification request.\n */\npki.certificationRequestToAsn1 = function(csr) {\n // prefer cached CertificationRequestInfo over generating one\n var cri = csr.certificationRequestInfo ||\n pki.getCertificationRequestInfo(csr);\n\n // Certificate\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // CertificationRequestInfo\n cri,\n // AlgorithmIdentifier (signature algorithm)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(csr.signatureOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(csr.signatureOid, csr.signatureParameters)\n ]),\n // signature\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n String.fromCharCode(0x00) + csr.signature)\n ]);\n};\n\n/**\n * Creates a CA store.\n *\n * @param certs an optional array of certificate objects or PEM-formatted\n * certificate strings to add to the CA store.\n *\n * @return the CA store.\n */\npki.createCaStore = function(certs) {\n // create CA store\n var caStore = {\n // stored certificates\n certs: {}\n };\n\n /**\n * Gets the certificate that issued the passed certificate or its\n * 'parent'.\n *\n * @param cert the certificate to get the parent for.\n *\n * @return the parent certificate or null if none was found.\n */\n caStore.getIssuer = function(cert) {\n var rval = getBySubject(cert.issuer);\n\n // see if there are multiple matches\n /*if(forge.util.isArray(rval)) {\n // TODO: resolve multiple matches by checking\n // authorityKey/subjectKey/issuerUniqueID/other identifiers, etc.\n // FIXME: or alternatively do authority key mapping\n // if possible (X.509v1 certs can't work?)\n throw new Error('Resolving multiple issuer matches not implemented yet.');\n }*/\n\n return rval;\n };\n\n /**\n * Adds a trusted certificate to the store.\n *\n * @param cert the certificate to add as a trusted certificate (either a\n * pki.certificate object or a PEM-formatted certificate).\n */\n caStore.addCertificate = function(cert) {\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n\n ensureSubjectHasHash(cert.subject);\n\n if(!caStore.hasCertificate(cert)) { // avoid duplicate certificates in store\n if(cert.subject.hash in caStore.certs) {\n // subject hash already exists, append to array\n var tmp = caStore.certs[cert.subject.hash];\n if(!forge.util.isArray(tmp)) {\n tmp = [tmp];\n }\n tmp.push(cert);\n caStore.certs[cert.subject.hash] = tmp;\n } else {\n caStore.certs[cert.subject.hash] = cert;\n }\n }\n };\n\n /**\n * Checks to see if the given certificate is in the store.\n *\n * @param cert the certificate to check (either a pki.certificate or a\n * PEM-formatted certificate).\n *\n * @return true if the certificate is in the store, false if not.\n */\n caStore.hasCertificate = function(cert) {\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n\n var match = getBySubject(cert.subject);\n if(!match) {\n return false;\n }\n if(!forge.util.isArray(match)) {\n match = [match];\n }\n // compare DER-encoding of certificates\n var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes();\n for(var i = 0; i < match.length; ++i) {\n var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes();\n if(der1 === der2) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * Lists all of the certificates kept in the store.\n *\n * @return an array of all of the pki.certificate objects in the store.\n */\n caStore.listAllCertificates = function() {\n var certList = [];\n\n for(var hash in caStore.certs) {\n if(caStore.certs.hasOwnProperty(hash)) {\n var value = caStore.certs[hash];\n if(!forge.util.isArray(value)) {\n certList.push(value);\n } else {\n for(var i = 0; i < value.length; ++i) {\n certList.push(value[i]);\n }\n }\n }\n }\n\n return certList;\n };\n\n /**\n * Removes a certificate from the store.\n *\n * @param cert the certificate to remove (either a pki.certificate or a\n * PEM-formatted certificate).\n *\n * @return the certificate that was removed or null if the certificate\n * wasn't in store.\n */\n caStore.removeCertificate = function(cert) {\n var result;\n\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n ensureSubjectHasHash(cert.subject);\n if(!caStore.hasCertificate(cert)) {\n return null;\n }\n\n var match = getBySubject(cert.subject);\n\n if(!forge.util.isArray(match)) {\n result = caStore.certs[cert.subject.hash];\n delete caStore.certs[cert.subject.hash];\n return result;\n }\n\n // compare DER-encoding of certificates\n var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes();\n for(var i = 0; i < match.length; ++i) {\n var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes();\n if(der1 === der2) {\n result = match[i];\n match.splice(i, 1);\n }\n }\n if(match.length === 0) {\n delete caStore.certs[cert.subject.hash];\n }\n\n return result;\n };\n\n function getBySubject(subject) {\n ensureSubjectHasHash(subject);\n return caStore.certs[subject.hash] || null;\n }\n\n function ensureSubjectHasHash(subject) {\n // produce subject hash if it doesn't exist\n if(!subject.hash) {\n var md = forge.md.sha1.create();\n subject.attributes = pki.RDNAttributesAsArray(_dnToAsn1(subject), md);\n subject.hash = md.digest().toHex();\n }\n }\n\n // auto-add passed in certs\n if(certs) {\n // parse PEM-formatted certificates as necessary\n for(var i = 0; i < certs.length; ++i) {\n var cert = certs[i];\n caStore.addCertificate(cert);\n }\n }\n\n return caStore;\n};\n\n/**\n * Certificate verification errors, based on TLS.\n */\npki.certificateError = {\n bad_certificate: 'forge.pki.BadCertificate',\n unsupported_certificate: 'forge.pki.UnsupportedCertificate',\n certificate_revoked: 'forge.pki.CertificateRevoked',\n certificate_expired: 'forge.pki.CertificateExpired',\n certificate_unknown: 'forge.pki.CertificateUnknown',\n unknown_ca: 'forge.pki.UnknownCertificateAuthority'\n};\n\n/**\n * Verifies a certificate chain against the given Certificate Authority store\n * with an optional custom verify callback.\n *\n * @param caStore a certificate store to verify against.\n * @param chain the certificate chain to verify, with the root or highest\n * authority at the end (an array of certificates).\n * @param options a callback to be called for every certificate in the chain or\n * an object with:\n * verify a callback to be called for every certificate in the\n * chain\n * validityCheckDate the date against which the certificate\n * validity period should be checked. Pass null to not check\n * the validity period. By default, the current date is used.\n *\n * The verify callback has the following signature:\n *\n * verified - Set to true if certificate was verified, otherwise the\n * pki.certificateError for why the certificate failed.\n * depth - The current index in the chain, where 0 is the end point's cert.\n * certs - The certificate chain, *NOTE* an empty chain indicates an anonymous\n * end point.\n *\n * The function returns true on success and on failure either the appropriate\n * pki.certificateError or an object with 'error' set to the appropriate\n * pki.certificateError and 'message' set to a custom error message.\n *\n * @return true if successful, error thrown if not.\n */\npki.verifyCertificateChain = function(caStore, chain, options) {\n /* From: RFC3280 - Internet X.509 Public Key Infrastructure Certificate\n Section 6: Certification Path Validation\n See inline parentheticals related to this particular implementation.\n\n The primary goal of path validation is to verify the binding between\n a subject distinguished name or a subject alternative name and subject\n public key, as represented in the end entity certificate, based on the\n public key of the trust anchor. This requires obtaining a sequence of\n certificates that support that binding. That sequence should be provided\n in the passed 'chain'. The trust anchor should be in the given CA\n store. The 'end entity' certificate is the certificate provided by the\n end point (typically a server) and is the first in the chain.\n\n To meet this goal, the path validation process verifies, among other\n things, that a prospective certification path (a sequence of n\n certificates or a 'chain') satisfies the following conditions:\n\n (a) for all x in {1, ..., n-1}, the subject of certificate x is\n the issuer of certificate x+1;\n\n (b) certificate 1 is issued by the trust anchor;\n\n (c) certificate n is the certificate to be validated; and\n\n (d) for all x in {1, ..., n}, the certificate was valid at the\n time in question.\n\n Note that here 'n' is index 0 in the chain and 1 is the last certificate\n in the chain and it must be signed by a certificate in the connection's\n CA store.\n\n The path validation process also determines the set of certificate\n policies that are valid for this path, based on the certificate policies\n extension, policy mapping extension, policy constraints extension, and\n inhibit any-policy extension.\n\n Note: Policy mapping extension not supported (Not Required).\n\n Note: If the certificate has an unsupported critical extension, then it\n must be rejected.\n\n Note: A certificate is self-issued if the DNs that appear in the subject\n and issuer fields are identical and are not empty.\n\n The path validation algorithm assumes the following seven inputs are\n provided to the path processing logic. What this specific implementation\n will use is provided parenthetically:\n\n (a) a prospective certification path of length n (the 'chain')\n (b) the current date/time: ('now').\n (c) user-initial-policy-set: A set of certificate policy identifiers\n naming the policies that are acceptable to the certificate user.\n The user-initial-policy-set contains the special value any-policy\n if the user is not concerned about certificate policy\n (Not implemented. Any policy is accepted).\n (d) trust anchor information, describing a CA that serves as a trust\n anchor for the certification path. The trust anchor information\n includes:\n\n (1) the trusted issuer name,\n (2) the trusted public key algorithm,\n (3) the trusted public key, and\n (4) optionally, the trusted public key parameters associated\n with the public key.\n\n (Trust anchors are provided via certificates in the CA store).\n\n The trust anchor information may be provided to the path processing\n procedure in the form of a self-signed certificate. The trusted anchor\n information is trusted because it was delivered to the path processing\n procedure by some trustworthy out-of-band procedure. If the trusted\n public key algorithm requires parameters, then the parameters are\n provided along with the trusted public key (No parameters used in this\n implementation).\n\n (e) initial-policy-mapping-inhibit, which indicates if policy mapping is\n allowed in the certification path.\n (Not implemented, no policy checking)\n\n (f) initial-explicit-policy, which indicates if the path must be valid\n for at least one of the certificate policies in the user-initial-\n policy-set.\n (Not implemented, no policy checking)\n\n (g) initial-any-policy-inhibit, which indicates whether the\n anyPolicy OID should be processed if it is included in a\n certificate.\n (Not implemented, so any policy is valid provided that it is\n not marked as critical) */\n\n /* Basic Path Processing:\n\n For each certificate in the 'chain', the following is checked:\n\n 1. The certificate validity period includes the current time.\n 2. The certificate was signed by its parent (where the parent is either\n the next in the chain or from the CA store). Allow processing to\n continue to the next step if no parent is found but the certificate is\n in the CA store.\n 3. TODO: The certificate has not been revoked.\n 4. The certificate issuer name matches the parent's subject name.\n 5. TODO: If the certificate is self-issued and not the final certificate\n in the chain, skip this step, otherwise verify that the subject name\n is within one of the permitted subtrees of X.500 distinguished names\n and that each of the alternative names in the subjectAltName extension\n (critical or non-critical) is within one of the permitted subtrees for\n that name type.\n 6. TODO: If the certificate is self-issued and not the final certificate\n in the chain, skip this step, otherwise verify that the subject name\n is not within one of the excluded subtrees for X.500 distinguished\n names and none of the subjectAltName extension names are excluded for\n that name type.\n 7. The other steps in the algorithm for basic path processing involve\n handling the policy extension which is not presently supported in this\n implementation. Instead, if a critical policy extension is found, the\n certificate is rejected as not supported.\n 8. If the certificate is not the first or if its the only certificate in\n the chain (having no parent from the CA store or is self-signed) and it\n has a critical key usage extension, verify that the keyCertSign bit is\n set. If the key usage extension exists, verify that the basic\n constraints extension exists. If the basic constraints extension exists,\n verify that the cA flag is set. If pathLenConstraint is set, ensure that\n the number of certificates that precede in the chain (come earlier\n in the chain as implemented below), excluding the very first in the\n chain (typically the end-entity one), isn't greater than the\n pathLenConstraint. This constraint limits the number of intermediate\n CAs that may appear below a CA before only end-entity certificates\n may be issued. */\n\n // if a verify callback is passed as the third parameter, package it within\n // the options object. This is to support a legacy function signature that\n // expected the verify callback as the third parameter.\n if(typeof options === 'function') {\n options = {verify: options};\n }\n options = options || {};\n\n // copy cert chain references to another array to protect against changes\n // in verify callback\n chain = chain.slice(0);\n var certs = chain.slice(0);\n\n var validityCheckDate = options.validityCheckDate;\n // if no validityCheckDate is specified, default to the current date. Make\n // sure to maintain the value null because it indicates that the validity\n // period should not be checked.\n if(typeof validityCheckDate === 'undefined') {\n validityCheckDate = new Date();\n }\n\n // verify each cert in the chain using its parent, where the parent\n // is either the next in the chain or from the CA store\n var first = true;\n var error = null;\n var depth = 0;\n do {\n var cert = chain.shift();\n var parent = null;\n var selfSigned = false;\n\n if(validityCheckDate) {\n // 1. check valid time\n if(validityCheckDate < cert.validity.notBefore ||\n validityCheckDate > cert.validity.notAfter) {\n error = {\n message: 'Certificate is not valid yet or has expired.',\n error: pki.certificateError.certificate_expired,\n notBefore: cert.validity.notBefore,\n notAfter: cert.validity.notAfter,\n // TODO: we might want to reconsider renaming 'now' to\n // 'validityCheckDate' should this API be changed in the future.\n now: validityCheckDate\n };\n }\n }\n\n // 2. verify with parent from chain or CA store\n if(error === null) {\n parent = chain[0] || caStore.getIssuer(cert);\n if(parent === null) {\n // check for self-signed cert\n if(cert.isIssuer(cert)) {\n selfSigned = true;\n parent = cert;\n }\n }\n\n if(parent) {\n // FIXME: current CA store implementation might have multiple\n // certificates where the issuer can't be determined from the\n // certificate (happens rarely with, eg: old certificates) so normalize\n // by always putting parents into an array\n // TODO: there's may be an extreme degenerate case currently uncovered\n // where an old intermediate certificate seems to have a matching parent\n // but none of the parents actually verify ... but the intermediate\n // is in the CA and it should pass this check; needs investigation\n var parents = parent;\n if(!forge.util.isArray(parents)) {\n parents = [parents];\n }\n\n // try to verify with each possible parent (typically only one)\n var verified = false;\n while(!verified && parents.length > 0) {\n parent = parents.shift();\n try {\n verified = parent.verify(cert);\n } catch(ex) {\n // failure to verify, don't care why, try next one\n }\n }\n\n if(!verified) {\n error = {\n message: 'Certificate signature is invalid.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n\n if(error === null && (!parent || selfSigned) &&\n !caStore.hasCertificate(cert)) {\n // no parent issuer and certificate itself is not trusted\n error = {\n message: 'Certificate is not trusted.',\n error: pki.certificateError.unknown_ca\n };\n }\n }\n\n // TODO: 3. check revoked\n\n // 4. check for matching issuer/subject\n if(error === null && parent && !cert.isIssuer(parent)) {\n // parent is not issuer\n error = {\n message: 'Certificate issuer is invalid.',\n error: pki.certificateError.bad_certificate\n };\n }\n\n // 5. TODO: check names with permitted names tree\n\n // 6. TODO: check names against excluded names tree\n\n // 7. check for unsupported critical extensions\n if(error === null) {\n // supported extensions\n var se = {\n keyUsage: true,\n basicConstraints: true\n };\n for(var i = 0; error === null && i < cert.extensions.length; ++i) {\n var ext = cert.extensions[i];\n if(ext.critical && !(ext.name in se)) {\n error = {\n message:\n 'Certificate has an unsupported critical extension.',\n error: pki.certificateError.unsupported_certificate\n };\n }\n }\n }\n\n // 8. check for CA if cert is not first or is the only certificate\n // remaining in chain with no parent or is self-signed\n if(error === null &&\n (!first || (chain.length === 0 && (!parent || selfSigned)))) {\n // first check keyUsage extension and then basic constraints\n var bcExt = cert.getExtension('basicConstraints');\n var keyUsageExt = cert.getExtension('keyUsage');\n if(keyUsageExt !== null) {\n // keyCertSign must be true and there must be a basic\n // constraints extension\n if(!keyUsageExt.keyCertSign || bcExt === null) {\n // bad certificate\n error = {\n message:\n 'Certificate keyUsage or basicConstraints conflict ' +\n 'or indicate that the certificate is not a CA. ' +\n 'If the certificate is the only one in the chain or ' +\n 'isn\\'t the first then the certificate must be a ' +\n 'valid CA.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n // basic constraints cA flag must be set\n if(error === null && bcExt !== null && !bcExt.cA) {\n // bad certificate\n error = {\n message:\n 'Certificate basicConstraints indicates the certificate ' +\n 'is not a CA.',\n error: pki.certificateError.bad_certificate\n };\n }\n // if error is not null and keyUsage is available, then we know it\n // has keyCertSign and there is a basic constraints extension too,\n // which means we can check pathLenConstraint (if it exists)\n if(error === null && keyUsageExt !== null &&\n 'pathLenConstraint' in bcExt) {\n // pathLen is the maximum # of intermediate CA certs that can be\n // found between the current certificate and the end-entity (depth 0)\n // certificate; this number does not include the end-entity (depth 0,\n // last in the chain) even if it happens to be a CA certificate itself\n var pathLen = depth - 1;\n if(pathLen > bcExt.pathLenConstraint) {\n // pathLenConstraint violated, bad certificate\n error = {\n message:\n 'Certificate basicConstraints pathLenConstraint violated.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n }\n\n // call application callback\n var vfd = (error === null) ? true : error.error;\n var ret = options.verify ? options.verify(vfd, depth, certs) : vfd;\n if(ret === true) {\n // clear any set error\n error = null;\n } else {\n // if passed basic tests, set default message and alert\n if(vfd === true) {\n error = {\n message: 'The application rejected the certificate.',\n error: pki.certificateError.bad_certificate\n };\n }\n\n // check for custom error info\n if(ret || ret === 0) {\n // set custom message and error\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.error) {\n error.error = ret.error;\n }\n } else if(typeof ret === 'string') {\n // set custom error\n error.error = ret;\n }\n }\n\n // throw error\n throw error;\n }\n\n // no longer first cert in chain\n first = false;\n ++depth;\n } while(chain.length > 0);\n\n return true;\n};\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","'use strict';\nconst Queue = require('yocto-queue');\n\nconst pLimit = concurrency => {\n\tif (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.size > 0) {\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst run = async (fn, resolve, ...args) => {\n\t\tactiveCount++;\n\n\t\tconst result = (async () => fn(...args))();\n\n\t\tresolve(result);\n\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\tnext();\n\t};\n\n\tconst enqueue = (fn, resolve, ...args) => {\n\t\tqueue.enqueue(run.bind(null, fn, resolve, ...args));\n\n\t\t(async () => {\n\t\t\t// This function needs to wait until the next microtask before comparing\n\t\t\t// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously\n\t\t\t// when the run function is dequeued and called. The comparison in the if-statement\n\t\t\t// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\t\tqueue.dequeue()();\n\t\t\t}\n\t\t})();\n\t};\n\n\tconst generator = (fn, ...args) => new Promise(resolve => {\n\t\tenqueue(fn, resolve, ...args);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue: () => {\n\t\t\t\tqueue.clear();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn generator;\n};\n\nmodule.exports = pLimit;\n","'use strict';\nconst {promisify} = require('util');\nconst fs = require('fs');\n\nasync function isType(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\tconst stats = await promisify(fs[fsStatType])(filePath);\n\t\treturn stats[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nfunction isTypeSync(fsStatType, statsMethodName, filePath) {\n\tif (typeof filePath !== 'string') {\n\t\tthrow new TypeError(`Expected a string, got ${typeof filePath}`);\n\t}\n\n\ttry {\n\t\treturn fs[fsStatType](filePath)[statsMethodName]();\n\t} catch (error) {\n\t\tif (error.code === 'ENOENT') {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n\nexports.isFile = isType.bind(null, 'stat', 'isFile');\nexports.isDirectory = isType.bind(null, 'stat', 'isDirectory');\nexports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink');\nexports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile');\nexports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory');\nexports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink');\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n","'use strict';\n\nconst path = require('path');\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n SEP: path.sep,\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n output = token.close = `)${rest})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst path = require('path');\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst path = require('path');\nconst win32 = process.platform === 'win32';\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split('.').map(Number);\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n return true;\n }\n return false;\n};\n\nexports.isWindows = options => {\n if (options && typeof options.windows === 'boolean') {\n return options.windows;\n }\n return win32 === true || path.sep === '\\\\';\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n","var once = require('once')\nvar eos = require('end-of-stream')\nvar fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n if (!ancient) return false // newer node version do not need to care about fs is a special way\n if (!fs) return false // browser\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n callback = once(callback)\n\n var closed = false\n stream.on('close', function () {\n closed = true\n })\n\n eos(stream, {readable: reading, writable: writing}, function (err) {\n if (err) return callback(err)\n closed = true\n callback()\n })\n\n var destroyed = false\n return function (err) {\n if (closed) return\n if (destroyed) return\n destroyed = true\n\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n if (isFn(stream.destroy)) return stream.destroy()\n\n callback(err || new Error('stream was destroyed'))\n }\n}\n\nvar call = function (fn) {\n fn()\n}\n\nvar pipe = function (from, to) {\n return from.pipe(to)\n}\n\nvar pump = function () {\n var streams = Array.prototype.slice.call(arguments)\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n if (Array.isArray(streams[0])) streams = streams[0]\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n var error\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1\n var writing = i > 0\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err\n if (err) destroys.forEach(call)\n if (reading) return\n destroys.forEach(call)\n callback(error)\n })\n })\n\n return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n","var pump = require('pump')\nvar inherits = require('inherits')\nvar Duplexify = require('duplexify')\n\nvar toArray = function(args) {\n if (!args.length) return []\n return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args)\n}\n\nvar define = function(opts) {\n var Pumpify = function() {\n var streams = toArray(arguments)\n if (!(this instanceof Pumpify)) return new Pumpify(streams)\n Duplexify.call(this, null, null, opts)\n if (streams.length) this.setPipeline(streams)\n }\n\n inherits(Pumpify, Duplexify)\n\n Pumpify.prototype.setPipeline = function() {\n var streams = toArray(arguments)\n var self = this\n var ended = false\n var w = streams[0]\n var r = streams[streams.length-1]\n\n r = r.readable ? r : null\n w = w.writable ? w : null\n\n var onclose = function() {\n streams[0].emit('error', new Error('stream was destroyed'))\n }\n\n this.on('close', onclose)\n this.on('prefinish', function() {\n if (!ended) self.cork()\n })\n\n pump(streams, function(err) {\n self.removeListener('close', onclose)\n if (err) return self.destroy(err.message === 'premature close' ? null : err)\n ended = true\n // pump ends after the last stream is not writable *but*\n // pumpify still forwards the readable part so we need to catch errors\n // still, so reenable autoDestroy in this case\n if (self._autoDestroy === false) self._autoDestroy = true\n self.uncork()\n })\n\n if (this.destroyed) return onclose()\n this.setWritable(w)\n this.setReadable(r)\n }\n\n return Pumpify\n}\n\nmodule.exports = define({autoDestroy:false, destroy:false})\nmodule.exports.obj = define({autoDestroy: false, destroy:false, objectMode:true, highWaterMark:16})\nmodule.exports.ctor = define\n","/*! queue-microtask. MIT License. Feross Aboukhadijeh */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n","'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\n\nfunction from(Readable, iterable, opts) {\n var iterator;\n\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts)); // Reading boolean to protect against _read\n // being called before last iteration completion.\n\n var reading = false;\n\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n\n function next() {\n return _next2.apply(this, arguments);\n }\n\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _ref = yield iterator.next(),\n value = _ref.value,\n done = _ref.done;\n\n if (done) {\n readable.push(null);\n } else if (readable.push((yield value))) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n\n return readable;\n}\n\nmodule.exports = from;","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('stream');\n","var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n","'use strict';\n\nvar { PassThrough } = require('stream');\nvar debug = require('debug')('retry-request');\nvar extend = require('extend');\n\nvar DEFAULTS = {\n objectMode: false,\n retries: 2,\n\n /*\n The maximum time to delay in seconds. If retryDelayMultiplier results in a\n delay greater than maxRetryDelay, retries should delay by maxRetryDelay\n seconds instead.\n */\n maxRetryDelay: 64, \n\n /*\n The multiplier by which to increase the delay time between the completion of\n failed requests, and the initiation of the subsequent retrying request.\n */\n retryDelayMultiplier: 2,\n\n /*\n The length of time to keep retrying in seconds. The last sleep period will\n be shortened as necessary, so that the last retry runs at deadline (and not\n considerably beyond it). The total time starting from when the initial\n request is sent, after which an error will be returned, regardless of the\n retrying attempts made meanwhile.\n */\n totalTimeout: 600,\n\n noResponseRetries: 2,\n currentRetryAttempt: 0,\n shouldRetryFn: function (response) {\n var retryRanges = [\n // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\n // 1xx - Retry (Informational, request still processing)\n // 2xx - Do not retry (Success)\n // 3xx - Do not retry (Redirect)\n // 4xx - Do not retry (Client errors)\n // 429 - Retry (\"Too Many Requests\")\n // 5xx - Retry (Server errors)\n [100, 199],\n [429, 429],\n [500, 599]\n ];\n\n var statusCode = response.statusCode;\n debug(`Response status: ${statusCode}`);\n\n var range;\n while ((range = retryRanges.shift())) {\n if (statusCode >= range[0] && statusCode <= range[1]) {\n // Not a successful status or redirect.\n return true;\n }\n }\n }\n};\n\nfunction retryRequest(requestOpts, opts, callback) {\n var streamMode = typeof arguments[arguments.length - 1] !== 'function';\n\n if (typeof opts === 'function') {\n callback = opts;\n }\n\n var manualCurrentRetryAttemptWasSet = opts && typeof opts.currentRetryAttempt === 'number';\n opts = extend({}, DEFAULTS, opts);\n\n if (typeof opts.request === 'undefined') {\n try {\n opts.request = require('request');\n } catch (e) {\n throw new Error('A request library must be provided to retry-request.');\n }\n }\n\n var currentRetryAttempt = opts.currentRetryAttempt;\n\n var numNoResponseAttempts = 0;\n var streamResponseHandled = false;\n\n var retryStream;\n var requestStream;\n var delayStream;\n\n var activeRequest;\n var retryRequest = {\n abort: function () {\n if (activeRequest && activeRequest.abort) {\n activeRequest.abort();\n }\n }\n };\n\n if (streamMode) {\n retryStream = new PassThrough({ objectMode: opts.objectMode });\n retryStream.abort = resetStreams;\n }\n\n var timeOfFirstRequest = Date.now();\n if (currentRetryAttempt > 0) {\n retryAfterDelay(currentRetryAttempt);\n } else {\n makeRequest();\n }\n\n if (streamMode) {\n return retryStream;\n } else {\n return retryRequest;\n }\n\n function resetStreams() {\n delayStream = null;\n\n if (requestStream) {\n requestStream.abort && requestStream.abort();\n requestStream.cancel && requestStream.cancel();\n\n if (requestStream.destroy) {\n requestStream.destroy();\n } else if (requestStream.end) {\n requestStream.end();\n }\n }\n }\n\n function makeRequest() {\n currentRetryAttempt++;\n debug(`Current retry attempt: ${currentRetryAttempt}`);\n\n if (streamMode) {\n streamResponseHandled = false;\n\n delayStream = new PassThrough({ objectMode: opts.objectMode });\n requestStream = opts.request(requestOpts);\n\n setImmediate(function () {\n retryStream.emit('request');\n });\n\n requestStream\n // gRPC via google-cloud-node can emit an `error` as well as a `response`\n // Whichever it emits, we run with-- we can't run with both. That's what\n // is up with the `streamResponseHandled` tracking.\n .on('error', function (err) {\n if (streamResponseHandled) {\n return;\n }\n\n streamResponseHandled = true;\n onResponse(err);\n })\n .on('response', function (resp, body) {\n if (streamResponseHandled) {\n return;\n }\n\n streamResponseHandled = true;\n onResponse(null, resp, body);\n })\n .on('complete', retryStream.emit.bind(retryStream, 'complete'));\n\n requestStream.pipe(delayStream);\n } else {\n activeRequest = opts.request(requestOpts, onResponse);\n }\n }\n\n function retryAfterDelay(currentRetryAttempt) {\n if (streamMode) {\n resetStreams();\n }\n\n var nextRetryDelay = getNextRetryDelay({\n maxRetryDelay: opts.maxRetryDelay,\n retryDelayMultiplier: opts.retryDelayMultiplier,\n retryNumber: currentRetryAttempt,\n timeOfFirstRequest,\n totalTimeout: opts.totalTimeout,\n });\n debug(`Next retry delay: ${nextRetryDelay}`);\n\n setTimeout(makeRequest, nextRetryDelay);\n }\n\n function onResponse(err, response, body) {\n // An error such as DNS resolution.\n if (err) {\n numNoResponseAttempts++;\n\n if (numNoResponseAttempts <= opts.noResponseRetries) {\n retryAfterDelay(numNoResponseAttempts);\n } else {\n if (streamMode) {\n retryStream.emit('error', err);\n retryStream.end();\n } else {\n callback(err, response, body);\n }\n }\n\n return;\n }\n\n // Send the response to see if we should try again.\n // NOTE: \"currentRetryAttempt\" isn't accurate by default, as it counts\n // the very first request sent as the first \"retry\". It is only accurate\n // when a user provides their own \"currentRetryAttempt\" option at\n // instantiation.\n var adjustedCurrentRetryAttempt = manualCurrentRetryAttemptWasSet ? currentRetryAttempt : currentRetryAttempt - 1;\n if (adjustedCurrentRetryAttempt < opts.retries && opts.shouldRetryFn(response)) {\n retryAfterDelay(currentRetryAttempt);\n return;\n }\n\n // No more attempts need to be made, just continue on.\n if (streamMode) {\n retryStream.emit('response', response);\n delayStream.pipe(retryStream);\n requestStream.on('error', function (err) {\n retryStream.destroy(err);\n });\n } else {\n callback(err, response, body);\n }\n }\n}\n\nmodule.exports = retryRequest;\n\nfunction getNextRetryDelay(config) {\n var {\n maxRetryDelay,\n retryDelayMultiplier,\n retryNumber,\n timeOfFirstRequest,\n totalTimeout,\n } = config;\n\n var maxRetryDelayMs = maxRetryDelay * 1000;\n var totalTimeoutMs = totalTimeout * 1000;\n\n var jitter = Math.floor(Math.random() * 1000);\n var calculatedNextRetryDelay = Math.pow(retryDelayMultiplier, retryNumber) * 1000 + jitter;\n\n var maxAllowableDelayMs = totalTimeoutMs - (Date.now() - timeOfFirstRequest);\n\n return Math.min(calculatedNextRetryDelay, maxAllowableDelayMs, maxRetryDelayMs);\n}\n\nmodule.exports.getNextRetryDelay = getNextRetryDelay;\n","module.exports = require('./lib/retry');","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","'use strict'\n\nfunction reusify (Constructor) {\n var head = new Constructor()\n var tail = head\n\n function get () {\n var current = head\n\n if (current.next) {\n head = current.next\n } else {\n head = new Constructor()\n tail = head\n }\n\n current.next = null\n\n return current\n }\n\n function release (obj) {\n tail.next = obj\n tail = obj\n }\n\n return {\n get: get,\n release: release\n }\n}\n\nmodule.exports = reusify\n","/*! run-parallel. MIT License. Feross Aboukhadijeh */\nmodule.exports = runParallel\n\nconst queueMicrotask = require('queue-microtask')\n\nfunction runParallel (tasks, cb) {\n let results, pending, keys\n let isSync = true\n\n if (Array.isArray(tasks)) {\n results = []\n pending = tasks.length\n } else {\n keys = Object.keys(tasks)\n results = {}\n pending = keys.length\n }\n\n function done (err) {\n function end () {\n if (cb) cb(err, results)\n cb = null\n }\n if (isSync) queueMicrotask(end)\n else end()\n }\n\n function each (i, err, result) {\n results[i] = result\n if (--pending === 0 || err) {\n done(err)\n }\n }\n\n if (!pending) {\n // empty\n done(null)\n } else if (keys) {\n // object\n keys.forEach(function (key) {\n tasks[key](function (err, result) { each(key, err, result) })\n })\n } else {\n // array\n tasks.forEach(function (task, i) {\n task(function (err, result) { each(i, err, result) })\n })\n }\n\n isSync = false\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nvar process = global.process\n\nconst processOk = function (process) {\n return process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n}\n\n// some kind of non-node environment, just no-op\n/* istanbul ignore if */\nif (!processOk(process)) {\n module.exports = function () {\n return function () {}\n }\n} else {\n var assert = require('assert')\n var signals = require('./signals.js')\n var isWin = /^win/i.test(process.platform)\n\n var EE = require('events')\n /* istanbul ignore if */\n if (typeof EE !== 'function') {\n EE = EE.EventEmitter\n }\n\n var emitter\n if (process.__signal_exit_emitter__) {\n emitter = process.__signal_exit_emitter__\n } else {\n emitter = process.__signal_exit_emitter__ = new EE()\n emitter.count = 0\n emitter.emitted = {}\n }\n\n // Because this emitter is a global, we have to check to see if a\n // previous version of this library failed to enable infinite listeners.\n // I know what you're about to say. But literally everything about\n // signal-exit is a compromise with evil. Get used to it.\n if (!emitter.infinite) {\n emitter.setMaxListeners(Infinity)\n emitter.infinite = true\n }\n\n module.exports = function (cb, opts) {\n /* istanbul ignore if */\n if (!processOk(global.process)) {\n return function () {}\n }\n assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')\n\n if (loaded === false) {\n load()\n }\n\n var ev = 'exit'\n if (opts && opts.alwaysLast) {\n ev = 'afterexit'\n }\n\n var remove = function () {\n emitter.removeListener(ev, cb)\n if (emitter.listeners('exit').length === 0 &&\n emitter.listeners('afterexit').length === 0) {\n unload()\n }\n }\n emitter.on(ev, cb)\n\n return remove\n }\n\n var unload = function unload () {\n if (!loaded || !processOk(global.process)) {\n return\n }\n loaded = false\n\n signals.forEach(function (sig) {\n try {\n process.removeListener(sig, sigListeners[sig])\n } catch (er) {}\n })\n process.emit = originalProcessEmit\n process.reallyExit = originalProcessReallyExit\n emitter.count -= 1\n }\n module.exports.unload = unload\n\n var emit = function emit (event, code, signal) {\n /* istanbul ignore if */\n if (emitter.emitted[event]) {\n return\n }\n emitter.emitted[event] = true\n emitter.emit(event, code, signal)\n }\n\n // { : , ... }\n var sigListeners = {}\n signals.forEach(function (sig) {\n sigListeners[sig] = function listener () {\n /* istanbul ignore if */\n if (!processOk(global.process)) {\n return\n }\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n var listeners = process.listeners(sig)\n if (listeners.length === emitter.count) {\n unload()\n emit('exit', null, sig)\n /* istanbul ignore next */\n emit('afterexit', null, sig)\n /* istanbul ignore next */\n if (isWin && sig === 'SIGHUP') {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n sig = 'SIGINT'\n }\n /* istanbul ignore next */\n process.kill(process.pid, sig)\n }\n }\n })\n\n module.exports.signals = function () {\n return signals\n }\n\n var loaded = false\n\n var load = function load () {\n if (loaded || !processOk(global.process)) {\n return\n }\n loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n emitter.count += 1\n\n signals = signals.filter(function (sig) {\n try {\n process.on(sig, sigListeners[sig])\n return true\n } catch (er) {\n return false\n }\n })\n\n process.emit = processEmit\n process.reallyExit = processReallyExit\n }\n module.exports.load = load\n\n var originalProcessReallyExit = process.reallyExit\n var processReallyExit = function processReallyExit (code) {\n /* istanbul ignore if */\n if (!processOk(global.process)) {\n return\n }\n process.exitCode = code || /* istanbul ignore next */ 0\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n /* istanbul ignore next */\n originalProcessReallyExit.call(process, process.exitCode)\n }\n\n var originalProcessEmit = process.emit\n var processEmit = function processEmit (ev, arg) {\n if (ev === 'exit' && processOk(global.process)) {\n /* istanbul ignore else */\n if (arg !== undefined) {\n process.exitCode = arg\n }\n var ret = originalProcessEmit.apply(this, arguments)\n /* istanbul ignore next */\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n /* istanbul ignore next */\n return ret\n } else {\n return originalProcessEmit.apply(this, arguments)\n }\n }\n}\n","// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n 'SIGABRT',\n 'SIGALRM',\n 'SIGHUP',\n 'SIGINT',\n 'SIGTERM'\n]\n\nif (process.platform !== 'win32') {\n module.exports.push(\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n module.exports.push(\n 'SIGIO',\n 'SIGPOLL',\n 'SIGPWR',\n 'SIGSTKFLT',\n 'SIGUNUSED'\n )\n}\n","'use strict';\n\nvar stubs = require('stubs')\n\n/*\n * StreamEvents can be used 2 ways:\n *\n * 1:\n * function MyStream() {\n * require('stream-events').call(this)\n * }\n *\n * 2:\n * require('stream-events')(myStream)\n */\nfunction StreamEvents(stream) {\n stream = stream || this\n\n var cfg = {\n callthrough: true,\n calls: 1\n }\n\n stubs(stream, '_read', cfg, stream.emit.bind(stream, 'reading'))\n stubs(stream, '_write', cfg, stream.emit.bind(stream, 'writing'))\n\n return stream\n}\n\nmodule.exports = StreamEvents\n","module.exports = shift\n\nfunction shift (stream) {\n var rs = stream._readableState\n if (!rs) return null\n return (rs.objectMode || typeof stream._duplexState === 'number') ? stream.read() : stream.read(getStateLength(rs))\n}\n\nfunction getStateLength (state) {\n if (state.buffer.length) {\n // Since node 6.3.0 state.buffer is a BufferList not an array\n if (state.buffer.head) {\n return state.buffer.head.data.length\n }\n\n return state.buffer[0].length\n }\n\n return state.length\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n\nmodule.exports = function stubs(obj, method, cfg, stub) {\n if (!obj || !method || !obj[method])\n throw new Error('You must provide an object and a key for an existing method')\n\n if (!stub) {\n stub = cfg\n cfg = {}\n }\n\n stub = stub || function() {}\n\n cfg.callthrough = cfg.callthrough || false\n cfg.calls = cfg.calls || 0\n\n var norevert = cfg.calls === 0\n\n var cached = obj[method].bind(obj)\n\n obj[method] = function() {\n var args = [].slice.call(arguments)\n var returnVal\n\n if (cfg.callthrough)\n returnVal = cached.apply(obj, args)\n\n returnVal = stub.apply(obj, args) || returnVal\n\n if (!norevert && --cfg.calls === 0)\n obj[method] = cached\n\n return returnVal\n }\n}\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","\"use strict\";\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TeenyStatistics = exports.TeenyStatisticsWarning = void 0;\n/**\n * @class TeenyStatisticsWarning\n * @extends Error\n * @description While an error, is used for emitting warnings when\n * meeting certain configured thresholds.\n * @see process.emitWarning\n */\nclass TeenyStatisticsWarning extends Error {\n /**\n * @param {string} message\n */\n constructor(message) {\n super(message);\n this.threshold = 0;\n this.type = '';\n this.value = 0;\n this.name = this.constructor.name;\n Error.captureStackTrace(this, this.constructor);\n }\n}\nexports.TeenyStatisticsWarning = TeenyStatisticsWarning;\nTeenyStatisticsWarning.CONCURRENT_REQUESTS = 'ConcurrentRequestsExceededWarning';\n/**\n * @class TeenyStatistics\n * @description Maintain various statistics internal to teeny-request. Tracking\n * is not automatic and must be instrumented within teeny-request.\n */\nclass TeenyStatistics {\n /**\n * @param {TeenyStatisticsOptions} [opts]\n */\n constructor(opts) {\n /**\n * @type {number}\n * @private\n * @default 0\n */\n this._concurrentRequests = 0;\n /**\n * @type {boolean}\n * @private\n * @default false\n */\n this._didConcurrentRequestWarn = false;\n this._options = TeenyStatistics._prepareOptions(opts);\n }\n /**\n * Returns a copy of the current options.\n * @return {TeenyStatisticsOptions}\n */\n getOptions() {\n return Object.assign({}, this._options);\n }\n /**\n * Change configured statistics options. This will not preserve unspecified\n * options that were previously specified, i.e. this is a reset of options.\n * @param {TeenyStatisticsOptions} [opts]\n * @returns {TeenyStatisticsConfig} The previous options.\n * @see _prepareOptions\n */\n setOptions(opts) {\n const oldOpts = this._options;\n this._options = TeenyStatistics._prepareOptions(opts);\n return oldOpts;\n }\n /**\n * @readonly\n * @return {TeenyStatisticsCounters}\n */\n get counters() {\n return {\n concurrentRequests: this._concurrentRequests,\n };\n }\n /**\n * @description Should call this right before making a request.\n */\n requestStarting() {\n this._concurrentRequests++;\n if (this._options.concurrentRequests > 0 &&\n this._concurrentRequests >= this._options.concurrentRequests &&\n !this._didConcurrentRequestWarn) {\n this._didConcurrentRequestWarn = true;\n const warning = new TeenyStatisticsWarning('Possible excessive concurrent requests detected. ' +\n this._concurrentRequests +\n ' requests in-flight, which exceeds the configured threshold of ' +\n this._options.concurrentRequests +\n '. Use the TEENY_REQUEST_WARN_CONCURRENT_REQUESTS environment ' +\n 'variable or the concurrentRequests option of teeny-request to ' +\n 'increase or disable (0) this warning.');\n warning.type = TeenyStatisticsWarning.CONCURRENT_REQUESTS;\n warning.value = this._concurrentRequests;\n warning.threshold = this._options.concurrentRequests;\n process.emitWarning(warning);\n }\n }\n /**\n * @description When using `requestStarting`, call this after the request\n * has finished.\n */\n requestFinished() {\n // TODO negative?\n this._concurrentRequests--;\n }\n /**\n * Configuration Precedence:\n * 1. Dependency inversion via defined option.\n * 2. Global numeric environment variable.\n * 3. Built-in default.\n * This will not preserve unspecified options previously specified.\n * @param {TeenyStatisticsOptions} [opts]\n * @returns {TeenyStatisticsOptions}\n * @private\n */\n static _prepareOptions({ concurrentRequests: diConcurrentRequests, } = {}) {\n let concurrentRequests = this.DEFAULT_WARN_CONCURRENT_REQUESTS;\n const envConcurrentRequests = Number(process.env.TEENY_REQUEST_WARN_CONCURRENT_REQUESTS);\n if (diConcurrentRequests !== undefined) {\n concurrentRequests = diConcurrentRequests;\n }\n else if (!Number.isNaN(envConcurrentRequests)) {\n concurrentRequests = envConcurrentRequests;\n }\n return { concurrentRequests };\n }\n}\nexports.TeenyStatistics = TeenyStatistics;\n/**\n * @description A default threshold representing when to warn about excessive\n * in-flight/concurrent requests.\n * @type {number}\n * @static\n * @readonly\n * @default 5000\n */\nTeenyStatistics.DEFAULT_WARN_CONCURRENT_REQUESTS = 5000;\n//# sourceMappingURL=TeenyStatistics.js.map","\"use strict\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAgent = exports.pool = void 0;\nconst http_1 = require(\"http\");\nconst https_1 = require(\"https\");\n// eslint-disable-next-line node/no-deprecated-api\nconst url_1 = require(\"url\");\nexports.pool = new Map();\n/**\n * Determines if a proxy should be considered based on the environment.\n *\n * @param uri The request uri\n * @returns {boolean}\n */\nfunction shouldUseProxyForURI(uri) {\n const noProxyEnv = process.env.NO_PROXY || process.env.no_proxy;\n if (!noProxyEnv) {\n return true;\n }\n const givenURI = new URL(uri);\n for (const noProxyRaw of noProxyEnv.split(',')) {\n const noProxy = noProxyRaw.trim();\n if (noProxy === givenURI.origin || noProxy === givenURI.hostname) {\n return false;\n }\n else if (noProxy.startsWith('*.') || noProxy.startsWith('.')) {\n const noProxyWildcard = noProxy.replace(/^\\*\\./, '.');\n if (givenURI.hostname.endsWith(noProxyWildcard)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Returns a custom request Agent if one is found, otherwise returns undefined\n * which will result in the global http(s) Agent being used.\n * @private\n * @param {string} uri The request uri\n * @param {Options} reqOpts The request options\n * @returns {HttpAnyAgent|undefined}\n */\nfunction getAgent(uri, reqOpts) {\n const isHttp = uri.startsWith('http://');\n const proxy = reqOpts.proxy ||\n process.env.HTTP_PROXY ||\n process.env.http_proxy ||\n process.env.HTTPS_PROXY ||\n process.env.https_proxy;\n const poolOptions = Object.assign({}, reqOpts.pool);\n const manuallyProvidedProxy = !!reqOpts.proxy;\n const shouldUseProxy = manuallyProvidedProxy || shouldUseProxyForURI(uri);\n if (proxy && shouldUseProxy) {\n // tslint:disable-next-line variable-name\n const Agent = isHttp\n ? require('http-proxy-agent')\n : require('https-proxy-agent');\n const proxyOpts = { ...url_1.parse(proxy), ...poolOptions };\n return new Agent(proxyOpts);\n }\n let key = isHttp ? 'http' : 'https';\n if (reqOpts.forever) {\n key += ':forever';\n if (!exports.pool.has(key)) {\n // tslint:disable-next-line variable-name\n const Agent = isHttp ? http_1.Agent : https_1.Agent;\n exports.pool.set(key, new Agent({ ...poolOptions, keepAlive: true }));\n }\n }\n return exports.pool.get(key);\n}\nexports.getAgent = getAgent;\n//# sourceMappingURL=agents.js.map","\"use strict\";\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.teenyRequest = exports.RequestError = void 0;\nconst node_fetch_1 = require(\"node-fetch\");\nconst stream_1 = require(\"stream\");\nconst uuid = require(\"uuid\");\nconst agents_1 = require(\"./agents\");\nconst TeenyStatistics_1 = require(\"./TeenyStatistics\");\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst streamEvents = require('stream-events');\nclass RequestError extends Error {\n}\nexports.RequestError = RequestError;\n/**\n * Convert options from Request to Fetch format\n * @private\n * @param reqOpts Request options\n */\nfunction requestToFetchOptions(reqOpts) {\n const options = {\n method: reqOpts.method || 'GET',\n ...(reqOpts.timeout && { timeout: reqOpts.timeout }),\n ...(typeof reqOpts.gzip === 'boolean' && { compress: reqOpts.gzip }),\n };\n if (typeof reqOpts.json === 'object') {\n // Add Content-type: application/json header\n reqOpts.headers = reqOpts.headers || {};\n reqOpts.headers['Content-Type'] = 'application/json';\n // Set body to JSON representation of value\n options.body = JSON.stringify(reqOpts.json);\n }\n else {\n if (Buffer.isBuffer(reqOpts.body)) {\n options.body = reqOpts.body;\n }\n else if (typeof reqOpts.body !== 'string') {\n options.body = JSON.stringify(reqOpts.body);\n }\n else {\n options.body = reqOpts.body;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.headers = reqOpts.headers;\n let uri = (reqOpts.uri ||\n reqOpts.url);\n if (!uri) {\n throw new Error('Missing uri or url in reqOpts.');\n }\n if (reqOpts.useQuerystring === true || typeof reqOpts.qs === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const qs = require('querystring');\n const params = qs.stringify(reqOpts.qs);\n uri = uri + '?' + params;\n }\n options.agent = agents_1.getAgent(uri, reqOpts);\n return { uri, options };\n}\n/**\n * Convert a response from `fetch` to `request` format.\n * @private\n * @param opts The `request` options used to create the request.\n * @param res The Fetch response\n * @returns A `request` response object\n */\nfunction fetchToRequestResponse(opts, res) {\n const request = {};\n request.agent = opts.agent || false;\n request.headers = (opts.headers || {});\n request.href = res.url;\n // headers need to be converted from a map to an obj\n const resHeaders = {};\n res.headers.forEach((value, key) => (resHeaders[key] = value));\n const response = Object.assign(res.body, {\n statusCode: res.status,\n statusMessage: res.statusText,\n request,\n body: res.body,\n headers: resHeaders,\n toJSON: () => ({ headers: resHeaders }),\n });\n return response;\n}\n/**\n * Create POST body from two parts as multipart/related content-type\n * @private\n * @param boundary\n * @param multipart\n */\nfunction createMultipartStream(boundary, multipart) {\n const finale = `--${boundary}--`;\n const stream = new stream_1.PassThrough();\n for (const part of multipart) {\n const preamble = `--${boundary}\\r\\nContent-Type: ${part['Content-Type']}\\r\\n\\r\\n`;\n stream.write(preamble);\n if (typeof part.body === 'string') {\n stream.write(part.body);\n stream.write('\\r\\n');\n }\n else {\n part.body.pipe(stream, { end: false });\n part.body.on('end', () => {\n stream.write('\\r\\n');\n stream.write(finale);\n stream.end();\n });\n }\n }\n return stream;\n}\nfunction teenyRequest(reqOpts, callback) {\n const { uri, options } = requestToFetchOptions(reqOpts);\n const multipart = reqOpts.multipart;\n if (reqOpts.multipart && multipart.length === 2) {\n if (!callback) {\n // TODO: add support for multipart uploads through streaming\n throw new Error('Multipart without callback is not implemented.');\n }\n const boundary = uuid.v4();\n options.headers['Content-Type'] = `multipart/related; boundary=${boundary}`;\n options.body = createMultipartStream(boundary, multipart);\n // Multipart upload\n teenyRequest.stats.requestStarting();\n node_fetch_1.default(uri, options).then(res => {\n teenyRequest.stats.requestFinished();\n const header = res.headers.get('content-type');\n const response = fetchToRequestResponse(options, res);\n const body = response.body;\n if (header === 'application/json' ||\n header === 'application/json; charset=utf-8') {\n res.json().then(json => {\n response.body = json;\n callback(null, response, json);\n }, (err) => {\n callback(err, response, body);\n });\n return;\n }\n res.text().then(text => {\n response.body = text;\n callback(null, response, text);\n }, err => {\n callback(err, response, body);\n });\n }, err => {\n teenyRequest.stats.requestFinished();\n callback(err, null, null);\n });\n return;\n }\n if (callback === undefined) {\n // Stream mode\n const requestStream = streamEvents(new stream_1.PassThrough());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let responseStream;\n requestStream.once('reading', () => {\n if (responseStream) {\n responseStream.pipe(requestStream);\n }\n else {\n requestStream.once('response', () => {\n responseStream.pipe(requestStream);\n });\n }\n });\n options.compress = false;\n teenyRequest.stats.requestStarting();\n node_fetch_1.default(uri, options).then(res => {\n teenyRequest.stats.requestFinished();\n responseStream = res.body;\n responseStream.on('error', (err) => {\n requestStream.emit('error', err);\n });\n const response = fetchToRequestResponse(options, res);\n requestStream.emit('response', response);\n }, err => {\n teenyRequest.stats.requestFinished();\n requestStream.emit('error', err);\n });\n // fetch doesn't supply the raw HTTP stream, instead it\n // returns a PassThrough piped from the HTTP response\n // stream.\n return requestStream;\n }\n // GET or POST with callback\n teenyRequest.stats.requestStarting();\n node_fetch_1.default(uri, options).then(res => {\n teenyRequest.stats.requestFinished();\n const header = res.headers.get('content-type');\n const response = fetchToRequestResponse(options, res);\n const body = response.body;\n if (header === 'application/json' ||\n header === 'application/json; charset=utf-8') {\n if (response.statusCode === 204) {\n // Probably a DELETE\n callback(null, response, body);\n return;\n }\n res.json().then(json => {\n response.body = json;\n callback(null, response, json);\n }, err => {\n callback(err, response, body);\n });\n return;\n }\n res.text().then(text => {\n const response = fetchToRequestResponse(options, res);\n response.body = text;\n callback(null, response, text);\n }, err => {\n callback(err, response, body);\n });\n }, err => {\n teenyRequest.stats.requestFinished();\n callback(err, null, null);\n });\n return;\n}\nexports.teenyRequest = teenyRequest;\nteenyRequest.defaults = (defaults) => {\n return (reqOpts, callback) => {\n const opts = { ...defaults, ...reqOpts };\n if (callback === undefined) {\n return teenyRequest(opts);\n }\n teenyRequest(opts, callback);\n };\n};\n/**\n * Single instance of an interface for keeping track of things.\n */\nteenyRequest.stats = new TeenyStatistics_1.TeenyStatistics();\nteenyRequest.resetStats = () => {\n teenyRequest.stats = new TeenyStatistics_1.TeenyStatistics(teenyRequest.stats.getOptions());\n};\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","/*!\n * to-regex-range \n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst isNumber = require('is-number');\n\nconst toRegexRange = (min, max, options) => {\n if (isNumber(min) === false) {\n throw new TypeError('toRegexRange: expected the first argument to be a number');\n }\n\n if (max === void 0 || min === max) {\n return String(min);\n }\n\n if (isNumber(max) === false) {\n throw new TypeError('toRegexRange: expected the second argument to be a number.');\n }\n\n let opts = { relaxZeros: true, ...options };\n if (typeof opts.strictZeros === 'boolean') {\n opts.relaxZeros = opts.strictZeros === false;\n }\n\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n\n if (Math.abs(a - b) === 1) {\n let result = min + '|' + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {\n state.result = `(?:${state.result})`;\n }\n\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n};\n\nfunction collatePatterns(neg, pos, options) {\n let onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n let onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n let intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n\n let stop = countNines(min, nines);\n let stops = new Set([max]);\n\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n\n stop = countZeros(max + 1, zeros) - 1;\n\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n\n stops = [...stops];\n stops.sort(compare);\n return stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = '';\n let count = 0;\n\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n\n if (startDigit === stopDigit) {\n pattern += startDigit;\n\n } else if (startDigit !== '0' || stopDigit !== '9') {\n pattern += toCharacterClass(startDigit, stopDigit, options);\n\n } else {\n count++;\n }\n }\n\n if (count) {\n pattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n }\n\n return { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n\n for (let i = 0; i < ranges.length; i++) {\n let max = ranges[i];\n let obj = rangeToPattern(String(start), String(max), options);\n let zeros = '';\n\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max + 1;\n continue;\n }\n\n if (tok.isPadded) {\n zeros = padZeros(max, tok, options);\n }\n\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max + 1;\n prev = obj;\n }\n\n return tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options) {\n let result = [];\n\n for (let ele of arr) {\n let { string } = ele;\n\n // only push if _both_ are negative...\n if (!intersection && !contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n\n // or _both_ are positive\n if (intersection && contains(comparison, 'string', string)) {\n result.push(prefix + string);\n }\n }\n return result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n}\n\nfunction compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val) {\n return arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len) {\n return Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros) {\n return integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits) {\n let [start = 0, stop = ''] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? ',' + stop : '')}}`;\n }\n return '';\n}\n\nfunction toCharacterClass(a, b, options) {\n return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str) {\n return /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options) {\n if (!tok.isPadded) {\n return value;\n }\n\n let diff = Math.abs(tok.maxLen - String(value).length);\n let relax = options.relaxZeros !== false;\n\n switch (diff) {\n case 0:\n return '';\n case 1:\n return relax ? '0?' : '0';\n case 2:\n return relax ? '0{0,2}' : '00';\n default: {\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\n }\n }\n}\n\n/**\n * Cache\n */\n\ntoRegexRange.cache = {};\ntoRegexRange.clearCache = () => (toRegexRange.cache = {});\n\n/**\n * Expose `toRegexRange`\n */\n\nmodule.exports = toRegexRange;\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","/**\n * Convert a typed array to a Buffer without a copy\n *\n * Author: Feross Aboukhadijeh \n * License: MIT\n *\n * `npm install typedarray-to-buffer`\n */\n\nvar isTypedArray = require('is-typedarray').strict\n\nmodule.exports = function typedarrayToBuffer (arr) {\n if (isTypedArray(arr)) {\n // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer\n var buf = Buffer.from(arr.buffer)\n if (arr.byteLength !== arr.buffer.byteLength) {\n // Respect the \"view\", i.e. byteOffset and byteLength, without doing a copy\n buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength)\n }\n return buf\n } else {\n // Pass through all other types to `Buffer.from`\n return Buffer.from(arr)\n }\n}\n","'use strict';\nconst cryptoRandomString = require('crypto-random-string');\n\nmodule.exports = () => cryptoRandomString(32);\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","'use strict'\nmodule.exports = writeFile\nmodule.exports.sync = writeFileSync\nmodule.exports._getTmpname = getTmpname // for testing\nmodule.exports._cleanupOnExit = cleanupOnExit\n\nconst fs = require('fs')\nconst MurmurHash3 = require('imurmurhash')\nconst onExit = require('signal-exit')\nconst path = require('path')\nconst isTypedArray = require('is-typedarray')\nconst typedArrayToBuffer = require('typedarray-to-buffer')\nconst { promisify } = require('util')\nconst activeFiles = {}\n\n// if we run inside of a worker_thread, `process.pid` is not unique\n/* istanbul ignore next */\nconst threadId = (function getId () {\n try {\n const workerThreads = require('worker_threads')\n\n /// if we are in main thread, this is set to `0`\n return workerThreads.threadId\n } catch (e) {\n // worker_threads are not available, fallback to 0\n return 0\n }\n})()\n\nlet invocations = 0\nfunction getTmpname (filename) {\n return filename + '.' +\n MurmurHash3(__filename)\n .hash(String(process.pid))\n .hash(String(threadId))\n .hash(String(++invocations))\n .result()\n}\n\nfunction cleanupOnExit (tmpfile) {\n return () => {\n try {\n fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile)\n } catch (_) {}\n }\n}\n\nfunction serializeActiveFile (absoluteName) {\n return new Promise(resolve => {\n // make a queue if it doesn't already exist\n if (!activeFiles[absoluteName]) activeFiles[absoluteName] = []\n\n activeFiles[absoluteName].push(resolve) // add this job to the queue\n if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one\n })\n}\n\n// https://github.com/isaacs/node-graceful-fs/blob/master/polyfills.js#L315-L342\nfunction isChownErrOk (err) {\n if (err.code === 'ENOSYS') {\n return true\n }\n\n const nonroot = !process.getuid || process.getuid() !== 0\n if (nonroot) {\n if (err.code === 'EINVAL' || err.code === 'EPERM') {\n return true\n }\n }\n\n return false\n}\n\nasync function writeFileAsync (filename, data, options = {}) {\n if (typeof options === 'string') {\n options = { encoding: options }\n }\n\n let fd\n let tmpfile\n /* istanbul ignore next -- The closure only gets called when onExit triggers */\n const removeOnExitHandler = onExit(cleanupOnExit(() => tmpfile))\n const absoluteName = path.resolve(filename)\n\n try {\n await serializeActiveFile(absoluteName)\n const truename = await promisify(fs.realpath)(filename).catch(() => filename)\n tmpfile = getTmpname(truename)\n\n if (!options.mode || !options.chown) {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n const stats = await promisify(fs.stat)(truename).catch(() => {})\n if (stats) {\n if (options.mode == null) {\n options.mode = stats.mode\n }\n\n if (options.chown == null && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n }\n }\n\n fd = await promisify(fs.open)(tmpfile, 'w', options.mode)\n if (options.tmpfileCreated) {\n await options.tmpfileCreated(tmpfile)\n }\n if (isTypedArray(data)) {\n data = typedArrayToBuffer(data)\n }\n if (Buffer.isBuffer(data)) {\n await promisify(fs.write)(fd, data, 0, data.length, 0)\n } else if (data != null) {\n await promisify(fs.write)(fd, String(data), 0, String(options.encoding || 'utf8'))\n }\n\n if (options.fsync !== false) {\n await promisify(fs.fsync)(fd)\n }\n\n await promisify(fs.close)(fd)\n fd = null\n\n if (options.chown) {\n await promisify(fs.chown)(tmpfile, options.chown.uid, options.chown.gid).catch(err => {\n if (!isChownErrOk(err)) {\n throw err\n }\n })\n }\n\n if (options.mode) {\n await promisify(fs.chmod)(tmpfile, options.mode).catch(err => {\n if (!isChownErrOk(err)) {\n throw err\n }\n })\n }\n\n await promisify(fs.rename)(tmpfile, truename)\n } finally {\n if (fd) {\n await promisify(fs.close)(fd).catch(\n /* istanbul ignore next */\n () => {}\n )\n }\n removeOnExitHandler()\n await promisify(fs.unlink)(tmpfile).catch(() => {})\n activeFiles[absoluteName].shift() // remove the element added by serializeSameFile\n if (activeFiles[absoluteName].length > 0) {\n activeFiles[absoluteName][0]() // start next job if one is pending\n } else delete activeFiles[absoluteName]\n }\n}\n\nfunction writeFile (filename, data, options, callback) {\n if (options instanceof Function) {\n callback = options\n options = {}\n }\n\n const promise = writeFileAsync(filename, data, options)\n if (callback) {\n promise.then(callback, callback)\n }\n\n return promise\n}\n\nfunction writeFileSync (filename, data, options) {\n if (typeof options === 'string') options = { encoding: options }\n else if (!options) options = {}\n try {\n filename = fs.realpathSync(filename)\n } catch (ex) {\n // it's ok, it'll happen on a not yet existing file\n }\n const tmpfile = getTmpname(filename)\n\n if (!options.mode || !options.chown) {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n try {\n const stats = fs.statSync(filename)\n options = Object.assign({}, options)\n if (!options.mode) {\n options.mode = stats.mode\n }\n if (!options.chown && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n } catch (ex) {\n // ignore stat errors\n }\n }\n\n let fd\n const cleanup = cleanupOnExit(tmpfile)\n const removeOnExitHandler = onExit(cleanup)\n\n let threw = true\n try {\n fd = fs.openSync(tmpfile, 'w', options.mode || 0o666)\n if (options.tmpfileCreated) {\n options.tmpfileCreated(tmpfile)\n }\n if (isTypedArray(data)) {\n data = typedArrayToBuffer(data)\n }\n if (Buffer.isBuffer(data)) {\n fs.writeSync(fd, data, 0, data.length, 0)\n } else if (data != null) {\n fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8'))\n }\n if (options.fsync !== false) {\n fs.fsyncSync(fd)\n }\n\n fs.closeSync(fd)\n fd = null\n\n if (options.chown) {\n try {\n fs.chownSync(tmpfile, options.chown.uid, options.chown.gid)\n } catch (err) {\n if (!isChownErrOk(err)) {\n throw err\n }\n }\n }\n\n if (options.mode) {\n try {\n fs.chmodSync(tmpfile, options.mode)\n } catch (err) {\n if (!isChownErrOk(err)) {\n throw err\n }\n }\n }\n\n fs.renameSync(tmpfile, filename)\n threw = false\n } finally {\n if (fd) {\n try {\n fs.closeSync(fd)\n } catch (ex) {\n // ignore close errors at this stage, error may have closed fd already.\n }\n }\n removeOnExitHandler()\n if (threw) {\n cleanup()\n }\n }\n}\n","'use strict';\nconst os = require('os');\nconst path = require('path');\n\nconst homeDirectory = os.homedir();\nconst {env} = process;\n\nexports.data = env.XDG_DATA_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'share') : undefined);\n\nexports.config = env.XDG_CONFIG_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.config') : undefined);\n\nexports.cache = env.XDG_CACHE_HOME || (homeDirectory ? path.join(homeDirectory, '.cache') : undefined);\n\nexports.runtime = env.XDG_RUNTIME_DIR || undefined;\n\nexports.dataDirs = (env.XDG_DATA_DIRS || '/usr/local/share/:/usr/share/').split(':');\n\nif (exports.data) {\n\texports.dataDirs.unshift(exports.data);\n}\n\nexports.configDirs = (env.XDG_CONFIG_DIRS || '/etc/xdg').split(':');\n\nif (exports.config) {\n\texports.configDirs.unshift(exports.config);\n}\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","class Node {\n\t/// value;\n\t/// next;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\n\t\t// TODO: Remove this when targeting Node.js 12.\n\t\tthis.next = undefined;\n\t}\n}\n\nclass Queue {\n\t// TODO: Use private class fields when targeting Node.js 12.\n\t// #_head;\n\t// #_tail;\n\t// #_size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this._head) {\n\t\t\tthis._tail.next = node;\n\t\t\tthis._tail = node;\n\t\t} else {\n\t\t\tthis._head = node;\n\t\t\tthis._tail = node;\n\t\t}\n\n\t\tthis._size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this._head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._head = this._head.next;\n\t\tthis._size--;\n\t\treturn current.value;\n\t}\n\n\tclear() {\n\t\tthis._head = undefined;\n\t\tthis._tail = undefined;\n\t\tthis._size = 0;\n\t}\n\n\tget size() {\n\t\treturn this._size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this._head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n}\n\nmodule.exports = Queue;\n",null,"module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"child_process\");","module.exports = require(\"constants\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"querystring\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","module.exports = require(\"zlib\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:process\");","export default function slash(path) {\n\tconst isExtendedLengthPath = /^\\\\\\\\\\?\\\\/.test(path);\n\tconst hasNonAscii = /[^\\u0000-\\u0080]+/.test(path); // eslint-disable-line no-control-regex\n\n\tif (isExtendedLengthPath || hasNonAscii) {\n\t\treturn path;\n\t}\n\n\treturn path.replace(/\\\\/g, '/');\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:stream\");","import {fileURLToPath} from 'node:url';\nimport {Transform} from 'node:stream';\n\nexport const toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n\nexport class FilterStream extends Transform {\n\tconstructor(filter) {\n\t\tsuper({\n\t\t\tobjectMode: true,\n\t\t\ttransform(data, encoding, callback) {\n\t\t\t\tcallback(undefined, filter(data) ? data : undefined);\n\t\t\t},\n\t\t});\n\t}\n}\n\nexport const isNegativePattern = pattern => pattern[0] === '!';\n","import process from 'node:process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport fastGlob from 'fast-glob';\nimport gitIgnore from 'ignore';\nimport slash from 'slash';\nimport {toPath, isNegativePattern} from './utilities.js';\n\nconst ignoreFilesGlobOptions = {\n\tignore: [\n\t\t'**/node_modules',\n\t\t'**/flow-typed',\n\t\t'**/coverage',\n\t\t'**/.git',\n\t],\n\tabsolute: true,\n\tdot: true,\n};\n\nexport const GITIGNORE_FILES_PATTERN = '**/.gitignore';\n\nconst applyBaseToPattern = (pattern, base) => isNegativePattern(pattern)\n\t? '!' + path.posix.join(base, pattern.slice(1))\n\t: path.posix.join(base, pattern);\n\nconst parseIgnoreFile = (file, cwd) => {\n\tconst base = slash(path.relative(cwd, path.dirname(file.filePath)));\n\n\treturn file.content\n\t\t.split(/\\r?\\n/)\n\t\t.filter(line => line && !line.startsWith('#'))\n\t\t.map(pattern => applyBaseToPattern(pattern, base));\n};\n\nconst toRelativePath = (fileOrDirectory, cwd) => {\n\tcwd = slash(cwd);\n\tif (path.isAbsolute(fileOrDirectory)) {\n\t\tif (slash(fileOrDirectory).startsWith(cwd)) {\n\t\t\treturn path.relative(cwd, fileOrDirectory);\n\t\t}\n\n\t\tthrow new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);\n\t}\n\n\treturn fileOrDirectory;\n};\n\nconst getIsIgnoredPredicate = (files, cwd) => {\n\tconst patterns = files.flatMap(file => parseIgnoreFile(file, cwd));\n\tconst ignores = gitIgnore().add(patterns);\n\n\treturn fileOrDirectory => {\n\t\tfileOrDirectory = toPath(fileOrDirectory);\n\t\tfileOrDirectory = toRelativePath(fileOrDirectory, cwd);\n\t\treturn ignores.ignores(slash(fileOrDirectory));\n\t};\n};\n\nconst normalizeOptions = (options = {}) => ({\n\tcwd: toPath(options.cwd) || process.cwd(),\n});\n\nexport const isIgnoredByIgnoreFiles = async (patterns, options) => {\n\tconst {cwd} = normalizeOptions(options);\n\n\tconst paths = await fastGlob(patterns, {cwd, ...ignoreFilesGlobOptions});\n\n\tconst files = await Promise.all(\n\t\tpaths.map(async filePath => ({\n\t\t\tfilePath,\n\t\t\tcontent: await fs.promises.readFile(filePath, 'utf8'),\n\t\t})),\n\t);\n\n\treturn getIsIgnoredPredicate(files, cwd);\n};\n\nexport const isIgnoredByIgnoreFilesSync = (patterns, options) => {\n\tconst {cwd} = normalizeOptions(options);\n\n\tconst paths = fastGlob.sync(patterns, {cwd, ...ignoreFilesGlobOptions});\n\n\tconst files = paths.map(filePath => ({\n\t\tfilePath,\n\t\tcontent: fs.readFileSync(filePath, 'utf8'),\n\t}));\n\n\treturn getIsIgnoredPredicate(files, cwd);\n};\n\nexport const isGitIgnored = options => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);\nexport const isGitIgnoredSync = options => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);\n","import fs from 'node:fs';\nimport nodePath from 'node:path';\nimport merge2 from 'merge2';\nimport fastGlob from 'fast-glob';\nimport dirGlob from 'dir-glob';\nimport {\n\tGITIGNORE_FILES_PATTERN,\n\tisIgnoredByIgnoreFiles,\n\tisIgnoredByIgnoreFilesSync,\n} from './ignore.js';\nimport {FilterStream, toPath, isNegativePattern} from './utilities.js';\n\nconst assertPatternsInput = patterns => {\n\tif (patterns.some(pattern => typeof pattern !== 'string')) {\n\t\tthrow new TypeError('Patterns must be a string or an array of strings');\n\t}\n};\n\nconst toPatternsArray = patterns => {\n\tpatterns = [...new Set([patterns].flat())];\n\tassertPatternsInput(patterns);\n\treturn patterns;\n};\n\nconst checkCwdOption = options => {\n\tif (!options.cwd) {\n\t\treturn;\n\t}\n\n\tlet stat;\n\ttry {\n\t\tstat = fs.statSync(options.cwd);\n\t} catch {\n\t\treturn;\n\t}\n\n\tif (!stat.isDirectory()) {\n\t\tthrow new Error('The `cwd` option must be a path to a directory');\n\t}\n};\n\nconst normalizeOptions = (options = {}) => {\n\toptions = {\n\t\tignore: [],\n\t\texpandDirectories: true,\n\t\t...options,\n\t\tcwd: toPath(options.cwd),\n\t};\n\n\tcheckCwdOption(options);\n\n\treturn options;\n};\n\nconst normalizeArguments = fn => async (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));\nconst normalizeArgumentsSync = fn => (patterns, options) => fn(toPatternsArray(patterns), normalizeOptions(options));\n\nconst getIgnoreFilesPatterns = options => {\n\tconst {ignoreFiles, gitignore} = options;\n\n\tconst patterns = ignoreFiles ? toPatternsArray(ignoreFiles) : [];\n\tif (gitignore) {\n\t\tpatterns.push(GITIGNORE_FILES_PATTERN);\n\t}\n\n\treturn patterns;\n};\n\nconst getFilter = async options => {\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\n\treturn createFilterFunction(\n\t\tignoreFilesPatterns.length > 0 && await isIgnoredByIgnoreFiles(ignoreFilesPatterns, {cwd: options.cwd}),\n\t);\n};\n\nconst getFilterSync = options => {\n\tconst ignoreFilesPatterns = getIgnoreFilesPatterns(options);\n\treturn createFilterFunction(\n\t\tignoreFilesPatterns.length > 0 && isIgnoredByIgnoreFilesSync(ignoreFilesPatterns, {cwd: options.cwd}),\n\t);\n};\n\nconst createFilterFunction = isIgnored => {\n\tconst seen = new Set();\n\n\treturn fastGlobResult => {\n\t\tconst path = fastGlobResult.path || fastGlobResult;\n\t\tconst pathKey = nodePath.normalize(path);\n\t\tconst seenOrIgnored = seen.has(pathKey) || (isIgnored && isIgnored(path));\n\t\tseen.add(pathKey);\n\t\treturn !seenOrIgnored;\n\t};\n};\n\nconst unionFastGlobResults = (results, filter) => results.flat().filter(fastGlobResult => filter(fastGlobResult));\nconst unionFastGlobStreams = (streams, filter) => merge2(streams).pipe(new FilterStream(fastGlobResult => filter(fastGlobResult)));\n\nconst convertNegativePatterns = (patterns, options) => {\n\tconst tasks = [];\n\n\twhile (patterns.length > 0) {\n\t\tconst index = patterns.findIndex(pattern => isNegativePattern(pattern));\n\n\t\tif (index === -1) {\n\t\t\ttasks.push({patterns, options});\n\t\t\tbreak;\n\t\t}\n\n\t\tconst ignorePattern = patterns[index].slice(1);\n\n\t\tfor (const task of tasks) {\n\t\t\ttask.options.ignore.push(ignorePattern);\n\t\t}\n\n\t\tif (index !== 0) {\n\t\t\ttasks.push({\n\t\t\t\tpatterns: patterns.slice(0, index),\n\t\t\t\toptions: {\n\t\t\t\t\t...options,\n\t\t\t\t\tignore: [\n\t\t\t\t\t\t...options.ignore,\n\t\t\t\t\t\tignorePattern,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tpatterns = patterns.slice(index + 1);\n\t}\n\n\treturn tasks;\n};\n\nconst getDirGlobOptions = (options, cwd) => ({\n\t...(cwd ? {cwd} : {}),\n\t...(Array.isArray(options) ? {files: options} : options),\n});\n\nconst generateTasks = async (patterns, options) => {\n\tconst globTasks = convertNegativePatterns(patterns, options);\n\n\tconst {cwd, expandDirectories} = options;\n\n\tif (!expandDirectories) {\n\t\treturn globTasks;\n\t}\n\n\tconst patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);\n\tconst ignoreExpandOptions = cwd ? {cwd} : undefined;\n\n\treturn Promise.all(\n\t\tglobTasks.map(async task => {\n\t\t\tlet {patterns, options} = task;\n\n\t\t\t[\n\t\t\t\tpatterns,\n\t\t\t\toptions.ignore,\n\t\t\t] = await Promise.all([\n\t\t\t\tdirGlob(patterns, patternExpandOptions),\n\t\t\t\tdirGlob(options.ignore, ignoreExpandOptions),\n\t\t\t]);\n\n\t\t\treturn {patterns, options};\n\t\t}),\n\t);\n};\n\nconst generateTasksSync = (patterns, options) => {\n\tconst globTasks = convertNegativePatterns(patterns, options);\n\n\tconst {cwd, expandDirectories} = options;\n\n\tif (!expandDirectories) {\n\t\treturn globTasks;\n\t}\n\n\tconst patternExpandOptions = getDirGlobOptions(expandDirectories, cwd);\n\tconst ignoreExpandOptions = cwd ? {cwd} : undefined;\n\n\treturn globTasks.map(task => {\n\t\tlet {patterns, options} = task;\n\t\tpatterns = dirGlob.sync(patterns, patternExpandOptions);\n\t\toptions.ignore = dirGlob.sync(options.ignore, ignoreExpandOptions);\n\t\treturn {patterns, options};\n\t});\n};\n\nexport const globby = normalizeArguments(async (patterns, options) => {\n\tconst [\n\t\ttasks,\n\t\tfilter,\n\t] = await Promise.all([\n\t\tgenerateTasks(patterns, options),\n\t\tgetFilter(options),\n\t]);\n\tconst results = await Promise.all(tasks.map(task => fastGlob(task.patterns, task.options)));\n\n\treturn unionFastGlobResults(results, filter);\n});\n\nexport const globbySync = normalizeArgumentsSync((patterns, options) => {\n\tconst tasks = generateTasksSync(patterns, options);\n\tconst filter = getFilterSync(options);\n\tconst results = tasks.map(task => fastGlob.sync(task.patterns, task.options));\n\n\treturn unionFastGlobResults(results, filter);\n});\n\nexport const globbyStream = normalizeArgumentsSync((patterns, options) => {\n\tconst tasks = generateTasksSync(patterns, options);\n\tconst filter = getFilterSync(options);\n\tconst streams = tasks.map(task => fastGlob.stream(task.patterns, task.options));\n\n\treturn unionFastGlobStreams(streams, filter);\n});\n\nexport const isDynamicPattern = normalizeArgumentsSync(\n\t(patterns, options) => patterns.some(pattern => fastGlob.isDynamicPattern(pattern, options)),\n);\n\nexport const generateGlobTasks = normalizeArguments(generateTasks);\nexport const generateGlobTasksSync = normalizeArgumentsSync(generateTasksSync);\n\nexport {\n\tisGitIgnored,\n\tisGitIgnoredSync,\n} from './ignore.js';\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(1156);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/update-machine-key-github/37.index.js.map b/dist/update-machine-key-github/37.index.js.map index 8376d79..5e7475d 100644 --- a/dist/update-machine-key-github/37.index.js.map +++ b/dist/update-machine-key-github/37.index.js.map @@ -1 +1 @@ -{"version":3,"file":"37.index.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://typescript-action/./node_modules/node-fetch/src/utils/multipart-parser.js"],"sourcesContent":["import {File} from 'fetch-blob/from.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\n\nlet s = 0;\nconst S = {\n\tSTART_BOUNDARY: s++,\n\tHEADER_FIELD_START: s++,\n\tHEADER_FIELD: s++,\n\tHEADER_VALUE_START: s++,\n\tHEADER_VALUE: s++,\n\tHEADER_VALUE_ALMOST_DONE: s++,\n\tHEADERS_ALMOST_DONE: s++,\n\tPART_DATA_START: s++,\n\tPART_DATA: s++,\n\tEND: s++\n};\n\nlet f = 1;\nconst F = {\n\tPART_BOUNDARY: f,\n\tLAST_BOUNDARY: f *= 2\n};\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst lower = c => c | 0x20;\n\nconst noop = () => {};\n\nclass MultipartParser {\n\t/**\n\t * @param {string} boundary\n\t */\n\tconstructor(boundary) {\n\t\tthis.index = 0;\n\t\tthis.flags = 0;\n\n\t\tthis.onHeaderEnd = noop;\n\t\tthis.onHeaderField = noop;\n\t\tthis.onHeadersEnd = noop;\n\t\tthis.onHeaderValue = noop;\n\t\tthis.onPartBegin = noop;\n\t\tthis.onPartData = noop;\n\t\tthis.onPartEnd = noop;\n\n\t\tthis.boundaryChars = {};\n\n\t\tboundary = '\\r\\n--' + boundary;\n\t\tconst ui8a = new Uint8Array(boundary.length);\n\t\tfor (let i = 0; i < boundary.length; i++) {\n\t\t\tui8a[i] = boundary.charCodeAt(i);\n\t\t\tthis.boundaryChars[ui8a[i]] = true;\n\t\t}\n\n\t\tthis.boundary = ui8a;\n\t\tthis.lookbehind = new Uint8Array(this.boundary.length + 8);\n\t\tthis.state = S.START_BOUNDARY;\n\t}\n\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\twrite(data) {\n\t\tlet i = 0;\n\t\tconst length_ = data.length;\n\t\tlet previousIndex = this.index;\n\t\tlet {lookbehind, boundary, boundaryChars, index, state, flags} = this;\n\t\tconst boundaryLength = this.boundary.length;\n\t\tconst boundaryEnd = boundaryLength - 1;\n\t\tconst bufferLength = data.length;\n\t\tlet c;\n\t\tlet cl;\n\n\t\tconst mark = name => {\n\t\t\tthis[name + 'Mark'] = i;\n\t\t};\n\n\t\tconst clear = name => {\n\t\t\tdelete this[name + 'Mark'];\n\t\t};\n\n\t\tconst callback = (callbackSymbol, start, end, ui8a) => {\n\t\t\tif (start === undefined || start !== end) {\n\t\t\t\tthis[callbackSymbol](ui8a && ui8a.subarray(start, end));\n\t\t\t}\n\t\t};\n\n\t\tconst dataCallback = (name, clear) => {\n\t\t\tconst markSymbol = name + 'Mark';\n\t\t\tif (!(markSymbol in this)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (clear) {\n\t\t\t\tcallback(name, this[markSymbol], i, data);\n\t\t\t\tdelete this[markSymbol];\n\t\t\t} else {\n\t\t\t\tcallback(name, this[markSymbol], data.length, data);\n\t\t\t\tthis[markSymbol] = 0;\n\t\t\t}\n\t\t};\n\n\t\tfor (i = 0; i < length_; i++) {\n\t\t\tc = data[i];\n\n\t\t\tswitch (state) {\n\t\t\t\tcase S.START_BOUNDARY:\n\t\t\t\t\tif (index === boundary.length - 2) {\n\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else if (c !== CR) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (index - 1 === boundary.length - 2) {\n\t\t\t\t\t\tif (flags & F.LAST_BOUNDARY && c === HYPHEN) {\n\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c !== boundary[index + 2]) {\n\t\t\t\t\t\tindex = -2;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === boundary[index + 2]) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_FIELD_START:\n\t\t\t\t\tstate = S.HEADER_FIELD;\n\t\t\t\t\tmark('onHeaderField');\n\t\t\t\t\tindex = 0;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_FIELD:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tclear('onHeaderField');\n\t\t\t\t\t\tstate = S.HEADERS_ALMOST_DONE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tindex++;\n\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === COLON) {\n\t\t\t\t\t\tif (index === 1) {\n\t\t\t\t\t\t\t// empty header field\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdataCallback('onHeaderField', true);\n\t\t\t\t\t\tstate = S.HEADER_VALUE_START;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcl = lower(c);\n\t\t\t\t\tif (cl < A || cl > Z) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_START:\n\t\t\t\t\tif (c === SPACE) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tmark('onHeaderValue');\n\t\t\t\t\tstate = S.HEADER_VALUE;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_VALUE:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tdataCallback('onHeaderValue', true);\n\t\t\t\t\t\tcallback('onHeaderEnd');\n\t\t\t\t\t\tstate = S.HEADER_VALUE_ALMOST_DONE;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADERS_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback('onHeadersEnd');\n\t\t\t\t\tstate = S.PART_DATA_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.PART_DATA_START:\n\t\t\t\t\tstate = S.PART_DATA;\n\t\t\t\t\tmark('onPartData');\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.PART_DATA:\n\t\t\t\t\tpreviousIndex = index;\n\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t// boyer-moore derrived algorithm to safely skip non-boundary data\n\t\t\t\t\t\ti += boundaryEnd;\n\t\t\t\t\t\twhile (i < bufferLength && !(data[i] in boundaryChars)) {\n\t\t\t\t\t\t\ti += boundaryLength;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ti -= boundaryEnd;\n\t\t\t\t\t\tc = data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < boundary.length) {\n\t\t\t\t\t\tif (boundary[index] === c) {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\tdataCallback('onPartData', true);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tindex++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index === boundary.length) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\t\t// CR = part boundary\n\t\t\t\t\t\t\tflags |= F.PART_BOUNDARY;\n\t\t\t\t\t\t} else if (c === HYPHEN) {\n\t\t\t\t\t\t\t// HYPHEN = end boundary\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index - 1 === boundary.length) {\n\t\t\t\t\t\tif (flags & F.PART_BOUNDARY) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tif (c === LF) {\n\t\t\t\t\t\t\t\t// unset the PART_BOUNDARY flag\n\t\t\t\t\t\t\t\tflags &= ~F.PART_BOUNDARY;\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (flags & F.LAST_BOUNDARY) {\n\t\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t// when matching a possible boundary, keep a lookbehind reference\n\t\t\t\t\t\t// in case it turns out to be a false lead\n\t\t\t\t\t\tlookbehind[index - 1] = c;\n\t\t\t\t\t} else if (previousIndex > 0) {\n\t\t\t\t\t\t// if our boundary turned out to be rubbish, the captured lookbehind\n\t\t\t\t\t\t// belongs to partData\n\t\t\t\t\t\tconst _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);\n\t\t\t\t\t\tcallback('onPartData', 0, previousIndex, _lookbehind);\n\t\t\t\t\t\tpreviousIndex = 0;\n\t\t\t\t\t\tmark('onPartData');\n\n\t\t\t\t\t\t// reconsider the current character even so it interrupted the sequence\n\t\t\t\t\t\t// it could be the beginning of a new sequence\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.END:\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected state entered: ${state}`);\n\t\t\t}\n\t\t}\n\n\t\tdataCallback('onHeaderField');\n\t\tdataCallback('onHeaderValue');\n\t\tdataCallback('onPartData');\n\n\t\t// Update properties for the next call\n\t\tthis.index = index;\n\t\tthis.state = state;\n\t\tthis.flags = flags;\n\t}\n\n\tend() {\n\t\tif ((this.state === S.HEADER_FIELD_START && this.index === 0) ||\n\t\t\t(this.state === S.PART_DATA && this.index === this.boundary.length)) {\n\t\t\tthis.onPartEnd();\n\t\t} else if (this.state !== S.END) {\n\t\t\tthrow new Error('MultipartParser.end(): stream ended unexpectedly');\n\t\t}\n\t}\n}\n\nfunction _fileName(headerValue) {\n\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\tconst m = headerValue.match(/\\bfilename=(\"(.*?)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))($|;\\s)/i);\n\tif (!m) {\n\t\treturn;\n\t}\n\n\tconst match = m[2] || m[3] || '';\n\tlet filename = match.slice(match.lastIndexOf('\\\\') + 1);\n\tfilename = filename.replace(/%22/g, '\"');\n\tfilename = filename.replace(/&#(\\d{4});/g, (m, code) => {\n\t\treturn String.fromCharCode(code);\n\t});\n\treturn filename;\n}\n\nexport async function toFormData(Body, ct) {\n\tif (!/multipart/i.test(ct)) {\n\t\tthrow new TypeError('Failed to fetch');\n\t}\n\n\tconst m = ct.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n\n\tif (!m) {\n\t\tthrow new TypeError('no or bad content-type header, no multipart boundary');\n\t}\n\n\tconst parser = new MultipartParser(m[1] || m[2]);\n\n\tlet headerField;\n\tlet headerValue;\n\tlet entryValue;\n\tlet entryName;\n\tlet contentType;\n\tlet filename;\n\tconst entryChunks = [];\n\tconst formData = new FormData();\n\n\tconst onPartData = ui8a => {\n\t\tentryValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tconst appendToFile = ui8a => {\n\t\tentryChunks.push(ui8a);\n\t};\n\n\tconst appendFileToFormData = () => {\n\t\tconst file = new File(entryChunks, filename, {type: contentType});\n\t\tformData.append(entryName, file);\n\t};\n\n\tconst appendEntryToFormData = () => {\n\t\tformData.append(entryName, entryValue);\n\t};\n\n\tconst decoder = new TextDecoder('utf-8');\n\tdecoder.decode();\n\n\tparser.onPartBegin = function () {\n\t\tparser.onPartData = onPartData;\n\t\tparser.onPartEnd = appendEntryToFormData;\n\n\t\theaderField = '';\n\t\theaderValue = '';\n\t\tentryValue = '';\n\t\tentryName = '';\n\t\tcontentType = '';\n\t\tfilename = null;\n\t\tentryChunks.length = 0;\n\t};\n\n\tparser.onHeaderField = function (ui8a) {\n\t\theaderField += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderValue = function (ui8a) {\n\t\theaderValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderEnd = function () {\n\t\theaderValue += decoder.decode();\n\t\theaderField = headerField.toLowerCase();\n\n\t\tif (headerField === 'content-disposition') {\n\t\t\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\t\t\tconst m = headerValue.match(/\\bname=(\"([^\"]*)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))/i);\n\n\t\t\tif (m) {\n\t\t\t\tentryName = m[2] || m[3] || '';\n\t\t\t}\n\n\t\t\tfilename = _fileName(headerValue);\n\n\t\t\tif (filename) {\n\t\t\t\tparser.onPartData = appendToFile;\n\t\t\t\tparser.onPartEnd = appendFileToFormData;\n\t\t\t}\n\t\t} else if (headerField === 'content-type') {\n\t\t\tcontentType = headerValue;\n\t\t}\n\n\t\theaderValue = '';\n\t\theaderField = '';\n\t};\n\n\tfor await (const chunk of Body) {\n\t\tparser.write(chunk);\n\t}\n\n\tparser.end();\n\n\treturn formData;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"37.index.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":[".././node_modules/node-fetch/src/utils/multipart-parser.js"],"sourcesContent":["import {File} from 'fetch-blob/from.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\n\nlet s = 0;\nconst S = {\n\tSTART_BOUNDARY: s++,\n\tHEADER_FIELD_START: s++,\n\tHEADER_FIELD: s++,\n\tHEADER_VALUE_START: s++,\n\tHEADER_VALUE: s++,\n\tHEADER_VALUE_ALMOST_DONE: s++,\n\tHEADERS_ALMOST_DONE: s++,\n\tPART_DATA_START: s++,\n\tPART_DATA: s++,\n\tEND: s++\n};\n\nlet f = 1;\nconst F = {\n\tPART_BOUNDARY: f,\n\tLAST_BOUNDARY: f *= 2\n};\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst lower = c => c | 0x20;\n\nconst noop = () => {};\n\nclass MultipartParser {\n\t/**\n\t * @param {string} boundary\n\t */\n\tconstructor(boundary) {\n\t\tthis.index = 0;\n\t\tthis.flags = 0;\n\n\t\tthis.onHeaderEnd = noop;\n\t\tthis.onHeaderField = noop;\n\t\tthis.onHeadersEnd = noop;\n\t\tthis.onHeaderValue = noop;\n\t\tthis.onPartBegin = noop;\n\t\tthis.onPartData = noop;\n\t\tthis.onPartEnd = noop;\n\n\t\tthis.boundaryChars = {};\n\n\t\tboundary = '\\r\\n--' + boundary;\n\t\tconst ui8a = new Uint8Array(boundary.length);\n\t\tfor (let i = 0; i < boundary.length; i++) {\n\t\t\tui8a[i] = boundary.charCodeAt(i);\n\t\t\tthis.boundaryChars[ui8a[i]] = true;\n\t\t}\n\n\t\tthis.boundary = ui8a;\n\t\tthis.lookbehind = new Uint8Array(this.boundary.length + 8);\n\t\tthis.state = S.START_BOUNDARY;\n\t}\n\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\twrite(data) {\n\t\tlet i = 0;\n\t\tconst length_ = data.length;\n\t\tlet previousIndex = this.index;\n\t\tlet {lookbehind, boundary, boundaryChars, index, state, flags} = this;\n\t\tconst boundaryLength = this.boundary.length;\n\t\tconst boundaryEnd = boundaryLength - 1;\n\t\tconst bufferLength = data.length;\n\t\tlet c;\n\t\tlet cl;\n\n\t\tconst mark = name => {\n\t\t\tthis[name + 'Mark'] = i;\n\t\t};\n\n\t\tconst clear = name => {\n\t\t\tdelete this[name + 'Mark'];\n\t\t};\n\n\t\tconst callback = (callbackSymbol, start, end, ui8a) => {\n\t\t\tif (start === undefined || start !== end) {\n\t\t\t\tthis[callbackSymbol](ui8a && ui8a.subarray(start, end));\n\t\t\t}\n\t\t};\n\n\t\tconst dataCallback = (name, clear) => {\n\t\t\tconst markSymbol = name + 'Mark';\n\t\t\tif (!(markSymbol in this)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (clear) {\n\t\t\t\tcallback(name, this[markSymbol], i, data);\n\t\t\t\tdelete this[markSymbol];\n\t\t\t} else {\n\t\t\t\tcallback(name, this[markSymbol], data.length, data);\n\t\t\t\tthis[markSymbol] = 0;\n\t\t\t}\n\t\t};\n\n\t\tfor (i = 0; i < length_; i++) {\n\t\t\tc = data[i];\n\n\t\t\tswitch (state) {\n\t\t\t\tcase S.START_BOUNDARY:\n\t\t\t\t\tif (index === boundary.length - 2) {\n\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else if (c !== CR) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (index - 1 === boundary.length - 2) {\n\t\t\t\t\t\tif (flags & F.LAST_BOUNDARY && c === HYPHEN) {\n\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c !== boundary[index + 2]) {\n\t\t\t\t\t\tindex = -2;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === boundary[index + 2]) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_FIELD_START:\n\t\t\t\t\tstate = S.HEADER_FIELD;\n\t\t\t\t\tmark('onHeaderField');\n\t\t\t\t\tindex = 0;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_FIELD:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tclear('onHeaderField');\n\t\t\t\t\t\tstate = S.HEADERS_ALMOST_DONE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tindex++;\n\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === COLON) {\n\t\t\t\t\t\tif (index === 1) {\n\t\t\t\t\t\t\t// empty header field\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdataCallback('onHeaderField', true);\n\t\t\t\t\t\tstate = S.HEADER_VALUE_START;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcl = lower(c);\n\t\t\t\t\tif (cl < A || cl > Z) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_START:\n\t\t\t\t\tif (c === SPACE) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tmark('onHeaderValue');\n\t\t\t\t\tstate = S.HEADER_VALUE;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_VALUE:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tdataCallback('onHeaderValue', true);\n\t\t\t\t\t\tcallback('onHeaderEnd');\n\t\t\t\t\t\tstate = S.HEADER_VALUE_ALMOST_DONE;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADERS_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback('onHeadersEnd');\n\t\t\t\t\tstate = S.PART_DATA_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.PART_DATA_START:\n\t\t\t\t\tstate = S.PART_DATA;\n\t\t\t\t\tmark('onPartData');\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.PART_DATA:\n\t\t\t\t\tpreviousIndex = index;\n\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t// boyer-moore derrived algorithm to safely skip non-boundary data\n\t\t\t\t\t\ti += boundaryEnd;\n\t\t\t\t\t\twhile (i < bufferLength && !(data[i] in boundaryChars)) {\n\t\t\t\t\t\t\ti += boundaryLength;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ti -= boundaryEnd;\n\t\t\t\t\t\tc = data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < boundary.length) {\n\t\t\t\t\t\tif (boundary[index] === c) {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\tdataCallback('onPartData', true);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tindex++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index === boundary.length) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\t\t// CR = part boundary\n\t\t\t\t\t\t\tflags |= F.PART_BOUNDARY;\n\t\t\t\t\t\t} else if (c === HYPHEN) {\n\t\t\t\t\t\t\t// HYPHEN = end boundary\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index - 1 === boundary.length) {\n\t\t\t\t\t\tif (flags & F.PART_BOUNDARY) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tif (c === LF) {\n\t\t\t\t\t\t\t\t// unset the PART_BOUNDARY flag\n\t\t\t\t\t\t\t\tflags &= ~F.PART_BOUNDARY;\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (flags & F.LAST_BOUNDARY) {\n\t\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t// when matching a possible boundary, keep a lookbehind reference\n\t\t\t\t\t\t// in case it turns out to be a false lead\n\t\t\t\t\t\tlookbehind[index - 1] = c;\n\t\t\t\t\t} else if (previousIndex > 0) {\n\t\t\t\t\t\t// if our boundary turned out to be rubbish, the captured lookbehind\n\t\t\t\t\t\t// belongs to partData\n\t\t\t\t\t\tconst _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);\n\t\t\t\t\t\tcallback('onPartData', 0, previousIndex, _lookbehind);\n\t\t\t\t\t\tpreviousIndex = 0;\n\t\t\t\t\t\tmark('onPartData');\n\n\t\t\t\t\t\t// reconsider the current character even so it interrupted the sequence\n\t\t\t\t\t\t// it could be the beginning of a new sequence\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.END:\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected state entered: ${state}`);\n\t\t\t}\n\t\t}\n\n\t\tdataCallback('onHeaderField');\n\t\tdataCallback('onHeaderValue');\n\t\tdataCallback('onPartData');\n\n\t\t// Update properties for the next call\n\t\tthis.index = index;\n\t\tthis.state = state;\n\t\tthis.flags = flags;\n\t}\n\n\tend() {\n\t\tif ((this.state === S.HEADER_FIELD_START && this.index === 0) ||\n\t\t\t(this.state === S.PART_DATA && this.index === this.boundary.length)) {\n\t\t\tthis.onPartEnd();\n\t\t} else if (this.state !== S.END) {\n\t\t\tthrow new Error('MultipartParser.end(): stream ended unexpectedly');\n\t\t}\n\t}\n}\n\nfunction _fileName(headerValue) {\n\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\tconst m = headerValue.match(/\\bfilename=(\"(.*?)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))($|;\\s)/i);\n\tif (!m) {\n\t\treturn;\n\t}\n\n\tconst match = m[2] || m[3] || '';\n\tlet filename = match.slice(match.lastIndexOf('\\\\') + 1);\n\tfilename = filename.replace(/%22/g, '\"');\n\tfilename = filename.replace(/&#(\\d{4});/g, (m, code) => {\n\t\treturn String.fromCharCode(code);\n\t});\n\treturn filename;\n}\n\nexport async function toFormData(Body, ct) {\n\tif (!/multipart/i.test(ct)) {\n\t\tthrow new TypeError('Failed to fetch');\n\t}\n\n\tconst m = ct.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n\n\tif (!m) {\n\t\tthrow new TypeError('no or bad content-type header, no multipart boundary');\n\t}\n\n\tconst parser = new MultipartParser(m[1] || m[2]);\n\n\tlet headerField;\n\tlet headerValue;\n\tlet entryValue;\n\tlet entryName;\n\tlet contentType;\n\tlet filename;\n\tconst entryChunks = [];\n\tconst formData = new FormData();\n\n\tconst onPartData = ui8a => {\n\t\tentryValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tconst appendToFile = ui8a => {\n\t\tentryChunks.push(ui8a);\n\t};\n\n\tconst appendFileToFormData = () => {\n\t\tconst file = new File(entryChunks, filename, {type: contentType});\n\t\tformData.append(entryName, file);\n\t};\n\n\tconst appendEntryToFormData = () => {\n\t\tformData.append(entryName, entryValue);\n\t};\n\n\tconst decoder = new TextDecoder('utf-8');\n\tdecoder.decode();\n\n\tparser.onPartBegin = function () {\n\t\tparser.onPartData = onPartData;\n\t\tparser.onPartEnd = appendEntryToFormData;\n\n\t\theaderField = '';\n\t\theaderValue = '';\n\t\tentryValue = '';\n\t\tentryName = '';\n\t\tcontentType = '';\n\t\tfilename = null;\n\t\tentryChunks.length = 0;\n\t};\n\n\tparser.onHeaderField = function (ui8a) {\n\t\theaderField += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderValue = function (ui8a) {\n\t\theaderValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderEnd = function () {\n\t\theaderValue += decoder.decode();\n\t\theaderField = headerField.toLowerCase();\n\n\t\tif (headerField === 'content-disposition') {\n\t\t\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\t\t\tconst m = headerValue.match(/\\bname=(\"([^\"]*)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))/i);\n\n\t\t\tif (m) {\n\t\t\t\tentryName = m[2] || m[3] || '';\n\t\t\t}\n\n\t\t\tfilename = _fileName(headerValue);\n\n\t\t\tif (filename) {\n\t\t\t\tparser.onPartData = appendToFile;\n\t\t\t\tparser.onPartEnd = appendFileToFormData;\n\t\t\t}\n\t\t} else if (headerField === 'content-type') {\n\t\t\tcontentType = headerValue;\n\t\t}\n\n\t\theaderValue = '';\n\t\theaderField = '';\n\t};\n\n\tfor await (const chunk of Body) {\n\t\tparser.write(chunk);\n\t}\n\n\tparser.end();\n\n\treturn formData;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/update-machine-key-github/index.js b/dist/update-machine-key-github/index.js index 0682517..2fca345 100644 --- a/dist/update-machine-key-github/index.js +++ b/dist/update-machine-key-github/index.js @@ -8,11 +8,7 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -291,9 +287,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -311,7 +311,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -351,10 +351,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -387,12 +384,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -521,11 +514,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -544,23 +533,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -591,14 +563,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -610,22 +581,7 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), @@ -646,8 +602,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); +const http_client_1 = __nccwpck_require__(9925); +const auth_1 = __nccwpck_require__(3702); const core_1 = __nccwpck_require__(2186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { @@ -680,7 +636,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -714,361 +670,6 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - /***/ 5278: /***/ ((__unused_webpack_module, exports) => { @@ -1247,7 +848,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); +const httpClient = __importStar(__nccwpck_require__(6341)); function getAuthString(token, options) { if (!token && !options.auth) { throw new Error('Parameter token or opts.auth is required'); @@ -1332,95 +933,7 @@ exports.getOctokitOptions = getOctokitOptions; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: +/***/ 6341: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -1458,7 +971,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; const http = __importStar(__nccwpck_require__(3685)); const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); +const pm = __importStar(__nccwpck_require__(3466)); const tunnel = __importStar(__nccwpck_require__(4294)); var HttpCodes; (function (HttpCodes) { @@ -2032,7 +1545,7 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ }), -/***/ 9835: +/***/ 3466: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -2100,652 +1613,746 @@ exports.checkBypass = checkBypass; /***/ }), -/***/ 334: +/***/ 3702: /***/ ((__unused_webpack_module, exports) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -const REGEX_IS_INSTALLATION = /^ghs_/; -const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token: token, - tokenType - }; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -/** - * Prefix token for usage in the Authorization header - * - * @param token OAuth token or JSON Web Token - */ -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - - return `token ${token}`; +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -const createTokenAuth = function createTokenAuth(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) - }); -}; - -exports.createTokenAuth = createTokenAuth; -//# sourceMappingURL=index.js.map +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; /***/ }), -/***/ 6762: +/***/ 9925: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -var universalUserAgent = __nccwpck_require__(5030); -var beforeAfterHook = __nccwpck_require__(3682); -var request = __nccwpck_require__(6234); -var graphql = __nccwpck_require__(8467); -var authToken = __nccwpck_require__(334); - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; +const http = __nccwpck_require__(3685); +const https = __nccwpck_require__(5687); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; } - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); } - } - - return target; } - -const VERSION = "3.6.0"; - -const _excluded = ["authStrategy"]; -class Octokit { - constructor(options = {}) { - const hook = new beforeAfterHook.Collection(); - const requestDefaults = { - baseUrl: request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; // prepend default user agent with `options.userAgent` if set - - requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); - - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; - } - - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; - } - - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; } - - this.request = request.request.defaults(requestDefaults); - this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign({ - debug: () => {}, - info: () => {}, - warn: console.warn.bind(console), - error: console.error.bind(console) - }, options.log); - this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance - // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. - // (2) If only `options.auth` is set, use the default token authentication strategy. - // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. - // TODO: type `options.auth` based on `options.authStrategy`. - - if (!options.authStrategy) { - if (!options.auth) { - // (1) - this.auth = async () => ({ - type: "unauthenticated" + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); }); - } else { - // (2) - const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { - authStrategy - } = options, - otherOptions = _objectWithoutProperties(options, _excluded); - - const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } // apply plugins - // https://stackoverflow.com/a/16345172 - - - const classConstructor = this.constructor; - classConstructor.plugins.forEach(plugin => { - Object.assign(this, plugin(this, options)); - }); - } - - 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; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - - - static plugin(...newPlugins) { - var _a; - - const currentPlugins = this.plugins; - const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); - return NewOctokit; - } - + } } -Octokit.VERSION = VERSION; -Octokit.plugins = []; - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 9440: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var isPlainObject = __nccwpck_require__(3287); -var universalUserAgent = __nccwpck_require__(5030); - -function lowercaseKeys(object) { - if (!object) { - return {}; - } - - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; } - -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach(key => { - if (isPlainObject.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] - }); +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, 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 = userAgent; + 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; + } + } } - }); - return result; -} - -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === undefined) { - delete obj[key]; + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); } - } - - 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); - } // lowercase header names before merging with defaults to avoid duplicates - - - options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging - - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten - - 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("+"); + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); } - - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -const urlVariableRegex = /\{[^}]+\}/g; - -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} - -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - - if (!matches) { - return []; - } - - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -function omit(object, keysToOmit) { - return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { - obj[key] = object[key]; - return obj; - }, {}); -} - -// Based on https://github.com/bramstein/url-template, licensed under BSD -// TODO: create separate package. -// -// Copyright (c) 2012-2014, Bram Stein -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/* istanbul ignore file */ -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, "]"); + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); } - - 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 !== undefined && 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 (value) { - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + } + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); } - }); } - } else { - const tmp = []; - - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - tmp.push(encodeValue(operator, value)); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + 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(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); } - }); + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); } - - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); - } else if (tmp.length !== 0) { - result.push(tmp.join(",")); + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); } - } } - } else { - if (operator === ";") { - if (isDefined(value)) { - result.push(encodeUnreserved(key)); - } - } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); - } else if (value === "") { - result.push(""); + /** + * 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) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); } - } - - return result; -} - -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} - -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - return 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; + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; } - - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((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 reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); } - }); } +exports.HttpClient = HttpClient; -function parse(options) { - // https://fetch.spec.whatwg.org/#methods - let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible - - 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"]); // extract variable names from URL to calculate remaining variables later - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); +/***/ }), - if (!/^http/.test(url)) { - url = options.baseUrl + url; - } +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { - 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); +"use strict"; - if (!isBinaryRequest) { - if (options.mediaType.format) { - // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw - headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); +Object.defineProperty(exports, "__esModule", ({ value: true })); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; } - - if (options.mediaType.previews.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; } - } // for GET/HEAD requests, set URL query parameters from remaining parameters - // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters - - - 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; - } else { - headers["content-length"] = 0; - } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; } - } // default content-type for JSON if body is set + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. - // fetch does not allow to set `content-length` header, but we can set body to an empty string +/***/ }), +/***/ 334: +/***/ ((__unused_webpack_module, exports) => { - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } // Only return body/request keys if present +"use strict"; - return Object.assign({ - method, - url, - headers - }, typeof body !== "undefined" ? { - body - } : null, options.request ? { - request: options.request - } : null); -} +Object.defineProperty(exports, "__esModule", ({ value: true })); -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; } -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse - }); +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; } -const VERSION = "6.0.12"; +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} -const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. -// So we use RequestParameters and add method as additional required property. +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } -const DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "", - previews: [] + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); } -}; -const endpoint = withDefaults(null, DEFAULTS); + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; -exports.endpoint = endpoint; +exports.createTokenAuth = createTokenAuth; //# sourceMappingURL=index.js.map /***/ }), -/***/ 8467: +/***/ 6762: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -2753,683 +2360,1265 @@ exports.endpoint = endpoint; Object.defineProperty(exports, "__esModule", ({ value: true })); -var request = __nccwpck_require__(6234); var universalUserAgent = __nccwpck_require__(5030); +var beforeAfterHook = __nccwpck_require__(3682); +var request = __nccwpck_require__(6234); +var graphql = __nccwpck_require__(8467); +var authToken = __nccwpck_require__(334); -const VERSION = "4.8.0"; +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; } -class GraphqlResponseError extends Error { - constructor(request, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; - this.errors = response.errors; - this.data = response.data; // Maintains proper stack trace (only available on V8) + var target = _objectWithoutPropertiesLoose(source, excluded); - /* istanbul ignore next */ + var key, i; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; } } + return target; } -const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; -const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request, 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`)); - } +const VERSION = "3.6.0"; - 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 _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; } - } - 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 (options.previews) { + requestDefaults.mediaType.previews = options.previews; } - if (!result.variables) { - result.variables = {}; + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix - // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. - const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); + + const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); } - return request(requestOptions).then(response => { - if (response.data.errors) { - const headers = {}; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } + if (typeof defaults === "function") { + super(defaults(options)); + return; + } - throw new GraphqlResponseError(requestOptions, headers, response.data); - } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } - return response.data.data; - }); -} + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ -function withDefaults(request$1, newDefaults) { - const newRequest = request$1.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; + static plugin(...newPlugins) { + var _a; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: request.request.endpoint - }); -} + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } -const graphql$1 = withDefaults(request.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); } +Octokit.VERSION = VERSION; +Octokit.plugins = []; -exports.GraphqlResponseError = GraphqlResponseError; -exports.graphql = graphql$1; -exports.withCustomRequest = withCustomRequest; +exports.Octokit = Octokit; //# sourceMappingURL=index.js.map /***/ }), -/***/ 4193: -/***/ ((__unused_webpack_module, exports) => { +/***/ 9440: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -const VERSION = "2.17.0"; - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - } +var isPlainObject = __nccwpck_require__(3287); +var universalUserAgent = __nccwpck_require__(5030); - keys.push.apply(keys, symbols); +function lowercaseKeys(object) { + if (!object) { + return {}; } - return keys; + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); } -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.isPlainObject(options[key])) { + if (!(key in defaults)) Object.assign(result, { + [key]: options[key] + });else result[key] = mergeDeep(defaults[key], options[key]); } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + Object.assign(result, { + [key]: options[key] }); } - } - - return target; + }); + return result; } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } } return obj; } -/** - * Some “list” response that can be paginated have a different response structure - * - * They have a `total_count` key in the response (search also has `incomplete_results`, - * /installation/repositories also has `repository_selection`), as well as a key with - * the list of the items which name varies from endpoint to endpoint. - * - * Octokit normalizes these responses so that paginated results are always returned following - * the same structure. One challenge is that if the list response has only one page, no Link - * header is provided, so this header alone is not sufficient to check wether a response is - * paginated or not. - * - * We check if a "total_count" key is present in the response data, but also make sure that - * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would - * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref - */ -function normalizePaginatedListResponse(response) { - // endpoints can respond with 204 if repository is empty - if (!response.data) { - return _objectSpread2(_objectSpread2({}, response), {}, { - data: [] - }); - } +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); + } // lowercase header names before merging with defaults to avoid duplicates - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way - // to retrieve the same information. - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; - } + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); } - response.data.total_count = totalCount; - return response; + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; } -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 - }; +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); - try { - const response = await requestMethod({ - method, - url, - headers - }); - const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format: - // '; rel="next", ; rel="last"' - // sets `url` to undefined if "next" URL is not present or `link` header is not set + if (names.length === 0) { + return url; + } - url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; - return { - value: normalizedResponse - }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } - }) - }; + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); } -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = undefined; - } +const urlVariableRegex = /\{[^}]+\}/g; - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); } -function gather(octokit, results, iterator, mapFn) { - return iterator.next().then(result => { - if (result.done) { - return results; - } +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); - let earlyExit = false; + if (!matches) { + return []; + } - function done() { - earlyExit = true; - } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} - results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} - if (earlyExit) { - return results; +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* istanbul ignore file */ +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 gather(octokit, results, iterator, mapFn); - }); + return part; + }).join(""); } -const composePaginateRest = Object.assign(paginate, { - iterator -}); +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} -const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); + if (key) { + return encodeUnreserved(key) + "=" + value; } else { - return false; + return value; } } -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ +function isDefined(value) { + return value !== undefined && value !== null; +} -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; } -paginateRest.VERSION = VERSION; -exports.composePaginateRest = composePaginateRest; -exports.isPaginatingEndpoint = isPaginatingEndpoint; -exports.paginateRest = paginateRest; -exports.paginatingEndpoints = paginatingEndpoints; -//# sourceMappingURL=index.js.map +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)); + } -/***/ 3044: -/***/ ((__unused_webpack_module, exports) => { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; -"use strict"; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } 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; +} -Object.defineProperty(exports, "__esModule", ({ value: true })); +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; + 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); } + }); +} - keys.push.apply(keys, symbols); +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + 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"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; } - return keys; -} + 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); -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } } - } + } // default content-type for JSON if body is set - return target; + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} - return obj; +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); } -const Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], - addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], - approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], - cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], - createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - 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"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], - getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], - 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}"], - getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], - getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - 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}"], - 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}"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], - 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"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - 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"], - 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}"], - 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"], - setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], - setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent }, - 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"], - 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}"] + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8467: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var request = __nccwpck_require__(6234); +var universalUserAgent = __nccwpck_require__(5030); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); +} + +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, 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; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(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 withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` }, - 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"], - 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"], - getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], - getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], - 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"] - }, - 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: { - deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], - 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}"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - 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"] - }], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], - createForAuthenticatedUser: ["POST /user/codespaces"], - 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}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], - exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], - getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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" + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4193: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const VERSION = "2.17.0"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + 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; + 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); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + 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 = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.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, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3044: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], + addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + 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"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], + getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], + 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}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + 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}"], + getPendingDeploymentsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], + getRepoPermissions: ["GET /repos/{owner}/{repo}/actions/permissions", {}, { + renamed: ["actions", "getGithubActionsPermissionsRepository"] }], - listInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], - setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_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 /repositories/{repository_id}/environments/{environment_name}/secrets"], + 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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + 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"], + 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}"], + 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"], + setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], + setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] }, - 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}"], + 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"], + 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"], + 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"], + getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], + getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], + 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"] + }, + 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: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + 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}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + 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"] + }], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], + createForAuthenticatedUser: ["POST /user/codespaces"], + 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}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], + exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], + getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], + setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + }, + 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}"], getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], @@ -8279,1360 +8468,714 @@ module.exports.basicURLParse = function (input, options) { } return usm.url; -}; - -module.exports.setTheUsername = function (url, username) { - url.username = ""; - const decoded = punycode.ucs2.decode(username); - for (let i = 0; i < decoded.length; ++i) { - url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.setThePassword = function (url, password) { - url.password = ""; - const decoded = punycode.ucs2.decode(password); - for (let i = 0; i < decoded.length; ++i) { - url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.serializeHost = serializeHost; - -module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; - -module.exports.serializeInteger = function (integer) { - return String(integer); -}; - -module.exports.parseURL = function (input, options) { - if (options === undefined) { - options = {}; - } - - // We don't handle blobs, so this just delegates: - return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); -}; - - -/***/ }), - -/***/ 3387: -/***/ ((module) => { - -"use strict"; - - -module.exports.mixin = function mixin(target, source) { - const keys = Object.getOwnPropertyNames(source); - for (let i = 0; i < keys.length; ++i) { - Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); - } -}; - -module.exports.wrapperSymbol = Symbol("wrapper"); -module.exports.implSymbol = Symbol("impl"); - -module.exports.wrapperForImpl = function (impl) { - return impl[module.exports.wrapperSymbol]; -}; - -module.exports.implForWrapper = function (wrapper) { - return wrapper[module.exports.implSymbol]; -}; - - - -/***/ }), - -/***/ 3682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(4670) -var addHook = __nccwpck_require__(5549) -var removeHook = __nccwpck_require__(6819) - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -var bind = Function.bind -var bindable = bind.bind(bind) - -function bindApi (hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) - hook.api = { remove: removeHookRef } - hook.remove = removeHookRef - - ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { - var args = name ? [state, kind, name] : [state, kind] - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) - }) -} - -function HookSingular () { - var singularHookName = 'h' - var singularHookState = { - registry: {} - } - var singularHook = register.bind(null, singularHookState, singularHookName) - bindApi(singularHook, singularHookState, singularHookName) - return singularHook -} - -function HookCollection () { - var state = { - registry: {} - } - - var hook = register.bind(null, state) - bindApi(hook, state) - - return hook -} - -var collectionHookDeprecationMessageDisplayed = false -function Hook () { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') - collectionHookDeprecationMessageDisplayed = true - } - return HookCollection() -} - -Hook.Singular = HookSingular.bind() -Hook.Collection = HookCollection.bind() - -module.exports = Hook -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook -module.exports.Singular = Hook.Singular -module.exports.Collection = Hook.Collection - - -/***/ }), - -/***/ 5549: -/***/ ((module) => { - -module.exports = addHook; - -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - hook = function (method, options) { - var result; - return Promise.resolve() - .then(method.bind(null, options)) - .then(function (result_) { - result = result_; - return orig(result, options); - }) - .then(function () { - return result; - }); - }; - } - - if (kind === "error") { - hook = function (method, options) { - return Promise.resolve() - .then(method.bind(null, options)) - .catch(function (error) { - return orig(error, options); - }); - }; - } - - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} - - -/***/ }), - -/***/ 4670: -/***/ ((module) => { - -module.exports = register; - -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(function (callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - } - - return Promise.resolve().then(function () { - if (!state.registry[name]) { - return method(options); - } - - return state.registry[name].reduce(function (method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); -} - - -/***/ }), - -/***/ 6819: -/***/ ((module) => { - -module.exports = removeHook; - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); -} - - -/***/ }), - -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = 'Deprecation'; - } - -} - -exports.Deprecation = Deprecation; - - -/***/ }), - -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} - -function isPlainObject(o) { - var ctor,prot; - - if (isObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; - - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -} - -exports.isPlainObject = isPlainObject; - - -/***/ }), - -/***/ 713: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -!function(e){function r(e,r){"use strict";var t,a="uint8array",_=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error("libsodium was not correctly initialized.");for(var r=["crypto_aead_chacha20poly1305_decrypt","crypto_aead_chacha20poly1305_decrypt_detached","crypto_aead_chacha20poly1305_encrypt","crypto_aead_chacha20poly1305_encrypt_detached","crypto_aead_chacha20poly1305_ietf_decrypt","crypto_aead_chacha20poly1305_ietf_decrypt_detached","crypto_aead_chacha20poly1305_ietf_encrypt","crypto_aead_chacha20poly1305_ietf_encrypt_detached","crypto_aead_chacha20poly1305_ietf_keygen","crypto_aead_chacha20poly1305_keygen","crypto_aead_xchacha20poly1305_ietf_decrypt","crypto_aead_xchacha20poly1305_ietf_decrypt_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_encrypt_detached","crypto_aead_xchacha20poly1305_ietf_keygen","crypto_auth","crypto_auth_hmacsha256","crypto_auth_hmacsha256_final","crypto_auth_hmacsha256_init","crypto_auth_hmacsha256_keygen","crypto_auth_hmacsha256_update","crypto_auth_hmacsha256_verify","crypto_auth_hmacsha512","crypto_auth_hmacsha512_final","crypto_auth_hmacsha512_init","crypto_auth_hmacsha512_keygen","crypto_auth_hmacsha512_update","crypto_auth_hmacsha512_verify","crypto_auth_keygen","crypto_auth_verify","crypto_box_beforenm","crypto_box_curve25519xchacha20poly1305_keypair","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","crypto_box_detached","crypto_box_easy","crypto_box_easy_afternm","crypto_box_keypair","crypto_box_open_detached","crypto_box_open_easy","crypto_box_open_easy_afternm","crypto_box_seal","crypto_box_seal_open","crypto_box_seed_keypair","crypto_core_ed25519_add","crypto_core_ed25519_from_hash","crypto_core_ed25519_from_uniform","crypto_core_ed25519_is_valid_point","crypto_core_ed25519_random","crypto_core_ed25519_scalar_add","crypto_core_ed25519_scalar_complement","crypto_core_ed25519_scalar_invert","crypto_core_ed25519_scalar_mul","crypto_core_ed25519_scalar_negate","crypto_core_ed25519_scalar_random","crypto_core_ed25519_scalar_reduce","crypto_core_ed25519_scalar_sub","crypto_core_ed25519_sub","crypto_core_hchacha20","crypto_core_hsalsa20","crypto_core_ristretto255_add","crypto_core_ristretto255_from_hash","crypto_core_ristretto255_is_valid_point","crypto_core_ristretto255_random","crypto_core_ristretto255_scalar_add","crypto_core_ristretto255_scalar_complement","crypto_core_ristretto255_scalar_invert","crypto_core_ristretto255_scalar_mul","crypto_core_ristretto255_scalar_negate","crypto_core_ristretto255_scalar_random","crypto_core_ristretto255_scalar_reduce","crypto_core_ristretto255_scalar_sub","crypto_core_ristretto255_sub","crypto_generichash","crypto_generichash_blake2b_salt_personal","crypto_generichash_final","crypto_generichash_init","crypto_generichash_keygen","crypto_generichash_update","crypto_hash","crypto_hash_sha256","crypto_hash_sha256_final","crypto_hash_sha256_init","crypto_hash_sha256_update","crypto_hash_sha512","crypto_hash_sha512_final","crypto_hash_sha512_init","crypto_hash_sha512_update","crypto_kdf_derive_from_key","crypto_kdf_keygen","crypto_kx_client_session_keys","crypto_kx_keypair","crypto_kx_seed_keypair","crypto_kx_server_session_keys","crypto_onetimeauth","crypto_onetimeauth_final","crypto_onetimeauth_init","crypto_onetimeauth_keygen","crypto_onetimeauth_update","crypto_onetimeauth_verify","crypto_pwhash","crypto_pwhash_scryptsalsa208sha256","crypto_pwhash_scryptsalsa208sha256_ll","crypto_pwhash_scryptsalsa208sha256_str","crypto_pwhash_scryptsalsa208sha256_str_verify","crypto_pwhash_str","crypto_pwhash_str_needs_rehash","crypto_pwhash_str_verify","crypto_scalarmult","crypto_scalarmult_base","crypto_scalarmult_ed25519","crypto_scalarmult_ed25519_base","crypto_scalarmult_ed25519_base_noclamp","crypto_scalarmult_ed25519_noclamp","crypto_scalarmult_ristretto255","crypto_scalarmult_ristretto255_base","crypto_secretbox_detached","crypto_secretbox_easy","crypto_secretbox_keygen","crypto_secretbox_open_detached","crypto_secretbox_open_easy","crypto_secretstream_xchacha20poly1305_init_pull","crypto_secretstream_xchacha20poly1305_init_push","crypto_secretstream_xchacha20poly1305_keygen","crypto_secretstream_xchacha20poly1305_pull","crypto_secretstream_xchacha20poly1305_push","crypto_secretstream_xchacha20poly1305_rekey","crypto_shorthash","crypto_shorthash_keygen","crypto_shorthash_siphashx24","crypto_sign","crypto_sign_detached","crypto_sign_ed25519_pk_to_curve25519","crypto_sign_ed25519_sk_to_curve25519","crypto_sign_ed25519_sk_to_pk","crypto_sign_ed25519_sk_to_seed","crypto_sign_final_create","crypto_sign_final_verify","crypto_sign_init","crypto_sign_keypair","crypto_sign_open","crypto_sign_seed_keypair","crypto_sign_update","crypto_sign_verify_detached","crypto_stream_chacha20","crypto_stream_chacha20_ietf_xor","crypto_stream_chacha20_ietf_xor_ic","crypto_stream_chacha20_keygen","crypto_stream_chacha20_xor","crypto_stream_chacha20_xor_ic","crypto_stream_keygen","crypto_stream_xchacha20_keygen","crypto_stream_xchacha20_xor","crypto_stream_xchacha20_xor_ic","randombytes_buf","randombytes_buf_deterministic","randombytes_close","randombytes_random","randombytes_set_implementation","randombytes_stir","randombytes_uniform","sodium_version_string"],a=[x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,se,ne,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,sr,nr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,st,nt,ct,ot,ht,pt,yt,it,lt,ut,dt,vt,gt,bt,ft,mt,Et],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[s]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var o={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(null==e)return o.URLSAFE_NO_PADDING;if(e!==o.ORIGINAL&&e!==o.ORIGINAL_NO_PADDING&&e!==o.URLSAFE&&e!=o.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function p(e,r){r=h(r),e=E(_,e,"input");var a,_=[],s=0|Math.floor(e.length/3),c=e.length-3*s,o=4*s+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new u(o+1),y=d(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&b(_,"conversion failed"),p.length=o,a=n(p.to_Uint8Array()),g(_),a}function y(e,r){var t=r||a;if(!i(t))throw new Error(t+" output format is not available");if(e instanceof u){if("uint8array"===t)return e.to_Uint8Array();if("text"===t)return n(e.to_Uint8Array());if("hex"===t)return c(e.to_Uint8Array());if("base64"===t)return p(e.to_Uint8Array(),o.URLSAFE_NO_PADDING);throw new Error('What is output format "'+t+'"?')}if("object"==typeof e){for(var _=Object.keys(e),s={},h=0;h<_.length;h++)s[_[h]]=y(e[_[h]],t);return s}if("string"==typeof e)return e;throw new TypeError("Cannot format output")}function i(e){for(var r=["uint8array","text","hex","base64"],t=0;t>>24>>>8,o,p);var x=y(v,n);return g(c),x}function ar(e){var r=[];l(e);var a=new u(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var s=y(a,e);return g(r),s}function _r(e,r,a,_){var s=[];l(_),e=E(s,e,"clientPublicKey");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(s,"invalid clientPublicKey length"),n=d(e),s.push(n),r=E(s,r,"clientSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(s,"invalid clientSecretKey length"),o=d(r),s.push(o),a=E(s,a,"serverPublicKey");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(s,"invalid serverPublicKey length"),p=d(a),s.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;s.push(m);var x=new u(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_client_session_keys(m,k,n,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(s),S}b(s,"invalid usage")}function sr(e){var r=[];l(e);var a=new u(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var s=new u(0|t._crypto_kx_secretkeybytes()),n=s.address;if(r.push(n),0==(0|t._crypto_kx_keypair(_,n))){var c={publicKey:y(a,e),privateKey:y(s,e),keyType:"x25519"};return g(r),c}b(r,"internal error")}function nr(e,r){var a=[];l(r),e=E(a,e,"seed");var _,s=0|t._crypto_kx_seedbytes();e.length!==s&&f(a,"invalid seed length"),_=d(e),a.push(_);var n=new u(0|t._crypto_kx_publickeybytes()),c=n.address;a.push(c);var o=new u(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var p={publicKey:y(n,r),privateKey:y(o,r),keyType:"x25519"};return g(a),p}b(a,"internal error")}function cr(e,r,a,_){var s=[];l(_),e=E(s,e,"serverPublicKey");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(s,"invalid serverPublicKey length"),n=d(e),s.push(n),r=E(s,r,"serverSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(s,"invalid serverSecretKey length"),o=d(r),s.push(o),a=E(s,a,"clientPublicKey");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(s,"invalid clientPublicKey length"),p=d(a),s.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;s.push(m);var x=new u(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_server_session_keys(m,k,n,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(s),S}b(s,"invalid usage")}function or(e,r,a){var _=[];l(a);var s=d(e=E(_,e,"message")),n=e.length;_.push(s),r=E(_,r,"key");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&f(_,"invalid key length"),c=d(r),_.push(c);var h=new u(0|t._crypto_onetimeauth_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_onetimeauth(p,s,n,0,c))){var i=y(h,a);return g(_),i}b(_,"invalid usage")}function hr(e,r){var a=[];l(r),m(a,e,"state_address");var _=new u(0|t._crypto_onetimeauth_bytes()),s=_.address;if(a.push(s),0==(0|t._crypto_onetimeauth_final(e,s))){var n=(t._free(e),y(_,r));return g(a),n}b(a,"invalid usage")}function pr(e,r){var a=[];l(r);var _=null;null!=e&&(_=d(e=E(a,e,"key")),e.length,a.push(_));var s=new u(144).address;if(0==(0|t._crypto_onetimeauth_init(s,_))){var n=s;return g(a),n}b(a,"invalid usage")}function yr(e){var r=[];l(e);var a=new u(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var s=y(a,e);return g(r),s}function ir(e,r,a){var _=[];l(a),m(_,e,"state_address");var s=d(r=E(_,r,"message_chunk")),n=r.length;_.push(s),0!=(0|t._crypto_onetimeauth_update(e,s,n))&&b(_,"invalid usage"),g(_)}function lr(e,r,a){var _=[];e=E(_,e,"hash");var s,n=0|t._crypto_onetimeauth_bytes();e.length!==n&&f(_,"invalid hash length"),s=d(e),_.push(s);var c=d(r=E(_,r,"message")),o=r.length;_.push(c),a=E(_,a,"key");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&f(_,"invalid key length"),h=d(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(s,c,o,0,h));return g(_),y}function ur(e,r,a,_,s,n,c){var o=[];l(c),m(o,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(o,"keyLength must be an unsigned integer");var h=d(r=E(o,r,"password")),p=r.length;o.push(h),a=E(o,a,"salt");var i,v=0|t._crypto_pwhash_saltbytes();a.length!==v&&f(o,"invalid salt length"),i=d(a),o.push(i),m(o,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(o,"opsLimit must be an unsigned integer"),m(o,s,"memLimit"),("number"!=typeof s||(0|s)!==s||s<0)&&f(o,"memLimit must be an unsigned integer"),m(o,n,"algorithm"),("number"!=typeof n||(0|n)!==n||n<0)&&f(o,"algorithm must be an unsigned integer");var x=new u(0|e),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,p,0,i,_,0,s,n))){var S=y(x,c);return g(o),S}b(o,"invalid usage")}function dr(e,r,a,_,s,n){var c=[];l(n),m(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(c,"keyLength must be an unsigned integer");var o=d(r=E(c,r,"password")),h=r.length;c.push(o),a=E(c,a,"salt");var p,i=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==i&&f(c,"invalid salt length"),p=d(a),c.push(p),m(c,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(c,"opsLimit must be an unsigned integer"),m(c,s,"memLimit"),("number"!=typeof s||(0|s)!==s||s<0)&&f(c,"memLimit must be an unsigned integer");var v=new u(0|e),x=v.address;if(c.push(x),0==(0|t._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,p,_,0,s))){var k=y(v,n);return g(c),k}b(c,"invalid usage")}function vr(e,r,a,_,s,n,c){var o=[];l(c);var h=d(e=E(o,e,"password")),p=e.length;o.push(h);var i=d(r=E(o,r,"salt")),v=r.length;o.push(i),m(o,a,"opsLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(o,"opsLimit must be an unsigned integer"),m(o,_,"r"),("number"!=typeof _||(0|_)!==_||_<0)&&f(o,"r must be an unsigned integer"),m(o,s,"p"),("number"!=typeof s||(0|s)!==s||s<0)&&f(o,"p must be an unsigned integer"),m(o,n,"keyLength"),("number"!=typeof n||(0|n)!==n||n<0)&&f(o,"keyLength must be an unsigned integer");var x=new u(0|n),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,p,i,v,a,0,_,s,k,n))){var S=y(x,c);return g(o),S}b(o,"invalid usage")}function gr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"password")),c=e.length;s.push(n),m(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(s,"opsLimit must be an unsigned integer"),m(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(s,"memLimit must be an unsigned integer");var o=new u(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(s),h}b(s,"invalid usage")}function br(e,r,a){var _=[];l(a),"string"!=typeof e&&f(_,"hashed_password must be a string"),e=s(e+"\0"),null!=c&&e.length-1!==c&&f(_,"invalid hashed_password length");var n=d(e),c=e.length-1;_.push(n);var o=d(r=E(_,r,"password")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(n,o,h,0));return g(_),p}function fr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"password")),c=e.length;s.push(n),m(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(s,"opsLimit must be an unsigned integer"),m(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(s,"memLimit must be an unsigned integer");var o=new u(0|t._crypto_pwhash_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(s),h}b(s,"invalid usage")}function mr(e,r,a,_){var n=[];l(_),"string"!=typeof e&&f(n,"hashed_password must be a string"),e=s(e+"\0"),null!=o&&e.length-1!==o&&f(n,"invalid hashed_password length");var c=d(e),o=e.length-1;n.push(c),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&f(n,"memLimit must be an unsigned integer");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return g(n),h}function Er(e,r,a){var _=[];l(a),"string"!=typeof e&&f(_,"hashed_password must be a string"),e=s(e+"\0"),null!=c&&e.length-1!==c&&f(_,"invalid hashed_password length");var n=d(e),c=e.length-1;_.push(n);var o=d(r=E(_,r,"password")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_str_verify(n,o,h,0));return g(_),p}function xr(e,r,a){var _=[];l(a),e=E(_,e,"privateKey");var s,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&f(_,"invalid privateKey length"),s=d(e),_.push(s),r=E(_,r,"publicKey");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&f(_,"invalid publicKey length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult(p,s,c))){var i=y(h,a);return g(_),i}b(_,"weak public key")}function kr(e,r){var a=[];l(r),e=E(a,e,"privateKey");var _,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&f(a,"invalid privateKey length"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=y(n,r);return g(a),o}b(a,"unknown error")}function Sr(e,r,a){var _=[];l(a),e=E(_,e,"n");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(_,"invalid n length"),s=d(e),_.push(s),r=E(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,"invalid p length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519(p,s,c))){var i=y(h,a);return g(_),i}b(_,"invalid point or scalar is 0")}function Tr(e,r){var a=[];l(r),e=E(a,e,"scalar");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(a,"invalid scalar length"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=y(n,r);return g(a),o}b(a,"scalar is 0")}function wr(e,r){var a=[];l(r),e=E(a,e,"scalar");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(a,"invalid scalar length"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=y(n,r);return g(a),o}b(a,"scalar is 0")}function Yr(e,r,a){var _=[];l(a),e=E(_,e,"n");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(_,"invalid n length"),s=d(e),_.push(s),r=E(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,"invalid p length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519_noclamp(p,s,c))){var i=y(h,a);return g(_),i}b(_,"invalid point or scalar is 0")}function Br(e,r,a){var _=[];l(a),e=E(_,e,"scalar");var s,n=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==n&&f(_,"invalid scalar length"),s=d(e),_.push(s),r=E(_,r,"element");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&f(_,"invalid element length"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ristretto255_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ristretto255(p,s,c))){var i=y(h,a);return g(_),i}b(_,"result is identity element")}function Ar(e,r){var a=[];l(r),e=E(a,e,"scalar");var _,s=0|t._crypto_core_ristretto255_scalarbytes();e.length!==s&&f(a,"invalid scalar length"),_=d(e),a.push(_);var n=new u(0|t._crypto_core_ristretto255_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=y(n,r);return g(a),o}b(a,"scalar is 0")}function Kr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"message")),c=e.length;s.push(n),r=E(s,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(s,"invalid nonce length"),o=d(r),s.push(o),a=E(s,a,"key");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(s,"invalid key length"),p=d(a),s.push(p);var v=new u(0|c),m=v.address;s.push(m);var x=new u(0|t._crypto_secretbox_macbytes()),k=x.address;if(s.push(k),0==(0|t._crypto_secretbox_detached(m,k,n,c,0,o,p))){var S=y({mac:x,cipher:v},_);return g(s),S}b(s,"invalid usage")}function Mr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,"message")),c=e.length;s.push(n),r=E(s,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(s,"invalid nonce length"),o=d(r),s.push(o),a=E(s,a,"key");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(s,"invalid key length"),p=d(a),s.push(p);var v=new u(c+t._crypto_secretbox_macbytes()|0),m=v.address;if(s.push(m),0==(0|t._crypto_secretbox_easy(m,n,c,0,o,p))){var x=y(v,_);return g(s),x}b(s,"invalid usage")}function Ir(e){var r=[];l(e);var a=new u(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var s=y(a,e);return g(r),s}function Nr(e,r,a,_,s){var n=[];l(s);var c=d(e=E(n,e,"ciphertext")),o=e.length;n.push(c),r=E(n,r,"mac");var h,p=0|t._crypto_secretbox_macbytes();r.length!==p&&f(n,"invalid mac length"),h=d(r),n.push(h),a=E(n,a,"nonce");var i,v=0|t._crypto_secretbox_noncebytes();a.length!==v&&f(n,"invalid nonce length"),i=d(a),n.push(i),_=E(n,_,"key");var m,x=0|t._crypto_secretbox_keybytes();_.length!==x&&f(n,"invalid key length"),m=d(_),n.push(m);var k=new u(0|o),S=k.address;if(n.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,i,m))){var T=y(k,s);return g(n),T}b(n,"wrong secret key for the given ciphertext")}function Lr(e,r,a,_){var s=[];l(_),e=E(s,e,"ciphertext");var n,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return g([]),r}function bt(e,r){var a=[];l(r);for(var _=t._malloc(24),s=0;s<6;s++)t.setValue(_+4*s,t.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][s]]),"i32");0!=(0|t._randombytes_set_implementation(_))&&b(a,"unsupported implementation"),g(a)}function ft(e){l(e),t._randombytes_stir()}function mt(e,r){var a=[];l(r),m(a,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&f(a,"upper_bound must be an unsigned integer");var _=t._randombytes_uniform(e)>>>0;return g(a),_}function Et(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return g([]),r}return u.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can added");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError("Arguments must have the same length");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=o,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==r.length)throw new TypeError("Only instances of identical length can be compared");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=h(r);var a,_=[],s=new u(3*(e=E(_,e,"input")).length/4),n=d(e),c=v(4),o=v(4);return _.push(n),_.push(s.address),_.push(s.result_bin_len_p),_.push(s.b64_end_p),0!==t._sodium_base642bin(s.address,s.length,n,e.length,0,c,o,r)&&b(_,"invalid input"),t.getValue(o,"i32")-n!==e.length&&b(_,"incomplete input"),s.length=t.getValue(c,"i32"),a=s.to_Uint8Array(),g(_),a},e.from_hex=function(e){var r,a=[],_=new u((e=E(a,e,"input")).length/2),s=d(e),n=v(4);return a.push(s),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,s,e.length,0,0,n)&&b(a,"invalid input"),t.getValue(n,"i32")-s!==e.length&&b(a,"incomplete input"),r=_.to_Uint8Array(),g(a),r},e.from_string=s,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var r=0,t=0,a=e.length;t 0");var a,_=[],s=v(4),n=1,c=0,o=0|e.length,h=new u(o+r);_.push(s),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(s,h.address,e.length,r,h.length)&&b(_,"internal error"),h.length=t.getValue(s,"i32"),a=h.to_Uint8Array(),g(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((r|=0)<=0)throw new Error("block size must be > 0");var a=[],_=d(e),s=v(4);return a.push(_),a.push(s),0!==t._sodium_unpad(s,_,e.length,r)&&b(a,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(s,"i32")),g(a),e},e.ready=_,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=p,e.to_hex=c,e.to_string=n,e}var t="object"==typeof e.sodium&&"function"==typeof e.sodium.onload?e.sodium.onload:null;"function"==typeof define&&define.amd?define(["exports","libsodium"],r): true&&"string"!=typeof exports.nodeName?r(exports,__nccwpck_require__(3351)):e.sodium=r(e.commonJsStrict={},e.libsodium),t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this); - - -/***/ }), - -/***/ 3351: -/***/ (function(module, exports, __nccwpck_require__) { - -!function(A){function I(A){"use strict";var I;void 0===(I=A)&&(I={});var g=I;"object"!=typeof g.sodium&&("object"==typeof global?g=global:"object"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(i=C).onAbort=I,i.print=function(A){},i.printErr=function(A){},i.onRuntimeInitialized=function(){try{i._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},i.useBackupModule=function(){return new Promise((function(A,I){(i={}).onAbort=I,i.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){"getRandomValue"!==A&&delete C[A]})),Object.keys(i).forEach((function(A){C[A]=i[A]})),A()};var g,B,Q,i=void 0!==i?i:{},E=Object.assign({},i),o="object"==typeof window,a="function"==typeof importScripts,n="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,r="";if(n){var f=__nccwpck_require__(7147),t=__nccwpck_require__(1017);r=a?t.dirname(r)+"/":__dirname+"/",g=(A,I)=>{var g=T(A);return g?I?g:g.toString():(A=x(A)?new URL(A):t.normalize(A),f.readFileSync(A,I?void 0:"utf8"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},B=(A,I,g)=>{var C=T(A);C&&I(C),A=x(A)?new URL(A):t.normalize(A),f.readFile(A,(function(A,C){A?g(A):I(C.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2), true&&(module.exports=i),i.inspect=function(){return"[Emscripten Module object]"}}else(o||a)&&(a?r=self.location.href:"undefined"!=typeof document&&document.currentScript&&(r=document.currentScript.src),r=0!==r.indexOf("blob:")?r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=T(A);if(g)return function(A){for(var I=[],g=0;g255&&(C&=255),I.push(String.fromCharCode(C))}return I.join("")}(g);throw I}},a&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=T(A);if(g)return g;throw I}}),B=(A,I,g)=>{var C=new XMLHttpRequest;C.open("GET",A,!0),C.responseType="arraybuffer",C.onload=()=>{if(200==C.status||0==C.status&&C.response)I(C.response);else{var B=T(A);B?I(B.buffer):g()}},C.onerror=g,C.send(null)});i.print;var e,c=i.printErr||void 0;Object.assign(i,E),E=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(e=i.wasmBinary),i.noExitRuntime;var y,D={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,E=I,o=C.length,a=I+(3*o>>2)-("="==C[o-2])-("="==C[o-1]);i>4,E>2),E>>0>x>>>0?o+1|0:o)|0,o=(QA=(n=x)>>>0>(x=x+QA|0)>>>0?o+1|0:o)+yA|0,iA=cA=x+eA|0,cA=o=cA>>>0>>0?o+1|0:o,x=nA(x^(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24)^-79577749,QA^(a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)^528734635,32),FA=o=w,o=o+1013904242|0,QA=x,T=o=(x=x-23791573|0)>>>0<4271175723?o+1|0:o,rA=nA(x^aA,o^rA,40),o=(o=cA)+(cA=w)|0,aA=nA(QA^(D=aA=rA+iA|0),FA^(h=D>>>0>>0?o+1|0:o),48),o=T+(L=w)|0,k=o=(aA=x+(s=aA)|0)>>>0>>0?o+1|0:o,aA=o=nA(rA^(u=aA),cA^o,1),T=x=w,cA=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,FA=o=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,tA=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,x=(rA=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)+(QA=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24)|0,o=(MA=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)+(UA=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24)|0,o=(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24)+(x>>>0>>0?o+1|0:o)|0,o=FA+(iA=(n=x)>>>0>(x=x+tA|0)>>>0?o+1|0:o)|0,o=(tA=x+cA|0)>>>0>>0?o+1|0:o,n=nA(x^(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)^725511199,iA^(a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24)^-1694144372,32),e=nA(QA^(r=n-2067093701|0),UA^(m=(b=x=w)-((n>>>0<2067093701)+1150833018|0)|0),40),o=(R=w)+o|0,o=(Y=(F=x=e+tA|0)>>>0>>0?o+1|0:o)+T|0,o=(F>>>0>(x=F+aA|0)>>>0?o+1|0:o)+z|0,o=(QA=(f=x)>>>0>(x=x+EA|0)>>>0?o+1|0:o)+X|0,P=X=x+g|0,y=o=X>>>0>>0?o+1|0:o,p=aA,uA=T,T=x,iA=QA,aA=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,x=o=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,UA=o=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,Q=QA=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,z=o,o=(lA=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24)+(t=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24)|0,o=Q+((X=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)>>>0>(f=X+(QA=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)|0)>>>0?o+1|0:o)|0,o=(tA=(z=f+z|0)>>>0>>0?o+1|0:o)+x|0,sA=f=z+aA|0,f=o=f>>>0>>0?o+1|0:o,c=X,X=nA(z^(a[0|(o=A- -64|0)]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24)^-1377402159,tA^(a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24)^1359893119,32),tA=o=w,o=o+1779033703|0,z=X,U=o=(X=X-205731576|0)>>>0<4089235720?o+1|0:o,t=nA(c^(l=X),o^t,40),o=(K=w)+f|0,c=nA(z^(f=X=t+sA|0),tA^(H=t>>>0>f>>>0?o+1|0:o),48),o=nA(c^T,(Z=w)^iA,32),O=X=w,v=o,C=o=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,tA=sA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,G=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,X=(iA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24)+(z=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)|0,o=(SA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24)+(_=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)|0,o=(a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24)+(X>>>0>>0?o+1|0:o)|0,o=C+(T=(M=X)>>>0>(X=G+X|0)>>>0?o+1|0:o)|0,o=(G=X+tA|0)>>>0>>0?o+1|0:o,T=nA(X^(a[A+88|0]|a[A+89|0]<<8|a[A+90|0]<<16|a[A+91|0]<<24)^327033209,T^(a[A+92|0]|a[A+93|0]<<8|a[A+94|0]<<16|a[A+95|0]<<24)^1541459225,32),z=nA(z^(tA=T+1595750129|0),(M=_)^(_=(J=X=w)-((T>>>0<2699217167)+1521486533|0)|0),40),o=(IA=w)+o|0,X=nA((G=X=z+G|0)^T,J^(M=G>>>0>>0?o+1|0:o),48),o=_+($=w)|0,N=o=(X=tA+(_=X)|0)>>>0>>0?o+1|0:o,o=O+o|0,V=p^(T=v+(J=X)|0),p=o=T>>>0>>0?o+1|0:o,tA=nA(V,o^uA,40),o=(uA=w)+y|0,X=nA(P=v^(y=X=tA+P|0),O^(v=y>>>0>>0?o+1|0:o),48),o=p+(CA=w)|0,O=o=(p=T+(P=X)|0)>>>0>>0?o+1|0:o,X=(d=nA(p^tA,uA^o,1))+(T=a[I+72|0]|a[I+73|0]<<8|a[I+74|0]<<16|a[I+75|0]<<24)|0,o=(wA=w)+(uA=a[I+76|0]|a[I+77|0]<<8|a[I+78|0]<<16|a[I+79|0]<<24)|0,kA=X,j=X>>>0>>0?o+1|0:o,W=DA,X=a[I+96|0]|a[I+97|0]<<8|a[I+98|0]<<16|a[I+99|0]<<24,tA=o=a[I+100|0]|a[I+101|0]<<8|a[I+102|0]<<16|a[I+103|0]<<24,z=(o=D)+(D=nA(J^z,N^IA,1))|0,o=(J=w)+h|0,o=(D>>>0>z>>>0?o+1|0:o)+tA|0,o=(h=(h=z)>>>0>(z=X+z|0)>>>0?o+1|0:o)+W|0,V=N=z+gA|0,N=o=N>>>0>>0?o+1|0:o,F=nA(n^F,Y^b,48),Y=o=nA(F^z,(b=w)^h,32),o=U+Z|0,o=(IA=z=w)+(l=(z=c+l|0)>>>0>>0?o+1|0:o)|0,U=o=(h=z)>>>0>(c=h+Y|0)>>>0?o+1|0:o,D=nA(c^D,J^o,40),o=(Z=w)+N|0,o=(J=D>>>0>(N=z=D+V|0)>>>0?o+1|0:o)+j|0,o=(n=N>>>0>(z=N+kA|0)>>>0?o+1|0:o)+pA|0,kA=j=z+oA|0,j=o=j>>>0>>0?o+1|0:o,V=z,W=n,z=a[I+116|0]|a[I+117|0]<<8|a[I+118|0]<<16|a[I+119|0]<<24,I=a[I+112|0]|a[I+113|0]<<8|a[I+114|0]<<16|a[I+115|0]<<24,t=nA(t^h,l^K,1),o=(K=w)+M|0,o=((n=t+G|0)>>>0>>0?o+1|0:o)+z|0,o=(h=(l=n)>>>0>(n=I+n|0)>>>0?o+1|0:o)+pA|0,GA=l=n+oA|0,l=o=l>>>0>>0?o+1|0:o,o=nA(n^s,h^L,32),AA=n=w,s=o,h=n,o=b+m|0,F=n=r+F|0,G=o=n>>>0>>0?o+1|0:o,o=o+h|0,M=n=n+s|0,L=o=F>>>0>n>>>0?o+1|0:o,h=nA(n^t,K^o,40),o=(K=w)+l|0,s=nA((n=h+GA|0)^s,AA^(r=n>>>0>>0?o+1|0:o),48),o=nA(s^V,(GA=w)^W,32),AA=t=w,l=o,V=t,e=nA(e^F,G^R,1),o=H+(F=w)|0,o=((t=f)>>>0>(f=f+e|0)>>>0?o+1|0:o)+BA|0,o=(f=(t=f+q|0)>>>0>>0?o+1|0:o)+uA|0,W=H=t+T|0,H=o=H>>>0>>0?o+1|0:o,G=e,t=nA(t^_,f^$,32),o=(_=w)+k|0,u=nA(G^(f=e=t+u|0),(k=t>>>0>f>>>0?o+1|0:o)^F,40),o=($=w)+H|0,F=e=u+W|0,e=nA(t^e,_^(H=e>>>0>>0?o+1|0:o),48),o=k+(i=w)|0,k=e,_=o=(e=f+e|0)>>>0>>0?o+1|0:o,o=o+V|0,o=(G=e)>>>0>(e=e+l|0)>>>0?o+1|0:o,V=e,e^=d,d=o,t=nA(e,wA^o,40),o=(wA=w)+j|0,j=e=t+kA|0,o=B+(W=t>>>0>e>>>0?o+1|0:o)|0,kA=e=e+g|0,b=o=e>>>0>>0?o+1|0:o,e=n,m=gA,R=DA,n=nA(Y^N,J^IA,48),o=U+(IA=w)|0,Y=n,U=o=(f=c+n|0)>>>0>>0?o+1|0:o,n=nA(f^D,Z^o,1),o=(c=w)+R|0,o=((D=n+m|0)>>>0>>0?o+1|0:o)+r|0,o=SA+(e=(r=e+D|0)>>>0>>0?o+1|0:o)|0,N=D=r+iA|0,D=o=D>>>0>>0?o+1|0:o,r=nA(r^k,e^i,32),o=O+(J=w)|0,k=r,p=o=(r=p+r|0)>>>0

>>0?o+1|0:o,e=nA(n^r,o^c,40),o=(o=D)+(D=w)|0,c=n=e+N|0,n=nA(n^k,J^(N=n>>>0>>0?o+1|0:o),48),o=p+(Z=w)|0,J=n,O=o=(p=r+n|0)>>>0>>0?o+1|0:o,n=nA(e^p,D^o,1),o=(D=w)+b|0,o=C+(e=(r=n+kA|0)>>>0>>0?o+1|0:o)|0,kA=k=r+sA|0,k=o=k>>>0>>0?o+1|0:o,b=n,m=D,o=L+GA|0,o=(n=s+M|0)>>>0>>0?o+1|0:o,s=n,M=o,o=nA(n^h,K^o,1),h=D=w,n=o,o=H+z|0,o=((F=I+F|0)>>>0>>0?o+1|0:o)+D|0,o=hA+(F=(D=n+F|0)>>>0>>0?o+1|0:o)|0,L=H=D+EA|0,H=o=H>>>0>>0?o+1|0:o,D=nA(D^P,F^CA,32),o=U+(P=w)|0,F=D,U=o=(U=f)>>>0>(f=f+D|0)>>>0?o+1|0:o,D=nA(n^f,o^h,40),o=(K=w)+H|0,h=n=D+L|0,n=nA(H=n^F,P^(F=n>>>0>>0?o+1|0:o),48),o=U+(CA=w)|0,U=n,H=n=f+n|0,P=o=n>>>0>>0?o+1|0:o,L=r,R=e,n=nA(u^G,_^$,1),o=(f=w)+S|0,o=v+((r=n+fA|0)>>>0>>0?o+1|0:o)|0,o=BA+(e=(r=r+y|0)>>>0>>0?o+1|0:o)|0,v=y=r+q|0,y=o=y>>>0>>0?o+1|0:o,u=n,n=(r=nA(r^Y,e^IA,32))+s|0,o=(s=w)+M|0,e=n,f=nA(n^u,(Y=n>>>0>>0?o+1|0:o)^f,40),o=(IA=w)+y|0,y=n=f+v|0,G=nA(n^r,s^(v=n>>>0>>0?o+1|0:o),48),r=nA(G^L,(o=R)^(R=w),32),o=(L=w)+P|0,s=n=r+H|0,u=nA(n^b,(M=n>>>0>>0?o+1|0:o)^m,40),o=(b=w)+k|0,k=n=u+kA|0,n=nA(n^r,L^(_=n>>>0>>0?o+1|0:o),48),o=M+($=w)|0,M=n,L=o=(r=s)>>>0>(s=s+n|0)>>>0?o+1|0:o,n=nA(s^u,b^o,1),o=pA+(kA=w)|0,b=n,GA=n=oA+n|0,u=o=n>>>0>>0?o+1|0:o,r=eA,n=nA(D^H,K^P,1),o=N+(D=w)|0,o=((H=c)>>>0>(c=n+c|0)>>>0?o+1|0:o)+yA|0,o=(H=(r=r+c|0)>>>0>>0?o+1|0:o)+FA|0,m=c=r+cA|0,N=o=c>>>0>>0?o+1|0:o,P=n,c=nA(l^j,W^AA,48),o=nA(c^r,(K=w)^H,32),AA=n=w,l=o,r=n,o=Y+R|0,o=(n=e+G|0)>>>0>>0?o+1|0:o,e=n,Y=o,o=o+r|0,H=n=n+l|0,G=o=e>>>0>n>>>0?o+1|0:o,r=nA(n^P,o^D,40),o=(o=N)+(N=w)|0,P=n=r+m|0,j=o=n>>>0>>0?o+1|0:o,o=o+u|0,W=o=(D=n+GA|0)>>>0>>0?o+1|0:o,u=o,n=nA(f^e,Y^IA,1),o=x+(f=w)|0,o=F+((e=n+aA|0)>>>0>>0?o+1|0:o)|0,o=tA+(h=(e=e+h|0)>>>0>>0?o+1|0:o)|0,m=F=e+X|0,F=o=F>>>0>>0?o+1|0:o,Y=n,o=nA(e^J,h^Z,32),R=n=w,e=o,h=n,o=K+d|0,J=n=c+V|0,d=o=n>>>0>>0?o+1|0:o,o=o+h|0,o=(c=n+e|0)>>>0>>0?o+1|0:o,n=c^Y,Y=o,h=nA(n,o^f,40),o=(Z=w)+F|0,f=n=h+m|0,V=nA(n^e,R^(F=n>>>0>>0?o+1|0:o),48),o=nA(V^D,(IA=w)^u,32),GA=n=w,m=o,u=n,n=nA(t^J,d^wA,1),o=v+(t=w)|0,o=lA+((e=n+y|0)>>>0>>0?o+1|0:o)|0,o=(y=(e=e+QA|0)>>>0>>0?o+1|0:o)+MA|0,J=v=e+rA|0,v=o=v>>>0>>0?o+1|0:o,e=nA(e^U,y^CA,32),o=O+(d=w)|0,U=e,y=t,t=o=(e=p+e|0)>>>0

>>0?o+1|0:o,y=nA(n^e,y^o,40),o=(CA=w)+v|0,p=n=y+J|0,n=nA(J=n^U,d^(U=n>>>0>>0?o+1|0:o),48),o=t+(K=w)|0,t=n,v=n=e+n|0,J=o=n>>>0>>0?o+1|0:o,o=o+u|0,O=o=(u=n+m|0)>>>0>>0?o+1|0:o,e=nA(u^b,kA^o,40),o=W+(d=w)|0,o=((n=e+D|0)>>>0>>0?o+1|0:o)+DA|0,D=n,W=n=n+gA|0,b=o=D>>>0>n>>>0?o+1|0:o,R=BA,D=nA(l^P,j^AA,48),o=(wA=w)+G|0,l=n=D+H|0,o=nA(n^r,(H=n>>>0>>0?o+1|0:o)^N,1),N=r=w,n=o,o=F+B|0,o=((f=f+g|0)>>>0>>0?o+1|0:o)+r|0,o=(f=(r=n+f|0)>>>0>>0?o+1|0:o)+R|0,G=F=r+q|0,F=o=F>>>0>>0?o+1|0:o,r=nA(r^t,f^K,32),o=L+(P=w)|0,s=o=(t=r+s|0)>>>0>>0?o+1|0:o,f=nA(n^t,o^N,40),o=(j=w)+F|0,F=n=f+G|0,r=nA(n^r,P^(N=n>>>0>>0?o+1|0:o),48),o=s+(G=w)|0,P=o=(s=r+t|0)>>>0>>0?o+1|0:o,n=nA(f^s,j^o,1),o=(j=w)+b|0,o=uA+((t=n+W|0)>>>0>>0?o+1|0:o)|0,o=(f=(t=t+T|0)>>>0>>0?o+1|0:o)+S|0,kA=S=t+fA|0,S=o=S>>>0>>0?o+1|0:o,L=n,R=t,K=f,t=eA,n=nA(y^v,J^CA,1),o=_+(y=w)|0,o=((f=k)>>>0>(k=n+k|0)>>>0?o+1|0:o)+yA|0,o=MA+(f=(t=t+k|0)>>>0>>0?o+1|0:o)|0,_=k=t+rA|0,v=o=k>>>0>>0?o+1|0:o,k=n,f=o=nA(t^D,f^wA,32),o=Y+IA|0,o=(J=n=w)+(c=(n=c+V|0)>>>0>>0?o+1|0:o)|0,Y=o=(D=n+f|0)>>>0>>0?o+1|0:o,k=nA(D^k,o^y,40),o=(IA=w)+v|0,v=nA(_=(t=k+_|0)^f,J^(f=t>>>0>>0?o+1|0:o),48),o=nA(v^R,(CA=w)^K,32),wA=y=w,_=o,J=y,n=nA(n^h,c^Z,1),o=tA+(y=w)|0,o=U+((c=n+X|0)>>>0>>0?o+1|0:o)|0,o=lA+(p=(c=c+p|0)>>>0

>>0?o+1|0:o)|0,R=h=c+QA|0,h=o=h>>>0>>0?o+1|0:o,U=n,V=y,c=nA(c^M,p^$,32),o=(M=w)+H|0,y=n=c+l|0,p=nA(n^U,(l=n>>>0>>0?o+1|0:o)^V,40),o=(Z=w)+h|0,U=n=p+R|0,n=nA(n^c,M^(H=n>>>0

>>0?o+1|0:o),48),o=l+(R=w)|0,h=n,l=n=y+n|0,M=o=n>>>0>>0?o+1|0:o,o=o+J|0,J=n=n+_|0,c=j,j=o=l>>>0>n>>>0?o+1|0:o,c=nA(n^L,c^o,40),o=(o=S)+(S=w)|0,V=n=c+kA|0,L=o=n>>>0>>0?o+1|0:o,y=f,n=nA(m^W,b^GA,48),o=O+($=w)|0,O=n,f=(n=u+n|0)^e,e=o=n>>>0>>0?o+1|0:o,f=nA(f,o^d,1),o=(d=w)+y|0,o=C+((t=f+t|0)>>>0>>0?o+1|0:o)|0,o=(y=(t=t+sA|0)>>>0>>0?o+1|0:o)+x|0,W=u=t+aA|0,u=o=u>>>0>>0?o+1|0:o,t=nA(t^h,y^R,32),o=P+(b=w)|0,P=t,s=o=(y=s+t|0)>>>0>>0?o+1|0:o,f=nA(f^y,d^o,40),o=(o=u)+(u=w)|0,h=t=f+W|0,t=nA(m=t^P,b^(P=t>>>0>>0?o+1|0:o),48),o=s+(kA=w)|0,d=t,W=o=(s=y+t|0)>>>0>>0?o+1|0:o,t=nA(f^s,u^o,1),o=(u=w)+L|0,o=B+((f=t+V|0)>>>0>>0?o+1|0:o)|0,o=z+(y=(f=f+g|0)>>>0>>0?o+1|0:o)|0,GA=b=I+f|0,b=o=b>>>0>>0?o+1|0:o,m=t,R=u,u=f,K=y,t=nA(p^l,M^Z,1),o=(y=w)+N|0,o=hA+((f=t+F|0)>>>0>>0?o+1|0:o)|0,o=(p=(f=f+EA|0)>>>0>>0?o+1|0:o)+z|0,N=F=I+f|0,F=o=F>>>0>>0?o+1|0:o,l=t,f=o=nA(f^O,p^$,32),p=t=w,o=Y+CA|0,Y=o=(t=D+v|0)>>>0>>0?o+1|0:o,o=o+p|0,o=(D=t)>>>0>(t=t+f|0)>>>0?o+1|0:o,v=t,t^=l,l=o,y=nA(t,o^y,40),o=(Z=w)+F|0,p=nA(F=(t=y+N|0)^f,p^(f=t>>>0>>0?o+1|0:o),48),o=nA(p^u,(o=K)^(K=w),32),$=u=w,F=o,N=e,e=r,o=nA(D^k,Y^IA,1),M=r=w,D=o,o=H+FA|0,o=((k=U+cA|0)>>>0>>0?o+1|0:o)+r|0,k=o=(r=D+k|0)>>>0>>0?o+1|0:o,e=nA(r^e,o^G,32),o=(o=N)+(N=w)|0,D=nA((n=e+n|0)^D,M^(Y=n>>>0>>0?o+1|0:o),40),o=k+(IA=w)|0,U=D,o=SA+((H=r)>>>0>(r=r+D|0)>>>0?o+1|0:o)|0,H=o=(D=r+iA|0)>>>0>>0?o+1|0:o,r=nA(e^D,N^o,48),o=Y+(CA=w)|0,G=n,e=r,Y=n=n+r|0,N=o=G>>>0>n>>>0?o+1|0:o,o=o+u|0,G=o=(u=n+F|0)>>>0>>0?o+1|0:o,n=(k=nA(u^m,o^R,40))+GA|0,o=(GA=w)+b|0,M=n,O=n>>>0>>0?o+1|0:o,n=nA(_^V,L^wA,48),o=(_=w)+j|0,J=r=n+J|0,m=S,S=o=r>>>0>>0?o+1|0:o,o=nA(r^c,m^o,1),V=r=w,c=o,o=f+C|0,o=((t=t+sA|0)>>>0>>0?o+1|0:o)+r|0,o=uA+(t=(r=t+c|0)>>>0>>0?o+1|0:o)|0,L=f=r+T|0,f=o=f>>>0>>0?o+1|0:o,r=nA(r^e,t^CA,32),o=W+(b=w)|0,j=r,r=(e=s+r|0)^c,c=o=e>>>0>>0?o+1|0:o,t=nA(r,V^o,40),o=(o=f)+(f=w)|0,V=r=t+L|0,r=nA(s=r^j,b^(j=r>>>0>>0?o+1|0:o),48),o=c+(CA=w)|0,W=r,e=o=(r=e+r|0)>>>0>>0?o+1|0:o,t=nA(r^t,f^o,1),o=(s=w)+O|0,o=pA+((f=t+M|0)>>>0>>0?o+1|0:o)|0,o=(c=(f=f+oA|0)>>>0>>0?o+1|0:o)+BA|0,AA=L=f+q|0,L=o=L>>>0>>0?o+1|0:o,b=t,m=f,R=c,t=nA(U^Y,N^IA,1),o=(N=w)+DA|0,o=P+(t>>>0>(f=t+gA|0)>>>0?o+1|0:o)|0,c=o=(f=f+h|0)>>>0>>0?o+1|0:o,o=nA(n^f,o^_,32),_=n=w,h=o,o=l+K|0,o=(n=p+v|0)>>>0

>>0?o+1|0:o,p=n,Y=o,o=_+o|0,l=n=n+h|0,U=o=p>>>0>n>>>0?o+1|0:o,n=nA(n^t,N^o,40),o=c+(K=w)|0,v=n,o=tA+((n=f+n|0)>>>0>>0?o+1|0:o)|0,o=(n=n+X|0)>>>0>>0?o+1|0:o,N=n,n^=h,h=o,c=nA(n,_^o,48),o=nA(c^m,(o=R)^(R=w),32),IA=n=w,_=o,P=n,n=nA(y^p,Y^Z,1),o=FA+(f=w)|0,o=H+((t=n+cA|0)>>>0>>0?o+1|0:o)|0,o=(y=(t=t+D|0)>>>0>>0?o+1|0:o)+x|0,H=p=t+aA|0,p=o=p>>>0>>0?o+1|0:o,D=n,Y=f,n=(t=nA(t^d,y^kA,32))+J|0,o=(J=w)+S|0,f=n,y=nA(y=n^D,(D=n>>>0>>0?o+1|0:o)^Y,40),o=(Z=w)+p|0,p=n=y+H|0,t=nA(n^t,J^(S=n>>>0>>0?o+1|0:o),48),o=D+(Y=w)|0,H=n=t+f|0,J=o=n>>>0>>0?o+1|0:o,o=o+P|0,P=o=(D=n+_|0)>>>0>>0?o+1|0:o,f=nA(D^b,o^s,40),o=(d=w)+L|0,L=n=f+AA|0,b=o=n>>>0>>0?o+1|0:o,n=r,s=e,e=t,r=nA(F^M,O^$,48),o=G+(AA=w)|0,F=r,u=o=(t=u+r|0)>>>0>>0?o+1|0:o,o=nA(t^k,GA^o,1),G=r=w,k=o,o=h+HA|0,o=((h=N+fA|0)>>>0>>0?o+1|0:o)+r|0,h=o=(r=h+k|0)>>>0>>0?o+1|0:o,e=nA(r^e,o^Y,32),o=(N=w)+s|0,k=nA((n=e+n|0)^k,G^(s=n>>>0>>0?o+1|0:o),40),o=h+(M=w)|0,o=lA+((h=r)>>>0>(r=r+k|0)>>>0?o+1|0:o)|0,Y=o=(h=r+QA|0)>>>0>>0?o+1|0:o,r=nA(e^h,N^o,48),o=s+($=w)|0,N=r,G=o=(s=n+r|0)>>>0>>0?o+1|0:o,n=nA(s^k,M^o,1),o=(k=w)+b|0,o=hA+((r=n+L|0)>>>0>>0?o+1|0:o)|0,o=pA+(e=(r=r+EA|0)>>>0>>0?o+1|0:o)|0,wA=M=r+oA|0,M=o=M>>>0>>0?o+1|0:o,O=n,m=r,n=nA(y^H,J^Z,1),o=(y=w)+j|0,o=MA+((r=n+V|0)>>>0>>0?o+1|0:o)|0,o=SA+(H=(r=r+rA|0)>>>0>>0?o+1|0:o)|0,V=J=r+iA|0,J=o=J>>>0>>0?o+1|0:o,j=n,o=nA(r^F,H^AA,32),AA=n=w,r=o,o=U+R|0,l=n=c+l|0,F=o=n>>>0>>0?o+1|0:o,o=AA+o|0,U=o=(c=n+r|0)>>>0>>0?o+1|0:o,y=nA(c^j,o^y,40),o=(R=w)+J|0,H=n=y+V|0,j=nA(n^r,AA^(J=n>>>0>>0?o+1|0:o),48),o=nA(j^m,(AA=w)^e,32),Z=n=w,V=o,e=n,r=eA,n=nA(l^v,F^K,1),o=S+(F=w)|0,o=((l=p)>>>0>(p=n+p|0)>>>0?o+1|0:o)+yA|0,o=hA+(p=(r=r+p|0)>>>0

>>0?o+1|0:o)|0,l=S=r+EA|0,S=o=S>>>0>>0?o+1|0:o,r=nA(r^W,p^CA,32),o=u+(v=w)|0,u=r,o=(r=t+r|0)>>>0>>0?o+1|0:o,t=F,F=o,t=nA(n^r,t^o,40),o=(K=w)+S|0,p=n=t+l|0,n=nA(n^u,v^(S=n>>>0>>0?o+1|0:o),48),o=F+(m=w)|0,F=n,l=n=r+n|0,v=o=n>>>0>>0?o+1|0:o,o=o+e|0,o=(u=n+V|0)>>>0>>0?o+1|0:o,n=u^O,O=o,k=nA(n,o^k,40),o=(CA=w)+M|0,M=n=k+wA|0,W=n>>>0>>0?o+1|0:o,n=nA(_^L,b^IA,48),o=P+(IA=w)|0,_=n,o=(n=D+n|0)>>>0>>0?o+1|0:o,D=n,P=o,o=nA(n^f,o^d,1),d=n=w,e=o,o=J+uA|0,o=((r=H+T|0)>>>0>>0?o+1|0:o)+n|0,o=lA+(r=(n=r+e|0)>>>0>>0?o+1|0:o)|0,H=f=n+QA|0,f=o=f>>>0>>0?o+1|0:o,n=nA(n^F,r^m,32),o=G+(J=w)|0,F=n,s=o=(r=s+n|0)>>>0>>0?o+1|0:o,e=nA(r^e,d^o,40),o=(d=w)+f|0,H=n=e+H|0,n=nA(f=n^F,J^(F=n>>>0>>0?o+1|0:o),48),o=s+(wA=w)|0,s=n,G=o=(f=r+n|0)>>>0>>0?o+1|0:o,n=nA(f^e,d^o,1),o=(J=w)+W|0,o=FA+((r=n+M|0)>>>0>>0?o+1|0:o)|0,o=(e=(r=r+cA|0)>>>0>>0?o+1|0:o)+DA|0,kA=d=r+gA|0,d=o=d>>>0>>0?o+1|0:o,L=n,b=r,m=e,n=nA(t^l,K^v,1),o=MA+(e=w)|0,o=Y+((r=n+rA|0)>>>0>>0?o+1|0:o)|0,o=HA+(t=(r=r+h|0)>>>0>>0?o+1|0:o)|0,v=h=r+fA|0,h=o=h>>>0>>0?o+1|0:o,Y=n,l=e,o=nA(r^_,t^IA,32),_=n=w,t=o,r=n,o=U+AA|0,o=(n=c+j|0)>>>0>>0?o+1|0:o,c=n,U=o,o=o+r|0,o=(e=n+t|0)>>>0>>0?o+1|0:o,n=e^Y,Y=o,n=nA(n,o^l,40),o=(o=h)+(h=w)|0,l=r=n+v|0,v=o=r>>>0>>0?o+1|0:o,_=nA(r^t,_^o,48),o=nA(_^b,(o=m)^(m=w),32),K=r=w,j=o,r=nA(c^y,U^R,1),o=(c=w)+yA|0,o=S+((t=r+eA|0)>>>0>>0?o+1|0:o)|0,o=C+(y=(t=t+p|0)>>>0

>>0?o+1|0:o)|0,R=p=t+sA|0,p=o=p>>>0>>0?o+1|0:o,S=r,U=c,t=nA(t^N,y^$,32),o=(N=w)+P|0,c=r=t+D|0,r=(y=nA(r^S,(D=r>>>0>>0?o+1|0:o)^U,40))+R|0,o=(R=w)+p|0,S=r,r=nA(r^t,N^(U=r>>>0>>0?o+1|0:o),48),o=D+(AA=w)|0,N=r,P=r=c+r|0,b=o=r>>>0>>0?o+1|0:o,o=K+o|0,o=(t=r+j|0)>>>0>>0?o+1|0:o,r=J,J=o,c=nA(t^L,r^o,40),o=(IA=w)+d|0,p=r=c+kA|0,o=nA(r^j,K^(d=r>>>0>>0?o+1|0:o),48),K=r=w,j=o,r=n,o=Y+m|0,Y=n=e+_|0,_=o=n>>>0>>0?o+1|0:o,o=nA(n^r,o^h,1),e=r=w,n=o,o=U+B|0,o=((D=S+g|0)>>>0>>0?o+1|0:o)+r|0,o=tA+(D=(r=n+D|0)>>>0>>0?o+1|0:o)|0,m=h=r+X|0,h=o=h>>>0>>0?o+1|0:o,S=n,U=e,n=nA(M^V,W^Z,48),o=O+(Z=w)|0,M=n,o=(n=u+n|0)>>>0>>0?o+1|0:o,u=n,r=nA(r^s,D^wA,32),O=o,o=o+(V=w)|0,e=n=r+n|0,D=nA(n^S,(s=n>>>0>>0?o+1|0:o)^U,40),o=(W=w)+h|0,h=n=D+m|0,n=nA(n^r,V^(S=n>>>0>>0?o+1|0:o),48),o=s+($=w)|0,U=n,V=o=(s=e+n|0)>>>0>>0?o+1|0:o,n=nA(D^s,W^o,1),o=lA+(m=w)|0,W=n,wA=n=QA+n|0,e=o=n>>>0>>0?o+1|0:o,n=nA(k^u,O^CA,1),o=(D=w)+v|0,o=SA+((r=n+l|0)>>>0>>0?o+1|0:o)|0,o=BA+(u=(r=r+iA|0)>>>0>>0?o+1|0:o)|0,O=k=r+q|0,k=o=k>>>0>>0?o+1|0:o,l=D,r=nA(r^N,u^AA,32),o=G+(AA=w)|0,v=r,o=(D=f+r|0)>>>0>>0?o+1|0:o,f=l,l=o,u=nA(n^D,f^o,40),o=(CA=w)+k|0,N=n=u+O|0,o=(G=n>>>0>>0?o+1|0:o)+e|0,k=o=(e=n+wA|0)>>>0>>0?o+1|0:o,O=o=nA(e^j,o^K,32),L=n=w,n=nA(y^P,b^R,1),o=(f=w)+F|0,o=z+((r=n+H|0)>>>0>>0?o+1|0:o)|0,o=(y=(r=I+r|0)>>>0>>0?o+1|0:o)+x|0,b=F=r+aA|0,F=o=F>>>0>>0?o+1|0:o,H=n,P=f,r=nA(r^M,y^Z,32),o=(M=w)+_|0,f=n=r+Y|0,n=(y=nA(n^H,(Y=n>>>0>>0?o+1|0:o)^P,40))+b|0,o=(b=w)+F|0,F=n,n=nA(n^r,M^(H=n>>>0>>0?o+1|0:o),48),o=Y+(Z=w)|0,Y=n,M=o=(n=f+n|0)>>>0>>0?o+1|0:o,o=o+L|0,_=o=(f=n)>>>0>(n=n+O|0)>>>0?o+1|0:o,r=nA(n^W,m^o,40),o=k+(m=w)|0,P=r,o=B+((r=e+r|0)>>>0>>0?o+1|0:o)|0,W=r=r+g|0,e=r^O,O=o=r>>>0>>0?o+1|0:o,r=nA(e,L^o,48),o=_+(L=w)|0,_=o=(k=n+r|0)>>>0>>0?o+1|0:o,n=o=nA(k^P,m^o,1),P=e=w,e=nA(f^y,M^b,1),o=S+(y=w)|0,o=SA+((f=e+h|0)>>>0>>0?o+1|0:o)|0,o=hA+(h=(f=f+iA|0)>>>0>>0?o+1|0:o)|0,m=S=f+EA|0,S=o=S>>>0>>0?o+1|0:o,M=e,b=y,o=J+K|0,o=(e=t+j|0)>>>0>>0?o+1|0:o,J=e,v=nA(N^v,G^AA,48),y=nA(f^v,h^(AA=w),32),N=o,o=o+(wA=w)|0,h=e=y+e|0,e=nA(e^M,(G=e>>>0>>0?o+1|0:o)^b,40),o=(M=w)+S|0,b=o=(t=e+m|0)>>>0>>0?o+1|0:o,o=o+P|0,o=C+((j=t)>>>0>(t=n+t|0)>>>0?o+1|0:o)|0,o=(f=(t=t+sA|0)>>>0>>0?o+1|0:o)+yA|0,kA=S=t+eA|0,m=o=S>>>0>>0?o+1|0:o,R=n,K=t,o=nA(c^J,N^IA,1),c=t=w,n=o,o=H+MA|0,o=((S=F+rA|0)>>>0>>0?o+1|0:o)+t|0,o=tA+(S=(t=n+S|0)>>>0>>0?o+1|0:o)|0,N=F=t+X|0,F=o=F>>>0>>0?o+1|0:o,H=n,o=nA(t^U,S^$,32),J=n=w,t=o,S=n,o=l+AA|0,l=n=D+v|0,U=o=n>>>0>>0?o+1|0:o,o=o+S|0,o=(D=n+t|0)>>>0>>0?o+1|0:o;n=D^H,H=o,S=nA(n,o^c,40),o=(AA=w)+F|0,v=nA(F=(n=S+N|0)^t,J^(t=n>>>0>>0?o+1|0:o),48),o=nA(o=v^K,(K=w)^f,32),IA=f=w,N=o,F=f,f=nA(u^l,U^CA,1),o=BA+(u=w)|0,o=d+((c=f+q|0)>>>0>>0?o+1|0:o)|0,o=FA+(p=(c=c+p|0)>>>0

>>0?o+1|0:o)|0,U=l=c+cA|0,l=o=l>>>0>>0?o+1|0:o,c=nA(c^Y,p^Z,32),o=V+(J=w)|0,Y=c,s=o=(c=s+c|0)>>>0>>0?o+1|0:o,p=nA(f^c,o^u,40),o=(Z=w)+l|0,u=f=p+U|0,f=nA(l=f^Y,J^(Y=f>>>0

>>0?o+1|0:o),48),o=s+($=w)|0,l=f,U=f=c+f|0,J=o=f>>>0>>0?o+1|0:o,o=o+F|0,o=(c=f+N|0)>>>0>>0?o+1|0:o,f=P,P=o,s=nA(c^R,f^o,40),o=(d=w)+m|0,F=f=s+kA|0,f=nA(m=f^N,IA^(N=f>>>0>>0?o+1|0:o),48),o=P+(IA=w)|0,P=f,c=o=(f=c+f|0)>>>0>>0?o+1|0:o,d=o=nA(f^s,d^o,1),CA=o,V=s=w,s=t,t=e,e=nA(y^j,b^wA,48),o=G+(wA=w)|0,G=e,o=(e=h+e|0)>>>0>>0?o+1|0:o,h=n,n=t^e,t=o,n=nA(n,o^M,1),o=(M=w)+s|0,o=HA+(n>>>0>(y=h+n|0)>>>0?o+1|0:o)|0,o=DA+(h=(y=y+fA|0)>>>0>>0?o+1|0:o)|0,j=s=y+gA|0,s=o=s>>>0>>0?o+1|0:o,y=nA(y^l,h^$,32),o=_+(b=w)|0,l=o=(h=y+k|0)>>>0>>0?o+1|0:o,k=nA(n^h,M^o,40),o=($=w)+s|0,M=n=k+j|0,y=nA(n^y,b^(_=n>>>0>>0?o+1|0:o),48),o=l+(j=w)|0,b=n=y+h|0,l=n,m=o=n>>>0>>0?o+1|0:o,h=e,s=t,o=H+K|0,o=(n=D+v|0)>>>0>>0?o+1|0:o,D=n,n^=S,S=o,o=nA(n,AA^o,1),R=n=w,H=o,t=o,o=Y+x|0,o=((e=u+aA|0)>>>0>>0?o+1|0:o)+n|0,u=o=(n=e)>>>0>(e=t+e|0)>>>0?o+1|0:o,t=nA(r^e,o^L,32),o=(o=s)+(s=w)|0,v=n=t+h|0,r=nA(r=n^H,R^(H=n>>>0>>0?o+1|0:o),40),o=u+(L=w)|0,o=uA+((n=r+e|0)>>>0>>0?o+1|0:o)|0,R=o=(h=n+T|0)>>>0>>0?o+1|0:o,s=nA(t^h,s^o,48),kA=o=w,n=nA(p^U,J^Z,1),o=(t=w)+O|0,o=pA+((e=n+W|0)>>>0>>0?o+1|0:o)|0,o=z+(p=(e=e+oA|0)>>>0>>0?o+1|0:o)|0,O=u=I+e|0,U=o=u>>>0>>0?o+1|0:o,J=n,u=nA(e^G,p^wA,32),o=(Z=w)+S|0,S=n=u+D|0,e=nA(n^J,(G=n>>>0>>0?o+1|0:o)^t,40),o=(o=U)+(U=w)|0,J=n=e+O|0,O=o=n>>>0>>0?o+1|0:o,t=o,o=z+V|0,o=((p=I+d|0)>>>0>>0?o+1|0:o)+t|0,Y=o=(t=n+p|0)>>>0

>>0?o+1|0:o,n=nA(t^s,kA^o,32),o=(d=w)+m|0,D=nA((p=n+l|0)^CA,(o=p>>>0>>0?o+1|0:o)^V,40),V=o,o=DA+(l=w)|0,o=Y+((W=D+gA|0)>>>0>>0?o+1|0:o)|0,o=(Y=t+W|0)>>>0>>0?o+1|0:o,t=d,d=o,t=nA(n^Y,t^o,48),o=(o=V)+(V=w)|0,n=D^(p=t+p|0),D=o=p>>>0>>0?o+1|0:o,W=o=nA(n,o^l,1),CA=o,K=n=w,l=f,AA=c,f=e,e=nA(u^J,O^Z,48),o=G+(J=w)|0,u=n=e+S|0,S=o=n>>>0>>0?o+1|0:o,f=nA(n^f,o^U,1),o=(O=w)+HA|0,o=R+((n=f+fA|0)>>>0>>0?o+1|0:o)|0,h=o=(c=n+h|0)>>>0>>0?o+1|0:o,n=nA(c^y,o^j,32),o=(U=w)+AA|0,l=y=n+l|0,G=o=y>>>0>>0?o+1|0:o,f=nA(f^y,o^O,40),o=hA+(wA=w)|0,O=f,o=h+((f=EA+f|0)>>>0>>0?o+1|0:o)|0,c=o=(f=f+c|0)>>>0>>0?o+1|0:o,y=nA(n^f,o^U,48),o=(o=G)+(G=w)|0,j=n=y+l|0,U=n,R=o=n>>>0>>0?o+1|0:o,o=H+kA|0,l=(n=s+v|0)^r,r=o=n>>>0>>0?o+1|0:o,o=nA(l,o^L,1),L=h=w,l=o,o=_+tA|0,o=((s=M+X|0)>>>0>>0?o+1|0:o)+h|0,H=o=(H=s)>>>0>(s=s+l|0)>>>0?o+1|0:o,v=h=nA(s^P,IA^o,32),M=o=w,o=o+S|0,_=h=h+u|0,P=o=v>>>0>h>>>0?o+1|0:o,h=nA(h^l,L^o,40),o=yA+(L=w)|0,o=H+((u=h+eA|0)>>>0>>0?o+1|0:o)|0,u=o=(l=s)>>>0>(s=s+u|0)>>>0?o+1|0:o,l=nA(s^v,o^M,48),IA=o=w,S=o,k=nA(k^b,m^$,1),H=o=w,v=e,o=o+x|0,o=N+((e=k+aA|0)>>>0>>0?o+1|0:o)|0,o=(e=e+F|0)>>>0>>0?o+1|0:o,F=e^v,v=o,F=nA(F,o^J,32),o=($=w)+r|0,N=n=F+n|0,r=nA(n^k,(r=H)^(H=n>>>0>>0?o+1|0:o),40),o=pA+(M=w)|0,o=v+((n=r+oA|0)>>>0>>0?o+1|0:o)|0,v=n=n+e|0,J=o=n>>>0>>0?o+1|0:o,e=o,o=K+SA|0,o=((k=W+iA|0)>>>0>>0?o+1|0:o)+e|0,W=o=(e=n+k|0)>>>0>>0?o+1|0:o,n=nA(e^l,o^S,32),o=(b=w)+R|0,S=nA((k=n+U|0)^CA,(o=k>>>0>>0?o+1|0:o)^K,40),m=U=w,K=o,o=U+FA|0,o=W+((U=S+cA|0)>>>0>>0?o+1|0:o)|0,W=o=(U=e+U|0)>>>0>>0?o+1|0:o,e=nA(n^U,o^b,48),o=(b=w)+K|0,n=(k=e+k|0)^S,S=o=k>>>0>>0?o+1|0:o,m=o=nA(n,o^m,1),K=n=w,AA=p,Z=y,y=r,r=nA(F^v,J^$,48),o=(F=w)+H|0,H=n=r+N|0,v=o=n>>>0>>0?o+1|0:o,y=nA(n^y,o^M,1),o=(M=w)+lA|0,o=((n=y+QA|0)>>>0>>0?o+1|0:o)+u|0,s=o=(p=n+s|0)>>>0>>0?o+1|0:o,n=nA(p^Z,o^G,32),o=(u=w)+D|0,N=D=n+AA|0,G=o=D>>>0>>0?o+1|0:o,y=nA(y^D,o^M,40),o=C+(Z=w)|0,M=y,o=s+((y=sA+y|0)>>>0>>0?o+1|0:o)|0,J=o=(D=y+p|0)>>>0

>>0?o+1|0:o,y=nA(n^D,o^u,48),o=(o=G)+(G=w)|0,N=n=y+N|0,AA=o=n>>>0>>0?o+1|0:o,s=t,p=f,o=P+IA|0,t=o=(n=l+_|0)>>>0>>0?o+1|0:o,f=nA(n^h,o^L,1),o=(h=w)+BA|0,o=((u=f+q|0)>>>0>>0?o+1|0:o)+c|0,c=nA(s^(p=p+u|0),(o=p>>>0>>0?o+1|0:o)^V,32),u=o,l=f,o=(s=w)+v|0,o=(f=c+H|0)>>>0>>0?o+1|0:o,H=f,f^=l,l=o,f=nA(f,o^h,40),o=B+(v=w)|0,o=((h=f+g|0)>>>0>>0?o+1|0:o)+u|0,_=o=(u=h)>>>0>(h=h+p|0)>>>0?o+1|0:o,s=nA(c^h,o^s,48),IA=o=w,p=o,c=nA(j^O,R^wA,1),P=o=w,O=t,o=o+uA|0,o=d+((t=c+T|0)>>>0>>0?o+1|0:o)|0,u=F,F=o=(t=t+Y|0)>>>0>>0?o+1|0:o,u=nA(r^t,u^o,32),o=($=w)+O|0,Y=n=u+n|0,r=nA(n^c,(r=P)^(P=n>>>0>>0?o+1|0:o),40),o=MA+(O=w)|0,o=F+((n=r+rA|0)>>>0>>0?o+1|0:o)|0,d=n=n+t|0,j=o=n>>>0>>0?o+1|0:o,t=o,o=K+tA|0,o=((c=X+m|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+c|0)>>>0>>0?o+1|0:o,n=nA(t^s,o^p,32),o=(V=w)+AA|0,p=nA((c=n+N|0)^m,(o=c>>>0>>0?o+1|0:o)^K,40),m=o,o=x+(L=w)|0,o=F+((R=p+aA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+R|0)>>>0>>0?o+1|0:o,t=V,V=o,t=nA(n^F,t^o,48),o=(o=m)+(m=w)|0,n=(c=t+c|0)^p,p=o=c>>>0>>0?o+1|0:o,L=o=nA(n,o^L,1),R=n=w,K=y,y=r,r=nA(u^d,j^$,48),o=(o=P)+(P=w)|0,Y=n=r+Y|0,u=O,O=o=n>>>0>>0?o+1|0:o,y=nA(n^y,u^o,1),o=(d=w)+FA|0,o=_+((n=y+cA|0)>>>0>>0?o+1|0:o)|0,u=h,h=n+h|0,n=G,G=o=u>>>0>h>>>0?o+1|0:o,n=nA(h^K,n^o,32),o=(o=S)+(S=w)|0,_=o=(u=n+k|0)>>>0>>0?o+1|0:o,k=u,y=nA(y^u,o^d,40),o=uA+($=w)|0,d=y,o=G+((y=T+y|0)>>>0>>0?o+1|0:o)|0,G=o=(u=y+h|0)>>>0>>0?o+1|0:o,y=nA(n^u,o^S,48),o=(o=_)+(_=w)|0,j=n=y+k|0,K=o=n>>>0>>0?o+1|0:o,k=e,o=l+IA|0,e=o=(n=s+H|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=DA+(s=w)|0,o=J+((h=f+gA|0)>>>0>>0?o+1|0:o)|0,l=(h=D+h|0)^k,k=o=h>>>0>>0?o+1|0:o,D=nA(l,o^b,32),S=o=w,l=f,o=o+O|0,o=(f=D+Y|0)>>>0>>0?o+1|0:o,H=f,f^=l,l=o,f=nA(f,o^s,40),o=B+(v=w)|0,o=k+((s=f+g|0)>>>0>>0?o+1|0:o)|0,J=o=(s=h+s|0)>>>0>>0?o+1|0:o,k=nA(D^s,o^S,48),IA=o=w,h=o,D=nA(M^N,Z^AA,1),Y=o=w,N=e,o=o+C|0,o=W+((e=D+sA|0)>>>0>>0?o+1|0:o)|0,U=o=(e=e+U|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^P,32),o=(CA=w)+N|0,N=n=S+n|0,r=nA(n^D,(M=n>>>0>>0?o+1|0:o)^Y,40),o=z+(P=w)|0,o=U+((n=I+r|0)>>>0>>0?o+1|0:o)|0,U=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=R+pA|0,o=((D=L+oA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+K|0,h=nA((D=n+j|0)^L,(o=D>>>0>>0?o+1|0:o)^R,40),b=o,o=HA+(L=w)|0,o=Y+((R=h+fA|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+R|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=b)+(b=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,L=o=nA(n,o^L,1),wA=o,R=n=w,AA=c,Z=y,c=r,r=nA(S^U,O^CA,48),o=(S=w)+M|0,U=n=r+N|0,N=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^P,1),o=(P=w)+yA|0,o=J+((n=c+eA|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(M=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^P,40),o=lA+(CA=w)|0,J=c,o=s+((c=QA+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=M,M=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=l+IA|0,t=o=(n=k+H|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=(k=w)+MA|0,o=G+((p=f+rA|0)>>>0>>0?o+1|0:o)|0,y=nA(y^(p=p+u|0),(o=p>>>0>>0?o+1|0:o)^m,32),l=u=w,u=o,H=f,o=l+N|0,o=(f=y+U|0)>>>0>>0?o+1|0:o,U=f,f^=H,H=o,f=nA(f,o^k,40),o=hA+(v=w)|0,o=((k=f+EA|0)>>>0>>0?o+1|0:o)+u|0,G=l,l=o=(u=p+k|0)>>>0>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,K^$,1),N=o=w,G=t,o=o+BA|0,o=V+((t=y+q|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+G|0,G=n=S+n|0,r=nA(n^y,(r=N)^(N=n>>>0>>0?o+1|0:o),40),o=SA+(d=w)|0,o=F+((n=r+iA|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=R+B|0,o=((y=L+g|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^wA,(o=y>>>0>>0?o+1|0:o)^R,40),R=o,o=FA+(m=w)|0,o=F+((K=p+cA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,m=o=nA(n,o^m,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+N|0,N=n=r+G|0,G=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+lA|0,o=l+((n=c+QA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=BA+($=w)|0,d=c,o=u+((c=q+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+U|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=SA+(k=w)|0,o=M+((h=f+iA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^b,32),U=o=w,H=f,o=o+G|0,o=(f=D+N|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=pA+(N=w)|0,o=s+((k=f+oA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+z|0,o=W+((e=I+D|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=uA+(J=w)|0,o=Y+((n=r+T|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+DA|0,o=((D=m+gA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^m,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=C+(b=w)|0,o=Y+((K=h+sA|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(J=w)+tA|0,o=U+((n=c+X|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^J,40),o=MA+(CA=w)|0,J=c,o=s+((c=rA+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=U,U=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+hA|0,o=l+((p=f+EA|0)>>>0>>0?o+1|0:o)|0,u=o=(p=p+u|0)>>>0>>0?o+1|0:o,y=nA(y^p,o^R,32),l=o=w,H=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=yA+(N=w)|0,o=u+((k=f+eA|0)>>>0>>0?o+1|0:o)|0,G=l,l=o=(u=p+k|0)>>>0

>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,V^$,1),G=o=w,M=t,o=o+x|0,o=L+((t=y+aA|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+M|0,M=n=S+n|0,r=nA(n^y,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=HA+(d=w)|0,o=F+((n=r+fA|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=K+C|0,o=((y=b+sA|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^b,(o=y>>>0>>0?o+1|0:o)^K,40),R=o,o=SA+(b=w)|0,o=F+((K=p+iA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+x|0,o=l+((n=c+aA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=yA+($=w)|0,d=c,o=u+((c=eA+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=hA+(k=w)|0,o=U+((h=f+EA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^m,32),U=o=w,H=f,o=o+M|0,o=(f=D+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=MA+(N=w)|0,o=s+((k=f+rA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+BA|0,o=W+((e=D+q|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=HA+(J=w)|0,o=Y+((n=r+fA|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+uA|0,o=((D=b+T|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^b,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=z+(b=w)|0,o=Y+((K=I+h|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(J=w)+pA|0,o=U+((n=c+oA|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^J,40),o=B+(CA=w)|0,J=c,o=s+((c=g+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=U,U=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+DA|0,o=l+((p=f+gA|0)>>>0>>0?o+1|0:o)|0,u=o=(p=p+u|0)>>>0>>0?o+1|0:o,y=nA(y^p,o^R,32),l=o=w,H=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=lA+(N=w)|0,o=u+((k=f+QA|0)>>>0>>0?o+1|0:o)|0,G=l,l=o=(u=p+k|0)>>>0

>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,V^$,1),G=o=w,M=t,o=o+FA|0,o=L+((t=y+cA|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+M|0,M=n=S+n|0,r=nA(n^y,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=tA+(d=w)|0,o=F+((n=r+X|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=K+HA|0,o=((y=b+fA|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^b,(o=y>>>0>>0?o+1|0:o)^K,40),R=o,o=yA+(b=w)|0,o=F+((K=p+eA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+SA|0,o=l+((n=c+iA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=C+($=w)|0,d=c,o=u+((c=sA+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=lA+(k=w)|0,o=U+((h=f+QA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^m,32),U=o=w,H=f,o=o+M|0,o=(f=D+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=x+(N=w)|0,o=s+((k=f+aA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+MA|0,o=W+((e=D+rA|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=FA+(J=w)|0,o=Y+((n=r+cA|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+hA|0,o=((D=b+EA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^b,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=B+(b=w)|0,o=Y+((K=h+g|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(P=w)+BA|0,o=U+((n=c+q|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=p=n+AA|0,J=o=p>>>0>>0?o+1|0:o,c=nA(c^p,o^P,40),o=uA+(AA=w)|0,P=c,o=s+((c=T+c|0)>>>0>>0?o+1|0:o)|0,p=c+y|0,c=U,U=o=p>>>0>>0?o+1|0:o,c=nA(n^p,c^o,48),o=(o=J)+(J=w)|0,_=n=c+_|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+z|0,o=l+((s=I+f|0)>>>0>>0?o+1|0:o)|0,u=o=(s=s+u|0)>>>0>>0?o+1|0:o,l=y=nA(y^s,o^R,32),H=o=w,v=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,N=f,f^=v,v=o,f=nA(f,o^k,40),o=pA+(G=w)|0,o=u+((y=f+oA|0)>>>0>>0?o+1|0:o)|0,M=(y=y+s|0)^l,l=o=y>>>0>>0?o+1|0:o,s=nA(M,o^H,48),R=o=w,k=o,H=u=nA(j^d,V^$,1),M=o=w,d=t,o=o+tA|0,o=L+((t=u+X|0)>>>0>>0?o+1|0:o)|0,o=(t=t+F|0)>>>0>>0?o+1|0:o,F=S,S=o,u=nA(r^t,F^o,32),o=(Z=w)+d|0,F=n=u+n|0,r=nA(r=n^H,(H=n>>>0>>0?o+1|0:o)^M,40),o=DA+(M=w)|0,o=S+((n=r+gA|0)>>>0>>0?o+1|0:o)|0,S=n=n+t|0,d=o=n>>>0>>0?o+1|0:o,t=o,o=K+uA|0,o=((L=T)>>>0>(T=b+T|0)>>>0?o+1|0:o)+t|0,uA=o=(n=n+T|0)>>>0>>0?o+1|0:o,T=nA(n^s,o^k,32),o=(j=w)+O|0,k=nA((t=_+T|0)^b,(o=t>>>0>>0?o+1|0:o)^K,40),L=o,o=pA+(V=w)|0,o=uA+((b=oA)>>>0>(oA=k+oA|0)>>>0?o+1|0:o)|0,o=(oA=n+oA|0)>>>0>>0?o+1|0:o,n=T^oA,T=o;pA=nA(n,o^j,48),o=(uA=w)+L|0,t=o=(n=t+pA|0)>>>0>>0?o+1|0:o,o=nA(n^k,o^V,1),k=w,j=o,V=D,D=gA,L=DA,DA=nA(u^S,d^Z,48),o=(u=w)+H|0,H=D,F=o=(gA=F+DA|0)>>>0>>0?o+1|0:o,D=nA(r^(S=gA),o^M,1),o=(M=w)+L|0,o=l+(D>>>0>(gA=H+D|0)>>>0?o+1|0:o)|0,r=o=(gA=y+gA|0)>>>0>>0?o+1|0:o,c=nA(c^gA,o^J,32),o=(o=h)+(h=w)|0,l=y=c+V|0,H=o=y>>>0>>0?o+1|0:o,y=nA(y^D,o^M,40),o=(M=w)+SA|0,o=(y>>>0>(iA=y+iA|0)>>>0?o+1|0:o)+r|0,r=o=(r=iA)>>>0>(iA=gA+iA|0)>>>0?o+1|0:o,c=nA(c^iA,o^h,48),o=(D=w)+H|0,h=gA=c+l|0,SA=o=gA>>>0>>0?o+1|0:o,l=I,H=z,o=v+R|0,gA=o=(I=s+N|0)>>>0>>0?o+1|0:o,z=nA(I^f,o^G,1),o=(s=w)+H|0,o=U+((f=l+z|0)>>>0>>0?o+1|0:o)|0,e=nA((f=f+p|0)^e,(o=f>>>0

>>0?o+1|0:o)^m,32),l=o,U=EA,EA=z,o=(p=w)+F|0,F=s,s=o=(z=e+S|0)>>>0>>0?o+1|0:o,EA=nA(z^EA,F^o,40),o=(S=w)+hA|0,o=((hA=U+EA|0)>>>0>>0?o+1|0:o)+l|0,l=hA,f=e^(hA=f+hA|0),e=o=l>>>0>hA>>>0?o+1|0:o,o=nA(f,o^p,48),v=f=w,p=o,F=q,l=BA,q=nA(_^P,O^AA,1),H=o=w,o=o+HA|0,o=W+((q=(U=q)+fA|0)>>>0>>0?o+1|0:o)|0,fA=o=(q=Y+q|0)>>>0>>0?o+1|0:o,BA=nA(q^DA,o^u,32),o=(Y=w)+gA|0,gA=I=BA+I|0,DA=nA(I^U,(u=I>>>0>>0?o+1|0:o)^H,40),o=(o=l)+(l=w)|0,o=fA+((I=DA+F|0)>>>0>>0?o+1|0:o)|0,fA=I=I+q|0,HA=o=I>>>0>>0?o+1|0:o,q=o,o=k+lA|0,o=((U=QA)>>>0>(QA=j+QA|0)>>>0?o+1|0:o)+q|0,lA=o=(q=I+QA|0)>>>0>>0?o+1|0:o,QA=nA(p^q,o^f,32),o=(U=w)+SA|0,f=I=QA+h|0,I=nA(I^j,(F=k)^(k=I>>>0>>0?o+1|0:o),40),o=MA+(H=w)|0,MA=I,o=lA+((I=rA+I|0)>>>0>>0?o+1|0:o)|0,o=(I=I+q|0)>>>0>>0?o+1|0:o,lA=I,N=(a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24)^I,F=o,G=o^(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24),q=nA(BA^fA,Y^HA,48),o=(fA=w)+u|0,u=I=q+gA|0,HA=o=I>>>0>>0?o+1|0:o,BA=eA,o=s+v|0,eA=o=(I=p+z|0)>>>0>>0?o+1|0:o,EA=nA(I^EA,o^S,1),o=(p=w)+yA|0,o=((BA=EA+BA|0)>>>0>>0?o+1|0:o)+r|0,BA=o=(yA=BA+iA|0)>>>0>>0?o+1|0:o,gA=nA(yA^pA,o^uA,32),o=(z=w)+HA|0,iA=o=(rA=gA+u|0)>>>0>>0?o+1|0:o,pA=gA,gA=nA(EA^rA,o^p,40),o=(r=w)+FA|0,o=(gA>>>0>(EA=gA+cA|0)>>>0?o+1|0:o)+BA|0,s=z,z=o=(yA=EA+yA|0)>>>0>>0?o+1|0:o,EA=nA(pA^(cA=yA),s^o,48),o=(p=w)+iA|0,o=(BA=EA+rA|0)>>>0>>0?o+1|0:o,rA=BA,BA^=N,E[A+8|0]=BA,E[A+9|0]=BA>>>8,E[A+10|0]=BA>>>16,E[A+11|0]=BA>>>24,iA=o,o^=G,E[A+12|0]=o,E[A+13|0]=o>>>8,E[A+14|0]=o>>>16,E[A+15|0]=o>>>24,yA=I,BA=eA,I=q,q=nA(y^h,M^SA,1),o=(FA=w)+B|0,o=(q>>>0>(eA=q+g|0)>>>0?o+1|0:o)+T|0,oA=o=(h=eA)>>>0>(eA=oA+eA|0)>>>0?o+1|0:o,I=nA(I^eA,o^fA,32),o=(o=BA)+(BA=w)|0,fA=o=(yA=I+yA|0)>>>0>>0?o+1|0:o,pA=I,yA=nA(q^(T=yA),o^FA,40),o=(y=w)+C|0,o=oA+((I=yA+sA|0)>>>0>>0?o+1|0:o)|0,o=(I=I+eA|0)>>>0>>0?o+1|0:o,oA=I,I^=pA,pA=o,eA=nA(I,o^BA,48),o=(h=w)+fA|0,T=I=eA+T|0,fA=I>>>0>>0?o+1|0:o,DA=I=nA(u^DA,l^HA,1),FA=o=w,o=o+x|0,o=e+((I=I+aA|0)>>>0>>0?o+1|0:o)|0,x=o=(q=I+hA|0)>>>0>>0?o+1|0:o,I=(BA=nA(c^q,o^D,32))+n|0,o=(n=w)+t|0,hA=I,I=(aA=nA(e=I^DA,(DA=I>>>0>>0?o+1|0:o)^FA,40))+X|0,o=(X=w)+tA|0,o=x+(I>>>0>>0?o+1|0:o)|0,o=(x=I+q|0)>>>0>>0?o+1|0:o,q=x^UA^T,E[0|(I=A)]=q,E[I+1|0]=q>>>8,E[I+2|0]=q>>>16,E[I+3|0]=q>>>24,q=o^Q^fA,E[I+4|0]=q,E[I+5|0]=q>>>8,E[I+6|0]=q>>>16,E[I+7|0]=q>>>24,q=(BA=nA(x^BA,o^n,48))+hA|0,o=(hA=w)+DA|0,o=(DA=q>>>0>>0?o+1|0:o)^(a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)^pA,x=(a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)^oA^q,E[I+16|0]=x,E[I+17|0]=x>>>8,E[I+18|0]=x>>>16,E[I+19|0]=x>>>24,E[I+20|0]=o,E[I+21|0]=o>>>8,E[I+22|0]=o>>>16,E[I+23|0]=o>>>24,I=nA(QA^lA,F^U,48),x=w,oA=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o=(a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)^nA(gA^rA,r^iA,1)^I,E[A+32|0]=o,E[A+33|0]=o>>>8,E[A+34|0]=o>>>16,E[A+35|0]=o>>>24,o=w^oA^x,E[A+36|0]=o,E[A+37|0]=o>>>8,E[A+38|0]=o>>>16,E[A+39|0]=o>>>24,o=k+x|0,o=(oA=I+f|0)>>>0>>0?o+1|0:o,gA=(a[(I=A)+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24)^z^o,x=(a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24)^cA^oA,E[I+24|0]=x,E[I+25|0]=x>>>8,E[I+26|0]=x>>>16,E[I+27|0]=x>>>24,E[I+28|0]=gA,E[I+29|0]=gA>>>8,E[I+30|0]=gA>>>16,E[I+31|0]=gA>>>24,gA=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,I=eA^(a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24)^nA(q^aA,X^DA,1),E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,I=h^w^gA,E[A+44|0]=I,E[A+45|0]=I>>>8,E[A+46|0]=I>>>16,E[A+47|0]=I>>>24,q=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,I=BA^(a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)^nA(T^yA,y^fA,1),E[A+56|0]=I,E[A+57|0]=I>>>8,E[A+58|0]=I>>>16,E[A+59|0]=I>>>24,I=hA^w^q,E[A+60|0]=I,E[A+61|0]=I>>>8,E[A+62|0]=I>>>16,E[A+63|0]=I>>>24,q=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,I=EA^(a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24)^nA(oA^MA,o^H,1),E[A+48|0]=I,E[A+49|0]=I>>>8,E[A+50|0]=I>>>16,E[A+51|0]=I>>>24,I=p^w^q,E[A+52|0]=I,E[A+53|0]=I>>>8,E[A+54|0]=I>>>16,E[A+55|0]=I>>>24}function s(A,I,g,C,B,Q,i){var n,r,f,t,e,c,y,h,s,p,k,F,l,S,H,G,U,J,N,Y,b,_,K,P,d,L,R,x,j,X,q,z,V,O,T,W,Z,$,AA,IA,gA,CA,BA,iA,oA,aA,nA,rA,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,kA=0,FA=0,lA=0,SA=0,HA=0,MA=0,GA=0,UA=0,JA=0,NA=0,YA=0,bA=0,_A=0,KA=0,PA=0,vA=0,mA=0,dA=0,LA=0,RA=0,xA=0,jA=0,XA=0,qA=0,zA=0,VA=0,OA=0,TA=0,WA=0,ZA=0,AI=0,II=0,gI=0,CI=0,BI=0,QI=0,iI=0;return D=f=D-560|0,EA(f+352|0),i&&m(f+352|0,34768,34,0),QA(f+288|0,Q,32,0),m(wA=f+352|0,f+320|0,32,0),m(wA,g,C,B),M(wA,sA=f+224|0),pA=a[(tA=Q)+32|0]|a[tA+33|0]<<8|a[tA+34|0]<<16|a[tA+35|0]<<24,FA=a[tA+36|0]|a[tA+37|0]<<8|a[tA+38|0]<<16|a[tA+39|0]<<24,cA=a[tA+40|0]|a[tA+41|0]<<8|a[tA+42|0]<<16|a[tA+43|0]<<24,fA=a[tA+44|0]|a[tA+45|0]<<8|a[tA+46|0]<<16|a[tA+47|0]<<24,eA=a[tA+48|0]|a[tA+49|0]<<8|a[tA+50|0]<<16|a[tA+51|0]<<24,Q=a[tA+52|0]|a[tA+53|0]<<8|a[tA+54|0]<<16|a[tA+55|0]<<24,yA=a[tA+60|0]|a[tA+61|0]<<8|a[tA+62|0]<<16|a[tA+63|0]<<24,tA=a[tA+56|0]|a[tA+57|0]<<8|a[tA+58|0]<<16|a[tA+59|0]<<24,E[A+56|0]=tA,E[A+57|0]=tA>>>8,E[A+58|0]=tA>>>16,E[A+59|0]=tA>>>24,E[A+60|0]=yA,E[A+61|0]=yA>>>8,E[A+62|0]=yA>>>16,E[A+63|0]=yA>>>24,E[A+48|0]=eA,E[A+49|0]=eA>>>8,E[A+50|0]=eA>>>16,E[A+51|0]=eA>>>24,E[A+52|0]=Q,E[A+53|0]=Q>>>8,E[A+54|0]=Q>>>16,E[A+55|0]=Q>>>24,E[A+40|0]=cA,E[A+41|0]=cA>>>8,E[A+42|0]=cA>>>16,E[A+43|0]=cA>>>24,E[A+44|0]=fA,E[A+45|0]=fA>>>8,E[A+46|0]=fA>>>16,E[A+47|0]=fA>>>24,E[0|(Q=A+32|0)]=pA,E[Q+1|0]=pA>>>8,E[Q+2|0]=pA>>>16,E[Q+3|0]=pA>>>24,E[Q+4|0]=FA,E[Q+5|0]=FA>>>8,E[Q+6|0]=FA>>>16,E[Q+7|0]=FA>>>24,u(sA),v(f,sA),uA(A,f),EA(wA),i&&m(f+352|0,34768,34,0),m(i=f+352|0,A,64,0),m(i,g,C,B),M(i,hA=f+160|0),u(hA),E[f+288|0]=248&a[f+288|0],E[f+319|0]=63&a[f+319|0]|64,g=a[23+(A=r=f+288|0)|0],cA=DA(t=a[A+21|0]|a[A+22|0]<<8|g<<16&2031616,0,e=(a[hA+28|0]|a[hA+29|0]<<8|a[hA+30|0]<<16|a[hA+31|0]<<24)>>>7|0,0),eA=w,g=(A=a[hA+27|0])>>>24|0,B=A<<8|(fA=a[hA+23|0]|a[hA+24|0]<<8|a[hA+25|0]<<16|a[hA+26|0]<<24)>>>24,A=DA(c=2097151&((3&(FA=(A=(C=a[hA+28|0])>>>16|0)|g))<<30|(g=(C<<=16)|B)>>>2),0,y=(i=a[r+23|0]|a[r+24|0]<<8|a[r+25|0]<<16|a[r+26|0]<<24)>>>5&2097151,0),g=w+eA|0,C=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,A=DA(h=(g=a[hA+23|0])<<16&2031616|a[hA+21|0]|a[hA+22|0]<<8,0,s=(a[r+28|0]|a[r+29|0]<<8|a[r+30|0]<<16|a[r+31|0]<<24)>>>7|0,0),C=w+C|0,eA=g=A+B|0,B=A>>>0>g>>>0?C+1|0:C,C=(A=a[r+27|0])>>>24|0,i=A<<8|i>>>24,A=DA(p=2097151&((3&(C|=g=(A=a[r+28|0])>>>16|0))<<30|(g=(A<<=16)|i)>>>2),0,k=fA>>>5&2097151,0),g=w+B|0,tA=C=A+eA|0,B=A>>>0>C>>>0?g+1|0:g,fA=DA(y,0,k,0),eA=w,g=(A=a[r+19|0])>>>24|0,i=A<<8|(UA=a[r+15|0]|a[r+16|0]<<8|a[r+17|0]<<16|a[r+18|0]<<24)>>>24,C=g,g=DA(F=(7&(C|=g=(A=a[r+20|0])>>>16|0))<<29|(g=(A<<=16)|i)>>>3,FA=C>>>3|0,e,0),A=w+eA|0,A=g>>>0>(C=g+fA|0)>>>0?A+1|0:A,i=(g=DA(t,0,c,0))+C|0,C=w+A|0,g=g>>>0>(fA=i)>>>0?C+1|0:C,C=(A=a[hA+19|0])>>>24|0,eA=A<<8|(GA=a[hA+15|0]|a[hA+16|0]<<8|a[hA+17|0]<<16|a[hA+18|0]<<24)>>>24,A=DA(l=(7&(cA=(A=(i=a[hA+20|0])>>>16|0)|C))<<29|(C=(i<<=16)|eA)>>>3,S=cA>>>3|0,s,0),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,A=DA(h,0,p,0),g=w+g|0,pA=g=A>>>0>(sA=A+C|0)>>>0?g+1|0:g,lA=A=g-((sA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+B|0,fA=C=(A=(2097151&A)<<11|(cA=sA- -1048576|0)>>>21)>>>0>(tA=A+tA|0)>>>0?C+1|0:C,HA=A=C-((tA>>>0<4293918720)-1|0)|0,wA=(2097151&A)<<11|(eA=tA- -1048576|0)>>>21,i=A>>>21|0,A=DA(s,0,k,0),g=w,C=A,A=DA(e,0,y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,SA=(A=C)+(C=DA(c,0,p,0))|0,A=w+g|0,A=C>>>0>SA>>>0?A+1|0:A,yA=SA-(g=-2097152&(C=SA- -1048576|0))|0,g=(A-((131071&(B=A-((SA>>>0<4293918720)-1|0)|0))+(g>>>0>SA>>>0)|0)|0)+i|0,j=g=(A=yA+wA|0)>>>0>>0?g+1|0:g,X=A,yA=DA(A,g,470296,0),wA=w,g=DA(e,0,p,0),A=w,i=g,g=DA(c,0,s,0),A=w+A|0,g=g>>>0>(i=i+g|0)>>>0?A+1|0:A,A=B>>>21|0,B=(2097151&B)<<11|C>>>21,C=A+g|0,_A=B=(C=B>>>0>(i=B+i|0)>>>0?C+1|0:C)-((i>>>0<4293918720)-1|0)|0,A=i-(g=-2097152&(bA=i- -1048576|0))|0,q=i=C-((131071&B)+(g>>>0>i>>>0)|0)|0,z=g=tA-(C=-2097152&eA)|0,V=B=fA-((C>>>0>tA>>>0)+HA|0)|0,O=A,C=DA(A,i,666643,0),A=w+wA|0,A=C>>>0>(i=C+yA|0)>>>0?A+1|0:A,C=DA(g,B,654183,0),g=w+A|0,kA=B=C+i|0,eA=C>>>0>B>>>0?g+1|0:g,SA=sA-(A=-2097152&cA)|0,lA=pA-((A>>>0>sA>>>0)+lA|0)|0,g=DA(c,0,F,FA),C=w,B=(A=g)+(g=DA(H=UA>>>6&2097151,0,e,0))|0,A=w+C|0,A=g>>>0>B>>>0?A+1|0:A,g=DA(y,0,h,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(t,0,k,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(s,0,G=GA>>>6&2097151,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=DA(p,0,l,S),g=w+A|0,sA=B=C+B|0,i=C>>>0>B>>>0?g+1|0:g,g=(A=a[r+14|0])>>>24|0,B=A<<8|(pA=a[r+10|0]|a[r+11|0]<<8|a[r+12|0]<<16|a[r+13|0]<<24)>>>24,g=DA(U=2097151&((1&(g|=A=(C=a[r+15|0])>>>16|0))<<31|(A=(C<<=16)|B)>>>1),0,e,0),A=w,C=g,g=DA(c,0,H,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(k,0,F,FA))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(y,0,l,S),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,A=DA(t,0,h,0),g=w+g|0,cA=C=A+B|0,B=A>>>0>C>>>0?g+1|0:g,g=(A=a[hA+14|0])>>>24|0,fA=A<<8|(tA=a[hA+10|0]|a[hA+11|0]<<8|a[hA+12|0]<<16|a[hA+13|0]<<24)>>>24,C=g,g=(A=a[hA+15|0])>>>16|0,g=DA(J=2097151&((1&(g|=C))<<31|(A=A<<16|fA)>>>1),0,s,0),A=w+B|0,A=g>>>0>(C=g+cA|0)>>>0?A+1|0:A,g=DA(p,0,G,0),A=w+A|0,fA=A=g>>>0>(cA=g+C|0)>>>0?A+1|0:A,KA=g=A-((cA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,wA=C=(g=(2097151&g)<<11|(yA=cA- -1048576|0)>>>21)>>>0>(HA=g+sA|0)>>>0?C+1|0:C,NA=g=C-((HA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+lA|0,T=A=(g=(C=(2097151&g)<<11|(sA=HA- -1048576|0)>>>21)+SA|0)>>>0>>0?A+1|0:A,W=g,A=DA(g,A,-997805,-1),g=w+eA|0,kA=C=A+kA|0,eA=A>>>0>C>>>0?g+1|0:g,SA=(mA=a[23+(n=f+224|0)|0]|a[n+24|0]<<8|a[n+25|0]<<16|a[n+26|0]<<24)>>>5&2097151,C=DA(N=(A=a[r+2|0])<<16&2031616|a[0|r]|a[r+1|0]<<8,0,k,0),g=w,B=(A=DA(h,0,Y=(i=a[r+2|0]|a[r+3|0]<<8|a[r+4|0]<<16|a[r+5|0]<<24)>>>5&2097151,0))+C|0,C=w+g|0,C=A>>>0>B>>>0?C+1|0:C,A=DA(b=(a[r+7|0]|a[r+8|0]<<8|a[r+9|0]<<16|a[r+10|0]<<24)>>>7&2097151,0,G,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(J,0,_=pA>>>4&2097151,0),A=w+g|0,pA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=(g=a[r+6|0])<<8|i>>>24,C=A=g>>>24|0,g=(A=a[r+7|0])>>>16|0,g=DA(K=2097151&((3&(g|=C))<<30|(A=A<<16|i)>>>2),0,l,S),A=w+B|0,A=g>>>0>(C=g+pA|0)>>>0?A+1|0:A,B=(g=DA(H,0,P=(a[hA+7|0]|a[hA+8|0]<<8|a[hA+9|0]<<16|a[hA+10|0]<<24)>>>7&2097151,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,g=DA(U,0,YA=tA>>>4&2097151,0),A=w+C|0,i=g>>>0>(B=g+B|0)>>>0?A+1|0:A,A=(g=a[hA+6|0])>>>24|0,pA=g<<8|(tA=a[hA+2|0]|a[hA+3|0]<<8|a[hA+4|0]<<16|a[hA+5|0]<<24)>>>24,g=A,A=DA(F,FA,d=2097151&((3&(g|=C=(A=a[hA+7|0])>>>16|0))<<30|(A=A<<16|pA)>>>2),0),g=w+i|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,B=C,C=DA(L=(A=a[hA+2|0])<<16&2031616|a[0|hA]|a[hA+1|0]<<8,0,y,0),A=w+g|0,A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,g=DA(t,0,R=tA>>>5&2097151,0),A=w+A|0,g=g>>>0>(C=g+B|0)>>>0?A+1|0:A,pA=A=C+SA|0,i=g=A>>>0>>0?g+1|0:g,B=a[n+21|0]|a[n+22|0]<<8,A=DA(h,0,N,0),g=w,tA=(C=A)+(A=DA(l,S,Y,0))|0,C=w+g|0,C=A>>>0>tA>>>0?C+1|0:C,A=DA(J,0,b,0),g=w+C|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,A=DA(_,0,YA,0),g=w+g|0,g=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,tA=(A=C)+(C=DA(G,0,K,0))|0,A=w+g|0,A=C>>>0>tA>>>0?A+1|0:A,g=DA(H,0,d,0),A=w+A|0,A=g>>>0>(C=g+tA|0)>>>0?A+1|0:A,tA=(g=DA(U,0,P,0))+C|0,C=w+A|0,C=g>>>0>tA>>>0?C+1|0:C,A=DA(F,FA,R,0),g=w+C|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,A=DA(t,0,L,0),g=w+g|0,A=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,g=(g=C)>>>0>(C=C+B|0)>>>0?A+1|0:A,B=C,C=(A=a[n+23|0])<<16&2031616,A=g,C=A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,hA=A=A-((B>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+i|0,A=(g=(i=pA=(A=(2097151&A)<<11|(tA=B- -1048576|0)>>>21)+pA|0)>>>0>>0?g+1|0:g)+eA|0,A=(eA=i+kA|0)>>>0>>0?A+1|0:A,UA=i- -1048576|0,MA=i=g-((i>>>0<4293918720)-1|0)|0,JA=eA-(g=-2097152&UA)|0,PA=A-((g>>>0>eA>>>0)+i|0)|0,pA=B,eA=C,A=DA(z,V,470296,0),g=w,C=A,A=DA(X,j,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(W,T,654183,0))|0,A=w+g|0,GA=B,i=C>>>0>B>>>0?A+1|0:A,g=DA(l,S,N,0),A=w,C=g,g=DA(G,0,Y,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(b,0,YA,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(_,0,P,0),C=w+g|0,C=A>>>0>(B=A+B|0)>>>0?C+1|0:C,A=DA(J,0,K,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(H,0,R,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(U,0,d,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(F,FA,L,0))|0,g=w+A|0,SA=B,C=C>>>0>B>>>0?g+1|0:g,g=(A=a[n+19|0])>>>24|0,lA=A<<8|(kA=a[n+15|0]|a[n+16|0]<<8|a[n+17|0]<<16|a[n+18|0]<<24)>>>24,C=((vA=(A=(B=a[n+20|0])>>>16|0)|g)>>>3|0)+C|0,SA=B=(g=(7&vA)<<29|(g=(B<<=16)|lA)>>>3)+SA|0,B=g>>>0>B>>>0?C+1|0:C,lA=kA>>>6&2097151,A=DA(G,0,N,0),g=w,C=A,A=DA(J,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,kA=(A=C)+(C=DA(b,0,P,0))|0,A=w+g|0,A=C>>>0>kA>>>0?A+1|0:A,C=DA(_,0,d,0),g=w+A|0,g=C>>>0>(kA=C+kA|0)>>>0?g+1|0:g,C=DA(K,0,YA,0),A=w+g|0,A=C>>>0>(kA=C+kA|0)>>>0?A+1|0:A,g=DA(H,0,L,0),C=w+A|0,C=g>>>0>(kA=g+kA|0)>>>0?C+1|0:C,A=DA(U,0,R,0),g=w+C|0,A=A>>>0>(kA=A+kA|0)>>>0?g+1|0:g,VA=A=(LA=kA+lA|0)>>>0>>0?A+1|0:A,gI=A=A-((LA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(qA=LA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,TA=A=C>>>0>(OA=C+SA|0)>>>0?A+1|0:A,CI=A=A-((OA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(xA=OA- -1048576|0)>>>21,A=(A>>>21|0)+i|0,g=(C>>>0>(B=C+GA|0)>>>0?A+1|0:A)+eA|0,eA=(C=B+pA|0)-(A=-2097152&tA)|0,hA=A=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+hA|0)|0,BI=A=A-((eA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(jA=eA- -1048576|0)>>>21,A=(A>>21)+PA|0,B=A=C>>>0>(i=C+JA|0)>>>0?A+1|0:A,II=A=A-((i>>>0<4293918720)-1|0)|0,XA=(2097151&A)<<11|(GA=i- -1048576|0)>>>21,pA=A>>21,vA=HA-(A=-2097152&sA)|0,NA=wA-((A>>>0>HA>>>0)+NA|0)|0,A=DA(e,0,s,0),zA=g=w,JA=A,kA=A- -1048576|0,RA=g=g-((A>>>0<4293918720)-1|0)|0,Z=A=g>>>21|0,A=DA(x=(2097151&g)<<11|kA>>>21,A,-683901,-1),g=w+fA|0,g=A>>>0>(C=A+cA|0)>>>0?g+1|0:g,sA=C-(A=-2097152&yA)|0,tA=g-((A>>>0>C>>>0)+KA|0)|0,g=DA(k,0,H,0),A=w,C=g,g=DA(e,0,_,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=DA(c,0,U,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,fA=(g=C)+(C=DA(h,0,F,FA))|0,g=w+A|0,g=C>>>0>fA>>>0?g+1|0:g,A=DA(y,0,G,0),C=w+g|0,C=A>>>0>(fA=A+fA|0)>>>0?C+1|0:C,A=DA(t,0,l,S),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(s,0,YA,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(p,0,J,0),A=w+A|0,cA=C=g+fA|0,fA=g>>>0>C>>>0?A+1|0:A,A=DA(c,0,_,0),g=w,C=A,A=DA(e,0,b,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,wA=(A=DA(h,0,H,0))+C|0,C=w+g|0,C=A>>>0>wA>>>0?C+1|0:C,A=DA(k,0,U,0),g=w+C|0,g=A>>>0>(wA=A+wA|0)>>>0?g+1|0:g,C=DA(F,FA,l,S),A=w+g|0,A=C>>>0>(wA=C+wA|0)>>>0?A+1|0:A,g=DA(y,0,J,0),A=w+A|0,A=g>>>0>(C=g+wA|0)>>>0?A+1|0:A,wA=(g=C)+(C=DA(t,0,G,0))|0,g=w+A|0,g=C>>>0>wA>>>0?g+1|0:g,A=DA(s,0,P,0),C=w+g|0,C=A>>>0>(wA=A+wA|0)>>>0?C+1|0:C,A=DA(p,0,YA,0),g=w+C|0,lA=g=A>>>0>(SA=A+wA|0)>>>0?g+1|0:g,ZA=A=g-((SA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(HA=SA- -1048576|0)>>>21,A=(A>>>21|0)+fA|0,yA=A=g>>>0>(KA=g+cA|0)>>>0?A+1|0:A,dA=A=A-((KA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+tA|0,sA=g=(A=(2097151&A)<<11|(wA=KA- -1048576|0)>>>21)>>>0>(PA=A+sA|0)>>>0?g+1|0:g,WA=A=g-((PA>>>0<4293918720)-1|0)|0,fA=(2097151&A)<<11|(tA=PA- -1048576|0)>>>21,A=(A>>21)+NA|0,$=A=(g=fA+vA|0)>>>0>>0?A+1|0:A,AA=g,A=DA(g,A,-683901,-1),g=w+pA|0,XA=C=A+XA|0,pA=A>>>0>C>>>0?g+1|0:g,A=DA(c,0,N,0),g=w,C=A,A=DA(k,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(l,S,b,0))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(G,0,_,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,g=DA(h,0,K,0),A=w+C|0,A=g>>>0>(fA=g+fA|0)>>>0?A+1|0:A,C=DA(H,0,YA,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,A=DA(U,0,J,0),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(F,FA,P,0))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(y,0,R,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,g=DA(t,0,d,0),A=w+C|0,A=g>>>0>(fA=g+fA|0)>>>0?A+1|0:A,C=DA(p,0,L,0),g=w+A|0,NA=fA=C+fA|0,C=C>>>0>fA>>>0?g+1|0:g,g=(A=a[n+27|0])>>>24|0,cA=A<<8|mA>>>24,fA=2097151&((3&(g|=A=(fA=a[n+28|0])>>>16|0))<<30|(A=(fA<<=16)|cA)>>>2),g=C,cA=A=fA+NA|0,fA=A>>>0>>0?g+1|0:g,vA=DA(O,q,470296,0),NA=w,A=(C=(2097151&_A)<<11|bA>>>21)+(JA-(g=-2097152&kA)|0)|0,g=zA-((524287&RA)+(g>>>0>JA>>>0)|0)+(_A>>>21)|0,IA=g=A>>>0>>0?g+1|0:g,gA=A,g=DA(A,g,666643,0),A=w+NA|0,A=g>>>0>(C=g+vA|0)>>>0?A+1|0:A,kA=(g=DA(X,j,654183,0))+C|0,C=w+A|0,C=g>>>0>kA>>>0?C+1|0:C,g=DA(z,V,-997805,-1),A=w+C|0,A=g>>>0>(kA=g+kA|0)>>>0?A+1|0:A,C=DA(W,T,136657,0),g=w+A|0,UA=(A=(2097151&MA)<<11|UA>>>21)+(kA=C+kA|0)|0,g=(MA>>>21|0)+(C>>>0>kA>>>0?g+1|0:g)|0,RA=kA=fA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>UA>>>0?g+1|0:g)+fA|0,g=(fA=cA+UA|0)-(C=-2097152&(zA=cA- -1048576|0))|0,C=(A=(A=fA>>>0>>0?A+1|0:A)-((C>>>0>fA>>>0)+kA|0)|0)+pA|0,vA=fA=A-((g>>>0<4293918720)-1|0)|0,JA=(C=(cA=g+XA|0)>>>0>>0?C+1|0:C)-(((g=-2097152&(NA=g- -1048576|0))>>>0>cA>>>0)+fA|0)|0,mA=A=cA-g|0,fA=i,i=B,AI=PA-(A=-2097152&tA)|0,kA=sA-((A>>>0>PA>>>0)+WA|0)|0,A=DA(gA,IA,-683901,-1),g=w,B=(C=A)+(A=DA(x,Z,136657,0))|0,C=w+g|0,g=yA+(A>>>0>B>>>0?C+1|0:C)|0,wA=(C=B+KA|0)-(A=-2097152&wA)|0,sA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+dA|0)|0,g=DA(x,Z,-997805,-1),A=w+lA|0,A=g>>>0>(C=g+SA|0)>>>0?A+1|0:A,B=(g=DA(gA,IA,136657,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(O,q,-683901,-1),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,tA=B-(A=-2097152&HA)|0,pA=g-((A>>>0>B>>>0)+ZA|0)|0,g=DA(k,0,_,0),A=w,C=g,g=DA(c,0,b,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(e,0,K,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(l,S,H,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(h,0,U,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=DA(F,FA,G,0),g=w+A|0,g=C>>>0>(B=C+B|0)>>>0?g+1|0:g,C=DA(y,0,YA,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(t,0,J,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(s,0,d,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(p,0,P,0),A=w+g|0,cA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,A=DA(k,0,b,0),g=w,C=A,A=DA(e,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,yA=(A=C)+(C=DA(h,0,_,0))|0,A=w+g|0,A=C>>>0>yA>>>0?A+1|0:A,g=DA(c,0,K,0),C=w+A|0,C=g>>>0>(yA=g+yA|0)>>>0?C+1|0:C,A=DA(H,0,G,0),g=w+C|0,g=A>>>0>(yA=A+yA|0)>>>0?g+1|0:g,C=DA(l,S,U,0),A=w+g|0,A=C>>>0>(yA=C+yA|0)>>>0?A+1|0:A,C=DA(F,FA,J,0),g=w+A|0,g=C>>>0>(yA=C+yA|0)>>>0?g+1|0:g,C=DA(y,0,P,0),A=w+g|0,A=C>>>0>(yA=C+yA|0)>>>0?A+1|0:A,g=DA(t,0,YA,0),C=w+A|0,C=g>>>0>(yA=g+yA|0)>>>0?C+1|0:C,yA=(A=DA(s,0,R,0))+yA|0,g=w+C|0,C=DA(p,0,d,0),A=w+(A>>>0>yA>>>0?g+1|0:g)|0,PA=A=C>>>0>(WA=C+yA|0)>>>0?A+1|0:A,BA=A=A-((WA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(_A=WA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,bA=A=C>>>0>(XA=C+cA|0)>>>0?A+1|0:A,iA=A=A-((XA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(MA=XA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,UA=A=C>>>0>(KA=C+tA|0)>>>0?A+1|0:A,oA=A=A-((KA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(lA=KA- -1048576|0)>>>21,A=(A>>21)+sA|0,B=A=C>>>0>(tA=C+wA|0)>>>0?A+1|0:A,sA=A=A-((tA>>>0<4293918720)-1|0)|0,pA=(2097151&A)<<11|(C=tA- -1048576|0)>>>21,A=(A>>21)+kA|0,ZA=A=(cA=pA+AI|0)>>>0>>0?A+1|0:A,dA=cA,A=DA(cA,A,-683901,-1),g=w,cA=A,A=DA(AA,$,136657,0),g=w+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+i|0,QI=(i=fA+cA|0)-(g=-2097152&GA)|0,iI=(A=i>>>0>>0?A+1|0:A)-((g>>>0>i>>>0)+II|0)|0,pA=eA,cA=hA,eA=DA(dA,ZA,136657,0),i=w,AI=A=tA-(g=-2097152&C)|0,CA=B=B-((g>>>0>tA>>>0)+sA|0)|0,C=DA(AA,$,-997805,-1),g=w+i|0,g=C>>>0>(eA=C+eA|0)>>>0?g+1|0:g,C=DA(A,B,-683901,-1),A=w+g|0,II=B=C+eA|0,fA=C>>>0>B>>>0?A+1|0:A,A=DA(W,T,470296,0),g=w,B=(C=A)+(A=DA(z,V,666643,0))|0,C=w+g|0,g=TA+(A>>>0>B>>>0?C+1|0:C)|0,kA=A=B+OA|0,i=g=A>>>0>>0?g+1|0:g,g=DA(W,T,666643,0),A=w+VA|0,A=g>>>0>(C=g+LA|0)>>>0?A+1|0:A,wA=C-(g=-2097152&qA)|0,SA=A-((g>>>0>C>>>0)+gI|0)|0,g=DA(J,0,N,0),A=w,C=g,g=DA(Y,0,YA,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(b,0,d,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,C=DA(_,0,R,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(K,0,P,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(U,0,L,0),g=w+C|0,tA=B=A+B|0,B=A>>>0>B>>>0?g+1|0:g,g=(A=a[n+14|0])>>>24|0,eA=A<<8|(sA=a[n+10|0]|a[n+11|0]<<8|a[n+12|0]<<16|a[n+13|0]<<24)>>>24,g=2097151&((1&(g|=C=(A=a[n+15|0])>>>16|0))<<31|(A=eA|A<<16)>>>1),A=B,tA=C=g+tA|0,B=g>>>0>C>>>0?A+1|0:A,eA=sA>>>4&2097151,A=DA(N,0,YA,0),g=w,C=A,A=DA(Y,0,P,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=DA(b,0,R,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,sA=(A=C)+(C=DA(_,0,L,0))|0,A=w+g|0,A=C>>>0>sA>>>0?A+1|0:A,g=DA(K,0,d,0),C=w+A|0,A=g>>>0>(sA=g+sA|0)>>>0?C+1|0:C,hA=A=(qA=eA+sA|0)>>>0>>0?A+1|0:A,aA=A=A-((qA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+B|0,HA=g=(A=(2097151&A)<<11|(GA=qA- -1048576|0)>>>21)>>>0>(TA=A+tA|0)>>>0?g+1|0:g,nA=A=g-((TA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(yA=TA- -1048576|0)>>>21,A=(A>>>21|0)+SA|0,sA=A=g>>>0>(wA=g+wA|0)>>>0?A+1|0:A,rA=A=A-((wA>>>0<4293918720)-1|0)|0,g=(C=A>>21)+i|0,gI=g=(g=(A=(2097151&A)<<11|(tA=wA- -1048576|0)>>>21)>>>0>(B=A+kA|0)>>>0?g+1|0:g)-(((C=-2097152&xA)>>>0>B>>>0)+CI|0)|0,xA=A=B-C|0,eA=A- -1048576|0,CI=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+fA|0,g=((A=(2097151&A)<<11|eA>>>21)>>>0>(B=A+II|0)>>>0?C+1|0:C)+cA|0,LA=g=(g=(A=B)>>>0>(B=B+pA|0)>>>0?g+1|0:g)-(((C=-2097152&jA)>>>0>B>>>0)+BI|0)|0,cA=A=B-C|0,i=A- -1048576|0,VA=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+iI|0,jA=A=(C=(A=(2097151&A)<<11|i>>>21)>>>0>(fA=A+QI|0)>>>0?C+1|0:C)-((fA>>>0<4293918720)-1|0)|0,kA=mA- -1048576|0,SA=JA-((mA>>>0<4293918720)-1|0)|0,pA=(2097151&A)<<11|(B=fA- -1048576|0)>>>21,A=(A>>21)+JA|0,BI=(mA=pA+mA|0)-(g=-2097152&kA)|0,QI=(pA>>>0>mA>>>0?A+1|0:A)-((g>>>0>mA>>>0)+SA|0)|0,iI=fA-(A=-2097152&B)|0,II=C-((A>>>0>fA>>>0)+jA|0)|0,OA=cA-(A=-2097152&i)|0,mA=LA-((A>>>0>cA>>>0)+VA|0)|0,A=DA(dA,ZA,-997805,-1),g=w,C=A,A=DA(AA,$,654183,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(AI,CA,136657,0))|0,A=w+g|0,g=gI+(C>>>0>B>>>0?A+1|0:A)|0,LA=(C=B+xA|0)-(A=-2097152&eA)|0,VA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+CI|0)|0,xA=KA-(A=-2097152&lA)|0,JA=UA-((A>>>0>KA>>>0)+oA|0)|0,g=DA(gA,IA,-997805,-1),A=w,C=g,g=DA(x,Z,654183,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(O,q,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(X,j,-683901,-1),C=w+g|0,g=bA+(A>>>0>(B=A+B|0)>>>0?C+1|0:C)|0,lA=(C=B+XA|0)-(A=-2097152&MA)|0,UA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+iA|0)|0,g=DA(gA,IA,654183,0),A=w,C=g,g=DA(x,Z,470296,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(O,q,-997805,-1))+C|0,C=w+A|0,g=PA+(g>>>0>B>>>0?C+1|0:C)|0,g=(A=B+WA|0)>>>0>>0?g+1|0:g,C=A,A=DA(X,j,136657,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(z,V,-683901,-1))|0,A=w+g|0,eA=B-(g=-2097152&_A)|0,i=(C>>>0>B>>>0?A+1|0:A)-((g>>>0>B>>>0)+BA|0)|0,B=(a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24)>>>7|0,A=DA(e,0,N,0),g=w,fA=(C=A)+(A=DA(c,0,Y,0))|0,C=w+g|0,C=A>>>0>fA>>>0?C+1|0:C,A=DA(h,0,b,0),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(l,S,_,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,C=DA(k,0,K,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,C=DA(H,0,J,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(G,0,U,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,A=DA(F,FA,YA,0),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(y,0,d,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,C=DA(t,0,P,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,C=DA(s,0,L,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(p,0,R,0),C=w+A|0,g=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,bA=(C=(2097151&RA)<<11|zA>>>21)+(A=B+fA|0)|0,A=(RA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,pA=A=C>>>0>bA>>>0?A+1|0:A,jA=g=A-((bA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,cA=C=(g=(2097151&g)<<11|(FA=bA- -1048576|0)>>>21)>>>0>(MA=g+eA|0)>>>0?C+1|0:C,zA=g=C-((MA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+UA|0,eA=A=(g=(2097151&g)<<11|(fA=MA- -1048576|0)>>>21)>>>0>(lA=g+lA|0)>>>0?A+1|0:A,_A=g=A-((lA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+JA|0,RA=C=(g=(B=(2097151&g)<<11|(i=lA- -1048576|0)>>>21)+xA|0)>>>0>>0?C+1|0:C,JA=g,A=DA(g,C,-683901,-1),g=w+VA|0,UA=C=A+LA|0,B=A>>>0>C>>>0?g+1|0:g,g=DA(AA,$,470296,0),A=w+sA|0,A=g>>>0>(wA=g+wA|0)>>>0?A+1|0:A,g=DA(dA,ZA,654183,0),A=w+(A-(((C=-2097152&tA)>>>0>wA>>>0)+rA|0)|0)|0,A=g>>>0>(tA=g+(wA-C|0)|0)>>>0?A+1|0:A,C=DA(AI,CA,-997805,-1),g=w+A|0,g=C>>>0>(tA=C+tA|0)>>>0?g+1|0:g,PA=C=lA-(A=-2097152&i)|0,YA=eA=eA-((A>>>0>lA>>>0)+_A|0)|0,tA=(i=DA(JA,RA,136657,0))+tA|0,A=w+g|0,C=DA(C,eA,-683901,-1),g=w+(i>>>0>tA>>>0?A+1|0:A)|0,eA=g=C>>>0>(sA=C+tA|0)>>>0?g+1|0:g,_A=A=g-((sA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(i=sA- -1048576|0)>>>21,A=(A>>21)+B|0,lA=g=(A=g>>>0>(tA=g+UA|0)>>>0?A+1|0:A)-((tA>>>0<4293918720)-1|0)|0,wA=(2097151&g)<<11|(B=tA- -1048576|0)>>>21,g=(g>>21)+mA|0,OA=UA=wA+OA|0,UA=wA>>>0>UA>>>0?g+1|0:g,mA=tA-(g=-2097152&B)|0,WA=A-((g>>>0>tA>>>0)+lA|0)|0,LA=sA-(A=-2097152&i)|0,VA=eA-((A>>>0>sA>>>0)+_A|0)|0,A=DA(AA,$,666643,0),C=HA+w|0,C=(i=A+TA|0)>>>0>>0?C+1|0:C,B=(A=DA(dA,ZA,470296,0))+(i-(g=-2097152&yA)|0)|0,g=w+(C-((g>>>0>i>>>0)+nA|0)|0)|0,g=A>>>0>B>>>0?g+1|0:g,C=DA(AI,CA,654183,0),A=w+g|0,tA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=MA-(A=-2097152&fA)|0,eA=cA-((A>>>0>MA>>>0)+zA|0)|0,A=DA(gA,IA,470296,0),g=w,C=A,A=DA(x,Z,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=DA(O,q,654183,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(X,j,-997805,-1))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(z,V,136657,0),A=w+A|0,A=g>>>0>(C=g+fA|0)>>>0?A+1|0:A,fA=(g=DA(W,T,-683901,-1))+C|0,C=w+A|0,g=pA+(g>>>0>fA>>>0?C+1|0:C)|0,MA=(C=(2097151&vA)<<11|NA>>>21)+((fA=fA+bA|0)-(A=-2097152&FA)|0)|0,A=((g=fA>>>0>>0?g+1|0:g)-((A>>>0>fA>>>0)+jA|0)|0)+(vA>>21)|0,lA=A=C>>>0>MA>>>0?A+1|0:A,xA=A=A-((MA>>>0<4293918720)-1|0)|0,g=i,i=(2097151&A)<<11|(yA=MA- -1048576|0)>>>21,A=(A>>21)+eA|0,_A=A=(C=g+i|0)>>>0>>0?A+1|0:A,bA=C,A=DA(C,A,-683901,-1),g=w+B|0,g=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(JA,RA,-997805,-1))|0,A=w+g|0,A=C>>>0>B>>>0?A+1|0:A,g=DA(PA,YA,136657,0),C=w+A|0,NA=B=g+B|0,cA=g>>>0>B>>>0?C+1|0:C,tA=qA-(A=-2097152&GA)|0,pA=hA-((A>>>0>qA>>>0)+aA|0)|0,g=DA(N,0,P,0),A=w,C=g,g=DA(Y,0,d,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=DA(b,0,L,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,B=(g=DA(K,0,R,0))+C|0,C=w+A|0,g=g>>>0>B>>>0?C+1|0:C,FA=C=(A=(a[n+7|0]|a[n+8|0]<<8|a[n+9|0]<<16|a[n+10|0]<<24)>>>7&2097151)+B|0,fA=A>>>0>C>>>0?g+1|0:g,A=DA(N,0,d,0),g=w,C=A,A=DA(Y,0,R,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(K,0,L,0))|0,A=w+g|0,eA=B,B=C>>>0>B>>>0?A+1|0:A,A=(g=a[n+6|0])>>>24|0,i=g<<8|(jA=a[n+2|0]|a[n+3|0]<<8|a[n+4|0]<<16|a[n+5|0]<<24)>>>24,C=A,g=(A=a[n+7|0])>>>16|0,g|=C,C=B,i=C=(A=2097151&((3&g)<<30|(A=A<<16|i)>>>2))>>>0>(eA=A+eA|0)>>>0?C+1|0:C,XA=A=C-((eA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(HA=eA- -1048576|0)>>>21,A=(A>>>21|0)+fA|0,wA=A=C>>>0>(hA=C+FA|0)>>>0?A+1|0:A,zA=A=A-((hA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+pA|0,C=(A=(2097151&A)<<11|(sA=hA- -1048576|0)>>>21)>>>0>(B=A+tA|0)>>>0?C+1|0:C,g=DA(dA,ZA,666643,0),A=w+C|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,g=DA(AI,CA,470296,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(bA,_A,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(JA,RA,654183,0),g=w+g|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,tA=(A=DA(PA,YA,-997805,-1))+C|0,C=w+g|0,pA=C=A>>>0>tA>>>0?C+1|0:C,vA=A=C-((tA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(FA=tA- -1048576|0)>>>21,A=(A>>21)+cA|0,NA=C=(A=C>>>0>(B=C+NA|0)>>>0?A+1|0:A)-((B>>>0<4293918720)-1|0)|0,fA=(2097151&C)<<11|(cA=B- -1048576|0)>>>21,C=(C>>21)+VA|0,KA=GA=fA+LA|0,GA=fA>>>0>GA>>>0?C+1|0:C,fA=B,g=A,B=(MA-(A=-2097152&yA)|0)+(yA=(2097151&SA)<<11|kA>>>21)|0,A=(lA-((A>>>0>MA>>>0)+xA|0)|0)+(SA>>21)|0,kA=A=B>>>0>>0?A+1|0:A,LA=A=A-((B>>>0<4293918720)-1|0)|0,MA=C=A>>21,A=DA(dA=(2097151&A)<<11|(SA=B- -1048576|0)>>>21,C,-683901,-1),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,VA=C-(A=-2097152&cA)|0,qA=g-((A>>>0>C>>>0)+NA|0)|0,g=DA(dA,MA,136657,0),A=w+pA|0,A=g>>>0>(C=g+tA|0)>>>0?A+1|0:A,TA=C-(g=-2097152&FA)|0,vA=A-((g>>>0>C>>>0)+vA|0)|0,g=DA(AI,CA,666643,0),A=w+(wA-(((C=-2097152&sA)>>>0>hA>>>0)+zA|0)|0)|0,A=g>>>0>(fA=g+(hA-C|0)|0)>>>0?A+1|0:A,C=DA(bA,_A,-997805,-1),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,A=DA(JA,RA,470296,0),C=w+g|0,C=A>>>0>(fA=A+fA|0)>>>0?C+1|0:C,g=DA(PA,YA,654183,0),A=w+C|0,NA=fA=g+fA|0,pA=g>>>0>fA>>>0?A+1|0:A,C=jA>>>5&2097151,A=DA(N,0,R,0),g=w,cA=A,A=DA(Y,0,L,0),g=w+g|0,A=A>>>0>(fA=cA+A|0)>>>0?g+1|0:g,cA=g=C+fA|0,C=A=g>>>0>>0?A+1|0:A,hA=(g=DA(N,0,L,0))+(A=(A=a[n+2|0])<<16&2031616|a[0|n]|a[n+1|0]<<8)|0,g=w,yA=g=A>>>0>hA>>>0?g+1|0:g,xA=g=g-((hA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+C|0,sA=A=(g=(2097151&g)<<11|(wA=hA- -1048576|0)>>>21)>>>0>(lA=g+cA|0)>>>0?A+1|0:A,jA=g=A-((lA>>>0<4293918720)-1|0)|0,C=(2097151&g)<<11|(tA=lA- -1048576|0)>>>21,g=(g>>>21|0)+i|0,g=C>>>0>(fA=C+eA|0)>>>0?g+1|0:g,C=DA(bA,_A,654183,0),A=w+(g-(((i=-2097152&HA)>>>0>fA>>>0)+XA|0)|0)|0,A=C>>>0>(eA=C+(fA-i|0)|0)>>>0?A+1|0:A,g=DA(JA,RA,666643,0),A=w+A|0,A=g>>>0>(C=g+eA|0)>>>0?A+1|0:A,FA=(g=C)+(C=DA(PA,YA,470296,0))|0,g=w+A|0,cA=g=C>>>0>FA>>>0?g+1|0:g,zA=g=g-((FA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+pA|0,HA=g=(C=(g=(2097151&g)<<11|(fA=FA- -1048576|0)>>>21)>>>0>(eA=g+NA|0)>>>0?C+1|0:C)-((eA>>>0<4293918720)-1|0)|0,pA=(2097151&g)<<11|(i=eA- -1048576|0)>>>21,g=(g>>21)+vA|0,RA=JA=pA+TA|0,pA=pA>>>0>JA>>>0?g+1|0:g,A=DA(dA,MA,-997805,-1),g=w+C|0,g=A>>>0>(eA=A+eA|0)>>>0?g+1|0:g,vA=eA-(A=-2097152&i)|0,NA=g-((A>>>0>eA>>>0)+HA|0)|0,g=DA(dA,MA,654183,0),A=w+cA|0,A=g>>>0>(C=g+FA|0)>>>0?A+1|0:A,JA=C-(g=-2097152&fA)|0,HA=A-((g>>>0>C>>>0)+zA|0)|0,A=DA(bA,_A,470296,0),C=w+(sA-(((g=-2097152&tA)>>>0>lA>>>0)+jA|0)|0)|0,C=A>>>0>(i=A+(lA-g|0)|0)>>>0?C+1|0:C,g=DA(PA,YA,666643,0),A=w+C|0,eA=i=g+i|0,C=g>>>0>i>>>0?A+1|0:A,g=DA(bA,_A,666643,0),A=w+(yA-((4095&xA)+((i=-2097152&wA)>>>0>hA>>>0)|0)|0)|0,FA=A=g>>>0>(tA=g+(hA-i|0)|0)>>>0?A+1|0:A,yA=A=A-((tA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(cA=tA- -1048576|0)>>>21,A=(A>>21)+C|0,C=A=i>>>0>(fA=i+eA|0)>>>0?A+1|0:A,wA=A=A-((fA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(eA=fA- -1048576|0)>>>21,A=(A>>21)+HA|0,i=i>>>0>(sA=i+JA|0)>>>0?A+1|0:A,A=DA(dA,MA,470296,0),C=w+C|0,C=A>>>0>(g=A+fA|0)>>>0?C+1|0:C,fA=g-(A=-2097152&eA)|0,eA=C-((A>>>0>g>>>0)+wA|0)|0,g=DA(dA,MA,666643,0),A=w+(FA-(((C=-2097152&cA)>>>0>tA>>>0)+yA|0)|0)|0,g=(C=(A=g>>>0>(lA=g+(tA-C|0)|0)>>>0?A+1|0:A)>>21)+eA|0,A=(A=(g=(A=(2097151&A)<<11|lA>>>21)>>>0>(HA=A+fA|0)>>>0?g+1|0:g)>>21)+i|0,g=(g=(A=(g=(2097151&g)<<11|HA>>>21)>>>0>(yA=g+sA|0)>>>0?A+1|0:A)>>21)+NA|0,C=(A=(g=(A=(2097151&A)<<11|yA>>>21)>>>0>(i=A+vA|0)>>>0?g+1|0:g)>>21)+pA|0,A=(g=(C=(g=(2097151&g)<<11|i>>>21)>>>0>(wA=g+RA|0)>>>0?C+1|0:C)>>21)+qA|0,g=(C=(A=(C=(2097151&C)<<11|wA>>>21)>>>0>(sA=C+VA|0)>>>0?A+1|0:A)>>21)+GA|0,A=(A=(g=(A=(2097151&A)<<11|sA>>>21)>>>0>(tA=A+KA|0)>>>0?g+1|0:g)>>21)+WA|0,g=(g=(A=(g=(2097151&g)<<11|tA>>>21)>>>0>(pA=g+mA|0)>>>0?A+1|0:A)>>21)+UA|0,C=(A=(g=(A=(2097151&A)<<11|pA>>>21)>>>0>(FA=A+OA|0)>>>0?g+1|0:g)>>21)+II|0,A=(g=(C=(g=(2097151&g)<<11|FA>>>21)>>>0>(cA=g+iI|0)>>>0?C+1|0:C)>>21)+QI|0,eA=(SA=B-(g=-2097152&SA)|0)+((2097151&(A=(C=(2097151&C)<<11|cA>>>21)>>>0>(fA=C+BI|0)>>>0?A+1|0:A))<<11|fA>>>21)|0,A=(kA-((g>>>0>B>>>0)+LA|0)|0)+(A>>21)|0,SA=g=(A=eA>>>0>>0?A+1|0:A)>>21,lA=(A=DA(GA=(2097151&A)<<11|eA>>>21,g,666643,0))+(g=2097151&lA)|0,A=w,B=A=g>>>0>lA>>>0?A+1|0:A,E[0|Q]=lA,E[Q+1|0]=(255&A)<<24|lA>>>8,A=2097151&HA,g=DA(GA,SA,470296,0)+A|0,C=w,A=(B>>21)+(A>>>0>g>>>0?C+1|0:C)|0,A=(kA=(2097151&B)<<11|lA>>>21)>>>0>(HA=kA+g|0)>>>0?A+1|0:A,E[Q+4|0]=(2047&A)<<21|HA>>>11,g=A,C=HA,E[Q+3|0]=(7&A)<<29|C>>>3,E[Q+2|0]=31&((65535&B)<<16|lA>>>16)|C<<5,B=2097151&yA,yA=DA(GA,SA,654183,0)+B|0,A=w,HA=(2097151&g)<<11|C>>>21,g=(g>>21)+(B=B>>>0>yA>>>0?A+1|0:A)|0,A=g=(yA=HA+yA|0)>>>0>>0?g+1|0:g,E[Q+6|0]=(63&A)<<26|yA>>>6,B=yA,yA=0,E[Q+5|0]=yA<<13|(1572864&C)>>>19|B<<2,C=2097151&i,i=DA(GA,SA,-997805,-1)+C|0,g=w,g=C>>>0>i>>>0?g+1|0:g,yA=(2097151&(C=A))<<11|B>>>21,C=(A>>=21)+g|0,C=(i=yA+i|0)>>>0>>0?C+1|0:C,E[Q+9|0]=(511&C)<<23|i>>>9,E[Q+8|0]=(1&C)<<31|i>>>1,g=0,E[Q+7|0]=g<<18|(2080768&B)>>>14|i<<7,g=2097151&wA,B=DA(GA,SA,136657,0)+g|0,A=w,A=g>>>0>B>>>0?A+1|0:A,wA=(2097151&(g=C))<<11|i>>>21,g=A+(C=g>>21)|0,g=(B=wA+B|0)>>>0>>0?g+1|0:g,E[Q+12|0]=(4095&g)<<20|B>>>12,C=B,E[Q+11|0]=(15&g)<<28|C>>>4,B=0,E[Q+10|0]=B<<15|(1966080&i)>>>17|C<<4,B=2097151&sA,i=DA(GA,SA,-683901,-1)+B|0,A=w,A=B>>>0>i>>>0?A+1|0:A,B=g,g=A+(g>>=21)|0,g=(B=(sA=i)+(i=(2097151&B)<<11|C>>>21)|0)>>>0>>0?g+1|0:g,E[Q+14|0]=(127&g)<<25|B>>>7,i=0,E[Q+13|0]=i<<12|(1048576&C)>>>20|B<<1,A=g>>21,C=(g=(2097151&g)<<11|B>>>21)>>>0>(i=g+(2097151&tA)|0)>>>0?A+1|0:A,E[Q+17|0]=(1023&C)<<22|i>>>10,E[Q+16|0]=(3&C)<<30|i>>>2,g=0,E[Q+15|0]=g<<17|(2064384&B)>>>15|i<<6,A=C>>21,A=(g=(2097151&C)<<11|i>>>21)>>>0>(C=g+(2097151&pA)|0)>>>0?A+1|0:A,E[Q+20|0]=(8191&A)<<19|C>>>13,E[Q+19|0]=(31&A)<<27|C>>>5,B=(g=2097151&FA)+(FA=(2097151&A)<<11|C>>>21)|0,g=A>>21,g=B>>>0>>0?g+1|0:g,FA=B,E[Q+21|0]=B,pA=0,E[Q+18|0]=pA<<14|(1835008&i)>>>18|C<<3,E[Q+22|0]=(255&g)<<24|B>>>8,C=g>>21,C=(B=(i=(2097151&g)<<11|B>>>21)+(2097151&cA)|0)>>>0>>0?C+1|0:C,E[Q+25|0]=(2047&C)<<21|B>>>11,E[Q+24|0]=(7&C)<<29|B>>>3,E[Q+23|0]=31&((65535&g)<<16|FA>>>16)|B<<5,A=C>>21,A=(g=(2097151&C)<<11|B>>>21)>>>0>(C=g+(2097151&fA)|0)>>>0?A+1|0:A,E[Q+27|0]=(63&A)<<26|C>>>6,i=0,E[Q+26|0]=i<<13|(1572864&B)>>>19|C<<2,g=A>>21,g=(A=(B=(2097151&A)<<11|C>>>21)+(2097151&eA)|0)>>>0>>0?g+1|0:g,E[Q+31|0]=(131071&g)<<15|A>>>17,E[Q+30|0]=(511&g)<<23|A>>>9,E[Q+29|0]=(1&g)<<31|A>>>1,B=0,E[Q+28|0]=B<<18|(2080768&C)>>>14|A<<7,$A(r,64),$A(n,64),I&&(o[I>>2]=64,o[I+4>>2]=0),D=f+560|0,0}function p(A,I,g,C){for(var B=0,Q=0,i=0,E=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0;i=(B=f<<3)+g|0,Q=a[0|(B=I+B|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,H=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,n=Q<<24|(65280&Q)<<8,e=(r=16711680&Q)<<24,r=r>>>8|0,B=(t=-16777216&Q)>>>24|0,o[i>>2]=e|t<<8|-16777216&((255&H)<<24|Q>>>8)|16711680&((16777215&H)<<8|Q>>>24)|H>>>8&65280|H>>>24,Q=B|r|n,B=0,o[i+4>>2]=Q|B|B,16!=(0|(f=f+1|0)););for(I=o[A+4>>2],o[C>>2]=o[A>>2],o[C+4>>2]=I,I=o[A+60>>2],o[C+56>>2]=o[A+56>>2],o[C+60>>2]=I,I=o[A+52>>2],o[C+48>>2]=o[A+48>>2],o[C+52>>2]=I,I=o[A+44>>2],o[C+40>>2]=o[A+40>>2],o[C+44>>2]=I,I=o[A+36>>2],o[C+32>>2]=o[A+32>>2],o[C+36>>2]=I,I=o[A+28>>2],o[C+24>>2]=o[A+24>>2],o[C+28>>2]=I,I=o[A+20>>2],o[C+16>>2]=o[A+16>>2],o[C+20>>2]=I,I=o[A+12>>2],o[C+8>>2]=o[A+8>>2],o[C+12>>2]=I;t=o[C+56>>2],n=o[C+60>>2],B=o[(I=H=(M=x<<3)+g|0)>>2],I=o[I+4>>2],k=Q=o[C+36>>2],Q=nA(f=o[C+32>>2],Q,50),i=w,Q=nA(f,k,46)^Q,i^=w,Q=nA(f,k,23)^Q,I=(w^i)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(i=o[(Q=M+34e3|0)>>2])+B|0,I=o[Q+4>>2]+I|0,I=B>>>0>>0?I+1|0:I,Q=(e=((i=o[C+48>>2])^(r=o[C+40>>2]))&f^i)+B|0,B=(((u=o[C+52>>2])^(c=o[C+44>>2]))&k^u)+I|0,I=(Q>>>0>>0?B+1|0:B)+n|0,I=(B=Q)>>>0>(Q=Q+t|0)>>>0?I+1|0:I,t=(n=o[C+24>>2])+Q|0,B=o[C+28>>2]+I|0,y=B=n>>>0>t>>>0?B+1|0:B,o[C+24>>2]=t,o[C+28>>2]=B,l=B=o[C+4>>2],B=nA(h=o[C>>2],B,36),n=w,B=nA(h,l,30)^B,e=w^n,n=Q+(nA(h,l,25)^B)|0,B=I+(w^e)|0,B=Q>>>0>n>>>0?B+1|0:B,e=(I=n)+(n=h&((Q=o[C+16>>2])|(s=o[C+8>>2]))|Q&s)|0,I=(I=B)+(l&((B=o[C+20>>2])|(F=o[C+12>>2]))|B&F)|0,n=I=n>>>0>e>>>0?I+1|0:I,o[C+56>>2]=e,o[C+60>>2]=I,E=Q,D=B,S=o[(I=P=(p=8|M)+g|0)>>2],K=o[I+4>>2],B=((c^k)&y^c)+u|0,B=(I=(Q=(r^f)&t^r)+i|0)>>>0>>0?B+1|0:B,Q=nA(t,y,50),i=w,Q=nA(t,y,46)^Q,i^=w,Q=(u=nA(t,y,23)^Q)+I|0,I=(w^i)+B|0,I=(Q>>>0>>0?I+1|0:I)+K|0,I=(B=Q+S|0)>>>0>>0?I+1|0:I,Q=(Q=B)+(i=o[(B=p+34e3|0)>>2])|0,B=o[B+4>>2]+I|0,B=(I=Q>>>0>>0?B+1|0:B)+D|0,p=B=(E=Q+E|0)>>>0>>0?B+1|0:B,o[C+16>>2]=E,o[C+20>>2]=B,I=I+((F|l)&n|F&l)|0,I=(B=Q+((h|s)&e|h&s)|0)>>>0>>0?I+1|0:I,Q=nA(e,n,36),i=w,Q=nA(e,n,30)^Q,D=w^i,i=B,B=nA(e,n,25)^Q,I=(w^D)+I|0,D=I=B>>>0>(i=i+B|0)>>>0?I+1|0:I,o[C+48>>2]=i,o[C+52>>2]=I,I=(I=r)+(r=o[(B=K=(Q=16|M)+g|0)>>2])|0,B=o[B+4>>2]+c|0,B=I>>>0>>0?B+1|0:B,Q=(c=I)+(r=o[(I=Q+34e3|0)>>2])|0,I=o[I+4>>2]+B|0,I=((y^k)&p^k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=(t^f)&E^f)|0)>>>0>>0?I+1|0:I,Q=nA(E,p,50),r=w,Q=nA(E,p,46)^Q,r^=w,Q=(c=nA(E,p,23)^Q)+B|0,B=(w^r)+I|0,u=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(i,D,36),r=w,B=nA(i,D,30)^B,c=w^r,S=nA(i,D,25)^B,B=((n|l)&D|n&l)+(w^c)|0,I=((r=S+((e|h)&i|e&h)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(B=r)>>>0>(r=Q+r|0)>>>0?I+1|0:I,o[C+40>>2]=r,o[C+44>>2]=I,B=u+F|0,F=B=(s=Q+s|0)>>>0>>0?B+1|0:B,o[C+8>>2]=s,o[C+12>>2]=B,B=(B=f)+(f=o[(I=N=(Q=24|M)+g|0)>>2])|0,I=o[I+4>>2]+k|0,I=B>>>0>>0?I+1|0:I,Q=(k=B)+(f=o[(B=Q+34e3|0)>>2])|0,B=o[B+4>>2]+I|0,B=(y^(y^p)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=t^(t^E)&s)|0)>>>0>>0?B+1|0:B,Q=nA(s,F,50),f=w,Q=nA(s,F,46)^Q,f^=w,Q=(u=nA(s,F,23)^Q)+I|0,I=(w^f)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(r,c,36),f=w,B=nA(r,c,30)^B,u=w^f,k=nA(r,c,25)^B,B=((n|D)&c|n&D)+(w^u)|0,B=((f=k+((i|e)&r|i&e)|0)>>>0>>0?B+1|0:B)+I|0,u=B=(k=f)>>>0>(f=Q+f|0)>>>0?B+1|0:B,o[C+32>>2]=f,o[C+36>>2]=B,I=I+l|0,l=I=(h=Q+h|0)>>>0>>0?I+1|0:I,o[C>>2]=h,o[C+4>>2]=I,Q=o[(B=v=(I=32|M)+g|0)>>2],B=y+o[B+4>>2]|0,B=(Q=Q+t|0)>>>0>>0?B+1|0:B,Q=(t=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(p^(p^F)&l)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=E^(E^s)&h)|0)>>>0>>0?I+1|0:I,Q=nA(h,l,50),t=w,Q=nA(h,l,46)^Q,t^=w,Q=(y=nA(h,l,23)^Q)+B|0,B=(w^t)+I|0,k=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(f,u,36),t=w,B=nA(f,u,30)^B,y=w^t,S=nA(f,u,25)^B,B=((c|D)&u|c&D)+(w^y)|0,I=((t=S+((i|r)&f|i&r)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(y=Q+t|0)>>>0>>0?I+1|0:I,o[C+24>>2]=y,o[C+28>>2]=I,B=n+k|0,k=B=(n=Q+e|0)>>>0>>0?B+1|0:B,o[C+56>>2]=n,o[C+60>>2]=B,Q=o[(I=b=(B=40|M)+g|0)>>2],I=p+o[I+4>>2]|0,I=(Q=Q+E|0)>>>0>>0?I+1|0:I,Q=(e=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(F^(F^l)&k)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=s^(h^s)&n)|0)>>>0>>0?B+1|0:B,Q=nA(n,k,50),e=w,Q=nA(n,k,46)^Q,e^=w,Q=(E=nA(n,k,23)^Q)+I|0,I=(w^e)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(y,t,36),e=w,B=nA(y,t,30)^B,E=w^e,p=nA(y,t,25)^B,B=((c|u)&t|c&u)+(w^E)|0,B=((e=p+((r|f)&y|r&f)|0)>>>0

>>0?B+1|0:B)+I|0,e=B=(E=Q+e|0)>>>0>>0?B+1|0:B,o[C+16>>2]=E,o[C+20>>2]=B,I=I+D|0,p=I=(D=Q+i|0)>>>0>>0?I+1|0:I,o[C+48>>2]=D,o[C+52>>2]=I,Q=o[(B=_=(I=48|M)+g|0)>>2],B=F+o[B+4>>2]|0,B=(Q=Q+s|0)>>>0>>0?B+1|0:B,Q=(i=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(l^(k^l)&p)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=h^(n^h)&D)|0)>>>0>>0?I+1|0:I,Q=nA(D,p,50),i=w,Q=nA(D,p,46)^Q,i^=w,Q=(s=nA(D,p,23)^Q)+B|0,B=(w^i)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(E,e,36),i=w,B=nA(E,e,30)^B,s=w^i,S=nA(E,e,25)^B,B=((t|u)&e|t&u)+(w^s)|0,I=((i=S+((f|y)&E|f&y)|0)>>>0>>0?B+1|0:B)+I|0,s=I=(B=i)>>>0>(i=Q+i|0)>>>0?I+1|0:I,o[C+8>>2]=i,o[C+12>>2]=I,B=c+F|0,F=B=(S=Q+r|0)>>>0>>0?B+1|0:B,o[C+40>>2]=S,o[C+44>>2]=B,Q=o[(I=Y=(B=56|M)+g|0)>>2],I=l+o[I+4>>2]|0,I=(Q=Q+h|0)>>>0>>0?I+1|0:I,Q=(r=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(k^(p^k)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=n^(n^D)&S)|0)>>>0>>0?B+1|0:B,Q=nA(S,F,50),r=w,Q=nA(S,F,46)^Q,r^=w,Q=(c=nA(S,F,23)^Q)+I|0,I=(w^r)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(i,s,36),r=w,B=nA(i,s,30)^B,c=w^r,h=nA(i,s,25)^B,B=((t|e)&s|t&e)+(w^c)|0,B=((r=h+((E|y)&i|E&y)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(c=r)>>>0>(r=Q+r|0)>>>0?B+1|0:B,o[C>>2]=r,o[C+4>>2]=B,I=I+u|0,l=I=(B=f)>>>0>(f=Q+f|0)>>>0?I+1|0:I,o[C+32>>2]=f,o[C+36>>2]=I,Q=o[(B=m=(I=64|M)+g|0)>>2],B=k+o[B+4>>2]|0,B=(Q=Q+n|0)>>>0>>0?B+1|0:B,Q=(n=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(p^(p^F)&l)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=D^(D^S)&f)|0)>>>0>>0?I+1|0:I,Q=nA(f,l,50),n=w,Q=nA(f,l,46)^Q,n^=w,Q=(u=nA(f,l,23)^Q)+B|0,B=(w^n)+I|0,h=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(r,c,36),n=w,B=nA(r,c,30)^B,u=w^n,k=nA(r,c,25)^B,B=((e|s)&c|e&s)+(w^u)|0,I=((n=k+((i|E)&r|i&E)|0)>>>0>>0?B+1|0:B)+I|0,n=I=(u=Q+n|0)>>>0>>0?I+1|0:I,o[C+56>>2]=u,o[C+60>>2]=I,B=t+h|0,k=B=(t=Q+y|0)>>>0>>0?B+1|0:B,o[C+24>>2]=t,o[C+28>>2]=B,Q=o[(I=G=(B=72|M)+g|0)>>2],I=p+o[I+4>>2]|0,I=(Q=Q+D|0)>>>0>>0?I+1|0:I,Q=(D=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(F^(F^l)&k)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=S^(f^S)&t)|0)>>>0>>0?B+1|0:B,Q=nA(t,k,50),D=w,Q=nA(t,k,46)^Q,D^=w,Q=(h=nA(t,k,23)^Q)+I|0,I=(w^D)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(u,n,36),D=w,B=nA(u,n,30)^B,h=w^D,y=nA(u,n,25)^B,B=((c|s)&n|c&s)+(w^h)|0,B=((D=y+((i|r)&u|i&r)|0)>>>0>>0?B+1|0:B)+I|0,D=B=(h=Q+D|0)>>>0>>0?B+1|0:B,o[C+48>>2]=h,o[C+52>>2]=B,I=I+e|0,p=I=(e=Q+E|0)>>>0>>0?I+1|0:I,o[C+16>>2]=e,o[C+20>>2]=I,I=(E=o[(B=J=(Q=80|M)+g|0)>>2])+S|0,B=o[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,Q=(y=I)+(E=o[(I=Q+34e3|0)>>2])|0,I=o[I+4>>2]+B|0,I=(l^(k^l)&p)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=f^(t^f)&e)|0)>>>0>>0?I+1|0:I,Q=nA(e,p,50),E=w,Q=nA(e,p,46)^Q,E^=w,Q=(y=nA(e,p,23)^Q)+B|0,B=(w^E)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(h,D,36),E=w,B=nA(h,D,30)^B,y=w^E,S=nA(h,D,25)^B,B=((n|c)&D|n&c)+(w^y)|0,I=((E=S+((r|u)&h|r&u)|0)>>>0>>0?B+1|0:B)+I|0,E=I=(y=Q+E|0)>>>0>>0?I+1|0:I,o[C+40>>2]=y,o[C+44>>2]=I,B=s+F|0,F=B=(s=Q+i|0)>>>0>>0?B+1|0:B,o[C+8>>2]=s,o[C+12>>2]=B,B=34e3+(I=88|M)|0,i=o[(I=U=I+g|0)>>2],Q=o[B>>2]+i|0,I=o[B+4>>2]+o[I+4>>2]|0,B=l+(Q>>>0>>0?I+1|0:I)|0,B=(k^(p^k)&F)+(B=(I=Q+f|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=t^(t^e)&s)+I|0)>>>0>>0?B+1|0:B,Q=nA(s,F,50),i=w,Q=nA(s,F,46)^Q,i^=w,Q=(f=nA(s,F,23)^Q)+I|0,I=(w^i)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(y,E,36),i=w,B=nA(y,E,30)^B,f=w^i,l=nA(y,E,25)^B,B=((n|D)&E|n&D)+(w^f)|0,B=((i=l+((h|u)&y|h&u)|0)>>>0>>0?B+1|0:B)+I|0,f=B=(f=i)>>>0>(i=Q+i|0)>>>0?B+1|0:B,o[C+32>>2]=i,o[C+36>>2]=B,I=I+c|0,c=I=(B=r)>>>0>(r=Q+r|0)>>>0?I+1|0:I,o[C>>2]=r,o[C+4>>2]=I,B=34e3+(I=96|M)|0,l=o[(I=d=I+g|0)>>2],Q=o[B>>2]+l|0,B=o[B+4>>2]+o[I+4>>2]|0,I=k+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+t|0)>>>0>>0?I+1|0:I,Q=(t=e^(e^s)&r)+B|0,B=(p^(p^F)&c)+I|0,B=Q>>>0>>0?B+1|0:B,I=nA(r,c,50),t=w,I=nA(r,c,46)^I,t^=w,k=Q,Q=nA(r,c,23)^I,B=(w^t)+B|0,k=B=(I=k+Q|0)>>>0>>0?B+1|0:B,Q=I,I=nA(i,f,36),t=w,I=nA(i,f,30)^I,l=w^t,S=nA(i,f,25)^I,I=((E|D)&f|E&D)+(w^l)|0,B=((t=S+((h|y)&i|h&y)|0)>>>0>>0?I+1|0:I)+B|0,t=B=(l=Q+t|0)>>>0>>0?B+1|0:B,o[C+24>>2]=l,o[C+28>>2]=B,B=n+k|0,n=B=(u=Q+u|0)>>>0>>0?B+1|0:B,o[C+56>>2]=u,o[C+60>>2]=B,B=34e3+(I=104|M)|0,k=o[(I=R=I+g|0)>>2],Q=o[B>>2]+k|0,I=o[B+4>>2]+o[I+4>>2]|0,B=p+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=s^(r^s)&u)+I|0,I=(F^(c^F)&n)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(u,n,50),e=w,B=nA(u,n,46)^B,e^=w,p=nA(u,n,23)^B,B=(w^e)+I|0,k=B=(Q=p+Q|0)>>>0

>>0?B+1|0:B,I=B,B=nA(l,t,36),e=w,B=nA(l,t,30)^B,p=w^e,S=nA(l,t,25)^B,B=((E|f)&t|E&f)+(w^p)|0,I=((e=S+((i|y)&l|i&y)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(p=Q+e|0)>>>0>>0?I+1|0:I,o[C+16>>2]=p,o[C+20>>2]=I,I=D+k|0,D=I=(h=Q+h|0)>>>0>>0?I+1|0:I,o[C+48>>2]=h,o[C+52>>2]=I,B=34e3+(I=112|M)|0,k=o[(Q=S=I+g|0)>>2],I=o[B>>2]+k|0,B=o[B+4>>2]+o[Q+4>>2]|0,B=F+(I>>>0>>0?B+1|0:B)|0,B=(c^(n^c)&D)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=r^(r^u)&h)+I|0)>>>0>>0?B+1|0:B,Q=nA(h,D,50),s=w,Q=nA(h,D,46)^Q,s^=w,Q=(F=nA(h,D,23)^Q)+I|0,I=(w^s)+B|0,k=I=Q>>>0>>0?I+1|0:I,B=I,I=nA(p,e,36),s=w,I=nA(p,e,30)^I,F=w^s,L=nA(p,e,25)^I,I=((t|f)&e|t&f)+(w^F)|0,B=((s=L+((i|l)&p|i&l)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(F=Q+s|0)>>>0>>0?B+1|0:B,o[C+8>>2]=F,o[C+12>>2]=B,B=E+k|0,Q=B=(E=Q+y|0)>>>0>>0?B+1|0:B,o[C+40>>2]=E,o[C+44>>2]=B,B=34e3+(I=120|M)|0,M=o[(I=y=I+g|0)>>2],k=o[B>>2]+M|0,B=o[B+4>>2]+o[I+4>>2]|0,I=c+(k>>>0>>0?B+1|0:B)|0,I=(n^(n^D)&Q)+(I=(B=r+k|0)>>>0>>0?I+1|0:I)|0,I=(B=(r=u^(h^u)&E)+B|0)>>>0>>0?I+1|0:I,r=nA(E,Q,50),n=w,r=nA(E,Q,46)^r,n^=w,Q=(r=nA(E,Q,23)^r)+B|0,B=(w^n)+I|0,B=Q>>>0>>0?B+1|0:B,r=Q,n=B,I=B,B=nA(F,s,36),E=w,B=nA(F,s,30)^B,D=w^E,c=nA(F,s,25)^B,B=((t|e)&s|t&e)+(w^D)|0,I=((E=c+((p|l)&F|p&l)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+E|0)>>>0>>0?I+1|0:I,o[C>>2]=Q,o[C+4>>2]=I,B=n+f|0,B=(f=i)>>>0>(i=i+r|0)>>>0?B+1|0:B,o[C+32>>2]=i,o[C+36>>2]=B,64!=(0|x);)n=((x=x+16|0)<<3)+g|0,r=o[H>>2],f=o[H+4>>2],L=o[G>>2],t=I=o[G+4>>2],B=I,Q=I=o[S+4>>2],I=nA(F=o[S>>2],I,45),i=w,E=((63&Q)<<26|F>>>6)^(I=nA(F,Q,3)^I),I=(Q>>>6^(e=w^i))+B|0,B=((i=E+L|0)>>>0>>0?I+1|0:I)+f|0,B=(I=i+r|0)>>>0>>0?B+1|0:B,r=i=o[P+4>>2],i=nA(f=o[P>>2],i,63),e=w,i=((127&r)<<25|f>>>7)^nA(f,r,56)^i,B=(w^e^r>>>7)+B|0,i=B=i>>>0>(l=i+I|0)>>>0?B+1|0:B,o[n>>2]=l,o[n+4>>2]=B,f=(S=o[J>>2])+f|0,I=(n=o[J+4>>2])+r|0,B=f>>>0>>0?I+1|0:I,r=I=o[y+4>>2],I=nA(k=o[y>>2],I,45),e=w,E=f,f=((63&r)<<26|k>>>6)^nA(k,r,3)^I,B=(w^e^r>>>6)+B|0,f=(E=E+f|0)>>>0>>0?B+1|0:B,B=nA(e=o[K>>2],I=o[K+4>>2],63),D=w,y=E,E=((127&I)<<25|e>>>7)^nA(e,I,56)^B,B=(w^D^I>>>7)+f|0,f=B=E>>>0>(p=y+E|0)>>>0?B+1|0:B,o[H+136>>2]=p,o[H+140>>2]=B,B=(M=o[U>>2])+e|0,I=(e=o[U+4>>2])+I|0,E=nA(l,i,45),D=w,E=(c=((63&i)<<26|l>>>6)^nA(l,i,3)^E)+B|0,B=(w^D^i>>>6)+(B>>>0>>0?I+1|0:I)|0,B=E>>>0>>0?B+1|0:B,D=I=o[N+4>>2],I=nA(c=o[N>>2],I,63),s=w,y=E,E=((127&D)<<25|c>>>7)^nA(c,D,56)^I,B=(w^s^D>>>7)+B|0,E=B=E>>>0>(P=y+E|0)>>>0?B+1|0:B,o[H+144>>2]=P,o[H+148>>2]=B,c=(K=o[d>>2])+c|0,I=(I=D)+(D=o[d+4>>2])|0,B=c>>>0>>0?I+1|0:I,I=nA(p,f,45),s=w,u=((63&f)<<26|p>>>6)^nA(p,f,3)^I,B=(w^s^f>>>6)+B|0,B=(c=u+c|0)>>>0>>0?B+1|0:B,s=I=o[v+4>>2],I=nA(u=o[v>>2],I,63),h=w,y=c,c=((127&s)<<25|u>>>7)^nA(u,s,56)^I,B=(w^h^s>>>7)+B|0,c=B=c>>>0>(N=y+c|0)>>>0?B+1|0:B,o[H+152>>2]=N,o[H+156>>2]=B,I=(v=o[R>>2])+u|0,B=(B=s)+(s=o[R+4>>2])|0,u=nA(P,E,45),h=w,u=((63&E)<<26|P>>>6)^nA(P,E,3)^u,B=(w^h^E>>>6)+(I>>>0>>0?B+1|0:B)|0,u=(y=u+I|0)>>>0>>0?B+1|0:B,B=nA(h=o[b>>2],I=o[b+4>>2],63),b=w,U=y,y=((127&I)<<25|h>>>7)^(B=nA(h,I,56)^B),B=(I>>>7^(G=w^b))+u|0,u=B=y>>>0>(b=U+y|0)>>>0?B+1|0:B,o[H+160>>2]=b,o[H+164>>2]=B,I=I+Q|0,I=(B=h+F|0)>>>0>>0?I+1|0:I,h=nA(N,c,45),y=w,h=(G=((63&c)<<26|N>>>6)^nA(N,c,3)^h)+B|0,B=(w^y^c>>>6)+I|0,B=h>>>0>>0?B+1|0:B,G=I=o[_+4>>2],I=nA(y=o[_>>2],I,63),_=w,I=nA(y,G,56)^I,U=h,B=(G>>>7^(J=w^_))+B|0,h=B=(h=((127&G)<<25|y>>>7)^I)>>>0>(_=U+h|0)>>>0?B+1|0:B,o[H+168>>2]=_,o[H+172>>2]=B,I=r+G|0,I=(B=y+k|0)>>>0>>0?I+1|0:I,U=y=o[Y+4>>2],y=nA(J=o[Y>>2],y,63),G=w,y=(Y=((127&U)<<25|J>>>7)^nA(J,U,56)^y)+B|0,B=(w^G^U>>>7)+I|0,I=y>>>0>>0?B+1|0:B,B=nA(b,u,45),G=w,B=nA(b,u,3)^B,Y=w^G,G=y,I=(u>>>6^Y)+I|0,y=I=(y=((63&u)<<26|b>>>6)^B)>>>0>(G=G+y|0)>>>0?I+1|0:I,o[H+176>>2]=G,o[H+180>>2]=I,d=o[m>>2],m=I=o[m+4>>2],Y=I,I=nA(L,t,63),B=w,R=((127&t)<<25|L>>>7)^nA(L,t,56)^I,I=(w^B^t>>>7)+f|0,B=((p=R+p|0)>>>0>>0?I+1|0:I)+Y|0,B=(I=p+d|0)>>>0

>>0?B+1|0:B,f=nA(G,y,45),p=w,Y=(f=((63&y)<<26|G>>>6)^nA(G,y,3)^f)+I|0,I=(w^p^y>>>6)+B|0,f=I=f>>>0>Y>>>0?I+1|0:I,o[H+192>>2]=Y,o[H+196>>2]=I,B=i+U|0,B=(I=l+J|0)>>>0>>0?B+1|0:B,p=nA(d,m,63),J=w,U=((127&m)<<25|d>>>7)^nA(d,m,56)^p,B=(w^J^m>>>7)+B|0,I=(p=U+I|0)>>>0>>0?B+1|0:B,B=nA(_,h,45),J=w,B=nA(_,h,3)^B,m=p,I=(h>>>6^(U=w^J))+I|0,p=I=(p=((63&h)<<26|_>>>6)^B)>>>0>(J=m+p|0)>>>0?I+1|0:I,o[H+184>>2]=J,o[H+188>>2]=I,I=nA(M,e,63),B=w,I=((127&e)<<25|M>>>7)^nA(M,e,56)^I,B=(w^B^e>>>7)+n|0,I=c+(I>>>0>(U=I+S|0)>>>0?B+1|0:B)|0,I=(B=N+U|0)>>>0>>0?I+1|0:I,c=nA(Y,f,45),N=w,c=nA(Y,f,3)^c,U=w^N,N=(c^=(63&f)<<26|Y>>>6)+B|0,B=(f>>>6^U)+I|0,c=B=c>>>0>N>>>0?B+1|0:B,o[H+208>>2]=N,o[H+212>>2]=B,I=nA(S,n,63),B=w,U=nA(S,n,56)^I,B=((I=n>>>7|0)^w^B)+t|0,I=E+((n=(S=U^((127&n)<<25|S>>>7))+L|0)>>>0>>0?B+1|0:B)|0,I=(B=n+P|0)>>>0

>>0?I+1|0:I,t=nA(J,p,45),n=w,E=(t=((63&p)<<26|J>>>6)^nA(J,p,3)^t)+B|0,B=(w^n^p>>>6)+I|0,t=B=t>>>0>E>>>0?B+1|0:B,o[H+200>>2]=E,o[H+204>>2]=B,I=nA(v,s,63),B=w,S=((127&s)<<25|v>>>7)^nA(v,s,56)^I,I=(w^B^s>>>7)+D|0,B=h+((n=S+K|0)>>>0>>0?I+1|0:I)|0,B=(I=n+_|0)>>>0<_>>>0?B+1|0:B,n=nA(N,c,45),h=w,U=I,I=c>>>6|0,n=((63&c)<<26|N>>>6)^nA(N,c,3)^n,B=(I^w^h)+B|0,n=B=n>>>0>(c=U+n|0)>>>0?B+1|0:B,o[H+224>>2]=c,o[H+228>>2]=B,I=nA(K,D,63),B=w,I=nA(K,D,56)^I,h=w^B,S=((127&D)<<25|K>>>7)^I,I=((B=D>>>7|0)^h)+e|0,B=u+((D=S+M|0)>>>0>>0?I+1|0:I)|0,B=(I=D+b|0)>>>0>>0?B+1|0:B,e=nA(E,t,45),D=w,h=I,I=t>>>6|0,t=((63&t)<<26|E>>>6)^nA(E,t,3)^e,I=(I^w^D)+B|0,t=I=t>>>0>(e=h+t|0)>>>0?I+1|0:I,o[H+216>>2]=e,o[H+220>>2]=I,I=nA(k,r,63),B=w,D=((127&r)<<25|k>>>7)^nA(k,r,56)^I,B=(w^B^r>>>7)+Q|0,B=p+((I=D+F|0)>>>0>>0?B+1|0:B)|0,I=(E=I+J|0)>>>0>>0?B+1|0:B,B=nA(c,n,45),D=w,p=E,E=nA(c,n,3)^B,B=n>>>6|0,n=p+(E^=(63&n)<<26|c>>>6)|0,I=(B^w^D)+I|0,o[H+240>>2]=n,o[H+244>>2]=n>>>0>>0?I+1|0:I,I=nA(F,Q,63),B=w,I=nA(F,Q,56)^I,n=w^B,B=((B=Q>>>7|0)^n)+s|0,I=y+((I^=(127&Q)<<25|F>>>7)>>>0>(Q=I+v|0)>>>0?B+1|0:B)|0,I=(B=Q+G|0)>>>0>>0?I+1|0:I,Q=nA(e,t,45),n=w,E=B,B=t>>>6|0,Q=((63&t)<<26|e>>>6)^nA(e,t,3)^Q,B=(B^w^n)+I|0,Q=B=Q>>>0>(t=E+Q|0)>>>0?B+1|0:B,o[H+232>>2]=t,o[H+236>>2]=B,I=nA(l,i,63),B=w,E=nA(l,i,56)^I,B=((I=i>>>7|0)^w^B)+r|0,I=f+((i=(n=E^((127&i)<<25|l>>>7))+k|0)>>>0>>0?B+1|0:B)|0,I=(B=i+Y|0)>>>0>>0?I+1|0:I,i=nA(t,Q,45),r=w,f=B,B=Q>>>6|0,Q=f+(i=((63&Q)<<26|t>>>6)^nA(t,Q,3)^i)|0,B=(B^w^r)+I|0,o[H+248>>2]=Q,o[H+252>>2]=Q>>>0>>0?B+1|0:B;I=I+o[A+4>>2]|0,I=(g=Q+o[A>>2]|0)>>>0>>0?I+1|0:I,o[A>>2]=g,o[A+4>>2]=I,B=o[A+12>>2]+o[C+12>>2]|0,I=(g=o[C+8>>2])+o[A+8>>2]|0,o[A+8>>2]=I,o[A+12>>2]=I>>>0>>0?B+1|0:B,B=o[A+20>>2]+o[C+20>>2]|0,I=(g=o[C+16>>2])+o[A+16>>2]|0,o[A+16>>2]=I,o[A+20>>2]=I>>>0>>0?B+1|0:B,I=o[A+28>>2]+o[C+28>>2]|0,g=(B=o[C+24>>2])+o[A+24>>2]|0,o[A+24>>2]=g,o[A+28>>2]=g>>>0>>0?I+1|0:I,B=o[A+36>>2]+o[C+36>>2]|0,I=(g=o[C+32>>2])+o[A+32>>2]|0,o[A+32>>2]=I,o[A+36>>2]=I>>>0>>0?B+1|0:B,I=o[A+44>>2]+o[C+44>>2]|0,g=(B=o[C+40>>2])+o[A+40>>2]|0,o[A+40>>2]=g,o[A+44>>2]=g>>>0>>0?I+1|0:I,B=o[A+52>>2]+o[C+52>>2]|0,I=(g=o[C+48>>2])+o[A+48>>2]|0,o[A+48>>2]=I,o[A+52>>2]=I>>>0>>0?B+1|0:B,B=o[A+60>>2]+o[C+60>>2]|0,I=(g=o[C+56>>2])+o[A+56>>2]|0,o[A+56>>2]=I,o[A+60>>2]=I>>>0>>0?B+1|0:B}function u(A){var I,g,C,B,Q,i,o,n,r,f,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0;y=(l=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24)>>>5&2097151,c=DA(_=(a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)>>>3|0,0,-683901,-1),e=(t=a[A+44|0])<<16&2031616|a[A+42|0]|a[A+43|0]<<8,t=w,p=t=e>>>0>(u=c+e|0)>>>0?t+1|0:t,G=t=t-((u>>>0<4293918720)-1|0)|0,c=t>>21,t=(e=y)+(y=(2097151&t)<<11|(h=u- -1048576|0)>>>21)|0,e=c,x=e=t>>>0>>0?e+1|0:e,j=t,N=DA(t,e,-683901,-1),k=w,s=DA(I=(a[A+49|0]|a[A+50|0]<<8|a[A+51|0]<<16|a[A+52|0]<<24)>>>7&2097151,0,-997805,-1),c=(t=a[A+27|0])>>>24|0,y=t<<8|(S=a[A+23|0]|a[A+24|0]<<8|a[A+25|0]<<16|a[A+26|0]<<24)>>>24,e=(t=a[A+28|0])>>>16|0,e=2097151&((3&(e|=c))<<30|(t=y|t<<16)>>>2),t=w,t=e>>>0>(c=e+s|0)>>>0?t+1|0:t,e=DA(d=(H=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24)>>>4&2097151,0,654183,0),t=w+t|0,s=c=e+c|0,c=e>>>0>c>>>0?t+1|0:t,D=(e=a[A+48|0])<<8|l>>>24,e=t=e>>>24|0,t=DA(g=2097151&((3&(l=(t=(y=a[A+49|0])>>>16|0)|e))<<30|(e=(y<<=16)|D)>>>2),0,136657,0),c=w+c|0,c=t>>>0>(e=t+s|0)>>>0?c+1|0:c,y=(t=DA(C=(a[A+57|0]|a[A+58|0]<<8|a[A+59|0]<<16|a[A+60|0]<<24)>>>6&2097151,0,666643,0))+e|0,e=w+c|0,s=y,c=t>>>0>y>>>0?e+1|0:e,e=(t=a[A+56|0])>>>24|0,D=t<<8|H>>>24,e=DA(B=2097151&((1&(H=(t=(y=a[A+57|0])>>>16|0)|e))<<31|(e=(y<<=16)|D)>>>1),0,470296,0),t=w+c|0,e=(t=(c=y=e+s|0)>>>0>>0?t+1|0:t)+k|0,e=c>>>0>(y=c+N|0)>>>0?e+1|0:e,U=c- -1048576|0,J=c=t-((c>>>0<4293918720)-1|0)|0,k=y-(t=-2097152&U)|0,N=e-((t>>>0>y>>>0)+c|0)|0,e=DA(I,0,654183,0),t=w,t=e>>>0>(c=e+(S>>>5&2097151)|0)>>>0?t+1|0:t,y=(e=c)+(c=DA(d,0,470296,0))|0,e=w+t|0,e=c>>>0>y>>>0?e+1|0:e,t=DA(g,q,-997805,-1),e=w+e|0,e=t>>>0>(c=t+y|0)>>>0?e+1|0:e,y=(t=c)+(c=DA(B,z,666643,0))|0,t=w+e|0,D=y,y=c>>>0>y>>>0?t+1|0:t,s=(c=DA(I,0,470296,0))+(t=(t=a[A+23|0])<<16&2031616|a[A+21|0]|a[A+22|0]<<8)|0,c=w,c=t>>>0>s>>>0?c+1|0:c,s=(e=DA(d,0,666643,0))+s|0,t=w+c|0,c=DA(g,q,654183,0),e=w+(e>>>0>s>>>0?t+1|0:t)|0,H=e=c>>>0>(S=c+s|0)>>>0?e+1|0:e,m=e=e-((S>>>0<4293918720)-1|0)|0,t=(t=e>>>21|0)+y|0,c=t=(e=(2097151&e)<<11|(s=S- -1048576|0)>>>21)>>>0>(D=e+D|0)>>>0?t+1|0:t,F=e=t-((D>>>0<4293918720)-1|0)|0,t=k,k=(2097151&e)<<11|(y=D- -1048576|0)>>>21,e=(e>>21)+N|0,l=k=(e=k>>>0>(M=t+k|0)>>>0?e+1|0:e)-((M>>>0<4293918720)-1|0)|0,L=M-(t=-2097152&(N=M- -1048576|0))|0,V=e-((t>>>0>M>>>0)+k|0)|0,t=DA(j,x,136657,0),c=w+c|0,c=t>>>0>(e=t+D|0)>>>0?c+1|0:c,b=e-(t=-2097152&y)|0,R=c-((t>>>0>e>>>0)+F|0)|0,M=u-(t=-2097152&h)|0,G=p-((t>>>0>u>>>0)+G|0)|0,p=DA(_,0,136657,0),e=(t=a[A+40|0])>>>24|0,y=t<<8|(h=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24)>>>24,c=(t=a[A+41|0])>>>16|0,e=(c|=e)>>>3|0,c=(7&c)<<29|(t=y|t<<16)>>>3,t=e+w|0,t=c>>>0>(y=c+p|0)>>>0?t+1|0:t,e=DA(C,0,-683901,-1),t=w+t|0,t=e>>>0>(c=e+y|0)>>>0?t+1|0:t,D=c,e=DA(_,0,-997805,-1),c=w,c=e>>>0>(y=e+(h>>>6&2097151)|0)>>>0?c+1|0:c,h=(e=y)+(y=DA(C,0,136657,0))|0,e=w+c|0,c=DA(B,z,-683901,-1),e=w+(y>>>0>h>>>0?e+1|0:e)|0,k=e=c>>>0>(K=c+h|0)>>>0?e+1|0:e,O=c=e-((K>>>0<4293918720)-1|0)|0,t=t+(e=c>>21)|0,h=t=(c=(2097151&c)<<11|(u=K- -1048576|0)>>>21)>>>0>(F=c+D|0)>>>0?t+1|0:t,P=t=t-((F>>>0<4293918720)-1|0)|0,e=(e=t>>21)+G|0,X=e=(t=(c=(2097151&t)<<11|(D=F- -1048576|0)>>>21)+M|0)>>>0>>0?e+1|0:e,v=t,e=DA(t,e,-683901,-1),t=w+R|0,Y=c=e+b|0,y=e>>>0>c>>>0?t+1|0:t,R=S-(t=-2097152&s)|0,G=H-((4095&m)+(t>>>0>S>>>0)|0)|0,S=DA(I,0,666643,0),t=(e=a[A+19|0])>>>24|0,s=e<<8|(H=a[A+15|0]|a[A+16|0]<<8|a[A+17|0]<<16|a[A+18|0]<<24)>>>24,c=t,e=(7&(c|=e=(t=a[A+20|0])>>>16|0))<<29|(e=(t<<=16)|s)>>>3,c=w+(c>>>3|0)|0,c=e>>>0>(s=e+S|0)>>>0?c+1|0:c,t=DA(g,q,470296,0),e=w+c|0,t=t>>>0>(s=t+s|0)>>>0?e+1|0:e,c=DA(g,q,666643,0),e=w,S=e=c>>>0>(b=c+(H>>>6&2097151)|0)>>>0?e+1|0:e,T=c=e-((b>>>0<4293918720)-1|0)|0,t=t+(e=c>>>21|0)|0,H=t=(c=(2097151&c)<<11|(p=b- -1048576|0)>>>21)>>>0>(M=c+s|0)>>>0?t+1|0:t,W=t=t-((M>>>0<4293918720)-1|0)|0,e=(e=t>>>21|0)+G|0,e=(t=(2097151&t)<<11|(s=M- -1048576|0)>>>21)>>>0>(c=t+R|0)>>>0?e+1|0:e,G=(t=c)+(c=DA(j,x,-997805,-1))|0,t=w+e|0,t=c>>>0>G>>>0?t+1|0:t,m=e=F-(c=-2097152&D)|0,Q=D=h-((c>>>0>F>>>0)+P|0)|0,c=DA(v,X,136657,0),t=w+t|0,t=c>>>0>(h=c+G|0)>>>0?t+1|0:t,c=DA(e,D,-683901,-1),e=w+t|0,h=e=c>>>0>(G=c+h|0)>>>0?e+1|0:e,P=t=e-((G>>>0<4293918720)-1|0)|0,e=(2097151&t)<<11|(D=G- -1048576|0)>>>21,t=(t>>21)+y|0,Y=e=(t=e>>>0>(F=e+Y|0)>>>0?t+1|0:t)-((F>>>0<4293918720)-1|0)|0,R=(2097151&e)<<11|(y=F- -1048576|0)>>>21,e=(e>>21)+V|0,o=L=R+L|0,R=L>>>0>>0?e+1|0:e,n=F-(e=-2097152&y)|0,r=t-((e>>>0>F>>>0)+Y|0)|0,L=G-(t=-2097152&D)|0,V=h-((t>>>0>G>>>0)+P|0)|0,c=(t=DA(j,x,654183,0))+(M-(e=-2097152&s)|0)|0,e=w+(H-((e>>>0>M>>>0)+W|0)|0)|0,e=t>>>0>c>>>0?e+1|0:e,t=DA(v,X,-997805,-1),e=w+e|0,e=t>>>0>(c=t+c|0)>>>0?e+1|0:e,y=(t=c)+(c=DA(m,Q,136657,0))|0,t=w+e|0,Y=y,h=c>>>0>y>>>0?t+1|0:t,M=K-(t=-2097152&u)|0,F=k-((t>>>0>K>>>0)+O|0)|0,H=DA(d,0,-683901,-1),t=(e=a[A+35|0])>>>24|0,y=e<<8|(s=a[A+31|0]|a[A+32|0]<<8|a[A+33|0]<<16|a[A+34|0]<<24)>>>24,c=t,e=(t=a[A+36|0])>>>16|0,e|=c,c=w,c=(t=2097151&((1&e)<<31|(t=t<<16|y)>>>1))>>>0>(e=t+H|0)>>>0?c+1|0:c,y=(t=DA(_,0,654183,0))+e|0,e=w+c|0,e=t>>>0>y>>>0?e+1|0:e,c=DA(C,0,-997805,-1),t=w+e|0,t=c>>>0>(y=c+y|0)>>>0?t+1|0:t,e=DA(B,z,136657,0),t=w+t|0,D=c=e+y|0,y=e>>>0>c>>>0?t+1|0:t,t=DA(I,0,-683901,-1),e=w,e=t>>>0>(c=t+(s>>>4&2097151)|0)>>>0?e+1|0:e,s=(t=DA(d,0,136657,0))+c|0,c=w+e|0,c=t>>>0>s>>>0?c+1|0:c,t=DA(_,0,470296,0),e=w+c|0,e=t>>>0>(s=t+s|0)>>>0?e+1|0:e,s=(c=DA(C,0,654183,0))+s|0,t=w+e|0,e=DA(B,z,-997805,-1),t=w+(c>>>0>s>>>0?t+1|0:t)|0,H=t=e>>>0>(k=e+s|0)>>>0?t+1|0:t,f=e=t-((k>>>0<4293918720)-1|0)|0,c=(t=e>>21)+y|0,G=e=(c=(e=(2097151&e)<<11|(s=k- -1048576|0)>>>21)>>>0>(u=e+D|0)>>>0?c+1|0:c)-((u>>>0<4293918720)-1|0)|0,t=(t=e>>21)+F|0,P=t=(e=(y=(2097151&e)<<11|(D=u- -1048576|0)>>>21)+M|0)>>>0>>0?t+1|0:t,y=Y,Y=e,t=DA(e,t,-683901,-1),e=w+h|0,F=y=y+t|0,y=t>>>0>y>>>0?e+1|0:e,h=(t=DA(j,x,470296,0))+(b-(e=-2097152&p)|0)|0,e=w+(S-((2047&T)+(e>>>0>b>>>0)|0)|0)|0,e=t>>>0>h>>>0?e+1|0:e,p=(t=h)+(h=DA(v,X,654183,0))|0,t=w+e|0,t=h>>>0>p>>>0?t+1|0:t,h=DA(m,Q,-997805,-1),e=w+t|0,e=h>>>0>(p=h+p|0)>>>0?e+1|0:e,K=D=u-(t=-2097152&D)|0,i=h=c-((t>>>0>u>>>0)+G|0)|0,c=DA(Y,P,136657,0),t=w+e|0,t=c>>>0>(p=c+p|0)>>>0?t+1|0:t,c=DA(D,h,-683901,-1),e=w+t|0,h=e=c>>>0>(S=c+p|0)>>>0?e+1|0:e,G=t=e-((S>>>0<4293918720)-1|0)|0,e=(2097151&t)<<11|(D=S- -1048576|0)>>>21,t=(t>>21)+y|0,F=e=(t=e>>>0>(p=e+F|0)>>>0?t+1|0:t)-((p>>>0<4293918720)-1|0)|0,u=(2097151&e)<<11|(y=p- -1048576|0)>>>21,e=(e>>21)+V|0,O=M=u+L|0,M=u>>>0>M>>>0?e+1|0:e,T=p-(e=-2097152&y)|0,W=t-((e>>>0>p>>>0)+F|0)|0,L=S-(t=-2097152&D)|0,V=h-((t>>>0>S>>>0)+G|0)|0,h=DA(j,x,666643,0),t=(e=a[A+14|0])>>>24|0,y=e<<8|(G=a[A+10|0]|a[A+11|0]<<8|a[A+12|0]<<16|a[A+13|0]<<24)>>>24,c=t,e=(t=a[A+15|0])>>>16|0,e|=c,c=w,c=(t=2097151&((1&e)<<31|(t=t<<16|y)>>>1))>>>0>(e=t+h|0)>>>0?c+1|0:c,y=(t=e)+(e=DA(v,X,470296,0))|0,t=w+c|0,t=e>>>0>y>>>0?t+1|0:t,e=DA(m,Q,654183,0),t=w+t|0,t=e>>>0>(c=e+y|0)>>>0?t+1|0:t,y=(e=c)+(c=DA(Y,P,-997805,-1))|0,e=w+t|0,e=c>>>0>y>>>0?e+1|0:e,t=DA(K,i,136657,0),e=w+e|0,S=c=t+y|0,y=t>>>0>c>>>0?e+1|0:e,s=k-(t=-2097152&s)|0,h=H-((t>>>0>k>>>0)+f|0)|0,c=DA(I,0,136657,0),t=w,t=(e=(a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24)>>>7&2097151)>>>0>(c=e+c|0)>>>0?t+1|0:t,D=(e=c)+(c=DA(d,0,-997805,-1))|0,e=w+t|0,e=c>>>0>D>>>0?e+1|0:e,t=DA(g,q,-683901,-1),e=w+e|0,e=t>>>0>(c=t+D|0)>>>0?e+1|0:e,D=(t=DA(_,0,666643,0))+c|0,c=w+e|0,c=t>>>0>D>>>0?c+1|0:c,e=DA(C,0,470296,0),t=w+c|0,t=e>>>0>(D=e+D|0)>>>0?t+1|0:t,e=DA(B,z,654183,0),t=w+t|0,e=(J>>21)+(e>>>0>(c=e+D|0)>>>0?t+1|0:t)|0,u=e=(D=(2097151&J)<<11|U>>>21)>>>0>(U=D+c|0)>>>0?e+1|0:e,F=t=e-((U>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(p=U- -1048576|0)>>>21,t=(t>>21)+h|0,b=t=(e=D+s|0)>>>0>>0?t+1|0:t,J=e,e=DA(e,t,-683901,-1),t=w+y|0,D=c=e+S|0,y=e>>>0>c>>>0?t+1|0:t,t=DA(v,X,666643,0),e=w,e=t>>>0>(c=t+(G>>>4&2097151)|0)>>>0?e+1|0:e,t=DA(m,Q,470296,0),e=w+e|0,e=t>>>0>(c=t+c|0)>>>0?e+1|0:e,h=(t=DA(Y,P,654183,0))+c|0,c=w+e|0,c=t>>>0>h>>>0?c+1|0:c,e=DA(K,i,-997805,-1),t=w+c|0,t=e>>>0>(h=e+h|0)>>>0?t+1|0:t,e=DA(J,b,136657,0),t=w+t|0,H=t=e>>>0>(k=e+h|0)>>>0?t+1|0:t,x=e=t-((k>>>0<4293918720)-1|0)|0,t=D,D=(2097151&e)<<11|(s=k- -1048576|0)>>>21,e=(e>>21)+y|0,v=y=(e=(c=t+D|0)>>>0>>0?e+1|0:e)-((c>>>0<4293918720)-1|0)|0,t=(t=y>>21)+V|0,j=D=(y=(2097151&y)<<11|(h=c- -1048576|0)>>>21)+L|0,S=y>>>0>D>>>0?t+1|0:t,D=c,c=e,y=(U-(e=-2097152&p)|0)+(p=(2097151&l)<<11|N>>>21)|0,e=(u-((e>>>0>U>>>0)+F|0)|0)+(l>>21)|0,G=e=y>>>0

>>0?e+1|0:e,d=e=e-((y>>>0<4293918720)-1|0)|0,N=t=e>>21,t=DA(_=(2097151&e)<<11|(F=y- -1048576|0)>>>21,t,-683901,-1),c=w+c|0,c=t>>>0>(e=t+D|0)>>>0?c+1|0:c,q=e-(t=-2097152&h)|0,z=c-((t>>>0>e>>>0)+v|0)|0,t=DA(_,N,136657,0),e=H+w|0,X=(c=t+k|0)-(t=-2097152&s)|0,v=(e=c>>>0>>0?e+1|0:e)-((t>>>0>c>>>0)+x|0)|0,e=DA(m,Q,666643,0),c=w,c=(t=(a[A+7|0]|a[A+8|0]<<8|a[A+9|0]<<16|a[A+10|0]<<24)>>>7&2097151)>>>0>(e=t+e|0)>>>0?c+1|0:c,D=(t=DA(Y,P,470296,0))+e|0,e=w+c|0,e=t>>>0>D>>>0?e+1|0:e,t=DA(K,i,654183,0),e=w+e|0,e=t>>>0>(c=t+D|0)>>>0?e+1|0:e,D=(t=c)+(c=DA(J,b,-997805,-1))|0,t=w+e|0,p=D,D=c>>>0>D>>>0?t+1|0:t,H=DA(Y,P,666643,0),t=(e=a[A+6|0])>>>24|0,h=e<<8|(U=a[A+2|0]|a[A+3|0]<<8|a[A+4|0]<<16|a[A+5|0]<<24)>>>24,c=t,e=(t=a[A+7|0])>>>16|0,e=2097151&((3&(e|=c))<<30|(t=t<<16|h)>>>2),t=w,t=e>>>0>(c=e+H|0)>>>0?t+1|0:t,h=(e=DA(K,i,470296,0))+c|0,c=w+t|0,c=e>>>0>h>>>0?c+1|0:c,e=DA(J,b,654183,0),t=w+c|0,H=t=e>>>0>(u=e+h|0)>>>0?t+1|0:t,l=t=t-((u>>>0<4293918720)-1|0)|0,e=(c=t>>21)+D|0,k=t=(e=(t=(2097151&t)<<11|(s=u- -1048576|0)>>>21)>>>0>(h=t+p|0)>>>0?e+1|0:e)-((h>>>0<4293918720)-1|0)|0,p=(2097151&t)<<11|(D=h- -1048576|0)>>>21,t=(t>>21)+v|0,v=Y=p+X|0,p=p>>>0>Y>>>0?t+1|0:t,t=DA(_,N,-997805,-1),e=w+e|0,e=t>>>0>(c=t+h|0)>>>0?e+1|0:e,m=c-(t=-2097152&D)|0,P=e-((t>>>0>c>>>0)+k|0)|0,e=DA(_,N,654183,0),t=H+w|0,Y=(c=e+u|0)-(e=-2097152&s)|0,l=(t=c>>>0>>0?t+1|0:t)-((e>>>0>c>>>0)+l|0)|0,t=DA(K,i,666643,0),e=w,e=t>>>0>(c=t+(U>>>5&2097151)|0)>>>0?e+1|0:e,t=DA(J,b,470296,0),e=w+e|0,h=c=t+c|0,c=t>>>0>c>>>0?e+1|0:e,D=DA(J,b,666643,0),e=(t=a[A+2|0])<<16&2031616|a[0|A]|a[A+1|0]<<8,t=w,H=t=e>>>0>(k=D+e|0)>>>0?t+1|0:t,b=t=t-((k>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(s=k- -1048576|0)>>>21,t=(t>>21)+c|0,c=t=D>>>0>(u=D+h|0)>>>0?t+1|0:t,U=t=t-((u>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(h=u- -1048576|0)>>>21,t=(t>>21)+l|0,D=D>>>0>(l=J=D+Y|0)>>>0?t+1|0:t,t=DA(_,N,470296,0),c=c+w|0,c=(e=t+u|0)>>>0>>0?c+1|0:c,u=e-(t=-2097152&h)|0,h=c-((t>>>0>e>>>0)+U|0)|0,e=DA(_,N,666643,0),t=w+(H-(((c=-2097152&s)>>>0>k>>>0)+b|0)|0)|0,e=(c=(t=e>>>0>(J=e+(k-c|0)|0)>>>0?t+1|0:t)>>21)+h|0,t=(t=(e=(t=(2097151&t)<<11|J>>>21)>>>0>(U=t+u|0)>>>0?e+1|0:e)>>21)+D|0,e=(e=(t=(e=(2097151&e)<<11|U>>>21)>>>0>(l=e+l|0)>>>0?t+1|0:t)>>21)+P|0,c=(t=(e=(t=(2097151&t)<<11|l>>>21)>>>0>(D=t+m|0)>>>0?e+1|0:e)>>21)+p|0,t=(e=(c=(e=(2097151&e)<<11|D>>>21)>>>0>(N=e+v|0)>>>0?c+1|0:c)>>21)+z|0,e=(c=(t=(c=(2097151&c)<<11|N>>>21)>>>0>(k=c+q|0)>>>0?t+1|0:t)>>21)+S|0,t=(t=(e=(t=(2097151&t)<<11|k>>>21)>>>0>(u=t+j|0)>>>0?e+1|0:e)>>21)+W|0,e=(e=(t=(e=(2097151&e)<<11|u>>>21)>>>0>(S=e+T|0)>>>0?t+1|0:t)>>21)+M|0,c=(t=(e=(t=(2097151&t)<<11|S>>>21)>>>0>(p=t+O|0)>>>0?e+1|0:e)>>21)+r|0,t=(e=(c=(e=(2097151&e)<<11|p>>>21)>>>0>(H=e+n|0)>>>0?c+1|0:c)>>21)+R|0,h=(F=y-(e=-2097152&F)|0)+((2097151&(t=(c=(2097151&c)<<11|H>>>21)>>>0>(s=c+o|0)>>>0?t+1|0:t))<<11|s>>>21)|0,t=(G-((e>>>0>y>>>0)+d|0)|0)+(t>>21)|0,F=e=(t=h>>>0>>0?t+1|0:t)>>21,J=(t=DA(M=(2097151&t)<<11|h>>>21,e,666643,0))+(e=2097151&J)|0,t=w,y=t=e>>>0>J>>>0?t+1|0:t,E[0|A]=J,E[A+1|0]=(255&t)<<24|J>>>8,t=2097151&U,e=DA(M,F,470296,0)+t|0,c=w,t=(y>>21)+(t>>>0>e>>>0?c+1|0:c)|0,t=(G=(2097151&y)<<11|J>>>21)>>>0>(U=G+e|0)>>>0?t+1|0:t,E[A+4|0]=(2047&t)<<21|U>>>11,e=t,c=U,E[A+3|0]=(7&t)<<29|c>>>3,E[A+2|0]=31&((65535&y)<<16|J>>>16)|c<<5,y=2097151&l,l=DA(M,F,654183,0)+y|0,t=w,U=(2097151&e)<<11|c>>>21,e=(e>>21)+(y=y>>>0>l>>>0?t+1|0:t)|0,t=e=(l=U+l|0)>>>0>>0?e+1|0:e,E[A+6|0]=(63&t)<<26|l>>>6,y=l,l=0,E[A+5|0]=l<<13|(1572864&c)>>>19|y<<2,c=2097151&D,D=DA(M,F,-997805,-1)+c|0,e=w,e=c>>>0>D>>>0?e+1|0:e,l=(2097151&(c=t))<<11|y>>>21,c=(t>>=21)+e|0,c=(D=l+D|0)>>>0>>0?c+1|0:c,E[A+9|0]=(511&c)<<23|D>>>9,E[A+8|0]=(1&c)<<31|D>>>1,e=0,E[A+7|0]=e<<18|(2080768&y)>>>14|D<<7,e=2097151&N,y=DA(M,F,136657,0)+e|0,t=w,t=e>>>0>y>>>0?t+1|0:t,N=(2097151&(e=c))<<11|D>>>21,e=t+(c=e>>21)|0,e=(y=N+y|0)>>>0>>0?e+1|0:e,E[A+12|0]=(4095&e)<<20|y>>>12,c=y,E[A+11|0]=(15&e)<<28|c>>>4,y=0,E[A+10|0]=y<<15|(1966080&D)>>>17|c<<4,y=2097151&k,D=DA(M,F,-683901,-1)+y|0,t=w,t=y>>>0>D>>>0?t+1|0:t,y=e,e=t+(e>>=21)|0,e=(y=(Y=D)+(D=(2097151&y)<<11|c>>>21)|0)>>>0>>0?e+1|0:e,E[A+14|0]=(127&e)<<25|y>>>7,D=0,E[A+13|0]=D<<12|(1048576&c)>>>20|y<<1,t=e>>21,c=(e=(2097151&e)<<11|y>>>21)>>>0>(D=e+(2097151&u)|0)>>>0?t+1|0:t,E[A+17|0]=(1023&c)<<22|D>>>10,E[A+16|0]=(3&c)<<30|D>>>2,e=0,E[A+15|0]=e<<17|(2064384&y)>>>15|D<<6,t=c>>21,t=(e=(2097151&c)<<11|D>>>21)>>>0>(c=e+(2097151&S)|0)>>>0?t+1|0:t,E[A+20|0]=(8191&t)<<19|c>>>13,E[A+19|0]=(31&t)<<27|c>>>5,y=(e=2097151&p)+(p=(2097151&t)<<11|c>>>21)|0,e=t>>21,e=y>>>0

>>0?e+1|0:e,p=y,E[A+21|0]=y,S=0,E[A+18|0]=S<<14|(1835008&D)>>>18|c<<3,E[A+22|0]=(255&e)<<24|y>>>8,c=e>>21,c=(y=(D=(2097151&e)<<11|y>>>21)+(2097151&H)|0)>>>0>>0?c+1|0:c,E[A+25|0]=(2047&c)<<21|y>>>11,E[A+24|0]=(7&c)<<29|y>>>3,E[A+23|0]=31&((65535&e)<<16|p>>>16)|y<<5,t=c>>21,t=(e=(2097151&c)<<11|y>>>21)>>>0>(c=e+(2097151&s)|0)>>>0?t+1|0:t,E[A+27|0]=(63&t)<<26|c>>>6,D=0,E[A+26|0]=D<<13|(1572864&y)>>>19|c<<2,e=t>>21,e=(t=(y=(2097151&t)<<11|c>>>21)+(2097151&h)|0)>>>0>>0?e+1|0:e,E[A+31|0]=(131071&e)<<15|t>>>17,E[A+30|0]=(511&e)<<23|t>>>9,E[A+29|0]=(1&e)<<31|t>>>1,y=0,E[A+28|0]=y<<18|(2080768&c)>>>14|t<<7}function k(A,I,g,C,B,Q){var i,n=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0,p=0,k=0,S=0,H=0,G=0,J=0,N=0,Y=0,P=0,v=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0;for(D=i=D-592|0,S=-1,H=A+32|0,k=32,G=1;p=a[2672+(f=k-1|0)|0],t=(f=((e=a[f+H|0])^p)-1>>8&G)&(y=a[H+(k=k-2|0)|0])-(c=a[k+2672|0])>>8|255&(e-p>>>8&G|t),G=f&(c^y)-1>>8,k;);if(255&t&&!(aA(A)|!(((127&(-1^a[B+31|0])|a[B+1|0]&a[B+2|0]&a[B+3|0]&a[B+4|0]&a[B+5|0]&a[B+6|0]&a[B+7|0]&a[B+8|0]&a[B+9|0]&a[B+10|0]&a[B+11|0]&a[B+12|0]&a[B+13|0]&a[B+14|0]&a[B+15|0]&a[B+16|0]&a[B+17|0]&a[B+18|0]&a[B+19|0]&a[B+20|0]&a[B+21|0]&a[B+22|0]&a[B+23|0]&a[B+24|0]&a[B+25|0]&a[B+26|0]&a[B+27|0]&a[B+28|0]&a[B+30|0]&a[B+29|0]^255)-1&236-a[0|B]^-1)>>>8&1)||aA(B)||U(i+128|0,B))){for(EA(f=i+384|0),Q&&m(f,34768,34,0),m(f,A,32,0),m(f,B,32,0),m(f,I,g,C),M(f,g=i+320|0),u(g),Q=i+8|0,C=i+128|0,B=0,I=0,D=n=D-2272|0;e=g+(B>>>3|0)|0,E[(f=n+2016|0)+B|0]=a[0|e]>>>(6&B)&1,E[(t=f)+(f=1|B)|0]=a[0|e]>>>(7&f)&1,256!=(0|(B=B+2|0)););for(;;){I=(g=I)+1|0;A:if(!(!a[0|(t=g+(n+2016|0)|0)]|g>>>0>254)){I:if(B=E[0|(c=(n+2016|0)+I|0)])if((0|(B=(e=B<<1)+(f=E[0|t])|0))<=15)E[0|t]=B,E[0|c]=0;else{if((0|(B=f-e|0))<-15)break A;for(E[0|t]=B,B=I;;){if(!a[0|(f=(n+2016|0)+B|0)]){E[0|f]=1;break I}if(E[0|f]=0,f=B>>>0<255,B=B+1|0,!f)break}}if(!(g>>>0>253)){I:if(f=E[0|(y=(B=g+2|0)+(n+2016|0)|0)])if((0|(f=(c=f<<2)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>252)){I:if(f=E[0|(y=(B=g+3|0)+(n+2016|0)|0)])if((0|(f=(c=f<<3)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>251)){I:if(f=E[0|(y=(B=g+4|0)+(n+2016|0)|0)])if((0|(f=(c=f<<4)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>250)){I:if(f=E[0|(y=(B=g+5|0)+(n+2016|0)|0)])if((0|(f=(c=f<<5)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>249)&&(g=E[0|(c=(B=g+6|0)+(n+2016|0)|0)]))if((0|(g=(e=g<<6)+(f=E[0|t])|0))>=16){if((0|(g=f-e|0))<-15)break A;for(E[0|t]=g;;){if(a[0|(g=(n+2016|0)+B|0)]){if(E[0|g]=0,g=B>>>0<255,B=B+1|0,g)continue;break A}break}E[0|g]=1}else E[0|t]=g,E[0|c]=0}}}}}if(256==(0|I))break}for(B=0;g=H+(B>>>3|0)|0,E[(I=n+1760|0)+B|0]=a[0|g]>>>(6&B)&1,E[(f=I)+(I=1|B)|0]=a[0|g]>>>(7&I)&1,256!=(0|(B=B+2|0)););for(I=0;;){I=(g=I)+1|0;A:if(!(!a[0|(t=g+(n+1760|0)|0)]|g>>>0>254)){I:if(B=E[0|(c=(n+1760|0)+I|0)])if((0|(B=(e=B<<1)+(f=E[0|t])|0))<=15)E[0|t]=B,E[0|c]=0;else{if((0|(B=f-e|0))<-15)break A;for(E[0|t]=B,B=I;;){if(!a[0|(f=(n+1760|0)+B|0)]){E[0|f]=1;break I}if(E[0|f]=0,f=B>>>0<255,B=B+1|0,!f)break}}if(!(g>>>0>253)){I:if(f=E[0|(y=(B=g+2|0)+(n+1760|0)|0)])if((0|(f=(c=f<<2)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>252)){I:if(f=E[0|(y=(B=g+3|0)+(n+1760|0)|0)])if((0|(f=(c=f<<3)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>251)){I:if(f=E[0|(y=(B=g+4|0)+(n+1760|0)|0)])if((0|(f=(c=f<<4)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>250)){I:if(f=E[0|(y=(B=g+5|0)+(n+1760|0)|0)])if((0|(f=(c=f<<5)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>249)&&(g=E[0|(c=(B=g+6|0)+(n+1760|0)|0)]))if((0|(g=(e=g<<6)+(f=E[0|t])|0))>=16){if((0|(g=f-e|0))<-15)break A;for(E[0|t]=g;;){if(a[0|(g=(n+1760|0)+B|0)]){if(E[0|g]=0,g=B>>>0<255,B=B+1|0,g)continue;break A}break}E[0|g]=1}else E[0|t]=g,E[0|c]=0}}}}}if(256==(0|I))break}for(V(S=n+480|0,C),p=o[C+8>>2],t=o[C+12>>2],y=o[C+16>>2],c=o[C+20>>2],e=o[C+24>>2],f=o[C+28>>2],B=o[C>>2],g=o[C+4>>2],I=o[C+36>>2],o[n+192>>2]=o[C+32>>2],o[n+196>>2]=I,o[n+184>>2]=e,o[n+188>>2]=f,o[n+176>>2]=y,o[n+180>>2]=c,o[n+168>>2]=p,o[n+172>>2]=t,o[n+160>>2]=B,o[n+164>>2]=g,p=o[C+40>>2],t=o[C+44>>2],y=o[C+48>>2],c=o[C+52>>2],e=o[C+56>>2],f=o[C+60>>2],B=o[(I=C- -64|0)>>2],g=o[I+4>>2],I=o[C+76>>2],o[n+232>>2]=o[C+72>>2],o[n+236>>2]=I,o[n+224>>2]=B,o[n+228>>2]=g,o[n+216>>2]=e,o[n+220>>2]=f,o[n+208>>2]=y,o[n+212>>2]=c,o[n+200>>2]=p,o[n+204>>2]=t,p=o[C+80>>2],t=o[C+84>>2],y=o[C+88>>2],c=o[C+92>>2],e=o[C+96>>2],f=o[C+100>>2],B=o[C+104>>2],g=o[C+108>>2],I=o[C+116>>2],o[n+272>>2]=o[C+112>>2],o[n+276>>2]=I,o[n+264>>2]=B,o[n+268>>2]=g,o[n+256>>2]=e,o[n+260>>2]=f,o[n+248>>2]=y,o[n+252>>2]=c,o[n+240>>2]=p,o[n+244>>2]=t,l(C=n+320|0,g=n+160|0),F(n,C,w=n+440|0),F(n+40|0,h=n+360|0,s=n+400|0),F(n+80|0,s,w),F(n+120|0,C,h),_(C,n,S),F(g,C,w),F(N=n+200|0,h,s),F(Y=n+240|0,s,w),F(J=n+280|0,C,h),V(I=n+640|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+800|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+960|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1120|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1280|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1440|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(n+1600|0,g),o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+16>>2]=0,o[Q+20>>2]=0,o[Q+8>>2]=0,o[Q+12>>2]=0,o[Q>>2]=0,o[Q+4>>2]=0,o[Q+44>>2]=0,o[Q+48>>2]=0,o[(z=Q+40|0)>>2]=1,o[Q+52>>2]=0,o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+64>>2]=0,o[Q+68>>2]=0,o[Q+72>>2]=0,o[Q+84>>2]=0,o[Q+88>>2]=0,o[Q+76>>2]=0,o[Q+80>>2]=1,o[Q+92>>2]=0,o[Q+96>>2]=0,o[Q+100>>2]=0,o[Q+104>>2]=0,o[Q+108>>2]=0,o[Q+112>>2]=0,o[Q+116>>2]=0,IA=Q+80|0,I=255;;){A:{I:{if(!(a[(n+2016|0)+I|0]|a[(n+1760|0)+I|0])){if(!(a[(g=I-1|0)+(n+2016|0)|0]|a[g+(n+1760|0)|0]))break I;I=g}if((0|I)<0)break A;for(;l(n+320|0,Q),(0|(B=E[(g=I)+(n+2016|0)|0]))>0?(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),_(C,I,(n+480|0)+r((254&B)>>>1|0,160)|0)):(0|B)>=0||(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),b(C,I,(n+480|0)+r((0-B&254)>>>1|0,160)|0)),(0|(X=E[g+(n+1760|0)|0]))>0?(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),K(C,I,r((254&X)>>>1|0,120)+1488|0)):(0|X)>=0||(F(n+160|0,q=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,q,h),P=o[n+160>>2],v=o[n+200>>2],d=o[n+164>>2],L=o[n+204>>2],R=o[n+168>>2],x=o[n+208>>2],j=o[n+172>>2],k=o[n+212>>2],H=o[n+176>>2],G=o[n+216>>2],S=o[n+180>>2],p=o[n+220>>2],t=o[n+184>>2],y=o[n+224>>2],c=o[n+188>>2],e=o[n+228>>2],f=o[n+192>>2],B=o[n+232>>2],C=o[n+236>>2],I=o[n+196>>2],o[n+396>>2]=C-I,o[n+392>>2]=B-f,o[n+388>>2]=e-c,o[n+384>>2]=y-t,o[n+380>>2]=p-S,o[n+376>>2]=G-H,o[n+372>>2]=k-j,o[n+368>>2]=x-R,o[n+364>>2]=L-d,o[n+360>>2]=v-P,o[n+356>>2]=I+C,o[n+352>>2]=B+f,o[n+348>>2]=e+c,o[n+344>>2]=t+y,o[n+340>>2]=p+S,o[n+336>>2]=H+G,o[n+332>>2]=k+j,o[n+328>>2]=R+x,o[n+324>>2]=d+L,o[n+320>>2]=P+v,F(s,q,40+(I=r((0-X&254)>>>1|0,120)+1488|0)|0),F(h,h,I),F(w,I+80|0,J),gA=o[n+276>>2],CA=o[n+272>>2],X=o[n+268>>2],q=o[n+264>>2],t=o[n+260>>2],y=o[n+256>>2],c=o[n+252>>2],e=o[n+248>>2],f=o[n+244>>2],B=o[n+240>>2],O=o[n+360>>2],T=o[n+400>>2],W=o[n+364>>2],Z=o[n+404>>2],$=o[n+368>>2],AA=o[n+408>>2],P=o[n+372>>2],v=o[n+412>>2],d=o[n+376>>2],L=o[n+416>>2],R=o[n+380>>2],x=o[n+420>>2],j=o[n+384>>2],k=o[n+424>>2],H=o[n+388>>2],G=o[n+428>>2],S=o[n+392>>2],p=o[n+432>>2],C=o[n+396>>2],I=o[n+436>>2],o[n+396>>2]=C+I,o[n+392>>2]=p+S,o[n+388>>2]=H+G,o[n+384>>2]=k+j,o[n+380>>2]=R+x,o[n+376>>2]=d+L,o[n+372>>2]=P+v,o[n+368>>2]=$+AA,o[n+364>>2]=W+Z,o[n+360>>2]=O+T,o[n+356>>2]=I-C,o[n+352>>2]=p-S,o[n+348>>2]=G-H,o[n+344>>2]=k-j,o[n+340>>2]=x-R,o[n+336>>2]=L-d,o[n+332>>2]=v-P,o[n+328>>2]=AA-$,o[n+324>>2]=Z-W,o[n+320>>2]=T-O,P=B<<1,v=o[n+440>>2],o[n+400>>2]=P-v,d=f<<1,L=o[n+444>>2],o[n+404>>2]=d-L,R=e<<1,x=o[n+448>>2],o[n+408>>2]=R-x,j=c<<1,k=o[n+452>>2],o[n+412>>2]=j-k,H=y<<1,G=o[n+456>>2],o[n+416>>2]=H-G,S=t<<1,p=o[n+460>>2],o[n+420>>2]=S-p,t=q<<1,y=o[n+464>>2],o[n+424>>2]=t-y,c=X<<1,e=o[n+468>>2],o[n+428>>2]=c-e,f=CA<<1,B=o[n+472>>2],o[n+432>>2]=f-B,C=gA<<1,I=o[n+476>>2],o[n+436>>2]=C-I,o[n+440>>2]=P+v,o[n+444>>2]=d+L,o[n+448>>2]=R+x,o[n+452>>2]=k+j,o[n+456>>2]=H+G,o[n+460>>2]=p+S,o[n+464>>2]=t+y,o[n+468>>2]=e+c,o[n+472>>2]=B+f,o[n+476>>2]=I+C),F(Q,n+320|0,w),F(z,h,s),F(IA,s,w),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}D=n+2272|0,uA(I=i+288|0,Q),BA=-1,QA=cA(I,A),S=((0|A)==(0|I)?BA:QA)|oA(A,I,32)}return D=i+592|0,S}function F(A,I,g){var C,B,Q,i,E,a,n,f,t,e,c,y,D,h,s,p,u,k,F,l,S,H,M,G,U,J,N,Y,b,_,K,P,v,m,d,L,R,x,j,X,q,z,V,O,T,W,Z,$,AA,IA,gA,CA,BA,QA,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0,SA=0,HA=0,MA=0,GA=0,UA=0;iA=DA(C=o[g+4>>2],e=C>>31,kA=(p=o[I+20>>2])<<1,K=kA>>31),oA=w,EA=(hA=DA(pA=o[g>>2],Q=pA>>31,B=o[I+24>>2],i=B>>31))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,eA=DA(E=o[g+8>>2],D=E>>31,hA=o[I+16>>2],a=hA>>31),oA=w+iA|0,oA=(EA=eA+EA|0)>>>0>>0?oA+1|0:oA,iA=(eA=DA(c=o[g+12>>2],u=c>>31,G=(k=o[I+12>>2])<<1,P=G>>31))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(sA=DA(h=o[g+16>>2],U=h>>31,eA=o[I+8>>2],n=eA>>31))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(F=o[g+20>>2],v=F>>31,J=(l=o[I+4>>2])<<1,m=J>>31),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,W=tA=o[g+24>>2],oA=(cA=DA(tA,O=tA>>31,sA=o[I>>2],f=sA>>31))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,d=o[g+28>>2],iA=(cA=DA(wA=r(d,19),S=wA>>31,N=(H=o[I+36>>2])<<1,L=N>>31))+oA|0,oA=w+EA|0,oA=iA>>>0>>0?oA+1|0:oA,$=o[g+32>>2],EA=(fA=DA(aA=r($,19),s=aA>>31,cA=o[I+32>>2],t=cA>>31))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,Z=o[g+36>>2],g=DA(fA=r(Z,19),y=fA>>31,Y=(M=o[I+28>>2])<<1,R=Y>>31),iA=w+iA|0,nA=I=g+EA|0,g=I>>>0>>0?iA+1|0:iA,I=DA(hA,a,C,e),iA=w,EA=DA(pA,Q,p,x=p>>31),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(E,D,k,j=k>>31),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(eA,n,c,u),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(h,U,l,X=l>>31),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(sA,f,F,v),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(tA=r(tA,19),b=tA>>31,H,q=H>>31),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(cA,t,wA,S),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(aA,s,M,z=M>>31),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(fA,y,B,i),iA=w+iA|0,MA=I=EA+I|0,lA=I>>>0>>0?iA+1|0:iA,I=DA(C,e,G,P),iA=w,EA=DA(pA,Q,hA,a),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(eA,n,E,D),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(c,u,J,m),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(sA,f,h,U),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(_=r(F,19),V=_>>31,N,L),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(cA,t,tA,b),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(wA,S,Y,R),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(aA,s,B,i),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(fA,y,kA,K),iA=w+EA|0,AA=I=oA+I|0,IA=iA=I>>>0>>0?iA+1|0:iA,gA=I=I+33554432|0,CA=iA=I>>>0<33554432?iA+1|0:iA,oA=(67108863&iA)<<6|I>>>26,iA=(iA>>26)+lA|0,MA=I=oA+MA|0,iA=I>>>0>>0?iA+1|0:iA,BA=I=I+16777216|0,iA=g+(EA=(oA=I>>>0<16777216?iA+1|0:iA)>>25)|0,iA=(I=(oA=(33554431&oA)<<7|I>>>25)+nA|0)>>>0>>0?iA+1|0:iA,FA=g=(EA=I)+33554432|0,I=iA=g>>>0<33554432?iA+1|0:iA,o[A+24>>2]=EA-(-67108864&g),g=DA(C,e,J,m),iA=w,EA=DA(pA,Q,eA,n),oA=w+iA|0,oA=(g=EA+g|0)>>>0>>0?oA+1|0:oA,EA=(iA=g)+(g=DA(sA,f,E,D))|0,iA=w+oA|0,iA=g>>>0>EA>>>0?iA+1|0:iA,oA=DA(g=r(c,19),SA=g>>31,N,L),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(nA=DA(cA,t,lA=r(h,19),T=lA>>31))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,nA=DA(Y,R,_,V),iA=w+EA|0,iA=(oA=nA+oA|0)>>>0>>0?iA+1|0:iA,EA=(nA=DA(B,i,tA,b))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,nA=DA(wA,S,kA,K),iA=w+oA|0,iA=(EA=nA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(aA,s,hA,a),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(nA=DA(fA,y,G,P))+EA|0,EA=w+iA|0,yA=oA,GA=oA>>>0>>0?EA+1|0:EA,iA=DA(sA,f,C,e),EA=w,oA=(nA=DA(pA,Q,l,X))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,nA=EA=r(E,19),EA=(rA=DA(EA,HA=EA>>31,H,q))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,rA=DA(cA,t,g,SA),iA=w+oA|0,iA=(EA=rA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(lA,T,M,z),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(rA=DA(B,i,_,V))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,rA=DA(tA,b,p,x),iA=w+EA|0,iA=(oA=rA+oA|0)>>>0>>0?iA+1|0:iA,EA=(rA=DA(hA,a,wA,S))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,rA=DA(aA,s,k,j),iA=w+oA|0,iA=(EA=rA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(fA,y,eA,n),iA=w+iA|0,UA=EA=oA+EA|0,rA=EA>>>0>>0?iA+1|0:iA,iA=DA(iA=r(C,19),iA>>31,N,L),EA=w,oA=DA(pA,Q,sA,f),EA=w+EA|0,EA=(iA=oA+iA|0)>>>0>>0?EA+1|0:EA,oA=(nA=DA(cA,t,nA,HA))+iA|0,iA=w+EA|0,g=(EA=DA(g,SA,Y,R))+oA|0,oA=w+(oA>>>0>>0?iA+1|0:iA)|0,oA=g>>>0>>0?oA+1|0:oA,EA=DA(B,i,lA,T),iA=w+oA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(kA,K,_,V),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(hA,a,tA,b),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,oA=DA(wA,S,G,P),iA=w+EA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(aA,s,eA,n),oA=w+iA|0,oA=(g=EA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(fA,y,J,m),iA=w+oA|0,nA=g=EA+g|0,SA=iA=g>>>0>>0?iA+1|0:iA,HA=g=g+33554432|0,QA=iA=g>>>0<33554432?iA+1|0:iA,EA=(oA=iA>>26)+rA|0,rA=g=(iA=(67108863&iA)<<6|g>>>26)+UA|0,iA=EA=g>>>0>>0?EA+1|0:EA,UA=g=g+16777216|0,EA=(33554431&(iA=g>>>0<16777216?iA+1|0:iA))<<7|g>>>25,iA=(iA>>25)+GA|0,iA=(g=EA+yA|0)>>>0>>0?iA+1|0:iA,GA=EA=(oA=g)+33554432|0,g=iA=EA>>>0<33554432?iA+1|0:iA,o[A+8>>2]=oA-(-67108864&EA),iA=DA(B,i,C,e),oA=w,EA=(yA=DA(pA,Q,M,z))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,oA=DA(E,D,p,x),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(hA,a,c,u),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,yA=DA(h,U,k,j),oA=w+iA|0,oA=(EA=yA+EA|0)>>>0>>0?oA+1|0:oA,iA=(yA=DA(eA,n,F,v))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(yA=DA(l,X,W,O))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(sA,f,d,yA=d>>31),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(aA,s,H,q),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,uA=DA(fA,y,cA,t),oA=w+iA|0,iA=I>>26,I=(FA=(67108863&I)<<6|FA>>>26)+(EA=uA+EA|0)|0,EA=iA+(EA>>>0>>0?oA+1|0:oA)|0,iA=(oA=I)>>>0>>0?EA+1|0:EA,FA=EA=oA+16777216|0,I=iA=EA>>>0<16777216?iA+1|0:iA,o[A+28>>2]=oA-(-33554432&EA),iA=DA(eA,n,C,e),EA=w,uA=DA(pA,Q,k,j),oA=w+EA|0,oA=(iA=uA+iA|0)>>>0>>0?oA+1|0:oA,uA=DA(E,D,l,X),EA=w+oA|0,EA=(iA=uA+iA|0)>>>0>>0?EA+1|0:EA,oA=(uA=DA(sA,f,c,u))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(lA,T,H,q),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(cA,t,_,V),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,EA=(tA=DA(tA,b,M,z))+EA|0,oA=w+iA|0,iA=(wA=DA(B,i,wA,S))+EA|0,EA=w+(EA>>>0>>0?oA+1|0:oA)|0,oA=(aA=DA(aA,s,p,x))+iA|0,iA=w+(iA>>>0>>0?EA+1|0:EA)|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(fA,y,hA,a),iA=w+iA|0,aA=EA=EA+oA|0,iA=(iA=EA>>>0>>0?iA+1|0:iA)+(EA=g>>26)|0,oA=(EA=g=aA+(oA=(67108863&g)<<6|GA>>>26)|0)>>>0>>0?iA+1|0:iA,wA=iA=EA+16777216|0,g=oA=iA>>>0<16777216?oA+1|0:oA,o[A+12>>2]=EA-(-33554432&iA),iA=DA(C,e,Y,R),oA=w,EA=(aA=DA(pA,Q,cA,t))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,oA=DA(B,i,E,D),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,aA=DA(c,u,kA,K),oA=w+iA|0,oA=(EA=aA+EA|0)>>>0>>0?oA+1|0:oA,iA=(aA=DA(hA,a,h,U))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(aA=DA(G,P,F,v))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(eA,n,W,O),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(d,yA,J,m),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,EA=(kA=DA(sA,f,aA=$,tA=aA>>31))+EA|0,oA=w+iA|0,iA=(fA=DA(fA,y,N,L))+EA|0,EA=w+(EA>>>0>>0?oA+1|0:oA)|0,EA=iA>>>0>>0?EA+1|0:EA,fA=iA,iA=(iA=I>>25)+EA|0,iA=(I=fA+(oA=(33554431&I)<<7|FA>>>25)|0)>>>0>>0?iA+1|0:iA,fA=EA=(oA=I)+33554432|0,I=iA=EA>>>0<33554432?iA+1|0:iA,o[A+32>>2]=oA-(-67108864&EA),EA=g>>25,g=(wA=(33554431&g)<<7|wA>>>25)+(AA-(iA=-67108864&gA)|0)|0,iA=EA+(IA-((iA>>>0>AA>>>0)+CA|0)|0)|0,iA=g>>>0>>0?iA+1|0:iA,FA=iA=(67108863&(iA=(g=(EA=g)+33554432|0)>>>0<33554432?iA+1|0:iA))<<6|g>>>26,iA=iA+(oA=MA-(-33554432&BA)|0)|0,o[A+20>>2]=iA,o[A+16>>2]=EA-(-67108864&g),g=DA(cA,t,C,e),iA=w,EA=DA(pA,Q,H,q),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(E,D,M,z),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,iA=DA(B,i,c,u),oA=w+EA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(h,U,p,x),iA=w+oA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(hA,a,F,v),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(k,j,W,O),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(eA,n,d,yA),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,iA=DA(aA,tA,l,X),oA=w+EA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(sA,f,Z,Z>>31),iA=w+oA|0,iA=(iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA)+(EA=I>>26)|0,iA=(I=(oA=g)+(g=(67108863&I)<<6|fA>>>26)|0)>>>0>>0?iA+1|0:iA,iA=(I=(g=I)+16777216|0)>>>0<16777216?iA+1|0:iA,o[A+36>>2]=g-(-33554432&I),oA=rA-(-33554432&UA)|0,EA=nA-(g=-67108864&HA)|0,pA=SA-((g>>>0>nA>>>0)+QA|0)|0,I=(g=DA((33554431&(g=iA))<<7|I>>>25,iA>>=25,19,0))+EA|0,EA=w+pA|0,iA=I>>>0>>0?EA+1|0:EA,EA=iA=(67108863&(iA=(I=(g=I)+33554432|0)>>>0<33554432?iA+1|0:iA))<<6|I>>>26,iA=iA+oA|0,o[A+4>>2]=iA,o[A>>2]=g-(-67108864&I)}function l(A,I){var g,C,B,Q,i,E,a,n,f,t,e,c,y,h,s,p,u,k,F,l,H,M,G,U,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0;D=g=D-48|0,S(A,I),S(A+80|0,I+40|0),J=DA(x=(W=o[I+92>>2])<<1,i=x>>31,R=(b=o[I+84>>2])<<1,C=R>>31),Y=w,BA=j=o[I+88>>2],N=(L=DA(j,q=j>>31,j,q))+J|0,J=w+Y|0,J=N>>>0>>0?J+1|0:J,Y=(m=DA(P=o[I+96>>2],E=P>>31,L=(_=o[I+80>>2])<<1,B=L>>31))+N|0,N=w+J|0,N=Y>>>0>>0?N+1|0:N,IA=o[I+108>>2],m=DA(d=r(IA,38),e=d>>31,IA,h=IA>>31),J=w+N|0,J=(Y=m+Y|0)>>>0>>0?J+1|0:J,v=Y,Z=o[I+112>>2],Y=DA(K=r(Z,19),a=K>>31,N=(z=o[I+104>>2])<<1,N>>31),J=w+J|0,J=(N=v+Y|0)>>>0>>0?J+1|0:J,iA=o[I+116>>2],Y=($=DA(m=r(iA,38),Q=m>>31,X=(V=o[I+100>>2])<<1,f=X>>31))+N|0,N=w+J|0,EA=J=(Y>>>0<$>>>0?N+1|0:N)<<1|Y>>>31,oA=Y=33554432+(s=Y<<1)|0,aA=J=Y>>>0<33554432?J+1|0:J,gA=(67108863&J)<<6|Y>>>26,O=J>>26,J=DA(R,C,P,E),N=w,Y=DA(j<<=1,t=j>>31,W,p=W>>31),N=w+N|0,N=(J=Y+J|0)>>>0>>0?N+1|0:N,Y=($=DA(V,c=V>>31,L,B))+J|0,J=w+N|0,J=Y>>>0<$>>>0?J+1|0:J,N=Y,Y=DA(K,a,$=IA<<1,u=$>>31),J=w+J|0,J=(N=N+Y|0)>>>0>>0?J+1|0:J,Y=DA(m,Q,z,n=z>>31),J=w+J|0,J=(N=Y+N|0)>>>0>>0?J+1|0:J,Y=gA,gA=N<<1,N=(J<<1|N>>>31)+O|0,N=(Y=Y+gA|0)>>>0>>0?N+1|0:N,gA=Y,nA=Y=Y+16777216|0,v=(33554431&(N=Y>>>0<16777216?N+1|0:N))<<7|Y>>>25,O=N>>25,J=DA(x,i,W,p),Y=w,N=(T=DA(P,E,j,t))+J|0,J=w+Y|0,J=N>>>0>>0?J+1|0:J,Y=DA(R,C,X,f),J=w+J|0,J=(N=Y+N|0)>>>0>>0?J+1|0:J,Y=(T=DA(L,B,z,n))+N|0,N=w+J|0,N=Y>>>0>>0?N+1|0:N,J=Y,Y=DA(K,a,Z,y=Z>>31),N=w+N|0,N=(J=J+Y|0)>>>0>>0?N+1|0:N,Y=(T=DA(m,Q,$,u))+J|0,J=w+N|0,N=(Y>>>0>>0?J+1|0:J)<<1|Y>>>31,Y=(J=v)+(v=Y<<1)|0,J=N+O|0,J=Y>>>0>>0?J+1|0:J,O=Y,T=N=Y+33554432|0,Y=J=N>>>0<33554432?J+1|0:J,o[A+144>>2]=O-(-67108864&N),O=DA(J=r(V,38),J>>31,V,c),v=w,_=DA(J=_,N=J>>31,J,N),J=w+v|0,J=(N=_+O|0)>>>0<_>>>0?J+1|0:J,v=DA(_=r(z,19),k=_>>31,O=P<<1,F=O>>31),J=w+J|0,J=(N=v+N|0)>>>0>>0?J+1|0:J,v=DA(x,i,d,e),J=w+J|0,J=(N=v+N|0)>>>0>>0?J+1|0:J,v=(rA=DA(K,a,j,t))+N|0,N=w+J|0,N=v>>>0>>0?N+1|0:N,J=v,v=DA(R,C,m,Q),N=w+N|0,N=((J=J+v|0)>>>0>>0?N+1|0:N)<<1,v=J,rA=J=N|J>>>31,M=v=33554432+(l=v<<1)|0,G=J=v>>>0<33554432?J+1|0:J,AA=(67108863&J)<<6|v>>>26,v=J>>26,J=DA(_,k,X,f),CA=w,QA=b,N=(b=DA(L,B,b,H=b>>31))+J|0,J=w+CA|0,J=N>>>0>>0?J+1|0:J,b=(CA=DA(P,E,d,e))+N|0,N=w+J|0,N=b>>>0>>0?N+1|0:N,CA=DA(K,a,x,i),J=w+N|0,J=(b=CA+b|0)>>>0>>0?J+1|0:J,N=b,b=DA(m,Q,BA,q),J=w+J|0,J=((N=N+b|0)>>>0>>0?J+1|0:J)<<1,b=N,N=(N=J|N>>>31)+v|0,v=b=(J=b<<1)+AA|0,J=N=J>>>0>b>>>0?N+1|0:N,CA=b=b+16777216|0,U=(33554431&(J=b>>>0<16777216?J+1|0:J))<<7|b>>>25,AA=J>>25,J=DA(L,B,BA,q),b=w,N=(QA=DA(R,C,QA,H))+J|0,J=w+b|0,J=N>>>0>>0?J+1|0:J,b=DA(_,k,z,n),J=w+J|0,J=(N=b+N|0)>>>0>>0?J+1|0:J,b=(_=DA(X,f,d,e))+N|0,N=w+J|0,N=b>>>0<_>>>0?N+1|0:N,_=DA(K,a,O,F),J=w+N|0,J=(b=_+b|0)>>>0<_>>>0?J+1|0:J,_=DA(m,Q,x,i),N=w+J|0,J=(N=((b=_+b|0)>>>0<_>>>0?N+1|0:N)<<1|b>>>31)+AA|0,J=(b=(_=b<<1)+U|0)>>>0<_>>>0?J+1|0:J,_=b,QA=N=b+33554432|0,b=J=N>>>0<33554432?J+1|0:J,o[A+128>>2]=_-(-67108864&N),J=DA(j,t,V,c),N=w,_=DA(P,E,x,i),N=w+N|0,N=(J=_+J|0)>>>0<_>>>0?N+1|0:N,_=(AA=DA(R,C,z,n))+J|0,J=w+N|0,J=_>>>0>>0?J+1|0:J,N=_,_=DA(L,B,IA,h),J=w+J|0,J=(N=N+_|0)>>>0<_>>>0?J+1|0:J,_=(AA=DA(m,Q,Z,y))+N|0,N=w+J|0,N=J=(_>>>0>>0?N+1|0:N)<<1|_>>>31,J=(J=Y>>26)+N|0,J=(Y=(AA=_<<=1)+(_=(67108863&Y)<<6|T>>>26)|0)>>>0<_>>>0?J+1|0:J,_=Y,N=J,T=J=Y+16777216|0,Y=N=J>>>0<16777216?N+1|0:N,o[A+148>>2]=_-(-33554432&J),J=DA(L,B,W,p),W=w,N=(q=DA(R,C,BA,q))+J|0,J=w+W|0,J=N>>>0>>0?J+1|0:J,d=DA(z,n,d,e),J=w+J|0,J=(N=d+N|0)>>>0>>0?J+1|0:J,K=(d=DA(K,a,X,f))+N|0,N=w+J|0,N=K>>>0>>0?N+1|0:N,d=DA(m,Q,P,E),J=w+N|0,N=(J=((K=d+K|0)>>>0>>0?J+1|0:J)<<1|K>>>31)+(N=b>>26)|0,N=(b=(_=K<<1)+(K=(67108863&b)<<6|QA>>>26)|0)>>>0>>0?N+1|0:N,K=b,J=N,d=N=b+16777216|0,b=J=N>>>0<16777216?J+1|0:J,o[A+132>>2]=K-(-33554432&N),J=DA(z,n,j,t),K=w,N=(P=DA(P,E,P,E))+J|0,J=w+K|0,J=N>>>0

>>0?J+1|0:J,P=(K=DA(x,i,X,f))+N|0,N=w+J|0,N=P>>>0>>0?N+1|0:N,K=DA(R,C,$,u),J=w+N|0,J=(P=K+P|0)>>>0>>0?J+1|0:J,K=DA(L,B,Z,y),N=w+J|0,N=(P=K+P|0)>>>0>>0?N+1|0:N,K=DA(J=m,Q,m=iA,X=m>>31),J=w+N|0,J=(J=((P=K+P|0)>>>0>>0?J+1|0:J)<<1|P>>>31)+(N=Y>>25)|0,J=(Y=(_=P<<1)+(P=(33554431&Y)<<7|T>>>25)|0)>>>0

>>0?J+1|0:J,P=Y,N=J,K=J=Y+33554432|0,Y=N=J>>>0<33554432?N+1|0:N,o[A+152>>2]=P-(-67108864&J),N=s-(J=-67108864&oA)|0,q=EA-((J>>>0>s>>>0)+aA|0)|0,J=b>>25,b=(d=(33554431&b)<<7|d>>>25)+N|0,N=J+q|0,N=b>>>0>>0?N+1|0:N,_=N=(67108863&(N=(J=b+33554432|0)>>>0<33554432?N+1|0:N))<<6|J>>>26,N=N+(P=gA-(-33554432&nA)|0)|0,o[A+140>>2]=N,o[A+136>>2]=b-(-67108864&J),J=DA(x,i,z,n),N=w,b=DA(V,c,O,F),N=w+N|0,N=(J=b+J|0)>>>0>>0?N+1|0:N,b=(x=DA(j,t,IA,h))+J|0,J=w+N|0,J=b>>>0>>0?J+1|0:J,N=b,b=DA(R,C,Z,y),J=w+J|0,J=(N=N+b|0)>>>0>>0?J+1|0:J,b=(R=DA(L,B,m,X))+N|0,N=w+J|0,N=J=(b>>>0>>0?N+1|0:N)<<1|b>>>31,J=(J=Y>>26)+N|0,N=(Y=(_=b<<=1)+(b=(67108863&Y)<<6|K>>>26)|0)>>>0>>0?J+1|0:J,N=(J=Y+16777216|0)>>>0<16777216?N+1|0:N,o[A+156>>2]=Y-(-33554432&J),b=v-(-33554432&CA)|0,R=l-(Y=-67108864&M)|0,L=rA-((Y>>>0>l>>>0)+G|0)|0,N=DA((33554431&N)<<7|J>>>25,N>>25,19,0),J=w+L|0,N=N>>>0>(Y=N+R|0)>>>0?J+1|0:J,_=N=(67108863&(N=(J=Y+33554432|0)>>>0<33554432?N+1|0:N))<<6|J>>>26,N=N+b|0,o[A+124>>2]=N,o[A+120>>2]=Y-(-67108864&J),J=o[I+40>>2],N=o[I+44>>2],Y=o[I+4>>2],b=o[I+48>>2],R=o[I+8>>2],L=o[I+52>>2],m=o[I+12>>2],x=o[I+56>>2],P=o[I+16>>2],K=o[I+60>>2],z=o[I+20>>2],X=o[I- -64>>2],j=o[I+24>>2],d=o[I+68>>2],q=o[I+28>>2],V=o[I+72>>2],Z=o[I+32>>2],BA=o[I>>2],o[A+76>>2]=o[I+76>>2]+o[I+36>>2],o[A+72>>2]=V+Z,o[A+68>>2]=d+q,o[(IA=A- -64|0)>>2]=j+X,o[A+60>>2]=K+z,o[A+56>>2]=P+x,o[A+52>>2]=m+L,o[A+48>>2]=b+R,o[A+44>>2]=N+Y,o[(I=A+40|0)>>2]=J+BA,S(g,I),J=o[A+80>>2],N=o[A+4>>2],Y=o[A+84>>2],b=o[A+8>>2],R=o[A+88>>2],L=o[A+12>>2],m=o[A+92>>2],x=o[A+16>>2],P=o[A+96>>2],K=o[A+20>>2],z=o[A+100>>2],X=o[A+24>>2],j=o[A+104>>2],d=o[A+28>>2],q=o[A+108>>2],V=o[A+32>>2],Z=o[A+112>>2],BA=o[A>>2],_=(W=o[A+116>>2])-($=o[A+36>>2])|0,o[A+116>>2]=_,O=Z-V|0,o[A+112>>2]=O,gA=q-d|0,o[A+108>>2]=gA,v=j-X|0,o[A+104>>2]=v,iA=z-K|0,o[A+100>>2]=iA,EA=P-x|0,o[A+96>>2]=EA,oA=m-L|0,o[A+92>>2]=oA,aA=R-b|0,o[A+88>>2]=aA,T=Y-N|0,o[A+84>>2]=T,nA=J-BA|0,o[A+80>>2]=nA,W=W+$|0,o[A+76>>2]=W,V=V+Z|0,o[A+72>>2]=V,d=d+q|0,o[A+68>>2]=d,X=j+X|0,o[IA>>2]=X,K=K+z|0,o[A+60>>2]=K,x=P+x|0,o[A+56>>2]=x,L=m+L|0,o[A+52>>2]=L,b=b+R|0,o[A+48>>2]=b,N=N+Y|0,o[A+44>>2]=N,Y=I,I=J+BA|0,o[Y>>2]=I,J=o[g>>2],Y=o[g+4>>2],R=o[g+8>>2],m=o[g+12>>2],P=o[g+16>>2],z=o[g+20>>2],j=o[g+24>>2],q=o[g+28>>2],Z=o[g+32>>2],o[A+36>>2]=o[g+36>>2]-W,o[A+32>>2]=Z-V,o[A+28>>2]=q-d,o[A+24>>2]=j-X,o[A+20>>2]=z-K,o[A+16>>2]=P-x,o[A+12>>2]=m-L,o[A+8>>2]=R-b,o[A+4>>2]=Y-N,o[A>>2]=J-I,I=o[A+120>>2],J=o[A+124>>2],N=o[A+128>>2],Y=o[A+132>>2],b=o[A+136>>2],R=o[A+140>>2],L=o[A+144>>2],m=o[A+148>>2],x=o[A+152>>2],o[A+156>>2]=o[A+156>>2]-_,o[A+152>>2]=x-O,o[A+148>>2]=m-gA,o[A+144>>2]=L-v,o[A+140>>2]=R-iA,o[A+136>>2]=b-EA,o[A+132>>2]=Y-oA,o[A+128>>2]=N-aA,o[A+124>>2]=J-T,o[A+120>>2]=I-nA,D=g+48|0}function S(A,I){var g,C,B,Q,i,E,a,n,f,t,e,c,y,D,h,s,p,u,k,F,l,S,H,M,G,U,J,N,Y,b,_,K,P,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0;v=DA(C=(s=o[I+12>>2])<<1,E=C>>31,s,l=s>>31),d=w,m=(q=DA(R=o[I+16>>2],a=R>>31,n=(L=o[I+8>>2])<<1,c=n>>31))+v|0,v=w+d|0,v=m>>>0>>0?v+1|0:v,d=(z=DA(T=(f=o[I+20>>2])<<1,y=T>>31,q=(x=o[I+4>>2])<<1,B=q>>31))+m|0,m=w+v|0,m=d>>>0>>0?m+1|0:m,j=DA(g=o[I+24>>2],t=g>>31,z=($=o[I>>2])<<1,Q=z>>31),v=w+m|0,v=(d=j+d|0)>>>0>>0?v+1|0:v,m=d,D=o[I+32>>2],d=DA(V=r(D,19),e=V>>31,D,u=D>>31),v=w+v|0,v=(m=m+d|0)>>>0>>0?v+1|0:v,U=o[I+36>>2],d=DA(j=r(U,38),i=j>>31,k=(h=o[I+28>>2])<<1,S=k>>31),I=w+v|0,Z=m=d+m|0,d=m>>>0>>0?I+1|0:I,I=DA(q,B,R,a),v=w,m=DA(n,c,s,l),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,X=DA(f,F=f>>31,z,Q),m=w+v|0,m=(I=X+I|0)>>>0>>0?m+1|0:m,X=DA(V,e,k,S),v=w+m|0,v=(I=X+I|0)>>>0>>0?v+1|0:v,m=DA(j,i,g,t),v=w+v|0,BA=I=m+I|0,O=I>>>0>>0?v+1|0:v,v=DA(q,B,C,E),m=w,H=I=L,L=DA(I,W=I>>31,I,W),I=w+m|0,I=(v=L+v|0)>>>0>>0?I+1|0:I,m=(L=DA(z,Q,R,a))+v|0,v=w+I|0,v=m>>>0>>0?v+1|0:v,I=(L=DA(X=r(h,38),p=X>>31,h,M=h>>31))+m|0,m=w+v|0,m=I>>>0>>0?m+1|0:m,I=(v=I)+(L=DA(V,e,I=g<<1,I>>31))|0,v=w+m|0,v=I>>>0>>0?v+1|0:v,m=I,I=DA(j,i,T,y),v=w+v|0,J=m=m+I|0,N=v=I>>>0>m>>>0?v+1|0:v,I=v,Y=m=m+33554432|0,b=I=m>>>0<33554432?I+1|0:I,v=(v=I>>26)+O|0,BA=I=(m=(67108863&I)<<6|m>>>26)+BA|0,v=I>>>0>>0?v+1|0:v,_=I=I+16777216|0,v=(v=(m=I>>>0<16777216?v+1|0:v)>>25)+d|0,I=(I=(33554431&m)<<7|I>>>25)>>>0>(m=I+Z|0)>>>0?v+1|0:v,Z=v=m+33554432|0,L=I=v>>>0<33554432?I+1|0:I,o[A+24>>2]=m-(-67108864&v),I=DA(z,Q,H,W),v=w,d=DA(q,B,x,CA=x>>31),m=w+v|0,m=(I=d+I|0)>>>0>>0?m+1|0:m,O=DA(d=r(g,19),gA=d>>31,g,t),v=w+m|0,v=(I=O+I|0)>>>0>>0?v+1|0:v,m=(O=DA(T,y,X,p))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,AA=DA(V,e,O=R<<1,G=O>>31),v=w+I|0,v=(m=AA+m|0)>>>0>>0?v+1|0:v,I=m,m=DA(j,i,C,E),v=w+v|0,IA=I=I+m|0,AA=I>>>0>>0?v+1|0:v,I=DA(T,y,d,gA),v=w,x=DA(z,Q,x,CA),m=w+v|0,m=(I=x+I|0)>>>0>>0?m+1|0:m,x=DA(R,a,X,p),v=w+m|0,v=(I=x+I|0)>>>0>>0?v+1|0:v,m=(x=DA(V,e,C,E))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,x=DA(j,i,H,W),v=w+I|0,QA=m=x+m|0,CA=m>>>0>>0?v+1|0:v,m=DA(I=r(f,38),I>>31,f,F),x=w,I=$,$=m,m=DA(I,v=I>>31,I,v),v=w+x|0,v=(I=$+m|0)>>>0>>0?v+1|0:v,d=DA(d,gA,O,G),m=w+v|0,m=(I=d+I|0)>>>0>>0?m+1|0:m,d=DA(C,E,X,p),v=w+m|0,v=(I=d+I|0)>>>0>>0?v+1|0:v,m=(d=DA(V,e,n,c))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,d=DA(q,B,j,i),v=w+I|0,x=m=d+m|0,gA=v=m>>>0>>0?v+1|0:v,K=m=m+33554432|0,P=v=m>>>0<33554432?v+1|0:v,I=v>>26,v=(67108863&v)<<6|m>>>26,m=I+CA|0,$=d=v+QA|0,v=m=v>>>0>d>>>0?m+1|0:m,QA=m=d+16777216|0,d=(33554431&(v=m>>>0<16777216?v+1|0:v))<<7|m>>>25,v=(v>>25)+AA|0,v=(m=d+IA|0)>>>0>>0?v+1|0:v,AA=I=m+33554432|0,d=v=I>>>0<33554432?v+1|0:v,o[A+8>>2]=m-(-67108864&I),I=DA(n,c,f,F),v=w,m=DA(R,a,C,E),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(q,B,g,t),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(z,Q,h,M),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,IA=(m=DA(j,i,D,u))+I|0,I=w+v|0,m=(v=L>>26)+(m=m>>>0>IA>>>0?I+1|0:I)|0,Z=I=(L=(67108863&L)<<6|Z>>>26)+IA|0,v=I>>>0>>0?m+1|0:m,IA=I=I+16777216|0,L=v=I>>>0<16777216?v+1|0:v,o[A+28>>2]=Z-(-33554432&I),I=DA(z,Q,s,l),m=w,v=(W=DA(q,B,H,W))+I|0,I=w+m|0,I=v>>>0>>0?I+1|0:I,v=(X=DA(g,t,X,p))+v|0,m=w+I|0,I=(V=DA(V,e,T,y))+v|0,v=w+(v>>>0>>0?m+1|0:m)|0,v=I>>>0>>0?v+1|0:v,m=DA(j,i,R,a),v=w+v|0,v=(v=(I=m+I|0)>>>0>>0?v+1|0:v)+(m=d>>26)|0,I=(m=d=(Z=I)+(I=(67108863&d)<<6|AA>>>26)|0)>>>0>>0?v+1|0:v,V=v=m+16777216|0,d=I=v>>>0<16777216?I+1|0:I,o[A+12>>2]=m-(-33554432&v),I=DA(g,t,n,c),v=w,m=DA(R,a,R,a),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(C,E,T,y),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=(R=DA(q,B,k,S))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,v=(R=DA(z,Q,D,u))+m|0,m=w+I|0,m=v>>>0>>0?m+1|0:m,I=(R=DA(I=j,i,j=U,T=j>>31))+v|0,v=w+m|0,v=I>>>0>>0?v+1|0:v,m=I,v=(I=L>>25)+v|0,v=(m=m+(L=(33554431&L)<<7|IA>>>25)|0)>>>0>>0?v+1|0:v,R=I=m+33554432|0,L=v=I>>>0<33554432?v+1|0:v,o[A+32>>2]=m-(-67108864&I),v=d>>25,m=(d=(33554431&d)<<7|V>>>25)+(J-(I=-67108864&Y)|0)|0,I=v+(N-((I>>>0>J>>>0)+b|0)|0)|0,v=m>>>0>>0?I+1|0:I,d=v=(67108863&(v=(I=m+33554432|0)>>>0<33554432?v+1|0:v))<<6|I>>>26,v=v+(X=BA-(-33554432&_)|0)|0,o[A+20>>2]=v,o[A+16>>2]=m-(-67108864&I),I=DA(C,E,g,t),m=w,v=(d=DA(f,F,O,G))+I|0,I=w+m|0,I=v>>>0>>0?I+1|0:I,m=(d=DA(n,c,h,M))+v|0,v=w+I|0,v=m>>>0>>0?v+1|0:v,I=(d=DA(q,B,D,u))+m|0,m=w+v|0,m=I>>>0>>0?m+1|0:m,d=(v=I)+(I=DA(z,Q,j,T))|0,v=w+m|0,v=(I=I>>>0>d>>>0?v+1|0:v)+(v=L>>26)|0,I=(m=(L=(67108863&L)<<6|R>>>26)+d|0)>>>0>>0?v+1|0:v,I=(v=m+16777216|0)>>>0<16777216?I+1|0:I,o[A+36>>2]=m-(-33554432&v),L=$-(-33554432&QA)|0,d=x-(m=-67108864&K)|0,q=gA-((m>>>0>x>>>0)+P|0)|0,I=DA((33554431&I)<<7|v>>>25,I>>25,19,0),v=w+q|0,I=I>>>0>(m=I+d|0)>>>0?v+1|0:v,d=I=(67108863&(I=(v=m+33554432|0)>>>0<33554432?I+1|0:I))<<6|v>>>26,I=I+L|0,o[A+4>>2]=I,o[A>>2]=m-(-67108864&v)}function H(A,I,g,C,B){var Q,i,n,r,f,t,e,c,y,w,h,s,p,u,k,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0;for(Q=D+-64|0,i=o[A+60>>2],n=o[A+56>>2],x=o[A+52>>2],R=o[A+48>>2],r=o[A+44>>2],f=o[A+40>>2],t=o[A+36>>2],e=o[A+32>>2],c=o[A+28>>2],y=o[A+24>>2],w=o[A+20>>2],h=o[A+16>>2],s=o[A+12>>2],p=o[A+8>>2],u=o[A+4>>2],k=o[A>>2];;){if(!B&C>>>0>63|B)F=g;else{if(o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+48>>2]=0,o[Q+52>>2]=0,o[Q+40>>2]=0,o[Q+44>>2]=0,o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+16>>2]=0,o[Q+20>>2]=0,o[Q+8>>2]=0,o[Q+12>>2]=0,o[Q>>2]=0,o[Q+4>>2]=0,S=0,C|B)for(;E[S+Q|0]=a[I+S|0],!B&(S=S+1|0)>>>0>>0|B;);I=F=Q,V=g}for(j=20,l=k,Y=u,b=p,P=s,S=h,g=w,M=y,G=c,U=e,m=t,_=f,H=i,d=n,v=x,K=R,J=r;N=S,l=YA((S=l+S|0)^K,16),N=K=YA(N^(U=l+U|0),12),K=YA((L=S+K|0)^l,8),S=YA(N^(U=K+U|0),7),H=YA((l=G+P|0)^H,16),G=YA((J=H+J|0)^G,12),P=YA((b=M+b|0)^d,16),M=YA((_=P+_|0)^M,12),d=(X=l+G|0)+S|0,q=YA((b=M+b|0)^P,8),l=YA(d^q,16),P=YA((Y=g+Y|0)^v,16),g=YA((m=P+m|0)^g,12),N=S,v=YA((Y=g+Y|0)^P,8),N=YA(N^(S=(z=v+m|0)+l|0),12),d=YA(l^(P=N+d|0),8),S=YA((m=d+S|0)^N,7),N=U,U=b,l=YA(H^X,8),b=YA((H=l+J|0)^G,7),v=YA((U=U+b|0)^v,16),J=YA((G=N+v|0)^b,12),v=YA(v^(b=J+U|0),8),G=YA((U=G+v|0)^J,7),J=H,H=Y,Y=YA((_=_+q|0)^M,7),M=J+(K=YA((H=H+Y|0)^K,16))|0,J=H,H=YA(M^Y,12),K=YA(K^(Y=J+H|0),8),M=YA((J=M+K|0)^H,7),N=_,H=l,l=YA(g^z,7),H=YA(H^(_=l+L|0),16),L=YA((g=N+H|0)^l,12),H=YA(H^(l=L+_|0),8),g=YA((_=g+H|0)^L,7),j=j-2|0;);if(j=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,L=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,X=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,q=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,z=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,N=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,O=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,T=a[I+32|0]|a[I+33|0]<<8|a[I+34|0]<<16|a[I+35|0]<<24,W=a[I+36|0]|a[I+37|0]<<8|a[I+38|0]<<16|a[I+39|0]<<24,Z=a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24,$=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,AA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24,IA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24,gA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,CA=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,l=l+k^(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),E[0|F]=l,E[F+1|0]=l>>>8,E[F+2|0]=l>>>16,E[F+3|0]=l>>>24,l=H+i^CA,E[F+60|0]=l,E[F+61|0]=l>>>8,E[F+62|0]=l>>>16,E[F+63|0]=l>>>24,l=d+n^gA,E[F+56|0]=l,E[F+57|0]=l>>>8,E[F+58|0]=l>>>16,E[F+59|0]=l>>>24,l=v+x^IA,E[F+52|0]=l,E[F+53|0]=l>>>8,E[F+54|0]=l>>>16,E[F+55|0]=l>>>24,l=K+R^AA,E[F+48|0]=l,E[F+49|0]=l>>>8,E[F+50|0]=l>>>16,E[F+51|0]=l>>>24,l=J+r^$,E[F+44|0]=l,E[F+45|0]=l>>>8,E[F+46|0]=l>>>16,E[F+47|0]=l>>>24,l=_+f^Z,E[F+40|0]=l,E[F+41|0]=l>>>8,E[F+42|0]=l>>>16,E[F+43|0]=l>>>24,l=m+t^W,E[F+36|0]=l,E[F+37|0]=l>>>8,E[F+38|0]=l>>>16,E[F+39|0]=l>>>24,l=U+e^T,E[F+32|0]=l,E[F+33|0]=l>>>8,E[F+34|0]=l>>>16,E[F+35|0]=l>>>24,G=G+c^O,E[F+28|0]=G,E[F+29|0]=G>>>8,E[F+30|0]=G>>>16,E[F+31|0]=G>>>24,M=N^M+y,E[F+24|0]=M,E[F+25|0]=M>>>8,E[F+26|0]=M>>>16,E[F+27|0]=M>>>24,g=z^g+w,E[F+20|0]=g,E[F+21|0]=g>>>8,E[F+22|0]=g>>>16,E[F+23|0]=g>>>24,g=q^S+h,E[F+16|0]=g,E[F+17|0]=g>>>8,E[F+18|0]=g>>>16,E[F+19|0]=g>>>24,g=X^P+s,E[F+12|0]=g,E[F+13|0]=g>>>8,E[F+14|0]=g>>>16,E[F+15|0]=g>>>24,g=L^b+p,E[F+8|0]=g,E[F+9|0]=g>>>8,E[F+10|0]=g>>>16,E[F+11|0]=g>>>24,g=j^Y+u,E[F+4|0]=g,E[F+5|0]=g>>>8,E[F+6|0]=g>>>16,E[F+7|0]=g>>>24,x=!(R=R+1|0)+x|0,!B&C>>>0<=64){if(!(!C|!B&C>>>0>63|0!=(0|B)))for(S=0;E[S+V|0]=a[F+S|0],C>>>0>(S=S+1|0)>>>0;);o[A+52>>2]=x,o[A+48>>2]=R;break}I=I- -64|0,g=F- -64|0,B=B-1|0,B=(C=C+-64|0)>>>0<4294967232?B+1|0:B}}function M(A,I){var g,C=0,B=0,Q=0,i=0,a=0,n=0,r=0;D=g=D-704|0,C=80+((B=o[A+72>>2]>>>3&127)+A|0)|0,B>>>0<=111?HA(C,34640,112-B|0):(HA(C,34640,128-B|0),p(A,B=A+80|0,g,g+640|0),MA(B,0,112)),n=(Q=o[A+64>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+68>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[A+192|0]=C,E[A+193|0]=C>>>8,E[A+194|0]=C>>>16,E[A+195|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[A+196|0]=B,E[A+197|0]=B>>>8,E[A+198|0]=B>>>16,E[A+199|0]=B>>>24,n=(Q=o[A+72>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+76>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[A+200|0]=C,E[A+201|0]=C>>>8,E[A+202|0]=C>>>16,E[A+203|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[A+204|0]=B,E[A+205|0]=B>>>8,E[A+206|0]=B>>>16,E[A+207|0]=B>>>24,p(A,A+80|0,g,g+640|0),n=(Q=o[A>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+4>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[0|I]=C,E[I+1|0]=C>>>8,E[I+2|0]=C>>>16,E[I+3|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+4|0]=B,E[I+5|0]=B>>>8,E[I+6|0]=B>>>16,E[I+7|0]=B>>>24,n=(Q=o[A+8>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+12>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+8|0]=C,E[I+9|0]=C>>>8,E[I+10|0]=C>>>16,E[I+11|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+12|0]=B,E[I+13|0]=B>>>8,E[I+14|0]=B>>>16,E[I+15|0]=B>>>24,n=(Q=o[A+16>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+20>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+16|0]=C,E[I+17|0]=C>>>8,E[I+18|0]=C>>>16,E[I+19|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+20|0]=B,E[I+21|0]=B>>>8,E[I+22|0]=B>>>16,E[I+23|0]=B>>>24,n=(Q=o[A+24>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+28>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+24|0]=C,E[I+25|0]=C>>>8,E[I+26|0]=C>>>16,E[I+27|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+28|0]=B,E[I+29|0]=B>>>8,E[I+30|0]=B>>>16,E[I+31|0]=B>>>24,n=(Q=o[A+32>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+36>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+32|0]=C,E[I+33|0]=C>>>8,E[I+34|0]=C>>>16,E[I+35|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+36|0]=B,E[I+37|0]=B>>>8,E[I+38|0]=B>>>16,E[I+39|0]=B>>>24,n=(Q=o[A+40>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+44>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+40|0]=C,E[I+41|0]=C>>>8,E[I+42|0]=C>>>16,E[I+43|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+44|0]=B,E[I+45|0]=B>>>8,E[I+46|0]=B>>>16,E[I+47|0]=B>>>24,n=(Q=o[A+48>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+52>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+48|0]=C,E[I+49|0]=C>>>8,E[I+50|0]=C>>>16,E[I+51|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+52|0]=B,E[I+53|0]=B>>>8,E[I+54|0]=B>>>16,E[I+55|0]=B>>>24,n=(Q=o[A+56>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,C=I,r=i<<24,i=(a=-16777216&Q)>>>24|0,I=r|a<<8|-16777216&((255&(I=o[A+60>>2]))<<24|Q>>>8)|16711680&((16777215&I)<<8|Q>>>24)|I>>>8&65280|I>>>24,E[C+56|0]=I,E[C+57|0]=I>>>8,E[C+58|0]=I>>>16,E[C+59|0]=I>>>24,I=(I=B|i|n)|(B=0)|B|0,E[C+60|0]=I,E[C+61|0]=I>>>8,E[C+62|0]=I>>>16,E[C+63|0]=I>>>24,$A(g,704),$A(A,208),D=g+704|0}function G(A,I,g){var C,B=0,i=0,n=0,r=0,f=0,t=0;D=C=D+-64|0;A:{if((g-65&255)>>>0>191){if(B=-1,!(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24|a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)){if((r=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)>>>0>=129){if(n=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,f=i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=(r=n+128|0)>>>0<128?i+1|0:i,E[0|B]=r,E[B+1|0]=r>>>8,E[B+2|0]=r>>>16,E[B+3|0]=r>>>24,E[B+4|0]=i,E[B+5|0]=i>>>8,E[B+6|0]=i>>>16,E[B+7|0]=i>>>24,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(B=-1==(0|f)&n>>>0>4294967167)>>>0>(n=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?i+1|0:i,E[A+72|0]=n,E[A+73|0]=n>>>8,E[A+74|0]=n>>>16,E[A+75|0]=n>>>24,E[A+76|0]=i,E[A+77|0]=i>>>8,E[A+78|0]=i>>>16,E[A+79|0]=i>>>24,h(A,i=A+96|0),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,B>>>0>=129)break A;HA(i,A+224|0,B),r=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24}i=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,n=t=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,n=(f=i+r|0)>>>0>>0?n+1|0:n,E[0|B]=f,E[B+1|0]=f>>>8,E[B+2|0]=f>>>16,E[B+3|0]=f>>>24,E[B+4|0]=n,E[B+5|0]=n>>>8,E[B+6|0]=n>>>16,E[B+7|0]=n>>>24,B=(0|n)==(0|t)&i>>>0>f>>>0|n>>>0>>0,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(n=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0>>0?i+1|0:i,E[A+72|0]=n,E[A+73|0]=n>>>8,E[A+74|0]=n>>>16,E[A+75|0]=n>>>24,E[A+76|0]=i,E[A+77|0]=i>>>8,E[A+78|0]=i>>>16,E[A+79|0]=i>>>24,a[A+356|0]&&(E[A+88|0]=255,E[A+89|0]=255,E[A+90|0]=255,E[A+91|0]=255,E[A+92|0]=255,E[A+93|0]=255,E[A+94|0]=255,E[A+95|0]=255),E[A+80|0]=255,E[A+81|0]=255,E[A+82|0]=255,E[A+83|0]=255,E[A+84|0]=255,E[A+85|0]=255,E[A+86|0]=255,E[A+87|0]=255,MA((B=A+96|0)+r|0,0,256-r|0),h(A,B),i=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[C>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[C+4>>2]=i,i=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[C+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[C+12>>2]=i,i=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[C+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[C+20>>2]=i,i=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[C+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[C+28>>2]=i,i=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[C+32>>2]=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24,o[C+36>>2]=i,i=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24,o[C+40>>2]=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[C+44>>2]=i,i=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,o[C+48>>2]=a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24,o[C+52>>2]=i,i=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,o[C+56>>2]=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24,o[C+60>>2]=i,HA(I,C,g),$A(A,64),$A(B,256),B=0}return D=C- -64|0,B}mA(),Q()}e(1280,1142,306,1086),Q()}function U(A,I){var g,C,B,Q,i,n,r,f,t,e,c,y,w,h,s,p,u=0,k=0,l=0,H=0,M=0,G=0,U=0;for(D=g=D-320|0,P(C=A+40|0,I),o[A+84>>2]=0,o[A+88>>2]=0,o[A+80>>2]=1,o[A+92>>2]=0,o[A+96>>2]=0,o[A+100>>2]=0,o[A+104>>2]=0,o[A+108>>2]=0,o[A+112>>2]=0,o[A+116>>2]=0,S(G=g+240|0,C),F(H=g+192|0,G,1344),U=-1,B=o[g+240>>2]-1|0,o[g+240>>2]=B,o[g+192>>2]=o[g+192>>2]+1,Q=o[g+244>>2],i=o[g+248>>2],n=o[g+252>>2],r=o[g+256>>2],f=o[g+260>>2],t=o[g+264>>2],e=o[g+268>>2],c=o[g+272>>2],y=o[g+276>>2],S(M=g+144|0,H),F(M,M,H),S(A,M),F(A,A,H),F(A,A,G),D=k=D-144|0,S(l=k+96|0,A),S(u=k+48|0,l),S(u,u),F(u,A,u),F(l,l,u),S(l,l),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(u,u,l),S(k,u),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),F(u,k,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(u,u,l),S(k,u),u=1;S(k,k),100!=(0|(u=u+1|0)););F(u=k+48|0,k,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(l=k+96|0,u,l),S(l,l),S(l,l),F(A,l,A),D=k+144|0,F(A,A,M),F(A,A,G),S(u=g+96|0,A),F(u,u,H),u=o[g+132>>2],o[g+84>>2]=u-y,k=o[g+128>>2],o[g+80>>2]=k-c,l=o[g+124>>2],o[g+76>>2]=l-e,H=o[g+120>>2],o[g+72>>2]=H-t,M=o[g+116>>2],o[g+68>>2]=M-f,G=o[g+112>>2],o[g+64>>2]=G-r,w=o[g+108>>2],o[g+60>>2]=w-n,h=o[g+104>>2],o[g+56>>2]=h-i,s=o[g+100>>2],o[g+52>>2]=s-Q,p=o[g+96>>2],o[g+48>>2]=p-B,W(g,g+48|0);A:{if(!iA(g,32)){if(o[g+36>>2]=u+y,o[g+32>>2]=k+c,o[g+28>>2]=l+e,o[g+24>>2]=H+t,o[g+20>>2]=M+f,o[g+16>>2]=G+r,o[g+12>>2]=n+w,o[g+8>>2]=i+h,o[g+4>>2]=Q+s,o[g>>2]=B+p,W(u=g+288|0,g),!iA(u,32))break A;F(A,A,1392)}W(g+288|0,A),(1&E[g+288|0])==(a[I+31|0]>>>7|0)&&(o[A>>2]=0-o[A>>2],o[A+36>>2]=0-o[A+36>>2],o[A+32>>2]=0-o[A+32>>2],o[A+28>>2]=0-o[A+28>>2],o[A+24>>2]=0-o[A+24>>2],o[A+20>>2]=0-o[A+20>>2],o[A+16>>2]=0-o[A+16>>2],o[A+12>>2]=0-o[A+12>>2],o[A+8>>2]=0-o[A+8>>2],o[A+4>>2]=0-o[A+4>>2]),F(A+120|0,A,C),U=0}return D=g+320|0,U}function J(A,I,g){var C,B,Q,i,o,n,r,f,t,e,c,y,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0;for(p=1634760805,w=C=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,u=B=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,k=Q=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,F=i=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,M=857760878,l=o=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,h=n=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,H=r=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,U=f=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,I=2036477234,s=t=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,D=1797285236,J=e=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,G=c=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,g=y=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24;S=YA(w+M|0,7)^U,N=YA(S+M|0,9)^G,F=YA(g+p|0,7)^F,Y=YA(F+p|0,9)^H,_=YA(Y+F|0,13)^g,k=YA(D+s|0,7)^k,b=YA(k+D|0,9)^h,H=YA(k+b|0,13)^s,s=YA(b+H|0,18)^D,h=YA(I+l|0,7)^J,g=_^YA(s+h|0,7),G=N^YA(g+s|0,9),J=YA(g+G|0,13)^h,D=YA(G+J|0,18)^s,u=YA(I+h|0,9)^u,l=YA(u+h|0,13)^l,I=YA(l+u|0,18)^I,s=YA(I+S|0,7)^H,H=YA(s+I|0,9)^Y,U=YA(s+H|0,13)^S,I=YA(H+U|0,18)^I,S=YA(S+N|0,13)^w,w=YA(S+N|0,18)^M,l=YA(w+F|0,7)^l,h=YA(l+w|0,9)^b,F=YA(h+l|0,13)^F,M=YA(h+F|0,18)^w,p=YA(Y+_|0,18)^p,w=YA(p+k|0,7)^S,u=YA(w+p|0,9)^u,k=YA(w+u|0,13)^k,p=YA(u+k|0,18)^p,S=K>>>0<18,K=K+2|0,S;);D=D+1797285236|0,E[A+60|0]=D,E[A+61|0]=D>>>8,E[A+62|0]=D>>>16,E[A+63|0]=D>>>24,D=J+e|0,E[A+56|0]=D,E[A+57|0]=D>>>8,E[A+58|0]=D>>>16,E[A+59|0]=D>>>24,D=G+c|0,E[A+52|0]=D,E[A+53|0]=D>>>8,E[A+54|0]=D>>>16,E[A+55|0]=D>>>24,g=g+y|0,E[A+48|0]=g,E[A+49|0]=g>>>8,E[A+50|0]=g>>>16,E[A+51|0]=g>>>24,g=s+t|0,E[A+44|0]=g,E[A+45|0]=g>>>8,E[A+46|0]=g>>>16,E[A+47|0]=g>>>24,I=I+2036477234|0,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,I=U+f|0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,I=H+r|0,E[A+32|0]=I,E[A+33|0]=I>>>8,E[A+34|0]=I>>>16,E[A+35|0]=I>>>24,I=h+n|0,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=l+o|0,E[A+24|0]=I,E[A+25|0]=I>>>8,E[A+26|0]=I>>>16,E[A+27|0]=I>>>24,I=M+857760878|0,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=F+i|0,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,I=k+Q|0,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=u+B|0,E[A+8|0]=I,E[A+9|0]=I>>>8,E[A+10|0]=I>>>16,E[A+11|0]=I>>>24,I=w+C|0,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=p+1634760805|0,E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24}function N(A,I,g,C){var B=0,Q=0,i=0,E=0,n=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0;if(D=o[A+36>>2],c=o[A+32>>2],y=o[A+28>>2],t=o[A+24>>2],e=o[A+20>>2],!C&g>>>0>=16|C)for(M=!a[A+80|0]<<24,s=o[A+4>>2],G=r(s,5),u=o[A+8>>2],S=r(u,5),F=o[A+12>>2],l=r(F,5),H=o[A+16>>2],k=r(H,5),p=o[A>>2];B=DA(i=((a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108863)+t|0,0,F,0),n=w,e=(E=DA(t=(67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+e|0,0,H,0))+B|0,B=w+n|0,B=E>>>0>e>>>0?B+1|0:B,n=DA(y=((a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67108863)+y|0,0,u,0),B=w+B|0,B=n>>>0>(e=n+e|0)>>>0?B+1|0:B,n=DA(c=((a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6|0)+c|0,0,s,0),B=w+B|0,B=n>>>0>(e=n+e|0)>>>0?B+1|0:B,n=DA(D=D+M+((a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24)>>>8)|0,0,p,0),B=w+B|0,U=e=n+e|0,e=n>>>0>e>>>0?B+1|0:B,B=DA(i,0,u,0),n=w,E=DA(t,0,F,0),Q=w+n|0,Q=(B=E+B|0)>>>0>>0?Q+1|0:Q,n=(E=DA(y,0,s,0))+B|0,B=w+Q|0,B=E>>>0>n>>>0?B+1|0:B,E=DA(c,0,p,0),B=w+B|0,B=E>>>0>(n=E+n|0)>>>0?B+1|0:B,E=DA(D,0,k,0),B=w+B|0,J=n=E+n|0,n=E>>>0>n>>>0?B+1|0:B,B=DA(i,0,s,0),f=w,E=(Q=DA(t,0,u,0))+B|0,B=w+f|0,B=Q>>>0>E>>>0?B+1|0:B,f=DA(y,0,p,0),Q=w+B|0,Q=(E=f+E|0)>>>0>>0?Q+1|0:Q,f=DA(c,0,k,0),B=w+Q|0,B=(E=f+E|0)>>>0>>0?B+1|0:B,f=DA(D,0,l,0),B=w+B|0,N=E=f+E|0,E=E>>>0>>0?B+1|0:B,B=DA(i,0,p,0),Q=w,f=(h=DA(t,0,s,0))+B|0,B=w+Q|0,B=f>>>0>>0?B+1|0:B,Q=DA(y,0,k,0),B=w+B|0,B=Q>>>0>(f=Q+f|0)>>>0?B+1|0:B,h=DA(c,0,l,0),Q=w+B|0,Q=(f=h+f|0)>>>0>>0?Q+1|0:Q,h=DA(D,0,S,0),B=w+Q|0,B=(f=h+f|0)>>>0>>0?B+1|0:B,h=f,f=B,B=DA(i,0,k,0),Q=w,i=(t=DA(t,0,p,0))+B|0,B=w+Q|0,B=i>>>0>>0?B+1|0:B,t=DA(y,0,l,0),B=w+B|0,B=(i=t+i|0)>>>0>>0?B+1|0:B,t=DA(c,0,S,0),B=w+B|0,B=(i=t+i|0)>>>0>>0?B+1|0:B,t=DA(D,0,G,0),Q=w+B|0,Q=(i=t+i|0)>>>0>>0?Q+1|0:Q,t=i,B=f,B=(i=(y=(67108863&Q)<<6|i>>>26)+h|0)>>>0>>0?B+1|0:B,y=i,c=(67108863&B)<<6|i>>>26,B=E,B=(i=c+N|0)>>>0>>0?B+1|0:B,c=i,Q=n,D=B=(i=(67108863&B)<<6|i>>>26)+J|0,n=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,t=(67108863&y)+((B=r((67108863&((i=n+U|0)>>>0>>0?B+1|0:B))<<6|i>>>26,5)+(67108863&t)|0)>>>26|0)|0,y=67108863&c,c=67108863&D,D=67108863&i,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);o[A+20>>2]=e,o[A+36>>2]=D,o[A+32>>2]=c,o[A+28>>2]=y,o[A+24>>2]=t}function Y(A,I,g,C){A|=0,I|=0;var B=0;return B=-1,(C|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(D=B=D-128|0,!I|((C&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(mA(),Q()):(MA(A- -64|0,0,293),E[A+56|0]=121,E[A+57|0]=33,E[A+58|0]=126,E[A+59|0]=19,E[A+60|0]=25,E[A+61|0]=205,E[A+62|0]=224,E[A+63|0]=91,E[A+48|0]=107,E[A+49|0]=189,E[A+50|0]=65,E[A+51|0]=251,E[A+52|0]=171,E[A+53|0]=217,E[A+54|0]=131,E[A+55|0]=31,E[A+40|0]=31,E[A+41|0]=108,E[A+42|0]=62,E[A+43|0]=43,E[A+44|0]=140,E[A+45|0]=104,E[A+46|0]=5,E[A+47|0]=155,E[A+32|0]=209,E[A+33|0]=130,E[A+34|0]=230,E[A+35|0]=173,E[A+36|0]=127,E[A+37|0]=82,E[A+38|0]=14,E[A+39|0]=81,E[A+24|0]=241,E[A+25|0]=54,E[A+26|0]=29,E[A+27|0]=95,E[A+28|0]=58,E[A+29|0]=245,E[A+30|0]=79,E[A+31|0]=165,E[A+16|0]=43,E[A+17|0]=248,E[A+18|0]=148,E[A+19|0]=254,E[A+20|0]=114,E[A+21|0]=243,E[A+22|0]=110,E[A+23|0]=60,E[A+8|0]=59,E[A+9|0]=167,E[A+10|0]=202,E[A+11|0]=132,E[A+12|0]=133,E[A+13|0]=174,E[A+14|0]=103,E[A+15|0]=187,C=-222443256^(g<<8|C),E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,C=g>>>24^1779033703,E[A+4|0]=C,E[A+5|0]=C>>>8,E[A+6|0]=C>>>16,E[A+7|0]=C>>>24,MA(g+B|0,0,g<<24>>24>=0?128-g|0:0),g=HA(B,I,g),HA(A+96|0,g,128),I=128+(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,E[A+352|0]=I,E[A+353|0]=I>>>8,E[A+354|0]=I>>>16,E[A+355|0]=I>>>24,$A(g,128),D=g+128|0)):(((I=255&C)-65&255)>>>0<=191&&(mA(),Q()),MA(A- -64|0,0,293),E[A+56|0]=121,E[A+57|0]=33,E[A+58|0]=126,E[A+59|0]=19,E[A+60|0]=25,E[A+61|0]=205,E[A+62|0]=224,E[A+63|0]=91,E[A+48|0]=107,E[A+49|0]=189,E[A+50|0]=65,E[A+51|0]=251,E[A+52|0]=171,E[A+53|0]=217,E[A+54|0]=131,E[A+55|0]=31,E[A+40|0]=31,E[A+41|0]=108,E[A+42|0]=62,E[A+43|0]=43,E[A+44|0]=140,E[A+45|0]=104,E[A+46|0]=5,E[A+47|0]=155,E[A+32|0]=209,E[A+33|0]=130,E[A+34|0]=230,E[A+35|0]=173,E[A+36|0]=127,E[A+37|0]=82,E[A+38|0]=14,E[A+39|0]=81,E[A+24|0]=241,E[A+25|0]=54,E[A+26|0]=29,E[A+27|0]=95,E[A+28|0]=58,E[A+29|0]=245,E[A+30|0]=79,E[A+31|0]=165,E[A+16|0]=43,E[A+17|0]=248,E[A+18|0]=148,E[A+19|0]=254,E[A+20|0]=114,E[A+21|0]=243,E[A+22|0]=110,E[A+23|0]=60,E[A+8|0]=59,E[A+9|0]=167,E[A+10|0]=202,E[A+11|0]=132,E[A+12|0]=133,E[A+13|0]=174,E[A+14|0]=103,E[A+15|0]=187,I^=-222443256,E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24,E[A+4|0]=103,E[A+5|0]=230,E[A+6|0]=9,E[A+7|0]=106),B=0),0|B}function b(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g+40|0),F(c,c,g),F(A+120|0,g+120|0,I+120|0),F(A,I+80|0,g+80|0),b=o[A+4>>2],Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],r=o[A+28>>2],f=o[A+32>>2],t=o[A+36>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],e=o[A>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=o[A+156>>2],g=t<<1,o[A+156>>2]=I+g,c=o[A+152>>2],y=f<<1,o[A+152>>2]=c+y,w=o[A+148>>2],h=r<<1,o[A+148>>2]=w+h,s=o[A+144>>2],p=n<<1,o[A+144>>2]=s+p,u=o[A+140>>2],k=a<<1,o[A+140>>2]=u+k,l=o[A+136>>2],S=E<<1,o[A+136>>2]=l+S,H=o[A+132>>2],M=i<<1,o[A+132>>2]=H+M,D=o[A+128>>2],G=Q<<1,o[A+128>>2]=D+G,U=o[A+124>>2],J=b<<1,o[A+124>>2]=U+J,N=o[A+120>>2],Y=e<<1,o[A+120>>2]=N+Y,o[A+112>>2]=y-c,o[A+108>>2]=h-w,o[A+104>>2]=p-s,o[A+100>>2]=k-u,o[A+96>>2]=S-l,o[A+92>>2]=M-H,o[A+88>>2]=G-D,o[A+84>>2]=J-U,o[A+80>>2]=Y-N,o[A+116>>2]=g-I}function _(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g),F(c,c,g+40|0),F(A+120|0,g+120|0,I+120|0),F(A,I+80|0,g+80|0),b=o[A+4>>2],Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],r=o[A+28>>2],f=o[A+32>>2],t=o[A+36>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],e=o[A>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=t<<1,g=o[A+156>>2],o[A+156>>2]=I-g,c=f<<1,y=o[A+152>>2],o[A+152>>2]=c-y,w=r<<1,h=o[A+148>>2],o[A+148>>2]=w-h,s=n<<1,p=o[A+144>>2],o[A+144>>2]=s-p,u=a<<1,k=o[A+140>>2],o[A+140>>2]=u-k,l=E<<1,S=o[A+136>>2],o[A+136>>2]=l-S,H=i<<1,M=o[A+132>>2],o[A+132>>2]=H-M,D=Q<<1,G=o[A+128>>2],o[A+128>>2]=D-G,U=b<<1,J=o[A+124>>2],o[A+124>>2]=U-J,N=e<<1,Y=o[A+120>>2],o[A+120>>2]=N-Y,o[A+112>>2]=c+y,o[A+108>>2]=w+h,o[A+104>>2]=s+p,o[A+100>>2]=u+k,o[A+96>>2]=l+S,o[A+92>>2]=H+M,o[A+88>>2]=D+G,o[A+84>>2]=U+J,o[A+80>>2]=N+Y,o[A+116>>2]=I+g}function K(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g),F(c,c,g+40|0),F(A+120|0,g+80|0,I+120|0),b=o[I+80>>2],Q=o[I+84>>2],i=o[I+88>>2],E=o[I+92>>2],a=o[I+96>>2],n=o[I+100>>2],r=o[I+104>>2],f=o[I+108>>2],t=o[I+112>>2],e=o[I+116>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=e<<1,g=o[A+156>>2],o[A+156>>2]=I-g,c=t<<1,y=o[A+152>>2],o[A+152>>2]=c-y,w=f<<1,h=o[A+148>>2],o[A+148>>2]=w-h,s=r<<1,p=o[A+144>>2],o[A+144>>2]=s-p,u=n<<1,k=o[A+140>>2],o[A+140>>2]=u-k,l=a<<1,S=o[A+136>>2],o[A+136>>2]=l-S,H=E<<1,M=o[A+132>>2],o[A+132>>2]=H-M,D=i<<1,G=o[A+128>>2],o[A+128>>2]=D-G,U=Q<<1,J=o[A+124>>2],o[A+124>>2]=U-J,N=b<<1,Y=o[A+120>>2],o[A+120>>2]=N-Y,o[A+112>>2]=c+y,o[A+108>>2]=w+h,o[A+104>>2]=s+p,o[A+100>>2]=u+k,o[A+96>>2]=l+S,o[A+92>>2]=H+M,o[A+88>>2]=D+G,o[A+84>>2]=U+J,o[A+80>>2]=N+Y,o[A+116>>2]=I+g}function P(A,I){var g,C,B,Q,i,E,n,r,f,t,e,c,y,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0;c=a[I+31|0],g=a[I+30|0],C=a[I+29|0],B=a[I+6|0],Q=a[I+5|0],i=a[I+4|0],E=a[I+9|0],n=a[I+8|0],r=a[I+7|0],H=a[I+12|0],M=a[I+11|0],f=a[I+10|0],t=a[I+15|0],G=a[I+14|0],e=a[I+13|0],F=a[I+28|0],S=a[I+27|0],l=a[I+26|0],k=a[I+25|0],p=a[I+24|0],s=a[I+23|0],y=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,u=(D=a[I+21|0])<<15,D=h=D>>>17|0,J=u,h=(u=a[I+20|0])>>>25|0,u=J|u<<7,U=D|h,D=(h=a[I+22|0])>>>9|0,u|=h<<23,D|=U,h=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=0,J=h,h=(33554431&(I=(U=h+16777216|0)>>>0<16777216?1:I))<<7|U>>>25,I=(I>>>25|0)+D|0,h=(D=u=h+u|0)>>>0>>0?I+1|0:I,I=(u=D+33554432|0)>>>0<33554432?h+1|0:h,o[A+24>>2]=D-(-67108864&u),h=(D=s>>>27|0)|p>>>19|k>>>11,D=s=(p=k<<21|(s=p<<13|s<<5))+(D=(67108863&(D=I))<<6|u>>>26)|0,I=h,h=(s=p+16777216|0)>>>0<16777216?I+1|0:I,o[A+28>>2]=D-(1040187392&s),D=(D=S>>>20|l>>>28|F>>>12)+(h=(I=h)>>>25|0)|0,I=(h=s=(I=(33554431&I)<<7|s>>>25)+(S<<12|l<<4|F<<20)|0)>>>0>>0?D+1|0:D,s=(F=h+33554432|0)>>>0<33554432?I+1|0:I,o[A+32>>2]=h-(-67108864&F),D=(I=H>>>13|0)|(h=M>>>21|f>>>29),I=(D=(S=16777216+(H=M<<11|f<<3|H<<19)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(h=p=G<<10|e<<2|t<<18)+(p=(33554431&D)<<7|S>>>25)|0,h=I+(k=G>>>22|e>>>30|t>>>14)|0,I=D>>>0

>>0?h+1|0:h,p=I=(67108863&(I=(h=D+33554432|0)>>>0<33554432?I+1|0:I))<<6|h>>>26,I=I+(l=J-(-33554432&U)|0)|0,o[A+20>>2]=I,o[A+16>>2]=D-(-67108864&h),h=Q>>>18|i>>>26|B>>>10,D=(h=(l=16777216+(M=Q<<14|i<<6|B<<22)|0)>>>0<16777216?h+1|0:h)>>>25|0,h=(I=p=n<<13|r<<5|E<<21)+(p=(33554431&h)<<7|l>>>25)|0,I=D+(k=n>>>19|r>>>27|E>>>11)|0,I=h>>>0

>>0?I+1|0:I,D=(k=h+33554432|0)>>>0<33554432?I+1|0:I,o[A+8>>2]=h-(-67108864&k),F=(s=(67108863&s)<<6|F>>>26)+(G=c<<18&33292288|g<<10|C<<2)|0,I=h=g>>>22|C>>>30,h=(s=G+16777216|0)>>>0<16777216?I+1|0:I,o[A+36>>2]=F-(33554432&s),D=H+((67108863&D)<<6|k>>>26)|0,o[A+12>>2]=D-(234881024&S),p=M-(2113929216&l)|0,D=DA((33554431&(I=h))<<7|s>>>25,h=I>>>25|0,19,0),I=w,D=D>>>0>(h=D+y|0)>>>0?I+1|0:I,s=D=(67108863&(D=(I=h+33554432|0)>>>0<33554432?D+1|0:D))<<6|I>>>26,D=D+p|0,o[A+4>>2]=D,o[A>>2]=h-(-67108864&I)}function v(A,I){var g,C,B,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0;for(D=g=D-480|0;i=(n=g+288|0)+(Q<<1)|0,c=a[I+Q|0],E[i+1|0]=c>>>4,E[0|i]=15&c,n=n+((i=1|Q)<<1)|0,i=a[I+i|0],E[n+1|0]=i>>>4,E[0|n]=15&i,32!=(0|(Q=Q+2|0)););for(I=0;Q=8+(n=(Q=I)+a[0|(I=(g+288|0)+r|0)]|0)|0,E[0|I]=n-(240&Q),Q=8+(n=a[I+1|0]+(Q<<24>>24>>4)|0)|0,E[I+1|0]=n-(240&Q),Q=8+(n=a[I+2|0]+(Q<<24>>24>>4)|0)|0,E[I+2|0]=n-(240&Q),I=Q<<24>>24>>4,63!=(0|(r=r+3|0)););for(E[g+351|0]=a[g+351|0]+I,o[A+32>>2]=0,o[A+36>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,o[A+44>>2]=0,o[A+48>>2]=0,o[(c=A+40|0)>>2]=1,o[A+52>>2]=0,o[A+56>>2]=0,o[A+60>>2]=0,o[A+64>>2]=0,o[A+68>>2]=0,o[A+72>>2]=0,o[A+76>>2]=0,o[A+80>>2]=1,MA(A+84|0,0,76),C=A+120|0,B=A+80|0,I=g+208|0,n=g+168|0,r=g+248|0,Q=1;q(f=g+8|0,Q>>>1|0,E[(g+288|0)+Q|0]),K(i=g+128|0,A,f),F(A,i,r),F(c,n,I),F(B,I,r),F(C,i,n),i=Q>>>0<62,Q=Q+2|0,i;);for(Q=o[A+8>>2],i=o[A+12>>2],f=o[A+16>>2],t=o[A+20>>2],y=o[A+24>>2],w=o[A+28>>2],e=o[A>>2],h=o[A+4>>2],s=o[A+36>>2],o[g+392>>2]=o[A+32>>2],o[g+396>>2]=s,o[g+384>>2]=y,o[g+388>>2]=w,o[g+376>>2]=f,o[g+380>>2]=t,o[g+368>>2]=Q,o[g+372>>2]=i,o[g+360>>2]=e,o[g+364>>2]=h,Q=o[A+40>>2],i=o[A+44>>2],f=o[A+48>>2],t=o[A+52>>2],y=o[A+56>>2],w=o[A+60>>2],h=o[(e=A- -64|0)>>2],e=o[e+4>>2],s=o[A+76>>2],o[g+432>>2]=o[A+72>>2],o[g+436>>2]=s,o[g+424>>2]=h,o[g+428>>2]=e,o[g+416>>2]=y,o[g+420>>2]=w,o[g+408>>2]=f,o[g+412>>2]=t,o[g+400>>2]=Q,o[g+404>>2]=i,Q=o[A+80>>2],i=o[A+84>>2],f=o[A+88>>2],t=o[A+92>>2],y=o[A+96>>2],w=o[A+100>>2],e=o[A+104>>2],h=o[A+108>>2],s=o[A+116>>2],o[g+472>>2]=o[A+112>>2],o[g+476>>2]=s,o[g+464>>2]=e,o[g+468>>2]=h,o[g+456>>2]=y,o[g+460>>2]=w,o[g+448>>2]=f,o[g+452>>2]=t,o[g+440>>2]=Q,o[g+444>>2]=i,l(Q=g+128|0,i=g+360|0),F(i,Q,r),F(f=g+400|0,n,I),F(t=g+440|0,I,r),l(Q,i),F(i,Q,r),F(f,n,I),F(t,I,r),l(Q,i),F(i,Q,r),F(f,n,I),F(t,I,r),l(Q,i),F(A,Q,r),F(c,n,I),F(B,I,r),F(C,Q,n),Q=0;q(f=g+8|0,Q>>>1|0,E[(g+288|0)+Q|0]),K(i=g+128|0,A,f),F(A,i,r),F(c,n,I),F(B,I,r),F(C,i,n),i=Q>>>0<62,Q=Q+2|0,i;);D=g+480|0}function m(A,I,g,C){var B,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0;if(D=B=D-704|0,g|C)if(Q=(C<<3|g>>>29)+(i=n=o[A+76>>2])|0,f=(t=o[A+72>>2])+(r=g<<3)|0,o[A+72>>2]=f,Q=r>>>0>f>>>0?Q+1|0:Q,o[A+76>>2]=Q,n=o[4+(r=A- -64|0)>>2],n=(e=Q=(0|Q)==(0|i)&f>>>0>>0|Q>>>0>>0)>>>0>(Q=Q+o[r>>2]|0)>>>0?n+1|0:n,f=(e=C>>>29|0)+Q|0,Q=n,o[r>>2]=f,o[r+4>>2]=f>>>0>>0?Q+1|0:Q,(0|(n=e=0-((Q=0)+((r=127&((7&i)<<29|t>>>3))>>>0>128)|0)|0))==(0|C)&g>>>0>=(f=128-r|0)>>>0|C>>>0>n>>>0){if(i=0,n=0,!Q&(127^r)>>>0>=3|Q)for(s=252&f,t=A+80|0;E[(Q=i+r|0)+t|0]=a[I+i|0],E[t+(r+(Q=1|i)|0)|0]=a[I+Q|0],E[t+(r+(Q=2|i)|0)|0]=a[I+Q|0],E[t+(r+(Q=3|i)|0)|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(w=w+4|0)>>>0<4?Q+1|0:Q,(0|w)!=(0|s)|(0|h)!=(0|Q););if(t=Q=0,Q|(y=3&f))for(;E[80+(A+(Q=i+r|0)|0)|0]=a[I+i|0],Q=n,n=(i=i+1|0)?Q:Q+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|y)!=(0|c)|(0|t)!=(0|Q););if(p(A,A+80|0,B,i=B+640|0),I=I+f|0,!(C=C-((g>>>0>>0)+e|0)|0)&(g=g-f|0)>>>0>127|C)for(;p(A,I,B,i),I=I+128|0,!(C=C-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|C;);if(g|C){if(w=3&g,f=0,c=0,h=0,i=0,n=0,!C&g>>>0>=4|C)for(r=-4&g,t=C,y=A+80|0,g=0,C=0;E[i+y|0]=a[I+i|0],E[(Q=1|i)+y|0]=a[I+Q|0],E[(Q=2|i)+y|0]=a[I+Q|0],E[(Q=3|i)+y|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=C,C=Q=(g=g+4|0)>>>0<4?Q+1|0:Q,(0|g)!=(0|r)|(0|t)!=(0|Q););if(f|w)for(;E[80+(A+i|0)|0]=a[I+i|0],n=(i=i+1|0)?n:n+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|c)!=(0|w)|(0|f)!=(0|Q););}$A(B,704)}else{if(i=0,n=0,!C&g>>>0>=4|C)for(f=-4&g,t=C,C=A+80|0;E[C+(Q=i+r|0)|0]=a[I+i|0],E[C+(e=r+(Q=1|i)|0)|0]=a[I+Q|0],E[C+(e=r+(Q=2|i)|0)|0]=a[I+Q|0],E[C+(e=r+(Q=3|i)|0)|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(w=w+4|0)>>>0<4?Q+1|0:Q,(0|f)!=(0|w)|(0|t)!=(0|Q););if((g&=3)|(C=0))for(;E[80+(A+(Q=i+r|0)|0)|0]=a[I+i|0],n=(i=i+1|0)?n:n+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|g)!=(0|c)|(0|C)!=(0|Q););}return D=B+704|0,0}function d(A,I,g){var C=0,B=0,Q=0,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0;for(B=2036477234,i=857760878,C=1634760805,n=1797285236,Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,t=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,o=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,e=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,r=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,p=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,c=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,y=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,D=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,w=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;f=g,g=YA((h=I)^(I=g+C|0),16),f=c=YA(f^(C=g+c|0),12),u=YA((h=I+c|0)^g,8),I=YA(f^(c=u+C|0),7),C=y,y=YA((g=n+y|0)^Q,16),C=YA(C^(e=y+e|0),12),Q=D,n=YA((B=B+D|0)^t,16),Q=YA(Q^(D=n+r|0),12),r=YA((B=Q+B|0)^n,8),g=YA(r^(n=I+(s=g+C|0)|0),16),t=YA((i=i+w|0)^o,16),w=YA((o=t+p|0)^w,12),f=I,I=YA((i=i+w|0)^t,8),f=YA(f^(o=g+(k=I+o|0)|0),12),t=YA(g^(n=f+n|0),8),g=YA((p=t+o|0)^f,7),f=B,B=C,s=YA(y^s,8),B=YA(B^(C=s+e|0),7),y=YA((o=f+B|0)^I,16),e=YA((I=y+c|0)^B,12),o=YA(y^(B=e+o|0),8),y=YA((c=I+o|0)^e,7),I=YA((I=Q)^(Q=r+D|0),7),D=YA((i=I+i|0)^u,16),r=YA(I^(C=D+C|0),12),I=YA(D^(i=r+i|0),8),D=YA((e=C+I|0)^r,7),f=Q,C=YA(w^k,7),r=YA((Q=C+h|0)^s,16),h=YA(C^(w=f+r|0),12),Q=YA(r^(C=h+Q|0),8),w=YA((r=w+Q|0)^h,7),10!=(0|(F=F+1|0)););E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+28|0]=Q,E[A+29|0]=Q>>>8,E[A+30|0]=Q>>>16,E[A+31|0]=Q>>>24,E[A+24|0]=t,E[A+25|0]=t>>>8,E[A+26|0]=t>>>16,E[A+27|0]=t>>>24,E[A+20|0]=o,E[A+21|0]=o>>>8,E[A+22|0]=o>>>16,E[A+23|0]=o>>>24,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,E[A+12|0]=n,E[A+13|0]=n>>>8,E[A+14|0]=n>>>16,E[A+15|0]=n>>>24,E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+4|0]=i,E[A+5|0]=i>>>8,E[A+6|0]=i>>>16,E[A+7|0]=i>>>24}function L(A,I,g){var C=0,B=0,Q=0,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0;for(C=1797285236,r=2036477234,f=857760878,B=1634760805,Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,o=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,i=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,h=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,w=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,s=20,y=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,D=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,t=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,e=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,c=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;n=YA(g+f|0,7)^Q,p=YA(n+f|0,9)^w,t=YA(B+y|0,7)^t,u=YA(t+B|0,9)^o,k=YA(u+t|0,13)^y,e=YA(C+D|0,7)^e,i=YA(e+C|0,9)^i,o=YA(i+e|0,13)^D,C=YA(i+o|0,18)^C,Q=YA(I+r|0,7)^h,y=k^YA(C+Q|0,7),w=p^YA(y+C|0,9),h=YA(y+w|0,13)^Q,C=YA(w+h|0,18)^C,c=YA(Q+r|0,9)^c,F=YA(c+Q|0,13)^I,I=YA(F+c|0,18)^r,D=YA(I+n|0,7)^o,o=YA(D+I|0,9)^u,Q=YA(o+D|0,13)^n,r=YA(Q+o|0,18)^I,n=YA(n+p|0,13)^g,g=YA(n+p|0,18)^f,I=YA(g+t|0,7)^F,i=YA(I+g|0,9)^i,t=YA(I+i|0,13)^t,f=YA(i+t|0,18)^g,B=YA(u+k|0,18)^B,g=YA(B+e|0,7)^n,c=YA(g+B|0,9)^c,e=YA(g+c|0,13)^e,B=YA(c+e|0,18)^B,n=s>>>0>2,s=s-2|0,n;);return E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+28|0]=Q,E[A+29|0]=Q>>>8,E[A+30|0]=Q>>>16,E[A+31|0]=Q>>>24,E[A+24|0]=o,E[A+25|0]=o>>>8,E[A+26|0]=o>>>16,E[A+27|0]=o>>>24,E[A+20|0]=i,E[A+21|0]=i>>>8,E[A+22|0]=i>>>16,E[A+23|0]=i>>>24,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,E[A+12|0]=C,E[A+13|0]=C>>>8,E[A+14|0]=C>>>16,E[A+15|0]=C>>>24,E[A+8|0]=r,E[A+9|0]=r>>>8,E[A+10|0]=r>>>16,E[A+11|0]=r>>>24,E[A+4|0]=f,E[A+5|0]=f>>>8,E[A+6|0]=f>>>16,E[A+7|0]=f>>>24,0}function R(A,I,g,C,B,i,E){var a=0,n=0,r=0,f=0,t=0,e=0,c=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=D,D=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((n=255&I)-65&255)>>>0<=191|!(!(I=255&E)||i)|I>>>0>=65)){if(I){if(!i)break I;MA(a- -64|0,0,293),o[a+56>>2]=327033209,o[a+60>>2]=1541459225,o[a+48>>2]=-79577749,o[a+52>>2]=528734635,o[a+40>>2]=725511199,o[a+44>>2]=-1694144372,o[a+32>>2]=-1377402159,o[a+36>>2]=1359893119,o[a+24>>2]=1595750129,o[a+28>>2]=-1521486534,o[a+16>>2]=-23791573,o[a+20>>2]=1013904242,o[a+8>>2]=-2067093701,o[a+12>>2]=-1150833019,o[a>>2]=-222443256^(I<<8|n),o[a+4>>2]=I>>>24^1779033703,MA((E=a+384|0)+I|0,0,128-I|0),HA(E,i,I),HA(a+96|0,E,128),o[a+352>>2]=128,$A(E,128),I=128}else MA(a- -64|0,0,293),o[a+56>>2]=327033209,o[a+60>>2]=1541459225,o[a+48>>2]=-79577749,o[a+52>>2]=528734635,o[a+40>>2]=725511199,o[a+44>>2]=-1694144372,o[a+32>>2]=-1377402159,o[a+36>>2]=1359893119,o[a+24>>2]=1595750129,o[a+28>>2]=-1521486534,o[a+16>>2]=-23791573,o[a+20>>2]=1013904242,o[a+8>>2]=-2067093701,o[a+12>>2]=-1150833019,o[a>>2]=-222443256^n,o[a+4>>2]=1779033703,I=0;g:if(C|B)for(c=a+224|0,r=a+96|0;;){if(E=I+r|0,!B&C>>>0<=(i=256-I|0)>>>0){HA(E,g,C),o[a+352>>2]=C+o[a+352>>2];break g}if(HA(E,g,i),o[a+352>>2]=i+o[a+352>>2],f=I=o[a+68>>2],I=(t=(E=o[a+64>>2])+128|0)>>>0<128?I+1|0:I,o[a+64>>2]=t,o[a+68>>2]=I,I=o[a+76>>2],I=(f=E=-1==(0|f)&E>>>0>4294967167)>>>0>(E=E+o[a+72>>2]|0)>>>0?I+1|0:I,o[a+72>>2]=E,o[a+76>>2]=I,h(a,r),HA(r,c,128),I=o[a+352>>2]-128|0,o[a+352>>2]=I,g=g+i|0,!((B=B-(C>>>0>>0)|0)|(C=C-i|0)))break}G(a,A,n),D=e;break A}mA(),Q()}A=0}return A}function x(A,I,g,C){var B=0,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0;A:{if((i=o[A+56>>2])|(B=o[A+60>>2])){if(c=Q=16-i|0,r=(Q=(0|(n=0-((i>>>0>16)+B|0)|0))==(0|C)&g>>>0>Q>>>0|C>>>0>n>>>0)?c:g,c=Q=Q?n:C,Q|r){if(Q=0,i=0,!c&r>>>0>=4|c)for(f=-4&r,n=A- -64|0;B=Q+o[A+56>>2]|0,E[B+n|0]=a[I+Q|0],B=(y=1|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=(y=2|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=(y=3|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=i,i=(Q=Q+4|0)>>>0<4?B+1|0:B,B=t,t=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|e)!=(0|f)|(0|c)!=(0|B););if(n=B=0,B|(t=3&r))for(;e=Q+o[A+56>>2]|0,E[(A+e|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=w,w=B=(D=D+1|0)?B:B+1|0,(0|t)!=(0|D)|(0|n)!=(0|B););i=o[A+56>>2],B=o[A+60>>2]}if(B=B+c|0,B=(i=i+r|0)>>>0>>0?B+1|0:B,o[A+56>>2]=i,o[A+60>>2]=B,!B&i>>>0<16)break A;N(A,A- -64|0,16,0),o[A+56>>2]=0,o[A+60>>2]=0,g=(i=g)-r|0,C=C-((i>>>0>>0)+c|0)|0,I=I+r|0}if(!C&g>>>0>=16|C&&(N(A,I,i=-16&g,C),g&=15,C=0,I=I+i|0),g|C){if(D=0,w=0,Q=0,i=0,!C&g>>>0>=4|C)for(r=12&g,c=0,n=A- -64|0,e=0,t=0;B=Q+o[A+56>>2]|0,E[B+n|0]=a[I+Q|0],B=(f=1|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],B=(f=2|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],B=(f=3|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],i=(Q=Q+4|0)>>>0<4?i+1|0:i,B=t,t=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|r)!=(0|e)|(0|c)!=(0|B););if(n=B=0,B|(t=3&g))for(;B=Q+o[A+56>>2]|0,E[(A+B|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=w,w=B=(D=D+1|0)?B:B+1|0,(0|t)!=(0|D)|(0|n)!=(0|B););i=C+o[A+60>>2]|0,i=(I=g+o[A+56>>2]|0)>>>0>>0?i+1|0:i,o[A+56>>2]=I,o[A+60>>2]=i}}}function j(A,I,g){var C,B=0,Q=0,i=0,E=0,a=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0;y=o[I+4>>2],B=o[A+4>>2],D=o[I+8>>2],Q=o[A+8>>2],w=o[I+12>>2],i=o[A+12>>2],h=o[I+16>>2],E=o[A+16>>2],s=o[I+20>>2],a=o[A+20>>2],p=o[I+24>>2],n=o[A+24>>2],e=o[I+28>>2],r=o[A+28>>2],u=o[I+32>>2],f=o[A+32>>2],k=o[I+36>>2],t=o[A+36>>2],g=0-g|0,c=o[A>>2],o[A>>2]=g&(c^o[I>>2])^c,o[A+36>>2]=t^g&(t^k),o[A+32>>2]=f^g&(f^u),o[A+28>>2]=r^g&(r^e),o[A+24>>2]=n^g&(n^p),o[A+20>>2]=a^g&(a^s),o[A+16>>2]=E^g&(E^h),o[A+12>>2]=i^g&(i^w),o[A+8>>2]=Q^g&(Q^D),o[A+4>>2]=B^g&(B^y),B=o[A+40>>2],y=o[I+40>>2],Q=o[A+44>>2],D=o[I+44>>2],i=o[A+48>>2],w=o[I+48>>2],E=o[A+52>>2],h=o[I+52>>2],a=o[A+56>>2],s=o[I+56>>2],n=o[A+60>>2],p=o[I+60>>2],r=o[(e=A- -64|0)>>2],u=o[I- -64>>2],f=o[A+68>>2],k=o[I+68>>2],t=o[A+72>>2],c=o[I+72>>2],C=o[A+76>>2],o[A+76>>2]=C^g&(o[I+76>>2]^C),o[A+72>>2]=t^g&(t^c),o[A+68>>2]=f^g&(f^k),o[e>>2]=r^g&(r^u),o[A+60>>2]=n^g&(n^p),o[A+56>>2]=a^g&(a^s),o[A+52>>2]=E^g&(E^h),o[A+48>>2]=i^g&(i^w),o[A+44>>2]=Q^g&(Q^D),o[A+40>>2]=B^g&(B^y),B=o[A+80>>2],y=o[I+80>>2],Q=o[A+84>>2],D=o[I+84>>2],i=o[A+88>>2],w=o[I+88>>2],E=o[A+92>>2],h=o[I+92>>2],a=o[A+96>>2],s=o[I+96>>2],n=o[A+100>>2],p=o[I+100>>2],r=o[A+104>>2],e=o[I+104>>2],f=o[A+108>>2],u=o[I+108>>2],t=o[A+112>>2],k=o[I+112>>2],c=o[I+116>>2],I=o[A+116>>2],o[A+116>>2]=g&(c^I)^I,o[A+112>>2]=t^g&(t^k),o[A+108>>2]=f^g&(f^u),o[A+104>>2]=r^g&(r^e),o[A+100>>2]=n^g&(n^p),o[A+96>>2]=a^g&(a^s),o[A+92>>2]=E^g&(E^h),o[A+88>>2]=i^g&(i^w),o[A+84>>2]=Q^g&(Q^D),o[A+80>>2]=B^g&(B^y)}function X(A,I){var g,C,B=0;for(D=g=D-192|0,S(C=g+144|0,I),S(B=g+96|0,C),S(B,B),F(B,I,B),F(C,C,B),S(I=g+48|0,C),F(B,B,I),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),F(B,I,B),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(I,I,B),S(g,I),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),F(I,g,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(B,I,B),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(I,I,B),S(g,I),I=1;S(g,g),100!=(0|(I=I+1|0)););F(I=g+48|0,g,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(B=g+96|0,I,B),S(B,B),S(B,B),S(B,B),S(B,B),S(B,B),F(A,B,g+144|0),D=g+192|0}function q(A,I,g){var C,B=0,Q=0,i=0,E=0,a=0,n=0,f=0,t=0;D=C=D-128|0,o[A>>2]=1,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+32>>2]=0,o[A+36>>2]=0,o[A+40>>2]=1,MA(A+44|0,0,76),j(A,B=r(I,960)+2704|0,(255&(1^(I=g-((g>>31&g)<<1)|0)))-1>>>31|0),j(A,B+120|0,(255&(2^I))-1>>>31|0),j(A,B+240|0,(255&(3^I))-1>>>31|0),j(A,B+360|0,(255&(4^I))-1>>>31|0),j(A,B+480|0,(255&(5^I))-1>>>31|0),j(A,B+600|0,(255&(6^I))-1>>>31|0),j(A,B+720|0,(255&(7^I))-1>>>31|0),j(A,B+840|0,(255&(8^I))-1>>>31|0),Q=o[A+40>>2],i=o[A+44>>2],E=o[A+48>>2],a=o[A+52>>2],n=o[A+56>>2],f=o[A+60>>2],t=o[(I=A- -64|0)>>2],B=o[I+4>>2],I=o[A+76>>2],o[C+40>>2]=o[A+72>>2],o[C+44>>2]=I,o[C+32>>2]=t,o[C+36>>2]=B,o[C+24>>2]=n,o[C+28>>2]=f,o[C+16>>2]=E,o[C+20>>2]=a,o[C+8>>2]=Q,o[C+12>>2]=i,Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],f=o[A+28>>2],t=o[A>>2],B=o[A+4>>2],I=o[A+36>>2],o[C+80>>2]=o[A+32>>2],o[C+84>>2]=I,o[C+72>>2]=n,o[C+76>>2]=f,o[(I=C- -64|0)>>2]=E,o[I+4>>2]=a,o[C+56>>2]=Q,o[C+60>>2]=i,o[C+48>>2]=t,o[C+52>>2]=B,Q=o[A+80>>2],i=o[A+84>>2],E=o[A+88>>2],a=o[A+92>>2],n=o[A+96>>2],f=o[A+100>>2],t=o[A+104>>2],B=o[A+108>>2],I=o[A+112>>2],o[C+124>>2]=0-o[A+116>>2],o[C+120>>2]=0-I,o[C+116>>2]=0-B,o[C+112>>2]=0-t,o[C+108>>2]=0-f,o[C+104>>2]=0-n,o[C+100>>2]=0-a,o[C+96>>2]=0-E,o[C+92>>2]=0-i,o[C+88>>2]=0-Q,j(A,C+8|0,(128&g)>>>7|0),D=C+128|0}function z(A,I,g,C){var B=0,Q=0,i=0,o=0,n=0,r=0,f=0;if(g|C)A:for(f=A+224|0,n=A+96|0,Q=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24;;){if(B=Q+n|0,!C&g>>>0<=(i=256-Q|0)>>>0){HA(B,I,g),I=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+g|0,E[A+352|0]=I,E[A+353|0]=I>>>8,E[A+354|0]=I>>>16,E[A+355|0]=I>>>24;break A}if(HA(B,I,i),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+i|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,r=Q=a[A+68|0]|a[A+69|0]<<8|a[A+70|0]<<16|a[A+71|0]<<24,Q=(o=128+(B=a[A+64|0]|a[A+65|0]<<8|a[A+66|0]<<16|a[A+67|0]<<24)|0)>>>0<128?Q+1|0:Q,E[A+64|0]=o,E[A+65|0]=o>>>8,E[A+66|0]=o>>>16,E[A+67|0]=o>>>24,E[A+68|0]=Q,E[A+69|0]=Q>>>8,E[A+70|0]=Q>>>16,E[A+71|0]=Q>>>24,Q=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,Q=(r=B=-1==(0|r)&B>>>0>4294967167)>>>0>(B=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?Q+1|0:Q,E[A+72|0]=B,E[A+73|0]=B>>>8,E[A+74|0]=B>>>16,E[A+75|0]=B>>>24,E[A+76|0]=Q,E[A+77|0]=Q>>>8,E[A+78|0]=Q>>>16,E[A+79|0]=Q>>>24,h(A,n),HA(n,f,128),B=Q=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,I=I+i|0,!((C=C-(g>>>0>>0)|0)|(g=g-i|0)))break}return 0}function V(A,I){var g,C=0,B=0,Q=0,i=0,E=0,a=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0;C=o[I+40>>2],B=o[I+4>>2],Q=o[I+44>>2],i=o[I+8>>2],E=o[I+48>>2],a=o[I+12>>2],n=o[I+52>>2],r=o[I+16>>2],f=o[I+56>>2],e=o[I+20>>2],c=o[I+60>>2],y=o[I+24>>2],D=o[(t=I- -64|0)>>2],w=o[I+28>>2],h=o[I+68>>2],s=o[I+32>>2],p=o[I+72>>2],g=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=s+p,o[A+28>>2]=w+h,o[A+24>>2]=y+D,o[A+20>>2]=e+c,o[A+16>>2]=r+f,o[A+12>>2]=a+n,o[A+8>>2]=i+E,o[A+4>>2]=B+Q,o[A>>2]=C+g,C=o[I+40>>2],B=o[I+4>>2],Q=o[I+44>>2],i=o[I+8>>2],E=o[I+48>>2],a=o[I+12>>2],n=o[I+52>>2],r=o[I+16>>2],f=o[I+56>>2],e=o[I+20>>2],c=o[I+60>>2],y=o[I+24>>2],t=o[t>>2],D=o[I+28>>2],w=o[I+68>>2],h=o[I+32>>2],s=o[I+72>>2],p=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=s-h,o[A+68>>2]=w-D,o[A- -64>>2]=t-y,o[A+60>>2]=c-e,o[A+56>>2]=f-r,o[A+52>>2]=n-a,o[A+48>>2]=E-i,o[A+44>>2]=Q-B,o[A+40>>2]=C-p,C=o[I+80>>2],B=o[I+84>>2],Q=o[I+88>>2],i=o[I+92>>2],E=o[I+96>>2],a=o[I+100>>2],n=o[I+104>>2],r=o[I+108>>2],f=o[I+116>>2],o[A+112>>2]=o[I+112>>2],o[A+116>>2]=f,o[A+104>>2]=n,o[A+108>>2]=r,o[A+96>>2]=E,o[A+100>>2]=a,o[A+88>>2]=Q,o[A+92>>2]=i,o[A+80>>2]=C,o[A+84>>2]=B,F(A+120|0,I+120|0,1440)}function O(A,I){var g,C,B,Q,i,a=0,n=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;(f=o[A+56>>2])|(a=o[A+60>>2])&&(E[f+(n=A- -64|0)|0]=1,!((h=f+1|0)?a:a+1|0)&h>>>0<=15&&MA(65+(A+f|0)|0,0,15-f|0),E[A+80|0]=1,N(A,n,16,0)),h=o[A+52>>2],D=o[A+48>>2],n=o[A+44>>2],f=o[A+24>>2],e=o[A+28>>2]+(f>>>26|0)|0,t=o[A+32>>2]+(e>>>26|0)|0,g=o[A+36>>2]+(t>>>26|0)|0,a=(y=(f=(f=(67108863&f)+((c=o[A+20>>2]+r(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(i=(67108863&g)+((Q=(C=67108863&t)+((B=(w=67108863&e)+((c=f+((a=5+(y=67108863&c)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|c&(t=67108863&(c=(t>>>31|0)-1|0)))<<26|a&t|e&y)+o[A+40>>2]|0,E[0|I]=a,E[I+1|0]=a>>>8,E[I+2|0]=a>>>16,E[I+3|0]=a>>>24,y=a>>>0>>0,a=(w=e&w|t&B)<<20|f>>>6,f=0,a=(n=a+n|0)>>>0>>0?1:f,a=(f=n+y|0)>>>0>>0?a+1|0:a,E[(n=I)+4|0]=f,E[n+5|0]=f>>>8,E[n+6|0]=f>>>16,E[n+7|0]=f>>>24,f=0,n=(n=(t=e&C|t&Q)<<14|w>>>12)>>>0>(D=n+D|0)>>>0?1:f,f=D,D=a,f=(a=f+a|0)>>>0>>0?n+1|0:n,E[(n=I)+8|0]=a,E[n+9|0]=a>>>8,E[n+10|0]=a>>>16,E[n+11|0]=a>>>24,a=n=(c&i|e&g)<<8|t>>>18,a=(a=f)+(n=n+h|0)|0,E[I+12|0]=a,E[I+13|0]=a>>>8,E[I+14|0]=a>>>16,E[I+15|0]=a>>>24,$A(A,88)}function T(A,I,g){var C,B=0;return D=C=D-16|0,E[C+15|0]=0,B=-1,0|nI[o[8722]](A,I,g)||(E[C+15|0]=a[0|A]|a[C+15|0],E[C+15|0]=a[A+1|0]|a[C+15|0],E[C+15|0]=a[A+2|0]|a[C+15|0],E[C+15|0]=a[A+3|0]|a[C+15|0],E[C+15|0]=a[A+4|0]|a[C+15|0],E[C+15|0]=a[A+5|0]|a[C+15|0],E[C+15|0]=a[A+6|0]|a[C+15|0],E[C+15|0]=a[A+7|0]|a[C+15|0],E[C+15|0]=a[A+8|0]|a[C+15|0],E[C+15|0]=a[A+9|0]|a[C+15|0],E[C+15|0]=a[A+10|0]|a[C+15|0],E[C+15|0]=a[A+11|0]|a[C+15|0],E[C+15|0]=a[A+12|0]|a[C+15|0],E[C+15|0]=a[A+13|0]|a[C+15|0],E[C+15|0]=a[A+14|0]|a[C+15|0],E[C+15|0]=a[A+15|0]|a[C+15|0],E[C+15|0]=a[A+16|0]|a[C+15|0],E[C+15|0]=a[A+17|0]|a[C+15|0],E[C+15|0]=a[A+18|0]|a[C+15|0],E[C+15|0]=a[A+19|0]|a[C+15|0],E[C+15|0]=a[A+20|0]|a[C+15|0],E[C+15|0]=a[A+21|0]|a[C+15|0],E[C+15|0]=a[A+22|0]|a[C+15|0],E[C+15|0]=a[A+23|0]|a[C+15|0],E[C+15|0]=a[A+24|0]|a[C+15|0],E[C+15|0]=a[A+25|0]|a[C+15|0],E[C+15|0]=a[A+26|0]|a[C+15|0],E[C+15|0]=a[A+27|0]|a[C+15|0],E[C+15|0]=a[A+28|0]|a[C+15|0],E[C+15|0]=a[A+29|0]|a[C+15|0],E[C+15|0]=a[A+30|0]|a[C+15|0],E[C+15|0]=a[A+31|0]|a[C+15|0],B=(a[C+15|0]<<23)-8388608>>31),D=C+16|0,B}function W(A,I){var g,C,B,Q,i,a,n,f=0,t=0;C=o[I+32>>2],B=o[I+28>>2],Q=o[I+24>>2],i=o[I+20>>2],a=o[I+16>>2],n=o[I+12>>2],f=o[I+4>>2],t=o[I>>2],g=o[I+36>>2],I=o[I+8>>2],t=r((C+(B+(Q+(i+(a+(n+((f+(t+(r(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+t|0,E[0|A]=t,E[A+2|0]=t>>>16,E[A+1|0]=t>>>8,f=f+(t>>26)|0,E[A+5|0]=f>>>14,E[A+4|0]=f>>>6,E[A+3|0]=t>>>24&3|f<<2,I=I+(f>>25)|0,E[A+8|0]=I>>>13,E[A+7|0]=I>>>5,E[A+6|0]=I<<3|(29360128&f)>>>22,t=(I>>26)+n|0,E[A+11|0]=t>>>11,E[A+10|0]=t>>>3,E[A+9|0]=t<<5|(65011712&I)>>>21,f=(t>>25)+a|0,E[A+15|0]=f>>>18,E[A+14|0]=f>>>10,E[A+13|0]=f>>>2,I=(f>>26)+i|0,E[A+16|0]=I,E[A+12|0]=f<<6|(33030144&t)>>>19,E[A+18|0]=I>>>16,E[A+17|0]=I>>>8,f=(I>>25)+Q|0,E[A+21|0]=f>>>15,E[A+20|0]=f>>>7,E[A+19|0]=I>>>24&1|f<<1,I=(f>>26)+B|0,E[A+24|0]=I>>>13,E[A+23|0]=I>>>5,E[A+22|0]=I<<3|(58720256&f)>>>23,f=(I>>25)+C|0,E[A+27|0]=f>>>12,E[A+26|0]=f>>>4,E[A+25|0]=f<<4|(31457280&I)>>>21,I=g+(f>>26)|0,E[A+30|0]=I>>>10,E[A+29|0]=I>>>2,E[A+31|0]=(33292288&I)>>>18,E[A+28|0]=I<<6|(66060288&f)>>>20}function Z(A,I){var g;return o[12+(g=D-16|0)>>2]=A,o[g+8>>2]=I,o[g+4>>2]=0,o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]]^a[o[g+8>>2]],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+1|0]^a[o[g+8>>2]+1|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+2|0]^a[o[g+8>>2]+2|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+3|0]^a[o[g+8>>2]+3|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+4|0]^a[o[g+8>>2]+4|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+5|0]^a[o[g+8>>2]+5|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+6|0]^a[o[g+8>>2]+6|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+7|0]^a[o[g+8>>2]+7|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+8|0]^a[o[g+8>>2]+8|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+9|0]^a[o[g+8>>2]+9|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+10|0]^a[o[g+8>>2]+10|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+11|0]^a[o[g+8>>2]+11|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+12|0]^a[o[g+8>>2]+12|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+13|0]^a[o[g+8>>2]+13|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+14|0]^a[o[g+8>>2]+14|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+15|0]^a[o[g+8>>2]+15|0],(o[g+4>>2]-1>>>8&1)-1|0}function $(A,I){var g,C=0,B=0;g=I;A:if(C=255&I){if(3&A)for(;;){if(!(I=a[0|A])|(0|I)==(255&g))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(I=o[A>>2]))&I-16843009&-2139062144))for(C=r(C,16843009);;){if((-1^(I^=C))&I-16843009&-2139062144)break I;if(I=o[A+4>>2],A=A+4|0,I-16843009&(-1^I)&-2139062144)break}for(;I=A,(C=a[0|A])&&(A=I+1|0,(0|C)!=(255&g)););A=I}else{C=A;I:{if(3&A)for(;;){if(!a[0|A])break I;if(!(3&(A=A+1|0)))break}for(;I=A,A=A+4|0,!((-1^(B=o[I>>2]))&B-16843009&-2139062144););for(;I=(A=I)+1|0,a[0|A];);}A=C+(A-C|0)|0}return a[0|A]==(255&g)?A:0}function AA(A,I){var g,C=0,B=0,Q=0,i=0,o=0;for(D=g=D-192|0,EA(A),MA(g- -64|0,54,128);E[0|(C=(i=g- -64|0)+B|0)]=a[0|C]^a[I+B|0],E[0|(Q=(C=1|B)+i|0)]=a[0|Q]^a[I+C|0],E[0|(Q=(C=2|B)+i|0)]=a[0|Q]^a[I+C|0],E[0|(C=(C=i)+(i=3|B)|0)]=a[0|C]^a[I+i|0],B=B+4|0,32!=(0|(o=o+4|0)););for(m(A,B=g- -64|0,128,0),EA(i=A+208|0),MA(B,92,128),B=0,o=0;E[0|(C=(A=g- -64|0)+B|0)]=a[0|C]^a[I+B|0],E[0|(Q=(C=1|B)+A|0)]=a[0|Q]^a[I+C|0],E[0|(Q=(C=2|B)+A|0)]=a[0|Q]^a[I+C|0],E[0|(C=(C=A)+(A=3|B)|0)]=a[0|C]^a[A+I|0],B=B+4|0,32!=(0|(o=o+4|0)););m(i,A=g- -64|0,128,0),$A(A,128),$A(g,64),D=g+192|0}function IA(A,I,g,C,B,Q,i){var E,a,n,r,f,t=0;return D=E=D-352|0,L(E,Q,i),!((!B&C>>>0>A-g>>>0|0!=(0|B))&A>>>0>g>>>0)&(!B&C>>>0<=g-A>>>0|A>>>0>=g>>>0)||(g=kA(A,g,C)),o[E+56>>2]=0,o[E+60>>2]=0,o[E+48>>2]=0,o[E+52>>2]=0,o[E+40>>2]=0,o[E+44>>2]=0,o[E+32>>2]=0,o[E+36>>2]=0,i=(t=!B&C>>>0>=32|0!=(0|B))?32:C,f=t=t?0:B,(n=!(i|t))||HA(E- -64|0,g,i),LA(a=E+32|0,a,r=i+32|0,t=r>>>0<32?t+1|0:t,Q=Q+16|0,E),OA(E+96|0,a),n||HA(A,E- -64|0,i),$A(E+32|0,64),!B&C>>>0>=33|B&&vA(A+i|0,g+i|0,C-i|0,B-(f+(C>>>0>>0)|0)|0,Q,E),$A(E,32),zA(g=E+96|0,A,C,B),TA(g,I),$A(g,256),D=E+352|0,0}function gA(A,I,g,C,B,Q,i){var E,a,n=0,r=0;D=E=D-96|0,L(E,Q,i),i=E+32|0,a=Q+16|0,nI[o[8724]](i,32,0,a,E),Q=-1;A:{if(!(0|nI[o[8718]](g,I,C,B,i))){if(Q=0,!A)break A;!((!B&C>>>0>I-A>>>0|0!=(0|B))&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)||(I=kA(A,I,C)),(i=(g=!B&C>>>0>=32|0!=(0|B))?32:C)|(g=g?0:B)?(r=HA(E- -64|0,I,i),LA(Q=E+32|0,Q,n=i+32|0,n>>>0<32?g+1|0:g,a,E),HA(A,r,i)):LA(Q=E+32|0,Q,n=i+32|0,n>>>0<32?g+1|0:g,a,E),$A(E+32|0,64),Q=0,!B&C>>>0<33||vA(A+i|0,I+i|0,C-i|0,B-(g+(C>>>0>>0)|0)|0,a,E)}$A(E,32)}return D=E+96|0,Q}function CA(A,I,g,C,B,Q,i,E,n,r){var f,t;return D=f=D-400|0,o[f+4>>2]=0,d(t=f+16|0,n,r),r=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,o[f+8>>2]=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,o[f+12>>2]=r,XA(r=f+80|0,64,f+4|0,t),OA(n=f+144|0,r),$A(r,64),zA(n,Q,i,E),zA(n,34816,0-i&15,0),zA(n,I,g,C),zA(n,34816,0-g&15,0),o[f+72>>2]=i,o[f+76>>2]=E,zA(n,Q=f+72|0,8,0),o[f+72>>2]=g,o[f+76>>2]=C,zA(n,Q,8,0),TA(n,Q=f+48|0),$A(n,256),n=Z(Q,B),$A(Q,16),A&&(n?(MA(A,0,g),n=-1):(_A(A,I,g,C,f+4|0,f+16|0),n=0)),$A(f+16|0,32),D=f+400|0,n}function BA(A,I,g,C,B,Q,i,E,n,r,f){var t,e,c;return D=t=D-384|0,o[t+4>>2]=0,d(e=t+16|0,r,f),f=a[r+20|0]|a[r+21|0]<<8|a[r+22|0]<<16|a[r+23|0]<<24,o[t+8>>2]=a[r+16|0]|a[r+17|0]<<8|a[r+18|0]<<16|a[r+19|0]<<24,o[t+12>>2]=f,XA(f=t- -64|0,64,c=t+4|0,e),OA(r=t+128|0,f),$A(f,64),zA(r,i,E,n),zA(r,34816,0-E&15,0),_A(A,C,B,Q,c,e),zA(r,A,B,Q),zA(r,34816,0-B&15,0),o[t+56>>2]=E,o[t+60>>2]=n,zA(r,A=t+56|0,8,0),o[t+56>>2]=B,o[t+60>>2]=Q,zA(r,A,8,0),TA(r,I),$A(r,256),g&&(o[g>>2]=16,o[g+4>>2]=0),$A(t+16|0,32),D=t+384|0,0}function QA(A,I,g,C){var B,Q=0;return D=B=D-208|0,o[B+72>>2]=0,o[B+76>>2]=0,Q=o[8487],o[B+8>>2]=o[8486],o[B+12>>2]=Q,Q=o[8489],o[B+16>>2]=o[8488],o[B+20>>2]=Q,Q=o[8491],o[B+24>>2]=o[8490],o[B+28>>2]=Q,Q=o[8493],o[B+32>>2]=o[8492],o[B+36>>2]=Q,Q=o[8495],o[B+40>>2]=o[8494],o[B+44>>2]=Q,Q=o[8497],o[B+48>>2]=o[8496],o[B+52>>2]=Q,Q=o[8499],o[B+56>>2]=o[8498],o[B+60>>2]=Q,o[B+64>>2]=0,o[B+68>>2]=0,Q=o[8485],o[B>>2]=o[8484],o[B+4>>2]=Q,m(B,I,g,C),M(B,A),D=B+208|0,0}function iA(A,I){var g,C=0,B=0,Q=0;if(E[15+(g=D-16|0)|0]=0,I){if(B=3&I,I>>>0>=4)for(Q=-4&I,I=0;E[g+15|0]=a[A+C|0]|a[g+15|0],E[g+15|0]=a[(1|C)+A|0]|a[g+15|0],E[g+15|0]=a[(2|C)+A|0]|a[g+15|0],E[g+15|0]=a[(3|C)+A|0]|a[g+15|0],C=C+4|0,(0|Q)!=(0|(I=I+4|0)););if(B)for(I=0;E[g+15|0]=a[A+C|0]|a[g+15|0],C=C+1|0,(0|B)!=(0|(I=I+1|0)););}return a[g+15|0]-1>>>8&1}function EA(A){var I=0;o[A+64>>2]=0,o[A+68>>2]=0,o[A+72>>2]=0,o[A+76>>2]=0,I=o[8485],o[A>>2]=o[8484],o[A+4>>2]=I,I=o[8487],o[A+8>>2]=o[8486],o[A+12>>2]=I,I=o[8489],o[A+16>>2]=o[8488],o[A+20>>2]=I,I=o[8491],o[A+24>>2]=o[8490],o[A+28>>2]=I,I=o[8493],o[A+32>>2]=o[8492],o[A+36>>2]=I,I=o[8495],o[A+40>>2]=o[8494],o[A+44>>2]=I,I=o[8497],o[A+48>>2]=o[8496],o[A+52>>2]=I,I=o[8499],o[A+56>>2]=o[8498],o[A+60>>2]=I}function oA(A,I,g){var C,B=0,Q=0;if(o[12+(C=D-16|0)>>2]=A,o[C+8>>2]=I,A=0,E[C+7|0]=0,g){if(I=1&g,1!=(0|g))for(Q=-2&g,g=0;E[C+7|0]=a[C+7|0]|a[o[C+12>>2]+A|0]^a[o[C+8>>2]+A|0],B=1|A,E[C+7|0]=a[C+7|0]|a[B+o[C+12>>2]|0]^a[o[C+8>>2]+B|0],A=A+2|0,(0|Q)!=(0|(g=g+2|0)););I&&(E[C+7|0]=a[C+7|0]|a[o[C+12>>2]+A|0]^a[o[C+8>>2]+A|0])}return(a[C+7|0]-1>>>8&1)-1|0}function aA(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,o=0,n=0,r=0;B=(g=a[A+C|0])^a[0|(I=C+2448|0)]|B,Q=g^a[I+192|0]|Q,i=g^a[I+160|0]|i,E=g^a[I+128|0]|E,o=g^a[I+96|0]|o,n=g^a[I- -64|0]|n,r=g^a[I+32|0]|r,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&a[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|o))-1|(255&(5^A|n))-1|(255&(A|r))-1|(255&(A|B))-1)>>>8&1}function nA(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),w=g|Q,A|i}function rA(A,I,g,C,B,Q,i,E,a,n){var r,f,t;return D=r=D-352|0,XA(t=r+32|0,64,a,n),OA(f=r+96|0,t),$A(t,64),zA(f,Q,i,E),zA(f,33920,0-i&15,0),zA(f,I,g,C),zA(f,33920,0-g&15,0),o[r+24>>2]=i,o[r+28>>2]=E,zA(f,Q=r+24|0,8,0),o[r+24>>2]=g,o[r+28>>2]=C,zA(f,Q,8,0),TA(f,r),$A(f,256),Q=Z(r,B),$A(r,16),A&&(Q?(MA(A,0,g),Q=-1):(wA(A,I,g,C,a,1,n),Q=0)),D=r+352|0,Q}function fA(A,I,g,C,B,Q,i,E,a,n,r){var f,t,e;return D=f=D-336|0,XA(e=f+16|0,64,n,r),OA(t=f+80|0,e),$A(e,64),zA(t,i,E,a),zA(t,33920,0-E&15,0),wA(A,C,B,Q,n,1,r),zA(t,A,B,Q),zA(t,33920,0-B&15,0),o[f+8>>2]=E,o[f+12>>2]=a,zA(t,A=f+8|0,8,0),o[f+8>>2]=B,o[f+12>>2]=Q,zA(t,A,8,0),TA(t,I),$A(t,256),g&&(o[g>>2]=16,o[g+4>>2]=0),D=f+336|0,0}function tA(A,I,g,C,B,Q,i,E,a,n){var r,f,t;return D=r=D-352|0,qA(t=r+32|0,a,n),OA(f=r+96|0,t),$A(t,64),zA(f,Q,i,E),o[r+24>>2]=i,o[r+28>>2]=E,zA(f,Q=r+24|0,8,0),zA(f,I,g,C),o[r+24>>2]=g,o[r+28>>2]=C,zA(f,Q,8,0),TA(f,r),$A(f,256),Q=Z(r,B),$A(r,16),A&&(Q?(MA(A,0,g),Q=-1):(bA(A,I,g,C,a,n),Q=0)),D=r+352|0,Q}function eA(A,I,g,C,B,Q,i,E,a,n,r){var f,t,e;return D=f=D-336|0,qA(e=f+16|0,n,r),OA(t=f+80|0,e),$A(e,64),zA(t,i,E,a),o[f+8>>2]=E,o[f+12>>2]=a,zA(t,i=f+8|0,8,0),bA(A,C,B,Q,n,r),zA(t,A,B,Q),o[f+8>>2]=B,o[f+12>>2]=Q,zA(t,i,8,0),TA(t,I),$A(t,256),g&&(o[g>>2]=16,o[g+4>>2]=0),D=f+336|0,0}function cA(A,I){var g;for(o[12+(g=D-16|0)>>2]=A,o[g+8>>2]=I,A=0,o[g+4>>2]=0;o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+A|0]^a[o[g+8>>2]+A|0],I=1|A,o[g+4>>2]=o[g+4>>2]|a[I+o[g+12>>2]|0]^a[I+o[g+8>>2]|0],32!=(0|(A=A+2|0)););return(o[g+4>>2]-1>>>8&1)-1|0}function yA(A){var I=0,g=0,C=0,B=0;for(I=1;I=a[0|(g=A+C|0)]+I|0,E[0|g]=I,I=a[0|(g=(1|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=a[0|(g=(2|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=a[0|(g=(3|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=I>>>8|0,C=C+4|0,4!=(0|(B=B+4|0)););}function DA(A,I,g,C){var B,Q,i,E,o=0,a=0;return E=r(o=g>>>16|0,a=A>>>16|0),o=(65535&(a=((i=r(B=65535&g,Q=65535&A))>>>16|0)+r(a,B)|0))+r(o,Q)|0,w=(r(I,g)+E|0)+r(A,C)+(a>>>16)+(o>>>16)|0,65535&i|o<<16}function wA(A,I,g,C,B,i,E){var a=0,n=0;a=C,1==(((a=(n=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+(0!=(0|(a=(63&a)<<26|n>>>6)))|0)&i>>>0>(n=0-a|0)>>>0|1==(0|C)|C>>>0>1?(mA(),Q()):nI[o[8716]](A,I,g,C,B,i,E)}function hA(A,I){A|=0;var g,C=0,B=0,Q=0;if(D=g=D-16|0,I|=0)for(;E[g+15|0]=0,B=A+C|0,Q=0|t(34904,g+15|0,0),E[0|B]=Q,(0|(C=C+1|0))!=(0|I););D=g+16|0}function sA(A,I,g,C,B,Q,i){var E,o=0;return D=E=D-32|0,o=-1,!C&g>>>0<16||SA(E,Q,i)||(o=gA(A,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B,E),$A(E,32)),D=E+32|0,o}function pA(A){var I,g;return(A=(I=o[8712])+(g=A+7&-8)|0)>>>0<=I>>>0&&g||A>>>0>rI()<<16>>>0&&!(0|y(0|A))?(o[8916]=48,-1):(o[8712]=A,I)}function uA(A,I){var g,C,B;D=g=D-176|0,X(C=g+96|0,I+80|0),F(B=g+48|0,I,C),F(g,I+40|0,C),W(A,g),W(g+144|0,B),E[A+31|0]=a[A+31|0]^a[g+144|0]<<7,D=g+176|0}function kA(A,I,g){var C=0;if(A>>>0>>0)return HA(A,I,g);if(g)for(C=A+g|0,I=I+g|0;I=I-1|0,E[0|(C=C-1|0)]=a[0|I],g=g-1|0;);return A}function FA(A,I,g,C,B,i,E){var o,a=0;if(D=o=D-32|0,!C&g>>>0<4294967280)return a=-1,SA(o,i,E)||(a=IA(A+16|0,A,I,g,C,B,o),$A(o,32)),D=o+32|0,a;mA(),Q()}function lA(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?gA(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function SA(A,I,g){A|=0;var C,B=0;return D=C=D-32|0,B=-1,T(C,g|=0,I|=0)||(B=L(A,34832,C)),D=C+32|0,0|B}function HA(A,I,g){var C=0;if(g)for(C=A;E[0|C]=a[0|I],C=C+1|0,I=I+1|0,g=g-1|0;);return A}function MA(A,I,g){var C=0;if(g)for(C=A;E[0|C]=I,C=C+1|0,g=g-1|0;);return A}function GA(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(e(1260,1187,107,1067),Q()),0|G(A,I,255&g)}function UA(A,I){var g;D=g=D+-64|0,M(A,g),m(A=A+208|0,g,64,0),M(A,I),$A(g,64),D=g- -64|0}function JA(A,I,g,C,B,Q,i){return 0|IA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function NA(A,I,g,C,B,Q,i){return 0|gA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function YA(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function bA(A,I,g,C,B,i){1==(0|C)|C>>>0>1&&(mA(),Q()),nI[o[8715]](A,I,g,C,B,1,0,i)}function _A(A,I,g,C,B,i){1==(0|C)|C>>>0>1&&(mA(),Q()),nI[o[8716]](A,I,g,C,B,1,i)}function KA(){var A;D=A=D-16|0,E[A+15|0]=0,t(34940,A+15|0,0),D=A+16|0}function PA(A,I,g){return 0|T(A|=0,I|=0,g|=0)}function vA(A,I,g,C,B,Q){nI[o[8725]](A,I,g,C,B,1,0,Q)}function mA(){var A;(A=o[9050])&&nI[0|A](),c(),Q()}function dA(A,I){return A|=0,hA(I|=0,32),0|VA(A,I)}function LA(A,I,g,C,B,Q){nI[o[8725]](A,I,g,C,B,0,0,Q)}function RA(A){return A?31-f(A-1^A)|0:32}function xA(A,I,g,C){nI[o[8716]](A,I,40,0,g,0,C)}function jA(A,I){return 0|VA(A|=0,I|=0)}function XA(A,I,g,C){nI[o[8714]](A,I,0,g,C)}function qA(A,I,g){nI[o[8713]](A,64,0,I,g)}function zA(A,I,g,C){nI[o[8720]](A,I,g,C)}function VA(A,I){return 0|nI[o[8723]](A,I)}function OA(A,I){nI[o[8719]](A,I)}function TA(A,I){nI[o[8721]](A,I)}function WA(A,I,g,C){m(A,I,g,C)}function ZA(A){hA(A|=0,32)}function $A(A,I){MA(A,0,I)}function AI(){return 16}function II(){return 32}function gI(){return 24}function CI(){return-17}function BI(){return 64}function QI(){return 1}function iI(){return 3}function EI(){return 8}function oI(){return 0}B(I=a,1024,"TGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAMS4wLjE4AHNvZGl1bV9iaW4yYmFzZTY0AAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4="),B(I,1440,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),B(I,1488,"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"),B(I,2480,"AQ=="),B(I,2512,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),B(I,2703,"EIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/48+3QCBWdb/N4sF/kQUv/8OzLIBI8PZAC8zzgEm9qUAzhsG/p5XJADZNJL/fXvX/1U8H/+rDQcA2vVY/vwjPAA31qD/hWU4AOAgE/6TQOoAGpGiAXJ2fQD4/PoAZV7E/8aN4v4zKrYAhwwJ/m2s0v/F7MIB8UGaADCcL/+ZQzf/2qUi/kq0swDaQkcBWHpjANS12/9cKuf/7wCaAPVNt/9eUaoBEtXYAKtdRwA0XvgAEpeh/sXRQv+u9A/+ojC3ADE98P62XcMAx+QGAcgFEf+JLe3/bJQEAFpP7f8nP03/NVLPAY4Wdv9l6BIBXBpDAAXIWP8hqIr/leFIAALRG/8s9agB3O0R/x7Taf6N7t0AgFD1/m/+DgDeX74B3wnxAJJM1P9szWj/P3WZAJBFMAAj5G8AwCHB/3DWvv5zmJcAF2ZYADNK+ADix4/+zKJl/9BhvQH1aBIA5vYe/xeURQBuWDT+4rVZ/9AvWv5yoVD/IXT4ALOYV/9FkLEBWO4a/zogcQEBTUUAO3k0/5juUwA0CMEA5yfp/8ciigDeRK0AWzny/tzSf//AB/b+lyO7AMPspQBvXc4A1PeFAZqF0f+b5woAQE4mAHr5ZAEeE2H/Plv5AfiFTQDFP6j+dApSALjscf7Uy8L/PWT8/iQFyv93W5n/gU8dAGdnq/7t12//2DVFAO/wFwDCld3/JuHeAOj/tP52UoX/OdGxAYvohQCesC7+wnMuAFj35QEcZ78A3d6v/pXrLACX5Bn+2mlnAI5V0gCVgb7/1UFe/nWG4P9SxnUAnd3cAKNlJADFciUAaKym/gu2AABRSLz/YbwQ/0UGCgDHk5H/CAlzAUHWr//ZrdEAUH+mAPflBP6nt3z/WhzM/q878P8LKfgBbCgz/5Cxw/6W+n4AiltBAXg83v/1we8AHda9/4ACGQBQmqIATdxrAerNSv82pmf/dEgJAOReL/8eyBn/I9ZZ/z2wjP9T4qP/S4KsAIAmEQBfiZj/13yfAU9dAACUUp3+w4L7/yjKTP/7fuAAnWM+/s8H4f9gRMMAjLqd/4MT5/8qgP4ANNs9/mbLSACNBwv/uqTVAB96dwCF8pEA0Pzo/1vVtv+PBPr++ddKAKUebwGrCd8A5XsiAVyCGv9Nmy0Bw4sc/zvgTgCIEfcAbHkgAE/6vf9g4/z+JvE+AD6uff+bb13/CubOAWHFKP8AMTn+QfoNABL7lv/cbdL/Ba6m/iyBvQDrI5P/JfeN/0iNBP9na/8A91oEADUsKgACHvAABDs/AFhOJABxp7QAvkfB/8eepP86CKwATSEMAEE/AwCZTSH/rP5mAeTdBP9XHv4BkilW/4rM7/5sjRH/u/KHANLQfwBELQ7+SWA+AFE8GP+qBiT/A/kaACPVbQAWgTb/FSPh/+o9OP862QYAj3xYAOx+QgDRJrf/Iu4G/66RZgBfFtMAxA+Z/i5U6P91IpIB5/pK/xuGZAFcu8P/qsZwAHgcKgDRRkMAHVEfAB2oZAGpraAAayN1AD5gO/9RDEUBh+++/9z8EgCj3Dr/iYm8/1NmbQBgBkwA6t7S/7muzQE8ntX/DfHWAKyBjABdaPIAwJz7ACt1HgDhUZ4Af+jaAOIcywDpG5f/dSsF//IOL/8hFAYAifss/hsf9f+31n3+KHmVALqe1f9ZCOMARVgA/suH4QDJrssAk0e4ABJ5Kf5eBU4A4Nbw/iQFtAD7h+cBo4rUANL5dP5YgbsAEwgx/j4OkP+fTNMA1jNSAG115P5n38v/S/wPAZpH3P8XDVsBjahg/7W2hQD6MzcA6urU/q8/ngAn8DQBnr0k/9UoVQEgtPf/E2YaAVQYYf9FFd4AlIt6/9zV6wHoy/8AeTmTAOMHmgA1FpMBSAHhAFKGMP5TPJ3/kUipACJn7wDG6S8AdBME/7hqCf+3gVMAJLDmASJnSADbooYA9SqeACCVYP6lLJAAyu9I/teWBQAqQiQBhNevAFauVv8axZz/MeiH/me2UgD9gLABmbJ6APX6CgDsGLIAiWqEACgdKQAyHpj/fGkmAOa/SwCPK6oALIMU/ywNF//t/5sBn21k/3C1GP9o3GwAN9ODAGMM1f+Yl5H/7gWfAGGbCAAhbFEAAQNnAD5tIv/6m7QAIEfD/yZGkQGfX/UAReVlAYgc8ABP4BkATm55//iofAC7gPcAApPr/k8LhABGOgwBtQij/0+Jhf8lqgv/jfNV/7Dn1//MlqT/79cn/y5XnP4Io1j/rCLoAEIsZv8bNin+7GNX/yl7qQE0cisAdYYoAJuGGgDnz1v+I4Qm/xNmff4k44X/dgNx/x0NfACYYEoBWJLO/6e/3P6iElj/tmQXAB91NABRLmoBDAIHAEVQyQHR9qwADDCNAeDTWAB04p8AemKCAEHs6gHh4gn/z+J7AVnWOwBwh1gBWvTL/zELJgGBbLoAWXAPAWUuzP9/zC3+T//d/zNJEv9/KmX/8RXKAKDjBwBpMuwATzTF/2jK0AG0DxAAZcVO/2JNywApufEBI8F8ACObF//PNcAAC32jAfmeuf8EgzAAFV1v/z155wFFyCT/uTC5/2/uFf8nMhn/Y9ej/1fUHv+kkwX/gAYjAWzfbv/CTLIASmW0APMvMACuGSv/Uq39ATZywP8oN1sA12yw/ws4BwDg6UwA0WLK/vIZfQAswV3+ywixAIewEwBwR9X/zjuwAQRDGgAOj9X+KjfQ/zxDeADBFaMAY6RzAAoUdgCc1N7+oAfZ/3L1TAF1O3sAsMJW/tUPsABOzs/+1YE7AOn7FgFgN5j/7P8P/8VZVP9dlYUArqBxAOpjqf+YdFgAkKRT/18dxv8iLw//Y3iG/wXswQD5937/k7seADLmdf9s2dv/o1Gm/0gZqf6beU//HJtZ/gd+EQCTQSEBL+r9ABozEgBpU8f/o8TmAHH4pADi/toAvdHL/6T33v7/I6UABLzzAX+zRwAl7f7/ZLrwAAU5R/5nSEn/9BJR/uXShP/uBrT/C+Wu/+PdwAERMRwAo9fE/gl2BP8z8EcAcYFt/0zw5wC8sX8AfUcsARqv8wBeqRn+G+YdAA+LdwGoqrr/rMVM//xLvACJfMQASBZg/y2X+QHckWQAQMCf/3jv4gCBspIAAMB9AOuK6gC3nZIAU8fA/7isSP9J4YAATQb6/7pBQwBo9s8AvCCK/9oY8gBDilH+7YF5/xTPlgEpxxD/BhSAAJ92BQC1EI//3CYPABdAk/5JGg0AV+Q5Acx8gAArGN8A22PHABZLFP8TG34AnT7XAG4d5gCzp/8BNvy+AN3Mtv6znkH/UZ0DAMLanwCq3wAA4Asg/ybFYgCopCUAF1gHAaS6bgBgJIYA6vLlAPp5EwDy/nD/Ay9eAQnvBv9Rhpn+1v2o/0N84AD1X0oAHB4s/gFt3P+yWVkA/CRMABjGLv9MTW8AhuqI/ydeHQC5SOr/RkSH/+dmB/5N54wApy86AZRhdv8QG+EBps6P/26y1v+0g6IAj43hAQ3aTv9ymSEBYmjMAK9ydQGnzksAysRTATpAQwCKL28BxPeA/4ng4P6ecM8AmmT/AYYlawDGgE//f9Gb/6P+uf48DvMAH9tw/h3ZQQDIDXT+ezzE/+A7uP7yWcQAexBL/pUQzgBF/jAB53Tf/9GgQQHIUGIAJcK4/pQ/IgCL8EH/2ZCE/zgmLf7HeNIAbLGm/6DeBADcfnf+pWug/1Lc+AHxr4gAkI0X/6mKVACgiU7/4nZQ/zQbhP8/YIv/mPonALybDwDoM5b+KA/o//DlCf+Jrxv/S0lhAdrUCwCHBaIBa7nVAAL5a/8o8kYA28gZABmdDQBDUlD/xPkX/5EUlQAySJIAXkyUARj7QQAfwBcAuNTJ/3vpogH3rUgAolfb/n6GWQCfCwz+pmkdAEkb5AFxeLf/QqNtAdSPC/+f56gB/4BaADkOOv5ZNAr//QijAQCR0v8KgVUBLrUbAGeIoP5+vNH/IiNvANfbGP/UC9b+ZQV2AOjFhf/fp23/7VBW/0aLXgCewb8Bmw8z/w++cwBOh8//+QobAbV96QBfrA3+qtWh/yfsiv9fXVf/voBfAH0PzgCmlp8A4w+e/86eeP8qjYAAZbJ4AZxtgwDaDiz+96jO/9RwHABwEeT/WhAlAcXebAD+z1P/CVrz//P0rAAaWHP/zXR6AL/mwQC0ZAsB2SVg/5pOnADr6h//zrKy/5XA+wC2+ocA9hZpAHzBbf8C0pX/qRGqAABgbv91CQgBMnso/8G9YwAi46AAMFBG/tMz7AAtevX+LK4IAK0l6f+eQasAekXX/1pQAv+DamD+43KHAM0xd/6wPkD/UjMR//EU8/+CDQj+gNnz/6IbAf5advEA9sb2/zcQdv/In50AoxEBAIxreQBVoXb/JgCVAJwv7gAJpqYBS2K1/zJKGQBCDy8Ai+GfAEwDjv8O7rgAC881/7fAugGrIK7/v0zdAfeq2wAZrDL+2QnpAMt+RP+3XDAAf6e3AUEx/gAQP38B/hWq/zvgf/4WMD//G06C/ijDHQD6hHD+I8uQAGipqADP/R7/aCgm/l7kWADOEID/1Dd6/98W6gDfxX8A/bW1AZFmdgDsmST/1NlI/xQmGP6KPj4AmIwEAObcY/8BFdT/lMnnAPR7Cf4Aq9IAMzol/wH/Dv/0t5H+APKmABZKhAB52CkAX8Ny/oUYl/+c4uf/9wVN//aUc/7hXFH/3lD2/qp7Wf9Kx40AHRQI/4qIRv9dS1wA3ZMx/jR+4gDlfBcALgm1AM1ANAGD/hwAl57UAINATgDOGasAAOaLAL/9bv5n96cAQCgoASql8f87S+T+fPO9/8Rcsv+CjFb/jVk4AZPGBf/L+J7+kKKNAAus4gCCKhX/AaeP/5AkJP8wWKT+qKrcAGJH1gBb0E8An0zJAaYq1v9F/wD/BoB9/74BjACSU9r/1+5IAXp/NQC9dKX/VAhC/9YD0P/VboUAw6gsAZ7nRQCiQMj+WzpoALY6u/755IgAy4ZM/mPd6QBL/tb+UEWaAECY+P7siMr/nWmZ/pWvFAAWIxP/fHnpALr6xv6E5YsAiVCu/6V9RACQypT+6+/4AIe4dgBlXhH/ekhG/kWCkgB/3vgBRX92/x5S1/68ShP/5afC/nUZQv9B6jj+1RacAJc7Xf4tHBv/un6k/yAG7wB/cmMB2zQC/2Ngpv4+vn7/bN6oAUvirgDm4scAPHXa//z4FAHWvMwAH8KG/ntFwP+prST+N2JbAN8qZv6JAWYAnVoZAO96QP/8BukABzYU/1J0rgCHJTb/D7p9AONwr/9ktOH/Ku30//St4v74EiEAq2OW/0rrMv91UiD+aqjtAM9t0AHkCboAhzyp/rNcjwD0qmj/6y18/0ZjugB1ibcA4B/XACgJZAAaEF8BRNlXAAiXFP8aZDr/sKXLATR2RgAHIP7+9P71/6eQwv99cRf/sHm1AIhU0QCKBh7/WTAcACGbDv8Z8JoAjc1tAUZzPv8UKGv+iprH/17f4v+dqyYAo7EZ/i12A/8O3hcB0b5R/3Z76AEN1WX/ezd7/hv2pQAyY0z/jNYg/2FBQ/8YDBwArlZOAUD3YACgh0MAQjfz/5PMYP8aBiH/YjNTAZnV0P8CuDb/GdoLADFD9v4SlUj/DRlIACpP1gAqBCYBG4uQ/5W7FwASpIQA9VS4/njGaP9+2mAAOHXq/w0d1v5ELwr/p5qE/pgmxgBCsln/yC6r/w1jU//Su/3/qi0qAYrRfADWoo0ADOacAGYkcP4Dk0MANNd7/+mrNv9iiT4A99on/+fa7AD3v38Aw5JUAKWwXP8T1F7/EUrjAFgomQHGkwH/zkP1/vAD2v89jdX/YbdqAMPo6/5fVpoA0TDN/nbR8f/weN8B1R2fAKN/k/8N2l0AVRhE/kYUUP+9BYwBUmH+/2Njv/+EVIX/a9p0/3B6LgBpESAAwqA//0TeJwHY/VwAsWnN/5XJwwAq4Qv/KKJzAAkHUQCl2tsAtBYA/h2S/P+Sz+EBtIdgAB+jcACxC9v/hQzB/itOMgBBcXkBO9kG/25eGAFwrG8ABw9gACRVewBHlhX/0Em8AMALpwHV9SIACeZcAKKOJ//XWhsAYmFZAF5P0wBanfAAX9x+AWaw4gAkHuD+Ix9/AOfocwFVU4IA0kn1/y+Pcv9EQcUAO0g+/7eFrf5deXb/O7FR/+pFrf/NgLEA3PQzABr00QFJ3k3/owhg/paV0wCe/ssBNn+LAKHgOwAEbRb/3iot/9CSZv/sjrsAMs31/wpKWf4wT44A3kyC/x6mPwDsDA3/Mbj0ALtxZgDaZf0AmTm2/iCWKgAZxpIB7fE4AIxEBQBbpKz/TpG6/kM0zQDbz4EBbXMRADaPOgEV+Hj/s/8eAMHsQv8B/wf//cAw/xNF2QED1gD/QGWSAd99I//rSbP/+afiAOGvCgFhojoAanCrAVSsBf+FjLL/hvWOAGFaff+6y7n/300X/8BcagAPxnP/2Zj4AKuyeP/khjUAsDbBAfr7NQDVCmQBIsdqAJcf9P6s4Ff/Du0X//1VGv9/J3T/rGhkAPsORv/U0Ir//dP6ALAxpQAPTHv/Jdqg/1yHEAEKfnL/RgXg//f5jQBEFDwB8dK9/8PZuwGXA3EAl1yuAOc+sv/bt+EAFxch/821UAA5uPj/Q7QB/1p7Xf8nAKL/YPg0/1RCjAAif+T/wooHAaZuvAAVEZsBmr7G/9ZQO/8SB48ASB3iAcfZ+QDooUcBlb7JANmvX/5xk0P/io/H/3/MAQAdtlMBzuab/7rMPAAKfVX/6GAZ//9Z9//V/q8B6MFRABwrnP4MRQgAkxj4ABLGMQCGPCMAdvYS/zFY/v7kFbr/tkFwAdsWAf8WfjT/vTUx/3AZjwAmfzf/4mWj/tCFPf+JRa4BvnaR/zxi2//ZDfX/+ogKAFT+4gDJH30B8DP7/x+Dgv8CijL/19exAd8M7v/8lTj/fFtE/0h+qv53/2QAgofo/w5PsgD6g8UAisbQAHnYi/53EiT/HcF6ABAqLf/V8OsB5r6p/8Yj5P5urUgA1t3x/ziUhwDAdU7+jV3P/49BlQAVEmL/Xyz0AWq/TQD+VQj+1m6w/0mtE/6gxMf/7VqQAMGscf/Im4j+5FrdAIkxSgGk3df/0b0F/2nsN/8qH4EBwf/sAC7ZPACKWLv/4lLs/1FFl/+OvhABDYYIAH96MP9RQJwAq/OLAO0j9gB6j8H+1HqSAF8p/wFXhE0ABNQfABEfTgAnLa3+GI7Z/18JBv/jUwYAYjuC/j4eIQAIc9MBomGA/we4F/50HKj/+IqX/2L08AC6doIAcvjr/2mtyAGgfEf/XiSkAa9Bkv/u8ar+ysbFAORHiv4t9m3/wjSeAIW7sABT/Jr+Wb3d/6pJ/ACUOn0AJEQz/ipFsf+oTFb/JmTM/yY1IwCvE2EA4e79/1FRhwDSG//+60lrAAjPcwBSf4gAVGMV/s8TiABkpGUAUNBN/4TP7f8PAw//IaZuAJxfVf8luW8Blmoj/6aXTAByV4f/n8JAAAx6H//oB2X+rXdiAJpH3P6/OTX/qOig/+AgY//anKUAl5mjANkNlAHFcVkAlRyh/s8XHgBphOP/NuZe/4WtzP9ct53/WJD8/mYhWgCfYQMAtdqb//BydwBq1jX/pb5zAZhb4f9Yaiz/0D1xAJc0fAC/G5z/bjbsAQ4epv8nf88B5cccALzkvP5knesA9tq3AWsWwf/OoF8ATO+TAM+hdQAzpgL/NHUK/kk44/+YweEAhF6I/2W/0QAga+X/xiu0AWTSdgByQ5n/F1ga/1maXAHceIz/kHLP//xz+v8izkgAioV//wiyfAFXS2EAD+Vc/vBDg/92e+P+knho/5HV/wGBu0b/23c2AAETrQAtlpQB+FNIAMvpqQGOazgA9/kmAS3yUP8e6WcAYFJGABfJbwBRJx7/obdO/8LqIf9E44z+2M50AEYb6/9okE8ApOZd/taHnACau/L+vBSD/yRtrgCfcPEABW6VASSl2gCmHRMBsi5JAF0rIP74ve0AZpuNAMldw//xi/3/D29i/2xBo/6bT77/Sa7B/vYoMP9rWAv+ymFV//3MEv9x8kIAbqDC/tASugBRFTwAvGin/3ymYf7ShY4AOPKJ/ilvggBvlzoBb9WN/7es8f8mBsT/uQd7/y4L9gD1aXcBDwKh/wjOLf8Sykr/U3xzAdSNnQBTCNH+iw/o/6w2rf4y94QA1r3VAJC4aQDf/vgA/5Pw/xe8SAAHMzYAvBm0/ty0AP9ToBQAo73z/zrRwv9XSTwAahgxAPX53AAWracAdgvD/xN+7QBunyX/O1IvALS7VgC8lNABZCWF/wdwwQCBvJz/VGqB/4XhygAO7G//KBRlAKysMf4zNkr/+7m4/12b4P+0+eAB5rKSAEg5Nv6yPrgAd81IALnv/f89D9oAxEM4/+ogqwEu2+QA0Gzq/xQ/6P+lNccBheQF/zTNawBK7oz/lpzb/u+ssv/7vd/+II7T/9oPigHxxFAAHCRi/hbqxwA97dz/9jklAI4Rjv+dPhoAK+5f/gPZBv/VGfABJ9yu/5rNMP4TDcD/9CI2/owQmwDwtQX+m8E8AKaABP8kkTj/lvDbAHgzkQBSmSoBjOySAGtc+AG9CgMAP4jyANMnGAATyqEBrRu6/9LM7/4p0aL/tv6f/6x0NADDZ97+zUU7ADUWKQHaMMIAUNLyANK8zwC7oaH+2BEBAIjhcQD6uD8A3x5i/k2oogA7Na8AE8kK/4vgwgCTwZr/1L0M/gHIrv8yhXEBXrNaAK22hwBesXEAK1nX/4j8av97hlP+BfVC/1IxJwHcAuAAYYGxAE07WQA9HZsBy6vc/1xOiwCRIbX/qRiNATeWswCLPFD/2idhAAKTa/88+EgAreYvAQZTtv8QaaL+idRR/7S4hgEn3qT/3Wn7Ae9wfQA/B2EAP2jj/5Q6DABaPOD/VNT8AE/XqAD43ccBc3kBACSseAAgorv/OWsx/5MqFQBqxisBOUpXAH7LUf+Bh8MAjB+xAN2LwgAD3tcAg0TnALFWsv58l7QAuHwmAUajEQD5+7UBKjfjAOKhLAAX7G4AM5WOAV0F7ADat2r+QxhNACj10f/eeZkApTkeAFN9PABGJlIB5Qa8AG3enf83dj//zZe6AOMhlf/+sPYB47HjACJqo/6wK08Aal9OAbnxev+5Dj0AJAHKAA2yov/3C4QAoeZcAUEBuf/UMqUBjZJA/57y2gAVpH0A1Yt6AUNHVwDLnrIBl1wrAJhvBf8nA+//2f/6/7A/R/9K9U0B+q4S/yIx4//2Lvv/miMwAX2dPf9qJE7/YeyZAIi7eP9xhqv/E9XZ/the0f/8BT0AXgPKAAMat/9Avyv/HhcVAIGNTf9meAcBwkyMALyvNP8RUZQA6FY3AeEwrACGKir/7jIvAKkS/gAUk1f/DsPv/0X3FwDu5YD/sTFwAKhi+/95R/gA8wiR/vbjmf/bqbH++4ul/wyjuf+kKKv/mZ8b/vNtW//eGHABEtbnAGudtf7DkwD/wmNo/1mMvv+xQn7+arlCADHaHwD8rp4AvE/mAe4p4ADU6ggBiAu1AKZ1U/9Ew14ALoTJAPCYWACkOUX+oOAq/zvXQ/93w43/JLR5/s8vCP+u0t8AZcVE//9SjQH6iekAYVaFARBQRQCEg58AdF1kAC2NiwCYrJ3/WitbAEeZLgAnEHD/2Yhh/9zGGf6xNTEA3liG/4APPADPwKn/wHTR/2pO0wHI1bf/Bwx6/t7LPP8hbsf++2p1AOThBAF4Ogf/3cFU/nCFGwC9yMn/i4eWAOo3sP89MkEAmGyp/9xVAf9wh+MAohq6AM9guf70iGsAXZkyAcZhlwBuC1b/j3Wu/3PUyAAFyrcA7aQK/rnvPgDseBL+Yntj/6jJwv4u6tYAv4Ux/2OpdwC+uyMBcxUt//mDSABwBnv/1jG1/qbpIgBcxWb+/eTN/wM7yQEqYi4A2yUj/6nDJgBefMEBnCvfAF9Ihf54zr8AesXv/7G7T//+LgIB+qe+AFSBEwDLcab/+R+9/kidyv/QR0n/zxhIAAoQEgHSUUz/WNDA/37za//ujXj/x3nq/4kMO/8k3Hv/lLM8/vAMHQBCAGEBJB4m/3MBXf9gZ+f/xZ47AcCk8ADKyjn/GK4wAFlNmwEqTNcA9JfpABcwUQDvfzT+44Il//h0XQF8hHYArf7AAQbrU/9ur+cB+xy2AIH5Xf5UuIAATLU+AK+AugBkNYj+bR3iAN3pOgEUY0oAABagAIYNFQAJNDf/EVmMAK8iOwBUpXf/4OLq/wdIpv97c/8BEtb2APoHRwHZ3LkA1CNM/yZ9rwC9YdIAcu4s/ym8qf4tupoAUVwWAISgwQB50GL/DVEs/8ucUgBHOhX/0HK//jImkwCa2MMAZRkSADz61//phOv/Z6+OARAOXACNH27+7vEt/5nZ7wFhqC//+VUQARyvPv85/jYA3ud+AKYtdf4SvWD/5EwyAMj0XgDGmHgBRCJF/wxBoP5lE1oAp8V4/0Q2uf8p2rwAcagwAFhpvQEaUiD/uV2kAeTw7f9CtjUAq8Vc/2sJ6QHHeJD/TjEK/22qaf9aBB//HPRx/0o6CwA+3Pb/eZrI/pDSsv9+OYEBK/oO/2VvHAEvVvH/PUaW/zVJBf8eGp4A0RpWAIrtSgCkX7wAjjwd/qJ0+P+7r6AAlxIQANFvQf7Lhif/WGwx/4MaR//dG9f+aGld/x/sH/6HANP/j39uAdRJ5QDpQ6f+wwHQ/4QR3f8z2VoAQ+sy/9/SjwCzNYIB6WrGANmt3P9w5Rj/r5pd/kfL9v8wQoX/A4jm/xfdcf7rb9UAqnhf/vvdAgAtgp7+aV7Z//I0tP7VRC3/aCYcAPSeTAChyGD/zzUN/7tDlACqNvgAd6Ky/1MUCwAqKsABkp+j/7fobwBN5RX/RzWPABtMIgD2iC//2ye2/1zgyQETjg7/Rbbx/6N29QAJbWoBqrX3/04v7v9U0rD/1WuLACcmCwBIFZYASIJFAM1Nm/6OhRUAR2+s/uIqO/+zANcBIYDxAOr8DQG4TwgAbh5J//aNvQCqz9oBSppF/4r2Mf+bIGQAfUpp/1pVPf8j5bH/Pn3B/5lWvAFJeNQA0Xv2/ofRJv+XOiwBXEXW/w4MWP/8mab//c9w/zxOU//jfG4AtGD8/zV1If6k3FL/KQEb/yakpv+kY6n+PZBG/8CmEgBr+kIAxUEyAAGzEv//aAH/K5kj/1BvqABur6gAKWkt/9sOzf+k6Yz+KwF2AOlDwwCyUp//ild6/9TuWv+QI3z+GYykAPvXLP6FRmv/ZeNQ/lypNwDXKjEAcrRV/yHoGwGs1RkAPrB7/iCFGP/hvz4AXUaZALUqaAEWv+D/yMiM//nqJQCVOY0AwzjQ//6CRv8grfD/HdzHAG5kc/+E5fkA5Onf/yXY0f6ysdH/ty2l/uBhcgCJYaj/4d6sAKUNMQHS68z//AQc/kaglwDovjT+U/hd/z7XTQGvr7P/oDJCAHkw0AA/qdH/ANLIAOC7LAFJolIACbCP/xNMwf8dO6cBGCuaABy+vgCNvIEA6OvL/+oAbf82QZ8APFjo/3n9lv786YP/xm4pAVNNR//IFjv+av3y/xUMz//tQr0AWsbKAeGsfwA1FsoAOOaEAAFWtwBtvioA80SuAW3kmgDIsXoBI6C3/7EwVf9a2qn/+JhOAMr+bgAGNCsAjmJB/z+RFgBGal0A6IprAW6zPf/TgdoB8tFcACNa2QG2j2r/dGXZ/3L63f+tzAYAPJajAEmsLP/vblD/7UyZ/qGM+QCV6OUAhR8o/66kdwBxM9YAgeQC/kAi8wBr4/T/rmrI/1SZRgEyIxAA+krY/uy9Qv+Z+Q0A5rIE/90p7gB243n/XleM/v53XABJ7/b+dVeAABPTkf+xLvwA5Vv2AUWA9//KTTYBCAsJ/5lgpgDZ1q3/hsACAQDPAAC9rmsBjIZkAJ7B8wG2ZqsA65ozAI4Fe/88qFkB2Q5c/xPWBQHTp/4ALAbK/ngS7P8Pcbj/uN+LACixd/62e1r/sKWwAPdNwgAb6ngA5wDW/zsnHgB9Y5H/lkREAY3e+ACZe9L/bn+Y/+Uh1gGH3cUAiWECAAyPzP9RKbwAc0+C/14DhACYr7v/fI0K/37As/8LZ8YAlQYtANtVuwHmErL/SLaYAAPGuP+AcOABYaHmAP5jJv86n8UAl0LbADtFj/+5cPkAd4gv/3uChACoR1//cbAoAei5rQDPXXUBRJ1s/2YFk/4xYSEAWUFv/vceo/982d0BZvrYAMauS/45NxIA4wXsAeXVrQDJbdoBMenvAB43ngEZsmoAm2+8AV5+jADXH+4BTfAQANXyGQEmR6gAzbpd/jHTjP/bALT/hnalAKCThv9uuiP/xvMqAPOSdwCG66MBBPGH/8Euwf5ntE//4QS4/vJ2ggCSh7AB6m8eAEVC1f4pYHsAeV4q/7K/w/8ugioAdVQI/+kx1v7uem0ABkdZAezTewD0DTD+d5QOAHIcVv9L7Rn/keUQ/oFkNf+Glnj+qJ0yABdIaP/gMQ4A/3sW/5e5l/+qULgBhrYUAClkZQGZIRAATJpvAVbO6v/AoKT+pXtd/wHYpP5DEa//qQs7/54pPf9JvA7/wwaJ/xaTHf8UZwP/9oLj/3oogADiLxj+IyQgAJi6t/9FyhQAw4XDAN4z9wCpq14BtwCg/0DNEgGcUw//xTr5/vtZbv8yClj+MyvYAGLyxgH1l3EAq+zCAcUfx//lUSYBKTsUAP1o5gCYXQ7/9vKS/tap8P/wZmz+oKfsAJravACW6cr/GxP6AQJHhf+vDD8BkbfGAGh4c/+C+/cAEdSn/z57hP/3ZL0Am9+YAI/FIQCbOyz/ll3wAX8DV/9fR88Bp1UB/7yYdP8KFxcAicNdATZiYQDwAKj/lLx/AIZrlwBM/asAWoTAAJIWNgDgQjb+5rrl/ye2xACU+4L/QYNs/oABoACpMaf+x/6U//sGgwC7/oH/VVI+ALIXOv/+hAUApNUnAIb8kv4lNVH/m4ZSAM2n7v9eLbT/hCihAP5vcAE2S9kAs+bdAetev/8X8zABypHL/yd2Kv91jf0A/gDeACv7MgA2qeoBUETQAJTL8/6RB4cABv4AAPy5fwBiCIH/JiNI/9Mk3AEoGlkAqEDF/gPe7/8CU9f+tJ9pADpzwgC6dGr/5ffb/4F2wQDKrrcBpqFIAMlrk/7tiEoA6eZqAWlvqABA4B4BAeUDAGaXr//C7uT//vrUALvteQBD+2ABxR4LALdfzADNWYoAQN0lAf/fHv+yMNP/8cha/6fRYP85gt0ALnLI/z24QgA3thj+brYhAKu+6P9yXh8AEt0IAC/n/gD/cFMAdg/X/60ZKP7AwR//7hWS/6vBdv9l6jX+g9RwAFnAawEI0BsAtdkP/+eV6ACM7H4AkAnH/wxPtf6Ttsr/E222/zHU4QBKo8sAr+mUABpwMwDBwQn/D4f5AJbjggDMANsBGPLNAO7Qdf8W9HAAGuUiACVQvP8mLc7+8Frh/x0DL/8q4EwAuvOnACCED/8FM30Ai4cYAAbx2wCs5YX/9tYyAOcLz/+/flMBtKOq//U4GAGypNP/AxDKAWI5dv+Ng1n+ITMYAPOVW//9NA4AI6lD/jEeWP+zGyT/pYy3ADq9lwBYHwAAS6lCAEJlx/8Y2McBecQa/w5Py/7w4lH/XhwK/1PB8P/MwYP/Xg9WANoonQAzwdEAAPKxAGa59wCebXQAJodbAN+vlQDcQgH/VjzoABlgJf/heqIB17uo/56dLgA4q6IA6PBlAXoWCQAzCRX/NRnu/9ke6P59qZQADehmAJQJJQClYY0B5IMpAN4P8//+EhEABjztAWoDcQA7hL0AXHAeAGnQ1QAwVLP/u3nn/hvYbf+i3Wv+Se/D//ofOf+Vh1n/uRdzAQOjnf8ScPoAGTm7/6FgpAAvEPMADI37/kPquP8pEqEArwZg/6CsNP4YsLf/xsFVAXx5if+XMnL/3Ms8/8/vBQEAJmv/N+5e/kaYXgDV3E0BeBFF/1Wkvv/L6lEAJjEl/j2QfACJTjH+qPcwAF+k/ABpqYcA/eSGAECmSwBRSRT/z9IKAOpqlv9eIlr//p85/tyFYwCLk7T+GBe5ACk5Hv+9YUwAQbvf/+CsJf8iPl8B55DwAE1qfv5AmFsAHWKbAOL7Nf/q0wX/kMve/6Sw3f4F5xgAs3rNACQBhv99Rpf+YeT8AKyBF/4wWtH/luBSAVSGHgDxxC4AZ3Hq/y5lef4ofPr/hy3y/gn5qP+MbIP/j6OrADKtx/9Y3o7/yF+eAI7Ao/8HdYcAb3wWAOwMQf5EJkH/467+APT1JgDwMtD/oT/6ADzR7wB6IxMADiHm/gKfcQBqFH//5M1gAInSrv601JD/WWKaASJYiwCnonABQW7FAPElqQBCOIP/CslT/oX9u/+xcC3+xPsAAMT6l//u6Nb/ltHNABzwdgBHTFMB7GNbACr6gwFgEkD/dt4jAHHWy/96d7j/QhMkAMxA+QCSWYsAhj6HAWjpZQC8VBoAMfmBANDWS//Pgk3/c6/rAKsCif+vkboBN/WH/5pWtQFkOvb/bcc8/1LMhv/XMeYBjOXA/97B+/9RiA//s5Wi/xcnHf8HX0v+v1HeAPFRWv9rMcn/9NOdAN6Mlf9B2zj+vfZa/7I7nQEw2zQAYiLXABwRu/+vqRgAXE+h/+zIwgGTj+oA5eEHAcWoDgDrMzUB/XiuAMUGqP/KdasAoxXOAHJVWv8PKQr/whNjAEE32P6iknQAMs7U/0CSHf+enoMBZKWC/6wXgf99NQn/D8ESARoxC/+1rskBh8kO/2QTlQDbYk8AKmOP/mAAMP/F+VP+aJVP/+tuiP5SgCz/QSkk/ljTCgC7ebsAYobHAKu8s/7SC+7/QnuC/jTqPQAwcRf+BlZ4/3ey9QBXgckA8o3RAMpyVQCUFqEAZ8MwABkxq/+KQ4IAtkl6/pQYggDT5ZoAIJueAFRpPQCxwgn/pllWATZTuwD5KHX/bQPX/zWSLAE/L7MAwtgD/g5UiACIsQ3/SPO6/3URff/TOtP/XU/fAFpY9f+L0W//Rt4vAAr2T//G2bIA4+ELAU5+s/8+K34AZ5QjAIEIpf718JQAPTOOAFHQhgAPiXP/03fs/5/1+P8Choj/5os6AaCk/gByVY3/Maa2/5BGVAFVtgcALjVdAAmmof83orL/Lbi8AJIcLP6pWjEAeLLxAQ57f/8H8ccBvUIy/8aPZf6984f/jRgY/kthVwB2+5oB7TacAKuSz/+DxPb/iEBxAZfoOQDw2nMAMT0b/0CBSQH8qRv/KIQKAVrJwf/8efABus4pACvGYQCRZLcAzNhQ/qyWQQD55cT+aHtJ/01oYP6CtAgAaHs5ANzK5f9m+dMAVg7o/7ZO0QDv4aQAag0g/3hJEf+GQ+kAU/61ALfscAEwQIP/8djz/0HB4gDO8WT+ZIam/+3KxQA3DVEAIHxm/yjksQB2tR8B56CG/3e7ygAAjjz/gCa9/6bJlgDPeBoBNrisAAzyzP6FQuYAIiYfAbhwUAAgM6X+v/M3ADpJkv6bp83/ZGiY/8X+z/+tE/cA7grKAO+X8gBeOyf/8B1m/wpcmv/lVNv/oYFQANBazAHw267/nmaRATWyTP80bKgBU95rANMkbQB2OjgACB0WAO2gxwCq0Z0AiUcvAI9WIADG8gIA1DCIAVysugDml2kBYL/lAIpQv/7w2IL/YisG/qjEMQD9ElsBkEl5AD2SJwE/aBj/uKVw/n7rYgBQ1WL/ezxX/1KM9QHfeK3/D8aGAc487wDn6lz/Ie4T/6VxjgGwdyYAoCum/u9baQBrPcIBGQREAA+LMwCkhGr/InQu/qhfxQCJ1BcASJw6AIlwRf6WaZr/7MmdABfUmv+IUuP+4jvd/1+VwABRdjT/ISvXAQ6TS/9ZnHn+DhJPAJPQiwGX2j7/nFgIAdK4Yv8Ur3v/ZlPlANxBdAGW+gT/XI7c/yL3Qv/M4bP+l1GXAEco7P+KPz4ABk/w/7e5tQB2MhsAP+PAAHtjOgEy4Jv/EeHf/tzgTf8OLHsBjYCvAPjUyACWO7f/k2EdAJbMtQD9JUcAkVV3AJrIugACgPn/Uxh8AA5XjwCoM/UBfJfn/9DwxQF8vrkAMDr2ABTp6AB9EmL/Df4f//Wxgv9sjiMAq33y/owMIv+loaIAzs1lAPcZIgFkkTkAJ0Y5AHbMy//yAKIApfQeAMZ04gCAb5n/jDa2ATx6D/+bOjkBNjLGAKvTHf9riqf/rWvH/22hwQBZSPL/znNZ//r+jv6xyl7/UVkyAAdpQv8Z/v/+y0AX/0/ebP8n+UsA8XwyAO+YhQDd8WkAk5diANWhef7yMYkA6SX5/iq3GwC4d+b/2SCj/9D75AGJPoP/T0AJ/l4wcQARijL+wf8WAPcSxQFDN2gAEM1f/zAlQgA3nD8BQFJK/8g1R/7vQ30AGuDeAN+JXf8e4Mr/CdyEAMYm6wFmjVYAPCtRAYgcGgDpJAj+z/KUAKSiPwAzLuD/cjBP/wmv4gDeA8H/L6Do//9daf4OKuYAGopSAdAr9AAbJyb/YtB//0CVtv8F+tEAuzwc/jEZ2v+pdM3/dxJ4AJx0k/+ENW3/DQrKAG5TpwCd24n/BgOC/zKnHv88ny//gYCd/l4DvQADpkQAU9/XAJZawgEPqEEA41Mz/82rQv82uzwBmGYt/3ea4QDw94gAZMWy/4tH3//MUhABKc4q/5zA3f/Ye/T/2tq5/7u67//8rKD/wzQWAJCutf67ZHP/006w/xsHwQCT1Wj/WskK/1B7QgEWIboAAQdj/h7OCgDl6gUANR7SAIoI3P5HN6cASOFWAXa+vAD+wWUBq/ms/16et/5dAmz/sF1M/0ljT/9KQIH+9i5BAGPxf/72l2b/LDXQ/jtm6gCar6T/WPIgAG8mAQD/tr7/c7AP/qk8gQB67fEAWkw/AD5KeP96w24AdwSyAN7y0gCCIS7+nCgpAKeScAExo2//ebDrAEzPDv8DGcYBKevVAFUk1gExXG3/yBge/qjswwCRJ3wB7MOVAFokuP9DVar/JiMa/oN8RP/vmyP/NsmkAMQWdf8xD80AGOAdAX5xkAB1FbYAy5+NAN+HTQCw5rD/vuXX/2Mltf8zFYr/Gb1Z/zEwpf6YLfcAqmzeAFDKBQAbRWf+zBaB/7T8Pv7SAVv/km7+/9uiHADf/NUBOwghAM4Q9ACB0zAAa6DQAHA70QBtTdj+IhW5//ZjOP+zixP/uR0y/1RZEwBK+mL/4SrI/8DZzf/SEKcAY4RfASvmOQD+C8v/Y7w//3fB+/5QaTYA6LW9AbdFcP/Qq6X/L220/3tTpQCSojT/mgsE/5fjWv+SiWH+Pekp/14qN/9spOwAmET+AAqMg/8Kak/+856JAEOyQv6xe8b/Dz4iAMVYKv+VX7H/mADG/5X+cf/hWqP/fdn3ABIR4ACAQnj+wBkJ/zLdzQAx1EYA6f+kAALRCQDdNNv+rOD0/144zgHyswL/H1ukAeYuiv+95twAOS89/28LnQCxW5gAHOZiAGFXfgDGWZH/p09rAPlNoAEd6eb/lhVW/jwLwQCXJST+uZbz/+TUUwGsl7QAyambAPQ86gCO6wQBQ9o8AMBxSwF088//QaybAFEenP9QSCH+Eudt/45rFf59GoT/sBA7/5bJOgDOqckA0HniACisDv+WPV7/ODmc/408kf8tbJX/7pGb/9FVH/7ADNIAY2Jd/pgQlwDhudwAjess/6CsFf5HGh//DUBd/hw4xgCxPvgBtgjxAKZllP9OUYX/gd7XAbypgf/oB2EAMXA8/9nl+wB3bIoAJxN7/oMx6wCEVJEAguaU/xlKuwAF9Tb/udvxARLC5P/xymYAaXHKAJvrTwAVCbL/nAHvAMiUPQBz99L/Md2HADq9CAEjLgkAUUEF/zSeuf99dC7/SowN/9JcrP6TF0cA2eD9/nNstP+ROjD+27EY/5z/PAGak/IA/YZXADVL5QAww97/H68y/5zSeP/QI97/EvizAQIKZf+dwvj/nsxl/2j+xf9PPgQAsqxlAWCS+/9BCpwAAoml/3QE5wDy1wEAEyMd/yuhTwA7lfYB+0KwAMghA/9Qbo7/w6ERAeQ4Qv97L5H+hASkAEOurAAZ/XIAV2FXAfrcVABgW8j/JX07ABNBdgChNPH/7awG/7C///8BQYL+377mAGX95/+SI20A+h1NATEAEwB7WpsBFlYg/9rVQQBvXX8APF2p/wh/tgARug7+/Yn2/9UZMP5M7gD/+FxG/2PgiwC4Cf8BB6TQAM2DxgFX1scAgtZfAN2V3gAXJqv+xW7VACtzjP7XsXYAYDRCAXWe7QAOQLb/Lj+u/55fvv/hzbH/KwWO/6xj1P/0u5MAHTOZ/+R0GP4eZc8AE/aW/4bnBQB9huIBTUFiAOyCIf8Fbj4ARWx//wdxFgCRFFP+wqHn/4O1PADZ0bH/5ZTU/gODuAB1sbsBHA4f/7BmUAAyVJf/fR82/xWdhf8Ts4sB4OgaACJ1qv+n/Kv/SY3O/oH6IwBIT+wB3OUU/ynKrf9jTO7/xhbg/2zGw/8kjWAB7J47/2pkVwBu4gIA4+reAJpdd/9KcKT/Q1sC/xWRIf9m1on/r+Zn/qP2pgBd93T+p+Ac/9wCOQGrzlQAe+QR/xt4dwB3C5MBtC/h/2jIuf6lAnIATU7UAC2asf8YxHn+Up22AFoQvgEMk8UAX++Y/wvrRwBWknf/rIbWADyDxACh4YEAH4J4/l/IMwBp59L/OgmU/yuo3f987Y4AxtMy/i71ZwCk+FQAmEbQ/7R1sQBGT7kA80ogAJWczwDFxKEB9TXvAA9d9v6L8DH/xFgk/6ImewCAyJ0Brkxn/62pIv7YAav/cjMRAIjkwgBuljj+avafABO4T/+WTfD/m1CiAAA1qf8dl1YARF4QAFwHbv5idZX/+U3m//0KjADWfFz+I3brAFkwOQEWNaYAuJA9/7P/wgDW+D3+O272AHkVUf6mA+QAakAa/0Xohv/y3DX+LtxVAHGV9/9hs2f/vn8LAIfRtgBfNIEBqpDO/3rIzP+oZJIAPJCV/kY8KAB6NLH/9tNl/67tCAAHM3gAEx+tAH7vnP+PvcsAxIBY/+mF4v8efa3/yWwyAHtkO//+owMB3ZS1/9aIOf7etIn/z1g2/xwh+/9D1jQB0tBkAFGqXgCRKDUA4G/n/iMc9P/ix8P+7hHmANnZpP6pnd0A2i6iAcfPo/9sc6IBDmC7/3Y8TAC4n5gA0edH/iqkuv+6mTP+3au2/6KOrQDrL8EAB4sQAV+kQP8Q3aYA28UQAIQdLP9kRXX/POtY/ihRrQBHvj3/u1idAOcLFwDtdaQA4ajf/5pydP+jmPIBGCCqAH1icf6oE0wAEZ3c/ps0BQATb6H/R1r8/61u8AAKxnn//f/w/0J70gDdwtf+eaMR/+EHYwC+MbYAcwmFAegaiv/VRIQALHd6/7NiMwCVWmoARzLm/wqZdv+xRhkApVfNADeK6gDuHmEAcZvPAGKZfwAia9v+dXKs/0y0//7yObP/3SKs/jiiMf9TA///cd29/7wZ5P4QWFn/RxzG/hYRlf/zef7/a8pj/wnODgHcL5kAa4knAWExwv+VM8X+ujoL/2sr6AHIBg7/tYVB/t3kq/97PucB4+qz/yK91P70u/kAvg1QAYJZAQDfha0ACd7G/0J/SgCn2F3/m6jGAUKRAABEZi4BrFqaANiAS/+gKDMAnhEbAXzwMQDsyrD/l3zA/ybBvgBftj0Ao5N8//+lM/8cKBH+12BOAFaR2v4fJMr/VgkFAG8pyP/tbGEAOT4sAHW4DwEt8XQAmAHc/52lvAD6D4MBPCx9/0Hc+/9LMrgANVqA/+dQwv+IgX8BFRK7/y06of9HkyIArvkL/iONHQDvRLH/c246AO6+sQFX9ab/vjH3/5JTuP+tDif/ktdoAI7feACVyJv/1M+RARC12QCtIFf//yO1AHffoQHI317/Rga6/8BDVf8yqZgAkBp7/zjzs/4URIgAJ4y8/v3QBf/Ic4cBK6zl/5xouwCX+6cANIcXAJeZSACTxWv+lJ4F/+6PzgB+mYn/WJjF/gdEpwD8n6X/7042/xg/N/8m3l4A7bcM/87M0gATJ/b+HkrnAIdsHQGzcwAAdXZ0AYQG/P+RgaEBaUONAFIl4v/u4uT/zNaB/qJ7ZP+5eeoALWznAEIIOP+EiIAArOBC/q+dvADm3+L+8ttFALgOdwFSojgAcnsUAKJnVf8x72P+nIfXAG//p/4nxNYAkCZPAfmofQCbYZz/FzTb/5YWkAAslaX/KH+3AMRN6f92gdL/qofm/9Z3xgDp8CMA/TQH/3VmMP8VzJr/s4ix/xcCAwGVgln//BGfAUY8GgCQaxEAtL48/zi2O/9uRzb/xhKB/5XgV//fFZj/iha2//qczQDsLdD/T5TyAWVG0QBnTq4AZZCs/5iI7QG/wogAcVB9AZgEjQCbljX/xHT1AO9ySf4TUhH/fH3q/yg0vwAq0p7/m4SlALIFKgFAXCj/JFVN/7LkdgCJQmD+c+JCAG7wRf6Xb1AAp67s/+Nsa/+88kH/t1H/ADnOtf8vIrX/1fCeAUdLXwCcKBj/ZtJRAKvH5P+aIikA469LABXvwwCK5V8BTMAxAHV7VwHj4YIAfT4//wLGqwD+JA3+kbrOAJT/9P8jAKYAHpbbAVzk1ABcxjz+PoXI/8kpOwB97m3/tKPuAYx6UgAJFlj/xZ0v/5leOQBYHrYAVKFVALKSfACmpgf/FdDfAJy28gCbebkAU5yu/poQdv+6U+gB3zp5/x0XWAAjfX//qgWV/qQMgv+bxB0AoWCIAAcjHQGiJfsAAy7y/wDZvAA5ruIBzukCADm7iP57vQn/yXV//7okzADnGdgAUE5pABOGgf+Uy0QAjVF9/vilyP/WkIcAlzem/ybrWwAVLpoA3/6W/yOZtP99sB0BK2Ie/9h65v/poAwAObkM/vBxB/8FCRD+GltsAG3GywAIkygAgYbk/3y6KP9yYoT+poQXAGNFLAAJ8u7/uDU7AISBZv80IPP+k9/I/3tTs/6HkMn/jSU4AZc84/9aSZwBy6y7AFCXL/9eief/JL87/+HRtf9K19X+Bnaz/5k2wQEyAOcAaJ1IAYzjmv+24hD+YOFc/3MUqv4G+k4A+Eut/zVZBv8AtHYASK0BAEAIzgGuhd8AuT6F/9YLYgDFH9AAq6f0/xbntQGW2rkA96lhAaWL9/8veJUBZ/gzADxFHP4Zs8QAfAfa/jprUQC46Zz//EokAHa8QwCNXzX/3l6l/i49NQDOO3P/L+z6/0oFIAGBmu7/aiDiAHm7Pf8DpvH+Q6qs/x3Ysv8XyfwA/W7zAMh9OQBtwGD/NHPuACZ58//JOCEAwnaCAEtgGf+qHub+Jz/9ACQt+v/7Ae8AoNRcAS3R7QDzIVf+7VTJ/9QSnf7UY3//2WIQ/ous7wCoyYL/j8Gp/+6XwQHXaCkA7z2l/gID8gAWy7H+scwWAJWB1f4fCyn/AJ95/qAZcv+iUMgAnZcLAJqGTgHYNvwAMGeFAGncxQD9qE3+NbMXABh58AH/LmD/azyH/mLN+f8/+Xf/eDvT/3K0N/5bVe0AldRNAThJMQBWxpYAXdGgAEXNtv/0WisAFCSwAHp03QAzpycB5wE//w3FhgAD0SL/hzvKAKdkTgAv30wAuTw+ALKmewGEDKH/Pa4rAMNFkAB/L78BIixOADnqNAH/Fij/9l6SAFPkgAA8TuD/AGDS/5mv7ACfFUkAtHPE/oPhagD/p4YAnwhw/3hEwv+wxMb/djCo/12pAQBwyGYBShj+ABONBP6OPj8Ag7O7/02cm/93VqQAqtCS/9CFmv+Umzr/onjo/vzVmwDxDSoAXjKDALOqcACMU5f/N3dUAYwj7/+ZLUMB7K8nADaXZ/+eKkH/xO+H/lY1ywCVYS/+2CMR/0YDRgFnJFr/KBqtALgwDQCj29n/UQYB/92qbP7p0F0AZMn5/lYkI//Rmh4B48n7/wK9p/5kOQMADYApAMVkSwCWzOv/ka47AHj4lf9VN+EActI1/sfMdwAO90oBP/uBAENolwGHglAAT1k3/3Xmnf8ZYI8A1ZEFAEXxeAGV81//cioUAINIAgCaNRT/ST5tAMRmmAApDMz/eiYLAfoKkQDPfZQA9vTe/ykgVQFw1X4AovlWAUfGf/9RCRUBYicE/8xHLQFLb4kA6jvnACAwX//MH3IBHcS1/zPxp/5dbY4AaJAtAOsMtf80cKQATP7K/64OogA965P/K0C5/ul92QDzWKf+SjEIAJzMQgB81nsAJt12AZJw7AByYrEAl1nHAFfFcAC5laEALGClAPizFP+829j+KD4NAPOOjQDl487/rMoj/3Ww4f9SbiYBKvUO/xRTYQAxqwoA8nd4ABnoPQDU8JP/BHM4/5ER7/7KEfv/+RL1/2N17wC4BLP/9u0z/yXvif+mcKb/Ubwh/7n6jv82u60A0HDJAPYr5AFouFj/1DTE/zN1bP/+dZsALlsP/1cOkP9X48wAUxpTAZ9M4wCfG9UBGJdsAHWQs/6J0VIAJp8KAHOFyQDftpwBbsRd/zk86QAFp2n/msWkAGAiuv+ThSUB3GO+AAGnVP8UkasAwsX7/l9Ohf/8+PP/4V2D/7uGxP/YmaoAFHae/owBdgBWng8BLdMp/5MBZP5xdEz/039sAWcPMADBEGYBRTNf/2uAnQCJq+kAWnyQAWqhtgCvTOwByI2s/6M6aADptDT/8P0O/6Jx/v8m74r+NC6mAPFlIf6DupwAb9A+/3xeoP8frP4AcK44/7xjG/9DivsAfTqAAZyYrv+yDPf//FSeAFLFDv6syFP/JScuAWrPpwAYvSIAg7KQAM7VBACh4tIASDNp/2Etu/9OuN//sB37AE+gVv90JbIAUk3VAVJUjf/iZdQBr1jH//Ve9wGsdm3/prm+AIO1eABX/l3/hvBJ/yD1j/+Lomf/s2IS/tnMcACT33j/NQrzAKaMlgB9UMj/Dm3b/1vaAf/8/C/+bZx0/3MxfwHMV9P/lMrZ/xpV+f8O9YYBTFmp//It5gA7Yqz/ckmE/k6bMf+eflQAMa8r/xC2VP+dZyMAaMFt/0PdmgDJrAH+CKJYAKUBHf99m+X/HprcAWfvXADcAW3/ysYBAF4CjgEkNiwA6+Ke/6r71v+5TQkAYUryANujlf/wI3b/33JY/sDHAwBqJRj/yaF2/2FZYwHgOmf/ZceT/t48YwDqGTsBNIcbAGYDW/6o2OsA5eiIAGg8gQAuqO4AJ79DAEujLwCPYWL/ONioAajp/P8jbxb/XFQrABrIVwFb/ZgAyjhGAI4ITQBQCq8B/MdMABZuUv+BAcIAC4A9AVcOkf/93r4BD0iuAFWjVv46Yyz/LRi8/hrNDwAT5dL++EPDAGNHuACaxyX/l/N5/yYzS//JVYL+LEH6ADmT8/6SKzv/WRw1ACFUGP+zMxL+vUZTAAucswFihncAnm9vAHeaSf/IP4z+LQ0N/5rAAv5RSCoALqC5/ixwBgCS15UBGrBoAEQcVwHsMpn/s4D6/s7Bv/+mXIn+NSjvANIBzP6orSMAjfMtASQybf8P8sL/4596/7Cvyv5GOUgAKN84ANCiOv+3Yl0AD28MAB4ITP+Ef/b/LfJnAEW1D/8K0R4AA7N5APHo2gF7x1j/AtLKAbyCUf9eZdABZyQtAEzBGAFfGvH/paK7ACRyjADKQgX/JTiTAJgL8wF/Vej/+ofUAbmxcQBa3Ev/RfiSADJvMgBcFlAA9CRz/qNkUv8ZwQYBfz0kAP1DHv5B7Kr/oRHX/j+vjAA3fwQAT3DpAG2gKACPUwf/QRru/9mpjP9OXr3/AJO+/5NHuv5qTX//6Z3pAYdX7f/QDewBm20k/7Rk2gC0oxIAvm4JARE/e/+ziLT/pXt7/5C8Uf5H8Gz/GXAL/+PaM/+nMur/ck9s/x8Tc/+38GMA41eP/0jZ+P9mqV8BgZWVAO6FDAHjzCMA0HMaAWYI6gBwWI8BkPkOAPCerP5kcHcAwo2Z/ig4U/95sC4AKjVM/56/mgBb0VwArQ0QAQVI4v/M/pUAULjPAGQJev52Zav//MsA/qDPNgA4SPkBOIwN/wpAa/5bZTT/4bX4AYv/hADmkREA6TgXAHcB8f/VqZf/Y2MJ/rkPv/+tZ20Brg37/7JYB/4bO0T/CiEC//hhOwAaHpIBsJMKAF95zwG8WBgAuV7+/nM3yQAYMkYAeDUGAI5CkgDk4vn/aMDeAa1E2wCiuCT/j2aJ/50LFwB9LWIA613h/jhwoP9GdPMBmfk3/4EnEQHxUPQAV0UVAV7kSf9OQkH/wuPnAD2SV/+tmxf/cHTb/tgmC/+DuoUAXtS7AGQvWwDM/q//3hLX/q1EbP/j5E//Jt3VAKPjlv4fvhIAoLMLAQpaXv/crlgAo9Pl/8eINACCX93/jLzn/otxgP91q+z+MdwU/zsUq//kbbwAFOEg/sMQrgDj/ogBhydpAJZNzv/S7uIAN9SE/u85fACqwl3/+RD3/xiXPv8KlwoAT4uy/3jyygAa29UAPn0j/5ACbP/mIVP/US3YAeA+EQDW2X0AYpmZ/7Owav6DXYr/bT4k/7J5IP94/EYA3PglAMxYZwGA3Pv/7OMHAWoxxv88OGsAY3LuANzMXgFJuwEAWZoiAE7Zpf8Ow/n/Ceb9/82H9QAa/Af/VM0bAYYCcAAlniAA51vt/7+qzP+YB94AbcAxAMGmkv/oE7X/aY40/2cQGwH9yKUAw9kE/zS9kP97m6D+V4I2/054Pf8OOCkAGSl9/1eo9QDWpUYA1KkG/9vTwv5IXaT/xSFn/yuOjQCD4awA9GkcAERE4QCIVA3/gjko/otNOABUljUANl+dAJANsf5fc7oAdRd2//Sm8f8LuocAsmrL/2HaXQAr/S0ApJgEAIt27wBgARj+65nT/6huFP8y77AAcinoAMH6NQD+oG/+iHop/2FsQwDXmBf/jNHUACq9owDKKjL/amq9/75E2f/pOnUA5dzzAcUDBAAleDb+BJyG/yQ9q/6liGT/1OgOAFquCgDYxkH/DANAAHRxc//4ZwgA530S/6AcxQAeuCMB30n5/3sULv6HOCX/rQ3lAXehIv/1PUkAzX1wAIlohgDZ9h7/7Y6PAEGfZv9spL4A23Wt/yIleP7IRVAAH3za/koboP+6msf/R8f8AGhRnwERyCcA0z3AARruWwCU2QwAO1vV/wtRt/+B5nr/csuRAXe0Qv9IirQA4JVqAHdSaP/QjCsAYgm2/81lhv8SZSYAX8Wm/8vxkwA+0JH/hfb7AAKpDgAN97gAjgf+ACTIF/9Yzd8AW4E0/xW6HgCP5NIB9+r4/+ZFH/6wuof/7s00AYtPKwARsNn+IPNDAPJv6QAsIwn/43JRAQRHDP8mab8AB3Uy/1FPEAA/REH/nSRu/03xA//iLfsBjhnOAHh70QEc/u7/BYB+/1ve1/+iD78AVvBJAIe5Uf4s8aMA1NvS/3CimwDPZXYAqEg4/8QFNABIrPL/fhad/5JgO/+ieZj+jBBfAMP+yP5SlqIAdyuR/sysTv+m4J8AaBPt//V+0P/iO9UAddnFAJhI7QDcHxf+Dlrn/7zUQAE8Zfb/VRhWAAGxbQCSUyABS7bAAHfx4AC57Rv/uGVSAeslTf/9hhMA6PZ6ADxqswDDCwwAbULrAX1xOwA9KKQAr2jwAAIvu/8yDI0Awou1/4f6aABhXN7/2ZXJ/8vxdv9Pl0MAeo7a/5X17wCKKsj+UCVh/3xwp/8kilf/gh2T//FXTv/MYRMBsdEW//fjf/5jd1P/1BnGARCzswCRTaz+WZkO/9q9pwBr6Tv/IyHz/ixwcP+hf08BzK8KACgViv5odOQAx1+J/4W+qP+SpeoBt2MnALfcNv7/3oUAott5/j/vBgDhZjb/+xL2AAQigQGHJIMAzjI7AQ9htwCr2If/ZZgr/5b7WwAmkV8AIswm/rKMU/8ZgfP/TJAlAGokGv52kKz/RLrl/2uh1f8uo0T/lar9ALsRDwDaoKX/qyP2AWANEwCly3UA1mvA//R7sQFkA2gAsvJh//tMgv/TTSoB+k9G/z/0UAFpZfYAPYg6Ae5b1QAOO2L/p1RNABGELv45r8X/uT64AExAzwCsr9D+r0olAIob0/6UfcIACllRAKjLZf8r1dEB6/U2AB4j4v8JfkYA4n1e/px1FP85+HAB5jBA/6RcpgHg1ub/JHiPADcIK//7AfUBamKlAEprav41BDb/WrKWAQN4e//0BVkBcvo9//6ZUgFNDxEAOe5aAV/f5gDsNC/+Z5Sk/3nPJAESELn/SxRKALsLZQAuMIH/Fu/S/03sgf9vTcz/PUhh/8fZ+/8q18wAhZHJ/znmkgHrZMYAkkkj/mzGFP+2T9L/UmeIAPZssAAiETz/E0py/qiqTv+d7xT/lSmoADp5HABPs4b/53mH/67RYv/zer4Aq6bNANR0MAAdbEL/ot62AQ53FQDVJ/n//t/k/7elxgCFvjAAfNBt/3evVf8J0XkBMKu9/8NHhgGI2zP/tluN/jGfSAAjdvX/cLrj/zuJHwCJLKMAcmc8/gjVlgCiCnH/wmhIANyDdP+yT1wAy/rV/l3Bvf+C/yL+1LyXAIgRFP8UZVP/1M6mAOXuSf+XSgP/qFfXAJu8hf+mgUkA8E+F/7LTUf/LSKP+wailAA6kx/4e/8wAQUhbAaZKZv/IKgD/wnHj/0IX0ADl2GT/GO8aAArpPv97CrIBGiSu/3fbxwEto74AEKgqAKY5xv8cGhoAfqXnAPtsZP895Xn/OnaKAEzPEQANInD+WRCoACXQaf8jydf/KGpl/gbvcgAoZ+L+9n9u/z+nOgCE8I4ABZ5Y/4FJnv9eWZIA5jaSAAgtrQBPqQEAc7r3AFRAgwBD4P3/z71AAJocUQEtuDb/V9Tg/wBgSf+BIesBNEJQ//uum/8EsyUA6qRd/l2v/QDGRVf/4GouAGMd0gA+vHL/LOoIAKmv9/8XbYn/5bYnAMClXv71ZdkAv1hgAMReY/9q7gv+NX7zAF4BZf8ukwIAyXx8/40M2gANpp0BMPvt/5v6fP9qlJL/tg3KABw9pwDZmAj+3IIt/8jm/wE3QVf/Xb9h/nL7DgAgaVwBGs+NABjPDf4VMjD/upR0/9Mr4QAlIqL+pNIq/0QXYP+21gj/9XWJ/0LDMgBLDFP+UIykAAmlJAHkbuMA8RFaARk01AAG3wz/i/M5AAxxSwH2t7//1b9F/+YPjgABw8T/iqsv/0A/agEQqdb/z644AVhJhf+2hYwAsQ4Z/5O4Nf8K46H/eNj0/0lN6QCd7osBO0HpAEb72AEpuJn/IMtwAJKT/QBXZW0BLFKF//SWNf9emOj/O10n/1iT3P9OUQ0BIC/8/6ATcv9dayf/dhDTAbl30f/j23/+WGns/6JuF/8kpm7/W+zd/0LqdABvE/T+CukaACC3Bv4Cv/IA2pw1/ik8Rv+o7G8Aebl+/+6Oz/83fjQA3IHQ/lDMpP9DF5D+2ihs/3/KpADLIQP/Ap4AACVgvP/AMUoAbQQAAG+nCv5b2of/y0Kt/5bC4gDJ/Qb/rmZ5AM2/bgA1wgQAUSgt/iNmj/8MbMb/EBvo//xHugGwbnIAjgN1AXFNjgATnMUBXC/8ADXoFgE2EusALiO9/+zUgQACYND+yO7H/zuvpP+SK+cAwtk0/wPfDACKNrL+VevPAOjPIgAxNDL/pnFZ/wot2P8+rRwAb6X2AHZzW/+AVDwAp5DLAFcN8wAWHuQBsXGS/4Gq5v78mYH/keErAEbnBf96aX7+VvaU/24lmv7RA1sARJE+AOQQpf833fn+stJbAFOS4v5FkroAXdJo/hAZrQDnuiYAvXqM//sNcP9pbl0A+0iqAMAX3/8YA8oB4V3kAJmTx/5tqhYA+GX2/7J8DP+y/mb+NwRBAH3WtAC3YJMALXUX/oS/+QCPsMv+iLc2/5LqsQCSZVb/LHuPASHRmADAWin+Uw99/9WsUgDXqZAAEA0iACDRZP9UEvkBxRHs/9m65gAxoLD/b3Zh/+1o6wBPO1z+RfkL/yOsSgETdkQA3nyl/7RCI/9WrvYAK0pv/36QVv/k6lsA8tUY/kUs6//ctCMACPgH/2YvXP/wzWb/cearAR+5yf/C9kb/ehG7AIZGx/+VA5b/dT9nAEFoe//UNhMBBo1YAFOG8/+INWcAqRu0ALExGABvNqcAwz3X/x8BbAE8KkYAuQOi/8KVKP/2fyb+vncm/z13CAFgodv/KsvdAbHypP/1nwoAdMQAAAVdzf6Af7MAfe32/5Wi2f9XJRT+jO7AAAkJwQBhAeIAHSYKAACIP//lSNL+JoZc/07a0AFoJFT/DAXB//KvPf+/qS4Bs5OT/3G+i/59rB8AA0v8/tckDwDBGxgB/0WV/26BdgDLXfkAiolA/iZGBgCZdN4AoUp7AMFjT/92O17/PQwrAZKxnQAuk78AEP8mAAszHwE8OmL/b8JNAZpb9ACMKJABrQr7AMvRMv5sgk4A5LRaAK4H+gAfrjwAKaseAHRjUv92wYv/u63G/tpvOAC5e9gA+Z40ADS0Xf/JCVv/OC2m/oSby/866G4ANNNZ//0AogEJV7cAkYgsAV569QBVvKsBk1zGAAAIaAAeX64A3eY0Aff36/+JrjX/IxXM/0fj1gHoUsIACzDj/6pJuP/G+/z+LHAiAINlg/9IqLsAhId9/4poYf/uuKj/82hU/4fY4v+LkO0AvImWAVA4jP9Wqaf/wk4Z/9wRtP8RDcEAdYnU/43glwAx9K8AwWOv/xNjmgH/QT7/nNI3//L0A//6DpUAnljZ/53Phv776BwALpz7/6s4uP/vM+oAjoqD/xn+8wEKycIAP2FLANLvogDAyB8BddbzABhH3v42KOj/TLdv/pAOV//WT4j/2MTUAIQbjP6DBf0AfGwT/xzXSwBM3jf+6bY/AESrv/40b97/CmlN/1Cq6wCPGFj/Led5AJSB4AE99lQA/S7b/+9MIQAxlBL+5iVFAEOGFv6Om14AH53T/tUqHv8E5Pf+/LAN/ycAH/7x9P//qi0K/v3e+QDecoQA/y8G/7SjswFUXpf/WdFS/uU0qf/V7AAB1jjk/4d3l/9wycEAU6A1/gaXQgASohEA6WFbAIMFTgG1eDX/dV8//+11uQC/foj/kHfpALc5YQEvybv/p6V3AS1kfgAVYgb+kZZf/3g2mADRYmgAj28e/riU+QDr2C4A+MqU/zlfFgDy4aMA6ffo/0erE/9n9DH/VGdd/0R59AFS4A0AKU8r//nOp//XNBX+wCAW//dvPABlSib/FltU/h0cDf/G59f+9JrIAN+J7QDThA4AX0DO/xE+9//pg3kBXRdNAM3MNP5RvYgAtNuKAY8SXgDMK4z+vK/bAG9ij/+XP6L/0zJH/hOSNQCSLVP+slLu/xCFVP/ixl3/yWEU/3h2I/9yMuf/ouWc/9MaDAByJ3P/ztSGAMXZoP90gV7+x9fb/0vf+QH9dLX/6Ndo/+SC9v+5dVYADgUIAO8dPQHtV4X/fZKJ/syo3wAuqPUAmmkWANzUof9rRRj/idq1//FUxv+CetP/jQiZ/76xdgBgWbIA/xAw/npgaf91Nuj/In5p/8xDpgDoNIr/05MMABk2BwAsD9f+M+wtAL5EgQFqk+EAHF0t/uyND/8RPaEA3HPAAOyRGP5vqKkA4Do//3+kvABS6ksB4J6GANFEbgHZptkARuGmAbvBj/8QB1j/Cs2MAHXAnAEROCYAG3xsAavXN/9f/dQAm4eo//aymf6aREoA6D1g/mmEOwAhTMcBvbCC/wloGf5Lxmb/6QFwAGzcFP9y5kYAjMKF/zmepP6SBlD/qcRhAVW3ggBGnt4BO+3q/2AZGv/or2H/C3n4/lgjwgDbtPz+SgjjAMPjSQG4bqH/MemkAYA1LwBSDnn/wb46ADCudf+EFyAAKAqGARYzGf/wC7D/bjmSAHWP7wGdZXb/NlRMAM24Ev8vBEj/TnBV/8EyQgFdEDT/CGmGAAxtSP86nPsAkCPMACygdf4ya8IAAUSl/29uogCeUyj+TNbqADrYzf+rYJP/KONyAbDj8QBG+bcBiFSL/zx69/6PCXX/sa6J/kn3jwDsuX7/Phn3/y1AOP+h9AYAIjk4AWnKUwCAk9AABmcK/0qKQf9hUGT/1q4h/zKGSv9ul4L+b1SsAFTHS/74O3D/CNiyAQm3XwDuGwj+qs3cAMPlhwBiTO3/4lsaAVLbJ//hvscB2ch5/1GzCP+MQc4Ass9X/vr8Lv9oWW4B/b2e/5DWnv+g9Tb/NbdcARXIwv+SIXEB0QH/AOtqK/+nNOgAneXdADMeGQD63RsBQZNX/097xABBxN//TCwRAVXxRADKt/n/QdTU/wkhmgFHO1AAr8I7/41ICQBkoPQA5tA4ADsZS/5QwsIAEgPI/qCfcwCEj/cBb105/zrtCwGG3of/eqNsAXsrvv/7vc7+ULZI/9D24AERPAkAoc8mAI1tWwDYD9P/iE5uAGKjaP8VUHn/rbK3AX+PBABoPFL+1hAN/2DuIQGelOb/f4E+/zP/0v8+jez+nTfg/3In9ADAvPr/5Ew1AGJUUf+tyz3+kzI3/8zrvwA0xfQAWCvT/hu/dwC855oAQlGhAFzBoAH643gAezfiALgRSACFqAr+Foec/ykZZ/8wyjoAupVR/7yG7wDrtb3+2Yu8/0owUgAu2uUAvf37ADLlDP/Tjb8BgPQZ/6nnev5WL73/hLcX/yWylv8zif0AyE4fABZpMgCCPAAAhKNb/hfnuwDAT+8AnWak/8BSFAEYtWf/8AnqAAF7pP+F6QD/yvLyADy69QDxEMf/4HSe/r99W//gVs8AeSXn/+MJxv8Pme//eejZ/ktwUgBfDDn+M9Zp/5TcYQHHYiQAnNEM/grUNADZtDf+1Kro/9gUVP+d+ocAnWN//gHOKQCVJEYBNsTJ/1d0AP7rq5YAG6PqAMqHtADQXwD+e5xdALc+SwCJ67YAzOH//9aL0v8Ccwj/HQxvADScAQD9Ffv/JaUf/gyC0wBqEjX+KmOaAA7ZPf7YC1z/yMVw/pMmxwAk/Hj+a6lNAAF7n//PS2YAo6/EACwB8AB4urD+DWJM/+188f/okrz/yGDgAMwfKQDQyA0AFeFg/6+cxAD30H4APrj0/gKrUQBVc54ANkAt/xOKcgCHR80A4y+TAdrnQgD90RwA9A+t/wYPdv4QltD/uRYy/1Zwz/9LcdcBP5Ir/wThE/7jFz7/Dv/W/i0Izf9XxZf+0lLX//X49/+A+EYA4fdXAFp4RgDV9VwADYXiAC+1BQFco2n/Bh6F/uiyPf/mlRj/EjGeAORkPf508/v/TUtcAVHbk/9Mo/7+jdX2AOglmP5hLGQAySUyAdT0OQCuq7f/+UpwAKacHgDe3WH/811J/vtlZP/Y2V3//oq7/46+NP87y7H/yF40AHNynv+lmGgBfmPi/3ad9AFryBAAwVrlAHkGWACcIF3+ffHT/w7tnf+lmhX/uOAW//oYmP9xTR8A96sX/+2xzP80iZH/wrZyAODqlQAKb2cByYEEAO6OTgA0Bij/btWl/jzP/QA+10UAYGEA/zEtygB4eRb/64swAcYtIv+2MhsBg9Jb/y42gACve2n/xo1O/kP07//1Nmf+Tiby/wJc+f77rlf/iz+QABhsG/8iZhIBIhaYAELldv4yj2MAkKmVAXYemACyCHkBCJ8SAFpl5v+BHXcARCQLAei3NwAX/2D/oSnB/z+L3gAPs/MA/2QP/1I1hwCJOZUBY/Cq/xbm5P4xtFL/PVIrAG712QDHfT0ALv00AI3F2wDTn8EAN3lp/rcUgQCpd6r/y7KL/4cotv+sDcr/QbKUAAjPKwB6NX8BSqEwAOPWgP5WC/P/ZFYHAfVEhv89KxUBmFRe/748+v7vduj/1oglAXFMa/9daGQBkM4X/26WmgHkZ7kA2jEy/odNi/+5AU4AAKGU/2Ed6f/PlJX/oKgAAFuAq/8GHBP+C2/3ACe7lv+K6JUAdT5E/z/YvP/r6iD+HTmg/xkM8QGpPL8AIION/+2fe/9exV7+dP4D/1yzYf55YVz/qnAOABWV+AD44wMAUGBtAEvASgEMWuL/oWpEAdByf/9yKv/+ShpK//ezlv55jDwAk0bI/9Yoof+hvMn/jUGH//Jz/AA+L8oAtJX//oI37QClEbr/CqnCAJxt2v9wjHv/aIDf/rGObP95Jdv/gE0S/29sFwFbwEsArvUW/wTsPv8rQJkB463+AO16hAF/Wbr/jlKA/vxUrgBas7EB89ZX/2c8ov/Qgg7/C4KLAM6B2/9e2Z3/7+bm/3Rzn/6ka18AM9oCAdh9xv+MyoD+C19E/zcJXf6umQb/zKxgAEWgbgDVJjH+G1DVAHZ9cgBGRkP/D45J/4N6uf/zFDL+gu0oANKfjAHFl0H/VJlCAMN+WgAQ7uwBdrtm/wMYhf+7ReYAOMVcAdVFXv9QiuUBzgfmAN5v5gFb6Xf/CVkHAQJiAQCUSoX/M/a0/+SxcAE6vWz/wsvt/hXRwwCTCiMBVp3iAB+ji/44B0v/Plp0ALU8qQCKotT+UacfAM1acP8hcOMAU5d1AbHgSf+ukNn/5sxP/xZN6P9yTuoA4Dl+/gkxjQDyk6UBaLaM/6eEDAF7RH8A4VcnAftsCADGwY8BeYfP/6wWRgAyRHT/Za8o//hp6QCmywcAbsXaANf+Gv6o4v0AH49gAAtnKQC3gcv+ZPdK/9V+hADSkywAx+obAZQvtQCbW54BNmmv/wJOkf5mml8AgM9//jR87P+CVEcA3fPTAJiqzwDeascAt1Re/lzIOP+KtnMBjmCSAIWI5ABhEpYAN/tCAIxmBADKZ5cAHhP4/zO4zwDKxlkAN8Xh/qlf+f9CQUT/vOp+AKbfZAFw7/QAkBfCADontgD0LBj+r0Sz/5h2mgGwooIA2XLM/q1+Tv8h3h7/JAJb/wKP8wAJ69cAA6uXARjX9f+oL6T+8ZLPAEWBtABE83EAkDVI/vstDgAXbqgARERP/25GX/6uW5D/Ic5f/4kpB/8Tu5n+I/9w/wmRuf4ynSUAC3AxAWYIvv/q86kBPFUXAEonvQB0Me8ArdXSAC6hbP+fliUAxHi5/yJiBv+Zwz7/YeZH/2Y9TAAa1Oz/pGEQAMY7kgCjF8QAOBg9ALViwQD7k+X/Yr0Y/y42zv/qUvYAt2cmAW0+zAAK8OAAkhZ1/46aeABF1CMA0GN2AXn/A/9IBsIAdRHF/30PFwCaT5kA1l7F/7k3k/8+/k7+f1KZAG5mP/9sUqH/abvUAVCKJwA8/13/SAy6ANL7HwG+p5D/5CwT/oBD6ADW+Wv+iJFW/4QusAC9u+P/0BaMANnTdAAyUbr+i/ofAB5AxgGHm2QAoM4X/rui0/8QvD8A/tAxAFVUvwDxwPL/mX6RAeqiov/mYdgBQId+AL6U3wE0ACv/HCe9AUCI7gCvxLkAYuLV/3+f9AHirzwAoOmOAbTzz/9FmFkBH2UVAJAZpP6Lv9EAWxl5ACCTBQAnunv/P3Pm/12nxv+P1dz/s5wT/xlCegDWoNn/Ai0+/2pPkv4ziWP/V2Tn/6+R6P9luAH/rgl9AFIloQEkco3/MN6O//W6mgAFrt3+P3Kb/4c3oAFQH4cAfvqzAezaLQAUHJEBEJNJAPm9hAERvcD/347G/0gUD//6Ne3+DwsSABvTcf7Vazj/rpOS/2B+MAAXwW0BJaJeAMed+f4YgLv/zTGy/l2kKv8rd+sBWLft/9rSAf9r/ioA5gpj/6IA4gDb7VsAgbLLANAyX/7O0F//979Z/m7qT/+lPfMAFHpw//b2uf5nBHsA6WPmAdtb/P/H3hb/s/Xp/9Px6gBv+sD/VVSIAGU6Mv+DrZz+dy0z/3bpEP7yWtYAXp/bAQMD6v9iTFz+UDbmAAXk5/41GN//cTh2ARSEAf+r0uwAOPGe/7pzE/8I5a4AMCwAAXJypv8GSeL/zVn0AInjSwH4rTgASnj2/ncDC/9ReMb/iHpi/5Lx3QFtwk7/3/FGAdbIqf9hvi//L2eu/2NcSP526bT/wSPp/hrlIP/e/MYAzCtH/8dUrACGZr4Ab+5h/uYo5gDjzUD+yAzhAKYZ3gBxRTP/j58YAKe4SgAd4HT+ntDpAMF0fv/UC4X/FjqMAcwkM//oHisA60a1/0A4kv6pElT/4gEN/8gysP801fX+qNFhAL9HNwAiTpwA6JA6AblKvQC6jpX+QEV//6HLk/+wl78AiOfL/qO2iQChfvv+6SBCAETPQgAeHCUAXXJgAf5c9/8sq0UAyncL/7x2MgH/U4j/R1IaAEbjAgAg63kBtSmaAEeG5f7K/yQAKZgFAJo/Sf8itnwAed2W/xrM1QEprFcAWp2S/22CFABHa8j/82a9AAHDkf4uWHUACM7jAL9u/f9tgBT+hlUz/4mxcAHYIhb/gxDQ/3mVqgByExcBplAf/3HwegDos/oARG60/tKqdwDfbKT/z0/p/xvl4v7RYlH/T0QHAIO5ZACqHaL/EaJr/zkVCwFkyLX/f0GmAaWGzABop6gAAaRPAJKHOwFGMoD/ZncN/uMGhwCijrP/oGTeABvg2wGeXcP/6o2JABAYff/uzi//YRFi/3RuDP9gc00AW+Po//j+T/9c5Qb+WMaLAM5LgQD6Tc7/jfR7AYpF3AAglwYBg6cW/+1Ep/7HvZYAo6uK/zO8Bv9fHYn+lOKzALVr0P+GH1L/l2Ut/4HK4QDgSJMAMIqX/8NAzv7t2p4Aah2J/v296f9nDxH/wmH/ALItqf7G4ZsAJzB1/4dqcwBhJrUAli9B/1OC5f72JoEAXO+a/ltjfwChbyH/7tny/4O5w//Vv57/KZbaAISpgwBZVPwBq0aA/6P4y/4BMrT/fExVAftvUABjQu//mu22/91+hf5KzGP/QZN3/2M4p/9P+JX/dJvk/+0rDv5FiQv/FvrxAVt6j//N+fMA1Bo8/zC2sAEwF7//y3mY/i1K1f8+WhL+9aPm/7lqdP9TI58ADCEC/1AiPgAQV67/rWVVAMokUf6gRcz/QOG7ADrOXgBWkC8A5Vb1AD+RvgElBScAbfsaAImT6gCieZH/kHTO/8Xouf+3voz/SQz+/4sU8v+qWu//YUK7//W1h/7eiDQA9QUz/ssvTgCYZdgASRd9AP5gIQHr0kn/K9FYAQeBbQB6aOT+qvLLAPLMh//KHOn/QQZ/AJ+QRwBkjF8ATpYNAPtrdgG2On3/ASZs/4290f8Im30BcaNb/3lPvv+G72z/TC/4AKPk7wARbwoAWJVL/9fr7wCnnxj/L5ds/2vRvADp52P+HMqU/64jiv9uGET/AkW1AGtmUgBm7QcAXCTt/92iUwE3ygb/h+qH/xj63gBBXqj+9fjS/6dsyf7/oW8AzQj+AIgNdABksIT/K9d+/7GFgv+eT5QAQ+AlAQzOFf8+Im4B7Wiv/1CEb/+OrkgAVOW0/mmzjABA+A//6YoQAPVDe/7aedT/P1/aAdWFif+PtlL/MBwLAPRyjQHRr0z/nbWW/7rlA/+knW8B572LAHfKvv/aakD/ROs//mAarP+7LwsB1xL7/1FUWQBEOoAAXnEFAVyB0P9hD1P+CRy8AO8JpAA8zZgAwKNi/7gSPADZtosAbTt4/wTA+wCp0vD/Jaxc/pTT9f+zQTQA/Q1zALmuzgFyvJX/7VqtACvHwP9YbHEANCNMAEIZlP/dBAf/l/Fy/77R6ABiMscAl5bV/xJKJAE1KAcAE4dB/xqsRQCu7VUAY18pAAM4EAAnoLH/yGra/rlEVP9buj3+Q4+N/w30pv9jcsYAx26j/8ESugB87/YBbkQWAALrLgHUPGsAaSppAQ7mmAAHBYMAjWia/9UDBgCD5KL/s2QcAed7Vf/ODt8B/WDmACaYlQFiiXoA1s0D/+KYs/8GhYkAnkWM/3Gimv+086z/G71z/48u3P/VhuH/fh1FALwriQHyRgkAWsz//+eqkwAXOBP+OH2d/zCz2v9Ptv3/JtS/ASnrfABglxwAh5S+AM35J/40YIj/1CyI/0PRg//8ghf/24AU/8aBdgBsZQsAsgWSAT4HZP+17F7+HBqkAEwWcP94Zk8AysDlAciw1wApQPT/zrhOAKctPwGgIwD/OwyO/8wJkP/bXuUBehtwAL1pbf9A0Er/+383AQLixgAsTNEAl5hN/9IXLgHJq0X/LNPnAL4l4P/1xD7/qbXe/yLTEQB38cX/5SOYARVFKP+y4qEAlLPBANvC/gEozjP/51z6AUOZqgAVlPEAqkVS/3kS5/9ccgMAuD7mAOHJV/+SYKL/tfLcAK273QHiPqr/OH7ZAXUN4/+zLO8AnY2b/5DdUwDr0dAAKhGlAftRhQB89cn+YdMY/1PWpgCaJAn/+C9/AFrbjP+h2Sb+1JM//0JUlAHPAwEA5oZZAX9Oev/gmwH/UohKALKc0P+6GTH/3gPSAeWWvv9VojT/KVSN/0l7VP5dEZYAdxMcASAW1/8cF8z/jvE0/+Q0fQAdTM8A16f6/q+k5gA3z2kBbbv1/6Es3AEpZYD/pxBeAF3Wa/92SAD+UD3q/3mvfQCLqfsAYSeT/vrEMf+ls27+30a7/xaOfQGas4r/drAqAQqumQCcXGYAqA2h/48QIAD6xbT/y6MsAVcgJAChmRT/e/wPABnjUAA8WI4AERbJAZrNTf8nPy8ACHqNAIAXtv7MJxP/BHAd/xckjP/S6nT+NTI//3mraP+g214AV1IO/ucqBQCli3/+Vk4mAII8Qv7LHi3/LsR6Afk1ov+Ij2f+19JyAOcHoP6pmCr/by32AI6Dh/+DR8z/JOILAAAc8v/hitX/9y7Y/vUDtwBs/EoBzhow/8029v/TxiT/eSMyADTYyv8mi4H+8kmUAEPnjf8qL8wATnQZAQThv/8Gk+QAOlixAHql5f/8U8n/4KdgAbG4nv/yabMB+MbwAIVCywH+JC8ALRhz/3c+/gDE4br+e42sABpVKf/ib7cA1eeXAAQ7B//uipQAQpMh/x/2jf/RjXT/aHAfAFihrABT1+b+L2+XAC0mNAGELcwAioBt/ul1hv/zvq3+8ezwAFJ/7P4o36H/brbh/3uu7wCH8pEBM9GaAJYDc/7ZpPz/N5xFAVRe///oSS0BFBPU/2DFO/5g+yEAJsdJAUCs9/91dDj/5BESAD6KZwH25aT/9HbJ/lYgn/9tIokBVdO6AArBwf56wrEAeu5m/6LaqwBs2aEBnqoiALAvmwG15Av/CJwAABBLXQDOYv8BOpojAAzzuP5DdUL/5uV7AMkqbgCG5LL+umx2/zoTmv9SqT7/co9zAe/EMv+tMMH/kwJU/5aGk/5f6EkAbeM0/r+JCgAozB7+TDRh/6TrfgD+fLwASrYVAXkdI//xHgf+VdrW/wdUlv5RG3X/oJ+Y/kIY3f/jCjwBjYdmANC9lgF1s1wAhBaI/3jHHAAVgU/+tglBANqjqQD2k8b/ayaQAU6vzf/WBfr+L1gd/6QvzP8rNwb/g4bP/nRk1gBgjEsBatyQAMMgHAGsUQX/x7M0/yVUywCqcK4ACwRbAEX0GwF1g1wAIZiv/4yZa//7hyv+V4oE/8bqk/55mFT/zWWbAZ0JGQBIahH+bJkA/73lugDBCLD/rpXRAO6CHQDp1n4BPeJmADmjBAHGbzP/LU9OAXPSCv/aCRn/novG/9NSu/5QhVMAnYHmAfOFhv8oiBAATWtP/7dVXAGxzMoAo0eT/5hFvgCsM7wB+tKs/9PycQFZWRr/QEJv/nSYKgChJxv/NlD+AGrRcwFnfGEA3eZi/x/nBgCywHj+D9nL/3yeTwBwkfcAXPowAaO1wf8lL47+kL2l/y6S8AAGS4AAKZ3I/ld51QABcewABS36AJAMUgAfbOcA4e93/6cHvf+75IT/br0iAF4szAGiNMUATrzx/jkUjQD0ki8BzmQzAH1rlP4bw00AmP1aAQePkP8zJR8AIncm/wfFdgCZvNMAlxR0/vVBNP+0/W4BL7HRAKFjEf923soAfbP8AXs2fv+ROb8AN7p5AArzigDN0+X/fZzx/pScuf/jE7z/fCkg/x8izv4ROVMAzBYl/ypgYgB3ZrgBA74cAG5S2v/IzMD/yZF2AHXMkgCEIGIBwMJ5AGqh+AHtWHwAF9QaAM2rWv/4MNgBjSXm/3zLAP6eqB7/1vgVAHC7B/9Lhe//SuPz//qTRgDWeKIApwmz/xaeEgDaTdEBYW1R//Qhs/85NDn/QazS//lH0f+Oqe4Anr2Z/67+Z/5iIQ4AjUzm/3GLNP8POtQAqNfJ//jM1wHfRKD/OZq3/i/neQBqpokAUYiKAKUrMwDniz0AOV87/nZiGf+XP+wBXr76/6m5cgEF+jr/S2lhAdffhgBxY6MBgD5wAGNqkwCjwwoAIc22ANYOrv+BJuf/NbbfAGIqn//3DSgAvNKxAQYVAP//PZT+iS2B/1kadP5+JnIA+zLy/nmGgP/M+af+pevXAMqx8wCFjT4A8IK+AW6v/wAAFJIBJdJ5/wcnggCO+lT/jcjPAAlfaP8L9K4Ahuh+AKcBe/4QwZX/6OnvAdVGcP/8dKD+8t7c/81V4wAHuToAdvc/AXRNsf8+9cj+PxIl/2s16P4y3dMAotsH/gJeKwC2Prb+oE7I/4eMqgDruOQArzWK/lA6Tf+YyQIBP8QiAAUeuACrsJoAeTvOACZjJwCsUE3+AIaXALoh8f5e/d//LHL8AGx+Of/JKA3/J+Ub/yfvFwGXeTP/mZb4AArqrv929gT+yPUmAEWh8gEQspYAcTiCAKsfaQAaWGz/MSpqAPupQgBFXZUAFDn+AKQZbwBavFr/zATFACjVMgHUYIT/WIq0/uSSfP+49vcAQXVW//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQ=="),B(I,33676,"AQ=="),B(I,33712,"AQ=="),B(I,33744,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw=="),B(I,33936,"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"),B(I,34768,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB"),B(I,34848,"cI0BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=");var aI,nI=(aI=[null,function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(o[Q+8>>2]=2036477234,o[Q+12>>2]=1797285236,o[Q>>2]=1634760805,o[Q+4>>2]=857760878,o[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+48>>2]=0,o[Q+52>>2]=0,o[Q+44>>2]=B,o[Q+56>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,o[Q+60>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,H(Q,A=MA(A,0,I),A,I,g),$A(Q,64)),D=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(o[Q+8>>2]=2036477234,o[Q+12>>2]=1797285236,o[Q>>2]=1634760805,o[Q+4>>2]=857760878,o[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+48>>2]=0,o[Q+44>>2]=B,o[Q+52>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,o[Q+56>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,o[Q+60>>2]=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,H(Q,A=MA(A,0,I),A,I,g),$A(Q,64)),D=Q- -64|0,0},function(A,I,g,C,B,Q,i,E){var n;return A|=0,I|=0,B|=0,Q|=0,i|=0,E|=0,D=n=D+-64|0,(g|=0)|(C|=0)&&(o[n+8>>2]=2036477234,o[n+12>>2]=1797285236,o[n>>2]=1634760805,o[n+4>>2]=857760878,o[n+16>>2]=a[0|E]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24,o[n+20>>2]=a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24,o[n+24>>2]=a[E+8|0]|a[E+9|0]<<8|a[E+10|0]<<16|a[E+11|0]<<24,o[n+28>>2]=a[E+12|0]|a[E+13|0]<<8|a[E+14|0]<<16|a[E+15|0]<<24,o[n+32>>2]=a[E+16|0]|a[E+17|0]<<8|a[E+18|0]<<16|a[E+19|0]<<24,o[n+36>>2]=a[E+20|0]|a[E+21|0]<<8|a[E+22|0]<<16|a[E+23|0]<<24,o[n+40>>2]=a[E+24|0]|a[E+25|0]<<8|a[E+26|0]<<16|a[E+27|0]<<24,o[n+44>>2]=a[E+28|0]|a[E+29|0]<<8|a[E+30|0]<<16|a[E+31|0]<<24,o[n+48>>2]=Q,o[n+52>>2]=i,o[n+56>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[n+60>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,H(n,I,A,g,C),$A(n,64)),D=n- -64|0,0},function(A,I,g,C,B,Q,i){var E;return A|=0,I|=0,B|=0,Q|=0,i|=0,D=E=D+-64|0,(g|=0)|(C|=0)&&(o[E+8>>2]=2036477234,o[E+12>>2]=1797285236,o[E>>2]=1634760805,o[E+4>>2]=857760878,o[E+16>>2]=a[0|i]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24,o[E+20>>2]=a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24,o[E+24>>2]=a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24,o[E+28>>2]=a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24,o[E+32>>2]=a[i+16|0]|a[i+17|0]<<8|a[i+18|0]<<16|a[i+19|0]<<24,o[E+36>>2]=a[i+20|0]|a[i+21|0]<<8|a[i+22|0]<<16|a[i+23|0]<<24,o[E+40>>2]=a[i+24|0]|a[i+25|0]<<8|a[i+26|0]<<16|a[i+27|0]<<24,i=a[i+28|0]|a[i+29|0]<<8|a[i+30|0]<<16|a[i+31|0]<<24,o[E+48>>2]=Q,o[E+44>>2]=i,o[E+52>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[E+56>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[E+60>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,H(E,I,A,g,C),$A(E,64)),D=E- -64|0,0},function(A,I,g,C,B){var Q,i,n;return A|=0,I|=0,g|=0,C|=0,B|=0,D=Q=(i=D)-128&-64,o[Q>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),o[Q+4>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,o[Q+8>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,o[Q+12>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,n=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+20>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+16>>2]=n>>>8&1048575,o[Q+40>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+44>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+48>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+80|0]=0,o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+52>>2]=B,x(Q,I,g,C),O(Q,A),D=i,0},function(A,I,g,C,B){var Q,i,n;return A|=0,I|=0,g|=0,C|=0,B|=0,D=Q=(i=D)-192&-64,o[Q+64>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),o[Q+68>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,o[Q+72>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,o[Q+76>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,n=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+84>>2]=0,o[Q+88>>2]=0,o[Q+92>>2]=0,o[Q+96>>2]=0,o[Q+100>>2]=0,o[Q+80>>2]=n>>>8&1048575,o[Q+104>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+108>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+112>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+144|0]=0,o[Q+120>>2]=0,o[Q+124>>2]=0,o[Q+116>>2]=B,x(B=Q- -64|0,I,g,C),O(B,I=Q+48|0),A=Z(A,I),D=i,0|A},function(A,I){var g;return I|=0,o[(A|=0)>>2]=67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),o[A+4>>2]=(a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108611,o[A+8>>2]=(a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67092735,o[A+12>>2]=(a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6&66076671,g=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,o[A+20>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+32>>2]=0,o[A+36>>2]=0,o[A+16>>2]=g>>>8&1048575,o[A+40>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,o[A+44>>2]=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,o[A+48>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[A+80|0]=0,o[A+56>>2]=0,o[A+60>>2]=0,o[A+52>>2]=I,0},function(A,I,g,C){return x(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return O(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var C,B=0,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,h=0,s=0,p=0,u=0,k=0,l=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,q=0,z=0,V=0,O=0,T=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0;for(D=C=D-368|0;h=(i=a[g+B|0])^a[0|(r=B+33680|0)]|h,c=i^a[r+192|0]|c,y=i^a[r+160|0]|y,e=i^a[r+128|0]|e,n=i^a[r+96|0]|n,f=i^a[r- -64|0]|f,Q=i^a[r+32|0]|Q,31!=(0|(B=B+1|0)););if(B=-1,!(256&((255&((i=127^(r=127&a[g+31|0]))|c))-1|(255&(i|y))-1|(255&(i|e))-1|(255&(87^r|n))-1|(255&(f|r))-1|(255&(Q|r))-1|(255&(r|h))-1))){for(B=I,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,o[C+360>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,o[C+364>>2]=I,I=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[C+352>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[C+356>>2]=I,Q=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,I=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[C+336>>2]=I,o[C+340>>2]=Q,Q=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[C+344>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[C+348>>2]=Q,E[C+336|0]=248&I,E[C+367|0]=63&a[C+367|0]|64,P(C+288|0,g),o[C+260>>2]=0,o[C+264>>2]=0,o[C+268>>2]=0,o[C+272>>2]=0,o[C+276>>2]=0,o[C+208>>2]=0,o[C+212>>2]=0,o[C+216>>2]=0,o[C+220>>2]=0,o[C+224>>2]=0,o[C+228>>2]=0,o[C+244>>2]=0,o[C+248>>2]=0,o[C+240>>2]=1,o[C+252>>2]=0,o[C+256>>2]=0,o[C+192>>2]=0,o[C+196>>2]=0,o[C+200>>2]=0,o[C+204>>2]=0,I=o[C+316>>2],o[C+168>>2]=o[C+312>>2],o[C+172>>2]=I,I=o[C+308>>2],o[C+160>>2]=o[C+304>>2],o[C+164>>2]=I,I=o[C+300>>2],o[C+152>>2]=o[C+296>>2],o[C+156>>2]=I,I=o[C+292>>2],o[C+144>>2]=o[C+288>>2],o[C+148>>2]=I,I=o[C+324>>2],o[C+176>>2]=o[C+320>>2],o[C+180>>2]=I,o[C+116>>2]=0,o[C+120>>2]=0,o[C+124>>2]=0,o[C+128>>2]=0,o[C+132>>2]=0,o[C+100>>2]=0,o[C+104>>2]=0,o[C+96>>2]=1,o[C+108>>2]=0,o[C+112>>2]=0,g=254;Z=o[C+276>>2],i=o[C+180>>2],$=o[C+96>>2],AA=o[C+192>>2],IA=o[C+144>>2],gA=o[C+240>>2],CA=o[C+100>>2],BA=o[C+196>>2],QA=o[C+148>>2],iA=o[C+244>>2],J=o[C+104>>2],EA=o[C+200>>2],N=o[C+152>>2],oA=o[C+248>>2],K=o[C+108>>2],aA=o[C+204>>2],Y=o[C+156>>2],nA=o[C+252>>2],b=o[C+112>>2],rA=o[C+208>>2],G=o[C+160>>2],fA=o[C+256>>2],h=o[C+116>>2],tA=o[C+212>>2],t=o[C+164>>2],eA=o[C+260>>2],c=o[C+120>>2],cA=o[C+216>>2],y=o[C+168>>2],yA=o[C+264>>2],e=o[C+124>>2],wA=o[C+220>>2],n=o[C+172>>2],hA=o[C+268>>2],f=o[C+128>>2],sA=o[C+224>>2],Q=o[C+176>>2],pA=o[C+272>>2],uA=g,U=(H=(I=0-((I=T)^(T=a[C+336+(g>>>3)|0]>>>(7&g)&1))|0)&((B=o[C+132>>2])^(q=o[C+228>>2])))^B,o[C+132>>2]=U,z=i^(p=I&(i^Z)),o[C+84>>2]=z-U,_=f^(u=I&(f^sA)),o[C+128>>2]=_,V=(M=I&(Q^pA))^Q,o[C+80>>2]=V-_,m=e^(k=I&(e^wA)),o[C+124>>2]=m,kA=n^(l=I&(n^hA)),o[C+76>>2]=kA-m,d=c^(s=I&(c^cA)),o[C+120>>2]=d,FA=y^(r=I&(y^yA)),o[C+72>>2]=FA-d,L=h^(i=I&(h^tA)),o[C+116>>2]=L,lA=t^(h=I&(t^eA)),o[C+68>>2]=lA-L,R=b^(c=I&(b^rA)),o[C+112>>2]=R,v=G^(y=I&(G^fA)),o[C+64>>2]=v-R,x=K^(e=I&(K^aA)),o[C+108>>2]=x,O=Y^(n=I&(Y^nA)),o[C+60>>2]=O-x,j=J^(f=I&(J^EA)),o[C+104>>2]=j,K=N^(Q=I&(N^oA)),o[C+56>>2]=K-j,J=CA^(B=I&(CA^BA)),o[C+100>>2]=J,Y=QA^(g=I&(QA^iA)),o[C+52>>2]=Y-J,N=$^(b=I&($^AA)),o[C+96>>2]=N,G=(I&=IA^gA)^IA,o[C+48>>2]=G-N,t=p^Z,H^=q,o[C+36>>2]=t-H,p=M^pA,u^=sA,o[C+32>>2]=p-u,M=l^hA,k^=wA,o[C+28>>2]=M-k,l=r^yA,s^=cA,o[C+24>>2]=l-s,r=h^eA,i^=tA,o[C+20>>2]=r-i,h=y^fA,c^=rA,o[C+16>>2]=h-c,y=n^nA,e^=aA,o[C+12>>2]=y-e,n=Q^oA,f^=EA,o[C+8>>2]=n-f,Q=g^iA,B^=BA,o[C+4>>2]=Q-B,g=I^gA,I=b^AA,o[C>>2]=g-I,o[C+276>>2]=t+H,o[C+272>>2]=p+u,o[C+268>>2]=k+M,o[C+264>>2]=s+l,o[C+260>>2]=i+r,o[C+256>>2]=c+h,o[C+248>>2]=n+f,o[C+244>>2]=B+Q,o[C+240>>2]=I+g,o[C+252>>2]=e+y,o[C+228>>2]=U+z,o[C+224>>2]=_+V,o[C+220>>2]=m+kA,o[C+216>>2]=d+FA,o[C+212>>2]=L+lA,o[C+208>>2]=v+R,o[C+204>>2]=x+O,o[C+200>>2]=K+j,o[C+196>>2]=J+Y,o[C+192>>2]=G+N,F(z=C+96|0,_=C+48|0,G=C+240|0),F(U=C+192|0,U,C),S(_,C),S(C,G),t=o[C+192>>2],H=o[C+96>>2],p=o[C+196>>2],u=o[C+100>>2],M=o[C+200>>2],k=o[C+104>>2],l=o[C+204>>2],s=o[C+108>>2],r=o[C+208>>2],i=o[C+112>>2],h=o[C+212>>2],c=o[C+116>>2],y=o[C+216>>2],e=o[C+120>>2],n=o[C+220>>2],f=o[C+124>>2],Q=o[C+224>>2],B=o[C+128>>2],g=o[C+228>>2],I=o[C+132>>2],o[C+180>>2]=g+I,o[C+176>>2]=B+Q,o[C+172>>2]=n+f,o[C+168>>2]=e+y,o[C+164>>2]=c+h,o[C+160>>2]=i+r,o[C+156>>2]=s+l,o[C+152>>2]=k+M,o[C+148>>2]=p+u,o[C+144>>2]=t+H,o[C+228>>2]=I-g,o[C+224>>2]=B-Q,o[C+220>>2]=f-n,o[C+216>>2]=e-y,o[C+212>>2]=c-h,o[C+208>>2]=i-r,o[C+204>>2]=s-l,o[C+200>>2]=k-M,o[C+196>>2]=u-p,o[C+192>>2]=H-t,F(G,C,_),m=o[C+52>>2],s=o[C+4>>2],d=o[C+56>>2],r=o[C+8>>2],L=o[C+64>>2],i=o[C+16>>2],R=o[C+60>>2],e=o[C+12>>2],x=o[C+72>>2],n=o[C+24>>2],j=o[C+68>>2],f=o[C+20>>2],J=o[C+80>>2],B=o[C+32>>2],N=o[C+76>>2],g=o[C+28>>2],q=o[C+84>>2],I=o[C+36>>2],V=o[C+48>>2],Q=o[C>>2]-V|0,o[C>>2]=Q,I=I-q|0,o[C+36>>2]=I,b=g-N|0,o[C+28>>2]=b,G=B-J|0,o[C+32>>2]=G,h=f-j|0,o[C+20>>2]=h,c=n-x|0,o[C+24>>2]=c,y=e-R|0,o[C+12>>2]=y,e=i-L|0,o[C+16>>2]=e,n=r-d|0,o[C+8>>2]=n,B=s-m|0,o[C+4>>2]=B,S(U,U),I=DA(I,I>>31,121666,0),g=w,O=I,I=DA((33554431&(g=(t=I+16777216|0)>>>0<16777216?g+1|0:g))<<7|t>>>25,g>>25,19,0),f=w,g=I,I=DA(Q,Q>>31,121666,0),v=w+f|0,I=I>>>0>(g=g+I|0)>>>0?v+1|0:v,I=(f=g+33554432|0)>>>0<33554432?I+1|0:I,H=g-(-67108864&f)|0,o[C+96>>2]=H,Q=DA(B,B>>31,121666,0),g=w,g=(B=Q+16777216|0)>>>0<16777216?g+1|0:g,p=(I=(67108863&I)<<6|f>>>26)+(Q-(-33554432&B)|0)|0,o[C+100>>2]=p,v=g>>25,B=(33554431&g)<<7|B>>>25,g=DA(n,n>>31,121666,0)+B|0,I=v+w|0,I=g>>>0>>0?I+1|0:I,f=(u=g+33554432|0)>>>0<33554432?I+1|0:I,M=g-(-67108864&u)|0,o[C+104>>2]=M,B=DA(e,e>>31,121666,0),Q=w,g=DA(y,y>>31,121666,0),I=w,Y=B,K=g,B=(33554431&(I=(k=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|k>>>25,I=(I>>25)+Q|0,I=(g=Y+B|0)>>>0>>0?I+1|0:I,Q=(l=g+33554432|0)>>>0<33554432?I+1|0:I,s=g-(-67108864&l)|0,o[C+112>>2]=s,B=DA(c,c>>31,121666,0),n=w,g=DA(h,h>>31,121666,0),I=w,Y=g,g=(33554431&(I=(r=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|r>>>25,I=(I>>25)+n|0,I=g>>>0>(B=g+B|0)>>>0?I+1|0:I,g=(i=B+33554432|0)>>>0<33554432?I+1|0:I,h=B-(-67108864&i)|0,o[C+120>>2]=h,n=DA(G,G>>31,121666,0),e=w,B=DA(b,b>>31,121666,0),I=w,G=B,B=(33554431&(I=(c=B+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+e|0,I=B>>>0>(n=B+n|0)>>>0?I+1|0:I,B=(y=n+33554432|0)>>>0<33554432?I+1|0:I,e=n-(-67108864&y)|0,o[C+128>>2]=e,n=(f=K+((67108863&f)<<6|u>>>26)|0)-(-33554432&k)|0,o[C+108>>2]=n,f=(Q=Y+((67108863&Q)<<6|l>>>26)|0)-(-33554432&r)|0,o[C+116>>2]=f,Q=(I=G+((67108863&g)<<6|i>>>26)|0)-(-33554432&c)|0,o[C+124>>2]=Q,g=(B=O+((67108863&B)<<6|y>>>26)|0)-(-33554432&t)|0,o[C+132>>2]=g,S(I=C+144|0,I),o[C+84>>2]=g+q,o[C+80>>2]=e+J,o[C+76>>2]=Q+N,o[C+72>>2]=h+x,o[C+68>>2]=f+j,o[C+64>>2]=s+L,o[C+60>>2]=n+R,o[C+56>>2]=M+d,o[C+52>>2]=p+m,o[C+48>>2]=H+V,g=uA-1|0,F(z,C+288|0,U),F(U,C,_),uA;);h=o[C+144>>2],H=o[C+240>>2],c=o[C+148>>2],p=o[C+244>>2],y=o[C+152>>2],u=o[C+248>>2],e=o[C+156>>2],M=o[C+252>>2],n=o[C+160>>2],k=o[C+256>>2],f=o[C+164>>2],l=o[C+260>>2],Q=o[C+168>>2],s=o[C+264>>2],B=o[C+172>>2],r=o[C+268>>2],g=o[C+176>>2],i=o[C+272>>2],t=0-T|0,I=o[C+276>>2],o[C+276>>2]=t&(I^o[C+180>>2])^I,o[C+272>>2]=i^t&(g^i),o[C+268>>2]=r^t&(B^r),o[C+264>>2]=s^t&(Q^s),o[C+260>>2]=l^t&(f^l),o[C+256>>2]=k^t&(n^k),o[C+252>>2]=M^t&(e^M),o[C+248>>2]=u^t&(y^u),o[C+244>>2]=p^t&(c^p),o[C+240>>2]=H^t&(h^H),H=o[C+192>>2],h=o[C+96>>2],p=o[C+196>>2],c=o[C+100>>2],u=o[C+200>>2],y=o[C+104>>2],M=o[C+204>>2],e=o[C+108>>2],k=o[C+208>>2],n=o[C+112>>2],l=o[C+212>>2],f=o[C+116>>2],s=o[C+216>>2],Q=o[C+120>>2],r=o[C+220>>2],B=o[C+124>>2],i=o[C+224>>2],g=o[C+128>>2],I=o[C+228>>2],o[C+228>>2]=t&(I^o[C+132>>2])^I,o[C+224>>2]=i^t&(g^i),o[C+220>>2]=r^t&(B^r),o[C+216>>2]=s^t&(Q^s),o[C+212>>2]=l^t&(f^l),o[C+208>>2]=k^t&(n^k),o[C+204>>2]=M^t&(e^M),o[C+200>>2]=u^t&(y^u),o[C+196>>2]=p^t&(c^p),o[C+192>>2]=H^t&(h^H),X(g=C+192|0,g),F(I=C+240|0,I,g),W(A,I),$A(C+336|0,32),B=0}return D=C+368|0,0|B},function(A,I){var g,C,B,Q,i,n,r,f,t,e,c,y,w,h,s,p,u,k,l,S;return I|=0,D=g=D-304|0,E[0|(A|=0)]=a[0|I],E[A+1|0]=a[I+1|0],E[A+2|0]=a[I+2|0],E[A+3|0]=a[I+3|0],E[A+4|0]=a[I+4|0],E[A+5|0]=a[I+5|0],E[A+6|0]=a[I+6|0],E[A+7|0]=a[I+7|0],E[A+8|0]=a[I+8|0],E[A+9|0]=a[I+9|0],E[A+10|0]=a[I+10|0],E[A+11|0]=a[I+11|0],E[A+12|0]=a[I+12|0],E[A+13|0]=a[I+13|0],E[A+14|0]=a[I+14|0],E[A+15|0]=a[I+15|0],E[A+16|0]=a[I+16|0],E[A+17|0]=a[I+17|0],E[A+18|0]=a[I+18|0],E[A+19|0]=a[I+19|0],E[A+20|0]=a[I+20|0],E[A+21|0]=a[I+21|0],E[A+22|0]=a[I+22|0],E[A+23|0]=a[I+23|0],E[A+24|0]=a[I+24|0],E[A+25|0]=a[I+25|0],E[A+26|0]=a[I+26|0],E[A+27|0]=a[I+27|0],E[A+28|0]=a[I+28|0],E[A+29|0]=a[I+29|0],E[A+30|0]=a[I+30|0],I=a[I+31|0],E[0|A]=248&a[0|A],E[A+31|0]=63&I|64,v(g+48|0,A),I=o[g+132>>2],C=o[g+92>>2],B=o[g+136>>2],Q=o[g+96>>2],i=o[g+140>>2],n=o[g+100>>2],r=o[g+144>>2],f=o[g+104>>2],t=o[g+148>>2],e=o[g+108>>2],c=o[g+152>>2],y=o[g+112>>2],w=o[g+156>>2],h=o[g+116>>2],s=o[g+160>>2],p=o[g+120>>2],u=o[g+128>>2],k=o[g+88>>2],l=o[g+124>>2],S=o[g+164>>2],o[g+292>>2]=l+S,o[g+288>>2]=s+p,o[g+284>>2]=w+h,o[g+280>>2]=c+y,o[g+276>>2]=t+e,o[g+272>>2]=r+f,o[g+268>>2]=i+n,o[g+264>>2]=B+Q,o[g+260>>2]=I+C,o[g+256>>2]=u+k,o[g+244>>2]=S-l,o[g+240>>2]=s-p,o[g+236>>2]=w-h,o[g+232>>2]=c-y,o[g+228>>2]=t-e,o[g+224>>2]=r-f,o[g+220>>2]=i-n,o[g+216>>2]=B-Q,o[g+212>>2]=I-C,o[g+208>>2]=u-k,X(I=g+208|0,I),F(g,g+256|0,I),W(A,g),D=g+304|0,0},function(A,I,g,C,B){A|=0,C|=0,B|=0;var Q,i=0,n=0,r=0,f=0;if(D=Q=D-112|0,(I|=0)|(g|=0)){i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+24>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,o[Q+28>>2]=i,i=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+16>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+20>>2]=i,i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+4>>2]=i,i=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+8>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+12>>2]=i,B=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,o[Q+104>>2]=0,o[Q+108>>2]=0,o[Q+96>>2]=B,o[Q+100>>2]=C;A:{if(!g&I>>>0>=64|g){for(;J(A,Q+96|0,Q),C=a[Q+104|0]+1|0,E[Q+104|0]=C,C=a[Q+105|0]+(C>>>8|0)|0,E[Q+105|0]=C,C=a[Q+106|0]+(C>>>8|0)|0,E[Q+106|0]=C,C=a[Q+107|0]+(C>>>8|0)|0,E[Q+107|0]=C,C=a[Q+108|0]+(C>>>8|0)|0,E[Q+108|0]=C,C=a[Q+109|0]+(C>>>8|0)|0,E[Q+109|0]=C,C=a[Q+110|0]+(C>>>8|0)|0,E[Q+110|0]=C,E[Q+111|0]=a[Q+111|0]+(C>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(C=0,J(Q+32|0,Q+96|0,Q),g=3&I,B=0,I-1>>>0>=3)for(i=-4&I,I=0;n=r=Q+32|0,E[A+B|0]=a[n+B|0],E[(f=1|B)+A|0]=a[n+f|0],E[(n=2|B)+A|0]=a[n+r|0],E[(n=3|B)+A|0]=a[n+(Q+32|0)|0],B=B+4|0,(0|i)!=(0|(I=I+4|0)););if(g)for(;E[A+B|0]=a[(Q+32|0)+B|0],B=B+1|0,(0|g)!=(0|(C=C+1|0)););}$A(Q+32|0,64),$A(Q,32)}return D=Q+112|0,0},function(A,I,g,C,B,Q,i,n){A|=0,I|=0,B|=0,Q|=0,i|=0,n|=0;var r,f=0;if(D=r=D-112|0,(g|=0)|(C|=0)){f=a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24,o[r+24>>2]=a[n+24|0]|a[n+25|0]<<8|a[n+26|0]<<16|a[n+27|0]<<24,o[r+28>>2]=f,f=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,o[r+16>>2]=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,o[r+20>>2]=f,f=a[n+4|0]|a[n+5|0]<<8|a[n+6|0]<<16|a[n+7|0]<<24,o[r>>2]=a[0|n]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,o[r+4>>2]=f,f=a[n+12|0]|a[n+13|0]<<8|a[n+14|0]<<16|a[n+15|0]<<24,o[r+8>>2]=a[n+8|0]|a[n+9|0]<<8|a[n+10|0]<<16|a[n+11|0]<<24,o[r+12>>2]=f,n=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[r+96>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[r+100>>2]=n,E[r+104|0]=Q,E[r+111|0]=i>>>24,E[r+110|0]=i>>>16,E[r+109|0]=i>>>8,E[r+108|0]=i,E[r+107|0]=(16777215&i)<<8|Q>>>24,E[r+106|0]=(65535&i)<<16|Q>>>16,E[r+105|0]=(255&i)<<24|Q>>>8;A:{if(!C&g>>>0>=64|C){for(;;){for(n=0,J(r+32|0,r+96|0,r);Q=r+32|0,E[A+n|0]=a[Q+n|0]^a[I+n|0],E[(B=1|n)+A|0]=a[B+Q|0]^a[I+B|0],64!=(0|(n=n+2|0)););if(B=a[r+104|0]+1|0,E[r+104|0]=B,B=a[r+105|0]+(B>>>8|0)|0,E[r+105|0]=B,B=a[r+106|0]+(B>>>8|0)|0,E[r+106|0]=B,B=a[r+107|0]+(B>>>8|0)|0,E[r+107|0]=B,B=a[r+108|0]+(B>>>8|0)|0,E[r+108|0]=B,B=a[r+109|0]+(B>>>8|0)|0,E[r+109|0]=B,B=a[r+110|0]+(B>>>8|0)|0,E[r+110|0]=B,E[r+111|0]=a[r+111|0]+(B>>>8|0),I=I- -64|0,A=A- -64|0,C=C-1|0,!(!(C=(g=g+-64|0)>>>0<4294967232?C+1|0:C)&g>>>0>63|C))break}if(!(g|C))break A}if(n=0,J(r+32|0,r+96|0,r),C=1&g,1!=(0|g))for(Q=-2&g,B=0;i=r+32|0,E[A+n|0]=a[i+n|0]^a[I+n|0],E[(g=1|n)+A|0]=a[g+i|0]^a[I+g|0],n=n+2|0,(0|Q)!=(0|(B=B+2|0)););C&&(E[A+n|0]=a[(r+32|0)+n|0]^a[I+n|0])}$A(r+32|0,64),$A(r,32)}return D=r+112|0,0}],aI.grow=function(A){var I=this.length;return this.length=this.length+A,I},aI.set=function(A,I){this[A]=I},aI.get=function(A){return this[A]},aI);function rI(){return i.byteLength/65536|0}return{f:function(){},g:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|eA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},h:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(eA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},i:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|fA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},j:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(fA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},k:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|tA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},l:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=tA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},m:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|rA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},n:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=rA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},o:II,p:function(){return 12},q:oI,r:AI,s:CI,t:ZA,u:II,v:EI,w:oI,x:AI,y:CI,z:ZA,A:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|BA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},B:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(BA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},C:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|CA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},D:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=CA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},E:II,F:gI,G:oI,H:AI,I:CI,J:ZA,K:II,L:II,M:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,D=Q=D-480|0,AA(Q,B|=0),WA(Q,I,g,C),UA(Q,Q+416|0),I=o[Q+444>>2],g=o[Q+440>>2],E[A+24|0]=g,E[A+25|0]=g>>>8,E[A+26|0]=g>>>16,E[A+27|0]=g>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[Q+436>>2],g=o[Q+432>>2],E[A+16|0]=g,E[A+17|0]=g>>>8,E[A+18|0]=g>>>16,E[A+19|0]=g>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[Q+428>>2],g=o[Q+424>>2],E[A+8|0]=g,E[A+9|0]=g>>>8,E[A+10|0]=g>>>16,E[A+11|0]=g>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[Q+420>>2],g=o[Q+416>>2],E[0|A]=g,E[A+1|0]=g>>>8,E[A+2|0]=g>>>16,E[A+3|0]=g>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,D=Q+480|0,0},N:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,D=Q=D-512|0,AA(i=Q+32|0,B|=0),WA(i,I,g,C),UA(i,Q+448|0),I=o[Q+476>>2],o[Q+24>>2]=o[Q+472>>2],o[Q+28>>2]=I,I=o[Q+468>>2],o[Q+16>>2]=o[Q+464>>2],o[Q+20>>2]=I,I=o[Q+460>>2],o[Q+8>>2]=o[Q+456>>2],o[Q+12>>2]=I,I=o[Q+452>>2],o[Q>>2]=o[Q+448>>2],o[Q+4>>2]=I,I=cA(A,Q),g=oA(Q,A,32),D=Q+512|0,g|((0|A)==(0|Q)?-1:I)},O:ZA,P:II,Q:II,R:II,S:II,T:gI,U:AI,V:CI,W:function(A,I,g){A|=0,I|=0;var C,B=0;return D=C=D+-64|0,QA(C,g|=0,32,0),g=o[C+28>>2],B=o[C+24>>2],E[I+24|0]=B,E[I+25|0]=B>>>8,E[I+26|0]=B>>>16,E[I+27|0]=B>>>24,E[I+28|0]=g,E[I+29|0]=g>>>8,E[I+30|0]=g>>>16,E[I+31|0]=g>>>24,g=o[C+20>>2],B=o[C+16>>2],E[I+16|0]=B,E[I+17|0]=B>>>8,E[I+18|0]=B>>>16,E[I+19|0]=B>>>24,E[I+20|0]=g,E[I+21|0]=g>>>8,E[I+22|0]=g>>>16,E[I+23|0]=g>>>24,g=o[C+12>>2],B=o[C+8>>2],E[I+8|0]=B,E[I+9|0]=B>>>8,E[I+10|0]=B>>>16,E[I+11|0]=B>>>24,E[I+12|0]=g,E[I+13|0]=g>>>8,E[I+14|0]=g>>>16,E[I+15|0]=g>>>24,g=o[C+4>>2],B=o[C>>2],E[0|I]=B,E[I+1|0]=B>>>8,E[I+2|0]=B>>>16,E[I+3|0]=B>>>24,E[I+4|0]=g,E[I+5|0]=g>>>8,E[I+6|0]=g>>>16,E[I+7|0]=g>>>24,$A(C,64),A=VA(A,I),D=C- -64|0,0|A},X:dA,Y:SA,Z:JA,_:function(A,I,g,C,B,Q,i,E){var o,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,D=o=D-32|0,B=-1,SA(o,i|=0,E|=0)||(B=IA(A,I,g,a,C,Q,o),$A(o,32)),D=o+32|0,0|B},$:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(mA(),Q()),0|IA(A+16|0,A,I,g,C,B,i)},aa:function(A,I,g,C,B,Q,i){return 0|FA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ba:NA,ca:function(A,I,g,C,B,Q,i,E){var o,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,D=o=D-32|0,B=-1,SA(o,i|=0,E|=0)||(B=gA(A,I,g,a,C,Q,o),$A(o,32)),D=o+32|0,0|B},da:lA,ea:function(A,I,g,C,B,Q,i){return 0|sA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fa:function(A,I,g,C,B){A|=0,I|=0,B|=0;var Q,i,a,n=0,r=0;return i=g|=0,g=C|=0,a=C=D,D=Q=C-512&-64,C=-1,dA(Q- -64|0,Q+32|0)||(Y(C=Q+128|0,0,0,24),z(C,r=Q- -64|0,32,0),z(C,B,32,0),GA(C,n=Q+96|0,24),C=FA(A+32|0,I,i,g,n,C=B,B=Q+32|0),I=o[Q+92>>2],g=o[Q+88>>2],E[A+24|0]=g,E[A+25|0]=g>>>8,E[A+26|0]=g>>>16,E[A+27|0]=g>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[Q+84>>2],g=o[Q+80>>2],E[A+16|0]=g,E[A+17|0]=g>>>8,E[A+18|0]=g>>>16,E[A+19|0]=g>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[Q+76>>2],g=o[Q+72>>2],E[A+8|0]=g,E[A+9|0]=g>>>8,E[A+10|0]=g>>>16,E[A+11|0]=g>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[Q+68>>2],g=o[Q+64>>2],E[0|A]=g,E[A+1|0]=g>>>8,E[A+2|0]=g>>>16,E[A+3|0]=g>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,$A(B,32),$A(r,32),$A(n,24)),D=a,0|C},ga:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,E,o=0,a=0;return i=o=D,D=o=o-448&-64,a=-1,E=C|=0,!C&(g|=0)>>>0>=48|C&&(Y(C=o- -64|0,0,0,24),z(C,I,32,0),z(C,B,32,0),GA(B=C,C=o+32|0,24),a=sA(A,I+32|0,g-32|0,E-(g>>>0<32)|0,C,I,Q)),D=i,0|a},ha:function(){return 48},ia:AI,ja:BI,ka:II,la:AI,ma:BI,na:II,oa:function(){return 384},pa:function(A,I,g,C,B,Q,i){return 0|R(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},qa:Y,ra:function(A,I,g,C){return 0|z(A|=0,I|=0,g|=0,C|=0)},sa:GA,ta:ZA,ua:BI,va:function(A,I,g,C){return 0|QA(A|=0,I|=0,g|=0,C|=0)},wa:AI,xa:BI,ya:EI,za:II,Aa:function(A,I,g,C,B,i){A|=0,I|=0,g|=0,C|=0,i|=0;var E,n=0,r=0,f=0,t=0,e=0,c=0,y=0;return D=E=D-32|0,n=a[0|(B|=0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[E+24>>2]=0,o[E+28>>2]=0,o[E+16>>2]=n,o[E+20>>2]=B,o[E+8>>2]=0,o[E+12>>2]=0,o[(B=E)>>2]=g,o[B+4>>2]=C,I-65>>>0<=4294967246?(o[8916]=28,A=-1):I-65>>>0<4294967232?A=-1:(D=B=(f=D)-512&-64,!i|!A|((r=255&I)-65&255)>>>0<=191?(mA(),Q()):(C=E+16|0,E?(t=725511199^(a[E+8|0]|a[E+9|0]<<8|a[E+10|0]<<16|a[E+11|0]<<24),e=-1694144372^(a[E+12|0]|a[E+13|0]<<8|a[E+14|0]<<16|a[E+15|0]<<24),g=-1377402159^(a[0|E]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24),I=1359893119^(a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24)):(t=725511199,e=-1694144372,g=-1377402159,I=1359893119),C?(c=327033209^(a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24),y=1541459225^(a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24),n=-79577749^(a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24),C=528734635^(a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24)):(c=327033209,y=1541459225,n=-79577749,C=528734635),MA(B- -64|0,0,293),o[B+56>>2]=c,o[B+60>>2]=y,o[B+48>>2]=n,o[B+52>>2]=C,o[B+40>>2]=t,o[B+44>>2]=e,o[B+32>>2]=g,o[B+36>>2]=I,o[B+24>>2]=1595750129,o[B+28>>2]=-1521486534,o[B+16>>2]=-23791573,o[B+20>>2]=1013904242,o[B+8>>2]=-2067093701,o[B+12>>2]=-1150833019,o[B>>2]=-222443256^(8192|r),o[B+4>>2]=1779033703,MA(32+(I=B+384|0)|0,0,96),HA(I,i,32),HA(B+96|0,I,128),o[B+352>>2]=128,$A(I,128),G(B,A,r),D=f),A=0),D=E+32|0,0|A},Ba:ZA,Ca:function(A,I,g){return A|=0,R(I|=0,32,g|=0,32,0,0,0),0|jA(A,I)},Da:function(A,I){return A|=0,hA(I|=0,32),0|jA(A,I)},Ea:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,o,n=0,r=0;if(o=n=D,D=n=n-512&-64,i=(A|=0)||I){if(r=-1,!PA(n+96|0,C,B)){for(C=I||A,A=0,Y(I=n+128|0,0,0,64),z(I,r=n+96|0,32,0),$A(r,32),z(I,g,32,0),z(I,B,32,0),GA(I,n+32|0,64),$A(I,384);I=(B=n+32|0)+A|0,E[A+i|0]=a[0|I],E[A+C|0]=a[I+32|0],E[(g=1|A)+i|0]=a[g+B|0],E[g+C|0]=a[I+33|0],32!=(0|(A=A+2|0)););$A(n+32|0,64),r=0}return D=o,0|r}mA(),Q()},Fa:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,o,n=0,r=0;if(o=n=D,D=n=n-512&-64,i=(A|=0)||I){if(r=-1,!PA(n+96|0,C,B)){for(C=I||A,A=0,Y(I=n+128|0,0,0,64),z(I,r=n+96|0,32,0),$A(r,32),z(I,B,32,0),z(I,g,32,0),GA(I,n+32|0,64),$A(I,384);I=(B=n+32|0)+A|0,E[A+C|0]=a[0|I],E[A+i|0]=a[I+32|0],E[(g=1|A)+C|0]=a[g+B|0],E[g+i|0]=a[I+33|0],32!=(0|(A=A+2|0)););$A(n+32|0,64),r=0}return D=o,0|r}mA(),Q()},Ga:II,Ha:II,Ia:II,Ja:II,Ka:jA,La:PA,Ma:II,Na:II,Oa:II,Pa:gI,Qa:AI,Ra:CI,Sa:ZA,Ta:JA,Ua:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(mA(),Q()),IA(A+16|0,A,I,g,C,B,i),0},Va:NA,Wa:lA,Xa:ZA,Ya:function(A,I,g){return A|=0,g|=0,hA(I|=0,24),d(A,I,g),E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},Za:function(A,I,g){return d(A|=0,I|=0,g|=0),E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},_a:function(A){var I,g=0,C=0;D=I=D-48|0,g=a[28+(A|=0)|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[I+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[I+28>>2]=g,g=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[I+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[I+20>>2]=g,g=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[I>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[I+4>>2]=g,g=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[I+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[I+12>>2]=g,g=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[I+32>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[I+36>>2]=g,xA(I,I,A+32|0,A),g=o[I+28>>2],C=o[I+24>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=g,E[A+29|0]=g>>>8,E[A+30|0]=g>>>16,E[A+31|0]=g>>>24,g=o[I+20>>2],C=o[I+16>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=g,E[A+21|0]=g>>>8,E[A+22|0]=g>>>16,E[A+23|0]=g>>>24,g=o[I+12>>2],C=o[I+8>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=g,E[A+13|0]=g>>>8,E[A+14|0]=g>>>16,E[A+15|0]=g>>>24,g=o[I+4>>2],C=o[I>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=g,E[A+5|0]=g>>>8,E[A+6|0]=g>>>16,E[A+7|0]=g>>>24,C=o[I+36>>2],g=o[I+32>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=C,E[A+41|0]=C>>>8,E[A+42|0]=C>>>16,E[A+43|0]=C>>>24,D=I+48|0},$a:function(A,I,g,C,B,i,n,r,f,t){A|=0,I|=0,C|=0,n|=0,f|=0,t|=0;var e,c=0,y=0,w=0;return c=B|=0,B=i|=0,c|=i=0,e=i|(r|=0),D=i=D-384|0,(g|=0)&&(o[g>>2]=0,o[g+4>>2]=0),!B&c>>>0<4294967279?(XA(y=i+16|0,64,w=A+32|0,A),OA(r=i+80|0,y),$A(y,64),zA(r,n,e,f),zA(r,33904,0-e&15,0),o[i+72>>2]=0,o[i+76>>2]=0,o[(n=i- -64|0)>>2]=0,o[n+4>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,o[i+40>>2]=0,o[i+44>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,E[i+16|0]=t,wA(y,y,64,0,w,1,A),zA(r,y,64,0),E[0|I]=a[i+16|0],wA(I=I+1|0,C,c,B,w,2,A),zA(r,I,c,B),zA(r,33904,15&c,0),o[i+8>>2]=e,o[i+12>>2]=f,zA(r,C=i+8|0,8,0),o[i+8>>2]=c- -64,o[i+12>>2]=B-((c>>>0<4294967232)-1|0),zA(r,C,8,0),TA(r,I=I+c|0),$A(r,256),E[A+36|0]=a[A+36|0]^a[0|I],E[A+37|0]=a[A+37|0]^a[I+1|0],E[A+38|0]=a[A+38|0]^a[I+2|0],E[A+39|0]=a[A+39|0]^a[I+3|0],E[A+40|0]=a[A+40|0]^a[I+4|0],E[A+41|0]=a[A+41|0]^a[I+5|0],E[A+42|0]=a[A+42|0]^a[I+6|0],E[A+43|0]=a[A+43|0]^a[I+7|0],yA(w),(2&t||iA(w,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[i+360>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[i+364>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[i+352>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[i+356>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[i+336>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[i+340>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[i+344>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[i+348>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[i+368>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[i+372>>2]=I,xA(I=i+336|0,I,w,A),I=o[i+364>>2],C=o[i+360>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[i+356>>2],C=o[i+352>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[i+348>>2],C=o[i+344>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[i+340>>2],C=o[i+336>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[i+368>>2],C=o[i+372>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,E[A+40|0]=C,E[A+41|0]=C>>>8,E[A+42|0]=C>>>16,E[A+43|0]=C>>>24),g&&(B=(A=c+17|0)>>>0<17?B+1|0:B,o[g>>2]=A,o[g+4>>2]=B),D=i+384|0):(mA(),Q()),0},ab:function(A,I,g,C,B,i,n,r,f,t){A|=0,I|=0,C|=0,B|=0,r|=0,t|=0;var e,c=0,y=0,w=0,h=0,s=0,p=0;c=i|=0,i=n|=0,y=0|c,e=f|=0,D=n=D-400|0,(g|=0)&&(o[g>>2]=0,o[g+4>>2]=0),C&&(E[0|C]=255),p=-1;A:{I:{if(!(!i&y>>>0<17)){if(s=c=i-(y>>>0<17)|0,!c&(f=y-17|0)>>>0>=4294967279|c)break I;XA(w=n+32|0,64,h=A+32|0,A),OA(c=n+96|0,w),$A(w,64),zA(c,r,e,t),zA(c,33904,0-e&15,0),o[n+88>>2]=0,o[n+92>>2]=0,o[n+80>>2]=0,o[n+84>>2]=0,o[n+72>>2]=0,o[n+76>>2]=0,o[(r=n- -64|0)>>2]=0,o[r+4>>2]=0,o[n+56>>2]=0,o[n+60>>2]=0,o[n+48>>2]=0,o[n+52>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+32>>2]=0,o[n+36>>2]=0,E[n+32|0]=a[0|B],wA(w,w,64,0,h,1,A),r=a[n+32|0],E[n+32|0]=a[0|B],zA(c,w,64,0),zA(c,B=B+1|0,f,s),zA(c,33904,y-1&15,0),o[n+24>>2]=e,o[n+28>>2]=t,zA(c,t=n+24|0,8,0),i=(y=y+47|0)>>>0<47?i+1|0:i,o[n+24>>2]=y,o[n+28>>2]=i,zA(c,t,8,0),TA(c,n),$A(c,256),oA(n,B+f|0,16)?$A(n,16):(wA(I,B,f,s,h,2,A),E[A+36|0]=a[A+36|0]^a[0|n],E[A+37|0]=a[A+37|0]^a[n+1|0],E[A+38|0]=a[A+38|0]^a[n+2|0],E[A+39|0]=a[A+39|0]^a[n+3|0],E[A+40|0]=a[A+40|0]^a[n+4|0],E[A+41|0]=a[A+41|0]^a[n+5|0],E[A+42|0]=a[A+42|0]^a[n+6|0],E[A+43|0]=a[A+43|0]^a[n+7|0],yA(h),(2&r||iA(h,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[n+376>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[n+380>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[n+368>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[n+372>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[n+352>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[n+356>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[n+360>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[n+364>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[n+384>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[n+388>>2]=I,xA(I=n+352|0,I,h,A),I=o[n+380>>2],B=o[n+376>>2],E[A+24|0]=B,E[A+25|0]=B>>>8,E[A+26|0]=B>>>16,E[A+27|0]=B>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[n+372>>2],B=o[n+368>>2],E[A+16|0]=B,E[A+17|0]=B>>>8,E[A+18|0]=B>>>16,E[A+19|0]=B>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[n+364>>2],B=o[n+360>>2],E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[n+356>>2],B=o[n+352>>2],E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[n+384>>2],B=o[n+388>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,E[A+40|0]=B,E[A+41|0]=B>>>8,E[A+42|0]=B>>>16,E[A+43|0]=B>>>24),g&&(o[g>>2]=f,o[g+4>>2]=s),p=0,C&&(E[0|C]=r))}D=n+400|0;break A}mA(),Q()}return 0|p},bb:function(){return 52},cb:function(){return 17},db:gI,eb:II,fb:function(){return-18},gb:oI,hb:QI,ib:function(){return 2},jb:iI,kb:EI,lb:AI,mb:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var Q,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0;if(p=1886610805^(B=a[0|(i=B|=0)]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24),u=1936682341^(o=a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24),B^=1852142177,n=1819895653^o,k=1852075885^(o=a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24),F=1685025377^(i=a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24),r=2037671283^o,o=1952801890^i,D=g,(0|(c=(I+g|0)-(Q=7&g)|0))!=(0|I)){for(;g=(h=o^(s=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24))+n|0,r=B=(i=C=r^(y=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+B|0,e=g=B>>>0>>0?g+1|0:g,g=u+F|0,g=(n=p+k|0)>>>0>>0?g+1|0:g,i=nA(k,F,13)^n,o=g,g=e+(B=g^w)|0,g=i>>>0>(f=r+i|0)>>>0?g+1|0:g,i=nA(i,B,17)^f,t=g,p=nA(i,B=g^w,13),u=w,g=nA(C,h,16),C=e^w,h=g^r,o=nA(n,o,32),g=w+C|0,g=(o=(n=h+o|0)>>>0>>0?g+1|0:g)+B|0,e=g=(r=i+n|0)>>>0>>0?g+1|0:g,p=nA(i=r^p,B=g^u,17),u=w,g=nA(h,C,21),C=o^w,h=g^n,o=nA(f,t,32),g=w+C|0,g=(o=(n=h+o|0)>>>0>>0?g+1|0:g)+B|0,k=(i=i+n|0)^p,B=g=i>>>0>>0?g+1|0:g,F=g^u,g=nA(h,C,16),f=o^=w,t=nA(g^=n,o,21),n=w,e=(o=nA(r,e,32))+g|0,g=w+f|0,r=t^e,o=(g=o>>>0>e>>>0?g+1|0:g)^n,B=nA(i,B,32),n=w,p=e^y,u=g^s,(0|c)!=(0|(I=I+8|0)););I=c}switch(s=0,t=D<<24,Q-1|0){case 6:t|=a[I+6|0]<<16;case 5:t|=a[I+5|0]<<8;case 4:t|=a[I+4|0];case 3:s|=(C=a[I+3|0])<<24,t|=g=C>>>8|0;case 2:s|=(C=a[I+2|0])<<16,t|=g=C>>>16|0;case 1:s|=(C=a[I+1|0])<<8,t|=g=C>>>24|0;case 0:s=a[0|I]|s}return I=A,C=nA(i=r^s,A=o^t,16),A=A+n|0,e=A=(r=B+i|0)>>>0>>0?A+1|0:A,f=nA(B=C^r,A^=g=w,21),o=w,g=u+F|0,C=g=(i=p+k|0)>>>0>>0?g+1|0:g,c=B,B=nA(i,g,32),g=w+A|0,A=o,o=g=B>>>0>(n=c+B|0)>>>0?g+1|0:g,D=nA(B=n^f,A^=g,16),y=w,i=(g=r)+(r=c=nA(k,F,13)^i)|0,g=(f=w^C)+e|0,C=i,e=B,B=nA(i,g=i>>>0>>0?g+1|0:g,32),A=w+A|0,h=nA(i=(r=e+B|0)^D,B=(e=B>>>0>r>>>0?A+1|0:A)^y,21),y=w,c=nA(c,f,17)^C,g=(f=w^g)+o|0,A=g=(A=c)>>>0>(C=A+n|0)>>>0?g+1|0:g,o=i,i=nA(C,g,32),g=w+B|0,D=g=(o=i>>>0>(n=o+i|0)>>>0?g+1|0:g)^y,y=nA(h^=n,g,16),i=w,c=nA(c,f,13)^C,A=(f=A^w)+e|0,C=A=(g=c)>>>0>(B=g+r|0)>>>0?A+1|0:A,A=nA(B,A,32),g=D+w|0,D=g=(r=i)^(i=(A=h+(255^A)|0)>>>0>>0?g+1|0:g),r=A,y=nA(h=y^A,g,21),e=w,c=nA(c,f,17)^B,g=(f=C^w)+(o^t)|0,C=g=(A=n^s)>>>0>(B=c+A|0)>>>0?g+1|0:g,A=nA(B,g,32),g=D+w|0,g=(o=(A=A+h|0)>>>0>>0?g+1|0:g)^e,e=A,y=nA(D=y^A,g,16),n=w,f=nA(c,f,13)^B,A=i+(t=w^C)|0,C=A=(B=r+f|0)>>>0>>0?A+1|0:A,A=nA(B,A,32),g=g+w|0,c=g=(i=(A=A+D|0)>>>0>>0?g+1|0:g)^n,n=A,y=nA(D=y^A,g,21),r=w,A=nA(f,t,17),g=o+(f=C^w)|0,C=g=(B=e+(t=A^B)|0)>>>0>>0?g+1|0:g,A=nA(B,g,32),g=c+w|0,r=g=(o=(A=A+D|0)>>>0>>0?g+1|0:g)^r,e=A,c=nA(D=y^A,g,16),y=w,A=nA(t,f,13),g=i+(f=C^w)|0,C=g=(i=n+(t=A^B)|0)>>>0>>0?g+1|0:g,A=nA(i,g,32),g=r+w|0,r=A=A+D|0,n=g=A>>>0>>0?g+1|0:g,D=nA(B=c^A,A=g^y,21),c=w,t=nA(t,f,17),g=o+(y=C^w)|0,f=i^t,i=B,B=nA(C=e+f|0,g=C>>>0>>0?g+1|0:g,32),A=w+A|0,c=nA(i=(e=i+B|0)^D,B=(o=B>>>0>e>>>0?A+1|0:A)^c,16),t=w,A=nA(f,y,13),g=n+(y=g^w)|0,A=g=(C=r+(f=A^C)|0)>>>0>>0?g+1|0:g,n=nA(C,g,32),g=w+B|0,B=i=n+i|0,t=nA(i^c,(g=i>>>0>>0?g+1|0:g)^t,21),r=w,C=nA(f,y,17)^C,n=nA(C,A^=w,13),A=A+o|0,o=A=w^((C=C+e|0)>>>0>>0?A+1|0:A),C=nA(i=C^n,A,17)^t,A=w^r,g=g+o|0,r=B,C=nA(B=B+i|0,g=r>>>0>B>>>0?g+1|0:g,32)^C^B,E[0|I]=C,E[I+1|0]=C>>>8,E[I+2|0]=C>>>16,E[I+3|0]=C>>>24,A^=g^w,E[I+4|0]=A,E[I+5|0]=A>>>8,E[I+6|0]=A>>>16,E[I+7|0]=A>>>24,0},nb:function(A){hA(A|=0,16)},ob:function(){return 208},pb:BI,qb:II,rb:II,sb:BI,tb:function(){return-65},ub:function(A,I,g){A|=0;var C,B,Q,i,o=0,n=0,r=0,f=0,t=0;return D=Q=D-160|0,QA(I|=0,g|=0,32,0),E[0|I]=248&a[0|I],E[I+31|0]=63&a[I+31|0]|64,v(Q,I),uA(A,Q),n=a[(B=g)+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,r=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,f=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,t=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,g=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,C=I,I=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,E[C+24|0]=I,E[C+25|0]=I>>>8,E[C+26|0]=I>>>16,E[C+27|0]=I>>>24,E[C+28|0]=i,E[C+29|0]=i>>>8,E[C+30|0]=i>>>16,E[C+31|0]=i>>>24,E[C+16|0]=r,E[C+17|0]=r>>>8,E[C+18|0]=r>>>16,E[C+19|0]=r>>>24,E[C+20|0]=f,E[C+21|0]=f>>>8,E[C+22|0]=f>>>16,E[C+23|0]=f>>>24,E[C+8|0]=n,E[C+9|0]=n>>>8,E[C+10|0]=n>>>16,E[C+11|0]=n>>>24,E[C+12|0]=o,E[C+13|0]=o>>>8,E[C+14|0]=o>>>16,E[C+15|0]=o>>>24,E[0|C]=t,E[C+1|0]=t>>>8,E[C+2|0]=t>>>16,E[C+3|0]=t>>>24,E[C+4|0]=g,E[C+5|0]=g>>>8,E[C+6|0]=g>>>16,E[C+7|0]=g>>>24,r=a[(o=A)+8|0]|a[o+9|0]<<8|a[o+10|0]<<16|a[o+11|0]<<24,f=a[o+12|0]|a[o+13|0]<<8|a[o+14|0]<<16|a[o+15|0]<<24,t=a[o+16|0]|a[o+17|0]<<8|a[o+18|0]<<16|a[o+19|0]<<24,g=a[o+20|0]|a[o+21|0]<<8|a[o+22|0]<<16|a[o+23|0]<<24,I=a[0|o]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24,A=a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24,n=a[o+28|0]|a[o+29|0]<<8|a[o+30|0]<<16|a[o+31|0]<<24,o=a[o+24|0]|a[o+25|0]<<8|a[o+26|0]<<16|a[o+27|0]<<24,E[C+56|0]=o,E[C+57|0]=o>>>8,E[C+58|0]=o>>>16,E[C+59|0]=o>>>24,E[C+60|0]=n,E[C+61|0]=n>>>8,E[C+62|0]=n>>>16,E[C+63|0]=n>>>24,E[C+48|0]=t,E[C+49|0]=t>>>8,E[C+50|0]=t>>>16,E[C+51|0]=t>>>24,E[C+52|0]=g,E[C+53|0]=g>>>8,E[C+54|0]=g>>>16,E[C+55|0]=g>>>24,E[C+40|0]=r,E[C+41|0]=r>>>8,E[C+42|0]=r>>>16,E[C+43|0]=r>>>24,E[C+44|0]=f,E[C+45|0]=f>>>8,E[C+46|0]=f>>>16,E[C+47|0]=f>>>24,E[C+32|0]=I,E[C+33|0]=I>>>8,E[C+34|0]=I>>>16,E[C+35|0]=I>>>24,E[C+36|0]=A,E[C+37|0]=A>>>8,E[C+38|0]=A>>>16,E[C+39|0]=A>>>24,D=Q+160|0,0},vb:function(A,I){A|=0,I|=0;var g,C,B,Q,i,n=0,r=0,f=0;return D=r=D-192|0,hA(r,32),QA(I,r,32,0),E[0|I]=248&a[0|I],E[I+31|0]=63&a[I+31|0]|64,v(f=r+32|0,I),uA(A,f),g=r,f=o[r+28>>2],r=o[r+24>>2],E[I+24|0]=r,E[I+25|0]=r>>>8,E[I+26|0]=r>>>16,E[I+27|0]=r>>>24,E[I+28|0]=f,E[I+29|0]=f>>>8,E[I+30|0]=f>>>16,E[I+31|0]=f>>>24,f=o[g+20>>2],r=o[g+16>>2],E[I+16|0]=r,E[I+17|0]=r>>>8,E[I+18|0]=r>>>16,E[I+19|0]=r>>>24,E[I+20|0]=f,E[I+21|0]=f>>>8,E[I+22|0]=f>>>16,E[I+23|0]=f>>>24,f=o[g+12>>2],r=o[g+8>>2],E[I+8|0]=r,E[I+9|0]=r>>>8,E[I+10|0]=r>>>16,E[I+11|0]=r>>>24,E[I+12|0]=f,E[I+13|0]=f>>>8,E[I+14|0]=f>>>16,E[I+15|0]=f>>>24,f=o[g+4>>2],r=o[g>>2],E[0|I]=r,E[I+1|0]=r>>>8,E[I+2|0]=r>>>16,E[I+3|0]=r>>>24,E[I+4|0]=f,E[I+5|0]=f>>>8,E[I+6|0]=f>>>16,E[I+7|0]=f>>>24,C=a[(n=A)+8|0]|a[n+9|0]<<8|a[n+10|0]<<16|a[n+11|0]<<24,B=a[n+12|0]|a[n+13|0]<<8|a[n+14|0]<<16|a[n+15|0]<<24,Q=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,f=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,r=a[0|n]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,A=a[n+4|0]|a[n+5|0]<<8|a[n+6|0]<<16|a[n+7|0]<<24,i=a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24,n=a[n+24|0]|a[n+25|0]<<8|a[n+26|0]<<16|a[n+27|0]<<24,E[I+56|0]=n,E[I+57|0]=n>>>8,E[I+58|0]=n>>>16,E[I+59|0]=n>>>24,E[I+60|0]=i,E[I+61|0]=i>>>8,E[I+62|0]=i>>>16,E[I+63|0]=i>>>24,E[I+48|0]=Q,E[I+49|0]=Q>>>8,E[I+50|0]=Q>>>16,E[I+51|0]=Q>>>24,E[I+52|0]=f,E[I+53|0]=f>>>8,E[I+54|0]=f>>>16,E[I+55|0]=f>>>24,E[I+40|0]=C,E[I+41|0]=C>>>8,E[I+42|0]=C>>>16,E[I+43|0]=C>>>24,E[I+44|0]=B,E[I+45|0]=B>>>8,E[I+46|0]=B>>>16,E[I+47|0]=B>>>24,E[I+32|0]=r,E[I+33|0]=r>>>8,E[I+34|0]=r>>>16,E[I+35|0]=r>>>24,E[I+36|0]=A,E[I+37|0]=A>>>8,E[I+38|0]=A>>>16,E[I+39|0]=A>>>24,$A(g,32),D=g+192|0,0},wb:function(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var i,E=0;return D=i=D-16|0,s(A|=0,i+8|0,kA(A- -64|0,g|=0,C|=0),C,B,Q,0),64!=o[i+8>>2]|o[i+12>>2]?(I&&(o[I>>2]=0,o[I+4>>2]=0),MA(A,0,C- -64|0),E=-1):I&&(o[I>>2]=C- -64,o[I+4>>2]=B-((C>>>0<4294967232)-1|0)),D=i+16|0,0|E},xb:function(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var i=0;A:{I:{if(!(!(B|=0)&(C|=0)>>>0<64||(B=B-1|0,!(B=(C=C+-64|0)>>>0<4294967232?B+1|0:B)&C>>>0>4294967231|B))){if(!k(g,i=g- -64|0,C,B,Q|=0,0))break I;A&&MA(A,0,C)}if(g=-1,!I)break A;o[I>>2]=0,o[I+4>>2]=0;break A}I&&(o[I>>2]=C,o[I+4>>2]=B),g=0,A&&kA(A,i,C)}return 0|g},yb:function(A,I,g,C,B,Q){return s(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0},zb:function(A,I,g,C,B){return 0|k(A|=0,I|=0,g|=0,C|=0,B|=0,0)},Ab:function(A){return EA(A|=0),0},Bb:function(A,I,g,C){return 0|m(A|=0,I|=0,g|=0,C|=0)},Cb:function(A,I,g,C){var B;return I|=0,g|=0,C|=0,D=B=D+-64|0,M(A|=0,B),A=s(I,g,B,64,0,C,1),D=B- -64|0,0|A},Db:function(A,I,g){var C;return I|=0,g|=0,D=C=D+-64|0,M(A|=0,C),A=k(I,C,64,0,g,1),D=C- -64|0,0|A},Eb:function(A,I){A|=0;var g,C=0,B=0,Q=0,i=0,a=0,n=0,f=0,t=0,e=0,c=0,y=0,h=0,s=0,p=0,u=0,k=0,S=0,H=0,M=0,G=0,J=0,N=0,Y=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,q=0,z=0,O=0,T=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,EA=0,oA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0,SA=0,HA=0,GA=0,UA=0,JA=0,NA=0,YA=0,bA=0,_A=0,KA=0,PA=0,vA=0,mA=0,dA=0,LA=0,RA=0,xA=0,jA=0,XA=0;if(D=g=D-256|0,PA=-1,!aA(I|=0)&&!U(g+96|0,I)){for(D=C=D-2048|0,V(s=C+640|0,I=g+96|0),B=o[I+8>>2],i=o[I+12>>2],Q=o[I+16>>2],a=o[I+20>>2],e=o[I+24>>2],c=o[I+28>>2],n=o[I>>2],f=o[I+4>>2],p=o[I+36>>2],o[C+352>>2]=o[I+32>>2],o[C+356>>2]=p,o[C+344>>2]=e,o[C+348>>2]=c,o[C+336>>2]=Q,o[C+340>>2]=a,o[C+328>>2]=B,o[C+332>>2]=i,o[C+320>>2]=n,o[C+324>>2]=f,B=o[I+40>>2],i=o[I+44>>2],Q=o[I+48>>2],a=o[I+52>>2],e=o[I+56>>2],c=o[I+60>>2],f=o[(n=I- -64|0)>>2],n=o[n+4>>2],p=o[I+76>>2],o[C+392>>2]=o[I+72>>2],o[C+396>>2]=p,o[C+384>>2]=f,o[C+388>>2]=n,o[C+376>>2]=e,o[C+380>>2]=c,o[C+368>>2]=Q,o[C+372>>2]=a,o[C+360>>2]=B,o[C+364>>2]=i,B=o[I+80>>2],i=o[I+84>>2],Q=o[I+88>>2],a=o[I+92>>2],e=o[I+96>>2],c=o[I+100>>2],n=o[I+104>>2],f=o[I+108>>2],p=o[I+116>>2],o[C+432>>2]=o[I+112>>2],o[C+436>>2]=p,o[C+424>>2]=n,o[C+428>>2]=f,o[C+416>>2]=e,o[C+420>>2]=c,o[C+408>>2]=Q,o[C+412>>2]=a,o[C+400>>2]=B,o[C+404>>2]=i,l(I=C+480|0,B=C+320|0),F(n=C+160|0,I,i=C+600|0),F(C+200|0,Q=C+520|0,a=C+560|0),F(C+240|0,a,i),F(C+280|0,I,Q),_(I,n,s),F(B,I,i),F(s=C+360|0,Q,a),F(e=C+400|0,a,i),F(c=C+440|0,I,Q),V(f=C+800|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+960|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1120|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1280|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1440|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1600|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(C+1760|0,B),o[C+32>>2]=0,o[C+36>>2]=0,o[C+24>>2]=0,o[C+28>>2]=0,o[C+16>>2]=0,o[C+20>>2]=0,o[C+8>>2]=0,o[C+12>>2]=0,o[C+44>>2]=0,o[C+48>>2]=0,o[C+52>>2]=0,o[C+56>>2]=0,o[C+60>>2]=0,o[C+64>>2]=0,o[C+68>>2]=0,o[C+72>>2]=0,o[C+76>>2]=0,o[C+80>>2]=1,o[C>>2]=0,o[C+4>>2]=0,o[C+40>>2]=1,MA(C+84|0,0,76),f=C+120|0,p=C+80|0,M=C+40|0,I=252;B=o[C+36>>2],o[C+1960>>2]=o[C+32>>2],o[C+1964>>2]=B,B=o[C+28>>2],o[C+1952>>2]=o[C+24>>2],o[C+1956>>2]=B,B=o[C+20>>2],o[C+1944>>2]=o[C+16>>2],o[C+1948>>2]=B,B=o[C+12>>2],o[C+1936>>2]=o[C+8>>2],o[C+1940>>2]=B,B=o[C+4>>2],o[C+1928>>2]=o[C>>2],o[C+1932>>2]=B,B=o[C+76>>2],o[C+2e3>>2]=o[C+72>>2],o[C+2004>>2]=B,B=o[C+68>>2],o[C+1992>>2]=o[C+64>>2],o[C+1996>>2]=B,B=o[C+60>>2],o[C+1984>>2]=o[C+56>>2],o[C+1988>>2]=B,B=o[C+52>>2],o[C+1976>>2]=o[C+48>>2],o[C+1980>>2]=B,B=o[C+44>>2],o[C+1968>>2]=o[C+40>>2],o[C+1972>>2]=B,B=o[C+84>>2],o[C+2008>>2]=o[C+80>>2],o[C+2012>>2]=B,B=o[C+92>>2],o[C+2016>>2]=o[C+88>>2],o[C+2020>>2]=B,B=o[C+100>>2],o[C+2024>>2]=o[C+96>>2],o[C+2028>>2]=B,B=o[C+108>>2],o[C+2032>>2]=o[C+104>>2],o[C+2036>>2]=B,B=o[C+116>>2],o[C+2040>>2]=o[C+112>>2],o[C+2044>>2]=B,B=I,I=E[I+33424|0],l(C+480|0,C+1928|0),(0|I)>0?(F(k=C+320|0,n=C+480|0,i),F(s,Q,a),F(e,a,i),F(c,n,Q),_(n,k,(C+640|0)+r((254&I)>>>1|0,160)|0)):(0|I)>=0||(F(k=C+320|0,n=C+480|0,i),F(s,Q,a),F(e,a,i),F(c,n,Q),b(n,k,(C+640|0)+r((0-I&254)>>>1|0,160)|0)),F(C,I=C+480|0,i),F(M,Q,a),F(p,a,i),F(f,I,Q),I=B-1|0,B;);W(I=C+640|0,C),I=iA(I,32),D=C+2048|0,I&&(Q=o[g+136>>2],o[g>>2]=1-Q,PA=0,j=o[g+172>>2],o[g+36>>2]=0-j,f=o[g+168>>2],o[g+32>>2]=0-f,q=o[g+164>>2],o[g+28>>2]=0-q,s=o[g+160>>2],o[g+24>>2]=0-s,z=o[g+156>>2],o[g+20>>2]=0-z,e=o[g+152>>2],o[g+16>>2]=0-e,O=o[g+148>>2],o[g+12>>2]=0-O,c=o[g+144>>2],o[g+8>>2]=0-c,T=o[g+140>>2],o[g+4>>2]=0-T,X(g,g),I=DA(M=o[g+4>>2],L=M>>31,G=z<<1,fA=G>>31),B=w,C=DA(a=o[g>>2],N=a>>31,s,Y=s>>31),B=w+B|0,B=(I=C+I|0)>>>0>>0?B+1|0:B,C=(i=DA(K=o[g+8>>2],Z=K>>31,e,P=e>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(R=o[g+12>>2],IA=R>>31,BA=O<<1,tA=BA>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA($=o[g+16>>2],QA=$>>31,c,v=c>>31),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,JA=i=o[g+20>>2],n=DA(i,eA=i>>31,EA=T<<1,cA=EA>>31),C=w+I|0,C=(B=n+B|0)>>>0>>0?C+1|0:C,NA=S=o[g+24>>2],I=(Q=DA(S,HA=S>>31,n=Q+1|0,m=n>>31))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,yA=o[g+28>>2],C=(Q=DA(y=r(yA,19),gA=y>>31,oA=j<<1,wA=oA>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,vA=o[g+32>>2],C=DA(k=r(vA,19),AA=k>>31,f,d=f>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,mA=o[g+36>>2],C=DA(p=r(mA,19),x=p>>31,nA=q<<1,hA=nA>>31),I=w+I|0,h=B=C+B|0,Q=C>>>0>B>>>0?I+1|0:I,I=DA(e,P,M,L),B=w,t=DA(a,N,z,sA=z>>31),C=w+B|0,C=(I=t+I|0)>>>0>>0?C+1|0:C,t=DA(K,Z,O,pA=O>>31),B=w+C|0,B=(I=t+I|0)>>>0>>0?B+1|0:B,C=(t=DA(c,v,R,IA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA($,QA,T,uA=T>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(n,m,i,eA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,t=DA(S=r(S,19),rA=S>>31,j,kA=j>>31),C=w+I|0,C=(B=t+B|0)>>>0>>0?C+1|0:C,I=(t=DA(f,d,y,gA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(t=DA(k,AA,q,FA=q>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(s,Y,p,x),I=w+I|0,YA=B=B+C|0,CA=C>>>0>B>>>0?I+1|0:I,I=DA(M,L,BA,tA),C=w,B=(t=DA(a,N,e,P))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,t=DA(c,v,K,Z),C=w+I|0,C=(B=t+B|0)>>>0>>0?C+1|0:C,I=(t=DA(R,IA,EA,cA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(t=DA(n,m,$,QA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(t=r(i,19),lA=t>>31,oA,wA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(f,d,S,rA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,i=DA(y,gA,nA,hA),C=w+I|0,C=(B=i+B|0)>>>0>>0?C+1|0:C,I=(i=DA(s,Y,k,AA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(i=DA(p,x,G,fA))+I|0,I=w+B|0,dA=C,LA=I=C>>>0>>0?I+1|0:I,RA=C=C+33554432|0,xA=I=C>>>0<33554432?I+1|0:I,C=(67108863&I)<<6|C>>>26,I=(I>>26)+CA|0,YA=i=C+YA|0,C=I=C>>>0>i>>>0?I+1|0:I,jA=I=i+16777216|0,i=(33554431&(C=I>>>0<16777216?C+1|0:C))<<7|I>>>25,I=(B=C>>25)+Q|0,I=(C=i+h|0)>>>0>>0?I+1|0:I,bA=B=C+33554432|0,i=I=B>>>0<33554432?I+1|0:I,o[g+72>>2]=C-(-67108864&B),I=DA(M,L,EA,cA),B=w,Q=DA(a,N,c,v),C=w+B|0,C=(I=Q+I|0)>>>0>>0?C+1|0:C,B=(Q=DA(n,m,K,Z))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(Q=r(R,19),SA=Q>>31,oA,wA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(h=DA(CA=r($,19),GA=CA>>31,f,d))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,h=DA(nA,hA,t,lA),I=w+B|0,I=(C=h+C|0)>>>0>>0?I+1|0:I,B=(h=DA(s,Y,S,rA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,h=DA(y,gA,G,fA),I=w+C|0,I=(B=h+B|0)>>>0>>0?I+1|0:I,C=DA(e,P,k,AA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(h=DA(p,x,BA,tA))+B|0,B=w+I|0,H=C,_A=C>>>0>>0?B+1|0:B,I=DA(n,m,M,L),B=w,C=(h=DA(a,N,T,uA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,h=B=r(K,19),B=(u=DA(B,UA=B>>31,j,kA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,u=DA(f,d,Q,SA),I=w+C|0,I=(B=u+B|0)>>>0>>0?I+1|0:I,C=DA(CA,GA,q,FA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(u=DA(s,Y,t,lA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,u=DA(S,rA,z,sA),I=w+B|0,I=(C=u+C|0)>>>0>>0?I+1|0:I,B=(u=DA(e,P,y,gA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,u=DA(k,AA,O,pA),I=w+C|0,I=(B=u+B|0)>>>0>>0?I+1|0:I,C=DA(c,v,p,x),I=w+I|0,KA=B=C+B|0,u=C>>>0>B>>>0?I+1|0:I,I=DA(I=r(M,19),I>>31,oA,wA),B=w,C=DA(a,N,n,m),B=w+B|0,B=(I=C+I|0)>>>0>>0?B+1|0:B,C=(h=DA(f,d,h,UA))+I|0,I=w+B|0,B=(Q=DA(Q,SA,nA,hA))+C|0,C=w+(C>>>0>>0?I+1|0:I)|0,C=B>>>0>>0?C+1|0:C,Q=DA(s,Y,CA,GA),I=w+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=DA(G,fA,t,lA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(Q=DA(e,P,S,rA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,Q=DA(y,gA,BA,tA),I=w+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=(Q=DA(c,v,k,AA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,Q=DA(p,x,EA,cA),I=w+C|0,h=B=Q+B|0,SA=I=B>>>0>>0?I+1|0:I,UA=B=B+33554432|0,XA=I=B>>>0<33554432?I+1|0:I,C=I>>26,I=(67108863&I)<<6|B>>>26,B=C+u|0,u=Q=I+KA|0,I=B=I>>>0>Q>>>0?B+1|0:B,KA=B=Q+16777216|0,Q=(33554431&(I=B>>>0<16777216?I+1|0:I))<<7|B>>>25,I=(I>>25)+_A|0,I=(B=Q+H|0)>>>0>>0?I+1|0:I,_A=B=(C=B)+33554432|0,Q=I=B>>>0<33554432?I+1|0:I,o[g+56>>2]=C-(-67108864&B),I=DA(s,Y,M,L),C=w,B=(H=DA(a,N,q,FA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(K,Z,z,sA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=DA(e,P,R,IA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,H=DA($,QA,O,pA),C=w+I|0,C=(B=H+B|0)>>>0>>0?C+1|0:C,I=(H=DA(c,v,JA,eA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(H=DA(T,uA,NA,HA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(yA,H=yA>>31,n,m),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(k,AA,j,kA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,J=(C=B)+(B=DA(p,x,f,d))|0,C=w+I|0,B=(I=i>>26)+(B=B>>>0>J>>>0?C+1|0:C)|0,I=(C=(i=(67108863&i)<<6|bA>>>26)+J|0)>>>0>>0?B+1|0:B,bA=B=C+16777216|0,i=I=B>>>0<16777216?I+1|0:I,o[g+76>>2]=C-(-33554432&B),I=DA(c,v,M,L),B=w,J=DA(a,N,O,pA),C=w+B|0,C=(I=J+I|0)>>>0>>0?C+1|0:C,J=DA(K,Z,T,uA),B=w+C|0,B=(I=J+I|0)>>>0>>0?B+1|0:B,C=(J=DA(n,m,R,IA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(CA,GA,j,kA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(f,d,t,lA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,B=(S=DA(S,rA,q,FA))+B|0,C=w+I|0,I=(y=DA(s,Y,y,gA))+B|0,B=w+(B>>>0>>0?C+1|0:C)|0,C=(k=DA(k,AA,z,sA))+I|0,I=w+(I>>>0>>0?B+1|0:B)|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(e,P,p,x),I=w+I|0,y=B=B+C|0,I=(I=C>>>0>B>>>0?I+1|0:I)+(B=Q>>26)|0,C=(B=Q=y+(C=(67108863&Q)<<6|_A>>>26)|0)>>>0>>0?I+1|0:I,k=I=B+16777216|0,Q=C=I>>>0<16777216?C+1|0:C,o[g+60>>2]=B-(-33554432&I),I=DA(M,L,nA,hA),C=w,B=(y=DA(a,N,f,d))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(s,Y,K,Z),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,y=DA(R,IA,G,fA),C=w+I|0,C=(B=y+B|0)>>>0>>0?C+1|0:C,I=(y=DA(e,P,$,QA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(y=DA(BA,tA,JA,eA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(c,v,NA,HA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=B,B=DA(yA,H,EA,cA),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,y=B=vA,B=(G=DA(B,S=B>>31,n,m))+C|0,C=w+I|0,I=(p=DA(p,x,oA,wA))+B|0,B=w+(B>>>0>>0?C+1|0:C)|0,C=I>>>0

>>0?B+1|0:B,B=I,I=(I=i>>25)+C|0,I=(B=B+(i=(33554431&i)<<7|bA>>>25)|0)>>>0>>0?I+1|0:I,p=B=(C=B)+33554432|0,i=I=B>>>0<33554432?I+1|0:I,o[g+80>>2]=C-(-67108864&B),B=Q>>25,C=(Q=(33554431&Q)<<7|k>>>25)+(dA-(I=-67108864&RA)|0)|0,I=B+(LA-((I>>>0>dA>>>0)+xA|0)|0)|0,I=C>>>0>>0?I+1|0:I,Q=I=(67108863&(I=(B=C+33554432|0)>>>0<33554432?I+1|0:I))<<6|B>>>26,I=I+(G=YA-(-33554432&jA)|0)|0,o[g+68>>2]=I,o[g+64>>2]=C-(-67108864&B),I=DA(f,d,M,L),C=w,B=(Q=DA(a,N,j,kA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=(Q=DA(K,Z,q,FA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,I=(Q=DA(s,Y,R,IA))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(Q=DA($,QA,z,sA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(e,P,JA,eA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=DA(O,pA,NA,HA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(Q=DA(c,v,yA,H))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,Q=(I=DA(y,S,T,uA))+C|0,C=w+B|0,C=I>>>0>Q>>>0?C+1|0:C,B=Q,Q=DA(I=mA,I>>31,n,m),I=w+C|0,C=B=B+Q|0,I=(I=B>>>0>>0?I+1|0:I)+(B=i>>26)|0,I=(C=C+(i=(67108863&i)<<6|p>>>26)|0)>>>0>>0?I+1|0:I,I=(B=C+16777216|0)>>>0<16777216?I+1|0:I,o[g+84>>2]=C-(-33554432&B),i=u-(-33554432&KA)|0,Q=h-(C=-67108864&UA)|0,a=SA-((C>>>0>h>>>0)+XA|0)|0,I=DA((33554431&(C=I))<<7|B>>>25,I=C>>25,19,0),B=w+a|0,I=I>>>0>(C=I+Q|0)>>>0?B+1|0:B,Q=I=(67108863&(I=(B=C+33554432|0)>>>0<33554432?I+1|0:I))<<6|B>>>26,I=I+i|0,o[g+52>>2]=I,o[g+48>>2]=C-(-67108864&B),W(A,g+48|0))}return D=g+256|0,0|PA},Fb:function(A,I){A|=0;var g,C=0;return D=g=D+-64|0,QA(g,I|=0,32,0),E[0|g]=248&a[0|g],E[g+31|0]=63&a[g+31|0]|64,I=o[g+20>>2],C=o[g+16>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[g+12>>2],C=o[g+8>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[g+4>>2],C=o[g>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[g+28>>2],C=o[g+24>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,$A(g,64),D=g- -64|0,0},Gb:function(){var A,I;return D=A=D-16|0,E[A+15|0]=0,I=0|t(34904,A+15|0,0),D=A+16|0,0|I},Hb:KA,Ib:function(A){var I,g=0,C=0;if(D=I=D-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;E[I+15|0]=0,g>>>0>(C=0|t(34904,I+15|0,0))>>>0;);g=(C>>>0)%(A>>>0)|0}return D=I+16|0,0|g},Jb:hA,Kb:function(A,I,g){XA(A|=0,I|=0,1024,g|=0)},Lb:II,Mb:function(){var A=0,I=0;return(A=o[9048])&&(A=o[A+20>>2])&&(I=0|nI[0|A]()),0|I},Nb:function(A,I,g){A|=0,I|=0;var C,B=0,i=0,o=0;if(D=C=D-16|0,g|=0)e(1240,1100,197,1036),Q();else{if(I)for(;E[C+15|0]=0,i=A+B|0,o=0|t(34904,C+15|0,0),E[0|i]=o,(0|I)!=(0|(B=B+1|0)););D=C+16|0}},Ob:function(A,I,g,C){A|=0,g|=0;var B=0,i=0,o=0;if(!((C|=0)>>>0>2147483646|C<<1>>>0>=(I|=0)>>>0)){if(I=0,C){for(;B=(I<<1)+A|0,i=15&(o=a[I+g|0]),E[B+1|0]=22272+((i<<8)+(i+65526&55552)|0)>>>8,i=B,B=o>>>4|0,E[0|i]=87+((B+65526>>>8&217)+B|0),(0|C)!=(0|(I=I+1|0)););I=C<<1}else I=0;return E[I+A|0]=0,0|A}mA(),Q()},Pb:function(A,I,g,C,B,Q,i){A|=0,I|=0,g|=0,B|=0,Q|=0,i|=0;var n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;A:if(C|=0){I:{g:{C:{B:{if(!B){for(r=1,B=0;;){if(!(255&((y=(65526+(f=(223&(e=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(e^=48)>>>8|0))))break C;if(I>>>0<=c>>>0)break B;if(f=f&y|e&D,255&t?(E[A+c|0]=B|f,c=c+1|0):B=f<<4,t^=-1,(0|(n=n+1|0))==(0|C))break}n=C;break C}for(;;){Q:{i:{E:{o:{a:{if(!(255&((e=(65526+(f=(223&(r=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(y=48^r)>>>8|0)))){if(255&t)break g;if(!$(B,r))break A;if((n=t=n+1|0)>>>0>>0)break a;break A}if(I>>>0<=c>>>0)break B;if(r=f&e|y&D,!(255&t))break o;E[A+c|0]=r|h,c=c+1|0;break Q}for(;;){if(!(255&((e=(65526+(f=(223&(r=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(y=48^r)>>>8|0)))){if(!$(B,r))break A;if((n=n+1|0)>>>0>>0)continue;break E}break}if(I>>>0<=c>>>0)break i;r=f&e|y&D}h=r<<4,t=0;break Q}n=C>>>0>t>>>0?C:t;break A}t=0;break B}if(t^=-1,r=1,!((n=n+1|0)>>>0>>0))break}break C}o[8916]=68,r=0}if(!(255&t))break I}o[8916]=28,w=-1,n=n-1|0,c=0;break A}r||(c=0,w=-1)}return i?o[i>>2]=g+n:(0|C)!=(0|n)&&(o[8916]=28,w=-1),Q&&(o[Q>>2]=c),0|w},Qb:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(mA(),Q()),1+((3&(g=(g=A)+r(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Rb:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var i=0,o=0,n=0,f=0,t=0,c=0,y=0,D=0,w=0,h=0;A:{I:{g:{if(1==(-7&(B|=0))&&(f=(i=(C>>>0)/3|0)<<2,(i=r(i,-3)+C|0)&&(f=2&B?(2|f)+(i>>>1|0)|0:f+4|0),!(I>>>0<=f>>>0))){if(!(4&B)){if(i=0,!C)break A;break g}if(i=0,!C)break A;for(;;){for(c=(D=a[g+y|0])|c<<8,t=i,i=1+((((n|=8)-6>>>0)/6|0)+i|0)|0;w=65510+(o=c>>>(n=(B=n)-6|0)&63)>>>8|0,h=o+65484>>>8|0,E[A+t|0]=(1+(16321^o)^-1)>>>8&45|o+252&o+65474>>>8&(-1^h)|(o+32705^-1)>>>8&95|w&o+65|h&o+71&(-1^w),(0|(t=t+1|0))!=(0|i););if((0|(y=y+1|0))==(0|C))break}if(!n)break A;t=(C=65510+(g=D<<12-B&63)>>>8|0)&g+65,c=g+252&g+65474>>>8&(-1^(B=g+65484>>>8|0)),n=B&g+71&(-1^C),C=g+32705|0,B=(1+(16321^g)^-1)>>>8&45,g=95;break I}mA(),Q()}for(;;){for(c=(D=a[g+y|0])|c<<8,t=i,i=1+((((n|=8)-6>>>0)/6|0)+i|0)|0;w=65510+(o=c>>>(n=(B=n)-6|0)&63)>>>8|0,h=o+65484>>>8|0,E[A+t|0]=(1+(16321^o)^-1)>>>8&43|o+252&o+65474>>>8&(-1^h)|(o+16321^-1)>>>8&47|w&o+65|h&o+71&(-1^w),(0|(t=t+1|0))!=(0|i););if((0|(y=y+1|0))==(0|C))break}if(!n)break A;t=(C=65510+(g=D<<12-B&63)>>>8|0)&g+65,c=g+252&g+65474>>>8&(-1^(B=g+65484>>>8|0)),n=B&g+71&(-1^C),C=g+16321|0,B=(1+(16321^g)^-1)>>>8&43,g=47}E[A+i|0]=g&(-1^C)>>>8|t|c|B|n,i=i+1|0}A:{I:{if(i>>>0<=f>>>0){if(i>>>0>>0)break I;f=i;break A}e(1048,1126,230,1319),Q()}MA(A+i|0,61,f-i|0)}return MA(A+f|0,0,(I>>>0>(g=f+1|0)>>>0?I:g)-f|0),0|A},Sb:function(A,I,g,C,B,i,n,r){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,n|=0;var f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;A:{I:{g:{C:{B:{Q:{i:{E:{o:{a:{n:{if(1==(-7&(r|=0))){if(e=0,!C)break E;if(4&r)break n;for(;;){e=t;r:{f:{t:{e:{for(;;){if(f=(f=(c=E[g+e|0])-65|0)&((90-c^-1)&(-1^f))>>>8&255|c+4&((c+65488^-1)&(57-c^-1))>>>8&255|c+185&((c+65439^-1)&(122-c^-1))>>>8&255|(1+(16336^c)^-1)>>>8&63|(1+(16340^c)^-1)>>>8&62,255!=(0|(f|=(f-1&1+(65470^c))>>>8&255)))break e;if(f=0,!B)break o;if(!$(B,c))break;if((e=e+1|0)>>>0>=C>>>0)break t}t=e;break o}if(w=f+(w<<6)|0,y>>>0>1)break f;y=y+6|0;break r}t=(A=t+1|0)>>>0>>0?C:A;break o}if(y=y-2|0,I>>>0<=D>>>0)break a;E[A+D|0]=w>>>y,D=D+1|0}if(f=0,!((t=e+1|0)>>>0>>0))break}break o}mA(),Q()}n:for(;;){for(e=t;;){r:{if(f=(f=(c=E[g+e|0])-65|0)&((90-c^-1)&(-1^f))>>>8&255|c+4&((c+65488^-1)&(57-c^-1))>>>8&255|c+185&((c+65439^-1)&(122-c^-1))>>>8&255|(1+(16288^c)^-1)>>>8&63|(1+(16338^c)^-1)>>>8&62,255==(0|(f|=(f-1&1+(65470^c))>>>8&255))){if(f=0,!B)break o;if($(B,c))break r;t=e;break o}if(w=f+(w<<6)|0,y>>>0<2)y=y+6|0;else{if(y=y-2|0,I>>>0<=D>>>0)break a;E[A+D|0]=w>>>y,D=D+1|0}if(f=0,(t=e+1|0)>>>0>>0)continue n;break o}if(!((e=e+1|0)>>>0>>0))break}break}t=(A=t+1|0)>>>0>>0?C:A;break o}t=e,o[8916]=68,f=1}if(y>>>0>4)break i;e=t}if(A=e,I=-1,f){t=A;break A}if((-1<>>0<2){r=A;break B}if(t=A>>>0>C>>>0?A:C,e=y>>>1|0,!B)break Q;for(r=A;;){if((0|r)==(0|t)){f=68;break C}if(61!=(0|(A=E[g+r|0]))){if(!$(B,A)){f=28,t=r;break C}}else e=e-1|0;if(r=r+1|0,!e)break}break B}I=-1;break A}if(f=68,A>>>0>=C>>>0)break C;if(61!=a[A+g|0]){t=A,f=28;break C}if(r=A+e|0,1!=(0|e)){if((0|(y=A+1|0))==(0|t))break C;if(61!=a[g+y|0]){t=y,f=28;break C}if(2!=(0|e)){if((0|(A=A+2|0))==(0|t))break C;if(f=28,t=A,61!=a[A+g|0])break C}}}if(I=0,B)break g;break I}o[8916]=f;break A}if(!(C>>>0<=r>>>0)){for(;;){if(!$(B,E[g+r|0]))break I;if((0|(r=r+1|0))==(0|C))break}r=C}}t=r,h=D}return n?o[n>>2]=g+t:(0|C)!=(0|t)&&(o[8916]=28,I=-1),i&&(o[i>>2]=h),0|I},Tb:function(){var A=0;return o[9049]?A=1:(KA(),hA(36176,16),o[9049]=1,A=0),0|A},Ub:function(A,I,g,C,B){A|=0,I|=0,g|=0,B|=0;var i,n=0,r=0,f=0;D=i=D-16|0;A:{if(C|=0){if(f=-1,(n=(n=C-1|0)-(r=n&C?(g>>>0)%(C>>>0)|0:g&n)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+n|0)>>>0>=B>>>0))for(A&&(o[A>>2]=g+1),A=I+g|0,f=0,E[i+15|0]=0,g=0;B=I=A-g|0,r=a[0|I]&a[i+15|0],I=(g^n)-1>>>24|0,E[0|B]=r|128&I,E[i+15|0]=I|a[i+15|0],(0|C)!=(0|(g=g+1|0)););}else f=-1;return D=i+16|0,0|f}mA(),Q()},Vb:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,i=0,E=0,n=0,r=0;if(o[12+(B=D-16|0)>>2]=0,C-1>>>0>>0){for(r=(i=g-1|0)+I|0,g=0,I=0;I&=255,n=(128^(E=a[r-Q|0]))-1&o[B+12>>2]-1&I-1,o[B+12>>2]=o[B+12>>2]|n<<23>>31&Q,I|=E,g|=n>>>8&1,(0|(Q=Q+1|0))!=(0|C););o[A>>2]=i-o[B+12>>2],A=(255&g)-1|0}else A=-1;return 0|A},Wb:function(){return 1312},Xb:function(){return 10},Yb:iI,Zb:QI,_b:function(A){var I,g=0,C=0,B=0,Q=0,i=0,E=0,r=0,t=0,e=0,c=0,y=0,w=0;D=I=D-16|0;A:{I:{g:{C:{B:{Q:{i:{E:{o:{if((A|=0)>>>0<=244){if(3&(g=(E=o[8917])>>>(C=(r=A>>>0<11?16:A+11&-8)>>>3|0)|0)){g=35708+(A=(C=C+(1&(-1^g))|0)<<3)|0,B=o[A+35716>>2],(0|g)!=(0|(A=o[B+8>>2]))?(o[A+12>>2]=g,o[g+8>>2]=A):(y=35668,w=YA(-2,C)&E,o[y>>2]=w),A=B+8|0,g=C<<3,o[B+4>>2]=3|g,o[4+(g=g+B|0)>>2]=1|o[g+4>>2];break A}if((c=o[8919])>>>0>=r>>>0)break o;if(g){g=35708+(A=(B=RA(0-(A=(0-(A=2<>2],(0|g)!=(0|(A=o[Q+8>>2]))?(o[A+12>>2]=g,o[g+8>>2]=A):(E=YA(-2,B)&E,o[8917]=E),o[Q+4>>2]=3|r,B=(A=B<<3)-r|0,o[4+(C=Q+r|0)>>2]=1|B,o[A+Q>>2]=B,c&&(g=35708+(-8&c)|0,i=o[8922],(A=1<<(c>>>3))&E?A=o[g+8>>2]:(o[8917]=A|E,A=g),o[g+8>>2]=i,o[A+12>>2]=i,o[i+12>>2]=g,o[i+8>>2]=A),A=Q+8|0,o[8922]=C,o[8919]=B;break A}if(!(e=o[8918]))break o;for(C=o[35972+(RA(0-e&e)<<2)>>2],i=(-8&o[C+4>>2])-r|0,g=C;(A=o[g+16>>2])||(A=o[g+20>>2]);)i=(B=(g=(-8&o[A+4>>2])-r|0)>>>0>>0)?g:i,C=B?A:C,g=A;if(t=o[C+24>>2],(0|(B=o[C+12>>2]))!=(0|C)){A=o[C+8>>2],o[A+12>>2]=B,o[B+8>>2]=A;break I}if(!(A=o[(g=C+20|0)>>2])){if(!(A=o[C+16>>2]))break E;g=C+16|0}for(;Q=g,B=A,(A=o[(g=A+20|0)>>2])||(g=B+16|0,A=o[B+16>>2]););o[Q>>2]=0;break I}if(r=-1,!(A>>>0>4294967231)&&(r=-8&(A=A+11|0),e=o[8918])){i=0-r|0,E=0,r>>>0<256||(E=31,r>>>0>16777215||(E=62+((r>>>38-(A=f(A>>>8|0))&1)-(A<<1)|0)|0));a:{n:{if(g=o[35972+(E<<2)>>2])for(A=0,C=r<<(31!=(0|E)?25-(E>>>1|0)|0:0);;){if(!((Q=(-8&o[g+4>>2])-r|0)>>>0>=i>>>0||(B=g,i=Q,Q))){i=0,A=g;break n}if(Q=o[g+20>>2],g=o[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break a}for(;i=(C=(g=(-8&o[A+4>>2])-r|0)>>>0>>0)?g:i,B=C?A:B,A=(g=o[A+16>>2])||o[A+20>>2];);}if(!(!B|o[8919]-r>>>0<=i>>>0)){if(E=o[B+24>>2],(0|B)!=(0|(C=o[B+12>>2]))){A=o[B+8>>2],o[A+12>>2]=C,o[C+8>>2]=A;break g}if(!(A=o[(g=B+20|0)>>2])){if(!(A=o[B+16>>2]))break i;g=B+16|0}for(;Q=g,C=A,(A=o[(g=A+20|0)>>2])||(g=C+16|0,A=o[C+16>>2]););o[Q>>2]=0;break g}}}if((A=o[8919])>>>0>=r>>>0){B=o[8922],(g=A-r|0)>>>0>=16?(o[4+(C=B+r|0)>>2]=1|g,o[A+B>>2]=g,o[B+4>>2]=3|r):(o[B+4>>2]=3|A,o[4+(A=A+B|0)>>2]=1|o[A+4>>2],C=0,g=0),o[8919]=g,o[8922]=C,A=B+8|0;break A}if((t=o[8920])>>>0>r>>>0){g=t-r|0,o[8920]=g,A=(C=o[8923])+r|0,o[8923]=A,o[A+4>>2]=1|g,o[C+4>>2]=3|r,A=C+8|0;break A}if(A=0,e=r+47|0,o[9035]?C=o[9037]:(o[9038]=-1,o[9039]=-1,o[9036]=4096,o[9037]=4096,o[9035]=I+12&-16^1431655768,o[9040]=0,o[9028]=0,C=4096),(g=(Q=e+C|0)&(i=0-C|0))>>>0<=r>>>0)break A;if((B=o[9027])&&B>>>0<(E=(C=o[9025])+g|0)>>>0|C>>>0>=E>>>0)break A;o:{if(!(4&a[36112])){a:{n:{r:{f:{if(B=o[8923])for(A=36116;;){if((C=o[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break f;if(!(A=o[A+8>>2]))break}if(-1==(0|(C=pA(0))))break a;if(E=g,(A=(B=o[9036])-1|0)&C&&(E=(g-C|0)+(A+C&0-B)|0),E>>>0<=r>>>0)break a;if((B=o[9027])&&B>>>0<(i=(A=o[9025])+E|0)>>>0|A>>>0>=i>>>0)break a;if((0|C)!=(0|(A=pA(E))))break r;break o}if((0|(C=pA(E=i&Q-t)))==(o[A>>2]+o[A+4>>2]|0))break n;A=C}if(-1==(0|A))break a;if(r+48>>>0<=E>>>0){C=A;break o}if(-1==(0|pA(C=(C=o[9037])+(e-E|0)&0-C)))break a;E=C+E|0,C=A;break o}if(-1!=(0|C))break o}o[9028]=4|o[9028]}if(-1==(0|(C=pA(g)))|-1==(0|(A=pA(0)))|A>>>0<=C>>>0)break C;if((E=A-C|0)>>>0<=r+40>>>0)break C}A=o[9025]+E|0,o[9025]=A,A>>>0>n[9026]&&(o[9026]=A);o:{if(Q=o[8923]){for(A=36116;;){if(((B=o[A>>2])+(g=o[A+4>>2])|0)==(0|C))break o;if(!(A=o[A+8>>2]))break}break Q}for((A=o[8921])>>>0<=C>>>0&&A||(o[8921]=C),A=0,o[9030]=E,o[9029]=C,o[8925]=-1,o[8926]=o[9035],o[9032]=0;g=35708+(B=A<<3)|0,o[B+35716>>2]=g,o[B+35720>>2]=g,32!=(0|(A=A+1|0)););g=(B=E-40|0)-(A=C+8&7?-8-C&7:0)|0,o[8920]=g,A=A+C|0,o[8923]=A,o[A+4>>2]=1|g,o[4+(C+B|0)>>2]=40,o[8924]=o[9039];break B}if(8&a[A+12|0]|B>>>0>Q>>>0|C>>>0<=Q>>>0)break Q;o[A+4>>2]=g+E,C=(A=Q+8&7?-8-Q&7:0)+Q|0,o[8923]=C,A=(g=o[8920]+E|0)-A|0,o[8920]=A,o[C+4>>2]=1|A,o[4+(g+Q|0)>>2]=40,o[8924]=o[9039];break B}B=0;break I}C=0;break g}n[8921]>C>>>0&&(o[8921]=C),g=C+E|0,A=36116;Q:{i:{E:{o:{a:{n:{for(;;){if((0|g)!=o[A>>2]){if(A=o[A+8>>2])continue;break n}break}if(!(8&a[A+12|0]))break a}for(A=36116;;){if((g=o[A>>2])>>>0<=Q>>>0&&(i=g+o[A+4>>2]|0)>>>0>Q>>>0)break o;A=o[A+8>>2]}}if(o[A>>2]=C,o[A+4>>2]=o[A+4>>2]+E,o[4+(e=(C+8&7?-8-C&7:0)+C|0)>>2]=3|r,A=(E=g+(g+8&7?-8-g&7:0)|0)-(t=r+e|0)|0,(0|Q)==(0|E)){o[8923]=t,A=o[8920]+A|0,o[8920]=A,o[t+4>>2]=1|A;break i}if(o[8922]==(0|E)){o[8922]=t,A=o[8919]+A|0,o[8919]=A,o[t+4>>2]=1|A,o[A+t>>2]=A;break i}if(1==(3&(i=o[E+4>>2]))){Q=-8&i;a:if(i>>>0<=255){if(B=o[E+8>>2],g=i>>>3|0,(0|(C=o[E+12>>2]))==(0|B)){y=35668,w=o[8917]&YA(-2,g),o[y>>2]=w;break a}o[B+12>>2]=C,o[C+8>>2]=B}else{if(r=o[E+24>>2],(0|E)==(0|(C=o[E+12>>2])))if((g=o[(i=E+20|0)>>2])||(g=o[(i=E+16|0)>>2])){for(;B=i,(g=o[(i=(C=g)+20|0)>>2])||(i=C+16|0,g=o[C+16>>2]););o[B>>2]=0}else C=0;else g=o[E+8>>2],o[g+12>>2]=C,o[C+8>>2]=g;if(r){B=o[E+28>>2];n:{if(o[(g=35972+(B<<2)|0)>>2]==(0|E)){if(o[g>>2]=C,C)break n;y=35672,w=o[8918]&YA(-2,B),o[y>>2]=w;break a}if(o[r+(o[r+16>>2]==(0|E)?16:20)>>2]=C,!C)break a}o[C+24>>2]=r,(g=o[E+16>>2])&&(o[C+16>>2]=g,o[g+24>>2]=C),(g=o[E+20>>2])&&(o[C+20>>2]=g,o[g+24>>2]=C)}}i=o[4+(E=Q+E|0)>>2],A=A+Q|0}if(o[E+4>>2]=-2&i,o[t+4>>2]=1|A,o[A+t>>2]=A,A>>>0<=255){g=35708+(-8&A)|0,(C=o[8917])&(A=1<<(A>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=t,o[A+12>>2]=t,o[t+12>>2]=g,o[t+8>>2]=A;break i}if(i=31,A>>>0<=16777215&&(i=62+((A>>>38-(g=f(A>>>8|0))&1)-(g<<1)|0)|0),o[t+28>>2]=i,o[t+16>>2]=0,o[t+20>>2]=0,g=35972+(i<<2)|0,(B=o[8918])&(C=1<>>1|0)|0:0),C=o[g>>2];;){if(g=C,(-8&o[C+4>>2])==(0|A))break E;if(C=i>>>29|0,i<<=1,!(C=o[16+(B=(4&C)+g|0)>>2]))break}o[B+16>>2]=t}else o[8918]=C|B,o[g>>2]=t;o[t+24>>2]=g,o[t+12>>2]=t,o[t+8>>2]=t;break i}for(g=(B=E-40|0)-(A=C+8&7?-8-C&7:0)|0,o[8920]=g,A=A+C|0,o[8923]=A,o[A+4>>2]=1|g,o[4+(C+B|0)>>2]=40,o[8924]=o[9039],o[(B=(A=(i+(i-39&7?39-i&7:0)|0)-47|0)>>>0>>0?Q:A)+4>>2]=27,A=o[9032],o[B+16>>2]=o[9031],o[B+20>>2]=A,A=o[9030],o[B+8>>2]=o[9029],o[B+12>>2]=A,o[9031]=B+8,o[9030]=E,o[9029]=C,o[9032]=0,A=B+24|0;o[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)==(0|Q))break B;if(o[B+4>>2]=-2&o[B+4>>2],i=B-Q|0,o[Q+4>>2]=1|i,o[B>>2]=i,i>>>0<=255){g=35708+(-8&i)|0,(C=o[8917])&(A=1<<(i>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A;break B}if(A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=f(i>>>8|0))&1)-(A<<1)|0)|0),o[Q+28>>2]=A,o[Q+16>>2]=0,o[Q+20>>2]=0,g=35972+(A<<2)|0,(B=o[8918])&(C=1<>>1|0)|0:0),B=o[g>>2];;){if((0|i)==(-8&o[(g=B)+4>>2]))break Q;if(C=A>>>29|0,A<<=1,!(B=o[16+(C=(4&C)+g|0)>>2]))break}o[C+16>>2]=Q}else o[8918]=C|B,o[g>>2]=Q;o[Q+24>>2]=g,o[Q+12>>2]=Q,o[Q+8>>2]=Q;break B}A=o[g+8>>2],o[A+12>>2]=t,o[g+8>>2]=t,o[t+24>>2]=0,o[t+12>>2]=g,o[t+8>>2]=A}A=e+8|0;break A}A=o[g+8>>2],o[A+12>>2]=Q,o[g+8>>2]=Q,o[Q+24>>2]=0,o[Q+12>>2]=g,o[Q+8>>2]=A}if(!((A=o[8920])>>>0<=r>>>0)){g=A-r|0,o[8920]=g,A=(C=o[8923])+r|0,o[8923]=A,o[A+4>>2]=1|g,o[C+4>>2]=3|r,A=C+8|0;break A}}o[8916]=48,A=0;break A}g:if(E){g=o[B+28>>2];C:{if(o[(A=35972+(g<<2)|0)>>2]==(0|B)){if(o[A>>2]=C,C)break C;e=YA(-2,g)&e,o[8918]=e;break g}if(o[E+(o[E+16>>2]==(0|B)?16:20)>>2]=C,!C)break g}o[C+24>>2]=E,(A=o[B+16>>2])&&(o[C+16>>2]=A,o[A+24>>2]=C),(A=o[B+20>>2])&&(o[C+20>>2]=A,o[A+24>>2]=C)}g:if(i>>>0<=15)A=i+r|0,o[B+4>>2]=3|A,o[4+(A=A+B|0)>>2]=1|o[A+4>>2];else if(o[B+4>>2]=3|r,o[4+(Q=B+r|0)>>2]=1|i,o[Q+i>>2]=i,i>>>0<=255)g=35708+(-8&i)|0,(C=o[8917])&(A=1<<(i>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A;else{A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=f(i>>>8|0))&1)-(A<<1)|0)|0),o[Q+28>>2]=A,o[Q+16>>2]=0,o[Q+20>>2]=0,g=35972+(A<<2)|0;C:{if((C=1<>>1|0)|0:0),r=o[g>>2];;){if((-8&o[(g=r)+4>>2])==(0|i))break C;if(C=A>>>29|0,A<<=1,!(r=o[16+(C=(4&C)+g|0)>>2]))break}o[C+16>>2]=Q}else o[8918]=C|e,o[g>>2]=Q;o[Q+24>>2]=g,o[Q+12>>2]=Q,o[Q+8>>2]=Q;break g}A=o[g+8>>2],o[A+12>>2]=Q,o[g+8>>2]=Q,o[Q+24>>2]=0,o[Q+12>>2]=g,o[Q+8>>2]=A}A=B+8|0;break A}I:if(t){g=o[C+28>>2];g:{if(o[(A=35972+(g<<2)|0)>>2]==(0|C)){if(o[A>>2]=B,B)break g;y=35672,w=YA(-2,g)&e,o[y>>2]=w;break I}if(o[t+(o[t+16>>2]==(0|C)?16:20)>>2]=B,!B)break I}o[B+24>>2]=t,(A=o[C+16>>2])&&(o[B+16>>2]=A,o[A+24>>2]=B),(A=o[C+20>>2])&&(o[B+20>>2]=A,o[A+24>>2]=B)}i>>>0<=15?(A=i+r|0,o[C+4>>2]=3|A,o[4+(A=A+C|0)>>2]=1|o[A+4>>2]):(o[C+4>>2]=3|r,o[4+(B=C+r|0)>>2]=1|i,o[B+i>>2]=i,c&&(g=35708+(-8&c)|0,Q=o[8922],(A=1<<(c>>>3))&E?A=o[g+8>>2]:(o[8917]=A|E,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A),o[8922]=B,o[8919]=i),A=C+8|0}return D=I+16|0,0|A},$b:function(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,r=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=o[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((C=C-(I=o[C>>2])|0)>>>0>2])))return o[8919]=A,o[Q+4>>2]=-2&I,o[C+4>>2]=1|A,void(o[A+C>>2]=A)}else{if(I>>>0<=255){if(B=o[C+8>>2],I=I>>>3|0,(0|(g=o[C+12>>2]))==(0|B)){a=35668,r=o[8917]&YA(-2,I),o[a>>2]=r;break I}o[B+12>>2]=g,o[g+8>>2]=B;break I}if(E=o[C+24>>2],(0|C)==(0|(I=o[C+12>>2])))if((g=o[(B=C+20|0)>>2])||(g=o[(B=C+16|0)>>2])){for(;i=B,(g=o[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=o[I+16>>2]););o[i>>2]=0}else I=0;else g=o[C+8>>2],o[g+12>>2]=I,o[I+8>>2]=g;if(!E)break I;B=o[C+28>>2];g:{if(o[(g=35972+(B<<2)|0)>>2]==(0|C)){if(o[g>>2]=I,I)break g;a=35672,r=o[8918]&YA(-2,B),o[a>>2]=r;break I}if(o[E+(o[E+16>>2]==(0|C)?16:20)>>2]=I,!I)break I}if(o[I+24>>2]=E,(g=o[C+16>>2])&&(o[I+16>>2]=g,o[g+24>>2]=I),!(g=o[C+20>>2]))break I;o[I+20>>2]=g,o[g+24>>2]=I}}if(!(C>>>0>=Q>>>0)&&1&(I=o[Q+4>>2])){I:{if(!(2&I)){if(o[8923]==(0|Q)){if(o[8923]=C,A=o[8920]+A|0,o[8920]=A,o[C+4>>2]=1|A,o[8922]!=(0|C))break A;return o[8919]=0,void(o[8922]=0)}if(o[8922]==(0|Q))return o[8922]=C,A=o[8919]+A|0,o[8919]=A,o[C+4>>2]=1|A,void(o[A+C>>2]=A);A=(-8&I)+A|0;g:if(I>>>0<=255){if(B=o[Q+8>>2],I=I>>>3|0,(0|(g=o[Q+12>>2]))==(0|B)){a=35668,r=o[8917]&YA(-2,I),o[a>>2]=r;break g}o[B+12>>2]=g,o[g+8>>2]=B}else{if(E=o[Q+24>>2],(0|Q)==(0|(I=o[Q+12>>2])))if((g=o[(B=Q+20|0)>>2])||(g=o[(B=Q+16|0)>>2])){for(;i=B,(g=o[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=o[I+16>>2]););o[i>>2]=0}else I=0;else g=o[Q+8>>2],o[g+12>>2]=I,o[I+8>>2]=g;if(E){B=o[Q+28>>2];C:{if(o[(g=35972+(B<<2)|0)>>2]==(0|Q)){if(o[g>>2]=I,I)break C;a=35672,r=o[8918]&YA(-2,B),o[a>>2]=r;break g}if(o[E+(o[E+16>>2]==(0|Q)?16:20)>>2]=I,!I)break g}o[I+24>>2]=E,(g=o[Q+16>>2])&&(o[I+16>>2]=g,o[g+24>>2]=I),(g=o[Q+20>>2])&&(o[I+20>>2]=g,o[g+24>>2]=I)}}if(o[C+4>>2]=1|A,o[A+C>>2]=A,o[8922]!=(0|C))break I;return void(o[8919]=A)}o[Q+4>>2]=-2&I,o[C+4>>2]=1|A,o[A+C>>2]=A}if(A>>>0<=255)return I=35708+(-8&A)|0,(g=o[8917])&(A=1<<(A>>>3))?A=o[I+8>>2]:(o[8917]=A|g,A=I),o[I+8>>2]=C,o[A+12>>2]=C,o[C+12>>2]=I,void(o[C+8>>2]=A);B=31,A>>>0<=16777215&&(B=62+((A>>>38-(I=f(A>>>8|0))&1)-(I<<1)|0)|0),o[C+28>>2]=B,o[C+16>>2]=0,o[C+20>>2]=0,i=35972+(B<<2)|0;I:{g:{if((g=o[8918])&(I=1<>>1|0)|0:0),I=o[i>>2];;){if(g=I,(-8&o[I+4>>2])==(0|A))break g;if(I=B>>>29|0,B<<=1,!(I=o[16+(i=g+(4&I)|0)>>2]))break}o[i+16>>2]=C,o[C+24>>2]=g}else o[8918]=I|g,o[i>>2]=C,o[C+24>>2]=i;o[C+12>>2]=C,o[C+8>>2]=C;break I}A=o[g+8>>2],o[A+12>>2]=C,o[g+8>>2]=C,o[C+24>>2]=0,o[C+12>>2]=g,o[C+8>>2]=A}A=o[8925]-1|0,o[8925]=A||-1}}},ac:nI}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new D.Module(A);g({instance:new D.Instance(C,I)})}}},RuntimeError:Error};e=[],"object"!=typeof D&&K("no native wasm support detected");var w,h,s,p,u,k,F,l=!1,S="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function H(A,I){return A?function(A,I,g){for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&S)return S.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|E)}else Q+=String.fromCharCode(i)}return Q}(h,A,I):""}function M(){var A=y.buffer;i.HEAP8=w=new Int8Array(A),i.HEAP16=s=new Int16Array(A),i.HEAP32=p=new Int32Array(A),i.HEAPU8=h=new Uint8Array(A),i.HEAPU16=new Uint16Array(A),i.HEAPU32=u=new Uint32Array(A),i.HEAPF32=k=new Float32Array(A),i.HEAPF64=F=new Float64Array(A)}var G=i.INITIAL_MEMORY||16777216;G>=65536||K("INITIAL_MEMORY should be larger than STACK_SIZE, was "+G+"! (STACK_SIZE=65536)"),y=i.wasmMemory?i.wasmMemory:new D.Memory({initial:G/65536,maximum:32768}),M(),G=y.buffer.byteLength;var U=[],J=[],N=[],Y=0,b=null,_=null;function K(A){throw i.onAbort&&i.onAbort(A),c(A="Aborted("+A+")"),l=!0,A+=". Build with -sASSERTIONS for more info.",new D.RuntimeError(A)}var P,v,m,d,L="data:application/octet-stream;base64,";function R(A){return A.startsWith(L)}function x(A){return A.startsWith("file://")}function j(A){try{if(A==P&&e)return new Uint8Array(e);var I=T(A);if(I)return I;if(Q)return Q(A);throw"both async and sync fetching of the wasm failed"}catch(A){K(A)}}R(P="<<< WASM_BINARY_FILE >>>")||(v=P,P=i.locateFile?i.locateFile(v,r):r+v);var X={34904:()=>i.getRandomValue(),34940:()=>{if(void 0===i.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),i.getRandomValue=g}catch(A){try{var C=__nccwpck_require__(6113),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),i.getRandomValue=B}catch(A){throw"No secure random number generator found"}}}};function q(A){for(;A.length>0;)A.shift()(i)}var z=[];function V(A){var I=y.buffer;try{return y.grow(A-I.byteLength+65535>>>16),M(),1}catch(A){}}var O="function"==typeof atob?atob:function(A){var I,g,C,B,Q,i,E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=E.indexOf(A.charAt(a++))<<2|(B=E.indexOf(A.charAt(a++)))>>4,g=(15&B)<<4|(Q=E.indexOf(A.charAt(a++)))>>2,C=(3&Q)<<6|(i=E.indexOf(A.charAt(a++))),o+=String.fromCharCode(I),64!==Q&&(o+=String.fromCharCode(g)),64!==i&&(o+=String.fromCharCode(C))}while(a>=2;g=h[A++];)I+=105!=g&I,z.push(105==g?p[I]:F[I++>>1]),++I;return z}(I,g);return X[A].apply(null,C)}(A,I,g)},e:function(A){var I,g=h.length,C=2147483648;if((A>>>=0)>C)return!1;for(var B=1;B<=4;B*=2){var Q=g*(1+.2/B);if(Q=Math.min(Q,A+100663296),V(Math.min(C,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1},a:y};function $(){function A(){W||(W=!0,i.calledRun=!0,l||(q(J),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)A=i.postRun.shift(),N.unshift(A);var A;q(N)}()))}Y>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)A=i.preRun.shift(),U.unshift(A);var A;q(U)}(),Y>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),A()}),1)):A()))}if(function(){var A={a:Z};function I(A,I){var g,C=A.exports;i.asm=C,i.asm.ac,g=i.asm.f,J.unshift(g),function(A){if(Y--,i.monitorRunDependencies&&i.monitorRunDependencies(Y),0==Y&&(null!==b&&(clearInterval(b),b=null),_)){var I=_;_=null,I()}}()}function g(A){I(A.instance)}function C(I){return function(){if(!e&&(o||a)){if("function"==typeof fetch&&!x(P))return fetch(P,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+P+"'";return A.arrayBuffer()})).catch((function(){return j(P)}));if(B)return new Promise((function(A,I){B(P,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return j(P)}))}().then((function(I){return D.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){c("failed to asynchronously prepare wasm: "+A),K(A)}))}if(Y++,i.monitorRunDependencies&&i.monitorRunDependencies(Y),i.instantiateWasm)try{return i.instantiateWasm(A,I)}catch(A){return c("Module.instantiateWasm callback failed with error: "+A),!1}e||"function"!=typeof D.instantiateStreaming||R(P)||x(P)||n||"function"!=typeof fetch?C(g):fetch(P,{credentials:"same-origin"}).then((function(I){return D.instantiateStreaming(I,A).then(g,(function(A){return c("wasm streaming compile failed: "+A),c("falling back to ArrayBuffer instantiation"),C(g)}))}))}(),i._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_encrypt_detached=i.asm.g).apply(null,arguments)},i._crypto_aead_chacha20poly1305_encrypt=function(){return(i._crypto_aead_chacha20poly1305_encrypt=i.asm.h).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=i.asm.i).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt=i.asm.j).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_decrypt_detached=i.asm.k).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt=function(){return(i._crypto_aead_chacha20poly1305_decrypt=i.asm.l).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=i.asm.m).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt=i.asm.n).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_keybytes=i.asm.o).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_npubbytes=i.asm.p).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_nsecbytes=i.asm.q).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_abytes=i.asm.r).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=i.asm.s).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_chacha20poly1305_ietf_keygen=i.asm.t).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keybytes=function(){return(i._crypto_aead_chacha20poly1305_keybytes=i.asm.u).apply(null,arguments)},i._crypto_aead_chacha20poly1305_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_npubbytes=i.asm.v).apply(null,arguments)},i._crypto_aead_chacha20poly1305_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_nsecbytes=i.asm.w).apply(null,arguments)},i._crypto_aead_chacha20poly1305_abytes=function(){return(i._crypto_aead_chacha20poly1305_abytes=i.asm.x).apply(null,arguments)},i._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_messagebytes_max=i.asm.y).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keygen=function(){return(i._crypto_aead_chacha20poly1305_keygen=i.asm.z).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=i.asm.A).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt=i.asm.B).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=i.asm.C).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt=i.asm.D).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keybytes=i.asm.E).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_npubbytes=i.asm.F).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=i.asm.G).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_abytes=i.asm.H).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=i.asm.I).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keygen=i.asm.J).apply(null,arguments)},i._crypto_auth_bytes=function(){return(i._crypto_auth_bytes=i.asm.K).apply(null,arguments)},i._crypto_auth_keybytes=function(){return(i._crypto_auth_keybytes=i.asm.L).apply(null,arguments)},i._crypto_auth=function(){return(i._crypto_auth=i.asm.M).apply(null,arguments)},i._crypto_auth_verify=function(){return(i._crypto_auth_verify=i.asm.N).apply(null,arguments)},i._crypto_auth_keygen=function(){return(i._crypto_auth_keygen=i.asm.O).apply(null,arguments)},i._crypto_box_seedbytes=function(){return(i._crypto_box_seedbytes=i.asm.P).apply(null,arguments)},i._crypto_box_publickeybytes=function(){return(i._crypto_box_publickeybytes=i.asm.Q).apply(null,arguments)},i._crypto_box_secretkeybytes=function(){return(i._crypto_box_secretkeybytes=i.asm.R).apply(null,arguments)},i._crypto_box_beforenmbytes=function(){return(i._crypto_box_beforenmbytes=i.asm.S).apply(null,arguments)},i._crypto_box_noncebytes=function(){return(i._crypto_box_noncebytes=i.asm.T).apply(null,arguments)},i._crypto_box_macbytes=function(){return(i._crypto_box_macbytes=i.asm.U).apply(null,arguments)},i._crypto_box_messagebytes_max=function(){return(i._crypto_box_messagebytes_max=i.asm.V).apply(null,arguments)},i._crypto_box_seed_keypair=function(){return(i._crypto_box_seed_keypair=i.asm.W).apply(null,arguments)},i._crypto_box_keypair=function(){return(i._crypto_box_keypair=i.asm.X).apply(null,arguments)},i._crypto_box_beforenm=function(){return(i._crypto_box_beforenm=i.asm.Y).apply(null,arguments)},i._crypto_box_detached_afternm=function(){return(i._crypto_box_detached_afternm=i.asm.Z).apply(null,arguments)},i._crypto_box_detached=function(){return(i._crypto_box_detached=i.asm._).apply(null,arguments)},i._crypto_box_easy_afternm=function(){return(i._crypto_box_easy_afternm=i.asm.$).apply(null,arguments)},i._crypto_box_easy=function(){return(i._crypto_box_easy=i.asm.aa).apply(null,arguments)},i._crypto_box_open_detached_afternm=function(){return(i._crypto_box_open_detached_afternm=i.asm.ba).apply(null,arguments)},i._crypto_box_open_detached=function(){return(i._crypto_box_open_detached=i.asm.ca).apply(null,arguments)},i._crypto_box_open_easy_afternm=function(){return(i._crypto_box_open_easy_afternm=i.asm.da).apply(null,arguments)},i._crypto_box_open_easy=function(){return(i._crypto_box_open_easy=i.asm.ea).apply(null,arguments)},i._crypto_box_seal=function(){return(i._crypto_box_seal=i.asm.fa).apply(null,arguments)},i._crypto_box_seal_open=function(){return(i._crypto_box_seal_open=i.asm.ga).apply(null,arguments)},i._crypto_box_sealbytes=function(){return(i._crypto_box_sealbytes=i.asm.ha).apply(null,arguments)},i._crypto_generichash_bytes_min=function(){return(i._crypto_generichash_bytes_min=i.asm.ia).apply(null,arguments)},i._crypto_generichash_bytes_max=function(){return(i._crypto_generichash_bytes_max=i.asm.ja).apply(null,arguments)},i._crypto_generichash_bytes=function(){return(i._crypto_generichash_bytes=i.asm.ka).apply(null,arguments)},i._crypto_generichash_keybytes_min=function(){return(i._crypto_generichash_keybytes_min=i.asm.la).apply(null,arguments)},i._crypto_generichash_keybytes_max=function(){return(i._crypto_generichash_keybytes_max=i.asm.ma).apply(null,arguments)},i._crypto_generichash_keybytes=function(){return(i._crypto_generichash_keybytes=i.asm.na).apply(null,arguments)},i._crypto_generichash_statebytes=function(){return(i._crypto_generichash_statebytes=i.asm.oa).apply(null,arguments)},i._crypto_generichash=function(){return(i._crypto_generichash=i.asm.pa).apply(null,arguments)},i._crypto_generichash_init=function(){return(i._crypto_generichash_init=i.asm.qa).apply(null,arguments)},i._crypto_generichash_update=function(){return(i._crypto_generichash_update=i.asm.ra).apply(null,arguments)},i._crypto_generichash_final=function(){return(i._crypto_generichash_final=i.asm.sa).apply(null,arguments)},i._crypto_generichash_keygen=function(){return(i._crypto_generichash_keygen=i.asm.ta).apply(null,arguments)},i._crypto_hash_bytes=function(){return(i._crypto_hash_bytes=i.asm.ua).apply(null,arguments)},i._crypto_hash=function(){return(i._crypto_hash=i.asm.va).apply(null,arguments)},i._crypto_kdf_bytes_min=function(){return(i._crypto_kdf_bytes_min=i.asm.wa).apply(null,arguments)},i._crypto_kdf_bytes_max=function(){return(i._crypto_kdf_bytes_max=i.asm.xa).apply(null,arguments)},i._crypto_kdf_contextbytes=function(){return(i._crypto_kdf_contextbytes=i.asm.ya).apply(null,arguments)},i._crypto_kdf_keybytes=function(){return(i._crypto_kdf_keybytes=i.asm.za).apply(null,arguments)},i._crypto_kdf_derive_from_key=function(){return(i._crypto_kdf_derive_from_key=i.asm.Aa).apply(null,arguments)},i._crypto_kdf_keygen=function(){return(i._crypto_kdf_keygen=i.asm.Ba).apply(null,arguments)},i._crypto_kx_seed_keypair=function(){return(i._crypto_kx_seed_keypair=i.asm.Ca).apply(null,arguments)},i._crypto_kx_keypair=function(){return(i._crypto_kx_keypair=i.asm.Da).apply(null,arguments)},i._crypto_kx_client_session_keys=function(){return(i._crypto_kx_client_session_keys=i.asm.Ea).apply(null,arguments)},i._crypto_kx_server_session_keys=function(){return(i._crypto_kx_server_session_keys=i.asm.Fa).apply(null,arguments)},i._crypto_kx_publickeybytes=function(){return(i._crypto_kx_publickeybytes=i.asm.Ga).apply(null,arguments)},i._crypto_kx_secretkeybytes=function(){return(i._crypto_kx_secretkeybytes=i.asm.Ha).apply(null,arguments)},i._crypto_kx_seedbytes=function(){return(i._crypto_kx_seedbytes=i.asm.Ia).apply(null,arguments)},i._crypto_kx_sessionkeybytes=function(){return(i._crypto_kx_sessionkeybytes=i.asm.Ja).apply(null,arguments)},i._crypto_scalarmult_base=function(){return(i._crypto_scalarmult_base=i.asm.Ka).apply(null,arguments)},i._crypto_scalarmult=function(){return(i._crypto_scalarmult=i.asm.La).apply(null,arguments)},i._crypto_scalarmult_bytes=function(){return(i._crypto_scalarmult_bytes=i.asm.Ma).apply(null,arguments)},i._crypto_scalarmult_scalarbytes=function(){return(i._crypto_scalarmult_scalarbytes=i.asm.Na).apply(null,arguments)},i._crypto_secretbox_keybytes=function(){return(i._crypto_secretbox_keybytes=i.asm.Oa).apply(null,arguments)},i._crypto_secretbox_noncebytes=function(){return(i._crypto_secretbox_noncebytes=i.asm.Pa).apply(null,arguments)},i._crypto_secretbox_macbytes=function(){return(i._crypto_secretbox_macbytes=i.asm.Qa).apply(null,arguments)},i._crypto_secretbox_messagebytes_max=function(){return(i._crypto_secretbox_messagebytes_max=i.asm.Ra).apply(null,arguments)},i._crypto_secretbox_keygen=function(){return(i._crypto_secretbox_keygen=i.asm.Sa).apply(null,arguments)},i._crypto_secretbox_detached=function(){return(i._crypto_secretbox_detached=i.asm.Ta).apply(null,arguments)},i._crypto_secretbox_easy=function(){return(i._crypto_secretbox_easy=i.asm.Ua).apply(null,arguments)},i._crypto_secretbox_open_detached=function(){return(i._crypto_secretbox_open_detached=i.asm.Va).apply(null,arguments)},i._crypto_secretbox_open_easy=function(){return(i._crypto_secretbox_open_easy=i.asm.Wa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keygen=function(){return(i._crypto_secretstream_xchacha20poly1305_keygen=i.asm.Xa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_push=function(){return(i._crypto_secretstream_xchacha20poly1305_init_push=i.asm.Ya).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_init_pull=i.asm.Za).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_rekey=i.asm._a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_push=function(){return(i._crypto_secretstream_xchacha20poly1305_push=i.asm.$a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_pull=i.asm.ab).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(i._crypto_secretstream_xchacha20poly1305_statebytes=i.asm.bb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_abytes=function(){return(i._crypto_secretstream_xchacha20poly1305_abytes=i.asm.cb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(i._crypto_secretstream_xchacha20poly1305_headerbytes=i.asm.db).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(i._crypto_secretstream_xchacha20poly1305_keybytes=i.asm.eb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(i._crypto_secretstream_xchacha20poly1305_messagebytes_max=i.asm.fb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_message=i.asm.gb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_push=i.asm.hb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_rekey=i.asm.ib).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_final=i.asm.jb).apply(null,arguments)},i._crypto_shorthash_bytes=function(){return(i._crypto_shorthash_bytes=i.asm.kb).apply(null,arguments)},i._crypto_shorthash_keybytes=function(){return(i._crypto_shorthash_keybytes=i.asm.lb).apply(null,arguments)},i._crypto_shorthash=function(){return(i._crypto_shorthash=i.asm.mb).apply(null,arguments)},i._crypto_shorthash_keygen=function(){return(i._crypto_shorthash_keygen=i.asm.nb).apply(null,arguments)},i._crypto_sign_statebytes=function(){return(i._crypto_sign_statebytes=i.asm.ob).apply(null,arguments)},i._crypto_sign_bytes=function(){return(i._crypto_sign_bytes=i.asm.pb).apply(null,arguments)},i._crypto_sign_seedbytes=function(){return(i._crypto_sign_seedbytes=i.asm.qb).apply(null,arguments)},i._crypto_sign_publickeybytes=function(){return(i._crypto_sign_publickeybytes=i.asm.rb).apply(null,arguments)},i._crypto_sign_secretkeybytes=function(){return(i._crypto_sign_secretkeybytes=i.asm.sb).apply(null,arguments)},i._crypto_sign_messagebytes_max=function(){return(i._crypto_sign_messagebytes_max=i.asm.tb).apply(null,arguments)},i._crypto_sign_seed_keypair=function(){return(i._crypto_sign_seed_keypair=i.asm.ub).apply(null,arguments)},i._crypto_sign_keypair=function(){return(i._crypto_sign_keypair=i.asm.vb).apply(null,arguments)},i._crypto_sign=function(){return(i._crypto_sign=i.asm.wb).apply(null,arguments)},i._crypto_sign_open=function(){return(i._crypto_sign_open=i.asm.xb).apply(null,arguments)},i._crypto_sign_detached=function(){return(i._crypto_sign_detached=i.asm.yb).apply(null,arguments)},i._crypto_sign_verify_detached=function(){return(i._crypto_sign_verify_detached=i.asm.zb).apply(null,arguments)},i._crypto_sign_init=function(){return(i._crypto_sign_init=i.asm.Ab).apply(null,arguments)},i._crypto_sign_update=function(){return(i._crypto_sign_update=i.asm.Bb).apply(null,arguments)},i._crypto_sign_final_create=function(){return(i._crypto_sign_final_create=i.asm.Cb).apply(null,arguments)},i._crypto_sign_final_verify=function(){return(i._crypto_sign_final_verify=i.asm.Db).apply(null,arguments)},i._crypto_sign_ed25519_pk_to_curve25519=function(){return(i._crypto_sign_ed25519_pk_to_curve25519=i.asm.Eb).apply(null,arguments)},i._crypto_sign_ed25519_sk_to_curve25519=function(){return(i._crypto_sign_ed25519_sk_to_curve25519=i.asm.Fb).apply(null,arguments)},i._randombytes_random=function(){return(i._randombytes_random=i.asm.Gb).apply(null,arguments)},i._randombytes_stir=function(){return(i._randombytes_stir=i.asm.Hb).apply(null,arguments)},i._randombytes_uniform=function(){return(i._randombytes_uniform=i.asm.Ib).apply(null,arguments)},i._randombytes_buf=function(){return(i._randombytes_buf=i.asm.Jb).apply(null,arguments)},i._randombytes_buf_deterministic=function(){return(i._randombytes_buf_deterministic=i.asm.Kb).apply(null,arguments)},i._randombytes_seedbytes=function(){return(i._randombytes_seedbytes=i.asm.Lb).apply(null,arguments)},i._randombytes_close=function(){return(i._randombytes_close=i.asm.Mb).apply(null,arguments)},i._randombytes=function(){return(i._randombytes=i.asm.Nb).apply(null,arguments)},i._sodium_bin2hex=function(){return(i._sodium_bin2hex=i.asm.Ob).apply(null,arguments)},i._sodium_hex2bin=function(){return(i._sodium_hex2bin=i.asm.Pb).apply(null,arguments)},i._sodium_base64_encoded_len=function(){return(i._sodium_base64_encoded_len=i.asm.Qb).apply(null,arguments)},i._sodium_bin2base64=function(){return(i._sodium_bin2base64=i.asm.Rb).apply(null,arguments)},i._sodium_base642bin=function(){return(i._sodium_base642bin=i.asm.Sb).apply(null,arguments)},i._sodium_init=function(){return(i._sodium_init=i.asm.Tb).apply(null,arguments)},i._sodium_pad=function(){return(i._sodium_pad=i.asm.Ub).apply(null,arguments)},i._sodium_unpad=function(){return(i._sodium_unpad=i.asm.Vb).apply(null,arguments)},i._sodium_version_string=function(){return(i._sodium_version_string=i.asm.Wb).apply(null,arguments)},i._sodium_library_version_major=function(){return(i._sodium_library_version_major=i.asm.Xb).apply(null,arguments)},i._sodium_library_version_minor=function(){return(i._sodium_library_version_minor=i.asm.Yb).apply(null,arguments)},i._sodium_library_minimal=function(){return(i._sodium_library_minimal=i.asm.Zb).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm._b).apply(null,arguments)},i._free=function(){return(i._free=i.asm.$b).apply(null,arguments)},i.UTF8ToString=H,i.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":w[A>>0]=I;break;case"i16":s[A>>1]=I;break;case"i32":p[A>>2]=I;break;case"i64":d=[I>>>0,(m=I,+Math.abs(m)>=1?m>0?(0|Math.min(+Math.floor(m/4294967296),4294967295))>>>0:~~+Math.ceil((m-+(~~m>>>0))/4294967296)>>>0:0)],p[A>>2]=d[0],p[A+4>>2]=d[1];break;case"float":k[A>>2]=I;break;case"double":F[A>>3]=I;break;case"*":u[A>>2]=I;break;default:K("invalid type for setValue: "+g)}},i.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return w[A>>0];case"i16":return s[A>>1];case"i32":case"i64":return p[A>>2];case"float":return k[A>>2];case"double":return F[A>>3];case"*":return u[A>>2];default:K("invalid type for getValue: "+I)}return null},_=function A(){W||$(),W||(_=A)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();$()}))};var g,B,Q,i=void 0!==i?i:{},E=Object.assign({},i),o="object"==typeof window,a="function"==typeof importScripts,n="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,r="";if(n){var f=__nccwpck_require__(7147),t=__nccwpck_require__(1017);r=a?t.dirname(r)+"/":__dirname+"/",g=(A,I)=>{var g=V(A);return g?I?g:g.toString():(A=L(A)?new URL(A):t.normalize(A),f.readFileSync(A,I?void 0:"utf8"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},B=(A,I,g)=>{var C=V(A);C&&I(C),A=L(A)?new URL(A):t.normalize(A),f.readFile(A,(function(A,C){A?g(A):I(C.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2), true&&(module.exports=i),i.inspect=function(){return"[Emscripten Module object]"}}else(o||a)&&(a?r=self.location.href:"undefined"!=typeof document&&document.currentScript&&(r=document.currentScript.src),r=0!==r.indexOf("blob:")?r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=V(A);if(g)return function(A){for(var I=[],g=0;g255&&(C&=255),I.push(String.fromCharCode(C))}return I.join("")}(g);throw I}},a&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=V(A);if(g)return g;throw I}}),B=(A,I,g)=>{var C=new XMLHttpRequest;C.open("GET",A,!0),C.responseType="arraybuffer",C.onload=()=>{if(200==C.status||0==C.status&&C.response)I(C.response);else{var B=V(A);B?I(B.buffer):g()}},C.onerror=g,C.send(null)});i.print;var e,c,y=i.printErr||void 0;Object.assign(i,E),E=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(e=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&b("no native wasm support detected");var D,w,h,s,p,u,k,F=!1,l="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(A,I){return A?function(A,I,g){for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|E)}else Q+=String.fromCharCode(i)}return Q}(w,A,I):""}function H(){var A=c.buffer;i.HEAP8=D=new Int8Array(A),i.HEAP16=h=new Int16Array(A),i.HEAP32=s=new Int32Array(A),i.HEAPU8=w=new Uint8Array(A),i.HEAPU16=new Uint16Array(A),i.HEAPU32=p=new Uint32Array(A),i.HEAPF32=u=new Float32Array(A),i.HEAPF64=k=new Float64Array(A)}var M=[],G=[],U=[],J=0,N=null,Y=null;function b(A){throw i.onAbort&&i.onAbort(A),y(A="Aborted("+A+")"),F=!0,A+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(A)}var _,K,P,v,m="data:application/octet-stream;base64,";function d(A){return A.startsWith(m)}function L(A){return A.startsWith("file://")}function R(A){try{if(A==_&&e)return new Uint8Array(e);var I=V(A);if(I)return I;if(Q)return Q(A);throw"both async and sync fetching of the wasm failed"}catch(A){b(A)}}d(_="data:application/octet-stream;base64,AGFzbQEAAAABiwIfYAN/f34Bf2ACf38Bf2AAAX9gA39/fwF/YAJ/fwBgA39/fwBgBX9/f39/AX9gC39/f39/f39/f39/AX9gBn9/fn9/fwF/YAZ/f35/fn8Bf2AGf39/f39/AX9gAX8AYAR/fn9/AX9gBH9/f38Bf2ABfwF/YAd/f39/f39/AX9gAABgBn9/f35/fwF/YAR/f35/AX9gA39/fgBgCH9/fn9/fn9/AX9gCX9/f39+f35/fwF/YAh/f39/f39/fwF/YAx/f39/f39/f39/f38Bf2AEf39/fwBgBX9/fn9/AGAKf39/f39/f39/fwF/YAR/fn9/AGAGf39+f39/AGAEf39/fgBgBX9/fn9/AX8CHwUBYQFhAAMBYQFiABgBYQFjABABYQFkAAUBYQFlAA4DsAGuAQQFBAMQAgMABAUAAgUEBAsEBBsACwIcDgECAREDAw0DGAIFBAUEBAQBAh0RHhEDAgMLDgUTBBMDAQMLFBQVFQICAwUFAQQBEBkZCg8PCAgEEwQUFREDAgIBAQICAgICCwMDAgkMAQMLDgEAARISAgUOAgUNBgoKCgYaGgoKDQ0PCgYPCBYPChYGBgcHCQcXBwcHBwcXBxcMBgYDAQICCwIDDAINFgYBDw0DDQ4BBgQEAXAADgUGAQFAgIACBggBfwFB8JoGCweWBp4BAWYCAAFnAJsBAWgAmgEBaQCZAQFqAJgBAWsAlwEBbACWAQFtAJUBAW4AlAEBbwAKAXAAXwFxAC4BcgAQAXMAHgF0ABQBdQAKAXYANAF3AC4BeAAQAXkAHgF6ABQBQQCTAQFCAJIBAUMAkAEBRACPAQFFAAoBRgAmAUcALgFIABABSQAeAUoAFAFLAAoBTAAKAU0AjgEBTgCNAQFPABQBUAAKAVEACgFSAAoBUwAKAVQAJgFVABABVgAeAVcApQEBWAA9AVkAIQFaAFEBXwCMAQEkAIsBAmFhAIoBAmJhAFACY2EAiQECZGEATwJlYQCHAQJmYQCGAQJnYQCFAQJoYQCkAQJpYQAQAmphABoCa2EACgJsYQAQAm1hABoCbmEACgJvYQCnAQJwYQCEAQJxYQAjAnJhAIMBAnNhACICdGEAFAJ1YQAaAnZhAIIBAndhABACeGEAGgJ5YQA0AnphAAoCQWEAgQECQmEAFAJDYQCfAQJEYQA9AkVhAJ4BAkZhAJ0BAkdhAAoCSGEACgJJYQAKAkphAAoCS2EAoAECTGEAPAJNYQAKAk5hAAoCT2EACgJQYQAmAlFhABACUmEAHgJTYQAUAlRhAFECVWEAgAECVmEAUAJXYQBPAlhhABQCWWEAZgJaYQBlAl9hAGQCJGEAfwJhYgB+AmJiAGMCY2IAYgJkYgAmAmViAAoCZmIAYQJnYgAuAmhiAEUCaWIAYAJqYgBEAmtiADQCbGIAEAJtYgB9Am5iAKMBAm9iAFwCcGIAGgJxYgAKAnJiAAoCc2IAGgJ0YgBbAnViAFoCdmIAsQECd2IAfAJ4YgB7AnliAHoCemIAeQJBYgCwAQJCYgB4AkNiAK8BAkRiAK4BAkViAF4CRmIAXQJHYgB2AkhiAEwCSWIAdQJKYgAWAktiAHQCTGIACgJNYgBzAk5iAHcCT2IArQECUGIArAECUWIAqwECUmIAqgECU2IAqQECVGIAZwJVYgCyAQJWYgCoAQJXYgCiAQJYYgChAQJZYgBEAlpiAEUCX2IAbQIkYgBsAmFjAQAJFwEAQQELDaYBnAGRAYgBcnFwb25ramloCrPlBK4BywYCG34HfyAAIAEoAgwiHUEBdKwiByAdrCITfiABKAIQIiCsIgYgASgCCCIhQQF0rCILfnwgASgCFCIdQQF0rCIIIAEoAgQiIkEBdKwiAn58IAEoAhgiH6wiCSABKAIAIiNBAXSsIgV+fCABKAIgIh5BE2ysIgMgHqwiEH58IAEoAiQiHkEmbKwiBCABKAIcIgFBAXSsIhR+fCACIAZ+IAsgE358IB2sIhEgBX58IAMgFH58IAQgCX58IAIgB34gIawiDiAOfnwgBSAGfnwgAUEmbKwiDyABrCIVfnwgAyAfQQF0rH58IAQgCH58IhdCgICAEHwiGEIah3wiGUKAgIAIfCIaQhmHfCIKIApCgICAEHwiDEKAgIDgD4N9PgIYIAAgBSAOfiACICKsIg1+fCAfQRNsrCIKIAl+fCAIIA9+fCADICBBAXSsIhZ+fCAEIAd+fCAIIAp+IAUgDX58IAYgD358IAMgB358IAQgDn58IB1BJmysIBF+ICOsIg0gDX58IAogFn58IAcgD358IAMgC358IAIgBH58IgpCgICAEHwiDUIah3wiG0KAgIAIfCIcQhmHfCISIBJCgICAEHwiEkKAgIDgD4N9PgIIIAAgCyARfiAGIAd+fCACIAl+fCAFIBV+fCAEIBB+fCAMQhqHfCIMIAxCgICACHwiDEKAgIDwD4N9PgIcIAAgBSATfiACIA5+fCAJIA9+fCADIAh+fCAEIAZ+fCASQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgIMIAAgCSALfiAGIAZ+fCAHIAh+fCACIBR+fCAFIBB+fCAEIB6sIgZ+fCAMQhmHfCIEIARCgICAEHwiBEKAgIDgD4N9PgIgIAAgGSAaQoCAgPAPg30gFyAYQoCAgGCDfSADQhmHfCIDQoCAgBB8IghCGoh8PgIUIAAgAyAIQoCAgOAPg30+AhAgACAHIAl+IBEgFn58IAsgFX58IAIgEH58IAUgBn58IARCGod8IgIgAkKAgIAIfCICQoCAgPAPg30+AiQgACAbIBxCgICA8A+DfSAKIA1CgICAYIN9IAJCGYdCE358IgJCgICAEHwiBUIaiHw+AgQgACACIAVCgICA4A+DfT4CAAudCQInfgx/IAAgAigCBCIqrCILIAEoAhQiK0EBdKwiFH4gAjQCACIDIAE0AhgiBn58IAIoAggiLKwiDSABNAIQIgd+fCACKAIMIi2sIhAgASgCDCIuQQF0rCIVfnwgAigCECIvrCIRIAE0AggiCH58IAIoAhQiMKwiFiABKAIEIjFBAXSsIhd+fCACKAIYIjKsIiAgATQCACIJfnwgAigCHCIzQRNsrCIMIAEoAiQiNEEBdKwiGH58IAIoAiAiNUETbKwiBCABNAIgIgp+fCACKAIkIgJBE2ysIgUgASgCHCIBQQF0rCIZfnwgByALfiADICusIhp+fCANIC6sIht+fCAIIBB+fCARIDGsIhx+fCAJIBZ+fCAyQRNsrCIOIDSsIh1+fCAKIAx+fCAEIAGsIh5+fCAFIAZ+fCALIBV+IAMgB358IAggDX58IBAgF358IAkgEX58IDBBE2ysIh8gGH58IAogDn58IAwgGX58IAQgBn58IAUgFH58IiJCgICAEHwiI0Iah3wiJEKAgIAIfCIlQhmHfCISIBJCgICAEHwiE0KAgIDgD4N9PgIYIAAgCyAXfiADIAh+fCAJIA1+fCAtQRNsrCIPIBh+fCAKIC9BE2ysIhJ+fCAZIB9+fCAGIA5+fCAMIBR+fCAEIAd+fCAFIBV+fCAJIAt+IAMgHH58ICxBE2ysIiEgHX58IAogD358IBIgHn58IAYgH358IA4gGn58IAcgDH58IAQgG358IAUgCH58ICpBE2ysIBh+IAMgCX58IAogIX58IA8gGX58IAYgEn58IBQgH358IAcgDn58IAwgFX58IAQgCH58IAUgF358IiFCgICAEHwiJkIah3wiJ0KAgIAIfCIoQhmHfCIPIA9CgICAEHwiKUKAgIDgD4N9PgIIIAAgBiALfiADIB5+fCANIBp+fCAHIBB+fCARIBt+fCAIIBZ+fCAcICB+fCAJIDOsIg9+fCAEIB1+fCAFIAp+fCATQhqHfCITIBNCgICACHwiE0KAgIDwD4N9PgIcIAAgCCALfiADIBt+fCANIBx+fCAJIBB+fCASIB1+fCAKIB9+fCAOIB5+fCAGIAx+fCAEIBp+fCAFIAd+fCApQhqHfCIEIARCgICACHwiBEKAgIDwD4N9PgIMIAAgCyAZfiADIAp+fCAGIA1+fCAQIBR+fCAHIBF+fCAVIBZ+fCAIICB+fCAPIBd+fCAJIDWsIgx+fCAFIBh+fCATQhmHfCIFIAVCgICAEHwiBUKAgIDgD4N9PgIgIAAgJCAlQoCAgPAPg30gIiAjQoCAgGCDfSAEQhmHfCIEQoCAgBB8Ig5CGoh8PgIUIAAgBCAOQoCAgOAPg30+AhAgACAKIAt+IAMgHX58IA0gHn58IAYgEH58IBEgGn58IAcgFn58IBsgIH58IAggD358IAwgHH58IAkgAqx+fCAFQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgIkIAAgJyAoQoCAgPAPg30gISAmQoCAgGCDfSADQhmHQhN+fCIDQoCAgBB8IgZCGoh8PgIEIAAgAyAGQoCAgOAPg30+AgALCwAgAEEAIAEQCBoL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALGAEBf0HomgIoAgAiAARAIAAREAALEAIACwQAQSALgAQBA38gAkGABE8EQCAAIAEgAhADIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgJBA3FFDQEgAiADSQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAAC6EGAgd+BH8jAEHABWsiDCQAAkAgAlANACAAIAApA0giAyACQgOGfCIENwNIIABBQGsiCiAKKQMAIAMgBFatfCACQj2IfDcDACACQoABIANCA4hC/wCDIgR9IghaBEBCACEDIARC/wCFQgNaBEAgCEL8AYMhByAAQdAAaiEKA0AgCiADIAR8p2ogASADp2otAAA6AAAgCiADQgGEIgkgBHynaiABIAmnai0AADoAACAKIANCAoQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IDhCIJIAR8p2ogASAJp2otAAA6AAAgA0IEfCEDIAVCBHwiBSAHUg0ACwsgCEIDgyIFQgBSBEADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAVSDQALCyAAIABB0ABqIAwgDEGABWoiChAlIAEgCKdqIQEgAiAIfSICQv8AVgRAA0AgACABIAwgChAlIAFBgAFqIQEgAkKAAX0iAkL/AFYNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkJ8gyEFIABB0ABqIQpCACECA0AgCiADpyILaiABIAtqLQAAOgAAIAogC0EBciINaiABIA1qLQAAOgAAIAogC0ECciINaiABIA1qLQAAOgAAIAogC0EDciILaiABIAtqLQAAOgAAIANCBHwhAyACQgR8IgIgBVINAAsLIARQDQADQCAAIAOnIgpqIAEgCmotAAA6AFAgA0IBfCEDIAZCAXwiBiAEUg0ACwsgDEHABRAHDAELQgAhAyACQgRaBEAgAkJ8gyEIIABB0ABqIQoDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiByAEfKdqIAEgB6dqLQAAOgAAIAogA0IChCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgOEIgcgBHynaiABIAenai0AADoAACADQgR8IQMgBUIEfCIFIAhSDQALCyACQgODIgJQDQADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAJSDQALCyAMQcAFaiQAQQALsQQCE38EfiABKAIoIQIgASgCBCEDIAEoAiwhBCABKAIIIQUgASgCMCEGIAEoAgwhByABKAI0IQggASgCECEJIAEoAjghCiABKAIUIQsgASgCPCEMIAEoAhghDSABQUBrIg4oAgAhDyABKAIcIRAgASgCRCERIAEoAiAhEiABKAJIIRMgASgCACEUIAAgASgCJCABKAJMajYCJCAAIBIgE2o2AiAgACAQIBFqNgIcIAAgDSAPajYCGCAAIAsgDGo2AhQgACAJIApqNgIQIAAgByAIajYCDCAAIAUgBmo2AgggACADIARqNgIEIAAgAiAUajYCACABKAIoIQIgASgCBCEDIAEoAiwhBCABKAIIIQUgASgCMCEGIAEoAgwhByABKAI0IQggASgCECEJIAEoAjghCiABKAIUIQsgASgCPCEMIAEoAhghDSAOKAIAIQ4gASgCHCEPIAEoAkQhECABKAIgIREgASgCSCESIAEoAgAhEyAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAPazYCRCAAQUBrIA4gDWs2AgAgACAMIAtrNgI8IAAgCiAJazYCOCAAIAggB2s2AjQgACAGIAVrNgIwIAAgBCADazYCLCAAIAIgE2s2AiggASkCUCEVIAEpAlghFiABKQJgIRcgASkCaCEYIAAgASkCcDcCcCAAIBg3AmggACAXNwJgIAAgFjcCWCAAIBU3AlAgAEH4AGogAUH4AGpBoAsQBgvwCQEefyABKAIoIQMgASgCBCEEIAEoAiwhBSABKAIIIQYgASgCMCEHIAEoAgwhCCABKAI0IQkgASgCECEKIAEoAjghCyABKAIUIQwgASgCPCENIAEoAhghDiABQUBrIg8oAgAhECABKAIcIREgASgCRCESIAEoAiAhEyABKAJIIRQgASgCACEVIAAgASgCJCABKAJMajYCJCAAIBMgFGo2AiAgACARIBJqNgIcIAAgDiAQajYCGCAAIAwgDWo2AhQgACAKIAtqNgIQIAAgCCAJajYCDCAAIAYgB2o2AgggACAEIAVqNgIEIAAgAyAVajYCACABKAIoIQUgASgCBCEDIAEoAiwhBiABKAIIIQcgASgCMCEIIAEoAgwhCSABKAI0IQogASgCECELIAEoAjghDCABKAIUIQ0gASgCPCEOIAEoAhghECAPKAIAIQ8gASgCHCEEIAEoAkQhESABKAIgIRIgASgCSCETIAEoAgAhFCAAIAEoAkwgASgCJGs2AkwgACATIBJrNgJIIAAgESAEazYCRCAAQUBrIgQgDyAQazYCACAAIA4gDWs2AjwgACAMIAtrNgI4IAAgCiAJazYCNCAAIAggB2s2AjAgACAGIANrNgIsIABBKGoiAyAFIBRrNgIAIABB0ABqIAAgAhAGIAMgAyACQShqEAYgAEH4AGogAkH4AGogAUH4AGoQBiAAIAFB0ABqIAJB0ABqEAYgACgCBCEVIAAoAgghFiAAKAIMIRcgACgCECEYIAAoAhQhGSAAKAIYIRogACgCHCEbIAAoAiAhHCAAKAIkIR0gAygCACEBIAAoAlAhAiAAKAIsIQUgACgCVCEGIAAoAjAhByAAKAJYIQggACgCNCEJIAAoAlwhCiAAKAI4IQsgACgCYCEMIAAoAjwhDSAAKAJkIQ4gBCgCACEPIAAoAmghECAAKAJEIREgACgCbCESIAAoAkghEyAAKAJwIRQgACgCACEeIAAgACgCTCIfIAAoAnQiIGo2AkwgACATIBRqNgJIIAAgESASajYCRCAEIA8gEGo2AgAgACANIA5qNgI8IAAgCyAMajYCOCAAIAkgCmo2AjQgACAHIAhqNgIwIAAgBSAGajYCLCADIAEgAmo2AgAgACAgIB9rNgIkIAAgFCATazYCICAAIBIgEWs2AhwgACAQIA9rNgIYIAAgDiANazYCFCAAIAwgC2s2AhAgACAKIAlrNgIMIAAgCCAHazYCCCAAIAYgBWs2AgQgACACIAFrNgIAIAAgHUEBdCIBIAAoApwBIgJrNgKcASAAIBxBAXQiAyAAKAKYASIEazYCmAEgACAbQQF0IgUgACgClAEiBms2ApQBIAAgGkEBdCIHIAAoApABIghrNgKQASAAIBlBAXQiCSAAKAKMASIKazYCjAEgACAYQQF0IgsgACgCiAEiDGs2AogBIAAgF0EBdCINIAAoAoQBIg5rNgKEASAAIBZBAXQiDyAAKAKAASIQazYCgAEgACAVQQF0IhEgACgCfCISazYCfCAAIB5BAXQiEyAAKAJ4IhRrNgJ4IAAgAyAEajYCcCAAIAUgBmo2AmwgACAHIAhqNgJoIAAgCSAKajYCZCAAIAsgDGo2AmAgACANIA5qNgJcIAAgDyAQajYCWCAAIBEgEmo2AlQgACATIBRqNgJQIAAgASACajYCdAvUAQIFfwJ+An8gAkIAUgRAIABB4AFqIQcgAEHgAGohAyAAKADgAiEEA0AgAyAEaiEGQYACIARrIgWtIgggAloEQCAGIAEgAqciARALGiAAIAAoAOACIAFqNgDgAkEADAMLIAYgASAFEAsaIAAgACgA4AIgBWo2AOACIAAgACkAQCIJQoABfDcAQCAAIAApAEggCUL/flatfDcASCAAIAMQKCADIAdBgAEQCxogACAAKADgAkGAAWsiBDYA4AIgASAFaiEBIAIgCH0iAkIAUg0ACwtBAAsLBABBEAuDBwEUfyABKAIEIQwgACgCBCEDIAEoAgghDSAAKAIIIQQgASgCDCEOIAAoAgwhBSABKAIQIQ8gACgCECEGIAEoAhQhECAAKAIUIQcgASgCGCERIAAoAhghCCABKAIcIRIgACgCHCEJIAEoAiAhEyAAKAIgIQogASgCJCEUIAAoAiQhCyAAQQAgAmsiAiAAKAIAIhUgASgCAHNxIBVzNgIAIAAgCyALIBRzIAJxczYCJCAAIAogCiATcyACcXM2AiAgACAJIAkgEnMgAnFzNgIcIAAgCCAIIBFzIAJxczYCGCAAIAcgByAQcyACcXM2AhQgACAGIAYgD3MgAnFzNgIQIAAgBSAFIA5zIAJxczYCDCAAIAQgBCANcyACcXM2AgggACADIAMgDHMgAnFzNgIEIAAoAighAyABKAIoIQwgACgCLCEEIAEoAiwhDSAAKAIwIQUgASgCMCEOIAAoAjQhBiABKAI0IQ8gACgCOCEHIAEoAjghECAAKAI8IQggASgCPCERIABBQGsiEigCACEJIAFBQGsoAgAhEyAAKAJEIQogASgCRCEUIAAoAkghCyABKAJIIRUgACAAKAJMIhYgASgCTHMgAnEgFnM2AkwgACALIAsgFXMgAnFzNgJIIAAgCiAKIBRzIAJxczYCRCASIAkgCSATcyACcXM2AgAgACAIIAggEXMgAnFzNgI8IAAgByAHIBBzIAJxczYCOCAAIAYgBiAPcyACcXM2AjQgACAFIAUgDnMgAnFzNgIwIAAgBCAEIA1zIAJxczYCLCAAIAMgAyAMcyACcXM2AiggACgCUCEDIAEoAlAhDCAAKAJUIQQgASgCVCENIAAoAlghBSABKAJYIQ4gACgCXCEGIAEoAlwhDyAAKAJgIQcgASgCYCEQIAAoAmQhCCABKAJkIREgACgCaCEJIAEoAmghEiAAKAJsIQogASgCbCETIAAoAnAhCyABKAJwIRQgACAAKAJ0IhUgASgCdHMgAnEgFXM2AnQgACALIAsgFHMgAnFzNgJwIAAgCiAKIBNzIAJxczYCbCAAIAkgCSAScyACcXM2AmggACAIIAggEXMgAnFzNgJkIAAgByAHIBBzIAJxczYCYCAAIAYgBiAPcyACcXM2AlwgACAFIAUgDnMgAnFzNgJYIAAgBCAEIA1zIAJxczYCVCAAIAMgAyAMcyACcXM2AlAL6AQBCX8gACABKAIgIgUgASgCHCIGIAEoAhgiByABKAIUIgggASgCECIJIAEoAgwiCiABKAIIIgQgASgCBCIDIAEoAgAiAiABKAIkIgFBE2xBgICACGpBGXZqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnUgAWpBGXVBE2wgAmoiAjoAACAAIAJBEHY6AAIgACACQQh2OgABIAAgAyACQRp1aiIDQQ52OgAFIAAgA0EGdjoABCAAIAJBGHZBA3EgA0ECdHI6AAMgACAEIANBGXVqIgJBDXY6AAggACACQQV2OgAHIAAgAkEDdCADQYCAgA5xQRZ2cjoABiAAIAogAkEadWoiBEELdjoACyAAIARBA3Y6AAogACAEQQV0IAJBgICAH3FBFXZyOgAJIAAgCSAEQRl1aiICQRJ2OgAPIAAgAkEKdjoADiAAIAJBAnY6AA0gACAIIAJBGnVqIgM6ABAgACACQQZ0IARBgIDgD3FBE3ZyOgAMIAAgA0EQdjoAEiAAIANBCHY6ABEgACAHIANBGXVqIgJBD3Y6ABUgACACQQd2OgAUIAAgA0EYdkEBcSACQQF0cjoAEyAAIAYgAkEadWoiA0ENdjoAGCAAIANBBXY6ABcgACADQQN0IAJBgICAHHFBF3ZyOgAWIAAgBSADQRl1aiICQQx2OgAbIAAgAkEEdjoAGiAAIAJBBHQgA0GAgIAPcUEVdnI6ABkgACABIAJBGnVqIgFBCnY6AB4gACABQQJ2OgAdIAAgAUGAgPAPcUESdjoAHyAAIAFBBnQgAkGAgMAfcUEUdnI6ABwLvQgCAX4DfyMAQcAFayIDJAAgACgCSEEDdkH/AHEiBCAAakHQAGohBQJAIARB7wBNBEAgBUHQjgJB8AAgBGsQCxoMAQsgBUHQjgJBgAEgBGsQCxogACAAQdAAaiIEIAMgA0GABWoQJSAEQQBB8AAQCBoLIAAgACkDQCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwDAASAAIAApA0giAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAyAEgACAAQdAAaiADIANBgAVqECUgASAAKQMAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3AAAgASAAKQMIIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3AAggASAAKQMQIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ABAgASAAKQMYIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ABggASAAKQMgIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ACAgASAAKQMoIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ACggASAAKQMwIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ADAgASAAKQM4IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ADggA0HABRAHIABB0AEQByADQcAFaiQACwgAIABBIBAWC+MOAhx+IH8jAEEwayIeJAAgACABEAUgAEHQAGogAUEoahAFIAAgASgCXCIiQQF0rCIIIAEoAlQiI0EBdKwiAn4gASgCWCIkrCINIA1+fCABKAJgIiWsIgcgASgCUCImQQF0rCIFfnwgASgCbCIfQSZsrCIOIB+sIhF+fCABKAJwIidBE2ysIgMgASgCaCIgQQF0rH58IAEoAnQiKEEmbKwiBCABKAJkIiFBAXSsIgl+fEIBhiIVQoCAgBB8IhZCGocgAiAHfiAkQQF0rCILICKsIhJ+fCAhrCIPIAV+fCADIB9BAXSsIhN+fCAEICCsIgp+fEIBhnwiF0KAgIAIfCIYQhmHIAggEn4gByALfnwgAiAJfnwgBSAKfnwgAyAnrCIQfnwgBCATfnxCAYZ8IgYgBkKAgIAQfCIMQoCAgOAPg30+ApABIAAgIUEmbKwgD34gJqwiBiAGfnwgIEETbKwiBiAlQQF0rCIUfnwgCCAOfnwgAyALfnwgAiAEfnxCAYYiGUKAgIAQfCIaQhqHIAYgCX4gBSAjrCIbfnwgByAOfnwgAyAIfnwgBCANfnxCAYZ8IhxCgICACHwiHUIZhyAFIA1+IAIgG358IAYgCn58IAkgDn58IAMgFH58IAQgCH58QgGGfCIGIAZCgICAEHwiBkKAgIDgD4N9PgKAASAAIAsgD34gByAIfnwgAiAKfnwgBSARfnwgBCAQfnxCAYYgDEIah3wiDCAMQoCAgAh8IgxCgICA8A+DfT4ClAEgACAFIBJ+IAIgDX58IAogDn58IAMgCX58IAQgB358QgGGIAZCGod8IgMgA0KAgIAIfCIDQoCAgPAPg30+AoQBIAAgCiALfiAHIAd+fCAIIAl+fCACIBN+fCAFIBB+fCAEICisIgd+fEIBhiAMQhmHfCIEIARCgICAEHwiBEKAgIDgD4N9PgKYASAAIBcgGEKAgIDwD4N9IBUgFkKAgIBgg30gA0IZh3wiA0KAgIAQfCIJQhqIfD4CjAEgACADIAlCgICA4A+DfT4CiAEgACAIIAp+IA8gFH58IAsgEX58IAIgEH58IAUgB358QgGGIARCGod8IgIgAkKAgIAIfCICQoCAgPAPg30+ApwBIAAgHCAdQoCAgPAPg30gGSAaQoCAgGCDfSACQhmHQhN+fCICQoCAgBB8IgVCGoh8PgJ8IAAgAiAFQoCAgOAPg30+AnggASgCKCEfIAEoAiwhICABKAIEISEgASgCMCEiIAEoAgghIyABKAI0ISQgASgCDCElIAEoAjghJiABKAIQIScgASgCPCEoIAEoAhQhKSABQUBrKAIAISogASgCGCErIAEoAkQhLCABKAIcIS0gASgCSCEuIAEoAiAhLyABKAIAITAgACABKAJMIAEoAiRqNgJMIAAgLiAvajYCSCAAICwgLWo2AkQgAEFAayIyICogK2o2AgAgACAoIClqNgI8IAAgJiAnajYCOCAAICQgJWo2AjQgACAiICNqNgIwIAAgICAhajYCLCAAQShqIgEgHyAwajYCACAeIAEQBSAAKAJQIR8gACgCBCEgIAAoAlQhISAAKAIIISIgACgCWCEjIAAoAgwhJCAAKAJcISUgACgCECEmIAAoAmAhJyAAKAIUISggACgCZCEpIAAoAhghKiAAKAJoISsgACgCHCEsIAAoAmwhLSAAKAIgIS4gACgCcCEvIAAoAgAhMCAAIAAoAnQiMSAAKAIkIjNrIjQ2AnQgACAvIC5rIjU2AnAgACAtICxrIjY2AmwgACArICprIjc2AmggACApIChrIjg2AmQgACAnICZrIjk2AmAgACAlICRrIjo2AlwgACAjICJrIjs2AlggACAhICBrIjw2AlQgACAfIDBrIj02AlAgACAxIDNqIjE2AkwgACAuIC9qIi42AkggACAsIC1qIiw2AkQgMiAqICtqIio2AgAgACAoIClqIig2AjwgACAmICdqIiY2AjggACAkICVqIiQ2AjQgACAiICNqIiI2AjAgACAgICFqIiA2AiwgASAfIDBqIgE2AgAgHigCACEfIB4oAgQhISAeKAIIISMgHigCDCElIB4oAhAhJyAeKAIUISkgHigCGCErIB4oAhwhLSAeKAIgIS8gACAeKAIkIDFrNgIkIAAgLyAuazYCICAAIC0gLGs2AhwgACArICprNgIYIAAgKSAoazYCFCAAICcgJms2AhAgACAlICRrNgIMIAAgIyAiazYCCCAAICEgIGs2AgQgACAfIAFrNgIAIAAoAnghASAAKAJ8IR8gACgCgAEhICAAKAKEASEhIAAoAogBISIgACgCjAEhIyAAKAKQASEkIAAoApQBISUgACgCmAEhJiAAIAAoApwBIDRrNgKcASAAICYgNWs2ApgBIAAgJSA2azYClAEgACAkIDdrNgKQASAAICMgOGs2AowBIAAgIiA5azYCiAEgACAhIDprNgKEASAAICAgO2s2AoABIAAgHyA8azYCfCAAIAEgPWs2AnggHkEwaiQAC0QBAn8jAEEQayICJAAgAQRAA0AgAkEAOgAPIAAgA2pB2JACIAJBD2pBABAAOgAAIANBAWoiAyABRw0ACwsgAkEQaiQACyQAIAFCgICAgBBaBEAQCQALIAAgASACIANBqJACKAIAEQwAGguVAQEBfyMAQdABayIDJAAgA0IANwNIIANBmIkCKQMANwMIIANBoIkCKQMANwMQIANBqIkCKQMANwMYIANBsIkCKQMANwMgIANBuIkCKQMANwMoIANBwIkCKQMANwMwIANByIkCKQMANwM4IANCADcDQCADQZCJAikDADcDACADIAEgAhAMGiADIAAQEyADQdABaiQAQQALcAAgAEIANwNAIABCADcDSCAAQZCJAikDADcDACAAQZiJAikDADcDCCAAQaCJAikDADcDECAAQaiJAikDADcDGCAAQbCJAikDADcDICAAQbiJAikDADcDKCAAQcCJAikDADcDMCAAQciJAikDADcDOAsFAEHAAAtAAAJAIAStQoCAgIAQIAJCP3xCBoh9Vg0AIAJCgICAgBBaDQAgACABIAIgAyAEIAVBsJACKAIAEQgAGg8LEAkAC1IBAn9BoJACKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQBEUNAQtBoJACIAA2AgAgAQ8LQdCWAkEwNgIAQX8L0wIBA38CfwJAIAEiA0H/AXEiAgRAIABBA3EEQANAIAAtAAAiAUUNAyABIANB/wFxRg0DIABBAWoiAEEDcQ0ACwsCQCAAKAIAIgFBf3MgAUGBgoQIa3FBgIGChHhxDQAgAkGBgoQIbCECA0AgASACcyIBQX9zIAFBgYKECGtxQYCBgoR4cQ0BIAAoAgQhASAAQQRqIQAgAUGBgoQIayABQX9zcUGAgYKEeHFFDQALCwNAIAAiAS0AACICBEAgAUEBaiEAIAIgA0H/AXFHDQELCyABDAILAkAgACICQQNxBEADQCAALQAARQ0CIABBAWoiAEEDcQ0ACwsDQCAAIgFBBGohACABKAIAIgRBf3MgBEGBgoQIa3FBgIGChHhxRQ0ACwNAIAEiAEEBaiEBIAAtAAANAAsLIAIgACACa2oMAQsgAAsiAEEAIAAtAAAgA0H/AXFGGwsEAEFvC90BAQR/IwBBEGsiAkEAOgAPAkAgAUUNACABQQNxIQQgAUEETwRAIAFBfHEhBUEAIQEDQCACIAAgA2otAAAgAi0AD3I6AA8gAiAAIANBAXJqLQAAIAItAA9yOgAPIAIgACADQQJyai0AACACLQAPcjoADyACIAAgA0EDcmotAAAgAi0AD3I6AA8gA0EEaiEDIAFBBGoiASAFRw0ACwsgBEUNAEEAIQEDQCACIAAgA2otAAAgAi0AD3I6AA8gA0EBaiEDIAFBAWoiASAERw0ACwsgAi0AD0EBa0EIdkEBcQvEAgICfwF+IwBB4AJrIgYkACAGIAQgBRA+GgJAIAAgAksgACACa60gA1RxRQRAIAAgAk8NASACIABrrSADWg0BCyAAIAIgA6cQJCECCyAGQgA3AzggBkIANwMwIAZCADcDKCAGQgA3AyBCICADIANCIFobIghQIgdFBEAgBkFAayACIAinEAsaCyAGQSBqIgUgBSAIQiB8IARBEGoiBEIAIAZB1JACKAIAEQkAGiAGQeAAaiAFQbyQAigCABEBABogB0UEQCAAIAZBQGsgCKcQCxoLIAZBIGpBwAAQByADQiFaBEAgACAIpyIFaiACIAVqIAMgCH0gBEIBIAZB1JACKAIAEQkAGgsgBkEgEAcgBkHgAGoiAiAAIANBwJACKAIAEQAAGiACIAFBxJACKAIAEQEAGiACQYACEAcgBkHgAmokAEEACzIBAn8jAEEgayIDJABBfyEEIAMgAiABEEZFBEAgAEGQkAIgAxA+IQQLIANBIGokACAECyYAIAJBgAJPBEBB7AlBowlB6wBBqwgQAQALIAAgASACQf8BcRA1C40EAQJ/QX8hBAJAIAJBwABLDQAgA0HBAGtBQEkNAAJAIAFBACACG0UEQCADQf8BcSIBQcEAa0H/AXFBvwFNBEAQCQALIABBQGtBAEGlAhAIGiAAQvnC+JuRo7Pw2wA3ADggAELr+obav7X2wR83ADAgAEKf2PnZwpHagpt/NwAoIABC0YWa7/rPlIfRADcAICAAQvHt9Pilp/2npX83ABggAEKr8NP0r+68tzw3ABAgAEK7zqqm2NDrs7t/NwAIIAAgAa1CiJL3lf/M+YTqAIU3AAAMAQsCfyACQf8BcSECIwBBgAFrIgUkAAJAIANB/wFxIgNBwQBrQf8BcUG/AU0NACABRQ0AIAJBwQBrQf8BcUG/AU0NACAAQUBrQQBBpQIQCBogAEL5wvibkaOz8NsANwA4IABC6/qG2r+19sEfNwAwIABCn9j52cKR2oKbfzcAKCAAQtGFmu/6z5SH0QA3ACAgAELx7fT4paf9p6V/NwAYIABCq/DT9K/uvLc8NwAQIABCu86qptjQ67O7fzcACCAAIAOtIAKtQgiGhEKIkveV/8z5hOoAhTcAACACIAVqQQBBgAEgAmtBACACwEEAThsQCBogAEHgAGogBSABIAIQCyIBQYABEAsaIAAgACgA4AJBgAFqNgDgAiABQYABEAcgAUGAAWokAEEADAELEAkACw0BC0EAIQQLIAQL6AIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQCw8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMEQCAAIQMMAwsgAEEDcUUEQCAAIQMMAgsgACEDA0AgAkUNBCADIAEtAAA6AAAgAUEBaiEBIAJBAWshAiADQQFqIgNBA3ENAAsMAQsCQCADDQAgBEEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIAJBBGsiAkEDSw0ACwsgAkUNAANAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBIAJBAWsiAg0ACwsgAAv7FwIQfhB/A0AgAiAVQQN0IhZqIAEgFmopAAAiBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhDcDACAVQQFqIhVBEEcNAAsgAyAAKQMANwMAIAMgACkDODcDOCADIAApAzA3AzAgAyAAKQMoNwMoIAMgACkDIDcDICADIAApAxg3AxggAyAAKQMQNwMQIAMgACkDCDcDCEEAIRYDQCADIAMpAzggAiAWQQN0IgFqIhUpAwAgAykDICIHQjKJIAdCLomFIAdCF4mFfCABQdCJAmopAwB8IAcgAykDMCILIAMpAygiCIWDIAuFfHwiBCADKQMYfCIKNwMYIAMgAykDACIFQiSJIAVCHomFIAVCGYmFIAR8IAMpAxAiCSADKQMIIgaEIAWDIAYgCYOEfCIENwM4IAMgCSACIAFBCHIiFGoiGikDACALIAggCiAHIAiFg4V8IApCMokgCkIuiYUgCkIXiYV8fCAUQdCJAmopAwB8Igt8Igk3AxAgAyAEIAUgBoSDIAUgBoOEIAt8IARCJIkgBEIeiYUgBEIZiYV8Igs3AzAgAyAIIAIgAUEQciIUaiIbKQMAfCAUQdCJAmopAwB8IAcgCSAHIAqFg4V8IAlCMokgCUIuiYUgCUIXiYV8IgwgCyAEIAWEgyAEIAWDhCALQiSJIAtCHomFIAtCGYmFfHwiCDcDKCADIAYgDHwiBjcDCCADIAcgAiABQRhyIhRqIhwpAwB8IBRB0IkCaikDAHwgBiAJIAqFgyAKhXwgBkIyiSAGQi6JhSAGQheJhXwiDCAIIAQgC4SDIAQgC4OEIAhCJIkgCEIeiYUgCEIZiYV8fCIHNwMgIAMgBSAMfCIFNwMAIAMgAiABQSByIhRqIh0pAwAgCnwgFEHQiQJqKQMAfCAFIAYgCYWDIAmFfCAFQjKJIAVCLomFIAVCF4mFfCIMIAcgCCALhIMgCCALg4QgB0IkiSAHQh6JhSAHQhmJhXx8Igo3AxggAyAEIAx8Igw3AzggAyACIAFBKHIiFGoiHikDACAJfCAUQdCJAmopAwB8IAwgBSAGhYMgBoV8IAxCMokgDEIuiYUgDEIXiYV8IgkgCiAHIAiEgyAHIAiDhCAKQiSJIApCHomFIApCGYmFfHwiBDcDECADIAkgC3wiCTcDMCADIAIgAUEwciIUaiIfKQMAIAZ8IBRB0IkCaikDAHwgCSAFIAyFgyAFhXwgCUIyiSAJQi6JhSAJQheJhXwiBiAEIAcgCoSDIAcgCoOEIARCJIkgBEIeiYUgBEIZiYV8fCILNwMIIAMgBiAIfCIGNwMoIAMgAiABQThyIhRqIiApAwAgBXwgFEHQiQJqKQMAfCAGIAkgDIWDIAyFfCAGQjKJIAZCLomFIAZCF4mFfCIFIAsgBCAKhIMgBCAKg4QgC0IkiSALQh6JhSALQhmJhXx8Igg3AwAgAyAFIAd8IgU3AyAgAyACIAFBwAByIhRqIiEpAwAgDHwgFEHQiQJqKQMAfCAFIAYgCYWDIAmFfCAFQjKJIAVCLomFIAVCF4mFfCIMIAggBCALhIMgBCALg4QgCEIkiSAIQh6JhSAIQhmJhXx8Igc3AzggAyAKIAx8Igw3AxggAyACIAFByAByIhRqIiIpAwAgCXwgFEHQiQJqKQMAfCAMIAUgBoWDIAaFfCAMQjKJIAxCLomFIAxCF4mFfCIJIAcgCCALhIMgCCALg4QgB0IkiSAHQh6JhSAHQhmJhXx8Igo3AzAgAyAEIAl8Igk3AxAgAyAGIAIgAUHQAHIiFGoiIykDAHwgFEHQiQJqKQMAfCAJIAUgDIWDIAWFfCAJQjKJIAlCLomFIAlCF4mFfCIGIAogByAIhIMgByAIg4QgCkIkiSAKQh6JhSAKQhmJhXx8IgQ3AyggAyAGIAt8IgY3AwggAyABQdgAciIUQdCJAmopAwAgAiAUaiIUKQMAfCAFfCAGIAkgDIWDIAyFfCAGQjKJIAZCLomFIAZCF4mFfCIFIAQgByAKhIMgByAKg4QgBEIkiSAEQh6JhSAEQhmJhXx8Igs3AyAgAyAFIAh8Igg3AwAgAyABQeAAciIXQdCJAmopAwAgAiAXaiIXKQMAfCAMfCAIIAYgCYWDIAmFfCAIQjKJIAhCLomFIAhCF4mFfCIMIAsgBCAKhIMgBCAKg4QgC0IkiSALQh6JhSALQhmJhXx8IgU3AxggAyAHIAx8Igc3AzggAyABQegAciIYQdCJAmopAwAgAiAYaiIYKQMAfCAJfCAHIAYgCIWDIAaFfCAHQjKJIAdCLomFIAdCF4mFfCIMIAUgBCALhIMgBCALg4QgBUIkiSAFQh6JhSAFQhmJhXx8Igk3AxAgAyAKIAx8Igo3AzAgAyABQfAAciIZQdCJAmopAwAgAiAZaiIZKQMAfCAGfCAKIAcgCIWDIAiFfCAKQjKJIApCLomFIApCF4mFfCIMIAkgBSALhIMgBSALg4QgCUIkiSAJQh6JhSAJQhmJhXx8IgY3AwggAyAEIAx8IgQ3AyggAyABQfgAciIBQdCJAmopAwAgASACaiIBKQMAfCAIfCAEIAcgCoWDIAeFfCAEQjKJIARCLomFIARCF4mFfCIEIAYgBSAJhIMgBSAJg4QgBkIkiSAGQh6JhSAGQhmJhXx8Igg3AwAgAyAEIAt8NwMgIBZBwABGRQRAIAIgFkEQaiIWQQN0aiAVKQMAICIpAwAiByAZKQMAIgRCLYkgBEIDiYUgBEIGiIV8fCAaKQMAIghCP4kgCEI4iYUgCEIHiIV8Igs3AwAgFSAIICMpAwAiCnwgASkDACIIQi2JIAhCA4mFIAhCBoiFfCAbKQMAIgZCP4kgBkI4iYUgBkIHiIV8IgU3A4gBIBUgBiAUKQMAIgl8IAtCLYkgC0IDiYUgC0IGiIV8IBwpAwAiDUI/iSANQjiJhSANQgeIhXwiBjcDkAEgFSANIBcpAwAiDHwgBUItiSAFQgOJhSAFQgaIhXwgHSkDACIOQj+JIA5COImFIA5CB4iFfCINNwOYASAVIA4gGCkDACISfCAGQi2JIAZCA4mFIAZCBoiFfCAeKQMAIg9CP4kgD0I4iYUgD0IHiIV8Ig43A6ABIBUgBCAPfCANQi2JIA1CA4mFIA1CBoiFfCAfKQMAIhBCP4kgEEI4iYUgEEIHiIV8Ig83A6gBIBUgCCAQfCAgKQMAIhFCP4kgEUI4iYUgEUIHiIV8IA5CLYkgDkIDiYUgDkIGiIV8IhA3A7ABIBUgISkDACITIAUgB0I/iSAHQjiJhSAHQgeIhXx8IBBCLYkgEEIDiYUgEEIGiIV8IgU3A8ABIBUgCyARfCATQj+JIBNCOImFIBNCB4iFfCAPQi2JIA9CA4mFIA9CBoiFfCIRNwO4ASAVIAogCUI/iSAJQjiJhSAJQgeIhXwgDXwgBUItiSAFQgOJhSAFQgaIhXwiDTcD0AEgFSAHIApCP4kgCkI4iYUgCkIHiIV8IAZ8IBFCLYkgEUIDiYUgEUIGiIV8Igc3A8gBIBUgDCASQj+JIBJCOImFIBJCB4iFfCAPfCANQi2JIA1CA4mFIA1CBoiFfCIKNwPgASAVIAkgDEI/iSAMQjiJhSAMQgeIhXwgDnwgB0ItiSAHQgOJhSAHQgaIhXwiBzcD2AEgFSAEIAhCP4kgCEI4iYUgCEIHiIV8IBF8IApCLYkgCkIDiYUgCkIGiIV8NwPwASAVIBIgBEI/iSAEQjiJhSAEQgeIhXwgEHwgB0ItiSAHQgOJhSAHQgaIhXwiBDcD6AEgFSAIIAtCP4kgC0I4iYUgC0IHiIV8IAV8IARCLYkgBEIDiYUgBEIGiIV8NwP4AQwBCwsgACAAKQMAIAh8NwMAIAAgACkDCCADKQMIfDcDCCAAIAApAxAgAykDEHw3AxAgACAAKQMYIAMpAxh8NwMYIAAgACkDICADKQMgfDcDICAAIAApAyggAykDKHw3AyggACAAKQMwIAMpAzB8NwMwIAAgACkDOCADKQM4fDcDOAsEAEEYC+cEARJ/QbLaiMsHIQNB7siBmQMhBEHl8MGLBiEFQfTKgdkGIQ4gASgADCEGIAEoAAghDyABKAAEIQcgAigAHCELIAIoABghDCACKAAUIRAgAigAECENIAIoAAwhCCACKAAIIQkgAigABCEKIAEoAAAhASACKAAAIQIDQCACIAEgAiAFaiIFc0EQdyIBIA1qIg1zQQx3IgIgBWoiBSABc0EIdyIBIA1qIg0gAnNBB3ciAiAIIAYgCCAOaiIOc0EQdyIGIAtqIgtzQQx3IgggDmoiEWoiDiAJIA8gAyAJaiIDc0EQdyIPIAxqIgxzQQx3IgkgA2oiAyAPc0EIdyISc0EQdyIPIAogByAEIApqIgRzQRB3IgcgEGoiEHNBDHciCiAEaiIEIAdzQQh3IgcgEGoiE2oiECACc0EMdyICIA5qIg4gD3NBCHciDyAQaiIQIAJzQQd3IQIgDSAHIAMgBiARc0EIdyIGIAtqIgsgCHNBB3ciCGoiA3NBEHciB2oiDSAIc0EMdyIIIANqIgMgB3NBCHciByANaiINIAhzQQd3IQggCyABIAQgDCASaiIMIAlzQQd3IglqIgRzQRB3IgFqIgsgCXNBDHciCSAEaiIEIAFzQQh3IgEgC2oiCyAJc0EHdyEJIAwgBiAFIAogE3NBB3ciCmoiBXNBEHciBmoiDCAKc0EMdyIKIAVqIgUgBnNBCHciBiAMaiIMIApzQQd3IQogFEEBaiIUQQpHDQALIAAgBTYAACAAIAY2ABwgACAPNgAYIAAgBzYAFCAAIAE2ABAgACAONgAMIAAgAzYACCAAIAQ2AAQLiy4BJX4gACABKQAoIiAgASkAaCIYIAEpAEAiGiABKQAgIhkgGCABKQB4IhwgASkAWCIhIAEpAFAiGyAgIAApABAgGSAAKQAwIh18fCIVfCAdIAApAFAgFYVC6/qG2r+19sEfhUIgiSIVQqvw0/Sv7ry3PHwiHoVCKIkiHXwiFiAVhUIwiSIGIB58IgQgHYVCAYkiFyABKQAYIh0gACkACCIlIAEpABAiFSAAKQAoIh58fCIifCAAKQBIICKFQp/Y+dnCkdqCm3+FQiCJIgNCxbHV2aevlMzEAH0iBSAehUIoiSICfCIHfHwiI3wgFyAjIAEpAAgiHiAAKQAAIiYgASkAACIiIAApACAiJHx8Ih98ICQgAEFAaykAACAfhULRhZrv+s+Uh9EAhUIgiSIfQoiS853/zPmE6gB8IgiFQiiJIgt8IgwgH4VCMIkiCYVCIIkiHyABKQA4IiMgACkAGCABKQAwIiQgACkAOCIKfHwiDXwgCiAAKQBYIA2FQvnC+JuRo7Pw2wCFQiCJIg1Cj5KLh9rYgtjaAH0iDoVCKIkiCnwiECANhUIwiSINIA58Ig58IhGFQiiJIhd8IhIgH4VCMIkiEyARfCIRIBeFQgGJIhQgASkASCIXfCAYIAEpAGAiHyAWIAogDoVCAYkiCnx8IhZ8IBYgAyAHhUIwiSIDhUIgiSIHIAggCXwiCHwiCSAKhUIoiSIKfCIOfCIPfCAPIBwgASkAcCIWIBAgCCALhUIBiSIIfHwiC3wgBiALhUIgiSIGIAMgBXwiA3wiBSAIhUIoiSIIfCILIAaFQjCJIgaFQiCJIhAgFyAaIAIgA4VCAYkiAyAMfHwiAnwgAyAEIAIgDYVCIIkiAnwiBIVCKIkiA3wiDCAChUIwiSICIAR8IgR8Ig0gFIVCKIkiFHwiDyAhfCALIBggByAOhUIwiSIHIAl8IgkgCoVCAYkiCnx8IgsgJHwgCiACIAuFQiCJIgIgEXwiC4VCKIkiCnwiDiAChUIwiSICIAt8IgsgCoVCAYkiCnwiESAjfCAKIAUgBnwiBiAIhUIBiSIFIAwgFnx8IgggG3wgBSAIIBOFQiCJIgggCXwiDIVCKIkiBXwiCSAIhUIwiSIIIAx8IgwgESAaIBkgAyAEhUIBiSIEfCASfCIDfCAEIAYgAyAHhUIgiSIDfCIGhUIoiSIEfCIHIAOFQjCJIgOFQiCJIhF8IhKFQiiJIgp8IhMgEYVCMIkiESASfCISIAqFQgGJIgogHHwgHSAgIAUgDIVCAYkiBSAOfHwiDHwgBSAMIA8gEIVCMIkiDoVCIIkiDCADIAZ8IgZ8IgOFQiiJIgV8IhB8Ig8gBCAGhUIBiSIGIB58IAl8IgQgH3wgBiACIASFQiCJIgQgDSAOfCICfCIJhUIoiSIGfCINIASFQjCJIgSFQiCJIg4gFSACIBSFQgGJIgIgB3wgInwiB3wgAiAHIAiFQiCJIgcgC3wiCIVCKIkiAnwiCyAHhUIwiSIHIAh8Igh8IhQgCoVCKIkiCiAPfHwiDyAaIAUgAyAMIBCFQjCJIgV8IgOFQgGJIgwgDSAhfHwiDXwgDCAHIA2FQiCJIgcgEnwiDIVCKIkiDXwiECAHhUIwiSIHIAx8IgwgDYVCAYkiDXwgF3wiEnwgDSASICAgAiAIhUIBiSICIBN8fCIIIBV8IAIgBSAIhUIgiSIFIAQgCXwiBHwiCIVCKIkiAnwiCSAFhUIwiSIFhUIgiSISIAQgBoVCAYkiBiAffCALfCIEICJ8IAYgAyAEIBGFQiCJIgR8IgOFQiiJIgZ8IgsgBIVCMIkiBCADfCIDfCIRhUIoiSINfCITIB4gCSAKIA4gD4VCMIkiCiAUfCIOhUIBiSIUfCAjfCIJfCAEIAmFQiCJIgQgDHwiDCAUhUIoiSIJfCIUIASFQjCJIgQgDHwiDCAJhUIBiSIJfCAhfCIPIBZ8IAkgDyAWIBAgAyAGhUIBiSIGfCAbfCIDfCAGIAMgCoVCIIkiBiAFIAh8IgN8IgWFQiiJIgh8IgkgBoVCMIkiBoVCIIkiCiAOIAcgAiADhUIBiSIDIAsgHXx8IgKFQiCJIgd8IgsgA4VCKIkiAyACfCAkfCICIAeFQjCJIgcgC3wiC3wiDoVCKIkiEHwiDyANIBEgEiAThUIwiSINfCIRhUIBiSISIAkgI3x8IgkgF3wgByAJhUIgiSIHIAx8IgwgEoVCKIkiCXwiEiAHhUIwiSIHIAx8IgwgCYVCAYkiCXwgHHwiE3wgCSATIA0gGCADIAuFQgGJIgN8IBR8IguFQiCJIg0gBSAGfCIGfCIFIAOFQiiJIgMgC3wgH3wiCyANhUIwiSINhUIgiSITIB4gBiAIhUIBiSIGIB18IAJ8IgJ8IAYgESACIASFQiCJIgR8IgKFQiiJIgZ8IgggBIVCMIkiBCACfCICfCIRhUIoiSIJfCIUIAwgBCAKIA+FQjCJIgogDnwiDiAQhUIBiSIQIAsgGXx8IguFQiCJIgR8IgwgEIVCKIkiECALfCAifCILIASFQjCJIgQgDHwiDCAQhUIBiSIQfCAbfCIPIBx8IBAgDyASIAIgBoVCAYkiBnwgFXwiAiAkfCAGIAIgCoVCIIkiAiAFIA18IgV8IgqFQiiJIgZ8Ig0gAoVCMIkiAoVCIIkiEiAgIAMgBYVCAYkiAyAIfHwiBSAbfCADIAUgB4VCIIkiBSAOfCIHhUIoiSIDfCIIIAWFQjCJIgUgB3wiB3wiDoVCKIkiEHwiDyAJIBMgFIVCMIkiCSARfCIRhUIBiSITIA0gF3x8Ig0gInwgBSANhUIgiSIFIAx8IgwgE4VCKIkiDXwiEyAFhUIwiSIFIAx8IgwgDYVCAYkiDXwgHXwiFHwgDSAUIAMgB4VCAYkiAyAVfCALfCIHIBl8IAMgByAJhUIgiSIHIAIgCnwiAnwiC4VCKIkiA3wiCSAHhUIwiSIHhUIgiSIKICAgAiAGhUIBiSIGfCAIfCICICN8IAYgESACIASFQiCJIgR8IgKFQiiJIgZ8IgggBIVCMIkiBCACfCICfCINhUIoiSIRfCIUIAqFQjCJIgogAyAHIAt8IgOFQgGJIgcgCCAhfHwiCCAffCAHIA8gEoVCMIkiCyAOfCIOIAUgCIVCIIkiBXwiCIVCKIkiB3wiEiAFhUIwiSIFIAh8IgggB4VCAYkiByAifCAJIA4gEIVCAYkiCXwgJHwiDiAafCAJIAQgDoVCIIkiBCAMfCIMhUIoiSIJfCIOfCIQhUIgiSIPIB4gEyACIAaFQgGJIgZ8IBZ8IgJ8IAYgAyACIAuFQiCJIgZ8IgOFQiiJIgJ8IgsgBoVCMIkiBiADfCIDfCITIAeFQiiJIgcgEHwgIXwiECAPhUIwiSIPIBN8IhMgB4VCAYkiByACIAOFQgGJIgMgEnwgJHwiAiAbfCADIAogDXwiCiAEIA6FQjCJIgQgAoVCIIkiAnwiDYVCKIkiA3wiDnwgI3wiEnwgByASIAogEYVCAYkiCiALIBV8fCILIB98IAogBSALhUIgiSIFIAQgDHwiBHwiC4VCKIkiDHwiCiAFhUIwiSIFhUIgiSIRIAQgCYVCAYkiBCAafCAUfCIJIB18IAQgBiAJhUIgiSIGIAh8IgiFQiiJIgR8IgkgBoVCMIkiBiAIfCIIfCIShUIoiSIHfCIUIBGFQjCJIhEgEnwiEiAHhUIBiSIHIAogAyACIA6FQjCJIgMgDXwiAoVCAYkiDXwgGXwiCiAYfCAGIAqFQiCJIgYgE3wiCiANhUIoiSINfCIOIAaFQjCJIgYgCnwiCiACIA8gBSALfCIFIAyFQgGJIgIgCSAefHwiC4VCIIkiDHwiCSAChUIoiSICIAt8IBd8IgsgDIVCMIkiDCAQIAQgCIVCAYkiBHwgHHwiCCAWfCAEIAUgAyAIhUIgiSIDfCIFhUIoiSIEfCIIIAcgFnx8IgeFQiCJIhB8IhOFQiiJIg8gEyAQIA8gGHwgB3wiB4VCMIkiEHwiE4VCAYkiDyASIAYgGSAEIAMgCIVCMIkiBCAFfCIDhUIBiSIFfCALfCIIhUIgiSIGfCILIAYgBSALhUIoiSIFIBt8IAh8IgiFQjCJIgZ8IgsgAiAJIAx8IgyFQgGJIgIgDiAffHwiCSARhUIgiSIOIAMgDnwiAyAChUIoiSICICB8IAl8IgmFQjCJIg4gCiANhUIBiSIKIAwgBCAKIB58IBR8IgqFQiCJIgR8IgyFQiiJIg0gHHwgCnwiCiAPICR8fCIRhUIgiSISfCIUhUIoiSIPIBQgEiAPIB18IBF8IhGFQjCJIhJ8IhSFQgGJIg8gEyAGIAkgIiANIAwgBCAKhUIwiSIEfCIMhUIBiSIJfHwiCoVCIIkiBnwiDSAGIAkgDYVCKIkiCSAjfCAKfCIKhUIwiSIGfCINIBAgCCAaIAIgAyAOfCIDhUIBiSICfHwiCIVCIIkiDiAIIAIgDCAOfCIIhUIoiSICICF8fCIMhUIwiSIOIAUgC4VCAYkiBSADIAQgBSAXfCAHfCIFhUIgiSIEfCIDhUIoiSIHIBV8IAV8IgUgDyAffHwiC4VCIIkiEHwiE4VCKIkiDyATIBAgDyAefCALfCILhUIwiSIQfCIThUIBiSIPIBQgBiAdIAcgAyAEIAWFQjCJIgR8IgOFQgGJIgV8IAx8IgeFQiCJIgZ8IgwgBiAFIAyFQiiJIgUgF3wgB3wiB4VCMIkiBnwiDCASIAIgCCAOfCIIhUIBiSICIBh8IAp8IgqFQiCJIg4gAiADIA58IgOFQiiJIgIgIXwgCnwiCoVCMIkiDiAJIA2FQgGJIgkgCCAEIAkgI3wgEXwiCYVCIIkiBHwiCIVCKIkiDSAWfCAJfCIJIA8gHHx8IhGFQiCJIhJ8IhSFQiiJIg8gFCASIA8gGXwgEXwiEYVCMIkiEnwiFIVCAYkiDyATIAYgICANIAggBCAJhUIwiSIEfCIIhUIBiSIJfCAKfCIKhUIgiSIGfCINIAYgCSANhUIoiSIJICJ8IAp8IgqFQjCJIgZ8Ig0gECAVIAIgAyAOfCIDhUIBiSICfCAHfCIHhUIgiSIOIAcgAiAIIA58IgeFQiiJIgIgG3x8IgiFQjCJIg4gBSAMhUIBiSIFIAMgBCAFIBp8IAt8IgWFQiCJIgR8IgOFQiiJIgsgJHwgBXwiBSAPICF8fCIMhUIgiSIQfCIThUIoiSIPIBMgECAPIB18IAx8IgyFQjCJIhB8IhOFQgGJIg8gFCAGICIgCyADIAQgBYVCMIkiBHwiA4VCAYkiBXwgCHwiCIVCIIkiBnwiCyAGIAUgC4VCKIkiBSAafCAIfCIIhUIwiSIGfCILIBIgAiAHIA58IgeFQgGJIgIgJHwgCnwiCoVCIIkiDiACIAMgDnwiA4VCKIkiAiAcfCAKfCIKhUIwiSIOIAkgDYVCAYkiCSAHIAQgCSAWfCARfCIJhUIgiSIEfCIHhUIoiSINIBd8IAl8IgkgDyAYfHwiEYVCIIkiEnwiFIVCKIkiDyAUIBIgDyAjfCARfCIRhUIwiSISfCIUhUIBiSIPIBMgBiAfIA0gByAEIAmFQjCJIgR8IgeFQgGJIgl8IAp8IgqFQiCJIgZ8Ig0gBiAJIA2FQiiJIgkgFXwgCnwiCoVCMIkiBnwiDSAQIBsgAiADIA58IgOFQgGJIgJ8IAh8IgiFQiCJIg4gAiAHIA58IgeFQiiJIgIgIHwgCHwiCIVCMIkiDiAFIAuFQgGJIgUgAyAEIAUgHnwgDHwiBYVCIIkiBHwiA4VCKIkiCyAZfCAFfCIFIA8gI3x8IgyFQiCJIhB8IhOFQiiJIg8gEyAQIA8gJHwgDHwiDIVCMIkiEHwiE4VCAYkiDyAUIAYgHiALIAMgBCAFhUIwiSIEfCIDhUIBiSIFfCAIfCIIhUIgiSIGfCILIAYgBSALhUIoiSIFICB8IAh8IgiFQjCJIgZ8IgsgEiACIAcgDnwiB4VCAYkiAiAbfCAKfCIKhUIgiSIOIAIgAyAOfCIDhUIoiSICIBV8IAp8IgqFQjCJIg4gCSANhUIBiSIJIAcgBCAJIBp8IBF8IgmFQiCJIgR8IgeFQiiJIg0gGXwgCXwiCSAPIBd8fCIRhUIgiSISfCIUhUIoiSIPIBQgEiAPIBZ8IBF8IhGFQjCJIhJ8IhSFQgGJIg8gEyAGIBwgDSAHIAQgCYVCMIkiBHwiB4VCAYkiCXwgCnwiCoVCIIkiBnwiDSAGIAkgDYVCKIkiCSAhfCAKfCIKhUIwiSIGfCINIBAgGCACIAMgDnwiA4VCAYkiAnwgCHwiCIVCIIkiDiACIAcgDnwiB4VCKIkiAiAifCAIfCIIhUIwiSIOIAUgC4VCAYkiBSADIAQgBSAdfCAMfCIFhUIgiSIEfCIDhUIoiSILIB98IAV8IgUgDyAZfHwiDIVCIIkiEHwiE4VCKIkiDyATIBAgDyAgfCAMfCIMhUIwiSIQfCIThUIBiSIPIBQgBiAkIAsgAyAEIAWFQjCJIgR8IgOFQgGJIgV8IAh8IgiFQiCJIgZ8IgsgBiAFIAuFQiiJIgUgI3wgCHwiCIVCMIkiBnwiCyASIAIgByAOfCIHhUIBiSICICJ8IAp8IgqFQiCJIg4gAiADIA58IgOFQiiJIgIgHnwgCnwiCoVCMIkiDiAJIA2FQgGJIgkgByAEIAkgFXwgEXwiCYVCIIkiBHwiB4VCKIkiDSAdfCAJfCIJIA8gG3x8IhGFQiCJIhJ8IhSFQiiJIg8gFCASIA8gIXwgEXwiEYVCMIkiEnwiFIVCAYkiDyATIAYgGiANIAcgBCAJhUIwiSIEfCIHhUIBiSIJfCAKfCIKhUIgiSIGfCINIAYgCSANhUIoiSIJIBd8IAp8IgqFQjCJIgZ8Ig0gECAWIAIgAyAOfCIDhUIBiSICfCAIfCIIhUIgiSIOIAIgByAOfCIHhUIoiSICIBx8IAh8IgiFQjCJIg4gBSALhUIBiSIFIAMgBCAFIB98IAx8IgWFQiCJIgR8IgOFQiiJIgsgGHwgBXwiBSAPIBd8fCIXhUIgiSIMfCIQhUIoiSITIBAgDCATIBx8IBd8IhyFQjCJIhd8IgyFQgGJIhAgFCAGIBggCyADIAQgBYVCMIkiBHwiA4VCAYkiBXwgCHwiGIVCIIkiBnwiCCAGIBggJCAFIAiFQiiJIiR8fCIYhUIwiSIGfCIFIBIgFiACIAcgDnwiB4VCAYkiAnwgCnwiFoVCIIkiCCAWIBsgAiADIAh8IhaFQiiJIgN8fCIbhUIwiSICIBogCSANhUIBiSIIIAcgBCAIIBl8IBF8IhmFQiCJIgR8IgeFQiiJIgh8IBl8IhogECAifHwiGYVCIIkiInwiC4VCKIkiCSAVfCAZfCIZICWFIAcgBCAahUIwiSIafCIVIBcgGCAgIAMgAiAWfCIYhUIBiSIWfHwiIIVCIIkiF3wiBCAXICAgHSAEIBaFQiiJIh18fCIghUIwiSIXfCIWhTcACCAAIBggGiAcICEgBSAkhUIBiSIcfHwiIYVCIIkiGnwiGCAaICMgGCAchUIoiSIYfCAhfCIchUIwiSIafCIhICYgHyAIIBWFQgGJIhUgDCAGIBUgHnwgG3wiG4VCIIkiFXwiHoVCKIkiI3wgG3wiG4WFNwAAIAAgHiAVIBuFQjCJIht8IhUgHCAAKQAQhYU3ABAgACAZICKFQjCJIhkgACkAICAWIB2FQgGJhYU3ACAgACALIBl8IhkgICAAKQAYhYU3ABggACAAKQAoIBUgI4VCAYmFIBqFNwAoIAAgACkAOCAYICGFQgGJhSAbhTcAOCAAIAApADAgCSAZhUIBiYUgF4U3ADALvQUBH39B5fDBiwYhBCACKAAAIhUhBSACKAAEIhYhByACKAAIIhchCCACKAAMIhghCUHuyIGZAyEOIAEoAAAiGSEKIAEoAAQiGiELIAEoAAgiGyENIAEoAAwiHCEQQbLaiMsHIQEgAigAECIdIQNB9MqB2QYhBiACKAAcIh4hESACKAAYIh8hDyACKAAUIiAhAgNAIA8gECAFIA5qQQd3cyIMIA5qQQl3cyISIAIgBGpBB3cgCXMiCSAEakEJdyANcyITIAlqQQ13IAJzIiEgAyAGakEHdyAIcyIIIAZqQQl3IAtzIgsgCGpBDXcgA3MiDSALakESdyAGcyIGIBEgASAKakEHd3MiA2pBB3dzIgIgBmpBCXdzIg8gAmpBDXcgA3MiESAPakESdyAGcyEGIAMgASADakEJdyAHcyIHakENdyAKcyIKIAdqQRJ3IAFzIgEgDGpBB3cgDXMiAyABakEJdyATcyINIANqQQ13IAxzIhAgDWpBEncgAXMhASASIAwgEmpBDXcgBXMiDGpBEncgDnMiBSAJakEHdyAKcyIKIAVqQQl3IAtzIgsgCmpBDXcgCXMiCSALakESdyAFcyEOIBMgIWpBEncgBHMiBCAIakEHdyAMcyIFIARqQQl3IAdzIgcgBWpBDXcgCHMiCCAHakESdyAEcyEEIBRBEkkhDCAUQQJqIRQgDA0ACyAAIAZB9MqB2QZqNgA8IAAgESAeajYAOCAAIA8gH2o2ADQgACACICBqNgAwIAAgAyAdajYALCAAIAFBstqIywdqNgAoIAAgECAcajYAJCAAIA0gG2o2ACAgACALIBpqNgAcIAAgCiAZajYAGCAAIA5B7siBmQNqNgAUIAAgCSAYajYAECAAIAggF2o2AAwgACAHIBZqNgAIIAAgBSAVajYABCAAIARB5fDBiwZqNgAAC8QHAgp/BH4jAEHgA2siAiQAA0AgAkGgAmoiBSADQQF0aiIGIAEgA2otAAAiCEEEdjoAASAGIAhBD3E6AAAgA0EBciIGQQF0IAVqIgggASAGai0AACIGQQR2OgABIAggBkEPcToAACADQQJqIgNBIEcNAAtBACEBA0AgAkGgAmogBGoiAyADLQAAIAFqIgEgAUEIaiIBQfABcWs6AAAgAyADLQABIAHAQQR1aiIBIAFBCGoiAUHwAXFrOgABIAMgAy0AAiABwEEEdWoiASABQQhqIgFB8AFxazoAAiABwEEEdSEBIARBA2oiBEE/Rw0ACyACIAItAN8CIAFqOgDfAiAAQgA3AiAgAEIANwIYIABCADcCECAAQgA3AgggAEIANwIAIABCADcCLCAAQShqIghBATYCACAAQgA3AjQgAEIANwI8IABCADcCRCAAQoCAgIAQNwJMIABB1ABqQQBBzAAQCBogAEH4AGohCiAAQdAAaiELIAJB0AFqIQEgAkGoAWohBiACQfgBaiEEQQEhAwNAIAJBCGoiByADQQF2IAJBoAJqIANqLAAAEEcgAkGAAWoiBSAAIAcQOCAAIAUgBBAGIAggBiABEAYgCyABIAQQBiAKIAUgBhAGIANBPkkhByADQQJqIQMgBw0ACyAAKQIIIQwgACkCECENIAApAhghDiAAKQIAIQ8gAiAAKQIgNwOIAyACIA43A4ADIAIgDTcD+AIgAiAMNwPwAiACIA83A+gCIAApAighDCAAKQIwIQ0gACkCOCEOIABBQGspAgAhDyACIAApAkg3A7ADIAIgDzcDqAMgAiAONwOgAyACIA03A5gDIAIgDDcDkAMgACkCUCEMIAApAlghDSAAKQJgIQ4gACkCaCEPIAIgACkCcDcD2AMgAiAPNwPQAyACIA43A8gDIAIgDTcDwAMgAiAMNwO4AyACQYABaiIFIAJB6AJqIgkQFSAJIAUgBBAGIAJBkANqIgMgBiABEAYgAkG4A2oiByABIAQQBiAFIAkQFSAJIAUgBBAGIAMgBiABEAYgByABIAQQBiAFIAkQFSAJIAUgBBAGIAMgBiABEAYgByABIAQQBiAFIAkQFSAAIAUgBBAGIAggBiABEAYgCyABIAQQBiAKIAUgBhAGQQAhAwNAIAJBCGoiByADQQF2IAJBoAJqIANqLAAAEEcgAkGAAWoiBSAAIAcQOCAAIAUgBBAGIAggBiABEAYgCyABIAQQBiAKIAUgBhAGIANBPkkhByADQQJqIQMgBw0ACyACQeADaiQAC2IBA38jAEGwAWsiAiQAIAJB4ABqIgMgAUHQAGoQLCACQTBqIgQgASADEAYgAiABQShqIAMQBiAAIAIQEiACQZABaiAEEBIgACAALQAfIAItAJABQQd0czoAHyACQbABaiQAC8oIAQN/IwBBwAFrIgIkACACQZABaiIEIAEQBSACQeAAaiIDIAQQBSADIAMQBSADIAEgAxAGIAQgBCADEAYgAkEwaiIBIAQQBSADIAMgARAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSABIAIgARAGIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBUEBIQEDQCACIAIQBSABQQFqIgFB5ABHDQALIAJBMGoiASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSACQeAAaiIDIAEgAxAGIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAAgAyACQZABahAGIAJBwAFqJAAL7wMBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBCACIAIoAgQgAigCDC0AACACKAIILQAAc3I2AgQgAiACKAIEIAIoAgwtAAEgAigCCC0AAXNyNgIEIAIgAigCBCACKAIMLQACIAIoAggtAAJzcjYCBCACIAIoAgQgAigCDC0AAyACKAIILQADc3I2AgQgAiACKAIEIAIoAgwtAAQgAigCCC0ABHNyNgIEIAIgAigCBCACKAIMLQAFIAIoAggtAAVzcjYCBCACIAIoAgQgAigCDC0ABiACKAIILQAGc3I2AgQgAiACKAIEIAIoAgwtAAcgAigCCC0AB3NyNgIEIAIgAigCBCACKAIMLQAIIAIoAggtAAhzcjYCBCACIAIoAgQgAigCDC0ACSACKAIILQAJc3I2AgQgAiACKAIEIAIoAgwtAAogAigCCC0ACnNyNgIEIAIgAigCBCACKAIMLQALIAIoAggtAAtzcjYCBCACIAIoAgQgAigCDC0ADCACKAIILQAMc3I2AgQgAiACKAIEIAIoAgwtAA0gAigCCC0ADXNyNgIEIAIgAigCBCACKAIMLQAOIAIoAggtAA5zcjYCBCACIAIoAgQgAigCDC0ADyACKAIILQAPc3I2AgQgAigCBEEBa0EIdkEBcUEBawsEAEEAC6IJATF/IwBBQGohCSAAKAI8IR0gACgCOCEeIAAoAjQhEiAAKAIwIRMgACgCLCEfIAAoAighICAAKAIkISEgACgCICEiIAAoAhwhIyAAKAIYISQgACgCFCElIAAoAhAhJiAAKAIMIScgACgCCCEoIAAoAgQhKSAAKAIAISoDQAJAIANCP1YEQCACIQUMAQsgCUIANwM4IAlCADcDMCAJQgA3AyggCUIANwMgIAlCADcDGCAJQgA3AxAgCUIANwMIIAlCADcDAEEAIQQgA0IAUgRAA0AgBCAJaiABIARqLQAAOgAAIAMgBEEBaiIErVYNAAsLIAkiBSEBIAIhKwtBFCEWICohCCApIQogKCEOICchFCAmIQQgJSECICQhBiAjIQcgIiELICEhDyAgIQwgHSEQIB4hFyASIRggEyENIB8hEQNAIAQgBCAIaiIEIA1zQRB3IgggC2oiC3NBDHciDSAEaiIVIAhzQQh3IgggC2oiCyANc0EHdyIEIAcgByAUaiIHIBBzQRB3IhAgEWoiDXNBDHciESAHaiIHaiIUIAYgBiAOaiIGIBdzQRB3Ig4gDGoiDHNBDHciGSAGaiIGIA5zQQh3IhpzQRB3Ig4gAiACIApqIgIgGHNBEHciCiAPaiIPc0EMdyIbIAJqIgIgCnNBCHciCiAPaiIcaiIPIARzQQx3IgQgFGoiFCAOc0EIdyIXIA9qIg8gBHNBB3chBCALIAogBiAHIBBzQQh3IhAgDWoiBiARc0EHdyIHaiIKc0EQdyILaiINIAdzQQx3IgcgCmoiDiALc0EIdyIYIA1qIgsgB3NBB3chByAGIAggAiAMIBpqIgIgGXNBB3ciBmoiCHNBEHciDGoiESAGc0EMdyIGIAhqIgogDHNBCHciDSARaiIRIAZzQQd3IQYgAiAbIBxzQQd3IgIgFWoiCCAQc0EQdyIMaiIVIAJzQQx3IgIgCGoiCCAMc0EIdyIQIBVqIgwgAnNBB3chAiAWQQJrIhYNAAsgASgABCEWIAEoAAghFSABKAAMIRkgASgAECEaIAEoABQhGyABKAAYIRwgASgAHCEsIAEoACAhLSABKAAkIS4gASgAKCEvIAEoACwhMCABKAAwITEgASgANCEyIAEoADghMyABKAA8ITQgBSABKAAAIAggKmpzNgAAIAUgNCAQIB1qczYAPCAFIDMgFyAeanM2ADggBSAyIBIgGGpzNgA0IAUgMSANIBNqczYAMCAFIDAgESAfanM2ACwgBSAvIAwgIGpzNgAoIAUgLiAPICFqczYAJCAFIC0gCyAianM2ACAgBSAsIAcgI2pzNgAcIAUgHCAGICRqczYAGCAFIBsgAiAlanM2ABQgBSAaIAQgJmpzNgAQIAUgGSAUICdqczYADCAFIBUgDiAoanM2AAggBSAWIAogKWpzNgAEIBIgE0EBaiITRWohEiADQsAAWARAAkAgA0I/Vg0AIAOnIgFFDQBBACEEA0AgBCAraiAEIAVqLQAAOgAAIARBAWoiBCABSQ0ACwsgACASNgI0IAAgEzYCMAUgAUFAayEBIAVBQGshAiADQkB8IQMMAQsLC8QCAgJ/AX4jAEHgAGsiBiQAIAYgBCAFED4aIAZBIGoiB0IgIARBEGoiBSAGQdCQAigCABEMABpBfyEEAkACQCACIAEgAyAHQbiQAigCABESAA0AQQAhBCAARQ0BAkAgACABSSABIABrrSADVHFFBEAgACABTQ0BIAAgAWutIANaDQELIAAgASADpxAkIQELAkBCICADIANCIFobIghQBEAgBkEgaiICIAIgCEIgfCAFQgAgBkHUkAIoAgARCQAaDAELIAZBQGsgASAIpyICEAshBCAGQSBqIgcgByAIQiB8IAVCACAGQdSQAigCABEJABogACAEIAIQCxoLIAZBIGpBwAAQB0EAIQQgA0IhVA0AIAAgCKciAmogASACaiADIAh9IAVCASAGQdSQAigCABEJABoLIAZBIBAHCyAGQeAAaiQAIAQL4ScCJ38DfiMAQdAEayIPJABBfyELIABBIGohCUEgIQVBASEMA0AgBUEBayIHQfAUai0AACIKIAcgCWotAAAiB3NBAWtBCHUgDHEiCCAJIAVBAmsiBWotAAAiDSAFQfAUai0AACIOa0EIdXEgByAKa0EIdiAMcSAGckH/AXFyIQYgDSAOc0EBa0EIdSAIcSEMIAUNAAsCQCAGQf8BcUUNACAAEDcNACADLQAfQX9zQf8AcSADLQABIAMtAAIgAy0AAyADLQAEIAMtAAUgAy0ABiADLQAHIAMtAAggAy0ACSADLQAKIAMtAAsgAy0ADCADLQANIAMtAA4gAy0ADyADLQAQIAMtABEgAy0AEiADLQATIAMtABQgAy0AFSADLQAWIAMtABcgAy0AGCADLQAZIAMtABogAy0AGyADLQAcIAMtAB4gAy0AHXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxQf8Bc3JBAWtB7AEgAy0AAGtxQX9zQQh2QQFxRQ0AIAMQNw0AIA9BgAFqIAMQSQ0AIA9BgANqIgUQGSAEBEAgBUHQjwJCIhAMGgsgBSAAQiAQDBogBSADQiAQDBogBSABIAIQDBogBSAPQcACaiIBEBMgARA2IA9BCGohDCABIQQgD0GAAWohC0EAIQNBACEBIwBB4BFrIgUkAANAIAVB4A9qIgYgA2ogBCADQQN2aiIHLQAAIANBBnF2QQFxOgAAIAYgA0EBciIKaiAHLQAAIApBB3F2QQFxOgAAIANBAmoiA0GAAkcNAAsDQCABIgRBAWohAQJAIAQgBUHgD2pqIgYtAABFDQAgBEH+AUsNAAJAIAVB4A9qIAFqIgMsAAAiB0UNACAHQQF0IgcgBiwAACIKaiIIQQ9MBEAgBiAIOgAAIANBADoAAAwBCyAKIAdrIgNBcUgNASAGIAM6AAAgASEDA0AgBUHgD2ogA2oiBy0AAEUEQCAHQQE6AAAMAgsgB0EAOgAAIANB/wFJIQcgA0EBaiEDIAcNAAsLIARB/QFLDQACQCAEQQJqIgMgBUHgD2pqIgcsAAAiCkUNACAKQQJ0IgogBiwAACIIaiINQRBOBEAgCCAKayIHQXFIDQIgBiAHOgAAA0AgBUHgD2ogA2oiBy0AAARAIAdBADoAACADQf8BSSEHIANBAWohAyAHDQEMAwsLIAdBAToAAAwBCyAGIA06AAAgB0EAOgAACyAEQfwBSw0AAkAgBEEDaiIDIAVB4A9qaiIHLAAAIgpFDQAgCkEDdCIKIAYsAAAiCGoiDUEQTgRAIAggCmsiB0FxSA0CIAYgBzoAAANAIAVB4A9qIANqIgctAAAEQCAHQQA6AAAgA0H/AUkhByADQQFqIQMgBw0BDAMLCyAHQQE6AAAMAQsgBiANOgAAIAdBADoAAAsgBEH7AUsNAAJAIARBBGoiAyAFQeAPamoiBywAACIKRQ0AIApBBHQiCiAGLAAAIghqIg1BEE4EQCAIIAprIgdBcUgNAiAGIAc6AAADQCAFQeAPaiADaiIHLQAABEAgB0EAOgAAIANB/wFJIQcgA0EBaiEDIAcNAQwDCwsgB0EBOgAADAELIAYgDToAACAHQQA6AAALIARB+gFLDQACQCAEQQVqIgMgBUHgD2pqIgcsAAAiCkUNACAKQQV0IgogBiwAACIIaiINQRBOBEAgCCAKayIHQXFIDQIgBiAHOgAAA0AgBUHgD2ogA2oiBy0AAARAIAdBADoAACADQf8BSSEHIANBAWohAyAHDQEMAwsLIAdBAToAAAwBCyAGIA06AAAgB0EAOgAACyAEQfkBSw0AIARBBmoiAyAFQeAPamoiBCwAACIHRQ0AIAdBBnQiByAGLAAAIgpqIghBEE4EQCAKIAdrIgRBcUgNASAGIAQ6AAADQCAFQeAPaiADaiIELQAABEAgBEEAOgAAIANB/wFJIQQgA0EBaiEDIAQNAQwDCwsgBEEBOgAADAELIAYgCDoAACAEQQA6AAALIAFBgAJHDQALQQAhAwNAIAVB4A1qIgEgA2ogCSADQQN2aiIELQAAIANBBnF2QQFxOgAAIAEgA0EBciIGaiAELQAAIAZBB3F2QQFxOgAAIANBAmoiA0GAAkcNAAtBACEBA0AgASIEQQFqIQECQCAEIAVB4A1qaiIJLQAARQ0AIARB/gFLDQACQCAFQeANaiABaiIDLAAAIgZFDQAgBkEBdCIGIAksAAAiB2oiCkEPTARAIAkgCjoAACADQQA6AAAMAQsgByAGayIDQXFIDQEgCSADOgAAIAEhAwNAIAVB4A1qIANqIgYtAABFBEAgBkEBOgAADAILIAZBADoAACADQf8BSSEGIANBAWohAyAGDQALCyAEQf0BSw0AAkAgBEECaiIDIAVB4A1qaiIGLAAAIgdFDQAgB0ECdCIHIAksAAAiCmoiCEEQTgRAIAogB2siBkFxSA0CIAkgBjoAAANAIAVB4A1qIANqIgYtAAAEQCAGQQA6AAAgA0H/AUkhBiADQQFqIQMgBg0BDAMLCyAGQQE6AAAMAQsgCSAIOgAAIAZBADoAAAsgBEH8AUsNAAJAIARBA2oiAyAFQeANamoiBiwAACIHRQ0AIAdBA3QiByAJLAAAIgpqIghBEE4EQCAKIAdrIgZBcUgNAiAJIAY6AAADQCAFQeANaiADaiIGLQAABEAgBkEAOgAAIANB/wFJIQYgA0EBaiEDIAYNAQwDCwsgBkEBOgAADAELIAkgCDoAACAGQQA6AAALIARB+wFLDQACQCAEQQRqIgMgBUHgDWpqIgYsAAAiB0UNACAHQQR0IgcgCSwAACIKaiIIQRBOBEAgCiAHayIGQXFIDQIgCSAGOgAAA0AgBUHgDWogA2oiBi0AAARAIAZBADoAACADQf8BSSEGIANBAWohAyAGDQEMAwsLIAZBAToAAAwBCyAJIAg6AAAgBkEAOgAACyAEQfoBSw0AAkAgBEEFaiIDIAVB4A1qaiIGLAAAIgdFDQAgB0EFdCIHIAksAAAiCmoiCEEQTgRAIAogB2siBkFxSA0CIAkgBjoAAANAIAVB4A1qIANqIgYtAAAEQCAGQQA6AAAgA0H/AUkhBiADQQFqIQMgBg0BDAMLCyAGQQE6AAAMAQsgCSAIOgAAIAZBADoAAAsgBEH5AUsNACAEQQZqIgMgBUHgDWpqIgQsAAAiBkUNACAGQQZ0IgYgCSwAACIHaiIKQRBOBEAgByAGayIEQXFIDQEgCSAEOgAAA0AgBUHgDWogA2oiBC0AAARAIARBADoAACADQf8BSSEEIANBAWohAyAEDQEMAwsLIARBAToAAAwBCyAJIAo6AAAgBEEAOgAACyABQYACRw0ACyAFQeADaiIHIAsQDSALKQIIIQIgCykCECEsIAspAhghLSALKQIAIS4gBSALKQIgNwPAASAFIC03A7gBIAUgLDcDsAEgBSACNwOoASAFIC43A6ABIAspAighAiALKQIwISwgCykCOCEtIAtBQGspAgAhLiAFIAspAkg3A+gBIAUgLjcD4AEgBSAtNwPYASAFICw3A9ABIAUgAjcDyAEgCykCUCECIAspAlghLCALKQJgIS0gCykCaCEuIAUgCykCcDcDkAIgBSAuNwOIAiAFIC03A4ACIAUgLDcD+AEgBSACNwPwASAFQcACaiIBIAVBoAFqIgMQFSAFIAEgBUG4A2oiBBAGIAVBKGogBUHoAmoiCSAFQZADaiIGEAYgBUHQAGogBiAEEAYgBUH4AGogASAJEAYgASAFIAcQDiADIAEgBBAGIAVByAFqIgcgCSAGEAYgBUHwAWoiCiAGIAQQBiAFQZgCaiILIAEgCRAGIAVBgAVqIgggAxANIAEgBSAIEA4gAyABIAQQBiAHIAkgBhAGIAogBiAEEAYgCyABIAkQBiAFQaAGaiIIIAMQDSABIAUgCBAOIAMgASAEEAYgByAJIAYQBiAKIAYgBBAGIAsgASAJEAYgBUHAB2oiCCADEA0gASAFIAgQDiADIAEgBBAGIAcgCSAGEAYgCiAGIAQQBiALIAEgCRAGIAVB4AhqIgggAxANIAEgBSAIEA4gAyABIAQQBiAHIAkgBhAGIAogBiAEEAYgCyABIAkQBiAFQYAKaiIIIAMQDSABIAUgCBAOIAMgASAEEAYgByAJIAYQBiAKIAYgBBAGIAsgASAJEAYgBUGgC2oiCCADEA0gASAFIAgQDiADIAEgBBAGIAcgCSAGEAYgCiAGIAQQBiALIAEgCRAGIAVBwAxqIAMQDSAMQgA3AiAgDEIANwIYIAxCADcCECAMQgA3AgggDEIANwIAIAxCADcCLCAMQShqIiJBATYCACAMQgA3AjQgDEIANwI8IAxCADcCRCAMQgA3AlQgDEKAgICAEDcCTCAMQgA3AlwgDEIANwJkIAxCADcCbCAMQQA2AnQgDEHQAGohI0H/ASEBA0ACQAJAAkAgBUHgD2ogAWotAAANACAFQeANaiABai0AAA0AIAFBAWsiAyAFQeAPamotAABFBEAgBUHgDWogA2otAABFDQILIAMhAQsgAUEASA0BA0AgBUHAAmogDBAVAkAgASIDIAVB4A9qaiwAACIBQQBKBEAgBUGgAWoiDSAFQcACaiIIIAQQBiAHIAkgBhAGIAogBiAEEAYgCyAIIAkQBiAIIA0gBUHgA2ogAUH+AXFBAXZBoAFsahAODAELIAFBAE4NACAFQaABaiINIAVBwAJqIgggBBAGIAcgCSAGEAYgCiAGIAQQBiALIAggCRAGIAggDSAFQeADakEAIAFrQf4BcUEBdkGgAWxqEEgLAkAgBUHgDWogA2osAAAiAUEASgRAIAVBoAFqIg0gBUHAAmoiCCAEEAYgByAJIAYQBiAKIAYgBBAGIAsgCCAJEAYgCCANIAFB/gFxQQF2QfgAbEHQC2oQOAwBCyABQQBODQAgBUGgAWogBUHAAmoiCCAEEAYgByAJIAYQBiAKIAYgBBAGIAsgCCAJEAYgBSgCoAEhDSAFKALIASEOIAUoAqQBIRAgBSgCzAEhESAFKAKoASESIAUoAtABIRMgBSgCrAEhFCAFKALUASEVIAUoArABIRYgBSgC2AEhFyAFKAK0ASEYIAUoAtwBIRkgBSgCuAEhGiAFKALgASEbIAUoArwBIRwgBSgC5AEhHSAFKALAASEeIAUoAugBIR8gBSAFKALsASIgIAUoAsQBIiFrNgKMAyAFIB8gHms2AogDIAUgHSAcazYChAMgBSAbIBprNgKAAyAFIBkgGGs2AvwCIAUgFyAWazYC+AIgBSAVIBRrNgL0AiAFIBMgEms2AvACIAUgESAQazYC7AIgBSAOIA1rNgLoAiAFICAgIWo2AuQCIAUgHiAfajYC4AIgBSAcIB1qNgLcAiAFIBogG2o2AtgCIAUgGCAZajYC1AIgBSAWIBdqNgLQAiAFIBQgFWo2AswCIAUgEiATajYCyAIgBSAQIBFqNgLEAiAFIA0gDmo2AsACIAYgCEEAIAFrQf4BcUEBdkH4AGxB0AtqIgFBKGoQBiAJIAkgARAGIAQgAUHQAGogCxAGIAUoApQCIR4gBSgCkAIhHyAFKAKMAiEgIAUoAogCISEgBSgChAIhJCAFKAKAAiElIAUoAvwBISYgBSgC+AEhJyAFKAL0ASEoIAUoAvABISkgBSgC6AIhASAFKAKQAyEIIAUoAuwCIQ0gBSgClAMhDiAFKALwAiEQIAUoApgDIREgBSgC9AIhEiAFKAKcAyETIAUoAvgCIRQgBSgCoAMhFSAFKAL8AiEWIAUoAqQDIRcgBSgCgAMhGCAFKAKoAyEZIAUoAoQDIRogBSgCrAMhGyAFKAKIAyEcIAUoArADIR0gBSAFKAKMAyIqIAUoArQDIitqNgKMAyAFIBwgHWo2AogDIAUgGiAbajYChAMgBSAYIBlqNgKAAyAFIBYgF2o2AvwCIAUgFCAVajYC+AIgBSASIBNqNgL0AiAFIBAgEWo2AvACIAUgDSAOajYC7AIgBSABIAhqNgLoAiAFICsgKms2AuQCIAUgHSAcazYC4AIgBSAbIBprNgLcAiAFIBkgGGs2AtgCIAUgFyAWazYC1AIgBSAVIBRrNgLQAiAFIBMgEms2AswCIAUgESAQazYCyAIgBSAOIA1rNgLEAiAFIAggAWs2AsACIAUgKUEBdCIBIAUoArgDIghrNgKQAyAFIChBAXQiDSAFKAK8AyIOazYClAMgBSAnQQF0IhAgBSgCwAMiEWs2ApgDIAUgJkEBdCISIAUoAsQDIhNrNgKcAyAFICVBAXQiFCAFKALIAyIVazYCoAMgBSAkQQF0IhYgBSgCzAMiF2s2AqQDIAUgIUEBdCIYIAUoAtADIhlrNgKoAyAFICBBAXQiGiAFKALUAyIbazYCrAMgBSAfQQF0IhwgBSgC2AMiHWs2ArADIAUgHkEBdCIeIAUoAtwDIh9rNgK0AyAFIAEgCGo2ArgDIAUgDSAOajYCvAMgBSAQIBFqNgLAAyAFIBIgE2o2AsQDIAUgFCAVajYCyAMgBSAWIBdqNgLMAyAFIBggGWo2AtADIAUgGiAbajYC1AMgBSAcIB1qNgLYAyAFIB4gH2o2AtwDCyAMIAVBwAJqIAQQBiAiIAkgBhAGICMgBiAEEAYgA0EBayEBIANBAEoNAAsMAQsgAUECayEBIAMNAQsLIAVB4BFqJAAgD0GgAmoiASAMECtBfyABIAAQSyAAIAFGGyAAIAFBIBAzciELCyAPQdAEaiQAIAsLqSICOH4FfyMAQbAEayI/JAAgP0HgAmoQGSAFBEAgP0HgAmpB0I8CQiIQDBoLID9BoAJqIARCIBAYGiA/QeACaiJBID9BwAJqQiAQDBogQSACIAMQDBogQSA/QeABaiI+EBMgBCkAICEIIAQpACghByAEKQAwIQYgACAEKQA4NwA4IAAgBjcAMCAAIAc3ACggAEEgaiIEIAg3AAAgPhA2ID8gPhAqIAAgPxArIEEQGSAFBEAgP0HgAmpB0I8CQiIQDBoLID9B4AJqIgUgAELAABAMGiAFIAIgAxAMGiAFID9BoAFqIgAQEyAAEDYgPyA/LQCgAkH4AXE6AKACID8gPy0AvwJBP3FBwAByOgC/AiAEID9BoAJqIkAzABUgQDEAF0IQhkKAgPwAg4QiECAAKAAcQQd2rSIRfiAAKAAXIgVBGHatIAAxABtCCIaEIAAxABxCEIaEQgKIQv///wCDIhIgQCgAFyICQQV2Qf///wBxrSITfnwgADMAFSAAMQAXQhCGQoCA/ACDhCIUIEAoABxBB3atIhV+fCACQRh2rSBAMQAbQgiGhCBAMQAcQhCGhEICiEL///8AgyIWIAVBBXZB////AHGtIhd+fCATIBd+IEAoAA8iBUEYdq0gQDEAE0IIhoQgQDEAFEIQhoRCA4giGCARfnwgECASfnwgACgADyICQRh2rSAAMQATQgiGhCAAMQAUQhCGhEIDiCIZIBV+fCAUIBZ+fCIJQoCAQH0iCEIViHwiB0KAgEB9IgZCFYggFSAXfiARIBN+fCASIBZ+fCIDIANCgIBAfSIDQoCAgP////8Ag318IixCmNocfiARIBZ+IBIgFX58IANCFYh8IgMgA0KAgEB9IipCgICA/////wCDfSItQpPYKH58IAcgBkKAgIB/g30iLkLn9id+fCAJIAhCgICAf4N9IBIgGH4gBUEGdkH///8Aca0iGiARfnwgEyAUfnwgECAXfnwgFSACQQZ2Qf///wBxrSIbfnwgFiAZfnwgQCgACiJCQRh2rSBAMQAOQgiGhCBAMQAPQhCGhEIBiEL///8AgyIcIBF+IBIgGn58IBcgGH58IBMgGX58IBAgFH58IAAoAAoiQUEYdq0gADEADkIIhoQgADEAD0IQhoRCAYhC////AIMiHSAVfnwgFiAbfnwiDEKAgEB9IgpCFYh8IglCgIBAfSIIQhWIfCIvQtOMQ358ID9B4AFqIj4oABciBUEFdkH///8Aca0gQDMAACBAMQACQhCGQoCA/ACDhCIeIBd+IBQgQCgAAiICQQV2Qf///wBxrSIffnwgQDUAB0IHiEL///8AgyIgIBt+fCAdIEJBBHZB////AHGtIiF+fCACQRh2rSBAMQAGQgiGhCBAMQAHQhCGhEICiEL///8AgyIiIBl+fCAaIAA1AAdCB4hC////AIMiI358IBwgQUEEdkH///8Aca0iJH58IBggACgAAiICQRh2rSAAMQAGQgiGhCAAMQAHQhCGhEICiEL///8AgyIlfnwgADMAACAAMQACQhCGQoCA/ACDhCImIBN+fCAQIAJBBXZB////AHGtIid+fHwgPjMAFSAUIB5+IBkgH358IB0gIH58ICEgJH58IBsgIn58IBogJX58IBwgI358IBggJ358IBAgJn58fCA+MQAXQhCGQoCA/ACDfCIHQoCAQH0iBkIViHwiA3wgA0KAgEB9IgtCgICAf4N9IAcgLkKY2hx+ICxCk9gofnwgL0Ln9id+fCAZIB5+IBsgH358ICAgJH58ICEgI358IB0gIn58IBogJ358IBwgJX58IBggJn58ID4oAA8iAEEYdq0gPjEAE0IIhoQgPjEAFEIQhoRCA4h8IABBBnZB////AHGtIBsgHn4gHSAffnwgICAjfnwgISAlfnwgIiAkfnwgGiAmfnwgHCAnfnx8IjZCgIBAfSIwQhWIfCIoQoCAQH0iN0IViHx8IAZCgICAf4N9IjhCgIBAfSI5QhWHfCIOQoCAQH0iKUIVhyAJIAhCgICAf4N9IAwgESAVfiIPQoCAQH0iDUIViCIxQoOhVn58IApCgICAf4N9IBcgGn4gESAhfnwgEiAcfnwgFCAYfnwgEyAbfnwgECAZfnwgFSAkfnwgFiAdfnwgEiAhfiARICB+fCAUIBp+fCAXIBx+fCAYIBl+fCATIB1+fCAQIBt+fCAVICN+fCAWICR+fCIMQoCAQH0iCkIViHwiCUKAgEB9IghCFYh8IgdCgIBAfSIGQhWHfCIyQoOhVn58IBIgHn4gFyAffnwgGSAgfnwgGyAhfnwgFCAifnwgGiAkfnwgHCAdfnwgGCAjfnwgEyAnfnwgECAlfnwgFiAmfnwgBUEYdq0gPjEAG0IIhoQgPjEAHEIQhoRCAohC////AIN8IgMgLUKY2hx+IA8gDUKAgID/////A4N9ICpCFYh8IjNCk9gofnwgLELn9id+fCAuQtOMQ358IC9C0asIfnwgC0IViHx8IANCgIBAfSI6QoCAgH+DfSIDfCADQoCAQH0iO0KAgIB/g30iCyAOIAcgBkKAgIB/g30gM0KDoVZ+IDFC0asIfnwgCXwgCEKAgIB/g30gDCAxQtOMQ358IDNC0asIfnwgLUKDoVZ+fCAKQoCAgH+DfSAXICF+IBIgIH58IBEgIn58IBkgGn58IBQgHH58IBggG358IBMgJH58IBAgHX58IBUgJX58IBYgI358IBcgIH4gESAffnwgFCAhfnwgEiAifnwgGiAbfnwgGSAcfnwgGCAdfnwgEyAjfnwgECAkfnwgFSAnfnwgFiAlfnwiPEKAgEB9Ij1CFYh8IitCgIBAfSIqQhWIfCINQoCAQH0iDEIVh3wiBkKAgEB9IgNCFYd8IjRCg6FWfiAyQtGrCH58fCApQoCAgH+DfSA4IDRC0asIfiAyQtOMQ358IAYgA0KAgIB/g30iNUKDoVZ+fCAvQpjaHH4gLkKT2Ch+fCAofCA2IC9Ck9gofnwgMEKAgIB/g30gHSAefiAfICR+fCAgICV+fCAhICd+fCAiICN+fCAcICZ+fCA+KAAKIgBBGHatID4xAA5CCIaEID4xAA9CEIaEQgGIQv///wCDfCAAQQR2Qf///wBxrSAeICR+IB8gI358ICAgJ358ICEgJn58ICIgJX58fCI2QoCAQH0iMEIViHwiKEKAgEB9Ig5CFYh8IilCgIBAfSIPQhWHfCA3QoCAgH+DfSIKQoCAQH0iCUIVh3x8IDlCgICAf4N9IghCgIBAfSIHQhWHfCIGQoCAQH0iA0IVh3wgC0KAgEB9IgtCgICAf4N9IAYgA0KAgIB/g30gCCAHQoCAgH+DfSA0QtOMQ34gMkLn9id+fCA1QtGrCH58IAp8IAlCgICAf4N9IA0gDEKAgIB/g30gM0LTjEN+IDFC5/YnfnwgLULRqwh+fCAsQoOhVn58ICt8ICpCgICAf4N9IDNC5/YnfiAxQpjaHH58IC1C04xDfnwgPHwgLELRqwh+fCAuQoOhVn58ID1CgICAf4N9ID4oABxBB3atIBEgHn4gEiAffnwgFCAgfnwgGSAhfnwgFyAifnwgGiAdfnwgGyAcfnwgGCAkfnwgEyAlfnwgECAjfnwgFSAmfnwgFiAnfnx8IDpCFYh8Ig1CgIBAfSIMQhWIfCIKQoCAQH0iCUIVh3wiBkKAgEB9IgNCFYd8IitCg6FWfnwgKSAyQpjaHH58IA9CgICAf4N9IDRC5/YnfnwgNULTjEN+fCArQtGrCH58IAYgA0KAgIB/g30iKkKDoVZ+fCIIQoCAQH0iB0IVh3wiBkKAgEB9IgNCFYd8IAYgA0KAgIB/g30gCCAHQoCAgH+DfSAyQpPYKH4gKHwgDkKAgIB/g30gNEKY2hx+fCA1Quf2J358IAogCUKAgIB/g30gM0KY2hx+IDFCk9gofnwgLULn9id+fCAsQtOMQ358IC5C0asIfnwgL0KDoVZ+fCANfCAMQoCAgH+DfSA7QhWHfCINQoCAQH0iDEIVh3wiDkKDoVZ+fCArQtOMQ358ICpC0asIfnwgNiAwQoCAgH+DfSAeICN+IB8gJX58ICAgJn58ICIgJ358ID41AAdCB4hC////AIN8IB4gJX4gHyAnfnwgIiAmfnwgPigAAiIAQRh2rSA+MQAGQgiGhCA+MQAHQhCGhEICiEL///8Ag3wiKUKAgEB9Ig9CFYh8IgpCgIBAfSIJQhWIfCA0QpPYKH58IDVCmNocfnwgDkLRqwh+fCArQuf2J358ICpC04xDfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIA0gDEKAgIB/g30gC0IVh3wiMEKAgEB9IihCFYciC0KDoVZ+fCADQoCAgH+DfSAIIAtC0asIfnwgB0KAgIB/g30gCiAJQoCAgH+DfSA1QpPYKH58IA5C04xDfnwgK0KY2hx+fCAqQuf2J358ICkgAEEFdkH///8Aca0gHiAnfiAfICZ+fHwgHiAmfiA+MwAAID4xAAJCEIZCgID8AIOEfCINQoCAQH0iDEIViHwiCkKAgEB9IglCFYh8IA9CgICAf4N9IA5C5/YnfnwgK0KT2Ch+fCAqQpjaHH58IghCgIBAfSIHQhWHfCIGQoCAQH0iA0IVh3wgBiALQtOMQ358IANCgICAf4N9IAggC0Ln9id+fCAHQoCAgH+DfSAKIAlCgICAf4N9IA5CmNocfnwgKkKT2Ch+fCANIAxCgICA////A4N9IA5Ck9gofnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIAtCmNocfnwgA0KAgIB/g30gCCAHQoCAgH+DfSALQpPYKH58Ig5CFYd8IgtCFYd8IilCFYd8Ig9CFYd8Ig1CFYd8IgxCFYd8IgpCFYd8IglCFYd8IghCFYd8IgdCFYd8IgZCFYcgMCAoQoCAgH+DfXwiA0IVhyIoQpPYKH4gDkL///8Ag3wiDjwAACAEIA5CCIg8AAEgBCAoQpjaHH4gC0L///8Ag3wgDkIVh3wiC0ILiDwABCAEIAtCA4g8AAMgBCAOQhCIQh+DIAtCBYaEPAACIAQgKELn9id+IClC////AIN8IAtCFYd8IilCBog8AAYgBCApQgKGIAtCgIDgAINCE4iEPAAFIAQgKELTjEN+IA9C////AIN8IClCFYd8Ig9CCYg8AAkgBCAPQgGIPAAIIAQgD0IHhiApQoCA/wCDQg6IhDwAByAEIChC0asIfiANQv///wCDfCAPQhWHfCINQgyIPAAMIAQgDUIEiDwACyAEIA1CBIYgD0KAgPgAg0IRiIQ8AAogBCAoQoOhVn4gDEL///8Ag3wgDUIVh3wiDEIHiDwADiAEIAxCAYYgDUKAgMAAg0IUiIQ8AA0gBCAKQv///wCDIAxCFYd8IgpCCog8ABEgBCAKQgKIPAAQIAQgCkIGhiAMQoCA/gCDQg+IhDwADyAEIAlC////AIMgCkIVh3wiCUINiDwAFCAEIAlCBYg8ABMgBCAIQv///wCDIAlCFYd8Igg8ABUgBCAJQgOGIApCgIDwAINCEoiEPAASIAQgCEIIiDwAFiAEIAdC////AIMgCEIVh3wiB0ILiDwAGSAEIAdCA4g8ABggBCAIQhCIQh+DIAdCBYaEPAAXIAQgBkL///8AgyAHQhWHfCIGQgaIPAAbIAQgBkIChiAHQoCA4ACDQhOIhDwAGiAEIANC////AIMgBkIVh3wiA0IRiDwAHyAEIANCCYg8AB4gBCADQgGIPAAdIAQgA0IHhiAGQoCA/wCDQg6IhDwAHCBAQcAAEAcgPkHAABAHIAEEQCABQsAANwMACyA/QbAEaiQAQQAL2wEBA38jAEEQayIDIAA2AgwgAyABNgIIQQAhACADQQA6AAcCQCACRQ0AIAJBAXEhASACQQFHBEAgAkF+cSEEQQAhAgNAIAMgAy0AByADKAIMIABqLQAAIAMoAgggAGotAABzcjoAByADIAMtAAcgAEEBciIFIAMoAgxqLQAAIAMoAgggBWotAABzcjoAByAAQQJqIQAgAkECaiICIARHDQALCyABRQ0AIAMgAy0AByADKAIMIABqLQAAIAMoAgggAGotAABzcjoABwsgAy0AB0EBa0EIdkEBcUEBawsEAEEIC4MDAgN/An4jAEFAaiIDJAACQCACQcEAa0H/AXFBvwFLBEBBfyEEIAApAFBQBEAgACgA4AIiBUGBAU8EQCAAQUBrIgUgBSkAACIGQoABfDcAACAAIAApAEggBkL/flatfDcASCAAIABB4ABqIgQQKCAAIAAoAOACQYABayIFNgDgAiAFQYEBTw0DIAQgAEHgAWogBRALGiAAKADgAiEFCyAAQUBrIgQgBCkAACIGIAWtfCIHNwAAIAAgACkASCAGIAdWrXw3AEggAC0A5AIEQCAAQn83AFgLIABCfzcAUCAAQeAAaiIEIAVqQQBBgAIgBWsQCBogACAEECggAyAAKQAANwMAIAMgACkACDcDCCADIAApABA3AxAgAyAAKQAYNwMYIAMgACkAIDcDICADIAApACg3AyggAyAAKQAwNwMwIAMgACkAODcDOCABIAMgAhALGiAAQcAAEAcgBEGAAhAHQQAhBAsgA0FAayQAIAQPCxAJAAtBgApB9ghBsgJBvggQAQAL6RICFX4DfyAAIAAoACwiFkEFdkH///8Aca0gACgAPEEDdq0iAkKDoVZ+IAAzACogADEALEIQhkKAgPwAg4R8IghCgIBAfSIJQhWHfCIBQoOhVn4gADUAMUIHiEL///8AgyIDQtOMQ34gACgAFyIXQRh2rSAAMQAbQgiGhCAAMQAcQhCGhEICiEL///8Ag3wgACgANCIYQQR2Qf///wBxrSIEQuf2J358IBZBGHatIAAxADBCCIaEIAAxADFCEIaEQgKIQv///wCDIgVC0asIfnwgADUAOUIGiEL///8AgyIGQpPYKH58IBhBGHatIAAxADhCCIaEIAAxADlCEIaEQgGIQv///wCDIgpCmNocfnwiB3wgB0KAgEB9IhBCgICAf4N9IBdBBXZB////AHGtIANC5/YnfnwgBEKY2hx+fCAFQtOMQ358IApCk9gofnwgA0KY2hx+IAAzABUgADEAF0IQhkKAgPwAg4R8IARCk9gofnwgBULn9id+fCIHQoCAQH0iC0IViHwiDEKAgEB9Ig1CFYd8IhEgEUKAgEB9IhFCgICAf4N9IAwgAULRqwh+fCANQoCAgH+DfSAIIAlCgICAf4N9IAJC0asIfiAAKAAkIhZBGHatIAAxAChCCIaEIAAxAClCEIaEQgOIfCAGQoOhVn58IBZBBnZB////AHGtIAJC04xDfnwgBkLRqwh+fCAKQoOhVn58IgxCgIBAfSINQhWHfCIJQoCAQH0iDkIVh3wiCEKDoVZ+fCAHIAtCgICA////A4N9IANCk9gofiAAKAAPIhZBGHatIAAxABNCCIaEIAAxABRCEIaEQgOIfCAFQpjaHH58IBZBBnZB////AHGtIAVCk9gofnwiC0KAgEB9IhJCFYh8IgdCgIBAfSIPQhWIfCABQtOMQ358IAhC0asIfnwgCSAOQoCAgH+DfSIJQoOhVn58Ig5CgIBAfSITQhWHfCIUQoCAQH0iFUIVh3wgFCAVQoCAgH+DfSAOIBNCgICAf4N9IAcgD0KAgIB/g30gAULn9id+fCAIQtOMQ358IAlC0asIfnwgDCANQoCAgH+DfSAEQoOhVn4gACgAHyIWQRh2rSAAMQAjQgiGhCAAMQAkQhCGhEIBiEL///8Ag3wgAkLn9id+fCAGQtOMQ358IApC0asIfnwgFkEEdkH///8Aca0gA0KDoVZ+fCAEQtGrCH58IAJCmNocfnwgBkLn9id+fCAKQtOMQ358IgxCgIBAfSINQhWHfCIOQoCAQH0iD0IVh3wiB0KDoVZ+fCALIBJCgICA////AYN9IAFCmNocfnwgCELn9id+fCAJQtOMQ358IAdC0asIfnwgDiAPQoCAgH+DfSILQoOhVn58Ig5CgIBAfSISQhWHfCIPQoCAQH0iE0IVh3wgDyATQoCAgH+DfSAOIBJCgICAf4N9IAFCk9gofiAAKAAKIhZBGHatIAAxAA5CCIaEIAAxAA9CEIaEQgGIQv///wCDfCAIQpjaHH58IAlC5/YnfnwgB0LTjEN+fCALQtGrCH58IAwgDUKAgIB/g30gA0LRqwh+IAA1ABxCB4hC////AIN8IARC04xDfnwgBUKDoVZ+fCACQpPYKH58IAZCmNocfnwgCkLn9id+fCAQQhWHfCIBQoCAQH0iA0IVh3wiAkKDoVZ+fCAWQQR2Qf///wBxrSAIQpPYKH58IAlCmNocfnwgB0Ln9id+fCALQtOMQ358IAJC0asIfnwiBEKAgEB9IgVCFYd8IgZCgIBAfSIKQhWHfCAGIAEgA0KAgIB/g30gEUIVh3wiA0KAgEB9IghCFYciAUKDoVZ+fCAKQoCAgH+DfSABQtGrCH4gBHwgBUKAgIB/g30gCUKT2Ch+IAA1AAdCB4hC////AIN8IAdCmNocfnwgC0Ln9id+fCACQtOMQ358IAdCk9gofiAAKAACIhZBGHatIAAxAAZCCIaEIAAxAAdCEIaEQgKIQv///wCDfCALQpjaHH58IAJC5/YnfnwiBEKAgEB9IgVCFYd8IgZCgIBAfSIKQhWHfCAGIAFC04xDfnwgCkKAgIB/g30gAULn9id+IAR8IAVCgICAf4N9IBZBBXZB////AHGtIAtCk9gofnwgAkKY2hx+fCACQpPYKH4gADMAACAAMQACQhCGQoCA/ACDhHwiAkKAgEB9IgRCFYd8IgVCgIBAfSIGQhWHfCABQpjaHH4gBXwgBkKAgIB/g30gAiAEQoCAgH+DfSABQpPYKH58IgFCFYd8IgRCFYd8IgVCFYd8IgZCFYd8IgpCFYd8IglCFYd8IgdCFYd8IgtCFYd8IhBCFYd8IgxCFYd8Ig1CFYcgAyAIQoCAgH+DfXwiCEIVhyICQpPYKH4gAUL///8Ag3wiAzwAACAAIANCCIg8AAEgACACQpjaHH4gBEL///8Ag3wgA0IVh3wiAUILiDwABCAAIAFCA4g8AAMgACADQhCIQh+DIAFCBYaEPAACIAAgAkLn9id+IAVC////AIN8IAFCFYd8IgNCBog8AAYgACADQgKGIAFCgIDgAINCE4iEPAAFIAAgAkLTjEN+IAZC////AIN8IANCFYd8IgFCCYg8AAkgACABQgGIPAAIIAAgAUIHhiADQoCA/wCDQg6IhDwAByAAIAJC0asIfiAKQv///wCDfCABQhWHfCIDQgyIPAAMIAAgA0IEiDwACyAAIANCBIYgAUKAgPgAg0IRiIQ8AAogACACQoOhVn4gCUL///8Ag3wgA0IVh3wiAUIHiDwADiAAIAFCAYYgA0KAgMAAg0IUiIQ8AA0gACAHQv///wCDIAFCFYd8IgJCCog8ABEgACACQgKIPAAQIAAgAkIGhiABQoCA/gCDQg+IhDwADyAAIAtC////AIMgAkIVh3wiAUINiDwAFCAAIAFCBYg8ABMgACAQQv///wCDIAFCFYd8IgM8ABUgACABQgOGIAJCgIDwAINCEoiEPAASIAAgA0IIiDwAFiAAIAxC////AIMgA0IVh3wiAkILiDwAGSAAIAJCA4g8ABggACADQhCIQh+DIAJCBYaEPAAXIAAgDUL///8AgyACQhWHfCIBQgaIPAAbIAAgAUIChiACQoCA4ACDQhOIhDwAGiAAIAhC////AIMgAUIVh3wiAkIRiDwAHyAAIAJCCYg8AB4gACACQgGIPAAdIAAgAkIHhiABQoCA/wCDQg6IhDwAHAv4AQEKfwNAIAQgACADai0AACIBIANBkBNqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXEL4AkBHn8gASgCKCEDIAEoAgQhBCABKAIsIQUgASgCCCEGIAEoAjAhByABKAIMIQggASgCNCEJIAEoAhAhCiABKAI4IQsgASgCFCEMIAEoAjwhDSABKAIYIQ4gAUFAayIPKAIAIRAgASgCHCERIAEoAkQhEiABKAIgIRMgASgCSCEUIAEoAgAhFSAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA4gEGo2AhggACAMIA1qNgIUIAAgCiALajYCECAAIAggCWo2AgwgACAGIAdqNgIIIAAgBCAFajYCBCAAIAMgFWo2AgAgASgCKCEFIAEoAgQhAyABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIRAgDygCACEPIAEoAhwhBCABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAJMIAEoAiRrNgJMIAAgEyASazYCSCAAIBEgBGs2AkQgAEFAayIEIA8gEGs2AgAgACAOIA1rNgI8IAAgDCALazYCOCAAIAogCWs2AjQgACAIIAdrNgIwIAAgBiADazYCLCAAQShqIgMgBSAUazYCACAAQdAAaiAAIAIQBiADIAMgAkEoahAGIABB+ABqIAJB0ABqIAFB+ABqEAYgASgCUCEVIAEoAlQhFiABKAJYIRcgASgCXCEYIAEoAmAhGSABKAJkIRogASgCaCEbIAEoAmwhHCABKAJwIR0gASgCdCEeIAMoAgAhASAAKAJQIQIgACgCLCEFIAAoAlQhBiAAKAIwIQcgACgCWCEIIAAoAjQhCSAAKAJcIQogACgCOCELIAAoAmAhDCAAKAI8IQ0gACgCZCEOIAQoAgAhDyAAKAJoIRAgACgCRCERIAAoAmwhEiAAKAJIIRMgACgCcCEUIAAgACgCTCIfIAAoAnQiIGo2AkwgACATIBRqNgJIIAAgESASajYCRCAEIA8gEGo2AgAgACANIA5qNgI8IAAgCyAMajYCOCAAIAkgCmo2AjQgACAHIAhqNgIwIAAgBSAGajYCLCADIAEgAmo2AgAgACAgIB9rNgIkIAAgFCATazYCICAAIBIgEWs2AhwgACAQIA9rNgIYIAAgDiANazYCFCAAIAwgC2s2AhAgACAKIAlrNgIMIAAgCCAHazYCCCAAIAYgBWs2AgQgACACIAFrNgIAIAAgHkEBdCIBIAAoApwBIgJrNgKcASAAIB1BAXQiAyAAKAKYASIEazYCmAEgACAcQQF0IgUgACgClAEiBms2ApQBIAAgG0EBdCIHIAAoApABIghrNgKQASAAIBpBAXQiCSAAKAKMASIKazYCjAEgACAZQQF0IgsgACgCiAEiDGs2AogBIAAgGEEBdCINIAAoAoQBIg5rNgKEASAAIBdBAXQiDyAAKAKAASIQazYCgAEgACAWQQF0IhEgACgCfCISazYCfCAAIBVBAXQiEyAAKAJ4IhRrNgJ4IAAgAyAEajYCcCAAIAUgBmo2AmwgACAHIAhqNgJoIAAgCSAKajYCZCAAIAsgDGo2AmAgACANIA5qNgJcIAAgDyAQajYCWCAAIBEgEmo2AlQgACATIBRqNgJQIAAgASACajYCdAumBAIOfgp/IAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgAkIQWgRAIAAtAFBFQRh0IRYgACgCECIXrSEPIAAoAgwiGK0hDSAAKAIIIhmtIQsgACgCBCIarSEJIBpBBWytIRAgGUEFbK0hDiAYQQVsrSEMIBdBBWytIQogADUCACEIA0AgASgAA0ECdkH///8fcSAVaq0iAyANfiABKAAAQf///x9xIBFqrSIEIA9+fCABKAAGQQR2Qf///x9xIBRqrSIFIAt+fCABKAAJQQZ2IBNqrSIGIAl+fCASIBZqIAEoAAxBCHZqrSIHIAh+fCADIAt+IAQgDX58IAUgCX58IAYgCH58IAcgCn58IAMgCX4gBCALfnwgBSAIfnwgBiAKfnwgByAMfnwgAyAIfiAEIAl+fCAFIAp+fCAGIAx+fCAHIA5+fCADIAp+IAQgCH58IAUgDH58IAYgDn58IAcgEH58IgNCGohC/////w+DfCIEQhqIQv////8Pg3wiBUIaiEL/////D4N8IgZCGohC/////w+DfCIHQhqIp0EFbCADp0H///8fcWoiEUEadiAEp0H///8fcWohFSAFp0H///8fcSEUIAanQf///x9xIRMgB6dB////H3EhEiARQf///x9xIREgAUEQaiEBIAJCEH0iAkIPVg0ACwsgACARNgIUIAAgEjYCJCAAIBM2AiAgACAUNgIcIAAgFTYCGAutAwIMfwN+IAApAzgiDkIAUgRAIABBQGsiAiAOpyIDakEBOgAAIA5CAXxCD1gEQCAAIANqQcEAakEAQQ8gA2sQCBoLIABBAToAUCAAIAJCEBA5CyAANQI0IQ4gADUCMCEPIAA1AiwhECABIAAoAhQgACgCJCAAKAIgIAAoAhwgACgCGCIDQRp2aiICQRp2aiIGQRp2aiIJQRp2QQVsaiIEQf///x9xIgVBBWoiB0EadiADQf///x9xIARBGnZqIgRqIghBGnYgAkH///8fcSIKaiILQRp2IAZB////H3EiBmoiDEEadiAJQf///x9xaiINQYCAgCBrIgJBH3UiAyAEcSACQR92QQFrIgRB////H3EiAiAIcXIiCEEadCACIAdxIAMgBXFyciIFIAAoAihqIgc2AAAgASAFIAdLrSAQIAMgCnEgAiALcXIiBUEUdCAIQQZ2cq18fCIQPgAEIAEgDyADIAZxIAIgDHFyIgJBDnQgBUEMdnKtfCAQQiCIfCIPPgAIIAEgDiAEIA1xIAMgCXFyQQh0IAJBEnZyrXwgD0IgiHw+AAwgAEHYABAHC98EAgZ+AX8CQCAAKQM4IgNCAFIEQCAAQhAgA30iBCACIAIgBFYbIgRCAFIEfkIAIQMgBEIEWgRAIARCfIMhBSAAQUBrIQkDQCAJIAApAzggA3ynaiABIAOnai0AADoAACAJIANCAYQiCCAAKQM4fKdqIAEgCKdqLQAAOgAAIAkgA0IChCIIIAApAzh8p2ogASAIp2otAAA6AAAgCSADQgOEIgggACkDOHynaiABIAinai0AADoAACADQgR8IQMgBkIEfCIGIAVSDQALCyAEQgODIgZCAFIEQANAIAAgACkDOCADfKdqQUBrIAEgA6dqLQAAOgAAIANCAXwhAyAHQgF8IgcgBlINAAsLIAApAzgFIAMLIAR8IgM3AzggA0IQVA0BIAAgAEFAa0IQEDkgAEIANwM4IAIgBH0hAiABIASnaiEBCyACQhBaBEAgACABIAJCcIMiAxA5IAJCD4MhAiABIAOnaiEBCyACUA0AQgAhB0IAIQMgAkIEWgRAIAJCDIMhBCAAQUBrIQlCACEGA0AgCSAAKQM4IAN8p2ogASADp2otAAA6AAAgCSADQgGEIgUgACkDOHynaiABIAWnai0AADoAACAJIANCAoQiBSAAKQM4fKdqIAEgBadqLQAAOgAAIAkgA0IDhCIFIAApAzh8p2ogASAFp2otAAA6AAAgA0IEfCEDIAZCBHwiBiAEUg0ACwsgAkIDgyIEQgBSBEADQCAAIAApAzggA3ynakFAayABIAOnai0AADoAACADQgF8IQMgB0IBfCIHIARSDQALCyAAIAApAzggAnw3AzgLCwoAIAAgASACEEYLFgAgAUEgEBYgACABQcyQAigCABEBAAuzBAEUf0H0yoHZBiEDQbLaiMsHIQxB7siBmQMhDUHl8MGLBiEEIAEoAAwhDyABKAAIIQUgASgABCEGIAIoABwhEiACKAAYIRBBFCERIAIoABQhDiACKAAQIQggAigADCEJIAIoAAghCiACKAAEIQsgASgAACEBIAIoAAAhAgNAIBAgDyACIA1qQQd3cyIHIA1qQQl3cyITIAQgDmpBB3cgCXMiCSAEakEJdyAFcyIUIAlqQQ13IA5zIhUgAyAIakEHdyAKcyIKIANqQQl3IAZzIgYgCmpBDXcgCHMiCCAGakESdyADcyIDIBIgASAMakEHd3MiBWpBB3dzIg4gA2pBCXdzIhAgDmpBDXcgBXMiEiAQakESdyADcyEDIAUgBSAMakEJdyALcyILakENdyABcyIWIAtqQRJ3IAxzIgEgB2pBB3cgCHMiCCABakEJdyAUcyIFIAhqQQ13IAdzIg8gBWpBEncgAXMhDCATIAcgE2pBDXcgAnMiB2pBEncgDXMiAiAJakEHdyAWcyIBIAJqQQl3IAZzIgYgAWpBDXcgCXMiCSAGakESdyACcyENIBQgFWpBEncgBHMiBCAKakEHdyAHcyICIARqQQl3IAtzIgsgAmpBDXcgCnMiCiALakESdyAEcyEEIBFBAkshByARQQJrIREgBw0ACyAAIAQ2AAAgACAPNgAcIAAgBTYAGCAAIAY2ABQgACABNgAQIAAgAzYADCAAIAw2AAggACANNgAEQQALhwEBBH9BASEBA0AgACADaiICIAEgAi0AAGoiAToAACAAIANBAXJqIgIgAi0AACABQQh2aiIBOgAAIAAgA0ECcmoiAiACLQAAIAFBCHZqIgE6AAAgACADQQNyaiICIAItAAAgAUEIdmoiAToAACABQQh2IQEgA0EEaiEDIARBBGoiBEEERw0ACwugAgEDfyMAQeACayIIJAAgCEEgaiIKQsAAIAYgBxAXIAhB4ABqIgkgCkG8kAIoAgARAQAaIApBwAAQByAJIAQgBUHAkAIoAgARAAAaIAlBgIkCQgAgBX1CD4NBwJACKAIAEQAAGiAJIAEgAkHAkAIoAgARAAAaIAlBgIkCQgAgAn1CD4NBwJACKAIAEQAAGiAIIAU3AxggCSAIQRhqIgRCCEHAkAIoAgARAAAaIAggAjcDGCAJIARCCEHAkAIoAgARAAAaIAkgCEHEkAIoAgARAQAaIAlBgAIQByAIIAMQLSEEIAhBEBAHAkAgAEUNACAEBEAgAEEAIAKnEAgaQX8hBAwBCyAAIAEgAiAGQQEgBxAbQQAhBAsgCEHgAmokACAEC/UBAQN/IwBB4AJrIggkACAIQSBqIgpCwAAgBiAHQaSQAigCABEMABogCEHgAGoiCSAKQbyQAigCABEBABogCkHAABAHIAkgBCAFQcCQAigCABEAABogCCAFNwMYIAkgCEEYaiIEQghBwJACKAIAEQAAGiAJIAEgAkHAkAIoAgARAAAaIAggAjcDGCAJIARCCEHAkAIoAgARAAAaIAkgCEHEkAIoAgARAQAaIAlBgAIQByAIIAMQLSEEIAhBEBAHAkAgAEUNACAEBEAgAEEAIAKnEAgaQX8hBAwBCyAAIAEgAiAGIAcQTkEAIQQLIAhB4AJqJAAgBAv9AQEDfyMAQdACayIKJAAgCkEQaiILQsAAIAcgCBAXIApB0ABqIgkgC0G8kAIoAgARAQAaIAtBwAAQByAJIAUgBkHAkAIoAgARAAAaIAlBgIkCQgAgBn1CD4NBwJACKAIAEQAAGiAAIAMgBCAHQQEgCBAbIAkgACAEQcCQAigCABEAABogCUGAiQJCACAEfUIPg0HAkAIoAgARAAAaIAogBjcDCCAJIApBCGoiAEIIQcCQAigCABEAABogCiAENwMIIAkgAEIIQcCQAigCABEAABogCSABQcSQAigCABEBABogCUGAAhAHIAIEQCACQhA3AwALIApB0AJqJABBAAvSAQEDfyMAQdACayIJJAAgCUEQaiILQsAAIAcgCEGkkAIoAgARDAAaIAlB0ABqIgogC0G8kAIoAgARAQAaIAtBwAAQByAKIAUgBkHAkAIoAgARAAAaIAkgBjcDCCAKIAlBCGoiBUIIQcCQAigCABEAABogACADIAQgByAIEE4gCiAAIARBwJACKAIAEQAAGiAJIAQ3AwggCiAFQghBwJACKAIAEQAAGiAKIAFBxJACKAIAEQEAGiAKQYACEAcgAgRAIAJCEDcDAAsgCUHQAmokAEEACwQAQQMLBABBAQvIBAECfyMAQRBrIgMkACADQQA6AA9BfyEEIAAgASACQciQAigCABEDAEUEQCADIAAtAAAgAy0AD3I6AA8gAyAALQABIAMtAA9yOgAPIAMgAC0AAiADLQAPcjoADyADIAAtAAMgAy0AD3I6AA8gAyAALQAEIAMtAA9yOgAPIAMgAC0ABSADLQAPcjoADyADIAAtAAYgAy0AD3I6AA8gAyAALQAHIAMtAA9yOgAPIAMgAC0ACCADLQAPcjoADyADIAAtAAkgAy0AD3I6AA8gAyAALQAKIAMtAA9yOgAPIAMgAC0ACyADLQAPcjoADyADIAAtAAwgAy0AD3I6AA8gAyAALQANIAMtAA9yOgAPIAMgAC0ADiADLQAPcjoADyADIAAtAA8gAy0AD3I6AA8gAyAALQAQIAMtAA9yOgAPIAMgAC0AESADLQAPcjoADyADIAAtABIgAy0AD3I6AA8gAyAALQATIAMtAA9yOgAPIAMgAC0AFCADLQAPcjoADyADIAAtABUgAy0AD3I6AA8gAyAALQAWIAMtAA9yOgAPIAMgAC0AFyADLQAPcjoADyADIAAtABggAy0AD3I6AA8gAyAALQAZIAMtAA9yOgAPIAMgAC0AGiADLQAPcjoADyADIAAtABsgAy0AD3I6AA8gAyAALQAcIAMtAA9yOgAPIAMgAC0AHSADLQAPcjoADyADIAAtAB4gAy0AD3I6AA8gAyAALQAfIAMtAA9yOgAPIAMtAA9BF3RBgICABGtBH3UhBAsgA0EQaiQAIAQL8QQCCX8EfiMAQYABayIDJAAgAEEBNgIAIABCADcCBCAAQgA3AgwgAEIANwIUIABCADcCHCAAQoCAgIAQNwIkIABBLGpBAEHMABAIGiAAIAFBwAdsQZAVaiIBIAIgAkEfdSACcUEBdGsiBEEBc0H/AXFBAWtBH3YQESAAIAFB+ABqIARBAnNB/wFxQQFrQR92EBEgACABQfABaiAEQQNzQf8BcUEBa0EfdhARIAAgAUHoAmogBEEEc0H/AXFBAWtBH3YQESAAIAFB4ANqIARBBXNB/wFxQQFrQR92EBEgACABQdgEaiAEQQZzQf8BcUEBa0EfdhARIAAgAUHQBWogBEEHc0H/AXFBAWtBH3YQESAAIAFByAZqIARBCHNB/wFxQQFrQR92EBEgACkCKCEMIAApAjAhDSAAKQI4IQ4gAEFAaykCACEPIAMgACkCSDcDKCADIA83AyAgAyAONwMYIAMgDTcDECADIAw3AwggACkCCCEMIAApAhAhDSAAKQIYIQ4gACkCACEPIAMgACkCIDcDUCADIA43A0ggA0FAayANNwMAIAMgDDcDOCADIA83AzAgACgCUCEBIAAoAlQhBCAAKAJYIQUgACgCXCEGIAAoAmAhByAAKAJkIQggACgCaCEJIAAoAmwhCiAAKAJwIQsgA0EAIAAoAnRrNgJ8IANBACALazYCeCADQQAgCms2AnQgA0EAIAlrNgJwIANBACAIazYCbCADQQAgB2s2AmggA0EAIAZrNgJkIANBACAFazYCYCADQQAgBGs2AlwgA0EAIAFrNgJYIAAgA0EIaiACQYABcUEHdhARIANBgAFqJAAL8AkBHn8gASgCKCEDIAEoAgQhBCABKAIsIQUgASgCCCEGIAEoAjAhByABKAIMIQggASgCNCEJIAEoAhAhCiABKAI4IQsgASgCFCEMIAEoAjwhDSABKAIYIQ4gAUFAayIPKAIAIRAgASgCHCERIAEoAkQhEiABKAIgIRMgASgCSCEUIAEoAgAhFSAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA4gEGo2AhggACAMIA1qNgIUIAAgCiALajYCECAAIAggCWo2AgwgACAGIAdqNgIIIAAgBCAFajYCBCAAIAMgFWo2AgAgASgCKCEFIAEoAgQhAyABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIRAgDygCACEPIAEoAhwhBCABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAJMIAEoAiRrNgJMIAAgEyASazYCSCAAIBEgBGs2AkQgAEFAayIEIA8gEGs2AgAgACAOIA1rNgI8IAAgDCALazYCOCAAIAogCWs2AjQgACAIIAdrNgIwIAAgBiADazYCLCAAQShqIgMgBSAUazYCACAAQdAAaiAAIAJBKGoQBiADIAMgAhAGIABB+ABqIAJB+ABqIAFB+ABqEAYgACABQdAAaiACQdAAahAGIAAoAgQhFSAAKAIIIRYgACgCDCEXIAAoAhAhGCAAKAIUIRkgACgCGCEaIAAoAhwhGyAAKAIgIRwgACgCJCEdIAMoAgAhASAAKAJQIQIgACgCLCEFIAAoAlQhBiAAKAIwIQcgACgCWCEIIAAoAjQhCSAAKAJcIQogACgCOCELIAAoAmAhDCAAKAI8IQ0gACgCZCEOIAQoAgAhDyAAKAJoIRAgACgCRCERIAAoAmwhEiAAKAJIIRMgACgCcCEUIAAoAgAhHiAAIAAoAkwiHyAAKAJ0IiBqNgJMIAAgEyAUajYCSCAAIBEgEmo2AkQgBCAPIBBqNgIAIAAgDSAOajYCPCAAIAsgDGo2AjggACAJIApqNgI0IAAgByAIajYCMCAAIAUgBmo2AiwgAyABIAJqNgIAIAAgICAfazYCJCAAIBQgE2s2AiAgACASIBFrNgIcIAAgECAPazYCGCAAIA4gDWs2AhQgACAMIAtrNgIQIAAgCiAJazYCDCAAIAggB2s2AgggACAGIAVrNgIEIAAgAiABazYCACAAIAAoApwBIgEgHUEBdCICajYCnAEgACAAKAKYASIDIBxBAXQiBGo2ApgBIAAgACgClAEiBSAbQQF0IgZqNgKUASAAIAAoApABIgcgGkEBdCIIajYCkAEgACAAKAKMASIJIBlBAXQiCmo2AowBIAAgACgCiAEiCyAYQQF0IgxqNgKIASAAIAAoAoQBIg0gF0EBdCIOajYChAEgACAAKAKAASIPIBZBAXQiEGo2AoABIAAgACgCfCIRIBVBAXQiEmo2AnwgACAAKAJ4IhMgHkEBdCIUajYCeCAAIAQgA2s2AnAgACAGIAVrNgJsIAAgCCAHazYCaCAAIAogCWs2AmQgACAMIAtrNgJgIAAgDiANazYCXCAAIBAgD2s2AlggACASIBFrNgJUIAAgFCATazYCUCAAIAIgAWs2AnQLrQ4BF38jAEHAAmsiAyQAIABBKGoiCSABEEogAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgA0HwAWoiCCAJEAUgA0HAAWoiBiAIQcAKEAZBfyEKIAMgAygC8AFBAWsiCzYC8AEgAyADKALAAUEBajYCwAEgAygC9AEhDCADKAL4ASENIAMoAvwBIQ4gAygCgAIhDyADKAKEAiEQIAMoAogCIREgAygCjAIhEiADKAKQAiETIAMoApQCIRQgA0GQAWoiByAGEAUgByAHIAYQBiAAIAcQBSAAIAAgBhAGIAAgACAIEAYjAEGQAWsiBCQAIARB4ABqIgUgABAFIARBMGoiAiAFEAUgAiACEAUgAiAAIAIQBiAFIAUgAhAGIAUgBRAFIAUgAiAFEAYgAiAFEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgBSACIAUQBiACIAUQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIgBRAGIAQgAhAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAIgBCACEAYgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgBSACIAUQBiACIAUQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIgBRAGIAQgAhAFQQEhAgNAIAQgBBAFIAJBAWoiAkHkAEcNAAsgBEEwaiICIAQgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIARB4ABqIgUgAiAFEAYgBSAFEAUgBSAFEAUgACAFIAAQBiAEQZABaiQAIAAgACAHEAYgACAAIAgQBiADQeAAaiICIAAQBSACIAIgBhAGIAMgAygChAEiAiAUazYCVCADIAMoAoABIgQgE2s2AlAgAyADKAJ8IgUgEms2AkwgAyADKAJ4IgYgEWs2AkggAyADKAJ0IgcgEGs2AkQgAyADKAJwIgggD2s2AkAgAyADKAJsIhUgDms2AjwgAyADKAJoIhYgDWs2AjggAyADKAJkIhcgDGs2AjQgAyADKAJgIhggC2s2AjAgAyADQTBqEBICQCADQSAQH0UEQCADIAIgFGo2AiQgAyAEIBNqNgIgIAMgBSASajYCHCADIAYgEWo2AhggAyAHIBBqNgIUIAMgCCAPajYCECADIA4gFWo2AgwgAyANIBZqNgIIIAMgDCAXajYCBCADIAsgGGo2AgAgA0GgAmoiAiADEBIgAkEgEB9FDQEgACAAQfAKEAYLIANBoAJqIAAQEiADLQCgAkEBcSABLQAfQQd2RgRAIABBACAAKAIAazYCACAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBAsgAEH4AGogACAJEAZBACEKCyADQcACaiQAIAoL9AQBGX4gATEAHyECIAExAB4hBiABMQAdIQ4gATEABiEHIAExAAUhCCABMQAEIQMgATEACSEPIAExAAghECABMQAHIREgATEADCEJIAExAAshCiABMQAKIQsgATEADyEMIAExAA4hEiABMQANIRMgATEAHCEEIAExABshFCABMQAaIRUgATEAGSEFIAExABghFiABMQAXIRcgATUAACEYIAAgATEAFUIPhiABMQAUQgeGhCABMQAWQheGhCABNQAQIhlCgICACHwiGkIZiHwiDSANQoCAgBB8Ig1CgICA4A+DfT4CGCAAIBZCDYYgF0IFhoQgBUIVhoQiBSANQhqIfCAFQoCAgAh8IgVCgICA8AODfT4CHCAAIBRCDIYgFUIEhoQgBEIUhoQgBUIZiHwiBCAEQoCAgBB8IgRCgICA4A+DfT4CICAAIBkgGkKAgIDwD4N9IBJCCoYgE0IChoQgDEIShoQgCkILhiALQgOGhCAJQhOGhCIJQoCAgAh8IgpCGYh8IgtCgICAEHwiDEIaiHw+AhQgACALIAxCgICA4A+DfT4CECAAIBBCDYYgEUIFhoQgD0IVhoQgCEIOhiADQgaGhCAHQhaGhCIHQoCAgAh8IghCGYh8IgMgA0KAgIAQfCIDQoCAgOAPg30+AgggACACQhKGQoCA8A+DIAZCCoYgDkIChoSEIgIgBEIaiHwgAkKAgIAIfCICQoCAgBCDfT4CJCAAIANCGoggCXwgCkKAgIDwAIN9PgIMIAAgByAIQoCAgPAHg30gGCACQhmIQhN+fCICQoCAgBB8IgZCGoh8PgIEIAAgAiAGQoCAgOAPg30+AgALiwEBAX8jAEEQayICIAA2AgwgAiABNgIIQQAhACACQQA2AgQDQCACIAIoAgQgAigCDCAAai0AACACKAIIIABqLQAAc3I2AgQgAiACKAIEIABBAXIiASACKAIMai0AACACKAIIIAFqLQAAc3I2AgQgAEECaiIAQSBHDQALIAIoAgRBAWtBCHZBAXFBAWsLKQEBfyMAQRBrIgAkACAAQQA6AA9B/JACIABBD2pBABAAGiAAQRBqJAALKAAgAkKAgICAEFoEQBAJAAsgACABIAIgA0EBIARBsJACKAIAEQgAGgsoACACQoCAgIAQWgRAEAkACyAAIAEgAiADQgEgBEGskAIoAgARCQAaCy0BAX4gAq0gA61CIIaEIgZCEFoEfyAAIAFBEGogASAGQhB9IAQgBRAwBUF/CwsYACAAIAEgAiADrSAErUIghoQgBSAGEDALGAAgACABIAIgA60gBK1CIIaEIAUgBhAgC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFECENACAAIAFBEGogASACQhB9IAMgBhAwIQcgBkEgEAcLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQIUUEQCAAQRBqIAAgASACIAMgBhAgIQcgBkEgEAcLIAZBIGokACAHDwsQCQALNwEBfyMAQUBqIgIkACAAIAIQEyAAQdABaiIAIAJCwAAQDBogACABEBMgAkHAABAHIAJBQGskAAsLACAAIAEgAhAMGguEAwEGfyMAQcABayIEJAAgABAZIARBQGtBNkGAARAIGgNAIARBQGsiBSACaiIDIAMtAAAgASACai0AAHM6AAAgBSACQQFyIgNqIgYgBi0AACABIANqLQAAczoAACAFIAJBAnIiA2oiBiAGLQAAIAEgA2otAABzOgAAIAUgAkEDciIDaiIFIAUtAAAgASADai0AAHM6AAAgAkEEaiECIAdBBGoiB0EgRw0ACyAAIARBQGsiAkKAARAMGiAAQdABaiIFEBkgAkHcAEGAARAIGkEAIQJBACEHA0AgBEFAayIAIAJqIgMgAy0AACABIAJqLQAAczoAACAAIAJBAXIiA2oiBiAGLQAAIAEgA2otAABzOgAAIAAgAkECciIDaiIGIAYtAAAgASADai0AAHM6AAAgACACQQNyIgNqIgAgAC0AACABIANqLQAAczoAACACQQRqIQIgB0EEaiIHQSBHDQALIAUgBEFAayIAQoABEAwaIABBgAEQByAEQcAAEAcgBEHAAWokAAvVAgECfyMAQZADayIIJAAgCEEANgIEIAhBEGoiCSAGIAcQJyAIIAYpABA3AgggCEHQAGoiB0LAACAIQQRqIAkQFyAIQZABaiIGIAdBvJACKAIAEQEAGiAHQcAAEAcgBiAEIAVBwJACKAIAEQAAGiAGQYCQAkIAIAV9Qg+DQcCQAigCABEAABogBiABIAJBwJACKAIAEQAAGiAGQYCQAkIAIAJ9Qg+DQcCQAigCABEAABogCCAFNwNIIAYgCEHIAGoiBEIIQcCQAigCABEAABogCCACNwNIIAYgBEIIQcCQAigCABEAABogBiAIQTBqIgRBxJACKAIAEQEAGiAGQYACEAcgBCADEC0hBiAEQRAQBwJAIABFDQAgBgRAIABBACACpxAIGkF/IQYMAQsgACABIAIgCEEEaiAIQRBqEE1BACEGCyAIQRBqQSAQByAIQZADaiQAIAYLpwIBA38jAEGAA2siCSQAIAlBADYCBCAJQRBqIgogByAIECcgCSAHKQAQNwIIIAlBQGsiCELAACAJQQRqIgsgChAXIAlBgAFqIgcgCEG8kAIoAgARAQAaIAhBwAAQByAHIAUgBkHAkAIoAgARAAAaIAdBgJACQgAgBn1CD4NBwJACKAIAEQAAGiAAIAMgBCALIAoQTSAHIAAgBEHAkAIoAgARAAAaIAdBgJACQgAgBH1CD4NBwJACKAIAEQAAGiAJIAY3AzggByAJQThqIgBCCEHAkAIoAgARAAAaIAkgBDcDOCAHIABCCEHAkAIoAgARAAAaIAcgAUHEkAIoAgARAQAaIAdBgAIQByACBEAgAkIQNwMACyAJQRBqQSAQByAJQYADaiQAQQALygUCBX8CfkF/IQYCQCABQcEAa0FASQ0AIAVBwABLDQACfyABQf8BcSEGIAVB/wFxIQUjACIBIQkgAUGABGtBQHEiASQAAkAgAkUgA0IAUnENACAARQ0AIAZBwQBrQf8BcUG/AU0NACAEQQEgBRtFDQAgBUHBAE8NAAJ/IAUEQCAERQ0CIAFBQGtBAEGlAhAIGiABQvnC+JuRo7Pw2wA3AzggAULr+obav7X2wR83AzAgAUKf2PnZwpHagpt/NwMoIAFC0YWa7/rPlIfRADcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgBq0gBa1CCIaEQoiS95X/zPmE6gCFNwMAIAFBgANqIgcgBWpBAEGAASAFaxAIGiAHIAQgBRALGiABQeAAaiAHQYABEAsaIAFBgAE2AuACIAdBgAEQB0GAAQwBCyABQUBrQQBBpQIQCBogAUL5wvibkaOz8NsANwM4IAFC6/qG2r+19sEfNwMwIAFCn9j52cKR2oKbfzcDKCABQtGFmu/6z5SH0QA3AyAgAULx7fT4paf9p6V/NwMYIAFCq/DT9K/uvLc8NwMQIAFCu86qptjQ67O7fzcDCCABIAatQoiS95X/zPmE6gCFNwMAQQALIQQCQCADUA0AIAFB4AFqIQogAUHgAGohBQNAIAQgBWohCEGAAiAEayIHrSILIANaBEAgCCACIAOnIgIQCxogASABKALgAiACajYC4AIMAgsgCCACIAcQCxogASABKALgAiAHajYC4AIgASABKQNAIgxCgAF8NwNAIAEgASkDSCAMQv9+Vq18NwNIIAEgBRAoIAUgCkGAARALGiABIAEoAuACQYABayIENgLgAiACIAdqIQIgAyALfSIDQgBSDQALCyABIAAgBhA1GiAJJABBAAwBCxAJAAshBgsgBgu2AQIBfwN+IwBBoAFrIgMkACABIAJCIBAYGiABIAEtAABB+AFxOgAAIAEgAS0AH0E/cUHAAHI6AB8gAyABECogACADECsgAikACCEEIAIpABAhBSACKQAAIQYgASACKQAYNwAYIAEgBTcAECABIAQ3AAggASAGNwAAIAApAAghBCAAKQAQIQUgACkAACEGIAEgACkAGDcAOCABIAU3ADAgASAENwAoIAEgBjcAICADQaABaiQAQQALBQBBv38LBQBB0AELbQEBfyMAQUBqIgIkACACIAFCIBAYGiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQByACQUBrJABBAAvXFAIPfyd+IwBBgAJrIgMkAEF/IRACQCABEDcNACADQeAAaiABEEkNACMAQYAQayICJAAgAkGABWoiCiADQeAAaiIBEA0gASkCCCERIAEpAhAhEiABKQIYIRMgASkCACEUIAIgASkCIDcD4AIgAiATNwPYAiACIBI3A9ACIAIgETcDyAIgAiAUNwPAAiABKQIoIREgASkCMCESIAEpAjghEyABQUBrKQIAIRQgAiABKQJINwOIAyACIBQ3A4ADIAIgEzcD+AIgAiASNwPwAiACIBE3A+gCIAEpAlAhESABKQJYIRIgASkCYCETIAEpAmghFCACIAEpAnA3A7ADIAIgFDcDqAMgAiATNwOgAyACIBI3A5gDIAIgETcDkAMgAkHgA2oiASACQcACaiIHEBUgAkGgAWoiCCABIAJB2ARqIgUQBiACQcgBaiACQYgEaiIGIAJBsARqIgQQBiACQfABaiAEIAUQBiACQZgCaiABIAYQBiABIAggChAOIAcgASAFEAYgAkHoAmoiCiAGIAQQBiACQZADaiILIAQgBRAGIAJBuANqIgwgASAGEAYgAkGgBmoiCSAHEA0gASAIIAkQDiAHIAEgBRAGIAogBiAEEAYgCyAEIAUQBiAMIAEgBhAGIAJBwAdqIgkgBxANIAEgCCAJEA4gByABIAUQBiAKIAYgBBAGIAsgBCAFEAYgDCABIAYQBiACQeAIaiIJIAcQDSABIAggCRAOIAcgASAFEAYgCiAGIAQQBiALIAQgBRAGIAwgASAGEAYgAkGACmoiCSAHEA0gASAIIAkQDiAHIAEgBRAGIAogBiAEEAYgCyAEIAUQBiAMIAEgBhAGIAJBoAtqIgkgBxANIAEgCCAJEA4gByABIAUQBiAKIAYgBBAGIAsgBCAFEAYgDCABIAYQBiACQcAMaiIJIAcQDSABIAggCRAOIAcgASAFEAYgCiAGIAQQBiALIAQgBRAGIAwgASAGEAYgAkHgDWogBxANIAJCADcDICACQgA3AxggAkIANwMQIAJCADcDCCACQgA3AiwgAkIANwI0IAJCADcCPCACQgA3AkQgAkKAgICAEDcCTCACQgA3AwAgAkEBNgIoIAJB1ABqQQBBzAAQCBogAkH4AGohCSACQdAAaiEOIAJBKGohD0H8ASEBA0AgAiACKQMgNwOoDyACIAIpAxg3A6APIAIgAikDEDcDmA8gAiACKQMINwOQDyACIAIpAwA3A4gPIAIgAikDSDcD0A8gAiACKQNANwPIDyACIAIpAzg3A8APIAIgAikDMDcDuA8gAiACKQMoNwOwDyACIAIpA1A3A9gPIAIgAikDWDcD4A8gAiACKQNgNwPoDyACIAIpA2g3A/APIAIgAikDcDcD+A8gASIHQZCFAmosAAAhASACQeADaiACQYgPahAVAkAgAUEASgRAIAJBwAJqIg0gAkHgA2oiCCAFEAYgCiAGIAQQBiALIAQgBRAGIAwgCCAGEAYgCCANIAJBgAVqIAFB/gFxQQF2QaABbGoQDgwBCyABQQBODQAgAkHAAmoiDSACQeADaiIIIAUQBiAKIAYgBBAGIAsgBCAFEAYgDCAIIAYQBiAIIA0gAkGABWpBACABa0H+AXFBAXZBoAFsahBICyACIAJB4ANqIgEgBRAGIA8gBiAEEAYgDiAEIAUQBiAJIAEgBhAGIAdBAWshASAHDQALIAJBgAVqIgEgAhASIAFBIBAfIQEgAkGAEGokACABRQ0AIANBASADKAKIASIEazYCAEEAIRAgA0EAIAMoAqwBIgFrNgIkIANBACADKAKoASIKazYCICADQQAgAygCpAEiB2s2AhwgA0EAIAMoAqABIgtrNgIYIANBACADKAKcASICazYCFCADQQAgAygCmAEiDGs2AhAgA0EAIAMoApQBIgVrNgIMIANBACADKAKQASIIazYCCCADQQAgAygCjAEiBms2AgQgAyADECwgAyADKAIEIgmsIhkgAkEBdKwiIn4gAzQCACIRIAusIhJ+fCADKAIIIgusIhsgDKwiE358IAMoAgwiDKwiHiAFQQF0rCIjfnwgAygCECIOrCIfIAisIhR+fCADKAIUIgisIiQgBkEBdKwiJX58IAMoAhgiD6wiLiAEQQFqrCIXfnwgAygCHCIEQRNsrCIaIAFBAXSsIiZ+fCADKAIgIg1BE2ysIhUgCqwiGH58IAMoAiQiCkETbKwiFiAHQQF0rCInfnwgEyAZfiARIAKsIih+fCAbIAWsIil+fCAUIB5+fCAfIAasIip+fCAXICR+fCAPQRNsrCIcIAGsIit+fCAYIBp+fCAVIAesIix+fCASIBZ+fCAZICN+IBEgE358IBQgG358IB4gJX58IBcgH358IAhBE2ysIi0gJn58IBggHH58IBogJ358IBIgFX58IBYgIn58IjBCgICAEHwiMUIah3wiMkKAgIAIfCIzQhmHfCIgICBCgICAEHwiIUKAgIDgD4N9PgJIIAMgGSAlfiARIBR+fCAXIBt+fCAMQRNsrCIdICZ+fCAOQRNsrCIgIBh+fCAnIC1+fCASIBx+fCAaICJ+fCATIBV+fCAWICN+fCAXIBl+IBEgKn58IAtBE2ysIi8gK358IBggHX58ICAgLH58IBIgLX58IBwgKH58IBMgGn58IBUgKX58IBQgFn58IAlBE2ysICZ+IBEgF358IBggL358IB0gJ358IBIgIH58ICIgLX58IBMgHH58IBogI358IBQgFX58IBYgJX58Ii9CgICAEHwiNEIah3wiNUKAgIAIfCI2QhmHfCIdIB1CgICAEHwiN0KAgIDgD4N9PgI4IAMgEiAZfiARICx+fCAbICh+fCATIB5+fCAfICl+fCAUICR+fCAqIC5+fCAErCIdIBd+fCAVICt+fCAWIBh+fCAhQhqHfCIhICFCgICACHwiIUKAgIDwD4N9PgJMIAMgFCAZfiARICl+fCAbICp+fCAXIB5+fCAgICt+fCAYIC1+fCAcICx+fCASIBp+fCAVICh+fCATIBZ+fCA3QhqHfCIVIBVCgICACHwiFUKAgIDwD4N9PgI8IAMgGSAnfiARIBh+fCASIBt+fCAeICJ+fCATIB9+fCAjICR+fCAUIC5+fCAdICV+fCANrCIaIBd+fCAWICZ+fCAhQhmHfCIWIBZCgICAEHwiFkKAgIDgD4N9PgJQIAMgMiAzQoCAgPAPg30gMCAxQoCAgGCDfSAVQhmHfCIVQoCAgBB8IhxCGoh8PgJEIAMgFSAcQoCAgOAPg30+AkAgAyAYIBl+IBEgK358IBsgLH58IBIgHn58IB8gKH58IBMgJH58ICkgLn58IBQgHX58IBogKn58IAqsIBd+fCAWQhqHfCIRIBFCgICACHwiEUKAgIDwD4N9PgJUIAMgNSA2QoCAgPAPg30gLyA0QoCAgGCDfSARQhmHQhN+fCIRQoCAgBB8IhJCGoh8PgI0IAMgESASQoCAgOAPg30+AjAgACADQTBqEBILIANBgAJqJAAgEAsEAEEMCwQAQQILBABBbgsEAEERCwQAQTQLnwECAX8BfiMAQTBrIgEkACABIAApABg3AxggASAAKQAQNwMQIAEgACkAADcDACABIAApAAg3AwggASAAKQAkNwMgIAEgAUIoIABBIGpBACAAQbCQAigCABEIABogACABKQMYNwAYIAAgASkDEDcAECAAIAEpAwg3AAggACABKQMANwAAIAEpAyAhAiAAQQE2ACAgACACNwAkIAFBMGokAAsqAQF+IAAgASACECcgAEEBNgAgIAEpABAhAyAAQgA3ACwgACADNwAkQQALMAEBfiABQRgQFiAAIAEgAhAnIABBATYAICABKQAQIQMgAEIANwAsIAAgAzcAJEEACyQAQeSaAigCAAR/QQEFEExB0JoCQRAQFkHkmgJBATYCAEEACwvqBAEFfyMAQfAAayIGJAAgAkIAUgRAIAYgBSkAGDcDGCAGIAUpABA3AxAgBiAFKQAANwMAIAYgBSkACDcDCCAGIAMpAAA3A2AgBiAEPABoIAYgBEI4iDwAbyAGIARCMIg8AG4gBiAEQiiIPABtIAYgBEIgiDwAbCAGIARCGIg8AGsgBiAEQhCIPABqIAYgBEIIiDwAaQJAIAJCwABaBEADQEEAIQUgBkEgaiAGQeAAaiAGECkDQCAAIAVqIAZBIGoiByAFai0AACABIAVqLQAAczoAACAAIAVBAXIiA2ogAyAHai0AACABIANqLQAAczoAACAFQQJqIgVBwABHDQALIAYgBi0AaEEBaiIDOgBoIAYgBi0AaSADQQh2aiIDOgBpIAYgBi0AaiADQQh2aiIDOgBqIAYgBi0AayADQQh2aiIDOgBrIAYgBi0AbCADQQh2aiIDOgBsIAYgBi0AbSADQQh2aiIDOgBtIAYgBi0AbiADQQh2aiIDOgBuIAYgBi0AbyADQQh2ajoAbyABQUBrIQEgAEFAayEAIAJCQHwiAkI/Vg0ACyACUA0BC0EAIQUgBkEgaiAGQeAAaiAGECkgAqciA0EBcSEIIANBAUcEQCADQX5xIQlBACEDA0AgACAFaiAGQSBqIgogBWotAAAgASAFai0AAHM6AAAgACAFQQFyIgdqIAcgCmotAAAgASAHai0AAHM6AAAgBUECaiEFIANBAmoiAyAJRw0ACwsgCEUNACAAIAVqIAZBIGogBWotAAAgASAFai0AAHM6AAALIAZBIGpBwAAQByAGQSAQBwsgBkHwAGokAEEAC4IEAgZ/AX4jAEHwAGsiBCQAIAFCAFIEQCAEIAMpABg3AxggBCADKQAQNwMQIAQgAykAADcDACAEIAMpAAg3AwggAikAACEKIARCADcDaCAEIAo3A2ACQCABQsAAWgRAA0AgACAEQeAAaiAEECkgBCAELQBoQQFqIgI6AGggBCAELQBpIAJBCHZqIgI6AGkgBCAELQBqIAJBCHZqIgI6AGogBCAELQBrIAJBCHZqIgI6AGsgBCAELQBsIAJBCHZqIgI6AGwgBCAELQBtIAJBCHZqIgI6AG0gBCAELQBuIAJBCHZqIgI6AG4gBCAELQBvIAJBCHZqOgBvIABBQGshACABQkB8IgFCP1YNAAsgAVANAQtBACECIARBIGogBEHgAGogBBApIAGnIgVBA3EhB0EAIQMgBUEBa0EDTwRAIAVBfHEhCEEAIQUDQCAAIANqIARBIGoiCSADai0AADoAACAAIANBAXIiBmogBiAJai0AADoAACAAIANBAnIiBmogBEEgaiAGai0AADoAACAAIANBA3IiBmogBEEgaiAGai0AADoAACADQQRqIQMgBUEEaiIFIAhHDQALCyAHRQ0AA0AgACADaiAEQSBqIANqLQAAOgAAIANBAWohAyACQQFqIgIgB0cNAAsLIARBIGpBwAAQByAEQSAQBwsgBEHwAGokAEEAC4YGARR/IwBBsAJrIgIkACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAAIAEtABg6ABggACABLQAZOgAZIAAgAS0AGjoAGiAAIAEtABs6ABsgACABLQAcOgAcIAAgAS0AHToAHSAAIAEtAB46AB4gAS0AHyEBIAAgAC0AAEH4AXE6AAAgACABQT9xQcAAcjoAHyACQTBqIAAQKiACKAKEASEBIAIoAlwhAyACKAKIASEEIAIoAmAhBSACKAKMASEGIAIoAmQhByACKAKQASEIIAIoAmghCSACKAKUASEKIAIoAmwhCyACKAKYASEMIAIoAnAhDSACKAKcASEOIAIoAnQhDyACKAKgASEQIAIoAnghESACKAKAASESIAIoAlghEyACIAIoAnwiFCACKAKkASIVajYCpAIgAiAQIBFqNgKgAiACIA4gD2o2ApwCIAIgDCANajYCmAIgAiAKIAtqNgKUAiACIAggCWo2ApACIAIgBiAHajYCjAIgAiAEIAVqNgKIAiACIAEgA2o2AoQCIAIgEiATajYCgAIgAiAVIBRrNgL0ASACIBAgEWs2AvABIAIgDiAPazYC7AEgAiAMIA1rNgLoASACIAogC2s2AuQBIAIgCCAJazYC4AEgAiAGIAdrNgLcASACIAQgBWs2AtgBIAIgASADazYC1AEgAiASIBNrNgLQASACQdABaiIBIAEQLCACIAJBgAJqIAEQBiAAIAIQEiACQbACaiQAQQAL+RwCPX8MfiMAQfACayIDJAADQCACIAZqLQAAIgQgBkGQhwJqIgktAABzIAdyIQcgBCAJLQDAAXMgBXIhBSAEIAktAKABcyAMciEMIAQgCS0AgAFzIAhyIQggBCAJLQBgcyANciENIAQgCUFAay0AAHMgC3IhCyAEIAktACBzIApyIQogBkEBaiIGQR9HDQALQX8hCSACLQAfQf8AcSIEIApyQf8BcUEBayAEIAdyQf8BcUEBa3IgBCALckH/AXFBAWtyIARB1wBzIA1yQf8BcUEBa3IgBEH/AHMiBCAIckH/AXFBAWtyIAQgDHJB/wFxQQFrciAEIAVyQf8BcUEBa3JBgAJxRQRAIAMgASkAGDcD6AIgAyABKQAQNwPgAiADIAEpAAAiQjcD0AIgAyABKQAINwPYAiADIEKnQfgBcToA0AIgAyADLQDvAkE/cUHAAHI6AO8CIANBoAJqIAIQSiADQgA3AoQCIANCADcCjAIgA0EANgKUAiADQgA3A9ABIANCADcD2AEgA0IANwPgASADQgA3AvQBIANBATYC8AEgA0IANwL8ASADQgA3A8ABIANCADcDyAEgAyADKQO4AjcDqAEgAyADKQOwAjcDoAEgAyADKQOoAjcDmAEgAyADKQOgAjcDkAEgAyADKQPAAjcDsAEgA0IANwJ0IANCADcCfCADQQA2AoQBIANCADcCZCADQQE2AmAgA0IANwJsQf4BIQJBACEEA0AgAygClAIhCSADKAK0ASEGIAMoAmAhByADKALAASEKIAMoApABIQsgAygC8AEhDSADKAJkIQggAygCxAEhDCADKAKUASEFIAMoAvQBIRAgAygCaCEOIAMoAsgBIREgAygCmAEhEiADKAL4ASETIAMoAmwhDyADKALMASEUIAMoApwBIRUgAygC/AEhFiADKAJwIRggAygC0AEhHCADKAKgASEdIAMoAoACIR4gAygCdCEaIAMoAtQBIR8gAygCpAEhICADKAKEAiEhIAMoAnghGSADKALYASEiIAMoAqgBISMgAygCiAIhJCADKAJ8IRsgAygC3AEhJSADKAKsASEmIAMoAowCIScgAygCgAEhFyADKALgASEoIAMoArABISkgAygCkAIhLCADQQAgBCADQdACaiACIgFBA3ZqLQAAIAJBB3F2QQFxIgRzayICIAMoAoQBIiogAygC5AEiK3NxIi0gKnMiKjYChAEgAyAGIAYgCXMgAnEiLnMiLyAqazYCVCADIBcgFyAocyACcSIwcyIGNgKAASADICkgKSAscyACcSIXcyIpIAZrNgJQIAMgGyAbICVzIAJxIjFzIhs2AnwgAyAmICYgJ3MgAnEiMnMiJiAbazYCTCADIBkgGSAicyACcSIzcyIZNgJ4IAMgIyAjICRzIAJxIjRzIiMgGWs2AkggAyAaIBogH3MgAnEiNXMiGjYCdCADICAgICAhcyACcSI2cyIgIBprNgJEIAMgGCAYIBxzIAJxIjdzIhg2AnAgAyAdIB0gHnMgAnEiOHMiHSAYazYCQCADIA8gDyAUcyACcSI5cyIPNgJsIAMgFSAVIBZzIAJxIjpzIhUgD2s2AjwgAyAOIA4gEXMgAnEiO3MiDjYCaCADIBIgEiATcyACcSI8cyISIA5rNgI4IAMgCCAIIAxzIAJxIj1zIgg2AmQgAyAFIAUgEHMgAnEiPnMiBSAIazYCNCADIAcgByAKcyACcSI/cyIHNgJgIAMgCyALIA1zIAJxIgJzIgsgB2s2AjAgAyAJIC5zIgkgKyAtcyIrazYCJCADIBcgLHMiFyAoIDBzIihrNgIgIAMgJyAycyInICUgMXMiJWs2AhwgAyAkIDRzIiQgIiAzcyIiazYCGCADICEgNnMiISAfIDVzIh9rNgIUIAMgHiA4cyIeIBwgN3MiHGs2AhAgAyAWIDpzIhYgFCA5cyIUazYCDCADIBMgPHMiEyARIDtzIhFrNgIIIAMgECA+cyIQIAwgPXMiDGs2AgQgAyACIA1zIgIgCiA/cyIKazYCACADIAkgK2o2ApQCIAMgFyAoajYCkAIgAyAlICdqNgKMAiADICIgJGo2AogCIAMgHyAhajYChAIgAyAcIB5qNgKAAiADIBEgE2o2AvgBIAMgDCAQajYC9AEgAyACIApqNgLwASADIBQgFmo2AvwBIAMgKiAvajYC5AEgAyAGIClqNgLgASADIBsgJmo2AtwBIAMgGSAjajYC2AEgAyAaICBqNgLUASADIBggHWo2AtABIAMgDyAVajYCzAEgAyAOIBJqNgLIASADIAUgCGo2AsQBIAMgByALajYCwAEgA0HgAGoiGyADQTBqIhogA0HwAWoiGRAGIANBwAFqIhcgFyADEAYgGiADEAUgAyAZEAUgAygCwAEhAiADKAJgIQkgAygCxAEhBiADKAJkIQcgAygCyAEhCiADKAJoIQsgAygCzAEhDSADKAJsIQggAygC0AEhDCADKAJwIQUgAygC1AEhECADKAJ0IQ4gAygC2AEhESADKAJ4IRIgAygC3AEhEyADKAJ8IQ8gAygC4AEhFCADKAKAASEVIAMgAygC5AEiFiADKAKEASIYajYCtAEgAyAUIBVqNgKwASADIA8gE2o2AqwBIAMgESASajYCqAEgAyAOIBBqNgKkASADIAUgDGo2AqABIAMgCCANajYCnAEgAyAKIAtqNgKYASADIAYgB2o2ApQBIAMgAiAJajYCkAEgAyAYIBZrNgLkASADIBUgFGs2AuABIAMgDyATazYC3AEgAyASIBFrNgLYASADIA4gEGs2AtQBIAMgBSAMazYC0AEgAyAIIA1rNgLMASADIAsgCms2AsgBIAMgByAGazYCxAEgAyAJIAJrNgLAASAZIAMgGhAGIAMoAjQhAiADKAIEIQUgAygCOCEJIAMoAgghECADKAJAIQYgAygCECEOIAMoAjwhByADKAIMIREgAygCSCEKIAMoAhghEiADKAJEIQsgAygCFCETIAMoAlAhDSADKAIgIQ8gAygCTCEIIAMoAhwhFCADKAJUIQwgAygCJCEVIAMgAygCACADKAIwIhZrIhg2AgAgAyAVIAxrIhU2AiQgAyAUIAhrIhQ2AhwgAyAPIA1rIg82AiAgAyATIAtrIhM2AhQgAyASIAprIhI2AhggAyARIAdrIhE2AgwgAyAOIAZrIg42AhAgAyAQIAlrIhA2AgggAyAFIAJrIgU2AgQgFyAXEAUgAyAVrELCtgd+IkJCgICACHwiRkIZh0ITfiAYrELCtgd+fCJAIEBCgICAEHwiQEKAgIDgD4N9pyIVNgJgIAMgBaxCwrYHfiJBIEFCgICACHwiQUKAgIDwD4N9IEBCGoh8pyIFNgJkIAMgEKxCwrYHfiBBQhmHfCJAIEBCgICAEHwiQEKAgIDgD4N9pyIQNgJoIAMgDqxCwrYHfiARrELCtgd+IkFCgICACHwiR0IZh3wiQyBDQoCAgBB8IkNCgICA4A+DfaciDjYCcCADIBKsQsK2B34gE6xCwrYHfiJIQoCAgAh8IklCGYd8IkQgREKAgIAQfCJEQoCAgOAPg32nIhE2AnggAyAPrELCtgd+IBSsQsK2B34iSkKAgIAIfCJLQhmHfCJFIEVCgICAEHwiRUKAgIDgD4N9pyISNgKAASADIEBCGoggQXwgR0KAgIDwD4N9pyITNgJsIAMgQ0IaiCBIfCBJQoCAgPAPg32nIg82AnQgAyBEQhqIIEp8IEtCgICA8A+DfaciFDYCfCADIEVCGoggQnwgRkKAgIDwD4N9pyIYNgKEASADQZABaiIZIBkQBSADIAwgGGo2AlQgAyANIBJqNgJQIAMgCCAUajYCTCADIAogEWo2AkggAyALIA9qNgJEIAMgBiAOajYCQCADIAcgE2o2AjwgAyAJIBBqNgI4IAMgAiAFajYCNCADIBUgFmo2AjAgAUEBayECIBsgA0GgAmogFxAGIBcgAyAaEAYgAQ0ACyADKAKQASEQIAMoAvABIQIgAygClAEhDiADKAL0ASEGIAMoApgBIREgAygC+AEhByADKAKcASESIAMoAvwBIQogAygCoAEhEyADKAKAAiELIAMoAqQBIQ8gAygChAIhDSADKAKoASEUIAMoAogCIQggAygCrAEhFSADKAKMAiEMIAMoArABIRYgAygCkAIhBSADQQAgBGsiASADKAKUAiIEIAMoArQBc3EgBHM2ApQCIAMgBSAFIBZzIAFxczYCkAIgAyAMIAwgFXMgAXFzNgKMAiADIAggCCAUcyABcXM2AogCIAMgDSANIA9zIAFxczYChAIgAyALIAsgE3MgAXFzNgKAAiADIAogCiAScyABcXM2AvwBIAMgByAHIBFzIAFxczYC+AEgAyAGIAYgDnMgAXFzNgL0ASADIAIgAiAQcyABcXM2AvABIAMoAsABIQIgAygCYCEFIAMoAsQBIQQgAygCZCEQIAMoAsgBIQYgAygCaCEOIAMoAswBIQcgAygCbCERIAMoAtABIQogAygCcCESIAMoAtQBIQsgAygCdCETIAMoAtgBIQ0gAygCeCEPIAMoAtwBIQggAygCfCEUIAMoAuABIQwgAygCgAEhFSADIAMoAuQBIhYgAygChAFzIAFxIBZzNgLkASADIAwgDCAVcyABcXM2AuABIAMgCCAIIBRzIAFxczYC3AEgAyANIA0gD3MgAXFzNgLYASADIAsgCyATcyABcXM2AtQBIAMgCiAKIBJzIAFxczYC0AEgAyAHIAcgEXMgAXFzNgLMASADIAYgBiAOcyABcXM2AsgBIAMgBCAEIBBzIAFxczYCxAEgAyACIAIgBXMgAXFzNgLAASADQcABaiIBIAEQLCADQfABaiICIAIgARAGIAAgAhASIANB0AJqQSAQB0EAIQkLIANB8AJqJAAgCQuJDAEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAiACKAIAIgFrIgJB5JYCKAIASQ0BIAAgAWohAEHolgIoAgAgAkcEQCABQf8BTQRAIAIoAggiBCABQQN2IgFBA3RB/JYCakYaIAQgAigCDCIDRgRAQdSWAkHUlgIoAgBBfiABd3E2AgAMAwsgBCADNgIMIAMgBDYCCAwCCyACKAIYIQYCQCACIAIoAgwiAUcEQCACKAIIIgMgATYCDCABIAM2AggMAQsCQCACQRRqIgQoAgAiAw0AIAJBEGoiBCgCACIDDQBBACEBDAELA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAsgBkUNAQJAIAIoAhwiBEECdEGEmQJqIgMoAgAgAkYEQCADIAE2AgAgAQ0BQdiWAkHYlgIoAgBBfiAEd3E2AgAMAwsgBkEQQRQgBigCECACRhtqIAE2AgAgAUUNAgsgASAGNgIYIAIoAhAiAwRAIAEgAzYCECADIAE2AhgLIAIoAhQiA0UNASABIAM2AhQgAyABNgIYDAELIAUoAgQiAUEDcUEDRw0AQdyWAiAANgIAIAUgAUF+cTYCBCACIABBAXI2AgQgACACaiAANgIADwsgAiAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEBB7JYCKAIAIAVGBEBB7JYCIAI2AgBB4JYCQeCWAigCACAAaiIANgIAIAIgAEEBcjYCBCACQeiWAigCAEcNA0HclgJBADYCAEHolgJBADYCAA8LQeiWAigCACAFRgRAQeiWAiACNgIAQdyWAkHclgIoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgQgAUEDdiIBQQN0QfyWAmpGGiAEIAUoAgwiA0YEQEHUlgJB1JYCKAIAQX4gAXdxNgIADAILIAQgAzYCDCADIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgFHBEAgBSgCCCIDQeSWAigCAEkaIAMgATYCDCABIAM2AggMAQsCQCAFQRRqIgQoAgAiAw0AIAVBEGoiBCgCACIDDQBBACEBDAELA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAsgBkUNAAJAIAUoAhwiBEECdEGEmQJqIgMoAgAgBUYEQCADIAE2AgAgAQ0BQdiWAkHYlgIoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAwRAIAEgAzYCECADIAE2AhgLIAUoAhQiA0UNACABIAM2AhQgAyABNgIYCyACIABBAXI2AgQgACACaiAANgIAIAJB6JYCKAIARw0BQdyWAiAANgIADwsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgALIABB/wFNBEAgAEF4cUH8lgJqIQECf0HUlgIoAgAiA0EBIABBA3Z0IgBxRQRAQdSWAiAAIANyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQQgAEH///8HTQRAIABBJiAAQQh2ZyIBa3ZBAXEgAUEBdGtBPmohBAsgAiAENgIcIAJCADcCECAEQQJ0QYSZAmohBwJAAkACQEHYlgIoAgAiA0EBIAR0IgFxRQRAQdiWAiABIANyNgIAIAcgAjYCACACIAc2AhgMAQsgAEEZIARBAXZrQQAgBEEfRxt0IQQgBygCACEBA0AgASIDKAIEQXhxIABGDQIgBEEddiEBIARBAXQhBCADIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAI2AhAgAiADNgIYCyACIAI2AgwgAiACNgIIDAELIAMoAggiACACNgIMIAMgAjYCCCACQQA2AhggAiADNgIMIAIgADYCCAtB9JYCQfSWAigCAEEBayIAQX8gABs2AgALC60pAQt/IwBBEGsiCyQAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBB1JYCKAIAIgZBECAAQQtqQXhxIABBC0kbIgVBA3YiAHYiAUEDcQRAAkAgAUF/c0EBcSAAaiICQQN0IgFB/JYCaiIAIAFBhJcCaigCACIBKAIIIgRGBEBB1JYCIAZBfiACd3E2AgAMAQsgBCAANgIMIAAgBDYCCAsgAUEIaiEAIAEgAkEDdCICQQNyNgIEIAEgAmoiASABKAIEQQFyNgIEDAoLIAVB3JYCKAIAIgdNDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxIgBBACAAa3FoIgFBA3QiAEH8lgJqIgIgAEGElwJqKAIAIgAoAggiBEYEQEHUlgIgBkF+IAF3cSIGNgIADAELIAQgAjYCDCACIAQ2AggLIAAgBUEDcjYCBCAAIAVqIgggAUEDdCIBIAVrIgRBAXI2AgQgACABaiAENgIAIAcEQCAHQXhxQfyWAmohAUHolgIoAgAhAgJ/IAZBASAHQQN2dCIDcUUEQEHUlgIgAyAGcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQBB6JYCIAg2AgBB3JYCIAQ2AgAMCgtB2JYCKAIAIgpFDQEgCkEAIAprcWhBAnRBhJkCaigCACICKAIEQXhxIAVrIQMgAiEBA0ACQCABKAIQIgBFBEAgASgCFCIARQ0BCyAAKAIEQXhxIAVrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAELCyACKAIYIQkgAiACKAIMIgRHBEAgAigCCCIAQeSWAigCAEkaIAAgBDYCDCAEIAA2AggMCQsgAkEUaiIBKAIAIgBFBEAgAigCECIARQ0DIAJBEGohAQsDQCABIQggACIEQRRqIgEoAgAiAA0AIARBEGohASAEKAIQIgANAAsgCEEANgIADAgLQX8hBSAAQb9/Sw0AIABBC2oiAEF4cSEFQdiWAigCACIIRQ0AQQAgBWshAwJAAkACQAJ/QQAgBUGAAkkNABpBHyAFQf///wdLDQAaIAVBJiAAQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgdBAnRBhJkCaigCACIBRQRAQQAhAAwBC0EAIQAgBUEZIAdBAXZrQQAgB0EfRxt0IQIDQAJAIAEoAgRBeHEgBWsiBiADTw0AIAEhBCAGIgMNAEEAIQMgASEADAMLIAAgASgCFCIGIAYgASACQR12QQRxaigCECIBRhsgACAGGyEAIAJBAXQhAiABDQALCyAAIARyRQRAQQAhBEECIAd0IgBBACAAa3IgCHEiAEUNAyAAQQAgAGtxaEECdEGEmQJqKAIAIQALIABFDQELA0AgACgCBEF4cSAFayICIANJIQEgAiADIAEbIQMgACAEIAEbIQQgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgBEUNACADQdyWAigCACAFa08NACAEKAIYIQcgBCAEKAIMIgJHBEAgBCgCCCIAQeSWAigCAEkaIAAgAjYCDCACIAA2AggMBwsgBEEUaiIBKAIAIgBFBEAgBCgCECIARQ0DIARBEGohAQsDQCABIQYgACICQRRqIgEoAgAiAA0AIAJBEGohASACKAIQIgANAAsgBkEANgIADAYLIAVB3JYCKAIAIgRNBEBB6JYCKAIAIQACQCAEIAVrIgFBEE8EQCAAIAVqIgIgAUEBcjYCBCAAIARqIAE2AgAgACAFQQNyNgIEDAELIAAgBEEDcjYCBCAAIARqIgEgASgCBEEBcjYCBEEAIQJBACEBC0HclgIgATYCAEHolgIgAjYCACAAQQhqIQAMCAsgBUHglgIoAgAiAkkEQEHglgIgAiAFayIBNgIAQeyWAkHslgIoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAgLQQAhACAFQS9qIgMCf0GsmgIoAgAEQEG0mgIoAgAMAQtBuJoCQn83AgBBsJoCQoCggICAgAQ3AgBBrJoCIAtBDGpBcHFB2KrVqgVzNgIAQcCaAkEANgIAQZCaAkEANgIAQYAgCyIBaiIGQQAgAWsiCHEiASAFTQ0HQYyaAigCACIEBEBBhJoCKAIAIgcgAWoiCSAHTQ0IIAQgCUkNCAsCQEGQmgItAABBBHFFBEACQAJAAkACQEHslgIoAgAiBARAQZSaAiEAA0AgBCAAKAIAIgdPBEAgByAAKAIEaiAESw0DCyAAKAIIIgANAAsLQQAQHCICQX9GDQMgASEGQbCaAigCACIAQQFrIgQgAnEEQCABIAJrIAIgBGpBACAAa3FqIQYLIAUgBk8NA0GMmgIoAgAiAARAQYSaAigCACIEIAZqIgggBE0NBCAAIAhJDQQLIAYQHCIAIAJHDQEMBQsgBiACayAIcSIGEBwiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAYgBUEwak8EQCAAIQIMBAtBtJoCKAIAIgIgAyAGa2pBACACa3EiAhAcQX9GDQEgAiAGaiEGIAAhAgwDCyACQX9HDQILQZCaAkGQmgIoAgBBBHI2AgALIAEQHCECQQAQHCEAIAJBf0YNBSAAQX9GDQUgACACTQ0FIAAgAmsiBiAFQShqTQ0FC0GEmgJBhJoCKAIAIAZqIgA2AgBBiJoCKAIAIABJBEBBiJoCIAA2AgALAkBB7JYCKAIAIgMEQEGUmgIhAANAIAIgACgCACIBIAAoAgQiBGpGDQIgACgCCCIADQALDAQLQeSWAigCACIAQQAgACACTRtFBEBB5JYCIAI2AgALQQAhAEGYmgIgBjYCAEGUmgIgAjYCAEH0lgJBfzYCAEH4lgJBrJoCKAIANgIAQaCaAkEANgIAA0AgAEEDdCIBQYSXAmogAUH8lgJqIgQ2AgAgAUGIlwJqIAQ2AgAgAEEBaiIAQSBHDQALQeCWAiAGQShrIgBBeCACa0EHcUEAIAJBCGpBB3EbIgFrIgQ2AgBB7JYCIAEgAmoiATYCACABIARBAXI2AgQgACACakEoNgIEQfCWAkG8mgIoAgA2AgAMBAsgAC0ADEEIcQ0CIAEgA0sNAiACIANNDQIgACAEIAZqNgIEQeyWAiADQXggA2tBB3FBACADQQhqQQdxGyIAaiIBNgIAQeCWAkHglgIoAgAgBmoiAiAAayIANgIAIAEgAEEBcjYCBCACIANqQSg2AgRB8JYCQbyaAigCADYCAAwDC0EAIQQMBQtBACECDAMLQeSWAigCACACSwRAQeSWAiACNgIACyACIAZqIQFBlJoCIQACQAJAAkACQAJAAkADQCABIAAoAgBHBEAgACgCCCIADQEMAgsLIAAtAAxBCHFFDQELQZSaAiEAA0AgAyAAKAIAIgFPBEAgASAAKAIEaiIEIANLDQMLIAAoAgghAAwACwALIAAgAjYCACAAIAAoAgQgBmo2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgcgBUEDcjYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiBiAFIAdqIgVrIQAgAyAGRgRAQeyWAiAFNgIAQeCWAkHglgIoAgAgAGoiADYCACAFIABBAXI2AgQMAwtB6JYCKAIAIAZGBEBB6JYCIAU2AgBB3JYCQdyWAigCACAAaiIANgIAIAUgAEEBcjYCBCAAIAVqIAA2AgAMAwsgBigCBCIDQQNxQQFGBEAgA0F4cSEJAkAgA0H/AU0EQCAGKAIIIgEgA0EDdiIEQQN0QfyWAmpGGiABIAYoAgwiAkYEQEHUlgJB1JYCKAIAQX4gBHdxNgIADAILIAEgAjYCDCACIAE2AggMAQsgBigCGCEIAkAgBiAGKAIMIgJHBEAgBigCCCIBIAI2AgwgAiABNgIIDAELAkAgBkEUaiIDKAIAIgENACAGQRBqIgMoAgAiAQ0AQQAhAgwBCwNAIAMhBCABIgJBFGoiAygCACIBDQAgAkEQaiEDIAIoAhAiAQ0ACyAEQQA2AgALIAhFDQACQCAGKAIcIgFBAnRBhJkCaiIEKAIAIAZGBEAgBCACNgIAIAINAUHYlgJB2JYCKAIAQX4gAXdxNgIADAILIAhBEEEUIAgoAhAgBkYbaiACNgIAIAJFDQELIAIgCDYCGCAGKAIQIgEEQCACIAE2AhAgASACNgIYCyAGKAIUIgFFDQAgAiABNgIUIAEgAjYCGAsgBiAJaiIGKAIEIQMgACAJaiEACyAGIANBfnE2AgQgBSAAQQFyNgIEIAAgBWogADYCACAAQf8BTQRAIABBeHFB/JYCaiEBAn9B1JYCKAIAIgJBASAAQQN2dCIAcUUEQEHUlgIgACACcjYCACABDAELIAEoAggLIQAgASAFNgIIIAAgBTYCDCAFIAE2AgwgBSAANgIIDAMLQR8hAyAAQf///wdNBEAgAEEmIABBCHZnIgFrdkEBcSABQQF0a0E+aiEDCyAFIAM2AhwgBUIANwIQIANBAnRBhJkCaiEBAkBB2JYCKAIAIgJBASADdCIEcUUEQEHYlgIgAiAEcjYCACABIAU2AgAMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACECA0AgAiIBKAIEQXhxIABGDQMgA0EddiECIANBAXQhAyABIAJBBHFqIgQoAhAiAg0ACyAEIAU2AhALIAUgATYCGCAFIAU2AgwgBSAFNgIIDAILQeCWAiAGQShrIgBBeCACa0EHcUEAIAJBCGpBB3EbIgFrIgg2AgBB7JYCIAEgAmoiATYCACABIAhBAXI2AgQgACACakEoNgIEQfCWAkG8mgIoAgA2AgAgAyAEQScgBGtBB3FBACAEQSdrQQdxG2pBL2siACAAIANBEGpJGyIBQRs2AgQgAUGcmgIpAgA3AhAgAUGUmgIpAgA3AghBnJoCIAFBCGo2AgBBmJoCIAY2AgBBlJoCIAI2AgBBoJoCQQA2AgAgAUEYaiEAA0AgAEEHNgIEIABBCGohAiAAQQRqIQAgAiAESQ0ACyABIANGDQMgASABKAIEQX5xNgIEIAMgASADayICQQFyNgIEIAEgAjYCACACQf8BTQRAIAJBeHFB/JYCaiEAAn9B1JYCKAIAIgFBASACQQN2dCICcUUEQEHUlgIgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAQLQR8hACACQf///wdNBEAgAkEmIAJBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyADIAA2AhwgA0IANwIQIABBAnRBhJkCaiEBAkBB2JYCKAIAIgRBASAAdCIGcUUEQEHYlgIgBCAGcjYCACABIAM2AgAMAQsgAkEZIABBAXZrQQAgAEEfRxt0IQAgASgCACEEA0AgBCIBKAIEQXhxIAJGDQQgAEEddiEEIABBAXQhACABIARBBHFqIgYoAhAiBA0ACyAGIAM2AhALIAMgATYCGCADIAM2AgwgAyADNgIIDAMLIAEoAggiACAFNgIMIAEgBTYCCCAFQQA2AhggBSABNgIMIAUgADYCCAsgB0EIaiEADAULIAEoAggiACADNgIMIAEgAzYCCCADQQA2AhggAyABNgIMIAMgADYCCAtB4JYCKAIAIgAgBU0NAEHglgIgACAFayIBNgIAQeyWAkHslgIoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAMLQdCWAkEwNgIAQQAhAAwCCwJAIAdFDQACQCAEKAIcIgBBAnRBhJkCaiIBKAIAIARGBEAgASACNgIAIAINAUHYlgIgCEF+IAB3cSIINgIADAILIAdBEEEUIAcoAhAgBEYbaiACNgIAIAJFDQELIAIgBzYCGCAEKAIQIgAEQCACIAA2AhAgACACNgIYCyAEKAIUIgBFDQAgAiAANgIUIAAgAjYCGAsCQCADQQ9NBEAgBCADIAVqIgBBA3I2AgQgACAEaiIAIAAoAgRBAXI2AgQMAQsgBCAFQQNyNgIEIAQgBWoiAiADQQFyNgIEIAIgA2ogAzYCACADQf8BTQRAIANBeHFB/JYCaiEAAn9B1JYCKAIAIgFBASADQQN2dCIDcUUEQEHUlgIgASADcjYCACAADAELIAAoAggLIQEgACACNgIIIAEgAjYCDCACIAA2AgwgAiABNgIIDAELQR8hACADQf///wdNBEAgA0EmIANBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyACIAA2AhwgAkIANwIQIABBAnRBhJkCaiEBAkACQCAIQQEgAHQiBnFFBEBB2JYCIAYgCHI2AgAgASACNgIADAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAEoAgAhBQNAIAUiASgCBEF4cSADRg0CIABBHXYhBiAAQQF0IQAgASAGQQRxaiIGKAIQIgUNAAsgBiACNgIQCyACIAE2AhggAiACNgIMIAIgAjYCCAwBCyABKAIIIgAgAjYCDCABIAI2AgggAkEANgIYIAIgATYCDCACIAA2AggLIARBCGohAAwBCwJAIAlFDQACQCACKAIcIgBBAnRBhJkCaiIBKAIAIAJGBEAgASAENgIAIAQNAUHYlgIgCkF+IAB3cTYCAAwCCyAJQRBBFCAJKAIQIAJGG2ogBDYCACAERQ0BCyAEIAk2AhggAigCECIABEAgBCAANgIQIAAgBDYCGAsgAigCFCIARQ0AIAQgADYCFCAAIAQ2AhgLAkAgA0EPTQRAIAIgAyAFaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDAELIAIgBUEDcjYCBCACIAVqIgQgA0EBcjYCBCADIARqIAM2AgAgBwRAIAdBeHFB/JYCaiEAQeiWAigCACEBAn9BASAHQQN2dCIFIAZxRQRAQdSWAiAFIAZyNgIAIAAMAQsgACgCCAshBiAAIAE2AgggBiABNgIMIAEgADYCDCABIAY2AggLQeiWAiAENgIAQdyWAiADNgIACyACQQhqIQALIAtBEGokACAACwoAIAAgARA6QQALDAAgACABIAIQO0EAC7QBAQF/IAAgASgAAEH///8fcTYCACAAIAEoAANBAnZBg/7/H3E2AgQgACABKAAGQQR2Qf+B/x9xNgIIIAAgASgACUEGdkH//8AfcTYCDCABKAAMIQIgAEIANwIUIABCADcCHCAAQQA2AiQgACACQQh2Qf//P3E2AhAgACABKAAQNgIoIAAgASgAFDYCLCAAIAEoABg2AjAgASgAHCEBIABBADoAUCAAQgA3AzggACABNgI0QQAL6AEBA38jACIFQcABa0FAcSIEJAAgBCADKAAAQf///x9xNgJAIAQgAygAA0ECdkGD/v8fcTYCRCAEIAMoAAZBBHZB/4H/H3E2AkggBCADKAAJQQZ2Qf//wB9xNgJMIAMoAAwhBiAEQgA3AlQgBEIANwJcIARBADYCZCAEIAZBCHZB//8/cTYCUCAEIAMoABA2AmggBCADKAAUNgJsIAQgAygAGDYCcCADKAAcIQMgBEEAOgCQASAEQgA3A3ggBCADNgJ0IARBQGsiAyABIAIQOyADIARBMGoiARA6IAAgARAtIQAgBSQAIAAL1QEBA38jACIFQYABa0FAcSIEJAAgBCADKAAAQf///x9xNgIAIAQgAygAA0ECdkGD/v8fcTYCBCAEIAMoAAZBBHZB/4H/H3E2AgggBCADKAAJQQZ2Qf//wB9xNgIMIAMoAAwhBiAEQgA3AhQgBEIANwIcIARBADYCJCAEIAZBCHZB//8/cTYCECAEIAMoABA2AiggBCADKAAUNgIsIAQgAygAGDYCMCADKAAcIQMgBEEAOgBQIARCADcDOCAEIAM2AjQgBCABIAIQOyAEIAAQOiAFJABBAAsmAQJ/AkBB4JoCKAIAIgBFDQAgACgCFCIARQ0AIAARAgAhAQsgAQsOACAAIAGtQYAIIAIQFwtNAQN/IwBBEGsiAiQAIABBAk8EQEEAIABrIABwIQEDQCACQQA6AA9B2JACIAJBD2pBABAAIgMgAUkNAAsgAyAAcCEBCyACQRBqJAAgAQssAQJ/IwBBEGsiACQAIABBADoAD0HYkAIgAEEPakEAEAAhASAAQRBqJAAgAQtzAgJ/AX4CQCMAQRBrIgQkACABrSACrUIghoQiBUKAgICAEFQEQCAFpyIBBEADQCAEQQA6AA8gACADakHYkAIgBEEPakEAEAA6AAAgA0EBaiIDIAFHDQALCyAEQRBqJAAMAQtB2AlBzAhBxQFBjAgQAQALCxIAIAAgASACrSADrUIghoQQDAsWACAAIAEgAq0gA61CIIaEIARBABAxCxsAIAAgASACIAOtIAStQiCGhCAFQQAQMhpBAAuKAQEBfgJ/AkACQAJAIAOtIAStQiCGhCIGQsAAVA0AIAZCQHwiBkK/////D1YNACACIAJBQGsiAyAGIAVBABAxRQ0BIABFDQAgAEEAIAanEAgaC0F/IQIgAUUNASABQgA3AwBBfwwCCyABBEAgASAGNwMAC0EAIQIgAEUNACAAIAMgBqcQJBoLIAILC3wCAn8BfiMAQRBrIgYkACAAIAZBCGogAEFAayACIAOtIAStQiCGhCIIpyICECQgCCAFQQAQMhoCQCAGKQMIQsAAUgRAIAEEQCABQgA3AwALIABBACACQUBrEAgaQX8hBwwBCyABRQ0AIAEgCEJAfTcDAAsgBkEQaiQAIAcL+gUBCX4gBCkAACIFQvXKzYPXrNu38wCFIQkgBULh5JXz1uzZvOwAhSEGIAQpAAgiBULt3pHzlszct+QAhSELIAVC88rRy6eM2bL0AIUhByABIAEgAq0gA61CIIaEIgynIgJqIAJBB3EiA2siAkcEQANAIAYgASkAACINIAeFIgh8IgcgCSALfCIJIAtCDYmFIgV8IgogBUIRiYUiBkINiSAGIAhCEIkgB4UiByAJQiCJfCIFfCIJhSIGQhGJIAYgB0IViSAFhSIHIApCIIl8IgV8IgaFIQsgB0IQiSAFhSIFQhWJIAUgCUIgiXwiBYUhByAGQiCJIQYgBSANhSEJIAFBCGoiASACRw0ACyACIQELIAxCOIYhCAJAAkACQAJAAkACQAJAAkAgA0EBaw4HBgUEAwIBAAcLIAExAAZCMIYgCIQhCAsgATEABUIohiAIhCEICyABMQAEQiCGIAiEIQgLIAExAANCGIYgCIQhCAsgATEAAkIQhiAIhCEICyABMQABQgiGIAiEIQgLIAggATEAAIQhCAsgACAHIAiFIgVCEIkgBSAGfCIKhSIFQhWJIAUgCSALfCIGQiCJfCIJhSIFQhCJIAUgCiAGIAtCDYmFIgd8IgZCIIl8IgqFIgVCFYkgBSAJIAYgB0IRiYUiB3wiBkIgiXwiCYUiBUIQiSAKIAdCDYkgBoUiB3wiBkIgiUL/AYUgBXwiCoUiBUIViSAHQhGJIAaFIgcgCCAJhXwiBkIgiSAFfCIJhSIFQhCJIAYgB0INiYUiByAKfCIGQiCJIAV8IgqFIgVCFYkgB0IRiSAGhSIHIAl8IgZCIIkgBXwiCYUiBUIQiSAHQg2JIAaFIgcgCnwiBkIgiSAFfCIKhSIFQhWJIAUgB0IRiSAGhSIHIAl8IgVCIIl8IgmFIgZCEIkgBiAHQg2JIAWFIgcgCnwiBUIgiXwiBoVCFYkgB0IRiSAFhSIFQg2JIAUgCXyFIgVCEYmFIAUgBnwiBUIgiYUgBYU3AABBAAuzBgIDfgF/An8gBa0gBq1CIIaEIQogCK0gCa1CIIaEIQwjAEGQA2siBSQAIAIEQCACQgA3AwALIAMEQCADQf8BOgAAC0F/IQ0CQAJAIApCEVQNACAKQhF9IgtC7////w9aDQEgBUEgaiIIQsAAIABBIGoiCSAAEBcgBUHgAGoiBiAIQbyQAigCABEBABogCEHAABAHIAYgByAMQcCQAigCABEAABogBkHwiAJCACAMfUIPg0HAkAIoAgARAAAaIAVCADcDWCAFQgA3A1AgBUIANwNIIAVBQGtCADcDACAFQgA3AzggBUIANwMwIAVCADcDKCAFQgA3AyAgBSAELQAAOgAgIAggCELAACAJQQEgABAbIAUtACAhByAFIAQtAAA6ACAgBiAIQsAAQcCQAigCABEAABogBiAEQQFqIgQgC0HAkAIoAgARAAAaIAZB8IgCIApCAX1CD4NBwJACKAIAEQAAGiAFIAw3AxggBiAFQRhqIghCCEHAkAIoAgARAAAaIAUgCkIvfDcDGCAGIAhCCEHAkAIoAgARAAAaIAYgBUHEkAIoAgARAQAaIAZBgAIQByAFIAQgC6dqQRAQMwRAIAVBEBAHDAELIAEgBCALIAlBAiAAEBsgACAALQAkIAUtAABzOgAkIAAgAC0AJSAFLQABczoAJSAAIAAtACYgBS0AAnM6ACYgACAALQAnIAUtAANzOgAnIAAgAC0AKCAFLQAEczoAKCAAIAAtACkgBS0ABXM6ACkgACAALQAqIAUtAAZzOgAqIAAgAC0AKyAFLQAHczoAKyAJED8CQCAHQQJxRQRAIAlBBBAfRQ0BCyAFIAApABg3A/gCIAUgACkAEDcD8AIgBSAAKQAANwPgAiAFIAApAAg3A+gCIAUgACkAJDcDgAMgBUHgAmoiASABQiggCUEAIABBsJACKAIAEQgAGiAAIAUpA/gCNwAYIAAgBSkD8AI3ABAgACAFKQPoAjcACCAAIAUpA+ACNwAAIAUpA4ADIQogAEEBNgAgIAAgCjcAJAsgAgRAIAIgCzcDAAtBACENIANFDQAgAyAHOgAACyAFQZADaiQAIA0MAQsQCQALC+QFAQJ+An8gBK0gBa1CIIaEIQogB60gCK1CIIaEIQsjAEGAA2siBCQAIAIEQCACQgA3AwALIApC7////w9UBEAgBEEQaiIHQsAAIABBIGoiCCAAEBcgBEHQAGoiBSAHQbyQAigCABEBABogB0HAABAHIAUgBiALQcCQAigCABEAABogBUHwiAJCACALfUIPg0HAkAIoAgARAAAaIARCADcDSCAEQUBrQgA3AwAgBEIANwM4IARCADcDMCAEQgA3AyggBEIANwMgIARCADcDECAEQgA3AxggBCAJOgAQIAcgB0LAACAIQQEgABAbIAUgB0LAAEHAkAIoAgARAAAaIAEgBC0AEDoAACABQQFqIgEgAyAKIAhBAiAAEBsgBSABIApBwJACKAIAEQAAGiAFQfCIAiAKQg+DQcCQAigCABEAABogBCALNwMIIAUgBEEIaiIDQghBwJACKAIAEQAAGiAEIApCQH03AwggBSADQghBwJACKAIAEQAAGiAFIAEgCqdqIgFBxJACKAIAEQEAGiAFQYACEAcgACAALQAkIAEtAABzOgAkIAAgAC0AJSABLQABczoAJSAAIAAtACYgAS0AAnM6ACYgACAALQAnIAEtAANzOgAnIAAgAC0AKCABLQAEczoAKCAAIAAtACkgAS0ABXM6ACkgACAALQAqIAEtAAZzOgAqIAAgAC0AKyABLQAHczoAKyAIED8CQCAJQQJxRQRAIAhBBBAfRQ0BCyAEIAApABg3A+gCIAQgACkAEDcD4AIgBCAAKQAANwPQAiAEIAApAAg3A9gCIAQgACkAJDcD8AIgBEHQAmoiASABQiggCEEAIABBsJACKAIAEQgAGiAAIAQpA+gCNwAYIAAgBCkD4AI3ABAgACAEKQPYAjcACCAAIAQpA9ACNwAAIAQpA/ACIQsgAEEBNgAgIAAgCzcAJAsgAgRAIAIgCkIRfDcDAAsgBEGAA2okAEEADAELEAkACwsxAQF+IAKtIAOtQiCGhCIGQvD///8PWgRAEAkACyAAQRBqIAAgASAGIAQgBRAgGkEAC4YEAgF/BH4jAEEgayIGJAAgBCkAACEHIAZCADcDGCAGIAc3AxAgBkIANwMIIAYgAq0gA61CIIaENwMAAn8gAUHBAGtBTk0EQEHQlgJBHDYCAEF/DAELIAFBwQBrQUBPBH8CfyAGQRBqIQIgAUH/AXEhAyMAIgEhBCABQYAEa0FAcSIBJAACQCAARQ0AIANBwQBrQf8BcUG/AU0NACAFRQ0AIAVFDQACfiAGRQRAQp/Y+dnCkdqCm38hB0LRhZrv+s+Uh9EADAELIAYpAAhCn9j52cKR2oKbf4UhByAGKQAAQtGFmu/6z5SH0QCFCyEJAn4gAkUEQEL5wvibkaOz8NsAIQhC6/qG2r+19sEfDAELIAIpAAhC+cL4m5Gjs/DbAIUhCCACKQAAQuv6htq/tfbBH4ULIQogAUFAa0EAQaUCEAgaIAEgCDcDOCABIAo3AzAgASAHNwMoIAEgCTcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgA61CgMAAhEKIkveV/8z5hOoAhTcDACABQYADaiICQSBqQQBB4AAQCBogAiAFQSAQCxogAUHgAGogAkGAARALGiABQYABNgLgAiACQYABEAcgASAAIAMQNRogBCQAQQAMAQsQCQALBUF/CwshACAGQSBqJAAgAAsSACAAIAEgAq0gA61CIIaEEBgLEgAgACABIAKtIAOtQiCGhBAPCxgAIAAgASACIAOtIAStQiCGhCAFIAYQWQt7AgN/AX4jACIGIQggBkHAA2tBQHEiBiQAQX8hByACrSADrUIghoQiCUIwWgRAIAZBQGsiAkEAQQBBGBAjGiACIAFCIBAPGiACIARCIBAPGiACIAZBIGoiAkEYECIaIAAgAUEgaiAJQiB9IAIgASAFEFIhBwsgCCQAIAcLyAECA38BfiACrSADrUIghoQhCCMAIgIhBiACQYAEa0FAcSICJABBfyEDIAJBQGsgAkEgahA9RQRAIAJBgAFqIgNBAEEAQRgQIxogAyACQUBrIgdCIBAPGiADIARCIBAPGiADIAJB4ABqIgVBGBAiGiAAQSBqIAEgCCAFIAQgAkEgaiIBEFMhAyAAIAIpA1g3ABggACACKQNQNwAQIAAgAikDSDcACCAAIAIpA0A3AAAgAUEgEAcgB0EgEAcgBUEYEAcLIAYkACADCxgAIAAgASACrSADrUIghoQgBCAFIAYQUgvHAQEBfyMAQUBqIgYkACACQgBSBEAgBkKy2ojLx66ZkOsANwMIIAZC5fDBi+aNmZAzNwMAIAYgBSgAADYCECAGIAUoAAQ2AhQgBiAFKAAINgIYIAYgBSgADDYCHCAGIAUoABA2AiAgBiAFKAAUNgIkIAYgBSgAGDYCKCAFKAAcIQUgBiAENgIwIAYgBTYCLCAGIAMoAAA2AjQgBiADKAAENgI4IAYgAygACDYCPCAGIAEgACACEC8gBkHAABAHCyAGQUBrJABBAAtIAQF+IAOtIAStQiCGhCEIIwBBIGsiAyQAQX8hBCADIAYgBxAhRQRAIAAgASACIAggBSADEDAhBCADQSAQBwsgA0EgaiQAIAQLGAAgACABIAKtIAOtQiCGhCAEIAUgBhBTCy4BAX4gAq0gA61CIIaEIgZC8P///w9aBEAQCQALIABBEGogACABIAYgBCAFECALSAEBfiADrSAErUIghoQhCCMAQSBrIgMkAEF/IQQgAyAGIAcQIUUEQCAAIAEgAiAIIAUgAxAgIQQgA0EgEAcLIANBIGokACAEC4YBAQJ/IwBBgARrIgUkACAFQSBqIgYgBBBWIAYgASACrSADrUIghoQQVSAGIAVBwANqEFQgBSAFKQPYAzcDGCAFIAUpA9ADNwMQIAUgBSkDyAM3AwggBSAFKQPAAzcDACAAIAUQSyEBIAUgAEEgEDMhAiAFQYAEaiQAIAJBfyABIAAgBUYbcgtkAQF/IwBB4ANrIgUkACAFIAQQViAFIAEgAq0gA61CIIaEEFUgBSAFQaADahBUIAAgBSkDuAM3ABggACAFKQOwAzcAECAAIAUpA6gDNwAIIAAgBSkDoAM3AAAgBUHgA2okAEEAC1oBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChBXIQILIAEEQCABQgAgC0IQfSACGzcDAAsgAgskACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEFcLwwEBAX8jAEFAaiIGJAAgAkIAUgRAIAZCstqIy8eumZDrADcDCCAGQuXwwYvmjZmQMzcDACAGIAUoAAA2AhAgBiAFKAAENgIUIAYgBSgACDYCGCAGIAUoAAw2AhwgBiAFKAAQNgIgIAYgBSgAFDYCJCAGIAUoABg2AiggBiAFKAAcNgIsIAYgBD4CMCAGIARCIIg+AjQgBiADKAAANgI4IAYgAygABDYCPCAGIAEgACACEC8gBkHAABAHCyAGQUBrJABBAAtYAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEFgaIAEEQCABIAtCEHw3AwALQQAMAQsQCQALCyYAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxBYC1oBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChBAIQILIAEEQCABQgAgC0IQfSACGzcDAAsgAgskACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEEALWgECfiAHrSAIrUIghoQhDEF/IQIgBK0gBa1CIIaEIgtCEFoEQCAAIAMgC0IQfSADIAunakEQayAGIAwgCSAKEEEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyQAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQQQtYAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEEIaIAEEQCABIAtCEHw3AwALQQAMAQsQCQALCyYAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxBCC1gBAn4CfyAGrSAHrUIghoQhDCADrSAErUIghoQiC0Lw////D1QEQCAAIAAgC6dqQQAgAiALIAUgDCAJIAoQQxogAQRAIAEgC0IQfDcDAAtBAAwBCxAJAAsLJgAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEEML0AEBAX8jAEFAaiIEJAAgAUIAUgRAIARCstqIy8eumZDrADcDCCAEQuXwwYvmjZmQMzcDACAEIAMoAAA2AhAgBCADKAAENgIUIAQgAygACDYCGCAEIAMoAAw2AhwgBCADKAAQNgIgIAQgAygAFDYCJCAEIAMoABg2AiggAygAHCEDIARBADYCMCAEIAM2AiwgBCACKAAANgI0IAQgAigABDYCOCAEIAIoAAg2AjwgBCAAQQAgAacQCCIAIAAgARAvIARBwAAQBwsgBEFAayQAQQAL/gEBBH8jACIFIQggBUGABGtBQHEiBSQAIAAgASAAGyIHBEBBfyEGIAVB4ABqIAMgBBA8RQRAIAEgACABGyEBQQAhACAFQYABaiIDQQBBAEHAABAjGiADIAVB4ABqIgZCIBAPGiAGQSAQByADIARCIBAPGiADIAJCIBAPGiADIAVBIGpBwAAQIhogA0GAAxAHA0AgACABaiAFQSBqIgQgAGoiAi0AADoAACAAIAdqIAItACA6AAAgASAAQQFyIgNqIAMgBGotAAA6AAAgAyAHaiACLQAhOgAAIABBAmoiAEEgRw0ACyAFQSBqQcAAEAdBACEGCyAIJAAgBg8LEAkAC/4BAQR/IwAiBSEIIAVBgARrQUBxIgUkACAAIAEgABsiBwRAQX8hBiAFQeAAaiADIAQQPEUEQCABIAAgARshAUEAIQAgBUGAAWoiA0EAQQBBwAAQIxogAyAFQeAAaiIGQiAQDxogBkEgEAcgAyACQiAQDxogAyAEQiAQDxogAyAFQSBqQcAAECIaIANBgAMQBwNAIAAgB2ogBUEgaiIEIABqIgItAAA6AAAgACABaiACLQAgOgAAIAcgAEEBciIDaiADIARqLQAAOgAAIAEgA2ogAi0AIToAACAAQQJqIgBBIEcNAAsgBUEgakHAABAHQQAhBgsgCCQAIAYPCxAJAAsfACABQSAgAkIgQQBBABBZGiAAIAFBzJACKAIAEQEACxAAIAAgAUHMkAIoAgARAQALBABBCgsFAEGgCgsIACAAQRAQFgsEAEEwC14BAX8jAEFAaiIDJAAgAyACQiAQGBogASADKQMYNwAYIAEgAykDEDcAECABIAMpAwg3AAggASADKQMANwAAIANBwAAQByAAIAFBzJACKAIAEQEAIQAgA0FAayQAIAALxgEBAX8jAEFAaiIEJAAgAUIAUgRAIARCstqIy8eumZDrADcDCCAEQuXwwYvmjZmQMzcDACAEIAMoAAA2AhAgBCADKAAENgIUIAQgAygACDYCGCAEIAMoAAw2AhwgBCADKAAQNgIgIAQgAygAFDYCJCAEIAMoABg2AiggAygAHCEDIARCADcDMCAEIAM2AiwgBCACKAAANgI4IAQgAigABDYCPCAEIABBACABpxAIIgAgACABEC8gBEHAABAHCyAEQUBrJABBAAsFAEGAAwuqAQEGfyMAQRBrIgZBADYCDEF/IQQgAiADQQFrSwR/IAEgAkEBayICaiEIQQAhBEEAIQEDQCAGIAYoAgwiByAIIAVrLQAAIglBgAFzQQFrIAdBAWsgAUH/AXEiAUEBa3FxIgdBF3RBH3UgBXFyNgIMIAEgCXIhASAEIAdBCHZBAXFyIQQgBUEBaiIFIANHDQALIAAgAiAGKAIMazYCACAEQf8BcUEBawVBfwsLpQkBCH8CQAJ/AkACQAJAAkACQAJAAn8CQAJAAkAgB0F5cUEBRgRAQQAgA0UNBBogB0EEcQ0BA0AgCCELAkACQAJAAkADQCACIAtqLAAAIgpB0P8Ac0EBakF/c0EIdkE/cSAKQdT/AHNBAWpBf3NBCHZBPnFyIApBuQFqIApBn/8DakF/c0H6ACAKa0F/c3FBCHZxQf8BcXIgCkEEaiAKQdD/A2pBf3NBOSAKa0F/c3FBCHZxQf8BcXJB2gAgCmtBf3MgCkHBAGsiCUF/c3FBCHYgCXFB/wFxciIJQQFrIApBvv8Dc0EBanFBCHZB/wFxIAlyIglB/wFHDQFBACEJIARFDQkgBCAKEB0EQCALQQFqIgsgA08NAwwBCwsgCyEIDAgLIAkgDkEGdGohDiAMQQFLDQEgDEEGaiEMDAILIAMgCEEBaiIAIAAgA0kbIQgMBgsgDEECayEMIAEgDU0NBCAAIA1qIA4gDHY6AAAgDUEBaiENC0EAIQkgC0EBaiIIIANJDQALDAMLEAkACwNAIAghCwNAAkAgAiALaiwAACIKQaD/AHNBAWpBf3NBCHZBP3EgCkHS/wBzQQFqQX9zQQh2QT5xciAKQbkBaiAKQZ//A2pBf3NB+gAgCmtBf3NxQQh2cUH/AXFyIApBBGogCkHQ/wNqQX9zQTkgCmtBf3NxQQh2cUH/AXFyQdoAIAprQX9zIApBwQBrIglBf3NxQQh2IAlxQf8BcXIiCUEBayAKQb7/A3NBAWpxQQh2Qf8BcSAJciIJQf8BRgRAQQAhCSAERQ0FIAQgChAdDQEgCyEIDAULIAkgDkEGdGohDgJAIAxBAkkEQCAMQQZqIQwMAQsgDEECayEMIAEgDU0NBCAAIA1qIA4gDHY6AAAgDUEBaiENC0EAIQkgC0EBaiIIIANJDQIMBAsgC0EBaiILIANJDQALCyADIAhBAWoiACAAIANJGyEIDAELIAshCEHQlgJBxAA2AgBBASEJCyAMQQRLDQEgCAshAEF/IQEgCQRAIAAhCAwICyAOQX8gDHRBf3NxBEAgACEIDAgLIAdBAnEEQCAAIQcMAwsgDEECSQRAIAAhBwwDCyAAIAMgACADSxshCCAMQQF2IQsgBEUNASAAIQcDQCAHIAhGBEBBxAAhCQwFCwJAIAIgB2osAAAiAEE9RgRAIAtBAWshCwwBCyAEIAAQHQ0AQRwhCSAHIQgMBQsgB0EBaiEHIAsNAAsMAgtBfyEBDAYLQcQAIQkgACADTw0BIAAgAmotAABBPUcEQCAAIQhBHCEJDAILIAAgC2ohByALQQFGDQAgAEEBaiIMIAhGDQEgAiAMai0AAEE9RwRAIAwhCEEcIQkMAgsgC0ECRg0AIABBAmoiACAIRg0BQRwhCSAAIgggAmotAABBPUcNAQtBACEBIAQNAQwCC0HQlgIgCTYCAAwDCyADIAdNDQADQCAEIAIgB2osAAAQHUUNASAHQQFqIgcgA0cNAAsgAwwBCyAHCyEIIA0hDwsCQCAGBEAgBiACIAhqNgIADAELIAMgCEYNAEHQlgJBHDYCAEF/IQELIAUEQCAFIA82AgALIAELkQcBCn8CfwJ/AkACQCAEQXlxQQFHDQAgA0EDbiIGQQJ0IQkCQCAGQX1sIANqIgZFDQAgBEECcUUEQCAJQQRqIQkMAQsgCUECciAGQQF2aiEJCyABIAlNDQACQCAEQQRxBEBBACADRQ0FGkEAIQYMAQtBACADRQ0EGkEAIQYMAgsDQCACIAtqLQAAIgwgBUEIdHIhBSAGIgogCEEIciIIQQZrQQZuakEBaiEGA0AgACAKaiAFIAgiBEEGayIIdkE/cSIHQcH/AWpBf3NBCHZB3wBxIAdB5v8DakEIdiINIAdBwQBqcXIgB0H8AWogB0HC/wNqQQh2cSAHQcz/A2pBCHYiDkF/c3FyIAdBwf8Ac0EBakF/c0EIdkEtcXIgB0HHAGogDUF/c3EgDnFyOgAAIApBAWoiCiAGRw0ACyALQQFqIgsgA0cNAAsgBiAIRQ0DGiAMQQwgBGt0QT9xIgJB5v8DakEIdiIDIAJBwQBqcSEKIAJB/AFqIAJBwv8DakEIdnEgAkHM/wNqQQh2IgRBf3NxIQUgAkHHAGogA0F/c3EgBHEhCCACQcH/AWohAyACQcH/AHNBAWpBf3NBCHZBLXEhBEHfAAwCCxAJAAsDQCACIAtqLQAAIgwgBUEIdHIhBSAGIgogCEEIciIIQQZrQQZuakEBaiEGA0AgACAKaiAFIAgiBEEGayIIdkE/cSIHQcH/AGpBf3NBCHZBL3EgB0Hm/wNqQQh2Ig0gB0HBAGpxciAHQfwBaiAHQcL/A2pBCHZxIAdBzP8DakEIdiIOQX9zcXIgB0HB/wBzQQFqQX9zQQh2QStxciAHQccAaiANQX9zcSAOcXI6AAAgCkEBaiIKIAZHDQALIAtBAWoiCyADRw0ACyAGIAhFDQEaIAxBDCAEa3RBP3EiAkHm/wNqQQh2IgMgAkHBAGpxIQogAkH8AWogAkHC/wNqQQh2cSACQcz/A2pBCHYiBEF/c3EhBSACQccAaiADQX9zcSAEcSEIIAJBwf8AaiEDIAJBwf8Ac0EBakF/c0EIdkErcSEEQS8LIQIgACAGaiACIANBf3NBCHZxIApyIAVyIARyIAhyOgAAIAZBAWoLIQUCQAJAIAUgCU0EQCAFIAlJDQEgBSEJDAILQZgIQeYIQeYBQacKEAEACyAAIAVqQT0gCSAFaxAIGgsgACAJakEAIAEgCUEBaiICIAEgAksbIAlrEAgaIAALPQEBfyABQXlxQQFHBEAQCQALIAAgAEEDbiIAQX1saiICQQFqQQQgAUECcRtBACACQQNxGyAAQQJ0akEBaguIBQEKfwJAIANFDQACQAJAAkACQCAERQRAQQEhCUEAIQQDQCACIAdqLQAAIgxB3wFxQTdrQf8BcSIKQfb/A2ogCkHw/wNqc0EIdiINIAxBMHMiDEH2/wNqQQh2Ig5yQf8BcUUNAyABIAtNDQIgCiANcSAMIA5xciEKAkAgCEH/AXFFBEAgCkEEdCEEDAELIAAgC2ogBCAKcjoAACALQQFqIQsLIAhBf3MhCCAHQQFqIgcgA0cNAAsgAyEHDAILA0ACQAJAAkACfwJAIAIgB2otAAAiCUHfAXFBN2tB/wFxIgpB9v8DaiAKQfD/A2pzQQh2IgwgCUEwcyINQfb/A2pBCHYiDnJB/wFxRQRAIAhB/wFxDQkgBCAJEB1FDQsgB0EBaiIIIQcgAyAISw0BDAsLIAEgC00NBiAKIAxxIA0gDnFyIgkgCEH/AXFFDQEaIAAgC2ogCSAQcjoAACALQQFqIQsMBAsDQCACIAdqLQAAIglB3wFxQTdrQf8BcSIKQfb/A2ogCkHw/wNqc0EIdiIMIAlBMHMiDUH2/wNqQQh2Ig5yQf8BcUUEQCAEIAkQHUUNCyADIAdBAWoiB0sNAQwDCwsgASALTQ0CIAogDHEgDSAOcXILQQR0IRBBACEIDAILIAMgCCADIAhLGyEHDAcLQQAhCAwCCyAIQX9zIQhBASEJIAdBAWoiByADSQ0ACwwBC0HQlgJBxAA2AgBBACEJCyAIQf8BcUUNAQtB0JYCQRw2AgBBfyEPIAdBAWshB0EAIQsMAQsgCQ0AQQAhC0F/IQ8LAkAgBgRAIAYgAiAHajYCAAwBCyADIAdGDQBB0JYCQRw2AgBBfyEPCyAFBEAgBSALNgIACyAPC50BAQN/AkAgA0H+////B0sNACADQQF0IAFPDQBBACEBIAMEfwNAIAAgAUEBdGoiBCABIAJqLQAAIgVBD3EiBkEIdCAGQfb/A2pBgLIDcWpBgK4BakEIdjoAASAEIAVBBHYiBCAEQfb/A2pBCHZB2QFxakHXAGo6AAAgAUEBaiIBIANHDQALIANBAXQFQQALIABqQQA6AAAgAA8LEAkACysBAX8jAEFAaiIDJAAgACADEBMgASADQsAAIAJBARAxIQAgA0FAayQAIAALLQEBfyMAQUBqIgQkACAAIAQQEyABIAIgBELAACADQQEQMiEAIARBQGskACAACwgAIAAQGUEAC7sBAgJ/A34jAEHAAWsiAiQAIAJBIBAWIAEgAkIgEBgaIAEgAS0AAEH4AXE6AAAgASABLQAfQT9xQcAAcjoAHyACQSBqIgMgARAqIAAgAxArIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACAAKQAIIQQgACkAECEFIAApAAAhBiABIAApABg3ADggASAFNwAwIAEgBDcAKCABIAY3ACAgAkEgEAcgAkHAAWokAEEAC9IBAQR/IwBBEGsiBSQAAkACQCADRQRAQX8hBwwBCwJ/IAMgA0EBayIGcUUEQCACIAZxDAELIAIgA3ALIQhBfyEHIAYgCGsiBiACQX9zTw0BIAIgBmoiAiAETw0AIAAEQCAAIAJBAWo2AgALIAEgAmohAEEAIQcgBUEAOgAPQQAhAgNAIAAgAmsiASABLQAAIAUtAA9xIAIgBnNBAWtBGHYiAUGAAXFyOgAAIAUgBS0ADyABcjoADyACQQFqIgIgA0cNAAsLIAVBEGokACAHDwsQCQALC7qFAgwAQYAIC5cDTGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAMS4wLjE4AHNvZGl1bV9iaW4yYmFzZTY0AAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4AQaALCydZ8bL+CuWm/3vdKv4eFNQAUoADADDR8wB3eUD/MuOc/wBuxQFnG5AAQdALC8AHhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/AEGwEwsBAQBB0BMLsAEm6JWPwrInsEXD9Iny75jw1d+sBdPGMzmxOAKIbVP8BccXanA9TdhPujwLdg0QZw8qIFP6LDnMxk7H/XeSrAN67P///////////////////////////////////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBjxUL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/48+3QCBWdb/N4sF/kQUv/8OzLIBI8PZAC8zzgEm9qUAzhsG/p5XJADZNJL/fXvX/1U8H/+rDQcA2vVY/vwjPAA31qD/hWU4AOAgE/6TQOoAGpGiAXJ2fQD4/PoAZV7E/8aN4v4zKrYAhwwJ/m2s0v/F7MIB8UGaADCcL/+ZQzf/2qUi/kq0swDaQkcBWHpjANS12/9cKuf/7wCaAPVNt/9eUaoBEtXYAKtdRwA0XvgAEpeh/sXRQv+u9A/+ojC3ADE98P62XcMAx+QGAcgFEf+JLe3/bJQEAFpP7f8nP03/NVLPAY4Wdv9l6BIBXBpDAAXIWP8hqIr/leFIAALRG/8s9agB3O0R/x7Taf6N7t0AgFD1/m/+DgDeX74B3wnxAJJM1P9szWj/P3WZAJBFMAAj5G8AwCHB/3DWvv5zmJcAF2ZYADNK+ADix4/+zKJl/9BhvQH1aBIA5vYe/xeURQBuWDT+4rVZ/9AvWv5yoVD/IXT4ALOYV/9FkLEBWO4a/zogcQEBTUUAO3k0/5juUwA0CMEA5yfp/8ciigDeRK0AWzny/tzSf//AB/b+lyO7AMPspQBvXc4A1PeFAZqF0f+b5woAQE4mAHr5ZAEeE2H/Plv5AfiFTQDFP6j+dApSALjscf7Uy8L/PWT8/iQFyv93W5n/gU8dAGdnq/7t12//2DVFAO/wFwDCld3/JuHeAOj/tP52UoX/OdGxAYvohQCesC7+wnMuAFj35QEcZ78A3d6v/pXrLACX5Bn+2mlnAI5V0gCVgb7/1UFe/nWG4P9SxnUAnd3cAKNlJADFciUAaKym/gu2AABRSLz/YbwQ/0UGCgDHk5H/CAlzAUHWr//ZrdEAUH+mAPflBP6nt3z/WhzM/q878P8LKfgBbCgz/5Cxw/6W+n4AiltBAXg83v/1we8AHda9/4ACGQBQmqIATdxrAerNSv82pmf/dEgJAOReL/8eyBn/I9ZZ/z2wjP9T4qP/S4KsAIAmEQBfiZj/13yfAU9dAACUUp3+w4L7/yjKTP/7fuAAnWM+/s8H4f9gRMMAjLqd/4MT5/8qgP4ANNs9/mbLSACNBwv/uqTVAB96dwCF8pEA0Pzo/1vVtv+PBPr++ddKAKUebwGrCd8A5XsiAVyCGv9Nmy0Bw4sc/zvgTgCIEfcAbHkgAE/6vf9g4/z+JvE+AD6uff+bb13/CubOAWHFKP8AMTn+QfoNABL7lv/cbdL/Ba6m/iyBvQDrI5P/JfeN/0iNBP9na/8A91oEADUsKgACHvAABDs/AFhOJABxp7QAvkfB/8eepP86CKwATSEMAEE/AwCZTSH/rP5mAeTdBP9XHv4BkilW/4rM7/5sjRH/u/KHANLQfwBELQ7+SWA+AFE8GP+qBiT/A/kaACPVbQAWgTb/FSPh/+o9OP862QYAj3xYAOx+QgDRJrf/Iu4G/66RZgBfFtMAxA+Z/i5U6P91IpIB5/pK/xuGZAFcu8P/qsZwAHgcKgDRRkMAHVEfAB2oZAGpraAAayN1AD5gO/9RDEUBh+++/9z8EgCj3Dr/iYm8/1NmbQBgBkwA6t7S/7muzQE8ntX/DfHWAKyBjABdaPIAwJz7ACt1HgDhUZ4Af+jaAOIcywDpG5f/dSsF//IOL/8hFAYAifss/hsf9f+31n3+KHmVALqe1f9ZCOMARVgA/suH4QDJrssAk0e4ABJ5Kf5eBU4A4Nbw/iQFtAD7h+cBo4rUANL5dP5YgbsAEwgx/j4OkP+fTNMA1jNSAG115P5n38v/S/wPAZpH3P8XDVsBjahg/7W2hQD6MzcA6urU/q8/ngAn8DQBnr0k/9UoVQEgtPf/E2YaAVQYYf9FFd4AlIt6/9zV6wHoy/8AeTmTAOMHmgA1FpMBSAHhAFKGMP5TPJ3/kUipACJn7wDG6S8AdBME/7hqCf+3gVMAJLDmASJnSADbooYA9SqeACCVYP6lLJAAyu9I/teWBQAqQiQBhNevAFauVv8axZz/MeiH/me2UgD9gLABmbJ6APX6CgDsGLIAiWqEACgdKQAyHpj/fGkmAOa/SwCPK6oALIMU/ywNF//t/5sBn21k/3C1GP9o3GwAN9ODAGMM1f+Yl5H/7gWfAGGbCAAhbFEAAQNnAD5tIv/6m7QAIEfD/yZGkQGfX/UAReVlAYgc8ABP4BkATm55//iofAC7gPcAApPr/k8LhABGOgwBtQij/0+Jhf8lqgv/jfNV/7Dn1//MlqT/79cn/y5XnP4Io1j/rCLoAEIsZv8bNin+7GNX/yl7qQE0cisAdYYoAJuGGgDnz1v+I4Qm/xNmff4k44X/dgNx/x0NfACYYEoBWJLO/6e/3P6iElj/tmQXAB91NABRLmoBDAIHAEVQyQHR9qwADDCNAeDTWAB04p8AemKCAEHs6gHh4gn/z+J7AVnWOwBwh1gBWvTL/zELJgGBbLoAWXAPAWUuzP9/zC3+T//d/zNJEv9/KmX/8RXKAKDjBwBpMuwATzTF/2jK0AG0DxAAZcVO/2JNywApufEBI8F8ACObF//PNcAAC32jAfmeuf8EgzAAFV1v/z155wFFyCT/uTC5/2/uFf8nMhn/Y9ej/1fUHv+kkwX/gAYjAWzfbv/CTLIASmW0APMvMACuGSv/Uq39ATZywP8oN1sA12yw/ws4BwDg6UwA0WLK/vIZfQAswV3+ywixAIewEwBwR9X/zjuwAQRDGgAOj9X+KjfQ/zxDeADBFaMAY6RzAAoUdgCc1N7+oAfZ/3L1TAF1O3sAsMJW/tUPsABOzs/+1YE7AOn7FgFgN5j/7P8P/8VZVP9dlYUArqBxAOpjqf+YdFgAkKRT/18dxv8iLw//Y3iG/wXswQD5937/k7seADLmdf9s2dv/o1Gm/0gZqf6beU//HJtZ/gd+EQCTQSEBL+r9ABozEgBpU8f/o8TmAHH4pADi/toAvdHL/6T33v7/I6UABLzzAX+zRwAl7f7/ZLrwAAU5R/5nSEn/9BJR/uXShP/uBrT/C+Wu/+PdwAERMRwAo9fE/gl2BP8z8EcAcYFt/0zw5wC8sX8AfUcsARqv8wBeqRn+G+YdAA+LdwGoqrr/rMVM//xLvACJfMQASBZg/y2X+QHckWQAQMCf/3jv4gCBspIAAMB9AOuK6gC3nZIAU8fA/7isSP9J4YAATQb6/7pBQwBo9s8AvCCK/9oY8gBDilH+7YF5/xTPlgEpxxD/BhSAAJ92BQC1EI//3CYPABdAk/5JGg0AV+Q5Acx8gAArGN8A22PHABZLFP8TG34AnT7XAG4d5gCzp/8BNvy+AN3Mtv6znkH/UZ0DAMLanwCq3wAA4Asg/ybFYgCopCUAF1gHAaS6bgBgJIYA6vLlAPp5EwDy/nD/Ay9eAQnvBv9Rhpn+1v2o/0N84AD1X0oAHB4s/gFt3P+yWVkA/CRMABjGLv9MTW8AhuqI/ydeHQC5SOr/RkSH/+dmB/5N54wApy86AZRhdv8QG+EBps6P/26y1v+0g6IAj43hAQ3aTv9ymSEBYmjMAK9ydQGnzksAysRTATpAQwCKL28BxPeA/4ng4P6ecM8AmmT/AYYlawDGgE//f9Gb/6P+uf48DvMAH9tw/h3ZQQDIDXT+ezzE/+A7uP7yWcQAexBL/pUQzgBF/jAB53Tf/9GgQQHIUGIAJcK4/pQ/IgCL8EH/2ZCE/zgmLf7HeNIAbLGm/6DeBADcfnf+pWug/1Lc+AHxr4gAkI0X/6mKVACgiU7/4nZQ/zQbhP8/YIv/mPonALybDwDoM5b+KA/o//DlCf+Jrxv/S0lhAdrUCwCHBaIBa7nVAAL5a/8o8kYA28gZABmdDQBDUlD/xPkX/5EUlQAySJIAXkyUARj7QQAfwBcAuNTJ/3vpogH3rUgAolfb/n6GWQCfCwz+pmkdAEkb5AFxeLf/QqNtAdSPC/+f56gB/4BaADkOOv5ZNAr//QijAQCR0v8KgVUBLrUbAGeIoP5+vNH/IiNvANfbGP/UC9b+ZQV2AOjFhf/fp23/7VBW/0aLXgCewb8Bmw8z/w++cwBOh8//+QobAbV96QBfrA3+qtWh/yfsiv9fXVf/voBfAH0PzgCmlp8A4w+e/86eeP8qjYAAZbJ4AZxtgwDaDiz+96jO/9RwHABwEeT/WhAlAcXebAD+z1P/CVrz//P0rAAaWHP/zXR6AL/mwQC0ZAsB2SVg/5pOnADr6h//zrKy/5XA+wC2+ocA9hZpAHzBbf8C0pX/qRGqAABgbv91CQgBMnso/8G9YwAi46AAMFBG/tMz7AAtevX+LK4IAK0l6f+eQasAekXX/1pQAv+DamD+43KHAM0xd/6wPkD/UjMR//EU8/+CDQj+gNnz/6IbAf5advEA9sb2/zcQdv/In50AoxEBAIxreQBVoXb/JgCVAJwv7gAJpqYBS2K1/zJKGQBCDy8Ai+GfAEwDjv8O7rgAC881/7fAugGrIK7/v0zdAfeq2wAZrDL+2QnpAMt+RP+3XDAAf6e3AUEx/gAQP38B/hWq/zvgf/4WMD//G06C/ijDHQD6hHD+I8uQAGipqADP/R7/aCgm/l7kWADOEID/1Dd6/98W6gDfxX8A/bW1AZFmdgDsmST/1NlI/xQmGP6KPj4AmIwEAObcY/8BFdT/lMnnAPR7Cf4Aq9IAMzol/wH/Dv/0t5H+APKmABZKhAB52CkAX8Ny/oUYl/+c4uf/9wVN//aUc/7hXFH/3lD2/qp7Wf9Kx40AHRQI/4qIRv9dS1wA3ZMx/jR+4gDlfBcALgm1AM1ANAGD/hwAl57UAINATgDOGasAAOaLAL/9bv5n96cAQCgoASql8f87S+T+fPO9/8Rcsv+CjFb/jVk4AZPGBf/L+J7+kKKNAAus4gCCKhX/AaeP/5AkJP8wWKT+qKrcAGJH1gBb0E8An0zJAaYq1v9F/wD/BoB9/74BjACSU9r/1+5IAXp/NQC9dKX/VAhC/9YD0P/VboUAw6gsAZ7nRQCiQMj+WzpoALY6u/755IgAy4ZM/mPd6QBL/tb+UEWaAECY+P7siMr/nWmZ/pWvFAAWIxP/fHnpALr6xv6E5YsAiVCu/6V9RACQypT+6+/4AIe4dgBlXhH/ekhG/kWCkgB/3vgBRX92/x5S1/68ShP/5afC/nUZQv9B6jj+1RacAJc7Xf4tHBv/un6k/yAG7wB/cmMB2zQC/2Ngpv4+vn7/bN6oAUvirgDm4scAPHXa//z4FAHWvMwAH8KG/ntFwP+prST+N2JbAN8qZv6JAWYAnVoZAO96QP/8BukABzYU/1J0rgCHJTb/D7p9AONwr/9ktOH/Ku30//St4v74EiEAq2OW/0rrMv91UiD+aqjtAM9t0AHkCboAhzyp/rNcjwD0qmj/6y18/0ZjugB1ibcA4B/XACgJZAAaEF8BRNlXAAiXFP8aZDr/sKXLATR2RgAHIP7+9P71/6eQwv99cRf/sHm1AIhU0QCKBh7/WTAcACGbDv8Z8JoAjc1tAUZzPv8UKGv+iprH/17f4v+dqyYAo7EZ/i12A/8O3hcB0b5R/3Z76AEN1WX/ezd7/hv2pQAyY0z/jNYg/2FBQ/8YDBwArlZOAUD3YACgh0MAQjfz/5PMYP8aBiH/YjNTAZnV0P8CuDb/GdoLADFD9v4SlUj/DRlIACpP1gAqBCYBG4uQ/5W7FwASpIQA9VS4/njGaP9+2mAAOHXq/w0d1v5ELwr/p5qE/pgmxgBCsln/yC6r/w1jU//Su/3/qi0qAYrRfADWoo0ADOacAGYkcP4Dk0MANNd7/+mrNv9iiT4A99on/+fa7AD3v38Aw5JUAKWwXP8T1F7/EUrjAFgomQHGkwH/zkP1/vAD2v89jdX/YbdqAMPo6/5fVpoA0TDN/nbR8f/weN8B1R2fAKN/k/8N2l0AVRhE/kYUUP+9BYwBUmH+/2Njv/+EVIX/a9p0/3B6LgBpESAAwqA//0TeJwHY/VwAsWnN/5XJwwAq4Qv/KKJzAAkHUQCl2tsAtBYA/h2S/P+Sz+EBtIdgAB+jcACxC9v/hQzB/itOMgBBcXkBO9kG/25eGAFwrG8ABw9gACRVewBHlhX/0Em8AMALpwHV9SIACeZcAKKOJ//XWhsAYmFZAF5P0wBanfAAX9x+AWaw4gAkHuD+Ix9/AOfocwFVU4IA0kn1/y+Pcv9EQcUAO0g+/7eFrf5deXb/O7FR/+pFrf/NgLEA3PQzABr00QFJ3k3/owhg/paV0wCe/ssBNn+LAKHgOwAEbRb/3iot/9CSZv/sjrsAMs31/wpKWf4wT44A3kyC/x6mPwDsDA3/Mbj0ALtxZgDaZf0AmTm2/iCWKgAZxpIB7fE4AIxEBQBbpKz/TpG6/kM0zQDbz4EBbXMRADaPOgEV+Hj/s/8eAMHsQv8B/wf//cAw/xNF2QED1gD/QGWSAd99I//rSbP/+afiAOGvCgFhojoAanCrAVSsBf+FjLL/hvWOAGFaff+6y7n/300X/8BcagAPxnP/2Zj4AKuyeP/khjUAsDbBAfr7NQDVCmQBIsdqAJcf9P6s4Ff/Du0X//1VGv9/J3T/rGhkAPsORv/U0Ir//dP6ALAxpQAPTHv/Jdqg/1yHEAEKfnL/RgXg//f5jQBEFDwB8dK9/8PZuwGXA3EAl1yuAOc+sv/bt+EAFxch/821UAA5uPj/Q7QB/1p7Xf8nAKL/YPg0/1RCjAAif+T/wooHAaZuvAAVEZsBmr7G/9ZQO/8SB48ASB3iAcfZ+QDooUcBlb7JANmvX/5xk0P/io/H/3/MAQAdtlMBzuab/7rMPAAKfVX/6GAZ//9Z9//V/q8B6MFRABwrnP4MRQgAkxj4ABLGMQCGPCMAdvYS/zFY/v7kFbr/tkFwAdsWAf8WfjT/vTUx/3AZjwAmfzf/4mWj/tCFPf+JRa4BvnaR/zxi2//ZDfX/+ogKAFT+4gDJH30B8DP7/x+Dgv8CijL/19exAd8M7v/8lTj/fFtE/0h+qv53/2QAgofo/w5PsgD6g8UAisbQAHnYi/53EiT/HcF6ABAqLf/V8OsB5r6p/8Yj5P5urUgA1t3x/ziUhwDAdU7+jV3P/49BlQAVEmL/Xyz0AWq/TQD+VQj+1m6w/0mtE/6gxMf/7VqQAMGscf/Im4j+5FrdAIkxSgGk3df/0b0F/2nsN/8qH4EBwf/sAC7ZPACKWLv/4lLs/1FFl/+OvhABDYYIAH96MP9RQJwAq/OLAO0j9gB6j8H+1HqSAF8p/wFXhE0ABNQfABEfTgAnLa3+GI7Z/18JBv/jUwYAYjuC/j4eIQAIc9MBomGA/we4F/50HKj/+IqX/2L08AC6doIAcvjr/2mtyAGgfEf/XiSkAa9Bkv/u8ar+ysbFAORHiv4t9m3/wjSeAIW7sABT/Jr+Wb3d/6pJ/ACUOn0AJEQz/ipFsf+oTFb/JmTM/yY1IwCvE2EA4e79/1FRhwDSG//+60lrAAjPcwBSf4gAVGMV/s8TiABkpGUAUNBN/4TP7f8PAw//IaZuAJxfVf8luW8Blmoj/6aXTAByV4f/n8JAAAx6H//oB2X+rXdiAJpH3P6/OTX/qOig/+AgY//anKUAl5mjANkNlAHFcVkAlRyh/s8XHgBphOP/NuZe/4WtzP9ct53/WJD8/mYhWgCfYQMAtdqb//BydwBq1jX/pb5zAZhb4f9Yaiz/0D1xAJc0fAC/G5z/bjbsAQ4epv8nf88B5cccALzkvP5knesA9tq3AWsWwf/OoF8ATO+TAM+hdQAzpgL/NHUK/kk44/+YweEAhF6I/2W/0QAga+X/xiu0AWTSdgByQ5n/F1ga/1maXAHceIz/kHLP//xz+v8izkgAioV//wiyfAFXS2EAD+Vc/vBDg/92e+P+knho/5HV/wGBu0b/23c2AAETrQAtlpQB+FNIAMvpqQGOazgA9/kmAS3yUP8e6WcAYFJGABfJbwBRJx7/obdO/8LqIf9E44z+2M50AEYb6/9okE8ApOZd/taHnACau/L+vBSD/yRtrgCfcPEABW6VASSl2gCmHRMBsi5JAF0rIP74ve0AZpuNAMldw//xi/3/D29i/2xBo/6bT77/Sa7B/vYoMP9rWAv+ymFV//3MEv9x8kIAbqDC/tASugBRFTwAvGin/3ymYf7ShY4AOPKJ/ilvggBvlzoBb9WN/7es8f8mBsT/uQd7/y4L9gD1aXcBDwKh/wjOLf8Sykr/U3xzAdSNnQBTCNH+iw/o/6w2rf4y94QA1r3VAJC4aQDf/vgA/5Pw/xe8SAAHMzYAvBm0/ty0AP9ToBQAo73z/zrRwv9XSTwAahgxAPX53AAWracAdgvD/xN+7QBunyX/O1IvALS7VgC8lNABZCWF/wdwwQCBvJz/VGqB/4XhygAO7G//KBRlAKysMf4zNkr/+7m4/12b4P+0+eAB5rKSAEg5Nv6yPrgAd81IALnv/f89D9oAxEM4/+ogqwEu2+QA0Gzq/xQ/6P+lNccBheQF/zTNawBK7oz/lpzb/u+ssv/7vd/+II7T/9oPigHxxFAAHCRi/hbqxwA97dz/9jklAI4Rjv+dPhoAK+5f/gPZBv/VGfABJ9yu/5rNMP4TDcD/9CI2/owQmwDwtQX+m8E8AKaABP8kkTj/lvDbAHgzkQBSmSoBjOySAGtc+AG9CgMAP4jyANMnGAATyqEBrRu6/9LM7/4p0aL/tv6f/6x0NADDZ97+zUU7ADUWKQHaMMIAUNLyANK8zwC7oaH+2BEBAIjhcQD6uD8A3x5i/k2oogA7Na8AE8kK/4vgwgCTwZr/1L0M/gHIrv8yhXEBXrNaAK22hwBesXEAK1nX/4j8av97hlP+BfVC/1IxJwHcAuAAYYGxAE07WQA9HZsBy6vc/1xOiwCRIbX/qRiNATeWswCLPFD/2idhAAKTa/88+EgAreYvAQZTtv8QaaL+idRR/7S4hgEn3qT/3Wn7Ae9wfQA/B2EAP2jj/5Q6DABaPOD/VNT8AE/XqAD43ccBc3kBACSseAAgorv/OWsx/5MqFQBqxisBOUpXAH7LUf+Bh8MAjB+xAN2LwgAD3tcAg0TnALFWsv58l7QAuHwmAUajEQD5+7UBKjfjAOKhLAAX7G4AM5WOAV0F7ADat2r+QxhNACj10f/eeZkApTkeAFN9PABGJlIB5Qa8AG3enf83dj//zZe6AOMhlf/+sPYB47HjACJqo/6wK08Aal9OAbnxev+5Dj0AJAHKAA2yov/3C4QAoeZcAUEBuf/UMqUBjZJA/57y2gAVpH0A1Yt6AUNHVwDLnrIBl1wrAJhvBf8nA+//2f/6/7A/R/9K9U0B+q4S/yIx4//2Lvv/miMwAX2dPf9qJE7/YeyZAIi7eP9xhqv/E9XZ/the0f/8BT0AXgPKAAMat/9Avyv/HhcVAIGNTf9meAcBwkyMALyvNP8RUZQA6FY3AeEwrACGKir/7jIvAKkS/gAUk1f/DsPv/0X3FwDu5YD/sTFwAKhi+/95R/gA8wiR/vbjmf/bqbH++4ul/wyjuf+kKKv/mZ8b/vNtW//eGHABEtbnAGudtf7DkwD/wmNo/1mMvv+xQn7+arlCADHaHwD8rp4AvE/mAe4p4ADU6ggBiAu1AKZ1U/9Ew14ALoTJAPCYWACkOUX+oOAq/zvXQ/93w43/JLR5/s8vCP+u0t8AZcVE//9SjQH6iekAYVaFARBQRQCEg58AdF1kAC2NiwCYrJ3/WitbAEeZLgAnEHD/2Yhh/9zGGf6xNTEA3liG/4APPADPwKn/wHTR/2pO0wHI1bf/Bwx6/t7LPP8hbsf++2p1AOThBAF4Ogf/3cFU/nCFGwC9yMn/i4eWAOo3sP89MkEAmGyp/9xVAf9wh+MAohq6AM9guf70iGsAXZkyAcZhlwBuC1b/j3Wu/3PUyAAFyrcA7aQK/rnvPgDseBL+Yntj/6jJwv4u6tYAv4Ux/2OpdwC+uyMBcxUt//mDSABwBnv/1jG1/qbpIgBcxWb+/eTN/wM7yQEqYi4A2yUj/6nDJgBefMEBnCvfAF9Ihf54zr8AesXv/7G7T//+LgIB+qe+AFSBEwDLcab/+R+9/kidyv/QR0n/zxhIAAoQEgHSUUz/WNDA/37za//ujXj/x3nq/4kMO/8k3Hv/lLM8/vAMHQBCAGEBJB4m/3MBXf9gZ+f/xZ47AcCk8ADKyjn/GK4wAFlNmwEqTNcA9JfpABcwUQDvfzT+44Il//h0XQF8hHYArf7AAQbrU/9ur+cB+xy2AIH5Xf5UuIAATLU+AK+AugBkNYj+bR3iAN3pOgEUY0oAABagAIYNFQAJNDf/EVmMAK8iOwBUpXf/4OLq/wdIpv97c/8BEtb2APoHRwHZ3LkA1CNM/yZ9rwC9YdIAcu4s/ym8qf4tupoAUVwWAISgwQB50GL/DVEs/8ucUgBHOhX/0HK//jImkwCa2MMAZRkSADz61//phOv/Z6+OARAOXACNH27+7vEt/5nZ7wFhqC//+VUQARyvPv85/jYA3ud+AKYtdf4SvWD/5EwyAMj0XgDGmHgBRCJF/wxBoP5lE1oAp8V4/0Q2uf8p2rwAcagwAFhpvQEaUiD/uV2kAeTw7f9CtjUAq8Vc/2sJ6QHHeJD/TjEK/22qaf9aBB//HPRx/0o6CwA+3Pb/eZrI/pDSsv9+OYEBK/oO/2VvHAEvVvH/PUaW/zVJBf8eGp4A0RpWAIrtSgCkX7wAjjwd/qJ0+P+7r6AAlxIQANFvQf7Lhif/WGwx/4MaR//dG9f+aGld/x/sH/6HANP/j39uAdRJ5QDpQ6f+wwHQ/4QR3f8z2VoAQ+sy/9/SjwCzNYIB6WrGANmt3P9w5Rj/r5pd/kfL9v8wQoX/A4jm/xfdcf7rb9UAqnhf/vvdAgAtgp7+aV7Z//I0tP7VRC3/aCYcAPSeTAChyGD/zzUN/7tDlACqNvgAd6Ky/1MUCwAqKsABkp+j/7fobwBN5RX/RzWPABtMIgD2iC//2ye2/1zgyQETjg7/Rbbx/6N29QAJbWoBqrX3/04v7v9U0rD/1WuLACcmCwBIFZYASIJFAM1Nm/6OhRUAR2+s/uIqO/+zANcBIYDxAOr8DQG4TwgAbh5J//aNvQCqz9oBSppF/4r2Mf+bIGQAfUpp/1pVPf8j5bH/Pn3B/5lWvAFJeNQA0Xv2/ofRJv+XOiwBXEXW/w4MWP/8mab//c9w/zxOU//jfG4AtGD8/zV1If6k3FL/KQEb/yakpv+kY6n+PZBG/8CmEgBr+kIAxUEyAAGzEv//aAH/K5kj/1BvqABur6gAKWkt/9sOzf+k6Yz+KwF2AOlDwwCyUp//ild6/9TuWv+QI3z+GYykAPvXLP6FRmv/ZeNQ/lypNwDXKjEAcrRV/yHoGwGs1RkAPrB7/iCFGP/hvz4AXUaZALUqaAEWv+D/yMiM//nqJQCVOY0AwzjQ//6CRv8grfD/HdzHAG5kc/+E5fkA5Onf/yXY0f6ysdH/ty2l/uBhcgCJYaj/4d6sAKUNMQHS68z//AQc/kaglwDovjT+U/hd/z7XTQGvr7P/oDJCAHkw0AA/qdH/ANLIAOC7LAFJolIACbCP/xNMwf8dO6cBGCuaABy+vgCNvIEA6OvL/+oAbf82QZ8APFjo/3n9lv786YP/xm4pAVNNR//IFjv+av3y/xUMz//tQr0AWsbKAeGsfwA1FsoAOOaEAAFWtwBtvioA80SuAW3kmgDIsXoBI6C3/7EwVf9a2qn/+JhOAMr+bgAGNCsAjmJB/z+RFgBGal0A6IprAW6zPf/TgdoB8tFcACNa2QG2j2r/dGXZ/3L63f+tzAYAPJajAEmsLP/vblD/7UyZ/qGM+QCV6OUAhR8o/66kdwBxM9YAgeQC/kAi8wBr4/T/rmrI/1SZRgEyIxAA+krY/uy9Qv+Z+Q0A5rIE/90p7gB243n/XleM/v53XABJ7/b+dVeAABPTkf+xLvwA5Vv2AUWA9//KTTYBCAsJ/5lgpgDZ1q3/hsACAQDPAAC9rmsBjIZkAJ7B8wG2ZqsA65ozAI4Fe/88qFkB2Q5c/xPWBQHTp/4ALAbK/ngS7P8Pcbj/uN+LACixd/62e1r/sKWwAPdNwgAb6ngA5wDW/zsnHgB9Y5H/lkREAY3e+ACZe9L/bn+Y/+Uh1gGH3cUAiWECAAyPzP9RKbwAc0+C/14DhACYr7v/fI0K/37As/8LZ8YAlQYtANtVuwHmErL/SLaYAAPGuP+AcOABYaHmAP5jJv86n8UAl0LbADtFj/+5cPkAd4gv/3uChACoR1//cbAoAei5rQDPXXUBRJ1s/2YFk/4xYSEAWUFv/vceo/982d0BZvrYAMauS/45NxIA4wXsAeXVrQDJbdoBMenvAB43ngEZsmoAm2+8AV5+jADXH+4BTfAQANXyGQEmR6gAzbpd/jHTjP/bALT/hnalAKCThv9uuiP/xvMqAPOSdwCG66MBBPGH/8Euwf5ntE//4QS4/vJ2ggCSh7AB6m8eAEVC1f4pYHsAeV4q/7K/w/8ugioAdVQI/+kx1v7uem0ABkdZAezTewD0DTD+d5QOAHIcVv9L7Rn/keUQ/oFkNf+Glnj+qJ0yABdIaP/gMQ4A/3sW/5e5l/+qULgBhrYUAClkZQGZIRAATJpvAVbO6v/AoKT+pXtd/wHYpP5DEa//qQs7/54pPf9JvA7/wwaJ/xaTHf8UZwP/9oLj/3oogADiLxj+IyQgAJi6t/9FyhQAw4XDAN4z9wCpq14BtwCg/0DNEgGcUw//xTr5/vtZbv8yClj+MyvYAGLyxgH1l3EAq+zCAcUfx//lUSYBKTsUAP1o5gCYXQ7/9vKS/tap8P/wZmz+oKfsAJravACW6cr/GxP6AQJHhf+vDD8BkbfGAGh4c/+C+/cAEdSn/z57hP/3ZL0Am9+YAI/FIQCbOyz/ll3wAX8DV/9fR88Bp1UB/7yYdP8KFxcAicNdATZiYQDwAKj/lLx/AIZrlwBM/asAWoTAAJIWNgDgQjb+5rrl/ye2xACU+4L/QYNs/oABoACpMaf+x/6U//sGgwC7/oH/VVI+ALIXOv/+hAUApNUnAIb8kv4lNVH/m4ZSAM2n7v9eLbT/hCihAP5vcAE2S9kAs+bdAetev/8X8zABypHL/yd2Kv91jf0A/gDeACv7MgA2qeoBUETQAJTL8/6RB4cABv4AAPy5fwBiCIH/JiNI/9Mk3AEoGlkAqEDF/gPe7/8CU9f+tJ9pADpzwgC6dGr/5ffb/4F2wQDKrrcBpqFIAMlrk/7tiEoA6eZqAWlvqABA4B4BAeUDAGaXr//C7uT//vrUALvteQBD+2ABxR4LALdfzADNWYoAQN0lAf/fHv+yMNP/8cha/6fRYP85gt0ALnLI/z24QgA3thj+brYhAKu+6P9yXh8AEt0IAC/n/gD/cFMAdg/X/60ZKP7AwR//7hWS/6vBdv9l6jX+g9RwAFnAawEI0BsAtdkP/+eV6ACM7H4AkAnH/wxPtf6Ttsr/E222/zHU4QBKo8sAr+mUABpwMwDBwQn/D4f5AJbjggDMANsBGPLNAO7Qdf8W9HAAGuUiACVQvP8mLc7+8Frh/x0DL/8q4EwAuvOnACCED/8FM30Ai4cYAAbx2wCs5YX/9tYyAOcLz/+/flMBtKOq//U4GAGypNP/AxDKAWI5dv+Ng1n+ITMYAPOVW//9NA4AI6lD/jEeWP+zGyT/pYy3ADq9lwBYHwAAS6lCAEJlx/8Y2McBecQa/w5Py/7w4lH/XhwK/1PB8P/MwYP/Xg9WANoonQAzwdEAAPKxAGa59wCebXQAJodbAN+vlQDcQgH/VjzoABlgJf/heqIB17uo/56dLgA4q6IA6PBlAXoWCQAzCRX/NRnu/9ke6P59qZQADehmAJQJJQClYY0B5IMpAN4P8//+EhEABjztAWoDcQA7hL0AXHAeAGnQ1QAwVLP/u3nn/hvYbf+i3Wv+Se/D//ofOf+Vh1n/uRdzAQOjnf8ScPoAGTm7/6FgpAAvEPMADI37/kPquP8pEqEArwZg/6CsNP4YsLf/xsFVAXx5if+XMnL/3Ms8/8/vBQEAJmv/N+5e/kaYXgDV3E0BeBFF/1Wkvv/L6lEAJjEl/j2QfACJTjH+qPcwAF+k/ABpqYcA/eSGAECmSwBRSRT/z9IKAOpqlv9eIlr//p85/tyFYwCLk7T+GBe5ACk5Hv+9YUwAQbvf/+CsJf8iPl8B55DwAE1qfv5AmFsAHWKbAOL7Nf/q0wX/kMve/6Sw3f4F5xgAs3rNACQBhv99Rpf+YeT8AKyBF/4wWtH/luBSAVSGHgDxxC4AZ3Hq/y5lef4ofPr/hy3y/gn5qP+MbIP/j6OrADKtx/9Y3o7/yF+eAI7Ao/8HdYcAb3wWAOwMQf5EJkH/467+APT1JgDwMtD/oT/6ADzR7wB6IxMADiHm/gKfcQBqFH//5M1gAInSrv601JD/WWKaASJYiwCnonABQW7FAPElqQBCOIP/CslT/oX9u/+xcC3+xPsAAMT6l//u6Nb/ltHNABzwdgBHTFMB7GNbACr6gwFgEkD/dt4jAHHWy/96d7j/QhMkAMxA+QCSWYsAhj6HAWjpZQC8VBoAMfmBANDWS//Pgk3/c6/rAKsCif+vkboBN/WH/5pWtQFkOvb/bcc8/1LMhv/XMeYBjOXA/97B+/9RiA//s5Wi/xcnHf8HX0v+v1HeAPFRWv9rMcn/9NOdAN6Mlf9B2zj+vfZa/7I7nQEw2zQAYiLXABwRu/+vqRgAXE+h/+zIwgGTj+oA5eEHAcWoDgDrMzUB/XiuAMUGqP/KdasAoxXOAHJVWv8PKQr/whNjAEE32P6iknQAMs7U/0CSHf+enoMBZKWC/6wXgf99NQn/D8ESARoxC/+1rskBh8kO/2QTlQDbYk8AKmOP/mAAMP/F+VP+aJVP/+tuiP5SgCz/QSkk/ljTCgC7ebsAYobHAKu8s/7SC+7/QnuC/jTqPQAwcRf+BlZ4/3ey9QBXgckA8o3RAMpyVQCUFqEAZ8MwABkxq/+KQ4IAtkl6/pQYggDT5ZoAIJueAFRpPQCxwgn/pllWATZTuwD5KHX/bQPX/zWSLAE/L7MAwtgD/g5UiACIsQ3/SPO6/3URff/TOtP/XU/fAFpY9f+L0W//Rt4vAAr2T//G2bIA4+ELAU5+s/8+K34AZ5QjAIEIpf718JQAPTOOAFHQhgAPiXP/03fs/5/1+P8Choj/5os6AaCk/gByVY3/Maa2/5BGVAFVtgcALjVdAAmmof83orL/Lbi8AJIcLP6pWjEAeLLxAQ57f/8H8ccBvUIy/8aPZf6984f/jRgY/kthVwB2+5oB7TacAKuSz/+DxPb/iEBxAZfoOQDw2nMAMT0b/0CBSQH8qRv/KIQKAVrJwf/8efABus4pACvGYQCRZLcAzNhQ/qyWQQD55cT+aHtJ/01oYP6CtAgAaHs5ANzK5f9m+dMAVg7o/7ZO0QDv4aQAag0g/3hJEf+GQ+kAU/61ALfscAEwQIP/8djz/0HB4gDO8WT+ZIam/+3KxQA3DVEAIHxm/yjksQB2tR8B56CG/3e7ygAAjjz/gCa9/6bJlgDPeBoBNrisAAzyzP6FQuYAIiYfAbhwUAAgM6X+v/M3ADpJkv6bp83/ZGiY/8X+z/+tE/cA7grKAO+X8gBeOyf/8B1m/wpcmv/lVNv/oYFQANBazAHw267/nmaRATWyTP80bKgBU95rANMkbQB2OjgACB0WAO2gxwCq0Z0AiUcvAI9WIADG8gIA1DCIAVysugDml2kBYL/lAIpQv/7w2IL/YisG/qjEMQD9ElsBkEl5AD2SJwE/aBj/uKVw/n7rYgBQ1WL/ezxX/1KM9QHfeK3/D8aGAc487wDn6lz/Ie4T/6VxjgGwdyYAoCum/u9baQBrPcIBGQREAA+LMwCkhGr/InQu/qhfxQCJ1BcASJw6AIlwRf6WaZr/7MmdABfUmv+IUuP+4jvd/1+VwABRdjT/ISvXAQ6TS/9ZnHn+DhJPAJPQiwGX2j7/nFgIAdK4Yv8Ur3v/ZlPlANxBdAGW+gT/XI7c/yL3Qv/M4bP+l1GXAEco7P+KPz4ABk/w/7e5tQB2MhsAP+PAAHtjOgEy4Jv/EeHf/tzgTf8OLHsBjYCvAPjUyACWO7f/k2EdAJbMtQD9JUcAkVV3AJrIugACgPn/Uxh8AA5XjwCoM/UBfJfn/9DwxQF8vrkAMDr2ABTp6AB9EmL/Df4f//Wxgv9sjiMAq33y/owMIv+loaIAzs1lAPcZIgFkkTkAJ0Y5AHbMy//yAKIApfQeAMZ04gCAb5n/jDa2ATx6D/+bOjkBNjLGAKvTHf9riqf/rWvH/22hwQBZSPL/znNZ//r+jv6xyl7/UVkyAAdpQv8Z/v/+y0AX/0/ebP8n+UsA8XwyAO+YhQDd8WkAk5diANWhef7yMYkA6SX5/iq3GwC4d+b/2SCj/9D75AGJPoP/T0AJ/l4wcQARijL+wf8WAPcSxQFDN2gAEM1f/zAlQgA3nD8BQFJK/8g1R/7vQ30AGuDeAN+JXf8e4Mr/CdyEAMYm6wFmjVYAPCtRAYgcGgDpJAj+z/KUAKSiPwAzLuD/cjBP/wmv4gDeA8H/L6Do//9daf4OKuYAGopSAdAr9AAbJyb/YtB//0CVtv8F+tEAuzwc/jEZ2v+pdM3/dxJ4AJx0k/+ENW3/DQrKAG5TpwCd24n/BgOC/zKnHv88ny//gYCd/l4DvQADpkQAU9/XAJZawgEPqEEA41Mz/82rQv82uzwBmGYt/3ea4QDw94gAZMWy/4tH3//MUhABKc4q/5zA3f/Ye/T/2tq5/7u67//8rKD/wzQWAJCutf67ZHP/006w/xsHwQCT1Wj/WskK/1B7QgEWIboAAQdj/h7OCgDl6gUANR7SAIoI3P5HN6cASOFWAXa+vAD+wWUBq/ms/16et/5dAmz/sF1M/0ljT/9KQIH+9i5BAGPxf/72l2b/LDXQ/jtm6gCar6T/WPIgAG8mAQD/tr7/c7AP/qk8gQB67fEAWkw/AD5KeP96w24AdwSyAN7y0gCCIS7+nCgpAKeScAExo2//ebDrAEzPDv8DGcYBKevVAFUk1gExXG3/yBge/qjswwCRJ3wB7MOVAFokuP9DVar/JiMa/oN8RP/vmyP/NsmkAMQWdf8xD80AGOAdAX5xkAB1FbYAy5+NAN+HTQCw5rD/vuXX/2Mltf8zFYr/Gb1Z/zEwpf6YLfcAqmzeAFDKBQAbRWf+zBaB/7T8Pv7SAVv/km7+/9uiHADf/NUBOwghAM4Q9ACB0zAAa6DQAHA70QBtTdj+IhW5//ZjOP+zixP/uR0y/1RZEwBK+mL/4SrI/8DZzf/SEKcAY4RfASvmOQD+C8v/Y7w//3fB+/5QaTYA6LW9AbdFcP/Qq6X/L220/3tTpQCSojT/mgsE/5fjWv+SiWH+Pekp/14qN/9spOwAmET+AAqMg/8Kak/+856JAEOyQv6xe8b/Dz4iAMVYKv+VX7H/mADG/5X+cf/hWqP/fdn3ABIR4ACAQnj+wBkJ/zLdzQAx1EYA6f+kAALRCQDdNNv+rOD0/144zgHyswL/H1ukAeYuiv+95twAOS89/28LnQCxW5gAHOZiAGFXfgDGWZH/p09rAPlNoAEd6eb/lhVW/jwLwQCXJST+uZbz/+TUUwGsl7QAyambAPQ86gCO6wQBQ9o8AMBxSwF088//QaybAFEenP9QSCH+Eudt/45rFf59GoT/sBA7/5bJOgDOqckA0HniACisDv+WPV7/ODmc/408kf8tbJX/7pGb/9FVH/7ADNIAY2Jd/pgQlwDhudwAjess/6CsFf5HGh//DUBd/hw4xgCxPvgBtgjxAKZllP9OUYX/gd7XAbypgf/oB2EAMXA8/9nl+wB3bIoAJxN7/oMx6wCEVJEAguaU/xlKuwAF9Tb/udvxARLC5P/xymYAaXHKAJvrTwAVCbL/nAHvAMiUPQBz99L/Md2HADq9CAEjLgkAUUEF/zSeuf99dC7/SowN/9JcrP6TF0cA2eD9/nNstP+ROjD+27EY/5z/PAGak/IA/YZXADVL5QAww97/H68y/5zSeP/QI97/EvizAQIKZf+dwvj/nsxl/2j+xf9PPgQAsqxlAWCS+/9BCpwAAoml/3QE5wDy1wEAEyMd/yuhTwA7lfYB+0KwAMghA/9Qbo7/w6ERAeQ4Qv97L5H+hASkAEOurAAZ/XIAV2FXAfrcVABgW8j/JX07ABNBdgChNPH/7awG/7C///8BQYL+377mAGX95/+SI20A+h1NATEAEwB7WpsBFlYg/9rVQQBvXX8APF2p/wh/tgARug7+/Yn2/9UZMP5M7gD/+FxG/2PgiwC4Cf8BB6TQAM2DxgFX1scAgtZfAN2V3gAXJqv+xW7VACtzjP7XsXYAYDRCAXWe7QAOQLb/Lj+u/55fvv/hzbH/KwWO/6xj1P/0u5MAHTOZ/+R0GP4eZc8AE/aW/4bnBQB9huIBTUFiAOyCIf8Fbj4ARWx//wdxFgCRFFP+wqHn/4O1PADZ0bH/5ZTU/gODuAB1sbsBHA4f/7BmUAAyVJf/fR82/xWdhf8Ts4sB4OgaACJ1qv+n/Kv/SY3O/oH6IwBIT+wB3OUU/ynKrf9jTO7/xhbg/2zGw/8kjWAB7J47/2pkVwBu4gIA4+reAJpdd/9KcKT/Q1sC/xWRIf9m1on/r+Zn/qP2pgBd93T+p+Ac/9wCOQGrzlQAe+QR/xt4dwB3C5MBtC/h/2jIuf6lAnIATU7UAC2asf8YxHn+Up22AFoQvgEMk8UAX++Y/wvrRwBWknf/rIbWADyDxACh4YEAH4J4/l/IMwBp59L/OgmU/yuo3f987Y4AxtMy/i71ZwCk+FQAmEbQ/7R1sQBGT7kA80ogAJWczwDFxKEB9TXvAA9d9v6L8DH/xFgk/6ImewCAyJ0Brkxn/62pIv7YAav/cjMRAIjkwgBuljj+avafABO4T/+WTfD/m1CiAAA1qf8dl1YARF4QAFwHbv5idZX/+U3m//0KjADWfFz+I3brAFkwOQEWNaYAuJA9/7P/wgDW+D3+O272AHkVUf6mA+QAakAa/0Xohv/y3DX+LtxVAHGV9/9hs2f/vn8LAIfRtgBfNIEBqpDO/3rIzP+oZJIAPJCV/kY8KAB6NLH/9tNl/67tCAAHM3gAEx+tAH7vnP+PvcsAxIBY/+mF4v8efa3/yWwyAHtkO//+owMB3ZS1/9aIOf7etIn/z1g2/xwh+/9D1jQB0tBkAFGqXgCRKDUA4G/n/iMc9P/ix8P+7hHmANnZpP6pnd0A2i6iAcfPo/9sc6IBDmC7/3Y8TAC4n5gA0edH/iqkuv+6mTP+3au2/6KOrQDrL8EAB4sQAV+kQP8Q3aYA28UQAIQdLP9kRXX/POtY/ihRrQBHvj3/u1idAOcLFwDtdaQA4ajf/5pydP+jmPIBGCCqAH1icf6oE0wAEZ3c/ps0BQATb6H/R1r8/61u8AAKxnn//f/w/0J70gDdwtf+eaMR/+EHYwC+MbYAcwmFAegaiv/VRIQALHd6/7NiMwCVWmoARzLm/wqZdv+xRhkApVfNADeK6gDuHmEAcZvPAGKZfwAia9v+dXKs/0y0//7yObP/3SKs/jiiMf9TA///cd29/7wZ5P4QWFn/RxzG/hYRlf/zef7/a8pj/wnODgHcL5kAa4knAWExwv+VM8X+ujoL/2sr6AHIBg7/tYVB/t3kq/97PucB4+qz/yK91P70u/kAvg1QAYJZAQDfha0ACd7G/0J/SgCn2F3/m6jGAUKRAABEZi4BrFqaANiAS/+gKDMAnhEbAXzwMQDsyrD/l3zA/ybBvgBftj0Ao5N8//+lM/8cKBH+12BOAFaR2v4fJMr/VgkFAG8pyP/tbGEAOT4sAHW4DwEt8XQAmAHc/52lvAD6D4MBPCx9/0Hc+/9LMrgANVqA/+dQwv+IgX8BFRK7/y06of9HkyIArvkL/iONHQDvRLH/c246AO6+sQFX9ab/vjH3/5JTuP+tDif/ktdoAI7feACVyJv/1M+RARC12QCtIFf//yO1AHffoQHI317/Rga6/8BDVf8yqZgAkBp7/zjzs/4URIgAJ4y8/v3QBf/Ic4cBK6zl/5xouwCX+6cANIcXAJeZSACTxWv+lJ4F/+6PzgB+mYn/WJjF/gdEpwD8n6X/7042/xg/N/8m3l4A7bcM/87M0gATJ/b+HkrnAIdsHQGzcwAAdXZ0AYQG/P+RgaEBaUONAFIl4v/u4uT/zNaB/qJ7ZP+5eeoALWznAEIIOP+EiIAArOBC/q+dvADm3+L+8ttFALgOdwFSojgAcnsUAKJnVf8x72P+nIfXAG//p/4nxNYAkCZPAfmofQCbYZz/FzTb/5YWkAAslaX/KH+3AMRN6f92gdL/qofm/9Z3xgDp8CMA/TQH/3VmMP8VzJr/s4ix/xcCAwGVgln//BGfAUY8GgCQaxEAtL48/zi2O/9uRzb/xhKB/5XgV//fFZj/iha2//qczQDsLdD/T5TyAWVG0QBnTq4AZZCs/5iI7QG/wogAcVB9AZgEjQCbljX/xHT1AO9ySf4TUhH/fH3q/yg0vwAq0p7/m4SlALIFKgFAXCj/JFVN/7LkdgCJQmD+c+JCAG7wRf6Xb1AAp67s/+Nsa/+88kH/t1H/ADnOtf8vIrX/1fCeAUdLXwCcKBj/ZtJRAKvH5P+aIikA469LABXvwwCK5V8BTMAxAHV7VwHj4YIAfT4//wLGqwD+JA3+kbrOAJT/9P8jAKYAHpbbAVzk1ABcxjz+PoXI/8kpOwB97m3/tKPuAYx6UgAJFlj/xZ0v/5leOQBYHrYAVKFVALKSfACmpgf/FdDfAJy28gCbebkAU5yu/poQdv+6U+gB3zp5/x0XWAAjfX//qgWV/qQMgv+bxB0AoWCIAAcjHQGiJfsAAy7y/wDZvAA5ruIBzukCADm7iP57vQn/yXV//7okzADnGdgAUE5pABOGgf+Uy0QAjVF9/vilyP/WkIcAlzem/ybrWwAVLpoA3/6W/yOZtP99sB0BK2Ie/9h65v/poAwAObkM/vBxB/8FCRD+GltsAG3GywAIkygAgYbk/3y6KP9yYoT+poQXAGNFLAAJ8u7/uDU7AISBZv80IPP+k9/I/3tTs/6HkMn/jSU4AZc84/9aSZwBy6y7AFCXL/9eief/JL87/+HRtf9K19X+Bnaz/5k2wQEyAOcAaJ1IAYzjmv+24hD+YOFc/3MUqv4G+k4A+Eut/zVZBv8AtHYASK0BAEAIzgGuhd8AuT6F/9YLYgDFH9AAq6f0/xbntQGW2rkA96lhAaWL9/8veJUBZ/gzADxFHP4Zs8QAfAfa/jprUQC46Zz//EokAHa8QwCNXzX/3l6l/i49NQDOO3P/L+z6/0oFIAGBmu7/aiDiAHm7Pf8DpvH+Q6qs/x3Ysv8XyfwA/W7zAMh9OQBtwGD/NHPuACZ58//JOCEAwnaCAEtgGf+qHub+Jz/9ACQt+v/7Ae8AoNRcAS3R7QDzIVf+7VTJ/9QSnf7UY3//2WIQ/ous7wCoyYL/j8Gp/+6XwQHXaCkA7z2l/gID8gAWy7H+scwWAJWB1f4fCyn/AJ95/qAZcv+iUMgAnZcLAJqGTgHYNvwAMGeFAGncxQD9qE3+NbMXABh58AH/LmD/azyH/mLN+f8/+Xf/eDvT/3K0N/5bVe0AldRNAThJMQBWxpYAXdGgAEXNtv/0WisAFCSwAHp03QAzpycB5wE//w3FhgAD0SL/hzvKAKdkTgAv30wAuTw+ALKmewGEDKH/Pa4rAMNFkAB/L78BIixOADnqNAH/Fij/9l6SAFPkgAA8TuD/AGDS/5mv7ACfFUkAtHPE/oPhagD/p4YAnwhw/3hEwv+wxMb/djCo/12pAQBwyGYBShj+ABONBP6OPj8Ag7O7/02cm/93VqQAqtCS/9CFmv+Umzr/onjo/vzVmwDxDSoAXjKDALOqcACMU5f/N3dUAYwj7/+ZLUMB7K8nADaXZ/+eKkH/xO+H/lY1ywCVYS/+2CMR/0YDRgFnJFr/KBqtALgwDQCj29n/UQYB/92qbP7p0F0AZMn5/lYkI//Rmh4B48n7/wK9p/5kOQMADYApAMVkSwCWzOv/ka47AHj4lf9VN+EActI1/sfMdwAO90oBP/uBAENolwGHglAAT1k3/3Xmnf8ZYI8A1ZEFAEXxeAGV81//cioUAINIAgCaNRT/ST5tAMRmmAApDMz/eiYLAfoKkQDPfZQA9vTe/ykgVQFw1X4AovlWAUfGf/9RCRUBYicE/8xHLQFLb4kA6jvnACAwX//MH3IBHcS1/zPxp/5dbY4AaJAtAOsMtf80cKQATP7K/64OogA965P/K0C5/ul92QDzWKf+SjEIAJzMQgB81nsAJt12AZJw7AByYrEAl1nHAFfFcAC5laEALGClAPizFP+829j+KD4NAPOOjQDl487/rMoj/3Ww4f9SbiYBKvUO/xRTYQAxqwoA8nd4ABnoPQDU8JP/BHM4/5ER7/7KEfv/+RL1/2N17wC4BLP/9u0z/yXvif+mcKb/Ubwh/7n6jv82u60A0HDJAPYr5AFouFj/1DTE/zN1bP/+dZsALlsP/1cOkP9X48wAUxpTAZ9M4wCfG9UBGJdsAHWQs/6J0VIAJp8KAHOFyQDftpwBbsRd/zk86QAFp2n/msWkAGAiuv+ThSUB3GO+AAGnVP8UkasAwsX7/l9Ohf/8+PP/4V2D/7uGxP/YmaoAFHae/owBdgBWng8BLdMp/5MBZP5xdEz/039sAWcPMADBEGYBRTNf/2uAnQCJq+kAWnyQAWqhtgCvTOwByI2s/6M6aADptDT/8P0O/6Jx/v8m74r+NC6mAPFlIf6DupwAb9A+/3xeoP8frP4AcK44/7xjG/9DivsAfTqAAZyYrv+yDPf//FSeAFLFDv6syFP/JScuAWrPpwAYvSIAg7KQAM7VBACh4tIASDNp/2Etu/9OuN//sB37AE+gVv90JbIAUk3VAVJUjf/iZdQBr1jH//Ve9wGsdm3/prm+AIO1eABX/l3/hvBJ/yD1j/+Lomf/s2IS/tnMcACT33j/NQrzAKaMlgB9UMj/Dm3b/1vaAf/8/C/+bZx0/3MxfwHMV9P/lMrZ/xpV+f8O9YYBTFmp//It5gA7Yqz/ckmE/k6bMf+eflQAMa8r/xC2VP+dZyMAaMFt/0PdmgDJrAH+CKJYAKUBHf99m+X/HprcAWfvXADcAW3/ysYBAF4CjgEkNiwA6+Ke/6r71v+5TQkAYUryANujlf/wI3b/33JY/sDHAwBqJRj/yaF2/2FZYwHgOmf/ZceT/t48YwDqGTsBNIcbAGYDW/6o2OsA5eiIAGg8gQAuqO4AJ79DAEujLwCPYWL/ONioAajp/P8jbxb/XFQrABrIVwFb/ZgAyjhGAI4ITQBQCq8B/MdMABZuUv+BAcIAC4A9AVcOkf/93r4BD0iuAFWjVv46Yyz/LRi8/hrNDwAT5dL++EPDAGNHuACaxyX/l/N5/yYzS//JVYL+LEH6ADmT8/6SKzv/WRw1ACFUGP+zMxL+vUZTAAucswFihncAnm9vAHeaSf/IP4z+LQ0N/5rAAv5RSCoALqC5/ixwBgCS15UBGrBoAEQcVwHsMpn/s4D6/s7Bv/+mXIn+NSjvANIBzP6orSMAjfMtASQybf8P8sL/4596/7Cvyv5GOUgAKN84ANCiOv+3Yl0AD28MAB4ITP+Ef/b/LfJnAEW1D/8K0R4AA7N5APHo2gF7x1j/AtLKAbyCUf9eZdABZyQtAEzBGAFfGvH/paK7ACRyjADKQgX/JTiTAJgL8wF/Vej/+ofUAbmxcQBa3Ev/RfiSADJvMgBcFlAA9CRz/qNkUv8ZwQYBfz0kAP1DHv5B7Kr/oRHX/j+vjAA3fwQAT3DpAG2gKACPUwf/QRru/9mpjP9OXr3/AJO+/5NHuv5qTX//6Z3pAYdX7f/QDewBm20k/7Rk2gC0oxIAvm4JARE/e/+ziLT/pXt7/5C8Uf5H8Gz/GXAL/+PaM/+nMur/ck9s/x8Tc/+38GMA41eP/0jZ+P9mqV8BgZWVAO6FDAHjzCMA0HMaAWYI6gBwWI8BkPkOAPCerP5kcHcAwo2Z/ig4U/95sC4AKjVM/56/mgBb0VwArQ0QAQVI4v/M/pUAULjPAGQJev52Zav//MsA/qDPNgA4SPkBOIwN/wpAa/5bZTT/4bX4AYv/hADmkREA6TgXAHcB8f/VqZf/Y2MJ/rkPv/+tZ20Brg37/7JYB/4bO0T/CiEC//hhOwAaHpIBsJMKAF95zwG8WBgAuV7+/nM3yQAYMkYAeDUGAI5CkgDk4vn/aMDeAa1E2wCiuCT/j2aJ/50LFwB9LWIA613h/jhwoP9GdPMBmfk3/4EnEQHxUPQAV0UVAV7kSf9OQkH/wuPnAD2SV/+tmxf/cHTb/tgmC/+DuoUAXtS7AGQvWwDM/q//3hLX/q1EbP/j5E//Jt3VAKPjlv4fvhIAoLMLAQpaXv/crlgAo9Pl/8eINACCX93/jLzn/otxgP91q+z+MdwU/zsUq//kbbwAFOEg/sMQrgDj/ogBhydpAJZNzv/S7uIAN9SE/u85fACqwl3/+RD3/xiXPv8KlwoAT4uy/3jyygAa29UAPn0j/5ACbP/mIVP/US3YAeA+EQDW2X0AYpmZ/7Owav6DXYr/bT4k/7J5IP94/EYA3PglAMxYZwGA3Pv/7OMHAWoxxv88OGsAY3LuANzMXgFJuwEAWZoiAE7Zpf8Ow/n/Ceb9/82H9QAa/Af/VM0bAYYCcAAlniAA51vt/7+qzP+YB94AbcAxAMGmkv/oE7X/aY40/2cQGwH9yKUAw9kE/zS9kP97m6D+V4I2/054Pf8OOCkAGSl9/1eo9QDWpUYA1KkG/9vTwv5IXaT/xSFn/yuOjQCD4awA9GkcAERE4QCIVA3/gjko/otNOABUljUANl+dAJANsf5fc7oAdRd2//Sm8f8LuocAsmrL/2HaXQAr/S0ApJgEAIt27wBgARj+65nT/6huFP8y77AAcinoAMH6NQD+oG/+iHop/2FsQwDXmBf/jNHUACq9owDKKjL/amq9/75E2f/pOnUA5dzzAcUDBAAleDb+BJyG/yQ9q/6liGT/1OgOAFquCgDYxkH/DANAAHRxc//4ZwgA530S/6AcxQAeuCMB30n5/3sULv6HOCX/rQ3lAXehIv/1PUkAzX1wAIlohgDZ9h7/7Y6PAEGfZv9spL4A23Wt/yIleP7IRVAAH3za/koboP+6msf/R8f8AGhRnwERyCcA0z3AARruWwCU2QwAO1vV/wtRt/+B5nr/csuRAXe0Qv9IirQA4JVqAHdSaP/QjCsAYgm2/81lhv8SZSYAX8Wm/8vxkwA+0JH/hfb7AAKpDgAN97gAjgf+ACTIF/9Yzd8AW4E0/xW6HgCP5NIB9+r4/+ZFH/6wuof/7s00AYtPKwARsNn+IPNDAPJv6QAsIwn/43JRAQRHDP8mab8AB3Uy/1FPEAA/REH/nSRu/03xA//iLfsBjhnOAHh70QEc/u7/BYB+/1ve1/+iD78AVvBJAIe5Uf4s8aMA1NvS/3CimwDPZXYAqEg4/8QFNABIrPL/fhad/5JgO/+ieZj+jBBfAMP+yP5SlqIAdyuR/sysTv+m4J8AaBPt//V+0P/iO9UAddnFAJhI7QDcHxf+Dlrn/7zUQAE8Zfb/VRhWAAGxbQCSUyABS7bAAHfx4AC57Rv/uGVSAeslTf/9hhMA6PZ6ADxqswDDCwwAbULrAX1xOwA9KKQAr2jwAAIvu/8yDI0Awou1/4f6aABhXN7/2ZXJ/8vxdv9Pl0MAeo7a/5X17wCKKsj+UCVh/3xwp/8kilf/gh2T//FXTv/MYRMBsdEW//fjf/5jd1P/1BnGARCzswCRTaz+WZkO/9q9pwBr6Tv/IyHz/ixwcP+hf08BzK8KACgViv5odOQAx1+J/4W+qP+SpeoBt2MnALfcNv7/3oUAott5/j/vBgDhZjb/+xL2AAQigQGHJIMAzjI7AQ9htwCr2If/ZZgr/5b7WwAmkV8AIswm/rKMU/8ZgfP/TJAlAGokGv52kKz/RLrl/2uh1f8uo0T/lar9ALsRDwDaoKX/qyP2AWANEwCly3UA1mvA//R7sQFkA2gAsvJh//tMgv/TTSoB+k9G/z/0UAFpZfYAPYg6Ae5b1QAOO2L/p1RNABGELv45r8X/uT64AExAzwCsr9D+r0olAIob0/6UfcIACllRAKjLZf8r1dEB6/U2AB4j4v8JfkYA4n1e/px1FP85+HAB5jBA/6RcpgHg1ub/JHiPADcIK//7AfUBamKlAEprav41BDb/WrKWAQN4e//0BVkBcvo9//6ZUgFNDxEAOe5aAV/f5gDsNC/+Z5Sk/3nPJAESELn/SxRKALsLZQAuMIH/Fu/S/03sgf9vTcz/PUhh/8fZ+/8q18wAhZHJ/znmkgHrZMYAkkkj/mzGFP+2T9L/UmeIAPZssAAiETz/E0py/qiqTv+d7xT/lSmoADp5HABPs4b/53mH/67RYv/zer4Aq6bNANR0MAAdbEL/ot62AQ53FQDVJ/n//t/k/7elxgCFvjAAfNBt/3evVf8J0XkBMKu9/8NHhgGI2zP/tluN/jGfSAAjdvX/cLrj/zuJHwCJLKMAcmc8/gjVlgCiCnH/wmhIANyDdP+yT1wAy/rV/l3Bvf+C/yL+1LyXAIgRFP8UZVP/1M6mAOXuSf+XSgP/qFfXAJu8hf+mgUkA8E+F/7LTUf/LSKP+wailAA6kx/4e/8wAQUhbAaZKZv/IKgD/wnHj/0IX0ADl2GT/GO8aAArpPv97CrIBGiSu/3fbxwEto74AEKgqAKY5xv8cGhoAfqXnAPtsZP895Xn/OnaKAEzPEQANInD+WRCoACXQaf8jydf/KGpl/gbvcgAoZ+L+9n9u/z+nOgCE8I4ABZ5Y/4FJnv9eWZIA5jaSAAgtrQBPqQEAc7r3AFRAgwBD4P3/z71AAJocUQEtuDb/V9Tg/wBgSf+BIesBNEJQ//uum/8EsyUA6qRd/l2v/QDGRVf/4GouAGMd0gA+vHL/LOoIAKmv9/8XbYn/5bYnAMClXv71ZdkAv1hgAMReY/9q7gv+NX7zAF4BZf8ukwIAyXx8/40M2gANpp0BMPvt/5v6fP9qlJL/tg3KABw9pwDZmAj+3IIt/8jm/wE3QVf/Xb9h/nL7DgAgaVwBGs+NABjPDf4VMjD/upR0/9Mr4QAlIqL+pNIq/0QXYP+21gj/9XWJ/0LDMgBLDFP+UIykAAmlJAHkbuMA8RFaARk01AAG3wz/i/M5AAxxSwH2t7//1b9F/+YPjgABw8T/iqsv/0A/agEQqdb/z644AVhJhf+2hYwAsQ4Z/5O4Nf8K46H/eNj0/0lN6QCd7osBO0HpAEb72AEpuJn/IMtwAJKT/QBXZW0BLFKF//SWNf9emOj/O10n/1iT3P9OUQ0BIC/8/6ATcv9dayf/dhDTAbl30f/j23/+WGns/6JuF/8kpm7/W+zd/0LqdABvE/T+CukaACC3Bv4Cv/IA2pw1/ik8Rv+o7G8Aebl+/+6Oz/83fjQA3IHQ/lDMpP9DF5D+2ihs/3/KpADLIQP/Ap4AACVgvP/AMUoAbQQAAG+nCv5b2of/y0Kt/5bC4gDJ/Qb/rmZ5AM2/bgA1wgQAUSgt/iNmj/8MbMb/EBvo//xHugGwbnIAjgN1AXFNjgATnMUBXC/8ADXoFgE2EusALiO9/+zUgQACYND+yO7H/zuvpP+SK+cAwtk0/wPfDACKNrL+VevPAOjPIgAxNDL/pnFZ/wot2P8+rRwAb6X2AHZzW/+AVDwAp5DLAFcN8wAWHuQBsXGS/4Gq5v78mYH/keErAEbnBf96aX7+VvaU/24lmv7RA1sARJE+AOQQpf833fn+stJbAFOS4v5FkroAXdJo/hAZrQDnuiYAvXqM//sNcP9pbl0A+0iqAMAX3/8YA8oB4V3kAJmTx/5tqhYA+GX2/7J8DP+y/mb+NwRBAH3WtAC3YJMALXUX/oS/+QCPsMv+iLc2/5LqsQCSZVb/LHuPASHRmADAWin+Uw99/9WsUgDXqZAAEA0iACDRZP9UEvkBxRHs/9m65gAxoLD/b3Zh/+1o6wBPO1z+RfkL/yOsSgETdkQA3nyl/7RCI/9WrvYAK0pv/36QVv/k6lsA8tUY/kUs6//ctCMACPgH/2YvXP/wzWb/cearAR+5yf/C9kb/ehG7AIZGx/+VA5b/dT9nAEFoe//UNhMBBo1YAFOG8/+INWcAqRu0ALExGABvNqcAwz3X/x8BbAE8KkYAuQOi/8KVKP/2fyb+vncm/z13CAFgodv/KsvdAbHypP/1nwoAdMQAAAVdzf6Af7MAfe32/5Wi2f9XJRT+jO7AAAkJwQBhAeIAHSYKAACIP//lSNL+JoZc/07a0AFoJFT/DAXB//KvPf+/qS4Bs5OT/3G+i/59rB8AA0v8/tckDwDBGxgB/0WV/26BdgDLXfkAiolA/iZGBgCZdN4AoUp7AMFjT/92O17/PQwrAZKxnQAuk78AEP8mAAszHwE8OmL/b8JNAZpb9ACMKJABrQr7AMvRMv5sgk4A5LRaAK4H+gAfrjwAKaseAHRjUv92wYv/u63G/tpvOAC5e9gA+Z40ADS0Xf/JCVv/OC2m/oSby/866G4ANNNZ//0AogEJV7cAkYgsAV569QBVvKsBk1zGAAAIaAAeX64A3eY0Aff36/+JrjX/IxXM/0fj1gHoUsIACzDj/6pJuP/G+/z+LHAiAINlg/9IqLsAhId9/4poYf/uuKj/82hU/4fY4v+LkO0AvImWAVA4jP9Wqaf/wk4Z/9wRtP8RDcEAdYnU/43glwAx9K8AwWOv/xNjmgH/QT7/nNI3//L0A//6DpUAnljZ/53Phv776BwALpz7/6s4uP/vM+oAjoqD/xn+8wEKycIAP2FLANLvogDAyB8BddbzABhH3v42KOj/TLdv/pAOV//WT4j/2MTUAIQbjP6DBf0AfGwT/xzXSwBM3jf+6bY/AESrv/40b97/CmlN/1Cq6wCPGFj/Led5AJSB4AE99lQA/S7b/+9MIQAxlBL+5iVFAEOGFv6Om14AH53T/tUqHv8E5Pf+/LAN/ycAH/7x9P//qi0K/v3e+QDecoQA/y8G/7SjswFUXpf/WdFS/uU0qf/V7AAB1jjk/4d3l/9wycEAU6A1/gaXQgASohEA6WFbAIMFTgG1eDX/dV8//+11uQC/foj/kHfpALc5YQEvybv/p6V3AS1kfgAVYgb+kZZf/3g2mADRYmgAj28e/riU+QDr2C4A+MqU/zlfFgDy4aMA6ffo/0erE/9n9DH/VGdd/0R59AFS4A0AKU8r//nOp//XNBX+wCAW//dvPABlSib/FltU/h0cDf/G59f+9JrIAN+J7QDThA4AX0DO/xE+9//pg3kBXRdNAM3MNP5RvYgAtNuKAY8SXgDMK4z+vK/bAG9ij/+XP6L/0zJH/hOSNQCSLVP+slLu/xCFVP/ixl3/yWEU/3h2I/9yMuf/ouWc/9MaDAByJ3P/ztSGAMXZoP90gV7+x9fb/0vf+QH9dLX/6Ndo/+SC9v+5dVYADgUIAO8dPQHtV4X/fZKJ/syo3wAuqPUAmmkWANzUof9rRRj/idq1//FUxv+CetP/jQiZ/76xdgBgWbIA/xAw/npgaf91Nuj/In5p/8xDpgDoNIr/05MMABk2BwAsD9f+M+wtAL5EgQFqk+EAHF0t/uyND/8RPaEA3HPAAOyRGP5vqKkA4Do//3+kvABS6ksB4J6GANFEbgHZptkARuGmAbvBj/8QB1j/Cs2MAHXAnAEROCYAG3xsAavXN/9f/dQAm4eo//aymf6aREoA6D1g/mmEOwAhTMcBvbCC/wloGf5Lxmb/6QFwAGzcFP9y5kYAjMKF/zmepP6SBlD/qcRhAVW3ggBGnt4BO+3q/2AZGv/or2H/C3n4/lgjwgDbtPz+SgjjAMPjSQG4bqH/MemkAYA1LwBSDnn/wb46ADCudf+EFyAAKAqGARYzGf/wC7D/bjmSAHWP7wGdZXb/NlRMAM24Ev8vBEj/TnBV/8EyQgFdEDT/CGmGAAxtSP86nPsAkCPMACygdf4ya8IAAUSl/29uogCeUyj+TNbqADrYzf+rYJP/KONyAbDj8QBG+bcBiFSL/zx69/6PCXX/sa6J/kn3jwDsuX7/Phn3/y1AOP+h9AYAIjk4AWnKUwCAk9AABmcK/0qKQf9hUGT/1q4h/zKGSv9ul4L+b1SsAFTHS/74O3D/CNiyAQm3XwDuGwj+qs3cAMPlhwBiTO3/4lsaAVLbJ//hvscB2ch5/1GzCP+MQc4Ass9X/vr8Lv9oWW4B/b2e/5DWnv+g9Tb/NbdcARXIwv+SIXEB0QH/AOtqK/+nNOgAneXdADMeGQD63RsBQZNX/097xABBxN//TCwRAVXxRADKt/n/QdTU/wkhmgFHO1AAr8I7/41ICQBkoPQA5tA4ADsZS/5QwsIAEgPI/qCfcwCEj/cBb105/zrtCwGG3of/eqNsAXsrvv/7vc7+ULZI/9D24AERPAkAoc8mAI1tWwDYD9P/iE5uAGKjaP8VUHn/rbK3AX+PBABoPFL+1hAN/2DuIQGelOb/f4E+/zP/0v8+jez+nTfg/3In9ADAvPr/5Ew1AGJUUf+tyz3+kzI3/8zrvwA0xfQAWCvT/hu/dwC855oAQlGhAFzBoAH643gAezfiALgRSACFqAr+Foec/ykZZ/8wyjoAupVR/7yG7wDrtb3+2Yu8/0owUgAu2uUAvf37ADLlDP/Tjb8BgPQZ/6nnev5WL73/hLcX/yWylv8zif0AyE4fABZpMgCCPAAAhKNb/hfnuwDAT+8AnWak/8BSFAEYtWf/8AnqAAF7pP+F6QD/yvLyADy69QDxEMf/4HSe/r99W//gVs8AeSXn/+MJxv8Pme//eejZ/ktwUgBfDDn+M9Zp/5TcYQHHYiQAnNEM/grUNADZtDf+1Kro/9gUVP+d+ocAnWN//gHOKQCVJEYBNsTJ/1d0AP7rq5YAG6PqAMqHtADQXwD+e5xdALc+SwCJ67YAzOH//9aL0v8Ccwj/HQxvADScAQD9Ffv/JaUf/gyC0wBqEjX+KmOaAA7ZPf7YC1z/yMVw/pMmxwAk/Hj+a6lNAAF7n//PS2YAo6/EACwB8AB4urD+DWJM/+188f/okrz/yGDgAMwfKQDQyA0AFeFg/6+cxAD30H4APrj0/gKrUQBVc54ANkAt/xOKcgCHR80A4y+TAdrnQgD90RwA9A+t/wYPdv4QltD/uRYy/1Zwz/9LcdcBP5Ir/wThE/7jFz7/Dv/W/i0Izf9XxZf+0lLX//X49/+A+EYA4fdXAFp4RgDV9VwADYXiAC+1BQFco2n/Bh6F/uiyPf/mlRj/EjGeAORkPf508/v/TUtcAVHbk/9Mo/7+jdX2AOglmP5hLGQAySUyAdT0OQCuq7f/+UpwAKacHgDe3WH/811J/vtlZP/Y2V3//oq7/46+NP87y7H/yF40AHNynv+lmGgBfmPi/3ad9AFryBAAwVrlAHkGWACcIF3+ffHT/w7tnf+lmhX/uOAW//oYmP9xTR8A96sX/+2xzP80iZH/wrZyAODqlQAKb2cByYEEAO6OTgA0Bij/btWl/jzP/QA+10UAYGEA/zEtygB4eRb/64swAcYtIv+2MhsBg9Jb/y42gACve2n/xo1O/kP07//1Nmf+Tiby/wJc+f77rlf/iz+QABhsG/8iZhIBIhaYAELldv4yj2MAkKmVAXYemACyCHkBCJ8SAFpl5v+BHXcARCQLAei3NwAX/2D/oSnB/z+L3gAPs/MA/2QP/1I1hwCJOZUBY/Cq/xbm5P4xtFL/PVIrAG712QDHfT0ALv00AI3F2wDTn8EAN3lp/rcUgQCpd6r/y7KL/4cotv+sDcr/QbKUAAjPKwB6NX8BSqEwAOPWgP5WC/P/ZFYHAfVEhv89KxUBmFRe/748+v7vduj/1oglAXFMa/9daGQBkM4X/26WmgHkZ7kA2jEy/odNi/+5AU4AAKGU/2Ed6f/PlJX/oKgAAFuAq/8GHBP+C2/3ACe7lv+K6JUAdT5E/z/YvP/r6iD+HTmg/xkM8QGpPL8AIION/+2fe/9exV7+dP4D/1yzYf55YVz/qnAOABWV+AD44wMAUGBtAEvASgEMWuL/oWpEAdByf/9yKv/+ShpK//ezlv55jDwAk0bI/9Yoof+hvMn/jUGH//Jz/AA+L8oAtJX//oI37QClEbr/CqnCAJxt2v9wjHv/aIDf/rGObP95Jdv/gE0S/29sFwFbwEsArvUW/wTsPv8rQJkB463+AO16hAF/Wbr/jlKA/vxUrgBas7EB89ZX/2c8ov/Qgg7/C4KLAM6B2/9e2Z3/7+bm/3Rzn/6ka18AM9oCAdh9xv+MyoD+C19E/zcJXf6umQb/zKxgAEWgbgDVJjH+G1DVAHZ9cgBGRkP/D45J/4N6uf/zFDL+gu0oANKfjAHFl0H/VJlCAMN+WgAQ7uwBdrtm/wMYhf+7ReYAOMVcAdVFXv9QiuUBzgfmAN5v5gFb6Xf/CVkHAQJiAQCUSoX/M/a0/+SxcAE6vWz/wsvt/hXRwwCTCiMBVp3iAB+ji/44B0v/Plp0ALU8qQCKotT+UacfAM1acP8hcOMAU5d1AbHgSf+ukNn/5sxP/xZN6P9yTuoA4Dl+/gkxjQDyk6UBaLaM/6eEDAF7RH8A4VcnAftsCADGwY8BeYfP/6wWRgAyRHT/Za8o//hp6QCmywcAbsXaANf+Gv6o4v0AH49gAAtnKQC3gcv+ZPdK/9V+hADSkywAx+obAZQvtQCbW54BNmmv/wJOkf5mml8AgM9//jR87P+CVEcA3fPTAJiqzwDeascAt1Re/lzIOP+KtnMBjmCSAIWI5ABhEpYAN/tCAIxmBADKZ5cAHhP4/zO4zwDKxlkAN8Xh/qlf+f9CQUT/vOp+AKbfZAFw7/QAkBfCADontgD0LBj+r0Sz/5h2mgGwooIA2XLM/q1+Tv8h3h7/JAJb/wKP8wAJ69cAA6uXARjX9f+oL6T+8ZLPAEWBtABE83EAkDVI/vstDgAXbqgARERP/25GX/6uW5D/Ic5f/4kpB/8Tu5n+I/9w/wmRuf4ynSUAC3AxAWYIvv/q86kBPFUXAEonvQB0Me8ArdXSAC6hbP+fliUAxHi5/yJiBv+Zwz7/YeZH/2Y9TAAa1Oz/pGEQAMY7kgCjF8QAOBg9ALViwQD7k+X/Yr0Y/y42zv/qUvYAt2cmAW0+zAAK8OAAkhZ1/46aeABF1CMA0GN2AXn/A/9IBsIAdRHF/30PFwCaT5kA1l7F/7k3k/8+/k7+f1KZAG5mP/9sUqH/abvUAVCKJwA8/13/SAy6ANL7HwG+p5D/5CwT/oBD6ADW+Wv+iJFW/4QusAC9u+P/0BaMANnTdAAyUbr+i/ofAB5AxgGHm2QAoM4X/rui0/8QvD8A/tAxAFVUvwDxwPL/mX6RAeqiov/mYdgBQId+AL6U3wE0ACv/HCe9AUCI7gCvxLkAYuLV/3+f9AHirzwAoOmOAbTzz/9FmFkBH2UVAJAZpP6Lv9EAWxl5ACCTBQAnunv/P3Pm/12nxv+P1dz/s5wT/xlCegDWoNn/Ai0+/2pPkv4ziWP/V2Tn/6+R6P9luAH/rgl9AFIloQEkco3/MN6O//W6mgAFrt3+P3Kb/4c3oAFQH4cAfvqzAezaLQAUHJEBEJNJAPm9hAERvcD/347G/0gUD//6Ne3+DwsSABvTcf7Vazj/rpOS/2B+MAAXwW0BJaJeAMed+f4YgLv/zTGy/l2kKv8rd+sBWLft/9rSAf9r/ioA5gpj/6IA4gDb7VsAgbLLANAyX/7O0F//979Z/m7qT/+lPfMAFHpw//b2uf5nBHsA6WPmAdtb/P/H3hb/s/Xp/9Px6gBv+sD/VVSIAGU6Mv+DrZz+dy0z/3bpEP7yWtYAXp/bAQMD6v9iTFz+UDbmAAXk5/41GN//cTh2ARSEAf+r0uwAOPGe/7pzE/8I5a4AMCwAAXJypv8GSeL/zVn0AInjSwH4rTgASnj2/ncDC/9ReMb/iHpi/5Lx3QFtwk7/3/FGAdbIqf9hvi//L2eu/2NcSP526bT/wSPp/hrlIP/e/MYAzCtH/8dUrACGZr4Ab+5h/uYo5gDjzUD+yAzhAKYZ3gBxRTP/j58YAKe4SgAd4HT+ntDpAMF0fv/UC4X/FjqMAcwkM//oHisA60a1/0A4kv6pElT/4gEN/8gysP801fX+qNFhAL9HNwAiTpwA6JA6AblKvQC6jpX+QEV//6HLk/+wl78AiOfL/qO2iQChfvv+6SBCAETPQgAeHCUAXXJgAf5c9/8sq0UAyncL/7x2MgH/U4j/R1IaAEbjAgAg63kBtSmaAEeG5f7K/yQAKZgFAJo/Sf8itnwAed2W/xrM1QEprFcAWp2S/22CFABHa8j/82a9AAHDkf4uWHUACM7jAL9u/f9tgBT+hlUz/4mxcAHYIhb/gxDQ/3mVqgByExcBplAf/3HwegDos/oARG60/tKqdwDfbKT/z0/p/xvl4v7RYlH/T0QHAIO5ZACqHaL/EaJr/zkVCwFkyLX/f0GmAaWGzABop6gAAaRPAJKHOwFGMoD/ZncN/uMGhwCijrP/oGTeABvg2wGeXcP/6o2JABAYff/uzi//YRFi/3RuDP9gc00AW+Po//j+T/9c5Qb+WMaLAM5LgQD6Tc7/jfR7AYpF3AAglwYBg6cW/+1Ep/7HvZYAo6uK/zO8Bv9fHYn+lOKzALVr0P+GH1L/l2Ut/4HK4QDgSJMAMIqX/8NAzv7t2p4Aah2J/v296f9nDxH/wmH/ALItqf7G4ZsAJzB1/4dqcwBhJrUAli9B/1OC5f72JoEAXO+a/ltjfwChbyH/7tny/4O5w//Vv57/KZbaAISpgwBZVPwBq0aA/6P4y/4BMrT/fExVAftvUABjQu//mu22/91+hf5KzGP/QZN3/2M4p/9P+JX/dJvk/+0rDv5FiQv/FvrxAVt6j//N+fMA1Bo8/zC2sAEwF7//y3mY/i1K1f8+WhL+9aPm/7lqdP9TI58ADCEC/1AiPgAQV67/rWVVAMokUf6gRcz/QOG7ADrOXgBWkC8A5Vb1AD+RvgElBScAbfsaAImT6gCieZH/kHTO/8Xouf+3voz/SQz+/4sU8v+qWu//YUK7//W1h/7eiDQA9QUz/ssvTgCYZdgASRd9AP5gIQHr0kn/K9FYAQeBbQB6aOT+qvLLAPLMh//KHOn/QQZ/AJ+QRwBkjF8ATpYNAPtrdgG2On3/ASZs/4290f8Im30BcaNb/3lPvv+G72z/TC/4AKPk7wARbwoAWJVL/9fr7wCnnxj/L5ds/2vRvADp52P+HMqU/64jiv9uGET/AkW1AGtmUgBm7QcAXCTt/92iUwE3ygb/h+qH/xj63gBBXqj+9fjS/6dsyf7/oW8AzQj+AIgNdABksIT/K9d+/7GFgv+eT5QAQ+AlAQzOFf8+Im4B7Wiv/1CEb/+OrkgAVOW0/mmzjABA+A//6YoQAPVDe/7aedT/P1/aAdWFif+PtlL/MBwLAPRyjQHRr0z/nbWW/7rlA/+knW8B572LAHfKvv/aakD/ROs//mAarP+7LwsB1xL7/1FUWQBEOoAAXnEFAVyB0P9hD1P+CRy8AO8JpAA8zZgAwKNi/7gSPADZtosAbTt4/wTA+wCp0vD/Jaxc/pTT9f+zQTQA/Q1zALmuzgFyvJX/7VqtACvHwP9YbHEANCNMAEIZlP/dBAf/l/Fy/77R6ABiMscAl5bV/xJKJAE1KAcAE4dB/xqsRQCu7VUAY18pAAM4EAAnoLH/yGra/rlEVP9buj3+Q4+N/w30pv9jcsYAx26j/8ESugB87/YBbkQWAALrLgHUPGsAaSppAQ7mmAAHBYMAjWia/9UDBgCD5KL/s2QcAed7Vf/ODt8B/WDmACaYlQFiiXoA1s0D/+KYs/8GhYkAnkWM/3Gimv+086z/G71z/48u3P/VhuH/fh1FALwriQHyRgkAWsz//+eqkwAXOBP+OH2d/zCz2v9Ptv3/JtS/ASnrfABglxwAh5S+AM35J/40YIj/1CyI/0PRg//8ghf/24AU/8aBdgBsZQsAsgWSAT4HZP+17F7+HBqkAEwWcP94Zk8AysDlAciw1wApQPT/zrhOAKctPwGgIwD/OwyO/8wJkP/bXuUBehtwAL1pbf9A0Er/+383AQLixgAsTNEAl5hN/9IXLgHJq0X/LNPnAL4l4P/1xD7/qbXe/yLTEQB38cX/5SOYARVFKP+y4qEAlLPBANvC/gEozjP/51z6AUOZqgAVlPEAqkVS/3kS5/9ccgMAuD7mAOHJV/+SYKL/tfLcAK273QHiPqr/OH7ZAXUN4/+zLO8AnY2b/5DdUwDr0dAAKhGlAftRhQB89cn+YdMY/1PWpgCaJAn/+C9/AFrbjP+h2Sb+1JM//0JUlAHPAwEA5oZZAX9Oev/gmwH/UohKALKc0P+6GTH/3gPSAeWWvv9VojT/KVSN/0l7VP5dEZYAdxMcASAW1/8cF8z/jvE0/+Q0fQAdTM8A16f6/q+k5gA3z2kBbbv1/6Es3AEpZYD/pxBeAF3Wa/92SAD+UD3q/3mvfQCLqfsAYSeT/vrEMf+ls27+30a7/xaOfQGas4r/drAqAQqumQCcXGYAqA2h/48QIAD6xbT/y6MsAVcgJAChmRT/e/wPABnjUAA8WI4AERbJAZrNTf8nPy8ACHqNAIAXtv7MJxP/BHAd/xckjP/S6nT+NTI//3mraP+g214AV1IO/ucqBQCli3/+Vk4mAII8Qv7LHi3/LsR6Afk1ov+Ij2f+19JyAOcHoP6pmCr/by32AI6Dh/+DR8z/JOILAAAc8v/hitX/9y7Y/vUDtwBs/EoBzhow/8029v/TxiT/eSMyADTYyv8mi4H+8kmUAEPnjf8qL8wATnQZAQThv/8Gk+QAOlixAHql5f/8U8n/4KdgAbG4nv/yabMB+MbwAIVCywH+JC8ALRhz/3c+/gDE4br+e42sABpVKf/ib7cA1eeXAAQ7B//uipQAQpMh/x/2jf/RjXT/aHAfAFihrABT1+b+L2+XAC0mNAGELcwAioBt/ul1hv/zvq3+8ezwAFJ/7P4o36H/brbh/3uu7wCH8pEBM9GaAJYDc/7ZpPz/N5xFAVRe///oSS0BFBPU/2DFO/5g+yEAJsdJAUCs9/91dDj/5BESAD6KZwH25aT/9HbJ/lYgn/9tIokBVdO6AArBwf56wrEAeu5m/6LaqwBs2aEBnqoiALAvmwG15Av/CJwAABBLXQDOYv8BOpojAAzzuP5DdUL/5uV7AMkqbgCG5LL+umx2/zoTmv9SqT7/co9zAe/EMv+tMMH/kwJU/5aGk/5f6EkAbeM0/r+JCgAozB7+TDRh/6TrfgD+fLwASrYVAXkdI//xHgf+VdrW/wdUlv5RG3X/oJ+Y/kIY3f/jCjwBjYdmANC9lgF1s1wAhBaI/3jHHAAVgU/+tglBANqjqQD2k8b/ayaQAU6vzf/WBfr+L1gd/6QvzP8rNwb/g4bP/nRk1gBgjEsBatyQAMMgHAGsUQX/x7M0/yVUywCqcK4ACwRbAEX0GwF1g1wAIZiv/4yZa//7hyv+V4oE/8bqk/55mFT/zWWbAZ0JGQBIahH+bJkA/73lugDBCLD/rpXRAO6CHQDp1n4BPeJmADmjBAHGbzP/LU9OAXPSCv/aCRn/novG/9NSu/5QhVMAnYHmAfOFhv8oiBAATWtP/7dVXAGxzMoAo0eT/5hFvgCsM7wB+tKs/9PycQFZWRr/QEJv/nSYKgChJxv/NlD+AGrRcwFnfGEA3eZi/x/nBgCywHj+D9nL/3yeTwBwkfcAXPowAaO1wf8lL47+kL2l/y6S8AAGS4AAKZ3I/ld51QABcewABS36AJAMUgAfbOcA4e93/6cHvf+75IT/br0iAF4szAGiNMUATrzx/jkUjQD0ki8BzmQzAH1rlP4bw00AmP1aAQePkP8zJR8AIncm/wfFdgCZvNMAlxR0/vVBNP+0/W4BL7HRAKFjEf923soAfbP8AXs2fv+ROb8AN7p5AArzigDN0+X/fZzx/pScuf/jE7z/fCkg/x8izv4ROVMAzBYl/ypgYgB3ZrgBA74cAG5S2v/IzMD/yZF2AHXMkgCEIGIBwMJ5AGqh+AHtWHwAF9QaAM2rWv/4MNgBjSXm/3zLAP6eqB7/1vgVAHC7B/9Lhe//SuPz//qTRgDWeKIApwmz/xaeEgDaTdEBYW1R//Qhs/85NDn/QazS//lH0f+Oqe4Anr2Z/67+Z/5iIQ4AjUzm/3GLNP8POtQAqNfJ//jM1wHfRKD/OZq3/i/neQBqpokAUYiKAKUrMwDniz0AOV87/nZiGf+XP+wBXr76/6m5cgEF+jr/S2lhAdffhgBxY6MBgD5wAGNqkwCjwwoAIc22ANYOrv+BJuf/NbbfAGIqn//3DSgAvNKxAQYVAP//PZT+iS2B/1kadP5+JnIA+zLy/nmGgP/M+af+pevXAMqx8wCFjT4A8IK+AW6v/wAAFJIBJdJ5/wcnggCO+lT/jcjPAAlfaP8L9K4Ahuh+AKcBe/4QwZX/6OnvAdVGcP/8dKD+8t7c/81V4wAHuToAdvc/AXRNsf8+9cj+PxIl/2s16P4y3dMAotsH/gJeKwC2Prb+oE7I/4eMqgDruOQArzWK/lA6Tf+YyQIBP8QiAAUeuACrsJoAeTvOACZjJwCsUE3+AIaXALoh8f5e/d//LHL8AGx+Of/JKA3/J+Ub/yfvFwGXeTP/mZb4AArqrv929gT+yPUmAEWh8gEQspYAcTiCAKsfaQAaWGz/MSpqAPupQgBFXZUAFDn+AKQZbwBavFr/zATFACjVMgHUYIT/WIq0/uSSfP+49vcAQXVW//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBjIcCCwEBAEGwhwILAQEAQdCHAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQZCJAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB0I8CCyFTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAQaCQAgs1cI0BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=")||(K=_,_=i.locateFile?i.locateFile(K,r):r+K);var x={34904:()=>i.getRandomValue(),34940:()=>{if(void 0===i.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),i.getRandomValue=g}catch(A){try{var C=__nccwpck_require__(6113),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),i.getRandomValue=B}catch(A){throw"No secure random number generator found"}}}};function j(A){for(;A.length>0;)A.shift()(i)}var X=[];function q(A){var I=c.buffer;try{return c.grow(A-I.byteLength+65535>>>16),H(),1}catch(A){}}var z="function"==typeof atob?atob:function(A){var I,g,C,B,Q,i,E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=E.indexOf(A.charAt(a++))<<2|(B=E.indexOf(A.charAt(a++)))>>4,g=(15&B)<<4|(Q=E.indexOf(A.charAt(a++)))>>2,C=(3&Q)<<6|(i=E.indexOf(A.charAt(a++))),o+=String.fromCharCode(I),64!==Q&&(o+=String.fromCharCode(g)),64!==i&&(o+=String.fromCharCode(C))}while(a>=2;g=w[A++];)I+=105!=g&I,X.push(105==g?s[I]:k[I++>>1]),++I;return X}(I,g);return x[A].apply(null,C)}(A,I,g)},d:function(A,I,g){w.copyWithin(A,I,I+g)},e:function(A){var I,g=w.length,C=2147483648;if((A>>>=0)>C)return!1;for(var B=1;B<=4;B*=2){var Q=g*(1+.2/B);if(Q=Math.min(Q,A+100663296),q(Math.min(C,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1}};function W(){function A(){O||(O=!0,i.calledRun=!0,F||(j(G),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)A=i.postRun.shift(),U.unshift(A);var A;j(U)}()))}J>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)A=i.preRun.shift(),M.unshift(A);var A;j(M)}(),J>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),A()}),1)):A()))}if(function(){var A={a:T};function I(A,I){var g=A.exports;i.asm=g,c=i.asm.f,H(),i.asm.ac,function(A){if(J--,i.monitorRunDependencies&&i.monitorRunDependencies(J),0==J&&(null!==N&&(clearInterval(N),N=null),Y)){var I=Y;Y=null,I()}}()}function g(A){I(A.instance)}function C(I){return function(){if(!e&&(o||a)){if("function"==typeof fetch&&!L(_))return fetch(_,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+_+"'";return A.arrayBuffer()})).catch((function(){return R(_)}));if(B)return new Promise((function(A,I){B(_,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return R(_)}))}().then((function(I){return WebAssembly.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){y("failed to asynchronously prepare wasm: "+A),b(A)}))}if(J++,i.monitorRunDependencies&&i.monitorRunDependencies(J),i.instantiateWasm)try{return i.instantiateWasm(A,I)}catch(A){return y("Module.instantiateWasm callback failed with error: "+A),!1}e||"function"!=typeof WebAssembly.instantiateStreaming||d(_)||L(_)||n||"function"!=typeof fetch?C(g):fetch(_,{credentials:"same-origin"}).then((function(I){return WebAssembly.instantiateStreaming(I,A).then(g,(function(A){return y("wasm streaming compile failed: "+A),y("falling back to ArrayBuffer instantiation"),C(g)}))}))}(),i._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_encrypt_detached=i.asm.g).apply(null,arguments)},i._crypto_aead_chacha20poly1305_encrypt=function(){return(i._crypto_aead_chacha20poly1305_encrypt=i.asm.h).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=i.asm.i).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt=i.asm.j).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_decrypt_detached=i.asm.k).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt=function(){return(i._crypto_aead_chacha20poly1305_decrypt=i.asm.l).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=i.asm.m).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt=i.asm.n).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_keybytes=i.asm.o).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_npubbytes=i.asm.p).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_nsecbytes=i.asm.q).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_abytes=i.asm.r).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=i.asm.s).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_chacha20poly1305_ietf_keygen=i.asm.t).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keybytes=function(){return(i._crypto_aead_chacha20poly1305_keybytes=i.asm.u).apply(null,arguments)},i._crypto_aead_chacha20poly1305_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_npubbytes=i.asm.v).apply(null,arguments)},i._crypto_aead_chacha20poly1305_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_nsecbytes=i.asm.w).apply(null,arguments)},i._crypto_aead_chacha20poly1305_abytes=function(){return(i._crypto_aead_chacha20poly1305_abytes=i.asm.x).apply(null,arguments)},i._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_messagebytes_max=i.asm.y).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keygen=function(){return(i._crypto_aead_chacha20poly1305_keygen=i.asm.z).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=i.asm.A).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt=i.asm.B).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=i.asm.C).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt=i.asm.D).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keybytes=i.asm.E).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_npubbytes=i.asm.F).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=i.asm.G).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_abytes=i.asm.H).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=i.asm.I).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keygen=i.asm.J).apply(null,arguments)},i._crypto_auth_bytes=function(){return(i._crypto_auth_bytes=i.asm.K).apply(null,arguments)},i._crypto_auth_keybytes=function(){return(i._crypto_auth_keybytes=i.asm.L).apply(null,arguments)},i._crypto_auth=function(){return(i._crypto_auth=i.asm.M).apply(null,arguments)},i._crypto_auth_verify=function(){return(i._crypto_auth_verify=i.asm.N).apply(null,arguments)},i._crypto_auth_keygen=function(){return(i._crypto_auth_keygen=i.asm.O).apply(null,arguments)},i._crypto_box_seedbytes=function(){return(i._crypto_box_seedbytes=i.asm.P).apply(null,arguments)},i._crypto_box_publickeybytes=function(){return(i._crypto_box_publickeybytes=i.asm.Q).apply(null,arguments)},i._crypto_box_secretkeybytes=function(){return(i._crypto_box_secretkeybytes=i.asm.R).apply(null,arguments)},i._crypto_box_beforenmbytes=function(){return(i._crypto_box_beforenmbytes=i.asm.S).apply(null,arguments)},i._crypto_box_noncebytes=function(){return(i._crypto_box_noncebytes=i.asm.T).apply(null,arguments)},i._crypto_box_macbytes=function(){return(i._crypto_box_macbytes=i.asm.U).apply(null,arguments)},i._crypto_box_messagebytes_max=function(){return(i._crypto_box_messagebytes_max=i.asm.V).apply(null,arguments)},i._crypto_box_seed_keypair=function(){return(i._crypto_box_seed_keypair=i.asm.W).apply(null,arguments)},i._crypto_box_keypair=function(){return(i._crypto_box_keypair=i.asm.X).apply(null,arguments)},i._crypto_box_beforenm=function(){return(i._crypto_box_beforenm=i.asm.Y).apply(null,arguments)},i._crypto_box_detached_afternm=function(){return(i._crypto_box_detached_afternm=i.asm.Z).apply(null,arguments)},i._crypto_box_detached=function(){return(i._crypto_box_detached=i.asm._).apply(null,arguments)},i._crypto_box_easy_afternm=function(){return(i._crypto_box_easy_afternm=i.asm.$).apply(null,arguments)},i._crypto_box_easy=function(){return(i._crypto_box_easy=i.asm.aa).apply(null,arguments)},i._crypto_box_open_detached_afternm=function(){return(i._crypto_box_open_detached_afternm=i.asm.ba).apply(null,arguments)},i._crypto_box_open_detached=function(){return(i._crypto_box_open_detached=i.asm.ca).apply(null,arguments)},i._crypto_box_open_easy_afternm=function(){return(i._crypto_box_open_easy_afternm=i.asm.da).apply(null,arguments)},i._crypto_box_open_easy=function(){return(i._crypto_box_open_easy=i.asm.ea).apply(null,arguments)},i._crypto_box_seal=function(){return(i._crypto_box_seal=i.asm.fa).apply(null,arguments)},i._crypto_box_seal_open=function(){return(i._crypto_box_seal_open=i.asm.ga).apply(null,arguments)},i._crypto_box_sealbytes=function(){return(i._crypto_box_sealbytes=i.asm.ha).apply(null,arguments)},i._crypto_generichash_bytes_min=function(){return(i._crypto_generichash_bytes_min=i.asm.ia).apply(null,arguments)},i._crypto_generichash_bytes_max=function(){return(i._crypto_generichash_bytes_max=i.asm.ja).apply(null,arguments)},i._crypto_generichash_bytes=function(){return(i._crypto_generichash_bytes=i.asm.ka).apply(null,arguments)},i._crypto_generichash_keybytes_min=function(){return(i._crypto_generichash_keybytes_min=i.asm.la).apply(null,arguments)},i._crypto_generichash_keybytes_max=function(){return(i._crypto_generichash_keybytes_max=i.asm.ma).apply(null,arguments)},i._crypto_generichash_keybytes=function(){return(i._crypto_generichash_keybytes=i.asm.na).apply(null,arguments)},i._crypto_generichash_statebytes=function(){return(i._crypto_generichash_statebytes=i.asm.oa).apply(null,arguments)},i._crypto_generichash=function(){return(i._crypto_generichash=i.asm.pa).apply(null,arguments)},i._crypto_generichash_init=function(){return(i._crypto_generichash_init=i.asm.qa).apply(null,arguments)},i._crypto_generichash_update=function(){return(i._crypto_generichash_update=i.asm.ra).apply(null,arguments)},i._crypto_generichash_final=function(){return(i._crypto_generichash_final=i.asm.sa).apply(null,arguments)},i._crypto_generichash_keygen=function(){return(i._crypto_generichash_keygen=i.asm.ta).apply(null,arguments)},i._crypto_hash_bytes=function(){return(i._crypto_hash_bytes=i.asm.ua).apply(null,arguments)},i._crypto_hash=function(){return(i._crypto_hash=i.asm.va).apply(null,arguments)},i._crypto_kdf_bytes_min=function(){return(i._crypto_kdf_bytes_min=i.asm.wa).apply(null,arguments)},i._crypto_kdf_bytes_max=function(){return(i._crypto_kdf_bytes_max=i.asm.xa).apply(null,arguments)},i._crypto_kdf_contextbytes=function(){return(i._crypto_kdf_contextbytes=i.asm.ya).apply(null,arguments)},i._crypto_kdf_keybytes=function(){return(i._crypto_kdf_keybytes=i.asm.za).apply(null,arguments)},i._crypto_kdf_derive_from_key=function(){return(i._crypto_kdf_derive_from_key=i.asm.Aa).apply(null,arguments)},i._crypto_kdf_keygen=function(){return(i._crypto_kdf_keygen=i.asm.Ba).apply(null,arguments)},i._crypto_kx_seed_keypair=function(){return(i._crypto_kx_seed_keypair=i.asm.Ca).apply(null,arguments)},i._crypto_kx_keypair=function(){return(i._crypto_kx_keypair=i.asm.Da).apply(null,arguments)},i._crypto_kx_client_session_keys=function(){return(i._crypto_kx_client_session_keys=i.asm.Ea).apply(null,arguments)},i._crypto_kx_server_session_keys=function(){return(i._crypto_kx_server_session_keys=i.asm.Fa).apply(null,arguments)},i._crypto_kx_publickeybytes=function(){return(i._crypto_kx_publickeybytes=i.asm.Ga).apply(null,arguments)},i._crypto_kx_secretkeybytes=function(){return(i._crypto_kx_secretkeybytes=i.asm.Ha).apply(null,arguments)},i._crypto_kx_seedbytes=function(){return(i._crypto_kx_seedbytes=i.asm.Ia).apply(null,arguments)},i._crypto_kx_sessionkeybytes=function(){return(i._crypto_kx_sessionkeybytes=i.asm.Ja).apply(null,arguments)},i._crypto_scalarmult_base=function(){return(i._crypto_scalarmult_base=i.asm.Ka).apply(null,arguments)},i._crypto_scalarmult=function(){return(i._crypto_scalarmult=i.asm.La).apply(null,arguments)},i._crypto_scalarmult_bytes=function(){return(i._crypto_scalarmult_bytes=i.asm.Ma).apply(null,arguments)},i._crypto_scalarmult_scalarbytes=function(){return(i._crypto_scalarmult_scalarbytes=i.asm.Na).apply(null,arguments)},i._crypto_secretbox_keybytes=function(){return(i._crypto_secretbox_keybytes=i.asm.Oa).apply(null,arguments)},i._crypto_secretbox_noncebytes=function(){return(i._crypto_secretbox_noncebytes=i.asm.Pa).apply(null,arguments)},i._crypto_secretbox_macbytes=function(){return(i._crypto_secretbox_macbytes=i.asm.Qa).apply(null,arguments)},i._crypto_secretbox_messagebytes_max=function(){return(i._crypto_secretbox_messagebytes_max=i.asm.Ra).apply(null,arguments)},i._crypto_secretbox_keygen=function(){return(i._crypto_secretbox_keygen=i.asm.Sa).apply(null,arguments)},i._crypto_secretbox_detached=function(){return(i._crypto_secretbox_detached=i.asm.Ta).apply(null,arguments)},i._crypto_secretbox_easy=function(){return(i._crypto_secretbox_easy=i.asm.Ua).apply(null,arguments)},i._crypto_secretbox_open_detached=function(){return(i._crypto_secretbox_open_detached=i.asm.Va).apply(null,arguments)},i._crypto_secretbox_open_easy=function(){return(i._crypto_secretbox_open_easy=i.asm.Wa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keygen=function(){return(i._crypto_secretstream_xchacha20poly1305_keygen=i.asm.Xa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_push=function(){return(i._crypto_secretstream_xchacha20poly1305_init_push=i.asm.Ya).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_init_pull=i.asm.Za).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_rekey=i.asm._a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_push=function(){return(i._crypto_secretstream_xchacha20poly1305_push=i.asm.$a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_pull=i.asm.ab).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(i._crypto_secretstream_xchacha20poly1305_statebytes=i.asm.bb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_abytes=function(){return(i._crypto_secretstream_xchacha20poly1305_abytes=i.asm.cb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(i._crypto_secretstream_xchacha20poly1305_headerbytes=i.asm.db).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(i._crypto_secretstream_xchacha20poly1305_keybytes=i.asm.eb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(i._crypto_secretstream_xchacha20poly1305_messagebytes_max=i.asm.fb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_message=i.asm.gb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_push=i.asm.hb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_rekey=i.asm.ib).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_final=i.asm.jb).apply(null,arguments)},i._crypto_shorthash_bytes=function(){return(i._crypto_shorthash_bytes=i.asm.kb).apply(null,arguments)},i._crypto_shorthash_keybytes=function(){return(i._crypto_shorthash_keybytes=i.asm.lb).apply(null,arguments)},i._crypto_shorthash=function(){return(i._crypto_shorthash=i.asm.mb).apply(null,arguments)},i._crypto_shorthash_keygen=function(){return(i._crypto_shorthash_keygen=i.asm.nb).apply(null,arguments)},i._crypto_sign_statebytes=function(){return(i._crypto_sign_statebytes=i.asm.ob).apply(null,arguments)},i._crypto_sign_bytes=function(){return(i._crypto_sign_bytes=i.asm.pb).apply(null,arguments)},i._crypto_sign_seedbytes=function(){return(i._crypto_sign_seedbytes=i.asm.qb).apply(null,arguments)},i._crypto_sign_publickeybytes=function(){return(i._crypto_sign_publickeybytes=i.asm.rb).apply(null,arguments)},i._crypto_sign_secretkeybytes=function(){return(i._crypto_sign_secretkeybytes=i.asm.sb).apply(null,arguments)},i._crypto_sign_messagebytes_max=function(){return(i._crypto_sign_messagebytes_max=i.asm.tb).apply(null,arguments)},i._crypto_sign_seed_keypair=function(){return(i._crypto_sign_seed_keypair=i.asm.ub).apply(null,arguments)},i._crypto_sign_keypair=function(){return(i._crypto_sign_keypair=i.asm.vb).apply(null,arguments)},i._crypto_sign=function(){return(i._crypto_sign=i.asm.wb).apply(null,arguments)},i._crypto_sign_open=function(){return(i._crypto_sign_open=i.asm.xb).apply(null,arguments)},i._crypto_sign_detached=function(){return(i._crypto_sign_detached=i.asm.yb).apply(null,arguments)},i._crypto_sign_verify_detached=function(){return(i._crypto_sign_verify_detached=i.asm.zb).apply(null,arguments)},i._crypto_sign_init=function(){return(i._crypto_sign_init=i.asm.Ab).apply(null,arguments)},i._crypto_sign_update=function(){return(i._crypto_sign_update=i.asm.Bb).apply(null,arguments)},i._crypto_sign_final_create=function(){return(i._crypto_sign_final_create=i.asm.Cb).apply(null,arguments)},i._crypto_sign_final_verify=function(){return(i._crypto_sign_final_verify=i.asm.Db).apply(null,arguments)},i._crypto_sign_ed25519_pk_to_curve25519=function(){return(i._crypto_sign_ed25519_pk_to_curve25519=i.asm.Eb).apply(null,arguments)},i._crypto_sign_ed25519_sk_to_curve25519=function(){return(i._crypto_sign_ed25519_sk_to_curve25519=i.asm.Fb).apply(null,arguments)},i._randombytes_random=function(){return(i._randombytes_random=i.asm.Gb).apply(null,arguments)},i._randombytes_stir=function(){return(i._randombytes_stir=i.asm.Hb).apply(null,arguments)},i._randombytes_uniform=function(){return(i._randombytes_uniform=i.asm.Ib).apply(null,arguments)},i._randombytes_buf=function(){return(i._randombytes_buf=i.asm.Jb).apply(null,arguments)},i._randombytes_buf_deterministic=function(){return(i._randombytes_buf_deterministic=i.asm.Kb).apply(null,arguments)},i._randombytes_seedbytes=function(){return(i._randombytes_seedbytes=i.asm.Lb).apply(null,arguments)},i._randombytes_close=function(){return(i._randombytes_close=i.asm.Mb).apply(null,arguments)},i._randombytes=function(){return(i._randombytes=i.asm.Nb).apply(null,arguments)},i._sodium_bin2hex=function(){return(i._sodium_bin2hex=i.asm.Ob).apply(null,arguments)},i._sodium_hex2bin=function(){return(i._sodium_hex2bin=i.asm.Pb).apply(null,arguments)},i._sodium_base64_encoded_len=function(){return(i._sodium_base64_encoded_len=i.asm.Qb).apply(null,arguments)},i._sodium_bin2base64=function(){return(i._sodium_bin2base64=i.asm.Rb).apply(null,arguments)},i._sodium_base642bin=function(){return(i._sodium_base642bin=i.asm.Sb).apply(null,arguments)},i._sodium_init=function(){return(i._sodium_init=i.asm.Tb).apply(null,arguments)},i._sodium_pad=function(){return(i._sodium_pad=i.asm.Ub).apply(null,arguments)},i._sodium_unpad=function(){return(i._sodium_unpad=i.asm.Vb).apply(null,arguments)},i._sodium_version_string=function(){return(i._sodium_version_string=i.asm.Wb).apply(null,arguments)},i._sodium_library_version_major=function(){return(i._sodium_library_version_major=i.asm.Xb).apply(null,arguments)},i._sodium_library_version_minor=function(){return(i._sodium_library_version_minor=i.asm.Yb).apply(null,arguments)},i._sodium_library_minimal=function(){return(i._sodium_library_minimal=i.asm.Zb).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm._b).apply(null,arguments)},i._free=function(){return(i._free=i.asm.$b).apply(null,arguments)},i.UTF8ToString=S,i.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":D[A>>0]=I;break;case"i16":h[A>>1]=I;break;case"i32":s[A>>2]=I;break;case"i64":v=[I>>>0,(P=I,+Math.abs(P)>=1?P>0?(0|Math.min(+Math.floor(P/4294967296),4294967295))>>>0:~~+Math.ceil((P-+(~~P>>>0))/4294967296)>>>0:0)],s[A>>2]=v[0],s[A+4>>2]=v[1];break;case"float":u[A>>2]=I;break;case"double":k[A>>3]=I;break;case"*":p[A>>2]=I;break;default:b("invalid type for setValue: "+g)}},i.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return D[A>>0];case"i16":return h[A>>1];case"i32":case"i64":return s[A>>2];case"float":return u[A>>2];case"double":return k[A>>3];case"*":return p[A>>2];default:b("invalid type for getValue: "+I)}return null},Y=function A(){O||W(),O||(Y=A)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();W()})).catch((function(){return C.useBackupModule()})),I}"function"==typeof define&&define.amd?define(["exports"],I): true&&"string"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this); - - -/***/ }), - -/***/ 7760: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -/*! node-domexception. MIT License. Jimmy Wärting */ - -if (!globalThis.DOMException) { - try { - const { MessageChannel } = __nccwpck_require__(1267), - port = new MessageChannel().port1, - ab = new ArrayBuffer() - port.postMessage(ab, [ab, ab]) - } catch (err) { - err.constructor.name === 'DOMException' && ( - globalThis.DOMException = err.constructor - ) - } -} - -module.exports = globalThis.DOMException - - -/***/ }), - -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(2940) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - - -/***/ }), - -/***/ 4294: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(4219); - - -/***/ }), - -/***/ 4219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.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 || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.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) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - - // If we are under maxSockets create a new one. - 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'); - } - - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - debug('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) { - debug('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; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - - function onError(cause) { - connectReq.removeAllListeners(); - - debug('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); - } -}; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; -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) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; +/***/ }), -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: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); +/***/ 3387: +/***/ ((module) => { - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} +"use strict"; -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); } - return host; // for v0.11 or later -} +}; -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] !== undefined) { - target[k] = overrides[k]; - } - } - } - } - return target; -} +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; + +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = 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 { - debug = function() {}; -} -exports.debug = debug; // for test /***/ }), -/***/ 5030: -/***/ ((__unused_webpack_module, exports) => { +/***/ 3682: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -"use strict"; +var register = __nccwpck_require__(4670) +var addHook = __nccwpck_require__(5549) +var removeHook = __nccwpck_require__(6819) +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) -Object.defineProperty(exports, "__esModule", ({ value: true })); +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) +} - if (typeof process === "object" && "version" in process) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} } - - return ""; + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook } -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; +function HookCollection () { + var state = { + registry: {} } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); + var hook = register.bind(null, state) + bindApi(hook, state) -var _version = _interopRequireDefault(__nccwpck_require__(1595)); + return hook +} -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; +/***/ 5549: +/***/ ((module) => { +module.exports = addHook; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; } - return _crypto.default.createHash('md5').update(bytes).digest(); + state.registry[name].push({ + hook: hook, + orig: orig, + }); } -var _default = md5; -exports["default"] = _default; /***/ }), -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { +/***/ 4670: +/***/ ((module) => { -"use strict"; +module.exports = register; +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; + if (!options) { + options = {}; + } -/***/ }), + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); + } -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } -"use strict"; + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +/***/ }), -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +/***/ 6819: +/***/ ((module) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = removeHook; -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; } - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + if (index === -1) { + return; + } - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; + state.registry[name].splice(index, 1); } -var _default = parse; -exports["default"] = _default; /***/ }), -/***/ 814: +/***/ 8932: /***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; - -/***/ }), - -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +Object.defineProperty(exports, "__esModule", ({ value: true })); -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) -let poolPtr = rnds8Pool.length; + /* istanbul ignore next */ -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } - poolPtr = 0; + this.name = 'Deprecation'; } - return rnds8Pool.slice(poolPtr, poolPtr += 16); } -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('sha1').update(bytes).digest(); -} +exports.Deprecation = Deprecation; -var _default = sha1; -exports["default"] = _default; /***/ }), -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 3287: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +Object.defineProperty(exports, "__esModule", ({ value: true })); -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; } -var _default = stringify; -exports["default"] = _default; - -/***/ }), - -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +function isPlainObject(o) { + var ctor,prot; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + if (isObject(o) === false) return false; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; -let _clockseq; // Previous uuid creation time + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + // Most likely a plain Object + return true; +} -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details +exports.isPlainObject = isPlainObject; -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); +/***/ }), - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } +/***/ 713: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. +!function(e){function r(e,r){"use strict";var t,a=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error("libsodium was not correctly initialized.");for(var r=["crypto_aead_chacha20poly1305_decrypt","crypto_aead_chacha20poly1305_decrypt_detached","crypto_aead_chacha20poly1305_encrypt","crypto_aead_chacha20poly1305_encrypt_detached","crypto_aead_chacha20poly1305_ietf_decrypt","crypto_aead_chacha20poly1305_ietf_decrypt_detached","crypto_aead_chacha20poly1305_ietf_encrypt","crypto_aead_chacha20poly1305_ietf_encrypt_detached","crypto_aead_chacha20poly1305_ietf_keygen","crypto_aead_chacha20poly1305_keygen","crypto_aead_xchacha20poly1305_ietf_decrypt","crypto_aead_xchacha20poly1305_ietf_decrypt_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_encrypt_detached","crypto_aead_xchacha20poly1305_ietf_keygen","crypto_auth","crypto_auth_hmacsha256","crypto_auth_hmacsha256_final","crypto_auth_hmacsha256_init","crypto_auth_hmacsha256_keygen","crypto_auth_hmacsha256_update","crypto_auth_hmacsha256_verify","crypto_auth_hmacsha512","crypto_auth_hmacsha512_final","crypto_auth_hmacsha512_init","crypto_auth_hmacsha512_keygen","crypto_auth_hmacsha512_update","crypto_auth_hmacsha512_verify","crypto_auth_keygen","crypto_auth_verify","crypto_box_beforenm","crypto_box_curve25519xchacha20poly1305_keypair","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","crypto_box_detached","crypto_box_easy","crypto_box_easy_afternm","crypto_box_keypair","crypto_box_open_detached","crypto_box_open_easy","crypto_box_open_easy_afternm","crypto_box_seal","crypto_box_seal_open","crypto_box_seed_keypair","crypto_core_ed25519_add","crypto_core_ed25519_from_hash","crypto_core_ed25519_from_uniform","crypto_core_ed25519_is_valid_point","crypto_core_ed25519_random","crypto_core_ed25519_scalar_add","crypto_core_ed25519_scalar_complement","crypto_core_ed25519_scalar_invert","crypto_core_ed25519_scalar_mul","crypto_core_ed25519_scalar_negate","crypto_core_ed25519_scalar_random","crypto_core_ed25519_scalar_reduce","crypto_core_ed25519_scalar_sub","crypto_core_ed25519_sub","crypto_core_hchacha20","crypto_core_hsalsa20","crypto_core_ristretto255_add","crypto_core_ristretto255_from_hash","crypto_core_ristretto255_is_valid_point","crypto_core_ristretto255_random","crypto_core_ristretto255_scalar_add","crypto_core_ristretto255_scalar_complement","crypto_core_ristretto255_scalar_invert","crypto_core_ristretto255_scalar_mul","crypto_core_ristretto255_scalar_negate","crypto_core_ristretto255_scalar_random","crypto_core_ristretto255_scalar_reduce","crypto_core_ristretto255_scalar_sub","crypto_core_ristretto255_sub","crypto_generichash","crypto_generichash_blake2b_salt_personal","crypto_generichash_final","crypto_generichash_init","crypto_generichash_keygen","crypto_generichash_update","crypto_hash","crypto_hash_sha256","crypto_hash_sha256_final","crypto_hash_sha256_init","crypto_hash_sha256_update","crypto_hash_sha512","crypto_hash_sha512_final","crypto_hash_sha512_init","crypto_hash_sha512_update","crypto_kdf_derive_from_key","crypto_kdf_keygen","crypto_kx_client_session_keys","crypto_kx_keypair","crypto_kx_seed_keypair","crypto_kx_server_session_keys","crypto_onetimeauth","crypto_onetimeauth_final","crypto_onetimeauth_init","crypto_onetimeauth_keygen","crypto_onetimeauth_update","crypto_onetimeauth_verify","crypto_pwhash","crypto_pwhash_scryptsalsa208sha256","crypto_pwhash_scryptsalsa208sha256_ll","crypto_pwhash_scryptsalsa208sha256_str","crypto_pwhash_scryptsalsa208sha256_str_verify","crypto_pwhash_str","crypto_pwhash_str_needs_rehash","crypto_pwhash_str_verify","crypto_scalarmult","crypto_scalarmult_base","crypto_scalarmult_ed25519","crypto_scalarmult_ed25519_base","crypto_scalarmult_ed25519_base_noclamp","crypto_scalarmult_ed25519_noclamp","crypto_scalarmult_ristretto255","crypto_scalarmult_ristretto255_base","crypto_secretbox_detached","crypto_secretbox_easy","crypto_secretbox_keygen","crypto_secretbox_open_detached","crypto_secretbox_open_easy","crypto_secretstream_xchacha20poly1305_init_pull","crypto_secretstream_xchacha20poly1305_init_push","crypto_secretstream_xchacha20poly1305_keygen","crypto_secretstream_xchacha20poly1305_pull","crypto_secretstream_xchacha20poly1305_push","crypto_secretstream_xchacha20poly1305_rekey","crypto_shorthash","crypto_shorthash_keygen","crypto_shorthash_siphashx24","crypto_sign","crypto_sign_detached","crypto_sign_ed25519_pk_to_curve25519","crypto_sign_ed25519_sk_to_curve25519","crypto_sign_ed25519_sk_to_pk","crypto_sign_ed25519_sk_to_seed","crypto_sign_final_create","crypto_sign_final_verify","crypto_sign_init","crypto_sign_keypair","crypto_sign_open","crypto_sign_seed_keypair","crypto_sign_update","crypto_sign_verify_detached","crypto_stream_chacha20","crypto_stream_chacha20_ietf_xor","crypto_stream_chacha20_ietf_xor_ic","crypto_stream_chacha20_keygen","crypto_stream_chacha20_xor","crypto_stream_chacha20_xor_ic","crypto_stream_keygen","crypto_stream_xchacha20_keygen","crypto_stream_xchacha20_xor","crypto_stream_xchacha20_xor_ic","randombytes_buf","randombytes_buf_deterministic","randombytes_close","randombytes_random","randombytes_set_implementation","randombytes_stir","randombytes_uniform","sodium_version_string"],a=[E,x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,se,ne,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,sr,nr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,st,nt,ct,ot,ht,pt,yt,it,lt,ut,dt,vt,gt,bt,ft,mt],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[s]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var c={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function o(e){if(null==e)return c.URLSAFE_NO_PADDING;if(e!==c.ORIGINAL&&e!==c.ORIGINAL_NO_PADDING&&e!==c.URLSAFE&&e!=c.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function h(e,r){r=o(r),e=m(_,e,"input");var a,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,h=4*n+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new l(h+1),y=u(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&g(_,"conversion failed"),p.length=h,a=s(p.to_Uint8Array()),v(_),a}function p(e,r){var t=r||"uint8array";if(!y(t))throw new Error(t+" output format is not available");if(e instanceof l){if("uint8array"===t)return e.to_Uint8Array();if("text"===t)return s(e.to_Uint8Array());if("hex"===t)return n(e.to_Uint8Array());if("base64"===t)return h(e.to_Uint8Array(),c.URLSAFE_NO_PADDING);throw new Error('What is output format "'+t+'"?')}if("object"==typeof e){for(var a=Object.keys(e),_={},o=0;o>>24>>>8,o,y);var x=p(g,n);return v(c),x}function tr(e){var r=[];i(e);var a=new l(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var s=p(a,e);return v(r),s}function ar(e,r,a,_){var s=[];i(_),e=m(s,e,"clientPublicKey");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,"invalid clientPublicKey length"),n=u(e),s.push(n),r=m(s,r,"clientSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,"invalid clientSecretKey length"),o=u(r),s.push(o),a=m(s,a,"serverPublicKey");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,"invalid serverPublicKey length"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_client_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,"invalid usage")}function _r(e){var r=[];i(e);var a=new l(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var s=new l(0|t._crypto_kx_secretkeybytes()),n=s.address;if(r.push(n),0==(0|t._crypto_kx_keypair(_,n))){var c={publicKey:p(a,e),privateKey:p(s,e),keyType:"x25519"};return v(r),c}g(r,"internal error")}function sr(e,r){var a=[];i(r),e=m(a,e,"seed");var _,s=0|t._crypto_kx_seedbytes();e.length!==s&&b(a,"invalid seed length"),_=u(e),a.push(_);var n=new l(0|t._crypto_kx_publickeybytes()),c=n.address;a.push(c);var o=new l(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var y={publicKey:p(n,r),privateKey:p(o,r),keyType:"x25519"};return v(a),y}g(a,"internal error")}function nr(e,r,a,_){var s=[];i(_),e=m(s,e,"serverPublicKey");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,"invalid serverPublicKey length"),n=u(e),s.push(n),r=m(s,r,"serverSecretKey");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,"invalid serverSecretKey length"),o=u(r),s.push(o),a=m(s,a,"clientPublicKey");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,"invalid clientPublicKey length"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_server_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,"invalid usage")}function cr(e,r,a){var _=[];i(a);var s=u(e=m(_,e,"message")),n=e.length;_.push(s),r=m(_,r,"key");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&b(_,"invalid key length"),c=u(r),_.push(c);var h=new l(0|t._crypto_onetimeauth_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_onetimeauth(y,s,n,0,c))){var d=p(h,a);return v(_),d}g(_,"invalid usage")}function or(e,r){var a=[];i(r),f(a,e,"state_address");var _=new l(0|t._crypto_onetimeauth_bytes()),s=_.address;if(a.push(s),0==(0|t._crypto_onetimeauth_final(e,s))){var n=(t._free(e),p(_,r));return v(a),n}g(a,"invalid usage")}function hr(e,r){var a=[];i(r);var _=null;null!=e&&(_=u(e=m(a,e,"key")),e.length,a.push(_));var s=new l(144).address;if(0==(0|t._crypto_onetimeauth_init(s,_))){var n=s;return v(a),n}g(a,"invalid usage")}function pr(e){var r=[];i(e);var a=new l(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var s=p(a,e);return v(r),s}function yr(e,r,a){var _=[];i(a),f(_,e,"state_address");var s=u(r=m(_,r,"message_chunk")),n=r.length;_.push(s),0!=(0|t._crypto_onetimeauth_update(e,s,n))&&g(_,"invalid usage"),v(_)}function ir(e,r,a){var _=[];e=m(_,e,"hash");var s,n=0|t._crypto_onetimeauth_bytes();e.length!==n&&b(_,"invalid hash length"),s=u(e),_.push(s);var c=u(r=m(_,r,"message")),o=r.length;_.push(c),a=m(_,a,"key");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&b(_,"invalid key length"),h=u(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(s,c,o,0,h));return v(_),y}function lr(e,r,a,_,s,n,c){var o=[];i(c),f(o,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&b(o,"keyLength must be an unsigned integer");var h=u(r=m(o,r,"password")),y=r.length;o.push(h),a=m(o,a,"salt");var d,E=0|t._crypto_pwhash_saltbytes();a.length!==E&&b(o,"invalid salt length"),d=u(a),o.push(d),f(o,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&b(o,"opsLimit must be an unsigned integer"),f(o,s,"memLimit"),("number"!=typeof s||(0|s)!==s||s<0)&&b(o,"memLimit must be an unsigned integer"),f(o,n,"algorithm"),("number"!=typeof n||(0|n)!==n||n<0)&&b(o,"algorithm must be an unsigned integer");var x=new l(0|e),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,y,0,d,_,0,s,n))){var S=p(x,c);return v(o),S}g(o,"invalid usage")}function ur(e,r,a,_,s,n){var c=[];i(n),f(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&b(c,"keyLength must be an unsigned integer");var o=u(r=m(c,r,"password")),h=r.length;c.push(o),a=m(c,a,"salt");var y,d=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==d&&b(c,"invalid salt length"),y=u(a),c.push(y),f(c,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&b(c,"opsLimit must be an unsigned integer"),f(c,s,"memLimit"),("number"!=typeof s||(0|s)!==s||s<0)&&b(c,"memLimit must be an unsigned integer");var E=new l(0|e),x=E.address;if(c.push(x),0==(0|t._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,y,_,0,s))){var k=p(E,n);return v(c),k}g(c,"invalid usage")}function dr(e,r,a,_,s,n,c){var o=[];i(c);var h=u(e=m(o,e,"password")),y=e.length;o.push(h);var d=u(r=m(o,r,"salt")),E=r.length;o.push(d),f(o,a,"opsLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(o,"opsLimit must be an unsigned integer"),f(o,_,"r"),("number"!=typeof _||(0|_)!==_||_<0)&&b(o,"r must be an unsigned integer"),f(o,s,"p"),("number"!=typeof s||(0|s)!==s||s<0)&&b(o,"p must be an unsigned integer"),f(o,n,"keyLength"),("number"!=typeof n||(0|n)!==n||n<0)&&b(o,"keyLength must be an unsigned integer");var x=new l(0|n),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,y,d,E,a,0,_,s,k,n))){var S=p(x,c);return v(o),S}g(o,"invalid usage")}function vr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,"password")),c=e.length;s.push(n),f(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&b(s,"opsLimit must be an unsigned integer"),f(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(s,"memLimit must be an unsigned integer");var o=new l(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,"invalid usage")}function gr(e,r,a){var s=[];i(a),"string"!=typeof e&&b(s,"hashed_password must be a string"),e=_(e+"\0"),null!=c&&e.length-1!==c&&b(s,"invalid hashed_password length");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,"password")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(n,o,h,0));return v(s),p}function br(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,"password")),c=e.length;s.push(n),f(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&b(s,"opsLimit must be an unsigned integer"),f(s,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(s,"memLimit must be an unsigned integer");var o=new l(0|t._crypto_pwhash_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,"invalid usage")}function fr(e,r,a,s){var n=[];i(s),"string"!=typeof e&&b(n,"hashed_password must be a string"),e=_(e+"\0"),null!=o&&e.length-1!==o&&b(n,"invalid hashed_password length");var c=u(e),o=e.length-1;n.push(c),f(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&b(n,"opsLimit must be an unsigned integer"),f(n,a,"memLimit"),("number"!=typeof a||(0|a)!==a||a<0)&&b(n,"memLimit must be an unsigned integer");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return v(n),h}function mr(e,r,a){var s=[];i(a),"string"!=typeof e&&b(s,"hashed_password must be a string"),e=_(e+"\0"),null!=c&&e.length-1!==c&&b(s,"invalid hashed_password length");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,"password")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_str_verify(n,o,h,0));return v(s),p}function Er(e,r,a){var _=[];i(a),e=m(_,e,"privateKey");var s,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&b(_,"invalid privateKey length"),s=u(e),_.push(s),r=m(_,r,"publicKey");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&b(_,"invalid publicKey length"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult(y,s,c))){var d=p(h,a);return v(_),d}g(_,"weak public key")}function xr(e,r){var a=[];i(r),e=m(a,e,"privateKey");var _,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&b(a,"invalid privateKey length"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=p(n,r);return v(a),o}g(a,"unknown error")}function kr(e,r,a){var _=[];i(a),e=m(_,e,"n");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,"invalid n length"),s=u(e),_.push(s),r=m(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,"invalid p length"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519(y,s,c))){var d=p(h,a);return v(_),d}g(_,"invalid point or scalar is 0")}function Sr(e,r){var a=[];i(r),e=m(a,e,"scalar");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,"invalid scalar length"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=p(n,r);return v(a),o}g(a,"scalar is 0")}function Tr(e,r){var a=[];i(r),e=m(a,e,"scalar");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,"invalid scalar length"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=p(n,r);return v(a),o}g(a,"scalar is 0")}function wr(e,r,a){var _=[];i(a),e=m(_,e,"n");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,"invalid n length"),s=u(e),_.push(s),r=m(_,r,"p");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,"invalid p length"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519_noclamp(y,s,c))){var d=p(h,a);return v(_),d}g(_,"invalid point or scalar is 0")}function Yr(e,r,a){var _=[];i(a),e=m(_,e,"scalar");var s,n=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==n&&b(_,"invalid scalar length"),s=u(e),_.push(s),r=m(_,r,"element");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&b(_,"invalid element length"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ristretto255_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ristretto255(y,s,c))){var d=p(h,a);return v(_),d}g(_,"result is identity element")}function Br(e,r){var a=[];i(r),e=m(a,e,"scalar");var _,s=0|t._crypto_core_ristretto255_scalarbytes();e.length!==s&&b(a,"invalid scalar length"),_=u(e),a.push(_);var n=new l(0|t._crypto_core_ristretto255_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=p(n,r);return v(a),o}g(a,"scalar is 0")}function Ar(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,"message")),c=e.length;s.push(n),r=m(s,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,"invalid nonce length"),o=u(r),s.push(o),a=m(s,a,"key");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,"invalid key length"),y=u(a),s.push(y);var f=new l(0|c),E=f.address;s.push(E);var x=new l(0|t._crypto_secretbox_macbytes()),k=x.address;if(s.push(k),0==(0|t._crypto_secretbox_detached(E,k,n,c,0,o,y))){var S=p({mac:x,cipher:f},_);return v(s),S}g(s,"invalid usage")}function Kr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,"message")),c=e.length;s.push(n),r=m(s,r,"nonce");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,"invalid nonce length"),o=u(r),s.push(o),a=m(s,a,"key");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,"invalid key length"),y=u(a),s.push(y);var f=new l(c+t._crypto_secretbox_macbytes()|0),E=f.address;if(s.push(E),0==(0|t._crypto_secretbox_easy(E,n,c,0,o,y))){var x=p(f,_);return v(s),x}g(s,"invalid usage")}function Mr(e){var r=[];i(e);var a=new l(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var s=p(a,e);return v(r),s}function Ir(e,r,a,_,s){var n=[];i(s);var c=u(e=m(n,e,"ciphertext")),o=e.length;n.push(c),r=m(n,r,"mac");var h,y=0|t._crypto_secretbox_macbytes();r.length!==y&&b(n,"invalid mac length"),h=u(r),n.push(h),a=m(n,a,"nonce");var d,f=0|t._crypto_secretbox_noncebytes();a.length!==f&&b(n,"invalid nonce length"),d=u(a),n.push(d),_=m(n,_,"key");var E,x=0|t._crypto_secretbox_keybytes();_.length!==x&&b(n,"invalid key length"),E=u(_),n.push(E);var k=new l(0|o),S=k.address;if(n.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,d,E))){var T=p(k,s);return v(n),T}g(n,"wrong secret key for the given ciphertext")}function Nr(e,r,a,_){var s=[];i(_),e=m(s,e,"ciphertext");var n,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return v([]),r}function gt(e,r){var a=[];i(r);for(var _=t._malloc(24),s=0;s<6;s++)t.setValue(_+4*s,t.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][s]]),"i32");0!=(0|t._randombytes_set_implementation(_))&&g(a,"unsupported implementation"),v(a)}function bt(e){i(e),t._randombytes_stir()}function ft(e,r){var a=[];i(r),f(a,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&b(a,"upper_bound must be an unsigned integer");var _=t._randombytes_uniform(e)>>>0;return v(a),_}function mt(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return v([]),r}return l.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can added");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError("Arguments must have the same length");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=c,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==r.length)throw new TypeError("Only instances of identical length can be compared");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=o(r);var a,_=[],s=new l(3*(e=m(_,e,"input")).length/4),n=u(e),c=d(4),h=d(4);return _.push(n),_.push(s.address),_.push(s.result_bin_len_p),_.push(s.b64_end_p),0!==t._sodium_base642bin(s.address,s.length,n,e.length,0,c,h,r)&&g(_,"invalid input"),t.getValue(h,"i32")-n!==e.length&&g(_,"incomplete input"),s.length=t.getValue(c,"i32"),a=s.to_Uint8Array(),v(_),a},e.from_hex=function(e){var r,a=[],_=new l((e=m(a,e,"input")).length/2),s=u(e),n=d(4);return a.push(s),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,s,e.length,0,0,n)&&g(a,"invalid input"),t.getValue(n,"i32")-s!==e.length&&g(a,"incomplete input"),r=_.to_Uint8Array(),v(a),r},e.from_string=_,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var r=0,t=0,a=e.length;t 0");var a,_=[],s=d(4),n=1,c=0,o=0|e.length,h=new l(o+r);_.push(s),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(s,h.address,e.length,r,h.length)&&g(_,"internal error"),h.length=t.getValue(s,"i32"),a=h.to_Uint8Array(),v(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((r|=0)<=0)throw new Error("block size must be > 0");var a=[],_=u(e),s=d(4);return a.push(_),a.push(s),0!==t._sodium_unpad(s,_,e.length,r)&&g(a,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(s,"i32")),v(a),e},e.ready=a,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=h,e.to_hex=n,e.to_string=s,e}var t="object"==typeof e.sodium&&"function"==typeof e.sodium.onload?e.sodium.onload:null;"function"==typeof define&&define.amd?define(["exports","libsodium"],r): true&&"string"!=typeof exports.nodeName?r(exports,__nccwpck_require__(4569)):e.sodium=r(e.commonJsStrict={},e.libsodium),t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this); - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock +/***/ }), - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) +/***/ 4569: +/***/ (function(module, exports, __nccwpck_require__) { - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression +!function(A){function I(A){"use strict";var I;void 0===(I=A)&&(I={});var g=I;"object"!=typeof g.sodium&&("object"==typeof global?g=global:"object"==typeof window&&(g=window)),"object"==typeof g.sodium&&"number"==typeof g.sodium.totalMemory&&(I.TOTAL_MEMORY=g.sodium.totalMemory);var B=I;return I.ready=new Promise((function(A,I){(a=B).onAbort=I,a.print=function(A){},a.printErr=function(A){},a.onRuntimeInitialized=function(){try{a._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},a.useBackupModule=function(){return new Promise((function(A,I){(a={}).onAbort=I,a.onRuntimeInitialized=function(){Object.keys(B).forEach((function(A){"getRandomValue"!==A&&delete B[A]})),Object.keys(a).forEach((function(A){B[A]=a[A]})),A()};var g,C,Q,E,i,n,a=void 0!==a?a:{},r=Object.assign({},a),o=[],t="object"==typeof window,e="function"==typeof importScripts,f="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,c="";f?(c=e?(__nccwpck_require__(1017).dirname)(c)+"/":__dirname+"/",n=()=>{i||(E=__nccwpck_require__(7147),i=__nccwpck_require__(1017))},g=function(A,I){var g=AA(A);return g?I?g:g.toString():(n(),A=i.normalize(A),E.readFileSync(A,I?void 0:"utf8"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},C=(A,I,g)=>{var B=AA(A);B&&I(B),n(),A=i.normalize(A),E.readFile(A,(function(A,B){A?g(A):I(B.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),o=process.argv.slice(2), true&&(module.exports=a),a.inspect=function(){return"[Emscripten Module object]"}):(t||e)&&(e?c=self.location.href:"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=AA(A);if(g)return function(A){for(var I=[],g=0;g255&&(B&=255),I.push(String.fromCharCode(B))}return I.join("")}(g);throw I}},e&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=AA(A);if(g)return g;throw I}}),C=(A,I,g)=>{var B=new XMLHttpRequest;B.open("GET",A,!0),B.responseType="arraybuffer",B.onload=()=>{if(200==B.status||0==B.status&&B.response)I(B.response);else{var C=AA(A);C?I(C.buffer):g()}},B.onerror=g,B.send(null)}),a.print;var y,s=a.printErr||void 0;Object.assign(a,r),r=null,a.arguments&&(o=a.arguments),a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(y=a.wasmBinary),a.noExitRuntime;var w,D={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),B=25;B>=0;--B)g[48+B]=52+B,g[65+B]=B,g[97+B]=26+B;function C(A,I,B){for(var C,Q,E=0,i=I,n=B.length,a=I+(3*n>>2)-("="==B[n-2])-("="==B[n-1]);E>4,i>2),i>2]=n[0|K]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24,i[j+4>>2]=IA,16!=(0|(X=X+1|0)););for(g=eI(q,A,64),K=i[(I=g)>>2],X=i[I+4>>2],o=K,K=(IA=i[I+32>>2])+(q=i[I+128>>2])|0,I=(O=i[I+36>>2])+i[I+132>>2]|0,I=K>>>0>>0?I+1|0:I,q=K,I=I+X|0,q=I=(K=o+K|0)>>>0>>0?I+1|0:I,L=pA((X=K)^(n[0|(K=A- -64|0)]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24)^-1377402159,I^(n[K+4|0]|n[K+5|0]<<8|n[K+6|0]<<16|n[K+7|0]<<24)^1359893119,32),K=I=h,I=I+1779033703|0,o=IA^(j=L-205731576|0),IA=I=j>>>0<4089235720?I+1|0:I,H=pA(o,O^I,24),O=I=h,T=K,o=L,I=I+q|0,I=(I=(L=H+X|0)>>>0>>0?I+1|0:I)+(t=B=i[g+140>>2])|0,r=pA(o^(b=X=(K=i[g+136>>2])+L|0),(p=b>>>0>>0?I+1|0:I)^T,16),I=IA+(f=h)|0,o=pA((Y=X=j+r|0)^H,(q=Y>>>0>>0?I+1|0:I)^O,63),w=h,j=i[g+12>>2],X=(H=i[g+144>>2])+(IA=i[g+40>>2])|0,I=(gA=i[g+148>>2])+(O=i[g+44>>2])|0,T=X,I=(I=X>>>0>>0?I+1|0:I)+j|0,I=(X=X+i[g+8>>2]|0)>>>0>>0?I+1|0:I,L=pA(X^(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)^725511199,(n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24)^I^-1694144372,32),T=pA(u=IA^(j=L-2067093701|0),O^(t=(IA=h)-((L>>>0<2067093701)+1150833018|0)|0),24),G=i[g+156>>2],u=T,I=I+(O=h)|0,I=(I=(T=X+T|0)>>>0>>0?I+1|0:I)+G|0,z=pA((S=X=T+i[g+152>>2]|0)^L,(_=S>>>0>>0?I+1|0:I)^IA,16),I=t+(v=h)|0,fA=X=j+z|0,L=pA(u^X,(j=X>>>0>>0?I+1|0:I)^O,63),t=h,IA=i[g+20>>2],X=(U=i[g+160>>2])+(T=i[g+48>>2])|0,I=(QA=i[g+164>>2])+(G=i[g+52>>2])|0,O=X,I=(I=X>>>0>>0?I+1|0:I)+IA|0,nA=X=X+i[g+16>>2]|0,X=X>>>0>>0?I+1|0:I,k=pA(nA^(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24)^-79577749,X^(n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)^528734635,32),IA=I=h,I=I+1013904242|0,u=T^(O=k-23791573|0),T=I=O>>>0<4271175723?I+1|0:I,I=pA(u,G^I,24),c=IA,C=i[g+172>>2],e=I,u=k,k=I,nA=I+nA|0,I=(G=h)+X|0,I=(I=k>>>0>nA>>>0?I+1|0:I)+(F=C)|0,J=pA(u^(F=X=(IA=i[g+168>>2])+(k=nA)|0),(M=k>>>0>F>>>0?I+1|0:I)^c,16),I=T+(l=h)|0,G=pA(e^(P=X=O+J|0),(T=P>>>0>>0?I+1|0:I)^G,63),c=h,k=i[g+28>>2],O=(X=i[g+176>>2])+(nA=i[g+56>>2])|0,I=(E=i[g+180>>2])+(m=i[g+60>>2])|0,I=(I=O>>>0>>0?I+1|0:I)+k|0,I=(y=O)>>>0>(N=O=y+i[g+24>>2]|0)>>>0?I+1|0:I,e=pA(N^(n[A+88|0]|n[A+89|0]<<8|n[A+90|0]<<16|n[A+91|0]<<24)^327033209,I^(n[A+92|0]|n[A+93|0]<<8|n[A+94|0]<<16|n[A+95|0]<<24)^1541459225,32),k=pA(u=nA^(D=(k=e)+1595750129|0),m^(nA=(O=h)-((k>>>0<2699217167)+1521486533|0)|0),24),y=nA,u=O,nA=i[g+188>>2],d=k,I=(m=h)+I|0,I=(I=(N=k+N|0)>>>0>>0?I+1|0:I)+nA|0,V=k=(O=i[g+184>>2])+N|0,e=pA(k^e,(R=u)^(u=k>>>0>>0?I+1|0:I),16),I=(I=y)+(y=h)|0,N=k=e+D|0,D=m,m=I=k>>>0>>0?I+1|0:I,R=pA(d^k,D^I,63),k=h,d=L,I=t+p|0,I=(I=(b=b+L|0)>>>0>>0?I+1|0:I)+(D=W=i[g+196>>2])|0,D=P,b=pA((P=L=(CA=i[g+192>>2])+(p=b)|0)^e,(L=p>>>0>P>>>0?I+1|0:I)^y,32),I=(I=T)+(T=h)|0,e=t,t=I=(p=D+(y=b)|0)>>>0>>0?I+1|0:I,I=pA(d^p,e^I,24),aA=i[g+204>>2],x=I,d=y,e=P,P=I,e=e+I|0,I=(y=h)+L|0,I=(I=e>>>0

>>0?I+1|0:I)+(D=aA)|0,Z=L=(b=i[g+200>>2])+e|0,oA=pA(d^L,(P=e>>>0>L>>>0?I+1|0:I)^T,16),I=t+(e=h)|0,x=pA(x^(D=T=p+oA|0),(t=y)^(y=p>>>0>D>>>0?I+1|0:I),63),p=h,d=G,I=c+_|0,I=(I=(T=G+S|0)>>>0>>0?I+1|0:I)+(t=iA=i[g+212>>2])|0,S=pA((t=r)^(r=T=(L=i[g+208>>2])+(G=T)|0),(G=G>>>0>r>>>0?I+1|0:I)^f,32),I=m+(t=h)|0,T=pA(d^(m=T=N+S|0),(I=N>>>0>m>>>0?I+1|0:I)^c,24),f=I,_=t,AA=i[g+220>>2],$=T,d=m,I=(c=h)+G|0,I=(I=(m=r+T|0)>>>0>>0?I+1|0:I)+(N=AA)|0,_=pA((m=T=(t=i[g+216>>2])+(G=m)|0)^S,(N=G>>>0>m>>>0?I+1|0:I)^_,16),I=(r=h)+f|0,rA=T=d+_|0,d=pA($^T,(G=_>>>0>T>>>0?I+1|0:I)^c,63),c=h,$=R,I=k+M|0,I=(f=F+R|0)>>>0>>0?I+1|0:I,F=f,I=I+(S=a=i[g+228>>2])|0,R=pA((M=f=(T=i[g+224>>2])+f|0)^z,(f=f>>>0>>0?I+1|0:I)^v,32),I=(v=h)+q|0,Y=F=R+Y|0,q=pA($^F,(I=F>>>0>>0?I+1|0:I)^k,24),F=I,z=i[g+236>>2],$=q,I=(k=h)+f|0,I=(I=(M=M+q|0)>>>0>>0?I+1|0:I)+(S=z)|0,eA=pA((M=q=(BA=i[g+232>>2])+(f=M)|0)^R,(S=v)^(v=f>>>0>M>>>0?I+1|0:I),16),I=(I=F)+(F=h)|0,k=pA($^(R=q=(f=eA)+Y|0),(Y=f>>>0>R>>>0?I+1|0:I)^k,63),f=h,$=o,I=w+u|0,I=(I=(S=o+V|0)>>>0>>0?I+1|0:I)+(cA=i[g+244>>2])|0,I=(o=(q=i[g+240>>2])+(u=S)|0)>>>0>>0?I+1|0:I,u=l,l=I,S=pA(o^J,u^I,32),I=(I=j)+(j=h)|0,J=u=S+fA|0,V=pA($^u,(I=u>>>0>>0?I+1|0:I)^w,24),w=I,u=j,fA=i[g+252>>2],tA=V,EA=J,J=S,I=l+($=h)|0,I=(I=(S=o+V|0)>>>0>>0?I+1|0:I)+fA|0,I=(o=(j=i[g+248>>2])+(l=S)|0)>>>0>>0?I+1|0:I,l=o,S=u,u=I,V=pA(J^o,S^I,16),I=(S=h)+w|0,J=pA(tA^(EA=o=EA+(J=V)|0),(o=o>>>0>>0?I+1|0:I)^$,63),$=I=h,w=I,tA=_,I=P+cA|0,P=_=q+Z|0,I=(I=_>>>0>>0?I+1|0:I)+w|0,Z=pA(tA^(w=_=_+J|0),(_=w>>>0

>>0?I+1|0:I)^r,32),I=Y+(P=h)|0,R=I=(r=R+Z|0)>>>0>>0?I+1|0:I,J=pA(J^r,$^I,24),$=I=h,Y=I,yA=J,I=_+iA|0,_=J=w+L|0,I=(I=J>>>0>>0?I+1|0:I)+Y|0,J=Z,Z=w=yA+_|0,tA=pA(J^w,(Y=P)^(P=w>>>0<_>>>0?I+1|0:I),16),I=R+(Y=h)|0,R=I=(w=r+tA|0)>>>0>>0?I+1|0:I,J=pA(yA^(r=w),I^$,63),_=h,I=p+QA|0,I=(I=(w=U+x|0)>>>0>>0?I+1|0:I)+N|0,U=I=(w=w+m|0)>>>0>>0?I+1|0:I,N=pA(w^eA,I^F,32),I=(I=o)+(o=h)|0,I=(F=(m=N)+EA|0)>>>0>>0?I+1|0:I,m=p,p=I,x=pA(F^x,m^I,24),QA=I=h,m=I,$=N,I=U+W|0,I=(I=(N=w+CA|0)>>>0>>0?I+1|0:I)+m|0,I=(w=(U=N)+x|0)>>>0>>0?I+1|0:I,U=w,m=I,eA=pA($^w,I^o,16),I=p+(N=h)|0,$=o=F+eA|0,x=pA(o^x,(w=o>>>0>>0?I+1|0:I)^QA,63),o=h,I=c+aA|0,I=(I=(p=b+d|0)>>>0>>0?I+1|0:I)+v|0,S=pA((b=p=p+M|0)^V,(p=p>>>0>>0?I+1|0:I)^S,32),I=y+(v=h)|0,y=c,c=I=(F=D+S|0)>>>0>>0?I+1|0:I,y=pA(F^d,y^I,24),D=I=h,d=y,I=p+fA|0,I=(I=(y=b+j|0)>>>0>>0?I+1|0:I)+D|0,aA=p=d+y|0,EA=pA(p^S,(b=v)^(v=p>>>0>>0?I+1|0:I),16),I=c+(M=h)|0,b=p=F+EA|0,S=pA(d^p,(c=p>>>0>>0?I+1|0:I)^D,63),p=h,D=k,I=f+z|0,I=(I=(F=k+BA|0)>>>0>>0?I+1|0:I)+u|0,I=(k=F+l|0)>>>0>>0?I+1|0:I,l=k,k=I,y=pA(l^oA,I^e,32),I=(I=G)+(G=h)|0,u=F=y+rA|0,e=pA(D^F,(I=y>>>0>F>>>0?I+1|0:I)^f,24),D=f=h,F=I,I=k+E|0,I=(I=(l=l+X|0)>>>0>>0?I+1|0:I)+f|0,I=(k=l+e|0)>>>0>>0?I+1|0:I,f=u,l=k,u=k^y,y=I,G=f+(k=u=pA(u,I^G,16))|0,I=(f=h)+F|0,V=G,d=pA(G^e,(k=G>>>0>>0?I+1|0:I)^D,63),G=h,D=b,e=u,I=P+B|0,u=F=K+Z|0,I=(I=F>>>0>>0?I+1|0:I)+o|0,I=(F=F+x|0)>>>0>>0?I+1|0:I,u=f,f=I,b=pA(e^F,u^I,32),I=(I=c)+(c=h)|0,P=u=D+b|0,e=pA(u^x,(I=u>>>0>>0?I+1|0:I)^o,24),D=o=h,u=I,x=b,I=f+a|0,I=(I=(b=F+T|0)>>>0>>0?I+1|0:I)+o|0,I=(f=(F=b)+e|0)>>>0>>0?I+1|0:I,F=f,b=I,oA=pA(x^f,I^c,16),I=(I=u)+(u=h)|0,P=o=(c=oA)+P|0,QA=pA(f=o^e,(e=o>>>0>>0?I+1|0:I)^D,63),c=h,I=p+m|0,I=(o=U+S|0)>>>0>>0?I+1|0:I,U=o,I=I+(f=rA=i[g+132>>2])|0,f=I=(o=(D=i[g+128>>2])+o|0)>>>0>>0?I+1|0:I,m=pA(o^tA,I^Y,32),I=(I=k)+(k=h)|0,Y=U=m+V|0,S=pA(U^S,(I=U>>>0>>0?I+1|0:I)^p,24),x=p=h,U=I,V=m,I=f+gA|0,I=(I=(m=o+H|0)>>>0>>0?I+1|0:I)+p|0,m=o=(f=m)+S|0,o=pA(V^o,(p=k)^(k=o>>>0>>0?I+1|0:I),16),I=(I=U)+(U=h)|0,Y=p=o+Y|0,V=pA(f=p^S,(S=o>>>0>p>>>0?I+1|0:I)^x,63),p=h,Z=d,I=v+AA|0,v=f=t+aA|0,I=(I=f>>>0>>0?I+1|0:I)+G|0,d=pA((x=f=f+d|0)^eA,(f=f>>>0>>0?I+1|0:I)^N,32),I=R+(v=h)|0,I=r>>>0>(N=r+d|0)>>>0?I+1|0:I,R=pA(Z^(r=N),I^G,24),aA=G=h,N=I,tA=R,Z=r,I=f+nA|0,I=(I=(r=x+O|0)>>>0>>0?I+1|0:I)+G|0,I=r>>>0>(f=r+R|0)>>>0?I+1|0:I,r=f,G=v,v=I,eA=pA(f^d,G^I,16),I=(G=h)+N|0,N=f=Z+(R=eA)|0,aA=pA(tA^f,(I=f>>>0>>0?I+1|0:I)^aA,63),f=h,R=I,x=o,I=_+C|0,I=(I=(o=J+IA|0)>>>0>>0?I+1|0:I)+y|0,I=(o=o+l|0)>>>0>>0?I+1|0:I,l=o,y=M,M=I,d=pA(o^EA,y^I,32),I=(o=h)+w|0,Z=pA((y=d+$|0)^J,(I=y>>>0>>0?I+1|0:I)^_,24),w=I,_=o,J=i[g+156>>2],tA=y,I=M+($=h)|0,I=(I=(y=l+Z|0)>>>0>>0?I+1|0:I)+J|0,l=I=y>>>0>(M=(o=i[g+152>>2])+y|0)>>>0?I+1|0:I,EA=pA(M^d,I^_,16),I=(I=w)+(w=h)|0,d=I=(y=EA)>>>0>(_=tA+y|0)>>>0?I+1|0:I,Z=pA((y=_)^Z,I^$,63),$=I=h,_=I,tA=N,I=b+AA|0,I=(I=(N=t+F|0)>>>0>>0?I+1|0:I)+_|0,_=F=N+Z|0,x=pA(F^x,(b=U)^(U=F>>>0>>0?I+1|0:I),32),I=(F=h)+R|0,b=I=(b=x)>>>0>(N=tA+b|0)>>>0?I+1|0:I,Z=pA(Z^N,$^I,24),$=I=h,R=I,tA=x,I=U+W|0,I=(I=(x=_+CA|0)>>>0<_>>>0?I+1|0:I)+R|0,I=(_=(U=x)+Z|0)>>>0>>0?I+1|0:I,U=_,R=F,F=I,CA=pA(tA^_,R^I,16),I=b+(R=h)|0,I=(_=N+CA|0)>>>0>>0?I+1|0:I,N=_,b=I,x=pA(_^Z,I^$,63),_=h,Z=QA,I=c+a|0,I=(I=(W=T+QA|0)>>>0>>0?I+1|0:I)+k|0,k=G,G=I=m>>>0>(W=m+W|0)>>>0?I+1|0:I,QA=pA(W^eA,k^I,32),I=d+(k=h)|0,I=y>>>0>(m=y+QA|0)>>>0?I+1|0:I,y=c,c=I,d=pA(Z^m,y^I,24),Z=I=h,y=I,$=d,I=G+rA|0,I=(I=(d=D+W|0)>>>0>>0?I+1|0:I)+y|0,W=G=$+(D=d)|0,QA=pA(G^QA,(y=G>>>0>>0?I+1|0:I)^k,16),I=c+(D=h)|0,rA=G=m+QA|0,d=pA($^G,(k=G>>>0>>0?I+1|0:I)^Z,63),G=h,Z=V,I=p+C|0,I=(I=(c=IA+V|0)>>>0>>0?I+1|0:I)+v|0,I=(c=c+r|0)>>>0>>0?I+1|0:I,r=c,m=w,w=I,V=pA(c^EA,m^I,32),I=e+(c=h)|0,e=p,p=I=(v=P+V|0)>>>0

>>0?I+1|0:I,P=pA(Z^v,e^I,24),e=I=h,$=P,I=w+gA|0,I=(I=(P=r+H|0)>>>0>>0?I+1|0:I)+e|0,r=V,V=w=$+P|0,Z=pA(r^w,(m=w>>>0

>>0?I+1|0:I)^c,16),I=p+(P=h)|0,eA=w=v+Z|0,e=pA($^w,(p=w>>>0>>0?I+1|0:I)^e,63),w=h,I=f+fA|0,I=(I=(c=j+aA|0)>>>0>>0?I+1|0:I)+l|0,v=I=(c=c+M|0)>>>0>>0?I+1|0:I,r=pA(c^oA,I^u,32),I=S+(M=h)|0,u=f,f=I=(l=Y+r|0)>>>0>>0?I+1|0:I,Y=pA(l^aA,u^I,24),S=I=h,u=I,$=r,I=v+z|0,I=(I=(r=c+BA|0)>>>0>>0?I+1|0:I)+u|0,u=c=r+Y|0,r=pA($^c,(v=M)^(M=c>>>0>>0?I+1|0:I),16),I=f+(v=h)|0,aA=c=l+r|0,Y=pA(c^Y,(f=c>>>0>>0?I+1|0:I)^S,63),c=h,I=F+iA|0,I=(I=(l=U+L|0)>>>0>>0?I+1|0:I)+G|0,l=U=(F=l)+d|0,r=pA(U^r,(S=v)^(v=F>>>0>U>>>0?I+1|0:I),32),I=(I=p)+(p=h)|0,F=G,G=I=r>>>0>(U=r+eA|0)>>>0?I+1|0:I,S=pA(U^d,F^I,24),d=I=h,F=I,I=v+cA|0,I=(I=(l=l+q|0)>>>0>>0?I+1|0:I)+F|0,oA=v=l+S|0,eA=pA(v^r,(F=v>>>0>>0?I+1|0:I)^p,16),I=G+(l=h)|0,$=p=U+eA|0,S=pA(p^S,(G=p>>>0>>0?I+1|0:I)^d,63),p=h,d=e,I=y+J|0,I=(I=(v=o+W|0)>>>0>>0?I+1|0:I)+w|0,e=pA((y=v=(U=v)+e|0)^CA,(v=y>>>0>>0?I+1|0:I)^R,32),I=(I=f)+(f=h)|0,R=pA(d^(r=U=e+aA|0),(I=e>>>0>r>>>0?I+1|0:I)^w,24),d=w=h,U=I,W=R,I=v+E|0,I=(I=(y=y+X|0)>>>0>>0?I+1|0:I)+w|0,I=y>>>0>(v=y+R|0)>>>0?I+1|0:I,w=r,r=(y=v)^e,e=I,r=pA(r,I^f,16),I=(R=h)+U|0,f=pA(W^(EA=w=w+r|0),(w=w>>>0>>0?I+1|0:I)^d,63),v=h,W=Y,I=m+nA|0,m=U=O+V|0,I=(I=U>>>0>>0?I+1|0:I)+c|0,d=pA((Y=U=U+Y|0)^QA,(U=U>>>0>>0?I+1|0:I)^D,32),I=b+(m=h)|0,b=D=N+d|0,D=pA(W^D,(I=D>>>0>>0?I+1|0:I)^c,24),W=c=h,N=I,V=b,I=U+B|0,I=(I=(b=Y+K|0)>>>0>>0?I+1|0:I)+c|0,I=(U=b+D|0)>>>0>>0?I+1|0:I,b=U,c=m,m=I,tA=pA(U^d,c^I,16),I=(I=N)+(N=h)|0,d=pA((c=V+(U=tA)|0)^D,(I=c>>>0>>0?I+1|0:I)^W,63),U=h,D=c,Y=I,I=_+M|0,M=c=u+x|0,I=(I=c>>>0>>0?I+1|0:I)+(W=i[g+204>>2])|0,M=I=(c=(CA=i[g+200>>2])+c|0)>>>0>>0?I+1|0:I,P=pA(c^Z,I^P,32),I=(I=k)+(k=h)|0,x=pA((u=P+rA|0)^x,(I=u>>>0

>>0?I+1|0:I)^_,24),_=I,QA=i[g+164>>2],rA=u,I=M+(aA=h)|0,I=(I=(u=c+x|0)>>>0>>0?I+1|0:I)+QA|0,M=c=(V=i[g+160>>2])+u|0,u=I=c>>>0>>0?I+1|0:I,Z=pA(c^P,I^k,16),I=(P=h)+_|0,x=pA((rA=c=rA+(k=Z)|0)^x,(c=c>>>0>>0?I+1|0:I)^aA,63),aA=I=h,k=I,I=F+nA|0,I=(I=(_=O+oA|0)>>>0>>0?I+1|0:I)+k|0,R=pA((k=_=(F=_)+x|0)^r,(_=F>>>0>k>>>0?I+1|0:I)^R,32),I=(F=h)+Y|0,Y=D=(r=R)+D|0,x=pA(x^D,aA^(I=r>>>0>D>>>0?I+1|0:I),24),aA=D=h,r=I,yA=x,oA=R,I=_+W|0,I=(I=(R=k+CA|0)>>>0>>0?I+1|0:I)+D|0,R=k=(_=R)+x|0,x=pA(oA^k,(D=F)^(F=_>>>0>k>>>0?I+1|0:I),16),I=(D=h)+r|0,aA=pA(yA^(oA=k=(_=x)+Y|0),(k=_>>>0>k>>>0?I+1|0:I)^aA,63),_=h,I=p+J|0,I=(I=(r=o+S|0)>>>0>>0?I+1|0:I)+e|0,r=pA((e=o=r+y|0)^tA,(o=o>>>0>>0?I+1|0:I)^N,32),I=(I=c)+(c=h)|0,N=p,p=I=(y=r+rA|0)>>>0>>0?I+1|0:I,Y=pA(y^S,N^I,24),S=I=h,N=I,I=o+B|0,I=(I=(e=e+K|0)>>>0>>0?I+1|0:I)+N|0,J=o=e+Y|0,rA=pA(o^r,(N=o>>>0>>0?I+1|0:I)^c,16),I=p+(e=h)|0,tA=o=y+rA|0,r=pA(o^Y,(c=o>>>0>>0?I+1|0:I)^S,63),o=h,Y=f,I=v+z|0,I=(I=(p=f+BA|0)>>>0>>0?I+1|0:I)+m|0,f=I=(p=p+b|0)>>>0>>0?I+1|0:I,y=pA(p^Z,I^P,32),I=(I=G)+(G=h)|0,b=m=y+$|0,P=pA(Y^m,(I=y>>>0>m>>>0?I+1|0:I)^v,24),m=I,S=b,Y=y,I=f+a|0,f=y=p+T|0,I=(I=y>>>0

>>0?I+1|0:I)+(v=h)|0,Z=pA(Y^(y=p=y+P|0),(b=y>>>0>>0?I+1|0:I)^G,16),I=(I=m)+(m=h)|0,f=P,P=G=S+(p=Z)|0,Y=pA(f^G,(p=p>>>0>G>>>0?I+1|0:I)^v,63),G=h,I=U+AA|0,I=(I=(f=t+d|0)>>>0>>0?I+1|0:I)+u|0,l=pA((u=f=f+M|0)^eA,(f=f>>>0>>0?I+1|0:I)^l,32),I=(I=w)+(w=h)|0,M=U,U=I=(v=l+EA|0)>>>0>>0?I+1|0:I,S=pA(v^d,M^I,24),d=I=h,M=I,z=l,I=f+cA|0,I=(I=(l=u+q|0)>>>0>>0?I+1|0:I)+M|0,M=f=l+S|0,u=pA(z^f,(l=f>>>0>>0?I+1|0:I)^w,16),I=U+(f=h)|0,I=(w=v+u|0)>>>0>>0?I+1|0:I,v=w,U=I,S=pA(w^S,I^d,63),w=h,z=P,d=u,I=F+gA|0,I=(I=(u=H+R|0)>>>0>>0?I+1|0:I)+o|0,I=(F=u+r|0)>>>0>>0?I+1|0:I,u=F,P=f,f=I,P=pA(d^F,P^I,32),I=(I=p)+(p=h)|0,R=pA((R=r)^(r=F=z+P|0),(I=r>>>0

>>0?I+1|0:I)^o,24),d=o=h,F=I,I=f+E|0,I=(I=(u=u+X|0)>>>0>>0?I+1|0:I)+o|0,I=(f=u+R|0)>>>0>>0?I+1|0:I,u=f,o=f^P,P=I,eA=pA(o,I^p,16),I=(I=F)+(F=h)|0,r=o=(p=eA)+r|0,d=pA(f=o^R,(R=o>>>0

>>0?I+1|0:I)^d,63),f=h,z=Y,I=N+C|0,p=o=J+IA|0,I=(I=o>>>0>>0?I+1|0:I)+G|0,D=pA((Y=o=o+Y|0)^x,(o=o>>>0

>>0?I+1|0:I)^D,32),I=U+(p=h)|0,N=pA(z^(U=N=v+D|0),(I=v>>>0>U>>>0?I+1|0:I)^G,24),x=G=h,v=I,J=N,z=U,I=o+iA|0,I=(I=(U=Y+L|0)>>>0>>0?I+1|0:I)+G|0,N=o=U+N|0,G=pA(G=o^D,(D=o>>>0>>0?I+1|0:I)^p,16),I=(U=h)+v|0,$=o=z+G|0,z=pA(J^o,(p=o>>>0>>0?I+1|0:I)^x,63),v=h,Y=S,I=b+QA|0,I=(o=y+V|0)>>>0>>0?I+1|0:I,y=o,I=I+w|0,I=(o=o+S|0)>>>0>>0?I+1|0:I,y=o,b=I,S=pA(o^rA,I^e,32),I=(o=h)+k|0,x=e=S+oA|0,Y=pA(Y^e,(I=e>>>0>>0?I+1|0:I)^w,24),k=I,e=o,BA=i[g+132>>2],J=Y,I=b+(w=h)|0,I=(I=(Y=y+Y|0)>>>0>>0?I+1|0:I)+BA|0,b=I=(y=(o=i[g+128>>2])+(b=Y)|0)>>>0>>0?I+1|0:I,oA=pA(y^S,I^e,16),I=(e=h)+k|0,J=pA(J^(Y=(S=oA)+x|0),(I=S>>>0>Y>>>0?I+1|0:I)^w,63),k=h,S=I,x=G,I=_+fA|0,I=(I=(G=j+aA|0)>>>0>>0?I+1|0:I)+l|0,m=pA((w=G=G+M|0)^Z,(M=w>>>0>>0?I+1|0:I)^m,32),I=(G=h)+c|0,Z=pA((l=m+tA|0)^aA,(I=l>>>0>>0?I+1|0:I)^_,24),c=I,_=G,aA=i[g+196>>2],tA=Z,EA=l,I=M+(rA=h)|0,I=(I=(l=w+Z|0)>>>0>>0?I+1|0:I)+aA|0,M=w=(G=i[g+192>>2])+l|0,l=I=w>>>0>>0?I+1|0:I,Z=pA(w^m,I^_,16),I=(I=c)+(c=h)|0,m=pA(tA^(EA=w=EA+(_=Z)|0),(w=w>>>0<_>>>0?I+1|0:I)^rA,63),rA=I=h,_=I,tA=Y,I=P+W|0,I=(I=(Y=u+CA|0)>>>0>>0?I+1|0:I)+_|0,I=(u=(P=Y)+m|0)>>>0

>>0?I+1|0:I,P=u,_=I,Y=pA(u^x,I^U,32),I=(U=h)+S|0,S=u=tA+Y|0,x=pA(m^u,rA^(I=u>>>0>>0?I+1|0:I),24),W=m=h,u=I,I=_+BA|0,I=(I=(P=o+P|0)>>>0>>0?I+1|0:I)+m|0,CA=_=P+x|0,rA=pA(_^Y,(m=_>>>0

>>0?I+1|0:I)^U,16),I=(I=u)+(u=h)|0,P=_=(U=rA)+S|0,W=pA(_^x,(Y=_>>>0>>0?I+1|0:I)^W,63),U=h,I=f+C|0,I=(I=(_=d+IA|0)>>>0>>0?I+1|0:I)+D|0,N=I=(_=_+N|0)>>>0>>0?I+1|0:I,S=pA(_^oA,I^e,32),I=(I=w)+(w=h)|0,I=(e=(D=S)+EA|0)>>>0>>0?I+1|0:I,D=f,f=I,x=pA(e^d,D^I,24),d=I=h,D=I,EA=S,I=N+nA|0,I=(I=(S=_+O|0)>>>0<_>>>0?I+1|0:I)+D|0,N=_=S+x|0,D=I=_>>>0>>0?I+1|0:I,oA=pA(EA^_,I^w,16),I=f+(S=h)|0,EA=w=e+oA|0,x=pA(w^x,(f=w>>>0>>0?I+1|0:I)^d,63),w=h,I=v+gA|0,I=(I=(_=H+z|0)>>>0>>0?I+1|0:I)+b|0,e=c,c=I=y>>>0>(_=y+_|0)>>>0?I+1|0:I,d=pA(_^Z,e^I,32),I=R+(y=h)|0,I=r>>>0>(b=r+d|0)>>>0?I+1|0:I,r=v,v=I,r=pA(b^z,r^I,24),R=I=h,e=I,Z=r,I=c+QA|0,I=(I=(r=_+V|0)>>>0<_>>>0?I+1|0:I)+e|0,_=d,d=c=Z+r|0,z=pA(_^c,(e=y)^(y=c>>>0>>0?I+1|0:I),16),I=v+(e=h)|0,b=pA(Z^(r=c=b+z|0),(_=r>>>0>>0?I+1|0:I)^R,63),c=h,I=k+iA|0,I=(I=(v=L+J|0)>>>0>>0?I+1|0:I)+l|0,I=(v=v+M|0)>>>0>>0?I+1|0:I,M=v,v=I,l=pA(M^eA,I^F,32),I=(I=p)+(p=h)|0,R=F=l+$|0,J=pA(F^J,(I=F>>>0>>0?I+1|0:I)^k,24),QA=k=h,F=I,I=v+fA|0,I=(I=(M=M+j|0)>>>0>>0?I+1|0:I)+k|0,M=I=(v=M+J|0)>>>0>>0?I+1|0:I,k=(p=l=pA(v^l,I^p,16))+R|0,I=(I=F)+(F=h)|0,R=J,J=k,R=pA(R^k,(p=p>>>0>k>>>0?I+1|0:I)^QA,63),k=h,Z=r,V=l,I=m+cA|0,m=l=q+CA|0,I=(I=l>>>0>>0?I+1|0:I)+w|0,I=(l=l+x|0)>>>0>>0?I+1|0:I,m=l,r=F,F=I,r=pA(V^l,r^I,32),I=(I=_)+(_=h)|0,V=x,x=l=Z+r|0,CA=pA(V^l,(I=r>>>0>l>>>0?I+1|0:I)^w,24),QA=w=h,l=I,I=F+B|0,I=(I=(m=m+K|0)>>>0>>0?I+1|0:I)+w|0,V=F=m+CA|0,Z=pA(F^r,(w=_)^(_=F>>>0>>0?I+1|0:I),16),I=(F=h)+l|0,l=w=(m=Z)+x|0,CA=pA(w^CA,(m=w>>>0>>0?I+1|0:I)^QA,63),w=h,x=b,I=D+AA|0,I=(I=(b=t+N|0)>>>0>>0?I+1|0:I)+c|0,r=pA((D=N=x+b|0)^rA,(r=u)^(u=b>>>0>D>>>0?I+1|0:I),32),I=(I=p)+(p=h)|0,b=c,c=I=r>>>0>(N=r+J|0)>>>0?I+1|0:I,x=pA(x^N,b^I,24),J=I=h,b=I,I=u+a|0,I=(I=(D=D+T|0)>>>0>>0?I+1|0:I)+b|0,b=I=(u=D+x|0)>>>0>>0?I+1|0:I,p=pA(u^r,I^p,16),I=c+(D=h)|0,I=(r=N+p|0)>>>0>>0?I+1|0:I,N=r,r=I,J=pA(N^x,I^J,63),c=h,$=R,I=y+E|0,I=(I=(R=d+X|0)>>>0>>0?I+1|0:I)+k|0,d=pA((x=y=$+R|0)^oA,(y=y>>>0>>0?I+1|0:I)^S,32),I=Y+(R=h)|0,Y=k,k=I=(S=P+d|0)>>>0

>>0?I+1|0:I,S=pA($^(P=S),Y^I,24),QA=I=h,Y=I,$=S,I=y+aA|0,I=(I=(S=G+x|0)>>>0>>0?I+1|0:I)+Y|0,Y=R,R=I=(y=$+S|0)>>>0>>0?I+1|0:I,oA=pA(y^d,Y^I,16),I=k+(Y=h)|0,I=(S=P+oA|0)>>>0

>>0?I+1|0:I,QA=pA($^(P=S),I^QA,63),k=h,S=I,I=U+M|0,I=(I=(d=v+W|0)>>>0>>0?I+1|0:I)+(rA=i[g+156>>2])|0,M=I=(v=(x=i[g+152>>2])+(M=d)|0)>>>0>>0?I+1|0:I,d=pA(v^z,I^e,32),I=(I=f)+(f=h)|0,z=pA((e=d+EA|0)^W,(I=e>>>0>>0?I+1|0:I)^U,24),U=I,eA=i[g+236>>2],EA=e,$=d,I=M+(W=h)|0,I=(I=(d=v+z|0)>>>0>>0?I+1|0:I)+eA|0,I=(v=(e=i[g+232>>2])+(M=d)|0)>>>0>>0?I+1|0:I,M=f,f=I,$=pA($^v,M^I,16),I=(I=U)+(U=h)|0,d=I=(M=EA+(d=$)|0)>>>0>>0?I+1|0:I,W=pA(M^z,I^W,63),z=I=h,EA=P,P=p,I=_+gA|0,I=(I=(p=H+V|0)>>>0>>0?I+1|0:I)+z|0,D=pA(P^(gA=H=p+W|0),(H=p>>>0>H>>>0?I+1|0:I)^D,32),I=(p=h)+S|0,S=_=EA+D|0,z=pA(W^_,z^(I=_>>>0>>0?I+1|0:I),24),W=_=h,P=I,V=D,I=H+a|0,I=(I=(D=T+gA|0)>>>0>>0?I+1|0:I)+_|0,V=pA(V^(_=H=D+z|0),(D=_>>>0>>0?I+1|0:I)^p,16),I=(I=P)+(P=h)|0,S=H=(p=V)+S|0,gA=pA(gA=H^z,(z=p>>>0>H>>>0?I+1|0:I)^W,63),p=h,I=w+E|0,I=(I=(H=X+CA|0)>>>0>>0?I+1|0:I)+b|0,Y=pA((W=H=H+u|0)^oA,(H=H>>>0>>0?I+1|0:I)^Y,32),I=d+(u=h)|0,I=(b=M+Y|0)>>>0>>0?I+1|0:I,M=b,d=w,w=I,d=pA(b^CA,d^I,24),CA=I=h,b=I,EA=Y,I=H+iA|0,I=(I=(Y=L+W|0)>>>0>>0?I+1|0:I)+b|0,W=H=Y+d|0,oA=pA(EA^H,(b=u)^(u=H>>>0>>0?I+1|0:I),16),I=w+(b=h)|0,I=(H=M+oA|0)>>>0>>0?I+1|0:I,M=H,Y=I,d=pA(H^d,I^CA,63),w=h,I=c+BA|0,I=(I=(H=o+J|0)>>>0>>0?I+1|0:I)+R|0,I=y>>>0>(H=y+H|0)>>>0?I+1|0:I,y=H,H=I,R=pA(y^$,I^U,32),I=m+(o=h)|0,I=l>>>0>(U=l+R|0)>>>0?I+1|0:I,l=c,c=I,m=pA(U^J,l^I,24),BA=I=h,l=I,J=m,I=H+AA|0,I=(I=(m=t+y|0)>>>0>>0?I+1|0:I)+l|0,y=R,R=H=J+(t=m)|0,AA=pA(y^H,(l=t>>>0>H>>>0?I+1|0:I)^o,16),I=c+(m=h)|0,CA=H=U+AA|0,y=pA(J^H,(o=H>>>0>>0?I+1|0:I)^BA,63),H=h,I=k+aA|0,I=(I=(t=G+QA|0)>>>0>>0?I+1|0:I)+f|0,I=(t=t+v|0)>>>0>>0?I+1|0:I,v=t,t=I,U=pA(v^Z,I^F,32),I=r+(G=h)|0,f=k,k=I=(c=N+U|0)>>>0>>0?I+1|0:I,F=pA(c^QA,f^I,24),N=I=h,f=I,r=F,I=t+rA|0,I=(I=(v=v+x|0)>>>0>>0?I+1|0:I)+f|0,f=t=v+F|0,F=pA(t^U,(v=t>>>0>>0?I+1|0:I)^G,16),I=k+(U=h)|0,BA=t=c+F|0,r=pA(r^t,(G=t>>>0>>0?I+1|0:I)^N,63),t=h,I=w+D|0,I=(c=_+d|0)>>>0<_>>>0?I+1|0:I,_=c,I=I+(k=i[g+164>>2])|0,U=pA((k=F)^(F=c=c+i[g+160>>2]|0),(c=c>>>0<_>>>0?I+1|0:I)^U,32),I=(I=o)+(o=h)|0,N=w,w=I=(_=U)>>>0>(k=_+CA|0)>>>0?I+1|0:I,N=pA(k^d,N^I,24),D=I=h,_=I,d=U,I=c+eA|0,I=(I=(U=F+e|0)>>>0>>0?I+1|0:I)+_|0,J=pA(d^(CA=c=U+N|0),(c=c>>>0>>0?I+1|0:I)^o,16),I=w+(_=h)|0,I=(o=k+J|0)>>>0>>0?I+1|0:I,k=o,U=I,x=pA(o^N,I^D,63),o=h,D=y,I=u+nA|0,F=w=O+W|0,I=(I=w>>>0>>0?I+1|0:I)+H|0,N=pA((u=w=w+y|0)^V,(w=w>>>0>>0?I+1|0:I)^P,32),I=(I=G)+(G=h)|0,e=H,H=I=(y=N)>>>0>(F=y+BA|0)>>>0?I+1|0:I,P=pA(D^F,e^I,24),e=I=h,y=I,I=w+C|0,I=(I=(u=u+IA|0)>>>0>>0?I+1|0:I)+y|0,w=pA((y=w=u+P|0)^N,(u=y>>>0>>0?I+1|0:I)^G,16),I=H+(N=h)|0,I=F>>>0>(G=F+w|0)>>>0?I+1|0:I,G=(F=G)^P,P=I,d=pA(G,I^e,63),H=h,V=r,I=l+fA|0,I=(I=(G=R+j|0)>>>0>>0?I+1|0:I)+t|0,r=pA((D=G=(l=G)+r|0)^oA,(G=D>>>0>>0?I+1|0:I)^b,32),I=z+(l=h)|0,e=t,t=I=(b=S+r|0)>>>0>>0?I+1|0:I,R=pA(V^b,e^I,24),S=I=h,e=I,I=G+cA|0,I=(I=(D=D+q|0)>>>0>>0?I+1|0:I)+e|0,z=pA((e=G=D+R|0)^r,(G=l)^(l=e>>>0>>0?I+1|0:I),16),I=t+(D=h)|0,S=pA((t=G=b+z|0)^R,(I=t>>>0>>0?I+1|0:I)^S,63),G=h,b=I,I=p+B|0,I=(I=(r=K+gA|0)>>>0>>0?I+1|0:I)+v|0,f=I=(r=r+f|0)>>>0>>0?I+1|0:I,R=pA(r^AA,I^m,32),I=Y+(v=h)|0,I=(m=M+R|0)>>>0>>0?I+1|0:I,M=m,Y=p,p=I,I=pA(m^gA,Y^I,24),gA=i[g+204>>2],V=I,m=I,r=I+r|0,I=(Y=h)+f|0,I=(I=r>>>0>>0?I+1|0:I)+gA|0,I=(f=r+i[g+200>>2]|0)>>>0>>0?I+1|0:I,r=v,v=I,gA=pA(f^R,r^I,16),I=p+(m=h)|0,p=r=M+gA|0,R=pA(V^r,(M=r>>>0>>0?I+1|0:I)^Y,63),r=I=h,Z=t,V=w,I=c+a|0,w=t=T+CA|0,I=(I=t>>>0>>0?I+1|0:I)+r|0,AA=pA(V^(Y=t=t+R|0),(t=t>>>0>>0?I+1|0:I)^N,32),I=(w=h)+b|0,N=I=(c=Z+(N=AA)|0)>>>0>>0?I+1|0:I,r=pA(R^c,r^I,24),BA=I=h,b=I,V=r,I=t+C|0,I=(I=(r=Y+IA|0)>>>0>>0?I+1|0:I)+b|0,b=t=V+r|0,AA=pA(t^AA,(r=t>>>0>>0?I+1|0:I)^w,16),I=N+(R=h)|0,N=t=c+AA|0,w=pA(V^t,(Y=t>>>0>>0?I+1|0:I)^BA,63),c=h,V=x,I=o+B|0,I=(I=(t=K+x|0)>>>0>>0?I+1|0:I)+u|0,D=pA((x=t=t+y|0)^z,(t=t>>>0>>0?I+1|0:I)^D,32),I=M+(y=h)|0,I=p>>>0>(u=p+D|0)>>>0?I+1|0:I,p=u,u=o,o=I,u=pA(V^p,u^I,24),z=I=h,M=I,V=u,I=t+fA|0,I=(I=(u=x+j|0)>>>0>>0?I+1|0:I)+M|0,BA=t=V+u|0,W=pA(t^D,(M=t>>>0>>0?I+1|0:I)^y,16),I=o+(y=h)|0,I=(t=p+W|0)>>>0

>>0?I+1|0:I,p=t,u=I,D=pA(V^t,I^z,63),o=h,I=H+cA|0,I=(I=(t=d+q|0)>>>0>>0?I+1|0:I)+l|0,I=(t=t+e|0)>>>0>>0?I+1|0:I,e=t,t=I,x=pA(e^gA,I^m,32),I=U+(l=h)|0,U=H,H=I=k>>>0>(m=k+x|0)>>>0?I+1|0:I,I=pA((k=m)^d,U^I,24),d=i[g+236>>2],V=I,m=I,e=I+e|0,I=(U=h)+t|0,I=(I=e>>>0>>0?I+1|0:I)+d|0,I=(t=e+i[g+232>>2]|0)>>>0>>0?I+1|0:I,m=t,e=l,l=I,z=pA(t^x,e^I,16),I=H+(e=h)|0,x=pA(V^(d=t=k+z|0),(t=t>>>0>>0?I+1|0:I)^U,63),H=h,V=S,I=G+v|0,I=(I=(k=f+S|0)>>>0>>0?I+1|0:I)+(U=i[g+164>>2])|0,S=pA((U=k=(f=k)+i[g+160>>2]|0)^J,(k=f>>>0>k>>>0?I+1|0:I)^_,32),I=P+(f=h)|0,I=F>>>0>(_=F+S|0)>>>0?I+1|0:I,F=G,G=I,F=pA(V^_,F^I,24),P=I=h,v=I,I=k+iA|0,I=(I=(U=U+L|0)>>>0>>0?I+1|0:I)+v|0,U=pA((gA=k=U+F|0)^S,(k=k>>>0>>0?I+1|0:I)^f,16),I=G+(f=h)|0,I=(v=_+U|0)>>>0<_>>>0?I+1|0:I,_=v,v=I,S=pA(_^F,I^P,63),G=h,P=U,I=o+r|0,I=(U=D+b|0)>>>0>>0?I+1|0:I,b=U,I=I+(F=i[g+132>>2])|0,I=(U=U+i[g+128>>2]|0)>>>0>>0?I+1|0:I,b=U,r=f,f=I,P=pA(P^U,r^I,32),I=(I=t)+(t=h)|0,r=o,o=I=(F=P)>>>0>(U=F+d|0)>>>0?I+1|0:I,D=pA(U^D,r^I,24),r=I=h,I=f+nA|0,I=(I=(b=b+O|0)>>>0>>0?I+1|0:I)+r|0,J=pA((CA=f=b+D|0)^P,(f=f>>>0>>0?I+1|0:I)^t,16),I=o+(F=h)|0,I=(t=U+J|0)>>>0>>0?I+1|0:I,U=t,b=I,d=pA(t^D,I^r,63),t=h,I=M+E|0,M=o=X+BA|0,I=(I=o>>>0>>0?I+1|0:I)+H|0,r=pA((D=o=o+x|0)^AA,(o=o>>>0>>0?I+1|0:I)^R,32),I=v+(M=h)|0,I=_>>>0>(P=_+r|0)>>>0?I+1|0:I,_=P,P=H,H=I,I=pA(_^x,P^I,24),R=i[g+156>>2],x=I,P=I,D=I+D|0,I=(v=h)+o|0,I=(I=D>>>0

>>0?I+1|0:I)+R|0,I=(o=D+i[g+152>>2]|0)>>>0>>0?I+1|0:I,P=o,D=M,M=I,AA=pA(o^r,D^I,16),I=H+(D=h)|0,I=(o=_+AA|0)>>>0<_>>>0?I+1|0:I,_=o,r=v,v=I,x=pA(x^o,r^I,63),o=h,I=G+l|0,l=H=m+S|0,I=(I=H>>>0>>0?I+1|0:I)+(r=i[g+204>>2])|0,l=I=(H=H+i[g+200>>2]|0)>>>0>>0?I+1|0:I,R=pA(H^W,I^y,32),I=Y+(m=h)|0,r=G,G=I=(y=N+R|0)>>>0>>0?I+1|0:I,r=pA(y^S,r^I,24),N=I=h,S=r,I=I+l|0,I=(I=(r=r+H|0)>>>0>>0?I+1|0:I)+(Y=i[g+148>>2])|0,I=(H=r+i[g+144>>2]|0)>>>0>>0?I+1|0:I,l=H,r=m,m=I,BA=pA(H^R,r^I,16),I=G+(r=h)|0,G=N,N=I=y>>>0>(H=y+BA|0)>>>0?I+1|0:I,Y=pA(S^(y=H),G^I,63),G=h,S=w,I=c+k|0,I=(I=(H=w+gA|0)>>>0>>0?I+1|0:I)+(R=i[g+196>>2])|0,R=H=(w=H)+i[g+192>>2]|0,e=pA(H^z,(w=w>>>0>H>>>0?I+1|0:I)^e,32),I=u+(k=h)|0,u=H=p+e|0,H=pA(S^H,(I=p>>>0>H>>>0?I+1|0:I)^c,24),p=I,z=i[g+220>>2],$=H,Z=u,V=e,I=(c=h)+w|0,I=(I=(e=H+R|0)>>>0>>0?I+1|0:I)+(S=z)|0,gA=pA(V^(e=H=(u=i[g+216>>2])+(w=e)|0),(H=k)^(k=w>>>0>e>>>0?I+1|0:I),16),I=(I=p)+(p=h)|0,R=I=(w=gA)>>>0>(H=Z+w|0)>>>0?I+1|0:I,I=pA($^H,I^c,63),W=i[g+236>>2],V=I,c=I,S=I+CA|0,I=(w=h)+f|0,I=(I=c>>>0>S>>>0?I+1|0:I)+W|0,AA=pA((S=c=(f=S)+i[g+232>>2]|0)^AA,(c=c>>>0>>0?I+1|0:I)^D,32),I=N+(f=h)|0,N=w,w=I=y>>>0>(D=y+AA|0)>>>0?I+1|0:I,D=I=pA(V^(y=D),N^I,24),S=I+S|0,I=(N=h)+c|0,I=z+(D>>>0>S>>>0?I+1|0:I)|0,z=c=u+S|0,AA=pA(c^AA,(S=f)^(f=c>>>0>>0?I+1|0:I),16),I=w+(u=h)|0,w=N,N=I=(c=y+AA|0)>>>0>>0?I+1|0:I,w=pA(D^(y=c),w^I,63),c=h,I=t+nA|0,I=(I=(D=d+O|0)>>>0>>0?I+1|0:I)+M|0,S=D=D+P|0,r=pA(D^BA,(M=D>>>0

>>0?I+1|0:I)^r,32),I=R+(P=h)|0,I=H>>>0>(D=H+r|0)>>>0?I+1|0:I,H=D,R=t,t=I,R=pA(D^d,R^I,24),d=I=h,D=I,V=r,I=M+cA|0,I=(I=(r=S+q|0)>>>0>>0?I+1|0:I)+D|0,W=pA(V^(BA=M=r+R|0),(M=r>>>0>M>>>0?I+1|0:I)^P,16),I=t+(P=h)|0,r=I=H>>>0>(D=H+W|0)>>>0?I+1|0:I,R=pA(D^R,I^d,63),H=h,I=o+a|0,I=(I=(t=x+T|0)>>>0>>0?I+1|0:I)+m|0,S=pA((m=t=t+l|0)^gA,(t=t>>>0>>0?I+1|0:I)^p,32),I=b+(p=h)|0,I=(l=U+S|0)>>>0>>0?I+1|0:I,U=l,l=o,o=I,b=pA(U^x,l^I,24),x=I=h,l=I,I=t+B|0,I=(I=(m=m+K|0)>>>0>>0?I+1|0:I)+l|0,l=t=m+b|0,d=pA(t^S,(d=p)^(p=t>>>0>>0?I+1|0:I),16),I=o+(m=h)|0,I=(t=U+d|0)>>>0>>0?I+1|0:I,U=t,o=t^b,b=I,S=pA(o,I^x,63),t=h,V=Y,I=G+k|0,k=o=e+Y|0,I=(I=o>>>0>>0?I+1|0:I)+(x=i[g+156>>2])|0,k=I=(o=o+i[g+152>>2]|0)>>>0>>0?I+1|0:I,Y=pA(o^J,I^F,32),I=v+(F=h)|0,I=(e=_+Y|0)>>>0<_>>>0?I+1|0:I,_=e,v=G,G=I,e=pA(V^e,v^I,24),v=I=h,J=e,I=I+k|0,I=(I=(e=o+e|0)>>>0>>0?I+1|0:I)+(x=i[g+204>>2])|0,gA=o=e+i[g+200>>2]|0,e=pA(o^Y,(k=o>>>0>>0?I+1|0:I)^F,16),I=G+(F=h)|0,G=o=_+e|0,Y=pA(J^o,(_=o>>>0<_>>>0?I+1|0:I)^v,63),o=h,x=R,I=f+C|0,I=(I=(v=z+IA|0)>>>0>>0?I+1|0:I)+H|0,v=I=(f=v+R|0)>>>0>>0?I+1|0:I,R=pA(f^e,I^F,32),I=b+(F=h)|0,I=(e=U+R|0)>>>0>>0?I+1|0:I,U=e,b=H,H=I,e=pA(x^e,b^I,24),b=I=h,J=e,I=I+v|0,I=(I=(e=f+e|0)>>>0>>0?I+1|0:I)+(x=i[g+132>>2])|0,CA=pA((z=f=e+i[g+128>>2]|0)^R,(f=f>>>0>>0?I+1|0:I)^F,16),I=H+(v=h)|0,I=(F=U+CA|0)>>>0>>0?I+1|0:I,U=F,F=I,x=pA(J^U,I^b,63),H=h,I=M+fA|0,I=(I=(b=j+BA|0)>>>0>>0?I+1|0:I)+t|0,R=pA((e=M=b+S|0)^AA,(M=b>>>0>e>>>0?I+1|0:I)^u,32),I=_+(u=h)|0,I=G>>>0>(b=G+R|0)>>>0?I+1|0:I,G=b,b=t,t=I,I=pA(G^S,b^I,24),S=i[g+164>>2],J=I,b=I,e=I+e|0,I=(_=h)+M|0,I=(I=e>>>0>>0?I+1|0:I)+S|0,I=e>>>0>(M=e+i[g+160>>2]|0)>>>0?I+1|0:I,e=u,u=I,b=pA(M^R,e^I,16),I=t+(e=h)|0,t=_,_=I=G>>>0>(R=G+b|0)>>>0?I+1|0:I,t=pA(J^R,t^I,63),G=h,J=Y,I=o+p|0,I=(I=(Y=l+Y|0)>>>0>>0?I+1|0:I)+(S=i[g+196>>2])|0,S=pA((Y=p=(l=Y)+i[g+192>>2]|0)^W,(p=p>>>0>>0?I+1|0:I)^P,32),I=N+(l=h)|0,N=o,o=I=y>>>0>(P=y+S|0)>>>0?I+1|0:I,P=pA(J^(y=P),N^I,24),AA=I=h,N=I,J=P,I=p+E|0,I=(I=(P=Y+X|0)>>>0>>0?I+1|0:I)+N|0,W=pA((BA=p=J+P|0)^S,(p=p>>>0

>>0?I+1|0:I)^l,16),I=o+(l=h)|0,I=y>>>0>(N=y+W|0)>>>0?I+1|0:I,Y=pA(J^(y=N),I^AA,63),o=h,N=I,J=w,I=c+k|0,I=(I=(P=w+gA|0)>>>0>>0?I+1|0:I)+(S=i[g+148>>2])|0,d=pA((S=w=(k=P)+i[g+144>>2]|0)^d,(w=w>>>0>>0?I+1|0:I)^m,32),I=r+(k=h)|0,r=c,c=I=D>>>0>(m=D+d|0)>>>0?I+1|0:I,D=pA(J^m,r^I,24),r=I=h,J=D,I=w+iA|0,I=(I=(D=S+L|0)>>>0>>0?I+1|0:I)+r|0,P=w=J+D|0,d=pA(w^d,(S=k)^(k=w>>>0>>0?I+1|0:I),16),I=c+(D=h)|0,r=pA(J^(c=w=m+d|0),(m=c>>>0>>0?I+1|0:I)^r,63),S=I=h,w=I,J=y,I=f+E|0,I=(I=(y=X+z|0)>>>0>>0?I+1|0:I)+w|0,z=f=y+r|0,e=pA(f^b,(w=f>>>0>>0?I+1|0:I)^e,32),I=(f=h)+N|0,N=I=(y=J+e|0)>>>0>>0?I+1|0:I,r=pA(r^y,S^I,24),S=I=h,b=I,J=e,I=w+fA|0,I=(I=(e=j+z|0)>>>0>>0?I+1|0:I)+b|0,z=w=e+r|0,gA=pA(J^w,(b=f)^(f=w>>>0>>0?I+1|0:I),16),I=N+(b=h)|0,N=I=(w=y+gA|0)>>>0>>0?I+1|0:I,S=pA((y=w)^r,I^S,63),w=h,I=H+cA|0,I=(I=(e=x+q|0)>>>0>>0?I+1|0:I)+u|0,M=I=(e=e+M|0)>>>0>>0?I+1|0:I,r=pA(e^W,I^l,32),I=m+(l=h)|0,I=c>>>0>(u=c+r|0)>>>0?I+1|0:I,c=u,u=H,H=I,I=pA(c^x,u^I,24),x=i[g+204>>2],J=I,u=I,e=I+e|0,I=(m=h)+M|0,I=(I=u>>>0>e>>>0?I+1|0:I)+x|0,W=pA((AA=M=e+i[g+200>>2]|0)^r,(M=e>>>0>M>>>0?I+1|0:I)^l,16),I=H+(l=h)|0,r=m,m=I=c>>>0>(u=c+W|0)>>>0?I+1|0:I,r=pA(J^u,r^I,63),H=h,x=t,I=p+G|0,I=(I=(c=t+BA|0)>>>0>>0?I+1|0:I)+(e=i[g+220>>2])|0,D=pA((e=t=c+i[g+216>>2]|0)^d,(t=t>>>0>>0?I+1|0:I)^D,32),I=F+(c=h)|0,I=(p=U+D|0)>>>0>>0?I+1|0:I,U=G,G=I,I=pA(x^p,U^I,24),x=i[g+156>>2],d=I,F=I,e=I+e|0,I=(U=h)+t|0,I=(I=F>>>0>e>>>0?I+1|0:I)+x|0,BA=t=e+i[g+152>>2]|0,J=pA(t^D,(F=t>>>0>>0?I+1|0:I)^c,16),I=G+(e=h)|0,I=(t=p+J|0)>>>0

>>0?I+1|0:I,p=t,c=U,U=I,G=pA(d^t,c^I,63),c=h,d=Y,I=o+k|0,k=t=P+Y|0,I=(I=t>>>0

>>0?I+1|0:I)+(D=i[g+132>>2])|0,k=I=(t=t+i[g+128>>2]|0)>>>0>>0?I+1|0:I,Y=pA(t^CA,I^v,32),I=_+(v=h)|0,D=pA(d^(_=P=R+Y|0),(P=o)^(o=_>>>0>>0?I+1|0:I),24),P=I=h,d=D,I=I+k|0,k=D=t+D|0,I=(I=D>>>0>>0?I+1|0:I)+(R=i[g+196>>2])|0,D=t=D+i[g+192>>2]|0,R=pA(t^Y,(R=v)^(v=t>>>0>>0?I+1|0:I),16),I=o+(k=h)|0,I=(t=_+R|0)>>>0<_>>>0?I+1|0:I,_=t,o=P,P=I,x=pA(d^t,o^I,63),t=h,Y=r,I=f+a|0,f=o=T+z|0,I=(I=o>>>0>>0?I+1|0:I)+H|0,I=(o=o+r|0)>>>0>>0?I+1|0:I,f=k,k=I,R=pA(o^R,f^I,32),I=U+(f=h)|0,U=r=p+R|0,r=pA(Y^r,(I=p>>>0>r>>>0?I+1|0:I)^H,24),p=I,z=i[g+148>>2],V=r,d=U,I=k+(H=h)|0,I=(I=(r=o+r|0)>>>0>>0?I+1|0:I)+(Y=z)|0,CA=o=(U=i[g+144>>2])+r|0,QA=pA(o^R,(k=f)^(f=o>>>0>>0?I+1|0:I),16),I=(r=h)+p|0,R=o=d+(k=QA)|0,o=pA(V^o,(Y=o>>>0>>0?I+1|0:I)^H,63),k=h,d=G,I=c+M|0,I=(H=G+AA|0)>>>0>>0?I+1|0:I,G=H,I=I+(p=i[g+236>>2])|0,b=pA((M=H=H+i[g+232>>2]|0)^gA,(H=H>>>0>>0?I+1|0:I)^b,32),I=P+(G=h)|0,I=(p=_+b|0)>>>0<_>>>0?I+1|0:I,_=c,c=I,P=pA(d^p,_^I,24),d=I=h,_=I,I=H+nA|0,I=(I=(M=M+O|0)>>>0>>0?I+1|0:I)+_|0,gA=H=M+P|0,H=pA(H^b,(_=H>>>0>>0?I+1|0:I)^G,16),I=c+(M=h)|0,b=G=p+H|0,d=pA(c=G^P,(P=p>>>0>G>>>0?I+1|0:I)^d,63),G=h,V=x,I=F+B|0,p=c=K+BA|0,I=(I=c>>>0>>0?I+1|0:I)+t|0,p=I=(c=c+x|0)>>>0

>>0?I+1|0:I,x=pA(c^W,I^l,32),I=N+(F=h)|0,I=y>>>0>(l=y+x|0)>>>0?I+1|0:I,N=pA(V^(y=l),I^t,24),l=I,AA=i[g+164>>2],$=N,Z=y,I=p+(t=h)|0,I=(I=(N=c+N|0)>>>0>>0?I+1|0:I)+AA|0,N=c=(y=i[g+160>>2])+(p=N)|0,BA=pA(c^x,(V=F)^(F=c>>>0

>>0?I+1|0:I),16),I=(I=l)+(l=h)|0,I=(c=Z+(p=BA)|0)>>>0

>>0?I+1|0:I,p=c,x=t,t=I,x=pA($^c,x^I,63),c=h,V=S,I=w+iA|0,I=(I=(S=S+L|0)>>>0>>0?I+1|0:I)+v|0,v=I=D>>>0>(S=D+S|0)>>>0?I+1|0:I,W=pA(S^J,I^e,32),I=m+(e=h)|0,m=D=u+W|0,D=pA(V^D,(J=w)^(w=u>>>0>D>>>0?I+1|0:I),24),J=I=h,u=I,V=D,I=v+C|0,I=(I=(D=S+IA|0)>>>0>>0?I+1|0:I)+u|0,u=I=(v=V+D|0)>>>0>>0?I+1|0:I,W=pA(v^W,I^e,16),I=w+(e=h)|0,I=(D=m+W|0)>>>0>>0?I+1|0:I,m=D,D=I,S=pA(V^m,I^J,63),J=I=h,w=I,V=H,I=f+iA|0,I=(I=(H=L+CA|0)>>>0>>0?I+1|0:I)+w|0,M=pA(V^(f=L=H+S|0),(H=H>>>0>f>>>0?I+1|0:I)^M,32),I=t+(w=h)|0,iA=L=p+M|0,p=I=p>>>0>L>>>0?I+1|0:I,J=L=pA(S^L,J^I,24),I=(t=h)+H|0,I=(I=(f=f+L|0)>>>0>>0?I+1|0:I)+z|0,z=pA((S=L=f+U|0)^M,(f=U>>>0>S>>>0?I+1|0:I)^w,16),I=(U=h)+p|0,iA=L=(H=z)+iA|0,w=pA(J^L,(H=H>>>0>L>>>0?I+1|0:I)^t,63),p=h,J=o,I=_+k|0,I=(I=(L=o+gA|0)>>>0>>0?I+1|0:I)+(t=i[g+196>>2])|0,l=pA((M=L=(o=L)+i[g+192>>2]|0)^BA,(L=o>>>0>M>>>0?I+1|0:I)^l,32),I=D+(t=h)|0,_=k,k=I=(o=m+l|0)>>>0>>0?I+1|0:I,D=I=pA(J^o,_^I,24),m=l,l=M,M=I,l=l+I|0,I=(_=h)+L|0,I=AA+(l>>>0>>0?I+1|0:I)|0,gA=L=y+l|0,AA=pA(m^L,(M=y>>>0>L>>>0?I+1|0:I)^t,16),I=k+(l=h)|0,D=pA(D^(k=L=o+AA|0),(t=_)^(_=o>>>0>k>>>0?I+1|0:I),63),L=h,I=G+nA|0,I=(I=(t=d+O|0)>>>0>>0?I+1|0:I)+F|0,N=pA((y=t=t+N|0)^W,(t=t>>>0>>0?I+1|0:I)^e,32),I=Y+(o=h)|0,e=G,G=I=(F=R+N|0)>>>0>>0?I+1|0:I,e=pA(F^d,e^I,24),R=I=h,m=I,I=t+E|0,I=(I=(y=y+X|0)>>>0>>0?I+1|0:I)+m|0,m=t=y+e|0,d=pA(t^N,(y=t>>>0>>0?I+1|0:I)^o,16),I=G+(N=h)|0,o=pA((o=e)^(e=t=F+d|0),(t=t>>>0>>0?I+1|0:I)^R,63),G=h,I=c+B|0,I=(I=(F=K+x|0)>>>0>>0?I+1|0:I)+u|0,R=F=F+v|0,r=pA(F^QA,(v=F>>>0>>0?I+1|0:I)^r,32),I=P+(F=h)|0,I=(u=b+r|0)>>>0>>0?I+1|0:I,b=c,c=I,P=pA(u^x,b^I,24),Y=I=h,b=I,x=P,I=v+C|0,I=(I=(P=R+IA|0)>>>0>>0?I+1|0:I)+b|0,P=pA((R=v=x+P|0)^r,(v=v>>>0

>>0?I+1|0:I)^F,16),I=c+(F=h)|0,I=u>>>0>(b=u+P|0)>>>0?I+1|0:I,u=b,b=I,r=pA(x^u,I^Y,63),c=h,J=D,x=e,Y=P,I=f+fA|0,I=(I=(P=S+j|0)>>>0>>0?I+1|0:I)+L|0,D=pA(Y^(e=f=P+D|0),(f=e>>>0

>>0?I+1|0:I)^F,32),I=(I=t)+(t=h)|0,P=L,L=I=(F=x+D|0)>>>0>>0?I+1|0:I,I=pA(J^F,P^I,24),Y=i[g+220>>2],J=I,x=D,P=e,e=I,D=P+I|0,I=(P=h)+f|0,I=(I=e>>>0>D>>>0?I+1|0:I)+Y|0,x=pA(x^(S=f=(e=D)+i[g+216>>2]|0),(f=f>>>0>>0?I+1|0:I)^t,16),I=L+(e=h)|0,I=(t=F+x|0)>>>0>>0?I+1|0:I,F=t,D=P,P=I,L=pA(J^t,D^I,63),t=h,J=o,I=G+M|0,M=D=o+gA|0,I=(I=D>>>0>>0?I+1|0:I)+(Y=i[g+204>>2])|0,Y=pA((D=o=D+i[g+200>>2]|0)^z,(o=o>>>0>>0?I+1|0:I)^U,32),I=b+(U=h)|0,I=u>>>0>(M=u+Y|0)>>>0?I+1|0:I,u=G,G=I,b=pA(J^M,u^I,24),z=I=h,u=I,J=b,I=o+cA|0,I=(I=(b=D+q|0)>>>0>>0?I+1|0:I)+u|0,gA=o=J+b|0,BA=pA(o^Y,(u=U)^(U=o>>>0>>0?I+1|0:I),16),I=G+(u=h)|0,I=(o=M+BA|0)>>>0>>0?I+1|0:I,M=o,b=I,o=pA(J^o,I^z,63),G=h,J=r,I=c+y|0,y=r=r+m|0,I=(I=r>>>0>>0?I+1|0:I)+(Y=z=i[g+156>>2])|0,Y=pA((r=m=(D=i[g+152>>2])+r|0)^AA,(m=l)^(l=y>>>0>r>>>0?I+1|0:I),32),I=(I=H)+(H=h)|0,I=(y=Y)>>>0>(m=y+iA|0)>>>0?I+1|0:I,y=c,c=I,iA=pA(J^m,y^I,24),AA=I=h,y=I,J=iA,I=l+a|0,I=(I=(r=r+T|0)>>>0>>0?I+1|0:I)+y|0,W=pA((iA=l=r+iA|0)^Y,(l=r>>>0>l>>>0?I+1|0:I)^H,16),I=c+(y=h)|0,Y=pA(J^(c=H=m+W|0),(m=c>>>0>>0?I+1|0:I)^AA,63),H=h,J=w,I=p+v|0,v=r=w+R|0,I=(I=r>>>0>>0?I+1|0:I)+(AA=i[g+236>>2])|0,R=pA((r=w=r+i[g+232>>2]|0)^d,(v=r>>>0>>0?I+1|0:I)^N,32),I=_+(N=h)|0,_=w=k+R|0,w=pA(J^w,(I=w>>>0>>0?I+1|0:I)^p,24),p=I,d=i[g+132>>2],V=w,J=_,I=(k=h)+v|0,I=(I=(r=w+r|0)>>>0>>0?I+1|0:I)+d|0,I=(w=(_=i[g+128>>2])+r|0)>>>0>>0?I+1|0:I,v=w,r=N,N=I,AA=pA(w^R,r^I,16),I=(I=p)+(p=h)|0,I=(w=J+(r=AA)|0)>>>0>>0?I+1|0:I,r=w,w=k,k=I,J=I=pA(V^r,w^I,63),R=I,S=I+S|0,I=(w=h)+f|0,I=d+(S>>>0>>0?I+1|0:I)|0,S=pA((R=f=_+S|0)^BA,(f=f>>>0<_>>>0?I+1|0:I)^u,32),I=m+(_=h)|0,I=c>>>0>(u=c+S|0)>>>0?I+1|0:I,c=u,u=w,w=I,u=pA(J^c,u^I,24),d=I=h,m=I,J=u,I=f+B|0,I=(I=(u=R+K|0)>>>0>>0?I+1|0:I)+m|0,BA=pA((R=f=J+u|0)^S,(f=f>>>0>>0?I+1|0:I)^_,16),I=w+(_=h)|0,u=I=c>>>0>(m=c+BA|0)>>>0?I+1|0:I,S=pA(J^m,I^d,63),w=h,J=L,I=t+U|0,I=(I=(c=L+gA|0)>>>0>>0?I+1|0:I)+(d=i[g+148>>2])|0,y=pA((d=L=c+i[g+144>>2]|0)^W,(L=c>>>0>L>>>0?I+1|0:I)^y,32),I=k+(c=h)|0,V=I=pA(J^(k=U=r+y|0),(U=t)^(t=r>>>0>k>>>0?I+1|0:I),24),J=y,y=I,r=I+d|0,I=(U=h)+L|0,I=z+(r>>>0>>0?I+1|0:I)|0,d=pA(J^(r=L=r+D|0),(y=D>>>0>r>>>0?I+1|0:I)^c,16),I=t+(D=h)|0,t=U,U=I=k>>>0>(L=k+d|0)>>>0?I+1|0:I,t=pA(V^(k=L),t^I,63),c=h,J=o,I=G+l|0,I=(I=(L=o+iA|0)>>>0>>0?I+1|0:I)+(z=i[g+164>>2])|0,z=pA((l=L=(o=L)+i[g+160>>2]|0)^AA,(L=o>>>0>l>>>0?I+1|0:I)^p,32),I=P+(o=h)|0,I=(p=F+z|0)>>>0>>0?I+1|0:I,F=G,G=I,P=pA(J^p,F^I,24),iA=I=h,F=I,I=L+C|0,I=(I=(l=l+IA|0)>>>0>>0?I+1|0:I)+F|0,J=z,z=L=l+P|0,gA=pA(J^L,(F=l>>>0>L>>>0?I+1|0:I)^o,16),I=G+(l=h)|0,I=p>>>0>(L=p+gA|0)>>>0?I+1|0:I,o=(p=L)^P,P=I,o=pA(o,I^iA,63),G=h,J=Y,I=H+E|0,I=(I=(L=Y+X|0)>>>0>>0?I+1|0:I)+N|0,e=pA((Y=L=v+L|0)^x,(L=v>>>0>L>>>0?I+1|0:I)^e,32),I=b+(v=h)|0,I=M>>>0>(N=M+e|0)>>>0?I+1|0:I,M=N,N=H,H=I,b=pA(J^M,N^I,24),x=I=h,N=I,J=b,I=L+nA|0,I=(I=(b=Y+O|0)>>>0>>0?I+1|0:I)+N|0,e=pA((N=L=J+b|0)^e,(Y=v)^(v=b>>>0>N>>>0?I+1|0:I),16),I=H+(b=h)|0,iA=L=M+e|0,Y=pA(J^L,(H=M>>>0>L>>>0?I+1|0:I)^x,63),L=h,J=t,I=c+f|0,f=M=t+R|0,I=(I=M>>>0>>0?I+1|0:I)+(x=i[g+196>>2])|0,b=pA((M=e)^(e=t=f+i[g+192>>2]|0),(t=t>>>0>>0?I+1|0:I)^b,32),I=P+(f=h)|0,P=c,c=I=p>>>0>(M=p+b|0)>>>0?I+1|0:I,I=pA(J^(p=M),P^I,24),R=i[g+204>>2],V=I,J=b,b=I,P=I+e|0,I=(M=h)+t|0,I=(I=b>>>0>P>>>0?I+1|0:I)+R|0,x=t=(b=P)+i[g+200>>2]|0,AA=pA(J^t,(e=f)^(f=t>>>0>>0?I+1|0:I),16),I=c+(b=h)|0,I=(t=p+AA|0)>>>0

>>0?I+1|0:I,p=t,c=M,M=I,t=pA(V^t,c^I,63),c=h,J=o,I=y+G|0,y=e=o+r|0,I=(I=e>>>0>>0?I+1|0:I)+(R=W=i[g+212>>2])|0,r=pA((e=o=(P=i[g+208>>2])+e|0)^BA,(o=o>>>0>>0?I+1|0:I)^_,32),I=(I=H)+(H=h)|0,y=G,G=I=r>>>0>(_=r+iA|0)>>>0?I+1|0:I,I=pA(J^_,y^I,24),R=i[g+220>>2],V=I,J=r,r=e,e=I,r=r+I|0,I=(y=h)+o|0,I=(I=r>>>0>>0?I+1|0:I)+R|0,iA=o=r+i[g+216>>2]|0,r=pA(J^o,(e=o>>>0>>0?I+1|0:I)^H,16),I=G+(R=h)|0,o=y,y=I=(H=_+r|0)>>>0<_>>>0?I+1|0:I,H=pA(V^(_=H),o^I,63),o=h,J=Y,I=F+a|0,I=(I=(G=T+z|0)>>>0>>0?I+1|0:I)+L|0,F=I=(F=G)>>>0>(G=F+Y|0)>>>0?I+1|0:I,d=pA(G^d,I^D,32),I=u+(D=h)|0,u=L,L=I=m>>>0>(Y=m+d|0)>>>0?I+1|0:I,Y=pA(J^(m=Y),u^I,24),u=I=h,J=Y,I=I+F|0,F=Y=G+Y|0,I=(I=Y>>>0>>0?I+1|0:I)+(z=i[g+236>>2])|0,Y=d,d=G=F+i[g+232>>2]|0,z=pA(Y^G,(F=F>>>0>G>>>0?I+1|0:I)^D,16),I=L+(D=h)|0,m=I=(G=m+z|0)>>>0>>0?I+1|0:I,Y=pA(J^G,I^u,63),L=h,J=S,I=w+cA|0,I=(I=(u=S+q|0)>>>0>>0?I+1|0:I)+v|0,I=(u=u+N|0)>>>0>>0?I+1|0:I,N=u,v=I,S=pA(u^gA,I^l,32),I=U+(l=h)|0,I=(u=k+S|0)>>>0>>0?I+1|0:I,k=u,u=w,w=I,u=pA(J^k,u^I,24),gA=I=h,U=I,J=u,I=v+fA|0,I=(I=(u=N+j|0)>>>0>>0?I+1|0:I)+U|0,U=I=u>>>0>(v=J+u|0)>>>0?I+1|0:I,S=pA(v^S,I^l,16),I=w+(l=h)|0,I=(u=k+S|0)>>>0>>0?I+1|0:I,k=u,u=I,N=pA(J^k,I^gA,63),gA=I=h,w=I,J=r,I=f+cA|0,f=r=x+q|0,I=(I=r>>>0>>0?I+1|0:I)+w|0,R=pA(J^(r=q=r+N|0),(q=f>>>0>r>>>0?I+1|0:I)^R,32),I=m+(w=h)|0,I=(f=G+R|0)>>>0>>0?I+1|0:I,G=f,f=I,x=I=pA(N^G,gA^I,24),N=I,r=I+r|0,I=(m=h)+q|0,I=W+(r>>>0>>0?I+1|0:I)|0,R=pA((r=q=r+P|0)^R,(N=P>>>0>r>>>0?I+1|0:I)^w,16),I=f+(P=h)|0,G=pA(x^(f=q=G+R|0),(w=m)^(m=G>>>0>f>>>0?I+1|0:I),63),w=h,J=t,I=c+e|0,I=(I=(q=t+iA|0)>>>0>>0?I+1|0:I)+(x=i[g+164>>2])|0,D=pA((x=q=(t=q)+i[g+160>>2]|0)^z,(q=t>>>0>x>>>0?I+1|0:I)^D,32),I=u+(t=h)|0,I=(e=k+D|0)>>>0>>0?I+1|0:I,k=e,u=c,c=I,I=pA(J^e,u^I,24),z=i[g+196>>2],V=I,J=D,e=I,D=I+x|0,I=(u=h)+q|0,I=(I=e>>>0>D>>>0?I+1|0:I)+z|0,x=pA(J^(D=q=(e=D)+i[g+192>>2]|0),(x=t)^(t=e>>>0>D>>>0?I+1|0:I),16),I=c+(z=h)|0,u=pA(V^(c=q=k+x|0),(k=k>>>0>c>>>0?I+1|0:I)^u,63),q=h,J=H,I=o+F|0,F=e=H+d|0,I=(I=e>>>0>>0?I+1|0:I)+(cA=i[g+204>>2])|0,S=pA((e=H=e+i[g+200>>2]|0)^S,(H=F>>>0>e>>>0?I+1|0:I)^l,32),I=M+(F=h)|0,I=p>>>0>(l=p+S|0)>>>0?I+1|0:I,p=l,l=o,o=I,l=pA(J^p,l^I,24),d=I=h,M=I,J=l,I=H+fA|0,I=(I=(l=e+j|0)>>>0>>0?I+1|0:I)+M|0,S=pA((e=j=J+(H=l)|0)^S,(l=F)^(F=H>>>0>e>>>0?I+1|0:I),16),I=o+(M=h)|0,j=pA(J^(o=j=p+S|0),(p=p>>>0>o>>>0?I+1|0:I)^d,63),H=h,J=Y,I=U+L|0,I=(I=(l=v+Y|0)>>>0>>0?I+1|0:I)+(d=i[g+236>>2])|0,b=pA((Y=v=l+i[g+232>>2]|0)^AA,(v=v>>>0>>0?I+1|0:I)^b,32),I=y+(U=h)|0,I=_>>>0>(l=_+b|0)>>>0?I+1|0:I,_=l,l=L,L=I,y=pA(J^_,l^I,24),l=I=h,d=y,I=v+E|0,I=(I=(y=Y+X|0)>>>0>>0?I+1|0:I)+l|0,I=y>>>0>(X=d+y|0)>>>0?I+1|0:I,y=U,U=I,b=pA((v=X)^b,y^I,16),I=L+(Y=h)|0,y=l,l=I=_>>>0>(X=_+b|0)>>>0?I+1|0:I,X=pA(d^(_=X),y^I,63),L=h,I=N+B|0,I=(I=(y=r+K|0)>>>0>>0?I+1|0:I)+q|0,I=y>>>0>(K=y+u|0)>>>0?I+1|0:I,N=K,y=T+K|0,K=I,I=a+I|0,T=(r=y)>>>0>>0?I+1|0:I,y=u,u=pA(b^N,Y^K,32),I=p+(N=h)|0,q=(o=b=pA(y^(p=K=o+u|0),(K=o>>>0>p>>>0?I+1|0:I)^q,24))+r|0,I=(r=h)+T|0,I=o>>>0>q>>>0?I+1|0:I,o=q,i[g>>2]=o,i[g+4>>2]=I,q=I,I=pA(o^u,I^N,16),y=T=h,i[g+120>>2]=I,i[g+124>>2]=y,T=I,p=I+p|0,I=y+K|0,i[g+80>>2]=p,I=p>>>0>>0?I+1|0:I,i[g+84>>2]=I,sA=g,wA=pA(b^p,I^r,63),i[sA+40>>2]=wA,i[g+44>>2]=h,r=j,I=t+H|0,I=(K=D+j|0)>>>0>>0?I+1|0:I,j=K,I=I+(T=i[g+132>>2])|0,j=I=(K=K+i[g+128>>2]|0)>>>0>>0?I+1|0:I,t=pA(K^R,I^P,32),I=l+(p=h)|0,I=_>>>0>(T=_+t|0)>>>0?I+1|0:I,_=T,T=I,l=pA(r^_,I^H,24),I=j+(y=h)|0,I=(H=l+K|0)>>>0>>0?I+1|0:I,K=(j=i[g+144>>2])+H|0,I=i[g+148>>2]+I|0,I=K>>>0>>0?I+1|0:I,i[g+8>>2]=K,i[g+12>>2]=I,I=pA(t^K,I^p,16),H=K=h,i[g+96>>2]=I,i[g+100>>2]=H,K=I,j=I+_|0,I=H+T|0,I=K>>>0>j>>>0?I+1|0:I,K=j,i[g+88>>2]=K,i[g+92>>2]=I,sA=g,wA=pA(l^K,I^y,63),i[sA+48>>2]=wA,i[g+52>>2]=h,r=O,I=F+L|0,O=K=e+X|0,I=(I=K>>>0>>0?I+1|0:I)+(j=i[g+220>>2])|0,T=K=K+i[g+216>>2]|0,j=r+K|0,K=I=K>>>0>>0?I+1|0:I,I=I+nA|0,j=(H=j)>>>0>>0?I+1|0:I,r=H,T=pA(x^T,K^z,32),I=m+(H=h)|0,L=pA((t=K=f+T|0)^X,(K=f>>>0>t>>>0?I+1|0:I)^L,24),I=(p=h)+j|0,I=L>>>0>(X=r+L|0)>>>0?I+1|0:I,i[g+16>>2]=X,i[g+20>>2]=I,I=pA(X^T,I^H,16),O=X=h,i[g+104>>2]=I,i[g+108>>2]=X,X=I,j=I+t|0,I=K+O|0,K=j,i[g+64>>2]=K,I=X>>>0>K>>>0?I+1|0:I,i[g+68>>2]=I,sA=g,wA=pA(L^K,I^p,63),i[sA+56>>2]=wA,i[g+60>>2]=h,I=w+C|0,I=(I=(K=G+IA|0)>>>0>>0?I+1|0:I)+U|0,X=I=v>>>0>(K=v+K|0)>>>0?I+1|0:I,T=pA(K^S,I^M,32),I=k+(L=h)|0,IA=I=c>>>0>(j=c+T|0)>>>0?I+1|0:I,H=pA(j^G,I^w,24),I=X+(t=h)|0,I=K>>>0>(O=K+H|0)>>>0?I+1|0:I,K=(X=i[g+152>>2])+O|0,I=i[g+156>>2]+I|0,I=K>>>0>>0?I+1|0:I,i[g+24>>2]=K,i[g+28>>2]=I,I=pA(K^T,I^L,16),i[g+112>>2]=I,X=h,i[g+116>>2]=X,K=I+j|0,I=X+IA|0,I=K>>>0>>0?I+1|0:I,i[g+72>>2]=K,i[g+76>>2]=I,sA=g,wA=pA(H^K,I^t,63),i[sA+32>>2]=wA,i[g+36>>2]=h,I=i[g+68>>2]^(n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24)^q,K=i[g+64>>2]^(n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24)^o,Q[0|A]=K,Q[A+1|0]=K>>>8,Q[A+2|0]=K>>>16,Q[A+3|0]=K>>>24,Q[A+4|0]=I,Q[A+5|0]=I>>>8,Q[A+6|0]=I>>>16,Q[A+7|0]=I>>>24,X=1;I=(K=X<<3)+A|0,q=i[(K=g+K|0)>>2]^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),IA=i[(j=K- -64|0)>>2],K=i[j+4>>2]^i[K+4>>2]^(n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24),q^=IA,Q[0|I]=q,Q[I+1|0]=q>>>8,Q[I+2|0]=q>>>16,Q[I+3|0]=q>>>24,Q[I+4|0]=K,Q[I+5|0]=K>>>8,Q[I+6|0]=K>>>16,Q[I+7|0]=K>>>24,8!=(0|(X=X+1|0)););s=g+256|0}function u(A,I,g,B,C,E,a){var r,o,t,e,f,c,y,w,D,p,u,F,_,k,H,G,U,S,b,m,v,M,P,Y,N,R,d,J,x,L,K,X,T,V,q,j,W,O,Z,$,AA,IA=0,gA=0,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0,cA=0,yA=0,sA=0,wA=0,DA=0,hA=0,pA=0,uA=0,FA=0,lA=0,_A=0,kA=0,HA=0,GA=0,UA=0,SA=0,bA=0,mA=0,vA=0,PA=0,YA=0,NA=0,RA=0,dA=0,JA=0,xA=0,LA=0,KA=0,XA=0,TA=0,VA=0,zA=0,jA=0,WA=0,OA=0,ZA=0,$A=0,AI=0,gI=0,BI=0;return s=R=s-560|0,WI(rA=R+352|0,a),_I(d=R+288|0,E,32,0),z(rA,R+320|0,32,0),z(rA,g,B,C),MA(rA,r=R+224|0),IA=n[E+32|0]|n[E+33|0]<<8|n[E+34|0]<<16|n[E+35|0]<<24,QA=n[E+36|0]|n[E+37|0]<<8|n[E+38|0]<<16|n[E+39|0]<<24,nA=n[E+40|0]|n[E+41|0]<<8|n[E+42|0]<<16|n[E+43|0]<<24,gA=n[E+44|0]|n[E+45|0]<<8|n[E+46|0]<<16|n[E+47|0]<<24,EA=n[E+48|0]|n[E+49|0]<<8|n[E+50|0]<<16|n[E+51|0]<<24,iA=n[E+52|0]|n[E+53|0]<<8|n[E+54|0]<<16|n[E+55|0]<<24,oA=n[E+60|0]|n[E+61|0]<<8|n[E+62|0]<<16|n[E+63|0]<<24,E=n[E+56|0]|n[E+57|0]<<8|n[E+58|0]<<16|n[E+59|0]<<24,Q[A+56|0]=E,Q[A+57|0]=E>>>8,Q[A+58|0]=E>>>16,Q[A+59|0]=E>>>24,Q[A+60|0]=oA,Q[A+61|0]=oA>>>8,Q[A+62|0]=oA>>>16,Q[A+63|0]=oA>>>24,E=EA,Q[A+48|0]=E,Q[A+49|0]=E>>>8,Q[A+50|0]=E>>>16,Q[A+51|0]=E>>>24,E=iA,Q[A+52|0]=E,Q[A+53|0]=E>>>8,Q[A+54|0]=E>>>16,Q[A+55|0]=E>>>24,E=nA,Q[A+40|0]=E,Q[A+41|0]=E>>>8,Q[A+42|0]=E>>>16,Q[A+43|0]=E>>>24,E=gA,Q[A+44|0]=E,Q[A+45|0]=E>>>8,Q[A+46|0]=E>>>16,Q[A+47|0]=E>>>24,Q[0|(E=A+32|0)]=IA,Q[E+1|0]=IA>>>8,Q[E+2|0]=IA>>>16,Q[E+3|0]=IA>>>24,IA=QA,Q[E+4|0]=IA,Q[E+5|0]=IA>>>8,Q[E+6|0]=IA>>>16,Q[E+7|0]=IA>>>24,l(r),BA(R,r),II(A,R),WI(rA,a),z(rA,A,64,0),z(rA,g,B,C),MA(rA,A=R+160|0),l(A),Q[0|d]=248&n[0|d],Q[d+31|0]=63&n[d+31|0]|64,TA=uI(A),nA=n[A+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,SA=uI(A+5|0),EA=h,gA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,rA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,LA=uI(A+13|0),oA=h,aA=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,bA=uI(A+18|0),cA=h,NA=uI(A+21|0),B=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,iA=uI(A+26|0),g=h,C=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,KA=uI(d),uA=n[(A=d)+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,RA=uI(A+5|0),kA=h,fA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,tA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,jA=uI(A+13|0),FA=h,sA=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,VA=uI(A+18|0),hA=h,dA=uI(A+21|0),a=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,eA=uI(A+26|0),IA=h,QA=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,W=uI(r),O=n[(A=r)+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,Z=uI(A+5|0),$=h,AA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,PA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,$A=uI(A+13|0),HA=h,DA=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,AI=uI(A+18|0),yA=h,JA=uI(A+21|0),A=qA(o=QA>>>7|0,0,t=2097151&((3&(A=g))<<30|(g=iA)>>>2),0),g=h,QA=A,C=qA(e=2097151&((3&(A=IA))<<30|(IA=eA)>>>2),0,f=C>>>7|0,0),g=h+g|0,QA=A=QA+C|0,IA=A>>>0>>0?g+1|0:g,A=qA(t,CA,e,CA),C=h,g=(a=qA(c=a>>>5&2097151,0,f,0))+A|0,A=h+C|0,A=g>>>0>>0?A+1|0:A,C=qA(o,0,y=B>>>5&2097151,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,C=g,mA=B,wA=A=B-((g>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(iA=g- -1048576|0)>>>21,A=(A>>21)+IA|0,A=(B=a+QA|0)>>>0>>0?A+1|0:A,a=B,GA=A,vA=IA=A-((B>>>0<4293918720)-1|0)|0,g=IA>>21,UA=(A=qA(o,0,f,0))-(lA=-2097152&(pA=A- -1048576|0))|0,A=((eA=h)-((A>>>0>>0)+(B=eA-((A>>>0<4293918720)-1|0)|0)|0)|0)+g|0,T=IA=UA+((2097151&IA)<<11|(QA=a- -1048576|0)>>>21)|0,eA=A=IA>>>0>>0?A+1|0:A,g=qA(IA,A,-683901,-1),IA=h,J=(2097151&B)<<11|pA>>>21,pA=A=B>>21,A=(B=qA(J,A,136657,0))+g|0,g=h+IA|0,UA=A,lA=A>>>0>>0?g+1|0:g,A=qA(w=2097151&((1&(A=FA))<<31|jA>>>1),0,t,CA),g=h,IA=qA(D=tA>>>4&2097151,0,f,0),B=h+g|0,B=(A=IA+A|0)>>>0>>0?B+1|0:B,IA=qA(p=sA>>>6&2097151,0,y,0),g=h+B|0,g=(A=IA+A|0)>>>0>>0?g+1|0:g,FA=A,IA=qA(u=2097151&dA,B=0,F=2097151&((7&(A=cA))<<29|bA>>>3),0),A=h+g|0,g=A=(B=FA+IA|0)>>>0>>0?A+1|0:A,A=(IA=qA(_=2097151&((7&(A=hA))<<29|VA>>>3),0,k=2097151&NA,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,IA=qA(c,0,H=aA>>>6&2097151,0),g=h+B|0,g=(A=IA+A|0)>>>0>>0?g+1|0:g,B=A,IA=qA(e,CA,G=2097151&((1&(A=oA))<<31|LA>>>1),0),A=h+g|0,A=(B=B+IA|0)>>>0>>0?A+1|0:A,g=(IA=qA(o,0,U=rA>>>4&2097151,0))+B|0,B=h+A|0,cA=g,rA=g>>>0>>0?B+1|0:B,A=qA(t,CA,D,0),g=h,B=qA(S=fA>>>7&2097151,0,f,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(IA=qA(y,0,w,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=(IA=qA(p,0,k,CA))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(IA=qA(u,CA,H,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(IA=qA(F,CA,_,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,IA=qA(c,0,G,CA),g=h+A|0,g=(B=IA+B|0)>>>0>>0?g+1|0:g,IA=qA(e,CA,U,0),A=h+g|0,A=(B=IA+B|0)>>>0>>0?A+1|0:A,g=(IA=qA(o,0,b=gA>>>7&2097151,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,IA=g,oA=B,A=B-((g>>>0<4293918720)-1|0)|0,B=g- -1048576|0,aA=A,g=cA,cA=(2097151&A)<<11|B>>>21,A=(A>>21)+rA|0,A=(gA=(g=gA=g+cA|0)>>>0>>0?A+1|0:A)+lA|0,A=g>>>0>(rA=g+UA|0)>>>0?A+1|0:A,gA=gA-((g>>>0<4293918720)-1|0)|0,tA=rA-(g=-2097152&(fA=g- -1048576|0))|0,rA=A-((g>>>0>rA>>>0)+gA|0)|0,cA=GA-(((A=-2097152&QA)>>>0>a>>>0)+vA|0)|0,x=a-A|0,a=qA(J,pA,-997805,-1),g=h+oA|0,g=(A=a+IA|0)>>>0>>0?g+1|0:g,a=(IA=qA(T,eA,136657,0))+A|0,A=h+g|0,A=a>>>0>>0?A+1|0:A,g=a,a=qA(x,cA,-683901,-1),A=h+A|0,QA=(g=g+a|0)-(B&=-2097152)|0,oA=(A=g>>>0>>0?A+1|0:A)-((g>>>0>>0)+aA|0)|0,A=qA(t,CA,S,0),B=h,g=A,a=qA(m=2097151&((3&(A=kA))<<30|RA>>>2),0,f,0),A=h+B|0,A=(g=g+a|0)>>>0>>0?A+1|0:A,a=qA(y,0,D,0),B=h+A|0,B=(g=a+g|0)>>>0>>0?B+1|0:B,A=(a=qA(w,CA,k,CA))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(a=qA(p,0,F,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,a=qA(u,CA,G,CA),g=h+A|0,g=(B=a+B|0)>>>0>>0?g+1|0:g,a=qA(_,CA,H,0),A=h+g|0,A=(B=a+B|0)>>>0>>0?A+1|0:A,g=(a=qA(c,0,U,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(a=qA(e,CA,b,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=A,a=qA(o,0,v=2097151&((3&(A=EA))<<30|SA>>>2),0),A=h+g|0,EA=B=B+a|0,IA=B>>>0>>0?A+1|0:A,A=qA(t,CA,m,0),g=h,B=qA(M=uA>>>5&2097151,0,f,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=qA(y,0,S,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(a=qA(D,0,k,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(w,CA,F,CA),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,a=qA(p,0,H,0),B=h+A|0,B=(g=a+g|0)>>>0>>0?B+1|0:B,A=(a=qA(u,CA,U,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=qA(_,CA,G,CA),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(a=qA(c,0,b,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(e,CA,v,0),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,a=qA(o,0,P=nA>>>5&2097151,0),B=h+A|0,B=(g=a+g|0)>>>0>>0?B+1|0:B,a=g,SA=B,LA=g=B-((g>>>0<4293918720)-1|0)|0,A=(A=g>>21)+IA|0,IA=g=(B=(2097151&g)<<11|(hA=a- -1048576|0)>>>21)+EA|0,bA=A=g>>>0>>0?A+1|0:A,NA=g=A-((g>>>0<4293918720)-1|0)|0,A=g>>21,g=(B=QA)+(QA=(2097151&g)<<11|(GA=IA- -1048576|0)>>>21)|0,B=A+oA|0,B=g>>>0>>0?B+1|0:B,QA=g,RA=B,jA=g=B-((g>>>0<4293918720)-1|0)|0,A=(A=g>>21)+rA|0,nA=g=(B=(2097151&g)<<11|(vA=QA- -1048576|0)>>>21)+tA|0,lA=A=g>>>0>>0?A+1|0:A,VA=g=A-((g>>>0<4293918720)-1|0)|0,uA=(2097151&g)<<11|(aA=nA- -1048576|0)>>>21,rA=g>>21,A=qA(t,CA,p,0),g=h,EA=qA(f,0,w,CA),B=h+g|0,B=(A=EA+A|0)>>>0>>0?B+1|0:B,EA=qA(u,CA,k,CA),g=h+B|0,g=(A=EA+A|0)>>>0>>0?g+1|0:g,B=(EA=qA(y,0,_,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,EA=qA(c,0,F,CA),g=h+A|0,g=(B=EA+B|0)>>>0>>0?g+1|0:g,EA=qA(e,CA,H,0),A=h+g|0,A=(B=EA+B|0)>>>0>>0?A+1|0:A,g=(EA=qA(o,0,G,CA))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=g,oA=qA(J,pA,-683901,-1),g=h+B|0,g=(EA=A+oA|0)>>>0>>0?g+1|0:g,oA=EA,EA=B-((A>>>0<4293918720)-1|0)|0,B=oA-(A=-2097152&(kA=A- -1048576|0))|0,oA=g-((A>>>0>oA>>>0)+EA|0)|0,g=(A=B)+(B=(2097151&gA)<<11|fA>>>21)|0,A=(gA>>21)+oA|0,A=g>>>0>>0?A+1|0:A,B=uA,fA=g-(uA=-2097152&(oA=g- -1048576|0))|0,g=(A-((gA=A-((g>>>0<4293918720)-1|0)|0)+(g>>>0>>0)|0)|0)+rA|0,V=B=B+fA|0,uA=g=B>>>0>>0?g+1|0:g,rA=qA(B,g,-683901,-1),fA=h,A=qA(y,0,u,CA),B=h,g=(tA=qA(f,0,p,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(tA=qA(t,CA,_,CA))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,tA=qA(c,0,k,CA),A=h+g|0,A=(B=tA+B|0)>>>0>>0?A+1|0:A,g=(tA=qA(e,CA,F,CA))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(tA=qA(o,0,H,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=A,A=(A=EA>>21)+g|0,FA=B=(A=(g=B=B+(EA=(2097151&EA)<<11|kA>>>21)|0)>>>0>>0?A+1|0:A)-((g>>>0<4293918720)-1|0)|0,kA=g-(EA=-2097152&(UA=g- -1048576|0))|0,B=A-((g>>>0>>0)+B|0)|0,g=(g=(A=gA)>>21)+B|0,q=A=(gA=(2097151&A)<<11|(gA=oA)>>>21)+kA|0,kA=g=A>>>0>>0?g+1|0:g,B=qA(A,g,136657,0),A=h+fA|0,gI=g=B+rA|0,dA=g>>>0>>0?A+1|0:A,A=qA(k,CA,M,0),B=h,g=(gA=qA(Y=2097151&KA,0,y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,gA=qA(F,CA,m,0),B=h+A|0,B=(g=gA+g|0)>>>0>>0?B+1|0:B,A=(gA=qA(H,0,S,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(gA=qA(D,0,G,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,gA=qA(w,CA,U,0),g=h+A|0,g=(B=gA+B|0)>>>0>>0?g+1|0:g,gA=qA(p,0,b,0),A=h+g|0,A=(B=gA+B|0)>>>0>>0?A+1|0:A,g=(gA=qA(u,CA,P,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(gA=qA(_,CA,v,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(gA=qA(c,0,N=2097151&TA,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,rA=B=(gA=(n[r+23|0]|n[r+24|0]<<8|n[r+25|0]<<16|n[r+26|0]<<24)>>>5&2097151)+B|0,EA=B>>>0>>0?A+1|0:A,A=qA(F,CA,M,0),g=h,gA=qA(k,CA,Y,0),B=h+g|0,B=(A=gA+A|0)>>>0>>0?B+1|0:B,gA=qA(H,0,m,0),g=h+B|0,g=(A=gA+A|0)>>>0>>0?g+1|0:g,B=(gA=qA(G,CA,S,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(D,0,U,0),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,B=(gA=qA(w,CA,b,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(gA=qA(p,0,v,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,gA=qA(N,0,u,CA),g=h+B|0,g=(A=gA+A|0)>>>0>>0?g+1|0:g,B=(gA=qA(_,CA,P,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,gA=g=(g=B)+(B=2097151&JA)|0,sA=A=g>>>0>>0?A+1|0:A,TA=A=A-((g>>>0<4293918720)-1|0)|0,oA=g- -1048576|0,g=(B=A>>>21|0)+EA|0,EA=A=(tA=rA)+(rA=(2097151&A)<<11|oA>>>21)|0,KA=A>>>0>>0?g+1|0:g,fA=C-(A=-2097152&iA)|0,WA=mA-((A>>>0>C>>>0)+wA|0)|0,A=qA(t,CA,c,0),B=h,g=(C=qA(f,0,u,CA))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,C=qA(e,CA,y,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,A=(C=qA(o,0,k,CA))+g|0,g=h+B|0,tA=A,iA=A>>>0>>0?g+1|0:g,A=qA(f,0,_,CA),g=h,B=qA(t,CA,u,CA),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(C=qA(c,0,y,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(e,CA,k,CA),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,C=qA(o,0,F,CA),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,C=g,mA=B,wA=g=B-((g>>>0<4293918720)-1|0)|0,A=tA,tA=(2097151&g)<<11|(rA=C- -1048576|0)>>>21,g=(g>>21)+iA|0,iA=B=A+tA|0,JA=g=B>>>0>>0?g+1|0:g,tA=B- -1048576|0,B=(A=(g=g-((B>>>0<4293918720)-1|0)|0)>>21)+WA|0,L=fA=(ZA=(2097151&g)<<11|tA>>>21)+fA|0,fA=B=fA>>>0>>0?B+1|0:B,A=qA(L,B,470296,0),B=h,tA=JA-((YA=g)+((g=-2097152&tA)>>>0>iA>>>0)|0)|0,K=iA-g|0,iA=qA(x,cA,666643,0),g=h+B|0,g=(A=iA+A|0)>>>0>>0?g+1|0:g,B=(iA=qA(K,tA,654183,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,iA=B,B=A,rA=mA-(((A=-2097152&rA)>>>0>C>>>0)+wA|0)|0,C=g=C-A|0,FA=(2097151&(g=FA))<<11|UA>>>21,g=(A=g>>21)+rA|0,j=C=C+FA|0,FA=g=C>>>0>>0?g+1|0:g,rA=KA-(((A=EA)>>>0<4293918720)-1|0)|0,XA=A- -1048576|0,C=qA(C,g,-997805,-1),g=h+B|0,g=(A=C+iA|0)>>>0>>0?g+1|0:g,C=A,B=EA+A|0,A=g+KA|0,A=B>>>0>>0?A+1|0:A,UA=(g=B)-(B=-2097152&XA)|0,WA=A-((g>>>0>>0)+rA|0)|0,A=qA(K,tA,470296,0),g=h,B=qA(L,fA,666643,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(C=qA(j,FA,654183,0))+A|0,A=h+g|0,g=B+gA|0,B=sA+(B>>>0>>0?A+1|0:A)|0,B=g>>>0>>0?B+1|0:B,oA=(A=g)-(g=-2097152&oA)|0,sA=B-((A>>>0>>0)+TA|0)|0,A=qA(H,0,M,0),B=h,g=(C=qA(F,CA,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=qA(G,CA,m,0),A=h+A|0,A=(g=B+g|0)>>>0>>0?A+1|0:A,C=qA(U,0,S,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,A=(C=qA(D,0,b,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=qA(w,CA,v,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(C=qA(p,0,P,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(N,0,_,CA),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,B=g,g=A,iA=A=(C=2097151&((7&(A=yA))<<29|AI>>>3))+B|0,C=A>>>0>>0?g+1|0:g,A=qA(G,CA,M,0),g=h,B=qA(H,0,Y,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(gA=qA(U,0,m,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,gA=qA(S,0,b,0),g=h+A|0,g=(B=gA+B|0)>>>0>>0?g+1|0:g,gA=qA(D,0,v,0),A=h+g|0,A=(B=gA+B|0)>>>0>>0?A+1|0:A,g=(gA=qA(w,CA,P,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(gA=qA(N,0,p,0))+g|0,g=h+B|0,B=A,A=A>>>0>>0?g+1|0:g,gA=g=(g=B)+(B=DA>>>6&2097151)|0,yA=A=g>>>0>>0?A+1|0:A,mA=A=A-((g>>>0<4293918720)-1|0)|0,EA=g- -1048576|0,g=(B=A>>>21|0)+C|0,C=A=(wA=iA)+(iA=(2097151&A)<<11|EA>>>21)|0,wA=g=A>>>0>>0?g+1|0:g,TA=A=g-((A>>>0<4293918720)-1|0)|0,g=oA,oA=(2097151&A)<<11|(iA=C- -1048576|0)>>>21,A=(A>>>21|0)+sA|0,sA=g=g+oA|0,KA=A=g>>>0>>0?A+1|0:A,JA=A=A-((g>>>0<4293918720)-1|0)|0,DA=g- -1048576|0,g=(B=A>>21)+WA|0,g=(A=(oA=(2097151&A)<<11|DA>>>21)+UA|0)>>>0>>0?g+1|0:g,B=A,oA=A+gI|0,A=g+dA|0,A=B>>>0>oA>>>0?A+1|0:A,dA=oA,oA=g-((B>>>0<4293918720)-1|0)|0,OA=dA-(g=-2097152&(zA=B- -1048576|0))|0,xA=A-((g>>>0>dA>>>0)+oA|0)|0,g=qA(q,kA,-997805,-1),B=h+KA|0,YA=A=g+sA|0,dA=A>>>0>>0?B+1|0:B,A=qA(j,FA,470296,0),B=h,g=(sA=qA(K,tA,666643,0))+A|0,A=h+B|0,A=(A=g>>>0>>0?A+1|0:A)+wA|0,sA=(g=g+C|0)-(B=-2097152&iA)|0,wA=(A=g>>>0>>0?A+1|0:A)-((g>>>0>>0)+TA|0)|0,B=qA(j,FA,666643,0),g=h+yA|0,yA=A=B+gA|0,iA=A>>>0>>0?g+1|0:g,A=qA(U,0,M,0),B=h,g=(C=qA(G,CA,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=qA(b,0,m,0),A=h+A|0,A=(g=B+g|0)>>>0>>0?A+1|0:A,C=qA(S,0,v,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,A=(C=qA(D,0,P,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=qA(N,0,w,CA),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=A,C=2097151&((1&(A=HA))<<31|$A>>>1),A=g,HA=B=B+C|0,gA=B>>>0>>0?A+1|0:A,A=qA(b,0,M,0),B=h,g=(C=qA(U,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(C=qA(m,0,v,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(C=qA(S,0,P,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,C=qA(N,0,D,0),g=h+B|0,B=A=C+A|0,A=A>>>0>>0?g+1|0:g,C=g=(g=B)+(B=PA>>>4&2097151)|0,TA=A=g>>>0>>0?A+1|0:A,KA=A=A-((g>>>0<4293918720)-1|0)|0,PA=g- -1048576|0,g=(B=A>>>21|0)+gA|0,gA=A=(UA=HA)+(HA=(2097151&A)<<11|PA>>>21)|0,UA=g=A>>>0>>0?g+1|0:g,$A=A=g-((A>>>0<4293918720)-1|0)|0,g=yA,yA=(2097151&A)<<11|(HA=gA- -1048576|0)>>>21,A=(A>>>21|0)+iA|0,AI=A=(A=(g=g+yA|0)>>>0>>0?A+1|0:A)-(((B=-2097152&EA)>>>0>g>>>0)+mA|0)|0,gI=A=A-(((EA=g-B|0)>>>0<4293918720)-1|0)|0,B=(g=A>>21)+wA|0,mA=A=(iA=(2097151&A)<<11|(yA=EA- -1048576|0)>>>21)+sA|0,WA=B=A>>>0>>0?B+1|0:B,ZA=A=B-((A>>>0<4293918720)-1|0)|0,sA=lA-(((g=-2097152&aA)>>>0>nA>>>0)+VA|0)|0,X=nA-g|0,nA=(2097151&A)<<11|(wA=mA- -1048576|0)>>>21,A=(A>>21)+dA|0,A=(B=nA+YA|0)>>>0>>0?A+1|0:A,g=(iA=qA(V,uA,136657,0))+(B-(nA=-2097152&DA)|0)|0,B=h+(A-((B>>>0>>0)+JA|0)|0)|0,B=g>>>0>>0?B+1|0:B,nA=qA(X,sA,-683901,-1),A=h+B|0,A=(g=nA+g|0)>>>0>>0?A+1|0:A,nA=g,VA=A,dA=A=A-((g>>>0<4293918720)-1|0)|0,B=(g=A>>21)+xA|0,B=(A=(iA=(2097151&A)<<11|(DA=nA- -1048576|0)>>>21)+OA|0)>>>0>>0?B+1|0:B,iA=A,JA=B,OA=A=B-((A>>>0<4293918720)-1|0)|0,BI=(2097151&A)<<11|(lA=iA- -1048576|0)>>>21,xA=A>>21,A=qA(y,0,M,0),B=h,g=(aA=qA(t,CA,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(aA=qA(k,CA,m,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(aA=qA(F,CA,S,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(aA=qA(D,0,H,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(aA=qA(w,CA,G,CA))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,aA=qA(p,0,U,0),A=h+g|0,A=(B=aA+B|0)>>>0>>0?A+1|0:A,aA=qA(u,CA,v,0),g=h+A|0,g=(B=aA+B|0)>>>0>>0?g+1|0:g,A=(aA=qA(_,CA,b,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(aA=qA(c,0,P,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(aA=qA(N,0,e,CA))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,YA=B,B=uI(r+26|0),aA=2097151&((3&(A=h))<<30|B>>>2),A=g,A=(B=YA+aA|0)>>>0>>0?A+1|0:A,aA=B,YA=A,A=qA(x,cA,470296,0),g=h,B=qA(T,eA,666643,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,_A=qA(L,fA,654183,0),B=h+g|0,B=(A=_A+A|0)>>>0<_A>>>0?B+1|0:B,_A=qA(K,tA,-997805,-1),g=h+B|0,g=(A=_A+A|0)>>>0<_A>>>0?g+1|0:g,B=(_A=qA(j,FA,136657,0))+A|0,A=h+g|0,A=(A=B>>>0<_A>>>0?A+1|0:A)+YA|0,A=(g=B+aA|0)>>>0>>0?A+1|0:A,B=g,aA=YA-(((g=aA)>>>0<4293918720)-1|0)|0,YA=g- -1048576|0,g=A+(g=rA>>>21|0)|0,g=(B=(rA=(2097151&rA)<<11|XA>>>21)+B|0)>>>0>>0?g+1|0:g,B=(A=B)-(XA=-2097152&YA)|0,_A=qA(q,kA,-683901,-1),A=(g=g-((A>>>0>>0)+aA|0)|0)+h|0,A=(rA=B+_A|0)>>>0<_A>>>0?A+1|0:A,_A=rA,rA=g-((B>>>0<4293918720)-1|0)|0,XA=B- -1048576|0,g=A+(g=oA>>21)|0,g=(B=(oA=(2097151&oA)<<11|zA>>>21)+_A|0)>>>0>>0?g+1|0:g,B=(A=B)-(zA=-2097152&XA)|0,A=(_A=xA)+(xA=g-((A>>>0>>0)+rA|0)|0)|0,A=B>>>0>(oA=B+BI|0)>>>0?A+1|0:A,g=oA,oA=xA-((B>>>0<4293918720)-1|0)|0,zA=g-(B=-2097152&(xA=B- -1048576|0))|0,BI=A-((g>>>0>>0)+oA|0)|0,_A=iA-(A=-2097152&lA)|0,JA=JA-((A>>>0>iA>>>0)+OA|0)|0,OA=nA-(A=-2097152&DA)|0,VA=VA-((A>>>0>nA>>>0)+dA|0)|0,B=qA(q,kA,654183,0),A=h+WA|0,A=(g=B+mA|0)>>>0>>0?A+1|0:A,B=(iA=qA(V,uA,-997805,-1))+(g-(nA=-2097152&wA)|0)|0,g=h+(A-((g>>>0>>0)+ZA|0)|0)|0,g=B>>>0>>0?g+1|0:g,nA=qA(X,sA,136657,0),A=h+g|0,lA=B=nA+B|0,DA=B>>>0>>0?A+1|0:A,iA=QA-(A=-2097152&vA)|0,RA=RA-((A>>>0>QA>>>0)+jA|0)|0,A=qA(T,eA,-997805,-1),g=h,QA=qA(J,pA,654183,0),B=h+g|0,B=(A=QA+A|0)>>>0>>0?B+1|0:B,QA=qA(x,cA,136657,0),g=h+B|0,g=(A=QA+A|0)>>>0>>0?g+1|0:g,B=(QA=qA(L,fA,-683901,-1))+A|0,A=h+g|0,g=(A=B>>>0>>0?A+1|0:A)+bA|0,g=(B=B+IA|0)>>>0>>0?g+1|0:g,QA=(A=B)-(B=-2097152&GA)|0,bA=g-((A>>>0>>0)+NA|0)|0,A=qA(T,eA,654183,0),g=h,IA=qA(J,pA,470296,0),B=h+g|0,B=(A=IA+A|0)>>>0>>0?B+1|0:B,g=(IA=qA(x,cA,-997805,-1))+A|0,A=h+B|0,B=g+a|0,g=SA+(g>>>0>>0?A+1|0:A)|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(L,fA,136657,0),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=(a=qA(K,tA,-683901,-1))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,IA=(g=B)-(B=-2097152&hA)|0,hA=A-((g>>>0>>0)+LA|0)|0,A=qA(t,CA,M,0),B=h,g=(a=qA(f,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(a=qA(y,0,m,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,a=qA(k,CA,S,0),A=h+g|0,A=(B=a+B|0)>>>0>>0?A+1|0:A,a=qA(D,0,F,CA),g=h+A|0,g=(B=a+B|0)>>>0>>0?g+1|0:g,A=(a=qA(w,CA,H,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(a=qA(p,0,G,CA))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(a=qA(u,CA,b,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,a=qA(_,CA,U,0),A=h+g|0,A=(B=a+B|0)>>>0>>0?A+1|0:A,a=qA(c,0,v,0),g=h+A|0,g=(B=a+B|0)>>>0>>0?g+1|0:g,A=(a=qA(N,0,o,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(a=qA(e,CA,P,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,A=(aA>>>21|0)+(g=(B=(a=(n[r+28|0]|n[r+29|0]<<8|n[r+30|0]<<16|n[r+31|0]<<24)>>>7|0)+g|0)>>>0>>0?A+1|0:A)|0,A=(B=(a=(2097151&aA)<<11|YA>>>21)+B|0)>>>0>>0?A+1|0:A,a=B,GA=A,vA=A=A-((B>>>0<4293918720)-1|0)|0,g=IA,IA=(2097151&A)<<11|(nA=B- -1048576|0)>>>21,A=(A>>21)+hA|0,A=(B=g+IA|0)>>>0>>0?A+1|0:A,IA=B,mA=A,wA=A=A-((B>>>0<4293918720)-1|0)|0,g=QA,QA=(2097151&A)<<11|(CA=B- -1048576|0)>>>21,A=(A>>21)+bA|0,aA=A=(B=g+QA|0)>>>0>>0?A+1|0:A,hA=A=A-((B>>>0<4293918720)-1|0)|0,SA=(2097151&A)<<11|(QA=B- -1048576|0)>>>21,A=(A>>21)+RA|0,bA=iA=SA+iA|0,iA=A=iA>>>0>>0?A+1|0:A,A=(g=lA)+(lA=qA(bA,A,-683901,-1))|0,g=h+DA|0,SA=A,DA=A>>>0>>0?g+1|0:g,aA=aA-(((A=-2097152&QA)>>>0>B>>>0)+hA|0)|0,NA=B-A|0,g=qA(q,kA,470296,0)+EA|0,A=AI+h|0,A=g>>>0>>0?A+1|0:A,B=(EA=qA(V,uA,654183,0))+(g-(QA=-2097152&yA)|0)|0,g=h+(A-((g>>>0>>0)+gI|0)|0)|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(X,sA,-997805,-1),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=(QA=qA(bA,iA,136657,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=(QA=qA(NA,aA,-683901,-1))+B|0,B=h+A|0,yA=B=g>>>0>>0?B+1|0:B,lA=B=B-((g>>>0<4293918720)-1|0)|0,A=(A=B>>21)+DA|0,A=(B=(QA=(2097151&B)<<11|(EA=g- -1048576|0)>>>21)+SA|0)>>>0>>0?A+1|0:A,QA=B,DA=A,SA=B=A-((B>>>0<4293918720)-1|0)|0,RA=(2097151&B)<<11|(hA=QA- -1048576|0)>>>21,B=(B>>21)+VA|0,B=RA>>>0>(LA=RA+OA|0)>>>0?B+1|0:B,RA=LA,LA=B,jA=QA-(A=-2097152&hA)|0,SA=DA-((A>>>0>QA>>>0)+SA|0)|0,DA=g-(A=-2097152&EA)|0,yA=yA-((A>>>0>g>>>0)+lA|0)|0,A=(B=qA(q,kA,666643,0))+(gA-(g=-2097152&HA)|0)|0,g=h+(UA-((g>>>0>gA>>>0)+$A|0)|0)|0,g=A>>>0>>0?g+1|0:g,QA=qA(V,uA,470296,0),B=h+g|0,B=(A=QA+A|0)>>>0>>0?B+1|0:B,g=(QA=qA(X,sA,654183,0))+A|0,A=h+B|0,hA=g,QA=g>>>0>>0?A+1|0:A,gA=IA-(A=-2097152&CA)|0,IA=mA-((A>>>0>IA>>>0)+wA|0)|0,A=qA(T,eA,470296,0),B=h,g=(EA=qA(J,pA,666643,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,EA=qA(x,cA,654183,0),B=h+A|0,B=(g=EA+g|0)>>>0>>0?B+1|0:B,EA=qA(L,fA,-997805,-1),A=h+B|0,A=(g=EA+g|0)>>>0>>0?A+1|0:A,B=(EA=qA(K,tA,136657,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(j,FA,-683901,-1),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=A+a|0,A=g+GA|0,A=B>>>0>>0?A+1|0:A,a=(g=B)-(B=-2097152&nA)|0,B=A-((g>>>0>>0)+vA|0)|0,g=(A=a)+(a=(2097151&rA)<<11|XA>>>21)|0,A=(rA>>21)+B|0,A=g>>>0>>0?A+1|0:A,a=g,kA=A,fA=g=A-((g>>>0<4293918720)-1|0)|0,nA=(2097151&g)<<11|(EA=a- -1048576|0)>>>21,g=(g>>21)+IA|0,HA=B=nA+gA|0,gA=g=B>>>0>>0?g+1|0:g,g=qA(B,g,-683901,-1),B=h+QA|0,B=(A=g+hA|0)>>>0>>0?B+1|0:B,g=(IA=qA(bA,iA,-997805,-1))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(IA=qA(NA,aA,136657,0))+g|0,g=h+A|0,vA=B,cA=B>>>0>>0?g+1|0:g,A=qA(v,0,M,0),B=h,g=(IA=qA(b,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(IA=qA(m,0,P,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(IA=qA(N,0,S,0))+B|0,B=h+g|0,g=A,A=A>>>0>>0?B+1|0:B,CA=g=(B=AA>>>7&2097151)+g|0,QA=g>>>0>>0?A+1|0:A,A=qA(M,0,P,0),g=h,B=qA(v,0,Y,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,IA=qA(N,0,m,0),B=h+g|0,B=(A=IA+A|0)>>>0>>0?B+1|0:B,g=A,IA=2097151&((3&(A=$))<<30|Z>>>2),A=B,A=(g=g+IA|0)>>>0>>0?A+1|0:A,IA=g,nA=A,tA=A=A-((g>>>0<4293918720)-1|0)|0,g=A>>>21|0,A=(B=CA)+(CA=(2097151&A)<<11|(rA=IA- -1048576|0)>>>21)|0,B=g+QA|0,QA=A,FA=B=A>>>0>>0?B+1|0:B,hA=A=B-((A>>>0<4293918720)-1|0)|0,B=C+((2097151&A)<<11|(CA=QA- -1048576|0)>>>21)|0,A=TA+(A>>>21|0)|0,A=B>>>0>>0?A+1|0:A,g=(eA=qA(V,uA,666643,0))+(B-(C=-2097152&PA)|0)|0,B=h+(A-((B>>>0>>0)+KA|0)|0)|0,A=(C=qA(X,sA,470296,0))+g|0,g=h+(g>>>0>>0?B+1|0:B)|0,g=A>>>0>>0?g+1|0:g,B=(C=qA(HA,gA,136657,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(bA,iA,654183,0),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,B=(C=qA(NA,aA,-997805,-1))+g|0,g=h+A|0,eA=B,uA=g=B>>>0>>0?g+1|0:g,GA=g=g-((B>>>0<4293918720)-1|0)|0,C=(2097151&g)<<11|(pA=B- -1048576|0)>>>21,g=(g>>21)+cA|0,C=g=(B=C+vA|0)>>>0>>0?g+1|0:g,vA=g=g-((B>>>0<4293918720)-1|0)|0,PA=(2097151&g)<<11|(cA=B- -1048576|0)>>>21,g=(g>>21)+yA|0,mA=DA=PA+DA|0,DA=DA>>>0>>0?g+1|0:g,PA=C,g=a-(A=-2097152&EA)|0,C=kA-((A>>>0>a>>>0)+fA|0)|0,A=(a=(2097151&oA)<<11|xA>>>21)+g|0,g=(oA>>21)+C|0,C=A,kA=g=A>>>0>>0?g+1|0:g,fA=A=g-((A>>>0<4293918720)-1|0)|0,EA=g=A>>21,a=B,B=qA(yA=(2097151&A)<<11|(oA=C- -1048576|0)>>>21,g,-683901,-1),A=h+PA|0,A=(g=a+B|0)>>>0>>0?A+1|0:A,PA=g-(B=-2097152&cA)|0,vA=A-((g>>>0>>0)+vA|0)|0,B=qA(yA,EA,136657,0),g=h+uA|0,g=(A=B+eA|0)>>>0>>0?g+1|0:g,wA=A-(B=-2097152&pA)|0,lA=g-((A>>>0>>0)+GA|0)|0,a=qA(X,sA,666643,0),B=h+(FA-(((g=-2097152&CA)>>>0>QA>>>0)+hA|0)|0)|0,B=(A=a+(QA-g|0)|0)>>>0>>0?B+1|0:B,g=(a=qA(HA,gA,-997805,-1))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(a=qA(bA,iA,470296,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(NA,aA,654183,0),g=h+g|0,hA=A=A+B|0,CA=A>>>0>>0?g+1|0:g,eA=IA,pA=nA,A=qA(N,0,M,0),B=h,g=(a=qA(P,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(g=(a=O>>>5&2097151)+g|0)>>>0>>0?A+1|0:A,IA=g,a=2097151&W,g=qA(N,0,Y,0)+a|0,A=h,A=g>>>0>>0?A+1|0:A,a=g,cA=A,uA=A=A-((g>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+B|0,g=(A=(nA=IA)+(IA=(2097151&A)<<11|(QA=a- -1048576|0)>>>21)|0)>>>0>>0?g+1|0:g,IA=A,FA=g,sA=A=g-((A>>>0<4293918720)-1|0)|0,g=eA,eA=(2097151&A)<<11|(nA=IA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,A=(B=g+eA|0)>>>0>>0?A+1|0:A,B=(eA=qA(HA,gA,654183,0))+((g=B)-(rA&=-2097152)|0)|0,g=h+(A-((16383&tA)+(g>>>0>>0)|0)|0)|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(bA,iA,666643,0),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=(iA=qA(NA,aA,470296,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,iA=B,eA=A,pA=A=A-((B>>>0<4293918720)-1|0)|0,tA=(2097151&A)<<11|(rA=B- -1048576|0)>>>21,A=(A>>21)+CA|0,tA=A=(B=tA+hA|0)>>>0>>0?A+1|0:A,hA=A=A-((B>>>0<4293918720)-1|0)|0,g=wA,wA=(2097151&A)<<11|(CA=B- -1048576|0)>>>21,A=(A>>21)+lA|0,A=wA>>>0>(GA=g+wA|0)>>>0?A+1|0:A,wA=GA,GA=A,A=(g=qA(yA,EA,-997805,-1))+B|0,B=h+tA|0,B=A>>>0>>0?B+1|0:B,CA=A-(g=-2097152&CA)|0,tA=B-((A>>>0>>0)+hA|0)|0,B=qA(yA,EA,654183,0),g=h+eA|0,g=(A=B+iA|0)>>>0>>0?g+1|0:g,eA=A-(B=-2097152&rA)|0,pA=g-((A>>>0>>0)+pA|0)|0,g=(B=qA(HA,gA,470296,0))+(IA-(A=-2097152&nA)|0)|0,A=h+(FA-((16383&sA)+(A>>>0>IA>>>0)|0)|0)|0,A=g>>>0>>0?A+1|0:A,B=(IA=qA(NA,aA,666643,0))+g|0,g=h+A|0,iA=B,IA=B>>>0>>0?g+1|0:g,A=(B=qA(HA,gA,666643,0))+(a-(g=-2097152&QA)|0)|0,g=h+(cA-((4095&uA)+(g>>>0>a>>>0)|0)|0)|0,g=A>>>0>>0?g+1|0:g,B=A,nA=g,gA=g=g-((A>>>0<4293918720)-1|0)|0,QA=iA,iA=(2097151&g)<<11|(a=A- -1048576|0)>>>21,g=(g>>21)+IA|0,iA=g=(IA=QA=QA+iA|0)>>>0>>0?g+1|0:g,rA=g=g-((IA>>>0<4293918720)-1|0)|0,A=eA,eA=(2097151&g)<<11|(QA=IA- -1048576|0)>>>21,g=(g>>21)+pA|0,g=(aA=A+eA|0)>>>0>>0?g+1|0:g,eA=aA,aA=g,g=(A=IA)+(IA=qA(yA,EA,470296,0))|0,A=h+iA|0,A=g>>>0>>0?A+1|0:A,QA=g-(IA=-2097152&QA)|0,IA=A-((g>>>0>>0)+rA|0)|0,iA=QA,A=(B-(g=-2097152&a)|0)+(a=qA(yA,EA,666643,0))|0,g=h+(nA-((g>>>0>B>>>0)+gA|0)|0)|0,QA=A,B=A,A=(A=(g=A>>>0>>0?g+1|0:g)>>21)+IA|0,A=(g=iA+(B=(2097151&g)<<11|B>>>21)|0)>>>0>>0?A+1|0:A,nA=g,B=g,g=(g=A>>21)+aA|0,EA=A=(B=(2097151&A)<<11|B>>>21)+eA|0,a=(2097151&(g=A>>>0>>0?g+1|0:g))<<11|(B=A)>>>21,B=(A=g>>21)+tA|0,iA=g=a+CA|0,a=(2097151&(B=(A=g)>>>0>>0?B+1|0:B))<<11|A>>>21,A=(g=B>>21)+GA|0,rA=B=a+wA|0,a=(2097151&(A=(g=B)>>>0>>0?A+1|0:A))<<11|g>>>21,g=(B=A>>21)+vA|0,aA=A=a+PA|0,B=A,A=(A=(g=A>>>0>>0?g+1|0:g)>>21)+DA|0,A=(g=(B=(2097151&g)<<11|B>>>21)+mA|0)>>>0>>0?A+1|0:A,CA=g,B=g,g=(g=A>>21)+SA|0,eA=A=(B=(2097151&A)<<11|B>>>21)+jA|0,a=(2097151&(g=A>>>0>>0?g+1|0:g))<<11|(B=A)>>>21,B=(A=g>>21)+LA|0,pA=g=a+RA|0,a=(2097151&(B=(A=g)>>>0>>0?B+1|0:B))<<11|A>>>21,A=(g=B>>21)+JA|0,cA=B=a+_A|0,a=(2097151&(A=(g=B)>>>0>>0?A+1|0:A))<<11|g>>>21,g=(B=A>>21)+BI|0,uA=A=a+zA|0,B=A,A=(g=A>>>0>>0?g+1|0:g)>>21,B=(2097151&g)<<11|B>>>21,a=C-(g=-2097152&oA)|0,g=(kA-((g>>>0>C>>>0)+fA|0)|0)+A|0,oA=B=B+a|0,a=B=(g=(A=B)>>>0>>0?g+1|0:g)>>21,A=qA(gA=(2097151&g)<<11|A>>>21,B,666643,0),g=h,IA=A=A+(B=2097151&QA)|0,C=g=A>>>0>>0?g+1|0:g,Q[0|E]=A,Q[E+1|0]=(255&g)<<24|A>>>8,B=2097151&nA,g=qA(gA,a,470296,0)+B|0,A=h,QA=(nA=(2097151&C)<<11|IA>>>21)+g|0,g=(C>>21)+(A=g>>>0>>0?A+1|0:A)|0,g=QA>>>0>>0?g+1|0:g,Q[E+4|0]=(2047&g)<<21|QA>>>11,A=g,Q[E+3|0]=(7&A)<<29|QA>>>3,nA=2097151&EA,B=qA(gA,a,654183,0)+nA|0,g=h,EA=(2097151&A)<<11|QA>>>21,A=(A>>21)+(g=B>>>0>>0?g+1|0:g)|0,g=A=EA>>>0>(B=nA=EA+B|0)>>>0?A+1|0:A,Q[E+6|0]=(63&A)<<26|B>>>6,nA=0,A=QA&=2097151,Q[E+2|0]=31&((65535&C)<<16|IA>>>16)|A<<5,IA=2097151&iA,C=qA(gA,a,-997805,-1)+IA|0,A=h,EA=(2097151&g)<<11|B>>>21,g=(g>>21)+(A=C>>>0>>0?A+1|0:A)|0,g=(A=IA=EA+C|0)>>>0>>0?g+1|0:g,Q[E+9|0]=(511&g)<<23|A>>>9,Q[E+8|0]=(1&g)<<31|A>>>1,C=0,IA=(B=EA=2097151&B)<<2,B=nA,Q[E+5|0]=IA|(524287&B)<<13|QA>>>19,QA=2097151&rA,IA=qA(gA,a,136657,0)+QA|0,B=h,B=IA>>>0>>0?B+1|0:B,QA=IA,IA=B,B=g,g=(g>>=21)+IA|0,g=(B=(iA=QA)+(QA=(2097151&B)<<11|A>>>21)|0)>>>0>>0?g+1|0:g,Q[E+12|0]=(4095&g)<<20|B>>>12,Q[E+11|0]=(15&g)<<28|B>>>4,IA=0,QA=(A=nA=2097151&A)<<7,A=C,C=EA,Q[E+7|0]=QA|(16383&A)<<18|C>>>14,C=(A=qA(gA,a,-683901,-1))+(a=2097151&aA)|0,A=h,A=C>>>0>>0?A+1|0:A,a=C,C=A,QA=(2097151&(A=g))<<11|B>>>21,A=(g=A>>21)+C|0,A=(a=QA+a|0)>>>0>>0?A+1|0:A,Q[E+14|0]=(127&A)<<25|a>>>7,QA=0,B=(g=gA=2097151&B)<<4,g=IA,Q[E+10|0]=B|(131071&g)<<15|nA>>>17,g=A,A>>=21,C=B=(IA=(2097151&g)<<11|a>>>21)+(2097151&CA)|0,g=B>>>0>>0?A+1|0:A,Q[E+17|0]=(1023&g)<<22|B>>>10,Q[E+16|0]=(3&g)<<30|B>>>2,IA=0,a=(A=nA=2097151&a)<<1,A=QA,Q[E+13|0]=a|(1048575&A)<<12|gA>>>20,A=g>>21,B=(g=(a=(2097151&g)<<11|B>>>21)+(2097151&eA)|0)>>>0>>0?A+1|0:A,a=g,Q[E+20|0]=(8191&B)<<19|g>>>13,Q[E+19|0]=(31&B)<<27|g>>>5,g=(A=gA=2097151&C)<<6,A=IA,Q[E+15|0]=g|(32767&A)<<17|nA>>>15,g=B>>21,nA=C=(IA=(2097151&B)<<11|a>>>21)+(2097151&pA)|0,C=C>>>0>>0?g+1|0:g,Q[E+21|0]=nA,g=(A=a)<<3,A=QA,Q[E+18|0]=g|(262143&A)<<14|gA>>>18,A=nA,Q[E+22|0]=(255&C)<<24|A>>>8,g=C>>21,g=(A=(a=(2097151&C)<<11|A>>>21)+(2097151&cA)|0)>>>0>>0?g+1|0:g,a=A,Q[E+25|0]=(2047&g)<<21|A>>>11,Q[E+24|0]=(7&g)<<29|A>>>3,A=g>>21,B=(g=(IA=(2097151&g)<<11|a>>>21)+(2097151&uA)|0)>>>0>>0?A+1|0:A,IA=g,Q[E+27|0]=(63&B)<<26|g>>>6,A=a&=2097151,Q[E+23|0]=31&((65535&C)<<16|nA>>>16)|A<<5,A=B>>21,A=(g=(B=(2097151&B)<<11|g>>>21)+(2097151&oA)|0)>>>0>>0?A+1|0:A,Q[E+31|0]=(131071&A)<<15|g>>>17,Q[E+30|0]=(511&A)<<23|g>>>9,Q[E+29|0]=(1&A)<<31|g>>>1,C=0,A=(B=IA&=2097151)<<2,B=QA,Q[E+26|0]=A|(524287&B)<<13|a>>>19,A=C,Q[E+28|0]=(16383&A)<<18|IA>>>14|g<<7,Dg(d,64),Dg(r,64),I&&(i[I>>2]=64,i[I+4>>2]=0),s=R+560|0,0}function F(A,I,g,B){for(var C=0,Q=0,E=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0;a=(C=t<<3)+g|0,k=n[4+(C=I+C|0)|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,E=(o=c=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24)<<24|o<<8&16711680,i[a>>2]=-16777216&((255&k)<<24|o>>>8)|16711680&((16777215&k)<<8|o>>>24)|k>>>8&65280|k>>>24,C=0,i[a+4>>2]=65280&(k<<24|o>>>8)|255&(k<<8|o>>>24)|E|C|C,16!=(0|(t=t+1|0)););for(I=eI(B,A,64);;){if(C=i[(B=k=(H=L<<3)+g|0)>>2],B=i[B+4>>2],a=pA(w=i[I+32>>2],e=i[I+36>>2],14),E=h,a=pA(w,e,18)^a,E^=h,a=pA(w,e,41)^a,B=(h^E)+B|0,B=(C=a+C|0)>>>0>>0?B+1|0:B,Q=i[I+48>>2],C=(E=i[(a=H+34144|0)>>2])+C|0,B=i[a+4>>2]+B|0,B=C>>>0>>0?B+1|0:B,a=(E=Q^((s=i[I+40>>2])^Q)&w)+C|0,C=(((D=i[I+52>>2])^(p=i[I+44>>2]))&e^D)+B|0,C=E>>>0>a>>>0?C+1|0:C,a=(E=i[I+56>>2])+a|0,B=i[I+60>>2]+C|0,B=E>>>0>a>>>0?B+1|0:B,E=a+(t=i[I+24>>2])|0,C=i[I+28>>2]+B|0,o=E,f=C=E>>>0>>0?C+1|0:C,i[I+24>>2]=E,i[I+28>>2]=C,C=pA(F=i[I>>2],t=i[I+4>>2],28),c=h,C=pA(F,t,34)^C,E=h^c,c=a+(pA(F,t,39)^C)|0,C=B+(h^E)|0,C=a>>>0>c>>>0?C+1|0:C,c=(u=F&((a=i[I+16>>2])|(r=i[I+8>>2]))|a&r)+c|0,B=(B=C)+(t&((C=i[I+20>>2])|(E=i[I+12>>2]))|C&E)|0,B=c>>>0>>0?B+1|0:B,u=c,c=B,i[I+56>>2]=u,i[I+60>>2]=B,B=C,C=pA(o,f,14),y=h,l=pA(o,f,18)^C,y^=h,S=a,a=(C=Q)+(Q=(s^w)&o^s)|0,C=((e^p)&f^p)+D|0,C=a>>>0>>0?C+1|0:C,Q=pA(o,f,41)^l,C=(h^y)+C|0,C=(a=Q+a|0)>>>0>>0?C+1|0:C,a=(y=i[(D=v=(Q=8|H)+g|0)>>2])+a|0,C=i[D+4>>2]+C|0,C=a>>>0>>0?C+1|0:C,a=(D=i[(Q=Q+34144|0)>>2])+a|0,C=i[Q+4>>2]+C|0,C=a>>>0>>0?C+1|0:C,y=a,D=B,B=C,C=D+C|0,C=(a=S+(Q=a)|0)>>>0>>0?C+1|0:C,Q=a,D=C,i[I+16>>2]=Q,i[I+20>>2]=C,C=pA(u,c,28),a=h,l=pA(u,c,34)^C,_=h^a,a=(C=y)+(y=(r|F)&u|r&F)|0,C=((E|t)&c|E&t)+B|0,C=a>>>0>>0?C+1|0:C,y=pA(u,c,39)^l,B=(h^_)+C|0,B=(a=y+a|0)>>>0>>0?B+1|0:B,y=a,a=B,i[I+48>>2]=y,i[I+52>>2]=B,B=pA(Q,D,14),C=h,l=pA(Q,D,18)^B,_=h^C,S=r,C=((e^f)&D^e)+p|0,C=(B=(r=(o^w)&Q^w)+s|0)>>>0>>0?C+1|0:C,r=pA(Q,D,41)^l,C=(h^_)+C|0,C=(B=r+B|0)>>>0>>0?C+1|0:C,r=(r=B)+(p=i[(B=M=(s=16|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=r>>>0

>>0?B+1|0:B,r=(s=i[(C=s+34144|0)>>2])+r|0,C=i[C+4>>2]+B|0,C=r>>>0>>0?C+1|0:C,p=r,s=r,B=C,C=C+E|0,s=C=(r=S+r|0)>>>0>>0?C+1|0:C,i[I+8>>2]=r,i[I+12>>2]=C,C=pA(y,a,28),E=h,l=pA(y,a,34)^C,E^=h,B=((t|c)&a|t&c)+B|0,B=(C=(C=p)+(p=(u|F)&y|u&F)|0)>>>0

>>0?B+1|0:B,p=pA(y,a,39)^l,B=(h^E)+B|0,B=(C=p+C|0)>>>0

>>0?B+1|0:B,p=C,E=B,i[I+40>>2]=C,i[I+44>>2]=B,B=pA(r,s,14),C=h,l=pA(r,s,18)^B,_=h^C,S=F,C=(f^(f^D)&s)+e|0,C=(B=(F=o^(Q^o)&r)+w|0)>>>0>>0?C+1|0:C,e=(F=pA(r,s,41)^l)+B|0,B=(h^_)+C|0,B=e>>>0>>0?B+1|0:B,e=(w=i[(C=P=(F=24|H)+g|0)>>2])+e|0,C=i[C+4>>2]+B|0,C=e>>>0>>0?C+1|0:C,B=(B=e)+(F=i[(e=F+34144|0)>>2])|0,C=i[e+4>>2]+C|0,w=B,e=S+B|0,B=(C=B>>>0>>0?C+1|0:C)+t|0,F=B=e>>>0>>0?B+1|0:B,i[I>>2]=e,i[I+4>>2]=B,B=pA(p,E,28),t=h,l=pA(p,E,34)^B,_=h^t,C=((a|c)&E|a&c)+C|0,C=(B=(t=(y|u)&p|y&u)+w|0)>>>0>>0?C+1|0:C,t=(w=pA(p,E,39)^l)+B|0,B=(h^_)+C|0,B=t>>>0>>0?B+1|0:B,w=t,t=B,i[I+32>>2]=w,i[I+36>>2]=B,B=pA(e,F,14),C=h,l=pA(e,F,18)^B,_=h^C,b=u,C=f+(D^(s^D)&F)|0,C=(B=o+(Q^(Q^r)&e)|0)>>>0>>0?C+1|0:C,o=pA(e,F,41)^l,C=(h^_)+C|0,C=(B=o+B|0)>>>0>>0?C+1|0:C,B=(u=i[(f=S=(o=32|H)+g|0)>>2])+B|0,C=i[f+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(f=i[(o=o+34144|0)>>2])+B|0,C=i[o+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,u=B,f=B,o=b+B|0,B=C,C=C+c|0,f=C=o>>>0>>0?C+1|0:C,i[I+56>>2]=o,i[I+60>>2]=C,C=pA(w,t,28),c=h,l=pA(w,t,34)^C,_=h^c,c=(C=u)+(u=(y|p)&w|y&p)|0,C=((E|a)&t|E&a)+B|0,C=c>>>0>>0?C+1|0:C,u=pA(w,t,39)^l,B=(h^_)+C|0,B=(c=u+c|0)>>>0>>0?B+1|0:B,u=c,c=B,i[I+24>>2]=u,i[I+28>>2]=B,B=pA(o,f,14),C=h,l=pA(o,f,18)^B,_=h^C,b=y,C=D+(s^(s^F)&f)|0,C=(B=Q+(r^(r^e)&o)|0)>>>0>>0?C+1|0:C,Q=pA(o,f,41)^l,C=(h^_)+C|0,C=(B=Q+B|0)>>>0>>0?C+1|0:C,Q=(Q=B)+(y=i[(B=U=(D=40|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=Q>>>0>>0?B+1|0:B,Q=(D=i[(C=D+34144|0)>>2])+Q|0,C=i[C+4>>2]+B|0,y=Q,B=C=Q>>>0>>0?C+1|0:C,C=C+a|0,D=C=(Q=b+Q|0)>>>0>>0?C+1|0:C,i[I+48>>2]=Q,i[I+52>>2]=C,C=pA(u,c,28),a=h,l=pA(u,c,34)^C,a^=h,B=((E|t)&c|E&t)+B|0,B=(C=(C=y)+(y=(p|w)&u|p&w)|0)>>>0>>0?B+1|0:B,y=pA(u,c,39)^l,B=(h^a)+B|0,B=(C=y+C|0)>>>0>>0?B+1|0:B,y=C,a=B,i[I+16>>2]=C,i[I+20>>2]=B,B=pA(Q,D,14),C=h,l=pA(Q,D,18)^B,_=h^C,G=p,C=s+(F^(f^F)&D)|0,C=(B=r+(e^(o^e)&Q)|0)>>>0>>0?C+1|0:C,r=(s=pA(Q,D,41)^l)+B|0,B=(h^_)+C|0,B=r>>>0>>0?B+1|0:B,r=(p=i[(C=b=(s=48|H)+g|0)>>2])+r|0,C=i[C+4>>2]+B|0,C=r>>>0

>>0?C+1|0:C,B=(B=r)+(s=i[(r=s+34144|0)>>2])|0,C=i[r+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,p=B,s=B,r=G+B|0,B=C+E|0,s=B=r>>>0>>0?B+1|0:B,i[I+40>>2]=r,i[I+44>>2]=B,B=pA(y,a,28),E=h,l=pA(y,a,34)^B,_=h^E,C=((t|c)&a|t&c)+C|0,C=(B=(E=(u|w)&y|u&w)+p|0)>>>0>>0?C+1|0:C,E=(p=pA(y,a,39)^l)+B|0,B=(h^_)+C|0,B=E>>>0

>>0?B+1|0:B,p=E,E=B,i[I+8>>2]=p,i[I+12>>2]=B,B=pA(r,s,14),C=h,l=pA(r,s,18)^B,_=h^C,G=w,C=F+(f^(f^D)&s)|0,C=(B=e+(o^(Q^o)&r)|0)>>>0>>0?C+1|0:C,e=pA(r,s,41)^l,C=(h^_)+C|0,C=(B=e+B|0)>>>0>>0?C+1|0:C,B=(w=i[(F=R=(e=56|H)+g|0)>>2])+B|0,C=i[F+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(F=i[(e=e+34144|0)>>2])+B|0,C=i[e+4>>2]+C|0,w=B,e=G+B|0,B=C=B>>>0>>0?C+1|0:C,C=C+t|0,F=C=e>>>0>>0?C+1|0:C,i[I+32>>2]=e,i[I+36>>2]=C,C=pA(p,E,28),t=h,l=pA(p,E,34)^C,_=h^t,t=(C=w)+(w=(y|u)&p|y&u)|0,C=((a|c)&E|a&c)+B|0,C=t>>>0>>0?C+1|0:C,w=pA(p,E,39)^l,B=(h^_)+C|0,B=(t=w+t|0)>>>0>>0?B+1|0:B,w=t,t=B,i[I>>2]=w,i[I+4>>2]=B,B=pA(e,F,14),C=h,l=pA(e,F,18)^B,_=h^C,G=u,C=f+(D^(s^D)&F)|0,C=(B=o+(Q^(Q^r)&e)|0)>>>0>>0?C+1|0:C,o=pA(e,F,41)^l,C=(h^_)+C|0,C=(B=o+B|0)>>>0>>0?C+1|0:C,o=(o=B)+(u=i[(B=K=(f=64|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=o>>>0>>0?B+1|0:B,o=(f=i[(C=f+34144|0)>>2])+o|0,C=i[C+4>>2]+B|0,C=o>>>0>>0?C+1|0:C,f=o,B=C,C=C+c|0,u=C=(o=G+o|0)>>>0>>0?C+1|0:C,i[I+24>>2]=o,i[I+28>>2]=C,C=pA(w,t,28),c=h,l=pA(w,t,34)^C,c^=h,B=((E|a)&t|E&a)+B|0,B=(C=(C=f)+(f=(y|p)&w|y&p)|0)>>>0>>0?B+1|0:B,f=pA(w,t,39)^l,B=(h^c)+B|0,l=C=f+C|0,c=B=C>>>0>>0?B+1|0:B,i[I+56>>2]=C,i[I+60>>2]=B,B=pA(o,u,14),C=h,f=pA(o,u,18)^B,_=h^C,C=D+(s^(s^F)&u)|0,C=(B=Q+(r^(r^e)&o)|0)>>>0>>0?C+1|0:C,Q=(f=pA(o,u,41)^f)+B|0,B=(h^_)+C|0,B=Q>>>0>>0?B+1|0:B,Q=(D=i[(C=G=(f=72|H)+g|0)>>2])+Q|0,C=i[C+4>>2]+B|0,C=Q>>>0>>0?C+1|0:C,B=(B=Q)+(f=i[(Q=f+34144|0)>>2])|0,C=i[Q+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,f=B,Q=B+y|0,B=C+a|0,y=B=Q>>>0>>0?B+1|0:B,i[I+16>>2]=Q,i[I+20>>2]=B,B=pA(l,c,28),a=h,D=pA(l,c,34)^B,_=h^a,C=((E|t)&c|E&t)+C|0,C=(B=(a=(p|w)&l|p&w)+f|0)>>>0>>0?C+1|0:C,a=(f=pA(l,c,39)^D)+B|0,B=(h^_)+C|0,_=a,a=B=a>>>0>>0?B+1|0:B,i[I+48>>2]=_,i[I+52>>2]=B,B=pA(Q,y,14),C=h,f=pA(Q,y,18)^B,D=h^C,C=s+(F^(u^F)&y)|0,C=(B=r+(e^(o^e)&Q)|0)>>>0>>0?C+1|0:C,r=pA(Q,y,41)^f,C=(h^D)+C|0,C=(B=r+B|0)>>>0>>0?C+1|0:C,B=(D=i[(f=m=(r=80|H)+g|0)>>2])+B|0,C=i[f+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(f=i[(r=r+34144|0)>>2])+B|0,C=i[r+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,f=B,r=B+p|0,B=C,C=C+E|0,s=C=r>>>0>>0?C+1|0:C,i[I+8>>2]=r,i[I+12>>2]=C,C=pA(_,a,28),E=h,D=pA(_,a,34)^C,p=h^E,E=(C=f)+(f=(w|l)&_|w&l)|0,C=((t|c)&a|t&c)+B|0,C=E>>>0>>0?C+1|0:C,f=pA(_,a,39)^D,B=(h^p)+C|0,f=B=(E=f+E|0)>>>0>>0?B+1|0:B,i[I+40>>2]=E,i[I+44>>2]=B,B=pA(r,s,14),C=h,D=pA(r,s,18)^B,p=h^C,C=F+(u^(y^u)&s)|0,C=(B=e+(o^(Q^o)&r)|0)>>>0>>0?C+1|0:C,e=pA(r,s,41)^D,C=(h^p)+C|0,C=(B=e+B|0)>>>0>>0?C+1|0:C,e=(e=B)+(F=i[(B=N=(D=88|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=e>>>0>>0?B+1|0:B,e=(D=i[(C=D+34144|0)>>2])+e|0,C=i[C+4>>2]+B|0,C=e>>>0>>0?C+1|0:C,D=e,B=C,C=C+t|0,F=C=(e=e+w|0)>>>0>>0?C+1|0:C,i[I>>2]=e,i[I+4>>2]=C,C=pA(E,f,28),t=h,p=pA(E,f,34)^C,t^=h,B=((a|c)&f|a&c)+B|0,B=(C=(C=D)+(D=(l|_)&E|l&_)|0)>>>0>>0?B+1|0:B,D=pA(E,f,39)^p,B=(h^t)+B|0,t=C=D+C|0,D=B=C>>>0>>0?B+1|0:B,i[I+32>>2]=C,i[I+36>>2]=B,B=pA(e,F,14),C=h,p=pA(e,F,18)^B,w=h^C,C=u+(y^(s^y)&F)|0,C=(B=o+(Q^(Q^r)&e)|0)>>>0>>0?C+1|0:C,o=(u=pA(e,F,41)^p)+B|0,B=(h^w)+C|0,B=o>>>0>>0?B+1|0:B,o=(p=i[(C=X=(u=96|H)+g|0)>>2])+o|0,C=i[C+4>>2]+B|0,C=o>>>0

>>0?C+1|0:C,B=(B=o)+(u=i[(o=u+34144|0)>>2])|0,C=i[o+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,u=B,o=B+l|0,B=C+c|0,p=o,o=B=o>>>0>>0?B+1|0:B,i[I+56>>2]=p,i[I+60>>2]=B,B=pA(t,D,28),c=h,w=pA(t,D,34)^B,l=h^c,C=((a|f)&D|a&f)+C|0,C=(B=(c=(E|_)&t|E&_)+u|0)>>>0>>0?C+1|0:C,c=(u=pA(t,D,39)^w)+B|0,B=(h^l)+C|0,B=c>>>0>>0?B+1|0:B,u=c,c=B,i[I+24>>2]=u,i[I+28>>2]=B,B=pA(p,o,14),C=h,w=pA(p,o,18)^B,l=h^C,C=y+(s^(s^F)&o)|0,C=(B=Q+(r^(r^e)&p)|0)>>>0>>0?C+1|0:C,Q=pA(p,o,41)^w,C=(h^l)+C|0,C=(B=Q+B|0)>>>0>>0?C+1|0:C,B=(w=i[(y=T=(Q=104|H)+g|0)>>2])+B|0,C=i[y+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(y=i[(Q=Q+34144|0)>>2])+B|0,C=i[Q+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,y=B,Q=B+_|0,B=C,C=C+a|0,w=Q,Q=C=Q>>>0>>0?C+1|0:C,i[I+48>>2]=w,i[I+52>>2]=C,C=pA(u,c,28),a=h,l=pA(u,c,34)^C,_=h^a,a=(C=y)+(y=(E|t)&u|E&t)|0,C=((f|D)&c|f&D)+B|0,C=a>>>0>>0?C+1|0:C,y=pA(u,c,39)^l,B=(h^_)+C|0,B=(a=y+a|0)>>>0>>0?B+1|0:B,y=a,a=B,i[I+16>>2]=y,i[I+20>>2]=B,B=pA(w,Q,14),C=h,l=pA(w,Q,18)^B,_=h^C,C=s+(F^(o^F)&Q)|0,C=(B=r+(e^(e^p)&w)|0)>>>0>>0?C+1|0:C,r=pA(w,Q,41)^l,C=(h^_)+C|0,C=(B=r+B|0)>>>0>>0?C+1|0:C,r=(r=B)+(_=i[(B=l=(s=112|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=r>>>0<_>>>0?B+1|0:B,r=(s=i[(C=s+34144|0)>>2])+r|0,C=i[C+4>>2]+B|0,C=r>>>0>>0?C+1|0:C,s=r,B=C,C=f+C|0,f=r=E+r|0,E=C=E>>>0>r>>>0?C+1|0:C,i[I+40>>2]=r,i[I+44>>2]=C,C=pA(y,a,28),r=h,_=pA(y,a,34)^C,r^=h,B=((c|D)&a|c&D)+B|0,B=(C=(C=s)+(s=(t|u)&y|t&u)|0)>>>0>>0?B+1|0:B,s=pA(y,a,39)^_,B=(h^r)+B|0,B=(C=s+C|0)>>>0>>0?B+1|0:B,s=C,r=B,i[I+8>>2]=C,i[I+12>>2]=B,B=pA(f,E,14),C=h,_=pA(f,E,18)^B,Y=h^C,C=F+(o^(Q^o)&E)|0,C=(B=e+(p^(p^w)&f)|0)>>>0>>0?C+1|0:C,E=(o=pA(f,E,41)^_)+B|0,B=(h^Y)+C|0,B=E>>>0>>0?B+1|0:B,E=(e=i[(C=o=(Q=120|H)+g|0)>>2])+E|0,C=i[C+4>>2]+B|0,C=E>>>0>>0?C+1|0:C,B=(B=E)+(Q=i[(E=Q+34144|0)>>2])|0,C=i[E+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,Q=B,E=t+B|0,B=C+D|0,i[I+32>>2]=E,i[I+36>>2]=E>>>0>>0?B+1|0:B,B=pA(s,r,28),E=h,t=pA(s,r,34)^B,E^=h,C=((a|c)&r|a&c)+C|0,c=(B=(B=Q)+(Q=(y|u)&s|y&u)|0)+(a=pA(s,r,39)^t)|0,B=(h^E)+(B>>>0>>0?C+1|0:C)|0,i[I>>2]=c,i[I+4>>2]=a>>>0>c>>>0?B+1|0:B,64==(0|L)){for(;g=(B=V<<3)+A|0,B=(k=i[(C=I+B|0)>>2])+i[g>>2]|0,C=i[g+4>>2]+i[C+4>>2]|0,i[g>>2]=B,i[g+4>>2]=B>>>0>>0?C+1|0:C,8!=(0|(V=V+1|0)););break}t=((L=L+16|0)<<3)+g|0,f=B=i[l+4>>2],C=B>>>6|0,B=((63&B)<<26|(Y=i[l>>2])>>>6)^pA(Y,B,19),C^=h,B=(B=pA(Y,f,61)^B)+(c=d=i[G>>2])|0,C=(w=i[G+4>>2])+(h^C)|0,C=B>>>0>>0?C+1|0:C,B=(c=i[k>>2])+B|0,C=i[k+4>>2]+C|0,Q=B,B=B>>>0>>0?C+1|0:C,C=(a=c=i[v+4>>2])>>>7|0,c=((127&a)<<25|(E=i[v>>2])>>>7)^pA(E,a,1),C^=h,r=Q,Q=pA(E,a,8)^c,C=(h^C)+B|0,G=c=r+Q|0,c=C=Q>>>0>c>>>0?C+1|0:C,i[t>>2]=G,i[t+4>>2]=C,B=(B=E)+(E=J=i[m>>2])|0,C=(l=i[m+4>>2])+a|0,C=B>>>0>>0?C+1|0:C,E=B,B=C,D=a=i[o+4>>2],C=a>>>6|0,a=((63&a)<<26|(m=i[o>>2])>>>6)^pA(m,a,19),t=h^C,a=pA(m,D,61)^a,B=(h^t)+B|0,o=C=a+E|0,C=C>>>0>>0?B+1|0:B,B=(E=a=i[M+4>>2])>>>7|0,a=((127&E)<<25|(t=i[M>>2])>>>7)^pA(t,E,1),Q=h^B,a=pA(t,E,8)^a,C=(h^Q)+C|0,p=B=a+o|0,a=C=B>>>0>>0?C+1|0:C,i[k+136>>2]=B,i[k+140>>2]=C,B=(_=i[N+4>>2])+E|0,E=C=(C=t)+(t=x=i[N>>2])|0,C=C>>>0>>0?B+1|0:B,B=pA(G,c,19),t=h,o=pA(G,c,61)^((63&c)<<26|G>>>6)^B,C=(h^c>>>6^t)+C|0,Q=E=o+E|0,B=E>>>0>>0?C+1|0:C,t=E=i[P+4>>2],C=E>>>7|0,E=((127&E)<<25|(o=i[P>>2])>>>7)^pA(o,E,1),C^=h,r=Q,Q=pA(o,t,8)^E,C=(h^C)+B|0,s=E=r+Q|0,E=C=E>>>0>>0?C+1|0:C,i[k+144>>2]=s,i[k+148>>2]=C,B=(v=i[X+4>>2])+t|0,t=C=(C=o)+(o=N=i[X>>2])|0,C=C>>>0>>0?B+1|0:B,B=pA(p,a,19),o=h,Q=pA(p,a,61)^((63&a)<<26|p>>>6)^B,C=(h^a>>>6^o)+C|0,B=Q>>>0>(r=t=Q+t|0)>>>0?C+1|0:C,C=(o=t=i[S+4>>2])>>>7|0,t=((127&o)<<25|(Q=i[S>>2])>>>7)^pA(Q,o,1),C^=h,y=r,r=pA(Q,o,8)^t,C=(h^C)+B|0,F=t=y+r|0,t=C=t>>>0>>0?C+1|0:C,i[k+152>>2]=F,i[k+156>>2]=C,B=(P=i[T+4>>2])+o|0,o=C=(C=Q)+(Q=M=i[T>>2])|0,C=C>>>0>>0?B+1|0:B,B=pA(s,E,19),Q=h,r=pA(s,E,61)^((63&E)<<26|s>>>6)^B,B=(h^E>>>6^Q)+C|0,e=o=r+o|0,C=o>>>0>>0?B+1|0:B,r=o=i[U+4>>2],B=o>>>7|0,o=((127&o)<<25|(Q=i[U>>2])>>>7)^pA(Q,o,1),u=h^B,o=pA(Q,r,8)^o,C=(h^u)+C|0,u=B=o+e|0,o=C=B>>>0>>0?C+1|0:C,i[k+160>>2]=B,i[k+164>>2]=C,B=r+f|0,B=(C=Q+Y|0)>>>0>>0?B+1|0:B,Q=C,C=B,B=pA(F,t,19),r=h,e=pA(F,t,61)^((63&t)<<26|F>>>6)^B,C=(h^t>>>6^r)+C|0,C=(Q=e+Q|0)>>>0>>0?C+1|0:C,e=Q,Q=C,C=(r=i[b+4>>2])>>>7|0,y=((127&r)<<25|(B=i[b>>2])>>>7)^pA(B,r,1),C^=h,y=pA(B,r,8)^y,C=(h^C)+Q|0,C=(e=y+e|0)>>>0>>0?C+1|0:C,y=e,Q=C,i[k+168>>2]=e,i[k+172>>2]=C,C=B,B=r+D|0,C=C>>>0>(r=e=C+m|0)>>>0?B+1|0:B,B=pA(u,o,19),e=h,H=pA(u,o,61)^((63&o)<<26|u>>>6)^B,C=(h^o>>>6^e)+C|0,S=r=H+r|0,B=r>>>0>>0?C+1|0:C,H=r=i[R+4>>2],C=r>>>7|0,r=((127&r)<<25|(e=i[R>>2])>>>7)^pA(e,r,1),U=h^C,r=pA(e,H,8)^r,B=(h^U)+B|0,S=C=r+S|0,r=B=C>>>0>>0?B+1|0:B,i[k+176>>2]=C,i[k+180>>2]=B,B=c+H|0,B=(C=e+G|0)>>>0>>0?B+1|0:B,e=C,C=B,B=pA(y,Q,19),H=h,U=pA(y,Q,61)^((63&Q)<<26|y>>>6)^B,C=(h^Q>>>6^H)+C|0,b=e=U+e|0,e=e>>>0>>0?C+1|0:C,U=H=i[K+4>>2],C=H>>>7|0,H=((127&H)<<25|(B=i[K>>2])>>>7)^pA(B,H,1),C^=h,R=b,b=pA(B,U,8)^H,C=(h^C)+e|0,e=C=(H=R+b|0)>>>0>>0?C+1|0:C,i[k+184>>2]=H,i[k+188>>2]=C,C=B,B=a+U|0,C=C>>>0>(a=p=C+p|0)>>>0?B+1|0:B,B=pA(S,r,19),p=h,U=pA(S,r,61)^((63&r)<<26|S>>>6)^B,B=(h^r>>>6^p)+C|0,C=B=(a=U+a|0)>>>0>>0?B+1|0:B,B=pA(d,w,1),p=h,U=pA(d,w,8)^((127&w)<<25|d>>>7)^B,C=(h^w>>>7^p)+C|0,p=a=U+a|0,a=C=a>>>0>>0?C+1|0:C,i[k+192>>2]=p,i[k+196>>2]=C,B=E+w|0,E=C=s+d|0,C=B=C>>>0>>0?B+1|0:B,B=pA(H,e,19),s=h,w=pA(H,e,61)^((63&e)<<26|H>>>6)^B,B=(h^e>>>6^s)+C|0,C=B=(E=w+E|0)>>>0>>0?B+1|0:B,B=pA(J,l,1),s=h,w=pA(J,l,8)^((127&l)<<25|J>>>7)^B,C=(h^l>>>7^s)+C|0,s=E=w+E|0,E=C=E>>>0>>0?C+1|0:C,i[k+200>>2]=s,i[k+204>>2]=C,B=t+l|0,t=C=F+J|0,C=B=C>>>0>>0?B+1|0:B,B=pA(p,a,19),F=h,w=pA(p,a,61)^((63&a)<<26|p>>>6)^B,B=(h^a>>>6^F)+C|0,C=B=(t=w+t|0)>>>0>>0?B+1|0:B,B=pA(x,_,1),F=h,w=pA(x,_,8)^((127&_)<<25|x>>>7)^B,C=(h^_>>>7^F)+C|0,F=t=w+t|0,t=C=t>>>0>>0?C+1|0:C,i[k+208>>2]=F,i[k+212>>2]=C,B=o+_|0,o=C=u+x|0,C=B=C>>>0>>0?B+1|0:B,B=pA(s,E,19),u=h,w=o,o=B,B=E>>>6|0,o=pA(s,E,61)^o^((63&E)<<26|s>>>6),B=(h^B^u)+C|0,C=B=(E=w+o|0)>>>0>>0?B+1|0:B,B=pA(N,v,1),o=h,s=pA(N,v,8)^((127&v)<<25|N>>>7)^B,C=(h^v>>>7^o)+C|0,o=E=s+E|0,E=C=E>>>0>>0?C+1|0:C,i[k+216>>2]=o,i[k+220>>2]=C,B=Q+v|0,Q=C=y+N|0,C=B=C>>>0>>0?B+1|0:B,B=pA(F,t,19),s=h,y=Q,Q=B,B=t>>>6|0,Q=pA(F,t,61)^Q^((63&t)<<26|F>>>6),B=(h^B^s)+C|0,C=B=Q>>>0>(t=y+Q|0)>>>0?B+1|0:B,B=pA(M,P,1),Q=h,s=pA(M,P,8)^((127&P)<<25|M>>>7)^B,C=(h^P>>>7^Q)+C|0,t=C=(Q=t=s+t|0)>>>0>>0?C+1|0:C,i[k+224>>2]=Q,i[k+228>>2]=C,B=r+P|0,r=C=S+M|0,C=B=C>>>0>>0?B+1|0:B,B=pA(o,E,19),s=h,y=B,B=E>>>6|0,o=pA(o,E,61)^y^((63&E)<<26|o>>>6),B=(h^B^s)+C|0,C=B=(E=o+r|0)>>>0>>0?B+1|0:B,B=pA(Y,f,1),o=h,r=pA(Y,f,8)^((127&f)<<25|Y>>>7)^B,C=(h^f>>>7^o)+C|0,o=E=r+E|0,E=C=E>>>0>>0?C+1|0:C,i[k+232>>2]=o,i[k+236>>2]=C,B=e+f|0,r=C=H+Y|0,C=B=C>>>0>>0?B+1|0:B,B=pA(Q,t,19),e=h,f=B,B=t>>>6|0,Q=pA(Q,t,61)^f^((63&t)<<26|Q>>>6),B=(h^B^e)+C|0,B=Q>>>0>(t=Q+r|0)>>>0?B+1|0:B,Q=t,C=B,B=pA(m,D,1),r=h,Q=(e=pA(m,D,8)^((127&D)<<25|m>>>7)^B)+Q|0,C=(h^D>>>7^r)+C|0,i[(t=k)+240>>2]=Q,i[t+244>>2]=Q>>>0>>0?C+1|0:C,B=a+D|0,a=C=p+m|0,C=B=C>>>0

>>0?B+1|0:B,B=pA(o,E,19),t=h,Q=B,B=E>>>6|0,E=pA(o,E,61)^Q^((63&E)<<26|o>>>6),B=(h^B^t)+C|0,C=B=E>>>0>(a=E+a|0)>>>0?B+1|0:B,B=pA(G,c,1),E=h,t=B,B=c>>>7|0,c=(Q=a)+(a=pA(G,c,8)^t^((127&c)<<25|G>>>7))|0,C=(h^B^E)+C|0,i[k+248>>2]=c,i[k+252>>2]=a>>>0>c>>>0?C+1|0:C}}function l(A){var I,g,B,C,E,i,a,r,o,t,e,f,c,y,s,w,D,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0;f=uI(A),gA=n[A+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,c=uI(A+5|0),z=h,BA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,Z=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,y=uI(A+13|0),O=h,L=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,j=uI(A+18|0),M=h,G=uI(A+21|0),k=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,F=uI(A+26|0),p=h,K=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,$=n[A+31|0]|n[A+32|0]<<8|n[A+33|0]<<16|n[A+34|0]<<24,s=uI(A+34|0),q=h,X=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,W=uI(A+39|0),Y=h,H=uI(A+42|0),l=n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24,_=uI(A+47|0),F=2097151&((3&p)<<30|F>>>2),p=qA(I=2097151&((3&(u=h))<<30|_>>>2),0,136657,0)+F|0,u=h,u=p>>>0>>0?u+1|0:u,F=(_=qA(g=(n[A+49|0]|n[A+50|0]<<8|n[A+51|0]<<16|n[A+52|0]<<24)>>>7&2097151,0,-997805,-1))+p|0,p=h+u|0,p=F>>>0<_>>>0?p+1|0:p,u=(_=qA(B=(n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24)>>>4&2097151,0,654183,0))+F|0,F=h+p|0,F=u>>>0<_>>>0?F+1|0:F,m=u,u=uI(A+55|0),_=qA(C=2097151&((1&(p=h))<<31|u>>>1),0,470296,0),p=h+F|0,p=(u=m+_|0)>>>0<_>>>0?p+1|0:p,F=(_=qA(E=(n[A+57|0]|n[A+58|0]<<8|n[A+59|0]<<16|n[A+60|0]<<24)>>>6&2097151,0,666643,0))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,_=F,U=u,F=u,b=l>>>5&2097151,l=2097151&H,u=qA(i=(n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24)>>>3|0,0,-683901,-1)+l|0,p=h,p=u>>>0>>0?p+1|0:p,l=u,d=p,T=u=p-((u>>>0<4293918720)-1|0)|0,p=b,b=(2097151&u)<<11|(m=l- -1048576|0)>>>21,u>>=21,r=H=p+b|0,S=u=H>>>0>>0?u+1|0:u,H=qA(H,u,-683901,-1),u=h+F|0,J=p=H+_|0,b=p>>>0>>0?u+1|0:u,u=qA(I,x,-997805,-1),p=h,p=(u=(F=k>>>5&2097151)+u|0)>>>0>>0?p+1|0:p,k=qA(g,0,654183,0),F=h+p|0,F=(u=k+u|0)>>>0>>0?F+1|0:F,p=(k=qA(B,0,470296,0))+u|0,u=h+F|0,u=p>>>0>>0?u+1|0:u,F=(k=qA(C,P,666643,0))+p|0,p=h+u|0,H=F,F=F>>>0>>0?p+1|0:p,k=2097151&G,p=qA(I,x,654183,0)+k|0,u=h,u=p>>>0>>0?u+1|0:u,k=(G=qA(g,0,470296,0))+p|0,p=h+u|0,p=k>>>0>>0?p+1|0:p,G=qA(B,0,666643,0),u=h+p|0,G=u=(k=G+k|0)>>>0>>0?u+1|0:u,V=u=u-((k>>>0<4293918720)-1|0)|0,F=(p=u>>>21|0)+F|0,F=(u=(N=H)+(H=(2097151&u)<<11|(v=k- -1048576|0)>>>21)|0)>>>0>>0?F+1|0:F,H=u,N=F,R=u=F-((u>>>0<4293918720)-1|0)|0,U=U-((_>>>0<4293918720)-1|0)|0,t=_- -1048576|0,p=J,J=(2097151&u)<<11|(F=H- -1048576|0)>>>21,u=(u>>21)+b|0,u=((p=_=p+J|0)>>>0>>0?u+1|0:u)-(((_=-2097152&t)>>>0>p>>>0)+U|0)|0,CA=(p=p-_|0)-(_=-2097152&(e=p- -1048576|0))|0,QA=u-((b=u-((p>>>0<4293918720)-1|0)|0)+(p>>>0<_>>>0)|0)|0,u=qA(r,S,136657,0)+H|0,p=N+h|0,J=u-(F&=-2097152)|0,R=(p=u>>>0>>0?p+1|0:p)-((u>>>0>>0)+R|0)|0,m=l-(p=-2097152&m)|0,AA=d-((p>>>0>l>>>0)+T|0)|0,F=2097151&((7&(p=Y))<<29|W>>>3),p=qA(i,0,136657,0)+F|0,u=h,u=p>>>0>>0?u+1|0:u,F=(_=qA(E,0,-683901,-1))+p|0,p=h+u|0,H=F,l=F>>>0<_>>>0?p+1|0:p,p=qA(C,P,-683901,-1),u=h,u=(p=(F=X>>>6&2097151)+p|0)>>>0>>0?u+1|0:u,_=qA(i,0,-997805,-1),F=h+u|0,F=(p=_+p|0)>>>0<_>>>0?F+1|0:F,u=(_=qA(E,0,136657,0))+p|0,p=h+F|0,p=u>>>0<_>>>0?p+1|0:p,_=u,d=p,T=p=p-((u>>>0<4293918720)-1|0)|0,X=u- -1048576|0,u=(F=p>>21)+l|0,l=p=(Y=H)+(H=(2097151&p)<<11|X>>>21)|0,Y=u=p>>>0>>0?u+1|0:u,N=p=u-((p>>>0<4293918720)-1|0)|0,u=m,m=(2097151&p)<<11|(H=l- -1048576|0)>>>21,p=(p>>21)+AA|0,o=u=u+m|0,m=p=u>>>0>>0?p+1|0:p,F=qA(u,p,-683901,-1),p=h+R|0,EA=u=F+J|0,R=u>>>0>>0?p+1|0:p,W=k,J=G,F=2097151&((7&(p=M))<<29|j>>>3),p=qA(I,x,470296,0)+F|0,u=h,u=p>>>0>>0?u+1|0:u,F=qA(g,0,666643,0),u=h+u|0,G=p=F+p|0,F=p>>>0>>0?u+1|0:u,u=qA(I,x,666643,0),p=h,p=(u=(k=L>>>6&2097151)+u|0)>>>0>>0?p+1|0:p,k=u,j=p,AA=p=p-((u>>>0<4293918720)-1|0)|0,u=(u=p>>>21|0)+F|0,F=p=(M=G)+(G=(2097151&p)<<11|(L=k- -1048576|0)>>>21)|0,IA=u=p>>>0>>0?u+1|0:u,w=p=u-((p>>>0<4293918720)-1|0)|0,G=Y-(((u=-2097152&H)>>>0>l>>>0)+N|0)|0,a=l-u|0,H=(2097151&p)<<11|(M=F- -1048576|0)>>>21,p=(p>>>21|0)+J|0,p=(l=H+W|0)>>>0>>0?p+1|0:p,l=((u=l)-(H=-2097152&v)|0)+(v=qA(r,S,-997805,-1))|0,u=h+(p-((8191&V)+(u>>>0>>0)|0)|0)|0,u=l>>>0>>0?u+1|0:u,p=l,l=qA(o,m,136657,0),u=h+u|0,u=(p=p+l|0)>>>0>>0?u+1|0:u,l=(H=qA(a,G,-683901,-1))+p|0,p=h+u|0,V=p=l>>>0>>0?p+1|0:p,N=u=p-((l>>>0<4293918720)-1|0)|0,Y=(2097151&u)<<11|(v=l- -1048576|0)>>>21,u=(u>>21)+R|0,R=u=(H=Y+EA|0)>>>0>>0?u+1|0:u,p=(p=(u=u-((H>>>0<4293918720)-1|0)|0)>>21)+QA|0,p=(J=(2097151&u)<<11|(Y=H- -1048576|0)>>>21)>>>0>(W=J+CA|0)>>>0?p+1|0:p,J=W,W=p,CA=H-(p=-2097152&Y)|0,QA=R-((p>>>0>H>>>0)+u|0)|0,EA=l-(p=-2097152&v)|0,D=V-((p>>>0>l>>>0)+N|0)|0,p=(l=qA(r,S,654183,0))+(F-(u=-2097152&M)|0)|0,F=h+(IA-((8191&w)+(u>>>0>F>>>0)|0)|0)|0,F=p>>>0>>0?F+1|0:F,u=(l=qA(o,m,-997805,-1))+p|0,p=h+F|0,p=u>>>0>>0?p+1|0:p,F=(l=qA(a,G,136657,0))+u|0,u=h+p|0,V=F,M=F>>>0>>0?u+1|0:u,H=_-(p=-2097152&X)|0,T=d-((p>>>0>_>>>0)+T|0)|0,_=2097151&((1&(p=q))<<31|s>>>1),u=qA(B,0,-683901,-1)+_|0,p=h,p=u>>>0<_>>>0?p+1|0:p,F=qA(C,P,136657,0),p=h+p|0,p=(u=F+u|0)>>>0>>0?p+1|0:p,F=(_=qA(i,0,654183,0))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,p=F,F=qA(E,0,-997805,-1),u=h+u|0,v=p=p+F|0,l=p>>>0>>0?u+1|0:u,p=qA(g,0,-683901,-1),F=h,F=(p=(u=$>>>4&2097151)+p|0)>>>0>>0?F+1|0:F,u=(_=qA(B,0,136657,0))+p|0,p=h+F|0,p=u>>>0<_>>>0?p+1|0:p,F=(_=qA(C,P,-997805,-1))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,_=qA(i,0,470296,0),p=h+u|0,p=(F=_+F|0)>>>0<_>>>0?p+1|0:p,_=qA(E,0,654183,0),u=h+p|0,u=(F=_+F|0)>>>0<_>>>0?u+1|0:u,_=F,Y=u,$=u=u-((F>>>0<4293918720)-1|0)|0,p=(p=u>>21)+l|0,l=u=(F=(2097151&u)<<11|(X=F- -1048576|0)>>>21)+v|0,q=p=u>>>0>>0?p+1|0:p,d=u=p-((u>>>0<4293918720)-1|0)|0,p=H,H=(2097151&u)<<11|(v=l- -1048576|0)>>>21,u=(u>>21)+T|0,N=F=p+H|0,H=u=F>>>0>>0?u+1|0:u,u=qA(F,u,-683901,-1),F=h+M|0,T=p=u+V|0,M=p>>>0>>0?F+1|0:F,v=q-(((p=-2097152&v)>>>0>l>>>0)+d|0)|0,R=l-p|0,p=(F=qA(r,S,470296,0))+(k-(u=-2097152&L)|0)|0,u=h+(j-((2047&AA)+(u>>>0>k>>>0)|0)|0)|0,u=p>>>0>>0?u+1|0:u,F=qA(o,m,654183,0),u=h+u|0,u=(p=F+p|0)>>>0>>0?u+1|0:u,l=qA(a,G,-997805,-1),F=h+u|0,F=(p=l+p|0)>>>0>>0?F+1|0:F,u=(l=qA(N,H,136657,0))+p|0,p=h+F|0,p=u>>>0>>0?p+1|0:p,F=(l=qA(R,v,-683901,-1))+u|0,u=h+p|0,q=u=F>>>0>>0?u+1|0:u,d=u=u-((F>>>0<4293918720)-1|0)|0,p=(p=u>>21)+M|0,p=(u=(l=(2097151&u)<<11|(k=F- -1048576|0)>>>21)+T|0)>>>0>>0?p+1|0:p,l=u,M=p,T=u=p-((u>>>0<4293918720)-1|0)|0,j=(2097151&u)<<11|(L=l- -1048576|0)>>>21,u=(u>>21)+D|0,u=(V=j+EA|0)>>>0>>0?u+1|0:u,j=V,V=u,AA=l-(p=-2097152&L)|0,T=M-((p>>>0>l>>>0)+T|0)|0,IA=F-(p=-2097152&k)|0,q=q-((p>>>0>F>>>0)+d|0)|0,l=2097151&((1&(p=O))<<31|y>>>1),u=qA(r,S,666643,0)+l|0,p=h,p=u>>>0>>0?p+1|0:p,F=(l=qA(o,m,470296,0))+u|0,u=h+p|0,u=F>>>0>>0?u+1|0:u,l=qA(a,G,654183,0),p=h+u|0,p=(F=l+F|0)>>>0>>0?p+1|0:p,u=(l=qA(N,H,-997805,-1))+F|0,F=h+p|0,F=u>>>0>>0?F+1|0:F,p=(l=qA(R,v,136657,0))+u|0,u=h+F|0,k=p,l=p>>>0>>0?u+1|0:u,S=_-(p=-2097152&X)|0,M=Y-((p>>>0>_>>>0)+$|0)|0,p=qA(I,x,-683901,-1),u=h,u=(p=(F=K>>>7&2097151)+p|0)>>>0>>0?u+1|0:u,_=qA(g,0,136657,0),F=h+u|0,F=(p=_+p|0)>>>0<_>>>0?F+1|0:F,u=(_=qA(B,0,-997805,-1))+p|0,p=h+F|0,p=u>>>0<_>>>0?p+1|0:p,F=(_=qA(C,P,654183,0))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,_=qA(i,0,666643,0),p=h+u|0,p=(F=_+F|0)>>>0<_>>>0?p+1|0:p,_=qA(E,0,470296,0),u=h+p|0,p=u=(F=_+F|0)>>>0<_>>>0?u+1|0:u,u=U>>21,_=(U=(2097151&U)<<11|t>>>21)+F|0,F=p+u|0,X=F=_>>>0>>0?F+1|0:F,L=p=F-((_>>>0<4293918720)-1|0)|0,U=(2097151&p)<<11|(x=_- -1048576|0)>>>21,p=(p>>21)+M|0,O=F=U+S|0,U=p=F>>>0>>0?p+1|0:p,F=qA(F,p,-683901,-1),u=h+l|0,k=p=F+k|0,l=p>>>0>>0?u+1|0:u,p=qA(o,m,666643,0),F=h,F=(p=(u=Z>>>4&2097151)+p|0)>>>0>>0?F+1|0:F,u=(P=qA(a,G,470296,0))+p|0,p=h+F|0,p=u>>>0

>>0?p+1|0:p,F=(P=qA(N,H,654183,0))+u|0,u=h+p|0,u=F>>>0

>>0?u+1|0:u,p=F,F=qA(R,v,-997805,-1),u=h+u|0,u=(p=p+F|0)>>>0>>0?u+1|0:u,F=(P=qA(O,U,136657,0))+p|0,p=h+u|0,m=p=F>>>0

>>0?p+1|0:p,M=p=p-((F>>>0<4293918720)-1|0)|0,S=(2097151&p)<<11|(P=F- -1048576|0)>>>21,p=(p>>21)+l|0,k=p=(l=k=S+k|0)>>>0>>0?p+1|0:p,Y=p=p-((l>>>0<4293918720)-1|0)|0,K=(2097151&p)<<11|(S=l- -1048576|0)>>>21,p=(p>>21)+q|0,$=Z=K+IA|0,Z=K>>>0>Z>>>0?p+1|0:p,u=_-(p=-2097152&x)|0,_=X-((p>>>0>_>>>0)+L|0)|0,p=(p=b>>21)+_|0,_=u=(b=(2097151&b)<<11|e>>>21)+u|0,X=p=u>>>0>>0?p+1|0:p,L=u=p-((u>>>0<4293918720)-1|0)|0,b=p=u>>21,d=l,l=qA(K=(2097151&u)<<11|(x=_- -1048576|0)>>>21,p,-683901,-1),u=h+k|0,u=(p=d+l|0)>>>0>>0?u+1|0:u,q=p-(l=-2097152&S)|0,Y=u-((p>>>0>>0)+Y|0)|0,u=qA(K,b,136657,0)+F|0,p=m+h|0,p=u>>>0>>0?p+1|0:p,d=u-(F=-2097152&P)|0,IA=p-((u>>>0>>0)+M|0)|0,p=qA(a,G,666643,0),u=h,u=(p=(F=BA>>>7&2097151)+p|0)>>>0>>0?u+1|0:u,l=qA(N,H,470296,0),F=h+u|0,F=(p=l+p|0)>>>0>>0?F+1|0:F,u=(l=qA(R,v,654183,0))+p|0,p=h+F|0,p=u>>>0>>0?p+1|0:p,F=qA(O,U,-997805,-1),p=h+p|0,S=u=F+u|0,F=u>>>0>>0?p+1|0:p,l=2097151&((3&(p=z))<<30|c>>>2),p=qA(N,H,666643,0)+l|0,u=h,u=p>>>0>>0?u+1|0:u,l=qA(R,v,470296,0),u=h+u|0,u=(p=l+p|0)>>>0>>0?u+1|0:u,l=(k=qA(O,U,654183,0))+p|0,p=h+u|0,G=p=l>>>0>>0?p+1|0:p,P=p=p-((l>>>0<4293918720)-1|0)|0,u=S,S=(2097151&p)<<11|(k=l- -1048576|0)>>>21,p=(p>>21)+F|0,S=p=(F=H=u+S|0)>>>0>>0?p+1|0:p,m=p=p-((F>>>0<4293918720)-1|0)|0,z=(2097151&p)<<11|(H=F- -1048576|0)>>>21,p=(p>>21)+IA|0,p=(M=z+d|0)>>>0>>0?p+1|0:p,z=M,M=p,p=(u=qA(K,b,-997805,-1))+F|0,F=h+S|0,F=p>>>0>>0?F+1|0:F,BA=p-(u=-2097152&H)|0,d=F-((p>>>0>>0)+m|0)|0,p=qA(K,b,654183,0)+l|0,u=G+h|0,m=p-(F=-2097152&k)|0,N=(u=p>>>0>>0?u+1|0:u)-((p>>>0>>0)+P|0)|0,p=qA(R,v,666643,0),F=h,F=(p=(u=gA>>>5&2097151)+p|0)>>>0>>0?F+1|0:F,u=(l=qA(O,U,470296,0))+p|0,p=h+F|0,k=u,F=u>>>0>>0?p+1|0:p,l=2097151&f,u=qA(O,U,666643,0)+l|0,p=h,p=u>>>0>>0?p+1|0:p,l=u,G=p,U=p=p-((u>>>0<4293918720)-1|0)|0,F=(u=p>>21)+F|0,F=(p=(S=k)+(k=(2097151&p)<<11|(H=l- -1048576|0)>>>21)|0)>>>0>>0?F+1|0:F,k=p,P=F,S=p=F-((p>>>0<4293918720)-1|0)|0,v=(2097151&p)<<11|(F=k- -1048576|0)>>>21,p=(p>>21)+N|0,p=(m=v+m|0)>>>0>>0?p+1|0:p,v=m,m=p,p=qA(K,b,470296,0)+k|0,u=P+h|0,u=p>>>0>>0?u+1|0:u,k=p-(F&=-2097152)|0,F=u-((p>>>0>>0)+S|0)|0,S=k,u=(k=qA(K,b,666643,0))+(l-(p=-2097152&H)|0)|0,p=h+(G-((p>>>0>l>>>0)+U|0)|0)|0,p=u>>>0>>0?p+1|0:p,k=u,l=u,u=(u=p>>21)+F|0,H=p=S+(l=(2097151&p)<<11|l>>>21)|0,l=(2097151&(u=p>>>0>>0?u+1|0:u))<<11|(F=p)>>>21,F=(p=u>>21)+m|0,G=u=l+v|0,l=(2097151&(F=(p=u)>>>0>>0?F+1|0:F))<<11|p>>>21,p=(u=F>>21)+d|0,P=F=l+BA|0,l=(2097151&(p=(u=F)>>>0>>0?p+1|0:p))<<11|u>>>21,u=(F=p>>21)+M|0,S=p=l+z|0,F=p,p=(p=(u=p>>>0>>0?u+1|0:u)>>21)+Y|0,p=(u=(F=(2097151&u)<<11|F>>>21)+q|0)>>>0>>0?p+1|0:p,m=u,F=u,u=(u=p>>21)+Z|0,v=p=(F=(2097151&p)<<11|F>>>21)+$|0,l=(2097151&(u=p>>>0>>0?u+1|0:u))<<11|(F=p)>>>21,F=(p=u>>21)+T|0,M=u=l+AA|0,l=(2097151&(F=(p=u)>>>0>>0?F+1|0:F))<<11|p>>>21,p=(u=F>>21)+V|0,Y=F=l+j|0,l=(2097151&(p=(u=F)>>>0>>0?p+1|0:p))<<11|u>>>21,u=(F=p>>21)+QA|0,gA=p=l+CA|0,F=p,p=(p=(u=p>>>0>>0?u+1|0:u)>>21)+W|0,p=(u=(F=(2097151&u)<<11|F>>>21)+J|0)>>>0>>0?p+1|0:p,z=u,F=u,u=p>>21,p=(2097151&p)<<11|F>>>21,l=_-(F=-2097152&x)|0,F=(X-((F>>>0>_>>>0)+L|0)|0)+u|0,x=p=p+l|0,b=(2097151&(F=p>>>0>>0?F+1|0:F))<<11|p>>>21,l=p=F>>21,F=2097151&k,u=qA(b,p,666643,0)+F|0,p=h,k=u,_=p=u>>>0>>0?p+1|0:p,Q[0|A]=u,Q[A+1|0]=(255&p)<<24|u>>>8,F=2097151&H,p=qA(b,l,470296,0)+F|0,u=h,F=(_>>21)+(u=p>>>0>>0?u+1|0:u)|0,F=(H=(U=(2097151&_)<<11|k>>>21)+p|0)>>>0>>0?F+1|0:F,Q[A+4|0]=(2047&F)<<21|H>>>11,Q[A+3|0]=(7&F)<<29|H>>>3,G&=2097151,u=qA(b,l,654183,0)+G|0,p=h,p=u>>>0>>0?p+1|0:p,G=u,u=p,u=(p=F>>21)+u|0,u=(F=(U=G)+(G=(2097151&F)<<11|H>>>21)|0)>>>0>>0?u+1|0:u,G=F,p=u,Q[A+6|0]=(63&p)<<26|F>>>6,U=0,F=31&((65535&_)<<16|k>>>16),u=k=2097151&H,Q[A+2|0]=F|u<<5,_=2097151&P,F=qA(b,l,-997805,-1)+_|0,u=h,u=F>>>0<_>>>0?u+1|0:u,_=F,F=u,F=(u=p>>21)+F|0,u=p=(H=_)+(_=(2097151&p)<<11|G>>>21)|0,F=p>>>0<_>>>0?F+1|0:F,Q[A+9|0]=(511&F)<<23|p>>>9,Q[A+8|0]=(1&F)<<31|p>>>1,_=0,H=(p=G&=2097151)<<2,p=U,Q[A+5|0]=H|(524287&p)<<13|k>>>19,H=2097151&S,k=qA(b,l,136657,0)+H|0,p=h,p=k>>>0>>0?p+1|0:p,H=k,k=p,U=(2097151&(p=F))<<11|u>>>21,p=(F=p>>21)+k|0,p=(F=H=U+H|0)>>>0>>0?p+1|0:p,Q[A+12|0]=(4095&p)<<20|F>>>12,Q[A+11|0]=(15&p)<<28|F>>>4,k=0,S=(u=H=2097151&u)<<7,u=_,_=G,Q[A+7|0]=S|(16383&u)<<18|_>>>14,_=(u=qA(b,l,-683901,-1))+(l=2097151&m)|0,u=h,u=l>>>0>_>>>0?u+1|0:u,l=_,_=u,G=(2097151&(u=p))<<11|F>>>21,u=(p>>=21)+_|0,u=(p=l=G+l|0)>>>0>>0?u+1|0:u,Q[A+14|0]=(127&u)<<25|p>>>7,l=(F=G=2097151&F)<<4,F=k,Q[A+10|0]=l|(131071&F)<<15|H>>>17,k=(2097151&(F=u))<<11|p>>>21,F=(u>>=21)+(l=0)|0,F=(_=k+(2097151&v)|0)>>>0>>0?F+1|0:F,Q[A+17|0]=(1023&F)<<22|_>>>10,Q[A+16|0]=(3&F)<<30|_>>>2,k=0,u=(p=U=2097151&p)<<1,p=l,Q[A+13|0]=u|(1048575&p)<<12|G>>>20,p=u=F>>21,p=(F=(l=(2097151&F)<<11|_>>>21)+(2097151&M)|0)>>>0>>0?p+1|0:p,l=F,Q[A+20|0]=(8191&p)<<19|F>>>13,F=p,Q[A+19|0]=(31&p)<<27|l>>>5,H=0,u=(p=b=2097151&_)<<6,p=k,Q[A+15|0]=u|(32767&p)<<17|U>>>15,p=F>>21,G=_=(k=(2097151&F)<<11|l>>>21)+(2097151&Y)|0,_=_>>>0>>0?p+1|0:p,Q[A+21|0]=G,u=(p=l)<<3,p=H,Q[A+18|0]=u|(262143&p)<<14|b>>>18,u=G,Q[A+22|0]=(255&_)<<24|u>>>8,F=_>>21,F=(u=(l=(2097151&_)<<11|u>>>21)+(2097151&gA)|0)>>>0>>0?F+1|0:F,l=u,Q[A+25|0]=(2047&F)<<21|u>>>11,Q[A+24|0]=(7&F)<<29|u>>>3,p=u=F>>21,p=(F=(k=(2097151&F)<<11|l>>>21)+(2097151&z)|0)>>>0>>0?p+1|0:p,Q[A+27|0]=(63&p)<<26|F>>>6,k=0,u=l&=2097151,Q[A+23|0]=31&((65535&_)<<16|G>>>16)|u<<5,u=p>>21,u=(p=(H=(2097151&p)<<11|F>>>21)+(2097151&x)|0)>>>0>>0?u+1|0:u,Q[A+31|0]=(131071&u)<<15|p>>>17,Q[A+30|0]=(511&u)<<23|p>>>9,Q[A+29|0]=(1&u)<<31|p>>>1,_=0,u=(F=H=2097151&F)<<2,F=k,Q[A+26|0]=u|(524287&F)<<13|l>>>19,u=A,A=_,Q[u+28|0]=p<<7|(16383&A)<<18|H>>>14}function _(A,I,g,B,C,E,t,e,f,c,y,p){var u,F,l=0,_=0,H=0,G=0,U=0,m=0,M=0,P=0,Y=0,N=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0,cA=0,yA=0,sA=0,wA=0,DA=0,hA=0,uA=0;if(s=u=s+-64|0,F=k(f)){if(i[u+32>>2]=0,i[u+36>>2]=0,i[u+24>>2]=0,i[u+28>>2]=0,i[u+20>>2]=t,i[u+16>>2]=E,i[u+12>>2]=C,i[u+8>>2]=B,i[u+4>>2]=f,i[u>>2]=F,i[u+56>>2]=0,i[u+52>>2]=g,i[u+48>>2]=g,i[u+44>>2]=I,i[u+40>>2]=A,A=0,s=U=s-48|0,!((I=nA(u))||(I=-26,p-3>>>0<4294967294))){if(g=i[u+44>>2],I=i[u+48>>2],i[U>>2]=0,B=i[u+40>>2],i[U+28>>2]=I,i[U+12>>2]=-1,i[U+8>>2]=B,I=((B=g>>>0>(B=I<<3)>>>0?g:B)>>>0)/((g=I<<2)>>>0)|0,i[U+20>>2]=I,i[U+24>>2]=I<<2,i[U+16>>2]=r(I,g),I=i[u+52>>2],i[U+36>>2]=p,i[U+32>>2]=I,s=B=s-80|0,C=-25,!(!U|!u))if(I=k(i[U+20>>2]<<3),i[U+4>>2]=I,I){s=t=s-16|0,C=-22;A:if(!(!U|!(I=i[U+16>>2]))&&1024==(((E=I<<10)>>>0)/(I>>>0)|0)&&(I=k(12),i[U>>2]=I,I)){i[I>>2]=0,i[I+4>>2]=0,E>>>0>4294967168?I=48:(E>>>0>=4294967168?(i[8952]=48,g=0):(g=0,(I=k(76+(x=E>>>0<11?16:E+11&-8)|0))&&(g=I-8|0,63&I?(d=(-8&(M=i[(H=I-4|0)>>2]))-(m=(I=((I=(I+63&-64)-8|0)-g>>>0>15?0:64)+I|0)-g|0)|0,3&M?(i[I+4>>2]=d|1&i[I+4>>2]|2,i[4+(d=I+d|0)>>2]=1|i[d+4>>2],i[H>>2]=m|1&i[H>>2]|2,i[4+(d=g+m|0)>>2]=1|i[d+4>>2],v(g,m)):(g=i[g>>2],i[I+4>>2]=d,i[I>>2]=g+m)):I=g,3&(g=i[I+4>>2])&&((m=-8&g)>>>0<=x+16>>>0||(i[I+4>>2]=x|1&g|2,g=I+x|0,x=m-x|0,i[g+4>>2]=3|x,i[4+(m=I+m|0)>>2]=1|i[m+4>>2],v(g,x))),g=I+8|0)),(I=g)?(i[t+12>>2]=I,I=0):I=48),i[8952]=I;I:{if(I)i[t+12>>2]=0;else if(I=i[t+12>>2])break I;b(i[U>>2]),i[U>>2]=0;break A}i[i[U>>2]>>2]=I,i[i[U>>2]+4>>2]=I,i[i[U>>2]+8>>2]=E,C=0}if(s=t+16|0,C)RA(U,i[u+56>>2]);else{if(E=i[U+36>>2],t=I=s,s=I=I-448&-64,!B|!u||(OA(C=I- -64|0,0,0,64),bI(g=I+60|0,i[u+48>>2]),Cg(C,g,4,0),bI(g,i[u+4>>2]),Cg(C,g,4,0),bI(g,i[u+44>>2]),Cg(C,g,4,0),bI(g,i[u+40>>2]),Cg(C,g,4,0),bI(g,19),Cg(C,g,4,0),bI(g,E),Cg(C,g,4,0),bI(g,i[u+12>>2]),Cg(C,g,4,0),(g=i[u+8>>2])&&(Cg(I- -64|0,g,i[u+12>>2],0),1&Q[u+56|0]&&(Dg(i[u+8>>2],i[u+12>>2]),i[u+12>>2]=0)),bI(g=I+60|0,i[u+20>>2]),Cg(I- -64|0,g,4,0),(g=i[u+16>>2])&&Cg(I- -64|0,g,i[u+20>>2],0),bI(g=I+60|0,i[u+28>>2]),Cg(I- -64|0,g,4,0),(g=i[u+24>>2])&&(Cg(I- -64|0,g,i[u+28>>2],0),2&n[u+56|0]&&(Dg(i[u+24>>2],i[u+28>>2]),i[u+28>>2]=0)),bI(g=I+60|0,i[u+36>>2]),Cg(I- -64|0,g,4,0),(g=i[u+32>>2])&&Cg(I- -64|0,g,i[u+36>>2],0),UI(I- -64|0,B,64)),s=t,Dg(B- -64|0,8),C=0,s=I=s-1024|0,i[U+28>>2])for(E=B+68|0,g=B- -64|0;bI(g,0),bI(E,C),R(I,1024,B,72),KA(i[i[U>>2]+4>>2]+(r(i[U+24>>2],C)<<10)|0,I),bI(g,1),R(I,1024,B,72),KA(1024+(i[i[U>>2]+4>>2]+(r(i[U+24>>2],C)<<10)|0)|0,I),(C=C+1|0)>>>0>2];);Dg(I,1024),s=I+1024|0,Dg(B,72),C=0}}else C=-22;if(s=B+80|0,!(I=C)){if(i[U+8>>2])for(;;){if(B=A,cA=0,s=C=s-32|0,!(!U|!i[U+28>>2]))for(i[C+16>>2]=B,I=1;;){if(Q[C+24|0]=cA,yA=0,A=0,I)for(;;){i[C+28>>2]=0,A=i[C+28>>2],i[C+8>>2]=i[C+24>>2],i[C+12>>2]=A,i[C+20>>2]=yA,A=i[C+20>>2],i[C>>2]=i[C+16>>2],i[C+4>>2]=A,A=0;A:if(U){I:{if(2==i[U+36>>2]){if(sA=i[U+4>>2],wA=1,(t=i[C>>2])|(E=n[C+8|0])>>>0>1)break I}else sA=i[U+4>>2];if(s=I=s-4096|0,wg(I+3072|0),wg(I+2048|0),!(!U|!C)&&(i[I+2048>>2]=i[C>>2],i[I+2052>>2]=0,i[I+2056>>2]=i[C+4>>2],i[I+2060>>2]=0,i[I+2064>>2]=n[C+8|0],i[I+2068>>2]=0,i[I+2072>>2]=i[U+16>>2],i[I+2076>>2]=0,i[I+2080>>2]=i[U+8>>2],i[I+2084>>2]=0,i[I+2088>>2]=i[U+36>>2],i[I+2092>>2]=0,i[U+20>>2]))for(;(g=127&A)||(t=E=i[I+2100>>2],H=E+1|0,t=(E=i[I+2096>>2]+1|0)?t:H,i[I+2096>>2]=E,i[I+2100>>2]=t,wg(I),wg(E=I+1024|0),S(t=I+3072|0,I+2048|0,I),S(t,I,E)),E=i[4+(g=(I+1024|0)+(g<<3)|0)>>2],i[(t=(A<<3)+sA|0)>>2]=i[g>>2],i[t+4>>2]=E,(A=A+1|0)>>>0>2];);s=I+4096|0,E=n[C+8|0],t=i[C>>2],wA=0}if(A=255&E,!((t=t?0:!A<<1)>>>0>=(g=i[U+20>>2])>>>0))for(I=i[U+24>>2],A=(E=(r(I,i[C+4>>2])+t|0)+r(A,g)|0)+((E>>>0)%(I>>>0)|0?-1:I-1|0)|0;;){DA=1==((E>>>0)%(I>>>0)|0)?E-1|0:A,x=i[U+28>>2],wA?(A=i[U>>2],m=i[A+4>>2]+(DA<<10)|0):(A=i[U>>2],m=(t<<3)+sA|0),g=i[m>>2],m=i[m+4>>2],i[C+12>>2]=t,x=(m>>>0)%(x>>>0)|0,m=i[C+4>>2],d=n[C+8|0]?x:m,_=i[A+4>>2],G=i[C>>2],Y=_+(r(I,A=G?x:d)<<10)|0,A=(0|A)==(0|m);I:if(i[C>>2])I=i[U+24>>2],x=i[U+20>>2],I=A?i[C+12>>2]+(I+(-1^x)|0)|0:(I-x|0)-!i[C+12>>2]|0,H=0,3!=(0|(A=n[C+8|0]))&&(H=r(x,A+1|0));else{if(!(I=n[C+8|0])){I=i[C+12>>2]-1|0,H=0;break I}if(I=r(I,i[U+20>>2]),x=i[C+12>>2],A){I=(I+x|0)-1|0,H=0;break I}I=I-!x|0,H=0}A=H+(d=I-1|0)|0,qA(g,0,g,0),qA(I,0,h,0),m=A-(I=h)|0,x=i[U+24>>2],l=0;I:{g:{B:{C:{Q:{E:{i:{n:{a:{r:{if(I=(A>>>0>>0)-(A>>>0>>0)|0){if(!x)break r;break a}w=m-r((m>>>0)/(x>>>0)|0,x)|0,D=0,h=0;break I}if(!m)break n;break i}if(!((A=x-1|0)&x))break E;H=0-(d=(o(x)+33|0)-o(I)|0)|0;break C}w=0,D=I,h=0;break I}if((A=32-o(I)|0)>>>0<31)break Q;break B}if(w=A&m,D=0,1==(0|x))break g;A=x?31-o(x-1^x)|0:32,h=(63&A)>>>0>=32?0:I>>>A|0;break I}d=A+1|0,H=63-A|0}if(g=31&(A=63&d),A>>>0>=32?(A=0,M=I>>>g|0):(A=I>>>g|0,M=((1<>>g),g=A,H=31&(A=63&H),A>>>0>=32?(A=m<>>32-H|I<>>31)-(X=x&(L=N-((g=g<<1|M>>>31)+(A>>>0>H>>>0)|0)>>31))|0,g=g-(A>>>0>>0)|0,I=I<<1|m>>>31,m=l|m<<1,l=1&L,d=d-1|0;);w=M,D=g,h=I<<1|m>>>31;break I}w=m,D=I,I=0}h=I}if(h=D,A=(w<<10)+Y|0,x=_+(DA<<10)|0,g=_+(E<<10)|0,G)S(x,A,g);else{for(s=I=s-2048|0,yg(m=I+1024|0,A),AI(m,x),yg(I,m),x=0,m=0;H=i[(d=(A=(I+1024|0)+(m<<7)|0)- -64|0)>>2],M=i[A+100>>2],P=H,N=i[d+4>>2],J=i[A+96>>2],H=i[A+32>>2],_=i[A+36>>2],M=pA(J^(l=CI(i[A>>2],i[A+4>>2],H,_)),M^(G=h),32),_=pA(P=(N=CI(P,N,M,Y=h))^H,_^(H=h),24),P=H,AA=pA((X=CI(l,G,_,H=h))^M,(T=h)^Y,16),H=pA(_^(gA=CI(N,P,AA,IA=h)),(rA=h)^H,63),M=h,_=i[A+108>>2],K=i[A+72>>2],J=i[A+76>>2],P=i[A+104>>2],l=i[A+40>>2],G=i[A+44>>2],_=pA(P^(Y=CI(i[A+8>>2],i[A+12>>2],l,G)),_^(N=h),32),G=pA(P=(BA=CI(K,J,_,L=h))^l,G^(l=h),24),J=BA,tA=pA((P=_)^(BA=CI(Y,N,G,_=h)),(oA=h)^L,16),_=pA(G^(CA=CI(J,l,tA,eA=h)),(QA=h)^_,63),l=h,G=i[A+116>>2],K=i[A+80>>2],J=i[A+84>>2],P=i[A+112>>2],Y=i[A+48>>2],N=i[A+52>>2],G=pA(P^(L=CI(i[A+16>>2],i[A+20>>2],Y,N)),G^(j=h),32),N=pA(J=(P=CI(K,J,G,EA=h))^Y,N^(Y=h),24),K=P,J=Y,EA=pA(G^(j=CI(L,j,N,Y=h)),EA^(P=h),16),G=pA(N^(J=CI(K,J,EA,iA=h)),(W=h)^Y,63),Y=h,N=i[A+124>>2],aA=i[A+88>>2],O=i[A+92>>2],K=i[A+120>>2],L=i[A+56>>2],V=i[A+60>>2],N=pA(K^(q=CI(i[A+24>>2],i[A+28>>2],L,V)),N^(z=h),32),O=V=pA(K=(fA=CI(aA,O,N,$=h))^L,V^(L=h),24),z=pA((K=N)^(V=CI(q,z,V,N=h)),(q=h)^$,16),N=pA(O^(fA=CI(fA,L,z,$=h)),(aA=h)^N,63),L=h,O=J,K=W,J=pA(z^(X=CI(X,T,_,l)),$^(T=h),32),_=pA((z=CI(O,K,J,W=h))^_,(K=l)^(l=h),24),T=CI(K=X,T,_,X=h),i[A>>2]=T,$=h,i[A+4>>2]=$,T=pA(T^J,W^$,16),i[A+120>>2]=T,J=h,i[A+124>>2]=J,l=CI(z,l,T,J),i[A+80>>2]=l,T=h,i[A+84>>2]=T,hA=A,uA=pA(_^l,X^T,63),i[hA+40>>2]=uA,i[A+44>>2]=h,T=pA(AA^(l=CI(BA,oA,G,Y)),IA^(X=h),32),_=pA(J=G^(IA=CI(fA,aA,T,AA=h)),Y^(G=h),24),Y=CI(J=l,X,_,l=h),i[A+8>>2]=Y,X=h,i[A+12>>2]=X,Y=pA(Y^T,X^AA,16),i[A+96>>2]=Y,X=h,i[A+100>>2]=X,G=CI(IA,G,Y,X),i[A+88>>2]=G,Y=h,i[A+92>>2]=Y,hA=A,uA=pA(_^G,l^Y,63),i[hA+48>>2]=uA,i[A+52>>2]=h,Y=pA(tA^(l=CI(j,P,N,L)),eA^(G=h),32),_=pA(P=N^(T=CI(gA,rA,Y,X=h)),L^(N=h),24),G=CI(P=l,G,_,l=h),i[A+16>>2]=G,L=h,i[A+20>>2]=L,G=pA(G^Y,L^X,16),i[A+104>>2]=G,Y=h,i[A+108>>2]=Y,G=CI(T,N,G,Y),i[d>>2]=G,P=d,d=h,i[P+4>>2]=d,hA=A,uA=pA(_^G,l^d,63),i[hA+56>>2]=uA,i[A+60>>2]=h,_=CI(V,q,H,M),N=CI(CA,QA,G=pA(EA^_,iA^(l=h),32),Y=h),_=CI(_,l,d=pA(P=H^N,M^(H=h),24),M=h),i[A+24>>2]=_,l=h,i[A+28>>2]=l,_=pA(_^G,l^Y,16),i[A+112>>2]=_,l=h,i[A+116>>2]=l,H=CI(N,H,_,l),i[A+72>>2]=H,_=h,i[A+76>>2]=_,hA=A,uA=pA(H^d,_^M,63),i[hA+32>>2]=uA,i[A+36>>2]=h,8!=(0|(m=m+1|0)););for(;m=i[512+(A=(I+1024|0)+(x<<4)|0)>>2],d=i[A+772>>2],P=m,J=i[A+516>>2],l=i[A+768>>2],m=i[A+256>>2],H=i[A+260>>2],d=pA(l^(M=CI(i[A>>2],i[A+4>>2],m,H)),d^(_=h),32),H=pA(P=(G=CI(P,J,d,l=h))^m,H^(m=h),24),P=m,X=pA((N=CI(M,_,H,m=h))^d,(L=h)^l,16),m=pA(H^(AA=CI(G,P,X,T=h)),(IA=h)^m,63),d=h,H=i[A+780>>2],K=i[A+520>>2],J=i[A+524>>2],P=i[A+776>>2],M=i[A+264>>2],_=i[A+268>>2],H=pA(P^(l=CI(i[A+8>>2],i[A+12>>2],M,_)),H^(G=h),32),_=pA(P=(gA=CI(K,J,H,Y=h))^M,_^(M=h),24),J=gA,BA=pA((P=H)^(gA=CI(l,G,_,H=h)),(rA=h)^Y,16),H=pA(_^(tA=CI(J,M,BA,oA=h)),(eA=h)^H,63),M=h,_=i[A+900>>2],K=i[A+640>>2],J=i[A+644>>2],P=i[A+896>>2],l=i[A+384>>2],G=i[A+388>>2],_=pA(P^(Y=CI(i[A+128>>2],i[A+132>>2],l,G)),_^(CA=h),32),G=pA(P=(j=CI(K,J,_,QA=h))^l,G^(l=h),24),J=j,P=l,QA=pA(_^(CA=CI(Y,CA,G,l=h)),QA^(j=h),16),_=pA(G^(P=CI(J,P,QA,EA=h)),(iA=h)^l,63),l=h,G=i[A+908>>2],aA=i[A+648>>2],O=i[A+652>>2],K=i[A+904>>2],Y=i[A+392>>2],J=i[A+396>>2],G=pA(K^(W=CI(i[A+136>>2],i[A+140>>2],Y,J)),G^(V=h),32),O=J=pA(K=(z=CI(aA,O,G,q=h))^Y,J^(Y=h),24),V=pA((K=G)^(J=CI(W,V,J,G=h)),(W=h)^q,16),G=pA(O^(z=CI(z,Y,V,q=h)),($=h)^G,63),Y=h,O=P,K=iA,P=pA(V^(N=CI(N,L,H,M)),q^(L=h),32),H=pA((V=CI(O,K,P,iA=h))^H,(K=M)^(M=h),24),L=CI(K=N,L,H,N=h),i[A>>2]=L,q=h,i[A+4>>2]=q,L=pA(L^P,q^iA,16),i[A+904>>2]=L,P=h,i[A+908>>2]=P,M=CI(V,M,L,P),i[A+640>>2]=M,L=h,i[A+644>>2]=L,hA=A,uA=pA(H^M,N^L,63),i[hA+264>>2]=uA,i[A+268>>2]=h,L=pA(X^(M=CI(gA,rA,_,l)),T^(N=h),32),H=pA(H=_^(T=CI(z,$,L,X=h)),l^(_=h),24),l=CI(l=M,N,H,M=h),i[A+8>>2]=l,N=h,i[A+12>>2]=N,l=pA(l^L,N^X,16),i[A+768>>2]=l,N=h,i[A+772>>2]=N,_=CI(T,_,l,N),i[A+648>>2]=_,l=h,i[A+652>>2]=l,hA=A,uA=pA(_^H,l^M,63),i[hA+384>>2]=uA,i[A+388>>2]=h,M=CI(CA,j,G,Y),L=CI(AA,IA,l=pA(BA^M,oA^(_=h),32),N=h),_=CI(P=M,_,H=pA(H=G^L,Y^(G=h),24),M=h),i[A+128>>2]=_,Y=h,i[A+132>>2]=Y,_=pA(_^l,Y^N,16),i[A+776>>2]=_,l=h,i[A+780>>2]=l,_=CI(L,G,_,l),i[A+512>>2]=_,l=h,i[A+516>>2]=l,hA=A,uA=pA(_^H,l^M,63),i[hA+392>>2]=uA,i[A+396>>2]=h,_=pA(QA^(H=CI(J,W,m,d)),EA^(M=h),32),m=pA((G=CI(tA,eA,_,l=h))^m,(P=d)^(d=h),24),M=CI(P=H,M,m,H=h),i[A+136>>2]=M,Y=h,i[A+140>>2]=Y,M=pA(_^M,l^Y,16),i[A+896>>2]=M,_=h,i[A+900>>2]=_,d=CI(G,d,M,_),i[A+520>>2]=d,M=h,i[A+524>>2]=M,hA=A,uA=pA(m^d,H^M,63),i[hA+256>>2]=uA,i[A+260>>2]=h,8!=(0|(x=x+1|0)););yg(g,I),AI(g,I+1024|0),s=I+2048|0}if((t=t+1|0)>>>0>=a[U+20>>2])break A;E=E+1|0,A=DA+1|0,I=i[U+24>>2]}}if(!((A=i[U+28>>2])>>>0>(yA=yA+1|0)>>>0))break}if(I=A,4==(0|(cA=cA+1|0)))break}if(s=C+32|0,!((A=B+1|0)>>>0>2]))break}if(s=I=s-2048|0,!(!u|!U)){if(yg(I+1024|0,(i[i[U>>2]+4>>2]+(i[U+24>>2]<<10)|0)-1024|0),a[U+28>>2]>=2)for(A=1;g=i[U+24>>2],AI(I+1024|0,(i[i[U>>2]+4>>2]+(r(g,A)+g<<10)|0)-1024|0),(A=A+1|0)>>>0>2];);for(g=I+1024|0,A=0;QI(C=(B=A<<3)+I|0,i[(B=g+B|0)>>2],i[B+4>>2]),128!=(0|(A=A+1|0)););R(i[u>>2],i[u+4>>2],I,1024),Dg(g,1024),Dg(I,1024),RA(U,i[u+56>>2])}s=I+2048|0,I=0}}s=U+48|0,g=I;A:if(I)Dg(F,f);else{if(!(!c|!y)){s=A=s-16|0,I=-31;I:{g:{B:{C:switch(p-1|0){case 1:if(y>>>0<13)break g;I=n[1347]|n[1348]<<8|n[1349]<<16|n[1350]<<24,g=n[1343]|n[1344]<<8|n[1345]<<16|n[1346]<<24,Q[0|c]=g,Q[c+1|0]=g>>>8,Q[c+2|0]=g>>>16,Q[c+3|0]=g>>>24,Q[c+4|0]=I,Q[c+5|0]=I>>>8,Q[c+6|0]=I>>>16,Q[c+7|0]=I>>>24,I=n[1352]|n[1353]<<8|n[1354]<<16|n[1355]<<24,g=n[1348]|n[1349]<<8|n[1350]<<16|n[1351]<<24,Q[c+5|0]=g,Q[c+6|0]=g>>>8,Q[c+7|0]=g>>>16,Q[c+8|0]=g>>>24,Q[c+9|0]=I,Q[c+10|0]=I>>>8,Q[c+11|0]=I>>>16,Q[c+12|0]=I>>>24,B=-12,g=12;break B;case 0:break C;default:break I}if(y>>>0<12)break g;I=n[1335]|n[1336]<<8|n[1337]<<16|n[1338]<<24,g=n[1331]|n[1332]<<8|n[1333]<<16|n[1334]<<24,Q[0|c]=g,Q[c+1|0]=g>>>8,Q[c+2|0]=g>>>16,Q[c+3|0]=g>>>24,Q[c+4|0]=I,Q[c+5|0]=I>>>8,Q[c+6|0]=I>>>16,Q[c+7|0]=I>>>24,I=n[1339]|n[1340]<<8|n[1341]<<16|n[1342]<<24,Q[c+8|0]=I,Q[c+9|0]=I>>>8,Q[c+10|0]=I>>>16,Q[c+11|0]=I>>>24,B=-11,g=11}if(I=nA(u))break I;if(dA(I=A+5|0,19),!((B=B+y|0)>>>0<=(I=mA(I))>>>0)&&(g=eI(g+c|0,A+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(Q[0|(I=I+g|0)]=36,Q[I+1|0]=109,Q[I+2|0]=61,Q[I+3|0]=0,dA(g=A+5|0,i[u+44>>2]),!((B=B-3|0)>>>0<=(g=mA(g))>>>0)&&(I=eI(I+3|0,A+5|0,g+1|0),!((B=B-g|0)>>>0<4)&&(Q[0|(I=I+g|0)]=44,Q[I+1|0]=116,Q[I+2|0]=61,Q[I+3|0]=0,dA(g=A+5|0,i[u+40>>2]),!((B=B-3|0)>>>0<=(g=mA(g))>>>0)&&(I=eI(I+3|0,A+5|0,g+1|0),!((B=B-g|0)>>>0<4)&&(Q[0|(I=I+g|0)]=44,Q[I+1|0]=112,Q[I+2|0]=61,Q[I+3|0]=0,dA(g=A+5|0,i[u+48>>2]),!((B=B-3|0)>>>0<=(g=mA(g))>>>0)&&(I=eI(I+3|0,A+5|0,g+1|0),!((B=B-g|0)>>>0<2)&&(Q[0|(I=I+g|0)]=36,Q[I+1|0]=0,Z(g=I+1|0,B=B-1|0,i[u+16>>2],i[u+20>>2],3)))))))))){if(I=-31,(C=(C=B)-(B=mA(g))|0)>>>0<2)break I;Q[0|(I=g+B|0)]=36,Q[I+1|0]=0,I=Z(I+1|0,C-1|0,i[u>>2],i[u+4>>2],3)?0:-31;break I}}I=-31}if(s=A+16|0,I){Dg(F,f),Dg(c,y),g=-31;break A}}e&&eI(e,F,f),Dg(F,f),g=0}b(F)}else g=-22;return s=u- -64|0,g}function k(A){var I,g=0,B=0,C=0,Q=0,E=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0;s=I=s-16|0;A:{I:{g:{B:{C:{Q:{E:{i:{n:{a:{r:{if((A|=0)>>>0<=244){if(3&(g=(Q=i[8965])>>>(B=(r=A>>>0<11?16:A+11&-8)>>>3|0)|0)){A=(E=i[35908+(g=(C=B+(1&(-1^g))|0)<<3)>>2])+8|0,(0|(B=i[E+8>>2]))!=(0|(g=g+35900|0))?(i[B+12>>2]=g,i[g+8>>2]=B):(c=35860,y=lI(-2,C)&Q,i[c>>2]=y),g=C<<3,i[E+4>>2]=3|g,i[4+(g=g+E|0)>>2]=1|i[g+4>>2];break A}if((f=i[8967])>>>0>=r>>>0)break r;if(g){B=A=(g=(0-(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,e=i[35908+(A=(B=((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)|0)<<3)>>2],(0|(g=i[e+8>>2]))!=(0|(A=A+35900|0))?(i[g+12>>2]=A,i[A+8>>2]=g):(Q=lI(-2,B)&Q,i[8965]=Q),A=e+8|0,i[e+4>>2]=3|r,E=(g=B<<3)-r|0,i[4+(C=r+e|0)>>2]=1|E,i[g+e>>2]=E,f&&(B=35900+((g=f>>>3|0)<<3)|0,e=i[8970],(g=1<>2]:(i[8965]=g|Q,g=B),i[B+8>>2]=e,i[g+12>>2]=e,i[e+12>>2]=B,i[e+8>>2]=g),i[8970]=C,i[8967]=E;break A}if(!(o=i[8966]))break r;for(B=A=(g=(0-o&o)-1|0)>>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,g=i[36164+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2],C=(-8&i[g+4>>2])-r|0,B=g;(A=i[B+16>>2])||(A=i[B+20>>2]);)C=(E=(B=(-8&i[A+4>>2])-r|0)>>>0>>0)?B:C,g=E?A:g,B=A;if(t=i[g+24>>2],(0|(E=i[g+12>>2]))!=(0|g)){A=i[g+8>>2],i[A+12>>2]=E,i[E+8>>2]=A;break I}if(!(A=i[(B=g+20|0)>>2])){if(!(A=i[g+16>>2]))break a;B=g+16|0}for(;e=B,E=A,(A=i[(B=A+20|0)>>2])||(B=E+16|0,A=i[E+16>>2]););i[e>>2]=0;break I}if(r=-1,!(A>>>0>4294967231)&&(r=-8&(A=A+11|0),t=i[8966])){C=0-r|0,Q=0,r>>>0<256||(Q=31,r>>>0>16777215||(A=A>>>8|0,A<<=e=A+1048320>>>16&8,Q=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|e)|0)<<1|r>>>A+21&1)|0));o:{t:{if(B=i[36164+(Q<<2)>>2])for(A=0,g=r<<(31==(0|Q)?0:25-(Q>>>1|0)|0);;){if(!((e=(o=-8&i[B+4>>2])-r|0)>>>0>=C>>>0)&&(C=e,E=B,(0|r)==(0|o))){C=0,A=B;break t}if(e=i[B+20>>2],B=i[16+((g>>>29&4)+B|0)>>2],A=e?(0|e)==(0|B)?A:e:A,g<<=1,!B)break}else A=0;if(!(A|E)){if(E=0,!(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,A=i[36164+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2]}if(!A)break o}for(;C=(B=(g=(-8&i[A+4>>2])-r|0)>>>0>>0)?g:C,E=B?A:E,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!E|i[8967]-r>>>0<=C>>>0)){if(Q=i[E+24>>2],(0|E)!=(0|(g=i[E+12>>2]))){A=i[E+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;break g}if(!(A=i[(B=E+20|0)>>2])){if(!(A=i[E+16>>2]))break n;B=E+16|0}for(;e=B,g=A,(A=i[(B=A+20|0)>>2])||(B=g+16|0,A=i[g+16>>2]););i[e>>2]=0;break g}}}if((B=i[8967])>>>0>=r>>>0){C=i[8970],(g=B-r|0)>>>0>=16?(i[8967]=g,A=C+r|0,i[8970]=A,i[A+4>>2]=1|g,i[B+C>>2]=g,i[C+4>>2]=3|r):(i[8970]=0,i[8967]=0,i[C+4>>2]=3|B,i[4+(A=B+C|0)>>2]=1|i[A+4>>2]),A=C+8|0;break A}if((t=i[8968])>>>0>r>>>0){g=t-r|0,i[8968]=g,A=(B=i[8971])+r|0,i[8971]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|r,A=B+8|0;break A}if(A=0,o=r+47|0,i[9083]?B=i[9085]:(i[9086]=-1,i[9087]=-1,i[9084]=4096,i[9085]=4096,i[9083]=I+12&-16^1431655768,i[9088]=0,i[9076]=0,B=4096),(B=(e=o+B|0)&(E=0-B|0))>>>0<=r>>>0)break A;if((C=i[9075])&&(Q=(g=i[9073])+B|0)>>>0>C>>>0|g>>>0>=Q>>>0)break A;if(4&n[36304])break Q;r:{o:{if(C=i[8971])for(A=36308;;){if((g=i[A>>2])>>>0<=C>>>0&C>>>0>2]>>>0)break o;if(!(A=i[A+8>>2]))break}if(-1==(0|(g=$A(0))))break E;if(Q=B,(A=(C=i[9084])-1|0)&g&&(Q=(B-g|0)+(A+g&0-C)|0),Q>>>0<=r>>>0|Q>>>0>2147483646)break E;if((C=i[9075])&&C>>>0<(E=(A=i[9073])+Q|0)>>>0|A>>>0>=E>>>0)break E;if((0|g)!=(0|(A=$A(Q))))break r;break C}if((Q=E&e-t)>>>0>2147483646)break E;if((0|(g=$A(Q)))==(i[A>>2]+i[A+4>>2]|0))break i;A=g}if(!(-1==(0|A)|r+48>>>0<=Q>>>0)){if((g=(g=i[9085])+(o-Q|0)&0-g)>>>0>2147483646){g=A;break C}if(-1!=(0|$A(g))){Q=g+Q|0,g=A;break C}$A(0-Q|0);break E}if(g=A,-1!=(0|A))break C;break E}E=0;break I}g=0;break g}if(-1!=(0|g))break C}i[9076]=4|i[9076]}if(B>>>0>2147483646)break B;if(-1==(0|(g=$A(B)))|-1==(0|(A=$A(0)))|A>>>0<=g>>>0)break B;if((Q=A-g|0)>>>0<=r+40>>>0)break B}A=i[9073]+Q|0,i[9073]=A,A>>>0>a[9074]&&(i[9074]=A);C:{Q:{E:{if(o=i[8971]){for(A=36308;;){if(((C=i[A>>2])+(B=i[A+4>>2])|0)==(0|g))break E;if(!(A=i[A+8>>2]))break}break Q}for((A=i[8969])>>>0<=g>>>0&&A||(i[8969]=g),A=0,i[9078]=Q,i[9077]=g,i[8973]=-1,i[8974]=i[9083],i[9080]=0;B=35900+(C=A<<3)|0,i[C+35908>>2]=B,i[C+35912>>2]=B,32!=(0|(A=A+1|0)););B=(C=Q-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8968]=B,A=A+g|0,i[8971]=A,i[A+4>>2]=1|B,i[4+(g+C|0)>>2]=40,i[8972]=i[9087];break C}if(!(8&n[A+12|0]|C>>>0>o>>>0|g>>>0<=o>>>0)){i[A+4>>2]=B+Q,B=(A=o+8&7?-8-o&7:0)+o|0,i[8971]=B,A=(g=i[8968]+Q|0)-A|0,i[8968]=A,i[B+4>>2]=1|A,i[4+(g+o|0)>>2]=40,i[8972]=i[9087];break C}}a[8969]>g>>>0&&(i[8969]=g),B=g+Q|0,A=36308;Q:{E:{i:{n:{a:{r:{for(;;){if((0|B)!=i[A>>2]){if(A=i[A+8>>2])continue;break r}break}if(!(8&n[A+12|0]))break a}for(A=36308;;){if((B=i[A>>2])>>>0<=o>>>0&&(E=B+i[A+4>>2]|0)>>>0>o>>>0)break n;A=i[A+8>>2]}}if(i[A>>2]=g,i[A+4>>2]=i[A+4>>2]+Q,i[4+(e=(g+8&7?-8-g&7:0)+g|0)>>2]=3|r,r=(Q=B+(B+8&7?-8-B&7:0)|0)-(t=r+e|0)|0,(0|Q)==(0|o)){i[8971]=t,A=i[8968]+r|0,i[8968]=A,i[t+4>>2]=1|A;break E}if(i[8970]==(0|Q)){i[8970]=t,A=i[8967]+r|0,i[8967]=A,i[t+4>>2]=1|A,i[A+t>>2]=A;break E}if(1==(3&(A=i[Q+4>>2]))){E=-8&A;a:if(A>>>0<=255){if(B=i[Q+8>>2],A=A>>>3|0,(0|(g=i[Q+12>>2]))==(0|B)){c=35860,y=i[8965]&lI(-2,A),i[c>>2]=y;break a}i[B+12>>2]=g,i[g+8>>2]=B}else{if(o=i[Q+24>>2],(0|Q)==(0|(g=i[Q+12>>2])))if((C=i[(A=Q+20|0)>>2])||(C=i[(A=Q+16|0)>>2])){for(;B=A,(C=i[(A=(g=C)+20|0)>>2])||(A=g+16|0,C=i[g+16>>2]););i[B>>2]=0}else g=0;else A=i[Q+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;if(o){B=i[Q+28>>2];r:{if(i[(A=36164+(B<<2)|0)>>2]==(0|Q)){if(i[A>>2]=g,g)break r;c=35864,y=i[8966]&lI(-2,B),i[c>>2]=y;break a}if(i[o+(i[o+16>>2]==(0|Q)?16:20)>>2]=g,!g)break a}i[g+24>>2]=o,(A=i[Q+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[Q+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}}r=E+r|0,Q=Q+E|0}if(i[Q+4>>2]=-2&i[Q+4>>2],i[t+4>>2]=1|r,i[r+t>>2]=r,r>>>0<=255){g=35900+((A=r>>>3|0)<<3)|0,(B=i[8965])&(A=1<>2]:(i[8965]=A|B,A=g),i[g+8>>2]=t,i[A+12>>2]=t,i[t+12>>2]=g,i[t+8>>2]=A;break E}if(A=31,r>>>0<=16777215&&(A=r>>>8|0,A<<=C=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|C)|0)<<1|r>>>A+21&1)|0),i[t+28>>2]=A,i[t+16>>2]=0,i[t+20>>2]=0,C=36164+(A<<2)|0,(B=i[8966])&(g=1<>>1|0)|0),g=i[C>>2];;){if(B=g,(-8&i[g+4>>2])==(0|r))break i;if(g=A>>>29|0,A<<=1,!(g=i[16+(C=B+(4&g)|0)>>2]))break}i[C+16>>2]=t,i[t+24>>2]=B}else i[8966]=g|B,i[C>>2]=t,i[t+24>>2]=C;i[t+12>>2]=t,i[t+8>>2]=t;break E}for(B=(C=Q-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8968]=B,A=A+g|0,i[8971]=A,i[A+4>>2]=1|B,i[4+(g+C|0)>>2]=40,i[8972]=i[9087],i[(B=(A=(E+(E-39&7?39-E&7:0)|0)-47|0)>>>0>>0?o:A)+4>>2]=27,A=i[9080],i[B+16>>2]=i[9079],i[B+20>>2]=A,A=i[9078],i[B+8>>2]=i[9077],i[B+12>>2]=A,i[9079]=B+8,i[9078]=Q,i[9077]=g,i[9080]=0,A=B+24|0;i[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)==(0|o))break C;if(i[B+4>>2]=-2&i[B+4>>2],E=B-o|0,i[o+4>>2]=1|E,i[B>>2]=E,E>>>0<=255){g=35900+((A=E>>>3|0)<<3)|0,(B=i[8965])&(A=1<>2]:(i[8965]=A|B,A=g),i[g+8>>2]=o,i[A+12>>2]=o,i[o+12>>2]=g,i[o+8>>2]=A;break C}if(A=31,i[o+16>>2]=0,i[o+20>>2]=0,E>>>0<=16777215&&(A=E>>>8|0,A<<=C=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|C)|0)<<1|E>>>A+21&1)|0),i[o+28>>2]=A,C=36164+(A<<2)|0,(B=i[8966])&(g=1<>>1|0)|0),g=i[C>>2];;){if(B=g,(0|E)==(-8&i[g+4>>2]))break Q;if(g=A>>>29|0,A<<=1,!(g=i[16+(C=B+(4&g)|0)>>2]))break}i[C+16>>2]=o,i[o+24>>2]=B}else i[8966]=g|B,i[C>>2]=o,i[o+24>>2]=C;i[o+12>>2]=o,i[o+8>>2]=o;break C}A=i[B+8>>2],i[A+12>>2]=t,i[B+8>>2]=t,i[t+24>>2]=0,i[t+12>>2]=B,i[t+8>>2]=A}A=e+8|0;break A}A=i[B+8>>2],i[A+12>>2]=o,i[B+8>>2]=o,i[o+24>>2]=0,i[o+12>>2]=B,i[o+8>>2]=A}if(!((A=i[8968])>>>0<=r>>>0)){g=A-r|0,i[8968]=g,A=(B=i[8971])+r|0,i[8971]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|r,A=B+8|0;break A}}i[8952]=48,A=0;break A}g:if(Q){B=i[E+28>>2];B:{if(i[(A=36164+(B<<2)|0)>>2]==(0|E)){if(i[A>>2]=g,g)break B;t=lI(-2,B)&t,i[8966]=t;break g}if(i[Q+(i[Q+16>>2]==(0|E)?16:20)>>2]=g,!g)break g}i[g+24>>2]=Q,(A=i[E+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[E+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}g:if(C>>>0<=15)A=C+r|0,i[E+4>>2]=3|A,i[4+(A=A+E|0)>>2]=1|i[A+4>>2];else if(i[E+4>>2]=3|r,i[4+(Q=E+r|0)>>2]=1|C,i[Q+C>>2]=C,C>>>0<=255)g=35900+((A=C>>>3|0)<<3)|0,(B=i[8965])&(A=1<>2]:(i[8965]=A|B,A=g),i[g+8>>2]=Q,i[A+12>>2]=Q,i[Q+12>>2]=g,i[Q+8>>2]=A;else{A=31,C>>>0<=16777215&&(A=C>>>8|0,A<<=e=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|e)|0)<<1|C>>>A+21&1)|0),i[Q+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,g=36164+(A<<2)|0;B:{if((B=1<>>1|0)|0),B=i[g>>2];;){if((-8&i[(g=B)+4>>2])==(0|C))break B;if(B=A>>>29|0,A<<=1,!(B=i[16+(e=(4&B)+g|0)>>2]))break}i[e+16>>2]=Q}else i[8966]=B|t,i[g>>2]=Q;i[Q+24>>2]=g,i[Q+12>>2]=Q,i[Q+8>>2]=Q;break g}A=i[g+8>>2],i[A+12>>2]=Q,i[g+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=g,i[Q+8>>2]=A}A=E+8|0;break A}I:if(t){B=i[g+28>>2];g:{if(i[(A=36164+(B<<2)|0)>>2]==(0|g)){if(i[A>>2]=E,E)break g;c=35864,y=lI(-2,B)&o,i[c>>2]=y;break I}if(i[t+(i[t+16>>2]==(0|g)?16:20)>>2]=E,!E)break I}i[E+24>>2]=t,(A=i[g+16>>2])&&(i[E+16>>2]=A,i[A+24>>2]=E),(A=i[g+20>>2])&&(i[E+20>>2]=A,i[A+24>>2]=E)}C>>>0<=15?(A=C+r|0,i[g+4>>2]=3|A,i[4+(A=A+g|0)>>2]=1|i[A+4>>2]):(i[g+4>>2]=3|r,i[4+(E=g+r|0)>>2]=1|C,i[C+E>>2]=C,f&&(B=35900+((A=f>>>3|0)<<3)|0,e=i[8970],(A=1<>2]:(i[8965]=A|Q,A=B),i[B+8>>2]=e,i[A+12>>2]=e,i[e+12>>2]=B,i[e+8>>2]=A),i[8970]=E,i[8967]=C),A=g+8|0}return s=I+16|0,0|A}function H(A,I,g){var B,C,Q,E,n,a,o,t,e,f,c,y,s,w,D,p,u,F,l,_,k,H,G,U,S,b,m,v,M,P,Y,N,R,d,J,x,L,K,X,T,V,q,z,j,W,O,Z,$,AA,IA,gA,BA,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0,cA=0,yA=0,sA=0,wA=0,DA=0,hA=0,pA=0,uA=0,FA=0,lA=0,_A=0,kA=0,HA=0,GA=0,UA=0;B=CA=GA=i[g+4>>2],e=CA>>31,d=CA=(FA=i[I+20>>2])<<1,CA=qA(B,e,CA,k=CA>>31),EA=h,QA=CA,C=CA=i[g>>2],Q=CA>>31,f=CA=i[I+24>>2],cA=qA(C,Q,CA,E=CA>>31),CA=h+EA|0,CA=(QA=QA+cA|0)>>>0>>0?CA+1|0:CA,EA=QA,J=QA=iA=i[g+8>>2],p=QA>>31,c=QA=i[I+16>>2],QA=EA+(cA=qA(iA,p,QA,n=QA>>31))|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,x=CA=nA=i[g+12>>2],u=CA>>31,L=CA=(cA=i[I+12>>2])<<1,CA=(yA=qA(nA,u,CA,H=CA>>31))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=CA,W=CA=DA=i[g+16>>2],l=CA>>31,y=CA=i[I+8>>2],yA=qA(DA,l,CA,a=CA>>31),CA=h+QA|0,CA=(EA=EA+yA|0)>>>0>>0?CA+1|0:CA,lA=EA,O=QA=oA=i[g+20>>2],G=QA>>31,K=QA=(yA=i[I+4>>2])<<1,EA=qA(oA,G,QA,U=QA>>31),CA=h+CA|0,CA=(QA=lA+EA|0)>>>0>>0?CA+1|0:CA,EA=QA,Z=QA=tA=i[g+24>>2],X=QA>>31,s=QA=i[I>>2],uA=qA(tA,X,QA,o=QA>>31),QA=h+CA|0,QA=(EA=EA+uA|0)>>>0>>0?QA+1|0:QA,S=i[g+28>>2],sA=CA=r(S,19),F=CA>>31,T=CA=(uA=i[I+36>>2])<<1,CA=(wA=qA(sA,F,CA,b=CA>>31))+EA|0,EA=h+QA|0,EA=CA>>>0>>0?EA+1|0:EA,QA=CA,V=i[g+32>>2],eA=CA=r(V,19),aA=CA>>31,w=CA=i[I+32>>2],wA=qA(eA,aA,CA,t=CA>>31),CA=h+EA|0,CA=(QA=QA+wA|0)>>>0>>0?CA+1|0:CA,$=i[g+36>>2],fA=g=r($,19),D=g>>31,q=I=(wA=i[I+28>>2])<<1,g=qA(g,D,I,m=I>>31),CA=h+CA|0,HA=I=g+QA|0,I=I>>>0>>0?CA+1|0:CA,g=qA(c,n,B,e),CA=h,QA=qA(C,Q,FA,v=FA>>31),EA=h+CA|0,EA=(g=QA+g|0)>>>0>>0?EA+1|0:EA,CA=qA(iA,p,cA,M=cA>>31),QA=h+EA|0,QA=(g=CA+g|0)>>>0>>0?QA+1|0:QA,EA=qA(y,a,nA,u),CA=h+QA|0,CA=(g=EA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(DA,l,yA,P=yA>>31),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(s,o,oA,G),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=g,_A=g=r(tA,19),g=EA+(QA=qA(g,_=g>>31,uA,Y=uA>>31))|0,EA=h+CA|0,EA=g>>>0>>0?EA+1|0:EA,CA=qA(w,t,sA,F),QA=h+EA|0,QA=(g=CA+g|0)>>>0>>0?QA+1|0:QA,EA=qA(eA,aA,wA,N=wA>>31),CA=h+QA|0,CA=(g=EA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(fA,D,f,E),CA=h+CA|0,lA=g=QA+g|0,g=g>>>0>>0?CA+1|0:CA,CA=qA(B,e,L,H),EA=h,QA=(tA=qA(C,Q,c,n))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,tA=qA(y,a,iA,p),EA=h+CA|0,EA=(QA=tA+QA|0)>>>0>>0?EA+1|0:EA,CA=(tA=qA(nA,u,K,U))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(tA=qA(s,o,DA,l))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,hA=EA,z=QA=r(oA,19),EA=qA(QA,R=QA>>31,T,b),CA=h+CA|0,CA=(QA=hA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(w,t,_A,_),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,oA=qA(sA,F,q,m),EA=h+CA|0,EA=(QA=oA+QA|0)>>>0>>0?EA+1|0:EA,CA=(oA=qA(eA,aA,f,E))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(oA=qA(fA,D,d,k))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,oA=EA,IA=CA,tA=QA=EA+33554432|0,gA=CA=QA>>>0<33554432?CA+1|0:CA,EA=lA,lA=(67108863&CA)<<6|QA>>>26,CA=(CA>>26)+g|0,CA=(EA=EA+lA|0)>>>0>>0?CA+1|0:CA,BA=g=(lA=EA)+16777216|0,CA=I+(QA=(EA=g>>>0<16777216?CA+1|0:CA)>>25)|0,CA=(g=(EA=(33554431&EA)<<7|g>>>25)+HA|0)>>>0>>0?CA+1|0:CA,kA=I=g+33554432|0,I=CA=I>>>0<33554432?CA+1|0:CA,CA=-67108864&kA,i[A+24>>2]=g-CA,g=qA(B,e,K,U),CA=h,QA=qA(C,Q,y,a),EA=h+CA|0,EA=(g=QA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(s,o,iA,p),CA=h+EA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=g,nA=g=r(nA,19),QA=qA(g,HA=g>>31,T,b),CA=h+CA|0,CA=(g=EA+QA|0)>>>0>>0?CA+1|0:CA,QA=g,AA=g=r(DA,19),g=QA+(EA=qA(w,t,g,j=g>>31))|0,QA=h+CA|0,QA=g>>>0>>0?QA+1|0:QA,EA=qA(q,m,z,R),CA=h+QA|0,CA=(g=EA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(f,E,_A,_),EA=h+CA|0,EA=(g=QA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(sA,F,d,k),CA=h+EA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(eA,aA,c,n),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=qA(fA,D,L,H),QA=h+CA|0,hA=g=EA+g|0,g=g>>>0>>0?QA+1|0:QA,CA=qA(s,o,B,e),EA=h,QA=(DA=qA(C,Q,yA,P))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,EA=QA,DA=QA=r(iA,19),QA=EA+(iA=qA(QA,rA=QA>>31,uA,Y))|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,iA=qA(w,t,nA,HA),CA=h+EA|0,CA=(QA=iA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(AA,j,wA,N),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,EA=(iA=qA(f,E,z,R))+QA|0,QA=h+CA|0,QA=EA>>>0>>0?QA+1|0:QA,iA=qA(_A,_,FA,v),CA=h+QA|0,CA=(EA=iA+EA|0)>>>0>>0?CA+1|0:CA,QA=(iA=qA(c,n,sA,F))+EA|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,iA=qA(eA,aA,cA,M),CA=h+EA|0,CA=(QA=iA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(fA,D,y,a),CA=h+CA|0,UA=QA=EA+QA|0,iA=QA>>>0>>0?CA+1|0:CA,CA=qA(CA=r(B,19),CA>>31,T,b),QA=h,EA=qA(C,Q,s,o),QA=h+QA|0,QA=(CA=EA+CA|0)>>>0>>0?QA+1|0:QA,EA=(GA=qA(w,t,DA,rA))+CA|0,CA=h+QA|0,QA=(nA=qA(nA,HA,q,m))+EA|0,EA=h+(EA>>>0>>0?CA+1|0:CA)|0,EA=QA>>>0>>0?EA+1|0:EA,nA=qA(f,E,AA,j),CA=h+EA|0,CA=(QA=nA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(d,k,z,R),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,EA=(nA=qA(c,n,_A,_))+QA|0,QA=h+CA|0,QA=EA>>>0>>0?QA+1|0:QA,nA=qA(sA,F,L,H),CA=h+QA|0,CA=(EA=nA+EA|0)>>>0>>0?CA+1|0:CA,QA=(nA=qA(eA,aA,y,a))+EA|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,nA=qA(fA,D,K,U),CA=h+EA|0,CA=(QA=nA+QA|0)>>>0>>0?CA+1|0:CA,nA=QA,GA=CA,HA=QA=QA+33554432|0,DA=CA=QA>>>0<33554432?CA+1|0:CA,rA=(67108863&CA)<<6|QA>>>26,QA=(EA=CA>>26)+iA|0,iA=CA=rA+UA|0,CA=CA>>>0>>0?QA+1|0:QA,UA=QA=iA+16777216|0,EA=hA,hA=(33554431&(CA=QA>>>0<16777216?CA+1|0:CA))<<7|QA>>>25,CA=(CA>>25)+g|0,CA=(QA=EA+hA|0)>>>0>>0?CA+1|0:CA,hA=g=QA+33554432|0,g=CA=g>>>0<33554432?CA+1|0:CA,CA=-67108864&hA,i[A+8>>2]=QA-CA,CA=qA(f,E,B,e),EA=h,QA=(rA=qA(C,Q,wA,N))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,EA=qA(J,p,FA,v),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(c,n,x,u),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,rA=qA(W,l,cA,M),EA=h+CA|0,EA=(QA=rA+QA|0)>>>0>>0?EA+1|0:EA,CA=(rA=qA(y,a,O,G))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(rA=qA(yA,P,Z,X))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(s,o,S,rA=S>>31),CA=h+CA|0,CA=(QA=QA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(eA,aA,uA,Y),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,pA=qA(fA,D,w,t),EA=h+CA|0,CA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(QA=pA+QA|0)|0,QA=CA+(EA=QA>>>0>>0?EA+1|0:EA)|0,CA=QA=I>>>0>>0?QA+1|0:QA,kA=I=(EA=I)+16777216|0,I=CA=I>>>0<16777216?CA+1|0:CA,CA=-33554432&kA,i[A+28>>2]=EA-CA,CA=qA(y,a,B,e),QA=h,pA=qA(C,Q,cA,M),EA=h+QA|0,EA=(CA=pA+CA|0)>>>0>>0?EA+1|0:EA,pA=qA(J,p,yA,P),QA=h+EA|0,QA=(CA=pA+CA|0)>>>0>>0?QA+1|0:QA,EA=(pA=qA(s,o,x,u))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(AA,j,uA,Y),CA=h+CA|0,CA=(QA=QA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(w,t,z,R),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,QA=(_A=qA(_A,_,wA,N))+QA|0,EA=h+CA|0,CA=(sA=qA(f,E,sA,F))+QA|0,QA=h+(QA>>>0<_A>>>0?EA+1|0:EA)|0,EA=(eA=qA(eA,aA,FA,v))+CA|0,CA=h+(CA>>>0>>0?QA+1|0:QA)|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(fA,D,c,n),CA=h+CA|0,eA=QA=QA+EA|0,CA=(CA=QA>>>0>>0?CA+1|0:CA)+(QA=g>>26)|0,CA=(g=eA+(EA=(67108863&g)<<6|hA>>>26)|0)>>>0>>0?CA+1|0:CA,eA=g=(QA=g)+16777216|0,g=EA=g>>>0<16777216?CA+1|0:CA,CA=-33554432&eA,i[A+12>>2]=QA-CA,CA=qA(B,e,q,m),EA=h,QA=(aA=qA(C,Q,w,t))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,EA=qA(f,E,J,p),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,aA=qA(x,u,d,k),EA=h+CA|0,EA=(QA=aA+QA|0)>>>0>>0?EA+1|0:EA,CA=(aA=qA(c,n,W,l))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(aA=qA(L,H,O,G))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(y,a,Z,X),CA=h+CA|0,CA=(QA=QA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(S,rA,K,U),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,QA=(sA=qA(s,o,V,aA=V>>31))+QA|0,EA=h+CA|0,CA=(fA=qA(fA,D,T,b))+QA|0,QA=h+(QA>>>0>>0?EA+1|0:EA)|0,QA=CA>>>0>>0?QA+1|0:QA,hA=CA,CA=(CA=I>>25)+QA|0,CA=(I=hA+(EA=(33554431&I)<<7|kA>>>25)|0)>>>0>>0?CA+1|0:CA,fA=I=(QA=I)+33554432|0,I=CA=I>>>0<33554432?CA+1|0:CA,CA=-67108864&fA,i[A+32>>2]=QA-CA,EA=QA=oA-(CA=-67108864&tA)|0,CA=(CA=IA-((CA>>>0>oA>>>0)+gA|0)|0)+(QA=g>>25)|0,CA=(g=EA+(oA=(33554431&g)<<7|eA>>>25)|0)>>>0>>0?CA+1|0:CA,CA=(lA-(-33554432&BA)|0)+((67108863&(CA=(QA=g+33554432|0)>>>0<33554432?CA+1|0:CA))<<6|QA>>>26)|0,i[A+20>>2]=CA,CA=-67108864&QA,i[A+16>>2]=g-CA,g=qA(w,t,B,e),CA=h,QA=qA(C,Q,uA,Y),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=qA(J,p,wA,N),QA=h+CA|0,QA=(g=EA+g|0)>>>0>>0?QA+1|0:QA,CA=qA(f,E,x,u),EA=h+QA|0,EA=(g=CA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(W,l,FA,v),CA=h+EA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(c,n,O,G),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(cA,M,Z,X),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=qA(y,a,S,rA),QA=h+CA|0,QA=(g=EA+g|0)>>>0>>0?QA+1|0:QA,CA=qA(V,aA,yA,P),EA=h+QA|0,EA=(g=CA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(s,o,$,$>>31),CA=h+EA|0,CA=(CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA)+(QA=I>>26)|0,CA=(I=(EA=g)+(g=(67108863&I)<<6|fA>>>26)|0)>>>0>>0?CA+1|0:CA,CA=(g=I+16777216|0)>>>0<16777216?CA+1|0:CA,QA=-33554432&g,i[A+36>>2]=I-QA,EA=iA-(-33554432&UA)|0,QA=nA-(I=-67108864&HA)|0,FA=GA-((I>>>0>nA>>>0)+DA|0)|0,I=(g=qA((33554431&(I=CA))<<7|g>>>25,CA>>=25,19,0))+QA|0,QA=h+FA|0,CA=QA=I>>>0>>0?QA+1|0:QA,g=((67108863&(CA=(g=I+33554432|0)>>>0<33554432?CA+1|0:CA))<<6|(QA=g)>>>26)+EA|0,i[A+4>>2]=g,g=A,A=-67108864&QA,i[g>>2]=I-A}function G(A,I){var g,B,C,Q,E,n,a,o,t,e,f,c,y,w,D,p,u,F,l,_,k,H,G,S,b,m,v,M,P,Y,N,R,d,J,x,L,K,X,T,V,q,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0;s=H=s-48|0,U(A,I),U(F=A+80|0,N=I+40|0),g=A+120|0,a=z=(rA=i[I+92>>2])<<1,o=z>>31,t=z=(CA=i[I+84>>2])<<1,z=qA(a,o,z,B=z>>31),Z=h,j=z,m=z=$=i[I+88>>2],W=qA(z,AA=z>>31,z,AA),z=h+Z|0,z=(j=j+W|0)>>>0>>0?z+1|0:z,W=j,C=j=i[I+96>>2],e=j>>31,f=j=(EA=i[I+80>>2])<<1,Z=qA(C,e,j,Q=j>>31),z=h+z|0,z=(j=W+Z|0)>>>0>>0?z+1|0:z,O=j,Z=i[I+108>>2],G=j=r(Z,38),R=Z,W=qA(j,l=j>>31,Z,v=Z>>31),z=h+z|0,z=(j=O+W|0)>>>0>>0?z+1|0:z,W=j,D=i[I+112>>2],oA=qA(c=j=r(D,19),y=j>>31,j=(gA=i[I+104>>2])<<1,j>>31),j=h+z|0,j=(W=W+oA|0)>>>0>>0?j+1|0:j,O=W,oA=i[I+116>>2],E=z=r(oA,38),n=z>>31,_=z=(W=i[I+100>>2])<<1,aA=qA(E,n,z,p=z>>31),j=h+j|0,j=(z=O+aA|0)>>>0>>0?j+1|0:j,aA=z,K=z=j<<1|z>>>31,d=j=33554432+(aA<<=1)|0,X=z=j>>>0<33554432?z+1|0:z,j=z>>26,z=(67108863&z)<<6|d>>>26,tA=j,j=qA(t,B,C,e),IA=h,O=z,k=z=$<<1,rA=qA(z,u=z>>31,$=rA,M=$>>31),z=h+IA|0,z=(j=rA+j|0)>>>0>>0?z+1|0:z,rA=W,IA=(BA=qA(W,S=W>>31,f,Q))+j|0,j=h+z|0,j=IA>>>0>>0?j+1|0:j,QA=IA,J=z=Z<<1,IA=qA(c,y,z,P=z>>31),z=h+j|0,z=(Z=QA+IA|0)>>>0>>0?z+1|0:z,j=Z,Z=qA(E,n,gA,w=gA>>31),z=h+z|0,z=(j=j+Z|0)>>>0>>0?z+1|0:z,Z=j,j=(j=z<<1|j>>>31)+tA|0,tA=z=O+(Z<<=1)|0,z=z>>>0>>0?j+1|0:j,T=j=tA+16777216|0,Z=j,j=(z=j>>>0<16777216?z+1|0:z)>>25,z=(33554431&z)<<7|Z>>>25,Z=j,j=qA(a,o,$,M),IA=h,O=z,BA=qA(C,e,k,u),z=h+IA|0,z=(j=BA+j|0)>>>0>>0?z+1|0:z,IA=qA(t,B,_,p),z=h+z|0,z=(j=IA+j|0)>>>0>>0?z+1|0:z,IA=(BA=qA(f,Q,gA,w))+j|0,j=h+z|0,j=IA>>>0>>0?j+1|0:j,BA=qA(c,y,D,b=D>>31),z=h+j|0,z=(IA=BA+IA|0)>>>0>>0?z+1|0:z,BA=qA(E,n,J,P),j=h+z|0,j=(IA=BA+IA|0)>>>0>>0?j+1|0:j,BA=(z=IA)<<1,z=(j<<1|z>>>31)+Z|0,z=(IA=O+BA|0)>>>0>>0?z+1|0:z,fA=Z=(j=IA)+33554432|0,Z=z=Z>>>0<33554432?z+1|0:z,z=-67108864&fA,i[g+24>>2]=j-z,z=qA(z=r(W,38),z>>31,W,S),j=h,O=z,W=qA(EA,z=EA>>31,EA,z),j=h+j|0,j=(z=O+W|0)>>>0>>0?j+1|0:j,W=z,QA=z=r(gA,19),nA=z>>31,x=z=C<<1,EA=qA(QA,nA,z,Y=z>>31),z=h+j|0,z=(W=W+EA|0)>>>0>>0?z+1|0:z,j=W,W=qA(a,o,G,l),z=h+z|0,z=(j=j+W|0)>>>0>>0?z+1|0:z,W=(EA=qA(c,y,k,u))+j|0,j=h+z|0,j=W>>>0>>0?j+1|0:j,EA=qA(t,B,E,n),z=h+j|0,z=(W=EA+W|0)>>>0>>0?z+1|0:z,EA=(j=W)<<1,q=z=z<<1|j>>>31,j=z,IA=z=EA+33554432|0,BA=j=z>>>0<33554432?j+1|0:j,z=j>>26,j=(67108863&j)<<6|IA>>>26,W=z,z=qA(QA,nA,_,p),iA=h,eA=j,j=(CA=qA(f,Q,O=CA,L=O>>31))+z|0,z=h+iA|0,z=j>>>0>>0?z+1|0:z,CA=(iA=qA(C,e,G,l))+j|0,j=h+z|0,j=CA>>>0>>0?j+1|0:j,iA=qA(a,o,c,y),z=h+j|0,z=(CA=iA+CA|0)>>>0>>0?z+1|0:z,iA=qA(E,n,m,AA),j=h+z|0,j=(CA=iA+CA|0)>>>0>>0?j+1|0:j,iA=(z=CA)<<1,z=(j<<1|z>>>31)+W|0,z=(CA=eA+iA|0)>>>0>>0?z+1|0:z,iA=j=CA+16777216|0,W=j,j=(z=j>>>0<16777216?z+1|0:z)>>25,z=(33554431&z)<<7|W>>>25,W=j,j=qA(f,Q,m,AA),V=h,eA=z,O=qA(O,L,t,B),z=h+V|0,z=(j=O+j|0)>>>0>>0?z+1|0:z,O=(QA=qA(QA,nA,gA,w))+j|0,j=h+z|0,j=O>>>0>>0?j+1|0:j,QA=qA(_,p,G,l),z=h+j|0,z=(O=QA+O|0)>>>0>>0?z+1|0:z,j=O,O=qA(c,y,x,Y),z=h+z|0,z=(j=j+O|0)>>>0>>0?z+1|0:z,O=(QA=qA(E,n,a,o))+j|0,j=h+z|0,z=(z=(j=O>>>0>>0?j+1|0:j)<<1|O>>>31)+W|0,z=(j=eA+(O<<=1)|0)>>>0>>0?z+1|0:z,W=j,O=j,j=z,QA=z=W+33554432|0,W=j=z>>>0<33554432?j+1|0:j,z&=-67108864,i[g+8>>2]=O-z,z=qA(k,u,rA,S),j=h,O=qA(a,o,C,e),j=h+j|0,j=(z=O+z|0)>>>0>>0?j+1|0:j,O=(nA=qA(t,B,gA,w))+z|0,z=h+j|0,z=O>>>0>>0?z+1|0:z,nA=qA(f,Q,R,v),j=h+z|0,j=(O=nA+O|0)>>>0>>0?j+1|0:j,nA=qA(E,n,D,b),z=h+j|0,eA=(j=O=nA+O|0)<<1,z=(z=(j>>>0>>0?z+1|0:z)<<1|j>>>31)+(j=Z>>26)|0,z=(Z=eA+(O=(67108863&Z)<<6|fA>>>26)|0)>>>0>>0?z+1|0:z,O=Z,j=z,fA=z=Z+16777216|0,Z=j=z>>>0<16777216?j+1|0:j,z&=-33554432,i[g+28>>2]=O-z,z=qA(f,Q,$,M),$=h,j=(AA=qA(t,B,m,AA))+z|0,z=h+$|0,z=j>>>0>>0?z+1|0:z,AA=qA(gA,w,G,l),z=h+z|0,z=(j=AA+j|0)>>>0>>0?z+1|0:z,AA=($=qA(c,y,_,p))+j|0,j=h+z|0,j=$>>>0>AA>>>0?j+1|0:j,z=AA,AA=qA(E,n,C,e),j=h+j|0,j=(z=z+AA|0)>>>0>>0?j+1|0:j,AA=z,z=(z=j<<1|z>>>31)+(j=W>>26)|0,z=(W=(O=AA<<1)+(AA=(67108863&W)<<6|QA>>>26)|0)>>>0>>0?z+1|0:z,AA=W=(j=W)+16777216|0,W=z=W>>>0<16777216?z+1|0:z,z=-33554432&AA,i[g+12>>2]=j-z,z=qA(gA,w,k,u),$=h,j=(O=qA(C,e,C,e))+z|0,z=h+$|0,z=j>>>0>>0?z+1|0:z,$=qA(a,o,_,p),z=h+z|0,z=(j=$+j|0)>>>0<$>>>0?z+1|0:z,$=qA(t,B,J,P),z=h+z|0,z=(j=$+j|0)>>>0<$>>>0?z+1|0:z,$=(O=qA(f,Q,D,b))+j|0,j=h+z|0,j=O>>>0>$>>>0?j+1|0:j,z=$,$=qA(E,n,oA,O=oA>>31),j=h+j|0,j=(z=z+$|0)>>>0<$>>>0?j+1|0:j,$=z,z=(z=j<<1|z>>>31)+(j=Z>>25)|0,z=(Z=(QA=$<<1)+($=(33554431&Z)<<7|fA>>>25)|0)>>>0<$>>>0?z+1|0:z,$=Z=(j=Z)+33554432|0,Z=z=Z>>>0<33554432?z+1|0:z,z=-67108864&$,i[g+32>>2]=j-z,j=aA-(z=-67108864&d)|0,aA=K-((z>>>0>aA>>>0)+X|0)|0,z=W>>25,W=(AA=(33554431&W)<<7|AA>>>25)+j|0,j=z+aA|0,z=j=W>>>0>>0?j+1|0:j,z=((67108863&(z=(j=W+33554432|0)>>>0<33554432?z+1|0:z))<<6|j>>>26)+(tA=tA-(-33554432&T)|0)|0,i[g+20>>2]=z,z=-67108864&j,i[g+16>>2]=W-z,z=qA(a,o,gA,w),j=h,W=qA(rA,S,x,Y),j=h+j|0,j=(z=W+z|0)>>>0>>0?j+1|0:j,W=(gA=qA(k,u,R,v))+z|0,z=h+j|0,z=W>>>0>>0?z+1|0:z,gA=qA(t,B,D,b),j=h+z|0,j=(W=gA+W|0)>>>0>>0?j+1|0:j,gA=qA(f,Q,oA,O),z=h+j|0,O=(j=W=gA+W|0)<<1,z=(z=(j>>>0>>0?z+1|0:z)<<1|j>>>31)+(j=Z>>26)|0,j=z=(W=(67108863&Z)<<6|$>>>26)>>>0>(Z=O+W|0)>>>0?z+1|0:z,j=(z=Z+16777216|0)>>>0<16777216?j+1|0:j,W=-33554432&z,i[g+36>>2]=Z-W,gA=qA((33554431&j)<<7|z>>>25,j>>25,19,0),j=h+(q-(((W=-67108864&IA)>>>0>EA>>>0)+BA|0)|0)|0,j=(z=gA+(EA-W|0)|0)>>>0>>0?j+1|0:j,j=(CA-(-33554432&iA)|0)+((67108863&(j=(Z=z+33554432|0)>>>0<33554432?j+1|0:j))<<6|Z>>>26)|0,i[g+4>>2]=j,j=-67108864&Z,i[g>>2]=z-j,yA(z=A+40|0,I,N),U(H,z),yA(z,F,A),cA(F,F,A),cA(A,H,z),cA(g,g,F),s=H+48|0}function U(A,I){var g,B,C,Q,E,n,a,o,t,e,f,c,y,s,w,D,p,u,F,l,_,k,H,G,U,S,b,m,v,M,P,Y,N,R,d,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0;e=x=(J=i[I+12>>2])<<1,z=J,J=qA(x,E=x>>31,J,U=J>>31),K=h,x=J,n=(J=g=i[I+16>>2])>>31,p=J=(V=i[I+8>>2])<<1,L=qA(g,n,J,y=J>>31),J=h+K|0,J=(x=x+L|0)>>>0>>0?J+1|0:J,K=x,s=x=(L=i[I+20>>2])<<1,w=x>>31,a=x=(T=i[I+4>>2])<<1,W=qA(s,w,x,B=x>>31),x=h+J|0,x=(K=K+W|0)>>>0>>0?x+1|0:x,l=J=X=i[I+24>>2],f=J>>31,o=J=(Z=i[I>>2])<<1,W=qA(X,f,J,C=J>>31),J=h+x|0,J=(K=W+K|0)>>>0>>0?J+1|0:J,j=K,W=i[I+32>>2],D=x=r(W,19),K=qA(x,c=x>>31,W,_=W>>31),J=h+J|0,J=(x=j+K|0)>>>0>>0?J+1|0:J,j=x,k=i[I+36>>2],t=x=r(k,38),Q=x>>31,M=I=(K=i[I+28>>2])<<1,gA=qA(x,Q,I,S=I>>31),I=h+J|0,j=x=j+gA|0,O=x>>>0>>0?I+1|0:I,I=qA(a,B,g,n),J=h,x=qA(p,y,z,U),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,gA=L,q=qA(L,H=L>>31,o,C),x=h+J|0,x=(I=q+I|0)>>>0>>0?x+1|0:x,q=qA(D,c,M,S),J=h+x|0,J=(I=q+I|0)>>>0>>0?J+1|0:J,x=qA(t,Q,X,f),J=h+J|0,$=I=x+I|0,BA=I>>>0>>0?J+1|0:J,I=qA(a,B,e,E),x=h,J=(q=qA(V,u=V>>31,V,u))+I|0,I=h+x|0,I=J>>>0>>0?I+1|0:I,x=(q=qA(o,C,g,n))+J|0,J=h+I|0,J=x>>>0>>0?J+1|0:J,G=I=r(K,38),q=K,I=(K=qA(I,F=I>>31,K,b=K>>31))+x|0,x=h+J|0,x=I>>>0>>0?x+1|0:x,I=(J=I)+(K=qA(D,c,I=X<<1,I>>31))|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=qA(t,Q,s,w),J=h+J|0,m=I=x+I|0,N=J=I>>>0>>0?J+1|0:J,I=J,P=J=m+33554432|0,R=I=J>>>0<33554432?I+1|0:I,J=(J=I>>26)+BA|0,BA=I=(x=(67108863&I)<<6|P>>>26)+$|0,x=I>>>0>>0?J+1|0:J,d=I=I+16777216|0,J=(J=(x=I>>>0<16777216?x+1|0:x)>>25)+O|0,J=(I=(x=(33554431&x)<<7|I>>>25)+j|0)>>>0>>0?J+1|0:J,x=I,I=J,AA=J=x+33554432|0,K=I=J>>>0<33554432?I+1|0:I,I=-67108864&J,i[A+24>>2]=x-I,I=qA(o,C,V,u),J=h,j=qA(a,B,T,O=T>>31),x=h+J|0,x=(I=j+I|0)>>>0>>0?x+1|0:x,J=I,j=I=r(X,19),I=J+(X=qA(I,$=I>>31,X,f))|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=(X=qA(s,w,G,F))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,Y=J=g<<1,X=qA(D,c,J,v=J>>31),J=h+I|0,J=(x=X+x|0)>>>0>>0?J+1|0:J,I=x,x=qA(t,Q,e,E),J=h+J|0,CA=I=I+x|0,X=I>>>0>>0?J+1|0:J,I=qA(s,w,j,$),J=h,T=qA(o,C,T,O),x=h+J|0,x=(I=T+I|0)>>>0>>0?x+1|0:x,T=qA(g,n,G,F),J=h+x|0,J=(I=T+I|0)>>>0>>0?J+1|0:J,x=(T=qA(D,c,e,E))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,T=qA(t,Q,V,u),J=h+I|0,IA=x=T+x|0,O=x>>>0>>0?J+1|0:J,I=qA(I=r(L,38),I>>31,L,H),J=h,L=I,x=qA(Z,I=Z>>31,Z,I),J=h+J|0,J=(I=L+x|0)>>>0>>0?J+1|0:J,L=qA(j,$,Y,v),x=h+J|0,x=(I=L+I|0)>>>0>>0?x+1|0:x,L=qA(e,E,G,F),J=h+x|0,J=(I=L+I|0)>>>0>>0?J+1|0:J,x=(L=qA(D,c,p,y))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,L=qA(a,B,t,Q),J=h+I|0,T=x=L+x|0,j=J=x>>>0>>0?J+1|0:J,Z=I=x+33554432|0,$=J=I>>>0<33554432?J+1|0:J,x=(I=J>>26)+O|0,O=J=(L=(67108863&J)<<6|Z>>>26)+IA|0,IA=CA,J=J>>>0>>0?x+1|0:x,CA=I=O+16777216|0,L=(33554431&(J=I>>>0<16777216?J+1|0:J))<<7|I>>>25,J=(J>>25)+X|0,J=(x=IA+L|0)>>>0>>0?J+1|0:J,X=x=(I=x)+33554432|0,L=J=x>>>0<33554432?J+1|0:J,J=-67108864&x,i[A+8>>2]=I-J,I=qA(p,y,gA,H),J=h,x=qA(g,n,e,E),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=qA(a,B,l,f),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=qA(o,C,q,b),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=(IA=qA(t,Q,W,_))+I|0,I=h+J|0,J=K>>26,K=(AA=(67108863&K)<<6|AA>>>26)+x|0,x=(I=x>>>0>>0?I+1|0:I)+J|0,J=(I=K)>>>0>>0?x+1|0:x,AA=x=I+16777216|0,K=J=x>>>0<16777216?J+1|0:J,J=-33554432&x,i[A+28>>2]=I-J,I=qA(o,C,z,U),x=h,J=(V=qA(a,B,V,u))+I|0,I=h+x|0,I=J>>>0>>0?I+1|0:I,V=qA(l,f,G,F),x=h+I|0,x=(J=V+J|0)>>>0>>0?x+1|0:x,I=(V=qA(D,c,s,w))+J|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=qA(t,Q,g,n),J=h+J|0,J=(J=(I=x+I|0)>>>0>>0?J+1|0:J)+(x=L>>26)|0,x=I=(L=(67108863&L)<<6|X>>>26)+I|0,I=I>>>0>>0?J+1|0:J,V=J=x+16777216|0,L=I=J>>>0<16777216?I+1|0:I,I=-33554432&J,i[A+12>>2]=x-I,I=qA(l,f,p,y),J=h,x=qA(g,n,g,n),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=qA(e,E,s,w),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=(z=qA(a,B,M,S))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,J=(z=qA(o,C,W,_))+x|0,x=h+I|0,x=J>>>0>>0?x+1|0:x,I=(z=qA(t,Q,k,X=k>>31))+J|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=I,J=(I=K>>25)+J|0,J=(x=x+(K=(33554431&K)<<7|AA>>>25)|0)>>>0>>0?J+1|0:J,z=x=(I=x)+33554432|0,K=J=x>>>0<33554432?J+1|0:J,J=-67108864&x,i[A+32>>2]=I-J,J=L>>25,x=(L=(33554431&L)<<7|V>>>25)+(m-(I=-67108864&P)|0)|0,I=J+(N-((I>>>0>m>>>0)+R|0)|0)|0,J=I=x>>>0>>0?I+1|0:I,L=I=x+33554432|0,I=((67108863&(J=I>>>0<33554432?J+1|0:J))<<6|I>>>26)+(BA=BA-(-33554432&d)|0)|0,i[A+20>>2]=I,I=-67108864&L,i[A+16>>2]=x-I,I=qA(e,E,l,f),x=h,J=(L=qA(gA,H,Y,v))+I|0,I=h+x|0,I=J>>>0>>0?I+1|0:I,x=(L=qA(p,y,q,b))+J|0,J=h+I|0,J=x>>>0>>0?J+1|0:J,I=(L=qA(a,B,W,_))+x|0,x=h+J|0,x=I>>>0>>0?x+1|0:x,L=qA(o,C,k,X),J=h+x|0,x=I=L+I|0,J=(I=I>>>0>>0?J+1|0:J)+(J=K>>26)|0,I=J=(x=(K=(67108863&K)<<6|z>>>26)+x|0)>>>0>>0?J+1|0:J,I=(J=x+16777216|0)>>>0<16777216?I+1|0:I,K=-33554432&J,i[A+36>>2]=x-K,L=qA((33554431&I)<<7|J>>>25,I>>25,19,0),J=h+(j-(((x=-67108864&Z)>>>0>T>>>0)+$|0)|0)|0,x=I=L+(T-x|0)|0,I=I>>>0>>0?J+1|0:J,I=(O-(-33554432&CA)|0)+((67108863&(I=(J=x+33554432|0)>>>0<33554432?I+1|0:I))<<6|J>>>26)|0,i[A+4>>2]=I,I=A,A=-67108864&J,i[I>>2]=x-A}function S(A,I,g){var B,C=0,Q=0,E=0,n=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0;for(s=B=s-2048|0,yg(w=B+1024|0,I),AI(w,A),yg(B,w),AI(B,g),I=0,w=0;r=i[(f=(A=(B+1024|0)+(w<<7)|0)- -64|0)>>2],Q=i[A+100>>2],a=r,t=i[f+4>>2],o=i[A+96>>2],r=i[A+32>>2],E=i[A+36>>2],n=pA(o^(C=CI(i[A>>2],i[A+4>>2],r,E)),(n=Q)^(Q=h),32),E=pA(t=(a=CI(a,t,n,o=h))^r,E^(r=h),24),t=r,U=pA((p=CI(C,Q,E,r=h))^n,(D=h)^o,16),r=pA(E^(b=CI(a,t,U,S=h)),(R=h)^r,63),Q=h,E=i[A+108>>2],t=i[A+72>>2],y=i[A+76>>2],c=i[A+104>>2],C=i[A+40>>2],n=i[A+44>>2],a=pA(c^(o=CI(i[A+8>>2],i[A+12>>2],C,n)),(a=E)^(E=h),32),n=pA(t=(m=CI(t,y,a,e=h))^C,n^(C=h),24),t=m,J=pA((m=CI(o,y=E,n,E=h))^a,(d=h)^e,16),E=pA(n^(v=CI(t,C,J,x=h)),(M=h)^E,63),C=h,n=i[A+116>>2],c=i[A+80>>2],u=i[A+84>>2],y=i[A+112>>2],o=i[A+48>>2],a=i[A+52>>2],y=pA(y^(e=CI(i[A+16>>2],i[A+20>>2],o,a)),(t=n)^(n=h),32),a=pA(t=(c=CI(c,u,y,P=h))^o,a^(o=h),24),t=c,c=pA((c=y)^(y=CI(e,y=n,a,n=h)),(e=P)^(P=h),16),n=pA(a^(t=CI(t,o,c,Y=h)),(k=h)^n,63),o=h,a=i[A+124>>2],H=i[A+88>>2],N=i[A+92>>2],F=i[A+120>>2],e=i[A+56>>2],u=i[A+60>>2],F=pA(F^(l=CI(i[A+24>>2],i[A+28>>2],e,u)),(_=a)^(a=h),32),_=u=pA(_=(N=CI(H,N,F,G=h))^e,u^(e=h),24),F=pA((u=CI(l,H=a,u,a=h))^F,(l=h)^G,16),a=pA(_^(N=CI(N,e,F,G=h)),(L=h)^a,63),e=h,_=t,H=k,t=pA(F^(p=CI(p,D,E,C)),G^(D=h),32),E=pA((F=CI(_,H,t,k=h))^E,(G=h)^C,24),C=CI(C=p,D,E,p=h),i[A>>2]=C,D=h,i[A+4>>2]=D,C=pA(C^t,D^k,16),i[A+120>>2]=C,D=h,i[A+124>>2]=D,C=CI(F,G,C,D),i[A+80>>2]=C,D=h,i[A+84>>2]=D,K=A,X=pA(C^E,D^p,63),i[K+40>>2]=X,i[A+44>>2]=h,E=n,p=pA(U^(C=CI(m,d,n,o)),S^(n=h),32),E=pA(E^(U=CI(N,L,p,D=h)),(t=o)^(o=h),24),C=CI(C,t=n,E,n=h),i[A+8>>2]=C,S=h,i[A+12>>2]=S,C=pA(C^p,D^S,16),i[A+96>>2]=C,p=h,i[A+100>>2]=p,C=CI(U,o,C,p),i[A+88>>2]=C,o=h,i[A+92>>2]=o,K=A,X=pA(C^E,n^o,63),i[K+48>>2]=X,i[A+52>>2]=h,E=a,o=pA(J^(C=CI(y,P,a,e)),x^(n=h),32),E=pA(E^(p=CI(b,R,o,a=h)),(t=e)^(e=h),24),C=CI(C,t=n,E,n=h),i[A+16>>2]=C,D=h,i[A+20>>2]=D,C=pA(C^o,a^D,16),i[A+104>>2]=C,o=h,i[A+108>>2]=o,C=CI(p,e,C,o),i[f>>2]=C,a=f,f=h,i[a+4>>2]=f,K=A,X=pA(C^E,n^f,63),i[K+56>>2]=X,i[A+60>>2]=h,a=r,C=pA(c^(r=CI(u,l,r,Q)),Y^(E=h),32),f=pA(a^(o=CI(v,M,C,n=h)),(f=Q)^(Q=h),24),r=CI(r,a=E,f,E=h),i[A+24>>2]=r,a=h,i[A+28>>2]=a,r=pA(C^r,n^a,16),i[A+112>>2]=r,C=h,i[A+116>>2]=C,r=CI(o,Q,r,C),i[A+72>>2]=r,Q=h,i[A+76>>2]=Q,K=A,X=pA(r^f,E^Q,63),i[K+32>>2]=X,i[A+36>>2]=h,8!=(0|(w=w+1|0)););for(;f=i[(w=512+(A=(B+1024|0)+(I<<4)|0)|0)>>2],r=i[A+772>>2],n=f,a=i[w+4>>2],o=i[A+768>>2],w=i[A+256>>2],f=i[A+260>>2],E=pA(o^(Q=CI(i[A>>2],i[A+4>>2],w,f)),(E=r)^(r=h),32),f=pA(a=(n=CI(n,a,E,C=h))^w,f^(w=h),24),o=w,p=pA((a=CI(Q,r,f,w=h))^E,(e=h)^C,16),w=pA(f^(U=CI(n,o,p,D=h)),(S=h)^w,63),f=h,r=i[A+780>>2],t=i[A+520>>2],y=i[A+524>>2],o=i[A+776>>2],Q=i[A+264>>2],E=i[A+268>>2],n=pA(o^(C=CI(i[A+8>>2],i[A+12>>2],Q,E)),(n=r)^(r=h),32),E=pA(t=(b=CI(t,y,n,o=h))^Q,E^(Q=h),24),t=b,m=pA((b=CI(C,y=r,E,r=h))^n,(R=h)^o,16),r=pA(E^(J=CI(t,Q,m,d=h)),(x=h)^r,63),Q=h,E=i[A+900>>2],y=i[A+640>>2],c=i[A+644>>2],u=i[A+896>>2],C=i[A+384>>2],n=i[A+388>>2],v=pA(u^(o=CI(i[A+128>>2],i[A+132>>2],C,n)),(t=E)^(E=h),32),n=pA(t=(y=CI(y,c,v,M=h))^C,n^(C=h),24),t=y,y=pA((y=v)^(v=CI(o,c=E,n,E=h)),(o=M)^(M=h),16),E=pA(n^(c=CI(t,C,y,P=h)),(Y=h)^E,63),C=h,n=i[A+908>>2],_=i[A+648>>2],H=i[A+652>>2],l=i[A+904>>2],o=i[A+392>>2],t=i[A+396>>2],u=pA(l^(k=CI(i[A+136>>2],i[A+140>>2],o,t)),(u=n)^(n=h),32),_=t=pA(_=(F=CI(_,H,u,l=h))^o,t^(o=h),24),u=pA((t=CI(k,H=n,t,n=h))^u,(k=h)^l,16),n=pA(_^(F=CI(F,o,u,l=h)),(G=h)^n,63),o=h,_=c,H=Y,c=pA(u^(a=CI(a,e,r,Q)),l^(e=h),32),r=pA((u=CI(_,H,c,Y=h))^r,(l=h)^Q,24),Q=CI(Q=a,e,r,a=h),i[A>>2]=Q,e=h,i[A+4>>2]=e,Q=pA(Q^c,e^Y,16),i[A+904>>2]=Q,e=h,i[A+908>>2]=e,Q=CI(u,l,Q,e),i[A+640>>2]=Q,e=h,i[A+644>>2]=e,K=A,X=pA(Q^r,a^e,63),i[K+264>>2]=X,i[A+268>>2]=h,r=E,a=pA(p^(Q=CI(b,R,E,C)),D^(E=h),32),r=pA(r^(p=CI(F,G,a,e=h)),(c=C)^(C=h),24),Q=CI(Q,c=E,r,E=h),i[A+8>>2]=Q,D=h,i[A+12>>2]=D,Q=pA(Q^a,e^D,16),i[A+768>>2]=Q,a=h,i[A+772>>2]=a,Q=CI(p,C,Q,a),i[A+648>>2]=Q,C=h,i[A+652>>2]=C,K=A,X=pA(Q^r,C^E,63),i[K+384>>2]=X,i[A+388>>2]=h,r=n,C=pA(m^(Q=CI(v,M,n,o)),d^(E=h),32),r=pA(r^(a=CI(U,S,C,n=h)),(c=o)^(o=h),24),Q=CI(Q,c=E,r,E=h),i[A+128>>2]=Q,e=h,i[A+132>>2]=e,Q=pA(C^Q,n^e,16),i[A+776>>2]=Q,C=h,i[A+780>>2]=C,Q=CI(a,o,Q,C),i[A+512>>2]=Q,C=h,i[A+516>>2]=C,K=A,X=pA(Q^r,C^E,63),i[K+392>>2]=X,i[A+396>>2]=h,r=CI(t,k,w,f),n=CI(J,x,E=pA(y^r,P^(Q=h),32),C=h),f=CI(a=r,Q,w=pA(n^w,(o=h)^f,24),r=h),i[A+136>>2]=f,Q=h,i[A+140>>2]=Q,f=pA(E^f,C^Q,16),i[A+896>>2]=f,Q=h,i[A+900>>2]=Q,f=CI(n,o,f,Q),i[A+520>>2]=f,Q=h,i[A+524>>2]=Q,K=A,X=pA(f^w,Q^r,63),i[K+256>>2]=X,i[A+260>>2]=h,8!=(0|(I=I+1|0)););yg(g,B),AI(g,B+1024|0),s=B+2048|0}function b(A){var I=0,g=0,B=0,C=0,Q=0,E=0,n=0,r=0,o=0;A:if(A|=0){Q=(B=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((B=B-(I=i[B>>2])|0)>>>0>2])))return i[8967]=A,i[Q+4>>2]=-2&I,i[B+4>>2]=1|A,void(i[A+B>>2]=A)}else{if(I>>>0<=255){if(C=i[B+8>>2],I=I>>>3|0,(0|(g=i[B+12>>2]))==(0|C)){r=35860,o=i[8965]&lI(-2,I),i[r>>2]=o;break I}i[C+12>>2]=g,i[g+8>>2]=C;break I}if(n=i[B+24>>2],(0|B)==(0|(I=i[B+12>>2])))if((g=i[(C=B+20|0)>>2])||(g=i[(C=B+16|0)>>2])){for(;E=C,(g=i[(C=(I=g)+20|0)>>2])||(C=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[B+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(!n)break I;C=i[B+28>>2];g:{if(i[(g=36164+(C<<2)|0)>>2]==(0|B)){if(i[g>>2]=I,I)break g;r=35864,o=i[8966]&lI(-2,C),i[r>>2]=o;break I}if(i[n+(i[n+16>>2]==(0|B)?16:20)>>2]=I,!I)break I}if(i[I+24>>2]=n,(g=i[B+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),!(g=i[B+20>>2]))break I;i[I+20>>2]=g,i[g+24>>2]=I}}if(!(B>>>0>=Q>>>0)&&1&(I=i[Q+4>>2])){I:{if(!(2&I)){if(i[8971]==(0|Q)){if(i[8971]=B,A=i[8968]+A|0,i[8968]=A,i[B+4>>2]=1|A,i[8970]!=(0|B))break A;return i[8967]=0,void(i[8970]=0)}if(i[8970]==(0|Q))return i[8970]=B,A=i[8967]+A|0,i[8967]=A,i[B+4>>2]=1|A,void(i[A+B>>2]=A);A=(-8&I)+A|0;g:if(I>>>0<=255){if(C=i[Q+8>>2],I=I>>>3|0,(0|(g=i[Q+12>>2]))==(0|C)){r=35860,o=i[8965]&lI(-2,I),i[r>>2]=o;break g}i[C+12>>2]=g,i[g+8>>2]=C}else{if(n=i[Q+24>>2],(0|Q)==(0|(I=i[Q+12>>2])))if((g=i[(C=Q+20|0)>>2])||(g=i[(C=Q+16|0)>>2])){for(;E=C,(g=i[(C=(I=g)+20|0)>>2])||(C=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[Q+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(n){C=i[Q+28>>2];B:{if(i[(g=36164+(C<<2)|0)>>2]==(0|Q)){if(i[g>>2]=I,I)break B;r=35864,o=i[8966]&lI(-2,C),i[r>>2]=o;break g}if(i[n+(i[n+16>>2]==(0|Q)?16:20)>>2]=I,!I)break g}i[I+24>>2]=n,(g=i[Q+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),(g=i[Q+20>>2])&&(i[I+20>>2]=g,i[g+24>>2]=I)}}if(i[B+4>>2]=1|A,i[A+B>>2]=A,i[8970]!=(0|B))break I;return void(i[8967]=A)}i[Q+4>>2]=-2&I,i[B+4>>2]=1|A,i[A+B>>2]=A}if(A>>>0<=255)return I=35900+((A=A>>>3|0)<<3)|0,(g=i[8965])&(A=1<>2]:(i[8965]=A|g,A=I),i[I+8>>2]=B,i[A+12>>2]=B,i[B+12>>2]=I,void(i[B+8>>2]=A);C=31,i[B+16>>2]=0,i[B+20>>2]=0,A>>>0<=16777215&&(I=A>>>8|0,I<<=E=I+1048320>>>16&8,C=28+((I=((I<<=C=I+520192>>>16&4)<<(g=I+245760>>>16&2)>>>15|0)-(g|C|E)|0)<<1|A>>>I+21&1)|0),i[B+28>>2]=C,E=36164+(C<<2)|0;I:{g:{if((g=i[8966])&(I=1<>>1|0)|0),I=i[E>>2];;){if(g=I,(-8&i[I+4>>2])==(0|A))break g;if(I=C>>>29|0,C<<=1,!(I=i[16+(E=g+(4&I)|0)>>2]))break}i[E+16>>2]=B,i[B+24>>2]=g}else i[8966]=I|g,i[E>>2]=B,i[B+24>>2]=E;i[B+12>>2]=B,i[B+8>>2]=B;break I}A=i[g+8>>2],i[A+12>>2]=B,i[g+8>>2]=B,i[B+24>>2]=0,i[B+12>>2]=g,i[B+8>>2]=A}A=i[8973]-1|0,i[8973]=A||-1}}}function m(A,I,g,B,C){var E,a,r,o,t,e,f,c,y,w,D,h,p,u,F,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0;for(s=E=s+-64|0,a=i[A+60>>2],r=i[A+56>>2],L=i[A+52>>2],J=i[A+48>>2],o=i[A+44>>2],t=i[A+40>>2],e=i[A+36>>2],f=i[A+32>>2],c=i[A+28>>2],y=i[A+24>>2],w=i[A+20>>2],D=i[A+16>>2],h=i[A+12>>2],p=i[A+8>>2],u=i[A+4>>2],F=i[A>>2];;){if(!C&B>>>0>63|C)_=g;else{if(H=0,_=wI(E,0,64),B|C)for(;Q[_+H|0]=n[I+H|0],!C&(H=H+1|0)>>>0>>0|C;);I=_,T=g}for(K=20,b=F,m=u,v=p,M=h,H=D,G=w,g=y,P=c,U=f,S=e,Y=t,N=a,d=r,l=L,k=J,x=o;R=H,b=cg((H=H+b|0)^k,16),k=cg(R^(U=b+U|0),12),R=U,U=cg((U=b)^(b=H+k|0),8),H=cg(k^(R=R+U|0),7),k=G,m=cg((G=G+m|0)^l,16),l=cg(k^(S=m+S|0),12),k=S,S=cg((S=m)^(m=G+l|0),8),G=cg(l^(X=k+S|0),7),l=g,v=cg((g=g+v|0)^d,16),l=d=cg(l^(Y=v+Y|0),12),d=cg((k=v)^(v=g+d|0),8),g=cg(l^(Y=d+Y|0),7),l=P,M=cg((P=P+M|0)^N,16),k=l=cg(l^(N=M+x|0),12),x=N,N=cg((N=M)^(M=P+l|0),8),P=cg(k^(l=x+N|0),7),k=Y,Y=cg((b=G+b|0)^N,16),G=cg((k=k+Y|0)^G,12),N=cg(Y^(b=G+b|0),8),G=cg(G^(Y=k+N|0),7),U=cg((m=g+m|0)^U,16),g=cg((l=U+l|0)^g,12),k=cg(U^(m=g+m|0),8),g=cg(g^(x=l+k|0),7),U=cg((v=P+v|0)^S,16),P=cg((S=U+R|0)^P,12),l=cg(U^(v=P+v|0),8),P=cg(P^(U=S+l|0),7),S=cg((M=H+M|0)^d,16),H=cg((R=S+X|0)^H,12),d=cg(S^(M=H+M|0),8),H=cg(H^(S=R+d|0),7),K=K-2|0;);if(K=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,R=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,X=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,V=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,q=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,z=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,j=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,W=n[I+32|0]|n[I+33|0]<<8|n[I+34|0]<<16|n[I+35|0]<<24,O=n[I+36|0]|n[I+37|0]<<8|n[I+38|0]<<16|n[I+39|0]<<24,Z=n[I+40|0]|n[I+41|0]<<8|n[I+42|0]<<16|n[I+43|0]<<24,$=n[I+44|0]|n[I+45|0]<<8|n[I+46|0]<<16|n[I+47|0]<<24,AA=n[I+48|0]|n[I+49|0]<<8|n[I+50|0]<<16|n[I+51|0]<<24,IA=n[I+52|0]|n[I+53|0]<<8|n[I+54|0]<<16|n[I+55|0]<<24,gA=n[I+56|0]|n[I+57|0]<<8|n[I+58|0]<<16|n[I+59|0]<<24,BA=n[I+60|0]|n[I+61|0]<<8|n[I+62|0]<<16|n[I+63|0]<<24,bI(_,b+F^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24)),bI(_+4|0,m+u^K),bI(_+8|0,v+p^R),bI(_+12|0,M+h^X),bI(_+16|0,H+D^V),bI(_+20|0,G+w^q),bI(_+24|0,g+y^z),bI(_+28|0,P+c^j),bI(_+32|0,U+f^W),bI(_+36|0,S+e^O),bI(_+40|0,Z^Y+t),bI(_+44|0,$^x+o),bI(_+48|0,AA^k+J),bI(_+52|0,IA^l+L),bI(_+56|0,gA^d+r),bI(_+60|0,BA^N+a),L=((J=(g=J)+1|0)>>>0>>0)+L|0,!C&B>>>0<=64){if(!(!B|!C&B>>>0>63|0!=(0|C)))for(G=0;Q[G+T|0]=n[_+G|0],(0|B)!=(0|(G=G+1|0)););i[A+52>>2]=L,i[A+48>>2]=J,s=E- -64|0;break}I=I- -64|0,g=_- -64|0,C=C-1|0,C=(B=B+-64|0)>>>0<4294967232?C+1|0:C}}function v(A,I){var g,B=0,C=0,Q=0,E=0,n=0,a=0,r=0;g=A+I|0;A:{I:if(!(1&(B=i[A+4>>2]))){if(!(3&B))break A;I=(B=i[A>>2])+I|0;g:{if((0|(A=A-B|0))!=i[8970]){if(B>>>0<=255){if(Q=i[A+8>>2],B=B>>>3|0,(0|(C=i[A+12>>2]))!=(0|Q))break g;a=35860,r=i[8965]&lI(-2,B),i[a>>2]=r;break I}if(n=i[A+24>>2],(0|(B=i[A+12>>2]))==(0|A))if((C=i[(Q=A+20|0)>>2])||(C=i[(Q=A+16|0)>>2])){for(;E=Q,(C=i[(Q=(B=C)+20|0)>>2])||(Q=B+16|0,C=i[B+16>>2]););i[E>>2]=0}else B=0;else C=i[A+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;if(!n)break I;Q=i[A+28>>2];B:{if(i[(C=36164+(Q<<2)|0)>>2]==(0|A)){if(i[C>>2]=B,B)break B;a=35864,r=i[8966]&lI(-2,Q),i[a>>2]=r;break I}if(i[n+(i[n+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}if(i[B+24>>2]=n,(C=i[A+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),!(C=i[A+20>>2]))break I;i[B+20>>2]=C,i[C+24>>2]=B;break I}if(3!=(3&(B=i[g+4>>2])))break I;return i[8967]=I,i[g+4>>2]=-2&B,i[A+4>>2]=1|I,void(i[g>>2]=I)}i[Q+12>>2]=C,i[C+8>>2]=Q}I:{if(!(2&(B=i[g+4>>2]))){if(i[8971]==(0|g)){if(i[8971]=A,I=i[8968]+I|0,i[8968]=I,i[A+4>>2]=1|I,i[8970]!=(0|A))break A;return i[8967]=0,void(i[8970]=0)}if(i[8970]==(0|g))return i[8970]=A,I=i[8967]+I|0,i[8967]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);I=(-8&B)+I|0;g:if(B>>>0<=255){if(Q=i[g+8>>2],B=B>>>3|0,(0|(C=i[g+12>>2]))==(0|Q)){a=35860,r=i[8965]&lI(-2,B),i[a>>2]=r;break g}i[Q+12>>2]=C,i[C+8>>2]=Q}else{if(n=i[g+24>>2],(0|g)==(0|(B=i[g+12>>2])))if((Q=i[(C=g+20|0)>>2])||(Q=i[(C=g+16|0)>>2])){for(;E=C,(Q=i[(C=(B=Q)+20|0)>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0}else B=0;else C=i[g+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;if(n){Q=i[g+28>>2];B:{if(i[(C=36164+(Q<<2)|0)>>2]==(0|g)){if(i[C>>2]=B,B)break B;a=35864,r=i[8966]&lI(-2,Q),i[a>>2]=r;break g}if(i[n+(i[n+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=n,(C=i[g+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[g+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[8970]!=(0|A))break I;return void(i[8967]=I)}i[g+4>>2]=-2&B,i[A+4>>2]=1|I,i[A+I>>2]=I}if(I>>>0<=255)return B=35900+((I=I>>>3|0)<<3)|0,(C=i[8965])&(I=1<>2]:(i[8965]=I|C,I=B),i[B+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=B,void(i[A+8>>2]=I);Q=31,i[A+16>>2]=0,i[A+20>>2]=0,I>>>0<=16777215&&(B=I>>>8|0,B<<=E=B+1048320>>>16&8,Q=28+((B=((B<<=Q=B+520192>>>16&4)<<(C=B+245760>>>16&2)>>>15|0)-(C|Q|E)|0)<<1|I>>>B+21&1)|0),i[A+28>>2]=Q,E=36164+(Q<<2)|0;I:{if((C=i[8966])&(B=1<>>1|0)|0),B=i[E>>2];;){if(C=B,(-8&i[B+4>>2])==(0|I))break I;if(B=Q>>>29|0,Q<<=1,!(B=i[16+(E=C+(4&B)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=C}else i[8966]=B|C,i[E>>2]=A,i[A+24>>2]=E;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[C+8>>2],i[I+12>>2]=A,i[C+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=C,i[A+8>>2]=I}}function M(A,I,g,B){var C=0,Q=0,E=0,a=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0;if(c=i[A+36>>2],a=i[A+32>>2],E=i[A+28>>2],Q=i[A+24>>2],o=i[A+20>>2],!B&g>>>0>=16|B)for(G=!n[A+80|0]<<24,s=i[A+4>>2],U=r(s,5),p=i[A+8>>2],H=r(p,5),_=i[A+12>>2],k=r(_,5),C=i[A+16>>2],u=r(C,5),S=C,w=i[A>>2];C=qA(t=((n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108863)+Q|0,0,_,0),e=h,Q=(y=qA(o=(67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24))+o|0,0,S,0))+C|0,C=h+e|0,C=Q>>>0>>0?C+1|0:C,f=Q,Q=qA(e=((n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67108863)+E|0,0,p,0),C=h+C|0,C=Q>>>0>(E=f+Q|0)>>>0?C+1|0:C,Q=E,E=qA(y=((n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6|0)+a|0,0,s,0),C=h+C|0,C=E>>>0>(a=Q+E|0)>>>0?C+1|0:C,Q=a,a=qA(D=c+G+((n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24)>>>8)|0,0,w,0),C=h+C|0,b=c=Q+a|0,c=a>>>0>c>>>0?C+1|0:C,C=qA(t,0,p,0),E=h,a=(Q=qA(o,0,_,0))+C|0,C=h+E|0,C=Q>>>0>a>>>0?C+1|0:C,E=qA(e,0,s,0),C=h+C|0,C=E>>>0>(a=E+a|0)>>>0?C+1|0:C,E=qA(y,0,w,0),C=h+C|0,C=E>>>0>(a=E+a|0)>>>0?C+1|0:C,E=qA(D,0,u,0),C=h+C|0,m=a=E+a|0,a=E>>>0>a>>>0?C+1|0:C,C=qA(t,0,s,0),Q=h,E=(F=qA(o,0,p,0))+C|0,C=h+Q|0,C=E>>>0>>0?C+1|0:C,Q=qA(e,0,w,0),C=h+C|0,C=Q>>>0>(E=Q+E|0)>>>0?C+1|0:C,Q=qA(y,0,u,0),C=h+C|0,C=Q>>>0>(E=Q+E|0)>>>0?C+1|0:C,Q=qA(D,0,k,0),C=h+C|0,F=E=Q+E|0,E=Q>>>0>E>>>0?C+1|0:C,C=qA(t,0,w,0),f=h,Q=(l=qA(o,0,s,0))+C|0,C=h+f|0,C=Q>>>0>>0?C+1|0:C,f=qA(e,0,u,0),C=h+C|0,C=(Q=f+Q|0)>>>0>>0?C+1|0:C,f=qA(y,0,k,0),C=h+C|0,C=(Q=f+Q|0)>>>0>>0?C+1|0:C,f=qA(D,0,H,0),C=h+C|0,C=(Q=f+Q|0)>>>0>>0?C+1|0:C,f=Q,Q=C,C=qA(t,0,u,0),l=h,t=(o=qA(o,0,w,0))+C|0,C=h+l|0,C=t>>>0>>0?C+1|0:C,o=qA(e,0,k,0),C=h+C|0,C=(t=o+t|0)>>>0>>0?C+1|0:C,o=qA(y,0,H,0),C=h+C|0,C=(t=o+t|0)>>>0>>0?C+1|0:C,o=qA(D,0,U,0),C=h+C|0,C=(t=o+t|0)>>>0>>0?C+1|0:C,o=t,e=(67108863&C)<<6|t>>>26,C=Q,e=(67108863&(C=(t=e+f|0)>>>0>>0?C+1|0:C))<<6|(Q=t)>>>26,C=E,C=(Q=e+F|0)>>>0>>0?C+1|0:C,e=Q,Q=(67108863&C)<<6|Q>>>26,C=a,y=E=Q+m|0,E=(67108863&(C=Q>>>0>E>>>0?C+1|0:C))<<6|E>>>26,C=c,c=a=E+b|0,Q=(67108863&t)+((C=r((67108863&(E>>>0>a>>>0?C+1|0:C))<<6|a>>>26,5)+(67108863&o)|0)>>>26|0)|0,E=67108863&e,a=67108863&y,c&=67108863,o=67108863&C,I=I+16|0,!(B=B-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|B;);i[A+20>>2]=o,i[A+36>>2]=c,i[A+32>>2]=a,i[A+28>>2]=E,i[A+24>>2]=Q}function P(A,I,g){var B,C,E,i,a=0,r=0,o=0,t=0,e=0;return s=E=s-160|0,_I(I,g,32,0),Q[0|I]=248&n[0|I],Q[I+31|0]=63&n[I+31|0]|64,BA(E,I),II(A,E),r=n[(C=g)+8|0]|n[C+9|0]<<8|n[C+10|0]<<16|n[C+11|0]<<24,a=n[C+12|0]|n[C+13|0]<<8|n[C+14|0]<<16|n[C+15|0]<<24,o=n[C+16|0]|n[C+17|0]<<8|n[C+18|0]<<16|n[C+19|0]<<24,t=n[C+20|0]|n[C+21|0]<<8|n[C+22|0]<<16|n[C+23|0]<<24,e=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,g=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i=n[C+28|0]|n[C+29|0]<<8|n[C+30|0]<<16|n[C+31|0]<<24,B=I,I=n[C+24|0]|n[C+25|0]<<8|n[C+26|0]<<16|n[C+27|0]<<24,Q[B+24|0]=I,Q[B+25|0]=I>>>8,Q[B+26|0]=I>>>16,Q[B+27|0]=I>>>24,Q[B+28|0]=i,Q[B+29|0]=i>>>8,Q[B+30|0]=i>>>16,Q[B+31|0]=i>>>24,Q[B+16|0]=o,Q[B+17|0]=o>>>8,Q[B+18|0]=o>>>16,Q[B+19|0]=o>>>24,Q[B+20|0]=t,Q[B+21|0]=t>>>8,Q[B+22|0]=t>>>16,Q[B+23|0]=t>>>24,Q[B+8|0]=r,Q[B+9|0]=r>>>8,Q[B+10|0]=r>>>16,Q[B+11|0]=r>>>24,Q[B+12|0]=a,Q[B+13|0]=a>>>8,Q[B+14|0]=a>>>16,Q[B+15|0]=a>>>24,Q[0|B]=e,Q[B+1|0]=e>>>8,Q[B+2|0]=e>>>16,Q[B+3|0]=e>>>24,Q[B+4|0]=g,Q[B+5|0]=g>>>8,Q[B+6|0]=g>>>16,Q[B+7|0]=g>>>24,o=n[(a=A)+8|0]|n[a+9|0]<<8|n[a+10|0]<<16|n[a+11|0]<<24,t=n[a+12|0]|n[a+13|0]<<8|n[a+14|0]<<16|n[a+15|0]<<24,e=n[a+16|0]|n[a+17|0]<<8|n[a+18|0]<<16|n[a+19|0]<<24,g=n[a+20|0]|n[a+21|0]<<8|n[a+22|0]<<16|n[a+23|0]<<24,I=n[0|a]|n[a+1|0]<<8|n[a+2|0]<<16|n[a+3|0]<<24,A=n[a+4|0]|n[a+5|0]<<8|n[a+6|0]<<16|n[a+7|0]<<24,r=n[a+28|0]|n[a+29|0]<<8|n[a+30|0]<<16|n[a+31|0]<<24,a=n[a+24|0]|n[a+25|0]<<8|n[a+26|0]<<16|n[a+27|0]<<24,Q[B+56|0]=a,Q[B+57|0]=a>>>8,Q[B+58|0]=a>>>16,Q[B+59|0]=a>>>24,Q[B+60|0]=r,Q[B+61|0]=r>>>8,Q[B+62|0]=r>>>16,Q[B+63|0]=r>>>24,Q[B+48|0]=e,Q[B+49|0]=e>>>8,Q[B+50|0]=e>>>16,Q[B+51|0]=e>>>24,Q[B+52|0]=g,Q[B+53|0]=g>>>8,Q[B+54|0]=g>>>16,Q[B+55|0]=g>>>24,Q[B+40|0]=o,Q[B+41|0]=o>>>8,Q[B+42|0]=o>>>16,Q[B+43|0]=o>>>24,Q[B+44|0]=t,Q[B+45|0]=t>>>8,Q[B+46|0]=t>>>16,Q[B+47|0]=t>>>24,Q[B+32|0]=I,Q[B+33|0]=I>>>8,Q[B+34|0]=I>>>16,Q[B+35|0]=I>>>24,Q[B+36|0]=A,Q[B+37|0]=A>>>8,Q[B+38|0]=A>>>16,Q[B+39|0]=A>>>24,s=E+160|0,0}function Y(A,I,g){var B,C=0,E=0;s=B=s+-64|0;A:{if((g-65&255)>>>0>191){if(C=-1,!(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24|n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)){if((C=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)>>>0>=129){if(CA(A,128),p(A,E=A+96|0),C=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,Q[A+352|0]=C,Q[A+353|0]=C>>>8,Q[A+354|0]=C>>>16,Q[A+355|0]=C>>>24,C>>>0>=129)break A;eI(E,A+224|0,C),C=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24}CA(A,C),n[A+356|0]&&(Q[A+88|0]=255,Q[A+89|0]=255,Q[A+90|0]=255,Q[A+91|0]=255,Q[A+92|0]=255,Q[A+93|0]=255,Q[A+94|0]=255,Q[A+95|0]=255),Q[A+80|0]=255,Q[A+81|0]=255,Q[A+82|0]=255,Q[A+83|0]=255,Q[A+84|0]=255,Q[A+85|0]=255,Q[A+86|0]=255,Q[A+87|0]=255,wI((C=A+96|0)+(E=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,0,256-E|0),p(A,C),QI(B,n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24),QI(8|B,n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24),QI(B+16|0,n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24),QI(B+24|0,n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24),QI(B+32|0,n[A+32|0]|n[A+33|0]<<8|n[A+34|0]<<16|n[A+35|0]<<24,n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24),QI(B+40|0,n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24),QI(B+48|0,n[A+48|0]|n[A+49|0]<<8|n[A+50|0]<<16|n[A+51|0]<<24,n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24),QI(B+56|0,n[A+56|0]|n[A+57|0]<<8|n[A+58|0]<<16|n[A+59|0]<<24,n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24),eI(I,B,g),Dg(A,64),Dg(C,256),C=0}return s=B- -64|0,C}xI(),t()}e(1299,1161,306,1086),t()}function N(A,I){var g,B,C,Q,E,a,r,o,t,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0,F=0;g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,u=uI(I+4|0),e=h,w=uI(I+7|0),y=h,p=uI(I+10|0),f=h,B=uI(I+13|0),s=h,c=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,C=uI(I+20|0),Q=h,E=uI(I+23|0),a=h,r=uI(I+26|0),o=h,t=uI(I+29|0),I=f<<3|p>>>29,F=f=p<<3,p=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,D=w<<5,y=I=y<<5|w>>>27,e=I=e<<6|(w=u)>>>26,u=I=16777216+(w<<=6)|0,I=(I=(e=I>>>0<16777216?e+1|0:e)>>25)+y|0,I=(e=D+(D=(33554431&e)<<7|u>>>25)|0)>>>0>>0?I+1|0:I,I=(F-(-33554432&p)|0)+((67108863&(I=(y=e+33554432|0)>>>0<33554432?I+1|0:I))<<6|y>>>26)|0,i[A+12>>2]=I,I=-67108864&y,i[A+8>>2]=e-I,I=0,y=c=(e=c)+16777216|0,c=I=c>>>0<16777216?1:I,F=e-(-33554432&y)|0,I=s<<2|(e=B)>>>30,s=e<<2,e=I,I=(I=f>>25)+e|0,e=I=(f=(D=s)+(s=(33554431&f)<<7|p>>>25)|0)>>>0>>0?I+1|0:I,s=I=f+33554432|0,I=((67108863&(e=I>>>0<33554432?e+1|0:e))<<6|I>>>26)+F|0,i[A+20>>2]=I,I=-67108864&s,i[A+16>>2]=f-I,f=(e=C)<<7,I=(I=Q<<7|e>>>25)+(e=c>>25)|0,I=(f=f+(c=(33554431&c)<<7|y>>>25)|0)>>>0>>0?I+1|0:I,f=e=f,c=e=e+33554432|0,e=I=e>>>0<33554432?I+1|0:I,I=-67108864&c,i[A+24>>2]=f-I,I=a<<5|(f=E)>>>27,s=f<<=5,y=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,I=(s-(-33554432&y)|0)+((67108863&e)<<6|c>>>26)|0,i[A+28>>2]=I,c=(e=r)<<4,e=I=o<<4|e>>>28,I=(I=f>>25)+e|0,I=(f=(s=c)+(c=(33554431&f)<<7|y>>>25)|0)>>>0>>0?I+1|0:I,f=e=f,c=e=e+33554432|0,e=I=e>>>0<33554432?I+1|0:I,I=-67108864&c,i[A+32>>2]=f-I,I=0,y=f=(f=t)<<2&33554428,I=(f=f+16777216|0)>>>0<16777216?I+1|0:I,e=(y-(33554432&f)|0)+((67108863&e)<<6|c>>>26)|0,i[A+36>>2]=e,f=qA((33554431&I)<<7|f>>>25,I>>>25|0,19,0),I=h,I=(e=f+g|0)>>>0>>0?I+1|0:I,I=(w-(-33554432&u)|0)+((67108863&(I=(f=e+33554432|0)>>>0<33554432?I+1|0:I))<<6|f>>>26)|0,i[A+4>>2]=I,I=A,A=-67108864&f,i[I>>2]=e-A}function R(A,I,g,B){var C,E=0;C=E=s,s=E=E-576&-64,i[E+188>>2]=0,bI(E+188|0,I);A:if(I>>>0<=64){if((0|OA(E+192|0,0,0,I))<0)break A;if((0|Cg(E+192|0,E+188|0,4,0))<0)break A;if((0|Cg(E+192|0,g,B,0))<0)break A;UI(E+192|0,A,I)}else if(!((0|OA(E+192|0,0,0,64))<0||(0|Cg(E+192|0,E+188|0,4,0))<0||(0|Cg(E+192|0,g,B,0))<0||(0|UI(E+192|0,E+112|0,64))<0)){if(g=i[E+116>>2],B=i[E+112>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(eI(g=E+48|0,B=E+112|0,64),(0|vA(B,64,g,64,0,0,0))<0)break A;if(g=i[E+116>>2],B=i[E+112>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}eI(g=E+48|0,B=E+112|0,64),(0|vA(B,I,g,64,0,0,0))<0||eI(A,E+112|0,I)}Dg(E+192|0,384),s=C}function d(A,I,g){var B,C,Q,E,i,a,r,o,t,e,f,c,y=0,s=0,w=0,D=0,h=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0;for(B=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,C=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,Q=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,E=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,i=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,a=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,r=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,k=1634760805,g=o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,w=B,S=C,D=Q,H=857760878,h=t=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,p=e=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,u=f=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,_=c=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,G=2036477234,I=E,F=1797285236,l=r,y=a,s=i;D=cg(s+k|0,7)^D,u=cg(D+k|0,9)^u,b=cg(u+D|0,13)^s,M=cg(u+b|0,18),s=cg(g+H|0,7)^_,U=cg(s+H|0,9)^y,g=cg(s+U|0,13)^g,_=cg(U+g|0,18),l=cg(h+G|0,7)^l,w=cg(l+G|0,9)^w,h=cg(l+w|0,13)^h,P=cg(w+h|0,18),y=cg(I+F|0,7)^S,p=cg(y+F|0,9)^p,m=cg(y+p|0,13)^I,Y=cg(p+m|0,18),g=cg((I=k^M)+y|0,7)^g,w=cg(g+I|0,9)^w,S=cg(g+w|0,13)^y,k=cg(w+S|0,18)^I,h=cg((I=H^_)+D|0,7)^h,p=cg(h+I|0,9)^p,D=cg(p+h|0,13)^D,H=cg(p+D|0,18)^I,I=cg((y=G^P)+s|0,7)^m,u=cg(I+y|0,9)^u,_=cg(I+u|0,13)^s,G=cg(u+_|0,18)^y,s=cg((F^=Y)+l|0,7)^b,y=cg(s+F|0,9)^U,l=cg(y+s|0,13)^l,F=cg(y+l|0,18)^F,U=v>>>0<18,v=v+2|0,U;);bI(A,k+1634760805|0),bI(A+4|0,g+o|0),bI(A+8|0,w+B|0),bI(A+12|0,S+C|0),bI(A+16|0,D+Q|0),bI(A+20|0,H+857760878|0),bI(A+24|0,h+t|0),bI(A+28|0,p+e|0),bI(A+32|0,u+f|0),bI(A+36|0,_+c|0),bI(A+40|0,G+2036477234|0),bI(A+44|0,I+E|0),bI(A+48|0,s+i|0),bI(A+52|0,y+a|0),bI(A+56|0,l+r|0),bI(A+60|0,F+1797285236|0)}function J(A,I,g,B,C,E){var i,a=0,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0;for(s=i=s-592|0,e=-1,f=A+32|0,a=32,o=1;t=(c=n[f+(a=a-1|0)|0])-(y=n[a+2752|0])>>8&o|255&t,o&=65535+(c^y)>>>8,a;);if(t&&!sA(A)){for(a=127&(-1^n[C+31|0]),t=30;a=-1^n[C+t|0]|a,t=t-1|0;);if(((255&a)-1&236-n[0|C])<<23>>31!=-1&&!sA(C)&&!V(i+128|0,C)){WI(a=i+384|0,E),z(a,A,32,0),z(a,C,32,0),z(a,I,g,B),MA(a,I=i+320|0),l(I),s=B=s-2272|0,oA(B+2016|0,I),oA(B+1760|0,f),DI(g=B+480|0,C=i+128|0),fI(I=B+320|0,C),tI(B,I),xA(I,B,g),tI(g=B+160|0,I),DI(C=B+640|0,g),xA(I,B,C),tI(g,I),DI(C=B+800|0,g),xA(I,B,C),tI(g,I),DI(C=B+960|0,g),xA(I,B,C),tI(g,I),DI(C=B+1120|0,g),xA(I,B,C),tI(g,I),DI(C=B+1280|0,g),xA(I,B,C),tI(g,I),DI(C=B+1440|0,g),xA(I,B,C),tI(g,I),DI(B+1600|0,g),hg(E=i+8|0),ng(E+40|0),ng(E+80|0),C=255;A:{for(;;){if(!(n[(I=C)+(B+2016|0)|0]|n[(B+1760|0)+I|0])){if(C=I-1|0,I)continue;break A}break}if(!((0|I)<0))for(;G(B+320|0,E),g=I,(0|(I=Q[(B+2016|0)+I|0]))>0?(tI(C=B+160|0,a=B+320|0),xA(a,C,(B+480|0)+r((254&I)>>>1|0,160)|0)):(0|I)>=0||(tI(C=B+160|0,a=B+320|0),JA(a,C,(B+480|0)+r((0-I&254)>>>1|0,160)|0)),(0|(o=Q[g+(B+1760|0)|0]))>0?(tI(I=B+160|0,C=B+320|0),TA(C,I,r((254&o)>>>1|0,120)+1568|0)):(0|o)>=0||(tI(C=B+160|0,I=B+320|0),s=t=s-48|0,yA(I,e=C+40|0,C),cA(a=I+40|0,e,C),H(e=I+80|0,I,40+(f=r((0-o&254)>>>1|0,120)+1568|0)|0),H(a,a,f),H(o=I+120|0,f+80|0,C+120|0),yA(t,C=C+80|0,C),cA(I,e,a),yA(a,e,a),cA(e,t,o),yA(o,t,o),s=t+48|0),hI(E,B+320|0),I=g-1|0,(0|g)>0;);}s=B+2272|0,II(I=i+288|0,E),w=-1,D=eg(I,A),e=((0|A)==(0|I)?w:D)|zA(A,I,32)}}return s=i+592|0,e}function x(A,I,g){var B=0,C=0,Q=0,E=0,i=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,h=0,p=0,u=0;for(Q=2036477234,t=857760878,e=1634760805,E=1797285236,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,B=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,C=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,a=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,c=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,y=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,w=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,D=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,f=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;r=o,e=cg((s=g)^(g=o+e|0),16),r=c=cg(r^(o=e+c|0),12),c=cg((s=e)^(e=g+c|0),8),o=cg(r^(h=c+o|0),7),r=B,t=cg((g=B+t|0)^f,16),r=f=cg(r^(B=t+y|0),12),f=cg((s=t)^(t=g+f|0),8),g=cg(r^(y=f+B|0),7),r=C,B=cg((Q=Q+C|0)^i,16),r=i=cg(r^(C=B+w|0),12),s=cg(B^(i=Q+i|0),8),Q=cg(r^(B=s+C|0),7),E=cg((C=I)^(I=E+a|0),16),a=cg((C=E+D|0)^a,12),I=cg(E^(p=I+a|0),8),E=cg(a^(C=I+C|0),7),r=B,B=cg((B=I)^(I=g+e|0),16),g=cg((a=r+B|0)^g,12),I=cg(B^(e=I+g|0),8),B=cg(g^(w=a+I|0),7),r=C,C=cg((g=Q+t|0)^c,16),Q=cg((a=r+C|0)^Q,12),g=cg(C^(t=g+Q|0),8),C=cg(Q^(D=a+g|0),7),a=cg((Q=E+i|0)^f,16),E=cg((i=a+h|0)^E,12),f=cg(a^(Q=Q+E|0),8),a=cg(E^(c=i+f|0),7),i=cg((E=o+p|0)^s,16),o=cg((y=i+y|0)^o,12),i=cg(i^(E=E+o|0),8),o=cg(o^(y=y+i|0),7),10!=(0|(u=u+1|0)););bI(A,e),bI(A+4|0,t),bI(A+8|0,Q),bI(A+12|0,E),bI(A+16|0,g),bI(A+20|0,f),bI(A+24|0,i),bI(A+28|0,I)}function L(A,I,g,B,C,E,n,a){A|=0,I|=0,g|=0,B|=0,C|=0,E|=0,n|=0;var r,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0,h=0;s=r=s-16|0,ag(a|=0);A:{I:if(B){D=4&a;g:for(;;){for(t=f;;){o=Q[g+t|0];B:{if(D?(e=o+4&(o+65488>>>8^-1)&(57-o>>>8^-1)&255|((e=o-65|0)>>>8^-1)&e&(90-o>>>8^-1)&255|o+185&(o+65439>>>8^-1)&(122-o>>>8^-1)&255|63&(1+(16288^o)>>>8^-1)|62&(1+(16338^o)>>>8^-1),e|=(0-e>>>8^-1)&1+(65470^o)>>>8&255):(e=o+4&(o+65488>>>8^-1)&(57-o>>>8^-1)&255|((e=o-65|0)>>>8^-1)&e&(90-o>>>8^-1)&255|o+185&(o+65439>>>8^-1)&(122-o>>>8^-1)&255|63&(1+(16336^o)>>>8^-1)|62&(1+(16340^o)>>>8^-1),e|=(0-e>>>8^-1)&1+(65470^o)>>>8&255),255==(0|e)){if(!C)break I;if(DA(C,o))break B;f=t;break I}if(w=e+(w<<6)|0,(f=c+6|0)>>>0<8)c=f;else{if(c=c-2|0,I>>>0<=y>>>0){i[r+12>>2]=t,i[8952]=68,h=1;break A}Q[A+y|0]=w>>>c,y=y+1|0}if((f=t+1|0)>>>0>>0)continue g;break I}if(!((t=t+1|0)>>>0>>0))break}break}f=(A=f+1|0)>>>0>>0?B:A}i[r+12>>2]=f}A:if(c>>>0>4)I=0,A=-1;else if(A=-1,I=0,!((-1<>>1|0)for(A=i[r+12>>2];;){if(A>>>0>=B>>>0){t=68;break g}if(61!=(0|(f=Q[A+g|0]))){if(t=28,!C)break g;if(!DA(C,f))break g}else a=a-1|0;if(A=A+1|0,i[r+12>>2]=A,!a)break}A=0;break I}i[8952]=t,A=-1}if(A)break A}if(A=0,C){I:if(!((t=i[r+12>>2])>>>0>=B>>>0)){for(;;){if(!DA(C,Q[g+t|0]))break I;if((0|(t=t+1|0))==(0|B))break}t=B}i[r+12>>2]=t}I=y}return C=i[r+12>>2],n?i[n>>2]=g+C:(0|B)!=(0|C)&&(i[8952]=28,A=-1),E&&(i[E>>2]=I),s=r+16|0,0|A}function K(A,I,g){var B=0,C=0,Q=0,E=0,i=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,h=0,p=0,u=0,F=0,l=0;for(C=2036477234,Q=857760878,E=1634760805,i=1797285236,w=20,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,s=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,D=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,c=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,t=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,a=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,e=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,f=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,r=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,B=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;h=B,B=cg(E+a|0,7)^c,y=h^cg(B+E|0,9),p=cg(B+y|0,13)^a,c=cg(y+p|0,18),I=cg(Q+o|0,7)^I,e=cg(I+Q|0,9)^e,o=cg(I+e|0,13)^o,F=cg(e+o|0,18),f=cg(g+C|0,7)^f,a=cg(f+C|0,9)^s,u=cg(a+f|0,13)^g,l=cg(a+u|0,18),g=cg(i+t|0,7)^D,r=cg(g+i|0,9)^r,t=cg(g+r|0,13)^t,h=cg(r+t|0,18),o=cg((E^=c)+g|0,7)^o,s=cg(o+E|0,9)^a,D=cg(o+s|0,13)^g,E=cg(s+D|0,18)^E,g=cg((Q^=F)+B|0,7)^u,r=cg(g+Q|0,9)^r,c=cg(g+r|0,13)^B,Q=cg(r+c|0,18)^Q,t=cg((C^=l)+I|0,7)^t,B=cg(t+C|0,9)^y,I=cg(B+t|0,13)^I,C=cg(I+B|0,18)^C,a=cg((i^=h)+f|0,7)^p,e=cg(a+i|0,9)^e,f=cg(a+e|0,13)^f,i=cg(e+f|0,18)^i,y=w>>>0>2,w=w-2|0,y;);return bI(A,E),bI(A+4|0,Q),bI(A+8|0,C),bI(A+12|0,i),bI(A+16|0,g),bI(A+20|0,r),bI(A+24|0,B),bI(A+28|0,I),0}function X(A){var I,g=0,B=0;s=I=s-48|0,g=n[28+(A|=0)|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,i[I+24>>2]=n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,i[I+28>>2]=g,g=n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24,i[I+16>>2]=n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,i[I+20>>2]=g,g=n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24,i[I>>2]=n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,i[I+4>>2]=g,g=n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24,i[I+8>>2]=n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,i[I+12>>2]=g,g=n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,i[I+32>>2]=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,i[I+36>>2]=g,vg[i[8752]](I,I,40,0,A+32|0,0,A),g=i[I+28>>2],B=i[I+24>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,g=i[I+36>>2],B=i[I+32>>2],Q[A+36|0]=B,Q[A+37|0]=B>>>8,Q[A+38|0]=B>>>16,Q[A+39|0]=B>>>24,Q[A+40|0]=g,Q[A+41|0]=g>>>8,Q[A+42|0]=g>>>16,Q[A+43|0]=g>>>24,YI(A),s=I+48|0}function T(A,I){var g,B,C,E,n,a,o,t,e=0,f=0;s=g=s-48|0,B=i[I+28>>2],C=i[I+24>>2],E=i[I+20>>2],n=i[I+16>>2],a=i[I+12>>2],o=i[I+8>>2],t=i[I+4>>2],e=i[I>>2],f=i[I+36>>2],I=i[I+32>>2],e=r(((B+(C+(E+(n+(a+(o+(t+(e+(r(f,19)+16777216>>>25|0)>>26)>>25)>>26)>>25)>>26)>>25)>>26)>>25)+I>>26)+f>>25,19)+e|0,i[g>>2]=67108863&e,e=t+(e>>26)|0,i[g+4>>2]=33554431&e,e=o+(e>>25)|0,i[g+8>>2]=67108863&e,e=a+(e>>26)|0,i[g+12>>2]=33554431&e,e=n+(e>>25)|0,i[g+16>>2]=67108863&e,e=E+(e>>26)|0,i[g+20>>2]=33554431&e,e=C+(e>>25)|0,i[g+24>>2]=67108863&e,e=B+(e>>26)|0,i[g+28>>2]=33554431&e,I=I+(e>>25)|0,i[g+32>>2]=67108863&I,i[g+36>>2]=f+(I>>26)&33554431,I=i[g>>2],Q[0|A]=I,Q[A+2|0]=I>>>16,Q[A+1|0]=I>>>8,f=i[g+4>>2],Q[A+5|0]=f>>>14,Q[A+4|0]=f>>>6,Q[A+3|0]=f<<2|I>>>24,I=i[g+8>>2],Q[A+8|0]=I>>>13,Q[A+7|0]=I>>>5,Q[A+6|0]=I<<3|f>>>22,f=i[g+12>>2],Q[A+11|0]=f>>>11,Q[A+10|0]=f>>>3,Q[A+9|0]=f<<5|I>>>21,I=i[g+16>>2],Q[A+15|0]=I>>>18,Q[A+14|0]=I>>>10,Q[A+13|0]=I>>>2,Q[A+12|0]=I<<6|f>>>19,I=i[g+20>>2],Q[A+16|0]=I,Q[A+18|0]=I>>>16,Q[A+17|0]=I>>>8,f=i[g+24>>2],Q[A+21|0]=f>>>15,Q[A+20|0]=f>>>7,Q[A+19|0]=f<<1|I>>>24,I=i[g+28>>2],Q[A+24|0]=I>>>13,Q[A+23|0]=I>>>5,Q[A+22|0]=I<<3|f>>>23,f=i[g+32>>2],Q[A+27|0]=f>>>12,Q[A+26|0]=f>>>4,Q[A+25|0]=f<<4|I>>>21,I=i[g+36>>2],Q[A+31|0]=I>>>18,Q[A+30|0]=I>>>10,Q[A+29|0]=I>>>2,Q[A+28|0]=I<<6|f>>>20,s=g+48|0}function V(A,I){var g,B,C,Q,E,i=0,a=0,r=0;for(s=g=s-288|0,N(E=A+40|0,I),ng(a=A+80|0),U(B=g+240|0,E),H(C=g+192|0,B,1424),cA(B,B,a),yA(C,C,a),U(Q=g+144|0,C),H(Q,Q,C),U(A,Q),H(A,A,C),H(A,A,B),s=a=s-144|0,U(i=a+96|0,A),U(r=a+48|0,i),U(r,r),H(r,A,r),H(i,i,r),U(i,i),H(i,r,i),U(r,i),i=1;U(r=a+48|0,r),5!=(0|(i=i+1|0)););for(H(i=a+96|0,r=a+48|0,i),U(r,i),i=1;U(r=a+48|0,r),10!=(0|(i=i+1|0)););for(H(i=a+48|0,i,a+96|0),U(a,i),i=1;U(a,a),20!=(0|(i=i+1|0)););for(H(i=a+48|0,a,i),i=1;U(r=a+48|0,r),11!=(0|(i=i+1|0)););for(H(i=a+96|0,r=a+48|0,i),U(r,i),i=1;U(r=a+48|0,r),50!=(0|(i=i+1|0)););for(H(i=a+48|0,i,a+96|0),U(a,i),i=1;U(a,a),100!=(0|(i=i+1|0)););for(H(i=a+48|0,a,i),i=1;U(r=a+48|0,r),51!=(0|(i=i+1|0)););H(i=a+96|0,a+48|0,i),U(i,i),U(i,i),H(A,i,A),s=a+144|0,H(A,A,Q),H(A,A,B),U(a=g+96|0,A),H(a,a,C),cA(i=g+48|0,a,B);A:{if(!mI(i)){if(yA(g,g+96|0,g+240|0),a=-1,!mI(g))break A;H(A,A,1472)}(0|vI(A))==(n[I+31|0]>>>7|0)&&kA(A,A),H(A+120|0,A,E),a=0}return s=g+288|0,a}function q(A,I,g,B,C){var E,a,r=0,o=0,t=0;for(s=E=(s=a=s-416|0)-192|0,GI(a),wI(E- -64|0,54,128),Q[E+64|0]=54^n[0|C],r=1;Q[0|(o=(E- -64|0)+r|0)]=n[0|o]^n[C+r|0],32!=(0|(r=r+1|0)););for(z(a,r=E- -64|0,128,0),GI(o=a+208|0),wI(r,92,128),Q[E+64|0]=92^n[0|C],r=1;Q[0|(t=(E- -64|0)+r|0)]=n[0|t]^n[C+r|0],32!=(0|(r=r+1|0)););return z(o,C=E- -64|0,128,0),Dg(C,128),Dg(E,64),s=E+192|0,z(a,I,g,B),s=g=(s=I=s+-64|0)-64|0,MA(a,g),z(B=a+208|0,g,64,0),MA(B,I),Dg(g,64),s=g- -64|0,g=i[I+28>>2],B=i[I+24>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,s=I- -64|0,s=a+416|0,0}function z(A,I,g,B){var C,E=0,a=0,r=0,o=0,t=0,e=0;s=C=s-704|0;A:if(g|B){if(r=B<<3|(E=g)>>>29,a=(t=i[A+72>>2])+(e=E<<3)|0,E=r+(o=i[A+76>>2])|0,i[A+72>>2]=a,E=a>>>0>>0?E+1|0:E,i[A+76>>2]=E,r=(e=(0|E)==(0|o)&a>>>0>>0|E>>>0>>0)+i[(a=A- -64|0)>>2]|0,E=i[a+4>>2],E=r>>>0>>0?E+1|0:E,r=(e=B>>>29|0)+r|0,i[a>>2]=r,i[a+4>>2]=r>>>0>>0?E+1|0:E,a=0,E=0,(0|(r=0-((o=127&((7&o)<<29|t>>>3))>>>0>128)|0))==(0|B)&g>>>0<(t=128-o|0)>>>0|B>>>0>>0)for(;;)if(Q[80+(A+(t=a+o|0)|0)|0]=n[I+a|0],!((0|g)!=(0|(a=a+1|0))|(0|B)!=(0|(E=a?E:E+1|0))))break A;for(;Q[80+(A+(e=a+o|0)|0)|0]=n[I+a|0],(0|t)!=(0|(a=a+1|0))|(0|(E=a?E:E+1|0))!=(0|r););if(F(A,A+80|0,C,E=C+640|0),I=I+t|0,!(B=B-((g>>>0>>0)+r|0)|0)&(g=g-t|0)>>>0>127|B)for(;F(A,I,C,E),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B)for(a=0,E=0;Q[80+(A+a|0)|0]=n[I+a|0],(0|g)!=(0|(a=o=a+1|0))|(0|B)!=(0|(E=o?E:E+1|0)););Dg(C,704)}return s=C+704|0,0}function j(A,I,g){var B,C,Q,E=0;s=B=s-16|0,C=i[A+20>>2],i[A+20>>2]=0,Q=i[A+4>>2],i[A+4>>2]=0,E=-26;A:{I:{g:switch(g-1|0){case 1:if(E=-32,LA(I,1109,9))break A;I=I+9|0;break I;case 0:break g;default:break A}if(E=-32,LA(I,1100,8))break A;I=I+8|0}if(!LA(I,1352,3)&&(I=_A(I+3|0,B+12|0))){if(E=-26,19!=i[B+12>>2])break A;if(!LA(I,1364,3)&&(I=_A(I+3|0,B+12|0))&&(i[A+44>>2]=i[B+12>>2],!LA(I,1356,3)&&(I=_A(I+3|0,B+12|0))&&(i[A+40>>2]=i[B+12>>2],!LA(I,1360,3)&&(I=_A(I+3|0,B+12|0))&&(g=i[B+12>>2],i[A+48>>2]=g,i[A+52>>2]=g,36==(0|(g=n[0|I]))&&(i[B+12>>2]=C,I=I+(36==(0|g))|0,!L(i[A+16>>2],C,I,mA(I),0,B+12|0,B+8|0,3)&&(i[A+20>>2]=i[B+12>>2],I=i[B+8>>2],36==(0|(g=n[0|I]))&&(i[B+12>>2]=Q,I=I+(36==(0|g))|0,!L(i[A>>2],Q,I,mA(I),0,B+12|0,B+8|0,3)))))))){if(i[A+4>>2]=i[B+12>>2],I=i[B+8>>2],E=nA(A))break A;E=n[0|I]?-32:0;break A}}E=-32}return s=B+16|0,E}function W(A,I){var g,B,C,E,n,a,o,t,e,f,c,y=0,s=0,w=0,D=0,h=0,p=0;(s=i[A+56>>2])|(y=i[A+60>>2])&&(Q[(D=A+s|0)- -64|0]=1,!(y=(w=s+1|0)?y:y+1|0)&w>>>0<=15&&wI(D+65|0,0,15-s|0),Q[A+80|0]=1,M(A,A- -64|0,16,0)),e=i[A+52>>2],f=i[A+48>>2],c=i[A+44>>2],h=i[A+24>>2],w=i[A+28>>2]+(h>>>26|0)|0,s=i[A+32>>2]+(w>>>26|0)|0,C=i[A+36>>2]+(s>>>26|0)|0,a=67108863&s,w=(s=(67108863&h)+((y=i[A+20>>2]+r(C>>>26|0,5)|0)>>>26|0)|0)&(g=(E=(-67108864|C)+((o=a+((h=(p=67108863&w)+((y=s+((n=5+(D=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>31)|(B=67108863&(t=(E>>>31|0)-1|0))&y,y=0,y=(s=w<<26|B&n|D&g)>>>0>(D=s+i[A+40>>2]|0)>>>0?1:y,bI(I,D),s=0,s=(w=(p=p&g|h&B)<<20|w>>>6)>>>0>(h=w+c|0)>>>0?1:s,w=y,h=y+h|0,y=s,y=w>>>0>h>>>0?y+1|0:y,bI(I+4|0,h),s=0,s=(w=(D=g&a|B&o)<<14|p>>>12)>>>0>(p=w+f|0)>>>0?1:s,w=y,p=y+p|0,y=s,y=w>>>0>p>>>0?y+1|0:y,bI(I+8|0,p),bI(s=I+12|0,y=y+(D=(I=(E&t|g&C)<<8|D>>>18)+e|0)|0),Dg(A,88)}function O(A,I){var g,B,C=0;for(s=g=s-192|0,U(B=g+144|0,I),U(C=g+96|0,B),U(C,C),H(C,I,C),H(B,B,C),U(I=g+48|0,B),H(C,C,I),U(I,C),I=1;U(C=g+48|0,C),5!=(0|(I=I+1|0)););for(H(I=g+96|0,C=g+48|0,I),U(C,I),I=1;U(C=g+48|0,C),10!=(0|(I=I+1|0)););for(H(I=g+48|0,I,g+96|0),U(g,I),I=1;U(g,g),20!=(0|(I=I+1|0)););for(H(I=g+48|0,g,I),I=1;U(C=g+48|0,C),11!=(0|(I=I+1|0)););for(H(I=g+96|0,C=g+48|0,I),U(C,I),I=1;U(C=g+48|0,C),50!=(0|(I=I+1|0)););for(H(I=g+48|0,I,g+96|0),U(g,I),I=1;U(g,g),100!=(0|(I=I+1|0)););for(H(I=g+48|0,g,I),I=1;U(C=g+48|0,C),51!=(0|(I=I+1|0)););for(H(I=g+96|0,g+48|0,I),I=1;U(C=g+96|0,C),6!=(0|(I=I+1|0)););H(A,g+96|0,g+144|0),s=g+192|0}function Z(A,I,g,B,C){A|=0,I|=0,g|=0,B|=0;var E=0,i=0,a=0,o=0,f=0,c=0,y=0,s=0;ag(C|=0),i=(E=(B>>>0)/3|0)<<2,(E=r(E,-3)+B|0)&&(i=2&C?(2|i)+(E>>>1|0)|0:i+4|0);A:{I:{g:{if(I>>>0>i>>>0){if(!(4&C)){if(C=0,!B)break A;E=0;break g}if(C=0,!B)break A;for(E=0;;){for(f=(o=n[g+a|0])|f<<8,E=E+8|0;c=E,y=A+C|0,s=Qg(f>>>(E=E-6|0)&63),Q[0|y]=s,C=C+1|0,E>>>0>5;);if((0|(a=a+1|0))==(0|B))break}if(!E)break A;g=Qg(o<<12-c&63);break I}xI(),t()}for(;;){for(f=(o=n[g+a|0])|f<<8,E=E+8|0;c=E,y=A+C|0,s=Eg(f>>>(E=E-6|0)&63),Q[0|y]=s,C=C+1|0,E>>>0>5;);if((0|(a=a+1|0))==(0|B))break}if(!E)break A;g=Eg(o<<12-c&63)}Q[A+C|0]=g,C=C+1|0}A:{I:{if(C>>>0<=i>>>0){if(C>>>0>>0)break I;i=C;break A}e(1048,1145,230,1375),t()}wI(A+C|0,61,i-C|0)}return wI(A+i|0,0,(I>>>0>(g=i+1|0)>>>0?I:g)-i|0),0|A}function $(A,I,g,B){var C=0,E=0,a=0,r=0,o=0,t=0;A:{if((r=i[A+56>>2])|(o=i[A+60>>2])){if(t=C=(a=(0|(C=0-((r>>>0>16)+o|0)|0))==(0|B)&g>>>0>(E=16-r|0)>>>0|B>>>0>C>>>0)?C:B,C|(E=a?E:g))for(a=0,C=0;Q[(A+(o=a+r|0)|0)- -64|0]=n[I+a|0],r=i[A+56>>2],o=i[A+60>>2],(0|E)!=(0|(a=a+1|0))|(0|(C=a?C:C+1|0))!=(0|t););if(C=o+t|0,C=(r=E+r|0)>>>0>>0?C+1|0:C,i[A+56>>2]=r,i[A+60>>2]=C,!C&r>>>0<16)break A;M(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(C=g)-E|0,B=B-((C>>>0>>0)+t|0)|0,I=I+E|0}if(!B&g>>>0>=16|B&&(M(A,I,C=-16&g,B),g&=15,B=0,I=I+C|0),g|B){for(a=0,C=0;E=a+i[A+56>>2]|0,Q[(A+E|0)- -64|0]=n[I+a|0],a=E=a+1|0,(0|g)!=(0|E)|(0|B)!=(0|(C=E?C:C+1|0)););I=B+i[A+60>>2]|0,I=(C=g+i[A+56>>2]|0)>>>0>>0?I+1|0:I,i[A+56>>2]=C,i[A+60>>2]=I}}}function AA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y=0,s=0,w=0,D=0,h=0,p=0,u=0,F=0,l=0;B=i[I+4>>2],C=i[A+4>>2],Q=i[I+8>>2],s=i[A+8>>2],E=i[I+12>>2],w=i[A+12>>2],n=i[I+16>>2],D=i[A+16>>2],a=i[I+20>>2],h=i[A+20>>2],r=i[I+24>>2],p=i[A+24>>2],o=i[I+28>>2],u=i[A+28>>2],t=i[I+32>>2],F=i[A+32>>2],e=i[I+36>>2],l=i[A+36>>2],c=(g=0-g|0)&((f=i[I>>2])^(y=i[A>>2])),i[A>>2]=c^y,y=l,l=g&(l^e),i[A+36>>2]=y^l,y=F,F=g&(F^t),i[A+32>>2]=y^F,y=u,u=g&(u^o),i[A+28>>2]=y^u,y=p,p=g&(p^r),i[A+24>>2]=y^p,y=h,h=g&(h^a),i[A+20>>2]=y^h,y=D,D=g&(D^n),i[A+16>>2]=y^D,y=w,w=g&(w^E),i[A+12>>2]=y^w,y=s,s=g&(s^Q),i[A+8>>2]=y^s,y=A,A=g&(B^C),i[y+4>>2]=A^C,i[I+36>>2]=l^e,i[I+32>>2]=F^t,i[I+28>>2]=u^o,i[I+24>>2]=p^r,i[I+20>>2]=h^a,i[I+16>>2]=D^n,i[I+12>>2]=w^E,i[I+8>>2]=s^Q,i[I+4>>2]=A^B,i[I>>2]=f^c}function IA(A,I){var g;i[A>>2]=67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),i[A+4>>2]=(n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6&66076671,g=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+44>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+48>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,I=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,Q[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I}function gA(A,I,g,B){var C=0,E=0,i=0,a=0,r=0,o=0;if(g|B){if(!B&(E=256-(C=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0)>>>0>>0|B)for(o=A+224|0,a=A+96|0;eI(96+(A+C|0)|0,I,E),i=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)+E|0,Q[A+352|0]=i,Q[A+353|0]=i>>>8,Q[A+354|0]=i>>>16,Q[A+355|0]=i>>>24,CA(A,128),p(A,a),eI(a,o,128),C=(r=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,Q[A+352|0]=C,Q[A+353|0]=C>>>8,Q[A+354|0]=C>>>16,Q[A+355|0]=C>>>24,I=I+E|0,i=g,g=g-E|0,!(B=B-(E>>>0>i>>>0)|0)&(E=384-r|0)>>>0>>0|B;);eI(96+(A+C|0)|0,I,g),I=g+(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,Q[A+352|0]=I,Q[A+353|0]=I>>>8,Q[A+354|0]=I>>>16,Q[A+355|0]=I>>>24}return 0}function BA(A,I){var g,B=0,C=0,E=0,i=0;for(s=g=s-464|0;C=(g+400|0)+(B<<1)|0,i=n[I+B|0],Q[C+1|0]=i>>>4,Q[0|C]=15&i,32!=(0|(B=B+1|0)););for(B=0;I=((C=(I=B)+n[0|(B=(g+400|0)+E|0)]|0)<<24)- -134217728|0,Q[0|B]=C-(I>>24&240),B=I>>28,63!=(0|(E=E+1|0)););for(Q[g+463|0]=n[g+463|0]+B,LI(A),B=1;FA(g,B>>>1|0,Q[(g+400|0)+B|0]),TA(I=g+240|0,A,g),tI(A,I),I=B>>>0<62,B=B+2|0,I;);for(fI(I=g+240|0,A),hI(B=g+120|0,I),G(I,B),hI(B,I),G(I,B),hI(B,I),G(I,B),tI(A,I),B=0;FA(g,B>>>1|0,Q[(g+400|0)+B|0]),TA(I=g+240|0,A,g),tI(A,I),I=B>>>0<62,B=B+2|0,I;);s=g+464|0}function CA(A,I){var g,B,C,E=0,i=0;C=1+(i=g=n[4+(E=A- -64|0)|0]|n[E+5|0]<<8|n[E+6|0]<<16|n[E+7|0]<<24)|0,i=(I=I+(i=B=n[0|E]|n[E+1|0]<<8|n[E+2|0]<<16|n[E+3|0]<<24)|0)>>>0>>0?C:g,Q[0|E]=I,Q[E+1|0]=I>>>8,Q[E+2|0]=I>>>16,Q[E+3|0]=I>>>24,Q[E+4|0]=i,Q[E+5|0]=i>>>8,Q[E+6|0]=i>>>16,Q[E+7|0]=i>>>24,I=(E=(0|i)==(0|g)&I>>>0>>0|i>>>0>>0)+(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)|0,i=n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24,E=I>>>0>>0?i+1|0:i,Q[A+72|0]=I,Q[A+73|0]=I>>>8,Q[A+74|0]=I>>>16,Q[A+75|0]=I>>>24,Q[A+76|0]=E,Q[A+77|0]=E>>>8,Q[A+78|0]=E>>>16,Q[A+79|0]=E>>>24}function QA(A,I){i[A>>2]=1634760805,i[A+4>>2]=857760878,i[A+8>>2]=2036477234,i[A+12>>2]=1797285236,i[A+16>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+20>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+24>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,i[A+28>>2]=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+32>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+36>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+40>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,i[A+44>>2]=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24}function EA(A,I,g,B,C,Q,E){var n,a,r,o,t,e=0;return s=n=s-352|0,K(n,Q,E),!((!C&B>>>0>A-g>>>0|0!=(0|C))&A>>>0>g>>>0)&(!C&B>>>0<=g-A>>>0|A>>>0>=g>>>0)||(g=gI(A,g,B)),i[n+56>>2]=0,i[n+60>>2]=0,i[n+48>>2]=0,i[n+52>>2]=0,i[n+40>>2]=0,i[n+44>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,(r=!((E=(e=!C&B>>>0<32)?B:32)|(e=e?C:0)))||eI(n- -64|0,g,E),o=Q+16|0,XI(a=n+32|0,a,t=E+32|0,Q=t>>>0<32?e+1|0:e,o,n),og(n+96|0,a),r||eI(A,n- -64|0,E),Dg(n+32|0,64),!C&B>>>0>=33|C&&KI(A+E|0,g+E|0,B-E|0,C-(e+(B>>>0>>0)|0)|0,o,n),Dg(n,32),gg(g=n+96|0,A,B,C),tg(g,I),Dg(g,256),s=n+352|0,0}function iA(A,I,g,B,C,Q,E){var n,a,r=0,o=0,t=0;s=n=s-96|0,K(n,Q,E),E=n+32|0,a=Q+16|0,vg[i[8760]](E,32,0,a,n),Q=-1;A:{if(!(0|vg[i[8754]](g,I,B,C,E))){if(Q=0,!A)break A;!((!C&B>>>0>I-A>>>0|0!=(0|C))&A>>>0>>0)&(!C&B>>>0<=A-I>>>0|A>>>0<=I>>>0)||(I=gI(A,I,B)),g=(Q=!C&B>>>0<32)?B:32,E=Q=Q?C:0,g|Q?(o=eI(n- -64|0,I,g),r=Q=n+32|0,Q=E,XI(r,r,t=g+32|0,Q=t>>>0<32?Q+1|0:Q,a,n),eI(A,o,g)):(r=Q=n+32|0,Q=E,XI(r,r,o=g+32|0,Q=o>>>0<32?Q+1|0:Q,a,n)),Q=0,!C&B>>>0<33||KI(A+g|0,I+g|0,B-g|0,C-(E+(g>>>0>B>>>0)|0)|0,a,n)}Dg(n,32)}return s=n+96|0,Q}function nA(A){var I=0,g=0,B=0;if(!A)return-25;if(!i[A>>2])return-1;if(I=-2,!(a[A+4>>2]<16)&&(i[A+8>>2]||(I=-18,!i[A+12>>2]))){if(g=i[A+20>>2],!i[A+16>>2])return g?-19:-6;if(I=-6,!(g>>>0<8)&&(i[A+24>>2]||(I=-20,!i[A+28>>2]))&&(i[A+32>>2]||(I=-21,!i[A+36>>2]))){if(!(g=i[A+48>>2]))return-16;if(I=-17,!(g>>>0>16777215||(I=-14,(B=i[A+44>>2])>>>0<8||(I=-15,B>>>0>2097152||(I=-14,g<<3>>>0>B>>>0))))){if(!i[A+40>>2])return-12;if(!(A=i[A+52>>2]))return-28;I=A>>>0>16777215?-29:0}}}return I}function aA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y,s,w,D,h,p,u,F;f=i[I+4>>2],B=i[A+4>>2],c=i[I+8>>2],C=i[A+8>>2],y=i[I+12>>2],Q=i[A+12>>2],s=i[I+16>>2],E=i[A+16>>2],w=i[I+20>>2],n=i[A+20>>2],D=i[I+24>>2],a=i[A+24>>2],h=i[I+28>>2],r=i[A+28>>2],p=i[I+32>>2],o=i[A+32>>2],u=i[I+36>>2],t=i[A+36>>2],e=i[A>>2],F=i[I>>2]^e,I=0-g|0,i[A>>2]=e^F&I,i[A+36>>2]=I&(t^u)^t,i[A+32>>2]=I&(o^p)^o,i[A+28>>2]=I&(r^h)^r,i[A+24>>2]=I&(a^D)^a,i[A+20>>2]=I&(n^w)^n,i[A+16>>2]=I&(E^s)^E,i[A+12>>2]=I&(Q^y)^Q,i[A+8>>2]=I&(C^c)^C,i[A+4>>2]=I&(B^f)^B}function rA(A,I,g,B,C,Q,E,a,r,o){var t,e,f,c;return s=t=s-48|0,i[t+4>>2]=0,x(e=t+16|0,r,o),o=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[t+8>>2]=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,i[t+12>>2]=o,s=o=s-352|0,$I(f=o+32|0,64,c=t+4|0,e),og(r=o+96|0,f),Dg(f,64),gg(r,Q,E,a),gg(r,34960,0-E&15,0),gg(r,I,g,B),gg(r,34960,0-g&15,0),QI(Q=o+24|0,E,a),gg(r,Q,8,0),QI(Q,g,B),gg(r,Q,8,0),tg(r,o),Dg(r,256),C=rg(o,C),Dg(o,16),A&&(C?(wI(A,0,g),C=-1):(kI(A,I,g,B,c,1,e),C=0)),s=o+352|0,Dg(e,32),s=t+48|0,C}function oA(A,I){for(var g=0,B=0,C=0,E=0,i=0,a=0,r=0,o=0;Q[A+g|0]=n[(g>>>3|0)+I|0]>>>(7&g)&1,256!=(0|(g=g+1|0)););for(;;){a=(I=a)+1|0;A:if(n[0|(i=A+I|0)]&&(g=a,C=1,!(I>>>0>254)))for(;;){I:if(E=Q[0|(B=A+g|0)])if((0|(o=(r=Q[0|i])+(E<<=C)|0))<=15)Q[0|i]=o,Q[0|B]=0;else{if((0|(B=r-E|0))<-15)break A;for(Q[0|i]=B;;){if(!n[0|(B=A+g|0)]){Q[0|B]=1;break I}if(Q[0|B]=0,B=g>>>0<255,g=g+1|0,!B)break}}if(C>>>0>5)break A;if(!((g=I+(C=C+1|0)|0)>>>0<256))break}if(256==(0|a))break}}function tA(A,I,g,B){var C,Q,E,n,a=0;s=C=s+-64|0,wI(C+8|0,0,52),a=mA(A),i[C+20>>2]=a,i[C+36>>2]=a,i[C+4>>2]=a,Q=k(a),i[C+32>>2]=Q,E=k(a),i[C+16>>2]=E,n=k(a),i[C>>2]=n;A:if(!n|!Q|!E||!(a=k(a)))b(Q),b(E),b(n),A=-22;else{if(A=j(C,A,B)){b(i[C+32>>2]),b(i[C+16>>2]),b(i[C>>2]),b(a);break A}A=0,I=_(i[C+40>>2],i[C+44>>2],i[C+52>>2],I,g,i[C+16>>2],i[C+20>>2],a,i[C+4>>2],0,0,B),b(i[C+32>>2]),b(i[C+16>>2]),(I||zA(a,i[C>>2],i[C+4>>2]))&&(A=-35),b(a),b(i[C>>2])}return s=C- -64|0,A}function eA(A,I,g,B,C){var Q,E=0,a=0;s=Q=s+-64|0;A:{I:{if(!g&(a=mA(A))>>>0<128){if(i[Q+56>>2]=0,i[Q+48>>2]=0,i[Q+52>>2]=0,i[Q+40>>2]=0,i[Q+44>>2]=0,g=0,a&&(g=a),!(E=k(g))|!(3&n[E-4|0])||wI(E,0,g),E)break I}else i[8952]=28;A=-1;break A}i[Q+32>>2]=0,i[Q+36>>2]=0,i[Q+8>>2]=E,i[Q+16>>2]=E,i[Q+20>>2]=a,i[Q>>2]=E,i[Q+12>>2]=a,i[Q+24>>2]=0,i[Q+28>>2]=0,i[Q+4>>2]=a,j(Q,A,C)?(i[8952]=28,A=-1):A=(0|I)!=i[Q+40>>2]|i[Q+44>>2]!=(B>>>10|0),b(E)}return s=Q- -64|0,A}function fA(A,I,g,B,C,Q,E,a,r,o,t){var e,f,c,y;return s=e=s-48|0,i[e+4>>2]=0,x(f=e+16|0,o,t),t=n[o+20|0]|n[o+21|0]<<8|n[o+22|0]<<16|n[o+23|0]<<24,i[e+8>>2]=n[o+16|0]|n[o+17|0]<<8|n[o+18|0]<<16|n[o+19|0]<<24,i[e+12>>2]=t,s=t=s-336|0,$I(c=t+16|0,64,y=e+4|0,f),og(o=t+80|0,c),Dg(c,64),gg(o,E,a,r),gg(o,34960,0-a&15,0),kI(A,B,C,Q,y,1,f),gg(o,A,C,Q),gg(o,34960,0-C&15,0),QI(A=t+8|0,a,r),gg(o,A,8,0),QI(A,C,Q),gg(o,A,8,0),tg(o,I),Dg(o,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,Dg(f,32),s=e+48|0,0}function cA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y,s,w,D,h,p;B=i[g+4>>2],C=i[I+4>>2],Q=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],t=i[g+20>>2],e=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],D=i[I+32>>2],h=i[g+36>>2],p=i[I+36>>2],i[A>>2]=i[I>>2]-i[g>>2],i[A+36>>2]=p-h,i[A+32>>2]=D-w,i[A+28>>2]=s-y,i[A+24>>2]=c-f,i[A+20>>2]=e-t,i[A+16>>2]=o-r,i[A+12>>2]=a-n,i[A+8>>2]=E-Q,i[A+4>>2]=C-B}function yA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y,s,w,D,h,p;B=i[g+4>>2],C=i[I+4>>2],Q=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],t=i[g+20>>2],e=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],D=i[I+32>>2],h=i[g+36>>2],p=i[I+36>>2],i[A>>2]=i[g>>2]+i[I>>2],i[A+36>>2]=h+p,i[A+32>>2]=w+D,i[A+28>>2]=y+s,i[A+24>>2]=f+c,i[A+20>>2]=t+e,i[A+16>>2]=r+o,i[A+12>>2]=n+a,i[A+8>>2]=Q+E,i[A+4>>2]=B+C}function sA(A){var I,g=0,B=0,C=0,E=0;for(Q[11+(I=s-16|0)|0]=0,Q[I+12|0]=0,Q[I+13|0]=0,Q[I+14|0]=0,i[I+8>>2]=0;;){for(C=n[A+B|0],g=0;Q[0|(E=(I+8|0)+g|0)]=n[0|E]|C^n[(2528+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&n[A+31|0],A=0,g=0;Q[0|(C=(I+8|0)+g|0)]=n[0|C]|B^n[2559+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=n[(I+8|0)+A|0]-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}function wA(A,I){var g=0,B=0,C=0,E=0;for(wI(eI(A,33984,64)- -64|0,0,293);B=(g=E<<3)+A|0,C=n[0|(g=I+g|0)]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=(n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24)^(n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24),C^=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,Q[0|B]=C,Q[B+1|0]=C>>>8,Q[B+2|0]=C>>>16,Q[B+3|0]=C>>>24,Q[B+4|0]=g,Q[B+5|0]=g>>>8,Q[B+6|0]=g>>>16,Q[B+7|0]=g>>>24,8!=(0|(E=E+1|0)););}function DA(A,I){var g=0,B=0;A:if(B=255&I){if(3&A)for(;;){if(!(g=n[0|A])|(0|g)==(255&I))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(g=i[A>>2]))&g-16843009&-2139062144))for(B=r(B,16843009);;){if((-1^(g^=B))&g-16843009&-2139062144)break I;if(g=i[A+4>>2],A=A+4|0,g-16843009&(-1^g)&-2139062144)break}for(;g=A,(B=n[0|A])&&(A=g+1|0,(0|B)!=(255&I)););A=g}else A=mA(A)+A|0;return n[0|A]==(255&I)?A:0}function hA(A,I,g){var B=0,C=0,E=0,n=0,a=0,r=0;if(g>>>0>=8)for(n=g>>>3|0,g=0;E=(B=g<<3)+A|0,a=(B=i[4+(C=I+B|0)>>2])<<24|(C=i[C>>2])>>>8,r=B<<8|C>>>24,B=-16777216&((255&B)<<24|C>>>8)|16711680&((16777215&B)<<8|C>>>24)|B>>>8&65280|B>>>24,Q[0|E]=B,Q[E+1|0]=B>>>8,Q[E+2|0]=B>>>16,Q[E+3|0]=B>>>24,B=C<<8&16711680|C<<24|65280&a|255&r,Q[E+4|0]=B,Q[E+5|0]=B>>>8,Q[E+6|0]=B>>>16,Q[E+7|0]=B>>>24,(0|n)!=(0|(g=g+1|0)););}function pA(A,I,g){var B,C,Q=0,E=0,i=0;return B=A,A=31&(Q=i=63&g),Q>>>0>=32?(A=-1<>>32-A,C=Q&B,E=A&I,Q=31&i,i>>>0>=32?(A=0,i=E>>>Q|0):(A=E>>>Q|0,i=((1<>>Q),Q=A,g=31&(E=0-g&63),E>>>0>=32?(A=0,g=-1>>>g|0):g=(A=-1>>>g|0)|(1<>>0>=32?(I=g<>>32-A|I<>>0>=32?-1>>>C|0:(A=-1>>>C|0)|(1<>>0>=32?(A=B<>>32-C|A<>>0>=32?(A=-1<>>32-A,E&=Q,I&=A,A=31&g,g>>>0>=32?(g=0,A=I>>>A|0):(g=I>>>A|0,A=((1<>>A),h=g|C,A|B}function FA(A,I,g){var B,C,Q,E;s=B=s-128|0,ng(A),ng(C=A+40|0),hg(Q=A+80|0),MI(A,I=r(I,960)+2784|0,Ag(g=g-((0-(E=(128&g)>>>7|0)&g)<<1)<<24>>24,1)),MI(A,I+120|0,Ag(g,2)),MI(A,I+240|0,Ag(g,3)),MI(A,I+360|0,Ag(g,4)),MI(A,I+480|0,Ag(g,5)),MI(A,I+600|0,Ag(g,6)),MI(A,I+720|0,Ag(g,7)),MI(A,I+840|0,Ag(g,8)),UA(I=B+8|0,C),UA(B+48|0,A),kA(B+88|0,Q),MI(A,I,E),s=B+128|0}function lA(A,I,g,B,C,Q,E,i,n,a){var r,o,t;return s=o=s-352|0,fg(t=o+32|0,64,n,a),og(r=o+96|0,t),Dg(t,64),gg(r,Q,E,i),gg(r,34064,0-E&15,0),gg(r,I,g,B),gg(r,34064,0-g&15,0),QI(Q=o+24|0,E,i),gg(r,Q,8,0),QI(Q,g,B),gg(r,Q,8,0),tg(r,o),Dg(r,256),C=rg(o,C),Dg(o,16),A&&(C?(wI(A,0,g),C=-1):(WA(A,I,g,B,n,1,a),C=0)),s=o+352|0,C}function _A(A,I){var g,B=0,C=0,Q=0,E=0,a=0;A:if(!(((g=n[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>(-1^(B=r(Q,10)))>>>0)break A;if(Q=B+C|0,!(((C=n[0|(B=E+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|E)|(0|A)==(0|B)||(i[I>>2]=Q,a=B)}return a}function kA(A,I){var g,B,C,Q,E,n,a,r,o;g=i[I+4>>2],B=i[I+8>>2],C=i[I+12>>2],Q=i[I+16>>2],E=i[I+20>>2],n=i[I+24>>2],a=i[I+28>>2],r=i[I+32>>2],o=i[I+36>>2],i[A>>2]=0-i[I>>2],i[A+36>>2]=0-o,i[A+32>>2]=0-r,i[A+28>>2]=0-a,i[A+24>>2]=0-n,i[A+20>>2]=0-E,i[A+16>>2]=0-Q,i[A+12>>2]=0-C,i[A+8>>2]=0-B,i[A+4>>2]=0-g}function HA(A,I,g,B,C,Q,E,n,a,r,o){var t,e,f;return s=e=s-336|0,fg(f=e+16|0,64,r,o),og(t=e+80|0,f),Dg(f,64),gg(t,E,n,a),gg(t,34064,0-n&15,0),WA(A,B,C,Q,r,1,o),gg(t,A,C,Q),gg(t,34064,0-C&15,0),QI(A=e+8|0,n,a),gg(t,A,8,0),QI(A,C,Q),gg(t,A,8,0),tg(t,I),Dg(t,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=e+336|0,0}function GA(A,I,g,B,C,Q,E,i,n,a){var r,o,t;return s=r=s-352|0,Ig(t=r+32|0,n,a),og(o=r+96|0,t),Dg(t,64),gg(o,Q,E,i),QI(Q=r+24|0,E,i),gg(o,Q,8,0),gg(o,I,g,B),QI(Q,g,B),gg(o,Q,8,0),tg(o,r),Dg(o,256),C=rg(r,C),Dg(r,16),A&&(C?(wI(A,0,g),C=-1):(HI(A,I,g,B,n,a),C=0)),s=r+352|0,C}function UA(A,I){var g,B,C,Q,E,n,a,r,o;g=i[I+8>>2],B=i[I+12>>2],C=i[I+16>>2],Q=i[I+20>>2],E=i[I+24>>2],n=i[I+28>>2],a=i[I>>2],r=i[I+4>>2],o=i[I+36>>2],i[A+32>>2]=i[I+32>>2],i[A+36>>2]=o,i[A+24>>2]=E,i[A+28>>2]=n,i[A+16>>2]=C,i[A+20>>2]=Q,i[A+8>>2]=g,i[A+12>>2]=B,i[A>>2]=a,i[A+4>>2]=r}function SA(A,I,g){g?(i[A+48>>2]=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24):(i[A+48>>2]=0,g=0),i[A+52>>2]=g,i[A+56>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+60>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24}function bA(A,I,g,B){var C;if(s=C=s-192|0,!(!g|(I-65&255)>>>0<=191|(B-65&255)>>>0<=191))return E[C+130>>1]=257,Q[C+129|0]=B,Q[C+128|0]=I,RI(4|(I=C+128|0)),QI(8|I,0,0),wI(C+144|0,0,48),wA(A,I),wI(B+C|0,0,B<<24>>24<0?0:128-B|0),gA(I=A,A=eI(C,g,B),128,0),Dg(A,128),s=A+192|0,0;xI(),t()}function mA(A){var I=0,g=0,B=0;A:{if(3&(I=A))for(;;){if(!n[0|I])break A;if(!(3&(I=I+1|0)))break}for(;g=I,I=I+4|0,!((-1^(B=i[g>>2]))&B-16843009&-2139062144););if(!(255&B))return g-A|0;for(;B=n[g+1|0],g=I=g+1|0,B;);}return I-A|0}function vA(A,I,g,B,C,Q,E){var i=0,n=0;return I-65>>>0<4294967232|E>>>0>64?A=-1:(n=i=s,s=i=i-384&-64,!(!(B|C)||g)|!A|((I&=255)-65&255)>>>0<=191|!(!(E&=255)||Q)|E>>>0>=65?(xI(),t()):(E?bA(i,I,Q,E):jA(i,I),gA(i,g,B,C),Y(i,A,I),s=n),A=0),A}function MA(A,I){var g,B,C=0;s=g=s-704|0,(B=i[A+72>>2]>>>3&127)>>>0<=111?eI(80+(A+B|0)|0,34784,112-B|0):(eI((C=A+80|0)+B|0,34784,128-B|0),F(A,C,g,g+640|0),wI(C,0,112)),hA(A+192|0,A- -64|0,16),F(A,A+80|0,g,g+640|0),hA(I,A,64),Dg(g,704),Dg(A,208),s=g+704|0}function PA(A,I,g,B,C,Q,E,n,a,r,o){var t,e,f;return s=e=s-336|0,Ig(f=e+16|0,r,o),og(t=e+80|0,f),Dg(f,64),gg(t,E,n,a),QI(E=e+8|0,n,a),gg(t,E,8,0),HI(A,B,C,Q,r,o),gg(t,A,C,Q),QI(E,C,Q),gg(t,E,8,0),tg(t,I),Dg(t,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=e+336|0,0}function YA(A,I,g){i[A+48>>2]=g?n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24:0,i[A+52>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+56>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+60>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24}function NA(A,I,g,B,C,Q,E){var n;return s=n=s-16|0,A=wI(A,0,128),!(B|Q)&E>>>0<2147483649?!!(C|Q)&E>>>0>8191?(EI(n,16),A=_(C,E>>>10|0,1,I,g,n,16,0,32,A,128,2)?-1:0):(i[8952]=28,A=-1):(i[8952]=22,A=-1),s=n+16|0,A}function RA(A,I){var g=0;4&I&&((I=i[A>>2])&&Dg(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&Dg(I,i[A+20>>2]<<3)),b(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&b(g),b(I),i[A>>2]=0}function dA(A,I){var g,B,C=0,E=0,i=0,n=0;for(s=g=s-16|0,C=10;n=C,i=(I>>>0)/10|0,Q[0|(E=(C=C-1|0)+(g+6|0)|0)]=I-r(i,10)|48,!(I>>>0<10)&&(I=i,C););B=eI(I=A,E,A=11-n|0)+A|0,Q[0|B]=0,s=g+16|0}function JA(A,I,g){var B,C,Q,E=0;s=C=s-48|0,yA(A,E=I+40|0,I),cA(B=A+40|0,E,I),H(E=A+80|0,A,g+40|0),H(B,B,g),H(Q=A+120|0,g+120|0,I+120|0),H(A,I+80|0,g+80|0),yA(C,A,A),cA(A,E,B),yA(B,E,B),cA(E,C,Q),yA(Q,C,Q),s=C+48|0}function xA(A,I,g){var B,C,Q,E=0;s=C=s-48|0,yA(A,E=I+40|0,I),cA(B=A+40|0,E,I),H(E=A+80|0,A,g),H(B,B,g+40|0),H(Q=A+120|0,g+120|0,I+120|0),H(A,I+80|0,g+80|0),yA(C,A,A),cA(A,E,B),yA(B,E,B),yA(E,C,Q),cA(Q,C,Q),s=C+48|0}function LA(A,I,g){var B=0,C=0,Q=0;if(!g)return 0;A:if(B=n[0|A]){for(;;){if((C=n[0|I])&&!(!(g=g-1|0)|(0|B)!=(0|C))){if(I=I+1|0,B=n[A+1|0],A=A+1|0,B)continue;break A}break}Q=B}return(255&Q)-n[0|I]|0}function KA(A,I){for(var g=0,B=0,C=0,Q=0;C=(g=B<<3)+A|0,Q=n[0|(g=I+g|0)]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,i[C>>2]=Q,i[C+4>>2]=g,128!=(0|(B=B+1|0)););}function XA(A,I,g){var B;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,I=0,i[B+4>>2]=0,(0|g)>0)for(;i[B+4>>2]=i[B+4>>2]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(i[B+4>>2]-1>>>8&1)-1|0}function TA(A,I,g){var B,C,Q,E=0;s=C=s-48|0,yA(A,E=I+40|0,I),cA(B=A+40|0,E,I),H(E=A+80|0,A,g),H(B,B,g+40|0),H(Q=A+120|0,g+80|0,I+120|0),yA(C,I=I+80|0,I),cA(A,E,B),yA(B,E,B),yA(E,C,Q),cA(Q,C,Q),s=C+48|0}function VA(A,I,g){var B,C=0,E=0;if(s=B=s-16|0,Q[B+15|0]=0,E=-1,!(0|vg[i[8758]](A,I,g))){for(;Q[B+15|0]=n[A+C|0]|n[B+15|0],32!=(0|(C=C+1|0)););E=(n[B+15|0]<<23)-8388608>>31}return s=B+16|0,E}function qA(A,I,g,B){var C,Q,E,i,n=0,a=0;return i=r(n=g>>>16|0,a=A>>>16|0),n=(65535&(a=((E=r(C=65535&g,Q=65535&A))>>>16|0)+r(a,C)|0))+r(n,Q)|0,h=(r(I,g)+i|0)+r(A,B)+(a>>>16)+(n>>>16)|0,65535&E|n<<16}function zA(A,I,g){var B;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,I=0,Q[B+7|0]=0,g)for(;Q[B+7|0]=n[B+7|0]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(n[B+7|0]-1>>>8&1)-1|0}function jA(A,I){var g;return s=g=s+-64|0,(I-65&255)>>>0<=191&&(xI(),t()),Q[g+3|0]=1,Q[g+1|0]=0,Q[g+2|0]=1,Q[0|g]=I,RI(4|g),QI(8|g,0,0),wI(g+16|0,0,48),wA(A,g),s=g- -64|0,0}function WA(A,I,g,B,C,Q,E){var i=0,n=0;i=B,1==(((i=(n=g+63|0)>>>0<63?i+1|0:i)>>>6|0)+(0!=(0|(i=(63&i)<<26|n>>>6)))|0)&Q>>>0>(n=0-i|0)>>>0&&(xI(),t()),kI(A,I,g,B,C,Q,E)}function OA(A,I,g,B){var C=0;C=-1;A:if(!(B-65>>>0<4294967232|g>>>0>64)){I:{if(!g||!I){if(!jA(A,255&B))break I;break A}if(bA(A,255&B,I,255&g))break A}C=0}return C}function ZA(A,I,g,B){return(B=(1+(A^B)>>>8^-1)&g|(1+(16321^A)>>>8^-1)&I|(I=A+65510>>>8&255)&A+65)|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function $A(A){var I,g;return(A=(I=i[8748])+(g=A+3&-4)|0)>>>0<=I>>>0&&g||A>>>0>Mg()<<16>>>0&&!(0|c(0|A))?(i[8952]=48,-1):(i[8748]=A,I)}function AI(A,I){for(var g=0,B=0,C=0,Q=0;B=(g=C<<3)+A|0,Q=i[(g=I+g|0)>>2],g=i[B+4>>2]^i[g+4>>2],i[B>>2]=i[B>>2]^Q,i[B+4>>2]=g,128!=(0|(C=C+1|0)););}function II(A,I){var g,B,C,E,i;s=g=s-144|0,O(B=g+96|0,I+80|0),H(C=g+48|0,I,B),H(g,I+40|0,B),T(A,g),E=A,i=vI(C)<<7^n[A+31|0],Q[E+31|0]=i,s=g+144|0}function gI(A,I,g){var B=0;if(A>>>0>>0)return eI(A,I,g);if(g)for(B=A+g|0,I=I+g|0;I=I-1|0,Q[0|(B=B-1|0)]=n[0|I],g=g-1|0;);return A}function BI(A,I){var g,B=0;if(Q[15+(g=s-16|0)|0]=0,I)for(;Q[g+15|0]=n[A+B|0]|n[g+15|0],(0|(B=B+1|0))!=(0|I););return n[g+15|0]-1>>>8&1}function CI(A,I,g,B){var C;return B=I+B|0,B=(C=A+g|0)>>>0>>0?B+1|0:B,g=qA(A<<1&-2,1&(I=I<<1|A>>>31),g,0),A=h+B|0,h=A=(I=g+C|0)>>>0>>0?A+1|0:A,I}function QI(A,I,g){Q[0|A]=I,Q[A+1|0]=I>>>8,Q[A+2|0]=I>>>16,Q[A+3|0]=I>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24}function EI(A,I){A|=0;var g=0,B=0,C=0;if(I|=0)for(;B=A+g|0,C=FI(),Q[0|B]=C,(0|(g=g+1|0))!=(0|I););}function iI(A,I,g,B,C){var Q,E;return A|=0,I|=0,g|=0,B|=0,s=Q=(E=s)-128&-64,IA(Q,C|=0),$(Q,I,g,B),W(Q,A),s=E,0}function nI(A){var I=0,g=0,B=0;for(I=1;I=n[0|(B=A+g|0)]+I|0,Q[0|B]=I,I=I>>>8|0,4!=(0|(g=g+1|0)););}function aI(A,I,g,B,C,Q,E,i){var n,a=0;return s=n=s-32|0,a=-1,oI(n,E,i)||(a=zI(A,I,g,B,C,Q,n),Dg(n,32)),s=n+32|0,a}function rI(A,I,g,B,C,Q,E,i){var n,a=0;return s=n=s-32|0,a=-1,oI(n,E,i)||(a=jI(A,I,g,B,C,Q,n),Dg(n,32)),s=n+32|0,a}function oI(A,I,g){A|=0;var B,C=0;return s=B=s-32|0,C=-1,VA(B,g|=0,I|=0)||(C=K(A,34976,B)),s=B+32|0,0|C}function tI(A,I){var g,B,C;H(A,I,g=I+120|0),H(A+40|0,B=I+40|0,C=I+80|0),H(A+80|0,C,g),H(A+120|0,I,B)}function eI(A,I,g){var B=0;if(g)for(B=A;Q[0|B]=n[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);return A}function fI(A,I){var g,B;s=B=s-128|0,UA(g=B+8|0,I),UA(g+40|0,I+40|0),UA(g+80|0,I+80|0),G(A,g),s=B+128|0}function cI(A,I,g,B,C,Q,E){return!B&g>>>0>=16|B?rI(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,C,Q,E):-1}function yI(A,I){for(var g=0,B=0;Q[0|(B=A+g|0)]=n[0|B]^n[I+g|0],8!=(0|(g=g+1|0)););}function sI(A,I,g){var B,C;s=B=(C=s)-384&-64,PI(B,0,0,24),ig(B,I,32,0),ig(B,g,32,0),dI(B,A,24),s=C}function wI(A,I,g){var B=0;if(g)for(B=A;Q[0|B]=I,B=B+1|0,g=g-1|0;);return A}function DI(A,I){var g;yA(A,g=I+40|0,I),cA(A+40|0,g,I),UA(A+80|0,I+80|0),H(A+120|0,I+120|0,1520)}function hI(A,I){var g;H(A,I,g=I+120|0),H(A+40|0,I+40|0,I=I+80|0),H(A+80|0,I,g)}function pI(A,I,g,B,C,Q,E){return!B&g>>>0>=4294967280|B&&(xI(),t()),aI(A+16|0,A,I,g,B,C,Q,E)}function uI(A){var I;return I=n[0|A]|n[A+1|0]<<8,A=n[A+2|0],h=A>>>16|0,I|A<<16}function FI(){var A,I;return s=A=s-16|0,Q[A+15|0]=0,I=0|f(35048,A+15|0,0),s=A+16|0,0|I}function lI(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function _I(A,I,g,B){var C;return s=C=s-208|0,GI(C),z(C,I,g,B),MA(C,A),s=C+208|0,0}function kI(A,I,g,B,C,Q,E){1==(0|B)|B>>>0>1&&(xI(),t()),vg[i[8752]](A,I,g,B,C,Q,E)}function HI(A,I,g,B,C,Q){1==(0|B)|B>>>0>1&&(xI(),t()),vg[i[8751]](A,I,g,B,C,1,0,Q)}function GI(A){i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,eI(A,34080,64)}function UI(A,I,g){return g>>>0>=256&&(e(1279,1206,107,1067),t()),Y(A,I,255&g)}function SI(){var A;s=A=s-16|0,Q[A+15|0]=0,f(35084,A+15|0,0),s=A+16|0}function bI(A,I){Q[0|A]=I,Q[A+1|0]=I>>>8,Q[A+2|0]=I>>>16,Q[A+3|0]=I>>>24}function mI(A){var I;return s=I=s-32|0,T(I,A),A=BI(I,32),s=I+32|0,A}function vI(A){var I;return s=I=s-32|0,T(I,A),s=I+32|0,1&Q[0|I]}function MI(A,I,g){aA(A,I,g),aA(A+40|0,I+40|0,g),aA(A+80|0,I+80|0,g)}function PI(A,I,g,B){return 0|OA(A|=0,I|=0,g|=0,B|=0)}function YI(A){Q[A+32|0]=1,Q[A+33|0]=0,Q[A+34|0]=0,Q[A+35|0]=0}function NI(A){i[A>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0}function RI(A){Q[0|A]=0,Q[A+1|0]=0,Q[A+2|0]=0,Q[A+3|0]=0}function dI(A,I,g){return 0|UI(A|=0,I|=0,g|=0)}function JI(A,I,g){return 0|VA(A|=0,I|=0,g|=0)}function xI(){var A;(A=i[9098])&&vg[0|A](),y(),t()}function LI(A){hg(A),ng(A+40|0),ng(A+80|0),hg(A+120|0)}function KI(A,I,g,B,C,Q){vg[i[8761]](A,I,g,B,C,1,0,Q)}function XI(A,I,g,B,C,Q){vg[i[8761]](A,I,g,B,C,0,0,Q)}function TI(A,I){return A|=0,EI(I|=0,32),0|Bg(A,I)}function VI(A,I,g,B,C,Q){return u(A,I,g,B,C,Q,0),0}function qI(A,I,g,B,C,Q,E){return vA(A,I,g,B,C,Q,E)}function zI(A,I,g,B,C,Q,E){return EA(A,I,g,B,C,Q,E)}function jI(A,I,g,B,C,Q,E){return iA(A,I,g,B,C,Q,E)}function WI(A,I){GI(A),I&&z(A,34912,34,0)}function OI(A,I,g,B,C){return J(A,I,g,B,C,0)}function ZI(A,I){return 0|Bg(A|=0,I|=0)}function $I(A,I,g,B){vg[i[8750]](A,I,0,g,B)}function Ag(A,I){return(255&(A^I))-1>>>31|0}function Ig(A,I,g){vg[i[8749]](A,64,0,I,g)}function gg(A,I,g,B){vg[i[8756]](A,I,g,B)}function Bg(A,I){return 0|vg[i[8759]](A,I)}function Cg(A,I,g,B){return gA(A,I,g,B)}function Qg(A){return ZA(A,45,95,32704)}function Eg(A){return ZA(A,43,47,16320)}function ig(A,I,g,B){return Cg(A,I,g,B)}function ng(A){i[A>>2]=1,wI(A+4|0,0,36)}function ag(A){1!=(-7&A)&&(xI(),t())}function rg(A,I){return XA(A,I,16)}function og(A,I){vg[i[8755]](A,I)}function tg(A,I){vg[i[8757]](A,I)}function eg(A,I){return XA(A,I,32)}function fg(A,I,g,B){$I(A,I,g,B)}function cg(A,I){return lI(A,I)}function yg(A,I){eI(A,I,1024)}function sg(A){EI(A|=0,32)}function wg(A){wI(A,0,1024)}function Dg(A,I){wI(A,0,I)}function hg(A){wI(A,0,40)}function pg(){return 32}function ug(){return 24}function Fg(){return-17}function lg(){return 64}function _g(){return 16}function kg(){return 1}function Hg(){return 2}function Gg(){return 8}function Ug(){return 3}function Sg(){return 0}function bg(){return-1}C(I=n,1024,"TGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsACRhcmdvbjJpACRhcmdvbjJpZAByYW5kb21ieXRlcy9yYW5kb21ieXRlcy5jAHNvZGl1bS9jb2RlY3MuYwBjcnlwdG9fZ2VuZXJpY2hhc2gvYmxha2UyYi9yZWYvYmxha2UyYi1yZWYuYwBjcnlwdG9fZ2VuZXJpY2hhc2gvYmxha2UyYi9yZWYvZ2VuZXJpY2hhc2hfYmxha2UyYi5jAGJ1Zl9sZW4gPD0gU0laRV9NQVgAb3V0bGVuIDw9IFVJTlQ4X01BWABTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTACRhcmdvbjJpJHY9ACRhcmdvbjJpZCR2PQAsdD0ALHA9ACRtPQAxLjAuMTgAc29kaXVtX2JpbjJiYXNlNjQAJGFyZ29uMmkkACRhcmdvbjJpZCQ="),C(I,1424,"tnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu"),C(I,1520,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),C(I,1568,"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"),C(I,2560,"AQ=="),C(I,2592,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),C(I,2783,"EIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/48+3QCBWdb/N4sF/kQUv/8OzLIBI8PZAC8zzgEm9qUAzhsG/p5XJADZNJL/fXvX/1U8H/+rDQcA2vVY/vwjPAA31qD/hWU4AOAgE/6TQOoAGpGiAXJ2fQD4/PoAZV7E/8aN4v4zKrYAhwwJ/m2s0v/F7MIB8UGaADCcL/+ZQzf/2qUi/kq0swDaQkcBWHpjANS12/9cKuf/7wCaAPVNt/9eUaoBEtXYAKtdRwA0XvgAEpeh/sXRQv+u9A/+ojC3ADE98P62XcMAx+QGAcgFEf+JLe3/bJQEAFpP7f8nP03/NVLPAY4Wdv9l6BIBXBpDAAXIWP8hqIr/leFIAALRG/8s9agB3O0R/x7Taf6N7t0AgFD1/m/+DgDeX74B3wnxAJJM1P9szWj/P3WZAJBFMAAj5G8AwCHB/3DWvv5zmJcAF2ZYADNK+ADix4/+zKJl/9BhvQH1aBIA5vYe/xeURQBuWDT+4rVZ/9AvWv5yoVD/IXT4ALOYV/9FkLEBWO4a/zogcQEBTUUAO3k0/5juUwA0CMEA5yfp/8ciigDeRK0AWzny/tzSf//AB/b+lyO7AMPspQBvXc4A1PeFAZqF0f+b5woAQE4mAHr5ZAEeE2H/Plv5AfiFTQDFP6j+dApSALjscf7Uy8L/PWT8/iQFyv93W5n/gU8dAGdnq/7t12//2DVFAO/wFwDCld3/JuHeAOj/tP52UoX/OdGxAYvohQCesC7+wnMuAFj35QEcZ78A3d6v/pXrLACX5Bn+2mlnAI5V0gCVgb7/1UFe/nWG4P9SxnUAnd3cAKNlJADFciUAaKym/gu2AABRSLz/YbwQ/0UGCgDHk5H/CAlzAUHWr//ZrdEAUH+mAPflBP6nt3z/WhzM/q878P8LKfgBbCgz/5Cxw/6W+n4AiltBAXg83v/1we8AHda9/4ACGQBQmqIATdxrAerNSv82pmf/dEgJAOReL/8eyBn/I9ZZ/z2wjP9T4qP/S4KsAIAmEQBfiZj/13yfAU9dAACUUp3+w4L7/yjKTP/7fuAAnWM+/s8H4f9gRMMAjLqd/4MT5/8qgP4ANNs9/mbLSACNBwv/uqTVAB96dwCF8pEA0Pzo/1vVtv+PBPr++ddKAKUebwGrCd8A5XsiAVyCGv9Nmy0Bw4sc/zvgTgCIEfcAbHkgAE/6vf9g4/z+JvE+AD6uff+bb13/CubOAWHFKP8AMTn+QfoNABL7lv/cbdL/Ba6m/iyBvQDrI5P/JfeN/0iNBP9na/8A91oEADUsKgACHvAABDs/AFhOJABxp7QAvkfB/8eepP86CKwATSEMAEE/AwCZTSH/rP5mAeTdBP9XHv4BkilW/4rM7/5sjRH/u/KHANLQfwBELQ7+SWA+AFE8GP+qBiT/A/kaACPVbQAWgTb/FSPh/+o9OP862QYAj3xYAOx+QgDRJrf/Iu4G/66RZgBfFtMAxA+Z/i5U6P91IpIB5/pK/xuGZAFcu8P/qsZwAHgcKgDRRkMAHVEfAB2oZAGpraAAayN1AD5gO/9RDEUBh+++/9z8EgCj3Dr/iYm8/1NmbQBgBkwA6t7S/7muzQE8ntX/DfHWAKyBjABdaPIAwJz7ACt1HgDhUZ4Af+jaAOIcywDpG5f/dSsF//IOL/8hFAYAifss/hsf9f+31n3+KHmVALqe1f9ZCOMARVgA/suH4QDJrssAk0e4ABJ5Kf5eBU4A4Nbw/iQFtAD7h+cBo4rUANL5dP5YgbsAEwgx/j4OkP+fTNMA1jNSAG115P5n38v/S/wPAZpH3P8XDVsBjahg/7W2hQD6MzcA6urU/q8/ngAn8DQBnr0k/9UoVQEgtPf/E2YaAVQYYf9FFd4AlIt6/9zV6wHoy/8AeTmTAOMHmgA1FpMBSAHhAFKGMP5TPJ3/kUipACJn7wDG6S8AdBME/7hqCf+3gVMAJLDmASJnSADbooYA9SqeACCVYP6lLJAAyu9I/teWBQAqQiQBhNevAFauVv8axZz/MeiH/me2UgD9gLABmbJ6APX6CgDsGLIAiWqEACgdKQAyHpj/fGkmAOa/SwCPK6oALIMU/ywNF//t/5sBn21k/3C1GP9o3GwAN9ODAGMM1f+Yl5H/7gWfAGGbCAAhbFEAAQNnAD5tIv/6m7QAIEfD/yZGkQGfX/UAReVlAYgc8ABP4BkATm55//iofAC7gPcAApPr/k8LhABGOgwBtQij/0+Jhf8lqgv/jfNV/7Dn1//MlqT/79cn/y5XnP4Io1j/rCLoAEIsZv8bNin+7GNX/yl7qQE0cisAdYYoAJuGGgDnz1v+I4Qm/xNmff4k44X/dgNx/x0NfACYYEoBWJLO/6e/3P6iElj/tmQXAB91NABRLmoBDAIHAEVQyQHR9qwADDCNAeDTWAB04p8AemKCAEHs6gHh4gn/z+J7AVnWOwBwh1gBWvTL/zELJgGBbLoAWXAPAWUuzP9/zC3+T//d/zNJEv9/KmX/8RXKAKDjBwBpMuwATzTF/2jK0AG0DxAAZcVO/2JNywApufEBI8F8ACObF//PNcAAC32jAfmeuf8EgzAAFV1v/z155wFFyCT/uTC5/2/uFf8nMhn/Y9ej/1fUHv+kkwX/gAYjAWzfbv/CTLIASmW0APMvMACuGSv/Uq39ATZywP8oN1sA12yw/ws4BwDg6UwA0WLK/vIZfQAswV3+ywixAIewEwBwR9X/zjuwAQRDGgAOj9X+KjfQ/zxDeADBFaMAY6RzAAoUdgCc1N7+oAfZ/3L1TAF1O3sAsMJW/tUPsABOzs/+1YE7AOn7FgFgN5j/7P8P/8VZVP9dlYUArqBxAOpjqf+YdFgAkKRT/18dxv8iLw//Y3iG/wXswQD5937/k7seADLmdf9s2dv/o1Gm/0gZqf6beU//HJtZ/gd+EQCTQSEBL+r9ABozEgBpU8f/o8TmAHH4pADi/toAvdHL/6T33v7/I6UABLzzAX+zRwAl7f7/ZLrwAAU5R/5nSEn/9BJR/uXShP/uBrT/C+Wu/+PdwAERMRwAo9fE/gl2BP8z8EcAcYFt/0zw5wC8sX8AfUcsARqv8wBeqRn+G+YdAA+LdwGoqrr/rMVM//xLvACJfMQASBZg/y2X+QHckWQAQMCf/3jv4gCBspIAAMB9AOuK6gC3nZIAU8fA/7isSP9J4YAATQb6/7pBQwBo9s8AvCCK/9oY8gBDilH+7YF5/xTPlgEpxxD/BhSAAJ92BQC1EI//3CYPABdAk/5JGg0AV+Q5Acx8gAArGN8A22PHABZLFP8TG34AnT7XAG4d5gCzp/8BNvy+AN3Mtv6znkH/UZ0DAMLanwCq3wAA4Asg/ybFYgCopCUAF1gHAaS6bgBgJIYA6vLlAPp5EwDy/nD/Ay9eAQnvBv9Rhpn+1v2o/0N84AD1X0oAHB4s/gFt3P+yWVkA/CRMABjGLv9MTW8AhuqI/ydeHQC5SOr/RkSH/+dmB/5N54wApy86AZRhdv8QG+EBps6P/26y1v+0g6IAj43hAQ3aTv9ymSEBYmjMAK9ydQGnzksAysRTATpAQwCKL28BxPeA/4ng4P6ecM8AmmT/AYYlawDGgE//f9Gb/6P+uf48DvMAH9tw/h3ZQQDIDXT+ezzE/+A7uP7yWcQAexBL/pUQzgBF/jAB53Tf/9GgQQHIUGIAJcK4/pQ/IgCL8EH/2ZCE/zgmLf7HeNIAbLGm/6DeBADcfnf+pWug/1Lc+AHxr4gAkI0X/6mKVACgiU7/4nZQ/zQbhP8/YIv/mPonALybDwDoM5b+KA/o//DlCf+Jrxv/S0lhAdrUCwCHBaIBa7nVAAL5a/8o8kYA28gZABmdDQBDUlD/xPkX/5EUlQAySJIAXkyUARj7QQAfwBcAuNTJ/3vpogH3rUgAolfb/n6GWQCfCwz+pmkdAEkb5AFxeLf/QqNtAdSPC/+f56gB/4BaADkOOv5ZNAr//QijAQCR0v8KgVUBLrUbAGeIoP5+vNH/IiNvANfbGP/UC9b+ZQV2AOjFhf/fp23/7VBW/0aLXgCewb8Bmw8z/w++cwBOh8//+QobAbV96QBfrA3+qtWh/yfsiv9fXVf/voBfAH0PzgCmlp8A4w+e/86eeP8qjYAAZbJ4AZxtgwDaDiz+96jO/9RwHABwEeT/WhAlAcXebAD+z1P/CVrz//P0rAAaWHP/zXR6AL/mwQC0ZAsB2SVg/5pOnADr6h//zrKy/5XA+wC2+ocA9hZpAHzBbf8C0pX/qRGqAABgbv91CQgBMnso/8G9YwAi46AAMFBG/tMz7AAtevX+LK4IAK0l6f+eQasAekXX/1pQAv+DamD+43KHAM0xd/6wPkD/UjMR//EU8/+CDQj+gNnz/6IbAf5advEA9sb2/zcQdv/In50AoxEBAIxreQBVoXb/JgCVAJwv7gAJpqYBS2K1/zJKGQBCDy8Ai+GfAEwDjv8O7rgAC881/7fAugGrIK7/v0zdAfeq2wAZrDL+2QnpAMt+RP+3XDAAf6e3AUEx/gAQP38B/hWq/zvgf/4WMD//G06C/ijDHQD6hHD+I8uQAGipqADP/R7/aCgm/l7kWADOEID/1Dd6/98W6gDfxX8A/bW1AZFmdgDsmST/1NlI/xQmGP6KPj4AmIwEAObcY/8BFdT/lMnnAPR7Cf4Aq9IAMzol/wH/Dv/0t5H+APKmABZKhAB52CkAX8Ny/oUYl/+c4uf/9wVN//aUc/7hXFH/3lD2/qp7Wf9Kx40AHRQI/4qIRv9dS1wA3ZMx/jR+4gDlfBcALgm1AM1ANAGD/hwAl57UAINATgDOGasAAOaLAL/9bv5n96cAQCgoASql8f87S+T+fPO9/8Rcsv+CjFb/jVk4AZPGBf/L+J7+kKKNAAus4gCCKhX/AaeP/5AkJP8wWKT+qKrcAGJH1gBb0E8An0zJAaYq1v9F/wD/BoB9/74BjACSU9r/1+5IAXp/NQC9dKX/VAhC/9YD0P/VboUAw6gsAZ7nRQCiQMj+WzpoALY6u/755IgAy4ZM/mPd6QBL/tb+UEWaAECY+P7siMr/nWmZ/pWvFAAWIxP/fHnpALr6xv6E5YsAiVCu/6V9RACQypT+6+/4AIe4dgBlXhH/ekhG/kWCkgB/3vgBRX92/x5S1/68ShP/5afC/nUZQv9B6jj+1RacAJc7Xf4tHBv/un6k/yAG7wB/cmMB2zQC/2Ngpv4+vn7/bN6oAUvirgDm4scAPHXa//z4FAHWvMwAH8KG/ntFwP+prST+N2JbAN8qZv6JAWYAnVoZAO96QP/8BukABzYU/1J0rgCHJTb/D7p9AONwr/9ktOH/Ku30//St4v74EiEAq2OW/0rrMv91UiD+aqjtAM9t0AHkCboAhzyp/rNcjwD0qmj/6y18/0ZjugB1ibcA4B/XACgJZAAaEF8BRNlXAAiXFP8aZDr/sKXLATR2RgAHIP7+9P71/6eQwv99cRf/sHm1AIhU0QCKBh7/WTAcACGbDv8Z8JoAjc1tAUZzPv8UKGv+iprH/17f4v+dqyYAo7EZ/i12A/8O3hcB0b5R/3Z76AEN1WX/ezd7/hv2pQAyY0z/jNYg/2FBQ/8YDBwArlZOAUD3YACgh0MAQjfz/5PMYP8aBiH/YjNTAZnV0P8CuDb/GdoLADFD9v4SlUj/DRlIACpP1gAqBCYBG4uQ/5W7FwASpIQA9VS4/njGaP9+2mAAOHXq/w0d1v5ELwr/p5qE/pgmxgBCsln/yC6r/w1jU//Su/3/qi0qAYrRfADWoo0ADOacAGYkcP4Dk0MANNd7/+mrNv9iiT4A99on/+fa7AD3v38Aw5JUAKWwXP8T1F7/EUrjAFgomQHGkwH/zkP1/vAD2v89jdX/YbdqAMPo6/5fVpoA0TDN/nbR8f/weN8B1R2fAKN/k/8N2l0AVRhE/kYUUP+9BYwBUmH+/2Njv/+EVIX/a9p0/3B6LgBpESAAwqA//0TeJwHY/VwAsWnN/5XJwwAq4Qv/KKJzAAkHUQCl2tsAtBYA/h2S/P+Sz+EBtIdgAB+jcACxC9v/hQzB/itOMgBBcXkBO9kG/25eGAFwrG8ABw9gACRVewBHlhX/0Em8AMALpwHV9SIACeZcAKKOJ//XWhsAYmFZAF5P0wBanfAAX9x+AWaw4gAkHuD+Ix9/AOfocwFVU4IA0kn1/y+Pcv9EQcUAO0g+/7eFrf5deXb/O7FR/+pFrf/NgLEA3PQzABr00QFJ3k3/owhg/paV0wCe/ssBNn+LAKHgOwAEbRb/3iot/9CSZv/sjrsAMs31/wpKWf4wT44A3kyC/x6mPwDsDA3/Mbj0ALtxZgDaZf0AmTm2/iCWKgAZxpIB7fE4AIxEBQBbpKz/TpG6/kM0zQDbz4EBbXMRADaPOgEV+Hj/s/8eAMHsQv8B/wf//cAw/xNF2QED1gD/QGWSAd99I//rSbP/+afiAOGvCgFhojoAanCrAVSsBf+FjLL/hvWOAGFaff+6y7n/300X/8BcagAPxnP/2Zj4AKuyeP/khjUAsDbBAfr7NQDVCmQBIsdqAJcf9P6s4Ff/Du0X//1VGv9/J3T/rGhkAPsORv/U0Ir//dP6ALAxpQAPTHv/Jdqg/1yHEAEKfnL/RgXg//f5jQBEFDwB8dK9/8PZuwGXA3EAl1yuAOc+sv/bt+EAFxch/821UAA5uPj/Q7QB/1p7Xf8nAKL/YPg0/1RCjAAif+T/wooHAaZuvAAVEZsBmr7G/9ZQO/8SB48ASB3iAcfZ+QDooUcBlb7JANmvX/5xk0P/io/H/3/MAQAdtlMBzuab/7rMPAAKfVX/6GAZ//9Z9//V/q8B6MFRABwrnP4MRQgAkxj4ABLGMQCGPCMAdvYS/zFY/v7kFbr/tkFwAdsWAf8WfjT/vTUx/3AZjwAmfzf/4mWj/tCFPf+JRa4BvnaR/zxi2//ZDfX/+ogKAFT+4gDJH30B8DP7/x+Dgv8CijL/19exAd8M7v/8lTj/fFtE/0h+qv53/2QAgofo/w5PsgD6g8UAisbQAHnYi/53EiT/HcF6ABAqLf/V8OsB5r6p/8Yj5P5urUgA1t3x/ziUhwDAdU7+jV3P/49BlQAVEmL/Xyz0AWq/TQD+VQj+1m6w/0mtE/6gxMf/7VqQAMGscf/Im4j+5FrdAIkxSgGk3df/0b0F/2nsN/8qH4EBwf/sAC7ZPACKWLv/4lLs/1FFl/+OvhABDYYIAH96MP9RQJwAq/OLAO0j9gB6j8H+1HqSAF8p/wFXhE0ABNQfABEfTgAnLa3+GI7Z/18JBv/jUwYAYjuC/j4eIQAIc9MBomGA/we4F/50HKj/+IqX/2L08AC6doIAcvjr/2mtyAGgfEf/XiSkAa9Bkv/u8ar+ysbFAORHiv4t9m3/wjSeAIW7sABT/Jr+Wb3d/6pJ/ACUOn0AJEQz/ipFsf+oTFb/JmTM/yY1IwCvE2EA4e79/1FRhwDSG//+60lrAAjPcwBSf4gAVGMV/s8TiABkpGUAUNBN/4TP7f8PAw//IaZuAJxfVf8luW8Blmoj/6aXTAByV4f/n8JAAAx6H//oB2X+rXdiAJpH3P6/OTX/qOig/+AgY//anKUAl5mjANkNlAHFcVkAlRyh/s8XHgBphOP/NuZe/4WtzP9ct53/WJD8/mYhWgCfYQMAtdqb//BydwBq1jX/pb5zAZhb4f9Yaiz/0D1xAJc0fAC/G5z/bjbsAQ4epv8nf88B5cccALzkvP5knesA9tq3AWsWwf/OoF8ATO+TAM+hdQAzpgL/NHUK/kk44/+YweEAhF6I/2W/0QAga+X/xiu0AWTSdgByQ5n/F1ga/1maXAHceIz/kHLP//xz+v8izkgAioV//wiyfAFXS2EAD+Vc/vBDg/92e+P+knho/5HV/wGBu0b/23c2AAETrQAtlpQB+FNIAMvpqQGOazgA9/kmAS3yUP8e6WcAYFJGABfJbwBRJx7/obdO/8LqIf9E44z+2M50AEYb6/9okE8ApOZd/taHnACau/L+vBSD/yRtrgCfcPEABW6VASSl2gCmHRMBsi5JAF0rIP74ve0AZpuNAMldw//xi/3/D29i/2xBo/6bT77/Sa7B/vYoMP9rWAv+ymFV//3MEv9x8kIAbqDC/tASugBRFTwAvGin/3ymYf7ShY4AOPKJ/ilvggBvlzoBb9WN/7es8f8mBsT/uQd7/y4L9gD1aXcBDwKh/wjOLf8Sykr/U3xzAdSNnQBTCNH+iw/o/6w2rf4y94QA1r3VAJC4aQDf/vgA/5Pw/xe8SAAHMzYAvBm0/ty0AP9ToBQAo73z/zrRwv9XSTwAahgxAPX53AAWracAdgvD/xN+7QBunyX/O1IvALS7VgC8lNABZCWF/wdwwQCBvJz/VGqB/4XhygAO7G//KBRlAKysMf4zNkr/+7m4/12b4P+0+eAB5rKSAEg5Nv6yPrgAd81IALnv/f89D9oAxEM4/+ogqwEu2+QA0Gzq/xQ/6P+lNccBheQF/zTNawBK7oz/lpzb/u+ssv/7vd/+II7T/9oPigHxxFAAHCRi/hbqxwA97dz/9jklAI4Rjv+dPhoAK+5f/gPZBv/VGfABJ9yu/5rNMP4TDcD/9CI2/owQmwDwtQX+m8E8AKaABP8kkTj/lvDbAHgzkQBSmSoBjOySAGtc+AG9CgMAP4jyANMnGAATyqEBrRu6/9LM7/4p0aL/tv6f/6x0NADDZ97+zUU7ADUWKQHaMMIAUNLyANK8zwC7oaH+2BEBAIjhcQD6uD8A3x5i/k2oogA7Na8AE8kK/4vgwgCTwZr/1L0M/gHIrv8yhXEBXrNaAK22hwBesXEAK1nX/4j8av97hlP+BfVC/1IxJwHcAuAAYYGxAE07WQA9HZsBy6vc/1xOiwCRIbX/qRiNATeWswCLPFD/2idhAAKTa/88+EgAreYvAQZTtv8QaaL+idRR/7S4hgEn3qT/3Wn7Ae9wfQA/B2EAP2jj/5Q6DABaPOD/VNT8AE/XqAD43ccBc3kBACSseAAgorv/OWsx/5MqFQBqxisBOUpXAH7LUf+Bh8MAjB+xAN2LwgAD3tcAg0TnALFWsv58l7QAuHwmAUajEQD5+7UBKjfjAOKhLAAX7G4AM5WOAV0F7ADat2r+QxhNACj10f/eeZkApTkeAFN9PABGJlIB5Qa8AG3enf83dj//zZe6AOMhlf/+sPYB47HjACJqo/6wK08Aal9OAbnxev+5Dj0AJAHKAA2yov/3C4QAoeZcAUEBuf/UMqUBjZJA/57y2gAVpH0A1Yt6AUNHVwDLnrIBl1wrAJhvBf8nA+//2f/6/7A/R/9K9U0B+q4S/yIx4//2Lvv/miMwAX2dPf9qJE7/YeyZAIi7eP9xhqv/E9XZ/the0f/8BT0AXgPKAAMat/9Avyv/HhcVAIGNTf9meAcBwkyMALyvNP8RUZQA6FY3AeEwrACGKir/7jIvAKkS/gAUk1f/DsPv/0X3FwDu5YD/sTFwAKhi+/95R/gA8wiR/vbjmf/bqbH++4ul/wyjuf+kKKv/mZ8b/vNtW//eGHABEtbnAGudtf7DkwD/wmNo/1mMvv+xQn7+arlCADHaHwD8rp4AvE/mAe4p4ADU6ggBiAu1AKZ1U/9Ew14ALoTJAPCYWACkOUX+oOAq/zvXQ/93w43/JLR5/s8vCP+u0t8AZcVE//9SjQH6iekAYVaFARBQRQCEg58AdF1kAC2NiwCYrJ3/WitbAEeZLgAnEHD/2Yhh/9zGGf6xNTEA3liG/4APPADPwKn/wHTR/2pO0wHI1bf/Bwx6/t7LPP8hbsf++2p1AOThBAF4Ogf/3cFU/nCFGwC9yMn/i4eWAOo3sP89MkEAmGyp/9xVAf9wh+MAohq6AM9guf70iGsAXZkyAcZhlwBuC1b/j3Wu/3PUyAAFyrcA7aQK/rnvPgDseBL+Yntj/6jJwv4u6tYAv4Ux/2OpdwC+uyMBcxUt//mDSABwBnv/1jG1/qbpIgBcxWb+/eTN/wM7yQEqYi4A2yUj/6nDJgBefMEBnCvfAF9Ihf54zr8AesXv/7G7T//+LgIB+qe+AFSBEwDLcab/+R+9/kidyv/QR0n/zxhIAAoQEgHSUUz/WNDA/37za//ujXj/x3nq/4kMO/8k3Hv/lLM8/vAMHQBCAGEBJB4m/3MBXf9gZ+f/xZ47AcCk8ADKyjn/GK4wAFlNmwEqTNcA9JfpABcwUQDvfzT+44Il//h0XQF8hHYArf7AAQbrU/9ur+cB+xy2AIH5Xf5UuIAATLU+AK+AugBkNYj+bR3iAN3pOgEUY0oAABagAIYNFQAJNDf/EVmMAK8iOwBUpXf/4OLq/wdIpv97c/8BEtb2APoHRwHZ3LkA1CNM/yZ9rwC9YdIAcu4s/ym8qf4tupoAUVwWAISgwQB50GL/DVEs/8ucUgBHOhX/0HK//jImkwCa2MMAZRkSADz61//phOv/Z6+OARAOXACNH27+7vEt/5nZ7wFhqC//+VUQARyvPv85/jYA3ud+AKYtdf4SvWD/5EwyAMj0XgDGmHgBRCJF/wxBoP5lE1oAp8V4/0Q2uf8p2rwAcagwAFhpvQEaUiD/uV2kAeTw7f9CtjUAq8Vc/2sJ6QHHeJD/TjEK/22qaf9aBB//HPRx/0o6CwA+3Pb/eZrI/pDSsv9+OYEBK/oO/2VvHAEvVvH/PUaW/zVJBf8eGp4A0RpWAIrtSgCkX7wAjjwd/qJ0+P+7r6AAlxIQANFvQf7Lhif/WGwx/4MaR//dG9f+aGld/x/sH/6HANP/j39uAdRJ5QDpQ6f+wwHQ/4QR3f8z2VoAQ+sy/9/SjwCzNYIB6WrGANmt3P9w5Rj/r5pd/kfL9v8wQoX/A4jm/xfdcf7rb9UAqnhf/vvdAgAtgp7+aV7Z//I0tP7VRC3/aCYcAPSeTAChyGD/zzUN/7tDlACqNvgAd6Ky/1MUCwAqKsABkp+j/7fobwBN5RX/RzWPABtMIgD2iC//2ye2/1zgyQETjg7/Rbbx/6N29QAJbWoBqrX3/04v7v9U0rD/1WuLACcmCwBIFZYASIJFAM1Nm/6OhRUAR2+s/uIqO/+zANcBIYDxAOr8DQG4TwgAbh5J//aNvQCqz9oBSppF/4r2Mf+bIGQAfUpp/1pVPf8j5bH/Pn3B/5lWvAFJeNQA0Xv2/ofRJv+XOiwBXEXW/w4MWP/8mab//c9w/zxOU//jfG4AtGD8/zV1If6k3FL/KQEb/yakpv+kY6n+PZBG/8CmEgBr+kIAxUEyAAGzEv//aAH/K5kj/1BvqABur6gAKWkt/9sOzf+k6Yz+KwF2AOlDwwCyUp//ild6/9TuWv+QI3z+GYykAPvXLP6FRmv/ZeNQ/lypNwDXKjEAcrRV/yHoGwGs1RkAPrB7/iCFGP/hvz4AXUaZALUqaAEWv+D/yMiM//nqJQCVOY0AwzjQ//6CRv8grfD/HdzHAG5kc/+E5fkA5Onf/yXY0f6ysdH/ty2l/uBhcgCJYaj/4d6sAKUNMQHS68z//AQc/kaglwDovjT+U/hd/z7XTQGvr7P/oDJCAHkw0AA/qdH/ANLIAOC7LAFJolIACbCP/xNMwf8dO6cBGCuaABy+vgCNvIEA6OvL/+oAbf82QZ8APFjo/3n9lv786YP/xm4pAVNNR//IFjv+av3y/xUMz//tQr0AWsbKAeGsfwA1FsoAOOaEAAFWtwBtvioA80SuAW3kmgDIsXoBI6C3/7EwVf9a2qn/+JhOAMr+bgAGNCsAjmJB/z+RFgBGal0A6IprAW6zPf/TgdoB8tFcACNa2QG2j2r/dGXZ/3L63f+tzAYAPJajAEmsLP/vblD/7UyZ/qGM+QCV6OUAhR8o/66kdwBxM9YAgeQC/kAi8wBr4/T/rmrI/1SZRgEyIxAA+krY/uy9Qv+Z+Q0A5rIE/90p7gB243n/XleM/v53XABJ7/b+dVeAABPTkf+xLvwA5Vv2AUWA9//KTTYBCAsJ/5lgpgDZ1q3/hsACAQDPAAC9rmsBjIZkAJ7B8wG2ZqsA65ozAI4Fe/88qFkB2Q5c/xPWBQHTp/4ALAbK/ngS7P8Pcbj/uN+LACixd/62e1r/sKWwAPdNwgAb6ngA5wDW/zsnHgB9Y5H/lkREAY3e+ACZe9L/bn+Y/+Uh1gGH3cUAiWECAAyPzP9RKbwAc0+C/14DhACYr7v/fI0K/37As/8LZ8YAlQYtANtVuwHmErL/SLaYAAPGuP+AcOABYaHmAP5jJv86n8UAl0LbADtFj/+5cPkAd4gv/3uChACoR1//cbAoAei5rQDPXXUBRJ1s/2YFk/4xYSEAWUFv/vceo/982d0BZvrYAMauS/45NxIA4wXsAeXVrQDJbdoBMenvAB43ngEZsmoAm2+8AV5+jADXH+4BTfAQANXyGQEmR6gAzbpd/jHTjP/bALT/hnalAKCThv9uuiP/xvMqAPOSdwCG66MBBPGH/8Euwf5ntE//4QS4/vJ2ggCSh7AB6m8eAEVC1f4pYHsAeV4q/7K/w/8ugioAdVQI/+kx1v7uem0ABkdZAezTewD0DTD+d5QOAHIcVv9L7Rn/keUQ/oFkNf+Glnj+qJ0yABdIaP/gMQ4A/3sW/5e5l/+qULgBhrYUAClkZQGZIRAATJpvAVbO6v/AoKT+pXtd/wHYpP5DEa//qQs7/54pPf9JvA7/wwaJ/xaTHf8UZwP/9oLj/3oogADiLxj+IyQgAJi6t/9FyhQAw4XDAN4z9wCpq14BtwCg/0DNEgGcUw//xTr5/vtZbv8yClj+MyvYAGLyxgH1l3EAq+zCAcUfx//lUSYBKTsUAP1o5gCYXQ7/9vKS/tap8P/wZmz+oKfsAJravACW6cr/GxP6AQJHhf+vDD8BkbfGAGh4c/+C+/cAEdSn/z57hP/3ZL0Am9+YAI/FIQCbOyz/ll3wAX8DV/9fR88Bp1UB/7yYdP8KFxcAicNdATZiYQDwAKj/lLx/AIZrlwBM/asAWoTAAJIWNgDgQjb+5rrl/ye2xACU+4L/QYNs/oABoACpMaf+x/6U//sGgwC7/oH/VVI+ALIXOv/+hAUApNUnAIb8kv4lNVH/m4ZSAM2n7v9eLbT/hCihAP5vcAE2S9kAs+bdAetev/8X8zABypHL/yd2Kv91jf0A/gDeACv7MgA2qeoBUETQAJTL8/6RB4cABv4AAPy5fwBiCIH/JiNI/9Mk3AEoGlkAqEDF/gPe7/8CU9f+tJ9pADpzwgC6dGr/5ffb/4F2wQDKrrcBpqFIAMlrk/7tiEoA6eZqAWlvqABA4B4BAeUDAGaXr//C7uT//vrUALvteQBD+2ABxR4LALdfzADNWYoAQN0lAf/fHv+yMNP/8cha/6fRYP85gt0ALnLI/z24QgA3thj+brYhAKu+6P9yXh8AEt0IAC/n/gD/cFMAdg/X/60ZKP7AwR//7hWS/6vBdv9l6jX+g9RwAFnAawEI0BsAtdkP/+eV6ACM7H4AkAnH/wxPtf6Ttsr/E222/zHU4QBKo8sAr+mUABpwMwDBwQn/D4f5AJbjggDMANsBGPLNAO7Qdf8W9HAAGuUiACVQvP8mLc7+8Frh/x0DL/8q4EwAuvOnACCED/8FM30Ai4cYAAbx2wCs5YX/9tYyAOcLz/+/flMBtKOq//U4GAGypNP/AxDKAWI5dv+Ng1n+ITMYAPOVW//9NA4AI6lD/jEeWP+zGyT/pYy3ADq9lwBYHwAAS6lCAEJlx/8Y2McBecQa/w5Py/7w4lH/XhwK/1PB8P/MwYP/Xg9WANoonQAzwdEAAPKxAGa59wCebXQAJodbAN+vlQDcQgH/VjzoABlgJf/heqIB17uo/56dLgA4q6IA6PBlAXoWCQAzCRX/NRnu/9ke6P59qZQADehmAJQJJQClYY0B5IMpAN4P8//+EhEABjztAWoDcQA7hL0AXHAeAGnQ1QAwVLP/u3nn/hvYbf+i3Wv+Se/D//ofOf+Vh1n/uRdzAQOjnf8ScPoAGTm7/6FgpAAvEPMADI37/kPquP8pEqEArwZg/6CsNP4YsLf/xsFVAXx5if+XMnL/3Ms8/8/vBQEAJmv/N+5e/kaYXgDV3E0BeBFF/1Wkvv/L6lEAJjEl/j2QfACJTjH+qPcwAF+k/ABpqYcA/eSGAECmSwBRSRT/z9IKAOpqlv9eIlr//p85/tyFYwCLk7T+GBe5ACk5Hv+9YUwAQbvf/+CsJf8iPl8B55DwAE1qfv5AmFsAHWKbAOL7Nf/q0wX/kMve/6Sw3f4F5xgAs3rNACQBhv99Rpf+YeT8AKyBF/4wWtH/luBSAVSGHgDxxC4AZ3Hq/y5lef4ofPr/hy3y/gn5qP+MbIP/j6OrADKtx/9Y3o7/yF+eAI7Ao/8HdYcAb3wWAOwMQf5EJkH/467+APT1JgDwMtD/oT/6ADzR7wB6IxMADiHm/gKfcQBqFH//5M1gAInSrv601JD/WWKaASJYiwCnonABQW7FAPElqQBCOIP/CslT/oX9u/+xcC3+xPsAAMT6l//u6Nb/ltHNABzwdgBHTFMB7GNbACr6gwFgEkD/dt4jAHHWy/96d7j/QhMkAMxA+QCSWYsAhj6HAWjpZQC8VBoAMfmBANDWS//Pgk3/c6/rAKsCif+vkboBN/WH/5pWtQFkOvb/bcc8/1LMhv/XMeYBjOXA/97B+/9RiA//s5Wi/xcnHf8HX0v+v1HeAPFRWv9rMcn/9NOdAN6Mlf9B2zj+vfZa/7I7nQEw2zQAYiLXABwRu/+vqRgAXE+h/+zIwgGTj+oA5eEHAcWoDgDrMzUB/XiuAMUGqP/KdasAoxXOAHJVWv8PKQr/whNjAEE32P6iknQAMs7U/0CSHf+enoMBZKWC/6wXgf99NQn/D8ESARoxC/+1rskBh8kO/2QTlQDbYk8AKmOP/mAAMP/F+VP+aJVP/+tuiP5SgCz/QSkk/ljTCgC7ebsAYobHAKu8s/7SC+7/QnuC/jTqPQAwcRf+BlZ4/3ey9QBXgckA8o3RAMpyVQCUFqEAZ8MwABkxq/+KQ4IAtkl6/pQYggDT5ZoAIJueAFRpPQCxwgn/pllWATZTuwD5KHX/bQPX/zWSLAE/L7MAwtgD/g5UiACIsQ3/SPO6/3URff/TOtP/XU/fAFpY9f+L0W//Rt4vAAr2T//G2bIA4+ELAU5+s/8+K34AZ5QjAIEIpf718JQAPTOOAFHQhgAPiXP/03fs/5/1+P8Choj/5os6AaCk/gByVY3/Maa2/5BGVAFVtgcALjVdAAmmof83orL/Lbi8AJIcLP6pWjEAeLLxAQ57f/8H8ccBvUIy/8aPZf6984f/jRgY/kthVwB2+5oB7TacAKuSz/+DxPb/iEBxAZfoOQDw2nMAMT0b/0CBSQH8qRv/KIQKAVrJwf/8efABus4pACvGYQCRZLcAzNhQ/qyWQQD55cT+aHtJ/01oYP6CtAgAaHs5ANzK5f9m+dMAVg7o/7ZO0QDv4aQAag0g/3hJEf+GQ+kAU/61ALfscAEwQIP/8djz/0HB4gDO8WT+ZIam/+3KxQA3DVEAIHxm/yjksQB2tR8B56CG/3e7ygAAjjz/gCa9/6bJlgDPeBoBNrisAAzyzP6FQuYAIiYfAbhwUAAgM6X+v/M3ADpJkv6bp83/ZGiY/8X+z/+tE/cA7grKAO+X8gBeOyf/8B1m/wpcmv/lVNv/oYFQANBazAHw267/nmaRATWyTP80bKgBU95rANMkbQB2OjgACB0WAO2gxwCq0Z0AiUcvAI9WIADG8gIA1DCIAVysugDml2kBYL/lAIpQv/7w2IL/YisG/qjEMQD9ElsBkEl5AD2SJwE/aBj/uKVw/n7rYgBQ1WL/ezxX/1KM9QHfeK3/D8aGAc487wDn6lz/Ie4T/6VxjgGwdyYAoCum/u9baQBrPcIBGQREAA+LMwCkhGr/InQu/qhfxQCJ1BcASJw6AIlwRf6WaZr/7MmdABfUmv+IUuP+4jvd/1+VwABRdjT/ISvXAQ6TS/9ZnHn+DhJPAJPQiwGX2j7/nFgIAdK4Yv8Ur3v/ZlPlANxBdAGW+gT/XI7c/yL3Qv/M4bP+l1GXAEco7P+KPz4ABk/w/7e5tQB2MhsAP+PAAHtjOgEy4Jv/EeHf/tzgTf8OLHsBjYCvAPjUyACWO7f/k2EdAJbMtQD9JUcAkVV3AJrIugACgPn/Uxh8AA5XjwCoM/UBfJfn/9DwxQF8vrkAMDr2ABTp6AB9EmL/Df4f//Wxgv9sjiMAq33y/owMIv+loaIAzs1lAPcZIgFkkTkAJ0Y5AHbMy//yAKIApfQeAMZ04gCAb5n/jDa2ATx6D/+bOjkBNjLGAKvTHf9riqf/rWvH/22hwQBZSPL/znNZ//r+jv6xyl7/UVkyAAdpQv8Z/v/+y0AX/0/ebP8n+UsA8XwyAO+YhQDd8WkAk5diANWhef7yMYkA6SX5/iq3GwC4d+b/2SCj/9D75AGJPoP/T0AJ/l4wcQARijL+wf8WAPcSxQFDN2gAEM1f/zAlQgA3nD8BQFJK/8g1R/7vQ30AGuDeAN+JXf8e4Mr/CdyEAMYm6wFmjVYAPCtRAYgcGgDpJAj+z/KUAKSiPwAzLuD/cjBP/wmv4gDeA8H/L6Do//9daf4OKuYAGopSAdAr9AAbJyb/YtB//0CVtv8F+tEAuzwc/jEZ2v+pdM3/dxJ4AJx0k/+ENW3/DQrKAG5TpwCd24n/BgOC/zKnHv88ny//gYCd/l4DvQADpkQAU9/XAJZawgEPqEEA41Mz/82rQv82uzwBmGYt/3ea4QDw94gAZMWy/4tH3//MUhABKc4q/5zA3f/Ye/T/2tq5/7u67//8rKD/wzQWAJCutf67ZHP/006w/xsHwQCT1Wj/WskK/1B7QgEWIboAAQdj/h7OCgDl6gUANR7SAIoI3P5HN6cASOFWAXa+vAD+wWUBq/ms/16et/5dAmz/sF1M/0ljT/9KQIH+9i5BAGPxf/72l2b/LDXQ/jtm6gCar6T/WPIgAG8mAQD/tr7/c7AP/qk8gQB67fEAWkw/AD5KeP96w24AdwSyAN7y0gCCIS7+nCgpAKeScAExo2//ebDrAEzPDv8DGcYBKevVAFUk1gExXG3/yBge/qjswwCRJ3wB7MOVAFokuP9DVar/JiMa/oN8RP/vmyP/NsmkAMQWdf8xD80AGOAdAX5xkAB1FbYAy5+NAN+HTQCw5rD/vuXX/2Mltf8zFYr/Gb1Z/zEwpf6YLfcAqmzeAFDKBQAbRWf+zBaB/7T8Pv7SAVv/km7+/9uiHADf/NUBOwghAM4Q9ACB0zAAa6DQAHA70QBtTdj+IhW5//ZjOP+zixP/uR0y/1RZEwBK+mL/4SrI/8DZzf/SEKcAY4RfASvmOQD+C8v/Y7w//3fB+/5QaTYA6LW9AbdFcP/Qq6X/L220/3tTpQCSojT/mgsE/5fjWv+SiWH+Pekp/14qN/9spOwAmET+AAqMg/8Kak/+856JAEOyQv6xe8b/Dz4iAMVYKv+VX7H/mADG/5X+cf/hWqP/fdn3ABIR4ACAQnj+wBkJ/zLdzQAx1EYA6f+kAALRCQDdNNv+rOD0/144zgHyswL/H1ukAeYuiv+95twAOS89/28LnQCxW5gAHOZiAGFXfgDGWZH/p09rAPlNoAEd6eb/lhVW/jwLwQCXJST+uZbz/+TUUwGsl7QAyambAPQ86gCO6wQBQ9o8AMBxSwF088//QaybAFEenP9QSCH+Eudt/45rFf59GoT/sBA7/5bJOgDOqckA0HniACisDv+WPV7/ODmc/408kf8tbJX/7pGb/9FVH/7ADNIAY2Jd/pgQlwDhudwAjess/6CsFf5HGh//DUBd/hw4xgCxPvgBtgjxAKZllP9OUYX/gd7XAbypgf/oB2EAMXA8/9nl+wB3bIoAJxN7/oMx6wCEVJEAguaU/xlKuwAF9Tb/udvxARLC5P/xymYAaXHKAJvrTwAVCbL/nAHvAMiUPQBz99L/Md2HADq9CAEjLgkAUUEF/zSeuf99dC7/SowN/9JcrP6TF0cA2eD9/nNstP+ROjD+27EY/5z/PAGak/IA/YZXADVL5QAww97/H68y/5zSeP/QI97/EvizAQIKZf+dwvj/nsxl/2j+xf9PPgQAsqxlAWCS+/9BCpwAAoml/3QE5wDy1wEAEyMd/yuhTwA7lfYB+0KwAMghA/9Qbo7/w6ERAeQ4Qv97L5H+hASkAEOurAAZ/XIAV2FXAfrcVABgW8j/JX07ABNBdgChNPH/7awG/7C///8BQYL+377mAGX95/+SI20A+h1NATEAEwB7WpsBFlYg/9rVQQBvXX8APF2p/wh/tgARug7+/Yn2/9UZMP5M7gD/+FxG/2PgiwC4Cf8BB6TQAM2DxgFX1scAgtZfAN2V3gAXJqv+xW7VACtzjP7XsXYAYDRCAXWe7QAOQLb/Lj+u/55fvv/hzbH/KwWO/6xj1P/0u5MAHTOZ/+R0GP4eZc8AE/aW/4bnBQB9huIBTUFiAOyCIf8Fbj4ARWx//wdxFgCRFFP+wqHn/4O1PADZ0bH/5ZTU/gODuAB1sbsBHA4f/7BmUAAyVJf/fR82/xWdhf8Ts4sB4OgaACJ1qv+n/Kv/SY3O/oH6IwBIT+wB3OUU/ynKrf9jTO7/xhbg/2zGw/8kjWAB7J47/2pkVwBu4gIA4+reAJpdd/9KcKT/Q1sC/xWRIf9m1on/r+Zn/qP2pgBd93T+p+Ac/9wCOQGrzlQAe+QR/xt4dwB3C5MBtC/h/2jIuf6lAnIATU7UAC2asf8YxHn+Up22AFoQvgEMk8UAX++Y/wvrRwBWknf/rIbWADyDxACh4YEAH4J4/l/IMwBp59L/OgmU/yuo3f987Y4AxtMy/i71ZwCk+FQAmEbQ/7R1sQBGT7kA80ogAJWczwDFxKEB9TXvAA9d9v6L8DH/xFgk/6ImewCAyJ0Brkxn/62pIv7YAav/cjMRAIjkwgBuljj+avafABO4T/+WTfD/m1CiAAA1qf8dl1YARF4QAFwHbv5idZX/+U3m//0KjADWfFz+I3brAFkwOQEWNaYAuJA9/7P/wgDW+D3+O272AHkVUf6mA+QAakAa/0Xohv/y3DX+LtxVAHGV9/9hs2f/vn8LAIfRtgBfNIEBqpDO/3rIzP+oZJIAPJCV/kY8KAB6NLH/9tNl/67tCAAHM3gAEx+tAH7vnP+PvcsAxIBY/+mF4v8efa3/yWwyAHtkO//+owMB3ZS1/9aIOf7etIn/z1g2/xwh+/9D1jQB0tBkAFGqXgCRKDUA4G/n/iMc9P/ix8P+7hHmANnZpP6pnd0A2i6iAcfPo/9sc6IBDmC7/3Y8TAC4n5gA0edH/iqkuv+6mTP+3au2/6KOrQDrL8EAB4sQAV+kQP8Q3aYA28UQAIQdLP9kRXX/POtY/ihRrQBHvj3/u1idAOcLFwDtdaQA4ajf/5pydP+jmPIBGCCqAH1icf6oE0wAEZ3c/ps0BQATb6H/R1r8/61u8AAKxnn//f/w/0J70gDdwtf+eaMR/+EHYwC+MbYAcwmFAegaiv/VRIQALHd6/7NiMwCVWmoARzLm/wqZdv+xRhkApVfNADeK6gDuHmEAcZvPAGKZfwAia9v+dXKs/0y0//7yObP/3SKs/jiiMf9TA///cd29/7wZ5P4QWFn/RxzG/hYRlf/zef7/a8pj/wnODgHcL5kAa4knAWExwv+VM8X+ujoL/2sr6AHIBg7/tYVB/t3kq/97PucB4+qz/yK91P70u/kAvg1QAYJZAQDfha0ACd7G/0J/SgCn2F3/m6jGAUKRAABEZi4BrFqaANiAS/+gKDMAnhEbAXzwMQDsyrD/l3zA/ybBvgBftj0Ao5N8//+lM/8cKBH+12BOAFaR2v4fJMr/VgkFAG8pyP/tbGEAOT4sAHW4DwEt8XQAmAHc/52lvAD6D4MBPCx9/0Hc+/9LMrgANVqA/+dQwv+IgX8BFRK7/y06of9HkyIArvkL/iONHQDvRLH/c246AO6+sQFX9ab/vjH3/5JTuP+tDif/ktdoAI7feACVyJv/1M+RARC12QCtIFf//yO1AHffoQHI317/Rga6/8BDVf8yqZgAkBp7/zjzs/4URIgAJ4y8/v3QBf/Ic4cBK6zl/5xouwCX+6cANIcXAJeZSACTxWv+lJ4F/+6PzgB+mYn/WJjF/gdEpwD8n6X/7042/xg/N/8m3l4A7bcM/87M0gATJ/b+HkrnAIdsHQGzcwAAdXZ0AYQG/P+RgaEBaUONAFIl4v/u4uT/zNaB/qJ7ZP+5eeoALWznAEIIOP+EiIAArOBC/q+dvADm3+L+8ttFALgOdwFSojgAcnsUAKJnVf8x72P+nIfXAG//p/4nxNYAkCZPAfmofQCbYZz/FzTb/5YWkAAslaX/KH+3AMRN6f92gdL/qofm/9Z3xgDp8CMA/TQH/3VmMP8VzJr/s4ix/xcCAwGVgln//BGfAUY8GgCQaxEAtL48/zi2O/9uRzb/xhKB/5XgV//fFZj/iha2//qczQDsLdD/T5TyAWVG0QBnTq4AZZCs/5iI7QG/wogAcVB9AZgEjQCbljX/xHT1AO9ySf4TUhH/fH3q/yg0vwAq0p7/m4SlALIFKgFAXCj/JFVN/7LkdgCJQmD+c+JCAG7wRf6Xb1AAp67s/+Nsa/+88kH/t1H/ADnOtf8vIrX/1fCeAUdLXwCcKBj/ZtJRAKvH5P+aIikA469LABXvwwCK5V8BTMAxAHV7VwHj4YIAfT4//wLGqwD+JA3+kbrOAJT/9P8jAKYAHpbbAVzk1ABcxjz+PoXI/8kpOwB97m3/tKPuAYx6UgAJFlj/xZ0v/5leOQBYHrYAVKFVALKSfACmpgf/FdDfAJy28gCbebkAU5yu/poQdv+6U+gB3zp5/x0XWAAjfX//qgWV/qQMgv+bxB0AoWCIAAcjHQGiJfsAAy7y/wDZvAA5ruIBzukCADm7iP57vQn/yXV//7okzADnGdgAUE5pABOGgf+Uy0QAjVF9/vilyP/WkIcAlzem/ybrWwAVLpoA3/6W/yOZtP99sB0BK2Ie/9h65v/poAwAObkM/vBxB/8FCRD+GltsAG3GywAIkygAgYbk/3y6KP9yYoT+poQXAGNFLAAJ8u7/uDU7AISBZv80IPP+k9/I/3tTs/6HkMn/jSU4AZc84/9aSZwBy6y7AFCXL/9eief/JL87/+HRtf9K19X+Bnaz/5k2wQEyAOcAaJ1IAYzjmv+24hD+YOFc/3MUqv4G+k4A+Eut/zVZBv8AtHYASK0BAEAIzgGuhd8AuT6F/9YLYgDFH9AAq6f0/xbntQGW2rkA96lhAaWL9/8veJUBZ/gzADxFHP4Zs8QAfAfa/jprUQC46Zz//EokAHa8QwCNXzX/3l6l/i49NQDOO3P/L+z6/0oFIAGBmu7/aiDiAHm7Pf8DpvH+Q6qs/x3Ysv8XyfwA/W7zAMh9OQBtwGD/NHPuACZ58//JOCEAwnaCAEtgGf+qHub+Jz/9ACQt+v/7Ae8AoNRcAS3R7QDzIVf+7VTJ/9QSnf7UY3//2WIQ/ous7wCoyYL/j8Gp/+6XwQHXaCkA7z2l/gID8gAWy7H+scwWAJWB1f4fCyn/AJ95/qAZcv+iUMgAnZcLAJqGTgHYNvwAMGeFAGncxQD9qE3+NbMXABh58AH/LmD/azyH/mLN+f8/+Xf/eDvT/3K0N/5bVe0AldRNAThJMQBWxpYAXdGgAEXNtv/0WisAFCSwAHp03QAzpycB5wE//w3FhgAD0SL/hzvKAKdkTgAv30wAuTw+ALKmewGEDKH/Pa4rAMNFkAB/L78BIixOADnqNAH/Fij/9l6SAFPkgAA8TuD/AGDS/5mv7ACfFUkAtHPE/oPhagD/p4YAnwhw/3hEwv+wxMb/djCo/12pAQBwyGYBShj+ABONBP6OPj8Ag7O7/02cm/93VqQAqtCS/9CFmv+Umzr/onjo/vzVmwDxDSoAXjKDALOqcACMU5f/N3dUAYwj7/+ZLUMB7K8nADaXZ/+eKkH/xO+H/lY1ywCVYS/+2CMR/0YDRgFnJFr/KBqtALgwDQCj29n/UQYB/92qbP7p0F0AZMn5/lYkI//Rmh4B48n7/wK9p/5kOQMADYApAMVkSwCWzOv/ka47AHj4lf9VN+EActI1/sfMdwAO90oBP/uBAENolwGHglAAT1k3/3Xmnf8ZYI8A1ZEFAEXxeAGV81//cioUAINIAgCaNRT/ST5tAMRmmAApDMz/eiYLAfoKkQDPfZQA9vTe/ykgVQFw1X4AovlWAUfGf/9RCRUBYicE/8xHLQFLb4kA6jvnACAwX//MH3IBHcS1/zPxp/5dbY4AaJAtAOsMtf80cKQATP7K/64OogA965P/K0C5/ul92QDzWKf+SjEIAJzMQgB81nsAJt12AZJw7AByYrEAl1nHAFfFcAC5laEALGClAPizFP+829j+KD4NAPOOjQDl487/rMoj/3Ww4f9SbiYBKvUO/xRTYQAxqwoA8nd4ABnoPQDU8JP/BHM4/5ER7/7KEfv/+RL1/2N17wC4BLP/9u0z/yXvif+mcKb/Ubwh/7n6jv82u60A0HDJAPYr5AFouFj/1DTE/zN1bP/+dZsALlsP/1cOkP9X48wAUxpTAZ9M4wCfG9UBGJdsAHWQs/6J0VIAJp8KAHOFyQDftpwBbsRd/zk86QAFp2n/msWkAGAiuv+ThSUB3GO+AAGnVP8UkasAwsX7/l9Ohf/8+PP/4V2D/7uGxP/YmaoAFHae/owBdgBWng8BLdMp/5MBZP5xdEz/039sAWcPMADBEGYBRTNf/2uAnQCJq+kAWnyQAWqhtgCvTOwByI2s/6M6aADptDT/8P0O/6Jx/v8m74r+NC6mAPFlIf6DupwAb9A+/3xeoP8frP4AcK44/7xjG/9DivsAfTqAAZyYrv+yDPf//FSeAFLFDv6syFP/JScuAWrPpwAYvSIAg7KQAM7VBACh4tIASDNp/2Etu/9OuN//sB37AE+gVv90JbIAUk3VAVJUjf/iZdQBr1jH//Ve9wGsdm3/prm+AIO1eABX/l3/hvBJ/yD1j/+Lomf/s2IS/tnMcACT33j/NQrzAKaMlgB9UMj/Dm3b/1vaAf/8/C/+bZx0/3MxfwHMV9P/lMrZ/xpV+f8O9YYBTFmp//It5gA7Yqz/ckmE/k6bMf+eflQAMa8r/xC2VP+dZyMAaMFt/0PdmgDJrAH+CKJYAKUBHf99m+X/HprcAWfvXADcAW3/ysYBAF4CjgEkNiwA6+Ke/6r71v+5TQkAYUryANujlf/wI3b/33JY/sDHAwBqJRj/yaF2/2FZYwHgOmf/ZceT/t48YwDqGTsBNIcbAGYDW/6o2OsA5eiIAGg8gQAuqO4AJ79DAEujLwCPYWL/ONioAajp/P8jbxb/XFQrABrIVwFb/ZgAyjhGAI4ITQBQCq8B/MdMABZuUv+BAcIAC4A9AVcOkf/93r4BD0iuAFWjVv46Yyz/LRi8/hrNDwAT5dL++EPDAGNHuACaxyX/l/N5/yYzS//JVYL+LEH6ADmT8/6SKzv/WRw1ACFUGP+zMxL+vUZTAAucswFihncAnm9vAHeaSf/IP4z+LQ0N/5rAAv5RSCoALqC5/ixwBgCS15UBGrBoAEQcVwHsMpn/s4D6/s7Bv/+mXIn+NSjvANIBzP6orSMAjfMtASQybf8P8sL/4596/7Cvyv5GOUgAKN84ANCiOv+3Yl0AD28MAB4ITP+Ef/b/LfJnAEW1D/8K0R4AA7N5APHo2gF7x1j/AtLKAbyCUf9eZdABZyQtAEzBGAFfGvH/paK7ACRyjADKQgX/JTiTAJgL8wF/Vej/+ofUAbmxcQBa3Ev/RfiSADJvMgBcFlAA9CRz/qNkUv8ZwQYBfz0kAP1DHv5B7Kr/oRHX/j+vjAA3fwQAT3DpAG2gKACPUwf/QRru/9mpjP9OXr3/AJO+/5NHuv5qTX//6Z3pAYdX7f/QDewBm20k/7Rk2gC0oxIAvm4JARE/e/+ziLT/pXt7/5C8Uf5H8Gz/GXAL/+PaM/+nMur/ck9s/x8Tc/+38GMA41eP/0jZ+P9mqV8BgZWVAO6FDAHjzCMA0HMaAWYI6gBwWI8BkPkOAPCerP5kcHcAwo2Z/ig4U/95sC4AKjVM/56/mgBb0VwArQ0QAQVI4v/M/pUAULjPAGQJev52Zav//MsA/qDPNgA4SPkBOIwN/wpAa/5bZTT/4bX4AYv/hADmkREA6TgXAHcB8f/VqZf/Y2MJ/rkPv/+tZ20Brg37/7JYB/4bO0T/CiEC//hhOwAaHpIBsJMKAF95zwG8WBgAuV7+/nM3yQAYMkYAeDUGAI5CkgDk4vn/aMDeAa1E2wCiuCT/j2aJ/50LFwB9LWIA613h/jhwoP9GdPMBmfk3/4EnEQHxUPQAV0UVAV7kSf9OQkH/wuPnAD2SV/+tmxf/cHTb/tgmC/+DuoUAXtS7AGQvWwDM/q//3hLX/q1EbP/j5E//Jt3VAKPjlv4fvhIAoLMLAQpaXv/crlgAo9Pl/8eINACCX93/jLzn/otxgP91q+z+MdwU/zsUq//kbbwAFOEg/sMQrgDj/ogBhydpAJZNzv/S7uIAN9SE/u85fACqwl3/+RD3/xiXPv8KlwoAT4uy/3jyygAa29UAPn0j/5ACbP/mIVP/US3YAeA+EQDW2X0AYpmZ/7Owav6DXYr/bT4k/7J5IP94/EYA3PglAMxYZwGA3Pv/7OMHAWoxxv88OGsAY3LuANzMXgFJuwEAWZoiAE7Zpf8Ow/n/Ceb9/82H9QAa/Af/VM0bAYYCcAAlniAA51vt/7+qzP+YB94AbcAxAMGmkv/oE7X/aY40/2cQGwH9yKUAw9kE/zS9kP97m6D+V4I2/054Pf8OOCkAGSl9/1eo9QDWpUYA1KkG/9vTwv5IXaT/xSFn/yuOjQCD4awA9GkcAERE4QCIVA3/gjko/otNOABUljUANl+dAJANsf5fc7oAdRd2//Sm8f8LuocAsmrL/2HaXQAr/S0ApJgEAIt27wBgARj+65nT/6huFP8y77AAcinoAMH6NQD+oG/+iHop/2FsQwDXmBf/jNHUACq9owDKKjL/amq9/75E2f/pOnUA5dzzAcUDBAAleDb+BJyG/yQ9q/6liGT/1OgOAFquCgDYxkH/DANAAHRxc//4ZwgA530S/6AcxQAeuCMB30n5/3sULv6HOCX/rQ3lAXehIv/1PUkAzX1wAIlohgDZ9h7/7Y6PAEGfZv9spL4A23Wt/yIleP7IRVAAH3za/koboP+6msf/R8f8AGhRnwERyCcA0z3AARruWwCU2QwAO1vV/wtRt/+B5nr/csuRAXe0Qv9IirQA4JVqAHdSaP/QjCsAYgm2/81lhv8SZSYAX8Wm/8vxkwA+0JH/hfb7AAKpDgAN97gAjgf+ACTIF/9Yzd8AW4E0/xW6HgCP5NIB9+r4/+ZFH/6wuof/7s00AYtPKwARsNn+IPNDAPJv6QAsIwn/43JRAQRHDP8mab8AB3Uy/1FPEAA/REH/nSRu/03xA//iLfsBjhnOAHh70QEc/u7/BYB+/1ve1/+iD78AVvBJAIe5Uf4s8aMA1NvS/3CimwDPZXYAqEg4/8QFNABIrPL/fhad/5JgO/+ieZj+jBBfAMP+yP5SlqIAdyuR/sysTv+m4J8AaBPt//V+0P/iO9UAddnFAJhI7QDcHxf+Dlrn/7zUQAE8Zfb/VRhWAAGxbQCSUyABS7bAAHfx4AC57Rv/uGVSAeslTf/9hhMA6PZ6ADxqswDDCwwAbULrAX1xOwA9KKQAr2jwAAIvu/8yDI0Awou1/4f6aABhXN7/2ZXJ/8vxdv9Pl0MAeo7a/5X17wCKKsj+UCVh/3xwp/8kilf/gh2T//FXTv/MYRMBsdEW//fjf/5jd1P/1BnGARCzswCRTaz+WZkO/9q9pwBr6Tv/IyHz/ixwcP+hf08BzK8KACgViv5odOQAx1+J/4W+qP+SpeoBt2MnALfcNv7/3oUAott5/j/vBgDhZjb/+xL2AAQigQGHJIMAzjI7AQ9htwCr2If/ZZgr/5b7WwAmkV8AIswm/rKMU/8ZgfP/TJAlAGokGv52kKz/RLrl/2uh1f8uo0T/lar9ALsRDwDaoKX/qyP2AWANEwCly3UA1mvA//R7sQFkA2gAsvJh//tMgv/TTSoB+k9G/z/0UAFpZfYAPYg6Ae5b1QAOO2L/p1RNABGELv45r8X/uT64AExAzwCsr9D+r0olAIob0/6UfcIACllRAKjLZf8r1dEB6/U2AB4j4v8JfkYA4n1e/px1FP85+HAB5jBA/6RcpgHg1ub/JHiPADcIK//7AfUBamKlAEprav41BDb/WrKWAQN4e//0BVkBcvo9//6ZUgFNDxEAOe5aAV/f5gDsNC/+Z5Sk/3nPJAESELn/SxRKALsLZQAuMIH/Fu/S/03sgf9vTcz/PUhh/8fZ+/8q18wAhZHJ/znmkgHrZMYAkkkj/mzGFP+2T9L/UmeIAPZssAAiETz/E0py/qiqTv+d7xT/lSmoADp5HABPs4b/53mH/67RYv/zer4Aq6bNANR0MAAdbEL/ot62AQ53FQDVJ/n//t/k/7elxgCFvjAAfNBt/3evVf8J0XkBMKu9/8NHhgGI2zP/tluN/jGfSAAjdvX/cLrj/zuJHwCJLKMAcmc8/gjVlgCiCnH/wmhIANyDdP+yT1wAy/rV/l3Bvf+C/yL+1LyXAIgRFP8UZVP/1M6mAOXuSf+XSgP/qFfXAJu8hf+mgUkA8E+F/7LTUf/LSKP+wailAA6kx/4e/8wAQUhbAaZKZv/IKgD/wnHj/0IX0ADl2GT/GO8aAArpPv97CrIBGiSu/3fbxwEto74AEKgqAKY5xv8cGhoAfqXnAPtsZP895Xn/OnaKAEzPEQANInD+WRCoACXQaf8jydf/KGpl/gbvcgAoZ+L+9n9u/z+nOgCE8I4ABZ5Y/4FJnv9eWZIA5jaSAAgtrQBPqQEAc7r3AFRAgwBD4P3/z71AAJocUQEtuDb/V9Tg/wBgSf+BIesBNEJQ//uum/8EsyUA6qRd/l2v/QDGRVf/4GouAGMd0gA+vHL/LOoIAKmv9/8XbYn/5bYnAMClXv71ZdkAv1hgAMReY/9q7gv+NX7zAF4BZf8ukwIAyXx8/40M2gANpp0BMPvt/5v6fP9qlJL/tg3KABw9pwDZmAj+3IIt/8jm/wE3QVf/Xb9h/nL7DgAgaVwBGs+NABjPDf4VMjD/upR0/9Mr4QAlIqL+pNIq/0QXYP+21gj/9XWJ/0LDMgBLDFP+UIykAAmlJAHkbuMA8RFaARk01AAG3wz/i/M5AAxxSwH2t7//1b9F/+YPjgABw8T/iqsv/0A/agEQqdb/z644AVhJhf+2hYwAsQ4Z/5O4Nf8K46H/eNj0/0lN6QCd7osBO0HpAEb72AEpuJn/IMtwAJKT/QBXZW0BLFKF//SWNf9emOj/O10n/1iT3P9OUQ0BIC/8/6ATcv9dayf/dhDTAbl30f/j23/+WGns/6JuF/8kpm7/W+zd/0LqdABvE/T+CukaACC3Bv4Cv/IA2pw1/ik8Rv+o7G8Aebl+/+6Oz/83fjQA3IHQ/lDMpP9DF5D+2ihs/3/KpADLIQP/Ap4AACVgvP/AMUoAbQQAAG+nCv5b2of/y0Kt/5bC4gDJ/Qb/rmZ5AM2/bgA1wgQAUSgt/iNmj/8MbMb/EBvo//xHugGwbnIAjgN1AXFNjgATnMUBXC/8ADXoFgE2EusALiO9/+zUgQACYND+yO7H/zuvpP+SK+cAwtk0/wPfDACKNrL+VevPAOjPIgAxNDL/pnFZ/wot2P8+rRwAb6X2AHZzW/+AVDwAp5DLAFcN8wAWHuQBsXGS/4Gq5v78mYH/keErAEbnBf96aX7+VvaU/24lmv7RA1sARJE+AOQQpf833fn+stJbAFOS4v5FkroAXdJo/hAZrQDnuiYAvXqM//sNcP9pbl0A+0iqAMAX3/8YA8oB4V3kAJmTx/5tqhYA+GX2/7J8DP+y/mb+NwRBAH3WtAC3YJMALXUX/oS/+QCPsMv+iLc2/5LqsQCSZVb/LHuPASHRmADAWin+Uw99/9WsUgDXqZAAEA0iACDRZP9UEvkBxRHs/9m65gAxoLD/b3Zh/+1o6wBPO1z+RfkL/yOsSgETdkQA3nyl/7RCI/9WrvYAK0pv/36QVv/k6lsA8tUY/kUs6//ctCMACPgH/2YvXP/wzWb/cearAR+5yf/C9kb/ehG7AIZGx/+VA5b/dT9nAEFoe//UNhMBBo1YAFOG8/+INWcAqRu0ALExGABvNqcAwz3X/x8BbAE8KkYAuQOi/8KVKP/2fyb+vncm/z13CAFgodv/KsvdAbHypP/1nwoAdMQAAAVdzf6Af7MAfe32/5Wi2f9XJRT+jO7AAAkJwQBhAeIAHSYKAACIP//lSNL+JoZc/07a0AFoJFT/DAXB//KvPf+/qS4Bs5OT/3G+i/59rB8AA0v8/tckDwDBGxgB/0WV/26BdgDLXfkAiolA/iZGBgCZdN4AoUp7AMFjT/92O17/PQwrAZKxnQAuk78AEP8mAAszHwE8OmL/b8JNAZpb9ACMKJABrQr7AMvRMv5sgk4A5LRaAK4H+gAfrjwAKaseAHRjUv92wYv/u63G/tpvOAC5e9gA+Z40ADS0Xf/JCVv/OC2m/oSby/866G4ANNNZ//0AogEJV7cAkYgsAV569QBVvKsBk1zGAAAIaAAeX64A3eY0Aff36/+JrjX/IxXM/0fj1gHoUsIACzDj/6pJuP/G+/z+LHAiAINlg/9IqLsAhId9/4poYf/uuKj/82hU/4fY4v+LkO0AvImWAVA4jP9Wqaf/wk4Z/9wRtP8RDcEAdYnU/43glwAx9K8AwWOv/xNjmgH/QT7/nNI3//L0A//6DpUAnljZ/53Phv776BwALpz7/6s4uP/vM+oAjoqD/xn+8wEKycIAP2FLANLvogDAyB8BddbzABhH3v42KOj/TLdv/pAOV//WT4j/2MTUAIQbjP6DBf0AfGwT/xzXSwBM3jf+6bY/AESrv/40b97/CmlN/1Cq6wCPGFj/Led5AJSB4AE99lQA/S7b/+9MIQAxlBL+5iVFAEOGFv6Om14AH53T/tUqHv8E5Pf+/LAN/ycAH/7x9P//qi0K/v3e+QDecoQA/y8G/7SjswFUXpf/WdFS/uU0qf/V7AAB1jjk/4d3l/9wycEAU6A1/gaXQgASohEA6WFbAIMFTgG1eDX/dV8//+11uQC/foj/kHfpALc5YQEvybv/p6V3AS1kfgAVYgb+kZZf/3g2mADRYmgAj28e/riU+QDr2C4A+MqU/zlfFgDy4aMA6ffo/0erE/9n9DH/VGdd/0R59AFS4A0AKU8r//nOp//XNBX+wCAW//dvPABlSib/FltU/h0cDf/G59f+9JrIAN+J7QDThA4AX0DO/xE+9//pg3kBXRdNAM3MNP5RvYgAtNuKAY8SXgDMK4z+vK/bAG9ij/+XP6L/0zJH/hOSNQCSLVP+slLu/xCFVP/ixl3/yWEU/3h2I/9yMuf/ouWc/9MaDAByJ3P/ztSGAMXZoP90gV7+x9fb/0vf+QH9dLX/6Ndo/+SC9v+5dVYADgUIAO8dPQHtV4X/fZKJ/syo3wAuqPUAmmkWANzUof9rRRj/idq1//FUxv+CetP/jQiZ/76xdgBgWbIA/xAw/npgaf91Nuj/In5p/8xDpgDoNIr/05MMABk2BwAsD9f+M+wtAL5EgQFqk+EAHF0t/uyND/8RPaEA3HPAAOyRGP5vqKkA4Do//3+kvABS6ksB4J6GANFEbgHZptkARuGmAbvBj/8QB1j/Cs2MAHXAnAEROCYAG3xsAavXN/9f/dQAm4eo//aymf6aREoA6D1g/mmEOwAhTMcBvbCC/wloGf5Lxmb/6QFwAGzcFP9y5kYAjMKF/zmepP6SBlD/qcRhAVW3ggBGnt4BO+3q/2AZGv/or2H/C3n4/lgjwgDbtPz+SgjjAMPjSQG4bqH/MemkAYA1LwBSDnn/wb46ADCudf+EFyAAKAqGARYzGf/wC7D/bjmSAHWP7wGdZXb/NlRMAM24Ev8vBEj/TnBV/8EyQgFdEDT/CGmGAAxtSP86nPsAkCPMACygdf4ya8IAAUSl/29uogCeUyj+TNbqADrYzf+rYJP/KONyAbDj8QBG+bcBiFSL/zx69/6PCXX/sa6J/kn3jwDsuX7/Phn3/y1AOP+h9AYAIjk4AWnKUwCAk9AABmcK/0qKQf9hUGT/1q4h/zKGSv9ul4L+b1SsAFTHS/74O3D/CNiyAQm3XwDuGwj+qs3cAMPlhwBiTO3/4lsaAVLbJ//hvscB2ch5/1GzCP+MQc4Ass9X/vr8Lv9oWW4B/b2e/5DWnv+g9Tb/NbdcARXIwv+SIXEB0QH/AOtqK/+nNOgAneXdADMeGQD63RsBQZNX/097xABBxN//TCwRAVXxRADKt/n/QdTU/wkhmgFHO1AAr8I7/41ICQBkoPQA5tA4ADsZS/5QwsIAEgPI/qCfcwCEj/cBb105/zrtCwGG3of/eqNsAXsrvv/7vc7+ULZI/9D24AERPAkAoc8mAI1tWwDYD9P/iE5uAGKjaP8VUHn/rbK3AX+PBABoPFL+1hAN/2DuIQGelOb/f4E+/zP/0v8+jez+nTfg/3In9ADAvPr/5Ew1AGJUUf+tyz3+kzI3/8zrvwA0xfQAWCvT/hu/dwC855oAQlGhAFzBoAH643gAezfiALgRSACFqAr+Foec/ykZZ/8wyjoAupVR/7yG7wDrtb3+2Yu8/0owUgAu2uUAvf37ADLlDP/Tjb8BgPQZ/6nnev5WL73/hLcX/yWylv8zif0AyE4fABZpMgCCPAAAhKNb/hfnuwDAT+8AnWak/8BSFAEYtWf/8AnqAAF7pP+F6QD/yvLyADy69QDxEMf/4HSe/r99W//gVs8AeSXn/+MJxv8Pme//eejZ/ktwUgBfDDn+M9Zp/5TcYQHHYiQAnNEM/grUNADZtDf+1Kro/9gUVP+d+ocAnWN//gHOKQCVJEYBNsTJ/1d0AP7rq5YAG6PqAMqHtADQXwD+e5xdALc+SwCJ67YAzOH//9aL0v8Ccwj/HQxvADScAQD9Ffv/JaUf/gyC0wBqEjX+KmOaAA7ZPf7YC1z/yMVw/pMmxwAk/Hj+a6lNAAF7n//PS2YAo6/EACwB8AB4urD+DWJM/+188f/okrz/yGDgAMwfKQDQyA0AFeFg/6+cxAD30H4APrj0/gKrUQBVc54ANkAt/xOKcgCHR80A4y+TAdrnQgD90RwA9A+t/wYPdv4QltD/uRYy/1Zwz/9LcdcBP5Ir/wThE/7jFz7/Dv/W/i0Izf9XxZf+0lLX//X49/+A+EYA4fdXAFp4RgDV9VwADYXiAC+1BQFco2n/Bh6F/uiyPf/mlRj/EjGeAORkPf508/v/TUtcAVHbk/9Mo/7+jdX2AOglmP5hLGQAySUyAdT0OQCuq7f/+UpwAKacHgDe3WH/811J/vtlZP/Y2V3//oq7/46+NP87y7H/yF40AHNynv+lmGgBfmPi/3ad9AFryBAAwVrlAHkGWACcIF3+ffHT/w7tnf+lmhX/uOAW//oYmP9xTR8A96sX/+2xzP80iZH/wrZyAODqlQAKb2cByYEEAO6OTgA0Bij/btWl/jzP/QA+10UAYGEA/zEtygB4eRb/64swAcYtIv+2MhsBg9Jb/y42gACve2n/xo1O/kP07//1Nmf+Tiby/wJc+f77rlf/iz+QABhsG/8iZhIBIhaYAELldv4yj2MAkKmVAXYemACyCHkBCJ8SAFpl5v+BHXcARCQLAei3NwAX/2D/oSnB/z+L3gAPs/MA/2QP/1I1hwCJOZUBY/Cq/xbm5P4xtFL/PVIrAG712QDHfT0ALv00AI3F2wDTn8EAN3lp/rcUgQCpd6r/y7KL/4cotv+sDcr/QbKUAAjPKwB6NX8BSqEwAOPWgP5WC/P/ZFYHAfVEhv89KxUBmFRe/748+v7vduj/1oglAXFMa/9daGQBkM4X/26WmgHkZ7kA2jEy/odNi/+5AU4AAKGU/2Ed6f/PlJX/oKgAAFuAq/8GHBP+C2/3ACe7lv+K6JUAdT5E/z/YvP/r6iD+HTmg/xkM8QGpPL8AIION/+2fe/9exV7+dP4D/1yzYf55YVz/qnAOABWV+AD44wMAUGBtAEvASgEMWuL/oWpEAdByf/9yKv/+ShpK//ezlv55jDwAk0bI/9Yoof+hvMn/jUGH//Jz/AA+L8oAtJX//oI37QClEbr/CqnCAJxt2v9wjHv/aIDf/rGObP95Jdv/gE0S/29sFwFbwEsArvUW/wTsPv8rQJkB463+AO16hAF/Wbr/jlKA/vxUrgBas7EB89ZX/2c8ov/Qgg7/C4KLAM6B2/9e2Z3/7+bm/3Rzn/6ka18AM9oCAdh9xv+MyoD+C19E/zcJXf6umQb/zKxgAEWgbgDVJjH+G1DVAHZ9cgBGRkP/D45J/4N6uf/zFDL+gu0oANKfjAHFl0H/VJlCAMN+WgAQ7uwBdrtm/wMYhf+7ReYAOMVcAdVFXv9QiuUBzgfmAN5v5gFb6Xf/CVkHAQJiAQCUSoX/M/a0/+SxcAE6vWz/wsvt/hXRwwCTCiMBVp3iAB+ji/44B0v/Plp0ALU8qQCKotT+UacfAM1acP8hcOMAU5d1AbHgSf+ukNn/5sxP/xZN6P9yTuoA4Dl+/gkxjQDyk6UBaLaM/6eEDAF7RH8A4VcnAftsCADGwY8BeYfP/6wWRgAyRHT/Za8o//hp6QCmywcAbsXaANf+Gv6o4v0AH49gAAtnKQC3gcv+ZPdK/9V+hADSkywAx+obAZQvtQCbW54BNmmv/wJOkf5mml8AgM9//jR87P+CVEcA3fPTAJiqzwDeascAt1Re/lzIOP+KtnMBjmCSAIWI5ABhEpYAN/tCAIxmBADKZ5cAHhP4/zO4zwDKxlkAN8Xh/qlf+f9CQUT/vOp+AKbfZAFw7/QAkBfCADontgD0LBj+r0Sz/5h2mgGwooIA2XLM/q1+Tv8h3h7/JAJb/wKP8wAJ69cAA6uXARjX9f+oL6T+8ZLPAEWBtABE83EAkDVI/vstDgAXbqgARERP/25GX/6uW5D/Ic5f/4kpB/8Tu5n+I/9w/wmRuf4ynSUAC3AxAWYIvv/q86kBPFUXAEonvQB0Me8ArdXSAC6hbP+fliUAxHi5/yJiBv+Zwz7/YeZH/2Y9TAAa1Oz/pGEQAMY7kgCjF8QAOBg9ALViwQD7k+X/Yr0Y/y42zv/qUvYAt2cmAW0+zAAK8OAAkhZ1/46aeABF1CMA0GN2AXn/A/9IBsIAdRHF/30PFwCaT5kA1l7F/7k3k/8+/k7+f1KZAG5mP/9sUqH/abvUAVCKJwA8/13/SAy6ANL7HwG+p5D/5CwT/oBD6ADW+Wv+iJFW/4QusAC9u+P/0BaMANnTdAAyUbr+i/ofAB5AxgGHm2QAoM4X/rui0/8QvD8A/tAxAFVUvwDxwPL/mX6RAeqiov/mYdgBQId+AL6U3wE0ACv/HCe9AUCI7gCvxLkAYuLV/3+f9AHirzwAoOmOAbTzz/9FmFkBH2UVAJAZpP6Lv9EAWxl5ACCTBQAnunv/P3Pm/12nxv+P1dz/s5wT/xlCegDWoNn/Ai0+/2pPkv4ziWP/V2Tn/6+R6P9luAH/rgl9AFIloQEkco3/MN6O//W6mgAFrt3+P3Kb/4c3oAFQH4cAfvqzAezaLQAUHJEBEJNJAPm9hAERvcD/347G/0gUD//6Ne3+DwsSABvTcf7Vazj/rpOS/2B+MAAXwW0BJaJeAMed+f4YgLv/zTGy/l2kKv8rd+sBWLft/9rSAf9r/ioA5gpj/6IA4gDb7VsAgbLLANAyX/7O0F//979Z/m7qT/+lPfMAFHpw//b2uf5nBHsA6WPmAdtb/P/H3hb/s/Xp/9Px6gBv+sD/VVSIAGU6Mv+DrZz+dy0z/3bpEP7yWtYAXp/bAQMD6v9iTFz+UDbmAAXk5/41GN//cTh2ARSEAf+r0uwAOPGe/7pzE/8I5a4AMCwAAXJypv8GSeL/zVn0AInjSwH4rTgASnj2/ncDC/9ReMb/iHpi/5Lx3QFtwk7/3/FGAdbIqf9hvi//L2eu/2NcSP526bT/wSPp/hrlIP/e/MYAzCtH/8dUrACGZr4Ab+5h/uYo5gDjzUD+yAzhAKYZ3gBxRTP/j58YAKe4SgAd4HT+ntDpAMF0fv/UC4X/FjqMAcwkM//oHisA60a1/0A4kv6pElT/4gEN/8gysP801fX+qNFhAL9HNwAiTpwA6JA6AblKvQC6jpX+QEV//6HLk/+wl78AiOfL/qO2iQChfvv+6SBCAETPQgAeHCUAXXJgAf5c9/8sq0UAyncL/7x2MgH/U4j/R1IaAEbjAgAg63kBtSmaAEeG5f7K/yQAKZgFAJo/Sf8itnwAed2W/xrM1QEprFcAWp2S/22CFABHa8j/82a9AAHDkf4uWHUACM7jAL9u/f9tgBT+hlUz/4mxcAHYIhb/gxDQ/3mVqgByExcBplAf/3HwegDos/oARG60/tKqdwDfbKT/z0/p/xvl4v7RYlH/T0QHAIO5ZACqHaL/EaJr/zkVCwFkyLX/f0GmAaWGzABop6gAAaRPAJKHOwFGMoD/ZncN/uMGhwCijrP/oGTeABvg2wGeXcP/6o2JABAYff/uzi//YRFi/3RuDP9gc00AW+Po//j+T/9c5Qb+WMaLAM5LgQD6Tc7/jfR7AYpF3AAglwYBg6cW/+1Ep/7HvZYAo6uK/zO8Bv9fHYn+lOKzALVr0P+GH1L/l2Ut/4HK4QDgSJMAMIqX/8NAzv7t2p4Aah2J/v296f9nDxH/wmH/ALItqf7G4ZsAJzB1/4dqcwBhJrUAli9B/1OC5f72JoEAXO+a/ltjfwChbyH/7tny/4O5w//Vv57/KZbaAISpgwBZVPwBq0aA/6P4y/4BMrT/fExVAftvUABjQu//mu22/91+hf5KzGP/QZN3/2M4p/9P+JX/dJvk/+0rDv5FiQv/FvrxAVt6j//N+fMA1Bo8/zC2sAEwF7//y3mY/i1K1f8+WhL+9aPm/7lqdP9TI58ADCEC/1AiPgAQV67/rWVVAMokUf6gRcz/QOG7ADrOXgBWkC8A5Vb1AD+RvgElBScAbfsaAImT6gCieZH/kHTO/8Xouf+3voz/SQz+/4sU8v+qWu//YUK7//W1h/7eiDQA9QUz/ssvTgCYZdgASRd9AP5gIQHr0kn/K9FYAQeBbQB6aOT+qvLLAPLMh//KHOn/QQZ/AJ+QRwBkjF8ATpYNAPtrdgG2On3/ASZs/4290f8Im30BcaNb/3lPvv+G72z/TC/4AKPk7wARbwoAWJVL/9fr7wCnnxj/L5ds/2vRvADp52P+HMqU/64jiv9uGET/AkW1AGtmUgBm7QcAXCTt/92iUwE3ygb/h+qH/xj63gBBXqj+9fjS/6dsyf7/oW8AzQj+AIgNdABksIT/K9d+/7GFgv+eT5QAQ+AlAQzOFf8+Im4B7Wiv/1CEb/+OrkgAVOW0/mmzjABA+A//6YoQAPVDe/7aedT/P1/aAdWFif+PtlL/MBwLAPRyjQHRr0z/nbWW/7rlA/+knW8B572LAHfKvv/aakD/ROs//mAarP+7LwsB1xL7/1FUWQBEOoAAXnEFAVyB0P9hD1P+CRy8AO8JpAA8zZgAwKNi/7gSPADZtosAbTt4/wTA+wCp0vD/Jaxc/pTT9f+zQTQA/Q1zALmuzgFyvJX/7VqtACvHwP9YbHEANCNMAEIZlP/dBAf/l/Fy/77R6ABiMscAl5bV/xJKJAE1KAcAE4dB/xqsRQCu7VUAY18pAAM4EAAnoLH/yGra/rlEVP9buj3+Q4+N/w30pv9jcsYAx26j/8ESugB87/YBbkQWAALrLgHUPGsAaSppAQ7mmAAHBYMAjWia/9UDBgCD5KL/s2QcAed7Vf/ODt8B/WDmACaYlQFiiXoA1s0D/+KYs/8GhYkAnkWM/3Gimv+086z/G71z/48u3P/VhuH/fh1FALwriQHyRgkAWsz//+eqkwAXOBP+OH2d/zCz2v9Ptv3/JtS/ASnrfABglxwAh5S+AM35J/40YIj/1CyI/0PRg//8ghf/24AU/8aBdgBsZQsAsgWSAT4HZP+17F7+HBqkAEwWcP94Zk8AysDlAciw1wApQPT/zrhOAKctPwGgIwD/OwyO/8wJkP/bXuUBehtwAL1pbf9A0Er/+383AQLixgAsTNEAl5hN/9IXLgHJq0X/LNPnAL4l4P/1xD7/qbXe/yLTEQB38cX/5SOYARVFKP+y4qEAlLPBANvC/gEozjP/51z6AUOZqgAVlPEAqkVS/3kS5/9ccgMAuD7mAOHJV/+SYKL/tfLcAK273QHiPqr/OH7ZAXUN4/+zLO8AnY2b/5DdUwDr0dAAKhGlAftRhQB89cn+YdMY/1PWpgCaJAn/+C9/AFrbjP+h2Sb+1JM//0JUlAHPAwEA5oZZAX9Oev/gmwH/UohKALKc0P+6GTH/3gPSAeWWvv9VojT/KVSN/0l7VP5dEZYAdxMcASAW1/8cF8z/jvE0/+Q0fQAdTM8A16f6/q+k5gA3z2kBbbv1/6Es3AEpZYD/pxBeAF3Wa/92SAD+UD3q/3mvfQCLqfsAYSeT/vrEMf+ls27+30a7/xaOfQGas4r/drAqAQqumQCcXGYAqA2h/48QIAD6xbT/y6MsAVcgJAChmRT/e/wPABnjUAA8WI4AERbJAZrNTf8nPy8ACHqNAIAXtv7MJxP/BHAd/xckjP/S6nT+NTI//3mraP+g214AV1IO/ucqBQCli3/+Vk4mAII8Qv7LHi3/LsR6Afk1ov+Ij2f+19JyAOcHoP6pmCr/by32AI6Dh/+DR8z/JOILAAAc8v/hitX/9y7Y/vUDtwBs/EoBzhow/8029v/TxiT/eSMyADTYyv8mi4H+8kmUAEPnjf8qL8wATnQZAQThv/8Gk+QAOlixAHql5f/8U8n/4KdgAbG4nv/yabMB+MbwAIVCywH+JC8ALRhz/3c+/gDE4br+e42sABpVKf/ib7cA1eeXAAQ7B//uipQAQpMh/x/2jf/RjXT/aHAfAFihrABT1+b+L2+XAC0mNAGELcwAioBt/ul1hv/zvq3+8ezwAFJ/7P4o36H/brbh/3uu7wCH8pEBM9GaAJYDc/7ZpPz/N5xFAVRe///oSS0BFBPU/2DFO/5g+yEAJsdJAUCs9/91dDj/5BESAD6KZwH25aT/9HbJ/lYgn/9tIokBVdO6AArBwf56wrEAeu5m/6LaqwBs2aEBnqoiALAvmwG15Av/CJwAABBLXQDOYv8BOpojAAzzuP5DdUL/5uV7AMkqbgCG5LL+umx2/zoTmv9SqT7/co9zAe/EMv+tMMH/kwJU/5aGk/5f6EkAbeM0/r+JCgAozB7+TDRh/6TrfgD+fLwASrYVAXkdI//xHgf+VdrW/wdUlv5RG3X/oJ+Y/kIY3f/jCjwBjYdmANC9lgF1s1wAhBaI/3jHHAAVgU/+tglBANqjqQD2k8b/ayaQAU6vzf/WBfr+L1gd/6QvzP8rNwb/g4bP/nRk1gBgjEsBatyQAMMgHAGsUQX/x7M0/yVUywCqcK4ACwRbAEX0GwF1g1wAIZiv/4yZa//7hyv+V4oE/8bqk/55mFT/zWWbAZ0JGQBIahH+bJkA/73lugDBCLD/rpXRAO6CHQDp1n4BPeJmADmjBAHGbzP/LU9OAXPSCv/aCRn/novG/9NSu/5QhVMAnYHmAfOFhv8oiBAATWtP/7dVXAGxzMoAo0eT/5hFvgCsM7wB+tKs/9PycQFZWRr/QEJv/nSYKgChJxv/NlD+AGrRcwFnfGEA3eZi/x/nBgCywHj+D9nL/3yeTwBwkfcAXPowAaO1wf8lL47+kL2l/y6S8AAGS4AAKZ3I/ld51QABcewABS36AJAMUgAfbOcA4e93/6cHvf+75IT/br0iAF4szAGiNMUATrzx/jkUjQD0ki8BzmQzAH1rlP4bw00AmP1aAQePkP8zJR8AIncm/wfFdgCZvNMAlxR0/vVBNP+0/W4BL7HRAKFjEf923soAfbP8AXs2fv+ROb8AN7p5AArzigDN0+X/fZzx/pScuf/jE7z/fCkg/x8izv4ROVMAzBYl/ypgYgB3ZrgBA74cAG5S2v/IzMD/yZF2AHXMkgCEIGIBwMJ5AGqh+AHtWHwAF9QaAM2rWv/4MNgBjSXm/3zLAP6eqB7/1vgVAHC7B/9Lhe//SuPz//qTRgDWeKIApwmz/xaeEgDaTdEBYW1R//Qhs/85NDn/QazS//lH0f+Oqe4Anr2Z/67+Z/5iIQ4AjUzm/3GLNP8POtQAqNfJ//jM1wHfRKD/OZq3/i/neQBqpokAUYiKAKUrMwDniz0AOV87/nZiGf+XP+wBXr76/6m5cgEF+jr/S2lhAdffhgBxY6MBgD5wAGNqkwCjwwoAIc22ANYOrv+BJuf/NbbfAGIqn//3DSgAvNKxAQYVAP//PZT+iS2B/1kadP5+JnIA+zLy/nmGgP/M+af+pevXAMqx8wCFjT4A8IK+AW6v/wAAFJIBJdJ5/wcnggCO+lT/jcjPAAlfaP8L9K4Ahuh+AKcBe/4QwZX/6OnvAdVGcP/8dKD+8t7c/81V4wAHuToAdvc/AXRNsf8+9cj+PxIl/2s16P4y3dMAotsH/gJeKwC2Prb+oE7I/4eMqgDruOQArzWK/lA6Tf+YyQIBP8QiAAUeuACrsJoAeTvOACZjJwCsUE3+AIaXALoh8f5e/d//LHL8AGx+Of/JKA3/J+Ub/yfvFwGXeTP/mZb4AArqrv929gT+yPUmAEWh8gEQspYAcTiCAKsfaQAaWGz/MSpqAPupQgBFXZUAFDn+AKQZbwBavFr/zATFACjVMgHUYIT/WIq0/uSSfP+49vcAQXVW//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQ=="),C(I,33756,"AQ=="),C(I,33792,"AQ=="),C(I,33824,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fwjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4Fs="),C(I,34080,"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"),C(I,34912,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB"),C(I,34992,"MI5QAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=");var mg,vg=(mg=[null,function(A,I,g,B,C){var Q;return A|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(QA(Q,C|=0),SA(Q,B,0),m(Q,A=wI(A,0,I),A,I,g),Dg(Q,64)),s=Q- -64|0,0},function(A,I,g,B,C){var Q;return A|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(QA(Q,C|=0),YA(Q,B,0),m(Q,A=wI(A,0,I),A,I,g),Dg(Q,64)),s=Q- -64|0,0},function(A,I,g,B,C,Q,E,i){A|=0,I|=0,C|=0,Q|=0,E|=0,i|=0;var n,a=0;return s=n=s-80|0,(g|=0)|(B|=0)&&(bI(a=n+8|0,Q),bI(n+12|0,E),QA(Q=n+16|0,i),SA(Q,C,a),m(Q,I,A,g,B),Dg(Q,64)),s=n+80|0,0},function(A,I,g,B,C,Q,E){A|=0,I|=0,C|=0,Q|=0,E|=0;var i,n=0;return s=i=s-80|0,(g|=0)|(B|=0)&&(bI(n=i+12|0,Q),QA(Q=i+16|0,E),YA(Q,C,n),m(Q,I,A,g,B),Dg(Q,64)),s=i+80|0,0},iI,function(A,I,g,B,C){var Q;return A|=0,s=Q=s-16|0,iI(Q,I|=0,g|=0,B|=0,C|=0),A=rg(A,Q),s=Q+16|0,0|A},function(A,I){return IA(A|=0,I|=0),0},function(A,I,g,B){return $(A|=0,I|=0,g|=0,B|=0),0},function(A,I){return W(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var B,C=0,E=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,G=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,R=0,d=0,J=0;for(r=-1,Q[11+(E=(s=B=s-336|0)-16|0)|0]=0,Q[E+12|0]=0,Q[E+13|0]=0,Q[E+14|0]=0,i[E+8>>2]=0;;){for(e=n[g+a|0],C=0;Q[0|(o=(E+8|0)+C|0)]=n[0|o]|e^n[(33760+(C<<5)|0)+a|0],7!=(0|(C=C+1|0)););if(31==(0|(a=a+1|0)))break}for(e=127&n[g+31|0],a=0,C=0;Q[0|(o=(E+8|0)+C|0)]=n[0|o]|e^n[33791+(C<<5)|0],7!=(0|(C=C+1|0)););for(C=0;C=n[(E+8|0)+a|0]-1|C,7!=(0|(a=a+1|0)););if(!(C>>>8&1)){for(r=0;Q[A+r|0]=n[I+r|0],32!=(0|(r=r+1|0)););for(Q[0|A]=248&n[0|A],Q[A+31|0]=63&n[A+31|0]|64,N(I=B+288|0,g),ng(B+240|0),hg(B+192|0),UA(B+144|0,I),ng(B+96|0),g=254,I=0;C=I,AA(E=B+240|0,y=B+144|0,C^=I=n[(g>>>3|0)+A|0]>>>(7&g)&1),AA(t=B+192|0,r=B+96|0,C),m=g,g=g-1|0,cA(f=B+48|0,y,r),cA(B,E,t),yA(E,E,t),yA(t,y,r),H(r,f,E),H(t,t,B),U(f,B),U(B,E),yA(y,r,t),cA(t,r,t),H(E,B,f),cA(B,B,f),U(t,t),u=C=i[B+4>>2],F=C>>31,l=C=i[B+8>>2],v=C>>31,D=C=i[B+12>>2],p=C>>31,_=C=i[B+16>>2],M=C>>31,c=C=i[B+20>>2],w=C>>31,k=C=i[B+24>>2],P=C>>31,Y=C=i[B>>2],R=C>>31,E=qA(C=i[B+36>>2],C>>31,121666,0),C=h,d=a=E+16777216|0,e=C=a>>>0<16777216?C+1|0:C,G=E-(-33554432&a)|0,C=qA(C=i[B+32>>2],C>>31,121666,0),a=h,o=qA(E=i[B+28>>2],E>>31,121666,0),E=h,J=C,S=C=o+16777216|0,a=(C=(E=C>>>0<16777216?E+1|0:E)>>25)+a|0,C=a=(E=J+(b=(33554431&E)<<7|S>>>25)|0)>>>0>>0?a+1|0:a,C=((67108863&(C=(a=E+33554432|0)>>>0<33554432?C+1|0:C))<<6|a>>>26)+G|0,i[r+36>>2]=C,C=-67108864&a,i[r+32>>2]=E-C,G=o-(-33554432&S)|0,E=qA(k,P,121666,0),k=h,a=qA(c,w,121666,0),C=h,o=E,c=E=a+16777216|0,w=(33554431&(C=E>>>0<16777216?C+1|0:C))<<7|E>>>25,C=(C>>25)+k|0,E=C=(o=o+w|0)>>>0>>0?C+1|0:C,w=C=o+33554432|0,C=((67108863&(E=C>>>0<33554432?E+1|0:E))<<6|C>>>26)+G|0,i[r+28>>2]=C,C=-67108864&w,i[r+24>>2]=o-C,c=a-(-33554432&c)|0,C=qA(_,M,121666,0),_=h,o=qA(D,p,121666,0),E=h,a=C,D=C=o+16777216|0,p=(33554431&(E=C>>>0<16777216?E+1|0:E))<<7|C>>>25,E=(E>>25)+_|0,a=C=a+p|0,C=C>>>0

>>0?E+1|0:E,C=((67108863&(C=(E=a+33554432|0)>>>0<33554432?C+1|0:C))<<6|E>>>26)+c|0,i[r+20>>2]=C,C=-67108864&E,i[r+16>>2]=a-C,D=o-(-33554432&D)|0,C=qA(l,v,121666,0),l=h,o=qA(u,F,121666,0),a=h,c=C,u=C=o+16777216|0,E=C,C=(C=(a=C>>>0<16777216?a+1|0:a)>>25)+l|0,C=(E=c+(a=(33554431&a)<<7|E>>>25)|0)>>>0>>0?C+1|0:C,a=E,E=C,F=C=a+33554432|0,C=((67108863&(E=C>>>0<33554432?E+1|0:E))<<6|C>>>26)+D|0,i[r+12>>2]=C,C=-67108864&F,i[r+8>>2]=a-C,C=qA((33554431&e)<<7|d>>>25,e>>25,19,0),a=h,E=(e=qA(Y,R,121666,0))+C|0,C=h+a|0,a=E,E=E>>>0>>0?C+1|0:C,e=C=a+33554432|0,C=(o-(-33554432&u)|0)+((67108863&(E=C>>>0<33554432?E+1|0:E))<<6|C>>>26)|0,i[r+4>>2]=C,C=-67108864&e,i[r>>2]=a-C,U(y,y),yA(f,f,r),H(r,B+288|0,t),H(t,B,f),m;);AA(g=B+240|0,B+144|0,I),AA(C=B+192|0,B+96|0,I),O(C,C),H(g,g,C),T(A,g),r=0}return s=B+336|0,0|r},function(A,I){A|=0,I|=0;var g,B,C,E=0;for(s=g=s-208|0;Q[A+E|0]=n[I+E|0],32!=(0|(E=E+1|0)););return Q[0|A]=248&n[0|A],Q[A+31|0]=63&n[A+31|0]|64,BA(g+48|0,A),s=I=s-96|0,yA(E=I+48|0,B=g+128|0,C=g+88|0),cA(I,B,C),O(I,I),H(g,E,I),s=I+96|0,T(A,g),s=g+208|0,0},function(A,I,g,B,C){A|=0,B|=0,C|=0;var E,a=0;if(s=E=s-112|0,(I|=0)|(g|=0)){a=n[C+28|0]|n[C+29|0]<<8|n[C+30|0]<<16|n[C+31|0]<<24,i[E+24>>2]=n[C+24|0]|n[C+25|0]<<8|n[C+26|0]<<16|n[C+27|0]<<24,i[E+28>>2]=a,a=n[C+20|0]|n[C+21|0]<<8|n[C+22|0]<<16|n[C+23|0]<<24,i[E+16>>2]=n[C+16|0]|n[C+17|0]<<8|n[C+18|0]<<16|n[C+19|0]<<24,i[E+20>>2]=a,a=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i[E>>2]=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,i[E+4>>2]=a,a=n[C+12|0]|n[C+13|0]<<8|n[C+14|0]<<16|n[C+15|0]<<24,i[E+8>>2]=n[C+8|0]|n[C+9|0]<<8|n[C+10|0]<<16|n[C+11|0]<<24,i[E+12>>2]=a,C=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,B=n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=C,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;;){for(d(A,E+96|0,E),C=8,B=1;B=n[0|(a=(E+96|0)+C|0)]+B|0,Q[0|a]=B,B=B>>>8|0,16!=(0|(C=C+1|0)););if(A=A- -64|0,g=g-1|0,!(!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g))break}if(!(I|g))break A}for(C=0,d(E+32|0,E+96|0,E);Q[A+C|0]=n[(E+32|0)+C|0],(0|I)!=(0|(C=C+1|0)););}Dg(E+32|0,64),Dg(E,32)}return s=E+112|0,0},function(A,I,g,B,C,E,a,r){A|=0,I|=0,C|=0,E|=0,a|=0,r|=0;var o,t=0,e=0;if(s=o=s-112|0,(g|=0)|(B|=0)){for(t=n[r+28|0]|n[r+29|0]<<8|n[r+30|0]<<16|n[r+31|0]<<24,i[o+24>>2]=n[r+24|0]|n[r+25|0]<<8|n[r+26|0]<<16|n[r+27|0]<<24,i[o+28>>2]=t,t=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[o+16>>2]=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,i[o+20>>2]=t,t=n[r+4|0]|n[r+5|0]<<8|n[r+6|0]<<16|n[r+7|0]<<24,i[o>>2]=n[0|r]|n[r+1|0]<<8|n[r+2|0]<<16|n[r+3|0]<<24,i[o+4>>2]=t,t=8,e=n[r+12|0]|n[r+13|0]<<8|n[r+14|0]<<16|n[r+15|0]<<24,i[o+8>>2]=n[r+8|0]|n[r+9|0]<<8|n[r+10|0]<<16|n[r+11|0]<<24,i[o+12>>2]=e,r=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i[o+96>>2]=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,i[o+100>>2]=r;Q[(o+96|0)+t|0]=E,E=(255&a)<<24|E>>>8,a=a>>>8|0,16!=(0|(t=t+1|0)););if(!B&g>>>0>63|B)for(;;){for(t=0,d(o+32|0,o+96|0,o);Q[A+t|0]=n[(o+32|0)+t|0]^n[I+t|0],r=1,64!=(0|(t=t+1|0)););for(t=8;C=n[0|(E=(o+96|0)+t|0)]+r|0,Q[0|E]=C,r=C>>>8|0,16!=(0|(t=t+1|0)););if(I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(g|B)for(t=0,d(o+32|0,o+96|0,o);Q[A+t|0]=n[(o+32|0)+t|0]^n[I+t|0],(0|g)!=(0|(t=t+1|0)););Dg(o+32|0,64),Dg(o,32)}return s=o+112|0,0}],mg.grow=function(A){var I=this.length;return this.length=this.length+A,I},mg.set=function(A,I){this[A]=I},mg.get=function(A){return this[A]},mg);function Mg(){return B.byteLength/65536|0}return{f:function(){},g:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|PA(A|=0,I|=0,g|=0,B|=0,(A=0)|(C|=0),Q|=0,E|=0,A|(i|=0),n|=0,r|=0,o|=0)},h:function(A,I,g,B,C,Q,E,n,a,r,o){return A|=0,I|=0,a|=0,a=B|=0,!(B=C|=0)&(C=0|a)>>>0<4294967280?(PA(A,A+C|0,0,g|=0,C,B,Q|=0,E|=0,n|=0,r|=0,o|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(xI(),t()),0},i:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|HA(A|=0,I|=0,g|=0,B|=0,(A=0)|(C|=0),Q|=0,E|=0,A|(i|=0),n|=0,r|=0,o|=0)},j:function(A,I,g,B,C,Q,E,n,a,r,o){return A|=0,I|=0,a|=0,a=B|=0,!(B=C|=0)&(C=0|a)>>>0<4294967280?(HA(A,A+C|0,0,g|=0,C,B,Q|=0,E|=0,n|=0,r|=0,o|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(xI(),t()),0},k:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|GA(A|=0,g|=0,(A=0)|(B|=0),C|=0,Q|=0,E|=0,A|(i|=0),n|=0,a|=0,r|=0)},l:function(A,I,g,B,C,Q,E,n,a,r,o){return I|=0,g|=0,B|=0,C|=0,n|=0,n|=0,g=-1,!(Q|=0)&(C|=0)>>>0>=16|Q&&(g=GA(A|=0,B,C-16|0,Q-(C>>>0<16)|0,(B+C|0)-16|0,E|=0,n,a|=0,r|=0,o|=0)),I&&(i[I>>2]=g?0:C-16|0,i[I+4>>2]=g?0:Q-(C>>>0<16)|0),0|g},m:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|lA(A|=0,g|=0,(A=0)|(B|=0),C|=0,Q|=0,E|=0,A|(i|=0),n|=0,a|=0,r|=0)},n:function(A,I,g,B,C,Q,E,n,a,r,o){return I|=0,g|=0,B|=0,C|=0,n|=0,n|=0,g=-1,!(Q|=0)&(C|=0)>>>0>=16|Q&&(g=lA(A|=0,B,C-16|0,Q-(C>>>0<16)|0,(B+C|0)-16|0,E|=0,n,a|=0,r|=0,o|=0)),I&&(i[I>>2]=g?0:C-16|0,i[I+4>>2]=g?0:Q-(C>>>0<16)|0),0|g},o:pg,p:function(){return 12},q:Sg,r:_g,s:Fg,t:sg,u:pg,v:Gg,w:Sg,x:_g,y:Fg,z:sg,A:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|fA(A|=0,I|=0,g|=0,B|=0,(A=0)|(C|=0),Q|=0,E|=0,A|(i|=0),n|=0,r|=0,o|=0)},B:function(A,I,g,B,C,Q,E,n,a,r,o){return A|=0,I|=0,a|=0,a=B|=0,!(B=C|=0)&(C=0|a)>>>0<4294967280?(fA(A,A+C|0,0,g|=0,C,B,Q|=0,E|=0,n|=0,r|=0,o|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(xI(),t()),0},C:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|rA(A|=0,g|=0,(A=0)|(B|=0),C|=0,Q|=0,E|=0,A|(i|=0),n|=0,a|=0,r|=0)},D:function(A,I,g,B,C,Q,E,n,a,r,o){return I|=0,g|=0,B|=0,C|=0,n|=0,n|=0,g=-1,!(Q|=0)&(C|=0)>>>0>=16|Q&&(g=rA(A|=0,B,C-16|0,Q-(C>>>0<16)|0,(B+C|0)-16|0,E|=0,n,a|=0,r|=0,o|=0)),I&&(i[I>>2]=g?0:C-16|0,i[I+4>>2]=g?0:Q-(C>>>0<16)|0),0|g},E:pg,F:ug,G:Sg,H:_g,I:Fg,J:sg,K:pg,L:pg,M:function(A,I,g,B,C){return 0|q(A|=0,I|=0,g|=0,B|=0,C|=0)},N:function(A,I,g,B,C){var Q;return A|=0,s=Q=s-32|0,q(Q,I|=0,g|=0,B|=0,C|=0),I=eg(A,Q),g=zA(Q,A,32),s=Q+32|0,g|((0|A)==(0|Q)?-1:I)},O:sg,P:pg,Q:pg,R:pg,S:pg,T:ug,U:_g,V:Fg,W:function(A,I,g){A|=0,I|=0;var B,C=0;return s=B=s+-64|0,_I(B,g|=0,32,0),g=i[B+28>>2],C=i[B+24>>2],Q[I+24|0]=C,Q[I+25|0]=C>>>8,Q[I+26|0]=C>>>16,Q[I+27|0]=C>>>24,Q[I+28|0]=g,Q[I+29|0]=g>>>8,Q[I+30|0]=g>>>16,Q[I+31|0]=g>>>24,g=i[B+20>>2],C=i[B+16>>2],Q[I+16|0]=C,Q[I+17|0]=C>>>8,Q[I+18|0]=C>>>16,Q[I+19|0]=C>>>24,Q[I+20|0]=g,Q[I+21|0]=g>>>8,Q[I+22|0]=g>>>16,Q[I+23|0]=g>>>24,g=i[B+12>>2],C=i[B+8>>2],Q[I+8|0]=C,Q[I+9|0]=C>>>8,Q[I+10|0]=C>>>16,Q[I+11|0]=C>>>24,Q[I+12|0]=g,Q[I+13|0]=g>>>8,Q[I+14|0]=g>>>16,Q[I+15|0]=g>>>24,g=i[B+4>>2],C=i[B>>2],Q[0|I]=C,Q[I+1|0]=C>>>8,Q[I+2|0]=C>>>16,Q[I+3|0]=C>>>24,Q[I+4|0]=g,Q[I+5|0]=g>>>8,Q[I+6|0]=g>>>16,Q[I+7|0]=g>>>24,Dg(B,64),A=Bg(A,I),s=B- -64|0,0|A},X:TI,Y:oI,Z:function(A,I,g,B,C,Q,E){return 0|zI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},_:function(A,I,g,B,C,Q,E,i){return 0|aI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0)},$:function(A,I,g,B,C,Q){return A|=0,I|=0,C|=0,Q|=0,!(B|=0)&(g|=0)>>>0>=4294967280|B&&(xI(),t()),0|zI(A+16|0,A,I,g,B,C,Q)},aa:function(A,I,g,B,C,Q,E){return 0|pI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},ba:function(A,I,g,B,C,Q,E){return 0|jI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},ca:function(A,I,g,B,C,Q,E,i){return 0|rI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0)},da:function(A,I,g,B,C,Q){return I|=0,0|(!(B|=0)&(g|=0)>>>0>=16|B?jI(A|=0,I+16|0,I,g-16|0,B-(g>>>0<16)|0,C|=0,Q|=0):-1)},ea:function(A,I,g,B,C,Q,E){return 0|cI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},fa:function(A,I,g,B,C){A|=0,I|=0,C|=0;var E,n,a=0,r=0;return n=g|=0,g=B|=0,s=E=s-96|0,B=-1,TI(E+32|0,E)||(sI(a=E- -64|0,r=E+32|0,C),B=pI(A+32|0,I,n,g,a,C,E),I=i[E+60>>2],g=i[E+56>>2],Q[A+24|0]=g,Q[A+25|0]=g>>>8,Q[A+26|0]=g>>>16,Q[A+27|0]=g>>>24,Q[A+28|0]=I,Q[A+29|0]=I>>>8,Q[A+30|0]=I>>>16,Q[A+31|0]=I>>>24,I=i[E+52>>2],g=i[E+48>>2],Q[A+16|0]=g,Q[A+17|0]=g>>>8,Q[A+18|0]=g>>>16,Q[A+19|0]=g>>>24,Q[A+20|0]=I,Q[A+21|0]=I>>>8,Q[A+22|0]=I>>>16,Q[A+23|0]=I>>>24,I=i[E+44>>2],g=i[E+40>>2],Q[A+8|0]=g,Q[A+9|0]=g>>>8,Q[A+10|0]=g>>>16,Q[A+11|0]=g>>>24,Q[A+12|0]=I,Q[A+13|0]=I>>>8,Q[A+14|0]=I>>>16,Q[A+15|0]=I>>>24,I=i[E+36>>2],g=i[E+32>>2],Q[0|A]=g,Q[A+1|0]=g>>>8,Q[A+2|0]=g>>>16,Q[A+3|0]=g>>>24,Q[A+4|0]=I,Q[A+5|0]=I>>>8,Q[A+6|0]=I>>>16,Q[A+7|0]=I>>>24,Dg(E,32),Dg(r,32),Dg(a,24)),s=E+96|0,0|B},ga:function(A,I,g,B,C,Q){A|=0,I|=0,Q|=0;var E,i=0;return s=E=s-32|0,i=-1,!(B|=0)&(g|=0)>>>0>=48|B&&(sI(E,I,C|=0),i=cI(A,I+32|0,g-32|0,B-(g>>>0<32)|0,E,I,Q)),s=E+32|0,0|i},ha:function(){return 48},ia:_g,ja:lg,ka:pg,la:_g,ma:lg,na:pg,oa:function(){return 384},pa:function(A,I,g,B,C,Q,E){return 0|qI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},qa:PI,ra:function(A,I,g,B){return 0|ig(A|=0,I|=0,g|=0,B|=0)},sa:dI,ta:sg,ua:lg,va:function(A,I,g,B){return 0|_I(A|=0,I|=0,g|=0,B|=0)},wa:_g,xa:lg,ya:Gg,za:pg,Aa:function(A,I,g,B,C,a){A|=0,I|=0,g|=0,B|=0,a|=0;var r,o=0,e=0,f=0,c=0;return s=r=s-32|0,f=n[0|(C|=0)]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,C=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i[r+24>>2]=0,i[r+28>>2]=0,i[r+16>>2]=f,i[r+20>>2]=C,QI(r,g,B),i[r+8>>2]=0,i[r+12>>2]=0,I-65>>>0<=4294967246?(i[8952]=28,A=-1):(g=r+16|0,I-65>>>0<4294967232?A=-1:(s=c=(B=s)-384&-64,!a|!A|((C=255&I)-65&255)>>>0<=191?(xI(),t()):(s=e=s-192|0,!a|(C-65&255)>>>0<=191?(xI(),t()):(E[e+130>>1]=257,Q[e+129|0]=32,Q[e+128|0]=C,RI(4|(I=e+128|0)),QI(8|I,0,0),i[e+152>>2]=0,i[e+156>>2]=0,i[e+144>>2]=0,i[e+148>>2]=0,r?(f=n[r+4|0]|n[r+5|0]<<8|n[r+6|0]<<16|n[r+7|0]<<24,o=e+128|0,I=n[0|r]|n[r+1|0]<<8|n[r+2|0]<<16|n[r+3|0]<<24,Q[o+32|0]=I,Q[o+33|0]=I>>>8,Q[o+34|0]=I>>>16,Q[o+35|0]=I>>>24,Q[o+36|0]=f,Q[o+37|0]=f>>>8,Q[o+38|0]=f>>>16,Q[o+39|0]=f>>>24,f=n[r+12|0]|n[r+13|0]<<8|n[r+14|0]<<16|n[r+15|0]<<24,I=n[r+8|0]|n[r+9|0]<<8|n[r+10|0]<<16|n[r+11|0]<<24,Q[o+40|0]=I,Q[o+41|0]=I>>>8,Q[o+42|0]=I>>>16,Q[o+43|0]=I>>>24,Q[o+44|0]=f,Q[o+45|0]=f>>>8,Q[o+46|0]=f>>>16,Q[o+47|0]=f>>>24):(i[e+168>>2]=0,i[e+172>>2]=0,i[e+160>>2]=0,i[e+164>>2]=0),g?(f=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,o=e+128|0,I=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,Q[o+48|0]=I,Q[o+49|0]=I>>>8,Q[o+50|0]=I>>>16,Q[o+51|0]=I>>>24,Q[o+52|0]=f,Q[o+53|0]=f>>>8,Q[o+54|0]=f>>>16,Q[o+55|0]=f>>>24,f=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,I=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,Q[o+56|0]=I,Q[o+57|0]=I>>>8,Q[o+58|0]=I>>>16,Q[o+59|0]=I>>>24,Q[o+60|0]=f,Q[o+61|0]=f>>>8,Q[o+62|0]=f>>>16,Q[o+63|0]=f>>>24):(i[e+184>>2]=0,i[e+188>>2]=0,i[e+176>>2]=0,i[e+180>>2]=0),wA(c,e+128|0),wI(e+32|0,0,96),gA(c,I=eI(e,a,32),128,0),Dg(I,128),s=I+192|0),gA(c,0,0,0),Y(c,A,C),s=B),A=0)),s=r+32|0,0|A},Ba:sg,Ca:function(A,I,g){return A|=0,qI(I|=0,32,g|=0,32,0,0,0),0|ZI(A,I)},Da:function(A,I){return A|=0,EI(I|=0,32),0|ZI(A,I)},Ea:function(A,I,g,B,C){I|=0,g|=0,B|=0,C|=0;var E,i,a=0,r=0;if(i=a=s,s=a=a-512&-64,E=(A|=0)||I){if(r=-1,!JI(a+96|0,B,C)){for(B=I||A,A=0,PI(I=a+128|0,0,0,64),ig(I,r=a+96|0,32,0),Dg(r,32),ig(I,g,32,0),ig(I,C,32,0),dI(I,a+32|0,64),Dg(I,384);I=(a+32|0)+A|0,Q[A+E|0]=n[0|I],Q[A+B|0]=n[I+32|0],32!=(0|(A=A+1|0)););Dg(a+32|0,64),r=0}return s=i,0|r}xI(),t()},Fa:function(A,I,g,B,C){I|=0,g|=0,B|=0,C|=0;var E,i,a=0,r=0;if(i=a=s,s=a=a-512&-64,E=(A|=0)||I){if(r=-1,!JI(a+96|0,B,C)){for(B=I||A,A=0,PI(I=a+128|0,0,0,64),ig(I,r=a+96|0,32,0),Dg(r,32),ig(I,C,32,0),ig(I,g,32,0),dI(I,a+32|0,64),Dg(I,384);I=(a+32|0)+A|0,Q[A+B|0]=n[0|I],Q[A+E|0]=n[I+32|0],32!=(0|(A=A+1|0)););Dg(a+32|0,64),r=0}return s=i,0|r}xI(),t()},Ga:pg,Ha:pg,Ia:pg,Ja:pg,Ka:kg,La:Hg,Ma:Hg,Na:_g,Oa:bg,Pa:Sg,Qa:bg,Ra:_g,Sa:function(){return 128},Ta:function(){return 1403},Ua:kg,Va:bg,Wa:function(){return 8192},Xa:function(){return-2147483648},Ya:Hg,Za:function(){return 67108864},_a:Ug,$a:function(){return 268435456},ab:function(){return 4},bb:function(){return 1073741824},cb:function(A,I,g,B,C,Q,E,n,a,r,o){var t;A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,a|=0,r|=0,I|=0,t=0|(C|=0),C=0|(n|=0);A:{switch((o|=0)-1|0){case 0:A=wI(A,0,I);I:{if(1==(0|g)|g>>>0>1)i[8952]=22;else if(!g&I>>>0<=15)i[8952]=28;else if(!(Q|a)&r>>>0<2147483649)if((!a&C>>>0>=3|0!=(0|a))&r>>>0>8191){if((0|A)!=(0|B)){A=_(C,r>>>10|0,1,B,t,E,16,A,I,0,0,1)?-1:0;break I}i[8952]=28}else i[8952]=28;else i[8952]=22;A=-1}break A;case 1:A=wI(A,0,I);I:{if(1==(0|g)|g>>>0>1)i[8952]=22;else if(!g&I>>>0<=15)i[8952]=28;else if(!(Q|a)&r>>>0<2147483649)if(!!(C|a)&r>>>0>8191){if((0|A)!=(0|B)){A=_(C,r>>>10|0,1,B,t,E,16,A,I,0,0,2)?-1:0;break I}i[8952]=28}else i[8952]=28;else i[8952]=22;A=-1}break A}i[8952]=28,A=-1}return 0|A},db:function(A,I,g,B,C,Q,E){return 0|NA(A|=0,I|=0,(A=0)|(g|=0),B|=0,A|(C|=0),Q|=0,E|=0)},eb:function(A,I,g,B,C,Q,E,n){A|=0,I|=0,B|=0,Q|=0,E|=0;var a=0;a=g|=0,a|=g=0,g|=C|=0;A:{switch((n|=0)-1|0){case 1:A=NA(A,I,a,B,g,Q,E);break A;default:xI(),t();case 0:}s=C=s-16|0,A=wI(A,0,128),!(B|Q)&E>>>0<2147483649?(!Q&g>>>0>=3|0!=(0|Q))&E>>>0>8191?(EI(C,16),A=_(g,E>>>10|0,1,I,a,C,16,0,32,A,128,1)?-1:0):(i[8952]=28,A=-1):(i[8952]=22,A=-1),s=C+16|0}return 0|A},fb:function(A,I,g,B){I|=0,g|=0,B|=0;A:if(LA(A|=0,1403,10))if(LA(A,1393,9))i[8952]=28,A=-1;else{if(1==(0|B)|B>>>0>1)i[8952]=22;else{if(!(A=tA(A,I,g,1)))break A;-35==(0|A)&&(i[8952]=28)}A=-1}else{if(1==(0|B)|B>>>0>1)i[8952]=22;else{if(!(A=tA(A,I,g,2)))break A;-35==(0|A)&&(i[8952]=28)}A=-1}return 0|A},gb:function(A,I,g,B){return I|=0,g|=0,B|=0,LA(A|=0,1403,10)?LA(A,1393,9)?(i[8952]=28,A=-1):A=eA(A,I,g,B,1):A=eA(A,I,g,B,2),0|A},hb:ZI,ib:JI,jb:pg,kb:pg,lb:pg,mb:ug,nb:_g,ob:Fg,pb:sg,qb:zI,rb:function(A,I,g,B,C,Q){return A|=0,I|=0,C|=0,Q|=0,!(B|=0)&(g|=0)>>>0>=4294967280|B&&(xI(),t()),EA(A+16|0,A,I,g,B,C,Q),0},sb:jI,tb:function(A,I,g,B,C,Q){return I|=0,0|(!(B|=0)&(g|=0)>>>0>=16|B?iA(A|=0,I+16|0,I,g-16|0,B-(g>>>0<16)|0,C|=0,Q|=0):-1)},ub:sg,vb:function(A,I,g){return A|=0,g|=0,EI(I|=0,24),x(A,I,g),YI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,Q[A+44|0]=0,Q[A+45|0]=0,Q[A+46|0]=0,Q[A+47|0]=0,Q[A+48|0]=0,Q[A+49|0]=0,Q[A+50|0]=0,Q[A+51|0]=0,Q[A+36|0]=g,Q[A+37|0]=g>>>8,Q[A+38|0]=g>>>16,Q[A+39|0]=g>>>24,Q[A+40|0]=I,Q[A+41|0]=I>>>8,Q[A+42|0]=I>>>16,Q[A+43|0]=I>>>24,0},wb:function(A,I,g){return x(A|=0,I|=0,g|=0),YI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,Q[A+44|0]=0,Q[A+45|0]=0,Q[A+46|0]=0,Q[A+47|0]=0,Q[A+48|0]=0,Q[A+49|0]=0,Q[A+50|0]=0,Q[A+51|0]=0,Q[A+36|0]=g,Q[A+37|0]=g>>>8,Q[A+38|0]=g>>>16,Q[A+39|0]=g>>>24,Q[A+40|0]=I,Q[A+41|0]=I>>>8,Q[A+42|0]=I>>>16,Q[A+43|0]=I>>>24,0},xb:X,yb:function(A,I,g,B,C,E,a,r,o,e){A|=0,I|=0,B|=0,a|=0,r|=0,o|=0,e|=0;var f=0,c=0,y=0,w=0;return c=C|=0,C=E|=0,E=0|c,r|=f,s=c=s-336|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),!C&E>>>0<4294967279?(fg(y=c+16|0,64,w=A+32|0,A),og(f=c+80|0,y),Dg(y,64),gg(f,a,r,o),gg(f,34048,0-r&15,0),wI(y,0,64),Q[c+16|0]=e,WA(y,y,64,0,w,1,A),gg(f,y,64,0),Q[0|I]=n[c+16|0],WA(a=I+1|0,B,E,C,w,2,A),gg(f,a,E,C),gg(f,34048,15&E,0),QI(I=c+8|0,r,o),gg(f,I,8,0),QI(I,E- -64|0,C-((E>>>0<4294967232)-1|0)|0),gg(f,I,8,0),tg(f,I=E+a|0),Dg(f,256),yI(A+36|0,I),nI(w),(2&e||BI(w,4))&&X(A),g&&(C=(A=E+17|0)>>>0<17?C+1|0:C,i[g>>2]=A,i[g+4>>2]=C),s=c+336|0):(xI(),t()),0},zb:function(A,I,g,B,C,E,a,r,o,e){A|=0,I|=0,B|=0,C|=0,E|=0,a|=0,r|=0,e|=0;var f,c=0,y=0,w=0,D=0,h=0,p=0;E|=0,f=(o|=0)|c,s=c=s-352|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),B&&(Q[0|B]=255),p=-1;A:{I:{if(!(!a&E>>>0<17)){if(!(o=a-(E>>>0<17)|0)&(D=E-17|0)>>>0>=4294967279|o)break I;fg(y=c+32|0,64,h=A+32|0,A),og(w=c+96|0,y),Dg(y,64),gg(w,r,f,e),gg(w,34048,0-f&15,0),wI(y,0,64),Q[c+32|0]=n[0|C],WA(y,y,64,0,h,1,A),r=n[c+32|0],Q[c+32|0]=n[0|C],gg(w,y,64,0),gg(w,y=C+1|0,D,o),gg(w,34048,E-1&15,0),QI(C=c+24|0,f,e),gg(w,C,8,0),QI(C,E=E+47|0,a=E>>>0<47?a+1|0:a),gg(w,C,8,0),tg(w,c),Dg(w,256),zA(c,y+D|0,16)?Dg(c,16):(WA(I,y,D,o,h,2,A),yI(A+36|0,c),nI(h),(2&r||BI(h,4))&&X(A),g&&(i[g>>2]=D,i[g+4>>2]=o),p=0,B&&(Q[0|B]=r))}s=c+352|0;break A}xI(),t()}return 0|p},Ab:function(){return 52},Bb:function(){return 17},Cb:ug,Db:pg,Eb:function(){return-18},Fb:Sg,Gb:kg,Hb:Hg,Ib:Ug,Jb:Gg,Kb:_g,Lb:function(A,I,g,B,C){A|=0,I|=0,g|=0,B|=0;var Q=0,E=0,i=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0;if(E=C|=0,C=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,o=1886610805^(Q=n[0|E]|n[E+1|0]<<8|n[E+2|0]<<16|n[E+3|0]<<24),r=1936682341^C,Q^=1852142177,t=1819895653^C,C=1852075885^(i=n[E+8|0]|n[E+9|0]<<8|n[E+10|0]<<16|n[E+11|0]<<24),a=1685025377^(E=n[E+12|0]|n[E+13|0]<<8|n[E+14|0]<<16|n[E+15|0]<<24),e=2037671283^i,f=1952801890^E,E=g,(0|(i=(I+g|0)-(c=7&g)|0))!=(0|I)){for(;y=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,u=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,w=uA(C,a,13),B=h,g=a+r|0,a=g=(o=C+o|0)>>>0>>0?g+1|0:g,o=uA(r=o,g,32),D=h,e=uA(C=e^y,g=f^u,16),g=g+t|0,g=(C=C+Q|0)>>>0>>0?g+1|0:g,Q=C,e=uA(C^=e,t=g^(f=h),21),f=h,w=uA(r^=w,B=a^=B,17),p=h,g=g+B|0,Q=uA(a=Q+r|0,g=a>>>0>>0?g+1|0:g,32),B=h,w=uA(r=a^w,g^=p,13),p=h,a=g,s=r,g=t+D|0,t=r=C+o|0,C=g=r>>>0>>0?g+1|0:g,g=g+a|0,o=r=s+r|0,a=g=r>>>0>>0?g+1|0:g,g=uA(r,g,32),D=h,r=C^=f,C=uA(t^=e,C,16),e=h,f=g,s=C,g=B+r|0,Q=g=(C=Q+t|0)>>>0>>0?g+1|0:g,g=(e^=g)+D|0,B=r=f+(t=s^C)|0,e=uA(t,e,21)^B,f=(r=B>>>0>>0?g+1|0:g)^h,g=a^p,o=uA(a=o^w,g,17),g=g+Q|0,g=(a=C+a|0)>>>0>>0?g+1|0:g,C=(Q=a)^o,a=g^(t=h),o=B^y,r^=u,Q=uA(Q,g,32),t=h,(0|i)!=(0|(I=I+8|0)););I=i}switch(g=E<<24,E=0,B=g,c-1|0){case 6:B|=n[I+6|0]<<16;case 5:B|=n[I+5|0]<<8;case 4:B|=n[I+4|0];case 3:E|=(i=n[I+3|0])<<24,B|=g=i>>>8|0;case 2:E|=(i=n[I+2|0])<<16,B|=g=i>>>16|0;case 1:E|=(i=n[I+1|0])<<8,B|=g=i>>>24|0;case 0:E=n[0|I]|E}return c=uA(C,a,13),y=h,g=a+r|0,i=I=C+o|0,C=g=I>>>0>>0?g+1|0:g,a=uA(I,g,32),r=h,f=I=uA(o=E^e,g=I=B^f,16),g=g+t|0,g=(I=Q+o|0)>>>0>>0?g+1|0:g,Q=I,t=uA(I^=f,o=g^(e=h),21),e=h,c=uA(i^=c,C^=y,17),y=h,g=g+C|0,g=(C=Q+i|0)>>>0>>0?g+1|0:g,Q=C,C=uA(C,g,32),f=h,c=uA(i=Q^c,g^=y,13),y=h,Q=g,s=i,g=r+o|0,a=i=I+a|0,I=g=i>>>0>>0?g+1|0:g,g=g+Q|0,Q=g=(i=s+i|0)>>>0>>0?g+1|0:g,r=uA(i,g,32),o=h,e=I=uA(a^=t,g=I^=e,16),g=g+f|0,g=(I=C+a|0)>>>0>>0?g+1|0:g,C=I,t=uA(I^=e,a=g^(t=h),21),e=h,c=uA(i^=c,Q^=y,17),y=h,g=g+Q|0,g=(Q=C+i|0)>>>0>>0?g+1|0:g,i=uA(C=Q,g,32),f=h,c=uA(Q=C^c,g^=y,13),y=h,C=g,s=Q,g=a+o|0,g=(Q=I+r|0)>>>0>>0?g+1|0:g,I=E,E=Q,a=I^Q,I=g,g=(g^B)+C|0,B=g=(Q=s+a|0)>>>0>>0?g+1|0:g,a=uA(Q,g,32),r=h,g=I^e,C=uA(I=E^t,g,16),E=h,o=C,g=g+f|0,g=(C=I+(255^i)|0)>>>0>>0?g+1|0:g,i=uA(I=o^C,E^=g,21),o=h,e=uA(Q^=c,B^=y,17),f=h,g=g+B|0,g=(B=C+Q|0)>>>0>>0?g+1|0:g,B=uA(C=B,g,32),t=h,e=uA(Q=C^e,g^=f,13),f=h,C=g,s=Q,g=E+r|0,E=Q=I+a|0,I=g=Q>>>0>>0?g+1|0:g,g=g+C|0,C=g=(Q=s+Q|0)>>>0>>0?g+1|0:g,a=uA(Q,g,32),r=h,o=I=uA(E^=i,g=I^=o,16),g=g+t|0,g=(I=B+E|0)>>>0>>0?g+1|0:g,B=I,i=uA(I^=o,E=g^(i=h),21),o=h,e=uA(Q^=e,C^=f,17),f=h,g=g+C|0,B=uA(C=B+Q|0,g=C>>>0>>0?g+1|0:g,32),t=h,e=uA(Q=C^e,g^=f,13),f=h,C=g,s=Q,g=E+r|0,a=Q=I+a|0,E=Q,I=g=Q>>>0>>0?g+1|0:g,g=g+C|0,g=(Q=s+Q|0)>>>0>>0?g+1|0:g,E=Q,C=g,r=uA(Q,g,32),c=h,a=I=uA(Q=i^a,g=I^=o,16),g=g+t|0,g=(I=B+Q|0)>>>0>>0?g+1|0:g,B=I,I^=a,a=Q=g^(i=h),i=uA(I,Q,21),Q=h,t=uA(E^=e,C^=f,17),e=h,g=g+C|0,B=uA(C=B+E|0,g=C>>>0>>0?g+1|0:g,32),o=h,e=g^=e,t=uA(C^=t,g,13),E=h,f=i,g=a+c|0,a=i=I+r|0,I=g=i>>>0>>0?g+1|0:g,f=Q=uA(i^=f,g^=Q,16),g=g+o|0,g=(Q=B+i|0)>>>0>>0?g+1|0:g,B=Q,Q=g,g=uA(f^B,g^(r=h),21),r=h,o=g,g=I+e|0,g=Q+(E^=g=(i=C+a|0)>>>0>>0?g+1|0:g)|0,g=(I=B+(C=i^t)|0)>>>0>>0?g+1|0:g,B=o^I^uA(C,E,17),C=h^g^r,QI(A,uA(I,g,32)^B,h^C),0},Mb:function(A){EI(A|=0,16)},Nb:function(){return 208},Ob:lg,Pb:pg,Qb:pg,Rb:lg,Sb:function(){return-65},Tb:function(A,I,g){return 0|P(A|=0,I|=0,g|=0)},Ub:function(A,I){var g;return A|=0,I|=0,s=g=s-32|0,EI(g,32),P(A,I,g),Dg(g,32),s=g+32|0,0},Vb:function(A,I,g,B,C,Q){var E;return I|=0,C|=0,Q|=0,s=E=s-16|0,VI(A|=0,E+8|0,gI(A- -64|0,g|=0,g=B|=0),g,C,Q),64!=i[E+8>>2]|i[E+12>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),wI(A,0,g- -64|0),A=-1):(A=0,I&&(i[I>>2]=g- -64,i[I+4>>2]=C-((g>>>0<4294967232)-1|0))),s=E+16|0,0|A},Wb:function(A,I,g,B,C,Q){A|=0,I|=0,g|=0;var E=0;A:{I:{if(E=B|=0,!(!(C|=0)&B>>>0<64||(B=C-1|0,E=C=E+-64|0,!(B=C>>>0<4294967232?B+1|0:B)&C>>>0>4294967231|B))){if(!OI(g,C=g- -64|0,E,B,Q|=0))break I;A&&wI(A,0,E)}if(g=-1,!I)break A;i[I>>2]=0,i[I+4>>2]=0;break A}I&&(i[I>>2]=E,i[I+4>>2]=B),g=0,A&&gI(A,C,E)}return 0|g},Xb:function(A,I,g,B,C,Q){return 0|VI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},Yb:function(A,I,g,B,C){return 0|OI(A|=0,I|=0,g|=0,B|=0,C|=0)},Zb:function(A){return GI(A|=0),0},_b:function(A,I,g,B){return 0|z(A|=0,I|=0,g|=0,B|=0)},$b:function(A,I,g,B){var C;return I|=0,g|=0,B|=0,s=C=s+-64|0,MA(A|=0,C),A=u(I,g,C,64,0,B,1),s=C- -64|0,0|A},ac:function(A,I,g){var B;return I|=0,g|=0,s=B=s+-64|0,MA(A|=0,B),A=J(I,B,64,0,g,1),s=B- -64|0,0|A},bc:function(A,I){A|=0;var g,B=0,C=0,E=0,i=0,n=0,a=0;if(s=g=s-256|0,a=-1,!sA(I|=0)&&!V(g+96|0,I)){for(s=B=(s=i=s-160|0)-1760|0,DI(E=B+480|0,C=g+96|0),fI(I=B+320|0,C),tI(B,I),xA(I,B,E),tI(E=B+160|0,I),DI(C=B+640|0,E),xA(I,B,C),tI(E,I),DI(C=B+800|0,E),xA(I,B,C),tI(E,I),DI(C=B+960|0,E),xA(I,B,C),tI(E,I),DI(C=B+1120|0,E),xA(I,B,C),tI(E,I),DI(C=B+1280|0,E),xA(I,B,C),tI(E,I),DI(C=B+1440|0,E),xA(I,B,C),tI(E,I),DI(B+1600|0,E),LI(i),I=252;fI(B+320|0,i),E=I,(0|(I=Q[I+33504|0]))>0?(tI(C=B+160|0,n=B+320|0),xA(n,C,(B+480|0)+r((254&I)>>>1|0,160)|0)):(0|I)>=0||(tI(C=B+160|0,n=B+320|0),JA(n,C,(B+480|0)+r((0-I&254)>>>1|0,160)|0)),tI(i,B+320|0),I=E-1|0,E;);s=B+1760|0,I=mI(i),s=i+160|0,I&&(ng(g),cA(g,g,E=g+136|0),ng(I=g+48|0),yA(I,I,E),O(g,g),H(I,I,g),T(A,I),a=0)}return s=g+256|0,0|a},cc:function(A,I){A|=0;var g,B=0;return s=g=s+-64|0,_I(g,I|=0,32,0),Q[0|g]=248&n[0|g],Q[g+31|0]=63&n[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=I,Q[A+21|0]=I>>>8,Q[A+22|0]=I>>>16,Q[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=I,Q[A+13|0]=I>>>8,Q[A+14|0]=I>>>16,Q[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=I,Q[A+5|0]=I>>>8,Q[A+6|0]=I>>>16,Q[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=I,Q[A+29|0]=I>>>8,Q[A+30|0]=I>>>16,Q[A+31|0]=I>>>24,Dg(g,64),s=g- -64|0,0},dc:FI,ec:SI,fc:function(A){var I=0,g=0;if((A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;(I=FI())>>>0>>0;);A=(I>>>0)%(A>>>0)|0}else A=0;return 0|A},gc:EI,hc:function(A,I,g){fg(A|=0,I|=0,1024,g|=0)},ic:pg,jc:function(){var A=0,I=0;return(A=i[9096])&&(A=i[A+20>>2])&&(I=0|vg[0|A]()),0|I},kc:function(A,I,g){A|=0,I|=0,1==(0|(g|=0))|g>>>0>1&&(e(1259,1119,197,1036),t()),EI(A,I)},lc:function(A,I,g,B){A|=0,g|=0;var C=0,E=0,i=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;C=(I<<1)+A|0,E=15&(i=n[I+g|0]),Q[C+1|0]=22272+((E<<8)+(E+65526&55552)|0)>>>8,E=C,C=i>>>4|0,Q[0|E]=87+((C+65526>>>8&217)+C|0),(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return Q[I+A|0]=0,0|A}xI(),t()},mc:function(A,I,g,B,C,E,a){A|=0,I|=0,g|=0,C|=0,E|=0,a|=0;var r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,h=0;A:if(B|=0){I:{g:{B:for(;;){for(o=r;;){C:{if(!(255&((w=(65526+(y=(223&(c=n[g+o|0]))-55&255)^y+65520)>>>8|0)|(t=65526+(D=48^c)>>>8|0)))){if(t=1,!C|255&f)break g;if(DA(C,c))break C;r=o;break A}if(I>>>0<=e>>>0){i[8952]=68,t=0;break g}if(r=y&w|t&D,255&f?(Q[A+e|0]=r|h,e=e+1|0):h=r<<4,f^=-1,t=1,(r=o+1|0)>>>0>>0)continue B;break I}if(f=0,!((o=o+1|0)>>>0>>0))break}break}r=(A=r+1|0)>>>0>>0?B:A;break A}r=o}255&f?(i[8952]=28,s=-1,r=r-1|0,e=0):t||(e=0,s=-1)}return a?i[a>>2]=g+r:(0|B)!=(0|r)&&(i[8952]=28,s=-1),E&&(i[E>>2]=e),0|s},nc:function(A,I){var g;return A|=0,ag(I|=0),A=r(g=(A>>>0)/3|0,-3)+A|0,1+(r(1&(A>>>1|A),2&I?A+1|0:4)+(g<<2)|0)|0},oc:Z,pc:L,qc:function(){var A=0;return i[9097]?A=1:(i[8954]=0,s=A=s-16|0,NI(A),i[A>>2]&&(NI(A),wI(35820,0,40)),s=A+16|0,i[8953]=1,SI(),EI(36368,16),i[9097]=1,A=0),0|A},rc:function(A,I,g,B,C){A|=0,I|=0,g|=0,C|=0;var E,a=0,r=0,o=0;s=E=s-16|0;A:{if(B|=0){if(o=-1,(a=(a=B-1|0)-(r=a&B?(g>>>0)%(B>>>0)|0:g&a)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+a|0)>>>0>=C>>>0))for(A&&(i[A>>2]=g+1),A=I+g|0,o=0,Q[E+15|0]=0,g=0;C=I=A-g|0,r=n[0|I]&n[E+15|0],I=(g^a)-1>>>24|0,Q[0|C]=r|128&I,Q[E+15|0]=I|n[E+15|0],(0|B)!=(0|(g=g+1|0)););}else o=-1;return s=E+16|0,0|o}xI(),t()},sc:function(A,I,g,B){A|=0,I|=0,g|=0,B|=0;var C,Q=0,E=0,a=0,r=0,o=0;if(i[12+(C=s-16|0)>>2]=0,B-1>>>0>>0){for(o=(Q=g-1|0)+I|0,g=0,I=0;r=((128^(E=n[o-g|0]))-1&i[C+12>>2]-1&a-1)>>>8&1,i[C+12>>2]=i[C+12>>2]|0-r&g,I|=r,a|=E,(0|B)!=(0|(g=g+1|0)););i[A>>2]=Q-i[C+12>>2],A=I-1|0}else A=-1;return 0|A},tc:function(){return 1368},uc:function(){return 10},vc:Ug,wc:kg,xc:k,yc:b,zc:vg}}(A)}(gA)},instantiate:function(A,I){return{then:function(I){var g=new D.Module(A);I({instance:new D.Instance(g)})}}},RuntimeError:Error};y=[],"object"!=typeof D&&d("no native wasm support detected");var h,p,u,F,l,_,k,H=!1,G="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function U(A,I){return A?function(A,I,g){for(var B=I+g,C=I;A[C]&&!(C>=B);)++C;if(C-I>16&&A.subarray&&G)return G.decode(A.subarray(I,C));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&E)<<6|i)}else Q+=String.fromCharCode(E)}return Q}(u,A,I):""}function S(A){h=A,a.HEAP8=p=new Int8Array(A),a.HEAP16=F=new Int16Array(A),a.HEAP32=l=new Int32Array(A),a.HEAPU8=u=new Uint8Array(A),a.HEAPU16=new Uint16Array(A),a.HEAPU32=new Uint32Array(A),a.HEAPF32=_=new Float32Array(A),a.HEAPF64=k=new Float64Array(A)}var b,m=a.INITIAL_MEMORY||16777216;(w=a.wasmMemory?a.wasmMemory:new D.Memory({initial:m/65536,maximum:32768}))&&(h=w.buffer),m=h.byteLength,S(h);var v=[],M=[],P=[],Y=0,N=null,R=null;function d(A){throw a.onAbort&&a.onAbort(A),s(A="Aborted("+A+")"),H=!0,A+=". Build with -s ASSERTIONS=1 for more info.",new D.RuntimeError(A)}a.preloadedImages={},a.preloadedAudios={};var J,x,L,K,X="data:application/octet-stream;base64,";function T(A){return A.startsWith(X)}function V(A){return A.startsWith("file://")}function q(A){try{if(A==J&&y)return new Uint8Array(y);var I=AA(A);if(I)return I;if(Q)return Q(A);throw"both async and sync fetching of the wasm failed"}catch(A){d(A)}}T(J="<<< WASM_BINARY_FILE >>>")||(x=J,J=a.locateFile?a.locateFile(x,c):c+x);var z={35048:function(){return a.getRandomValue()},35084:function(){if(void 0===a.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),a.getRandomValue=g}catch(A){try{var B=__nccwpck_require__(6113),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),a.getRandomValue=C}catch(A){throw"No secure random number generator found"}}}};function j(A){for(;A.length>0;){var I=A.shift();if("function"!=typeof I){var g=I.func;"number"==typeof g?void 0===I.arg?W(g)():W(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(a)}}function W(A){return b.get(A)}var O=[];function Z(A){try{return w.grow(A-h.byteLength+65535>>>16),S(w.buffer),1}catch(A){}}var $="function"==typeof atob?atob:function(A){var I,g,B,C,Q,E,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=i.indexOf(A.charAt(a++))<<2|(C=i.indexOf(A.charAt(a++)))>>4,g=(15&C)<<4|(Q=i.indexOf(A.charAt(a++)))>>2,B=(3&Q)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==Q&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a>=2;g=u[A++];){var B=g<105;B&&1&I&&I++,O.push(B?k[I++>>1]:l[I]),++I}return O}(I,g);return z[A].apply(null,B)},d:function(A){var I,g=u.length,B=2147483648;if((A>>>=0)>B)return!1;for(var C=1;C<=4;C*=2){var Q=g*(1+.2/C);if(Q=Math.min(Q,A+100663296),Z(Math.min(B,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1},a:w};function BA(A){function I(){IA||(IA=!0,a.calledRun=!0,H||(j(M),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)A=a.postRun.shift(),P.unshift(A);var A;j(P)}()))}A=A||o,Y>0||(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)A=a.preRun.shift(),v.unshift(A);var A;j(v)}(),Y>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),I()}),1)):I()))}if(function(){var A={a:gA};function I(A,I){var g,B=A.exports;a.asm=B,b=a.asm.zc,g=a.asm.f,M.unshift(g),function(A){if(Y--,a.monitorRunDependencies&&a.monitorRunDependencies(Y),0==Y&&(null!==N&&(clearInterval(N),N=null),R)){var I=R;R=null,I()}}()}function g(A){I(A.instance)}function B(I){return function(){if(!y&&(t||e)){if("function"==typeof fetch&&!V(J))return fetch(J,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+J+"'";return A.arrayBuffer()})).catch((function(){return q(J)}));if(C)return new Promise((function(A,I){C(J,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return q(J)}))}().then((function(I){return D.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){s("failed to asynchronously prepare wasm: "+A),d(A)}))}if(Y++,a.monitorRunDependencies&&a.monitorRunDependencies(Y),a.instantiateWasm)try{return a.instantiateWasm(A,I)}catch(A){return s("Module.instantiateWasm callback failed with error: "+A),!1}y||"function"!=typeof D.instantiateStreaming||T(J)||V(J)||"function"!=typeof fetch?B(g):fetch(J,{credentials:"same-origin"}).then((function(I){return D.instantiateStreaming(I,A).then(g,(function(A){return s("wasm streaming compile failed: "+A),s("falling back to ArrayBuffer instantiation"),B(g)}))}))}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.f).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_encrypt_detached=a.asm.g).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt=function(){return(a._crypto_aead_chacha20poly1305_encrypt=a.asm.h).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=a.asm.i).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt=a.asm.j).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_decrypt_detached=a.asm.k).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt=function(){return(a._crypto_aead_chacha20poly1305_decrypt=a.asm.l).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=a.asm.m).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt=a.asm.n).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_keybytes=a.asm.o).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_npubbytes=a.asm.p).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_nsecbytes=a.asm.q).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_abytes=a.asm.r).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=a.asm.s).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_chacha20poly1305_ietf_keygen=a.asm.t).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keybytes=function(){return(a._crypto_aead_chacha20poly1305_keybytes=a.asm.u).apply(null,arguments)},a._crypto_aead_chacha20poly1305_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_npubbytes=a.asm.v).apply(null,arguments)},a._crypto_aead_chacha20poly1305_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_nsecbytes=a.asm.w).apply(null,arguments)},a._crypto_aead_chacha20poly1305_abytes=function(){return(a._crypto_aead_chacha20poly1305_abytes=a.asm.x).apply(null,arguments)},a._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_messagebytes_max=a.asm.y).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keygen=function(){return(a._crypto_aead_chacha20poly1305_keygen=a.asm.z).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=a.asm.A).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt=a.asm.B).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=a.asm.C).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt=a.asm.D).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keybytes=a.asm.E).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_npubbytes=a.asm.F).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=a.asm.G).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_abytes=a.asm.H).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=a.asm.I).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keygen=a.asm.J).apply(null,arguments)},a._crypto_auth_bytes=function(){return(a._crypto_auth_bytes=a.asm.K).apply(null,arguments)},a._crypto_auth_keybytes=function(){return(a._crypto_auth_keybytes=a.asm.L).apply(null,arguments)},a._crypto_auth=function(){return(a._crypto_auth=a.asm.M).apply(null,arguments)},a._crypto_auth_verify=function(){return(a._crypto_auth_verify=a.asm.N).apply(null,arguments)},a._crypto_auth_keygen=function(){return(a._crypto_auth_keygen=a.asm.O).apply(null,arguments)},a._crypto_box_seedbytes=function(){return(a._crypto_box_seedbytes=a.asm.P).apply(null,arguments)},a._crypto_box_publickeybytes=function(){return(a._crypto_box_publickeybytes=a.asm.Q).apply(null,arguments)},a._crypto_box_secretkeybytes=function(){return(a._crypto_box_secretkeybytes=a.asm.R).apply(null,arguments)},a._crypto_box_beforenmbytes=function(){return(a._crypto_box_beforenmbytes=a.asm.S).apply(null,arguments)},a._crypto_box_noncebytes=function(){return(a._crypto_box_noncebytes=a.asm.T).apply(null,arguments)},a._crypto_box_macbytes=function(){return(a._crypto_box_macbytes=a.asm.U).apply(null,arguments)},a._crypto_box_messagebytes_max=function(){return(a._crypto_box_messagebytes_max=a.asm.V).apply(null,arguments)},a._crypto_box_seed_keypair=function(){return(a._crypto_box_seed_keypair=a.asm.W).apply(null,arguments)},a._crypto_box_keypair=function(){return(a._crypto_box_keypair=a.asm.X).apply(null,arguments)},a._crypto_box_beforenm=function(){return(a._crypto_box_beforenm=a.asm.Y).apply(null,arguments)},a._crypto_box_detached_afternm=function(){return(a._crypto_box_detached_afternm=a.asm.Z).apply(null,arguments)},a._crypto_box_detached=function(){return(a._crypto_box_detached=a.asm._).apply(null,arguments)},a._crypto_box_easy_afternm=function(){return(a._crypto_box_easy_afternm=a.asm.$).apply(null,arguments)},a._crypto_box_easy=function(){return(a._crypto_box_easy=a.asm.aa).apply(null,arguments)},a._crypto_box_open_detached_afternm=function(){return(a._crypto_box_open_detached_afternm=a.asm.ba).apply(null,arguments)},a._crypto_box_open_detached=function(){return(a._crypto_box_open_detached=a.asm.ca).apply(null,arguments)},a._crypto_box_open_easy_afternm=function(){return(a._crypto_box_open_easy_afternm=a.asm.da).apply(null,arguments)},a._crypto_box_open_easy=function(){return(a._crypto_box_open_easy=a.asm.ea).apply(null,arguments)},a._crypto_box_seal=function(){return(a._crypto_box_seal=a.asm.fa).apply(null,arguments)},a._crypto_box_seal_open=function(){return(a._crypto_box_seal_open=a.asm.ga).apply(null,arguments)},a._crypto_box_sealbytes=function(){return(a._crypto_box_sealbytes=a.asm.ha).apply(null,arguments)},a._crypto_generichash_bytes_min=function(){return(a._crypto_generichash_bytes_min=a.asm.ia).apply(null,arguments)},a._crypto_generichash_bytes_max=function(){return(a._crypto_generichash_bytes_max=a.asm.ja).apply(null,arguments)},a._crypto_generichash_bytes=function(){return(a._crypto_generichash_bytes=a.asm.ka).apply(null,arguments)},a._crypto_generichash_keybytes_min=function(){return(a._crypto_generichash_keybytes_min=a.asm.la).apply(null,arguments)},a._crypto_generichash_keybytes_max=function(){return(a._crypto_generichash_keybytes_max=a.asm.ma).apply(null,arguments)},a._crypto_generichash_keybytes=function(){return(a._crypto_generichash_keybytes=a.asm.na).apply(null,arguments)},a._crypto_generichash_statebytes=function(){return(a._crypto_generichash_statebytes=a.asm.oa).apply(null,arguments)},a._crypto_generichash=function(){return(a._crypto_generichash=a.asm.pa).apply(null,arguments)},a._crypto_generichash_init=function(){return(a._crypto_generichash_init=a.asm.qa).apply(null,arguments)},a._crypto_generichash_update=function(){return(a._crypto_generichash_update=a.asm.ra).apply(null,arguments)},a._crypto_generichash_final=function(){return(a._crypto_generichash_final=a.asm.sa).apply(null,arguments)},a._crypto_generichash_keygen=function(){return(a._crypto_generichash_keygen=a.asm.ta).apply(null,arguments)},a._crypto_hash_bytes=function(){return(a._crypto_hash_bytes=a.asm.ua).apply(null,arguments)},a._crypto_hash=function(){return(a._crypto_hash=a.asm.va).apply(null,arguments)},a._crypto_kdf_bytes_min=function(){return(a._crypto_kdf_bytes_min=a.asm.wa).apply(null,arguments)},a._crypto_kdf_bytes_max=function(){return(a._crypto_kdf_bytes_max=a.asm.xa).apply(null,arguments)},a._crypto_kdf_contextbytes=function(){return(a._crypto_kdf_contextbytes=a.asm.ya).apply(null,arguments)},a._crypto_kdf_keybytes=function(){return(a._crypto_kdf_keybytes=a.asm.za).apply(null,arguments)},a._crypto_kdf_derive_from_key=function(){return(a._crypto_kdf_derive_from_key=a.asm.Aa).apply(null,arguments)},a._crypto_kdf_keygen=function(){return(a._crypto_kdf_keygen=a.asm.Ba).apply(null,arguments)},a._crypto_kx_seed_keypair=function(){return(a._crypto_kx_seed_keypair=a.asm.Ca).apply(null,arguments)},a._crypto_kx_keypair=function(){return(a._crypto_kx_keypair=a.asm.Da).apply(null,arguments)},a._crypto_kx_client_session_keys=function(){return(a._crypto_kx_client_session_keys=a.asm.Ea).apply(null,arguments)},a._crypto_kx_server_session_keys=function(){return(a._crypto_kx_server_session_keys=a.asm.Fa).apply(null,arguments)},a._crypto_kx_publickeybytes=function(){return(a._crypto_kx_publickeybytes=a.asm.Ga).apply(null,arguments)},a._crypto_kx_secretkeybytes=function(){return(a._crypto_kx_secretkeybytes=a.asm.Ha).apply(null,arguments)},a._crypto_kx_seedbytes=function(){return(a._crypto_kx_seedbytes=a.asm.Ia).apply(null,arguments)},a._crypto_kx_sessionkeybytes=function(){return(a._crypto_kx_sessionkeybytes=a.asm.Ja).apply(null,arguments)},a._crypto_pwhash_alg_argon2i13=function(){return(a._crypto_pwhash_alg_argon2i13=a.asm.Ka).apply(null,arguments)},a._crypto_pwhash_alg_argon2id13=function(){return(a._crypto_pwhash_alg_argon2id13=a.asm.La).apply(null,arguments)},a._crypto_pwhash_alg_default=function(){return(a._crypto_pwhash_alg_default=a.asm.Ma).apply(null,arguments)},a._crypto_pwhash_bytes_min=function(){return(a._crypto_pwhash_bytes_min=a.asm.Na).apply(null,arguments)},a._crypto_pwhash_bytes_max=function(){return(a._crypto_pwhash_bytes_max=a.asm.Oa).apply(null,arguments)},a._crypto_pwhash_passwd_min=function(){return(a._crypto_pwhash_passwd_min=a.asm.Pa).apply(null,arguments)},a._crypto_pwhash_passwd_max=function(){return(a._crypto_pwhash_passwd_max=a.asm.Qa).apply(null,arguments)},a._crypto_pwhash_saltbytes=function(){return(a._crypto_pwhash_saltbytes=a.asm.Ra).apply(null,arguments)},a._crypto_pwhash_strbytes=function(){return(a._crypto_pwhash_strbytes=a.asm.Sa).apply(null,arguments)},a._crypto_pwhash_strprefix=function(){return(a._crypto_pwhash_strprefix=a.asm.Ta).apply(null,arguments)},a._crypto_pwhash_opslimit_min=function(){return(a._crypto_pwhash_opslimit_min=a.asm.Ua).apply(null,arguments)},a._crypto_pwhash_opslimit_max=function(){return(a._crypto_pwhash_opslimit_max=a.asm.Va).apply(null,arguments)},a._crypto_pwhash_memlimit_min=function(){return(a._crypto_pwhash_memlimit_min=a.asm.Wa).apply(null,arguments)},a._crypto_pwhash_memlimit_max=function(){return(a._crypto_pwhash_memlimit_max=a.asm.Xa).apply(null,arguments)},a._crypto_pwhash_opslimit_interactive=function(){return(a._crypto_pwhash_opslimit_interactive=a.asm.Ya).apply(null,arguments)},a._crypto_pwhash_memlimit_interactive=function(){return(a._crypto_pwhash_memlimit_interactive=a.asm.Za).apply(null,arguments)},a._crypto_pwhash_opslimit_moderate=function(){return(a._crypto_pwhash_opslimit_moderate=a.asm._a).apply(null,arguments)},a._crypto_pwhash_memlimit_moderate=function(){return(a._crypto_pwhash_memlimit_moderate=a.asm.$a).apply(null,arguments)},a._crypto_pwhash_opslimit_sensitive=function(){return(a._crypto_pwhash_opslimit_sensitive=a.asm.ab).apply(null,arguments)},a._crypto_pwhash_memlimit_sensitive=function(){return(a._crypto_pwhash_memlimit_sensitive=a.asm.bb).apply(null,arguments)},a._crypto_pwhash=function(){return(a._crypto_pwhash=a.asm.cb).apply(null,arguments)},a._crypto_pwhash_str=function(){return(a._crypto_pwhash_str=a.asm.db).apply(null,arguments)},a._crypto_pwhash_str_alg=function(){return(a._crypto_pwhash_str_alg=a.asm.eb).apply(null,arguments)},a._crypto_pwhash_str_verify=function(){return(a._crypto_pwhash_str_verify=a.asm.fb).apply(null,arguments)},a._crypto_pwhash_str_needs_rehash=function(){return(a._crypto_pwhash_str_needs_rehash=a.asm.gb).apply(null,arguments)},a._crypto_scalarmult_base=function(){return(a._crypto_scalarmult_base=a.asm.hb).apply(null,arguments)},a._crypto_scalarmult=function(){return(a._crypto_scalarmult=a.asm.ib).apply(null,arguments)},a._crypto_scalarmult_bytes=function(){return(a._crypto_scalarmult_bytes=a.asm.jb).apply(null,arguments)},a._crypto_scalarmult_scalarbytes=function(){return(a._crypto_scalarmult_scalarbytes=a.asm.kb).apply(null,arguments)},a._crypto_secretbox_keybytes=function(){return(a._crypto_secretbox_keybytes=a.asm.lb).apply(null,arguments)},a._crypto_secretbox_noncebytes=function(){return(a._crypto_secretbox_noncebytes=a.asm.mb).apply(null,arguments)},a._crypto_secretbox_macbytes=function(){return(a._crypto_secretbox_macbytes=a.asm.nb).apply(null,arguments)},a._crypto_secretbox_messagebytes_max=function(){return(a._crypto_secretbox_messagebytes_max=a.asm.ob).apply(null,arguments)},a._crypto_secretbox_keygen=function(){return(a._crypto_secretbox_keygen=a.asm.pb).apply(null,arguments)},a._crypto_secretbox_detached=function(){return(a._crypto_secretbox_detached=a.asm.qb).apply(null,arguments)},a._crypto_secretbox_easy=function(){return(a._crypto_secretbox_easy=a.asm.rb).apply(null,arguments)},a._crypto_secretbox_open_detached=function(){return(a._crypto_secretbox_open_detached=a.asm.sb).apply(null,arguments)},a._crypto_secretbox_open_easy=function(){return(a._crypto_secretbox_open_easy=a.asm.tb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keygen=function(){return(a._crypto_secretstream_xchacha20poly1305_keygen=a.asm.ub).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_push=function(){return(a._crypto_secretstream_xchacha20poly1305_init_push=a.asm.vb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_init_pull=a.asm.wb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_rekey=a.asm.xb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_push=function(){return(a._crypto_secretstream_xchacha20poly1305_push=a.asm.yb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_pull=a.asm.zb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(a._crypto_secretstream_xchacha20poly1305_statebytes=a.asm.Ab).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_abytes=function(){return(a._crypto_secretstream_xchacha20poly1305_abytes=a.asm.Bb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(a._crypto_secretstream_xchacha20poly1305_headerbytes=a.asm.Cb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(a._crypto_secretstream_xchacha20poly1305_keybytes=a.asm.Db).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(a._crypto_secretstream_xchacha20poly1305_messagebytes_max=a.asm.Eb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_message=a.asm.Fb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_push=a.asm.Gb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_rekey=a.asm.Hb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_final=a.asm.Ib).apply(null,arguments)},a._crypto_shorthash_bytes=function(){return(a._crypto_shorthash_bytes=a.asm.Jb).apply(null,arguments)},a._crypto_shorthash_keybytes=function(){return(a._crypto_shorthash_keybytes=a.asm.Kb).apply(null,arguments)},a._crypto_shorthash=function(){return(a._crypto_shorthash=a.asm.Lb).apply(null,arguments)},a._crypto_shorthash_keygen=function(){return(a._crypto_shorthash_keygen=a.asm.Mb).apply(null,arguments)},a._crypto_sign_statebytes=function(){return(a._crypto_sign_statebytes=a.asm.Nb).apply(null,arguments)},a._crypto_sign_bytes=function(){return(a._crypto_sign_bytes=a.asm.Ob).apply(null,arguments)},a._crypto_sign_seedbytes=function(){return(a._crypto_sign_seedbytes=a.asm.Pb).apply(null,arguments)},a._crypto_sign_publickeybytes=function(){return(a._crypto_sign_publickeybytes=a.asm.Qb).apply(null,arguments)},a._crypto_sign_secretkeybytes=function(){return(a._crypto_sign_secretkeybytes=a.asm.Rb).apply(null,arguments)},a._crypto_sign_messagebytes_max=function(){return(a._crypto_sign_messagebytes_max=a.asm.Sb).apply(null,arguments)},a._crypto_sign_seed_keypair=function(){return(a._crypto_sign_seed_keypair=a.asm.Tb).apply(null,arguments)},a._crypto_sign_keypair=function(){return(a._crypto_sign_keypair=a.asm.Ub).apply(null,arguments)},a._crypto_sign=function(){return(a._crypto_sign=a.asm.Vb).apply(null,arguments)},a._crypto_sign_open=function(){return(a._crypto_sign_open=a.asm.Wb).apply(null,arguments)},a._crypto_sign_detached=function(){return(a._crypto_sign_detached=a.asm.Xb).apply(null,arguments)},a._crypto_sign_verify_detached=function(){return(a._crypto_sign_verify_detached=a.asm.Yb).apply(null,arguments)},a._crypto_sign_init=function(){return(a._crypto_sign_init=a.asm.Zb).apply(null,arguments)},a._crypto_sign_update=function(){return(a._crypto_sign_update=a.asm._b).apply(null,arguments)},a._crypto_sign_final_create=function(){return(a._crypto_sign_final_create=a.asm.$b).apply(null,arguments)},a._crypto_sign_final_verify=function(){return(a._crypto_sign_final_verify=a.asm.ac).apply(null,arguments)},a._crypto_sign_ed25519_pk_to_curve25519=function(){return(a._crypto_sign_ed25519_pk_to_curve25519=a.asm.bc).apply(null,arguments)},a._crypto_sign_ed25519_sk_to_curve25519=function(){return(a._crypto_sign_ed25519_sk_to_curve25519=a.asm.cc).apply(null,arguments)},a._randombytes_random=function(){return(a._randombytes_random=a.asm.dc).apply(null,arguments)},a._randombytes_stir=function(){return(a._randombytes_stir=a.asm.ec).apply(null,arguments)},a._randombytes_uniform=function(){return(a._randombytes_uniform=a.asm.fc).apply(null,arguments)},a._randombytes_buf=function(){return(a._randombytes_buf=a.asm.gc).apply(null,arguments)},a._randombytes_buf_deterministic=function(){return(a._randombytes_buf_deterministic=a.asm.hc).apply(null,arguments)},a._randombytes_seedbytes=function(){return(a._randombytes_seedbytes=a.asm.ic).apply(null,arguments)},a._randombytes_close=function(){return(a._randombytes_close=a.asm.jc).apply(null,arguments)},a._randombytes=function(){return(a._randombytes=a.asm.kc).apply(null,arguments)},a._sodium_bin2hex=function(){return(a._sodium_bin2hex=a.asm.lc).apply(null,arguments)},a._sodium_hex2bin=function(){return(a._sodium_hex2bin=a.asm.mc).apply(null,arguments)},a._sodium_base64_encoded_len=function(){return(a._sodium_base64_encoded_len=a.asm.nc).apply(null,arguments)},a._sodium_bin2base64=function(){return(a._sodium_bin2base64=a.asm.oc).apply(null,arguments)},a._sodium_base642bin=function(){return(a._sodium_base642bin=a.asm.pc).apply(null,arguments)},a._sodium_init=function(){return(a._sodium_init=a.asm.qc).apply(null,arguments)},a._sodium_pad=function(){return(a._sodium_pad=a.asm.rc).apply(null,arguments)},a._sodium_unpad=function(){return(a._sodium_unpad=a.asm.sc).apply(null,arguments)},a._sodium_version_string=function(){return(a._sodium_version_string=a.asm.tc).apply(null,arguments)},a._sodium_library_version_major=function(){return(a._sodium_library_version_major=a.asm.uc).apply(null,arguments)},a._sodium_library_version_minor=function(){return(a._sodium_library_version_minor=a.asm.vc).apply(null,arguments)},a._sodium_library_minimal=function(){return(a._sodium_library_minimal=a.asm.wc).apply(null,arguments)},a._malloc=function(){return(a._malloc=a.asm.xc).apply(null,arguments)},a._free=function(){return(a._free=a.asm.yc).apply(null,arguments)},a.setValue=function(A,I,g="i8",B){switch("*"===g.charAt(g.length-1)&&(g="i32"),g){case"i1":case"i8":p[A>>0]=I;break;case"i16":F[A>>1]=I;break;case"i32":l[A>>2]=I;break;case"i64":K=[I>>>0,(L=I,+Math.abs(L)>=1?L>0?(0|Math.min(+Math.floor(L/4294967296),4294967295))>>>0:~~+Math.ceil((L-+(~~L>>>0))/4294967296)>>>0:0)],l[A>>2]=K[0],l[A+4>>2]=K[1];break;case"float":_[A>>2]=I;break;case"double":k[A>>3]=I;break;default:d("invalid type for setValue: "+g)}},a.getValue=function(A,I="i8",g){switch("*"===I.charAt(I.length-1)&&(I="i32"),I){case"i1":case"i8":return p[A>>0];case"i16":return F[A>>1];case"i32":case"i64":return l[A>>2];case"float":return _[A>>2];case"double":return Number(k[A>>3]);default:d("invalid type for getValue: "+I)}return null},a.UTF8ToString=U,R=function A(){IA||BA(),IA||(R=A)},a.run=BA,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();BA()}))};var g,C,Q,E,i,n,a=void 0!==a?a:{},r=Object.assign({},a),o=[],t="object"==typeof window,e="function"==typeof importScripts,f="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,c="";f?(c=e?(__nccwpck_require__(1017).dirname)(c)+"/":__dirname+"/",n=()=>{i||(E=__nccwpck_require__(7147),i=__nccwpck_require__(1017))},g=function(A,I){var g=Z(A);return g?I?g:g.toString():(n(),A=i.normalize(A),E.readFileSync(A,I?void 0:"utf8"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},C=(A,I,g)=>{var B=Z(A);B&&I(B),n(),A=i.normalize(A),E.readFile(A,(function(A,B){A?g(A):I(B.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),o=process.argv.slice(2), true&&(module.exports=a),a.inspect=function(){return"[Emscripten Module object]"}):(t||e)&&(e?c=self.location.href:"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",g=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(I){var g=Z(A);if(g)return function(A){for(var I=[],g=0;g255&&(B&=255),I.push(String.fromCharCode(B))}return I.join("")}(g);throw I}},e&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){var g=Z(A);if(g)return g;throw I}}),C=(A,I,g)=>{var B=new XMLHttpRequest;B.open("GET",A,!0),B.responseType="arraybuffer",B.onload=()=>{if(200==B.status||0==B.status&&B.response)I(B.response);else{var C=Z(A);C?I(C.buffer):g()}},B.onerror=g,B.send(null)}),a.print;var y,s,w=a.printErr||void 0;Object.assign(a,r),r=null,a.arguments&&(o=a.arguments),a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(y=a.wasmBinary),a.noExitRuntime,"object"!=typeof WebAssembly&&N("no native wasm support detected");var D,h,p,u,F,l,_,k=!1,H="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function G(A,I){return A?function(A,I,g){for(var B=I+g,C=I;A[C]&&!(C>=B);)++C;if(C-I>16&&A.subarray&&H)return H.decode(A.subarray(I,C));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&E)<<6|i)}else Q+=String.fromCharCode(E)}return Q}(p,A,I):""}function U(A){D=A,a.HEAP8=h=new Int8Array(A),a.HEAP16=u=new Int16Array(A),a.HEAP32=F=new Int32Array(A),a.HEAPU8=p=new Uint8Array(A),a.HEAPU16=new Uint16Array(A),a.HEAPU32=new Uint32Array(A),a.HEAPF32=l=new Float32Array(A),a.HEAPF64=_=new Float64Array(A)}a.INITIAL_MEMORY;var S,b=[],m=[],v=[],M=0,P=null,Y=null;function N(A){throw a.onAbort&&a.onAbort(A),w(A="Aborted("+A+")"),k=!0,A+=". Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(A)}a.preloadedImages={},a.preloadedAudios={};var R,d,J,x,L="data:application/octet-stream;base64,";function K(A){return A.startsWith(L)}function X(A){return A.startsWith("file://")}function T(A){try{if(A==R&&y)return new Uint8Array(y);var I=Z(A);if(I)return I;if(Q)return Q(A);throw"both async and sync fetching of the wasm failed"}catch(A){N(A)}}K(R="data:application/octet-stream;base64,AGFzbQEAAAABvgImYAJ/fwBgAAF/YAN/f38Bf2ACf38Bf2ADf39/AGABfwBgAX8Bf2AEf39/fwF/YAt/f39/f39/f39/fwF/YAV/f39/fwF/YAZ/f39/f38Bf2AHf39/f39/fwF/YAN/f34Bf2AEf35/fwF/YAZ/f39+f38Bf2AAAGAGf39+f39/AX9gBH9/fn8Bf2AGf39+f35/AX9gDH9/f39/f39/f39/fwF/YAh/f39/f39/fwF/YAR/f39/AGADf39+AGAFf39+f38AYAh/f35/f35/fwF/YAl/f39/fn9+f38Bf2ACfn8BfmACf34AYAZ/f35/f38AYAR/fn9/AGAHf39/fn9/fwF/YAp/f39/f39/f39/AX9gAn5+AX5gAX8BfmAEf39/fgBgBX9/fn5/AX9gBX9/fn9/AX9gBX9/f35/AX8CHwUBYQFhABUBYQFiAAIBYQFjAAYBYQFkAA8BYQFlAAIDkwKRAhogAwAABBYaACECGwIEAA8EAQwFAAQMBQABBgIGBAAADAMABQAGAAAAHAEFAAEdEwwFAQwEAAAAAwUAAwIHIgMAAhUBAQEEAgcEAgUGAAQABAYWBgQVARwdAgMODg4OAgIBFAkFAAEFBQEOAhsFAAADFwMPBAUABAADBgAAABYAEQMCAAAFDxcEBBAeEB4DEQQjDQcCGBkOBgYEESQlDgIEGBgZGQAFBwMXAgIDDAMRAQQGBAcJCgoKCR8fCgsKCwcHFAsICgcHCwoJCwoUCwsKFAsJCQgICBMICAgICBMIExAJCQMCAQEFARICAQEBAQEBAQENAQMLBwIHBgMCAQEDAw0BBwEBAQIJAgAAARINAwQEAXAADgUHAQGAAoCAAgYJAX8BQbCcwgILB8MHuAEBZgIAAWcAeAFoAOUBAWkA5AEBagDjAQFrAOIBAWwA4QEBbQDgAQFuAN8BAW8A3gEBcAAWAXEAiAIBcgAyAXMAHgF0ADcBdQAoAXYAFgF3AG4BeAAyAXkAHgF6ADcBQQAoAUIA3QEBQwDcAQFEANsBAUUA2gEBRgAWAUcASgFIADIBSQAeAUoANwFLACgBTAAWAU0AFgFOANkBAU8A2AEBUAAoAVEAFgFSABYBUwAWAVQAFgFVAEoBVgAeAVcANwFYAPABAVkAkwEBWgBkAV8A1wEBJADWAQJhYQDVAQJiYQDUAQJjYQDTAQJkYQDSAQJlYQDRAQJmYQDQAQJnYQDPAQJoYQDOAQJpYQDuAQJqYQAeAmthAC8CbGEAFgJtYQAeAm5hAC8Cb2EAFgJwYQD6AQJxYQDNAQJyYQBCAnNhAMwBAnRhAEECdWEAKAJ2YQAvAndhAMsBAnhhAB4CeWEALwJ6YQBuAkFhABYCQmEAygECQ2EAKAJEYQDqAQJFYQDpAQJGYQDoAQJHYQDnAQJIYQAWAklhABYCSmEAFgJLYQAWAkxhAEkCTWEASAJOYQBIAk9hAB4CUGEAZgJRYQAyAlJhAGYCU2EAHgJUYQD4AQJVYQD3AQJWYQBJAldhAGYCWGEA9gECWWEA9QECWmEASAJfYQD0AQIkYQBrAmFiAPMBAmJiAPIBAmNiAPEBAmRiAMkBAmViAMgBAmZiAMcBAmdiAMYBAmhiAMUBAmliAF8CamIAXgJrYgAWAmxiABYCbWIAFgJuYgBKAm9iAB4CcGIANwJxYgAoAnJiAMQBAnNiAMMBAnRiAMIBAnViAMEBAnZiACgCd2IAjwICeGIAjQICeWIAbAJ6YgDAAQJBYgC/AQJCYgCMAgJDYgCLAgJEYgBKAkViABYCRmIAigICR2IAMgJIYgBJAkliAEgCSmIAawJLYgBuAkxiAB4CTWIAvgECTmIA7QECT2IAhAICUGIALwJRYgAWAlJiABYCU2IALwJUYgCDAgJVYgCCAgJWYgCBAgJXYgC9AQJYYgC8AQJZYgC7AQJaYgC6AQJfYgCAAgIkYgC5AQJhYwD/AQJiYwD+AQJjYwCGAgJkYwCFAgJlYwBbAmZjAIsBAmdjALcBAmhjAB0CaWMAtgECamMAFgJrYwC1AQJsYwC4AQJtYwD9AQJuYwD8AQJvYwD7AQJwYwBoAnFjAGcCcmMAkgICc2MAjgICdGMAiQICdWMA7AECdmMA6wECd2MAawJ4YwBJAnljAB8CemMAGAJBYwEACSABAEEBCw2HAvkB7wHmAYUBtAGzAbIBsQGwAZUClAKTAgq2nASRAggAIAAgAa2KCx4AIAAgAXwgAEIBhkL+////H4MgAUL/////D4N+fAsHACAAIAF3CwsAIABBACABEA8aCwkAIAAgATYAAAudCQInfgx/IAAgAigCBCIqrCILIAEoAhQiK0EBdKwiFH4gAjQCACIDIAE0AhgiBn58IAIoAggiLKwiDSABNAIQIgd+fCACKAIMIi2sIhAgASgCDCIuQQF0rCIVfnwgAigCECIvrCIRIAE0AggiCH58IAIoAhQiMKwiFiABKAIEIjFBAXSsIhd+fCACKAIYIjKsIiAgATQCACIJfnwgAigCHCIzQRNsrCIMIAEoAiQiNEEBdKwiGH58IAIoAiAiNUETbKwiBCABNAIgIgp+fCACKAIkIgJBE2ysIgUgASgCHCIBQQF0rCIZfnwgByALfiADICusIhp+fCANIC6sIht+fCAIIBB+fCARIDGsIhx+fCAJIBZ+fCAyQRNsrCIOIDSsIh1+fCAKIAx+fCAEIAGsIh5+fCAFIAZ+fCALIBV+IAMgB358IAggDX58IBAgF358IAkgEX58IDBBE2ysIh8gGH58IAogDn58IAwgGX58IAQgBn58IAUgFH58IiJCgICAEHwiI0Iah3wiJEKAgIAIfCIlQhmHfCISIBJCgICAEHwiE0KAgIDgD4N9PgIYIAAgCyAXfiADIAh+fCAJIA1+fCAtQRNsrCIPIBh+fCAKIC9BE2ysIhJ+fCAZIB9+fCAGIA5+fCAMIBR+fCAEIAd+fCAFIBV+fCAJIAt+IAMgHH58ICxBE2ysIiEgHX58IAogD358IBIgHn58IAYgH358IA4gGn58IAcgDH58IAQgG358IAUgCH58ICpBE2ysIBh+IAMgCX58IAogIX58IA8gGX58IAYgEn58IBQgH358IAcgDn58IAwgFX58IAQgCH58IAUgF358IiFCgICAEHwiJkIah3wiJ0KAgIAIfCIoQhmHfCIPIA9CgICAEHwiKUKAgIDgD4N9PgIIIAAgBiALfiADIB5+fCANIBp+fCAHIBB+fCARIBt+fCAIIBZ+fCAcICB+fCAJIDOsIg9+fCAEIB1+fCAFIAp+fCATQhqHfCITIBNCgICACHwiE0KAgIDwD4N9PgIcIAAgCCALfiADIBt+fCANIBx+fCAJIBB+fCASIB1+fCAKIB9+fCAOIB5+fCAGIAx+fCAEIBp+fCAFIAd+fCApQhqHfCIEIARCgICACHwiBEKAgIDwD4N9PgIMIAAgCyAZfiADIAp+fCAGIA1+fCAQIBR+fCAHIBF+fCAVIBZ+fCAIICB+fCAPIBd+fCAJIDWsIgx+fCAFIBh+fCATQhmHfCIFIAVCgICAEHwiBUKAgIDgD4N9PgIgIAAgJCAlQoCAgPAPg30gIiAjQoCAgGCDfSAEQhmHfCIEQoCAgBB8Ig5CGoh8PgIUIAAgBCAOQoCAgOAPg30+AhAgACAKIAt+IAMgHX58IA0gHn58IAYgEH58IBEgGn58IAcgFn58IBsgIH58IAggD358IAwgHH58IAkgAqx+fCAFQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgIkIAAgJyAoQoCAgPAPg30gISAmQoCAgGCDfSADQhmHQhN+fCIDQoCAgBB8IgZCGoh8PgIEIAAgAyAGQoCAgOAPg30+AgALEwAgACABIAJB0JECKAIAEQwAGgsIACAAIAGtiQvLBgIbfgd/IAAgASgCDCIdQQF0rCIHIB2sIhN+IAEoAhAiIKwiBiABKAIIIiFBAXSsIgt+fCABKAIUIh1BAXSsIgggASgCBCIiQQF0rCICfnwgASgCGCIfrCIJIAEoAgAiI0EBdKwiBX58IAEoAiAiHkETbKwiAyAerCIQfnwgASgCJCIeQSZsrCIEIAEoAhwiAUEBdKwiFH58IAIgBn4gCyATfnwgHawiESAFfnwgAyAUfnwgBCAJfnwgAiAHfiAhrCIOIA5+fCAFIAZ+fCABQSZsrCIPIAGsIhV+fCADIB9BAXSsfnwgBCAIfnwiF0KAgIAQfCIYQhqHfCIZQoCAgAh8IhpCGYd8IgogCkKAgIAQfCIMQoCAgOAPg30+AhggACAFIA5+IAIgIqwiDX58IB9BE2ysIgogCX58IAggD358IAMgIEEBdKwiFn58IAQgB358IAggCn4gBSANfnwgBiAPfnwgAyAHfnwgBCAOfnwgHUEmbKwgEX4gI6wiDSANfnwgCiAWfnwgByAPfnwgAyALfnwgAiAEfnwiCkKAgIAQfCINQhqHfCIbQoCAgAh8IhxCGYd8IhIgEkKAgIAQfCISQoCAgOAPg30+AgggACALIBF+IAYgB358IAIgCX58IAUgFX58IAQgEH58IAxCGod8IgwgDEKAgIAIfCIMQoCAgPAPg30+AhwgACAFIBN+IAIgDn58IAkgD358IAMgCH58IAQgBn58IBJCGod8IgMgA0KAgIAIfCIDQoCAgPAPg30+AgwgACAJIAt+IAYgBn58IAcgCH58IAIgFH58IAUgEH58IAQgHqwiBn58IAxCGYd8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAgACAZIBpCgICA8A+DfSAXIBhCgICAYIN9IANCGYd8IgNCgICAEHwiCEIaiHw+AhQgACADIAhCgICA4A+DfT4CECAAIAcgCX4gESAWfnwgCyAVfnwgAiAQfnwgBSAGfnwgBEIah3wiAiACQoCAgAh8IgJCgICA8A+DfT4CJCAAIBsgHEKAgIDwD4N9IAogDUKAgIBgg30gAkIZh0ITfnwiAkKAgIAQfCIFQhqIfD4CBCAAIAIgBUKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALCQAgACABNwAAC4EEAQN/IAJBgARPBEAgACABIAIQBBogAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAAL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREgASgCICESIAIoAiQhEyABKAIkIRQgACACKAIAIAEoAgBqNgIAIAAgEyAUajYCJCAAIBEgEmo2AiAgACAPIBBqNgIcIAAgDSAOajYCGCAAIAsgDGo2AhQgACAJIApqNgIQIAAgByAIajYCDCAAIAUgBmo2AgggACADIARqNgIEC0ABA38gACABIAFB+ABqIgIQCiAAQShqIAFBKGoiAyABQdAAaiIEEAogAEHQAGogBCACEAogAEH4AGogASADEAoLGAEBf0GonAIoAgAiAARAIAARDwALEAMAC+wBARJ/IAIoAgQhAyABKAIEIQQgAigCCCEFIAEoAgghBiACKAIMIQcgASgCDCEIIAIoAhAhCSABKAIQIQogAigCFCELIAEoAhQhDCACKAIYIQ0gASgCGCEOIAIoAhwhDyABKAIcIRAgAigCICERIAEoAiAhEiACKAIkIRMgASgCJCEUIAAgASgCACACKAIAazYCACAAIBQgE2s2AiQgACASIBFrNgIgIAAgECAPazYCHCAAIA4gDWs2AhggACAMIAtrNgIUIAAgCiAJazYCECAAIAggB2s2AgwgACAGIAVrNgIIIAAgBCADazYCBAsEAEEgCwoAIAAgASACEDgLzAwBB38CQCAARQ0AIABBCGsiAyAAQQRrKAIAIgFBeHEiAGohBQJAIAFBAXENACABQQNxRQ0BIAMgAygCACIBayIDQaSYAigCAEkNASAAIAFqIQAgA0GomAIoAgBHBEAgAUH/AU0EQCADKAIIIgIgAUEDdiIEQQN0QbyYAmpGGiACIAMoAgwiAUYEQEGUmAJBlJgCKAIAQX4gBHdxNgIADAMLIAIgATYCDCABIAI2AggMAgsgAygCGCEGAkAgAyADKAIMIgFHBEAgAygCCCICIAE2AgwgASACNgIIDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhAQwBCwNAIAIhByAEIgFBFGoiAigCACIEDQAgAUEQaiECIAEoAhAiBA0ACyAHQQA2AgALIAZFDQECQCADIAMoAhwiAkECdEHEmgJqIgQoAgBGBEAgBCABNgIAIAENAUGYmAJBmJgCKAIAQX4gAndxNgIADAMLIAZBEEEUIAYoAhAgA0YbaiABNgIAIAFFDQILIAEgBjYCGCADKAIQIgIEQCABIAI2AhAgAiABNgIYCyADKAIUIgJFDQEgASACNgIUIAIgATYCGAwBCyAFKAIEIgFBA3FBA0cNAEGcmAIgADYCACAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAMgBU8NACAFKAIEIgFBAXFFDQACQCABQQJxRQRAIAVBrJgCKAIARgRAQayYAiADNgIAQaCYAkGgmAIoAgAgAGoiADYCACADIABBAXI2AgQgA0GomAIoAgBHDQNBnJgCQQA2AgBBqJgCQQA2AgAPCyAFQaiYAigCAEYEQEGomAIgAzYCAEGcmAJBnJgCKAIAIABqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAFBeHEgAGohAAJAIAFB/wFNBEAgBSgCCCICIAFBA3YiBEEDdEG8mAJqRhogAiAFKAIMIgFGBEBBlJgCQZSYAigCAEF+IAR3cTYCAAwCCyACIAE2AgwgASACNgIIDAELIAUoAhghBgJAIAUgBSgCDCIBRwRAIAUoAggiAkGkmAIoAgBJGiACIAE2AgwgASACNgIIDAELAkAgBUEUaiICKAIAIgQNACAFQRBqIgIoAgAiBA0AQQAhAQwBCwNAIAIhByAEIgFBFGoiAigCACIEDQAgAUEQaiECIAEoAhAiBA0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiAkECdEHEmgJqIgQoAgBGBEAgBCABNgIAIAENAUGYmAJBmJgCKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiABNgIAIAFFDQELIAEgBjYCGCAFKAIQIgIEQCABIAI2AhAgAiABNgIYCyAFKAIUIgJFDQAgASACNgIUIAIgATYCGAsgAyAAQQFyNgIEIAAgA2ogADYCACADQaiYAigCAEcNAUGcmAIgADYCAA8LIAUgAUF+cTYCBCADIABBAXI2AgQgACADaiAANgIACyAAQf8BTQRAIABBA3YiAUEDdEG8mAJqIQACf0GUmAIoAgAiAkEBIAF0IgFxRQRAQZSYAiABIAJyNgIAIAAMAQsgACgCCAshAiAAIAM2AgggAiADNgIMIAMgADYCDCADIAI2AggPC0EfIQIgA0IANwIQIABB////B00EQCAAQQh2IgEgAUGA/j9qQRB2QQhxIgF0IgIgAkGA4B9qQRB2QQRxIgJ0IgQgBEGAgA9qQRB2QQJxIgR0QQ92IAEgAnIgBHJrIgFBAXQgACABQRVqdkEBcXJBHGohAgsgAyACNgIcIAJBAnRBxJoCaiEBAkACQAJAQZiYAigCACIEQQEgAnQiB3FFBEBBmJgCIAQgB3I2AgAgASADNgIAIAMgATYCGAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiABKAIAIQEDQCABIgQoAgRBeHEgAEYNAiACQR12IQEgAkEBdCECIAQgAUEEcWoiB0EQaigCACIBDQALIAcgAzYCECADIAQ2AhgLIAMgAzYCDCADIAM2AggMAQsgBCgCCCIAIAM2AgwgBCADNgIIIANBADYCGCADIAQ2AgwgAyAANgIIC0G0mAJBtJgCKAIAQQFrIgBBfyAAGzYCAAsLOwEBfyAAIAFBKGoiAiABEBIgAEEoaiACIAEQFSAAQdAAaiABQdAAahApIABB+ABqIAFB+ABqQfALEAoLlQEBBH8jAEEwayIFJAAgACABQShqIgMgARASIABBKGoiBCADIAEQFSAAQdAAaiIDIAAgAhAKIAQgBCACQShqEAogAEH4AGoiBiACQfgAaiABQfgAahAKIAAgAUHQAGogAkHQAGoQCiAFIAAgABASIAAgAyAEEBUgBCADIAQQEiADIAUgBhASIAYgBSAGEBUgBUEwaiQAC7kCAgN+An8jAEHABWsiBiQAAkAgAlANACAAIAApA0giBCACQgOGfCIDNwNIIABBQGsiByAHKQMAIAMgBFStfCACQj2IfDcDAEIAIQMgAkKAASAEQgOIQv8AgyIFfSIEVARAA0AgACADIAV8p2ogASADp2otAAA6AFAgA0IBfCIDIAJSDQAMAgsACwNAIAAgAyAFfKdqIAEgA6dqLQAAOgBQIANCAXwiAyAEUg0ACyAAIABB0ABqIAYgBkGABWoiBxBHIAEgBKdqIQEgAiAEfSICQv8AVgRAA0AgACABIAYgBxBHIAFBgAFqIQEgAkKAAX0iAkL/AFYNAAsLIAJQRQRAQgAhAwNAIAAgA6ciB2ogASAHai0AADoAUCADQgF8IgMgAlINAAsLIAZBwAUQCAsgBkHABWokAEEACxUAIABBATYCACAAQQRqQQBBJBAPGgsiAQF/IAEEQANAIAAgAmoQWzoAACACQQFqIgIgAUcNAAsLCwQAQRALhy4BC38jAEEQayILJAACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBBlJgCKAIAIgRBECAAQQtqQXhxIABBC0kbIgZBA3YiAHYiAUEDcQRAIAFBf3NBAXEgAGoiAkEDdCIFQcSYAmooAgAiAUEIaiEAAkAgASgCCCIDIAVBvJgCaiIFRgRAQZSYAiAEQX4gAndxNgIADAELIAMgBTYCDCAFIAM2AggLIAEgAkEDdCICQQNyNgIEIAEgAmoiASABKAIEQQFyNgIEDAwLIAZBnJgCKAIAIghNDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxIgBBACAAa3FBAWsiACAAQQx2QRBxIgB2IgFBBXZBCHEiAiAAciABIAJ2IgBBAnZBBHEiAXIgACABdiIAQQF2QQJxIgFyIAAgAXYiAEEBdkEBcSIBciAAIAF2aiICQQN0IgNBxJgCaigCACIBKAIIIgAgA0G8mAJqIgNGBEBBlJgCIARBfiACd3EiBDYCAAwBCyAAIAM2AgwgAyAANgIICyABQQhqIQAgASAGQQNyNgIEIAEgBmoiByACQQN0IgIgBmsiA0EBcjYCBCABIAJqIAM2AgAgCARAIAhBA3YiBUEDdEG8mAJqIQFBqJgCKAIAIQICfyAEQQEgBXQiBXFFBEBBlJgCIAQgBXI2AgAgAQwBCyABKAIICyEFIAEgAjYCCCAFIAI2AgwgAiABNgIMIAIgBTYCCAtBqJgCIAc2AgBBnJgCIAM2AgAMDAtBmJgCKAIAIgpFDQEgCkEAIAprcUEBayIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QcSaAmooAgAiASgCBEF4cSAGayEFIAEhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAGayICIAUgAiAFSSICGyEFIAAgASACGyEBIAAhAgwBCwsgASgCGCEJIAEgASgCDCIDRwRAIAEoAggiAEGkmAIoAgBJGiAAIAM2AgwgAyAANgIIDAsLIAFBFGoiAigCACIARQRAIAEoAhAiAEUNAyABQRBqIQILA0AgAiEHIAAiA0EUaiICKAIAIgANACADQRBqIQIgAygCECIADQALIAdBADYCAAwKC0F/IQYgAEG/f0sNACAAQQtqIgBBeHEhBkGYmAIoAgAiB0UNAEEAIAZrIQUCQAJAAkACf0EAIAZBgAJJDQAaQR8gBkH///8HSw0AGiAAQQh2IgAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAAgAXIgAnJrIgBBAXQgBiAAQRVqdkEBcXJBHGoLIghBAnRBxJoCaigCACICRQRAQQAhAAwBC0EAIQAgBkEAQRkgCEEBdmsgCEEfRht0IQEDQAJAIAIoAgRBeHEiCSAGayIEIAVPDQAgBCEFIAIhAyAGIAlHDQBBACEFIAIhAAwDCyAAIAIoAhQiBCAEIAIgAUEddkEEcWooAhAiAkYbIAAgBBshACABQQF0IQEgAg0ACwsgACADckUEQEEAIQNBAiAIdCIAQQAgAGtyIAdxIgBFDQMgAEEAIABrcUEBayIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QcSaAmooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAZrIgIgBUkhASACIAUgARshBSAAIAMgARshAyAAKAIQIgEEfyABBSAAKAIUCyIADQALCyADRQ0AIAVBnJgCKAIAIAZrTw0AIAMoAhghCCADIAMoAgwiAUcEQCADKAIIIgBBpJgCKAIASRogACABNgIMIAEgADYCCAwJCyADQRRqIgIoAgAiAEUEQCADKAIQIgBFDQMgA0EQaiECCwNAIAIhBCAAIgFBFGoiAigCACIADQAgAUEQaiECIAEoAhAiAA0ACyAEQQA2AgAMCAsgBkGcmAIoAgAiAU0EQEGomAIoAgAhAAJAIAEgBmsiAkEQTwRAQZyYAiACNgIAQaiYAiAAIAZqIgM2AgAgAyACQQFyNgIEIAAgAWogAjYCACAAIAZBA3I2AgQMAQtBqJgCQQA2AgBBnJgCQQA2AgAgACABQQNyNgIEIAAgAWoiASABKAIEQQFyNgIECyAAQQhqIQAMCgsgBkGgmAIoAgAiAUkEQEGgmAIgASAGayIBNgIAQayYAkGsmAIoAgAiACAGaiICNgIAIAIgAUEBcjYCBCAAIAZBA3I2AgQgAEEIaiEADAoLQQAhACAGQS9qIgUCf0HsmwIoAgAEQEH0mwIoAgAMAQtB+JsCQn83AgBB8JsCQoCggICAgAQ3AgBB7JsCIAtBDGpBcHFB2KrVqgVzNgIAQYCcAkEANgIAQdCbAkEANgIAQYAgCyICaiIEQQAgAmsiB3EiAiAGTQ0JQcybAigCACIDBEBBxJsCKAIAIgggAmoiCSAITSADIAlJcg0KC0HQmwItAABBBHENBAJAAkBBrJgCKAIAIgMEQEHUmwIhAANAIAMgACgCACIITwRAIAggACgCBGogA0sNAwsgACgCCCIADQALC0EAECoiAUF/Rg0FIAIhBEHwmwIoAgAiAEEBayIDIAFxBEAgAiABayABIANqQQAgAGtxaiEECyAEIAZNIARB/v///wdLcg0FQcybAigCACIABEBBxJsCKAIAIgMgBGoiByADTSAAIAdJcg0GCyAEECoiACABRw0BDAcLIAQgAWsgB3EiBEH+////B0sNBCAEECoiASAAKAIAIAAoAgRqRg0DIAEhAAsgAEF/RiAGQTBqIARNckUEQEH0mwIoAgAiASAFIARrakEAIAFrcSIBQf7///8HSwRAIAAhAQwHCyABECpBf0cEQCABIARqIQQgACEBDAcLQQAgBGsQKhoMBAsgACIBQX9HDQUMAwtBACEDDAcLQQAhAQwFCyABQX9HDQILQdCbAkHQmwIoAgBBBHI2AgALIAJB/v///wdLDQEgAhAqIgFBf0ZBABAqIgBBf0ZyIAAgAU1yDQEgACABayIEIAZBKGpNDQELQcSbAkHEmwIoAgAgBGoiADYCAEHImwIoAgAgAEkEQEHImwIgADYCAAsCQAJAAkBBrJgCKAIAIgMEQEHUmwIhAANAIAEgACgCACICIAAoAgQiBWpGDQIgACgCCCIADQALDAILQaSYAigCACIAQQAgACABTRtFBEBBpJgCIAE2AgALQQAhAEHYmwIgBDYCAEHUmwIgATYCAEG0mAJBfzYCAEG4mAJB7JsCKAIANgIAQeCbAkEANgIAA0AgAEEDdCICQcSYAmogAkG8mAJqIgM2AgAgAkHImAJqIAM2AgAgAEEBaiIAQSBHDQALQaCYAiAEQShrIgBBeCABa0EHcUEAIAFBCGpBB3EbIgJrIgM2AgBBrJgCIAEgAmoiAjYCACACIANBAXI2AgQgACABakEoNgIEQbCYAkH8mwIoAgA2AgAMAgsgAC0ADEEIcSACIANLciABIANNcg0AIAAgBCAFajYCBEGsmAIgA0F4IANrQQdxQQAgA0EIakEHcRsiAGoiATYCAEGgmAJBoJgCKAIAIARqIgIgAGsiADYCACABIABBAXI2AgQgAiADakEoNgIEQbCYAkH8mwIoAgA2AgAMAQtBpJgCKAIAIAFLBEBBpJgCIAE2AgALIAEgBGohAkHUmwIhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB1JsCIQADQCADIAAoAgAiAk8EQCACIAAoAgRqIgUgA0sNAwsgACgCCCEADAALAAsgACABNgIAIAAgACgCBCAEajYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiCCAGQQNyNgIEIAJBeCACa0EHcUEAIAJBCGpBB3EbaiIEIAYgCGoiB2shBiADIARGBEBBrJgCIAc2AgBBoJgCQaCYAigCACAGaiIANgIAIAcgAEEBcjYCBAwDCyAEQaiYAigCAEYEQEGomAIgBzYCAEGcmAJBnJgCKAIAIAZqIgA2AgAgByAAQQFyNgIEIAAgB2ogADYCAAwDCyAEKAIEIgBBA3FBAUYEQCAAQXhxIQkCQCAAQf8BTQRAIAQoAggiASAAQQN2IgJBA3RBvJgCakYaIAEgBCgCDCIARgRAQZSYAkGUmAIoAgBBfiACd3E2AgAMAgsgASAANgIMIAAgATYCCAwBCyAEKAIYIQMCQCAEIAQoAgwiAUcEQCAEKAIIIgAgATYCDCABIAA2AggMAQsCQCAEQRRqIgAoAgAiBQ0AIARBEGoiACgCACIFDQBBACEBDAELA0AgACECIAUiAUEUaiIAKAIAIgUNACABQRBqIQAgASgCECIFDQALIAJBADYCAAsgA0UNAAJAIAQgBCgCHCIAQQJ0QcSaAmoiAigCAEYEQCACIAE2AgAgAQ0BQZiYAkGYmAIoAgBBfiAAd3E2AgAMAgsgA0EQQRQgAygCECAERhtqIAE2AgAgAUUNAQsgASADNgIYIAQoAhAiAARAIAEgADYCECAAIAE2AhgLIAQoAhQiAEUNACABIAA2AhQgACABNgIYCyAGIAlqIQYgBCAJaiEECyAEIAQoAgRBfnE2AgQgByAGQQFyNgIEIAYgB2ogBjYCACAGQf8BTQRAIAZBA3YiAUEDdEG8mAJqIQACf0GUmAIoAgAiAkEBIAF0IgFxRQRAQZSYAiABIAJyNgIAIAAMAQsgACgCCAshASAAIAc2AgggASAHNgIMIAcgADYCDCAHIAE2AggMAwtBHyEAIAZB////B00EQCAGQQh2IgAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAAgAXIgAnJrIgBBAXQgBiAAQRVqdkEBcXJBHGohAAsgByAANgIcIAdCADcCECAAQQJ0QcSaAmohAQJAQZiYAigCACICQQEgAHQiA3FFBEBBmJgCIAIgA3I2AgAgASAHNgIAIAcgATYCGAwBCyAGQQBBGSAAQQF2ayAAQR9GG3QhACABKAIAIQEDQCABIgIoAgRBeHEgBkYNAyAAQR12IQEgAEEBdCEAIAIgAUEEcWoiAygCECIBDQALIAMgBzYCECAHIAI2AhgLIAcgBzYCDCAHIAc2AggMAgtBoJgCIARBKGsiAEF4IAFrQQdxQQAgAUEIakEHcRsiAmsiBzYCAEGsmAIgASACaiICNgIAIAIgB0EBcjYCBCAAIAFqQSg2AgRBsJgCQfybAigCADYCACADIAVBJyAFa0EHcUEAIAVBJ2tBB3EbakEvayIAIAAgA0EQakkbIgJBGzYCBCACQdybAikCADcCECACQdSbAikCADcCCEHcmwIgAkEIajYCAEHYmwIgBDYCAEHUmwIgATYCAEHgmwJBADYCACACQRhqIQADQCAAQQc2AgQgAEEIaiEBIABBBGohACABIAVJDQALIAIgA0YNAyACIAIoAgRBfnE2AgQgAyACIANrIgVBAXI2AgQgAiAFNgIAIAVB/wFNBEAgBUEDdiIBQQN0QbyYAmohAAJ/QZSYAigCACICQQEgAXQiAXFFBEBBlJgCIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwEC0EfIQAgA0IANwIQIAVB////B00EQCAFQQh2IgAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAAgAXIgAnJrIgBBAXQgBSAAQRVqdkEBcXJBHGohAAsgAyAANgIcIABBAnRBxJoCaiEBAkBBmJgCKAIAIgJBASAAdCIEcUUEQEGYmAIgAiAEcjYCACABIAM2AgAgAyABNgIYDAELIAVBAEEZIABBAXZrIABBH0YbdCEAIAEoAgAhAQNAIAEiAigCBEF4cSAFRg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIEKAIQIgENAAsgBCADNgIQIAMgAjYCGAsgAyADNgIMIAMgAzYCCAwDCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLIAhBCGohAAwFCyACKAIIIgAgAzYCDCACIAM2AgggA0EANgIYIAMgAjYCDCADIAA2AggLQaCYAigCACIAIAZNDQBBoJgCIAAgBmsiATYCAEGsmAJBrJgCKAIAIgAgBmoiAjYCACACIAFBAXI2AgQgACAGQQNyNgIEIABBCGohAAwDC0HglwJBMDYCAEEAIQAMAgsCQCAIRQ0AAkAgAygCHCIAQQJ0QcSaAmoiAigCACADRgRAIAIgATYCACABDQFBmJgCIAdBfiAAd3EiBzYCAAwCCyAIQRBBFCAIKAIQIANGG2ogATYCACABRQ0BCyABIAg2AhggAygCECIABEAgASAANgIQIAAgATYCGAsgAygCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgBUEPTQRAIAMgBSAGaiIAQQNyNgIEIAAgA2oiACAAKAIEQQFyNgIEDAELIAMgBkEDcjYCBCADIAZqIgQgBUEBcjYCBCAEIAVqIAU2AgAgBUH/AU0EQCAFQQN2IgFBA3RBvJgCaiEAAn9BlJgCKAIAIgJBASABdCIBcUUEQEGUmAIgASACcjYCACAADAELIAAoAggLIQEgACAENgIIIAEgBDYCDCAEIAA2AgwgBCABNgIIDAELQR8hACAFQf///wdNBEAgBUEIdiIAIABBgP4/akEQdkEIcSIAdCIBIAFBgOAfakEQdkEEcSIBdCICIAJBgIAPakEQdkECcSICdEEPdiAAIAFyIAJyayIAQQF0IAUgAEEVanZBAXFyQRxqIQALIAQgADYCHCAEQgA3AhAgAEECdEHEmgJqIQECQAJAIAdBASAAdCICcUUEQEGYmAIgAiAHcjYCACABIAQ2AgAMAQsgBUEAQRkgAEEBdmsgAEEfRht0IQAgASgCACECA0AgAiIBKAIEQXhxIAVGDQIgAEEddiECIABBAXQhACABIAJBBHFqIgcoAhAiAg0ACyAHIAQ2AhALIAQgATYCGCAEIAQ2AgwgBCAENgIIDAELIAEoAggiACAENgIMIAEgBDYCCCAEQQA2AhggBCABNgIMIAQgADYCCAsgA0EIaiEADAELAkAgCUUNAAJAIAEoAhwiAEECdEHEmgJqIgIoAgAgAUYEQCACIAM2AgAgAw0BQZiYAiAKQX4gAHdxNgIADAILIAlBEEEUIAkoAhAgAUYbaiADNgIAIANFDQELIAMgCTYCGCABKAIQIgAEQCADIAA2AhAgACADNgIYCyABKAIUIgBFDQAgAyAANgIUIAAgAzYCGAsCQCAFQQ9NBEAgASAFIAZqIgBBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQMAQsgASAGQQNyNgIEIAEgBmoiAyAFQQFyNgIEIAMgBWogBTYCACAIBEAgCEEDdiIHQQN0QbyYAmohAEGomAIoAgAhAgJ/QQEgB3QiByAEcUUEQEGUmAIgBCAHcjYCACAADAELIAAoAggLIQQgACACNgIIIAQgAjYCDCACIAA2AgwgAiAENgIIC0GomAIgAzYCAEGcmAIgBTYCAAsgAUEIaiEACyALQRBqJAAgAAtlAQN/IAJFBEBBAA8LAkAgAC0AACIDRQ0AA0ACQCABLQAAIgVFDQAgAkEBayICRSADIAVHcg0AIAFBAWohASAALQABIQMgAEEBaiEAIAMNAQwCCwsgAyEECyAEQf8BcSABLQAAawt/AQN/IAAhAQJAIABBA3EEQANAIAEtAABFDQIgAUEBaiIBQQNxDQALCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQYGChAhrcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrCygAIAAgASACEFUgAEEoaiABQShqIAIQVSAAQdAAaiABQdAAaiACEFULEQAgACABQdSRAigCABEDABoLEQAgACABQcyRAigCABEDABoLCgAgACABIAIQFwsRACAAIAFzQf8BcUEBa0EfdguwAQEDfyMAQcAFayICJAACQCAAKAJIQQN2Qf8AcSIDQe8ATQRAIAAgA2pB0ABqQeCPAkHwACADaxARGgwBCyAAQdAAaiIEIANqQeCPAkGAASADaxARGiAAIAQgAiACQYAFahBHIARBAEHwABAPGgsgAEHAAWogAEFAa0EQEKUBIAAgAEHQAGogAiACQYAFahBHIAEgAEHAABClASACQcAFEAggAEHQARAIIAJBwAVqJAALCAAgAEEgEB0LRgEEfiABKQIIIQIgASkCECEDIAEpAhghBCABKQIAIQUgACABKQIgNwIgIAAgBDcCGCAAIAM3AhAgACACNwIIIAAgBTcCAAtSAQJ/QbCRAigCACIBIABBA2pBfHEiAmohAAJAIAJBACAAIAFNGw0AIAA/AEEQdEsEQCAAEAJFDQELQbCRAiAANgIAIAEPC0HglwJBMDYCAEF/CwwAIAAgAUGACBARGgv6BQEKfyMAQTBrIgIkACACIAEoAiAiAyABKAIcIgQgASgCGCIFIAEoAhQiBiABKAIQIgcgASgCDCIIIAEoAggiCSABKAIEIgogASgCACILIAEoAiQiAUETbEGAgIAIakEZdmpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnVqQRl1akEadSABakEZdUETbCALaiILQf///x9xNgIAIAIgCiALQRp1aiIKQf///w9xNgIEIAIgCSAKQRl1aiIJQf///x9xNgIIIAIgCCAJQRp1aiIIQf///w9xNgIMIAIgByAIQRl1aiIHQf///x9xNgIQIAIgBiAHQRp1aiIGQf///w9xNgIUIAIgBSAGQRl1aiIFQf///x9xNgIYIAIgBCAFQRp1aiIEQf///w9xNgIcIAIgAyAEQRl1aiIDQf///x9xNgIgIAIgASADQRp1akH///8PcTYCJCAAIAIoAgAiAToAACAAIAFBEHY6AAIgACABQQh2OgABIAAgAigCBCIDQQ52OgAFIAAgA0EGdjoABCAAIANBAnQgAUEYdnI6AAMgACACKAIIIgFBDXY6AAggACABQQV2OgAHIAAgAUEDdCADQRZ2cjoABiAAIAIoAgwiA0ELdjoACyAAIANBA3Y6AAogACADQQV0IAFBFXZyOgAJIAAgAigCECIBQRJ2OgAPIAAgAUEKdjoADiAAIAFBAnY6AA0gACABQQZ0IANBE3ZyOgAMIAAgAigCFCIBOgAQIAAgAUEQdjoAEiAAIAFBCHY6ABEgACACKAIYIgNBD3Y6ABUgACADQQd2OgAUIAAgA0EBdCABQRh2cjoAEyAAIAIoAhwiAUENdjoAGCAAIAFBBXY6ABcgACABQQN0IANBF3ZyOgAWIAAgAigCICIDQQx2OgAbIAAgA0EEdjoAGiAAIANBBHQgAUEVdnI6ABkgACACKAIkIgFBEnY6AB8gACABQQp2OgAeIAAgAUECdjoAHSAAIAFBBnQgA0EUdnI6ABwgAkEwaiQACzEBA38DQCAAIAJBA3QiA2oiBCAEKQMAIAEgA2opAwCFNwMAIAJBAWoiAkGAAUcNAAsLKQAgBK1CgICAgBAgAkI/fEIGiH1WBEAQFAALIAAgASACIAMgBCAFEFwLBQBBwAALCwAgAEEAQSgQDxoLyQcCHH4OfyMAQTBrIiEkACAAIAEQDSAAQdAAaiIgIAFBKGoiJRANIABB+ABqIh4gASgCXCImQQF0rCIHIAEoAlQiJ0EBdKwiBH4gASgCWCIorCIOIA5+fCABKAJgIimsIgggASgCUCIqQQF0rCIFfnwgASgCbCIiQSZsrCIPICKsIhN+fCABKAJwIitBE2ysIgkgASgCaCIjQQF0rH58IAEoAnQiH0EmbKwiBiABKAJkIiRBAXSsIgt+fEIBhiIWQoCAgBB8IhdCGocgBCAIfiAoQQF0rCIMICasIhR+fCAkrCIRIAV+fCAJICJBAXSsIhB+fCAGICOsIgp+fEIBhnwiGEKAgIAIfCIZQhmHIAcgFH4gCCAMfnwgBCALfnwgBSAKfnwgCSArrCISfnwgBiAQfnxCAYZ8IgIgAkKAgIAQfCINQoCAgOAPg30+AhggHiAkQSZsrCARfiAqrCICIAJ+fCAjQRNsrCIDIClBAXSsIhV+fCAHIA9+fCAJIAx+fCAEIAZ+fEIBhiIaQoCAgBB8IhtCGocgAyALfiAFICesIgJ+fCAIIA9+fCAHIAl+fCAGIA5+fEIBhnwiHEKAgIAIfCIdQhmHIAUgDn4gAiAEfnwgAyAKfnwgCyAPfnwgCSAVfnwgBiAHfnxCAYZ8IgIgAkKAgIAQfCIDQoCAgOAPg30+AgggHiAMIBF+IAcgCH58IAQgCn58IAUgE358IAYgEn58QgGGIA1CGod8IgIgAkKAgIAIfCINQoCAgPAPg30+AhwgHiAFIBR+IAQgDn58IAogD358IAkgC358IAYgCH58QgGGIANCGod8IgIgAkKAgIAIfCIDQoCAgPAPg30+AgwgHiAKIAx+IAggCH58IAcgC358IAQgEH58IAUgEn58IAYgH6wiEH58QgGGIA1CGYd8IgIgAkKAgIAQfCINQoCAgOAPg30+AiAgHiAYIBlCgICA8A+DfSAWIBdCgICAYIN9IANCGYd8IgNCgICAEHwiAkIaiHw+AhQgHiADIAJCgICA4A+DfT4CECAeIAcgCn4gESAVfnwgDCATfnwgBCASfnwgBSAQfnxCAYYgDUIah3wiAiACQoCAgAh8IgJCgICA8A+DfT4CJCAeIBwgHUKAgIDwD4N9IBogG0KAgIBgg30gAkIZh0ITfnwiA0KAgIAQfCICQhqIfD4CBCAeIAMgAkKAgIDgD4N9PgIAIABBKGoiHyABICUQEiAhIB8QDSAfICAgABASICAgICAAEBUgACAhIB8QFSAeIB4gIBAVICFBMGokAAsEAEEACxsAIAFCgICAgBBaBEAQFAALIAAgASACIAMQXQviJQIQfgt/IwBBQGoiHCQAAkAgCBAfIiJFBEBBaiECDAELIBxCADcDICAcQgA3AxggHCAGNgIUIBwgBTYCECAcIAQ2AgwgHCADNgIIIBwgCDYCBCAcICI2AgAgHEEANgI4IBwgAjYCNCAcIAI2AjAgHCABNgIsIBwgADYCKCMAQTBrIgIkAAJAIBwQWCIADQBBZiEAIAtBA2tBfkkNACAcKAIsIQEgHCgCMCEAIAJBADYCACAcKAIoIQMgAiAANgIcIAJBfzYCDCACIAM2AgggAiABIABBA3QiAyABIANLGyAAQQJ0IgFuIgA2AhQgAiAAQQJ0NgIYIAIgACABbDYCECAcKAI0IQAgAiALNgIkIAIgADYCICMAQdAAayIEJABBZyEDAkAgAkUgHEVyDQAgAiACKAIUQQN0EB8iADYCBCAARQRAQWohAwwBCyACKAIQIQAjAEEQayIGJABBaiEDAkAgAkUgAEVyDQAgAEEKdCIFIABuQYAIRw0AIAJBDBAfIgA2AgAgAEUNACAAQgA3AgBB4JcCIAVBgH9LBH9BMAUCfyAFQYB/TwRAQeCXAkEwNgIAQQAMAQtBAEEQIAVBC2pBeHEgBUELSRsiIEHMAGoQHyIARQ0AGiAAQQhrIQECQCAAQT9xRQRAIAEhAAwBCyAAQQRrIiMoAgAiHUF4cSAAQT9qQUBxQQhrIgBBAEHAACAAIAFrQQ9LG2oiACABayIeayEfIB1BA3FFBEAgASgCACEBIAAgHzYCBCAAIAEgHmo2AgAMAQsgACAfIAAoAgRBAXFyQQJyNgIEIAAgH2oiHyAfKAIEQQFyNgIEICMgHiAjKAIAQQFxckECcjYCACABIB5qIh8gHygCBEEBcjYCBCABIB4QfQsCQCAAKAIEIgFBA3FFDQAgAUF4cSIeICBBEGpNDQAgACAgIAFBAXFyQQJyNgIEIAAgIGoiASAeICBrIiBBA3I2AgQgACAeaiIeIB4oAgRBAXI2AgQgASAgEH0LIABBCGoLIgAEfyAGIAA2AgxBAAVBMAsLIgA2AgACQAJAIAAEQCAGQQA2AgwMAQsgBigCDCIADQELIAIoAgAQGCACQQA2AgAMAQsgAigCACAANgIAIAIoAgAgADYCBCACKAIAIAU2AghBACEDCyAGQRBqJAAgAwRAIAIgHCgCOBCJAQwBCyACKAIkIQUjACIAIQYgAEHAA2tBQHEiACQAIARFIBxFckUEQCAAQUBrIgNBAEEAQcAAEE0aIABBPGoiASAcKAIwEAkgAyABQgQQFxogASAcKAIEEAkgAyABQgQQFxogASAcKAIsEAkgAyABQgQQFxogASAcKAIoEAkgAyABQgQQFxogAUETEAkgAyABQgQQFxogASAFEAkgAEFAayAAQTxqQgQQFxogASAcKAIMEAkgAEFAayAAQTxqQgQQFxoCQCAcKAIIIgFFDQAgAEFAayABIBw1AgwQFxogHC0AOEEBcUUNACAcKAIIIBwoAgwQCCAcQQA2AgwLIABBPGoiASAcKAIUEAkgAEFAayABQgQQFxogHCgCECIBBEAgAEFAayABIBw1AhQQFxoLIABBPGoiASAcKAIcEAkgAEFAayABQgQQFxoCQCAcKAIYIgFFDQAgAEFAayABIBw1AhwQFxogHC0AOEECcUUNACAcKAIYIBwoAhwQCCAcQQA2AhwLIABBPGoiASAcKAIkEAkgAEFAayABQgQQFxogHCgCICIBBEAgAEFAayABIBw1AiQQFxoLIABBQGsgBEHAABBMGgsgBiQAIARBQGtBCBAIQQAhAyMAQYAIayIAJAAgAigCHARAIARBxABqIQUgBEFAayEBA0AgAUEAEAkgBSADEAkgAEGACCAEQcgAEFogAigCACgCBCACKAIYIANsQQp0aiAAEIgBIAFBARAJIABBgAggBEHIABBaIAIoAgAoAgQgAigCGCADbEEKdGpBgAhqIAAQiAEgA0EBaiIDIAIoAhxJDQALCyAAQYAIEAggAEGACGokACAEQcgAEAhBACEDCyAEQdAAaiQAIAMiAA0AIAIoAggEQANAQQAhICMAQSBrIgMkAAJAIAJFDQAgAigCHEUNACADICU2AhBBASEBA0AgAyAgOgAYQQAhHkEAIQAgAQRAA0AgA0EANgIcIAMgAykDGDcDCCADIB42AhQgAyADKQMQNwMAQQAhAQJAIAJFDQACfwJAIAIoAiRBAkcEQCACKAIEIR8MAQsgAigCBCEfQQEgAygCACIFIAMtAAgiBEEBS3INARoLIwBBgCBrIgAkACAAQYAYahA+IABBgBBqED4CQCACRSADRXINACAAIAM1AgA3A4AQIAAgAzUCBDcDiBAgACADMQAINwOQECAAIAI1AhA3A5gQIAAgAjUCCDcDoBAgACACNQIkNwOoECACKAIURQ0AA0AgAUH/AHEiBEUEQCAAIAApA7AQQgF8NwOwECAAED4gAEGACGoiBRA+IABBgBhqIgYgAEGAEGogABBZIAYgACAFEFkLIB8gAUEDdGogAEGACGogBEEDdGopAwA3AwAgAUEBaiIBIAIoAhRJDQALCyAAQYAgaiQAIAMtAAghBCADKAIAIQVBAAshJkEAIARB/wFxIgFFQQF0IAUbIgUgAigCFCIETw0AQX8gAigCGCIAQQFrIAUgACADKAIEbGogASAEbGoiBCAAcBsgBGohAQNAIARBAWsgASAEIABwQQFGGyEjIAIoAhwhHQJ/ICZFBEAgAigCACEBIB8gBUEDdGoMAQsgAigCACIBKAIEICNBCnRqCykDACEQIAMgBTYCDCABKAIEIgYgACAQQiCIpyAdcK0iDCAMIAM1AgQiDCADLQAIGyADKAIAIiEbIg2nbEEKdGoCfyAQpyEkIAwgDVEhAAJ+IAMoAgBFBEAgAy0ACCIBRQRAIAMoAgxBAWshAEIADAILIAIoAhQgAWwhASADKAIMIR0gAARAIAEgHWpBAWshAEIADAILIAEgHUVrIQBCAAwBCyACKAIUIQEgAigCGCEdAn8gAARAIAMoAgwgHSABQX9zamoMAQsgHSABayADKAIMRWsLIQBCACADLQAIIh1BA0YNABogASAdQQFqbK0LIRAgECAAQQFrrXwgAK0gJK0iECAQfkIgiH5CIIh9IAI1AhiCp0EKdAtqIQAgBiAjQQp0aiEBIAYgBEEKdGohHQJAICEEQCABIAAgHRBZDAELIwBBgBBrIgYkACAGQYAIaiIhIAAQKyAhIAEQLSAGICEQK0EAISFBACEAA0AgBkGACGogAEEHdGoiAUFAayIkKQMAIAEpA2AgASkDACABKQMgIhAQBiIMhUEgEAUiDRAGIg4gEIVBGBAFIRAgECAOIA0gDCAQEAYiD4VBEBAFIhIQBiIZhUE/EAUhECABKQNIIAEpA2ggASkDCCABKQMoIgwQBiINhUEgEAUiDhAGIhMgDIVBGBAFIQwgDCATIA4gDSAMEAYiE4VBEBAFIhoQBiIbhUE/EAUhDCABKQNQIAEpA3AgASkDECABKQMwIg0QBiIOhUEgEAUiFBAGIhUgDYVBGBAFIQ0gDSAVIBQgDiANEAYiFYVBEBAFIhQQBiIWhUE/EAUhDSABKQNYIAEpA3ggASkDGCABKQM4Ig4QBiIXhUEgEAUiERAGIhggDoVBGBAFIQ4gDiAYIBEgFyAOEAYiF4VBEBAFIhEQBiIYhUE/EAUhDiABIA8gDBAGIg8gDCAWIA8gEYVBIBAFIg8QBiIWhUEYEAUiDBAGIhE3AwAgASAPIBGFQRAQBSIPNwN4IAEgFiAPEAYiDzcDUCABIAwgD4VBPxAFNwMoIAEgEyANEAYiDCANIBggDCAShUEgEAUiDBAGIg+FQRgQBSINEAYiEjcDCCABIAwgEoVBEBAFIgw3A2AgASAPIAwQBiIMNwNYIAEgDCANhUE/EAU3AzAgASAVIA4QBiIMIA4gGSAMIBqFQSAQBSIMEAYiDYVBGBAFIg4QBiIPNwMQIAEgDCAPhUEQEAUiDDcDaCAkIA0gDBAGIgw3AwAgASAMIA6FQT8QBTcDOCABIBcgEBAGIgwgECAbIAwgFIVBIBAFIgwQBiINhUEYEAUiEBAGIg43AxggASAMIA6FQRAQBSIMNwNwIAEgDSAMEAYiDDcDSCABIAwgEIVBPxAFNwMgIABBAWoiAEEIRw0ACwNAIAZBgAhqICFBBHRqIgApA4AEIAApA4AGIAApAwAgACkDgAIiEBAGIgyFQSAQBSINEAYiDiAQhUEYEAUhECAQIA4gDSAMIBAQBiIPhUEQEAUiEhAGIhmFQT8QBSEQIAApA4gEIAApA4gGIAApAwggACkDiAIiDBAGIg2FQSAQBSIOEAYiEyAMhUEYEAUhDCAMIBMgDiANIAwQBiIThUEQEAUiGhAGIhuFQT8QBSEMIAApA4AFIAApA4AHIAApA4ABIAApA4ADIg0QBiIOhUEgEAUiFBAGIhUgDYVBGBAFIQ0gDSAVIBQgDiANEAYiFYVBEBAFIhQQBiIWhUE/EAUhDSAAKQOIBSAAKQOIByAAKQOIASAAKQOIAyIOEAYiF4VBIBAFIhEQBiIYIA6FQRgQBSEOIA4gGCARIBcgDhAGIheFQRAQBSIREAYiGIVBPxAFIQ4gACAPIAwQBiIPIAwgFiAPIBGFQSAQBSIPEAYiFoVBGBAFIgwQBiIRNwMAIAAgDyARhUEQEAUiDzcDiAcgACAWIA8QBiIPNwOABSAAIAwgD4VBPxAFNwOIAiAAIBMgDRAGIgwgDSAYIAwgEoVBIBAFIgwQBiIPhUEYEAUiDRAGIhI3AwggACAMIBKFQRAQBSIMNwOABiAAIA8gDBAGIgw3A4gFIAAgDCANhUE/EAU3A4ADIAAgFSAOEAYiDCAOIBkgDCAahUEgEAUiDBAGIg2FQRgQBSIOEAYiDzcDgAEgACAMIA+FQRAQBSIMNwOIBiAAIA0gDBAGIgw3A4AEIAAgDCAOhUE/EAU3A4gDIAAgFyAQEAYiDCAQIBsgDCAUhUEgEAUiDBAGIg2FQRgQBSIQEAYiDjcDiAEgACAMIA6FQRAQBSIMNwOAByAAIA0gDBAGIgw3A4gEIAAgDCAQhUE/EAU3A4ACICFBAWoiIUEIRw0ACyAdIAYQKyAdIAZBgAhqEC0gBkGAEGokAAsgBUEBaiIFIAIoAhRPDQEgBEEBaiEEICNBAWohASACKAIYIQAMAAsACyAeQQFqIh4gAigCHCIASQ0ACwsgACEBICBBAWoiIEEERw0ACwsgA0EgaiQAICVBAWoiJSACKAIISQ0ACwtBACEDIwBBgBBrIgEkACAcRSACRXJFBEAgAUGACGogAigCACgCBCACKAIYQQp0akGACGsQKyACKAIcQQJPBEBBASEAA0AgAUGACGogAigCACgCBCACKAIYIgQgACAEbGpBCnRqQYAIaxAtIABBAWoiACACKAIcSQ0ACwsgAUGACGohAANAIAEgA0EDdCIEaiAAIARqKQMAEBAgA0EBaiIDQYABRw0ACyAcKAIAIBwoAgQgAUGACBBaIABBgAgQCCABQYAIEAggAiAcKAI4EIkBCyABQYAQaiQAQQAhAAsgAkEwaiQAAkAgACICBEAgIiAIEAgMAQsCQCAJRSAKRXINACMAQRBrIgAkAEFhIQECQAJAAn8CQAJAIAtBAWsOAgEABAsgCkENSQ0CIAlBvwopAAA3AAAgCUHECikAADcABUEMIQJBdAwBCyAKQQxJDQEgCUGzCikAADcAACAJQbsKKAAANgAIQQshAkF1CyEDIBwQWCIBDQEgAEEFaiIBQRMQPyADIApqIgMgARAhIgFNDQAgAiAJaiAAQQVqIAFBAWoQESECIAMgAWsiA0EESQ0AIAEgAmoiAkGk2vUBNgAAIABBBWoiASAcKAIsED8gA0EDayIDIAEQISIBTQ0AIAJBA2ogAEEFaiABQQFqEBEhAiADIAFrIgNBBEkNACABIAJqIgJBrOj1ATYAACAAQQVqIgEgHCgCKBA/IANBA2siAyABECEiAU0NACACQQNqIABBBWogAUEBahARIQIgAyABayIDQQRJDQAgASACaiICQazg9QE2AAAgAEEFaiIBIBwoAjAQPyADQQNrIgMgARAhIgFNDQAgAkEDaiAAQQVqIAFBAWoQESECIAMgAWsiA0ECSQ0AIAEgAmoiAUEkOwAAIAFBAWoiAiADQQFrIgMgHCgCECAcKAIUQQMQaEUNAEFhIQEgAyACECEiA2siBEECSQ0BIAIgA2oiAUEkOwAAQQBBYSABQQFqIARBAWsgHCgCACAcKAIEQQMQaBshAQwBC0FhIQELIABBEGokACABRQ0AICIgCBAIIAkgChAIQWEhAgwBCyAHBEAgByAiIAgQERoLICIgCBAIQQAhAgsgIhAYCyAcQUBrJAAgAgsrAQF/IwBB0AFrIgMkACADEDYgAyABIAIQGxogAyAAECcgA0HQAWokAEEACxwAIABCADcDQCAAQgA3A0ggAEGgigJBwAAQERoLBABBbwvBAQIFfwF+IAJQRQRAIAJBgAIgACgA4AIiBGsiA60iCFYEQCAAQeABaiEGIABB4ABqIQUDQCAAIARqQeAAaiABIAMQERogACAAKADgAiADajYA4AIgAEKAARBxIAAgBRB0IAUgBkGAARARGiAAIAAoAOACIgdBgAFrIgQ2AOACIAEgA2ohASACIAh9IgJBgAMgB2siA60iCFYNAAsLIAAgBGpB4ABqIAEgAqciARARGiAAIAAoAOACIAFqNgDgAgtBAAupAwEVfyABKAIEIQsgACgCBCEMIAEoAgghDSAAKAIIIQ4gASgCDCEPIAAoAgwhAyABKAIQIRAgACgCECEEIAEoAhQhESAAKAIUIQUgASgCGCESIAAoAhghBiABKAIcIRMgACgCHCEHIAEoAiAhFCAAKAIgIQggASgCJCEVIAAoAiQhCSAAQQAgAmsiAiABKAIAIhYgACgCACIKc3EiFyAKczYCACAAIAkgCSAVcyACcSIKczYCJCAAIAggCCAUcyACcSIJczYCICAAIAcgByATcyACcSIIczYCHCAAIAYgBiAScyACcSIHczYCGCAAIAUgBSARcyACcSIGczYCFCAAIAQgBCAQcyACcSIFczYCECAAIAMgAyAPcyACcSIEczYCDCAAIA4gDSAOcyACcSIDczYCCCAAIAwgCyAMcyACcSIAczYCBCABIAogFXM2AiQgASAJIBRzNgIgIAEgCCATczYCHCABIAcgEnM2AhggASAGIBFzNgIUIAEgBSAQczYCECABIAQgD3M2AgwgASADIA1zNgIIIAEgACALczYCBCABIBYgF3M2AgALQQECfyMAQYABayIDJAAgA0EIaiICIAEQKSACQShqIAFBKGoQKSACQdAAaiABQdAAahApIAAgAhAxIANBgAFqJAALMgEBfyAAIAEgAUH4AGoiAhAKIABBKGogAUEoaiABQdAAaiIBEAogAEHQAGogASACEAoL4AMBA38jAEHAAWsiAiQAIAJBkAFqIgQgARANIAJB4ABqIgMgBBANIAMgAxANIAMgASADEAogBCAEIAMQCiACQTBqIgEgBBANIAMgAyABEAogASADEA1BASEBA0AgAkEwaiIDIAMQDSABQQFqIgFBBUcNAAsgAkHgAGoiASACQTBqIgMgARAKIAMgARANQQEhAQNAIAJBMGoiAyADEA0gAUEBaiIBQQpHDQALIAJBMGoiASABIAJB4ABqEAogAiABEA1BASEBA0AgAiACEA0gAUEBaiIBQRRHDQALIAJBMGoiASACIAEQCkEBIQEDQCACQTBqIgMgAxANIAFBAWoiAUELRw0ACyACQeAAaiIBIAJBMGoiAyABEAogAyABEA1BASEBA0AgAkEwaiIDIAMQDSABQQFqIgFBMkcNAAsgAkEwaiIBIAEgAkHgAGoQCiACIAEQDUEBIQEDQCACIAIQDSABQQFqIgFB5ABHDQALIAJBMGoiASACIAEQCkEBIQEDQCACQTBqIgMgAxANIAFBAWoiAUEzRw0ACyACQeAAaiIBIAJBMGogARAKQQEhAQNAIAJB4ABqIgMgAxANIAFBAWoiAUEGRw0ACyAAIAJB4ABqIAJBkAFqEAogAkHAAWokAAsLACAAIAFBEBCHAQsMACAAQQBBgAgQDxoLZgEFfyMAQRBrIgMkAEEKIQIDQAJAIAIiBEEBayICIANBBmpqIgUgASABQQpuIgZBCmxrQTByOgAAIAFBCkkNACAGIQEgAg0BCwsgACAFQQsgBGsiABARIABqQQA6AAAgA0EQaiQAC40BAQZ/AkAgAC0AACIGQTprQf8BcUH2AUkNACAGIQMgACECA0AgAiEHIARBmbPmzAFLDQEgA0H/AXFBMGsiAiAEQQpsIgNBf3NLDQEgAiADaiEEIAdBAWoiAi0AACIDQTprQf8BcUH1AUsNAAsgBkEwRiAAIAdHcSAAIAJGcg0AIAEgBDYCACACIQULIAULCgAgACABIAIQTAsMACAAIAEgAiADEE0L0gkBMX8jAEFAaiIcJAAgACgCPCEdIAAoAjghHiAAKAI0IRMgACgCMCEQIAAoAiwhHyAAKAIoISAgACgCJCEhIAAoAiAhIiAAKAIcISMgACgCGCEkIAAoAhQhJSAAKAIQISYgACgCDCEnIAAoAgghKCAAKAIEISkgACgCACEqA0ACQCADQj9WBEAgAiEEDAELQQAhBSAcQQBBwAAQDyEEIANQRQRAA0AgBCAFaiABIAVqLQAAOgAAIAMgBUEBaiIFrVYNAAsLIAQhASACISsLQRQhFSAqIQ0gKSEUICghESAnIQ4gJiEFICUhCSAkIQIgIyEPICIhCyAhIQogICEYIB0hEiAeIQcgEyEIIBAhBiAfIQwDQCAFIAsgBSANaiINIAZzQRAQByIFaiIGc0EMEAchCyALIAUgCyANaiINc0EIEAciGSAGaiIac0EHEAchFiAKIAkgFGoiCyAIc0EQEAciCGoiBiAJc0EMEAchCiAKIAggCiALaiIUc0EIEAciCyAGaiIbc0EHEAchCSACIAcgAiARaiIHc0EQEAciCCAYaiIGc0EMEAchAiACIAggAiAHaiIKc0EIEAciBSAGaiIHc0EHEAchFyAMIA4gD2oiBiASc0EQEAciAmoiDCAPc0EMEAchEiASIAwgAiAGIBJqIg5zQQgQByICaiIIc0EHEAchESAJIAIgCSANaiIGc0EQEAciDCAHaiICc0EMEAchByAHIAwgBiAHaiINc0EIEAciEiACaiIYc0EHEAchCSAXIBkgFCAXaiIGc0EQEAciDCAIaiICc0EMEAchCCAIIAwgBiAIaiIUc0EIEAciBiACaiIMc0EHEAchAiARIAsgCiARaiIKc0EQEAciCCAaaiIHc0EMEAchDyAPIAcgCCAKIA9qIhFzQQgQByIIaiILc0EHEAchDyAWIAUgDiAWaiIOc0EQEAciByAbaiIKc0EMEAchBSAFIAogByAFIA5qIg5zQQgQByIHaiIKc0EHEAchBSAVQQJrIhUNAAsgASgABCEsIAEoAAghLSABKAAMIS4gASgAECEvIAEoABQhMCABKAAYITEgASgAHCEyIAEoACAhMyABKAAkITQgASgAKCEVIAEoACwhFiABKAAwIRcgASgANCEZIAEoADghGiABKAA8IRsgBCABKAAAIA0gKmpzEAkgBEEEaiAsIBQgKWpzEAkgBEEIaiAtIBEgKGpzEAkgBEEMaiAuIA4gJ2pzEAkgBEEQaiAvIAUgJmpzEAkgBEEUaiAwIAkgJWpzEAkgBEEYaiAxIAIgJGpzEAkgBEEcaiAyIA8gI2pzEAkgBEEgaiAzIAsgImpzEAkgBEEkaiA0IAogIWpzEAkgBEEoaiAVIBggIGpzEAkgBEEsaiAWIAwgH2pzEAkgBEEwaiAXIAYgEGpzEAkgBEE0aiAZIAggE2pzEAkgBEE4aiAaIAcgHmpzEAkgBEE8aiAbIBIgHWpzEAkgEyAQIBBBAWoiEEtqIRMgA0LAAFgEQAJAIANCP1YNACADpyIBRQ0AQQAhCQNAIAkgK2ogBCAJai0AADoAACAJQQFqIgkgAUcNAAsLIAAgEzYCNCAAIBA2AjAgHEFAayQABSABQUBrIQEgBEFAayECIANCQHwhAwwBCwsL7wEBAn8CfwJAIAFB/wFxIgMEQCAAQQNxBEADQCAALQAAIgJFIAIgAUH/AXFGcg0DIABBAWoiAEEDcQ0ACwsCQCAAKAIAIgJBf3MgAkGBgoQIa3FBgIGChHhxDQAgA0GBgoQIbCEDA0AgAiADcyICQX9zIAJBgYKECGtxQYCBgoR4cQ0BIAAoAgQhAiAAQQRqIQAgAkGBgoQIayACQX9zcUGAgYKEeHFFDQALCwNAIAAiAi0AACIDBEAgAkEBaiEAIAMgAUH/AXFHDQELCyACDAILIAAQISAAagwBCyAACyIAQQAgAC0AACABQf8BcUYbC3EAIABC5fDBi+aNmZAzNwIAIABCstqIy8eumZDrADcCCCAAIAEoAAA2AhAgACABKAAENgIUIAAgASgACDYCGCAAIAEoAAw2AhwgACABKAAQNgIgIAAgASgAFDYCJCAAIAEoABg2AiggACABKAAcNgIsC+gCAQJ/AkAgACABRg0AIAEgACACaiIEa0EAIAJBAXRrTQRAIAAgASACEBEPCyAAIAFzQQNxIQMCQAJAIAAgAUkEQCADBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgAw0AIARBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCADIAEoAgA2AgAgAUEEaiEBIANBBGohAyACQQRrIgJBA0sNAAsLIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQQFrIgINAAsLIAALiRgCEH4SfwNAIAIgFUEDdCIUaiABIBRqKQAAIgRCOIYgBEIohkKAgICAgIDA/wCDhCAEQhiGQoCAgICA4D+DIARCCIZCgICAgPAfg4SEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwMAIBVBAWoiFUEQRw0ACyADIABBwAAQESEBA0AgASACIBZBA3QiA2oiFSkDACABKQMgIgpBDhAFIApBEhAFhSAKQSkQBYV8IANB4IoCaikDAHwgCiABKQMwIgcgASkDKCILhYMgB4V8IAEpAzh8IgQgASkDGHwiCDcDGCABIAEpAwAiBUEcEAUgBUEiEAWFIAVBJxAFhSAEfCABKQMQIgkgASkDCCIGhCAFgyAGIAmDhHwiBDcDOCABIAkgByALIAggCiALhYOFfCAIQQ4QBSAIQRIQBYUgCEEpEAWFfCACIANBCHIiFGoiGCkDAHwgFEHgigJqKQMAfCIHfCIJNwMQIAEgByAEIAUgBoSDIAUgBoOEfCAEQRwQBSAEQSIQBYUgBEEnEAWFfCIHNwMwIAEgBiALIAogCSAIIAqFg4V8IAlBDhAFIAlBEhAFhSAJQSkQBYV8IAIgA0EQciIUaiIZKQMAfCAUQeCKAmopAwB8Igx8Igs3AwggASAMIAcgBCAFhIMgBCAFg4R8IAdBHBAFIAdBIhAFhSAHQScQBYV8IgY3AyggASAFIAogCyAIIAmFgyAIhXwgC0EOEAUgC0ESEAWFIAtBKRAFhXwgAiADQRhyIhRqIhopAwB8IBRB4IoCaikDAHwiDHwiCjcDACABIAwgBiAEIAeEgyAEIAeDhHwgBkEcEAUgBkEiEAWFIAZBJxAFhXwiBTcDICABIAQgCiAJIAuFgyAJhSAIfCAKQQ4QBSAKQRIQBYUgCkEpEAWFfCACIANBIHIiFGoiGykDAHwgFEHgigJqKQMAfCIMfCIINwM4IAEgDCAFIAYgB4SDIAYgB4OEfCAFQRwQBSAFQSIQBYUgBUEnEAWFfCIENwMYIAEgByAIIAogC4WDIAuFIAl8IAhBDhAFIAhBEhAFhSAIQSkQBYV8IAIgA0EociIUaiIcKQMAfCAUQeCKAmopAwB8Igx8Igk3AzAgASAMIAQgBSAGhIMgBSAGg4R8IARBHBAFIARBIhAFhSAEQScQBYV8Igc3AxAgASAGIAkgCCAKhYMgCoUgC3wgCUEOEAUgCUESEAWFIAlBKRAFhXwgAiADQTByIhRqIh0pAwB8IBRB4IoCaikDAHwiDHwiCzcDKCABIAwgByAEIAWEgyAEIAWDhHwgB0EcEAUgB0EiEAWFIAdBJxAFhXwiBjcDCCABIAUgCyAIIAmFgyAIhSAKfCALQQ4QBSALQRIQBYUgC0EpEAWFfCACIANBOHIiFGoiHikDAHwgFEHgigJqKQMAfCIMfCIKNwMgIAEgDCAGIAQgB4SDIAQgB4OEfCAGQRwQBSAGQSIQBYUgBkEnEAWFfCIFNwMAIAEgBCAKIAkgC4WDIAmFIAh8IApBDhAFIApBEhAFhSAKQSkQBYV8IAIgA0HAAHIiFGoiHykDAHwgFEHgigJqKQMAfCIMfCIINwMYIAEgDCAFIAYgB4SDIAYgB4OEfCAFQRwQBSAFQSIQBYUgBUEnEAWFfCIENwM4IAEgByAIIAogC4WDIAuFIAl8IAhBDhAFIAhBEhAFhSAIQSkQBYV8IAIgA0HIAHIiFGoiICkDAHwgFEHgigJqKQMAfCIMfCIJNwMQIAEgDCAEIAUgBoSDIAUgBoOEfCAEQRwQBSAEQSIQBYUgBEEnEAWFfCIHNwMwIAEgBiAJIAggCoWDIAqFIAt8IAlBDhAFIAlBEhAFhSAJQSkQBYV8IAIgA0HQAHIiFGoiISkDAHwgFEHgigJqKQMAfCIMfCILNwMIIAEgDCAHIAQgBYSDIAQgBYOEfCAHQRwQBSAHQSIQBYUgB0EnEAWFfCIGNwMoIAEgBSALIAggCYWDIAiFIAp8IAtBDhAFIAtBEhAFhSALQSkQBYV8IAIgA0HYAHIiFGoiIikDAHwgFEHgigJqKQMAfCIMfCIKNwMAIAEgDCAGIAQgB4SDIAQgB4OEfCAGQRwQBSAGQSIQBYUgBkEnEAWFfCIFNwMgIAEgBCAKIAkgC4WDIAmFIAh8IApBDhAFIApBEhAFhSAKQSkQBYV8IAIgA0HgAHIiFGoiIykDAHwgFEHgigJqKQMAfCIMfCIINwM4IAEgDCAFIAYgB4SDIAYgB4OEfCAFQRwQBSAFQSIQBYUgBUEnEAWFfCIENwMYIAEgByAIIAogC4WDIAuFIAl8IAhBDhAFIAhBEhAFhSAIQSkQBYV8IAIgA0HoAHIiFGoiJCkDAHwgFEHgigJqKQMAfCIMfCIJNwMwIAEgDCAEIAUgBoSDIAUgBoOEfCAEQRwQBSAEQSIQBYUgBEEnEAWFfCIHNwMQIAEgCSAIIAqFgyAKhSALfCAJQQ4QBSAJQRIQBYUgCUEpEAWFfCACIANB8AByIhRqIiUpAwB8IBRB4IoCaikDAHwiCyAGfCIGNwMoIAEgCyAHIAQgBYSDIAQgBYOEfCAHQRwQBSAHQSIQBYUgB0EnEAWFfCILNwMIIAEgBiAIIAmFgyAIhSAKfCAGQQ4QBSAGQRIQBYUgBkEpEAWFfCACIANB+AByIgNqIhQpAwB8IANB4IoCaikDAHwiBiAFfDcDICABIAYgCyAEIAeEgyAEIAeDhHwgC0EcEAUgC0EiEAWFIAtBJxAFhXw3AwAgFkHAAEYEQANAIAAgF0EDdCICaiIDIAMpAwAgASACaikDAHw3AwAgF0EBaiIXQQhHDQALBSACIBZBEGoiFkEDdGogJSkDACIEQgaIIARBExAFhSAEQT0QBYUgICkDACIFfCAVKQMAfCAYKQMAIgZCB4ggBkEBEAWFIAZBCBAFhXwiBzcDACAVIAYgISkDACIIfCAUKQMAIgZCBoggBkETEAWFIAZBPRAFhXwgGSkDACIKQgeIIApBARAFhSAKQQgQBYV8Igk3A4gBIBUgCiAiKQMAIgt8IAdBExAFIAdCBoiFIAdBPRAFhXwgGikDACINQgeIIA1BARAFhSANQQgQBYV8Igo3A5ABIBUgDSAjKQMAIgx8IAlBExAFIAlCBoiFIAlBPRAFhXwgGykDACIOQgeIIA5BARAFhSAOQQgQBYV8Ig03A5gBIBUgDiAkKQMAIhJ8IApBExAFIApCBoiFIApBPRAFhXwgHCkDACIPQgeIIA9BARAFhSAPQQgQBYV8Ig43A6ABIBUgBCAPfCANQRMQBSANQgaIhSANQT0QBYV8IB0pAwAiEEIHiCAQQQEQBYUgEEEIEAWFfCIPNwOoASAVIAYgEHwgDkETEAUgDkIGiIUgDkE9EAWFfCAeKQMAIhFCB4ggEUEBEAWFIBFBCBAFhXwiEDcDsAEgFSAHIBF8IA9BExAFIA9CBoiFIA9BPRAFhXwgHykDACITQgeIIBNBARAFhSATQQgQBYV8IhE3A7gBIBUgCSATfCAQQRMQBSAQQgaIhSAQQT0QBYV8IAVBARAFIAVCB4iFIAVBCBAFhXwiCTcDwAEgFSAFIAp8IBFBExAFIBFCBoiFIBFBPRAFhXwgCEEBEAUgCEIHiIUgCEEIEAWFfCIFNwPIASAVIAggDXwgCUETEAUgCUIGiIUgCUE9EAWFfCALQQEQBSALQgeIhSALQQgQBYV8Igg3A9ABIBUgCyAOfCAFQRMQBSAFQgaIhSAFQT0QBYV8IAxBARAFIAxCB4iFIAxBCBAFhXwiBTcD2AEgFSAMIA98IAhBExAFIAhCBoiFIAhBPRAFhXwgEkEBEAUgEkIHiIUgEkEIEAWFfCIINwPgASAVIBAgEnwgBUETEAUgBUIGiIUgBUE9EAWFfCAEQQEQBSAEQgeIhSAEQQgQBYV8IgU3A+gBIBUgBCARfCAIQRMQBSAIQgaIhSAIQT0QBYV8IAZBARAFIAZCB4iFIAZBCBAFhXw3A/ABIBUgBiAJfCAFQRMQBSAFQgaIhSAFQT0QBYV8IAdBARAFIAdCB4iFIAdBCBAFhXw3A/gBDAELCwsEAEECCwQAQQELBABBGAusBQESf0Gy2ojLByEDQe7IgZkDIQxB5fDBiwYhDUH0yoHZBiEEIAIoAAAhBiACKAAEIQcgAigACCEFIAIoAAwhCCACKAAQIQogAigAFCELIAIoABghDyACKAAcIREgASgAACECIAEoAAQhDiABKAAIIQkgASgADCEBA0AgBiAKIAIgBiANaiINc0EQEAciEGoiCnNBDBAHIQIgAiAKIBAgAiANaiINc0EIEAciEGoiCnNBBxAHIQYgByAOIAcgDGoiDHNBEBAHIg4gC2oiC3NBDBAHIQIgAiAOIAIgDGoiDHNBCBAHIg4gC2oiC3NBBxAHIQIgBSAJIAMgBWoiB3NBEBAHIgkgD2oiD3NBDBAHIQMgAyAJIAMgB2oiEnNBCBAHIgkgD2oiB3NBBxAHIQMgCCABIAQgCGoiBHNBEBAHIgUgEWoiD3NBDBAHIQEgASAFIAEgBGoiE3NBCBAHIgUgD2oiCHNBBxAHIQQgAiAHIAUgAiANaiIBc0EQEAciBWoiB3NBDBAHIQIgAiAHIAUgASACaiINc0EIEAciAWoiD3NBBxAHIQcgAyAIIBAgAyAMaiICc0EQEAciBWoiCHNBDBAHIQMgAyAIIAUgAiADaiIMc0EIEAciAmoiEXNBBxAHIQUgBCAOIAQgEmoiA3NBEBAHIgggCmoiCnNBDBAHIQQgBCAKIAggAyAEaiIDc0EIEAciDmoiCnNBBxAHIQggBiAJIAYgE2oiBHNBEBAHIgkgC2oiC3NBDBAHIQYgBiAJIAQgBmoiBHNBCBAHIgkgC2oiC3NBBxAHIQYgFEEBaiIUQQpHDQALIAAgDRAJIABBBGogDBAJIABBCGogAxAJIABBDGogBBAJIABBEGogAhAJIABBFGogDhAJIABBGGogCRAJIABBHGogARAJCzEAIAJBgAJPBEBBACIAQf8JaiAAQbYJakHrACAAQasIahAAAAsgACABIAJB/wFxEHALVgEBf0F/IQQCQCADQcEAa0FASSACQcAAS3INAAJAIAFBACACG0UEQCAAIANB/wFxEK0BRQ0BDAILIAAgA0H/AXEgASACQf8BcRCsAQ0BC0EAIQQLIAQLmAYBIX8gAigABCESIAIoAAghEyACKAAMIRQgAigAECEVIAIoABQhFiACKAAYIRcgAigAHCEYQeXwwYsGIQwgAigAACIaIQIgEiEGIBMhESAUIQdB7siBmQMhDSABKAAAIhshCCABKAAEIhwhCSABKAAIIh0hCiABKAAMIh4hDkGy2ojLByEPIBUhAUH0yoHZBiEFIBghCyAXIQMgFiEEA0AgBCAMakEHEAcgB3MiByAMakEJEAcgCnMiCiAHakENEAcgBHMiHyAKakESEAchICACIA1qQQcQByAOcyIEIA1qQQkQByADcyIQIARqQQ0QByACcyICIBBqQRIQByEOIAggD2pBBxAHIAtzIgsgD2pBCRAHIAZzIgYgC2pBDRAHIAhzIgggBmpBEhAHISEgASAFakEHEAcgEXMiAyAFakEJEAcgCXMiCSADakENEAcgAXMiIiAJakESEAchIyADIAwgIHMiAWpBBxAHIAJzIgIgAWpBCRAHIAZzIgYgAmpBDRAHIANzIhEgBmpBEhAHIAFzIQwgDSAOcyIBIAdqQQcQByAIcyIIIAFqQQkQByAJcyIJIAhqQQ0QByAHcyIHIAlqQRIQByABcyENIA8gIXMiAyAEakEHEAcgInMiASADakEJEAcgCnMiCiABakENEAcgBHMiDiAKakESEAcgA3MhDyAFICNzIgUgC2pBBxAHIB9zIgQgBWpBCRAHIBBzIgMgBGpBDRAHIAtzIgsgA2pBEhAHIAVzIQUgGUESSSEQIBlBAmohGSAQDQALIAAgDEHl8MGLBmoQCSAAQQRqIAIgGmoQCSAAQQhqIAYgEmoQCSAAQQxqIBEgE2oQCSAAQRBqIAcgFGoQCSAAQRRqIA1B7siBmQNqEAkgAEEYaiAIIBtqEAkgAEEcaiAJIBxqEAkgAEEgaiAKIB1qEAkgAEEkaiAOIB5qEAkgAEEoaiAPQbLaiMsHahAJIABBLGogASAVahAJIABBMGogBCAWahAJIABBNGogAyAXahAJIABBOGogCyAYahAJIABBPGogBUH0yoHZBmoQCQtpAQF/IwBBEGsiAyAANgIMIAMgATYCCEEAIQEgA0EAOgAHIAIEQANAIAMgAy0AByADKAIIIAFqLQAAIAMoAgwgAWotAABzcjoAByABQQFqIgEgAkcNAAsLIAMtAAdBAWtBCHZBAXFBAWsLlRIBHn4gABAOIRAgADUAAiERIABBBWoQDiESIAA1AAchGSAANQAKIRogAEENahAOIRsgADUADyELIABBEmoQDiEKIABBFWoQDiEIIAA1ABchBSAAQRpqEA4hASAANQAcIRwgADUAHyETIABBImoQDiEUIAA1ACQhDCAAQSdqEA4hDyAAQSpqEA4hCSAANQAsIQYgACAAQS9qEA5CAohC////AIMiAkLRqwh+IAFCAohC////AIN8IAA1ADFCB4hC////AIMiAULTjEN+fCAANQA0QgSIQv///wCDIgNC5/YnfnwgAEE3ahAOQgGIQv///wCDIgRCmNocfnwgADUAOUIGiEL///8AgyIHQpPYKH58IhUgBkIFiEL///8AgyAANQA8QgOIIgZCg6FWfiAJQv///wCDfCINQoCAQH0iDkIVh3wiCUKDoVZ+fCACQtOMQ34gBUIFiEL///8Ag3wgAULn9id+fCADQpjaHH58IARCk9gofnwgAkLn9id+IAhC////AIN8IAFCmNocfnwgA0KT2Ch+fCIFQoCAQH0iFkIViHwiCEKAgEB9IhdCFYd8IBVCgIBAfSIVQoCAgH+DfSIYIBhCgIBAfSIYQoCAgH+DfSAJQtGrCH4gCHwgF0KAgIB/g30gDSAOQoCAgH+DfSAGQtGrCH4gD0IDiEL///8Ag3wgB0KDoVZ+fCAEQoOhVn4gDEIGiEL///8Ag3wgBkLTjEN+fCAHQtGrCH58IgxCgIBAfSIPQhWHfCINQoCAQH0iDkIVh3wiCEKDoVZ+fCAFIAJCmNocfiAKQgOIQv///wCDfCABQpPYKH58IAJCk9gofiALQgaIQv///wCDfCIXQoCAQH0iHUIViHwiCkKAgEB9Ih5CFYh8IBZCgICA////B4N9IAlC04xDfnwgCELRqwh+fCANIA5CgICAf4N9IgtCg6FWfnwiBUKAgEB9Ig1CFYd8Ig5CgIBAfSIWQhWHfCAOIBZCgICAf4N9IAUgDUKAgIB/g30gCiAeQoCAgP///weDfSAJQuf2J358IAhC04xDfnwgC0LRqwh+fCAMIA9CgICAf4N9IANCg6FWfiAUQgGIQv///wCDfCAEQtGrCH58IAZC5/YnfnwgB0LTjEN+fCABQoOhVn4gE0IEiEL///8Ag3wgA0LRqwh+fCAEQtOMQ358IAZCmNocfnwgB0Ln9id+fCITQoCAQH0iFEIVh3wiBUKAgEB9IgxCFYd8IgpCg6FWfnwgFyAdQoCAgP///wGDfSAJQpjaHH58IAhC5/YnfnwgC0LTjEN+fCAKQtGrCH58IAUgDEKAgIB/g30iBUKDoVZ+fCIMQoCAQH0iD0IVh3wiDUKAgEB9Ig5CFYd8IA0gDkKAgIB/g30gDCAPQoCAgH+DfSAJQpPYKH4gG0IBiEL///8Ag3wgCEKY2hx+fCALQuf2J358IApC04xDfnwgBULRqwh+fCATIBRCgICAf4N9IAJCg6FWfiAcQgeIQv///wCDfCABQtGrCH58IANC04xDfnwgBELn9id+fCAGQpPYKH58IAdCmNocfnwgFUIVh3wiAUKAgEB9IgNCFYd8IgJCg6FWfnwgCEKT2Ch+IBpCBIhC////AIN8IAtCmNocfnwgCkLn9id+fCAFQtOMQ358IAJC0asIfnwiBEKAgEB9IgdCFYd8IgZCgIBAfSIJQhWHfCAGIAEgA0KAgIB/g30gGEIVh3wiA0KAgEB9IghCFYciAUKDoVZ+fCAJQoCAgH+DfSABQtGrCH4gBHwgB0KAgIB/g30gC0KT2Ch+IBlCB4hC////AIN8IApCmNocfnwgBULn9id+fCACQtOMQ358IApCk9gofiASQgKIQv///wCDfCAFQpjaHH58IAJC5/YnfnwiBEKAgEB9IgdCFYd8IgZCgIBAfSIJQhWHfCAGIAFC04xDfnwgCUKAgIB/g30gAULn9id+IAR8IAdCgICAf4N9IAVCk9gofiARQgWIQv///wCDfCACQpjaHH58IAJCk9gofiAQQv///wCDfCICQoCAQH0iBEIVh3wiB0KAgEB9IgZCFYd8IAFCmNocfiAHfCAGQoCAgH+DfSACIARCgICAf4N9IAFCk9gofnwiAUIVh3wiBEIVh3wiB0IVh3wiBkIVh3wiCUIVh3wiC0IVh3wiCkIVh3wiBUIVh3wiEEIVh3wiEUIVh3wiEkIVhyADIAhCgICAf4N9fCIIQhWHIgJCk9gofiABQv///wCDfCIBPAAAIAAgAUIIiDwAASAAIAJCmNocfiAEQv///wCDfCABQhWHfCIDQguIPAAEIAAgA0IDiDwAAyAAIAJC5/YnfiAHQv///wCDfCADQhWHfCIEQgaIPAAGIAAgAUIQiEIfgyADQv///wCDIgNCBYaEPAACIAAgAkLTjEN+IAZC////AIN8IARCFYd8IgFCCYg8AAkgACABQgGIPAAIIAAgBEL///8AgyIEQgKGIANCE4iEPAAFIAAgAkLRqwh+IAlC////AIN8IAFCFYd8IgNCDIg8AAwgACADQgSIPAALIAAgAUL///8AgyIHQgeGIARCDoiEPAAHIAAgAkKDoVZ+IAtC////AIN8IANCFYd8IgFCB4g8AA4gACADQv///wCDIgNCBIYgB0IRiIQ8AAogACAKQv///wCDIAFCFYd8IgJCCog8ABEgACACQgKIPAAQIAAgAUL///8AgyIEQgGGIANCFIiEPAANIAAgBUL///8AgyACQhWHfCIBQg2IPAAUIAAgAUIFiDwAEyAAIAJC////AIMiA0IGhiAEQg+IhDwADyAAIBBC////AIMgAUIVh3wiAjwAFSAAIAFCA4YgA0ISiIQ8ABIgACACQgiIPAAWIAAgEUL///8AgyACQhWHfCIBQguIPAAZIAAgAUIDiDwAGCAAIBJC////AIMgAUIVh3wiA0IGiDwAGyAAIAJCEIhCH4MgAUL///8AgyIBQgWGhDwAFyAAIAhC////AIMgA0IVh3wiAkIRiDwAHyAAIAJCCYg8AB4gACACQgGIPAAdIAAgA0L///8AgyIDQgKGIAFCE4iEPAAaIAAgAkIHhiADQg6IhDwAHAvaAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEHgE2ogAmotAAAgBHNyOgAAIAFBAWoiAUEHRw0ACyACQQFqIgJBH0cNAAsgAC0AH0H/AHEhAkEAIQBBACEBA0AgA0EIaiABaiIEIAQtAAAgAiABQQV0Qf8Tai0AAHNyOgAAIAFBAWoiAUEHRw0AC0EAIQEDQCADQQhqIABqLQAAQQFrIAFyIQEgAEEBaiIAQQdHDQALIAFBCHZBAXEL5wIBBX8jAEHQA2siAyQAA0AgA0GQA2ogAkEBdGoiBSABIAJqLQAAIgZBBHY6AAEgBSAGQQ9xOgAAIAJBAWoiAkEgRw0AC0EAIQIDQCADQZADaiAEaiIBIAEtAAAgAmoiASABQRh0QYCAgEBrIgFBGHVB8AFxazoAACABQRx1IQIgBEEBaiIEQT9HDQALIAMgAy0AzwMgAmo6AM8DIAAQekEBIQIDQCADIAJBAXYgA0GQA2ogAmosAAAQeSADQfABaiIBIAAgAxBTIAAgARATIAJBPkkhASACQQJqIQIgAQ0ACyADQfABaiIBIAAQOiADQfgAaiICIAEQOyABIAIQMSACIAEQOyABIAIQMSACIAEQOyABIAIQMSAAIAEQE0EAIQIDQCADIAJBAXYgA0GQA2ogAmosAAAQeSADQfABaiIBIAAgAxBTIAAgARATIAJBPkkhASACQQJqIQIgAQ0ACyADQdADaiQAC4sBAQR/IwBBMGsiBSQAIAAgAUEoaiIDIAEQEiAAQShqIgQgAyABEBUgAEHQAGoiAyAAIAIQCiAEIAQgAkEoahAKIABB+ABqIgYgAkHQAGogAUH4AGoQCiAFIAFB0ABqIgEgARASIAAgAyAEEBUgBCADIAQQEiADIAUgBhASIAYgBSAGEBUgBUEwaiQAC1YBA38jAEGQAWsiAiQAIAJB4ABqIgMgAUHQAGoQPCACQTBqIgQgASADEAogAiABQShqIAMQCiAAIAIQLCAAIAQQf0EHdCAALQAfczoAHyACQZABaiQAC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLCABQSAQdSEAIAFBIGokACAAC6YEAg5+Cn8gACgCJCESIAAoAiAhEyAAKAIcIRQgACgCGCEVIAAoAhQhESACQhBaBEAgAC0AUEVBGHQhFiAAKAIEIhdBBWytIQ8gACgCCCIYQQVsrSENIAAoAgwiGUEFbK0hCyAAKAIQIhpBBWytIQkgGq0hECAZrSEOIBitIQwgF60hCiAANQIAIQgDQCABKAADQQJ2Qf///x9xIBVqrSIDIA5+IAEoAABB////H3EgEWqtIgQgEH58IAEoAAZBBHZB////H3EgFGqtIgUgDH58IAEoAAlBBnYgE2qtIgYgCn58IBIgFmogASgADEEIdmqtIgcgCH58IAMgDH4gBCAOfnwgBSAKfnwgBiAIfnwgByAJfnwgAyAKfiAEIAx+fCAFIAh+fCAGIAl+fCAHIAt+fCADIAh+IAQgCn58IAUgCX58IAYgC358IAcgDX58IAMgCX4gBCAIfnwgBSALfnwgBiANfnwgByAPfnwiA0IaiEL/////D4N8IgRCGohC/////w+DfCIFQhqIQv////8Pg3wiBkIaiEL/////D4N8IgdCGoinQQVsIAOnQf///x9xaiIRQRp2IASnQf///x9xaiEVIAWnQf///x9xIRQgBqdB////H3EhEyAHp0H///8fcSESIBFB////H3EhESABQRBqIQEgAkIQfSICQg9WDQALCyAAIBE2AhQgACASNgIkIAAgEzYCICAAIBQ2AhwgACAVNgIYC+8BAQJ/IABFBEBBZw8LIAAoAgBFBEBBfw8LAn9BfiAAKAIEQRBJDQAaIAAoAghFBEBBbiAAKAIMDQEaCyAAKAIUIQEgACgCEEUEQEFtQXogARsPC0F6IAFBCEkNABogACgCGEUEQEFsIAAoAhwNARoLIAAoAiBFBEBBayAAKAIkDQEaCyAAKAIwIgFFBEBBcA8LQW8gAUH///8HSw0AGkFyIAAoAiwiAkEISQ0AGkFxIAJBgICAAUsNABpBciACIAFBA3RJDQAaIAAoAihFBEBBdA8LIAAoAjQiAEUEQEFkDwtBY0EAIABB////B0sbCwvICwIQfgN/IwBBgBBrIhMkACATQYAIaiIUIAEQKyAUIAAQLSATIBQQKyATIAIQLUEAIQFBACEUA0AgE0GACGogFEEHdGoiAEFAayIVKQMAIAApA2AgACkDACAAKQMgIgcQBiIDhUEgEAUiBBAGIgUgB4VBGBAFIQcgByAFIAQgAyAHEAYiBoVBEBAFIgkQBiIQhUE/EAUhByAAKQNIIAApA2ggACkDCCAAKQMoIgMQBiIEhUEgEAUiBRAGIgogA4VBGBAFIQMgAyAKIAUgBCADEAYiCoVBEBAFIhEQBiIShUE/EAUhAyAAKQNQIAApA3AgACkDECAAKQMwIgQQBiIFhUEgEAUiCxAGIgwgBIVBGBAFIQQgBCAMIAsgBSAEEAYiDIVBEBAFIgsQBiINhUE/EAUhBCAAKQNYIAApA3ggACkDGCAAKQM4IgUQBiIOhUEgEAUiCBAGIg8gBYVBGBAFIQUgBSAPIAggDiAFEAYiDoVBEBAFIggQBiIPhUE/EAUhBSAAIAYgAxAGIgYgAyANIAYgCIVBIBAFIgYQBiINhUEYEAUiAxAGIgg3AwAgACAGIAiFQRAQBSIGNwN4IAAgDSAGEAYiBjcDUCAAIAMgBoVBPxAFNwMoIAAgCiAEEAYiAyAEIA8gAyAJhUEgEAUiAxAGIgaFQRgQBSIEEAYiCTcDCCAAIAMgCYVBEBAFIgM3A2AgACAGIAMQBiIDNwNYIAAgAyAEhUE/EAU3AzAgACAMIAUQBiIDIAUgECADIBGFQSAQBSIDEAYiBIVBGBAFIgUQBiIGNwMQIAAgAyAGhUEQEAUiAzcDaCAVIAQgAxAGIgM3AwAgACADIAWFQT8QBTcDOCAAIA4gBxAGIgMgByASIAMgC4VBIBAFIgMQBiIEhUEYEAUiBxAGIgU3AxggACADIAWFQRAQBSIDNwNwIAAgBCADEAYiAzcDSCAAIAMgB4VBPxAFNwMgIBRBAWoiFEEIRw0ACwNAIBNBgAhqIAFBBHRqIgBBgARqKQMAIAApA4AGIAApAwAgACkDgAIiBxAGIgOFQSAQBSIEEAYiBSAHhUEYEAUhByAHIAUgBCADIAcQBiIGhUEQEAUiCRAGIhCFQT8QBSEHIAApA4gEIAApA4gGIAApAwggACkDiAIiAxAGIgSFQSAQBSIFEAYiCiADhUEYEAUhAyADIAogBSAEIAMQBiIKhUEQEAUiERAGIhKFQT8QBSEDIAApA4AFIAApA4AHIAApA4ABIAApA4ADIgQQBiIFhUEgEAUiCxAGIgwgBIVBGBAFIQQgBCAMIAsgBSAEEAYiDIVBEBAFIgsQBiINhUE/EAUhBCAAKQOIBSAAKQOIByAAKQOIASAAKQOIAyIFEAYiDoVBIBAFIggQBiIPIAWFQRgQBSEFIAUgDyAIIA4gBRAGIg6FQRAQBSIIEAYiD4VBPxAFIQUgACAGIAMQBiIGIAMgDSAGIAiFQSAQBSIGEAYiDYVBGBAFIgMQBiIINwMAIAAgBiAIhUEQEAUiBjcDiAcgACANIAYQBiIGNwOABSAAIAMgBoVBPxAFNwOIAiAAIAogBBAGIgMgBCAPIAMgCYVBIBAFIgMQBiIGhUEYEAUiBBAGIgk3AwggACADIAmFQRAQBSIDNwOABiAAIAYgAxAGIgM3A4gFIAAgAyAEhUE/EAU3A4ADIAAgDCAFEAYiAyAFIBAgAyARhUEgEAUiAxAGIgSFQRgQBSIFEAYiBjcDgAEgACADIAaFQRAQBSIDNwOIBiAAIAQgAxAGIgM3A4AEIAAgAyAFhUE/EAU3A4gDIAAgDiAHEAYiAyAHIBIgAyALhUEgEAUiAxAGIgSFQRgQBSIHEAYiBTcDiAEgACADIAWFQRAQBSIDNwOAByAAIAQgAxAGIgM3A4gEIAAgAyAHhUE/EAU3A4ACIAFBAWoiAUEIRw0ACyACIBMQKyACIBNBgAhqEC0gE0GAEGokAAu+AwECfyMAIgQhBSAEQcAEa0FAcSIEJAAgBEEANgK8ASAEQbwBaiABEAkCQCABQcAATQRAIARBwAFqQQBBACABEE1BAEgNASAEQcABaiAEQbwBakIEEBdBAEgNASAEQcABaiACIAOtEBdBAEgNASAEQcABaiAAIAEQTBoMAQsgBEHAAWpBAEEAQcAAEE1BAEgNACAEQcABaiAEQbwBakIEEBdBAEgNACAEQcABaiACIAOtEBdBAEgNACAEQcABaiAEQfAAakHAABBMQQBIDQAgACAEKQNwNwAAIAAgBCkDeDcACCAAIAQpA4gBNwAYIAAgBCkDgAE3ABAgAEEgaiEAIAFBIGsiAUHBAE8EQANAIARBMGoiAiAEQfAAaiIDQcAAEBEaIANBwAAgAkLAAEEAQQAQb0EASA0CIAAgBCkDcDcAACAAIAQpA3g3AAggACAEKQOIATcAGCAAIAQpA4ABNwAQIABBIGohACABQSBrIgFBwABLDQALCyAEQTBqIgIgBEHwAGoiA0HAABARGiADIAEgAkLAAEEAQQAQb0EASA0AIAAgBEHwAGogARARGgsgBEHAAWpBgAMQCCAFJAALLAECfyMAQRBrIgAkACAAQQA6AA9B6JECIABBD2pBABABIQEgAEEQaiQAIAELKAAgAkKAgICAEFoEQBAUAAsgACABIAIgAyAEIAVBwJECKAIAERAAGgskACABQoCAgIAQWgRAEBQACyAAIAEgAiADQbiRAigCABENABoLCwAgACABIAIQrwELCAAgACABEHcLEAAgACABIAIgAyAEIAUQYgsQACAAIAEgAiADIAQgBRBjC5YCAgJ/AX4jAEHgAGsiBiQAIAYgBCAFEGUaIAZBIGoiB0IgIARBEGoiBSAGQeCRAigCABENABpBfyEEAkACQCACIAEgAyAHQciRAigCABERAA0AQQAhBCAARQ0BIAAgAUkgASAAa60gA1RxRSAAIAFNIAAgAWutIANacnFFBEAgACABIAOnEEYhAQsCQCADQiAgA0IgVBsiCFAEQCAGQSBqIgIgAiAIQiB8IAUgBhB2DAELIAZBQGsgASAIpyICEBEhBCAGQSBqIgcgByAIQiB8IAUgBhB2IAAgBCACEBEaC0EAIQQgA0IhVA0AIAAgCKciAmogASACaiADIAh9IAUgBhCuAQsgBkEgEAgLIAZB4ABqJAAgBAuQAgICfwF+IwBB4AJrIgYkACAGIAQgBRBlGiAAIAJLIAAgAmutIANUcUUgACACTyACIABrrSADWnJxRQRAIAAgAiADpxBGIQILIAZCADcDOCAGQgA3AzAgBkIANwMoIAZCADcDICADQiAgA0IgVBsiCFAiBUUEQCAGQUBrIAIgCKcQERoLIAZBIGoiByAHIAhCIHwgBEEQaiIEIAYQdiAGQeAAaiAHECQgBUUEQCAAIAZBQGsgCKcQERoLIAZBIGpBwAAQCCADQiFaBEAgACAIpyIFaiACIAVqIAMgCH0gBCAGEK4BCyAGQSAQCCAGQeAAaiICIAAgAxALIAIgARAjIAJBgAIQCCAGQeACaiQAQQALMwECfyMAQSBrIgMkAEF/IQQgAyACIAEQrwFFBEAgAEGgkQIgAxBlIQQLIANBIGokACAEC/AEARV/QbLaiMsHIQNB7siBmQMhBEHl8MGLBiEFQfTKgdkGIQZBFCEPIAIoAAAhCiACKAAEIRAgAigACCESIAIoAAwhCyACKAAQIQwgAigAFCEHIAIoABghDSACKAAcIQ4gASgAACECIAEoAAQhCCABKAAIIQkgASgADCEBA0AgBSAHakEHEAcgC3MiCyAFakEJEAcgCXMiCSALakENEAcgB3MiESAJakESEAchEyAEIApqQQcQByABcyIBIARqQQkQByANcyINIAFqQQ0QByAKcyIKIA1qQRIQByEUIAIgA2pBBxAHIA5zIg4gA2pBCRAHIBBzIgcgDmpBDRAHIAJzIhUgB2pBEhAHIRYgBiAMakEHEAcgEnMiAiAGakEJEAcgCHMiCCACakENEAcgDHMiDCAIakESEAchFyACIAUgE3MiBWpBBxAHIApzIgogBWpBCRAHIAdzIhAgCmpBDRAHIAJzIhIgEGpBEhAHIAVzIQUgBCAUcyIEIAtqQQcQByAVcyICIARqQQkQByAIcyIIIAJqQQ0QByALcyILIAhqQRIQByAEcyEEIAMgFnMiAyABakEHEAcgDHMiDCADakEJEAcgCXMiCSAMakENEAcgAXMiASAJakESEAcgA3MhAyAGIBdzIgYgDmpBBxAHIBFzIgcgBmpBCRAHIA1zIg0gB2pBDRAHIA5zIg4gDWpBEhAHIAZzIQYgD0ECSyERIA9BAmshDyARDQALIAAgBRAJIABBBGogBBAJIABBCGogAxAJIABBDGogBhAJIABBEGogAhAJIABBFGogCBAJIABBGGogCRAJIABBHGogARAJQQALBABBfwuNBwEKfyMAQRBrIgwkACAHEGkCQAJAIANFDQAgB0EEcSEQA0AgCiEJA0AgAiAJaiwAACEIAkACfyAQBEBBACAIQQRqIAhB0P8DakEIdkF/c3FBOSAIa0EIdkF/c3FB/wFxIAhBwQBrIgsgC0EIdkF/c3FB2gAgCGtBCHZBf3NxQf8BcSAIQbkBaiAIQZ//A2pBCHZBf3NxQfoAIAhrQQh2QX9zcUH/AXEgCEGg/wBzQQFqQQh2QX9zQT9xIAhB0v8Ac0EBakEIdkF/c0E+cXJycnIiC2tBCHZBf3MgCEG+/wNzQQFqQQh2cUH/AXEgC3IMAQtBACAIQQRqIAhB0P8DakEIdkF/c3FBOSAIa0EIdkF/c3FB/wFxIAhBwQBrIgsgC0EIdkF/c3FB2gAgCGtBCHZBf3NxQf8BcSAIQbkBaiAIQZ//A2pBCHZBf3NxQfoAIAhrQQh2QX9zcUH/AXEgCEHQ/wBzQQFqQQh2QX9zQT9xIAhB1P8Ac0EBakEIdkF/c0E+cXJycnIiC2tBCHZBf3MgCEG+/wNzQQFqQQh2cUH/AXEgC3ILIgtB/wFGBEAgBEUNBCAEIAgQRA0BIAkhCgwECyALIA9BBnRqIQ8CQCANQQZqIgpBCEkEQCAKIQ0MAQsgDUECayENIAEgDk0EQCAMIAk2AgxB4JcCQcQANgIAQQEhEQwGCyAAIA5qIA8gDXY6AAAgDkEBaiEOCyAJQQFqIgogA0kNAgwDCyAJQQFqIgkgA0kNAAsLIAMgCkEBaiIAIAAgA0kbIQoLIAwgCjYCDAsCQCANQQRLBEBBACEBQX8hAAwBC0F/IQBBACEBIBEgD0F/IA10QX9zcXINACAHQQJxRQRAAn8CQCANQQF2IgcEQCAMKAIMIQADQCAAIANPBEBBxAAhCQwDCwJAIAAgAmosAAAiCkE9RgRAIAdBAWshBwwBC0EcIQkgBEUNAyAEIAoQREUNAwsgDCAAQQFqIgA2AgwgBw0ACwtBAAwBC0HglwIgCTYCAEF/CyIADQELQQAhACAEBEACQCAMKAIMIgkgA08NAANAIAQgAiAJaiwAABBERQ0BIAlBAWoiCSADRw0ACyADIQkLIAwgCTYCDAsgDiEBCyAMKAIMIQQCQCAGBEAgBiACIARqNgIADAELIAMgBEYNAEHglwJBHDYCAEF/IQALIAUEQCAFIAE2AgALIAxBEGokACAAC84DAQZ/IAQQaSADQQNuIgVBAnQhBgJAIAVBfWwgA2oiBUUNACAEQQJxRQRAIAZBBGohBgwBCyAGQQJyIAVBAXZqIQYLAkACQAJ/AkACfwJAIAEgBksEQAJAIARBBHEEQEEAIANFDQYaQQAhBUEAIQQMAQtBACADRQ0FGkEAIQVBACEEDAILA0AgAiAIai0AACIJIAdBCHRyIQcgBUEIaiEFA0AgACAEaiAHIAUiCkEGayIFdkE/cRCeAToAACAEQQFqIQQgBUEFSw0ACyAIQQFqIgggA0cNAAsgBUUNAyAJQQwgCmt0QT9xEJ4BDAILEBQACwNAIAIgCGotAAAiCSAHQQh0ciEHIAVBCGohBQNAIAAgBGogByAFIgpBBmsiBXZBP3EQnQE6AAAgBEEBaiEEIAVBBUsNAAsgCEEBaiIIIANHDQALIAVFDQEgCUEMIAprdEE/cRCdAQshBSAAIARqIAU6AAAgBEEBagwBCyAECyIHIAZNBEAgBiAHSw0BIAchBgwCC0EAIgBBmAhqIABB+QhqQeYBIABB3wpqEAAACyAAIAdqQT0gBiAHaxAPGgsgACAGakEAIAEgBkEBaiICIAEgAksbIAZrEA8aIAALEAAgAEF5cUEBRwRAEBQACwsWACAAEDYgAQRAIABB4JACQiIQGxoLCwQAQQMLlgEBAX8jAEEwayIBJAAgASAAKQAYNwMYIAEgACkAEDcDECABIAApAAA3AwAgASAAKQAINwMIIAEgACkAJDcDICABIAFCKCAAQSBqQQAgAEHAkQIoAgAREAAaIAAgASkDGDcAGCAAIAEpAxA3ABAgACABKQMINwAIIAAgASkDADcAACAAIAEpAyA3ACQgABBtIAFBMGokAAsJACAAQQE2ACALBABBCAunAQECfyABQcEAa0FASSAFQcAAS3IEf0F/BQJ/IwAiBiEHIAZBgANrQUBxIgYkAEEBIAIgA1AbRSAARSABQf8BcSIBQcEAa0H/AXFBvwFNcnIgBEEBIAVB/wFxIgUbRSAFQcEAT3JyRQRAAkAgBQRAIAYgASAEIAUQrAEaDAELIAYgARCtARoLIAYgAiADEDgaIAYgACABEHAaIAckAEEADAELEBQACwsL0gIBA38jAEFAaiIEJAACQCACQcEAa0H/AXFBvwFLBEBBfyEDIAApAFBQBEAgACAAKADgAiIDQYEBTwR/IABCgAEQcSAAIABB4ABqIgUQdCAAIAAoAOACQYABayIDNgDgAiADQYEBTw0DIAUgAEHgAWogAxARGiAAKADgAgUgAwutEHEgAC0A5AIEQCAAQn83AFgLIABCfzcAUCAAQeAAaiIDIAAoAOACIgVqQQBBgAIgBWsQDxogACADEHQgBCAAKQAAEBAgBEEIciAAKQAIEBAgBEEQaiAAKQAQEBAgBEEYaiAAKQAYEBAgBEEgaiAAKQAgEBAgBEEoaiAAKQAoEBAgBEEwaiAAKQAwEBAgBEE4aiAAKQA4EBAgASAEIAIQERogAEHAABAIIANBgAIQCEEAIQMLIARBQGskACADDwsQFAALQZMKQYkJQbICQb4IEAAACy0CAX8BfiAAQUBrIgIgASACKQAAIgF8IgM3AAAgACAAKQBIIAEgA1atfDcASAsJACAAQQA2AAALRgEDfyAAQcCJAkHAABARQUBrQQBBpQIQDxoDQCAAIAJBA3QiA2oiBCABIANqKQAAIAQpAACFNwAAIAJBAWoiAkEIRw0ACwvuNgIefgN/IwBBgAJrIiAkAANAICFBA3QiIiAgQYABamogASAiaikAADcDACAhQQFqIiFBEEcNAAsgICAAQcAAEBEiASkDACABKQMgIh4gASkDgAF8fCIZIABBQGspAACFQtGFmu/6z5SH0QCFQSAQBSIXQoiS853/zPmE6gB8IhMgHoVBGBAFIRYgFiAXIAEpA4gBIh4gFiAZfHwiDoVBEBAFIgMgE3wiB4VBPxAFIRwgASkDCCABKQOQASINIAEpAygiFnx8IhkgACkASIVCn9j52cKR2oKbf4VBIBAFIhdCxbHV2aevlMzEAH0iEyAWhUEYEAUhFiAWIBcgASkDmAEgFiAZfHwiBoVBEBAFIhAgE3wiD4VBPxAFIRMgASkDECABKQOgASILIAEpAzAiFnx8IhcgACkAUIVC6/qG2r+19sEfhUEgEAUiGkKr8NP0r+68tzx8IhIgFoVBGBAFIRkgGSAaIAEpA6gBIhYgFyAZfHwiCYVBEBAFIgggEnwiBIVBPxAFIRogASkDGCABKQOwASIZIAEpAzgiF3x8IgIgACkAWIVC+cL4m5Gjs/DbAIVBIBAFIgVCj5KLh9rYgtjaAH0iCiAXhUEYEAUhEiASIAogBSABKQO4ASIXIAIgEnx8IhGFQRAQBSIMfCIKhUE/EAUhAiATIAQgDCABKQPAASIFIA4gE3x8IhKFQSAQBSIOfCIEhUEYEAUhEyATIA4gASkDyAEiDCASIBN8fCIUhUEQEAUiFSAEfCIdhUE/EAUhBCAaIAMgASkD0AEiEiAGIBp8fCIGhUEgEAUiAyAKfCIKhUEYEAUhEyATIAogAyABKQPYASIOIAYgE3x8IhiFQRAQBSIbfCIKhUE/EAUhAyACIAcgECABKQPgASITIAIgCXx8IgaFQSAQBSIQfCIHhUEYEAUhGiAaIAcgECABKQPoASICIAYgGnx8IgmFQRAQBSIQfCIfhUE/EAUhByAcIA8gCCABKQPwASIaIBEgHHx8IhGFQSAQBSIIfCIPhUEYEAUhBiAbIAYgDyAIIAEpA/gBIhwgBiARfHwiEYVBEBAFIgh8Ig+FQT8QBSIGIBQgGnx8IhSFQSAQBSIbIB98Ih8gBoVBGBAFIQYgBiAbIAYgEiAUfHwiFIVBEBAFIhsgH3wiH4VBPxAFIQYgBCAPIBAgBCALfCAYfCIPhUEgEAUiEHwiC4VBGBAFIQQgBCAQIAQgBSAPfHwiD4VBEBAFIhAgC3wiC4VBPxAFIQQgAyAIIAMgDHwgCXwiCYVBIBAFIgggHXwiDIVBGBAFIQMgAyAIIAMgCSAcfHwiCYVBEBAFIgggDHwiDIVBPxAFIQMgByAKIBUgAiAHfCARfCIRhUEgEAUiFXwiCoVBGBAFIQcgByAKIBUgByARIBl8fCIKhUEQEAUiEXwiFYVBPxAFIQcgBCAMIBEgBCAUIB58fCIUhUEgEAUiEXwiDIVBGBAFIQQgBCAMIBEgBCATIBR8fCIUhUEQEAUiEXwiDIVBPxAFIQQgAyAVIBsgASkDgAEiHSADIA98fCIPhUEgEAUiGHwiFYVBGBAFIQMgAyAVIBggAyANIA98fCIPhUEQEAUiGHwiFYVBPxAFIQMgByAQIAcgCSAOfHwiCYVBIBAFIhAgH3wiG4VBGBAFIQcgByAbIBAgByAJIBd8fCIJhUEQEAUiH3wiG4VBPxAFIQcgBiALIAggBiAWfCAKfCILhUEgEAUiCHwiCoVBGBAFIQYgGyAYIAYgCiAIIAEpA5gBIhAgBiALfHwiC4VBEBAFIgh8IgqFQT8QBSIGIA4gFHx8IhSFQSAQBSIYfCIbIAaFQRgQBSEGIAYgGCAGIAUgFHx8IhSFQRAQBSIYIBt8IhuFQT8QBSEFIAQgHyAEIBN8IA98IgaFQSAQBSIPIAp8IgqFQRgQBSEEIAQgDyAEIAYgHXx8IgaFQRAQBSIPIAp8IgqFQT8QBSEEIAMgCCADIBZ8IAl8IgmFQSAQBSIIIAx8IgyFQRgQBSEDIAMgCCADIAkgDXx8IgmFQRAQBSIIIAx8IgyFQT8QBSEDIAcgESAHIBx8IAt8IguFQSAQBSIRIBV8IhWFQRgQBSEHIAcgESAHIAIgC3x8IguFQRAQBSIRIBV8IhWFQT8QBSEHIAQgDCARIAQgEiAUfHwiDIVBIBAFIhF8IhSFQRgQBSEEIAQgESAEIAwgGnx8IgyFQRAQBSIRIBR8IhSFQT8QBSEEIAMgFSAYIAMgBiAQfHwiBoVBIBAFIh18IhWFQRgQBSEDIAMgFSAdIAMgBiAZfHwiGIVBEBAFIh18IhWFQT8QBSEDIAcgDyAHIAkgF3x8IgaFQSAQBSIPIBt8IgmFQRgQBSEHIAcgCSAPIAcgBiAefHwiG4VBEBAFIh98IgmFQT8QBSEHIAUgCiAIIAEpA8gBIgYgBSALfHwiC4VBIBAFIgh8IgqFQRgQBSEFIAkgHSAFIAogCCABKQOgASIPIAUgC3x8IguFQRAQBSIIfCIKhUE/EAUiBSAMIBd8fCIMhUEgEAUiHXwiCSAFhUEYEAUhBSAFIAkgHSAFIAYgDHx8IgyFQRAQBSIdfCIJhUE/EAUhBSAEIAogHyAEIBB8IBh8IhCFQSAQBSIKfCIYhUEYEAUhBCAEIAogBCAQIB58fCIQhUEQEAUiCiAYfCIYhUE/EAUhBCADIBQgCCACIAN8IBt8IhuFQSAQBSIIfCIUhUEYEAUhAiACIBQgCCACIBMgG3x8IhSFQRAQBSIIfCIbhUE/EAUhAiAHIBUgESAHIA58IAt8IguFQSAQBSIRfCIVhUEYEAUhAyADIBEgAyALIBp8fCILhUEQEAUiByAVfCIRhUE/EAUhAyAEIBsgByAEIAwgDXx8IgyFQSAQBSIHfCIVhUEYEAUhBCAEIBUgByAEIAwgGXx8IgyFQRAQBSIbfCIVhUE/EAUhBCACIB0gAiAQIBZ8fCIHhUEgEAUiECARfCIRhUEYEAUhAiACIBEgECACIAcgEnx8Ih2FQRAQBSIffCIRhUE/EAUhAiADIAkgCiADIA8gFHx8IhCFQSAQBSIJfCIKhUEYEAUhAyADIAogCSABKQOAASIHIAMgEHx8IhSFQRAQBSIJfCIKhUE/EAUhAyAFIBggCCAFIBx8IAt8IguFQSAQBSIIfCIQhUEYEAUhBSAKIB8gBSAQIAggASkDwAEiECAFIAt8fCILhUEQEAUiCHwiGIVBPxAFIgUgBiAMfHwiBoVBIBAFIgx8IgogBYVBGBAFIQUgBSAKIAwgBSAGIAd8fCIGhUEQEAUiCnwiDIVBPxAFIQUgBCAYIAkgBCAWfCAdfCIdhUEgEAUiCXwiGIVBGBAFIQQgBCAJIAQgFyAdfHwiHYVBEBAFIgkgGHwiGIVBPxAFIQQgAiAIIAIgDXwgFHwiFIVBIBAFIgggFXwiFYVBGBAFIQIgAiAIIAIgDyAUfHwiD4VBEBAFIgggFXwiFIVBPxAFIQIgAyARIBsgAyASfCALfCILhUEgEAUiFXwiEYVBGBAFIQMgAyARIBUgAyALIBx8fCILhUEQEAUiFXwiEYVBPxAFIQMgBCAUIBUgBCAGIBp8fCIGhUEgEAUiFXwiFIVBGBAFIQQgBCAUIBUgBCAGIB58fCIGhUEQEAUiFHwiFYVBPxAFIQQgAiARIAogAiAOIB18fCIRhUEgEAUiCnwiHYVBGBAFIQIgAiAKIAIgESATfHwiEYVBEBAFIgogHXwiHYVBPxAFIQIgAyAJIAMgDyAZfHwiD4VBIBAFIgkgDHwiDIVBGBAFIQMgAyAJIAMgDyAQfHwiD4VBEBAFIgkgDHwiDIVBPxAFIQMgBSAYIAggASkDmAEiGyAFIAt8fCILhUEgEAUiCHwiGIVBGBAFIQUgDCAKIAUgGCAIIAEpA+gBIh8gBSALfHwiC4VBEBAFIgh8IhiFQT8QBSIFIAYgDXx8IgaFQSAQBSIKfCIMIAWFQRgQBSENIA0gDCAKIA0gBiATfHwiBoVBEBAFIgp8IgyFQT8QBSENIAQgCSAEIBl8IBF8IhGFQSAQBSIJIBh8IhiFQRgQBSEFIAUgCSAFIBEgEnx8IgSFQRAQBSIJIBh8IhGFQT8QBSEFIAIgCCACIAd8IA98IgeFQSAQBSIPIBV8IgiFQRgQBSECIAIgDyACIAcgDnx8IgeFQRAQBSIPIAh8IgiFQT8QBSEOIAMgFCADIBB8IAt8IhCFQSAQBSILIB18IhSFQRgQBSECIAIgCyACIBAgG3x8IgOFQRAQBSIQIBR8IguFQT8QBSECIAUgCCAQIAEpA6ABIAUgBnx8IgaFQSAQBSIQfCIIhUEYEAUhBSAFIBAgBSAGIB98fCIGhUEQEAUiECAIfCIIhUE/EAUhBSAOIAsgCiAOIAQgF3x8IgSFQSAQBSILfCIKhUEYEAUhDiAOIAsgDiAEIBZ8fCIEhUEQEAUiCyAKfCIKhUE/EAUhDiACIAkgAiAHIBx8fCIHhUEgEAUiCSAMfCIMhUEYEAUhAiACIAkgAiAHIBp8fCIHhUEQEAUiCSAMfCIMhUE/EAUhAiANIA8gDSAefCADfCIDhUEgEAUiDyARfCIRhUEYEAUhDSAMIAsgDSAPIAEpA8gBIAMgDXx8IgOFQRAQBSIPIBF8IhGFQT8QBSINIAYgE3x8IgaFQSAQBSILfCIMIA2FQRgQBSENIA0gCyANIAYgFnx8IgaFQRAQBSILIAx8IgyFQT8QBSENIAUgCSAFIB58IAR8IgSFQSAQBSIJIBF8IhGFQRgQBSEFIAUgCSAFIAQgHHx8IgSFQRAQBSIJIBF8IhGFQT8QBSEFIA4gDyAOIBp8IAd8IgeFQSAQBSIPIAh8IgiFQRgQBSEOIA4gDyABKQPoASAHIA58fCIHhUEQEAUiDyAIfCIIhUE/EAUhDiACIBAgASkDoAEgAiADfHwiA4VBIBAFIhAgCnwiCoVBGBAFIQIgAiAQIAIgAyASfHwiA4VBEBAFIhAgCnwiCoVBPxAFIQIgBSAIIBAgASkDgAEgBSAGfHwiBoVBIBAFIhB8IgiFQRgQBSEFIAUgECAFIAYgF3x8IgaFQRAQBSIQIAh8IgiFQT8QBSEFIA4gCyAOIAQgGXx8IgSFQSAQBSILIAp8IgqFQRgQBSEOIA4gCyABKQOYASAEIA58fCIEhUEQEAUiCyAKfCIKhUE/EAUhDiACIAkgASkDyAEgAiAHfHwiB4VBIBAFIgkgDHwiDIVBGBAFIQIgAiAJIAEpA5ABIAIgB3x8IgeFQRAQBSIJIAx8IgyFQT8QBSECIA0gDyABKQPAASADIA18fCIDhUEgEAUiDyARfCIRhUEYEAUhDSANIBEgDyABKQPYASIUIAMgDXx8IgOFQRAQBSIPfCIRhUE/EAUhDSANIAsgASkD6AEgBiANfHwiBoVBIBAFIgsgDHwiDIVBGBAFIQ0gDSALIAYgDXwgFHwiBoVBEBAFIgsgDHwiDIVBPxAFIQ0gBSAJIAUgF3wgBHwiBIVBIBAFIgkgEXwiEYVBGBAFIQUgBSAJIAUgBCAafHwiBIVBEBAFIgkgEXwiEYVBPxAFIQUgDiAPIA4gE3wgB3wiB4VBIBAFIg8gCHwiCIVBGBAFIQ4gDiAPIA4gByAefHwiB4VBEBAFIg8gCHwiCIVBPxAFIQ4gAiAQIAEpA5gBIAIgA3x8IgOFQSAQBSIQIAp8IgqFQRgQBSECIAIgECABKQPIASACIAN8fCIDhUEQEAUiECAKfCIKhUE/EAUhAiAFIBAgBSAGIBZ8fCIGhUEgEAUiECAIfCIIhUEYEAUhBSAFIBAgASkDgAEgBSAGfHwiBoVBEBAFIhAgCHwiCIVBPxAFIQUgDiALIA4gBCAcfHwiBIVBIBAFIgsgCnwiCoVBGBAFIQ4gDiALIAEpA6ABIAQgDnx8IgSFQRAQBSILIAp8IgqFQT8QBSEOIAIgCSABKQPAASACIAd8fCIHhUEgEAUiCSAMfCIMhUEYEAUhAiACIAkgAiAHIBl8fCIHhUEQEAUiCSAMfCIMhUE/EAUhAiANIA8gASkDkAEgAyANfHwiA4VBIBAFIg8gEXwiEYVBGBAFIQ0gDCALIA0gDyANIAMgEnx8IgOFQRAQBSIPIBF8IhGFQT8QBSINIAYgGXx8IgaFQSAQBSILfCIMIA2FQRgQBSENIA0gCyANIAYgHHx8IgaFQRAQBSILIAx8IgyFQT8QBSENIAUgCSAFIBp8IAR8IgSFQSAQBSIJIBF8IhGFQRgQBSEFIAUgCSABKQPIASAEIAV8fCIEhUEQEAUiCSARfCIRhUE/EAUhBSAOIA8gASkD2AEgByAOfHwiB4VBIBAFIg8gCHwiCIVBGBAFIQ4gDiAPIAEpA5gBIAcgDnx8IgeFQRAQBSIPIAh8IgiFQT8QBSEOIAIgECABKQOAASACIAN8fCIDhUEgEAUiECAKfCIKhUEYEAUhAiACIBAgASkDwAEgAiADfHwiA4VBEBAFIhAgCnwiCoVBPxAFIQIgBSAQIAUgBiATfHwiBoVBIBAFIhAgCHwiCIVBGBAFIQUgBSAIIBAgASkDkAEiFCAFIAZ8fCIGhUEQEAUiEHwiCIVBPxAFIQUgDiALIAEpA+gBIAQgDnx8IgSFQSAQBSILIAp8IgqFQRgQBSEOIA4gCyAOIAQgF3x8IgSFQRAQBSILIAp8IgqFQT8QBSEOIAIgCSACIAcgHnx8IgeFQSAQBSIJIAx8IgyFQRgQBSECIAIgDCAJIAEpA6ABIhUgAiAHfHwiB4VBEBAFIgl8IgyFQT8QBSECIA0gDyANIBJ8IAN8IgOFQSAQBSIPIBF8IhGFQRgQBSENIAsgDSAPIA0gAyAWfHwiA4VBEBAFIg8gEXwiEYVBPxAFIg0gBiASfHwiBoVBIBAFIgsgDHwiDCANhUEYEAUhEiASIAwgCyAGIBJ8IBR8IgaFQRAQBSILfCIMhUE/EAUhEiAFIAkgASkDwAEgBCAFfHwiBIVBIBAFIgkgEXwiEYVBGBAFIQ0gDSAJIAQgDXwgFXwiBYVBEBAFIgQgEXwiCYVBPxAFIQ0gDiAPIA4gF3wgB3wiB4VBIBAFIg8gCHwiCIVBGBAFIQ4gDiAPIA4gByAZfHwiB4VBEBAFIg8gCHwiCIVBPxAFIQ4gAiAQIAIgHnwgA3wiA4VBIBAFIhAgCnwiCoVBGBAFIQIgAiAQIAIgAyAWfHwiA4VBEBAFIhAgCnwiCoVBPxAFIQIgDSAIIBAgDSAGIBx8fCIGhUEgEAUiEHwiCIVBGBAFIQ0gDSAQIAEpA9gBIAYgDXx8IgaFQRAQBSIQIAh8IgiFQT8QBSENIA4gCyABKQPIASAFIA58fCIFhUEgEAUiCyAKfCIKhUEYEAUhDiAOIAsgDiAFIBp8fCIFhUEQEAUiCyAKfCIKhUE/EAUhDiACIAwgBCABKQOYASIRIAIgB3x8IgeFQSAQBSIEfCIMhUEYEAUhAiACIAQgAiAHIBN8fCIHhUEQEAUiBCAMfCIMhUE/EAUhAiASIA8gASkD6AEgAyASfHwiA4VBIBAFIg8gCXwiCYVBGBAFIRIgEiAJIA8gASkDgAEiFCADIBJ8fCIDhUEQEAUiD3wiCYVBPxAFIRIgEiALIAYgEnwgFHwiBoVBIBAFIgsgDHwiDIVBGBAFIRIgEiALIBIgBiAefHwiBoVBEBAFIgsgDHwiDIVBPxAFIRIgDSAEIAEpA5ABIAUgDXx8IgWFQSAQBSIEIAl8IgmFQRgQBSENIA0gBCAFIA18IBF8IgWFQRAQBSIEIAl8IgmFQT8QBSENIA4gDyABKQOgASAHIA58fCIHhUEgEAUiDyAIfCIIhUEYEAUhDiAOIA8gDiAHIBZ8fCIHhUEQEAUiDyAIfCIIhUE/EAUhDiACIBAgAiAZfCADfCIDhUEgEAUiECAKfCIKhUEYEAUhAiACIBAgAiADIBd8fCIDhUEQEAUiECAKfCIKhUE/EAUhAiANIBAgASkDwAEgBiANfHwiBoVBIBAFIhAgCHwiCIVBGBAFIQ0gDSAQIAEpA8gBIAYgDXx8IgaFQRAQBSIQIAh8IgiFQT8QBSENIA4gCiALIAEpA9ABIhEgBSAOfHwiBYVBIBAFIgt8IgqFQRgQBSEOIA4gCyABKQPYASAFIA58fCIFhUEQEAUiCyAKfCIKhUE/EAUhDiACIAQgAiAHIBN8fCIHhUEgEAUiBCAMfCIMhUEYEAUhAiACIAQgASkD6AEgAiAHfHwiB4VBEBAFIgQgDHwiDIVBPxAFIQIgEiAPIBIgGnwgA3wiA4VBIBAFIg8gCXwiCYVBGBAFIRIgCyASIA8gEiADIBx8fCIDhUEQEAUiDyAJfCIJhUE/EAUiEiAGIBp8fCIGhUEgEAUiCyAMfCIMIBKFQRgQBSEaIBogCyAGIBp8IBF8IgaFQRAQBSILIAx8IhGFQT8QBSEaIA0gBCABKQOgASAFIA18fCIFhUEgEAUiBCAJfCIJhUEYEAUhEiASIAQgASkDwAEgBSASfHwiBYVBEBAFIgQgCXwiCYVBPxAFIRIgDiAPIAEpA8gBIAcgDnx8IgeFQSAQBSIPIAh8IgiFQRgQBSENIA0gDyANIAcgHHx8Ig6FQRAQBSIHIAh8Ig+FQT8QBSEcIAIgECABKQPoASACIAN8fCIDhUEgEAUiECAKfCIIhUEYEAUhDSANIBAgDSADIBl8fCIChUEQEAUiAyAIfCIQhUE/EAUhGSABIBIgBiAefHwiHiATfCASIAMgHoVBIBAFIhMgD3wiDYVBGBAFIhJ8Ih43AwAgASATIB6FQRAQBSITNwN4IAEgDSATfCITNwNQIAEgEiAThUE/EAU3AyggASAcIAsgASkDgAEgBSAcfHwiE4VBIBAFIhIgEHwiDYVBGBAFIhwgE3wgASkDkAF8IhM3AwggASASIBOFQRAQBSITNwNgIAEgDSATfCITNwNYIAEgEyAchUE/EAU3AzAgASAXIAEpA9gBIA4gGXx8IhN8IBkgBCAThUEgEAUiFyARfCIThUEYEAUiGXwiHDcDECABIBcgHIVBEBAFIhc3A2ggASATIBd8Ihc3A0AgASAXIBmFQT8QBTcDOCABIBogByAWIBp8IAJ8IhaFQSAQBSIZIAl8IheFQRgQBSITIBZ8IAEpA5gBfCIWNwMYIAEgFiAZhUEQEAUiFjcDcCABIBYgF3wiFjcDSCABIBMgFoVBPxAFNwMgIAAgASkDQCAeIAApAACFhTcAAEEBISEDQCAAICFBA3QiIGoiIiABICBqIiApAwAgIikAAIUgIEFAaykDAIU3AAAgIUEBaiIhQQhHDQALIAFBgAJqJAALRQECfyMAQRBrIgNBADoADyABBEADQCADIAAgAmotAAAgAy0AD3I6AA8gAkEBaiICIAFHDQALCyADLQAPQQFrQQh2QQFxCxkAIAAgASACIANCACAEQeSRAigCABESABoLEAAgACABQdyRAigCABEDAAsDAAEL9wEBBH8jAEGAAWsiAyQAIAAQHCAAQShqIgQQHCAAQdAAaiIFEDAgACABQcAHbEHgFWoiASACQQAgAkGAAXFBB3YiBmsgAnFBAXRrQRh0QRh1IgJBARAmECIgACABQfgAaiACQQIQJhAiIAAgAUHwAWogAkEDECYQIiAAIAFB6AJqIAJBBBAmECIgACABQeADaiACQQUQJhAiIAAgAUHYBGogAkEGECYQIiAAIAFB0AVqIAJBBxAmECIgACABQcgGaiACQQgQJhAiIANBCGoiASAEECkgA0EwaiAAECkgA0HYAGogBRCAASAAIAEgBhAiIANBgAFqJAALHQAgABAwIABBKGoQHCAAQdAAahAcIABB+ABqEDALgAIBCH8DQCAAIAJqIAEgAkEDdmotAAAgAkEHcXZBAXE6AAAgAkEBaiICQYACRw0ACwNAIAQiAUEBaiEEAkAgACABaiIGLQAARQ0AIAQhAkEBIQUgAUH+AUsNAANAAkAgACACaiIDLAAAIgdFDQAgByAFdCIHIAYsAAAiCGoiCUEPTARAIAYgCToAACADQQA6AAAMAQsgCCAHayIDQXFIDQIgBiADOgAAA0AgACACaiIDLQAARQRAIANBAToAAAwCCyADQQA6AAAgAkH/AUkhAyACQQFqIQIgAw0ACwsgBUEFSw0BIAVBAWoiBSABaiICQYACSQ0ACwsgBEGAAkcNAAsLlQEBBH8jAEEwayIFJAAgACABQShqIgMgARASIABBKGoiBCADIAEQFSAAQdAAaiIDIAAgAkEoahAKIAQgBCACEAogAEH4AGoiBiACQfgAaiABQfgAahAKIAAgAUHQAGogAkHQAGoQCiAFIAAgABASIAAgAyAEEBUgBCADIAQQEiADIAUgBhAVIAYgBSAGEBIgBUEwaiQAC4sMAQZ/IAAgAWohBQJAAkAgACgCBCICQQFxDQAgAkEDcUUNASAAKAIAIgIgAWohAQJAIAAgAmsiAEGomAIoAgBHBEAgAkH/AU0EQCAAKAIIIgQgAkEDdiICQQN0QbyYAmpGGiAAKAIMIgMgBEcNAkGUmAJBlJgCKAIAQX4gAndxNgIADAMLIAAoAhghBgJAIAAgACgCDCIDRwRAIAAoAggiAkGkmAIoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgAEEUaiICKAIAIgQNACAAQRBqIgIoAgAiBA0AQQAhAwwBCwNAIAIhByAEIgNBFGoiAigCACIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgALIAZFDQICQCAAIAAoAhwiBEECdEHEmgJqIgIoAgBGBEAgAiADNgIAIAMNAUGYmAJBmJgCKAIAQX4gBHdxNgIADAQLIAZBEEEUIAYoAhAgAEYbaiADNgIAIANFDQMLIAMgBjYCGCAAKAIQIgIEQCADIAI2AhAgAiADNgIYCyAAKAIUIgJFDQIgAyACNgIUIAIgAzYCGAwCCyAFKAIEIgJBA3FBA0cNAUGcmAIgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggLAkAgBSgCBCICQQJxRQRAIAVBrJgCKAIARgRAQayYAiAANgIAQaCYAkGgmAIoAgAgAWoiATYCACAAIAFBAXI2AgQgAEGomAIoAgBHDQNBnJgCQQA2AgBBqJgCQQA2AgAPCyAFQaiYAigCAEYEQEGomAIgADYCAEGcmAJBnJgCKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohAQJAIAJB/wFNBEAgBSgCCCIEIAJBA3YiAkEDdEG8mAJqRhogBCAFKAIMIgNGBEBBlJgCQZSYAigCAEF+IAJ3cTYCAAwCCyAEIAM2AgwgAyAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIDRwRAIAUoAggiAkGkmAIoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgBUEUaiIEKAIAIgINACAFQRBqIgQoAgAiAg0AQQAhAwwBCwNAIAQhByACIgNBFGoiBCgCACICDQAgA0EQaiEEIAMoAhAiAg0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiBEECdEHEmgJqIgIoAgBGBEAgAiADNgIAIAMNAUGYmAJBmJgCKAIAQX4gBHdxNgIADAILIAZBEEEUIAYoAhAgBUYbaiADNgIAIANFDQELIAMgBjYCGCAFKAIQIgIEQCADIAI2AhAgAiADNgIYCyAFKAIUIgJFDQAgAyACNgIUIAIgAzYCGAsgACABQQFyNgIEIAAgAWogATYCACAAQaiYAigCAEcNAUGcmAIgATYCAA8LIAUgAkF+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQf8BTQRAIAFBA3YiAkEDdEG8mAJqIQECf0GUmAIoAgAiA0EBIAJ0IgJxRQRAQZSYAiACIANyNgIAIAEMAQsgASgCCAshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggPC0EfIQIgAEIANwIQIAFB////B00EQCABQQh2IgIgAkGA/j9qQRB2QQhxIgR0IgIgAkGA4B9qQRB2QQRxIgN0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBHIgAnJrIgJBAXQgASACQRVqdkEBcXJBHGohAgsgACACNgIcIAJBAnRBxJoCaiEHAkACQEGYmAIoAgAiBEEBIAJ0IgNxRQRAQZiYAiADIARyNgIAIAcgADYCACAAIAc2AhgMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQIgBygCACEDA0AgAyIEKAIEQXhxIAFGDQIgAkEddiEDIAJBAXQhAiAEIANBBHFqIgdBEGooAgAiAw0ACyAHIAA2AhAgACAENgIYCyAAIAA2AgwgACAANgIIDwsgBCgCCCIBIAA2AgwgBCAANgIIIABBADYCGCAAIAQ2AgwgACABNgIICwvEBQEIfyMAQaACayIFJAAgAEEoaiIJIAEQgQEgAEHQAGoiAxAcIAVB8AFqIgYgCRANIAVBwAFqIgcgBkGQCxAKIAYgBiADEBUgByAHIAMQEiAFQZABaiIIIAcQDSAIIAggBxAKIAAgCBANIAAgACAHEAogACAAIAYQCiMAQZABayIDJAAgA0HgAGoiAiAAEA0gA0EwaiIEIAIQDSAEIAQQDSAEIAAgBBAKIAIgAiAEEAogAiACEA0gAiAEIAIQCiAEIAIQDUEBIQIDQCADQTBqIgQgBBANIAJBAWoiAkEFRw0ACyADQeAAaiICIANBMGoiBCACEAogBCACEA1BASECA0AgA0EwaiIEIAQQDSACQQFqIgJBCkcNAAsgA0EwaiICIAIgA0HgAGoQCiADIAIQDUEBIQIDQCADIAMQDSACQQFqIgJBFEcNAAsgA0EwaiICIAMgAhAKQQEhAgNAIANBMGoiBCAEEA0gAkEBaiICQQtHDQALIANB4ABqIgIgA0EwaiIEIAIQCiAEIAIQDUEBIQIDQCADQTBqIgQgBBANIAJBAWoiAkEyRw0ACyADQTBqIgIgAiADQeAAahAKIAMgAhANQQEhAgNAIAMgAxANIAJBAWoiAkHkAEcNAAsgA0EwaiICIAMgAhAKQQEhAgNAIANBMGoiBCAEEA0gAkEBaiICQTNHDQALIANB4ABqIgIgA0EwaiACEAogAiACEA0gAiACEA0gACACIAAQCiADQZABaiQAIAAgACAIEAogACAAIAYQCiAFQeAAaiIDIAAQDSADIAMgBxAKIAVBMGoiAiADIAYQFQJ/IAIQVkUEQCAFIAVB4ABqIAVB8AFqEBJBfyAFEFZFDQEaIAAgAEHACxAKCyAAEH8gAS0AH0EHdkYEQCAAIAAQgAELIABB+ABqIAAgCRAKQQALIQAgBUGgAmokACAACyYBAX8jAEEgayIBJAAgASAAECwgAS0AACEAIAFBIGokACAAQQFxC6oBAQl/IAEoAgQhAiABKAIIIQMgASgCDCEEIAEoAhAhBSABKAIUIQYgASgCGCEHIAEoAhwhCCABKAIgIQkgASgCJCEKIABBACABKAIAazYCACAAQQAgCms2AiQgAEEAIAlrNgIgIABBACAIazYCHCAAQQAgB2s2AhggAEEAIAZrNgIUIABBACAFazYCECAAQQAgBGs2AgwgAEEAIANrNgIIIABBACACazYCBAvCAwEMfiABNQAAIQQgAUEEahAOIQUgAUEHahAOIQYgAUEKahAOIQIgAUENahAOIQcgATUAECEDIAFBFGoQDiEIIAFBF2oQDiEJIAFBGmoQDiEKIAFBHWoQDiELIAAgAkIDhiICIAJCgICACHwiAkKAgIDwD4N9IAZCBYYgBUIGhiIFQoCAgAh8IgZCGYd8IgxCgICAEHwiDUIaiHw+AgwgACAMIA1CgICA4A+DfT4CCCAAIAMgA0KAgIAIfCIDQoCAgPAPg30gB0IChiACQhmHfCICQoCAgBB8IgdCGoh8PgIUIAAgAiAHQoCAgOAPg30+AhAgACAIQgeGIANCGYd8IgMgA0KAgIAQfCIDQoCAgOAPg30+AhggACAJQgWGIgIgAkKAgIAIfCICQoCAgPAPg30gA0IaiHw+AhwgACAKQgSGIAJCGYd8IgMgA0KAgIAQfCIDQoCAgOAPg30+AiAgACALQgKGQvz//w+DIgIgAkKAgIAIfCICQoCAgBCDfSADQhqIfD4CJCAAIAUgBkKAgIDwD4N9IAQgAkIZiEITfnwiA0KAgIAQfCIEQhqIfD4CBCAAIAMgBEKAgIDgD4N9PgIAC6sDAgx/BH4gACkDOCIOUEUEQCAAIA6nIgNqIgJBQGtBAToAACAOQgF8Qg9YBEAgAkHBAGpBAEEPIANrEA8aCyAAQQE6AFAgACAAQUBrQhAQVwsgADUCNCEOIAA1AjAhDyAANQIsIRAgASAANQIoIAAoAiQgACgCICAAKAIcIAAoAhgiA0EadmoiAkEadmoiBEEadmoiB0GAgIBgciAEQf///x9xIgggAkH///8fcSIFIAAoAhQgB0EadkEFbGoiAkH///8fcSIJQQVqIgpBGnYgA0H///8fcSACQRp2aiICaiIGQRp2aiILQRp2aiIMQRp2aiIEQR91IgMgAnEgBiAEQR92QQFrIgZB////H3EiAnFyIg1BGnQgAiAKcSADIAlxcnKtfCIRpxAJIAFBBGogECADIAVxIAIgC3FyIgVBFHQgDUEGdnKtfCARQiCIfCIQpxAJIAFBCGogDyADIAhxIAIgDHFyIgJBDnQgBUEMdnKtfCAQQiCIfCIPpxAJIAFBDGogDiAEIAZxIAMgB3FyQQh0IAJBEnZyrXwgD0IgiHynEAkgAEHYABAIC/MBAQN+AkAgACkDOCIEUEUEQEIQIAR9IgMgAiACIANWGyIFUEUEQEIAIQMDQCAAIAMgBHynakFAayABIAOnai0AADoAACAAKQM4IQQgA0IBfCIDIAVSDQALCyAAIAQgBXwiAzcDOCADQhBUDQEgACAAQUBrQhAQVyAAQgA3AzggAiAFfSECIAEgBadqIQELIAJCEFoEQCAAIAEgAkJwgyIDEFcgAkIPgyECIAEgA6dqIQELIAJQDQBCACEDA0AgACAAKQM4IAN8p2pBQGsgASADp2otAAA6AAAgA0IBfCIDIAJSDQALIAAgACkDOCACfDcDOAsLsgEBAX8gACABKAAAQf///x9xNgIAIAAgASgAA0ECdkGD/v8fcTYCBCAAIAEoAAZBBHZB/4H/H3E2AgggACABKAAJQQZ2Qf//wB9xNgIMIAEoAAwhAiAAQgA3AhQgAEIANwIcIABBADYCJCAAIAJBCHZB//8/cTYCECAAIAEoABA2AiggACABKAAUNgIsIAAgASgAGDYCMCABKAAcIQEgAEEAOgBQIABCADcDOCAAIAE2AjQLMAECfyMAIgVBgAFrQUBxIgQkACAEIAMQhAEgBCABIAIQgwEgBCAAEIIBIAUkAEEACwsAIAAgAUEgEIcBC2wBAX8jAEEQayIDIAA2AgwgAyABNgIIQQAhASADQQA2AgQgAkEASgRAA0AgAyADKAIEIAMoAgggAWotAAAgAygCDCABai0AAHNyNgIEIAFBAWoiASACRw0ACwsgAygCBEEBa0EIdkEBcUEBawspAQJ/A0AgACACQQN0IgNqIAEgA2opAAA3AwAgAkEBaiICQYABRw0ACwtyAQF/AkAgAUEEcUUNACAAKAIAIgEEQCABKAIEIAAoAhBBCnQQCAsgACgCBCIBRQ0AIAEgACgCFEEDdBAICyAAKAIEEBggAEEANgIEAkAgACgCACIBRQ0AIAEoAgAiAkUNACACEBgLIAEQGCAAQQA2AgALEAAgAEIANwIAIABCADcCCAspAQF/IwBBEGsiACQAIABBADoAD0GMkgIgAEEPakEAEAEaIABBEGokAAsoACACQoCAgIAQWgRAEBQACyAAIAEgAiADQgEgBEG8kQIoAgAREgAaCxYAIABCwAAgASACQbSRAigCABENABoLPQECfyMAIgRBgANrQUBxIgMkACADQQBBAEEYEEIaIAMgAUIgECUaIAMgAkIgECUaIAMgAEEYEEEaIAQkAAsqAQF/QX8hBiACQhBaBH8gACABQRBqIAEgAkIQfSADIAQgBRCQAQUgBgsLPAECfyMAQSBrIgckAEF/IQggByAFIAYQZEUEQCAAIAEgAiADIAQgBxBgIQggB0EgEAgLIAdBIGokACAICyUAIAJC8P///w9aBEAQFAALIABBEGogACABIAIgAyAEIAUQkgELPAECfyMAQSBrIgckAEF/IQggByAFIAYQZEUEQCAAIAEgAiADIAQgBxBhIQggB0EgEAgLIAdBIGokACAICw4AIAFBIBAdIAAgARB3C+cCAQV/IwBBoANrIgYkACMAQcABayIEJAAgBhA2IARBQGtBNkGAARAPGiAEIAMtAABBNnM6AEBBASEFA0AgBEFAayAFaiIHIActAAAgAyAFai0AAHM6AAAgBUEBaiIFQSBHDQALIAYgBEFAayIFQoABEBsaIAZB0AFqIgcQNiAFQdwAQYABEA8aIAQgAy0AAEHcAHM6AEBBASEFA0AgBEFAayAFaiIIIAgtAAAgAyAFai0AAHM6AAAgBUEBaiIFQSBHDQALIAcgBEFAayIDQoABEBsaIANBgAEQCCAEQcAAEAggBEHAAWokACAGIAEgAhAbGiMAQUBqIgEkACMAQUBqIgMkACAGIAMQJyAGQdABaiIEIANCwAAQGxogBCABECcgA0HAABAIIANBQGskACAAIAEpAxg3ABggACABKQMQNwAQIAAgASkDCDcACCAAIAEpAwA3AAAgAUFAayQAIAZBoANqJABBAAsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAuUAQEBfyMAQRBrIgUkACAAQQBBgAEQDyEAAn8gBEGBgICAeEkgAiADhEL/////D1hxRQRAQeCXAkEWNgIAQX8MAQsgA1BFIARB/z9LcUUEQEHglwJBHDYCAEF/DAELIAVBEBAdQX9BACADpyAEQQp2QQEgASACpyAFQRBBAEEgIABBgAFBAhA0GwshACAFQRBqJAAgAAugAgIEfwF+IwBBQGoiBCQAAkACQAJAIAAQISIGQYABSSABQv////8PWHFFBEBB4JcCQRw2AgAMAQsgBEEANgI4IARCADcDMCAEQgA3AygCQAJ/QQAgBkUNABogBq0iCKciBSAGQQFyQYCABEkNABpBfyAFIAhCIIinGwsiBxAfIgVFDQAgBUEEay0AAEEDcUUNACAFQQAgBxAPGgsgBQ0BC0F/IQAMAQsgBEIANwMgIAQgBTYCCCAEIAU2AhAgBCAGNgIUIAQgBTYCACAEIAY2AgwgBEIANwMYIAQgBjYCBAJ/IAQgACADEJkBBEBB4JcCQRw2AgBBfwwBCyAEKAIoIAGnRyAEKAIsIAJBCnZHcgshACAFEBgLIARBQGskACAAC5wCAQV/IwBBQGoiBCQAIARBCGpBAEE0EA8aIAQgABAhIgU2AhQgBCAFNgIkIAQgBTYCBCAEIAUQHyIGNgIgIAQgBRAfIgc2AhAgBCAFEB8iCDYCAAJAAkAgCEUgBkUgB0Vycg0AIAUQHyIFRQ0AIAQgACADEJkBIgAEQCAEKAIgEBggBCgCEBAYIAQoAgAQGCAFEBgMAgtBACEAIAQoAiggBCgCLCAEKAI0IAEgAiAEKAIQIAQoAhQgBSAEKAIEQQBBACADEDQhASAEKAIgEBggBCgCEBAYAkAgAUUEQCAFIAQoAgAgBCgCBBBPRQ0BC0FdIQALIAUQGCAEKAIAEBgMAQsgBhAYIAcQGCAIEBhBaiEACyAEQUBrJAAgAAvMAwEEfyMAQRBrIgMkACAAKAIUIQUgAEEANgIUIAAoAgQhBiAAQQA2AgRBZiEEAkACQAJ/AkACQCACQQFrDgIBAAQLQWAhBCABQdUIQQkQIA0DIAFBCWoMAQtBYCEEIAFBzAhBCBAgDQIgAUEIagsiBEHICkEDECANACAEQQNqIANBDGoQQCIBRQ0AQWYhBCADKAIMQRNHDQEgAUHUCkEDECANACABQQNqIANBDGoQQCIBRQ0AIAAgAygCDDYCLCABQcwKQQMQIA0AIAFBA2ogA0EMahBAIgFFDQAgACADKAIMNgIoIAFB0ApBAxAgDQAgAUEDaiADQQxqEEAiAUUNACAAIAMoAgwiAjYCMCAAIAI2AjQgAS0AACICQSRHDQAgAyAFNgIMIAAoAhAgBSABIAJBJEZqIgEgARAhQQAgA0EMaiADQQhqQQMQZw0AIAAgAygCDDYCFCADKAIIIgEtAAAiAkEkRw0AIAMgBjYCDCAAKAIAIAYgASACQSRGaiIBIAEQIUEAIANBDGogA0EIakEDEGcNACAAIAMoAgw2AgQgAygCCCEBIAAQWCIEDQFBYEEAIAEtAAAbIQQMAQtBYCEECyADQRBqJAAgBAuTAgEEfyMAQTBrIggkACAIQQA2AgQgCEEQaiIJIAYgBxBLIAggBikAEDcCCCMAQeACayIGJAAgBkEgaiIKQsAAIAhBBGoiCyAJEF0gBkHgAGoiByAKECQgCkHAABAIIAcgBCAFEAsgB0GQkQJCACAFfUIPgxALIAcgASACEAsgB0GQkQJCACACfUIPgxALIAZBGGoiBCAFEBAgByAEQggQCyAEIAIQECAHIARCCBALIAcgBhAjIAdBgAIQCCAGIAMQPSEDIAZBEBAIAkAgAEUNACADBEAgAEEAIAKnEA8aQX8hAwwBCyAAIAEgAiALQQEgCRBcQQAhAwsgBkHgAmokACADIQAgCUEgEAggCEEwaiQAIAAL7AEBBH8jAEEwayIJJAAgCUEANgIEIAlBEGoiCiAHIAgQSyAJIAcpABA3AggjAEHQAmsiCCQAIAhBEGoiC0LAACAJQQRqIgwgChBdIAhB0ABqIgcgCxAkIAtBwAAQCCAHIAUgBhALIAdBkJECQgAgBn1CD4MQCyAAIAMgBCAMQQEgChBcIAcgACAEEAsgB0GQkQJCACAEfUIPgxALIAhBCGoiACAGEBAgByAAQggQCyAAIAQQECAHIABCCBALIAcgARAjIAdBgAIQCCACBEAgAkIQNwMACyAIQdACaiQAIApBIBAIIAlBMGokAEEACxAAIAAgASACIAMgBCAFEG8LegECfyAAQcD/AHNBAWpBCHZBf3NBL3EgAEHB/wBzQQFqQQh2QX9zQStxIABB5v8DakEIdkH/AXEiASAAQcEAanFyciAAQcz/A2pBCHYiAiAAQccAanEgAUH/AXNxciAAQfwBaiAAQcL/A2pBCHZxIAJBf3NxQf8BcXILewECfyAAQcD/AXNBAWpBCHZBf3NB3wBxIABBwf8Ac0EBakEIdkF/c0EtcSAAQeb/A2pBCHZB/wFxIgEgAEHBAGpxcnIgAEHM/wNqQQh2IgIgAEHHAGpxIAFB/wFzcXIgAEH8AWogAEHC/wNqQQh2cSACQX9zcUH/AXFyCz0AIAACfyACBEAgACACKAAANgIwIAIoAAQMAQsgAEEANgIwQQALNgI0IAAgASgAADYCOCAAIAEoAAQ2AjwLDwAgACABIAIgA0EAEKEBC6sIAQh/IwBB0ARrIgkkAEF/IQogAEEgaiEHQSAhBUEBIQgDQCAHIAVBAWsiBWotAAAiCyAFQcAVai0AACIMa0EIdSAIcSAGQf8BcXIhBiALIAxzQf//A2pBCHYgCHEhCCAFDQALAkAgBkUNACAAEFENACADLQAfQX9zQf8AcSEFQR4hBgNAIAUgAyAGai0AAEF/c3IhBSAGQQFrIgYNAAsgBUH/AXFBAWtB7AEgAy0AAGtxQRd0QR91QX9GDQAgAxBRDQAgCUGAAWogAxB+DQAgCUGAA2oiBSAEEGogBSAAQiAQGxogBSADQiAQGxogBSABIAIQGxogBSAJQcACaiIBECcgARBQIwBB4BFrIgQkACAEQeAPaiABEHsgBEHgDWogBxB7IARB4ANqIgMgCUGAAWoiBRAZIARBwAJqIgEgBRA6IAQgARATIAEgBCADEBogBEGgAWoiAyABEBMgBEGABWoiBSADEBkgASAEIAUQGiADIAEQEyAEQaAGaiIFIAMQGSABIAQgBRAaIAMgARATIARBwAdqIgUgAxAZIAEgBCAFEBogAyABEBMgBEHgCGoiBSADEBkgASAEIAUQGiADIAEQEyAEQYAKaiIFIAMQGSABIAQgBRAaIAMgARATIARBoAtqIgUgAxAZIAEgBCAFEBogAyABEBMgBEHADGogAxAZIAlBCGoiCBAwIAhBKGoQHCAIQdAAahAcQf8BIQMCQANAAkAgAyIBIARB4A9qai0AAA0AIARB4A1qIAFqLQAADQAgAUEBayEDIAENAQwCCwsgAUEASA0AA0AgBEHAAmogCBAxAkAgASIDIARB4A9qaiwAACIBQQBKBEAgBEGgAWoiBSAEQcACaiIGEBMgBiAFIARB4ANqIAFB/gFxQQF2QaABbGoQGgwBCyABQQBODQAgBEGgAWoiBSAEQcACaiIGEBMgBiAFIARB4ANqQQAgAWtB/gFxQQF2QaABbGoQfAsCQCAEQeANaiADaiwAACIHQQBKBEAgBEGgAWoiASAEQcACaiIFEBMgBSABIAdB/gFxQQF2QfgAbEGgDGoQUwwBCyAHQQBODQAgBEGgAWoiBSAEQcACaiIBEBMjAEEwayIKJAAgASAFQShqIgsgBRASIAFBKGoiBiALIAUQFSABQdAAaiILIAFBACAHa0H+AXFBAXZB+ABsQaAMaiIMQShqEAogBiAGIAwQCiABQfgAaiIHIAxB0ABqIAVB+ABqEAogCiAFQdAAaiIFIAUQEiABIAsgBhAVIAYgCyAGEBIgCyAKIAcQFSAHIAogBxASIApBMGokAAsgCCAEQcACahA7IANBAWshASADQQBKDQALCyAEQeARaiQAIAlBoAJqIgEgCBBUQX8gASAAEIYBIAAgAUYbIAAgAUEgEE9yIQoLIAlB0ARqJAAgCgsUACAAIAEgAiADIARBABCjARpBAAvnIAI8fgR/IwBBsARrIkQkACBEQeACaiJFIAUQaiBEQaACaiJCIARCIBA1GiBFIERBwAJqQiAQGxogRSACIAMQGxogRSBEQeABaiJDECcgBCkAICEIIAQpACghByAEKQAwIQYgACAEKQA4NwA4IAAgBjcAMCAAIAc3ACggAEEgaiIEIAg3AAAgQxBQIEQgQxBSIAAgRBBUIEUgBRBqIEUgAELAABAbGiBFIAIgAxAbGiBFIERBoAFqIgAQJyAAEFAgQiBCLQAAQfgBcToAACBCIEItAB9BP3FBwAByOgAfIAAQDiEQIAA1AAIhLSAAQQVqEA4hLiAANQAHIS8gADUACiEwIABBDWoQDiE2IAA1AA8hNyAAQRJqEA4hOCAAQRVqEA4hOSAANQAXIQ8gAEEaahAOIQkgADUAHCEMIEIQDiExIEI1AAIhOiBCQQVqEA4hOyBCNQAHISogQjUACiErIEJBDWoQDiE8IEI1AA8hDiBCQRJqEA4hDSBCQRVqEA4hCCBCNQAXIQcgQkEaahAOIQYgQjUAHCEDIEMQDiE+IEM1AAIhPyBDQQVqEA4hQCBDNQAHIUEgQzUACiE9IENBDWoQDiERIEM1AA8hLCBDQRJqEA4hCiBDQRVqEA4hCyAEIANCB4giEiAJQgKIQv///wCDIhN+IAZCAohC////AIMiFCAMQgeIIhV+fCATIBR+IAdCBYhC////AIMiFiAVfnwgEiAPQgWIQv///wCDIhd+fCIYQoCAQH0iD0IVh3wiCUKAgEB9IgxCFYcgEiAVfiIDIANCgIBAfSIDQoCAgH+DfXwiMkKDoVZ+IANCFYciM0LRqwh+fCA8QgGIQv///wCDIhkgE34gK0IEiEL///8AgyIaIBV+fCAOQgaIQv///wCDIhsgF358IAhC////AIMiHCA4QgOIQv///wCDIh1+fCANQgOIQv///wCDIh4gOUL///8AgyIffnwgFiA3QgaIQv///wCDIiB+fCAUIDZCAYhC////AIMiIX58IBIgMEIEiEL///8AgyIifnwgEyAafiAqQgeIQv///wCDIiMgFX58IBcgGX58IBsgH358IBwgIH58IB0gHn58IBYgIX58IBQgIn58IBIgL0IHiEL///8AgyIkfnwiCEKAgEB9IgdCFYd8IgN8IANCgIBAfSIGQoCAgH+DfSAIIDNC04xDfnwgMkLRqwh+fCAJIAxCgICAf4N9IjRCg6FWfnwgB0KAgIB/g30gEyAjfiA7QgKIQv///wCDIiUgFX58IBcgGn58IBkgH358IBsgHX58IBwgIX58IB4gIH58IBYgIn58IBQgJH58IBIgLkICiEL///8AgyImfnwgEyAlfiA6QgWIQv///wCDIicgFX58IBcgI358IBogH358IBkgHX58IBsgIH58IBwgIn58IB4gIX58IBYgJH58IBQgJn58IBIgLUIFiEL///8AgyIofnwiNkKAgEB9IjdCFYd8IjhCgIBAfSI5QhWHfCI6QoCAQH0iO0IVh3wiKkKAgEB9IitCFYcgEyAbfiAVIBl+fCAcIB9+fCAXIB5+fCAWIB1+fCAUICB+fCASICF+fCIDIDNCg6FWfnwgA0KAgEB9IgdCgICAf4N9IAZCFYd8IgMgA0KAgEB9IgZCgICAf4N9fCI1QoOhVn4gFyAcfiAVIBt+fCATIB5+fCAWIB9+fCAUIB1+fCASICB+fCAHQhWHfCIDIANCgIBAfSINQoCAgH+DfSAGQhWHfCItQtGrCH58IB8gJ34gMUL///8AgyIpIBd+fCAdICV+fCAgICN+fCAaICF+fCAZICJ+fCAbICR+fCAcICh+fCAeICZ+fCAWIBBC////AIMiEH58IEM1ABdCBYhC////AIN8IB0gJ34gHyApfnwgICAlfnwgISAjfnwgGiAifnwgGSAkfnwgGyAmfnwgECAcfnwgHiAofnwgC0L///8Ag3wiC0KAgEB9IglCFYh8IgwgGCAPQoCAgH+DfSATIBZ+IBUgHH58IBQgF358IBIgH358IBUgHn4gEyAcfnwgFiAXfnwgFCAffnwgEiAdfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCIuQpjaHH4gNEKT2Ch+fCAGIANCgICAf4N9Ii9C5/YnfnwgCCAHQoCAgH+DfSANQhWHfCIwQtOMQ358fCAMQoCAQH0iDkKAgIB/g30gL0KY2hx+IC5Ck9gofnwgMELn9id+fCALfCAJQoCAgH+DfSAgICd+IB0gKX58ICEgJX58ICIgI358IBogJH58IBkgJn58IBsgKH58IBAgHn58IApCA4hC////AIN8ICEgJ34gICApfnwgIiAlfnwgIyAkfnwgGiAmfnwgGSAofnwgECAbfnwgLEIGiEL///8Ag3wiC0KAgEB9IglCFYh8IgxCgIBAfSIIQhWIfCIHQoCAQH0iBkIVh3wiA3wgA0KAgEB9Ig9CgICAf4N9IAcgLULTjEN+fCAwQpjaHH4gL0KT2Ch+fCAMfCAIQoCAgH+DfSALIDBCk9gofnwgIiAnfiAhICl+fCAkICV+fCAjICZ+fCAaICh+fCAQIBl+fCARQgGIQv///wCDfCAkICd+ICIgKX58ICUgJn58ICMgKH58IBAgGn58ID1CBIhC////AIN8IjxCgIBAfSI9QhWIfCIRQoCAQH0iLEIViHwgCUKAgIB/g30iCkKAgEB9IhhCFYd8Ig1CgIBAfSILQhWHfCAGQoCAgH+DfSA1QtGrCH58ICogK0KAgIB/g30iMUKDoVZ+fCIJQoCAQH0iDEIVh3wiCEKAgEB9IgdCFYcgFyAnfiATICl+fCAfICV+fCAdICN+fCAaICB+fCAZICF+fCAbICJ+fCAcICZ+fCAeICR+fCAWICh+fCAQIBR+fCBDQRpqEA5CAohC////AIN8IgMgNEKY2hx+IDJCk9gofnwgLkLn9id+fCAvQtOMQ358IDBC0asIfnx8IA5CFYh8IANCgIBAfSIGQoCAgH+DfSIDIC1Cg6FWfnwgD0IVh3wgA0KAgEB9Ig9CgICAf4N9IgN8IANCgIBAfSIOQoCAgH+DfSAIIAdCgICAf4N9IAkgDEKAgIB/g30gDSAtQuf2J358IAtCgICAf4N9IDVC04xDfnwgMULRqwh+fCA6IDtCgICAf4N9IDJC04xDfiAzQuf2J358IDRC0asIfnwgLkKDoVZ+fCA4fCA5QoCAgH+DfSAyQuf2J34gM0KY2hx+fCA0QtOMQ358IDZ8IC5C0asIfnwgL0KDoVZ+fCA3QoCAgH+DfSATICd+IBUgKX58IBcgJX58IB8gI358IBogHX58IBkgIH58IBsgIX58IBwgJH58IB4gIn58IBYgJn58IBAgEn58IBQgKH58IEM1ABxCB4h8IAZCFYh8Ig1CgIBAfSILQhWHfCIJQoCAQH0iDEIVh3wiBkKAgEB9IgNCFYd8IipCg6FWfnwgLUKY2hx+IAp8IBhCgICAf4N9IDVC5/YnfnwgMULTjEN+fCAqQtGrCH58IAYgA0KAgIB/g30iK0KDoVZ+fCIIQoCAQH0iB0IVh3wiBkKAgEB9IgNCFYd8IAYgA0KAgIB/g30gCCAHQoCAgH+DfSARICxCgICAf4N9IC1Ck9gofnwgNUKY2hx+fCAxQuf2J358IAkgDEKAgIB/g30gMkKY2hx+IDNCk9gofnwgNELn9id+fCAuQtOMQ358IC9C0asIfnwgMEKDoVZ+fCANfCALQoCAgH+DfSAPQhWHfCINQoCAQH0iC0IVh3wiCkKDoVZ+fCAqQtOMQ358ICtC0asIfnwgJiAnfiAkICl+fCAlICh+fCAQICN+fCBBQgeIQv///wCDfCAnICh+ICYgKX58IBAgJX58IEBCAohC////AIN8IhhCgIBAfSIPQhWIfCIJQoCAQH0iDEIViCA8fCA9QoCAgH+DfSA1QpPYKH58IDFCmNocfnwgCkLRqwh+fCAqQuf2J358ICtC04xDfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIA0gC0KAgIB/g30gDkIVh3wiEUKAgEB9IixCFYciDkKDoVZ+fCADQoCAgH+DfSAIIA5C0asIfnwgB0KAgIB/g30gCSAMQoCAgH+DfSAxQpPYKH58IApC04xDfnwgKkKY2hx+fCArQuf2J358IBggECAnfiAoICl+fCA/QgWIQv///wCDfCAQICl+ID5C////AIN8Ig1CgIBAfSILQhWIfCIJQoCAQH0iDEIViHwgD0KAgID///8Pg30gCkLn9id+fCAqQpPYKH58ICtCmNocfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIA5C04xDfnwgA0KAgIB/g30gCCAOQuf2J358IAdCgICAf4N9IAkgDEKAgID///8Pg30gCkKY2hx+fCArQpPYKH58IA0gC0KAgID///8Dg30gCkKT2Ch+fCIIQoCAQH0iB0IVh3wiBkKAgEB9IgNCFYd8IAYgDkKY2hx+fCADQoCAgH+DfSAIIAdCgICAf4N9IA5Ck9gofnwiCkIVh3wiDkIVh3wiBkIVh3wiA0IVh3wiGEIVh3wiD0IVh3wiDUIVh3wiC0IVh3wiCUIVh3wiDEIVh3wiCEIVhyARICxCgICAf4N9fCIHQhWHIhFCk9gofiAKQv///wCDfCIsPAAAIAQgLEIIiDwAASAEIBFCmNocfiAOQv///wCDfCAsQhWHfCIKQguIPAAEIAQgCkIDiDwAAyAEIBFC5/YnfiAGQv///wCDfCAKQhWHfCIOQgaIPAAGIAQgLEIQiEIfgyAKQv///wCDIgZCBYaEPAACIAQgEULTjEN+IANC////AIN8IA5CFYd8IgpCCYg8AAkgBCAKQgGIPAAIIAQgDkL///8AgyIDQgKGIAZCE4iEPAAFIAQgEULRqwh+IBhC////AIN8IApCFYd8IhhCDIg8AAwgBCAYQgSIPAALIAQgCkL///8AgyIGQgeGIANCDoiEPAAHIAQgEUKDoVZ+IA9C////AIN8IBhCFYd8Ig9CB4g8AA4gBCAYQv///wCDIgNCBIYgBkIRiIQ8AAogBCANQv///wCDIA9CFYd8Ig1CCog8ABEgBCANQgKIPAAQIAQgD0L///8AgyIGQgGGIANCFIiEPAANIAQgC0L///8AgyANQhWHfCILQg2IPAAUIAQgC0IFiDwAEyAEIA1C////AIMiA0IGhiAGQg+IhDwADyAEIAlC////AIMgC0IVh3wiCTwAFSAEIAtCA4YgA0ISiIQ8ABIgBCAJQgiIPAAWIAQgDEL///8AgyAJQhWHfCIGQguIPAAZIAQgBkIDiDwAGCAEIAhC////AIMgBkIVh3wiA0IGiDwAGyAEIAlCEIhCH4MgBkL///8AgyIGQgWGhDwAFyAEIAdC////AIMgA0IVh3wiB0IRiDwAHyAEIAdCCYg8AB4gBCAHQgGIPAAdIAQgA0L///8AgyIDQgKGIAZCE4iEPAAaIAQgB0IHhiADQg6IhDwAHCBCQcAAEAggQ0HAABAIIAEEQCABQsAANwMACyBEQbAEaiQAQQALtgECAX8DfiMAQaABayIDJAAgASACQiAQNRogASABLQAAQfgBcToAACABIAEtAB9BP3FBwAByOgAfIAMgARBSIAAgAxBUIAIpAAghBCACKQAQIQUgAikAACEGIAEgAikAGDcAGCABIAU3ABAgASAENwAIIAEgBjcAACAAKQAIIQQgACkAECEFIAApAAAhBiABIAApABg3ADggASAFNwAwIAEgBDcAKCABIAY3ACAgA0GgAWokAEEAC5oBAgF+An8gAkEITwRAIAJBA3YhBEEAIQIDQCAAIAJBA3QiBWogASAFaikDACIDQiiGQoCAgICAgMD/AIMgA0I4hoQgA0IYhkKAgICAgOA/gyADQgiGQoCAgIDwH4OEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhDcAACACQQFqIgIgBEcNAAsLC9YBAQN/IwBB4AJrIgkkACAJQSBqIgpCwAAgBiAHEDMgCUHgAGoiCCAKECQgCkHAABAIIAggBCAFEAsgCEGQigJCACAFfUIPgxALIAggASACEAsgCEGQigJCACACfUIPgxALIAlBGGoiBCAFEBAgCCAEQggQCyAEIAIQECAIIARCCBALIAggCRAjIAhBgAIQCCAJIAMQPSEDIAlBEBAIAkAgAEUNACADBEAgAEEAIAKnEA8aQX8hAwwBCyAAIAEgAiAGQQEgBxAuQQAhAwsgCUHgAmokACADC7MBAQN/IwBB4AJrIggkACAIQSBqIgogBiAHEI0BIAhB4ABqIgkgChAkIApBwAAQCCAJIAQgBRALIAhBGGoiBCAFEBAgCSAEQggQCyAJIAEgAhALIAQgAhAQIAkgBEIIEAsgCSAIECMgCUGAAhAIIAggAxA9IQMgCEEQEAgCQCAARQ0AIAMEQCAAQQAgAqcQDxpBfyEDDAELIAAgASACIAYgBxCMAUEAIQMLIAhB4AJqJAAgAwuzAQEDfyMAQdACayIKJAAgCkEQaiILQsAAIAcgCBAzIApB0ABqIgkgCxAkIAtBwAAQCCAJIAUgBhALIAlBkIoCQgAgBn1CD4MQCyAAIAMgBCAHQQEgCBAuIAkgACAEEAsgCUGQigJCACAEfUIPgxALIApBCGoiACAGEBAgCSAAQggQCyAAIAQQECAJIABCCBALIAkgARAjIAlBgAIQCCACBEAgAkIQNwMACyAKQdACaiQAQQALkAEBA38jAEHQAmsiCiQAIApBEGoiCyAHIAgQjQEgCkHQAGoiCSALECQgC0HAABAIIAkgBSAGEAsgCkEIaiIFIAYQECAJIAVCCBALIAAgAyAEIAcgCBCMASAJIAAgBBALIAUgBBAQIAkgBUIIEAsgCSABECMgCUGAAhAIIAIEQCACQhA3AwALIApB0AJqJABBAAsrAQJ/A0AgACACaiIDIAMtAAAgASACai0AAHM6AAAgAkEBaiICQQhHDQALCzIBA39BASEBA0AgACACaiIDIAEgAy0AAGoiAToAACABQQh2IQEgAkEBaiICQQRHDQALC7oBAQF/IwBBwAFrIgQkACACRSABQcEAa0H/AXFBvwFNciADQcEAa0H/AXFBvwFNckUEQCAEQYECOwGCASAEIAM6AIEBIAQgAToAgAEgBEGAAWoiAUEEchByIAFBCHJCABAQIARBkAFqQQBBMBAPGiAAIAEQcyADIARqQQBBAEGAASADayADQRh0QRh1QQBIGxAPGiAAIAQgAiADEBEiAEKAARA4GiAAQYABEAggAEHAAWokAEEADwsQFAALYgEBfyMAQUBqIgIkACABQcEAa0H/AXFBvwFNBEAQFAALIAJBAToAAyACQYACOwABIAIgAToAACACQQRyEHIgAkEIckIAEBAgAkEQakEAQTAQDxogACACEHMgAkFAayQAQQALGQAgACABIAIgA0IBIARB5JECKAIAERIAGgtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JECKAIAEQIARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0ACyADLQAPQRd0QYCAgARrQR91IQULIANBEGokACAFC8MIAgd/DH4jAEHQAmsiBCQAQX8hByMAQRBrIgZBADYACyAGQQA2AggDQCACIAVqLQAAIQhBACEDA0AgBkEIaiADaiIJIAktAAAgA0EFdEHghwJqIAVqLQAAIAhzcjoAACADQQFqIgNBB0cNAAsgBUEBaiIFQR9HDQALIAItAB9B/wBxIQhBACEFQQAhAwNAIAZBCGogA2oiCSAJLQAAIAggA0EFdEH/hwJqLQAAc3I6AAAgA0EBaiIDQQdHDQALQQAhAwNAIAZBCGogBWotAABBAWsgA3IhAyAFQQFqIgVBB0cNAAsgA0EIdkEBcUUEQEEAIQcDQCAAIAdqIAEgB2otAAA6AAAgB0EBaiIHQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyAEQaACaiIBIAIQgQEgBEHwAWoQHCAEQcABahAwIARBkAFqIAEQKSAEQeAAahAcQf4BIQJBACEBA0AgBEHwAWoiCCAEQZABaiIJIAEgACACIgdBA3ZqLQAAIAJBB3F2QQFxIgFzIgYQOSAEQcABaiIFIARB4ABqIgMgBhA5IAJBAWshAiAEQTBqIgYgCSADEBUgBCAIIAUQFSAIIAggBRASIAUgCSADEBIgAyAGIAgQCiAFIAUgBBAKIAYgBBANIAQgCBANIAkgAyAFEBIgBSADIAUQFSAIIAQgBhAKIAQgBCAGEBUgBSAFEA0gBDQCBCEKIAQ0AgghCyAENAIMIQwgBDQCECENIAQ0AhQhDiAENAIYIQ8gBDQCACETIAMgBDQCJELCtgd+IhAgEEKAgIAIfCIQQoCAgPAPg30gBDQCIELCtgd+IAQ0AhxCwrYHfiIRQoCAgAh8IhJCGYd8IhRCgICAEHwiFUIaiHw+AiQgAyAUIBVCgICA4A+DfT4CICADIBEgEkKAgIDwD4N9IA9CwrYHfiAOQsK2B34iDkKAgIAIfCIPQhmHfCIRQoCAgBB8IhJCGoh8PgIcIAMgESASQoCAgOAPg30+AhggAyAOIA9CgICA8A+DfSANQsK2B34gDELCtgd+IgxCgICACHwiDUIZh3wiDkKAgIAQfCIPQhqIfD4CFCADIA4gD0KAgIDgD4N9PgIQIAMgDCANQoCAgPAPg30gC0LCtgd+IApCwrYHfiIKQoCAgAh8IgtCGYd8IgxCgICAEHwiDUIaiHw+AgwgAyAMIA1CgICA4A+DfT4CCCADIAogC0KAgIDwD4N9IBBCGYdCE34gE0LCtgd+fCIKQoCAgBB8IgtCGoh8PgIEIAMgCiALQoCAgOAPg30+AgAgCSAJEA0gBiAGIAMQEiADIARBoAJqIAUQCiAFIAQgBhAKIAcNAAsgBEHwAWoiAiAEQZABaiABEDkgBEHAAWoiAyAEQeAAaiABEDkgAyADEDwgAiACIAMQCiAAIAIQLEEAIQcLIARB0AJqJAAgBwsLACAAIAEQggFBAAsNACAAIAEgAhCDAUEACwsAIAAgARCEAUEACyoBAX8jAEEQayIEJAAgBCABIAIgAxCFARogACAEED0hACAEQRBqJAAgAAsmAQJ/AkBBoJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQsOACAAIAGtQYAIIAIQMwsqAQJ/IABBAk8Ef0EAIABrIABwIQEDQBBbIgIgAUkNAAsgAiAAcAUgAQsLMAEBfiABrSACrUIghoQiA0KAgICAEFoEQEHrCUHfCEHFAUGMCBAAAAsgACADpxAdCxIAIAAgASACrSADrUIghoQQGwsVACAAIAEgAq0gA61CIIaEIAQQoAELFwAgACABIAIgA60gBK1CIIaEIAUQogELiQEBAX4CfwJAAkACQCADrSAErUIghoQiBkLAAFQNACAGQkB8IgZCv////w9WDQAgAiACQUBrIgMgBiAFEKABRQ0BIABFDQAgAEEAIAanEA8aC0F/IQIgAUUNASABQgA3AwBBfwwCCyABBEAgASAGNwMAC0EAIQIgAEUNACAAIAMgBqcQRhoLIAILC38CAX8BfiMAQRBrIgYkACAAIAZBCGogAEFAayACIAOtIAStQiCGhCIHpyICEEYgByAFEKIBGgJAIAYpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQDxpBfyEADAELQQAhACABRQ0AIAEgB0JAfTcDAAsgBkEQaiQAIAALqgcBCX4gBCkAACIFQvXKzYPXrNu38wCFIQYgBULh5JXz1uzZvOwAhSEHIAQpAAgiBULt3pHzlszct+QAhSEJIAVC88rRy6eM2bL0AIUhCiABIAEgAq0gA61CIIaEIginIgJqIAJBB3EiA2siAkcEQANAIAEpAAAhDSAJQQ0QDCEMIAYgCXwiBkEgEAwhCSAKIA2FIgVBEBAMIAUgB3wiB4UiC0EVEAwhCiAGIAyFIgVBERAMIQYgBSAHfCIFQSAQDCEHIAUgBoUiBkENEAwhDCAGIAkgC3wiBXwiC0EgEAwgBSAKhSIFQRAQDCAFIAd8IgeFIgV8IgYgBUEVEAyFIQogCyAMhSIFQREQDCAFIAd8IgWFIQkgBiANhSEGIAVBIBAMIQcgAUEIaiIBIAJHDQALIAIhAQsgCEI4hiEIAkACQAJAAkACQAJAAkACQCADQQFrDgcGBQQDAgEABwsgATEABkIwhiAIhCEICyABMQAFQiiGIAiEIQgLIAExAARCIIYgCIQhCAsgATEAA0IYhiAIhCEICyABMQACQhCGIAiEIQgLIAExAAFCCIYgCIQhCAsgCCABMQAAhCEICyAJQQ0QDCELIAYgCXwiBkEgEAwhCSAIIAqFIgVBEBAMIAUgB3wiB4UiCkEVEAwhDCAGIAuFIgVBERAMIQYgBSAHfCIFQSAQDCEHIAUgBoUiBkENEAwhCyAGIAkgCnwiBXwiBkEgEAwhCSAFIAyFIgVBEBAMIAUgB3wiB4UiCkEVEAwhDCAGIAuFIgVBERAMIQYgBSAHfCIFQSAQDCEHIAUgBoUiBkENEAwhCyAGIAggCSAKfCIFhXwiBkEgEAwhCSAFIAyFIgVBEBAMIAdC/wGFIAV8IgeFIgpBFRAMIQwgBiALhSIFQREQDCEGIAUgB3wiBUEgEAwhByAFIAaFIgZBDRAMIQsgBiAJIAp8IgV8IgZBIBAMIQkgBSAMhSIFQRAQDCAFIAd8IgeFIgpBFRAMIQwgBiALhSIFQREQDCEGIAUgB3wiBUEgEAwhByAFIAaFIgZBDRAMIQsgBiAJIAp8IgV8IgZBIBAMIQggBSAMhSIFQRAQDCAFIAd8IgeFIglBFRAMIQogBiALhSIFQREQDCEGIAUgB3wiBUEgEAwhDCAFIAaFIgtBDRAMIQcgACAKIAggCXwiBoUiBUEQEAwgBSAMfCIFhUEVEAwgByAGIAt8hSIGIAV8IgWFIAZBERAMhSAFQSAQDIUQEEEAC6gDAgN+AX8CfyAFrSAGrUIghoQhCiAIrSAJrUIghoQhDCMAQeACayIFJAAgAgRAIAJCADcDAAsgAwRAIANB/wE6AAALQX8hDQJAAkAgCkIRVA0AIApCEX0iC0Lv////D1oNASAFQSBqIghCwAAgAEEgaiIJIAAQMyAFQeAAaiIGIAgQJCAIQcAAEAggBiAHIAwQCyAGQYCKAkIAIAx9Qg+DEAsgCEEAQcAAEA8aIAUgBC0AADoAICAIIAhCwAAgCUEBIAAQLiAFLQAgIQcgBSAELQAAOgAgIAYgCELAABALIAYgBEEBaiIEIAsQCyAGQYCKAiAKQgF9Qg+DEAsgBUEYaiIIIAwQECAGIAhCCBALIAggCkIvfBAQIAYgCEIIEAsgBiAFECMgBkGAAhAIIAUgBCALp2pBEBBPBEAgBUEQEAgMAQsgASAEIAsgCUECIAAQLiAAQSRqIAUQqgEgCRCrAQJAIAdBAnFFBEAgCUEEEHVFDQELIAAQbAsgAgRAIAIgCzcDAAtBACENIANFDQAgAyAHOgAACyAFQeACaiQAIA0MAQsQFAALC9kCAQJ+An8gBK0gBa1CIIaEIQogB60gCK1CIIaEIQsjAEHQAmsiBCQAIAIEQCACQgA3AwALIApC7////w9UBEAgBEEQaiIHQsAAIABBIGoiCCAAEDMgBEHQAGoiBSAHECQgB0HAABAIIAUgBiALEAsgBUGAigJCACALfUIPgxALIAdBAEHAABAPGiAEIAk6ABAgByAHQsAAIAhBASAAEC4gBSAHQsAAEAsgASAELQAQOgAAIAFBAWoiASADIAogCEECIAAQLiAFIAEgChALIAVBgIoCIApCD4MQCyAEQQhqIgMgCxAQIAUgA0IIEAsgAyAKQkB9EBAgBSADQggQCyAFIAEgCqdqIgEQIyAFQYACEAggAEEkaiABEKoBIAgQqwECQCAJQQJxRQRAIAhBBBB1RQ0BCyAAEGwLIAIEQCACIApCEXw3AwALIARB0AJqJABBAAwBCxAUAAsLLQEBfiACrSADrUIghoQiBkIQWgR/IAAgAUEQaiABIAZCEH0gBCAFEGIFQX8LCxgAIAAgASACIAOtIAStQiCGhCAFIAYQYgsxAQF+IAKtIAOtQiCGhCIGQvD///8PWgRAEBQACyAAQRBqIAAgASAGIAQgBRBjGkEACxgAIAAgASACIAOtIAStQiCGhCAFIAYQYwtSAQF+An8gAa0gAq1CIIaEIQQgAEH7CkEKECBFBEAgACAEIANBAhCXAQwBCyAAQfEKQQkQIEUEQCAAIAQgA0EBEJcBDAELQeCXAkEcNgIAQX8LC8QBAQF+An8gAq0gA61CIIaEIQQgAEH7CkEKECBFBEACQAJAIARCgICAgBBaBEBB4JcCQRY2AgAMAQsgACABIASnQQIQmAEiAEUNASAAQV1HDQBB4JcCQRw2AgALQX8hAAsgAAwBCyAAQfEKQQkQIEUEQAJAAkAgBEKAgICAEFoEQEHglwJBFjYCAAwBCyAAIAEgBKdBARCYASIARQ0BIABBXUcNAEHglwJBHDYCAAtBfyEACyAADAELQeCXAkEcNgIAQX8LC9UBAQJ+An8gAq0gA61CIIaEIQkgBK0gBa1CIIaEIQgCQAJAAkAgB0EBaw4CAgABCyAAIAEgCSAIIAYQlgEMAgsQFAALIwBBEGsiAiQAIABBAEGAARAPIQACfyAGQYGAgIB4SSAIIAmEQv////8PWHFFBEBB4JcCQRY2AgBBfwwBCyAGQf8/SyAIQgNacUUEQEHglwJBHDYCAEF/DAELIAJBEBAdQX9BACAIpyAGQQp2QQEgASAJpyACQRBBAEEgIABBgAFBARA0GwshACACQRBqJAAgAAsLHwAgACABIAKtIAOtQiCGhCAErSAFrUIghoQgBhCWAQu8AwEDfgJ/IAGtIAKtQiCGhCELIAStIAWtQiCGhCENIAetIAitQiCGhCEMAkACQAJAIApBAWsOAgABAgsCfyAAQQAgC6ciARAPIQACQCALQoCAgIAQWgRAQeCXAkEWNgIADAELIAtCD1gEQEHglwJBHDYCAAwBCyAJQYGAgIB4SSAMIA2EQv////8PWHFFBEBB4JcCQRY2AgAMAQsgCUH/P0sgDEIDWnFFBEBB4JcCQRw2AgAMAQsgACADRgRAQeCXAkEcNgIADAELQX9BACAMpyAJQQp2QQEgAyANpyAGQRAgACABQQBBAEEBEDQbDAELQX8LDAILAn8gAEEAIAunIgEQDyEAAkAgC0KAgICAEFoEQEHglwJBFjYCAAwBCyALQg9YBEBB4JcCQRw2AgAMAQsgCUGBgICAeEkgDCANhEL/////D1hxRQRAQeCXAkEWNgIADAELIAxQRSAJQf8/S3FFBEBB4JcCQRw2AgAMAQsgACADRgRAQeCXAkEcNgIADAELQX9BACAMpyAJQQp2QQEgAyANpyAGQRAgACABQQBBAEECEDQbDAELQX8LDAELQeCXAkEcNgIAQX8LC7IDAgN/AX4jAEEgayIGJAAgBCkAACEJIAZCADcDGCAGIAk3AxAgBiACrSADrUIghoQQECAGQgA3AwgCfyABQcEAa0FOTQRAQeCXAkEcNgIAQX8MAQsgBkEQaiEEIAFBwQBrQUBJBH9BfwUCfyMAIgIhByACQYADa0FAcSICJAAgBUUgAEUgAUH/AXEiA0HBAGtB/wFxQb8BTXJyRQRAIwBBwAFrIgEkAAJAIAVFIANBwQBrQf8BcUG/AU1yRQRAIAFBgQI7AYIBIAFBIDoAgQEgASADOgCAASABQYABaiIIQQRyEHIgCEEIckIAEBAgAUIANwOYASABQgA3A5ABAkAgBgRAIAFBgAFqIAYQkQIMAQsgAUIANwOoASABQgA3A6ABCwJAIAQEQCABQYABaiAEEJACDAELIAFCADcDuAEgAUIANwOwAQsgAiABQYABahBzIAFBIGpBAEHgABAPGiACIAEgBUEgEBEiAUKAARA4GiABQYABEAggAUHAAWokAAwBCxAUAAsgAkEAQgAQOBogAiAAIAMQcBogByQAQQAMAQsQFAALCwshACAGQSBqJAAgAAsSACAAIAEgAq0gA61CIIaEEDULEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQnAELTgICfwF+IwBBIGsiBiQAQX8hByACrSADrUIghoQiCEIwWgRAIAYgASAEEI4BIAAgAUEgaiAIQiB9IAYgASAFEI8BIQcLIAZBIGokACAHC5kBAgJ/AX4gAq0gA61CIIaEIQcjAEHgAGsiAiQAQX8hAyACQSBqIAIQkwFFBEAgAkFAayIFIAJBIGoiBiAEEI4BIABBIGogASAHIAUgBCACEJEBIQMgACACKQM4NwAYIAAgAikDMDcAECAAIAIpAyg3AAggACACKQMgNwAAIAJBIBAIIAZBIBAIIAVBGBAICyACQeAAaiQAIAMLGQAgACABIAKtIAOtQiCGhCAEIAUgBhCPAQstAQF+IAKtIAOtQiCGhCIGQhBaBH8gACABQRBqIAEgBkIQfSAEIAUQYAVBfwsLGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJABCxgAIAAgASACIAOtIAStQiCGhCAFIAYQYAsZACAAIAEgAq0gA61CIIaEIAQgBSAGEJEBCy4BAX4gAq0gA61CIIaEIgZC8P///w9aBEAQFAALIABBEGogACABIAYgBCAFEGELGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJIBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQYQtIAQF/IwBBIGsiBSQAIAUgASACrSADrUIghoQgBBCUARogACAFEIYBIQEgBSAAQSAQTyECIAVBIGokACACQX8gASAAIAVGG3ILFQAgACABIAKtIAOtQiCGhCAEEJQBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChCaASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCaAQtZAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEJsBGiABBEAgASALQhB8NwMAC0EADAELEBQACwsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQmwELWwECfiAHrSAIrUIghoQhDEF/IQIgBK0gBa1CIIaEIgtCEFoEQCAAIAMgC0IQfSADIAunakEQayAGIAwgCSAKEKYBIQILIAEEQCABQgAgC0IQfSACGzcDAAsgAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEKYBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChCnASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCnAQtZAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEKgBGiABBEAgASALQhB8NwMAC0EADAELEBQACwsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQqAELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChCpARogAQRAIAEgC0IQfDcDAAtBAAwBCxAUAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKkBC08BAn8jAEHQAGsiBiQAIAJQRQRAIAZBDGoiByAEEAkgBkEQaiIEIAUQRSAEIAMgBxCVASAEIAEgACACEEMgBEHAABAICyAGQdAAaiQAQQAL2gEBBH8jACIFIQcgBUGABGtBQHEiBSQAIAAgASAAGyIIBEBBfyEGIAVB4ABqIAMgBBBeRQRAIAEgACABGyEBQQAhACAFQYABaiIDQQBBAEHAABBCGiADIAVB4ABqIgZCIBAlGiAGQSAQCCADIARCIBAlGiADIAJCIBAlGiADIAVBIGpBwAAQQRogA0GAAxAIA0AgACABaiAFQSBqIABqIgItAAA6AAAgACAIaiACLQAgOgAAIABBAWoiAEEgRw0ACyAFQSBqQcAAEAhBACEGCyAHJAAgBg8LEBQAC9oBAQR/IwAiBSEHIAVBgARrQUBxIgUkACAAIAEgABsiCARAQX8hBiAFQeAAaiADIAQQXkUEQCABIAAgARshAUEAIQAgBUGAAWoiA0EAQQBBwAAQQhogAyAFQeAAaiIGQiAQJRogBkEgEAggAyACQiAQJRogAyAEQiAQJRogAyAFQSBqQcAAEEEaIANBgAMQCANAIAAgCGogBUEgaiAAaiICLQAAOgAAIAAgAWogAi0AIDoAACAAQQFqIgBBIEcNAAsgBUEgakHAABAIQQAhBgsgByQAIAYPCxAUAAsOACABQSAQHSAAIAEQXwsYACABQSAgAkIgQQBBABCcARogACABEF8LBABBCgsFAEHYCgsIACAAQRAQHQsEAEEwC10BA38jAEHQAGsiBiQAIAJQRQRAIAZBCGoiCCAEpxAJIAZBDGogBEIgiKcQCSAGQRBqIgcgBRBFIAcgAyAIEJ8BIAcgASAAIAIQQyAHQcAAEAgLIAZB0ABqJABBAAtWAQF/IwBBQGoiAyQAIAMgAkIgEDUaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAggACABEHchACADQUBrJAAgAAsIAEGAgICABAsEAEEECwgAQYCAgIABCwcAQYCAgCALCABBgICAgHgLBgBBgMAACwUAQfsKCwUAQYABC0YBAX8jAEFAaiIEJAAgAVBFBEAgBCADEEUgBCACQQAQlQEgBCAAQQAgAacQDyIAIAAgARBDIARBwAAQCAsgBEFAayQAQQALBQBBgAMLNwEBfyABEGkgAEEDbiICQX1sIABqIgBBAXYgAHJBAXEgAEEBakEEIAFBAnEbbCACQQJ0akEBagv0AgELfwJAIANFDQACQAJAA0AgByEIA0ACQCACIAhqLQAAIg1B3wFxQTdrQf8BcSIOQfb/A2ogDkHw/wNqc0EIdiIPIA1BMHMiEEH2/wNqQQh2IgpyQf8BcUUEQEEBIQogBEUgC0H/AXFyDQQgBCANEEQNASAIIQcMBgsgASAJTQRAQeCXAkHEADYCAEEAIQoMBAsgDiAPcSAKIBBxciEHAkAgC0H/AXFFBEAgB0EEdCERDAELIAAgCWogByARcjoAACAJQQFqIQkLIAtBf3MhC0EBIQogCEEBaiIHIANJDQIMBAtBACELIAhBAWoiCCADSQ0ACwsgAyAHQQFqIgAgACADSRshBwwCCyAIIQcLIAtB/wFxBEBB4JcCQRw2AgBBfyEMIAdBAWshB0EAIQkMAQsgCg0AQQAhCUF/IQwLAkAgBgRAIAYgAiAHajYCAAwBCyADIAdGDQBB4JcCQRw2AgBBfyEMCyAFBEAgBSAJNgIACyAMC5sBAQN/IANB/v///wdLIANBAXQgAU9yRQRAQQAhASADBH8DQCAAIAFBAXRqIgQgASACai0AACIFQQ9xIgZBCHQgBkH2/wNqQYCyA3FqQYCuAWpBCHY6AAEgBCAFQQR2IgQgBEH2/wNqQQh2QdkBcWpB1wBqOgAAIAFBAWoiASADRw0ACyADQQF0BSABCyAAakEAOgAAIAAPCxAUAAssAQF/IwBBQGoiAyQAIAAgAxAnIAEgA0LAACACQQEQoQEhACADQUBrJAAgAAsuAQF/IwBBQGoiBCQAIAAgBBAnIAEgAiAEQsAAIANBARCjASEAIARBQGskACAACwgAIAAQNkEACywBAX8jAEEgayICJAAgAkEgEB0gACABIAIQpAEaIAJBIBAIIAJBIGokAEEACwsAIAAgASACEKQBCwUAQb9/CwUAQdABC20BAX8jAEFAaiICJAAgAiABQiAQNRogAiACLQAAQfgBcToAACACIAItAB9BP3FBwAByOgAfIAAgAikDEDcAECAAIAIpAwg3AAggACACKQMANwAAIAAgAikDGDcAGCACQcAAEAggAkFAayQAQQALnwQBB38jAEGAAmsiBSQAQX8hCAJAIAEQUQ0AIAVB4ABqIAEQfg0AIwBBoAFrIgYkACMAQeANayICJAAgAkHgA2oiAyAFQeAAaiIEEBkgAkHAAmoiASAEEDogAiABEBMgASACIAMQGiACQaABaiIDIAEQEyACQYAFaiIEIAMQGSABIAIgBBAaIAMgARATIAJBoAZqIgQgAxAZIAEgAiAEEBogAyABEBMgAkHAB2oiBCADEBkgASACIAQQGiADIAEQEyACQeAIaiIEIAMQGSABIAIgBBAaIAMgARATIAJBgApqIgQgAxAZIAEgAiAEEBogAyABEBMgAkGgC2oiBCADEBkgASACIAQQGiADIAEQEyACQcAMaiADEBkgBhB6QfwBIQEDQCACQcACaiAGEDoCQCABIgNB4IUCaiwAACIBQQBKBEAgAkGgAWoiBCACQcACaiIHEBMgByAEIAJB4ANqIAFB/gFxQQF2QaABbGoQGgwBCyABQQBODQAgAkGgAWoiBCACQcACaiIHEBMgByAEIAJB4ANqQQAgAWtB/gFxQQF2QaABbGoQfAsgBiACQcACahATIANBAWshASADDQALIAJB4A1qJAAgBhBWIQEgBkGgAWokACABRQ0AIAUQHCAFIAUgBUGIAWoiAxAVIAVBMGoiARAcIAEgASADEBIgBSAFEDwgASABIAUQCiAAIAEQLEEAIQgLIAVBgAJqJAAgCAtGAQF/IwBBQGoiBCQAIAFQRQRAIAQgAxBFIAQgAkEAEJ8BIAQgAEEAIAGnEA8iACAAIAEQQyAEQcAAEAgLIARBQGskAEEACwQAQQwLogEBBn8jAEEQayIFQQA2AgxBfyEEIAIgA0EBa0sEfyABIAJBAWsiBmohB0EAIQJBACEBQQAhBANAIAUgBSgCDCACQQAgByACay0AACIIQYABc0EBayAFKAIMQQFrIARBAWtxcUEIdkEBcSIJa3FyNgIMIAEgCXIhASAEIAhyIQQgAkEBaiICIANHDQALIAAgBiAFKAIMazYCACABQQFrBSAECwsEAEFuCwQAQRELBABBNAsnAQF+IAAgASACEEsgABBtIAEpABAhAyAAQgA3ACwgACADNwAkQQAL0gEBBH8jAEEQayIFJAACQAJAIANFBEBBfyEHDAELAn8gAyADQQFrIgZxRQRAIAIgBnEMAQsgAiADcAshCEF/IQcgBiAIayIGIAJBf3NPDQEgAiAGaiICIARPDQAgAARAIAAgAkEBajYCAAsgASACaiEAQQAhByAFQQA6AA9BACECA0AgACACayIBIAEtAAAgBS0AD3EgAiAGc0EBa0EYdiIBQYABcXI6AAAgBSAFLQAPIAFyOgAPIAJBAWoiAiADRw0ACwsgBUEQaiQAIAcPCxAUAAstAQF+IAFBGBAdIAAgASACEEsgABBtIAEpABAhAyAAQgA3ACwgACADNwAkQQALFgAgACABKQAANwAwIAAgASkACDcAOAsWACAAIAEpAAA3ACAgACABKQAINwAoC2wBAX9BpJwCKAIABH9BAQVB6JcCQQA2AgAjAEEQayIAJAAgABCKASAAKAIABH8gABCKAUHslwJBAEEoEA8aQQAFQX8LGiAAQRBqJABB5JcCQQE2AgAQiwFBkJwCQRAQHUGknAJBATYCAEEACwvtAgECfyMAQfAAayIHJAAgAlBFBEAgByAFKQAYNwMYIAcgBSkAEDcDECAHIAUpAAA3AwBBCCEGIAcgBSkACDcDCCAHIAMpAAA3A2ADQCAHQeAAaiAGaiAEPAAAIARCCIghBCAGQQFqIgZBEEcNAAsgAkI/VgRAA0BBACEGIAdBIGogB0HgAGogBxBOA0AgACAGaiAHQSBqIAZqLQAAIAEgBmotAABzOgAAQQEhBSAGQQFqIgZBwABHDQALQQghBgNAIAdB4ABqIAZqIgMgBSADLQAAaiIDOgAAIANBCHYhBSAGQQFqIgZBEEcNAAsgAUFAayEBIABBQGshACACQkB8IgJCP1YNAAsLIAJQRQRAQQAhBiAHQSBqIAdB4ABqIAcQTiACpyEDA0AgACAGaiAHQSBqIAZqLQAAIAEgBmotAABzOgAAIAZBAWoiBiADRw0ACwsgB0EgakHAABAIIAdBIBAICyAHQfAAaiQAQQALkQICAn8BfiMAQfAAayIEJAAgAVBFBEAgBCADKQAYNwMYIAQgAykAEDcDECAEIAMpAAA3AwAgBCADKQAINwMIIAIpAAAhBiAEQgA3A2ggBCAGNwNgAkAgAULAAFoEQANAIAAgBEHgAGogBBBOQQghA0EBIQIDQCAEQeAAaiADaiIFIAIgBS0AAGoiAjoAACACQQh2IQIgA0EBaiIDQRBHDQALIABBQGshACABQkB8IgFCP1YNAAsgAVANAQtBACEDIARBIGogBEHgAGogBBBOIAGnIQIDQCAAIANqIARBIGogA2otAAA6AAAgA0EBaiIDIAJHDQALCyAEQSBqQcAAEAggBEEgEAgLIARB8ABqJABBAAumAQEEfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQUiMAQeAAayIBJAAgAUEwaiIDIAJBgAFqIgQgAkHYAGoiBRASIAEgBCAFEBUgASABEDwgAiADIAEQCiABQeAAaiQAIAAgAhAsIAJB0AFqJABBAAsLxYYCDQBBgAgLhQNMaWJzb2RpdW1EUkdyYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAJGFyZ29uMmkAJGFyZ29uMmlkAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAJGFyZ29uMmkkdj0AJGFyZ29uMmlkJHY9ACx0PQAscD0AJG09ADEuMC4xOABzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaSQAJGFyZ29uMmlkJABBkAsLV7Z4Wf+FctMAvW4V/w8KagApwAEAmOh5/7w8oP+Zcc7/ALfi/rQNSP8AAAAAAAAAALCgDv7TyYb/nhiPAH9pNQBgDL0Ap9f7/59MgP5qZeH/HvwEAJIMrgBB8AsLJ1nxsv4K5ab/e90q/h4U1ABSgAMAMNHzAHd5QP8y45z/AG7FAWcbkABBoAwLwAeFO4wBvfEk//glwwFg3DcAt0w+/8NCPQAyTKQB4aRM/0w9o/91Ph8AUZFA/3ZBDgCic9b/BoouAHzm9P8Kio8ANBrCALj0TACBjykBvvQT/3uqev9igUQAedWTAFZlHv+hZ5sAjFlD/+/lvgFDC7UAxvCJ/u5FvP9Dl+4AEyps/+VVcQEyRIf/EWoJADJnAf9QAagBI5ge/xCouQE4Wej/ZdL8ACn6RwDMqk//Di7v/1BN7wC91kv/EY35ACZQTP++VXUAVuSqAJzY0AHDz6T/lkJM/6/hEP+NUGIBTNvyAMaicgAu2pgAmyvx/pugaP8zu6UAAhGvAEJUoAH3Oh4AI0E1/kXsvwAthvUBo3vdACBuFP80F6UAutZHAOmwYADy7zYBOVmKAFMAVP+IoGQAXI54/mh8vgC1sT7/+ilVAJiCKgFg/PYAl5c//u+FPgAgOJwALae9/46FswGDVtMAu7OW/vqqDv/So04AJTSXAGNNGgDunNX/1cDRAUkuVAAUQSkBNs5PAMmDkv6qbxj/sSEy/qsmy/9O93QA0d2ZAIWAsgE6LBkAySc7Ab0T/AAx5dIBdbt1ALWzuAEActsAMF6TAPUpOAB9Dcz+9K13ACzdIP5U6hQA+aDGAex+6v8vY6j+quKZ/2az2ADijXr/ekKZ/rb1hgDj5BkB1jnr/9itOP+159IAd4Cd/4FfiP9ufjMAAqm3/weCYv5FsF7/dATjAdnykf/KrR8BaQEn/y6vRQDkLzr/1+BF/s84Rf8Q/ov/F8/U/8oUfv9f1WD/CbAhAMgFz//xKoD+IyHA//jlxAGBEXgA+2eX/wc0cP+MOEL/KOL1/9lGJf6s1gn/SEOGAZLA1v8sJnAARLhL/85a+wCV640Atao6AHT07wBcnQIAZq1iAOmJYAF/McsABZuUABeUCf/TegwAIoYa/9vMiACGCCn/4FMr/lUZ9wBtfwD+qYgwAO532//nrdUAzhL+/gi6B/9+CQcBbypIAG807P5gP40Ak79//s1OwP8Oau0Bu9tMAK/zu/5pWa0AVRlZAaLzlAACdtH+IZ4JAIujLv9dRigAbCqO/m/8jv+b35AAM+Wn/0n8m/9edAz/mKDa/5zuJf+z6s//xQCz/5qkjQDhxGgACiMZ/tHU8v9h/d7+uGXlAN4SfwGkiIf/Hs+M/pJh8wCBwBr+yVQh/28KTv+TUbL/BAQYAKHu1/8GjSEANdcO/ym10P/ni50As8vd//+5cQC94qz/cULW/8o+Lf9mQAj/Tq4Q/oV1RP8AQYAUCwEBAEGgFAuwASbolY/CsiewRcP0ifLvmPDV36wF08YzObE4AohtU/wFxxdqcD1N2E+6PAt2DRBnDyogU/osOczGTsf9d5KsA3rs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////3/t0/VcGmMSWNac96Le+d4UAEHfFQv88AEQhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/6nE8/yX/Of9Fsrb+gNCzAHYaff4DB9b/8TJN/1XLxf/Th/r/GTBk/7vVtP4RWGkAU9GeAQVzYgAErjz+qzdu/9m1Ef8UvKoAkpxm/lfWrv9yepsB6SyqAH8I7wHW7OoArwXbADFqPf8GQtD/Ampu/1HqE//Xa8D/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/sgn8/mRu1AAOBacA6e+j/xyXnQFlkgr//p5G/kf55ABYHjIARDqg/78YaAGBQoH/wDJV/wiziv8m+skAc1CgAIPmcQB9WJMAWkTHAP1MngAc/3YAcfr+AEJLLgDm2isA5Xi6AZREKwCIfO4Bu2vF/1Q19v8zdP7/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/RHEV/966O/9CB/EBRQZIAFacbP43p1kAbTTb/g2wF//ELGr/75VH/6SMff+frQEAMynnAJE+IQCKb10BuVNFAJBzLgBhlxD/GOQaADHZ4gBxS+r+wZkM/7YwYP8ODRoAgMP5/kXBOwCEJVH+fWo8ANbwqQGk40IA0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/jz7dAIFZ1v83iwX+RBS//w7MsgEjw9kALzPOASb2pQDOGwb+nlckANk0kv99e9f/VTwf/6sNBwDa9Vj+/CM8ADfWoP+FZTgA4CAT/pNA6gAakaIBcnZ9APj8+gBlXsT/xo3i/jMqtgCHDAn+bazS/8XswgHxQZoAMJwv/5lDN//apSL+SrSzANpCRwFYemMA1LXb/1wq5//vAJoA9U23/15RqgES1dgAq11HADRe+AASl6H+xdFC/670D/6iMLcAMT3w/rZdwwDH5AYByAUR/4kt7f9slAQAWk/t/yc/Tf81Us8BjhZ2/2XoEgFcGkMABchY/yGoiv+V4UgAAtEb/yz1qAHc7RH/HtNp/o3u3QCAUPX+b/4OAN5fvgHfCfEAkkzU/2zNaP8/dZkAkEUwACPkbwDAIcH/cNa+/nOYlwAXZlgAM0r4AOLHj/7MomX/0GG9AfVoEgDm9h7/F5RFAG5YNP7itVn/0C9a/nKhUP8hdPgAs5hX/0WQsQFY7hr/OiBxAQFNRQA7eTT/mO5TADQIwQDnJ+n/xyKKAN5ErQBbOfL+3NJ//8AH9v6XI7sAw+ylAG9dzgDU94UBmoXR/5vnCgBATiYAevlkAR4TYf8+W/kB+IVNAMU/qP50ClIAuOxx/tTLwv89ZPz+JAXK/3dbmf+BTx0AZ2er/u3Xb//YNUUA7/AXAMKV3f8m4d4A6P+0/nZShf850bEBi+iFAJ6wLv7Ccy4AWPflARxnvwDd3q/+lessAJfkGf7aaWcAjlXSAJWBvv/VQV7+dYbg/1LGdQCd3dwAo2UkAMVyJQBorKb+C7YAAFFIvP9hvBD/RQYKAMeTkf8ICXMBQdav/9mt0QBQf6YA9+UE/qe3fP9aHMz+rzvw/wsp+AFsKDP/kLHD/pb6fgCKW0EBeDze//XB7wAd1r3/gAIZAFCaogBN3GsB6s1K/zamZ/90SAkA5F4v/x7IGf8j1ln/PbCM/1Pio/9LgqwAgCYRAF+JmP/XfJ8BT10AAJRSnf7Dgvv/KMpM//t+4ACdYz7+zwfh/2BEwwCMup3/gxPn/yqA/gA02z3+ZstIAI0HC/+6pNUAH3p3AIXykQDQ/Oj/W9W2/48E+v7510oApR5vAasJ3wDleyIBXIIa/02bLQHDixz/O+BOAIgR9wBseSAAT/q9/2Dj/P4m8T4APq59/5tvXf8K5s4BYcUo/wAxOf5B+g0AEvuW/9xt0v8Frqb+LIG9AOsjk/8l943/SI0E/2dr/wD3WgQANSwqAAIe8AAEOz8AWE4kAHGntAC+R8H/x56k/zoIrABNIQwAQT8DAJlNIf+s/mYB5N0E/1ce/gGSKVb/iszv/myNEf+78ocA0tB/AEQtDv5JYD4AUTwY/6oGJP8D+RoAI9VtABaBNv8VI+H/6j04/zrZBgCPfFgA7H5CANEmt/8i7gb/rpFmAF8W0wDED5n+LlTo/3UikgHn+kr/G4ZkAVy7w/+qxnAAeBwqANFGQwAdUR8AHahkAamtoABrI3UAPmA7/1EMRQGH777/3PwSAKPcOv+Jibz/U2ZtAGAGTADq3tL/ua7NATye1f8N8dYArIGMAF1o8gDAnPsAK3UeAOFRngB/6NoA4hzLAOkbl/91KwX/8g4v/yEUBgCJ+yz+Gx/1/7fWff4oeZUAup7V/1kI4wBFWAD+y4fhAMmuywCTR7gAEnkp/l4FTgDg1vD+JAW0APuH5wGjitQA0vl0/liBuwATCDH+Pg6Q/59M0wDWM1IAbXXk/mffy/9L/A8Bmkfc/xcNWwGNqGD/tbaFAPozNwDq6tT+rz+eACfwNAGevST/1ShVASC09/8TZhoBVBhh/0UV3gCUi3r/3NXrAejL/wB5OZMA4weaADUWkwFIAeEAUoYw/lM8nf+RSKkAImfvAMbpLwB0EwT/uGoJ/7eBUwAksOYBImdIANuihgD1Kp4AIJVg/qUskADK70j+15YFACpCJAGE168AVq5W/xrFnP8x6If+Z7ZSAP2AsAGZsnoA9foKAOwYsgCJaoQAKB0pADIemP98aSYA5r9LAI8rqgAsgxT/LA0X/+3/mwGfbWT/cLUY/2jcbAA304MAYwzV/5iXkf/uBZ8AYZsIACFsUQABA2cAPm0i//qbtAAgR8P/JkaRAZ9f9QBF5WUBiBzwAE/gGQBObnn/+Kh8ALuA9wACk+v+TwuEAEY6DAG1CKP/T4mF/yWqC/+N81X/sOfX/8yWpP/v1yf/Llec/gijWP+sIugAQixm/xs2Kf7sY1f/KXupATRyKwB1higAm4YaAOfPW/4jhCb/E2Z9/iTjhf92A3H/HQ18AJhgSgFYks7/p7/c/qISWP+2ZBcAH3U0AFEuagEMAgcARVDJAdH2rAAMMI0B4NNYAHTinwB6YoIAQezqAeHiCf/P4nsBWdY7AHCHWAFa9Mv/MQsmAYFsugBZcA8BZS7M/3/MLf5P/93/M0kS/38qZf/xFcoAoOMHAGky7ABPNMX/aMrQAbQPEABlxU7/Yk3LACm58QEjwXwAI5sX/881wAALfaMB+Z65/wSDMAAVXW//PXnnAUXIJP+5MLn/b+4V/ycyGf9j16P/V9Qe/6STBf+ABiMBbN9u/8JMsgBKZbQA8y8wAK4ZK/9Srf0BNnLA/yg3WwDXbLD/CzgHAODpTADRYsr+8hl9ACzBXf7LCLEAh7ATAHBH1f/OO7ABBEMaAA6P1f4qN9D/PEN4AMEVowBjpHMAChR2AJzU3v6gB9n/cvVMAXU7ewCwwlb+1Q+wAE7Oz/7VgTsA6fsWAWA3mP/s/w//xVlU/12VhQCuoHEA6mOp/5h0WACQpFP/Xx3G/yIvD/9jeIb/BezBAPn3fv+Tux4AMuZ1/2zZ2/+jUab/SBmp/pt5T/8cm1n+B34RAJNBIQEv6v0AGjMSAGlTx/+jxOYAcfikAOL+2gC90cv/pPfe/v8jpQAEvPMBf7NHACXt/v9kuvAABTlH/mdISf/0ElH+5dKE/+4GtP8L5a7/493AARExHACj18T+CXYE/zPwRwBxgW3/TPDnALyxfwB9RywBGq/zAF6pGf4b5h0AD4t3Aaiquv+sxUz//Eu8AIl8xABIFmD/LZf5AdyRZABAwJ//eO/iAIGykgAAwH0A64rqALedkgBTx8D/uKxI/0nhgABNBvr/ukFDAGj2zwC8IIr/2hjyAEOKUf7tgXn/FM+WASnHEP8GFIAAn3YFALUQj//cJg8AF0CT/kkaDQBX5DkBzHyAACsY3wDbY8cAFksU/xMbfgCdPtcAbh3mALOn/wE2/L4A3cy2/rOeQf9RnQMAwtqfAKrfAADgCyD/JsViAKikJQAXWAcBpLpuAGAkhgDq8uUA+nkTAPL+cP8DL14BCe8G/1GGmf7W/aj/Q3zgAPVfSgAcHiz+AW3c/7JZWQD8JEwAGMYu/0xNbwCG6oj/J14dALlI6v9GRIf/52YH/k3njACnLzoBlGF2/xAb4QGmzo//brLW/7SDogCPjeEBDdpO/3KZIQFiaMwAr3J1AafOSwDKxFMBOkBDAIovbwHE94D/ieDg/p5wzwCaZP8BhiVrAMaAT/9/0Zv/o/65/jwO8wAf23D+HdlBAMgNdP57PMT/4Du4/vJZxAB7EEv+lRDOAEX+MAHndN//0aBBAchQYgAlwrj+lD8iAIvwQf/ZkIT/OCYt/sd40gBssab/oN4EANx+d/6la6D/Utz4AfGviACQjRf/qYpUAKCJTv/idlD/NBuE/z9gi/+Y+icAvJsPAOgzlv4oD+j/8OUJ/4mvG/9LSWEB2tQLAIcFogFrudUAAvlr/yjyRgDbyBkAGZ0NAENSUP/E+Rf/kRSVADJIkgBeTJQBGPtBAB/AFwC41Mn/e+miAfetSACiV9v+foZZAJ8LDP6maR0ASRvkAXF4t/9Co20B1I8L/5/nqAH/gFoAOQ46/lk0Cv/9CKMBAJHS/wqBVQEutRsAZ4ig/n680f8iI28A19sY/9QL1v5lBXYA6MWF/9+nbf/tUFb/RoteAJ7BvwGbDzP/D75zAE6Hz//5ChsBtX3pAF+sDf6q1aH/J+yK/19dV/++gF8AfQ/OAKaWnwDjD57/zp54/yqNgABlsngBnG2DANoOLP73qM7/1HAcAHAR5P9aECUBxd5sAP7PU/8JWvP/8/SsABpYc//NdHoAv+bBALRkCwHZJWD/mk6cAOvqH//OsrL/lcD7ALb6hwD2FmkAfMFt/wLSlf+pEaoAAGBu/3UJCAEyeyj/wb1jACLjoAAwUEb+0zPsAC169f4srggArSXp/55BqwB6Rdf/WlAC/4NqYP7jcocAzTF3/rA+QP9SMxH/8RTz/4INCP6A2fP/ohsB/lp28QD2xvb/NxB2/8ifnQCjEQEAjGt5AFWhdv8mAJUAnC/uAAmmpgFLYrX/MkoZAEIPLwCL4Z8ATAOO/w7uuAALzzX/t8C6Aasgrv+/TN0B96rbABmsMv7ZCekAy35E/7dcMAB/p7cBQTH+ABA/fwH+Far/O+B//hYwP/8bToL+KMMdAPqEcP4jy5AAaKmoAM/9Hv9oKCb+XuRYAM4QgP/UN3r/3xbqAN/FfwD9tbUBkWZ2AOyZJP/U2Uj/FCYY/oo+PgCYjAQA5txj/wEV1P+UyecA9HsJ/gCr0gAzOiX/Af8O//S3kf4A8qYAFkqEAHnYKQBfw3L+hRiX/5zi5//3BU3/9pRz/uFcUf/eUPb+qntZ/0rHjQAdFAj/iohG/11LXADdkzH+NH7iAOV8FwAuCbUAzUA0AYP+HACXntQAg0BOAM4ZqwAA5osAv/1u/mf3pwBAKCgBKqXx/ztL5P58873/xFyy/4KMVv+NWTgBk8YF/8v4nv6Qoo0AC6ziAIIqFf8Bp4//kCQk/zBYpP6oqtwAYkfWAFvQTwCfTMkBpirW/0X/AP8GgH3/vgGMAJJT2v/X7kgBen81AL10pf9UCEL/1gPQ/9VuhQDDqCwBnudFAKJAyP5bOmgAtjq7/vnkiADLhkz+Y93pAEv+1v5QRZoAQJj4/uyIyv+daZn+la8UABYjE/98eekAuvrG/oTliwCJUK7/pX1EAJDKlP7r7/gAh7h2AGVeEf96SEb+RYKSAH/e+AFFf3b/HlLX/rxKE//lp8L+dRlC/0HqOP7VFpwAlztd/i0cG/+6fqT/IAbvAH9yYwHbNAL/Y2Cm/j6+fv9s3qgBS+KuAObixwA8ddr//PgUAda8zAAfwob+e0XA/6mtJP43YlsA3ypm/okBZgCdWhkA73pA//wG6QAHNhT/UnSuAIclNv8Pun0A43Cv/2S04f8q7fT/9K3i/vgSIQCrY5b/Susy/3VSIP5qqO0Az23QAeQJugCHPKn+s1yPAPSqaP/rLXz/RmO6AHWJtwDgH9cAKAlkABoQXwFE2VcACJcU/xpkOv+wpcsBNHZGAAcg/v70/vX/p5DC/31xF/+webUAiFTRAIoGHv9ZMBwAIZsO/xnwmgCNzW0BRnM+/xQoa/6Kmsf/Xt/i/52rJgCjsRn+LXYD/w7eFwHRvlH/dnvoAQ3VZf97N3v+G/alADJjTP+M1iD/YUFD/xgMHACuVk4BQPdgAKCHQwBCN/P/k8xg/xoGIf9iM1MBmdXQ/wK4Nv8Z2gsAMUP2/hKVSP8NGUgAKk/WACoEJgEbi5D/lbsXABKkhAD1VLj+eMZo/37aYAA4der/DR3W/kQvCv+nmoT+mCbGAEKyWf/ILqv/DWNT/9K7/f+qLSoBitF8ANaijQAM5pwAZiRw/gOTQwA013v/6as2/2KJPgD32if/59rsAPe/fwDDklQApbBc/xPUXv8RSuMAWCiZAcaTAf/OQ/X+8APa/z2N1f9ht2oAw+jr/l9WmgDRMM3+dtHx//B43wHVHZ8Ao3+T/w3aXQBVGET+RhRQ/70FjAFSYf7/Y2O//4RUhf9r2nT/cHouAGkRIADCoD//RN4nAdj9XACxac3/lcnDACrhC/8oonMACQdRAKXa2wC0FgD+HZL8/5LP4QG0h2AAH6NwALEL2/+FDMH+K04yAEFxeQE72Qb/bl4YAXCsbwAHD2AAJFV7AEeWFf/QSbwAwAunAdX1IgAJ5lwAoo4n/9daGwBiYVkAXk/TAFqd8ABf3H4BZrDiACQe4P4jH38A5+hzAVVTggDSSfX/L49y/0RBxQA7SD7/t4Wt/l15dv87sVH/6kWt/82AsQDc9DMAGvTRAUneTf+jCGD+lpXTAJ7+ywE2f4sAoeA7AARtFv/eKi3/0JJm/+yOuwAyzfX/CkpZ/jBPjgDeTIL/HqY/AOwMDf8xuPQAu3FmANpl/QCZObb+IJYqABnGkgHt8TgAjEQFAFukrP9Okbr+QzTNANvPgQFtcxEANo86ARX4eP+z/x4AwexC/wH/B//9wDD/E0XZAQPWAP9AZZIB330j/+tJs//5p+IA4a8KAWGiOgBqcKsBVKwF/4WMsv+G9Y4AYVp9/7rLuf/fTRf/wFxqAA/Gc//ZmPgAq7J4/+SGNQCwNsEB+vs1ANUKZAEix2oAlx/0/qzgV/8O7Rf//VUa/38ndP+saGQA+w5G/9TQiv/90/oAsDGlAA9Me/8l2qD/XIcQAQp+cv9GBeD/9/mNAEQUPAHx0r3/w9m7AZcDcQCXXK4A5z6y/9u34QAXFyH/zbVQADm4+P9DtAH/Wntd/ycAov9g+DT/VEKMACJ/5P/CigcBpm68ABURmwGavsb/1lA7/xIHjwBIHeIBx9n5AOihRwGVvskA2a9f/nGTQ/+Kj8f/f8wBAB22UwHO5pv/usw8AAp9Vf/oYBn//1n3/9X+rwHowVEAHCuc/gxFCACTGPgAEsYxAIY8IwB29hL/MVj+/uQVuv+2QXAB2xYB/xZ+NP+9NTH/cBmPACZ/N//iZaP+0IU9/4lFrgG+dpH/PGLb/9kN9f/6iAoAVP7iAMkffQHwM/v/H4OC/wKKMv/X17EB3wzu//yVOP98W0T/SH6q/nf/ZACCh+j/Dk+yAPqDxQCKxtAAediL/ncSJP8dwXoAECot/9Xw6wHmvqn/xiPk/m6tSADW3fH/OJSHAMB1Tv6NXc//j0GVABUSYv9fLPQBar9NAP5VCP7WbrD/Sa0T/qDEx//tWpAAwaxx/8ibiP7kWt0AiTFKAaTd1//RvQX/aew3/yofgQHB/+wALtk8AIpYu//iUuz/UUWX/46+EAENhggAf3ow/1FAnACr84sA7SP2AHqPwf7UepIAXyn/AVeETQAE1B8AER9OACctrf4Yjtn/XwkG/+NTBgBiO4L+Ph4hAAhz0wGiYYD/B7gX/nQcqP/4ipf/YvTwALp2ggBy+Ov/aa3IAaB8R/9eJKQBr0GS/+7xqv7KxsUA5EeK/i32bf/CNJ4AhbuwAFP8mv5Zvd3/qkn8AJQ6fQAkRDP+KkWx/6hMVv8mZMz/JjUjAK8TYQDh7v3/UVGHANIb//7rSWsACM9zAFJ/iABUYxX+zxOIAGSkZQBQ0E3/hM/t/w8DD/8hpm4AnF9V/yW5bwGWaiP/ppdMAHJXh/+fwkAADHof/+gHZf6td2IAmkfc/r85Nf+o6KD/4CBj/9qcpQCXmaMA2Q2UAcVxWQCVHKH+zxceAGmE4/825l7/ha3M/1y3nf9YkPz+ZiFaAJ9hAwC12pv/8HJ3AGrWNf+lvnMBmFvh/1hqLP/QPXEAlzR8AL8bnP9uNuwBDh6m/yd/zwHlxxwAvOS8/mSd6wD22rcBaxbB/86gXwBM75MAz6F1ADOmAv80dQr+STjj/5jB4QCEXoj/Zb/RACBr5f/GK7QBZNJ2AHJDmf8XWBr/WZpcAdx4jP+Qcs///HP6/yLOSACKhX//CLJ8AVdLYQAP5Vz+8EOD/3Z74/6SeGj/kdX/AYG7Rv/bdzYAAROtAC2WlAH4U0gAy+mpAY5rOAD3+SYBLfJQ/x7pZwBgUkYAF8lvAFEnHv+ht07/wuoh/0TjjP7YznQARhvr/2iQTwCk5l3+1oecAJq78v68FIP/JG2uAJ9w8QAFbpUBJKXaAKYdEwGyLkkAXSsg/vi97QBmm40AyV3D//GL/f8Pb2L/bEGj/ptPvv9JrsH+9igw/2tYC/7KYVX//cwS/3HyQgBuoML+0BK6AFEVPAC8aKf/fKZh/tKFjgA48on+KW+CAG+XOgFv1Y3/t6zx/yYGxP+5B3v/Lgv2APVpdwEPAqH/CM4t/xLKSv9TfHMB1I2dAFMI0f6LD+j/rDat/jL3hADWvdUAkLhpAN/++AD/k/D/F7xIAAczNgC8GbT+3LQA/1OgFACjvfP/OtHC/1dJPABqGDEA9fncABatpwB2C8P/E37tAG6fJf87Ui8AtLtWALyU0AFkJYX/B3DBAIG8nP9UaoH/heHKAA7sb/8oFGUArKwx/jM2Sv/7ubj/XZvg/7T54AHmspIASDk2/rI+uAB3zUgAue/9/z0P2gDEQzj/6iCrAS7b5ADQbOr/FD/o/6U1xwGF5AX/NM1rAErujP+WnNv+76yy//u93/4gjtP/2g+KAfHEUAAcJGL+FurHAD3t3P/2OSUAjhGO/50+GgAr7l/+A9kG/9UZ8AEn3K7/ms0w/hMNwP/0Ijb+jBCbAPC1Bf6bwTwApoAE/ySROP+W8NsAeDORAFKZKgGM7JIAa1z4Ab0KAwA/iPIA0ycYABPKoQGtG7r/0szv/inRov+2/p//rHQ0AMNn3v7NRTsANRYpAdowwgBQ0vIA0rzPALuhof7YEQEAiOFxAPq4PwDfHmL+TaiiADs1rwATyQr/i+DCAJPBmv/UvQz+Aciu/zKFcQFes1oArbaHAF6xcQArWdf/iPxq/3uGU/4F9UL/UjEnAdwC4ABhgbEATTtZAD0dmwHLq9z/XE6LAJEhtf+pGI0BN5azAIs8UP/aJ2EAApNr/zz4SACt5i8BBlO2/xBpov6J1FH/tLiGASfepP/dafsB73B9AD8HYQA/aOP/lDoMAFo84P9U1PwAT9eoAPjdxwFzeQEAJKx4ACCiu/85azH/kyoVAGrGKwE5SlcAfstR/4GHwwCMH7EA3YvCAAPe1wCDROcAsVay/nyXtAC4fCYBRqMRAPn7tQEqN+MA4qEsABfsbgAzlY4BXQXsANq3av5DGE0AKPXR/955mQClOR4AU308AEYmUgHlBrwAbd6d/zd2P//Nl7oA4yGV//6w9gHjseMAImqj/rArTwBqX04BufF6/7kOPQAkAcoADbKi//cLhACh5lwBQQG5/9QypQGNkkD/nvLaABWkfQDVi3oBQ0dXAMuesgGXXCsAmG8F/ycD7//Z//r/sD9H/0r1TQH6rhL/IjHj//Yu+/+aIzABfZ09/2okTv9h7JkAiLt4/3GGq/8T1dn+2F7R//wFPQBeA8oAAxq3/0C/K/8eFxUAgY1N/2Z4BwHCTIwAvK80/xFRlADoVjcB4TCsAIYqKv/uMi8AqRL+ABSTV/8Ow+//RfcXAO7lgP+xMXAAqGL7/3lH+ADzCJH+9uOZ/9upsf77i6X/DKO5/6Qoq/+Znxv+821b/94YcAES1ucAa521/sOTAP/CY2j/WYy+/7FCfv5quUIAMdofAPyungC8T+YB7ingANTqCAGIC7UApnVT/0TDXgAuhMkA8JhYAKQ5Rf6g4Cr/O9dD/3fDjf8ktHn+zy8I/67S3wBlxUT//1KNAfqJ6QBhVoUBEFBFAISDnwB0XWQALY2LAJisnf9aK1sAR5kuACcQcP/ZiGH/3MYZ/rE1MQDeWIb/gA88AM/Aqf/AdNH/ak7TAcjVt/8HDHr+3ss8/yFux/77anUA5OEEAXg6B//dwVT+cIUbAL3Iyf+Lh5YA6jew/z0yQQCYbKn/3FUB/3CH4wCiGroAz2C5/vSIawBdmTIBxmGXAG4LVv+Pda7/c9TIAAXKtwDtpAr+ue8+AOx4Ev5ie2P/qMnC/i7q1gC/hTH/Y6l3AL67IwFzFS3/+YNIAHAGe//WMbX+pukiAFzFZv795M3/AzvJASpiLgDbJSP/qcMmAF58wQGcK98AX0iF/njOvwB6xe//sbtP//4uAgH6p74AVIETAMtxpv/5H73+SJ3K/9BHSf/PGEgAChASAdJRTP9Y0MD/fvNr/+6NeP/Heer/iQw7/yTce/+Uszz+8AwdAEIAYQEkHib/cwFd/2Bn5//FnjsBwKTwAMrKOf8YrjAAWU2bASpM1wD0l+kAFzBRAO9/NP7jgiX/+HRdAXyEdgCt/sABButT/26v5wH7HLYAgfld/lS4gABMtT4Ar4C6AGQ1iP5tHeIA3ek6ARRjSgAAFqAAhg0VAAk0N/8RWYwAryI7AFSld//g4ur/B0im/3tz/wES1vYA+gdHAdncuQDUI0z/Jn2vAL1h0gBy7iz/Kbyp/i26mgBRXBYAhKDBAHnQYv8NUSz/y5xSAEc6Ff/Qcr/+MiaTAJrYwwBlGRIAPPrX/+mE6/9nr44BEA5cAI0fbv7u8S3/mdnvAWGoL//5VRABHK8+/zn+NgDe534Api11/hK9YP/kTDIAyPReAMaYeAFEIkX/DEGg/mUTWgCnxXj/RDa5/ynavABxqDAAWGm9ARpSIP+5XaQB5PDt/0K2NQCrxVz/awnpAcd4kP9OMQr/bapp/1oEH/8c9HH/SjoLAD7c9v95msj+kNKy/345gQEr+g7/ZW8cAS9W8f89Rpb/NUkF/x4angDRGlYAiu1KAKRfvACOPB3+onT4/7uvoACXEhAA0W9B/suGJ/9YbDH/gxpH/90b1/5oaV3/H+wf/ocA0/+Pf24B1EnlAOlDp/7DAdD/hBHd/zPZWgBD6zL/39KPALM1ggHpasYA2a3c/3DlGP+vml3+R8v2/zBChf8DiOb/F91x/utv1QCqeF/++90CAC2Cnv5pXtn/8jS0/tVELf9oJhwA9J5MAKHIYP/PNQ3/u0OUAKo2+AB3orL/UxQLACoqwAGSn6P/t+hvAE3lFf9HNY8AG0wiAPaIL//bJ7b/XODJAROODv9FtvH/o3b1AAltagGqtff/Ti/u/1TSsP/Va4sAJyYLAEgVlgBIgkUAzU2b/o6FFQBHb6z+4io7/7MA1wEhgPEA6vwNAbhPCABuHkn/9o29AKrP2gFKmkX/ivYx/5sgZAB9Smn/WlU9/yPlsf8+fcH/mVa8AUl41ADRe/b+h9Em/5c6LAFcRdb/DgxY//yZpv/9z3D/PE5T/+N8bgC0YPz/NXUh/qTcUv8pARv/JqSm/6Rjqf49kEb/wKYSAGv6QgDFQTIAAbMS//9oAf8rmSP/UG+oAG6vqAApaS3/2w7N/6TpjP4rAXYA6UPDALJSn/+KV3r/1O5a/5AjfP4ZjKQA+9cs/oVGa/9l41D+XKk3ANcqMQBytFX/IegbAazVGQA+sHv+IIUY/+G/PgBdRpkAtSpoARa/4P/IyIz/+eolAJU5jQDDOND//oJG/yCt8P8d3McAbmRz/4Tl+QDk6d//JdjR/rKx0f+3LaX+4GFyAIlhqP/h3qwApQ0xAdLrzP/8BBz+RqCXAOi+NP5T+F3/PtdNAa+vs/+gMkIAeTDQAD+p0f8A0sgA4LssAUmiUgAJsI//E0zB/x07pwEYK5oAHL6+AI28gQDo68v/6gBt/zZBnwA8WOj/ef2W/vzpg//GbikBU01H/8gWO/5q/fL/FQzP/+1CvQBaxsoB4ax/ADUWygA45oQAAVa3AG2+KgDzRK4BbeSaAMixegEjoLf/sTBV/1raqf/4mE4Ayv5uAAY0KwCOYkH/P5EWAEZqXQDoimsBbrM9/9OB2gHy0VwAI1rZAbaPav90Zdn/cvrd/63MBgA8lqMASaws/+9uUP/tTJn+oYz5AJXo5QCFHyj/rqR3AHEz1gCB5AL+QCLzAGvj9P+uasj/VJlGATIjEAD6Stj+7L1C/5n5DQDmsgT/3SnuAHbjef9eV4z+/ndcAEnv9v51V4AAE9OR/7Eu/ADlW/YBRYD3/8pNNgEICwn/mWCmANnWrf+GwAIBAM8AAL2uawGMhmQAnsHzAbZmqwDrmjMAjgV7/zyoWQHZDlz/E9YFAdOn/gAsBsr+eBLs/w9xuP+434sAKLF3/rZ7Wv+wpbAA903CABvqeADnANb/OyceAH1jkf+WREQBjd74AJl70v9uf5j/5SHWAYfdxQCJYQIADI/M/1EpvABzT4L/XgOEAJivu/98jQr/fsCz/wtnxgCVBi0A21W7AeYSsv9ItpgAA8a4/4Bw4AFhoeYA/mMm/zqfxQCXQtsAO0WP/7lw+QB3iC//e4KEAKhHX/9xsCgB6LmtAM9ddQFEnWz/ZgWT/jFhIQBZQW/+9x6j/3zZ3QFm+tgAxq5L/jk3EgDjBewB5dWtAMlt2gEx6e8AHjeeARmyagCbb7wBXn6MANcf7gFN8BAA1fIZASZHqADNul3+MdOM/9sAtP+GdqUAoJOG/266I//G8yoA85J3AIbrowEE8Yf/wS7B/me0T//hBLj+8naCAJKHsAHqbx4ARULV/ilgewB5Xir/sr/D/y6CKgB1VAj/6THW/u56bQAGR1kB7NN7APQNMP53lA4AchxW/0vtGf+R5RD+gWQ1/4aWeP6onTIAF0ho/+AxDgD/exb/l7mX/6pQuAGGthQAKWRlAZkhEABMmm8BVs7q/8CgpP6le13/Adik/kMRr/+pCzv/nik9/0m8Dv/DBon/FpMd/xRnA//2guP/eiiAAOIvGP4jJCAAmLq3/0XKFADDhcMA3jP3AKmrXgG3AKD/QM0SAZxTD//FOvn++1lu/zIKWP4zK9gAYvLGAfWXcQCr7MIBxR/H/+VRJgEpOxQA/WjmAJhdDv/28pL+1qnw//BmbP6gp+wAmtq8AJbpyv8bE/oBAkeF/68MPwGRt8YAaHhz/4L79wAR1Kf/PnuE//dkvQCb35gAj8UhAJs7LP+WXfABfwNX/19HzwGnVQH/vJh0/woXFwCJw10BNmJhAPAAqP+UvH8AhmuXAEz9qwBahMAAkhY2AOBCNv7muuX/J7bEAJT7gv9Bg2z+gAGgAKkxp/7H/pT/+waDALv+gf9VUj4Ashc6//6EBQCk1ScAhvyS/iU1Uf+bhlIAzafu/14ttP+EKKEA/m9wATZL2QCz5t0B616//xfzMAHKkcv/J3Yq/3WN/QD+AN4AK/syADap6gFQRNAAlMvz/pEHhwAG/gAA/Ll/AGIIgf8mI0j/0yTcASgaWQCoQMX+A97v/wJT1/60n2kAOnPCALp0av/l99v/gXbBAMqutwGmoUgAyWuT/u2ISgDp5moBaW+oAEDgHgEB5QMAZpev/8Lu5P/++tQAu+15AEP7YAHFHgsAt1/MAM1ZigBA3SUB/98e/7Iw0//xyFr/p9Fg/zmC3QAucsj/PbhCADe2GP5utiEAq77o/3JeHwAS3QgAL+f+AP9wUwB2D9f/rRko/sDBH//uFZL/q8F2/2XqNf6D1HAAWcBrAQjQGwC12Q//55XoAIzsfgCQCcf/DE+1/pO2yv8Tbbb/MdThAEqjywCv6ZQAGnAzAMHBCf8Ph/kAluOCAMwA2wEY8s0A7tB1/xb0cAAa5SIAJVC8/yYtzv7wWuH/HQMv/yrgTAC686cAIIQP/wUzfQCLhxgABvHbAKzlhf/21jIA5wvP/79+UwG0o6r/9TgYAbKk0/8DEMoBYjl2/42DWf4hMxgA85Vb//00DgAjqUP+MR5Y/7MbJP+ljLcAOr2XAFgfAABLqUIAQmXH/xjYxwF5xBr/Dk/L/vDiUf9eHAr/U8Hw/8zBg/9eD1YA2iidADPB0QAA8rEAZrn3AJ5tdAAmh1sA36+VANxCAf9WPOgAGWAl/+F6ogHXu6j/np0uADirogDo8GUBehYJADMJFf81Ge7/2R7o/n2plAAN6GYAlAklAKVhjQHkgykA3g/z//4SEQAGPO0BagNxADuEvQBccB4AadDVADBUs/+7eef+G9ht/6Lda/5J78P/+h85/5WHWf+5F3MBA6Od/xJw+gAZObv/oWCkAC8Q8wAMjfv+Q+q4/ykSoQCvBmD/oKw0/hiwt//GwVUBfHmJ/5cycv/cyzz/z+8FAQAma/837l7+RpheANXcTQF4EUX/VaS+/8vqUQAmMSX+PZB8AIlOMf6o9zAAX6T8AGmphwD95IYAQKZLAFFJFP/P0goA6mqW/14iWv/+nzn+3IVjAIuTtP4YF7kAKTke/71hTABBu9//4Kwl/yI+XwHnkPAATWp+/kCYWwAdYpsA4vs1/+rTBf+Qy97/pLDd/gXnGACzes0AJAGG/31Gl/5h5PwArIEX/jBa0f+W4FIBVIYeAPHELgBncer/LmV5/ih8+v+HLfL+Cfmo/4xsg/+Po6sAMq3H/1jejv/IX54AjsCj/wd1hwBvfBYA7AxB/kQmQf/jrv4A9PUmAPAy0P+hP/oAPNHvAHojEwAOIeb+Ap9xAGoUf//kzWAAidKu/rTUkP9ZYpoBIliLAKeicAFBbsUA8SWpAEI4g/8KyVP+hf27/7FwLf7E+wAAxPqX/+7o1v+W0c0AHPB2AEdMUwHsY1sAKvqDAWASQP923iMAcdbL/3p3uP9CEyQAzED5AJJZiwCGPocBaOllALxUGgAx+YEA0NZL/8+CTf9zr+sAqwKJ/6+RugE39Yf/mla1AWQ69v9txzz/UsyG/9cx5gGM5cD/3sH7/1GID/+zlaL/Fycd/wdfS/6/Ud4A8VFa/2sxyf/0050A3oyV/0HbOP699lr/sjudATDbNABiItcAHBG7/6+pGABcT6H/7MjCAZOP6gDl4QcBxagOAOszNQH9eK4AxQao/8p1qwCjFc4AclVa/w8pCv/CE2MAQTfY/qKSdAAyztT/QJId/56egwFkpYL/rBeB/301Cf8PwRIBGjEL/7WuyQGHyQ7/ZBOVANtiTwAqY4/+YAAw/8X5U/5olU//626I/lKALP9BKST+WNMKALt5uwBihscAq7yz/tIL7v9Ce4L+NOo9ADBxF/4GVnj/d7L1AFeByQDyjdEAynJVAJQWoQBnwzAAGTGr/4pDggC2SXr+lBiCANPlmgAgm54AVGk9ALHCCf+mWVYBNlO7APkodf9tA9f/NZIsAT8vswDC2AP+DlSIAIixDf9I87r/dRF9/9M60/9dT98AWlj1/4vRb/9G3i8ACvZP/8bZsgDj4QsBTn6z/z4rfgBnlCMAgQil/vXwlAA9M44AUdCGAA+Jc//Td+z/n/X4/wKGiP/mizoBoKT+AHJVjf8xprb/kEZUAVW2BwAuNV0ACaah/zeisv8tuLwAkhws/qlaMQB4svEBDnt//wfxxwG9QjL/xo9l/r3zh/+NGBj+S2FXAHb7mgHtNpwAq5LP/4PE9v+IQHEBl+g5APDacwAxPRv/QIFJAfypG/8ohAoBWsnB//x58AG6zikAK8ZhAJFktwDM2FD+rJZBAPnlxP5oe0n/TWhg/oK0CABoezkA3Mrl/2b50wBWDuj/tk7RAO/hpABqDSD/eEkR/4ZD6QBT/rUAt+xwATBAg//x2PP/QcHiAM7xZP5khqb/7crFADcNUQAgfGb/KOSxAHa1HwHnoIb/d7vKAACOPP+AJr3/psmWAM94GgE2uKwADPLM/oVC5gAiJh8BuHBQACAzpf6/8zcAOkmS/punzf9kaJj/xf7P/60T9wDuCsoA75fyAF47J//wHWb/Clya/+VU2/+hgVAA0FrMAfDbrv+eZpEBNbJM/zRsqAFT3msA0yRtAHY6OAAIHRYA7aDHAKrRnQCJRy8Aj1YgAMbyAgDUMIgBXKy6AOaXaQFgv+UAilC//vDYgv9iKwb+qMQxAP0SWwGQSXkAPZInAT9oGP+4pXD+futiAFDVYv97PFf/Uoz1Ad94rf8PxoYBzjzvAOfqXP8h7hP/pXGOAbB3JgCgK6b+71tpAGs9wgEZBEQAD4szAKSEav8idC7+qF/FAInUFwBInDoAiXBF/pZpmv/syZ0AF9Sa/4hS4/7iO93/X5XAAFF2NP8hK9cBDpNL/1mcef4OEk8Ak9CLAZfaPv+cWAgB0rhi/xSve/9mU+UA3EF0AZb6BP9cjtz/IvdC/8zhs/6XUZcARyjs/4o/PgAGT/D/t7m1AHYyGwA/48AAe2M6ATLgm/8R4d/+3OBN/w4sewGNgK8A+NTIAJY7t/+TYR0Alsy1AP0lRwCRVXcAmsi6AAKA+f9TGHwADlePAKgz9QF8l+f/0PDFAXy+uQAwOvYAFOnoAH0SYv8N/h//9bGC/2yOIwCrffL+jAwi/6WhogDOzWUA9xkiAWSROQAnRjkAdszL//IAogCl9B4AxnTiAIBvmf+MNrYBPHoP/5s6OQE2MsYAq9Md/2uKp/+ta8f/baHBAFlI8v/Oc1n/+v6O/rHKXv9RWTIAB2lC/xn+//7LQBf/T95s/yf5SwDxfDIA75iFAN3xaQCTl2IA1aF5/vIxiQDpJfn+KrcbALh35v/ZIKP/0PvkAYk+g/9PQAn+XjBxABGKMv7B/xYA9xLFAUM3aAAQzV//MCVCADecPwFAUkr/yDVH/u9DfQAa4N4A34ld/x7gyv8J3IQAxibrAWaNVgA8K1EBiBwaAOkkCP7P8pQApKI/ADMu4P9yME//Ca/iAN4Dwf8voOj//11p/g4q5gAailIB0Cv0ABsnJv9i0H//QJW2/wX60QC7PBz+MRna/6l0zf93EngAnHST/4Q1bf8NCsoAblOnAJ3bif8GA4L/Mqce/zyfL/+BgJ3+XgO9AAOmRABT39cAllrCAQ+oQQDjUzP/zatC/za7PAGYZi3/d5rhAPD3iABkxbL/i0ff/8xSEAEpzir/nMDd/9h79P/a2rn/u7rv//ysoP/DNBYAkK61/rtkc//TTrD/GwfBAJPVaP9ayQr/UHtCARYhugABB2P+Hs4KAOXqBQA1HtIAigjc/kc3pwBI4VYBdr68AP7BZQGr+az/Xp63/l0CbP+wXUz/SWNP/0pAgf72LkEAY/F//vaXZv8sNdD+O2bqAJqvpP9Y8iAAbyYBAP+2vv9zsA/+qTyBAHrt8QBaTD8APkp4/3rDbgB3BLIA3vLSAIIhLv6cKCkAp5JwATGjb/95sOsATM8O/wMZxgEp69UAVSTWATFcbf/IGB7+qOzDAJEnfAHsw5UAWiS4/0NVqv8mIxr+g3xE/++bI/82yaQAxBZ1/zEPzQAY4B0BfnGQAHUVtgDLn40A34dNALDmsP++5df/YyW1/zMViv8ZvVn/MTCl/pgt9wCqbN4AUMoFABtFZ/7MFoH/tPw+/tIBW/+Sbv7/26IcAN/81QE7CCEAzhD0AIHTMABroNAAcDvRAG1N2P4iFbn/9mM4/7OLE/+5HTL/VFkTAEr6Yv/hKsj/wNnN/9IQpwBjhF8BK+Y5AP4Ly/9jvD//d8H7/lBpNgDotb0Bt0Vw/9Crpf8vbbT/e1OlAJKiNP+aCwT/l+Na/5KJYf496Sn/Xio3/2yk7ACYRP4ACoyD/wpqT/7znokAQ7JC/rF7xv8PPiIAxVgq/5Vfsf+YAMb/lf5x/+Fao/992fcAEhHgAIBCeP7AGQn/Mt3NADHURgDp/6QAAtEJAN002/6s4PT/XjjOAfKzAv8fW6QB5i6K/73m3AA5Lz3/bwudALFbmAAc5mIAYVd+AMZZkf+nT2sA+U2gAR3p5v+WFVb+PAvBAJclJP65lvP/5NRTAayXtADJqZsA9DzqAI7rBAFD2jwAwHFLAXTzz/9BrJsAUR6c/1BIIf4S523/jmsV/n0ahP+wEDv/lsk6AM6pyQDQeeIAKKwO/5Y9Xv84OZz/jTyR/y1slf/ukZv/0VUf/sAM0gBjYl3+mBCXAOG53ACN6yz/oKwV/kcaH/8NQF3+HDjGALE++AG2CPEApmWU/05Rhf+B3tcBvKmB/+gHYQAxcDz/2eX7AHdsigAnE3v+gzHrAIRUkQCC5pT/GUq7AAX1Nv+52/EBEsLk//HKZgBpccoAm+tPABUJsv+cAe8AyJQ9AHP30v8x3YcAOr0IASMuCQBRQQX/NJ65/310Lv9KjA3/0lys/pMXRwDZ4P3+c2y0/5E6MP7bsRj/nP88AZqT8gD9hlcANUvlADDD3v8frzL/nNJ4/9Aj3v8S+LMBAgpl/53C+P+ezGX/aP7F/08+BACyrGUBYJL7/0EKnAACiaX/dATnAPLXAQATIx3/K6FPADuV9gH7QrAAyCED/1Bujv/DoREB5DhC/3svkf6EBKQAQ66sABn9cgBXYVcB+txUAGBbyP8lfTsAE0F2AKE08f/trAb/sL///wFBgv7fvuYAZf3n/5IjbQD6HU0BMQATAHtamwEWViD/2tVBAG9dfwA8Xan/CH+2ABG6Dv79ifb/1Rkw/kzuAP/4XEb/Y+CLALgJ/wEHpNAAzYPGAVfWxwCC1l8A3ZXeABcmq/7FbtUAK3OM/texdgBgNEIBdZ7tAA5Atv8uP67/nl++/+HNsf8rBY7/rGPU//S7kwAdM5n/5HQY/h5lzwAT9pb/hucFAH2G4gFNQWIA7IIh/wVuPgBFbH//B3EWAJEUU/7Coef/g7U8ANnRsf/llNT+A4O4AHWxuwEcDh//sGZQADJUl/99Hzb/FZ2F/xOziwHg6BoAInWq/6f8q/9Jjc7+gfojAEhP7AHc5RT/Kcqt/2NM7v/GFuD/bMbD/ySNYAHsnjv/amRXAG7iAgDj6t4Aml13/0pwpP9DWwL/FZEh/2bWif+v5mf+o/amAF33dP6n4Bz/3AI5AavOVAB75BH/G3h3AHcLkwG0L+H/aMi5/qUCcgBNTtQALZqx/xjEef5SnbYAWhC+AQyTxQBf75j/C+tHAFaSd/+shtYAPIPEAKHhgQAfgnj+X8gzAGnn0v86CZT/K6jd/3ztjgDG0zL+LvVnAKT4VACYRtD/tHWxAEZPuQDzSiAAlZzPAMXEoQH1Ne8AD132/ovwMf/EWCT/oiZ7AIDInQGuTGf/raki/tgBq/9yMxEAiOTCAG6WOP5q9p8AE7hP/5ZN8P+bUKIAADWp/x2XVgBEXhAAXAdu/mJ1lf/5Teb//QqMANZ8XP4jdusAWTA5ARY1pgC4kD3/s//CANb4Pf47bvYAeRVR/qYD5ABqQBr/ReiG//LcNf4u3FUAcZX3/2GzZ/++fwsAh9G2AF80gQGqkM7/esjM/6hkkgA8kJX+RjwoAHo0sf/202X/ru0IAAczeAATH60Afu+c/4+9ywDEgFj/6YXi/x59rf/JbDIAe2Q7//6jAwHdlLX/1og5/t60if/PWDb/HCH7/0PWNAHS0GQAUapeAJEoNQDgb+f+Ixz0/+LHw/7uEeYA2dmk/qmd3QDaLqIBx8+j/2xzogEOYLv/djxMALifmADR50f+KqS6/7qZM/7dq7b/oo6tAOsvwQAHixABX6RA/xDdpgDbxRAAhB0s/2RFdf8861j+KFGtAEe+Pf+7WJ0A5wsXAO11pADhqN//mnJ0/6OY8gEYIKoAfWJx/qgTTAARndz+mzQFABNvof9HWvz/rW7wAArGef/9//D/QnvSAN3C1/55oxH/4QdjAL4xtgBzCYUB6BqK/9VEhAAsd3r/s2IzAJVaagBHMub/Cpl2/7FGGQClV80AN4rqAO4eYQBxm88AYpl/ACJr2/51cqz/TLT//vI5s//dIqz+OKIx/1MD//9x3b3/vBnk/hBYWf9HHMb+FhGV//N5/v9rymP/Cc4OAdwvmQBriScBYTHC/5Uzxf66Ogv/ayvoAcgGDv+1hUH+3eSr/3s+5wHj6rP/Ir3U/vS7+QC+DVABglkBAN+FrQAJ3sb/Qn9KAKfYXf+bqMYBQpEAAERmLgGsWpoA2IBL/6AoMwCeERsBfPAxAOzKsP+XfMD/JsG+AF+2PQCjk3z//6Uz/xwoEf7XYE4AVpHa/h8kyv9WCQUAbynI/+1sYQA5PiwAdbgPAS3xdACYAdz/naW8APoPgwE8LH3/Qdz7/0syuAA1WoD/51DC/4iBfwEVErv/LTqh/0eTIgCu+Qv+I40dAO9Esf9zbjoA7r6xAVf1pv++Mff/klO4/60OJ/+S12gAjt94AJXIm//Uz5EBELXZAK0gV///I7UAd9+hAcjfXv9GBrr/wENV/zKpmACQGnv/OPOz/hREiAAnjLz+/dAF/8hzhwErrOX/nGi7AJf7pwA0hxcAl5lIAJPFa/6UngX/7o/OAH6Zif9YmMX+B0SnAPyfpf/vTjb/GD83/ybeXgDttwz/zszSABMn9v4eSucAh2wdAbNzAAB1dnQBhAb8/5GBoQFpQ40AUiXi/+7i5P/M1oH+ontk/7l56gAtbOcAQgg4/4SIgACs4EL+r528AObf4v7y20UAuA53AVKiOAByexQAomdV/zHvY/6ch9cAb/+n/ifE1gCQJk8B+ah9AJthnP8XNNv/lhaQACyVpf8of7cAxE3p/3aB0v+qh+b/1nfGAOnwIwD9NAf/dWYw/xXMmv+ziLH/FwIDAZWCWf/8EZ8BRjwaAJBrEQC0vjz/OLY7/25HNv/GEoH/leBX/98VmP+KFrb/+pzNAOwt0P9PlPIBZUbRAGdOrgBlkKz/mIjtAb/CiABxUH0BmASNAJuWNf/EdPUA73JJ/hNSEf98fer/KDS/ACrSnv+bhKUAsgUqAUBcKP8kVU3/suR2AIlCYP5z4kIAbvBF/pdvUACnruz/42xr/7zyQf+3Uf8AOc61/y8itf/V8J4BR0tfAJwoGP9m0lEAq8fk/5oiKQDjr0sAFe/DAIrlXwFMwDEAdXtXAePhggB9Pj//AsarAP4kDf6Rus4AlP/0/yMApgAeltsBXOTUAFzGPP4+hcj/ySk7AH3ubf+0o+4BjHpSAAkWWP/FnS//mV45AFgetgBUoVUAspJ8AKamB/8V0N8AnLbyAJt5uQBTnK7+mhB2/7pT6AHfOnn/HRdYACN9f/+qBZX+pAyC/5vEHQChYIgAByMdAaIl+wADLvL/ANm8ADmu4gHO6QIAObuI/nu9Cf/JdX//uiTMAOcZ2ABQTmkAE4aB/5TLRACNUX3++KXI/9aQhwCXN6b/JutbABUumgDf/pb/I5m0/32wHQErYh7/2Hrm/+mgDAA5uQz+8HEH/wUJEP4aW2wAbcbLAAiTKACBhuT/fLoo/3JihP6mhBcAY0UsAAny7v+4NTsAhIFm/zQg8/6T38j/e1Oz/oeQyf+NJTgBlzzj/1pJnAHLrLsAUJcv/16J5/8kvzv/4dG1/0rX1f4GdrP/mTbBATIA5wBonUgBjOOa/7biEP5g4Vz/cxSq/gb6TgD4S63/NVkG/wC0dgBIrQEAQAjOAa6F3wC5PoX/1gtiAMUf0ACrp/T/Fue1AZbauQD3qWEBpYv3/y94lQFn+DMAPEUc/hmzxAB8B9r+OmtRALjpnP/8SiQAdrxDAI1fNf/eXqX+Lj01AM47c/8v7Pr/SgUgAYGa7v9qIOIAebs9/wOm8f5Dqqz/Hdiy/xfJ/AD9bvMAyH05AG3AYP80c+4AJnnz/8k4IQDCdoIAS2AZ/6oe5v4nP/0AJC36//sB7wCg1FwBLdHtAPMhV/7tVMn/1BKd/tRjf//ZYhD+i6zvAKjJgv+Pwan/7pfBAddoKQDvPaX+AgPyABbLsf6xzBYAlYHV/h8LKf8An3n+oBly/6JQyACdlwsAmoZOAdg2/AAwZ4UAadzFAP2oTf41sxcAGHnwAf8uYP9rPIf+Ys35/z/5d/94O9P/crQ3/ltV7QCV1E0BOEkxAFbGlgBd0aAARc22//RaKwAUJLAAenTdADOnJwHnAT//DcWGAAPRIv+HO8oAp2ROAC/fTAC5PD4AsqZ7AYQMof89risAw0WQAH8vvwEiLE4AOeo0Af8WKP/2XpIAU+SAADxO4P8AYNL/ma/sAJ8VSQC0c8T+g+FqAP+nhgCfCHD/eETC/7DExv92MKj/XakBAHDIZgFKGP4AE40E/o4+PwCDs7v/TZyb/3dWpACq0JL/0IWa/5SbOv+ieOj+/NWbAPENKgBeMoMAs6pwAIxTl/83d1QBjCPv/5ktQwHsrycANpdn/54qQf/E74f+VjXLAJVhL/7YIxH/RgNGAWckWv8oGq0AuDANAKPb2f9RBgH/3aps/unQXQBkyfn+ViQj/9GaHgHjyfv/Ar2n/mQ5AwANgCkAxWRLAJbM6/+RrjsAePiV/1U34QBy0jX+x8x3AA73SgE/+4EAQ2iXAYeCUABPWTf/dead/xlgjwDVkQUARfF4AZXzX/9yKhQAg0gCAJo1FP9JPm0AxGaYACkMzP96JgsB+gqRAM99lAD29N7/KSBVAXDVfgCi+VYBR8Z//1EJFQFiJwT/zEctAUtviQDqO+cAIDBf/8wfcgEdxLX/M/Gn/l1tjgBokC0A6wy1/zRwpABM/sr/rg6iAD3rk/8rQLn+6X3ZAPNYp/5KMQgAnMxCAHzWewAm3XYBknDsAHJisQCXWccAV8VwALmVoQAsYKUA+LMU/7zb2P4oPg0A846NAOXjzv+syiP/dbDh/1JuJgEq9Q7/FFNhADGrCgDyd3gAGeg9ANTwk/8Eczj/kRHv/soR+//5EvX/Y3XvALgEs//27TP/Je+J/6Zwpv9RvCH/ufqO/za7rQDQcMkA9ivkAWi4WP/UNMT/M3Vs//51mwAuWw//Vw6Q/1fjzABTGlMBn0zjAJ8b1QEYl2wAdZCz/onRUgAmnwoAc4XJAN+2nAFuxF3/OTzpAAWnaf+axaQAYCK6/5OFJQHcY74AAadU/xSRqwDCxfv+X06F//z48//hXYP/u4bE/9iZqgAUdp7+jAF2AFaeDwEt0yn/kwFk/nF0TP/Tf2wBZw8wAMEQZgFFM1//a4CdAImr6QBafJABaqG2AK9M7AHIjaz/ozpoAOm0NP/w/Q7/onH+/ybviv40LqYA8WUh/oO6nABv0D7/fF6g/x+s/gBwrjj/vGMb/0OK+wB9OoABnJiu/7IM9//8VJ4AUsUO/qzIU/8lJy4Bas+nABi9IgCDspAAztUEAKHi0gBIM2n/YS27/0643/+wHfsAT6BW/3QlsgBSTdUBUlSN/+Jl1AGvWMf/9V73Aax2bf+mub4Ag7V4AFf+Xf+G8En/IPWP/4uiZ/+zYhL+2cxwAJPfeP81CvMApoyWAH1QyP8Obdv/W9oB//z8L/5tnHT/czF/AcxX0/+Uytn/GlX5/w71hgFMWan/8i3mADtirP9ySYT+Tpsx/55+VAAxryv/ELZU/51nIwBowW3/Q92aAMmsAf4IolgApQEd/32b5f8emtwBZ+9cANwBbf/KxgEAXgKOASQ2LADr4p7/qvvW/7lNCQBhSvIA26OV//Ajdv/fclj+wMcDAGolGP/JoXb/YVljAeA6Z/9lx5P+3jxjAOoZOwE0hxsAZgNb/qjY6wDl6IgAaDyBAC6o7gAnv0MAS6MvAI9hYv842KgBqOn8/yNvFv9cVCsAGshXAVv9mADKOEYAjghNAFAKrwH8x0wAFm5S/4EBwgALgD0BVw6R//3evgEPSK4AVaNW/jpjLP8tGLz+Gs0PABPl0v74Q8MAY0e4AJrHJf+X83n/JjNL/8lVgv4sQfoAOZPz/pIrO/9ZHDUAIVQY/7MzEv69RlMAC5yzAWKGdwCeb28Ad5pJ/8g/jP4tDQ3/msAC/lFIKgAuoLn+LHAGAJLXlQEasGgARBxXAewymf+zgPr+zsG//6Zcif41KO8A0gHM/qitIwCN8y0BJDJt/w/ywv/jn3r/sK/K/kY5SAAo3zgA0KI6/7diXQAPbwwAHghM/4R/9v8t8mcARbUP/wrRHgADs3kA8ejaAXvHWP8C0soBvIJR/15l0AFnJC0ATMEYAV8a8f+lorsAJHKMAMpCBf8lOJMAmAvzAX9V6P/6h9QBubFxAFrcS/9F+JIAMm8yAFwWUAD0JHP+o2RS/xnBBgF/PSQA/UMe/kHsqv+hEdf+P6+MADd/BABPcOkAbaAoAI9TB/9BGu7/2amM/05evf8Ak77/k0e6/mpNf//pnekBh1ft/9AN7AGbbST/tGTaALSjEgC+bgkBET97/7OItP+le3v/kLxR/kfwbP8ZcAv/49oz/6cy6v9yT2z/HxNz/7fwYwDjV4//SNn4/2apXwGBlZUA7oUMAePMIwDQcxoBZgjqAHBYjwGQ+Q4A8J6s/mRwdwDCjZn+KDhT/3mwLgAqNUz/nr+aAFvRXACtDRABBUji/8z+lQBQuM8AZAl6/nZlq//8ywD+oM82ADhI+QE4jA3/CkBr/ltlNP/htfgBi/+EAOaREQDpOBcAdwHx/9Wpl/9jYwn+uQ+//61nbQGuDfv/slgH/hs7RP8KIQL/+GE7ABoekgGwkwoAX3nPAbxYGAC5Xv7+czfJABgyRgB4NQYAjkKSAOTi+f9owN4BrUTbAKK4JP+PZon/nQsXAH0tYgDrXeH+OHCg/0Z08wGZ+Tf/gScRAfFQ9ABXRRUBXuRJ/05CQf/C4+cAPZJX/62bF/9wdNv+2CYL/4O6hQBe1LsAZC9bAMz+r//eEtf+rURs/+PkT/8m3dUAo+OW/h++EgCgswsBClpe/9yuWACj0+X/x4g0AIJf3f+MvOf+i3GA/3Wr7P4x3BT/OxSr/+RtvAAU4SD+wxCuAOP+iAGHJ2kAlk3O/9Lu4gA31IT+7zl8AKrCXf/5EPf/GJc+/wqXCgBPi7L/ePLKABrb1QA+fSP/kAJs/+YhU/9RLdgB4D4RANbZfQBimZn/s7Bq/oNdiv9tPiT/snkg/3j8RgDc+CUAzFhnAYDc+//s4wcBajHG/zw4awBjcu4A3MxeAUm7AQBZmiIATtml/w7D+f8J5v3/zYf1ABr8B/9UzRsBhgJwACWeIADnW+3/v6rM/5gH3gBtwDEAwaaS/+gTtf9pjjT/ZxAbAf3IpQDD2QT/NL2Q/3uboP5Xgjb/Tng9/w44KQAZKX3/V6j1ANalRgDUqQb/29PC/khdpP/FIWf/K46NAIPhrAD0aRwAREThAIhUDf+COSj+i004AFSWNQA2X50AkA2x/l9zugB1F3b/9Kbx/wu6hwCyasv/YdpdACv9LQCkmAQAi3bvAGABGP7rmdP/qG4U/zLvsAByKegAwfo1AP6gb/6Iein/YWxDANeYF/+M0dQAKr2jAMoqMv9qar3/vkTZ/+k6dQDl3PMBxQMEACV4Nv4EnIb/JD2r/qWIZP/U6A4AWq4KANjGQf8MA0AAdHFz//hnCADnfRL/oBzFAB64IwHfSfn/exQu/oc4Jf+tDeUBd6Ei//U9SQDNfXAAiWiGANn2Hv/tjo8AQZ9m/2ykvgDbda3/IiV4/shFUAAffNr+Shug/7qax/9Hx/wAaFGfARHIJwDTPcABGu5bAJTZDAA7W9X/C1G3/4Hmev9yy5EBd7RC/0iKtADglWoAd1Jo/9CMKwBiCbb/zWWG/xJlJgBfxab/y/GTAD7Qkf+F9vsAAqkOAA33uACOB/4AJMgX/1jN3wBbgTT/FboeAI/k0gH36vj/5kUf/rC6h//uzTQBi08rABGw2f4g80MA8m/pACwjCf/jclEBBEcM/yZpvwAHdTL/UU8QAD9EQf+dJG7/TfED/+It+wGOGc4AeHvRARz+7v8FgH7/W97X/6IPvwBW8EkAh7lR/izxowDU29L/cKKbAM9ldgCoSDj/xAU0AEis8v9+Fp3/kmA7/6J5mP6MEF8Aw/7I/lKWogB3K5H+zKxO/6bgnwBoE+3/9X7Q/+I71QB12cUAmEjtANwfF/4OWuf/vNRAATxl9v9VGFYAAbFtAJJTIAFLtsAAd/HgALntG/+4ZVIB6yVN//2GEwDo9noAPGqzAMMLDABtQusBfXE7AD0opACvaPAAAi+7/zIMjQDCi7X/h/poAGFc3v/Zlcn/y/F2/0+XQwB6jtr/lfXvAIoqyP5QJWH/fHCn/ySKV/+CHZP/8VdO/8xhEwGx0Rb/9+N//mN3U//UGcYBELOzAJFNrP5ZmQ7/2r2nAGvpO/8jIfP+LHBw/6F/TwHMrwoAKBWK/mh05ADHX4n/hb6o/5Kl6gG3YycAt9w2/v/ehQCi23n+P+8GAOFmNv/7EvYABCKBAYckgwDOMjsBD2G3AKvYh/9lmCv/lvtbACaRXwAizCb+soxT/xmB8/9MkCUAaiQa/naQrP9EuuX/a6HV/y6jRP+Vqv0AuxEPANqgpf+rI/YBYA0TAKXLdQDWa8D/9HuxAWQDaACy8mH/+0yC/9NNKgH6T0b/P/RQAWll9gA9iDoB7lvVAA47Yv+nVE0AEYQu/jmvxf+5PrgATEDPAKyv0P6vSiUAihvT/pR9wgAKWVEAqMtl/yvV0QHr9TYAHiPi/wl+RgDifV7+nHUU/zn4cAHmMED/pFymAeDW5v8keI8ANwgr//sB9QFqYqUASmtq/jUENv9aspYBA3h7//QFWQFy+j3//plSAU0PEQA57loBX9/mAOw0L/5nlKT/ec8kARIQuf9LFEoAuwtlAC4wgf8W79L/TeyB/29NzP89SGH/x9n7/yrXzACFkcn/OeaSAetkxgCSSSP+bMYU/7ZP0v9SZ4gA9mywACIRPP8TSnL+qKpO/53vFP+VKagAOnkcAE+zhv/neYf/rtFi//N6vgCrps0A1HQwAB1sQv+i3rYBDncVANUn+f/+3+T/t6XGAIW+MAB80G3/d69V/wnReQEwq73/w0eGAYjbM/+2W43+MZ9IACN29f9wuuP/O4kfAIksowByZzz+CNWWAKIKcf/CaEgA3IN0/7JPXADL+tX+XcG9/4L/Iv7UvJcAiBEU/xRlU//UzqYA5e5J/5dKA/+oV9cAm7yF/6aBSQDwT4X/stNR/8tIo/7BqKUADqTH/h7/zABBSFsBpkpm/8gqAP/CceP/QhfQAOXYZP8Y7xoACuk+/3sKsgEaJK7/d9vHAS2jvgAQqCoApjnG/xwaGgB+pecA+2xk/z3lef86dooATM8RAA0icP5ZEKgAJdBp/yPJ1/8oamX+Bu9yAChn4v72f27/P6c6AITwjgAFnlj/gUme/15ZkgDmNpIACC2tAE+pAQBzuvcAVECDAEPg/f/PvUAAmhxRAS24Nv9X1OD/AGBJ/4Eh6wE0QlD/+66b/wSzJQDqpF3+Xa/9AMZFV//gai4AYx3SAD68cv8s6ggAqa/3/xdtif/lticAwKVe/vVl2QC/WGAAxF5j/2ruC/41fvMAXgFl/y6TAgDJfHz/jQzaAA2mnQEw++3/m/p8/2qUkv+2DcoAHD2nANmYCP7cgi3/yOb/ATdBV/9dv2H+cvsOACBpXAEaz40AGM8N/hUyMP+6lHT/0yvhACUiov6k0ir/RBdg/7bWCP/1dYn/QsMyAEsMU/5QjKQACaUkAeRu4wDxEVoBGTTUAAbfDP+L8zkADHFLAfa3v//Vv0X/5g+OAAHDxP+Kqy//QD9qARCp1v/PrjgBWEmF/7aFjACxDhn/k7g1/wrjof942PT/SU3pAJ3uiwE7QekARvvYASm4mf8gy3AAkpP9AFdlbQEsUoX/9JY1/16Y6P87XSf/WJPc/05RDQEgL/z/oBNy/11rJ/92ENMBuXfR/+Pbf/5Yaez/om4X/ySmbv9b7N3/Qup0AG8T9P4K6RoAILcG/gK/8gDanDX+KTxG/6jsbwB5uX7/7o7P/zd+NADcgdD+UMyk/0MXkP7aKGz/f8qkAMshA/8CngAAJWC8/8AxSgBtBAAAb6cK/lvah//LQq3/lsLiAMn9Bv+uZnkAzb9uADXCBABRKC3+I2aP/wxsxv8QG+j//Ee6AbBucgCOA3UBcU2OABOcxQFcL/wANegWATYS6wAuI73/7NSBAAJg0P7I7sf/O6+k/5Ir5wDC2TT/A98MAIo2sv5V688A6M8iADE0Mv+mcVn/Ci3Y/z6tHABvpfYAdnNb/4BUPACnkMsAVw3zABYe5AGxcZL/garm/vyZgf+R4SsARucF/3ppfv5W9pT/biWa/tEDWwBEkT4A5BCl/zfd+f6y0lsAU5Li/kWSugBd0mj+EBmtAOe6JgC9eoz/+w1w/2luXQD7SKoAwBff/xgDygHhXeQAmZPH/m2qFgD4Zfb/snwM/7L+Zv43BEEAfda0ALdgkwAtdRf+hL/5AI+wy/6Itzb/kuqxAJJlVv8se48BIdGYAMBaKf5TD33/1axSANepkAAQDSIAINFk/1QS+QHFEez/2brmADGgsP9vdmH/7WjrAE87XP5F+Qv/I6xKARN2RADefKX/tEIj/1au9gArSm//fpBW/+TqWwDy1Rj+RSzr/9y0IwAI+Af/Zi9c//DNZv9x5qsBH7nJ/8L2Rv96EbsAhkbH/5UDlv91P2cAQWh7/9Q2EwEGjVgAU4bz/4g1ZwCpG7QAsTEYAG82pwDDPdf/HwFsATwqRgC5A6L/wpUo//Z/Jv6+dyb/PXcIAWCh2/8qy90BsfKk//WfCgB0xAAABV3N/oB/swB97fb/laLZ/1clFP6M7sAACQnBAGEB4gAdJgoAAIg//+VI0v4mhlz/TtrQAWgkVP8MBcH/8q89/7+pLgGzk5P/cb6L/n2sHwADS/z+1yQPAMEbGAH/RZX/boF2AMtd+QCKiUD+JkYGAJl03gChSnsAwWNP/3Y7Xv89DCsBkrGdAC6TvwAQ/yYACzMfATw6Yv9vwk0Bmlv0AIwokAGtCvsAy9Ey/myCTgDktFoArgf6AB+uPAApqx4AdGNS/3bBi/+7rcb+2m84ALl72AD5njQANLRd/8kJW/84Lab+hJvL/zrobgA001n//QCiAQlXtwCRiCwBXnr1AFW8qwGTXMYAAAhoAB5frgDd5jQB9/fr/4muNf8jFcz/R+PWAehSwgALMOP/qkm4/8b7/P4scCIAg2WD/0iouwCEh33/imhh/+64qP/zaFT/h9ji/4uQ7QC8iZYBUDiM/1app//CThn/3BG0/xENwQB1idT/jeCXADH0rwDBY6//E2OaAf9BPv+c0jf/8vQD//oOlQCeWNn/nc+G/vvoHAAunPv/qzi4/+8z6gCOioP/Gf7zAQrJwgA/YUsA0u+iAMDIHwF11vMAGEfe/jYo6P9Mt2/+kA5X/9ZPiP/YxNQAhBuM/oMF/QB8bBP/HNdLAEzeN/7ptj8ARKu//jRv3v8KaU3/UKrrAI8YWP8t53kAlIHgAT32VAD9Ltv/70whADGUEv7mJUUAQ4YW/o6bXgAfndP+1Soe/wTk9/78sA3/JwAf/vH0//+qLQr+/d75AN5yhAD/Lwb/tKOzAVRel/9Z0VL+5TSp/9XsAAHWOOT/h3eX/3DJwQBToDX+BpdCABKiEQDpYVsAgwVOAbV4Nf91Xz//7XW5AL9+iP+Qd+kAtzlhAS/Ju/+npXcBLWR+ABViBv6Rll//eDaYANFiaACPbx7+uJT5AOvYLgD4ypT/OV8WAPLhowDp9+j/R6sT/2f0Mf9UZ13/RHn0AVLgDQApTyv/+c6n/9c0Ff7AIBb/9288AGVKJv8WW1T+HRwN/8bn1/70msgA34ntANOEDgBfQM7/ET73/+mDeQFdF00Azcw0/lG9iAC024oBjxJeAMwrjP68r9sAb2KP/5c/ov/TMkf+E5I1AJItU/6yUu7/EIVU/+LGXf/JYRT/eHYj/3Iy5/+i5Zz/0xoMAHInc//O1IYAxdmg/3SBXv7H19v/S9/5Af10tf/o12j/5IL2/7l1VgAOBQgA7x09Ae1Xhf99kon+zKjfAC6o9QCaaRYA3NSh/2tFGP+J2rX/8VTG/4J60/+NCJn/vrF2AGBZsgD/EDD+emBp/3U26P8ifmn/zEOmAOg0iv/TkwwAGTYHACwP1/4z7C0AvkSBAWqT4QAcXS3+7I0P/xE9oQDcc8AA7JEY/m+oqQDgOj//f6S8AFLqSwHgnoYA0URuAdmm2QBG4aYBu8GP/xAHWP8KzYwAdcCcARE4JgAbfGwBq9c3/1/91ACbh6j/9rKZ/ppESgDoPWD+aYQ7ACFMxwG9sIL/CWgZ/kvGZv/pAXAAbNwU/3LmRgCMwoX/OZ6k/pIGUP+pxGEBVbeCAEae3gE77er/YBka/+ivYf8Lefj+WCPCANu0/P5KCOMAw+NJAbhuof8x6aQBgDUvAFIOef/BvjoAMK51/4QXIAAoCoYBFjMZ//ALsP9uOZIAdY/vAZ1ldv82VEwAzbgS/y8ESP9OcFX/wTJCAV0QNP8IaYYADG1I/zqc+wCQI8wALKB1/jJrwgABRKX/b26iAJ5TKP5M1uoAOtjN/6tgk/8o43IBsOPxAEb5twGIVIv/PHr3/o8Jdf+xron+SfePAOy5fv8+Gff/LUA4/6H0BgAiOTgBacpTAICT0AAGZwr/SopB/2FQZP/WriH/MoZK/26Xgv5vVKwAVMdL/vg7cP8I2LIBCbdfAO4bCP6qzdwAw+WHAGJM7f/iWxoBUtsn/+G+xwHZyHn/UbMI/4xBzgCyz1f++vwu/2hZbgH9vZ7/kNae/6D1Nv81t1wBFcjC/5IhcQHRAf8A62or/6c06ACd5d0AMx4ZAPrdGwFBk1f/T3vEAEHE3/9MLBEBVfFEAMq3+f9B1NT/CSGaAUc7UACvwjv/jUgJAGSg9ADm0DgAOxlL/lDCwgASA8j+oJ9zAISP9wFvXTn/Ou0LAYbeh/96o2wBeyu+//u9zv5Qtkj/0PbgARE8CQChzyYAjW1bANgP0/+ITm4AYqNo/xVQef+tsrcBf48EAGg8Uv7WEA3/YO4hAZ6U5v9/gT7/M//S/z6N7P6dN+D/cif0AMC8+v/kTDUAYlRR/63LPf6TMjf/zOu/ADTF9ABYK9P+G793ALznmgBCUaEAXMGgAfrjeAB7N+IAuBFIAIWoCv4Wh5z/KRln/zDKOgC6lVH/vIbvAOu1vf7Zi7z/SjBSAC7a5QC9/fsAMuUM/9ONvwGA9Bn/qed6/lYvvf+Etxf/JbKW/zOJ/QDITh8AFmkyAII8AACEo1v+F+e7AMBP7wCdZqT/wFIUARi1Z//wCeoAAXuk/4XpAP/K8vIAPLr1APEQx//gdJ7+v31b/+BWzwB5Jef/4wnG/w+Z7/956Nn+S3BSAF8MOf4z1mn/lNxhAcdiJACc0Qz+CtQ0ANm0N/7Uquj/2BRU/536hwCdY3/+Ac4pAJUkRgE2xMn/V3QA/uurlgAbo+oAyoe0ANBfAP57nF0Atz5LAInrtgDM4f//1ovS/wJzCP8dDG8ANJwBAP0V+/8lpR/+DILTAGoSNf4qY5oADtk9/tgLXP/IxXD+kybHACT8eP5rqU0AAXuf/89LZgCjr8QALAHwAHi6sP4NYkz/7Xzx/+iSvP/IYOAAzB8pANDIDQAV4WD/r5zEAPfQfgA+uPT+AqtRAFVzngA2QC3/E4pyAIdHzQDjL5MB2udCAP3RHAD0D63/Bg92/hCW0P+5FjL/VnDP/0tx1wE/kiv/BOET/uMXPv8O/9b+LQjN/1fFl/7SUtf/9fj3/4D4RgDh91cAWnhGANX1XAANheIAL7UFAVyjaf8GHoX+6LI9/+aVGP8SMZ4A5GQ9/nTz+/9NS1wBUduT/0yj/v6N1fYA6CWY/mEsZADJJTIB1PQ5AK6rt//5SnAAppweAN7dYf/zXUn++2Vk/9jZXf/+irv/jr40/zvLsf/IXjQAc3Ke/6WYaAF+Y+L/dp30AWvIEADBWuUAeQZYAJwgXf598dP/Du2d/6WaFf+44Bb/+hiY/3FNHwD3qxf/7bHM/zSJkf/CtnIA4OqVAApvZwHJgQQA7o5OADQGKP9u1aX+PM/9AD7XRQBgYQD/MS3KAHh5Fv/rizABxi0i/7YyGwGD0lv/LjaAAK97af/GjU7+Q/Tv//U2Z/5OJvL/Alz5/vuuV/+LP5AAGGwb/yJmEgEiFpgAQuV2/jKPYwCQqZUBdh6YALIIeQEInxIAWmXm/4EddwBEJAsB6Lc3ABf/YP+hKcH/P4veAA+z8wD/ZA//UjWHAIk5lQFj8Kr/Fubk/jG0Uv89UisAbvXZAMd9PQAu/TQAjcXbANOfwQA3eWn+txSBAKl3qv/Lsov/hyi2/6wNyv9BspQACM8rAHo1fwFKoTAA49aA/lYL8/9kVgcB9USG/z0rFQGYVF7/vjz6/u926P/WiCUBcUxr/11oZAGQzhf/bpaaAeRnuQDaMTL+h02L/7kBTgAAoZT/YR3p/8+Ulf+gqAAAW4Cr/wYcE/4Lb/cAJ7uW/4rolQB1PkT/P9i8/+vqIP4dOaD/GQzxAak8vwAgg43/7Z97/17FXv50/gP/XLNh/nlhXP+qcA4AFZX4APjjAwBQYG0AS8BKAQxa4v+hakQB0HJ//3Iq//5KGkr/97OW/nmMPACTRsj/1iih/6G8yf+NQYf/8nP8AD4vygC0lf/+gjftAKURuv8KqcIAnG3a/3CMe/9ogN/+sY5s/3kl2/+ATRL/b2wXAVvASwCu9Rb/BOw+/ytAmQHjrf4A7XqEAX9Zuv+OUoD+/FSuAFqzsQHz1lf/Zzyi/9CCDv8LgosAzoHb/17Znf/v5ub/dHOf/qRrXwAz2gIB2H3G/4zKgP4LX0T/Nwld/q6ZBv/MrGAARaBuANUmMf4bUNUAdn1yAEZGQ/8Pjkn/g3q5//MUMv6C7SgA0p+MAcWXQf9UmUIAw35aABDu7AF2u2b/AxiF/7tF5gA4xVwB1UVe/1CK5QHOB+YA3m/mAVvpd/8JWQcBAmIBAJRKhf8z9rT/5LFwATq9bP/Cy+3+FdHDAJMKIwFWneIAH6OL/jgHS/8+WnQAtTypAIqi1P5Rpx8AzVpw/yFw4wBTl3UBseBJ/66Q2f/mzE//Fk3o/3JO6gDgOX7+CTGNAPKTpQFotoz/p4QMAXtEfwDhVycB+2wIAMbBjwF5h8//rBZGADJEdP9lryj/+GnpAKbLBwBuxdoA1/4a/qji/QAfj2AAC2cpALeBy/5k90r/1X6EANKTLADH6hsBlC+1AJtbngE2aa//Ak6R/maaXwCAz3/+NHzs/4JURwDd89MAmKrPAN5qxwC3VF7+XMg4/4q2cwGOYJIAhYjkAGESlgA3+0IAjGYEAMpnlwAeE/j/M7jPAMrGWQA3xeH+qV/5/0JBRP+86n4Apt9kAXDv9ACQF8IAOie2APQsGP6vRLP/mHaaAbCiggDZcsz+rX5O/yHeHv8kAlv/Ao/zAAnr1wADq5cBGNf1/6gvpP7xks8ARYG0AETzcQCQNUj++y0OABduqABERE//bkZf/q5bkP8hzl//iSkH/xO7mf4j/3D/CZG5/jKdJQALcDEBZgi+/+rzqQE8VRcASie9AHQx7wCt1dIALqFs/5+WJQDEeLn/ImIG/5nDPv9h5kf/Zj1MABrU7P+kYRAAxjuSAKMXxAA4GD0AtWLBAPuT5f9ivRj/LjbO/+pS9gC3ZyYBbT7MAArw4ACSFnX/jpp4AEXUIwDQY3YBef8D/0gGwgB1EcX/fQ8XAJpPmQDWXsX/uTeT/z7+Tv5/UpkAbmY//2xSof9pu9QBUIonADz/Xf9IDLoA0vsfAb6nkP/kLBP+gEPoANb5a/6IkVb/hC6wAL274//QFowA2dN0ADJRuv6L+h8AHkDGAYebZACgzhf+u6LT/xC8PwD+0DEAVVS/APHA8v+ZfpEB6qKi/+Zh2AFAh34AvpTfATQAK/8cJ70BQIjuAK/EuQBi4tX/f5/0AeKvPACg6Y4BtPPP/0WYWQEfZRUAkBmk/ou/0QBbGXkAIJMFACe6e/8/c+b/XafG/4/V3P+znBP/GUJ6ANag2f8CLT7/ak+S/jOJY/9XZOf/r5Ho/2W4Af+uCX0AUiWhASRyjf8w3o7/9bqaAAWu3f4/cpv/hzegAVAfhwB++rMB7NotABQckQEQk0kA+b2EARG9wP/fjsb/SBQP//o17f4PCxIAG9Nx/tVrOP+uk5L/YH4wABfBbQElol4Ax535/hiAu//NMbL+XaQq/yt36wFYt+3/2tIB/2v+KgDmCmP/ogDiANvtWwCBsssA0DJf/s7QX//3v1n+bupP/6U98wAUenD/9va5/mcEewDpY+YB21v8/8feFv+z9en/0/HqAG/6wP9VVIgAZToy/4OtnP53LTP/dukQ/vJa1gBen9sBAwPq/2JMXP5QNuYABeTn/jUY3/9xOHYBFIQB/6vS7AA48Z7/unMT/wjlrgAwLAABcnKm/wZJ4v/NWfQAieNLAfitOABKePb+dwML/1F4xv+IemL/kvHdAW3CTv/f8UYB1sip/2G+L/8vZ67/Y1xI/nbptP/BI+n+GuUg/978xgDMK0f/x1SsAIZmvgBv7mH+5ijmAOPNQP7IDOEAphneAHFFM/+PnxgAp7hKAB3gdP6e0OkAwXR+/9QLhf8WOowBzCQz/+geKwDrRrX/QDiS/qkSVP/iAQ3/yDKw/zTV9f6o0WEAv0c3ACJOnADokDoBuUq9ALqOlf5ARX//ocuT/7CXvwCI58v+o7aJAKF++/7pIEIARM9CAB4cJQBdcmAB/lz3/yyrRQDKdwv/vHYyAf9TiP9HUhoARuMCACDreQG1KZoAR4bl/sr/JAApmAUAmj9J/yK2fAB53Zb/GszVASmsVwBanZL/bYIUAEdryP/zZr0AAcOR/i5YdQAIzuMAv279/22AFP6GVTP/ibFwAdgiFv+DEND/eZWqAHITFwGmUB//cfB6AOiz+gBEbrT+0qp3AN9spP/PT+n/G+Xi/tFiUf9PRAcAg7lkAKodov8Romv/ORULAWTItf9/QaYBpYbMAGinqAABpE8Akoc7AUYygP9mdw3+4waHAKKOs/+gZN4AG+DbAZ5dw//qjYkAEBh9/+7OL/9hEWL/dG4M/2BzTQBb4+j/+P5P/1zlBv5YxosAzkuBAPpNzv+N9HsBikXcACCXBgGDpxb/7USn/se9lgCjq4r/M7wG/18dif6U4rMAtWvQ/4YfUv+XZS3/gcrhAOBIkwAwipf/w0DO/u3angBqHYn+/b3p/2cPEf/CYf8Asi2p/sbhmwAnMHX/h2pzAGEmtQCWL0H/U4Ll/vYmgQBc75r+W2N/AKFvIf/u2fL/g7nD/9W/nv8pltoAhKmDAFlU/AGrRoD/o/jL/gEytP98TFUB+29QAGNC7/+a7bb/3X6F/krMY/9Bk3f/Yzin/0/4lf90m+T/7SsO/kWJC/8W+vEBW3qP/8358wDUGjz/MLawATAXv//LeZj+LUrV/z5aEv71o+b/uWp0/1MjnwAMIQL/UCI+ABBXrv+tZVUAyiRR/qBFzP9A4bsAOs5eAFaQLwDlVvUAP5G+ASUFJwBt+xoAiZPqAKJ5kf+QdM7/xei5/7e+jP9JDP7/ixTy/6pa7/9hQrv/9bWH/t6INAD1BTP+yy9OAJhl2ABJF30A/mAhAevSSf8r0VgBB4FtAHpo5P6q8ssA8syH/8oc6f9BBn8An5BHAGSMXwBOlg0A+2t2AbY6ff8BJmz/jb3R/wibfQFxo1v/eU++/4bvbP9ML/gAo+TvABFvCgBYlUv/1+vvAKefGP8vl2z/a9G8AOnnY/4cypT/riOK/24YRP8CRbUAa2ZSAGbtBwBcJO3/3aJTATfKBv+H6of/GPreAEFeqP71+NL/p2zJ/v+hbwDNCP4AiA10AGSwhP8r137/sYWC/55PlABD4CUBDM4V/z4ibgHtaK//UIRv/46uSABU5bT+abOMAED4D//pihAA9UN7/tp51P8/X9oB1YWJ/4+2Uv8wHAsA9HKNAdGvTP+dtZb/uuUD/6SdbwHnvYsAd8q+/9pqQP9E6z/+YBqs/7svCwHXEvv/UVRZAEQ6gABecQUBXIHQ/2EPU/4JHLwA7wmkADzNmADAo2L/uBI8ANm2iwBtO3j/BMD7AKnS8P8lrFz+lNP1/7NBNAD9DXMAua7OAXK8lf/tWq0AK8fA/1hscQA0I0wAQhmU/90EB/+X8XL/vtHoAGIyxwCXltX/EkokATUoBwATh0H/GqxFAK7tVQBjXykAAzgQACegsf/Iatr+uURU/1u6Pf5Dj43/DfSm/2NyxgDHbqP/wRK6AHzv9gFuRBYAAusuAdQ8awBpKmkBDuaYAAcFgwCNaJr/1QMGAIPkov+zZBwB53tV/84O3wH9YOYAJpiVAWKJegDWzQP/4piz/waFiQCeRYz/caKa/7TzrP8bvXP/jy7c/9WG4f9+HUUAvCuJAfJGCQBazP//56qTABc4E/44fZ3/MLPa/0+2/f8m1L8BKet8AGCXHACHlL4Azfkn/jRgiP/ULIj/Q9GD//yCF//bgBT/xoF2AGxlCwCyBZIBPgdk/7XsXv4cGqQATBZw/3hmTwDKwOUByLDXAClA9P/OuE4Apy0/AaAjAP87DI7/zAmQ/9te5QF6G3AAvWlt/0DQSv/7fzcBAuLGACxM0QCXmE3/0hcuAcmrRf8s0+cAviXg//XEPv+ptd7/ItMRAHfxxf/lI5gBFUUo/7LioQCUs8EA28L+ASjOM//nXPoBQ5mqABWU8QCqRVL/eRLn/1xyAwC4PuYA4clX/5Jgov+18twArbvdAeI+qv84ftkBdQ3j/7Ms7wCdjZv/kN1TAOvR0AAqEaUB+1GFAHz1yf5h0xj/U9amAJokCf/4L38AWtuM/6HZJv7Ukz//QlSUAc8DAQDmhlkBf056/+CbAf9SiEoAspzQ/7oZMf/eA9IB5Za+/1WiNP8pVI3/SXtU/l0RlgB3ExwBIBbX/xwXzP+O8TT/5DR9AB1MzwDXp/r+r6TmADfPaQFtu/X/oSzcASllgP+nEF4AXdZr/3ZIAP5QPer/ea99AIup+wBhJ5P++sQx/6Wzbv7fRrv/Fo59AZqziv92sCoBCq6ZAJxcZgCoDaH/jxAgAPrFtP/LoywBVyAkAKGZFP97/A8AGeNQADxYjgARFskBms1N/yc/LwAIeo0AgBe2/swnE/8EcB3/FySM/9LqdP41Mj//eato/6DbXgBXUg7+5yoFAKWLf/5WTiYAgjxC/sseLf8uxHoB+TWi/4iPZ/7X0nIA5weg/qmYKv9vLfYAjoOH/4NHzP8k4gsAABzy/+GK1f/3Ltj+9QO3AGz8SgHOGjD/zTb2/9PGJP95IzIANNjK/yaLgf7ySZQAQ+eN/yovzABOdBkBBOG//waT5AA6WLEAeqXl//xTyf/gp2ABsbie//JpswH4xvAAhULLAf4kLwAtGHP/dz7+AMThuv57jawAGlUp/+JvtwDV55cABDsH/+6KlABCkyH/H/aN/9GNdP9ocB8AWKGsAFPX5v4vb5cALSY0AYQtzACKgG3+6XWG//O+rf7x7PAAUn/s/ijfof9utuH/e67vAIfykQEz0ZoAlgNz/tmk/P83nEUBVF7//+hJLQEUE9T/YMU7/mD7IQAmx0kBQKz3/3V0OP/kERIAPopnAfblpP/0dsn+ViCf/20iiQFV07oACsHB/nrCsQB67mb/otqrAGzZoQGeqiIAsC+bAbXkC/8InAAAEEtdAM5i/wE6miMADPO4/kN1Qv/m5XsAySpuAIbksv66bHb/OhOa/1KpPv9yj3MB78Qy/60wwf+TAlT/loaT/l/oSQBt4zT+v4kKACjMHv5MNGH/pOt+AP58vABKthUBeR0j//EeB/5V2tb/B1SW/lEbdf+gn5j+Qhjd/+MKPAGNh2YA0L2WAXWzXACEFoj/eMccABWBT/62CUEA2qOpAPaTxv9rJpABTq/N/9YF+v4vWB3/pC/M/ys3Bv+Dhs/+dGTWAGCMSwFq3JAAwyAcAaxRBf/HszT/JVTLAKpwrgALBFsARfQbAXWDXAAhmK//jJlr//uHK/5XigT/xuqT/nmYVP/NZZsBnQkZAEhqEf5smQD/veW6AMEIsP+uldEA7oIdAOnWfgE94mYAOaMEAcZvM/8tT04Bc9IK/9oJGf+ei8b/01K7/lCFUwCdgeYB84WG/yiIEABNa0//t1VcAbHMygCjR5P/mEW+AKwzvAH60qz/0/JxAVlZGv9AQm/+dJgqAKEnG/82UP4AatFzAWd8YQDd5mL/H+cGALLAeP4P2cv/fJ5PAHCR9wBc+jABo7XB/yUvjv6QvaX/LpLwAAZLgAApncj+V3nVAAFx7AAFLfoAkAxSAB9s5wDh73f/pwe9/7vkhP9uvSIAXizMAaI0xQBOvPH+ORSNAPSSLwHOZDMAfWuU/hvDTQCY/VoBB4+Q/zMlHwAidyb/B8V2AJm80wCXFHT+9UE0/7T9bgEvsdEAoWMR/3beygB9s/wBezZ+/5E5vwA3unkACvOKAM3T5f99nPH+lJy5/+MTvP98KSD/HyLO/hE5UwDMFiX/KmBiAHdmuAEDvhwAblLa/8jMwP/JkXYAdcySAIQgYgHAwnkAaqH4Ae1YfAAX1BoAzata//gw2AGNJeb/fMsA/p6oHv/W+BUAcLsH/0uF7/9K4/P/+pNGANZ4ogCnCbP/Fp4SANpN0QFhbVH/9CGz/zk0Of9BrNL/+UfR/46p7gCevZn/rv5n/mIhDgCNTOb/cYs0/w861ACo18n/+MzXAd9EoP85mrf+L+d5AGqmiQBRiIoApSszAOeLPQA5Xzv+dmIZ/5c/7AFevvr/qblyAQX6Ov9LaWEB19+GAHFjowGAPnAAY2qTAKPDCgAhzbYA1g6u/4Em5/81tt8AYiqf//cNKAC80rEBBhUA//89lP6JLYH/WRp0/n4mcgD7MvL+eYaA/8z5p/6l69cAyrHzAIWNPgDwgr4Bbq//AAAUkgEl0nn/ByeCAI76VP+NyM8ACV9o/wv0rgCG6H4ApwF7/hDBlf/o6e8B1UZw//x0oP7y3tz/zVXjAAe5OgB29z8BdE2x/z71yP4/EiX/azXo/jLd0wCi2wf+Al4rALY+tv6gTsj/h4yqAOu45ACvNYr+UDpN/5jJAgE/xCIABR64AKuwmgB5O84AJmMnAKxQTf4AhpcAuiHx/l793/8scvwAbH45/8koDf8n5Rv/J+8XAZd5M/+ZlvgACuqu/3b2BP7I9SYARaHyARCylgBxOIIAqx9pABpYbP8xKmoA+6lCAEVdlQAUOf4ApBlvAFq8Wv/MBMUAKNUyAdRghP9YirT+5JJ8/7j29wBBdVb//WbS/v55JACJcwP/PBjYAIYSHQA74mEAsI5HAAfRoQC9VDP+m/pIANVU6/8t3uAA7pSP/6oqNf9Op3UAugAo/32xZ/9F4UIA4wdYAUusBgCpLeMBECRG/zICCf+LwRYAj7fn/tpFMgDsOKEB1YMqAIqRLP6I5Sj/MT8j/z2R9f9lwAL+6KdxAJhoJgF5udoAeYvT/nfwIwBBvdn+u7Oi/6C75gA++A7/PE5hAP/3o//hO1v/a0c6//EvIQEydewA27E//vRaswAjwtf/vUMy/xeHgQBovSX/uTnCACM+5//c+GwADOeyAI9QWwGDXWX/kCcCAf/6sgAFEez+iyAuAMy8Jv71czT/v3FJ/r9sRf8WRfUBF8uyAKpjqgBB+G8AJWyZ/0AlRQAAWD7+WZSQ/79E4AHxJzUAKcvt/5F+wv/dKv3/GWOXAGH93wFKczH/Bq9I/zuwywB8t/kB5ORjAIEMz/6owMP/zLAQ/pjqqwBNJVX/IXiH/47C4wEf1joA1bt9/+guPP++dCr+l7IT/zM+7f7M7MEAwug8AKwinf+9ELj+ZwNf/43pJP4pGQv/FcOmAHb1LQBD1ZX/nwwS/7uk4wGgGQUADE7DASvF4QAwjin+xJs8/9/HEgGRiJwA/HWp/pHi7gDvF2sAbbW8/+ZwMf5Jqu3/57fj/1DcFADCa38Bf81lAC40xQHSqyT/WANa/ziXjQBgu///Kk7IAP5GRgH0fagAzESKAXzXRgBmQsj+ETTkAHXcj/7L+HsAOBKu/7qXpP8z6NABoOQr//kdGQFEvj8ADQAAAAD/AAAAAPUAAAAAAAD7AAAAAAAA/QAAAADzAAAAAAcAAAAAAAMAAAAA8wAAAAAFAAAAAAAAAAALAAAAAAALAAAAAPMAAAAAAAD9AAAAAAD/AAAAAAMAAAAA9QAAAAAAAAAPAAAAAAD/AAAAAP8AAAAABwAAAAAFAEHchwILAQEAQYCIAgsBAQBBoIgCC+AB4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fwjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsAQaCKAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB4JACCyFTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAQbCRAgs1MI5QAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=")||(d=R,R=a.locateFile?a.locateFile(d,c):c+d);var V={35048:function(){return a.getRandomValue()},35084:function(){if(void 0===a.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),a.getRandomValue=g}catch(A){try{var B=__nccwpck_require__(6113),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),a.getRandomValue=C}catch(A){throw"No secure random number generator found"}}}};function q(A){for(;A.length>0;){var I=A.shift();if("function"!=typeof I){var g=I.func;"number"==typeof g?void 0===I.arg?z(g)():z(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(a)}}function z(A){return S.get(A)}var j=[];function W(A){try{return s.grow(A-D.byteLength+65535>>>16),U(s.buffer),1}catch(A){}}var O="function"==typeof atob?atob:function(A){var I,g,B,C,Q,E,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="",a=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{I=i.indexOf(A.charAt(a++))<<2|(C=i.indexOf(A.charAt(a++)))>>4,g=(15&C)<<4|(Q=i.indexOf(A.charAt(a++)))>>2,B=(3&Q)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==Q&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a>=2;g=p[A++];){var B=g<105;B&&1&I&&I++,j.push(B?_[I++>>1]:F[I]),++I}return j}(I,g);return V[A].apply(null,B)},e:function(A,I,g){p.copyWithin(A,I,I+g)},c:function(A){var I,g=p.length,B=2147483648;if((A>>>=0)>B)return!1;for(var C=1;C<=4;C*=2){var Q=g*(1+.2/C);if(Q=Math.min(Q,A+100663296),W(Math.min(B,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1}};function IA(A){function I(){$||($=!0,a.calledRun=!0,k||(q(m),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)A=a.postRun.shift(),v.unshift(A);var A;q(v)}()))}A=A||o,M>0||(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)A=a.preRun.shift(),b.unshift(A);var A;q(b)}(),M>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),I()}),1)):I()))}if(function(){var A={a:AA};function I(A,I){var g,B=A.exports;a.asm=B,U((s=a.asm.f).buffer),S=a.asm.Ac,g=a.asm.g,m.unshift(g),function(A){if(M--,a.monitorRunDependencies&&a.monitorRunDependencies(M),0==M&&(null!==P&&(clearInterval(P),P=null),Y)){var I=Y;Y=null,I()}}()}function g(A){I(A.instance)}function B(I){return function(){if(!y&&(t||e)){if("function"==typeof fetch&&!X(R))return fetch(R,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+R+"'";return A.arrayBuffer()})).catch((function(){return T(R)}));if(C)return new Promise((function(A,I){C(R,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return T(R)}))}().then((function(I){return WebAssembly.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){w("failed to asynchronously prepare wasm: "+A),N(A)}))}if(M++,a.monitorRunDependencies&&a.monitorRunDependencies(M),a.instantiateWasm)try{return a.instantiateWasm(A,I)}catch(A){return w("Module.instantiateWasm callback failed with error: "+A),!1}y||"function"!=typeof WebAssembly.instantiateStreaming||K(R)||X(R)||"function"!=typeof fetch?B(g):fetch(R,{credentials:"same-origin"}).then((function(I){return WebAssembly.instantiateStreaming(I,A).then(g,(function(A){return w("wasm streaming compile failed: "+A),w("falling back to ArrayBuffer instantiation"),B(g)}))}))}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_encrypt_detached=a.asm.h).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt=function(){return(a._crypto_aead_chacha20poly1305_encrypt=a.asm.i).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=a.asm.j).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt=a.asm.k).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_decrypt_detached=a.asm.l).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt=function(){return(a._crypto_aead_chacha20poly1305_decrypt=a.asm.m).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=a.asm.n).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt=a.asm.o).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_keybytes=a.asm.p).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_npubbytes=a.asm.q).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_nsecbytes=a.asm.r).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_abytes=a.asm.s).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=a.asm.t).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_chacha20poly1305_ietf_keygen=a.asm.u).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keybytes=function(){return(a._crypto_aead_chacha20poly1305_keybytes=a.asm.v).apply(null,arguments)},a._crypto_aead_chacha20poly1305_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_npubbytes=a.asm.w).apply(null,arguments)},a._crypto_aead_chacha20poly1305_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_nsecbytes=a.asm.x).apply(null,arguments)},a._crypto_aead_chacha20poly1305_abytes=function(){return(a._crypto_aead_chacha20poly1305_abytes=a.asm.y).apply(null,arguments)},a._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_messagebytes_max=a.asm.z).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keygen=function(){return(a._crypto_aead_chacha20poly1305_keygen=a.asm.A).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=a.asm.B).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt=a.asm.C).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=a.asm.D).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt=a.asm.E).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keybytes=a.asm.F).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_npubbytes=a.asm.G).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=a.asm.H).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_abytes=a.asm.I).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=a.asm.J).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keygen=a.asm.K).apply(null,arguments)},a._crypto_auth_bytes=function(){return(a._crypto_auth_bytes=a.asm.L).apply(null,arguments)},a._crypto_auth_keybytes=function(){return(a._crypto_auth_keybytes=a.asm.M).apply(null,arguments)},a._crypto_auth=function(){return(a._crypto_auth=a.asm.N).apply(null,arguments)},a._crypto_auth_verify=function(){return(a._crypto_auth_verify=a.asm.O).apply(null,arguments)},a._crypto_auth_keygen=function(){return(a._crypto_auth_keygen=a.asm.P).apply(null,arguments)},a._crypto_box_seedbytes=function(){return(a._crypto_box_seedbytes=a.asm.Q).apply(null,arguments)},a._crypto_box_publickeybytes=function(){return(a._crypto_box_publickeybytes=a.asm.R).apply(null,arguments)},a._crypto_box_secretkeybytes=function(){return(a._crypto_box_secretkeybytes=a.asm.S).apply(null,arguments)},a._crypto_box_beforenmbytes=function(){return(a._crypto_box_beforenmbytes=a.asm.T).apply(null,arguments)},a._crypto_box_noncebytes=function(){return(a._crypto_box_noncebytes=a.asm.U).apply(null,arguments)},a._crypto_box_macbytes=function(){return(a._crypto_box_macbytes=a.asm.V).apply(null,arguments)},a._crypto_box_messagebytes_max=function(){return(a._crypto_box_messagebytes_max=a.asm.W).apply(null,arguments)},a._crypto_box_seed_keypair=function(){return(a._crypto_box_seed_keypair=a.asm.X).apply(null,arguments)},a._crypto_box_keypair=function(){return(a._crypto_box_keypair=a.asm.Y).apply(null,arguments)},a._crypto_box_beforenm=function(){return(a._crypto_box_beforenm=a.asm.Z).apply(null,arguments)},a._crypto_box_detached_afternm=function(){return(a._crypto_box_detached_afternm=a.asm._).apply(null,arguments)},a._crypto_box_detached=function(){return(a._crypto_box_detached=a.asm.$).apply(null,arguments)},a._crypto_box_easy_afternm=function(){return(a._crypto_box_easy_afternm=a.asm.aa).apply(null,arguments)},a._crypto_box_easy=function(){return(a._crypto_box_easy=a.asm.ba).apply(null,arguments)},a._crypto_box_open_detached_afternm=function(){return(a._crypto_box_open_detached_afternm=a.asm.ca).apply(null,arguments)},a._crypto_box_open_detached=function(){return(a._crypto_box_open_detached=a.asm.da).apply(null,arguments)},a._crypto_box_open_easy_afternm=function(){return(a._crypto_box_open_easy_afternm=a.asm.ea).apply(null,arguments)},a._crypto_box_open_easy=function(){return(a._crypto_box_open_easy=a.asm.fa).apply(null,arguments)},a._crypto_box_seal=function(){return(a._crypto_box_seal=a.asm.ga).apply(null,arguments)},a._crypto_box_seal_open=function(){return(a._crypto_box_seal_open=a.asm.ha).apply(null,arguments)},a._crypto_box_sealbytes=function(){return(a._crypto_box_sealbytes=a.asm.ia).apply(null,arguments)},a._crypto_generichash_bytes_min=function(){return(a._crypto_generichash_bytes_min=a.asm.ja).apply(null,arguments)},a._crypto_generichash_bytes_max=function(){return(a._crypto_generichash_bytes_max=a.asm.ka).apply(null,arguments)},a._crypto_generichash_bytes=function(){return(a._crypto_generichash_bytes=a.asm.la).apply(null,arguments)},a._crypto_generichash_keybytes_min=function(){return(a._crypto_generichash_keybytes_min=a.asm.ma).apply(null,arguments)},a._crypto_generichash_keybytes_max=function(){return(a._crypto_generichash_keybytes_max=a.asm.na).apply(null,arguments)},a._crypto_generichash_keybytes=function(){return(a._crypto_generichash_keybytes=a.asm.oa).apply(null,arguments)},a._crypto_generichash_statebytes=function(){return(a._crypto_generichash_statebytes=a.asm.pa).apply(null,arguments)},a._crypto_generichash=function(){return(a._crypto_generichash=a.asm.qa).apply(null,arguments)},a._crypto_generichash_init=function(){return(a._crypto_generichash_init=a.asm.ra).apply(null,arguments)},a._crypto_generichash_update=function(){return(a._crypto_generichash_update=a.asm.sa).apply(null,arguments)},a._crypto_generichash_final=function(){return(a._crypto_generichash_final=a.asm.ta).apply(null,arguments)},a._crypto_generichash_keygen=function(){return(a._crypto_generichash_keygen=a.asm.ua).apply(null,arguments)},a._crypto_hash_bytes=function(){return(a._crypto_hash_bytes=a.asm.va).apply(null,arguments)},a._crypto_hash=function(){return(a._crypto_hash=a.asm.wa).apply(null,arguments)},a._crypto_kdf_bytes_min=function(){return(a._crypto_kdf_bytes_min=a.asm.xa).apply(null,arguments)},a._crypto_kdf_bytes_max=function(){return(a._crypto_kdf_bytes_max=a.asm.ya).apply(null,arguments)},a._crypto_kdf_contextbytes=function(){return(a._crypto_kdf_contextbytes=a.asm.za).apply(null,arguments)},a._crypto_kdf_keybytes=function(){return(a._crypto_kdf_keybytes=a.asm.Aa).apply(null,arguments)},a._crypto_kdf_derive_from_key=function(){return(a._crypto_kdf_derive_from_key=a.asm.Ba).apply(null,arguments)},a._crypto_kdf_keygen=function(){return(a._crypto_kdf_keygen=a.asm.Ca).apply(null,arguments)},a._crypto_kx_seed_keypair=function(){return(a._crypto_kx_seed_keypair=a.asm.Da).apply(null,arguments)},a._crypto_kx_keypair=function(){return(a._crypto_kx_keypair=a.asm.Ea).apply(null,arguments)},a._crypto_kx_client_session_keys=function(){return(a._crypto_kx_client_session_keys=a.asm.Fa).apply(null,arguments)},a._crypto_kx_server_session_keys=function(){return(a._crypto_kx_server_session_keys=a.asm.Ga).apply(null,arguments)},a._crypto_kx_publickeybytes=function(){return(a._crypto_kx_publickeybytes=a.asm.Ha).apply(null,arguments)},a._crypto_kx_secretkeybytes=function(){return(a._crypto_kx_secretkeybytes=a.asm.Ia).apply(null,arguments)},a._crypto_kx_seedbytes=function(){return(a._crypto_kx_seedbytes=a.asm.Ja).apply(null,arguments)},a._crypto_kx_sessionkeybytes=function(){return(a._crypto_kx_sessionkeybytes=a.asm.Ka).apply(null,arguments)},a._crypto_pwhash_alg_argon2i13=function(){return(a._crypto_pwhash_alg_argon2i13=a.asm.La).apply(null,arguments)},a._crypto_pwhash_alg_argon2id13=function(){return(a._crypto_pwhash_alg_argon2id13=a.asm.Ma).apply(null,arguments)},a._crypto_pwhash_alg_default=function(){return(a._crypto_pwhash_alg_default=a.asm.Na).apply(null,arguments)},a._crypto_pwhash_bytes_min=function(){return(a._crypto_pwhash_bytes_min=a.asm.Oa).apply(null,arguments)},a._crypto_pwhash_bytes_max=function(){return(a._crypto_pwhash_bytes_max=a.asm.Pa).apply(null,arguments)},a._crypto_pwhash_passwd_min=function(){return(a._crypto_pwhash_passwd_min=a.asm.Qa).apply(null,arguments)},a._crypto_pwhash_passwd_max=function(){return(a._crypto_pwhash_passwd_max=a.asm.Ra).apply(null,arguments)},a._crypto_pwhash_saltbytes=function(){return(a._crypto_pwhash_saltbytes=a.asm.Sa).apply(null,arguments)},a._crypto_pwhash_strbytes=function(){return(a._crypto_pwhash_strbytes=a.asm.Ta).apply(null,arguments)},a._crypto_pwhash_strprefix=function(){return(a._crypto_pwhash_strprefix=a.asm.Ua).apply(null,arguments)},a._crypto_pwhash_opslimit_min=function(){return(a._crypto_pwhash_opslimit_min=a.asm.Va).apply(null,arguments)},a._crypto_pwhash_opslimit_max=function(){return(a._crypto_pwhash_opslimit_max=a.asm.Wa).apply(null,arguments)},a._crypto_pwhash_memlimit_min=function(){return(a._crypto_pwhash_memlimit_min=a.asm.Xa).apply(null,arguments)},a._crypto_pwhash_memlimit_max=function(){return(a._crypto_pwhash_memlimit_max=a.asm.Ya).apply(null,arguments)},a._crypto_pwhash_opslimit_interactive=function(){return(a._crypto_pwhash_opslimit_interactive=a.asm.Za).apply(null,arguments)},a._crypto_pwhash_memlimit_interactive=function(){return(a._crypto_pwhash_memlimit_interactive=a.asm._a).apply(null,arguments)},a._crypto_pwhash_opslimit_moderate=function(){return(a._crypto_pwhash_opslimit_moderate=a.asm.$a).apply(null,arguments)},a._crypto_pwhash_memlimit_moderate=function(){return(a._crypto_pwhash_memlimit_moderate=a.asm.ab).apply(null,arguments)},a._crypto_pwhash_opslimit_sensitive=function(){return(a._crypto_pwhash_opslimit_sensitive=a.asm.bb).apply(null,arguments)},a._crypto_pwhash_memlimit_sensitive=function(){return(a._crypto_pwhash_memlimit_sensitive=a.asm.cb).apply(null,arguments)},a._crypto_pwhash=function(){return(a._crypto_pwhash=a.asm.db).apply(null,arguments)},a._crypto_pwhash_str=function(){return(a._crypto_pwhash_str=a.asm.eb).apply(null,arguments)},a._crypto_pwhash_str_alg=function(){return(a._crypto_pwhash_str_alg=a.asm.fb).apply(null,arguments)},a._crypto_pwhash_str_verify=function(){return(a._crypto_pwhash_str_verify=a.asm.gb).apply(null,arguments)},a._crypto_pwhash_str_needs_rehash=function(){return(a._crypto_pwhash_str_needs_rehash=a.asm.hb).apply(null,arguments)},a._crypto_scalarmult_base=function(){return(a._crypto_scalarmult_base=a.asm.ib).apply(null,arguments)},a._crypto_scalarmult=function(){return(a._crypto_scalarmult=a.asm.jb).apply(null,arguments)},a._crypto_scalarmult_bytes=function(){return(a._crypto_scalarmult_bytes=a.asm.kb).apply(null,arguments)},a._crypto_scalarmult_scalarbytes=function(){return(a._crypto_scalarmult_scalarbytes=a.asm.lb).apply(null,arguments)},a._crypto_secretbox_keybytes=function(){return(a._crypto_secretbox_keybytes=a.asm.mb).apply(null,arguments)},a._crypto_secretbox_noncebytes=function(){return(a._crypto_secretbox_noncebytes=a.asm.nb).apply(null,arguments)},a._crypto_secretbox_macbytes=function(){return(a._crypto_secretbox_macbytes=a.asm.ob).apply(null,arguments)},a._crypto_secretbox_messagebytes_max=function(){return(a._crypto_secretbox_messagebytes_max=a.asm.pb).apply(null,arguments)},a._crypto_secretbox_keygen=function(){return(a._crypto_secretbox_keygen=a.asm.qb).apply(null,arguments)},a._crypto_secretbox_detached=function(){return(a._crypto_secretbox_detached=a.asm.rb).apply(null,arguments)},a._crypto_secretbox_easy=function(){return(a._crypto_secretbox_easy=a.asm.sb).apply(null,arguments)},a._crypto_secretbox_open_detached=function(){return(a._crypto_secretbox_open_detached=a.asm.tb).apply(null,arguments)},a._crypto_secretbox_open_easy=function(){return(a._crypto_secretbox_open_easy=a.asm.ub).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keygen=function(){return(a._crypto_secretstream_xchacha20poly1305_keygen=a.asm.vb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_push=function(){return(a._crypto_secretstream_xchacha20poly1305_init_push=a.asm.wb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_init_pull=a.asm.xb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_rekey=a.asm.yb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_push=function(){return(a._crypto_secretstream_xchacha20poly1305_push=a.asm.zb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_pull=a.asm.Ab).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(a._crypto_secretstream_xchacha20poly1305_statebytes=a.asm.Bb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_abytes=function(){return(a._crypto_secretstream_xchacha20poly1305_abytes=a.asm.Cb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(a._crypto_secretstream_xchacha20poly1305_headerbytes=a.asm.Db).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(a._crypto_secretstream_xchacha20poly1305_keybytes=a.asm.Eb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(a._crypto_secretstream_xchacha20poly1305_messagebytes_max=a.asm.Fb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_message=a.asm.Gb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_push=a.asm.Hb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_rekey=a.asm.Ib).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_final=a.asm.Jb).apply(null,arguments)},a._crypto_shorthash_bytes=function(){return(a._crypto_shorthash_bytes=a.asm.Kb).apply(null,arguments)},a._crypto_shorthash_keybytes=function(){return(a._crypto_shorthash_keybytes=a.asm.Lb).apply(null,arguments)},a._crypto_shorthash=function(){return(a._crypto_shorthash=a.asm.Mb).apply(null,arguments)},a._crypto_shorthash_keygen=function(){return(a._crypto_shorthash_keygen=a.asm.Nb).apply(null,arguments)},a._crypto_sign_statebytes=function(){return(a._crypto_sign_statebytes=a.asm.Ob).apply(null,arguments)},a._crypto_sign_bytes=function(){return(a._crypto_sign_bytes=a.asm.Pb).apply(null,arguments)},a._crypto_sign_seedbytes=function(){return(a._crypto_sign_seedbytes=a.asm.Qb).apply(null,arguments)},a._crypto_sign_publickeybytes=function(){return(a._crypto_sign_publickeybytes=a.asm.Rb).apply(null,arguments)},a._crypto_sign_secretkeybytes=function(){return(a._crypto_sign_secretkeybytes=a.asm.Sb).apply(null,arguments)},a._crypto_sign_messagebytes_max=function(){return(a._crypto_sign_messagebytes_max=a.asm.Tb).apply(null,arguments)},a._crypto_sign_seed_keypair=function(){return(a._crypto_sign_seed_keypair=a.asm.Ub).apply(null,arguments)},a._crypto_sign_keypair=function(){return(a._crypto_sign_keypair=a.asm.Vb).apply(null,arguments)},a._crypto_sign=function(){return(a._crypto_sign=a.asm.Wb).apply(null,arguments)},a._crypto_sign_open=function(){return(a._crypto_sign_open=a.asm.Xb).apply(null,arguments)},a._crypto_sign_detached=function(){return(a._crypto_sign_detached=a.asm.Yb).apply(null,arguments)},a._crypto_sign_verify_detached=function(){return(a._crypto_sign_verify_detached=a.asm.Zb).apply(null,arguments)},a._crypto_sign_init=function(){return(a._crypto_sign_init=a.asm._b).apply(null,arguments)},a._crypto_sign_update=function(){return(a._crypto_sign_update=a.asm.$b).apply(null,arguments)},a._crypto_sign_final_create=function(){return(a._crypto_sign_final_create=a.asm.ac).apply(null,arguments)},a._crypto_sign_final_verify=function(){return(a._crypto_sign_final_verify=a.asm.bc).apply(null,arguments)},a._crypto_sign_ed25519_pk_to_curve25519=function(){return(a._crypto_sign_ed25519_pk_to_curve25519=a.asm.cc).apply(null,arguments)},a._crypto_sign_ed25519_sk_to_curve25519=function(){return(a._crypto_sign_ed25519_sk_to_curve25519=a.asm.dc).apply(null,arguments)},a._randombytes_random=function(){return(a._randombytes_random=a.asm.ec).apply(null,arguments)},a._randombytes_stir=function(){return(a._randombytes_stir=a.asm.fc).apply(null,arguments)},a._randombytes_uniform=function(){return(a._randombytes_uniform=a.asm.gc).apply(null,arguments)},a._randombytes_buf=function(){return(a._randombytes_buf=a.asm.hc).apply(null,arguments)},a._randombytes_buf_deterministic=function(){return(a._randombytes_buf_deterministic=a.asm.ic).apply(null,arguments)},a._randombytes_seedbytes=function(){return(a._randombytes_seedbytes=a.asm.jc).apply(null,arguments)},a._randombytes_close=function(){return(a._randombytes_close=a.asm.kc).apply(null,arguments)},a._randombytes=function(){return(a._randombytes=a.asm.lc).apply(null,arguments)},a._sodium_bin2hex=function(){return(a._sodium_bin2hex=a.asm.mc).apply(null,arguments)},a._sodium_hex2bin=function(){return(a._sodium_hex2bin=a.asm.nc).apply(null,arguments)},a._sodium_base64_encoded_len=function(){return(a._sodium_base64_encoded_len=a.asm.oc).apply(null,arguments)},a._sodium_bin2base64=function(){return(a._sodium_bin2base64=a.asm.pc).apply(null,arguments)},a._sodium_base642bin=function(){return(a._sodium_base642bin=a.asm.qc).apply(null,arguments)},a._sodium_init=function(){return(a._sodium_init=a.asm.rc).apply(null,arguments)},a._sodium_pad=function(){return(a._sodium_pad=a.asm.sc).apply(null,arguments)},a._sodium_unpad=function(){return(a._sodium_unpad=a.asm.tc).apply(null,arguments)},a._sodium_version_string=function(){return(a._sodium_version_string=a.asm.uc).apply(null,arguments)},a._sodium_library_version_major=function(){return(a._sodium_library_version_major=a.asm.vc).apply(null,arguments)},a._sodium_library_version_minor=function(){return(a._sodium_library_version_minor=a.asm.wc).apply(null,arguments)},a._sodium_library_minimal=function(){return(a._sodium_library_minimal=a.asm.xc).apply(null,arguments)},a._malloc=function(){return(a._malloc=a.asm.yc).apply(null,arguments)},a._free=function(){return(a._free=a.asm.zc).apply(null,arguments)},a.setValue=function(A,I,g="i8",B){switch("*"===g.charAt(g.length-1)&&(g="i32"),g){case"i1":case"i8":h[A>>0]=I;break;case"i16":u[A>>1]=I;break;case"i32":F[A>>2]=I;break;case"i64":x=[I>>>0,(J=I,+Math.abs(J)>=1?J>0?(0|Math.min(+Math.floor(J/4294967296),4294967295))>>>0:~~+Math.ceil((J-+(~~J>>>0))/4294967296)>>>0:0)],F[A>>2]=x[0],F[A+4>>2]=x[1];break;case"float":l[A>>2]=I;break;case"double":_[A>>3]=I;break;default:N("invalid type for setValue: "+g)}},a.getValue=function(A,I="i8",g){switch("*"===I.charAt(I.length-1)&&(I="i32"),I){case"i1":case"i8":return h[A>>0];case"i16":return u[A>>1];case"i32":case"i64":return F[A>>2];case"float":return l[A>>2];case"double":return Number(_[A>>3]);default:N("invalid type for getValue: "+I)}return null},a.UTF8ToString=G,Y=function A(){$||IA(),$||(Y=A)},a.run=IA,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();IA()})).catch((function(){return B.useBackupModule()})),I}"function"==typeof define&&define.amd?define(["exports"],I): true&&"string"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this); - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval +/***/ }), - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested +/***/ 7760: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { +/*! node-domexception. MIT License. Jimmy Wärting */ - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); +if (!globalThis.DOMException) { + try { + const { MessageChannel } = __nccwpck_require__(1267), + port = new MessageChannel().port1, + ab = new ArrayBuffer() + port.postMessage(ab, [ab, ab]) + } catch (err) { + err.constructor.name === 'DOMException' && ( + globalThis.DOMException = err.constructor + ) } +} - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` +module.exports = globalThis.DOMException - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` +/***/ }), - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version +/***/ 1223: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) +var wrappy = __nccwpck_require__(2940) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) - b[i++] = clockseq & 0xff; // `node` + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) } + f.called = false + return f +} - return buf || (0, _stringify.default)(b); +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f } -var _default = v1; -exports["default"] = _default; /***/ }), -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); +/***/ 4294: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = __nccwpck_require__(4219); -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; /***/ }), -/***/ 5998: +/***/ 4219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var net = __nccwpck_require__(1808); +var tls = __nccwpck_require__(4404); +var http = __nccwpck_require__(3685); +var https = __nccwpck_require__(5687); +var events = __nccwpck_require__(2361); +var assert = __nccwpck_require__(9491); +var util = __nccwpck_require__(3837); -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - const bytes = []; +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - return bytes; +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; } -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - if (buf) { - offset = offset || 0; +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; } - - return buf; } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; + socket.destroy(); + self.removeSocket(socket); + }); } +util.inherits(TunnelingAgent, events.EventEmitter); -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); -function v4(options, buf, offset) { - options = options || {}; + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + // If we are under maxSockets create a new one. + 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); + } - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; - if (buf) { - offset = offset || 0; +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port } - - return buf; + }); + 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'); } - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); -"use strict"; + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); -var _v = _interopRequireDefault(__nccwpck_require__(5998)); + if (res.statusCode !== 200) { + debug('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) { + debug('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; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + function onError(cause) { + connectReq.removeAllListeners(); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + debug('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); + } +}; -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; +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) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +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: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); -"use strict"; + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} -var _regex = _interopRequireDefault(__nccwpck_require__(814)); +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] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = 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 { + debug = function() {}; } +exports.debug = debug; // for test -var _default = validate; -exports["default"] = _default; /***/ }), -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 5030: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; } - return parseInt(uuid.substr(14, 1), 16); + return ""; } -var _default = version; -exports["default"] = _default; +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + /***/ }), @@ -14689,7 +14232,7 @@ function dataUriToBuffer(uri) { if (meta[i] === 'base64') { base64 = true; } - else if (meta[i]) { + else { typeFull += `;${meta[i]}`; if (meta[i].indexOf('charset=') === 0) { charset = meta[i].substring(8); @@ -15664,25 +15207,6 @@ class Response extends Body { return response; } - static json(data = undefined, init = {}) { - const body = JSON.stringify(data); - - if (body === undefined) { - throw new TypeError('data is not JSON serializable'); - } - - const headers = new Headers(init && init.headers); - - if (!headers.has('content-type')) { - headers.set('content-type', 'application/json'); - } - - return new Response(body, { - ...init, - headers - }); - } - get [Symbol.toStringTag]() { return 'Response'; } @@ -16345,6 +15869,10 @@ const getNodeRequestOptions = request => { agent = agent(parsedURL); } + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + // HTTP-network fetch step 4.2 // chunked encoding is handled by Node.js diff --git a/dist/update-machine-key-github/index.js.map b/dist/update-machine-key-github/index.js.map index f9bf582..77a5a1e 100644 --- a/dist/update-machine-key-github/index.js.map +++ b/dist/update-machine-key-github/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChDA;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;;ACAA;;ACAA;;ACAA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC/JA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACRA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/update-machine-key-github.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/context.js","../webpack://typescript-action/./node_modules/@actions/github/lib/github.js","../webpack://typescript-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/before-after-hook/index.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/add.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/register.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/remove.js","../webpack://typescript-action/./node_modules/deprecation/dist-node/index.js","../webpack://typescript-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://typescript-action/./node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js","../webpack://typescript-action/./node_modules/libsodium/dist/modules/libsodium.js","../webpack://typescript-action/./node_modules/node-domexception/index.js","../webpack://typescript-action/./node_modules/once/once.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/web-streams-polyfill/dist/ponyfill.es2018.js","../webpack://typescript-action/./node_modules/wrappy/wrappy.js","../webpack://typescript-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"buffer\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"node:process\"","../webpack://typescript-action/external node-commonjs \"node:stream/web\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"punycode\"","../webpack://typescript-action/external node-commonjs \"stream\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"url\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"worker_threads\"","../webpack://typescript-action/external node-commonjs \"zlib\"","../webpack://typescript-action/./node_modules/fetch-blob/streams.cjs","../webpack://typescript-action/./node_modules/fetch-blob/file.js","../webpack://typescript-action/external node-commonjs \"node:fs\"","../webpack://typescript-action/external node-commonjs \"node:path\"","../webpack://typescript-action/./node_modules/fetch-blob/from.js","../webpack://typescript-action/./node_modules/fetch-blob/index.js","../webpack://typescript-action/./node_modules/formdata-polyfill/esm.min.js","../webpack://typescript-action/external node-commonjs \"node:http\"","../webpack://typescript-action/external node-commonjs \"node:https\"","../webpack://typescript-action/external node-commonjs \"node:zlib\"","../webpack://typescript-action/external node-commonjs \"node:stream\"","../webpack://typescript-action/external node-commonjs \"node:buffer\"","../webpack://typescript-action/./node_modules/data-uri-to-buffer/dist/index.js","../webpack://typescript-action/external node-commonjs \"node:util\"","../webpack://typescript-action/./node_modules/node-fetch/src/errors/base.js","../webpack://typescript-action/./node_modules/node-fetch/src/errors/fetch-error.js","../webpack://typescript-action/./node_modules/node-fetch/src/utils/is.js","../webpack://typescript-action/./node_modules/node-fetch/src/body.js","../webpack://typescript-action/./node_modules/node-fetch/src/headers.js","../webpack://typescript-action/./node_modules/node-fetch/src/utils/is-redirect.js","../webpack://typescript-action/./node_modules/node-fetch/src/response.js","../webpack://typescript-action/external node-commonjs \"node:url\"","../webpack://typescript-action/./node_modules/node-fetch/src/utils/get-search.js","../webpack://typescript-action/external node-commonjs \"node:net\"","../webpack://typescript-action/./node_modules/node-fetch/src/utils/referrer.js","../webpack://typescript-action/./node_modules/node-fetch/src/request.js","../webpack://typescript-action/./node_modules/node-fetch/src/errors/abort-error.js","../webpack://typescript-action/./node_modules/node-fetch/src/index.js","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/define property getters","../webpack://typescript-action/webpack/runtime/ensure chunk","../webpack://typescript-action/webpack/runtime/get javascript chunk filename","../webpack://typescript-action/webpack/runtime/hasOwnProperty shorthand","../webpack://typescript-action/webpack/runtime/make namespace object","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/runtime/require chunk loading","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst node_fetch_1 = __importStar(require(\"node-fetch\"));\nconst libsodium_wrappers_1 = __importDefault(require(\"libsodium-wrappers\"));\nconst util_1 = require(\"util\");\nasync function run() {\n const org = github.context.repo.owner;\n const token = core.getInput('token');\n const tsAPIKey = core.getInput('ts-api-key');\n const tailnet = core.getInput('tailnet');\n const secretName = core.getInput('org-secret-name');\n const maximumKeyAgeInDays = core.getInput('maximum-key-age-in-days');\n const secretType = core.getInput('secret-type');\n const maximumKeyAgeInMillis = parseInt(maximumKeyAgeInDays) * 24 * 3600 * 1000;\n const newKeyURL = `https://api.tailscale.com/api/v2/tailnet/${tailnet}/keys`;\n core.info(`Attempting to rotate any key older than ${maximumKeyAgeInDays} days`);\n try {\n const octokit = github.getOctokit(token || '');\n const secretsClient = secretType == 'actions' ? octokit.rest.actions : octokit.rest.dependabot;\n const headers = new node_fetch_1.Headers({\n Authorization: 'Basic ' + Buffer.from(tsAPIKey + ':').toString('base64')\n });\n // Check current key expiry\n const orgSecretResponse = await secretsClient.getOrgSecret({\n org: org,\n secret_name: secretName\n });\n const secretUpdatedAt = orgSecretResponse.data.updated_at;\n const secretLastUpdated = Date.parse(secretUpdatedAt);\n const keyAgeInMillis = Date.now() - secretLastUpdated;\n // If we're not about to expire, log and continue\n if (keyAgeInMillis < maximumKeyAgeInMillis) {\n core.info(`Key is not about to expire (last updated ${secretUpdatedAt})`);\n return;\n }\n core.info(`Key is about to expire (last updated ${secretUpdatedAt}), creating and uploading a new key.`);\n // Actions & Dependabot will always be reusable and ephemeral\n const newKeyCapabilities = {\n capabilities: {\n devices: {\n create: {\n reusable: true,\n ephemeral: true,\n preauthorized: false,\n tags: []\n }\n }\n }\n };\n const response = await (0, node_fetch_1.default)(newKeyURL, {\n headers: headers,\n method: 'POST',\n body: JSON.stringify(newKeyCapabilities)\n });\n if (!response.ok) {\n core.setFailed(`Unable to create a new Tailscale machine key`);\n return;\n }\n const data = (await response.json());\n // Convert the message and key to Uint8Array's (Buffer implements that interface)\n const machineKeyBytes = Buffer.from(data.key);\n core.info(`Generated a new key, ID: ${data.id}`);\n const pubKeyResponse = await secretsClient.getOrgPublicKey({ org });\n const pubKeyID = pubKeyResponse.data.key_id;\n const pubKey = Buffer.from(pubKeyResponse.data.key, 'base64');\n // Encrypt using LibSodium\n // You must await ready before using libsodium\n await libsodium_wrappers_1.default.ready;\n const encryptedBytes = libsodium_wrappers_1.default.crypto_box_seal(machineKeyBytes, pubKey);\n // Base64 the encrypted secret\n const encrypted = Buffer.from(encryptedBytes).toString('base64');\n core.info(`Updating ${org} ${secretType} secret ${secretName} to new key`);\n secretsClient.createOrUpdateOrgSecret({\n org: org,\n secret_name: secretName,\n key_id: pubKeyID,\n encrypted_value: encrypted,\n visibility: 'private'\n });\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise

} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","!function(e){function r(e,r){\"use strict\";var t,a=\"uint8array\",_=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var r=[\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_final\",\"crypto_auth_hmacsha256_init\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_update\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512_final\",\"crypto_auth_hmacsha512_init\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_update\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_hchacha20\",\"crypto_core_hsalsa20\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],a=[x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,se,ne,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,sr,nr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,st,nt,ct,ot,ht,pt,yt,it,lt,ut,dt,vt,gt,bt,ft,mt,Et],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[s]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var o={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(null==e)return o.URLSAFE_NO_PADDING;if(e!==o.ORIGINAL&&e!==o.ORIGINAL_NO_PADDING&&e!==o.URLSAFE&&e!=o.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return e}function p(e,r){r=h(r),e=E(_,e,\"input\");var a,_=[],s=0|Math.floor(e.length/3),c=e.length-3*s,o=4*s+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new u(o+1),y=d(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&b(_,\"conversion failed\"),p.length=o,a=n(p.to_Uint8Array()),g(_),a}function y(e,r){var t=r||a;if(!i(t))throw new Error(t+\" output format is not available\");if(e instanceof u){if(\"uint8array\"===t)return e.to_Uint8Array();if(\"text\"===t)return n(e.to_Uint8Array());if(\"hex\"===t)return c(e.to_Uint8Array());if(\"base64\"===t)return p(e.to_Uint8Array(),o.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+t+'\"?')}if(\"object\"==typeof e){for(var _=Object.keys(e),s={},h=0;h<_.length;h++)s[_[h]]=y(e[_[h]],t);return s}if(\"string\"==typeof e)return e;throw new TypeError(\"Cannot format output\")}function i(e){for(var r=[\"uint8array\",\"text\",\"hex\",\"base64\"],t=0;t>>24>>>8,o,p);var x=y(v,n);return g(c),x}function ar(e){var r=[];l(e);var a=new u(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var s=y(a,e);return g(r),s}function _r(e,r,a,_){var s=[];l(_),e=E(s,e,\"clientPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(s,\"invalid clientPublicKey length\"),n=d(e),s.push(n),r=E(s,r,\"clientSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(s,\"invalid clientSecretKey length\"),o=d(r),s.push(o),a=E(s,a,\"serverPublicKey\");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(s,\"invalid serverPublicKey length\"),p=d(a),s.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;s.push(m);var x=new u(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_client_session_keys(m,k,n,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(s),S}b(s,\"invalid usage\")}function sr(e){var r=[];l(e);var a=new u(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var s=new u(0|t._crypto_kx_secretkeybytes()),n=s.address;if(r.push(n),0==(0|t._crypto_kx_keypair(_,n))){var c={publicKey:y(a,e),privateKey:y(s,e),keyType:\"x25519\"};return g(r),c}b(r,\"internal error\")}function nr(e,r){var a=[];l(r),e=E(a,e,\"seed\");var _,s=0|t._crypto_kx_seedbytes();e.length!==s&&f(a,\"invalid seed length\"),_=d(e),a.push(_);var n=new u(0|t._crypto_kx_publickeybytes()),c=n.address;a.push(c);var o=new u(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var p={publicKey:y(n,r),privateKey:y(o,r),keyType:\"x25519\"};return g(a),p}b(a,\"internal error\")}function cr(e,r,a,_){var s=[];l(_),e=E(s,e,\"serverPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&f(s,\"invalid serverPublicKey length\"),n=d(e),s.push(n),r=E(s,r,\"serverSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&f(s,\"invalid serverSecretKey length\"),o=d(r),s.push(o),a=E(s,a,\"clientPublicKey\");var p,i=0|t._crypto_kx_publickeybytes();a.length!==i&&f(s,\"invalid clientPublicKey length\"),p=d(a),s.push(p);var v=new u(0|t._crypto_kx_sessionkeybytes()),m=v.address;s.push(m);var x=new u(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_server_session_keys(m,k,n,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(s),S}b(s,\"invalid usage\")}function or(e,r,a){var _=[];l(a);var s=d(e=E(_,e,\"message\")),n=e.length;_.push(s),r=E(_,r,\"key\");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&f(_,\"invalid key length\"),c=d(r),_.push(c);var h=new u(0|t._crypto_onetimeauth_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_onetimeauth(p,s,n,0,c))){var i=y(h,a);return g(_),i}b(_,\"invalid usage\")}function hr(e,r){var a=[];l(r),m(a,e,\"state_address\");var _=new u(0|t._crypto_onetimeauth_bytes()),s=_.address;if(a.push(s),0==(0|t._crypto_onetimeauth_final(e,s))){var n=(t._free(e),y(_,r));return g(a),n}b(a,\"invalid usage\")}function pr(e,r){var a=[];l(r);var _=null;null!=e&&(_=d(e=E(a,e,\"key\")),e.length,a.push(_));var s=new u(144).address;if(0==(0|t._crypto_onetimeauth_init(s,_))){var n=s;return g(a),n}b(a,\"invalid usage\")}function yr(e){var r=[];l(e);var a=new u(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var s=y(a,e);return g(r),s}function ir(e,r,a){var _=[];l(a),m(_,e,\"state_address\");var s=d(r=E(_,r,\"message_chunk\")),n=r.length;_.push(s),0!=(0|t._crypto_onetimeauth_update(e,s,n))&&b(_,\"invalid usage\"),g(_)}function lr(e,r,a){var _=[];e=E(_,e,\"hash\");var s,n=0|t._crypto_onetimeauth_bytes();e.length!==n&&f(_,\"invalid hash length\"),s=d(e),_.push(s);var c=d(r=E(_,r,\"message\")),o=r.length;_.push(c),a=E(_,a,\"key\");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&f(_,\"invalid key length\"),h=d(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(s,c,o,0,h));return g(_),y}function ur(e,r,a,_,s,n,c){var o=[];l(c),m(o,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(o,\"keyLength must be an unsigned integer\");var h=d(r=E(o,r,\"password\")),p=r.length;o.push(h),a=E(o,a,\"salt\");var i,v=0|t._crypto_pwhash_saltbytes();a.length!==v&&f(o,\"invalid salt length\"),i=d(a),o.push(i),m(o,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"memLimit must be an unsigned integer\"),m(o,n,\"algorithm\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"algorithm must be an unsigned integer\");var x=new u(0|e),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,p,0,i,_,0,s,n))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function dr(e,r,a,_,s,n){var c=[];l(n),m(c,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(c,\"keyLength must be an unsigned integer\");var o=d(r=E(c,r,\"password\")),h=r.length;c.push(o),a=E(c,a,\"salt\");var p,i=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==i&&f(c,\"invalid salt length\"),p=d(a),c.push(p),m(c,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(c,\"opsLimit must be an unsigned integer\"),m(c,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(c,\"memLimit must be an unsigned integer\");var v=new u(0|e),x=v.address;if(c.push(x),0==(0|t._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,p,_,0,s))){var k=y(v,n);return g(c),k}b(c,\"invalid usage\")}function vr(e,r,a,_,s,n,c){var o=[];l(c);var h=d(e=E(o,e,\"password\")),p=e.length;o.push(h);var i=d(r=E(o,r,\"salt\")),v=r.length;o.push(i),m(o,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,_,\"r\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"r must be an unsigned integer\"),m(o,s,\"p\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"p must be an unsigned integer\"),m(o,n,\"keyLength\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"keyLength must be an unsigned integer\");var x=new u(0|n),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,p,i,v,a,0,_,s,k,n))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function gr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,\"password\")),c=e.length;s.push(n),m(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&f(s,\"opsLimit must be an unsigned integer\"),m(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(s,\"memLimit must be an unsigned integer\");var o=new u(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(s),h}b(s,\"invalid usage\")}function br(e,r,a){var _=[];l(a),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=s(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var n=d(e),c=e.length-1;_.push(n);var o=d(r=E(_,r,\"password\")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(n,o,h,0));return g(_),p}function fr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,\"password\")),c=e.length;s.push(n),m(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&f(s,\"opsLimit must be an unsigned integer\"),m(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(s,\"memLimit must be an unsigned integer\");var o=new u(0|t._crypto_pwhash_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return g(s),h}b(s,\"invalid usage\")}function mr(e,r,a,_){var n=[];l(_),\"string\"!=typeof e&&f(n,\"hashed_password must be a string\"),e=s(e+\"\\0\"),null!=o&&e.length-1!==o&&f(n,\"invalid hashed_password length\");var c=d(e),o=e.length-1;n.push(c),m(n,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&f(n,\"opsLimit must be an unsigned integer\"),m(n,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(n,\"memLimit must be an unsigned integer\");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return g(n),h}function Er(e,r,a){var _=[];l(a),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=s(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var n=d(e),c=e.length-1;_.push(n);var o=d(r=E(_,r,\"password\")),h=r.length;_.push(o);var p=0==(0|t._crypto_pwhash_str_verify(n,o,h,0));return g(_),p}function xr(e,r,a){var _=[];l(a),e=E(_,e,\"privateKey\");var s,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&f(_,\"invalid privateKey length\"),s=d(e),_.push(s),r=E(_,r,\"publicKey\");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&f(_,\"invalid publicKey length\"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult(p,s,c))){var i=y(h,a);return g(_),i}b(_,\"weak public key\")}function kr(e,r){var a=[];l(r),e=E(a,e,\"privateKey\");var _,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&f(a,\"invalid privateKey length\"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=y(n,r);return g(a),o}b(a,\"unknown error\")}function Sr(e,r,a){var _=[];l(a),e=E(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(_,\"invalid n length\"),s=d(e),_.push(s),r=E(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,\"invalid p length\"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519(p,s,c))){var i=y(h,a);return g(_),i}b(_,\"invalid point or scalar is 0\")}function Tr(e,r){var a=[];l(r),e=E(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(a,\"invalid scalar length\"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=y(n,r);return g(a),o}b(a,\"scalar is 0\")}function wr(e,r){var a=[];l(r),e=E(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(a,\"invalid scalar length\"),_=d(e),a.push(_);var n=new u(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=y(n,r);return g(a),o}b(a,\"scalar is 0\")}function Yr(e,r,a){var _=[];l(a),e=E(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(_,\"invalid n length\"),s=d(e),_.push(s),r=E(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&f(_,\"invalid p length\"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ed25519_noclamp(p,s,c))){var i=y(h,a);return g(_),i}b(_,\"invalid point or scalar is 0\")}function Br(e,r,a){var _=[];l(a),e=E(_,e,\"scalar\");var s,n=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==n&&f(_,\"invalid scalar length\"),s=d(e),_.push(s),r=E(_,r,\"element\");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&f(_,\"invalid element length\"),c=d(r),_.push(c);var h=new u(0|t._crypto_scalarmult_ristretto255_bytes()),p=h.address;if(_.push(p),0==(0|t._crypto_scalarmult_ristretto255(p,s,c))){var i=y(h,a);return g(_),i}b(_,\"result is identity element\")}function Ar(e,r){var a=[];l(r),e=E(a,e,\"scalar\");var _,s=0|t._crypto_core_ristretto255_scalarbytes();e.length!==s&&f(a,\"invalid scalar length\"),_=d(e),a.push(_);var n=new u(0|t._crypto_core_ristretto255_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=y(n,r);return g(a),o}b(a,\"scalar is 0\")}function Kr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,\"message\")),c=e.length;s.push(n),r=E(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(s,\"invalid nonce length\"),o=d(r),s.push(o),a=E(s,a,\"key\");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(s,\"invalid key length\"),p=d(a),s.push(p);var v=new u(0|c),m=v.address;s.push(m);var x=new u(0|t._crypto_secretbox_macbytes()),k=x.address;if(s.push(k),0==(0|t._crypto_secretbox_detached(m,k,n,c,0,o,p))){var S=y({mac:x,cipher:v},_);return g(s),S}b(s,\"invalid usage\")}function Mr(e,r,a,_){var s=[];l(_);var n=d(e=E(s,e,\"message\")),c=e.length;s.push(n),r=E(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&f(s,\"invalid nonce length\"),o=d(r),s.push(o),a=E(s,a,\"key\");var p,i=0|t._crypto_secretbox_keybytes();a.length!==i&&f(s,\"invalid key length\"),p=d(a),s.push(p);var v=new u(c+t._crypto_secretbox_macbytes()|0),m=v.address;if(s.push(m),0==(0|t._crypto_secretbox_easy(m,n,c,0,o,p))){var x=y(v,_);return g(s),x}b(s,\"invalid usage\")}function Ir(e){var r=[];l(e);var a=new u(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var s=y(a,e);return g(r),s}function Nr(e,r,a,_,s){var n=[];l(s);var c=d(e=E(n,e,\"ciphertext\")),o=e.length;n.push(c),r=E(n,r,\"mac\");var h,p=0|t._crypto_secretbox_macbytes();r.length!==p&&f(n,\"invalid mac length\"),h=d(r),n.push(h),a=E(n,a,\"nonce\");var i,v=0|t._crypto_secretbox_noncebytes();a.length!==v&&f(n,\"invalid nonce length\"),i=d(a),n.push(i),_=E(n,_,\"key\");var m,x=0|t._crypto_secretbox_keybytes();_.length!==x&&f(n,\"invalid key length\"),m=d(_),n.push(m);var k=new u(0|o),S=k.address;if(n.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,i,m))){var T=y(k,s);return g(n),T}b(n,\"wrong secret key for the given ciphertext\")}function Lr(e,r,a,_){var s=[];l(_),e=E(s,e,\"ciphertext\");var n,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return g([]),r}function bt(e,r){var a=[];l(r);for(var _=t._malloc(24),s=0;s<6;s++)t.setValue(_+4*s,t.Runtime.addFunction(e[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][s]]),\"i32\");0!=(0|t._randombytes_set_implementation(_))&&b(a,\"unsupported implementation\"),g(a)}function ft(e){l(e),t._randombytes_stir()}function mt(e,r){var a=[];l(r),m(a,e,\"upper_bound\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(a,\"upper_bound must be an unsigned integer\");var _=t._randombytes_uniform(e)>>>0;return g(a),_}function Et(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return g([]),r}return u.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError(\"Arguments must have the same length\");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=o,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==r.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=h(r);var a,_=[],s=new u(3*(e=E(_,e,\"input\")).length/4),n=d(e),c=v(4),o=v(4);return _.push(n),_.push(s.address),_.push(s.result_bin_len_p),_.push(s.b64_end_p),0!==t._sodium_base642bin(s.address,s.length,n,e.length,0,c,o,r)&&b(_,\"invalid input\"),t.getValue(o,\"i32\")-n!==e.length&&b(_,\"incomplete input\"),s.length=t.getValue(c,\"i32\"),a=s.to_Uint8Array(),g(_),a},e.from_hex=function(e){var r,a=[],_=new u((e=E(a,e,\"input\")).length/2),s=d(e),n=v(4);return a.push(s),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,s,e.length,0,0,n)&&b(a,\"invalid input\"),t.getValue(n,\"i32\")-s!==e.length&&b(a,\"incomplete input\"),r=_.to_Uint8Array(),g(a),r},e.from_string=s,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var r=0,t=0,a=e.length;t 0\");var a,_=[],s=v(4),n=1,c=0,o=0|e.length,h=new u(o+r);_.push(s),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(s,h.address,e.length,r,h.length)&&b(_,\"internal error\"),h.length=t.getValue(s,\"i32\"),a=h.to_Uint8Array(),g(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((r|=0)<=0)throw new Error(\"block size must be > 0\");var a=[],_=d(e),s=v(4);return a.push(_),a.push(s),0!==t._sodium_unpad(s,_,e.length,r)&&b(a,\"unsupported/invalid padding\"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(s,\"i32\")),g(a),e},e.ready=_,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=p,e.to_hex=c,e.to_string=n,e}var t=\"object\"==typeof e.sodium&&\"function\"==typeof e.sodium.onload?e.sodium.onload:null;\"function\"==typeof define&&define.amd?define([\"exports\",\"libsodium\"],r):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?r(exports,require(\"libsodium\")):e.sodium=r(e.commonJsStrict={},e.libsodium),t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this);\n","!function(A){function I(A){\"use strict\";var I;void 0===(I=A)&&(I={});var g=I;\"object\"!=typeof g.sodium&&(\"object\"==typeof global?g=global:\"object\"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(i=C).onAbort=I,i.print=function(A){},i.printErr=function(A){},i.onRuntimeInitialized=function(){try{i._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},i.useBackupModule=function(){return new Promise((function(A,I){(i={}).onAbort=I,i.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){\"getRandomValue\"!==A&&delete C[A]})),Object.keys(i).forEach((function(A){C[A]=i[A]})),A()};var g,B,Q,i=void 0!==i?i:{},E=Object.assign({},i),o=\"object\"==typeof window,a=\"function\"==typeof importScripts,n=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,r=\"\";if(n){var f=require(\"fs\"),t=require(\"path\");r=a?t.dirname(r)+\"/\":__dirname+\"/\",g=(A,I)=>{var g=T(A);return g?I?g:g.toString():(A=x(A)?new URL(A):t.normalize(A),f.readFileSync(A,I?void 0:\"utf8\"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},B=(A,I,g)=>{var C=T(A);C&&I(C),A=x(A)?new URL(A):t.normalize(A),f.readFile(A,(function(A,C){A?g(A):I(C.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=i),i.inspect=function(){return\"[Emscripten Module object]\"}}else(o||a)&&(a?r=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(r=document.currentScript.src),r=0!==r.indexOf(\"blob:\")?r.substr(0,r.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",g=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=T(A);if(g)return function(A){for(var I=[],g=0;g255&&(C&=255),I.push(String.fromCharCode(C))}return I.join(\"\")}(g);throw I}},a&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=T(A);if(g)return g;throw I}}),B=(A,I,g)=>{var C=new XMLHttpRequest;C.open(\"GET\",A,!0),C.responseType=\"arraybuffer\",C.onload=()=>{if(200==C.status||0==C.status&&C.response)I(C.response);else{var B=T(A);B?I(B.buffer):g()}},C.onerror=g,C.send(null)});i.print;var e,c=i.printErr||void 0;Object.assign(i,E),E=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(e=i.wasmBinary),i.noExitRuntime;var y,D={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,E=I,o=C.length,a=I+(3*o>>2)-(\"=\"==C[o-2])-(\"=\"==C[o-1]);i>4,E>2),E>>0>x>>>0?o+1|0:o)|0,o=(QA=(n=x)>>>0>(x=x+QA|0)>>>0?o+1|0:o)+yA|0,iA=cA=x+eA|0,cA=o=cA>>>0>>0?o+1|0:o,x=nA(x^(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24)^-79577749,QA^(a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)^528734635,32),FA=o=w,o=o+1013904242|0,QA=x,T=o=(x=x-23791573|0)>>>0<4271175723?o+1|0:o,rA=nA(x^aA,o^rA,40),o=(o=cA)+(cA=w)|0,aA=nA(QA^(D=aA=rA+iA|0),FA^(h=D>>>0>>0?o+1|0:o),48),o=T+(L=w)|0,k=o=(aA=x+(s=aA)|0)>>>0>>0?o+1|0:o,aA=o=nA(rA^(u=aA),cA^o,1),T=x=w,cA=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,FA=o=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,tA=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,x=(rA=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)+(QA=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24)|0,o=(MA=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)+(UA=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24)|0,o=(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24)+(x>>>0>>0?o+1|0:o)|0,o=FA+(iA=(n=x)>>>0>(x=x+tA|0)>>>0?o+1|0:o)|0,o=(tA=x+cA|0)>>>0>>0?o+1|0:o,n=nA(x^(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)^725511199,iA^(a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24)^-1694144372,32),e=nA(QA^(r=n-2067093701|0),UA^(m=(b=x=w)-((n>>>0<2067093701)+1150833018|0)|0),40),o=(R=w)+o|0,o=(Y=(F=x=e+tA|0)>>>0>>0?o+1|0:o)+T|0,o=(F>>>0>(x=F+aA|0)>>>0?o+1|0:o)+z|0,o=(QA=(f=x)>>>0>(x=x+EA|0)>>>0?o+1|0:o)+X|0,P=X=x+g|0,y=o=X>>>0>>0?o+1|0:o,p=aA,uA=T,T=x,iA=QA,aA=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,x=o=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,UA=o=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,Q=QA=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,z=o,o=(lA=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24)+(t=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24)|0,o=Q+((X=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)>>>0>(f=X+(QA=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24)|0)>>>0?o+1|0:o)|0,o=(tA=(z=f+z|0)>>>0>>0?o+1|0:o)+x|0,sA=f=z+aA|0,f=o=f>>>0>>0?o+1|0:o,c=X,X=nA(z^(a[0|(o=A- -64|0)]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24)^-1377402159,tA^(a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24)^1359893119,32),tA=o=w,o=o+1779033703|0,z=X,U=o=(X=X-205731576|0)>>>0<4089235720?o+1|0:o,t=nA(c^(l=X),o^t,40),o=(K=w)+f|0,c=nA(z^(f=X=t+sA|0),tA^(H=t>>>0>f>>>0?o+1|0:o),48),o=nA(c^T,(Z=w)^iA,32),O=X=w,v=o,C=o=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,tA=sA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,G=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,X=(iA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24)+(z=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)|0,o=(SA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24)+(_=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)|0,o=(a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24)+(X>>>0>>0?o+1|0:o)|0,o=C+(T=(M=X)>>>0>(X=G+X|0)>>>0?o+1|0:o)|0,o=(G=X+tA|0)>>>0>>0?o+1|0:o,T=nA(X^(a[A+88|0]|a[A+89|0]<<8|a[A+90|0]<<16|a[A+91|0]<<24)^327033209,T^(a[A+92|0]|a[A+93|0]<<8|a[A+94|0]<<16|a[A+95|0]<<24)^1541459225,32),z=nA(z^(tA=T+1595750129|0),(M=_)^(_=(J=X=w)-((T>>>0<2699217167)+1521486533|0)|0),40),o=(IA=w)+o|0,X=nA((G=X=z+G|0)^T,J^(M=G>>>0>>0?o+1|0:o),48),o=_+($=w)|0,N=o=(X=tA+(_=X)|0)>>>0>>0?o+1|0:o,o=O+o|0,V=p^(T=v+(J=X)|0),p=o=T>>>0>>0?o+1|0:o,tA=nA(V,o^uA,40),o=(uA=w)+y|0,X=nA(P=v^(y=X=tA+P|0),O^(v=y>>>0>>0?o+1|0:o),48),o=p+(CA=w)|0,O=o=(p=T+(P=X)|0)>>>0>>0?o+1|0:o,X=(d=nA(p^tA,uA^o,1))+(T=a[I+72|0]|a[I+73|0]<<8|a[I+74|0]<<16|a[I+75|0]<<24)|0,o=(wA=w)+(uA=a[I+76|0]|a[I+77|0]<<8|a[I+78|0]<<16|a[I+79|0]<<24)|0,kA=X,j=X>>>0>>0?o+1|0:o,W=DA,X=a[I+96|0]|a[I+97|0]<<8|a[I+98|0]<<16|a[I+99|0]<<24,tA=o=a[I+100|0]|a[I+101|0]<<8|a[I+102|0]<<16|a[I+103|0]<<24,z=(o=D)+(D=nA(J^z,N^IA,1))|0,o=(J=w)+h|0,o=(D>>>0>z>>>0?o+1|0:o)+tA|0,o=(h=(h=z)>>>0>(z=X+z|0)>>>0?o+1|0:o)+W|0,V=N=z+gA|0,N=o=N>>>0>>0?o+1|0:o,F=nA(n^F,Y^b,48),Y=o=nA(F^z,(b=w)^h,32),o=U+Z|0,o=(IA=z=w)+(l=(z=c+l|0)>>>0>>0?o+1|0:o)|0,U=o=(h=z)>>>0>(c=h+Y|0)>>>0?o+1|0:o,D=nA(c^D,J^o,40),o=(Z=w)+N|0,o=(J=D>>>0>(N=z=D+V|0)>>>0?o+1|0:o)+j|0,o=(n=N>>>0>(z=N+kA|0)>>>0?o+1|0:o)+pA|0,kA=j=z+oA|0,j=o=j>>>0>>0?o+1|0:o,V=z,W=n,z=a[I+116|0]|a[I+117|0]<<8|a[I+118|0]<<16|a[I+119|0]<<24,I=a[I+112|0]|a[I+113|0]<<8|a[I+114|0]<<16|a[I+115|0]<<24,t=nA(t^h,l^K,1),o=(K=w)+M|0,o=((n=t+G|0)>>>0>>0?o+1|0:o)+z|0,o=(h=(l=n)>>>0>(n=I+n|0)>>>0?o+1|0:o)+pA|0,GA=l=n+oA|0,l=o=l>>>0>>0?o+1|0:o,o=nA(n^s,h^L,32),AA=n=w,s=o,h=n,o=b+m|0,F=n=r+F|0,G=o=n>>>0>>0?o+1|0:o,o=o+h|0,M=n=n+s|0,L=o=F>>>0>n>>>0?o+1|0:o,h=nA(n^t,K^o,40),o=(K=w)+l|0,s=nA((n=h+GA|0)^s,AA^(r=n>>>0>>0?o+1|0:o),48),o=nA(s^V,(GA=w)^W,32),AA=t=w,l=o,V=t,e=nA(e^F,G^R,1),o=H+(F=w)|0,o=((t=f)>>>0>(f=f+e|0)>>>0?o+1|0:o)+BA|0,o=(f=(t=f+q|0)>>>0>>0?o+1|0:o)+uA|0,W=H=t+T|0,H=o=H>>>0>>0?o+1|0:o,G=e,t=nA(t^_,f^$,32),o=(_=w)+k|0,u=nA(G^(f=e=t+u|0),(k=t>>>0>f>>>0?o+1|0:o)^F,40),o=($=w)+H|0,F=e=u+W|0,e=nA(t^e,_^(H=e>>>0>>0?o+1|0:o),48),o=k+(i=w)|0,k=e,_=o=(e=f+e|0)>>>0>>0?o+1|0:o,o=o+V|0,o=(G=e)>>>0>(e=e+l|0)>>>0?o+1|0:o,V=e,e^=d,d=o,t=nA(e,wA^o,40),o=(wA=w)+j|0,j=e=t+kA|0,o=B+(W=t>>>0>e>>>0?o+1|0:o)|0,kA=e=e+g|0,b=o=e>>>0>>0?o+1|0:o,e=n,m=gA,R=DA,n=nA(Y^N,J^IA,48),o=U+(IA=w)|0,Y=n,U=o=(f=c+n|0)>>>0>>0?o+1|0:o,n=nA(f^D,Z^o,1),o=(c=w)+R|0,o=((D=n+m|0)>>>0>>0?o+1|0:o)+r|0,o=SA+(e=(r=e+D|0)>>>0>>0?o+1|0:o)|0,N=D=r+iA|0,D=o=D>>>0>>0?o+1|0:o,r=nA(r^k,e^i,32),o=O+(J=w)|0,k=r,p=o=(r=p+r|0)>>>0

>>0?o+1|0:o,e=nA(n^r,o^c,40),o=(o=D)+(D=w)|0,c=n=e+N|0,n=nA(n^k,J^(N=n>>>0>>0?o+1|0:o),48),o=p+(Z=w)|0,J=n,O=o=(p=r+n|0)>>>0>>0?o+1|0:o,n=nA(e^p,D^o,1),o=(D=w)+b|0,o=C+(e=(r=n+kA|0)>>>0>>0?o+1|0:o)|0,kA=k=r+sA|0,k=o=k>>>0>>0?o+1|0:o,b=n,m=D,o=L+GA|0,o=(n=s+M|0)>>>0>>0?o+1|0:o,s=n,M=o,o=nA(n^h,K^o,1),h=D=w,n=o,o=H+z|0,o=((F=I+F|0)>>>0>>0?o+1|0:o)+D|0,o=hA+(F=(D=n+F|0)>>>0>>0?o+1|0:o)|0,L=H=D+EA|0,H=o=H>>>0>>0?o+1|0:o,D=nA(D^P,F^CA,32),o=U+(P=w)|0,F=D,U=o=(U=f)>>>0>(f=f+D|0)>>>0?o+1|0:o,D=nA(n^f,o^h,40),o=(K=w)+H|0,h=n=D+L|0,n=nA(H=n^F,P^(F=n>>>0>>0?o+1|0:o),48),o=U+(CA=w)|0,U=n,H=n=f+n|0,P=o=n>>>0>>0?o+1|0:o,L=r,R=e,n=nA(u^G,_^$,1),o=(f=w)+S|0,o=v+((r=n+fA|0)>>>0>>0?o+1|0:o)|0,o=BA+(e=(r=r+y|0)>>>0>>0?o+1|0:o)|0,v=y=r+q|0,y=o=y>>>0>>0?o+1|0:o,u=n,n=(r=nA(r^Y,e^IA,32))+s|0,o=(s=w)+M|0,e=n,f=nA(n^u,(Y=n>>>0>>0?o+1|0:o)^f,40),o=(IA=w)+y|0,y=n=f+v|0,G=nA(n^r,s^(v=n>>>0>>0?o+1|0:o),48),r=nA(G^L,(o=R)^(R=w),32),o=(L=w)+P|0,s=n=r+H|0,u=nA(n^b,(M=n>>>0>>0?o+1|0:o)^m,40),o=(b=w)+k|0,k=n=u+kA|0,n=nA(n^r,L^(_=n>>>0>>0?o+1|0:o),48),o=M+($=w)|0,M=n,L=o=(r=s)>>>0>(s=s+n|0)>>>0?o+1|0:o,n=nA(s^u,b^o,1),o=pA+(kA=w)|0,b=n,GA=n=oA+n|0,u=o=n>>>0>>0?o+1|0:o,r=eA,n=nA(D^H,K^P,1),o=N+(D=w)|0,o=((H=c)>>>0>(c=n+c|0)>>>0?o+1|0:o)+yA|0,o=(H=(r=r+c|0)>>>0>>0?o+1|0:o)+FA|0,m=c=r+cA|0,N=o=c>>>0>>0?o+1|0:o,P=n,c=nA(l^j,W^AA,48),o=nA(c^r,(K=w)^H,32),AA=n=w,l=o,r=n,o=Y+R|0,o=(n=e+G|0)>>>0>>0?o+1|0:o,e=n,Y=o,o=o+r|0,H=n=n+l|0,G=o=e>>>0>n>>>0?o+1|0:o,r=nA(n^P,o^D,40),o=(o=N)+(N=w)|0,P=n=r+m|0,j=o=n>>>0>>0?o+1|0:o,o=o+u|0,W=o=(D=n+GA|0)>>>0>>0?o+1|0:o,u=o,n=nA(f^e,Y^IA,1),o=x+(f=w)|0,o=F+((e=n+aA|0)>>>0>>0?o+1|0:o)|0,o=tA+(h=(e=e+h|0)>>>0>>0?o+1|0:o)|0,m=F=e+X|0,F=o=F>>>0>>0?o+1|0:o,Y=n,o=nA(e^J,h^Z,32),R=n=w,e=o,h=n,o=K+d|0,J=n=c+V|0,d=o=n>>>0>>0?o+1|0:o,o=o+h|0,o=(c=n+e|0)>>>0>>0?o+1|0:o,n=c^Y,Y=o,h=nA(n,o^f,40),o=(Z=w)+F|0,f=n=h+m|0,V=nA(n^e,R^(F=n>>>0>>0?o+1|0:o),48),o=nA(V^D,(IA=w)^u,32),GA=n=w,m=o,u=n,n=nA(t^J,d^wA,1),o=v+(t=w)|0,o=lA+((e=n+y|0)>>>0>>0?o+1|0:o)|0,o=(y=(e=e+QA|0)>>>0>>0?o+1|0:o)+MA|0,J=v=e+rA|0,v=o=v>>>0>>0?o+1|0:o,e=nA(e^U,y^CA,32),o=O+(d=w)|0,U=e,y=t,t=o=(e=p+e|0)>>>0

>>0?o+1|0:o,y=nA(n^e,y^o,40),o=(CA=w)+v|0,p=n=y+J|0,n=nA(J=n^U,d^(U=n>>>0>>0?o+1|0:o),48),o=t+(K=w)|0,t=n,v=n=e+n|0,J=o=n>>>0>>0?o+1|0:o,o=o+u|0,O=o=(u=n+m|0)>>>0>>0?o+1|0:o,e=nA(u^b,kA^o,40),o=W+(d=w)|0,o=((n=e+D|0)>>>0>>0?o+1|0:o)+DA|0,D=n,W=n=n+gA|0,b=o=D>>>0>n>>>0?o+1|0:o,R=BA,D=nA(l^P,j^AA,48),o=(wA=w)+G|0,l=n=D+H|0,o=nA(n^r,(H=n>>>0>>0?o+1|0:o)^N,1),N=r=w,n=o,o=F+B|0,o=((f=f+g|0)>>>0>>0?o+1|0:o)+r|0,o=(f=(r=n+f|0)>>>0>>0?o+1|0:o)+R|0,G=F=r+q|0,F=o=F>>>0>>0?o+1|0:o,r=nA(r^t,f^K,32),o=L+(P=w)|0,s=o=(t=r+s|0)>>>0>>0?o+1|0:o,f=nA(n^t,o^N,40),o=(j=w)+F|0,F=n=f+G|0,r=nA(n^r,P^(N=n>>>0>>0?o+1|0:o),48),o=s+(G=w)|0,P=o=(s=r+t|0)>>>0>>0?o+1|0:o,n=nA(f^s,j^o,1),o=(j=w)+b|0,o=uA+((t=n+W|0)>>>0>>0?o+1|0:o)|0,o=(f=(t=t+T|0)>>>0>>0?o+1|0:o)+S|0,kA=S=t+fA|0,S=o=S>>>0>>0?o+1|0:o,L=n,R=t,K=f,t=eA,n=nA(y^v,J^CA,1),o=_+(y=w)|0,o=((f=k)>>>0>(k=n+k|0)>>>0?o+1|0:o)+yA|0,o=MA+(f=(t=t+k|0)>>>0>>0?o+1|0:o)|0,_=k=t+rA|0,v=o=k>>>0>>0?o+1|0:o,k=n,f=o=nA(t^D,f^wA,32),o=Y+IA|0,o=(J=n=w)+(c=(n=c+V|0)>>>0>>0?o+1|0:o)|0,Y=o=(D=n+f|0)>>>0>>0?o+1|0:o,k=nA(D^k,o^y,40),o=(IA=w)+v|0,v=nA(_=(t=k+_|0)^f,J^(f=t>>>0>>0?o+1|0:o),48),o=nA(v^R,(CA=w)^K,32),wA=y=w,_=o,J=y,n=nA(n^h,c^Z,1),o=tA+(y=w)|0,o=U+((c=n+X|0)>>>0>>0?o+1|0:o)|0,o=lA+(p=(c=c+p|0)>>>0

>>0?o+1|0:o)|0,R=h=c+QA|0,h=o=h>>>0>>0?o+1|0:o,U=n,V=y,c=nA(c^M,p^$,32),o=(M=w)+H|0,y=n=c+l|0,p=nA(n^U,(l=n>>>0>>0?o+1|0:o)^V,40),o=(Z=w)+h|0,U=n=p+R|0,n=nA(n^c,M^(H=n>>>0

>>0?o+1|0:o),48),o=l+(R=w)|0,h=n,l=n=y+n|0,M=o=n>>>0>>0?o+1|0:o,o=o+J|0,J=n=n+_|0,c=j,j=o=l>>>0>n>>>0?o+1|0:o,c=nA(n^L,c^o,40),o=(o=S)+(S=w)|0,V=n=c+kA|0,L=o=n>>>0>>0?o+1|0:o,y=f,n=nA(m^W,b^GA,48),o=O+($=w)|0,O=n,f=(n=u+n|0)^e,e=o=n>>>0>>0?o+1|0:o,f=nA(f,o^d,1),o=(d=w)+y|0,o=C+((t=f+t|0)>>>0>>0?o+1|0:o)|0,o=(y=(t=t+sA|0)>>>0>>0?o+1|0:o)+x|0,W=u=t+aA|0,u=o=u>>>0>>0?o+1|0:o,t=nA(t^h,y^R,32),o=P+(b=w)|0,P=t,s=o=(y=s+t|0)>>>0>>0?o+1|0:o,f=nA(f^y,d^o,40),o=(o=u)+(u=w)|0,h=t=f+W|0,t=nA(m=t^P,b^(P=t>>>0>>0?o+1|0:o),48),o=s+(kA=w)|0,d=t,W=o=(s=y+t|0)>>>0>>0?o+1|0:o,t=nA(f^s,u^o,1),o=(u=w)+L|0,o=B+((f=t+V|0)>>>0>>0?o+1|0:o)|0,o=z+(y=(f=f+g|0)>>>0>>0?o+1|0:o)|0,GA=b=I+f|0,b=o=b>>>0>>0?o+1|0:o,m=t,R=u,u=f,K=y,t=nA(p^l,M^Z,1),o=(y=w)+N|0,o=hA+((f=t+F|0)>>>0>>0?o+1|0:o)|0,o=(p=(f=f+EA|0)>>>0>>0?o+1|0:o)+z|0,N=F=I+f|0,F=o=F>>>0>>0?o+1|0:o,l=t,f=o=nA(f^O,p^$,32),p=t=w,o=Y+CA|0,Y=o=(t=D+v|0)>>>0>>0?o+1|0:o,o=o+p|0,o=(D=t)>>>0>(t=t+f|0)>>>0?o+1|0:o,v=t,t^=l,l=o,y=nA(t,o^y,40),o=(Z=w)+F|0,p=nA(F=(t=y+N|0)^f,p^(f=t>>>0>>0?o+1|0:o),48),o=nA(p^u,(o=K)^(K=w),32),$=u=w,F=o,N=e,e=r,o=nA(D^k,Y^IA,1),M=r=w,D=o,o=H+FA|0,o=((k=U+cA|0)>>>0>>0?o+1|0:o)+r|0,k=o=(r=D+k|0)>>>0>>0?o+1|0:o,e=nA(r^e,o^G,32),o=(o=N)+(N=w)|0,D=nA((n=e+n|0)^D,M^(Y=n>>>0>>0?o+1|0:o),40),o=k+(IA=w)|0,U=D,o=SA+((H=r)>>>0>(r=r+D|0)>>>0?o+1|0:o)|0,H=o=(D=r+iA|0)>>>0>>0?o+1|0:o,r=nA(e^D,N^o,48),o=Y+(CA=w)|0,G=n,e=r,Y=n=n+r|0,N=o=G>>>0>n>>>0?o+1|0:o,o=o+u|0,G=o=(u=n+F|0)>>>0>>0?o+1|0:o,n=(k=nA(u^m,o^R,40))+GA|0,o=(GA=w)+b|0,M=n,O=n>>>0>>0?o+1|0:o,n=nA(_^V,L^wA,48),o=(_=w)+j|0,J=r=n+J|0,m=S,S=o=r>>>0>>0?o+1|0:o,o=nA(r^c,m^o,1),V=r=w,c=o,o=f+C|0,o=((t=t+sA|0)>>>0>>0?o+1|0:o)+r|0,o=uA+(t=(r=t+c|0)>>>0>>0?o+1|0:o)|0,L=f=r+T|0,f=o=f>>>0>>0?o+1|0:o,r=nA(r^e,t^CA,32),o=W+(b=w)|0,j=r,r=(e=s+r|0)^c,c=o=e>>>0>>0?o+1|0:o,t=nA(r,V^o,40),o=(o=f)+(f=w)|0,V=r=t+L|0,r=nA(s=r^j,b^(j=r>>>0>>0?o+1|0:o),48),o=c+(CA=w)|0,W=r,e=o=(r=e+r|0)>>>0>>0?o+1|0:o,t=nA(r^t,f^o,1),o=(s=w)+O|0,o=pA+((f=t+M|0)>>>0>>0?o+1|0:o)|0,o=(c=(f=f+oA|0)>>>0>>0?o+1|0:o)+BA|0,AA=L=f+q|0,L=o=L>>>0>>0?o+1|0:o,b=t,m=f,R=c,t=nA(U^Y,N^IA,1),o=(N=w)+DA|0,o=P+(t>>>0>(f=t+gA|0)>>>0?o+1|0:o)|0,c=o=(f=f+h|0)>>>0>>0?o+1|0:o,o=nA(n^f,o^_,32),_=n=w,h=o,o=l+K|0,o=(n=p+v|0)>>>0

>>0?o+1|0:o,p=n,Y=o,o=_+o|0,l=n=n+h|0,U=o=p>>>0>n>>>0?o+1|0:o,n=nA(n^t,N^o,40),o=c+(K=w)|0,v=n,o=tA+((n=f+n|0)>>>0>>0?o+1|0:o)|0,o=(n=n+X|0)>>>0>>0?o+1|0:o,N=n,n^=h,h=o,c=nA(n,_^o,48),o=nA(c^m,(o=R)^(R=w),32),IA=n=w,_=o,P=n,n=nA(y^p,Y^Z,1),o=FA+(f=w)|0,o=H+((t=n+cA|0)>>>0>>0?o+1|0:o)|0,o=(y=(t=t+D|0)>>>0>>0?o+1|0:o)+x|0,H=p=t+aA|0,p=o=p>>>0>>0?o+1|0:o,D=n,Y=f,n=(t=nA(t^d,y^kA,32))+J|0,o=(J=w)+S|0,f=n,y=nA(y=n^D,(D=n>>>0>>0?o+1|0:o)^Y,40),o=(Z=w)+p|0,p=n=y+H|0,t=nA(n^t,J^(S=n>>>0>>0?o+1|0:o),48),o=D+(Y=w)|0,H=n=t+f|0,J=o=n>>>0>>0?o+1|0:o,o=o+P|0,P=o=(D=n+_|0)>>>0>>0?o+1|0:o,f=nA(D^b,o^s,40),o=(d=w)+L|0,L=n=f+AA|0,b=o=n>>>0>>0?o+1|0:o,n=r,s=e,e=t,r=nA(F^M,O^$,48),o=G+(AA=w)|0,F=r,u=o=(t=u+r|0)>>>0>>0?o+1|0:o,o=nA(t^k,GA^o,1),G=r=w,k=o,o=h+HA|0,o=((h=N+fA|0)>>>0>>0?o+1|0:o)+r|0,h=o=(r=h+k|0)>>>0>>0?o+1|0:o,e=nA(r^e,o^Y,32),o=(N=w)+s|0,k=nA((n=e+n|0)^k,G^(s=n>>>0>>0?o+1|0:o),40),o=h+(M=w)|0,o=lA+((h=r)>>>0>(r=r+k|0)>>>0?o+1|0:o)|0,Y=o=(h=r+QA|0)>>>0>>0?o+1|0:o,r=nA(e^h,N^o,48),o=s+($=w)|0,N=r,G=o=(s=n+r|0)>>>0>>0?o+1|0:o,n=nA(s^k,M^o,1),o=(k=w)+b|0,o=hA+((r=n+L|0)>>>0>>0?o+1|0:o)|0,o=pA+(e=(r=r+EA|0)>>>0>>0?o+1|0:o)|0,wA=M=r+oA|0,M=o=M>>>0>>0?o+1|0:o,O=n,m=r,n=nA(y^H,J^Z,1),o=(y=w)+j|0,o=MA+((r=n+V|0)>>>0>>0?o+1|0:o)|0,o=SA+(H=(r=r+rA|0)>>>0>>0?o+1|0:o)|0,V=J=r+iA|0,J=o=J>>>0>>0?o+1|0:o,j=n,o=nA(r^F,H^AA,32),AA=n=w,r=o,o=U+R|0,l=n=c+l|0,F=o=n>>>0>>0?o+1|0:o,o=AA+o|0,U=o=(c=n+r|0)>>>0>>0?o+1|0:o,y=nA(c^j,o^y,40),o=(R=w)+J|0,H=n=y+V|0,j=nA(n^r,AA^(J=n>>>0>>0?o+1|0:o),48),o=nA(j^m,(AA=w)^e,32),Z=n=w,V=o,e=n,r=eA,n=nA(l^v,F^K,1),o=S+(F=w)|0,o=((l=p)>>>0>(p=n+p|0)>>>0?o+1|0:o)+yA|0,o=hA+(p=(r=r+p|0)>>>0

>>0?o+1|0:o)|0,l=S=r+EA|0,S=o=S>>>0>>0?o+1|0:o,r=nA(r^W,p^CA,32),o=u+(v=w)|0,u=r,o=(r=t+r|0)>>>0>>0?o+1|0:o,t=F,F=o,t=nA(n^r,t^o,40),o=(K=w)+S|0,p=n=t+l|0,n=nA(n^u,v^(S=n>>>0>>0?o+1|0:o),48),o=F+(m=w)|0,F=n,l=n=r+n|0,v=o=n>>>0>>0?o+1|0:o,o=o+e|0,o=(u=n+V|0)>>>0>>0?o+1|0:o,n=u^O,O=o,k=nA(n,o^k,40),o=(CA=w)+M|0,M=n=k+wA|0,W=n>>>0>>0?o+1|0:o,n=nA(_^L,b^IA,48),o=P+(IA=w)|0,_=n,o=(n=D+n|0)>>>0>>0?o+1|0:o,D=n,P=o,o=nA(n^f,o^d,1),d=n=w,e=o,o=J+uA|0,o=((r=H+T|0)>>>0>>0?o+1|0:o)+n|0,o=lA+(r=(n=r+e|0)>>>0>>0?o+1|0:o)|0,H=f=n+QA|0,f=o=f>>>0>>0?o+1|0:o,n=nA(n^F,r^m,32),o=G+(J=w)|0,F=n,s=o=(r=s+n|0)>>>0>>0?o+1|0:o,e=nA(r^e,d^o,40),o=(d=w)+f|0,H=n=e+H|0,n=nA(f=n^F,J^(F=n>>>0>>0?o+1|0:o),48),o=s+(wA=w)|0,s=n,G=o=(f=r+n|0)>>>0>>0?o+1|0:o,n=nA(f^e,d^o,1),o=(J=w)+W|0,o=FA+((r=n+M|0)>>>0>>0?o+1|0:o)|0,o=(e=(r=r+cA|0)>>>0>>0?o+1|0:o)+DA|0,kA=d=r+gA|0,d=o=d>>>0>>0?o+1|0:o,L=n,b=r,m=e,n=nA(t^l,K^v,1),o=MA+(e=w)|0,o=Y+((r=n+rA|0)>>>0>>0?o+1|0:o)|0,o=HA+(t=(r=r+h|0)>>>0>>0?o+1|0:o)|0,v=h=r+fA|0,h=o=h>>>0>>0?o+1|0:o,Y=n,l=e,o=nA(r^_,t^IA,32),_=n=w,t=o,r=n,o=U+AA|0,o=(n=c+j|0)>>>0>>0?o+1|0:o,c=n,U=o,o=o+r|0,o=(e=n+t|0)>>>0>>0?o+1|0:o,n=e^Y,Y=o,n=nA(n,o^l,40),o=(o=h)+(h=w)|0,l=r=n+v|0,v=o=r>>>0>>0?o+1|0:o,_=nA(r^t,_^o,48),o=nA(_^b,(o=m)^(m=w),32),K=r=w,j=o,r=nA(c^y,U^R,1),o=(c=w)+yA|0,o=S+((t=r+eA|0)>>>0>>0?o+1|0:o)|0,o=C+(y=(t=t+p|0)>>>0

>>0?o+1|0:o)|0,R=p=t+sA|0,p=o=p>>>0>>0?o+1|0:o,S=r,U=c,t=nA(t^N,y^$,32),o=(N=w)+P|0,c=r=t+D|0,r=(y=nA(r^S,(D=r>>>0>>0?o+1|0:o)^U,40))+R|0,o=(R=w)+p|0,S=r,r=nA(r^t,N^(U=r>>>0>>0?o+1|0:o),48),o=D+(AA=w)|0,N=r,P=r=c+r|0,b=o=r>>>0>>0?o+1|0:o,o=K+o|0,o=(t=r+j|0)>>>0>>0?o+1|0:o,r=J,J=o,c=nA(t^L,r^o,40),o=(IA=w)+d|0,p=r=c+kA|0,o=nA(r^j,K^(d=r>>>0>>0?o+1|0:o),48),K=r=w,j=o,r=n,o=Y+m|0,Y=n=e+_|0,_=o=n>>>0>>0?o+1|0:o,o=nA(n^r,o^h,1),e=r=w,n=o,o=U+B|0,o=((D=S+g|0)>>>0>>0?o+1|0:o)+r|0,o=tA+(D=(r=n+D|0)>>>0>>0?o+1|0:o)|0,m=h=r+X|0,h=o=h>>>0>>0?o+1|0:o,S=n,U=e,n=nA(M^V,W^Z,48),o=O+(Z=w)|0,M=n,o=(n=u+n|0)>>>0>>0?o+1|0:o,u=n,r=nA(r^s,D^wA,32),O=o,o=o+(V=w)|0,e=n=r+n|0,D=nA(n^S,(s=n>>>0>>0?o+1|0:o)^U,40),o=(W=w)+h|0,h=n=D+m|0,n=nA(n^r,V^(S=n>>>0>>0?o+1|0:o),48),o=s+($=w)|0,U=n,V=o=(s=e+n|0)>>>0>>0?o+1|0:o,n=nA(D^s,W^o,1),o=lA+(m=w)|0,W=n,wA=n=QA+n|0,e=o=n>>>0>>0?o+1|0:o,n=nA(k^u,O^CA,1),o=(D=w)+v|0,o=SA+((r=n+l|0)>>>0>>0?o+1|0:o)|0,o=BA+(u=(r=r+iA|0)>>>0>>0?o+1|0:o)|0,O=k=r+q|0,k=o=k>>>0>>0?o+1|0:o,l=D,r=nA(r^N,u^AA,32),o=G+(AA=w)|0,v=r,o=(D=f+r|0)>>>0>>0?o+1|0:o,f=l,l=o,u=nA(n^D,f^o,40),o=(CA=w)+k|0,N=n=u+O|0,o=(G=n>>>0>>0?o+1|0:o)+e|0,k=o=(e=n+wA|0)>>>0>>0?o+1|0:o,O=o=nA(e^j,o^K,32),L=n=w,n=nA(y^P,b^R,1),o=(f=w)+F|0,o=z+((r=n+H|0)>>>0>>0?o+1|0:o)|0,o=(y=(r=I+r|0)>>>0>>0?o+1|0:o)+x|0,b=F=r+aA|0,F=o=F>>>0>>0?o+1|0:o,H=n,P=f,r=nA(r^M,y^Z,32),o=(M=w)+_|0,f=n=r+Y|0,n=(y=nA(n^H,(Y=n>>>0>>0?o+1|0:o)^P,40))+b|0,o=(b=w)+F|0,F=n,n=nA(n^r,M^(H=n>>>0>>0?o+1|0:o),48),o=Y+(Z=w)|0,Y=n,M=o=(n=f+n|0)>>>0>>0?o+1|0:o,o=o+L|0,_=o=(f=n)>>>0>(n=n+O|0)>>>0?o+1|0:o,r=nA(n^W,m^o,40),o=k+(m=w)|0,P=r,o=B+((r=e+r|0)>>>0>>0?o+1|0:o)|0,W=r=r+g|0,e=r^O,O=o=r>>>0>>0?o+1|0:o,r=nA(e,L^o,48),o=_+(L=w)|0,_=o=(k=n+r|0)>>>0>>0?o+1|0:o,n=o=nA(k^P,m^o,1),P=e=w,e=nA(f^y,M^b,1),o=S+(y=w)|0,o=SA+((f=e+h|0)>>>0>>0?o+1|0:o)|0,o=hA+(h=(f=f+iA|0)>>>0>>0?o+1|0:o)|0,m=S=f+EA|0,S=o=S>>>0>>0?o+1|0:o,M=e,b=y,o=J+K|0,o=(e=t+j|0)>>>0>>0?o+1|0:o,J=e,v=nA(N^v,G^AA,48),y=nA(f^v,h^(AA=w),32),N=o,o=o+(wA=w)|0,h=e=y+e|0,e=nA(e^M,(G=e>>>0>>0?o+1|0:o)^b,40),o=(M=w)+S|0,b=o=(t=e+m|0)>>>0>>0?o+1|0:o,o=o+P|0,o=C+((j=t)>>>0>(t=n+t|0)>>>0?o+1|0:o)|0,o=(f=(t=t+sA|0)>>>0>>0?o+1|0:o)+yA|0,kA=S=t+eA|0,m=o=S>>>0>>0?o+1|0:o,R=n,K=t,o=nA(c^J,N^IA,1),c=t=w,n=o,o=H+MA|0,o=((S=F+rA|0)>>>0>>0?o+1|0:o)+t|0,o=tA+(S=(t=n+S|0)>>>0>>0?o+1|0:o)|0,N=F=t+X|0,F=o=F>>>0>>0?o+1|0:o,H=n,o=nA(t^U,S^$,32),J=n=w,t=o,S=n,o=l+AA|0,l=n=D+v|0,U=o=n>>>0>>0?o+1|0:o,o=o+S|0,o=(D=n+t|0)>>>0>>0?o+1|0:o;n=D^H,H=o,S=nA(n,o^c,40),o=(AA=w)+F|0,v=nA(F=(n=S+N|0)^t,J^(t=n>>>0>>0?o+1|0:o),48),o=nA(o=v^K,(K=w)^f,32),IA=f=w,N=o,F=f,f=nA(u^l,U^CA,1),o=BA+(u=w)|0,o=d+((c=f+q|0)>>>0>>0?o+1|0:o)|0,o=FA+(p=(c=c+p|0)>>>0

>>0?o+1|0:o)|0,U=l=c+cA|0,l=o=l>>>0>>0?o+1|0:o,c=nA(c^Y,p^Z,32),o=V+(J=w)|0,Y=c,s=o=(c=s+c|0)>>>0>>0?o+1|0:o,p=nA(f^c,o^u,40),o=(Z=w)+l|0,u=f=p+U|0,f=nA(l=f^Y,J^(Y=f>>>0

>>0?o+1|0:o),48),o=s+($=w)|0,l=f,U=f=c+f|0,J=o=f>>>0>>0?o+1|0:o,o=o+F|0,o=(c=f+N|0)>>>0>>0?o+1|0:o,f=P,P=o,s=nA(c^R,f^o,40),o=(d=w)+m|0,F=f=s+kA|0,f=nA(m=f^N,IA^(N=f>>>0>>0?o+1|0:o),48),o=P+(IA=w)|0,P=f,c=o=(f=c+f|0)>>>0>>0?o+1|0:o,d=o=nA(f^s,d^o,1),CA=o,V=s=w,s=t,t=e,e=nA(y^j,b^wA,48),o=G+(wA=w)|0,G=e,o=(e=h+e|0)>>>0>>0?o+1|0:o,h=n,n=t^e,t=o,n=nA(n,o^M,1),o=(M=w)+s|0,o=HA+(n>>>0>(y=h+n|0)>>>0?o+1|0:o)|0,o=DA+(h=(y=y+fA|0)>>>0>>0?o+1|0:o)|0,j=s=y+gA|0,s=o=s>>>0>>0?o+1|0:o,y=nA(y^l,h^$,32),o=_+(b=w)|0,l=o=(h=y+k|0)>>>0>>0?o+1|0:o,k=nA(n^h,M^o,40),o=($=w)+s|0,M=n=k+j|0,y=nA(n^y,b^(_=n>>>0>>0?o+1|0:o),48),o=l+(j=w)|0,b=n=y+h|0,l=n,m=o=n>>>0>>0?o+1|0:o,h=e,s=t,o=H+K|0,o=(n=D+v|0)>>>0>>0?o+1|0:o,D=n,n^=S,S=o,o=nA(n,AA^o,1),R=n=w,H=o,t=o,o=Y+x|0,o=((e=u+aA|0)>>>0>>0?o+1|0:o)+n|0,u=o=(n=e)>>>0>(e=t+e|0)>>>0?o+1|0:o,t=nA(r^e,o^L,32),o=(o=s)+(s=w)|0,v=n=t+h|0,r=nA(r=n^H,R^(H=n>>>0>>0?o+1|0:o),40),o=u+(L=w)|0,o=uA+((n=r+e|0)>>>0>>0?o+1|0:o)|0,R=o=(h=n+T|0)>>>0>>0?o+1|0:o,s=nA(t^h,s^o,48),kA=o=w,n=nA(p^U,J^Z,1),o=(t=w)+O|0,o=pA+((e=n+W|0)>>>0>>0?o+1|0:o)|0,o=z+(p=(e=e+oA|0)>>>0>>0?o+1|0:o)|0,O=u=I+e|0,U=o=u>>>0>>0?o+1|0:o,J=n,u=nA(e^G,p^wA,32),o=(Z=w)+S|0,S=n=u+D|0,e=nA(n^J,(G=n>>>0>>0?o+1|0:o)^t,40),o=(o=U)+(U=w)|0,J=n=e+O|0,O=o=n>>>0>>0?o+1|0:o,t=o,o=z+V|0,o=((p=I+d|0)>>>0>>0?o+1|0:o)+t|0,Y=o=(t=n+p|0)>>>0

>>0?o+1|0:o,n=nA(t^s,kA^o,32),o=(d=w)+m|0,D=nA((p=n+l|0)^CA,(o=p>>>0>>0?o+1|0:o)^V,40),V=o,o=DA+(l=w)|0,o=Y+((W=D+gA|0)>>>0>>0?o+1|0:o)|0,o=(Y=t+W|0)>>>0>>0?o+1|0:o,t=d,d=o,t=nA(n^Y,t^o,48),o=(o=V)+(V=w)|0,n=D^(p=t+p|0),D=o=p>>>0>>0?o+1|0:o,W=o=nA(n,o^l,1),CA=o,K=n=w,l=f,AA=c,f=e,e=nA(u^J,O^Z,48),o=G+(J=w)|0,u=n=e+S|0,S=o=n>>>0>>0?o+1|0:o,f=nA(n^f,o^U,1),o=(O=w)+HA|0,o=R+((n=f+fA|0)>>>0>>0?o+1|0:o)|0,h=o=(c=n+h|0)>>>0>>0?o+1|0:o,n=nA(c^y,o^j,32),o=(U=w)+AA|0,l=y=n+l|0,G=o=y>>>0>>0?o+1|0:o,f=nA(f^y,o^O,40),o=hA+(wA=w)|0,O=f,o=h+((f=EA+f|0)>>>0>>0?o+1|0:o)|0,c=o=(f=f+c|0)>>>0>>0?o+1|0:o,y=nA(n^f,o^U,48),o=(o=G)+(G=w)|0,j=n=y+l|0,U=n,R=o=n>>>0>>0?o+1|0:o,o=H+kA|0,l=(n=s+v|0)^r,r=o=n>>>0>>0?o+1|0:o,o=nA(l,o^L,1),L=h=w,l=o,o=_+tA|0,o=((s=M+X|0)>>>0>>0?o+1|0:o)+h|0,H=o=(H=s)>>>0>(s=s+l|0)>>>0?o+1|0:o,v=h=nA(s^P,IA^o,32),M=o=w,o=o+S|0,_=h=h+u|0,P=o=v>>>0>h>>>0?o+1|0:o,h=nA(h^l,L^o,40),o=yA+(L=w)|0,o=H+((u=h+eA|0)>>>0>>0?o+1|0:o)|0,u=o=(l=s)>>>0>(s=s+u|0)>>>0?o+1|0:o,l=nA(s^v,o^M,48),IA=o=w,S=o,k=nA(k^b,m^$,1),H=o=w,v=e,o=o+x|0,o=N+((e=k+aA|0)>>>0>>0?o+1|0:o)|0,o=(e=e+F|0)>>>0>>0?o+1|0:o,F=e^v,v=o,F=nA(F,o^J,32),o=($=w)+r|0,N=n=F+n|0,r=nA(n^k,(r=H)^(H=n>>>0>>0?o+1|0:o),40),o=pA+(M=w)|0,o=v+((n=r+oA|0)>>>0>>0?o+1|0:o)|0,v=n=n+e|0,J=o=n>>>0>>0?o+1|0:o,e=o,o=K+SA|0,o=((k=W+iA|0)>>>0>>0?o+1|0:o)+e|0,W=o=(e=n+k|0)>>>0>>0?o+1|0:o,n=nA(e^l,o^S,32),o=(b=w)+R|0,S=nA((k=n+U|0)^CA,(o=k>>>0>>0?o+1|0:o)^K,40),m=U=w,K=o,o=U+FA|0,o=W+((U=S+cA|0)>>>0>>0?o+1|0:o)|0,W=o=(U=e+U|0)>>>0>>0?o+1|0:o,e=nA(n^U,o^b,48),o=(b=w)+K|0,n=(k=e+k|0)^S,S=o=k>>>0>>0?o+1|0:o,m=o=nA(n,o^m,1),K=n=w,AA=p,Z=y,y=r,r=nA(F^v,J^$,48),o=(F=w)+H|0,H=n=r+N|0,v=o=n>>>0>>0?o+1|0:o,y=nA(n^y,o^M,1),o=(M=w)+lA|0,o=((n=y+QA|0)>>>0>>0?o+1|0:o)+u|0,s=o=(p=n+s|0)>>>0>>0?o+1|0:o,n=nA(p^Z,o^G,32),o=(u=w)+D|0,N=D=n+AA|0,G=o=D>>>0>>0?o+1|0:o,y=nA(y^D,o^M,40),o=C+(Z=w)|0,M=y,o=s+((y=sA+y|0)>>>0>>0?o+1|0:o)|0,J=o=(D=y+p|0)>>>0

>>0?o+1|0:o,y=nA(n^D,o^u,48),o=(o=G)+(G=w)|0,N=n=y+N|0,AA=o=n>>>0>>0?o+1|0:o,s=t,p=f,o=P+IA|0,t=o=(n=l+_|0)>>>0>>0?o+1|0:o,f=nA(n^h,o^L,1),o=(h=w)+BA|0,o=((u=f+q|0)>>>0>>0?o+1|0:o)+c|0,c=nA(s^(p=p+u|0),(o=p>>>0>>0?o+1|0:o)^V,32),u=o,l=f,o=(s=w)+v|0,o=(f=c+H|0)>>>0>>0?o+1|0:o,H=f,f^=l,l=o,f=nA(f,o^h,40),o=B+(v=w)|0,o=((h=f+g|0)>>>0>>0?o+1|0:o)+u|0,_=o=(u=h)>>>0>(h=h+p|0)>>>0?o+1|0:o,s=nA(c^h,o^s,48),IA=o=w,p=o,c=nA(j^O,R^wA,1),P=o=w,O=t,o=o+uA|0,o=d+((t=c+T|0)>>>0>>0?o+1|0:o)|0,u=F,F=o=(t=t+Y|0)>>>0>>0?o+1|0:o,u=nA(r^t,u^o,32),o=($=w)+O|0,Y=n=u+n|0,r=nA(n^c,(r=P)^(P=n>>>0>>0?o+1|0:o),40),o=MA+(O=w)|0,o=F+((n=r+rA|0)>>>0>>0?o+1|0:o)|0,d=n=n+t|0,j=o=n>>>0>>0?o+1|0:o,t=o,o=K+tA|0,o=((c=X+m|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+c|0)>>>0>>0?o+1|0:o,n=nA(t^s,o^p,32),o=(V=w)+AA|0,p=nA((c=n+N|0)^m,(o=c>>>0>>0?o+1|0:o)^K,40),m=o,o=x+(L=w)|0,o=F+((R=p+aA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+R|0)>>>0>>0?o+1|0:o,t=V,V=o,t=nA(n^F,t^o,48),o=(o=m)+(m=w)|0,n=(c=t+c|0)^p,p=o=c>>>0>>0?o+1|0:o,L=o=nA(n,o^L,1),R=n=w,K=y,y=r,r=nA(u^d,j^$,48),o=(o=P)+(P=w)|0,Y=n=r+Y|0,u=O,O=o=n>>>0>>0?o+1|0:o,y=nA(n^y,u^o,1),o=(d=w)+FA|0,o=_+((n=y+cA|0)>>>0>>0?o+1|0:o)|0,u=h,h=n+h|0,n=G,G=o=u>>>0>h>>>0?o+1|0:o,n=nA(h^K,n^o,32),o=(o=S)+(S=w)|0,_=o=(u=n+k|0)>>>0>>0?o+1|0:o,k=u,y=nA(y^u,o^d,40),o=uA+($=w)|0,d=y,o=G+((y=T+y|0)>>>0>>0?o+1|0:o)|0,G=o=(u=y+h|0)>>>0>>0?o+1|0:o,y=nA(n^u,o^S,48),o=(o=_)+(_=w)|0,j=n=y+k|0,K=o=n>>>0>>0?o+1|0:o,k=e,o=l+IA|0,e=o=(n=s+H|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=DA+(s=w)|0,o=J+((h=f+gA|0)>>>0>>0?o+1|0:o)|0,l=(h=D+h|0)^k,k=o=h>>>0>>0?o+1|0:o,D=nA(l,o^b,32),S=o=w,l=f,o=o+O|0,o=(f=D+Y|0)>>>0>>0?o+1|0:o,H=f,f^=l,l=o,f=nA(f,o^s,40),o=B+(v=w)|0,o=k+((s=f+g|0)>>>0>>0?o+1|0:o)|0,J=o=(s=h+s|0)>>>0>>0?o+1|0:o,k=nA(D^s,o^S,48),IA=o=w,h=o,D=nA(M^N,Z^AA,1),Y=o=w,N=e,o=o+C|0,o=W+((e=D+sA|0)>>>0>>0?o+1|0:o)|0,U=o=(e=e+U|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^P,32),o=(CA=w)+N|0,N=n=S+n|0,r=nA(n^D,(M=n>>>0>>0?o+1|0:o)^Y,40),o=z+(P=w)|0,o=U+((n=I+r|0)>>>0>>0?o+1|0:o)|0,U=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=R+pA|0,o=((D=L+oA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+K|0,h=nA((D=n+j|0)^L,(o=D>>>0>>0?o+1|0:o)^R,40),b=o,o=HA+(L=w)|0,o=Y+((R=h+fA|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+R|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=b)+(b=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,L=o=nA(n,o^L,1),wA=o,R=n=w,AA=c,Z=y,c=r,r=nA(S^U,O^CA,48),o=(S=w)+M|0,U=n=r+N|0,N=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^P,1),o=(P=w)+yA|0,o=J+((n=c+eA|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(M=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^P,40),o=lA+(CA=w)|0,J=c,o=s+((c=QA+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=M,M=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=l+IA|0,t=o=(n=k+H|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=(k=w)+MA|0,o=G+((p=f+rA|0)>>>0>>0?o+1|0:o)|0,y=nA(y^(p=p+u|0),(o=p>>>0>>0?o+1|0:o)^m,32),l=u=w,u=o,H=f,o=l+N|0,o=(f=y+U|0)>>>0>>0?o+1|0:o,U=f,f^=H,H=o,f=nA(f,o^k,40),o=hA+(v=w)|0,o=((k=f+EA|0)>>>0>>0?o+1|0:o)+u|0,G=l,l=o=(u=p+k|0)>>>0>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,K^$,1),N=o=w,G=t,o=o+BA|0,o=V+((t=y+q|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+G|0,G=n=S+n|0,r=nA(n^y,(r=N)^(N=n>>>0>>0?o+1|0:o),40),o=SA+(d=w)|0,o=F+((n=r+iA|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=R+B|0,o=((y=L+g|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^wA,(o=y>>>0>>0?o+1|0:o)^R,40),R=o,o=FA+(m=w)|0,o=F+((K=p+cA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,m=o=nA(n,o^m,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+N|0,N=n=r+G|0,G=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+lA|0,o=l+((n=c+QA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=BA+($=w)|0,d=c,o=u+((c=q+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+U|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^v,1),o=SA+(k=w)|0,o=M+((h=f+iA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^b,32),U=o=w,H=f,o=o+G|0,o=(f=D+N|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=pA+(N=w)|0,o=s+((k=f+oA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+z|0,o=W+((e=I+D|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=uA+(J=w)|0,o=Y+((n=r+T|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+DA|0,o=((D=m+gA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^m,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=C+(b=w)|0,o=Y+((K=h+sA|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(J=w)+tA|0,o=U+((n=c+X|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^J,40),o=MA+(CA=w)|0,J=c,o=s+((c=rA+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=U,U=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+hA|0,o=l+((p=f+EA|0)>>>0>>0?o+1|0:o)|0,u=o=(p=p+u|0)>>>0>>0?o+1|0:o,y=nA(y^p,o^R,32),l=o=w,H=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=yA+(N=w)|0,o=u+((k=f+eA|0)>>>0>>0?o+1|0:o)|0,G=l,l=o=(u=p+k|0)>>>0

>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,V^$,1),G=o=w,M=t,o=o+x|0,o=L+((t=y+aA|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+M|0,M=n=S+n|0,r=nA(n^y,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=HA+(d=w)|0,o=F+((n=r+fA|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=K+C|0,o=((y=b+sA|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^b,(o=y>>>0>>0?o+1|0:o)^K,40),R=o,o=SA+(b=w)|0,o=F+((K=p+iA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+x|0,o=l+((n=c+aA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=yA+($=w)|0,d=c,o=u+((c=eA+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=hA+(k=w)|0,o=U+((h=f+EA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^m,32),U=o=w,H=f,o=o+M|0,o=(f=D+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=MA+(N=w)|0,o=s+((k=f+rA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+BA|0,o=W+((e=D+q|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=HA+(J=w)|0,o=Y+((n=r+fA|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+uA|0,o=((D=b+T|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^b,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=z+(b=w)|0,o=Y+((K=I+h|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(J=w)+pA|0,o=U+((n=c+oA|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=o=(p=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^p,o^J,40),o=B+(CA=w)|0,J=c,o=s+((c=g+c|0)>>>0>>0?o+1|0:o)|0,s=c+y|0,c=U,U=o=s>>>0>>0?o+1|0:o,c=nA(n^s,c^o,48),o=(o=_)+(_=w)|0,P=n=c+p|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+DA|0,o=l+((p=f+gA|0)>>>0>>0?o+1|0:o)|0,u=o=(p=p+u|0)>>>0>>0?o+1|0:o,y=nA(y^p,o^R,32),l=o=w,H=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=lA+(N=w)|0,o=u+((k=f+QA|0)>>>0>>0?o+1|0:o)|0,G=l,l=o=(u=p+k|0)>>>0

>>0?o+1|0:o,k=nA(y^u,G^o,48),IA=o=w,p=o,y=nA(j^d,V^$,1),G=o=w,M=t,o=o+FA|0,o=L+((t=y+cA|0)>>>0>>0?o+1|0:o)|0,F=o=(t=t+F|0)>>>0>>0?o+1|0:o,S=nA(r^t,o^S,32),o=($=w)+M|0,M=n=S+n|0,r=nA(n^y,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=tA+(d=w)|0,o=F+((n=r+X|0)>>>0>>0?o+1|0:o)|0,j=n=n+t|0,V=o=n>>>0>>0?o+1|0:o,t=o,o=K+HA|0,o=((y=b+fA|0)>>>0>>0?o+1|0:o)+t|0,F=o=(t=n+y|0)>>>0>>0?o+1|0:o,n=nA(t^k,o^p,32),o=(L=w)+O|0,p=nA((y=n+P|0)^b,(o=y>>>0>>0?o+1|0:o)^K,40),R=o,o=yA+(b=w)|0,o=F+((K=p+eA|0)>>>0>>0?o+1|0:o)|0,o=(F=t+K|0)>>>0>>0?o+1|0:o,t=L,L=o,t=nA(n^F,t^o,48),o=(o=R)+(R=w)|0,n=(y=t+y|0)^p,p=o=y>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=D,Z=c,c=r,r=nA(S^j,V^$,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^d,1),o=(d=w)+SA|0,o=l+((n=c+iA|0)>>>0>>0?o+1|0:o)|0,u=o=(D=n+u|0)>>>0>>0?o+1|0:o,n=nA(D^Z,o^_,32),o=(l=w)+h|0,_=o=(h=n+AA|0)>>>0>>0?o+1|0:o,c=nA(c^h,o^d,40),o=C+($=w)|0,d=c,o=u+((c=sA+c|0)>>>0>>0?o+1|0:o)|0,u=c+D|0,c=l,l=o=u>>>0>>0?o+1|0:o,c=nA(n^u,c^o,48),o=(o=_)+(_=w)|0,j=n=c+h|0,V=o=n>>>0>>0?o+1|0:o,D=e,o=H+IA|0,e=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=lA+(k=w)|0,o=U+((h=f+QA|0)>>>0>>0?o+1|0:o)|0,s=o=(h=h+s|0)>>>0>>0?o+1|0:o,D=nA(D^h,o^m,32),U=o=w,H=f,o=o+M|0,o=(f=D+G|0)>>>0>>0?o+1|0:o,v=f,f^=H,H=o,f=nA(f,o^k,40),o=x+(N=w)|0,o=s+((k=f+aA|0)>>>0>>0?o+1|0:o)|0,o=(s=h+k|0)>>>0>>0?o+1|0:o,h=U,U=o,k=nA(D^s,h^o,48),IA=o=w,h=o,D=nA(J^P,O^CA,1),G=o=w,M=e,o=o+MA|0,o=W+((e=D+rA|0)>>>0>>0?o+1|0:o)|0,Y=o=(e=e+Y|0)>>>0>>0?o+1|0:o,S=nA(r^e,o^S,32),o=(CA=w)+M|0,M=n=S+n|0,r=nA(n^D,(r=G)^(G=n>>>0>>0?o+1|0:o),40),o=FA+(J=w)|0,o=Y+((n=r+cA|0)>>>0>>0?o+1|0:o)|0,P=n=n+e|0,O=o=n>>>0>>0?o+1|0:o,e=o,o=K+hA|0,o=((D=b+EA|0)>>>0>>0?o+1|0:o)+e|0,Y=o=(e=n+D|0)>>>0>>0?o+1|0:o,n=nA(e^k,o^h,32),o=(W=w)+V|0,h=nA((D=n+j|0)^b,(o=D>>>0>>0?o+1|0:o)^K,40),m=o,o=B+(b=w)|0,o=Y+((K=h+g|0)>>>0>>0?o+1|0:o)|0,o=(Y=e+K|0)>>>0>>0?o+1|0:o,e=W,W=o,e=nA(n^Y,e^o,48),o=(o=m)+(m=w)|0,n=(D=e+D|0)^h,h=o=D>>>0>>0?o+1|0:o,b=o=nA(n,o^b,1),K=n=w,AA=y,Z=c,c=r,r=nA(S^P,O^CA,48),o=(S=w)+G|0,G=n=r+M|0,M=o=n>>>0>>0?o+1|0:o,c=nA(n^c,o^J,1),o=(P=w)+BA|0,o=U+((n=c+q|0)>>>0>>0?o+1|0:o)|0,s=o=(y=n+s|0)>>>0>>0?o+1|0:o,n=nA(y^Z,o^_,32),o=(U=w)+p|0,_=p=n+AA|0,J=o=p>>>0>>0?o+1|0:o,c=nA(c^p,o^P,40),o=uA+(AA=w)|0,P=c,o=s+((c=T+c|0)>>>0>>0?o+1|0:o)|0,p=c+y|0,c=U,U=o=p>>>0>>0?o+1|0:o,c=nA(n^p,c^o,48),o=(o=J)+(J=w)|0,_=n=c+_|0,O=o=n>>>0>>0?o+1|0:o,y=t,o=H+IA|0,t=o=(n=k+v|0)>>>0>>0?o+1|0:o,f=nA(n^f,o^N,1),o=(k=w)+z|0,o=l+((s=I+f|0)>>>0>>0?o+1|0:o)|0,u=o=(s=s+u|0)>>>0>>0?o+1|0:o,l=y=nA(y^s,o^R,32),H=o=w,v=f,o=o+M|0,o=(f=y+G|0)>>>0>>0?o+1|0:o,N=f,f^=v,v=o,f=nA(f,o^k,40),o=pA+(G=w)|0,o=u+((y=f+oA|0)>>>0>>0?o+1|0:o)|0,M=(y=y+s|0)^l,l=o=y>>>0>>0?o+1|0:o,s=nA(M,o^H,48),R=o=w,k=o,H=u=nA(j^d,V^$,1),M=o=w,d=t,o=o+tA|0,o=L+((t=u+X|0)>>>0>>0?o+1|0:o)|0,o=(t=t+F|0)>>>0>>0?o+1|0:o,F=S,S=o,u=nA(r^t,F^o,32),o=(Z=w)+d|0,F=n=u+n|0,r=nA(r=n^H,(H=n>>>0>>0?o+1|0:o)^M,40),o=DA+(M=w)|0,o=S+((n=r+gA|0)>>>0>>0?o+1|0:o)|0,S=n=n+t|0,d=o=n>>>0>>0?o+1|0:o,t=o,o=K+uA|0,o=((L=T)>>>0>(T=b+T|0)>>>0?o+1|0:o)+t|0,uA=o=(n=n+T|0)>>>0>>0?o+1|0:o,T=nA(n^s,o^k,32),o=(j=w)+O|0,k=nA((t=_+T|0)^b,(o=t>>>0>>0?o+1|0:o)^K,40),L=o,o=pA+(V=w)|0,o=uA+((b=oA)>>>0>(oA=k+oA|0)>>>0?o+1|0:o)|0,o=(oA=n+oA|0)>>>0>>0?o+1|0:o,n=T^oA,T=o;pA=nA(n,o^j,48),o=(uA=w)+L|0,t=o=(n=t+pA|0)>>>0>>0?o+1|0:o,o=nA(n^k,o^V,1),k=w,j=o,V=D,D=gA,L=DA,DA=nA(u^S,d^Z,48),o=(u=w)+H|0,H=D,F=o=(gA=F+DA|0)>>>0>>0?o+1|0:o,D=nA(r^(S=gA),o^M,1),o=(M=w)+L|0,o=l+(D>>>0>(gA=H+D|0)>>>0?o+1|0:o)|0,r=o=(gA=y+gA|0)>>>0>>0?o+1|0:o,c=nA(c^gA,o^J,32),o=(o=h)+(h=w)|0,l=y=c+V|0,H=o=y>>>0>>0?o+1|0:o,y=nA(y^D,o^M,40),o=(M=w)+SA|0,o=(y>>>0>(iA=y+iA|0)>>>0?o+1|0:o)+r|0,r=o=(r=iA)>>>0>(iA=gA+iA|0)>>>0?o+1|0:o,c=nA(c^iA,o^h,48),o=(D=w)+H|0,h=gA=c+l|0,SA=o=gA>>>0>>0?o+1|0:o,l=I,H=z,o=v+R|0,gA=o=(I=s+N|0)>>>0>>0?o+1|0:o,z=nA(I^f,o^G,1),o=(s=w)+H|0,o=U+((f=l+z|0)>>>0>>0?o+1|0:o)|0,e=nA((f=f+p|0)^e,(o=f>>>0

>>0?B+1|0:B)+I|0,e=B=(E=Q+e|0)>>>0>>0?B+1|0:B,o[C+16>>2]=E,o[C+20>>2]=B,I=I+D|0,p=I=(D=Q+i|0)>>>0>>0?I+1|0:I,o[C+48>>2]=D,o[C+52>>2]=I,Q=o[(B=_=(I=48|M)+g|0)>>2],B=F+o[B+4>>2]|0,B=(Q=Q+s|0)>>>0>>0?B+1|0:B,Q=(i=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(l^(k^l)&p)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=h^(n^h)&D)|0)>>>0>>0?I+1|0:I,Q=nA(D,p,50),i=w,Q=nA(D,p,46)^Q,i^=w,Q=(s=nA(D,p,23)^Q)+B|0,B=(w^i)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(E,e,36),i=w,B=nA(E,e,30)^B,s=w^i,S=nA(E,e,25)^B,B=((t|u)&e|t&u)+(w^s)|0,I=((i=S+((f|y)&E|f&y)|0)>>>0>>0?B+1|0:B)+I|0,s=I=(B=i)>>>0>(i=Q+i|0)>>>0?I+1|0:I,o[C+8>>2]=i,o[C+12>>2]=I,B=c+F|0,F=B=(S=Q+r|0)>>>0>>0?B+1|0:B,o[C+40>>2]=S,o[C+44>>2]=B,Q=o[(I=Y=(B=56|M)+g|0)>>2],I=l+o[I+4>>2]|0,I=(Q=Q+h|0)>>>0>>0?I+1|0:I,Q=(r=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(k^(p^k)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=n^(n^D)&S)|0)>>>0>>0?B+1|0:B,Q=nA(S,F,50),r=w,Q=nA(S,F,46)^Q,r^=w,Q=(c=nA(S,F,23)^Q)+I|0,I=(w^r)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(i,s,36),r=w,B=nA(i,s,30)^B,c=w^r,h=nA(i,s,25)^B,B=((t|e)&s|t&e)+(w^c)|0,B=((r=h+((E|y)&i|E&y)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(c=r)>>>0>(r=Q+r|0)>>>0?B+1|0:B,o[C>>2]=r,o[C+4>>2]=B,I=I+u|0,l=I=(B=f)>>>0>(f=Q+f|0)>>>0?I+1|0:I,o[C+32>>2]=f,o[C+36>>2]=I,Q=o[(B=m=(I=64|M)+g|0)>>2],B=k+o[B+4>>2]|0,B=(Q=Q+n|0)>>>0>>0?B+1|0:B,Q=(n=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(p^(p^F)&l)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=D^(D^S)&f)|0)>>>0>>0?I+1|0:I,Q=nA(f,l,50),n=w,Q=nA(f,l,46)^Q,n^=w,Q=(u=nA(f,l,23)^Q)+B|0,B=(w^n)+I|0,h=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(r,c,36),n=w,B=nA(r,c,30)^B,u=w^n,k=nA(r,c,25)^B,B=((e|s)&c|e&s)+(w^u)|0,I=((n=k+((i|E)&r|i&E)|0)>>>0>>0?B+1|0:B)+I|0,n=I=(u=Q+n|0)>>>0>>0?I+1|0:I,o[C+56>>2]=u,o[C+60>>2]=I,B=t+h|0,k=B=(t=Q+y|0)>>>0>>0?B+1|0:B,o[C+24>>2]=t,o[C+28>>2]=B,Q=o[(I=G=(B=72|M)+g|0)>>2],I=p+o[I+4>>2]|0,I=(Q=Q+D|0)>>>0>>0?I+1|0:I,Q=(D=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(F^(F^l)&k)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=S^(f^S)&t)|0)>>>0>>0?B+1|0:B,Q=nA(t,k,50),D=w,Q=nA(t,k,46)^Q,D^=w,Q=(h=nA(t,k,23)^Q)+I|0,I=(w^D)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(u,n,36),D=w,B=nA(u,n,30)^B,h=w^D,y=nA(u,n,25)^B,B=((c|s)&n|c&s)+(w^h)|0,B=((D=y+((i|r)&u|i&r)|0)>>>0>>0?B+1|0:B)+I|0,D=B=(h=Q+D|0)>>>0>>0?B+1|0:B,o[C+48>>2]=h,o[C+52>>2]=B,I=I+e|0,p=I=(e=Q+E|0)>>>0>>0?I+1|0:I,o[C+16>>2]=e,o[C+20>>2]=I,I=(E=o[(B=J=(Q=80|M)+g|0)>>2])+S|0,B=o[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,Q=(y=I)+(E=o[(I=Q+34e3|0)>>2])|0,I=o[I+4>>2]+B|0,I=(l^(k^l)&p)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=f^(t^f)&e)|0)>>>0>>0?I+1|0:I,Q=nA(e,p,50),E=w,Q=nA(e,p,46)^Q,E^=w,Q=(y=nA(e,p,23)^Q)+B|0,B=(w^E)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(h,D,36),E=w,B=nA(h,D,30)^B,y=w^E,S=nA(h,D,25)^B,B=((n|c)&D|n&c)+(w^y)|0,I=((E=S+((r|u)&h|r&u)|0)>>>0>>0?B+1|0:B)+I|0,E=I=(y=Q+E|0)>>>0>>0?I+1|0:I,o[C+40>>2]=y,o[C+44>>2]=I,B=s+F|0,F=B=(s=Q+i|0)>>>0>>0?B+1|0:B,o[C+8>>2]=s,o[C+12>>2]=B,B=34e3+(I=88|M)|0,i=o[(I=U=I+g|0)>>2],Q=o[B>>2]+i|0,I=o[B+4>>2]+o[I+4>>2]|0,B=l+(Q>>>0>>0?I+1|0:I)|0,B=(k^(p^k)&F)+(B=(I=Q+f|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=t^(t^e)&s)+I|0)>>>0>>0?B+1|0:B,Q=nA(s,F,50),i=w,Q=nA(s,F,46)^Q,i^=w,Q=(f=nA(s,F,23)^Q)+I|0,I=(w^i)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(y,E,36),i=w,B=nA(y,E,30)^B,f=w^i,l=nA(y,E,25)^B,B=((n|D)&E|n&D)+(w^f)|0,B=((i=l+((h|u)&y|h&u)|0)>>>0>>0?B+1|0:B)+I|0,f=B=(f=i)>>>0>(i=Q+i|0)>>>0?B+1|0:B,o[C+32>>2]=i,o[C+36>>2]=B,I=I+c|0,c=I=(B=r)>>>0>(r=Q+r|0)>>>0?I+1|0:I,o[C>>2]=r,o[C+4>>2]=I,B=34e3+(I=96|M)|0,l=o[(I=d=I+g|0)>>2],Q=o[B>>2]+l|0,B=o[B+4>>2]+o[I+4>>2]|0,I=k+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+t|0)>>>0>>0?I+1|0:I,Q=(t=e^(e^s)&r)+B|0,B=(p^(p^F)&c)+I|0,B=Q>>>0>>0?B+1|0:B,I=nA(r,c,50),t=w,I=nA(r,c,46)^I,t^=w,k=Q,Q=nA(r,c,23)^I,B=(w^t)+B|0,k=B=(I=k+Q|0)>>>0>>0?B+1|0:B,Q=I,I=nA(i,f,36),t=w,I=nA(i,f,30)^I,l=w^t,S=nA(i,f,25)^I,I=((E|D)&f|E&D)+(w^l)|0,B=((t=S+((h|y)&i|h&y)|0)>>>0>>0?I+1|0:I)+B|0,t=B=(l=Q+t|0)>>>0>>0?B+1|0:B,o[C+24>>2]=l,o[C+28>>2]=B,B=n+k|0,n=B=(u=Q+u|0)>>>0>>0?B+1|0:B,o[C+56>>2]=u,o[C+60>>2]=B,B=34e3+(I=104|M)|0,k=o[(I=R=I+g|0)>>2],Q=o[B>>2]+k|0,I=o[B+4>>2]+o[I+4>>2]|0,B=p+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=s^(r^s)&u)+I|0,I=(F^(c^F)&n)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(u,n,50),e=w,B=nA(u,n,46)^B,e^=w,p=nA(u,n,23)^B,B=(w^e)+I|0,k=B=(Q=p+Q|0)>>>0

>>0?B+1|0:B,I=B,B=nA(l,t,36),e=w,B=nA(l,t,30)^B,p=w^e,S=nA(l,t,25)^B,B=((E|f)&t|E&f)+(w^p)|0,I=((e=S+((i|y)&l|i&y)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(p=Q+e|0)>>>0>>0?I+1|0:I,o[C+16>>2]=p,o[C+20>>2]=I,I=D+k|0,D=I=(h=Q+h|0)>>>0>>0?I+1|0:I,o[C+48>>2]=h,o[C+52>>2]=I,B=34e3+(I=112|M)|0,k=o[(Q=S=I+g|0)>>2],I=o[B>>2]+k|0,B=o[B+4>>2]+o[Q+4>>2]|0,B=F+(I>>>0>>0?B+1|0:B)|0,B=(c^(n^c)&D)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=r^(r^u)&h)+I|0)>>>0>>0?B+1|0:B,Q=nA(h,D,50),s=w,Q=nA(h,D,46)^Q,s^=w,Q=(F=nA(h,D,23)^Q)+I|0,I=(w^s)+B|0,k=I=Q>>>0>>0?I+1|0:I,B=I,I=nA(p,e,36),s=w,I=nA(p,e,30)^I,F=w^s,L=nA(p,e,25)^I,I=((t|f)&e|t&f)+(w^F)|0,B=((s=L+((i|l)&p|i&l)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(F=Q+s|0)>>>0>>0?B+1|0:B,o[C+8>>2]=F,o[C+12>>2]=B,B=E+k|0,Q=B=(E=Q+y|0)>>>0>>0?B+1|0:B,o[C+40>>2]=E,o[C+44>>2]=B,B=34e3+(I=120|M)|0,M=o[(I=y=I+g|0)>>2],k=o[B>>2]+M|0,B=o[B+4>>2]+o[I+4>>2]|0,I=c+(k>>>0>>0?B+1|0:B)|0,I=(n^(n^D)&Q)+(I=(B=r+k|0)>>>0>>0?I+1|0:I)|0,I=(B=(r=u^(h^u)&E)+B|0)>>>0>>0?I+1|0:I,r=nA(E,Q,50),n=w,r=nA(E,Q,46)^r,n^=w,Q=(r=nA(E,Q,23)^r)+B|0,B=(w^n)+I|0,B=Q>>>0>>0?B+1|0:B,r=Q,n=B,I=B,B=nA(F,s,36),E=w,B=nA(F,s,30)^B,D=w^E,c=nA(F,s,25)^B,B=((t|e)&s|t&e)+(w^D)|0,I=((E=c+((p|l)&F|p&l)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+E|0)>>>0>>0?I+1|0:I,o[C>>2]=Q,o[C+4>>2]=I,B=n+f|0,B=(f=i)>>>0>(i=i+r|0)>>>0?B+1|0:B,o[C+32>>2]=i,o[C+36>>2]=B,64!=(0|x);)n=((x=x+16|0)<<3)+g|0,r=o[H>>2],f=o[H+4>>2],L=o[G>>2],t=I=o[G+4>>2],B=I,Q=I=o[S+4>>2],I=nA(F=o[S>>2],I,45),i=w,E=((63&Q)<<26|F>>>6)^(I=nA(F,Q,3)^I),I=(Q>>>6^(e=w^i))+B|0,B=((i=E+L|0)>>>0>>0?I+1|0:I)+f|0,B=(I=i+r|0)>>>0>>0?B+1|0:B,r=i=o[P+4>>2],i=nA(f=o[P>>2],i,63),e=w,i=((127&r)<<25|f>>>7)^nA(f,r,56)^i,B=(w^e^r>>>7)+B|0,i=B=i>>>0>(l=i+I|0)>>>0?B+1|0:B,o[n>>2]=l,o[n+4>>2]=B,f=(S=o[J>>2])+f|0,I=(n=o[J+4>>2])+r|0,B=f>>>0>>0?I+1|0:I,r=I=o[y+4>>2],I=nA(k=o[y>>2],I,45),e=w,E=f,f=((63&r)<<26|k>>>6)^nA(k,r,3)^I,B=(w^e^r>>>6)+B|0,f=(E=E+f|0)>>>0>>0?B+1|0:B,B=nA(e=o[K>>2],I=o[K+4>>2],63),D=w,y=E,E=((127&I)<<25|e>>>7)^nA(e,I,56)^B,B=(w^D^I>>>7)+f|0,f=B=E>>>0>(p=y+E|0)>>>0?B+1|0:B,o[H+136>>2]=p,o[H+140>>2]=B,B=(M=o[U>>2])+e|0,I=(e=o[U+4>>2])+I|0,E=nA(l,i,45),D=w,E=(c=((63&i)<<26|l>>>6)^nA(l,i,3)^E)+B|0,B=(w^D^i>>>6)+(B>>>0>>0?I+1|0:I)|0,B=E>>>0>>0?B+1|0:B,D=I=o[N+4>>2],I=nA(c=o[N>>2],I,63),s=w,y=E,E=((127&D)<<25|c>>>7)^nA(c,D,56)^I,B=(w^s^D>>>7)+B|0,E=B=E>>>0>(P=y+E|0)>>>0?B+1|0:B,o[H+144>>2]=P,o[H+148>>2]=B,c=(K=o[d>>2])+c|0,I=(I=D)+(D=o[d+4>>2])|0,B=c>>>0>>0?I+1|0:I,I=nA(p,f,45),s=w,u=((63&f)<<26|p>>>6)^nA(p,f,3)^I,B=(w^s^f>>>6)+B|0,B=(c=u+c|0)>>>0>>0?B+1|0:B,s=I=o[v+4>>2],I=nA(u=o[v>>2],I,63),h=w,y=c,c=((127&s)<<25|u>>>7)^nA(u,s,56)^I,B=(w^h^s>>>7)+B|0,c=B=c>>>0>(N=y+c|0)>>>0?B+1|0:B,o[H+152>>2]=N,o[H+156>>2]=B,I=(v=o[R>>2])+u|0,B=(B=s)+(s=o[R+4>>2])|0,u=nA(P,E,45),h=w,u=((63&E)<<26|P>>>6)^nA(P,E,3)^u,B=(w^h^E>>>6)+(I>>>0>>0?B+1|0:B)|0,u=(y=u+I|0)>>>0>>0?B+1|0:B,B=nA(h=o[b>>2],I=o[b+4>>2],63),b=w,U=y,y=((127&I)<<25|h>>>7)^(B=nA(h,I,56)^B),B=(I>>>7^(G=w^b))+u|0,u=B=y>>>0>(b=U+y|0)>>>0?B+1|0:B,o[H+160>>2]=b,o[H+164>>2]=B,I=I+Q|0,I=(B=h+F|0)>>>0>>0?I+1|0:I,h=nA(N,c,45),y=w,h=(G=((63&c)<<26|N>>>6)^nA(N,c,3)^h)+B|0,B=(w^y^c>>>6)+I|0,B=h>>>0>>0?B+1|0:B,G=I=o[_+4>>2],I=nA(y=o[_>>2],I,63),_=w,I=nA(y,G,56)^I,U=h,B=(G>>>7^(J=w^_))+B|0,h=B=(h=((127&G)<<25|y>>>7)^I)>>>0>(_=U+h|0)>>>0?B+1|0:B,o[H+168>>2]=_,o[H+172>>2]=B,I=r+G|0,I=(B=y+k|0)>>>0>>0?I+1|0:I,U=y=o[Y+4>>2],y=nA(J=o[Y>>2],y,63),G=w,y=(Y=((127&U)<<25|J>>>7)^nA(J,U,56)^y)+B|0,B=(w^G^U>>>7)+I|0,I=y>>>0>>0?B+1|0:B,B=nA(b,u,45),G=w,B=nA(b,u,3)^B,Y=w^G,G=y,I=(u>>>6^Y)+I|0,y=I=(y=((63&u)<<26|b>>>6)^B)>>>0>(G=G+y|0)>>>0?I+1|0:I,o[H+176>>2]=G,o[H+180>>2]=I,d=o[m>>2],m=I=o[m+4>>2],Y=I,I=nA(L,t,63),B=w,R=((127&t)<<25|L>>>7)^nA(L,t,56)^I,I=(w^B^t>>>7)+f|0,B=((p=R+p|0)>>>0>>0?I+1|0:I)+Y|0,B=(I=p+d|0)>>>0

>>0?B+1|0:B,f=nA(G,y,45),p=w,Y=(f=((63&y)<<26|G>>>6)^nA(G,y,3)^f)+I|0,I=(w^p^y>>>6)+B|0,f=I=f>>>0>Y>>>0?I+1|0:I,o[H+192>>2]=Y,o[H+196>>2]=I,B=i+U|0,B=(I=l+J|0)>>>0>>0?B+1|0:B,p=nA(d,m,63),J=w,U=((127&m)<<25|d>>>7)^nA(d,m,56)^p,B=(w^J^m>>>7)+B|0,I=(p=U+I|0)>>>0>>0?B+1|0:B,B=nA(_,h,45),J=w,B=nA(_,h,3)^B,m=p,I=(h>>>6^(U=w^J))+I|0,p=I=(p=((63&h)<<26|_>>>6)^B)>>>0>(J=m+p|0)>>>0?I+1|0:I,o[H+184>>2]=J,o[H+188>>2]=I,I=nA(M,e,63),B=w,I=((127&e)<<25|M>>>7)^nA(M,e,56)^I,B=(w^B^e>>>7)+n|0,I=c+(I>>>0>(U=I+S|0)>>>0?B+1|0:B)|0,I=(B=N+U|0)>>>0>>0?I+1|0:I,c=nA(Y,f,45),N=w,c=nA(Y,f,3)^c,U=w^N,N=(c^=(63&f)<<26|Y>>>6)+B|0,B=(f>>>6^U)+I|0,c=B=c>>>0>N>>>0?B+1|0:B,o[H+208>>2]=N,o[H+212>>2]=B,I=nA(S,n,63),B=w,U=nA(S,n,56)^I,B=((I=n>>>7|0)^w^B)+t|0,I=E+((n=(S=U^((127&n)<<25|S>>>7))+L|0)>>>0>>0?B+1|0:B)|0,I=(B=n+P|0)>>>0

>>0?I+1|0:I,t=nA(J,p,45),n=w,E=(t=((63&p)<<26|J>>>6)^nA(J,p,3)^t)+B|0,B=(w^n^p>>>6)+I|0,t=B=t>>>0>E>>>0?B+1|0:B,o[H+200>>2]=E,o[H+204>>2]=B,I=nA(v,s,63),B=w,S=((127&s)<<25|v>>>7)^nA(v,s,56)^I,I=(w^B^s>>>7)+D|0,B=h+((n=S+K|0)>>>0>>0?I+1|0:I)|0,B=(I=n+_|0)>>>0<_>>>0?B+1|0:B,n=nA(N,c,45),h=w,U=I,I=c>>>6|0,n=((63&c)<<26|N>>>6)^nA(N,c,3)^n,B=(I^w^h)+B|0,n=B=n>>>0>(c=U+n|0)>>>0?B+1|0:B,o[H+224>>2]=c,o[H+228>>2]=B,I=nA(K,D,63),B=w,I=nA(K,D,56)^I,h=w^B,S=((127&D)<<25|K>>>7)^I,I=((B=D>>>7|0)^h)+e|0,B=u+((D=S+M|0)>>>0>>0?I+1|0:I)|0,B=(I=D+b|0)>>>0>>0?B+1|0:B,e=nA(E,t,45),D=w,h=I,I=t>>>6|0,t=((63&t)<<26|E>>>6)^nA(E,t,3)^e,I=(I^w^D)+B|0,t=I=t>>>0>(e=h+t|0)>>>0?I+1|0:I,o[H+216>>2]=e,o[H+220>>2]=I,I=nA(k,r,63),B=w,D=((127&r)<<25|k>>>7)^nA(k,r,56)^I,B=(w^B^r>>>7)+Q|0,B=p+((I=D+F|0)>>>0>>0?B+1|0:B)|0,I=(E=I+J|0)>>>0>>0?B+1|0:B,B=nA(c,n,45),D=w,p=E,E=nA(c,n,3)^B,B=n>>>6|0,n=p+(E^=(63&n)<<26|c>>>6)|0,I=(B^w^D)+I|0,o[H+240>>2]=n,o[H+244>>2]=n>>>0>>0?I+1|0:I,I=nA(F,Q,63),B=w,I=nA(F,Q,56)^I,n=w^B,B=((B=Q>>>7|0)^n)+s|0,I=y+((I^=(127&Q)<<25|F>>>7)>>>0>(Q=I+v|0)>>>0?B+1|0:B)|0,I=(B=Q+G|0)>>>0>>0?I+1|0:I,Q=nA(e,t,45),n=w,E=B,B=t>>>6|0,Q=((63&t)<<26|e>>>6)^nA(e,t,3)^Q,B=(B^w^n)+I|0,Q=B=Q>>>0>(t=E+Q|0)>>>0?B+1|0:B,o[H+232>>2]=t,o[H+236>>2]=B,I=nA(l,i,63),B=w,E=nA(l,i,56)^I,B=((I=i>>>7|0)^w^B)+r|0,I=f+((i=(n=E^((127&i)<<25|l>>>7))+k|0)>>>0>>0?B+1|0:B)|0,I=(B=i+Y|0)>>>0>>0?I+1|0:I,i=nA(t,Q,45),r=w,f=B,B=Q>>>6|0,Q=f+(i=((63&Q)<<26|t>>>6)^nA(t,Q,3)^i)|0,B=(B^w^r)+I|0,o[H+248>>2]=Q,o[H+252>>2]=Q>>>0>>0?B+1|0:B;I=I+o[A+4>>2]|0,I=(g=Q+o[A>>2]|0)>>>0>>0?I+1|0:I,o[A>>2]=g,o[A+4>>2]=I,B=o[A+12>>2]+o[C+12>>2]|0,I=(g=o[C+8>>2])+o[A+8>>2]|0,o[A+8>>2]=I,o[A+12>>2]=I>>>0>>0?B+1|0:B,B=o[A+20>>2]+o[C+20>>2]|0,I=(g=o[C+16>>2])+o[A+16>>2]|0,o[A+16>>2]=I,o[A+20>>2]=I>>>0>>0?B+1|0:B,I=o[A+28>>2]+o[C+28>>2]|0,g=(B=o[C+24>>2])+o[A+24>>2]|0,o[A+24>>2]=g,o[A+28>>2]=g>>>0>>0?I+1|0:I,B=o[A+36>>2]+o[C+36>>2]|0,I=(g=o[C+32>>2])+o[A+32>>2]|0,o[A+32>>2]=I,o[A+36>>2]=I>>>0>>0?B+1|0:B,I=o[A+44>>2]+o[C+44>>2]|0,g=(B=o[C+40>>2])+o[A+40>>2]|0,o[A+40>>2]=g,o[A+44>>2]=g>>>0>>0?I+1|0:I,B=o[A+52>>2]+o[C+52>>2]|0,I=(g=o[C+48>>2])+o[A+48>>2]|0,o[A+48>>2]=I,o[A+52>>2]=I>>>0>>0?B+1|0:B,B=o[A+60>>2]+o[C+60>>2]|0,I=(g=o[C+56>>2])+o[A+56>>2]|0,o[A+56>>2]=I,o[A+60>>2]=I>>>0>>0?B+1|0:B}function u(A){var I,g,C,B,Q,i,o,n,r,f,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0;y=(l=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24)>>>5&2097151,c=DA(_=(a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24)>>>3|0,0,-683901,-1),e=(t=a[A+44|0])<<16&2031616|a[A+42|0]|a[A+43|0]<<8,t=w,p=t=e>>>0>(u=c+e|0)>>>0?t+1|0:t,G=t=t-((u>>>0<4293918720)-1|0)|0,c=t>>21,t=(e=y)+(y=(2097151&t)<<11|(h=u- -1048576|0)>>>21)|0,e=c,x=e=t>>>0>>0?e+1|0:e,j=t,N=DA(t,e,-683901,-1),k=w,s=DA(I=(a[A+49|0]|a[A+50|0]<<8|a[A+51|0]<<16|a[A+52|0]<<24)>>>7&2097151,0,-997805,-1),c=(t=a[A+27|0])>>>24|0,y=t<<8|(S=a[A+23|0]|a[A+24|0]<<8|a[A+25|0]<<16|a[A+26|0]<<24)>>>24,e=(t=a[A+28|0])>>>16|0,e=2097151&((3&(e|=c))<<30|(t=y|t<<16)>>>2),t=w,t=e>>>0>(c=e+s|0)>>>0?t+1|0:t,e=DA(d=(H=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24)>>>4&2097151,0,654183,0),t=w+t|0,s=c=e+c|0,c=e>>>0>c>>>0?t+1|0:t,D=(e=a[A+48|0])<<8|l>>>24,e=t=e>>>24|0,t=DA(g=2097151&((3&(l=(t=(y=a[A+49|0])>>>16|0)|e))<<30|(e=(y<<=16)|D)>>>2),0,136657,0),c=w+c|0,c=t>>>0>(e=t+s|0)>>>0?c+1|0:c,y=(t=DA(C=(a[A+57|0]|a[A+58|0]<<8|a[A+59|0]<<16|a[A+60|0]<<24)>>>6&2097151,0,666643,0))+e|0,e=w+c|0,s=y,c=t>>>0>y>>>0?e+1|0:e,e=(t=a[A+56|0])>>>24|0,D=t<<8|H>>>24,e=DA(B=2097151&((1&(H=(t=(y=a[A+57|0])>>>16|0)|e))<<31|(e=(y<<=16)|D)>>>1),0,470296,0),t=w+c|0,e=(t=(c=y=e+s|0)>>>0>>0?t+1|0:t)+k|0,e=c>>>0>(y=c+N|0)>>>0?e+1|0:e,U=c- -1048576|0,J=c=t-((c>>>0<4293918720)-1|0)|0,k=y-(t=-2097152&U)|0,N=e-((t>>>0>y>>>0)+c|0)|0,e=DA(I,0,654183,0),t=w,t=e>>>0>(c=e+(S>>>5&2097151)|0)>>>0?t+1|0:t,y=(e=c)+(c=DA(d,0,470296,0))|0,e=w+t|0,e=c>>>0>y>>>0?e+1|0:e,t=DA(g,q,-997805,-1),e=w+e|0,e=t>>>0>(c=t+y|0)>>>0?e+1|0:e,y=(t=c)+(c=DA(B,z,666643,0))|0,t=w+e|0,D=y,y=c>>>0>y>>>0?t+1|0:t,s=(c=DA(I,0,470296,0))+(t=(t=a[A+23|0])<<16&2031616|a[A+21|0]|a[A+22|0]<<8)|0,c=w,c=t>>>0>s>>>0?c+1|0:c,s=(e=DA(d,0,666643,0))+s|0,t=w+c|0,c=DA(g,q,654183,0),e=w+(e>>>0>s>>>0?t+1|0:t)|0,H=e=c>>>0>(S=c+s|0)>>>0?e+1|0:e,m=e=e-((S>>>0<4293918720)-1|0)|0,t=(t=e>>>21|0)+y|0,c=t=(e=(2097151&e)<<11|(s=S- -1048576|0)>>>21)>>>0>(D=e+D|0)>>>0?t+1|0:t,F=e=t-((D>>>0<4293918720)-1|0)|0,t=k,k=(2097151&e)<<11|(y=D- -1048576|0)>>>21,e=(e>>21)+N|0,l=k=(e=k>>>0>(M=t+k|0)>>>0?e+1|0:e)-((M>>>0<4293918720)-1|0)|0,L=M-(t=-2097152&(N=M- -1048576|0))|0,V=e-((t>>>0>M>>>0)+k|0)|0,t=DA(j,x,136657,0),c=w+c|0,c=t>>>0>(e=t+D|0)>>>0?c+1|0:c,b=e-(t=-2097152&y)|0,R=c-((t>>>0>e>>>0)+F|0)|0,M=u-(t=-2097152&h)|0,G=p-((t>>>0>u>>>0)+G|0)|0,p=DA(_,0,136657,0),e=(t=a[A+40|0])>>>24|0,y=t<<8|(h=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24)>>>24,c=(t=a[A+41|0])>>>16|0,e=(c|=e)>>>3|0,c=(7&c)<<29|(t=y|t<<16)>>>3,t=e+w|0,t=c>>>0>(y=c+p|0)>>>0?t+1|0:t,e=DA(C,0,-683901,-1),t=w+t|0,t=e>>>0>(c=e+y|0)>>>0?t+1|0:t,D=c,e=DA(_,0,-997805,-1),c=w,c=e>>>0>(y=e+(h>>>6&2097151)|0)>>>0?c+1|0:c,h=(e=y)+(y=DA(C,0,136657,0))|0,e=w+c|0,c=DA(B,z,-683901,-1),e=w+(y>>>0>h>>>0?e+1|0:e)|0,k=e=c>>>0>(K=c+h|0)>>>0?e+1|0:e,O=c=e-((K>>>0<4293918720)-1|0)|0,t=t+(e=c>>21)|0,h=t=(c=(2097151&c)<<11|(u=K- -1048576|0)>>>21)>>>0>(F=c+D|0)>>>0?t+1|0:t,P=t=t-((F>>>0<4293918720)-1|0)|0,e=(e=t>>21)+G|0,X=e=(t=(c=(2097151&t)<<11|(D=F- -1048576|0)>>>21)+M|0)>>>0>>0?e+1|0:e,v=t,e=DA(t,e,-683901,-1),t=w+R|0,Y=c=e+b|0,y=e>>>0>c>>>0?t+1|0:t,R=S-(t=-2097152&s)|0,G=H-((4095&m)+(t>>>0>S>>>0)|0)|0,S=DA(I,0,666643,0),t=(e=a[A+19|0])>>>24|0,s=e<<8|(H=a[A+15|0]|a[A+16|0]<<8|a[A+17|0]<<16|a[A+18|0]<<24)>>>24,c=t,e=(7&(c|=e=(t=a[A+20|0])>>>16|0))<<29|(e=(t<<=16)|s)>>>3,c=w+(c>>>3|0)|0,c=e>>>0>(s=e+S|0)>>>0?c+1|0:c,t=DA(g,q,470296,0),e=w+c|0,t=t>>>0>(s=t+s|0)>>>0?e+1|0:e,c=DA(g,q,666643,0),e=w,S=e=c>>>0>(b=c+(H>>>6&2097151)|0)>>>0?e+1|0:e,T=c=e-((b>>>0<4293918720)-1|0)|0,t=t+(e=c>>>21|0)|0,H=t=(c=(2097151&c)<<11|(p=b- -1048576|0)>>>21)>>>0>(M=c+s|0)>>>0?t+1|0:t,W=t=t-((M>>>0<4293918720)-1|0)|0,e=(e=t>>>21|0)+G|0,e=(t=(2097151&t)<<11|(s=M- -1048576|0)>>>21)>>>0>(c=t+R|0)>>>0?e+1|0:e,G=(t=c)+(c=DA(j,x,-997805,-1))|0,t=w+e|0,t=c>>>0>G>>>0?t+1|0:t,m=e=F-(c=-2097152&D)|0,Q=D=h-((c>>>0>F>>>0)+P|0)|0,c=DA(v,X,136657,0),t=w+t|0,t=c>>>0>(h=c+G|0)>>>0?t+1|0:t,c=DA(e,D,-683901,-1),e=w+t|0,h=e=c>>>0>(G=c+h|0)>>>0?e+1|0:e,P=t=e-((G>>>0<4293918720)-1|0)|0,e=(2097151&t)<<11|(D=G- -1048576|0)>>>21,t=(t>>21)+y|0,Y=e=(t=e>>>0>(F=e+Y|0)>>>0?t+1|0:t)-((F>>>0<4293918720)-1|0)|0,R=(2097151&e)<<11|(y=F- -1048576|0)>>>21,e=(e>>21)+V|0,o=L=R+L|0,R=L>>>0>>0?e+1|0:e,n=F-(e=-2097152&y)|0,r=t-((e>>>0>F>>>0)+Y|0)|0,L=G-(t=-2097152&D)|0,V=h-((t>>>0>G>>>0)+P|0)|0,c=(t=DA(j,x,654183,0))+(M-(e=-2097152&s)|0)|0,e=w+(H-((e>>>0>M>>>0)+W|0)|0)|0,e=t>>>0>c>>>0?e+1|0:e,t=DA(v,X,-997805,-1),e=w+e|0,e=t>>>0>(c=t+c|0)>>>0?e+1|0:e,y=(t=c)+(c=DA(m,Q,136657,0))|0,t=w+e|0,Y=y,h=c>>>0>y>>>0?t+1|0:t,M=K-(t=-2097152&u)|0,F=k-((t>>>0>K>>>0)+O|0)|0,H=DA(d,0,-683901,-1),t=(e=a[A+35|0])>>>24|0,y=e<<8|(s=a[A+31|0]|a[A+32|0]<<8|a[A+33|0]<<16|a[A+34|0]<<24)>>>24,c=t,e=(t=a[A+36|0])>>>16|0,e|=c,c=w,c=(t=2097151&((1&e)<<31|(t=t<<16|y)>>>1))>>>0>(e=t+H|0)>>>0?c+1|0:c,y=(t=DA(_,0,654183,0))+e|0,e=w+c|0,e=t>>>0>y>>>0?e+1|0:e,c=DA(C,0,-997805,-1),t=w+e|0,t=c>>>0>(y=c+y|0)>>>0?t+1|0:t,e=DA(B,z,136657,0),t=w+t|0,D=c=e+y|0,y=e>>>0>c>>>0?t+1|0:t,t=DA(I,0,-683901,-1),e=w,e=t>>>0>(c=t+(s>>>4&2097151)|0)>>>0?e+1|0:e,s=(t=DA(d,0,136657,0))+c|0,c=w+e|0,c=t>>>0>s>>>0?c+1|0:c,t=DA(_,0,470296,0),e=w+c|0,e=t>>>0>(s=t+s|0)>>>0?e+1|0:e,s=(c=DA(C,0,654183,0))+s|0,t=w+e|0,e=DA(B,z,-997805,-1),t=w+(c>>>0>s>>>0?t+1|0:t)|0,H=t=e>>>0>(k=e+s|0)>>>0?t+1|0:t,f=e=t-((k>>>0<4293918720)-1|0)|0,c=(t=e>>21)+y|0,G=e=(c=(e=(2097151&e)<<11|(s=k- -1048576|0)>>>21)>>>0>(u=e+D|0)>>>0?c+1|0:c)-((u>>>0<4293918720)-1|0)|0,t=(t=e>>21)+F|0,P=t=(e=(y=(2097151&e)<<11|(D=u- -1048576|0)>>>21)+M|0)>>>0>>0?t+1|0:t,y=Y,Y=e,t=DA(e,t,-683901,-1),e=w+h|0,F=y=y+t|0,y=t>>>0>y>>>0?e+1|0:e,h=(t=DA(j,x,470296,0))+(b-(e=-2097152&p)|0)|0,e=w+(S-((2047&T)+(e>>>0>b>>>0)|0)|0)|0,e=t>>>0>h>>>0?e+1|0:e,p=(t=h)+(h=DA(v,X,654183,0))|0,t=w+e|0,t=h>>>0>p>>>0?t+1|0:t,h=DA(m,Q,-997805,-1),e=w+t|0,e=h>>>0>(p=h+p|0)>>>0?e+1|0:e,K=D=u-(t=-2097152&D)|0,i=h=c-((t>>>0>u>>>0)+G|0)|0,c=DA(Y,P,136657,0),t=w+e|0,t=c>>>0>(p=c+p|0)>>>0?t+1|0:t,c=DA(D,h,-683901,-1),e=w+t|0,h=e=c>>>0>(S=c+p|0)>>>0?e+1|0:e,G=t=e-((S>>>0<4293918720)-1|0)|0,e=(2097151&t)<<11|(D=S- -1048576|0)>>>21,t=(t>>21)+y|0,F=e=(t=e>>>0>(p=e+F|0)>>>0?t+1|0:t)-((p>>>0<4293918720)-1|0)|0,u=(2097151&e)<<11|(y=p- -1048576|0)>>>21,e=(e>>21)+V|0,O=M=u+L|0,M=u>>>0>M>>>0?e+1|0:e,T=p-(e=-2097152&y)|0,W=t-((e>>>0>p>>>0)+F|0)|0,L=S-(t=-2097152&D)|0,V=h-((t>>>0>S>>>0)+G|0)|0,h=DA(j,x,666643,0),t=(e=a[A+14|0])>>>24|0,y=e<<8|(G=a[A+10|0]|a[A+11|0]<<8|a[A+12|0]<<16|a[A+13|0]<<24)>>>24,c=t,e=(t=a[A+15|0])>>>16|0,e|=c,c=w,c=(t=2097151&((1&e)<<31|(t=t<<16|y)>>>1))>>>0>(e=t+h|0)>>>0?c+1|0:c,y=(t=e)+(e=DA(v,X,470296,0))|0,t=w+c|0,t=e>>>0>y>>>0?t+1|0:t,e=DA(m,Q,654183,0),t=w+t|0,t=e>>>0>(c=e+y|0)>>>0?t+1|0:t,y=(e=c)+(c=DA(Y,P,-997805,-1))|0,e=w+t|0,e=c>>>0>y>>>0?e+1|0:e,t=DA(K,i,136657,0),e=w+e|0,S=c=t+y|0,y=t>>>0>c>>>0?e+1|0:e,s=k-(t=-2097152&s)|0,h=H-((t>>>0>k>>>0)+f|0)|0,c=DA(I,0,136657,0),t=w,t=(e=(a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24)>>>7&2097151)>>>0>(c=e+c|0)>>>0?t+1|0:t,D=(e=c)+(c=DA(d,0,-997805,-1))|0,e=w+t|0,e=c>>>0>D>>>0?e+1|0:e,t=DA(g,q,-683901,-1),e=w+e|0,e=t>>>0>(c=t+D|0)>>>0?e+1|0:e,D=(t=DA(_,0,666643,0))+c|0,c=w+e|0,c=t>>>0>D>>>0?c+1|0:c,e=DA(C,0,470296,0),t=w+c|0,t=e>>>0>(D=e+D|0)>>>0?t+1|0:t,e=DA(B,z,654183,0),t=w+t|0,e=(J>>21)+(e>>>0>(c=e+D|0)>>>0?t+1|0:t)|0,u=e=(D=(2097151&J)<<11|U>>>21)>>>0>(U=D+c|0)>>>0?e+1|0:e,F=t=e-((U>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(p=U- -1048576|0)>>>21,t=(t>>21)+h|0,b=t=(e=D+s|0)>>>0>>0?t+1|0:t,J=e,e=DA(e,t,-683901,-1),t=w+y|0,D=c=e+S|0,y=e>>>0>c>>>0?t+1|0:t,t=DA(v,X,666643,0),e=w,e=t>>>0>(c=t+(G>>>4&2097151)|0)>>>0?e+1|0:e,t=DA(m,Q,470296,0),e=w+e|0,e=t>>>0>(c=t+c|0)>>>0?e+1|0:e,h=(t=DA(Y,P,654183,0))+c|0,c=w+e|0,c=t>>>0>h>>>0?c+1|0:c,e=DA(K,i,-997805,-1),t=w+c|0,t=e>>>0>(h=e+h|0)>>>0?t+1|0:t,e=DA(J,b,136657,0),t=w+t|0,H=t=e>>>0>(k=e+h|0)>>>0?t+1|0:t,x=e=t-((k>>>0<4293918720)-1|0)|0,t=D,D=(2097151&e)<<11|(s=k- -1048576|0)>>>21,e=(e>>21)+y|0,v=y=(e=(c=t+D|0)>>>0>>0?e+1|0:e)-((c>>>0<4293918720)-1|0)|0,t=(t=y>>21)+V|0,j=D=(y=(2097151&y)<<11|(h=c- -1048576|0)>>>21)+L|0,S=y>>>0>D>>>0?t+1|0:t,D=c,c=e,y=(U-(e=-2097152&p)|0)+(p=(2097151&l)<<11|N>>>21)|0,e=(u-((e>>>0>U>>>0)+F|0)|0)+(l>>21)|0,G=e=y>>>0

>>0?e+1|0:e,d=e=e-((y>>>0<4293918720)-1|0)|0,N=t=e>>21,t=DA(_=(2097151&e)<<11|(F=y- -1048576|0)>>>21,t,-683901,-1),c=w+c|0,c=t>>>0>(e=t+D|0)>>>0?c+1|0:c,q=e-(t=-2097152&h)|0,z=c-((t>>>0>e>>>0)+v|0)|0,t=DA(_,N,136657,0),e=H+w|0,X=(c=t+k|0)-(t=-2097152&s)|0,v=(e=c>>>0>>0?e+1|0:e)-((t>>>0>c>>>0)+x|0)|0,e=DA(m,Q,666643,0),c=w,c=(t=(a[A+7|0]|a[A+8|0]<<8|a[A+9|0]<<16|a[A+10|0]<<24)>>>7&2097151)>>>0>(e=t+e|0)>>>0?c+1|0:c,D=(t=DA(Y,P,470296,0))+e|0,e=w+c|0,e=t>>>0>D>>>0?e+1|0:e,t=DA(K,i,654183,0),e=w+e|0,e=t>>>0>(c=t+D|0)>>>0?e+1|0:e,D=(t=c)+(c=DA(J,b,-997805,-1))|0,t=w+e|0,p=D,D=c>>>0>D>>>0?t+1|0:t,H=DA(Y,P,666643,0),t=(e=a[A+6|0])>>>24|0,h=e<<8|(U=a[A+2|0]|a[A+3|0]<<8|a[A+4|0]<<16|a[A+5|0]<<24)>>>24,c=t,e=(t=a[A+7|0])>>>16|0,e=2097151&((3&(e|=c))<<30|(t=t<<16|h)>>>2),t=w,t=e>>>0>(c=e+H|0)>>>0?t+1|0:t,h=(e=DA(K,i,470296,0))+c|0,c=w+t|0,c=e>>>0>h>>>0?c+1|0:c,e=DA(J,b,654183,0),t=w+c|0,H=t=e>>>0>(u=e+h|0)>>>0?t+1|0:t,l=t=t-((u>>>0<4293918720)-1|0)|0,e=(c=t>>21)+D|0,k=t=(e=(t=(2097151&t)<<11|(s=u- -1048576|0)>>>21)>>>0>(h=t+p|0)>>>0?e+1|0:e)-((h>>>0<4293918720)-1|0)|0,p=(2097151&t)<<11|(D=h- -1048576|0)>>>21,t=(t>>21)+v|0,v=Y=p+X|0,p=p>>>0>Y>>>0?t+1|0:t,t=DA(_,N,-997805,-1),e=w+e|0,e=t>>>0>(c=t+h|0)>>>0?e+1|0:e,m=c-(t=-2097152&D)|0,P=e-((t>>>0>c>>>0)+k|0)|0,e=DA(_,N,654183,0),t=H+w|0,Y=(c=e+u|0)-(e=-2097152&s)|0,l=(t=c>>>0>>0?t+1|0:t)-((e>>>0>c>>>0)+l|0)|0,t=DA(K,i,666643,0),e=w,e=t>>>0>(c=t+(U>>>5&2097151)|0)>>>0?e+1|0:e,t=DA(J,b,470296,0),e=w+e|0,h=c=t+c|0,c=t>>>0>c>>>0?e+1|0:e,D=DA(J,b,666643,0),e=(t=a[A+2|0])<<16&2031616|a[0|A]|a[A+1|0]<<8,t=w,H=t=e>>>0>(k=D+e|0)>>>0?t+1|0:t,b=t=t-((k>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(s=k- -1048576|0)>>>21,t=(t>>21)+c|0,c=t=D>>>0>(u=D+h|0)>>>0?t+1|0:t,U=t=t-((u>>>0<4293918720)-1|0)|0,D=(2097151&t)<<11|(h=u- -1048576|0)>>>21,t=(t>>21)+l|0,D=D>>>0>(l=J=D+Y|0)>>>0?t+1|0:t,t=DA(_,N,470296,0),c=c+w|0,c=(e=t+u|0)>>>0>>0?c+1|0:c,u=e-(t=-2097152&h)|0,h=c-((t>>>0>e>>>0)+U|0)|0,e=DA(_,N,666643,0),t=w+(H-(((c=-2097152&s)>>>0>k>>>0)+b|0)|0)|0,e=(c=(t=e>>>0>(J=e+(k-c|0)|0)>>>0?t+1|0:t)>>21)+h|0,t=(t=(e=(t=(2097151&t)<<11|J>>>21)>>>0>(U=t+u|0)>>>0?e+1|0:e)>>21)+D|0,e=(e=(t=(e=(2097151&e)<<11|U>>>21)>>>0>(l=e+l|0)>>>0?t+1|0:t)>>21)+P|0,c=(t=(e=(t=(2097151&t)<<11|l>>>21)>>>0>(D=t+m|0)>>>0?e+1|0:e)>>21)+p|0,t=(e=(c=(e=(2097151&e)<<11|D>>>21)>>>0>(N=e+v|0)>>>0?c+1|0:c)>>21)+z|0,e=(c=(t=(c=(2097151&c)<<11|N>>>21)>>>0>(k=c+q|0)>>>0?t+1|0:t)>>21)+S|0,t=(t=(e=(t=(2097151&t)<<11|k>>>21)>>>0>(u=t+j|0)>>>0?e+1|0:e)>>21)+W|0,e=(e=(t=(e=(2097151&e)<<11|u>>>21)>>>0>(S=e+T|0)>>>0?t+1|0:t)>>21)+M|0,c=(t=(e=(t=(2097151&t)<<11|S>>>21)>>>0>(p=t+O|0)>>>0?e+1|0:e)>>21)+r|0,t=(e=(c=(e=(2097151&e)<<11|p>>>21)>>>0>(H=e+n|0)>>>0?c+1|0:c)>>21)+R|0,h=(F=y-(e=-2097152&F)|0)+((2097151&(t=(c=(2097151&c)<<11|H>>>21)>>>0>(s=c+o|0)>>>0?t+1|0:t))<<11|s>>>21)|0,t=(G-((e>>>0>y>>>0)+d|0)|0)+(t>>21)|0,F=e=(t=h>>>0>>0?t+1|0:t)>>21,J=(t=DA(M=(2097151&t)<<11|h>>>21,e,666643,0))+(e=2097151&J)|0,t=w,y=t=e>>>0>J>>>0?t+1|0:t,E[0|A]=J,E[A+1|0]=(255&t)<<24|J>>>8,t=2097151&U,e=DA(M,F,470296,0)+t|0,c=w,t=(y>>21)+(t>>>0>e>>>0?c+1|0:c)|0,t=(G=(2097151&y)<<11|J>>>21)>>>0>(U=G+e|0)>>>0?t+1|0:t,E[A+4|0]=(2047&t)<<21|U>>>11,e=t,c=U,E[A+3|0]=(7&t)<<29|c>>>3,E[A+2|0]=31&((65535&y)<<16|J>>>16)|c<<5,y=2097151&l,l=DA(M,F,654183,0)+y|0,t=w,U=(2097151&e)<<11|c>>>21,e=(e>>21)+(y=y>>>0>l>>>0?t+1|0:t)|0,t=e=(l=U+l|0)>>>0>>0?e+1|0:e,E[A+6|0]=(63&t)<<26|l>>>6,y=l,l=0,E[A+5|0]=l<<13|(1572864&c)>>>19|y<<2,c=2097151&D,D=DA(M,F,-997805,-1)+c|0,e=w,e=c>>>0>D>>>0?e+1|0:e,l=(2097151&(c=t))<<11|y>>>21,c=(t>>=21)+e|0,c=(D=l+D|0)>>>0>>0?c+1|0:c,E[A+9|0]=(511&c)<<23|D>>>9,E[A+8|0]=(1&c)<<31|D>>>1,e=0,E[A+7|0]=e<<18|(2080768&y)>>>14|D<<7,e=2097151&N,y=DA(M,F,136657,0)+e|0,t=w,t=e>>>0>y>>>0?t+1|0:t,N=(2097151&(e=c))<<11|D>>>21,e=t+(c=e>>21)|0,e=(y=N+y|0)>>>0>>0?e+1|0:e,E[A+12|0]=(4095&e)<<20|y>>>12,c=y,E[A+11|0]=(15&e)<<28|c>>>4,y=0,E[A+10|0]=y<<15|(1966080&D)>>>17|c<<4,y=2097151&k,D=DA(M,F,-683901,-1)+y|0,t=w,t=y>>>0>D>>>0?t+1|0:t,y=e,e=t+(e>>=21)|0,e=(y=(Y=D)+(D=(2097151&y)<<11|c>>>21)|0)>>>0>>0?e+1|0:e,E[A+14|0]=(127&e)<<25|y>>>7,D=0,E[A+13|0]=D<<12|(1048576&c)>>>20|y<<1,t=e>>21,c=(e=(2097151&e)<<11|y>>>21)>>>0>(D=e+(2097151&u)|0)>>>0?t+1|0:t,E[A+17|0]=(1023&c)<<22|D>>>10,E[A+16|0]=(3&c)<<30|D>>>2,e=0,E[A+15|0]=e<<17|(2064384&y)>>>15|D<<6,t=c>>21,t=(e=(2097151&c)<<11|D>>>21)>>>0>(c=e+(2097151&S)|0)>>>0?t+1|0:t,E[A+20|0]=(8191&t)<<19|c>>>13,E[A+19|0]=(31&t)<<27|c>>>5,y=(e=2097151&p)+(p=(2097151&t)<<11|c>>>21)|0,e=t>>21,e=y>>>0

>>0?e+1|0:e,p=y,E[A+21|0]=y,S=0,E[A+18|0]=S<<14|(1835008&D)>>>18|c<<3,E[A+22|0]=(255&e)<<24|y>>>8,c=e>>21,c=(y=(D=(2097151&e)<<11|y>>>21)+(2097151&H)|0)>>>0>>0?c+1|0:c,E[A+25|0]=(2047&c)<<21|y>>>11,E[A+24|0]=(7&c)<<29|y>>>3,E[A+23|0]=31&((65535&e)<<16|p>>>16)|y<<5,t=c>>21,t=(e=(2097151&c)<<11|y>>>21)>>>0>(c=e+(2097151&s)|0)>>>0?t+1|0:t,E[A+27|0]=(63&t)<<26|c>>>6,D=0,E[A+26|0]=D<<13|(1572864&y)>>>19|c<<2,e=t>>21,e=(t=(y=(2097151&t)<<11|c>>>21)+(2097151&h)|0)>>>0>>0?e+1|0:e,E[A+31|0]=(131071&e)<<15|t>>>17,E[A+30|0]=(511&e)<<23|t>>>9,E[A+29|0]=(1&e)<<31|t>>>1,y=0,E[A+28|0]=y<<18|(2080768&c)>>>14|t<<7}function k(A,I,g,C,B,Q){var i,n=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0,p=0,k=0,S=0,H=0,G=0,J=0,N=0,Y=0,P=0,v=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0;for(D=i=D-592|0,S=-1,H=A+32|0,k=32,G=1;p=a[2672+(f=k-1|0)|0],t=(f=((e=a[f+H|0])^p)-1>>8&G)&(y=a[H+(k=k-2|0)|0])-(c=a[k+2672|0])>>8|255&(e-p>>>8&G|t),G=f&(c^y)-1>>8,k;);if(255&t&&!(aA(A)|!(((127&(-1^a[B+31|0])|a[B+1|0]&a[B+2|0]&a[B+3|0]&a[B+4|0]&a[B+5|0]&a[B+6|0]&a[B+7|0]&a[B+8|0]&a[B+9|0]&a[B+10|0]&a[B+11|0]&a[B+12|0]&a[B+13|0]&a[B+14|0]&a[B+15|0]&a[B+16|0]&a[B+17|0]&a[B+18|0]&a[B+19|0]&a[B+20|0]&a[B+21|0]&a[B+22|0]&a[B+23|0]&a[B+24|0]&a[B+25|0]&a[B+26|0]&a[B+27|0]&a[B+28|0]&a[B+30|0]&a[B+29|0]^255)-1&236-a[0|B]^-1)>>>8&1)||aA(B)||U(i+128|0,B))){for(EA(f=i+384|0),Q&&m(f,34768,34,0),m(f,A,32,0),m(f,B,32,0),m(f,I,g,C),M(f,g=i+320|0),u(g),Q=i+8|0,C=i+128|0,B=0,I=0,D=n=D-2272|0;e=g+(B>>>3|0)|0,E[(f=n+2016|0)+B|0]=a[0|e]>>>(6&B)&1,E[(t=f)+(f=1|B)|0]=a[0|e]>>>(7&f)&1,256!=(0|(B=B+2|0)););for(;;){I=(g=I)+1|0;A:if(!(!a[0|(t=g+(n+2016|0)|0)]|g>>>0>254)){I:if(B=E[0|(c=(n+2016|0)+I|0)])if((0|(B=(e=B<<1)+(f=E[0|t])|0))<=15)E[0|t]=B,E[0|c]=0;else{if((0|(B=f-e|0))<-15)break A;for(E[0|t]=B,B=I;;){if(!a[0|(f=(n+2016|0)+B|0)]){E[0|f]=1;break I}if(E[0|f]=0,f=B>>>0<255,B=B+1|0,!f)break}}if(!(g>>>0>253)){I:if(f=E[0|(y=(B=g+2|0)+(n+2016|0)|0)])if((0|(f=(c=f<<2)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>252)){I:if(f=E[0|(y=(B=g+3|0)+(n+2016|0)|0)])if((0|(f=(c=f<<3)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>251)){I:if(f=E[0|(y=(B=g+4|0)+(n+2016|0)|0)])if((0|(f=(c=f<<4)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>250)){I:if(f=E[0|(y=(B=g+5|0)+(n+2016|0)|0)])if((0|(f=(c=f<<5)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+2016|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>249)&&(g=E[0|(c=(B=g+6|0)+(n+2016|0)|0)]))if((0|(g=(e=g<<6)+(f=E[0|t])|0))>=16){if((0|(g=f-e|0))<-15)break A;for(E[0|t]=g;;){if(a[0|(g=(n+2016|0)+B|0)]){if(E[0|g]=0,g=B>>>0<255,B=B+1|0,g)continue;break A}break}E[0|g]=1}else E[0|t]=g,E[0|c]=0}}}}}if(256==(0|I))break}for(B=0;g=H+(B>>>3|0)|0,E[(I=n+1760|0)+B|0]=a[0|g]>>>(6&B)&1,E[(f=I)+(I=1|B)|0]=a[0|g]>>>(7&I)&1,256!=(0|(B=B+2|0)););for(I=0;;){I=(g=I)+1|0;A:if(!(!a[0|(t=g+(n+1760|0)|0)]|g>>>0>254)){I:if(B=E[0|(c=(n+1760|0)+I|0)])if((0|(B=(e=B<<1)+(f=E[0|t])|0))<=15)E[0|t]=B,E[0|c]=0;else{if((0|(B=f-e|0))<-15)break A;for(E[0|t]=B,B=I;;){if(!a[0|(f=(n+1760|0)+B|0)]){E[0|f]=1;break I}if(E[0|f]=0,f=B>>>0<255,B=B+1|0,!f)break}}if(!(g>>>0>253)){I:if(f=E[0|(y=(B=g+2|0)+(n+1760|0)|0)])if((0|(f=(c=f<<2)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>252)){I:if(f=E[0|(y=(B=g+3|0)+(n+1760|0)|0)])if((0|(f=(c=f<<3)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>251)){I:if(f=E[0|(y=(B=g+4|0)+(n+1760|0)|0)])if((0|(f=(c=f<<4)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>250)){I:if(f=E[0|(y=(B=g+5|0)+(n+1760|0)|0)])if((0|(f=(c=f<<5)+(e=E[0|t])|0))>=16){if((0|(f=e-c|0))<-15)break A;for(E[0|t]=f;;){if(a[0|(f=(n+1760|0)+B|0)]){if(E[0|f]=0,f=B>>>0<255,B=B+1|0,f)continue;break I}break}E[0|f]=1}else E[0|t]=f,E[0|y]=0;if(!(g>>>0>249)&&(g=E[0|(c=(B=g+6|0)+(n+1760|0)|0)]))if((0|(g=(e=g<<6)+(f=E[0|t])|0))>=16){if((0|(g=f-e|0))<-15)break A;for(E[0|t]=g;;){if(a[0|(g=(n+1760|0)+B|0)]){if(E[0|g]=0,g=B>>>0<255,B=B+1|0,g)continue;break A}break}E[0|g]=1}else E[0|t]=g,E[0|c]=0}}}}}if(256==(0|I))break}for(V(S=n+480|0,C),p=o[C+8>>2],t=o[C+12>>2],y=o[C+16>>2],c=o[C+20>>2],e=o[C+24>>2],f=o[C+28>>2],B=o[C>>2],g=o[C+4>>2],I=o[C+36>>2],o[n+192>>2]=o[C+32>>2],o[n+196>>2]=I,o[n+184>>2]=e,o[n+188>>2]=f,o[n+176>>2]=y,o[n+180>>2]=c,o[n+168>>2]=p,o[n+172>>2]=t,o[n+160>>2]=B,o[n+164>>2]=g,p=o[C+40>>2],t=o[C+44>>2],y=o[C+48>>2],c=o[C+52>>2],e=o[C+56>>2],f=o[C+60>>2],B=o[(I=C- -64|0)>>2],g=o[I+4>>2],I=o[C+76>>2],o[n+232>>2]=o[C+72>>2],o[n+236>>2]=I,o[n+224>>2]=B,o[n+228>>2]=g,o[n+216>>2]=e,o[n+220>>2]=f,o[n+208>>2]=y,o[n+212>>2]=c,o[n+200>>2]=p,o[n+204>>2]=t,p=o[C+80>>2],t=o[C+84>>2],y=o[C+88>>2],c=o[C+92>>2],e=o[C+96>>2],f=o[C+100>>2],B=o[C+104>>2],g=o[C+108>>2],I=o[C+116>>2],o[n+272>>2]=o[C+112>>2],o[n+276>>2]=I,o[n+264>>2]=B,o[n+268>>2]=g,o[n+256>>2]=e,o[n+260>>2]=f,o[n+248>>2]=y,o[n+252>>2]=c,o[n+240>>2]=p,o[n+244>>2]=t,l(C=n+320|0,g=n+160|0),F(n,C,w=n+440|0),F(n+40|0,h=n+360|0,s=n+400|0),F(n+80|0,s,w),F(n+120|0,C,h),_(C,n,S),F(g,C,w),F(N=n+200|0,h,s),F(Y=n+240|0,s,w),F(J=n+280|0,C,h),V(I=n+640|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+800|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+960|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1120|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1280|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(I=n+1440|0,g),_(C,n,I),F(g,C,w),F(N,h,s),F(Y,s,w),F(J,C,h),V(n+1600|0,g),o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+16>>2]=0,o[Q+20>>2]=0,o[Q+8>>2]=0,o[Q+12>>2]=0,o[Q>>2]=0,o[Q+4>>2]=0,o[Q+44>>2]=0,o[Q+48>>2]=0,o[(z=Q+40|0)>>2]=1,o[Q+52>>2]=0,o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+64>>2]=0,o[Q+68>>2]=0,o[Q+72>>2]=0,o[Q+84>>2]=0,o[Q+88>>2]=0,o[Q+76>>2]=0,o[Q+80>>2]=1,o[Q+92>>2]=0,o[Q+96>>2]=0,o[Q+100>>2]=0,o[Q+104>>2]=0,o[Q+108>>2]=0,o[Q+112>>2]=0,o[Q+116>>2]=0,IA=Q+80|0,I=255;;){A:{I:{if(!(a[(n+2016|0)+I|0]|a[(n+1760|0)+I|0])){if(!(a[(g=I-1|0)+(n+2016|0)|0]|a[g+(n+1760|0)|0]))break I;I=g}if((0|I)<0)break A;for(;l(n+320|0,Q),(0|(B=E[(g=I)+(n+2016|0)|0]))>0?(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),_(C,I,(n+480|0)+r((254&B)>>>1|0,160)|0)):(0|B)>=0||(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),b(C,I,(n+480|0)+r((0-B&254)>>>1|0,160)|0)),(0|(X=E[g+(n+1760|0)|0]))>0?(F(I=n+160|0,C=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,C,h),K(C,I,r((254&X)>>>1|0,120)+1488|0)):(0|X)>=0||(F(n+160|0,q=n+320|0,w),F(N,h,s),F(Y,s,w),F(J,q,h),P=o[n+160>>2],v=o[n+200>>2],d=o[n+164>>2],L=o[n+204>>2],R=o[n+168>>2],x=o[n+208>>2],j=o[n+172>>2],k=o[n+212>>2],H=o[n+176>>2],G=o[n+216>>2],S=o[n+180>>2],p=o[n+220>>2],t=o[n+184>>2],y=o[n+224>>2],c=o[n+188>>2],e=o[n+228>>2],f=o[n+192>>2],B=o[n+232>>2],C=o[n+236>>2],I=o[n+196>>2],o[n+396>>2]=C-I,o[n+392>>2]=B-f,o[n+388>>2]=e-c,o[n+384>>2]=y-t,o[n+380>>2]=p-S,o[n+376>>2]=G-H,o[n+372>>2]=k-j,o[n+368>>2]=x-R,o[n+364>>2]=L-d,o[n+360>>2]=v-P,o[n+356>>2]=I+C,o[n+352>>2]=B+f,o[n+348>>2]=e+c,o[n+344>>2]=t+y,o[n+340>>2]=p+S,o[n+336>>2]=H+G,o[n+332>>2]=k+j,o[n+328>>2]=R+x,o[n+324>>2]=d+L,o[n+320>>2]=P+v,F(s,q,40+(I=r((0-X&254)>>>1|0,120)+1488|0)|0),F(h,h,I),F(w,I+80|0,J),gA=o[n+276>>2],CA=o[n+272>>2],X=o[n+268>>2],q=o[n+264>>2],t=o[n+260>>2],y=o[n+256>>2],c=o[n+252>>2],e=o[n+248>>2],f=o[n+244>>2],B=o[n+240>>2],O=o[n+360>>2],T=o[n+400>>2],W=o[n+364>>2],Z=o[n+404>>2],$=o[n+368>>2],AA=o[n+408>>2],P=o[n+372>>2],v=o[n+412>>2],d=o[n+376>>2],L=o[n+416>>2],R=o[n+380>>2],x=o[n+420>>2],j=o[n+384>>2],k=o[n+424>>2],H=o[n+388>>2],G=o[n+428>>2],S=o[n+392>>2],p=o[n+432>>2],C=o[n+396>>2],I=o[n+436>>2],o[n+396>>2]=C+I,o[n+392>>2]=p+S,o[n+388>>2]=H+G,o[n+384>>2]=k+j,o[n+380>>2]=R+x,o[n+376>>2]=d+L,o[n+372>>2]=P+v,o[n+368>>2]=$+AA,o[n+364>>2]=W+Z,o[n+360>>2]=O+T,o[n+356>>2]=I-C,o[n+352>>2]=p-S,o[n+348>>2]=G-H,o[n+344>>2]=k-j,o[n+340>>2]=x-R,o[n+336>>2]=L-d,o[n+332>>2]=v-P,o[n+328>>2]=AA-$,o[n+324>>2]=Z-W,o[n+320>>2]=T-O,P=B<<1,v=o[n+440>>2],o[n+400>>2]=P-v,d=f<<1,L=o[n+444>>2],o[n+404>>2]=d-L,R=e<<1,x=o[n+448>>2],o[n+408>>2]=R-x,j=c<<1,k=o[n+452>>2],o[n+412>>2]=j-k,H=y<<1,G=o[n+456>>2],o[n+416>>2]=H-G,S=t<<1,p=o[n+460>>2],o[n+420>>2]=S-p,t=q<<1,y=o[n+464>>2],o[n+424>>2]=t-y,c=X<<1,e=o[n+468>>2],o[n+428>>2]=c-e,f=CA<<1,B=o[n+472>>2],o[n+432>>2]=f-B,C=gA<<1,I=o[n+476>>2],o[n+436>>2]=C-I,o[n+440>>2]=P+v,o[n+444>>2]=d+L,o[n+448>>2]=R+x,o[n+452>>2]=k+j,o[n+456>>2]=H+G,o[n+460>>2]=p+S,o[n+464>>2]=t+y,o[n+468>>2]=e+c,o[n+472>>2]=B+f,o[n+476>>2]=I+C),F(Q,n+320|0,w),F(z,h,s),F(IA,s,w),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}D=n+2272|0,uA(I=i+288|0,Q),BA=-1,QA=cA(I,A),S=((0|A)==(0|I)?BA:QA)|oA(A,I,32)}return D=i+592|0,S}function F(A,I,g){var C,B,Q,i,E,a,n,f,t,e,c,y,D,h,s,p,u,k,F,l,S,H,M,G,U,J,N,Y,b,_,K,P,v,m,d,L,R,x,j,X,q,z,V,O,T,W,Z,$,AA,IA,gA,CA,BA,QA,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0,SA=0,HA=0,MA=0,GA=0,UA=0;iA=DA(C=o[g+4>>2],e=C>>31,kA=(p=o[I+20>>2])<<1,K=kA>>31),oA=w,EA=(hA=DA(pA=o[g>>2],Q=pA>>31,B=o[I+24>>2],i=B>>31))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,eA=DA(E=o[g+8>>2],D=E>>31,hA=o[I+16>>2],a=hA>>31),oA=w+iA|0,oA=(EA=eA+EA|0)>>>0>>0?oA+1|0:oA,iA=(eA=DA(c=o[g+12>>2],u=c>>31,G=(k=o[I+12>>2])<<1,P=G>>31))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(sA=DA(h=o[g+16>>2],U=h>>31,eA=o[I+8>>2],n=eA>>31))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(F=o[g+20>>2],v=F>>31,J=(l=o[I+4>>2])<<1,m=J>>31),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,W=tA=o[g+24>>2],oA=(cA=DA(tA,O=tA>>31,sA=o[I>>2],f=sA>>31))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,d=o[g+28>>2],iA=(cA=DA(wA=r(d,19),S=wA>>31,N=(H=o[I+36>>2])<<1,L=N>>31))+oA|0,oA=w+EA|0,oA=iA>>>0>>0?oA+1|0:oA,$=o[g+32>>2],EA=(fA=DA(aA=r($,19),s=aA>>31,cA=o[I+32>>2],t=cA>>31))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,Z=o[g+36>>2],g=DA(fA=r(Z,19),y=fA>>31,Y=(M=o[I+28>>2])<<1,R=Y>>31),iA=w+iA|0,nA=I=g+EA|0,g=I>>>0>>0?iA+1|0:iA,I=DA(hA,a,C,e),iA=w,EA=DA(pA,Q,p,x=p>>31),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(E,D,k,j=k>>31),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(eA,n,c,u),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(h,U,l,X=l>>31),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(sA,f,F,v),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(tA=r(tA,19),b=tA>>31,H,q=H>>31),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(cA,t,wA,S),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(aA,s,M,z=M>>31),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(fA,y,B,i),iA=w+iA|0,MA=I=EA+I|0,lA=I>>>0>>0?iA+1|0:iA,I=DA(C,e,G,P),iA=w,EA=DA(pA,Q,hA,a),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(eA,n,E,D),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(c,u,J,m),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(sA,f,h,U),iA=w+EA|0,iA=(I=oA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(_=r(F,19),V=_>>31,N,L),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(cA,t,tA,b),iA=w+iA|0,iA=(I=EA+I|0)>>>0>>0?iA+1|0:iA,EA=DA(wA,S,Y,R),oA=w+iA|0,oA=(I=EA+I|0)>>>0>>0?oA+1|0:oA,iA=DA(aA,s,B,i),EA=w+oA|0,EA=(I=iA+I|0)>>>0>>0?EA+1|0:EA,oA=DA(fA,y,kA,K),iA=w+EA|0,AA=I=oA+I|0,IA=iA=I>>>0>>0?iA+1|0:iA,gA=I=I+33554432|0,CA=iA=I>>>0<33554432?iA+1|0:iA,oA=(67108863&iA)<<6|I>>>26,iA=(iA>>26)+lA|0,MA=I=oA+MA|0,iA=I>>>0>>0?iA+1|0:iA,BA=I=I+16777216|0,iA=g+(EA=(oA=I>>>0<16777216?iA+1|0:iA)>>25)|0,iA=(I=(oA=(33554431&oA)<<7|I>>>25)+nA|0)>>>0>>0?iA+1|0:iA,FA=g=(EA=I)+33554432|0,I=iA=g>>>0<33554432?iA+1|0:iA,o[A+24>>2]=EA-(-67108864&g),g=DA(C,e,J,m),iA=w,EA=DA(pA,Q,eA,n),oA=w+iA|0,oA=(g=EA+g|0)>>>0>>0?oA+1|0:oA,EA=(iA=g)+(g=DA(sA,f,E,D))|0,iA=w+oA|0,iA=g>>>0>EA>>>0?iA+1|0:iA,oA=DA(g=r(c,19),SA=g>>31,N,L),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(nA=DA(cA,t,lA=r(h,19),T=lA>>31))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,nA=DA(Y,R,_,V),iA=w+EA|0,iA=(oA=nA+oA|0)>>>0>>0?iA+1|0:iA,EA=(nA=DA(B,i,tA,b))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,nA=DA(wA,S,kA,K),iA=w+oA|0,iA=(EA=nA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(aA,s,hA,a),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(nA=DA(fA,y,G,P))+EA|0,EA=w+iA|0,yA=oA,GA=oA>>>0>>0?EA+1|0:EA,iA=DA(sA,f,C,e),EA=w,oA=(nA=DA(pA,Q,l,X))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,nA=EA=r(E,19),EA=(rA=DA(EA,HA=EA>>31,H,q))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,rA=DA(cA,t,g,SA),iA=w+oA|0,iA=(EA=rA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(lA,T,M,z),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=(rA=DA(B,i,_,V))+EA|0,EA=w+iA|0,EA=oA>>>0>>0?EA+1|0:EA,rA=DA(tA,b,p,x),iA=w+EA|0,iA=(oA=rA+oA|0)>>>0>>0?iA+1|0:iA,EA=(rA=DA(hA,a,wA,S))+oA|0,oA=w+iA|0,oA=EA>>>0>>0?oA+1|0:oA,rA=DA(aA,s,k,j),iA=w+oA|0,iA=(EA=rA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(fA,y,eA,n),iA=w+iA|0,UA=EA=oA+EA|0,rA=EA>>>0>>0?iA+1|0:iA,iA=DA(iA=r(C,19),iA>>31,N,L),EA=w,oA=DA(pA,Q,sA,f),EA=w+EA|0,EA=(iA=oA+iA|0)>>>0>>0?EA+1|0:EA,oA=(nA=DA(cA,t,nA,HA))+iA|0,iA=w+EA|0,g=(EA=DA(g,SA,Y,R))+oA|0,oA=w+(oA>>>0>>0?iA+1|0:iA)|0,oA=g>>>0>>0?oA+1|0:oA,EA=DA(B,i,lA,T),iA=w+oA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(kA,K,_,V),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(hA,a,tA,b),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,oA=DA(wA,S,G,P),iA=w+EA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(aA,s,eA,n),oA=w+iA|0,oA=(g=EA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(fA,y,J,m),iA=w+oA|0,nA=g=EA+g|0,SA=iA=g>>>0>>0?iA+1|0:iA,HA=g=g+33554432|0,QA=iA=g>>>0<33554432?iA+1|0:iA,EA=(oA=iA>>26)+rA|0,rA=g=(iA=(67108863&iA)<<6|g>>>26)+UA|0,iA=EA=g>>>0>>0?EA+1|0:EA,UA=g=g+16777216|0,EA=(33554431&(iA=g>>>0<16777216?iA+1|0:iA))<<7|g>>>25,iA=(iA>>25)+GA|0,iA=(g=EA+yA|0)>>>0>>0?iA+1|0:iA,GA=EA=(oA=g)+33554432|0,g=iA=EA>>>0<33554432?iA+1|0:iA,o[A+8>>2]=oA-(-67108864&EA),iA=DA(B,i,C,e),oA=w,EA=(yA=DA(pA,Q,M,z))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,oA=DA(E,D,p,x),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,oA=DA(hA,a,c,u),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,yA=DA(h,U,k,j),oA=w+iA|0,oA=(EA=yA+EA|0)>>>0>>0?oA+1|0:oA,iA=(yA=DA(eA,n,F,v))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(yA=DA(l,X,W,O))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(sA,f,d,yA=d>>31),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(aA,s,H,q),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,uA=DA(fA,y,cA,t),oA=w+iA|0,iA=I>>26,I=(FA=(67108863&I)<<6|FA>>>26)+(EA=uA+EA|0)|0,EA=iA+(EA>>>0>>0?oA+1|0:oA)|0,iA=(oA=I)>>>0>>0?EA+1|0:EA,FA=EA=oA+16777216|0,I=iA=EA>>>0<16777216?iA+1|0:iA,o[A+28>>2]=oA-(-33554432&EA),iA=DA(eA,n,C,e),EA=w,uA=DA(pA,Q,k,j),oA=w+EA|0,oA=(iA=uA+iA|0)>>>0>>0?oA+1|0:oA,uA=DA(E,D,l,X),EA=w+oA|0,EA=(iA=uA+iA|0)>>>0>>0?EA+1|0:EA,oA=(uA=DA(sA,f,c,u))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(lA,T,H,q),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(cA,t,_,V),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,EA=(tA=DA(tA,b,M,z))+EA|0,oA=w+iA|0,iA=(wA=DA(B,i,wA,S))+EA|0,EA=w+(EA>>>0>>0?oA+1|0:oA)|0,oA=(aA=DA(aA,s,p,x))+iA|0,iA=w+(iA>>>0>>0?EA+1|0:EA)|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(fA,y,hA,a),iA=w+iA|0,aA=EA=EA+oA|0,iA=(iA=EA>>>0>>0?iA+1|0:iA)+(EA=g>>26)|0,oA=(EA=g=aA+(oA=(67108863&g)<<6|GA>>>26)|0)>>>0>>0?iA+1|0:iA,wA=iA=EA+16777216|0,g=oA=iA>>>0<16777216?oA+1|0:oA,o[A+12>>2]=EA-(-33554432&iA),iA=DA(C,e,Y,R),oA=w,EA=(aA=DA(pA,Q,cA,t))+iA|0,iA=w+oA|0,iA=EA>>>0>>0?iA+1|0:iA,oA=DA(B,i,E,D),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,aA=DA(c,u,kA,K),oA=w+iA|0,oA=(EA=aA+EA|0)>>>0>>0?oA+1|0:oA,iA=(aA=DA(hA,a,h,U))+EA|0,EA=w+oA|0,EA=iA>>>0>>0?EA+1|0:EA,oA=(aA=DA(G,P,F,v))+iA|0,iA=w+EA|0,iA=oA>>>0>>0?iA+1|0:iA,EA=oA,oA=DA(eA,n,W,O),iA=w+iA|0,iA=(EA=EA+oA|0)>>>0>>0?iA+1|0:iA,oA=DA(d,yA,J,m),iA=w+iA|0,iA=(EA=oA+EA|0)>>>0>>0?iA+1|0:iA,EA=(kA=DA(sA,f,aA=$,tA=aA>>31))+EA|0,oA=w+iA|0,iA=(fA=DA(fA,y,N,L))+EA|0,EA=w+(EA>>>0>>0?oA+1|0:oA)|0,EA=iA>>>0>>0?EA+1|0:EA,fA=iA,iA=(iA=I>>25)+EA|0,iA=(I=fA+(oA=(33554431&I)<<7|FA>>>25)|0)>>>0>>0?iA+1|0:iA,fA=EA=(oA=I)+33554432|0,I=iA=EA>>>0<33554432?iA+1|0:iA,o[A+32>>2]=oA-(-67108864&EA),EA=g>>25,g=(wA=(33554431&g)<<7|wA>>>25)+(AA-(iA=-67108864&gA)|0)|0,iA=EA+(IA-((iA>>>0>AA>>>0)+CA|0)|0)|0,iA=g>>>0>>0?iA+1|0:iA,FA=iA=(67108863&(iA=(g=(EA=g)+33554432|0)>>>0<33554432?iA+1|0:iA))<<6|g>>>26,iA=iA+(oA=MA-(-33554432&BA)|0)|0,o[A+20>>2]=iA,o[A+16>>2]=EA-(-67108864&g),g=DA(cA,t,C,e),iA=w,EA=DA(pA,Q,H,q),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(E,D,M,z),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,iA=DA(B,i,c,u),oA=w+EA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(h,U,p,x),iA=w+oA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(hA,a,F,v),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,EA=DA(k,j,W,O),iA=w+iA|0,iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA,oA=DA(eA,n,d,yA),EA=w+iA|0,EA=(g=oA+g|0)>>>0>>0?EA+1|0:EA,iA=DA(aA,tA,l,X),oA=w+EA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,EA=DA(sA,f,Z,Z>>31),iA=w+oA|0,iA=(iA=(g=EA+g|0)>>>0>>0?iA+1|0:iA)+(EA=I>>26)|0,iA=(I=(oA=g)+(g=(67108863&I)<<6|fA>>>26)|0)>>>0>>0?iA+1|0:iA,iA=(I=(g=I)+16777216|0)>>>0<16777216?iA+1|0:iA,o[A+36>>2]=g-(-33554432&I),oA=rA-(-33554432&UA)|0,EA=nA-(g=-67108864&HA)|0,pA=SA-((g>>>0>nA>>>0)+QA|0)|0,I=(g=DA((33554431&(g=iA))<<7|I>>>25,iA>>=25,19,0))+EA|0,EA=w+pA|0,iA=I>>>0>>0?EA+1|0:EA,EA=iA=(67108863&(iA=(I=(g=I)+33554432|0)>>>0<33554432?iA+1|0:iA))<<6|I>>>26,iA=iA+oA|0,o[A+4>>2]=iA,o[A>>2]=g-(-67108864&I)}function l(A,I){var g,C,B,Q,i,E,a,n,f,t,e,c,y,h,s,p,u,k,F,l,H,M,G,U,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0;D=g=D-48|0,S(A,I),S(A+80|0,I+40|0),J=DA(x=(W=o[I+92>>2])<<1,i=x>>31,R=(b=o[I+84>>2])<<1,C=R>>31),Y=w,BA=j=o[I+88>>2],N=(L=DA(j,q=j>>31,j,q))+J|0,J=w+Y|0,J=N>>>0>>0?J+1|0:J,Y=(m=DA(P=o[I+96>>2],E=P>>31,L=(_=o[I+80>>2])<<1,B=L>>31))+N|0,N=w+J|0,N=Y>>>0>>0?N+1|0:N,IA=o[I+108>>2],m=DA(d=r(IA,38),e=d>>31,IA,h=IA>>31),J=w+N|0,J=(Y=m+Y|0)>>>0>>0?J+1|0:J,v=Y,Z=o[I+112>>2],Y=DA(K=r(Z,19),a=K>>31,N=(z=o[I+104>>2])<<1,N>>31),J=w+J|0,J=(N=v+Y|0)>>>0>>0?J+1|0:J,iA=o[I+116>>2],Y=($=DA(m=r(iA,38),Q=m>>31,X=(V=o[I+100>>2])<<1,f=X>>31))+N|0,N=w+J|0,EA=J=(Y>>>0<$>>>0?N+1|0:N)<<1|Y>>>31,oA=Y=33554432+(s=Y<<1)|0,aA=J=Y>>>0<33554432?J+1|0:J,gA=(67108863&J)<<6|Y>>>26,O=J>>26,J=DA(R,C,P,E),N=w,Y=DA(j<<=1,t=j>>31,W,p=W>>31),N=w+N|0,N=(J=Y+J|0)>>>0>>0?N+1|0:N,Y=($=DA(V,c=V>>31,L,B))+J|0,J=w+N|0,J=Y>>>0<$>>>0?J+1|0:J,N=Y,Y=DA(K,a,$=IA<<1,u=$>>31),J=w+J|0,J=(N=N+Y|0)>>>0>>0?J+1|0:J,Y=DA(m,Q,z,n=z>>31),J=w+J|0,J=(N=Y+N|0)>>>0>>0?J+1|0:J,Y=gA,gA=N<<1,N=(J<<1|N>>>31)+O|0,N=(Y=Y+gA|0)>>>0>>0?N+1|0:N,gA=Y,nA=Y=Y+16777216|0,v=(33554431&(N=Y>>>0<16777216?N+1|0:N))<<7|Y>>>25,O=N>>25,J=DA(x,i,W,p),Y=w,N=(T=DA(P,E,j,t))+J|0,J=w+Y|0,J=N>>>0>>0?J+1|0:J,Y=DA(R,C,X,f),J=w+J|0,J=(N=Y+N|0)>>>0>>0?J+1|0:J,Y=(T=DA(L,B,z,n))+N|0,N=w+J|0,N=Y>>>0>>0?N+1|0:N,J=Y,Y=DA(K,a,Z,y=Z>>31),N=w+N|0,N=(J=J+Y|0)>>>0>>0?N+1|0:N,Y=(T=DA(m,Q,$,u))+J|0,J=w+N|0,N=(Y>>>0>>0?J+1|0:J)<<1|Y>>>31,Y=(J=v)+(v=Y<<1)|0,J=N+O|0,J=Y>>>0>>0?J+1|0:J,O=Y,T=N=Y+33554432|0,Y=J=N>>>0<33554432?J+1|0:J,o[A+144>>2]=O-(-67108864&N),O=DA(J=r(V,38),J>>31,V,c),v=w,_=DA(J=_,N=J>>31,J,N),J=w+v|0,J=(N=_+O|0)>>>0<_>>>0?J+1|0:J,v=DA(_=r(z,19),k=_>>31,O=P<<1,F=O>>31),J=w+J|0,J=(N=v+N|0)>>>0>>0?J+1|0:J,v=DA(x,i,d,e),J=w+J|0,J=(N=v+N|0)>>>0>>0?J+1|0:J,v=(rA=DA(K,a,j,t))+N|0,N=w+J|0,N=v>>>0>>0?N+1|0:N,J=v,v=DA(R,C,m,Q),N=w+N|0,N=((J=J+v|0)>>>0>>0?N+1|0:N)<<1,v=J,rA=J=N|J>>>31,M=v=33554432+(l=v<<1)|0,G=J=v>>>0<33554432?J+1|0:J,AA=(67108863&J)<<6|v>>>26,v=J>>26,J=DA(_,k,X,f),CA=w,QA=b,N=(b=DA(L,B,b,H=b>>31))+J|0,J=w+CA|0,J=N>>>0>>0?J+1|0:J,b=(CA=DA(P,E,d,e))+N|0,N=w+J|0,N=b>>>0>>0?N+1|0:N,CA=DA(K,a,x,i),J=w+N|0,J=(b=CA+b|0)>>>0>>0?J+1|0:J,N=b,b=DA(m,Q,BA,q),J=w+J|0,J=((N=N+b|0)>>>0>>0?J+1|0:J)<<1,b=N,N=(N=J|N>>>31)+v|0,v=b=(J=b<<1)+AA|0,J=N=J>>>0>b>>>0?N+1|0:N,CA=b=b+16777216|0,U=(33554431&(J=b>>>0<16777216?J+1|0:J))<<7|b>>>25,AA=J>>25,J=DA(L,B,BA,q),b=w,N=(QA=DA(R,C,QA,H))+J|0,J=w+b|0,J=N>>>0>>0?J+1|0:J,b=DA(_,k,z,n),J=w+J|0,J=(N=b+N|0)>>>0>>0?J+1|0:J,b=(_=DA(X,f,d,e))+N|0,N=w+J|0,N=b>>>0<_>>>0?N+1|0:N,_=DA(K,a,O,F),J=w+N|0,J=(b=_+b|0)>>>0<_>>>0?J+1|0:J,_=DA(m,Q,x,i),N=w+J|0,J=(N=((b=_+b|0)>>>0<_>>>0?N+1|0:N)<<1|b>>>31)+AA|0,J=(b=(_=b<<1)+U|0)>>>0<_>>>0?J+1|0:J,_=b,QA=N=b+33554432|0,b=J=N>>>0<33554432?J+1|0:J,o[A+128>>2]=_-(-67108864&N),J=DA(j,t,V,c),N=w,_=DA(P,E,x,i),N=w+N|0,N=(J=_+J|0)>>>0<_>>>0?N+1|0:N,_=(AA=DA(R,C,z,n))+J|0,J=w+N|0,J=_>>>0>>0?J+1|0:J,N=_,_=DA(L,B,IA,h),J=w+J|0,J=(N=N+_|0)>>>0<_>>>0?J+1|0:J,_=(AA=DA(m,Q,Z,y))+N|0,N=w+J|0,N=J=(_>>>0>>0?N+1|0:N)<<1|_>>>31,J=(J=Y>>26)+N|0,J=(Y=(AA=_<<=1)+(_=(67108863&Y)<<6|T>>>26)|0)>>>0<_>>>0?J+1|0:J,_=Y,N=J,T=J=Y+16777216|0,Y=N=J>>>0<16777216?N+1|0:N,o[A+148>>2]=_-(-33554432&J),J=DA(L,B,W,p),W=w,N=(q=DA(R,C,BA,q))+J|0,J=w+W|0,J=N>>>0>>0?J+1|0:J,d=DA(z,n,d,e),J=w+J|0,J=(N=d+N|0)>>>0>>0?J+1|0:J,K=(d=DA(K,a,X,f))+N|0,N=w+J|0,N=K>>>0>>0?N+1|0:N,d=DA(m,Q,P,E),J=w+N|0,N=(J=((K=d+K|0)>>>0>>0?J+1|0:J)<<1|K>>>31)+(N=b>>26)|0,N=(b=(_=K<<1)+(K=(67108863&b)<<6|QA>>>26)|0)>>>0>>0?N+1|0:N,K=b,J=N,d=N=b+16777216|0,b=J=N>>>0<16777216?J+1|0:J,o[A+132>>2]=K-(-33554432&N),J=DA(z,n,j,t),K=w,N=(P=DA(P,E,P,E))+J|0,J=w+K|0,J=N>>>0

>>0?J+1|0:J,P=(K=DA(x,i,X,f))+N|0,N=w+J|0,N=P>>>0>>0?N+1|0:N,K=DA(R,C,$,u),J=w+N|0,J=(P=K+P|0)>>>0>>0?J+1|0:J,K=DA(L,B,Z,y),N=w+J|0,N=(P=K+P|0)>>>0>>0?N+1|0:N,K=DA(J=m,Q,m=iA,X=m>>31),J=w+N|0,J=(J=((P=K+P|0)>>>0>>0?J+1|0:J)<<1|P>>>31)+(N=Y>>25)|0,J=(Y=(_=P<<1)+(P=(33554431&Y)<<7|T>>>25)|0)>>>0

>>0?J+1|0:J,P=Y,N=J,K=J=Y+33554432|0,Y=N=J>>>0<33554432?N+1|0:N,o[A+152>>2]=P-(-67108864&J),N=s-(J=-67108864&oA)|0,q=EA-((J>>>0>s>>>0)+aA|0)|0,J=b>>25,b=(d=(33554431&b)<<7|d>>>25)+N|0,N=J+q|0,N=b>>>0>>0?N+1|0:N,_=N=(67108863&(N=(J=b+33554432|0)>>>0<33554432?N+1|0:N))<<6|J>>>26,N=N+(P=gA-(-33554432&nA)|0)|0,o[A+140>>2]=N,o[A+136>>2]=b-(-67108864&J),J=DA(x,i,z,n),N=w,b=DA(V,c,O,F),N=w+N|0,N=(J=b+J|0)>>>0>>0?N+1|0:N,b=(x=DA(j,t,IA,h))+J|0,J=w+N|0,J=b>>>0>>0?J+1|0:J,N=b,b=DA(R,C,Z,y),J=w+J|0,J=(N=N+b|0)>>>0>>0?J+1|0:J,b=(R=DA(L,B,m,X))+N|0,N=w+J|0,N=J=(b>>>0>>0?N+1|0:N)<<1|b>>>31,J=(J=Y>>26)+N|0,N=(Y=(_=b<<=1)+(b=(67108863&Y)<<6|K>>>26)|0)>>>0>>0?J+1|0:J,N=(J=Y+16777216|0)>>>0<16777216?N+1|0:N,o[A+156>>2]=Y-(-33554432&J),b=v-(-33554432&CA)|0,R=l-(Y=-67108864&M)|0,L=rA-((Y>>>0>l>>>0)+G|0)|0,N=DA((33554431&N)<<7|J>>>25,N>>25,19,0),J=w+L|0,N=N>>>0>(Y=N+R|0)>>>0?J+1|0:J,_=N=(67108863&(N=(J=Y+33554432|0)>>>0<33554432?N+1|0:N))<<6|J>>>26,N=N+b|0,o[A+124>>2]=N,o[A+120>>2]=Y-(-67108864&J),J=o[I+40>>2],N=o[I+44>>2],Y=o[I+4>>2],b=o[I+48>>2],R=o[I+8>>2],L=o[I+52>>2],m=o[I+12>>2],x=o[I+56>>2],P=o[I+16>>2],K=o[I+60>>2],z=o[I+20>>2],X=o[I- -64>>2],j=o[I+24>>2],d=o[I+68>>2],q=o[I+28>>2],V=o[I+72>>2],Z=o[I+32>>2],BA=o[I>>2],o[A+76>>2]=o[I+76>>2]+o[I+36>>2],o[A+72>>2]=V+Z,o[A+68>>2]=d+q,o[(IA=A- -64|0)>>2]=j+X,o[A+60>>2]=K+z,o[A+56>>2]=P+x,o[A+52>>2]=m+L,o[A+48>>2]=b+R,o[A+44>>2]=N+Y,o[(I=A+40|0)>>2]=J+BA,S(g,I),J=o[A+80>>2],N=o[A+4>>2],Y=o[A+84>>2],b=o[A+8>>2],R=o[A+88>>2],L=o[A+12>>2],m=o[A+92>>2],x=o[A+16>>2],P=o[A+96>>2],K=o[A+20>>2],z=o[A+100>>2],X=o[A+24>>2],j=o[A+104>>2],d=o[A+28>>2],q=o[A+108>>2],V=o[A+32>>2],Z=o[A+112>>2],BA=o[A>>2],_=(W=o[A+116>>2])-($=o[A+36>>2])|0,o[A+116>>2]=_,O=Z-V|0,o[A+112>>2]=O,gA=q-d|0,o[A+108>>2]=gA,v=j-X|0,o[A+104>>2]=v,iA=z-K|0,o[A+100>>2]=iA,EA=P-x|0,o[A+96>>2]=EA,oA=m-L|0,o[A+92>>2]=oA,aA=R-b|0,o[A+88>>2]=aA,T=Y-N|0,o[A+84>>2]=T,nA=J-BA|0,o[A+80>>2]=nA,W=W+$|0,o[A+76>>2]=W,V=V+Z|0,o[A+72>>2]=V,d=d+q|0,o[A+68>>2]=d,X=j+X|0,o[IA>>2]=X,K=K+z|0,o[A+60>>2]=K,x=P+x|0,o[A+56>>2]=x,L=m+L|0,o[A+52>>2]=L,b=b+R|0,o[A+48>>2]=b,N=N+Y|0,o[A+44>>2]=N,Y=I,I=J+BA|0,o[Y>>2]=I,J=o[g>>2],Y=o[g+4>>2],R=o[g+8>>2],m=o[g+12>>2],P=o[g+16>>2],z=o[g+20>>2],j=o[g+24>>2],q=o[g+28>>2],Z=o[g+32>>2],o[A+36>>2]=o[g+36>>2]-W,o[A+32>>2]=Z-V,o[A+28>>2]=q-d,o[A+24>>2]=j-X,o[A+20>>2]=z-K,o[A+16>>2]=P-x,o[A+12>>2]=m-L,o[A+8>>2]=R-b,o[A+4>>2]=Y-N,o[A>>2]=J-I,I=o[A+120>>2],J=o[A+124>>2],N=o[A+128>>2],Y=o[A+132>>2],b=o[A+136>>2],R=o[A+140>>2],L=o[A+144>>2],m=o[A+148>>2],x=o[A+152>>2],o[A+156>>2]=o[A+156>>2]-_,o[A+152>>2]=x-O,o[A+148>>2]=m-gA,o[A+144>>2]=L-v,o[A+140>>2]=R-iA,o[A+136>>2]=b-EA,o[A+132>>2]=Y-oA,o[A+128>>2]=N-aA,o[A+124>>2]=J-T,o[A+120>>2]=I-nA,D=g+48|0}function S(A,I){var g,C,B,Q,i,E,a,n,f,t,e,c,y,D,h,s,p,u,k,F,l,S,H,M,G,U,J,N,Y,b,_,K,P,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0;v=DA(C=(s=o[I+12>>2])<<1,E=C>>31,s,l=s>>31),d=w,m=(q=DA(R=o[I+16>>2],a=R>>31,n=(L=o[I+8>>2])<<1,c=n>>31))+v|0,v=w+d|0,v=m>>>0>>0?v+1|0:v,d=(z=DA(T=(f=o[I+20>>2])<<1,y=T>>31,q=(x=o[I+4>>2])<<1,B=q>>31))+m|0,m=w+v|0,m=d>>>0>>0?m+1|0:m,j=DA(g=o[I+24>>2],t=g>>31,z=($=o[I>>2])<<1,Q=z>>31),v=w+m|0,v=(d=j+d|0)>>>0>>0?v+1|0:v,m=d,D=o[I+32>>2],d=DA(V=r(D,19),e=V>>31,D,u=D>>31),v=w+v|0,v=(m=m+d|0)>>>0>>0?v+1|0:v,U=o[I+36>>2],d=DA(j=r(U,38),i=j>>31,k=(h=o[I+28>>2])<<1,S=k>>31),I=w+v|0,Z=m=d+m|0,d=m>>>0>>0?I+1|0:I,I=DA(q,B,R,a),v=w,m=DA(n,c,s,l),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,X=DA(f,F=f>>31,z,Q),m=w+v|0,m=(I=X+I|0)>>>0>>0?m+1|0:m,X=DA(V,e,k,S),v=w+m|0,v=(I=X+I|0)>>>0>>0?v+1|0:v,m=DA(j,i,g,t),v=w+v|0,BA=I=m+I|0,O=I>>>0>>0?v+1|0:v,v=DA(q,B,C,E),m=w,H=I=L,L=DA(I,W=I>>31,I,W),I=w+m|0,I=(v=L+v|0)>>>0>>0?I+1|0:I,m=(L=DA(z,Q,R,a))+v|0,v=w+I|0,v=m>>>0>>0?v+1|0:v,I=(L=DA(X=r(h,38),p=X>>31,h,M=h>>31))+m|0,m=w+v|0,m=I>>>0>>0?m+1|0:m,I=(v=I)+(L=DA(V,e,I=g<<1,I>>31))|0,v=w+m|0,v=I>>>0>>0?v+1|0:v,m=I,I=DA(j,i,T,y),v=w+v|0,J=m=m+I|0,N=v=I>>>0>m>>>0?v+1|0:v,I=v,Y=m=m+33554432|0,b=I=m>>>0<33554432?I+1|0:I,v=(v=I>>26)+O|0,BA=I=(m=(67108863&I)<<6|m>>>26)+BA|0,v=I>>>0>>0?v+1|0:v,_=I=I+16777216|0,v=(v=(m=I>>>0<16777216?v+1|0:v)>>25)+d|0,I=(I=(33554431&m)<<7|I>>>25)>>>0>(m=I+Z|0)>>>0?v+1|0:v,Z=v=m+33554432|0,L=I=v>>>0<33554432?I+1|0:I,o[A+24>>2]=m-(-67108864&v),I=DA(z,Q,H,W),v=w,d=DA(q,B,x,CA=x>>31),m=w+v|0,m=(I=d+I|0)>>>0>>0?m+1|0:m,O=DA(d=r(g,19),gA=d>>31,g,t),v=w+m|0,v=(I=O+I|0)>>>0>>0?v+1|0:v,m=(O=DA(T,y,X,p))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,AA=DA(V,e,O=R<<1,G=O>>31),v=w+I|0,v=(m=AA+m|0)>>>0>>0?v+1|0:v,I=m,m=DA(j,i,C,E),v=w+v|0,IA=I=I+m|0,AA=I>>>0>>0?v+1|0:v,I=DA(T,y,d,gA),v=w,x=DA(z,Q,x,CA),m=w+v|0,m=(I=x+I|0)>>>0>>0?m+1|0:m,x=DA(R,a,X,p),v=w+m|0,v=(I=x+I|0)>>>0>>0?v+1|0:v,m=(x=DA(V,e,C,E))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,x=DA(j,i,H,W),v=w+I|0,QA=m=x+m|0,CA=m>>>0>>0?v+1|0:v,m=DA(I=r(f,38),I>>31,f,F),x=w,I=$,$=m,m=DA(I,v=I>>31,I,v),v=w+x|0,v=(I=$+m|0)>>>0>>0?v+1|0:v,d=DA(d,gA,O,G),m=w+v|0,m=(I=d+I|0)>>>0>>0?m+1|0:m,d=DA(C,E,X,p),v=w+m|0,v=(I=d+I|0)>>>0>>0?v+1|0:v,m=(d=DA(V,e,n,c))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,d=DA(q,B,j,i),v=w+I|0,x=m=d+m|0,gA=v=m>>>0>>0?v+1|0:v,K=m=m+33554432|0,P=v=m>>>0<33554432?v+1|0:v,I=v>>26,v=(67108863&v)<<6|m>>>26,m=I+CA|0,$=d=v+QA|0,v=m=v>>>0>d>>>0?m+1|0:m,QA=m=d+16777216|0,d=(33554431&(v=m>>>0<16777216?v+1|0:v))<<7|m>>>25,v=(v>>25)+AA|0,v=(m=d+IA|0)>>>0>>0?v+1|0:v,AA=I=m+33554432|0,d=v=I>>>0<33554432?v+1|0:v,o[A+8>>2]=m-(-67108864&I),I=DA(n,c,f,F),v=w,m=DA(R,a,C,E),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(q,B,g,t),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(z,Q,h,M),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,IA=(m=DA(j,i,D,u))+I|0,I=w+v|0,m=(v=L>>26)+(m=m>>>0>IA>>>0?I+1|0:I)|0,Z=I=(L=(67108863&L)<<6|Z>>>26)+IA|0,v=I>>>0>>0?m+1|0:m,IA=I=I+16777216|0,L=v=I>>>0<16777216?v+1|0:v,o[A+28>>2]=Z-(-33554432&I),I=DA(z,Q,s,l),m=w,v=(W=DA(q,B,H,W))+I|0,I=w+m|0,I=v>>>0>>0?I+1|0:I,v=(X=DA(g,t,X,p))+v|0,m=w+I|0,I=(V=DA(V,e,T,y))+v|0,v=w+(v>>>0>>0?m+1|0:m)|0,v=I>>>0>>0?v+1|0:v,m=DA(j,i,R,a),v=w+v|0,v=(v=(I=m+I|0)>>>0>>0?v+1|0:v)+(m=d>>26)|0,I=(m=d=(Z=I)+(I=(67108863&d)<<6|AA>>>26)|0)>>>0>>0?v+1|0:v,V=v=m+16777216|0,d=I=v>>>0<16777216?I+1|0:I,o[A+12>>2]=m-(-33554432&v),I=DA(g,t,n,c),v=w,m=DA(R,a,R,a),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=DA(C,E,T,y),v=w+v|0,v=(I=m+I|0)>>>0>>0?v+1|0:v,m=(R=DA(q,B,k,S))+I|0,I=w+v|0,I=m>>>0>>0?I+1|0:I,v=(R=DA(z,Q,D,u))+m|0,m=w+I|0,m=v>>>0>>0?m+1|0:m,I=(R=DA(I=j,i,j=U,T=j>>31))+v|0,v=w+m|0,v=I>>>0>>0?v+1|0:v,m=I,v=(I=L>>25)+v|0,v=(m=m+(L=(33554431&L)<<7|IA>>>25)|0)>>>0>>0?v+1|0:v,R=I=m+33554432|0,L=v=I>>>0<33554432?v+1|0:v,o[A+32>>2]=m-(-67108864&I),v=d>>25,m=(d=(33554431&d)<<7|V>>>25)+(J-(I=-67108864&Y)|0)|0,I=v+(N-((I>>>0>J>>>0)+b|0)|0)|0,v=m>>>0>>0?I+1|0:I,d=v=(67108863&(v=(I=m+33554432|0)>>>0<33554432?v+1|0:v))<<6|I>>>26,v=v+(X=BA-(-33554432&_)|0)|0,o[A+20>>2]=v,o[A+16>>2]=m-(-67108864&I),I=DA(C,E,g,t),m=w,v=(d=DA(f,F,O,G))+I|0,I=w+m|0,I=v>>>0>>0?I+1|0:I,m=(d=DA(n,c,h,M))+v|0,v=w+I|0,v=m>>>0>>0?v+1|0:v,I=(d=DA(q,B,D,u))+m|0,m=w+v|0,m=I>>>0>>0?m+1|0:m,d=(v=I)+(I=DA(z,Q,j,T))|0,v=w+m|0,v=(I=I>>>0>d>>>0?v+1|0:v)+(v=L>>26)|0,I=(m=(L=(67108863&L)<<6|R>>>26)+d|0)>>>0>>0?v+1|0:v,I=(v=m+16777216|0)>>>0<16777216?I+1|0:I,o[A+36>>2]=m-(-33554432&v),L=$-(-33554432&QA)|0,d=x-(m=-67108864&K)|0,q=gA-((m>>>0>x>>>0)+P|0)|0,I=DA((33554431&I)<<7|v>>>25,I>>25,19,0),v=w+q|0,I=I>>>0>(m=I+d|0)>>>0?v+1|0:v,d=I=(67108863&(I=(v=m+33554432|0)>>>0<33554432?I+1|0:I))<<6|v>>>26,I=I+L|0,o[A+4>>2]=I,o[A>>2]=m-(-67108864&v)}function H(A,I,g,C,B){var Q,i,n,r,f,t,e,c,y,w,h,s,p,u,k,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,X=0,q=0,z=0,V=0,O=0,T=0,W=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0;for(Q=D+-64|0,i=o[A+60>>2],n=o[A+56>>2],x=o[A+52>>2],R=o[A+48>>2],r=o[A+44>>2],f=o[A+40>>2],t=o[A+36>>2],e=o[A+32>>2],c=o[A+28>>2],y=o[A+24>>2],w=o[A+20>>2],h=o[A+16>>2],s=o[A+12>>2],p=o[A+8>>2],u=o[A+4>>2],k=o[A>>2];;){if(!B&C>>>0>63|B)F=g;else{if(o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+48>>2]=0,o[Q+52>>2]=0,o[Q+40>>2]=0,o[Q+44>>2]=0,o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+16>>2]=0,o[Q+20>>2]=0,o[Q+8>>2]=0,o[Q+12>>2]=0,o[Q>>2]=0,o[Q+4>>2]=0,S=0,C|B)for(;E[S+Q|0]=a[I+S|0],!B&(S=S+1|0)>>>0>>0|B;);I=F=Q,V=g}for(j=20,l=k,Y=u,b=p,P=s,S=h,g=w,M=y,G=c,U=e,m=t,_=f,H=i,d=n,v=x,K=R,J=r;N=S,l=YA((S=l+S|0)^K,16),N=K=YA(N^(U=l+U|0),12),K=YA((L=S+K|0)^l,8),S=YA(N^(U=K+U|0),7),H=YA((l=G+P|0)^H,16),G=YA((J=H+J|0)^G,12),P=YA((b=M+b|0)^d,16),M=YA((_=P+_|0)^M,12),d=(X=l+G|0)+S|0,q=YA((b=M+b|0)^P,8),l=YA(d^q,16),P=YA((Y=g+Y|0)^v,16),g=YA((m=P+m|0)^g,12),N=S,v=YA((Y=g+Y|0)^P,8),N=YA(N^(S=(z=v+m|0)+l|0),12),d=YA(l^(P=N+d|0),8),S=YA((m=d+S|0)^N,7),N=U,U=b,l=YA(H^X,8),b=YA((H=l+J|0)^G,7),v=YA((U=U+b|0)^v,16),J=YA((G=N+v|0)^b,12),v=YA(v^(b=J+U|0),8),G=YA((U=G+v|0)^J,7),J=H,H=Y,Y=YA((_=_+q|0)^M,7),M=J+(K=YA((H=H+Y|0)^K,16))|0,J=H,H=YA(M^Y,12),K=YA(K^(Y=J+H|0),8),M=YA((J=M+K|0)^H,7),N=_,H=l,l=YA(g^z,7),H=YA(H^(_=l+L|0),16),L=YA((g=N+H|0)^l,12),H=YA(H^(l=L+_|0),8),g=YA((_=g+H|0)^L,7),j=j-2|0;);if(j=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,L=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,X=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,q=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,z=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,N=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,O=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,T=a[I+32|0]|a[I+33|0]<<8|a[I+34|0]<<16|a[I+35|0]<<24,W=a[I+36|0]|a[I+37|0]<<8|a[I+38|0]<<16|a[I+39|0]<<24,Z=a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24,$=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,AA=a[I+48|0]|a[I+49|0]<<8|a[I+50|0]<<16|a[I+51|0]<<24,IA=a[I+52|0]|a[I+53|0]<<8|a[I+54|0]<<16|a[I+55|0]<<24,gA=a[I+56|0]|a[I+57|0]<<8|a[I+58|0]<<16|a[I+59|0]<<24,CA=a[I+60|0]|a[I+61|0]<<8|a[I+62|0]<<16|a[I+63|0]<<24,l=l+k^(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),E[0|F]=l,E[F+1|0]=l>>>8,E[F+2|0]=l>>>16,E[F+3|0]=l>>>24,l=H+i^CA,E[F+60|0]=l,E[F+61|0]=l>>>8,E[F+62|0]=l>>>16,E[F+63|0]=l>>>24,l=d+n^gA,E[F+56|0]=l,E[F+57|0]=l>>>8,E[F+58|0]=l>>>16,E[F+59|0]=l>>>24,l=v+x^IA,E[F+52|0]=l,E[F+53|0]=l>>>8,E[F+54|0]=l>>>16,E[F+55|0]=l>>>24,l=K+R^AA,E[F+48|0]=l,E[F+49|0]=l>>>8,E[F+50|0]=l>>>16,E[F+51|0]=l>>>24,l=J+r^$,E[F+44|0]=l,E[F+45|0]=l>>>8,E[F+46|0]=l>>>16,E[F+47|0]=l>>>24,l=_+f^Z,E[F+40|0]=l,E[F+41|0]=l>>>8,E[F+42|0]=l>>>16,E[F+43|0]=l>>>24,l=m+t^W,E[F+36|0]=l,E[F+37|0]=l>>>8,E[F+38|0]=l>>>16,E[F+39|0]=l>>>24,l=U+e^T,E[F+32|0]=l,E[F+33|0]=l>>>8,E[F+34|0]=l>>>16,E[F+35|0]=l>>>24,G=G+c^O,E[F+28|0]=G,E[F+29|0]=G>>>8,E[F+30|0]=G>>>16,E[F+31|0]=G>>>24,M=N^M+y,E[F+24|0]=M,E[F+25|0]=M>>>8,E[F+26|0]=M>>>16,E[F+27|0]=M>>>24,g=z^g+w,E[F+20|0]=g,E[F+21|0]=g>>>8,E[F+22|0]=g>>>16,E[F+23|0]=g>>>24,g=q^S+h,E[F+16|0]=g,E[F+17|0]=g>>>8,E[F+18|0]=g>>>16,E[F+19|0]=g>>>24,g=X^P+s,E[F+12|0]=g,E[F+13|0]=g>>>8,E[F+14|0]=g>>>16,E[F+15|0]=g>>>24,g=L^b+p,E[F+8|0]=g,E[F+9|0]=g>>>8,E[F+10|0]=g>>>16,E[F+11|0]=g>>>24,g=j^Y+u,E[F+4|0]=g,E[F+5|0]=g>>>8,E[F+6|0]=g>>>16,E[F+7|0]=g>>>24,x=!(R=R+1|0)+x|0,!B&C>>>0<=64){if(!(!C|!B&C>>>0>63|0!=(0|B)))for(S=0;E[S+V|0]=a[F+S|0],C>>>0>(S=S+1|0)>>>0;);o[A+52>>2]=x,o[A+48>>2]=R;break}I=I- -64|0,g=F- -64|0,B=B-1|0,B=(C=C+-64|0)>>>0<4294967232?B+1|0:B}}function M(A,I){var g,C=0,B=0,Q=0,i=0,a=0,n=0,r=0;D=g=D-704|0,C=80+((B=o[A+72>>2]>>>3&127)+A|0)|0,B>>>0<=111?HA(C,34640,112-B|0):(HA(C,34640,128-B|0),p(A,B=A+80|0,g,g+640|0),MA(B,0,112)),n=(Q=o[A+64>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+68>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[A+192|0]=C,E[A+193|0]=C>>>8,E[A+194|0]=C>>>16,E[A+195|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[A+196|0]=B,E[A+197|0]=B>>>8,E[A+198|0]=B>>>16,E[A+199|0]=B>>>24,n=(Q=o[A+72>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+76>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[A+200|0]=C,E[A+201|0]=C>>>8,E[A+202|0]=C>>>16,E[A+203|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[A+204|0]=B,E[A+205|0]=B>>>8,E[A+206|0]=B>>>16,E[A+207|0]=B>>>24,p(A,A+80|0,g,g+640|0),n=(Q=o[A>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+4>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[0|I]=C,E[I+1|0]=C>>>8,E[I+2|0]=C>>>16,E[I+3|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+4|0]=B,E[I+5|0]=B>>>8,E[I+6|0]=B>>>16,E[I+7|0]=B>>>24,n=(Q=o[A+8>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+12>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+8|0]=C,E[I+9|0]=C>>>8,E[I+10|0]=C>>>16,E[I+11|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+12|0]=B,E[I+13|0]=B>>>8,E[I+14|0]=B>>>16,E[I+15|0]=B>>>24,n=(Q=o[A+16>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+20>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+16|0]=C,E[I+17|0]=C>>>8,E[I+18|0]=C>>>16,E[I+19|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+20|0]=B,E[I+21|0]=B>>>8,E[I+22|0]=B>>>16,E[I+23|0]=B>>>24,n=(Q=o[A+24>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+28>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+24|0]=C,E[I+25|0]=C>>>8,E[I+26|0]=C>>>16,E[I+27|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+28|0]=B,E[I+29|0]=B>>>8,E[I+30|0]=B>>>16,E[I+31|0]=B>>>24,n=(Q=o[A+32>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+36>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+32|0]=C,E[I+33|0]=C>>>8,E[I+34|0]=C>>>16,E[I+35|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+36|0]=B,E[I+37|0]=B>>>8,E[I+38|0]=B>>>16,E[I+39|0]=B>>>24,n=(Q=o[A+40>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+44>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+40|0]=C,E[I+41|0]=C>>>8,E[I+42|0]=C>>>16,E[I+43|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+44|0]=B,E[I+45|0]=B>>>8,E[I+46|0]=B>>>16,E[I+47|0]=B>>>24,n=(Q=o[A+48>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,r=i<<24,i=(a=-16777216&Q)>>>24|0,C=r|a<<8|-16777216&((255&(C=o[A+52>>2]))<<24|Q>>>8)|16711680&((16777215&C)<<8|Q>>>24)|C>>>8&65280|C>>>24,E[I+48|0]=C,E[I+49|0]=C>>>8,E[I+50|0]=C>>>16,E[I+51|0]=C>>>24,B=(C=B|i|n)|(B=0)|B|0,E[I+52|0]=B,E[I+53|0]=B>>>8,E[I+54|0]=B>>>16,E[I+55|0]=B>>>24,n=(Q=o[A+56>>2])<<24|(65280&Q)<<8,B=(i=16711680&Q)>>>8|0,C=I,r=i<<24,i=(a=-16777216&Q)>>>24|0,I=r|a<<8|-16777216&((255&(I=o[A+60>>2]))<<24|Q>>>8)|16711680&((16777215&I)<<8|Q>>>24)|I>>>8&65280|I>>>24,E[C+56|0]=I,E[C+57|0]=I>>>8,E[C+58|0]=I>>>16,E[C+59|0]=I>>>24,I=(I=B|i|n)|(B=0)|B|0,E[C+60|0]=I,E[C+61|0]=I>>>8,E[C+62|0]=I>>>16,E[C+63|0]=I>>>24,$A(g,704),$A(A,208),D=g+704|0}function G(A,I,g){var C,B=0,i=0,n=0,r=0,f=0,t=0;D=C=D+-64|0;A:{if((g-65&255)>>>0>191){if(B=-1,!(a[A+80|0]|a[A+81|0]<<8|a[A+82|0]<<16|a[A+83|0]<<24|a[A+84|0]|a[A+85|0]<<8|a[A+86|0]<<16|a[A+87|0]<<24)){if((r=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)>>>0>=129){if(n=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,f=i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=(r=n+128|0)>>>0<128?i+1|0:i,E[0|B]=r,E[B+1|0]=r>>>8,E[B+2|0]=r>>>16,E[B+3|0]=r>>>24,E[B+4|0]=i,E[B+5|0]=i>>>8,E[B+6|0]=i>>>16,E[B+7|0]=i>>>24,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(B=-1==(0|f)&n>>>0>4294967167)>>>0>(n=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?i+1|0:i,E[A+72|0]=n,E[A+73|0]=n>>>8,E[A+74|0]=n>>>16,E[A+75|0]=n>>>24,E[A+76|0]=i,E[A+77|0]=i>>>8,E[A+78|0]=i>>>16,E[A+79|0]=i>>>24,h(A,i=A+96|0),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,B>>>0>=129)break A;HA(i,A+224|0,B),r=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24}i=a[0|(B=A- -64|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,n=t=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,n=(f=i+r|0)>>>0>>0?n+1|0:n,E[0|B]=f,E[B+1|0]=f>>>8,E[B+2|0]=f>>>16,E[B+3|0]=f>>>24,E[B+4|0]=n,E[B+5|0]=n>>>8,E[B+6|0]=n>>>16,E[B+7|0]=n>>>24,B=(0|n)==(0|t)&i>>>0>f>>>0|n>>>0>>0,i=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,i=(n=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0>>0?i+1|0:i,E[A+72|0]=n,E[A+73|0]=n>>>8,E[A+74|0]=n>>>16,E[A+75|0]=n>>>24,E[A+76|0]=i,E[A+77|0]=i>>>8,E[A+78|0]=i>>>16,E[A+79|0]=i>>>24,a[A+356|0]&&(E[A+88|0]=255,E[A+89|0]=255,E[A+90|0]=255,E[A+91|0]=255,E[A+92|0]=255,E[A+93|0]=255,E[A+94|0]=255,E[A+95|0]=255),E[A+80|0]=255,E[A+81|0]=255,E[A+82|0]=255,E[A+83|0]=255,E[A+84|0]=255,E[A+85|0]=255,E[A+86|0]=255,E[A+87|0]=255,MA((B=A+96|0)+r|0,0,256-r|0),h(A,B),i=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[C>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[C+4>>2]=i,i=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[C+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[C+12>>2]=i,i=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[C+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[C+20>>2]=i,i=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[C+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[C+28>>2]=i,i=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[C+32>>2]=a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24,o[C+36>>2]=i,i=a[A+44|0]|a[A+45|0]<<8|a[A+46|0]<<16|a[A+47|0]<<24,o[C+40>>2]=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[C+44>>2]=i,i=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,o[C+48>>2]=a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24,o[C+52>>2]=i,i=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,o[C+56>>2]=a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24,o[C+60>>2]=i,HA(I,C,g),$A(A,64),$A(B,256),B=0}return D=C- -64|0,B}mA(),Q()}e(1280,1142,306,1086),Q()}function U(A,I){var g,C,B,Q,i,n,r,f,t,e,c,y,w,h,s,p,u=0,k=0,l=0,H=0,M=0,G=0,U=0;for(D=g=D-320|0,P(C=A+40|0,I),o[A+84>>2]=0,o[A+88>>2]=0,o[A+80>>2]=1,o[A+92>>2]=0,o[A+96>>2]=0,o[A+100>>2]=0,o[A+104>>2]=0,o[A+108>>2]=0,o[A+112>>2]=0,o[A+116>>2]=0,S(G=g+240|0,C),F(H=g+192|0,G,1344),U=-1,B=o[g+240>>2]-1|0,o[g+240>>2]=B,o[g+192>>2]=o[g+192>>2]+1,Q=o[g+244>>2],i=o[g+248>>2],n=o[g+252>>2],r=o[g+256>>2],f=o[g+260>>2],t=o[g+264>>2],e=o[g+268>>2],c=o[g+272>>2],y=o[g+276>>2],S(M=g+144|0,H),F(M,M,H),S(A,M),F(A,A,H),F(A,A,G),D=k=D-144|0,S(l=k+96|0,A),S(u=k+48|0,l),S(u,u),F(u,A,u),F(l,l,u),S(l,l),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(u,u,l),S(k,u),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),S(k,k),F(u,k,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(l,u,l),S(u,l),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(u,u,l),S(k,u),u=1;S(k,k),100!=(0|(u=u+1|0)););F(u=k+48|0,k,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),S(u,u),F(l=k+96|0,u,l),S(l,l),S(l,l),F(A,l,A),D=k+144|0,F(A,A,M),F(A,A,G),S(u=g+96|0,A),F(u,u,H),u=o[g+132>>2],o[g+84>>2]=u-y,k=o[g+128>>2],o[g+80>>2]=k-c,l=o[g+124>>2],o[g+76>>2]=l-e,H=o[g+120>>2],o[g+72>>2]=H-t,M=o[g+116>>2],o[g+68>>2]=M-f,G=o[g+112>>2],o[g+64>>2]=G-r,w=o[g+108>>2],o[g+60>>2]=w-n,h=o[g+104>>2],o[g+56>>2]=h-i,s=o[g+100>>2],o[g+52>>2]=s-Q,p=o[g+96>>2],o[g+48>>2]=p-B,W(g,g+48|0);A:{if(!iA(g,32)){if(o[g+36>>2]=u+y,o[g+32>>2]=k+c,o[g+28>>2]=l+e,o[g+24>>2]=H+t,o[g+20>>2]=M+f,o[g+16>>2]=G+r,o[g+12>>2]=n+w,o[g+8>>2]=i+h,o[g+4>>2]=Q+s,o[g>>2]=B+p,W(u=g+288|0,g),!iA(u,32))break A;F(A,A,1392)}W(g+288|0,A),(1&E[g+288|0])==(a[I+31|0]>>>7|0)&&(o[A>>2]=0-o[A>>2],o[A+36>>2]=0-o[A+36>>2],o[A+32>>2]=0-o[A+32>>2],o[A+28>>2]=0-o[A+28>>2],o[A+24>>2]=0-o[A+24>>2],o[A+20>>2]=0-o[A+20>>2],o[A+16>>2]=0-o[A+16>>2],o[A+12>>2]=0-o[A+12>>2],o[A+8>>2]=0-o[A+8>>2],o[A+4>>2]=0-o[A+4>>2]),F(A+120|0,A,C),U=0}return D=g+320|0,U}function J(A,I,g){var C,B,Q,i,o,n,r,f,t,e,c,y,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0;for(p=1634760805,w=C=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24,u=B=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,k=Q=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,F=i=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,M=857760878,l=o=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,h=n=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,H=r=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,U=f=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,I=2036477234,s=t=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,D=1797285236,J=e=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,G=c=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,g=y=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24;S=YA(w+M|0,7)^U,N=YA(S+M|0,9)^G,F=YA(g+p|0,7)^F,Y=YA(F+p|0,9)^H,_=YA(Y+F|0,13)^g,k=YA(D+s|0,7)^k,b=YA(k+D|0,9)^h,H=YA(k+b|0,13)^s,s=YA(b+H|0,18)^D,h=YA(I+l|0,7)^J,g=_^YA(s+h|0,7),G=N^YA(g+s|0,9),J=YA(g+G|0,13)^h,D=YA(G+J|0,18)^s,u=YA(I+h|0,9)^u,l=YA(u+h|0,13)^l,I=YA(l+u|0,18)^I,s=YA(I+S|0,7)^H,H=YA(s+I|0,9)^Y,U=YA(s+H|0,13)^S,I=YA(H+U|0,18)^I,S=YA(S+N|0,13)^w,w=YA(S+N|0,18)^M,l=YA(w+F|0,7)^l,h=YA(l+w|0,9)^b,F=YA(h+l|0,13)^F,M=YA(h+F|0,18)^w,p=YA(Y+_|0,18)^p,w=YA(p+k|0,7)^S,u=YA(w+p|0,9)^u,k=YA(w+u|0,13)^k,p=YA(u+k|0,18)^p,S=K>>>0<18,K=K+2|0,S;);D=D+1797285236|0,E[A+60|0]=D,E[A+61|0]=D>>>8,E[A+62|0]=D>>>16,E[A+63|0]=D>>>24,D=J+e|0,E[A+56|0]=D,E[A+57|0]=D>>>8,E[A+58|0]=D>>>16,E[A+59|0]=D>>>24,D=G+c|0,E[A+52|0]=D,E[A+53|0]=D>>>8,E[A+54|0]=D>>>16,E[A+55|0]=D>>>24,g=g+y|0,E[A+48|0]=g,E[A+49|0]=g>>>8,E[A+50|0]=g>>>16,E[A+51|0]=g>>>24,g=s+t|0,E[A+44|0]=g,E[A+45|0]=g>>>8,E[A+46|0]=g>>>16,E[A+47|0]=g>>>24,I=I+2036477234|0,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,I=U+f|0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,I=H+r|0,E[A+32|0]=I,E[A+33|0]=I>>>8,E[A+34|0]=I>>>16,E[A+35|0]=I>>>24,I=h+n|0,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=l+o|0,E[A+24|0]=I,E[A+25|0]=I>>>8,E[A+26|0]=I>>>16,E[A+27|0]=I>>>24,I=M+857760878|0,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=F+i|0,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,I=k+Q|0,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=u+B|0,E[A+8|0]=I,E[A+9|0]=I>>>8,E[A+10|0]=I>>>16,E[A+11|0]=I>>>24,I=w+C|0,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=p+1634760805|0,E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24}function N(A,I,g,C){var B=0,Q=0,i=0,E=0,n=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0;if(D=o[A+36>>2],c=o[A+32>>2],y=o[A+28>>2],t=o[A+24>>2],e=o[A+20>>2],!C&g>>>0>=16|C)for(M=!a[A+80|0]<<24,s=o[A+4>>2],G=r(s,5),u=o[A+8>>2],S=r(u,5),F=o[A+12>>2],l=r(F,5),H=o[A+16>>2],k=r(H,5),p=o[A>>2];B=DA(i=((a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108863)+t|0,0,F,0),n=w,e=(E=DA(t=(67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+e|0,0,H,0))+B|0,B=w+n|0,B=E>>>0>e>>>0?B+1|0:B,n=DA(y=((a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67108863)+y|0,0,u,0),B=w+B|0,B=n>>>0>(e=n+e|0)>>>0?B+1|0:B,n=DA(c=((a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6|0)+c|0,0,s,0),B=w+B|0,B=n>>>0>(e=n+e|0)>>>0?B+1|0:B,n=DA(D=D+M+((a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24)>>>8)|0,0,p,0),B=w+B|0,U=e=n+e|0,e=n>>>0>e>>>0?B+1|0:B,B=DA(i,0,u,0),n=w,E=DA(t,0,F,0),Q=w+n|0,Q=(B=E+B|0)>>>0>>0?Q+1|0:Q,n=(E=DA(y,0,s,0))+B|0,B=w+Q|0,B=E>>>0>n>>>0?B+1|0:B,E=DA(c,0,p,0),B=w+B|0,B=E>>>0>(n=E+n|0)>>>0?B+1|0:B,E=DA(D,0,k,0),B=w+B|0,J=n=E+n|0,n=E>>>0>n>>>0?B+1|0:B,B=DA(i,0,s,0),f=w,E=(Q=DA(t,0,u,0))+B|0,B=w+f|0,B=Q>>>0>E>>>0?B+1|0:B,f=DA(y,0,p,0),Q=w+B|0,Q=(E=f+E|0)>>>0>>0?Q+1|0:Q,f=DA(c,0,k,0),B=w+Q|0,B=(E=f+E|0)>>>0>>0?B+1|0:B,f=DA(D,0,l,0),B=w+B|0,N=E=f+E|0,E=E>>>0>>0?B+1|0:B,B=DA(i,0,p,0),Q=w,f=(h=DA(t,0,s,0))+B|0,B=w+Q|0,B=f>>>0>>0?B+1|0:B,Q=DA(y,0,k,0),B=w+B|0,B=Q>>>0>(f=Q+f|0)>>>0?B+1|0:B,h=DA(c,0,l,0),Q=w+B|0,Q=(f=h+f|0)>>>0>>0?Q+1|0:Q,h=DA(D,0,S,0),B=w+Q|0,B=(f=h+f|0)>>>0>>0?B+1|0:B,h=f,f=B,B=DA(i,0,k,0),Q=w,i=(t=DA(t,0,p,0))+B|0,B=w+Q|0,B=i>>>0>>0?B+1|0:B,t=DA(y,0,l,0),B=w+B|0,B=(i=t+i|0)>>>0>>0?B+1|0:B,t=DA(c,0,S,0),B=w+B|0,B=(i=t+i|0)>>>0>>0?B+1|0:B,t=DA(D,0,G,0),Q=w+B|0,Q=(i=t+i|0)>>>0>>0?Q+1|0:Q,t=i,B=f,B=(i=(y=(67108863&Q)<<6|i>>>26)+h|0)>>>0>>0?B+1|0:B,y=i,c=(67108863&B)<<6|i>>>26,B=E,B=(i=c+N|0)>>>0>>0?B+1|0:B,c=i,Q=n,D=B=(i=(67108863&B)<<6|i>>>26)+J|0,n=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,t=(67108863&y)+((B=r((67108863&((i=n+U|0)>>>0>>0?B+1|0:B))<<6|i>>>26,5)+(67108863&t)|0)>>>26|0)|0,y=67108863&c,c=67108863&D,D=67108863&i,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);o[A+20>>2]=e,o[A+36>>2]=D,o[A+32>>2]=c,o[A+28>>2]=y,o[A+24>>2]=t}function Y(A,I,g,C){A|=0,I|=0;var B=0;return B=-1,(C|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(D=B=D-128|0,!I|((C&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(mA(),Q()):(MA(A- -64|0,0,293),E[A+56|0]=121,E[A+57|0]=33,E[A+58|0]=126,E[A+59|0]=19,E[A+60|0]=25,E[A+61|0]=205,E[A+62|0]=224,E[A+63|0]=91,E[A+48|0]=107,E[A+49|0]=189,E[A+50|0]=65,E[A+51|0]=251,E[A+52|0]=171,E[A+53|0]=217,E[A+54|0]=131,E[A+55|0]=31,E[A+40|0]=31,E[A+41|0]=108,E[A+42|0]=62,E[A+43|0]=43,E[A+44|0]=140,E[A+45|0]=104,E[A+46|0]=5,E[A+47|0]=155,E[A+32|0]=209,E[A+33|0]=130,E[A+34|0]=230,E[A+35|0]=173,E[A+36|0]=127,E[A+37|0]=82,E[A+38|0]=14,E[A+39|0]=81,E[A+24|0]=241,E[A+25|0]=54,E[A+26|0]=29,E[A+27|0]=95,E[A+28|0]=58,E[A+29|0]=245,E[A+30|0]=79,E[A+31|0]=165,E[A+16|0]=43,E[A+17|0]=248,E[A+18|0]=148,E[A+19|0]=254,E[A+20|0]=114,E[A+21|0]=243,E[A+22|0]=110,E[A+23|0]=60,E[A+8|0]=59,E[A+9|0]=167,E[A+10|0]=202,E[A+11|0]=132,E[A+12|0]=133,E[A+13|0]=174,E[A+14|0]=103,E[A+15|0]=187,C=-222443256^(g<<8|C),E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,C=g>>>24^1779033703,E[A+4|0]=C,E[A+5|0]=C>>>8,E[A+6|0]=C>>>16,E[A+7|0]=C>>>24,MA(g+B|0,0,g<<24>>24>=0?128-g|0:0),g=HA(B,I,g),HA(A+96|0,g,128),I=128+(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)|0,E[A+352|0]=I,E[A+353|0]=I>>>8,E[A+354|0]=I>>>16,E[A+355|0]=I>>>24,$A(g,128),D=g+128|0)):(((I=255&C)-65&255)>>>0<=191&&(mA(),Q()),MA(A- -64|0,0,293),E[A+56|0]=121,E[A+57|0]=33,E[A+58|0]=126,E[A+59|0]=19,E[A+60|0]=25,E[A+61|0]=205,E[A+62|0]=224,E[A+63|0]=91,E[A+48|0]=107,E[A+49|0]=189,E[A+50|0]=65,E[A+51|0]=251,E[A+52|0]=171,E[A+53|0]=217,E[A+54|0]=131,E[A+55|0]=31,E[A+40|0]=31,E[A+41|0]=108,E[A+42|0]=62,E[A+43|0]=43,E[A+44|0]=140,E[A+45|0]=104,E[A+46|0]=5,E[A+47|0]=155,E[A+32|0]=209,E[A+33|0]=130,E[A+34|0]=230,E[A+35|0]=173,E[A+36|0]=127,E[A+37|0]=82,E[A+38|0]=14,E[A+39|0]=81,E[A+24|0]=241,E[A+25|0]=54,E[A+26|0]=29,E[A+27|0]=95,E[A+28|0]=58,E[A+29|0]=245,E[A+30|0]=79,E[A+31|0]=165,E[A+16|0]=43,E[A+17|0]=248,E[A+18|0]=148,E[A+19|0]=254,E[A+20|0]=114,E[A+21|0]=243,E[A+22|0]=110,E[A+23|0]=60,E[A+8|0]=59,E[A+9|0]=167,E[A+10|0]=202,E[A+11|0]=132,E[A+12|0]=133,E[A+13|0]=174,E[A+14|0]=103,E[A+15|0]=187,I^=-222443256,E[0|A]=I,E[A+1|0]=I>>>8,E[A+2|0]=I>>>16,E[A+3|0]=I>>>24,E[A+4|0]=103,E[A+5|0]=230,E[A+6|0]=9,E[A+7|0]=106),B=0),0|B}function b(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g+40|0),F(c,c,g),F(A+120|0,g+120|0,I+120|0),F(A,I+80|0,g+80|0),b=o[A+4>>2],Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],r=o[A+28>>2],f=o[A+32>>2],t=o[A+36>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],e=o[A>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=o[A+156>>2],g=t<<1,o[A+156>>2]=I+g,c=o[A+152>>2],y=f<<1,o[A+152>>2]=c+y,w=o[A+148>>2],h=r<<1,o[A+148>>2]=w+h,s=o[A+144>>2],p=n<<1,o[A+144>>2]=s+p,u=o[A+140>>2],k=a<<1,o[A+140>>2]=u+k,l=o[A+136>>2],S=E<<1,o[A+136>>2]=l+S,H=o[A+132>>2],M=i<<1,o[A+132>>2]=H+M,D=o[A+128>>2],G=Q<<1,o[A+128>>2]=D+G,U=o[A+124>>2],J=b<<1,o[A+124>>2]=U+J,N=o[A+120>>2],Y=e<<1,o[A+120>>2]=N+Y,o[A+112>>2]=y-c,o[A+108>>2]=h-w,o[A+104>>2]=p-s,o[A+100>>2]=k-u,o[A+96>>2]=S-l,o[A+92>>2]=M-H,o[A+88>>2]=G-D,o[A+84>>2]=J-U,o[A+80>>2]=Y-N,o[A+116>>2]=g-I}function _(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g),F(c,c,g+40|0),F(A+120|0,g+120|0,I+120|0),F(A,I+80|0,g+80|0),b=o[A+4>>2],Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],r=o[A+28>>2],f=o[A+32>>2],t=o[A+36>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],e=o[A>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=t<<1,g=o[A+156>>2],o[A+156>>2]=I-g,c=f<<1,y=o[A+152>>2],o[A+152>>2]=c-y,w=r<<1,h=o[A+148>>2],o[A+148>>2]=w-h,s=n<<1,p=o[A+144>>2],o[A+144>>2]=s-p,u=a<<1,k=o[A+140>>2],o[A+140>>2]=u-k,l=E<<1,S=o[A+136>>2],o[A+136>>2]=l-S,H=i<<1,M=o[A+132>>2],o[A+132>>2]=H-M,D=Q<<1,G=o[A+128>>2],o[A+128>>2]=D-G,U=b<<1,J=o[A+124>>2],o[A+124>>2]=U-J,N=e<<1,Y=o[A+120>>2],o[A+120>>2]=N-Y,o[A+112>>2]=c+y,o[A+108>>2]=w+h,o[A+104>>2]=s+p,o[A+100>>2]=u+k,o[A+96>>2]=l+S,o[A+92>>2]=H+M,o[A+88>>2]=D+G,o[A+84>>2]=U+J,o[A+80>>2]=N+Y,o[A+116>>2]=I+g}function K(A,I,g){var C,B,Q,i,E,a,n,r,f,t,e,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0;c=o[I+40>>2],y=o[I+4>>2],w=o[I+44>>2],h=o[I+8>>2],s=o[I+48>>2],p=o[I+12>>2],u=o[I+52>>2],k=o[I+16>>2],l=o[I+56>>2],S=o[I+20>>2],H=o[I+60>>2],M=o[I+24>>2],G=o[(D=I- -64|0)>>2],U=o[I+28>>2],J=o[I+68>>2],N=o[I+32>>2],Y=o[I+72>>2],b=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=N+Y,o[A+28>>2]=U+J,o[A+24>>2]=M+G,o[A+20>>2]=S+H,o[A+16>>2]=k+l,o[A+12>>2]=p+u,o[A+8>>2]=h+s,o[A+4>>2]=y+w,o[A>>2]=c+b,w=o[I+40>>2],c=o[I+4>>2],h=o[I+44>>2],s=o[I+8>>2],p=o[I+48>>2],u=o[I+12>>2],k=o[I+52>>2],l=o[I+16>>2],S=o[I+56>>2],H=o[I+20>>2],M=o[I+60>>2],G=o[I+24>>2],D=o[D>>2],y=o[I+28>>2],U=o[I+68>>2],J=o[I+32>>2],N=o[I+72>>2],Y=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=N-J,o[A+68>>2]=U-y,o[(y=A- -64|0)>>2]=D-G,o[A+60>>2]=M-H,o[A+56>>2]=S-l,o[A+52>>2]=k-u,o[A+48>>2]=p-s,o[A+44>>2]=h-c,o[(c=A+40|0)>>2]=w-Y,F(A+80|0,A,g),F(c,c,g+40|0),F(A+120|0,g+80|0,I+120|0),b=o[I+80>>2],Q=o[I+84>>2],i=o[I+88>>2],E=o[I+92>>2],a=o[I+96>>2],n=o[I+100>>2],r=o[I+104>>2],f=o[I+108>>2],t=o[I+112>>2],e=o[I+116>>2],I=o[c>>2],g=o[A+80>>2],w=o[A+44>>2],h=o[A+84>>2],s=o[A+48>>2],p=o[A+88>>2],u=o[A+52>>2],k=o[A+92>>2],l=o[A+56>>2],S=o[A+96>>2],H=o[A+60>>2],M=o[A+100>>2],D=o[y>>2],G=o[A+104>>2],U=o[A+68>>2],J=o[A+108>>2],N=o[A+72>>2],Y=o[A+112>>2],C=o[A+76>>2],B=o[A+116>>2],o[A+76>>2]=C+B,o[A+72>>2]=N+Y,o[A+68>>2]=U+J,o[y>>2]=D+G,o[A+60>>2]=H+M,o[A+56>>2]=l+S,o[A+52>>2]=u+k,o[A+48>>2]=s+p,o[A+44>>2]=w+h,o[c>>2]=I+g,o[A+36>>2]=B-C,o[A+32>>2]=Y-N,o[A+28>>2]=J-U,o[A+24>>2]=G-D,o[A+20>>2]=M-H,o[A+16>>2]=S-l,o[A+12>>2]=k-u,o[A+8>>2]=p-s,o[A+4>>2]=h-w,o[A>>2]=g-I,I=e<<1,g=o[A+156>>2],o[A+156>>2]=I-g,c=t<<1,y=o[A+152>>2],o[A+152>>2]=c-y,w=f<<1,h=o[A+148>>2],o[A+148>>2]=w-h,s=r<<1,p=o[A+144>>2],o[A+144>>2]=s-p,u=n<<1,k=o[A+140>>2],o[A+140>>2]=u-k,l=a<<1,S=o[A+136>>2],o[A+136>>2]=l-S,H=E<<1,M=o[A+132>>2],o[A+132>>2]=H-M,D=i<<1,G=o[A+128>>2],o[A+128>>2]=D-G,U=Q<<1,J=o[A+124>>2],o[A+124>>2]=U-J,N=b<<1,Y=o[A+120>>2],o[A+120>>2]=N-Y,o[A+112>>2]=c+y,o[A+108>>2]=w+h,o[A+104>>2]=s+p,o[A+100>>2]=u+k,o[A+96>>2]=l+S,o[A+92>>2]=H+M,o[A+88>>2]=D+G,o[A+84>>2]=U+J,o[A+80>>2]=N+Y,o[A+116>>2]=I+g}function P(A,I){var g,C,B,Q,i,E,n,r,f,t,e,c,y,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0;c=a[I+31|0],g=a[I+30|0],C=a[I+29|0],B=a[I+6|0],Q=a[I+5|0],i=a[I+4|0],E=a[I+9|0],n=a[I+8|0],r=a[I+7|0],H=a[I+12|0],M=a[I+11|0],f=a[I+10|0],t=a[I+15|0],G=a[I+14|0],e=a[I+13|0],F=a[I+28|0],S=a[I+27|0],l=a[I+26|0],k=a[I+25|0],p=a[I+24|0],s=a[I+23|0],y=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,u=(D=a[I+21|0])<<15,D=h=D>>>17|0,J=u,h=(u=a[I+20|0])>>>25|0,u=J|u<<7,U=D|h,D=(h=a[I+22|0])>>>9|0,u|=h<<23,D|=U,h=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=0,J=h,h=(33554431&(I=(U=h+16777216|0)>>>0<16777216?1:I))<<7|U>>>25,I=(I>>>25|0)+D|0,h=(D=u=h+u|0)>>>0>>0?I+1|0:I,I=(u=D+33554432|0)>>>0<33554432?h+1|0:h,o[A+24>>2]=D-(-67108864&u),h=(D=s>>>27|0)|p>>>19|k>>>11,D=s=(p=k<<21|(s=p<<13|s<<5))+(D=(67108863&(D=I))<<6|u>>>26)|0,I=h,h=(s=p+16777216|0)>>>0<16777216?I+1|0:I,o[A+28>>2]=D-(1040187392&s),D=(D=S>>>20|l>>>28|F>>>12)+(h=(I=h)>>>25|0)|0,I=(h=s=(I=(33554431&I)<<7|s>>>25)+(S<<12|l<<4|F<<20)|0)>>>0>>0?D+1|0:D,s=(F=h+33554432|0)>>>0<33554432?I+1|0:I,o[A+32>>2]=h-(-67108864&F),D=(I=H>>>13|0)|(h=M>>>21|f>>>29),I=(D=(S=16777216+(H=M<<11|f<<3|H<<19)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(h=p=G<<10|e<<2|t<<18)+(p=(33554431&D)<<7|S>>>25)|0,h=I+(k=G>>>22|e>>>30|t>>>14)|0,I=D>>>0

>>0?h+1|0:h,p=I=(67108863&(I=(h=D+33554432|0)>>>0<33554432?I+1|0:I))<<6|h>>>26,I=I+(l=J-(-33554432&U)|0)|0,o[A+20>>2]=I,o[A+16>>2]=D-(-67108864&h),h=Q>>>18|i>>>26|B>>>10,D=(h=(l=16777216+(M=Q<<14|i<<6|B<<22)|0)>>>0<16777216?h+1|0:h)>>>25|0,h=(I=p=n<<13|r<<5|E<<21)+(p=(33554431&h)<<7|l>>>25)|0,I=D+(k=n>>>19|r>>>27|E>>>11)|0,I=h>>>0

>>0?I+1|0:I,D=(k=h+33554432|0)>>>0<33554432?I+1|0:I,o[A+8>>2]=h-(-67108864&k),F=(s=(67108863&s)<<6|F>>>26)+(G=c<<18&33292288|g<<10|C<<2)|0,I=h=g>>>22|C>>>30,h=(s=G+16777216|0)>>>0<16777216?I+1|0:I,o[A+36>>2]=F-(33554432&s),D=H+((67108863&D)<<6|k>>>26)|0,o[A+12>>2]=D-(234881024&S),p=M-(2113929216&l)|0,D=DA((33554431&(I=h))<<7|s>>>25,h=I>>>25|0,19,0),I=w,D=D>>>0>(h=D+y|0)>>>0?I+1|0:I,s=D=(67108863&(D=(I=h+33554432|0)>>>0<33554432?D+1|0:D))<<6|I>>>26,D=D+p|0,o[A+4>>2]=D,o[A>>2]=h-(-67108864&I)}function v(A,I){var g,C,B,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0;for(D=g=D-480|0;i=(n=g+288|0)+(Q<<1)|0,c=a[I+Q|0],E[i+1|0]=c>>>4,E[0|i]=15&c,n=n+((i=1|Q)<<1)|0,i=a[I+i|0],E[n+1|0]=i>>>4,E[0|n]=15&i,32!=(0|(Q=Q+2|0)););for(I=0;Q=8+(n=(Q=I)+a[0|(I=(g+288|0)+r|0)]|0)|0,E[0|I]=n-(240&Q),Q=8+(n=a[I+1|0]+(Q<<24>>24>>4)|0)|0,E[I+1|0]=n-(240&Q),Q=8+(n=a[I+2|0]+(Q<<24>>24>>4)|0)|0,E[I+2|0]=n-(240&Q),I=Q<<24>>24>>4,63!=(0|(r=r+3|0)););for(E[g+351|0]=a[g+351|0]+I,o[A+32>>2]=0,o[A+36>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A>>2]=0,o[A+4>>2]=0,o[A+44>>2]=0,o[A+48>>2]=0,o[(c=A+40|0)>>2]=1,o[A+52>>2]=0,o[A+56>>2]=0,o[A+60>>2]=0,o[A+64>>2]=0,o[A+68>>2]=0,o[A+72>>2]=0,o[A+76>>2]=0,o[A+80>>2]=1,MA(A+84|0,0,76),C=A+120|0,B=A+80|0,I=g+208|0,n=g+168|0,r=g+248|0,Q=1;q(f=g+8|0,Q>>>1|0,E[(g+288|0)+Q|0]),K(i=g+128|0,A,f),F(A,i,r),F(c,n,I),F(B,I,r),F(C,i,n),i=Q>>>0<62,Q=Q+2|0,i;);for(Q=o[A+8>>2],i=o[A+12>>2],f=o[A+16>>2],t=o[A+20>>2],y=o[A+24>>2],w=o[A+28>>2],e=o[A>>2],h=o[A+4>>2],s=o[A+36>>2],o[g+392>>2]=o[A+32>>2],o[g+396>>2]=s,o[g+384>>2]=y,o[g+388>>2]=w,o[g+376>>2]=f,o[g+380>>2]=t,o[g+368>>2]=Q,o[g+372>>2]=i,o[g+360>>2]=e,o[g+364>>2]=h,Q=o[A+40>>2],i=o[A+44>>2],f=o[A+48>>2],t=o[A+52>>2],y=o[A+56>>2],w=o[A+60>>2],h=o[(e=A- -64|0)>>2],e=o[e+4>>2],s=o[A+76>>2],o[g+432>>2]=o[A+72>>2],o[g+436>>2]=s,o[g+424>>2]=h,o[g+428>>2]=e,o[g+416>>2]=y,o[g+420>>2]=w,o[g+408>>2]=f,o[g+412>>2]=t,o[g+400>>2]=Q,o[g+404>>2]=i,Q=o[A+80>>2],i=o[A+84>>2],f=o[A+88>>2],t=o[A+92>>2],y=o[A+96>>2],w=o[A+100>>2],e=o[A+104>>2],h=o[A+108>>2],s=o[A+116>>2],o[g+472>>2]=o[A+112>>2],o[g+476>>2]=s,o[g+464>>2]=e,o[g+468>>2]=h,o[g+456>>2]=y,o[g+460>>2]=w,o[g+448>>2]=f,o[g+452>>2]=t,o[g+440>>2]=Q,o[g+444>>2]=i,l(Q=g+128|0,i=g+360|0),F(i,Q,r),F(f=g+400|0,n,I),F(t=g+440|0,I,r),l(Q,i),F(i,Q,r),F(f,n,I),F(t,I,r),l(Q,i),F(i,Q,r),F(f,n,I),F(t,I,r),l(Q,i),F(A,Q,r),F(c,n,I),F(B,I,r),F(C,Q,n),Q=0;q(f=g+8|0,Q>>>1|0,E[(g+288|0)+Q|0]),K(i=g+128|0,A,f),F(A,i,r),F(c,n,I),F(B,I,r),F(C,i,n),i=Q>>>0<62,Q=Q+2|0,i;);D=g+480|0}function m(A,I,g,C){var B,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,w=0,h=0,s=0;if(D=B=D-704|0,g|C)if(Q=(C<<3|g>>>29)+(i=n=o[A+76>>2])|0,f=(t=o[A+72>>2])+(r=g<<3)|0,o[A+72>>2]=f,Q=r>>>0>f>>>0?Q+1|0:Q,o[A+76>>2]=Q,n=o[4+(r=A- -64|0)>>2],n=(e=Q=(0|Q)==(0|i)&f>>>0>>0|Q>>>0>>0)>>>0>(Q=Q+o[r>>2]|0)>>>0?n+1|0:n,f=(e=C>>>29|0)+Q|0,Q=n,o[r>>2]=f,o[r+4>>2]=f>>>0>>0?Q+1|0:Q,(0|(n=e=0-((Q=0)+((r=127&((7&i)<<29|t>>>3))>>>0>128)|0)|0))==(0|C)&g>>>0>=(f=128-r|0)>>>0|C>>>0>n>>>0){if(i=0,n=0,!Q&(127^r)>>>0>=3|Q)for(s=252&f,t=A+80|0;E[(Q=i+r|0)+t|0]=a[I+i|0],E[t+(r+(Q=1|i)|0)|0]=a[I+Q|0],E[t+(r+(Q=2|i)|0)|0]=a[I+Q|0],E[t+(r+(Q=3|i)|0)|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(w=w+4|0)>>>0<4?Q+1|0:Q,(0|w)!=(0|s)|(0|h)!=(0|Q););if(t=Q=0,Q|(y=3&f))for(;E[80+(A+(Q=i+r|0)|0)|0]=a[I+i|0],Q=n,n=(i=i+1|0)?Q:Q+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|y)!=(0|c)|(0|t)!=(0|Q););if(p(A,A+80|0,B,i=B+640|0),I=I+f|0,!(C=C-((g>>>0>>0)+e|0)|0)&(g=g-f|0)>>>0>127|C)for(;p(A,I,B,i),I=I+128|0,!(C=C-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|C;);if(g|C){if(w=3&g,f=0,c=0,h=0,i=0,n=0,!C&g>>>0>=4|C)for(r=-4&g,t=C,y=A+80|0,g=0,C=0;E[i+y|0]=a[I+i|0],E[(Q=1|i)+y|0]=a[I+Q|0],E[(Q=2|i)+y|0]=a[I+Q|0],E[(Q=3|i)+y|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=C,C=Q=(g=g+4|0)>>>0<4?Q+1|0:Q,(0|g)!=(0|r)|(0|t)!=(0|Q););if(f|w)for(;E[80+(A+i|0)|0]=a[I+i|0],n=(i=i+1|0)?n:n+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|c)!=(0|w)|(0|f)!=(0|Q););}$A(B,704)}else{if(i=0,n=0,!C&g>>>0>=4|C)for(f=-4&g,t=C,C=A+80|0;E[C+(Q=i+r|0)|0]=a[I+i|0],E[C+(e=r+(Q=1|i)|0)|0]=a[I+Q|0],E[C+(e=r+(Q=2|i)|0)|0]=a[I+Q|0],E[C+(e=r+(Q=3|i)|0)|0]=a[I+Q|0],Q=n,n=(i=i+4|0)>>>0<4?Q+1|0:Q,Q=y,y=Q=(w=w+4|0)>>>0<4?Q+1|0:Q,(0|f)!=(0|w)|(0|t)!=(0|Q););if((g&=3)|(C=0))for(;E[80+(A+(Q=i+r|0)|0)|0]=a[I+i|0],n=(i=i+1|0)?n:n+1|0,Q=h,h=Q=(c=c+1|0)?Q:Q+1|0,(0|g)!=(0|c)|(0|C)!=(0|Q););}return D=B+704|0,0}function d(A,I,g){var C=0,B=0,Q=0,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0;for(B=2036477234,i=857760878,C=1634760805,n=1797285236,Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,t=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,o=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,e=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,r=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,p=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,c=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,y=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,D=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,w=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;f=g,g=YA((h=I)^(I=g+C|0),16),f=c=YA(f^(C=g+c|0),12),u=YA((h=I+c|0)^g,8),I=YA(f^(c=u+C|0),7),C=y,y=YA((g=n+y|0)^Q,16),C=YA(C^(e=y+e|0),12),Q=D,n=YA((B=B+D|0)^t,16),Q=YA(Q^(D=n+r|0),12),r=YA((B=Q+B|0)^n,8),g=YA(r^(n=I+(s=g+C|0)|0),16),t=YA((i=i+w|0)^o,16),w=YA((o=t+p|0)^w,12),f=I,I=YA((i=i+w|0)^t,8),f=YA(f^(o=g+(k=I+o|0)|0),12),t=YA(g^(n=f+n|0),8),g=YA((p=t+o|0)^f,7),f=B,B=C,s=YA(y^s,8),B=YA(B^(C=s+e|0),7),y=YA((o=f+B|0)^I,16),e=YA((I=y+c|0)^B,12),o=YA(y^(B=e+o|0),8),y=YA((c=I+o|0)^e,7),I=YA((I=Q)^(Q=r+D|0),7),D=YA((i=I+i|0)^u,16),r=YA(I^(C=D+C|0),12),I=YA(D^(i=r+i|0),8),D=YA((e=C+I|0)^r,7),f=Q,C=YA(w^k,7),r=YA((Q=C+h|0)^s,16),h=YA(C^(w=f+r|0),12),Q=YA(r^(C=h+Q|0),8),w=YA((r=w+Q|0)^h,7),10!=(0|(F=F+1|0)););E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+28|0]=Q,E[A+29|0]=Q>>>8,E[A+30|0]=Q>>>16,E[A+31|0]=Q>>>24,E[A+24|0]=t,E[A+25|0]=t>>>8,E[A+26|0]=t>>>16,E[A+27|0]=t>>>24,E[A+20|0]=o,E[A+21|0]=o>>>8,E[A+22|0]=o>>>16,E[A+23|0]=o>>>24,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,E[A+12|0]=n,E[A+13|0]=n>>>8,E[A+14|0]=n>>>16,E[A+15|0]=n>>>24,E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+4|0]=i,E[A+5|0]=i>>>8,E[A+6|0]=i>>>16,E[A+7|0]=i>>>24}function L(A,I,g){var C=0,B=0,Q=0,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0,F=0;for(C=1797285236,r=2036477234,f=857760878,B=1634760805,Q=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,o=a[I+8|0]|a[I+9|0]<<8|a[I+10|0]<<16|a[I+11|0]<<24,i=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24,h=a[g+28|0]|a[g+29|0]<<8|a[g+30|0]<<16|a[g+31|0]<<24,w=a[g+24|0]|a[g+25|0]<<8|a[g+26|0]<<16|a[g+27|0]<<24,s=20,y=a[g+20|0]|a[g+21|0]<<8|a[g+22|0]<<16|a[g+23|0]<<24,D=a[g+16|0]|a[g+17|0]<<8|a[g+18|0]<<16|a[g+19|0]<<24,t=a[g+12|0]|a[g+13|0]<<8|a[g+14|0]<<16|a[g+15|0]<<24,e=a[g+8|0]|a[g+9|0]<<8|a[g+10|0]<<16|a[g+11|0]<<24,c=a[g+4|0]|a[g+5|0]<<8|a[g+6|0]<<16|a[g+7|0]<<24,I=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24,g=a[0|g]|a[g+1|0]<<8|a[g+2|0]<<16|a[g+3|0]<<24;n=YA(g+f|0,7)^Q,p=YA(n+f|0,9)^w,t=YA(B+y|0,7)^t,u=YA(t+B|0,9)^o,k=YA(u+t|0,13)^y,e=YA(C+D|0,7)^e,i=YA(e+C|0,9)^i,o=YA(i+e|0,13)^D,C=YA(i+o|0,18)^C,Q=YA(I+r|0,7)^h,y=k^YA(C+Q|0,7),w=p^YA(y+C|0,9),h=YA(y+w|0,13)^Q,C=YA(w+h|0,18)^C,c=YA(Q+r|0,9)^c,F=YA(c+Q|0,13)^I,I=YA(F+c|0,18)^r,D=YA(I+n|0,7)^o,o=YA(D+I|0,9)^u,Q=YA(o+D|0,13)^n,r=YA(Q+o|0,18)^I,n=YA(n+p|0,13)^g,g=YA(n+p|0,18)^f,I=YA(g+t|0,7)^F,i=YA(I+g|0,9)^i,t=YA(I+i|0,13)^t,f=YA(i+t|0,18)^g,B=YA(u+k|0,18)^B,g=YA(B+e|0,7)^n,c=YA(g+B|0,9)^c,e=YA(g+c|0,13)^e,B=YA(c+e|0,18)^B,n=s>>>0>2,s=s-2|0,n;);return E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+28|0]=Q,E[A+29|0]=Q>>>8,E[A+30|0]=Q>>>16,E[A+31|0]=Q>>>24,E[A+24|0]=o,E[A+25|0]=o>>>8,E[A+26|0]=o>>>16,E[A+27|0]=o>>>24,E[A+20|0]=i,E[A+21|0]=i>>>8,E[A+22|0]=i>>>16,E[A+23|0]=i>>>24,E[A+16|0]=I,E[A+17|0]=I>>>8,E[A+18|0]=I>>>16,E[A+19|0]=I>>>24,E[A+12|0]=C,E[A+13|0]=C>>>8,E[A+14|0]=C>>>16,E[A+15|0]=C>>>24,E[A+8|0]=r,E[A+9|0]=r>>>8,E[A+10|0]=r>>>16,E[A+11|0]=r>>>24,E[A+4|0]=f,E[A+5|0]=f>>>8,E[A+6|0]=f>>>16,E[A+7|0]=f>>>24,0}function R(A,I,g,C,B,i,E){var a=0,n=0,r=0,f=0,t=0,e=0,c=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=D,D=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((n=255&I)-65&255)>>>0<=191|!(!(I=255&E)||i)|I>>>0>=65)){if(I){if(!i)break I;MA(a- -64|0,0,293),o[a+56>>2]=327033209,o[a+60>>2]=1541459225,o[a+48>>2]=-79577749,o[a+52>>2]=528734635,o[a+40>>2]=725511199,o[a+44>>2]=-1694144372,o[a+32>>2]=-1377402159,o[a+36>>2]=1359893119,o[a+24>>2]=1595750129,o[a+28>>2]=-1521486534,o[a+16>>2]=-23791573,o[a+20>>2]=1013904242,o[a+8>>2]=-2067093701,o[a+12>>2]=-1150833019,o[a>>2]=-222443256^(I<<8|n),o[a+4>>2]=I>>>24^1779033703,MA((E=a+384|0)+I|0,0,128-I|0),HA(E,i,I),HA(a+96|0,E,128),o[a+352>>2]=128,$A(E,128),I=128}else MA(a- -64|0,0,293),o[a+56>>2]=327033209,o[a+60>>2]=1541459225,o[a+48>>2]=-79577749,o[a+52>>2]=528734635,o[a+40>>2]=725511199,o[a+44>>2]=-1694144372,o[a+32>>2]=-1377402159,o[a+36>>2]=1359893119,o[a+24>>2]=1595750129,o[a+28>>2]=-1521486534,o[a+16>>2]=-23791573,o[a+20>>2]=1013904242,o[a+8>>2]=-2067093701,o[a+12>>2]=-1150833019,o[a>>2]=-222443256^n,o[a+4>>2]=1779033703,I=0;g:if(C|B)for(c=a+224|0,r=a+96|0;;){if(E=I+r|0,!B&C>>>0<=(i=256-I|0)>>>0){HA(E,g,C),o[a+352>>2]=C+o[a+352>>2];break g}if(HA(E,g,i),o[a+352>>2]=i+o[a+352>>2],f=I=o[a+68>>2],I=(t=(E=o[a+64>>2])+128|0)>>>0<128?I+1|0:I,o[a+64>>2]=t,o[a+68>>2]=I,I=o[a+76>>2],I=(f=E=-1==(0|f)&E>>>0>4294967167)>>>0>(E=E+o[a+72>>2]|0)>>>0?I+1|0:I,o[a+72>>2]=E,o[a+76>>2]=I,h(a,r),HA(r,c,128),I=o[a+352>>2]-128|0,o[a+352>>2]=I,g=g+i|0,!((B=B-(C>>>0>>0)|0)|(C=C-i|0)))break}G(a,A,n),D=e;break A}mA(),Q()}A=0}return A}function x(A,I,g,C){var B=0,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0;A:{if((i=o[A+56>>2])|(B=o[A+60>>2])){if(c=Q=16-i|0,r=(Q=(0|(n=0-((i>>>0>16)+B|0)|0))==(0|C)&g>>>0>Q>>>0|C>>>0>n>>>0)?c:g,c=Q=Q?n:C,Q|r){if(Q=0,i=0,!c&r>>>0>=4|c)for(f=-4&r,n=A- -64|0;B=Q+o[A+56>>2]|0,E[B+n|0]=a[I+Q|0],B=(y=1|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=(y=2|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=(y=3|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+y|0],B=i,i=(Q=Q+4|0)>>>0<4?B+1|0:B,B=t,t=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|e)!=(0|f)|(0|c)!=(0|B););if(n=B=0,B|(t=3&r))for(;e=Q+o[A+56>>2]|0,E[(A+e|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=w,w=B=(D=D+1|0)?B:B+1|0,(0|t)!=(0|D)|(0|n)!=(0|B););i=o[A+56>>2],B=o[A+60>>2]}if(B=B+c|0,B=(i=i+r|0)>>>0>>0?B+1|0:B,o[A+56>>2]=i,o[A+60>>2]=B,!B&i>>>0<16)break A;N(A,A- -64|0,16,0),o[A+56>>2]=0,o[A+60>>2]=0,g=(i=g)-r|0,C=C-((i>>>0>>0)+c|0)|0,I=I+r|0}if(!C&g>>>0>=16|C&&(N(A,I,i=-16&g,C),g&=15,C=0,I=I+i|0),g|C){if(D=0,w=0,Q=0,i=0,!C&g>>>0>=4|C)for(r=12&g,c=0,n=A- -64|0,e=0,t=0;B=Q+o[A+56>>2]|0,E[B+n|0]=a[I+Q|0],B=(f=1|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],B=(f=2|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],B=(f=3|Q)+o[A+56>>2]|0,E[B+n|0]=a[I+f|0],i=(Q=Q+4|0)>>>0<4?i+1|0:i,B=t,t=B=(e=e+4|0)>>>0<4?B+1|0:B,(0|r)!=(0|e)|(0|c)!=(0|B););if(n=B=0,B|(t=3&g))for(;B=Q+o[A+56>>2]|0,E[(A+B|0)- -64|0]=a[I+Q|0],i=(Q=Q+1|0)?i:i+1|0,B=w,w=B=(D=D+1|0)?B:B+1|0,(0|t)!=(0|D)|(0|n)!=(0|B););i=C+o[A+60>>2]|0,i=(I=g+o[A+56>>2]|0)>>>0>>0?i+1|0:i,o[A+56>>2]=I,o[A+60>>2]=i}}}function j(A,I,g){var C,B=0,Q=0,i=0,E=0,a=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0,u=0,k=0;y=o[I+4>>2],B=o[A+4>>2],D=o[I+8>>2],Q=o[A+8>>2],w=o[I+12>>2],i=o[A+12>>2],h=o[I+16>>2],E=o[A+16>>2],s=o[I+20>>2],a=o[A+20>>2],p=o[I+24>>2],n=o[A+24>>2],e=o[I+28>>2],r=o[A+28>>2],u=o[I+32>>2],f=o[A+32>>2],k=o[I+36>>2],t=o[A+36>>2],g=0-g|0,c=o[A>>2],o[A>>2]=g&(c^o[I>>2])^c,o[A+36>>2]=t^g&(t^k),o[A+32>>2]=f^g&(f^u),o[A+28>>2]=r^g&(r^e),o[A+24>>2]=n^g&(n^p),o[A+20>>2]=a^g&(a^s),o[A+16>>2]=E^g&(E^h),o[A+12>>2]=i^g&(i^w),o[A+8>>2]=Q^g&(Q^D),o[A+4>>2]=B^g&(B^y),B=o[A+40>>2],y=o[I+40>>2],Q=o[A+44>>2],D=o[I+44>>2],i=o[A+48>>2],w=o[I+48>>2],E=o[A+52>>2],h=o[I+52>>2],a=o[A+56>>2],s=o[I+56>>2],n=o[A+60>>2],p=o[I+60>>2],r=o[(e=A- -64|0)>>2],u=o[I- -64>>2],f=o[A+68>>2],k=o[I+68>>2],t=o[A+72>>2],c=o[I+72>>2],C=o[A+76>>2],o[A+76>>2]=C^g&(o[I+76>>2]^C),o[A+72>>2]=t^g&(t^c),o[A+68>>2]=f^g&(f^k),o[e>>2]=r^g&(r^u),o[A+60>>2]=n^g&(n^p),o[A+56>>2]=a^g&(a^s),o[A+52>>2]=E^g&(E^h),o[A+48>>2]=i^g&(i^w),o[A+44>>2]=Q^g&(Q^D),o[A+40>>2]=B^g&(B^y),B=o[A+80>>2],y=o[I+80>>2],Q=o[A+84>>2],D=o[I+84>>2],i=o[A+88>>2],w=o[I+88>>2],E=o[A+92>>2],h=o[I+92>>2],a=o[A+96>>2],s=o[I+96>>2],n=o[A+100>>2],p=o[I+100>>2],r=o[A+104>>2],e=o[I+104>>2],f=o[A+108>>2],u=o[I+108>>2],t=o[A+112>>2],k=o[I+112>>2],c=o[I+116>>2],I=o[A+116>>2],o[A+116>>2]=g&(c^I)^I,o[A+112>>2]=t^g&(t^k),o[A+108>>2]=f^g&(f^u),o[A+104>>2]=r^g&(r^e),o[A+100>>2]=n^g&(n^p),o[A+96>>2]=a^g&(a^s),o[A+92>>2]=E^g&(E^h),o[A+88>>2]=i^g&(i^w),o[A+84>>2]=Q^g&(Q^D),o[A+80>>2]=B^g&(B^y)}function X(A,I){var g,C,B=0;for(D=g=D-192|0,S(C=g+144|0,I),S(B=g+96|0,C),S(B,B),F(B,I,B),F(C,C,B),S(I=g+48|0,C),F(B,B,I),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),F(B,I,B),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(I,I,B),S(g,I),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),S(g,g),F(I,g,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(B,I,B),S(I,B),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(I,I,B),S(g,I),I=1;S(g,g),100!=(0|(I=I+1|0)););F(I=g+48|0,g,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),S(I,I),F(B=g+96|0,I,B),S(B,B),S(B,B),S(B,B),S(B,B),S(B,B),F(A,B,g+144|0),D=g+192|0}function q(A,I,g){var C,B=0,Q=0,i=0,E=0,a=0,n=0,f=0,t=0;D=C=D-128|0,o[A>>2]=1,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A+16>>2]=0,o[A+20>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+32>>2]=0,o[A+36>>2]=0,o[A+40>>2]=1,MA(A+44|0,0,76),j(A,B=r(I,960)+2704|0,(255&(1^(I=g-((g>>31&g)<<1)|0)))-1>>>31|0),j(A,B+120|0,(255&(2^I))-1>>>31|0),j(A,B+240|0,(255&(3^I))-1>>>31|0),j(A,B+360|0,(255&(4^I))-1>>>31|0),j(A,B+480|0,(255&(5^I))-1>>>31|0),j(A,B+600|0,(255&(6^I))-1>>>31|0),j(A,B+720|0,(255&(7^I))-1>>>31|0),j(A,B+840|0,(255&(8^I))-1>>>31|0),Q=o[A+40>>2],i=o[A+44>>2],E=o[A+48>>2],a=o[A+52>>2],n=o[A+56>>2],f=o[A+60>>2],t=o[(I=A- -64|0)>>2],B=o[I+4>>2],I=o[A+76>>2],o[C+40>>2]=o[A+72>>2],o[C+44>>2]=I,o[C+32>>2]=t,o[C+36>>2]=B,o[C+24>>2]=n,o[C+28>>2]=f,o[C+16>>2]=E,o[C+20>>2]=a,o[C+8>>2]=Q,o[C+12>>2]=i,Q=o[A+8>>2],i=o[A+12>>2],E=o[A+16>>2],a=o[A+20>>2],n=o[A+24>>2],f=o[A+28>>2],t=o[A>>2],B=o[A+4>>2],I=o[A+36>>2],o[C+80>>2]=o[A+32>>2],o[C+84>>2]=I,o[C+72>>2]=n,o[C+76>>2]=f,o[(I=C- -64|0)>>2]=E,o[I+4>>2]=a,o[C+56>>2]=Q,o[C+60>>2]=i,o[C+48>>2]=t,o[C+52>>2]=B,Q=o[A+80>>2],i=o[A+84>>2],E=o[A+88>>2],a=o[A+92>>2],n=o[A+96>>2],f=o[A+100>>2],t=o[A+104>>2],B=o[A+108>>2],I=o[A+112>>2],o[C+124>>2]=0-o[A+116>>2],o[C+120>>2]=0-I,o[C+116>>2]=0-B,o[C+112>>2]=0-t,o[C+108>>2]=0-f,o[C+104>>2]=0-n,o[C+100>>2]=0-a,o[C+96>>2]=0-E,o[C+92>>2]=0-i,o[C+88>>2]=0-Q,j(A,C+8|0,(128&g)>>>7|0),D=C+128|0}function z(A,I,g,C){var B=0,Q=0,i=0,o=0,n=0,r=0,f=0;if(g|C)A:for(f=A+224|0,n=A+96|0,Q=a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24;;){if(B=Q+n|0,!C&g>>>0<=(i=256-Q|0)>>>0){HA(B,I,g),I=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+g|0,E[A+352|0]=I,E[A+353|0]=I>>>8,E[A+354|0]=I>>>16,E[A+355|0]=I>>>24;break A}if(HA(B,I,i),B=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)+i|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,r=Q=a[A+68|0]|a[A+69|0]<<8|a[A+70|0]<<16|a[A+71|0]<<24,Q=(o=128+(B=a[A+64|0]|a[A+65|0]<<8|a[A+66|0]<<16|a[A+67|0]<<24)|0)>>>0<128?Q+1|0:Q,E[A+64|0]=o,E[A+65|0]=o>>>8,E[A+66|0]=o>>>16,E[A+67|0]=o>>>24,E[A+68|0]=Q,E[A+69|0]=Q>>>8,E[A+70|0]=Q>>>16,E[A+71|0]=Q>>>24,Q=a[A+76|0]|a[A+77|0]<<8|a[A+78|0]<<16|a[A+79|0]<<24,Q=(r=B=-1==(0|r)&B>>>0>4294967167)>>>0>(B=B+(a[A+72|0]|a[A+73|0]<<8|a[A+74|0]<<16|a[A+75|0]<<24)|0)>>>0?Q+1|0:Q,E[A+72|0]=B,E[A+73|0]=B>>>8,E[A+74|0]=B>>>16,E[A+75|0]=B>>>24,E[A+76|0]=Q,E[A+77|0]=Q>>>8,E[A+78|0]=Q>>>16,E[A+79|0]=Q>>>24,h(A,n),HA(n,f,128),B=Q=(a[A+352|0]|a[A+353|0]<<8|a[A+354|0]<<16|a[A+355|0]<<24)-128|0,E[A+352|0]=B,E[A+353|0]=B>>>8,E[A+354|0]=B>>>16,E[A+355|0]=B>>>24,I=I+i|0,!((C=C-(g>>>0>>0)|0)|(g=g-i|0)))break}return 0}function V(A,I){var g,C=0,B=0,Q=0,i=0,E=0,a=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0,s=0,p=0;C=o[I+40>>2],B=o[I+4>>2],Q=o[I+44>>2],i=o[I+8>>2],E=o[I+48>>2],a=o[I+12>>2],n=o[I+52>>2],r=o[I+16>>2],f=o[I+56>>2],e=o[I+20>>2],c=o[I+60>>2],y=o[I+24>>2],D=o[(t=I- -64|0)>>2],w=o[I+28>>2],h=o[I+68>>2],s=o[I+32>>2],p=o[I+72>>2],g=o[I>>2],o[A+36>>2]=o[I+36>>2]+o[I+76>>2],o[A+32>>2]=s+p,o[A+28>>2]=w+h,o[A+24>>2]=y+D,o[A+20>>2]=e+c,o[A+16>>2]=r+f,o[A+12>>2]=a+n,o[A+8>>2]=i+E,o[A+4>>2]=B+Q,o[A>>2]=C+g,C=o[I+40>>2],B=o[I+4>>2],Q=o[I+44>>2],i=o[I+8>>2],E=o[I+48>>2],a=o[I+12>>2],n=o[I+52>>2],r=o[I+16>>2],f=o[I+56>>2],e=o[I+20>>2],c=o[I+60>>2],y=o[I+24>>2],t=o[t>>2],D=o[I+28>>2],w=o[I+68>>2],h=o[I+32>>2],s=o[I+72>>2],p=o[I>>2],o[A+76>>2]=o[I+76>>2]-o[I+36>>2],o[A+72>>2]=s-h,o[A+68>>2]=w-D,o[A- -64>>2]=t-y,o[A+60>>2]=c-e,o[A+56>>2]=f-r,o[A+52>>2]=n-a,o[A+48>>2]=E-i,o[A+44>>2]=Q-B,o[A+40>>2]=C-p,C=o[I+80>>2],B=o[I+84>>2],Q=o[I+88>>2],i=o[I+92>>2],E=o[I+96>>2],a=o[I+100>>2],n=o[I+104>>2],r=o[I+108>>2],f=o[I+116>>2],o[A+112>>2]=o[I+112>>2],o[A+116>>2]=f,o[A+104>>2]=n,o[A+108>>2]=r,o[A+96>>2]=E,o[A+100>>2]=a,o[A+88>>2]=Q,o[A+92>>2]=i,o[A+80>>2]=C,o[A+84>>2]=B,F(A+120|0,I+120|0,1440)}function O(A,I){var g,C,B,Q,i,a=0,n=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;(f=o[A+56>>2])|(a=o[A+60>>2])&&(E[f+(n=A- -64|0)|0]=1,!((h=f+1|0)?a:a+1|0)&h>>>0<=15&&MA(65+(A+f|0)|0,0,15-f|0),E[A+80|0]=1,N(A,n,16,0)),h=o[A+52>>2],D=o[A+48>>2],n=o[A+44>>2],f=o[A+24>>2],e=o[A+28>>2]+(f>>>26|0)|0,t=o[A+32>>2]+(e>>>26|0)|0,g=o[A+36>>2]+(t>>>26|0)|0,a=(y=(f=(f=(67108863&f)+((c=o[A+20>>2]+r(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(i=(67108863&g)+((Q=(C=67108863&t)+((B=(w=67108863&e)+((c=f+((a=5+(y=67108863&c)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|c&(t=67108863&(c=(t>>>31|0)-1|0)))<<26|a&t|e&y)+o[A+40>>2]|0,E[0|I]=a,E[I+1|0]=a>>>8,E[I+2|0]=a>>>16,E[I+3|0]=a>>>24,y=a>>>0>>0,a=(w=e&w|t&B)<<20|f>>>6,f=0,a=(n=a+n|0)>>>0>>0?1:f,a=(f=n+y|0)>>>0>>0?a+1|0:a,E[(n=I)+4|0]=f,E[n+5|0]=f>>>8,E[n+6|0]=f>>>16,E[n+7|0]=f>>>24,f=0,n=(n=(t=e&C|t&Q)<<14|w>>>12)>>>0>(D=n+D|0)>>>0?1:f,f=D,D=a,f=(a=f+a|0)>>>0>>0?n+1|0:n,E[(n=I)+8|0]=a,E[n+9|0]=a>>>8,E[n+10|0]=a>>>16,E[n+11|0]=a>>>24,a=n=(c&i|e&g)<<8|t>>>18,a=(a=f)+(n=n+h|0)|0,E[I+12|0]=a,E[I+13|0]=a>>>8,E[I+14|0]=a>>>16,E[I+15|0]=a>>>24,$A(A,88)}function T(A,I,g){var C,B=0;return D=C=D-16|0,E[C+15|0]=0,B=-1,0|nI[o[8722]](A,I,g)||(E[C+15|0]=a[0|A]|a[C+15|0],E[C+15|0]=a[A+1|0]|a[C+15|0],E[C+15|0]=a[A+2|0]|a[C+15|0],E[C+15|0]=a[A+3|0]|a[C+15|0],E[C+15|0]=a[A+4|0]|a[C+15|0],E[C+15|0]=a[A+5|0]|a[C+15|0],E[C+15|0]=a[A+6|0]|a[C+15|0],E[C+15|0]=a[A+7|0]|a[C+15|0],E[C+15|0]=a[A+8|0]|a[C+15|0],E[C+15|0]=a[A+9|0]|a[C+15|0],E[C+15|0]=a[A+10|0]|a[C+15|0],E[C+15|0]=a[A+11|0]|a[C+15|0],E[C+15|0]=a[A+12|0]|a[C+15|0],E[C+15|0]=a[A+13|0]|a[C+15|0],E[C+15|0]=a[A+14|0]|a[C+15|0],E[C+15|0]=a[A+15|0]|a[C+15|0],E[C+15|0]=a[A+16|0]|a[C+15|0],E[C+15|0]=a[A+17|0]|a[C+15|0],E[C+15|0]=a[A+18|0]|a[C+15|0],E[C+15|0]=a[A+19|0]|a[C+15|0],E[C+15|0]=a[A+20|0]|a[C+15|0],E[C+15|0]=a[A+21|0]|a[C+15|0],E[C+15|0]=a[A+22|0]|a[C+15|0],E[C+15|0]=a[A+23|0]|a[C+15|0],E[C+15|0]=a[A+24|0]|a[C+15|0],E[C+15|0]=a[A+25|0]|a[C+15|0],E[C+15|0]=a[A+26|0]|a[C+15|0],E[C+15|0]=a[A+27|0]|a[C+15|0],E[C+15|0]=a[A+28|0]|a[C+15|0],E[C+15|0]=a[A+29|0]|a[C+15|0],E[C+15|0]=a[A+30|0]|a[C+15|0],E[C+15|0]=a[A+31|0]|a[C+15|0],B=(a[C+15|0]<<23)-8388608>>31),D=C+16|0,B}function W(A,I){var g,C,B,Q,i,a,n,f=0,t=0;C=o[I+32>>2],B=o[I+28>>2],Q=o[I+24>>2],i=o[I+20>>2],a=o[I+16>>2],n=o[I+12>>2],f=o[I+4>>2],t=o[I>>2],g=o[I+36>>2],I=o[I+8>>2],t=r((C+(B+(Q+(i+(a+(n+((f+(t+(r(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+t|0,E[0|A]=t,E[A+2|0]=t>>>16,E[A+1|0]=t>>>8,f=f+(t>>26)|0,E[A+5|0]=f>>>14,E[A+4|0]=f>>>6,E[A+3|0]=t>>>24&3|f<<2,I=I+(f>>25)|0,E[A+8|0]=I>>>13,E[A+7|0]=I>>>5,E[A+6|0]=I<<3|(29360128&f)>>>22,t=(I>>26)+n|0,E[A+11|0]=t>>>11,E[A+10|0]=t>>>3,E[A+9|0]=t<<5|(65011712&I)>>>21,f=(t>>25)+a|0,E[A+15|0]=f>>>18,E[A+14|0]=f>>>10,E[A+13|0]=f>>>2,I=(f>>26)+i|0,E[A+16|0]=I,E[A+12|0]=f<<6|(33030144&t)>>>19,E[A+18|0]=I>>>16,E[A+17|0]=I>>>8,f=(I>>25)+Q|0,E[A+21|0]=f>>>15,E[A+20|0]=f>>>7,E[A+19|0]=I>>>24&1|f<<1,I=(f>>26)+B|0,E[A+24|0]=I>>>13,E[A+23|0]=I>>>5,E[A+22|0]=I<<3|(58720256&f)>>>23,f=(I>>25)+C|0,E[A+27|0]=f>>>12,E[A+26|0]=f>>>4,E[A+25|0]=f<<4|(31457280&I)>>>21,I=g+(f>>26)|0,E[A+30|0]=I>>>10,E[A+29|0]=I>>>2,E[A+31|0]=(33292288&I)>>>18,E[A+28|0]=I<<6|(66060288&f)>>>20}function Z(A,I){var g;return o[12+(g=D-16|0)>>2]=A,o[g+8>>2]=I,o[g+4>>2]=0,o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]]^a[o[g+8>>2]],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+1|0]^a[o[g+8>>2]+1|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+2|0]^a[o[g+8>>2]+2|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+3|0]^a[o[g+8>>2]+3|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+4|0]^a[o[g+8>>2]+4|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+5|0]^a[o[g+8>>2]+5|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+6|0]^a[o[g+8>>2]+6|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+7|0]^a[o[g+8>>2]+7|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+8|0]^a[o[g+8>>2]+8|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+9|0]^a[o[g+8>>2]+9|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+10|0]^a[o[g+8>>2]+10|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+11|0]^a[o[g+8>>2]+11|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+12|0]^a[o[g+8>>2]+12|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+13|0]^a[o[g+8>>2]+13|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+14|0]^a[o[g+8>>2]+14|0],o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+15|0]^a[o[g+8>>2]+15|0],(o[g+4>>2]-1>>>8&1)-1|0}function $(A,I){var g,C=0,B=0;g=I;A:if(C=255&I){if(3&A)for(;;){if(!(I=a[0|A])|(0|I)==(255&g))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(I=o[A>>2]))&I-16843009&-2139062144))for(C=r(C,16843009);;){if((-1^(I^=C))&I-16843009&-2139062144)break I;if(I=o[A+4>>2],A=A+4|0,I-16843009&(-1^I)&-2139062144)break}for(;I=A,(C=a[0|A])&&(A=I+1|0,(0|C)!=(255&g)););A=I}else{C=A;I:{if(3&A)for(;;){if(!a[0|A])break I;if(!(3&(A=A+1|0)))break}for(;I=A,A=A+4|0,!((-1^(B=o[I>>2]))&B-16843009&-2139062144););for(;I=(A=I)+1|0,a[0|A];);}A=C+(A-C|0)|0}return a[0|A]==(255&g)?A:0}function AA(A,I){var g,C=0,B=0,Q=0,i=0,o=0;for(D=g=D-192|0,EA(A),MA(g- -64|0,54,128);E[0|(C=(i=g- -64|0)+B|0)]=a[0|C]^a[I+B|0],E[0|(Q=(C=1|B)+i|0)]=a[0|Q]^a[I+C|0],E[0|(Q=(C=2|B)+i|0)]=a[0|Q]^a[I+C|0],E[0|(C=(C=i)+(i=3|B)|0)]=a[0|C]^a[I+i|0],B=B+4|0,32!=(0|(o=o+4|0)););for(m(A,B=g- -64|0,128,0),EA(i=A+208|0),MA(B,92,128),B=0,o=0;E[0|(C=(A=g- -64|0)+B|0)]=a[0|C]^a[I+B|0],E[0|(Q=(C=1|B)+A|0)]=a[0|Q]^a[I+C|0],E[0|(Q=(C=2|B)+A|0)]=a[0|Q]^a[I+C|0],E[0|(C=(C=A)+(A=3|B)|0)]=a[0|C]^a[A+I|0],B=B+4|0,32!=(0|(o=o+4|0)););m(i,A=g- -64|0,128,0),$A(A,128),$A(g,64),D=g+192|0}function IA(A,I,g,C,B,Q,i){var E,a,n,r,f,t=0;return D=E=D-352|0,L(E,Q,i),!((!B&C>>>0>A-g>>>0|0!=(0|B))&A>>>0>g>>>0)&(!B&C>>>0<=g-A>>>0|A>>>0>=g>>>0)||(g=kA(A,g,C)),o[E+56>>2]=0,o[E+60>>2]=0,o[E+48>>2]=0,o[E+52>>2]=0,o[E+40>>2]=0,o[E+44>>2]=0,o[E+32>>2]=0,o[E+36>>2]=0,i=(t=!B&C>>>0>=32|0!=(0|B))?32:C,f=t=t?0:B,(n=!(i|t))||HA(E- -64|0,g,i),LA(a=E+32|0,a,r=i+32|0,t=r>>>0<32?t+1|0:t,Q=Q+16|0,E),OA(E+96|0,a),n||HA(A,E- -64|0,i),$A(E+32|0,64),!B&C>>>0>=33|B&&vA(A+i|0,g+i|0,C-i|0,B-(f+(C>>>0>>0)|0)|0,Q,E),$A(E,32),zA(g=E+96|0,A,C,B),TA(g,I),$A(g,256),D=E+352|0,0}function gA(A,I,g,C,B,Q,i){var E,a,n=0,r=0;D=E=D-96|0,L(E,Q,i),i=E+32|0,a=Q+16|0,nI[o[8724]](i,32,0,a,E),Q=-1;A:{if(!(0|nI[o[8718]](g,I,C,B,i))){if(Q=0,!A)break A;!((!B&C>>>0>I-A>>>0|0!=(0|B))&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)||(I=kA(A,I,C)),(i=(g=!B&C>>>0>=32|0!=(0|B))?32:C)|(g=g?0:B)?(r=HA(E- -64|0,I,i),LA(Q=E+32|0,Q,n=i+32|0,n>>>0<32?g+1|0:g,a,E),HA(A,r,i)):LA(Q=E+32|0,Q,n=i+32|0,n>>>0<32?g+1|0:g,a,E),$A(E+32|0,64),Q=0,!B&C>>>0<33||vA(A+i|0,I+i|0,C-i|0,B-(g+(C>>>0>>0)|0)|0,a,E)}$A(E,32)}return D=E+96|0,Q}function CA(A,I,g,C,B,Q,i,E,n,r){var f,t;return D=f=D-400|0,o[f+4>>2]=0,d(t=f+16|0,n,r),r=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,o[f+8>>2]=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,o[f+12>>2]=r,XA(r=f+80|0,64,f+4|0,t),OA(n=f+144|0,r),$A(r,64),zA(n,Q,i,E),zA(n,34816,0-i&15,0),zA(n,I,g,C),zA(n,34816,0-g&15,0),o[f+72>>2]=i,o[f+76>>2]=E,zA(n,Q=f+72|0,8,0),o[f+72>>2]=g,o[f+76>>2]=C,zA(n,Q,8,0),TA(n,Q=f+48|0),$A(n,256),n=Z(Q,B),$A(Q,16),A&&(n?(MA(A,0,g),n=-1):(_A(A,I,g,C,f+4|0,f+16|0),n=0)),$A(f+16|0,32),D=f+400|0,n}function BA(A,I,g,C,B,Q,i,E,n,r,f){var t,e,c;return D=t=D-384|0,o[t+4>>2]=0,d(e=t+16|0,r,f),f=a[r+20|0]|a[r+21|0]<<8|a[r+22|0]<<16|a[r+23|0]<<24,o[t+8>>2]=a[r+16|0]|a[r+17|0]<<8|a[r+18|0]<<16|a[r+19|0]<<24,o[t+12>>2]=f,XA(f=t- -64|0,64,c=t+4|0,e),OA(r=t+128|0,f),$A(f,64),zA(r,i,E,n),zA(r,34816,0-E&15,0),_A(A,C,B,Q,c,e),zA(r,A,B,Q),zA(r,34816,0-B&15,0),o[t+56>>2]=E,o[t+60>>2]=n,zA(r,A=t+56|0,8,0),o[t+56>>2]=B,o[t+60>>2]=Q,zA(r,A,8,0),TA(r,I),$A(r,256),g&&(o[g>>2]=16,o[g+4>>2]=0),$A(t+16|0,32),D=t+384|0,0}function QA(A,I,g,C){var B,Q=0;return D=B=D-208|0,o[B+72>>2]=0,o[B+76>>2]=0,Q=o[8487],o[B+8>>2]=o[8486],o[B+12>>2]=Q,Q=o[8489],o[B+16>>2]=o[8488],o[B+20>>2]=Q,Q=o[8491],o[B+24>>2]=o[8490],o[B+28>>2]=Q,Q=o[8493],o[B+32>>2]=o[8492],o[B+36>>2]=Q,Q=o[8495],o[B+40>>2]=o[8494],o[B+44>>2]=Q,Q=o[8497],o[B+48>>2]=o[8496],o[B+52>>2]=Q,Q=o[8499],o[B+56>>2]=o[8498],o[B+60>>2]=Q,o[B+64>>2]=0,o[B+68>>2]=0,Q=o[8485],o[B>>2]=o[8484],o[B+4>>2]=Q,m(B,I,g,C),M(B,A),D=B+208|0,0}function iA(A,I){var g,C=0,B=0,Q=0;if(E[15+(g=D-16|0)|0]=0,I){if(B=3&I,I>>>0>=4)for(Q=-4&I,I=0;E[g+15|0]=a[A+C|0]|a[g+15|0],E[g+15|0]=a[(1|C)+A|0]|a[g+15|0],E[g+15|0]=a[(2|C)+A|0]|a[g+15|0],E[g+15|0]=a[(3|C)+A|0]|a[g+15|0],C=C+4|0,(0|Q)!=(0|(I=I+4|0)););if(B)for(I=0;E[g+15|0]=a[A+C|0]|a[g+15|0],C=C+1|0,(0|B)!=(0|(I=I+1|0)););}return a[g+15|0]-1>>>8&1}function EA(A){var I=0;o[A+64>>2]=0,o[A+68>>2]=0,o[A+72>>2]=0,o[A+76>>2]=0,I=o[8485],o[A>>2]=o[8484],o[A+4>>2]=I,I=o[8487],o[A+8>>2]=o[8486],o[A+12>>2]=I,I=o[8489],o[A+16>>2]=o[8488],o[A+20>>2]=I,I=o[8491],o[A+24>>2]=o[8490],o[A+28>>2]=I,I=o[8493],o[A+32>>2]=o[8492],o[A+36>>2]=I,I=o[8495],o[A+40>>2]=o[8494],o[A+44>>2]=I,I=o[8497],o[A+48>>2]=o[8496],o[A+52>>2]=I,I=o[8499],o[A+56>>2]=o[8498],o[A+60>>2]=I}function oA(A,I,g){var C,B=0,Q=0;if(o[12+(C=D-16|0)>>2]=A,o[C+8>>2]=I,A=0,E[C+7|0]=0,g){if(I=1&g,1!=(0|g))for(Q=-2&g,g=0;E[C+7|0]=a[C+7|0]|a[o[C+12>>2]+A|0]^a[o[C+8>>2]+A|0],B=1|A,E[C+7|0]=a[C+7|0]|a[B+o[C+12>>2]|0]^a[o[C+8>>2]+B|0],A=A+2|0,(0|Q)!=(0|(g=g+2|0)););I&&(E[C+7|0]=a[C+7|0]|a[o[C+12>>2]+A|0]^a[o[C+8>>2]+A|0])}return(a[C+7|0]-1>>>8&1)-1|0}function aA(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,o=0,n=0,r=0;B=(g=a[A+C|0])^a[0|(I=C+2448|0)]|B,Q=g^a[I+192|0]|Q,i=g^a[I+160|0]|i,E=g^a[I+128|0]|E,o=g^a[I+96|0]|o,n=g^a[I- -64|0]|n,r=g^a[I+32|0]|r,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&a[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|o))-1|(255&(5^A|n))-1|(255&(A|r))-1|(255&(A|B))-1)>>>8&1}function nA(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),w=g|Q,A|i}function rA(A,I,g,C,B,Q,i,E,a,n){var r,f,t;return D=r=D-352|0,XA(t=r+32|0,64,a,n),OA(f=r+96|0,t),$A(t,64),zA(f,Q,i,E),zA(f,33920,0-i&15,0),zA(f,I,g,C),zA(f,33920,0-g&15,0),o[r+24>>2]=i,o[r+28>>2]=E,zA(f,Q=r+24|0,8,0),o[r+24>>2]=g,o[r+28>>2]=C,zA(f,Q,8,0),TA(f,r),$A(f,256),Q=Z(r,B),$A(r,16),A&&(Q?(MA(A,0,g),Q=-1):(wA(A,I,g,C,a,1,n),Q=0)),D=r+352|0,Q}function fA(A,I,g,C,B,Q,i,E,a,n,r){var f,t,e;return D=f=D-336|0,XA(e=f+16|0,64,n,r),OA(t=f+80|0,e),$A(e,64),zA(t,i,E,a),zA(t,33920,0-E&15,0),wA(A,C,B,Q,n,1,r),zA(t,A,B,Q),zA(t,33920,0-B&15,0),o[f+8>>2]=E,o[f+12>>2]=a,zA(t,A=f+8|0,8,0),o[f+8>>2]=B,o[f+12>>2]=Q,zA(t,A,8,0),TA(t,I),$A(t,256),g&&(o[g>>2]=16,o[g+4>>2]=0),D=f+336|0,0}function tA(A,I,g,C,B,Q,i,E,a,n){var r,f,t;return D=r=D-352|0,qA(t=r+32|0,a,n),OA(f=r+96|0,t),$A(t,64),zA(f,Q,i,E),o[r+24>>2]=i,o[r+28>>2]=E,zA(f,Q=r+24|0,8,0),zA(f,I,g,C),o[r+24>>2]=g,o[r+28>>2]=C,zA(f,Q,8,0),TA(f,r),$A(f,256),Q=Z(r,B),$A(r,16),A&&(Q?(MA(A,0,g),Q=-1):(bA(A,I,g,C,a,n),Q=0)),D=r+352|0,Q}function eA(A,I,g,C,B,Q,i,E,a,n,r){var f,t,e;return D=f=D-336|0,qA(e=f+16|0,n,r),OA(t=f+80|0,e),$A(e,64),zA(t,i,E,a),o[f+8>>2]=E,o[f+12>>2]=a,zA(t,i=f+8|0,8,0),bA(A,C,B,Q,n,r),zA(t,A,B,Q),o[f+8>>2]=B,o[f+12>>2]=Q,zA(t,i,8,0),TA(t,I),$A(t,256),g&&(o[g>>2]=16,o[g+4>>2]=0),D=f+336|0,0}function cA(A,I){var g;for(o[12+(g=D-16|0)>>2]=A,o[g+8>>2]=I,A=0,o[g+4>>2]=0;o[g+4>>2]=o[g+4>>2]|a[o[g+12>>2]+A|0]^a[o[g+8>>2]+A|0],I=1|A,o[g+4>>2]=o[g+4>>2]|a[I+o[g+12>>2]|0]^a[I+o[g+8>>2]|0],32!=(0|(A=A+2|0)););return(o[g+4>>2]-1>>>8&1)-1|0}function yA(A){var I=0,g=0,C=0,B=0;for(I=1;I=a[0|(g=A+C|0)]+I|0,E[0|g]=I,I=a[0|(g=(1|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=a[0|(g=(2|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=a[0|(g=(3|C)+A|0)]+(I>>>8|0)|0,E[0|g]=I,I=I>>>8|0,C=C+4|0,4!=(0|(B=B+4|0)););}function DA(A,I,g,C){var B,Q,i,E,o=0,a=0;return E=r(o=g>>>16|0,a=A>>>16|0),o=(65535&(a=((i=r(B=65535&g,Q=65535&A))>>>16|0)+r(a,B)|0))+r(o,Q)|0,w=(r(I,g)+E|0)+r(A,C)+(a>>>16)+(o>>>16)|0,65535&i|o<<16}function wA(A,I,g,C,B,i,E){var a=0,n=0;a=C,1==(((a=(n=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+(0!=(0|(a=(63&a)<<26|n>>>6)))|0)&i>>>0>(n=0-a|0)>>>0|1==(0|C)|C>>>0>1?(mA(),Q()):nI[o[8716]](A,I,g,C,B,i,E)}function hA(A,I){A|=0;var g,C=0,B=0,Q=0;if(D=g=D-16|0,I|=0)for(;E[g+15|0]=0,B=A+C|0,Q=0|t(34904,g+15|0,0),E[0|B]=Q,(0|(C=C+1|0))!=(0|I););D=g+16|0}function sA(A,I,g,C,B,Q,i){var E,o=0;return D=E=D-32|0,o=-1,!C&g>>>0<16||SA(E,Q,i)||(o=gA(A,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B,E),$A(E,32)),D=E+32|0,o}function pA(A){var I,g;return(A=(I=o[8712])+(g=A+7&-8)|0)>>>0<=I>>>0&&g||A>>>0>rI()<<16>>>0&&!(0|y(0|A))?(o[8916]=48,-1):(o[8712]=A,I)}function uA(A,I){var g,C,B;D=g=D-176|0,X(C=g+96|0,I+80|0),F(B=g+48|0,I,C),F(g,I+40|0,C),W(A,g),W(g+144|0,B),E[A+31|0]=a[A+31|0]^a[g+144|0]<<7,D=g+176|0}function kA(A,I,g){var C=0;if(A>>>0>>0)return HA(A,I,g);if(g)for(C=A+g|0,I=I+g|0;I=I-1|0,E[0|(C=C-1|0)]=a[0|I],g=g-1|0;);return A}function FA(A,I,g,C,B,i,E){var o,a=0;if(D=o=D-32|0,!C&g>>>0<4294967280)return a=-1,SA(o,i,E)||(a=IA(A+16|0,A,I,g,C,B,o),$A(o,32)),D=o+32|0,a;mA(),Q()}function lA(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?gA(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function SA(A,I,g){A|=0;var C,B=0;return D=C=D-32|0,B=-1,T(C,g|=0,I|=0)||(B=L(A,34832,C)),D=C+32|0,0|B}function HA(A,I,g){var C=0;if(g)for(C=A;E[0|C]=a[0|I],C=C+1|0,I=I+1|0,g=g-1|0;);return A}function MA(A,I,g){var C=0;if(g)for(C=A;E[0|C]=I,C=C+1|0,g=g-1|0;);return A}function GA(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(e(1260,1187,107,1067),Q()),0|G(A,I,255&g)}function UA(A,I){var g;D=g=D+-64|0,M(A,g),m(A=A+208|0,g,64,0),M(A,I),$A(g,64),D=g- -64|0}function JA(A,I,g,C,B,Q,i){return 0|IA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function NA(A,I,g,C,B,Q,i){return 0|gA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function YA(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function bA(A,I,g,C,B,i){1==(0|C)|C>>>0>1&&(mA(),Q()),nI[o[8715]](A,I,g,C,B,1,0,i)}function _A(A,I,g,C,B,i){1==(0|C)|C>>>0>1&&(mA(),Q()),nI[o[8716]](A,I,g,C,B,1,i)}function KA(){var A;D=A=D-16|0,E[A+15|0]=0,t(34940,A+15|0,0),D=A+16|0}function PA(A,I,g){return 0|T(A|=0,I|=0,g|=0)}function vA(A,I,g,C,B,Q){nI[o[8725]](A,I,g,C,B,1,0,Q)}function mA(){var A;(A=o[9050])&&nI[0|A](),c(),Q()}function dA(A,I){return A|=0,hA(I|=0,32),0|VA(A,I)}function LA(A,I,g,C,B,Q){nI[o[8725]](A,I,g,C,B,0,0,Q)}function RA(A){return A?31-f(A-1^A)|0:32}function xA(A,I,g,C){nI[o[8716]](A,I,40,0,g,0,C)}function jA(A,I){return 0|VA(A|=0,I|=0)}function XA(A,I,g,C){nI[o[8714]](A,I,0,g,C)}function qA(A,I,g){nI[o[8713]](A,64,0,I,g)}function zA(A,I,g,C){nI[o[8720]](A,I,g,C)}function VA(A,I){return 0|nI[o[8723]](A,I)}function OA(A,I){nI[o[8719]](A,I)}function TA(A,I){nI[o[8721]](A,I)}function WA(A,I,g,C){m(A,I,g,C)}function ZA(A){hA(A|=0,32)}function $A(A,I){MA(A,0,I)}function AI(){return 16}function II(){return 32}function gI(){return 24}function CI(){return-17}function BI(){return 64}function QI(){return 1}function iI(){return 3}function EI(){return 8}function oI(){return 0}B(I=a,1024,\"TGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAMS4wLjE4AHNvZGl1bV9iaW4yYmFzZTY0AAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4=\"),B(I,1440,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),B(I,1488,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),B(I,2480,\"AQ==\"),B(I,2512,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),B(I,2703,\"EIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/48+3QCBWdb/N4sF/kQUv/8OzLIBI8PZAC8zzgEm9qUAzhsG/p5XJADZNJL/fXvX/1U8H/+rDQcA2vVY/vwjPAA31qD/hWU4AOAgE/6TQOoAGpGiAXJ2fQD4/PoAZV7E/8aN4v4zKrYAhwwJ/m2s0v/F7MIB8UGaADCcL/+ZQzf/2qUi/kq0swDaQkcBWHpjANS12/9cKuf/7wCaAPVNt/9eUaoBEtXYAKtdRwA0XvgAEpeh/sXRQv+u9A/+ojC3ADE98P62XcMAx+QGAcgFEf+JLe3/bJQEAFpP7f8nP03/NVLPAY4Wdv9l6BIBXBpDAAXIWP8hqIr/leFIAALRG/8s9agB3O0R/x7Taf6N7t0AgFD1/m/+DgDeX74B3wnxAJJM1P9szWj/P3WZAJBFMAAj5G8AwCHB/3DWvv5zmJcAF2ZYADNK+ADix4/+zKJl/9BhvQH1aBIA5vYe/xeURQBuWDT+4rVZ/9AvWv5yoVD/IXT4ALOYV/9FkLEBWO4a/zogcQEBTUUAO3k0/5juUwA0CMEA5yfp/8ciigDeRK0AWzny/tzSf//AB/b+lyO7AMPspQBvXc4A1PeFAZqF0f+b5woAQE4mAHr5ZAEeE2H/Plv5AfiFTQDFP6j+dApSALjscf7Uy8L/PWT8/iQFyv93W5n/gU8dAGdnq/7t12//2DVFAO/wFwDCld3/JuHeAOj/tP52UoX/OdGxAYvohQCesC7+wnMuAFj35QEcZ78A3d6v/pXrLACX5Bn+2mlnAI5V0gCVgb7/1UFe/nWG4P9SxnUAnd3cAKNlJADFciUAaKym/gu2AABRSLz/YbwQ/0UGCgDHk5H/CAlzAUHWr//ZrdEAUH+mAPflBP6nt3z/WhzM/q878P8LKfgBbCgz/5Cxw/6W+n4AiltBAXg83v/1we8AHda9/4ACGQBQmqIATdxrAerNSv82pmf/dEgJAOReL/8eyBn/I9ZZ/z2wjP9T4qP/S4KsAIAmEQBfiZj/13yfAU9dAACUUp3+w4L7/yjKTP/7fuAAnWM+/s8H4f9gRMMAjLqd/4MT5/8qgP4ANNs9/mbLSACNBwv/uqTVAB96dwCF8pEA0Pzo/1vVtv+PBPr++ddKAKUebwGrCd8A5XsiAVyCGv9Nmy0Bw4sc/zvgTgCIEfcAbHkgAE/6vf9g4/z+JvE+AD6uff+bb13/CubOAWHFKP8AMTn+QfoNABL7lv/cbdL/Ba6m/iyBvQDrI5P/JfeN/0iNBP9na/8A91oEADUsKgACHvAABDs/AFhOJABxp7QAvkfB/8eepP86CKwATSEMAEE/AwCZTSH/rP5mAeTdBP9XHv4BkilW/4rM7/5sjRH/u/KHANLQfwBELQ7+SWA+AFE8GP+qBiT/A/kaACPVbQAWgTb/FSPh/+o9OP862QYAj3xYAOx+QgDRJrf/Iu4G/66RZgBfFtMAxA+Z/i5U6P91IpIB5/pK/xuGZAFcu8P/qsZwAHgcKgDRRkMAHVEfAB2oZAGpraAAayN1AD5gO/9RDEUBh+++/9z8EgCj3Dr/iYm8/1NmbQBgBkwA6t7S/7muzQE8ntX/DfHWAKyBjABdaPIAwJz7ACt1HgDhUZ4Af+jaAOIcywDpG5f/dSsF//IOL/8hFAYAifss/hsf9f+31n3+KHmVALqe1f9ZCOMARVgA/suH4QDJrssAk0e4ABJ5Kf5eBU4A4Nbw/iQFtAD7h+cBo4rUANL5dP5YgbsAEwgx/j4OkP+fTNMA1jNSAG115P5n38v/S/wPAZpH3P8XDVsBjahg/7W2hQD6MzcA6urU/q8/ngAn8DQBnr0k/9UoVQEgtPf/E2YaAVQYYf9FFd4AlIt6/9zV6wHoy/8AeTmTAOMHmgA1FpMBSAHhAFKGMP5TPJ3/kUipACJn7wDG6S8AdBME/7hqCf+3gVMAJLDmASJnSADbooYA9SqeACCVYP6lLJAAyu9I/teWBQAqQiQBhNevAFauVv8axZz/MeiH/me2UgD9gLABmbJ6APX6CgDsGLIAiWqEACgdKQAyHpj/fGkmAOa/SwCPK6oALIMU/ywNF//t/5sBn21k/3C1GP9o3GwAN9ODAGMM1f+Yl5H/7gWfAGGbCAAhbFEAAQNnAD5tIv/6m7QAIEfD/yZGkQGfX/UAReVlAYgc8ABP4BkATm55//iofAC7gPcAApPr/k8LhABGOgwBtQij/0+Jhf8lqgv/jfNV/7Dn1//MlqT/79cn/y5XnP4Io1j/rCLoAEIsZv8bNin+7GNX/yl7qQE0cisAdYYoAJuGGgDnz1v+I4Qm/xNmff4k44X/dgNx/x0NfACYYEoBWJLO/6e/3P6iElj/tmQXAB91NABRLmoBDAIHAEVQyQHR9qwADDCNAeDTWAB04p8AemKCAEHs6gHh4gn/z+J7AVnWOwBwh1gBWvTL/zELJgGBbLoAWXAPAWUuzP9/zC3+T//d/zNJEv9/KmX/8RXKAKDjBwBpMuwATzTF/2jK0AG0DxAAZcVO/2JNywApufEBI8F8ACObF//PNcAAC32jAfmeuf8EgzAAFV1v/z155wFFyCT/uTC5/2/uFf8nMhn/Y9ej/1fUHv+kkwX/gAYjAWzfbv/CTLIASmW0APMvMACuGSv/Uq39ATZywP8oN1sA12yw/ws4BwDg6UwA0WLK/vIZfQAswV3+ywixAIewEwBwR9X/zjuwAQRDGgAOj9X+KjfQ/zxDeADBFaMAY6RzAAoUdgCc1N7+oAfZ/3L1TAF1O3sAsMJW/tUPsABOzs/+1YE7AOn7FgFgN5j/7P8P/8VZVP9dlYUArqBxAOpjqf+YdFgAkKRT/18dxv8iLw//Y3iG/wXswQD5937/k7seADLmdf9s2dv/o1Gm/0gZqf6beU//HJtZ/gd+EQCTQSEBL+r9ABozEgBpU8f/o8TmAHH4pADi/toAvdHL/6T33v7/I6UABLzzAX+zRwAl7f7/ZLrwAAU5R/5nSEn/9BJR/uXShP/uBrT/C+Wu/+PdwAERMRwAo9fE/gl2BP8z8EcAcYFt/0zw5wC8sX8AfUcsARqv8wBeqRn+G+YdAA+LdwGoqrr/rMVM//xLvACJfMQASBZg/y2X+QHckWQAQMCf/3jv4gCBspIAAMB9AOuK6gC3nZIAU8fA/7isSP9J4YAATQb6/7pBQwBo9s8AvCCK/9oY8gBDilH+7YF5/xTPlgEpxxD/BhSAAJ92BQC1EI//3CYPABdAk/5JGg0AV+Q5Acx8gAArGN8A22PHABZLFP8TG34AnT7XAG4d5gCzp/8BNvy+AN3Mtv6znkH/UZ0DAMLanwCq3wAA4Asg/ybFYgCopCUAF1gHAaS6bgBgJIYA6vLlAPp5EwDy/nD/Ay9eAQnvBv9Rhpn+1v2o/0N84AD1X0oAHB4s/gFt3P+yWVkA/CRMABjGLv9MTW8AhuqI/ydeHQC5SOr/RkSH/+dmB/5N54wApy86AZRhdv8QG+EBps6P/26y1v+0g6IAj43hAQ3aTv9ymSEBYmjMAK9ydQGnzksAysRTATpAQwCKL28BxPeA/4ng4P6ecM8AmmT/AYYlawDGgE//f9Gb/6P+uf48DvMAH9tw/h3ZQQDIDXT+ezzE/+A7uP7yWcQAexBL/pUQzgBF/jAB53Tf/9GgQQHIUGIAJcK4/pQ/IgCL8EH/2ZCE/zgmLf7HeNIAbLGm/6DeBADcfnf+pWug/1Lc+AHxr4gAkI0X/6mKVACgiU7/4nZQ/zQbhP8/YIv/mPonALybDwDoM5b+KA/o//DlCf+Jrxv/S0lhAdrUCwCHBaIBa7nVAAL5a/8o8kYA28gZABmdDQBDUlD/xPkX/5EUlQAySJIAXkyUARj7QQAfwBcAuNTJ/3vpogH3rUgAolfb/n6GWQCfCwz+pmkdAEkb5AFxeLf/QqNtAdSPC/+f56gB/4BaADkOOv5ZNAr//QijAQCR0v8KgVUBLrUbAGeIoP5+vNH/IiNvANfbGP/UC9b+ZQV2AOjFhf/fp23/7VBW/0aLXgCewb8Bmw8z/w++cwBOh8//+QobAbV96QBfrA3+qtWh/yfsiv9fXVf/voBfAH0PzgCmlp8A4w+e/86eeP8qjYAAZbJ4AZxtgwDaDiz+96jO/9RwHABwEeT/WhAlAcXebAD+z1P/CVrz//P0rAAaWHP/zXR6AL/mwQC0ZAsB2SVg/5pOnADr6h//zrKy/5XA+wC2+ocA9hZpAHzBbf8C0pX/qRGqAABgbv91CQgBMnso/8G9YwAi46AAMFBG/tMz7AAtevX+LK4IAK0l6f+eQasAekXX/1pQAv+DamD+43KHAM0xd/6wPkD/UjMR//EU8/+CDQj+gNnz/6IbAf5advEA9sb2/zcQdv/In50AoxEBAIxreQBVoXb/JgCVAJwv7gAJpqYBS2K1/zJKGQBCDy8Ai+GfAEwDjv8O7rgAC881/7fAugGrIK7/v0zdAfeq2wAZrDL+2QnpAMt+RP+3XDAAf6e3AUEx/gAQP38B/hWq/zvgf/4WMD//G06C/ijDHQD6hHD+I8uQAGipqADP/R7/aCgm/l7kWADOEID/1Dd6/98W6gDfxX8A/bW1AZFmdgDsmST/1NlI/xQmGP6KPj4AmIwEAObcY/8BFdT/lMnnAPR7Cf4Aq9IAMzol/wH/Dv/0t5H+APKmABZKhAB52CkAX8Ny/oUYl/+c4uf/9wVN//aUc/7hXFH/3lD2/qp7Wf9Kx40AHRQI/4qIRv9dS1wA3ZMx/jR+4gDlfBcALgm1AM1ANAGD/hwAl57UAINATgDOGasAAOaLAL/9bv5n96cAQCgoASql8f87S+T+fPO9/8Rcsv+CjFb/jVk4AZPGBf/L+J7+kKKNAAus4gCCKhX/AaeP/5AkJP8wWKT+qKrcAGJH1gBb0E8An0zJAaYq1v9F/wD/BoB9/74BjACSU9r/1+5IAXp/NQC9dKX/VAhC/9YD0P/VboUAw6gsAZ7nRQCiQMj+WzpoALY6u/755IgAy4ZM/mPd6QBL/tb+UEWaAECY+P7siMr/nWmZ/pWvFAAWIxP/fHnpALr6xv6E5YsAiVCu/6V9RACQypT+6+/4AIe4dgBlXhH/ekhG/kWCkgB/3vgBRX92/x5S1/68ShP/5afC/nUZQv9B6jj+1RacAJc7Xf4tHBv/un6k/yAG7wB/cmMB2zQC/2Ngpv4+vn7/bN6oAUvirgDm4scAPHXa//z4FAHWvMwAH8KG/ntFwP+prST+N2JbAN8qZv6JAWYAnVoZAO96QP/8BukABzYU/1J0rgCHJTb/D7p9AONwr/9ktOH/Ku30//St4v74EiEAq2OW/0rrMv91UiD+aqjtAM9t0AHkCboAhzyp/rNcjwD0qmj/6y18/0ZjugB1ibcA4B/XACgJZAAaEF8BRNlXAAiXFP8aZDr/sKXLATR2RgAHIP7+9P71/6eQwv99cRf/sHm1AIhU0QCKBh7/WTAcACGbDv8Z8JoAjc1tAUZzPv8UKGv+iprH/17f4v+dqyYAo7EZ/i12A/8O3hcB0b5R/3Z76AEN1WX/ezd7/hv2pQAyY0z/jNYg/2FBQ/8YDBwArlZOAUD3YACgh0MAQjfz/5PMYP8aBiH/YjNTAZnV0P8CuDb/GdoLADFD9v4SlUj/DRlIACpP1gAqBCYBG4uQ/5W7FwASpIQA9VS4/njGaP9+2mAAOHXq/w0d1v5ELwr/p5qE/pgmxgBCsln/yC6r/w1jU//Su/3/qi0qAYrRfADWoo0ADOacAGYkcP4Dk0MANNd7/+mrNv9iiT4A99on/+fa7AD3v38Aw5JUAKWwXP8T1F7/EUrjAFgomQHGkwH/zkP1/vAD2v89jdX/YbdqAMPo6/5fVpoA0TDN/nbR8f/weN8B1R2fAKN/k/8N2l0AVRhE/kYUUP+9BYwBUmH+/2Njv/+EVIX/a9p0/3B6LgBpESAAwqA//0TeJwHY/VwAsWnN/5XJwwAq4Qv/KKJzAAkHUQCl2tsAtBYA/h2S/P+Sz+EBtIdgAB+jcACxC9v/hQzB/itOMgBBcXkBO9kG/25eGAFwrG8ABw9gACRVewBHlhX/0Em8AMALpwHV9SIACeZcAKKOJ//XWhsAYmFZAF5P0wBanfAAX9x+AWaw4gAkHuD+Ix9/AOfocwFVU4IA0kn1/y+Pcv9EQcUAO0g+/7eFrf5deXb/O7FR/+pFrf/NgLEA3PQzABr00QFJ3k3/owhg/paV0wCe/ssBNn+LAKHgOwAEbRb/3iot/9CSZv/sjrsAMs31/wpKWf4wT44A3kyC/x6mPwDsDA3/Mbj0ALtxZgDaZf0AmTm2/iCWKgAZxpIB7fE4AIxEBQBbpKz/TpG6/kM0zQDbz4EBbXMRADaPOgEV+Hj/s/8eAMHsQv8B/wf//cAw/xNF2QED1gD/QGWSAd99I//rSbP/+afiAOGvCgFhojoAanCrAVSsBf+FjLL/hvWOAGFaff+6y7n/300X/8BcagAPxnP/2Zj4AKuyeP/khjUAsDbBAfr7NQDVCmQBIsdqAJcf9P6s4Ff/Du0X//1VGv9/J3T/rGhkAPsORv/U0Ir//dP6ALAxpQAPTHv/Jdqg/1yHEAEKfnL/RgXg//f5jQBEFDwB8dK9/8PZuwGXA3EAl1yuAOc+sv/bt+EAFxch/821UAA5uPj/Q7QB/1p7Xf8nAKL/YPg0/1RCjAAif+T/wooHAaZuvAAVEZsBmr7G/9ZQO/8SB48ASB3iAcfZ+QDooUcBlb7JANmvX/5xk0P/io/H/3/MAQAdtlMBzuab/7rMPAAKfVX/6GAZ//9Z9//V/q8B6MFRABwrnP4MRQgAkxj4ABLGMQCGPCMAdvYS/zFY/v7kFbr/tkFwAdsWAf8WfjT/vTUx/3AZjwAmfzf/4mWj/tCFPf+JRa4BvnaR/zxi2//ZDfX/+ogKAFT+4gDJH30B8DP7/x+Dgv8CijL/19exAd8M7v/8lTj/fFtE/0h+qv53/2QAgofo/w5PsgD6g8UAisbQAHnYi/53EiT/HcF6ABAqLf/V8OsB5r6p/8Yj5P5urUgA1t3x/ziUhwDAdU7+jV3P/49BlQAVEmL/Xyz0AWq/TQD+VQj+1m6w/0mtE/6gxMf/7VqQAMGscf/Im4j+5FrdAIkxSgGk3df/0b0F/2nsN/8qH4EBwf/sAC7ZPACKWLv/4lLs/1FFl/+OvhABDYYIAH96MP9RQJwAq/OLAO0j9gB6j8H+1HqSAF8p/wFXhE0ABNQfABEfTgAnLa3+GI7Z/18JBv/jUwYAYjuC/j4eIQAIc9MBomGA/we4F/50HKj/+IqX/2L08AC6doIAcvjr/2mtyAGgfEf/XiSkAa9Bkv/u8ar+ysbFAORHiv4t9m3/wjSeAIW7sABT/Jr+Wb3d/6pJ/ACUOn0AJEQz/ipFsf+oTFb/JmTM/yY1IwCvE2EA4e79/1FRhwDSG//+60lrAAjPcwBSf4gAVGMV/s8TiABkpGUAUNBN/4TP7f8PAw//IaZuAJxfVf8luW8Blmoj/6aXTAByV4f/n8JAAAx6H//oB2X+rXdiAJpH3P6/OTX/qOig/+AgY//anKUAl5mjANkNlAHFcVkAlRyh/s8XHgBphOP/NuZe/4WtzP9ct53/WJD8/mYhWgCfYQMAtdqb//BydwBq1jX/pb5zAZhb4f9Yaiz/0D1xAJc0fAC/G5z/bjbsAQ4epv8nf88B5cccALzkvP5knesA9tq3AWsWwf/OoF8ATO+TAM+hdQAzpgL/NHUK/kk44/+YweEAhF6I/2W/0QAga+X/xiu0AWTSdgByQ5n/F1ga/1maXAHceIz/kHLP//xz+v8izkgAioV//wiyfAFXS2EAD+Vc/vBDg/92e+P+knho/5HV/wGBu0b/23c2AAETrQAtlpQB+FNIAMvpqQGOazgA9/kmAS3yUP8e6WcAYFJGABfJbwBRJx7/obdO/8LqIf9E44z+2M50AEYb6/9okE8ApOZd/taHnACau/L+vBSD/yRtrgCfcPEABW6VASSl2gCmHRMBsi5JAF0rIP74ve0AZpuNAMldw//xi/3/D29i/2xBo/6bT77/Sa7B/vYoMP9rWAv+ymFV//3MEv9x8kIAbqDC/tASugBRFTwAvGin/3ymYf7ShY4AOPKJ/ilvggBvlzoBb9WN/7es8f8mBsT/uQd7/y4L9gD1aXcBDwKh/wjOLf8Sykr/U3xzAdSNnQBTCNH+iw/o/6w2rf4y94QA1r3VAJC4aQDf/vgA/5Pw/xe8SAAHMzYAvBm0/ty0AP9ToBQAo73z/zrRwv9XSTwAahgxAPX53AAWracAdgvD/xN+7QBunyX/O1IvALS7VgC8lNABZCWF/wdwwQCBvJz/VGqB/4XhygAO7G//KBRlAKysMf4zNkr/+7m4/12b4P+0+eAB5rKSAEg5Nv6yPrgAd81IALnv/f89D9oAxEM4/+ogqwEu2+QA0Gzq/xQ/6P+lNccBheQF/zTNawBK7oz/lpzb/u+ssv/7vd/+II7T/9oPigHxxFAAHCRi/hbqxwA97dz/9jklAI4Rjv+dPhoAK+5f/gPZBv/VGfABJ9yu/5rNMP4TDcD/9CI2/owQmwDwtQX+m8E8AKaABP8kkTj/lvDbAHgzkQBSmSoBjOySAGtc+AG9CgMAP4jyANMnGAATyqEBrRu6/9LM7/4p0aL/tv6f/6x0NADDZ97+zUU7ADUWKQHaMMIAUNLyANK8zwC7oaH+2BEBAIjhcQD6uD8A3x5i/k2oogA7Na8AE8kK/4vgwgCTwZr/1L0M/gHIrv8yhXEBXrNaAK22hwBesXEAK1nX/4j8av97hlP+BfVC/1IxJwHcAuAAYYGxAE07WQA9HZsBy6vc/1xOiwCRIbX/qRiNATeWswCLPFD/2idhAAKTa/88+EgAreYvAQZTtv8QaaL+idRR/7S4hgEn3qT/3Wn7Ae9wfQA/B2EAP2jj/5Q6DABaPOD/VNT8AE/XqAD43ccBc3kBACSseAAgorv/OWsx/5MqFQBqxisBOUpXAH7LUf+Bh8MAjB+xAN2LwgAD3tcAg0TnALFWsv58l7QAuHwmAUajEQD5+7UBKjfjAOKhLAAX7G4AM5WOAV0F7ADat2r+QxhNACj10f/eeZkApTkeAFN9PABGJlIB5Qa8AG3enf83dj//zZe6AOMhlf/+sPYB47HjACJqo/6wK08Aal9OAbnxev+5Dj0AJAHKAA2yov/3C4QAoeZcAUEBuf/UMqUBjZJA/57y2gAVpH0A1Yt6AUNHVwDLnrIBl1wrAJhvBf8nA+//2f/6/7A/R/9K9U0B+q4S/yIx4//2Lvv/miMwAX2dPf9qJE7/YeyZAIi7eP9xhqv/E9XZ/the0f/8BT0AXgPKAAMat/9Avyv/HhcVAIGNTf9meAcBwkyMALyvNP8RUZQA6FY3AeEwrACGKir/7jIvAKkS/gAUk1f/DsPv/0X3FwDu5YD/sTFwAKhi+/95R/gA8wiR/vbjmf/bqbH++4ul/wyjuf+kKKv/mZ8b/vNtW//eGHABEtbnAGudtf7DkwD/wmNo/1mMvv+xQn7+arlCADHaHwD8rp4AvE/mAe4p4ADU6ggBiAu1AKZ1U/9Ew14ALoTJAPCYWACkOUX+oOAq/zvXQ/93w43/JLR5/s8vCP+u0t8AZcVE//9SjQH6iekAYVaFARBQRQCEg58AdF1kAC2NiwCYrJ3/WitbAEeZLgAnEHD/2Yhh/9zGGf6xNTEA3liG/4APPADPwKn/wHTR/2pO0wHI1bf/Bwx6/t7LPP8hbsf++2p1AOThBAF4Ogf/3cFU/nCFGwC9yMn/i4eWAOo3sP89MkEAmGyp/9xVAf9wh+MAohq6AM9guf70iGsAXZkyAcZhlwBuC1b/j3Wu/3PUyAAFyrcA7aQK/rnvPgDseBL+Yntj/6jJwv4u6tYAv4Ux/2OpdwC+uyMBcxUt//mDSABwBnv/1jG1/qbpIgBcxWb+/eTN/wM7yQEqYi4A2yUj/6nDJgBefMEBnCvfAF9Ihf54zr8AesXv/7G7T//+LgIB+qe+AFSBEwDLcab/+R+9/kidyv/QR0n/zxhIAAoQEgHSUUz/WNDA/37za//ujXj/x3nq/4kMO/8k3Hv/lLM8/vAMHQBCAGEBJB4m/3MBXf9gZ+f/xZ47AcCk8ADKyjn/GK4wAFlNmwEqTNcA9JfpABcwUQDvfzT+44Il//h0XQF8hHYArf7AAQbrU/9ur+cB+xy2AIH5Xf5UuIAATLU+AK+AugBkNYj+bR3iAN3pOgEUY0oAABagAIYNFQAJNDf/EVmMAK8iOwBUpXf/4OLq/wdIpv97c/8BEtb2APoHRwHZ3LkA1CNM/yZ9rwC9YdIAcu4s/ym8qf4tupoAUVwWAISgwQB50GL/DVEs/8ucUgBHOhX/0HK//jImkwCa2MMAZRkSADz61//phOv/Z6+OARAOXACNH27+7vEt/5nZ7wFhqC//+VUQARyvPv85/jYA3ud+AKYtdf4SvWD/5EwyAMj0XgDGmHgBRCJF/wxBoP5lE1oAp8V4/0Q2uf8p2rwAcagwAFhpvQEaUiD/uV2kAeTw7f9CtjUAq8Vc/2sJ6QHHeJD/TjEK/22qaf9aBB//HPRx/0o6CwA+3Pb/eZrI/pDSsv9+OYEBK/oO/2VvHAEvVvH/PUaW/zVJBf8eGp4A0RpWAIrtSgCkX7wAjjwd/qJ0+P+7r6AAlxIQANFvQf7Lhif/WGwx/4MaR//dG9f+aGld/x/sH/6HANP/j39uAdRJ5QDpQ6f+wwHQ/4QR3f8z2VoAQ+sy/9/SjwCzNYIB6WrGANmt3P9w5Rj/r5pd/kfL9v8wQoX/A4jm/xfdcf7rb9UAqnhf/vvdAgAtgp7+aV7Z//I0tP7VRC3/aCYcAPSeTAChyGD/zzUN/7tDlACqNvgAd6Ky/1MUCwAqKsABkp+j/7fobwBN5RX/RzWPABtMIgD2iC//2ye2/1zgyQETjg7/Rbbx/6N29QAJbWoBqrX3/04v7v9U0rD/1WuLACcmCwBIFZYASIJFAM1Nm/6OhRUAR2+s/uIqO/+zANcBIYDxAOr8DQG4TwgAbh5J//aNvQCqz9oBSppF/4r2Mf+bIGQAfUpp/1pVPf8j5bH/Pn3B/5lWvAFJeNQA0Xv2/ofRJv+XOiwBXEXW/w4MWP/8mab//c9w/zxOU//jfG4AtGD8/zV1If6k3FL/KQEb/yakpv+kY6n+PZBG/8CmEgBr+kIAxUEyAAGzEv//aAH/K5kj/1BvqABur6gAKWkt/9sOzf+k6Yz+KwF2AOlDwwCyUp//ild6/9TuWv+QI3z+GYykAPvXLP6FRmv/ZeNQ/lypNwDXKjEAcrRV/yHoGwGs1RkAPrB7/iCFGP/hvz4AXUaZALUqaAEWv+D/yMiM//nqJQCVOY0AwzjQ//6CRv8grfD/HdzHAG5kc/+E5fkA5Onf/yXY0f6ysdH/ty2l/uBhcgCJYaj/4d6sAKUNMQHS68z//AQc/kaglwDovjT+U/hd/z7XTQGvr7P/oDJCAHkw0AA/qdH/ANLIAOC7LAFJolIACbCP/xNMwf8dO6cBGCuaABy+vgCNvIEA6OvL/+oAbf82QZ8APFjo/3n9lv786YP/xm4pAVNNR//IFjv+av3y/xUMz//tQr0AWsbKAeGsfwA1FsoAOOaEAAFWtwBtvioA80SuAW3kmgDIsXoBI6C3/7EwVf9a2qn/+JhOAMr+bgAGNCsAjmJB/z+RFgBGal0A6IprAW6zPf/TgdoB8tFcACNa2QG2j2r/dGXZ/3L63f+tzAYAPJajAEmsLP/vblD/7UyZ/qGM+QCV6OUAhR8o/66kdwBxM9YAgeQC/kAi8wBr4/T/rmrI/1SZRgEyIxAA+krY/uy9Qv+Z+Q0A5rIE/90p7gB243n/XleM/v53XABJ7/b+dVeAABPTkf+xLvwA5Vv2AUWA9//KTTYBCAsJ/5lgpgDZ1q3/hsACAQDPAAC9rmsBjIZkAJ7B8wG2ZqsA65ozAI4Fe/88qFkB2Q5c/xPWBQHTp/4ALAbK/ngS7P8Pcbj/uN+LACixd/62e1r/sKWwAPdNwgAb6ngA5wDW/zsnHgB9Y5H/lkREAY3e+ACZe9L/bn+Y/+Uh1gGH3cUAiWECAAyPzP9RKbwAc0+C/14DhACYr7v/fI0K/37As/8LZ8YAlQYtANtVuwHmErL/SLaYAAPGuP+AcOABYaHmAP5jJv86n8UAl0LbADtFj/+5cPkAd4gv/3uChACoR1//cbAoAei5rQDPXXUBRJ1s/2YFk/4xYSEAWUFv/vceo/982d0BZvrYAMauS/45NxIA4wXsAeXVrQDJbdoBMenvAB43ngEZsmoAm2+8AV5+jADXH+4BTfAQANXyGQEmR6gAzbpd/jHTjP/bALT/hnalAKCThv9uuiP/xvMqAPOSdwCG66MBBPGH/8Euwf5ntE//4QS4/vJ2ggCSh7AB6m8eAEVC1f4pYHsAeV4q/7K/w/8ugioAdVQI/+kx1v7uem0ABkdZAezTewD0DTD+d5QOAHIcVv9L7Rn/keUQ/oFkNf+Glnj+qJ0yABdIaP/gMQ4A/3sW/5e5l/+qULgBhrYUAClkZQGZIRAATJpvAVbO6v/AoKT+pXtd/wHYpP5DEa//qQs7/54pPf9JvA7/wwaJ/xaTHf8UZwP/9oLj/3oogADiLxj+IyQgAJi6t/9FyhQAw4XDAN4z9wCpq14BtwCg/0DNEgGcUw//xTr5/vtZbv8yClj+MyvYAGLyxgH1l3EAq+zCAcUfx//lUSYBKTsUAP1o5gCYXQ7/9vKS/tap8P/wZmz+oKfsAJravACW6cr/GxP6AQJHhf+vDD8BkbfGAGh4c/+C+/cAEdSn/z57hP/3ZL0Am9+YAI/FIQCbOyz/ll3wAX8DV/9fR88Bp1UB/7yYdP8KFxcAicNdATZiYQDwAKj/lLx/AIZrlwBM/asAWoTAAJIWNgDgQjb+5rrl/ye2xACU+4L/QYNs/oABoACpMaf+x/6U//sGgwC7/oH/VVI+ALIXOv/+hAUApNUnAIb8kv4lNVH/m4ZSAM2n7v9eLbT/hCihAP5vcAE2S9kAs+bdAetev/8X8zABypHL/yd2Kv91jf0A/gDeACv7MgA2qeoBUETQAJTL8/6RB4cABv4AAPy5fwBiCIH/JiNI/9Mk3AEoGlkAqEDF/gPe7/8CU9f+tJ9pADpzwgC6dGr/5ffb/4F2wQDKrrcBpqFIAMlrk/7tiEoA6eZqAWlvqABA4B4BAeUDAGaXr//C7uT//vrUALvteQBD+2ABxR4LALdfzADNWYoAQN0lAf/fHv+yMNP/8cha/6fRYP85gt0ALnLI/z24QgA3thj+brYhAKu+6P9yXh8AEt0IAC/n/gD/cFMAdg/X/60ZKP7AwR//7hWS/6vBdv9l6jX+g9RwAFnAawEI0BsAtdkP/+eV6ACM7H4AkAnH/wxPtf6Ttsr/E222/zHU4QBKo8sAr+mUABpwMwDBwQn/D4f5AJbjggDMANsBGPLNAO7Qdf8W9HAAGuUiACVQvP8mLc7+8Frh/x0DL/8q4EwAuvOnACCED/8FM30Ai4cYAAbx2wCs5YX/9tYyAOcLz/+/flMBtKOq//U4GAGypNP/AxDKAWI5dv+Ng1n+ITMYAPOVW//9NA4AI6lD/jEeWP+zGyT/pYy3ADq9lwBYHwAAS6lCAEJlx/8Y2McBecQa/w5Py/7w4lH/XhwK/1PB8P/MwYP/Xg9WANoonQAzwdEAAPKxAGa59wCebXQAJodbAN+vlQDcQgH/VjzoABlgJf/heqIB17uo/56dLgA4q6IA6PBlAXoWCQAzCRX/NRnu/9ke6P59qZQADehmAJQJJQClYY0B5IMpAN4P8//+EhEABjztAWoDcQA7hL0AXHAeAGnQ1QAwVLP/u3nn/hvYbf+i3Wv+Se/D//ofOf+Vh1n/uRdzAQOjnf8ScPoAGTm7/6FgpAAvEPMADI37/kPquP8pEqEArwZg/6CsNP4YsLf/xsFVAXx5if+XMnL/3Ms8/8/vBQEAJmv/N+5e/kaYXgDV3E0BeBFF/1Wkvv/L6lEAJjEl/j2QfACJTjH+qPcwAF+k/ABpqYcA/eSGAECmSwBRSRT/z9IKAOpqlv9eIlr//p85/tyFYwCLk7T+GBe5ACk5Hv+9YUwAQbvf/+CsJf8iPl8B55DwAE1qfv5AmFsAHWKbAOL7Nf/q0wX/kMve/6Sw3f4F5xgAs3rNACQBhv99Rpf+YeT8AKyBF/4wWtH/luBSAVSGHgDxxC4AZ3Hq/y5lef4ofPr/hy3y/gn5qP+MbIP/j6OrADKtx/9Y3o7/yF+eAI7Ao/8HdYcAb3wWAOwMQf5EJkH/467+APT1JgDwMtD/oT/6ADzR7wB6IxMADiHm/gKfcQBqFH//5M1gAInSrv601JD/WWKaASJYiwCnonABQW7FAPElqQBCOIP/CslT/oX9u/+xcC3+xPsAAMT6l//u6Nb/ltHNABzwdgBHTFMB7GNbACr6gwFgEkD/dt4jAHHWy/96d7j/QhMkAMxA+QCSWYsAhj6HAWjpZQC8VBoAMfmBANDWS//Pgk3/c6/rAKsCif+vkboBN/WH/5pWtQFkOvb/bcc8/1LMhv/XMeYBjOXA/97B+/9RiA//s5Wi/xcnHf8HX0v+v1HeAPFRWv9rMcn/9NOdAN6Mlf9B2zj+vfZa/7I7nQEw2zQAYiLXABwRu/+vqRgAXE+h/+zIwgGTj+oA5eEHAcWoDgDrMzUB/XiuAMUGqP/KdasAoxXOAHJVWv8PKQr/whNjAEE32P6iknQAMs7U/0CSHf+enoMBZKWC/6wXgf99NQn/D8ESARoxC/+1rskBh8kO/2QTlQDbYk8AKmOP/mAAMP/F+VP+aJVP/+tuiP5SgCz/QSkk/ljTCgC7ebsAYobHAKu8s/7SC+7/QnuC/jTqPQAwcRf+BlZ4/3ey9QBXgckA8o3RAMpyVQCUFqEAZ8MwABkxq/+KQ4IAtkl6/pQYggDT5ZoAIJueAFRpPQCxwgn/pllWATZTuwD5KHX/bQPX/zWSLAE/L7MAwtgD/g5UiACIsQ3/SPO6/3URff/TOtP/XU/fAFpY9f+L0W//Rt4vAAr2T//G2bIA4+ELAU5+s/8+K34AZ5QjAIEIpf718JQAPTOOAFHQhgAPiXP/03fs/5/1+P8Choj/5os6AaCk/gByVY3/Maa2/5BGVAFVtgcALjVdAAmmof83orL/Lbi8AJIcLP6pWjEAeLLxAQ57f/8H8ccBvUIy/8aPZf6984f/jRgY/kthVwB2+5oB7TacAKuSz/+DxPb/iEBxAZfoOQDw2nMAMT0b/0CBSQH8qRv/KIQKAVrJwf/8efABus4pACvGYQCRZLcAzNhQ/qyWQQD55cT+aHtJ/01oYP6CtAgAaHs5ANzK5f9m+dMAVg7o/7ZO0QDv4aQAag0g/3hJEf+GQ+kAU/61ALfscAEwQIP/8djz/0HB4gDO8WT+ZIam/+3KxQA3DVEAIHxm/yjksQB2tR8B56CG/3e7ygAAjjz/gCa9/6bJlgDPeBoBNrisAAzyzP6FQuYAIiYfAbhwUAAgM6X+v/M3ADpJkv6bp83/ZGiY/8X+z/+tE/cA7grKAO+X8gBeOyf/8B1m/wpcmv/lVNv/oYFQANBazAHw267/nmaRATWyTP80bKgBU95rANMkbQB2OjgACB0WAO2gxwCq0Z0AiUcvAI9WIADG8gIA1DCIAVysugDml2kBYL/lAIpQv/7w2IL/YisG/qjEMQD9ElsBkEl5AD2SJwE/aBj/uKVw/n7rYgBQ1WL/ezxX/1KM9QHfeK3/D8aGAc487wDn6lz/Ie4T/6VxjgGwdyYAoCum/u9baQBrPcIBGQREAA+LMwCkhGr/InQu/qhfxQCJ1BcASJw6AIlwRf6WaZr/7MmdABfUmv+IUuP+4jvd/1+VwABRdjT/ISvXAQ6TS/9ZnHn+DhJPAJPQiwGX2j7/nFgIAdK4Yv8Ur3v/ZlPlANxBdAGW+gT/XI7c/yL3Qv/M4bP+l1GXAEco7P+KPz4ABk/w/7e5tQB2MhsAP+PAAHtjOgEy4Jv/EeHf/tzgTf8OLHsBjYCvAPjUyACWO7f/k2EdAJbMtQD9JUcAkVV3AJrIugACgPn/Uxh8AA5XjwCoM/UBfJfn/9DwxQF8vrkAMDr2ABTp6AB9EmL/Df4f//Wxgv9sjiMAq33y/owMIv+loaIAzs1lAPcZIgFkkTkAJ0Y5AHbMy//yAKIApfQeAMZ04gCAb5n/jDa2ATx6D/+bOjkBNjLGAKvTHf9riqf/rWvH/22hwQBZSPL/znNZ//r+jv6xyl7/UVkyAAdpQv8Z/v/+y0AX/0/ebP8n+UsA8XwyAO+YhQDd8WkAk5diANWhef7yMYkA6SX5/iq3GwC4d+b/2SCj/9D75AGJPoP/T0AJ/l4wcQARijL+wf8WAPcSxQFDN2gAEM1f/zAlQgA3nD8BQFJK/8g1R/7vQ30AGuDeAN+JXf8e4Mr/CdyEAMYm6wFmjVYAPCtRAYgcGgDpJAj+z/KUAKSiPwAzLuD/cjBP/wmv4gDeA8H/L6Do//9daf4OKuYAGopSAdAr9AAbJyb/YtB//0CVtv8F+tEAuzwc/jEZ2v+pdM3/dxJ4AJx0k/+ENW3/DQrKAG5TpwCd24n/BgOC/zKnHv88ny//gYCd/l4DvQADpkQAU9/XAJZawgEPqEEA41Mz/82rQv82uzwBmGYt/3ea4QDw94gAZMWy/4tH3//MUhABKc4q/5zA3f/Ye/T/2tq5/7u67//8rKD/wzQWAJCutf67ZHP/006w/xsHwQCT1Wj/WskK/1B7QgEWIboAAQdj/h7OCgDl6gUANR7SAIoI3P5HN6cASOFWAXa+vAD+wWUBq/ms/16et/5dAmz/sF1M/0ljT/9KQIH+9i5BAGPxf/72l2b/LDXQ/jtm6gCar6T/WPIgAG8mAQD/tr7/c7AP/qk8gQB67fEAWkw/AD5KeP96w24AdwSyAN7y0gCCIS7+nCgpAKeScAExo2//ebDrAEzPDv8DGcYBKevVAFUk1gExXG3/yBge/qjswwCRJ3wB7MOVAFokuP9DVar/JiMa/oN8RP/vmyP/NsmkAMQWdf8xD80AGOAdAX5xkAB1FbYAy5+NAN+HTQCw5rD/vuXX/2Mltf8zFYr/Gb1Z/zEwpf6YLfcAqmzeAFDKBQAbRWf+zBaB/7T8Pv7SAVv/km7+/9uiHADf/NUBOwghAM4Q9ACB0zAAa6DQAHA70QBtTdj+IhW5//ZjOP+zixP/uR0y/1RZEwBK+mL/4SrI/8DZzf/SEKcAY4RfASvmOQD+C8v/Y7w//3fB+/5QaTYA6LW9AbdFcP/Qq6X/L220/3tTpQCSojT/mgsE/5fjWv+SiWH+Pekp/14qN/9spOwAmET+AAqMg/8Kak/+856JAEOyQv6xe8b/Dz4iAMVYKv+VX7H/mADG/5X+cf/hWqP/fdn3ABIR4ACAQnj+wBkJ/zLdzQAx1EYA6f+kAALRCQDdNNv+rOD0/144zgHyswL/H1ukAeYuiv+95twAOS89/28LnQCxW5gAHOZiAGFXfgDGWZH/p09rAPlNoAEd6eb/lhVW/jwLwQCXJST+uZbz/+TUUwGsl7QAyambAPQ86gCO6wQBQ9o8AMBxSwF088//QaybAFEenP9QSCH+Eudt/45rFf59GoT/sBA7/5bJOgDOqckA0HniACisDv+WPV7/ODmc/408kf8tbJX/7pGb/9FVH/7ADNIAY2Jd/pgQlwDhudwAjess/6CsFf5HGh//DUBd/hw4xgCxPvgBtgjxAKZllP9OUYX/gd7XAbypgf/oB2EAMXA8/9nl+wB3bIoAJxN7/oMx6wCEVJEAguaU/xlKuwAF9Tb/udvxARLC5P/xymYAaXHKAJvrTwAVCbL/nAHvAMiUPQBz99L/Md2HADq9CAEjLgkAUUEF/zSeuf99dC7/SowN/9JcrP6TF0cA2eD9/nNstP+ROjD+27EY/5z/PAGak/IA/YZXADVL5QAww97/H68y/5zSeP/QI97/EvizAQIKZf+dwvj/nsxl/2j+xf9PPgQAsqxlAWCS+/9BCpwAAoml/3QE5wDy1wEAEyMd/yuhTwA7lfYB+0KwAMghA/9Qbo7/w6ERAeQ4Qv97L5H+hASkAEOurAAZ/XIAV2FXAfrcVABgW8j/JX07ABNBdgChNPH/7awG/7C///8BQYL+377mAGX95/+SI20A+h1NATEAEwB7WpsBFlYg/9rVQQBvXX8APF2p/wh/tgARug7+/Yn2/9UZMP5M7gD/+FxG/2PgiwC4Cf8BB6TQAM2DxgFX1scAgtZfAN2V3gAXJqv+xW7VACtzjP7XsXYAYDRCAXWe7QAOQLb/Lj+u/55fvv/hzbH/KwWO/6xj1P/0u5MAHTOZ/+R0GP4eZc8AE/aW/4bnBQB9huIBTUFiAOyCIf8Fbj4ARWx//wdxFgCRFFP+wqHn/4O1PADZ0bH/5ZTU/gODuAB1sbsBHA4f/7BmUAAyVJf/fR82/xWdhf8Ts4sB4OgaACJ1qv+n/Kv/SY3O/oH6IwBIT+wB3OUU/ynKrf9jTO7/xhbg/2zGw/8kjWAB7J47/2pkVwBu4gIA4+reAJpdd/9KcKT/Q1sC/xWRIf9m1on/r+Zn/qP2pgBd93T+p+Ac/9wCOQGrzlQAe+QR/xt4dwB3C5MBtC/h/2jIuf6lAnIATU7UAC2asf8YxHn+Up22AFoQvgEMk8UAX++Y/wvrRwBWknf/rIbWADyDxACh4YEAH4J4/l/IMwBp59L/OgmU/yuo3f987Y4AxtMy/i71ZwCk+FQAmEbQ/7R1sQBGT7kA80ogAJWczwDFxKEB9TXvAA9d9v6L8DH/xFgk/6ImewCAyJ0Brkxn/62pIv7YAav/cjMRAIjkwgBuljj+avafABO4T/+WTfD/m1CiAAA1qf8dl1YARF4QAFwHbv5idZX/+U3m//0KjADWfFz+I3brAFkwOQEWNaYAuJA9/7P/wgDW+D3+O272AHkVUf6mA+QAakAa/0Xohv/y3DX+LtxVAHGV9/9hs2f/vn8LAIfRtgBfNIEBqpDO/3rIzP+oZJIAPJCV/kY8KAB6NLH/9tNl/67tCAAHM3gAEx+tAH7vnP+PvcsAxIBY/+mF4v8efa3/yWwyAHtkO//+owMB3ZS1/9aIOf7etIn/z1g2/xwh+/9D1jQB0tBkAFGqXgCRKDUA4G/n/iMc9P/ix8P+7hHmANnZpP6pnd0A2i6iAcfPo/9sc6IBDmC7/3Y8TAC4n5gA0edH/iqkuv+6mTP+3au2/6KOrQDrL8EAB4sQAV+kQP8Q3aYA28UQAIQdLP9kRXX/POtY/ihRrQBHvj3/u1idAOcLFwDtdaQA4ajf/5pydP+jmPIBGCCqAH1icf6oE0wAEZ3c/ps0BQATb6H/R1r8/61u8AAKxnn//f/w/0J70gDdwtf+eaMR/+EHYwC+MbYAcwmFAegaiv/VRIQALHd6/7NiMwCVWmoARzLm/wqZdv+xRhkApVfNADeK6gDuHmEAcZvPAGKZfwAia9v+dXKs/0y0//7yObP/3SKs/jiiMf9TA///cd29/7wZ5P4QWFn/RxzG/hYRlf/zef7/a8pj/wnODgHcL5kAa4knAWExwv+VM8X+ujoL/2sr6AHIBg7/tYVB/t3kq/97PucB4+qz/yK91P70u/kAvg1QAYJZAQDfha0ACd7G/0J/SgCn2F3/m6jGAUKRAABEZi4BrFqaANiAS/+gKDMAnhEbAXzwMQDsyrD/l3zA/ybBvgBftj0Ao5N8//+lM/8cKBH+12BOAFaR2v4fJMr/VgkFAG8pyP/tbGEAOT4sAHW4DwEt8XQAmAHc/52lvAD6D4MBPCx9/0Hc+/9LMrgANVqA/+dQwv+IgX8BFRK7/y06of9HkyIArvkL/iONHQDvRLH/c246AO6+sQFX9ab/vjH3/5JTuP+tDif/ktdoAI7feACVyJv/1M+RARC12QCtIFf//yO1AHffoQHI317/Rga6/8BDVf8yqZgAkBp7/zjzs/4URIgAJ4y8/v3QBf/Ic4cBK6zl/5xouwCX+6cANIcXAJeZSACTxWv+lJ4F/+6PzgB+mYn/WJjF/gdEpwD8n6X/7042/xg/N/8m3l4A7bcM/87M0gATJ/b+HkrnAIdsHQGzcwAAdXZ0AYQG/P+RgaEBaUONAFIl4v/u4uT/zNaB/qJ7ZP+5eeoALWznAEIIOP+EiIAArOBC/q+dvADm3+L+8ttFALgOdwFSojgAcnsUAKJnVf8x72P+nIfXAG//p/4nxNYAkCZPAfmofQCbYZz/FzTb/5YWkAAslaX/KH+3AMRN6f92gdL/qofm/9Z3xgDp8CMA/TQH/3VmMP8VzJr/s4ix/xcCAwGVgln//BGfAUY8GgCQaxEAtL48/zi2O/9uRzb/xhKB/5XgV//fFZj/iha2//qczQDsLdD/T5TyAWVG0QBnTq4AZZCs/5iI7QG/wogAcVB9AZgEjQCbljX/xHT1AO9ySf4TUhH/fH3q/yg0vwAq0p7/m4SlALIFKgFAXCj/JFVN/7LkdgCJQmD+c+JCAG7wRf6Xb1AAp67s/+Nsa/+88kH/t1H/ADnOtf8vIrX/1fCeAUdLXwCcKBj/ZtJRAKvH5P+aIikA469LABXvwwCK5V8BTMAxAHV7VwHj4YIAfT4//wLGqwD+JA3+kbrOAJT/9P8jAKYAHpbbAVzk1ABcxjz+PoXI/8kpOwB97m3/tKPuAYx6UgAJFlj/xZ0v/5leOQBYHrYAVKFVALKSfACmpgf/FdDfAJy28gCbebkAU5yu/poQdv+6U+gB3zp5/x0XWAAjfX//qgWV/qQMgv+bxB0AoWCIAAcjHQGiJfsAAy7y/wDZvAA5ruIBzukCADm7iP57vQn/yXV//7okzADnGdgAUE5pABOGgf+Uy0QAjVF9/vilyP/WkIcAlzem/ybrWwAVLpoA3/6W/yOZtP99sB0BK2Ie/9h65v/poAwAObkM/vBxB/8FCRD+GltsAG3GywAIkygAgYbk/3y6KP9yYoT+poQXAGNFLAAJ8u7/uDU7AISBZv80IPP+k9/I/3tTs/6HkMn/jSU4AZc84/9aSZwBy6y7AFCXL/9eief/JL87/+HRtf9K19X+Bnaz/5k2wQEyAOcAaJ1IAYzjmv+24hD+YOFc/3MUqv4G+k4A+Eut/zVZBv8AtHYASK0BAEAIzgGuhd8AuT6F/9YLYgDFH9AAq6f0/xbntQGW2rkA96lhAaWL9/8veJUBZ/gzADxFHP4Zs8QAfAfa/jprUQC46Zz//EokAHa8QwCNXzX/3l6l/i49NQDOO3P/L+z6/0oFIAGBmu7/aiDiAHm7Pf8DpvH+Q6qs/x3Ysv8XyfwA/W7zAMh9OQBtwGD/NHPuACZ58//JOCEAwnaCAEtgGf+qHub+Jz/9ACQt+v/7Ae8AoNRcAS3R7QDzIVf+7VTJ/9QSnf7UY3//2WIQ/ous7wCoyYL/j8Gp/+6XwQHXaCkA7z2l/gID8gAWy7H+scwWAJWB1f4fCyn/AJ95/qAZcv+iUMgAnZcLAJqGTgHYNvwAMGeFAGncxQD9qE3+NbMXABh58AH/LmD/azyH/mLN+f8/+Xf/eDvT/3K0N/5bVe0AldRNAThJMQBWxpYAXdGgAEXNtv/0WisAFCSwAHp03QAzpycB5wE//w3FhgAD0SL/hzvKAKdkTgAv30wAuTw+ALKmewGEDKH/Pa4rAMNFkAB/L78BIixOADnqNAH/Fij/9l6SAFPkgAA8TuD/AGDS/5mv7ACfFUkAtHPE/oPhagD/p4YAnwhw/3hEwv+wxMb/djCo/12pAQBwyGYBShj+ABONBP6OPj8Ag7O7/02cm/93VqQAqtCS/9CFmv+Umzr/onjo/vzVmwDxDSoAXjKDALOqcACMU5f/N3dUAYwj7/+ZLUMB7K8nADaXZ/+eKkH/xO+H/lY1ywCVYS/+2CMR/0YDRgFnJFr/KBqtALgwDQCj29n/UQYB/92qbP7p0F0AZMn5/lYkI//Rmh4B48n7/wK9p/5kOQMADYApAMVkSwCWzOv/ka47AHj4lf9VN+EActI1/sfMdwAO90oBP/uBAENolwGHglAAT1k3/3Xmnf8ZYI8A1ZEFAEXxeAGV81//cioUAINIAgCaNRT/ST5tAMRmmAApDMz/eiYLAfoKkQDPfZQA9vTe/ykgVQFw1X4AovlWAUfGf/9RCRUBYicE/8xHLQFLb4kA6jvnACAwX//MH3IBHcS1/zPxp/5dbY4AaJAtAOsMtf80cKQATP7K/64OogA965P/K0C5/ul92QDzWKf+SjEIAJzMQgB81nsAJt12AZJw7AByYrEAl1nHAFfFcAC5laEALGClAPizFP+829j+KD4NAPOOjQDl487/rMoj/3Ww4f9SbiYBKvUO/xRTYQAxqwoA8nd4ABnoPQDU8JP/BHM4/5ER7/7KEfv/+RL1/2N17wC4BLP/9u0z/yXvif+mcKb/Ubwh/7n6jv82u60A0HDJAPYr5AFouFj/1DTE/zN1bP/+dZsALlsP/1cOkP9X48wAUxpTAZ9M4wCfG9UBGJdsAHWQs/6J0VIAJp8KAHOFyQDftpwBbsRd/zk86QAFp2n/msWkAGAiuv+ThSUB3GO+AAGnVP8UkasAwsX7/l9Ohf/8+PP/4V2D/7uGxP/YmaoAFHae/owBdgBWng8BLdMp/5MBZP5xdEz/039sAWcPMADBEGYBRTNf/2uAnQCJq+kAWnyQAWqhtgCvTOwByI2s/6M6aADptDT/8P0O/6Jx/v8m74r+NC6mAPFlIf6DupwAb9A+/3xeoP8frP4AcK44/7xjG/9DivsAfTqAAZyYrv+yDPf//FSeAFLFDv6syFP/JScuAWrPpwAYvSIAg7KQAM7VBACh4tIASDNp/2Etu/9OuN//sB37AE+gVv90JbIAUk3VAVJUjf/iZdQBr1jH//Ve9wGsdm3/prm+AIO1eABX/l3/hvBJ/yD1j/+Lomf/s2IS/tnMcACT33j/NQrzAKaMlgB9UMj/Dm3b/1vaAf/8/C/+bZx0/3MxfwHMV9P/lMrZ/xpV+f8O9YYBTFmp//It5gA7Yqz/ckmE/k6bMf+eflQAMa8r/xC2VP+dZyMAaMFt/0PdmgDJrAH+CKJYAKUBHf99m+X/HprcAWfvXADcAW3/ysYBAF4CjgEkNiwA6+Ke/6r71v+5TQkAYUryANujlf/wI3b/33JY/sDHAwBqJRj/yaF2/2FZYwHgOmf/ZceT/t48YwDqGTsBNIcbAGYDW/6o2OsA5eiIAGg8gQAuqO4AJ79DAEujLwCPYWL/ONioAajp/P8jbxb/XFQrABrIVwFb/ZgAyjhGAI4ITQBQCq8B/MdMABZuUv+BAcIAC4A9AVcOkf/93r4BD0iuAFWjVv46Yyz/LRi8/hrNDwAT5dL++EPDAGNHuACaxyX/l/N5/yYzS//JVYL+LEH6ADmT8/6SKzv/WRw1ACFUGP+zMxL+vUZTAAucswFihncAnm9vAHeaSf/IP4z+LQ0N/5rAAv5RSCoALqC5/ixwBgCS15UBGrBoAEQcVwHsMpn/s4D6/s7Bv/+mXIn+NSjvANIBzP6orSMAjfMtASQybf8P8sL/4596/7Cvyv5GOUgAKN84ANCiOv+3Yl0AD28MAB4ITP+Ef/b/LfJnAEW1D/8K0R4AA7N5APHo2gF7x1j/AtLKAbyCUf9eZdABZyQtAEzBGAFfGvH/paK7ACRyjADKQgX/JTiTAJgL8wF/Vej/+ofUAbmxcQBa3Ev/RfiSADJvMgBcFlAA9CRz/qNkUv8ZwQYBfz0kAP1DHv5B7Kr/oRHX/j+vjAA3fwQAT3DpAG2gKACPUwf/QRru/9mpjP9OXr3/AJO+/5NHuv5qTX//6Z3pAYdX7f/QDewBm20k/7Rk2gC0oxIAvm4JARE/e/+ziLT/pXt7/5C8Uf5H8Gz/GXAL/+PaM/+nMur/ck9s/x8Tc/+38GMA41eP/0jZ+P9mqV8BgZWVAO6FDAHjzCMA0HMaAWYI6gBwWI8BkPkOAPCerP5kcHcAwo2Z/ig4U/95sC4AKjVM/56/mgBb0VwArQ0QAQVI4v/M/pUAULjPAGQJev52Zav//MsA/qDPNgA4SPkBOIwN/wpAa/5bZTT/4bX4AYv/hADmkREA6TgXAHcB8f/VqZf/Y2MJ/rkPv/+tZ20Brg37/7JYB/4bO0T/CiEC//hhOwAaHpIBsJMKAF95zwG8WBgAuV7+/nM3yQAYMkYAeDUGAI5CkgDk4vn/aMDeAa1E2wCiuCT/j2aJ/50LFwB9LWIA613h/jhwoP9GdPMBmfk3/4EnEQHxUPQAV0UVAV7kSf9OQkH/wuPnAD2SV/+tmxf/cHTb/tgmC/+DuoUAXtS7AGQvWwDM/q//3hLX/q1EbP/j5E//Jt3VAKPjlv4fvhIAoLMLAQpaXv/crlgAo9Pl/8eINACCX93/jLzn/otxgP91q+z+MdwU/zsUq//kbbwAFOEg/sMQrgDj/ogBhydpAJZNzv/S7uIAN9SE/u85fACqwl3/+RD3/xiXPv8KlwoAT4uy/3jyygAa29UAPn0j/5ACbP/mIVP/US3YAeA+EQDW2X0AYpmZ/7Owav6DXYr/bT4k/7J5IP94/EYA3PglAMxYZwGA3Pv/7OMHAWoxxv88OGsAY3LuANzMXgFJuwEAWZoiAE7Zpf8Ow/n/Ceb9/82H9QAa/Af/VM0bAYYCcAAlniAA51vt/7+qzP+YB94AbcAxAMGmkv/oE7X/aY40/2cQGwH9yKUAw9kE/zS9kP97m6D+V4I2/054Pf8OOCkAGSl9/1eo9QDWpUYA1KkG/9vTwv5IXaT/xSFn/yuOjQCD4awA9GkcAERE4QCIVA3/gjko/otNOABUljUANl+dAJANsf5fc7oAdRd2//Sm8f8LuocAsmrL/2HaXQAr/S0ApJgEAIt27wBgARj+65nT/6huFP8y77AAcinoAMH6NQD+oG/+iHop/2FsQwDXmBf/jNHUACq9owDKKjL/amq9/75E2f/pOnUA5dzzAcUDBAAleDb+BJyG/yQ9q/6liGT/1OgOAFquCgDYxkH/DANAAHRxc//4ZwgA530S/6AcxQAeuCMB30n5/3sULv6HOCX/rQ3lAXehIv/1PUkAzX1wAIlohgDZ9h7/7Y6PAEGfZv9spL4A23Wt/yIleP7IRVAAH3za/koboP+6msf/R8f8AGhRnwERyCcA0z3AARruWwCU2QwAO1vV/wtRt/+B5nr/csuRAXe0Qv9IirQA4JVqAHdSaP/QjCsAYgm2/81lhv8SZSYAX8Wm/8vxkwA+0JH/hfb7AAKpDgAN97gAjgf+ACTIF/9Yzd8AW4E0/xW6HgCP5NIB9+r4/+ZFH/6wuof/7s00AYtPKwARsNn+IPNDAPJv6QAsIwn/43JRAQRHDP8mab8AB3Uy/1FPEAA/REH/nSRu/03xA//iLfsBjhnOAHh70QEc/u7/BYB+/1ve1/+iD78AVvBJAIe5Uf4s8aMA1NvS/3CimwDPZXYAqEg4/8QFNABIrPL/fhad/5JgO/+ieZj+jBBfAMP+yP5SlqIAdyuR/sysTv+m4J8AaBPt//V+0P/iO9UAddnFAJhI7QDcHxf+Dlrn/7zUQAE8Zfb/VRhWAAGxbQCSUyABS7bAAHfx4AC57Rv/uGVSAeslTf/9hhMA6PZ6ADxqswDDCwwAbULrAX1xOwA9KKQAr2jwAAIvu/8yDI0Awou1/4f6aABhXN7/2ZXJ/8vxdv9Pl0MAeo7a/5X17wCKKsj+UCVh/3xwp/8kilf/gh2T//FXTv/MYRMBsdEW//fjf/5jd1P/1BnGARCzswCRTaz+WZkO/9q9pwBr6Tv/IyHz/ixwcP+hf08BzK8KACgViv5odOQAx1+J/4W+qP+SpeoBt2MnALfcNv7/3oUAott5/j/vBgDhZjb/+xL2AAQigQGHJIMAzjI7AQ9htwCr2If/ZZgr/5b7WwAmkV8AIswm/rKMU/8ZgfP/TJAlAGokGv52kKz/RLrl/2uh1f8uo0T/lar9ALsRDwDaoKX/qyP2AWANEwCly3UA1mvA//R7sQFkA2gAsvJh//tMgv/TTSoB+k9G/z/0UAFpZfYAPYg6Ae5b1QAOO2L/p1RNABGELv45r8X/uT64AExAzwCsr9D+r0olAIob0/6UfcIACllRAKjLZf8r1dEB6/U2AB4j4v8JfkYA4n1e/px1FP85+HAB5jBA/6RcpgHg1ub/JHiPADcIK//7AfUBamKlAEprav41BDb/WrKWAQN4e//0BVkBcvo9//6ZUgFNDxEAOe5aAV/f5gDsNC/+Z5Sk/3nPJAESELn/SxRKALsLZQAuMIH/Fu/S/03sgf9vTcz/PUhh/8fZ+/8q18wAhZHJ/znmkgHrZMYAkkkj/mzGFP+2T9L/UmeIAPZssAAiETz/E0py/qiqTv+d7xT/lSmoADp5HABPs4b/53mH/67RYv/zer4Aq6bNANR0MAAdbEL/ot62AQ53FQDVJ/n//t/k/7elxgCFvjAAfNBt/3evVf8J0XkBMKu9/8NHhgGI2zP/tluN/jGfSAAjdvX/cLrj/zuJHwCJLKMAcmc8/gjVlgCiCnH/wmhIANyDdP+yT1wAy/rV/l3Bvf+C/yL+1LyXAIgRFP8UZVP/1M6mAOXuSf+XSgP/qFfXAJu8hf+mgUkA8E+F/7LTUf/LSKP+wailAA6kx/4e/8wAQUhbAaZKZv/IKgD/wnHj/0IX0ADl2GT/GO8aAArpPv97CrIBGiSu/3fbxwEto74AEKgqAKY5xv8cGhoAfqXnAPtsZP895Xn/OnaKAEzPEQANInD+WRCoACXQaf8jydf/KGpl/gbvcgAoZ+L+9n9u/z+nOgCE8I4ABZ5Y/4FJnv9eWZIA5jaSAAgtrQBPqQEAc7r3AFRAgwBD4P3/z71AAJocUQEtuDb/V9Tg/wBgSf+BIesBNEJQ//uum/8EsyUA6qRd/l2v/QDGRVf/4GouAGMd0gA+vHL/LOoIAKmv9/8XbYn/5bYnAMClXv71ZdkAv1hgAMReY/9q7gv+NX7zAF4BZf8ukwIAyXx8/40M2gANpp0BMPvt/5v6fP9qlJL/tg3KABw9pwDZmAj+3IIt/8jm/wE3QVf/Xb9h/nL7DgAgaVwBGs+NABjPDf4VMjD/upR0/9Mr4QAlIqL+pNIq/0QXYP+21gj/9XWJ/0LDMgBLDFP+UIykAAmlJAHkbuMA8RFaARk01AAG3wz/i/M5AAxxSwH2t7//1b9F/+YPjgABw8T/iqsv/0A/agEQqdb/z644AVhJhf+2hYwAsQ4Z/5O4Nf8K46H/eNj0/0lN6QCd7osBO0HpAEb72AEpuJn/IMtwAJKT/QBXZW0BLFKF//SWNf9emOj/O10n/1iT3P9OUQ0BIC/8/6ATcv9dayf/dhDTAbl30f/j23/+WGns/6JuF/8kpm7/W+zd/0LqdABvE/T+CukaACC3Bv4Cv/IA2pw1/ik8Rv+o7G8Aebl+/+6Oz/83fjQA3IHQ/lDMpP9DF5D+2ihs/3/KpADLIQP/Ap4AACVgvP/AMUoAbQQAAG+nCv5b2of/y0Kt/5bC4gDJ/Qb/rmZ5AM2/bgA1wgQAUSgt/iNmj/8MbMb/EBvo//xHugGwbnIAjgN1AXFNjgATnMUBXC/8ADXoFgE2EusALiO9/+zUgQACYND+yO7H/zuvpP+SK+cAwtk0/wPfDACKNrL+VevPAOjPIgAxNDL/pnFZ/wot2P8+rRwAb6X2AHZzW/+AVDwAp5DLAFcN8wAWHuQBsXGS/4Gq5v78mYH/keErAEbnBf96aX7+VvaU/24lmv7RA1sARJE+AOQQpf833fn+stJbAFOS4v5FkroAXdJo/hAZrQDnuiYAvXqM//sNcP9pbl0A+0iqAMAX3/8YA8oB4V3kAJmTx/5tqhYA+GX2/7J8DP+y/mb+NwRBAH3WtAC3YJMALXUX/oS/+QCPsMv+iLc2/5LqsQCSZVb/LHuPASHRmADAWin+Uw99/9WsUgDXqZAAEA0iACDRZP9UEvkBxRHs/9m65gAxoLD/b3Zh/+1o6wBPO1z+RfkL/yOsSgETdkQA3nyl/7RCI/9WrvYAK0pv/36QVv/k6lsA8tUY/kUs6//ctCMACPgH/2YvXP/wzWb/cearAR+5yf/C9kb/ehG7AIZGx/+VA5b/dT9nAEFoe//UNhMBBo1YAFOG8/+INWcAqRu0ALExGABvNqcAwz3X/x8BbAE8KkYAuQOi/8KVKP/2fyb+vncm/z13CAFgodv/KsvdAbHypP/1nwoAdMQAAAVdzf6Af7MAfe32/5Wi2f9XJRT+jO7AAAkJwQBhAeIAHSYKAACIP//lSNL+JoZc/07a0AFoJFT/DAXB//KvPf+/qS4Bs5OT/3G+i/59rB8AA0v8/tckDwDBGxgB/0WV/26BdgDLXfkAiolA/iZGBgCZdN4AoUp7AMFjT/92O17/PQwrAZKxnQAuk78AEP8mAAszHwE8OmL/b8JNAZpb9ACMKJABrQr7AMvRMv5sgk4A5LRaAK4H+gAfrjwAKaseAHRjUv92wYv/u63G/tpvOAC5e9gA+Z40ADS0Xf/JCVv/OC2m/oSby/866G4ANNNZ//0AogEJV7cAkYgsAV569QBVvKsBk1zGAAAIaAAeX64A3eY0Aff36/+JrjX/IxXM/0fj1gHoUsIACzDj/6pJuP/G+/z+LHAiAINlg/9IqLsAhId9/4poYf/uuKj/82hU/4fY4v+LkO0AvImWAVA4jP9Wqaf/wk4Z/9wRtP8RDcEAdYnU/43glwAx9K8AwWOv/xNjmgH/QT7/nNI3//L0A//6DpUAnljZ/53Phv776BwALpz7/6s4uP/vM+oAjoqD/xn+8wEKycIAP2FLANLvogDAyB8BddbzABhH3v42KOj/TLdv/pAOV//WT4j/2MTUAIQbjP6DBf0AfGwT/xzXSwBM3jf+6bY/AESrv/40b97/CmlN/1Cq6wCPGFj/Led5AJSB4AE99lQA/S7b/+9MIQAxlBL+5iVFAEOGFv6Om14AH53T/tUqHv8E5Pf+/LAN/ycAH/7x9P//qi0K/v3e+QDecoQA/y8G/7SjswFUXpf/WdFS/uU0qf/V7AAB1jjk/4d3l/9wycEAU6A1/gaXQgASohEA6WFbAIMFTgG1eDX/dV8//+11uQC/foj/kHfpALc5YQEvybv/p6V3AS1kfgAVYgb+kZZf/3g2mADRYmgAj28e/riU+QDr2C4A+MqU/zlfFgDy4aMA6ffo/0erE/9n9DH/VGdd/0R59AFS4A0AKU8r//nOp//XNBX+wCAW//dvPABlSib/FltU/h0cDf/G59f+9JrIAN+J7QDThA4AX0DO/xE+9//pg3kBXRdNAM3MNP5RvYgAtNuKAY8SXgDMK4z+vK/bAG9ij/+XP6L/0zJH/hOSNQCSLVP+slLu/xCFVP/ixl3/yWEU/3h2I/9yMuf/ouWc/9MaDAByJ3P/ztSGAMXZoP90gV7+x9fb/0vf+QH9dLX/6Ndo/+SC9v+5dVYADgUIAO8dPQHtV4X/fZKJ/syo3wAuqPUAmmkWANzUof9rRRj/idq1//FUxv+CetP/jQiZ/76xdgBgWbIA/xAw/npgaf91Nuj/In5p/8xDpgDoNIr/05MMABk2BwAsD9f+M+wtAL5EgQFqk+EAHF0t/uyND/8RPaEA3HPAAOyRGP5vqKkA4Do//3+kvABS6ksB4J6GANFEbgHZptkARuGmAbvBj/8QB1j/Cs2MAHXAnAEROCYAG3xsAavXN/9f/dQAm4eo//aymf6aREoA6D1g/mmEOwAhTMcBvbCC/wloGf5Lxmb/6QFwAGzcFP9y5kYAjMKF/zmepP6SBlD/qcRhAVW3ggBGnt4BO+3q/2AZGv/or2H/C3n4/lgjwgDbtPz+SgjjAMPjSQG4bqH/MemkAYA1LwBSDnn/wb46ADCudf+EFyAAKAqGARYzGf/wC7D/bjmSAHWP7wGdZXb/NlRMAM24Ev8vBEj/TnBV/8EyQgFdEDT/CGmGAAxtSP86nPsAkCPMACygdf4ya8IAAUSl/29uogCeUyj+TNbqADrYzf+rYJP/KONyAbDj8QBG+bcBiFSL/zx69/6PCXX/sa6J/kn3jwDsuX7/Phn3/y1AOP+h9AYAIjk4AWnKUwCAk9AABmcK/0qKQf9hUGT/1q4h/zKGSv9ul4L+b1SsAFTHS/74O3D/CNiyAQm3XwDuGwj+qs3cAMPlhwBiTO3/4lsaAVLbJ//hvscB2ch5/1GzCP+MQc4Ass9X/vr8Lv9oWW4B/b2e/5DWnv+g9Tb/NbdcARXIwv+SIXEB0QH/AOtqK/+nNOgAneXdADMeGQD63RsBQZNX/097xABBxN//TCwRAVXxRADKt/n/QdTU/wkhmgFHO1AAr8I7/41ICQBkoPQA5tA4ADsZS/5QwsIAEgPI/qCfcwCEj/cBb105/zrtCwGG3of/eqNsAXsrvv/7vc7+ULZI/9D24AERPAkAoc8mAI1tWwDYD9P/iE5uAGKjaP8VUHn/rbK3AX+PBABoPFL+1hAN/2DuIQGelOb/f4E+/zP/0v8+jez+nTfg/3In9ADAvPr/5Ew1AGJUUf+tyz3+kzI3/8zrvwA0xfQAWCvT/hu/dwC855oAQlGhAFzBoAH643gAezfiALgRSACFqAr+Foec/ykZZ/8wyjoAupVR/7yG7wDrtb3+2Yu8/0owUgAu2uUAvf37ADLlDP/Tjb8BgPQZ/6nnev5WL73/hLcX/yWylv8zif0AyE4fABZpMgCCPAAAhKNb/hfnuwDAT+8AnWak/8BSFAEYtWf/8AnqAAF7pP+F6QD/yvLyADy69QDxEMf/4HSe/r99W//gVs8AeSXn/+MJxv8Pme//eejZ/ktwUgBfDDn+M9Zp/5TcYQHHYiQAnNEM/grUNADZtDf+1Kro/9gUVP+d+ocAnWN//gHOKQCVJEYBNsTJ/1d0AP7rq5YAG6PqAMqHtADQXwD+e5xdALc+SwCJ67YAzOH//9aL0v8Ccwj/HQxvADScAQD9Ffv/JaUf/gyC0wBqEjX+KmOaAA7ZPf7YC1z/yMVw/pMmxwAk/Hj+a6lNAAF7n//PS2YAo6/EACwB8AB4urD+DWJM/+188f/okrz/yGDgAMwfKQDQyA0AFeFg/6+cxAD30H4APrj0/gKrUQBVc54ANkAt/xOKcgCHR80A4y+TAdrnQgD90RwA9A+t/wYPdv4QltD/uRYy/1Zwz/9LcdcBP5Ir/wThE/7jFz7/Dv/W/i0Izf9XxZf+0lLX//X49/+A+EYA4fdXAFp4RgDV9VwADYXiAC+1BQFco2n/Bh6F/uiyPf/mlRj/EjGeAORkPf508/v/TUtcAVHbk/9Mo/7+jdX2AOglmP5hLGQAySUyAdT0OQCuq7f/+UpwAKacHgDe3WH/811J/vtlZP/Y2V3//oq7/46+NP87y7H/yF40AHNynv+lmGgBfmPi/3ad9AFryBAAwVrlAHkGWACcIF3+ffHT/w7tnf+lmhX/uOAW//oYmP9xTR8A96sX/+2xzP80iZH/wrZyAODqlQAKb2cByYEEAO6OTgA0Bij/btWl/jzP/QA+10UAYGEA/zEtygB4eRb/64swAcYtIv+2MhsBg9Jb/y42gACve2n/xo1O/kP07//1Nmf+Tiby/wJc+f77rlf/iz+QABhsG/8iZhIBIhaYAELldv4yj2MAkKmVAXYemACyCHkBCJ8SAFpl5v+BHXcARCQLAei3NwAX/2D/oSnB/z+L3gAPs/MA/2QP/1I1hwCJOZUBY/Cq/xbm5P4xtFL/PVIrAG712QDHfT0ALv00AI3F2wDTn8EAN3lp/rcUgQCpd6r/y7KL/4cotv+sDcr/QbKUAAjPKwB6NX8BSqEwAOPWgP5WC/P/ZFYHAfVEhv89KxUBmFRe/748+v7vduj/1oglAXFMa/9daGQBkM4X/26WmgHkZ7kA2jEy/odNi/+5AU4AAKGU/2Ed6f/PlJX/oKgAAFuAq/8GHBP+C2/3ACe7lv+K6JUAdT5E/z/YvP/r6iD+HTmg/xkM8QGpPL8AIION/+2fe/9exV7+dP4D/1yzYf55YVz/qnAOABWV+AD44wMAUGBtAEvASgEMWuL/oWpEAdByf/9yKv/+ShpK//ezlv55jDwAk0bI/9Yoof+hvMn/jUGH//Jz/AA+L8oAtJX//oI37QClEbr/CqnCAJxt2v9wjHv/aIDf/rGObP95Jdv/gE0S/29sFwFbwEsArvUW/wTsPv8rQJkB463+AO16hAF/Wbr/jlKA/vxUrgBas7EB89ZX/2c8ov/Qgg7/C4KLAM6B2/9e2Z3/7+bm/3Rzn/6ka18AM9oCAdh9xv+MyoD+C19E/zcJXf6umQb/zKxgAEWgbgDVJjH+G1DVAHZ9cgBGRkP/D45J/4N6uf/zFDL+gu0oANKfjAHFl0H/VJlCAMN+WgAQ7uwBdrtm/wMYhf+7ReYAOMVcAdVFXv9QiuUBzgfmAN5v5gFb6Xf/CVkHAQJiAQCUSoX/M/a0/+SxcAE6vWz/wsvt/hXRwwCTCiMBVp3iAB+ji/44B0v/Plp0ALU8qQCKotT+UacfAM1acP8hcOMAU5d1AbHgSf+ukNn/5sxP/xZN6P9yTuoA4Dl+/gkxjQDyk6UBaLaM/6eEDAF7RH8A4VcnAftsCADGwY8BeYfP/6wWRgAyRHT/Za8o//hp6QCmywcAbsXaANf+Gv6o4v0AH49gAAtnKQC3gcv+ZPdK/9V+hADSkywAx+obAZQvtQCbW54BNmmv/wJOkf5mml8AgM9//jR87P+CVEcA3fPTAJiqzwDeascAt1Re/lzIOP+KtnMBjmCSAIWI5ABhEpYAN/tCAIxmBADKZ5cAHhP4/zO4zwDKxlkAN8Xh/qlf+f9CQUT/vOp+AKbfZAFw7/QAkBfCADontgD0LBj+r0Sz/5h2mgGwooIA2XLM/q1+Tv8h3h7/JAJb/wKP8wAJ69cAA6uXARjX9f+oL6T+8ZLPAEWBtABE83EAkDVI/vstDgAXbqgARERP/25GX/6uW5D/Ic5f/4kpB/8Tu5n+I/9w/wmRuf4ynSUAC3AxAWYIvv/q86kBPFUXAEonvQB0Me8ArdXSAC6hbP+fliUAxHi5/yJiBv+Zwz7/YeZH/2Y9TAAa1Oz/pGEQAMY7kgCjF8QAOBg9ALViwQD7k+X/Yr0Y/y42zv/qUvYAt2cmAW0+zAAK8OAAkhZ1/46aeABF1CMA0GN2AXn/A/9IBsIAdRHF/30PFwCaT5kA1l7F/7k3k/8+/k7+f1KZAG5mP/9sUqH/abvUAVCKJwA8/13/SAy6ANL7HwG+p5D/5CwT/oBD6ADW+Wv+iJFW/4QusAC9u+P/0BaMANnTdAAyUbr+i/ofAB5AxgGHm2QAoM4X/rui0/8QvD8A/tAxAFVUvwDxwPL/mX6RAeqiov/mYdgBQId+AL6U3wE0ACv/HCe9AUCI7gCvxLkAYuLV/3+f9AHirzwAoOmOAbTzz/9FmFkBH2UVAJAZpP6Lv9EAWxl5ACCTBQAnunv/P3Pm/12nxv+P1dz/s5wT/xlCegDWoNn/Ai0+/2pPkv4ziWP/V2Tn/6+R6P9luAH/rgl9AFIloQEkco3/MN6O//W6mgAFrt3+P3Kb/4c3oAFQH4cAfvqzAezaLQAUHJEBEJNJAPm9hAERvcD/347G/0gUD//6Ne3+DwsSABvTcf7Vazj/rpOS/2B+MAAXwW0BJaJeAMed+f4YgLv/zTGy/l2kKv8rd+sBWLft/9rSAf9r/ioA5gpj/6IA4gDb7VsAgbLLANAyX/7O0F//979Z/m7qT/+lPfMAFHpw//b2uf5nBHsA6WPmAdtb/P/H3hb/s/Xp/9Px6gBv+sD/VVSIAGU6Mv+DrZz+dy0z/3bpEP7yWtYAXp/bAQMD6v9iTFz+UDbmAAXk5/41GN//cTh2ARSEAf+r0uwAOPGe/7pzE/8I5a4AMCwAAXJypv8GSeL/zVn0AInjSwH4rTgASnj2/ncDC/9ReMb/iHpi/5Lx3QFtwk7/3/FGAdbIqf9hvi//L2eu/2NcSP526bT/wSPp/hrlIP/e/MYAzCtH/8dUrACGZr4Ab+5h/uYo5gDjzUD+yAzhAKYZ3gBxRTP/j58YAKe4SgAd4HT+ntDpAMF0fv/UC4X/FjqMAcwkM//oHisA60a1/0A4kv6pElT/4gEN/8gysP801fX+qNFhAL9HNwAiTpwA6JA6AblKvQC6jpX+QEV//6HLk/+wl78AiOfL/qO2iQChfvv+6SBCAETPQgAeHCUAXXJgAf5c9/8sq0UAyncL/7x2MgH/U4j/R1IaAEbjAgAg63kBtSmaAEeG5f7K/yQAKZgFAJo/Sf8itnwAed2W/xrM1QEprFcAWp2S/22CFABHa8j/82a9AAHDkf4uWHUACM7jAL9u/f9tgBT+hlUz/4mxcAHYIhb/gxDQ/3mVqgByExcBplAf/3HwegDos/oARG60/tKqdwDfbKT/z0/p/xvl4v7RYlH/T0QHAIO5ZACqHaL/EaJr/zkVCwFkyLX/f0GmAaWGzABop6gAAaRPAJKHOwFGMoD/ZncN/uMGhwCijrP/oGTeABvg2wGeXcP/6o2JABAYff/uzi//YRFi/3RuDP9gc00AW+Po//j+T/9c5Qb+WMaLAM5LgQD6Tc7/jfR7AYpF3AAglwYBg6cW/+1Ep/7HvZYAo6uK/zO8Bv9fHYn+lOKzALVr0P+GH1L/l2Ut/4HK4QDgSJMAMIqX/8NAzv7t2p4Aah2J/v296f9nDxH/wmH/ALItqf7G4ZsAJzB1/4dqcwBhJrUAli9B/1OC5f72JoEAXO+a/ltjfwChbyH/7tny/4O5w//Vv57/KZbaAISpgwBZVPwBq0aA/6P4y/4BMrT/fExVAftvUABjQu//mu22/91+hf5KzGP/QZN3/2M4p/9P+JX/dJvk/+0rDv5FiQv/FvrxAVt6j//N+fMA1Bo8/zC2sAEwF7//y3mY/i1K1f8+WhL+9aPm/7lqdP9TI58ADCEC/1AiPgAQV67/rWVVAMokUf6gRcz/QOG7ADrOXgBWkC8A5Vb1AD+RvgElBScAbfsaAImT6gCieZH/kHTO/8Xouf+3voz/SQz+/4sU8v+qWu//YUK7//W1h/7eiDQA9QUz/ssvTgCYZdgASRd9AP5gIQHr0kn/K9FYAQeBbQB6aOT+qvLLAPLMh//KHOn/QQZ/AJ+QRwBkjF8ATpYNAPtrdgG2On3/ASZs/4290f8Im30BcaNb/3lPvv+G72z/TC/4AKPk7wARbwoAWJVL/9fr7wCnnxj/L5ds/2vRvADp52P+HMqU/64jiv9uGET/AkW1AGtmUgBm7QcAXCTt/92iUwE3ygb/h+qH/xj63gBBXqj+9fjS/6dsyf7/oW8AzQj+AIgNdABksIT/K9d+/7GFgv+eT5QAQ+AlAQzOFf8+Im4B7Wiv/1CEb/+OrkgAVOW0/mmzjABA+A//6YoQAPVDe/7aedT/P1/aAdWFif+PtlL/MBwLAPRyjQHRr0z/nbWW/7rlA/+knW8B572LAHfKvv/aakD/ROs//mAarP+7LwsB1xL7/1FUWQBEOoAAXnEFAVyB0P9hD1P+CRy8AO8JpAA8zZgAwKNi/7gSPADZtosAbTt4/wTA+wCp0vD/Jaxc/pTT9f+zQTQA/Q1zALmuzgFyvJX/7VqtACvHwP9YbHEANCNMAEIZlP/dBAf/l/Fy/77R6ABiMscAl5bV/xJKJAE1KAcAE4dB/xqsRQCu7VUAY18pAAM4EAAnoLH/yGra/rlEVP9buj3+Q4+N/w30pv9jcsYAx26j/8ESugB87/YBbkQWAALrLgHUPGsAaSppAQ7mmAAHBYMAjWia/9UDBgCD5KL/s2QcAed7Vf/ODt8B/WDmACaYlQFiiXoA1s0D/+KYs/8GhYkAnkWM/3Gimv+086z/G71z/48u3P/VhuH/fh1FALwriQHyRgkAWsz//+eqkwAXOBP+OH2d/zCz2v9Ptv3/JtS/ASnrfABglxwAh5S+AM35J/40YIj/1CyI/0PRg//8ghf/24AU/8aBdgBsZQsAsgWSAT4HZP+17F7+HBqkAEwWcP94Zk8AysDlAciw1wApQPT/zrhOAKctPwGgIwD/OwyO/8wJkP/bXuUBehtwAL1pbf9A0Er/+383AQLixgAsTNEAl5hN/9IXLgHJq0X/LNPnAL4l4P/1xD7/qbXe/yLTEQB38cX/5SOYARVFKP+y4qEAlLPBANvC/gEozjP/51z6AUOZqgAVlPEAqkVS/3kS5/9ccgMAuD7mAOHJV/+SYKL/tfLcAK273QHiPqr/OH7ZAXUN4/+zLO8AnY2b/5DdUwDr0dAAKhGlAftRhQB89cn+YdMY/1PWpgCaJAn/+C9/AFrbjP+h2Sb+1JM//0JUlAHPAwEA5oZZAX9Oev/gmwH/UohKALKc0P+6GTH/3gPSAeWWvv9VojT/KVSN/0l7VP5dEZYAdxMcASAW1/8cF8z/jvE0/+Q0fQAdTM8A16f6/q+k5gA3z2kBbbv1/6Es3AEpZYD/pxBeAF3Wa/92SAD+UD3q/3mvfQCLqfsAYSeT/vrEMf+ls27+30a7/xaOfQGas4r/drAqAQqumQCcXGYAqA2h/48QIAD6xbT/y6MsAVcgJAChmRT/e/wPABnjUAA8WI4AERbJAZrNTf8nPy8ACHqNAIAXtv7MJxP/BHAd/xckjP/S6nT+NTI//3mraP+g214AV1IO/ucqBQCli3/+Vk4mAII8Qv7LHi3/LsR6Afk1ov+Ij2f+19JyAOcHoP6pmCr/by32AI6Dh/+DR8z/JOILAAAc8v/hitX/9y7Y/vUDtwBs/EoBzhow/8029v/TxiT/eSMyADTYyv8mi4H+8kmUAEPnjf8qL8wATnQZAQThv/8Gk+QAOlixAHql5f/8U8n/4KdgAbG4nv/yabMB+MbwAIVCywH+JC8ALRhz/3c+/gDE4br+e42sABpVKf/ib7cA1eeXAAQ7B//uipQAQpMh/x/2jf/RjXT/aHAfAFihrABT1+b+L2+XAC0mNAGELcwAioBt/ul1hv/zvq3+8ezwAFJ/7P4o36H/brbh/3uu7wCH8pEBM9GaAJYDc/7ZpPz/N5xFAVRe///oSS0BFBPU/2DFO/5g+yEAJsdJAUCs9/91dDj/5BESAD6KZwH25aT/9HbJ/lYgn/9tIokBVdO6AArBwf56wrEAeu5m/6LaqwBs2aEBnqoiALAvmwG15Av/CJwAABBLXQDOYv8BOpojAAzzuP5DdUL/5uV7AMkqbgCG5LL+umx2/zoTmv9SqT7/co9zAe/EMv+tMMH/kwJU/5aGk/5f6EkAbeM0/r+JCgAozB7+TDRh/6TrfgD+fLwASrYVAXkdI//xHgf+VdrW/wdUlv5RG3X/oJ+Y/kIY3f/jCjwBjYdmANC9lgF1s1wAhBaI/3jHHAAVgU/+tglBANqjqQD2k8b/ayaQAU6vzf/WBfr+L1gd/6QvzP8rNwb/g4bP/nRk1gBgjEsBatyQAMMgHAGsUQX/x7M0/yVUywCqcK4ACwRbAEX0GwF1g1wAIZiv/4yZa//7hyv+V4oE/8bqk/55mFT/zWWbAZ0JGQBIahH+bJkA/73lugDBCLD/rpXRAO6CHQDp1n4BPeJmADmjBAHGbzP/LU9OAXPSCv/aCRn/novG/9NSu/5QhVMAnYHmAfOFhv8oiBAATWtP/7dVXAGxzMoAo0eT/5hFvgCsM7wB+tKs/9PycQFZWRr/QEJv/nSYKgChJxv/NlD+AGrRcwFnfGEA3eZi/x/nBgCywHj+D9nL/3yeTwBwkfcAXPowAaO1wf8lL47+kL2l/y6S8AAGS4AAKZ3I/ld51QABcewABS36AJAMUgAfbOcA4e93/6cHvf+75IT/br0iAF4szAGiNMUATrzx/jkUjQD0ki8BzmQzAH1rlP4bw00AmP1aAQePkP8zJR8AIncm/wfFdgCZvNMAlxR0/vVBNP+0/W4BL7HRAKFjEf923soAfbP8AXs2fv+ROb8AN7p5AArzigDN0+X/fZzx/pScuf/jE7z/fCkg/x8izv4ROVMAzBYl/ypgYgB3ZrgBA74cAG5S2v/IzMD/yZF2AHXMkgCEIGIBwMJ5AGqh+AHtWHwAF9QaAM2rWv/4MNgBjSXm/3zLAP6eqB7/1vgVAHC7B/9Lhe//SuPz//qTRgDWeKIApwmz/xaeEgDaTdEBYW1R//Qhs/85NDn/QazS//lH0f+Oqe4Anr2Z/67+Z/5iIQ4AjUzm/3GLNP8POtQAqNfJ//jM1wHfRKD/OZq3/i/neQBqpokAUYiKAKUrMwDniz0AOV87/nZiGf+XP+wBXr76/6m5cgEF+jr/S2lhAdffhgBxY6MBgD5wAGNqkwCjwwoAIc22ANYOrv+BJuf/NbbfAGIqn//3DSgAvNKxAQYVAP//PZT+iS2B/1kadP5+JnIA+zLy/nmGgP/M+af+pevXAMqx8wCFjT4A8IK+AW6v/wAAFJIBJdJ5/wcnggCO+lT/jcjPAAlfaP8L9K4Ahuh+AKcBe/4QwZX/6OnvAdVGcP/8dKD+8t7c/81V4wAHuToAdvc/AXRNsf8+9cj+PxIl/2s16P4y3dMAotsH/gJeKwC2Prb+oE7I/4eMqgDruOQArzWK/lA6Tf+YyQIBP8QiAAUeuACrsJoAeTvOACZjJwCsUE3+AIaXALoh8f5e/d//LHL8AGx+Of/JKA3/J+Ub/yfvFwGXeTP/mZb4AArqrv929gT+yPUmAEWh8gEQspYAcTiCAKsfaQAaWGz/MSpqAPupQgBFXZUAFDn+AKQZbwBavFr/zATFACjVMgHUYIT/WIq0/uSSfP+49vcAQXVW//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQ==\"),B(I,33676,\"AQ==\"),B(I,33712,\"AQ==\"),B(I,33744,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw==\"),B(I,33936,\"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA\"),B(I,34768,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB\"),B(I,34848,\"cI0BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=\");var aI,nI=(aI=[null,function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(o[Q+8>>2]=2036477234,o[Q+12>>2]=1797285236,o[Q>>2]=1634760805,o[Q+4>>2]=857760878,o[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+48>>2]=0,o[Q+52>>2]=0,o[Q+44>>2]=B,o[Q+56>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,o[Q+60>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,H(Q,A=MA(A,0,I),A,I,g),$A(Q,64)),D=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,D=Q=D+-64|0,(I|=0)|(g|=0)&&(o[Q+8>>2]=2036477234,o[Q+12>>2]=1797285236,o[Q>>2]=1634760805,o[Q+4>>2]=857760878,o[Q+16>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+20>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q+24>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+28>>2]=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+32>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+36>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+40>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+48>>2]=0,o[Q+44>>2]=B,o[Q+52>>2]=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,o[Q+56>>2]=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,o[Q+60>>2]=a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24,H(Q,A=MA(A,0,I),A,I,g),$A(Q,64)),D=Q- -64|0,0},function(A,I,g,C,B,Q,i,E){var n;return A|=0,I|=0,B|=0,Q|=0,i|=0,E|=0,D=n=D+-64|0,(g|=0)|(C|=0)&&(o[n+8>>2]=2036477234,o[n+12>>2]=1797285236,o[n>>2]=1634760805,o[n+4>>2]=857760878,o[n+16>>2]=a[0|E]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24,o[n+20>>2]=a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24,o[n+24>>2]=a[E+8|0]|a[E+9|0]<<8|a[E+10|0]<<16|a[E+11|0]<<24,o[n+28>>2]=a[E+12|0]|a[E+13|0]<<8|a[E+14|0]<<16|a[E+15|0]<<24,o[n+32>>2]=a[E+16|0]|a[E+17|0]<<8|a[E+18|0]<<16|a[E+19|0]<<24,o[n+36>>2]=a[E+20|0]|a[E+21|0]<<8|a[E+22|0]<<16|a[E+23|0]<<24,o[n+40>>2]=a[E+24|0]|a[E+25|0]<<8|a[E+26|0]<<16|a[E+27|0]<<24,o[n+44>>2]=a[E+28|0]|a[E+29|0]<<8|a[E+30|0]<<16|a[E+31|0]<<24,o[n+48>>2]=Q,o[n+52>>2]=i,o[n+56>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[n+60>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,H(n,I,A,g,C),$A(n,64)),D=n- -64|0,0},function(A,I,g,C,B,Q,i){var E;return A|=0,I|=0,B|=0,Q|=0,i|=0,D=E=D+-64|0,(g|=0)|(C|=0)&&(o[E+8>>2]=2036477234,o[E+12>>2]=1797285236,o[E>>2]=1634760805,o[E+4>>2]=857760878,o[E+16>>2]=a[0|i]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24,o[E+20>>2]=a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24,o[E+24>>2]=a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24,o[E+28>>2]=a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24,o[E+32>>2]=a[i+16|0]|a[i+17|0]<<8|a[i+18|0]<<16|a[i+19|0]<<24,o[E+36>>2]=a[i+20|0]|a[i+21|0]<<8|a[i+22|0]<<16|a[i+23|0]<<24,o[E+40>>2]=a[i+24|0]|a[i+25|0]<<8|a[i+26|0]<<16|a[i+27|0]<<24,i=a[i+28|0]|a[i+29|0]<<8|a[i+30|0]<<16|a[i+31|0]<<24,o[E+48>>2]=Q,o[E+44>>2]=i,o[E+52>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[E+56>>2]=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[E+60>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,H(E,I,A,g,C),$A(E,64)),D=E- -64|0,0},function(A,I,g,C,B){var Q,i,n;return A|=0,I|=0,g|=0,C|=0,B|=0,D=Q=(i=D)-128&-64,o[Q>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),o[Q+4>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,o[Q+8>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,o[Q+12>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,n=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+20>>2]=0,o[Q+24>>2]=0,o[Q+28>>2]=0,o[Q+32>>2]=0,o[Q+36>>2]=0,o[Q+16>>2]=n>>>8&1048575,o[Q+40>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+44>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+48>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+80|0]=0,o[Q+56>>2]=0,o[Q+60>>2]=0,o[Q+52>>2]=B,x(Q,I,g,C),O(Q,A),D=i,0},function(A,I,g,C,B){var Q,i,n;return A|=0,I|=0,g|=0,C|=0,B|=0,D=Q=(i=D)-192&-64,o[Q+64>>2]=67108863&(a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24),o[Q+68>>2]=(a[B+3|0]|a[B+4|0]<<8|a[B+5|0]<<16|a[B+6|0]<<24)>>>2&67108611,o[Q+72>>2]=(a[B+6|0]|a[B+7|0]<<8|a[B+8|0]<<16|a[B+9|0]<<24)>>>4&67092735,o[Q+76>>2]=(a[B+9|0]|a[B+10|0]<<8|a[B+11|0]<<16|a[B+12|0]<<24)>>>6&66076671,n=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+84>>2]=0,o[Q+88>>2]=0,o[Q+92>>2]=0,o[Q+96>>2]=0,o[Q+100>>2]=0,o[Q+80>>2]=n>>>8&1048575,o[Q+104>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+108>>2]=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+112>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,B=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,E[Q+144|0]=0,o[Q+120>>2]=0,o[Q+124>>2]=0,o[Q+116>>2]=B,x(B=Q- -64|0,I,g,C),O(B,I=Q+48|0),A=Z(A,I),D=i,0|A},function(A,I){var g;return I|=0,o[(A|=0)>>2]=67108863&(a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24),o[A+4>>2]=(a[I+3|0]|a[I+4|0]<<8|a[I+5|0]<<16|a[I+6|0]<<24)>>>2&67108611,o[A+8>>2]=(a[I+6|0]|a[I+7|0]<<8|a[I+8|0]<<16|a[I+9|0]<<24)>>>4&67092735,o[A+12>>2]=(a[I+9|0]|a[I+10|0]<<8|a[I+11|0]<<16|a[I+12|0]<<24)>>>6&66076671,g=a[I+12|0]|a[I+13|0]<<8|a[I+14|0]<<16|a[I+15|0]<<24,o[A+20>>2]=0,o[A+24>>2]=0,o[A+28>>2]=0,o[A+32>>2]=0,o[A+36>>2]=0,o[A+16>>2]=g>>>8&1048575,o[A+40>>2]=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,o[A+44>>2]=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,o[A+48>>2]=a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,E[A+80|0]=0,o[A+56>>2]=0,o[A+60>>2]=0,o[A+52>>2]=I,0},function(A,I,g,C){return x(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return O(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var C,B=0,Q=0,i=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,h=0,s=0,p=0,u=0,k=0,l=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,q=0,z=0,V=0,O=0,T=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,EA=0,oA=0,aA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0;for(D=C=D-368|0;h=(i=a[g+B|0])^a[0|(r=B+33680|0)]|h,c=i^a[r+192|0]|c,y=i^a[r+160|0]|y,e=i^a[r+128|0]|e,n=i^a[r+96|0]|n,f=i^a[r- -64|0]|f,Q=i^a[r+32|0]|Q,31!=(0|(B=B+1|0)););if(B=-1,!(256&((255&((i=127^(r=127&a[g+31|0]))|c))-1|(255&(i|y))-1|(255&(i|e))-1|(255&(87^r|n))-1|(255&(f|r))-1|(255&(Q|r))-1|(255&(r|h))-1))){for(B=I,I=a[I+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24,o[C+360>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,o[C+364>>2]=I,I=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[C+352>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[C+356>>2]=I,Q=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,I=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[C+336>>2]=I,o[C+340>>2]=Q,Q=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[C+344>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[C+348>>2]=Q,E[C+336|0]=248&I,E[C+367|0]=63&a[C+367|0]|64,P(C+288|0,g),o[C+260>>2]=0,o[C+264>>2]=0,o[C+268>>2]=0,o[C+272>>2]=0,o[C+276>>2]=0,o[C+208>>2]=0,o[C+212>>2]=0,o[C+216>>2]=0,o[C+220>>2]=0,o[C+224>>2]=0,o[C+228>>2]=0,o[C+244>>2]=0,o[C+248>>2]=0,o[C+240>>2]=1,o[C+252>>2]=0,o[C+256>>2]=0,o[C+192>>2]=0,o[C+196>>2]=0,o[C+200>>2]=0,o[C+204>>2]=0,I=o[C+316>>2],o[C+168>>2]=o[C+312>>2],o[C+172>>2]=I,I=o[C+308>>2],o[C+160>>2]=o[C+304>>2],o[C+164>>2]=I,I=o[C+300>>2],o[C+152>>2]=o[C+296>>2],o[C+156>>2]=I,I=o[C+292>>2],o[C+144>>2]=o[C+288>>2],o[C+148>>2]=I,I=o[C+324>>2],o[C+176>>2]=o[C+320>>2],o[C+180>>2]=I,o[C+116>>2]=0,o[C+120>>2]=0,o[C+124>>2]=0,o[C+128>>2]=0,o[C+132>>2]=0,o[C+100>>2]=0,o[C+104>>2]=0,o[C+96>>2]=1,o[C+108>>2]=0,o[C+112>>2]=0,g=254;Z=o[C+276>>2],i=o[C+180>>2],$=o[C+96>>2],AA=o[C+192>>2],IA=o[C+144>>2],gA=o[C+240>>2],CA=o[C+100>>2],BA=o[C+196>>2],QA=o[C+148>>2],iA=o[C+244>>2],J=o[C+104>>2],EA=o[C+200>>2],N=o[C+152>>2],oA=o[C+248>>2],K=o[C+108>>2],aA=o[C+204>>2],Y=o[C+156>>2],nA=o[C+252>>2],b=o[C+112>>2],rA=o[C+208>>2],G=o[C+160>>2],fA=o[C+256>>2],h=o[C+116>>2],tA=o[C+212>>2],t=o[C+164>>2],eA=o[C+260>>2],c=o[C+120>>2],cA=o[C+216>>2],y=o[C+168>>2],yA=o[C+264>>2],e=o[C+124>>2],wA=o[C+220>>2],n=o[C+172>>2],hA=o[C+268>>2],f=o[C+128>>2],sA=o[C+224>>2],Q=o[C+176>>2],pA=o[C+272>>2],uA=g,U=(H=(I=0-((I=T)^(T=a[C+336+(g>>>3)|0]>>>(7&g)&1))|0)&((B=o[C+132>>2])^(q=o[C+228>>2])))^B,o[C+132>>2]=U,z=i^(p=I&(i^Z)),o[C+84>>2]=z-U,_=f^(u=I&(f^sA)),o[C+128>>2]=_,V=(M=I&(Q^pA))^Q,o[C+80>>2]=V-_,m=e^(k=I&(e^wA)),o[C+124>>2]=m,kA=n^(l=I&(n^hA)),o[C+76>>2]=kA-m,d=c^(s=I&(c^cA)),o[C+120>>2]=d,FA=y^(r=I&(y^yA)),o[C+72>>2]=FA-d,L=h^(i=I&(h^tA)),o[C+116>>2]=L,lA=t^(h=I&(t^eA)),o[C+68>>2]=lA-L,R=b^(c=I&(b^rA)),o[C+112>>2]=R,v=G^(y=I&(G^fA)),o[C+64>>2]=v-R,x=K^(e=I&(K^aA)),o[C+108>>2]=x,O=Y^(n=I&(Y^nA)),o[C+60>>2]=O-x,j=J^(f=I&(J^EA)),o[C+104>>2]=j,K=N^(Q=I&(N^oA)),o[C+56>>2]=K-j,J=CA^(B=I&(CA^BA)),o[C+100>>2]=J,Y=QA^(g=I&(QA^iA)),o[C+52>>2]=Y-J,N=$^(b=I&($^AA)),o[C+96>>2]=N,G=(I&=IA^gA)^IA,o[C+48>>2]=G-N,t=p^Z,H^=q,o[C+36>>2]=t-H,p=M^pA,u^=sA,o[C+32>>2]=p-u,M=l^hA,k^=wA,o[C+28>>2]=M-k,l=r^yA,s^=cA,o[C+24>>2]=l-s,r=h^eA,i^=tA,o[C+20>>2]=r-i,h=y^fA,c^=rA,o[C+16>>2]=h-c,y=n^nA,e^=aA,o[C+12>>2]=y-e,n=Q^oA,f^=EA,o[C+8>>2]=n-f,Q=g^iA,B^=BA,o[C+4>>2]=Q-B,g=I^gA,I=b^AA,o[C>>2]=g-I,o[C+276>>2]=t+H,o[C+272>>2]=p+u,o[C+268>>2]=k+M,o[C+264>>2]=s+l,o[C+260>>2]=i+r,o[C+256>>2]=c+h,o[C+248>>2]=n+f,o[C+244>>2]=B+Q,o[C+240>>2]=I+g,o[C+252>>2]=e+y,o[C+228>>2]=U+z,o[C+224>>2]=_+V,o[C+220>>2]=m+kA,o[C+216>>2]=d+FA,o[C+212>>2]=L+lA,o[C+208>>2]=v+R,o[C+204>>2]=x+O,o[C+200>>2]=K+j,o[C+196>>2]=J+Y,o[C+192>>2]=G+N,F(z=C+96|0,_=C+48|0,G=C+240|0),F(U=C+192|0,U,C),S(_,C),S(C,G),t=o[C+192>>2],H=o[C+96>>2],p=o[C+196>>2],u=o[C+100>>2],M=o[C+200>>2],k=o[C+104>>2],l=o[C+204>>2],s=o[C+108>>2],r=o[C+208>>2],i=o[C+112>>2],h=o[C+212>>2],c=o[C+116>>2],y=o[C+216>>2],e=o[C+120>>2],n=o[C+220>>2],f=o[C+124>>2],Q=o[C+224>>2],B=o[C+128>>2],g=o[C+228>>2],I=o[C+132>>2],o[C+180>>2]=g+I,o[C+176>>2]=B+Q,o[C+172>>2]=n+f,o[C+168>>2]=e+y,o[C+164>>2]=c+h,o[C+160>>2]=i+r,o[C+156>>2]=s+l,o[C+152>>2]=k+M,o[C+148>>2]=p+u,o[C+144>>2]=t+H,o[C+228>>2]=I-g,o[C+224>>2]=B-Q,o[C+220>>2]=f-n,o[C+216>>2]=e-y,o[C+212>>2]=c-h,o[C+208>>2]=i-r,o[C+204>>2]=s-l,o[C+200>>2]=k-M,o[C+196>>2]=u-p,o[C+192>>2]=H-t,F(G,C,_),m=o[C+52>>2],s=o[C+4>>2],d=o[C+56>>2],r=o[C+8>>2],L=o[C+64>>2],i=o[C+16>>2],R=o[C+60>>2],e=o[C+12>>2],x=o[C+72>>2],n=o[C+24>>2],j=o[C+68>>2],f=o[C+20>>2],J=o[C+80>>2],B=o[C+32>>2],N=o[C+76>>2],g=o[C+28>>2],q=o[C+84>>2],I=o[C+36>>2],V=o[C+48>>2],Q=o[C>>2]-V|0,o[C>>2]=Q,I=I-q|0,o[C+36>>2]=I,b=g-N|0,o[C+28>>2]=b,G=B-J|0,o[C+32>>2]=G,h=f-j|0,o[C+20>>2]=h,c=n-x|0,o[C+24>>2]=c,y=e-R|0,o[C+12>>2]=y,e=i-L|0,o[C+16>>2]=e,n=r-d|0,o[C+8>>2]=n,B=s-m|0,o[C+4>>2]=B,S(U,U),I=DA(I,I>>31,121666,0),g=w,O=I,I=DA((33554431&(g=(t=I+16777216|0)>>>0<16777216?g+1|0:g))<<7|t>>>25,g>>25,19,0),f=w,g=I,I=DA(Q,Q>>31,121666,0),v=w+f|0,I=I>>>0>(g=g+I|0)>>>0?v+1|0:v,I=(f=g+33554432|0)>>>0<33554432?I+1|0:I,H=g-(-67108864&f)|0,o[C+96>>2]=H,Q=DA(B,B>>31,121666,0),g=w,g=(B=Q+16777216|0)>>>0<16777216?g+1|0:g,p=(I=(67108863&I)<<6|f>>>26)+(Q-(-33554432&B)|0)|0,o[C+100>>2]=p,v=g>>25,B=(33554431&g)<<7|B>>>25,g=DA(n,n>>31,121666,0)+B|0,I=v+w|0,I=g>>>0>>0?I+1|0:I,f=(u=g+33554432|0)>>>0<33554432?I+1|0:I,M=g-(-67108864&u)|0,o[C+104>>2]=M,B=DA(e,e>>31,121666,0),Q=w,g=DA(y,y>>31,121666,0),I=w,Y=B,K=g,B=(33554431&(I=(k=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|k>>>25,I=(I>>25)+Q|0,I=(g=Y+B|0)>>>0>>0?I+1|0:I,Q=(l=g+33554432|0)>>>0<33554432?I+1|0:I,s=g-(-67108864&l)|0,o[C+112>>2]=s,B=DA(c,c>>31,121666,0),n=w,g=DA(h,h>>31,121666,0),I=w,Y=g,g=(33554431&(I=(r=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|r>>>25,I=(I>>25)+n|0,I=g>>>0>(B=g+B|0)>>>0?I+1|0:I,g=(i=B+33554432|0)>>>0<33554432?I+1|0:I,h=B-(-67108864&i)|0,o[C+120>>2]=h,n=DA(G,G>>31,121666,0),e=w,B=DA(b,b>>31,121666,0),I=w,G=B,B=(33554431&(I=(c=B+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+e|0,I=B>>>0>(n=B+n|0)>>>0?I+1|0:I,B=(y=n+33554432|0)>>>0<33554432?I+1|0:I,e=n-(-67108864&y)|0,o[C+128>>2]=e,n=(f=K+((67108863&f)<<6|u>>>26)|0)-(-33554432&k)|0,o[C+108>>2]=n,f=(Q=Y+((67108863&Q)<<6|l>>>26)|0)-(-33554432&r)|0,o[C+116>>2]=f,Q=(I=G+((67108863&g)<<6|i>>>26)|0)-(-33554432&c)|0,o[C+124>>2]=Q,g=(B=O+((67108863&B)<<6|y>>>26)|0)-(-33554432&t)|0,o[C+132>>2]=g,S(I=C+144|0,I),o[C+84>>2]=g+q,o[C+80>>2]=e+J,o[C+76>>2]=Q+N,o[C+72>>2]=h+x,o[C+68>>2]=f+j,o[C+64>>2]=s+L,o[C+60>>2]=n+R,o[C+56>>2]=M+d,o[C+52>>2]=p+m,o[C+48>>2]=H+V,g=uA-1|0,F(z,C+288|0,U),F(U,C,_),uA;);h=o[C+144>>2],H=o[C+240>>2],c=o[C+148>>2],p=o[C+244>>2],y=o[C+152>>2],u=o[C+248>>2],e=o[C+156>>2],M=o[C+252>>2],n=o[C+160>>2],k=o[C+256>>2],f=o[C+164>>2],l=o[C+260>>2],Q=o[C+168>>2],s=o[C+264>>2],B=o[C+172>>2],r=o[C+268>>2],g=o[C+176>>2],i=o[C+272>>2],t=0-T|0,I=o[C+276>>2],o[C+276>>2]=t&(I^o[C+180>>2])^I,o[C+272>>2]=i^t&(g^i),o[C+268>>2]=r^t&(B^r),o[C+264>>2]=s^t&(Q^s),o[C+260>>2]=l^t&(f^l),o[C+256>>2]=k^t&(n^k),o[C+252>>2]=M^t&(e^M),o[C+248>>2]=u^t&(y^u),o[C+244>>2]=p^t&(c^p),o[C+240>>2]=H^t&(h^H),H=o[C+192>>2],h=o[C+96>>2],p=o[C+196>>2],c=o[C+100>>2],u=o[C+200>>2],y=o[C+104>>2],M=o[C+204>>2],e=o[C+108>>2],k=o[C+208>>2],n=o[C+112>>2],l=o[C+212>>2],f=o[C+116>>2],s=o[C+216>>2],Q=o[C+120>>2],r=o[C+220>>2],B=o[C+124>>2],i=o[C+224>>2],g=o[C+128>>2],I=o[C+228>>2],o[C+228>>2]=t&(I^o[C+132>>2])^I,o[C+224>>2]=i^t&(g^i),o[C+220>>2]=r^t&(B^r),o[C+216>>2]=s^t&(Q^s),o[C+212>>2]=l^t&(f^l),o[C+208>>2]=k^t&(n^k),o[C+204>>2]=M^t&(e^M),o[C+200>>2]=u^t&(y^u),o[C+196>>2]=p^t&(c^p),o[C+192>>2]=H^t&(h^H),X(g=C+192|0,g),F(I=C+240|0,I,g),W(A,I),$A(C+336|0,32),B=0}return D=C+368|0,0|B},function(A,I){var g,C,B,Q,i,n,r,f,t,e,c,y,w,h,s,p,u,k,l,S;return I|=0,D=g=D-304|0,E[0|(A|=0)]=a[0|I],E[A+1|0]=a[I+1|0],E[A+2|0]=a[I+2|0],E[A+3|0]=a[I+3|0],E[A+4|0]=a[I+4|0],E[A+5|0]=a[I+5|0],E[A+6|0]=a[I+6|0],E[A+7|0]=a[I+7|0],E[A+8|0]=a[I+8|0],E[A+9|0]=a[I+9|0],E[A+10|0]=a[I+10|0],E[A+11|0]=a[I+11|0],E[A+12|0]=a[I+12|0],E[A+13|0]=a[I+13|0],E[A+14|0]=a[I+14|0],E[A+15|0]=a[I+15|0],E[A+16|0]=a[I+16|0],E[A+17|0]=a[I+17|0],E[A+18|0]=a[I+18|0],E[A+19|0]=a[I+19|0],E[A+20|0]=a[I+20|0],E[A+21|0]=a[I+21|0],E[A+22|0]=a[I+22|0],E[A+23|0]=a[I+23|0],E[A+24|0]=a[I+24|0],E[A+25|0]=a[I+25|0],E[A+26|0]=a[I+26|0],E[A+27|0]=a[I+27|0],E[A+28|0]=a[I+28|0],E[A+29|0]=a[I+29|0],E[A+30|0]=a[I+30|0],I=a[I+31|0],E[0|A]=248&a[0|A],E[A+31|0]=63&I|64,v(g+48|0,A),I=o[g+132>>2],C=o[g+92>>2],B=o[g+136>>2],Q=o[g+96>>2],i=o[g+140>>2],n=o[g+100>>2],r=o[g+144>>2],f=o[g+104>>2],t=o[g+148>>2],e=o[g+108>>2],c=o[g+152>>2],y=o[g+112>>2],w=o[g+156>>2],h=o[g+116>>2],s=o[g+160>>2],p=o[g+120>>2],u=o[g+128>>2],k=o[g+88>>2],l=o[g+124>>2],S=o[g+164>>2],o[g+292>>2]=l+S,o[g+288>>2]=s+p,o[g+284>>2]=w+h,o[g+280>>2]=c+y,o[g+276>>2]=t+e,o[g+272>>2]=r+f,o[g+268>>2]=i+n,o[g+264>>2]=B+Q,o[g+260>>2]=I+C,o[g+256>>2]=u+k,o[g+244>>2]=S-l,o[g+240>>2]=s-p,o[g+236>>2]=w-h,o[g+232>>2]=c-y,o[g+228>>2]=t-e,o[g+224>>2]=r-f,o[g+220>>2]=i-n,o[g+216>>2]=B-Q,o[g+212>>2]=I-C,o[g+208>>2]=u-k,X(I=g+208|0,I),F(g,g+256|0,I),W(A,g),D=g+304|0,0},function(A,I,g,C,B){A|=0,C|=0,B|=0;var Q,i=0,n=0,r=0,f=0;if(D=Q=D-112|0,(I|=0)|(g|=0)){i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,o[Q+24>>2]=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,o[Q+28>>2]=i,i=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,o[Q+16>>2]=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,o[Q+20>>2]=i,i=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[Q>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[Q+4>>2]=i,i=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,o[Q+8>>2]=a[B+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o[Q+12>>2]=i,B=a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24,C=a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24,o[Q+104>>2]=0,o[Q+108>>2]=0,o[Q+96>>2]=B,o[Q+100>>2]=C;A:{if(!g&I>>>0>=64|g){for(;J(A,Q+96|0,Q),C=a[Q+104|0]+1|0,E[Q+104|0]=C,C=a[Q+105|0]+(C>>>8|0)|0,E[Q+105|0]=C,C=a[Q+106|0]+(C>>>8|0)|0,E[Q+106|0]=C,C=a[Q+107|0]+(C>>>8|0)|0,E[Q+107|0]=C,C=a[Q+108|0]+(C>>>8|0)|0,E[Q+108|0]=C,C=a[Q+109|0]+(C>>>8|0)|0,E[Q+109|0]=C,C=a[Q+110|0]+(C>>>8|0)|0,E[Q+110|0]=C,E[Q+111|0]=a[Q+111|0]+(C>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(C=0,J(Q+32|0,Q+96|0,Q),g=3&I,B=0,I-1>>>0>=3)for(i=-4&I,I=0;n=r=Q+32|0,E[A+B|0]=a[n+B|0],E[(f=1|B)+A|0]=a[n+f|0],E[(n=2|B)+A|0]=a[n+r|0],E[(n=3|B)+A|0]=a[n+(Q+32|0)|0],B=B+4|0,(0|i)!=(0|(I=I+4|0)););if(g)for(;E[A+B|0]=a[(Q+32|0)+B|0],B=B+1|0,(0|g)!=(0|(C=C+1|0)););}$A(Q+32|0,64),$A(Q,32)}return D=Q+112|0,0},function(A,I,g,C,B,Q,i,n){A|=0,I|=0,B|=0,Q|=0,i|=0,n|=0;var r,f=0;if(D=r=D-112|0,(g|=0)|(C|=0)){f=a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24,o[r+24>>2]=a[n+24|0]|a[n+25|0]<<8|a[n+26|0]<<16|a[n+27|0]<<24,o[r+28>>2]=f,f=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,o[r+16>>2]=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,o[r+20>>2]=f,f=a[n+4|0]|a[n+5|0]<<8|a[n+6|0]<<16|a[n+7|0]<<24,o[r>>2]=a[0|n]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,o[r+4>>2]=f,f=a[n+12|0]|a[n+13|0]<<8|a[n+14|0]<<16|a[n+15|0]<<24,o[r+8>>2]=a[n+8|0]|a[n+9|0]<<8|a[n+10|0]<<16|a[n+11|0]<<24,o[r+12>>2]=f,n=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[r+96>>2]=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,o[r+100>>2]=n,E[r+104|0]=Q,E[r+111|0]=i>>>24,E[r+110|0]=i>>>16,E[r+109|0]=i>>>8,E[r+108|0]=i,E[r+107|0]=(16777215&i)<<8|Q>>>24,E[r+106|0]=(65535&i)<<16|Q>>>16,E[r+105|0]=(255&i)<<24|Q>>>8;A:{if(!C&g>>>0>=64|C){for(;;){for(n=0,J(r+32|0,r+96|0,r);Q=r+32|0,E[A+n|0]=a[Q+n|0]^a[I+n|0],E[(B=1|n)+A|0]=a[B+Q|0]^a[I+B|0],64!=(0|(n=n+2|0)););if(B=a[r+104|0]+1|0,E[r+104|0]=B,B=a[r+105|0]+(B>>>8|0)|0,E[r+105|0]=B,B=a[r+106|0]+(B>>>8|0)|0,E[r+106|0]=B,B=a[r+107|0]+(B>>>8|0)|0,E[r+107|0]=B,B=a[r+108|0]+(B>>>8|0)|0,E[r+108|0]=B,B=a[r+109|0]+(B>>>8|0)|0,E[r+109|0]=B,B=a[r+110|0]+(B>>>8|0)|0,E[r+110|0]=B,E[r+111|0]=a[r+111|0]+(B>>>8|0),I=I- -64|0,A=A- -64|0,C=C-1|0,!(!(C=(g=g+-64|0)>>>0<4294967232?C+1|0:C)&g>>>0>63|C))break}if(!(g|C))break A}if(n=0,J(r+32|0,r+96|0,r),C=1&g,1!=(0|g))for(Q=-2&g,B=0;i=r+32|0,E[A+n|0]=a[i+n|0]^a[I+n|0],E[(g=1|n)+A|0]=a[g+i|0]^a[I+g|0],n=n+2|0,(0|Q)!=(0|(B=B+2|0)););C&&(E[A+n|0]=a[(r+32|0)+n|0]^a[I+n|0])}$A(r+32|0,64),$A(r,32)}return D=r+112|0,0}],aI.grow=function(A){var I=this.length;return this.length=this.length+A,I},aI.set=function(A,I){this[A]=I},aI.get=function(A){return this[A]},aI);function rI(){return i.byteLength/65536|0}return{f:function(){},g:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|eA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},h:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(eA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},i:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|fA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},j:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(fA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},k:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|tA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},l:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=tA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},m:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|rA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},n:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=rA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},o:II,p:function(){return 12},q:oI,r:AI,s:CI,t:ZA,u:II,v:EI,w:oI,x:AI,y:CI,z:ZA,A:function(A,I,g,C,B,Q,i,E,o,a,n,r){return 0|BA(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(E|=0),o|=0,n|=0,r|=0)},B:function(A,I,g,C,B,i,E,a,n,r,f){return A|=0,I|=0,n|=0,n=C|=0,!(C=B|=0)&(B=0|n)>>>0<4294967280?(BA(A,A+B|0,0,g|=0,B,C,i|=0,E|=0,a|=0,r|=0,f|=0),I&&(C=(A=B+16|0)>>>0<16?C+1|0:C,o[I>>2]=A,o[I+4>>2]=C)):(mA(),Q()),0},C:function(A,I,g,C,B,Q,i,E,o,a,n){return 0|CA(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(E|=0),o|=0,a|=0,n|=0)},D:function(A,I,g,C,B,Q,i,E,a,n,r){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=CA(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,i|=0,E,a|=0,n|=0,r|=0)),I&&(o[I>>2]=g?0:B-16|0,o[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},E:II,F:gI,G:oI,H:AI,I:CI,J:ZA,K:II,L:II,M:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,D=Q=D-480|0,AA(Q,B|=0),WA(Q,I,g,C),UA(Q,Q+416|0),I=o[Q+444>>2],g=o[Q+440>>2],E[A+24|0]=g,E[A+25|0]=g>>>8,E[A+26|0]=g>>>16,E[A+27|0]=g>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[Q+436>>2],g=o[Q+432>>2],E[A+16|0]=g,E[A+17|0]=g>>>8,E[A+18|0]=g>>>16,E[A+19|0]=g>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[Q+428>>2],g=o[Q+424>>2],E[A+8|0]=g,E[A+9|0]=g>>>8,E[A+10|0]=g>>>16,E[A+11|0]=g>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[Q+420>>2],g=o[Q+416>>2],E[0|A]=g,E[A+1|0]=g>>>8,E[A+2|0]=g>>>16,E[A+3|0]=g>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,D=Q+480|0,0},N:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,D=Q=D-512|0,AA(i=Q+32|0,B|=0),WA(i,I,g,C),UA(i,Q+448|0),I=o[Q+476>>2],o[Q+24>>2]=o[Q+472>>2],o[Q+28>>2]=I,I=o[Q+468>>2],o[Q+16>>2]=o[Q+464>>2],o[Q+20>>2]=I,I=o[Q+460>>2],o[Q+8>>2]=o[Q+456>>2],o[Q+12>>2]=I,I=o[Q+452>>2],o[Q>>2]=o[Q+448>>2],o[Q+4>>2]=I,I=cA(A,Q),g=oA(Q,A,32),D=Q+512|0,g|((0|A)==(0|Q)?-1:I)},O:ZA,P:II,Q:II,R:II,S:II,T:gI,U:AI,V:CI,W:function(A,I,g){A|=0,I|=0;var C,B=0;return D=C=D+-64|0,QA(C,g|=0,32,0),g=o[C+28>>2],B=o[C+24>>2],E[I+24|0]=B,E[I+25|0]=B>>>8,E[I+26|0]=B>>>16,E[I+27|0]=B>>>24,E[I+28|0]=g,E[I+29|0]=g>>>8,E[I+30|0]=g>>>16,E[I+31|0]=g>>>24,g=o[C+20>>2],B=o[C+16>>2],E[I+16|0]=B,E[I+17|0]=B>>>8,E[I+18|0]=B>>>16,E[I+19|0]=B>>>24,E[I+20|0]=g,E[I+21|0]=g>>>8,E[I+22|0]=g>>>16,E[I+23|0]=g>>>24,g=o[C+12>>2],B=o[C+8>>2],E[I+8|0]=B,E[I+9|0]=B>>>8,E[I+10|0]=B>>>16,E[I+11|0]=B>>>24,E[I+12|0]=g,E[I+13|0]=g>>>8,E[I+14|0]=g>>>16,E[I+15|0]=g>>>24,g=o[C+4>>2],B=o[C>>2],E[0|I]=B,E[I+1|0]=B>>>8,E[I+2|0]=B>>>16,E[I+3|0]=B>>>24,E[I+4|0]=g,E[I+5|0]=g>>>8,E[I+6|0]=g>>>16,E[I+7|0]=g>>>24,$A(C,64),A=VA(A,I),D=C- -64|0,0|A},X:dA,Y:SA,Z:JA,_:function(A,I,g,C,B,Q,i,E){var o,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,D=o=D-32|0,B=-1,SA(o,i|=0,E|=0)||(B=IA(A,I,g,a,C,Q,o),$A(o,32)),D=o+32|0,0|B},$:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(mA(),Q()),0|IA(A+16|0,A,I,g,C,B,i)},aa:function(A,I,g,C,B,Q,i){return 0|FA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ba:NA,ca:function(A,I,g,C,B,Q,i,E){var o,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,D=o=D-32|0,B=-1,SA(o,i|=0,E|=0)||(B=gA(A,I,g,a,C,Q,o),$A(o,32)),D=o+32|0,0|B},da:lA,ea:function(A,I,g,C,B,Q,i){return 0|sA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fa:function(A,I,g,C,B){A|=0,I|=0,B|=0;var Q,i,a,n=0,r=0;return i=g|=0,g=C|=0,a=C=D,D=Q=C-512&-64,C=-1,dA(Q- -64|0,Q+32|0)||(Y(C=Q+128|0,0,0,24),z(C,r=Q- -64|0,32,0),z(C,B,32,0),GA(C,n=Q+96|0,24),C=FA(A+32|0,I,i,g,n,C=B,B=Q+32|0),I=o[Q+92>>2],g=o[Q+88>>2],E[A+24|0]=g,E[A+25|0]=g>>>8,E[A+26|0]=g>>>16,E[A+27|0]=g>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[Q+84>>2],g=o[Q+80>>2],E[A+16|0]=g,E[A+17|0]=g>>>8,E[A+18|0]=g>>>16,E[A+19|0]=g>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[Q+76>>2],g=o[Q+72>>2],E[A+8|0]=g,E[A+9|0]=g>>>8,E[A+10|0]=g>>>16,E[A+11|0]=g>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[Q+68>>2],g=o[Q+64>>2],E[0|A]=g,E[A+1|0]=g>>>8,E[A+2|0]=g>>>16,E[A+3|0]=g>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,$A(B,32),$A(r,32),$A(n,24)),D=a,0|C},ga:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,E,o=0,a=0;return i=o=D,D=o=o-448&-64,a=-1,E=C|=0,!C&(g|=0)>>>0>=48|C&&(Y(C=o- -64|0,0,0,24),z(C,I,32,0),z(C,B,32,0),GA(B=C,C=o+32|0,24),a=sA(A,I+32|0,g-32|0,E-(g>>>0<32)|0,C,I,Q)),D=i,0|a},ha:function(){return 48},ia:AI,ja:BI,ka:II,la:AI,ma:BI,na:II,oa:function(){return 384},pa:function(A,I,g,C,B,Q,i){return 0|R(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},qa:Y,ra:function(A,I,g,C){return 0|z(A|=0,I|=0,g|=0,C|=0)},sa:GA,ta:ZA,ua:BI,va:function(A,I,g,C){return 0|QA(A|=0,I|=0,g|=0,C|=0)},wa:AI,xa:BI,ya:EI,za:II,Aa:function(A,I,g,C,B,i){A|=0,I|=0,g|=0,C|=0,i|=0;var E,n=0,r=0,f=0,t=0,e=0,c=0,y=0;return D=E=D-32|0,n=a[0|(B|=0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,B=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,o[E+24>>2]=0,o[E+28>>2]=0,o[E+16>>2]=n,o[E+20>>2]=B,o[E+8>>2]=0,o[E+12>>2]=0,o[(B=E)>>2]=g,o[B+4>>2]=C,I-65>>>0<=4294967246?(o[8916]=28,A=-1):I-65>>>0<4294967232?A=-1:(D=B=(f=D)-512&-64,!i|!A|((r=255&I)-65&255)>>>0<=191?(mA(),Q()):(C=E+16|0,E?(t=725511199^(a[E+8|0]|a[E+9|0]<<8|a[E+10|0]<<16|a[E+11|0]<<24),e=-1694144372^(a[E+12|0]|a[E+13|0]<<8|a[E+14|0]<<16|a[E+15|0]<<24),g=-1377402159^(a[0|E]|a[E+1|0]<<8|a[E+2|0]<<16|a[E+3|0]<<24),I=1359893119^(a[E+4|0]|a[E+5|0]<<8|a[E+6|0]<<16|a[E+7|0]<<24)):(t=725511199,e=-1694144372,g=-1377402159,I=1359893119),C?(c=327033209^(a[C+8|0]|a[C+9|0]<<8|a[C+10|0]<<16|a[C+11|0]<<24),y=1541459225^(a[C+12|0]|a[C+13|0]<<8|a[C+14|0]<<16|a[C+15|0]<<24),n=-79577749^(a[0|C]|a[C+1|0]<<8|a[C+2|0]<<16|a[C+3|0]<<24),C=528734635^(a[C+4|0]|a[C+5|0]<<8|a[C+6|0]<<16|a[C+7|0]<<24)):(c=327033209,y=1541459225,n=-79577749,C=528734635),MA(B- -64|0,0,293),o[B+56>>2]=c,o[B+60>>2]=y,o[B+48>>2]=n,o[B+52>>2]=C,o[B+40>>2]=t,o[B+44>>2]=e,o[B+32>>2]=g,o[B+36>>2]=I,o[B+24>>2]=1595750129,o[B+28>>2]=-1521486534,o[B+16>>2]=-23791573,o[B+20>>2]=1013904242,o[B+8>>2]=-2067093701,o[B+12>>2]=-1150833019,o[B>>2]=-222443256^(8192|r),o[B+4>>2]=1779033703,MA(32+(I=B+384|0)|0,0,96),HA(I,i,32),HA(B+96|0,I,128),o[B+352>>2]=128,$A(I,128),G(B,A,r),D=f),A=0),D=E+32|0,0|A},Ba:ZA,Ca:function(A,I,g){return A|=0,R(I|=0,32,g|=0,32,0,0,0),0|jA(A,I)},Da:function(A,I){return A|=0,hA(I|=0,32),0|jA(A,I)},Ea:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,o,n=0,r=0;if(o=n=D,D=n=n-512&-64,i=(A|=0)||I){if(r=-1,!PA(n+96|0,C,B)){for(C=I||A,A=0,Y(I=n+128|0,0,0,64),z(I,r=n+96|0,32,0),$A(r,32),z(I,g,32,0),z(I,B,32,0),GA(I,n+32|0,64),$A(I,384);I=(B=n+32|0)+A|0,E[A+i|0]=a[0|I],E[A+C|0]=a[I+32|0],E[(g=1|A)+i|0]=a[g+B|0],E[g+C|0]=a[I+33|0],32!=(0|(A=A+2|0)););$A(n+32|0,64),r=0}return D=o,0|r}mA(),Q()},Fa:function(A,I,g,C,B){I|=0,g|=0,C|=0,B|=0;var i,o,n=0,r=0;if(o=n=D,D=n=n-512&-64,i=(A|=0)||I){if(r=-1,!PA(n+96|0,C,B)){for(C=I||A,A=0,Y(I=n+128|0,0,0,64),z(I,r=n+96|0,32,0),$A(r,32),z(I,B,32,0),z(I,g,32,0),GA(I,n+32|0,64),$A(I,384);I=(B=n+32|0)+A|0,E[A+C|0]=a[0|I],E[A+i|0]=a[I+32|0],E[(g=1|A)+C|0]=a[g+B|0],E[g+i|0]=a[I+33|0],32!=(0|(A=A+2|0)););$A(n+32|0,64),r=0}return D=o,0|r}mA(),Q()},Ga:II,Ha:II,Ia:II,Ja:II,Ka:jA,La:PA,Ma:II,Na:II,Oa:II,Pa:gI,Qa:AI,Ra:CI,Sa:ZA,Ta:JA,Ua:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(mA(),Q()),IA(A+16|0,A,I,g,C,B,i),0},Va:NA,Wa:lA,Xa:ZA,Ya:function(A,I,g){return A|=0,g|=0,hA(I|=0,24),d(A,I,g),E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},Za:function(A,I,g){return d(A|=0,I|=0,g|=0),E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,g=a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24,I=a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24,E[A+44|0]=0,E[A+45|0]=0,E[A+46|0]=0,E[A+47|0]=0,E[A+48|0]=0,E[A+49|0]=0,E[A+50|0]=0,E[A+51|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,0},_a:function(A){var I,g=0,C=0;D=I=D-48|0,g=a[28+(A|=0)|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[I+24>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[I+28>>2]=g,g=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[I+16>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[I+20>>2]=g,g=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[I>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[I+4>>2]=g,g=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[I+8>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[I+12>>2]=g,g=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[I+32>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[I+36>>2]=g,xA(I,I,A+32|0,A),g=o[I+28>>2],C=o[I+24>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=g,E[A+29|0]=g>>>8,E[A+30|0]=g>>>16,E[A+31|0]=g>>>24,g=o[I+20>>2],C=o[I+16>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=g,E[A+21|0]=g>>>8,E[A+22|0]=g>>>16,E[A+23|0]=g>>>24,g=o[I+12>>2],C=o[I+8>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=g,E[A+13|0]=g>>>8,E[A+14|0]=g>>>16,E[A+15|0]=g>>>24,g=o[I+4>>2],C=o[I>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=g,E[A+5|0]=g>>>8,E[A+6|0]=g>>>16,E[A+7|0]=g>>>24,C=o[I+36>>2],g=o[I+32>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=g,E[A+37|0]=g>>>8,E[A+38|0]=g>>>16,E[A+39|0]=g>>>24,E[A+40|0]=C,E[A+41|0]=C>>>8,E[A+42|0]=C>>>16,E[A+43|0]=C>>>24,D=I+48|0},$a:function(A,I,g,C,B,i,n,r,f,t){A|=0,I|=0,C|=0,n|=0,f|=0,t|=0;var e,c=0,y=0,w=0;return c=B|=0,B=i|=0,c|=i=0,e=i|(r|=0),D=i=D-384|0,(g|=0)&&(o[g>>2]=0,o[g+4>>2]=0),!B&c>>>0<4294967279?(XA(y=i+16|0,64,w=A+32|0,A),OA(r=i+80|0,y),$A(y,64),zA(r,n,e,f),zA(r,33904,0-e&15,0),o[i+72>>2]=0,o[i+76>>2]=0,o[(n=i- -64|0)>>2]=0,o[n+4>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,o[i+40>>2]=0,o[i+44>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,E[i+16|0]=t,wA(y,y,64,0,w,1,A),zA(r,y,64,0),E[0|I]=a[i+16|0],wA(I=I+1|0,C,c,B,w,2,A),zA(r,I,c,B),zA(r,33904,15&c,0),o[i+8>>2]=e,o[i+12>>2]=f,zA(r,C=i+8|0,8,0),o[i+8>>2]=c- -64,o[i+12>>2]=B-((c>>>0<4294967232)-1|0),zA(r,C,8,0),TA(r,I=I+c|0),$A(r,256),E[A+36|0]=a[A+36|0]^a[0|I],E[A+37|0]=a[A+37|0]^a[I+1|0],E[A+38|0]=a[A+38|0]^a[I+2|0],E[A+39|0]=a[A+39|0]^a[I+3|0],E[A+40|0]=a[A+40|0]^a[I+4|0],E[A+41|0]=a[A+41|0]^a[I+5|0],E[A+42|0]=a[A+42|0]^a[I+6|0],E[A+43|0]=a[A+43|0]^a[I+7|0],yA(w),(2&t||iA(w,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[i+360>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[i+364>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[i+352>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[i+356>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[i+336>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[i+340>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[i+344>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[i+348>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[i+368>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[i+372>>2]=I,xA(I=i+336|0,I,w,A),I=o[i+364>>2],C=o[i+360>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[i+356>>2],C=o[i+352>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[i+348>>2],C=o[i+344>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[i+340>>2],C=o[i+336>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[i+368>>2],C=o[i+372>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,E[A+40|0]=C,E[A+41|0]=C>>>8,E[A+42|0]=C>>>16,E[A+43|0]=C>>>24),g&&(B=(A=c+17|0)>>>0<17?B+1|0:B,o[g>>2]=A,o[g+4>>2]=B),D=i+384|0):(mA(),Q()),0},ab:function(A,I,g,C,B,i,n,r,f,t){A|=0,I|=0,C|=0,B|=0,r|=0,t|=0;var e,c=0,y=0,w=0,h=0,s=0,p=0;c=i|=0,i=n|=0,y=0|c,e=f|=0,D=n=D-400|0,(g|=0)&&(o[g>>2]=0,o[g+4>>2]=0),C&&(E[0|C]=255),p=-1;A:{I:{if(!(!i&y>>>0<17)){if(s=c=i-(y>>>0<17)|0,!c&(f=y-17|0)>>>0>=4294967279|c)break I;XA(w=n+32|0,64,h=A+32|0,A),OA(c=n+96|0,w),$A(w,64),zA(c,r,e,t),zA(c,33904,0-e&15,0),o[n+88>>2]=0,o[n+92>>2]=0,o[n+80>>2]=0,o[n+84>>2]=0,o[n+72>>2]=0,o[n+76>>2]=0,o[(r=n- -64|0)>>2]=0,o[r+4>>2]=0,o[n+56>>2]=0,o[n+60>>2]=0,o[n+48>>2]=0,o[n+52>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+32>>2]=0,o[n+36>>2]=0,E[n+32|0]=a[0|B],wA(w,w,64,0,h,1,A),r=a[n+32|0],E[n+32|0]=a[0|B],zA(c,w,64,0),zA(c,B=B+1|0,f,s),zA(c,33904,y-1&15,0),o[n+24>>2]=e,o[n+28>>2]=t,zA(c,t=n+24|0,8,0),i=(y=y+47|0)>>>0<47?i+1|0:i,o[n+24>>2]=y,o[n+28>>2]=i,zA(c,t,8,0),TA(c,n),$A(c,256),oA(n,B+f|0,16)?$A(n,16):(wA(I,B,f,s,h,2,A),E[A+36|0]=a[A+36|0]^a[0|n],E[A+37|0]=a[A+37|0]^a[n+1|0],E[A+38|0]=a[A+38|0]^a[n+2|0],E[A+39|0]=a[A+39|0]^a[n+3|0],E[A+40|0]=a[A+40|0]^a[n+4|0],E[A+41|0]=a[A+41|0]^a[n+5|0],E[A+42|0]=a[A+42|0]^a[n+6|0],E[A+43|0]=a[A+43|0]^a[n+7|0],yA(h),(2&r||iA(h,4))&&(I=a[A+28|0]|a[A+29|0]<<8|a[A+30|0]<<16|a[A+31|0]<<24,o[n+376>>2]=a[A+24|0]|a[A+25|0]<<8|a[A+26|0]<<16|a[A+27|0]<<24,o[n+380>>2]=I,I=a[A+20|0]|a[A+21|0]<<8|a[A+22|0]<<16|a[A+23|0]<<24,o[n+368>>2]=a[A+16|0]|a[A+17|0]<<8|a[A+18|0]<<16|a[A+19|0]<<24,o[n+372>>2]=I,I=a[A+4|0]|a[A+5|0]<<8|a[A+6|0]<<16|a[A+7|0]<<24,o[n+352>>2]=a[0|A]|a[A+1|0]<<8|a[A+2|0]<<16|a[A+3|0]<<24,o[n+356>>2]=I,I=a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24,o[n+360>>2]=a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24,o[n+364>>2]=I,I=a[A+40|0]|a[A+41|0]<<8|a[A+42|0]<<16|a[A+43|0]<<24,o[n+384>>2]=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o[n+388>>2]=I,xA(I=n+352|0,I,h,A),I=o[n+380>>2],B=o[n+376>>2],E[A+24|0]=B,E[A+25|0]=B>>>8,E[A+26|0]=B>>>16,E[A+27|0]=B>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,I=o[n+372>>2],B=o[n+368>>2],E[A+16|0]=B,E[A+17|0]=B>>>8,E[A+18|0]=B>>>16,E[A+19|0]=B>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[n+364>>2],B=o[n+360>>2],E[A+8|0]=B,E[A+9|0]=B>>>8,E[A+10|0]=B>>>16,E[A+11|0]=B>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[n+356>>2],B=o[n+352>>2],E[0|A]=B,E[A+1|0]=B>>>8,E[A+2|0]=B>>>16,E[A+3|0]=B>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[n+384>>2],B=o[n+388>>2],E[A+32|0]=1,E[A+33|0]=0,E[A+34|0]=0,E[A+35|0]=0,E[A+36|0]=I,E[A+37|0]=I>>>8,E[A+38|0]=I>>>16,E[A+39|0]=I>>>24,E[A+40|0]=B,E[A+41|0]=B>>>8,E[A+42|0]=B>>>16,E[A+43|0]=B>>>24),g&&(o[g>>2]=f,o[g+4>>2]=s),p=0,C&&(E[0|C]=r))}D=n+400|0;break A}mA(),Q()}return 0|p},bb:function(){return 52},cb:function(){return 17},db:gI,eb:II,fb:function(){return-18},gb:oI,hb:QI,ib:function(){return 2},jb:iI,kb:EI,lb:AI,mb:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var Q,i=0,o=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0;if(p=1886610805^(B=a[0|(i=B|=0)]|a[i+1|0]<<8|a[i+2|0]<<16|a[i+3|0]<<24),u=1936682341^(o=a[i+4|0]|a[i+5|0]<<8|a[i+6|0]<<16|a[i+7|0]<<24),B^=1852142177,n=1819895653^o,k=1852075885^(o=a[i+8|0]|a[i+9|0]<<8|a[i+10|0]<<16|a[i+11|0]<<24),F=1685025377^(i=a[i+12|0]|a[i+13|0]<<8|a[i+14|0]<<16|a[i+15|0]<<24),r=2037671283^o,o=1952801890^i,D=g,(0|(c=(I+g|0)-(Q=7&g)|0))!=(0|I)){for(;g=(h=o^(s=a[I+4|0]|a[I+5|0]<<8|a[I+6|0]<<16|a[I+7|0]<<24))+n|0,r=B=(i=C=r^(y=a[0|I]|a[I+1|0]<<8|a[I+2|0]<<16|a[I+3|0]<<24))+B|0,e=g=B>>>0>>0?g+1|0:g,g=u+F|0,g=(n=p+k|0)>>>0>>0?g+1|0:g,i=nA(k,F,13)^n,o=g,g=e+(B=g^w)|0,g=i>>>0>(f=r+i|0)>>>0?g+1|0:g,i=nA(i,B,17)^f,t=g,p=nA(i,B=g^w,13),u=w,g=nA(C,h,16),C=e^w,h=g^r,o=nA(n,o,32),g=w+C|0,g=(o=(n=h+o|0)>>>0>>0?g+1|0:g)+B|0,e=g=(r=i+n|0)>>>0>>0?g+1|0:g,p=nA(i=r^p,B=g^u,17),u=w,g=nA(h,C,21),C=o^w,h=g^n,o=nA(f,t,32),g=w+C|0,g=(o=(n=h+o|0)>>>0>>0?g+1|0:g)+B|0,k=(i=i+n|0)^p,B=g=i>>>0>>0?g+1|0:g,F=g^u,g=nA(h,C,16),f=o^=w,t=nA(g^=n,o,21),n=w,e=(o=nA(r,e,32))+g|0,g=w+f|0,r=t^e,o=(g=o>>>0>e>>>0?g+1|0:g)^n,B=nA(i,B,32),n=w,p=e^y,u=g^s,(0|c)!=(0|(I=I+8|0)););I=c}switch(s=0,t=D<<24,Q-1|0){case 6:t|=a[I+6|0]<<16;case 5:t|=a[I+5|0]<<8;case 4:t|=a[I+4|0];case 3:s|=(C=a[I+3|0])<<24,t|=g=C>>>8|0;case 2:s|=(C=a[I+2|0])<<16,t|=g=C>>>16|0;case 1:s|=(C=a[I+1|0])<<8,t|=g=C>>>24|0;case 0:s=a[0|I]|s}return I=A,C=nA(i=r^s,A=o^t,16),A=A+n|0,e=A=(r=B+i|0)>>>0>>0?A+1|0:A,f=nA(B=C^r,A^=g=w,21),o=w,g=u+F|0,C=g=(i=p+k|0)>>>0>>0?g+1|0:g,c=B,B=nA(i,g,32),g=w+A|0,A=o,o=g=B>>>0>(n=c+B|0)>>>0?g+1|0:g,D=nA(B=n^f,A^=g,16),y=w,i=(g=r)+(r=c=nA(k,F,13)^i)|0,g=(f=w^C)+e|0,C=i,e=B,B=nA(i,g=i>>>0>>0?g+1|0:g,32),A=w+A|0,h=nA(i=(r=e+B|0)^D,B=(e=B>>>0>r>>>0?A+1|0:A)^y,21),y=w,c=nA(c,f,17)^C,g=(f=w^g)+o|0,A=g=(A=c)>>>0>(C=A+n|0)>>>0?g+1|0:g,o=i,i=nA(C,g,32),g=w+B|0,D=g=(o=i>>>0>(n=o+i|0)>>>0?g+1|0:g)^y,y=nA(h^=n,g,16),i=w,c=nA(c,f,13)^C,A=(f=A^w)+e|0,C=A=(g=c)>>>0>(B=g+r|0)>>>0?A+1|0:A,A=nA(B,A,32),g=D+w|0,D=g=(r=i)^(i=(A=h+(255^A)|0)>>>0>>0?g+1|0:g),r=A,y=nA(h=y^A,g,21),e=w,c=nA(c,f,17)^B,g=(f=C^w)+(o^t)|0,C=g=(A=n^s)>>>0>(B=c+A|0)>>>0?g+1|0:g,A=nA(B,g,32),g=D+w|0,g=(o=(A=A+h|0)>>>0>>0?g+1|0:g)^e,e=A,y=nA(D=y^A,g,16),n=w,f=nA(c,f,13)^B,A=i+(t=w^C)|0,C=A=(B=r+f|0)>>>0>>0?A+1|0:A,A=nA(B,A,32),g=g+w|0,c=g=(i=(A=A+D|0)>>>0>>0?g+1|0:g)^n,n=A,y=nA(D=y^A,g,21),r=w,A=nA(f,t,17),g=o+(f=C^w)|0,C=g=(B=e+(t=A^B)|0)>>>0>>0?g+1|0:g,A=nA(B,g,32),g=c+w|0,r=g=(o=(A=A+D|0)>>>0>>0?g+1|0:g)^r,e=A,c=nA(D=y^A,g,16),y=w,A=nA(t,f,13),g=i+(f=C^w)|0,C=g=(i=n+(t=A^B)|0)>>>0>>0?g+1|0:g,A=nA(i,g,32),g=r+w|0,r=A=A+D|0,n=g=A>>>0>>0?g+1|0:g,D=nA(B=c^A,A=g^y,21),c=w,t=nA(t,f,17),g=o+(y=C^w)|0,f=i^t,i=B,B=nA(C=e+f|0,g=C>>>0>>0?g+1|0:g,32),A=w+A|0,c=nA(i=(e=i+B|0)^D,B=(o=B>>>0>e>>>0?A+1|0:A)^c,16),t=w,A=nA(f,y,13),g=n+(y=g^w)|0,A=g=(C=r+(f=A^C)|0)>>>0>>0?g+1|0:g,n=nA(C,g,32),g=w+B|0,B=i=n+i|0,t=nA(i^c,(g=i>>>0>>0?g+1|0:g)^t,21),r=w,C=nA(f,y,17)^C,n=nA(C,A^=w,13),A=A+o|0,o=A=w^((C=C+e|0)>>>0>>0?A+1|0:A),C=nA(i=C^n,A,17)^t,A=w^r,g=g+o|0,r=B,C=nA(B=B+i|0,g=r>>>0>B>>>0?g+1|0:g,32)^C^B,E[0|I]=C,E[I+1|0]=C>>>8,E[I+2|0]=C>>>16,E[I+3|0]=C>>>24,A^=g^w,E[I+4|0]=A,E[I+5|0]=A>>>8,E[I+6|0]=A>>>16,E[I+7|0]=A>>>24,0},nb:function(A){hA(A|=0,16)},ob:function(){return 208},pb:BI,qb:II,rb:II,sb:BI,tb:function(){return-65},ub:function(A,I,g){A|=0;var C,B,Q,i,o=0,n=0,r=0,f=0,t=0;return D=Q=D-160|0,QA(I|=0,g|=0,32,0),E[0|I]=248&a[0|I],E[I+31|0]=63&a[I+31|0]|64,v(Q,I),uA(A,Q),n=a[(B=g)+8|0]|a[B+9|0]<<8|a[B+10|0]<<16|a[B+11|0]<<24,o=a[B+12|0]|a[B+13|0]<<8|a[B+14|0]<<16|a[B+15|0]<<24,r=a[B+16|0]|a[B+17|0]<<8|a[B+18|0]<<16|a[B+19|0]<<24,f=a[B+20|0]|a[B+21|0]<<8|a[B+22|0]<<16|a[B+23|0]<<24,t=a[0|B]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,g=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,i=a[B+28|0]|a[B+29|0]<<8|a[B+30|0]<<16|a[B+31|0]<<24,C=I,I=a[B+24|0]|a[B+25|0]<<8|a[B+26|0]<<16|a[B+27|0]<<24,E[C+24|0]=I,E[C+25|0]=I>>>8,E[C+26|0]=I>>>16,E[C+27|0]=I>>>24,E[C+28|0]=i,E[C+29|0]=i>>>8,E[C+30|0]=i>>>16,E[C+31|0]=i>>>24,E[C+16|0]=r,E[C+17|0]=r>>>8,E[C+18|0]=r>>>16,E[C+19|0]=r>>>24,E[C+20|0]=f,E[C+21|0]=f>>>8,E[C+22|0]=f>>>16,E[C+23|0]=f>>>24,E[C+8|0]=n,E[C+9|0]=n>>>8,E[C+10|0]=n>>>16,E[C+11|0]=n>>>24,E[C+12|0]=o,E[C+13|0]=o>>>8,E[C+14|0]=o>>>16,E[C+15|0]=o>>>24,E[0|C]=t,E[C+1|0]=t>>>8,E[C+2|0]=t>>>16,E[C+3|0]=t>>>24,E[C+4|0]=g,E[C+5|0]=g>>>8,E[C+6|0]=g>>>16,E[C+7|0]=g>>>24,r=a[(o=A)+8|0]|a[o+9|0]<<8|a[o+10|0]<<16|a[o+11|0]<<24,f=a[o+12|0]|a[o+13|0]<<8|a[o+14|0]<<16|a[o+15|0]<<24,t=a[o+16|0]|a[o+17|0]<<8|a[o+18|0]<<16|a[o+19|0]<<24,g=a[o+20|0]|a[o+21|0]<<8|a[o+22|0]<<16|a[o+23|0]<<24,I=a[0|o]|a[o+1|0]<<8|a[o+2|0]<<16|a[o+3|0]<<24,A=a[o+4|0]|a[o+5|0]<<8|a[o+6|0]<<16|a[o+7|0]<<24,n=a[o+28|0]|a[o+29|0]<<8|a[o+30|0]<<16|a[o+31|0]<<24,o=a[o+24|0]|a[o+25|0]<<8|a[o+26|0]<<16|a[o+27|0]<<24,E[C+56|0]=o,E[C+57|0]=o>>>8,E[C+58|0]=o>>>16,E[C+59|0]=o>>>24,E[C+60|0]=n,E[C+61|0]=n>>>8,E[C+62|0]=n>>>16,E[C+63|0]=n>>>24,E[C+48|0]=t,E[C+49|0]=t>>>8,E[C+50|0]=t>>>16,E[C+51|0]=t>>>24,E[C+52|0]=g,E[C+53|0]=g>>>8,E[C+54|0]=g>>>16,E[C+55|0]=g>>>24,E[C+40|0]=r,E[C+41|0]=r>>>8,E[C+42|0]=r>>>16,E[C+43|0]=r>>>24,E[C+44|0]=f,E[C+45|0]=f>>>8,E[C+46|0]=f>>>16,E[C+47|0]=f>>>24,E[C+32|0]=I,E[C+33|0]=I>>>8,E[C+34|0]=I>>>16,E[C+35|0]=I>>>24,E[C+36|0]=A,E[C+37|0]=A>>>8,E[C+38|0]=A>>>16,E[C+39|0]=A>>>24,D=Q+160|0,0},vb:function(A,I){A|=0,I|=0;var g,C,B,Q,i,n=0,r=0,f=0;return D=r=D-192|0,hA(r,32),QA(I,r,32,0),E[0|I]=248&a[0|I],E[I+31|0]=63&a[I+31|0]|64,v(f=r+32|0,I),uA(A,f),g=r,f=o[r+28>>2],r=o[r+24>>2],E[I+24|0]=r,E[I+25|0]=r>>>8,E[I+26|0]=r>>>16,E[I+27|0]=r>>>24,E[I+28|0]=f,E[I+29|0]=f>>>8,E[I+30|0]=f>>>16,E[I+31|0]=f>>>24,f=o[g+20>>2],r=o[g+16>>2],E[I+16|0]=r,E[I+17|0]=r>>>8,E[I+18|0]=r>>>16,E[I+19|0]=r>>>24,E[I+20|0]=f,E[I+21|0]=f>>>8,E[I+22|0]=f>>>16,E[I+23|0]=f>>>24,f=o[g+12>>2],r=o[g+8>>2],E[I+8|0]=r,E[I+9|0]=r>>>8,E[I+10|0]=r>>>16,E[I+11|0]=r>>>24,E[I+12|0]=f,E[I+13|0]=f>>>8,E[I+14|0]=f>>>16,E[I+15|0]=f>>>24,f=o[g+4>>2],r=o[g>>2],E[0|I]=r,E[I+1|0]=r>>>8,E[I+2|0]=r>>>16,E[I+3|0]=r>>>24,E[I+4|0]=f,E[I+5|0]=f>>>8,E[I+6|0]=f>>>16,E[I+7|0]=f>>>24,C=a[(n=A)+8|0]|a[n+9|0]<<8|a[n+10|0]<<16|a[n+11|0]<<24,B=a[n+12|0]|a[n+13|0]<<8|a[n+14|0]<<16|a[n+15|0]<<24,Q=a[n+16|0]|a[n+17|0]<<8|a[n+18|0]<<16|a[n+19|0]<<24,f=a[n+20|0]|a[n+21|0]<<8|a[n+22|0]<<16|a[n+23|0]<<24,r=a[0|n]|a[n+1|0]<<8|a[n+2|0]<<16|a[n+3|0]<<24,A=a[n+4|0]|a[n+5|0]<<8|a[n+6|0]<<16|a[n+7|0]<<24,i=a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24,n=a[n+24|0]|a[n+25|0]<<8|a[n+26|0]<<16|a[n+27|0]<<24,E[I+56|0]=n,E[I+57|0]=n>>>8,E[I+58|0]=n>>>16,E[I+59|0]=n>>>24,E[I+60|0]=i,E[I+61|0]=i>>>8,E[I+62|0]=i>>>16,E[I+63|0]=i>>>24,E[I+48|0]=Q,E[I+49|0]=Q>>>8,E[I+50|0]=Q>>>16,E[I+51|0]=Q>>>24,E[I+52|0]=f,E[I+53|0]=f>>>8,E[I+54|0]=f>>>16,E[I+55|0]=f>>>24,E[I+40|0]=C,E[I+41|0]=C>>>8,E[I+42|0]=C>>>16,E[I+43|0]=C>>>24,E[I+44|0]=B,E[I+45|0]=B>>>8,E[I+46|0]=B>>>16,E[I+47|0]=B>>>24,E[I+32|0]=r,E[I+33|0]=r>>>8,E[I+34|0]=r>>>16,E[I+35|0]=r>>>24,E[I+36|0]=A,E[I+37|0]=A>>>8,E[I+38|0]=A>>>16,E[I+39|0]=A>>>24,$A(g,32),D=g+192|0,0},wb:function(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var i,E=0;return D=i=D-16|0,s(A|=0,i+8|0,kA(A- -64|0,g|=0,C|=0),C,B,Q,0),64!=o[i+8>>2]|o[i+12>>2]?(I&&(o[I>>2]=0,o[I+4>>2]=0),MA(A,0,C- -64|0),E=-1):I&&(o[I>>2]=C- -64,o[I+4>>2]=B-((C>>>0<4294967232)-1|0)),D=i+16|0,0|E},xb:function(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var i=0;A:{I:{if(!(!(B|=0)&(C|=0)>>>0<64||(B=B-1|0,!(B=(C=C+-64|0)>>>0<4294967232?B+1|0:B)&C>>>0>4294967231|B))){if(!k(g,i=g- -64|0,C,B,Q|=0,0))break I;A&&MA(A,0,C)}if(g=-1,!I)break A;o[I>>2]=0,o[I+4>>2]=0;break A}I&&(o[I>>2]=C,o[I+4>>2]=B),g=0,A&&kA(A,i,C)}return 0|g},yb:function(A,I,g,C,B,Q){return s(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0},zb:function(A,I,g,C,B){return 0|k(A|=0,I|=0,g|=0,C|=0,B|=0,0)},Ab:function(A){return EA(A|=0),0},Bb:function(A,I,g,C){return 0|m(A|=0,I|=0,g|=0,C|=0)},Cb:function(A,I,g,C){var B;return I|=0,g|=0,C|=0,D=B=D+-64|0,M(A|=0,B),A=s(I,g,B,64,0,C,1),D=B- -64|0,0|A},Db:function(A,I,g){var C;return I|=0,g|=0,D=C=D+-64|0,M(A|=0,C),A=k(I,C,64,0,g,1),D=C- -64|0,0|A},Eb:function(A,I){A|=0;var g,C=0,B=0,Q=0,i=0,a=0,n=0,f=0,t=0,e=0,c=0,y=0,h=0,s=0,p=0,u=0,k=0,S=0,H=0,M=0,G=0,J=0,N=0,Y=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0,j=0,q=0,z=0,O=0,T=0,Z=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,EA=0,oA=0,nA=0,rA=0,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,uA=0,kA=0,FA=0,lA=0,SA=0,HA=0,GA=0,UA=0,JA=0,NA=0,YA=0,bA=0,_A=0,KA=0,PA=0,vA=0,mA=0,dA=0,LA=0,RA=0,xA=0,jA=0,XA=0;if(D=g=D-256|0,PA=-1,!aA(I|=0)&&!U(g+96|0,I)){for(D=C=D-2048|0,V(s=C+640|0,I=g+96|0),B=o[I+8>>2],i=o[I+12>>2],Q=o[I+16>>2],a=o[I+20>>2],e=o[I+24>>2],c=o[I+28>>2],n=o[I>>2],f=o[I+4>>2],p=o[I+36>>2],o[C+352>>2]=o[I+32>>2],o[C+356>>2]=p,o[C+344>>2]=e,o[C+348>>2]=c,o[C+336>>2]=Q,o[C+340>>2]=a,o[C+328>>2]=B,o[C+332>>2]=i,o[C+320>>2]=n,o[C+324>>2]=f,B=o[I+40>>2],i=o[I+44>>2],Q=o[I+48>>2],a=o[I+52>>2],e=o[I+56>>2],c=o[I+60>>2],f=o[(n=I- -64|0)>>2],n=o[n+4>>2],p=o[I+76>>2],o[C+392>>2]=o[I+72>>2],o[C+396>>2]=p,o[C+384>>2]=f,o[C+388>>2]=n,o[C+376>>2]=e,o[C+380>>2]=c,o[C+368>>2]=Q,o[C+372>>2]=a,o[C+360>>2]=B,o[C+364>>2]=i,B=o[I+80>>2],i=o[I+84>>2],Q=o[I+88>>2],a=o[I+92>>2],e=o[I+96>>2],c=o[I+100>>2],n=o[I+104>>2],f=o[I+108>>2],p=o[I+116>>2],o[C+432>>2]=o[I+112>>2],o[C+436>>2]=p,o[C+424>>2]=n,o[C+428>>2]=f,o[C+416>>2]=e,o[C+420>>2]=c,o[C+408>>2]=Q,o[C+412>>2]=a,o[C+400>>2]=B,o[C+404>>2]=i,l(I=C+480|0,B=C+320|0),F(n=C+160|0,I,i=C+600|0),F(C+200|0,Q=C+520|0,a=C+560|0),F(C+240|0,a,i),F(C+280|0,I,Q),_(I,n,s),F(B,I,i),F(s=C+360|0,Q,a),F(e=C+400|0,a,i),F(c=C+440|0,I,Q),V(f=C+800|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+960|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1120|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1280|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1440|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(f=C+1600|0,B),_(I,n,f),F(B,I,i),F(s,Q,a),F(e,a,i),F(c,I,Q),V(C+1760|0,B),o[C+32>>2]=0,o[C+36>>2]=0,o[C+24>>2]=0,o[C+28>>2]=0,o[C+16>>2]=0,o[C+20>>2]=0,o[C+8>>2]=0,o[C+12>>2]=0,o[C+44>>2]=0,o[C+48>>2]=0,o[C+52>>2]=0,o[C+56>>2]=0,o[C+60>>2]=0,o[C+64>>2]=0,o[C+68>>2]=0,o[C+72>>2]=0,o[C+76>>2]=0,o[C+80>>2]=1,o[C>>2]=0,o[C+4>>2]=0,o[C+40>>2]=1,MA(C+84|0,0,76),f=C+120|0,p=C+80|0,M=C+40|0,I=252;B=o[C+36>>2],o[C+1960>>2]=o[C+32>>2],o[C+1964>>2]=B,B=o[C+28>>2],o[C+1952>>2]=o[C+24>>2],o[C+1956>>2]=B,B=o[C+20>>2],o[C+1944>>2]=o[C+16>>2],o[C+1948>>2]=B,B=o[C+12>>2],o[C+1936>>2]=o[C+8>>2],o[C+1940>>2]=B,B=o[C+4>>2],o[C+1928>>2]=o[C>>2],o[C+1932>>2]=B,B=o[C+76>>2],o[C+2e3>>2]=o[C+72>>2],o[C+2004>>2]=B,B=o[C+68>>2],o[C+1992>>2]=o[C+64>>2],o[C+1996>>2]=B,B=o[C+60>>2],o[C+1984>>2]=o[C+56>>2],o[C+1988>>2]=B,B=o[C+52>>2],o[C+1976>>2]=o[C+48>>2],o[C+1980>>2]=B,B=o[C+44>>2],o[C+1968>>2]=o[C+40>>2],o[C+1972>>2]=B,B=o[C+84>>2],o[C+2008>>2]=o[C+80>>2],o[C+2012>>2]=B,B=o[C+92>>2],o[C+2016>>2]=o[C+88>>2],o[C+2020>>2]=B,B=o[C+100>>2],o[C+2024>>2]=o[C+96>>2],o[C+2028>>2]=B,B=o[C+108>>2],o[C+2032>>2]=o[C+104>>2],o[C+2036>>2]=B,B=o[C+116>>2],o[C+2040>>2]=o[C+112>>2],o[C+2044>>2]=B,B=I,I=E[I+33424|0],l(C+480|0,C+1928|0),(0|I)>0?(F(k=C+320|0,n=C+480|0,i),F(s,Q,a),F(e,a,i),F(c,n,Q),_(n,k,(C+640|0)+r((254&I)>>>1|0,160)|0)):(0|I)>=0||(F(k=C+320|0,n=C+480|0,i),F(s,Q,a),F(e,a,i),F(c,n,Q),b(n,k,(C+640|0)+r((0-I&254)>>>1|0,160)|0)),F(C,I=C+480|0,i),F(M,Q,a),F(p,a,i),F(f,I,Q),I=B-1|0,B;);W(I=C+640|0,C),I=iA(I,32),D=C+2048|0,I&&(Q=o[g+136>>2],o[g>>2]=1-Q,PA=0,j=o[g+172>>2],o[g+36>>2]=0-j,f=o[g+168>>2],o[g+32>>2]=0-f,q=o[g+164>>2],o[g+28>>2]=0-q,s=o[g+160>>2],o[g+24>>2]=0-s,z=o[g+156>>2],o[g+20>>2]=0-z,e=o[g+152>>2],o[g+16>>2]=0-e,O=o[g+148>>2],o[g+12>>2]=0-O,c=o[g+144>>2],o[g+8>>2]=0-c,T=o[g+140>>2],o[g+4>>2]=0-T,X(g,g),I=DA(M=o[g+4>>2],L=M>>31,G=z<<1,fA=G>>31),B=w,C=DA(a=o[g>>2],N=a>>31,s,Y=s>>31),B=w+B|0,B=(I=C+I|0)>>>0>>0?B+1|0:B,C=(i=DA(K=o[g+8>>2],Z=K>>31,e,P=e>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(R=o[g+12>>2],IA=R>>31,BA=O<<1,tA=BA>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA($=o[g+16>>2],QA=$>>31,c,v=c>>31),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,JA=i=o[g+20>>2],n=DA(i,eA=i>>31,EA=T<<1,cA=EA>>31),C=w+I|0,C=(B=n+B|0)>>>0>>0?C+1|0:C,NA=S=o[g+24>>2],I=(Q=DA(S,HA=S>>31,n=Q+1|0,m=n>>31))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,yA=o[g+28>>2],C=(Q=DA(y=r(yA,19),gA=y>>31,oA=j<<1,wA=oA>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,vA=o[g+32>>2],C=DA(k=r(vA,19),AA=k>>31,f,d=f>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,mA=o[g+36>>2],C=DA(p=r(mA,19),x=p>>31,nA=q<<1,hA=nA>>31),I=w+I|0,h=B=C+B|0,Q=C>>>0>B>>>0?I+1|0:I,I=DA(e,P,M,L),B=w,t=DA(a,N,z,sA=z>>31),C=w+B|0,C=(I=t+I|0)>>>0>>0?C+1|0:C,t=DA(K,Z,O,pA=O>>31),B=w+C|0,B=(I=t+I|0)>>>0>>0?B+1|0:B,C=(t=DA(c,v,R,IA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA($,QA,T,uA=T>>31),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(n,m,i,eA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,t=DA(S=r(S,19),rA=S>>31,j,kA=j>>31),C=w+I|0,C=(B=t+B|0)>>>0>>0?C+1|0:C,I=(t=DA(f,d,y,gA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(t=DA(k,AA,q,FA=q>>31))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(s,Y,p,x),I=w+I|0,YA=B=B+C|0,CA=C>>>0>B>>>0?I+1|0:I,I=DA(M,L,BA,tA),C=w,B=(t=DA(a,N,e,P))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,t=DA(c,v,K,Z),C=w+I|0,C=(B=t+B|0)>>>0>>0?C+1|0:C,I=(t=DA(R,IA,EA,cA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(t=DA(n,m,$,QA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(t=r(i,19),lA=t>>31,oA,wA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(f,d,S,rA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,i=DA(y,gA,nA,hA),C=w+I|0,C=(B=i+B|0)>>>0>>0?C+1|0:C,I=(i=DA(s,Y,k,AA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(i=DA(p,x,G,fA))+I|0,I=w+B|0,dA=C,LA=I=C>>>0>>0?I+1|0:I,RA=C=C+33554432|0,xA=I=C>>>0<33554432?I+1|0:I,C=(67108863&I)<<6|C>>>26,I=(I>>26)+CA|0,YA=i=C+YA|0,C=I=C>>>0>i>>>0?I+1|0:I,jA=I=i+16777216|0,i=(33554431&(C=I>>>0<16777216?C+1|0:C))<<7|I>>>25,I=(B=C>>25)+Q|0,I=(C=i+h|0)>>>0>>0?I+1|0:I,bA=B=C+33554432|0,i=I=B>>>0<33554432?I+1|0:I,o[g+72>>2]=C-(-67108864&B),I=DA(M,L,EA,cA),B=w,Q=DA(a,N,c,v),C=w+B|0,C=(I=Q+I|0)>>>0>>0?C+1|0:C,B=(Q=DA(n,m,K,Z))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(Q=r(R,19),SA=Q>>31,oA,wA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(h=DA(CA=r($,19),GA=CA>>31,f,d))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,h=DA(nA,hA,t,lA),I=w+B|0,I=(C=h+C|0)>>>0>>0?I+1|0:I,B=(h=DA(s,Y,S,rA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,h=DA(y,gA,G,fA),I=w+C|0,I=(B=h+B|0)>>>0>>0?I+1|0:I,C=DA(e,P,k,AA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(h=DA(p,x,BA,tA))+B|0,B=w+I|0,H=C,_A=C>>>0>>0?B+1|0:B,I=DA(n,m,M,L),B=w,C=(h=DA(a,N,T,uA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,h=B=r(K,19),B=(u=DA(B,UA=B>>31,j,kA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,u=DA(f,d,Q,SA),I=w+C|0,I=(B=u+B|0)>>>0>>0?I+1|0:I,C=DA(CA,GA,q,FA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(u=DA(s,Y,t,lA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,u=DA(S,rA,z,sA),I=w+B|0,I=(C=u+C|0)>>>0>>0?I+1|0:I,B=(u=DA(e,P,y,gA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,u=DA(k,AA,O,pA),I=w+C|0,I=(B=u+B|0)>>>0>>0?I+1|0:I,C=DA(c,v,p,x),I=w+I|0,KA=B=C+B|0,u=C>>>0>B>>>0?I+1|0:I,I=DA(I=r(M,19),I>>31,oA,wA),B=w,C=DA(a,N,n,m),B=w+B|0,B=(I=C+I|0)>>>0>>0?B+1|0:B,C=(h=DA(f,d,h,UA))+I|0,I=w+B|0,B=(Q=DA(Q,SA,nA,hA))+C|0,C=w+(C>>>0>>0?I+1|0:I)|0,C=B>>>0>>0?C+1|0:C,Q=DA(s,Y,CA,GA),I=w+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=DA(G,fA,t,lA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(Q=DA(e,P,S,rA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,Q=DA(y,gA,BA,tA),I=w+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=(Q=DA(c,v,k,AA))+C|0,C=w+I|0,C=B>>>0>>0?C+1|0:C,Q=DA(p,x,EA,cA),I=w+C|0,h=B=Q+B|0,SA=I=B>>>0>>0?I+1|0:I,UA=B=B+33554432|0,XA=I=B>>>0<33554432?I+1|0:I,C=I>>26,I=(67108863&I)<<6|B>>>26,B=C+u|0,u=Q=I+KA|0,I=B=I>>>0>Q>>>0?B+1|0:B,KA=B=Q+16777216|0,Q=(33554431&(I=B>>>0<16777216?I+1|0:I))<<7|B>>>25,I=(I>>25)+_A|0,I=(B=Q+H|0)>>>0>>0?I+1|0:I,_A=B=(C=B)+33554432|0,Q=I=B>>>0<33554432?I+1|0:I,o[g+56>>2]=C-(-67108864&B),I=DA(s,Y,M,L),C=w,B=(H=DA(a,N,q,FA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(K,Z,z,sA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=DA(e,P,R,IA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,H=DA($,QA,O,pA),C=w+I|0,C=(B=H+B|0)>>>0>>0?C+1|0:C,I=(H=DA(c,v,JA,eA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(H=DA(T,uA,NA,HA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(yA,H=yA>>31,n,m),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(k,AA,j,kA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,J=(C=B)+(B=DA(p,x,f,d))|0,C=w+I|0,B=(I=i>>26)+(B=B>>>0>J>>>0?C+1|0:C)|0,I=(C=(i=(67108863&i)<<6|bA>>>26)+J|0)>>>0>>0?B+1|0:B,bA=B=C+16777216|0,i=I=B>>>0<16777216?I+1|0:I,o[g+76>>2]=C-(-33554432&B),I=DA(c,v,M,L),B=w,J=DA(a,N,O,pA),C=w+B|0,C=(I=J+I|0)>>>0>>0?C+1|0:C,J=DA(K,Z,T,uA),B=w+C|0,B=(I=J+I|0)>>>0>>0?B+1|0:B,C=(J=DA(n,m,R,IA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(CA,GA,j,kA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=DA(f,d,t,lA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,B=(S=DA(S,rA,q,FA))+B|0,C=w+I|0,I=(y=DA(s,Y,y,gA))+B|0,B=w+(B>>>0>>0?C+1|0:C)|0,C=(k=DA(k,AA,z,sA))+I|0,I=w+(I>>>0>>0?B+1|0:B)|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(e,P,p,x),I=w+I|0,y=B=B+C|0,I=(I=C>>>0>B>>>0?I+1|0:I)+(B=Q>>26)|0,C=(B=Q=y+(C=(67108863&Q)<<6|_A>>>26)|0)>>>0>>0?I+1|0:I,k=I=B+16777216|0,Q=C=I>>>0<16777216?C+1|0:C,o[g+60>>2]=B-(-33554432&I),I=DA(M,L,nA,hA),C=w,B=(y=DA(a,N,f,d))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(s,Y,K,Z),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,y=DA(R,IA,G,fA),C=w+I|0,C=(B=y+B|0)>>>0>>0?C+1|0:C,I=(y=DA(e,P,$,QA))+B|0,B=w+C|0,B=I>>>0>>0?B+1|0:B,C=(y=DA(BA,tA,JA,eA))+I|0,I=w+B|0,I=C>>>0>>0?I+1|0:I,B=C,C=DA(c,v,NA,HA),I=w+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,C=B,B=DA(yA,H,EA,cA),I=w+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,y=B=vA,B=(G=DA(B,S=B>>31,n,m))+C|0,C=w+I|0,I=(p=DA(p,x,oA,wA))+B|0,B=w+(B>>>0>>0?C+1|0:C)|0,C=I>>>0

>>0?B+1|0:B,B=I,I=(I=i>>25)+C|0,I=(B=B+(i=(33554431&i)<<7|bA>>>25)|0)>>>0>>0?I+1|0:I,p=B=(C=B)+33554432|0,i=I=B>>>0<33554432?I+1|0:I,o[g+80>>2]=C-(-67108864&B),B=Q>>25,C=(Q=(33554431&Q)<<7|k>>>25)+(dA-(I=-67108864&RA)|0)|0,I=B+(LA-((I>>>0>dA>>>0)+xA|0)|0)|0,I=C>>>0>>0?I+1|0:I,Q=I=(67108863&(I=(B=C+33554432|0)>>>0<33554432?I+1|0:I))<<6|B>>>26,I=I+(G=YA-(-33554432&jA)|0)|0,o[g+68>>2]=I,o[g+64>>2]=C-(-67108864&B),I=DA(f,d,M,L),C=w,B=(Q=DA(a,N,j,kA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=(Q=DA(K,Z,q,FA))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,I=(Q=DA(s,Y,R,IA))+C|0,C=w+B|0,C=I>>>0>>0?C+1|0:C,B=(Q=DA($,QA,z,sA))+I|0,I=w+C|0,I=B>>>0>>0?I+1|0:I,C=DA(e,P,JA,eA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=DA(O,pA,NA,HA),I=w+I|0,I=C>>>0>(B=C+B|0)>>>0?I+1|0:I,C=(Q=DA(c,v,yA,H))+B|0,B=w+I|0,B=C>>>0>>0?B+1|0:B,Q=(I=DA(y,S,T,uA))+C|0,C=w+B|0,C=I>>>0>Q>>>0?C+1|0:C,B=Q,Q=DA(I=mA,I>>31,n,m),I=w+C|0,C=B=B+Q|0,I=(I=B>>>0>>0?I+1|0:I)+(B=i>>26)|0,I=(C=C+(i=(67108863&i)<<6|p>>>26)|0)>>>0>>0?I+1|0:I,I=(B=C+16777216|0)>>>0<16777216?I+1|0:I,o[g+84>>2]=C-(-33554432&B),i=u-(-33554432&KA)|0,Q=h-(C=-67108864&UA)|0,a=SA-((C>>>0>h>>>0)+XA|0)|0,I=DA((33554431&(C=I))<<7|B>>>25,I=C>>25,19,0),B=w+a|0,I=I>>>0>(C=I+Q|0)>>>0?B+1|0:B,Q=I=(67108863&(I=(B=C+33554432|0)>>>0<33554432?I+1|0:I))<<6|B>>>26,I=I+i|0,o[g+52>>2]=I,o[g+48>>2]=C-(-67108864&B),W(A,g+48|0))}return D=g+256|0,0|PA},Fb:function(A,I){A|=0;var g,C=0;return D=g=D+-64|0,QA(g,I|=0,32,0),E[0|g]=248&a[0|g],E[g+31|0]=63&a[g+31|0]|64,I=o[g+20>>2],C=o[g+16>>2],E[A+16|0]=C,E[A+17|0]=C>>>8,E[A+18|0]=C>>>16,E[A+19|0]=C>>>24,E[A+20|0]=I,E[A+21|0]=I>>>8,E[A+22|0]=I>>>16,E[A+23|0]=I>>>24,I=o[g+12>>2],C=o[g+8>>2],E[A+8|0]=C,E[A+9|0]=C>>>8,E[A+10|0]=C>>>16,E[A+11|0]=C>>>24,E[A+12|0]=I,E[A+13|0]=I>>>8,E[A+14|0]=I>>>16,E[A+15|0]=I>>>24,I=o[g+4>>2],C=o[g>>2],E[0|A]=C,E[A+1|0]=C>>>8,E[A+2|0]=C>>>16,E[A+3|0]=C>>>24,E[A+4|0]=I,E[A+5|0]=I>>>8,E[A+6|0]=I>>>16,E[A+7|0]=I>>>24,I=o[g+28>>2],C=o[g+24>>2],E[A+24|0]=C,E[A+25|0]=C>>>8,E[A+26|0]=C>>>16,E[A+27|0]=C>>>24,E[A+28|0]=I,E[A+29|0]=I>>>8,E[A+30|0]=I>>>16,E[A+31|0]=I>>>24,$A(g,64),D=g- -64|0,0},Gb:function(){var A,I;return D=A=D-16|0,E[A+15|0]=0,I=0|t(34904,A+15|0,0),D=A+16|0,0|I},Hb:KA,Ib:function(A){var I,g=0,C=0;if(D=I=D-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;E[I+15|0]=0,g>>>0>(C=0|t(34904,I+15|0,0))>>>0;);g=(C>>>0)%(A>>>0)|0}return D=I+16|0,0|g},Jb:hA,Kb:function(A,I,g){XA(A|=0,I|=0,1024,g|=0)},Lb:II,Mb:function(){var A=0,I=0;return(A=o[9048])&&(A=o[A+20>>2])&&(I=0|nI[0|A]()),0|I},Nb:function(A,I,g){A|=0,I|=0;var C,B=0,i=0,o=0;if(D=C=D-16|0,g|=0)e(1240,1100,197,1036),Q();else{if(I)for(;E[C+15|0]=0,i=A+B|0,o=0|t(34904,C+15|0,0),E[0|i]=o,(0|I)!=(0|(B=B+1|0)););D=C+16|0}},Ob:function(A,I,g,C){A|=0,g|=0;var B=0,i=0,o=0;if(!((C|=0)>>>0>2147483646|C<<1>>>0>=(I|=0)>>>0)){if(I=0,C){for(;B=(I<<1)+A|0,i=15&(o=a[I+g|0]),E[B+1|0]=22272+((i<<8)+(i+65526&55552)|0)>>>8,i=B,B=o>>>4|0,E[0|i]=87+((B+65526>>>8&217)+B|0),(0|C)!=(0|(I=I+1|0)););I=C<<1}else I=0;return E[I+A|0]=0,0|A}mA(),Q()},Pb:function(A,I,g,C,B,Q,i){A|=0,I|=0,g|=0,B|=0,Q|=0,i|=0;var n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;A:if(C|=0){I:{g:{C:{B:{if(!B){for(r=1,B=0;;){if(!(255&((y=(65526+(f=(223&(e=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(e^=48)>>>8|0))))break C;if(I>>>0<=c>>>0)break B;if(f=f&y|e&D,255&t?(E[A+c|0]=B|f,c=c+1|0):B=f<<4,t^=-1,(0|(n=n+1|0))==(0|C))break}n=C;break C}for(;;){Q:{i:{E:{o:{a:{if(!(255&((e=(65526+(f=(223&(r=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(y=48^r)>>>8|0)))){if(255&t)break g;if(!$(B,r))break A;if((n=t=n+1|0)>>>0>>0)break a;break A}if(I>>>0<=c>>>0)break B;if(r=f&e|y&D,!(255&t))break o;E[A+c|0]=r|h,c=c+1|0;break Q}for(;;){if(!(255&((e=(65526+(f=(223&(r=a[g+n|0]))-55&255)^f+65520)>>>8|0)|(D=65526+(y=48^r)>>>8|0)))){if(!$(B,r))break A;if((n=n+1|0)>>>0>>0)continue;break E}break}if(I>>>0<=c>>>0)break i;r=f&e|y&D}h=r<<4,t=0;break Q}n=C>>>0>t>>>0?C:t;break A}t=0;break B}if(t^=-1,r=1,!((n=n+1|0)>>>0>>0))break}break C}o[8916]=68,r=0}if(!(255&t))break I}o[8916]=28,w=-1,n=n-1|0,c=0;break A}r||(c=0,w=-1)}return i?o[i>>2]=g+n:(0|C)!=(0|n)&&(o[8916]=28,w=-1),Q&&(o[Q>>2]=c),0|w},Qb:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(mA(),Q()),1+((3&(g=(g=A)+r(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Rb:function(A,I,g,C,B){A|=0,I|=0,g|=0,C|=0;var i=0,o=0,n=0,f=0,t=0,c=0,y=0,D=0,w=0,h=0;A:{I:{g:{if(1==(-7&(B|=0))&&(f=(i=(C>>>0)/3|0)<<2,(i=r(i,-3)+C|0)&&(f=2&B?(2|f)+(i>>>1|0)|0:f+4|0),!(I>>>0<=f>>>0))){if(!(4&B)){if(i=0,!C)break A;break g}if(i=0,!C)break A;for(;;){for(c=(D=a[g+y|0])|c<<8,t=i,i=1+((((n|=8)-6>>>0)/6|0)+i|0)|0;w=65510+(o=c>>>(n=(B=n)-6|0)&63)>>>8|0,h=o+65484>>>8|0,E[A+t|0]=(1+(16321^o)^-1)>>>8&45|o+252&o+65474>>>8&(-1^h)|(o+32705^-1)>>>8&95|w&o+65|h&o+71&(-1^w),(0|(t=t+1|0))!=(0|i););if((0|(y=y+1|0))==(0|C))break}if(!n)break A;t=(C=65510+(g=D<<12-B&63)>>>8|0)&g+65,c=g+252&g+65474>>>8&(-1^(B=g+65484>>>8|0)),n=B&g+71&(-1^C),C=g+32705|0,B=(1+(16321^g)^-1)>>>8&45,g=95;break I}mA(),Q()}for(;;){for(c=(D=a[g+y|0])|c<<8,t=i,i=1+((((n|=8)-6>>>0)/6|0)+i|0)|0;w=65510+(o=c>>>(n=(B=n)-6|0)&63)>>>8|0,h=o+65484>>>8|0,E[A+t|0]=(1+(16321^o)^-1)>>>8&43|o+252&o+65474>>>8&(-1^h)|(o+16321^-1)>>>8&47|w&o+65|h&o+71&(-1^w),(0|(t=t+1|0))!=(0|i););if((0|(y=y+1|0))==(0|C))break}if(!n)break A;t=(C=65510+(g=D<<12-B&63)>>>8|0)&g+65,c=g+252&g+65474>>>8&(-1^(B=g+65484>>>8|0)),n=B&g+71&(-1^C),C=g+16321|0,B=(1+(16321^g)^-1)>>>8&43,g=47}E[A+i|0]=g&(-1^C)>>>8|t|c|B|n,i=i+1|0}A:{I:{if(i>>>0<=f>>>0){if(i>>>0>>0)break I;f=i;break A}e(1048,1126,230,1319),Q()}MA(A+i|0,61,f-i|0)}return MA(A+f|0,0,(I>>>0>(g=f+1|0)>>>0?I:g)-f|0),0|A},Sb:function(A,I,g,C,B,i,n,r){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,n|=0;var f=0,t=0,e=0,c=0,y=0,D=0,w=0,h=0;A:{I:{g:{C:{B:{Q:{i:{E:{o:{a:{n:{if(1==(-7&(r|=0))){if(e=0,!C)break E;if(4&r)break n;for(;;){e=t;r:{f:{t:{e:{for(;;){if(f=(f=(c=E[g+e|0])-65|0)&((90-c^-1)&(-1^f))>>>8&255|c+4&((c+65488^-1)&(57-c^-1))>>>8&255|c+185&((c+65439^-1)&(122-c^-1))>>>8&255|(1+(16336^c)^-1)>>>8&63|(1+(16340^c)^-1)>>>8&62,255!=(0|(f|=(f-1&1+(65470^c))>>>8&255)))break e;if(f=0,!B)break o;if(!$(B,c))break;if((e=e+1|0)>>>0>=C>>>0)break t}t=e;break o}if(w=f+(w<<6)|0,y>>>0>1)break f;y=y+6|0;break r}t=(A=t+1|0)>>>0>>0?C:A;break o}if(y=y-2|0,I>>>0<=D>>>0)break a;E[A+D|0]=w>>>y,D=D+1|0}if(f=0,!((t=e+1|0)>>>0>>0))break}break o}mA(),Q()}n:for(;;){for(e=t;;){r:{if(f=(f=(c=E[g+e|0])-65|0)&((90-c^-1)&(-1^f))>>>8&255|c+4&((c+65488^-1)&(57-c^-1))>>>8&255|c+185&((c+65439^-1)&(122-c^-1))>>>8&255|(1+(16288^c)^-1)>>>8&63|(1+(16338^c)^-1)>>>8&62,255==(0|(f|=(f-1&1+(65470^c))>>>8&255))){if(f=0,!B)break o;if($(B,c))break r;t=e;break o}if(w=f+(w<<6)|0,y>>>0<2)y=y+6|0;else{if(y=y-2|0,I>>>0<=D>>>0)break a;E[A+D|0]=w>>>y,D=D+1|0}if(f=0,(t=e+1|0)>>>0>>0)continue n;break o}if(!((e=e+1|0)>>>0>>0))break}break}t=(A=t+1|0)>>>0>>0?C:A;break o}t=e,o[8916]=68,f=1}if(y>>>0>4)break i;e=t}if(A=e,I=-1,f){t=A;break A}if((-1<>>0<2){r=A;break B}if(t=A>>>0>C>>>0?A:C,e=y>>>1|0,!B)break Q;for(r=A;;){if((0|r)==(0|t)){f=68;break C}if(61!=(0|(A=E[g+r|0]))){if(!$(B,A)){f=28,t=r;break C}}else e=e-1|0;if(r=r+1|0,!e)break}break B}I=-1;break A}if(f=68,A>>>0>=C>>>0)break C;if(61!=a[A+g|0]){t=A,f=28;break C}if(r=A+e|0,1!=(0|e)){if((0|(y=A+1|0))==(0|t))break C;if(61!=a[g+y|0]){t=y,f=28;break C}if(2!=(0|e)){if((0|(A=A+2|0))==(0|t))break C;if(f=28,t=A,61!=a[A+g|0])break C}}}if(I=0,B)break g;break I}o[8916]=f;break A}if(!(C>>>0<=r>>>0)){for(;;){if(!$(B,E[g+r|0]))break I;if((0|(r=r+1|0))==(0|C))break}r=C}}t=r,h=D}return n?o[n>>2]=g+t:(0|C)!=(0|t)&&(o[8916]=28,I=-1),i&&(o[i>>2]=h),0|I},Tb:function(){var A=0;return o[9049]?A=1:(KA(),hA(36176,16),o[9049]=1,A=0),0|A},Ub:function(A,I,g,C,B){A|=0,I|=0,g|=0,B|=0;var i,n=0,r=0,f=0;D=i=D-16|0;A:{if(C|=0){if(f=-1,(n=(n=C-1|0)-(r=n&C?(g>>>0)%(C>>>0)|0:g&n)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+n|0)>>>0>=B>>>0))for(A&&(o[A>>2]=g+1),A=I+g|0,f=0,E[i+15|0]=0,g=0;B=I=A-g|0,r=a[0|I]&a[i+15|0],I=(g^n)-1>>>24|0,E[0|B]=r|128&I,E[i+15|0]=I|a[i+15|0],(0|C)!=(0|(g=g+1|0)););}else f=-1;return D=i+16|0,0|f}mA(),Q()},Vb:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,i=0,E=0,n=0,r=0;if(o[12+(B=D-16|0)>>2]=0,C-1>>>0>>0){for(r=(i=g-1|0)+I|0,g=0,I=0;I&=255,n=(128^(E=a[r-Q|0]))-1&o[B+12>>2]-1&I-1,o[B+12>>2]=o[B+12>>2]|n<<23>>31&Q,I|=E,g|=n>>>8&1,(0|(Q=Q+1|0))!=(0|C););o[A>>2]=i-o[B+12>>2],A=(255&g)-1|0}else A=-1;return 0|A},Wb:function(){return 1312},Xb:function(){return 10},Yb:iI,Zb:QI,_b:function(A){var I,g=0,C=0,B=0,Q=0,i=0,E=0,r=0,t=0,e=0,c=0,y=0,w=0;D=I=D-16|0;A:{I:{g:{C:{B:{Q:{i:{E:{o:{if((A|=0)>>>0<=244){if(3&(g=(E=o[8917])>>>(C=(r=A>>>0<11?16:A+11&-8)>>>3|0)|0)){g=35708+(A=(C=C+(1&(-1^g))|0)<<3)|0,B=o[A+35716>>2],(0|g)!=(0|(A=o[B+8>>2]))?(o[A+12>>2]=g,o[g+8>>2]=A):(y=35668,w=YA(-2,C)&E,o[y>>2]=w),A=B+8|0,g=C<<3,o[B+4>>2]=3|g,o[4+(g=g+B|0)>>2]=1|o[g+4>>2];break A}if((c=o[8919])>>>0>=r>>>0)break o;if(g){g=35708+(A=(B=RA(0-(A=(0-(A=2<>2],(0|g)!=(0|(A=o[Q+8>>2]))?(o[A+12>>2]=g,o[g+8>>2]=A):(E=YA(-2,B)&E,o[8917]=E),o[Q+4>>2]=3|r,B=(A=B<<3)-r|0,o[4+(C=Q+r|0)>>2]=1|B,o[A+Q>>2]=B,c&&(g=35708+(-8&c)|0,i=o[8922],(A=1<<(c>>>3))&E?A=o[g+8>>2]:(o[8917]=A|E,A=g),o[g+8>>2]=i,o[A+12>>2]=i,o[i+12>>2]=g,o[i+8>>2]=A),A=Q+8|0,o[8922]=C,o[8919]=B;break A}if(!(e=o[8918]))break o;for(C=o[35972+(RA(0-e&e)<<2)>>2],i=(-8&o[C+4>>2])-r|0,g=C;(A=o[g+16>>2])||(A=o[g+20>>2]);)i=(B=(g=(-8&o[A+4>>2])-r|0)>>>0>>0)?g:i,C=B?A:C,g=A;if(t=o[C+24>>2],(0|(B=o[C+12>>2]))!=(0|C)){A=o[C+8>>2],o[A+12>>2]=B,o[B+8>>2]=A;break I}if(!(A=o[(g=C+20|0)>>2])){if(!(A=o[C+16>>2]))break E;g=C+16|0}for(;Q=g,B=A,(A=o[(g=A+20|0)>>2])||(g=B+16|0,A=o[B+16>>2]););o[Q>>2]=0;break I}if(r=-1,!(A>>>0>4294967231)&&(r=-8&(A=A+11|0),e=o[8918])){i=0-r|0,E=0,r>>>0<256||(E=31,r>>>0>16777215||(E=62+((r>>>38-(A=f(A>>>8|0))&1)-(A<<1)|0)|0));a:{n:{if(g=o[35972+(E<<2)>>2])for(A=0,C=r<<(31!=(0|E)?25-(E>>>1|0)|0:0);;){if(!((Q=(-8&o[g+4>>2])-r|0)>>>0>=i>>>0||(B=g,i=Q,Q))){i=0,A=g;break n}if(Q=o[g+20>>2],g=o[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break a}for(;i=(C=(g=(-8&o[A+4>>2])-r|0)>>>0>>0)?g:i,B=C?A:B,A=(g=o[A+16>>2])||o[A+20>>2];);}if(!(!B|o[8919]-r>>>0<=i>>>0)){if(E=o[B+24>>2],(0|B)!=(0|(C=o[B+12>>2]))){A=o[B+8>>2],o[A+12>>2]=C,o[C+8>>2]=A;break g}if(!(A=o[(g=B+20|0)>>2])){if(!(A=o[B+16>>2]))break i;g=B+16|0}for(;Q=g,C=A,(A=o[(g=A+20|0)>>2])||(g=C+16|0,A=o[C+16>>2]););o[Q>>2]=0;break g}}}if((A=o[8919])>>>0>=r>>>0){B=o[8922],(g=A-r|0)>>>0>=16?(o[4+(C=B+r|0)>>2]=1|g,o[A+B>>2]=g,o[B+4>>2]=3|r):(o[B+4>>2]=3|A,o[4+(A=A+B|0)>>2]=1|o[A+4>>2],C=0,g=0),o[8919]=g,o[8922]=C,A=B+8|0;break A}if((t=o[8920])>>>0>r>>>0){g=t-r|0,o[8920]=g,A=(C=o[8923])+r|0,o[8923]=A,o[A+4>>2]=1|g,o[C+4>>2]=3|r,A=C+8|0;break A}if(A=0,e=r+47|0,o[9035]?C=o[9037]:(o[9038]=-1,o[9039]=-1,o[9036]=4096,o[9037]=4096,o[9035]=I+12&-16^1431655768,o[9040]=0,o[9028]=0,C=4096),(g=(Q=e+C|0)&(i=0-C|0))>>>0<=r>>>0)break A;if((B=o[9027])&&B>>>0<(E=(C=o[9025])+g|0)>>>0|C>>>0>=E>>>0)break A;o:{if(!(4&a[36112])){a:{n:{r:{f:{if(B=o[8923])for(A=36116;;){if((C=o[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break f;if(!(A=o[A+8>>2]))break}if(-1==(0|(C=pA(0))))break a;if(E=g,(A=(B=o[9036])-1|0)&C&&(E=(g-C|0)+(A+C&0-B)|0),E>>>0<=r>>>0)break a;if((B=o[9027])&&B>>>0<(i=(A=o[9025])+E|0)>>>0|A>>>0>=i>>>0)break a;if((0|C)!=(0|(A=pA(E))))break r;break o}if((0|(C=pA(E=i&Q-t)))==(o[A>>2]+o[A+4>>2]|0))break n;A=C}if(-1==(0|A))break a;if(r+48>>>0<=E>>>0){C=A;break o}if(-1==(0|pA(C=(C=o[9037])+(e-E|0)&0-C)))break a;E=C+E|0,C=A;break o}if(-1!=(0|C))break o}o[9028]=4|o[9028]}if(-1==(0|(C=pA(g)))|-1==(0|(A=pA(0)))|A>>>0<=C>>>0)break C;if((E=A-C|0)>>>0<=r+40>>>0)break C}A=o[9025]+E|0,o[9025]=A,A>>>0>n[9026]&&(o[9026]=A);o:{if(Q=o[8923]){for(A=36116;;){if(((B=o[A>>2])+(g=o[A+4>>2])|0)==(0|C))break o;if(!(A=o[A+8>>2]))break}break Q}for((A=o[8921])>>>0<=C>>>0&&A||(o[8921]=C),A=0,o[9030]=E,o[9029]=C,o[8925]=-1,o[8926]=o[9035],o[9032]=0;g=35708+(B=A<<3)|0,o[B+35716>>2]=g,o[B+35720>>2]=g,32!=(0|(A=A+1|0)););g=(B=E-40|0)-(A=C+8&7?-8-C&7:0)|0,o[8920]=g,A=A+C|0,o[8923]=A,o[A+4>>2]=1|g,o[4+(C+B|0)>>2]=40,o[8924]=o[9039];break B}if(8&a[A+12|0]|B>>>0>Q>>>0|C>>>0<=Q>>>0)break Q;o[A+4>>2]=g+E,C=(A=Q+8&7?-8-Q&7:0)+Q|0,o[8923]=C,A=(g=o[8920]+E|0)-A|0,o[8920]=A,o[C+4>>2]=1|A,o[4+(g+Q|0)>>2]=40,o[8924]=o[9039];break B}B=0;break I}C=0;break g}n[8921]>C>>>0&&(o[8921]=C),g=C+E|0,A=36116;Q:{i:{E:{o:{a:{n:{for(;;){if((0|g)!=o[A>>2]){if(A=o[A+8>>2])continue;break n}break}if(!(8&a[A+12|0]))break a}for(A=36116;;){if((g=o[A>>2])>>>0<=Q>>>0&&(i=g+o[A+4>>2]|0)>>>0>Q>>>0)break o;A=o[A+8>>2]}}if(o[A>>2]=C,o[A+4>>2]=o[A+4>>2]+E,o[4+(e=(C+8&7?-8-C&7:0)+C|0)>>2]=3|r,A=(E=g+(g+8&7?-8-g&7:0)|0)-(t=r+e|0)|0,(0|Q)==(0|E)){o[8923]=t,A=o[8920]+A|0,o[8920]=A,o[t+4>>2]=1|A;break i}if(o[8922]==(0|E)){o[8922]=t,A=o[8919]+A|0,o[8919]=A,o[t+4>>2]=1|A,o[A+t>>2]=A;break i}if(1==(3&(i=o[E+4>>2]))){Q=-8&i;a:if(i>>>0<=255){if(B=o[E+8>>2],g=i>>>3|0,(0|(C=o[E+12>>2]))==(0|B)){y=35668,w=o[8917]&YA(-2,g),o[y>>2]=w;break a}o[B+12>>2]=C,o[C+8>>2]=B}else{if(r=o[E+24>>2],(0|E)==(0|(C=o[E+12>>2])))if((g=o[(i=E+20|0)>>2])||(g=o[(i=E+16|0)>>2])){for(;B=i,(g=o[(i=(C=g)+20|0)>>2])||(i=C+16|0,g=o[C+16>>2]););o[B>>2]=0}else C=0;else g=o[E+8>>2],o[g+12>>2]=C,o[C+8>>2]=g;if(r){B=o[E+28>>2];n:{if(o[(g=35972+(B<<2)|0)>>2]==(0|E)){if(o[g>>2]=C,C)break n;y=35672,w=o[8918]&YA(-2,B),o[y>>2]=w;break a}if(o[r+(o[r+16>>2]==(0|E)?16:20)>>2]=C,!C)break a}o[C+24>>2]=r,(g=o[E+16>>2])&&(o[C+16>>2]=g,o[g+24>>2]=C),(g=o[E+20>>2])&&(o[C+20>>2]=g,o[g+24>>2]=C)}}i=o[4+(E=Q+E|0)>>2],A=A+Q|0}if(o[E+4>>2]=-2&i,o[t+4>>2]=1|A,o[A+t>>2]=A,A>>>0<=255){g=35708+(-8&A)|0,(C=o[8917])&(A=1<<(A>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=t,o[A+12>>2]=t,o[t+12>>2]=g,o[t+8>>2]=A;break i}if(i=31,A>>>0<=16777215&&(i=62+((A>>>38-(g=f(A>>>8|0))&1)-(g<<1)|0)|0),o[t+28>>2]=i,o[t+16>>2]=0,o[t+20>>2]=0,g=35972+(i<<2)|0,(B=o[8918])&(C=1<>>1|0)|0:0),C=o[g>>2];;){if(g=C,(-8&o[C+4>>2])==(0|A))break E;if(C=i>>>29|0,i<<=1,!(C=o[16+(B=(4&C)+g|0)>>2]))break}o[B+16>>2]=t}else o[8918]=C|B,o[g>>2]=t;o[t+24>>2]=g,o[t+12>>2]=t,o[t+8>>2]=t;break i}for(g=(B=E-40|0)-(A=C+8&7?-8-C&7:0)|0,o[8920]=g,A=A+C|0,o[8923]=A,o[A+4>>2]=1|g,o[4+(C+B|0)>>2]=40,o[8924]=o[9039],o[(B=(A=(i+(i-39&7?39-i&7:0)|0)-47|0)>>>0>>0?Q:A)+4>>2]=27,A=o[9032],o[B+16>>2]=o[9031],o[B+20>>2]=A,A=o[9030],o[B+8>>2]=o[9029],o[B+12>>2]=A,o[9031]=B+8,o[9030]=E,o[9029]=C,o[9032]=0,A=B+24|0;o[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)==(0|Q))break B;if(o[B+4>>2]=-2&o[B+4>>2],i=B-Q|0,o[Q+4>>2]=1|i,o[B>>2]=i,i>>>0<=255){g=35708+(-8&i)|0,(C=o[8917])&(A=1<<(i>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A;break B}if(A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=f(i>>>8|0))&1)-(A<<1)|0)|0),o[Q+28>>2]=A,o[Q+16>>2]=0,o[Q+20>>2]=0,g=35972+(A<<2)|0,(B=o[8918])&(C=1<>>1|0)|0:0),B=o[g>>2];;){if((0|i)==(-8&o[(g=B)+4>>2]))break Q;if(C=A>>>29|0,A<<=1,!(B=o[16+(C=(4&C)+g|0)>>2]))break}o[C+16>>2]=Q}else o[8918]=C|B,o[g>>2]=Q;o[Q+24>>2]=g,o[Q+12>>2]=Q,o[Q+8>>2]=Q;break B}A=o[g+8>>2],o[A+12>>2]=t,o[g+8>>2]=t,o[t+24>>2]=0,o[t+12>>2]=g,o[t+8>>2]=A}A=e+8|0;break A}A=o[g+8>>2],o[A+12>>2]=Q,o[g+8>>2]=Q,o[Q+24>>2]=0,o[Q+12>>2]=g,o[Q+8>>2]=A}if(!((A=o[8920])>>>0<=r>>>0)){g=A-r|0,o[8920]=g,A=(C=o[8923])+r|0,o[8923]=A,o[A+4>>2]=1|g,o[C+4>>2]=3|r,A=C+8|0;break A}}o[8916]=48,A=0;break A}g:if(E){g=o[B+28>>2];C:{if(o[(A=35972+(g<<2)|0)>>2]==(0|B)){if(o[A>>2]=C,C)break C;e=YA(-2,g)&e,o[8918]=e;break g}if(o[E+(o[E+16>>2]==(0|B)?16:20)>>2]=C,!C)break g}o[C+24>>2]=E,(A=o[B+16>>2])&&(o[C+16>>2]=A,o[A+24>>2]=C),(A=o[B+20>>2])&&(o[C+20>>2]=A,o[A+24>>2]=C)}g:if(i>>>0<=15)A=i+r|0,o[B+4>>2]=3|A,o[4+(A=A+B|0)>>2]=1|o[A+4>>2];else if(o[B+4>>2]=3|r,o[4+(Q=B+r|0)>>2]=1|i,o[Q+i>>2]=i,i>>>0<=255)g=35708+(-8&i)|0,(C=o[8917])&(A=1<<(i>>>3))?A=o[g+8>>2]:(o[8917]=A|C,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A;else{A=31,i>>>0<=16777215&&(A=62+((i>>>38-(A=f(i>>>8|0))&1)-(A<<1)|0)|0),o[Q+28>>2]=A,o[Q+16>>2]=0,o[Q+20>>2]=0,g=35972+(A<<2)|0;C:{if((C=1<>>1|0)|0:0),r=o[g>>2];;){if((-8&o[(g=r)+4>>2])==(0|i))break C;if(C=A>>>29|0,A<<=1,!(r=o[16+(C=(4&C)+g|0)>>2]))break}o[C+16>>2]=Q}else o[8918]=C|e,o[g>>2]=Q;o[Q+24>>2]=g,o[Q+12>>2]=Q,o[Q+8>>2]=Q;break g}A=o[g+8>>2],o[A+12>>2]=Q,o[g+8>>2]=Q,o[Q+24>>2]=0,o[Q+12>>2]=g,o[Q+8>>2]=A}A=B+8|0;break A}I:if(t){g=o[C+28>>2];g:{if(o[(A=35972+(g<<2)|0)>>2]==(0|C)){if(o[A>>2]=B,B)break g;y=35672,w=YA(-2,g)&e,o[y>>2]=w;break I}if(o[t+(o[t+16>>2]==(0|C)?16:20)>>2]=B,!B)break I}o[B+24>>2]=t,(A=o[C+16>>2])&&(o[B+16>>2]=A,o[A+24>>2]=B),(A=o[C+20>>2])&&(o[B+20>>2]=A,o[A+24>>2]=B)}i>>>0<=15?(A=i+r|0,o[C+4>>2]=3|A,o[4+(A=A+C|0)>>2]=1|o[A+4>>2]):(o[C+4>>2]=3|r,o[4+(B=C+r|0)>>2]=1|i,o[B+i>>2]=i,c&&(g=35708+(-8&c)|0,Q=o[8922],(A=1<<(c>>>3))&E?A=o[g+8>>2]:(o[8917]=A|E,A=g),o[g+8>>2]=Q,o[A+12>>2]=Q,o[Q+12>>2]=g,o[Q+8>>2]=A),o[8922]=B,o[8919]=i),A=C+8|0}return D=I+16|0,0|A},$b:function(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,r=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=o[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((C=C-(I=o[C>>2])|0)>>>0>2])))return o[8919]=A,o[Q+4>>2]=-2&I,o[C+4>>2]=1|A,void(o[A+C>>2]=A)}else{if(I>>>0<=255){if(B=o[C+8>>2],I=I>>>3|0,(0|(g=o[C+12>>2]))==(0|B)){a=35668,r=o[8917]&YA(-2,I),o[a>>2]=r;break I}o[B+12>>2]=g,o[g+8>>2]=B;break I}if(E=o[C+24>>2],(0|C)==(0|(I=o[C+12>>2])))if((g=o[(B=C+20|0)>>2])||(g=o[(B=C+16|0)>>2])){for(;i=B,(g=o[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=o[I+16>>2]););o[i>>2]=0}else I=0;else g=o[C+8>>2],o[g+12>>2]=I,o[I+8>>2]=g;if(!E)break I;B=o[C+28>>2];g:{if(o[(g=35972+(B<<2)|0)>>2]==(0|C)){if(o[g>>2]=I,I)break g;a=35672,r=o[8918]&YA(-2,B),o[a>>2]=r;break I}if(o[E+(o[E+16>>2]==(0|C)?16:20)>>2]=I,!I)break I}if(o[I+24>>2]=E,(g=o[C+16>>2])&&(o[I+16>>2]=g,o[g+24>>2]=I),!(g=o[C+20>>2]))break I;o[I+20>>2]=g,o[g+24>>2]=I}}if(!(C>>>0>=Q>>>0)&&1&(I=o[Q+4>>2])){I:{if(!(2&I)){if(o[8923]==(0|Q)){if(o[8923]=C,A=o[8920]+A|0,o[8920]=A,o[C+4>>2]=1|A,o[8922]!=(0|C))break A;return o[8919]=0,void(o[8922]=0)}if(o[8922]==(0|Q))return o[8922]=C,A=o[8919]+A|0,o[8919]=A,o[C+4>>2]=1|A,void(o[A+C>>2]=A);A=(-8&I)+A|0;g:if(I>>>0<=255){if(B=o[Q+8>>2],I=I>>>3|0,(0|(g=o[Q+12>>2]))==(0|B)){a=35668,r=o[8917]&YA(-2,I),o[a>>2]=r;break g}o[B+12>>2]=g,o[g+8>>2]=B}else{if(E=o[Q+24>>2],(0|Q)==(0|(I=o[Q+12>>2])))if((g=o[(B=Q+20|0)>>2])||(g=o[(B=Q+16|0)>>2])){for(;i=B,(g=o[(B=(I=g)+20|0)>>2])||(B=I+16|0,g=o[I+16>>2]););o[i>>2]=0}else I=0;else g=o[Q+8>>2],o[g+12>>2]=I,o[I+8>>2]=g;if(E){B=o[Q+28>>2];C:{if(o[(g=35972+(B<<2)|0)>>2]==(0|Q)){if(o[g>>2]=I,I)break C;a=35672,r=o[8918]&YA(-2,B),o[a>>2]=r;break g}if(o[E+(o[E+16>>2]==(0|Q)?16:20)>>2]=I,!I)break g}o[I+24>>2]=E,(g=o[Q+16>>2])&&(o[I+16>>2]=g,o[g+24>>2]=I),(g=o[Q+20>>2])&&(o[I+20>>2]=g,o[g+24>>2]=I)}}if(o[C+4>>2]=1|A,o[A+C>>2]=A,o[8922]!=(0|C))break I;return void(o[8919]=A)}o[Q+4>>2]=-2&I,o[C+4>>2]=1|A,o[A+C>>2]=A}if(A>>>0<=255)return I=35708+(-8&A)|0,(g=o[8917])&(A=1<<(A>>>3))?A=o[I+8>>2]:(o[8917]=A|g,A=I),o[I+8>>2]=C,o[A+12>>2]=C,o[C+12>>2]=I,void(o[C+8>>2]=A);B=31,A>>>0<=16777215&&(B=62+((A>>>38-(I=f(A>>>8|0))&1)-(I<<1)|0)|0),o[C+28>>2]=B,o[C+16>>2]=0,o[C+20>>2]=0,i=35972+(B<<2)|0;I:{g:{if((g=o[8918])&(I=1<>>1|0)|0:0),I=o[i>>2];;){if(g=I,(-8&o[I+4>>2])==(0|A))break g;if(I=B>>>29|0,B<<=1,!(I=o[16+(i=g+(4&I)|0)>>2]))break}o[i+16>>2]=C,o[C+24>>2]=g}else o[8918]=I|g,o[i>>2]=C,o[C+24>>2]=i;o[C+12>>2]=C,o[C+8>>2]=C;break I}A=o[g+8>>2],o[A+12>>2]=C,o[g+8>>2]=C,o[C+24>>2]=0,o[C+12>>2]=g,o[C+8>>2]=A}A=o[8925]-1|0,o[8925]=A||-1}}},ac:nI}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new D.Module(A);g({instance:new D.Instance(C,I)})}}},RuntimeError:Error};e=[],\"object\"!=typeof D&&K(\"no native wasm support detected\");var w,h,s,p,u,k,F,l=!1,S=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function H(A,I){return A?function(A,I,g){for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&S)return S.decode(A.subarray(I,B));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|E)}else Q+=String.fromCharCode(i)}return Q}(h,A,I):\"\"}function M(){var A=y.buffer;i.HEAP8=w=new Int8Array(A),i.HEAP16=s=new Int16Array(A),i.HEAP32=p=new Int32Array(A),i.HEAPU8=h=new Uint8Array(A),i.HEAPU16=new Uint16Array(A),i.HEAPU32=u=new Uint32Array(A),i.HEAPF32=k=new Float32Array(A),i.HEAPF64=F=new Float64Array(A)}var G=i.INITIAL_MEMORY||16777216;G>=65536||K(\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+G+\"! (STACK_SIZE=65536)\"),y=i.wasmMemory?i.wasmMemory:new D.Memory({initial:G/65536,maximum:32768}),M(),G=y.buffer.byteLength;var U=[],J=[],N=[],Y=0,b=null,_=null;function K(A){throw i.onAbort&&i.onAbort(A),c(A=\"Aborted(\"+A+\")\"),l=!0,A+=\". Build with -sASSERTIONS for more info.\",new D.RuntimeError(A)}var P,v,m,d,L=\"data:application/octet-stream;base64,\";function R(A){return A.startsWith(L)}function x(A){return A.startsWith(\"file://\")}function j(A){try{if(A==P&&e)return new Uint8Array(e);var I=T(A);if(I)return I;if(Q)return Q(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){K(A)}}R(P=\"<<< WASM_BINARY_FILE >>>\")||(v=P,P=i.locateFile?i.locateFile(v,r):r+v);var X={34904:()=>i.getRandomValue(),34940:()=>{if(void 0===i.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),i.getRandomValue=g}catch(A){try{var C=require(\"crypto\"),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),i.getRandomValue=B}catch(A){throw\"No secure random number generator found\"}}}};function q(A){for(;A.length>0;)A.shift()(i)}var z=[];function V(A){var I=y.buffer;try{return y.grow(A-I.byteLength+65535>>>16),M(),1}catch(A){}}var O=\"function\"==typeof atob?atob:function(A){var I,g,C,B,Q,i,E=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",o=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=E.indexOf(A.charAt(a++))<<2|(B=E.indexOf(A.charAt(a++)))>>4,g=(15&B)<<4|(Q=E.indexOf(A.charAt(a++)))>>2,C=(3&Q)<<6|(i=E.indexOf(A.charAt(a++))),o+=String.fromCharCode(I),64!==Q&&(o+=String.fromCharCode(g)),64!==i&&(o+=String.fromCharCode(C))}while(a>=2;g=h[A++];)I+=105!=g&I,z.push(105==g?p[I]:F[I++>>1]),++I;return z}(I,g);return X[A].apply(null,C)}(A,I,g)},e:function(A){var I,g=h.length,C=2147483648;if((A>>>=0)>C)return!1;for(var B=1;B<=4;B*=2){var Q=g*(1+.2/B);if(Q=Math.min(Q,A+100663296),V(Math.min(C,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1},a:y};function $(){function A(){W||(W=!0,i.calledRun=!0,l||(q(J),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for(\"function\"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)A=i.postRun.shift(),N.unshift(A);var A;q(N)}()))}Y>0||(function(){if(i.preRun)for(\"function\"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)A=i.preRun.shift(),U.unshift(A);var A;q(U)}(),Y>0||(i.setStatus?(i.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){i.setStatus(\"\")}),1),A()}),1)):A()))}if(function(){var A={a:Z};function I(A,I){var g,C=A.exports;i.asm=C,i.asm.ac,g=i.asm.f,J.unshift(g),function(A){if(Y--,i.monitorRunDependencies&&i.monitorRunDependencies(Y),0==Y&&(null!==b&&(clearInterval(b),b=null),_)){var I=_;_=null,I()}}()}function g(A){I(A.instance)}function C(I){return function(){if(!e&&(o||a)){if(\"function\"==typeof fetch&&!x(P))return fetch(P,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+P+\"'\";return A.arrayBuffer()})).catch((function(){return j(P)}));if(B)return new Promise((function(A,I){B(P,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return j(P)}))}().then((function(I){return D.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){c(\"failed to asynchronously prepare wasm: \"+A),K(A)}))}if(Y++,i.monitorRunDependencies&&i.monitorRunDependencies(Y),i.instantiateWasm)try{return i.instantiateWasm(A,I)}catch(A){return c(\"Module.instantiateWasm callback failed with error: \"+A),!1}e||\"function\"!=typeof D.instantiateStreaming||R(P)||x(P)||n||\"function\"!=typeof fetch?C(g):fetch(P,{credentials:\"same-origin\"}).then((function(I){return D.instantiateStreaming(I,A).then(g,(function(A){return c(\"wasm streaming compile failed: \"+A),c(\"falling back to ArrayBuffer instantiation\"),C(g)}))}))}(),i._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_encrypt_detached=i.asm.g).apply(null,arguments)},i._crypto_aead_chacha20poly1305_encrypt=function(){return(i._crypto_aead_chacha20poly1305_encrypt=i.asm.h).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=i.asm.i).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt=i.asm.j).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_decrypt_detached=i.asm.k).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt=function(){return(i._crypto_aead_chacha20poly1305_decrypt=i.asm.l).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=i.asm.m).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt=i.asm.n).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_keybytes=i.asm.o).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_npubbytes=i.asm.p).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_nsecbytes=i.asm.q).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_abytes=i.asm.r).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=i.asm.s).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_chacha20poly1305_ietf_keygen=i.asm.t).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keybytes=function(){return(i._crypto_aead_chacha20poly1305_keybytes=i.asm.u).apply(null,arguments)},i._crypto_aead_chacha20poly1305_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_npubbytes=i.asm.v).apply(null,arguments)},i._crypto_aead_chacha20poly1305_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_nsecbytes=i.asm.w).apply(null,arguments)},i._crypto_aead_chacha20poly1305_abytes=function(){return(i._crypto_aead_chacha20poly1305_abytes=i.asm.x).apply(null,arguments)},i._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_messagebytes_max=i.asm.y).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keygen=function(){return(i._crypto_aead_chacha20poly1305_keygen=i.asm.z).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=i.asm.A).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt=i.asm.B).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=i.asm.C).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt=i.asm.D).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keybytes=i.asm.E).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_npubbytes=i.asm.F).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=i.asm.G).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_abytes=i.asm.H).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=i.asm.I).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keygen=i.asm.J).apply(null,arguments)},i._crypto_auth_bytes=function(){return(i._crypto_auth_bytes=i.asm.K).apply(null,arguments)},i._crypto_auth_keybytes=function(){return(i._crypto_auth_keybytes=i.asm.L).apply(null,arguments)},i._crypto_auth=function(){return(i._crypto_auth=i.asm.M).apply(null,arguments)},i._crypto_auth_verify=function(){return(i._crypto_auth_verify=i.asm.N).apply(null,arguments)},i._crypto_auth_keygen=function(){return(i._crypto_auth_keygen=i.asm.O).apply(null,arguments)},i._crypto_box_seedbytes=function(){return(i._crypto_box_seedbytes=i.asm.P).apply(null,arguments)},i._crypto_box_publickeybytes=function(){return(i._crypto_box_publickeybytes=i.asm.Q).apply(null,arguments)},i._crypto_box_secretkeybytes=function(){return(i._crypto_box_secretkeybytes=i.asm.R).apply(null,arguments)},i._crypto_box_beforenmbytes=function(){return(i._crypto_box_beforenmbytes=i.asm.S).apply(null,arguments)},i._crypto_box_noncebytes=function(){return(i._crypto_box_noncebytes=i.asm.T).apply(null,arguments)},i._crypto_box_macbytes=function(){return(i._crypto_box_macbytes=i.asm.U).apply(null,arguments)},i._crypto_box_messagebytes_max=function(){return(i._crypto_box_messagebytes_max=i.asm.V).apply(null,arguments)},i._crypto_box_seed_keypair=function(){return(i._crypto_box_seed_keypair=i.asm.W).apply(null,arguments)},i._crypto_box_keypair=function(){return(i._crypto_box_keypair=i.asm.X).apply(null,arguments)},i._crypto_box_beforenm=function(){return(i._crypto_box_beforenm=i.asm.Y).apply(null,arguments)},i._crypto_box_detached_afternm=function(){return(i._crypto_box_detached_afternm=i.asm.Z).apply(null,arguments)},i._crypto_box_detached=function(){return(i._crypto_box_detached=i.asm._).apply(null,arguments)},i._crypto_box_easy_afternm=function(){return(i._crypto_box_easy_afternm=i.asm.$).apply(null,arguments)},i._crypto_box_easy=function(){return(i._crypto_box_easy=i.asm.aa).apply(null,arguments)},i._crypto_box_open_detached_afternm=function(){return(i._crypto_box_open_detached_afternm=i.asm.ba).apply(null,arguments)},i._crypto_box_open_detached=function(){return(i._crypto_box_open_detached=i.asm.ca).apply(null,arguments)},i._crypto_box_open_easy_afternm=function(){return(i._crypto_box_open_easy_afternm=i.asm.da).apply(null,arguments)},i._crypto_box_open_easy=function(){return(i._crypto_box_open_easy=i.asm.ea).apply(null,arguments)},i._crypto_box_seal=function(){return(i._crypto_box_seal=i.asm.fa).apply(null,arguments)},i._crypto_box_seal_open=function(){return(i._crypto_box_seal_open=i.asm.ga).apply(null,arguments)},i._crypto_box_sealbytes=function(){return(i._crypto_box_sealbytes=i.asm.ha).apply(null,arguments)},i._crypto_generichash_bytes_min=function(){return(i._crypto_generichash_bytes_min=i.asm.ia).apply(null,arguments)},i._crypto_generichash_bytes_max=function(){return(i._crypto_generichash_bytes_max=i.asm.ja).apply(null,arguments)},i._crypto_generichash_bytes=function(){return(i._crypto_generichash_bytes=i.asm.ka).apply(null,arguments)},i._crypto_generichash_keybytes_min=function(){return(i._crypto_generichash_keybytes_min=i.asm.la).apply(null,arguments)},i._crypto_generichash_keybytes_max=function(){return(i._crypto_generichash_keybytes_max=i.asm.ma).apply(null,arguments)},i._crypto_generichash_keybytes=function(){return(i._crypto_generichash_keybytes=i.asm.na).apply(null,arguments)},i._crypto_generichash_statebytes=function(){return(i._crypto_generichash_statebytes=i.asm.oa).apply(null,arguments)},i._crypto_generichash=function(){return(i._crypto_generichash=i.asm.pa).apply(null,arguments)},i._crypto_generichash_init=function(){return(i._crypto_generichash_init=i.asm.qa).apply(null,arguments)},i._crypto_generichash_update=function(){return(i._crypto_generichash_update=i.asm.ra).apply(null,arguments)},i._crypto_generichash_final=function(){return(i._crypto_generichash_final=i.asm.sa).apply(null,arguments)},i._crypto_generichash_keygen=function(){return(i._crypto_generichash_keygen=i.asm.ta).apply(null,arguments)},i._crypto_hash_bytes=function(){return(i._crypto_hash_bytes=i.asm.ua).apply(null,arguments)},i._crypto_hash=function(){return(i._crypto_hash=i.asm.va).apply(null,arguments)},i._crypto_kdf_bytes_min=function(){return(i._crypto_kdf_bytes_min=i.asm.wa).apply(null,arguments)},i._crypto_kdf_bytes_max=function(){return(i._crypto_kdf_bytes_max=i.asm.xa).apply(null,arguments)},i._crypto_kdf_contextbytes=function(){return(i._crypto_kdf_contextbytes=i.asm.ya).apply(null,arguments)},i._crypto_kdf_keybytes=function(){return(i._crypto_kdf_keybytes=i.asm.za).apply(null,arguments)},i._crypto_kdf_derive_from_key=function(){return(i._crypto_kdf_derive_from_key=i.asm.Aa).apply(null,arguments)},i._crypto_kdf_keygen=function(){return(i._crypto_kdf_keygen=i.asm.Ba).apply(null,arguments)},i._crypto_kx_seed_keypair=function(){return(i._crypto_kx_seed_keypair=i.asm.Ca).apply(null,arguments)},i._crypto_kx_keypair=function(){return(i._crypto_kx_keypair=i.asm.Da).apply(null,arguments)},i._crypto_kx_client_session_keys=function(){return(i._crypto_kx_client_session_keys=i.asm.Ea).apply(null,arguments)},i._crypto_kx_server_session_keys=function(){return(i._crypto_kx_server_session_keys=i.asm.Fa).apply(null,arguments)},i._crypto_kx_publickeybytes=function(){return(i._crypto_kx_publickeybytes=i.asm.Ga).apply(null,arguments)},i._crypto_kx_secretkeybytes=function(){return(i._crypto_kx_secretkeybytes=i.asm.Ha).apply(null,arguments)},i._crypto_kx_seedbytes=function(){return(i._crypto_kx_seedbytes=i.asm.Ia).apply(null,arguments)},i._crypto_kx_sessionkeybytes=function(){return(i._crypto_kx_sessionkeybytes=i.asm.Ja).apply(null,arguments)},i._crypto_scalarmult_base=function(){return(i._crypto_scalarmult_base=i.asm.Ka).apply(null,arguments)},i._crypto_scalarmult=function(){return(i._crypto_scalarmult=i.asm.La).apply(null,arguments)},i._crypto_scalarmult_bytes=function(){return(i._crypto_scalarmult_bytes=i.asm.Ma).apply(null,arguments)},i._crypto_scalarmult_scalarbytes=function(){return(i._crypto_scalarmult_scalarbytes=i.asm.Na).apply(null,arguments)},i._crypto_secretbox_keybytes=function(){return(i._crypto_secretbox_keybytes=i.asm.Oa).apply(null,arguments)},i._crypto_secretbox_noncebytes=function(){return(i._crypto_secretbox_noncebytes=i.asm.Pa).apply(null,arguments)},i._crypto_secretbox_macbytes=function(){return(i._crypto_secretbox_macbytes=i.asm.Qa).apply(null,arguments)},i._crypto_secretbox_messagebytes_max=function(){return(i._crypto_secretbox_messagebytes_max=i.asm.Ra).apply(null,arguments)},i._crypto_secretbox_keygen=function(){return(i._crypto_secretbox_keygen=i.asm.Sa).apply(null,arguments)},i._crypto_secretbox_detached=function(){return(i._crypto_secretbox_detached=i.asm.Ta).apply(null,arguments)},i._crypto_secretbox_easy=function(){return(i._crypto_secretbox_easy=i.asm.Ua).apply(null,arguments)},i._crypto_secretbox_open_detached=function(){return(i._crypto_secretbox_open_detached=i.asm.Va).apply(null,arguments)},i._crypto_secretbox_open_easy=function(){return(i._crypto_secretbox_open_easy=i.asm.Wa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keygen=function(){return(i._crypto_secretstream_xchacha20poly1305_keygen=i.asm.Xa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_push=function(){return(i._crypto_secretstream_xchacha20poly1305_init_push=i.asm.Ya).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_init_pull=i.asm.Za).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_rekey=i.asm._a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_push=function(){return(i._crypto_secretstream_xchacha20poly1305_push=i.asm.$a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_pull=i.asm.ab).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(i._crypto_secretstream_xchacha20poly1305_statebytes=i.asm.bb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_abytes=function(){return(i._crypto_secretstream_xchacha20poly1305_abytes=i.asm.cb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(i._crypto_secretstream_xchacha20poly1305_headerbytes=i.asm.db).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(i._crypto_secretstream_xchacha20poly1305_keybytes=i.asm.eb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(i._crypto_secretstream_xchacha20poly1305_messagebytes_max=i.asm.fb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_message=i.asm.gb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_push=i.asm.hb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_rekey=i.asm.ib).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_final=i.asm.jb).apply(null,arguments)},i._crypto_shorthash_bytes=function(){return(i._crypto_shorthash_bytes=i.asm.kb).apply(null,arguments)},i._crypto_shorthash_keybytes=function(){return(i._crypto_shorthash_keybytes=i.asm.lb).apply(null,arguments)},i._crypto_shorthash=function(){return(i._crypto_shorthash=i.asm.mb).apply(null,arguments)},i._crypto_shorthash_keygen=function(){return(i._crypto_shorthash_keygen=i.asm.nb).apply(null,arguments)},i._crypto_sign_statebytes=function(){return(i._crypto_sign_statebytes=i.asm.ob).apply(null,arguments)},i._crypto_sign_bytes=function(){return(i._crypto_sign_bytes=i.asm.pb).apply(null,arguments)},i._crypto_sign_seedbytes=function(){return(i._crypto_sign_seedbytes=i.asm.qb).apply(null,arguments)},i._crypto_sign_publickeybytes=function(){return(i._crypto_sign_publickeybytes=i.asm.rb).apply(null,arguments)},i._crypto_sign_secretkeybytes=function(){return(i._crypto_sign_secretkeybytes=i.asm.sb).apply(null,arguments)},i._crypto_sign_messagebytes_max=function(){return(i._crypto_sign_messagebytes_max=i.asm.tb).apply(null,arguments)},i._crypto_sign_seed_keypair=function(){return(i._crypto_sign_seed_keypair=i.asm.ub).apply(null,arguments)},i._crypto_sign_keypair=function(){return(i._crypto_sign_keypair=i.asm.vb).apply(null,arguments)},i._crypto_sign=function(){return(i._crypto_sign=i.asm.wb).apply(null,arguments)},i._crypto_sign_open=function(){return(i._crypto_sign_open=i.asm.xb).apply(null,arguments)},i._crypto_sign_detached=function(){return(i._crypto_sign_detached=i.asm.yb).apply(null,arguments)},i._crypto_sign_verify_detached=function(){return(i._crypto_sign_verify_detached=i.asm.zb).apply(null,arguments)},i._crypto_sign_init=function(){return(i._crypto_sign_init=i.asm.Ab).apply(null,arguments)},i._crypto_sign_update=function(){return(i._crypto_sign_update=i.asm.Bb).apply(null,arguments)},i._crypto_sign_final_create=function(){return(i._crypto_sign_final_create=i.asm.Cb).apply(null,arguments)},i._crypto_sign_final_verify=function(){return(i._crypto_sign_final_verify=i.asm.Db).apply(null,arguments)},i._crypto_sign_ed25519_pk_to_curve25519=function(){return(i._crypto_sign_ed25519_pk_to_curve25519=i.asm.Eb).apply(null,arguments)},i._crypto_sign_ed25519_sk_to_curve25519=function(){return(i._crypto_sign_ed25519_sk_to_curve25519=i.asm.Fb).apply(null,arguments)},i._randombytes_random=function(){return(i._randombytes_random=i.asm.Gb).apply(null,arguments)},i._randombytes_stir=function(){return(i._randombytes_stir=i.asm.Hb).apply(null,arguments)},i._randombytes_uniform=function(){return(i._randombytes_uniform=i.asm.Ib).apply(null,arguments)},i._randombytes_buf=function(){return(i._randombytes_buf=i.asm.Jb).apply(null,arguments)},i._randombytes_buf_deterministic=function(){return(i._randombytes_buf_deterministic=i.asm.Kb).apply(null,arguments)},i._randombytes_seedbytes=function(){return(i._randombytes_seedbytes=i.asm.Lb).apply(null,arguments)},i._randombytes_close=function(){return(i._randombytes_close=i.asm.Mb).apply(null,arguments)},i._randombytes=function(){return(i._randombytes=i.asm.Nb).apply(null,arguments)},i._sodium_bin2hex=function(){return(i._sodium_bin2hex=i.asm.Ob).apply(null,arguments)},i._sodium_hex2bin=function(){return(i._sodium_hex2bin=i.asm.Pb).apply(null,arguments)},i._sodium_base64_encoded_len=function(){return(i._sodium_base64_encoded_len=i.asm.Qb).apply(null,arguments)},i._sodium_bin2base64=function(){return(i._sodium_bin2base64=i.asm.Rb).apply(null,arguments)},i._sodium_base642bin=function(){return(i._sodium_base642bin=i.asm.Sb).apply(null,arguments)},i._sodium_init=function(){return(i._sodium_init=i.asm.Tb).apply(null,arguments)},i._sodium_pad=function(){return(i._sodium_pad=i.asm.Ub).apply(null,arguments)},i._sodium_unpad=function(){return(i._sodium_unpad=i.asm.Vb).apply(null,arguments)},i._sodium_version_string=function(){return(i._sodium_version_string=i.asm.Wb).apply(null,arguments)},i._sodium_library_version_major=function(){return(i._sodium_library_version_major=i.asm.Xb).apply(null,arguments)},i._sodium_library_version_minor=function(){return(i._sodium_library_version_minor=i.asm.Yb).apply(null,arguments)},i._sodium_library_minimal=function(){return(i._sodium_library_minimal=i.asm.Zb).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm._b).apply(null,arguments)},i._free=function(){return(i._free=i.asm.$b).apply(null,arguments)},i.UTF8ToString=H,i.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":w[A>>0]=I;break;case\"i16\":s[A>>1]=I;break;case\"i32\":p[A>>2]=I;break;case\"i64\":d=[I>>>0,(m=I,+Math.abs(m)>=1?m>0?(0|Math.min(+Math.floor(m/4294967296),4294967295))>>>0:~~+Math.ceil((m-+(~~m>>>0))/4294967296)>>>0:0)],p[A>>2]=d[0],p[A+4>>2]=d[1];break;case\"float\":k[A>>2]=I;break;case\"double\":F[A>>3]=I;break;case\"*\":u[A>>2]=I;break;default:K(\"invalid type for setValue: \"+g)}},i.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return w[A>>0];case\"i16\":return s[A>>1];case\"i32\":case\"i64\":return p[A>>2];case\"float\":return k[A>>2];case\"double\":return F[A>>3];case\"*\":return u[A>>2];default:K(\"invalid type for getValue: \"+I)}return null},_=function A(){W||$(),W||(_=A)},i.preInit)for(\"function\"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();$()}))};var g,B,Q,i=void 0!==i?i:{},E=Object.assign({},i),o=\"object\"==typeof window,a=\"function\"==typeof importScripts,n=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,r=\"\";if(n){var f=require(\"fs\"),t=require(\"path\");r=a?t.dirname(r)+\"/\":__dirname+\"/\",g=(A,I)=>{var g=V(A);return g?I?g:g.toString():(A=L(A)?new URL(A):t.normalize(A),f.readFileSync(A,I?void 0:\"utf8\"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},B=(A,I,g)=>{var C=V(A);C&&I(C),A=L(A)?new URL(A):t.normalize(A),f.readFile(A,(function(A,C){A?g(A):I(C.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=i),i.inspect=function(){return\"[Emscripten Module object]\"}}else(o||a)&&(a?r=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(r=document.currentScript.src),r=0!==r.indexOf(\"blob:\")?r.substr(0,r.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",g=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=V(A);if(g)return function(A){for(var I=[],g=0;g255&&(C&=255),I.push(String.fromCharCode(C))}return I.join(\"\")}(g);throw I}},a&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=V(A);if(g)return g;throw I}}),B=(A,I,g)=>{var C=new XMLHttpRequest;C.open(\"GET\",A,!0),C.responseType=\"arraybuffer\",C.onload=()=>{if(200==C.status||0==C.status&&C.response)I(C.response);else{var B=V(A);B?I(B.buffer):g()}},C.onerror=g,C.send(null)});i.print;var e,c,y=i.printErr||void 0;Object.assign(i,E),E=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(e=i.wasmBinary),i.noExitRuntime,\"object\"!=typeof WebAssembly&&b(\"no native wasm support detected\");var D,w,h,s,p,u,k,F=!1,l=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function S(A,I){return A?function(A,I,g){for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|E)}else Q+=String.fromCharCode(i)}return Q}(w,A,I):\"\"}function H(){var A=c.buffer;i.HEAP8=D=new Int8Array(A),i.HEAP16=h=new Int16Array(A),i.HEAP32=s=new Int32Array(A),i.HEAPU8=w=new Uint8Array(A),i.HEAPU16=new Uint16Array(A),i.HEAPU32=p=new Uint32Array(A),i.HEAPF32=u=new Float32Array(A),i.HEAPF64=k=new Float64Array(A)}var M=[],G=[],U=[],J=0,N=null,Y=null;function b(A){throw i.onAbort&&i.onAbort(A),y(A=\"Aborted(\"+A+\")\"),F=!0,A+=\". Build with -sASSERTIONS for more info.\",new WebAssembly.RuntimeError(A)}var _,K,P,v,m=\"data:application/octet-stream;base64,\";function d(A){return A.startsWith(m)}function L(A){return A.startsWith(\"file://\")}function R(A){try{if(A==_&&e)return new Uint8Array(e);var I=V(A);if(I)return I;if(Q)return Q(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){b(A)}}d(_=\"data:application/octet-stream;base64,AGFzbQEAAAABiwIfYAN/f34Bf2ACf38Bf2AAAX9gA39/fwF/YAJ/fwBgA39/fwBgBX9/f39/AX9gC39/f39/f39/f39/AX9gBn9/fn9/fwF/YAZ/f35/fn8Bf2AGf39/f39/AX9gAX8AYAR/fn9/AX9gBH9/f38Bf2ABfwF/YAd/f39/f39/AX9gAABgBn9/f35/fwF/YAR/f35/AX9gA39/fgBgCH9/fn9/fn9/AX9gCX9/f39+f35/fwF/YAh/f39/f39/fwF/YAx/f39/f39/f39/f38Bf2AEf39/fwBgBX9/fn9/AGAKf39/f39/f39/fwF/YAR/fn9/AGAGf39+f39/AGAEf39/fgBgBX9/fn9/AX8CHwUBYQFhAAMBYQFiABgBYQFjABABYQFkAAUBYQFlAA4DsAGuAQQFBAMQAgMABAUAAgUEBAsEBBsACwIcDgECAREDAw0DGAIFBAUEBAQBAh0RHhEDAgMLDgUTBBMDAQMLFBQVFQICAwUFAQQBEBkZCg8PCAgEEwQUFREDAgIBAQICAgICCwMDAgkMAQMLDgEAARISAgUOAgUNBgoKCgYaGgoKDQ0PCgYPCBYPChYGBgcHCQcXBwcHBwcXBxcMBgYDAQICCwIDDAINFgYBDw0DDQ4BBgQEAXAADgUGAQFAgIACBggBfwFB8JoGCweWBp4BAWYCAAFnAJsBAWgAmgEBaQCZAQFqAJgBAWsAlwEBbACWAQFtAJUBAW4AlAEBbwAKAXAAXwFxAC4BcgAQAXMAHgF0ABQBdQAKAXYANAF3AC4BeAAQAXkAHgF6ABQBQQCTAQFCAJIBAUMAkAEBRACPAQFFAAoBRgAmAUcALgFIABABSQAeAUoAFAFLAAoBTAAKAU0AjgEBTgCNAQFPABQBUAAKAVEACgFSAAoBUwAKAVQAJgFVABABVgAeAVcApQEBWAA9AVkAIQFaAFEBXwCMAQEkAIsBAmFhAIoBAmJhAFACY2EAiQECZGEATwJlYQCHAQJmYQCGAQJnYQCFAQJoYQCkAQJpYQAQAmphABoCa2EACgJsYQAQAm1hABoCbmEACgJvYQCnAQJwYQCEAQJxYQAjAnJhAIMBAnNhACICdGEAFAJ1YQAaAnZhAIIBAndhABACeGEAGgJ5YQA0AnphAAoCQWEAgQECQmEAFAJDYQCfAQJEYQA9AkVhAJ4BAkZhAJ0BAkdhAAoCSGEACgJJYQAKAkphAAoCS2EAoAECTGEAPAJNYQAKAk5hAAoCT2EACgJQYQAmAlFhABACUmEAHgJTYQAUAlRhAFECVWEAgAECVmEAUAJXYQBPAlhhABQCWWEAZgJaYQBlAl9hAGQCJGEAfwJhYgB+AmJiAGMCY2IAYgJkYgAmAmViAAoCZmIAYQJnYgAuAmhiAEUCaWIAYAJqYgBEAmtiADQCbGIAEAJtYgB9Am5iAKMBAm9iAFwCcGIAGgJxYgAKAnJiAAoCc2IAGgJ0YgBbAnViAFoCdmIAsQECd2IAfAJ4YgB7AnliAHoCemIAeQJBYgCwAQJCYgB4AkNiAK8BAkRiAK4BAkViAF4CRmIAXQJHYgB2AkhiAEwCSWIAdQJKYgAWAktiAHQCTGIACgJNYgBzAk5iAHcCT2IArQECUGIArAECUWIAqwECUmIAqgECU2IAqQECVGIAZwJVYgCyAQJWYgCoAQJXYgCiAQJYYgChAQJZYgBEAlpiAEUCX2IAbQIkYgBsAmFjAQAJFwEAQQELDaYBnAGRAYgBcnFwb25ramloCrPlBK4BywYCG34HfyAAIAEoAgwiHUEBdKwiByAdrCITfiABKAIQIiCsIgYgASgCCCIhQQF0rCILfnwgASgCFCIdQQF0rCIIIAEoAgQiIkEBdKwiAn58IAEoAhgiH6wiCSABKAIAIiNBAXSsIgV+fCABKAIgIh5BE2ysIgMgHqwiEH58IAEoAiQiHkEmbKwiBCABKAIcIgFBAXSsIhR+fCACIAZ+IAsgE358IB2sIhEgBX58IAMgFH58IAQgCX58IAIgB34gIawiDiAOfnwgBSAGfnwgAUEmbKwiDyABrCIVfnwgAyAfQQF0rH58IAQgCH58IhdCgICAEHwiGEIah3wiGUKAgIAIfCIaQhmHfCIKIApCgICAEHwiDEKAgIDgD4N9PgIYIAAgBSAOfiACICKsIg1+fCAfQRNsrCIKIAl+fCAIIA9+fCADICBBAXSsIhZ+fCAEIAd+fCAIIAp+IAUgDX58IAYgD358IAMgB358IAQgDn58IB1BJmysIBF+ICOsIg0gDX58IAogFn58IAcgD358IAMgC358IAIgBH58IgpCgICAEHwiDUIah3wiG0KAgIAIfCIcQhmHfCISIBJCgICAEHwiEkKAgIDgD4N9PgIIIAAgCyARfiAGIAd+fCACIAl+fCAFIBV+fCAEIBB+fCAMQhqHfCIMIAxCgICACHwiDEKAgIDwD4N9PgIcIAAgBSATfiACIA5+fCAJIA9+fCADIAh+fCAEIAZ+fCASQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgIMIAAgCSALfiAGIAZ+fCAHIAh+fCACIBR+fCAFIBB+fCAEIB6sIgZ+fCAMQhmHfCIEIARCgICAEHwiBEKAgIDgD4N9PgIgIAAgGSAaQoCAgPAPg30gFyAYQoCAgGCDfSADQhmHfCIDQoCAgBB8IghCGoh8PgIUIAAgAyAIQoCAgOAPg30+AhAgACAHIAl+IBEgFn58IAsgFX58IAIgEH58IAUgBn58IARCGod8IgIgAkKAgIAIfCICQoCAgPAPg30+AiQgACAbIBxCgICA8A+DfSAKIA1CgICAYIN9IAJCGYdCE358IgJCgICAEHwiBUIaiHw+AgQgACACIAVCgICA4A+DfT4CAAudCQInfgx/IAAgAigCBCIqrCILIAEoAhQiK0EBdKwiFH4gAjQCACIDIAE0AhgiBn58IAIoAggiLKwiDSABNAIQIgd+fCACKAIMIi2sIhAgASgCDCIuQQF0rCIVfnwgAigCECIvrCIRIAE0AggiCH58IAIoAhQiMKwiFiABKAIEIjFBAXSsIhd+fCACKAIYIjKsIiAgATQCACIJfnwgAigCHCIzQRNsrCIMIAEoAiQiNEEBdKwiGH58IAIoAiAiNUETbKwiBCABNAIgIgp+fCACKAIkIgJBE2ysIgUgASgCHCIBQQF0rCIZfnwgByALfiADICusIhp+fCANIC6sIht+fCAIIBB+fCARIDGsIhx+fCAJIBZ+fCAyQRNsrCIOIDSsIh1+fCAKIAx+fCAEIAGsIh5+fCAFIAZ+fCALIBV+IAMgB358IAggDX58IBAgF358IAkgEX58IDBBE2ysIh8gGH58IAogDn58IAwgGX58IAQgBn58IAUgFH58IiJCgICAEHwiI0Iah3wiJEKAgIAIfCIlQhmHfCISIBJCgICAEHwiE0KAgIDgD4N9PgIYIAAgCyAXfiADIAh+fCAJIA1+fCAtQRNsrCIPIBh+fCAKIC9BE2ysIhJ+fCAZIB9+fCAGIA5+fCAMIBR+fCAEIAd+fCAFIBV+fCAJIAt+IAMgHH58ICxBE2ysIiEgHX58IAogD358IBIgHn58IAYgH358IA4gGn58IAcgDH58IAQgG358IAUgCH58ICpBE2ysIBh+IAMgCX58IAogIX58IA8gGX58IAYgEn58IBQgH358IAcgDn58IAwgFX58IAQgCH58IAUgF358IiFCgICAEHwiJkIah3wiJ0KAgIAIfCIoQhmHfCIPIA9CgICAEHwiKUKAgIDgD4N9PgIIIAAgBiALfiADIB5+fCANIBp+fCAHIBB+fCARIBt+fCAIIBZ+fCAcICB+fCAJIDOsIg9+fCAEIB1+fCAFIAp+fCATQhqHfCITIBNCgICACHwiE0KAgIDwD4N9PgIcIAAgCCALfiADIBt+fCANIBx+fCAJIBB+fCASIB1+fCAKIB9+fCAOIB5+fCAGIAx+fCAEIBp+fCAFIAd+fCApQhqHfCIEIARCgICACHwiBEKAgIDwD4N9PgIMIAAgCyAZfiADIAp+fCAGIA1+fCAQIBR+fCAHIBF+fCAVIBZ+fCAIICB+fCAPIBd+fCAJIDWsIgx+fCAFIBh+fCATQhmHfCIFIAVCgICAEHwiBUKAgIDgD4N9PgIgIAAgJCAlQoCAgPAPg30gIiAjQoCAgGCDfSAEQhmHfCIEQoCAgBB8Ig5CGoh8PgIUIAAgBCAOQoCAgOAPg30+AhAgACAKIAt+IAMgHX58IA0gHn58IAYgEH58IBEgGn58IAcgFn58IBsgIH58IAggD358IAwgHH58IAkgAqx+fCAFQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgIkIAAgJyAoQoCAgPAPg30gISAmQoCAgGCDfSADQhmHQhN+fCIDQoCAgBB8IgZCGoh8PgIEIAAgAyAGQoCAgOAPg30+AgALCwAgAEEAIAEQCBoL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALGAEBf0HomgIoAgAiAARAIAAREAALEAIACwQAQSALgAQBA38gAkGABE8EQCAAIAEgAhADIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgJBA3FFDQEgAiADSQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAAC6EGAgd+BH8jAEHABWsiDCQAAkAgAlANACAAIAApA0giAyACQgOGfCIENwNIIABBQGsiCiAKKQMAIAMgBFatfCACQj2IfDcDACACQoABIANCA4hC/wCDIgR9IghaBEBCACEDIARC/wCFQgNaBEAgCEL8AYMhByAAQdAAaiEKA0AgCiADIAR8p2ogASADp2otAAA6AAAgCiADQgGEIgkgBHynaiABIAmnai0AADoAACAKIANCAoQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IDhCIJIAR8p2ogASAJp2otAAA6AAAgA0IEfCEDIAVCBHwiBSAHUg0ACwsgCEIDgyIFQgBSBEADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAVSDQALCyAAIABB0ABqIAwgDEGABWoiChAlIAEgCKdqIQEgAiAIfSICQv8AVgRAA0AgACABIAwgChAlIAFBgAFqIQEgAkKAAX0iAkL/AFYNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkJ8gyEFIABB0ABqIQpCACECA0AgCiADpyILaiABIAtqLQAAOgAAIAogC0EBciINaiABIA1qLQAAOgAAIAogC0ECciINaiABIA1qLQAAOgAAIAogC0EDciILaiABIAtqLQAAOgAAIANCBHwhAyACQgR8IgIgBVINAAsLIARQDQADQCAAIAOnIgpqIAEgCmotAAA6AFAgA0IBfCEDIAZCAXwiBiAEUg0ACwsgDEHABRAHDAELQgAhAyACQgRaBEAgAkJ8gyEIIABB0ABqIQoDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiByAEfKdqIAEgB6dqLQAAOgAAIAogA0IChCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgOEIgcgBHynaiABIAenai0AADoAACADQgR8IQMgBUIEfCIFIAhSDQALCyACQgODIgJQDQADQCAAIAMgBHynaiABIAOnai0AADoAUCADQgF8IQMgBkIBfCIGIAJSDQALCyAMQcAFaiQAQQALsQQCE38EfiABKAIoIQIgASgCBCEDIAEoAiwhBCABKAIIIQUgASgCMCEGIAEoAgwhByABKAI0IQggASgCECEJIAEoAjghCiABKAIUIQsgASgCPCEMIAEoAhghDSABQUBrIg4oAgAhDyABKAIcIRAgASgCRCERIAEoAiAhEiABKAJIIRMgASgCACEUIAAgASgCJCABKAJMajYCJCAAIBIgE2o2AiAgACAQIBFqNgIcIAAgDSAPajYCGCAAIAsgDGo2AhQgACAJIApqNgIQIAAgByAIajYCDCAAIAUgBmo2AgggACADIARqNgIEIAAgAiAUajYCACABKAIoIQIgASgCBCEDIAEoAiwhBCABKAIIIQUgASgCMCEGIAEoAgwhByABKAI0IQggASgCECEJIAEoAjghCiABKAIUIQsgASgCPCEMIAEoAhghDSAOKAIAIQ4gASgCHCEPIAEoAkQhECABKAIgIREgASgCSCESIAEoAgAhEyAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAPazYCRCAAQUBrIA4gDWs2AgAgACAMIAtrNgI8IAAgCiAJazYCOCAAIAggB2s2AjQgACAGIAVrNgIwIAAgBCADazYCLCAAIAIgE2s2AiggASkCUCEVIAEpAlghFiABKQJgIRcgASkCaCEYIAAgASkCcDcCcCAAIBg3AmggACAXNwJgIAAgFjcCWCAAIBU3AlAgAEH4AGogAUH4AGpBoAsQBgvwCQEefyABKAIoIQMgASgCBCEEIAEoAiwhBSABKAIIIQYgASgCMCEHIAEoAgwhCCABKAI0IQkgASgCECEKIAEoAjghCyABKAIUIQwgASgCPCENIAEoAhghDiABQUBrIg8oAgAhECABKAIcIREgASgCRCESIAEoAiAhEyABKAJIIRQgASgCACEVIAAgASgCJCABKAJMajYCJCAAIBMgFGo2AiAgACARIBJqNgIcIAAgDiAQajYCGCAAIAwgDWo2AhQgACAKIAtqNgIQIAAgCCAJajYCDCAAIAYgB2o2AgggACAEIAVqNgIEIAAgAyAVajYCACABKAIoIQUgASgCBCEDIAEoAiwhBiABKAIIIQcgASgCMCEIIAEoAgwhCSABKAI0IQogASgCECELIAEoAjghDCABKAIUIQ0gASgCPCEOIAEoAhghECAPKAIAIQ8gASgCHCEEIAEoAkQhESABKAIgIRIgASgCSCETIAEoAgAhFCAAIAEoAkwgASgCJGs2AkwgACATIBJrNgJIIAAgESAEazYCRCAAQUBrIgQgDyAQazYCACAAIA4gDWs2AjwgACAMIAtrNgI4IAAgCiAJazYCNCAAIAggB2s2AjAgACAGIANrNgIsIABBKGoiAyAFIBRrNgIAIABB0ABqIAAgAhAGIAMgAyACQShqEAYgAEH4AGogAkH4AGogAUH4AGoQBiAAIAFB0ABqIAJB0ABqEAYgACgCBCEVIAAoAgghFiAAKAIMIRcgACgCECEYIAAoAhQhGSAAKAIYIRogACgCHCEbIAAoAiAhHCAAKAIkIR0gAygCACEBIAAoAlAhAiAAKAIsIQUgACgCVCEGIAAoAjAhByAAKAJYIQggACgCNCEJIAAoAlwhCiAAKAI4IQsgACgCYCEMIAAoAjwhDSAAKAJkIQ4gBCgCACEPIAAoAmghECAAKAJEIREgACgCbCESIAAoAkghEyAAKAJwIRQgACgCACEeIAAgACgCTCIfIAAoAnQiIGo2AkwgACATIBRqNgJIIAAgESASajYCRCAEIA8gEGo2AgAgACANIA5qNgI8IAAgCyAMajYCOCAAIAkgCmo2AjQgACAHIAhqNgIwIAAgBSAGajYCLCADIAEgAmo2AgAgACAgIB9rNgIkIAAgFCATazYCICAAIBIgEWs2AhwgACAQIA9rNgIYIAAgDiANazYCFCAAIAwgC2s2AhAgACAKIAlrNgIMIAAgCCAHazYCCCAAIAYgBWs2AgQgACACIAFrNgIAIAAgHUEBdCIBIAAoApwBIgJrNgKcASAAIBxBAXQiAyAAKAKYASIEazYCmAEgACAbQQF0IgUgACgClAEiBms2ApQBIAAgGkEBdCIHIAAoApABIghrNgKQASAAIBlBAXQiCSAAKAKMASIKazYCjAEgACAYQQF0IgsgACgCiAEiDGs2AogBIAAgF0EBdCINIAAoAoQBIg5rNgKEASAAIBZBAXQiDyAAKAKAASIQazYCgAEgACAVQQF0IhEgACgCfCISazYCfCAAIB5BAXQiEyAAKAJ4IhRrNgJ4IAAgAyAEajYCcCAAIAUgBmo2AmwgACAHIAhqNgJoIAAgCSAKajYCZCAAIAsgDGo2AmAgACANIA5qNgJcIAAgDyAQajYCWCAAIBEgEmo2AlQgACATIBRqNgJQIAAgASACajYCdAvUAQIFfwJ+An8gAkIAUgRAIABB4AFqIQcgAEHgAGohAyAAKADgAiEEA0AgAyAEaiEGQYACIARrIgWtIgggAloEQCAGIAEgAqciARALGiAAIAAoAOACIAFqNgDgAkEADAMLIAYgASAFEAsaIAAgACgA4AIgBWo2AOACIAAgACkAQCIJQoABfDcAQCAAIAApAEggCUL/flatfDcASCAAIAMQKCADIAdBgAEQCxogACAAKADgAkGAAWsiBDYA4AIgASAFaiEBIAIgCH0iAkIAUg0ACwtBAAsLBABBEAuDBwEUfyABKAIEIQwgACgCBCEDIAEoAgghDSAAKAIIIQQgASgCDCEOIAAoAgwhBSABKAIQIQ8gACgCECEGIAEoAhQhECAAKAIUIQcgASgCGCERIAAoAhghCCABKAIcIRIgACgCHCEJIAEoAiAhEyAAKAIgIQogASgCJCEUIAAoAiQhCyAAQQAgAmsiAiAAKAIAIhUgASgCAHNxIBVzNgIAIAAgCyALIBRzIAJxczYCJCAAIAogCiATcyACcXM2AiAgACAJIAkgEnMgAnFzNgIcIAAgCCAIIBFzIAJxczYCGCAAIAcgByAQcyACcXM2AhQgACAGIAYgD3MgAnFzNgIQIAAgBSAFIA5zIAJxczYCDCAAIAQgBCANcyACcXM2AgggACADIAMgDHMgAnFzNgIEIAAoAighAyABKAIoIQwgACgCLCEEIAEoAiwhDSAAKAIwIQUgASgCMCEOIAAoAjQhBiABKAI0IQ8gACgCOCEHIAEoAjghECAAKAI8IQggASgCPCERIABBQGsiEigCACEJIAFBQGsoAgAhEyAAKAJEIQogASgCRCEUIAAoAkghCyABKAJIIRUgACAAKAJMIhYgASgCTHMgAnEgFnM2AkwgACALIAsgFXMgAnFzNgJIIAAgCiAKIBRzIAJxczYCRCASIAkgCSATcyACcXM2AgAgACAIIAggEXMgAnFzNgI8IAAgByAHIBBzIAJxczYCOCAAIAYgBiAPcyACcXM2AjQgACAFIAUgDnMgAnFzNgIwIAAgBCAEIA1zIAJxczYCLCAAIAMgAyAMcyACcXM2AiggACgCUCEDIAEoAlAhDCAAKAJUIQQgASgCVCENIAAoAlghBSABKAJYIQ4gACgCXCEGIAEoAlwhDyAAKAJgIQcgASgCYCEQIAAoAmQhCCABKAJkIREgACgCaCEJIAEoAmghEiAAKAJsIQogASgCbCETIAAoAnAhCyABKAJwIRQgACAAKAJ0IhUgASgCdHMgAnEgFXM2AnQgACALIAsgFHMgAnFzNgJwIAAgCiAKIBNzIAJxczYCbCAAIAkgCSAScyACcXM2AmggACAIIAggEXMgAnFzNgJkIAAgByAHIBBzIAJxczYCYCAAIAYgBiAPcyACcXM2AlwgACAFIAUgDnMgAnFzNgJYIAAgBCAEIA1zIAJxczYCVCAAIAMgAyAMcyACcXM2AlAL6AQBCX8gACABKAIgIgUgASgCHCIGIAEoAhgiByABKAIUIgggASgCECIJIAEoAgwiCiABKAIIIgQgASgCBCIDIAEoAgAiAiABKAIkIgFBE2xBgICACGpBGXZqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnUgAWpBGXVBE2wgAmoiAjoAACAAIAJBEHY6AAIgACACQQh2OgABIAAgAyACQRp1aiIDQQ52OgAFIAAgA0EGdjoABCAAIAJBGHZBA3EgA0ECdHI6AAMgACAEIANBGXVqIgJBDXY6AAggACACQQV2OgAHIAAgAkEDdCADQYCAgA5xQRZ2cjoABiAAIAogAkEadWoiBEELdjoACyAAIARBA3Y6AAogACAEQQV0IAJBgICAH3FBFXZyOgAJIAAgCSAEQRl1aiICQRJ2OgAPIAAgAkEKdjoADiAAIAJBAnY6AA0gACAIIAJBGnVqIgM6ABAgACACQQZ0IARBgIDgD3FBE3ZyOgAMIAAgA0EQdjoAEiAAIANBCHY6ABEgACAHIANBGXVqIgJBD3Y6ABUgACACQQd2OgAUIAAgA0EYdkEBcSACQQF0cjoAEyAAIAYgAkEadWoiA0ENdjoAGCAAIANBBXY6ABcgACADQQN0IAJBgICAHHFBF3ZyOgAWIAAgBSADQRl1aiICQQx2OgAbIAAgAkEEdjoAGiAAIAJBBHQgA0GAgIAPcUEVdnI6ABkgACABIAJBGnVqIgFBCnY6AB4gACABQQJ2OgAdIAAgAUGAgPAPcUESdjoAHyAAIAFBBnQgAkGAgMAfcUEUdnI6ABwLvQgCAX4DfyMAQcAFayIDJAAgACgCSEEDdkH/AHEiBCAAakHQAGohBQJAIARB7wBNBEAgBUHQjgJB8AAgBGsQCxoMAQsgBUHQjgJBgAEgBGsQCxogACAAQdAAaiIEIAMgA0GABWoQJSAEQQBB8AAQCBoLIAAgACkDQCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwDAASAAIAApA0giAkI4hiACQoD+A4NCKIaEIAJCgID8B4NCGIYgAkKAgID4D4NCCIaEhCACQgiIQoCAgPgPgyACQhiIQoCA/AeDhCACQiiIQoD+A4MgAkI4iISEhDcAyAEgACAAQdAAaiADIANBgAVqECUgASAAKQMAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3AAAgASAAKQMIIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3AAggASAAKQMQIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ABAgASAAKQMYIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ABggASAAKQMgIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ACAgASAAKQMoIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ACggASAAKQMwIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ADAgASAAKQM4IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ADggA0HABRAHIABB0AEQByADQcAFaiQACwgAIABBIBAWC+MOAhx+IH8jAEEwayIeJAAgACABEAUgAEHQAGogAUEoahAFIAAgASgCXCIiQQF0rCIIIAEoAlQiI0EBdKwiAn4gASgCWCIkrCINIA1+fCABKAJgIiWsIgcgASgCUCImQQF0rCIFfnwgASgCbCIfQSZsrCIOIB+sIhF+fCABKAJwIidBE2ysIgMgASgCaCIgQQF0rH58IAEoAnQiKEEmbKwiBCABKAJkIiFBAXSsIgl+fEIBhiIVQoCAgBB8IhZCGocgAiAHfiAkQQF0rCILICKsIhJ+fCAhrCIPIAV+fCADIB9BAXSsIhN+fCAEICCsIgp+fEIBhnwiF0KAgIAIfCIYQhmHIAggEn4gByALfnwgAiAJfnwgBSAKfnwgAyAnrCIQfnwgBCATfnxCAYZ8IgYgBkKAgIAQfCIMQoCAgOAPg30+ApABIAAgIUEmbKwgD34gJqwiBiAGfnwgIEETbKwiBiAlQQF0rCIUfnwgCCAOfnwgAyALfnwgAiAEfnxCAYYiGUKAgIAQfCIaQhqHIAYgCX4gBSAjrCIbfnwgByAOfnwgAyAIfnwgBCANfnxCAYZ8IhxCgICACHwiHUIZhyAFIA1+IAIgG358IAYgCn58IAkgDn58IAMgFH58IAQgCH58QgGGfCIGIAZCgICAEHwiBkKAgIDgD4N9PgKAASAAIAsgD34gByAIfnwgAiAKfnwgBSARfnwgBCAQfnxCAYYgDEIah3wiDCAMQoCAgAh8IgxCgICA8A+DfT4ClAEgACAFIBJ+IAIgDX58IAogDn58IAMgCX58IAQgB358QgGGIAZCGod8IgMgA0KAgIAIfCIDQoCAgPAPg30+AoQBIAAgCiALfiAHIAd+fCAIIAl+fCACIBN+fCAFIBB+fCAEICisIgd+fEIBhiAMQhmHfCIEIARCgICAEHwiBEKAgIDgD4N9PgKYASAAIBcgGEKAgIDwD4N9IBUgFkKAgIBgg30gA0IZh3wiA0KAgIAQfCIJQhqIfD4CjAEgACADIAlCgICA4A+DfT4CiAEgACAIIAp+IA8gFH58IAsgEX58IAIgEH58IAUgB358QgGGIARCGod8IgIgAkKAgIAIfCICQoCAgPAPg30+ApwBIAAgHCAdQoCAgPAPg30gGSAaQoCAgGCDfSACQhmHQhN+fCICQoCAgBB8IgVCGoh8PgJ8IAAgAiAFQoCAgOAPg30+AnggASgCKCEfIAEoAiwhICABKAIEISEgASgCMCEiIAEoAgghIyABKAI0ISQgASgCDCElIAEoAjghJiABKAIQIScgASgCPCEoIAEoAhQhKSABQUBrKAIAISogASgCGCErIAEoAkQhLCABKAIcIS0gASgCSCEuIAEoAiAhLyABKAIAITAgACABKAJMIAEoAiRqNgJMIAAgLiAvajYCSCAAICwgLWo2AkQgAEFAayIyICogK2o2AgAgACAoIClqNgI8IAAgJiAnajYCOCAAICQgJWo2AjQgACAiICNqNgIwIAAgICAhajYCLCAAQShqIgEgHyAwajYCACAeIAEQBSAAKAJQIR8gACgCBCEgIAAoAlQhISAAKAIIISIgACgCWCEjIAAoAgwhJCAAKAJcISUgACgCECEmIAAoAmAhJyAAKAIUISggACgCZCEpIAAoAhghKiAAKAJoISsgACgCHCEsIAAoAmwhLSAAKAIgIS4gACgCcCEvIAAoAgAhMCAAIAAoAnQiMSAAKAIkIjNrIjQ2AnQgACAvIC5rIjU2AnAgACAtICxrIjY2AmwgACArICprIjc2AmggACApIChrIjg2AmQgACAnICZrIjk2AmAgACAlICRrIjo2AlwgACAjICJrIjs2AlggACAhICBrIjw2AlQgACAfIDBrIj02AlAgACAxIDNqIjE2AkwgACAuIC9qIi42AkggACAsIC1qIiw2AkQgMiAqICtqIio2AgAgACAoIClqIig2AjwgACAmICdqIiY2AjggACAkICVqIiQ2AjQgACAiICNqIiI2AjAgACAgICFqIiA2AiwgASAfIDBqIgE2AgAgHigCACEfIB4oAgQhISAeKAIIISMgHigCDCElIB4oAhAhJyAeKAIUISkgHigCGCErIB4oAhwhLSAeKAIgIS8gACAeKAIkIDFrNgIkIAAgLyAuazYCICAAIC0gLGs2AhwgACArICprNgIYIAAgKSAoazYCFCAAICcgJms2AhAgACAlICRrNgIMIAAgIyAiazYCCCAAICEgIGs2AgQgACAfIAFrNgIAIAAoAnghASAAKAJ8IR8gACgCgAEhICAAKAKEASEhIAAoAogBISIgACgCjAEhIyAAKAKQASEkIAAoApQBISUgACgCmAEhJiAAIAAoApwBIDRrNgKcASAAICYgNWs2ApgBIAAgJSA2azYClAEgACAkIDdrNgKQASAAICMgOGs2AowBIAAgIiA5azYCiAEgACAhIDprNgKEASAAICAgO2s2AoABIAAgHyA8azYCfCAAIAEgPWs2AnggHkEwaiQAC0QBAn8jAEEQayICJAAgAQRAA0AgAkEAOgAPIAAgA2pB2JACIAJBD2pBABAAOgAAIANBAWoiAyABRw0ACwsgAkEQaiQACyQAIAFCgICAgBBaBEAQCQALIAAgASACIANBqJACKAIAEQwAGguVAQEBfyMAQdABayIDJAAgA0IANwNIIANBmIkCKQMANwMIIANBoIkCKQMANwMQIANBqIkCKQMANwMYIANBsIkCKQMANwMgIANBuIkCKQMANwMoIANBwIkCKQMANwMwIANByIkCKQMANwM4IANCADcDQCADQZCJAikDADcDACADIAEgAhAMGiADIAAQEyADQdABaiQAQQALcAAgAEIANwNAIABCADcDSCAAQZCJAikDADcDACAAQZiJAikDADcDCCAAQaCJAikDADcDECAAQaiJAikDADcDGCAAQbCJAikDADcDICAAQbiJAikDADcDKCAAQcCJAikDADcDMCAAQciJAikDADcDOAsFAEHAAAtAAAJAIAStQoCAgIAQIAJCP3xCBoh9Vg0AIAJCgICAgBBaDQAgACABIAIgAyAEIAVBsJACKAIAEQgAGg8LEAkAC1IBAn9BoJACKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQBEUNAQtBoJACIAA2AgAgAQ8LQdCWAkEwNgIAQX8L0wIBA38CfwJAIAEiA0H/AXEiAgRAIABBA3EEQANAIAAtAAAiAUUNAyABIANB/wFxRg0DIABBAWoiAEEDcQ0ACwsCQCAAKAIAIgFBf3MgAUGBgoQIa3FBgIGChHhxDQAgAkGBgoQIbCECA0AgASACcyIBQX9zIAFBgYKECGtxQYCBgoR4cQ0BIAAoAgQhASAAQQRqIQAgAUGBgoQIayABQX9zcUGAgYKEeHFFDQALCwNAIAAiAS0AACICBEAgAUEBaiEAIAIgA0H/AXFHDQELCyABDAILAkAgACICQQNxBEADQCAALQAARQ0CIABBAWoiAEEDcQ0ACwsDQCAAIgFBBGohACABKAIAIgRBf3MgBEGBgoQIa3FBgIGChHhxRQ0ACwNAIAEiAEEBaiEBIAAtAAANAAsLIAIgACACa2oMAQsgAAsiAEEAIAAtAAAgA0H/AXFGGwsEAEFvC90BAQR/IwBBEGsiAkEAOgAPAkAgAUUNACABQQNxIQQgAUEETwRAIAFBfHEhBUEAIQEDQCACIAAgA2otAAAgAi0AD3I6AA8gAiAAIANBAXJqLQAAIAItAA9yOgAPIAIgACADQQJyai0AACACLQAPcjoADyACIAAgA0EDcmotAAAgAi0AD3I6AA8gA0EEaiEDIAFBBGoiASAFRw0ACwsgBEUNAEEAIQEDQCACIAAgA2otAAAgAi0AD3I6AA8gA0EBaiEDIAFBAWoiASAERw0ACwsgAi0AD0EBa0EIdkEBcQvEAgICfwF+IwBB4AJrIgYkACAGIAQgBRA+GgJAIAAgAksgACACa60gA1RxRQRAIAAgAk8NASACIABrrSADWg0BCyAAIAIgA6cQJCECCyAGQgA3AzggBkIANwMwIAZCADcDKCAGQgA3AyBCICADIANCIFobIghQIgdFBEAgBkFAayACIAinEAsaCyAGQSBqIgUgBSAIQiB8IARBEGoiBEIAIAZB1JACKAIAEQkAGiAGQeAAaiAFQbyQAigCABEBABogB0UEQCAAIAZBQGsgCKcQCxoLIAZBIGpBwAAQByADQiFaBEAgACAIpyIFaiACIAVqIAMgCH0gBEIBIAZB1JACKAIAEQkAGgsgBkEgEAcgBkHgAGoiAiAAIANBwJACKAIAEQAAGiACIAFBxJACKAIAEQEAGiACQYACEAcgBkHgAmokAEEACzIBAn8jAEEgayIDJABBfyEEIAMgAiABEEZFBEAgAEGQkAIgAxA+IQQLIANBIGokACAECyYAIAJBgAJPBEBB7AlBowlB6wBBqwgQAQALIAAgASACQf8BcRA1C40EAQJ/QX8hBAJAIAJBwABLDQAgA0HBAGtBQEkNAAJAIAFBACACG0UEQCADQf8BcSIBQcEAa0H/AXFBvwFNBEAQCQALIABBQGtBAEGlAhAIGiAAQvnC+JuRo7Pw2wA3ADggAELr+obav7X2wR83ADAgAEKf2PnZwpHagpt/NwAoIABC0YWa7/rPlIfRADcAICAAQvHt9Pilp/2npX83ABggAEKr8NP0r+68tzw3ABAgAEK7zqqm2NDrs7t/NwAIIAAgAa1CiJL3lf/M+YTqAIU3AAAMAQsCfyACQf8BcSECIwBBgAFrIgUkAAJAIANB/wFxIgNBwQBrQf8BcUG/AU0NACABRQ0AIAJBwQBrQf8BcUG/AU0NACAAQUBrQQBBpQIQCBogAEL5wvibkaOz8NsANwA4IABC6/qG2r+19sEfNwAwIABCn9j52cKR2oKbfzcAKCAAQtGFmu/6z5SH0QA3ACAgAELx7fT4paf9p6V/NwAYIABCq/DT9K/uvLc8NwAQIABCu86qptjQ67O7fzcACCAAIAOtIAKtQgiGhEKIkveV/8z5hOoAhTcAACACIAVqQQBBgAEgAmtBACACwEEAThsQCBogAEHgAGogBSABIAIQCyIBQYABEAsaIAAgACgA4AJBgAFqNgDgAiABQYABEAcgAUGAAWokAEEADAELEAkACw0BC0EAIQQLIAQL6AIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQCw8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMEQCAAIQMMAwsgAEEDcUUEQCAAIQMMAgsgACEDA0AgAkUNBCADIAEtAAA6AAAgAUEBaiEBIAJBAWshAiADQQFqIgNBA3ENAAsMAQsCQCADDQAgBEEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIAJBBGsiAkEDSw0ACwsgAkUNAANAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBIAJBAWsiAg0ACwsgAAv7FwIQfhB/A0AgAiAVQQN0IhZqIAEgFmopAAAiBEI4hiAEQoD+A4NCKIaEIARCgID8B4NCGIYgBEKAgID4D4NCCIaEhCAEQgiIQoCAgPgPgyAEQhiIQoCA/AeDhCAEQiiIQoD+A4MgBEI4iISEhDcDACAVQQFqIhVBEEcNAAsgAyAAKQMANwMAIAMgACkDODcDOCADIAApAzA3AzAgAyAAKQMoNwMoIAMgACkDIDcDICADIAApAxg3AxggAyAAKQMQNwMQIAMgACkDCDcDCEEAIRYDQCADIAMpAzggAiAWQQN0IgFqIhUpAwAgAykDICIHQjKJIAdCLomFIAdCF4mFfCABQdCJAmopAwB8IAcgAykDMCILIAMpAygiCIWDIAuFfHwiBCADKQMYfCIKNwMYIAMgAykDACIFQiSJIAVCHomFIAVCGYmFIAR8IAMpAxAiCSADKQMIIgaEIAWDIAYgCYOEfCIENwM4IAMgCSACIAFBCHIiFGoiGikDACALIAggCiAHIAiFg4V8IApCMokgCkIuiYUgCkIXiYV8fCAUQdCJAmopAwB8Igt8Igk3AxAgAyAEIAUgBoSDIAUgBoOEIAt8IARCJIkgBEIeiYUgBEIZiYV8Igs3AzAgAyAIIAIgAUEQciIUaiIbKQMAfCAUQdCJAmopAwB8IAcgCSAHIAqFg4V8IAlCMokgCUIuiYUgCUIXiYV8IgwgCyAEIAWEgyAEIAWDhCALQiSJIAtCHomFIAtCGYmFfHwiCDcDKCADIAYgDHwiBjcDCCADIAcgAiABQRhyIhRqIhwpAwB8IBRB0IkCaikDAHwgBiAJIAqFgyAKhXwgBkIyiSAGQi6JhSAGQheJhXwiDCAIIAQgC4SDIAQgC4OEIAhCJIkgCEIeiYUgCEIZiYV8fCIHNwMgIAMgBSAMfCIFNwMAIAMgAiABQSByIhRqIh0pAwAgCnwgFEHQiQJqKQMAfCAFIAYgCYWDIAmFfCAFQjKJIAVCLomFIAVCF4mFfCIMIAcgCCALhIMgCCALg4QgB0IkiSAHQh6JhSAHQhmJhXx8Igo3AxggAyAEIAx8Igw3AzggAyACIAFBKHIiFGoiHikDACAJfCAUQdCJAmopAwB8IAwgBSAGhYMgBoV8IAxCMokgDEIuiYUgDEIXiYV8IgkgCiAHIAiEgyAHIAiDhCAKQiSJIApCHomFIApCGYmFfHwiBDcDECADIAkgC3wiCTcDMCADIAIgAUEwciIUaiIfKQMAIAZ8IBRB0IkCaikDAHwgCSAFIAyFgyAFhXwgCUIyiSAJQi6JhSAJQheJhXwiBiAEIAcgCoSDIAcgCoOEIARCJIkgBEIeiYUgBEIZiYV8fCILNwMIIAMgBiAIfCIGNwMoIAMgAiABQThyIhRqIiApAwAgBXwgFEHQiQJqKQMAfCAGIAkgDIWDIAyFfCAGQjKJIAZCLomFIAZCF4mFfCIFIAsgBCAKhIMgBCAKg4QgC0IkiSALQh6JhSALQhmJhXx8Igg3AwAgAyAFIAd8IgU3AyAgAyACIAFBwAByIhRqIiEpAwAgDHwgFEHQiQJqKQMAfCAFIAYgCYWDIAmFfCAFQjKJIAVCLomFIAVCF4mFfCIMIAggBCALhIMgBCALg4QgCEIkiSAIQh6JhSAIQhmJhXx8Igc3AzggAyAKIAx8Igw3AxggAyACIAFByAByIhRqIiIpAwAgCXwgFEHQiQJqKQMAfCAMIAUgBoWDIAaFfCAMQjKJIAxCLomFIAxCF4mFfCIJIAcgCCALhIMgCCALg4QgB0IkiSAHQh6JhSAHQhmJhXx8Igo3AzAgAyAEIAl8Igk3AxAgAyAGIAIgAUHQAHIiFGoiIykDAHwgFEHQiQJqKQMAfCAJIAUgDIWDIAWFfCAJQjKJIAlCLomFIAlCF4mFfCIGIAogByAIhIMgByAIg4QgCkIkiSAKQh6JhSAKQhmJhXx8IgQ3AyggAyAGIAt8IgY3AwggAyABQdgAciIUQdCJAmopAwAgAiAUaiIUKQMAfCAFfCAGIAkgDIWDIAyFfCAGQjKJIAZCLomFIAZCF4mFfCIFIAQgByAKhIMgByAKg4QgBEIkiSAEQh6JhSAEQhmJhXx8Igs3AyAgAyAFIAh8Igg3AwAgAyABQeAAciIXQdCJAmopAwAgAiAXaiIXKQMAfCAMfCAIIAYgCYWDIAmFfCAIQjKJIAhCLomFIAhCF4mFfCIMIAsgBCAKhIMgBCAKg4QgC0IkiSALQh6JhSALQhmJhXx8IgU3AxggAyAHIAx8Igc3AzggAyABQegAciIYQdCJAmopAwAgAiAYaiIYKQMAfCAJfCAHIAYgCIWDIAaFfCAHQjKJIAdCLomFIAdCF4mFfCIMIAUgBCALhIMgBCALg4QgBUIkiSAFQh6JhSAFQhmJhXx8Igk3AxAgAyAKIAx8Igo3AzAgAyABQfAAciIZQdCJAmopAwAgAiAZaiIZKQMAfCAGfCAKIAcgCIWDIAiFfCAKQjKJIApCLomFIApCF4mFfCIMIAkgBSALhIMgBSALg4QgCUIkiSAJQh6JhSAJQhmJhXx8IgY3AwggAyAEIAx8IgQ3AyggAyABQfgAciIBQdCJAmopAwAgASACaiIBKQMAfCAIfCAEIAcgCoWDIAeFfCAEQjKJIARCLomFIARCF4mFfCIEIAYgBSAJhIMgBSAJg4QgBkIkiSAGQh6JhSAGQhmJhXx8Igg3AwAgAyAEIAt8NwMgIBZBwABGRQRAIAIgFkEQaiIWQQN0aiAVKQMAICIpAwAiByAZKQMAIgRCLYkgBEIDiYUgBEIGiIV8fCAaKQMAIghCP4kgCEI4iYUgCEIHiIV8Igs3AwAgFSAIICMpAwAiCnwgASkDACIIQi2JIAhCA4mFIAhCBoiFfCAbKQMAIgZCP4kgBkI4iYUgBkIHiIV8IgU3A4gBIBUgBiAUKQMAIgl8IAtCLYkgC0IDiYUgC0IGiIV8IBwpAwAiDUI/iSANQjiJhSANQgeIhXwiBjcDkAEgFSANIBcpAwAiDHwgBUItiSAFQgOJhSAFQgaIhXwgHSkDACIOQj+JIA5COImFIA5CB4iFfCINNwOYASAVIA4gGCkDACISfCAGQi2JIAZCA4mFIAZCBoiFfCAeKQMAIg9CP4kgD0I4iYUgD0IHiIV8Ig43A6ABIBUgBCAPfCANQi2JIA1CA4mFIA1CBoiFfCAfKQMAIhBCP4kgEEI4iYUgEEIHiIV8Ig83A6gBIBUgCCAQfCAgKQMAIhFCP4kgEUI4iYUgEUIHiIV8IA5CLYkgDkIDiYUgDkIGiIV8IhA3A7ABIBUgISkDACITIAUgB0I/iSAHQjiJhSAHQgeIhXx8IBBCLYkgEEIDiYUgEEIGiIV8IgU3A8ABIBUgCyARfCATQj+JIBNCOImFIBNCB4iFfCAPQi2JIA9CA4mFIA9CBoiFfCIRNwO4ASAVIAogCUI/iSAJQjiJhSAJQgeIhXwgDXwgBUItiSAFQgOJhSAFQgaIhXwiDTcD0AEgFSAHIApCP4kgCkI4iYUgCkIHiIV8IAZ8IBFCLYkgEUIDiYUgEUIGiIV8Igc3A8gBIBUgDCASQj+JIBJCOImFIBJCB4iFfCAPfCANQi2JIA1CA4mFIA1CBoiFfCIKNwPgASAVIAkgDEI/iSAMQjiJhSAMQgeIhXwgDnwgB0ItiSAHQgOJhSAHQgaIhXwiBzcD2AEgFSAEIAhCP4kgCEI4iYUgCEIHiIV8IBF8IApCLYkgCkIDiYUgCkIGiIV8NwPwASAVIBIgBEI/iSAEQjiJhSAEQgeIhXwgEHwgB0ItiSAHQgOJhSAHQgaIhXwiBDcD6AEgFSAIIAtCP4kgC0I4iYUgC0IHiIV8IAV8IARCLYkgBEIDiYUgBEIGiIV8NwP4AQwBCwsgACAAKQMAIAh8NwMAIAAgACkDCCADKQMIfDcDCCAAIAApAxAgAykDEHw3AxAgACAAKQMYIAMpAxh8NwMYIAAgACkDICADKQMgfDcDICAAIAApAyggAykDKHw3AyggACAAKQMwIAMpAzB8NwMwIAAgACkDOCADKQM4fDcDOAsEAEEYC+cEARJ/QbLaiMsHIQNB7siBmQMhBEHl8MGLBiEFQfTKgdkGIQ4gASgADCEGIAEoAAghDyABKAAEIQcgAigAHCELIAIoABghDCACKAAUIRAgAigAECENIAIoAAwhCCACKAAIIQkgAigABCEKIAEoAAAhASACKAAAIQIDQCACIAEgAiAFaiIFc0EQdyIBIA1qIg1zQQx3IgIgBWoiBSABc0EIdyIBIA1qIg0gAnNBB3ciAiAIIAYgCCAOaiIOc0EQdyIGIAtqIgtzQQx3IgggDmoiEWoiDiAJIA8gAyAJaiIDc0EQdyIPIAxqIgxzQQx3IgkgA2oiAyAPc0EIdyISc0EQdyIPIAogByAEIApqIgRzQRB3IgcgEGoiEHNBDHciCiAEaiIEIAdzQQh3IgcgEGoiE2oiECACc0EMdyICIA5qIg4gD3NBCHciDyAQaiIQIAJzQQd3IQIgDSAHIAMgBiARc0EIdyIGIAtqIgsgCHNBB3ciCGoiA3NBEHciB2oiDSAIc0EMdyIIIANqIgMgB3NBCHciByANaiINIAhzQQd3IQggCyABIAQgDCASaiIMIAlzQQd3IglqIgRzQRB3IgFqIgsgCXNBDHciCSAEaiIEIAFzQQh3IgEgC2oiCyAJc0EHdyEJIAwgBiAFIAogE3NBB3ciCmoiBXNBEHciBmoiDCAKc0EMdyIKIAVqIgUgBnNBCHciBiAMaiIMIApzQQd3IQogFEEBaiIUQQpHDQALIAAgBTYAACAAIAY2ABwgACAPNgAYIAAgBzYAFCAAIAE2ABAgACAONgAMIAAgAzYACCAAIAQ2AAQLiy4BJX4gACABKQAoIiAgASkAaCIYIAEpAEAiGiABKQAgIhkgGCABKQB4IhwgASkAWCIhIAEpAFAiGyAgIAApABAgGSAAKQAwIh18fCIVfCAdIAApAFAgFYVC6/qG2r+19sEfhUIgiSIVQqvw0/Sv7ry3PHwiHoVCKIkiHXwiFiAVhUIwiSIGIB58IgQgHYVCAYkiFyABKQAYIh0gACkACCIlIAEpABAiFSAAKQAoIh58fCIifCAAKQBIICKFQp/Y+dnCkdqCm3+FQiCJIgNCxbHV2aevlMzEAH0iBSAehUIoiSICfCIHfHwiI3wgFyAjIAEpAAgiHiAAKQAAIiYgASkAACIiIAApACAiJHx8Ih98ICQgAEFAaykAACAfhULRhZrv+s+Uh9EAhUIgiSIfQoiS853/zPmE6gB8IgiFQiiJIgt8IgwgH4VCMIkiCYVCIIkiHyABKQA4IiMgACkAGCABKQAwIiQgACkAOCIKfHwiDXwgCiAAKQBYIA2FQvnC+JuRo7Pw2wCFQiCJIg1Cj5KLh9rYgtjaAH0iDoVCKIkiCnwiECANhUIwiSINIA58Ig58IhGFQiiJIhd8IhIgH4VCMIkiEyARfCIRIBeFQgGJIhQgASkASCIXfCAYIAEpAGAiHyAWIAogDoVCAYkiCnx8IhZ8IBYgAyAHhUIwiSIDhUIgiSIHIAggCXwiCHwiCSAKhUIoiSIKfCIOfCIPfCAPIBwgASkAcCIWIBAgCCALhUIBiSIIfHwiC3wgBiALhUIgiSIGIAMgBXwiA3wiBSAIhUIoiSIIfCILIAaFQjCJIgaFQiCJIhAgFyAaIAIgA4VCAYkiAyAMfHwiAnwgAyAEIAIgDYVCIIkiAnwiBIVCKIkiA3wiDCAChUIwiSICIAR8IgR8Ig0gFIVCKIkiFHwiDyAhfCALIBggByAOhUIwiSIHIAl8IgkgCoVCAYkiCnx8IgsgJHwgCiACIAuFQiCJIgIgEXwiC4VCKIkiCnwiDiAChUIwiSICIAt8IgsgCoVCAYkiCnwiESAjfCAKIAUgBnwiBiAIhUIBiSIFIAwgFnx8IgggG3wgBSAIIBOFQiCJIgggCXwiDIVCKIkiBXwiCSAIhUIwiSIIIAx8IgwgESAaIBkgAyAEhUIBiSIEfCASfCIDfCAEIAYgAyAHhUIgiSIDfCIGhUIoiSIEfCIHIAOFQjCJIgOFQiCJIhF8IhKFQiiJIgp8IhMgEYVCMIkiESASfCISIAqFQgGJIgogHHwgHSAgIAUgDIVCAYkiBSAOfHwiDHwgBSAMIA8gEIVCMIkiDoVCIIkiDCADIAZ8IgZ8IgOFQiiJIgV8IhB8Ig8gBCAGhUIBiSIGIB58IAl8IgQgH3wgBiACIASFQiCJIgQgDSAOfCICfCIJhUIoiSIGfCINIASFQjCJIgSFQiCJIg4gFSACIBSFQgGJIgIgB3wgInwiB3wgAiAHIAiFQiCJIgcgC3wiCIVCKIkiAnwiCyAHhUIwiSIHIAh8Igh8IhQgCoVCKIkiCiAPfHwiDyAaIAUgAyAMIBCFQjCJIgV8IgOFQgGJIgwgDSAhfHwiDXwgDCAHIA2FQiCJIgcgEnwiDIVCKIkiDXwiECAHhUIwiSIHIAx8IgwgDYVCAYkiDXwgF3wiEnwgDSASICAgAiAIhUIBiSICIBN8fCIIIBV8IAIgBSAIhUIgiSIFIAQgCXwiBHwiCIVCKIkiAnwiCSAFhUIwiSIFhUIgiSISIAQgBoVCAYkiBiAffCALfCIEICJ8IAYgAyAEIBGFQiCJIgR8IgOFQiiJIgZ8IgsgBIVCMIkiBCADfCIDfCIRhUIoiSINfCITIB4gCSAKIA4gD4VCMIkiCiAUfCIOhUIBiSIUfCAjfCIJfCAEIAmFQiCJIgQgDHwiDCAUhUIoiSIJfCIUIASFQjCJIgQgDHwiDCAJhUIBiSIJfCAhfCIPIBZ8IAkgDyAWIBAgAyAGhUIBiSIGfCAbfCIDfCAGIAMgCoVCIIkiBiAFIAh8IgN8IgWFQiiJIgh8IgkgBoVCMIkiBoVCIIkiCiAOIAcgAiADhUIBiSIDIAsgHXx8IgKFQiCJIgd8IgsgA4VCKIkiAyACfCAkfCICIAeFQjCJIgcgC3wiC3wiDoVCKIkiEHwiDyANIBEgEiAThUIwiSINfCIRhUIBiSISIAkgI3x8IgkgF3wgByAJhUIgiSIHIAx8IgwgEoVCKIkiCXwiEiAHhUIwiSIHIAx8IgwgCYVCAYkiCXwgHHwiE3wgCSATIA0gGCADIAuFQgGJIgN8IBR8IguFQiCJIg0gBSAGfCIGfCIFIAOFQiiJIgMgC3wgH3wiCyANhUIwiSINhUIgiSITIB4gBiAIhUIBiSIGIB18IAJ8IgJ8IAYgESACIASFQiCJIgR8IgKFQiiJIgZ8IgggBIVCMIkiBCACfCICfCIRhUIoiSIJfCIUIAwgBCAKIA+FQjCJIgogDnwiDiAQhUIBiSIQIAsgGXx8IguFQiCJIgR8IgwgEIVCKIkiECALfCAifCILIASFQjCJIgQgDHwiDCAQhUIBiSIQfCAbfCIPIBx8IBAgDyASIAIgBoVCAYkiBnwgFXwiAiAkfCAGIAIgCoVCIIkiAiAFIA18IgV8IgqFQiiJIgZ8Ig0gAoVCMIkiAoVCIIkiEiAgIAMgBYVCAYkiAyAIfHwiBSAbfCADIAUgB4VCIIkiBSAOfCIHhUIoiSIDfCIIIAWFQjCJIgUgB3wiB3wiDoVCKIkiEHwiDyAJIBMgFIVCMIkiCSARfCIRhUIBiSITIA0gF3x8Ig0gInwgBSANhUIgiSIFIAx8IgwgE4VCKIkiDXwiEyAFhUIwiSIFIAx8IgwgDYVCAYkiDXwgHXwiFHwgDSAUIAMgB4VCAYkiAyAVfCALfCIHIBl8IAMgByAJhUIgiSIHIAIgCnwiAnwiC4VCKIkiA3wiCSAHhUIwiSIHhUIgiSIKICAgAiAGhUIBiSIGfCAIfCICICN8IAYgESACIASFQiCJIgR8IgKFQiiJIgZ8IgggBIVCMIkiBCACfCICfCINhUIoiSIRfCIUIAqFQjCJIgogAyAHIAt8IgOFQgGJIgcgCCAhfHwiCCAffCAHIA8gEoVCMIkiCyAOfCIOIAUgCIVCIIkiBXwiCIVCKIkiB3wiEiAFhUIwiSIFIAh8IgggB4VCAYkiByAifCAJIA4gEIVCAYkiCXwgJHwiDiAafCAJIAQgDoVCIIkiBCAMfCIMhUIoiSIJfCIOfCIQhUIgiSIPIB4gEyACIAaFQgGJIgZ8IBZ8IgJ8IAYgAyACIAuFQiCJIgZ8IgOFQiiJIgJ8IgsgBoVCMIkiBiADfCIDfCITIAeFQiiJIgcgEHwgIXwiECAPhUIwiSIPIBN8IhMgB4VCAYkiByACIAOFQgGJIgMgEnwgJHwiAiAbfCADIAogDXwiCiAEIA6FQjCJIgQgAoVCIIkiAnwiDYVCKIkiA3wiDnwgI3wiEnwgByASIAogEYVCAYkiCiALIBV8fCILIB98IAogBSALhUIgiSIFIAQgDHwiBHwiC4VCKIkiDHwiCiAFhUIwiSIFhUIgiSIRIAQgCYVCAYkiBCAafCAUfCIJIB18IAQgBiAJhUIgiSIGIAh8IgiFQiiJIgR8IgkgBoVCMIkiBiAIfCIIfCIShUIoiSIHfCIUIBGFQjCJIhEgEnwiEiAHhUIBiSIHIAogAyACIA6FQjCJIgMgDXwiAoVCAYkiDXwgGXwiCiAYfCAGIAqFQiCJIgYgE3wiCiANhUIoiSINfCIOIAaFQjCJIgYgCnwiCiACIA8gBSALfCIFIAyFQgGJIgIgCSAefHwiC4VCIIkiDHwiCSAChUIoiSICIAt8IBd8IgsgDIVCMIkiDCAQIAQgCIVCAYkiBHwgHHwiCCAWfCAEIAUgAyAIhUIgiSIDfCIFhUIoiSIEfCIIIAcgFnx8IgeFQiCJIhB8IhOFQiiJIg8gEyAQIA8gGHwgB3wiB4VCMIkiEHwiE4VCAYkiDyASIAYgGSAEIAMgCIVCMIkiBCAFfCIDhUIBiSIFfCALfCIIhUIgiSIGfCILIAYgBSALhUIoiSIFIBt8IAh8IgiFQjCJIgZ8IgsgAiAJIAx8IgyFQgGJIgIgDiAffHwiCSARhUIgiSIOIAMgDnwiAyAChUIoiSICICB8IAl8IgmFQjCJIg4gCiANhUIBiSIKIAwgBCAKIB58IBR8IgqFQiCJIgR8IgyFQiiJIg0gHHwgCnwiCiAPICR8fCIRhUIgiSISfCIUhUIoiSIPIBQgEiAPIB18IBF8IhGFQjCJIhJ8IhSFQgGJIg8gEyAGIAkgIiANIAwgBCAKhUIwiSIEfCIMhUIBiSIJfHwiCoVCIIkiBnwiDSAGIAkgDYVCKIkiCSAjfCAKfCIKhUIwiSIGfCINIBAgCCAaIAIgAyAOfCIDhUIBiSICfHwiCIVCIIkiDiAIIAIgDCAOfCIIhUIoiSICICF8fCIMhUIwiSIOIAUgC4VCAYkiBSADIAQgBSAXfCAHfCIFhUIgiSIEfCIDhUIoiSIHIBV8IAV8IgUgDyAffHwiC4VCIIkiEHwiE4VCKIkiDyATIBAgDyAefCALfCILhUIwiSIQfCIThUIBiSIPIBQgBiAdIAcgAyAEIAWFQjCJIgR8IgOFQgGJIgV8IAx8IgeFQiCJIgZ8IgwgBiAFIAyFQiiJIgUgF3wgB3wiB4VCMIkiBnwiDCASIAIgCCAOfCIIhUIBiSICIBh8IAp8IgqFQiCJIg4gAiADIA58IgOFQiiJIgIgIXwgCnwiCoVCMIkiDiAJIA2FQgGJIgkgCCAEIAkgI3wgEXwiCYVCIIkiBHwiCIVCKIkiDSAWfCAJfCIJIA8gHHx8IhGFQiCJIhJ8IhSFQiiJIg8gFCASIA8gGXwgEXwiEYVCMIkiEnwiFIVCAYkiDyATIAYgICANIAggBCAJhUIwiSIEfCIIhUIBiSIJfCAKfCIKhUIgiSIGfCINIAYgCSANhUIoiSIJICJ8IAp8IgqFQjCJIgZ8Ig0gECAVIAIgAyAOfCIDhUIBiSICfCAHfCIHhUIgiSIOIAcgAiAIIA58IgeFQiiJIgIgG3x8IgiFQjCJIg4gBSAMhUIBiSIFIAMgBCAFIBp8IAt8IgWFQiCJIgR8IgOFQiiJIgsgJHwgBXwiBSAPICF8fCIMhUIgiSIQfCIThUIoiSIPIBMgECAPIB18IAx8IgyFQjCJIhB8IhOFQgGJIg8gFCAGICIgCyADIAQgBYVCMIkiBHwiA4VCAYkiBXwgCHwiCIVCIIkiBnwiCyAGIAUgC4VCKIkiBSAafCAIfCIIhUIwiSIGfCILIBIgAiAHIA58IgeFQgGJIgIgJHwgCnwiCoVCIIkiDiACIAMgDnwiA4VCKIkiAiAcfCAKfCIKhUIwiSIOIAkgDYVCAYkiCSAHIAQgCSAWfCARfCIJhUIgiSIEfCIHhUIoiSINIBd8IAl8IgkgDyAYfHwiEYVCIIkiEnwiFIVCKIkiDyAUIBIgDyAjfCARfCIRhUIwiSISfCIUhUIBiSIPIBMgBiAfIA0gByAEIAmFQjCJIgR8IgeFQgGJIgl8IAp8IgqFQiCJIgZ8Ig0gBiAJIA2FQiiJIgkgFXwgCnwiCoVCMIkiBnwiDSAQIBsgAiADIA58IgOFQgGJIgJ8IAh8IgiFQiCJIg4gAiAHIA58IgeFQiiJIgIgIHwgCHwiCIVCMIkiDiAFIAuFQgGJIgUgAyAEIAUgHnwgDHwiBYVCIIkiBHwiA4VCKIkiCyAZfCAFfCIFIA8gI3x8IgyFQiCJIhB8IhOFQiiJIg8gEyAQIA8gJHwgDHwiDIVCMIkiEHwiE4VCAYkiDyAUIAYgHiALIAMgBCAFhUIwiSIEfCIDhUIBiSIFfCAIfCIIhUIgiSIGfCILIAYgBSALhUIoiSIFICB8IAh8IgiFQjCJIgZ8IgsgEiACIAcgDnwiB4VCAYkiAiAbfCAKfCIKhUIgiSIOIAIgAyAOfCIDhUIoiSICIBV8IAp8IgqFQjCJIg4gCSANhUIBiSIJIAcgBCAJIBp8IBF8IgmFQiCJIgR8IgeFQiiJIg0gGXwgCXwiCSAPIBd8fCIRhUIgiSISfCIUhUIoiSIPIBQgEiAPIBZ8IBF8IhGFQjCJIhJ8IhSFQgGJIg8gEyAGIBwgDSAHIAQgCYVCMIkiBHwiB4VCAYkiCXwgCnwiCoVCIIkiBnwiDSAGIAkgDYVCKIkiCSAhfCAKfCIKhUIwiSIGfCINIBAgGCACIAMgDnwiA4VCAYkiAnwgCHwiCIVCIIkiDiACIAcgDnwiB4VCKIkiAiAifCAIfCIIhUIwiSIOIAUgC4VCAYkiBSADIAQgBSAdfCAMfCIFhUIgiSIEfCIDhUIoiSILIB98IAV8IgUgDyAZfHwiDIVCIIkiEHwiE4VCKIkiDyATIBAgDyAgfCAMfCIMhUIwiSIQfCIThUIBiSIPIBQgBiAkIAsgAyAEIAWFQjCJIgR8IgOFQgGJIgV8IAh8IgiFQiCJIgZ8IgsgBiAFIAuFQiiJIgUgI3wgCHwiCIVCMIkiBnwiCyASIAIgByAOfCIHhUIBiSICICJ8IAp8IgqFQiCJIg4gAiADIA58IgOFQiiJIgIgHnwgCnwiCoVCMIkiDiAJIA2FQgGJIgkgByAEIAkgFXwgEXwiCYVCIIkiBHwiB4VCKIkiDSAdfCAJfCIJIA8gG3x8IhGFQiCJIhJ8IhSFQiiJIg8gFCASIA8gIXwgEXwiEYVCMIkiEnwiFIVCAYkiDyATIAYgGiANIAcgBCAJhUIwiSIEfCIHhUIBiSIJfCAKfCIKhUIgiSIGfCINIAYgCSANhUIoiSIJIBd8IAp8IgqFQjCJIgZ8Ig0gECAWIAIgAyAOfCIDhUIBiSICfCAIfCIIhUIgiSIOIAIgByAOfCIHhUIoiSICIBx8IAh8IgiFQjCJIg4gBSALhUIBiSIFIAMgBCAFIB98IAx8IgWFQiCJIgR8IgOFQiiJIgsgGHwgBXwiBSAPIBd8fCIXhUIgiSIMfCIQhUIoiSITIBAgDCATIBx8IBd8IhyFQjCJIhd8IgyFQgGJIhAgFCAGIBggCyADIAQgBYVCMIkiBHwiA4VCAYkiBXwgCHwiGIVCIIkiBnwiCCAGIBggJCAFIAiFQiiJIiR8fCIYhUIwiSIGfCIFIBIgFiACIAcgDnwiB4VCAYkiAnwgCnwiFoVCIIkiCCAWIBsgAiADIAh8IhaFQiiJIgN8fCIbhUIwiSICIBogCSANhUIBiSIIIAcgBCAIIBl8IBF8IhmFQiCJIgR8IgeFQiiJIgh8IBl8IhogECAifHwiGYVCIIkiInwiC4VCKIkiCSAVfCAZfCIZICWFIAcgBCAahUIwiSIafCIVIBcgGCAgIAMgAiAWfCIYhUIBiSIWfHwiIIVCIIkiF3wiBCAXICAgHSAEIBaFQiiJIh18fCIghUIwiSIXfCIWhTcACCAAIBggGiAcICEgBSAkhUIBiSIcfHwiIYVCIIkiGnwiGCAaICMgGCAchUIoiSIYfCAhfCIchUIwiSIafCIhICYgHyAIIBWFQgGJIhUgDCAGIBUgHnwgG3wiG4VCIIkiFXwiHoVCKIkiI3wgG3wiG4WFNwAAIAAgHiAVIBuFQjCJIht8IhUgHCAAKQAQhYU3ABAgACAZICKFQjCJIhkgACkAICAWIB2FQgGJhYU3ACAgACALIBl8IhkgICAAKQAYhYU3ABggACAAKQAoIBUgI4VCAYmFIBqFNwAoIAAgACkAOCAYICGFQgGJhSAbhTcAOCAAIAApADAgCSAZhUIBiYUgF4U3ADALvQUBH39B5fDBiwYhBCACKAAAIhUhBSACKAAEIhYhByACKAAIIhchCCACKAAMIhghCUHuyIGZAyEOIAEoAAAiGSEKIAEoAAQiGiELIAEoAAgiGyENIAEoAAwiHCEQQbLaiMsHIQEgAigAECIdIQNB9MqB2QYhBiACKAAcIh4hESACKAAYIh8hDyACKAAUIiAhAgNAIA8gECAFIA5qQQd3cyIMIA5qQQl3cyISIAIgBGpBB3cgCXMiCSAEakEJdyANcyITIAlqQQ13IAJzIiEgAyAGakEHdyAIcyIIIAZqQQl3IAtzIgsgCGpBDXcgA3MiDSALakESdyAGcyIGIBEgASAKakEHd3MiA2pBB3dzIgIgBmpBCXdzIg8gAmpBDXcgA3MiESAPakESdyAGcyEGIAMgASADakEJdyAHcyIHakENdyAKcyIKIAdqQRJ3IAFzIgEgDGpBB3cgDXMiAyABakEJdyATcyINIANqQQ13IAxzIhAgDWpBEncgAXMhASASIAwgEmpBDXcgBXMiDGpBEncgDnMiBSAJakEHdyAKcyIKIAVqQQl3IAtzIgsgCmpBDXcgCXMiCSALakESdyAFcyEOIBMgIWpBEncgBHMiBCAIakEHdyAMcyIFIARqQQl3IAdzIgcgBWpBDXcgCHMiCCAHakESdyAEcyEEIBRBEkkhDCAUQQJqIRQgDA0ACyAAIAZB9MqB2QZqNgA8IAAgESAeajYAOCAAIA8gH2o2ADQgACACICBqNgAwIAAgAyAdajYALCAAIAFBstqIywdqNgAoIAAgECAcajYAJCAAIA0gG2o2ACAgACALIBpqNgAcIAAgCiAZajYAGCAAIA5B7siBmQNqNgAUIAAgCSAYajYAECAAIAggF2o2AAwgACAHIBZqNgAIIAAgBSAVajYABCAAIARB5fDBiwZqNgAAC8QHAgp/BH4jAEHgA2siAiQAA0AgAkGgAmoiBSADQQF0aiIGIAEgA2otAAAiCEEEdjoAASAGIAhBD3E6AAAgA0EBciIGQQF0IAVqIgggASAGai0AACIGQQR2OgABIAggBkEPcToAACADQQJqIgNBIEcNAAtBACEBA0AgAkGgAmogBGoiAyADLQAAIAFqIgEgAUEIaiIBQfABcWs6AAAgAyADLQABIAHAQQR1aiIBIAFBCGoiAUHwAXFrOgABIAMgAy0AAiABwEEEdWoiASABQQhqIgFB8AFxazoAAiABwEEEdSEBIARBA2oiBEE/Rw0ACyACIAItAN8CIAFqOgDfAiAAQgA3AiAgAEIANwIYIABCADcCECAAQgA3AgggAEIANwIAIABCADcCLCAAQShqIghBATYCACAAQgA3AjQgAEIANwI8IABCADcCRCAAQoCAgIAQNwJMIABB1ABqQQBBzAAQCBogAEH4AGohCiAAQdAAaiELIAJB0AFqIQEgAkGoAWohBiACQfgBaiEEQQEhAwNAIAJBCGoiByADQQF2IAJBoAJqIANqLAAAEEcgAkGAAWoiBSAAIAcQOCAAIAUgBBAGIAggBiABEAYgCyABIAQQBiAKIAUgBhAGIANBPkkhByADQQJqIQMgBw0ACyAAKQIIIQwgACkCECENIAApAhghDiAAKQIAIQ8gAiAAKQIgNwOIAyACIA43A4ADIAIgDTcD+AIgAiAMNwPwAiACIA83A+gCIAApAighDCAAKQIwIQ0gACkCOCEOIABBQGspAgAhDyACIAApAkg3A7ADIAIgDzcDqAMgAiAONwOgAyACIA03A5gDIAIgDDcDkAMgACkCUCEMIAApAlghDSAAKQJgIQ4gACkCaCEPIAIgACkCcDcD2AMgAiAPNwPQAyACIA43A8gDIAIgDTcDwAMgAiAMNwO4AyACQYABaiIFIAJB6AJqIgkQFSAJIAUgBBAGIAJBkANqIgMgBiABEAYgAkG4A2oiByABIAQQBiAFIAkQFSAJIAUgBBAGIAMgBiABEAYgByABIAQQBiAFIAkQFSAJIAUgBBAGIAMgBiABEAYgByABIAQQBiAFIAkQFSAAIAUgBBAGIAggBiABEAYgCyABIAQQBiAKIAUgBhAGQQAhAwNAIAJBCGoiByADQQF2IAJBoAJqIANqLAAAEEcgAkGAAWoiBSAAIAcQOCAAIAUgBBAGIAggBiABEAYgCyABIAQQBiAKIAUgBhAGIANBPkkhByADQQJqIQMgBw0ACyACQeADaiQAC2IBA38jAEGwAWsiAiQAIAJB4ABqIgMgAUHQAGoQLCACQTBqIgQgASADEAYgAiABQShqIAMQBiAAIAIQEiACQZABaiAEEBIgACAALQAfIAItAJABQQd0czoAHyACQbABaiQAC8oIAQN/IwBBwAFrIgIkACACQZABaiIEIAEQBSACQeAAaiIDIAQQBSADIAMQBSADIAEgAxAGIAQgBCADEAYgAkEwaiIBIAQQBSADIAMgARAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSABIAIgARAGIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBUEBIQEDQCACIAIQBSABQQFqIgFB5ABHDQALIAJBMGoiASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSACQeAAaiIDIAEgAxAGIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAAgAyACQZABahAGIAJBwAFqJAAL7wMBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBCACIAIoAgQgAigCDC0AACACKAIILQAAc3I2AgQgAiACKAIEIAIoAgwtAAEgAigCCC0AAXNyNgIEIAIgAigCBCACKAIMLQACIAIoAggtAAJzcjYCBCACIAIoAgQgAigCDC0AAyACKAIILQADc3I2AgQgAiACKAIEIAIoAgwtAAQgAigCCC0ABHNyNgIEIAIgAigCBCACKAIMLQAFIAIoAggtAAVzcjYCBCACIAIoAgQgAigCDC0ABiACKAIILQAGc3I2AgQgAiACKAIEIAIoAgwtAAcgAigCCC0AB3NyNgIEIAIgAigCBCACKAIMLQAIIAIoAggtAAhzcjYCBCACIAIoAgQgAigCDC0ACSACKAIILQAJc3I2AgQgAiACKAIEIAIoAgwtAAogAigCCC0ACnNyNgIEIAIgAigCBCACKAIMLQALIAIoAggtAAtzcjYCBCACIAIoAgQgAigCDC0ADCACKAIILQAMc3I2AgQgAiACKAIEIAIoAgwtAA0gAigCCC0ADXNyNgIEIAIgAigCBCACKAIMLQAOIAIoAggtAA5zcjYCBCACIAIoAgQgAigCDC0ADyACKAIILQAPc3I2AgQgAigCBEEBa0EIdkEBcUEBawsEAEEAC6IJATF/IwBBQGohCSAAKAI8IR0gACgCOCEeIAAoAjQhEiAAKAIwIRMgACgCLCEfIAAoAighICAAKAIkISEgACgCICEiIAAoAhwhIyAAKAIYISQgACgCFCElIAAoAhAhJiAAKAIMIScgACgCCCEoIAAoAgQhKSAAKAIAISoDQAJAIANCP1YEQCACIQUMAQsgCUIANwM4IAlCADcDMCAJQgA3AyggCUIANwMgIAlCADcDGCAJQgA3AxAgCUIANwMIIAlCADcDAEEAIQQgA0IAUgRAA0AgBCAJaiABIARqLQAAOgAAIAMgBEEBaiIErVYNAAsLIAkiBSEBIAIhKwtBFCEWICohCCApIQogKCEOICchFCAmIQQgJSECICQhBiAjIQcgIiELICEhDyAgIQwgHSEQIB4hFyASIRggEyENIB8hEQNAIAQgBCAIaiIEIA1zQRB3IgggC2oiC3NBDHciDSAEaiIVIAhzQQh3IgggC2oiCyANc0EHdyIEIAcgByAUaiIHIBBzQRB3IhAgEWoiDXNBDHciESAHaiIHaiIUIAYgBiAOaiIGIBdzQRB3Ig4gDGoiDHNBDHciGSAGaiIGIA5zQQh3IhpzQRB3Ig4gAiACIApqIgIgGHNBEHciCiAPaiIPc0EMdyIbIAJqIgIgCnNBCHciCiAPaiIcaiIPIARzQQx3IgQgFGoiFCAOc0EIdyIXIA9qIg8gBHNBB3chBCALIAogBiAHIBBzQQh3IhAgDWoiBiARc0EHdyIHaiIKc0EQdyILaiINIAdzQQx3IgcgCmoiDiALc0EIdyIYIA1qIgsgB3NBB3chByAGIAggAiAMIBpqIgIgGXNBB3ciBmoiCHNBEHciDGoiESAGc0EMdyIGIAhqIgogDHNBCHciDSARaiIRIAZzQQd3IQYgAiAbIBxzQQd3IgIgFWoiCCAQc0EQdyIMaiIVIAJzQQx3IgIgCGoiCCAMc0EIdyIQIBVqIgwgAnNBB3chAiAWQQJrIhYNAAsgASgABCEWIAEoAAghFSABKAAMIRkgASgAECEaIAEoABQhGyABKAAYIRwgASgAHCEsIAEoACAhLSABKAAkIS4gASgAKCEvIAEoACwhMCABKAAwITEgASgANCEyIAEoADghMyABKAA8ITQgBSABKAAAIAggKmpzNgAAIAUgNCAQIB1qczYAPCAFIDMgFyAeanM2ADggBSAyIBIgGGpzNgA0IAUgMSANIBNqczYAMCAFIDAgESAfanM2ACwgBSAvIAwgIGpzNgAoIAUgLiAPICFqczYAJCAFIC0gCyAianM2ACAgBSAsIAcgI2pzNgAcIAUgHCAGICRqczYAGCAFIBsgAiAlanM2ABQgBSAaIAQgJmpzNgAQIAUgGSAUICdqczYADCAFIBUgDiAoanM2AAggBSAWIAogKWpzNgAEIBIgE0EBaiITRWohEiADQsAAWARAAkAgA0I/Vg0AIAOnIgFFDQBBACEEA0AgBCAraiAEIAVqLQAAOgAAIARBAWoiBCABSQ0ACwsgACASNgI0IAAgEzYCMAUgAUFAayEBIAVBQGshAiADQkB8IQMMAQsLC8QCAgJ/AX4jAEHgAGsiBiQAIAYgBCAFED4aIAZBIGoiB0IgIARBEGoiBSAGQdCQAigCABEMABpBfyEEAkACQCACIAEgAyAHQbiQAigCABESAA0AQQAhBCAARQ0BAkAgACABSSABIABrrSADVHFFBEAgACABTQ0BIAAgAWutIANaDQELIAAgASADpxAkIQELAkBCICADIANCIFobIghQBEAgBkEgaiICIAIgCEIgfCAFQgAgBkHUkAIoAgARCQAaDAELIAZBQGsgASAIpyICEAshBCAGQSBqIgcgByAIQiB8IAVCACAGQdSQAigCABEJABogACAEIAIQCxoLIAZBIGpBwAAQB0EAIQQgA0IhVA0AIAAgCKciAmogASACaiADIAh9IAVCASAGQdSQAigCABEJABoLIAZBIBAHCyAGQeAAaiQAIAQL4ScCJ38DfiMAQdAEayIPJABBfyELIABBIGohCUEgIQVBASEMA0AgBUEBayIHQfAUai0AACIKIAcgCWotAAAiB3NBAWtBCHUgDHEiCCAJIAVBAmsiBWotAAAiDSAFQfAUai0AACIOa0EIdXEgByAKa0EIdiAMcSAGckH/AXFyIQYgDSAOc0EBa0EIdSAIcSEMIAUNAAsCQCAGQf8BcUUNACAAEDcNACADLQAfQX9zQf8AcSADLQABIAMtAAIgAy0AAyADLQAEIAMtAAUgAy0ABiADLQAHIAMtAAggAy0ACSADLQAKIAMtAAsgAy0ADCADLQANIAMtAA4gAy0ADyADLQAQIAMtABEgAy0AEiADLQATIAMtABQgAy0AFSADLQAWIAMtABcgAy0AGCADLQAZIAMtABogAy0AGyADLQAcIAMtAB4gAy0AHXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxQf8Bc3JBAWtB7AEgAy0AAGtxQX9zQQh2QQFxRQ0AIAMQNw0AIA9BgAFqIAMQSQ0AIA9BgANqIgUQGSAEBEAgBUHQjwJCIhAMGgsgBSAAQiAQDBogBSADQiAQDBogBSABIAIQDBogBSAPQcACaiIBEBMgARA2IA9BCGohDCABIQQgD0GAAWohC0EAIQNBACEBIwBB4BFrIgUkAANAIAVB4A9qIgYgA2ogBCADQQN2aiIHLQAAIANBBnF2QQFxOgAAIAYgA0EBciIKaiAHLQAAIApBB3F2QQFxOgAAIANBAmoiA0GAAkcNAAsDQCABIgRBAWohAQJAIAQgBUHgD2pqIgYtAABFDQAgBEH+AUsNAAJAIAVB4A9qIAFqIgMsAAAiB0UNACAHQQF0IgcgBiwAACIKaiIIQQ9MBEAgBiAIOgAAIANBADoAAAwBCyAKIAdrIgNBcUgNASAGIAM6AAAgASEDA0AgBUHgD2ogA2oiBy0AAEUEQCAHQQE6AAAMAgsgB0EAOgAAIANB/wFJIQcgA0EBaiEDIAcNAAsLIARB/QFLDQACQCAEQQJqIgMgBUHgD2pqIgcsAAAiCkUNACAKQQJ0IgogBiwAACIIaiINQRBOBEAgCCAKayIHQXFIDQIgBiAHOgAAA0AgBUHgD2ogA2oiBy0AAARAIAdBADoAACADQf8BSSEHIANBAWohAyAHDQEMAwsLIAdBAToAAAwBCyAGIA06AAAgB0EAOgAACyAEQfwBSw0AAkAgBEEDaiIDIAVB4A9qaiIHLAAAIgpFDQAgCkEDdCIKIAYsAAAiCGoiDUEQTgRAIAggCmsiB0FxSA0CIAYgBzoAAANAIAVB4A9qIANqIgctAAAEQCAHQQA6AAAgA0H/AUkhByADQQFqIQMgBw0BDAMLCyAHQQE6AAAMAQsgBiANOgAAIAdBADoAAAsgBEH7AUsNAAJAIARBBGoiAyAFQeAPamoiBywAACIKRQ0AIApBBHQiCiAGLAAAIghqIg1BEE4EQCAIIAprIgdBcUgNAiAGIAc6AAADQCAFQeAPaiADaiIHLQAABEAgB0EAOgAAIANB/wFJIQcgA0EBaiEDIAcNAQwDCwsgB0EBOgAADAELIAYgDToAACAHQQA6AAALIARB+gFLDQACQCAEQQVqIgMgBUHgD2pqIgcsAAAiCkUNACAKQQV0IgogBiwAACIIaiINQRBOBEAgCCAKayIHQXFIDQIgBiAHOgAAA0AgBUHgD2ogA2oiBy0AAARAIAdBADoAACADQf8BSSEHIANBAWohAyAHDQEMAwsLIAdBAToAAAwBCyAGIA06AAAgB0EAOgAACyAEQfkBSw0AIARBBmoiAyAFQeAPamoiBCwAACIHRQ0AIAdBBnQiByAGLAAAIgpqIghBEE4EQCAKIAdrIgRBcUgNASAGIAQ6AAADQCAFQeAPaiADaiIELQAABEAgBEEAOgAAIANB/wFJIQQgA0EBaiEDIAQNAQwDCwsgBEEBOgAADAELIAYgCDoAACAEQQA6AAALIAFBgAJHDQALQQAhAwNAIAVB4A1qIgEgA2ogCSADQQN2aiIELQAAIANBBnF2QQFxOgAAIAEgA0EBciIGaiAELQAAIAZBB3F2QQFxOgAAIANBAmoiA0GAAkcNAAtBACEBA0AgASIEQQFqIQECQCAEIAVB4A1qaiIJLQAARQ0AIARB/gFLDQACQCAFQeANaiABaiIDLAAAIgZFDQAgBkEBdCIGIAksAAAiB2oiCkEPTARAIAkgCjoAACADQQA6AAAMAQsgByAGayIDQXFIDQEgCSADOgAAIAEhAwNAIAVB4A1qIANqIgYtAABFBEAgBkEBOgAADAILIAZBADoAACADQf8BSSEGIANBAWohAyAGDQALCyAEQf0BSw0AAkAgBEECaiIDIAVB4A1qaiIGLAAAIgdFDQAgB0ECdCIHIAksAAAiCmoiCEEQTgRAIAogB2siBkFxSA0CIAkgBjoAAANAIAVB4A1qIANqIgYtAAAEQCAGQQA6AAAgA0H/AUkhBiADQQFqIQMgBg0BDAMLCyAGQQE6AAAMAQsgCSAIOgAAIAZBADoAAAsgBEH8AUsNAAJAIARBA2oiAyAFQeANamoiBiwAACIHRQ0AIAdBA3QiByAJLAAAIgpqIghBEE4EQCAKIAdrIgZBcUgNAiAJIAY6AAADQCAFQeANaiADaiIGLQAABEAgBkEAOgAAIANB/wFJIQYgA0EBaiEDIAYNAQwDCwsgBkEBOgAADAELIAkgCDoAACAGQQA6AAALIARB+wFLDQACQCAEQQRqIgMgBUHgDWpqIgYsAAAiB0UNACAHQQR0IgcgCSwAACIKaiIIQRBOBEAgCiAHayIGQXFIDQIgCSAGOgAAA0AgBUHgDWogA2oiBi0AAARAIAZBADoAACADQf8BSSEGIANBAWohAyAGDQEMAwsLIAZBAToAAAwBCyAJIAg6AAAgBkEAOgAACyAEQfoBSw0AAkAgBEEFaiIDIAVB4A1qaiIGLAAAIgdFDQAgB0EFdCIHIAksAAAiCmoiCEEQTgRAIAogB2siBkFxSA0CIAkgBjoAAANAIAVB4A1qIANqIgYtAAAEQCAGQQA6AAAgA0H/AUkhBiADQQFqIQMgBg0BDAMLCyAGQQE6AAAMAQsgCSAIOgAAIAZBADoAAAsgBEH5AUsNACAEQQZqIgMgBUHgDWpqIgQsAAAiBkUNACAGQQZ0IgYgCSwAACIHaiIKQRBOBEAgByAGayIEQXFIDQEgCSAEOgAAA0AgBUHgDWogA2oiBC0AAARAIARBADoAACADQf8BSSEEIANBAWohAyAEDQEMAwsLIARBAToAAAwBCyAJIAo6AAAgBEEAOgAACyABQYACRw0ACyAFQeADaiIHIAsQDSALKQIIIQIgCykCECEsIAspAhghLSALKQIAIS4gBSALKQIgNwPAASAFIC03A7gBIAUgLDcDsAEgBSACNwOoASAFIC43A6ABIAspAighAiALKQIwISwgCykCOCEtIAtBQGspAgAhLiAFIAspAkg3A+gBIAUgLjcD4AEgBSAtNwPYASAFICw3A9ABIAUgAjcDyAEgCykCUCECIAspAlghLCALKQJgIS0gCykCaCEuIAUgCykCcDcDkAIgBSAuNwOIAiAFIC03A4ACIAUgLDcD+AEgBSACNwPwASAFQcACaiIBIAVBoAFqIgMQFSAFIAEgBUG4A2oiBBAGIAVBKGogBUHoAmoiCSAFQZADaiIGEAYgBUHQAGogBiAEEAYgBUH4AGogASAJEAYgASAFIAcQDiADIAEgBBAGIAVByAFqIgcgCSAGEAYgBUHwAWoiCiAGIAQQBiAFQZgCaiILIAEgCRAGIAVBgAVqIgggAxANIAEgBSAIEA4gAyABIAQQBiAHIAkgBhAGIAogBiAEEAYgCyABIAkQBiAFQaAGaiIIIAMQDSABIAUgCBAOIAMgASAEEAYgByAJIAYQBiAKIAYgBBAGIAsgASAJEAYgBUHAB2oiCCADEA0gASAFIAgQDiADIAEgBBAGIAcgCSAGEAYgCiAGIAQQBiALIAEgCRAGIAVB4AhqIgggAxANIAEgBSAIEA4gAyABIAQQBiAHIAkgBhAGIAogBiAEEAYgCyABIAkQBiAFQYAKaiIIIAMQDSABIAUgCBAOIAMgASAEEAYgByAJIAYQBiAKIAYgBBAGIAsgASAJEAYgBUGgC2oiCCADEA0gASAFIAgQDiADIAEgBBAGIAcgCSAGEAYgCiAGIAQQBiALIAEgCRAGIAVBwAxqIAMQDSAMQgA3AiAgDEIANwIYIAxCADcCECAMQgA3AgggDEIANwIAIAxCADcCLCAMQShqIiJBATYCACAMQgA3AjQgDEIANwI8IAxCADcCRCAMQgA3AlQgDEKAgICAEDcCTCAMQgA3AlwgDEIANwJkIAxCADcCbCAMQQA2AnQgDEHQAGohI0H/ASEBA0ACQAJAAkAgBUHgD2ogAWotAAANACAFQeANaiABai0AAA0AIAFBAWsiAyAFQeAPamotAABFBEAgBUHgDWogA2otAABFDQILIAMhAQsgAUEASA0BA0AgBUHAAmogDBAVAkAgASIDIAVB4A9qaiwAACIBQQBKBEAgBUGgAWoiDSAFQcACaiIIIAQQBiAHIAkgBhAGIAogBiAEEAYgCyAIIAkQBiAIIA0gBUHgA2ogAUH+AXFBAXZBoAFsahAODAELIAFBAE4NACAFQaABaiINIAVBwAJqIgggBBAGIAcgCSAGEAYgCiAGIAQQBiALIAggCRAGIAggDSAFQeADakEAIAFrQf4BcUEBdkGgAWxqEEgLAkAgBUHgDWogA2osAAAiAUEASgRAIAVBoAFqIg0gBUHAAmoiCCAEEAYgByAJIAYQBiAKIAYgBBAGIAsgCCAJEAYgCCANIAFB/gFxQQF2QfgAbEHQC2oQOAwBCyABQQBODQAgBUGgAWogBUHAAmoiCCAEEAYgByAJIAYQBiAKIAYgBBAGIAsgCCAJEAYgBSgCoAEhDSAFKALIASEOIAUoAqQBIRAgBSgCzAEhESAFKAKoASESIAUoAtABIRMgBSgCrAEhFCAFKALUASEVIAUoArABIRYgBSgC2AEhFyAFKAK0ASEYIAUoAtwBIRkgBSgCuAEhGiAFKALgASEbIAUoArwBIRwgBSgC5AEhHSAFKALAASEeIAUoAugBIR8gBSAFKALsASIgIAUoAsQBIiFrNgKMAyAFIB8gHms2AogDIAUgHSAcazYChAMgBSAbIBprNgKAAyAFIBkgGGs2AvwCIAUgFyAWazYC+AIgBSAVIBRrNgL0AiAFIBMgEms2AvACIAUgESAQazYC7AIgBSAOIA1rNgLoAiAFICAgIWo2AuQCIAUgHiAfajYC4AIgBSAcIB1qNgLcAiAFIBogG2o2AtgCIAUgGCAZajYC1AIgBSAWIBdqNgLQAiAFIBQgFWo2AswCIAUgEiATajYCyAIgBSAQIBFqNgLEAiAFIA0gDmo2AsACIAYgCEEAIAFrQf4BcUEBdkH4AGxB0AtqIgFBKGoQBiAJIAkgARAGIAQgAUHQAGogCxAGIAUoApQCIR4gBSgCkAIhHyAFKAKMAiEgIAUoAogCISEgBSgChAIhJCAFKAKAAiElIAUoAvwBISYgBSgC+AEhJyAFKAL0ASEoIAUoAvABISkgBSgC6AIhASAFKAKQAyEIIAUoAuwCIQ0gBSgClAMhDiAFKALwAiEQIAUoApgDIREgBSgC9AIhEiAFKAKcAyETIAUoAvgCIRQgBSgCoAMhFSAFKAL8AiEWIAUoAqQDIRcgBSgCgAMhGCAFKAKoAyEZIAUoAoQDIRogBSgCrAMhGyAFKAKIAyEcIAUoArADIR0gBSAFKAKMAyIqIAUoArQDIitqNgKMAyAFIBwgHWo2AogDIAUgGiAbajYChAMgBSAYIBlqNgKAAyAFIBYgF2o2AvwCIAUgFCAVajYC+AIgBSASIBNqNgL0AiAFIBAgEWo2AvACIAUgDSAOajYC7AIgBSABIAhqNgLoAiAFICsgKms2AuQCIAUgHSAcazYC4AIgBSAbIBprNgLcAiAFIBkgGGs2AtgCIAUgFyAWazYC1AIgBSAVIBRrNgLQAiAFIBMgEms2AswCIAUgESAQazYCyAIgBSAOIA1rNgLEAiAFIAggAWs2AsACIAUgKUEBdCIBIAUoArgDIghrNgKQAyAFIChBAXQiDSAFKAK8AyIOazYClAMgBSAnQQF0IhAgBSgCwAMiEWs2ApgDIAUgJkEBdCISIAUoAsQDIhNrNgKcAyAFICVBAXQiFCAFKALIAyIVazYCoAMgBSAkQQF0IhYgBSgCzAMiF2s2AqQDIAUgIUEBdCIYIAUoAtADIhlrNgKoAyAFICBBAXQiGiAFKALUAyIbazYCrAMgBSAfQQF0IhwgBSgC2AMiHWs2ArADIAUgHkEBdCIeIAUoAtwDIh9rNgK0AyAFIAEgCGo2ArgDIAUgDSAOajYCvAMgBSAQIBFqNgLAAyAFIBIgE2o2AsQDIAUgFCAVajYCyAMgBSAWIBdqNgLMAyAFIBggGWo2AtADIAUgGiAbajYC1AMgBSAcIB1qNgLYAyAFIB4gH2o2AtwDCyAMIAVBwAJqIAQQBiAiIAkgBhAGICMgBiAEEAYgA0EBayEBIANBAEoNAAsMAQsgAUECayEBIAMNAQsLIAVB4BFqJAAgD0GgAmoiASAMECtBfyABIAAQSyAAIAFGGyAAIAFBIBAzciELCyAPQdAEaiQAIAsLqSICOH4FfyMAQbAEayI/JAAgP0HgAmoQGSAFBEAgP0HgAmpB0I8CQiIQDBoLID9BoAJqIARCIBAYGiA/QeACaiJBID9BwAJqQiAQDBogQSACIAMQDBogQSA/QeABaiI+EBMgBCkAICEIIAQpACghByAEKQAwIQYgACAEKQA4NwA4IAAgBjcAMCAAIAc3ACggAEEgaiIEIAg3AAAgPhA2ID8gPhAqIAAgPxArIEEQGSAFBEAgP0HgAmpB0I8CQiIQDBoLID9B4AJqIgUgAELAABAMGiAFIAIgAxAMGiAFID9BoAFqIgAQEyAAEDYgPyA/LQCgAkH4AXE6AKACID8gPy0AvwJBP3FBwAByOgC/AiAEID9BoAJqIkAzABUgQDEAF0IQhkKAgPwAg4QiECAAKAAcQQd2rSIRfiAAKAAXIgVBGHatIAAxABtCCIaEIAAxABxCEIaEQgKIQv///wCDIhIgQCgAFyICQQV2Qf///wBxrSITfnwgADMAFSAAMQAXQhCGQoCA/ACDhCIUIEAoABxBB3atIhV+fCACQRh2rSBAMQAbQgiGhCBAMQAcQhCGhEICiEL///8AgyIWIAVBBXZB////AHGtIhd+fCATIBd+IEAoAA8iBUEYdq0gQDEAE0IIhoQgQDEAFEIQhoRCA4giGCARfnwgECASfnwgACgADyICQRh2rSAAMQATQgiGhCAAMQAUQhCGhEIDiCIZIBV+fCAUIBZ+fCIJQoCAQH0iCEIViHwiB0KAgEB9IgZCFYggFSAXfiARIBN+fCASIBZ+fCIDIANCgIBAfSIDQoCAgP////8Ag318IixCmNocfiARIBZ+IBIgFX58IANCFYh8IgMgA0KAgEB9IipCgICA/////wCDfSItQpPYKH58IAcgBkKAgIB/g30iLkLn9id+fCAJIAhCgICAf4N9IBIgGH4gBUEGdkH///8Aca0iGiARfnwgEyAUfnwgECAXfnwgFSACQQZ2Qf///wBxrSIbfnwgFiAZfnwgQCgACiJCQRh2rSBAMQAOQgiGhCBAMQAPQhCGhEIBiEL///8AgyIcIBF+IBIgGn58IBcgGH58IBMgGX58IBAgFH58IAAoAAoiQUEYdq0gADEADkIIhoQgADEAD0IQhoRCAYhC////AIMiHSAVfnwgFiAbfnwiDEKAgEB9IgpCFYh8IglCgIBAfSIIQhWIfCIvQtOMQ358ID9B4AFqIj4oABciBUEFdkH///8Aca0gQDMAACBAMQACQhCGQoCA/ACDhCIeIBd+IBQgQCgAAiICQQV2Qf///wBxrSIffnwgQDUAB0IHiEL///8AgyIgIBt+fCAdIEJBBHZB////AHGtIiF+fCACQRh2rSBAMQAGQgiGhCBAMQAHQhCGhEICiEL///8AgyIiIBl+fCAaIAA1AAdCB4hC////AIMiI358IBwgQUEEdkH///8Aca0iJH58IBggACgAAiICQRh2rSAAMQAGQgiGhCAAMQAHQhCGhEICiEL///8AgyIlfnwgADMAACAAMQACQhCGQoCA/ACDhCImIBN+fCAQIAJBBXZB////AHGtIid+fHwgPjMAFSAUIB5+IBkgH358IB0gIH58ICEgJH58IBsgIn58IBogJX58IBwgI358IBggJ358IBAgJn58fCA+MQAXQhCGQoCA/ACDfCIHQoCAQH0iBkIViHwiA3wgA0KAgEB9IgtCgICAf4N9IAcgLkKY2hx+ICxCk9gofnwgL0Ln9id+fCAZIB5+IBsgH358ICAgJH58ICEgI358IB0gIn58IBogJ358IBwgJX58IBggJn58ID4oAA8iAEEYdq0gPjEAE0IIhoQgPjEAFEIQhoRCA4h8IABBBnZB////AHGtIBsgHn4gHSAffnwgICAjfnwgISAlfnwgIiAkfnwgGiAmfnwgHCAnfnx8IjZCgIBAfSIwQhWIfCIoQoCAQH0iN0IViHx8IAZCgICAf4N9IjhCgIBAfSI5QhWHfCIOQoCAQH0iKUIVhyAJIAhCgICAf4N9IAwgESAVfiIPQoCAQH0iDUIViCIxQoOhVn58IApCgICAf4N9IBcgGn4gESAhfnwgEiAcfnwgFCAYfnwgEyAbfnwgECAZfnwgFSAkfnwgFiAdfnwgEiAhfiARICB+fCAUIBp+fCAXIBx+fCAYIBl+fCATIB1+fCAQIBt+fCAVICN+fCAWICR+fCIMQoCAQH0iCkIViHwiCUKAgEB9IghCFYh8IgdCgIBAfSIGQhWHfCIyQoOhVn58IBIgHn4gFyAffnwgGSAgfnwgGyAhfnwgFCAifnwgGiAkfnwgHCAdfnwgGCAjfnwgEyAnfnwgECAlfnwgFiAmfnwgBUEYdq0gPjEAG0IIhoQgPjEAHEIQhoRCAohC////AIN8IgMgLUKY2hx+IA8gDUKAgID/////A4N9ICpCFYh8IjNCk9gofnwgLELn9id+fCAuQtOMQ358IC9C0asIfnwgC0IViHx8IANCgIBAfSI6QoCAgH+DfSIDfCADQoCAQH0iO0KAgIB/g30iCyAOIAcgBkKAgIB/g30gM0KDoVZ+IDFC0asIfnwgCXwgCEKAgIB/g30gDCAxQtOMQ358IDNC0asIfnwgLUKDoVZ+fCAKQoCAgH+DfSAXICF+IBIgIH58IBEgIn58IBkgGn58IBQgHH58IBggG358IBMgJH58IBAgHX58IBUgJX58IBYgI358IBcgIH4gESAffnwgFCAhfnwgEiAifnwgGiAbfnwgGSAcfnwgGCAdfnwgEyAjfnwgECAkfnwgFSAnfnwgFiAlfnwiPEKAgEB9Ij1CFYh8IitCgIBAfSIqQhWIfCINQoCAQH0iDEIVh3wiBkKAgEB9IgNCFYd8IjRCg6FWfiAyQtGrCH58fCApQoCAgH+DfSA4IDRC0asIfiAyQtOMQ358IAYgA0KAgIB/g30iNUKDoVZ+fCAvQpjaHH4gLkKT2Ch+fCAofCA2IC9Ck9gofnwgMEKAgIB/g30gHSAefiAfICR+fCAgICV+fCAhICd+fCAiICN+fCAcICZ+fCA+KAAKIgBBGHatID4xAA5CCIaEID4xAA9CEIaEQgGIQv///wCDfCAAQQR2Qf///wBxrSAeICR+IB8gI358ICAgJ358ICEgJn58ICIgJX58fCI2QoCAQH0iMEIViHwiKEKAgEB9Ig5CFYh8IilCgIBAfSIPQhWHfCA3QoCAgH+DfSIKQoCAQH0iCUIVh3x8IDlCgICAf4N9IghCgIBAfSIHQhWHfCIGQoCAQH0iA0IVh3wgC0KAgEB9IgtCgICAf4N9IAYgA0KAgIB/g30gCCAHQoCAgH+DfSA0QtOMQ34gMkLn9id+fCA1QtGrCH58IAp8IAlCgICAf4N9IA0gDEKAgIB/g30gM0LTjEN+IDFC5/YnfnwgLULRqwh+fCAsQoOhVn58ICt8ICpCgICAf4N9IDNC5/YnfiAxQpjaHH58IC1C04xDfnwgPHwgLELRqwh+fCAuQoOhVn58ID1CgICAf4N9ID4oABxBB3atIBEgHn4gEiAffnwgFCAgfnwgGSAhfnwgFyAifnwgGiAdfnwgGyAcfnwgGCAkfnwgEyAlfnwgECAjfnwgFSAmfnwgFiAnfnx8IDpCFYh8Ig1CgIBAfSIMQhWIfCIKQoCAQH0iCUIVh3wiBkKAgEB9IgNCFYd8IitCg6FWfnwgKSAyQpjaHH58IA9CgICAf4N9IDRC5/YnfnwgNULTjEN+fCArQtGrCH58IAYgA0KAgIB/g30iKkKDoVZ+fCIIQoCAQH0iB0IVh3wiBkKAgEB9IgNCFYd8IAYgA0KAgIB/g30gCCAHQoCAgH+DfSAyQpPYKH4gKHwgDkKAgIB/g30gNEKY2hx+fCA1Quf2J358IAogCUKAgIB/g30gM0KY2hx+IDFCk9gofnwgLULn9id+fCAsQtOMQ358IC5C0asIfnwgL0KDoVZ+fCANfCAMQoCAgH+DfSA7QhWHfCINQoCAQH0iDEIVh3wiDkKDoVZ+fCArQtOMQ358ICpC0asIfnwgNiAwQoCAgH+DfSAeICN+IB8gJX58ICAgJn58ICIgJ358ID41AAdCB4hC////AIN8IB4gJX4gHyAnfnwgIiAmfnwgPigAAiIAQRh2rSA+MQAGQgiGhCA+MQAHQhCGhEICiEL///8Ag3wiKUKAgEB9Ig9CFYh8IgpCgIBAfSIJQhWIfCA0QpPYKH58IDVCmNocfnwgDkLRqwh+fCArQuf2J358ICpC04xDfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIA0gDEKAgIB/g30gC0IVh3wiMEKAgEB9IihCFYciC0KDoVZ+fCADQoCAgH+DfSAIIAtC0asIfnwgB0KAgIB/g30gCiAJQoCAgH+DfSA1QpPYKH58IA5C04xDfnwgK0KY2hx+fCAqQuf2J358ICkgAEEFdkH///8Aca0gHiAnfiAfICZ+fHwgHiAmfiA+MwAAID4xAAJCEIZCgID8AIOEfCINQoCAQH0iDEIViHwiCkKAgEB9IglCFYh8IA9CgICAf4N9IA5C5/YnfnwgK0KT2Ch+fCAqQpjaHH58IghCgIBAfSIHQhWHfCIGQoCAQH0iA0IVh3wgBiALQtOMQ358IANCgICAf4N9IAggC0Ln9id+fCAHQoCAgH+DfSAKIAlCgICAf4N9IA5CmNocfnwgKkKT2Ch+fCANIAxCgICA////A4N9IA5Ck9gofnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIAtCmNocfnwgA0KAgIB/g30gCCAHQoCAgH+DfSALQpPYKH58Ig5CFYd8IgtCFYd8IilCFYd8Ig9CFYd8Ig1CFYd8IgxCFYd8IgpCFYd8IglCFYd8IghCFYd8IgdCFYd8IgZCFYcgMCAoQoCAgH+DfXwiA0IVhyIoQpPYKH4gDkL///8Ag3wiDjwAACAEIA5CCIg8AAEgBCAoQpjaHH4gC0L///8Ag3wgDkIVh3wiC0ILiDwABCAEIAtCA4g8AAMgBCAOQhCIQh+DIAtCBYaEPAACIAQgKELn9id+IClC////AIN8IAtCFYd8IilCBog8AAYgBCApQgKGIAtCgIDgAINCE4iEPAAFIAQgKELTjEN+IA9C////AIN8IClCFYd8Ig9CCYg8AAkgBCAPQgGIPAAIIAQgD0IHhiApQoCA/wCDQg6IhDwAByAEIChC0asIfiANQv///wCDfCAPQhWHfCINQgyIPAAMIAQgDUIEiDwACyAEIA1CBIYgD0KAgPgAg0IRiIQ8AAogBCAoQoOhVn4gDEL///8Ag3wgDUIVh3wiDEIHiDwADiAEIAxCAYYgDUKAgMAAg0IUiIQ8AA0gBCAKQv///wCDIAxCFYd8IgpCCog8ABEgBCAKQgKIPAAQIAQgCkIGhiAMQoCA/gCDQg+IhDwADyAEIAlC////AIMgCkIVh3wiCUINiDwAFCAEIAlCBYg8ABMgBCAIQv///wCDIAlCFYd8Igg8ABUgBCAJQgOGIApCgIDwAINCEoiEPAASIAQgCEIIiDwAFiAEIAdC////AIMgCEIVh3wiB0ILiDwAGSAEIAdCA4g8ABggBCAIQhCIQh+DIAdCBYaEPAAXIAQgBkL///8AgyAHQhWHfCIGQgaIPAAbIAQgBkIChiAHQoCA4ACDQhOIhDwAGiAEIANC////AIMgBkIVh3wiA0IRiDwAHyAEIANCCYg8AB4gBCADQgGIPAAdIAQgA0IHhiAGQoCA/wCDQg6IhDwAHCBAQcAAEAcgPkHAABAHIAEEQCABQsAANwMACyA/QbAEaiQAQQAL2wEBA38jAEEQayIDIAA2AgwgAyABNgIIQQAhACADQQA6AAcCQCACRQ0AIAJBAXEhASACQQFHBEAgAkF+cSEEQQAhAgNAIAMgAy0AByADKAIMIABqLQAAIAMoAgggAGotAABzcjoAByADIAMtAAcgAEEBciIFIAMoAgxqLQAAIAMoAgggBWotAABzcjoAByAAQQJqIQAgAkECaiICIARHDQALCyABRQ0AIAMgAy0AByADKAIMIABqLQAAIAMoAgggAGotAABzcjoABwsgAy0AB0EBa0EIdkEBcUEBawsEAEEIC4MDAgN/An4jAEFAaiIDJAACQCACQcEAa0H/AXFBvwFLBEBBfyEEIAApAFBQBEAgACgA4AIiBUGBAU8EQCAAQUBrIgUgBSkAACIGQoABfDcAACAAIAApAEggBkL/flatfDcASCAAIABB4ABqIgQQKCAAIAAoAOACQYABayIFNgDgAiAFQYEBTw0DIAQgAEHgAWogBRALGiAAKADgAiEFCyAAQUBrIgQgBCkAACIGIAWtfCIHNwAAIAAgACkASCAGIAdWrXw3AEggAC0A5AIEQCAAQn83AFgLIABCfzcAUCAAQeAAaiIEIAVqQQBBgAIgBWsQCBogACAEECggAyAAKQAANwMAIAMgACkACDcDCCADIAApABA3AxAgAyAAKQAYNwMYIAMgACkAIDcDICADIAApACg3AyggAyAAKQAwNwMwIAMgACkAODcDOCABIAMgAhALGiAAQcAAEAcgBEGAAhAHQQAhBAsgA0FAayQAIAQPCxAJAAtBgApB9ghBsgJBvggQAQAL6RICFX4DfyAAIAAoACwiFkEFdkH///8Aca0gACgAPEEDdq0iAkKDoVZ+IAAzACogADEALEIQhkKAgPwAg4R8IghCgIBAfSIJQhWHfCIBQoOhVn4gADUAMUIHiEL///8AgyIDQtOMQ34gACgAFyIXQRh2rSAAMQAbQgiGhCAAMQAcQhCGhEICiEL///8Ag3wgACgANCIYQQR2Qf///wBxrSIEQuf2J358IBZBGHatIAAxADBCCIaEIAAxADFCEIaEQgKIQv///wCDIgVC0asIfnwgADUAOUIGiEL///8AgyIGQpPYKH58IBhBGHatIAAxADhCCIaEIAAxADlCEIaEQgGIQv///wCDIgpCmNocfnwiB3wgB0KAgEB9IhBCgICAf4N9IBdBBXZB////AHGtIANC5/YnfnwgBEKY2hx+fCAFQtOMQ358IApCk9gofnwgA0KY2hx+IAAzABUgADEAF0IQhkKAgPwAg4R8IARCk9gofnwgBULn9id+fCIHQoCAQH0iC0IViHwiDEKAgEB9Ig1CFYd8IhEgEUKAgEB9IhFCgICAf4N9IAwgAULRqwh+fCANQoCAgH+DfSAIIAlCgICAf4N9IAJC0asIfiAAKAAkIhZBGHatIAAxAChCCIaEIAAxAClCEIaEQgOIfCAGQoOhVn58IBZBBnZB////AHGtIAJC04xDfnwgBkLRqwh+fCAKQoOhVn58IgxCgIBAfSINQhWHfCIJQoCAQH0iDkIVh3wiCEKDoVZ+fCAHIAtCgICA////A4N9IANCk9gofiAAKAAPIhZBGHatIAAxABNCCIaEIAAxABRCEIaEQgOIfCAFQpjaHH58IBZBBnZB////AHGtIAVCk9gofnwiC0KAgEB9IhJCFYh8IgdCgIBAfSIPQhWIfCABQtOMQ358IAhC0asIfnwgCSAOQoCAgH+DfSIJQoOhVn58Ig5CgIBAfSITQhWHfCIUQoCAQH0iFUIVh3wgFCAVQoCAgH+DfSAOIBNCgICAf4N9IAcgD0KAgIB/g30gAULn9id+fCAIQtOMQ358IAlC0asIfnwgDCANQoCAgH+DfSAEQoOhVn4gACgAHyIWQRh2rSAAMQAjQgiGhCAAMQAkQhCGhEIBiEL///8Ag3wgAkLn9id+fCAGQtOMQ358IApC0asIfnwgFkEEdkH///8Aca0gA0KDoVZ+fCAEQtGrCH58IAJCmNocfnwgBkLn9id+fCAKQtOMQ358IgxCgIBAfSINQhWHfCIOQoCAQH0iD0IVh3wiB0KDoVZ+fCALIBJCgICA////AYN9IAFCmNocfnwgCELn9id+fCAJQtOMQ358IAdC0asIfnwgDiAPQoCAgH+DfSILQoOhVn58Ig5CgIBAfSISQhWHfCIPQoCAQH0iE0IVh3wgDyATQoCAgH+DfSAOIBJCgICAf4N9IAFCk9gofiAAKAAKIhZBGHatIAAxAA5CCIaEIAAxAA9CEIaEQgGIQv///wCDfCAIQpjaHH58IAlC5/YnfnwgB0LTjEN+fCALQtGrCH58IAwgDUKAgIB/g30gA0LRqwh+IAA1ABxCB4hC////AIN8IARC04xDfnwgBUKDoVZ+fCACQpPYKH58IAZCmNocfnwgCkLn9id+fCAQQhWHfCIBQoCAQH0iA0IVh3wiAkKDoVZ+fCAWQQR2Qf///wBxrSAIQpPYKH58IAlCmNocfnwgB0Ln9id+fCALQtOMQ358IAJC0asIfnwiBEKAgEB9IgVCFYd8IgZCgIBAfSIKQhWHfCAGIAEgA0KAgIB/g30gEUIVh3wiA0KAgEB9IghCFYciAUKDoVZ+fCAKQoCAgH+DfSABQtGrCH4gBHwgBUKAgIB/g30gCUKT2Ch+IAA1AAdCB4hC////AIN8IAdCmNocfnwgC0Ln9id+fCACQtOMQ358IAdCk9gofiAAKAACIhZBGHatIAAxAAZCCIaEIAAxAAdCEIaEQgKIQv///wCDfCALQpjaHH58IAJC5/YnfnwiBEKAgEB9IgVCFYd8IgZCgIBAfSIKQhWHfCAGIAFC04xDfnwgCkKAgIB/g30gAULn9id+IAR8IAVCgICAf4N9IBZBBXZB////AHGtIAtCk9gofnwgAkKY2hx+fCACQpPYKH4gADMAACAAMQACQhCGQoCA/ACDhHwiAkKAgEB9IgRCFYd8IgVCgIBAfSIGQhWHfCABQpjaHH4gBXwgBkKAgIB/g30gAiAEQoCAgH+DfSABQpPYKH58IgFCFYd8IgRCFYd8IgVCFYd8IgZCFYd8IgpCFYd8IglCFYd8IgdCFYd8IgtCFYd8IhBCFYd8IgxCFYd8Ig1CFYcgAyAIQoCAgH+DfXwiCEIVhyICQpPYKH4gAUL///8Ag3wiAzwAACAAIANCCIg8AAEgACACQpjaHH4gBEL///8Ag3wgA0IVh3wiAUILiDwABCAAIAFCA4g8AAMgACADQhCIQh+DIAFCBYaEPAACIAAgAkLn9id+IAVC////AIN8IAFCFYd8IgNCBog8AAYgACADQgKGIAFCgIDgAINCE4iEPAAFIAAgAkLTjEN+IAZC////AIN8IANCFYd8IgFCCYg8AAkgACABQgGIPAAIIAAgAUIHhiADQoCA/wCDQg6IhDwAByAAIAJC0asIfiAKQv///wCDfCABQhWHfCIDQgyIPAAMIAAgA0IEiDwACyAAIANCBIYgAUKAgPgAg0IRiIQ8AAogACACQoOhVn4gCUL///8Ag3wgA0IVh3wiAUIHiDwADiAAIAFCAYYgA0KAgMAAg0IUiIQ8AA0gACAHQv///wCDIAFCFYd8IgJCCog8ABEgACACQgKIPAAQIAAgAkIGhiABQoCA/gCDQg+IhDwADyAAIAtC////AIMgAkIVh3wiAUINiDwAFCAAIAFCBYg8ABMgACAQQv///wCDIAFCFYd8IgM8ABUgACABQgOGIAJCgIDwAINCEoiEPAASIAAgA0IIiDwAFiAAIAxC////AIMgA0IVh3wiAkILiDwAGSAAIAJCA4g8ABggACADQhCIQh+DIAJCBYaEPAAXIAAgDUL///8AgyACQhWHfCIBQgaIPAAbIAAgAUIChiACQoCA4ACDQhOIhDwAGiAAIAhC////AIMgAUIVh3wiAkIRiDwAHyAAIAJCCYg8AB4gACACQgGIPAAdIAAgAkIHhiABQoCA/wCDQg6IhDwAHAv4AQEKfwNAIAQgACADai0AACIBIANBkBNqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXEL4AkBHn8gASgCKCEDIAEoAgQhBCABKAIsIQUgASgCCCEGIAEoAjAhByABKAIMIQggASgCNCEJIAEoAhAhCiABKAI4IQsgASgCFCEMIAEoAjwhDSABKAIYIQ4gAUFAayIPKAIAIRAgASgCHCERIAEoAkQhEiABKAIgIRMgASgCSCEUIAEoAgAhFSAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA4gEGo2AhggACAMIA1qNgIUIAAgCiALajYCECAAIAggCWo2AgwgACAGIAdqNgIIIAAgBCAFajYCBCAAIAMgFWo2AgAgASgCKCEFIAEoAgQhAyABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIRAgDygCACEPIAEoAhwhBCABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAJMIAEoAiRrNgJMIAAgEyASazYCSCAAIBEgBGs2AkQgAEFAayIEIA8gEGs2AgAgACAOIA1rNgI8IAAgDCALazYCOCAAIAogCWs2AjQgACAIIAdrNgIwIAAgBiADazYCLCAAQShqIgMgBSAUazYCACAAQdAAaiAAIAIQBiADIAMgAkEoahAGIABB+ABqIAJB0ABqIAFB+ABqEAYgASgCUCEVIAEoAlQhFiABKAJYIRcgASgCXCEYIAEoAmAhGSABKAJkIRogASgCaCEbIAEoAmwhHCABKAJwIR0gASgCdCEeIAMoAgAhASAAKAJQIQIgACgCLCEFIAAoAlQhBiAAKAIwIQcgACgCWCEIIAAoAjQhCSAAKAJcIQogACgCOCELIAAoAmAhDCAAKAI8IQ0gACgCZCEOIAQoAgAhDyAAKAJoIRAgACgCRCERIAAoAmwhEiAAKAJIIRMgACgCcCEUIAAgACgCTCIfIAAoAnQiIGo2AkwgACATIBRqNgJIIAAgESASajYCRCAEIA8gEGo2AgAgACANIA5qNgI8IAAgCyAMajYCOCAAIAkgCmo2AjQgACAHIAhqNgIwIAAgBSAGajYCLCADIAEgAmo2AgAgACAgIB9rNgIkIAAgFCATazYCICAAIBIgEWs2AhwgACAQIA9rNgIYIAAgDiANazYCFCAAIAwgC2s2AhAgACAKIAlrNgIMIAAgCCAHazYCCCAAIAYgBWs2AgQgACACIAFrNgIAIAAgHkEBdCIBIAAoApwBIgJrNgKcASAAIB1BAXQiAyAAKAKYASIEazYCmAEgACAcQQF0IgUgACgClAEiBms2ApQBIAAgG0EBdCIHIAAoApABIghrNgKQASAAIBpBAXQiCSAAKAKMASIKazYCjAEgACAZQQF0IgsgACgCiAEiDGs2AogBIAAgGEEBdCINIAAoAoQBIg5rNgKEASAAIBdBAXQiDyAAKAKAASIQazYCgAEgACAWQQF0IhEgACgCfCISazYCfCAAIBVBAXQiEyAAKAJ4IhRrNgJ4IAAgAyAEajYCcCAAIAUgBmo2AmwgACAHIAhqNgJoIAAgCSAKajYCZCAAIAsgDGo2AmAgACANIA5qNgJcIAAgDyAQajYCWCAAIBEgEmo2AlQgACATIBRqNgJQIAAgASACajYCdAumBAIOfgp/IAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgAkIQWgRAIAAtAFBFQRh0IRYgACgCECIXrSEPIAAoAgwiGK0hDSAAKAIIIhmtIQsgACgCBCIarSEJIBpBBWytIRAgGUEFbK0hDiAYQQVsrSEMIBdBBWytIQogADUCACEIA0AgASgAA0ECdkH///8fcSAVaq0iAyANfiABKAAAQf///x9xIBFqrSIEIA9+fCABKAAGQQR2Qf///x9xIBRqrSIFIAt+fCABKAAJQQZ2IBNqrSIGIAl+fCASIBZqIAEoAAxBCHZqrSIHIAh+fCADIAt+IAQgDX58IAUgCX58IAYgCH58IAcgCn58IAMgCX4gBCALfnwgBSAIfnwgBiAKfnwgByAMfnwgAyAIfiAEIAl+fCAFIAp+fCAGIAx+fCAHIA5+fCADIAp+IAQgCH58IAUgDH58IAYgDn58IAcgEH58IgNCGohC/////w+DfCIEQhqIQv////8Pg3wiBUIaiEL/////D4N8IgZCGohC/////w+DfCIHQhqIp0EFbCADp0H///8fcWoiEUEadiAEp0H///8fcWohFSAFp0H///8fcSEUIAanQf///x9xIRMgB6dB////H3EhEiARQf///x9xIREgAUEQaiEBIAJCEH0iAkIPVg0ACwsgACARNgIUIAAgEjYCJCAAIBM2AiAgACAUNgIcIAAgFTYCGAutAwIMfwN+IAApAzgiDkIAUgRAIABBQGsiAiAOpyIDakEBOgAAIA5CAXxCD1gEQCAAIANqQcEAakEAQQ8gA2sQCBoLIABBAToAUCAAIAJCEBA5CyAANQI0IQ4gADUCMCEPIAA1AiwhECABIAAoAhQgACgCJCAAKAIgIAAoAhwgACgCGCIDQRp2aiICQRp2aiIGQRp2aiIJQRp2QQVsaiIEQf///x9xIgVBBWoiB0EadiADQf///x9xIARBGnZqIgRqIghBGnYgAkH///8fcSIKaiILQRp2IAZB////H3EiBmoiDEEadiAJQf///x9xaiINQYCAgCBrIgJBH3UiAyAEcSACQR92QQFrIgRB////H3EiAiAIcXIiCEEadCACIAdxIAMgBXFyciIFIAAoAihqIgc2AAAgASAFIAdLrSAQIAMgCnEgAiALcXIiBUEUdCAIQQZ2cq18fCIQPgAEIAEgDyADIAZxIAIgDHFyIgJBDnQgBUEMdnKtfCAQQiCIfCIPPgAIIAEgDiAEIA1xIAMgCXFyQQh0IAJBEnZyrXwgD0IgiHw+AAwgAEHYABAHC98EAgZ+AX8CQCAAKQM4IgNCAFIEQCAAQhAgA30iBCACIAIgBFYbIgRCAFIEfkIAIQMgBEIEWgRAIARCfIMhBSAAQUBrIQkDQCAJIAApAzggA3ynaiABIAOnai0AADoAACAJIANCAYQiCCAAKQM4fKdqIAEgCKdqLQAAOgAAIAkgA0IChCIIIAApAzh8p2ogASAIp2otAAA6AAAgCSADQgOEIgggACkDOHynaiABIAinai0AADoAACADQgR8IQMgBkIEfCIGIAVSDQALCyAEQgODIgZCAFIEQANAIAAgACkDOCADfKdqQUBrIAEgA6dqLQAAOgAAIANCAXwhAyAHQgF8IgcgBlINAAsLIAApAzgFIAMLIAR8IgM3AzggA0IQVA0BIAAgAEFAa0IQEDkgAEIANwM4IAIgBH0hAiABIASnaiEBCyACQhBaBEAgACABIAJCcIMiAxA5IAJCD4MhAiABIAOnaiEBCyACUA0AQgAhB0IAIQMgAkIEWgRAIAJCDIMhBCAAQUBrIQlCACEGA0AgCSAAKQM4IAN8p2ogASADp2otAAA6AAAgCSADQgGEIgUgACkDOHynaiABIAWnai0AADoAACAJIANCAoQiBSAAKQM4fKdqIAEgBadqLQAAOgAAIAkgA0IDhCIFIAApAzh8p2ogASAFp2otAAA6AAAgA0IEfCEDIAZCBHwiBiAEUg0ACwsgAkIDgyIEQgBSBEADQCAAIAApAzggA3ynakFAayABIAOnai0AADoAACADQgF8IQMgB0IBfCIHIARSDQALCyAAIAApAzggAnw3AzgLCwoAIAAgASACEEYLFgAgAUEgEBYgACABQcyQAigCABEBAAuzBAEUf0H0yoHZBiEDQbLaiMsHIQxB7siBmQMhDUHl8MGLBiEEIAEoAAwhDyABKAAIIQUgASgABCEGIAIoABwhEiACKAAYIRBBFCERIAIoABQhDiACKAAQIQggAigADCEJIAIoAAghCiACKAAEIQsgASgAACEBIAIoAAAhAgNAIBAgDyACIA1qQQd3cyIHIA1qQQl3cyITIAQgDmpBB3cgCXMiCSAEakEJdyAFcyIUIAlqQQ13IA5zIhUgAyAIakEHdyAKcyIKIANqQQl3IAZzIgYgCmpBDXcgCHMiCCAGakESdyADcyIDIBIgASAMakEHd3MiBWpBB3dzIg4gA2pBCXdzIhAgDmpBDXcgBXMiEiAQakESdyADcyEDIAUgBSAMakEJdyALcyILakENdyABcyIWIAtqQRJ3IAxzIgEgB2pBB3cgCHMiCCABakEJdyAUcyIFIAhqQQ13IAdzIg8gBWpBEncgAXMhDCATIAcgE2pBDXcgAnMiB2pBEncgDXMiAiAJakEHdyAWcyIBIAJqQQl3IAZzIgYgAWpBDXcgCXMiCSAGakESdyACcyENIBQgFWpBEncgBHMiBCAKakEHdyAHcyICIARqQQl3IAtzIgsgAmpBDXcgCnMiCiALakESdyAEcyEEIBFBAkshByARQQJrIREgBw0ACyAAIAQ2AAAgACAPNgAcIAAgBTYAGCAAIAY2ABQgACABNgAQIAAgAzYADCAAIAw2AAggACANNgAEQQALhwEBBH9BASEBA0AgACADaiICIAEgAi0AAGoiAToAACAAIANBAXJqIgIgAi0AACABQQh2aiIBOgAAIAAgA0ECcmoiAiACLQAAIAFBCHZqIgE6AAAgACADQQNyaiICIAItAAAgAUEIdmoiAToAACABQQh2IQEgA0EEaiEDIARBBGoiBEEERw0ACwugAgEDfyMAQeACayIIJAAgCEEgaiIKQsAAIAYgBxAXIAhB4ABqIgkgCkG8kAIoAgARAQAaIApBwAAQByAJIAQgBUHAkAIoAgARAAAaIAlBgIkCQgAgBX1CD4NBwJACKAIAEQAAGiAJIAEgAkHAkAIoAgARAAAaIAlBgIkCQgAgAn1CD4NBwJACKAIAEQAAGiAIIAU3AxggCSAIQRhqIgRCCEHAkAIoAgARAAAaIAggAjcDGCAJIARCCEHAkAIoAgARAAAaIAkgCEHEkAIoAgARAQAaIAlBgAIQByAIIAMQLSEEIAhBEBAHAkAgAEUNACAEBEAgAEEAIAKnEAgaQX8hBAwBCyAAIAEgAiAGQQEgBxAbQQAhBAsgCEHgAmokACAEC/UBAQN/IwBB4AJrIggkACAIQSBqIgpCwAAgBiAHQaSQAigCABEMABogCEHgAGoiCSAKQbyQAigCABEBABogCkHAABAHIAkgBCAFQcCQAigCABEAABogCCAFNwMYIAkgCEEYaiIEQghBwJACKAIAEQAAGiAJIAEgAkHAkAIoAgARAAAaIAggAjcDGCAJIARCCEHAkAIoAgARAAAaIAkgCEHEkAIoAgARAQAaIAlBgAIQByAIIAMQLSEEIAhBEBAHAkAgAEUNACAEBEAgAEEAIAKnEAgaQX8hBAwBCyAAIAEgAiAGIAcQTkEAIQQLIAhB4AJqJAAgBAv9AQEDfyMAQdACayIKJAAgCkEQaiILQsAAIAcgCBAXIApB0ABqIgkgC0G8kAIoAgARAQAaIAtBwAAQByAJIAUgBkHAkAIoAgARAAAaIAlBgIkCQgAgBn1CD4NBwJACKAIAEQAAGiAAIAMgBCAHQQEgCBAbIAkgACAEQcCQAigCABEAABogCUGAiQJCACAEfUIPg0HAkAIoAgARAAAaIAogBjcDCCAJIApBCGoiAEIIQcCQAigCABEAABogCiAENwMIIAkgAEIIQcCQAigCABEAABogCSABQcSQAigCABEBABogCUGAAhAHIAIEQCACQhA3AwALIApB0AJqJABBAAvSAQEDfyMAQdACayIJJAAgCUEQaiILQsAAIAcgCEGkkAIoAgARDAAaIAlB0ABqIgogC0G8kAIoAgARAQAaIAtBwAAQByAKIAUgBkHAkAIoAgARAAAaIAkgBjcDCCAKIAlBCGoiBUIIQcCQAigCABEAABogACADIAQgByAIEE4gCiAAIARBwJACKAIAEQAAGiAJIAQ3AwggCiAFQghBwJACKAIAEQAAGiAKIAFBxJACKAIAEQEAGiAKQYACEAcgAgRAIAJCEDcDAAsgCUHQAmokAEEACwQAQQMLBABBAQvIBAECfyMAQRBrIgMkACADQQA6AA9BfyEEIAAgASACQciQAigCABEDAEUEQCADIAAtAAAgAy0AD3I6AA8gAyAALQABIAMtAA9yOgAPIAMgAC0AAiADLQAPcjoADyADIAAtAAMgAy0AD3I6AA8gAyAALQAEIAMtAA9yOgAPIAMgAC0ABSADLQAPcjoADyADIAAtAAYgAy0AD3I6AA8gAyAALQAHIAMtAA9yOgAPIAMgAC0ACCADLQAPcjoADyADIAAtAAkgAy0AD3I6AA8gAyAALQAKIAMtAA9yOgAPIAMgAC0ACyADLQAPcjoADyADIAAtAAwgAy0AD3I6AA8gAyAALQANIAMtAA9yOgAPIAMgAC0ADiADLQAPcjoADyADIAAtAA8gAy0AD3I6AA8gAyAALQAQIAMtAA9yOgAPIAMgAC0AESADLQAPcjoADyADIAAtABIgAy0AD3I6AA8gAyAALQATIAMtAA9yOgAPIAMgAC0AFCADLQAPcjoADyADIAAtABUgAy0AD3I6AA8gAyAALQAWIAMtAA9yOgAPIAMgAC0AFyADLQAPcjoADyADIAAtABggAy0AD3I6AA8gAyAALQAZIAMtAA9yOgAPIAMgAC0AGiADLQAPcjoADyADIAAtABsgAy0AD3I6AA8gAyAALQAcIAMtAA9yOgAPIAMgAC0AHSADLQAPcjoADyADIAAtAB4gAy0AD3I6AA8gAyAALQAfIAMtAA9yOgAPIAMtAA9BF3RBgICABGtBH3UhBAsgA0EQaiQAIAQL8QQCCX8EfiMAQYABayIDJAAgAEEBNgIAIABCADcCBCAAQgA3AgwgAEIANwIUIABCADcCHCAAQoCAgIAQNwIkIABBLGpBAEHMABAIGiAAIAFBwAdsQZAVaiIBIAIgAkEfdSACcUEBdGsiBEEBc0H/AXFBAWtBH3YQESAAIAFB+ABqIARBAnNB/wFxQQFrQR92EBEgACABQfABaiAEQQNzQf8BcUEBa0EfdhARIAAgAUHoAmogBEEEc0H/AXFBAWtBH3YQESAAIAFB4ANqIARBBXNB/wFxQQFrQR92EBEgACABQdgEaiAEQQZzQf8BcUEBa0EfdhARIAAgAUHQBWogBEEHc0H/AXFBAWtBH3YQESAAIAFByAZqIARBCHNB/wFxQQFrQR92EBEgACkCKCEMIAApAjAhDSAAKQI4IQ4gAEFAaykCACEPIAMgACkCSDcDKCADIA83AyAgAyAONwMYIAMgDTcDECADIAw3AwggACkCCCEMIAApAhAhDSAAKQIYIQ4gACkCACEPIAMgACkCIDcDUCADIA43A0ggA0FAayANNwMAIAMgDDcDOCADIA83AzAgACgCUCEBIAAoAlQhBCAAKAJYIQUgACgCXCEGIAAoAmAhByAAKAJkIQggACgCaCEJIAAoAmwhCiAAKAJwIQsgA0EAIAAoAnRrNgJ8IANBACALazYCeCADQQAgCms2AnQgA0EAIAlrNgJwIANBACAIazYCbCADQQAgB2s2AmggA0EAIAZrNgJkIANBACAFazYCYCADQQAgBGs2AlwgA0EAIAFrNgJYIAAgA0EIaiACQYABcUEHdhARIANBgAFqJAAL8AkBHn8gASgCKCEDIAEoAgQhBCABKAIsIQUgASgCCCEGIAEoAjAhByABKAIMIQggASgCNCEJIAEoAhAhCiABKAI4IQsgASgCFCEMIAEoAjwhDSABKAIYIQ4gAUFAayIPKAIAIRAgASgCHCERIAEoAkQhEiABKAIgIRMgASgCSCEUIAEoAgAhFSAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA4gEGo2AhggACAMIA1qNgIUIAAgCiALajYCECAAIAggCWo2AgwgACAGIAdqNgIIIAAgBCAFajYCBCAAIAMgFWo2AgAgASgCKCEFIAEoAgQhAyABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIRAgDygCACEPIAEoAhwhBCABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAJMIAEoAiRrNgJMIAAgEyASazYCSCAAIBEgBGs2AkQgAEFAayIEIA8gEGs2AgAgACAOIA1rNgI8IAAgDCALazYCOCAAIAogCWs2AjQgACAIIAdrNgIwIAAgBiADazYCLCAAQShqIgMgBSAUazYCACAAQdAAaiAAIAJBKGoQBiADIAMgAhAGIABB+ABqIAJB+ABqIAFB+ABqEAYgACABQdAAaiACQdAAahAGIAAoAgQhFSAAKAIIIRYgACgCDCEXIAAoAhAhGCAAKAIUIRkgACgCGCEaIAAoAhwhGyAAKAIgIRwgACgCJCEdIAMoAgAhASAAKAJQIQIgACgCLCEFIAAoAlQhBiAAKAIwIQcgACgCWCEIIAAoAjQhCSAAKAJcIQogACgCOCELIAAoAmAhDCAAKAI8IQ0gACgCZCEOIAQoAgAhDyAAKAJoIRAgACgCRCERIAAoAmwhEiAAKAJIIRMgACgCcCEUIAAoAgAhHiAAIAAoAkwiHyAAKAJ0IiBqNgJMIAAgEyAUajYCSCAAIBEgEmo2AkQgBCAPIBBqNgIAIAAgDSAOajYCPCAAIAsgDGo2AjggACAJIApqNgI0IAAgByAIajYCMCAAIAUgBmo2AiwgAyABIAJqNgIAIAAgICAfazYCJCAAIBQgE2s2AiAgACASIBFrNgIcIAAgECAPazYCGCAAIA4gDWs2AhQgACAMIAtrNgIQIAAgCiAJazYCDCAAIAggB2s2AgggACAGIAVrNgIEIAAgAiABazYCACAAIAAoApwBIgEgHUEBdCICajYCnAEgACAAKAKYASIDIBxBAXQiBGo2ApgBIAAgACgClAEiBSAbQQF0IgZqNgKUASAAIAAoApABIgcgGkEBdCIIajYCkAEgACAAKAKMASIJIBlBAXQiCmo2AowBIAAgACgCiAEiCyAYQQF0IgxqNgKIASAAIAAoAoQBIg0gF0EBdCIOajYChAEgACAAKAKAASIPIBZBAXQiEGo2AoABIAAgACgCfCIRIBVBAXQiEmo2AnwgACAAKAJ4IhMgHkEBdCIUajYCeCAAIAQgA2s2AnAgACAGIAVrNgJsIAAgCCAHazYCaCAAIAogCWs2AmQgACAMIAtrNgJgIAAgDiANazYCXCAAIBAgD2s2AlggACASIBFrNgJUIAAgFCATazYCUCAAIAIgAWs2AnQLrQ4BF38jAEHAAmsiAyQAIABBKGoiCSABEEogAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgA0HwAWoiCCAJEAUgA0HAAWoiBiAIQcAKEAZBfyEKIAMgAygC8AFBAWsiCzYC8AEgAyADKALAAUEBajYCwAEgAygC9AEhDCADKAL4ASENIAMoAvwBIQ4gAygCgAIhDyADKAKEAiEQIAMoAogCIREgAygCjAIhEiADKAKQAiETIAMoApQCIRQgA0GQAWoiByAGEAUgByAHIAYQBiAAIAcQBSAAIAAgBhAGIAAgACAIEAYjAEGQAWsiBCQAIARB4ABqIgUgABAFIARBMGoiAiAFEAUgAiACEAUgAiAAIAIQBiAFIAUgAhAGIAUgBRAFIAUgAiAFEAYgAiAFEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgBSACIAUQBiACIAUQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIgBRAGIAQgAhAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAQgBBAFIAIgBCACEAYgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgBSACIAUQBiACIAUQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIgBRAGIAQgAhAFQQEhAgNAIAQgBBAFIAJBAWoiAkHkAEcNAAsgBEEwaiICIAQgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIARB4ABqIgUgAiAFEAYgBSAFEAUgBSAFEAUgACAFIAAQBiAEQZABaiQAIAAgACAHEAYgACAAIAgQBiADQeAAaiICIAAQBSACIAIgBhAGIAMgAygChAEiAiAUazYCVCADIAMoAoABIgQgE2s2AlAgAyADKAJ8IgUgEms2AkwgAyADKAJ4IgYgEWs2AkggAyADKAJ0IgcgEGs2AkQgAyADKAJwIgggD2s2AkAgAyADKAJsIhUgDms2AjwgAyADKAJoIhYgDWs2AjggAyADKAJkIhcgDGs2AjQgAyADKAJgIhggC2s2AjAgAyADQTBqEBICQCADQSAQH0UEQCADIAIgFGo2AiQgAyAEIBNqNgIgIAMgBSASajYCHCADIAYgEWo2AhggAyAHIBBqNgIUIAMgCCAPajYCECADIA4gFWo2AgwgAyANIBZqNgIIIAMgDCAXajYCBCADIAsgGGo2AgAgA0GgAmoiAiADEBIgAkEgEB9FDQEgACAAQfAKEAYLIANBoAJqIAAQEiADLQCgAkEBcSABLQAfQQd2RgRAIABBACAAKAIAazYCACAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBAsgAEH4AGogACAJEAZBACEKCyADQcACaiQAIAoL9AQBGX4gATEAHyECIAExAB4hBiABMQAdIQ4gATEABiEHIAExAAUhCCABMQAEIQMgATEACSEPIAExAAghECABMQAHIREgATEADCEJIAExAAshCiABMQAKIQsgATEADyEMIAExAA4hEiABMQANIRMgATEAHCEEIAExABshFCABMQAaIRUgATEAGSEFIAExABghFiABMQAXIRcgATUAACEYIAAgATEAFUIPhiABMQAUQgeGhCABMQAWQheGhCABNQAQIhlCgICACHwiGkIZiHwiDSANQoCAgBB8Ig1CgICA4A+DfT4CGCAAIBZCDYYgF0IFhoQgBUIVhoQiBSANQhqIfCAFQoCAgAh8IgVCgICA8AODfT4CHCAAIBRCDIYgFUIEhoQgBEIUhoQgBUIZiHwiBCAEQoCAgBB8IgRCgICA4A+DfT4CICAAIBkgGkKAgIDwD4N9IBJCCoYgE0IChoQgDEIShoQgCkILhiALQgOGhCAJQhOGhCIJQoCAgAh8IgpCGYh8IgtCgICAEHwiDEIaiHw+AhQgACALIAxCgICA4A+DfT4CECAAIBBCDYYgEUIFhoQgD0IVhoQgCEIOhiADQgaGhCAHQhaGhCIHQoCAgAh8IghCGYh8IgMgA0KAgIAQfCIDQoCAgOAPg30+AgggACACQhKGQoCA8A+DIAZCCoYgDkIChoSEIgIgBEIaiHwgAkKAgIAIfCICQoCAgBCDfT4CJCAAIANCGoggCXwgCkKAgIDwAIN9PgIMIAAgByAIQoCAgPAHg30gGCACQhmIQhN+fCICQoCAgBB8IgZCGoh8PgIEIAAgAiAGQoCAgOAPg30+AgALiwEBAX8jAEEQayICIAA2AgwgAiABNgIIQQAhACACQQA2AgQDQCACIAIoAgQgAigCDCAAai0AACACKAIIIABqLQAAc3I2AgQgAiACKAIEIABBAXIiASACKAIMai0AACACKAIIIAFqLQAAc3I2AgQgAEECaiIAQSBHDQALIAIoAgRBAWtBCHZBAXFBAWsLKQEBfyMAQRBrIgAkACAAQQA6AA9B/JACIABBD2pBABAAGiAAQRBqJAALKAAgAkKAgICAEFoEQBAJAAsgACABIAIgA0EBIARBsJACKAIAEQgAGgsoACACQoCAgIAQWgRAEAkACyAAIAEgAiADQgEgBEGskAIoAgARCQAaCy0BAX4gAq0gA61CIIaEIgZCEFoEfyAAIAFBEGogASAGQhB9IAQgBRAwBUF/CwsYACAAIAEgAiADrSAErUIghoQgBSAGEDALGAAgACABIAIgA60gBK1CIIaEIAUgBhAgC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFECENACAAIAFBEGogASACQhB9IAMgBhAwIQcgBkEgEAcLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQIUUEQCAAQRBqIAAgASACIAMgBhAgIQcgBkEgEAcLIAZBIGokACAHDwsQCQALNwEBfyMAQUBqIgIkACAAIAIQEyAAQdABaiIAIAJCwAAQDBogACABEBMgAkHAABAHIAJBQGskAAsLACAAIAEgAhAMGguEAwEGfyMAQcABayIEJAAgABAZIARBQGtBNkGAARAIGgNAIARBQGsiBSACaiIDIAMtAAAgASACai0AAHM6AAAgBSACQQFyIgNqIgYgBi0AACABIANqLQAAczoAACAFIAJBAnIiA2oiBiAGLQAAIAEgA2otAABzOgAAIAUgAkEDciIDaiIFIAUtAAAgASADai0AAHM6AAAgAkEEaiECIAdBBGoiB0EgRw0ACyAAIARBQGsiAkKAARAMGiAAQdABaiIFEBkgAkHcAEGAARAIGkEAIQJBACEHA0AgBEFAayIAIAJqIgMgAy0AACABIAJqLQAAczoAACAAIAJBAXIiA2oiBiAGLQAAIAEgA2otAABzOgAAIAAgAkECciIDaiIGIAYtAAAgASADai0AAHM6AAAgACACQQNyIgNqIgAgAC0AACABIANqLQAAczoAACACQQRqIQIgB0EEaiIHQSBHDQALIAUgBEFAayIAQoABEAwaIABBgAEQByAEQcAAEAcgBEHAAWokAAvVAgECfyMAQZADayIIJAAgCEEANgIEIAhBEGoiCSAGIAcQJyAIIAYpABA3AgggCEHQAGoiB0LAACAIQQRqIAkQFyAIQZABaiIGIAdBvJACKAIAEQEAGiAHQcAAEAcgBiAEIAVBwJACKAIAEQAAGiAGQYCQAkIAIAV9Qg+DQcCQAigCABEAABogBiABIAJBwJACKAIAEQAAGiAGQYCQAkIAIAJ9Qg+DQcCQAigCABEAABogCCAFNwNIIAYgCEHIAGoiBEIIQcCQAigCABEAABogCCACNwNIIAYgBEIIQcCQAigCABEAABogBiAIQTBqIgRBxJACKAIAEQEAGiAGQYACEAcgBCADEC0hBiAEQRAQBwJAIABFDQAgBgRAIABBACACpxAIGkF/IQYMAQsgACABIAIgCEEEaiAIQRBqEE1BACEGCyAIQRBqQSAQByAIQZADaiQAIAYLpwIBA38jAEGAA2siCSQAIAlBADYCBCAJQRBqIgogByAIECcgCSAHKQAQNwIIIAlBQGsiCELAACAJQQRqIgsgChAXIAlBgAFqIgcgCEG8kAIoAgARAQAaIAhBwAAQByAHIAUgBkHAkAIoAgARAAAaIAdBgJACQgAgBn1CD4NBwJACKAIAEQAAGiAAIAMgBCALIAoQTSAHIAAgBEHAkAIoAgARAAAaIAdBgJACQgAgBH1CD4NBwJACKAIAEQAAGiAJIAY3AzggByAJQThqIgBCCEHAkAIoAgARAAAaIAkgBDcDOCAHIABCCEHAkAIoAgARAAAaIAcgAUHEkAIoAgARAQAaIAdBgAIQByACBEAgAkIQNwMACyAJQRBqQSAQByAJQYADaiQAQQALygUCBX8CfkF/IQYCQCABQcEAa0FASQ0AIAVBwABLDQACfyABQf8BcSEGIAVB/wFxIQUjACIBIQkgAUGABGtBQHEiASQAAkAgAkUgA0IAUnENACAARQ0AIAZBwQBrQf8BcUG/AU0NACAEQQEgBRtFDQAgBUHBAE8NAAJ/IAUEQCAERQ0CIAFBQGtBAEGlAhAIGiABQvnC+JuRo7Pw2wA3AzggAULr+obav7X2wR83AzAgAUKf2PnZwpHagpt/NwMoIAFC0YWa7/rPlIfRADcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgBq0gBa1CCIaEQoiS95X/zPmE6gCFNwMAIAFBgANqIgcgBWpBAEGAASAFaxAIGiAHIAQgBRALGiABQeAAaiAHQYABEAsaIAFBgAE2AuACIAdBgAEQB0GAAQwBCyABQUBrQQBBpQIQCBogAUL5wvibkaOz8NsANwM4IAFC6/qG2r+19sEfNwMwIAFCn9j52cKR2oKbfzcDKCABQtGFmu/6z5SH0QA3AyAgAULx7fT4paf9p6V/NwMYIAFCq/DT9K/uvLc8NwMQIAFCu86qptjQ67O7fzcDCCABIAatQoiS95X/zPmE6gCFNwMAQQALIQQCQCADUA0AIAFB4AFqIQogAUHgAGohBQNAIAQgBWohCEGAAiAEayIHrSILIANaBEAgCCACIAOnIgIQCxogASABKALgAiACajYC4AIMAgsgCCACIAcQCxogASABKALgAiAHajYC4AIgASABKQNAIgxCgAF8NwNAIAEgASkDSCAMQv9+Vq18NwNIIAEgBRAoIAUgCkGAARALGiABIAEoAuACQYABayIENgLgAiACIAdqIQIgAyALfSIDQgBSDQALCyABIAAgBhA1GiAJJABBAAwBCxAJAAshBgsgBgu2AQIBfwN+IwBBoAFrIgMkACABIAJCIBAYGiABIAEtAABB+AFxOgAAIAEgAS0AH0E/cUHAAHI6AB8gAyABECogACADECsgAikACCEEIAIpABAhBSACKQAAIQYgASACKQAYNwAYIAEgBTcAECABIAQ3AAggASAGNwAAIAApAAghBCAAKQAQIQUgACkAACEGIAEgACkAGDcAOCABIAU3ADAgASAENwAoIAEgBjcAICADQaABaiQAQQALBQBBv38LBQBB0AELbQEBfyMAQUBqIgIkACACIAFCIBAYGiACIAItAABB+AFxOgAAIAIgAi0AH0E/cUHAAHI6AB8gACACKQMQNwAQIAAgAikDCDcACCAAIAIpAwA3AAAgACACKQMYNwAYIAJBwAAQByACQUBrJABBAAvXFAIPfyd+IwBBgAJrIgMkAEF/IRACQCABEDcNACADQeAAaiABEEkNACMAQYAQayICJAAgAkGABWoiCiADQeAAaiIBEA0gASkCCCERIAEpAhAhEiABKQIYIRMgASkCACEUIAIgASkCIDcD4AIgAiATNwPYAiACIBI3A9ACIAIgETcDyAIgAiAUNwPAAiABKQIoIREgASkCMCESIAEpAjghEyABQUBrKQIAIRQgAiABKQJINwOIAyACIBQ3A4ADIAIgEzcD+AIgAiASNwPwAiACIBE3A+gCIAEpAlAhESABKQJYIRIgASkCYCETIAEpAmghFCACIAEpAnA3A7ADIAIgFDcDqAMgAiATNwOgAyACIBI3A5gDIAIgETcDkAMgAkHgA2oiASACQcACaiIHEBUgAkGgAWoiCCABIAJB2ARqIgUQBiACQcgBaiACQYgEaiIGIAJBsARqIgQQBiACQfABaiAEIAUQBiACQZgCaiABIAYQBiABIAggChAOIAcgASAFEAYgAkHoAmoiCiAGIAQQBiACQZADaiILIAQgBRAGIAJBuANqIgwgASAGEAYgAkGgBmoiCSAHEA0gASAIIAkQDiAHIAEgBRAGIAogBiAEEAYgCyAEIAUQBiAMIAEgBhAGIAJBwAdqIgkgBxANIAEgCCAJEA4gByABIAUQBiAKIAYgBBAGIAsgBCAFEAYgDCABIAYQBiACQeAIaiIJIAcQDSABIAggCRAOIAcgASAFEAYgCiAGIAQQBiALIAQgBRAGIAwgASAGEAYgAkGACmoiCSAHEA0gASAIIAkQDiAHIAEgBRAGIAogBiAEEAYgCyAEIAUQBiAMIAEgBhAGIAJBoAtqIgkgBxANIAEgCCAJEA4gByABIAUQBiAKIAYgBBAGIAsgBCAFEAYgDCABIAYQBiACQcAMaiIJIAcQDSABIAggCRAOIAcgASAFEAYgCiAGIAQQBiALIAQgBRAGIAwgASAGEAYgAkHgDWogBxANIAJCADcDICACQgA3AxggAkIANwMQIAJCADcDCCACQgA3AiwgAkIANwI0IAJCADcCPCACQgA3AkQgAkKAgICAEDcCTCACQgA3AwAgAkEBNgIoIAJB1ABqQQBBzAAQCBogAkH4AGohCSACQdAAaiEOIAJBKGohD0H8ASEBA0AgAiACKQMgNwOoDyACIAIpAxg3A6APIAIgAikDEDcDmA8gAiACKQMINwOQDyACIAIpAwA3A4gPIAIgAikDSDcD0A8gAiACKQNANwPIDyACIAIpAzg3A8APIAIgAikDMDcDuA8gAiACKQMoNwOwDyACIAIpA1A3A9gPIAIgAikDWDcD4A8gAiACKQNgNwPoDyACIAIpA2g3A/APIAIgAikDcDcD+A8gASIHQZCFAmosAAAhASACQeADaiACQYgPahAVAkAgAUEASgRAIAJBwAJqIg0gAkHgA2oiCCAFEAYgCiAGIAQQBiALIAQgBRAGIAwgCCAGEAYgCCANIAJBgAVqIAFB/gFxQQF2QaABbGoQDgwBCyABQQBODQAgAkHAAmoiDSACQeADaiIIIAUQBiAKIAYgBBAGIAsgBCAFEAYgDCAIIAYQBiAIIA0gAkGABWpBACABa0H+AXFBAXZBoAFsahBICyACIAJB4ANqIgEgBRAGIA8gBiAEEAYgDiAEIAUQBiAJIAEgBhAGIAdBAWshASAHDQALIAJBgAVqIgEgAhASIAFBIBAfIQEgAkGAEGokACABRQ0AIANBASADKAKIASIEazYCAEEAIRAgA0EAIAMoAqwBIgFrNgIkIANBACADKAKoASIKazYCICADQQAgAygCpAEiB2s2AhwgA0EAIAMoAqABIgtrNgIYIANBACADKAKcASICazYCFCADQQAgAygCmAEiDGs2AhAgA0EAIAMoApQBIgVrNgIMIANBACADKAKQASIIazYCCCADQQAgAygCjAEiBms2AgQgAyADECwgAyADKAIEIgmsIhkgAkEBdKwiIn4gAzQCACIRIAusIhJ+fCADKAIIIgusIhsgDKwiE358IAMoAgwiDKwiHiAFQQF0rCIjfnwgAygCECIOrCIfIAisIhR+fCADKAIUIgisIiQgBkEBdKwiJX58IAMoAhgiD6wiLiAEQQFqrCIXfnwgAygCHCIEQRNsrCIaIAFBAXSsIiZ+fCADKAIgIg1BE2ysIhUgCqwiGH58IAMoAiQiCkETbKwiFiAHQQF0rCInfnwgEyAZfiARIAKsIih+fCAbIAWsIil+fCAUIB5+fCAfIAasIip+fCAXICR+fCAPQRNsrCIcIAGsIit+fCAYIBp+fCAVIAesIix+fCASIBZ+fCAZICN+IBEgE358IBQgG358IB4gJX58IBcgH358IAhBE2ysIi0gJn58IBggHH58IBogJ358IBIgFX58IBYgIn58IjBCgICAEHwiMUIah3wiMkKAgIAIfCIzQhmHfCIgICBCgICAEHwiIUKAgIDgD4N9PgJIIAMgGSAlfiARIBR+fCAXIBt+fCAMQRNsrCIdICZ+fCAOQRNsrCIgIBh+fCAnIC1+fCASIBx+fCAaICJ+fCATIBV+fCAWICN+fCAXIBl+IBEgKn58IAtBE2ysIi8gK358IBggHX58ICAgLH58IBIgLX58IBwgKH58IBMgGn58IBUgKX58IBQgFn58IAlBE2ysICZ+IBEgF358IBggL358IB0gJ358IBIgIH58ICIgLX58IBMgHH58IBogI358IBQgFX58IBYgJX58Ii9CgICAEHwiNEIah3wiNUKAgIAIfCI2QhmHfCIdIB1CgICAEHwiN0KAgIDgD4N9PgI4IAMgEiAZfiARICx+fCAbICh+fCATIB5+fCAfICl+fCAUICR+fCAqIC5+fCAErCIdIBd+fCAVICt+fCAWIBh+fCAhQhqHfCIhICFCgICACHwiIUKAgIDwD4N9PgJMIAMgFCAZfiARICl+fCAbICp+fCAXIB5+fCAgICt+fCAYIC1+fCAcICx+fCASIBp+fCAVICh+fCATIBZ+fCA3QhqHfCIVIBVCgICACHwiFUKAgIDwD4N9PgI8IAMgGSAnfiARIBh+fCASIBt+fCAeICJ+fCATIB9+fCAjICR+fCAUIC5+fCAdICV+fCANrCIaIBd+fCAWICZ+fCAhQhmHfCIWIBZCgICAEHwiFkKAgIDgD4N9PgJQIAMgMiAzQoCAgPAPg30gMCAxQoCAgGCDfSAVQhmHfCIVQoCAgBB8IhxCGoh8PgJEIAMgFSAcQoCAgOAPg30+AkAgAyAYIBl+IBEgK358IBsgLH58IBIgHn58IB8gKH58IBMgJH58ICkgLn58IBQgHX58IBogKn58IAqsIBd+fCAWQhqHfCIRIBFCgICACHwiEUKAgIDwD4N9PgJUIAMgNSA2QoCAgPAPg30gLyA0QoCAgGCDfSARQhmHQhN+fCIRQoCAgBB8IhJCGoh8PgI0IAMgESASQoCAgOAPg30+AjAgACADQTBqEBILIANBgAJqJAAgEAsEAEEMCwQAQQILBABBbgsEAEERCwQAQTQLnwECAX8BfiMAQTBrIgEkACABIAApABg3AxggASAAKQAQNwMQIAEgACkAADcDACABIAApAAg3AwggASAAKQAkNwMgIAEgAUIoIABBIGpBACAAQbCQAigCABEIABogACABKQMYNwAYIAAgASkDEDcAECAAIAEpAwg3AAggACABKQMANwAAIAEpAyAhAiAAQQE2ACAgACACNwAkIAFBMGokAAsqAQF+IAAgASACECcgAEEBNgAgIAEpABAhAyAAQgA3ACwgACADNwAkQQALMAEBfiABQRgQFiAAIAEgAhAnIABBATYAICABKQAQIQMgAEIANwAsIAAgAzcAJEEACyQAQeSaAigCAAR/QQEFEExB0JoCQRAQFkHkmgJBATYCAEEACwvqBAEFfyMAQfAAayIGJAAgAkIAUgRAIAYgBSkAGDcDGCAGIAUpABA3AxAgBiAFKQAANwMAIAYgBSkACDcDCCAGIAMpAAA3A2AgBiAEPABoIAYgBEI4iDwAbyAGIARCMIg8AG4gBiAEQiiIPABtIAYgBEIgiDwAbCAGIARCGIg8AGsgBiAEQhCIPABqIAYgBEIIiDwAaQJAIAJCwABaBEADQEEAIQUgBkEgaiAGQeAAaiAGECkDQCAAIAVqIAZBIGoiByAFai0AACABIAVqLQAAczoAACAAIAVBAXIiA2ogAyAHai0AACABIANqLQAAczoAACAFQQJqIgVBwABHDQALIAYgBi0AaEEBaiIDOgBoIAYgBi0AaSADQQh2aiIDOgBpIAYgBi0AaiADQQh2aiIDOgBqIAYgBi0AayADQQh2aiIDOgBrIAYgBi0AbCADQQh2aiIDOgBsIAYgBi0AbSADQQh2aiIDOgBtIAYgBi0AbiADQQh2aiIDOgBuIAYgBi0AbyADQQh2ajoAbyABQUBrIQEgAEFAayEAIAJCQHwiAkI/Vg0ACyACUA0BC0EAIQUgBkEgaiAGQeAAaiAGECkgAqciA0EBcSEIIANBAUcEQCADQX5xIQlBACEDA0AgACAFaiAGQSBqIgogBWotAAAgASAFai0AAHM6AAAgACAFQQFyIgdqIAcgCmotAAAgASAHai0AAHM6AAAgBUECaiEFIANBAmoiAyAJRw0ACwsgCEUNACAAIAVqIAZBIGogBWotAAAgASAFai0AAHM6AAALIAZBIGpBwAAQByAGQSAQBwsgBkHwAGokAEEAC4IEAgZ/AX4jAEHwAGsiBCQAIAFCAFIEQCAEIAMpABg3AxggBCADKQAQNwMQIAQgAykAADcDACAEIAMpAAg3AwggAikAACEKIARCADcDaCAEIAo3A2ACQCABQsAAWgRAA0AgACAEQeAAaiAEECkgBCAELQBoQQFqIgI6AGggBCAELQBpIAJBCHZqIgI6AGkgBCAELQBqIAJBCHZqIgI6AGogBCAELQBrIAJBCHZqIgI6AGsgBCAELQBsIAJBCHZqIgI6AGwgBCAELQBtIAJBCHZqIgI6AG0gBCAELQBuIAJBCHZqIgI6AG4gBCAELQBvIAJBCHZqOgBvIABBQGshACABQkB8IgFCP1YNAAsgAVANAQtBACECIARBIGogBEHgAGogBBApIAGnIgVBA3EhB0EAIQMgBUEBa0EDTwRAIAVBfHEhCEEAIQUDQCAAIANqIARBIGoiCSADai0AADoAACAAIANBAXIiBmogBiAJai0AADoAACAAIANBAnIiBmogBEEgaiAGai0AADoAACAAIANBA3IiBmogBEEgaiAGai0AADoAACADQQRqIQMgBUEEaiIFIAhHDQALCyAHRQ0AA0AgACADaiAEQSBqIANqLQAAOgAAIANBAWohAyACQQFqIgIgB0cNAAsLIARBIGpBwAAQByAEQSAQBwsgBEHwAGokAEEAC4YGARR/IwBBsAJrIgIkACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAAIAEtABg6ABggACABLQAZOgAZIAAgAS0AGjoAGiAAIAEtABs6ABsgACABLQAcOgAcIAAgAS0AHToAHSAAIAEtAB46AB4gAS0AHyEBIAAgAC0AAEH4AXE6AAAgACABQT9xQcAAcjoAHyACQTBqIAAQKiACKAKEASEBIAIoAlwhAyACKAKIASEEIAIoAmAhBSACKAKMASEGIAIoAmQhByACKAKQASEIIAIoAmghCSACKAKUASEKIAIoAmwhCyACKAKYASEMIAIoAnAhDSACKAKcASEOIAIoAnQhDyACKAKgASEQIAIoAnghESACKAKAASESIAIoAlghEyACIAIoAnwiFCACKAKkASIVajYCpAIgAiAQIBFqNgKgAiACIA4gD2o2ApwCIAIgDCANajYCmAIgAiAKIAtqNgKUAiACIAggCWo2ApACIAIgBiAHajYCjAIgAiAEIAVqNgKIAiACIAEgA2o2AoQCIAIgEiATajYCgAIgAiAVIBRrNgL0ASACIBAgEWs2AvABIAIgDiAPazYC7AEgAiAMIA1rNgLoASACIAogC2s2AuQBIAIgCCAJazYC4AEgAiAGIAdrNgLcASACIAQgBWs2AtgBIAIgASADazYC1AEgAiASIBNrNgLQASACQdABaiIBIAEQLCACIAJBgAJqIAEQBiAAIAIQEiACQbACaiQAQQAL+RwCPX8MfiMAQfACayIDJAADQCACIAZqLQAAIgQgBkGQhwJqIgktAABzIAdyIQcgBCAJLQDAAXMgBXIhBSAEIAktAKABcyAMciEMIAQgCS0AgAFzIAhyIQggBCAJLQBgcyANciENIAQgCUFAay0AAHMgC3IhCyAEIAktACBzIApyIQogBkEBaiIGQR9HDQALQX8hCSACLQAfQf8AcSIEIApyQf8BcUEBayAEIAdyQf8BcUEBa3IgBCALckH/AXFBAWtyIARB1wBzIA1yQf8BcUEBa3IgBEH/AHMiBCAIckH/AXFBAWtyIAQgDHJB/wFxQQFrciAEIAVyQf8BcUEBa3JBgAJxRQRAIAMgASkAGDcD6AIgAyABKQAQNwPgAiADIAEpAAAiQjcD0AIgAyABKQAINwPYAiADIEKnQfgBcToA0AIgAyADLQDvAkE/cUHAAHI6AO8CIANBoAJqIAIQSiADQgA3AoQCIANCADcCjAIgA0EANgKUAiADQgA3A9ABIANCADcD2AEgA0IANwPgASADQgA3AvQBIANBATYC8AEgA0IANwL8ASADQgA3A8ABIANCADcDyAEgAyADKQO4AjcDqAEgAyADKQOwAjcDoAEgAyADKQOoAjcDmAEgAyADKQOgAjcDkAEgAyADKQPAAjcDsAEgA0IANwJ0IANCADcCfCADQQA2AoQBIANCADcCZCADQQE2AmAgA0IANwJsQf4BIQJBACEEA0AgAygClAIhCSADKAK0ASEGIAMoAmAhByADKALAASEKIAMoApABIQsgAygC8AEhDSADKAJkIQggAygCxAEhDCADKAKUASEFIAMoAvQBIRAgAygCaCEOIAMoAsgBIREgAygCmAEhEiADKAL4ASETIAMoAmwhDyADKALMASEUIAMoApwBIRUgAygC/AEhFiADKAJwIRggAygC0AEhHCADKAKgASEdIAMoAoACIR4gAygCdCEaIAMoAtQBIR8gAygCpAEhICADKAKEAiEhIAMoAnghGSADKALYASEiIAMoAqgBISMgAygCiAIhJCADKAJ8IRsgAygC3AEhJSADKAKsASEmIAMoAowCIScgAygCgAEhFyADKALgASEoIAMoArABISkgAygCkAIhLCADQQAgBCADQdACaiACIgFBA3ZqLQAAIAJBB3F2QQFxIgRzayICIAMoAoQBIiogAygC5AEiK3NxIi0gKnMiKjYChAEgAyAGIAYgCXMgAnEiLnMiLyAqazYCVCADIBcgFyAocyACcSIwcyIGNgKAASADICkgKSAscyACcSIXcyIpIAZrNgJQIAMgGyAbICVzIAJxIjFzIhs2AnwgAyAmICYgJ3MgAnEiMnMiJiAbazYCTCADIBkgGSAicyACcSIzcyIZNgJ4IAMgIyAjICRzIAJxIjRzIiMgGWs2AkggAyAaIBogH3MgAnEiNXMiGjYCdCADICAgICAhcyACcSI2cyIgIBprNgJEIAMgGCAYIBxzIAJxIjdzIhg2AnAgAyAdIB0gHnMgAnEiOHMiHSAYazYCQCADIA8gDyAUcyACcSI5cyIPNgJsIAMgFSAVIBZzIAJxIjpzIhUgD2s2AjwgAyAOIA4gEXMgAnEiO3MiDjYCaCADIBIgEiATcyACcSI8cyISIA5rNgI4IAMgCCAIIAxzIAJxIj1zIgg2AmQgAyAFIAUgEHMgAnEiPnMiBSAIazYCNCADIAcgByAKcyACcSI/cyIHNgJgIAMgCyALIA1zIAJxIgJzIgsgB2s2AjAgAyAJIC5zIgkgKyAtcyIrazYCJCADIBcgLHMiFyAoIDBzIihrNgIgIAMgJyAycyInICUgMXMiJWs2AhwgAyAkIDRzIiQgIiAzcyIiazYCGCADICEgNnMiISAfIDVzIh9rNgIUIAMgHiA4cyIeIBwgN3MiHGs2AhAgAyAWIDpzIhYgFCA5cyIUazYCDCADIBMgPHMiEyARIDtzIhFrNgIIIAMgECA+cyIQIAwgPXMiDGs2AgQgAyACIA1zIgIgCiA/cyIKazYCACADIAkgK2o2ApQCIAMgFyAoajYCkAIgAyAlICdqNgKMAiADICIgJGo2AogCIAMgHyAhajYChAIgAyAcIB5qNgKAAiADIBEgE2o2AvgBIAMgDCAQajYC9AEgAyACIApqNgLwASADIBQgFmo2AvwBIAMgKiAvajYC5AEgAyAGIClqNgLgASADIBsgJmo2AtwBIAMgGSAjajYC2AEgAyAaICBqNgLUASADIBggHWo2AtABIAMgDyAVajYCzAEgAyAOIBJqNgLIASADIAUgCGo2AsQBIAMgByALajYCwAEgA0HgAGoiGyADQTBqIhogA0HwAWoiGRAGIANBwAFqIhcgFyADEAYgGiADEAUgAyAZEAUgAygCwAEhAiADKAJgIQkgAygCxAEhBiADKAJkIQcgAygCyAEhCiADKAJoIQsgAygCzAEhDSADKAJsIQggAygC0AEhDCADKAJwIQUgAygC1AEhECADKAJ0IQ4gAygC2AEhESADKAJ4IRIgAygC3AEhEyADKAJ8IQ8gAygC4AEhFCADKAKAASEVIAMgAygC5AEiFiADKAKEASIYajYCtAEgAyAUIBVqNgKwASADIA8gE2o2AqwBIAMgESASajYCqAEgAyAOIBBqNgKkASADIAUgDGo2AqABIAMgCCANajYCnAEgAyAKIAtqNgKYASADIAYgB2o2ApQBIAMgAiAJajYCkAEgAyAYIBZrNgLkASADIBUgFGs2AuABIAMgDyATazYC3AEgAyASIBFrNgLYASADIA4gEGs2AtQBIAMgBSAMazYC0AEgAyAIIA1rNgLMASADIAsgCms2AsgBIAMgByAGazYCxAEgAyAJIAJrNgLAASAZIAMgGhAGIAMoAjQhAiADKAIEIQUgAygCOCEJIAMoAgghECADKAJAIQYgAygCECEOIAMoAjwhByADKAIMIREgAygCSCEKIAMoAhghEiADKAJEIQsgAygCFCETIAMoAlAhDSADKAIgIQ8gAygCTCEIIAMoAhwhFCADKAJUIQwgAygCJCEVIAMgAygCACADKAIwIhZrIhg2AgAgAyAVIAxrIhU2AiQgAyAUIAhrIhQ2AhwgAyAPIA1rIg82AiAgAyATIAtrIhM2AhQgAyASIAprIhI2AhggAyARIAdrIhE2AgwgAyAOIAZrIg42AhAgAyAQIAlrIhA2AgggAyAFIAJrIgU2AgQgFyAXEAUgAyAVrELCtgd+IkJCgICACHwiRkIZh0ITfiAYrELCtgd+fCJAIEBCgICAEHwiQEKAgIDgD4N9pyIVNgJgIAMgBaxCwrYHfiJBIEFCgICACHwiQUKAgIDwD4N9IEBCGoh8pyIFNgJkIAMgEKxCwrYHfiBBQhmHfCJAIEBCgICAEHwiQEKAgIDgD4N9pyIQNgJoIAMgDqxCwrYHfiARrELCtgd+IkFCgICACHwiR0IZh3wiQyBDQoCAgBB8IkNCgICA4A+DfaciDjYCcCADIBKsQsK2B34gE6xCwrYHfiJIQoCAgAh8IklCGYd8IkQgREKAgIAQfCJEQoCAgOAPg32nIhE2AnggAyAPrELCtgd+IBSsQsK2B34iSkKAgIAIfCJLQhmHfCJFIEVCgICAEHwiRUKAgIDgD4N9pyISNgKAASADIEBCGoggQXwgR0KAgIDwD4N9pyITNgJsIAMgQ0IaiCBIfCBJQoCAgPAPg32nIg82AnQgAyBEQhqIIEp8IEtCgICA8A+DfaciFDYCfCADIEVCGoggQnwgRkKAgIDwD4N9pyIYNgKEASADQZABaiIZIBkQBSADIAwgGGo2AlQgAyANIBJqNgJQIAMgCCAUajYCTCADIAogEWo2AkggAyALIA9qNgJEIAMgBiAOajYCQCADIAcgE2o2AjwgAyAJIBBqNgI4IAMgAiAFajYCNCADIBUgFmo2AjAgAUEBayECIBsgA0GgAmogFxAGIBcgAyAaEAYgAQ0ACyADKAKQASEQIAMoAvABIQIgAygClAEhDiADKAL0ASEGIAMoApgBIREgAygC+AEhByADKAKcASESIAMoAvwBIQogAygCoAEhEyADKAKAAiELIAMoAqQBIQ8gAygChAIhDSADKAKoASEUIAMoAogCIQggAygCrAEhFSADKAKMAiEMIAMoArABIRYgAygCkAIhBSADQQAgBGsiASADKAKUAiIEIAMoArQBc3EgBHM2ApQCIAMgBSAFIBZzIAFxczYCkAIgAyAMIAwgFXMgAXFzNgKMAiADIAggCCAUcyABcXM2AogCIAMgDSANIA9zIAFxczYChAIgAyALIAsgE3MgAXFzNgKAAiADIAogCiAScyABcXM2AvwBIAMgByAHIBFzIAFxczYC+AEgAyAGIAYgDnMgAXFzNgL0ASADIAIgAiAQcyABcXM2AvABIAMoAsABIQIgAygCYCEFIAMoAsQBIQQgAygCZCEQIAMoAsgBIQYgAygCaCEOIAMoAswBIQcgAygCbCERIAMoAtABIQogAygCcCESIAMoAtQBIQsgAygCdCETIAMoAtgBIQ0gAygCeCEPIAMoAtwBIQggAygCfCEUIAMoAuABIQwgAygCgAEhFSADIAMoAuQBIhYgAygChAFzIAFxIBZzNgLkASADIAwgDCAVcyABcXM2AuABIAMgCCAIIBRzIAFxczYC3AEgAyANIA0gD3MgAXFzNgLYASADIAsgCyATcyABcXM2AtQBIAMgCiAKIBJzIAFxczYC0AEgAyAHIAcgEXMgAXFzNgLMASADIAYgBiAOcyABcXM2AsgBIAMgBCAEIBBzIAFxczYCxAEgAyACIAIgBXMgAXFzNgLAASADQcABaiIBIAEQLCADQfABaiICIAIgARAGIAAgAhASIANB0AJqQSAQB0EAIQkLIANB8AJqJAAgCQuJDAEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAiACKAIAIgFrIgJB5JYCKAIASQ0BIAAgAWohAEHolgIoAgAgAkcEQCABQf8BTQRAIAIoAggiBCABQQN2IgFBA3RB/JYCakYaIAQgAigCDCIDRgRAQdSWAkHUlgIoAgBBfiABd3E2AgAMAwsgBCADNgIMIAMgBDYCCAwCCyACKAIYIQYCQCACIAIoAgwiAUcEQCACKAIIIgMgATYCDCABIAM2AggMAQsCQCACQRRqIgQoAgAiAw0AIAJBEGoiBCgCACIDDQBBACEBDAELA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAsgBkUNAQJAIAIoAhwiBEECdEGEmQJqIgMoAgAgAkYEQCADIAE2AgAgAQ0BQdiWAkHYlgIoAgBBfiAEd3E2AgAMAwsgBkEQQRQgBigCECACRhtqIAE2AgAgAUUNAgsgASAGNgIYIAIoAhAiAwRAIAEgAzYCECADIAE2AhgLIAIoAhQiA0UNASABIAM2AhQgAyABNgIYDAELIAUoAgQiAUEDcUEDRw0AQdyWAiAANgIAIAUgAUF+cTYCBCACIABBAXI2AgQgACACaiAANgIADwsgAiAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEBB7JYCKAIAIAVGBEBB7JYCIAI2AgBB4JYCQeCWAigCACAAaiIANgIAIAIgAEEBcjYCBCACQeiWAigCAEcNA0HclgJBADYCAEHolgJBADYCAA8LQeiWAigCACAFRgRAQeiWAiACNgIAQdyWAkHclgIoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgQgAUEDdiIBQQN0QfyWAmpGGiAEIAUoAgwiA0YEQEHUlgJB1JYCKAIAQX4gAXdxNgIADAILIAQgAzYCDCADIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgFHBEAgBSgCCCIDQeSWAigCAEkaIAMgATYCDCABIAM2AggMAQsCQCAFQRRqIgQoAgAiAw0AIAVBEGoiBCgCACIDDQBBACEBDAELA0AgBCEHIAMiAUEUaiIEKAIAIgMNACABQRBqIQQgASgCECIDDQALIAdBADYCAAsgBkUNAAJAIAUoAhwiBEECdEGEmQJqIgMoAgAgBUYEQCADIAE2AgAgAQ0BQdiWAkHYlgIoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAwRAIAEgAzYCECADIAE2AhgLIAUoAhQiA0UNACABIAM2AhQgAyABNgIYCyACIABBAXI2AgQgACACaiAANgIAIAJB6JYCKAIARw0BQdyWAiAANgIADwsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgALIABB/wFNBEAgAEF4cUH8lgJqIQECf0HUlgIoAgAiA0EBIABBA3Z0IgBxRQRAQdSWAiAAIANyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQQgAEH///8HTQRAIABBJiAAQQh2ZyIBa3ZBAXEgAUEBdGtBPmohBAsgAiAENgIcIAJCADcCECAEQQJ0QYSZAmohBwJAAkACQEHYlgIoAgAiA0EBIAR0IgFxRQRAQdiWAiABIANyNgIAIAcgAjYCACACIAc2AhgMAQsgAEEZIARBAXZrQQAgBEEfRxt0IQQgBygCACEBA0AgASIDKAIEQXhxIABGDQIgBEEddiEBIARBAXQhBCADIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAI2AhAgAiADNgIYCyACIAI2AgwgAiACNgIIDAELIAMoAggiACACNgIMIAMgAjYCCCACQQA2AhggAiADNgIMIAIgADYCCAtB9JYCQfSWAigCAEEBayIAQX8gABs2AgALC60pAQt/IwBBEGsiCyQAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBB1JYCKAIAIgZBECAAQQtqQXhxIABBC0kbIgVBA3YiAHYiAUEDcQRAAkAgAUF/c0EBcSAAaiICQQN0IgFB/JYCaiIAIAFBhJcCaigCACIBKAIIIgRGBEBB1JYCIAZBfiACd3E2AgAMAQsgBCAANgIMIAAgBDYCCAsgAUEIaiEAIAEgAkEDdCICQQNyNgIEIAEgAmoiASABKAIEQQFyNgIEDAoLIAVB3JYCKAIAIgdNDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxIgBBACAAa3FoIgFBA3QiAEH8lgJqIgIgAEGElwJqKAIAIgAoAggiBEYEQEHUlgIgBkF+IAF3cSIGNgIADAELIAQgAjYCDCACIAQ2AggLIAAgBUEDcjYCBCAAIAVqIgggAUEDdCIBIAVrIgRBAXI2AgQgACABaiAENgIAIAcEQCAHQXhxQfyWAmohAUHolgIoAgAhAgJ/IAZBASAHQQN2dCIDcUUEQEHUlgIgAyAGcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQBB6JYCIAg2AgBB3JYCIAQ2AgAMCgtB2JYCKAIAIgpFDQEgCkEAIAprcWhBAnRBhJkCaigCACICKAIEQXhxIAVrIQMgAiEBA0ACQCABKAIQIgBFBEAgASgCFCIARQ0BCyAAKAIEQXhxIAVrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAELCyACKAIYIQkgAiACKAIMIgRHBEAgAigCCCIAQeSWAigCAEkaIAAgBDYCDCAEIAA2AggMCQsgAkEUaiIBKAIAIgBFBEAgAigCECIARQ0DIAJBEGohAQsDQCABIQggACIEQRRqIgEoAgAiAA0AIARBEGohASAEKAIQIgANAAsgCEEANgIADAgLQX8hBSAAQb9/Sw0AIABBC2oiAEF4cSEFQdiWAigCACIIRQ0AQQAgBWshAwJAAkACQAJ/QQAgBUGAAkkNABpBHyAFQf///wdLDQAaIAVBJiAAQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgdBAnRBhJkCaigCACIBRQRAQQAhAAwBC0EAIQAgBUEZIAdBAXZrQQAgB0EfRxt0IQIDQAJAIAEoAgRBeHEgBWsiBiADTw0AIAEhBCAGIgMNAEEAIQMgASEADAMLIAAgASgCFCIGIAYgASACQR12QQRxaigCECIBRhsgACAGGyEAIAJBAXQhAiABDQALCyAAIARyRQRAQQAhBEECIAd0IgBBACAAa3IgCHEiAEUNAyAAQQAgAGtxaEECdEGEmQJqKAIAIQALIABFDQELA0AgACgCBEF4cSAFayICIANJIQEgAiADIAEbIQMgACAEIAEbIQQgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgBEUNACADQdyWAigCACAFa08NACAEKAIYIQcgBCAEKAIMIgJHBEAgBCgCCCIAQeSWAigCAEkaIAAgAjYCDCACIAA2AggMBwsgBEEUaiIBKAIAIgBFBEAgBCgCECIARQ0DIARBEGohAQsDQCABIQYgACICQRRqIgEoAgAiAA0AIAJBEGohASACKAIQIgANAAsgBkEANgIADAYLIAVB3JYCKAIAIgRNBEBB6JYCKAIAIQACQCAEIAVrIgFBEE8EQCAAIAVqIgIgAUEBcjYCBCAAIARqIAE2AgAgACAFQQNyNgIEDAELIAAgBEEDcjYCBCAAIARqIgEgASgCBEEBcjYCBEEAIQJBACEBC0HclgIgATYCAEHolgIgAjYCACAAQQhqIQAMCAsgBUHglgIoAgAiAkkEQEHglgIgAiAFayIBNgIAQeyWAkHslgIoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAgLQQAhACAFQS9qIgMCf0GsmgIoAgAEQEG0mgIoAgAMAQtBuJoCQn83AgBBsJoCQoCggICAgAQ3AgBBrJoCIAtBDGpBcHFB2KrVqgVzNgIAQcCaAkEANgIAQZCaAkEANgIAQYAgCyIBaiIGQQAgAWsiCHEiASAFTQ0HQYyaAigCACIEBEBBhJoCKAIAIgcgAWoiCSAHTQ0IIAQgCUkNCAsCQEGQmgItAABBBHFFBEACQAJAAkACQEHslgIoAgAiBARAQZSaAiEAA0AgBCAAKAIAIgdPBEAgByAAKAIEaiAESw0DCyAAKAIIIgANAAsLQQAQHCICQX9GDQMgASEGQbCaAigCACIAQQFrIgQgAnEEQCABIAJrIAIgBGpBACAAa3FqIQYLIAUgBk8NA0GMmgIoAgAiAARAQYSaAigCACIEIAZqIgggBE0NBCAAIAhJDQQLIAYQHCIAIAJHDQEMBQsgBiACayAIcSIGEBwiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAYgBUEwak8EQCAAIQIMBAtBtJoCKAIAIgIgAyAGa2pBACACa3EiAhAcQX9GDQEgAiAGaiEGIAAhAgwDCyACQX9HDQILQZCaAkGQmgIoAgBBBHI2AgALIAEQHCECQQAQHCEAIAJBf0YNBSAAQX9GDQUgACACTQ0FIAAgAmsiBiAFQShqTQ0FC0GEmgJBhJoCKAIAIAZqIgA2AgBBiJoCKAIAIABJBEBBiJoCIAA2AgALAkBB7JYCKAIAIgMEQEGUmgIhAANAIAIgACgCACIBIAAoAgQiBGpGDQIgACgCCCIADQALDAQLQeSWAigCACIAQQAgACACTRtFBEBB5JYCIAI2AgALQQAhAEGYmgIgBjYCAEGUmgIgAjYCAEH0lgJBfzYCAEH4lgJBrJoCKAIANgIAQaCaAkEANgIAA0AgAEEDdCIBQYSXAmogAUH8lgJqIgQ2AgAgAUGIlwJqIAQ2AgAgAEEBaiIAQSBHDQALQeCWAiAGQShrIgBBeCACa0EHcUEAIAJBCGpBB3EbIgFrIgQ2AgBB7JYCIAEgAmoiATYCACABIARBAXI2AgQgACACakEoNgIEQfCWAkG8mgIoAgA2AgAMBAsgAC0ADEEIcQ0CIAEgA0sNAiACIANNDQIgACAEIAZqNgIEQeyWAiADQXggA2tBB3FBACADQQhqQQdxGyIAaiIBNgIAQeCWAkHglgIoAgAgBmoiAiAAayIANgIAIAEgAEEBcjYCBCACIANqQSg2AgRB8JYCQbyaAigCADYCAAwDC0EAIQQMBQtBACECDAMLQeSWAigCACACSwRAQeSWAiACNgIACyACIAZqIQFBlJoCIQACQAJAAkACQAJAAkADQCABIAAoAgBHBEAgACgCCCIADQEMAgsLIAAtAAxBCHFFDQELQZSaAiEAA0AgAyAAKAIAIgFPBEAgASAAKAIEaiIEIANLDQMLIAAoAgghAAwACwALIAAgAjYCACAAIAAoAgQgBmo2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgcgBUEDcjYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiBiAFIAdqIgVrIQAgAyAGRgRAQeyWAiAFNgIAQeCWAkHglgIoAgAgAGoiADYCACAFIABBAXI2AgQMAwtB6JYCKAIAIAZGBEBB6JYCIAU2AgBB3JYCQdyWAigCACAAaiIANgIAIAUgAEEBcjYCBCAAIAVqIAA2AgAMAwsgBigCBCIDQQNxQQFGBEAgA0F4cSEJAkAgA0H/AU0EQCAGKAIIIgEgA0EDdiIEQQN0QfyWAmpGGiABIAYoAgwiAkYEQEHUlgJB1JYCKAIAQX4gBHdxNgIADAILIAEgAjYCDCACIAE2AggMAQsgBigCGCEIAkAgBiAGKAIMIgJHBEAgBigCCCIBIAI2AgwgAiABNgIIDAELAkAgBkEUaiIDKAIAIgENACAGQRBqIgMoAgAiAQ0AQQAhAgwBCwNAIAMhBCABIgJBFGoiAygCACIBDQAgAkEQaiEDIAIoAhAiAQ0ACyAEQQA2AgALIAhFDQACQCAGKAIcIgFBAnRBhJkCaiIEKAIAIAZGBEAgBCACNgIAIAINAUHYlgJB2JYCKAIAQX4gAXdxNgIADAILIAhBEEEUIAgoAhAgBkYbaiACNgIAIAJFDQELIAIgCDYCGCAGKAIQIgEEQCACIAE2AhAgASACNgIYCyAGKAIUIgFFDQAgAiABNgIUIAEgAjYCGAsgBiAJaiIGKAIEIQMgACAJaiEACyAGIANBfnE2AgQgBSAAQQFyNgIEIAAgBWogADYCACAAQf8BTQRAIABBeHFB/JYCaiEBAn9B1JYCKAIAIgJBASAAQQN2dCIAcUUEQEHUlgIgACACcjYCACABDAELIAEoAggLIQAgASAFNgIIIAAgBTYCDCAFIAE2AgwgBSAANgIIDAMLQR8hAyAAQf///wdNBEAgAEEmIABBCHZnIgFrdkEBcSABQQF0a0E+aiEDCyAFIAM2AhwgBUIANwIQIANBAnRBhJkCaiEBAkBB2JYCKAIAIgJBASADdCIEcUUEQEHYlgIgAiAEcjYCACABIAU2AgAMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACECA0AgAiIBKAIEQXhxIABGDQMgA0EddiECIANBAXQhAyABIAJBBHFqIgQoAhAiAg0ACyAEIAU2AhALIAUgATYCGCAFIAU2AgwgBSAFNgIIDAILQeCWAiAGQShrIgBBeCACa0EHcUEAIAJBCGpBB3EbIgFrIgg2AgBB7JYCIAEgAmoiATYCACABIAhBAXI2AgQgACACakEoNgIEQfCWAkG8mgIoAgA2AgAgAyAEQScgBGtBB3FBACAEQSdrQQdxG2pBL2siACAAIANBEGpJGyIBQRs2AgQgAUGcmgIpAgA3AhAgAUGUmgIpAgA3AghBnJoCIAFBCGo2AgBBmJoCIAY2AgBBlJoCIAI2AgBBoJoCQQA2AgAgAUEYaiEAA0AgAEEHNgIEIABBCGohAiAAQQRqIQAgAiAESQ0ACyABIANGDQMgASABKAIEQX5xNgIEIAMgASADayICQQFyNgIEIAEgAjYCACACQf8BTQRAIAJBeHFB/JYCaiEAAn9B1JYCKAIAIgFBASACQQN2dCICcUUEQEHUlgIgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDCADIAA2AgwgAyABNgIIDAQLQR8hACACQf///wdNBEAgAkEmIAJBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyADIAA2AhwgA0IANwIQIABBAnRBhJkCaiEBAkBB2JYCKAIAIgRBASAAdCIGcUUEQEHYlgIgBCAGcjYCACABIAM2AgAMAQsgAkEZIABBAXZrQQAgAEEfRxt0IQAgASgCACEEA0AgBCIBKAIEQXhxIAJGDQQgAEEddiEEIABBAXQhACABIARBBHFqIgYoAhAiBA0ACyAGIAM2AhALIAMgATYCGCADIAM2AgwgAyADNgIIDAMLIAEoAggiACAFNgIMIAEgBTYCCCAFQQA2AhggBSABNgIMIAUgADYCCAsgB0EIaiEADAULIAEoAggiACADNgIMIAEgAzYCCCADQQA2AhggAyABNgIMIAMgADYCCAtB4JYCKAIAIgAgBU0NAEHglgIgACAFayIBNgIAQeyWAkHslgIoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADAMLQdCWAkEwNgIAQQAhAAwCCwJAIAdFDQACQCAEKAIcIgBBAnRBhJkCaiIBKAIAIARGBEAgASACNgIAIAINAUHYlgIgCEF+IAB3cSIINgIADAILIAdBEEEUIAcoAhAgBEYbaiACNgIAIAJFDQELIAIgBzYCGCAEKAIQIgAEQCACIAA2AhAgACACNgIYCyAEKAIUIgBFDQAgAiAANgIUIAAgAjYCGAsCQCADQQ9NBEAgBCADIAVqIgBBA3I2AgQgACAEaiIAIAAoAgRBAXI2AgQMAQsgBCAFQQNyNgIEIAQgBWoiAiADQQFyNgIEIAIgA2ogAzYCACADQf8BTQRAIANBeHFB/JYCaiEAAn9B1JYCKAIAIgFBASADQQN2dCIDcUUEQEHUlgIgASADcjYCACAADAELIAAoAggLIQEgACACNgIIIAEgAjYCDCACIAA2AgwgAiABNgIIDAELQR8hACADQf///wdNBEAgA0EmIANBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyACIAA2AhwgAkIANwIQIABBAnRBhJkCaiEBAkACQCAIQQEgAHQiBnFFBEBB2JYCIAYgCHI2AgAgASACNgIADAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAEoAgAhBQNAIAUiASgCBEF4cSADRg0CIABBHXYhBiAAQQF0IQAgASAGQQRxaiIGKAIQIgUNAAsgBiACNgIQCyACIAE2AhggAiACNgIMIAIgAjYCCAwBCyABKAIIIgAgAjYCDCABIAI2AgggAkEANgIYIAIgATYCDCACIAA2AggLIARBCGohAAwBCwJAIAlFDQACQCACKAIcIgBBAnRBhJkCaiIBKAIAIAJGBEAgASAENgIAIAQNAUHYlgIgCkF+IAB3cTYCAAwCCyAJQRBBFCAJKAIQIAJGG2ogBDYCACAERQ0BCyAEIAk2AhggAigCECIABEAgBCAANgIQIAAgBDYCGAsgAigCFCIARQ0AIAQgADYCFCAAIAQ2AhgLAkAgA0EPTQRAIAIgAyAFaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIEDAELIAIgBUEDcjYCBCACIAVqIgQgA0EBcjYCBCADIARqIAM2AgAgBwRAIAdBeHFB/JYCaiEAQeiWAigCACEBAn9BASAHQQN2dCIFIAZxRQRAQdSWAiAFIAZyNgIAIAAMAQsgACgCCAshBiAAIAE2AgggBiABNgIMIAEgADYCDCABIAY2AggLQeiWAiAENgIAQdyWAiADNgIACyACQQhqIQALIAtBEGokACAACwoAIAAgARA6QQALDAAgACABIAIQO0EAC7QBAQF/IAAgASgAAEH///8fcTYCACAAIAEoAANBAnZBg/7/H3E2AgQgACABKAAGQQR2Qf+B/x9xNgIIIAAgASgACUEGdkH//8AfcTYCDCABKAAMIQIgAEIANwIUIABCADcCHCAAQQA2AiQgACACQQh2Qf//P3E2AhAgACABKAAQNgIoIAAgASgAFDYCLCAAIAEoABg2AjAgASgAHCEBIABBADoAUCAAQgA3AzggACABNgI0QQAL6AEBA38jACIFQcABa0FAcSIEJAAgBCADKAAAQf///x9xNgJAIAQgAygAA0ECdkGD/v8fcTYCRCAEIAMoAAZBBHZB/4H/H3E2AkggBCADKAAJQQZ2Qf//wB9xNgJMIAMoAAwhBiAEQgA3AlQgBEIANwJcIARBADYCZCAEIAZBCHZB//8/cTYCUCAEIAMoABA2AmggBCADKAAUNgJsIAQgAygAGDYCcCADKAAcIQMgBEEAOgCQASAEQgA3A3ggBCADNgJ0IARBQGsiAyABIAIQOyADIARBMGoiARA6IAAgARAtIQAgBSQAIAAL1QEBA38jACIFQYABa0FAcSIEJAAgBCADKAAAQf///x9xNgIAIAQgAygAA0ECdkGD/v8fcTYCBCAEIAMoAAZBBHZB/4H/H3E2AgggBCADKAAJQQZ2Qf//wB9xNgIMIAMoAAwhBiAEQgA3AhQgBEIANwIcIARBADYCJCAEIAZBCHZB//8/cTYCECAEIAMoABA2AiggBCADKAAUNgIsIAQgAygAGDYCMCADKAAcIQMgBEEAOgBQIARCADcDOCAEIAM2AjQgBCABIAIQOyAEIAAQOiAFJABBAAsmAQJ/AkBB4JoCKAIAIgBFDQAgACgCFCIARQ0AIAARAgAhAQsgAQsOACAAIAGtQYAIIAIQFwtNAQN/IwBBEGsiAiQAIABBAk8EQEEAIABrIABwIQEDQCACQQA6AA9B2JACIAJBD2pBABAAIgMgAUkNAAsgAyAAcCEBCyACQRBqJAAgAQssAQJ/IwBBEGsiACQAIABBADoAD0HYkAIgAEEPakEAEAAhASAAQRBqJAAgAQtzAgJ/AX4CQCMAQRBrIgQkACABrSACrUIghoQiBUKAgICAEFQEQCAFpyIBBEADQCAEQQA6AA8gACADakHYkAIgBEEPakEAEAA6AAAgA0EBaiIDIAFHDQALCyAEQRBqJAAMAQtB2AlBzAhBxQFBjAgQAQALCxIAIAAgASACrSADrUIghoQQDAsWACAAIAEgAq0gA61CIIaEIARBABAxCxsAIAAgASACIAOtIAStQiCGhCAFQQAQMhpBAAuKAQEBfgJ/AkACQAJAIAOtIAStQiCGhCIGQsAAVA0AIAZCQHwiBkK/////D1YNACACIAJBQGsiAyAGIAVBABAxRQ0BIABFDQAgAEEAIAanEAgaC0F/IQIgAUUNASABQgA3AwBBfwwCCyABBEAgASAGNwMAC0EAIQIgAEUNACAAIAMgBqcQJBoLIAILC3wCAn8BfiMAQRBrIgYkACAAIAZBCGogAEFAayACIAOtIAStQiCGhCIIpyICECQgCCAFQQAQMhoCQCAGKQMIQsAAUgRAIAEEQCABQgA3AwALIABBACACQUBrEAgaQX8hBwwBCyABRQ0AIAEgCEJAfTcDAAsgBkEQaiQAIAcL+gUBCX4gBCkAACIFQvXKzYPXrNu38wCFIQkgBULh5JXz1uzZvOwAhSEGIAQpAAgiBULt3pHzlszct+QAhSELIAVC88rRy6eM2bL0AIUhByABIAEgAq0gA61CIIaEIgynIgJqIAJBB3EiA2siAkcEQANAIAYgASkAACINIAeFIgh8IgcgCSALfCIJIAtCDYmFIgV8IgogBUIRiYUiBkINiSAGIAhCEIkgB4UiByAJQiCJfCIFfCIJhSIGQhGJIAYgB0IViSAFhSIHIApCIIl8IgV8IgaFIQsgB0IQiSAFhSIFQhWJIAUgCUIgiXwiBYUhByAGQiCJIQYgBSANhSEJIAFBCGoiASACRw0ACyACIQELIAxCOIYhCAJAAkACQAJAAkACQAJAAkAgA0EBaw4HBgUEAwIBAAcLIAExAAZCMIYgCIQhCAsgATEABUIohiAIhCEICyABMQAEQiCGIAiEIQgLIAExAANCGIYgCIQhCAsgATEAAkIQhiAIhCEICyABMQABQgiGIAiEIQgLIAggATEAAIQhCAsgACAHIAiFIgVCEIkgBSAGfCIKhSIFQhWJIAUgCSALfCIGQiCJfCIJhSIFQhCJIAUgCiAGIAtCDYmFIgd8IgZCIIl8IgqFIgVCFYkgBSAJIAYgB0IRiYUiB3wiBkIgiXwiCYUiBUIQiSAKIAdCDYkgBoUiB3wiBkIgiUL/AYUgBXwiCoUiBUIViSAHQhGJIAaFIgcgCCAJhXwiBkIgiSAFfCIJhSIFQhCJIAYgB0INiYUiByAKfCIGQiCJIAV8IgqFIgVCFYkgB0IRiSAGhSIHIAl8IgZCIIkgBXwiCYUiBUIQiSAHQg2JIAaFIgcgCnwiBkIgiSAFfCIKhSIFQhWJIAUgB0IRiSAGhSIHIAl8IgVCIIl8IgmFIgZCEIkgBiAHQg2JIAWFIgcgCnwiBUIgiXwiBoVCFYkgB0IRiSAFhSIFQg2JIAUgCXyFIgVCEYmFIAUgBnwiBUIgiYUgBYU3AABBAAuzBgIDfgF/An8gBa0gBq1CIIaEIQogCK0gCa1CIIaEIQwjAEGQA2siBSQAIAIEQCACQgA3AwALIAMEQCADQf8BOgAAC0F/IQ0CQAJAIApCEVQNACAKQhF9IgtC7////w9aDQEgBUEgaiIIQsAAIABBIGoiCSAAEBcgBUHgAGoiBiAIQbyQAigCABEBABogCEHAABAHIAYgByAMQcCQAigCABEAABogBkHwiAJCACAMfUIPg0HAkAIoAgARAAAaIAVCADcDWCAFQgA3A1AgBUIANwNIIAVBQGtCADcDACAFQgA3AzggBUIANwMwIAVCADcDKCAFQgA3AyAgBSAELQAAOgAgIAggCELAACAJQQEgABAbIAUtACAhByAFIAQtAAA6ACAgBiAIQsAAQcCQAigCABEAABogBiAEQQFqIgQgC0HAkAIoAgARAAAaIAZB8IgCIApCAX1CD4NBwJACKAIAEQAAGiAFIAw3AxggBiAFQRhqIghCCEHAkAIoAgARAAAaIAUgCkIvfDcDGCAGIAhCCEHAkAIoAgARAAAaIAYgBUHEkAIoAgARAQAaIAZBgAIQByAFIAQgC6dqQRAQMwRAIAVBEBAHDAELIAEgBCALIAlBAiAAEBsgACAALQAkIAUtAABzOgAkIAAgAC0AJSAFLQABczoAJSAAIAAtACYgBS0AAnM6ACYgACAALQAnIAUtAANzOgAnIAAgAC0AKCAFLQAEczoAKCAAIAAtACkgBS0ABXM6ACkgACAALQAqIAUtAAZzOgAqIAAgAC0AKyAFLQAHczoAKyAJED8CQCAHQQJxRQRAIAlBBBAfRQ0BCyAFIAApABg3A/gCIAUgACkAEDcD8AIgBSAAKQAANwPgAiAFIAApAAg3A+gCIAUgACkAJDcDgAMgBUHgAmoiASABQiggCUEAIABBsJACKAIAEQgAGiAAIAUpA/gCNwAYIAAgBSkD8AI3ABAgACAFKQPoAjcACCAAIAUpA+ACNwAAIAUpA4ADIQogAEEBNgAgIAAgCjcAJAsgAgRAIAIgCzcDAAtBACENIANFDQAgAyAHOgAACyAFQZADaiQAIA0MAQsQCQALC+QFAQJ+An8gBK0gBa1CIIaEIQogB60gCK1CIIaEIQsjAEGAA2siBCQAIAIEQCACQgA3AwALIApC7////w9UBEAgBEEQaiIHQsAAIABBIGoiCCAAEBcgBEHQAGoiBSAHQbyQAigCABEBABogB0HAABAHIAUgBiALQcCQAigCABEAABogBUHwiAJCACALfUIPg0HAkAIoAgARAAAaIARCADcDSCAEQUBrQgA3AwAgBEIANwM4IARCADcDMCAEQgA3AyggBEIANwMgIARCADcDECAEQgA3AxggBCAJOgAQIAcgB0LAACAIQQEgABAbIAUgB0LAAEHAkAIoAgARAAAaIAEgBC0AEDoAACABQQFqIgEgAyAKIAhBAiAAEBsgBSABIApBwJACKAIAEQAAGiAFQfCIAiAKQg+DQcCQAigCABEAABogBCALNwMIIAUgBEEIaiIDQghBwJACKAIAEQAAGiAEIApCQH03AwggBSADQghBwJACKAIAEQAAGiAFIAEgCqdqIgFBxJACKAIAEQEAGiAFQYACEAcgACAALQAkIAEtAABzOgAkIAAgAC0AJSABLQABczoAJSAAIAAtACYgAS0AAnM6ACYgACAALQAnIAEtAANzOgAnIAAgAC0AKCABLQAEczoAKCAAIAAtACkgAS0ABXM6ACkgACAALQAqIAEtAAZzOgAqIAAgAC0AKyABLQAHczoAKyAIED8CQCAJQQJxRQRAIAhBBBAfRQ0BCyAEIAApABg3A+gCIAQgACkAEDcD4AIgBCAAKQAANwPQAiAEIAApAAg3A9gCIAQgACkAJDcD8AIgBEHQAmoiASABQiggCEEAIABBsJACKAIAEQgAGiAAIAQpA+gCNwAYIAAgBCkD4AI3ABAgACAEKQPYAjcACCAAIAQpA9ACNwAAIAQpA/ACIQsgAEEBNgAgIAAgCzcAJAsgAgRAIAIgCkIRfDcDAAsgBEGAA2okAEEADAELEAkACwsxAQF+IAKtIAOtQiCGhCIGQvD///8PWgRAEAkACyAAQRBqIAAgASAGIAQgBRAgGkEAC4YEAgF/BH4jAEEgayIGJAAgBCkAACEHIAZCADcDGCAGIAc3AxAgBkIANwMIIAYgAq0gA61CIIaENwMAAn8gAUHBAGtBTk0EQEHQlgJBHDYCAEF/DAELIAFBwQBrQUBPBH8CfyAGQRBqIQIgAUH/AXEhAyMAIgEhBCABQYAEa0FAcSIBJAACQCAARQ0AIANBwQBrQf8BcUG/AU0NACAFRQ0AIAVFDQACfiAGRQRAQp/Y+dnCkdqCm38hB0LRhZrv+s+Uh9EADAELIAYpAAhCn9j52cKR2oKbf4UhByAGKQAAQtGFmu/6z5SH0QCFCyEJAn4gAkUEQEL5wvibkaOz8NsAIQhC6/qG2r+19sEfDAELIAIpAAhC+cL4m5Gjs/DbAIUhCCACKQAAQuv6htq/tfbBH4ULIQogAUFAa0EAQaUCEAgaIAEgCDcDOCABIAo3AzAgASAHNwMoIAEgCTcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgA61CgMAAhEKIkveV/8z5hOoAhTcDACABQYADaiICQSBqQQBB4AAQCBogAiAFQSAQCxogAUHgAGogAkGAARALGiABQYABNgLgAiACQYABEAcgASAAIAMQNRogBCQAQQAMAQsQCQALBUF/CwshACAGQSBqJAAgAAsSACAAIAEgAq0gA61CIIaEEBgLEgAgACABIAKtIAOtQiCGhBAPCxgAIAAgASACIAOtIAStQiCGhCAFIAYQWQt7AgN/AX4jACIGIQggBkHAA2tBQHEiBiQAQX8hByACrSADrUIghoQiCUIwWgRAIAZBQGsiAkEAQQBBGBAjGiACIAFCIBAPGiACIARCIBAPGiACIAZBIGoiAkEYECIaIAAgAUEgaiAJQiB9IAIgASAFEFIhBwsgCCQAIAcLyAECA38BfiACrSADrUIghoQhCCMAIgIhBiACQYAEa0FAcSICJABBfyEDIAJBQGsgAkEgahA9RQRAIAJBgAFqIgNBAEEAQRgQIxogAyACQUBrIgdCIBAPGiADIARCIBAPGiADIAJB4ABqIgVBGBAiGiAAQSBqIAEgCCAFIAQgAkEgaiIBEFMhAyAAIAIpA1g3ABggACACKQNQNwAQIAAgAikDSDcACCAAIAIpA0A3AAAgAUEgEAcgB0EgEAcgBUEYEAcLIAYkACADCxgAIAAgASACrSADrUIghoQgBCAFIAYQUgvHAQEBfyMAQUBqIgYkACACQgBSBEAgBkKy2ojLx66ZkOsANwMIIAZC5fDBi+aNmZAzNwMAIAYgBSgAADYCECAGIAUoAAQ2AhQgBiAFKAAINgIYIAYgBSgADDYCHCAGIAUoABA2AiAgBiAFKAAUNgIkIAYgBSgAGDYCKCAFKAAcIQUgBiAENgIwIAYgBTYCLCAGIAMoAAA2AjQgBiADKAAENgI4IAYgAygACDYCPCAGIAEgACACEC8gBkHAABAHCyAGQUBrJABBAAtIAQF+IAOtIAStQiCGhCEIIwBBIGsiAyQAQX8hBCADIAYgBxAhRQRAIAAgASACIAggBSADEDAhBCADQSAQBwsgA0EgaiQAIAQLGAAgACABIAKtIAOtQiCGhCAEIAUgBhBTCy4BAX4gAq0gA61CIIaEIgZC8P///w9aBEAQCQALIABBEGogACABIAYgBCAFECALSAEBfiADrSAErUIghoQhCCMAQSBrIgMkAEF/IQQgAyAGIAcQIUUEQCAAIAEgAiAIIAUgAxAgIQQgA0EgEAcLIANBIGokACAEC4YBAQJ/IwBBgARrIgUkACAFQSBqIgYgBBBWIAYgASACrSADrUIghoQQVSAGIAVBwANqEFQgBSAFKQPYAzcDGCAFIAUpA9ADNwMQIAUgBSkDyAM3AwggBSAFKQPAAzcDACAAIAUQSyEBIAUgAEEgEDMhAiAFQYAEaiQAIAJBfyABIAAgBUYbcgtkAQF/IwBB4ANrIgUkACAFIAQQViAFIAEgAq0gA61CIIaEEFUgBSAFQaADahBUIAAgBSkDuAM3ABggACAFKQOwAzcAECAAIAUpA6gDNwAIIAAgBSkDoAM3AAAgBUHgA2okAEEAC1oBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChBXIQILIAEEQCABQgAgC0IQfSACGzcDAAsgAgskACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEFcLwwEBAX8jAEFAaiIGJAAgAkIAUgRAIAZCstqIy8eumZDrADcDCCAGQuXwwYvmjZmQMzcDACAGIAUoAAA2AhAgBiAFKAAENgIUIAYgBSgACDYCGCAGIAUoAAw2AhwgBiAFKAAQNgIgIAYgBSgAFDYCJCAGIAUoABg2AiggBiAFKAAcNgIsIAYgBD4CMCAGIARCIIg+AjQgBiADKAAANgI4IAYgAygABDYCPCAGIAEgACACEC8gBkHAABAHCyAGQUBrJABBAAtYAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEFgaIAEEQCABIAtCEHw3AwALQQAMAQsQCQALCyYAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxBYC1oBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChBAIQILIAEEQCABQgAgC0IQfSACGzcDAAsgAgskACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEEALWgECfiAHrSAIrUIghoQhDEF/IQIgBK0gBa1CIIaEIgtCEFoEQCAAIAMgC0IQfSADIAunakEQayAGIAwgCSAKEEEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyQAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQQQtYAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEEIaIAEEQCABIAtCEHw3AwALQQAMAQsQCQALCyYAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxBCC1gBAn4CfyAGrSAHrUIghoQhDCADrSAErUIghoQiC0Lw////D1QEQCAAIAAgC6dqQQAgAiALIAUgDCAJIAoQQxogAQRAIAEgC0IQfDcDAAtBAAwBCxAJAAsLJgAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEEML0AEBAX8jAEFAaiIEJAAgAUIAUgRAIARCstqIy8eumZDrADcDCCAEQuXwwYvmjZmQMzcDACAEIAMoAAA2AhAgBCADKAAENgIUIAQgAygACDYCGCAEIAMoAAw2AhwgBCADKAAQNgIgIAQgAygAFDYCJCAEIAMoABg2AiggAygAHCEDIARBADYCMCAEIAM2AiwgBCACKAAANgI0IAQgAigABDYCOCAEIAIoAAg2AjwgBCAAQQAgAacQCCIAIAAgARAvIARBwAAQBwsgBEFAayQAQQAL/gEBBH8jACIFIQggBUGABGtBQHEiBSQAIAAgASAAGyIHBEBBfyEGIAVB4ABqIAMgBBA8RQRAIAEgACABGyEBQQAhACAFQYABaiIDQQBBAEHAABAjGiADIAVB4ABqIgZCIBAPGiAGQSAQByADIARCIBAPGiADIAJCIBAPGiADIAVBIGpBwAAQIhogA0GAAxAHA0AgACABaiAFQSBqIgQgAGoiAi0AADoAACAAIAdqIAItACA6AAAgASAAQQFyIgNqIAMgBGotAAA6AAAgAyAHaiACLQAhOgAAIABBAmoiAEEgRw0ACyAFQSBqQcAAEAdBACEGCyAIJAAgBg8LEAkAC/4BAQR/IwAiBSEIIAVBgARrQUBxIgUkACAAIAEgABsiBwRAQX8hBiAFQeAAaiADIAQQPEUEQCABIAAgARshAUEAIQAgBUGAAWoiA0EAQQBBwAAQIxogAyAFQeAAaiIGQiAQDxogBkEgEAcgAyACQiAQDxogAyAEQiAQDxogAyAFQSBqQcAAECIaIANBgAMQBwNAIAAgB2ogBUEgaiIEIABqIgItAAA6AAAgACABaiACLQAgOgAAIAcgAEEBciIDaiADIARqLQAAOgAAIAEgA2ogAi0AIToAACAAQQJqIgBBIEcNAAsgBUEgakHAABAHQQAhBgsgCCQAIAYPCxAJAAsfACABQSAgAkIgQQBBABBZGiAAIAFBzJACKAIAEQEACxAAIAAgAUHMkAIoAgARAQALBABBCgsFAEGgCgsIACAAQRAQFgsEAEEwC14BAX8jAEFAaiIDJAAgAyACQiAQGBogASADKQMYNwAYIAEgAykDEDcAECABIAMpAwg3AAggASADKQMANwAAIANBwAAQByAAIAFBzJACKAIAEQEAIQAgA0FAayQAIAALxgEBAX8jAEFAaiIEJAAgAUIAUgRAIARCstqIy8eumZDrADcDCCAEQuXwwYvmjZmQMzcDACAEIAMoAAA2AhAgBCADKAAENgIUIAQgAygACDYCGCAEIAMoAAw2AhwgBCADKAAQNgIgIAQgAygAFDYCJCAEIAMoABg2AiggAygAHCEDIARCADcDMCAEIAM2AiwgBCACKAAANgI4IAQgAigABDYCPCAEIABBACABpxAIIgAgACABEC8gBEHAABAHCyAEQUBrJABBAAsFAEGAAwuqAQEGfyMAQRBrIgZBADYCDEF/IQQgAiADQQFrSwR/IAEgAkEBayICaiEIQQAhBEEAIQEDQCAGIAYoAgwiByAIIAVrLQAAIglBgAFzQQFrIAdBAWsgAUH/AXEiAUEBa3FxIgdBF3RBH3UgBXFyNgIMIAEgCXIhASAEIAdBCHZBAXFyIQQgBUEBaiIFIANHDQALIAAgAiAGKAIMazYCACAEQf8BcUEBawVBfwsLpQkBCH8CQAJ/AkACQAJAAkACQAJAAn8CQAJAAkAgB0F5cUEBRgRAQQAgA0UNBBogB0EEcQ0BA0AgCCELAkACQAJAAkADQCACIAtqLAAAIgpB0P8Ac0EBakF/c0EIdkE/cSAKQdT/AHNBAWpBf3NBCHZBPnFyIApBuQFqIApBn/8DakF/c0H6ACAKa0F/c3FBCHZxQf8BcXIgCkEEaiAKQdD/A2pBf3NBOSAKa0F/c3FBCHZxQf8BcXJB2gAgCmtBf3MgCkHBAGsiCUF/c3FBCHYgCXFB/wFxciIJQQFrIApBvv8Dc0EBanFBCHZB/wFxIAlyIglB/wFHDQFBACEJIARFDQkgBCAKEB0EQCALQQFqIgsgA08NAwwBCwsgCyEIDAgLIAkgDkEGdGohDiAMQQFLDQEgDEEGaiEMDAILIAMgCEEBaiIAIAAgA0kbIQgMBgsgDEECayEMIAEgDU0NBCAAIA1qIA4gDHY6AAAgDUEBaiENC0EAIQkgC0EBaiIIIANJDQALDAMLEAkACwNAIAghCwNAAkAgAiALaiwAACIKQaD/AHNBAWpBf3NBCHZBP3EgCkHS/wBzQQFqQX9zQQh2QT5xciAKQbkBaiAKQZ//A2pBf3NB+gAgCmtBf3NxQQh2cUH/AXFyIApBBGogCkHQ/wNqQX9zQTkgCmtBf3NxQQh2cUH/AXFyQdoAIAprQX9zIApBwQBrIglBf3NxQQh2IAlxQf8BcXIiCUEBayAKQb7/A3NBAWpxQQh2Qf8BcSAJciIJQf8BRgRAQQAhCSAERQ0FIAQgChAdDQEgCyEIDAULIAkgDkEGdGohDgJAIAxBAkkEQCAMQQZqIQwMAQsgDEECayEMIAEgDU0NBCAAIA1qIA4gDHY6AAAgDUEBaiENC0EAIQkgC0EBaiIIIANJDQIMBAsgC0EBaiILIANJDQALCyADIAhBAWoiACAAIANJGyEIDAELIAshCEHQlgJBxAA2AgBBASEJCyAMQQRLDQEgCAshAEF/IQEgCQRAIAAhCAwICyAOQX8gDHRBf3NxBEAgACEIDAgLIAdBAnEEQCAAIQcMAwsgDEECSQRAIAAhBwwDCyAAIAMgACADSxshCCAMQQF2IQsgBEUNASAAIQcDQCAHIAhGBEBBxAAhCQwFCwJAIAIgB2osAAAiAEE9RgRAIAtBAWshCwwBCyAEIAAQHQ0AQRwhCSAHIQgMBQsgB0EBaiEHIAsNAAsMAgtBfyEBDAYLQcQAIQkgACADTw0BIAAgAmotAABBPUcEQCAAIQhBHCEJDAILIAAgC2ohByALQQFGDQAgAEEBaiIMIAhGDQEgAiAMai0AAEE9RwRAIAwhCEEcIQkMAgsgC0ECRg0AIABBAmoiACAIRg0BQRwhCSAAIgggAmotAABBPUcNAQtBACEBIAQNAQwCC0HQlgIgCTYCAAwDCyADIAdNDQADQCAEIAIgB2osAAAQHUUNASAHQQFqIgcgA0cNAAsgAwwBCyAHCyEIIA0hDwsCQCAGBEAgBiACIAhqNgIADAELIAMgCEYNAEHQlgJBHDYCAEF/IQELIAUEQCAFIA82AgALIAELkQcBCn8CfwJ/AkACQCAEQXlxQQFHDQAgA0EDbiIGQQJ0IQkCQCAGQX1sIANqIgZFDQAgBEECcUUEQCAJQQRqIQkMAQsgCUECciAGQQF2aiEJCyABIAlNDQACQCAEQQRxBEBBACADRQ0FGkEAIQYMAQtBACADRQ0EGkEAIQYMAgsDQCACIAtqLQAAIgwgBUEIdHIhBSAGIgogCEEIciIIQQZrQQZuakEBaiEGA0AgACAKaiAFIAgiBEEGayIIdkE/cSIHQcH/AWpBf3NBCHZB3wBxIAdB5v8DakEIdiINIAdBwQBqcXIgB0H8AWogB0HC/wNqQQh2cSAHQcz/A2pBCHYiDkF/c3FyIAdBwf8Ac0EBakF/c0EIdkEtcXIgB0HHAGogDUF/c3EgDnFyOgAAIApBAWoiCiAGRw0ACyALQQFqIgsgA0cNAAsgBiAIRQ0DGiAMQQwgBGt0QT9xIgJB5v8DakEIdiIDIAJBwQBqcSEKIAJB/AFqIAJBwv8DakEIdnEgAkHM/wNqQQh2IgRBf3NxIQUgAkHHAGogA0F/c3EgBHEhCCACQcH/AWohAyACQcH/AHNBAWpBf3NBCHZBLXEhBEHfAAwCCxAJAAsDQCACIAtqLQAAIgwgBUEIdHIhBSAGIgogCEEIciIIQQZrQQZuakEBaiEGA0AgACAKaiAFIAgiBEEGayIIdkE/cSIHQcH/AGpBf3NBCHZBL3EgB0Hm/wNqQQh2Ig0gB0HBAGpxciAHQfwBaiAHQcL/A2pBCHZxIAdBzP8DakEIdiIOQX9zcXIgB0HB/wBzQQFqQX9zQQh2QStxciAHQccAaiANQX9zcSAOcXI6AAAgCkEBaiIKIAZHDQALIAtBAWoiCyADRw0ACyAGIAhFDQEaIAxBDCAEa3RBP3EiAkHm/wNqQQh2IgMgAkHBAGpxIQogAkH8AWogAkHC/wNqQQh2cSACQcz/A2pBCHYiBEF/c3EhBSACQccAaiADQX9zcSAEcSEIIAJBwf8AaiEDIAJBwf8Ac0EBakF/c0EIdkErcSEEQS8LIQIgACAGaiACIANBf3NBCHZxIApyIAVyIARyIAhyOgAAIAZBAWoLIQUCQAJAIAUgCU0EQCAFIAlJDQEgBSEJDAILQZgIQeYIQeYBQacKEAEACyAAIAVqQT0gCSAFaxAIGgsgACAJakEAIAEgCUEBaiICIAEgAksbIAlrEAgaIAALPQEBfyABQXlxQQFHBEAQCQALIAAgAEEDbiIAQX1saiICQQFqQQQgAUECcRtBACACQQNxGyAAQQJ0akEBaguIBQEKfwJAIANFDQACQAJAAkACQCAERQRAQQEhCUEAIQQDQCACIAdqLQAAIgxB3wFxQTdrQf8BcSIKQfb/A2ogCkHw/wNqc0EIdiINIAxBMHMiDEH2/wNqQQh2Ig5yQf8BcUUNAyABIAtNDQIgCiANcSAMIA5xciEKAkAgCEH/AXFFBEAgCkEEdCEEDAELIAAgC2ogBCAKcjoAACALQQFqIQsLIAhBf3MhCCAHQQFqIgcgA0cNAAsgAyEHDAILA0ACQAJAAkACfwJAIAIgB2otAAAiCUHfAXFBN2tB/wFxIgpB9v8DaiAKQfD/A2pzQQh2IgwgCUEwcyINQfb/A2pBCHYiDnJB/wFxRQRAIAhB/wFxDQkgBCAJEB1FDQsgB0EBaiIIIQcgAyAISw0BDAsLIAEgC00NBiAKIAxxIA0gDnFyIgkgCEH/AXFFDQEaIAAgC2ogCSAQcjoAACALQQFqIQsMBAsDQCACIAdqLQAAIglB3wFxQTdrQf8BcSIKQfb/A2ogCkHw/wNqc0EIdiIMIAlBMHMiDUH2/wNqQQh2Ig5yQf8BcUUEQCAEIAkQHUUNCyADIAdBAWoiB0sNAQwDCwsgASALTQ0CIAogDHEgDSAOcXILQQR0IRBBACEIDAILIAMgCCADIAhLGyEHDAcLQQAhCAwCCyAIQX9zIQhBASEJIAdBAWoiByADSQ0ACwwBC0HQlgJBxAA2AgBBACEJCyAIQf8BcUUNAQtB0JYCQRw2AgBBfyEPIAdBAWshB0EAIQsMAQsgCQ0AQQAhC0F/IQ8LAkAgBgRAIAYgAiAHajYCAAwBCyADIAdGDQBB0JYCQRw2AgBBfyEPCyAFBEAgBSALNgIACyAPC50BAQN/AkAgA0H+////B0sNACADQQF0IAFPDQBBACEBIAMEfwNAIAAgAUEBdGoiBCABIAJqLQAAIgVBD3EiBkEIdCAGQfb/A2pBgLIDcWpBgK4BakEIdjoAASAEIAVBBHYiBCAEQfb/A2pBCHZB2QFxakHXAGo6AAAgAUEBaiIBIANHDQALIANBAXQFQQALIABqQQA6AAAgAA8LEAkACysBAX8jAEFAaiIDJAAgACADEBMgASADQsAAIAJBARAxIQAgA0FAayQAIAALLQEBfyMAQUBqIgQkACAAIAQQEyABIAIgBELAACADQQEQMiEAIARBQGskACAACwgAIAAQGUEAC7sBAgJ/A34jAEHAAWsiAiQAIAJBIBAWIAEgAkIgEBgaIAEgAS0AAEH4AXE6AAAgASABLQAfQT9xQcAAcjoAHyACQSBqIgMgARAqIAAgAxArIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACAAKQAIIQQgACkAECEFIAApAAAhBiABIAApABg3ADggASAFNwAwIAEgBDcAKCABIAY3ACAgAkEgEAcgAkHAAWokAEEAC9IBAQR/IwBBEGsiBSQAAkACQCADRQRAQX8hBwwBCwJ/IAMgA0EBayIGcUUEQCACIAZxDAELIAIgA3ALIQhBfyEHIAYgCGsiBiACQX9zTw0BIAIgBmoiAiAETw0AIAAEQCAAIAJBAWo2AgALIAEgAmohAEEAIQcgBUEAOgAPQQAhAgNAIAAgAmsiASABLQAAIAUtAA9xIAIgBnNBAWtBGHYiAUGAAXFyOgAAIAUgBS0ADyABcjoADyACQQFqIgIgA0cNAAsLIAVBEGokACAHDwsQCQALC7qFAgwAQYAIC5cDTGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAMS4wLjE4AHNvZGl1bV9iaW4yYmFzZTY0AAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4AQaALCydZ8bL+CuWm/3vdKv4eFNQAUoADADDR8wB3eUD/MuOc/wBuxQFnG5AAQdALC8AHhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/AEGwEwsBAQBB0BMLsAEm6JWPwrInsEXD9Iny75jw1d+sBdPGMzmxOAKIbVP8BccXanA9TdhPujwLdg0QZw8qIFP6LDnMxk7H/XeSrAN67P///////////////////////////////////////3/t////////////////////////////////////////f+7///////////////////////////////////////9/7dP1XBpjEljWnPei3vneFABBjxUL/PABEIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/48+3QCBWdb/N4sF/kQUv/8OzLIBI8PZAC8zzgEm9qUAzhsG/p5XJADZNJL/fXvX/1U8H/+rDQcA2vVY/vwjPAA31qD/hWU4AOAgE/6TQOoAGpGiAXJ2fQD4/PoAZV7E/8aN4v4zKrYAhwwJ/m2s0v/F7MIB8UGaADCcL/+ZQzf/2qUi/kq0swDaQkcBWHpjANS12/9cKuf/7wCaAPVNt/9eUaoBEtXYAKtdRwA0XvgAEpeh/sXRQv+u9A/+ojC3ADE98P62XcMAx+QGAcgFEf+JLe3/bJQEAFpP7f8nP03/NVLPAY4Wdv9l6BIBXBpDAAXIWP8hqIr/leFIAALRG/8s9agB3O0R/x7Taf6N7t0AgFD1/m/+DgDeX74B3wnxAJJM1P9szWj/P3WZAJBFMAAj5G8AwCHB/3DWvv5zmJcAF2ZYADNK+ADix4/+zKJl/9BhvQH1aBIA5vYe/xeURQBuWDT+4rVZ/9AvWv5yoVD/IXT4ALOYV/9FkLEBWO4a/zogcQEBTUUAO3k0/5juUwA0CMEA5yfp/8ciigDeRK0AWzny/tzSf//AB/b+lyO7AMPspQBvXc4A1PeFAZqF0f+b5woAQE4mAHr5ZAEeE2H/Plv5AfiFTQDFP6j+dApSALjscf7Uy8L/PWT8/iQFyv93W5n/gU8dAGdnq/7t12//2DVFAO/wFwDCld3/JuHeAOj/tP52UoX/OdGxAYvohQCesC7+wnMuAFj35QEcZ78A3d6v/pXrLACX5Bn+2mlnAI5V0gCVgb7/1UFe/nWG4P9SxnUAnd3cAKNlJADFciUAaKym/gu2AABRSLz/YbwQ/0UGCgDHk5H/CAlzAUHWr//ZrdEAUH+mAPflBP6nt3z/WhzM/q878P8LKfgBbCgz/5Cxw/6W+n4AiltBAXg83v/1we8AHda9/4ACGQBQmqIATdxrAerNSv82pmf/dEgJAOReL/8eyBn/I9ZZ/z2wjP9T4qP/S4KsAIAmEQBfiZj/13yfAU9dAACUUp3+w4L7/yjKTP/7fuAAnWM+/s8H4f9gRMMAjLqd/4MT5/8qgP4ANNs9/mbLSACNBwv/uqTVAB96dwCF8pEA0Pzo/1vVtv+PBPr++ddKAKUebwGrCd8A5XsiAVyCGv9Nmy0Bw4sc/zvgTgCIEfcAbHkgAE/6vf9g4/z+JvE+AD6uff+bb13/CubOAWHFKP8AMTn+QfoNABL7lv/cbdL/Ba6m/iyBvQDrI5P/JfeN/0iNBP9na/8A91oEADUsKgACHvAABDs/AFhOJABxp7QAvkfB/8eepP86CKwATSEMAEE/AwCZTSH/rP5mAeTdBP9XHv4BkilW/4rM7/5sjRH/u/KHANLQfwBELQ7+SWA+AFE8GP+qBiT/A/kaACPVbQAWgTb/FSPh/+o9OP862QYAj3xYAOx+QgDRJrf/Iu4G/66RZgBfFtMAxA+Z/i5U6P91IpIB5/pK/xuGZAFcu8P/qsZwAHgcKgDRRkMAHVEfAB2oZAGpraAAayN1AD5gO/9RDEUBh+++/9z8EgCj3Dr/iYm8/1NmbQBgBkwA6t7S/7muzQE8ntX/DfHWAKyBjABdaPIAwJz7ACt1HgDhUZ4Af+jaAOIcywDpG5f/dSsF//IOL/8hFAYAifss/hsf9f+31n3+KHmVALqe1f9ZCOMARVgA/suH4QDJrssAk0e4ABJ5Kf5eBU4A4Nbw/iQFtAD7h+cBo4rUANL5dP5YgbsAEwgx/j4OkP+fTNMA1jNSAG115P5n38v/S/wPAZpH3P8XDVsBjahg/7W2hQD6MzcA6urU/q8/ngAn8DQBnr0k/9UoVQEgtPf/E2YaAVQYYf9FFd4AlIt6/9zV6wHoy/8AeTmTAOMHmgA1FpMBSAHhAFKGMP5TPJ3/kUipACJn7wDG6S8AdBME/7hqCf+3gVMAJLDmASJnSADbooYA9SqeACCVYP6lLJAAyu9I/teWBQAqQiQBhNevAFauVv8axZz/MeiH/me2UgD9gLABmbJ6APX6CgDsGLIAiWqEACgdKQAyHpj/fGkmAOa/SwCPK6oALIMU/ywNF//t/5sBn21k/3C1GP9o3GwAN9ODAGMM1f+Yl5H/7gWfAGGbCAAhbFEAAQNnAD5tIv/6m7QAIEfD/yZGkQGfX/UAReVlAYgc8ABP4BkATm55//iofAC7gPcAApPr/k8LhABGOgwBtQij/0+Jhf8lqgv/jfNV/7Dn1//MlqT/79cn/y5XnP4Io1j/rCLoAEIsZv8bNin+7GNX/yl7qQE0cisAdYYoAJuGGgDnz1v+I4Qm/xNmff4k44X/dgNx/x0NfACYYEoBWJLO/6e/3P6iElj/tmQXAB91NABRLmoBDAIHAEVQyQHR9qwADDCNAeDTWAB04p8AemKCAEHs6gHh4gn/z+J7AVnWOwBwh1gBWvTL/zELJgGBbLoAWXAPAWUuzP9/zC3+T//d/zNJEv9/KmX/8RXKAKDjBwBpMuwATzTF/2jK0AG0DxAAZcVO/2JNywApufEBI8F8ACObF//PNcAAC32jAfmeuf8EgzAAFV1v/z155wFFyCT/uTC5/2/uFf8nMhn/Y9ej/1fUHv+kkwX/gAYjAWzfbv/CTLIASmW0APMvMACuGSv/Uq39ATZywP8oN1sA12yw/ws4BwDg6UwA0WLK/vIZfQAswV3+ywixAIewEwBwR9X/zjuwAQRDGgAOj9X+KjfQ/zxDeADBFaMAY6RzAAoUdgCc1N7+oAfZ/3L1TAF1O3sAsMJW/tUPsABOzs/+1YE7AOn7FgFgN5j/7P8P/8VZVP9dlYUArqBxAOpjqf+YdFgAkKRT/18dxv8iLw//Y3iG/wXswQD5937/k7seADLmdf9s2dv/o1Gm/0gZqf6beU//HJtZ/gd+EQCTQSEBL+r9ABozEgBpU8f/o8TmAHH4pADi/toAvdHL/6T33v7/I6UABLzzAX+zRwAl7f7/ZLrwAAU5R/5nSEn/9BJR/uXShP/uBrT/C+Wu/+PdwAERMRwAo9fE/gl2BP8z8EcAcYFt/0zw5wC8sX8AfUcsARqv8wBeqRn+G+YdAA+LdwGoqrr/rMVM//xLvACJfMQASBZg/y2X+QHckWQAQMCf/3jv4gCBspIAAMB9AOuK6gC3nZIAU8fA/7isSP9J4YAATQb6/7pBQwBo9s8AvCCK/9oY8gBDilH+7YF5/xTPlgEpxxD/BhSAAJ92BQC1EI//3CYPABdAk/5JGg0AV+Q5Acx8gAArGN8A22PHABZLFP8TG34AnT7XAG4d5gCzp/8BNvy+AN3Mtv6znkH/UZ0DAMLanwCq3wAA4Asg/ybFYgCopCUAF1gHAaS6bgBgJIYA6vLlAPp5EwDy/nD/Ay9eAQnvBv9Rhpn+1v2o/0N84AD1X0oAHB4s/gFt3P+yWVkA/CRMABjGLv9MTW8AhuqI/ydeHQC5SOr/RkSH/+dmB/5N54wApy86AZRhdv8QG+EBps6P/26y1v+0g6IAj43hAQ3aTv9ymSEBYmjMAK9ydQGnzksAysRTATpAQwCKL28BxPeA/4ng4P6ecM8AmmT/AYYlawDGgE//f9Gb/6P+uf48DvMAH9tw/h3ZQQDIDXT+ezzE/+A7uP7yWcQAexBL/pUQzgBF/jAB53Tf/9GgQQHIUGIAJcK4/pQ/IgCL8EH/2ZCE/zgmLf7HeNIAbLGm/6DeBADcfnf+pWug/1Lc+AHxr4gAkI0X/6mKVACgiU7/4nZQ/zQbhP8/YIv/mPonALybDwDoM5b+KA/o//DlCf+Jrxv/S0lhAdrUCwCHBaIBa7nVAAL5a/8o8kYA28gZABmdDQBDUlD/xPkX/5EUlQAySJIAXkyUARj7QQAfwBcAuNTJ/3vpogH3rUgAolfb/n6GWQCfCwz+pmkdAEkb5AFxeLf/QqNtAdSPC/+f56gB/4BaADkOOv5ZNAr//QijAQCR0v8KgVUBLrUbAGeIoP5+vNH/IiNvANfbGP/UC9b+ZQV2AOjFhf/fp23/7VBW/0aLXgCewb8Bmw8z/w++cwBOh8//+QobAbV96QBfrA3+qtWh/yfsiv9fXVf/voBfAH0PzgCmlp8A4w+e/86eeP8qjYAAZbJ4AZxtgwDaDiz+96jO/9RwHABwEeT/WhAlAcXebAD+z1P/CVrz//P0rAAaWHP/zXR6AL/mwQC0ZAsB2SVg/5pOnADr6h//zrKy/5XA+wC2+ocA9hZpAHzBbf8C0pX/qRGqAABgbv91CQgBMnso/8G9YwAi46AAMFBG/tMz7AAtevX+LK4IAK0l6f+eQasAekXX/1pQAv+DamD+43KHAM0xd/6wPkD/UjMR//EU8/+CDQj+gNnz/6IbAf5advEA9sb2/zcQdv/In50AoxEBAIxreQBVoXb/JgCVAJwv7gAJpqYBS2K1/zJKGQBCDy8Ai+GfAEwDjv8O7rgAC881/7fAugGrIK7/v0zdAfeq2wAZrDL+2QnpAMt+RP+3XDAAf6e3AUEx/gAQP38B/hWq/zvgf/4WMD//G06C/ijDHQD6hHD+I8uQAGipqADP/R7/aCgm/l7kWADOEID/1Dd6/98W6gDfxX8A/bW1AZFmdgDsmST/1NlI/xQmGP6KPj4AmIwEAObcY/8BFdT/lMnnAPR7Cf4Aq9IAMzol/wH/Dv/0t5H+APKmABZKhAB52CkAX8Ny/oUYl/+c4uf/9wVN//aUc/7hXFH/3lD2/qp7Wf9Kx40AHRQI/4qIRv9dS1wA3ZMx/jR+4gDlfBcALgm1AM1ANAGD/hwAl57UAINATgDOGasAAOaLAL/9bv5n96cAQCgoASql8f87S+T+fPO9/8Rcsv+CjFb/jVk4AZPGBf/L+J7+kKKNAAus4gCCKhX/AaeP/5AkJP8wWKT+qKrcAGJH1gBb0E8An0zJAaYq1v9F/wD/BoB9/74BjACSU9r/1+5IAXp/NQC9dKX/VAhC/9YD0P/VboUAw6gsAZ7nRQCiQMj+WzpoALY6u/755IgAy4ZM/mPd6QBL/tb+UEWaAECY+P7siMr/nWmZ/pWvFAAWIxP/fHnpALr6xv6E5YsAiVCu/6V9RACQypT+6+/4AIe4dgBlXhH/ekhG/kWCkgB/3vgBRX92/x5S1/68ShP/5afC/nUZQv9B6jj+1RacAJc7Xf4tHBv/un6k/yAG7wB/cmMB2zQC/2Ngpv4+vn7/bN6oAUvirgDm4scAPHXa//z4FAHWvMwAH8KG/ntFwP+prST+N2JbAN8qZv6JAWYAnVoZAO96QP/8BukABzYU/1J0rgCHJTb/D7p9AONwr/9ktOH/Ku30//St4v74EiEAq2OW/0rrMv91UiD+aqjtAM9t0AHkCboAhzyp/rNcjwD0qmj/6y18/0ZjugB1ibcA4B/XACgJZAAaEF8BRNlXAAiXFP8aZDr/sKXLATR2RgAHIP7+9P71/6eQwv99cRf/sHm1AIhU0QCKBh7/WTAcACGbDv8Z8JoAjc1tAUZzPv8UKGv+iprH/17f4v+dqyYAo7EZ/i12A/8O3hcB0b5R/3Z76AEN1WX/ezd7/hv2pQAyY0z/jNYg/2FBQ/8YDBwArlZOAUD3YACgh0MAQjfz/5PMYP8aBiH/YjNTAZnV0P8CuDb/GdoLADFD9v4SlUj/DRlIACpP1gAqBCYBG4uQ/5W7FwASpIQA9VS4/njGaP9+2mAAOHXq/w0d1v5ELwr/p5qE/pgmxgBCsln/yC6r/w1jU//Su/3/qi0qAYrRfADWoo0ADOacAGYkcP4Dk0MANNd7/+mrNv9iiT4A99on/+fa7AD3v38Aw5JUAKWwXP8T1F7/EUrjAFgomQHGkwH/zkP1/vAD2v89jdX/YbdqAMPo6/5fVpoA0TDN/nbR8f/weN8B1R2fAKN/k/8N2l0AVRhE/kYUUP+9BYwBUmH+/2Njv/+EVIX/a9p0/3B6LgBpESAAwqA//0TeJwHY/VwAsWnN/5XJwwAq4Qv/KKJzAAkHUQCl2tsAtBYA/h2S/P+Sz+EBtIdgAB+jcACxC9v/hQzB/itOMgBBcXkBO9kG/25eGAFwrG8ABw9gACRVewBHlhX/0Em8AMALpwHV9SIACeZcAKKOJ//XWhsAYmFZAF5P0wBanfAAX9x+AWaw4gAkHuD+Ix9/AOfocwFVU4IA0kn1/y+Pcv9EQcUAO0g+/7eFrf5deXb/O7FR/+pFrf/NgLEA3PQzABr00QFJ3k3/owhg/paV0wCe/ssBNn+LAKHgOwAEbRb/3iot/9CSZv/sjrsAMs31/wpKWf4wT44A3kyC/x6mPwDsDA3/Mbj0ALtxZgDaZf0AmTm2/iCWKgAZxpIB7fE4AIxEBQBbpKz/TpG6/kM0zQDbz4EBbXMRADaPOgEV+Hj/s/8eAMHsQv8B/wf//cAw/xNF2QED1gD/QGWSAd99I//rSbP/+afiAOGvCgFhojoAanCrAVSsBf+FjLL/hvWOAGFaff+6y7n/300X/8BcagAPxnP/2Zj4AKuyeP/khjUAsDbBAfr7NQDVCmQBIsdqAJcf9P6s4Ff/Du0X//1VGv9/J3T/rGhkAPsORv/U0Ir//dP6ALAxpQAPTHv/Jdqg/1yHEAEKfnL/RgXg//f5jQBEFDwB8dK9/8PZuwGXA3EAl1yuAOc+sv/bt+EAFxch/821UAA5uPj/Q7QB/1p7Xf8nAKL/YPg0/1RCjAAif+T/wooHAaZuvAAVEZsBmr7G/9ZQO/8SB48ASB3iAcfZ+QDooUcBlb7JANmvX/5xk0P/io/H/3/MAQAdtlMBzuab/7rMPAAKfVX/6GAZ//9Z9//V/q8B6MFRABwrnP4MRQgAkxj4ABLGMQCGPCMAdvYS/zFY/v7kFbr/tkFwAdsWAf8WfjT/vTUx/3AZjwAmfzf/4mWj/tCFPf+JRa4BvnaR/zxi2//ZDfX/+ogKAFT+4gDJH30B8DP7/x+Dgv8CijL/19exAd8M7v/8lTj/fFtE/0h+qv53/2QAgofo/w5PsgD6g8UAisbQAHnYi/53EiT/HcF6ABAqLf/V8OsB5r6p/8Yj5P5urUgA1t3x/ziUhwDAdU7+jV3P/49BlQAVEmL/Xyz0AWq/TQD+VQj+1m6w/0mtE/6gxMf/7VqQAMGscf/Im4j+5FrdAIkxSgGk3df/0b0F/2nsN/8qH4EBwf/sAC7ZPACKWLv/4lLs/1FFl/+OvhABDYYIAH96MP9RQJwAq/OLAO0j9gB6j8H+1HqSAF8p/wFXhE0ABNQfABEfTgAnLa3+GI7Z/18JBv/jUwYAYjuC/j4eIQAIc9MBomGA/we4F/50HKj/+IqX/2L08AC6doIAcvjr/2mtyAGgfEf/XiSkAa9Bkv/u8ar+ysbFAORHiv4t9m3/wjSeAIW7sABT/Jr+Wb3d/6pJ/ACUOn0AJEQz/ipFsf+oTFb/JmTM/yY1IwCvE2EA4e79/1FRhwDSG//+60lrAAjPcwBSf4gAVGMV/s8TiABkpGUAUNBN/4TP7f8PAw//IaZuAJxfVf8luW8Blmoj/6aXTAByV4f/n8JAAAx6H//oB2X+rXdiAJpH3P6/OTX/qOig/+AgY//anKUAl5mjANkNlAHFcVkAlRyh/s8XHgBphOP/NuZe/4WtzP9ct53/WJD8/mYhWgCfYQMAtdqb//BydwBq1jX/pb5zAZhb4f9Yaiz/0D1xAJc0fAC/G5z/bjbsAQ4epv8nf88B5cccALzkvP5knesA9tq3AWsWwf/OoF8ATO+TAM+hdQAzpgL/NHUK/kk44/+YweEAhF6I/2W/0QAga+X/xiu0AWTSdgByQ5n/F1ga/1maXAHceIz/kHLP//xz+v8izkgAioV//wiyfAFXS2EAD+Vc/vBDg/92e+P+knho/5HV/wGBu0b/23c2AAETrQAtlpQB+FNIAMvpqQGOazgA9/kmAS3yUP8e6WcAYFJGABfJbwBRJx7/obdO/8LqIf9E44z+2M50AEYb6/9okE8ApOZd/taHnACau/L+vBSD/yRtrgCfcPEABW6VASSl2gCmHRMBsi5JAF0rIP74ve0AZpuNAMldw//xi/3/D29i/2xBo/6bT77/Sa7B/vYoMP9rWAv+ymFV//3MEv9x8kIAbqDC/tASugBRFTwAvGin/3ymYf7ShY4AOPKJ/ilvggBvlzoBb9WN/7es8f8mBsT/uQd7/y4L9gD1aXcBDwKh/wjOLf8Sykr/U3xzAdSNnQBTCNH+iw/o/6w2rf4y94QA1r3VAJC4aQDf/vgA/5Pw/xe8SAAHMzYAvBm0/ty0AP9ToBQAo73z/zrRwv9XSTwAahgxAPX53AAWracAdgvD/xN+7QBunyX/O1IvALS7VgC8lNABZCWF/wdwwQCBvJz/VGqB/4XhygAO7G//KBRlAKysMf4zNkr/+7m4/12b4P+0+eAB5rKSAEg5Nv6yPrgAd81IALnv/f89D9oAxEM4/+ogqwEu2+QA0Gzq/xQ/6P+lNccBheQF/zTNawBK7oz/lpzb/u+ssv/7vd/+II7T/9oPigHxxFAAHCRi/hbqxwA97dz/9jklAI4Rjv+dPhoAK+5f/gPZBv/VGfABJ9yu/5rNMP4TDcD/9CI2/owQmwDwtQX+m8E8AKaABP8kkTj/lvDbAHgzkQBSmSoBjOySAGtc+AG9CgMAP4jyANMnGAATyqEBrRu6/9LM7/4p0aL/tv6f/6x0NADDZ97+zUU7ADUWKQHaMMIAUNLyANK8zwC7oaH+2BEBAIjhcQD6uD8A3x5i/k2oogA7Na8AE8kK/4vgwgCTwZr/1L0M/gHIrv8yhXEBXrNaAK22hwBesXEAK1nX/4j8av97hlP+BfVC/1IxJwHcAuAAYYGxAE07WQA9HZsBy6vc/1xOiwCRIbX/qRiNATeWswCLPFD/2idhAAKTa/88+EgAreYvAQZTtv8QaaL+idRR/7S4hgEn3qT/3Wn7Ae9wfQA/B2EAP2jj/5Q6DABaPOD/VNT8AE/XqAD43ccBc3kBACSseAAgorv/OWsx/5MqFQBqxisBOUpXAH7LUf+Bh8MAjB+xAN2LwgAD3tcAg0TnALFWsv58l7QAuHwmAUajEQD5+7UBKjfjAOKhLAAX7G4AM5WOAV0F7ADat2r+QxhNACj10f/eeZkApTkeAFN9PABGJlIB5Qa8AG3enf83dj//zZe6AOMhlf/+sPYB47HjACJqo/6wK08Aal9OAbnxev+5Dj0AJAHKAA2yov/3C4QAoeZcAUEBuf/UMqUBjZJA/57y2gAVpH0A1Yt6AUNHVwDLnrIBl1wrAJhvBf8nA+//2f/6/7A/R/9K9U0B+q4S/yIx4//2Lvv/miMwAX2dPf9qJE7/YeyZAIi7eP9xhqv/E9XZ/the0f/8BT0AXgPKAAMat/9Avyv/HhcVAIGNTf9meAcBwkyMALyvNP8RUZQA6FY3AeEwrACGKir/7jIvAKkS/gAUk1f/DsPv/0X3FwDu5YD/sTFwAKhi+/95R/gA8wiR/vbjmf/bqbH++4ul/wyjuf+kKKv/mZ8b/vNtW//eGHABEtbnAGudtf7DkwD/wmNo/1mMvv+xQn7+arlCADHaHwD8rp4AvE/mAe4p4ADU6ggBiAu1AKZ1U/9Ew14ALoTJAPCYWACkOUX+oOAq/zvXQ/93w43/JLR5/s8vCP+u0t8AZcVE//9SjQH6iekAYVaFARBQRQCEg58AdF1kAC2NiwCYrJ3/WitbAEeZLgAnEHD/2Yhh/9zGGf6xNTEA3liG/4APPADPwKn/wHTR/2pO0wHI1bf/Bwx6/t7LPP8hbsf++2p1AOThBAF4Ogf/3cFU/nCFGwC9yMn/i4eWAOo3sP89MkEAmGyp/9xVAf9wh+MAohq6AM9guf70iGsAXZkyAcZhlwBuC1b/j3Wu/3PUyAAFyrcA7aQK/rnvPgDseBL+Yntj/6jJwv4u6tYAv4Ux/2OpdwC+uyMBcxUt//mDSABwBnv/1jG1/qbpIgBcxWb+/eTN/wM7yQEqYi4A2yUj/6nDJgBefMEBnCvfAF9Ihf54zr8AesXv/7G7T//+LgIB+qe+AFSBEwDLcab/+R+9/kidyv/QR0n/zxhIAAoQEgHSUUz/WNDA/37za//ujXj/x3nq/4kMO/8k3Hv/lLM8/vAMHQBCAGEBJB4m/3MBXf9gZ+f/xZ47AcCk8ADKyjn/GK4wAFlNmwEqTNcA9JfpABcwUQDvfzT+44Il//h0XQF8hHYArf7AAQbrU/9ur+cB+xy2AIH5Xf5UuIAATLU+AK+AugBkNYj+bR3iAN3pOgEUY0oAABagAIYNFQAJNDf/EVmMAK8iOwBUpXf/4OLq/wdIpv97c/8BEtb2APoHRwHZ3LkA1CNM/yZ9rwC9YdIAcu4s/ym8qf4tupoAUVwWAISgwQB50GL/DVEs/8ucUgBHOhX/0HK//jImkwCa2MMAZRkSADz61//phOv/Z6+OARAOXACNH27+7vEt/5nZ7wFhqC//+VUQARyvPv85/jYA3ud+AKYtdf4SvWD/5EwyAMj0XgDGmHgBRCJF/wxBoP5lE1oAp8V4/0Q2uf8p2rwAcagwAFhpvQEaUiD/uV2kAeTw7f9CtjUAq8Vc/2sJ6QHHeJD/TjEK/22qaf9aBB//HPRx/0o6CwA+3Pb/eZrI/pDSsv9+OYEBK/oO/2VvHAEvVvH/PUaW/zVJBf8eGp4A0RpWAIrtSgCkX7wAjjwd/qJ0+P+7r6AAlxIQANFvQf7Lhif/WGwx/4MaR//dG9f+aGld/x/sH/6HANP/j39uAdRJ5QDpQ6f+wwHQ/4QR3f8z2VoAQ+sy/9/SjwCzNYIB6WrGANmt3P9w5Rj/r5pd/kfL9v8wQoX/A4jm/xfdcf7rb9UAqnhf/vvdAgAtgp7+aV7Z//I0tP7VRC3/aCYcAPSeTAChyGD/zzUN/7tDlACqNvgAd6Ky/1MUCwAqKsABkp+j/7fobwBN5RX/RzWPABtMIgD2iC//2ye2/1zgyQETjg7/Rbbx/6N29QAJbWoBqrX3/04v7v9U0rD/1WuLACcmCwBIFZYASIJFAM1Nm/6OhRUAR2+s/uIqO/+zANcBIYDxAOr8DQG4TwgAbh5J//aNvQCqz9oBSppF/4r2Mf+bIGQAfUpp/1pVPf8j5bH/Pn3B/5lWvAFJeNQA0Xv2/ofRJv+XOiwBXEXW/w4MWP/8mab//c9w/zxOU//jfG4AtGD8/zV1If6k3FL/KQEb/yakpv+kY6n+PZBG/8CmEgBr+kIAxUEyAAGzEv//aAH/K5kj/1BvqABur6gAKWkt/9sOzf+k6Yz+KwF2AOlDwwCyUp//ild6/9TuWv+QI3z+GYykAPvXLP6FRmv/ZeNQ/lypNwDXKjEAcrRV/yHoGwGs1RkAPrB7/iCFGP/hvz4AXUaZALUqaAEWv+D/yMiM//nqJQCVOY0AwzjQ//6CRv8grfD/HdzHAG5kc/+E5fkA5Onf/yXY0f6ysdH/ty2l/uBhcgCJYaj/4d6sAKUNMQHS68z//AQc/kaglwDovjT+U/hd/z7XTQGvr7P/oDJCAHkw0AA/qdH/ANLIAOC7LAFJolIACbCP/xNMwf8dO6cBGCuaABy+vgCNvIEA6OvL/+oAbf82QZ8APFjo/3n9lv786YP/xm4pAVNNR//IFjv+av3y/xUMz//tQr0AWsbKAeGsfwA1FsoAOOaEAAFWtwBtvioA80SuAW3kmgDIsXoBI6C3/7EwVf9a2qn/+JhOAMr+bgAGNCsAjmJB/z+RFgBGal0A6IprAW6zPf/TgdoB8tFcACNa2QG2j2r/dGXZ/3L63f+tzAYAPJajAEmsLP/vblD/7UyZ/qGM+QCV6OUAhR8o/66kdwBxM9YAgeQC/kAi8wBr4/T/rmrI/1SZRgEyIxAA+krY/uy9Qv+Z+Q0A5rIE/90p7gB243n/XleM/v53XABJ7/b+dVeAABPTkf+xLvwA5Vv2AUWA9//KTTYBCAsJ/5lgpgDZ1q3/hsACAQDPAAC9rmsBjIZkAJ7B8wG2ZqsA65ozAI4Fe/88qFkB2Q5c/xPWBQHTp/4ALAbK/ngS7P8Pcbj/uN+LACixd/62e1r/sKWwAPdNwgAb6ngA5wDW/zsnHgB9Y5H/lkREAY3e+ACZe9L/bn+Y/+Uh1gGH3cUAiWECAAyPzP9RKbwAc0+C/14DhACYr7v/fI0K/37As/8LZ8YAlQYtANtVuwHmErL/SLaYAAPGuP+AcOABYaHmAP5jJv86n8UAl0LbADtFj/+5cPkAd4gv/3uChACoR1//cbAoAei5rQDPXXUBRJ1s/2YFk/4xYSEAWUFv/vceo/982d0BZvrYAMauS/45NxIA4wXsAeXVrQDJbdoBMenvAB43ngEZsmoAm2+8AV5+jADXH+4BTfAQANXyGQEmR6gAzbpd/jHTjP/bALT/hnalAKCThv9uuiP/xvMqAPOSdwCG66MBBPGH/8Euwf5ntE//4QS4/vJ2ggCSh7AB6m8eAEVC1f4pYHsAeV4q/7K/w/8ugioAdVQI/+kx1v7uem0ABkdZAezTewD0DTD+d5QOAHIcVv9L7Rn/keUQ/oFkNf+Glnj+qJ0yABdIaP/gMQ4A/3sW/5e5l/+qULgBhrYUAClkZQGZIRAATJpvAVbO6v/AoKT+pXtd/wHYpP5DEa//qQs7/54pPf9JvA7/wwaJ/xaTHf8UZwP/9oLj/3oogADiLxj+IyQgAJi6t/9FyhQAw4XDAN4z9wCpq14BtwCg/0DNEgGcUw//xTr5/vtZbv8yClj+MyvYAGLyxgH1l3EAq+zCAcUfx//lUSYBKTsUAP1o5gCYXQ7/9vKS/tap8P/wZmz+oKfsAJravACW6cr/GxP6AQJHhf+vDD8BkbfGAGh4c/+C+/cAEdSn/z57hP/3ZL0Am9+YAI/FIQCbOyz/ll3wAX8DV/9fR88Bp1UB/7yYdP8KFxcAicNdATZiYQDwAKj/lLx/AIZrlwBM/asAWoTAAJIWNgDgQjb+5rrl/ye2xACU+4L/QYNs/oABoACpMaf+x/6U//sGgwC7/oH/VVI+ALIXOv/+hAUApNUnAIb8kv4lNVH/m4ZSAM2n7v9eLbT/hCihAP5vcAE2S9kAs+bdAetev/8X8zABypHL/yd2Kv91jf0A/gDeACv7MgA2qeoBUETQAJTL8/6RB4cABv4AAPy5fwBiCIH/JiNI/9Mk3AEoGlkAqEDF/gPe7/8CU9f+tJ9pADpzwgC6dGr/5ffb/4F2wQDKrrcBpqFIAMlrk/7tiEoA6eZqAWlvqABA4B4BAeUDAGaXr//C7uT//vrUALvteQBD+2ABxR4LALdfzADNWYoAQN0lAf/fHv+yMNP/8cha/6fRYP85gt0ALnLI/z24QgA3thj+brYhAKu+6P9yXh8AEt0IAC/n/gD/cFMAdg/X/60ZKP7AwR//7hWS/6vBdv9l6jX+g9RwAFnAawEI0BsAtdkP/+eV6ACM7H4AkAnH/wxPtf6Ttsr/E222/zHU4QBKo8sAr+mUABpwMwDBwQn/D4f5AJbjggDMANsBGPLNAO7Qdf8W9HAAGuUiACVQvP8mLc7+8Frh/x0DL/8q4EwAuvOnACCED/8FM30Ai4cYAAbx2wCs5YX/9tYyAOcLz/+/flMBtKOq//U4GAGypNP/AxDKAWI5dv+Ng1n+ITMYAPOVW//9NA4AI6lD/jEeWP+zGyT/pYy3ADq9lwBYHwAAS6lCAEJlx/8Y2McBecQa/w5Py/7w4lH/XhwK/1PB8P/MwYP/Xg9WANoonQAzwdEAAPKxAGa59wCebXQAJodbAN+vlQDcQgH/VjzoABlgJf/heqIB17uo/56dLgA4q6IA6PBlAXoWCQAzCRX/NRnu/9ke6P59qZQADehmAJQJJQClYY0B5IMpAN4P8//+EhEABjztAWoDcQA7hL0AXHAeAGnQ1QAwVLP/u3nn/hvYbf+i3Wv+Se/D//ofOf+Vh1n/uRdzAQOjnf8ScPoAGTm7/6FgpAAvEPMADI37/kPquP8pEqEArwZg/6CsNP4YsLf/xsFVAXx5if+XMnL/3Ms8/8/vBQEAJmv/N+5e/kaYXgDV3E0BeBFF/1Wkvv/L6lEAJjEl/j2QfACJTjH+qPcwAF+k/ABpqYcA/eSGAECmSwBRSRT/z9IKAOpqlv9eIlr//p85/tyFYwCLk7T+GBe5ACk5Hv+9YUwAQbvf/+CsJf8iPl8B55DwAE1qfv5AmFsAHWKbAOL7Nf/q0wX/kMve/6Sw3f4F5xgAs3rNACQBhv99Rpf+YeT8AKyBF/4wWtH/luBSAVSGHgDxxC4AZ3Hq/y5lef4ofPr/hy3y/gn5qP+MbIP/j6OrADKtx/9Y3o7/yF+eAI7Ao/8HdYcAb3wWAOwMQf5EJkH/467+APT1JgDwMtD/oT/6ADzR7wB6IxMADiHm/gKfcQBqFH//5M1gAInSrv601JD/WWKaASJYiwCnonABQW7FAPElqQBCOIP/CslT/oX9u/+xcC3+xPsAAMT6l//u6Nb/ltHNABzwdgBHTFMB7GNbACr6gwFgEkD/dt4jAHHWy/96d7j/QhMkAMxA+QCSWYsAhj6HAWjpZQC8VBoAMfmBANDWS//Pgk3/c6/rAKsCif+vkboBN/WH/5pWtQFkOvb/bcc8/1LMhv/XMeYBjOXA/97B+/9RiA//s5Wi/xcnHf8HX0v+v1HeAPFRWv9rMcn/9NOdAN6Mlf9B2zj+vfZa/7I7nQEw2zQAYiLXABwRu/+vqRgAXE+h/+zIwgGTj+oA5eEHAcWoDgDrMzUB/XiuAMUGqP/KdasAoxXOAHJVWv8PKQr/whNjAEE32P6iknQAMs7U/0CSHf+enoMBZKWC/6wXgf99NQn/D8ESARoxC/+1rskBh8kO/2QTlQDbYk8AKmOP/mAAMP/F+VP+aJVP/+tuiP5SgCz/QSkk/ljTCgC7ebsAYobHAKu8s/7SC+7/QnuC/jTqPQAwcRf+BlZ4/3ey9QBXgckA8o3RAMpyVQCUFqEAZ8MwABkxq/+KQ4IAtkl6/pQYggDT5ZoAIJueAFRpPQCxwgn/pllWATZTuwD5KHX/bQPX/zWSLAE/L7MAwtgD/g5UiACIsQ3/SPO6/3URff/TOtP/XU/fAFpY9f+L0W//Rt4vAAr2T//G2bIA4+ELAU5+s/8+K34AZ5QjAIEIpf718JQAPTOOAFHQhgAPiXP/03fs/5/1+P8Choj/5os6AaCk/gByVY3/Maa2/5BGVAFVtgcALjVdAAmmof83orL/Lbi8AJIcLP6pWjEAeLLxAQ57f/8H8ccBvUIy/8aPZf6984f/jRgY/kthVwB2+5oB7TacAKuSz/+DxPb/iEBxAZfoOQDw2nMAMT0b/0CBSQH8qRv/KIQKAVrJwf/8efABus4pACvGYQCRZLcAzNhQ/qyWQQD55cT+aHtJ/01oYP6CtAgAaHs5ANzK5f9m+dMAVg7o/7ZO0QDv4aQAag0g/3hJEf+GQ+kAU/61ALfscAEwQIP/8djz/0HB4gDO8WT+ZIam/+3KxQA3DVEAIHxm/yjksQB2tR8B56CG/3e7ygAAjjz/gCa9/6bJlgDPeBoBNrisAAzyzP6FQuYAIiYfAbhwUAAgM6X+v/M3ADpJkv6bp83/ZGiY/8X+z/+tE/cA7grKAO+X8gBeOyf/8B1m/wpcmv/lVNv/oYFQANBazAHw267/nmaRATWyTP80bKgBU95rANMkbQB2OjgACB0WAO2gxwCq0Z0AiUcvAI9WIADG8gIA1DCIAVysugDml2kBYL/lAIpQv/7w2IL/YisG/qjEMQD9ElsBkEl5AD2SJwE/aBj/uKVw/n7rYgBQ1WL/ezxX/1KM9QHfeK3/D8aGAc487wDn6lz/Ie4T/6VxjgGwdyYAoCum/u9baQBrPcIBGQREAA+LMwCkhGr/InQu/qhfxQCJ1BcASJw6AIlwRf6WaZr/7MmdABfUmv+IUuP+4jvd/1+VwABRdjT/ISvXAQ6TS/9ZnHn+DhJPAJPQiwGX2j7/nFgIAdK4Yv8Ur3v/ZlPlANxBdAGW+gT/XI7c/yL3Qv/M4bP+l1GXAEco7P+KPz4ABk/w/7e5tQB2MhsAP+PAAHtjOgEy4Jv/EeHf/tzgTf8OLHsBjYCvAPjUyACWO7f/k2EdAJbMtQD9JUcAkVV3AJrIugACgPn/Uxh8AA5XjwCoM/UBfJfn/9DwxQF8vrkAMDr2ABTp6AB9EmL/Df4f//Wxgv9sjiMAq33y/owMIv+loaIAzs1lAPcZIgFkkTkAJ0Y5AHbMy//yAKIApfQeAMZ04gCAb5n/jDa2ATx6D/+bOjkBNjLGAKvTHf9riqf/rWvH/22hwQBZSPL/znNZ//r+jv6xyl7/UVkyAAdpQv8Z/v/+y0AX/0/ebP8n+UsA8XwyAO+YhQDd8WkAk5diANWhef7yMYkA6SX5/iq3GwC4d+b/2SCj/9D75AGJPoP/T0AJ/l4wcQARijL+wf8WAPcSxQFDN2gAEM1f/zAlQgA3nD8BQFJK/8g1R/7vQ30AGuDeAN+JXf8e4Mr/CdyEAMYm6wFmjVYAPCtRAYgcGgDpJAj+z/KUAKSiPwAzLuD/cjBP/wmv4gDeA8H/L6Do//9daf4OKuYAGopSAdAr9AAbJyb/YtB//0CVtv8F+tEAuzwc/jEZ2v+pdM3/dxJ4AJx0k/+ENW3/DQrKAG5TpwCd24n/BgOC/zKnHv88ny//gYCd/l4DvQADpkQAU9/XAJZawgEPqEEA41Mz/82rQv82uzwBmGYt/3ea4QDw94gAZMWy/4tH3//MUhABKc4q/5zA3f/Ye/T/2tq5/7u67//8rKD/wzQWAJCutf67ZHP/006w/xsHwQCT1Wj/WskK/1B7QgEWIboAAQdj/h7OCgDl6gUANR7SAIoI3P5HN6cASOFWAXa+vAD+wWUBq/ms/16et/5dAmz/sF1M/0ljT/9KQIH+9i5BAGPxf/72l2b/LDXQ/jtm6gCar6T/WPIgAG8mAQD/tr7/c7AP/qk8gQB67fEAWkw/AD5KeP96w24AdwSyAN7y0gCCIS7+nCgpAKeScAExo2//ebDrAEzPDv8DGcYBKevVAFUk1gExXG3/yBge/qjswwCRJ3wB7MOVAFokuP9DVar/JiMa/oN8RP/vmyP/NsmkAMQWdf8xD80AGOAdAX5xkAB1FbYAy5+NAN+HTQCw5rD/vuXX/2Mltf8zFYr/Gb1Z/zEwpf6YLfcAqmzeAFDKBQAbRWf+zBaB/7T8Pv7SAVv/km7+/9uiHADf/NUBOwghAM4Q9ACB0zAAa6DQAHA70QBtTdj+IhW5//ZjOP+zixP/uR0y/1RZEwBK+mL/4SrI/8DZzf/SEKcAY4RfASvmOQD+C8v/Y7w//3fB+/5QaTYA6LW9AbdFcP/Qq6X/L220/3tTpQCSojT/mgsE/5fjWv+SiWH+Pekp/14qN/9spOwAmET+AAqMg/8Kak/+856JAEOyQv6xe8b/Dz4iAMVYKv+VX7H/mADG/5X+cf/hWqP/fdn3ABIR4ACAQnj+wBkJ/zLdzQAx1EYA6f+kAALRCQDdNNv+rOD0/144zgHyswL/H1ukAeYuiv+95twAOS89/28LnQCxW5gAHOZiAGFXfgDGWZH/p09rAPlNoAEd6eb/lhVW/jwLwQCXJST+uZbz/+TUUwGsl7QAyambAPQ86gCO6wQBQ9o8AMBxSwF088//QaybAFEenP9QSCH+Eudt/45rFf59GoT/sBA7/5bJOgDOqckA0HniACisDv+WPV7/ODmc/408kf8tbJX/7pGb/9FVH/7ADNIAY2Jd/pgQlwDhudwAjess/6CsFf5HGh//DUBd/hw4xgCxPvgBtgjxAKZllP9OUYX/gd7XAbypgf/oB2EAMXA8/9nl+wB3bIoAJxN7/oMx6wCEVJEAguaU/xlKuwAF9Tb/udvxARLC5P/xymYAaXHKAJvrTwAVCbL/nAHvAMiUPQBz99L/Md2HADq9CAEjLgkAUUEF/zSeuf99dC7/SowN/9JcrP6TF0cA2eD9/nNstP+ROjD+27EY/5z/PAGak/IA/YZXADVL5QAww97/H68y/5zSeP/QI97/EvizAQIKZf+dwvj/nsxl/2j+xf9PPgQAsqxlAWCS+/9BCpwAAoml/3QE5wDy1wEAEyMd/yuhTwA7lfYB+0KwAMghA/9Qbo7/w6ERAeQ4Qv97L5H+hASkAEOurAAZ/XIAV2FXAfrcVABgW8j/JX07ABNBdgChNPH/7awG/7C///8BQYL+377mAGX95/+SI20A+h1NATEAEwB7WpsBFlYg/9rVQQBvXX8APF2p/wh/tgARug7+/Yn2/9UZMP5M7gD/+FxG/2PgiwC4Cf8BB6TQAM2DxgFX1scAgtZfAN2V3gAXJqv+xW7VACtzjP7XsXYAYDRCAXWe7QAOQLb/Lj+u/55fvv/hzbH/KwWO/6xj1P/0u5MAHTOZ/+R0GP4eZc8AE/aW/4bnBQB9huIBTUFiAOyCIf8Fbj4ARWx//wdxFgCRFFP+wqHn/4O1PADZ0bH/5ZTU/gODuAB1sbsBHA4f/7BmUAAyVJf/fR82/xWdhf8Ts4sB4OgaACJ1qv+n/Kv/SY3O/oH6IwBIT+wB3OUU/ynKrf9jTO7/xhbg/2zGw/8kjWAB7J47/2pkVwBu4gIA4+reAJpdd/9KcKT/Q1sC/xWRIf9m1on/r+Zn/qP2pgBd93T+p+Ac/9wCOQGrzlQAe+QR/xt4dwB3C5MBtC/h/2jIuf6lAnIATU7UAC2asf8YxHn+Up22AFoQvgEMk8UAX++Y/wvrRwBWknf/rIbWADyDxACh4YEAH4J4/l/IMwBp59L/OgmU/yuo3f987Y4AxtMy/i71ZwCk+FQAmEbQ/7R1sQBGT7kA80ogAJWczwDFxKEB9TXvAA9d9v6L8DH/xFgk/6ImewCAyJ0Brkxn/62pIv7YAav/cjMRAIjkwgBuljj+avafABO4T/+WTfD/m1CiAAA1qf8dl1YARF4QAFwHbv5idZX/+U3m//0KjADWfFz+I3brAFkwOQEWNaYAuJA9/7P/wgDW+D3+O272AHkVUf6mA+QAakAa/0Xohv/y3DX+LtxVAHGV9/9hs2f/vn8LAIfRtgBfNIEBqpDO/3rIzP+oZJIAPJCV/kY8KAB6NLH/9tNl/67tCAAHM3gAEx+tAH7vnP+PvcsAxIBY/+mF4v8efa3/yWwyAHtkO//+owMB3ZS1/9aIOf7etIn/z1g2/xwh+/9D1jQB0tBkAFGqXgCRKDUA4G/n/iMc9P/ix8P+7hHmANnZpP6pnd0A2i6iAcfPo/9sc6IBDmC7/3Y8TAC4n5gA0edH/iqkuv+6mTP+3au2/6KOrQDrL8EAB4sQAV+kQP8Q3aYA28UQAIQdLP9kRXX/POtY/ihRrQBHvj3/u1idAOcLFwDtdaQA4ajf/5pydP+jmPIBGCCqAH1icf6oE0wAEZ3c/ps0BQATb6H/R1r8/61u8AAKxnn//f/w/0J70gDdwtf+eaMR/+EHYwC+MbYAcwmFAegaiv/VRIQALHd6/7NiMwCVWmoARzLm/wqZdv+xRhkApVfNADeK6gDuHmEAcZvPAGKZfwAia9v+dXKs/0y0//7yObP/3SKs/jiiMf9TA///cd29/7wZ5P4QWFn/RxzG/hYRlf/zef7/a8pj/wnODgHcL5kAa4knAWExwv+VM8X+ujoL/2sr6AHIBg7/tYVB/t3kq/97PucB4+qz/yK91P70u/kAvg1QAYJZAQDfha0ACd7G/0J/SgCn2F3/m6jGAUKRAABEZi4BrFqaANiAS/+gKDMAnhEbAXzwMQDsyrD/l3zA/ybBvgBftj0Ao5N8//+lM/8cKBH+12BOAFaR2v4fJMr/VgkFAG8pyP/tbGEAOT4sAHW4DwEt8XQAmAHc/52lvAD6D4MBPCx9/0Hc+/9LMrgANVqA/+dQwv+IgX8BFRK7/y06of9HkyIArvkL/iONHQDvRLH/c246AO6+sQFX9ab/vjH3/5JTuP+tDif/ktdoAI7feACVyJv/1M+RARC12QCtIFf//yO1AHffoQHI317/Rga6/8BDVf8yqZgAkBp7/zjzs/4URIgAJ4y8/v3QBf/Ic4cBK6zl/5xouwCX+6cANIcXAJeZSACTxWv+lJ4F/+6PzgB+mYn/WJjF/gdEpwD8n6X/7042/xg/N/8m3l4A7bcM/87M0gATJ/b+HkrnAIdsHQGzcwAAdXZ0AYQG/P+RgaEBaUONAFIl4v/u4uT/zNaB/qJ7ZP+5eeoALWznAEIIOP+EiIAArOBC/q+dvADm3+L+8ttFALgOdwFSojgAcnsUAKJnVf8x72P+nIfXAG//p/4nxNYAkCZPAfmofQCbYZz/FzTb/5YWkAAslaX/KH+3AMRN6f92gdL/qofm/9Z3xgDp8CMA/TQH/3VmMP8VzJr/s4ix/xcCAwGVgln//BGfAUY8GgCQaxEAtL48/zi2O/9uRzb/xhKB/5XgV//fFZj/iha2//qczQDsLdD/T5TyAWVG0QBnTq4AZZCs/5iI7QG/wogAcVB9AZgEjQCbljX/xHT1AO9ySf4TUhH/fH3q/yg0vwAq0p7/m4SlALIFKgFAXCj/JFVN/7LkdgCJQmD+c+JCAG7wRf6Xb1AAp67s/+Nsa/+88kH/t1H/ADnOtf8vIrX/1fCeAUdLXwCcKBj/ZtJRAKvH5P+aIikA469LABXvwwCK5V8BTMAxAHV7VwHj4YIAfT4//wLGqwD+JA3+kbrOAJT/9P8jAKYAHpbbAVzk1ABcxjz+PoXI/8kpOwB97m3/tKPuAYx6UgAJFlj/xZ0v/5leOQBYHrYAVKFVALKSfACmpgf/FdDfAJy28gCbebkAU5yu/poQdv+6U+gB3zp5/x0XWAAjfX//qgWV/qQMgv+bxB0AoWCIAAcjHQGiJfsAAy7y/wDZvAA5ruIBzukCADm7iP57vQn/yXV//7okzADnGdgAUE5pABOGgf+Uy0QAjVF9/vilyP/WkIcAlzem/ybrWwAVLpoA3/6W/yOZtP99sB0BK2Ie/9h65v/poAwAObkM/vBxB/8FCRD+GltsAG3GywAIkygAgYbk/3y6KP9yYoT+poQXAGNFLAAJ8u7/uDU7AISBZv80IPP+k9/I/3tTs/6HkMn/jSU4AZc84/9aSZwBy6y7AFCXL/9eief/JL87/+HRtf9K19X+Bnaz/5k2wQEyAOcAaJ1IAYzjmv+24hD+YOFc/3MUqv4G+k4A+Eut/zVZBv8AtHYASK0BAEAIzgGuhd8AuT6F/9YLYgDFH9AAq6f0/xbntQGW2rkA96lhAaWL9/8veJUBZ/gzADxFHP4Zs8QAfAfa/jprUQC46Zz//EokAHa8QwCNXzX/3l6l/i49NQDOO3P/L+z6/0oFIAGBmu7/aiDiAHm7Pf8DpvH+Q6qs/x3Ysv8XyfwA/W7zAMh9OQBtwGD/NHPuACZ58//JOCEAwnaCAEtgGf+qHub+Jz/9ACQt+v/7Ae8AoNRcAS3R7QDzIVf+7VTJ/9QSnf7UY3//2WIQ/ous7wCoyYL/j8Gp/+6XwQHXaCkA7z2l/gID8gAWy7H+scwWAJWB1f4fCyn/AJ95/qAZcv+iUMgAnZcLAJqGTgHYNvwAMGeFAGncxQD9qE3+NbMXABh58AH/LmD/azyH/mLN+f8/+Xf/eDvT/3K0N/5bVe0AldRNAThJMQBWxpYAXdGgAEXNtv/0WisAFCSwAHp03QAzpycB5wE//w3FhgAD0SL/hzvKAKdkTgAv30wAuTw+ALKmewGEDKH/Pa4rAMNFkAB/L78BIixOADnqNAH/Fij/9l6SAFPkgAA8TuD/AGDS/5mv7ACfFUkAtHPE/oPhagD/p4YAnwhw/3hEwv+wxMb/djCo/12pAQBwyGYBShj+ABONBP6OPj8Ag7O7/02cm/93VqQAqtCS/9CFmv+Umzr/onjo/vzVmwDxDSoAXjKDALOqcACMU5f/N3dUAYwj7/+ZLUMB7K8nADaXZ/+eKkH/xO+H/lY1ywCVYS/+2CMR/0YDRgFnJFr/KBqtALgwDQCj29n/UQYB/92qbP7p0F0AZMn5/lYkI//Rmh4B48n7/wK9p/5kOQMADYApAMVkSwCWzOv/ka47AHj4lf9VN+EActI1/sfMdwAO90oBP/uBAENolwGHglAAT1k3/3Xmnf8ZYI8A1ZEFAEXxeAGV81//cioUAINIAgCaNRT/ST5tAMRmmAApDMz/eiYLAfoKkQDPfZQA9vTe/ykgVQFw1X4AovlWAUfGf/9RCRUBYicE/8xHLQFLb4kA6jvnACAwX//MH3IBHcS1/zPxp/5dbY4AaJAtAOsMtf80cKQATP7K/64OogA965P/K0C5/ul92QDzWKf+SjEIAJzMQgB81nsAJt12AZJw7AByYrEAl1nHAFfFcAC5laEALGClAPizFP+829j+KD4NAPOOjQDl487/rMoj/3Ww4f9SbiYBKvUO/xRTYQAxqwoA8nd4ABnoPQDU8JP/BHM4/5ER7/7KEfv/+RL1/2N17wC4BLP/9u0z/yXvif+mcKb/Ubwh/7n6jv82u60A0HDJAPYr5AFouFj/1DTE/zN1bP/+dZsALlsP/1cOkP9X48wAUxpTAZ9M4wCfG9UBGJdsAHWQs/6J0VIAJp8KAHOFyQDftpwBbsRd/zk86QAFp2n/msWkAGAiuv+ThSUB3GO+AAGnVP8UkasAwsX7/l9Ohf/8+PP/4V2D/7uGxP/YmaoAFHae/owBdgBWng8BLdMp/5MBZP5xdEz/039sAWcPMADBEGYBRTNf/2uAnQCJq+kAWnyQAWqhtgCvTOwByI2s/6M6aADptDT/8P0O/6Jx/v8m74r+NC6mAPFlIf6DupwAb9A+/3xeoP8frP4AcK44/7xjG/9DivsAfTqAAZyYrv+yDPf//FSeAFLFDv6syFP/JScuAWrPpwAYvSIAg7KQAM7VBACh4tIASDNp/2Etu/9OuN//sB37AE+gVv90JbIAUk3VAVJUjf/iZdQBr1jH//Ve9wGsdm3/prm+AIO1eABX/l3/hvBJ/yD1j/+Lomf/s2IS/tnMcACT33j/NQrzAKaMlgB9UMj/Dm3b/1vaAf/8/C/+bZx0/3MxfwHMV9P/lMrZ/xpV+f8O9YYBTFmp//It5gA7Yqz/ckmE/k6bMf+eflQAMa8r/xC2VP+dZyMAaMFt/0PdmgDJrAH+CKJYAKUBHf99m+X/HprcAWfvXADcAW3/ysYBAF4CjgEkNiwA6+Ke/6r71v+5TQkAYUryANujlf/wI3b/33JY/sDHAwBqJRj/yaF2/2FZYwHgOmf/ZceT/t48YwDqGTsBNIcbAGYDW/6o2OsA5eiIAGg8gQAuqO4AJ79DAEujLwCPYWL/ONioAajp/P8jbxb/XFQrABrIVwFb/ZgAyjhGAI4ITQBQCq8B/MdMABZuUv+BAcIAC4A9AVcOkf/93r4BD0iuAFWjVv46Yyz/LRi8/hrNDwAT5dL++EPDAGNHuACaxyX/l/N5/yYzS//JVYL+LEH6ADmT8/6SKzv/WRw1ACFUGP+zMxL+vUZTAAucswFihncAnm9vAHeaSf/IP4z+LQ0N/5rAAv5RSCoALqC5/ixwBgCS15UBGrBoAEQcVwHsMpn/s4D6/s7Bv/+mXIn+NSjvANIBzP6orSMAjfMtASQybf8P8sL/4596/7Cvyv5GOUgAKN84ANCiOv+3Yl0AD28MAB4ITP+Ef/b/LfJnAEW1D/8K0R4AA7N5APHo2gF7x1j/AtLKAbyCUf9eZdABZyQtAEzBGAFfGvH/paK7ACRyjADKQgX/JTiTAJgL8wF/Vej/+ofUAbmxcQBa3Ev/RfiSADJvMgBcFlAA9CRz/qNkUv8ZwQYBfz0kAP1DHv5B7Kr/oRHX/j+vjAA3fwQAT3DpAG2gKACPUwf/QRru/9mpjP9OXr3/AJO+/5NHuv5qTX//6Z3pAYdX7f/QDewBm20k/7Rk2gC0oxIAvm4JARE/e/+ziLT/pXt7/5C8Uf5H8Gz/GXAL/+PaM/+nMur/ck9s/x8Tc/+38GMA41eP/0jZ+P9mqV8BgZWVAO6FDAHjzCMA0HMaAWYI6gBwWI8BkPkOAPCerP5kcHcAwo2Z/ig4U/95sC4AKjVM/56/mgBb0VwArQ0QAQVI4v/M/pUAULjPAGQJev52Zav//MsA/qDPNgA4SPkBOIwN/wpAa/5bZTT/4bX4AYv/hADmkREA6TgXAHcB8f/VqZf/Y2MJ/rkPv/+tZ20Brg37/7JYB/4bO0T/CiEC//hhOwAaHpIBsJMKAF95zwG8WBgAuV7+/nM3yQAYMkYAeDUGAI5CkgDk4vn/aMDeAa1E2wCiuCT/j2aJ/50LFwB9LWIA613h/jhwoP9GdPMBmfk3/4EnEQHxUPQAV0UVAV7kSf9OQkH/wuPnAD2SV/+tmxf/cHTb/tgmC/+DuoUAXtS7AGQvWwDM/q//3hLX/q1EbP/j5E//Jt3VAKPjlv4fvhIAoLMLAQpaXv/crlgAo9Pl/8eINACCX93/jLzn/otxgP91q+z+MdwU/zsUq//kbbwAFOEg/sMQrgDj/ogBhydpAJZNzv/S7uIAN9SE/u85fACqwl3/+RD3/xiXPv8KlwoAT4uy/3jyygAa29UAPn0j/5ACbP/mIVP/US3YAeA+EQDW2X0AYpmZ/7Owav6DXYr/bT4k/7J5IP94/EYA3PglAMxYZwGA3Pv/7OMHAWoxxv88OGsAY3LuANzMXgFJuwEAWZoiAE7Zpf8Ow/n/Ceb9/82H9QAa/Af/VM0bAYYCcAAlniAA51vt/7+qzP+YB94AbcAxAMGmkv/oE7X/aY40/2cQGwH9yKUAw9kE/zS9kP97m6D+V4I2/054Pf8OOCkAGSl9/1eo9QDWpUYA1KkG/9vTwv5IXaT/xSFn/yuOjQCD4awA9GkcAERE4QCIVA3/gjko/otNOABUljUANl+dAJANsf5fc7oAdRd2//Sm8f8LuocAsmrL/2HaXQAr/S0ApJgEAIt27wBgARj+65nT/6huFP8y77AAcinoAMH6NQD+oG/+iHop/2FsQwDXmBf/jNHUACq9owDKKjL/amq9/75E2f/pOnUA5dzzAcUDBAAleDb+BJyG/yQ9q/6liGT/1OgOAFquCgDYxkH/DANAAHRxc//4ZwgA530S/6AcxQAeuCMB30n5/3sULv6HOCX/rQ3lAXehIv/1PUkAzX1wAIlohgDZ9h7/7Y6PAEGfZv9spL4A23Wt/yIleP7IRVAAH3za/koboP+6msf/R8f8AGhRnwERyCcA0z3AARruWwCU2QwAO1vV/wtRt/+B5nr/csuRAXe0Qv9IirQA4JVqAHdSaP/QjCsAYgm2/81lhv8SZSYAX8Wm/8vxkwA+0JH/hfb7AAKpDgAN97gAjgf+ACTIF/9Yzd8AW4E0/xW6HgCP5NIB9+r4/+ZFH/6wuof/7s00AYtPKwARsNn+IPNDAPJv6QAsIwn/43JRAQRHDP8mab8AB3Uy/1FPEAA/REH/nSRu/03xA//iLfsBjhnOAHh70QEc/u7/BYB+/1ve1/+iD78AVvBJAIe5Uf4s8aMA1NvS/3CimwDPZXYAqEg4/8QFNABIrPL/fhad/5JgO/+ieZj+jBBfAMP+yP5SlqIAdyuR/sysTv+m4J8AaBPt//V+0P/iO9UAddnFAJhI7QDcHxf+Dlrn/7zUQAE8Zfb/VRhWAAGxbQCSUyABS7bAAHfx4AC57Rv/uGVSAeslTf/9hhMA6PZ6ADxqswDDCwwAbULrAX1xOwA9KKQAr2jwAAIvu/8yDI0Awou1/4f6aABhXN7/2ZXJ/8vxdv9Pl0MAeo7a/5X17wCKKsj+UCVh/3xwp/8kilf/gh2T//FXTv/MYRMBsdEW//fjf/5jd1P/1BnGARCzswCRTaz+WZkO/9q9pwBr6Tv/IyHz/ixwcP+hf08BzK8KACgViv5odOQAx1+J/4W+qP+SpeoBt2MnALfcNv7/3oUAott5/j/vBgDhZjb/+xL2AAQigQGHJIMAzjI7AQ9htwCr2If/ZZgr/5b7WwAmkV8AIswm/rKMU/8ZgfP/TJAlAGokGv52kKz/RLrl/2uh1f8uo0T/lar9ALsRDwDaoKX/qyP2AWANEwCly3UA1mvA//R7sQFkA2gAsvJh//tMgv/TTSoB+k9G/z/0UAFpZfYAPYg6Ae5b1QAOO2L/p1RNABGELv45r8X/uT64AExAzwCsr9D+r0olAIob0/6UfcIACllRAKjLZf8r1dEB6/U2AB4j4v8JfkYA4n1e/px1FP85+HAB5jBA/6RcpgHg1ub/JHiPADcIK//7AfUBamKlAEprav41BDb/WrKWAQN4e//0BVkBcvo9//6ZUgFNDxEAOe5aAV/f5gDsNC/+Z5Sk/3nPJAESELn/SxRKALsLZQAuMIH/Fu/S/03sgf9vTcz/PUhh/8fZ+/8q18wAhZHJ/znmkgHrZMYAkkkj/mzGFP+2T9L/UmeIAPZssAAiETz/E0py/qiqTv+d7xT/lSmoADp5HABPs4b/53mH/67RYv/zer4Aq6bNANR0MAAdbEL/ot62AQ53FQDVJ/n//t/k/7elxgCFvjAAfNBt/3evVf8J0XkBMKu9/8NHhgGI2zP/tluN/jGfSAAjdvX/cLrj/zuJHwCJLKMAcmc8/gjVlgCiCnH/wmhIANyDdP+yT1wAy/rV/l3Bvf+C/yL+1LyXAIgRFP8UZVP/1M6mAOXuSf+XSgP/qFfXAJu8hf+mgUkA8E+F/7LTUf/LSKP+wailAA6kx/4e/8wAQUhbAaZKZv/IKgD/wnHj/0IX0ADl2GT/GO8aAArpPv97CrIBGiSu/3fbxwEto74AEKgqAKY5xv8cGhoAfqXnAPtsZP895Xn/OnaKAEzPEQANInD+WRCoACXQaf8jydf/KGpl/gbvcgAoZ+L+9n9u/z+nOgCE8I4ABZ5Y/4FJnv9eWZIA5jaSAAgtrQBPqQEAc7r3AFRAgwBD4P3/z71AAJocUQEtuDb/V9Tg/wBgSf+BIesBNEJQ//uum/8EsyUA6qRd/l2v/QDGRVf/4GouAGMd0gA+vHL/LOoIAKmv9/8XbYn/5bYnAMClXv71ZdkAv1hgAMReY/9q7gv+NX7zAF4BZf8ukwIAyXx8/40M2gANpp0BMPvt/5v6fP9qlJL/tg3KABw9pwDZmAj+3IIt/8jm/wE3QVf/Xb9h/nL7DgAgaVwBGs+NABjPDf4VMjD/upR0/9Mr4QAlIqL+pNIq/0QXYP+21gj/9XWJ/0LDMgBLDFP+UIykAAmlJAHkbuMA8RFaARk01AAG3wz/i/M5AAxxSwH2t7//1b9F/+YPjgABw8T/iqsv/0A/agEQqdb/z644AVhJhf+2hYwAsQ4Z/5O4Nf8K46H/eNj0/0lN6QCd7osBO0HpAEb72AEpuJn/IMtwAJKT/QBXZW0BLFKF//SWNf9emOj/O10n/1iT3P9OUQ0BIC/8/6ATcv9dayf/dhDTAbl30f/j23/+WGns/6JuF/8kpm7/W+zd/0LqdABvE/T+CukaACC3Bv4Cv/IA2pw1/ik8Rv+o7G8Aebl+/+6Oz/83fjQA3IHQ/lDMpP9DF5D+2ihs/3/KpADLIQP/Ap4AACVgvP/AMUoAbQQAAG+nCv5b2of/y0Kt/5bC4gDJ/Qb/rmZ5AM2/bgA1wgQAUSgt/iNmj/8MbMb/EBvo//xHugGwbnIAjgN1AXFNjgATnMUBXC/8ADXoFgE2EusALiO9/+zUgQACYND+yO7H/zuvpP+SK+cAwtk0/wPfDACKNrL+VevPAOjPIgAxNDL/pnFZ/wot2P8+rRwAb6X2AHZzW/+AVDwAp5DLAFcN8wAWHuQBsXGS/4Gq5v78mYH/keErAEbnBf96aX7+VvaU/24lmv7RA1sARJE+AOQQpf833fn+stJbAFOS4v5FkroAXdJo/hAZrQDnuiYAvXqM//sNcP9pbl0A+0iqAMAX3/8YA8oB4V3kAJmTx/5tqhYA+GX2/7J8DP+y/mb+NwRBAH3WtAC3YJMALXUX/oS/+QCPsMv+iLc2/5LqsQCSZVb/LHuPASHRmADAWin+Uw99/9WsUgDXqZAAEA0iACDRZP9UEvkBxRHs/9m65gAxoLD/b3Zh/+1o6wBPO1z+RfkL/yOsSgETdkQA3nyl/7RCI/9WrvYAK0pv/36QVv/k6lsA8tUY/kUs6//ctCMACPgH/2YvXP/wzWb/cearAR+5yf/C9kb/ehG7AIZGx/+VA5b/dT9nAEFoe//UNhMBBo1YAFOG8/+INWcAqRu0ALExGABvNqcAwz3X/x8BbAE8KkYAuQOi/8KVKP/2fyb+vncm/z13CAFgodv/KsvdAbHypP/1nwoAdMQAAAVdzf6Af7MAfe32/5Wi2f9XJRT+jO7AAAkJwQBhAeIAHSYKAACIP//lSNL+JoZc/07a0AFoJFT/DAXB//KvPf+/qS4Bs5OT/3G+i/59rB8AA0v8/tckDwDBGxgB/0WV/26BdgDLXfkAiolA/iZGBgCZdN4AoUp7AMFjT/92O17/PQwrAZKxnQAuk78AEP8mAAszHwE8OmL/b8JNAZpb9ACMKJABrQr7AMvRMv5sgk4A5LRaAK4H+gAfrjwAKaseAHRjUv92wYv/u63G/tpvOAC5e9gA+Z40ADS0Xf/JCVv/OC2m/oSby/866G4ANNNZ//0AogEJV7cAkYgsAV569QBVvKsBk1zGAAAIaAAeX64A3eY0Aff36/+JrjX/IxXM/0fj1gHoUsIACzDj/6pJuP/G+/z+LHAiAINlg/9IqLsAhId9/4poYf/uuKj/82hU/4fY4v+LkO0AvImWAVA4jP9Wqaf/wk4Z/9wRtP8RDcEAdYnU/43glwAx9K8AwWOv/xNjmgH/QT7/nNI3//L0A//6DpUAnljZ/53Phv776BwALpz7/6s4uP/vM+oAjoqD/xn+8wEKycIAP2FLANLvogDAyB8BddbzABhH3v42KOj/TLdv/pAOV//WT4j/2MTUAIQbjP6DBf0AfGwT/xzXSwBM3jf+6bY/AESrv/40b97/CmlN/1Cq6wCPGFj/Led5AJSB4AE99lQA/S7b/+9MIQAxlBL+5iVFAEOGFv6Om14AH53T/tUqHv8E5Pf+/LAN/ycAH/7x9P//qi0K/v3e+QDecoQA/y8G/7SjswFUXpf/WdFS/uU0qf/V7AAB1jjk/4d3l/9wycEAU6A1/gaXQgASohEA6WFbAIMFTgG1eDX/dV8//+11uQC/foj/kHfpALc5YQEvybv/p6V3AS1kfgAVYgb+kZZf/3g2mADRYmgAj28e/riU+QDr2C4A+MqU/zlfFgDy4aMA6ffo/0erE/9n9DH/VGdd/0R59AFS4A0AKU8r//nOp//XNBX+wCAW//dvPABlSib/FltU/h0cDf/G59f+9JrIAN+J7QDThA4AX0DO/xE+9//pg3kBXRdNAM3MNP5RvYgAtNuKAY8SXgDMK4z+vK/bAG9ij/+XP6L/0zJH/hOSNQCSLVP+slLu/xCFVP/ixl3/yWEU/3h2I/9yMuf/ouWc/9MaDAByJ3P/ztSGAMXZoP90gV7+x9fb/0vf+QH9dLX/6Ndo/+SC9v+5dVYADgUIAO8dPQHtV4X/fZKJ/syo3wAuqPUAmmkWANzUof9rRRj/idq1//FUxv+CetP/jQiZ/76xdgBgWbIA/xAw/npgaf91Nuj/In5p/8xDpgDoNIr/05MMABk2BwAsD9f+M+wtAL5EgQFqk+EAHF0t/uyND/8RPaEA3HPAAOyRGP5vqKkA4Do//3+kvABS6ksB4J6GANFEbgHZptkARuGmAbvBj/8QB1j/Cs2MAHXAnAEROCYAG3xsAavXN/9f/dQAm4eo//aymf6aREoA6D1g/mmEOwAhTMcBvbCC/wloGf5Lxmb/6QFwAGzcFP9y5kYAjMKF/zmepP6SBlD/qcRhAVW3ggBGnt4BO+3q/2AZGv/or2H/C3n4/lgjwgDbtPz+SgjjAMPjSQG4bqH/MemkAYA1LwBSDnn/wb46ADCudf+EFyAAKAqGARYzGf/wC7D/bjmSAHWP7wGdZXb/NlRMAM24Ev8vBEj/TnBV/8EyQgFdEDT/CGmGAAxtSP86nPsAkCPMACygdf4ya8IAAUSl/29uogCeUyj+TNbqADrYzf+rYJP/KONyAbDj8QBG+bcBiFSL/zx69/6PCXX/sa6J/kn3jwDsuX7/Phn3/y1AOP+h9AYAIjk4AWnKUwCAk9AABmcK/0qKQf9hUGT/1q4h/zKGSv9ul4L+b1SsAFTHS/74O3D/CNiyAQm3XwDuGwj+qs3cAMPlhwBiTO3/4lsaAVLbJ//hvscB2ch5/1GzCP+MQc4Ass9X/vr8Lv9oWW4B/b2e/5DWnv+g9Tb/NbdcARXIwv+SIXEB0QH/AOtqK/+nNOgAneXdADMeGQD63RsBQZNX/097xABBxN//TCwRAVXxRADKt/n/QdTU/wkhmgFHO1AAr8I7/41ICQBkoPQA5tA4ADsZS/5QwsIAEgPI/qCfcwCEj/cBb105/zrtCwGG3of/eqNsAXsrvv/7vc7+ULZI/9D24AERPAkAoc8mAI1tWwDYD9P/iE5uAGKjaP8VUHn/rbK3AX+PBABoPFL+1hAN/2DuIQGelOb/f4E+/zP/0v8+jez+nTfg/3In9ADAvPr/5Ew1AGJUUf+tyz3+kzI3/8zrvwA0xfQAWCvT/hu/dwC855oAQlGhAFzBoAH643gAezfiALgRSACFqAr+Foec/ykZZ/8wyjoAupVR/7yG7wDrtb3+2Yu8/0owUgAu2uUAvf37ADLlDP/Tjb8BgPQZ/6nnev5WL73/hLcX/yWylv8zif0AyE4fABZpMgCCPAAAhKNb/hfnuwDAT+8AnWak/8BSFAEYtWf/8AnqAAF7pP+F6QD/yvLyADy69QDxEMf/4HSe/r99W//gVs8AeSXn/+MJxv8Pme//eejZ/ktwUgBfDDn+M9Zp/5TcYQHHYiQAnNEM/grUNADZtDf+1Kro/9gUVP+d+ocAnWN//gHOKQCVJEYBNsTJ/1d0AP7rq5YAG6PqAMqHtADQXwD+e5xdALc+SwCJ67YAzOH//9aL0v8Ccwj/HQxvADScAQD9Ffv/JaUf/gyC0wBqEjX+KmOaAA7ZPf7YC1z/yMVw/pMmxwAk/Hj+a6lNAAF7n//PS2YAo6/EACwB8AB4urD+DWJM/+188f/okrz/yGDgAMwfKQDQyA0AFeFg/6+cxAD30H4APrj0/gKrUQBVc54ANkAt/xOKcgCHR80A4y+TAdrnQgD90RwA9A+t/wYPdv4QltD/uRYy/1Zwz/9LcdcBP5Ir/wThE/7jFz7/Dv/W/i0Izf9XxZf+0lLX//X49/+A+EYA4fdXAFp4RgDV9VwADYXiAC+1BQFco2n/Bh6F/uiyPf/mlRj/EjGeAORkPf508/v/TUtcAVHbk/9Mo/7+jdX2AOglmP5hLGQAySUyAdT0OQCuq7f/+UpwAKacHgDe3WH/811J/vtlZP/Y2V3//oq7/46+NP87y7H/yF40AHNynv+lmGgBfmPi/3ad9AFryBAAwVrlAHkGWACcIF3+ffHT/w7tnf+lmhX/uOAW//oYmP9xTR8A96sX/+2xzP80iZH/wrZyAODqlQAKb2cByYEEAO6OTgA0Bij/btWl/jzP/QA+10UAYGEA/zEtygB4eRb/64swAcYtIv+2MhsBg9Jb/y42gACve2n/xo1O/kP07//1Nmf+Tiby/wJc+f77rlf/iz+QABhsG/8iZhIBIhaYAELldv4yj2MAkKmVAXYemACyCHkBCJ8SAFpl5v+BHXcARCQLAei3NwAX/2D/oSnB/z+L3gAPs/MA/2QP/1I1hwCJOZUBY/Cq/xbm5P4xtFL/PVIrAG712QDHfT0ALv00AI3F2wDTn8EAN3lp/rcUgQCpd6r/y7KL/4cotv+sDcr/QbKUAAjPKwB6NX8BSqEwAOPWgP5WC/P/ZFYHAfVEhv89KxUBmFRe/748+v7vduj/1oglAXFMa/9daGQBkM4X/26WmgHkZ7kA2jEy/odNi/+5AU4AAKGU/2Ed6f/PlJX/oKgAAFuAq/8GHBP+C2/3ACe7lv+K6JUAdT5E/z/YvP/r6iD+HTmg/xkM8QGpPL8AIION/+2fe/9exV7+dP4D/1yzYf55YVz/qnAOABWV+AD44wMAUGBtAEvASgEMWuL/oWpEAdByf/9yKv/+ShpK//ezlv55jDwAk0bI/9Yoof+hvMn/jUGH//Jz/AA+L8oAtJX//oI37QClEbr/CqnCAJxt2v9wjHv/aIDf/rGObP95Jdv/gE0S/29sFwFbwEsArvUW/wTsPv8rQJkB463+AO16hAF/Wbr/jlKA/vxUrgBas7EB89ZX/2c8ov/Qgg7/C4KLAM6B2/9e2Z3/7+bm/3Rzn/6ka18AM9oCAdh9xv+MyoD+C19E/zcJXf6umQb/zKxgAEWgbgDVJjH+G1DVAHZ9cgBGRkP/D45J/4N6uf/zFDL+gu0oANKfjAHFl0H/VJlCAMN+WgAQ7uwBdrtm/wMYhf+7ReYAOMVcAdVFXv9QiuUBzgfmAN5v5gFb6Xf/CVkHAQJiAQCUSoX/M/a0/+SxcAE6vWz/wsvt/hXRwwCTCiMBVp3iAB+ji/44B0v/Plp0ALU8qQCKotT+UacfAM1acP8hcOMAU5d1AbHgSf+ukNn/5sxP/xZN6P9yTuoA4Dl+/gkxjQDyk6UBaLaM/6eEDAF7RH8A4VcnAftsCADGwY8BeYfP/6wWRgAyRHT/Za8o//hp6QCmywcAbsXaANf+Gv6o4v0AH49gAAtnKQC3gcv+ZPdK/9V+hADSkywAx+obAZQvtQCbW54BNmmv/wJOkf5mml8AgM9//jR87P+CVEcA3fPTAJiqzwDeascAt1Re/lzIOP+KtnMBjmCSAIWI5ABhEpYAN/tCAIxmBADKZ5cAHhP4/zO4zwDKxlkAN8Xh/qlf+f9CQUT/vOp+AKbfZAFw7/QAkBfCADontgD0LBj+r0Sz/5h2mgGwooIA2XLM/q1+Tv8h3h7/JAJb/wKP8wAJ69cAA6uXARjX9f+oL6T+8ZLPAEWBtABE83EAkDVI/vstDgAXbqgARERP/25GX/6uW5D/Ic5f/4kpB/8Tu5n+I/9w/wmRuf4ynSUAC3AxAWYIvv/q86kBPFUXAEonvQB0Me8ArdXSAC6hbP+fliUAxHi5/yJiBv+Zwz7/YeZH/2Y9TAAa1Oz/pGEQAMY7kgCjF8QAOBg9ALViwQD7k+X/Yr0Y/y42zv/qUvYAt2cmAW0+zAAK8OAAkhZ1/46aeABF1CMA0GN2AXn/A/9IBsIAdRHF/30PFwCaT5kA1l7F/7k3k/8+/k7+f1KZAG5mP/9sUqH/abvUAVCKJwA8/13/SAy6ANL7HwG+p5D/5CwT/oBD6ADW+Wv+iJFW/4QusAC9u+P/0BaMANnTdAAyUbr+i/ofAB5AxgGHm2QAoM4X/rui0/8QvD8A/tAxAFVUvwDxwPL/mX6RAeqiov/mYdgBQId+AL6U3wE0ACv/HCe9AUCI7gCvxLkAYuLV/3+f9AHirzwAoOmOAbTzz/9FmFkBH2UVAJAZpP6Lv9EAWxl5ACCTBQAnunv/P3Pm/12nxv+P1dz/s5wT/xlCegDWoNn/Ai0+/2pPkv4ziWP/V2Tn/6+R6P9luAH/rgl9AFIloQEkco3/MN6O//W6mgAFrt3+P3Kb/4c3oAFQH4cAfvqzAezaLQAUHJEBEJNJAPm9hAERvcD/347G/0gUD//6Ne3+DwsSABvTcf7Vazj/rpOS/2B+MAAXwW0BJaJeAMed+f4YgLv/zTGy/l2kKv8rd+sBWLft/9rSAf9r/ioA5gpj/6IA4gDb7VsAgbLLANAyX/7O0F//979Z/m7qT/+lPfMAFHpw//b2uf5nBHsA6WPmAdtb/P/H3hb/s/Xp/9Px6gBv+sD/VVSIAGU6Mv+DrZz+dy0z/3bpEP7yWtYAXp/bAQMD6v9iTFz+UDbmAAXk5/41GN//cTh2ARSEAf+r0uwAOPGe/7pzE/8I5a4AMCwAAXJypv8GSeL/zVn0AInjSwH4rTgASnj2/ncDC/9ReMb/iHpi/5Lx3QFtwk7/3/FGAdbIqf9hvi//L2eu/2NcSP526bT/wSPp/hrlIP/e/MYAzCtH/8dUrACGZr4Ab+5h/uYo5gDjzUD+yAzhAKYZ3gBxRTP/j58YAKe4SgAd4HT+ntDpAMF0fv/UC4X/FjqMAcwkM//oHisA60a1/0A4kv6pElT/4gEN/8gysP801fX+qNFhAL9HNwAiTpwA6JA6AblKvQC6jpX+QEV//6HLk/+wl78AiOfL/qO2iQChfvv+6SBCAETPQgAeHCUAXXJgAf5c9/8sq0UAyncL/7x2MgH/U4j/R1IaAEbjAgAg63kBtSmaAEeG5f7K/yQAKZgFAJo/Sf8itnwAed2W/xrM1QEprFcAWp2S/22CFABHa8j/82a9AAHDkf4uWHUACM7jAL9u/f9tgBT+hlUz/4mxcAHYIhb/gxDQ/3mVqgByExcBplAf/3HwegDos/oARG60/tKqdwDfbKT/z0/p/xvl4v7RYlH/T0QHAIO5ZACqHaL/EaJr/zkVCwFkyLX/f0GmAaWGzABop6gAAaRPAJKHOwFGMoD/ZncN/uMGhwCijrP/oGTeABvg2wGeXcP/6o2JABAYff/uzi//YRFi/3RuDP9gc00AW+Po//j+T/9c5Qb+WMaLAM5LgQD6Tc7/jfR7AYpF3AAglwYBg6cW/+1Ep/7HvZYAo6uK/zO8Bv9fHYn+lOKzALVr0P+GH1L/l2Ut/4HK4QDgSJMAMIqX/8NAzv7t2p4Aah2J/v296f9nDxH/wmH/ALItqf7G4ZsAJzB1/4dqcwBhJrUAli9B/1OC5f72JoEAXO+a/ltjfwChbyH/7tny/4O5w//Vv57/KZbaAISpgwBZVPwBq0aA/6P4y/4BMrT/fExVAftvUABjQu//mu22/91+hf5KzGP/QZN3/2M4p/9P+JX/dJvk/+0rDv5FiQv/FvrxAVt6j//N+fMA1Bo8/zC2sAEwF7//y3mY/i1K1f8+WhL+9aPm/7lqdP9TI58ADCEC/1AiPgAQV67/rWVVAMokUf6gRcz/QOG7ADrOXgBWkC8A5Vb1AD+RvgElBScAbfsaAImT6gCieZH/kHTO/8Xouf+3voz/SQz+/4sU8v+qWu//YUK7//W1h/7eiDQA9QUz/ssvTgCYZdgASRd9AP5gIQHr0kn/K9FYAQeBbQB6aOT+qvLLAPLMh//KHOn/QQZ/AJ+QRwBkjF8ATpYNAPtrdgG2On3/ASZs/4290f8Im30BcaNb/3lPvv+G72z/TC/4AKPk7wARbwoAWJVL/9fr7wCnnxj/L5ds/2vRvADp52P+HMqU/64jiv9uGET/AkW1AGtmUgBm7QcAXCTt/92iUwE3ygb/h+qH/xj63gBBXqj+9fjS/6dsyf7/oW8AzQj+AIgNdABksIT/K9d+/7GFgv+eT5QAQ+AlAQzOFf8+Im4B7Wiv/1CEb/+OrkgAVOW0/mmzjABA+A//6YoQAPVDe/7aedT/P1/aAdWFif+PtlL/MBwLAPRyjQHRr0z/nbWW/7rlA/+knW8B572LAHfKvv/aakD/ROs//mAarP+7LwsB1xL7/1FUWQBEOoAAXnEFAVyB0P9hD1P+CRy8AO8JpAA8zZgAwKNi/7gSPADZtosAbTt4/wTA+wCp0vD/Jaxc/pTT9f+zQTQA/Q1zALmuzgFyvJX/7VqtACvHwP9YbHEANCNMAEIZlP/dBAf/l/Fy/77R6ABiMscAl5bV/xJKJAE1KAcAE4dB/xqsRQCu7VUAY18pAAM4EAAnoLH/yGra/rlEVP9buj3+Q4+N/w30pv9jcsYAx26j/8ESugB87/YBbkQWAALrLgHUPGsAaSppAQ7mmAAHBYMAjWia/9UDBgCD5KL/s2QcAed7Vf/ODt8B/WDmACaYlQFiiXoA1s0D/+KYs/8GhYkAnkWM/3Gimv+086z/G71z/48u3P/VhuH/fh1FALwriQHyRgkAWsz//+eqkwAXOBP+OH2d/zCz2v9Ptv3/JtS/ASnrfABglxwAh5S+AM35J/40YIj/1CyI/0PRg//8ghf/24AU/8aBdgBsZQsAsgWSAT4HZP+17F7+HBqkAEwWcP94Zk8AysDlAciw1wApQPT/zrhOAKctPwGgIwD/OwyO/8wJkP/bXuUBehtwAL1pbf9A0Er/+383AQLixgAsTNEAl5hN/9IXLgHJq0X/LNPnAL4l4P/1xD7/qbXe/yLTEQB38cX/5SOYARVFKP+y4qEAlLPBANvC/gEozjP/51z6AUOZqgAVlPEAqkVS/3kS5/9ccgMAuD7mAOHJV/+SYKL/tfLcAK273QHiPqr/OH7ZAXUN4/+zLO8AnY2b/5DdUwDr0dAAKhGlAftRhQB89cn+YdMY/1PWpgCaJAn/+C9/AFrbjP+h2Sb+1JM//0JUlAHPAwEA5oZZAX9Oev/gmwH/UohKALKc0P+6GTH/3gPSAeWWvv9VojT/KVSN/0l7VP5dEZYAdxMcASAW1/8cF8z/jvE0/+Q0fQAdTM8A16f6/q+k5gA3z2kBbbv1/6Es3AEpZYD/pxBeAF3Wa/92SAD+UD3q/3mvfQCLqfsAYSeT/vrEMf+ls27+30a7/xaOfQGas4r/drAqAQqumQCcXGYAqA2h/48QIAD6xbT/y6MsAVcgJAChmRT/e/wPABnjUAA8WI4AERbJAZrNTf8nPy8ACHqNAIAXtv7MJxP/BHAd/xckjP/S6nT+NTI//3mraP+g214AV1IO/ucqBQCli3/+Vk4mAII8Qv7LHi3/LsR6Afk1ov+Ij2f+19JyAOcHoP6pmCr/by32AI6Dh/+DR8z/JOILAAAc8v/hitX/9y7Y/vUDtwBs/EoBzhow/8029v/TxiT/eSMyADTYyv8mi4H+8kmUAEPnjf8qL8wATnQZAQThv/8Gk+QAOlixAHql5f/8U8n/4KdgAbG4nv/yabMB+MbwAIVCywH+JC8ALRhz/3c+/gDE4br+e42sABpVKf/ib7cA1eeXAAQ7B//uipQAQpMh/x/2jf/RjXT/aHAfAFihrABT1+b+L2+XAC0mNAGELcwAioBt/ul1hv/zvq3+8ezwAFJ/7P4o36H/brbh/3uu7wCH8pEBM9GaAJYDc/7ZpPz/N5xFAVRe///oSS0BFBPU/2DFO/5g+yEAJsdJAUCs9/91dDj/5BESAD6KZwH25aT/9HbJ/lYgn/9tIokBVdO6AArBwf56wrEAeu5m/6LaqwBs2aEBnqoiALAvmwG15Av/CJwAABBLXQDOYv8BOpojAAzzuP5DdUL/5uV7AMkqbgCG5LL+umx2/zoTmv9SqT7/co9zAe/EMv+tMMH/kwJU/5aGk/5f6EkAbeM0/r+JCgAozB7+TDRh/6TrfgD+fLwASrYVAXkdI//xHgf+VdrW/wdUlv5RG3X/oJ+Y/kIY3f/jCjwBjYdmANC9lgF1s1wAhBaI/3jHHAAVgU/+tglBANqjqQD2k8b/ayaQAU6vzf/WBfr+L1gd/6QvzP8rNwb/g4bP/nRk1gBgjEsBatyQAMMgHAGsUQX/x7M0/yVUywCqcK4ACwRbAEX0GwF1g1wAIZiv/4yZa//7hyv+V4oE/8bqk/55mFT/zWWbAZ0JGQBIahH+bJkA/73lugDBCLD/rpXRAO6CHQDp1n4BPeJmADmjBAHGbzP/LU9OAXPSCv/aCRn/novG/9NSu/5QhVMAnYHmAfOFhv8oiBAATWtP/7dVXAGxzMoAo0eT/5hFvgCsM7wB+tKs/9PycQFZWRr/QEJv/nSYKgChJxv/NlD+AGrRcwFnfGEA3eZi/x/nBgCywHj+D9nL/3yeTwBwkfcAXPowAaO1wf8lL47+kL2l/y6S8AAGS4AAKZ3I/ld51QABcewABS36AJAMUgAfbOcA4e93/6cHvf+75IT/br0iAF4szAGiNMUATrzx/jkUjQD0ki8BzmQzAH1rlP4bw00AmP1aAQePkP8zJR8AIncm/wfFdgCZvNMAlxR0/vVBNP+0/W4BL7HRAKFjEf923soAfbP8AXs2fv+ROb8AN7p5AArzigDN0+X/fZzx/pScuf/jE7z/fCkg/x8izv4ROVMAzBYl/ypgYgB3ZrgBA74cAG5S2v/IzMD/yZF2AHXMkgCEIGIBwMJ5AGqh+AHtWHwAF9QaAM2rWv/4MNgBjSXm/3zLAP6eqB7/1vgVAHC7B/9Lhe//SuPz//qTRgDWeKIApwmz/xaeEgDaTdEBYW1R//Qhs/85NDn/QazS//lH0f+Oqe4Anr2Z/67+Z/5iIQ4AjUzm/3GLNP8POtQAqNfJ//jM1wHfRKD/OZq3/i/neQBqpokAUYiKAKUrMwDniz0AOV87/nZiGf+XP+wBXr76/6m5cgEF+jr/S2lhAdffhgBxY6MBgD5wAGNqkwCjwwoAIc22ANYOrv+BJuf/NbbfAGIqn//3DSgAvNKxAQYVAP//PZT+iS2B/1kadP5+JnIA+zLy/nmGgP/M+af+pevXAMqx8wCFjT4A8IK+AW6v/wAAFJIBJdJ5/wcnggCO+lT/jcjPAAlfaP8L9K4Ahuh+AKcBe/4QwZX/6OnvAdVGcP/8dKD+8t7c/81V4wAHuToAdvc/AXRNsf8+9cj+PxIl/2s16P4y3dMAotsH/gJeKwC2Prb+oE7I/4eMqgDruOQArzWK/lA6Tf+YyQIBP8QiAAUeuACrsJoAeTvOACZjJwCsUE3+AIaXALoh8f5e/d//LHL8AGx+Of/JKA3/J+Ub/yfvFwGXeTP/mZb4AArqrv929gT+yPUmAEWh8gEQspYAcTiCAKsfaQAaWGz/MSpqAPupQgBFXZUAFDn+AKQZbwBavFr/zATFACjVMgHUYIT/WIq0/uSSfP+49vcAQXVW//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQBBjIcCCwEBAEGwhwILAQEAQdCHAgugAeDrenw7QbiuFlbj+vGfxGraCY3rnDKx/YZiBRZfSbgAX5yVvKNQjCSx0LFVnIPvWwREXMRYHI6G2CJO3dCfEVfs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////38AQZCJAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB0I8CCyFTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAQaCQAgs1cI0BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=\")||(K=_,_=i.locateFile?i.locateFile(K,r):r+K);var x={34904:()=>i.getRandomValue(),34940:()=>{if(void 0===i.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),i.getRandomValue=g}catch(A){try{var C=require(\"crypto\"),B=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};B(),i.getRandomValue=B}catch(A){throw\"No secure random number generator found\"}}}};function j(A){for(;A.length>0;)A.shift()(i)}var X=[];function q(A){var I=c.buffer;try{return c.grow(A-I.byteLength+65535>>>16),H(),1}catch(A){}}var z=\"function\"==typeof atob?atob:function(A){var I,g,C,B,Q,i,E=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",o=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=E.indexOf(A.charAt(a++))<<2|(B=E.indexOf(A.charAt(a++)))>>4,g=(15&B)<<4|(Q=E.indexOf(A.charAt(a++)))>>2,C=(3&Q)<<6|(i=E.indexOf(A.charAt(a++))),o+=String.fromCharCode(I),64!==Q&&(o+=String.fromCharCode(g)),64!==i&&(o+=String.fromCharCode(C))}while(a>=2;g=w[A++];)I+=105!=g&I,X.push(105==g?s[I]:k[I++>>1]),++I;return X}(I,g);return x[A].apply(null,C)}(A,I,g)},d:function(A,I,g){w.copyWithin(A,I,I+g)},e:function(A){var I,g=w.length,C=2147483648;if((A>>>=0)>C)return!1;for(var B=1;B<=4;B*=2){var Q=g*(1+.2/B);if(Q=Math.min(Q,A+100663296),q(Math.min(C,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1}};function W(){function A(){O||(O=!0,i.calledRun=!0,F||(j(G),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for(\"function\"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)A=i.postRun.shift(),U.unshift(A);var A;j(U)}()))}J>0||(function(){if(i.preRun)for(\"function\"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)A=i.preRun.shift(),M.unshift(A);var A;j(M)}(),J>0||(i.setStatus?(i.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){i.setStatus(\"\")}),1),A()}),1)):A()))}if(function(){var A={a:T};function I(A,I){var g=A.exports;i.asm=g,c=i.asm.f,H(),i.asm.ac,function(A){if(J--,i.monitorRunDependencies&&i.monitorRunDependencies(J),0==J&&(null!==N&&(clearInterval(N),N=null),Y)){var I=Y;Y=null,I()}}()}function g(A){I(A.instance)}function C(I){return function(){if(!e&&(o||a)){if(\"function\"==typeof fetch&&!L(_))return fetch(_,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+_+\"'\";return A.arrayBuffer()})).catch((function(){return R(_)}));if(B)return new Promise((function(A,I){B(_,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return R(_)}))}().then((function(I){return WebAssembly.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){y(\"failed to asynchronously prepare wasm: \"+A),b(A)}))}if(J++,i.monitorRunDependencies&&i.monitorRunDependencies(J),i.instantiateWasm)try{return i.instantiateWasm(A,I)}catch(A){return y(\"Module.instantiateWasm callback failed with error: \"+A),!1}e||\"function\"!=typeof WebAssembly.instantiateStreaming||d(_)||L(_)||n||\"function\"!=typeof fetch?C(g):fetch(_,{credentials:\"same-origin\"}).then((function(I){return WebAssembly.instantiateStreaming(I,A).then(g,(function(A){return y(\"wasm streaming compile failed: \"+A),y(\"falling back to ArrayBuffer instantiation\"),C(g)}))}))}(),i._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_encrypt_detached=i.asm.g).apply(null,arguments)},i._crypto_aead_chacha20poly1305_encrypt=function(){return(i._crypto_aead_chacha20poly1305_encrypt=i.asm.h).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt_detached=i.asm.i).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_encrypt=i.asm.j).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_decrypt_detached=i.asm.k).apply(null,arguments)},i._crypto_aead_chacha20poly1305_decrypt=function(){return(i._crypto_aead_chacha20poly1305_decrypt=i.asm.l).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt_detached=i.asm.m).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_chacha20poly1305_ietf_decrypt=i.asm.n).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_keybytes=i.asm.o).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_npubbytes=i.asm.p).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_nsecbytes=i.asm.q).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_chacha20poly1305_ietf_abytes=i.asm.r).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_ietf_messagebytes_max=i.asm.s).apply(null,arguments)},i._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_chacha20poly1305_ietf_keygen=i.asm.t).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keybytes=function(){return(i._crypto_aead_chacha20poly1305_keybytes=i.asm.u).apply(null,arguments)},i._crypto_aead_chacha20poly1305_npubbytes=function(){return(i._crypto_aead_chacha20poly1305_npubbytes=i.asm.v).apply(null,arguments)},i._crypto_aead_chacha20poly1305_nsecbytes=function(){return(i._crypto_aead_chacha20poly1305_nsecbytes=i.asm.w).apply(null,arguments)},i._crypto_aead_chacha20poly1305_abytes=function(){return(i._crypto_aead_chacha20poly1305_abytes=i.asm.x).apply(null,arguments)},i._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(i._crypto_aead_chacha20poly1305_messagebytes_max=i.asm.y).apply(null,arguments)},i._crypto_aead_chacha20poly1305_keygen=function(){return(i._crypto_aead_chacha20poly1305_keygen=i.asm.z).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=i.asm.A).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_encrypt=i.asm.B).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=i.asm.C).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(i._crypto_aead_xchacha20poly1305_ietf_decrypt=i.asm.D).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keybytes=i.asm.E).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_npubbytes=i.asm.F).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_nsecbytes=i.asm.G).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(i._crypto_aead_xchacha20poly1305_ietf_abytes=i.asm.H).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(i._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=i.asm.I).apply(null,arguments)},i._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(i._crypto_aead_xchacha20poly1305_ietf_keygen=i.asm.J).apply(null,arguments)},i._crypto_auth_bytes=function(){return(i._crypto_auth_bytes=i.asm.K).apply(null,arguments)},i._crypto_auth_keybytes=function(){return(i._crypto_auth_keybytes=i.asm.L).apply(null,arguments)},i._crypto_auth=function(){return(i._crypto_auth=i.asm.M).apply(null,arguments)},i._crypto_auth_verify=function(){return(i._crypto_auth_verify=i.asm.N).apply(null,arguments)},i._crypto_auth_keygen=function(){return(i._crypto_auth_keygen=i.asm.O).apply(null,arguments)},i._crypto_box_seedbytes=function(){return(i._crypto_box_seedbytes=i.asm.P).apply(null,arguments)},i._crypto_box_publickeybytes=function(){return(i._crypto_box_publickeybytes=i.asm.Q).apply(null,arguments)},i._crypto_box_secretkeybytes=function(){return(i._crypto_box_secretkeybytes=i.asm.R).apply(null,arguments)},i._crypto_box_beforenmbytes=function(){return(i._crypto_box_beforenmbytes=i.asm.S).apply(null,arguments)},i._crypto_box_noncebytes=function(){return(i._crypto_box_noncebytes=i.asm.T).apply(null,arguments)},i._crypto_box_macbytes=function(){return(i._crypto_box_macbytes=i.asm.U).apply(null,arguments)},i._crypto_box_messagebytes_max=function(){return(i._crypto_box_messagebytes_max=i.asm.V).apply(null,arguments)},i._crypto_box_seed_keypair=function(){return(i._crypto_box_seed_keypair=i.asm.W).apply(null,arguments)},i._crypto_box_keypair=function(){return(i._crypto_box_keypair=i.asm.X).apply(null,arguments)},i._crypto_box_beforenm=function(){return(i._crypto_box_beforenm=i.asm.Y).apply(null,arguments)},i._crypto_box_detached_afternm=function(){return(i._crypto_box_detached_afternm=i.asm.Z).apply(null,arguments)},i._crypto_box_detached=function(){return(i._crypto_box_detached=i.asm._).apply(null,arguments)},i._crypto_box_easy_afternm=function(){return(i._crypto_box_easy_afternm=i.asm.$).apply(null,arguments)},i._crypto_box_easy=function(){return(i._crypto_box_easy=i.asm.aa).apply(null,arguments)},i._crypto_box_open_detached_afternm=function(){return(i._crypto_box_open_detached_afternm=i.asm.ba).apply(null,arguments)},i._crypto_box_open_detached=function(){return(i._crypto_box_open_detached=i.asm.ca).apply(null,arguments)},i._crypto_box_open_easy_afternm=function(){return(i._crypto_box_open_easy_afternm=i.asm.da).apply(null,arguments)},i._crypto_box_open_easy=function(){return(i._crypto_box_open_easy=i.asm.ea).apply(null,arguments)},i._crypto_box_seal=function(){return(i._crypto_box_seal=i.asm.fa).apply(null,arguments)},i._crypto_box_seal_open=function(){return(i._crypto_box_seal_open=i.asm.ga).apply(null,arguments)},i._crypto_box_sealbytes=function(){return(i._crypto_box_sealbytes=i.asm.ha).apply(null,arguments)},i._crypto_generichash_bytes_min=function(){return(i._crypto_generichash_bytes_min=i.asm.ia).apply(null,arguments)},i._crypto_generichash_bytes_max=function(){return(i._crypto_generichash_bytes_max=i.asm.ja).apply(null,arguments)},i._crypto_generichash_bytes=function(){return(i._crypto_generichash_bytes=i.asm.ka).apply(null,arguments)},i._crypto_generichash_keybytes_min=function(){return(i._crypto_generichash_keybytes_min=i.asm.la).apply(null,arguments)},i._crypto_generichash_keybytes_max=function(){return(i._crypto_generichash_keybytes_max=i.asm.ma).apply(null,arguments)},i._crypto_generichash_keybytes=function(){return(i._crypto_generichash_keybytes=i.asm.na).apply(null,arguments)},i._crypto_generichash_statebytes=function(){return(i._crypto_generichash_statebytes=i.asm.oa).apply(null,arguments)},i._crypto_generichash=function(){return(i._crypto_generichash=i.asm.pa).apply(null,arguments)},i._crypto_generichash_init=function(){return(i._crypto_generichash_init=i.asm.qa).apply(null,arguments)},i._crypto_generichash_update=function(){return(i._crypto_generichash_update=i.asm.ra).apply(null,arguments)},i._crypto_generichash_final=function(){return(i._crypto_generichash_final=i.asm.sa).apply(null,arguments)},i._crypto_generichash_keygen=function(){return(i._crypto_generichash_keygen=i.asm.ta).apply(null,arguments)},i._crypto_hash_bytes=function(){return(i._crypto_hash_bytes=i.asm.ua).apply(null,arguments)},i._crypto_hash=function(){return(i._crypto_hash=i.asm.va).apply(null,arguments)},i._crypto_kdf_bytes_min=function(){return(i._crypto_kdf_bytes_min=i.asm.wa).apply(null,arguments)},i._crypto_kdf_bytes_max=function(){return(i._crypto_kdf_bytes_max=i.asm.xa).apply(null,arguments)},i._crypto_kdf_contextbytes=function(){return(i._crypto_kdf_contextbytes=i.asm.ya).apply(null,arguments)},i._crypto_kdf_keybytes=function(){return(i._crypto_kdf_keybytes=i.asm.za).apply(null,arguments)},i._crypto_kdf_derive_from_key=function(){return(i._crypto_kdf_derive_from_key=i.asm.Aa).apply(null,arguments)},i._crypto_kdf_keygen=function(){return(i._crypto_kdf_keygen=i.asm.Ba).apply(null,arguments)},i._crypto_kx_seed_keypair=function(){return(i._crypto_kx_seed_keypair=i.asm.Ca).apply(null,arguments)},i._crypto_kx_keypair=function(){return(i._crypto_kx_keypair=i.asm.Da).apply(null,arguments)},i._crypto_kx_client_session_keys=function(){return(i._crypto_kx_client_session_keys=i.asm.Ea).apply(null,arguments)},i._crypto_kx_server_session_keys=function(){return(i._crypto_kx_server_session_keys=i.asm.Fa).apply(null,arguments)},i._crypto_kx_publickeybytes=function(){return(i._crypto_kx_publickeybytes=i.asm.Ga).apply(null,arguments)},i._crypto_kx_secretkeybytes=function(){return(i._crypto_kx_secretkeybytes=i.asm.Ha).apply(null,arguments)},i._crypto_kx_seedbytes=function(){return(i._crypto_kx_seedbytes=i.asm.Ia).apply(null,arguments)},i._crypto_kx_sessionkeybytes=function(){return(i._crypto_kx_sessionkeybytes=i.asm.Ja).apply(null,arguments)},i._crypto_scalarmult_base=function(){return(i._crypto_scalarmult_base=i.asm.Ka).apply(null,arguments)},i._crypto_scalarmult=function(){return(i._crypto_scalarmult=i.asm.La).apply(null,arguments)},i._crypto_scalarmult_bytes=function(){return(i._crypto_scalarmult_bytes=i.asm.Ma).apply(null,arguments)},i._crypto_scalarmult_scalarbytes=function(){return(i._crypto_scalarmult_scalarbytes=i.asm.Na).apply(null,arguments)},i._crypto_secretbox_keybytes=function(){return(i._crypto_secretbox_keybytes=i.asm.Oa).apply(null,arguments)},i._crypto_secretbox_noncebytes=function(){return(i._crypto_secretbox_noncebytes=i.asm.Pa).apply(null,arguments)},i._crypto_secretbox_macbytes=function(){return(i._crypto_secretbox_macbytes=i.asm.Qa).apply(null,arguments)},i._crypto_secretbox_messagebytes_max=function(){return(i._crypto_secretbox_messagebytes_max=i.asm.Ra).apply(null,arguments)},i._crypto_secretbox_keygen=function(){return(i._crypto_secretbox_keygen=i.asm.Sa).apply(null,arguments)},i._crypto_secretbox_detached=function(){return(i._crypto_secretbox_detached=i.asm.Ta).apply(null,arguments)},i._crypto_secretbox_easy=function(){return(i._crypto_secretbox_easy=i.asm.Ua).apply(null,arguments)},i._crypto_secretbox_open_detached=function(){return(i._crypto_secretbox_open_detached=i.asm.Va).apply(null,arguments)},i._crypto_secretbox_open_easy=function(){return(i._crypto_secretbox_open_easy=i.asm.Wa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keygen=function(){return(i._crypto_secretstream_xchacha20poly1305_keygen=i.asm.Xa).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_push=function(){return(i._crypto_secretstream_xchacha20poly1305_init_push=i.asm.Ya).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_init_pull=i.asm.Za).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_rekey=i.asm._a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_push=function(){return(i._crypto_secretstream_xchacha20poly1305_push=i.asm.$a).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_pull=function(){return(i._crypto_secretstream_xchacha20poly1305_pull=i.asm.ab).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(i._crypto_secretstream_xchacha20poly1305_statebytes=i.asm.bb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_abytes=function(){return(i._crypto_secretstream_xchacha20poly1305_abytes=i.asm.cb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(i._crypto_secretstream_xchacha20poly1305_headerbytes=i.asm.db).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(i._crypto_secretstream_xchacha20poly1305_keybytes=i.asm.eb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(i._crypto_secretstream_xchacha20poly1305_messagebytes_max=i.asm.fb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_message=i.asm.gb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_push=i.asm.hb).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_rekey=i.asm.ib).apply(null,arguments)},i._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(i._crypto_secretstream_xchacha20poly1305_tag_final=i.asm.jb).apply(null,arguments)},i._crypto_shorthash_bytes=function(){return(i._crypto_shorthash_bytes=i.asm.kb).apply(null,arguments)},i._crypto_shorthash_keybytes=function(){return(i._crypto_shorthash_keybytes=i.asm.lb).apply(null,arguments)},i._crypto_shorthash=function(){return(i._crypto_shorthash=i.asm.mb).apply(null,arguments)},i._crypto_shorthash_keygen=function(){return(i._crypto_shorthash_keygen=i.asm.nb).apply(null,arguments)},i._crypto_sign_statebytes=function(){return(i._crypto_sign_statebytes=i.asm.ob).apply(null,arguments)},i._crypto_sign_bytes=function(){return(i._crypto_sign_bytes=i.asm.pb).apply(null,arguments)},i._crypto_sign_seedbytes=function(){return(i._crypto_sign_seedbytes=i.asm.qb).apply(null,arguments)},i._crypto_sign_publickeybytes=function(){return(i._crypto_sign_publickeybytes=i.asm.rb).apply(null,arguments)},i._crypto_sign_secretkeybytes=function(){return(i._crypto_sign_secretkeybytes=i.asm.sb).apply(null,arguments)},i._crypto_sign_messagebytes_max=function(){return(i._crypto_sign_messagebytes_max=i.asm.tb).apply(null,arguments)},i._crypto_sign_seed_keypair=function(){return(i._crypto_sign_seed_keypair=i.asm.ub).apply(null,arguments)},i._crypto_sign_keypair=function(){return(i._crypto_sign_keypair=i.asm.vb).apply(null,arguments)},i._crypto_sign=function(){return(i._crypto_sign=i.asm.wb).apply(null,arguments)},i._crypto_sign_open=function(){return(i._crypto_sign_open=i.asm.xb).apply(null,arguments)},i._crypto_sign_detached=function(){return(i._crypto_sign_detached=i.asm.yb).apply(null,arguments)},i._crypto_sign_verify_detached=function(){return(i._crypto_sign_verify_detached=i.asm.zb).apply(null,arguments)},i._crypto_sign_init=function(){return(i._crypto_sign_init=i.asm.Ab).apply(null,arguments)},i._crypto_sign_update=function(){return(i._crypto_sign_update=i.asm.Bb).apply(null,arguments)},i._crypto_sign_final_create=function(){return(i._crypto_sign_final_create=i.asm.Cb).apply(null,arguments)},i._crypto_sign_final_verify=function(){return(i._crypto_sign_final_verify=i.asm.Db).apply(null,arguments)},i._crypto_sign_ed25519_pk_to_curve25519=function(){return(i._crypto_sign_ed25519_pk_to_curve25519=i.asm.Eb).apply(null,arguments)},i._crypto_sign_ed25519_sk_to_curve25519=function(){return(i._crypto_sign_ed25519_sk_to_curve25519=i.asm.Fb).apply(null,arguments)},i._randombytes_random=function(){return(i._randombytes_random=i.asm.Gb).apply(null,arguments)},i._randombytes_stir=function(){return(i._randombytes_stir=i.asm.Hb).apply(null,arguments)},i._randombytes_uniform=function(){return(i._randombytes_uniform=i.asm.Ib).apply(null,arguments)},i._randombytes_buf=function(){return(i._randombytes_buf=i.asm.Jb).apply(null,arguments)},i._randombytes_buf_deterministic=function(){return(i._randombytes_buf_deterministic=i.asm.Kb).apply(null,arguments)},i._randombytes_seedbytes=function(){return(i._randombytes_seedbytes=i.asm.Lb).apply(null,arguments)},i._randombytes_close=function(){return(i._randombytes_close=i.asm.Mb).apply(null,arguments)},i._randombytes=function(){return(i._randombytes=i.asm.Nb).apply(null,arguments)},i._sodium_bin2hex=function(){return(i._sodium_bin2hex=i.asm.Ob).apply(null,arguments)},i._sodium_hex2bin=function(){return(i._sodium_hex2bin=i.asm.Pb).apply(null,arguments)},i._sodium_base64_encoded_len=function(){return(i._sodium_base64_encoded_len=i.asm.Qb).apply(null,arguments)},i._sodium_bin2base64=function(){return(i._sodium_bin2base64=i.asm.Rb).apply(null,arguments)},i._sodium_base642bin=function(){return(i._sodium_base642bin=i.asm.Sb).apply(null,arguments)},i._sodium_init=function(){return(i._sodium_init=i.asm.Tb).apply(null,arguments)},i._sodium_pad=function(){return(i._sodium_pad=i.asm.Ub).apply(null,arguments)},i._sodium_unpad=function(){return(i._sodium_unpad=i.asm.Vb).apply(null,arguments)},i._sodium_version_string=function(){return(i._sodium_version_string=i.asm.Wb).apply(null,arguments)},i._sodium_library_version_major=function(){return(i._sodium_library_version_major=i.asm.Xb).apply(null,arguments)},i._sodium_library_version_minor=function(){return(i._sodium_library_version_minor=i.asm.Yb).apply(null,arguments)},i._sodium_library_minimal=function(){return(i._sodium_library_minimal=i.asm.Zb).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm._b).apply(null,arguments)},i._free=function(){return(i._free=i.asm.$b).apply(null,arguments)},i.UTF8ToString=S,i.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":D[A>>0]=I;break;case\"i16\":h[A>>1]=I;break;case\"i32\":s[A>>2]=I;break;case\"i64\":v=[I>>>0,(P=I,+Math.abs(P)>=1?P>0?(0|Math.min(+Math.floor(P/4294967296),4294967295))>>>0:~~+Math.ceil((P-+(~~P>>>0))/4294967296)>>>0:0)],s[A>>2]=v[0],s[A+4>>2]=v[1];break;case\"float\":u[A>>2]=I;break;case\"double\":k[A>>3]=I;break;case\"*\":p[A>>2]=I;break;default:b(\"invalid type for setValue: \"+g)}},i.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return D[A>>0];case\"i16\":return h[A>>1];case\"i32\":case\"i64\":return s[A>>2];case\"float\":return u[A>>2];case\"double\":return k[A>>3];case\"*\":return p[A>>2];default:b(\"invalid type for getValue: \"+I)}return null},Y=function A(){O||W(),O||(Y=A)},i.preInit)for(\"function\"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();W()})).catch((function(){return C.useBackupModule()})),I}\"function\"==typeof define&&define.amd?define([\"exports\"],I):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this);\n","/*! node-domexception. MIT License. Jimmy Wärting */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","/**\n * web-streams-polyfill v3.2.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// \n const SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n description => `Symbol(${description})`;\n\n /// \n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n const globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n const rethrowAssertionErrorRejection = noop;\n\n const originalPromise = Promise;\n const originalPromiseThen = Promise.prototype.then;\n const originalPromiseResolve = Promise.resolve.bind(originalPromise);\n const originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n const queueMicrotask = (() => {\n const globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n const resolvedPromise = promiseResolvedWith(undefined);\n return (fn) => PerformPromiseThen(resolvedPromise, fn);\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n const QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n class SimpleQueue {\n constructor() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n get length() {\n return this._size;\n }\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n push(element) {\n const oldBack = this._back;\n let newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n }\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n shift() { // must not be called on an empty queue\n const oldFront = this._front;\n let newFront = oldFront;\n const oldCursor = this._cursor;\n let newCursor = oldCursor + 1;\n const elements = oldFront._elements;\n const element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n }\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n forEach(callback) {\n let i = this._cursor;\n let node = this._front;\n let elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n }\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n peek() { // must not be called on an empty queue\n const front = this._front;\n const cursor = this._cursor;\n return front._elements[cursor];\n }\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n const stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise((resolve, reject) => {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n const AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n const ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n const CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n const PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n const NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n const MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(`${context} is not a function.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(`Parameter ${position} is required in '${context}'.`);\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(`${field} is required in '${context}'.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n const lowerBound = 0;\n const upperBound = Number.MAX_SAFE_INTEGER;\n let x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(`${context} is not a finite number`);\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(`${context} is not a ReadableStream.`);\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamDefaultReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: () => resolvePromise({ value: undefined, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);\n }\n\n /// \n /* eslint-disable @typescript-eslint/no-empty-function */\n const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype);\n\n /// \n class ReadableStreamAsyncIteratorImpl {\n constructor(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n next() {\n const nextSteps = () => this._nextSteps();\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n }\n return(value) {\n const returnSteps = () => this._returnSteps(value);\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n }\n _nextSteps() {\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => {\n this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(() => resolvePromise({ value: chunk, done: false }));\n },\n _closeSteps: () => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: reason => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n }\n _returnSteps(value) {\n if (this._isFinished) {\n return Promise.resolve({ value, done: true });\n }\n this._isFinished = true;\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n const result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, () => ({ value, done: true }));\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value, done: true });\n }\n }\n const ReadableStreamAsyncIteratorPrototype = {\n next() {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return(value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);\n }\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n const NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n const length = end - begin;\n const slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n const pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value, size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n const pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n class ReadableStreamBYOBRequest {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get view() {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n }\n respond(bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n respondWithNewView(view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableByteStreamController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get byobRequest() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);\n }\n ReadableByteStreamControllerClose(this);\n }\n enqueue(chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(`chunk's buffer must have non-zero byteLength`);\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n const entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n const autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n let buffer;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n }\n }\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n let done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n const bytesFilled = pullIntoDescriptor.bytesFilled;\n const elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer, byteOffset, byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n const elementSize = pullIntoDescriptor.elementSize;\n const currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n const maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n let totalBytesToCopyRemaining = maxBytesToCopy;\n let ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n const queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n const headOfQueue = queue.peek();\n const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n const pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n const stream = controller._controlledReadableByteStream;\n let elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n const ctor = view.constructor;\n // try {\n const buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n const stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n const remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n const descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n const buffer = chunk.buffer;\n const byteOffset = chunk.byteOffset;\n const byteLength = chunk.byteLength;\n const transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n const viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n const controller = Object.create(ReadableByteStreamController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = () => underlyingByteSource.start(controller);\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = () => underlyingByteSource.pull(controller);\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingByteSource.cancel(reason);\n }\n const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamBYOBReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readIntoRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: chunk => resolvePromise({ value: chunk, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n const { highWaterMark } = strategy;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n const { size } = strategy;\n if (!size) {\n return () => 1;\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n const size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`)\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return chunk => convertUnrestrictedDouble(fn(chunk));\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n const abort = original === null || original === void 0 ? void 0 : original.abort;\n const close = original === null || original === void 0 ? void 0 : original.close;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n const write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),\n type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return () => promiseCall(fn, original, []);\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(`${context} is not a WritableStream.`);\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n const supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n class WritableStream {\n constructor(rawUnderlyingSink = {}, rawStrategy = {}) {\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n const type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get locked() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n }\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n abort(reason = undefined) {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n close() {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n }\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n getWriter() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n const controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n let wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n const promise = newPromise((resolve, reject) => {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));\n }\n const promise = newPromise((resolve, reject) => {\n const closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n const writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n const promise = newPromise((resolve, reject) => {\n const writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n const state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n const controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n const writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n const storedError = stream._storedError;\n stream._writeRequests.forEach(writeRequest => {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, () => {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, (reason) => {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n const state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n const writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n class WritableStreamDefaultWriter {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n const state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n const storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get desiredSize() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get ready() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n abort(reason = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n close() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n releaseLock() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n }\n write(chunk = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n const stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n const stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n const stream = writer._ownerWritableStream;\n const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n const stream = writer._ownerWritableStream;\n const controller = stream._writableStreamController;\n const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n const state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n const promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n const closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n class WritableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get abortReason() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n }\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get signal() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n }\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n error(e = undefined) {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n const state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [AbortSteps](reason) {\n const result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [ErrorSteps]() {\n ResetQueue(this);\n }\n }\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n const startResult = startAlgorithm();\n const startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, () => {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, r => {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(WritableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let writeAlgorithm = () => promiseResolvedWith(undefined);\n let closeAlgorithm = () => promiseResolvedWith(undefined);\n let abortAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSink.start !== undefined) {\n startAlgorithm = () => underlyingSink.start(controller);\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = chunk => underlyingSink.write(chunk, controller);\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = () => underlyingSink.close();\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = reason => underlyingSink.abort(reason);\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n const stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n const stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n const state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n const value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n const sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, () => {\n WritableStreamFinishInFlightClose(stream);\n }, reason => {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n const sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, () => {\n WritableStreamFinishInFlightWrite(stream);\n const state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, reason => {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n const stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise((resolve, reject) => {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise((resolve, reject) => {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// \n const NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// \n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n const ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n const reader = AcquireReadableStreamDefaultReader(source);\n const writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n let shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n let currentWrite = promiseResolvedWith(undefined);\n return newPromise((resolve, reject) => {\n let abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = () => {\n const error = new DOMException$1('Aborted', 'AbortError');\n const actions = [];\n if (!preventAbort) {\n actions.push(() => {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(() => {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise((resolveLoop, rejectLoop) => {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, () => {\n return newPromise((resolveRead, rejectRead) => {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: chunk => {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: () => resolveRead(true),\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, storedError => {\n if (!preventAbort) {\n shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, storedError => {\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, () => {\n if (!preventClose) {\n shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);\n }\n else {\n shutdown(true, destClosed);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n const oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined);\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError));\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n enqueue(chunk = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n const chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n }\n }\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n let chunkSize;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n const stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n const state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSource.start !== undefined) {\n startAlgorithm = () => underlyingSource.start(controller);\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = () => underlyingSource.pull(controller);\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingSource.cancel(reason);\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgain = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgain = false;\n const chunk1 = chunk;\n const chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, (r) => {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n let reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgainForBranch1 = false;\n let readAgainForBranch2 = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, r => {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const chunk1 = chunk;\n let chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n const byobBranch = forBranch2 ? branch2 : branch1;\n const otherBranch = forBranch2 ? branch1 : branch2;\n const readIntoRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n let clonedChunk;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: chunk => {\n reading = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n const original = source;\n const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n const pull = original === null || original === void 0 ? void 0 : original.pull;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),\n type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`)\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertReadableStreamType(type, context) {\n type = `${type}`;\n if (type !== 'bytes') {\n throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n const mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = `${mode}`;\n if (mode !== 'byob') {\n throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n const signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, `${context} has member 'signal' that`);\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(`${context} is not an AbortSignal.`);\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n const readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, `${context} has member 'readable' that`);\n const writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, `${context} has member 'writable' that`);\n return { readable, writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n class ReadableStream {\n constructor(rawUnderlyingSource = {}, rawStrategy = {}) {\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n const highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get locked() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n }\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n cancel(reason = undefined) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n getReader(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n const options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n }\n pipeThrough(rawTransform, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n const transform = convertReadableWritablePair(rawTransform, 'First parameter');\n const options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n }\n pipeTo(destination, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));\n }\n let options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n }\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n tee() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n const branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n }\n values(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n const options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n }\n }\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n const reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n const byteLengthSizeFunction = (chunk) => {\n return chunk.byteLength;\n };\n try {\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n class ByteLengthQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get size() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n }\n }\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n const countSizeFunction = () => {\n return 1;\n };\n try {\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n class CountQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get size() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n }\n }\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n const flush = original === null || original === void 0 ? void 0 : original.flush;\n const readableType = original === null || original === void 0 ? void 0 : original.readableType;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const transform = original === null || original === void 0 ? void 0 : original.transform;\n const writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),\n readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, `${context} has member 'start' that`),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),\n writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n class TransformStream {\n constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n const transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n let startPromise_resolve;\n const startPromise = newPromise(resolve => {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n /**\n * The readable side of the transform stream.\n */\n get readable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n /**\n * The writable side of the transform stream.\n */\n get writable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(resolve => {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n class TransformStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get desiredSize() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n const readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n enqueue(chunk = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n error(reason = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n }\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n terminate() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n }\n }\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n const controller = Object.create(TransformStreamDefaultController.prototype);\n let transformAlgorithm = (chunk) => {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n let flushAlgorithm = () => promiseResolvedWith(undefined);\n if (transformer.transform !== undefined) {\n transformAlgorithm = chunk => transformer.transform(chunk, controller);\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = () => transformer.flush(controller);\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n const transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, r => {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n const error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n const controller = stream._transformStreamController;\n if (stream._backpressure) {\n const backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, () => {\n const writable = stream._writable;\n const state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n const readable = stream._readable;\n const controller = stream._transformStreamController;\n const flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, () => {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, r => {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.es2018.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream/web\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","module.exports = require(\"zlib\");","/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n","import Blob from './index.js'\n\nconst _File = class File extends Blob {\n #lastModified = 0\n #name = ''\n\n /**\n * @param {*[]} fileBits\n * @param {string} fileName\n * @param {{lastModified?: number, type?: string}} options\n */// @ts-ignore\n constructor (fileBits, fileName, options = {}) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`)\n }\n super(fileBits, options)\n\n if (options === null) options = {}\n\n // Simulate WebIDL type casting for NaN value in lastModified option.\n const lastModified = options.lastModified === undefined ? Date.now() : Number(options.lastModified)\n if (!Number.isNaN(lastModified)) {\n this.#lastModified = lastModified\n }\n\n this.#name = String(fileName)\n }\n\n get name () {\n return this.#name\n }\n\n get lastModified () {\n return this.#lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n\n static [Symbol.hasInstance] (object) {\n return !!object && object instanceof Blob &&\n /^(File)$/.test(object[Symbol.toStringTag])\n }\n}\n\n/** @type {typeof globalThis.File} */// @ts-ignore\nexport const File = _File\nexport default File\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","import { statSync, createReadStream, promises as fs } from 'node:fs'\nimport { basename } from 'node:path'\nimport DOMException from 'node-domexception'\n\nimport File from './file.js'\nimport Blob from './index.js'\n\nconst { stat } = fs\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst blobFromSync = (path, type) => fromBlob(statSync(path), path, type)\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst blobFrom = (path, type) => stat(path).then(stat => fromBlob(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst fileFrom = (path, type) => stat(path).then(stat => fromFile(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst fileFromSync = (path, type) => fromFile(statSync(path), path, type)\n\n// @ts-ignore\nconst fromBlob = (stat, path, type = '') => new Blob([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], { type })\n\n// @ts-ignore\nconst fromFile = (stat, path, type = '') => new File([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], basename(path), { type, lastModified: stat.mtimeMs })\n\n/**\n * This is a blob backed up by a file on the disk\n * with minium requirement. Its wrapped around a Blob as a blobPart\n * so you have no direct access to this.\n *\n * @private\n */\nclass BlobDataItem {\n #path\n #start\n\n constructor (options) {\n this.#path = options.path\n this.#start = options.start\n this.size = options.size\n this.lastModified = options.lastModified\n }\n\n /**\n * Slicing arguments is first validated and formatted\n * to not be out of range by Blob.prototype.slice\n */\n slice (start, end) {\n return new BlobDataItem({\n path: this.#path,\n lastModified: this.lastModified,\n size: end - start,\n start: this.#start + start\n })\n }\n\n async * stream () {\n const { mtimeMs } = await stat(this.#path)\n if (mtimeMs > this.lastModified) {\n throw new DOMException('The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.', 'NotReadableError')\n }\n yield * createReadStream(this.#path, {\n start: this.#start,\n end: this.#start + this.size - 1\n })\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n}\n\nexport default blobFromSync\nexport { File, Blob, blobFrom, blobFromSync, fileFrom, fileFromSync }\n","/*! fetch-blob. MIT License. Jimmy Wärting */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n","/*! formdata-polyfill. MIT License. Jimmy Wärting */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.lengthtypeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;cc[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(? {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record | Iterable | Iterable>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence> or record)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response} A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tstatic json(data = undefined, init = {}) {\n\t\tconst body = JSON.stringify(data);\n\n\t\tif (body === undefined) {\n\t\t\tthrow new TypeError('data is not JSON serializable');\n\t\t}\n\n\t\tconst headers = new Headers(init && init.headers);\n\n\t\tif (!headers.has('content-type')) {\n\t\t\theaders.set('content-type', 'application/json');\n\t\t}\n\n\t\treturn new Response(body, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:net\");","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions. We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t// origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t// referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t// policy considerations in the interests of minimizing data leakage. For example, the user\n\t// agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t// string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t// and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t// string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// > and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param {*} [options_] - Fetch options\n * @return {Promise}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t179: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(2353);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;;;;;;;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChDA;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;;ACAA;;ACAA;;ACAA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5IA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACRA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":[".././lib/update-machine-key-github.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@octokit/request/node_modules/node-fetch/lib/index.js",".././node_modules/@octokit/request/node_modules/tr46/index.js",".././node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/is-plain-object/dist/is-plain-object.js",".././node_modules/libsodium-wrappers/dist/modules/libsodium-wrappers.js",".././node_modules/libsodium/dist/modules/libsodium.js",".././node_modules/node-domexception/index.js",".././node_modules/once/once.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/web-streams-polyfill/dist/ponyfill.es2018.js",".././node_modules/wrappy/wrappy.js",".././node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../external node-commonjs \"assert\"","../external node-commonjs \"buffer\"","../external node-commonjs \"crypto\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"node:process\"","../external node-commonjs \"node:stream/web\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"punycode\"","../external node-commonjs \"stream\"","../external node-commonjs \"tls\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"worker_threads\"","../external node-commonjs \"zlib\"",".././node_modules/fetch-blob/streams.cjs",".././node_modules/fetch-blob/file.js","../external node-commonjs \"node:fs\"","../external node-commonjs \"node:path\"",".././node_modules/fetch-blob/from.js",".././node_modules/fetch-blob/index.js",".././node_modules/formdata-polyfill/esm.min.js","../external node-commonjs \"node:http\"","../external node-commonjs \"node:https\"","../external node-commonjs \"node:zlib\"","../external node-commonjs \"node:stream\"","../external node-commonjs \"node:buffer\"",".././node_modules/data-uri-to-buffer/dist/index.js","../external node-commonjs \"node:util\"",".././node_modules/node-fetch/src/errors/base.js",".././node_modules/node-fetch/src/errors/fetch-error.js",".././node_modules/node-fetch/src/utils/is.js",".././node_modules/node-fetch/src/body.js",".././node_modules/node-fetch/src/headers.js",".././node_modules/node-fetch/src/utils/is-redirect.js",".././node_modules/node-fetch/src/response.js","../external node-commonjs \"node:url\"",".././node_modules/node-fetch/src/utils/get-search.js","../external node-commonjs \"node:net\"",".././node_modules/node-fetch/src/utils/referrer.js",".././node_modules/node-fetch/src/request.js",".././node_modules/node-fetch/src/errors/abort-error.js",".././node_modules/node-fetch/src/index.js","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/compat","../webpack/runtime/require chunk loading","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst node_fetch_1 = __importStar(require(\"node-fetch\"));\nconst libsodium_wrappers_1 = __importDefault(require(\"libsodium-wrappers\"));\nconst util_1 = require(\"util\");\nasync function run() {\n const org = github.context.repo.owner;\n const token = core.getInput('token');\n const tsAPIKey = core.getInput('ts-api-key');\n const tailnet = core.getInput('tailnet');\n const secretName = core.getInput('org-secret-name');\n const maximumKeyAgeInDays = core.getInput('maximum-key-age-in-days');\n const secretType = core.getInput('secret-type');\n const maximumKeyAgeInMillis = parseInt(maximumKeyAgeInDays) * 24 * 3600 * 1000;\n const newKeyURL = `https://api.tailscale.com/api/v2/tailnet/${tailnet}/keys`;\n core.info(`Attempting to rotate any key older than ${maximumKeyAgeInDays} days`);\n try {\n const octokit = github.getOctokit(token || '');\n const secretsClient = secretType == 'actions' ? octokit.rest.actions : octokit.rest.dependabot;\n const headers = new node_fetch_1.Headers({\n Authorization: 'Basic ' + Buffer.from(tsAPIKey + ':').toString('base64')\n });\n // Check current key expiry\n const orgSecretResponse = await secretsClient.getOrgSecret({\n org: org,\n secret_name: secretName\n });\n const secretUpdatedAt = orgSecretResponse.data.updated_at;\n const secretLastUpdated = Date.parse(secretUpdatedAt);\n const keyAgeInMillis = Date.now() - secretLastUpdated;\n // If we're not about to expire, log and continue\n if (keyAgeInMillis < maximumKeyAgeInMillis) {\n core.info(`Key is not about to expire (last updated ${secretUpdatedAt})`);\n return;\n }\n core.info(`Key is about to expire (last updated ${secretUpdatedAt}), creating and uploading a new key.`);\n // Actions & Dependabot will always be reusable and ephemeral\n const newKeyCapabilities = {\n capabilities: {\n devices: {\n create: {\n reusable: true,\n ephemeral: true,\n preauthorized: false,\n tags: []\n }\n }\n }\n };\n const response = await (0, node_fetch_1.default)(newKeyURL, {\n headers: headers,\n method: 'POST',\n body: JSON.stringify(newKeyCapabilities)\n });\n if (!response.ok) {\n core.setFailed(`Unable to create a new Tailscale machine key`);\n return;\n }\n const data = (await response.json());\n // Convert the message and key to Uint8Array's (Buffer implements that interface)\n const machineKeyBytes = Buffer.from(data.key);\n core.info(`Generated a new key, ID: ${data.id}`);\n const pubKeyResponse = await secretsClient.getOrgPublicKey({ org });\n const pubKeyID = pubKeyResponse.data.key_id;\n const pubKey = Buffer.from(pubKeyResponse.data.key, 'base64');\n // Encrypt using LibSodium\n // You must await ready before using libsodium\n await libsodium_wrappers_1.default.ready;\n const encryptedBytes = libsodium_wrappers_1.default.crypto_box_seal(machineKeyBytes, pubKey);\n // Base64 the encrypted secret\n const encrypted = Buffer.from(encryptedBytes).toString('base64');\n core.info(`Updating ${org} ${secretType} secret ${secretName} to new key`);\n secretsClient.createOrUpdateOrgSecret({\n org: org,\n secret_name: secretName,\n key_id: pubKeyID,\n encrypted_value: encrypted,\n visibility: 'private'\n });\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","!function(e){function r(e,r){\"use strict\";var t,a=r.ready.then((function(){function a(){if(0!==t._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var r=[\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_final\",\"crypto_auth_hmacsha256_init\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_update\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512_final\",\"crypto_auth_hmacsha512_init\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_update\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_hchacha20\",\"crypto_core_hsalsa20\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],a=[E,x,k,S,T,w,Y,B,A,K,M,I,N,L,U,O,C,R,P,G,X,D,F,V,H,q,j,z,W,J,Q,Z,$,ee,re,te,ae,_e,se,ne,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Ke,Me,Ie,Ne,Le,Ue,Oe,Ce,Re,Pe,Ge,Xe,De,Fe,Ve,He,qe,je,ze,We,Je,Qe,Ze,$e,er,rr,tr,ar,_r,sr,nr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Kr,Mr,Ir,Nr,Lr,Ur,Or,Cr,Rr,Pr,Gr,Xr,Dr,Fr,Vr,Hr,qr,jr,zr,Wr,Jr,Qr,Zr,$r,et,rt,tt,at,_t,st,nt,ct,ot,ht,pt,yt,it,lt,ut,dt,vt,gt,bt,ft,mt],_=0;_=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l>8&-39)<<8|87+(r=e[s]>>>4)+(r-10>>8&-39),_+=String.fromCharCode(255&a)+String.fromCharCode(a>>>8);return _}var c={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function o(e){if(null==e)return c.URLSAFE_NO_PADDING;if(e!==c.ORIGINAL&&e!==c.ORIGINAL_NO_PADDING&&e!==c.URLSAFE&&e!=c.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return e}function h(e,r){r=o(r),e=m(_,e,\"input\");var a,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,h=4*n+(0!==c?0==(2&r)?4:2+(c>>>1):0),p=new l(h+1),y=u(e);return _.push(y),_.push(p.address),0===t._sodium_bin2base64(p.address,p.length,y,e.length,r)&&g(_,\"conversion failed\"),p.length=h,a=s(p.to_Uint8Array()),v(_),a}function p(e,r){var t=r||\"uint8array\";if(!y(t))throw new Error(t+\" output format is not available\");if(e instanceof l){if(\"uint8array\"===t)return e.to_Uint8Array();if(\"text\"===t)return s(e.to_Uint8Array());if(\"hex\"===t)return n(e.to_Uint8Array());if(\"base64\"===t)return h(e.to_Uint8Array(),c.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+t+'\"?')}if(\"object\"==typeof e){for(var a=Object.keys(e),_={},o=0;o>>24>>>8,o,y);var x=p(g,n);return v(c),x}function tr(e){var r=[];i(e);var a=new l(0|t._crypto_kdf_keybytes()),_=a.address;r.push(_),t._crypto_kdf_keygen(_);var s=p(a,e);return v(r),s}function ar(e,r,a,_){var s=[];i(_),e=m(s,e,\"clientPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,\"invalid clientPublicKey length\"),n=u(e),s.push(n),r=m(s,r,\"clientSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,\"invalid clientSecretKey length\"),o=u(r),s.push(o),a=m(s,a,\"serverPublicKey\");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,\"invalid serverPublicKey length\"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_client_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,\"invalid usage\")}function _r(e){var r=[];i(e);var a=new l(0|t._crypto_kx_publickeybytes()),_=a.address;r.push(_);var s=new l(0|t._crypto_kx_secretkeybytes()),n=s.address;if(r.push(n),0==(0|t._crypto_kx_keypair(_,n))){var c={publicKey:p(a,e),privateKey:p(s,e),keyType:\"x25519\"};return v(r),c}g(r,\"internal error\")}function sr(e,r){var a=[];i(r),e=m(a,e,\"seed\");var _,s=0|t._crypto_kx_seedbytes();e.length!==s&&b(a,\"invalid seed length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_kx_publickeybytes()),c=n.address;a.push(c);var o=new l(0|t._crypto_kx_secretkeybytes()),h=o.address;if(a.push(h),0==(0|t._crypto_kx_seed_keypair(c,h,_))){var y={publicKey:p(n,r),privateKey:p(o,r),keyType:\"x25519\"};return v(a),y}g(a,\"internal error\")}function nr(e,r,a,_){var s=[];i(_),e=m(s,e,\"serverPublicKey\");var n,c=0|t._crypto_kx_publickeybytes();e.length!==c&&b(s,\"invalid serverPublicKey length\"),n=u(e),s.push(n),r=m(s,r,\"serverSecretKey\");var o,h=0|t._crypto_kx_secretkeybytes();r.length!==h&&b(s,\"invalid serverSecretKey length\"),o=u(r),s.push(o),a=m(s,a,\"clientPublicKey\");var y,d=0|t._crypto_kx_publickeybytes();a.length!==d&&b(s,\"invalid clientPublicKey length\"),y=u(a),s.push(y);var f=new l(0|t._crypto_kx_sessionkeybytes()),E=f.address;s.push(E);var x=new l(0|t._crypto_kx_sessionkeybytes()),k=x.address;if(s.push(k),0==(0|t._crypto_kx_server_session_keys(E,k,n,o,y))){var S=p({sharedRx:f,sharedTx:x},_);return v(s),S}g(s,\"invalid usage\")}function cr(e,r,a){var _=[];i(a);var s=u(e=m(_,e,\"message\")),n=e.length;_.push(s),r=m(_,r,\"key\");var c,o=0|t._crypto_onetimeauth_keybytes();r.length!==o&&b(_,\"invalid key length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_onetimeauth_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_onetimeauth(y,s,n,0,c))){var d=p(h,a);return v(_),d}g(_,\"invalid usage\")}function or(e,r){var a=[];i(r),f(a,e,\"state_address\");var _=new l(0|t._crypto_onetimeauth_bytes()),s=_.address;if(a.push(s),0==(0|t._crypto_onetimeauth_final(e,s))){var n=(t._free(e),p(_,r));return v(a),n}g(a,\"invalid usage\")}function hr(e,r){var a=[];i(r);var _=null;null!=e&&(_=u(e=m(a,e,\"key\")),e.length,a.push(_));var s=new l(144).address;if(0==(0|t._crypto_onetimeauth_init(s,_))){var n=s;return v(a),n}g(a,\"invalid usage\")}function pr(e){var r=[];i(e);var a=new l(0|t._crypto_onetimeauth_keybytes()),_=a.address;r.push(_),t._crypto_onetimeauth_keygen(_);var s=p(a,e);return v(r),s}function yr(e,r,a){var _=[];i(a),f(_,e,\"state_address\");var s=u(r=m(_,r,\"message_chunk\")),n=r.length;_.push(s),0!=(0|t._crypto_onetimeauth_update(e,s,n))&&g(_,\"invalid usage\"),v(_)}function ir(e,r,a){var _=[];e=m(_,e,\"hash\");var s,n=0|t._crypto_onetimeauth_bytes();e.length!==n&&b(_,\"invalid hash length\"),s=u(e),_.push(s);var c=u(r=m(_,r,\"message\")),o=r.length;_.push(c),a=m(_,a,\"key\");var h,p=0|t._crypto_onetimeauth_keybytes();a.length!==p&&b(_,\"invalid key length\"),h=u(a),_.push(h);var y=0==(0|t._crypto_onetimeauth_verify(s,c,o,0,h));return v(_),y}function lr(e,r,a,_,s,n,c){var o=[];i(c),f(o,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(o,\"keyLength must be an unsigned integer\");var h=u(r=m(o,r,\"password\")),y=r.length;o.push(h),a=m(o,a,\"salt\");var d,E=0|t._crypto_pwhash_saltbytes();a.length!==E&&b(o,\"invalid salt length\"),d=u(a),o.push(d),f(o,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(o,\"opsLimit must be an unsigned integer\"),f(o,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(o,\"memLimit must be an unsigned integer\"),f(o,n,\"algorithm\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&b(o,\"algorithm must be an unsigned integer\");var x=new l(0|e),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash(k,e,0,h,y,0,d,_,0,s,n))){var S=p(x,c);return v(o),S}g(o,\"invalid usage\")}function ur(e,r,a,_,s,n){var c=[];i(n),f(c,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(c,\"keyLength must be an unsigned integer\");var o=u(r=m(c,r,\"password\")),h=r.length;c.push(o),a=m(c,a,\"salt\");var y,d=0|t._crypto_pwhash_scryptsalsa208sha256_saltbytes();a.length!==d&&b(c,\"invalid salt length\"),y=u(a),c.push(y),f(c,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(c,\"opsLimit must be an unsigned integer\"),f(c,s,\"memLimit\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(c,\"memLimit must be an unsigned integer\");var E=new l(0|e),x=E.address;if(c.push(x),0==(0|t._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,y,_,0,s))){var k=p(E,n);return v(c),k}g(c,\"invalid usage\")}function dr(e,r,a,_,s,n,c){var o=[];i(c);var h=u(e=m(o,e,\"password\")),y=e.length;o.push(h);var d=u(r=m(o,r,\"salt\")),E=r.length;o.push(d),f(o,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(o,\"opsLimit must be an unsigned integer\"),f(o,_,\"r\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&b(o,\"r must be an unsigned integer\"),f(o,s,\"p\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&b(o,\"p must be an unsigned integer\"),f(o,n,\"keyLength\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&b(o,\"keyLength must be an unsigned integer\");var x=new l(0|n),k=x.address;if(o.push(k),0==(0|t._crypto_pwhash_scryptsalsa208sha256_ll(h,y,d,E,a,0,_,s,k,n))){var S=p(x,c);return v(o),S}g(o,\"invalid usage\")}function vr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"password\")),c=e.length;s.push(n),f(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(s,\"opsLimit must be an unsigned integer\"),f(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(s,\"memLimit must be an unsigned integer\");var o=new l(0|t._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_scryptsalsa208sha256_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,\"invalid usage\")}function gr(e,r,a){var s=[];i(a),\"string\"!=typeof e&&b(s,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=c&&e.length-1!==c&&b(s,\"invalid hashed_password length\");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,\"password\")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_scryptsalsa208sha256_str_verify(n,o,h,0));return v(s),p}function br(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"password\")),c=e.length;s.push(n),f(s,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(s,\"opsLimit must be an unsigned integer\"),f(s,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(s,\"memLimit must be an unsigned integer\");var o=new l(0|t._crypto_pwhash_strbytes()).address;if(s.push(o),0==(0|t._crypto_pwhash_str(o,n,c,0,r,0,a))){var h=t.UTF8ToString(o);return v(s),h}g(s,\"invalid usage\")}function fr(e,r,a,s){var n=[];i(s),\"string\"!=typeof e&&b(n,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=o&&e.length-1!==o&&b(n,\"invalid hashed_password length\");var c=u(e),o=e.length-1;n.push(c),f(n,r,\"opsLimit\"),(\"number\"!=typeof r||(0|r)!==r||r<0)&&b(n,\"opsLimit must be an unsigned integer\"),f(n,a,\"memLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&b(n,\"memLimit must be an unsigned integer\");var h=0!=(0|t._crypto_pwhash_str_needs_rehash(c,r,0,a));return v(n),h}function mr(e,r,a){var s=[];i(a),\"string\"!=typeof e&&b(s,\"hashed_password must be a string\"),e=_(e+\"\\0\"),null!=c&&e.length-1!==c&&b(s,\"invalid hashed_password length\");var n=u(e),c=e.length-1;s.push(n);var o=u(r=m(s,r,\"password\")),h=r.length;s.push(o);var p=0==(0|t._crypto_pwhash_str_verify(n,o,h,0));return v(s),p}function Er(e,r,a){var _=[];i(a),e=m(_,e,\"privateKey\");var s,n=0|t._crypto_scalarmult_scalarbytes();e.length!==n&&b(_,\"invalid privateKey length\"),s=u(e),_.push(s),r=m(_,r,\"publicKey\");var c,o=0|t._crypto_scalarmult_bytes();r.length!==o&&b(_,\"invalid publicKey length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"weak public key\")}function xr(e,r){var a=[];i(r),e=m(a,e,\"privateKey\");var _,s=0|t._crypto_scalarmult_scalarbytes();e.length!==s&&b(a,\"invalid privateKey length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"unknown error\")}function kr(e,r,a){var _=[];i(a),e=m(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,\"invalid n length\"),s=u(e),_.push(s),r=m(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,\"invalid p length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"invalid point or scalar is 0\")}function Sr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function Tr(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_scalarmult_ed25519_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function wr(e,r,a){var _=[];i(a),e=m(_,e,\"n\");var s,n=0|t._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&b(_,\"invalid n length\"),s=u(e),_.push(s),r=m(_,r,\"p\");var c,o=0|t._crypto_scalarmult_ed25519_bytes();r.length!==o&&b(_,\"invalid p length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ed25519_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ed25519_noclamp(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"invalid point or scalar is 0\")}function Yr(e,r,a){var _=[];i(a),e=m(_,e,\"scalar\");var s,n=0|t._crypto_scalarmult_ristretto255_scalarbytes();e.length!==n&&b(_,\"invalid scalar length\"),s=u(e),_.push(s),r=m(_,r,\"element\");var c,o=0|t._crypto_scalarmult_ristretto255_bytes();r.length!==o&&b(_,\"invalid element length\"),c=u(r),_.push(c);var h=new l(0|t._crypto_scalarmult_ristretto255_bytes()),y=h.address;if(_.push(y),0==(0|t._crypto_scalarmult_ristretto255(y,s,c))){var d=p(h,a);return v(_),d}g(_,\"result is identity element\")}function Br(e,r){var a=[];i(r),e=m(a,e,\"scalar\");var _,s=0|t._crypto_core_ristretto255_scalarbytes();e.length!==s&&b(a,\"invalid scalar length\"),_=u(e),a.push(_);var n=new l(0|t._crypto_core_ristretto255_bytes()),c=n.address;if(a.push(c),0==(0|t._crypto_scalarmult_ristretto255_base(c,_))){var o=p(n,r);return v(a),o}g(a,\"scalar is 0\")}function Ar(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"message\")),c=e.length;s.push(n),r=m(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,\"invalid nonce length\"),o=u(r),s.push(o),a=m(s,a,\"key\");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,\"invalid key length\"),y=u(a),s.push(y);var f=new l(0|c),E=f.address;s.push(E);var x=new l(0|t._crypto_secretbox_macbytes()),k=x.address;if(s.push(k),0==(0|t._crypto_secretbox_detached(E,k,n,c,0,o,y))){var S=p({mac:x,cipher:f},_);return v(s),S}g(s,\"invalid usage\")}function Kr(e,r,a,_){var s=[];i(_);var n=u(e=m(s,e,\"message\")),c=e.length;s.push(n),r=m(s,r,\"nonce\");var o,h=0|t._crypto_secretbox_noncebytes();r.length!==h&&b(s,\"invalid nonce length\"),o=u(r),s.push(o),a=m(s,a,\"key\");var y,d=0|t._crypto_secretbox_keybytes();a.length!==d&&b(s,\"invalid key length\"),y=u(a),s.push(y);var f=new l(c+t._crypto_secretbox_macbytes()|0),E=f.address;if(s.push(E),0==(0|t._crypto_secretbox_easy(E,n,c,0,o,y))){var x=p(f,_);return v(s),x}g(s,\"invalid usage\")}function Mr(e){var r=[];i(e);var a=new l(0|t._crypto_secretbox_keybytes()),_=a.address;r.push(_),t._crypto_secretbox_keygen(_);var s=p(a,e);return v(r),s}function Ir(e,r,a,_,s){var n=[];i(s);var c=u(e=m(n,e,\"ciphertext\")),o=e.length;n.push(c),r=m(n,r,\"mac\");var h,y=0|t._crypto_secretbox_macbytes();r.length!==y&&b(n,\"invalid mac length\"),h=u(r),n.push(h),a=m(n,a,\"nonce\");var d,f=0|t._crypto_secretbox_noncebytes();a.length!==f&&b(n,\"invalid nonce length\"),d=u(a),n.push(d),_=m(n,_,\"key\");var E,x=0|t._crypto_secretbox_keybytes();_.length!==x&&b(n,\"invalid key length\"),E=u(_),n.push(E);var k=new l(0|o),S=k.address;if(n.push(S),0==(0|t._crypto_secretbox_open_detached(S,c,h,o,0,d,E))){var T=p(k,s);return v(n),T}g(n,\"wrong secret key for the given ciphertext\")}function Nr(e,r,a,_){var s=[];i(_),e=m(s,e,\"ciphertext\");var n,c=t._crypto_secretbox_macbytes(),o=e.length;o>>0;return v([]),r}function gt(e,r){var a=[];i(r);for(var _=t._malloc(24),s=0;s<6;s++)t.setValue(_+4*s,t.Runtime.addFunction(e[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][s]]),\"i32\");0!=(0|t._randombytes_set_implementation(_))&&g(a,\"unsupported implementation\"),v(a)}function bt(e){i(e),t._randombytes_stir()}function ft(e,r){var a=[];i(r),f(a,e,\"upper_bound\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&b(a,\"upper_bound must be an unsigned integer\");var _=t._randombytes_uniform(e)>>>0;return v(a),_}function mt(){var e=t._sodium_version_string(),r=t.UTF8ToString(e);return v([]),r}return l.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(t.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var t=e.length,a=0,_=0;if(r.length!=e.length)throw new TypeError(\"Arguments must have the same length\");for(_=0;_>=8,a+=e[_]+r[_],e[_]=255&a},e.base64_variants=c,e.compare=function(e,r){if(!(e instanceof Uint8Array&&r instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==r.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var t=0,a=1,_=e.length;_-- >0;)t|=r[_]-e[_]>>8&a,a&=(r[_]^e[_])-1>>8;return t+t+a-1},e.from_base64=function(e,r){r=o(r);var a,_=[],s=new l(3*(e=m(_,e,\"input\")).length/4),n=u(e),c=d(4),h=d(4);return _.push(n),_.push(s.address),_.push(s.result_bin_len_p),_.push(s.b64_end_p),0!==t._sodium_base642bin(s.address,s.length,n,e.length,0,c,h,r)&&g(_,\"invalid input\"),t.getValue(h,\"i32\")-n!==e.length&&g(_,\"incomplete input\"),s.length=t.getValue(c,\"i32\"),a=s.to_Uint8Array(),v(_),a},e.from_hex=function(e){var r,a=[],_=new l((e=m(a,e,\"input\")).length/2),s=u(e),n=d(4);return a.push(s),a.push(_.address),a.push(_.hex_end_p),0!==t._sodium_hex2bin(_.address,_.length,s,e.length,0,0,n)&&g(a,\"invalid input\"),t.getValue(n,\"i32\")-s!==e.length&&g(a,\"incomplete input\"),r=_.to_Uint8Array(),v(a),r},e.from_string=_,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var r=256,t=0,a=e.length;t>=8,r+=e[t],e[t]=255&r},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var r=0,t=0,a=e.length;t 0\");var a,_=[],s=d(4),n=1,c=0,o=0|e.length,h=new l(o+r);_.push(s),_.push(h.address);for(var p=h.address,y=h.address+o+r;p>>48|o>>>32|o>>>16|o))-1>>16);return 0!==t._sodium_pad(s,h.address,e.length,r,h.length)&&g(_,\"internal error\"),h.length=t.getValue(s,\"i32\"),a=h.to_Uint8Array(),v(_),a},e.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((r|=0)<=0)throw new Error(\"block size must be > 0\");var a=[],_=u(e),s=d(4);return a.push(_),a.push(s),0!==t._sodium_unpad(s,_,e.length,r)&&g(a,\"unsupported/invalid padding\"),e=(e=new Uint8Array(e)).subarray(0,t.getValue(s,\"i32\")),v(a),e},e.ready=a,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=h,e.to_hex=n,e.to_string=s,e}var t=\"object\"==typeof e.sodium&&\"function\"==typeof e.sodium.onload?e.sodium.onload:null;\"function\"==typeof define&&define.amd?define([\"exports\",\"libsodium\"],r):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?r(exports,require(\"libsodium\")):e.sodium=r(e.commonJsStrict={},e.libsodium),t&&e.sodium.ready.then((function(){t(e.sodium)}))}(this);\n","!function(A){function I(A){\"use strict\";var I;void 0===(I=A)&&(I={});var g=I;\"object\"!=typeof g.sodium&&(\"object\"==typeof global?g=global:\"object\"==typeof window&&(g=window)),\"object\"==typeof g.sodium&&\"number\"==typeof g.sodium.totalMemory&&(I.TOTAL_MEMORY=g.sodium.totalMemory);var B=I;return I.ready=new Promise((function(A,I){(a=B).onAbort=I,a.print=function(A){},a.printErr=function(A){},a.onRuntimeInitialized=function(){try{a._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},a.useBackupModule=function(){return new Promise((function(A,I){(a={}).onAbort=I,a.onRuntimeInitialized=function(){Object.keys(B).forEach((function(A){\"getRandomValue\"!==A&&delete B[A]})),Object.keys(a).forEach((function(A){B[A]=a[A]})),A()};var g,C,Q,E,i,n,a=void 0!==a?a:{},r=Object.assign({},a),o=[],t=\"object\"==typeof window,e=\"function\"==typeof importScripts,f=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,c=\"\";f?(c=e?require(\"path\").dirname(c)+\"/\":__dirname+\"/\",n=()=>{i||(E=require(\"fs\"),i=require(\"path\"))},g=function(A,I){var g=AA(A);return g?I?g:g.toString():(n(),A=i.normalize(A),E.readFileSync(A,I?void 0:\"utf8\"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},C=(A,I,g)=>{var B=AA(A);B&&I(B),n(),A=i.normalize(A),E.readFile(A,(function(A,B){A?g(A):I(B.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),o=process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=a),a.inspect=function(){return\"[Emscripten Module object]\"}):(t||e)&&(e?c=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(c=document.currentScript.src),c=0!==c.indexOf(\"blob:\")?c.substr(0,c.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",g=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=AA(A);if(g)return function(A){for(var I=[],g=0;g255&&(B&=255),I.push(String.fromCharCode(B))}return I.join(\"\")}(g);throw I}},e&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=AA(A);if(g)return g;throw I}}),C=(A,I,g)=>{var B=new XMLHttpRequest;B.open(\"GET\",A,!0),B.responseType=\"arraybuffer\",B.onload=()=>{if(200==B.status||0==B.status&&B.response)I(B.response);else{var C=AA(A);C?I(C.buffer):g()}},B.onerror=g,B.send(null)}),a.print;var y,s=a.printErr||void 0;Object.assign(a,r),r=null,a.arguments&&(o=a.arguments),a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(y=a.wasmBinary),a.noExitRuntime;var w,D={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),B=25;B>=0;--B)g[48+B]=52+B,g[65+B]=B,g[97+B]=26+B;function C(A,I,B){for(var C,Q,E=0,i=I,n=B.length,a=I+(3*n>>2)-(\"=\"==B[n-2])-(\"=\"==B[n-1]);E>4,i>2),i>2]=n[0|K]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24,i[j+4>>2]=IA,16!=(0|(X=X+1|0)););for(g=eI(q,A,64),K=i[(I=g)>>2],X=i[I+4>>2],o=K,K=(IA=i[I+32>>2])+(q=i[I+128>>2])|0,I=(O=i[I+36>>2])+i[I+132>>2]|0,I=K>>>0>>0?I+1|0:I,q=K,I=I+X|0,q=I=(K=o+K|0)>>>0>>0?I+1|0:I,L=pA((X=K)^(n[0|(K=A- -64|0)]|n[K+1|0]<<8|n[K+2|0]<<16|n[K+3|0]<<24)^-1377402159,I^(n[K+4|0]|n[K+5|0]<<8|n[K+6|0]<<16|n[K+7|0]<<24)^1359893119,32),K=I=h,I=I+1779033703|0,o=IA^(j=L-205731576|0),IA=I=j>>>0<4089235720?I+1|0:I,H=pA(o,O^I,24),O=I=h,T=K,o=L,I=I+q|0,I=(I=(L=H+X|0)>>>0>>0?I+1|0:I)+(t=B=i[g+140>>2])|0,r=pA(o^(b=X=(K=i[g+136>>2])+L|0),(p=b>>>0>>0?I+1|0:I)^T,16),I=IA+(f=h)|0,o=pA((Y=X=j+r|0)^H,(q=Y>>>0>>0?I+1|0:I)^O,63),w=h,j=i[g+12>>2],X=(H=i[g+144>>2])+(IA=i[g+40>>2])|0,I=(gA=i[g+148>>2])+(O=i[g+44>>2])|0,T=X,I=(I=X>>>0>>0?I+1|0:I)+j|0,I=(X=X+i[g+8>>2]|0)>>>0>>0?I+1|0:I,L=pA(X^(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)^725511199,(n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24)^I^-1694144372,32),T=pA(u=IA^(j=L-2067093701|0),O^(t=(IA=h)-((L>>>0<2067093701)+1150833018|0)|0),24),G=i[g+156>>2],u=T,I=I+(O=h)|0,I=(I=(T=X+T|0)>>>0>>0?I+1|0:I)+G|0,z=pA((S=X=T+i[g+152>>2]|0)^L,(_=S>>>0>>0?I+1|0:I)^IA,16),I=t+(v=h)|0,fA=X=j+z|0,L=pA(u^X,(j=X>>>0>>0?I+1|0:I)^O,63),t=h,IA=i[g+20>>2],X=(U=i[g+160>>2])+(T=i[g+48>>2])|0,I=(QA=i[g+164>>2])+(G=i[g+52>>2])|0,O=X,I=(I=X>>>0>>0?I+1|0:I)+IA|0,nA=X=X+i[g+16>>2]|0,X=X>>>0>>0?I+1|0:I,k=pA(nA^(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24)^-79577749,X^(n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)^528734635,32),IA=I=h,I=I+1013904242|0,u=T^(O=k-23791573|0),T=I=O>>>0<4271175723?I+1|0:I,I=pA(u,G^I,24),c=IA,C=i[g+172>>2],e=I,u=k,k=I,nA=I+nA|0,I=(G=h)+X|0,I=(I=k>>>0>nA>>>0?I+1|0:I)+(F=C)|0,J=pA(u^(F=X=(IA=i[g+168>>2])+(k=nA)|0),(M=k>>>0>F>>>0?I+1|0:I)^c,16),I=T+(l=h)|0,G=pA(e^(P=X=O+J|0),(T=P>>>0>>0?I+1|0:I)^G,63),c=h,k=i[g+28>>2],O=(X=i[g+176>>2])+(nA=i[g+56>>2])|0,I=(E=i[g+180>>2])+(m=i[g+60>>2])|0,I=(I=O>>>0>>0?I+1|0:I)+k|0,I=(y=O)>>>0>(N=O=y+i[g+24>>2]|0)>>>0?I+1|0:I,e=pA(N^(n[A+88|0]|n[A+89|0]<<8|n[A+90|0]<<16|n[A+91|0]<<24)^327033209,I^(n[A+92|0]|n[A+93|0]<<8|n[A+94|0]<<16|n[A+95|0]<<24)^1541459225,32),k=pA(u=nA^(D=(k=e)+1595750129|0),m^(nA=(O=h)-((k>>>0<2699217167)+1521486533|0)|0),24),y=nA,u=O,nA=i[g+188>>2],d=k,I=(m=h)+I|0,I=(I=(N=k+N|0)>>>0>>0?I+1|0:I)+nA|0,V=k=(O=i[g+184>>2])+N|0,e=pA(k^e,(R=u)^(u=k>>>0>>0?I+1|0:I),16),I=(I=y)+(y=h)|0,N=k=e+D|0,D=m,m=I=k>>>0>>0?I+1|0:I,R=pA(d^k,D^I,63),k=h,d=L,I=t+p|0,I=(I=(b=b+L|0)>>>0>>0?I+1|0:I)+(D=W=i[g+196>>2])|0,D=P,b=pA((P=L=(CA=i[g+192>>2])+(p=b)|0)^e,(L=p>>>0>P>>>0?I+1|0:I)^y,32),I=(I=T)+(T=h)|0,e=t,t=I=(p=D+(y=b)|0)>>>0>>0?I+1|0:I,I=pA(d^p,e^I,24),aA=i[g+204>>2],x=I,d=y,e=P,P=I,e=e+I|0,I=(y=h)+L|0,I=(I=e>>>0

>>0?I+1|0:I)+(D=aA)|0,Z=L=(b=i[g+200>>2])+e|0,oA=pA(d^L,(P=e>>>0>L>>>0?I+1|0:I)^T,16),I=t+(e=h)|0,x=pA(x^(D=T=p+oA|0),(t=y)^(y=p>>>0>D>>>0?I+1|0:I),63),p=h,d=G,I=c+_|0,I=(I=(T=G+S|0)>>>0>>0?I+1|0:I)+(t=iA=i[g+212>>2])|0,S=pA((t=r)^(r=T=(L=i[g+208>>2])+(G=T)|0),(G=G>>>0>r>>>0?I+1|0:I)^f,32),I=m+(t=h)|0,T=pA(d^(m=T=N+S|0),(I=N>>>0>m>>>0?I+1|0:I)^c,24),f=I,_=t,AA=i[g+220>>2],$=T,d=m,I=(c=h)+G|0,I=(I=(m=r+T|0)>>>0>>0?I+1|0:I)+(N=AA)|0,_=pA((m=T=(t=i[g+216>>2])+(G=m)|0)^S,(N=G>>>0>m>>>0?I+1|0:I)^_,16),I=(r=h)+f|0,rA=T=d+_|0,d=pA($^T,(G=_>>>0>T>>>0?I+1|0:I)^c,63),c=h,$=R,I=k+M|0,I=(f=F+R|0)>>>0>>0?I+1|0:I,F=f,I=I+(S=a=i[g+228>>2])|0,R=pA((M=f=(T=i[g+224>>2])+f|0)^z,(f=f>>>0>>0?I+1|0:I)^v,32),I=(v=h)+q|0,Y=F=R+Y|0,q=pA($^F,(I=F>>>0>>0?I+1|0:I)^k,24),F=I,z=i[g+236>>2],$=q,I=(k=h)+f|0,I=(I=(M=M+q|0)>>>0>>0?I+1|0:I)+(S=z)|0,eA=pA((M=q=(BA=i[g+232>>2])+(f=M)|0)^R,(S=v)^(v=f>>>0>M>>>0?I+1|0:I),16),I=(I=F)+(F=h)|0,k=pA($^(R=q=(f=eA)+Y|0),(Y=f>>>0>R>>>0?I+1|0:I)^k,63),f=h,$=o,I=w+u|0,I=(I=(S=o+V|0)>>>0>>0?I+1|0:I)+(cA=i[g+244>>2])|0,I=(o=(q=i[g+240>>2])+(u=S)|0)>>>0>>0?I+1|0:I,u=l,l=I,S=pA(o^J,u^I,32),I=(I=j)+(j=h)|0,J=u=S+fA|0,V=pA($^u,(I=u>>>0>>0?I+1|0:I)^w,24),w=I,u=j,fA=i[g+252>>2],tA=V,EA=J,J=S,I=l+($=h)|0,I=(I=(S=o+V|0)>>>0>>0?I+1|0:I)+fA|0,I=(o=(j=i[g+248>>2])+(l=S)|0)>>>0>>0?I+1|0:I,l=o,S=u,u=I,V=pA(J^o,S^I,16),I=(S=h)+w|0,J=pA(tA^(EA=o=EA+(J=V)|0),(o=o>>>0>>0?I+1|0:I)^$,63),$=I=h,w=I,tA=_,I=P+cA|0,P=_=q+Z|0,I=(I=_>>>0>>0?I+1|0:I)+w|0,Z=pA(tA^(w=_=_+J|0),(_=w>>>0

>>0?I+1|0:I)^r,32),I=Y+(P=h)|0,R=I=(r=R+Z|0)>>>0>>0?I+1|0:I,J=pA(J^r,$^I,24),$=I=h,Y=I,yA=J,I=_+iA|0,_=J=w+L|0,I=(I=J>>>0>>0?I+1|0:I)+Y|0,J=Z,Z=w=yA+_|0,tA=pA(J^w,(Y=P)^(P=w>>>0<_>>>0?I+1|0:I),16),I=R+(Y=h)|0,R=I=(w=r+tA|0)>>>0>>0?I+1|0:I,J=pA(yA^(r=w),I^$,63),_=h,I=p+QA|0,I=(I=(w=U+x|0)>>>0>>0?I+1|0:I)+N|0,U=I=(w=w+m|0)>>>0>>0?I+1|0:I,N=pA(w^eA,I^F,32),I=(I=o)+(o=h)|0,I=(F=(m=N)+EA|0)>>>0>>0?I+1|0:I,m=p,p=I,x=pA(F^x,m^I,24),QA=I=h,m=I,$=N,I=U+W|0,I=(I=(N=w+CA|0)>>>0>>0?I+1|0:I)+m|0,I=(w=(U=N)+x|0)>>>0>>0?I+1|0:I,U=w,m=I,eA=pA($^w,I^o,16),I=p+(N=h)|0,$=o=F+eA|0,x=pA(o^x,(w=o>>>0>>0?I+1|0:I)^QA,63),o=h,I=c+aA|0,I=(I=(p=b+d|0)>>>0>>0?I+1|0:I)+v|0,S=pA((b=p=p+M|0)^V,(p=p>>>0>>0?I+1|0:I)^S,32),I=y+(v=h)|0,y=c,c=I=(F=D+S|0)>>>0>>0?I+1|0:I,y=pA(F^d,y^I,24),D=I=h,d=y,I=p+fA|0,I=(I=(y=b+j|0)>>>0>>0?I+1|0:I)+D|0,aA=p=d+y|0,EA=pA(p^S,(b=v)^(v=p>>>0>>0?I+1|0:I),16),I=c+(M=h)|0,b=p=F+EA|0,S=pA(d^p,(c=p>>>0>>0?I+1|0:I)^D,63),p=h,D=k,I=f+z|0,I=(I=(F=k+BA|0)>>>0>>0?I+1|0:I)+u|0,I=(k=F+l|0)>>>0>>0?I+1|0:I,l=k,k=I,y=pA(l^oA,I^e,32),I=(I=G)+(G=h)|0,u=F=y+rA|0,e=pA(D^F,(I=y>>>0>F>>>0?I+1|0:I)^f,24),D=f=h,F=I,I=k+E|0,I=(I=(l=l+X|0)>>>0>>0?I+1|0:I)+f|0,I=(k=l+e|0)>>>0>>0?I+1|0:I,f=u,l=k,u=k^y,y=I,G=f+(k=u=pA(u,I^G,16))|0,I=(f=h)+F|0,V=G,d=pA(G^e,(k=G>>>0>>0?I+1|0:I)^D,63),G=h,D=b,e=u,I=P+B|0,u=F=K+Z|0,I=(I=F>>>0>>0?I+1|0:I)+o|0,I=(F=F+x|0)>>>0>>0?I+1|0:I,u=f,f=I,b=pA(e^F,u^I,32),I=(I=c)+(c=h)|0,P=u=D+b|0,e=pA(u^x,(I=u>>>0>>0?I+1|0:I)^o,24),D=o=h,u=I,x=b,I=f+a|0,I=(I=(b=F+T|0)>>>0>>0?I+1|0:I)+o|0,I=(f=(F=b)+e|0)>>>0>>0?I+1|0:I,F=f,b=I,oA=pA(x^f,I^c,16),I=(I=u)+(u=h)|0,P=o=(c=oA)+P|0,QA=pA(f=o^e,(e=o>>>0>>0?I+1|0:I)^D,63),c=h,I=p+m|0,I=(o=U+S|0)>>>0>>0?I+1|0:I,U=o,I=I+(f=rA=i[g+132>>2])|0,f=I=(o=(D=i[g+128>>2])+o|0)>>>0>>0?I+1|0:I,m=pA(o^tA,I^Y,32),I=(I=k)+(k=h)|0,Y=U=m+V|0,S=pA(U^S,(I=U>>>0>>0?I+1|0:I)^p,24),x=p=h,U=I,V=m,I=f+gA|0,I=(I=(m=o+H|0)>>>0>>0?I+1|0:I)+p|0,m=o=(f=m)+S|0,o=pA(V^o,(p=k)^(k=o>>>0>>0?I+1|0:I),16),I=(I=U)+(U=h)|0,Y=p=o+Y|0,V=pA(f=p^S,(S=o>>>0>p>>>0?I+1|0:I)^x,63),p=h,Z=d,I=v+AA|0,v=f=t+aA|0,I=(I=f>>>0>>0?I+1|0:I)+G|0,d=pA((x=f=f+d|0)^eA,(f=f>>>0>>0?I+1|0:I)^N,32),I=R+(v=h)|0,I=r>>>0>(N=r+d|0)>>>0?I+1|0:I,R=pA(Z^(r=N),I^G,24),aA=G=h,N=I,tA=R,Z=r,I=f+nA|0,I=(I=(r=x+O|0)>>>0>>0?I+1|0:I)+G|0,I=r>>>0>(f=r+R|0)>>>0?I+1|0:I,r=f,G=v,v=I,eA=pA(f^d,G^I,16),I=(G=h)+N|0,N=f=Z+(R=eA)|0,aA=pA(tA^f,(I=f>>>0>>0?I+1|0:I)^aA,63),f=h,R=I,x=o,I=_+C|0,I=(I=(o=J+IA|0)>>>0>>0?I+1|0:I)+y|0,I=(o=o+l|0)>>>0>>0?I+1|0:I,l=o,y=M,M=I,d=pA(o^EA,y^I,32),I=(o=h)+w|0,Z=pA((y=d+$|0)^J,(I=y>>>0>>0?I+1|0:I)^_,24),w=I,_=o,J=i[g+156>>2],tA=y,I=M+($=h)|0,I=(I=(y=l+Z|0)>>>0>>0?I+1|0:I)+J|0,l=I=y>>>0>(M=(o=i[g+152>>2])+y|0)>>>0?I+1|0:I,EA=pA(M^d,I^_,16),I=(I=w)+(w=h)|0,d=I=(y=EA)>>>0>(_=tA+y|0)>>>0?I+1|0:I,Z=pA((y=_)^Z,I^$,63),$=I=h,_=I,tA=N,I=b+AA|0,I=(I=(N=t+F|0)>>>0>>0?I+1|0:I)+_|0,_=F=N+Z|0,x=pA(F^x,(b=U)^(U=F>>>0>>0?I+1|0:I),32),I=(F=h)+R|0,b=I=(b=x)>>>0>(N=tA+b|0)>>>0?I+1|0:I,Z=pA(Z^N,$^I,24),$=I=h,R=I,tA=x,I=U+W|0,I=(I=(x=_+CA|0)>>>0<_>>>0?I+1|0:I)+R|0,I=(_=(U=x)+Z|0)>>>0>>0?I+1|0:I,U=_,R=F,F=I,CA=pA(tA^_,R^I,16),I=b+(R=h)|0,I=(_=N+CA|0)>>>0>>0?I+1|0:I,N=_,b=I,x=pA(_^Z,I^$,63),_=h,Z=QA,I=c+a|0,I=(I=(W=T+QA|0)>>>0>>0?I+1|0:I)+k|0,k=G,G=I=m>>>0>(W=m+W|0)>>>0?I+1|0:I,QA=pA(W^eA,k^I,32),I=d+(k=h)|0,I=y>>>0>(m=y+QA|0)>>>0?I+1|0:I,y=c,c=I,d=pA(Z^m,y^I,24),Z=I=h,y=I,$=d,I=G+rA|0,I=(I=(d=D+W|0)>>>0>>0?I+1|0:I)+y|0,W=G=$+(D=d)|0,QA=pA(G^QA,(y=G>>>0>>0?I+1|0:I)^k,16),I=c+(D=h)|0,rA=G=m+QA|0,d=pA($^G,(k=G>>>0>>0?I+1|0:I)^Z,63),G=h,Z=V,I=p+C|0,I=(I=(c=IA+V|0)>>>0>>0?I+1|0:I)+v|0,I=(c=c+r|0)>>>0>>0?I+1|0:I,r=c,m=w,w=I,V=pA(c^EA,m^I,32),I=e+(c=h)|0,e=p,p=I=(v=P+V|0)>>>0

>>0?I+1|0:I,P=pA(Z^v,e^I,24),e=I=h,$=P,I=w+gA|0,I=(I=(P=r+H|0)>>>0>>0?I+1|0:I)+e|0,r=V,V=w=$+P|0,Z=pA(r^w,(m=w>>>0

>>0?I+1|0:I)^c,16),I=p+(P=h)|0,eA=w=v+Z|0,e=pA($^w,(p=w>>>0>>0?I+1|0:I)^e,63),w=h,I=f+fA|0,I=(I=(c=j+aA|0)>>>0>>0?I+1|0:I)+l|0,v=I=(c=c+M|0)>>>0>>0?I+1|0:I,r=pA(c^oA,I^u,32),I=S+(M=h)|0,u=f,f=I=(l=Y+r|0)>>>0>>0?I+1|0:I,Y=pA(l^aA,u^I,24),S=I=h,u=I,$=r,I=v+z|0,I=(I=(r=c+BA|0)>>>0>>0?I+1|0:I)+u|0,u=c=r+Y|0,r=pA($^c,(v=M)^(M=c>>>0>>0?I+1|0:I),16),I=f+(v=h)|0,aA=c=l+r|0,Y=pA(c^Y,(f=c>>>0>>0?I+1|0:I)^S,63),c=h,I=F+iA|0,I=(I=(l=U+L|0)>>>0>>0?I+1|0:I)+G|0,l=U=(F=l)+d|0,r=pA(U^r,(S=v)^(v=F>>>0>U>>>0?I+1|0:I),32),I=(I=p)+(p=h)|0,F=G,G=I=r>>>0>(U=r+eA|0)>>>0?I+1|0:I,S=pA(U^d,F^I,24),d=I=h,F=I,I=v+cA|0,I=(I=(l=l+q|0)>>>0>>0?I+1|0:I)+F|0,oA=v=l+S|0,eA=pA(v^r,(F=v>>>0>>0?I+1|0:I)^p,16),I=G+(l=h)|0,$=p=U+eA|0,S=pA(p^S,(G=p>>>0>>0?I+1|0:I)^d,63),p=h,d=e,I=y+J|0,I=(I=(v=o+W|0)>>>0>>0?I+1|0:I)+w|0,e=pA((y=v=(U=v)+e|0)^CA,(v=y>>>0>>0?I+1|0:I)^R,32),I=(I=f)+(f=h)|0,R=pA(d^(r=U=e+aA|0),(I=e>>>0>r>>>0?I+1|0:I)^w,24),d=w=h,U=I,W=R,I=v+E|0,I=(I=(y=y+X|0)>>>0>>0?I+1|0:I)+w|0,I=y>>>0>(v=y+R|0)>>>0?I+1|0:I,w=r,r=(y=v)^e,e=I,r=pA(r,I^f,16),I=(R=h)+U|0,f=pA(W^(EA=w=w+r|0),(w=w>>>0>>0?I+1|0:I)^d,63),v=h,W=Y,I=m+nA|0,m=U=O+V|0,I=(I=U>>>0>>0?I+1|0:I)+c|0,d=pA((Y=U=U+Y|0)^QA,(U=U>>>0>>0?I+1|0:I)^D,32),I=b+(m=h)|0,b=D=N+d|0,D=pA(W^D,(I=D>>>0>>0?I+1|0:I)^c,24),W=c=h,N=I,V=b,I=U+B|0,I=(I=(b=Y+K|0)>>>0>>0?I+1|0:I)+c|0,I=(U=b+D|0)>>>0>>0?I+1|0:I,b=U,c=m,m=I,tA=pA(U^d,c^I,16),I=(I=N)+(N=h)|0,d=pA((c=V+(U=tA)|0)^D,(I=c>>>0>>0?I+1|0:I)^W,63),U=h,D=c,Y=I,I=_+M|0,M=c=u+x|0,I=(I=c>>>0>>0?I+1|0:I)+(W=i[g+204>>2])|0,M=I=(c=(CA=i[g+200>>2])+c|0)>>>0>>0?I+1|0:I,P=pA(c^Z,I^P,32),I=(I=k)+(k=h)|0,x=pA((u=P+rA|0)^x,(I=u>>>0

>>0?I+1|0:I)^_,24),_=I,QA=i[g+164>>2],rA=u,I=M+(aA=h)|0,I=(I=(u=c+x|0)>>>0>>0?I+1|0:I)+QA|0,M=c=(V=i[g+160>>2])+u|0,u=I=c>>>0>>0?I+1|0:I,Z=pA(c^P,I^k,16),I=(P=h)+_|0,x=pA((rA=c=rA+(k=Z)|0)^x,(c=c>>>0>>0?I+1|0:I)^aA,63),aA=I=h,k=I,I=F+nA|0,I=(I=(_=O+oA|0)>>>0>>0?I+1|0:I)+k|0,R=pA((k=_=(F=_)+x|0)^r,(_=F>>>0>k>>>0?I+1|0:I)^R,32),I=(F=h)+Y|0,Y=D=(r=R)+D|0,x=pA(x^D,aA^(I=r>>>0>D>>>0?I+1|0:I),24),aA=D=h,r=I,yA=x,oA=R,I=_+W|0,I=(I=(R=k+CA|0)>>>0>>0?I+1|0:I)+D|0,R=k=(_=R)+x|0,x=pA(oA^k,(D=F)^(F=_>>>0>k>>>0?I+1|0:I),16),I=(D=h)+r|0,aA=pA(yA^(oA=k=(_=x)+Y|0),(k=_>>>0>k>>>0?I+1|0:I)^aA,63),_=h,I=p+J|0,I=(I=(r=o+S|0)>>>0>>0?I+1|0:I)+e|0,r=pA((e=o=r+y|0)^tA,(o=o>>>0>>0?I+1|0:I)^N,32),I=(I=c)+(c=h)|0,N=p,p=I=(y=r+rA|0)>>>0>>0?I+1|0:I,Y=pA(y^S,N^I,24),S=I=h,N=I,I=o+B|0,I=(I=(e=e+K|0)>>>0>>0?I+1|0:I)+N|0,J=o=e+Y|0,rA=pA(o^r,(N=o>>>0>>0?I+1|0:I)^c,16),I=p+(e=h)|0,tA=o=y+rA|0,r=pA(o^Y,(c=o>>>0>>0?I+1|0:I)^S,63),o=h,Y=f,I=v+z|0,I=(I=(p=f+BA|0)>>>0>>0?I+1|0:I)+m|0,f=I=(p=p+b|0)>>>0>>0?I+1|0:I,y=pA(p^Z,I^P,32),I=(I=G)+(G=h)|0,b=m=y+$|0,P=pA(Y^m,(I=y>>>0>m>>>0?I+1|0:I)^v,24),m=I,S=b,Y=y,I=f+a|0,f=y=p+T|0,I=(I=y>>>0

>>0?I+1|0:I)+(v=h)|0,Z=pA(Y^(y=p=y+P|0),(b=y>>>0>>0?I+1|0:I)^G,16),I=(I=m)+(m=h)|0,f=P,P=G=S+(p=Z)|0,Y=pA(f^G,(p=p>>>0>G>>>0?I+1|0:I)^v,63),G=h,I=U+AA|0,I=(I=(f=t+d|0)>>>0>>0?I+1|0:I)+u|0,l=pA((u=f=f+M|0)^eA,(f=f>>>0>>0?I+1|0:I)^l,32),I=(I=w)+(w=h)|0,M=U,U=I=(v=l+EA|0)>>>0>>0?I+1|0:I,S=pA(v^d,M^I,24),d=I=h,M=I,z=l,I=f+cA|0,I=(I=(l=u+q|0)>>>0>>0?I+1|0:I)+M|0,M=f=l+S|0,u=pA(z^f,(l=f>>>0>>0?I+1|0:I)^w,16),I=U+(f=h)|0,I=(w=v+u|0)>>>0>>0?I+1|0:I,v=w,U=I,S=pA(w^S,I^d,63),w=h,z=P,d=u,I=F+gA|0,I=(I=(u=H+R|0)>>>0>>0?I+1|0:I)+o|0,I=(F=u+r|0)>>>0>>0?I+1|0:I,u=F,P=f,f=I,P=pA(d^F,P^I,32),I=(I=p)+(p=h)|0,R=pA((R=r)^(r=F=z+P|0),(I=r>>>0

>>0?I+1|0:I)^o,24),d=o=h,F=I,I=f+E|0,I=(I=(u=u+X|0)>>>0>>0?I+1|0:I)+o|0,I=(f=u+R|0)>>>0>>0?I+1|0:I,u=f,o=f^P,P=I,eA=pA(o,I^p,16),I=(I=F)+(F=h)|0,r=o=(p=eA)+r|0,d=pA(f=o^R,(R=o>>>0

>>0?I+1|0:I)^d,63),f=h,z=Y,I=N+C|0,p=o=J+IA|0,I=(I=o>>>0>>0?I+1|0:I)+G|0,D=pA((Y=o=o+Y|0)^x,(o=o>>>0

>>0?I+1|0:I)^D,32),I=U+(p=h)|0,N=pA(z^(U=N=v+D|0),(I=v>>>0>U>>>0?I+1|0:I)^G,24),x=G=h,v=I,J=N,z=U,I=o+iA|0,I=(I=(U=Y+L|0)>>>0>>0?I+1|0:I)+G|0,N=o=U+N|0,G=pA(G=o^D,(D=o>>>0>>0?I+1|0:I)^p,16),I=(U=h)+v|0,$=o=z+G|0,z=pA(J^o,(p=o>>>0>>0?I+1|0:I)^x,63),v=h,Y=S,I=b+QA|0,I=(o=y+V|0)>>>0>>0?I+1|0:I,y=o,I=I+w|0,I=(o=o+S|0)>>>0>>0?I+1|0:I,y=o,b=I,S=pA(o^rA,I^e,32),I=(o=h)+k|0,x=e=S+oA|0,Y=pA(Y^e,(I=e>>>0>>0?I+1|0:I)^w,24),k=I,e=o,BA=i[g+132>>2],J=Y,I=b+(w=h)|0,I=(I=(Y=y+Y|0)>>>0>>0?I+1|0:I)+BA|0,b=I=(y=(o=i[g+128>>2])+(b=Y)|0)>>>0>>0?I+1|0:I,oA=pA(y^S,I^e,16),I=(e=h)+k|0,J=pA(J^(Y=(S=oA)+x|0),(I=S>>>0>Y>>>0?I+1|0:I)^w,63),k=h,S=I,x=G,I=_+fA|0,I=(I=(G=j+aA|0)>>>0>>0?I+1|0:I)+l|0,m=pA((w=G=G+M|0)^Z,(M=w>>>0>>0?I+1|0:I)^m,32),I=(G=h)+c|0,Z=pA((l=m+tA|0)^aA,(I=l>>>0>>0?I+1|0:I)^_,24),c=I,_=G,aA=i[g+196>>2],tA=Z,EA=l,I=M+(rA=h)|0,I=(I=(l=w+Z|0)>>>0>>0?I+1|0:I)+aA|0,M=w=(G=i[g+192>>2])+l|0,l=I=w>>>0>>0?I+1|0:I,Z=pA(w^m,I^_,16),I=(I=c)+(c=h)|0,m=pA(tA^(EA=w=EA+(_=Z)|0),(w=w>>>0<_>>>0?I+1|0:I)^rA,63),rA=I=h,_=I,tA=Y,I=P+W|0,I=(I=(Y=u+CA|0)>>>0>>0?I+1|0:I)+_|0,I=(u=(P=Y)+m|0)>>>0

>>0?I+1|0:I,P=u,_=I,Y=pA(u^x,I^U,32),I=(U=h)+S|0,S=u=tA+Y|0,x=pA(m^u,rA^(I=u>>>0>>0?I+1|0:I),24),W=m=h,u=I,I=_+BA|0,I=(I=(P=o+P|0)>>>0>>0?I+1|0:I)+m|0,CA=_=P+x|0,rA=pA(_^Y,(m=_>>>0

>>0?I+1|0:I)^U,16),I=(I=u)+(u=h)|0,P=_=(U=rA)+S|0,W=pA(_^x,(Y=_>>>0>>0?I+1|0:I)^W,63),U=h,I=f+C|0,I=(I=(_=d+IA|0)>>>0>>0?I+1|0:I)+D|0,N=I=(_=_+N|0)>>>0>>0?I+1|0:I,S=pA(_^oA,I^e,32),I=(I=w)+(w=h)|0,I=(e=(D=S)+EA|0)>>>0>>0?I+1|0:I,D=f,f=I,x=pA(e^d,D^I,24),d=I=h,D=I,EA=S,I=N+nA|0,I=(I=(S=_+O|0)>>>0<_>>>0?I+1|0:I)+D|0,N=_=S+x|0,D=I=_>>>0>>0?I+1|0:I,oA=pA(EA^_,I^w,16),I=f+(S=h)|0,EA=w=e+oA|0,x=pA(w^x,(f=w>>>0>>0?I+1|0:I)^d,63),w=h,I=v+gA|0,I=(I=(_=H+z|0)>>>0>>0?I+1|0:I)+b|0,e=c,c=I=y>>>0>(_=y+_|0)>>>0?I+1|0:I,d=pA(_^Z,e^I,32),I=R+(y=h)|0,I=r>>>0>(b=r+d|0)>>>0?I+1|0:I,r=v,v=I,r=pA(b^z,r^I,24),R=I=h,e=I,Z=r,I=c+QA|0,I=(I=(r=_+V|0)>>>0<_>>>0?I+1|0:I)+e|0,_=d,d=c=Z+r|0,z=pA(_^c,(e=y)^(y=c>>>0>>0?I+1|0:I),16),I=v+(e=h)|0,b=pA(Z^(r=c=b+z|0),(_=r>>>0>>0?I+1|0:I)^R,63),c=h,I=k+iA|0,I=(I=(v=L+J|0)>>>0>>0?I+1|0:I)+l|0,I=(v=v+M|0)>>>0>>0?I+1|0:I,M=v,v=I,l=pA(M^eA,I^F,32),I=(I=p)+(p=h)|0,R=F=l+$|0,J=pA(F^J,(I=F>>>0>>0?I+1|0:I)^k,24),QA=k=h,F=I,I=v+fA|0,I=(I=(M=M+j|0)>>>0>>0?I+1|0:I)+k|0,M=I=(v=M+J|0)>>>0>>0?I+1|0:I,k=(p=l=pA(v^l,I^p,16))+R|0,I=(I=F)+(F=h)|0,R=J,J=k,R=pA(R^k,(p=p>>>0>k>>>0?I+1|0:I)^QA,63),k=h,Z=r,V=l,I=m+cA|0,m=l=q+CA|0,I=(I=l>>>0>>0?I+1|0:I)+w|0,I=(l=l+x|0)>>>0>>0?I+1|0:I,m=l,r=F,F=I,r=pA(V^l,r^I,32),I=(I=_)+(_=h)|0,V=x,x=l=Z+r|0,CA=pA(V^l,(I=r>>>0>l>>>0?I+1|0:I)^w,24),QA=w=h,l=I,I=F+B|0,I=(I=(m=m+K|0)>>>0>>0?I+1|0:I)+w|0,V=F=m+CA|0,Z=pA(F^r,(w=_)^(_=F>>>0>>0?I+1|0:I),16),I=(F=h)+l|0,l=w=(m=Z)+x|0,CA=pA(w^CA,(m=w>>>0>>0?I+1|0:I)^QA,63),w=h,x=b,I=D+AA|0,I=(I=(b=t+N|0)>>>0>>0?I+1|0:I)+c|0,r=pA((D=N=x+b|0)^rA,(r=u)^(u=b>>>0>D>>>0?I+1|0:I),32),I=(I=p)+(p=h)|0,b=c,c=I=r>>>0>(N=r+J|0)>>>0?I+1|0:I,x=pA(x^N,b^I,24),J=I=h,b=I,I=u+a|0,I=(I=(D=D+T|0)>>>0>>0?I+1|0:I)+b|0,b=I=(u=D+x|0)>>>0>>0?I+1|0:I,p=pA(u^r,I^p,16),I=c+(D=h)|0,I=(r=N+p|0)>>>0>>0?I+1|0:I,N=r,r=I,J=pA(N^x,I^J,63),c=h,$=R,I=y+E|0,I=(I=(R=d+X|0)>>>0>>0?I+1|0:I)+k|0,d=pA((x=y=$+R|0)^oA,(y=y>>>0>>0?I+1|0:I)^S,32),I=Y+(R=h)|0,Y=k,k=I=(S=P+d|0)>>>0

>>0?I+1|0:I,S=pA($^(P=S),Y^I,24),QA=I=h,Y=I,$=S,I=y+aA|0,I=(I=(S=G+x|0)>>>0>>0?I+1|0:I)+Y|0,Y=R,R=I=(y=$+S|0)>>>0>>0?I+1|0:I,oA=pA(y^d,Y^I,16),I=k+(Y=h)|0,I=(S=P+oA|0)>>>0

>>0?I+1|0:I,QA=pA($^(P=S),I^QA,63),k=h,S=I,I=U+M|0,I=(I=(d=v+W|0)>>>0>>0?I+1|0:I)+(rA=i[g+156>>2])|0,M=I=(v=(x=i[g+152>>2])+(M=d)|0)>>>0>>0?I+1|0:I,d=pA(v^z,I^e,32),I=(I=f)+(f=h)|0,z=pA((e=d+EA|0)^W,(I=e>>>0>>0?I+1|0:I)^U,24),U=I,eA=i[g+236>>2],EA=e,$=d,I=M+(W=h)|0,I=(I=(d=v+z|0)>>>0>>0?I+1|0:I)+eA|0,I=(v=(e=i[g+232>>2])+(M=d)|0)>>>0>>0?I+1|0:I,M=f,f=I,$=pA($^v,M^I,16),I=(I=U)+(U=h)|0,d=I=(M=EA+(d=$)|0)>>>0>>0?I+1|0:I,W=pA(M^z,I^W,63),z=I=h,EA=P,P=p,I=_+gA|0,I=(I=(p=H+V|0)>>>0>>0?I+1|0:I)+z|0,D=pA(P^(gA=H=p+W|0),(H=p>>>0>H>>>0?I+1|0:I)^D,32),I=(p=h)+S|0,S=_=EA+D|0,z=pA(W^_,z^(I=_>>>0>>0?I+1|0:I),24),W=_=h,P=I,V=D,I=H+a|0,I=(I=(D=T+gA|0)>>>0>>0?I+1|0:I)+_|0,V=pA(V^(_=H=D+z|0),(D=_>>>0>>0?I+1|0:I)^p,16),I=(I=P)+(P=h)|0,S=H=(p=V)+S|0,gA=pA(gA=H^z,(z=p>>>0>H>>>0?I+1|0:I)^W,63),p=h,I=w+E|0,I=(I=(H=X+CA|0)>>>0>>0?I+1|0:I)+b|0,Y=pA((W=H=H+u|0)^oA,(H=H>>>0>>0?I+1|0:I)^Y,32),I=d+(u=h)|0,I=(b=M+Y|0)>>>0>>0?I+1|0:I,M=b,d=w,w=I,d=pA(b^CA,d^I,24),CA=I=h,b=I,EA=Y,I=H+iA|0,I=(I=(Y=L+W|0)>>>0>>0?I+1|0:I)+b|0,W=H=Y+d|0,oA=pA(EA^H,(b=u)^(u=H>>>0>>0?I+1|0:I),16),I=w+(b=h)|0,I=(H=M+oA|0)>>>0>>0?I+1|0:I,M=H,Y=I,d=pA(H^d,I^CA,63),w=h,I=c+BA|0,I=(I=(H=o+J|0)>>>0>>0?I+1|0:I)+R|0,I=y>>>0>(H=y+H|0)>>>0?I+1|0:I,y=H,H=I,R=pA(y^$,I^U,32),I=m+(o=h)|0,I=l>>>0>(U=l+R|0)>>>0?I+1|0:I,l=c,c=I,m=pA(U^J,l^I,24),BA=I=h,l=I,J=m,I=H+AA|0,I=(I=(m=t+y|0)>>>0>>0?I+1|0:I)+l|0,y=R,R=H=J+(t=m)|0,AA=pA(y^H,(l=t>>>0>H>>>0?I+1|0:I)^o,16),I=c+(m=h)|0,CA=H=U+AA|0,y=pA(J^H,(o=H>>>0>>0?I+1|0:I)^BA,63),H=h,I=k+aA|0,I=(I=(t=G+QA|0)>>>0>>0?I+1|0:I)+f|0,I=(t=t+v|0)>>>0>>0?I+1|0:I,v=t,t=I,U=pA(v^Z,I^F,32),I=r+(G=h)|0,f=k,k=I=(c=N+U|0)>>>0>>0?I+1|0:I,F=pA(c^QA,f^I,24),N=I=h,f=I,r=F,I=t+rA|0,I=(I=(v=v+x|0)>>>0>>0?I+1|0:I)+f|0,f=t=v+F|0,F=pA(t^U,(v=t>>>0>>0?I+1|0:I)^G,16),I=k+(U=h)|0,BA=t=c+F|0,r=pA(r^t,(G=t>>>0>>0?I+1|0:I)^N,63),t=h,I=w+D|0,I=(c=_+d|0)>>>0<_>>>0?I+1|0:I,_=c,I=I+(k=i[g+164>>2])|0,U=pA((k=F)^(F=c=c+i[g+160>>2]|0),(c=c>>>0<_>>>0?I+1|0:I)^U,32),I=(I=o)+(o=h)|0,N=w,w=I=(_=U)>>>0>(k=_+CA|0)>>>0?I+1|0:I,N=pA(k^d,N^I,24),D=I=h,_=I,d=U,I=c+eA|0,I=(I=(U=F+e|0)>>>0>>0?I+1|0:I)+_|0,J=pA(d^(CA=c=U+N|0),(c=c>>>0>>0?I+1|0:I)^o,16),I=w+(_=h)|0,I=(o=k+J|0)>>>0>>0?I+1|0:I,k=o,U=I,x=pA(o^N,I^D,63),o=h,D=y,I=u+nA|0,F=w=O+W|0,I=(I=w>>>0>>0?I+1|0:I)+H|0,N=pA((u=w=w+y|0)^V,(w=w>>>0>>0?I+1|0:I)^P,32),I=(I=G)+(G=h)|0,e=H,H=I=(y=N)>>>0>(F=y+BA|0)>>>0?I+1|0:I,P=pA(D^F,e^I,24),e=I=h,y=I,I=w+C|0,I=(I=(u=u+IA|0)>>>0>>0?I+1|0:I)+y|0,w=pA((y=w=u+P|0)^N,(u=y>>>0>>0?I+1|0:I)^G,16),I=H+(N=h)|0,I=F>>>0>(G=F+w|0)>>>0?I+1|0:I,G=(F=G)^P,P=I,d=pA(G,I^e,63),H=h,V=r,I=l+fA|0,I=(I=(G=R+j|0)>>>0>>0?I+1|0:I)+t|0,r=pA((D=G=(l=G)+r|0)^oA,(G=D>>>0>>0?I+1|0:I)^b,32),I=z+(l=h)|0,e=t,t=I=(b=S+r|0)>>>0>>0?I+1|0:I,R=pA(V^b,e^I,24),S=I=h,e=I,I=G+cA|0,I=(I=(D=D+q|0)>>>0>>0?I+1|0:I)+e|0,z=pA((e=G=D+R|0)^r,(G=l)^(l=e>>>0>>0?I+1|0:I),16),I=t+(D=h)|0,S=pA((t=G=b+z|0)^R,(I=t>>>0>>0?I+1|0:I)^S,63),G=h,b=I,I=p+B|0,I=(I=(r=K+gA|0)>>>0>>0?I+1|0:I)+v|0,f=I=(r=r+f|0)>>>0>>0?I+1|0:I,R=pA(r^AA,I^m,32),I=Y+(v=h)|0,I=(m=M+R|0)>>>0>>0?I+1|0:I,M=m,Y=p,p=I,I=pA(m^gA,Y^I,24),gA=i[g+204>>2],V=I,m=I,r=I+r|0,I=(Y=h)+f|0,I=(I=r>>>0>>0?I+1|0:I)+gA|0,I=(f=r+i[g+200>>2]|0)>>>0>>0?I+1|0:I,r=v,v=I,gA=pA(f^R,r^I,16),I=p+(m=h)|0,p=r=M+gA|0,R=pA(V^r,(M=r>>>0>>0?I+1|0:I)^Y,63),r=I=h,Z=t,V=w,I=c+a|0,w=t=T+CA|0,I=(I=t>>>0>>0?I+1|0:I)+r|0,AA=pA(V^(Y=t=t+R|0),(t=t>>>0>>0?I+1|0:I)^N,32),I=(w=h)+b|0,N=I=(c=Z+(N=AA)|0)>>>0>>0?I+1|0:I,r=pA(R^c,r^I,24),BA=I=h,b=I,V=r,I=t+C|0,I=(I=(r=Y+IA|0)>>>0>>0?I+1|0:I)+b|0,b=t=V+r|0,AA=pA(t^AA,(r=t>>>0>>0?I+1|0:I)^w,16),I=N+(R=h)|0,N=t=c+AA|0,w=pA(V^t,(Y=t>>>0>>0?I+1|0:I)^BA,63),c=h,V=x,I=o+B|0,I=(I=(t=K+x|0)>>>0>>0?I+1|0:I)+u|0,D=pA((x=t=t+y|0)^z,(t=t>>>0>>0?I+1|0:I)^D,32),I=M+(y=h)|0,I=p>>>0>(u=p+D|0)>>>0?I+1|0:I,p=u,u=o,o=I,u=pA(V^p,u^I,24),z=I=h,M=I,V=u,I=t+fA|0,I=(I=(u=x+j|0)>>>0>>0?I+1|0:I)+M|0,BA=t=V+u|0,W=pA(t^D,(M=t>>>0>>0?I+1|0:I)^y,16),I=o+(y=h)|0,I=(t=p+W|0)>>>0

>>0?I+1|0:I,p=t,u=I,D=pA(V^t,I^z,63),o=h,I=H+cA|0,I=(I=(t=d+q|0)>>>0>>0?I+1|0:I)+l|0,I=(t=t+e|0)>>>0>>0?I+1|0:I,e=t,t=I,x=pA(e^gA,I^m,32),I=U+(l=h)|0,U=H,H=I=k>>>0>(m=k+x|0)>>>0?I+1|0:I,I=pA((k=m)^d,U^I,24),d=i[g+236>>2],V=I,m=I,e=I+e|0,I=(U=h)+t|0,I=(I=e>>>0>>0?I+1|0:I)+d|0,I=(t=e+i[g+232>>2]|0)>>>0>>0?I+1|0:I,m=t,e=l,l=I,z=pA(t^x,e^I,16),I=H+(e=h)|0,x=pA(V^(d=t=k+z|0),(t=t>>>0>>0?I+1|0:I)^U,63),H=h,V=S,I=G+v|0,I=(I=(k=f+S|0)>>>0>>0?I+1|0:I)+(U=i[g+164>>2])|0,S=pA((U=k=(f=k)+i[g+160>>2]|0)^J,(k=f>>>0>k>>>0?I+1|0:I)^_,32),I=P+(f=h)|0,I=F>>>0>(_=F+S|0)>>>0?I+1|0:I,F=G,G=I,F=pA(V^_,F^I,24),P=I=h,v=I,I=k+iA|0,I=(I=(U=U+L|0)>>>0>>0?I+1|0:I)+v|0,U=pA((gA=k=U+F|0)^S,(k=k>>>0>>0?I+1|0:I)^f,16),I=G+(f=h)|0,I=(v=_+U|0)>>>0<_>>>0?I+1|0:I,_=v,v=I,S=pA(_^F,I^P,63),G=h,P=U,I=o+r|0,I=(U=D+b|0)>>>0>>0?I+1|0:I,b=U,I=I+(F=i[g+132>>2])|0,I=(U=U+i[g+128>>2]|0)>>>0>>0?I+1|0:I,b=U,r=f,f=I,P=pA(P^U,r^I,32),I=(I=t)+(t=h)|0,r=o,o=I=(F=P)>>>0>(U=F+d|0)>>>0?I+1|0:I,D=pA(U^D,r^I,24),r=I=h,I=f+nA|0,I=(I=(b=b+O|0)>>>0>>0?I+1|0:I)+r|0,J=pA((CA=f=b+D|0)^P,(f=f>>>0>>0?I+1|0:I)^t,16),I=o+(F=h)|0,I=(t=U+J|0)>>>0>>0?I+1|0:I,U=t,b=I,d=pA(t^D,I^r,63),t=h,I=M+E|0,M=o=X+BA|0,I=(I=o>>>0>>0?I+1|0:I)+H|0,r=pA((D=o=o+x|0)^AA,(o=o>>>0>>0?I+1|0:I)^R,32),I=v+(M=h)|0,I=_>>>0>(P=_+r|0)>>>0?I+1|0:I,_=P,P=H,H=I,I=pA(_^x,P^I,24),R=i[g+156>>2],x=I,P=I,D=I+D|0,I=(v=h)+o|0,I=(I=D>>>0

>>0?I+1|0:I)+R|0,I=(o=D+i[g+152>>2]|0)>>>0>>0?I+1|0:I,P=o,D=M,M=I,AA=pA(o^r,D^I,16),I=H+(D=h)|0,I=(o=_+AA|0)>>>0<_>>>0?I+1|0:I,_=o,r=v,v=I,x=pA(x^o,r^I,63),o=h,I=G+l|0,l=H=m+S|0,I=(I=H>>>0>>0?I+1|0:I)+(r=i[g+204>>2])|0,l=I=(H=H+i[g+200>>2]|0)>>>0>>0?I+1|0:I,R=pA(H^W,I^y,32),I=Y+(m=h)|0,r=G,G=I=(y=N+R|0)>>>0>>0?I+1|0:I,r=pA(y^S,r^I,24),N=I=h,S=r,I=I+l|0,I=(I=(r=r+H|0)>>>0>>0?I+1|0:I)+(Y=i[g+148>>2])|0,I=(H=r+i[g+144>>2]|0)>>>0>>0?I+1|0:I,l=H,r=m,m=I,BA=pA(H^R,r^I,16),I=G+(r=h)|0,G=N,N=I=y>>>0>(H=y+BA|0)>>>0?I+1|0:I,Y=pA(S^(y=H),G^I,63),G=h,S=w,I=c+k|0,I=(I=(H=w+gA|0)>>>0>>0?I+1|0:I)+(R=i[g+196>>2])|0,R=H=(w=H)+i[g+192>>2]|0,e=pA(H^z,(w=w>>>0>H>>>0?I+1|0:I)^e,32),I=u+(k=h)|0,u=H=p+e|0,H=pA(S^H,(I=p>>>0>H>>>0?I+1|0:I)^c,24),p=I,z=i[g+220>>2],$=H,Z=u,V=e,I=(c=h)+w|0,I=(I=(e=H+R|0)>>>0>>0?I+1|0:I)+(S=z)|0,gA=pA(V^(e=H=(u=i[g+216>>2])+(w=e)|0),(H=k)^(k=w>>>0>e>>>0?I+1|0:I),16),I=(I=p)+(p=h)|0,R=I=(w=gA)>>>0>(H=Z+w|0)>>>0?I+1|0:I,I=pA($^H,I^c,63),W=i[g+236>>2],V=I,c=I,S=I+CA|0,I=(w=h)+f|0,I=(I=c>>>0>S>>>0?I+1|0:I)+W|0,AA=pA((S=c=(f=S)+i[g+232>>2]|0)^AA,(c=c>>>0>>0?I+1|0:I)^D,32),I=N+(f=h)|0,N=w,w=I=y>>>0>(D=y+AA|0)>>>0?I+1|0:I,D=I=pA(V^(y=D),N^I,24),S=I+S|0,I=(N=h)+c|0,I=z+(D>>>0>S>>>0?I+1|0:I)|0,z=c=u+S|0,AA=pA(c^AA,(S=f)^(f=c>>>0>>0?I+1|0:I),16),I=w+(u=h)|0,w=N,N=I=(c=y+AA|0)>>>0>>0?I+1|0:I,w=pA(D^(y=c),w^I,63),c=h,I=t+nA|0,I=(I=(D=d+O|0)>>>0>>0?I+1|0:I)+M|0,S=D=D+P|0,r=pA(D^BA,(M=D>>>0

>>0?I+1|0:I)^r,32),I=R+(P=h)|0,I=H>>>0>(D=H+r|0)>>>0?I+1|0:I,H=D,R=t,t=I,R=pA(D^d,R^I,24),d=I=h,D=I,V=r,I=M+cA|0,I=(I=(r=S+q|0)>>>0>>0?I+1|0:I)+D|0,W=pA(V^(BA=M=r+R|0),(M=r>>>0>M>>>0?I+1|0:I)^P,16),I=t+(P=h)|0,r=I=H>>>0>(D=H+W|0)>>>0?I+1|0:I,R=pA(D^R,I^d,63),H=h,I=o+a|0,I=(I=(t=x+T|0)>>>0>>0?I+1|0:I)+m|0,S=pA((m=t=t+l|0)^gA,(t=t>>>0>>0?I+1|0:I)^p,32),I=b+(p=h)|0,I=(l=U+S|0)>>>0>>0?I+1|0:I,U=l,l=o,o=I,b=pA(U^x,l^I,24),x=I=h,l=I,I=t+B|0,I=(I=(m=m+K|0)>>>0>>0?I+1|0:I)+l|0,l=t=m+b|0,d=pA(t^S,(d=p)^(p=t>>>0>>0?I+1|0:I),16),I=o+(m=h)|0,I=(t=U+d|0)>>>0>>0?I+1|0:I,U=t,o=t^b,b=I,S=pA(o,I^x,63),t=h,V=Y,I=G+k|0,k=o=e+Y|0,I=(I=o>>>0>>0?I+1|0:I)+(x=i[g+156>>2])|0,k=I=(o=o+i[g+152>>2]|0)>>>0>>0?I+1|0:I,Y=pA(o^J,I^F,32),I=v+(F=h)|0,I=(e=_+Y|0)>>>0<_>>>0?I+1|0:I,_=e,v=G,G=I,e=pA(V^e,v^I,24),v=I=h,J=e,I=I+k|0,I=(I=(e=o+e|0)>>>0>>0?I+1|0:I)+(x=i[g+204>>2])|0,gA=o=e+i[g+200>>2]|0,e=pA(o^Y,(k=o>>>0>>0?I+1|0:I)^F,16),I=G+(F=h)|0,G=o=_+e|0,Y=pA(J^o,(_=o>>>0<_>>>0?I+1|0:I)^v,63),o=h,x=R,I=f+C|0,I=(I=(v=z+IA|0)>>>0>>0?I+1|0:I)+H|0,v=I=(f=v+R|0)>>>0>>0?I+1|0:I,R=pA(f^e,I^F,32),I=b+(F=h)|0,I=(e=U+R|0)>>>0>>0?I+1|0:I,U=e,b=H,H=I,e=pA(x^e,b^I,24),b=I=h,J=e,I=I+v|0,I=(I=(e=f+e|0)>>>0>>0?I+1|0:I)+(x=i[g+132>>2])|0,CA=pA((z=f=e+i[g+128>>2]|0)^R,(f=f>>>0>>0?I+1|0:I)^F,16),I=H+(v=h)|0,I=(F=U+CA|0)>>>0>>0?I+1|0:I,U=F,F=I,x=pA(J^U,I^b,63),H=h,I=M+fA|0,I=(I=(b=j+BA|0)>>>0>>0?I+1|0:I)+t|0,R=pA((e=M=b+S|0)^AA,(M=b>>>0>e>>>0?I+1|0:I)^u,32),I=_+(u=h)|0,I=G>>>0>(b=G+R|0)>>>0?I+1|0:I,G=b,b=t,t=I,I=pA(G^S,b^I,24),S=i[g+164>>2],J=I,b=I,e=I+e|0,I=(_=h)+M|0,I=(I=e>>>0>>0?I+1|0:I)+S|0,I=e>>>0>(M=e+i[g+160>>2]|0)>>>0?I+1|0:I,e=u,u=I,b=pA(M^R,e^I,16),I=t+(e=h)|0,t=_,_=I=G>>>0>(R=G+b|0)>>>0?I+1|0:I,t=pA(J^R,t^I,63),G=h,J=Y,I=o+p|0,I=(I=(Y=l+Y|0)>>>0>>0?I+1|0:I)+(S=i[g+196>>2])|0,S=pA((Y=p=(l=Y)+i[g+192>>2]|0)^W,(p=p>>>0>>0?I+1|0:I)^P,32),I=N+(l=h)|0,N=o,o=I=y>>>0>(P=y+S|0)>>>0?I+1|0:I,P=pA(J^(y=P),N^I,24),AA=I=h,N=I,J=P,I=p+E|0,I=(I=(P=Y+X|0)>>>0>>0?I+1|0:I)+N|0,W=pA((BA=p=J+P|0)^S,(p=p>>>0

>>0?I+1|0:I)^l,16),I=o+(l=h)|0,I=y>>>0>(N=y+W|0)>>>0?I+1|0:I,Y=pA(J^(y=N),I^AA,63),o=h,N=I,J=w,I=c+k|0,I=(I=(P=w+gA|0)>>>0>>0?I+1|0:I)+(S=i[g+148>>2])|0,d=pA((S=w=(k=P)+i[g+144>>2]|0)^d,(w=w>>>0>>0?I+1|0:I)^m,32),I=r+(k=h)|0,r=c,c=I=D>>>0>(m=D+d|0)>>>0?I+1|0:I,D=pA(J^m,r^I,24),r=I=h,J=D,I=w+iA|0,I=(I=(D=S+L|0)>>>0>>0?I+1|0:I)+r|0,P=w=J+D|0,d=pA(w^d,(S=k)^(k=w>>>0>>0?I+1|0:I),16),I=c+(D=h)|0,r=pA(J^(c=w=m+d|0),(m=c>>>0>>0?I+1|0:I)^r,63),S=I=h,w=I,J=y,I=f+E|0,I=(I=(y=X+z|0)>>>0>>0?I+1|0:I)+w|0,z=f=y+r|0,e=pA(f^b,(w=f>>>0>>0?I+1|0:I)^e,32),I=(f=h)+N|0,N=I=(y=J+e|0)>>>0>>0?I+1|0:I,r=pA(r^y,S^I,24),S=I=h,b=I,J=e,I=w+fA|0,I=(I=(e=j+z|0)>>>0>>0?I+1|0:I)+b|0,z=w=e+r|0,gA=pA(J^w,(b=f)^(f=w>>>0>>0?I+1|0:I),16),I=N+(b=h)|0,N=I=(w=y+gA|0)>>>0>>0?I+1|0:I,S=pA((y=w)^r,I^S,63),w=h,I=H+cA|0,I=(I=(e=x+q|0)>>>0>>0?I+1|0:I)+u|0,M=I=(e=e+M|0)>>>0>>0?I+1|0:I,r=pA(e^W,I^l,32),I=m+(l=h)|0,I=c>>>0>(u=c+r|0)>>>0?I+1|0:I,c=u,u=H,H=I,I=pA(c^x,u^I,24),x=i[g+204>>2],J=I,u=I,e=I+e|0,I=(m=h)+M|0,I=(I=u>>>0>e>>>0?I+1|0:I)+x|0,W=pA((AA=M=e+i[g+200>>2]|0)^r,(M=e>>>0>M>>>0?I+1|0:I)^l,16),I=H+(l=h)|0,r=m,m=I=c>>>0>(u=c+W|0)>>>0?I+1|0:I,r=pA(J^u,r^I,63),H=h,x=t,I=p+G|0,I=(I=(c=t+BA|0)>>>0>>0?I+1|0:I)+(e=i[g+220>>2])|0,D=pA((e=t=c+i[g+216>>2]|0)^d,(t=t>>>0>>0?I+1|0:I)^D,32),I=F+(c=h)|0,I=(p=U+D|0)>>>0>>0?I+1|0:I,U=G,G=I,I=pA(x^p,U^I,24),x=i[g+156>>2],d=I,F=I,e=I+e|0,I=(U=h)+t|0,I=(I=F>>>0>e>>>0?I+1|0:I)+x|0,BA=t=e+i[g+152>>2]|0,J=pA(t^D,(F=t>>>0>>0?I+1|0:I)^c,16),I=G+(e=h)|0,I=(t=p+J|0)>>>0

>>0?I+1|0:I,p=t,c=U,U=I,G=pA(d^t,c^I,63),c=h,d=Y,I=o+k|0,k=t=P+Y|0,I=(I=t>>>0

>>0?I+1|0:I)+(D=i[g+132>>2])|0,k=I=(t=t+i[g+128>>2]|0)>>>0>>0?I+1|0:I,Y=pA(t^CA,I^v,32),I=_+(v=h)|0,D=pA(d^(_=P=R+Y|0),(P=o)^(o=_>>>0>>0?I+1|0:I),24),P=I=h,d=D,I=I+k|0,k=D=t+D|0,I=(I=D>>>0>>0?I+1|0:I)+(R=i[g+196>>2])|0,D=t=D+i[g+192>>2]|0,R=pA(t^Y,(R=v)^(v=t>>>0>>0?I+1|0:I),16),I=o+(k=h)|0,I=(t=_+R|0)>>>0<_>>>0?I+1|0:I,_=t,o=P,P=I,x=pA(d^t,o^I,63),t=h,Y=r,I=f+a|0,f=o=T+z|0,I=(I=o>>>0>>0?I+1|0:I)+H|0,I=(o=o+r|0)>>>0>>0?I+1|0:I,f=k,k=I,R=pA(o^R,f^I,32),I=U+(f=h)|0,U=r=p+R|0,r=pA(Y^r,(I=p>>>0>r>>>0?I+1|0:I)^H,24),p=I,z=i[g+148>>2],V=r,d=U,I=k+(H=h)|0,I=(I=(r=o+r|0)>>>0>>0?I+1|0:I)+(Y=z)|0,CA=o=(U=i[g+144>>2])+r|0,QA=pA(o^R,(k=f)^(f=o>>>0>>0?I+1|0:I),16),I=(r=h)+p|0,R=o=d+(k=QA)|0,o=pA(V^o,(Y=o>>>0>>0?I+1|0:I)^H,63),k=h,d=G,I=c+M|0,I=(H=G+AA|0)>>>0>>0?I+1|0:I,G=H,I=I+(p=i[g+236>>2])|0,b=pA((M=H=H+i[g+232>>2]|0)^gA,(H=H>>>0>>0?I+1|0:I)^b,32),I=P+(G=h)|0,I=(p=_+b|0)>>>0<_>>>0?I+1|0:I,_=c,c=I,P=pA(d^p,_^I,24),d=I=h,_=I,I=H+nA|0,I=(I=(M=M+O|0)>>>0>>0?I+1|0:I)+_|0,gA=H=M+P|0,H=pA(H^b,(_=H>>>0>>0?I+1|0:I)^G,16),I=c+(M=h)|0,b=G=p+H|0,d=pA(c=G^P,(P=p>>>0>G>>>0?I+1|0:I)^d,63),G=h,V=x,I=F+B|0,p=c=K+BA|0,I=(I=c>>>0>>0?I+1|0:I)+t|0,p=I=(c=c+x|0)>>>0

>>0?I+1|0:I,x=pA(c^W,I^l,32),I=N+(F=h)|0,I=y>>>0>(l=y+x|0)>>>0?I+1|0:I,N=pA(V^(y=l),I^t,24),l=I,AA=i[g+164>>2],$=N,Z=y,I=p+(t=h)|0,I=(I=(N=c+N|0)>>>0>>0?I+1|0:I)+AA|0,N=c=(y=i[g+160>>2])+(p=N)|0,BA=pA(c^x,(V=F)^(F=c>>>0

>>0?I+1|0:I),16),I=(I=l)+(l=h)|0,I=(c=Z+(p=BA)|0)>>>0

>>0?I+1|0:I,p=c,x=t,t=I,x=pA($^c,x^I,63),c=h,V=S,I=w+iA|0,I=(I=(S=S+L|0)>>>0>>0?I+1|0:I)+v|0,v=I=D>>>0>(S=D+S|0)>>>0?I+1|0:I,W=pA(S^J,I^e,32),I=m+(e=h)|0,m=D=u+W|0,D=pA(V^D,(J=w)^(w=u>>>0>D>>>0?I+1|0:I),24),J=I=h,u=I,V=D,I=v+C|0,I=(I=(D=S+IA|0)>>>0>>0?I+1|0:I)+u|0,u=I=(v=V+D|0)>>>0>>0?I+1|0:I,W=pA(v^W,I^e,16),I=w+(e=h)|0,I=(D=m+W|0)>>>0>>0?I+1|0:I,m=D,D=I,S=pA(V^m,I^J,63),J=I=h,w=I,V=H,I=f+iA|0,I=(I=(H=L+CA|0)>>>0>>0?I+1|0:I)+w|0,M=pA(V^(f=L=H+S|0),(H=H>>>0>f>>>0?I+1|0:I)^M,32),I=t+(w=h)|0,iA=L=p+M|0,p=I=p>>>0>L>>>0?I+1|0:I,J=L=pA(S^L,J^I,24),I=(t=h)+H|0,I=(I=(f=f+L|0)>>>0>>0?I+1|0:I)+z|0,z=pA((S=L=f+U|0)^M,(f=U>>>0>S>>>0?I+1|0:I)^w,16),I=(U=h)+p|0,iA=L=(H=z)+iA|0,w=pA(J^L,(H=H>>>0>L>>>0?I+1|0:I)^t,63),p=h,J=o,I=_+k|0,I=(I=(L=o+gA|0)>>>0>>0?I+1|0:I)+(t=i[g+196>>2])|0,l=pA((M=L=(o=L)+i[g+192>>2]|0)^BA,(L=o>>>0>M>>>0?I+1|0:I)^l,32),I=D+(t=h)|0,_=k,k=I=(o=m+l|0)>>>0>>0?I+1|0:I,D=I=pA(J^o,_^I,24),m=l,l=M,M=I,l=l+I|0,I=(_=h)+L|0,I=AA+(l>>>0>>0?I+1|0:I)|0,gA=L=y+l|0,AA=pA(m^L,(M=y>>>0>L>>>0?I+1|0:I)^t,16),I=k+(l=h)|0,D=pA(D^(k=L=o+AA|0),(t=_)^(_=o>>>0>k>>>0?I+1|0:I),63),L=h,I=G+nA|0,I=(I=(t=d+O|0)>>>0>>0?I+1|0:I)+F|0,N=pA((y=t=t+N|0)^W,(t=t>>>0>>0?I+1|0:I)^e,32),I=Y+(o=h)|0,e=G,G=I=(F=R+N|0)>>>0>>0?I+1|0:I,e=pA(F^d,e^I,24),R=I=h,m=I,I=t+E|0,I=(I=(y=y+X|0)>>>0>>0?I+1|0:I)+m|0,m=t=y+e|0,d=pA(t^N,(y=t>>>0>>0?I+1|0:I)^o,16),I=G+(N=h)|0,o=pA((o=e)^(e=t=F+d|0),(t=t>>>0>>0?I+1|0:I)^R,63),G=h,I=c+B|0,I=(I=(F=K+x|0)>>>0>>0?I+1|0:I)+u|0,R=F=F+v|0,r=pA(F^QA,(v=F>>>0>>0?I+1|0:I)^r,32),I=P+(F=h)|0,I=(u=b+r|0)>>>0>>0?I+1|0:I,b=c,c=I,P=pA(u^x,b^I,24),Y=I=h,b=I,x=P,I=v+C|0,I=(I=(P=R+IA|0)>>>0>>0?I+1|0:I)+b|0,P=pA((R=v=x+P|0)^r,(v=v>>>0

>>0?I+1|0:I)^F,16),I=c+(F=h)|0,I=u>>>0>(b=u+P|0)>>>0?I+1|0:I,u=b,b=I,r=pA(x^u,I^Y,63),c=h,J=D,x=e,Y=P,I=f+fA|0,I=(I=(P=S+j|0)>>>0>>0?I+1|0:I)+L|0,D=pA(Y^(e=f=P+D|0),(f=e>>>0

>>0?I+1|0:I)^F,32),I=(I=t)+(t=h)|0,P=L,L=I=(F=x+D|0)>>>0>>0?I+1|0:I,I=pA(J^F,P^I,24),Y=i[g+220>>2],J=I,x=D,P=e,e=I,D=P+I|0,I=(P=h)+f|0,I=(I=e>>>0>D>>>0?I+1|0:I)+Y|0,x=pA(x^(S=f=(e=D)+i[g+216>>2]|0),(f=f>>>0>>0?I+1|0:I)^t,16),I=L+(e=h)|0,I=(t=F+x|0)>>>0>>0?I+1|0:I,F=t,D=P,P=I,L=pA(J^t,D^I,63),t=h,J=o,I=G+M|0,M=D=o+gA|0,I=(I=D>>>0>>0?I+1|0:I)+(Y=i[g+204>>2])|0,Y=pA((D=o=D+i[g+200>>2]|0)^z,(o=o>>>0>>0?I+1|0:I)^U,32),I=b+(U=h)|0,I=u>>>0>(M=u+Y|0)>>>0?I+1|0:I,u=G,G=I,b=pA(J^M,u^I,24),z=I=h,u=I,J=b,I=o+cA|0,I=(I=(b=D+q|0)>>>0>>0?I+1|0:I)+u|0,gA=o=J+b|0,BA=pA(o^Y,(u=U)^(U=o>>>0>>0?I+1|0:I),16),I=G+(u=h)|0,I=(o=M+BA|0)>>>0>>0?I+1|0:I,M=o,b=I,o=pA(J^o,I^z,63),G=h,J=r,I=c+y|0,y=r=r+m|0,I=(I=r>>>0>>0?I+1|0:I)+(Y=z=i[g+156>>2])|0,Y=pA((r=m=(D=i[g+152>>2])+r|0)^AA,(m=l)^(l=y>>>0>r>>>0?I+1|0:I),32),I=(I=H)+(H=h)|0,I=(y=Y)>>>0>(m=y+iA|0)>>>0?I+1|0:I,y=c,c=I,iA=pA(J^m,y^I,24),AA=I=h,y=I,J=iA,I=l+a|0,I=(I=(r=r+T|0)>>>0>>0?I+1|0:I)+y|0,W=pA((iA=l=r+iA|0)^Y,(l=r>>>0>l>>>0?I+1|0:I)^H,16),I=c+(y=h)|0,Y=pA(J^(c=H=m+W|0),(m=c>>>0>>0?I+1|0:I)^AA,63),H=h,J=w,I=p+v|0,v=r=w+R|0,I=(I=r>>>0>>0?I+1|0:I)+(AA=i[g+236>>2])|0,R=pA((r=w=r+i[g+232>>2]|0)^d,(v=r>>>0>>0?I+1|0:I)^N,32),I=_+(N=h)|0,_=w=k+R|0,w=pA(J^w,(I=w>>>0>>0?I+1|0:I)^p,24),p=I,d=i[g+132>>2],V=w,J=_,I=(k=h)+v|0,I=(I=(r=w+r|0)>>>0>>0?I+1|0:I)+d|0,I=(w=(_=i[g+128>>2])+r|0)>>>0>>0?I+1|0:I,v=w,r=N,N=I,AA=pA(w^R,r^I,16),I=(I=p)+(p=h)|0,I=(w=J+(r=AA)|0)>>>0>>0?I+1|0:I,r=w,w=k,k=I,J=I=pA(V^r,w^I,63),R=I,S=I+S|0,I=(w=h)+f|0,I=d+(S>>>0>>0?I+1|0:I)|0,S=pA((R=f=_+S|0)^BA,(f=f>>>0<_>>>0?I+1|0:I)^u,32),I=m+(_=h)|0,I=c>>>0>(u=c+S|0)>>>0?I+1|0:I,c=u,u=w,w=I,u=pA(J^c,u^I,24),d=I=h,m=I,J=u,I=f+B|0,I=(I=(u=R+K|0)>>>0>>0?I+1|0:I)+m|0,BA=pA((R=f=J+u|0)^S,(f=f>>>0>>0?I+1|0:I)^_,16),I=w+(_=h)|0,u=I=c>>>0>(m=c+BA|0)>>>0?I+1|0:I,S=pA(J^m,I^d,63),w=h,J=L,I=t+U|0,I=(I=(c=L+gA|0)>>>0>>0?I+1|0:I)+(d=i[g+148>>2])|0,y=pA((d=L=c+i[g+144>>2]|0)^W,(L=c>>>0>L>>>0?I+1|0:I)^y,32),I=k+(c=h)|0,V=I=pA(J^(k=U=r+y|0),(U=t)^(t=r>>>0>k>>>0?I+1|0:I),24),J=y,y=I,r=I+d|0,I=(U=h)+L|0,I=z+(r>>>0>>0?I+1|0:I)|0,d=pA(J^(r=L=r+D|0),(y=D>>>0>r>>>0?I+1|0:I)^c,16),I=t+(D=h)|0,t=U,U=I=k>>>0>(L=k+d|0)>>>0?I+1|0:I,t=pA(V^(k=L),t^I,63),c=h,J=o,I=G+l|0,I=(I=(L=o+iA|0)>>>0>>0?I+1|0:I)+(z=i[g+164>>2])|0,z=pA((l=L=(o=L)+i[g+160>>2]|0)^AA,(L=o>>>0>l>>>0?I+1|0:I)^p,32),I=P+(o=h)|0,I=(p=F+z|0)>>>0>>0?I+1|0:I,F=G,G=I,P=pA(J^p,F^I,24),iA=I=h,F=I,I=L+C|0,I=(I=(l=l+IA|0)>>>0>>0?I+1|0:I)+F|0,J=z,z=L=l+P|0,gA=pA(J^L,(F=l>>>0>L>>>0?I+1|0:I)^o,16),I=G+(l=h)|0,I=p>>>0>(L=p+gA|0)>>>0?I+1|0:I,o=(p=L)^P,P=I,o=pA(o,I^iA,63),G=h,J=Y,I=H+E|0,I=(I=(L=Y+X|0)>>>0>>0?I+1|0:I)+N|0,e=pA((Y=L=v+L|0)^x,(L=v>>>0>L>>>0?I+1|0:I)^e,32),I=b+(v=h)|0,I=M>>>0>(N=M+e|0)>>>0?I+1|0:I,M=N,N=H,H=I,b=pA(J^M,N^I,24),x=I=h,N=I,J=b,I=L+nA|0,I=(I=(b=Y+O|0)>>>0>>0?I+1|0:I)+N|0,e=pA((N=L=J+b|0)^e,(Y=v)^(v=b>>>0>N>>>0?I+1|0:I),16),I=H+(b=h)|0,iA=L=M+e|0,Y=pA(J^L,(H=M>>>0>L>>>0?I+1|0:I)^x,63),L=h,J=t,I=c+f|0,f=M=t+R|0,I=(I=M>>>0>>0?I+1|0:I)+(x=i[g+196>>2])|0,b=pA((M=e)^(e=t=f+i[g+192>>2]|0),(t=t>>>0>>0?I+1|0:I)^b,32),I=P+(f=h)|0,P=c,c=I=p>>>0>(M=p+b|0)>>>0?I+1|0:I,I=pA(J^(p=M),P^I,24),R=i[g+204>>2],V=I,J=b,b=I,P=I+e|0,I=(M=h)+t|0,I=(I=b>>>0>P>>>0?I+1|0:I)+R|0,x=t=(b=P)+i[g+200>>2]|0,AA=pA(J^t,(e=f)^(f=t>>>0>>0?I+1|0:I),16),I=c+(b=h)|0,I=(t=p+AA|0)>>>0

>>0?I+1|0:I,p=t,c=M,M=I,t=pA(V^t,c^I,63),c=h,J=o,I=y+G|0,y=e=o+r|0,I=(I=e>>>0>>0?I+1|0:I)+(R=W=i[g+212>>2])|0,r=pA((e=o=(P=i[g+208>>2])+e|0)^BA,(o=o>>>0>>0?I+1|0:I)^_,32),I=(I=H)+(H=h)|0,y=G,G=I=r>>>0>(_=r+iA|0)>>>0?I+1|0:I,I=pA(J^_,y^I,24),R=i[g+220>>2],V=I,J=r,r=e,e=I,r=r+I|0,I=(y=h)+o|0,I=(I=r>>>0>>0?I+1|0:I)+R|0,iA=o=r+i[g+216>>2]|0,r=pA(J^o,(e=o>>>0>>0?I+1|0:I)^H,16),I=G+(R=h)|0,o=y,y=I=(H=_+r|0)>>>0<_>>>0?I+1|0:I,H=pA(V^(_=H),o^I,63),o=h,J=Y,I=F+a|0,I=(I=(G=T+z|0)>>>0>>0?I+1|0:I)+L|0,F=I=(F=G)>>>0>(G=F+Y|0)>>>0?I+1|0:I,d=pA(G^d,I^D,32),I=u+(D=h)|0,u=L,L=I=m>>>0>(Y=m+d|0)>>>0?I+1|0:I,Y=pA(J^(m=Y),u^I,24),u=I=h,J=Y,I=I+F|0,F=Y=G+Y|0,I=(I=Y>>>0>>0?I+1|0:I)+(z=i[g+236>>2])|0,Y=d,d=G=F+i[g+232>>2]|0,z=pA(Y^G,(F=F>>>0>G>>>0?I+1|0:I)^D,16),I=L+(D=h)|0,m=I=(G=m+z|0)>>>0>>0?I+1|0:I,Y=pA(J^G,I^u,63),L=h,J=S,I=w+cA|0,I=(I=(u=S+q|0)>>>0>>0?I+1|0:I)+v|0,I=(u=u+N|0)>>>0>>0?I+1|0:I,N=u,v=I,S=pA(u^gA,I^l,32),I=U+(l=h)|0,I=(u=k+S|0)>>>0>>0?I+1|0:I,k=u,u=w,w=I,u=pA(J^k,u^I,24),gA=I=h,U=I,J=u,I=v+fA|0,I=(I=(u=N+j|0)>>>0>>0?I+1|0:I)+U|0,U=I=u>>>0>(v=J+u|0)>>>0?I+1|0:I,S=pA(v^S,I^l,16),I=w+(l=h)|0,I=(u=k+S|0)>>>0>>0?I+1|0:I,k=u,u=I,N=pA(J^k,I^gA,63),gA=I=h,w=I,J=r,I=f+cA|0,f=r=x+q|0,I=(I=r>>>0>>0?I+1|0:I)+w|0,R=pA(J^(r=q=r+N|0),(q=f>>>0>r>>>0?I+1|0:I)^R,32),I=m+(w=h)|0,I=(f=G+R|0)>>>0>>0?I+1|0:I,G=f,f=I,x=I=pA(N^G,gA^I,24),N=I,r=I+r|0,I=(m=h)+q|0,I=W+(r>>>0>>0?I+1|0:I)|0,R=pA((r=q=r+P|0)^R,(N=P>>>0>r>>>0?I+1|0:I)^w,16),I=f+(P=h)|0,G=pA(x^(f=q=G+R|0),(w=m)^(m=G>>>0>f>>>0?I+1|0:I),63),w=h,J=t,I=c+e|0,I=(I=(q=t+iA|0)>>>0>>0?I+1|0:I)+(x=i[g+164>>2])|0,D=pA((x=q=(t=q)+i[g+160>>2]|0)^z,(q=t>>>0>x>>>0?I+1|0:I)^D,32),I=u+(t=h)|0,I=(e=k+D|0)>>>0>>0?I+1|0:I,k=e,u=c,c=I,I=pA(J^e,u^I,24),z=i[g+196>>2],V=I,J=D,e=I,D=I+x|0,I=(u=h)+q|0,I=(I=e>>>0>D>>>0?I+1|0:I)+z|0,x=pA(J^(D=q=(e=D)+i[g+192>>2]|0),(x=t)^(t=e>>>0>D>>>0?I+1|0:I),16),I=c+(z=h)|0,u=pA(V^(c=q=k+x|0),(k=k>>>0>c>>>0?I+1|0:I)^u,63),q=h,J=H,I=o+F|0,F=e=H+d|0,I=(I=e>>>0>>0?I+1|0:I)+(cA=i[g+204>>2])|0,S=pA((e=H=e+i[g+200>>2]|0)^S,(H=F>>>0>e>>>0?I+1|0:I)^l,32),I=M+(F=h)|0,I=p>>>0>(l=p+S|0)>>>0?I+1|0:I,p=l,l=o,o=I,l=pA(J^p,l^I,24),d=I=h,M=I,J=l,I=H+fA|0,I=(I=(l=e+j|0)>>>0>>0?I+1|0:I)+M|0,S=pA((e=j=J+(H=l)|0)^S,(l=F)^(F=H>>>0>e>>>0?I+1|0:I),16),I=o+(M=h)|0,j=pA(J^(o=j=p+S|0),(p=p>>>0>o>>>0?I+1|0:I)^d,63),H=h,J=Y,I=U+L|0,I=(I=(l=v+Y|0)>>>0>>0?I+1|0:I)+(d=i[g+236>>2])|0,b=pA((Y=v=l+i[g+232>>2]|0)^AA,(v=v>>>0>>0?I+1|0:I)^b,32),I=y+(U=h)|0,I=_>>>0>(l=_+b|0)>>>0?I+1|0:I,_=l,l=L,L=I,y=pA(J^_,l^I,24),l=I=h,d=y,I=v+E|0,I=(I=(y=Y+X|0)>>>0>>0?I+1|0:I)+l|0,I=y>>>0>(X=d+y|0)>>>0?I+1|0:I,y=U,U=I,b=pA((v=X)^b,y^I,16),I=L+(Y=h)|0,y=l,l=I=_>>>0>(X=_+b|0)>>>0?I+1|0:I,X=pA(d^(_=X),y^I,63),L=h,I=N+B|0,I=(I=(y=r+K|0)>>>0>>0?I+1|0:I)+q|0,I=y>>>0>(K=y+u|0)>>>0?I+1|0:I,N=K,y=T+K|0,K=I,I=a+I|0,T=(r=y)>>>0>>0?I+1|0:I,y=u,u=pA(b^N,Y^K,32),I=p+(N=h)|0,q=(o=b=pA(y^(p=K=o+u|0),(K=o>>>0>p>>>0?I+1|0:I)^q,24))+r|0,I=(r=h)+T|0,I=o>>>0>q>>>0?I+1|0:I,o=q,i[g>>2]=o,i[g+4>>2]=I,q=I,I=pA(o^u,I^N,16),y=T=h,i[g+120>>2]=I,i[g+124>>2]=y,T=I,p=I+p|0,I=y+K|0,i[g+80>>2]=p,I=p>>>0>>0?I+1|0:I,i[g+84>>2]=I,sA=g,wA=pA(b^p,I^r,63),i[sA+40>>2]=wA,i[g+44>>2]=h,r=j,I=t+H|0,I=(K=D+j|0)>>>0>>0?I+1|0:I,j=K,I=I+(T=i[g+132>>2])|0,j=I=(K=K+i[g+128>>2]|0)>>>0>>0?I+1|0:I,t=pA(K^R,I^P,32),I=l+(p=h)|0,I=_>>>0>(T=_+t|0)>>>0?I+1|0:I,_=T,T=I,l=pA(r^_,I^H,24),I=j+(y=h)|0,I=(H=l+K|0)>>>0>>0?I+1|0:I,K=(j=i[g+144>>2])+H|0,I=i[g+148>>2]+I|0,I=K>>>0>>0?I+1|0:I,i[g+8>>2]=K,i[g+12>>2]=I,I=pA(t^K,I^p,16),H=K=h,i[g+96>>2]=I,i[g+100>>2]=H,K=I,j=I+_|0,I=H+T|0,I=K>>>0>j>>>0?I+1|0:I,K=j,i[g+88>>2]=K,i[g+92>>2]=I,sA=g,wA=pA(l^K,I^y,63),i[sA+48>>2]=wA,i[g+52>>2]=h,r=O,I=F+L|0,O=K=e+X|0,I=(I=K>>>0>>0?I+1|0:I)+(j=i[g+220>>2])|0,T=K=K+i[g+216>>2]|0,j=r+K|0,K=I=K>>>0>>0?I+1|0:I,I=I+nA|0,j=(H=j)>>>0>>0?I+1|0:I,r=H,T=pA(x^T,K^z,32),I=m+(H=h)|0,L=pA((t=K=f+T|0)^X,(K=f>>>0>t>>>0?I+1|0:I)^L,24),I=(p=h)+j|0,I=L>>>0>(X=r+L|0)>>>0?I+1|0:I,i[g+16>>2]=X,i[g+20>>2]=I,I=pA(X^T,I^H,16),O=X=h,i[g+104>>2]=I,i[g+108>>2]=X,X=I,j=I+t|0,I=K+O|0,K=j,i[g+64>>2]=K,I=X>>>0>K>>>0?I+1|0:I,i[g+68>>2]=I,sA=g,wA=pA(L^K,I^p,63),i[sA+56>>2]=wA,i[g+60>>2]=h,I=w+C|0,I=(I=(K=G+IA|0)>>>0>>0?I+1|0:I)+U|0,X=I=v>>>0>(K=v+K|0)>>>0?I+1|0:I,T=pA(K^S,I^M,32),I=k+(L=h)|0,IA=I=c>>>0>(j=c+T|0)>>>0?I+1|0:I,H=pA(j^G,I^w,24),I=X+(t=h)|0,I=K>>>0>(O=K+H|0)>>>0?I+1|0:I,K=(X=i[g+152>>2])+O|0,I=i[g+156>>2]+I|0,I=K>>>0>>0?I+1|0:I,i[g+24>>2]=K,i[g+28>>2]=I,I=pA(K^T,I^L,16),i[g+112>>2]=I,X=h,i[g+116>>2]=X,K=I+j|0,I=X+IA|0,I=K>>>0>>0?I+1|0:I,i[g+72>>2]=K,i[g+76>>2]=I,sA=g,wA=pA(H^K,I^t,63),i[sA+32>>2]=wA,i[g+36>>2]=h,I=i[g+68>>2]^(n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24)^q,K=i[g+64>>2]^(n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24)^o,Q[0|A]=K,Q[A+1|0]=K>>>8,Q[A+2|0]=K>>>16,Q[A+3|0]=K>>>24,Q[A+4|0]=I,Q[A+5|0]=I>>>8,Q[A+6|0]=I>>>16,Q[A+7|0]=I>>>24,X=1;I=(K=X<<3)+A|0,q=i[(K=g+K|0)>>2]^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),IA=i[(j=K- -64|0)>>2],K=i[j+4>>2]^i[K+4>>2]^(n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24),q^=IA,Q[0|I]=q,Q[I+1|0]=q>>>8,Q[I+2|0]=q>>>16,Q[I+3|0]=q>>>24,Q[I+4|0]=K,Q[I+5|0]=K>>>8,Q[I+6|0]=K>>>16,Q[I+7|0]=K>>>24,8!=(0|(X=X+1|0)););s=g+256|0}function u(A,I,g,B,C,E,a){var r,o,t,e,f,c,y,w,D,p,u,F,_,k,H,G,U,S,b,m,v,M,P,Y,N,R,d,J,x,L,K,X,T,V,q,j,W,O,Z,$,AA,IA=0,gA=0,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0,cA=0,yA=0,sA=0,wA=0,DA=0,hA=0,pA=0,uA=0,FA=0,lA=0,_A=0,kA=0,HA=0,GA=0,UA=0,SA=0,bA=0,mA=0,vA=0,PA=0,YA=0,NA=0,RA=0,dA=0,JA=0,xA=0,LA=0,KA=0,XA=0,TA=0,VA=0,zA=0,jA=0,WA=0,OA=0,ZA=0,$A=0,AI=0,gI=0,BI=0;return s=R=s-560|0,WI(rA=R+352|0,a),_I(d=R+288|0,E,32,0),z(rA,R+320|0,32,0),z(rA,g,B,C),MA(rA,r=R+224|0),IA=n[E+32|0]|n[E+33|0]<<8|n[E+34|0]<<16|n[E+35|0]<<24,QA=n[E+36|0]|n[E+37|0]<<8|n[E+38|0]<<16|n[E+39|0]<<24,nA=n[E+40|0]|n[E+41|0]<<8|n[E+42|0]<<16|n[E+43|0]<<24,gA=n[E+44|0]|n[E+45|0]<<8|n[E+46|0]<<16|n[E+47|0]<<24,EA=n[E+48|0]|n[E+49|0]<<8|n[E+50|0]<<16|n[E+51|0]<<24,iA=n[E+52|0]|n[E+53|0]<<8|n[E+54|0]<<16|n[E+55|0]<<24,oA=n[E+60|0]|n[E+61|0]<<8|n[E+62|0]<<16|n[E+63|0]<<24,E=n[E+56|0]|n[E+57|0]<<8|n[E+58|0]<<16|n[E+59|0]<<24,Q[A+56|0]=E,Q[A+57|0]=E>>>8,Q[A+58|0]=E>>>16,Q[A+59|0]=E>>>24,Q[A+60|0]=oA,Q[A+61|0]=oA>>>8,Q[A+62|0]=oA>>>16,Q[A+63|0]=oA>>>24,E=EA,Q[A+48|0]=E,Q[A+49|0]=E>>>8,Q[A+50|0]=E>>>16,Q[A+51|0]=E>>>24,E=iA,Q[A+52|0]=E,Q[A+53|0]=E>>>8,Q[A+54|0]=E>>>16,Q[A+55|0]=E>>>24,E=nA,Q[A+40|0]=E,Q[A+41|0]=E>>>8,Q[A+42|0]=E>>>16,Q[A+43|0]=E>>>24,E=gA,Q[A+44|0]=E,Q[A+45|0]=E>>>8,Q[A+46|0]=E>>>16,Q[A+47|0]=E>>>24,Q[0|(E=A+32|0)]=IA,Q[E+1|0]=IA>>>8,Q[E+2|0]=IA>>>16,Q[E+3|0]=IA>>>24,IA=QA,Q[E+4|0]=IA,Q[E+5|0]=IA>>>8,Q[E+6|0]=IA>>>16,Q[E+7|0]=IA>>>24,l(r),BA(R,r),II(A,R),WI(rA,a),z(rA,A,64,0),z(rA,g,B,C),MA(rA,A=R+160|0),l(A),Q[0|d]=248&n[0|d],Q[d+31|0]=63&n[d+31|0]|64,TA=uI(A),nA=n[A+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,SA=uI(A+5|0),EA=h,gA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,rA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,LA=uI(A+13|0),oA=h,aA=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,bA=uI(A+18|0),cA=h,NA=uI(A+21|0),B=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,iA=uI(A+26|0),g=h,C=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,KA=uI(d),uA=n[(A=d)+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,RA=uI(A+5|0),kA=h,fA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,tA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,jA=uI(A+13|0),FA=h,sA=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,VA=uI(A+18|0),hA=h,dA=uI(A+21|0),a=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,eA=uI(A+26|0),IA=h,QA=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,W=uI(r),O=n[(A=r)+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,Z=uI(A+5|0),$=h,AA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,PA=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,$A=uI(A+13|0),HA=h,DA=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,AI=uI(A+18|0),yA=h,JA=uI(A+21|0),A=qA(o=QA>>>7|0,0,t=2097151&((3&(A=g))<<30|(g=iA)>>>2),0),g=h,QA=A,C=qA(e=2097151&((3&(A=IA))<<30|(IA=eA)>>>2),0,f=C>>>7|0,0),g=h+g|0,QA=A=QA+C|0,IA=A>>>0>>0?g+1|0:g,A=qA(t,CA,e,CA),C=h,g=(a=qA(c=a>>>5&2097151,0,f,0))+A|0,A=h+C|0,A=g>>>0>>0?A+1|0:A,C=qA(o,0,y=B>>>5&2097151,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,C=g,mA=B,wA=A=B-((g>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(iA=g- -1048576|0)>>>21,A=(A>>21)+IA|0,A=(B=a+QA|0)>>>0>>0?A+1|0:A,a=B,GA=A,vA=IA=A-((B>>>0<4293918720)-1|0)|0,g=IA>>21,UA=(A=qA(o,0,f,0))-(lA=-2097152&(pA=A- -1048576|0))|0,A=((eA=h)-((A>>>0>>0)+(B=eA-((A>>>0<4293918720)-1|0)|0)|0)|0)+g|0,T=IA=UA+((2097151&IA)<<11|(QA=a- -1048576|0)>>>21)|0,eA=A=IA>>>0>>0?A+1|0:A,g=qA(IA,A,-683901,-1),IA=h,J=(2097151&B)<<11|pA>>>21,pA=A=B>>21,A=(B=qA(J,A,136657,0))+g|0,g=h+IA|0,UA=A,lA=A>>>0>>0?g+1|0:g,A=qA(w=2097151&((1&(A=FA))<<31|jA>>>1),0,t,CA),g=h,IA=qA(D=tA>>>4&2097151,0,f,0),B=h+g|0,B=(A=IA+A|0)>>>0>>0?B+1|0:B,IA=qA(p=sA>>>6&2097151,0,y,0),g=h+B|0,g=(A=IA+A|0)>>>0>>0?g+1|0:g,FA=A,IA=qA(u=2097151&dA,B=0,F=2097151&((7&(A=cA))<<29|bA>>>3),0),A=h+g|0,g=A=(B=FA+IA|0)>>>0>>0?A+1|0:A,A=(IA=qA(_=2097151&((7&(A=hA))<<29|VA>>>3),0,k=2097151&NA,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,IA=qA(c,0,H=aA>>>6&2097151,0),g=h+B|0,g=(A=IA+A|0)>>>0>>0?g+1|0:g,B=A,IA=qA(e,CA,G=2097151&((1&(A=oA))<<31|LA>>>1),0),A=h+g|0,A=(B=B+IA|0)>>>0>>0?A+1|0:A,g=(IA=qA(o,0,U=rA>>>4&2097151,0))+B|0,B=h+A|0,cA=g,rA=g>>>0>>0?B+1|0:B,A=qA(t,CA,D,0),g=h,B=qA(S=fA>>>7&2097151,0,f,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(IA=qA(y,0,w,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=(IA=qA(p,0,k,CA))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(IA=qA(u,CA,H,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(IA=qA(F,CA,_,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,IA=qA(c,0,G,CA),g=h+A|0,g=(B=IA+B|0)>>>0>>0?g+1|0:g,IA=qA(e,CA,U,0),A=h+g|0,A=(B=IA+B|0)>>>0>>0?A+1|0:A,g=(IA=qA(o,0,b=gA>>>7&2097151,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,IA=g,oA=B,A=B-((g>>>0<4293918720)-1|0)|0,B=g- -1048576|0,aA=A,g=cA,cA=(2097151&A)<<11|B>>>21,A=(A>>21)+rA|0,A=(gA=(g=gA=g+cA|0)>>>0>>0?A+1|0:A)+lA|0,A=g>>>0>(rA=g+UA|0)>>>0?A+1|0:A,gA=gA-((g>>>0<4293918720)-1|0)|0,tA=rA-(g=-2097152&(fA=g- -1048576|0))|0,rA=A-((g>>>0>rA>>>0)+gA|0)|0,cA=GA-(((A=-2097152&QA)>>>0>a>>>0)+vA|0)|0,x=a-A|0,a=qA(J,pA,-997805,-1),g=h+oA|0,g=(A=a+IA|0)>>>0>>0?g+1|0:g,a=(IA=qA(T,eA,136657,0))+A|0,A=h+g|0,A=a>>>0>>0?A+1|0:A,g=a,a=qA(x,cA,-683901,-1),A=h+A|0,QA=(g=g+a|0)-(B&=-2097152)|0,oA=(A=g>>>0>>0?A+1|0:A)-((g>>>0>>0)+aA|0)|0,A=qA(t,CA,S,0),B=h,g=A,a=qA(m=2097151&((3&(A=kA))<<30|RA>>>2),0,f,0),A=h+B|0,A=(g=g+a|0)>>>0>>0?A+1|0:A,a=qA(y,0,D,0),B=h+A|0,B=(g=a+g|0)>>>0>>0?B+1|0:B,A=(a=qA(w,CA,k,CA))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(a=qA(p,0,F,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,a=qA(u,CA,G,CA),g=h+A|0,g=(B=a+B|0)>>>0>>0?g+1|0:g,a=qA(_,CA,H,0),A=h+g|0,A=(B=a+B|0)>>>0>>0?A+1|0:A,g=(a=qA(c,0,U,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(a=qA(e,CA,b,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=A,a=qA(o,0,v=2097151&((3&(A=EA))<<30|SA>>>2),0),A=h+g|0,EA=B=B+a|0,IA=B>>>0>>0?A+1|0:A,A=qA(t,CA,m,0),g=h,B=qA(M=uA>>>5&2097151,0,f,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=qA(y,0,S,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(a=qA(D,0,k,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(w,CA,F,CA),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,a=qA(p,0,H,0),B=h+A|0,B=(g=a+g|0)>>>0>>0?B+1|0:B,A=(a=qA(u,CA,U,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=qA(_,CA,G,CA),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(a=qA(c,0,b,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(e,CA,v,0),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,a=qA(o,0,P=nA>>>5&2097151,0),B=h+A|0,B=(g=a+g|0)>>>0>>0?B+1|0:B,a=g,SA=B,LA=g=B-((g>>>0<4293918720)-1|0)|0,A=(A=g>>21)+IA|0,IA=g=(B=(2097151&g)<<11|(hA=a- -1048576|0)>>>21)+EA|0,bA=A=g>>>0>>0?A+1|0:A,NA=g=A-((g>>>0<4293918720)-1|0)|0,A=g>>21,g=(B=QA)+(QA=(2097151&g)<<11|(GA=IA- -1048576|0)>>>21)|0,B=A+oA|0,B=g>>>0>>0?B+1|0:B,QA=g,RA=B,jA=g=B-((g>>>0<4293918720)-1|0)|0,A=(A=g>>21)+rA|0,nA=g=(B=(2097151&g)<<11|(vA=QA- -1048576|0)>>>21)+tA|0,lA=A=g>>>0>>0?A+1|0:A,VA=g=A-((g>>>0<4293918720)-1|0)|0,uA=(2097151&g)<<11|(aA=nA- -1048576|0)>>>21,rA=g>>21,A=qA(t,CA,p,0),g=h,EA=qA(f,0,w,CA),B=h+g|0,B=(A=EA+A|0)>>>0>>0?B+1|0:B,EA=qA(u,CA,k,CA),g=h+B|0,g=(A=EA+A|0)>>>0>>0?g+1|0:g,B=(EA=qA(y,0,_,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,EA=qA(c,0,F,CA),g=h+A|0,g=(B=EA+B|0)>>>0>>0?g+1|0:g,EA=qA(e,CA,H,0),A=h+g|0,A=(B=EA+B|0)>>>0>>0?A+1|0:A,g=(EA=qA(o,0,G,CA))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=g,oA=qA(J,pA,-683901,-1),g=h+B|0,g=(EA=A+oA|0)>>>0>>0?g+1|0:g,oA=EA,EA=B-((A>>>0<4293918720)-1|0)|0,B=oA-(A=-2097152&(kA=A- -1048576|0))|0,oA=g-((A>>>0>oA>>>0)+EA|0)|0,g=(A=B)+(B=(2097151&gA)<<11|fA>>>21)|0,A=(gA>>21)+oA|0,A=g>>>0>>0?A+1|0:A,B=uA,fA=g-(uA=-2097152&(oA=g- -1048576|0))|0,g=(A-((gA=A-((g>>>0<4293918720)-1|0)|0)+(g>>>0>>0)|0)|0)+rA|0,V=B=B+fA|0,uA=g=B>>>0>>0?g+1|0:g,rA=qA(B,g,-683901,-1),fA=h,A=qA(y,0,u,CA),B=h,g=(tA=qA(f,0,p,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(tA=qA(t,CA,_,CA))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,tA=qA(c,0,k,CA),A=h+g|0,A=(B=tA+B|0)>>>0>>0?A+1|0:A,g=(tA=qA(e,CA,F,CA))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(tA=qA(o,0,H,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=A,A=(A=EA>>21)+g|0,FA=B=(A=(g=B=B+(EA=(2097151&EA)<<11|kA>>>21)|0)>>>0>>0?A+1|0:A)-((g>>>0<4293918720)-1|0)|0,kA=g-(EA=-2097152&(UA=g- -1048576|0))|0,B=A-((g>>>0>>0)+B|0)|0,g=(g=(A=gA)>>21)+B|0,q=A=(gA=(2097151&A)<<11|(gA=oA)>>>21)+kA|0,kA=g=A>>>0>>0?g+1|0:g,B=qA(A,g,136657,0),A=h+fA|0,gI=g=B+rA|0,dA=g>>>0>>0?A+1|0:A,A=qA(k,CA,M,0),B=h,g=(gA=qA(Y=2097151&KA,0,y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,gA=qA(F,CA,m,0),B=h+A|0,B=(g=gA+g|0)>>>0>>0?B+1|0:B,A=(gA=qA(H,0,S,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(gA=qA(D,0,G,CA))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,gA=qA(w,CA,U,0),g=h+A|0,g=(B=gA+B|0)>>>0>>0?g+1|0:g,gA=qA(p,0,b,0),A=h+g|0,A=(B=gA+B|0)>>>0>>0?A+1|0:A,g=(gA=qA(u,CA,P,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(gA=qA(_,CA,v,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=(gA=qA(c,0,N=2097151&TA,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,rA=B=(gA=(n[r+23|0]|n[r+24|0]<<8|n[r+25|0]<<16|n[r+26|0]<<24)>>>5&2097151)+B|0,EA=B>>>0>>0?A+1|0:A,A=qA(F,CA,M,0),g=h,gA=qA(k,CA,Y,0),B=h+g|0,B=(A=gA+A|0)>>>0>>0?B+1|0:B,gA=qA(H,0,m,0),g=h+B|0,g=(A=gA+A|0)>>>0>>0?g+1|0:g,B=(gA=qA(G,CA,S,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(D,0,U,0),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,B=(gA=qA(w,CA,b,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(gA=qA(p,0,v,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,gA=qA(N,0,u,CA),g=h+B|0,g=(A=gA+A|0)>>>0>>0?g+1|0:g,B=(gA=qA(_,CA,P,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,gA=g=(g=B)+(B=2097151&JA)|0,sA=A=g>>>0>>0?A+1|0:A,TA=A=A-((g>>>0<4293918720)-1|0)|0,oA=g- -1048576|0,g=(B=A>>>21|0)+EA|0,EA=A=(tA=rA)+(rA=(2097151&A)<<11|oA>>>21)|0,KA=A>>>0>>0?g+1|0:g,fA=C-(A=-2097152&iA)|0,WA=mA-((A>>>0>C>>>0)+wA|0)|0,A=qA(t,CA,c,0),B=h,g=(C=qA(f,0,u,CA))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,C=qA(e,CA,y,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,A=(C=qA(o,0,k,CA))+g|0,g=h+B|0,tA=A,iA=A>>>0>>0?g+1|0:g,A=qA(f,0,_,CA),g=h,B=qA(t,CA,u,CA),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(C=qA(c,0,y,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(e,CA,k,CA),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,C=qA(o,0,F,CA),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,C=g,mA=B,wA=g=B-((g>>>0<4293918720)-1|0)|0,A=tA,tA=(2097151&g)<<11|(rA=C- -1048576|0)>>>21,g=(g>>21)+iA|0,iA=B=A+tA|0,JA=g=B>>>0>>0?g+1|0:g,tA=B- -1048576|0,B=(A=(g=g-((B>>>0<4293918720)-1|0)|0)>>21)+WA|0,L=fA=(ZA=(2097151&g)<<11|tA>>>21)+fA|0,fA=B=fA>>>0>>0?B+1|0:B,A=qA(L,B,470296,0),B=h,tA=JA-((YA=g)+((g=-2097152&tA)>>>0>iA>>>0)|0)|0,K=iA-g|0,iA=qA(x,cA,666643,0),g=h+B|0,g=(A=iA+A|0)>>>0>>0?g+1|0:g,B=(iA=qA(K,tA,654183,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,iA=B,B=A,rA=mA-(((A=-2097152&rA)>>>0>C>>>0)+wA|0)|0,C=g=C-A|0,FA=(2097151&(g=FA))<<11|UA>>>21,g=(A=g>>21)+rA|0,j=C=C+FA|0,FA=g=C>>>0>>0?g+1|0:g,rA=KA-(((A=EA)>>>0<4293918720)-1|0)|0,XA=A- -1048576|0,C=qA(C,g,-997805,-1),g=h+B|0,g=(A=C+iA|0)>>>0>>0?g+1|0:g,C=A,B=EA+A|0,A=g+KA|0,A=B>>>0>>0?A+1|0:A,UA=(g=B)-(B=-2097152&XA)|0,WA=A-((g>>>0>>0)+rA|0)|0,A=qA(K,tA,470296,0),g=h,B=qA(L,fA,666643,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(C=qA(j,FA,654183,0))+A|0,A=h+g|0,g=B+gA|0,B=sA+(B>>>0>>0?A+1|0:A)|0,B=g>>>0>>0?B+1|0:B,oA=(A=g)-(g=-2097152&oA)|0,sA=B-((A>>>0>>0)+TA|0)|0,A=qA(H,0,M,0),B=h,g=(C=qA(F,CA,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=qA(G,CA,m,0),A=h+A|0,A=(g=B+g|0)>>>0>>0?A+1|0:A,C=qA(U,0,S,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,A=(C=qA(D,0,b,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=qA(w,CA,v,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(C=qA(p,0,P,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(N,0,_,CA),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,B=g,g=A,iA=A=(C=2097151&((7&(A=yA))<<29|AI>>>3))+B|0,C=A>>>0>>0?g+1|0:g,A=qA(G,CA,M,0),g=h,B=qA(H,0,Y,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=(gA=qA(U,0,m,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,gA=qA(S,0,b,0),g=h+A|0,g=(B=gA+B|0)>>>0>>0?g+1|0:g,gA=qA(D,0,v,0),A=h+g|0,A=(B=gA+B|0)>>>0>>0?A+1|0:A,g=(gA=qA(w,CA,P,0))+B|0,B=h+A|0,B=g>>>0>>0?B+1|0:B,A=(gA=qA(N,0,p,0))+g|0,g=h+B|0,B=A,A=A>>>0>>0?g+1|0:g,gA=g=(g=B)+(B=DA>>>6&2097151)|0,yA=A=g>>>0>>0?A+1|0:A,mA=A=A-((g>>>0<4293918720)-1|0)|0,EA=g- -1048576|0,g=(B=A>>>21|0)+C|0,C=A=(wA=iA)+(iA=(2097151&A)<<11|EA>>>21)|0,wA=g=A>>>0>>0?g+1|0:g,TA=A=g-((A>>>0<4293918720)-1|0)|0,g=oA,oA=(2097151&A)<<11|(iA=C- -1048576|0)>>>21,A=(A>>>21|0)+sA|0,sA=g=g+oA|0,KA=A=g>>>0>>0?A+1|0:A,JA=A=A-((g>>>0<4293918720)-1|0)|0,DA=g- -1048576|0,g=(B=A>>21)+WA|0,g=(A=(oA=(2097151&A)<<11|DA>>>21)+UA|0)>>>0>>0?g+1|0:g,B=A,oA=A+gI|0,A=g+dA|0,A=B>>>0>oA>>>0?A+1|0:A,dA=oA,oA=g-((B>>>0<4293918720)-1|0)|0,OA=dA-(g=-2097152&(zA=B- -1048576|0))|0,xA=A-((g>>>0>dA>>>0)+oA|0)|0,g=qA(q,kA,-997805,-1),B=h+KA|0,YA=A=g+sA|0,dA=A>>>0>>0?B+1|0:B,A=qA(j,FA,470296,0),B=h,g=(sA=qA(K,tA,666643,0))+A|0,A=h+B|0,A=(A=g>>>0>>0?A+1|0:A)+wA|0,sA=(g=g+C|0)-(B=-2097152&iA)|0,wA=(A=g>>>0>>0?A+1|0:A)-((g>>>0>>0)+TA|0)|0,B=qA(j,FA,666643,0),g=h+yA|0,yA=A=B+gA|0,iA=A>>>0>>0?g+1|0:g,A=qA(U,0,M,0),B=h,g=(C=qA(G,CA,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=qA(b,0,m,0),A=h+A|0,A=(g=B+g|0)>>>0>>0?A+1|0:A,C=qA(S,0,v,0),B=h+A|0,B=(g=C+g|0)>>>0>>0?B+1|0:B,A=(C=qA(D,0,P,0))+g|0,g=h+B|0,g=A>>>0>>0?g+1|0:g,B=qA(N,0,w,CA),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,B=A,C=2097151&((1&(A=HA))<<31|$A>>>1),A=g,HA=B=B+C|0,gA=B>>>0>>0?A+1|0:A,A=qA(b,0,M,0),B=h,g=(C=qA(U,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(C=qA(m,0,v,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(C=qA(S,0,P,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,C=qA(N,0,D,0),g=h+B|0,B=A=C+A|0,A=A>>>0>>0?g+1|0:g,C=g=(g=B)+(B=PA>>>4&2097151)|0,TA=A=g>>>0>>0?A+1|0:A,KA=A=A-((g>>>0<4293918720)-1|0)|0,PA=g- -1048576|0,g=(B=A>>>21|0)+gA|0,gA=A=(UA=HA)+(HA=(2097151&A)<<11|PA>>>21)|0,UA=g=A>>>0>>0?g+1|0:g,$A=A=g-((A>>>0<4293918720)-1|0)|0,g=yA,yA=(2097151&A)<<11|(HA=gA- -1048576|0)>>>21,A=(A>>>21|0)+iA|0,AI=A=(A=(g=g+yA|0)>>>0>>0?A+1|0:A)-(((B=-2097152&EA)>>>0>g>>>0)+mA|0)|0,gI=A=A-(((EA=g-B|0)>>>0<4293918720)-1|0)|0,B=(g=A>>21)+wA|0,mA=A=(iA=(2097151&A)<<11|(yA=EA- -1048576|0)>>>21)+sA|0,WA=B=A>>>0>>0?B+1|0:B,ZA=A=B-((A>>>0<4293918720)-1|0)|0,sA=lA-(((g=-2097152&aA)>>>0>nA>>>0)+VA|0)|0,X=nA-g|0,nA=(2097151&A)<<11|(wA=mA- -1048576|0)>>>21,A=(A>>21)+dA|0,A=(B=nA+YA|0)>>>0>>0?A+1|0:A,g=(iA=qA(V,uA,136657,0))+(B-(nA=-2097152&DA)|0)|0,B=h+(A-((B>>>0>>0)+JA|0)|0)|0,B=g>>>0>>0?B+1|0:B,nA=qA(X,sA,-683901,-1),A=h+B|0,A=(g=nA+g|0)>>>0>>0?A+1|0:A,nA=g,VA=A,dA=A=A-((g>>>0<4293918720)-1|0)|0,B=(g=A>>21)+xA|0,B=(A=(iA=(2097151&A)<<11|(DA=nA- -1048576|0)>>>21)+OA|0)>>>0>>0?B+1|0:B,iA=A,JA=B,OA=A=B-((A>>>0<4293918720)-1|0)|0,BI=(2097151&A)<<11|(lA=iA- -1048576|0)>>>21,xA=A>>21,A=qA(y,0,M,0),B=h,g=(aA=qA(t,CA,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(aA=qA(k,CA,m,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(aA=qA(F,CA,S,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(aA=qA(D,0,H,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(aA=qA(w,CA,G,CA))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,aA=qA(p,0,U,0),A=h+g|0,A=(B=aA+B|0)>>>0>>0?A+1|0:A,aA=qA(u,CA,v,0),g=h+A|0,g=(B=aA+B|0)>>>0>>0?g+1|0:g,A=(aA=qA(_,CA,b,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(aA=qA(c,0,P,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(aA=qA(N,0,e,CA))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,YA=B,B=uI(r+26|0),aA=2097151&((3&(A=h))<<30|B>>>2),A=g,A=(B=YA+aA|0)>>>0>>0?A+1|0:A,aA=B,YA=A,A=qA(x,cA,470296,0),g=h,B=qA(T,eA,666643,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,_A=qA(L,fA,654183,0),B=h+g|0,B=(A=_A+A|0)>>>0<_A>>>0?B+1|0:B,_A=qA(K,tA,-997805,-1),g=h+B|0,g=(A=_A+A|0)>>>0<_A>>>0?g+1|0:g,B=(_A=qA(j,FA,136657,0))+A|0,A=h+g|0,A=(A=B>>>0<_A>>>0?A+1|0:A)+YA|0,A=(g=B+aA|0)>>>0>>0?A+1|0:A,B=g,aA=YA-(((g=aA)>>>0<4293918720)-1|0)|0,YA=g- -1048576|0,g=A+(g=rA>>>21|0)|0,g=(B=(rA=(2097151&rA)<<11|XA>>>21)+B|0)>>>0>>0?g+1|0:g,B=(A=B)-(XA=-2097152&YA)|0,_A=qA(q,kA,-683901,-1),A=(g=g-((A>>>0>>0)+aA|0)|0)+h|0,A=(rA=B+_A|0)>>>0<_A>>>0?A+1|0:A,_A=rA,rA=g-((B>>>0<4293918720)-1|0)|0,XA=B- -1048576|0,g=A+(g=oA>>21)|0,g=(B=(oA=(2097151&oA)<<11|zA>>>21)+_A|0)>>>0>>0?g+1|0:g,B=(A=B)-(zA=-2097152&XA)|0,A=(_A=xA)+(xA=g-((A>>>0>>0)+rA|0)|0)|0,A=B>>>0>(oA=B+BI|0)>>>0?A+1|0:A,g=oA,oA=xA-((B>>>0<4293918720)-1|0)|0,zA=g-(B=-2097152&(xA=B- -1048576|0))|0,BI=A-((g>>>0>>0)+oA|0)|0,_A=iA-(A=-2097152&lA)|0,JA=JA-((A>>>0>iA>>>0)+OA|0)|0,OA=nA-(A=-2097152&DA)|0,VA=VA-((A>>>0>nA>>>0)+dA|0)|0,B=qA(q,kA,654183,0),A=h+WA|0,A=(g=B+mA|0)>>>0>>0?A+1|0:A,B=(iA=qA(V,uA,-997805,-1))+(g-(nA=-2097152&wA)|0)|0,g=h+(A-((g>>>0>>0)+ZA|0)|0)|0,g=B>>>0>>0?g+1|0:g,nA=qA(X,sA,136657,0),A=h+g|0,lA=B=nA+B|0,DA=B>>>0>>0?A+1|0:A,iA=QA-(A=-2097152&vA)|0,RA=RA-((A>>>0>QA>>>0)+jA|0)|0,A=qA(T,eA,-997805,-1),g=h,QA=qA(J,pA,654183,0),B=h+g|0,B=(A=QA+A|0)>>>0>>0?B+1|0:B,QA=qA(x,cA,136657,0),g=h+B|0,g=(A=QA+A|0)>>>0>>0?g+1|0:g,B=(QA=qA(L,fA,-683901,-1))+A|0,A=h+g|0,g=(A=B>>>0>>0?A+1|0:A)+bA|0,g=(B=B+IA|0)>>>0>>0?g+1|0:g,QA=(A=B)-(B=-2097152&GA)|0,bA=g-((A>>>0>>0)+NA|0)|0,A=qA(T,eA,654183,0),g=h,IA=qA(J,pA,470296,0),B=h+g|0,B=(A=IA+A|0)>>>0>>0?B+1|0:B,g=(IA=qA(x,cA,-997805,-1))+A|0,A=h+B|0,B=g+a|0,g=SA+(g>>>0>>0?A+1|0:A)|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(L,fA,136657,0),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=(a=qA(K,tA,-683901,-1))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,IA=(g=B)-(B=-2097152&hA)|0,hA=A-((g>>>0>>0)+LA|0)|0,A=qA(t,CA,M,0),B=h,g=(a=qA(f,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(a=qA(y,0,m,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,a=qA(k,CA,S,0),A=h+g|0,A=(B=a+B|0)>>>0>>0?A+1|0:A,a=qA(D,0,F,CA),g=h+A|0,g=(B=a+B|0)>>>0>>0?g+1|0:g,A=(a=qA(w,CA,H,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(a=qA(p,0,G,CA))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(a=qA(u,CA,b,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,a=qA(_,CA,U,0),A=h+g|0,A=(B=a+B|0)>>>0>>0?A+1|0:A,a=qA(c,0,v,0),g=h+A|0,g=(B=a+B|0)>>>0>>0?g+1|0:g,A=(a=qA(N,0,o,0))+B|0,B=h+g|0,B=A>>>0>>0?B+1|0:B,g=(a=qA(e,CA,P,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,A=(aA>>>21|0)+(g=(B=(a=(n[r+28|0]|n[r+29|0]<<8|n[r+30|0]<<16|n[r+31|0]<<24)>>>7|0)+g|0)>>>0>>0?A+1|0:A)|0,A=(B=(a=(2097151&aA)<<11|YA>>>21)+B|0)>>>0>>0?A+1|0:A,a=B,GA=A,vA=A=A-((B>>>0<4293918720)-1|0)|0,g=IA,IA=(2097151&A)<<11|(nA=B- -1048576|0)>>>21,A=(A>>21)+hA|0,A=(B=g+IA|0)>>>0>>0?A+1|0:A,IA=B,mA=A,wA=A=A-((B>>>0<4293918720)-1|0)|0,g=QA,QA=(2097151&A)<<11|(CA=B- -1048576|0)>>>21,A=(A>>21)+bA|0,aA=A=(B=g+QA|0)>>>0>>0?A+1|0:A,hA=A=A-((B>>>0<4293918720)-1|0)|0,SA=(2097151&A)<<11|(QA=B- -1048576|0)>>>21,A=(A>>21)+RA|0,bA=iA=SA+iA|0,iA=A=iA>>>0>>0?A+1|0:A,A=(g=lA)+(lA=qA(bA,A,-683901,-1))|0,g=h+DA|0,SA=A,DA=A>>>0>>0?g+1|0:g,aA=aA-(((A=-2097152&QA)>>>0>B>>>0)+hA|0)|0,NA=B-A|0,g=qA(q,kA,470296,0)+EA|0,A=AI+h|0,A=g>>>0>>0?A+1|0:A,B=(EA=qA(V,uA,654183,0))+(g-(QA=-2097152&yA)|0)|0,g=h+(A-((g>>>0>>0)+gI|0)|0)|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(X,sA,-997805,-1),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=(QA=qA(bA,iA,136657,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=(QA=qA(NA,aA,-683901,-1))+B|0,B=h+A|0,yA=B=g>>>0>>0?B+1|0:B,lA=B=B-((g>>>0<4293918720)-1|0)|0,A=(A=B>>21)+DA|0,A=(B=(QA=(2097151&B)<<11|(EA=g- -1048576|0)>>>21)+SA|0)>>>0>>0?A+1|0:A,QA=B,DA=A,SA=B=A-((B>>>0<4293918720)-1|0)|0,RA=(2097151&B)<<11|(hA=QA- -1048576|0)>>>21,B=(B>>21)+VA|0,B=RA>>>0>(LA=RA+OA|0)>>>0?B+1|0:B,RA=LA,LA=B,jA=QA-(A=-2097152&hA)|0,SA=DA-((A>>>0>QA>>>0)+SA|0)|0,DA=g-(A=-2097152&EA)|0,yA=yA-((A>>>0>g>>>0)+lA|0)|0,A=(B=qA(q,kA,666643,0))+(gA-(g=-2097152&HA)|0)|0,g=h+(UA-((g>>>0>gA>>>0)+$A|0)|0)|0,g=A>>>0>>0?g+1|0:g,QA=qA(V,uA,470296,0),B=h+g|0,B=(A=QA+A|0)>>>0>>0?B+1|0:B,g=(QA=qA(X,sA,654183,0))+A|0,A=h+B|0,hA=g,QA=g>>>0>>0?A+1|0:A,gA=IA-(A=-2097152&CA)|0,IA=mA-((A>>>0>IA>>>0)+wA|0)|0,A=qA(T,eA,470296,0),B=h,g=(EA=qA(J,pA,666643,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,EA=qA(x,cA,654183,0),B=h+A|0,B=(g=EA+g|0)>>>0>>0?B+1|0:B,EA=qA(L,fA,-997805,-1),A=h+B|0,A=(g=EA+g|0)>>>0>>0?A+1|0:A,B=(EA=qA(K,tA,136657,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(j,FA,-683901,-1),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=A+a|0,A=g+GA|0,A=B>>>0>>0?A+1|0:A,a=(g=B)-(B=-2097152&nA)|0,B=A-((g>>>0>>0)+vA|0)|0,g=(A=a)+(a=(2097151&rA)<<11|XA>>>21)|0,A=(rA>>21)+B|0,A=g>>>0>>0?A+1|0:A,a=g,kA=A,fA=g=A-((g>>>0<4293918720)-1|0)|0,nA=(2097151&g)<<11|(EA=a- -1048576|0)>>>21,g=(g>>21)+IA|0,HA=B=nA+gA|0,gA=g=B>>>0>>0?g+1|0:g,g=qA(B,g,-683901,-1),B=h+QA|0,B=(A=g+hA|0)>>>0>>0?B+1|0:B,g=(IA=qA(bA,iA,-997805,-1))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(IA=qA(NA,aA,136657,0))+g|0,g=h+A|0,vA=B,cA=B>>>0>>0?g+1|0:g,A=qA(v,0,M,0),B=h,g=(IA=qA(b,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(IA=qA(m,0,P,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=(IA=qA(N,0,S,0))+B|0,B=h+g|0,g=A,A=A>>>0>>0?B+1|0:B,CA=g=(B=AA>>>7&2097151)+g|0,QA=g>>>0>>0?A+1|0:A,A=qA(M,0,P,0),g=h,B=qA(v,0,Y,0),g=h+g|0,g=(A=B+A|0)>>>0>>0?g+1|0:g,IA=qA(N,0,m,0),B=h+g|0,B=(A=IA+A|0)>>>0>>0?B+1|0:B,g=A,IA=2097151&((3&(A=$))<<30|Z>>>2),A=B,A=(g=g+IA|0)>>>0>>0?A+1|0:A,IA=g,nA=A,tA=A=A-((g>>>0<4293918720)-1|0)|0,g=A>>>21|0,A=(B=CA)+(CA=(2097151&A)<<11|(rA=IA- -1048576|0)>>>21)|0,B=g+QA|0,QA=A,FA=B=A>>>0>>0?B+1|0:B,hA=A=B-((A>>>0<4293918720)-1|0)|0,B=C+((2097151&A)<<11|(CA=QA- -1048576|0)>>>21)|0,A=TA+(A>>>21|0)|0,A=B>>>0>>0?A+1|0:A,g=(eA=qA(V,uA,666643,0))+(B-(C=-2097152&PA)|0)|0,B=h+(A-((B>>>0>>0)+KA|0)|0)|0,A=(C=qA(X,sA,470296,0))+g|0,g=h+(g>>>0>>0?B+1|0:B)|0,g=A>>>0>>0?g+1|0:g,B=(C=qA(HA,gA,136657,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,g=B,B=qA(bA,iA,654183,0),A=h+A|0,A=(g=g+B|0)>>>0>>0?A+1|0:A,B=(C=qA(NA,aA,-997805,-1))+g|0,g=h+A|0,eA=B,uA=g=B>>>0>>0?g+1|0:g,GA=g=g-((B>>>0<4293918720)-1|0)|0,C=(2097151&g)<<11|(pA=B- -1048576|0)>>>21,g=(g>>21)+cA|0,C=g=(B=C+vA|0)>>>0>>0?g+1|0:g,vA=g=g-((B>>>0<4293918720)-1|0)|0,PA=(2097151&g)<<11|(cA=B- -1048576|0)>>>21,g=(g>>21)+yA|0,mA=DA=PA+DA|0,DA=DA>>>0>>0?g+1|0:g,PA=C,g=a-(A=-2097152&EA)|0,C=kA-((A>>>0>a>>>0)+fA|0)|0,A=(a=(2097151&oA)<<11|xA>>>21)+g|0,g=(oA>>21)+C|0,C=A,kA=g=A>>>0>>0?g+1|0:g,fA=A=g-((A>>>0<4293918720)-1|0)|0,EA=g=A>>21,a=B,B=qA(yA=(2097151&A)<<11|(oA=C- -1048576|0)>>>21,g,-683901,-1),A=h+PA|0,A=(g=a+B|0)>>>0>>0?A+1|0:A,PA=g-(B=-2097152&cA)|0,vA=A-((g>>>0>>0)+vA|0)|0,B=qA(yA,EA,136657,0),g=h+uA|0,g=(A=B+eA|0)>>>0>>0?g+1|0:g,wA=A-(B=-2097152&pA)|0,lA=g-((A>>>0>>0)+GA|0)|0,a=qA(X,sA,666643,0),B=h+(FA-(((g=-2097152&CA)>>>0>QA>>>0)+hA|0)|0)|0,B=(A=a+(QA-g|0)|0)>>>0>>0?B+1|0:B,g=(a=qA(HA,gA,-997805,-1))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(a=qA(bA,iA,470296,0))+g|0,g=h+A|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(NA,aA,654183,0),g=h+g|0,hA=A=A+B|0,CA=A>>>0>>0?g+1|0:g,eA=IA,pA=nA,A=qA(N,0,M,0),B=h,g=(a=qA(P,0,Y,0))+A|0,A=h+B|0,A=g>>>0>>0?A+1|0:A,B=(g=(a=O>>>5&2097151)+g|0)>>>0>>0?A+1|0:A,IA=g,a=2097151&W,g=qA(N,0,Y,0)+a|0,A=h,A=g>>>0>>0?A+1|0:A,a=g,cA=A,uA=A=A-((g>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+B|0,g=(A=(nA=IA)+(IA=(2097151&A)<<11|(QA=a- -1048576|0)>>>21)|0)>>>0>>0?g+1|0:g,IA=A,FA=g,sA=A=g-((A>>>0<4293918720)-1|0)|0,g=eA,eA=(2097151&A)<<11|(nA=IA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,A=(B=g+eA|0)>>>0>>0?A+1|0:A,B=(eA=qA(HA,gA,654183,0))+((g=B)-(rA&=-2097152)|0)|0,g=h+(A-((16383&tA)+(g>>>0>>0)|0)|0)|0,g=B>>>0>>0?g+1|0:g,A=B,B=qA(bA,iA,666643,0),g=h+g|0,g=(A=A+B|0)>>>0>>0?g+1|0:g,B=(iA=qA(NA,aA,470296,0))+A|0,A=h+g|0,A=B>>>0>>0?A+1|0:A,iA=B,eA=A,pA=A=A-((B>>>0<4293918720)-1|0)|0,tA=(2097151&A)<<11|(rA=B- -1048576|0)>>>21,A=(A>>21)+CA|0,tA=A=(B=tA+hA|0)>>>0>>0?A+1|0:A,hA=A=A-((B>>>0<4293918720)-1|0)|0,g=wA,wA=(2097151&A)<<11|(CA=B- -1048576|0)>>>21,A=(A>>21)+lA|0,A=wA>>>0>(GA=g+wA|0)>>>0?A+1|0:A,wA=GA,GA=A,A=(g=qA(yA,EA,-997805,-1))+B|0,B=h+tA|0,B=A>>>0>>0?B+1|0:B,CA=A-(g=-2097152&CA)|0,tA=B-((A>>>0>>0)+hA|0)|0,B=qA(yA,EA,654183,0),g=h+eA|0,g=(A=B+iA|0)>>>0>>0?g+1|0:g,eA=A-(B=-2097152&rA)|0,pA=g-((A>>>0>>0)+pA|0)|0,g=(B=qA(HA,gA,470296,0))+(IA-(A=-2097152&nA)|0)|0,A=h+(FA-((16383&sA)+(A>>>0>IA>>>0)|0)|0)|0,A=g>>>0>>0?A+1|0:A,B=(IA=qA(NA,aA,666643,0))+g|0,g=h+A|0,iA=B,IA=B>>>0>>0?g+1|0:g,A=(B=qA(HA,gA,666643,0))+(a-(g=-2097152&QA)|0)|0,g=h+(cA-((4095&uA)+(g>>>0>a>>>0)|0)|0)|0,g=A>>>0>>0?g+1|0:g,B=A,nA=g,gA=g=g-((A>>>0<4293918720)-1|0)|0,QA=iA,iA=(2097151&g)<<11|(a=A- -1048576|0)>>>21,g=(g>>21)+IA|0,iA=g=(IA=QA=QA+iA|0)>>>0>>0?g+1|0:g,rA=g=g-((IA>>>0<4293918720)-1|0)|0,A=eA,eA=(2097151&g)<<11|(QA=IA- -1048576|0)>>>21,g=(g>>21)+pA|0,g=(aA=A+eA|0)>>>0>>0?g+1|0:g,eA=aA,aA=g,g=(A=IA)+(IA=qA(yA,EA,470296,0))|0,A=h+iA|0,A=g>>>0>>0?A+1|0:A,QA=g-(IA=-2097152&QA)|0,IA=A-((g>>>0>>0)+rA|0)|0,iA=QA,A=(B-(g=-2097152&a)|0)+(a=qA(yA,EA,666643,0))|0,g=h+(nA-((g>>>0>B>>>0)+gA|0)|0)|0,QA=A,B=A,A=(A=(g=A>>>0>>0?g+1|0:g)>>21)+IA|0,A=(g=iA+(B=(2097151&g)<<11|B>>>21)|0)>>>0>>0?A+1|0:A,nA=g,B=g,g=(g=A>>21)+aA|0,EA=A=(B=(2097151&A)<<11|B>>>21)+eA|0,a=(2097151&(g=A>>>0>>0?g+1|0:g))<<11|(B=A)>>>21,B=(A=g>>21)+tA|0,iA=g=a+CA|0,a=(2097151&(B=(A=g)>>>0>>0?B+1|0:B))<<11|A>>>21,A=(g=B>>21)+GA|0,rA=B=a+wA|0,a=(2097151&(A=(g=B)>>>0>>0?A+1|0:A))<<11|g>>>21,g=(B=A>>21)+vA|0,aA=A=a+PA|0,B=A,A=(A=(g=A>>>0>>0?g+1|0:g)>>21)+DA|0,A=(g=(B=(2097151&g)<<11|B>>>21)+mA|0)>>>0>>0?A+1|0:A,CA=g,B=g,g=(g=A>>21)+SA|0,eA=A=(B=(2097151&A)<<11|B>>>21)+jA|0,a=(2097151&(g=A>>>0>>0?g+1|0:g))<<11|(B=A)>>>21,B=(A=g>>21)+LA|0,pA=g=a+RA|0,a=(2097151&(B=(A=g)>>>0>>0?B+1|0:B))<<11|A>>>21,A=(g=B>>21)+JA|0,cA=B=a+_A|0,a=(2097151&(A=(g=B)>>>0>>0?A+1|0:A))<<11|g>>>21,g=(B=A>>21)+BI|0,uA=A=a+zA|0,B=A,A=(g=A>>>0>>0?g+1|0:g)>>21,B=(2097151&g)<<11|B>>>21,a=C-(g=-2097152&oA)|0,g=(kA-((g>>>0>C>>>0)+fA|0)|0)+A|0,oA=B=B+a|0,a=B=(g=(A=B)>>>0>>0?g+1|0:g)>>21,A=qA(gA=(2097151&g)<<11|A>>>21,B,666643,0),g=h,IA=A=A+(B=2097151&QA)|0,C=g=A>>>0>>0?g+1|0:g,Q[0|E]=A,Q[E+1|0]=(255&g)<<24|A>>>8,B=2097151&nA,g=qA(gA,a,470296,0)+B|0,A=h,QA=(nA=(2097151&C)<<11|IA>>>21)+g|0,g=(C>>21)+(A=g>>>0>>0?A+1|0:A)|0,g=QA>>>0>>0?g+1|0:g,Q[E+4|0]=(2047&g)<<21|QA>>>11,A=g,Q[E+3|0]=(7&A)<<29|QA>>>3,nA=2097151&EA,B=qA(gA,a,654183,0)+nA|0,g=h,EA=(2097151&A)<<11|QA>>>21,A=(A>>21)+(g=B>>>0>>0?g+1|0:g)|0,g=A=EA>>>0>(B=nA=EA+B|0)>>>0?A+1|0:A,Q[E+6|0]=(63&A)<<26|B>>>6,nA=0,A=QA&=2097151,Q[E+2|0]=31&((65535&C)<<16|IA>>>16)|A<<5,IA=2097151&iA,C=qA(gA,a,-997805,-1)+IA|0,A=h,EA=(2097151&g)<<11|B>>>21,g=(g>>21)+(A=C>>>0>>0?A+1|0:A)|0,g=(A=IA=EA+C|0)>>>0>>0?g+1|0:g,Q[E+9|0]=(511&g)<<23|A>>>9,Q[E+8|0]=(1&g)<<31|A>>>1,C=0,IA=(B=EA=2097151&B)<<2,B=nA,Q[E+5|0]=IA|(524287&B)<<13|QA>>>19,QA=2097151&rA,IA=qA(gA,a,136657,0)+QA|0,B=h,B=IA>>>0>>0?B+1|0:B,QA=IA,IA=B,B=g,g=(g>>=21)+IA|0,g=(B=(iA=QA)+(QA=(2097151&B)<<11|A>>>21)|0)>>>0>>0?g+1|0:g,Q[E+12|0]=(4095&g)<<20|B>>>12,Q[E+11|0]=(15&g)<<28|B>>>4,IA=0,QA=(A=nA=2097151&A)<<7,A=C,C=EA,Q[E+7|0]=QA|(16383&A)<<18|C>>>14,C=(A=qA(gA,a,-683901,-1))+(a=2097151&aA)|0,A=h,A=C>>>0>>0?A+1|0:A,a=C,C=A,QA=(2097151&(A=g))<<11|B>>>21,A=(g=A>>21)+C|0,A=(a=QA+a|0)>>>0>>0?A+1|0:A,Q[E+14|0]=(127&A)<<25|a>>>7,QA=0,B=(g=gA=2097151&B)<<4,g=IA,Q[E+10|0]=B|(131071&g)<<15|nA>>>17,g=A,A>>=21,C=B=(IA=(2097151&g)<<11|a>>>21)+(2097151&CA)|0,g=B>>>0>>0?A+1|0:A,Q[E+17|0]=(1023&g)<<22|B>>>10,Q[E+16|0]=(3&g)<<30|B>>>2,IA=0,a=(A=nA=2097151&a)<<1,A=QA,Q[E+13|0]=a|(1048575&A)<<12|gA>>>20,A=g>>21,B=(g=(a=(2097151&g)<<11|B>>>21)+(2097151&eA)|0)>>>0>>0?A+1|0:A,a=g,Q[E+20|0]=(8191&B)<<19|g>>>13,Q[E+19|0]=(31&B)<<27|g>>>5,g=(A=gA=2097151&C)<<6,A=IA,Q[E+15|0]=g|(32767&A)<<17|nA>>>15,g=B>>21,nA=C=(IA=(2097151&B)<<11|a>>>21)+(2097151&pA)|0,C=C>>>0>>0?g+1|0:g,Q[E+21|0]=nA,g=(A=a)<<3,A=QA,Q[E+18|0]=g|(262143&A)<<14|gA>>>18,A=nA,Q[E+22|0]=(255&C)<<24|A>>>8,g=C>>21,g=(A=(a=(2097151&C)<<11|A>>>21)+(2097151&cA)|0)>>>0>>0?g+1|0:g,a=A,Q[E+25|0]=(2047&g)<<21|A>>>11,Q[E+24|0]=(7&g)<<29|A>>>3,A=g>>21,B=(g=(IA=(2097151&g)<<11|a>>>21)+(2097151&uA)|0)>>>0>>0?A+1|0:A,IA=g,Q[E+27|0]=(63&B)<<26|g>>>6,A=a&=2097151,Q[E+23|0]=31&((65535&C)<<16|nA>>>16)|A<<5,A=B>>21,A=(g=(B=(2097151&B)<<11|g>>>21)+(2097151&oA)|0)>>>0>>0?A+1|0:A,Q[E+31|0]=(131071&A)<<15|g>>>17,Q[E+30|0]=(511&A)<<23|g>>>9,Q[E+29|0]=(1&A)<<31|g>>>1,C=0,A=(B=IA&=2097151)<<2,B=QA,Q[E+26|0]=A|(524287&B)<<13|a>>>19,A=C,Q[E+28|0]=(16383&A)<<18|IA>>>14|g<<7,Dg(d,64),Dg(r,64),I&&(i[I>>2]=64,i[I+4>>2]=0),s=R+560|0,0}function F(A,I,g,B){for(var C=0,Q=0,E=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0;a=(C=t<<3)+g|0,k=n[4+(C=I+C|0)|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,E=(o=c=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24)<<24|o<<8&16711680,i[a>>2]=-16777216&((255&k)<<24|o>>>8)|16711680&((16777215&k)<<8|o>>>24)|k>>>8&65280|k>>>24,C=0,i[a+4>>2]=65280&(k<<24|o>>>8)|255&(k<<8|o>>>24)|E|C|C,16!=(0|(t=t+1|0)););for(I=eI(B,A,64);;){if(C=i[(B=k=(H=L<<3)+g|0)>>2],B=i[B+4>>2],a=pA(w=i[I+32>>2],e=i[I+36>>2],14),E=h,a=pA(w,e,18)^a,E^=h,a=pA(w,e,41)^a,B=(h^E)+B|0,B=(C=a+C|0)>>>0>>0?B+1|0:B,Q=i[I+48>>2],C=(E=i[(a=H+34144|0)>>2])+C|0,B=i[a+4>>2]+B|0,B=C>>>0>>0?B+1|0:B,a=(E=Q^((s=i[I+40>>2])^Q)&w)+C|0,C=(((D=i[I+52>>2])^(p=i[I+44>>2]))&e^D)+B|0,C=E>>>0>a>>>0?C+1|0:C,a=(E=i[I+56>>2])+a|0,B=i[I+60>>2]+C|0,B=E>>>0>a>>>0?B+1|0:B,E=a+(t=i[I+24>>2])|0,C=i[I+28>>2]+B|0,o=E,f=C=E>>>0>>0?C+1|0:C,i[I+24>>2]=E,i[I+28>>2]=C,C=pA(F=i[I>>2],t=i[I+4>>2],28),c=h,C=pA(F,t,34)^C,E=h^c,c=a+(pA(F,t,39)^C)|0,C=B+(h^E)|0,C=a>>>0>c>>>0?C+1|0:C,c=(u=F&((a=i[I+16>>2])|(r=i[I+8>>2]))|a&r)+c|0,B=(B=C)+(t&((C=i[I+20>>2])|(E=i[I+12>>2]))|C&E)|0,B=c>>>0>>0?B+1|0:B,u=c,c=B,i[I+56>>2]=u,i[I+60>>2]=B,B=C,C=pA(o,f,14),y=h,l=pA(o,f,18)^C,y^=h,S=a,a=(C=Q)+(Q=(s^w)&o^s)|0,C=((e^p)&f^p)+D|0,C=a>>>0>>0?C+1|0:C,Q=pA(o,f,41)^l,C=(h^y)+C|0,C=(a=Q+a|0)>>>0>>0?C+1|0:C,a=(y=i[(D=v=(Q=8|H)+g|0)>>2])+a|0,C=i[D+4>>2]+C|0,C=a>>>0>>0?C+1|0:C,a=(D=i[(Q=Q+34144|0)>>2])+a|0,C=i[Q+4>>2]+C|0,C=a>>>0>>0?C+1|0:C,y=a,D=B,B=C,C=D+C|0,C=(a=S+(Q=a)|0)>>>0>>0?C+1|0:C,Q=a,D=C,i[I+16>>2]=Q,i[I+20>>2]=C,C=pA(u,c,28),a=h,l=pA(u,c,34)^C,_=h^a,a=(C=y)+(y=(r|F)&u|r&F)|0,C=((E|t)&c|E&t)+B|0,C=a>>>0>>0?C+1|0:C,y=pA(u,c,39)^l,B=(h^_)+C|0,B=(a=y+a|0)>>>0>>0?B+1|0:B,y=a,a=B,i[I+48>>2]=y,i[I+52>>2]=B,B=pA(Q,D,14),C=h,l=pA(Q,D,18)^B,_=h^C,S=r,C=((e^f)&D^e)+p|0,C=(B=(r=(o^w)&Q^w)+s|0)>>>0>>0?C+1|0:C,r=pA(Q,D,41)^l,C=(h^_)+C|0,C=(B=r+B|0)>>>0>>0?C+1|0:C,r=(r=B)+(p=i[(B=M=(s=16|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=r>>>0

>>0?B+1|0:B,r=(s=i[(C=s+34144|0)>>2])+r|0,C=i[C+4>>2]+B|0,C=r>>>0>>0?C+1|0:C,p=r,s=r,B=C,C=C+E|0,s=C=(r=S+r|0)>>>0>>0?C+1|0:C,i[I+8>>2]=r,i[I+12>>2]=C,C=pA(y,a,28),E=h,l=pA(y,a,34)^C,E^=h,B=((t|c)&a|t&c)+B|0,B=(C=(C=p)+(p=(u|F)&y|u&F)|0)>>>0

>>0?B+1|0:B,p=pA(y,a,39)^l,B=(h^E)+B|0,B=(C=p+C|0)>>>0

>>0?B+1|0:B,p=C,E=B,i[I+40>>2]=C,i[I+44>>2]=B,B=pA(r,s,14),C=h,l=pA(r,s,18)^B,_=h^C,S=F,C=(f^(f^D)&s)+e|0,C=(B=(F=o^(Q^o)&r)+w|0)>>>0>>0?C+1|0:C,e=(F=pA(r,s,41)^l)+B|0,B=(h^_)+C|0,B=e>>>0>>0?B+1|0:B,e=(w=i[(C=P=(F=24|H)+g|0)>>2])+e|0,C=i[C+4>>2]+B|0,C=e>>>0>>0?C+1|0:C,B=(B=e)+(F=i[(e=F+34144|0)>>2])|0,C=i[e+4>>2]+C|0,w=B,e=S+B|0,B=(C=B>>>0>>0?C+1|0:C)+t|0,F=B=e>>>0>>0?B+1|0:B,i[I>>2]=e,i[I+4>>2]=B,B=pA(p,E,28),t=h,l=pA(p,E,34)^B,_=h^t,C=((a|c)&E|a&c)+C|0,C=(B=(t=(y|u)&p|y&u)+w|0)>>>0>>0?C+1|0:C,t=(w=pA(p,E,39)^l)+B|0,B=(h^_)+C|0,B=t>>>0>>0?B+1|0:B,w=t,t=B,i[I+32>>2]=w,i[I+36>>2]=B,B=pA(e,F,14),C=h,l=pA(e,F,18)^B,_=h^C,b=u,C=f+(D^(s^D)&F)|0,C=(B=o+(Q^(Q^r)&e)|0)>>>0>>0?C+1|0:C,o=pA(e,F,41)^l,C=(h^_)+C|0,C=(B=o+B|0)>>>0>>0?C+1|0:C,B=(u=i[(f=S=(o=32|H)+g|0)>>2])+B|0,C=i[f+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(f=i[(o=o+34144|0)>>2])+B|0,C=i[o+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,u=B,f=B,o=b+B|0,B=C,C=C+c|0,f=C=o>>>0>>0?C+1|0:C,i[I+56>>2]=o,i[I+60>>2]=C,C=pA(w,t,28),c=h,l=pA(w,t,34)^C,_=h^c,c=(C=u)+(u=(y|p)&w|y&p)|0,C=((E|a)&t|E&a)+B|0,C=c>>>0>>0?C+1|0:C,u=pA(w,t,39)^l,B=(h^_)+C|0,B=(c=u+c|0)>>>0>>0?B+1|0:B,u=c,c=B,i[I+24>>2]=u,i[I+28>>2]=B,B=pA(o,f,14),C=h,l=pA(o,f,18)^B,_=h^C,b=y,C=D+(s^(s^F)&f)|0,C=(B=Q+(r^(r^e)&o)|0)>>>0>>0?C+1|0:C,Q=pA(o,f,41)^l,C=(h^_)+C|0,C=(B=Q+B|0)>>>0>>0?C+1|0:C,Q=(Q=B)+(y=i[(B=U=(D=40|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=Q>>>0>>0?B+1|0:B,Q=(D=i[(C=D+34144|0)>>2])+Q|0,C=i[C+4>>2]+B|0,y=Q,B=C=Q>>>0>>0?C+1|0:C,C=C+a|0,D=C=(Q=b+Q|0)>>>0>>0?C+1|0:C,i[I+48>>2]=Q,i[I+52>>2]=C,C=pA(u,c,28),a=h,l=pA(u,c,34)^C,a^=h,B=((E|t)&c|E&t)+B|0,B=(C=(C=y)+(y=(p|w)&u|p&w)|0)>>>0>>0?B+1|0:B,y=pA(u,c,39)^l,B=(h^a)+B|0,B=(C=y+C|0)>>>0>>0?B+1|0:B,y=C,a=B,i[I+16>>2]=C,i[I+20>>2]=B,B=pA(Q,D,14),C=h,l=pA(Q,D,18)^B,_=h^C,G=p,C=s+(F^(f^F)&D)|0,C=(B=r+(e^(o^e)&Q)|0)>>>0>>0?C+1|0:C,r=(s=pA(Q,D,41)^l)+B|0,B=(h^_)+C|0,B=r>>>0>>0?B+1|0:B,r=(p=i[(C=b=(s=48|H)+g|0)>>2])+r|0,C=i[C+4>>2]+B|0,C=r>>>0

>>0?C+1|0:C,B=(B=r)+(s=i[(r=s+34144|0)>>2])|0,C=i[r+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,p=B,s=B,r=G+B|0,B=C+E|0,s=B=r>>>0>>0?B+1|0:B,i[I+40>>2]=r,i[I+44>>2]=B,B=pA(y,a,28),E=h,l=pA(y,a,34)^B,_=h^E,C=((t|c)&a|t&c)+C|0,C=(B=(E=(u|w)&y|u&w)+p|0)>>>0>>0?C+1|0:C,E=(p=pA(y,a,39)^l)+B|0,B=(h^_)+C|0,B=E>>>0

>>0?B+1|0:B,p=E,E=B,i[I+8>>2]=p,i[I+12>>2]=B,B=pA(r,s,14),C=h,l=pA(r,s,18)^B,_=h^C,G=w,C=F+(f^(f^D)&s)|0,C=(B=e+(o^(Q^o)&r)|0)>>>0>>0?C+1|0:C,e=pA(r,s,41)^l,C=(h^_)+C|0,C=(B=e+B|0)>>>0>>0?C+1|0:C,B=(w=i[(F=R=(e=56|H)+g|0)>>2])+B|0,C=i[F+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(F=i[(e=e+34144|0)>>2])+B|0,C=i[e+4>>2]+C|0,w=B,e=G+B|0,B=C=B>>>0>>0?C+1|0:C,C=C+t|0,F=C=e>>>0>>0?C+1|0:C,i[I+32>>2]=e,i[I+36>>2]=C,C=pA(p,E,28),t=h,l=pA(p,E,34)^C,_=h^t,t=(C=w)+(w=(y|u)&p|y&u)|0,C=((a|c)&E|a&c)+B|0,C=t>>>0>>0?C+1|0:C,w=pA(p,E,39)^l,B=(h^_)+C|0,B=(t=w+t|0)>>>0>>0?B+1|0:B,w=t,t=B,i[I>>2]=w,i[I+4>>2]=B,B=pA(e,F,14),C=h,l=pA(e,F,18)^B,_=h^C,G=u,C=f+(D^(s^D)&F)|0,C=(B=o+(Q^(Q^r)&e)|0)>>>0>>0?C+1|0:C,o=pA(e,F,41)^l,C=(h^_)+C|0,C=(B=o+B|0)>>>0>>0?C+1|0:C,o=(o=B)+(u=i[(B=K=(f=64|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=o>>>0>>0?B+1|0:B,o=(f=i[(C=f+34144|0)>>2])+o|0,C=i[C+4>>2]+B|0,C=o>>>0>>0?C+1|0:C,f=o,B=C,C=C+c|0,u=C=(o=G+o|0)>>>0>>0?C+1|0:C,i[I+24>>2]=o,i[I+28>>2]=C,C=pA(w,t,28),c=h,l=pA(w,t,34)^C,c^=h,B=((E|a)&t|E&a)+B|0,B=(C=(C=f)+(f=(y|p)&w|y&p)|0)>>>0>>0?B+1|0:B,f=pA(w,t,39)^l,B=(h^c)+B|0,l=C=f+C|0,c=B=C>>>0>>0?B+1|0:B,i[I+56>>2]=C,i[I+60>>2]=B,B=pA(o,u,14),C=h,f=pA(o,u,18)^B,_=h^C,C=D+(s^(s^F)&u)|0,C=(B=Q+(r^(r^e)&o)|0)>>>0>>0?C+1|0:C,Q=(f=pA(o,u,41)^f)+B|0,B=(h^_)+C|0,B=Q>>>0>>0?B+1|0:B,Q=(D=i[(C=G=(f=72|H)+g|0)>>2])+Q|0,C=i[C+4>>2]+B|0,C=Q>>>0>>0?C+1|0:C,B=(B=Q)+(f=i[(Q=f+34144|0)>>2])|0,C=i[Q+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,f=B,Q=B+y|0,B=C+a|0,y=B=Q>>>0>>0?B+1|0:B,i[I+16>>2]=Q,i[I+20>>2]=B,B=pA(l,c,28),a=h,D=pA(l,c,34)^B,_=h^a,C=((E|t)&c|E&t)+C|0,C=(B=(a=(p|w)&l|p&w)+f|0)>>>0>>0?C+1|0:C,a=(f=pA(l,c,39)^D)+B|0,B=(h^_)+C|0,_=a,a=B=a>>>0>>0?B+1|0:B,i[I+48>>2]=_,i[I+52>>2]=B,B=pA(Q,y,14),C=h,f=pA(Q,y,18)^B,D=h^C,C=s+(F^(u^F)&y)|0,C=(B=r+(e^(o^e)&Q)|0)>>>0>>0?C+1|0:C,r=pA(Q,y,41)^f,C=(h^D)+C|0,C=(B=r+B|0)>>>0>>0?C+1|0:C,B=(D=i[(f=m=(r=80|H)+g|0)>>2])+B|0,C=i[f+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(f=i[(r=r+34144|0)>>2])+B|0,C=i[r+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,f=B,r=B+p|0,B=C,C=C+E|0,s=C=r>>>0>>0?C+1|0:C,i[I+8>>2]=r,i[I+12>>2]=C,C=pA(_,a,28),E=h,D=pA(_,a,34)^C,p=h^E,E=(C=f)+(f=(w|l)&_|w&l)|0,C=((t|c)&a|t&c)+B|0,C=E>>>0>>0?C+1|0:C,f=pA(_,a,39)^D,B=(h^p)+C|0,f=B=(E=f+E|0)>>>0>>0?B+1|0:B,i[I+40>>2]=E,i[I+44>>2]=B,B=pA(r,s,14),C=h,D=pA(r,s,18)^B,p=h^C,C=F+(u^(y^u)&s)|0,C=(B=e+(o^(Q^o)&r)|0)>>>0>>0?C+1|0:C,e=pA(r,s,41)^D,C=(h^p)+C|0,C=(B=e+B|0)>>>0>>0?C+1|0:C,e=(e=B)+(F=i[(B=N=(D=88|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=e>>>0>>0?B+1|0:B,e=(D=i[(C=D+34144|0)>>2])+e|0,C=i[C+4>>2]+B|0,C=e>>>0>>0?C+1|0:C,D=e,B=C,C=C+t|0,F=C=(e=e+w|0)>>>0>>0?C+1|0:C,i[I>>2]=e,i[I+4>>2]=C,C=pA(E,f,28),t=h,p=pA(E,f,34)^C,t^=h,B=((a|c)&f|a&c)+B|0,B=(C=(C=D)+(D=(l|_)&E|l&_)|0)>>>0>>0?B+1|0:B,D=pA(E,f,39)^p,B=(h^t)+B|0,t=C=D+C|0,D=B=C>>>0>>0?B+1|0:B,i[I+32>>2]=C,i[I+36>>2]=B,B=pA(e,F,14),C=h,p=pA(e,F,18)^B,w=h^C,C=u+(y^(s^y)&F)|0,C=(B=o+(Q^(Q^r)&e)|0)>>>0>>0?C+1|0:C,o=(u=pA(e,F,41)^p)+B|0,B=(h^w)+C|0,B=o>>>0>>0?B+1|0:B,o=(p=i[(C=X=(u=96|H)+g|0)>>2])+o|0,C=i[C+4>>2]+B|0,C=o>>>0

>>0?C+1|0:C,B=(B=o)+(u=i[(o=u+34144|0)>>2])|0,C=i[o+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,u=B,o=B+l|0,B=C+c|0,p=o,o=B=o>>>0>>0?B+1|0:B,i[I+56>>2]=p,i[I+60>>2]=B,B=pA(t,D,28),c=h,w=pA(t,D,34)^B,l=h^c,C=((a|f)&D|a&f)+C|0,C=(B=(c=(E|_)&t|E&_)+u|0)>>>0>>0?C+1|0:C,c=(u=pA(t,D,39)^w)+B|0,B=(h^l)+C|0,B=c>>>0>>0?B+1|0:B,u=c,c=B,i[I+24>>2]=u,i[I+28>>2]=B,B=pA(p,o,14),C=h,w=pA(p,o,18)^B,l=h^C,C=y+(s^(s^F)&o)|0,C=(B=Q+(r^(r^e)&p)|0)>>>0>>0?C+1|0:C,Q=pA(p,o,41)^w,C=(h^l)+C|0,C=(B=Q+B|0)>>>0>>0?C+1|0:C,B=(w=i[(y=T=(Q=104|H)+g|0)>>2])+B|0,C=i[y+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,B=(y=i[(Q=Q+34144|0)>>2])+B|0,C=i[Q+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,y=B,Q=B+_|0,B=C,C=C+a|0,w=Q,Q=C=Q>>>0>>0?C+1|0:C,i[I+48>>2]=w,i[I+52>>2]=C,C=pA(u,c,28),a=h,l=pA(u,c,34)^C,_=h^a,a=(C=y)+(y=(E|t)&u|E&t)|0,C=((f|D)&c|f&D)+B|0,C=a>>>0>>0?C+1|0:C,y=pA(u,c,39)^l,B=(h^_)+C|0,B=(a=y+a|0)>>>0>>0?B+1|0:B,y=a,a=B,i[I+16>>2]=y,i[I+20>>2]=B,B=pA(w,Q,14),C=h,l=pA(w,Q,18)^B,_=h^C,C=s+(F^(o^F)&Q)|0,C=(B=r+(e^(e^p)&w)|0)>>>0>>0?C+1|0:C,r=pA(w,Q,41)^l,C=(h^_)+C|0,C=(B=r+B|0)>>>0>>0?C+1|0:C,r=(r=B)+(_=i[(B=l=(s=112|H)+g|0)>>2])|0,B=i[B+4>>2]+C|0,B=r>>>0<_>>>0?B+1|0:B,r=(s=i[(C=s+34144|0)>>2])+r|0,C=i[C+4>>2]+B|0,C=r>>>0>>0?C+1|0:C,s=r,B=C,C=f+C|0,f=r=E+r|0,E=C=E>>>0>r>>>0?C+1|0:C,i[I+40>>2]=r,i[I+44>>2]=C,C=pA(y,a,28),r=h,_=pA(y,a,34)^C,r^=h,B=((c|D)&a|c&D)+B|0,B=(C=(C=s)+(s=(t|u)&y|t&u)|0)>>>0>>0?B+1|0:B,s=pA(y,a,39)^_,B=(h^r)+B|0,B=(C=s+C|0)>>>0>>0?B+1|0:B,s=C,r=B,i[I+8>>2]=C,i[I+12>>2]=B,B=pA(f,E,14),C=h,_=pA(f,E,18)^B,Y=h^C,C=F+(o^(Q^o)&E)|0,C=(B=e+(p^(p^w)&f)|0)>>>0>>0?C+1|0:C,E=(o=pA(f,E,41)^_)+B|0,B=(h^Y)+C|0,B=E>>>0>>0?B+1|0:B,E=(e=i[(C=o=(Q=120|H)+g|0)>>2])+E|0,C=i[C+4>>2]+B|0,C=E>>>0>>0?C+1|0:C,B=(B=E)+(Q=i[(E=Q+34144|0)>>2])|0,C=i[E+4>>2]+C|0,C=B>>>0>>0?C+1|0:C,Q=B,E=t+B|0,B=C+D|0,i[I+32>>2]=E,i[I+36>>2]=E>>>0>>0?B+1|0:B,B=pA(s,r,28),E=h,t=pA(s,r,34)^B,E^=h,C=((a|c)&r|a&c)+C|0,c=(B=(B=Q)+(Q=(y|u)&s|y&u)|0)+(a=pA(s,r,39)^t)|0,B=(h^E)+(B>>>0>>0?C+1|0:C)|0,i[I>>2]=c,i[I+4>>2]=a>>>0>c>>>0?B+1|0:B,64==(0|L)){for(;g=(B=V<<3)+A|0,B=(k=i[(C=I+B|0)>>2])+i[g>>2]|0,C=i[g+4>>2]+i[C+4>>2]|0,i[g>>2]=B,i[g+4>>2]=B>>>0>>0?C+1|0:C,8!=(0|(V=V+1|0)););break}t=((L=L+16|0)<<3)+g|0,f=B=i[l+4>>2],C=B>>>6|0,B=((63&B)<<26|(Y=i[l>>2])>>>6)^pA(Y,B,19),C^=h,B=(B=pA(Y,f,61)^B)+(c=d=i[G>>2])|0,C=(w=i[G+4>>2])+(h^C)|0,C=B>>>0>>0?C+1|0:C,B=(c=i[k>>2])+B|0,C=i[k+4>>2]+C|0,Q=B,B=B>>>0>>0?C+1|0:C,C=(a=c=i[v+4>>2])>>>7|0,c=((127&a)<<25|(E=i[v>>2])>>>7)^pA(E,a,1),C^=h,r=Q,Q=pA(E,a,8)^c,C=(h^C)+B|0,G=c=r+Q|0,c=C=Q>>>0>c>>>0?C+1|0:C,i[t>>2]=G,i[t+4>>2]=C,B=(B=E)+(E=J=i[m>>2])|0,C=(l=i[m+4>>2])+a|0,C=B>>>0>>0?C+1|0:C,E=B,B=C,D=a=i[o+4>>2],C=a>>>6|0,a=((63&a)<<26|(m=i[o>>2])>>>6)^pA(m,a,19),t=h^C,a=pA(m,D,61)^a,B=(h^t)+B|0,o=C=a+E|0,C=C>>>0>>0?B+1|0:B,B=(E=a=i[M+4>>2])>>>7|0,a=((127&E)<<25|(t=i[M>>2])>>>7)^pA(t,E,1),Q=h^B,a=pA(t,E,8)^a,C=(h^Q)+C|0,p=B=a+o|0,a=C=B>>>0>>0?C+1|0:C,i[k+136>>2]=B,i[k+140>>2]=C,B=(_=i[N+4>>2])+E|0,E=C=(C=t)+(t=x=i[N>>2])|0,C=C>>>0>>0?B+1|0:B,B=pA(G,c,19),t=h,o=pA(G,c,61)^((63&c)<<26|G>>>6)^B,C=(h^c>>>6^t)+C|0,Q=E=o+E|0,B=E>>>0>>0?C+1|0:C,t=E=i[P+4>>2],C=E>>>7|0,E=((127&E)<<25|(o=i[P>>2])>>>7)^pA(o,E,1),C^=h,r=Q,Q=pA(o,t,8)^E,C=(h^C)+B|0,s=E=r+Q|0,E=C=E>>>0>>0?C+1|0:C,i[k+144>>2]=s,i[k+148>>2]=C,B=(v=i[X+4>>2])+t|0,t=C=(C=o)+(o=N=i[X>>2])|0,C=C>>>0>>0?B+1|0:B,B=pA(p,a,19),o=h,Q=pA(p,a,61)^((63&a)<<26|p>>>6)^B,C=(h^a>>>6^o)+C|0,B=Q>>>0>(r=t=Q+t|0)>>>0?C+1|0:C,C=(o=t=i[S+4>>2])>>>7|0,t=((127&o)<<25|(Q=i[S>>2])>>>7)^pA(Q,o,1),C^=h,y=r,r=pA(Q,o,8)^t,C=(h^C)+B|0,F=t=y+r|0,t=C=t>>>0>>0?C+1|0:C,i[k+152>>2]=F,i[k+156>>2]=C,B=(P=i[T+4>>2])+o|0,o=C=(C=Q)+(Q=M=i[T>>2])|0,C=C>>>0>>0?B+1|0:B,B=pA(s,E,19),Q=h,r=pA(s,E,61)^((63&E)<<26|s>>>6)^B,B=(h^E>>>6^Q)+C|0,e=o=r+o|0,C=o>>>0>>0?B+1|0:B,r=o=i[U+4>>2],B=o>>>7|0,o=((127&o)<<25|(Q=i[U>>2])>>>7)^pA(Q,o,1),u=h^B,o=pA(Q,r,8)^o,C=(h^u)+C|0,u=B=o+e|0,o=C=B>>>0>>0?C+1|0:C,i[k+160>>2]=B,i[k+164>>2]=C,B=r+f|0,B=(C=Q+Y|0)>>>0>>0?B+1|0:B,Q=C,C=B,B=pA(F,t,19),r=h,e=pA(F,t,61)^((63&t)<<26|F>>>6)^B,C=(h^t>>>6^r)+C|0,C=(Q=e+Q|0)>>>0>>0?C+1|0:C,e=Q,Q=C,C=(r=i[b+4>>2])>>>7|0,y=((127&r)<<25|(B=i[b>>2])>>>7)^pA(B,r,1),C^=h,y=pA(B,r,8)^y,C=(h^C)+Q|0,C=(e=y+e|0)>>>0>>0?C+1|0:C,y=e,Q=C,i[k+168>>2]=e,i[k+172>>2]=C,C=B,B=r+D|0,C=C>>>0>(r=e=C+m|0)>>>0?B+1|0:B,B=pA(u,o,19),e=h,H=pA(u,o,61)^((63&o)<<26|u>>>6)^B,C=(h^o>>>6^e)+C|0,S=r=H+r|0,B=r>>>0>>0?C+1|0:C,H=r=i[R+4>>2],C=r>>>7|0,r=((127&r)<<25|(e=i[R>>2])>>>7)^pA(e,r,1),U=h^C,r=pA(e,H,8)^r,B=(h^U)+B|0,S=C=r+S|0,r=B=C>>>0>>0?B+1|0:B,i[k+176>>2]=C,i[k+180>>2]=B,B=c+H|0,B=(C=e+G|0)>>>0>>0?B+1|0:B,e=C,C=B,B=pA(y,Q,19),H=h,U=pA(y,Q,61)^((63&Q)<<26|y>>>6)^B,C=(h^Q>>>6^H)+C|0,b=e=U+e|0,e=e>>>0>>0?C+1|0:C,U=H=i[K+4>>2],C=H>>>7|0,H=((127&H)<<25|(B=i[K>>2])>>>7)^pA(B,H,1),C^=h,R=b,b=pA(B,U,8)^H,C=(h^C)+e|0,e=C=(H=R+b|0)>>>0>>0?C+1|0:C,i[k+184>>2]=H,i[k+188>>2]=C,C=B,B=a+U|0,C=C>>>0>(a=p=C+p|0)>>>0?B+1|0:B,B=pA(S,r,19),p=h,U=pA(S,r,61)^((63&r)<<26|S>>>6)^B,B=(h^r>>>6^p)+C|0,C=B=(a=U+a|0)>>>0>>0?B+1|0:B,B=pA(d,w,1),p=h,U=pA(d,w,8)^((127&w)<<25|d>>>7)^B,C=(h^w>>>7^p)+C|0,p=a=U+a|0,a=C=a>>>0>>0?C+1|0:C,i[k+192>>2]=p,i[k+196>>2]=C,B=E+w|0,E=C=s+d|0,C=B=C>>>0>>0?B+1|0:B,B=pA(H,e,19),s=h,w=pA(H,e,61)^((63&e)<<26|H>>>6)^B,B=(h^e>>>6^s)+C|0,C=B=(E=w+E|0)>>>0>>0?B+1|0:B,B=pA(J,l,1),s=h,w=pA(J,l,8)^((127&l)<<25|J>>>7)^B,C=(h^l>>>7^s)+C|0,s=E=w+E|0,E=C=E>>>0>>0?C+1|0:C,i[k+200>>2]=s,i[k+204>>2]=C,B=t+l|0,t=C=F+J|0,C=B=C>>>0>>0?B+1|0:B,B=pA(p,a,19),F=h,w=pA(p,a,61)^((63&a)<<26|p>>>6)^B,B=(h^a>>>6^F)+C|0,C=B=(t=w+t|0)>>>0>>0?B+1|0:B,B=pA(x,_,1),F=h,w=pA(x,_,8)^((127&_)<<25|x>>>7)^B,C=(h^_>>>7^F)+C|0,F=t=w+t|0,t=C=t>>>0>>0?C+1|0:C,i[k+208>>2]=F,i[k+212>>2]=C,B=o+_|0,o=C=u+x|0,C=B=C>>>0>>0?B+1|0:B,B=pA(s,E,19),u=h,w=o,o=B,B=E>>>6|0,o=pA(s,E,61)^o^((63&E)<<26|s>>>6),B=(h^B^u)+C|0,C=B=(E=w+o|0)>>>0>>0?B+1|0:B,B=pA(N,v,1),o=h,s=pA(N,v,8)^((127&v)<<25|N>>>7)^B,C=(h^v>>>7^o)+C|0,o=E=s+E|0,E=C=E>>>0>>0?C+1|0:C,i[k+216>>2]=o,i[k+220>>2]=C,B=Q+v|0,Q=C=y+N|0,C=B=C>>>0>>0?B+1|0:B,B=pA(F,t,19),s=h,y=Q,Q=B,B=t>>>6|0,Q=pA(F,t,61)^Q^((63&t)<<26|F>>>6),B=(h^B^s)+C|0,C=B=Q>>>0>(t=y+Q|0)>>>0?B+1|0:B,B=pA(M,P,1),Q=h,s=pA(M,P,8)^((127&P)<<25|M>>>7)^B,C=(h^P>>>7^Q)+C|0,t=C=(Q=t=s+t|0)>>>0>>0?C+1|0:C,i[k+224>>2]=Q,i[k+228>>2]=C,B=r+P|0,r=C=S+M|0,C=B=C>>>0>>0?B+1|0:B,B=pA(o,E,19),s=h,y=B,B=E>>>6|0,o=pA(o,E,61)^y^((63&E)<<26|o>>>6),B=(h^B^s)+C|0,C=B=(E=o+r|0)>>>0>>0?B+1|0:B,B=pA(Y,f,1),o=h,r=pA(Y,f,8)^((127&f)<<25|Y>>>7)^B,C=(h^f>>>7^o)+C|0,o=E=r+E|0,E=C=E>>>0>>0?C+1|0:C,i[k+232>>2]=o,i[k+236>>2]=C,B=e+f|0,r=C=H+Y|0,C=B=C>>>0>>0?B+1|0:B,B=pA(Q,t,19),e=h,f=B,B=t>>>6|0,Q=pA(Q,t,61)^f^((63&t)<<26|Q>>>6),B=(h^B^e)+C|0,B=Q>>>0>(t=Q+r|0)>>>0?B+1|0:B,Q=t,C=B,B=pA(m,D,1),r=h,Q=(e=pA(m,D,8)^((127&D)<<25|m>>>7)^B)+Q|0,C=(h^D>>>7^r)+C|0,i[(t=k)+240>>2]=Q,i[t+244>>2]=Q>>>0>>0?C+1|0:C,B=a+D|0,a=C=p+m|0,C=B=C>>>0

>>0?B+1|0:B,B=pA(o,E,19),t=h,Q=B,B=E>>>6|0,E=pA(o,E,61)^Q^((63&E)<<26|o>>>6),B=(h^B^t)+C|0,C=B=E>>>0>(a=E+a|0)>>>0?B+1|0:B,B=pA(G,c,1),E=h,t=B,B=c>>>7|0,c=(Q=a)+(a=pA(G,c,8)^t^((127&c)<<25|G>>>7))|0,C=(h^B^E)+C|0,i[k+248>>2]=c,i[k+252>>2]=a>>>0>c>>>0?C+1|0:C}}function l(A){var I,g,B,C,E,i,a,r,o,t,e,f,c,y,s,w,D,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0;f=uI(A),gA=n[A+2|0]|n[A+3|0]<<8|n[A+4|0]<<16|n[A+5|0]<<24,c=uI(A+5|0),z=h,BA=n[A+7|0]|n[A+8|0]<<8|n[A+9|0]<<16|n[A+10|0]<<24,Z=n[A+10|0]|n[A+11|0]<<8|n[A+12|0]<<16|n[A+13|0]<<24,y=uI(A+13|0),O=h,L=n[A+15|0]|n[A+16|0]<<8|n[A+17|0]<<16|n[A+18|0]<<24,j=uI(A+18|0),M=h,G=uI(A+21|0),k=n[A+23|0]|n[A+24|0]<<8|n[A+25|0]<<16|n[A+26|0]<<24,F=uI(A+26|0),p=h,K=n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,$=n[A+31|0]|n[A+32|0]<<8|n[A+33|0]<<16|n[A+34|0]<<24,s=uI(A+34|0),q=h,X=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,W=uI(A+39|0),Y=h,H=uI(A+42|0),l=n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24,_=uI(A+47|0),F=2097151&((3&p)<<30|F>>>2),p=qA(I=2097151&((3&(u=h))<<30|_>>>2),0,136657,0)+F|0,u=h,u=p>>>0>>0?u+1|0:u,F=(_=qA(g=(n[A+49|0]|n[A+50|0]<<8|n[A+51|0]<<16|n[A+52|0]<<24)>>>7&2097151,0,-997805,-1))+p|0,p=h+u|0,p=F>>>0<_>>>0?p+1|0:p,u=(_=qA(B=(n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24)>>>4&2097151,0,654183,0))+F|0,F=h+p|0,F=u>>>0<_>>>0?F+1|0:F,m=u,u=uI(A+55|0),_=qA(C=2097151&((1&(p=h))<<31|u>>>1),0,470296,0),p=h+F|0,p=(u=m+_|0)>>>0<_>>>0?p+1|0:p,F=(_=qA(E=(n[A+57|0]|n[A+58|0]<<8|n[A+59|0]<<16|n[A+60|0]<<24)>>>6&2097151,0,666643,0))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,_=F,U=u,F=u,b=l>>>5&2097151,l=2097151&H,u=qA(i=(n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24)>>>3|0,0,-683901,-1)+l|0,p=h,p=u>>>0>>0?p+1|0:p,l=u,d=p,T=u=p-((u>>>0<4293918720)-1|0)|0,p=b,b=(2097151&u)<<11|(m=l- -1048576|0)>>>21,u>>=21,r=H=p+b|0,S=u=H>>>0>>0?u+1|0:u,H=qA(H,u,-683901,-1),u=h+F|0,J=p=H+_|0,b=p>>>0>>0?u+1|0:u,u=qA(I,x,-997805,-1),p=h,p=(u=(F=k>>>5&2097151)+u|0)>>>0>>0?p+1|0:p,k=qA(g,0,654183,0),F=h+p|0,F=(u=k+u|0)>>>0>>0?F+1|0:F,p=(k=qA(B,0,470296,0))+u|0,u=h+F|0,u=p>>>0>>0?u+1|0:u,F=(k=qA(C,P,666643,0))+p|0,p=h+u|0,H=F,F=F>>>0>>0?p+1|0:p,k=2097151&G,p=qA(I,x,654183,0)+k|0,u=h,u=p>>>0>>0?u+1|0:u,k=(G=qA(g,0,470296,0))+p|0,p=h+u|0,p=k>>>0>>0?p+1|0:p,G=qA(B,0,666643,0),u=h+p|0,G=u=(k=G+k|0)>>>0>>0?u+1|0:u,V=u=u-((k>>>0<4293918720)-1|0)|0,F=(p=u>>>21|0)+F|0,F=(u=(N=H)+(H=(2097151&u)<<11|(v=k- -1048576|0)>>>21)|0)>>>0>>0?F+1|0:F,H=u,N=F,R=u=F-((u>>>0<4293918720)-1|0)|0,U=U-((_>>>0<4293918720)-1|0)|0,t=_- -1048576|0,p=J,J=(2097151&u)<<11|(F=H- -1048576|0)>>>21,u=(u>>21)+b|0,u=((p=_=p+J|0)>>>0>>0?u+1|0:u)-(((_=-2097152&t)>>>0>p>>>0)+U|0)|0,CA=(p=p-_|0)-(_=-2097152&(e=p- -1048576|0))|0,QA=u-((b=u-((p>>>0<4293918720)-1|0)|0)+(p>>>0<_>>>0)|0)|0,u=qA(r,S,136657,0)+H|0,p=N+h|0,J=u-(F&=-2097152)|0,R=(p=u>>>0>>0?p+1|0:p)-((u>>>0>>0)+R|0)|0,m=l-(p=-2097152&m)|0,AA=d-((p>>>0>l>>>0)+T|0)|0,F=2097151&((7&(p=Y))<<29|W>>>3),p=qA(i,0,136657,0)+F|0,u=h,u=p>>>0>>0?u+1|0:u,F=(_=qA(E,0,-683901,-1))+p|0,p=h+u|0,H=F,l=F>>>0<_>>>0?p+1|0:p,p=qA(C,P,-683901,-1),u=h,u=(p=(F=X>>>6&2097151)+p|0)>>>0>>0?u+1|0:u,_=qA(i,0,-997805,-1),F=h+u|0,F=(p=_+p|0)>>>0<_>>>0?F+1|0:F,u=(_=qA(E,0,136657,0))+p|0,p=h+F|0,p=u>>>0<_>>>0?p+1|0:p,_=u,d=p,T=p=p-((u>>>0<4293918720)-1|0)|0,X=u- -1048576|0,u=(F=p>>21)+l|0,l=p=(Y=H)+(H=(2097151&p)<<11|X>>>21)|0,Y=u=p>>>0>>0?u+1|0:u,N=p=u-((p>>>0<4293918720)-1|0)|0,u=m,m=(2097151&p)<<11|(H=l- -1048576|0)>>>21,p=(p>>21)+AA|0,o=u=u+m|0,m=p=u>>>0>>0?p+1|0:p,F=qA(u,p,-683901,-1),p=h+R|0,EA=u=F+J|0,R=u>>>0>>0?p+1|0:p,W=k,J=G,F=2097151&((7&(p=M))<<29|j>>>3),p=qA(I,x,470296,0)+F|0,u=h,u=p>>>0>>0?u+1|0:u,F=qA(g,0,666643,0),u=h+u|0,G=p=F+p|0,F=p>>>0>>0?u+1|0:u,u=qA(I,x,666643,0),p=h,p=(u=(k=L>>>6&2097151)+u|0)>>>0>>0?p+1|0:p,k=u,j=p,AA=p=p-((u>>>0<4293918720)-1|0)|0,u=(u=p>>>21|0)+F|0,F=p=(M=G)+(G=(2097151&p)<<11|(L=k- -1048576|0)>>>21)|0,IA=u=p>>>0>>0?u+1|0:u,w=p=u-((p>>>0<4293918720)-1|0)|0,G=Y-(((u=-2097152&H)>>>0>l>>>0)+N|0)|0,a=l-u|0,H=(2097151&p)<<11|(M=F- -1048576|0)>>>21,p=(p>>>21|0)+J|0,p=(l=H+W|0)>>>0>>0?p+1|0:p,l=((u=l)-(H=-2097152&v)|0)+(v=qA(r,S,-997805,-1))|0,u=h+(p-((8191&V)+(u>>>0>>0)|0)|0)|0,u=l>>>0>>0?u+1|0:u,p=l,l=qA(o,m,136657,0),u=h+u|0,u=(p=p+l|0)>>>0>>0?u+1|0:u,l=(H=qA(a,G,-683901,-1))+p|0,p=h+u|0,V=p=l>>>0>>0?p+1|0:p,N=u=p-((l>>>0<4293918720)-1|0)|0,Y=(2097151&u)<<11|(v=l- -1048576|0)>>>21,u=(u>>21)+R|0,R=u=(H=Y+EA|0)>>>0>>0?u+1|0:u,p=(p=(u=u-((H>>>0<4293918720)-1|0)|0)>>21)+QA|0,p=(J=(2097151&u)<<11|(Y=H- -1048576|0)>>>21)>>>0>(W=J+CA|0)>>>0?p+1|0:p,J=W,W=p,CA=H-(p=-2097152&Y)|0,QA=R-((p>>>0>H>>>0)+u|0)|0,EA=l-(p=-2097152&v)|0,D=V-((p>>>0>l>>>0)+N|0)|0,p=(l=qA(r,S,654183,0))+(F-(u=-2097152&M)|0)|0,F=h+(IA-((8191&w)+(u>>>0>F>>>0)|0)|0)|0,F=p>>>0>>0?F+1|0:F,u=(l=qA(o,m,-997805,-1))+p|0,p=h+F|0,p=u>>>0>>0?p+1|0:p,F=(l=qA(a,G,136657,0))+u|0,u=h+p|0,V=F,M=F>>>0>>0?u+1|0:u,H=_-(p=-2097152&X)|0,T=d-((p>>>0>_>>>0)+T|0)|0,_=2097151&((1&(p=q))<<31|s>>>1),u=qA(B,0,-683901,-1)+_|0,p=h,p=u>>>0<_>>>0?p+1|0:p,F=qA(C,P,136657,0),p=h+p|0,p=(u=F+u|0)>>>0>>0?p+1|0:p,F=(_=qA(i,0,654183,0))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,p=F,F=qA(E,0,-997805,-1),u=h+u|0,v=p=p+F|0,l=p>>>0>>0?u+1|0:u,p=qA(g,0,-683901,-1),F=h,F=(p=(u=$>>>4&2097151)+p|0)>>>0>>0?F+1|0:F,u=(_=qA(B,0,136657,0))+p|0,p=h+F|0,p=u>>>0<_>>>0?p+1|0:p,F=(_=qA(C,P,-997805,-1))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,_=qA(i,0,470296,0),p=h+u|0,p=(F=_+F|0)>>>0<_>>>0?p+1|0:p,_=qA(E,0,654183,0),u=h+p|0,u=(F=_+F|0)>>>0<_>>>0?u+1|0:u,_=F,Y=u,$=u=u-((F>>>0<4293918720)-1|0)|0,p=(p=u>>21)+l|0,l=u=(F=(2097151&u)<<11|(X=F- -1048576|0)>>>21)+v|0,q=p=u>>>0>>0?p+1|0:p,d=u=p-((u>>>0<4293918720)-1|0)|0,p=H,H=(2097151&u)<<11|(v=l- -1048576|0)>>>21,u=(u>>21)+T|0,N=F=p+H|0,H=u=F>>>0>>0?u+1|0:u,u=qA(F,u,-683901,-1),F=h+M|0,T=p=u+V|0,M=p>>>0>>0?F+1|0:F,v=q-(((p=-2097152&v)>>>0>l>>>0)+d|0)|0,R=l-p|0,p=(F=qA(r,S,470296,0))+(k-(u=-2097152&L)|0)|0,u=h+(j-((2047&AA)+(u>>>0>k>>>0)|0)|0)|0,u=p>>>0>>0?u+1|0:u,F=qA(o,m,654183,0),u=h+u|0,u=(p=F+p|0)>>>0>>0?u+1|0:u,l=qA(a,G,-997805,-1),F=h+u|0,F=(p=l+p|0)>>>0>>0?F+1|0:F,u=(l=qA(N,H,136657,0))+p|0,p=h+F|0,p=u>>>0>>0?p+1|0:p,F=(l=qA(R,v,-683901,-1))+u|0,u=h+p|0,q=u=F>>>0>>0?u+1|0:u,d=u=u-((F>>>0<4293918720)-1|0)|0,p=(p=u>>21)+M|0,p=(u=(l=(2097151&u)<<11|(k=F- -1048576|0)>>>21)+T|0)>>>0>>0?p+1|0:p,l=u,M=p,T=u=p-((u>>>0<4293918720)-1|0)|0,j=(2097151&u)<<11|(L=l- -1048576|0)>>>21,u=(u>>21)+D|0,u=(V=j+EA|0)>>>0>>0?u+1|0:u,j=V,V=u,AA=l-(p=-2097152&L)|0,T=M-((p>>>0>l>>>0)+T|0)|0,IA=F-(p=-2097152&k)|0,q=q-((p>>>0>F>>>0)+d|0)|0,l=2097151&((1&(p=O))<<31|y>>>1),u=qA(r,S,666643,0)+l|0,p=h,p=u>>>0>>0?p+1|0:p,F=(l=qA(o,m,470296,0))+u|0,u=h+p|0,u=F>>>0>>0?u+1|0:u,l=qA(a,G,654183,0),p=h+u|0,p=(F=l+F|0)>>>0>>0?p+1|0:p,u=(l=qA(N,H,-997805,-1))+F|0,F=h+p|0,F=u>>>0>>0?F+1|0:F,p=(l=qA(R,v,136657,0))+u|0,u=h+F|0,k=p,l=p>>>0>>0?u+1|0:u,S=_-(p=-2097152&X)|0,M=Y-((p>>>0>_>>>0)+$|0)|0,p=qA(I,x,-683901,-1),u=h,u=(p=(F=K>>>7&2097151)+p|0)>>>0>>0?u+1|0:u,_=qA(g,0,136657,0),F=h+u|0,F=(p=_+p|0)>>>0<_>>>0?F+1|0:F,u=(_=qA(B,0,-997805,-1))+p|0,p=h+F|0,p=u>>>0<_>>>0?p+1|0:p,F=(_=qA(C,P,654183,0))+u|0,u=h+p|0,u=F>>>0<_>>>0?u+1|0:u,_=qA(i,0,666643,0),p=h+u|0,p=(F=_+F|0)>>>0<_>>>0?p+1|0:p,_=qA(E,0,470296,0),u=h+p|0,p=u=(F=_+F|0)>>>0<_>>>0?u+1|0:u,u=U>>21,_=(U=(2097151&U)<<11|t>>>21)+F|0,F=p+u|0,X=F=_>>>0>>0?F+1|0:F,L=p=F-((_>>>0<4293918720)-1|0)|0,U=(2097151&p)<<11|(x=_- -1048576|0)>>>21,p=(p>>21)+M|0,O=F=U+S|0,U=p=F>>>0>>0?p+1|0:p,F=qA(F,p,-683901,-1),u=h+l|0,k=p=F+k|0,l=p>>>0>>0?u+1|0:u,p=qA(o,m,666643,0),F=h,F=(p=(u=Z>>>4&2097151)+p|0)>>>0>>0?F+1|0:F,u=(P=qA(a,G,470296,0))+p|0,p=h+F|0,p=u>>>0

>>0?p+1|0:p,F=(P=qA(N,H,654183,0))+u|0,u=h+p|0,u=F>>>0

>>0?u+1|0:u,p=F,F=qA(R,v,-997805,-1),u=h+u|0,u=(p=p+F|0)>>>0>>0?u+1|0:u,F=(P=qA(O,U,136657,0))+p|0,p=h+u|0,m=p=F>>>0

>>0?p+1|0:p,M=p=p-((F>>>0<4293918720)-1|0)|0,S=(2097151&p)<<11|(P=F- -1048576|0)>>>21,p=(p>>21)+l|0,k=p=(l=k=S+k|0)>>>0>>0?p+1|0:p,Y=p=p-((l>>>0<4293918720)-1|0)|0,K=(2097151&p)<<11|(S=l- -1048576|0)>>>21,p=(p>>21)+q|0,$=Z=K+IA|0,Z=K>>>0>Z>>>0?p+1|0:p,u=_-(p=-2097152&x)|0,_=X-((p>>>0>_>>>0)+L|0)|0,p=(p=b>>21)+_|0,_=u=(b=(2097151&b)<<11|e>>>21)+u|0,X=p=u>>>0>>0?p+1|0:p,L=u=p-((u>>>0<4293918720)-1|0)|0,b=p=u>>21,d=l,l=qA(K=(2097151&u)<<11|(x=_- -1048576|0)>>>21,p,-683901,-1),u=h+k|0,u=(p=d+l|0)>>>0>>0?u+1|0:u,q=p-(l=-2097152&S)|0,Y=u-((p>>>0>>0)+Y|0)|0,u=qA(K,b,136657,0)+F|0,p=m+h|0,p=u>>>0>>0?p+1|0:p,d=u-(F=-2097152&P)|0,IA=p-((u>>>0>>0)+M|0)|0,p=qA(a,G,666643,0),u=h,u=(p=(F=BA>>>7&2097151)+p|0)>>>0>>0?u+1|0:u,l=qA(N,H,470296,0),F=h+u|0,F=(p=l+p|0)>>>0>>0?F+1|0:F,u=(l=qA(R,v,654183,0))+p|0,p=h+F|0,p=u>>>0>>0?p+1|0:p,F=qA(O,U,-997805,-1),p=h+p|0,S=u=F+u|0,F=u>>>0>>0?p+1|0:p,l=2097151&((3&(p=z))<<30|c>>>2),p=qA(N,H,666643,0)+l|0,u=h,u=p>>>0>>0?u+1|0:u,l=qA(R,v,470296,0),u=h+u|0,u=(p=l+p|0)>>>0>>0?u+1|0:u,l=(k=qA(O,U,654183,0))+p|0,p=h+u|0,G=p=l>>>0>>0?p+1|0:p,P=p=p-((l>>>0<4293918720)-1|0)|0,u=S,S=(2097151&p)<<11|(k=l- -1048576|0)>>>21,p=(p>>21)+F|0,S=p=(F=H=u+S|0)>>>0>>0?p+1|0:p,m=p=p-((F>>>0<4293918720)-1|0)|0,z=(2097151&p)<<11|(H=F- -1048576|0)>>>21,p=(p>>21)+IA|0,p=(M=z+d|0)>>>0>>0?p+1|0:p,z=M,M=p,p=(u=qA(K,b,-997805,-1))+F|0,F=h+S|0,F=p>>>0>>0?F+1|0:F,BA=p-(u=-2097152&H)|0,d=F-((p>>>0>>0)+m|0)|0,p=qA(K,b,654183,0)+l|0,u=G+h|0,m=p-(F=-2097152&k)|0,N=(u=p>>>0>>0?u+1|0:u)-((p>>>0>>0)+P|0)|0,p=qA(R,v,666643,0),F=h,F=(p=(u=gA>>>5&2097151)+p|0)>>>0>>0?F+1|0:F,u=(l=qA(O,U,470296,0))+p|0,p=h+F|0,k=u,F=u>>>0>>0?p+1|0:p,l=2097151&f,u=qA(O,U,666643,0)+l|0,p=h,p=u>>>0>>0?p+1|0:p,l=u,G=p,U=p=p-((u>>>0<4293918720)-1|0)|0,F=(u=p>>21)+F|0,F=(p=(S=k)+(k=(2097151&p)<<11|(H=l- -1048576|0)>>>21)|0)>>>0>>0?F+1|0:F,k=p,P=F,S=p=F-((p>>>0<4293918720)-1|0)|0,v=(2097151&p)<<11|(F=k- -1048576|0)>>>21,p=(p>>21)+N|0,p=(m=v+m|0)>>>0>>0?p+1|0:p,v=m,m=p,p=qA(K,b,470296,0)+k|0,u=P+h|0,u=p>>>0>>0?u+1|0:u,k=p-(F&=-2097152)|0,F=u-((p>>>0>>0)+S|0)|0,S=k,u=(k=qA(K,b,666643,0))+(l-(p=-2097152&H)|0)|0,p=h+(G-((p>>>0>l>>>0)+U|0)|0)|0,p=u>>>0>>0?p+1|0:p,k=u,l=u,u=(u=p>>21)+F|0,H=p=S+(l=(2097151&p)<<11|l>>>21)|0,l=(2097151&(u=p>>>0>>0?u+1|0:u))<<11|(F=p)>>>21,F=(p=u>>21)+m|0,G=u=l+v|0,l=(2097151&(F=(p=u)>>>0>>0?F+1|0:F))<<11|p>>>21,p=(u=F>>21)+d|0,P=F=l+BA|0,l=(2097151&(p=(u=F)>>>0>>0?p+1|0:p))<<11|u>>>21,u=(F=p>>21)+M|0,S=p=l+z|0,F=p,p=(p=(u=p>>>0>>0?u+1|0:u)>>21)+Y|0,p=(u=(F=(2097151&u)<<11|F>>>21)+q|0)>>>0>>0?p+1|0:p,m=u,F=u,u=(u=p>>21)+Z|0,v=p=(F=(2097151&p)<<11|F>>>21)+$|0,l=(2097151&(u=p>>>0>>0?u+1|0:u))<<11|(F=p)>>>21,F=(p=u>>21)+T|0,M=u=l+AA|0,l=(2097151&(F=(p=u)>>>0>>0?F+1|0:F))<<11|p>>>21,p=(u=F>>21)+V|0,Y=F=l+j|0,l=(2097151&(p=(u=F)>>>0>>0?p+1|0:p))<<11|u>>>21,u=(F=p>>21)+QA|0,gA=p=l+CA|0,F=p,p=(p=(u=p>>>0>>0?u+1|0:u)>>21)+W|0,p=(u=(F=(2097151&u)<<11|F>>>21)+J|0)>>>0>>0?p+1|0:p,z=u,F=u,u=p>>21,p=(2097151&p)<<11|F>>>21,l=_-(F=-2097152&x)|0,F=(X-((F>>>0>_>>>0)+L|0)|0)+u|0,x=p=p+l|0,b=(2097151&(F=p>>>0>>0?F+1|0:F))<<11|p>>>21,l=p=F>>21,F=2097151&k,u=qA(b,p,666643,0)+F|0,p=h,k=u,_=p=u>>>0>>0?p+1|0:p,Q[0|A]=u,Q[A+1|0]=(255&p)<<24|u>>>8,F=2097151&H,p=qA(b,l,470296,0)+F|0,u=h,F=(_>>21)+(u=p>>>0>>0?u+1|0:u)|0,F=(H=(U=(2097151&_)<<11|k>>>21)+p|0)>>>0>>0?F+1|0:F,Q[A+4|0]=(2047&F)<<21|H>>>11,Q[A+3|0]=(7&F)<<29|H>>>3,G&=2097151,u=qA(b,l,654183,0)+G|0,p=h,p=u>>>0>>0?p+1|0:p,G=u,u=p,u=(p=F>>21)+u|0,u=(F=(U=G)+(G=(2097151&F)<<11|H>>>21)|0)>>>0>>0?u+1|0:u,G=F,p=u,Q[A+6|0]=(63&p)<<26|F>>>6,U=0,F=31&((65535&_)<<16|k>>>16),u=k=2097151&H,Q[A+2|0]=F|u<<5,_=2097151&P,F=qA(b,l,-997805,-1)+_|0,u=h,u=F>>>0<_>>>0?u+1|0:u,_=F,F=u,F=(u=p>>21)+F|0,u=p=(H=_)+(_=(2097151&p)<<11|G>>>21)|0,F=p>>>0<_>>>0?F+1|0:F,Q[A+9|0]=(511&F)<<23|p>>>9,Q[A+8|0]=(1&F)<<31|p>>>1,_=0,H=(p=G&=2097151)<<2,p=U,Q[A+5|0]=H|(524287&p)<<13|k>>>19,H=2097151&S,k=qA(b,l,136657,0)+H|0,p=h,p=k>>>0>>0?p+1|0:p,H=k,k=p,U=(2097151&(p=F))<<11|u>>>21,p=(F=p>>21)+k|0,p=(F=H=U+H|0)>>>0>>0?p+1|0:p,Q[A+12|0]=(4095&p)<<20|F>>>12,Q[A+11|0]=(15&p)<<28|F>>>4,k=0,S=(u=H=2097151&u)<<7,u=_,_=G,Q[A+7|0]=S|(16383&u)<<18|_>>>14,_=(u=qA(b,l,-683901,-1))+(l=2097151&m)|0,u=h,u=l>>>0>_>>>0?u+1|0:u,l=_,_=u,G=(2097151&(u=p))<<11|F>>>21,u=(p>>=21)+_|0,u=(p=l=G+l|0)>>>0>>0?u+1|0:u,Q[A+14|0]=(127&u)<<25|p>>>7,l=(F=G=2097151&F)<<4,F=k,Q[A+10|0]=l|(131071&F)<<15|H>>>17,k=(2097151&(F=u))<<11|p>>>21,F=(u>>=21)+(l=0)|0,F=(_=k+(2097151&v)|0)>>>0>>0?F+1|0:F,Q[A+17|0]=(1023&F)<<22|_>>>10,Q[A+16|0]=(3&F)<<30|_>>>2,k=0,u=(p=U=2097151&p)<<1,p=l,Q[A+13|0]=u|(1048575&p)<<12|G>>>20,p=u=F>>21,p=(F=(l=(2097151&F)<<11|_>>>21)+(2097151&M)|0)>>>0>>0?p+1|0:p,l=F,Q[A+20|0]=(8191&p)<<19|F>>>13,F=p,Q[A+19|0]=(31&p)<<27|l>>>5,H=0,u=(p=b=2097151&_)<<6,p=k,Q[A+15|0]=u|(32767&p)<<17|U>>>15,p=F>>21,G=_=(k=(2097151&F)<<11|l>>>21)+(2097151&Y)|0,_=_>>>0>>0?p+1|0:p,Q[A+21|0]=G,u=(p=l)<<3,p=H,Q[A+18|0]=u|(262143&p)<<14|b>>>18,u=G,Q[A+22|0]=(255&_)<<24|u>>>8,F=_>>21,F=(u=(l=(2097151&_)<<11|u>>>21)+(2097151&gA)|0)>>>0>>0?F+1|0:F,l=u,Q[A+25|0]=(2047&F)<<21|u>>>11,Q[A+24|0]=(7&F)<<29|u>>>3,p=u=F>>21,p=(F=(k=(2097151&F)<<11|l>>>21)+(2097151&z)|0)>>>0>>0?p+1|0:p,Q[A+27|0]=(63&p)<<26|F>>>6,k=0,u=l&=2097151,Q[A+23|0]=31&((65535&_)<<16|G>>>16)|u<<5,u=p>>21,u=(p=(H=(2097151&p)<<11|F>>>21)+(2097151&x)|0)>>>0>>0?u+1|0:u,Q[A+31|0]=(131071&u)<<15|p>>>17,Q[A+30|0]=(511&u)<<23|p>>>9,Q[A+29|0]=(1&u)<<31|p>>>1,_=0,u=(F=H=2097151&F)<<2,F=k,Q[A+26|0]=u|(524287&F)<<13|l>>>19,u=A,A=_,Q[u+28|0]=p<<7|(16383&A)<<18|H>>>14}function _(A,I,g,B,C,E,t,e,f,c,y,p){var u,F,l=0,_=0,H=0,G=0,U=0,m=0,M=0,P=0,Y=0,N=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0,cA=0,yA=0,sA=0,wA=0,DA=0,hA=0,uA=0;if(s=u=s+-64|0,F=k(f)){if(i[u+32>>2]=0,i[u+36>>2]=0,i[u+24>>2]=0,i[u+28>>2]=0,i[u+20>>2]=t,i[u+16>>2]=E,i[u+12>>2]=C,i[u+8>>2]=B,i[u+4>>2]=f,i[u>>2]=F,i[u+56>>2]=0,i[u+52>>2]=g,i[u+48>>2]=g,i[u+44>>2]=I,i[u+40>>2]=A,A=0,s=U=s-48|0,!((I=nA(u))||(I=-26,p-3>>>0<4294967294))){if(g=i[u+44>>2],I=i[u+48>>2],i[U>>2]=0,B=i[u+40>>2],i[U+28>>2]=I,i[U+12>>2]=-1,i[U+8>>2]=B,I=((B=g>>>0>(B=I<<3)>>>0?g:B)>>>0)/((g=I<<2)>>>0)|0,i[U+20>>2]=I,i[U+24>>2]=I<<2,i[U+16>>2]=r(I,g),I=i[u+52>>2],i[U+36>>2]=p,i[U+32>>2]=I,s=B=s-80|0,C=-25,!(!U|!u))if(I=k(i[U+20>>2]<<3),i[U+4>>2]=I,I){s=t=s-16|0,C=-22;A:if(!(!U|!(I=i[U+16>>2]))&&1024==(((E=I<<10)>>>0)/(I>>>0)|0)&&(I=k(12),i[U>>2]=I,I)){i[I>>2]=0,i[I+4>>2]=0,E>>>0>4294967168?I=48:(E>>>0>=4294967168?(i[8952]=48,g=0):(g=0,(I=k(76+(x=E>>>0<11?16:E+11&-8)|0))&&(g=I-8|0,63&I?(d=(-8&(M=i[(H=I-4|0)>>2]))-(m=(I=((I=(I+63&-64)-8|0)-g>>>0>15?0:64)+I|0)-g|0)|0,3&M?(i[I+4>>2]=d|1&i[I+4>>2]|2,i[4+(d=I+d|0)>>2]=1|i[d+4>>2],i[H>>2]=m|1&i[H>>2]|2,i[4+(d=g+m|0)>>2]=1|i[d+4>>2],v(g,m)):(g=i[g>>2],i[I+4>>2]=d,i[I>>2]=g+m)):I=g,3&(g=i[I+4>>2])&&((m=-8&g)>>>0<=x+16>>>0||(i[I+4>>2]=x|1&g|2,g=I+x|0,x=m-x|0,i[g+4>>2]=3|x,i[4+(m=I+m|0)>>2]=1|i[m+4>>2],v(g,x))),g=I+8|0)),(I=g)?(i[t+12>>2]=I,I=0):I=48),i[8952]=I;I:{if(I)i[t+12>>2]=0;else if(I=i[t+12>>2])break I;b(i[U>>2]),i[U>>2]=0;break A}i[i[U>>2]>>2]=I,i[i[U>>2]+4>>2]=I,i[i[U>>2]+8>>2]=E,C=0}if(s=t+16|0,C)RA(U,i[u+56>>2]);else{if(E=i[U+36>>2],t=I=s,s=I=I-448&-64,!B|!u||(OA(C=I- -64|0,0,0,64),bI(g=I+60|0,i[u+48>>2]),Cg(C,g,4,0),bI(g,i[u+4>>2]),Cg(C,g,4,0),bI(g,i[u+44>>2]),Cg(C,g,4,0),bI(g,i[u+40>>2]),Cg(C,g,4,0),bI(g,19),Cg(C,g,4,0),bI(g,E),Cg(C,g,4,0),bI(g,i[u+12>>2]),Cg(C,g,4,0),(g=i[u+8>>2])&&(Cg(I- -64|0,g,i[u+12>>2],0),1&Q[u+56|0]&&(Dg(i[u+8>>2],i[u+12>>2]),i[u+12>>2]=0)),bI(g=I+60|0,i[u+20>>2]),Cg(I- -64|0,g,4,0),(g=i[u+16>>2])&&Cg(I- -64|0,g,i[u+20>>2],0),bI(g=I+60|0,i[u+28>>2]),Cg(I- -64|0,g,4,0),(g=i[u+24>>2])&&(Cg(I- -64|0,g,i[u+28>>2],0),2&n[u+56|0]&&(Dg(i[u+24>>2],i[u+28>>2]),i[u+28>>2]=0)),bI(g=I+60|0,i[u+36>>2]),Cg(I- -64|0,g,4,0),(g=i[u+32>>2])&&Cg(I- -64|0,g,i[u+36>>2],0),UI(I- -64|0,B,64)),s=t,Dg(B- -64|0,8),C=0,s=I=s-1024|0,i[U+28>>2])for(E=B+68|0,g=B- -64|0;bI(g,0),bI(E,C),R(I,1024,B,72),KA(i[i[U>>2]+4>>2]+(r(i[U+24>>2],C)<<10)|0,I),bI(g,1),R(I,1024,B,72),KA(1024+(i[i[U>>2]+4>>2]+(r(i[U+24>>2],C)<<10)|0)|0,I),(C=C+1|0)>>>0>2];);Dg(I,1024),s=I+1024|0,Dg(B,72),C=0}}else C=-22;if(s=B+80|0,!(I=C)){if(i[U+8>>2])for(;;){if(B=A,cA=0,s=C=s-32|0,!(!U|!i[U+28>>2]))for(i[C+16>>2]=B,I=1;;){if(Q[C+24|0]=cA,yA=0,A=0,I)for(;;){i[C+28>>2]=0,A=i[C+28>>2],i[C+8>>2]=i[C+24>>2],i[C+12>>2]=A,i[C+20>>2]=yA,A=i[C+20>>2],i[C>>2]=i[C+16>>2],i[C+4>>2]=A,A=0;A:if(U){I:{if(2==i[U+36>>2]){if(sA=i[U+4>>2],wA=1,(t=i[C>>2])|(E=n[C+8|0])>>>0>1)break I}else sA=i[U+4>>2];if(s=I=s-4096|0,wg(I+3072|0),wg(I+2048|0),!(!U|!C)&&(i[I+2048>>2]=i[C>>2],i[I+2052>>2]=0,i[I+2056>>2]=i[C+4>>2],i[I+2060>>2]=0,i[I+2064>>2]=n[C+8|0],i[I+2068>>2]=0,i[I+2072>>2]=i[U+16>>2],i[I+2076>>2]=0,i[I+2080>>2]=i[U+8>>2],i[I+2084>>2]=0,i[I+2088>>2]=i[U+36>>2],i[I+2092>>2]=0,i[U+20>>2]))for(;(g=127&A)||(t=E=i[I+2100>>2],H=E+1|0,t=(E=i[I+2096>>2]+1|0)?t:H,i[I+2096>>2]=E,i[I+2100>>2]=t,wg(I),wg(E=I+1024|0),S(t=I+3072|0,I+2048|0,I),S(t,I,E)),E=i[4+(g=(I+1024|0)+(g<<3)|0)>>2],i[(t=(A<<3)+sA|0)>>2]=i[g>>2],i[t+4>>2]=E,(A=A+1|0)>>>0>2];);s=I+4096|0,E=n[C+8|0],t=i[C>>2],wA=0}if(A=255&E,!((t=t?0:!A<<1)>>>0>=(g=i[U+20>>2])>>>0))for(I=i[U+24>>2],A=(E=(r(I,i[C+4>>2])+t|0)+r(A,g)|0)+((E>>>0)%(I>>>0)|0?-1:I-1|0)|0;;){DA=1==((E>>>0)%(I>>>0)|0)?E-1|0:A,x=i[U+28>>2],wA?(A=i[U>>2],m=i[A+4>>2]+(DA<<10)|0):(A=i[U>>2],m=(t<<3)+sA|0),g=i[m>>2],m=i[m+4>>2],i[C+12>>2]=t,x=(m>>>0)%(x>>>0)|0,m=i[C+4>>2],d=n[C+8|0]?x:m,_=i[A+4>>2],G=i[C>>2],Y=_+(r(I,A=G?x:d)<<10)|0,A=(0|A)==(0|m);I:if(i[C>>2])I=i[U+24>>2],x=i[U+20>>2],I=A?i[C+12>>2]+(I+(-1^x)|0)|0:(I-x|0)-!i[C+12>>2]|0,H=0,3!=(0|(A=n[C+8|0]))&&(H=r(x,A+1|0));else{if(!(I=n[C+8|0])){I=i[C+12>>2]-1|0,H=0;break I}if(I=r(I,i[U+20>>2]),x=i[C+12>>2],A){I=(I+x|0)-1|0,H=0;break I}I=I-!x|0,H=0}A=H+(d=I-1|0)|0,qA(g,0,g,0),qA(I,0,h,0),m=A-(I=h)|0,x=i[U+24>>2],l=0;I:{g:{B:{C:{Q:{E:{i:{n:{a:{r:{if(I=(A>>>0>>0)-(A>>>0>>0)|0){if(!x)break r;break a}w=m-r((m>>>0)/(x>>>0)|0,x)|0,D=0,h=0;break I}if(!m)break n;break i}if(!((A=x-1|0)&x))break E;H=0-(d=(o(x)+33|0)-o(I)|0)|0;break C}w=0,D=I,h=0;break I}if((A=32-o(I)|0)>>>0<31)break Q;break B}if(w=A&m,D=0,1==(0|x))break g;A=x?31-o(x-1^x)|0:32,h=(63&A)>>>0>=32?0:I>>>A|0;break I}d=A+1|0,H=63-A|0}if(g=31&(A=63&d),A>>>0>=32?(A=0,M=I>>>g|0):(A=I>>>g|0,M=((1<>>g),g=A,H=31&(A=63&H),A>>>0>=32?(A=m<>>32-H|I<>>31)-(X=x&(L=N-((g=g<<1|M>>>31)+(A>>>0>H>>>0)|0)>>31))|0,g=g-(A>>>0>>0)|0,I=I<<1|m>>>31,m=l|m<<1,l=1&L,d=d-1|0;);w=M,D=g,h=I<<1|m>>>31;break I}w=m,D=I,I=0}h=I}if(h=D,A=(w<<10)+Y|0,x=_+(DA<<10)|0,g=_+(E<<10)|0,G)S(x,A,g);else{for(s=I=s-2048|0,yg(m=I+1024|0,A),AI(m,x),yg(I,m),x=0,m=0;H=i[(d=(A=(I+1024|0)+(m<<7)|0)- -64|0)>>2],M=i[A+100>>2],P=H,N=i[d+4>>2],J=i[A+96>>2],H=i[A+32>>2],_=i[A+36>>2],M=pA(J^(l=CI(i[A>>2],i[A+4>>2],H,_)),M^(G=h),32),_=pA(P=(N=CI(P,N,M,Y=h))^H,_^(H=h),24),P=H,AA=pA((X=CI(l,G,_,H=h))^M,(T=h)^Y,16),H=pA(_^(gA=CI(N,P,AA,IA=h)),(rA=h)^H,63),M=h,_=i[A+108>>2],K=i[A+72>>2],J=i[A+76>>2],P=i[A+104>>2],l=i[A+40>>2],G=i[A+44>>2],_=pA(P^(Y=CI(i[A+8>>2],i[A+12>>2],l,G)),_^(N=h),32),G=pA(P=(BA=CI(K,J,_,L=h))^l,G^(l=h),24),J=BA,tA=pA((P=_)^(BA=CI(Y,N,G,_=h)),(oA=h)^L,16),_=pA(G^(CA=CI(J,l,tA,eA=h)),(QA=h)^_,63),l=h,G=i[A+116>>2],K=i[A+80>>2],J=i[A+84>>2],P=i[A+112>>2],Y=i[A+48>>2],N=i[A+52>>2],G=pA(P^(L=CI(i[A+16>>2],i[A+20>>2],Y,N)),G^(j=h),32),N=pA(J=(P=CI(K,J,G,EA=h))^Y,N^(Y=h),24),K=P,J=Y,EA=pA(G^(j=CI(L,j,N,Y=h)),EA^(P=h),16),G=pA(N^(J=CI(K,J,EA,iA=h)),(W=h)^Y,63),Y=h,N=i[A+124>>2],aA=i[A+88>>2],O=i[A+92>>2],K=i[A+120>>2],L=i[A+56>>2],V=i[A+60>>2],N=pA(K^(q=CI(i[A+24>>2],i[A+28>>2],L,V)),N^(z=h),32),O=V=pA(K=(fA=CI(aA,O,N,$=h))^L,V^(L=h),24),z=pA((K=N)^(V=CI(q,z,V,N=h)),(q=h)^$,16),N=pA(O^(fA=CI(fA,L,z,$=h)),(aA=h)^N,63),L=h,O=J,K=W,J=pA(z^(X=CI(X,T,_,l)),$^(T=h),32),_=pA((z=CI(O,K,J,W=h))^_,(K=l)^(l=h),24),T=CI(K=X,T,_,X=h),i[A>>2]=T,$=h,i[A+4>>2]=$,T=pA(T^J,W^$,16),i[A+120>>2]=T,J=h,i[A+124>>2]=J,l=CI(z,l,T,J),i[A+80>>2]=l,T=h,i[A+84>>2]=T,hA=A,uA=pA(_^l,X^T,63),i[hA+40>>2]=uA,i[A+44>>2]=h,T=pA(AA^(l=CI(BA,oA,G,Y)),IA^(X=h),32),_=pA(J=G^(IA=CI(fA,aA,T,AA=h)),Y^(G=h),24),Y=CI(J=l,X,_,l=h),i[A+8>>2]=Y,X=h,i[A+12>>2]=X,Y=pA(Y^T,X^AA,16),i[A+96>>2]=Y,X=h,i[A+100>>2]=X,G=CI(IA,G,Y,X),i[A+88>>2]=G,Y=h,i[A+92>>2]=Y,hA=A,uA=pA(_^G,l^Y,63),i[hA+48>>2]=uA,i[A+52>>2]=h,Y=pA(tA^(l=CI(j,P,N,L)),eA^(G=h),32),_=pA(P=N^(T=CI(gA,rA,Y,X=h)),L^(N=h),24),G=CI(P=l,G,_,l=h),i[A+16>>2]=G,L=h,i[A+20>>2]=L,G=pA(G^Y,L^X,16),i[A+104>>2]=G,Y=h,i[A+108>>2]=Y,G=CI(T,N,G,Y),i[d>>2]=G,P=d,d=h,i[P+4>>2]=d,hA=A,uA=pA(_^G,l^d,63),i[hA+56>>2]=uA,i[A+60>>2]=h,_=CI(V,q,H,M),N=CI(CA,QA,G=pA(EA^_,iA^(l=h),32),Y=h),_=CI(_,l,d=pA(P=H^N,M^(H=h),24),M=h),i[A+24>>2]=_,l=h,i[A+28>>2]=l,_=pA(_^G,l^Y,16),i[A+112>>2]=_,l=h,i[A+116>>2]=l,H=CI(N,H,_,l),i[A+72>>2]=H,_=h,i[A+76>>2]=_,hA=A,uA=pA(H^d,_^M,63),i[hA+32>>2]=uA,i[A+36>>2]=h,8!=(0|(m=m+1|0)););for(;m=i[512+(A=(I+1024|0)+(x<<4)|0)>>2],d=i[A+772>>2],P=m,J=i[A+516>>2],l=i[A+768>>2],m=i[A+256>>2],H=i[A+260>>2],d=pA(l^(M=CI(i[A>>2],i[A+4>>2],m,H)),d^(_=h),32),H=pA(P=(G=CI(P,J,d,l=h))^m,H^(m=h),24),P=m,X=pA((N=CI(M,_,H,m=h))^d,(L=h)^l,16),m=pA(H^(AA=CI(G,P,X,T=h)),(IA=h)^m,63),d=h,H=i[A+780>>2],K=i[A+520>>2],J=i[A+524>>2],P=i[A+776>>2],M=i[A+264>>2],_=i[A+268>>2],H=pA(P^(l=CI(i[A+8>>2],i[A+12>>2],M,_)),H^(G=h),32),_=pA(P=(gA=CI(K,J,H,Y=h))^M,_^(M=h),24),J=gA,BA=pA((P=H)^(gA=CI(l,G,_,H=h)),(rA=h)^Y,16),H=pA(_^(tA=CI(J,M,BA,oA=h)),(eA=h)^H,63),M=h,_=i[A+900>>2],K=i[A+640>>2],J=i[A+644>>2],P=i[A+896>>2],l=i[A+384>>2],G=i[A+388>>2],_=pA(P^(Y=CI(i[A+128>>2],i[A+132>>2],l,G)),_^(CA=h),32),G=pA(P=(j=CI(K,J,_,QA=h))^l,G^(l=h),24),J=j,P=l,QA=pA(_^(CA=CI(Y,CA,G,l=h)),QA^(j=h),16),_=pA(G^(P=CI(J,P,QA,EA=h)),(iA=h)^l,63),l=h,G=i[A+908>>2],aA=i[A+648>>2],O=i[A+652>>2],K=i[A+904>>2],Y=i[A+392>>2],J=i[A+396>>2],G=pA(K^(W=CI(i[A+136>>2],i[A+140>>2],Y,J)),G^(V=h),32),O=J=pA(K=(z=CI(aA,O,G,q=h))^Y,J^(Y=h),24),V=pA((K=G)^(J=CI(W,V,J,G=h)),(W=h)^q,16),G=pA(O^(z=CI(z,Y,V,q=h)),($=h)^G,63),Y=h,O=P,K=iA,P=pA(V^(N=CI(N,L,H,M)),q^(L=h),32),H=pA((V=CI(O,K,P,iA=h))^H,(K=M)^(M=h),24),L=CI(K=N,L,H,N=h),i[A>>2]=L,q=h,i[A+4>>2]=q,L=pA(L^P,q^iA,16),i[A+904>>2]=L,P=h,i[A+908>>2]=P,M=CI(V,M,L,P),i[A+640>>2]=M,L=h,i[A+644>>2]=L,hA=A,uA=pA(H^M,N^L,63),i[hA+264>>2]=uA,i[A+268>>2]=h,L=pA(X^(M=CI(gA,rA,_,l)),T^(N=h),32),H=pA(H=_^(T=CI(z,$,L,X=h)),l^(_=h),24),l=CI(l=M,N,H,M=h),i[A+8>>2]=l,N=h,i[A+12>>2]=N,l=pA(l^L,N^X,16),i[A+768>>2]=l,N=h,i[A+772>>2]=N,_=CI(T,_,l,N),i[A+648>>2]=_,l=h,i[A+652>>2]=l,hA=A,uA=pA(_^H,l^M,63),i[hA+384>>2]=uA,i[A+388>>2]=h,M=CI(CA,j,G,Y),L=CI(AA,IA,l=pA(BA^M,oA^(_=h),32),N=h),_=CI(P=M,_,H=pA(H=G^L,Y^(G=h),24),M=h),i[A+128>>2]=_,Y=h,i[A+132>>2]=Y,_=pA(_^l,Y^N,16),i[A+776>>2]=_,l=h,i[A+780>>2]=l,_=CI(L,G,_,l),i[A+512>>2]=_,l=h,i[A+516>>2]=l,hA=A,uA=pA(_^H,l^M,63),i[hA+392>>2]=uA,i[A+396>>2]=h,_=pA(QA^(H=CI(J,W,m,d)),EA^(M=h),32),m=pA((G=CI(tA,eA,_,l=h))^m,(P=d)^(d=h),24),M=CI(P=H,M,m,H=h),i[A+136>>2]=M,Y=h,i[A+140>>2]=Y,M=pA(_^M,l^Y,16),i[A+896>>2]=M,_=h,i[A+900>>2]=_,d=CI(G,d,M,_),i[A+520>>2]=d,M=h,i[A+524>>2]=M,hA=A,uA=pA(m^d,H^M,63),i[hA+256>>2]=uA,i[A+260>>2]=h,8!=(0|(x=x+1|0)););yg(g,I),AI(g,I+1024|0),s=I+2048|0}if((t=t+1|0)>>>0>=a[U+20>>2])break A;E=E+1|0,A=DA+1|0,I=i[U+24>>2]}}if(!((A=i[U+28>>2])>>>0>(yA=yA+1|0)>>>0))break}if(I=A,4==(0|(cA=cA+1|0)))break}if(s=C+32|0,!((A=B+1|0)>>>0>2]))break}if(s=I=s-2048|0,!(!u|!U)){if(yg(I+1024|0,(i[i[U>>2]+4>>2]+(i[U+24>>2]<<10)|0)-1024|0),a[U+28>>2]>=2)for(A=1;g=i[U+24>>2],AI(I+1024|0,(i[i[U>>2]+4>>2]+(r(g,A)+g<<10)|0)-1024|0),(A=A+1|0)>>>0>2];);for(g=I+1024|0,A=0;QI(C=(B=A<<3)+I|0,i[(B=g+B|0)>>2],i[B+4>>2]),128!=(0|(A=A+1|0)););R(i[u>>2],i[u+4>>2],I,1024),Dg(g,1024),Dg(I,1024),RA(U,i[u+56>>2])}s=I+2048|0,I=0}}s=U+48|0,g=I;A:if(I)Dg(F,f);else{if(!(!c|!y)){s=A=s-16|0,I=-31;I:{g:{B:{C:switch(p-1|0){case 1:if(y>>>0<13)break g;I=n[1347]|n[1348]<<8|n[1349]<<16|n[1350]<<24,g=n[1343]|n[1344]<<8|n[1345]<<16|n[1346]<<24,Q[0|c]=g,Q[c+1|0]=g>>>8,Q[c+2|0]=g>>>16,Q[c+3|0]=g>>>24,Q[c+4|0]=I,Q[c+5|0]=I>>>8,Q[c+6|0]=I>>>16,Q[c+7|0]=I>>>24,I=n[1352]|n[1353]<<8|n[1354]<<16|n[1355]<<24,g=n[1348]|n[1349]<<8|n[1350]<<16|n[1351]<<24,Q[c+5|0]=g,Q[c+6|0]=g>>>8,Q[c+7|0]=g>>>16,Q[c+8|0]=g>>>24,Q[c+9|0]=I,Q[c+10|0]=I>>>8,Q[c+11|0]=I>>>16,Q[c+12|0]=I>>>24,B=-12,g=12;break B;case 0:break C;default:break I}if(y>>>0<12)break g;I=n[1335]|n[1336]<<8|n[1337]<<16|n[1338]<<24,g=n[1331]|n[1332]<<8|n[1333]<<16|n[1334]<<24,Q[0|c]=g,Q[c+1|0]=g>>>8,Q[c+2|0]=g>>>16,Q[c+3|0]=g>>>24,Q[c+4|0]=I,Q[c+5|0]=I>>>8,Q[c+6|0]=I>>>16,Q[c+7|0]=I>>>24,I=n[1339]|n[1340]<<8|n[1341]<<16|n[1342]<<24,Q[c+8|0]=I,Q[c+9|0]=I>>>8,Q[c+10|0]=I>>>16,Q[c+11|0]=I>>>24,B=-11,g=11}if(I=nA(u))break I;if(dA(I=A+5|0,19),!((B=B+y|0)>>>0<=(I=mA(I))>>>0)&&(g=eI(g+c|0,A+5|0,I+1|0),!((B=B-I|0)>>>0<4)&&(Q[0|(I=I+g|0)]=36,Q[I+1|0]=109,Q[I+2|0]=61,Q[I+3|0]=0,dA(g=A+5|0,i[u+44>>2]),!((B=B-3|0)>>>0<=(g=mA(g))>>>0)&&(I=eI(I+3|0,A+5|0,g+1|0),!((B=B-g|0)>>>0<4)&&(Q[0|(I=I+g|0)]=44,Q[I+1|0]=116,Q[I+2|0]=61,Q[I+3|0]=0,dA(g=A+5|0,i[u+40>>2]),!((B=B-3|0)>>>0<=(g=mA(g))>>>0)&&(I=eI(I+3|0,A+5|0,g+1|0),!((B=B-g|0)>>>0<4)&&(Q[0|(I=I+g|0)]=44,Q[I+1|0]=112,Q[I+2|0]=61,Q[I+3|0]=0,dA(g=A+5|0,i[u+48>>2]),!((B=B-3|0)>>>0<=(g=mA(g))>>>0)&&(I=eI(I+3|0,A+5|0,g+1|0),!((B=B-g|0)>>>0<2)&&(Q[0|(I=I+g|0)]=36,Q[I+1|0]=0,Z(g=I+1|0,B=B-1|0,i[u+16>>2],i[u+20>>2],3)))))))))){if(I=-31,(C=(C=B)-(B=mA(g))|0)>>>0<2)break I;Q[0|(I=g+B|0)]=36,Q[I+1|0]=0,I=Z(I+1|0,C-1|0,i[u>>2],i[u+4>>2],3)?0:-31;break I}}I=-31}if(s=A+16|0,I){Dg(F,f),Dg(c,y),g=-31;break A}}e&&eI(e,F,f),Dg(F,f),g=0}b(F)}else g=-22;return s=u- -64|0,g}function k(A){var I,g=0,B=0,C=0,Q=0,E=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0;s=I=s-16|0;A:{I:{g:{B:{C:{Q:{E:{i:{n:{a:{r:{if((A|=0)>>>0<=244){if(3&(g=(Q=i[8965])>>>(B=(r=A>>>0<11?16:A+11&-8)>>>3|0)|0)){A=(E=i[35908+(g=(C=B+(1&(-1^g))|0)<<3)>>2])+8|0,(0|(B=i[E+8>>2]))!=(0|(g=g+35900|0))?(i[B+12>>2]=g,i[g+8>>2]=B):(c=35860,y=lI(-2,C)&Q,i[c>>2]=y),g=C<<3,i[E+4>>2]=3|g,i[4+(g=g+E|0)>>2]=1|i[g+4>>2];break A}if((f=i[8967])>>>0>=r>>>0)break r;if(g){B=A=(g=(0-(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,e=i[35908+(A=(B=((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)|0)<<3)>>2],(0|(g=i[e+8>>2]))!=(0|(A=A+35900|0))?(i[g+12>>2]=A,i[A+8>>2]=g):(Q=lI(-2,B)&Q,i[8965]=Q),A=e+8|0,i[e+4>>2]=3|r,E=(g=B<<3)-r|0,i[4+(C=r+e|0)>>2]=1|E,i[g+e>>2]=E,f&&(B=35900+((g=f>>>3|0)<<3)|0,e=i[8970],(g=1<>2]:(i[8965]=g|Q,g=B),i[B+8>>2]=e,i[g+12>>2]=e,i[e+12>>2]=B,i[e+8>>2]=g),i[8970]=C,i[8967]=E;break A}if(!(o=i[8966]))break r;for(B=A=(g=(0-o&o)-1|0)>>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,g=i[36164+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2],C=(-8&i[g+4>>2])-r|0,B=g;(A=i[B+16>>2])||(A=i[B+20>>2]);)C=(E=(B=(-8&i[A+4>>2])-r|0)>>>0>>0)?B:C,g=E?A:g,B=A;if(t=i[g+24>>2],(0|(E=i[g+12>>2]))!=(0|g)){A=i[g+8>>2],i[A+12>>2]=E,i[E+8>>2]=A;break I}if(!(A=i[(B=g+20|0)>>2])){if(!(A=i[g+16>>2]))break a;B=g+16|0}for(;e=B,E=A,(A=i[(B=A+20|0)>>2])||(B=E+16|0,A=i[E+16>>2]););i[e>>2]=0;break I}if(r=-1,!(A>>>0>4294967231)&&(r=-8&(A=A+11|0),t=i[8966])){C=0-r|0,Q=0,r>>>0<256||(Q=31,r>>>0>16777215||(A=A>>>8|0,A<<=e=A+1048320>>>16&8,Q=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|e)|0)<<1|r>>>A+21&1)|0));o:{t:{if(B=i[36164+(Q<<2)>>2])for(A=0,g=r<<(31==(0|Q)?0:25-(Q>>>1|0)|0);;){if(!((e=(o=-8&i[B+4>>2])-r|0)>>>0>=C>>>0)&&(C=e,E=B,(0|r)==(0|o))){C=0,A=B;break t}if(e=i[B+20>>2],B=i[16+((g>>>29&4)+B|0)>>2],A=e?(0|e)==(0|B)?A:e:A,g<<=1,!B)break}else A=0;if(!(A|E)){if(E=0,!(A=(0-(A=2<>>12&16,B|=A=(g=g>>>A|0)>>>5&8,B|=A=(g=g>>>A|0)>>>2&4,A=i[36164+(((B|=A=(g=g>>>A|0)>>>1&2)|(A=(g=g>>>A|0)>>>1&1))+(g>>>A|0)<<2)>>2]}if(!A)break o}for(;C=(B=(g=(-8&i[A+4>>2])-r|0)>>>0>>0)?g:C,E=B?A:E,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!E|i[8967]-r>>>0<=C>>>0)){if(Q=i[E+24>>2],(0|E)!=(0|(g=i[E+12>>2]))){A=i[E+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;break g}if(!(A=i[(B=E+20|0)>>2])){if(!(A=i[E+16>>2]))break n;B=E+16|0}for(;e=B,g=A,(A=i[(B=A+20|0)>>2])||(B=g+16|0,A=i[g+16>>2]););i[e>>2]=0;break g}}}if((B=i[8967])>>>0>=r>>>0){C=i[8970],(g=B-r|0)>>>0>=16?(i[8967]=g,A=C+r|0,i[8970]=A,i[A+4>>2]=1|g,i[B+C>>2]=g,i[C+4>>2]=3|r):(i[8970]=0,i[8967]=0,i[C+4>>2]=3|B,i[4+(A=B+C|0)>>2]=1|i[A+4>>2]),A=C+8|0;break A}if((t=i[8968])>>>0>r>>>0){g=t-r|0,i[8968]=g,A=(B=i[8971])+r|0,i[8971]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|r,A=B+8|0;break A}if(A=0,o=r+47|0,i[9083]?B=i[9085]:(i[9086]=-1,i[9087]=-1,i[9084]=4096,i[9085]=4096,i[9083]=I+12&-16^1431655768,i[9088]=0,i[9076]=0,B=4096),(B=(e=o+B|0)&(E=0-B|0))>>>0<=r>>>0)break A;if((C=i[9075])&&(Q=(g=i[9073])+B|0)>>>0>C>>>0|g>>>0>=Q>>>0)break A;if(4&n[36304])break Q;r:{o:{if(C=i[8971])for(A=36308;;){if((g=i[A>>2])>>>0<=C>>>0&C>>>0>2]>>>0)break o;if(!(A=i[A+8>>2]))break}if(-1==(0|(g=$A(0))))break E;if(Q=B,(A=(C=i[9084])-1|0)&g&&(Q=(B-g|0)+(A+g&0-C)|0),Q>>>0<=r>>>0|Q>>>0>2147483646)break E;if((C=i[9075])&&C>>>0<(E=(A=i[9073])+Q|0)>>>0|A>>>0>=E>>>0)break E;if((0|g)!=(0|(A=$A(Q))))break r;break C}if((Q=E&e-t)>>>0>2147483646)break E;if((0|(g=$A(Q)))==(i[A>>2]+i[A+4>>2]|0))break i;A=g}if(!(-1==(0|A)|r+48>>>0<=Q>>>0)){if((g=(g=i[9085])+(o-Q|0)&0-g)>>>0>2147483646){g=A;break C}if(-1!=(0|$A(g))){Q=g+Q|0,g=A;break C}$A(0-Q|0);break E}if(g=A,-1!=(0|A))break C;break E}E=0;break I}g=0;break g}if(-1!=(0|g))break C}i[9076]=4|i[9076]}if(B>>>0>2147483646)break B;if(-1==(0|(g=$A(B)))|-1==(0|(A=$A(0)))|A>>>0<=g>>>0)break B;if((Q=A-g|0)>>>0<=r+40>>>0)break B}A=i[9073]+Q|0,i[9073]=A,A>>>0>a[9074]&&(i[9074]=A);C:{Q:{E:{if(o=i[8971]){for(A=36308;;){if(((C=i[A>>2])+(B=i[A+4>>2])|0)==(0|g))break E;if(!(A=i[A+8>>2]))break}break Q}for((A=i[8969])>>>0<=g>>>0&&A||(i[8969]=g),A=0,i[9078]=Q,i[9077]=g,i[8973]=-1,i[8974]=i[9083],i[9080]=0;B=35900+(C=A<<3)|0,i[C+35908>>2]=B,i[C+35912>>2]=B,32!=(0|(A=A+1|0)););B=(C=Q-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8968]=B,A=A+g|0,i[8971]=A,i[A+4>>2]=1|B,i[4+(g+C|0)>>2]=40,i[8972]=i[9087];break C}if(!(8&n[A+12|0]|C>>>0>o>>>0|g>>>0<=o>>>0)){i[A+4>>2]=B+Q,B=(A=o+8&7?-8-o&7:0)+o|0,i[8971]=B,A=(g=i[8968]+Q|0)-A|0,i[8968]=A,i[B+4>>2]=1|A,i[4+(g+o|0)>>2]=40,i[8972]=i[9087];break C}}a[8969]>g>>>0&&(i[8969]=g),B=g+Q|0,A=36308;Q:{E:{i:{n:{a:{r:{for(;;){if((0|B)!=i[A>>2]){if(A=i[A+8>>2])continue;break r}break}if(!(8&n[A+12|0]))break a}for(A=36308;;){if((B=i[A>>2])>>>0<=o>>>0&&(E=B+i[A+4>>2]|0)>>>0>o>>>0)break n;A=i[A+8>>2]}}if(i[A>>2]=g,i[A+4>>2]=i[A+4>>2]+Q,i[4+(e=(g+8&7?-8-g&7:0)+g|0)>>2]=3|r,r=(Q=B+(B+8&7?-8-B&7:0)|0)-(t=r+e|0)|0,(0|Q)==(0|o)){i[8971]=t,A=i[8968]+r|0,i[8968]=A,i[t+4>>2]=1|A;break E}if(i[8970]==(0|Q)){i[8970]=t,A=i[8967]+r|0,i[8967]=A,i[t+4>>2]=1|A,i[A+t>>2]=A;break E}if(1==(3&(A=i[Q+4>>2]))){E=-8&A;a:if(A>>>0<=255){if(B=i[Q+8>>2],A=A>>>3|0,(0|(g=i[Q+12>>2]))==(0|B)){c=35860,y=i[8965]&lI(-2,A),i[c>>2]=y;break a}i[B+12>>2]=g,i[g+8>>2]=B}else{if(o=i[Q+24>>2],(0|Q)==(0|(g=i[Q+12>>2])))if((C=i[(A=Q+20|0)>>2])||(C=i[(A=Q+16|0)>>2])){for(;B=A,(C=i[(A=(g=C)+20|0)>>2])||(A=g+16|0,C=i[g+16>>2]););i[B>>2]=0}else g=0;else A=i[Q+8>>2],i[A+12>>2]=g,i[g+8>>2]=A;if(o){B=i[Q+28>>2];r:{if(i[(A=36164+(B<<2)|0)>>2]==(0|Q)){if(i[A>>2]=g,g)break r;c=35864,y=i[8966]&lI(-2,B),i[c>>2]=y;break a}if(i[o+(i[o+16>>2]==(0|Q)?16:20)>>2]=g,!g)break a}i[g+24>>2]=o,(A=i[Q+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[Q+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}}r=E+r|0,Q=Q+E|0}if(i[Q+4>>2]=-2&i[Q+4>>2],i[t+4>>2]=1|r,i[r+t>>2]=r,r>>>0<=255){g=35900+((A=r>>>3|0)<<3)|0,(B=i[8965])&(A=1<>2]:(i[8965]=A|B,A=g),i[g+8>>2]=t,i[A+12>>2]=t,i[t+12>>2]=g,i[t+8>>2]=A;break E}if(A=31,r>>>0<=16777215&&(A=r>>>8|0,A<<=C=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|C)|0)<<1|r>>>A+21&1)|0),i[t+28>>2]=A,i[t+16>>2]=0,i[t+20>>2]=0,C=36164+(A<<2)|0,(B=i[8966])&(g=1<>>1|0)|0),g=i[C>>2];;){if(B=g,(-8&i[g+4>>2])==(0|r))break i;if(g=A>>>29|0,A<<=1,!(g=i[16+(C=B+(4&g)|0)>>2]))break}i[C+16>>2]=t,i[t+24>>2]=B}else i[8966]=g|B,i[C>>2]=t,i[t+24>>2]=C;i[t+12>>2]=t,i[t+8>>2]=t;break E}for(B=(C=Q-40|0)-(A=g+8&7?-8-g&7:0)|0,i[8968]=B,A=A+g|0,i[8971]=A,i[A+4>>2]=1|B,i[4+(g+C|0)>>2]=40,i[8972]=i[9087],i[(B=(A=(E+(E-39&7?39-E&7:0)|0)-47|0)>>>0>>0?o:A)+4>>2]=27,A=i[9080],i[B+16>>2]=i[9079],i[B+20>>2]=A,A=i[9078],i[B+8>>2]=i[9077],i[B+12>>2]=A,i[9079]=B+8,i[9078]=Q,i[9077]=g,i[9080]=0,A=B+24|0;i[A+4>>2]=7,g=A+8|0,A=A+4|0,g>>>0>>0;);if((0|B)==(0|o))break C;if(i[B+4>>2]=-2&i[B+4>>2],E=B-o|0,i[o+4>>2]=1|E,i[B>>2]=E,E>>>0<=255){g=35900+((A=E>>>3|0)<<3)|0,(B=i[8965])&(A=1<>2]:(i[8965]=A|B,A=g),i[g+8>>2]=o,i[A+12>>2]=o,i[o+12>>2]=g,i[o+8>>2]=A;break C}if(A=31,i[o+16>>2]=0,i[o+20>>2]=0,E>>>0<=16777215&&(A=E>>>8|0,A<<=C=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|C)|0)<<1|E>>>A+21&1)|0),i[o+28>>2]=A,C=36164+(A<<2)|0,(B=i[8966])&(g=1<>>1|0)|0),g=i[C>>2];;){if(B=g,(0|E)==(-8&i[g+4>>2]))break Q;if(g=A>>>29|0,A<<=1,!(g=i[16+(C=B+(4&g)|0)>>2]))break}i[C+16>>2]=o,i[o+24>>2]=B}else i[8966]=g|B,i[C>>2]=o,i[o+24>>2]=C;i[o+12>>2]=o,i[o+8>>2]=o;break C}A=i[B+8>>2],i[A+12>>2]=t,i[B+8>>2]=t,i[t+24>>2]=0,i[t+12>>2]=B,i[t+8>>2]=A}A=e+8|0;break A}A=i[B+8>>2],i[A+12>>2]=o,i[B+8>>2]=o,i[o+24>>2]=0,i[o+12>>2]=B,i[o+8>>2]=A}if(!((A=i[8968])>>>0<=r>>>0)){g=A-r|0,i[8968]=g,A=(B=i[8971])+r|0,i[8971]=A,i[A+4>>2]=1|g,i[B+4>>2]=3|r,A=B+8|0;break A}}i[8952]=48,A=0;break A}g:if(Q){B=i[E+28>>2];B:{if(i[(A=36164+(B<<2)|0)>>2]==(0|E)){if(i[A>>2]=g,g)break B;t=lI(-2,B)&t,i[8966]=t;break g}if(i[Q+(i[Q+16>>2]==(0|E)?16:20)>>2]=g,!g)break g}i[g+24>>2]=Q,(A=i[E+16>>2])&&(i[g+16>>2]=A,i[A+24>>2]=g),(A=i[E+20>>2])&&(i[g+20>>2]=A,i[A+24>>2]=g)}g:if(C>>>0<=15)A=C+r|0,i[E+4>>2]=3|A,i[4+(A=A+E|0)>>2]=1|i[A+4>>2];else if(i[E+4>>2]=3|r,i[4+(Q=E+r|0)>>2]=1|C,i[Q+C>>2]=C,C>>>0<=255)g=35900+((A=C>>>3|0)<<3)|0,(B=i[8965])&(A=1<>2]:(i[8965]=A|B,A=g),i[g+8>>2]=Q,i[A+12>>2]=Q,i[Q+12>>2]=g,i[Q+8>>2]=A;else{A=31,C>>>0<=16777215&&(A=C>>>8|0,A<<=e=A+1048320>>>16&8,A=28+((A=((A<<=B=A+520192>>>16&4)<<(g=A+245760>>>16&2)>>>15|0)-(g|B|e)|0)<<1|C>>>A+21&1)|0),i[Q+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,g=36164+(A<<2)|0;B:{if((B=1<>>1|0)|0),B=i[g>>2];;){if((-8&i[(g=B)+4>>2])==(0|C))break B;if(B=A>>>29|0,A<<=1,!(B=i[16+(e=(4&B)+g|0)>>2]))break}i[e+16>>2]=Q}else i[8966]=B|t,i[g>>2]=Q;i[Q+24>>2]=g,i[Q+12>>2]=Q,i[Q+8>>2]=Q;break g}A=i[g+8>>2],i[A+12>>2]=Q,i[g+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=g,i[Q+8>>2]=A}A=E+8|0;break A}I:if(t){B=i[g+28>>2];g:{if(i[(A=36164+(B<<2)|0)>>2]==(0|g)){if(i[A>>2]=E,E)break g;c=35864,y=lI(-2,B)&o,i[c>>2]=y;break I}if(i[t+(i[t+16>>2]==(0|g)?16:20)>>2]=E,!E)break I}i[E+24>>2]=t,(A=i[g+16>>2])&&(i[E+16>>2]=A,i[A+24>>2]=E),(A=i[g+20>>2])&&(i[E+20>>2]=A,i[A+24>>2]=E)}C>>>0<=15?(A=C+r|0,i[g+4>>2]=3|A,i[4+(A=A+g|0)>>2]=1|i[A+4>>2]):(i[g+4>>2]=3|r,i[4+(E=g+r|0)>>2]=1|C,i[C+E>>2]=C,f&&(B=35900+((A=f>>>3|0)<<3)|0,e=i[8970],(A=1<>2]:(i[8965]=A|Q,A=B),i[B+8>>2]=e,i[A+12>>2]=e,i[e+12>>2]=B,i[e+8>>2]=A),i[8970]=E,i[8967]=C),A=g+8|0}return s=I+16|0,0|A}function H(A,I,g){var B,C,Q,E,n,a,o,t,e,f,c,y,s,w,D,p,u,F,l,_,k,H,G,U,S,b,m,v,M,P,Y,N,R,d,J,x,L,K,X,T,V,q,z,j,W,O,Z,$,AA,IA,gA,BA,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0,cA=0,yA=0,sA=0,wA=0,DA=0,hA=0,pA=0,uA=0,FA=0,lA=0,_A=0,kA=0,HA=0,GA=0,UA=0;B=CA=GA=i[g+4>>2],e=CA>>31,d=CA=(FA=i[I+20>>2])<<1,CA=qA(B,e,CA,k=CA>>31),EA=h,QA=CA,C=CA=i[g>>2],Q=CA>>31,f=CA=i[I+24>>2],cA=qA(C,Q,CA,E=CA>>31),CA=h+EA|0,CA=(QA=QA+cA|0)>>>0>>0?CA+1|0:CA,EA=QA,J=QA=iA=i[g+8>>2],p=QA>>31,c=QA=i[I+16>>2],QA=EA+(cA=qA(iA,p,QA,n=QA>>31))|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,x=CA=nA=i[g+12>>2],u=CA>>31,L=CA=(cA=i[I+12>>2])<<1,CA=(yA=qA(nA,u,CA,H=CA>>31))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=CA,W=CA=DA=i[g+16>>2],l=CA>>31,y=CA=i[I+8>>2],yA=qA(DA,l,CA,a=CA>>31),CA=h+QA|0,CA=(EA=EA+yA|0)>>>0>>0?CA+1|0:CA,lA=EA,O=QA=oA=i[g+20>>2],G=QA>>31,K=QA=(yA=i[I+4>>2])<<1,EA=qA(oA,G,QA,U=QA>>31),CA=h+CA|0,CA=(QA=lA+EA|0)>>>0>>0?CA+1|0:CA,EA=QA,Z=QA=tA=i[g+24>>2],X=QA>>31,s=QA=i[I>>2],uA=qA(tA,X,QA,o=QA>>31),QA=h+CA|0,QA=(EA=EA+uA|0)>>>0>>0?QA+1|0:QA,S=i[g+28>>2],sA=CA=r(S,19),F=CA>>31,T=CA=(uA=i[I+36>>2])<<1,CA=(wA=qA(sA,F,CA,b=CA>>31))+EA|0,EA=h+QA|0,EA=CA>>>0>>0?EA+1|0:EA,QA=CA,V=i[g+32>>2],eA=CA=r(V,19),aA=CA>>31,w=CA=i[I+32>>2],wA=qA(eA,aA,CA,t=CA>>31),CA=h+EA|0,CA=(QA=QA+wA|0)>>>0>>0?CA+1|0:CA,$=i[g+36>>2],fA=g=r($,19),D=g>>31,q=I=(wA=i[I+28>>2])<<1,g=qA(g,D,I,m=I>>31),CA=h+CA|0,HA=I=g+QA|0,I=I>>>0>>0?CA+1|0:CA,g=qA(c,n,B,e),CA=h,QA=qA(C,Q,FA,v=FA>>31),EA=h+CA|0,EA=(g=QA+g|0)>>>0>>0?EA+1|0:EA,CA=qA(iA,p,cA,M=cA>>31),QA=h+EA|0,QA=(g=CA+g|0)>>>0>>0?QA+1|0:QA,EA=qA(y,a,nA,u),CA=h+QA|0,CA=(g=EA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(DA,l,yA,P=yA>>31),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(s,o,oA,G),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=g,_A=g=r(tA,19),g=EA+(QA=qA(g,_=g>>31,uA,Y=uA>>31))|0,EA=h+CA|0,EA=g>>>0>>0?EA+1|0:EA,CA=qA(w,t,sA,F),QA=h+EA|0,QA=(g=CA+g|0)>>>0>>0?QA+1|0:QA,EA=qA(eA,aA,wA,N=wA>>31),CA=h+QA|0,CA=(g=EA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(fA,D,f,E),CA=h+CA|0,lA=g=QA+g|0,g=g>>>0>>0?CA+1|0:CA,CA=qA(B,e,L,H),EA=h,QA=(tA=qA(C,Q,c,n))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,tA=qA(y,a,iA,p),EA=h+CA|0,EA=(QA=tA+QA|0)>>>0>>0?EA+1|0:EA,CA=(tA=qA(nA,u,K,U))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(tA=qA(s,o,DA,l))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,hA=EA,z=QA=r(oA,19),EA=qA(QA,R=QA>>31,T,b),CA=h+CA|0,CA=(QA=hA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(w,t,_A,_),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,oA=qA(sA,F,q,m),EA=h+CA|0,EA=(QA=oA+QA|0)>>>0>>0?EA+1|0:EA,CA=(oA=qA(eA,aA,f,E))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(oA=qA(fA,D,d,k))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,oA=EA,IA=CA,tA=QA=EA+33554432|0,gA=CA=QA>>>0<33554432?CA+1|0:CA,EA=lA,lA=(67108863&CA)<<6|QA>>>26,CA=(CA>>26)+g|0,CA=(EA=EA+lA|0)>>>0>>0?CA+1|0:CA,BA=g=(lA=EA)+16777216|0,CA=I+(QA=(EA=g>>>0<16777216?CA+1|0:CA)>>25)|0,CA=(g=(EA=(33554431&EA)<<7|g>>>25)+HA|0)>>>0>>0?CA+1|0:CA,kA=I=g+33554432|0,I=CA=I>>>0<33554432?CA+1|0:CA,CA=-67108864&kA,i[A+24>>2]=g-CA,g=qA(B,e,K,U),CA=h,QA=qA(C,Q,y,a),EA=h+CA|0,EA=(g=QA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(s,o,iA,p),CA=h+EA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=g,nA=g=r(nA,19),QA=qA(g,HA=g>>31,T,b),CA=h+CA|0,CA=(g=EA+QA|0)>>>0>>0?CA+1|0:CA,QA=g,AA=g=r(DA,19),g=QA+(EA=qA(w,t,g,j=g>>31))|0,QA=h+CA|0,QA=g>>>0>>0?QA+1|0:QA,EA=qA(q,m,z,R),CA=h+QA|0,CA=(g=EA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(f,E,_A,_),EA=h+CA|0,EA=(g=QA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(sA,F,d,k),CA=h+EA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(eA,aA,c,n),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=qA(fA,D,L,H),QA=h+CA|0,hA=g=EA+g|0,g=g>>>0>>0?QA+1|0:QA,CA=qA(s,o,B,e),EA=h,QA=(DA=qA(C,Q,yA,P))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,EA=QA,DA=QA=r(iA,19),QA=EA+(iA=qA(QA,rA=QA>>31,uA,Y))|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,iA=qA(w,t,nA,HA),CA=h+EA|0,CA=(QA=iA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(AA,j,wA,N),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,EA=(iA=qA(f,E,z,R))+QA|0,QA=h+CA|0,QA=EA>>>0>>0?QA+1|0:QA,iA=qA(_A,_,FA,v),CA=h+QA|0,CA=(EA=iA+EA|0)>>>0>>0?CA+1|0:CA,QA=(iA=qA(c,n,sA,F))+EA|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,iA=qA(eA,aA,cA,M),CA=h+EA|0,CA=(QA=iA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(fA,D,y,a),CA=h+CA|0,UA=QA=EA+QA|0,iA=QA>>>0>>0?CA+1|0:CA,CA=qA(CA=r(B,19),CA>>31,T,b),QA=h,EA=qA(C,Q,s,o),QA=h+QA|0,QA=(CA=EA+CA|0)>>>0>>0?QA+1|0:QA,EA=(GA=qA(w,t,DA,rA))+CA|0,CA=h+QA|0,QA=(nA=qA(nA,HA,q,m))+EA|0,EA=h+(EA>>>0>>0?CA+1|0:CA)|0,EA=QA>>>0>>0?EA+1|0:EA,nA=qA(f,E,AA,j),CA=h+EA|0,CA=(QA=nA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(d,k,z,R),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,EA=(nA=qA(c,n,_A,_))+QA|0,QA=h+CA|0,QA=EA>>>0>>0?QA+1|0:QA,nA=qA(sA,F,L,H),CA=h+QA|0,CA=(EA=nA+EA|0)>>>0>>0?CA+1|0:CA,QA=(nA=qA(eA,aA,y,a))+EA|0,EA=h+CA|0,EA=QA>>>0>>0?EA+1|0:EA,nA=qA(fA,D,K,U),CA=h+EA|0,CA=(QA=nA+QA|0)>>>0>>0?CA+1|0:CA,nA=QA,GA=CA,HA=QA=QA+33554432|0,DA=CA=QA>>>0<33554432?CA+1|0:CA,rA=(67108863&CA)<<6|QA>>>26,QA=(EA=CA>>26)+iA|0,iA=CA=rA+UA|0,CA=CA>>>0>>0?QA+1|0:QA,UA=QA=iA+16777216|0,EA=hA,hA=(33554431&(CA=QA>>>0<16777216?CA+1|0:CA))<<7|QA>>>25,CA=(CA>>25)+g|0,CA=(QA=EA+hA|0)>>>0>>0?CA+1|0:CA,hA=g=QA+33554432|0,g=CA=g>>>0<33554432?CA+1|0:CA,CA=-67108864&hA,i[A+8>>2]=QA-CA,CA=qA(f,E,B,e),EA=h,QA=(rA=qA(C,Q,wA,N))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,EA=qA(J,p,FA,v),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,EA=qA(c,n,x,u),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,rA=qA(W,l,cA,M),EA=h+CA|0,EA=(QA=rA+QA|0)>>>0>>0?EA+1|0:EA,CA=(rA=qA(y,a,O,G))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(rA=qA(yA,P,Z,X))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(s,o,S,rA=S>>31),CA=h+CA|0,CA=(QA=QA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(eA,aA,uA,Y),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,pA=qA(fA,D,w,t),EA=h+CA|0,CA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(QA=pA+QA|0)|0,QA=CA+(EA=QA>>>0>>0?EA+1|0:EA)|0,CA=QA=I>>>0>>0?QA+1|0:QA,kA=I=(EA=I)+16777216|0,I=CA=I>>>0<16777216?CA+1|0:CA,CA=-33554432&kA,i[A+28>>2]=EA-CA,CA=qA(y,a,B,e),QA=h,pA=qA(C,Q,cA,M),EA=h+QA|0,EA=(CA=pA+CA|0)>>>0>>0?EA+1|0:EA,pA=qA(J,p,yA,P),QA=h+EA|0,QA=(CA=pA+CA|0)>>>0>>0?QA+1|0:QA,EA=(pA=qA(s,o,x,u))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(AA,j,uA,Y),CA=h+CA|0,CA=(QA=QA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(w,t,z,R),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,QA=(_A=qA(_A,_,wA,N))+QA|0,EA=h+CA|0,CA=(sA=qA(f,E,sA,F))+QA|0,QA=h+(QA>>>0<_A>>>0?EA+1|0:EA)|0,EA=(eA=qA(eA,aA,FA,v))+CA|0,CA=h+(CA>>>0>>0?QA+1|0:QA)|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(fA,D,c,n),CA=h+CA|0,eA=QA=QA+EA|0,CA=(CA=QA>>>0>>0?CA+1|0:CA)+(QA=g>>26)|0,CA=(g=eA+(EA=(67108863&g)<<6|hA>>>26)|0)>>>0>>0?CA+1|0:CA,eA=g=(QA=g)+16777216|0,g=EA=g>>>0<16777216?CA+1|0:CA,CA=-33554432&eA,i[A+12>>2]=QA-CA,CA=qA(B,e,q,m),EA=h,QA=(aA=qA(C,Q,w,t))+CA|0,CA=h+EA|0,CA=QA>>>0>>0?CA+1|0:CA,EA=qA(f,E,J,p),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,aA=qA(x,u,d,k),EA=h+CA|0,EA=(QA=aA+QA|0)>>>0>>0?EA+1|0:EA,CA=(aA=qA(c,n,W,l))+QA|0,QA=h+EA|0,QA=CA>>>0>>0?QA+1|0:QA,EA=(aA=qA(L,H,O,G))+CA|0,CA=h+QA|0,CA=EA>>>0>>0?CA+1|0:CA,QA=EA,EA=qA(y,a,Z,X),CA=h+CA|0,CA=(QA=QA+EA|0)>>>0>>0?CA+1|0:CA,EA=qA(S,rA,K,U),CA=h+CA|0,CA=(QA=EA+QA|0)>>>0>>0?CA+1|0:CA,QA=(sA=qA(s,o,V,aA=V>>31))+QA|0,EA=h+CA|0,CA=(fA=qA(fA,D,T,b))+QA|0,QA=h+(QA>>>0>>0?EA+1|0:EA)|0,QA=CA>>>0>>0?QA+1|0:QA,hA=CA,CA=(CA=I>>25)+QA|0,CA=(I=hA+(EA=(33554431&I)<<7|kA>>>25)|0)>>>0>>0?CA+1|0:CA,fA=I=(QA=I)+33554432|0,I=CA=I>>>0<33554432?CA+1|0:CA,CA=-67108864&fA,i[A+32>>2]=QA-CA,EA=QA=oA-(CA=-67108864&tA)|0,CA=(CA=IA-((CA>>>0>oA>>>0)+gA|0)|0)+(QA=g>>25)|0,CA=(g=EA+(oA=(33554431&g)<<7|eA>>>25)|0)>>>0>>0?CA+1|0:CA,CA=(lA-(-33554432&BA)|0)+((67108863&(CA=(QA=g+33554432|0)>>>0<33554432?CA+1|0:CA))<<6|QA>>>26)|0,i[A+20>>2]=CA,CA=-67108864&QA,i[A+16>>2]=g-CA,g=qA(w,t,B,e),CA=h,QA=qA(C,Q,uA,Y),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=qA(J,p,wA,N),QA=h+CA|0,QA=(g=EA+g|0)>>>0>>0?QA+1|0:QA,CA=qA(f,E,x,u),EA=h+QA|0,EA=(g=CA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(W,l,FA,v),CA=h+EA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(c,n,O,G),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,QA=qA(cA,M,Z,X),CA=h+CA|0,CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA,EA=qA(y,a,S,rA),QA=h+CA|0,QA=(g=EA+g|0)>>>0>>0?QA+1|0:QA,CA=qA(V,aA,yA,P),EA=h+QA|0,EA=(g=CA+g|0)>>>0>>0?EA+1|0:EA,QA=qA(s,o,$,$>>31),CA=h+EA|0,CA=(CA=(g=QA+g|0)>>>0>>0?CA+1|0:CA)+(QA=I>>26)|0,CA=(I=(EA=g)+(g=(67108863&I)<<6|fA>>>26)|0)>>>0>>0?CA+1|0:CA,CA=(g=I+16777216|0)>>>0<16777216?CA+1|0:CA,QA=-33554432&g,i[A+36>>2]=I-QA,EA=iA-(-33554432&UA)|0,QA=nA-(I=-67108864&HA)|0,FA=GA-((I>>>0>nA>>>0)+DA|0)|0,I=(g=qA((33554431&(I=CA))<<7|g>>>25,CA>>=25,19,0))+QA|0,QA=h+FA|0,CA=QA=I>>>0>>0?QA+1|0:QA,g=((67108863&(CA=(g=I+33554432|0)>>>0<33554432?CA+1|0:CA))<<6|(QA=g)>>>26)+EA|0,i[A+4>>2]=g,g=A,A=-67108864&QA,i[g>>2]=I-A}function G(A,I){var g,B,C,Q,E,n,a,o,t,e,f,c,y,w,D,p,u,F,l,_,k,H,G,S,b,m,v,M,P,Y,N,R,d,J,x,L,K,X,T,V,q,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0,QA=0,EA=0,iA=0,nA=0,aA=0,rA=0,oA=0,tA=0,eA=0,fA=0;s=H=s-48|0,U(A,I),U(F=A+80|0,N=I+40|0),g=A+120|0,a=z=(rA=i[I+92>>2])<<1,o=z>>31,t=z=(CA=i[I+84>>2])<<1,z=qA(a,o,z,B=z>>31),Z=h,j=z,m=z=$=i[I+88>>2],W=qA(z,AA=z>>31,z,AA),z=h+Z|0,z=(j=j+W|0)>>>0>>0?z+1|0:z,W=j,C=j=i[I+96>>2],e=j>>31,f=j=(EA=i[I+80>>2])<<1,Z=qA(C,e,j,Q=j>>31),z=h+z|0,z=(j=W+Z|0)>>>0>>0?z+1|0:z,O=j,Z=i[I+108>>2],G=j=r(Z,38),R=Z,W=qA(j,l=j>>31,Z,v=Z>>31),z=h+z|0,z=(j=O+W|0)>>>0>>0?z+1|0:z,W=j,D=i[I+112>>2],oA=qA(c=j=r(D,19),y=j>>31,j=(gA=i[I+104>>2])<<1,j>>31),j=h+z|0,j=(W=W+oA|0)>>>0>>0?j+1|0:j,O=W,oA=i[I+116>>2],E=z=r(oA,38),n=z>>31,_=z=(W=i[I+100>>2])<<1,aA=qA(E,n,z,p=z>>31),j=h+j|0,j=(z=O+aA|0)>>>0>>0?j+1|0:j,aA=z,K=z=j<<1|z>>>31,d=j=33554432+(aA<<=1)|0,X=z=j>>>0<33554432?z+1|0:z,j=z>>26,z=(67108863&z)<<6|d>>>26,tA=j,j=qA(t,B,C,e),IA=h,O=z,k=z=$<<1,rA=qA(z,u=z>>31,$=rA,M=$>>31),z=h+IA|0,z=(j=rA+j|0)>>>0>>0?z+1|0:z,rA=W,IA=(BA=qA(W,S=W>>31,f,Q))+j|0,j=h+z|0,j=IA>>>0>>0?j+1|0:j,QA=IA,J=z=Z<<1,IA=qA(c,y,z,P=z>>31),z=h+j|0,z=(Z=QA+IA|0)>>>0>>0?z+1|0:z,j=Z,Z=qA(E,n,gA,w=gA>>31),z=h+z|0,z=(j=j+Z|0)>>>0>>0?z+1|0:z,Z=j,j=(j=z<<1|j>>>31)+tA|0,tA=z=O+(Z<<=1)|0,z=z>>>0>>0?j+1|0:j,T=j=tA+16777216|0,Z=j,j=(z=j>>>0<16777216?z+1|0:z)>>25,z=(33554431&z)<<7|Z>>>25,Z=j,j=qA(a,o,$,M),IA=h,O=z,BA=qA(C,e,k,u),z=h+IA|0,z=(j=BA+j|0)>>>0>>0?z+1|0:z,IA=qA(t,B,_,p),z=h+z|0,z=(j=IA+j|0)>>>0>>0?z+1|0:z,IA=(BA=qA(f,Q,gA,w))+j|0,j=h+z|0,j=IA>>>0>>0?j+1|0:j,BA=qA(c,y,D,b=D>>31),z=h+j|0,z=(IA=BA+IA|0)>>>0>>0?z+1|0:z,BA=qA(E,n,J,P),j=h+z|0,j=(IA=BA+IA|0)>>>0>>0?j+1|0:j,BA=(z=IA)<<1,z=(j<<1|z>>>31)+Z|0,z=(IA=O+BA|0)>>>0>>0?z+1|0:z,fA=Z=(j=IA)+33554432|0,Z=z=Z>>>0<33554432?z+1|0:z,z=-67108864&fA,i[g+24>>2]=j-z,z=qA(z=r(W,38),z>>31,W,S),j=h,O=z,W=qA(EA,z=EA>>31,EA,z),j=h+j|0,j=(z=O+W|0)>>>0>>0?j+1|0:j,W=z,QA=z=r(gA,19),nA=z>>31,x=z=C<<1,EA=qA(QA,nA,z,Y=z>>31),z=h+j|0,z=(W=W+EA|0)>>>0>>0?z+1|0:z,j=W,W=qA(a,o,G,l),z=h+z|0,z=(j=j+W|0)>>>0>>0?z+1|0:z,W=(EA=qA(c,y,k,u))+j|0,j=h+z|0,j=W>>>0>>0?j+1|0:j,EA=qA(t,B,E,n),z=h+j|0,z=(W=EA+W|0)>>>0>>0?z+1|0:z,EA=(j=W)<<1,q=z=z<<1|j>>>31,j=z,IA=z=EA+33554432|0,BA=j=z>>>0<33554432?j+1|0:j,z=j>>26,j=(67108863&j)<<6|IA>>>26,W=z,z=qA(QA,nA,_,p),iA=h,eA=j,j=(CA=qA(f,Q,O=CA,L=O>>31))+z|0,z=h+iA|0,z=j>>>0>>0?z+1|0:z,CA=(iA=qA(C,e,G,l))+j|0,j=h+z|0,j=CA>>>0>>0?j+1|0:j,iA=qA(a,o,c,y),z=h+j|0,z=(CA=iA+CA|0)>>>0>>0?z+1|0:z,iA=qA(E,n,m,AA),j=h+z|0,j=(CA=iA+CA|0)>>>0>>0?j+1|0:j,iA=(z=CA)<<1,z=(j<<1|z>>>31)+W|0,z=(CA=eA+iA|0)>>>0>>0?z+1|0:z,iA=j=CA+16777216|0,W=j,j=(z=j>>>0<16777216?z+1|0:z)>>25,z=(33554431&z)<<7|W>>>25,W=j,j=qA(f,Q,m,AA),V=h,eA=z,O=qA(O,L,t,B),z=h+V|0,z=(j=O+j|0)>>>0>>0?z+1|0:z,O=(QA=qA(QA,nA,gA,w))+j|0,j=h+z|0,j=O>>>0>>0?j+1|0:j,QA=qA(_,p,G,l),z=h+j|0,z=(O=QA+O|0)>>>0>>0?z+1|0:z,j=O,O=qA(c,y,x,Y),z=h+z|0,z=(j=j+O|0)>>>0>>0?z+1|0:z,O=(QA=qA(E,n,a,o))+j|0,j=h+z|0,z=(z=(j=O>>>0>>0?j+1|0:j)<<1|O>>>31)+W|0,z=(j=eA+(O<<=1)|0)>>>0>>0?z+1|0:z,W=j,O=j,j=z,QA=z=W+33554432|0,W=j=z>>>0<33554432?j+1|0:j,z&=-67108864,i[g+8>>2]=O-z,z=qA(k,u,rA,S),j=h,O=qA(a,o,C,e),j=h+j|0,j=(z=O+z|0)>>>0>>0?j+1|0:j,O=(nA=qA(t,B,gA,w))+z|0,z=h+j|0,z=O>>>0>>0?z+1|0:z,nA=qA(f,Q,R,v),j=h+z|0,j=(O=nA+O|0)>>>0>>0?j+1|0:j,nA=qA(E,n,D,b),z=h+j|0,eA=(j=O=nA+O|0)<<1,z=(z=(j>>>0>>0?z+1|0:z)<<1|j>>>31)+(j=Z>>26)|0,z=(Z=eA+(O=(67108863&Z)<<6|fA>>>26)|0)>>>0>>0?z+1|0:z,O=Z,j=z,fA=z=Z+16777216|0,Z=j=z>>>0<16777216?j+1|0:j,z&=-33554432,i[g+28>>2]=O-z,z=qA(f,Q,$,M),$=h,j=(AA=qA(t,B,m,AA))+z|0,z=h+$|0,z=j>>>0>>0?z+1|0:z,AA=qA(gA,w,G,l),z=h+z|0,z=(j=AA+j|0)>>>0>>0?z+1|0:z,AA=($=qA(c,y,_,p))+j|0,j=h+z|0,j=$>>>0>AA>>>0?j+1|0:j,z=AA,AA=qA(E,n,C,e),j=h+j|0,j=(z=z+AA|0)>>>0>>0?j+1|0:j,AA=z,z=(z=j<<1|z>>>31)+(j=W>>26)|0,z=(W=(O=AA<<1)+(AA=(67108863&W)<<6|QA>>>26)|0)>>>0>>0?z+1|0:z,AA=W=(j=W)+16777216|0,W=z=W>>>0<16777216?z+1|0:z,z=-33554432&AA,i[g+12>>2]=j-z,z=qA(gA,w,k,u),$=h,j=(O=qA(C,e,C,e))+z|0,z=h+$|0,z=j>>>0>>0?z+1|0:z,$=qA(a,o,_,p),z=h+z|0,z=(j=$+j|0)>>>0<$>>>0?z+1|0:z,$=qA(t,B,J,P),z=h+z|0,z=(j=$+j|0)>>>0<$>>>0?z+1|0:z,$=(O=qA(f,Q,D,b))+j|0,j=h+z|0,j=O>>>0>$>>>0?j+1|0:j,z=$,$=qA(E,n,oA,O=oA>>31),j=h+j|0,j=(z=z+$|0)>>>0<$>>>0?j+1|0:j,$=z,z=(z=j<<1|z>>>31)+(j=Z>>25)|0,z=(Z=(QA=$<<1)+($=(33554431&Z)<<7|fA>>>25)|0)>>>0<$>>>0?z+1|0:z,$=Z=(j=Z)+33554432|0,Z=z=Z>>>0<33554432?z+1|0:z,z=-67108864&$,i[g+32>>2]=j-z,j=aA-(z=-67108864&d)|0,aA=K-((z>>>0>aA>>>0)+X|0)|0,z=W>>25,W=(AA=(33554431&W)<<7|AA>>>25)+j|0,j=z+aA|0,z=j=W>>>0>>0?j+1|0:j,z=((67108863&(z=(j=W+33554432|0)>>>0<33554432?z+1|0:z))<<6|j>>>26)+(tA=tA-(-33554432&T)|0)|0,i[g+20>>2]=z,z=-67108864&j,i[g+16>>2]=W-z,z=qA(a,o,gA,w),j=h,W=qA(rA,S,x,Y),j=h+j|0,j=(z=W+z|0)>>>0>>0?j+1|0:j,W=(gA=qA(k,u,R,v))+z|0,z=h+j|0,z=W>>>0>>0?z+1|0:z,gA=qA(t,B,D,b),j=h+z|0,j=(W=gA+W|0)>>>0>>0?j+1|0:j,gA=qA(f,Q,oA,O),z=h+j|0,O=(j=W=gA+W|0)<<1,z=(z=(j>>>0>>0?z+1|0:z)<<1|j>>>31)+(j=Z>>26)|0,j=z=(W=(67108863&Z)<<6|$>>>26)>>>0>(Z=O+W|0)>>>0?z+1|0:z,j=(z=Z+16777216|0)>>>0<16777216?j+1|0:j,W=-33554432&z,i[g+36>>2]=Z-W,gA=qA((33554431&j)<<7|z>>>25,j>>25,19,0),j=h+(q-(((W=-67108864&IA)>>>0>EA>>>0)+BA|0)|0)|0,j=(z=gA+(EA-W|0)|0)>>>0>>0?j+1|0:j,j=(CA-(-33554432&iA)|0)+((67108863&(j=(Z=z+33554432|0)>>>0<33554432?j+1|0:j))<<6|Z>>>26)|0,i[g+4>>2]=j,j=-67108864&Z,i[g>>2]=z-j,yA(z=A+40|0,I,N),U(H,z),yA(z,F,A),cA(F,F,A),cA(A,H,z),cA(g,g,F),s=H+48|0}function U(A,I){var g,B,C,Q,E,n,a,o,t,e,f,c,y,s,w,D,p,u,F,l,_,k,H,G,U,S,b,m,v,M,P,Y,N,R,d,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0,CA=0;e=x=(J=i[I+12>>2])<<1,z=J,J=qA(x,E=x>>31,J,U=J>>31),K=h,x=J,n=(J=g=i[I+16>>2])>>31,p=J=(V=i[I+8>>2])<<1,L=qA(g,n,J,y=J>>31),J=h+K|0,J=(x=x+L|0)>>>0>>0?J+1|0:J,K=x,s=x=(L=i[I+20>>2])<<1,w=x>>31,a=x=(T=i[I+4>>2])<<1,W=qA(s,w,x,B=x>>31),x=h+J|0,x=(K=K+W|0)>>>0>>0?x+1|0:x,l=J=X=i[I+24>>2],f=J>>31,o=J=(Z=i[I>>2])<<1,W=qA(X,f,J,C=J>>31),J=h+x|0,J=(K=W+K|0)>>>0>>0?J+1|0:J,j=K,W=i[I+32>>2],D=x=r(W,19),K=qA(x,c=x>>31,W,_=W>>31),J=h+J|0,J=(x=j+K|0)>>>0>>0?J+1|0:J,j=x,k=i[I+36>>2],t=x=r(k,38),Q=x>>31,M=I=(K=i[I+28>>2])<<1,gA=qA(x,Q,I,S=I>>31),I=h+J|0,j=x=j+gA|0,O=x>>>0>>0?I+1|0:I,I=qA(a,B,g,n),J=h,x=qA(p,y,z,U),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,gA=L,q=qA(L,H=L>>31,o,C),x=h+J|0,x=(I=q+I|0)>>>0>>0?x+1|0:x,q=qA(D,c,M,S),J=h+x|0,J=(I=q+I|0)>>>0>>0?J+1|0:J,x=qA(t,Q,X,f),J=h+J|0,$=I=x+I|0,BA=I>>>0>>0?J+1|0:J,I=qA(a,B,e,E),x=h,J=(q=qA(V,u=V>>31,V,u))+I|0,I=h+x|0,I=J>>>0>>0?I+1|0:I,x=(q=qA(o,C,g,n))+J|0,J=h+I|0,J=x>>>0>>0?J+1|0:J,G=I=r(K,38),q=K,I=(K=qA(I,F=I>>31,K,b=K>>31))+x|0,x=h+J|0,x=I>>>0>>0?x+1|0:x,I=(J=I)+(K=qA(D,c,I=X<<1,I>>31))|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=qA(t,Q,s,w),J=h+J|0,m=I=x+I|0,N=J=I>>>0>>0?J+1|0:J,I=J,P=J=m+33554432|0,R=I=J>>>0<33554432?I+1|0:I,J=(J=I>>26)+BA|0,BA=I=(x=(67108863&I)<<6|P>>>26)+$|0,x=I>>>0>>0?J+1|0:J,d=I=I+16777216|0,J=(J=(x=I>>>0<16777216?x+1|0:x)>>25)+O|0,J=(I=(x=(33554431&x)<<7|I>>>25)+j|0)>>>0>>0?J+1|0:J,x=I,I=J,AA=J=x+33554432|0,K=I=J>>>0<33554432?I+1|0:I,I=-67108864&J,i[A+24>>2]=x-I,I=qA(o,C,V,u),J=h,j=qA(a,B,T,O=T>>31),x=h+J|0,x=(I=j+I|0)>>>0>>0?x+1|0:x,J=I,j=I=r(X,19),I=J+(X=qA(I,$=I>>31,X,f))|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=(X=qA(s,w,G,F))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,Y=J=g<<1,X=qA(D,c,J,v=J>>31),J=h+I|0,J=(x=X+x|0)>>>0>>0?J+1|0:J,I=x,x=qA(t,Q,e,E),J=h+J|0,CA=I=I+x|0,X=I>>>0>>0?J+1|0:J,I=qA(s,w,j,$),J=h,T=qA(o,C,T,O),x=h+J|0,x=(I=T+I|0)>>>0>>0?x+1|0:x,T=qA(g,n,G,F),J=h+x|0,J=(I=T+I|0)>>>0>>0?J+1|0:J,x=(T=qA(D,c,e,E))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,T=qA(t,Q,V,u),J=h+I|0,IA=x=T+x|0,O=x>>>0>>0?J+1|0:J,I=qA(I=r(L,38),I>>31,L,H),J=h,L=I,x=qA(Z,I=Z>>31,Z,I),J=h+J|0,J=(I=L+x|0)>>>0>>0?J+1|0:J,L=qA(j,$,Y,v),x=h+J|0,x=(I=L+I|0)>>>0>>0?x+1|0:x,L=qA(e,E,G,F),J=h+x|0,J=(I=L+I|0)>>>0>>0?J+1|0:J,x=(L=qA(D,c,p,y))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,L=qA(a,B,t,Q),J=h+I|0,T=x=L+x|0,j=J=x>>>0>>0?J+1|0:J,Z=I=x+33554432|0,$=J=I>>>0<33554432?J+1|0:J,x=(I=J>>26)+O|0,O=J=(L=(67108863&J)<<6|Z>>>26)+IA|0,IA=CA,J=J>>>0>>0?x+1|0:x,CA=I=O+16777216|0,L=(33554431&(J=I>>>0<16777216?J+1|0:J))<<7|I>>>25,J=(J>>25)+X|0,J=(x=IA+L|0)>>>0>>0?J+1|0:J,X=x=(I=x)+33554432|0,L=J=x>>>0<33554432?J+1|0:J,J=-67108864&x,i[A+8>>2]=I-J,I=qA(p,y,gA,H),J=h,x=qA(g,n,e,E),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=qA(a,B,l,f),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=qA(o,C,q,b),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=(IA=qA(t,Q,W,_))+I|0,I=h+J|0,J=K>>26,K=(AA=(67108863&K)<<6|AA>>>26)+x|0,x=(I=x>>>0>>0?I+1|0:I)+J|0,J=(I=K)>>>0>>0?x+1|0:x,AA=x=I+16777216|0,K=J=x>>>0<16777216?J+1|0:J,J=-33554432&x,i[A+28>>2]=I-J,I=qA(o,C,z,U),x=h,J=(V=qA(a,B,V,u))+I|0,I=h+x|0,I=J>>>0>>0?I+1|0:I,V=qA(l,f,G,F),x=h+I|0,x=(J=V+J|0)>>>0>>0?x+1|0:x,I=(V=qA(D,c,s,w))+J|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=qA(t,Q,g,n),J=h+J|0,J=(J=(I=x+I|0)>>>0>>0?J+1|0:J)+(x=L>>26)|0,x=I=(L=(67108863&L)<<6|X>>>26)+I|0,I=I>>>0>>0?J+1|0:J,V=J=x+16777216|0,L=I=J>>>0<16777216?I+1|0:I,I=-33554432&J,i[A+12>>2]=x-I,I=qA(l,f,p,y),J=h,x=qA(g,n,g,n),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=qA(e,E,s,w),J=h+J|0,J=(I=x+I|0)>>>0>>0?J+1|0:J,x=(z=qA(a,B,M,S))+I|0,I=h+J|0,I=x>>>0>>0?I+1|0:I,J=(z=qA(o,C,W,_))+x|0,x=h+I|0,x=J>>>0>>0?x+1|0:x,I=(z=qA(t,Q,k,X=k>>31))+J|0,J=h+x|0,J=I>>>0>>0?J+1|0:J,x=I,J=(I=K>>25)+J|0,J=(x=x+(K=(33554431&K)<<7|AA>>>25)|0)>>>0>>0?J+1|0:J,z=x=(I=x)+33554432|0,K=J=x>>>0<33554432?J+1|0:J,J=-67108864&x,i[A+32>>2]=I-J,J=L>>25,x=(L=(33554431&L)<<7|V>>>25)+(m-(I=-67108864&P)|0)|0,I=J+(N-((I>>>0>m>>>0)+R|0)|0)|0,J=I=x>>>0>>0?I+1|0:I,L=I=x+33554432|0,I=((67108863&(J=I>>>0<33554432?J+1|0:J))<<6|I>>>26)+(BA=BA-(-33554432&d)|0)|0,i[A+20>>2]=I,I=-67108864&L,i[A+16>>2]=x-I,I=qA(e,E,l,f),x=h,J=(L=qA(gA,H,Y,v))+I|0,I=h+x|0,I=J>>>0>>0?I+1|0:I,x=(L=qA(p,y,q,b))+J|0,J=h+I|0,J=x>>>0>>0?J+1|0:J,I=(L=qA(a,B,W,_))+x|0,x=h+J|0,x=I>>>0>>0?x+1|0:x,L=qA(o,C,k,X),J=h+x|0,x=I=L+I|0,J=(I=I>>>0>>0?J+1|0:J)+(J=K>>26)|0,I=J=(x=(K=(67108863&K)<<6|z>>>26)+x|0)>>>0>>0?J+1|0:J,I=(J=x+16777216|0)>>>0<16777216?I+1|0:I,K=-33554432&J,i[A+36>>2]=x-K,L=qA((33554431&I)<<7|J>>>25,I>>25,19,0),J=h+(j-(((x=-67108864&Z)>>>0>T>>>0)+$|0)|0)|0,x=I=L+(T-x|0)|0,I=I>>>0>>0?J+1|0:J,I=(O-(-33554432&CA)|0)+((67108863&(I=(J=x+33554432|0)>>>0<33554432?I+1|0:I))<<6|J>>>26)|0,i[A+4>>2]=I,I=A,A=-67108864&J,i[I>>2]=x-A}function S(A,I,g){var B,C=0,Q=0,E=0,n=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0;for(s=B=s-2048|0,yg(w=B+1024|0,I),AI(w,A),yg(B,w),AI(B,g),I=0,w=0;r=i[(f=(A=(B+1024|0)+(w<<7)|0)- -64|0)>>2],Q=i[A+100>>2],a=r,t=i[f+4>>2],o=i[A+96>>2],r=i[A+32>>2],E=i[A+36>>2],n=pA(o^(C=CI(i[A>>2],i[A+4>>2],r,E)),(n=Q)^(Q=h),32),E=pA(t=(a=CI(a,t,n,o=h))^r,E^(r=h),24),t=r,U=pA((p=CI(C,Q,E,r=h))^n,(D=h)^o,16),r=pA(E^(b=CI(a,t,U,S=h)),(R=h)^r,63),Q=h,E=i[A+108>>2],t=i[A+72>>2],y=i[A+76>>2],c=i[A+104>>2],C=i[A+40>>2],n=i[A+44>>2],a=pA(c^(o=CI(i[A+8>>2],i[A+12>>2],C,n)),(a=E)^(E=h),32),n=pA(t=(m=CI(t,y,a,e=h))^C,n^(C=h),24),t=m,J=pA((m=CI(o,y=E,n,E=h))^a,(d=h)^e,16),E=pA(n^(v=CI(t,C,J,x=h)),(M=h)^E,63),C=h,n=i[A+116>>2],c=i[A+80>>2],u=i[A+84>>2],y=i[A+112>>2],o=i[A+48>>2],a=i[A+52>>2],y=pA(y^(e=CI(i[A+16>>2],i[A+20>>2],o,a)),(t=n)^(n=h),32),a=pA(t=(c=CI(c,u,y,P=h))^o,a^(o=h),24),t=c,c=pA((c=y)^(y=CI(e,y=n,a,n=h)),(e=P)^(P=h),16),n=pA(a^(t=CI(t,o,c,Y=h)),(k=h)^n,63),o=h,a=i[A+124>>2],H=i[A+88>>2],N=i[A+92>>2],F=i[A+120>>2],e=i[A+56>>2],u=i[A+60>>2],F=pA(F^(l=CI(i[A+24>>2],i[A+28>>2],e,u)),(_=a)^(a=h),32),_=u=pA(_=(N=CI(H,N,F,G=h))^e,u^(e=h),24),F=pA((u=CI(l,H=a,u,a=h))^F,(l=h)^G,16),a=pA(_^(N=CI(N,e,F,G=h)),(L=h)^a,63),e=h,_=t,H=k,t=pA(F^(p=CI(p,D,E,C)),G^(D=h),32),E=pA((F=CI(_,H,t,k=h))^E,(G=h)^C,24),C=CI(C=p,D,E,p=h),i[A>>2]=C,D=h,i[A+4>>2]=D,C=pA(C^t,D^k,16),i[A+120>>2]=C,D=h,i[A+124>>2]=D,C=CI(F,G,C,D),i[A+80>>2]=C,D=h,i[A+84>>2]=D,K=A,X=pA(C^E,D^p,63),i[K+40>>2]=X,i[A+44>>2]=h,E=n,p=pA(U^(C=CI(m,d,n,o)),S^(n=h),32),E=pA(E^(U=CI(N,L,p,D=h)),(t=o)^(o=h),24),C=CI(C,t=n,E,n=h),i[A+8>>2]=C,S=h,i[A+12>>2]=S,C=pA(C^p,D^S,16),i[A+96>>2]=C,p=h,i[A+100>>2]=p,C=CI(U,o,C,p),i[A+88>>2]=C,o=h,i[A+92>>2]=o,K=A,X=pA(C^E,n^o,63),i[K+48>>2]=X,i[A+52>>2]=h,E=a,o=pA(J^(C=CI(y,P,a,e)),x^(n=h),32),E=pA(E^(p=CI(b,R,o,a=h)),(t=e)^(e=h),24),C=CI(C,t=n,E,n=h),i[A+16>>2]=C,D=h,i[A+20>>2]=D,C=pA(C^o,a^D,16),i[A+104>>2]=C,o=h,i[A+108>>2]=o,C=CI(p,e,C,o),i[f>>2]=C,a=f,f=h,i[a+4>>2]=f,K=A,X=pA(C^E,n^f,63),i[K+56>>2]=X,i[A+60>>2]=h,a=r,C=pA(c^(r=CI(u,l,r,Q)),Y^(E=h),32),f=pA(a^(o=CI(v,M,C,n=h)),(f=Q)^(Q=h),24),r=CI(r,a=E,f,E=h),i[A+24>>2]=r,a=h,i[A+28>>2]=a,r=pA(C^r,n^a,16),i[A+112>>2]=r,C=h,i[A+116>>2]=C,r=CI(o,Q,r,C),i[A+72>>2]=r,Q=h,i[A+76>>2]=Q,K=A,X=pA(r^f,E^Q,63),i[K+32>>2]=X,i[A+36>>2]=h,8!=(0|(w=w+1|0)););for(;f=i[(w=512+(A=(B+1024|0)+(I<<4)|0)|0)>>2],r=i[A+772>>2],n=f,a=i[w+4>>2],o=i[A+768>>2],w=i[A+256>>2],f=i[A+260>>2],E=pA(o^(Q=CI(i[A>>2],i[A+4>>2],w,f)),(E=r)^(r=h),32),f=pA(a=(n=CI(n,a,E,C=h))^w,f^(w=h),24),o=w,p=pA((a=CI(Q,r,f,w=h))^E,(e=h)^C,16),w=pA(f^(U=CI(n,o,p,D=h)),(S=h)^w,63),f=h,r=i[A+780>>2],t=i[A+520>>2],y=i[A+524>>2],o=i[A+776>>2],Q=i[A+264>>2],E=i[A+268>>2],n=pA(o^(C=CI(i[A+8>>2],i[A+12>>2],Q,E)),(n=r)^(r=h),32),E=pA(t=(b=CI(t,y,n,o=h))^Q,E^(Q=h),24),t=b,m=pA((b=CI(C,y=r,E,r=h))^n,(R=h)^o,16),r=pA(E^(J=CI(t,Q,m,d=h)),(x=h)^r,63),Q=h,E=i[A+900>>2],y=i[A+640>>2],c=i[A+644>>2],u=i[A+896>>2],C=i[A+384>>2],n=i[A+388>>2],v=pA(u^(o=CI(i[A+128>>2],i[A+132>>2],C,n)),(t=E)^(E=h),32),n=pA(t=(y=CI(y,c,v,M=h))^C,n^(C=h),24),t=y,y=pA((y=v)^(v=CI(o,c=E,n,E=h)),(o=M)^(M=h),16),E=pA(n^(c=CI(t,C,y,P=h)),(Y=h)^E,63),C=h,n=i[A+908>>2],_=i[A+648>>2],H=i[A+652>>2],l=i[A+904>>2],o=i[A+392>>2],t=i[A+396>>2],u=pA(l^(k=CI(i[A+136>>2],i[A+140>>2],o,t)),(u=n)^(n=h),32),_=t=pA(_=(F=CI(_,H,u,l=h))^o,t^(o=h),24),u=pA((t=CI(k,H=n,t,n=h))^u,(k=h)^l,16),n=pA(_^(F=CI(F,o,u,l=h)),(G=h)^n,63),o=h,_=c,H=Y,c=pA(u^(a=CI(a,e,r,Q)),l^(e=h),32),r=pA((u=CI(_,H,c,Y=h))^r,(l=h)^Q,24),Q=CI(Q=a,e,r,a=h),i[A>>2]=Q,e=h,i[A+4>>2]=e,Q=pA(Q^c,e^Y,16),i[A+904>>2]=Q,e=h,i[A+908>>2]=e,Q=CI(u,l,Q,e),i[A+640>>2]=Q,e=h,i[A+644>>2]=e,K=A,X=pA(Q^r,a^e,63),i[K+264>>2]=X,i[A+268>>2]=h,r=E,a=pA(p^(Q=CI(b,R,E,C)),D^(E=h),32),r=pA(r^(p=CI(F,G,a,e=h)),(c=C)^(C=h),24),Q=CI(Q,c=E,r,E=h),i[A+8>>2]=Q,D=h,i[A+12>>2]=D,Q=pA(Q^a,e^D,16),i[A+768>>2]=Q,a=h,i[A+772>>2]=a,Q=CI(p,C,Q,a),i[A+648>>2]=Q,C=h,i[A+652>>2]=C,K=A,X=pA(Q^r,C^E,63),i[K+384>>2]=X,i[A+388>>2]=h,r=n,C=pA(m^(Q=CI(v,M,n,o)),d^(E=h),32),r=pA(r^(a=CI(U,S,C,n=h)),(c=o)^(o=h),24),Q=CI(Q,c=E,r,E=h),i[A+128>>2]=Q,e=h,i[A+132>>2]=e,Q=pA(C^Q,n^e,16),i[A+776>>2]=Q,C=h,i[A+780>>2]=C,Q=CI(a,o,Q,C),i[A+512>>2]=Q,C=h,i[A+516>>2]=C,K=A,X=pA(Q^r,C^E,63),i[K+392>>2]=X,i[A+396>>2]=h,r=CI(t,k,w,f),n=CI(J,x,E=pA(y^r,P^(Q=h),32),C=h),f=CI(a=r,Q,w=pA(n^w,(o=h)^f,24),r=h),i[A+136>>2]=f,Q=h,i[A+140>>2]=Q,f=pA(E^f,C^Q,16),i[A+896>>2]=f,Q=h,i[A+900>>2]=Q,f=CI(n,o,f,Q),i[A+520>>2]=f,Q=h,i[A+524>>2]=Q,K=A,X=pA(f^w,Q^r,63),i[K+256>>2]=X,i[A+260>>2]=h,8!=(0|(I=I+1|0)););yg(g,B),AI(g,B+1024|0),s=B+2048|0}function b(A){var I=0,g=0,B=0,C=0,Q=0,E=0,n=0,r=0,o=0;A:if(A|=0){Q=(B=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(3&I))break A;if((B=B-(I=i[B>>2])|0)>>>0>2])))return i[8967]=A,i[Q+4>>2]=-2&I,i[B+4>>2]=1|A,void(i[A+B>>2]=A)}else{if(I>>>0<=255){if(C=i[B+8>>2],I=I>>>3|0,(0|(g=i[B+12>>2]))==(0|C)){r=35860,o=i[8965]&lI(-2,I),i[r>>2]=o;break I}i[C+12>>2]=g,i[g+8>>2]=C;break I}if(n=i[B+24>>2],(0|B)==(0|(I=i[B+12>>2])))if((g=i[(C=B+20|0)>>2])||(g=i[(C=B+16|0)>>2])){for(;E=C,(g=i[(C=(I=g)+20|0)>>2])||(C=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[B+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(!n)break I;C=i[B+28>>2];g:{if(i[(g=36164+(C<<2)|0)>>2]==(0|B)){if(i[g>>2]=I,I)break g;r=35864,o=i[8966]&lI(-2,C),i[r>>2]=o;break I}if(i[n+(i[n+16>>2]==(0|B)?16:20)>>2]=I,!I)break I}if(i[I+24>>2]=n,(g=i[B+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),!(g=i[B+20>>2]))break I;i[I+20>>2]=g,i[g+24>>2]=I}}if(!(B>>>0>=Q>>>0)&&1&(I=i[Q+4>>2])){I:{if(!(2&I)){if(i[8971]==(0|Q)){if(i[8971]=B,A=i[8968]+A|0,i[8968]=A,i[B+4>>2]=1|A,i[8970]!=(0|B))break A;return i[8967]=0,void(i[8970]=0)}if(i[8970]==(0|Q))return i[8970]=B,A=i[8967]+A|0,i[8967]=A,i[B+4>>2]=1|A,void(i[A+B>>2]=A);A=(-8&I)+A|0;g:if(I>>>0<=255){if(C=i[Q+8>>2],I=I>>>3|0,(0|(g=i[Q+12>>2]))==(0|C)){r=35860,o=i[8965]&lI(-2,I),i[r>>2]=o;break g}i[C+12>>2]=g,i[g+8>>2]=C}else{if(n=i[Q+24>>2],(0|Q)==(0|(I=i[Q+12>>2])))if((g=i[(C=Q+20|0)>>2])||(g=i[(C=Q+16|0)>>2])){for(;E=C,(g=i[(C=(I=g)+20|0)>>2])||(C=I+16|0,g=i[I+16>>2]););i[E>>2]=0}else I=0;else g=i[Q+8>>2],i[g+12>>2]=I,i[I+8>>2]=g;if(n){C=i[Q+28>>2];B:{if(i[(g=36164+(C<<2)|0)>>2]==(0|Q)){if(i[g>>2]=I,I)break B;r=35864,o=i[8966]&lI(-2,C),i[r>>2]=o;break g}if(i[n+(i[n+16>>2]==(0|Q)?16:20)>>2]=I,!I)break g}i[I+24>>2]=n,(g=i[Q+16>>2])&&(i[I+16>>2]=g,i[g+24>>2]=I),(g=i[Q+20>>2])&&(i[I+20>>2]=g,i[g+24>>2]=I)}}if(i[B+4>>2]=1|A,i[A+B>>2]=A,i[8970]!=(0|B))break I;return void(i[8967]=A)}i[Q+4>>2]=-2&I,i[B+4>>2]=1|A,i[A+B>>2]=A}if(A>>>0<=255)return I=35900+((A=A>>>3|0)<<3)|0,(g=i[8965])&(A=1<>2]:(i[8965]=A|g,A=I),i[I+8>>2]=B,i[A+12>>2]=B,i[B+12>>2]=I,void(i[B+8>>2]=A);C=31,i[B+16>>2]=0,i[B+20>>2]=0,A>>>0<=16777215&&(I=A>>>8|0,I<<=E=I+1048320>>>16&8,C=28+((I=((I<<=C=I+520192>>>16&4)<<(g=I+245760>>>16&2)>>>15|0)-(g|C|E)|0)<<1|A>>>I+21&1)|0),i[B+28>>2]=C,E=36164+(C<<2)|0;I:{g:{if((g=i[8966])&(I=1<>>1|0)|0),I=i[E>>2];;){if(g=I,(-8&i[I+4>>2])==(0|A))break g;if(I=C>>>29|0,C<<=1,!(I=i[16+(E=g+(4&I)|0)>>2]))break}i[E+16>>2]=B,i[B+24>>2]=g}else i[8966]=I|g,i[E>>2]=B,i[B+24>>2]=E;i[B+12>>2]=B,i[B+8>>2]=B;break I}A=i[g+8>>2],i[A+12>>2]=B,i[g+8>>2]=B,i[B+24>>2]=0,i[B+12>>2]=g,i[B+8>>2]=A}A=i[8973]-1|0,i[8973]=A||-1}}}function m(A,I,g,B,C){var E,a,r,o,t,e,f,c,y,w,D,h,p,u,F,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,N=0,R=0,d=0,J=0,x=0,L=0,K=0,X=0,T=0,V=0,q=0,z=0,j=0,W=0,O=0,Z=0,$=0,AA=0,IA=0,gA=0,BA=0;for(s=E=s+-64|0,a=i[A+60>>2],r=i[A+56>>2],L=i[A+52>>2],J=i[A+48>>2],o=i[A+44>>2],t=i[A+40>>2],e=i[A+36>>2],f=i[A+32>>2],c=i[A+28>>2],y=i[A+24>>2],w=i[A+20>>2],D=i[A+16>>2],h=i[A+12>>2],p=i[A+8>>2],u=i[A+4>>2],F=i[A>>2];;){if(!C&B>>>0>63|C)_=g;else{if(H=0,_=wI(E,0,64),B|C)for(;Q[_+H|0]=n[I+H|0],!C&(H=H+1|0)>>>0>>0|C;);I=_,T=g}for(K=20,b=F,m=u,v=p,M=h,H=D,G=w,g=y,P=c,U=f,S=e,Y=t,N=a,d=r,l=L,k=J,x=o;R=H,b=cg((H=H+b|0)^k,16),k=cg(R^(U=b+U|0),12),R=U,U=cg((U=b)^(b=H+k|0),8),H=cg(k^(R=R+U|0),7),k=G,m=cg((G=G+m|0)^l,16),l=cg(k^(S=m+S|0),12),k=S,S=cg((S=m)^(m=G+l|0),8),G=cg(l^(X=k+S|0),7),l=g,v=cg((g=g+v|0)^d,16),l=d=cg(l^(Y=v+Y|0),12),d=cg((k=v)^(v=g+d|0),8),g=cg(l^(Y=d+Y|0),7),l=P,M=cg((P=P+M|0)^N,16),k=l=cg(l^(N=M+x|0),12),x=N,N=cg((N=M)^(M=P+l|0),8),P=cg(k^(l=x+N|0),7),k=Y,Y=cg((b=G+b|0)^N,16),G=cg((k=k+Y|0)^G,12),N=cg(Y^(b=G+b|0),8),G=cg(G^(Y=k+N|0),7),U=cg((m=g+m|0)^U,16),g=cg((l=U+l|0)^g,12),k=cg(U^(m=g+m|0),8),g=cg(g^(x=l+k|0),7),U=cg((v=P+v|0)^S,16),P=cg((S=U+R|0)^P,12),l=cg(U^(v=P+v|0),8),P=cg(P^(U=S+l|0),7),S=cg((M=H+M|0)^d,16),H=cg((R=S+X|0)^H,12),d=cg(S^(M=H+M|0),8),H=cg(H^(S=R+d|0),7),K=K-2|0;);if(K=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,R=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,X=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,V=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,q=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,z=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,j=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,W=n[I+32|0]|n[I+33|0]<<8|n[I+34|0]<<16|n[I+35|0]<<24,O=n[I+36|0]|n[I+37|0]<<8|n[I+38|0]<<16|n[I+39|0]<<24,Z=n[I+40|0]|n[I+41|0]<<8|n[I+42|0]<<16|n[I+43|0]<<24,$=n[I+44|0]|n[I+45|0]<<8|n[I+46|0]<<16|n[I+47|0]<<24,AA=n[I+48|0]|n[I+49|0]<<8|n[I+50|0]<<16|n[I+51|0]<<24,IA=n[I+52|0]|n[I+53|0]<<8|n[I+54|0]<<16|n[I+55|0]<<24,gA=n[I+56|0]|n[I+57|0]<<8|n[I+58|0]<<16|n[I+59|0]<<24,BA=n[I+60|0]|n[I+61|0]<<8|n[I+62|0]<<16|n[I+63|0]<<24,bI(_,b+F^(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24)),bI(_+4|0,m+u^K),bI(_+8|0,v+p^R),bI(_+12|0,M+h^X),bI(_+16|0,H+D^V),bI(_+20|0,G+w^q),bI(_+24|0,g+y^z),bI(_+28|0,P+c^j),bI(_+32|0,U+f^W),bI(_+36|0,S+e^O),bI(_+40|0,Z^Y+t),bI(_+44|0,$^x+o),bI(_+48|0,AA^k+J),bI(_+52|0,IA^l+L),bI(_+56|0,gA^d+r),bI(_+60|0,BA^N+a),L=((J=(g=J)+1|0)>>>0>>0)+L|0,!C&B>>>0<=64){if(!(!B|!C&B>>>0>63|0!=(0|C)))for(G=0;Q[G+T|0]=n[_+G|0],(0|B)!=(0|(G=G+1|0)););i[A+52>>2]=L,i[A+48>>2]=J,s=E- -64|0;break}I=I- -64|0,g=_- -64|0,C=C-1|0,C=(B=B+-64|0)>>>0<4294967232?C+1|0:C}}function v(A,I){var g,B=0,C=0,Q=0,E=0,n=0,a=0,r=0;g=A+I|0;A:{I:if(!(1&(B=i[A+4>>2]))){if(!(3&B))break A;I=(B=i[A>>2])+I|0;g:{if((0|(A=A-B|0))!=i[8970]){if(B>>>0<=255){if(Q=i[A+8>>2],B=B>>>3|0,(0|(C=i[A+12>>2]))!=(0|Q))break g;a=35860,r=i[8965]&lI(-2,B),i[a>>2]=r;break I}if(n=i[A+24>>2],(0|(B=i[A+12>>2]))==(0|A))if((C=i[(Q=A+20|0)>>2])||(C=i[(Q=A+16|0)>>2])){for(;E=Q,(C=i[(Q=(B=C)+20|0)>>2])||(Q=B+16|0,C=i[B+16>>2]););i[E>>2]=0}else B=0;else C=i[A+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;if(!n)break I;Q=i[A+28>>2];B:{if(i[(C=36164+(Q<<2)|0)>>2]==(0|A)){if(i[C>>2]=B,B)break B;a=35864,r=i[8966]&lI(-2,Q),i[a>>2]=r;break I}if(i[n+(i[n+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}if(i[B+24>>2]=n,(C=i[A+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),!(C=i[A+20>>2]))break I;i[B+20>>2]=C,i[C+24>>2]=B;break I}if(3!=(3&(B=i[g+4>>2])))break I;return i[8967]=I,i[g+4>>2]=-2&B,i[A+4>>2]=1|I,void(i[g>>2]=I)}i[Q+12>>2]=C,i[C+8>>2]=Q}I:{if(!(2&(B=i[g+4>>2]))){if(i[8971]==(0|g)){if(i[8971]=A,I=i[8968]+I|0,i[8968]=I,i[A+4>>2]=1|I,i[8970]!=(0|A))break A;return i[8967]=0,void(i[8970]=0)}if(i[8970]==(0|g))return i[8970]=A,I=i[8967]+I|0,i[8967]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);I=(-8&B)+I|0;g:if(B>>>0<=255){if(Q=i[g+8>>2],B=B>>>3|0,(0|(C=i[g+12>>2]))==(0|Q)){a=35860,r=i[8965]&lI(-2,B),i[a>>2]=r;break g}i[Q+12>>2]=C,i[C+8>>2]=Q}else{if(n=i[g+24>>2],(0|g)==(0|(B=i[g+12>>2])))if((Q=i[(C=g+20|0)>>2])||(Q=i[(C=g+16|0)>>2])){for(;E=C,(Q=i[(C=(B=Q)+20|0)>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0}else B=0;else C=i[g+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;if(n){Q=i[g+28>>2];B:{if(i[(C=36164+(Q<<2)|0)>>2]==(0|g)){if(i[C>>2]=B,B)break B;a=35864,r=i[8966]&lI(-2,Q),i[a>>2]=r;break g}if(i[n+(i[n+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=n,(C=i[g+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[g+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[8970]!=(0|A))break I;return void(i[8967]=I)}i[g+4>>2]=-2&B,i[A+4>>2]=1|I,i[A+I>>2]=I}if(I>>>0<=255)return B=35900+((I=I>>>3|0)<<3)|0,(C=i[8965])&(I=1<>2]:(i[8965]=I|C,I=B),i[B+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=B,void(i[A+8>>2]=I);Q=31,i[A+16>>2]=0,i[A+20>>2]=0,I>>>0<=16777215&&(B=I>>>8|0,B<<=E=B+1048320>>>16&8,Q=28+((B=((B<<=Q=B+520192>>>16&4)<<(C=B+245760>>>16&2)>>>15|0)-(C|Q|E)|0)<<1|I>>>B+21&1)|0),i[A+28>>2]=Q,E=36164+(Q<<2)|0;I:{if((C=i[8966])&(B=1<>>1|0)|0),B=i[E>>2];;){if(C=B,(-8&i[B+4>>2])==(0|I))break I;if(B=Q>>>29|0,Q<<=1,!(B=i[16+(E=C+(4&B)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=C}else i[8966]=B|C,i[E>>2]=A,i[A+24>>2]=E;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[C+8>>2],i[I+12>>2]=A,i[C+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=C,i[A+8>>2]=I}}function M(A,I,g,B){var C=0,Q=0,E=0,a=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0;if(c=i[A+36>>2],a=i[A+32>>2],E=i[A+28>>2],Q=i[A+24>>2],o=i[A+20>>2],!B&g>>>0>=16|B)for(G=!n[A+80|0]<<24,s=i[A+4>>2],U=r(s,5),p=i[A+8>>2],H=r(p,5),_=i[A+12>>2],k=r(_,5),C=i[A+16>>2],u=r(C,5),S=C,w=i[A>>2];C=qA(t=((n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108863)+Q|0,0,_,0),e=h,Q=(y=qA(o=(67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24))+o|0,0,S,0))+C|0,C=h+e|0,C=Q>>>0>>0?C+1|0:C,f=Q,Q=qA(e=((n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67108863)+E|0,0,p,0),C=h+C|0,C=Q>>>0>(E=f+Q|0)>>>0?C+1|0:C,Q=E,E=qA(y=((n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6|0)+a|0,0,s,0),C=h+C|0,C=E>>>0>(a=Q+E|0)>>>0?C+1|0:C,Q=a,a=qA(D=c+G+((n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24)>>>8)|0,0,w,0),C=h+C|0,b=c=Q+a|0,c=a>>>0>c>>>0?C+1|0:C,C=qA(t,0,p,0),E=h,a=(Q=qA(o,0,_,0))+C|0,C=h+E|0,C=Q>>>0>a>>>0?C+1|0:C,E=qA(e,0,s,0),C=h+C|0,C=E>>>0>(a=E+a|0)>>>0?C+1|0:C,E=qA(y,0,w,0),C=h+C|0,C=E>>>0>(a=E+a|0)>>>0?C+1|0:C,E=qA(D,0,u,0),C=h+C|0,m=a=E+a|0,a=E>>>0>a>>>0?C+1|0:C,C=qA(t,0,s,0),Q=h,E=(F=qA(o,0,p,0))+C|0,C=h+Q|0,C=E>>>0>>0?C+1|0:C,Q=qA(e,0,w,0),C=h+C|0,C=Q>>>0>(E=Q+E|0)>>>0?C+1|0:C,Q=qA(y,0,u,0),C=h+C|0,C=Q>>>0>(E=Q+E|0)>>>0?C+1|0:C,Q=qA(D,0,k,0),C=h+C|0,F=E=Q+E|0,E=Q>>>0>E>>>0?C+1|0:C,C=qA(t,0,w,0),f=h,Q=(l=qA(o,0,s,0))+C|0,C=h+f|0,C=Q>>>0>>0?C+1|0:C,f=qA(e,0,u,0),C=h+C|0,C=(Q=f+Q|0)>>>0>>0?C+1|0:C,f=qA(y,0,k,0),C=h+C|0,C=(Q=f+Q|0)>>>0>>0?C+1|0:C,f=qA(D,0,H,0),C=h+C|0,C=(Q=f+Q|0)>>>0>>0?C+1|0:C,f=Q,Q=C,C=qA(t,0,u,0),l=h,t=(o=qA(o,0,w,0))+C|0,C=h+l|0,C=t>>>0>>0?C+1|0:C,o=qA(e,0,k,0),C=h+C|0,C=(t=o+t|0)>>>0>>0?C+1|0:C,o=qA(y,0,H,0),C=h+C|0,C=(t=o+t|0)>>>0>>0?C+1|0:C,o=qA(D,0,U,0),C=h+C|0,C=(t=o+t|0)>>>0>>0?C+1|0:C,o=t,e=(67108863&C)<<6|t>>>26,C=Q,e=(67108863&(C=(t=e+f|0)>>>0>>0?C+1|0:C))<<6|(Q=t)>>>26,C=E,C=(Q=e+F|0)>>>0>>0?C+1|0:C,e=Q,Q=(67108863&C)<<6|Q>>>26,C=a,y=E=Q+m|0,E=(67108863&(C=Q>>>0>E>>>0?C+1|0:C))<<6|E>>>26,C=c,c=a=E+b|0,Q=(67108863&t)+((C=r((67108863&(E>>>0>a>>>0?C+1|0:C))<<6|a>>>26,5)+(67108863&o)|0)>>>26|0)|0,E=67108863&e,a=67108863&y,c&=67108863,o=67108863&C,I=I+16|0,!(B=B-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|B;);i[A+20>>2]=o,i[A+36>>2]=c,i[A+32>>2]=a,i[A+28>>2]=E,i[A+24>>2]=Q}function P(A,I,g){var B,C,E,i,a=0,r=0,o=0,t=0,e=0;return s=E=s-160|0,_I(I,g,32,0),Q[0|I]=248&n[0|I],Q[I+31|0]=63&n[I+31|0]|64,BA(E,I),II(A,E),r=n[(C=g)+8|0]|n[C+9|0]<<8|n[C+10|0]<<16|n[C+11|0]<<24,a=n[C+12|0]|n[C+13|0]<<8|n[C+14|0]<<16|n[C+15|0]<<24,o=n[C+16|0]|n[C+17|0]<<8|n[C+18|0]<<16|n[C+19|0]<<24,t=n[C+20|0]|n[C+21|0]<<8|n[C+22|0]<<16|n[C+23|0]<<24,e=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,g=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i=n[C+28|0]|n[C+29|0]<<8|n[C+30|0]<<16|n[C+31|0]<<24,B=I,I=n[C+24|0]|n[C+25|0]<<8|n[C+26|0]<<16|n[C+27|0]<<24,Q[B+24|0]=I,Q[B+25|0]=I>>>8,Q[B+26|0]=I>>>16,Q[B+27|0]=I>>>24,Q[B+28|0]=i,Q[B+29|0]=i>>>8,Q[B+30|0]=i>>>16,Q[B+31|0]=i>>>24,Q[B+16|0]=o,Q[B+17|0]=o>>>8,Q[B+18|0]=o>>>16,Q[B+19|0]=o>>>24,Q[B+20|0]=t,Q[B+21|0]=t>>>8,Q[B+22|0]=t>>>16,Q[B+23|0]=t>>>24,Q[B+8|0]=r,Q[B+9|0]=r>>>8,Q[B+10|0]=r>>>16,Q[B+11|0]=r>>>24,Q[B+12|0]=a,Q[B+13|0]=a>>>8,Q[B+14|0]=a>>>16,Q[B+15|0]=a>>>24,Q[0|B]=e,Q[B+1|0]=e>>>8,Q[B+2|0]=e>>>16,Q[B+3|0]=e>>>24,Q[B+4|0]=g,Q[B+5|0]=g>>>8,Q[B+6|0]=g>>>16,Q[B+7|0]=g>>>24,o=n[(a=A)+8|0]|n[a+9|0]<<8|n[a+10|0]<<16|n[a+11|0]<<24,t=n[a+12|0]|n[a+13|0]<<8|n[a+14|0]<<16|n[a+15|0]<<24,e=n[a+16|0]|n[a+17|0]<<8|n[a+18|0]<<16|n[a+19|0]<<24,g=n[a+20|0]|n[a+21|0]<<8|n[a+22|0]<<16|n[a+23|0]<<24,I=n[0|a]|n[a+1|0]<<8|n[a+2|0]<<16|n[a+3|0]<<24,A=n[a+4|0]|n[a+5|0]<<8|n[a+6|0]<<16|n[a+7|0]<<24,r=n[a+28|0]|n[a+29|0]<<8|n[a+30|0]<<16|n[a+31|0]<<24,a=n[a+24|0]|n[a+25|0]<<8|n[a+26|0]<<16|n[a+27|0]<<24,Q[B+56|0]=a,Q[B+57|0]=a>>>8,Q[B+58|0]=a>>>16,Q[B+59|0]=a>>>24,Q[B+60|0]=r,Q[B+61|0]=r>>>8,Q[B+62|0]=r>>>16,Q[B+63|0]=r>>>24,Q[B+48|0]=e,Q[B+49|0]=e>>>8,Q[B+50|0]=e>>>16,Q[B+51|0]=e>>>24,Q[B+52|0]=g,Q[B+53|0]=g>>>8,Q[B+54|0]=g>>>16,Q[B+55|0]=g>>>24,Q[B+40|0]=o,Q[B+41|0]=o>>>8,Q[B+42|0]=o>>>16,Q[B+43|0]=o>>>24,Q[B+44|0]=t,Q[B+45|0]=t>>>8,Q[B+46|0]=t>>>16,Q[B+47|0]=t>>>24,Q[B+32|0]=I,Q[B+33|0]=I>>>8,Q[B+34|0]=I>>>16,Q[B+35|0]=I>>>24,Q[B+36|0]=A,Q[B+37|0]=A>>>8,Q[B+38|0]=A>>>16,Q[B+39|0]=A>>>24,s=E+160|0,0}function Y(A,I,g){var B,C=0,E=0;s=B=s+-64|0;A:{if((g-65&255)>>>0>191){if(C=-1,!(n[A+80|0]|n[A+81|0]<<8|n[A+82|0]<<16|n[A+83|0]<<24|n[A+84|0]|n[A+85|0]<<8|n[A+86|0]<<16|n[A+87|0]<<24)){if((C=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)>>>0>=129){if(CA(A,128),p(A,E=A+96|0),C=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,Q[A+352|0]=C,Q[A+353|0]=C>>>8,Q[A+354|0]=C>>>16,Q[A+355|0]=C>>>24,C>>>0>=129)break A;eI(E,A+224|0,C),C=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24}CA(A,C),n[A+356|0]&&(Q[A+88|0]=255,Q[A+89|0]=255,Q[A+90|0]=255,Q[A+91|0]=255,Q[A+92|0]=255,Q[A+93|0]=255,Q[A+94|0]=255,Q[A+95|0]=255),Q[A+80|0]=255,Q[A+81|0]=255,Q[A+82|0]=255,Q[A+83|0]=255,Q[A+84|0]=255,Q[A+85|0]=255,Q[A+86|0]=255,Q[A+87|0]=255,wI((C=A+96|0)+(E=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,0,256-E|0),p(A,C),QI(B,n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24),QI(8|B,n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24),QI(B+16|0,n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24),QI(B+24|0,n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,n[A+28|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24),QI(B+32|0,n[A+32|0]|n[A+33|0]<<8|n[A+34|0]<<16|n[A+35|0]<<24,n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24),QI(B+40|0,n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,n[A+44|0]|n[A+45|0]<<8|n[A+46|0]<<16|n[A+47|0]<<24),QI(B+48|0,n[A+48|0]|n[A+49|0]<<8|n[A+50|0]<<16|n[A+51|0]<<24,n[A+52|0]|n[A+53|0]<<8|n[A+54|0]<<16|n[A+55|0]<<24),QI(B+56|0,n[A+56|0]|n[A+57|0]<<8|n[A+58|0]<<16|n[A+59|0]<<24,n[A+60|0]|n[A+61|0]<<8|n[A+62|0]<<16|n[A+63|0]<<24),eI(I,B,g),Dg(A,64),Dg(C,256),C=0}return s=B- -64|0,C}xI(),t()}e(1299,1161,306,1086),t()}function N(A,I){var g,B,C,Q,E,a,r,o,t,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0,F=0;g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,u=uI(I+4|0),e=h,w=uI(I+7|0),y=h,p=uI(I+10|0),f=h,B=uI(I+13|0),s=h,c=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,C=uI(I+20|0),Q=h,E=uI(I+23|0),a=h,r=uI(I+26|0),o=h,t=uI(I+29|0),I=f<<3|p>>>29,F=f=p<<3,p=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,D=w<<5,y=I=y<<5|w>>>27,e=I=e<<6|(w=u)>>>26,u=I=16777216+(w<<=6)|0,I=(I=(e=I>>>0<16777216?e+1|0:e)>>25)+y|0,I=(e=D+(D=(33554431&e)<<7|u>>>25)|0)>>>0>>0?I+1|0:I,I=(F-(-33554432&p)|0)+((67108863&(I=(y=e+33554432|0)>>>0<33554432?I+1|0:I))<<6|y>>>26)|0,i[A+12>>2]=I,I=-67108864&y,i[A+8>>2]=e-I,I=0,y=c=(e=c)+16777216|0,c=I=c>>>0<16777216?1:I,F=e-(-33554432&y)|0,I=s<<2|(e=B)>>>30,s=e<<2,e=I,I=(I=f>>25)+e|0,e=I=(f=(D=s)+(s=(33554431&f)<<7|p>>>25)|0)>>>0>>0?I+1|0:I,s=I=f+33554432|0,I=((67108863&(e=I>>>0<33554432?e+1|0:e))<<6|I>>>26)+F|0,i[A+20>>2]=I,I=-67108864&s,i[A+16>>2]=f-I,f=(e=C)<<7,I=(I=Q<<7|e>>>25)+(e=c>>25)|0,I=(f=f+(c=(33554431&c)<<7|y>>>25)|0)>>>0>>0?I+1|0:I,f=e=f,c=e=e+33554432|0,e=I=e>>>0<33554432?I+1|0:I,I=-67108864&c,i[A+24>>2]=f-I,I=a<<5|(f=E)>>>27,s=f<<=5,y=f=f+16777216|0,f=I=f>>>0<16777216?I+1|0:I,I=(s-(-33554432&y)|0)+((67108863&e)<<6|c>>>26)|0,i[A+28>>2]=I,c=(e=r)<<4,e=I=o<<4|e>>>28,I=(I=f>>25)+e|0,I=(f=(s=c)+(c=(33554431&f)<<7|y>>>25)|0)>>>0>>0?I+1|0:I,f=e=f,c=e=e+33554432|0,e=I=e>>>0<33554432?I+1|0:I,I=-67108864&c,i[A+32>>2]=f-I,I=0,y=f=(f=t)<<2&33554428,I=(f=f+16777216|0)>>>0<16777216?I+1|0:I,e=(y-(33554432&f)|0)+((67108863&e)<<6|c>>>26)|0,i[A+36>>2]=e,f=qA((33554431&I)<<7|f>>>25,I>>>25|0,19,0),I=h,I=(e=f+g|0)>>>0>>0?I+1|0:I,I=(w-(-33554432&u)|0)+((67108863&(I=(f=e+33554432|0)>>>0<33554432?I+1|0:I))<<6|f>>>26)|0,i[A+4>>2]=I,I=A,A=-67108864&f,i[I>>2]=e-A}function R(A,I,g,B){var C,E=0;C=E=s,s=E=E-576&-64,i[E+188>>2]=0,bI(E+188|0,I);A:if(I>>>0<=64){if((0|OA(E+192|0,0,0,I))<0)break A;if((0|Cg(E+192|0,E+188|0,4,0))<0)break A;if((0|Cg(E+192|0,g,B,0))<0)break A;UI(E+192|0,A,I)}else if(!((0|OA(E+192|0,0,0,64))<0||(0|Cg(E+192|0,E+188|0,4,0))<0||(0|Cg(E+192|0,g,B,0))<0||(0|UI(E+192|0,E+112|0,64))<0)){if(g=i[E+116>>2],B=i[E+112>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(eI(g=E+48|0,B=E+112|0,64),(0|vA(B,64,g,64,0,0,0))<0)break A;if(g=i[E+116>>2],B=i[E+112>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,g=i[E+124>>2],B=i[E+120>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[E+140>>2],B=i[E+136>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[E+132>>2],B=i[E+128>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}eI(g=E+48|0,B=E+112|0,64),(0|vA(B,I,g,64,0,0,0))<0||eI(A,E+112|0,I)}Dg(E+192|0,384),s=C}function d(A,I,g){var B,C,Q,E,i,a,r,o,t,e,f,c,y=0,s=0,w=0,D=0,h=0,p=0,u=0,F=0,l=0,_=0,k=0,H=0,G=0,U=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0;for(B=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,C=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,Q=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,E=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,i=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,a=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,r=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,k=1634760805,g=o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,w=B,S=C,D=Q,H=857760878,h=t=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,p=e=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,u=f=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,_=c=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,G=2036477234,I=E,F=1797285236,l=r,y=a,s=i;D=cg(s+k|0,7)^D,u=cg(D+k|0,9)^u,b=cg(u+D|0,13)^s,M=cg(u+b|0,18),s=cg(g+H|0,7)^_,U=cg(s+H|0,9)^y,g=cg(s+U|0,13)^g,_=cg(U+g|0,18),l=cg(h+G|0,7)^l,w=cg(l+G|0,9)^w,h=cg(l+w|0,13)^h,P=cg(w+h|0,18),y=cg(I+F|0,7)^S,p=cg(y+F|0,9)^p,m=cg(y+p|0,13)^I,Y=cg(p+m|0,18),g=cg((I=k^M)+y|0,7)^g,w=cg(g+I|0,9)^w,S=cg(g+w|0,13)^y,k=cg(w+S|0,18)^I,h=cg((I=H^_)+D|0,7)^h,p=cg(h+I|0,9)^p,D=cg(p+h|0,13)^D,H=cg(p+D|0,18)^I,I=cg((y=G^P)+s|0,7)^m,u=cg(I+y|0,9)^u,_=cg(I+u|0,13)^s,G=cg(u+_|0,18)^y,s=cg((F^=Y)+l|0,7)^b,y=cg(s+F|0,9)^U,l=cg(y+s|0,13)^l,F=cg(y+l|0,18)^F,U=v>>>0<18,v=v+2|0,U;);bI(A,k+1634760805|0),bI(A+4|0,g+o|0),bI(A+8|0,w+B|0),bI(A+12|0,S+C|0),bI(A+16|0,D+Q|0),bI(A+20|0,H+857760878|0),bI(A+24|0,h+t|0),bI(A+28|0,p+e|0),bI(A+32|0,u+f|0),bI(A+36|0,_+c|0),bI(A+40|0,G+2036477234|0),bI(A+44|0,I+E|0),bI(A+48|0,s+i|0),bI(A+52|0,y+a|0),bI(A+56|0,l+r|0),bI(A+60|0,F+1797285236|0)}function J(A,I,g,B,C,E){var i,a=0,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0;for(s=i=s-592|0,e=-1,f=A+32|0,a=32,o=1;t=(c=n[f+(a=a-1|0)|0])-(y=n[a+2752|0])>>8&o|255&t,o&=65535+(c^y)>>>8,a;);if(t&&!sA(A)){for(a=127&(-1^n[C+31|0]),t=30;a=-1^n[C+t|0]|a,t=t-1|0;);if(((255&a)-1&236-n[0|C])<<23>>31!=-1&&!sA(C)&&!V(i+128|0,C)){WI(a=i+384|0,E),z(a,A,32,0),z(a,C,32,0),z(a,I,g,B),MA(a,I=i+320|0),l(I),s=B=s-2272|0,oA(B+2016|0,I),oA(B+1760|0,f),DI(g=B+480|0,C=i+128|0),fI(I=B+320|0,C),tI(B,I),xA(I,B,g),tI(g=B+160|0,I),DI(C=B+640|0,g),xA(I,B,C),tI(g,I),DI(C=B+800|0,g),xA(I,B,C),tI(g,I),DI(C=B+960|0,g),xA(I,B,C),tI(g,I),DI(C=B+1120|0,g),xA(I,B,C),tI(g,I),DI(C=B+1280|0,g),xA(I,B,C),tI(g,I),DI(C=B+1440|0,g),xA(I,B,C),tI(g,I),DI(B+1600|0,g),hg(E=i+8|0),ng(E+40|0),ng(E+80|0),C=255;A:{for(;;){if(!(n[(I=C)+(B+2016|0)|0]|n[(B+1760|0)+I|0])){if(C=I-1|0,I)continue;break A}break}if(!((0|I)<0))for(;G(B+320|0,E),g=I,(0|(I=Q[(B+2016|0)+I|0]))>0?(tI(C=B+160|0,a=B+320|0),xA(a,C,(B+480|0)+r((254&I)>>>1|0,160)|0)):(0|I)>=0||(tI(C=B+160|0,a=B+320|0),JA(a,C,(B+480|0)+r((0-I&254)>>>1|0,160)|0)),(0|(o=Q[g+(B+1760|0)|0]))>0?(tI(I=B+160|0,C=B+320|0),TA(C,I,r((254&o)>>>1|0,120)+1568|0)):(0|o)>=0||(tI(C=B+160|0,I=B+320|0),s=t=s-48|0,yA(I,e=C+40|0,C),cA(a=I+40|0,e,C),H(e=I+80|0,I,40+(f=r((0-o&254)>>>1|0,120)+1568|0)|0),H(a,a,f),H(o=I+120|0,f+80|0,C+120|0),yA(t,C=C+80|0,C),cA(I,e,a),yA(a,e,a),cA(e,t,o),yA(o,t,o),s=t+48|0),hI(E,B+320|0),I=g-1|0,(0|g)>0;);}s=B+2272|0,II(I=i+288|0,E),w=-1,D=eg(I,A),e=((0|A)==(0|I)?w:D)|zA(A,I,32)}}return s=i+592|0,e}function x(A,I,g){var B=0,C=0,Q=0,E=0,i=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,h=0,p=0,u=0;for(Q=2036477234,t=857760878,e=1634760805,E=1797285236,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,B=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,C=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,a=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,c=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,y=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,w=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,D=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,f=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;r=o,e=cg((s=g)^(g=o+e|0),16),r=c=cg(r^(o=e+c|0),12),c=cg((s=e)^(e=g+c|0),8),o=cg(r^(h=c+o|0),7),r=B,t=cg((g=B+t|0)^f,16),r=f=cg(r^(B=t+y|0),12),f=cg((s=t)^(t=g+f|0),8),g=cg(r^(y=f+B|0),7),r=C,B=cg((Q=Q+C|0)^i,16),r=i=cg(r^(C=B+w|0),12),s=cg(B^(i=Q+i|0),8),Q=cg(r^(B=s+C|0),7),E=cg((C=I)^(I=E+a|0),16),a=cg((C=E+D|0)^a,12),I=cg(E^(p=I+a|0),8),E=cg(a^(C=I+C|0),7),r=B,B=cg((B=I)^(I=g+e|0),16),g=cg((a=r+B|0)^g,12),I=cg(B^(e=I+g|0),8),B=cg(g^(w=a+I|0),7),r=C,C=cg((g=Q+t|0)^c,16),Q=cg((a=r+C|0)^Q,12),g=cg(C^(t=g+Q|0),8),C=cg(Q^(D=a+g|0),7),a=cg((Q=E+i|0)^f,16),E=cg((i=a+h|0)^E,12),f=cg(a^(Q=Q+E|0),8),a=cg(E^(c=i+f|0),7),i=cg((E=o+p|0)^s,16),o=cg((y=i+y|0)^o,12),i=cg(i^(E=E+o|0),8),o=cg(o^(y=y+i|0),7),10!=(0|(u=u+1|0)););bI(A,e),bI(A+4|0,t),bI(A+8|0,Q),bI(A+12|0,E),bI(A+16|0,g),bI(A+20|0,f),bI(A+24|0,i),bI(A+28|0,I)}function L(A,I,g,B,C,E,n,a){A|=0,I|=0,g|=0,B|=0,C|=0,E|=0,n|=0;var r,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0,h=0;s=r=s-16|0,ag(a|=0);A:{I:if(B){D=4&a;g:for(;;){for(t=f;;){o=Q[g+t|0];B:{if(D?(e=o+4&(o+65488>>>8^-1)&(57-o>>>8^-1)&255|((e=o-65|0)>>>8^-1)&e&(90-o>>>8^-1)&255|o+185&(o+65439>>>8^-1)&(122-o>>>8^-1)&255|63&(1+(16288^o)>>>8^-1)|62&(1+(16338^o)>>>8^-1),e|=(0-e>>>8^-1)&1+(65470^o)>>>8&255):(e=o+4&(o+65488>>>8^-1)&(57-o>>>8^-1)&255|((e=o-65|0)>>>8^-1)&e&(90-o>>>8^-1)&255|o+185&(o+65439>>>8^-1)&(122-o>>>8^-1)&255|63&(1+(16336^o)>>>8^-1)|62&(1+(16340^o)>>>8^-1),e|=(0-e>>>8^-1)&1+(65470^o)>>>8&255),255==(0|e)){if(!C)break I;if(DA(C,o))break B;f=t;break I}if(w=e+(w<<6)|0,(f=c+6|0)>>>0<8)c=f;else{if(c=c-2|0,I>>>0<=y>>>0){i[r+12>>2]=t,i[8952]=68,h=1;break A}Q[A+y|0]=w>>>c,y=y+1|0}if((f=t+1|0)>>>0>>0)continue g;break I}if(!((t=t+1|0)>>>0>>0))break}break}f=(A=f+1|0)>>>0>>0?B:A}i[r+12>>2]=f}A:if(c>>>0>4)I=0,A=-1;else if(A=-1,I=0,!((-1<>>1|0)for(A=i[r+12>>2];;){if(A>>>0>=B>>>0){t=68;break g}if(61!=(0|(f=Q[A+g|0]))){if(t=28,!C)break g;if(!DA(C,f))break g}else a=a-1|0;if(A=A+1|0,i[r+12>>2]=A,!a)break}A=0;break I}i[8952]=t,A=-1}if(A)break A}if(A=0,C){I:if(!((t=i[r+12>>2])>>>0>=B>>>0)){for(;;){if(!DA(C,Q[g+t|0]))break I;if((0|(t=t+1|0))==(0|B))break}t=B}i[r+12>>2]=t}I=y}return C=i[r+12>>2],n?i[n>>2]=g+C:(0|B)!=(0|C)&&(i[8952]=28,A=-1),E&&(i[E>>2]=I),s=r+16|0,0|A}function K(A,I,g){var B=0,C=0,Q=0,E=0,i=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,h=0,p=0,u=0,F=0,l=0;for(C=2036477234,Q=857760878,E=1634760805,i=1797285236,w=20,o=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,s=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,D=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,c=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,t=n[g+16|0]|n[g+17|0]<<8|n[g+18|0]<<16|n[g+19|0]<<24,a=n[g+20|0]|n[g+21|0]<<8|n[g+22|0]<<16|n[g+23|0]<<24,e=n[g+24|0]|n[g+25|0]<<8|n[g+26|0]<<16|n[g+27|0]<<24,f=n[g+28|0]|n[g+29|0]<<8|n[g+30|0]<<16|n[g+31|0]<<24,g=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,r=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,B=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,I=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24;h=B,B=cg(E+a|0,7)^c,y=h^cg(B+E|0,9),p=cg(B+y|0,13)^a,c=cg(y+p|0,18),I=cg(Q+o|0,7)^I,e=cg(I+Q|0,9)^e,o=cg(I+e|0,13)^o,F=cg(e+o|0,18),f=cg(g+C|0,7)^f,a=cg(f+C|0,9)^s,u=cg(a+f|0,13)^g,l=cg(a+u|0,18),g=cg(i+t|0,7)^D,r=cg(g+i|0,9)^r,t=cg(g+r|0,13)^t,h=cg(r+t|0,18),o=cg((E^=c)+g|0,7)^o,s=cg(o+E|0,9)^a,D=cg(o+s|0,13)^g,E=cg(s+D|0,18)^E,g=cg((Q^=F)+B|0,7)^u,r=cg(g+Q|0,9)^r,c=cg(g+r|0,13)^B,Q=cg(r+c|0,18)^Q,t=cg((C^=l)+I|0,7)^t,B=cg(t+C|0,9)^y,I=cg(B+t|0,13)^I,C=cg(I+B|0,18)^C,a=cg((i^=h)+f|0,7)^p,e=cg(a+i|0,9)^e,f=cg(a+e|0,13)^f,i=cg(e+f|0,18)^i,y=w>>>0>2,w=w-2|0,y;);return bI(A,E),bI(A+4|0,Q),bI(A+8|0,C),bI(A+12|0,i),bI(A+16|0,g),bI(A+20|0,r),bI(A+24|0,B),bI(A+28|0,I),0}function X(A){var I,g=0,B=0;s=I=s-48|0,g=n[28+(A|=0)|0]|n[A+29|0]<<8|n[A+30|0]<<16|n[A+31|0]<<24,i[I+24>>2]=n[A+24|0]|n[A+25|0]<<8|n[A+26|0]<<16|n[A+27|0]<<24,i[I+28>>2]=g,g=n[A+20|0]|n[A+21|0]<<8|n[A+22|0]<<16|n[A+23|0]<<24,i[I+16>>2]=n[A+16|0]|n[A+17|0]<<8|n[A+18|0]<<16|n[A+19|0]<<24,i[I+20>>2]=g,g=n[A+4|0]|n[A+5|0]<<8|n[A+6|0]<<16|n[A+7|0]<<24,i[I>>2]=n[0|A]|n[A+1|0]<<8|n[A+2|0]<<16|n[A+3|0]<<24,i[I+4>>2]=g,g=n[A+12|0]|n[A+13|0]<<8|n[A+14|0]<<16|n[A+15|0]<<24,i[I+8>>2]=n[A+8|0]|n[A+9|0]<<8|n[A+10|0]<<16|n[A+11|0]<<24,i[I+12>>2]=g,g=n[A+40|0]|n[A+41|0]<<8|n[A+42|0]<<16|n[A+43|0]<<24,i[I+32>>2]=n[A+36|0]|n[A+37|0]<<8|n[A+38|0]<<16|n[A+39|0]<<24,i[I+36>>2]=g,vg[i[8752]](I,I,40,0,A+32|0,0,A),g=i[I+28>>2],B=i[I+24>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,g=i[I+36>>2],B=i[I+32>>2],Q[A+36|0]=B,Q[A+37|0]=B>>>8,Q[A+38|0]=B>>>16,Q[A+39|0]=B>>>24,Q[A+40|0]=g,Q[A+41|0]=g>>>8,Q[A+42|0]=g>>>16,Q[A+43|0]=g>>>24,YI(A),s=I+48|0}function T(A,I){var g,B,C,E,n,a,o,t,e=0,f=0;s=g=s-48|0,B=i[I+28>>2],C=i[I+24>>2],E=i[I+20>>2],n=i[I+16>>2],a=i[I+12>>2],o=i[I+8>>2],t=i[I+4>>2],e=i[I>>2],f=i[I+36>>2],I=i[I+32>>2],e=r(((B+(C+(E+(n+(a+(o+(t+(e+(r(f,19)+16777216>>>25|0)>>26)>>25)>>26)>>25)>>26)>>25)>>26)>>25)+I>>26)+f>>25,19)+e|0,i[g>>2]=67108863&e,e=t+(e>>26)|0,i[g+4>>2]=33554431&e,e=o+(e>>25)|0,i[g+8>>2]=67108863&e,e=a+(e>>26)|0,i[g+12>>2]=33554431&e,e=n+(e>>25)|0,i[g+16>>2]=67108863&e,e=E+(e>>26)|0,i[g+20>>2]=33554431&e,e=C+(e>>25)|0,i[g+24>>2]=67108863&e,e=B+(e>>26)|0,i[g+28>>2]=33554431&e,I=I+(e>>25)|0,i[g+32>>2]=67108863&I,i[g+36>>2]=f+(I>>26)&33554431,I=i[g>>2],Q[0|A]=I,Q[A+2|0]=I>>>16,Q[A+1|0]=I>>>8,f=i[g+4>>2],Q[A+5|0]=f>>>14,Q[A+4|0]=f>>>6,Q[A+3|0]=f<<2|I>>>24,I=i[g+8>>2],Q[A+8|0]=I>>>13,Q[A+7|0]=I>>>5,Q[A+6|0]=I<<3|f>>>22,f=i[g+12>>2],Q[A+11|0]=f>>>11,Q[A+10|0]=f>>>3,Q[A+9|0]=f<<5|I>>>21,I=i[g+16>>2],Q[A+15|0]=I>>>18,Q[A+14|0]=I>>>10,Q[A+13|0]=I>>>2,Q[A+12|0]=I<<6|f>>>19,I=i[g+20>>2],Q[A+16|0]=I,Q[A+18|0]=I>>>16,Q[A+17|0]=I>>>8,f=i[g+24>>2],Q[A+21|0]=f>>>15,Q[A+20|0]=f>>>7,Q[A+19|0]=f<<1|I>>>24,I=i[g+28>>2],Q[A+24|0]=I>>>13,Q[A+23|0]=I>>>5,Q[A+22|0]=I<<3|f>>>23,f=i[g+32>>2],Q[A+27|0]=f>>>12,Q[A+26|0]=f>>>4,Q[A+25|0]=f<<4|I>>>21,I=i[g+36>>2],Q[A+31|0]=I>>>18,Q[A+30|0]=I>>>10,Q[A+29|0]=I>>>2,Q[A+28|0]=I<<6|f>>>20,s=g+48|0}function V(A,I){var g,B,C,Q,E,i=0,a=0,r=0;for(s=g=s-288|0,N(E=A+40|0,I),ng(a=A+80|0),U(B=g+240|0,E),H(C=g+192|0,B,1424),cA(B,B,a),yA(C,C,a),U(Q=g+144|0,C),H(Q,Q,C),U(A,Q),H(A,A,C),H(A,A,B),s=a=s-144|0,U(i=a+96|0,A),U(r=a+48|0,i),U(r,r),H(r,A,r),H(i,i,r),U(i,i),H(i,r,i),U(r,i),i=1;U(r=a+48|0,r),5!=(0|(i=i+1|0)););for(H(i=a+96|0,r=a+48|0,i),U(r,i),i=1;U(r=a+48|0,r),10!=(0|(i=i+1|0)););for(H(i=a+48|0,i,a+96|0),U(a,i),i=1;U(a,a),20!=(0|(i=i+1|0)););for(H(i=a+48|0,a,i),i=1;U(r=a+48|0,r),11!=(0|(i=i+1|0)););for(H(i=a+96|0,r=a+48|0,i),U(r,i),i=1;U(r=a+48|0,r),50!=(0|(i=i+1|0)););for(H(i=a+48|0,i,a+96|0),U(a,i),i=1;U(a,a),100!=(0|(i=i+1|0)););for(H(i=a+48|0,a,i),i=1;U(r=a+48|0,r),51!=(0|(i=i+1|0)););H(i=a+96|0,a+48|0,i),U(i,i),U(i,i),H(A,i,A),s=a+144|0,H(A,A,Q),H(A,A,B),U(a=g+96|0,A),H(a,a,C),cA(i=g+48|0,a,B);A:{if(!mI(i)){if(yA(g,g+96|0,g+240|0),a=-1,!mI(g))break A;H(A,A,1472)}(0|vI(A))==(n[I+31|0]>>>7|0)&&kA(A,A),H(A+120|0,A,E),a=0}return s=g+288|0,a}function q(A,I,g,B,C){var E,a,r=0,o=0,t=0;for(s=E=(s=a=s-416|0)-192|0,GI(a),wI(E- -64|0,54,128),Q[E+64|0]=54^n[0|C],r=1;Q[0|(o=(E- -64|0)+r|0)]=n[0|o]^n[C+r|0],32!=(0|(r=r+1|0)););for(z(a,r=E- -64|0,128,0),GI(o=a+208|0),wI(r,92,128),Q[E+64|0]=92^n[0|C],r=1;Q[0|(t=(E- -64|0)+r|0)]=n[0|t]^n[C+r|0],32!=(0|(r=r+1|0)););return z(o,C=E- -64|0,128,0),Dg(C,128),Dg(E,64),s=E+192|0,z(a,I,g,B),s=g=(s=I=s+-64|0)-64|0,MA(a,g),z(B=a+208|0,g,64,0),MA(B,I),Dg(g,64),s=g- -64|0,g=i[I+28>>2],B=i[I+24>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=g,Q[A+29|0]=g>>>8,Q[A+30|0]=g>>>16,Q[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=g,Q[A+21|0]=g>>>8,Q[A+22|0]=g>>>16,Q[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=g,Q[A+13|0]=g>>>8,Q[A+14|0]=g>>>16,Q[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24,s=I- -64|0,s=a+416|0,0}function z(A,I,g,B){var C,E=0,a=0,r=0,o=0,t=0,e=0;s=C=s-704|0;A:if(g|B){if(r=B<<3|(E=g)>>>29,a=(t=i[A+72>>2])+(e=E<<3)|0,E=r+(o=i[A+76>>2])|0,i[A+72>>2]=a,E=a>>>0>>0?E+1|0:E,i[A+76>>2]=E,r=(e=(0|E)==(0|o)&a>>>0>>0|E>>>0>>0)+i[(a=A- -64|0)>>2]|0,E=i[a+4>>2],E=r>>>0>>0?E+1|0:E,r=(e=B>>>29|0)+r|0,i[a>>2]=r,i[a+4>>2]=r>>>0>>0?E+1|0:E,a=0,E=0,(0|(r=0-((o=127&((7&o)<<29|t>>>3))>>>0>128)|0))==(0|B)&g>>>0<(t=128-o|0)>>>0|B>>>0>>0)for(;;)if(Q[80+(A+(t=a+o|0)|0)|0]=n[I+a|0],!((0|g)!=(0|(a=a+1|0))|(0|B)!=(0|(E=a?E:E+1|0))))break A;for(;Q[80+(A+(e=a+o|0)|0)|0]=n[I+a|0],(0|t)!=(0|(a=a+1|0))|(0|(E=a?E:E+1|0))!=(0|r););if(F(A,A+80|0,C,E=C+640|0),I=I+t|0,!(B=B-((g>>>0>>0)+r|0)|0)&(g=g-t|0)>>>0>127|B)for(;F(A,I,C,E),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B)for(a=0,E=0;Q[80+(A+a|0)|0]=n[I+a|0],(0|g)!=(0|(a=o=a+1|0))|(0|B)!=(0|(E=o?E:E+1|0)););Dg(C,704)}return s=C+704|0,0}function j(A,I,g){var B,C,Q,E=0;s=B=s-16|0,C=i[A+20>>2],i[A+20>>2]=0,Q=i[A+4>>2],i[A+4>>2]=0,E=-26;A:{I:{g:switch(g-1|0){case 1:if(E=-32,LA(I,1109,9))break A;I=I+9|0;break I;case 0:break g;default:break A}if(E=-32,LA(I,1100,8))break A;I=I+8|0}if(!LA(I,1352,3)&&(I=_A(I+3|0,B+12|0))){if(E=-26,19!=i[B+12>>2])break A;if(!LA(I,1364,3)&&(I=_A(I+3|0,B+12|0))&&(i[A+44>>2]=i[B+12>>2],!LA(I,1356,3)&&(I=_A(I+3|0,B+12|0))&&(i[A+40>>2]=i[B+12>>2],!LA(I,1360,3)&&(I=_A(I+3|0,B+12|0))&&(g=i[B+12>>2],i[A+48>>2]=g,i[A+52>>2]=g,36==(0|(g=n[0|I]))&&(i[B+12>>2]=C,I=I+(36==(0|g))|0,!L(i[A+16>>2],C,I,mA(I),0,B+12|0,B+8|0,3)&&(i[A+20>>2]=i[B+12>>2],I=i[B+8>>2],36==(0|(g=n[0|I]))&&(i[B+12>>2]=Q,I=I+(36==(0|g))|0,!L(i[A>>2],Q,I,mA(I),0,B+12|0,B+8|0,3)))))))){if(i[A+4>>2]=i[B+12>>2],I=i[B+8>>2],E=nA(A))break A;E=n[0|I]?-32:0;break A}}E=-32}return s=B+16|0,E}function W(A,I){var g,B,C,E,n,a,o,t,e,f,c,y=0,s=0,w=0,D=0,h=0,p=0;(s=i[A+56>>2])|(y=i[A+60>>2])&&(Q[(D=A+s|0)- -64|0]=1,!(y=(w=s+1|0)?y:y+1|0)&w>>>0<=15&&wI(D+65|0,0,15-s|0),Q[A+80|0]=1,M(A,A- -64|0,16,0)),e=i[A+52>>2],f=i[A+48>>2],c=i[A+44>>2],h=i[A+24>>2],w=i[A+28>>2]+(h>>>26|0)|0,s=i[A+32>>2]+(w>>>26|0)|0,C=i[A+36>>2]+(s>>>26|0)|0,a=67108863&s,w=(s=(67108863&h)+((y=i[A+20>>2]+r(C>>>26|0,5)|0)>>>26|0)|0)&(g=(E=(-67108864|C)+((o=a+((h=(p=67108863&w)+((y=s+((n=5+(D=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>31)|(B=67108863&(t=(E>>>31|0)-1|0))&y,y=0,y=(s=w<<26|B&n|D&g)>>>0>(D=s+i[A+40>>2]|0)>>>0?1:y,bI(I,D),s=0,s=(w=(p=p&g|h&B)<<20|w>>>6)>>>0>(h=w+c|0)>>>0?1:s,w=y,h=y+h|0,y=s,y=w>>>0>h>>>0?y+1|0:y,bI(I+4|0,h),s=0,s=(w=(D=g&a|B&o)<<14|p>>>12)>>>0>(p=w+f|0)>>>0?1:s,w=y,p=y+p|0,y=s,y=w>>>0>p>>>0?y+1|0:y,bI(I+8|0,p),bI(s=I+12|0,y=y+(D=(I=(E&t|g&C)<<8|D>>>18)+e|0)|0),Dg(A,88)}function O(A,I){var g,B,C=0;for(s=g=s-192|0,U(B=g+144|0,I),U(C=g+96|0,B),U(C,C),H(C,I,C),H(B,B,C),U(I=g+48|0,B),H(C,C,I),U(I,C),I=1;U(C=g+48|0,C),5!=(0|(I=I+1|0)););for(H(I=g+96|0,C=g+48|0,I),U(C,I),I=1;U(C=g+48|0,C),10!=(0|(I=I+1|0)););for(H(I=g+48|0,I,g+96|0),U(g,I),I=1;U(g,g),20!=(0|(I=I+1|0)););for(H(I=g+48|0,g,I),I=1;U(C=g+48|0,C),11!=(0|(I=I+1|0)););for(H(I=g+96|0,C=g+48|0,I),U(C,I),I=1;U(C=g+48|0,C),50!=(0|(I=I+1|0)););for(H(I=g+48|0,I,g+96|0),U(g,I),I=1;U(g,g),100!=(0|(I=I+1|0)););for(H(I=g+48|0,g,I),I=1;U(C=g+48|0,C),51!=(0|(I=I+1|0)););for(H(I=g+96|0,g+48|0,I),I=1;U(C=g+96|0,C),6!=(0|(I=I+1|0)););H(A,g+96|0,g+144|0),s=g+192|0}function Z(A,I,g,B,C){A|=0,I|=0,g|=0,B|=0;var E=0,i=0,a=0,o=0,f=0,c=0,y=0,s=0;ag(C|=0),i=(E=(B>>>0)/3|0)<<2,(E=r(E,-3)+B|0)&&(i=2&C?(2|i)+(E>>>1|0)|0:i+4|0);A:{I:{g:{if(I>>>0>i>>>0){if(!(4&C)){if(C=0,!B)break A;E=0;break g}if(C=0,!B)break A;for(E=0;;){for(f=(o=n[g+a|0])|f<<8,E=E+8|0;c=E,y=A+C|0,s=Qg(f>>>(E=E-6|0)&63),Q[0|y]=s,C=C+1|0,E>>>0>5;);if((0|(a=a+1|0))==(0|B))break}if(!E)break A;g=Qg(o<<12-c&63);break I}xI(),t()}for(;;){for(f=(o=n[g+a|0])|f<<8,E=E+8|0;c=E,y=A+C|0,s=Eg(f>>>(E=E-6|0)&63),Q[0|y]=s,C=C+1|0,E>>>0>5;);if((0|(a=a+1|0))==(0|B))break}if(!E)break A;g=Eg(o<<12-c&63)}Q[A+C|0]=g,C=C+1|0}A:{I:{if(C>>>0<=i>>>0){if(C>>>0>>0)break I;i=C;break A}e(1048,1145,230,1375),t()}wI(A+C|0,61,i-C|0)}return wI(A+i|0,0,(I>>>0>(g=i+1|0)>>>0?I:g)-i|0),0|A}function $(A,I,g,B){var C=0,E=0,a=0,r=0,o=0,t=0;A:{if((r=i[A+56>>2])|(o=i[A+60>>2])){if(t=C=(a=(0|(C=0-((r>>>0>16)+o|0)|0))==(0|B)&g>>>0>(E=16-r|0)>>>0|B>>>0>C>>>0)?C:B,C|(E=a?E:g))for(a=0,C=0;Q[(A+(o=a+r|0)|0)- -64|0]=n[I+a|0],r=i[A+56>>2],o=i[A+60>>2],(0|E)!=(0|(a=a+1|0))|(0|(C=a?C:C+1|0))!=(0|t););if(C=o+t|0,C=(r=E+r|0)>>>0>>0?C+1|0:C,i[A+56>>2]=r,i[A+60>>2]=C,!C&r>>>0<16)break A;M(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(C=g)-E|0,B=B-((C>>>0>>0)+t|0)|0,I=I+E|0}if(!B&g>>>0>=16|B&&(M(A,I,C=-16&g,B),g&=15,B=0,I=I+C|0),g|B){for(a=0,C=0;E=a+i[A+56>>2]|0,Q[(A+E|0)- -64|0]=n[I+a|0],a=E=a+1|0,(0|g)!=(0|E)|(0|B)!=(0|(C=E?C:C+1|0)););I=B+i[A+60>>2]|0,I=(C=g+i[A+56>>2]|0)>>>0>>0?I+1|0:I,i[A+56>>2]=C,i[A+60>>2]=I}}}function AA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y=0,s=0,w=0,D=0,h=0,p=0,u=0,F=0,l=0;B=i[I+4>>2],C=i[A+4>>2],Q=i[I+8>>2],s=i[A+8>>2],E=i[I+12>>2],w=i[A+12>>2],n=i[I+16>>2],D=i[A+16>>2],a=i[I+20>>2],h=i[A+20>>2],r=i[I+24>>2],p=i[A+24>>2],o=i[I+28>>2],u=i[A+28>>2],t=i[I+32>>2],F=i[A+32>>2],e=i[I+36>>2],l=i[A+36>>2],c=(g=0-g|0)&((f=i[I>>2])^(y=i[A>>2])),i[A>>2]=c^y,y=l,l=g&(l^e),i[A+36>>2]=y^l,y=F,F=g&(F^t),i[A+32>>2]=y^F,y=u,u=g&(u^o),i[A+28>>2]=y^u,y=p,p=g&(p^r),i[A+24>>2]=y^p,y=h,h=g&(h^a),i[A+20>>2]=y^h,y=D,D=g&(D^n),i[A+16>>2]=y^D,y=w,w=g&(w^E),i[A+12>>2]=y^w,y=s,s=g&(s^Q),i[A+8>>2]=y^s,y=A,A=g&(B^C),i[y+4>>2]=A^C,i[I+36>>2]=l^e,i[I+32>>2]=F^t,i[I+28>>2]=u^o,i[I+24>>2]=p^r,i[I+20>>2]=h^a,i[I+16>>2]=D^n,i[I+12>>2]=w^E,i[I+8>>2]=s^Q,i[I+4>>2]=A^B,i[I>>2]=f^c}function IA(A,I){var g;i[A>>2]=67108863&(n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24),i[A+4>>2]=(n[I+3|0]|n[I+4|0]<<8|n[I+5|0]<<16|n[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(n[I+6|0]|n[I+7|0]<<8|n[I+8|0]<<16|n[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(n[I+9|0]|n[I+10|0]<<8|n[I+11|0]<<16|n[I+12|0]<<24)>>>6&66076671,g=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+44>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+48>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,I=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24,Q[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I}function gA(A,I,g,B){var C=0,E=0,i=0,a=0,r=0,o=0;if(g|B){if(!B&(E=256-(C=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0)>>>0>>0|B)for(o=A+224|0,a=A+96|0;eI(96+(A+C|0)|0,I,E),i=(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)+E|0,Q[A+352|0]=i,Q[A+353|0]=i>>>8,Q[A+354|0]=i>>>16,Q[A+355|0]=i>>>24,CA(A,128),p(A,a),eI(a,o,128),C=(r=n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)-128|0,Q[A+352|0]=C,Q[A+353|0]=C>>>8,Q[A+354|0]=C>>>16,Q[A+355|0]=C>>>24,I=I+E|0,i=g,g=g-E|0,!(B=B-(E>>>0>i>>>0)|0)&(E=384-r|0)>>>0>>0|B;);eI(96+(A+C|0)|0,I,g),I=g+(n[A+352|0]|n[A+353|0]<<8|n[A+354|0]<<16|n[A+355|0]<<24)|0,Q[A+352|0]=I,Q[A+353|0]=I>>>8,Q[A+354|0]=I>>>16,Q[A+355|0]=I>>>24}return 0}function BA(A,I){var g,B=0,C=0,E=0,i=0;for(s=g=s-464|0;C=(g+400|0)+(B<<1)|0,i=n[I+B|0],Q[C+1|0]=i>>>4,Q[0|C]=15&i,32!=(0|(B=B+1|0)););for(B=0;I=((C=(I=B)+n[0|(B=(g+400|0)+E|0)]|0)<<24)- -134217728|0,Q[0|B]=C-(I>>24&240),B=I>>28,63!=(0|(E=E+1|0)););for(Q[g+463|0]=n[g+463|0]+B,LI(A),B=1;FA(g,B>>>1|0,Q[(g+400|0)+B|0]),TA(I=g+240|0,A,g),tI(A,I),I=B>>>0<62,B=B+2|0,I;);for(fI(I=g+240|0,A),hI(B=g+120|0,I),G(I,B),hI(B,I),G(I,B),hI(B,I),G(I,B),tI(A,I),B=0;FA(g,B>>>1|0,Q[(g+400|0)+B|0]),TA(I=g+240|0,A,g),tI(A,I),I=B>>>0<62,B=B+2|0,I;);s=g+464|0}function CA(A,I){var g,B,C,E=0,i=0;C=1+(i=g=n[4+(E=A- -64|0)|0]|n[E+5|0]<<8|n[E+6|0]<<16|n[E+7|0]<<24)|0,i=(I=I+(i=B=n[0|E]|n[E+1|0]<<8|n[E+2|0]<<16|n[E+3|0]<<24)|0)>>>0>>0?C:g,Q[0|E]=I,Q[E+1|0]=I>>>8,Q[E+2|0]=I>>>16,Q[E+3|0]=I>>>24,Q[E+4|0]=i,Q[E+5|0]=i>>>8,Q[E+6|0]=i>>>16,Q[E+7|0]=i>>>24,I=(E=(0|i)==(0|g)&I>>>0>>0|i>>>0>>0)+(n[A+72|0]|n[A+73|0]<<8|n[A+74|0]<<16|n[A+75|0]<<24)|0,i=n[A+76|0]|n[A+77|0]<<8|n[A+78|0]<<16|n[A+79|0]<<24,E=I>>>0>>0?i+1|0:i,Q[A+72|0]=I,Q[A+73|0]=I>>>8,Q[A+74|0]=I>>>16,Q[A+75|0]=I>>>24,Q[A+76|0]=E,Q[A+77|0]=E>>>8,Q[A+78|0]=E>>>16,Q[A+79|0]=E>>>24}function QA(A,I){i[A>>2]=1634760805,i[A+4>>2]=857760878,i[A+8>>2]=2036477234,i[A+12>>2]=1797285236,i[A+16>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+20>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+24>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24,i[A+28>>2]=n[I+12|0]|n[I+13|0]<<8|n[I+14|0]<<16|n[I+15|0]<<24,i[A+32>>2]=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,i[A+36>>2]=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,i[A+40>>2]=n[I+24|0]|n[I+25|0]<<8|n[I+26|0]<<16|n[I+27|0]<<24,i[A+44>>2]=n[I+28|0]|n[I+29|0]<<8|n[I+30|0]<<16|n[I+31|0]<<24}function EA(A,I,g,B,C,Q,E){var n,a,r,o,t,e=0;return s=n=s-352|0,K(n,Q,E),!((!C&B>>>0>A-g>>>0|0!=(0|C))&A>>>0>g>>>0)&(!C&B>>>0<=g-A>>>0|A>>>0>=g>>>0)||(g=gI(A,g,B)),i[n+56>>2]=0,i[n+60>>2]=0,i[n+48>>2]=0,i[n+52>>2]=0,i[n+40>>2]=0,i[n+44>>2]=0,i[n+32>>2]=0,i[n+36>>2]=0,(r=!((E=(e=!C&B>>>0<32)?B:32)|(e=e?C:0)))||eI(n- -64|0,g,E),o=Q+16|0,XI(a=n+32|0,a,t=E+32|0,Q=t>>>0<32?e+1|0:e,o,n),og(n+96|0,a),r||eI(A,n- -64|0,E),Dg(n+32|0,64),!C&B>>>0>=33|C&&KI(A+E|0,g+E|0,B-E|0,C-(e+(B>>>0>>0)|0)|0,o,n),Dg(n,32),gg(g=n+96|0,A,B,C),tg(g,I),Dg(g,256),s=n+352|0,0}function iA(A,I,g,B,C,Q,E){var n,a,r=0,o=0,t=0;s=n=s-96|0,K(n,Q,E),E=n+32|0,a=Q+16|0,vg[i[8760]](E,32,0,a,n),Q=-1;A:{if(!(0|vg[i[8754]](g,I,B,C,E))){if(Q=0,!A)break A;!((!C&B>>>0>I-A>>>0|0!=(0|C))&A>>>0>>0)&(!C&B>>>0<=A-I>>>0|A>>>0<=I>>>0)||(I=gI(A,I,B)),g=(Q=!C&B>>>0<32)?B:32,E=Q=Q?C:0,g|Q?(o=eI(n- -64|0,I,g),r=Q=n+32|0,Q=E,XI(r,r,t=g+32|0,Q=t>>>0<32?Q+1|0:Q,a,n),eI(A,o,g)):(r=Q=n+32|0,Q=E,XI(r,r,o=g+32|0,Q=o>>>0<32?Q+1|0:Q,a,n)),Q=0,!C&B>>>0<33||KI(A+g|0,I+g|0,B-g|0,C-(E+(g>>>0>B>>>0)|0)|0,a,n)}Dg(n,32)}return s=n+96|0,Q}function nA(A){var I=0,g=0,B=0;if(!A)return-25;if(!i[A>>2])return-1;if(I=-2,!(a[A+4>>2]<16)&&(i[A+8>>2]||(I=-18,!i[A+12>>2]))){if(g=i[A+20>>2],!i[A+16>>2])return g?-19:-6;if(I=-6,!(g>>>0<8)&&(i[A+24>>2]||(I=-20,!i[A+28>>2]))&&(i[A+32>>2]||(I=-21,!i[A+36>>2]))){if(!(g=i[A+48>>2]))return-16;if(I=-17,!(g>>>0>16777215||(I=-14,(B=i[A+44>>2])>>>0<8||(I=-15,B>>>0>2097152||(I=-14,g<<3>>>0>B>>>0))))){if(!i[A+40>>2])return-12;if(!(A=i[A+52>>2]))return-28;I=A>>>0>16777215?-29:0}}}return I}function aA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y,s,w,D,h,p,u,F;f=i[I+4>>2],B=i[A+4>>2],c=i[I+8>>2],C=i[A+8>>2],y=i[I+12>>2],Q=i[A+12>>2],s=i[I+16>>2],E=i[A+16>>2],w=i[I+20>>2],n=i[A+20>>2],D=i[I+24>>2],a=i[A+24>>2],h=i[I+28>>2],r=i[A+28>>2],p=i[I+32>>2],o=i[A+32>>2],u=i[I+36>>2],t=i[A+36>>2],e=i[A>>2],F=i[I>>2]^e,I=0-g|0,i[A>>2]=e^F&I,i[A+36>>2]=I&(t^u)^t,i[A+32>>2]=I&(o^p)^o,i[A+28>>2]=I&(r^h)^r,i[A+24>>2]=I&(a^D)^a,i[A+20>>2]=I&(n^w)^n,i[A+16>>2]=I&(E^s)^E,i[A+12>>2]=I&(Q^y)^Q,i[A+8>>2]=I&(C^c)^C,i[A+4>>2]=I&(B^f)^B}function rA(A,I,g,B,C,Q,E,a,r,o){var t,e,f,c;return s=t=s-48|0,i[t+4>>2]=0,x(e=t+16|0,r,o),o=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[t+8>>2]=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,i[t+12>>2]=o,s=o=s-352|0,$I(f=o+32|0,64,c=t+4|0,e),og(r=o+96|0,f),Dg(f,64),gg(r,Q,E,a),gg(r,34960,0-E&15,0),gg(r,I,g,B),gg(r,34960,0-g&15,0),QI(Q=o+24|0,E,a),gg(r,Q,8,0),QI(Q,g,B),gg(r,Q,8,0),tg(r,o),Dg(r,256),C=rg(o,C),Dg(o,16),A&&(C?(wI(A,0,g),C=-1):(kI(A,I,g,B,c,1,e),C=0)),s=o+352|0,Dg(e,32),s=t+48|0,C}function oA(A,I){for(var g=0,B=0,C=0,E=0,i=0,a=0,r=0,o=0;Q[A+g|0]=n[(g>>>3|0)+I|0]>>>(7&g)&1,256!=(0|(g=g+1|0)););for(;;){a=(I=a)+1|0;A:if(n[0|(i=A+I|0)]&&(g=a,C=1,!(I>>>0>254)))for(;;){I:if(E=Q[0|(B=A+g|0)])if((0|(o=(r=Q[0|i])+(E<<=C)|0))<=15)Q[0|i]=o,Q[0|B]=0;else{if((0|(B=r-E|0))<-15)break A;for(Q[0|i]=B;;){if(!n[0|(B=A+g|0)]){Q[0|B]=1;break I}if(Q[0|B]=0,B=g>>>0<255,g=g+1|0,!B)break}}if(C>>>0>5)break A;if(!((g=I+(C=C+1|0)|0)>>>0<256))break}if(256==(0|a))break}}function tA(A,I,g,B){var C,Q,E,n,a=0;s=C=s+-64|0,wI(C+8|0,0,52),a=mA(A),i[C+20>>2]=a,i[C+36>>2]=a,i[C+4>>2]=a,Q=k(a),i[C+32>>2]=Q,E=k(a),i[C+16>>2]=E,n=k(a),i[C>>2]=n;A:if(!n|!Q|!E||!(a=k(a)))b(Q),b(E),b(n),A=-22;else{if(A=j(C,A,B)){b(i[C+32>>2]),b(i[C+16>>2]),b(i[C>>2]),b(a);break A}A=0,I=_(i[C+40>>2],i[C+44>>2],i[C+52>>2],I,g,i[C+16>>2],i[C+20>>2],a,i[C+4>>2],0,0,B),b(i[C+32>>2]),b(i[C+16>>2]),(I||zA(a,i[C>>2],i[C+4>>2]))&&(A=-35),b(a),b(i[C>>2])}return s=C- -64|0,A}function eA(A,I,g,B,C){var Q,E=0,a=0;s=Q=s+-64|0;A:{I:{if(!g&(a=mA(A))>>>0<128){if(i[Q+56>>2]=0,i[Q+48>>2]=0,i[Q+52>>2]=0,i[Q+40>>2]=0,i[Q+44>>2]=0,g=0,a&&(g=a),!(E=k(g))|!(3&n[E-4|0])||wI(E,0,g),E)break I}else i[8952]=28;A=-1;break A}i[Q+32>>2]=0,i[Q+36>>2]=0,i[Q+8>>2]=E,i[Q+16>>2]=E,i[Q+20>>2]=a,i[Q>>2]=E,i[Q+12>>2]=a,i[Q+24>>2]=0,i[Q+28>>2]=0,i[Q+4>>2]=a,j(Q,A,C)?(i[8952]=28,A=-1):A=(0|I)!=i[Q+40>>2]|i[Q+44>>2]!=(B>>>10|0),b(E)}return s=Q- -64|0,A}function fA(A,I,g,B,C,Q,E,a,r,o,t){var e,f,c,y;return s=e=s-48|0,i[e+4>>2]=0,x(f=e+16|0,o,t),t=n[o+20|0]|n[o+21|0]<<8|n[o+22|0]<<16|n[o+23|0]<<24,i[e+8>>2]=n[o+16|0]|n[o+17|0]<<8|n[o+18|0]<<16|n[o+19|0]<<24,i[e+12>>2]=t,s=t=s-336|0,$I(c=t+16|0,64,y=e+4|0,f),og(o=t+80|0,c),Dg(c,64),gg(o,E,a,r),gg(o,34960,0-a&15,0),kI(A,B,C,Q,y,1,f),gg(o,A,C,Q),gg(o,34960,0-C&15,0),QI(A=t+8|0,a,r),gg(o,A,8,0),QI(A,C,Q),gg(o,A,8,0),tg(o,I),Dg(o,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,Dg(f,32),s=e+48|0,0}function cA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y,s,w,D,h,p;B=i[g+4>>2],C=i[I+4>>2],Q=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],t=i[g+20>>2],e=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],D=i[I+32>>2],h=i[g+36>>2],p=i[I+36>>2],i[A>>2]=i[I>>2]-i[g>>2],i[A+36>>2]=p-h,i[A+32>>2]=D-w,i[A+28>>2]=s-y,i[A+24>>2]=c-f,i[A+20>>2]=e-t,i[A+16>>2]=o-r,i[A+12>>2]=a-n,i[A+8>>2]=E-Q,i[A+4>>2]=C-B}function yA(A,I,g){var B,C,Q,E,n,a,r,o,t,e,f,c,y,s,w,D,h,p;B=i[g+4>>2],C=i[I+4>>2],Q=i[g+8>>2],E=i[I+8>>2],n=i[g+12>>2],a=i[I+12>>2],r=i[g+16>>2],o=i[I+16>>2],t=i[g+20>>2],e=i[I+20>>2],f=i[g+24>>2],c=i[I+24>>2],y=i[g+28>>2],s=i[I+28>>2],w=i[g+32>>2],D=i[I+32>>2],h=i[g+36>>2],p=i[I+36>>2],i[A>>2]=i[g>>2]+i[I>>2],i[A+36>>2]=h+p,i[A+32>>2]=w+D,i[A+28>>2]=y+s,i[A+24>>2]=f+c,i[A+20>>2]=t+e,i[A+16>>2]=r+o,i[A+12>>2]=n+a,i[A+8>>2]=Q+E,i[A+4>>2]=B+C}function sA(A){var I,g=0,B=0,C=0,E=0;for(Q[11+(I=s-16|0)|0]=0,Q[I+12|0]=0,Q[I+13|0]=0,Q[I+14|0]=0,i[I+8>>2]=0;;){for(C=n[A+B|0],g=0;Q[0|(E=(I+8|0)+g|0)]=n[0|E]|C^n[(2528+(g<<5)|0)+B|0],7!=(0|(g=g+1|0)););if(31==(0|(B=B+1|0)))break}for(B=127&n[A+31|0],A=0,g=0;Q[0|(C=(I+8|0)+g|0)]=n[0|C]|B^n[2559+(g<<5)|0],7!=(0|(g=g+1|0)););for(g=0;g=n[(I+8|0)+A|0]-1|g,7!=(0|(A=A+1|0)););return g>>>8&1}function wA(A,I){var g=0,B=0,C=0,E=0;for(wI(eI(A,33984,64)- -64|0,0,293);B=(g=E<<3)+A|0,C=n[0|(g=I+g|0)]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=(n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24)^(n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24),C^=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,Q[0|B]=C,Q[B+1|0]=C>>>8,Q[B+2|0]=C>>>16,Q[B+3|0]=C>>>24,Q[B+4|0]=g,Q[B+5|0]=g>>>8,Q[B+6|0]=g>>>16,Q[B+7|0]=g>>>24,8!=(0|(E=E+1|0)););}function DA(A,I){var g=0,B=0;A:if(B=255&I){if(3&A)for(;;){if(!(g=n[0|A])|(0|g)==(255&I))break A;if(!(3&(A=A+1|0)))break}I:if(!((-1^(g=i[A>>2]))&g-16843009&-2139062144))for(B=r(B,16843009);;){if((-1^(g^=B))&g-16843009&-2139062144)break I;if(g=i[A+4>>2],A=A+4|0,g-16843009&(-1^g)&-2139062144)break}for(;g=A,(B=n[0|A])&&(A=g+1|0,(0|B)!=(255&I)););A=g}else A=mA(A)+A|0;return n[0|A]==(255&I)?A:0}function hA(A,I,g){var B=0,C=0,E=0,n=0,a=0,r=0;if(g>>>0>=8)for(n=g>>>3|0,g=0;E=(B=g<<3)+A|0,a=(B=i[4+(C=I+B|0)>>2])<<24|(C=i[C>>2])>>>8,r=B<<8|C>>>24,B=-16777216&((255&B)<<24|C>>>8)|16711680&((16777215&B)<<8|C>>>24)|B>>>8&65280|B>>>24,Q[0|E]=B,Q[E+1|0]=B>>>8,Q[E+2|0]=B>>>16,Q[E+3|0]=B>>>24,B=C<<8&16711680|C<<24|65280&a|255&r,Q[E+4|0]=B,Q[E+5|0]=B>>>8,Q[E+6|0]=B>>>16,Q[E+7|0]=B>>>24,(0|n)!=(0|(g=g+1|0)););}function pA(A,I,g){var B,C,Q=0,E=0,i=0;return B=A,A=31&(Q=i=63&g),Q>>>0>=32?(A=-1<>>32-A,C=Q&B,E=A&I,Q=31&i,i>>>0>=32?(A=0,i=E>>>Q|0):(A=E>>>Q|0,i=((1<>>Q),Q=A,g=31&(E=0-g&63),E>>>0>=32?(A=0,g=-1>>>g|0):g=(A=-1>>>g|0)|(1<>>0>=32?(I=g<>>32-A|I<>>0>=32?-1>>>C|0:(A=-1>>>C|0)|(1<>>0>=32?(A=B<>>32-C|A<>>0>=32?(A=-1<>>32-A,E&=Q,I&=A,A=31&g,g>>>0>=32?(g=0,A=I>>>A|0):(g=I>>>A|0,A=((1<>>A),h=g|C,A|B}function FA(A,I,g){var B,C,Q,E;s=B=s-128|0,ng(A),ng(C=A+40|0),hg(Q=A+80|0),MI(A,I=r(I,960)+2784|0,Ag(g=g-((0-(E=(128&g)>>>7|0)&g)<<1)<<24>>24,1)),MI(A,I+120|0,Ag(g,2)),MI(A,I+240|0,Ag(g,3)),MI(A,I+360|0,Ag(g,4)),MI(A,I+480|0,Ag(g,5)),MI(A,I+600|0,Ag(g,6)),MI(A,I+720|0,Ag(g,7)),MI(A,I+840|0,Ag(g,8)),UA(I=B+8|0,C),UA(B+48|0,A),kA(B+88|0,Q),MI(A,I,E),s=B+128|0}function lA(A,I,g,B,C,Q,E,i,n,a){var r,o,t;return s=o=s-352|0,fg(t=o+32|0,64,n,a),og(r=o+96|0,t),Dg(t,64),gg(r,Q,E,i),gg(r,34064,0-E&15,0),gg(r,I,g,B),gg(r,34064,0-g&15,0),QI(Q=o+24|0,E,i),gg(r,Q,8,0),QI(Q,g,B),gg(r,Q,8,0),tg(r,o),Dg(r,256),C=rg(o,C),Dg(o,16),A&&(C?(wI(A,0,g),C=-1):(WA(A,I,g,B,n,1,a),C=0)),s=o+352|0,C}function _A(A,I){var g,B=0,C=0,Q=0,E=0,a=0;A:if(!(((g=n[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>(-1^(B=r(Q,10)))>>>0)break A;if(Q=B+C|0,!(((C=n[0|(B=E+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|E)|(0|A)==(0|B)||(i[I>>2]=Q,a=B)}return a}function kA(A,I){var g,B,C,Q,E,n,a,r,o;g=i[I+4>>2],B=i[I+8>>2],C=i[I+12>>2],Q=i[I+16>>2],E=i[I+20>>2],n=i[I+24>>2],a=i[I+28>>2],r=i[I+32>>2],o=i[I+36>>2],i[A>>2]=0-i[I>>2],i[A+36>>2]=0-o,i[A+32>>2]=0-r,i[A+28>>2]=0-a,i[A+24>>2]=0-n,i[A+20>>2]=0-E,i[A+16>>2]=0-Q,i[A+12>>2]=0-C,i[A+8>>2]=0-B,i[A+4>>2]=0-g}function HA(A,I,g,B,C,Q,E,n,a,r,o){var t,e,f;return s=e=s-336|0,fg(f=e+16|0,64,r,o),og(t=e+80|0,f),Dg(f,64),gg(t,E,n,a),gg(t,34064,0-n&15,0),WA(A,B,C,Q,r,1,o),gg(t,A,C,Q),gg(t,34064,0-C&15,0),QI(A=e+8|0,n,a),gg(t,A,8,0),QI(A,C,Q),gg(t,A,8,0),tg(t,I),Dg(t,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=e+336|0,0}function GA(A,I,g,B,C,Q,E,i,n,a){var r,o,t;return s=r=s-352|0,Ig(t=r+32|0,n,a),og(o=r+96|0,t),Dg(t,64),gg(o,Q,E,i),QI(Q=r+24|0,E,i),gg(o,Q,8,0),gg(o,I,g,B),QI(Q,g,B),gg(o,Q,8,0),tg(o,r),Dg(o,256),C=rg(r,C),Dg(r,16),A&&(C?(wI(A,0,g),C=-1):(HI(A,I,g,B,n,a),C=0)),s=r+352|0,C}function UA(A,I){var g,B,C,Q,E,n,a,r,o;g=i[I+8>>2],B=i[I+12>>2],C=i[I+16>>2],Q=i[I+20>>2],E=i[I+24>>2],n=i[I+28>>2],a=i[I>>2],r=i[I+4>>2],o=i[I+36>>2],i[A+32>>2]=i[I+32>>2],i[A+36>>2]=o,i[A+24>>2]=E,i[A+28>>2]=n,i[A+16>>2]=C,i[A+20>>2]=Q,i[A+8>>2]=g,i[A+12>>2]=B,i[A>>2]=a,i[A+4>>2]=r}function SA(A,I,g){g?(i[A+48>>2]=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24):(i[A+48>>2]=0,g=0),i[A+52>>2]=g,i[A+56>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+60>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24}function bA(A,I,g,B){var C;if(s=C=s-192|0,!(!g|(I-65&255)>>>0<=191|(B-65&255)>>>0<=191))return E[C+130>>1]=257,Q[C+129|0]=B,Q[C+128|0]=I,RI(4|(I=C+128|0)),QI(8|I,0,0),wI(C+144|0,0,48),wA(A,I),wI(B+C|0,0,B<<24>>24<0?0:128-B|0),gA(I=A,A=eI(C,g,B),128,0),Dg(A,128),s=A+192|0,0;xI(),t()}function mA(A){var I=0,g=0,B=0;A:{if(3&(I=A))for(;;){if(!n[0|I])break A;if(!(3&(I=I+1|0)))break}for(;g=I,I=I+4|0,!((-1^(B=i[g>>2]))&B-16843009&-2139062144););if(!(255&B))return g-A|0;for(;B=n[g+1|0],g=I=g+1|0,B;);}return I-A|0}function vA(A,I,g,B,C,Q,E){var i=0,n=0;return I-65>>>0<4294967232|E>>>0>64?A=-1:(n=i=s,s=i=i-384&-64,!(!(B|C)||g)|!A|((I&=255)-65&255)>>>0<=191|!(!(E&=255)||Q)|E>>>0>=65?(xI(),t()):(E?bA(i,I,Q,E):jA(i,I),gA(i,g,B,C),Y(i,A,I),s=n),A=0),A}function MA(A,I){var g,B,C=0;s=g=s-704|0,(B=i[A+72>>2]>>>3&127)>>>0<=111?eI(80+(A+B|0)|0,34784,112-B|0):(eI((C=A+80|0)+B|0,34784,128-B|0),F(A,C,g,g+640|0),wI(C,0,112)),hA(A+192|0,A- -64|0,16),F(A,A+80|0,g,g+640|0),hA(I,A,64),Dg(g,704),Dg(A,208),s=g+704|0}function PA(A,I,g,B,C,Q,E,n,a,r,o){var t,e,f;return s=e=s-336|0,Ig(f=e+16|0,r,o),og(t=e+80|0,f),Dg(f,64),gg(t,E,n,a),QI(E=e+8|0,n,a),gg(t,E,8,0),HI(A,B,C,Q,r,o),gg(t,A,C,Q),QI(E,C,Q),gg(t,E,8,0),tg(t,I),Dg(t,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=e+336|0,0}function YA(A,I,g){i[A+48>>2]=g?n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24:0,i[A+52>>2]=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,i[A+56>>2]=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,i[A+60>>2]=n[I+8|0]|n[I+9|0]<<8|n[I+10|0]<<16|n[I+11|0]<<24}function NA(A,I,g,B,C,Q,E){var n;return s=n=s-16|0,A=wI(A,0,128),!(B|Q)&E>>>0<2147483649?!!(C|Q)&E>>>0>8191?(EI(n,16),A=_(C,E>>>10|0,1,I,g,n,16,0,32,A,128,2)?-1:0):(i[8952]=28,A=-1):(i[8952]=22,A=-1),s=n+16|0,A}function RA(A,I){var g=0;4&I&&((I=i[A>>2])&&Dg(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&Dg(I,i[A+20>>2]<<3)),b(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&b(g),b(I),i[A>>2]=0}function dA(A,I){var g,B,C=0,E=0,i=0,n=0;for(s=g=s-16|0,C=10;n=C,i=(I>>>0)/10|0,Q[0|(E=(C=C-1|0)+(g+6|0)|0)]=I-r(i,10)|48,!(I>>>0<10)&&(I=i,C););B=eI(I=A,E,A=11-n|0)+A|0,Q[0|B]=0,s=g+16|0}function JA(A,I,g){var B,C,Q,E=0;s=C=s-48|0,yA(A,E=I+40|0,I),cA(B=A+40|0,E,I),H(E=A+80|0,A,g+40|0),H(B,B,g),H(Q=A+120|0,g+120|0,I+120|0),H(A,I+80|0,g+80|0),yA(C,A,A),cA(A,E,B),yA(B,E,B),cA(E,C,Q),yA(Q,C,Q),s=C+48|0}function xA(A,I,g){var B,C,Q,E=0;s=C=s-48|0,yA(A,E=I+40|0,I),cA(B=A+40|0,E,I),H(E=A+80|0,A,g),H(B,B,g+40|0),H(Q=A+120|0,g+120|0,I+120|0),H(A,I+80|0,g+80|0),yA(C,A,A),cA(A,E,B),yA(B,E,B),yA(E,C,Q),cA(Q,C,Q),s=C+48|0}function LA(A,I,g){var B=0,C=0,Q=0;if(!g)return 0;A:if(B=n[0|A]){for(;;){if((C=n[0|I])&&!(!(g=g-1|0)|(0|B)!=(0|C))){if(I=I+1|0,B=n[A+1|0],A=A+1|0,B)continue;break A}break}Q=B}return(255&Q)-n[0|I]|0}function KA(A,I){for(var g=0,B=0,C=0,Q=0;C=(g=B<<3)+A|0,Q=n[0|(g=I+g|0)]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,g=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,i[C>>2]=Q,i[C+4>>2]=g,128!=(0|(B=B+1|0)););}function XA(A,I,g){var B;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,I=0,i[B+4>>2]=0,(0|g)>0)for(;i[B+4>>2]=i[B+4>>2]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(i[B+4>>2]-1>>>8&1)-1|0}function TA(A,I,g){var B,C,Q,E=0;s=C=s-48|0,yA(A,E=I+40|0,I),cA(B=A+40|0,E,I),H(E=A+80|0,A,g),H(B,B,g+40|0),H(Q=A+120|0,g+80|0,I+120|0),yA(C,I=I+80|0,I),cA(A,E,B),yA(B,E,B),yA(E,C,Q),cA(Q,C,Q),s=C+48|0}function VA(A,I,g){var B,C=0,E=0;if(s=B=s-16|0,Q[B+15|0]=0,E=-1,!(0|vg[i[8758]](A,I,g))){for(;Q[B+15|0]=n[A+C|0]|n[B+15|0],32!=(0|(C=C+1|0)););E=(n[B+15|0]<<23)-8388608>>31}return s=B+16|0,E}function qA(A,I,g,B){var C,Q,E,i,n=0,a=0;return i=r(n=g>>>16|0,a=A>>>16|0),n=(65535&(a=((E=r(C=65535&g,Q=65535&A))>>>16|0)+r(a,C)|0))+r(n,Q)|0,h=(r(I,g)+i|0)+r(A,B)+(a>>>16)+(n>>>16)|0,65535&E|n<<16}function zA(A,I,g){var B;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,I=0,Q[B+7|0]=0,g)for(;Q[B+7|0]=n[B+7|0]|n[i[B+8>>2]+I|0]^n[i[B+12>>2]+I|0],(0|g)!=(0|(I=I+1|0)););return(n[B+7|0]-1>>>8&1)-1|0}function jA(A,I){var g;return s=g=s+-64|0,(I-65&255)>>>0<=191&&(xI(),t()),Q[g+3|0]=1,Q[g+1|0]=0,Q[g+2|0]=1,Q[0|g]=I,RI(4|g),QI(8|g,0,0),wI(g+16|0,0,48),wA(A,g),s=g- -64|0,0}function WA(A,I,g,B,C,Q,E){var i=0,n=0;i=B,1==(((i=(n=g+63|0)>>>0<63?i+1|0:i)>>>6|0)+(0!=(0|(i=(63&i)<<26|n>>>6)))|0)&Q>>>0>(n=0-i|0)>>>0&&(xI(),t()),kI(A,I,g,B,C,Q,E)}function OA(A,I,g,B){var C=0;C=-1;A:if(!(B-65>>>0<4294967232|g>>>0>64)){I:{if(!g||!I){if(!jA(A,255&B))break I;break A}if(bA(A,255&B,I,255&g))break A}C=0}return C}function ZA(A,I,g,B){return(B=(1+(A^B)>>>8^-1)&g|(1+(16321^A)>>>8^-1)&I|(I=A+65510>>>8&255)&A+65)|(g=A+65484>>>8|0)&A+71&(255^I)|A+252&A+65474>>>8&(-1^g)&255}function $A(A){var I,g;return(A=(I=i[8748])+(g=A+3&-4)|0)>>>0<=I>>>0&&g||A>>>0>Mg()<<16>>>0&&!(0|c(0|A))?(i[8952]=48,-1):(i[8748]=A,I)}function AI(A,I){for(var g=0,B=0,C=0,Q=0;B=(g=C<<3)+A|0,Q=i[(g=I+g|0)>>2],g=i[B+4>>2]^i[g+4>>2],i[B>>2]=i[B>>2]^Q,i[B+4>>2]=g,128!=(0|(C=C+1|0)););}function II(A,I){var g,B,C,E,i;s=g=s-144|0,O(B=g+96|0,I+80|0),H(C=g+48|0,I,B),H(g,I+40|0,B),T(A,g),E=A,i=vI(C)<<7^n[A+31|0],Q[E+31|0]=i,s=g+144|0}function gI(A,I,g){var B=0;if(A>>>0>>0)return eI(A,I,g);if(g)for(B=A+g|0,I=I+g|0;I=I-1|0,Q[0|(B=B-1|0)]=n[0|I],g=g-1|0;);return A}function BI(A,I){var g,B=0;if(Q[15+(g=s-16|0)|0]=0,I)for(;Q[g+15|0]=n[A+B|0]|n[g+15|0],(0|(B=B+1|0))!=(0|I););return n[g+15|0]-1>>>8&1}function CI(A,I,g,B){var C;return B=I+B|0,B=(C=A+g|0)>>>0>>0?B+1|0:B,g=qA(A<<1&-2,1&(I=I<<1|A>>>31),g,0),A=h+B|0,h=A=(I=g+C|0)>>>0>>0?A+1|0:A,I}function QI(A,I,g){Q[0|A]=I,Q[A+1|0]=I>>>8,Q[A+2|0]=I>>>16,Q[A+3|0]=I>>>24,Q[A+4|0]=g,Q[A+5|0]=g>>>8,Q[A+6|0]=g>>>16,Q[A+7|0]=g>>>24}function EI(A,I){A|=0;var g=0,B=0,C=0;if(I|=0)for(;B=A+g|0,C=FI(),Q[0|B]=C,(0|(g=g+1|0))!=(0|I););}function iI(A,I,g,B,C){var Q,E;return A|=0,I|=0,g|=0,B|=0,s=Q=(E=s)-128&-64,IA(Q,C|=0),$(Q,I,g,B),W(Q,A),s=E,0}function nI(A){var I=0,g=0,B=0;for(I=1;I=n[0|(B=A+g|0)]+I|0,Q[0|B]=I,I=I>>>8|0,4!=(0|(g=g+1|0)););}function aI(A,I,g,B,C,Q,E,i){var n,a=0;return s=n=s-32|0,a=-1,oI(n,E,i)||(a=zI(A,I,g,B,C,Q,n),Dg(n,32)),s=n+32|0,a}function rI(A,I,g,B,C,Q,E,i){var n,a=0;return s=n=s-32|0,a=-1,oI(n,E,i)||(a=jI(A,I,g,B,C,Q,n),Dg(n,32)),s=n+32|0,a}function oI(A,I,g){A|=0;var B,C=0;return s=B=s-32|0,C=-1,VA(B,g|=0,I|=0)||(C=K(A,34976,B)),s=B+32|0,0|C}function tI(A,I){var g,B,C;H(A,I,g=I+120|0),H(A+40|0,B=I+40|0,C=I+80|0),H(A+80|0,C,g),H(A+120|0,I,B)}function eI(A,I,g){var B=0;if(g)for(B=A;Q[0|B]=n[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);return A}function fI(A,I){var g,B;s=B=s-128|0,UA(g=B+8|0,I),UA(g+40|0,I+40|0),UA(g+80|0,I+80|0),G(A,g),s=B+128|0}function cI(A,I,g,B,C,Q,E){return!B&g>>>0>=16|B?rI(A,I+16|0,I,g-16|0,B-(g>>>0<16)|0,C,Q,E):-1}function yI(A,I){for(var g=0,B=0;Q[0|(B=A+g|0)]=n[0|B]^n[I+g|0],8!=(0|(g=g+1|0)););}function sI(A,I,g){var B,C;s=B=(C=s)-384&-64,PI(B,0,0,24),ig(B,I,32,0),ig(B,g,32,0),dI(B,A,24),s=C}function wI(A,I,g){var B=0;if(g)for(B=A;Q[0|B]=I,B=B+1|0,g=g-1|0;);return A}function DI(A,I){var g;yA(A,g=I+40|0,I),cA(A+40|0,g,I),UA(A+80|0,I+80|0),H(A+120|0,I+120|0,1520)}function hI(A,I){var g;H(A,I,g=I+120|0),H(A+40|0,I+40|0,I=I+80|0),H(A+80|0,I,g)}function pI(A,I,g,B,C,Q,E){return!B&g>>>0>=4294967280|B&&(xI(),t()),aI(A+16|0,A,I,g,B,C,Q,E)}function uI(A){var I;return I=n[0|A]|n[A+1|0]<<8,A=n[A+2|0],h=A>>>16|0,I|A<<16}function FI(){var A,I;return s=A=s-16|0,Q[A+15|0]=0,I=0|f(35048,A+15|0,0),s=A+16|0,0|I}function lI(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function _I(A,I,g,B){var C;return s=C=s-208|0,GI(C),z(C,I,g,B),MA(C,A),s=C+208|0,0}function kI(A,I,g,B,C,Q,E){1==(0|B)|B>>>0>1&&(xI(),t()),vg[i[8752]](A,I,g,B,C,Q,E)}function HI(A,I,g,B,C,Q){1==(0|B)|B>>>0>1&&(xI(),t()),vg[i[8751]](A,I,g,B,C,1,0,Q)}function GI(A){i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,eI(A,34080,64)}function UI(A,I,g){return g>>>0>=256&&(e(1279,1206,107,1067),t()),Y(A,I,255&g)}function SI(){var A;s=A=s-16|0,Q[A+15|0]=0,f(35084,A+15|0,0),s=A+16|0}function bI(A,I){Q[0|A]=I,Q[A+1|0]=I>>>8,Q[A+2|0]=I>>>16,Q[A+3|0]=I>>>24}function mI(A){var I;return s=I=s-32|0,T(I,A),A=BI(I,32),s=I+32|0,A}function vI(A){var I;return s=I=s-32|0,T(I,A),s=I+32|0,1&Q[0|I]}function MI(A,I,g){aA(A,I,g),aA(A+40|0,I+40|0,g),aA(A+80|0,I+80|0,g)}function PI(A,I,g,B){return 0|OA(A|=0,I|=0,g|=0,B|=0)}function YI(A){Q[A+32|0]=1,Q[A+33|0]=0,Q[A+34|0]=0,Q[A+35|0]=0}function NI(A){i[A>>2]=0,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0}function RI(A){Q[0|A]=0,Q[A+1|0]=0,Q[A+2|0]=0,Q[A+3|0]=0}function dI(A,I,g){return 0|UI(A|=0,I|=0,g|=0)}function JI(A,I,g){return 0|VA(A|=0,I|=0,g|=0)}function xI(){var A;(A=i[9098])&&vg[0|A](),y(),t()}function LI(A){hg(A),ng(A+40|0),ng(A+80|0),hg(A+120|0)}function KI(A,I,g,B,C,Q){vg[i[8761]](A,I,g,B,C,1,0,Q)}function XI(A,I,g,B,C,Q){vg[i[8761]](A,I,g,B,C,0,0,Q)}function TI(A,I){return A|=0,EI(I|=0,32),0|Bg(A,I)}function VI(A,I,g,B,C,Q){return u(A,I,g,B,C,Q,0),0}function qI(A,I,g,B,C,Q,E){return vA(A,I,g,B,C,Q,E)}function zI(A,I,g,B,C,Q,E){return EA(A,I,g,B,C,Q,E)}function jI(A,I,g,B,C,Q,E){return iA(A,I,g,B,C,Q,E)}function WI(A,I){GI(A),I&&z(A,34912,34,0)}function OI(A,I,g,B,C){return J(A,I,g,B,C,0)}function ZI(A,I){return 0|Bg(A|=0,I|=0)}function $I(A,I,g,B){vg[i[8750]](A,I,0,g,B)}function Ag(A,I){return(255&(A^I))-1>>>31|0}function Ig(A,I,g){vg[i[8749]](A,64,0,I,g)}function gg(A,I,g,B){vg[i[8756]](A,I,g,B)}function Bg(A,I){return 0|vg[i[8759]](A,I)}function Cg(A,I,g,B){return gA(A,I,g,B)}function Qg(A){return ZA(A,45,95,32704)}function Eg(A){return ZA(A,43,47,16320)}function ig(A,I,g,B){return Cg(A,I,g,B)}function ng(A){i[A>>2]=1,wI(A+4|0,0,36)}function ag(A){1!=(-7&A)&&(xI(),t())}function rg(A,I){return XA(A,I,16)}function og(A,I){vg[i[8755]](A,I)}function tg(A,I){vg[i[8757]](A,I)}function eg(A,I){return XA(A,I,32)}function fg(A,I,g,B){$I(A,I,g,B)}function cg(A,I){return lI(A,I)}function yg(A,I){eI(A,I,1024)}function sg(A){EI(A|=0,32)}function wg(A){wI(A,0,1024)}function Dg(A,I){wI(A,0,I)}function hg(A){wI(A,0,40)}function pg(){return 32}function ug(){return 24}function Fg(){return-17}function lg(){return 64}function _g(){return 16}function kg(){return 1}function Hg(){return 2}function Gg(){return 8}function Ug(){return 3}function Sg(){return 0}function bg(){return-1}C(I=n,1024,\"TGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsACRhcmdvbjJpACRhcmdvbjJpZAByYW5kb21ieXRlcy9yYW5kb21ieXRlcy5jAHNvZGl1bS9jb2RlY3MuYwBjcnlwdG9fZ2VuZXJpY2hhc2gvYmxha2UyYi9yZWYvYmxha2UyYi1yZWYuYwBjcnlwdG9fZ2VuZXJpY2hhc2gvYmxha2UyYi9yZWYvZ2VuZXJpY2hhc2hfYmxha2UyYi5jAGJ1Zl9sZW4gPD0gU0laRV9NQVgAb3V0bGVuIDw9IFVJTlQ4X01BWABTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTACRhcmdvbjJpJHY9ACRhcmdvbjJpZCR2PQAsdD0ALHA9ACRtPQAxLjAuMTgAc29kaXVtX2JpbjJiYXNlNjQAJGFyZ29uMmkkACRhcmdvbjJpZCQ=\"),C(I,1424,\"tnhZ/4Vy0wC9bhX/DwpqACnAAQCY6Hn/vDyg/5lxzv8At+L+tA1I/wAAAAAAAAAAsKAO/tPJhv+eGI8Af2k1AGAMvQCn1/v/n0yA/mpl4f8e/AQAkgyu\"),C(I,1520,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),C(I,1568,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),C(I,2560,\"AQ==\"),C(I,2592,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),C(I,2783,\"EIU7jAG98ST/+CXDAWDcNwC3TD7/w0I9ADJMpAHhpEz/TD2j/3U+HwBRkUD/dkEOAKJz1v8Gii4AfOb0/wqKjwA0GsIAuPRMAIGPKQG+9BP/e6p6/2KBRAB51ZMAVmUe/6FnmwCMWUP/7+W+AUMLtQDG8In+7kW8/+pxPP8l/zn/RbK2/oDQswB2Gn3+AwfW//EyTf9Vy8X/04f6/xkwZP+71bT+EVhpAFPRngEFc2IABK48/qs3bv/ZtRH/FLyqAJKcZv5X1q7/cnqbAeksqgB/CO8B1uzqAK8F2wAxaj3/BkLQ/wJqbv9R6hP/12vA/0OX7gATKmz/5VVxATJEh/8RagkAMmcB/1ABqAEjmB7/EKi5AThZ6P9l0vwAKfpHAMyqT/8OLu//UE3vAL3WS/8RjfkAJlBM/75VdQBW5KoAnNjQAcPPpP+WQkz/r+EQ/41QYgFM2/IAxqJyAC7amACbK/H+m6Bo/7IJ/P5kbtQADgWnAOnvo/8cl50BZZIK//6eRv5H+eQAWB4yAEQ6oP+/GGgBgUKB/8AyVf8Is4r/JvrJAHNQoACD5nEAfViTAFpExwD9TJ4AHP92AHH6/gBCSy4A5torAOV4ugGURCsAiHzuAbtrxf9UNfb/M3T+/zO7pQACEa8AQlSgAfc6HgAjQTX+Rey/AC2G9QGje90AIG4U/zQXpQC61kcA6bBgAPLvNgE5WYoAUwBU/4igZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/0RxFf/eujv/QgfxAUUGSABWnGz+N6dZAG002/4NsBf/xCxq/++VR/+kjH3/n60BADMp5wCRPiEAim9dAblTRQCQcy4AYZcQ/xjkGgAx2eIAcUvq/sGZDP+2MGD/Dg0aAIDD+f5FwTsAhCVR/n1qPADW8KkBpONCANKjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/48+3QCBWdb/N4sF/kQUv/8OzLIBI8PZAC8zzgEm9qUAzhsG/p5XJADZNJL/fXvX/1U8H/+rDQcA2vVY/vwjPAA31qD/hWU4AOAgE/6TQOoAGpGiAXJ2fQD4/PoAZV7E/8aN4v4zKrYAhwwJ/m2s0v/F7MIB8UGaADCcL/+ZQzf/2qUi/kq0swDaQkcBWHpjANS12/9cKuf/7wCaAPVNt/9eUaoBEtXYAKtdRwA0XvgAEpeh/sXRQv+u9A/+ojC3ADE98P62XcMAx+QGAcgFEf+JLe3/bJQEAFpP7f8nP03/NVLPAY4Wdv9l6BIBXBpDAAXIWP8hqIr/leFIAALRG/8s9agB3O0R/x7Taf6N7t0AgFD1/m/+DgDeX74B3wnxAJJM1P9szWj/P3WZAJBFMAAj5G8AwCHB/3DWvv5zmJcAF2ZYADNK+ADix4/+zKJl/9BhvQH1aBIA5vYe/xeURQBuWDT+4rVZ/9AvWv5yoVD/IXT4ALOYV/9FkLEBWO4a/zogcQEBTUUAO3k0/5juUwA0CMEA5yfp/8ciigDeRK0AWzny/tzSf//AB/b+lyO7AMPspQBvXc4A1PeFAZqF0f+b5woAQE4mAHr5ZAEeE2H/Plv5AfiFTQDFP6j+dApSALjscf7Uy8L/PWT8/iQFyv93W5n/gU8dAGdnq/7t12//2DVFAO/wFwDCld3/JuHeAOj/tP52UoX/OdGxAYvohQCesC7+wnMuAFj35QEcZ78A3d6v/pXrLACX5Bn+2mlnAI5V0gCVgb7/1UFe/nWG4P9SxnUAnd3cAKNlJADFciUAaKym/gu2AABRSLz/YbwQ/0UGCgDHk5H/CAlzAUHWr//ZrdEAUH+mAPflBP6nt3z/WhzM/q878P8LKfgBbCgz/5Cxw/6W+n4AiltBAXg83v/1we8AHda9/4ACGQBQmqIATdxrAerNSv82pmf/dEgJAOReL/8eyBn/I9ZZ/z2wjP9T4qP/S4KsAIAmEQBfiZj/13yfAU9dAACUUp3+w4L7/yjKTP/7fuAAnWM+/s8H4f9gRMMAjLqd/4MT5/8qgP4ANNs9/mbLSACNBwv/uqTVAB96dwCF8pEA0Pzo/1vVtv+PBPr++ddKAKUebwGrCd8A5XsiAVyCGv9Nmy0Bw4sc/zvgTgCIEfcAbHkgAE/6vf9g4/z+JvE+AD6uff+bb13/CubOAWHFKP8AMTn+QfoNABL7lv/cbdL/Ba6m/iyBvQDrI5P/JfeN/0iNBP9na/8A91oEADUsKgACHvAABDs/AFhOJABxp7QAvkfB/8eepP86CKwATSEMAEE/AwCZTSH/rP5mAeTdBP9XHv4BkilW/4rM7/5sjRH/u/KHANLQfwBELQ7+SWA+AFE8GP+qBiT/A/kaACPVbQAWgTb/FSPh/+o9OP862QYAj3xYAOx+QgDRJrf/Iu4G/66RZgBfFtMAxA+Z/i5U6P91IpIB5/pK/xuGZAFcu8P/qsZwAHgcKgDRRkMAHVEfAB2oZAGpraAAayN1AD5gO/9RDEUBh+++/9z8EgCj3Dr/iYm8/1NmbQBgBkwA6t7S/7muzQE8ntX/DfHWAKyBjABdaPIAwJz7ACt1HgDhUZ4Af+jaAOIcywDpG5f/dSsF//IOL/8hFAYAifss/hsf9f+31n3+KHmVALqe1f9ZCOMARVgA/suH4QDJrssAk0e4ABJ5Kf5eBU4A4Nbw/iQFtAD7h+cBo4rUANL5dP5YgbsAEwgx/j4OkP+fTNMA1jNSAG115P5n38v/S/wPAZpH3P8XDVsBjahg/7W2hQD6MzcA6urU/q8/ngAn8DQBnr0k/9UoVQEgtPf/E2YaAVQYYf9FFd4AlIt6/9zV6wHoy/8AeTmTAOMHmgA1FpMBSAHhAFKGMP5TPJ3/kUipACJn7wDG6S8AdBME/7hqCf+3gVMAJLDmASJnSADbooYA9SqeACCVYP6lLJAAyu9I/teWBQAqQiQBhNevAFauVv8axZz/MeiH/me2UgD9gLABmbJ6APX6CgDsGLIAiWqEACgdKQAyHpj/fGkmAOa/SwCPK6oALIMU/ywNF//t/5sBn21k/3C1GP9o3GwAN9ODAGMM1f+Yl5H/7gWfAGGbCAAhbFEAAQNnAD5tIv/6m7QAIEfD/yZGkQGfX/UAReVlAYgc8ABP4BkATm55//iofAC7gPcAApPr/k8LhABGOgwBtQij/0+Jhf8lqgv/jfNV/7Dn1//MlqT/79cn/y5XnP4Io1j/rCLoAEIsZv8bNin+7GNX/yl7qQE0cisAdYYoAJuGGgDnz1v+I4Qm/xNmff4k44X/dgNx/x0NfACYYEoBWJLO/6e/3P6iElj/tmQXAB91NABRLmoBDAIHAEVQyQHR9qwADDCNAeDTWAB04p8AemKCAEHs6gHh4gn/z+J7AVnWOwBwh1gBWvTL/zELJgGBbLoAWXAPAWUuzP9/zC3+T//d/zNJEv9/KmX/8RXKAKDjBwBpMuwATzTF/2jK0AG0DxAAZcVO/2JNywApufEBI8F8ACObF//PNcAAC32jAfmeuf8EgzAAFV1v/z155wFFyCT/uTC5/2/uFf8nMhn/Y9ej/1fUHv+kkwX/gAYjAWzfbv/CTLIASmW0APMvMACuGSv/Uq39ATZywP8oN1sA12yw/ws4BwDg6UwA0WLK/vIZfQAswV3+ywixAIewEwBwR9X/zjuwAQRDGgAOj9X+KjfQ/zxDeADBFaMAY6RzAAoUdgCc1N7+oAfZ/3L1TAF1O3sAsMJW/tUPsABOzs/+1YE7AOn7FgFgN5j/7P8P/8VZVP9dlYUArqBxAOpjqf+YdFgAkKRT/18dxv8iLw//Y3iG/wXswQD5937/k7seADLmdf9s2dv/o1Gm/0gZqf6beU//HJtZ/gd+EQCTQSEBL+r9ABozEgBpU8f/o8TmAHH4pADi/toAvdHL/6T33v7/I6UABLzzAX+zRwAl7f7/ZLrwAAU5R/5nSEn/9BJR/uXShP/uBrT/C+Wu/+PdwAERMRwAo9fE/gl2BP8z8EcAcYFt/0zw5wC8sX8AfUcsARqv8wBeqRn+G+YdAA+LdwGoqrr/rMVM//xLvACJfMQASBZg/y2X+QHckWQAQMCf/3jv4gCBspIAAMB9AOuK6gC3nZIAU8fA/7isSP9J4YAATQb6/7pBQwBo9s8AvCCK/9oY8gBDilH+7YF5/xTPlgEpxxD/BhSAAJ92BQC1EI//3CYPABdAk/5JGg0AV+Q5Acx8gAArGN8A22PHABZLFP8TG34AnT7XAG4d5gCzp/8BNvy+AN3Mtv6znkH/UZ0DAMLanwCq3wAA4Asg/ybFYgCopCUAF1gHAaS6bgBgJIYA6vLlAPp5EwDy/nD/Ay9eAQnvBv9Rhpn+1v2o/0N84AD1X0oAHB4s/gFt3P+yWVkA/CRMABjGLv9MTW8AhuqI/ydeHQC5SOr/RkSH/+dmB/5N54wApy86AZRhdv8QG+EBps6P/26y1v+0g6IAj43hAQ3aTv9ymSEBYmjMAK9ydQGnzksAysRTATpAQwCKL28BxPeA/4ng4P6ecM8AmmT/AYYlawDGgE//f9Gb/6P+uf48DvMAH9tw/h3ZQQDIDXT+ezzE/+A7uP7yWcQAexBL/pUQzgBF/jAB53Tf/9GgQQHIUGIAJcK4/pQ/IgCL8EH/2ZCE/zgmLf7HeNIAbLGm/6DeBADcfnf+pWug/1Lc+AHxr4gAkI0X/6mKVACgiU7/4nZQ/zQbhP8/YIv/mPonALybDwDoM5b+KA/o//DlCf+Jrxv/S0lhAdrUCwCHBaIBa7nVAAL5a/8o8kYA28gZABmdDQBDUlD/xPkX/5EUlQAySJIAXkyUARj7QQAfwBcAuNTJ/3vpogH3rUgAolfb/n6GWQCfCwz+pmkdAEkb5AFxeLf/QqNtAdSPC/+f56gB/4BaADkOOv5ZNAr//QijAQCR0v8KgVUBLrUbAGeIoP5+vNH/IiNvANfbGP/UC9b+ZQV2AOjFhf/fp23/7VBW/0aLXgCewb8Bmw8z/w++cwBOh8//+QobAbV96QBfrA3+qtWh/yfsiv9fXVf/voBfAH0PzgCmlp8A4w+e/86eeP8qjYAAZbJ4AZxtgwDaDiz+96jO/9RwHABwEeT/WhAlAcXebAD+z1P/CVrz//P0rAAaWHP/zXR6AL/mwQC0ZAsB2SVg/5pOnADr6h//zrKy/5XA+wC2+ocA9hZpAHzBbf8C0pX/qRGqAABgbv91CQgBMnso/8G9YwAi46AAMFBG/tMz7AAtevX+LK4IAK0l6f+eQasAekXX/1pQAv+DamD+43KHAM0xd/6wPkD/UjMR//EU8/+CDQj+gNnz/6IbAf5advEA9sb2/zcQdv/In50AoxEBAIxreQBVoXb/JgCVAJwv7gAJpqYBS2K1/zJKGQBCDy8Ai+GfAEwDjv8O7rgAC881/7fAugGrIK7/v0zdAfeq2wAZrDL+2QnpAMt+RP+3XDAAf6e3AUEx/gAQP38B/hWq/zvgf/4WMD//G06C/ijDHQD6hHD+I8uQAGipqADP/R7/aCgm/l7kWADOEID/1Dd6/98W6gDfxX8A/bW1AZFmdgDsmST/1NlI/xQmGP6KPj4AmIwEAObcY/8BFdT/lMnnAPR7Cf4Aq9IAMzol/wH/Dv/0t5H+APKmABZKhAB52CkAX8Ny/oUYl/+c4uf/9wVN//aUc/7hXFH/3lD2/qp7Wf9Kx40AHRQI/4qIRv9dS1wA3ZMx/jR+4gDlfBcALgm1AM1ANAGD/hwAl57UAINATgDOGasAAOaLAL/9bv5n96cAQCgoASql8f87S+T+fPO9/8Rcsv+CjFb/jVk4AZPGBf/L+J7+kKKNAAus4gCCKhX/AaeP/5AkJP8wWKT+qKrcAGJH1gBb0E8An0zJAaYq1v9F/wD/BoB9/74BjACSU9r/1+5IAXp/NQC9dKX/VAhC/9YD0P/VboUAw6gsAZ7nRQCiQMj+WzpoALY6u/755IgAy4ZM/mPd6QBL/tb+UEWaAECY+P7siMr/nWmZ/pWvFAAWIxP/fHnpALr6xv6E5YsAiVCu/6V9RACQypT+6+/4AIe4dgBlXhH/ekhG/kWCkgB/3vgBRX92/x5S1/68ShP/5afC/nUZQv9B6jj+1RacAJc7Xf4tHBv/un6k/yAG7wB/cmMB2zQC/2Ngpv4+vn7/bN6oAUvirgDm4scAPHXa//z4FAHWvMwAH8KG/ntFwP+prST+N2JbAN8qZv6JAWYAnVoZAO96QP/8BukABzYU/1J0rgCHJTb/D7p9AONwr/9ktOH/Ku30//St4v74EiEAq2OW/0rrMv91UiD+aqjtAM9t0AHkCboAhzyp/rNcjwD0qmj/6y18/0ZjugB1ibcA4B/XACgJZAAaEF8BRNlXAAiXFP8aZDr/sKXLATR2RgAHIP7+9P71/6eQwv99cRf/sHm1AIhU0QCKBh7/WTAcACGbDv8Z8JoAjc1tAUZzPv8UKGv+iprH/17f4v+dqyYAo7EZ/i12A/8O3hcB0b5R/3Z76AEN1WX/ezd7/hv2pQAyY0z/jNYg/2FBQ/8YDBwArlZOAUD3YACgh0MAQjfz/5PMYP8aBiH/YjNTAZnV0P8CuDb/GdoLADFD9v4SlUj/DRlIACpP1gAqBCYBG4uQ/5W7FwASpIQA9VS4/njGaP9+2mAAOHXq/w0d1v5ELwr/p5qE/pgmxgBCsln/yC6r/w1jU//Su/3/qi0qAYrRfADWoo0ADOacAGYkcP4Dk0MANNd7/+mrNv9iiT4A99on/+fa7AD3v38Aw5JUAKWwXP8T1F7/EUrjAFgomQHGkwH/zkP1/vAD2v89jdX/YbdqAMPo6/5fVpoA0TDN/nbR8f/weN8B1R2fAKN/k/8N2l0AVRhE/kYUUP+9BYwBUmH+/2Njv/+EVIX/a9p0/3B6LgBpESAAwqA//0TeJwHY/VwAsWnN/5XJwwAq4Qv/KKJzAAkHUQCl2tsAtBYA/h2S/P+Sz+EBtIdgAB+jcACxC9v/hQzB/itOMgBBcXkBO9kG/25eGAFwrG8ABw9gACRVewBHlhX/0Em8AMALpwHV9SIACeZcAKKOJ//XWhsAYmFZAF5P0wBanfAAX9x+AWaw4gAkHuD+Ix9/AOfocwFVU4IA0kn1/y+Pcv9EQcUAO0g+/7eFrf5deXb/O7FR/+pFrf/NgLEA3PQzABr00QFJ3k3/owhg/paV0wCe/ssBNn+LAKHgOwAEbRb/3iot/9CSZv/sjrsAMs31/wpKWf4wT44A3kyC/x6mPwDsDA3/Mbj0ALtxZgDaZf0AmTm2/iCWKgAZxpIB7fE4AIxEBQBbpKz/TpG6/kM0zQDbz4EBbXMRADaPOgEV+Hj/s/8eAMHsQv8B/wf//cAw/xNF2QED1gD/QGWSAd99I//rSbP/+afiAOGvCgFhojoAanCrAVSsBf+FjLL/hvWOAGFaff+6y7n/300X/8BcagAPxnP/2Zj4AKuyeP/khjUAsDbBAfr7NQDVCmQBIsdqAJcf9P6s4Ff/Du0X//1VGv9/J3T/rGhkAPsORv/U0Ir//dP6ALAxpQAPTHv/Jdqg/1yHEAEKfnL/RgXg//f5jQBEFDwB8dK9/8PZuwGXA3EAl1yuAOc+sv/bt+EAFxch/821UAA5uPj/Q7QB/1p7Xf8nAKL/YPg0/1RCjAAif+T/wooHAaZuvAAVEZsBmr7G/9ZQO/8SB48ASB3iAcfZ+QDooUcBlb7JANmvX/5xk0P/io/H/3/MAQAdtlMBzuab/7rMPAAKfVX/6GAZ//9Z9//V/q8B6MFRABwrnP4MRQgAkxj4ABLGMQCGPCMAdvYS/zFY/v7kFbr/tkFwAdsWAf8WfjT/vTUx/3AZjwAmfzf/4mWj/tCFPf+JRa4BvnaR/zxi2//ZDfX/+ogKAFT+4gDJH30B8DP7/x+Dgv8CijL/19exAd8M7v/8lTj/fFtE/0h+qv53/2QAgofo/w5PsgD6g8UAisbQAHnYi/53EiT/HcF6ABAqLf/V8OsB5r6p/8Yj5P5urUgA1t3x/ziUhwDAdU7+jV3P/49BlQAVEmL/Xyz0AWq/TQD+VQj+1m6w/0mtE/6gxMf/7VqQAMGscf/Im4j+5FrdAIkxSgGk3df/0b0F/2nsN/8qH4EBwf/sAC7ZPACKWLv/4lLs/1FFl/+OvhABDYYIAH96MP9RQJwAq/OLAO0j9gB6j8H+1HqSAF8p/wFXhE0ABNQfABEfTgAnLa3+GI7Z/18JBv/jUwYAYjuC/j4eIQAIc9MBomGA/we4F/50HKj/+IqX/2L08AC6doIAcvjr/2mtyAGgfEf/XiSkAa9Bkv/u8ar+ysbFAORHiv4t9m3/wjSeAIW7sABT/Jr+Wb3d/6pJ/ACUOn0AJEQz/ipFsf+oTFb/JmTM/yY1IwCvE2EA4e79/1FRhwDSG//+60lrAAjPcwBSf4gAVGMV/s8TiABkpGUAUNBN/4TP7f8PAw//IaZuAJxfVf8luW8Blmoj/6aXTAByV4f/n8JAAAx6H//oB2X+rXdiAJpH3P6/OTX/qOig/+AgY//anKUAl5mjANkNlAHFcVkAlRyh/s8XHgBphOP/NuZe/4WtzP9ct53/WJD8/mYhWgCfYQMAtdqb//BydwBq1jX/pb5zAZhb4f9Yaiz/0D1xAJc0fAC/G5z/bjbsAQ4epv8nf88B5cccALzkvP5knesA9tq3AWsWwf/OoF8ATO+TAM+hdQAzpgL/NHUK/kk44/+YweEAhF6I/2W/0QAga+X/xiu0AWTSdgByQ5n/F1ga/1maXAHceIz/kHLP//xz+v8izkgAioV//wiyfAFXS2EAD+Vc/vBDg/92e+P+knho/5HV/wGBu0b/23c2AAETrQAtlpQB+FNIAMvpqQGOazgA9/kmAS3yUP8e6WcAYFJGABfJbwBRJx7/obdO/8LqIf9E44z+2M50AEYb6/9okE8ApOZd/taHnACau/L+vBSD/yRtrgCfcPEABW6VASSl2gCmHRMBsi5JAF0rIP74ve0AZpuNAMldw//xi/3/D29i/2xBo/6bT77/Sa7B/vYoMP9rWAv+ymFV//3MEv9x8kIAbqDC/tASugBRFTwAvGin/3ymYf7ShY4AOPKJ/ilvggBvlzoBb9WN/7es8f8mBsT/uQd7/y4L9gD1aXcBDwKh/wjOLf8Sykr/U3xzAdSNnQBTCNH+iw/o/6w2rf4y94QA1r3VAJC4aQDf/vgA/5Pw/xe8SAAHMzYAvBm0/ty0AP9ToBQAo73z/zrRwv9XSTwAahgxAPX53AAWracAdgvD/xN+7QBunyX/O1IvALS7VgC8lNABZCWF/wdwwQCBvJz/VGqB/4XhygAO7G//KBRlAKysMf4zNkr/+7m4/12b4P+0+eAB5rKSAEg5Nv6yPrgAd81IALnv/f89D9oAxEM4/+ogqwEu2+QA0Gzq/xQ/6P+lNccBheQF/zTNawBK7oz/lpzb/u+ssv/7vd/+II7T/9oPigHxxFAAHCRi/hbqxwA97dz/9jklAI4Rjv+dPhoAK+5f/gPZBv/VGfABJ9yu/5rNMP4TDcD/9CI2/owQmwDwtQX+m8E8AKaABP8kkTj/lvDbAHgzkQBSmSoBjOySAGtc+AG9CgMAP4jyANMnGAATyqEBrRu6/9LM7/4p0aL/tv6f/6x0NADDZ97+zUU7ADUWKQHaMMIAUNLyANK8zwC7oaH+2BEBAIjhcQD6uD8A3x5i/k2oogA7Na8AE8kK/4vgwgCTwZr/1L0M/gHIrv8yhXEBXrNaAK22hwBesXEAK1nX/4j8av97hlP+BfVC/1IxJwHcAuAAYYGxAE07WQA9HZsBy6vc/1xOiwCRIbX/qRiNATeWswCLPFD/2idhAAKTa/88+EgAreYvAQZTtv8QaaL+idRR/7S4hgEn3qT/3Wn7Ae9wfQA/B2EAP2jj/5Q6DABaPOD/VNT8AE/XqAD43ccBc3kBACSseAAgorv/OWsx/5MqFQBqxisBOUpXAH7LUf+Bh8MAjB+xAN2LwgAD3tcAg0TnALFWsv58l7QAuHwmAUajEQD5+7UBKjfjAOKhLAAX7G4AM5WOAV0F7ADat2r+QxhNACj10f/eeZkApTkeAFN9PABGJlIB5Qa8AG3enf83dj//zZe6AOMhlf/+sPYB47HjACJqo/6wK08Aal9OAbnxev+5Dj0AJAHKAA2yov/3C4QAoeZcAUEBuf/UMqUBjZJA/57y2gAVpH0A1Yt6AUNHVwDLnrIBl1wrAJhvBf8nA+//2f/6/7A/R/9K9U0B+q4S/yIx4//2Lvv/miMwAX2dPf9qJE7/YeyZAIi7eP9xhqv/E9XZ/the0f/8BT0AXgPKAAMat/9Avyv/HhcVAIGNTf9meAcBwkyMALyvNP8RUZQA6FY3AeEwrACGKir/7jIvAKkS/gAUk1f/DsPv/0X3FwDu5YD/sTFwAKhi+/95R/gA8wiR/vbjmf/bqbH++4ul/wyjuf+kKKv/mZ8b/vNtW//eGHABEtbnAGudtf7DkwD/wmNo/1mMvv+xQn7+arlCADHaHwD8rp4AvE/mAe4p4ADU6ggBiAu1AKZ1U/9Ew14ALoTJAPCYWACkOUX+oOAq/zvXQ/93w43/JLR5/s8vCP+u0t8AZcVE//9SjQH6iekAYVaFARBQRQCEg58AdF1kAC2NiwCYrJ3/WitbAEeZLgAnEHD/2Yhh/9zGGf6xNTEA3liG/4APPADPwKn/wHTR/2pO0wHI1bf/Bwx6/t7LPP8hbsf++2p1AOThBAF4Ogf/3cFU/nCFGwC9yMn/i4eWAOo3sP89MkEAmGyp/9xVAf9wh+MAohq6AM9guf70iGsAXZkyAcZhlwBuC1b/j3Wu/3PUyAAFyrcA7aQK/rnvPgDseBL+Yntj/6jJwv4u6tYAv4Ux/2OpdwC+uyMBcxUt//mDSABwBnv/1jG1/qbpIgBcxWb+/eTN/wM7yQEqYi4A2yUj/6nDJgBefMEBnCvfAF9Ihf54zr8AesXv/7G7T//+LgIB+qe+AFSBEwDLcab/+R+9/kidyv/QR0n/zxhIAAoQEgHSUUz/WNDA/37za//ujXj/x3nq/4kMO/8k3Hv/lLM8/vAMHQBCAGEBJB4m/3MBXf9gZ+f/xZ47AcCk8ADKyjn/GK4wAFlNmwEqTNcA9JfpABcwUQDvfzT+44Il//h0XQF8hHYArf7AAQbrU/9ur+cB+xy2AIH5Xf5UuIAATLU+AK+AugBkNYj+bR3iAN3pOgEUY0oAABagAIYNFQAJNDf/EVmMAK8iOwBUpXf/4OLq/wdIpv97c/8BEtb2APoHRwHZ3LkA1CNM/yZ9rwC9YdIAcu4s/ym8qf4tupoAUVwWAISgwQB50GL/DVEs/8ucUgBHOhX/0HK//jImkwCa2MMAZRkSADz61//phOv/Z6+OARAOXACNH27+7vEt/5nZ7wFhqC//+VUQARyvPv85/jYA3ud+AKYtdf4SvWD/5EwyAMj0XgDGmHgBRCJF/wxBoP5lE1oAp8V4/0Q2uf8p2rwAcagwAFhpvQEaUiD/uV2kAeTw7f9CtjUAq8Vc/2sJ6QHHeJD/TjEK/22qaf9aBB//HPRx/0o6CwA+3Pb/eZrI/pDSsv9+OYEBK/oO/2VvHAEvVvH/PUaW/zVJBf8eGp4A0RpWAIrtSgCkX7wAjjwd/qJ0+P+7r6AAlxIQANFvQf7Lhif/WGwx/4MaR//dG9f+aGld/x/sH/6HANP/j39uAdRJ5QDpQ6f+wwHQ/4QR3f8z2VoAQ+sy/9/SjwCzNYIB6WrGANmt3P9w5Rj/r5pd/kfL9v8wQoX/A4jm/xfdcf7rb9UAqnhf/vvdAgAtgp7+aV7Z//I0tP7VRC3/aCYcAPSeTAChyGD/zzUN/7tDlACqNvgAd6Ky/1MUCwAqKsABkp+j/7fobwBN5RX/RzWPABtMIgD2iC//2ye2/1zgyQETjg7/Rbbx/6N29QAJbWoBqrX3/04v7v9U0rD/1WuLACcmCwBIFZYASIJFAM1Nm/6OhRUAR2+s/uIqO/+zANcBIYDxAOr8DQG4TwgAbh5J//aNvQCqz9oBSppF/4r2Mf+bIGQAfUpp/1pVPf8j5bH/Pn3B/5lWvAFJeNQA0Xv2/ofRJv+XOiwBXEXW/w4MWP/8mab//c9w/zxOU//jfG4AtGD8/zV1If6k3FL/KQEb/yakpv+kY6n+PZBG/8CmEgBr+kIAxUEyAAGzEv//aAH/K5kj/1BvqABur6gAKWkt/9sOzf+k6Yz+KwF2AOlDwwCyUp//ild6/9TuWv+QI3z+GYykAPvXLP6FRmv/ZeNQ/lypNwDXKjEAcrRV/yHoGwGs1RkAPrB7/iCFGP/hvz4AXUaZALUqaAEWv+D/yMiM//nqJQCVOY0AwzjQ//6CRv8grfD/HdzHAG5kc/+E5fkA5Onf/yXY0f6ysdH/ty2l/uBhcgCJYaj/4d6sAKUNMQHS68z//AQc/kaglwDovjT+U/hd/z7XTQGvr7P/oDJCAHkw0AA/qdH/ANLIAOC7LAFJolIACbCP/xNMwf8dO6cBGCuaABy+vgCNvIEA6OvL/+oAbf82QZ8APFjo/3n9lv786YP/xm4pAVNNR//IFjv+av3y/xUMz//tQr0AWsbKAeGsfwA1FsoAOOaEAAFWtwBtvioA80SuAW3kmgDIsXoBI6C3/7EwVf9a2qn/+JhOAMr+bgAGNCsAjmJB/z+RFgBGal0A6IprAW6zPf/TgdoB8tFcACNa2QG2j2r/dGXZ/3L63f+tzAYAPJajAEmsLP/vblD/7UyZ/qGM+QCV6OUAhR8o/66kdwBxM9YAgeQC/kAi8wBr4/T/rmrI/1SZRgEyIxAA+krY/uy9Qv+Z+Q0A5rIE/90p7gB243n/XleM/v53XABJ7/b+dVeAABPTkf+xLvwA5Vv2AUWA9//KTTYBCAsJ/5lgpgDZ1q3/hsACAQDPAAC9rmsBjIZkAJ7B8wG2ZqsA65ozAI4Fe/88qFkB2Q5c/xPWBQHTp/4ALAbK/ngS7P8Pcbj/uN+LACixd/62e1r/sKWwAPdNwgAb6ngA5wDW/zsnHgB9Y5H/lkREAY3e+ACZe9L/bn+Y/+Uh1gGH3cUAiWECAAyPzP9RKbwAc0+C/14DhACYr7v/fI0K/37As/8LZ8YAlQYtANtVuwHmErL/SLaYAAPGuP+AcOABYaHmAP5jJv86n8UAl0LbADtFj/+5cPkAd4gv/3uChACoR1//cbAoAei5rQDPXXUBRJ1s/2YFk/4xYSEAWUFv/vceo/982d0BZvrYAMauS/45NxIA4wXsAeXVrQDJbdoBMenvAB43ngEZsmoAm2+8AV5+jADXH+4BTfAQANXyGQEmR6gAzbpd/jHTjP/bALT/hnalAKCThv9uuiP/xvMqAPOSdwCG66MBBPGH/8Euwf5ntE//4QS4/vJ2ggCSh7AB6m8eAEVC1f4pYHsAeV4q/7K/w/8ugioAdVQI/+kx1v7uem0ABkdZAezTewD0DTD+d5QOAHIcVv9L7Rn/keUQ/oFkNf+Glnj+qJ0yABdIaP/gMQ4A/3sW/5e5l/+qULgBhrYUAClkZQGZIRAATJpvAVbO6v/AoKT+pXtd/wHYpP5DEa//qQs7/54pPf9JvA7/wwaJ/xaTHf8UZwP/9oLj/3oogADiLxj+IyQgAJi6t/9FyhQAw4XDAN4z9wCpq14BtwCg/0DNEgGcUw//xTr5/vtZbv8yClj+MyvYAGLyxgH1l3EAq+zCAcUfx//lUSYBKTsUAP1o5gCYXQ7/9vKS/tap8P/wZmz+oKfsAJravACW6cr/GxP6AQJHhf+vDD8BkbfGAGh4c/+C+/cAEdSn/z57hP/3ZL0Am9+YAI/FIQCbOyz/ll3wAX8DV/9fR88Bp1UB/7yYdP8KFxcAicNdATZiYQDwAKj/lLx/AIZrlwBM/asAWoTAAJIWNgDgQjb+5rrl/ye2xACU+4L/QYNs/oABoACpMaf+x/6U//sGgwC7/oH/VVI+ALIXOv/+hAUApNUnAIb8kv4lNVH/m4ZSAM2n7v9eLbT/hCihAP5vcAE2S9kAs+bdAetev/8X8zABypHL/yd2Kv91jf0A/gDeACv7MgA2qeoBUETQAJTL8/6RB4cABv4AAPy5fwBiCIH/JiNI/9Mk3AEoGlkAqEDF/gPe7/8CU9f+tJ9pADpzwgC6dGr/5ffb/4F2wQDKrrcBpqFIAMlrk/7tiEoA6eZqAWlvqABA4B4BAeUDAGaXr//C7uT//vrUALvteQBD+2ABxR4LALdfzADNWYoAQN0lAf/fHv+yMNP/8cha/6fRYP85gt0ALnLI/z24QgA3thj+brYhAKu+6P9yXh8AEt0IAC/n/gD/cFMAdg/X/60ZKP7AwR//7hWS/6vBdv9l6jX+g9RwAFnAawEI0BsAtdkP/+eV6ACM7H4AkAnH/wxPtf6Ttsr/E222/zHU4QBKo8sAr+mUABpwMwDBwQn/D4f5AJbjggDMANsBGPLNAO7Qdf8W9HAAGuUiACVQvP8mLc7+8Frh/x0DL/8q4EwAuvOnACCED/8FM30Ai4cYAAbx2wCs5YX/9tYyAOcLz/+/flMBtKOq//U4GAGypNP/AxDKAWI5dv+Ng1n+ITMYAPOVW//9NA4AI6lD/jEeWP+zGyT/pYy3ADq9lwBYHwAAS6lCAEJlx/8Y2McBecQa/w5Py/7w4lH/XhwK/1PB8P/MwYP/Xg9WANoonQAzwdEAAPKxAGa59wCebXQAJodbAN+vlQDcQgH/VjzoABlgJf/heqIB17uo/56dLgA4q6IA6PBlAXoWCQAzCRX/NRnu/9ke6P59qZQADehmAJQJJQClYY0B5IMpAN4P8//+EhEABjztAWoDcQA7hL0AXHAeAGnQ1QAwVLP/u3nn/hvYbf+i3Wv+Se/D//ofOf+Vh1n/uRdzAQOjnf8ScPoAGTm7/6FgpAAvEPMADI37/kPquP8pEqEArwZg/6CsNP4YsLf/xsFVAXx5if+XMnL/3Ms8/8/vBQEAJmv/N+5e/kaYXgDV3E0BeBFF/1Wkvv/L6lEAJjEl/j2QfACJTjH+qPcwAF+k/ABpqYcA/eSGAECmSwBRSRT/z9IKAOpqlv9eIlr//p85/tyFYwCLk7T+GBe5ACk5Hv+9YUwAQbvf/+CsJf8iPl8B55DwAE1qfv5AmFsAHWKbAOL7Nf/q0wX/kMve/6Sw3f4F5xgAs3rNACQBhv99Rpf+YeT8AKyBF/4wWtH/luBSAVSGHgDxxC4AZ3Hq/y5lef4ofPr/hy3y/gn5qP+MbIP/j6OrADKtx/9Y3o7/yF+eAI7Ao/8HdYcAb3wWAOwMQf5EJkH/467+APT1JgDwMtD/oT/6ADzR7wB6IxMADiHm/gKfcQBqFH//5M1gAInSrv601JD/WWKaASJYiwCnonABQW7FAPElqQBCOIP/CslT/oX9u/+xcC3+xPsAAMT6l//u6Nb/ltHNABzwdgBHTFMB7GNbACr6gwFgEkD/dt4jAHHWy/96d7j/QhMkAMxA+QCSWYsAhj6HAWjpZQC8VBoAMfmBANDWS//Pgk3/c6/rAKsCif+vkboBN/WH/5pWtQFkOvb/bcc8/1LMhv/XMeYBjOXA/97B+/9RiA//s5Wi/xcnHf8HX0v+v1HeAPFRWv9rMcn/9NOdAN6Mlf9B2zj+vfZa/7I7nQEw2zQAYiLXABwRu/+vqRgAXE+h/+zIwgGTj+oA5eEHAcWoDgDrMzUB/XiuAMUGqP/KdasAoxXOAHJVWv8PKQr/whNjAEE32P6iknQAMs7U/0CSHf+enoMBZKWC/6wXgf99NQn/D8ESARoxC/+1rskBh8kO/2QTlQDbYk8AKmOP/mAAMP/F+VP+aJVP/+tuiP5SgCz/QSkk/ljTCgC7ebsAYobHAKu8s/7SC+7/QnuC/jTqPQAwcRf+BlZ4/3ey9QBXgckA8o3RAMpyVQCUFqEAZ8MwABkxq/+KQ4IAtkl6/pQYggDT5ZoAIJueAFRpPQCxwgn/pllWATZTuwD5KHX/bQPX/zWSLAE/L7MAwtgD/g5UiACIsQ3/SPO6/3URff/TOtP/XU/fAFpY9f+L0W//Rt4vAAr2T//G2bIA4+ELAU5+s/8+K34AZ5QjAIEIpf718JQAPTOOAFHQhgAPiXP/03fs/5/1+P8Choj/5os6AaCk/gByVY3/Maa2/5BGVAFVtgcALjVdAAmmof83orL/Lbi8AJIcLP6pWjEAeLLxAQ57f/8H8ccBvUIy/8aPZf6984f/jRgY/kthVwB2+5oB7TacAKuSz/+DxPb/iEBxAZfoOQDw2nMAMT0b/0CBSQH8qRv/KIQKAVrJwf/8efABus4pACvGYQCRZLcAzNhQ/qyWQQD55cT+aHtJ/01oYP6CtAgAaHs5ANzK5f9m+dMAVg7o/7ZO0QDv4aQAag0g/3hJEf+GQ+kAU/61ALfscAEwQIP/8djz/0HB4gDO8WT+ZIam/+3KxQA3DVEAIHxm/yjksQB2tR8B56CG/3e7ygAAjjz/gCa9/6bJlgDPeBoBNrisAAzyzP6FQuYAIiYfAbhwUAAgM6X+v/M3ADpJkv6bp83/ZGiY/8X+z/+tE/cA7grKAO+X8gBeOyf/8B1m/wpcmv/lVNv/oYFQANBazAHw267/nmaRATWyTP80bKgBU95rANMkbQB2OjgACB0WAO2gxwCq0Z0AiUcvAI9WIADG8gIA1DCIAVysugDml2kBYL/lAIpQv/7w2IL/YisG/qjEMQD9ElsBkEl5AD2SJwE/aBj/uKVw/n7rYgBQ1WL/ezxX/1KM9QHfeK3/D8aGAc487wDn6lz/Ie4T/6VxjgGwdyYAoCum/u9baQBrPcIBGQREAA+LMwCkhGr/InQu/qhfxQCJ1BcASJw6AIlwRf6WaZr/7MmdABfUmv+IUuP+4jvd/1+VwABRdjT/ISvXAQ6TS/9ZnHn+DhJPAJPQiwGX2j7/nFgIAdK4Yv8Ur3v/ZlPlANxBdAGW+gT/XI7c/yL3Qv/M4bP+l1GXAEco7P+KPz4ABk/w/7e5tQB2MhsAP+PAAHtjOgEy4Jv/EeHf/tzgTf8OLHsBjYCvAPjUyACWO7f/k2EdAJbMtQD9JUcAkVV3AJrIugACgPn/Uxh8AA5XjwCoM/UBfJfn/9DwxQF8vrkAMDr2ABTp6AB9EmL/Df4f//Wxgv9sjiMAq33y/owMIv+loaIAzs1lAPcZIgFkkTkAJ0Y5AHbMy//yAKIApfQeAMZ04gCAb5n/jDa2ATx6D/+bOjkBNjLGAKvTHf9riqf/rWvH/22hwQBZSPL/znNZ//r+jv6xyl7/UVkyAAdpQv8Z/v/+y0AX/0/ebP8n+UsA8XwyAO+YhQDd8WkAk5diANWhef7yMYkA6SX5/iq3GwC4d+b/2SCj/9D75AGJPoP/T0AJ/l4wcQARijL+wf8WAPcSxQFDN2gAEM1f/zAlQgA3nD8BQFJK/8g1R/7vQ30AGuDeAN+JXf8e4Mr/CdyEAMYm6wFmjVYAPCtRAYgcGgDpJAj+z/KUAKSiPwAzLuD/cjBP/wmv4gDeA8H/L6Do//9daf4OKuYAGopSAdAr9AAbJyb/YtB//0CVtv8F+tEAuzwc/jEZ2v+pdM3/dxJ4AJx0k/+ENW3/DQrKAG5TpwCd24n/BgOC/zKnHv88ny//gYCd/l4DvQADpkQAU9/XAJZawgEPqEEA41Mz/82rQv82uzwBmGYt/3ea4QDw94gAZMWy/4tH3//MUhABKc4q/5zA3f/Ye/T/2tq5/7u67//8rKD/wzQWAJCutf67ZHP/006w/xsHwQCT1Wj/WskK/1B7QgEWIboAAQdj/h7OCgDl6gUANR7SAIoI3P5HN6cASOFWAXa+vAD+wWUBq/ms/16et/5dAmz/sF1M/0ljT/9KQIH+9i5BAGPxf/72l2b/LDXQ/jtm6gCar6T/WPIgAG8mAQD/tr7/c7AP/qk8gQB67fEAWkw/AD5KeP96w24AdwSyAN7y0gCCIS7+nCgpAKeScAExo2//ebDrAEzPDv8DGcYBKevVAFUk1gExXG3/yBge/qjswwCRJ3wB7MOVAFokuP9DVar/JiMa/oN8RP/vmyP/NsmkAMQWdf8xD80AGOAdAX5xkAB1FbYAy5+NAN+HTQCw5rD/vuXX/2Mltf8zFYr/Gb1Z/zEwpf6YLfcAqmzeAFDKBQAbRWf+zBaB/7T8Pv7SAVv/km7+/9uiHADf/NUBOwghAM4Q9ACB0zAAa6DQAHA70QBtTdj+IhW5//ZjOP+zixP/uR0y/1RZEwBK+mL/4SrI/8DZzf/SEKcAY4RfASvmOQD+C8v/Y7w//3fB+/5QaTYA6LW9AbdFcP/Qq6X/L220/3tTpQCSojT/mgsE/5fjWv+SiWH+Pekp/14qN/9spOwAmET+AAqMg/8Kak/+856JAEOyQv6xe8b/Dz4iAMVYKv+VX7H/mADG/5X+cf/hWqP/fdn3ABIR4ACAQnj+wBkJ/zLdzQAx1EYA6f+kAALRCQDdNNv+rOD0/144zgHyswL/H1ukAeYuiv+95twAOS89/28LnQCxW5gAHOZiAGFXfgDGWZH/p09rAPlNoAEd6eb/lhVW/jwLwQCXJST+uZbz/+TUUwGsl7QAyambAPQ86gCO6wQBQ9o8AMBxSwF088//QaybAFEenP9QSCH+Eudt/45rFf59GoT/sBA7/5bJOgDOqckA0HniACisDv+WPV7/ODmc/408kf8tbJX/7pGb/9FVH/7ADNIAY2Jd/pgQlwDhudwAjess/6CsFf5HGh//DUBd/hw4xgCxPvgBtgjxAKZllP9OUYX/gd7XAbypgf/oB2EAMXA8/9nl+wB3bIoAJxN7/oMx6wCEVJEAguaU/xlKuwAF9Tb/udvxARLC5P/xymYAaXHKAJvrTwAVCbL/nAHvAMiUPQBz99L/Md2HADq9CAEjLgkAUUEF/zSeuf99dC7/SowN/9JcrP6TF0cA2eD9/nNstP+ROjD+27EY/5z/PAGak/IA/YZXADVL5QAww97/H68y/5zSeP/QI97/EvizAQIKZf+dwvj/nsxl/2j+xf9PPgQAsqxlAWCS+/9BCpwAAoml/3QE5wDy1wEAEyMd/yuhTwA7lfYB+0KwAMghA/9Qbo7/w6ERAeQ4Qv97L5H+hASkAEOurAAZ/XIAV2FXAfrcVABgW8j/JX07ABNBdgChNPH/7awG/7C///8BQYL+377mAGX95/+SI20A+h1NATEAEwB7WpsBFlYg/9rVQQBvXX8APF2p/wh/tgARug7+/Yn2/9UZMP5M7gD/+FxG/2PgiwC4Cf8BB6TQAM2DxgFX1scAgtZfAN2V3gAXJqv+xW7VACtzjP7XsXYAYDRCAXWe7QAOQLb/Lj+u/55fvv/hzbH/KwWO/6xj1P/0u5MAHTOZ/+R0GP4eZc8AE/aW/4bnBQB9huIBTUFiAOyCIf8Fbj4ARWx//wdxFgCRFFP+wqHn/4O1PADZ0bH/5ZTU/gODuAB1sbsBHA4f/7BmUAAyVJf/fR82/xWdhf8Ts4sB4OgaACJ1qv+n/Kv/SY3O/oH6IwBIT+wB3OUU/ynKrf9jTO7/xhbg/2zGw/8kjWAB7J47/2pkVwBu4gIA4+reAJpdd/9KcKT/Q1sC/xWRIf9m1on/r+Zn/qP2pgBd93T+p+Ac/9wCOQGrzlQAe+QR/xt4dwB3C5MBtC/h/2jIuf6lAnIATU7UAC2asf8YxHn+Up22AFoQvgEMk8UAX++Y/wvrRwBWknf/rIbWADyDxACh4YEAH4J4/l/IMwBp59L/OgmU/yuo3f987Y4AxtMy/i71ZwCk+FQAmEbQ/7R1sQBGT7kA80ogAJWczwDFxKEB9TXvAA9d9v6L8DH/xFgk/6ImewCAyJ0Brkxn/62pIv7YAav/cjMRAIjkwgBuljj+avafABO4T/+WTfD/m1CiAAA1qf8dl1YARF4QAFwHbv5idZX/+U3m//0KjADWfFz+I3brAFkwOQEWNaYAuJA9/7P/wgDW+D3+O272AHkVUf6mA+QAakAa/0Xohv/y3DX+LtxVAHGV9/9hs2f/vn8LAIfRtgBfNIEBqpDO/3rIzP+oZJIAPJCV/kY8KAB6NLH/9tNl/67tCAAHM3gAEx+tAH7vnP+PvcsAxIBY/+mF4v8efa3/yWwyAHtkO//+owMB3ZS1/9aIOf7etIn/z1g2/xwh+/9D1jQB0tBkAFGqXgCRKDUA4G/n/iMc9P/ix8P+7hHmANnZpP6pnd0A2i6iAcfPo/9sc6IBDmC7/3Y8TAC4n5gA0edH/iqkuv+6mTP+3au2/6KOrQDrL8EAB4sQAV+kQP8Q3aYA28UQAIQdLP9kRXX/POtY/ihRrQBHvj3/u1idAOcLFwDtdaQA4ajf/5pydP+jmPIBGCCqAH1icf6oE0wAEZ3c/ps0BQATb6H/R1r8/61u8AAKxnn//f/w/0J70gDdwtf+eaMR/+EHYwC+MbYAcwmFAegaiv/VRIQALHd6/7NiMwCVWmoARzLm/wqZdv+xRhkApVfNADeK6gDuHmEAcZvPAGKZfwAia9v+dXKs/0y0//7yObP/3SKs/jiiMf9TA///cd29/7wZ5P4QWFn/RxzG/hYRlf/zef7/a8pj/wnODgHcL5kAa4knAWExwv+VM8X+ujoL/2sr6AHIBg7/tYVB/t3kq/97PucB4+qz/yK91P70u/kAvg1QAYJZAQDfha0ACd7G/0J/SgCn2F3/m6jGAUKRAABEZi4BrFqaANiAS/+gKDMAnhEbAXzwMQDsyrD/l3zA/ybBvgBftj0Ao5N8//+lM/8cKBH+12BOAFaR2v4fJMr/VgkFAG8pyP/tbGEAOT4sAHW4DwEt8XQAmAHc/52lvAD6D4MBPCx9/0Hc+/9LMrgANVqA/+dQwv+IgX8BFRK7/y06of9HkyIArvkL/iONHQDvRLH/c246AO6+sQFX9ab/vjH3/5JTuP+tDif/ktdoAI7feACVyJv/1M+RARC12QCtIFf//yO1AHffoQHI317/Rga6/8BDVf8yqZgAkBp7/zjzs/4URIgAJ4y8/v3QBf/Ic4cBK6zl/5xouwCX+6cANIcXAJeZSACTxWv+lJ4F/+6PzgB+mYn/WJjF/gdEpwD8n6X/7042/xg/N/8m3l4A7bcM/87M0gATJ/b+HkrnAIdsHQGzcwAAdXZ0AYQG/P+RgaEBaUONAFIl4v/u4uT/zNaB/qJ7ZP+5eeoALWznAEIIOP+EiIAArOBC/q+dvADm3+L+8ttFALgOdwFSojgAcnsUAKJnVf8x72P+nIfXAG//p/4nxNYAkCZPAfmofQCbYZz/FzTb/5YWkAAslaX/KH+3AMRN6f92gdL/qofm/9Z3xgDp8CMA/TQH/3VmMP8VzJr/s4ix/xcCAwGVgln//BGfAUY8GgCQaxEAtL48/zi2O/9uRzb/xhKB/5XgV//fFZj/iha2//qczQDsLdD/T5TyAWVG0QBnTq4AZZCs/5iI7QG/wogAcVB9AZgEjQCbljX/xHT1AO9ySf4TUhH/fH3q/yg0vwAq0p7/m4SlALIFKgFAXCj/JFVN/7LkdgCJQmD+c+JCAG7wRf6Xb1AAp67s/+Nsa/+88kH/t1H/ADnOtf8vIrX/1fCeAUdLXwCcKBj/ZtJRAKvH5P+aIikA469LABXvwwCK5V8BTMAxAHV7VwHj4YIAfT4//wLGqwD+JA3+kbrOAJT/9P8jAKYAHpbbAVzk1ABcxjz+PoXI/8kpOwB97m3/tKPuAYx6UgAJFlj/xZ0v/5leOQBYHrYAVKFVALKSfACmpgf/FdDfAJy28gCbebkAU5yu/poQdv+6U+gB3zp5/x0XWAAjfX//qgWV/qQMgv+bxB0AoWCIAAcjHQGiJfsAAy7y/wDZvAA5ruIBzukCADm7iP57vQn/yXV//7okzADnGdgAUE5pABOGgf+Uy0QAjVF9/vilyP/WkIcAlzem/ybrWwAVLpoA3/6W/yOZtP99sB0BK2Ie/9h65v/poAwAObkM/vBxB/8FCRD+GltsAG3GywAIkygAgYbk/3y6KP9yYoT+poQXAGNFLAAJ8u7/uDU7AISBZv80IPP+k9/I/3tTs/6HkMn/jSU4AZc84/9aSZwBy6y7AFCXL/9eief/JL87/+HRtf9K19X+Bnaz/5k2wQEyAOcAaJ1IAYzjmv+24hD+YOFc/3MUqv4G+k4A+Eut/zVZBv8AtHYASK0BAEAIzgGuhd8AuT6F/9YLYgDFH9AAq6f0/xbntQGW2rkA96lhAaWL9/8veJUBZ/gzADxFHP4Zs8QAfAfa/jprUQC46Zz//EokAHa8QwCNXzX/3l6l/i49NQDOO3P/L+z6/0oFIAGBmu7/aiDiAHm7Pf8DpvH+Q6qs/x3Ysv8XyfwA/W7zAMh9OQBtwGD/NHPuACZ58//JOCEAwnaCAEtgGf+qHub+Jz/9ACQt+v/7Ae8AoNRcAS3R7QDzIVf+7VTJ/9QSnf7UY3//2WIQ/ous7wCoyYL/j8Gp/+6XwQHXaCkA7z2l/gID8gAWy7H+scwWAJWB1f4fCyn/AJ95/qAZcv+iUMgAnZcLAJqGTgHYNvwAMGeFAGncxQD9qE3+NbMXABh58AH/LmD/azyH/mLN+f8/+Xf/eDvT/3K0N/5bVe0AldRNAThJMQBWxpYAXdGgAEXNtv/0WisAFCSwAHp03QAzpycB5wE//w3FhgAD0SL/hzvKAKdkTgAv30wAuTw+ALKmewGEDKH/Pa4rAMNFkAB/L78BIixOADnqNAH/Fij/9l6SAFPkgAA8TuD/AGDS/5mv7ACfFUkAtHPE/oPhagD/p4YAnwhw/3hEwv+wxMb/djCo/12pAQBwyGYBShj+ABONBP6OPj8Ag7O7/02cm/93VqQAqtCS/9CFmv+Umzr/onjo/vzVmwDxDSoAXjKDALOqcACMU5f/N3dUAYwj7/+ZLUMB7K8nADaXZ/+eKkH/xO+H/lY1ywCVYS/+2CMR/0YDRgFnJFr/KBqtALgwDQCj29n/UQYB/92qbP7p0F0AZMn5/lYkI//Rmh4B48n7/wK9p/5kOQMADYApAMVkSwCWzOv/ka47AHj4lf9VN+EActI1/sfMdwAO90oBP/uBAENolwGHglAAT1k3/3Xmnf8ZYI8A1ZEFAEXxeAGV81//cioUAINIAgCaNRT/ST5tAMRmmAApDMz/eiYLAfoKkQDPfZQA9vTe/ykgVQFw1X4AovlWAUfGf/9RCRUBYicE/8xHLQFLb4kA6jvnACAwX//MH3IBHcS1/zPxp/5dbY4AaJAtAOsMtf80cKQATP7K/64OogA965P/K0C5/ul92QDzWKf+SjEIAJzMQgB81nsAJt12AZJw7AByYrEAl1nHAFfFcAC5laEALGClAPizFP+829j+KD4NAPOOjQDl487/rMoj/3Ww4f9SbiYBKvUO/xRTYQAxqwoA8nd4ABnoPQDU8JP/BHM4/5ER7/7KEfv/+RL1/2N17wC4BLP/9u0z/yXvif+mcKb/Ubwh/7n6jv82u60A0HDJAPYr5AFouFj/1DTE/zN1bP/+dZsALlsP/1cOkP9X48wAUxpTAZ9M4wCfG9UBGJdsAHWQs/6J0VIAJp8KAHOFyQDftpwBbsRd/zk86QAFp2n/msWkAGAiuv+ThSUB3GO+AAGnVP8UkasAwsX7/l9Ohf/8+PP/4V2D/7uGxP/YmaoAFHae/owBdgBWng8BLdMp/5MBZP5xdEz/039sAWcPMADBEGYBRTNf/2uAnQCJq+kAWnyQAWqhtgCvTOwByI2s/6M6aADptDT/8P0O/6Jx/v8m74r+NC6mAPFlIf6DupwAb9A+/3xeoP8frP4AcK44/7xjG/9DivsAfTqAAZyYrv+yDPf//FSeAFLFDv6syFP/JScuAWrPpwAYvSIAg7KQAM7VBACh4tIASDNp/2Etu/9OuN//sB37AE+gVv90JbIAUk3VAVJUjf/iZdQBr1jH//Ve9wGsdm3/prm+AIO1eABX/l3/hvBJ/yD1j/+Lomf/s2IS/tnMcACT33j/NQrzAKaMlgB9UMj/Dm3b/1vaAf/8/C/+bZx0/3MxfwHMV9P/lMrZ/xpV+f8O9YYBTFmp//It5gA7Yqz/ckmE/k6bMf+eflQAMa8r/xC2VP+dZyMAaMFt/0PdmgDJrAH+CKJYAKUBHf99m+X/HprcAWfvXADcAW3/ysYBAF4CjgEkNiwA6+Ke/6r71v+5TQkAYUryANujlf/wI3b/33JY/sDHAwBqJRj/yaF2/2FZYwHgOmf/ZceT/t48YwDqGTsBNIcbAGYDW/6o2OsA5eiIAGg8gQAuqO4AJ79DAEujLwCPYWL/ONioAajp/P8jbxb/XFQrABrIVwFb/ZgAyjhGAI4ITQBQCq8B/MdMABZuUv+BAcIAC4A9AVcOkf/93r4BD0iuAFWjVv46Yyz/LRi8/hrNDwAT5dL++EPDAGNHuACaxyX/l/N5/yYzS//JVYL+LEH6ADmT8/6SKzv/WRw1ACFUGP+zMxL+vUZTAAucswFihncAnm9vAHeaSf/IP4z+LQ0N/5rAAv5RSCoALqC5/ixwBgCS15UBGrBoAEQcVwHsMpn/s4D6/s7Bv/+mXIn+NSjvANIBzP6orSMAjfMtASQybf8P8sL/4596/7Cvyv5GOUgAKN84ANCiOv+3Yl0AD28MAB4ITP+Ef/b/LfJnAEW1D/8K0R4AA7N5APHo2gF7x1j/AtLKAbyCUf9eZdABZyQtAEzBGAFfGvH/paK7ACRyjADKQgX/JTiTAJgL8wF/Vej/+ofUAbmxcQBa3Ev/RfiSADJvMgBcFlAA9CRz/qNkUv8ZwQYBfz0kAP1DHv5B7Kr/oRHX/j+vjAA3fwQAT3DpAG2gKACPUwf/QRru/9mpjP9OXr3/AJO+/5NHuv5qTX//6Z3pAYdX7f/QDewBm20k/7Rk2gC0oxIAvm4JARE/e/+ziLT/pXt7/5C8Uf5H8Gz/GXAL/+PaM/+nMur/ck9s/x8Tc/+38GMA41eP/0jZ+P9mqV8BgZWVAO6FDAHjzCMA0HMaAWYI6gBwWI8BkPkOAPCerP5kcHcAwo2Z/ig4U/95sC4AKjVM/56/mgBb0VwArQ0QAQVI4v/M/pUAULjPAGQJev52Zav//MsA/qDPNgA4SPkBOIwN/wpAa/5bZTT/4bX4AYv/hADmkREA6TgXAHcB8f/VqZf/Y2MJ/rkPv/+tZ20Brg37/7JYB/4bO0T/CiEC//hhOwAaHpIBsJMKAF95zwG8WBgAuV7+/nM3yQAYMkYAeDUGAI5CkgDk4vn/aMDeAa1E2wCiuCT/j2aJ/50LFwB9LWIA613h/jhwoP9GdPMBmfk3/4EnEQHxUPQAV0UVAV7kSf9OQkH/wuPnAD2SV/+tmxf/cHTb/tgmC/+DuoUAXtS7AGQvWwDM/q//3hLX/q1EbP/j5E//Jt3VAKPjlv4fvhIAoLMLAQpaXv/crlgAo9Pl/8eINACCX93/jLzn/otxgP91q+z+MdwU/zsUq//kbbwAFOEg/sMQrgDj/ogBhydpAJZNzv/S7uIAN9SE/u85fACqwl3/+RD3/xiXPv8KlwoAT4uy/3jyygAa29UAPn0j/5ACbP/mIVP/US3YAeA+EQDW2X0AYpmZ/7Owav6DXYr/bT4k/7J5IP94/EYA3PglAMxYZwGA3Pv/7OMHAWoxxv88OGsAY3LuANzMXgFJuwEAWZoiAE7Zpf8Ow/n/Ceb9/82H9QAa/Af/VM0bAYYCcAAlniAA51vt/7+qzP+YB94AbcAxAMGmkv/oE7X/aY40/2cQGwH9yKUAw9kE/zS9kP97m6D+V4I2/054Pf8OOCkAGSl9/1eo9QDWpUYA1KkG/9vTwv5IXaT/xSFn/yuOjQCD4awA9GkcAERE4QCIVA3/gjko/otNOABUljUANl+dAJANsf5fc7oAdRd2//Sm8f8LuocAsmrL/2HaXQAr/S0ApJgEAIt27wBgARj+65nT/6huFP8y77AAcinoAMH6NQD+oG/+iHop/2FsQwDXmBf/jNHUACq9owDKKjL/amq9/75E2f/pOnUA5dzzAcUDBAAleDb+BJyG/yQ9q/6liGT/1OgOAFquCgDYxkH/DANAAHRxc//4ZwgA530S/6AcxQAeuCMB30n5/3sULv6HOCX/rQ3lAXehIv/1PUkAzX1wAIlohgDZ9h7/7Y6PAEGfZv9spL4A23Wt/yIleP7IRVAAH3za/koboP+6msf/R8f8AGhRnwERyCcA0z3AARruWwCU2QwAO1vV/wtRt/+B5nr/csuRAXe0Qv9IirQA4JVqAHdSaP/QjCsAYgm2/81lhv8SZSYAX8Wm/8vxkwA+0JH/hfb7AAKpDgAN97gAjgf+ACTIF/9Yzd8AW4E0/xW6HgCP5NIB9+r4/+ZFH/6wuof/7s00AYtPKwARsNn+IPNDAPJv6QAsIwn/43JRAQRHDP8mab8AB3Uy/1FPEAA/REH/nSRu/03xA//iLfsBjhnOAHh70QEc/u7/BYB+/1ve1/+iD78AVvBJAIe5Uf4s8aMA1NvS/3CimwDPZXYAqEg4/8QFNABIrPL/fhad/5JgO/+ieZj+jBBfAMP+yP5SlqIAdyuR/sysTv+m4J8AaBPt//V+0P/iO9UAddnFAJhI7QDcHxf+Dlrn/7zUQAE8Zfb/VRhWAAGxbQCSUyABS7bAAHfx4AC57Rv/uGVSAeslTf/9hhMA6PZ6ADxqswDDCwwAbULrAX1xOwA9KKQAr2jwAAIvu/8yDI0Awou1/4f6aABhXN7/2ZXJ/8vxdv9Pl0MAeo7a/5X17wCKKsj+UCVh/3xwp/8kilf/gh2T//FXTv/MYRMBsdEW//fjf/5jd1P/1BnGARCzswCRTaz+WZkO/9q9pwBr6Tv/IyHz/ixwcP+hf08BzK8KACgViv5odOQAx1+J/4W+qP+SpeoBt2MnALfcNv7/3oUAott5/j/vBgDhZjb/+xL2AAQigQGHJIMAzjI7AQ9htwCr2If/ZZgr/5b7WwAmkV8AIswm/rKMU/8ZgfP/TJAlAGokGv52kKz/RLrl/2uh1f8uo0T/lar9ALsRDwDaoKX/qyP2AWANEwCly3UA1mvA//R7sQFkA2gAsvJh//tMgv/TTSoB+k9G/z/0UAFpZfYAPYg6Ae5b1QAOO2L/p1RNABGELv45r8X/uT64AExAzwCsr9D+r0olAIob0/6UfcIACllRAKjLZf8r1dEB6/U2AB4j4v8JfkYA4n1e/px1FP85+HAB5jBA/6RcpgHg1ub/JHiPADcIK//7AfUBamKlAEprav41BDb/WrKWAQN4e//0BVkBcvo9//6ZUgFNDxEAOe5aAV/f5gDsNC/+Z5Sk/3nPJAESELn/SxRKALsLZQAuMIH/Fu/S/03sgf9vTcz/PUhh/8fZ+/8q18wAhZHJ/znmkgHrZMYAkkkj/mzGFP+2T9L/UmeIAPZssAAiETz/E0py/qiqTv+d7xT/lSmoADp5HABPs4b/53mH/67RYv/zer4Aq6bNANR0MAAdbEL/ot62AQ53FQDVJ/n//t/k/7elxgCFvjAAfNBt/3evVf8J0XkBMKu9/8NHhgGI2zP/tluN/jGfSAAjdvX/cLrj/zuJHwCJLKMAcmc8/gjVlgCiCnH/wmhIANyDdP+yT1wAy/rV/l3Bvf+C/yL+1LyXAIgRFP8UZVP/1M6mAOXuSf+XSgP/qFfXAJu8hf+mgUkA8E+F/7LTUf/LSKP+wailAA6kx/4e/8wAQUhbAaZKZv/IKgD/wnHj/0IX0ADl2GT/GO8aAArpPv97CrIBGiSu/3fbxwEto74AEKgqAKY5xv8cGhoAfqXnAPtsZP895Xn/OnaKAEzPEQANInD+WRCoACXQaf8jydf/KGpl/gbvcgAoZ+L+9n9u/z+nOgCE8I4ABZ5Y/4FJnv9eWZIA5jaSAAgtrQBPqQEAc7r3AFRAgwBD4P3/z71AAJocUQEtuDb/V9Tg/wBgSf+BIesBNEJQ//uum/8EsyUA6qRd/l2v/QDGRVf/4GouAGMd0gA+vHL/LOoIAKmv9/8XbYn/5bYnAMClXv71ZdkAv1hgAMReY/9q7gv+NX7zAF4BZf8ukwIAyXx8/40M2gANpp0BMPvt/5v6fP9qlJL/tg3KABw9pwDZmAj+3IIt/8jm/wE3QVf/Xb9h/nL7DgAgaVwBGs+NABjPDf4VMjD/upR0/9Mr4QAlIqL+pNIq/0QXYP+21gj/9XWJ/0LDMgBLDFP+UIykAAmlJAHkbuMA8RFaARk01AAG3wz/i/M5AAxxSwH2t7//1b9F/+YPjgABw8T/iqsv/0A/agEQqdb/z644AVhJhf+2hYwAsQ4Z/5O4Nf8K46H/eNj0/0lN6QCd7osBO0HpAEb72AEpuJn/IMtwAJKT/QBXZW0BLFKF//SWNf9emOj/O10n/1iT3P9OUQ0BIC/8/6ATcv9dayf/dhDTAbl30f/j23/+WGns/6JuF/8kpm7/W+zd/0LqdABvE/T+CukaACC3Bv4Cv/IA2pw1/ik8Rv+o7G8Aebl+/+6Oz/83fjQA3IHQ/lDMpP9DF5D+2ihs/3/KpADLIQP/Ap4AACVgvP/AMUoAbQQAAG+nCv5b2of/y0Kt/5bC4gDJ/Qb/rmZ5AM2/bgA1wgQAUSgt/iNmj/8MbMb/EBvo//xHugGwbnIAjgN1AXFNjgATnMUBXC/8ADXoFgE2EusALiO9/+zUgQACYND+yO7H/zuvpP+SK+cAwtk0/wPfDACKNrL+VevPAOjPIgAxNDL/pnFZ/wot2P8+rRwAb6X2AHZzW/+AVDwAp5DLAFcN8wAWHuQBsXGS/4Gq5v78mYH/keErAEbnBf96aX7+VvaU/24lmv7RA1sARJE+AOQQpf833fn+stJbAFOS4v5FkroAXdJo/hAZrQDnuiYAvXqM//sNcP9pbl0A+0iqAMAX3/8YA8oB4V3kAJmTx/5tqhYA+GX2/7J8DP+y/mb+NwRBAH3WtAC3YJMALXUX/oS/+QCPsMv+iLc2/5LqsQCSZVb/LHuPASHRmADAWin+Uw99/9WsUgDXqZAAEA0iACDRZP9UEvkBxRHs/9m65gAxoLD/b3Zh/+1o6wBPO1z+RfkL/yOsSgETdkQA3nyl/7RCI/9WrvYAK0pv/36QVv/k6lsA8tUY/kUs6//ctCMACPgH/2YvXP/wzWb/cearAR+5yf/C9kb/ehG7AIZGx/+VA5b/dT9nAEFoe//UNhMBBo1YAFOG8/+INWcAqRu0ALExGABvNqcAwz3X/x8BbAE8KkYAuQOi/8KVKP/2fyb+vncm/z13CAFgodv/KsvdAbHypP/1nwoAdMQAAAVdzf6Af7MAfe32/5Wi2f9XJRT+jO7AAAkJwQBhAeIAHSYKAACIP//lSNL+JoZc/07a0AFoJFT/DAXB//KvPf+/qS4Bs5OT/3G+i/59rB8AA0v8/tckDwDBGxgB/0WV/26BdgDLXfkAiolA/iZGBgCZdN4AoUp7AMFjT/92O17/PQwrAZKxnQAuk78AEP8mAAszHwE8OmL/b8JNAZpb9ACMKJABrQr7AMvRMv5sgk4A5LRaAK4H+gAfrjwAKaseAHRjUv92wYv/u63G/tpvOAC5e9gA+Z40ADS0Xf/JCVv/OC2m/oSby/866G4ANNNZ//0AogEJV7cAkYgsAV569QBVvKsBk1zGAAAIaAAeX64A3eY0Aff36/+JrjX/IxXM/0fj1gHoUsIACzDj/6pJuP/G+/z+LHAiAINlg/9IqLsAhId9/4poYf/uuKj/82hU/4fY4v+LkO0AvImWAVA4jP9Wqaf/wk4Z/9wRtP8RDcEAdYnU/43glwAx9K8AwWOv/xNjmgH/QT7/nNI3//L0A//6DpUAnljZ/53Phv776BwALpz7/6s4uP/vM+oAjoqD/xn+8wEKycIAP2FLANLvogDAyB8BddbzABhH3v42KOj/TLdv/pAOV//WT4j/2MTUAIQbjP6DBf0AfGwT/xzXSwBM3jf+6bY/AESrv/40b97/CmlN/1Cq6wCPGFj/Led5AJSB4AE99lQA/S7b/+9MIQAxlBL+5iVFAEOGFv6Om14AH53T/tUqHv8E5Pf+/LAN/ycAH/7x9P//qi0K/v3e+QDecoQA/y8G/7SjswFUXpf/WdFS/uU0qf/V7AAB1jjk/4d3l/9wycEAU6A1/gaXQgASohEA6WFbAIMFTgG1eDX/dV8//+11uQC/foj/kHfpALc5YQEvybv/p6V3AS1kfgAVYgb+kZZf/3g2mADRYmgAj28e/riU+QDr2C4A+MqU/zlfFgDy4aMA6ffo/0erE/9n9DH/VGdd/0R59AFS4A0AKU8r//nOp//XNBX+wCAW//dvPABlSib/FltU/h0cDf/G59f+9JrIAN+J7QDThA4AX0DO/xE+9//pg3kBXRdNAM3MNP5RvYgAtNuKAY8SXgDMK4z+vK/bAG9ij/+XP6L/0zJH/hOSNQCSLVP+slLu/xCFVP/ixl3/yWEU/3h2I/9yMuf/ouWc/9MaDAByJ3P/ztSGAMXZoP90gV7+x9fb/0vf+QH9dLX/6Ndo/+SC9v+5dVYADgUIAO8dPQHtV4X/fZKJ/syo3wAuqPUAmmkWANzUof9rRRj/idq1//FUxv+CetP/jQiZ/76xdgBgWbIA/xAw/npgaf91Nuj/In5p/8xDpgDoNIr/05MMABk2BwAsD9f+M+wtAL5EgQFqk+EAHF0t/uyND/8RPaEA3HPAAOyRGP5vqKkA4Do//3+kvABS6ksB4J6GANFEbgHZptkARuGmAbvBj/8QB1j/Cs2MAHXAnAEROCYAG3xsAavXN/9f/dQAm4eo//aymf6aREoA6D1g/mmEOwAhTMcBvbCC/wloGf5Lxmb/6QFwAGzcFP9y5kYAjMKF/zmepP6SBlD/qcRhAVW3ggBGnt4BO+3q/2AZGv/or2H/C3n4/lgjwgDbtPz+SgjjAMPjSQG4bqH/MemkAYA1LwBSDnn/wb46ADCudf+EFyAAKAqGARYzGf/wC7D/bjmSAHWP7wGdZXb/NlRMAM24Ev8vBEj/TnBV/8EyQgFdEDT/CGmGAAxtSP86nPsAkCPMACygdf4ya8IAAUSl/29uogCeUyj+TNbqADrYzf+rYJP/KONyAbDj8QBG+bcBiFSL/zx69/6PCXX/sa6J/kn3jwDsuX7/Phn3/y1AOP+h9AYAIjk4AWnKUwCAk9AABmcK/0qKQf9hUGT/1q4h/zKGSv9ul4L+b1SsAFTHS/74O3D/CNiyAQm3XwDuGwj+qs3cAMPlhwBiTO3/4lsaAVLbJ//hvscB2ch5/1GzCP+MQc4Ass9X/vr8Lv9oWW4B/b2e/5DWnv+g9Tb/NbdcARXIwv+SIXEB0QH/AOtqK/+nNOgAneXdADMeGQD63RsBQZNX/097xABBxN//TCwRAVXxRADKt/n/QdTU/wkhmgFHO1AAr8I7/41ICQBkoPQA5tA4ADsZS/5QwsIAEgPI/qCfcwCEj/cBb105/zrtCwGG3of/eqNsAXsrvv/7vc7+ULZI/9D24AERPAkAoc8mAI1tWwDYD9P/iE5uAGKjaP8VUHn/rbK3AX+PBABoPFL+1hAN/2DuIQGelOb/f4E+/zP/0v8+jez+nTfg/3In9ADAvPr/5Ew1AGJUUf+tyz3+kzI3/8zrvwA0xfQAWCvT/hu/dwC855oAQlGhAFzBoAH643gAezfiALgRSACFqAr+Foec/ykZZ/8wyjoAupVR/7yG7wDrtb3+2Yu8/0owUgAu2uUAvf37ADLlDP/Tjb8BgPQZ/6nnev5WL73/hLcX/yWylv8zif0AyE4fABZpMgCCPAAAhKNb/hfnuwDAT+8AnWak/8BSFAEYtWf/8AnqAAF7pP+F6QD/yvLyADy69QDxEMf/4HSe/r99W//gVs8AeSXn/+MJxv8Pme//eejZ/ktwUgBfDDn+M9Zp/5TcYQHHYiQAnNEM/grUNADZtDf+1Kro/9gUVP+d+ocAnWN//gHOKQCVJEYBNsTJ/1d0AP7rq5YAG6PqAMqHtADQXwD+e5xdALc+SwCJ67YAzOH//9aL0v8Ccwj/HQxvADScAQD9Ffv/JaUf/gyC0wBqEjX+KmOaAA7ZPf7YC1z/yMVw/pMmxwAk/Hj+a6lNAAF7n//PS2YAo6/EACwB8AB4urD+DWJM/+188f/okrz/yGDgAMwfKQDQyA0AFeFg/6+cxAD30H4APrj0/gKrUQBVc54ANkAt/xOKcgCHR80A4y+TAdrnQgD90RwA9A+t/wYPdv4QltD/uRYy/1Zwz/9LcdcBP5Ir/wThE/7jFz7/Dv/W/i0Izf9XxZf+0lLX//X49/+A+EYA4fdXAFp4RgDV9VwADYXiAC+1BQFco2n/Bh6F/uiyPf/mlRj/EjGeAORkPf508/v/TUtcAVHbk/9Mo/7+jdX2AOglmP5hLGQAySUyAdT0OQCuq7f/+UpwAKacHgDe3WH/811J/vtlZP/Y2V3//oq7/46+NP87y7H/yF40AHNynv+lmGgBfmPi/3ad9AFryBAAwVrlAHkGWACcIF3+ffHT/w7tnf+lmhX/uOAW//oYmP9xTR8A96sX/+2xzP80iZH/wrZyAODqlQAKb2cByYEEAO6OTgA0Bij/btWl/jzP/QA+10UAYGEA/zEtygB4eRb/64swAcYtIv+2MhsBg9Jb/y42gACve2n/xo1O/kP07//1Nmf+Tiby/wJc+f77rlf/iz+QABhsG/8iZhIBIhaYAELldv4yj2MAkKmVAXYemACyCHkBCJ8SAFpl5v+BHXcARCQLAei3NwAX/2D/oSnB/z+L3gAPs/MA/2QP/1I1hwCJOZUBY/Cq/xbm5P4xtFL/PVIrAG712QDHfT0ALv00AI3F2wDTn8EAN3lp/rcUgQCpd6r/y7KL/4cotv+sDcr/QbKUAAjPKwB6NX8BSqEwAOPWgP5WC/P/ZFYHAfVEhv89KxUBmFRe/748+v7vduj/1oglAXFMa/9daGQBkM4X/26WmgHkZ7kA2jEy/odNi/+5AU4AAKGU/2Ed6f/PlJX/oKgAAFuAq/8GHBP+C2/3ACe7lv+K6JUAdT5E/z/YvP/r6iD+HTmg/xkM8QGpPL8AIION/+2fe/9exV7+dP4D/1yzYf55YVz/qnAOABWV+AD44wMAUGBtAEvASgEMWuL/oWpEAdByf/9yKv/+ShpK//ezlv55jDwAk0bI/9Yoof+hvMn/jUGH//Jz/AA+L8oAtJX//oI37QClEbr/CqnCAJxt2v9wjHv/aIDf/rGObP95Jdv/gE0S/29sFwFbwEsArvUW/wTsPv8rQJkB463+AO16hAF/Wbr/jlKA/vxUrgBas7EB89ZX/2c8ov/Qgg7/C4KLAM6B2/9e2Z3/7+bm/3Rzn/6ka18AM9oCAdh9xv+MyoD+C19E/zcJXf6umQb/zKxgAEWgbgDVJjH+G1DVAHZ9cgBGRkP/D45J/4N6uf/zFDL+gu0oANKfjAHFl0H/VJlCAMN+WgAQ7uwBdrtm/wMYhf+7ReYAOMVcAdVFXv9QiuUBzgfmAN5v5gFb6Xf/CVkHAQJiAQCUSoX/M/a0/+SxcAE6vWz/wsvt/hXRwwCTCiMBVp3iAB+ji/44B0v/Plp0ALU8qQCKotT+UacfAM1acP8hcOMAU5d1AbHgSf+ukNn/5sxP/xZN6P9yTuoA4Dl+/gkxjQDyk6UBaLaM/6eEDAF7RH8A4VcnAftsCADGwY8BeYfP/6wWRgAyRHT/Za8o//hp6QCmywcAbsXaANf+Gv6o4v0AH49gAAtnKQC3gcv+ZPdK/9V+hADSkywAx+obAZQvtQCbW54BNmmv/wJOkf5mml8AgM9//jR87P+CVEcA3fPTAJiqzwDeascAt1Re/lzIOP+KtnMBjmCSAIWI5ABhEpYAN/tCAIxmBADKZ5cAHhP4/zO4zwDKxlkAN8Xh/qlf+f9CQUT/vOp+AKbfZAFw7/QAkBfCADontgD0LBj+r0Sz/5h2mgGwooIA2XLM/q1+Tv8h3h7/JAJb/wKP8wAJ69cAA6uXARjX9f+oL6T+8ZLPAEWBtABE83EAkDVI/vstDgAXbqgARERP/25GX/6uW5D/Ic5f/4kpB/8Tu5n+I/9w/wmRuf4ynSUAC3AxAWYIvv/q86kBPFUXAEonvQB0Me8ArdXSAC6hbP+fliUAxHi5/yJiBv+Zwz7/YeZH/2Y9TAAa1Oz/pGEQAMY7kgCjF8QAOBg9ALViwQD7k+X/Yr0Y/y42zv/qUvYAt2cmAW0+zAAK8OAAkhZ1/46aeABF1CMA0GN2AXn/A/9IBsIAdRHF/30PFwCaT5kA1l7F/7k3k/8+/k7+f1KZAG5mP/9sUqH/abvUAVCKJwA8/13/SAy6ANL7HwG+p5D/5CwT/oBD6ADW+Wv+iJFW/4QusAC9u+P/0BaMANnTdAAyUbr+i/ofAB5AxgGHm2QAoM4X/rui0/8QvD8A/tAxAFVUvwDxwPL/mX6RAeqiov/mYdgBQId+AL6U3wE0ACv/HCe9AUCI7gCvxLkAYuLV/3+f9AHirzwAoOmOAbTzz/9FmFkBH2UVAJAZpP6Lv9EAWxl5ACCTBQAnunv/P3Pm/12nxv+P1dz/s5wT/xlCegDWoNn/Ai0+/2pPkv4ziWP/V2Tn/6+R6P9luAH/rgl9AFIloQEkco3/MN6O//W6mgAFrt3+P3Kb/4c3oAFQH4cAfvqzAezaLQAUHJEBEJNJAPm9hAERvcD/347G/0gUD//6Ne3+DwsSABvTcf7Vazj/rpOS/2B+MAAXwW0BJaJeAMed+f4YgLv/zTGy/l2kKv8rd+sBWLft/9rSAf9r/ioA5gpj/6IA4gDb7VsAgbLLANAyX/7O0F//979Z/m7qT/+lPfMAFHpw//b2uf5nBHsA6WPmAdtb/P/H3hb/s/Xp/9Px6gBv+sD/VVSIAGU6Mv+DrZz+dy0z/3bpEP7yWtYAXp/bAQMD6v9iTFz+UDbmAAXk5/41GN//cTh2ARSEAf+r0uwAOPGe/7pzE/8I5a4AMCwAAXJypv8GSeL/zVn0AInjSwH4rTgASnj2/ncDC/9ReMb/iHpi/5Lx3QFtwk7/3/FGAdbIqf9hvi//L2eu/2NcSP526bT/wSPp/hrlIP/e/MYAzCtH/8dUrACGZr4Ab+5h/uYo5gDjzUD+yAzhAKYZ3gBxRTP/j58YAKe4SgAd4HT+ntDpAMF0fv/UC4X/FjqMAcwkM//oHisA60a1/0A4kv6pElT/4gEN/8gysP801fX+qNFhAL9HNwAiTpwA6JA6AblKvQC6jpX+QEV//6HLk/+wl78AiOfL/qO2iQChfvv+6SBCAETPQgAeHCUAXXJgAf5c9/8sq0UAyncL/7x2MgH/U4j/R1IaAEbjAgAg63kBtSmaAEeG5f7K/yQAKZgFAJo/Sf8itnwAed2W/xrM1QEprFcAWp2S/22CFABHa8j/82a9AAHDkf4uWHUACM7jAL9u/f9tgBT+hlUz/4mxcAHYIhb/gxDQ/3mVqgByExcBplAf/3HwegDos/oARG60/tKqdwDfbKT/z0/p/xvl4v7RYlH/T0QHAIO5ZACqHaL/EaJr/zkVCwFkyLX/f0GmAaWGzABop6gAAaRPAJKHOwFGMoD/ZncN/uMGhwCijrP/oGTeABvg2wGeXcP/6o2JABAYff/uzi//YRFi/3RuDP9gc00AW+Po//j+T/9c5Qb+WMaLAM5LgQD6Tc7/jfR7AYpF3AAglwYBg6cW/+1Ep/7HvZYAo6uK/zO8Bv9fHYn+lOKzALVr0P+GH1L/l2Ut/4HK4QDgSJMAMIqX/8NAzv7t2p4Aah2J/v296f9nDxH/wmH/ALItqf7G4ZsAJzB1/4dqcwBhJrUAli9B/1OC5f72JoEAXO+a/ltjfwChbyH/7tny/4O5w//Vv57/KZbaAISpgwBZVPwBq0aA/6P4y/4BMrT/fExVAftvUABjQu//mu22/91+hf5KzGP/QZN3/2M4p/9P+JX/dJvk/+0rDv5FiQv/FvrxAVt6j//N+fMA1Bo8/zC2sAEwF7//y3mY/i1K1f8+WhL+9aPm/7lqdP9TI58ADCEC/1AiPgAQV67/rWVVAMokUf6gRcz/QOG7ADrOXgBWkC8A5Vb1AD+RvgElBScAbfsaAImT6gCieZH/kHTO/8Xouf+3voz/SQz+/4sU8v+qWu//YUK7//W1h/7eiDQA9QUz/ssvTgCYZdgASRd9AP5gIQHr0kn/K9FYAQeBbQB6aOT+qvLLAPLMh//KHOn/QQZ/AJ+QRwBkjF8ATpYNAPtrdgG2On3/ASZs/4290f8Im30BcaNb/3lPvv+G72z/TC/4AKPk7wARbwoAWJVL/9fr7wCnnxj/L5ds/2vRvADp52P+HMqU/64jiv9uGET/AkW1AGtmUgBm7QcAXCTt/92iUwE3ygb/h+qH/xj63gBBXqj+9fjS/6dsyf7/oW8AzQj+AIgNdABksIT/K9d+/7GFgv+eT5QAQ+AlAQzOFf8+Im4B7Wiv/1CEb/+OrkgAVOW0/mmzjABA+A//6YoQAPVDe/7aedT/P1/aAdWFif+PtlL/MBwLAPRyjQHRr0z/nbWW/7rlA/+knW8B572LAHfKvv/aakD/ROs//mAarP+7LwsB1xL7/1FUWQBEOoAAXnEFAVyB0P9hD1P+CRy8AO8JpAA8zZgAwKNi/7gSPADZtosAbTt4/wTA+wCp0vD/Jaxc/pTT9f+zQTQA/Q1zALmuzgFyvJX/7VqtACvHwP9YbHEANCNMAEIZlP/dBAf/l/Fy/77R6ABiMscAl5bV/xJKJAE1KAcAE4dB/xqsRQCu7VUAY18pAAM4EAAnoLH/yGra/rlEVP9buj3+Q4+N/w30pv9jcsYAx26j/8ESugB87/YBbkQWAALrLgHUPGsAaSppAQ7mmAAHBYMAjWia/9UDBgCD5KL/s2QcAed7Vf/ODt8B/WDmACaYlQFiiXoA1s0D/+KYs/8GhYkAnkWM/3Gimv+086z/G71z/48u3P/VhuH/fh1FALwriQHyRgkAWsz//+eqkwAXOBP+OH2d/zCz2v9Ptv3/JtS/ASnrfABglxwAh5S+AM35J/40YIj/1CyI/0PRg//8ghf/24AU/8aBdgBsZQsAsgWSAT4HZP+17F7+HBqkAEwWcP94Zk8AysDlAciw1wApQPT/zrhOAKctPwGgIwD/OwyO/8wJkP/bXuUBehtwAL1pbf9A0Er/+383AQLixgAsTNEAl5hN/9IXLgHJq0X/LNPnAL4l4P/1xD7/qbXe/yLTEQB38cX/5SOYARVFKP+y4qEAlLPBANvC/gEozjP/51z6AUOZqgAVlPEAqkVS/3kS5/9ccgMAuD7mAOHJV/+SYKL/tfLcAK273QHiPqr/OH7ZAXUN4/+zLO8AnY2b/5DdUwDr0dAAKhGlAftRhQB89cn+YdMY/1PWpgCaJAn/+C9/AFrbjP+h2Sb+1JM//0JUlAHPAwEA5oZZAX9Oev/gmwH/UohKALKc0P+6GTH/3gPSAeWWvv9VojT/KVSN/0l7VP5dEZYAdxMcASAW1/8cF8z/jvE0/+Q0fQAdTM8A16f6/q+k5gA3z2kBbbv1/6Es3AEpZYD/pxBeAF3Wa/92SAD+UD3q/3mvfQCLqfsAYSeT/vrEMf+ls27+30a7/xaOfQGas4r/drAqAQqumQCcXGYAqA2h/48QIAD6xbT/y6MsAVcgJAChmRT/e/wPABnjUAA8WI4AERbJAZrNTf8nPy8ACHqNAIAXtv7MJxP/BHAd/xckjP/S6nT+NTI//3mraP+g214AV1IO/ucqBQCli3/+Vk4mAII8Qv7LHi3/LsR6Afk1ov+Ij2f+19JyAOcHoP6pmCr/by32AI6Dh/+DR8z/JOILAAAc8v/hitX/9y7Y/vUDtwBs/EoBzhow/8029v/TxiT/eSMyADTYyv8mi4H+8kmUAEPnjf8qL8wATnQZAQThv/8Gk+QAOlixAHql5f/8U8n/4KdgAbG4nv/yabMB+MbwAIVCywH+JC8ALRhz/3c+/gDE4br+e42sABpVKf/ib7cA1eeXAAQ7B//uipQAQpMh/x/2jf/RjXT/aHAfAFihrABT1+b+L2+XAC0mNAGELcwAioBt/ul1hv/zvq3+8ezwAFJ/7P4o36H/brbh/3uu7wCH8pEBM9GaAJYDc/7ZpPz/N5xFAVRe///oSS0BFBPU/2DFO/5g+yEAJsdJAUCs9/91dDj/5BESAD6KZwH25aT/9HbJ/lYgn/9tIokBVdO6AArBwf56wrEAeu5m/6LaqwBs2aEBnqoiALAvmwG15Av/CJwAABBLXQDOYv8BOpojAAzzuP5DdUL/5uV7AMkqbgCG5LL+umx2/zoTmv9SqT7/co9zAe/EMv+tMMH/kwJU/5aGk/5f6EkAbeM0/r+JCgAozB7+TDRh/6TrfgD+fLwASrYVAXkdI//xHgf+VdrW/wdUlv5RG3X/oJ+Y/kIY3f/jCjwBjYdmANC9lgF1s1wAhBaI/3jHHAAVgU/+tglBANqjqQD2k8b/ayaQAU6vzf/WBfr+L1gd/6QvzP8rNwb/g4bP/nRk1gBgjEsBatyQAMMgHAGsUQX/x7M0/yVUywCqcK4ACwRbAEX0GwF1g1wAIZiv/4yZa//7hyv+V4oE/8bqk/55mFT/zWWbAZ0JGQBIahH+bJkA/73lugDBCLD/rpXRAO6CHQDp1n4BPeJmADmjBAHGbzP/LU9OAXPSCv/aCRn/novG/9NSu/5QhVMAnYHmAfOFhv8oiBAATWtP/7dVXAGxzMoAo0eT/5hFvgCsM7wB+tKs/9PycQFZWRr/QEJv/nSYKgChJxv/NlD+AGrRcwFnfGEA3eZi/x/nBgCywHj+D9nL/3yeTwBwkfcAXPowAaO1wf8lL47+kL2l/y6S8AAGS4AAKZ3I/ld51QABcewABS36AJAMUgAfbOcA4e93/6cHvf+75IT/br0iAF4szAGiNMUATrzx/jkUjQD0ki8BzmQzAH1rlP4bw00AmP1aAQePkP8zJR8AIncm/wfFdgCZvNMAlxR0/vVBNP+0/W4BL7HRAKFjEf923soAfbP8AXs2fv+ROb8AN7p5AArzigDN0+X/fZzx/pScuf/jE7z/fCkg/x8izv4ROVMAzBYl/ypgYgB3ZrgBA74cAG5S2v/IzMD/yZF2AHXMkgCEIGIBwMJ5AGqh+AHtWHwAF9QaAM2rWv/4MNgBjSXm/3zLAP6eqB7/1vgVAHC7B/9Lhe//SuPz//qTRgDWeKIApwmz/xaeEgDaTdEBYW1R//Qhs/85NDn/QazS//lH0f+Oqe4Anr2Z/67+Z/5iIQ4AjUzm/3GLNP8POtQAqNfJ//jM1wHfRKD/OZq3/i/neQBqpokAUYiKAKUrMwDniz0AOV87/nZiGf+XP+wBXr76/6m5cgEF+jr/S2lhAdffhgBxY6MBgD5wAGNqkwCjwwoAIc22ANYOrv+BJuf/NbbfAGIqn//3DSgAvNKxAQYVAP//PZT+iS2B/1kadP5+JnIA+zLy/nmGgP/M+af+pevXAMqx8wCFjT4A8IK+AW6v/wAAFJIBJdJ5/wcnggCO+lT/jcjPAAlfaP8L9K4Ahuh+AKcBe/4QwZX/6OnvAdVGcP/8dKD+8t7c/81V4wAHuToAdvc/AXRNsf8+9cj+PxIl/2s16P4y3dMAotsH/gJeKwC2Prb+oE7I/4eMqgDruOQArzWK/lA6Tf+YyQIBP8QiAAUeuACrsJoAeTvOACZjJwCsUE3+AIaXALoh8f5e/d//LHL8AGx+Of/JKA3/J+Ub/yfvFwGXeTP/mZb4AArqrv929gT+yPUmAEWh8gEQspYAcTiCAKsfaQAaWGz/MSpqAPupQgBFXZUAFDn+AKQZbwBavFr/zATFACjVMgHUYIT/WIq0/uSSfP+49vcAQXVW//1m0v7+eSQAiXMD/zwY2ACGEh0AO+JhALCORwAH0aEAvVQz/pv6SADVVOv/Ld7gAO6Uj/+qKjX/Tqd1ALoAKP99sWf/ReFCAOMHWAFLrAYAqS3jARAkRv8yAgn/i8EWAI+35/7aRTIA7DihAdWDKgCKkSz+iOUo/zE/I/89kfX/ZcAC/uincQCYaCYBebnaAHmL0/538CMAQb3Z/ruzov+gu+YAPvgO/zxOYQD/96P/4Ttb/2tHOv/xLyEBMnXsANuxP/70WrMAI8LX/71DMv8Xh4EAaL0l/7k5wgAjPuf/3PhsAAznsgCPUFsBg11l/5AnAgH/+rIABRHs/osgLgDMvCb+9XM0/79xSf6/bEX/FkX1ARfLsgCqY6oAQfhvACVsmf9AJUUAAFg+/lmUkP+/ROAB8Sc1ACnL7f+RfsL/3Sr9/xljlwBh/d8BSnMx/wavSP87sMsAfLf5AeTkYwCBDM/+qMDD/8ywEP6Y6qsATSVV/yF4h/+OwuMBH9Y6ANW7ff/oLjz/vnQq/peyE/8zPu3+zOzBAMLoPACsIp3/vRC4/mcDX/+N6ST+KRkL/xXDpgB29S0AQ9WV/58MEv+7pOMBoBkFAAxOwwErxeEAMI4p/sSbPP/fxxIBkYicAPx1qf6R4u4A7xdrAG21vP/mcDH+Sart/+e34/9Q3BQAwmt/AX/NZQAuNMUB0qsk/1gDWv84l40AYLv//ypOyAD+RkYB9H2oAMxEigF810YAZkLI/hE05AB13I/+y/h7ADgSrv+6l6T/M+jQAaDkK//5HRkBRL4/AA0AAAAA/wAAAAD1AAAAAAAA+wAAAAAAAP0AAAAA8wAAAAAHAAAAAAADAAAAAPMAAAAABQAAAAAAAAAACwAAAAAACwAAAADzAAAAAAAA/QAAAAAA/wAAAAADAAAAAPUAAAAAAAAADwAAAAAA/wAAAAD/AAAAAAcAAAAABQ==\"),C(I,33756,\"AQ==\"),C(I,33792,\"AQ==\"),C(I,33824,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fwjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4Fs=\"),C(I,34080,\"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA\"),C(I,34912,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB\"),C(I,34992,\"MI5QAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=\");var mg,vg=(mg=[null,function(A,I,g,B,C){var Q;return A|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(QA(Q,C|=0),SA(Q,B,0),m(Q,A=wI(A,0,I),A,I,g),Dg(Q,64)),s=Q- -64|0,0},function(A,I,g,B,C){var Q;return A|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(QA(Q,C|=0),YA(Q,B,0),m(Q,A=wI(A,0,I),A,I,g),Dg(Q,64)),s=Q- -64|0,0},function(A,I,g,B,C,Q,E,i){A|=0,I|=0,C|=0,Q|=0,E|=0,i|=0;var n,a=0;return s=n=s-80|0,(g|=0)|(B|=0)&&(bI(a=n+8|0,Q),bI(n+12|0,E),QA(Q=n+16|0,i),SA(Q,C,a),m(Q,I,A,g,B),Dg(Q,64)),s=n+80|0,0},function(A,I,g,B,C,Q,E){A|=0,I|=0,C|=0,Q|=0,E|=0;var i,n=0;return s=i=s-80|0,(g|=0)|(B|=0)&&(bI(n=i+12|0,Q),QA(Q=i+16|0,E),YA(Q,C,n),m(Q,I,A,g,B),Dg(Q,64)),s=i+80|0,0},iI,function(A,I,g,B,C){var Q;return A|=0,s=Q=s-16|0,iI(Q,I|=0,g|=0,B|=0,C|=0),A=rg(A,Q),s=Q+16|0,0|A},function(A,I){return IA(A|=0,I|=0),0},function(A,I,g,B){return $(A|=0,I|=0,g|=0,B|=0),0},function(A,I){return W(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var B,C=0,E=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,w=0,D=0,p=0,u=0,F=0,l=0,_=0,k=0,G=0,S=0,b=0,m=0,v=0,M=0,P=0,Y=0,R=0,d=0,J=0;for(r=-1,Q[11+(E=(s=B=s-336|0)-16|0)|0]=0,Q[E+12|0]=0,Q[E+13|0]=0,Q[E+14|0]=0,i[E+8>>2]=0;;){for(e=n[g+a|0],C=0;Q[0|(o=(E+8|0)+C|0)]=n[0|o]|e^n[(33760+(C<<5)|0)+a|0],7!=(0|(C=C+1|0)););if(31==(0|(a=a+1|0)))break}for(e=127&n[g+31|0],a=0,C=0;Q[0|(o=(E+8|0)+C|0)]=n[0|o]|e^n[33791+(C<<5)|0],7!=(0|(C=C+1|0)););for(C=0;C=n[(E+8|0)+a|0]-1|C,7!=(0|(a=a+1|0)););if(!(C>>>8&1)){for(r=0;Q[A+r|0]=n[I+r|0],32!=(0|(r=r+1|0)););for(Q[0|A]=248&n[0|A],Q[A+31|0]=63&n[A+31|0]|64,N(I=B+288|0,g),ng(B+240|0),hg(B+192|0),UA(B+144|0,I),ng(B+96|0),g=254,I=0;C=I,AA(E=B+240|0,y=B+144|0,C^=I=n[(g>>>3|0)+A|0]>>>(7&g)&1),AA(t=B+192|0,r=B+96|0,C),m=g,g=g-1|0,cA(f=B+48|0,y,r),cA(B,E,t),yA(E,E,t),yA(t,y,r),H(r,f,E),H(t,t,B),U(f,B),U(B,E),yA(y,r,t),cA(t,r,t),H(E,B,f),cA(B,B,f),U(t,t),u=C=i[B+4>>2],F=C>>31,l=C=i[B+8>>2],v=C>>31,D=C=i[B+12>>2],p=C>>31,_=C=i[B+16>>2],M=C>>31,c=C=i[B+20>>2],w=C>>31,k=C=i[B+24>>2],P=C>>31,Y=C=i[B>>2],R=C>>31,E=qA(C=i[B+36>>2],C>>31,121666,0),C=h,d=a=E+16777216|0,e=C=a>>>0<16777216?C+1|0:C,G=E-(-33554432&a)|0,C=qA(C=i[B+32>>2],C>>31,121666,0),a=h,o=qA(E=i[B+28>>2],E>>31,121666,0),E=h,J=C,S=C=o+16777216|0,a=(C=(E=C>>>0<16777216?E+1|0:E)>>25)+a|0,C=a=(E=J+(b=(33554431&E)<<7|S>>>25)|0)>>>0>>0?a+1|0:a,C=((67108863&(C=(a=E+33554432|0)>>>0<33554432?C+1|0:C))<<6|a>>>26)+G|0,i[r+36>>2]=C,C=-67108864&a,i[r+32>>2]=E-C,G=o-(-33554432&S)|0,E=qA(k,P,121666,0),k=h,a=qA(c,w,121666,0),C=h,o=E,c=E=a+16777216|0,w=(33554431&(C=E>>>0<16777216?C+1|0:C))<<7|E>>>25,C=(C>>25)+k|0,E=C=(o=o+w|0)>>>0>>0?C+1|0:C,w=C=o+33554432|0,C=((67108863&(E=C>>>0<33554432?E+1|0:E))<<6|C>>>26)+G|0,i[r+28>>2]=C,C=-67108864&w,i[r+24>>2]=o-C,c=a-(-33554432&c)|0,C=qA(_,M,121666,0),_=h,o=qA(D,p,121666,0),E=h,a=C,D=C=o+16777216|0,p=(33554431&(E=C>>>0<16777216?E+1|0:E))<<7|C>>>25,E=(E>>25)+_|0,a=C=a+p|0,C=C>>>0

>>0?E+1|0:E,C=((67108863&(C=(E=a+33554432|0)>>>0<33554432?C+1|0:C))<<6|E>>>26)+c|0,i[r+20>>2]=C,C=-67108864&E,i[r+16>>2]=a-C,D=o-(-33554432&D)|0,C=qA(l,v,121666,0),l=h,o=qA(u,F,121666,0),a=h,c=C,u=C=o+16777216|0,E=C,C=(C=(a=C>>>0<16777216?a+1|0:a)>>25)+l|0,C=(E=c+(a=(33554431&a)<<7|E>>>25)|0)>>>0>>0?C+1|0:C,a=E,E=C,F=C=a+33554432|0,C=((67108863&(E=C>>>0<33554432?E+1|0:E))<<6|C>>>26)+D|0,i[r+12>>2]=C,C=-67108864&F,i[r+8>>2]=a-C,C=qA((33554431&e)<<7|d>>>25,e>>25,19,0),a=h,E=(e=qA(Y,R,121666,0))+C|0,C=h+a|0,a=E,E=E>>>0>>0?C+1|0:C,e=C=a+33554432|0,C=(o-(-33554432&u)|0)+((67108863&(E=C>>>0<33554432?E+1|0:E))<<6|C>>>26)|0,i[r+4>>2]=C,C=-67108864&e,i[r>>2]=a-C,U(y,y),yA(f,f,r),H(r,B+288|0,t),H(t,B,f),m;);AA(g=B+240|0,B+144|0,I),AA(C=B+192|0,B+96|0,I),O(C,C),H(g,g,C),T(A,g),r=0}return s=B+336|0,0|r},function(A,I){A|=0,I|=0;var g,B,C,E=0;for(s=g=s-208|0;Q[A+E|0]=n[I+E|0],32!=(0|(E=E+1|0)););return Q[0|A]=248&n[0|A],Q[A+31|0]=63&n[A+31|0]|64,BA(g+48|0,A),s=I=s-96|0,yA(E=I+48|0,B=g+128|0,C=g+88|0),cA(I,B,C),O(I,I),H(g,E,I),s=I+96|0,T(A,g),s=g+208|0,0},function(A,I,g,B,C){A|=0,B|=0,C|=0;var E,a=0;if(s=E=s-112|0,(I|=0)|(g|=0)){a=n[C+28|0]|n[C+29|0]<<8|n[C+30|0]<<16|n[C+31|0]<<24,i[E+24>>2]=n[C+24|0]|n[C+25|0]<<8|n[C+26|0]<<16|n[C+27|0]<<24,i[E+28>>2]=a,a=n[C+20|0]|n[C+21|0]<<8|n[C+22|0]<<16|n[C+23|0]<<24,i[E+16>>2]=n[C+16|0]|n[C+17|0]<<8|n[C+18|0]<<16|n[C+19|0]<<24,i[E+20>>2]=a,a=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i[E>>2]=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,i[E+4>>2]=a,a=n[C+12|0]|n[C+13|0]<<8|n[C+14|0]<<16|n[C+15|0]<<24,i[E+8>>2]=n[C+8|0]|n[C+9|0]<<8|n[C+10|0]<<16|n[C+11|0]<<24,i[E+12>>2]=a,C=n[0|B]|n[B+1|0]<<8|n[B+2|0]<<16|n[B+3|0]<<24,B=n[B+4|0]|n[B+5|0]<<8|n[B+6|0]<<16|n[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=C,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;;){for(d(A,E+96|0,E),C=8,B=1;B=n[0|(a=(E+96|0)+C|0)]+B|0,Q[0|a]=B,B=B>>>8|0,16!=(0|(C=C+1|0)););if(A=A- -64|0,g=g-1|0,!(!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g))break}if(!(I|g))break A}for(C=0,d(E+32|0,E+96|0,E);Q[A+C|0]=n[(E+32|0)+C|0],(0|I)!=(0|(C=C+1|0)););}Dg(E+32|0,64),Dg(E,32)}return s=E+112|0,0},function(A,I,g,B,C,E,a,r){A|=0,I|=0,C|=0,E|=0,a|=0,r|=0;var o,t=0,e=0;if(s=o=s-112|0,(g|=0)|(B|=0)){for(t=n[r+28|0]|n[r+29|0]<<8|n[r+30|0]<<16|n[r+31|0]<<24,i[o+24>>2]=n[r+24|0]|n[r+25|0]<<8|n[r+26|0]<<16|n[r+27|0]<<24,i[o+28>>2]=t,t=n[r+20|0]|n[r+21|0]<<8|n[r+22|0]<<16|n[r+23|0]<<24,i[o+16>>2]=n[r+16|0]|n[r+17|0]<<8|n[r+18|0]<<16|n[r+19|0]<<24,i[o+20>>2]=t,t=n[r+4|0]|n[r+5|0]<<8|n[r+6|0]<<16|n[r+7|0]<<24,i[o>>2]=n[0|r]|n[r+1|0]<<8|n[r+2|0]<<16|n[r+3|0]<<24,i[o+4>>2]=t,t=8,e=n[r+12|0]|n[r+13|0]<<8|n[r+14|0]<<16|n[r+15|0]<<24,i[o+8>>2]=n[r+8|0]|n[r+9|0]<<8|n[r+10|0]<<16|n[r+11|0]<<24,i[o+12>>2]=e,r=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i[o+96>>2]=n[0|C]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,i[o+100>>2]=r;Q[(o+96|0)+t|0]=E,E=(255&a)<<24|E>>>8,a=a>>>8|0,16!=(0|(t=t+1|0)););if(!B&g>>>0>63|B)for(;;){for(t=0,d(o+32|0,o+96|0,o);Q[A+t|0]=n[(o+32|0)+t|0]^n[I+t|0],r=1,64!=(0|(t=t+1|0)););for(t=8;C=n[0|(E=(o+96|0)+t|0)]+r|0,Q[0|E]=C,r=C>>>8|0,16!=(0|(t=t+1|0)););if(I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(g|B)for(t=0,d(o+32|0,o+96|0,o);Q[A+t|0]=n[(o+32|0)+t|0]^n[I+t|0],(0|g)!=(0|(t=t+1|0)););Dg(o+32|0,64),Dg(o,32)}return s=o+112|0,0}],mg.grow=function(A){var I=this.length;return this.length=this.length+A,I},mg.set=function(A,I){this[A]=I},mg.get=function(A){return this[A]},mg);function Mg(){return B.byteLength/65536|0}return{f:function(){},g:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|PA(A|=0,I|=0,g|=0,B|=0,(A=0)|(C|=0),Q|=0,E|=0,A|(i|=0),n|=0,r|=0,o|=0)},h:function(A,I,g,B,C,Q,E,n,a,r,o){return A|=0,I|=0,a|=0,a=B|=0,!(B=C|=0)&(C=0|a)>>>0<4294967280?(PA(A,A+C|0,0,g|=0,C,B,Q|=0,E|=0,n|=0,r|=0,o|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(xI(),t()),0},i:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|HA(A|=0,I|=0,g|=0,B|=0,(A=0)|(C|=0),Q|=0,E|=0,A|(i|=0),n|=0,r|=0,o|=0)},j:function(A,I,g,B,C,Q,E,n,a,r,o){return A|=0,I|=0,a|=0,a=B|=0,!(B=C|=0)&(C=0|a)>>>0<4294967280?(HA(A,A+C|0,0,g|=0,C,B,Q|=0,E|=0,n|=0,r|=0,o|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(xI(),t()),0},k:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|GA(A|=0,g|=0,(A=0)|(B|=0),C|=0,Q|=0,E|=0,A|(i|=0),n|=0,a|=0,r|=0)},l:function(A,I,g,B,C,Q,E,n,a,r,o){return I|=0,g|=0,B|=0,C|=0,n|=0,n|=0,g=-1,!(Q|=0)&(C|=0)>>>0>=16|Q&&(g=GA(A|=0,B,C-16|0,Q-(C>>>0<16)|0,(B+C|0)-16|0,E|=0,n,a|=0,r|=0,o|=0)),I&&(i[I>>2]=g?0:C-16|0,i[I+4>>2]=g?0:Q-(C>>>0<16)|0),0|g},m:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|lA(A|=0,g|=0,(A=0)|(B|=0),C|=0,Q|=0,E|=0,A|(i|=0),n|=0,a|=0,r|=0)},n:function(A,I,g,B,C,Q,E,n,a,r,o){return I|=0,g|=0,B|=0,C|=0,n|=0,n|=0,g=-1,!(Q|=0)&(C|=0)>>>0>=16|Q&&(g=lA(A|=0,B,C-16|0,Q-(C>>>0<16)|0,(B+C|0)-16|0,E|=0,n,a|=0,r|=0,o|=0)),I&&(i[I>>2]=g?0:C-16|0,i[I+4>>2]=g?0:Q-(C>>>0<16)|0),0|g},o:pg,p:function(){return 12},q:Sg,r:_g,s:Fg,t:sg,u:pg,v:Gg,w:Sg,x:_g,y:Fg,z:sg,A:function(A,I,g,B,C,Q,E,i,n,a,r,o){return 0|fA(A|=0,I|=0,g|=0,B|=0,(A=0)|(C|=0),Q|=0,E|=0,A|(i|=0),n|=0,r|=0,o|=0)},B:function(A,I,g,B,C,Q,E,n,a,r,o){return A|=0,I|=0,a|=0,a=B|=0,!(B=C|=0)&(C=0|a)>>>0<4294967280?(fA(A,A+C|0,0,g|=0,C,B,Q|=0,E|=0,n|=0,r|=0,o|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(xI(),t()),0},C:function(A,I,g,B,C,Q,E,i,n,a,r){return 0|rA(A|=0,g|=0,(A=0)|(B|=0),C|=0,Q|=0,E|=0,A|(i|=0),n|=0,a|=0,r|=0)},D:function(A,I,g,B,C,Q,E,n,a,r,o){return I|=0,g|=0,B|=0,C|=0,n|=0,n|=0,g=-1,!(Q|=0)&(C|=0)>>>0>=16|Q&&(g=rA(A|=0,B,C-16|0,Q-(C>>>0<16)|0,(B+C|0)-16|0,E|=0,n,a|=0,r|=0,o|=0)),I&&(i[I>>2]=g?0:C-16|0,i[I+4>>2]=g?0:Q-(C>>>0<16)|0),0|g},E:pg,F:ug,G:Sg,H:_g,I:Fg,J:sg,K:pg,L:pg,M:function(A,I,g,B,C){return 0|q(A|=0,I|=0,g|=0,B|=0,C|=0)},N:function(A,I,g,B,C){var Q;return A|=0,s=Q=s-32|0,q(Q,I|=0,g|=0,B|=0,C|=0),I=eg(A,Q),g=zA(Q,A,32),s=Q+32|0,g|((0|A)==(0|Q)?-1:I)},O:sg,P:pg,Q:pg,R:pg,S:pg,T:ug,U:_g,V:Fg,W:function(A,I,g){A|=0,I|=0;var B,C=0;return s=B=s+-64|0,_I(B,g|=0,32,0),g=i[B+28>>2],C=i[B+24>>2],Q[I+24|0]=C,Q[I+25|0]=C>>>8,Q[I+26|0]=C>>>16,Q[I+27|0]=C>>>24,Q[I+28|0]=g,Q[I+29|0]=g>>>8,Q[I+30|0]=g>>>16,Q[I+31|0]=g>>>24,g=i[B+20>>2],C=i[B+16>>2],Q[I+16|0]=C,Q[I+17|0]=C>>>8,Q[I+18|0]=C>>>16,Q[I+19|0]=C>>>24,Q[I+20|0]=g,Q[I+21|0]=g>>>8,Q[I+22|0]=g>>>16,Q[I+23|0]=g>>>24,g=i[B+12>>2],C=i[B+8>>2],Q[I+8|0]=C,Q[I+9|0]=C>>>8,Q[I+10|0]=C>>>16,Q[I+11|0]=C>>>24,Q[I+12|0]=g,Q[I+13|0]=g>>>8,Q[I+14|0]=g>>>16,Q[I+15|0]=g>>>24,g=i[B+4>>2],C=i[B>>2],Q[0|I]=C,Q[I+1|0]=C>>>8,Q[I+2|0]=C>>>16,Q[I+3|0]=C>>>24,Q[I+4|0]=g,Q[I+5|0]=g>>>8,Q[I+6|0]=g>>>16,Q[I+7|0]=g>>>24,Dg(B,64),A=Bg(A,I),s=B- -64|0,0|A},X:TI,Y:oI,Z:function(A,I,g,B,C,Q,E){return 0|zI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},_:function(A,I,g,B,C,Q,E,i){return 0|aI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0)},$:function(A,I,g,B,C,Q){return A|=0,I|=0,C|=0,Q|=0,!(B|=0)&(g|=0)>>>0>=4294967280|B&&(xI(),t()),0|zI(A+16|0,A,I,g,B,C,Q)},aa:function(A,I,g,B,C,Q,E){return 0|pI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},ba:function(A,I,g,B,C,Q,E){return 0|jI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},ca:function(A,I,g,B,C,Q,E,i){return 0|rI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0,i|=0)},da:function(A,I,g,B,C,Q){return I|=0,0|(!(B|=0)&(g|=0)>>>0>=16|B?jI(A|=0,I+16|0,I,g-16|0,B-(g>>>0<16)|0,C|=0,Q|=0):-1)},ea:function(A,I,g,B,C,Q,E){return 0|cI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},fa:function(A,I,g,B,C){A|=0,I|=0,C|=0;var E,n,a=0,r=0;return n=g|=0,g=B|=0,s=E=s-96|0,B=-1,TI(E+32|0,E)||(sI(a=E- -64|0,r=E+32|0,C),B=pI(A+32|0,I,n,g,a,C,E),I=i[E+60>>2],g=i[E+56>>2],Q[A+24|0]=g,Q[A+25|0]=g>>>8,Q[A+26|0]=g>>>16,Q[A+27|0]=g>>>24,Q[A+28|0]=I,Q[A+29|0]=I>>>8,Q[A+30|0]=I>>>16,Q[A+31|0]=I>>>24,I=i[E+52>>2],g=i[E+48>>2],Q[A+16|0]=g,Q[A+17|0]=g>>>8,Q[A+18|0]=g>>>16,Q[A+19|0]=g>>>24,Q[A+20|0]=I,Q[A+21|0]=I>>>8,Q[A+22|0]=I>>>16,Q[A+23|0]=I>>>24,I=i[E+44>>2],g=i[E+40>>2],Q[A+8|0]=g,Q[A+9|0]=g>>>8,Q[A+10|0]=g>>>16,Q[A+11|0]=g>>>24,Q[A+12|0]=I,Q[A+13|0]=I>>>8,Q[A+14|0]=I>>>16,Q[A+15|0]=I>>>24,I=i[E+36>>2],g=i[E+32>>2],Q[0|A]=g,Q[A+1|0]=g>>>8,Q[A+2|0]=g>>>16,Q[A+3|0]=g>>>24,Q[A+4|0]=I,Q[A+5|0]=I>>>8,Q[A+6|0]=I>>>16,Q[A+7|0]=I>>>24,Dg(E,32),Dg(r,32),Dg(a,24)),s=E+96|0,0|B},ga:function(A,I,g,B,C,Q){A|=0,I|=0,Q|=0;var E,i=0;return s=E=s-32|0,i=-1,!(B|=0)&(g|=0)>>>0>=48|B&&(sI(E,I,C|=0),i=cI(A,I+32|0,g-32|0,B-(g>>>0<32)|0,E,I,Q)),s=E+32|0,0|i},ha:function(){return 48},ia:_g,ja:lg,ka:pg,la:_g,ma:lg,na:pg,oa:function(){return 384},pa:function(A,I,g,B,C,Q,E){return 0|qI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0,E|=0)},qa:PI,ra:function(A,I,g,B){return 0|ig(A|=0,I|=0,g|=0,B|=0)},sa:dI,ta:sg,ua:lg,va:function(A,I,g,B){return 0|_I(A|=0,I|=0,g|=0,B|=0)},wa:_g,xa:lg,ya:Gg,za:pg,Aa:function(A,I,g,B,C,a){A|=0,I|=0,g|=0,B|=0,a|=0;var r,o=0,e=0,f=0,c=0;return s=r=s-32|0,f=n[0|(C|=0)]|n[C+1|0]<<8|n[C+2|0]<<16|n[C+3|0]<<24,C=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,i[r+24>>2]=0,i[r+28>>2]=0,i[r+16>>2]=f,i[r+20>>2]=C,QI(r,g,B),i[r+8>>2]=0,i[r+12>>2]=0,I-65>>>0<=4294967246?(i[8952]=28,A=-1):(g=r+16|0,I-65>>>0<4294967232?A=-1:(s=c=(B=s)-384&-64,!a|!A|((C=255&I)-65&255)>>>0<=191?(xI(),t()):(s=e=s-192|0,!a|(C-65&255)>>>0<=191?(xI(),t()):(E[e+130>>1]=257,Q[e+129|0]=32,Q[e+128|0]=C,RI(4|(I=e+128|0)),QI(8|I,0,0),i[e+152>>2]=0,i[e+156>>2]=0,i[e+144>>2]=0,i[e+148>>2]=0,r?(f=n[r+4|0]|n[r+5|0]<<8|n[r+6|0]<<16|n[r+7|0]<<24,o=e+128|0,I=n[0|r]|n[r+1|0]<<8|n[r+2|0]<<16|n[r+3|0]<<24,Q[o+32|0]=I,Q[o+33|0]=I>>>8,Q[o+34|0]=I>>>16,Q[o+35|0]=I>>>24,Q[o+36|0]=f,Q[o+37|0]=f>>>8,Q[o+38|0]=f>>>16,Q[o+39|0]=f>>>24,f=n[r+12|0]|n[r+13|0]<<8|n[r+14|0]<<16|n[r+15|0]<<24,I=n[r+8|0]|n[r+9|0]<<8|n[r+10|0]<<16|n[r+11|0]<<24,Q[o+40|0]=I,Q[o+41|0]=I>>>8,Q[o+42|0]=I>>>16,Q[o+43|0]=I>>>24,Q[o+44|0]=f,Q[o+45|0]=f>>>8,Q[o+46|0]=f>>>16,Q[o+47|0]=f>>>24):(i[e+168>>2]=0,i[e+172>>2]=0,i[e+160>>2]=0,i[e+164>>2]=0),g?(f=n[g+4|0]|n[g+5|0]<<8|n[g+6|0]<<16|n[g+7|0]<<24,o=e+128|0,I=n[0|g]|n[g+1|0]<<8|n[g+2|0]<<16|n[g+3|0]<<24,Q[o+48|0]=I,Q[o+49|0]=I>>>8,Q[o+50|0]=I>>>16,Q[o+51|0]=I>>>24,Q[o+52|0]=f,Q[o+53|0]=f>>>8,Q[o+54|0]=f>>>16,Q[o+55|0]=f>>>24,f=n[g+12|0]|n[g+13|0]<<8|n[g+14|0]<<16|n[g+15|0]<<24,I=n[g+8|0]|n[g+9|0]<<8|n[g+10|0]<<16|n[g+11|0]<<24,Q[o+56|0]=I,Q[o+57|0]=I>>>8,Q[o+58|0]=I>>>16,Q[o+59|0]=I>>>24,Q[o+60|0]=f,Q[o+61|0]=f>>>8,Q[o+62|0]=f>>>16,Q[o+63|0]=f>>>24):(i[e+184>>2]=0,i[e+188>>2]=0,i[e+176>>2]=0,i[e+180>>2]=0),wA(c,e+128|0),wI(e+32|0,0,96),gA(c,I=eI(e,a,32),128,0),Dg(I,128),s=I+192|0),gA(c,0,0,0),Y(c,A,C),s=B),A=0)),s=r+32|0,0|A},Ba:sg,Ca:function(A,I,g){return A|=0,qI(I|=0,32,g|=0,32,0,0,0),0|ZI(A,I)},Da:function(A,I){return A|=0,EI(I|=0,32),0|ZI(A,I)},Ea:function(A,I,g,B,C){I|=0,g|=0,B|=0,C|=0;var E,i,a=0,r=0;if(i=a=s,s=a=a-512&-64,E=(A|=0)||I){if(r=-1,!JI(a+96|0,B,C)){for(B=I||A,A=0,PI(I=a+128|0,0,0,64),ig(I,r=a+96|0,32,0),Dg(r,32),ig(I,g,32,0),ig(I,C,32,0),dI(I,a+32|0,64),Dg(I,384);I=(a+32|0)+A|0,Q[A+E|0]=n[0|I],Q[A+B|0]=n[I+32|0],32!=(0|(A=A+1|0)););Dg(a+32|0,64),r=0}return s=i,0|r}xI(),t()},Fa:function(A,I,g,B,C){I|=0,g|=0,B|=0,C|=0;var E,i,a=0,r=0;if(i=a=s,s=a=a-512&-64,E=(A|=0)||I){if(r=-1,!JI(a+96|0,B,C)){for(B=I||A,A=0,PI(I=a+128|0,0,0,64),ig(I,r=a+96|0,32,0),Dg(r,32),ig(I,C,32,0),ig(I,g,32,0),dI(I,a+32|0,64),Dg(I,384);I=(a+32|0)+A|0,Q[A+B|0]=n[0|I],Q[A+E|0]=n[I+32|0],32!=(0|(A=A+1|0)););Dg(a+32|0,64),r=0}return s=i,0|r}xI(),t()},Ga:pg,Ha:pg,Ia:pg,Ja:pg,Ka:kg,La:Hg,Ma:Hg,Na:_g,Oa:bg,Pa:Sg,Qa:bg,Ra:_g,Sa:function(){return 128},Ta:function(){return 1403},Ua:kg,Va:bg,Wa:function(){return 8192},Xa:function(){return-2147483648},Ya:Hg,Za:function(){return 67108864},_a:Ug,$a:function(){return 268435456},ab:function(){return 4},bb:function(){return 1073741824},cb:function(A,I,g,B,C,Q,E,n,a,r,o){var t;A|=0,I|=0,g|=0,B|=0,Q|=0,E|=0,a|=0,r|=0,I|=0,t=0|(C|=0),C=0|(n|=0);A:{switch((o|=0)-1|0){case 0:A=wI(A,0,I);I:{if(1==(0|g)|g>>>0>1)i[8952]=22;else if(!g&I>>>0<=15)i[8952]=28;else if(!(Q|a)&r>>>0<2147483649)if((!a&C>>>0>=3|0!=(0|a))&r>>>0>8191){if((0|A)!=(0|B)){A=_(C,r>>>10|0,1,B,t,E,16,A,I,0,0,1)?-1:0;break I}i[8952]=28}else i[8952]=28;else i[8952]=22;A=-1}break A;case 1:A=wI(A,0,I);I:{if(1==(0|g)|g>>>0>1)i[8952]=22;else if(!g&I>>>0<=15)i[8952]=28;else if(!(Q|a)&r>>>0<2147483649)if(!!(C|a)&r>>>0>8191){if((0|A)!=(0|B)){A=_(C,r>>>10|0,1,B,t,E,16,A,I,0,0,2)?-1:0;break I}i[8952]=28}else i[8952]=28;else i[8952]=22;A=-1}break A}i[8952]=28,A=-1}return 0|A},db:function(A,I,g,B,C,Q,E){return 0|NA(A|=0,I|=0,(A=0)|(g|=0),B|=0,A|(C|=0),Q|=0,E|=0)},eb:function(A,I,g,B,C,Q,E,n){A|=0,I|=0,B|=0,Q|=0,E|=0;var a=0;a=g|=0,a|=g=0,g|=C|=0;A:{switch((n|=0)-1|0){case 1:A=NA(A,I,a,B,g,Q,E);break A;default:xI(),t();case 0:}s=C=s-16|0,A=wI(A,0,128),!(B|Q)&E>>>0<2147483649?(!Q&g>>>0>=3|0!=(0|Q))&E>>>0>8191?(EI(C,16),A=_(g,E>>>10|0,1,I,a,C,16,0,32,A,128,1)?-1:0):(i[8952]=28,A=-1):(i[8952]=22,A=-1),s=C+16|0}return 0|A},fb:function(A,I,g,B){I|=0,g|=0,B|=0;A:if(LA(A|=0,1403,10))if(LA(A,1393,9))i[8952]=28,A=-1;else{if(1==(0|B)|B>>>0>1)i[8952]=22;else{if(!(A=tA(A,I,g,1)))break A;-35==(0|A)&&(i[8952]=28)}A=-1}else{if(1==(0|B)|B>>>0>1)i[8952]=22;else{if(!(A=tA(A,I,g,2)))break A;-35==(0|A)&&(i[8952]=28)}A=-1}return 0|A},gb:function(A,I,g,B){return I|=0,g|=0,B|=0,LA(A|=0,1403,10)?LA(A,1393,9)?(i[8952]=28,A=-1):A=eA(A,I,g,B,1):A=eA(A,I,g,B,2),0|A},hb:ZI,ib:JI,jb:pg,kb:pg,lb:pg,mb:ug,nb:_g,ob:Fg,pb:sg,qb:zI,rb:function(A,I,g,B,C,Q){return A|=0,I|=0,C|=0,Q|=0,!(B|=0)&(g|=0)>>>0>=4294967280|B&&(xI(),t()),EA(A+16|0,A,I,g,B,C,Q),0},sb:jI,tb:function(A,I,g,B,C,Q){return I|=0,0|(!(B|=0)&(g|=0)>>>0>=16|B?iA(A|=0,I+16|0,I,g-16|0,B-(g>>>0<16)|0,C|=0,Q|=0):-1)},ub:sg,vb:function(A,I,g){return A|=0,g|=0,EI(I|=0,24),x(A,I,g),YI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,Q[A+44|0]=0,Q[A+45|0]=0,Q[A+46|0]=0,Q[A+47|0]=0,Q[A+48|0]=0,Q[A+49|0]=0,Q[A+50|0]=0,Q[A+51|0]=0,Q[A+36|0]=g,Q[A+37|0]=g>>>8,Q[A+38|0]=g>>>16,Q[A+39|0]=g>>>24,Q[A+40|0]=I,Q[A+41|0]=I>>>8,Q[A+42|0]=I>>>16,Q[A+43|0]=I>>>24,0},wb:function(A,I,g){return x(A|=0,I|=0,g|=0),YI(A),g=n[I+16|0]|n[I+17|0]<<8|n[I+18|0]<<16|n[I+19|0]<<24,I=n[I+20|0]|n[I+21|0]<<8|n[I+22|0]<<16|n[I+23|0]<<24,Q[A+44|0]=0,Q[A+45|0]=0,Q[A+46|0]=0,Q[A+47|0]=0,Q[A+48|0]=0,Q[A+49|0]=0,Q[A+50|0]=0,Q[A+51|0]=0,Q[A+36|0]=g,Q[A+37|0]=g>>>8,Q[A+38|0]=g>>>16,Q[A+39|0]=g>>>24,Q[A+40|0]=I,Q[A+41|0]=I>>>8,Q[A+42|0]=I>>>16,Q[A+43|0]=I>>>24,0},xb:X,yb:function(A,I,g,B,C,E,a,r,o,e){A|=0,I|=0,B|=0,a|=0,r|=0,o|=0,e|=0;var f=0,c=0,y=0,w=0;return c=C|=0,C=E|=0,E=0|c,r|=f,s=c=s-336|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),!C&E>>>0<4294967279?(fg(y=c+16|0,64,w=A+32|0,A),og(f=c+80|0,y),Dg(y,64),gg(f,a,r,o),gg(f,34048,0-r&15,0),wI(y,0,64),Q[c+16|0]=e,WA(y,y,64,0,w,1,A),gg(f,y,64,0),Q[0|I]=n[c+16|0],WA(a=I+1|0,B,E,C,w,2,A),gg(f,a,E,C),gg(f,34048,15&E,0),QI(I=c+8|0,r,o),gg(f,I,8,0),QI(I,E- -64|0,C-((E>>>0<4294967232)-1|0)|0),gg(f,I,8,0),tg(f,I=E+a|0),Dg(f,256),yI(A+36|0,I),nI(w),(2&e||BI(w,4))&&X(A),g&&(C=(A=E+17|0)>>>0<17?C+1|0:C,i[g>>2]=A,i[g+4>>2]=C),s=c+336|0):(xI(),t()),0},zb:function(A,I,g,B,C,E,a,r,o,e){A|=0,I|=0,B|=0,C|=0,E|=0,a|=0,r|=0,e|=0;var f,c=0,y=0,w=0,D=0,h=0,p=0;E|=0,f=(o|=0)|c,s=c=s-352|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),B&&(Q[0|B]=255),p=-1;A:{I:{if(!(!a&E>>>0<17)){if(!(o=a-(E>>>0<17)|0)&(D=E-17|0)>>>0>=4294967279|o)break I;fg(y=c+32|0,64,h=A+32|0,A),og(w=c+96|0,y),Dg(y,64),gg(w,r,f,e),gg(w,34048,0-f&15,0),wI(y,0,64),Q[c+32|0]=n[0|C],WA(y,y,64,0,h,1,A),r=n[c+32|0],Q[c+32|0]=n[0|C],gg(w,y,64,0),gg(w,y=C+1|0,D,o),gg(w,34048,E-1&15,0),QI(C=c+24|0,f,e),gg(w,C,8,0),QI(C,E=E+47|0,a=E>>>0<47?a+1|0:a),gg(w,C,8,0),tg(w,c),Dg(w,256),zA(c,y+D|0,16)?Dg(c,16):(WA(I,y,D,o,h,2,A),yI(A+36|0,c),nI(h),(2&r||BI(h,4))&&X(A),g&&(i[g>>2]=D,i[g+4>>2]=o),p=0,B&&(Q[0|B]=r))}s=c+352|0;break A}xI(),t()}return 0|p},Ab:function(){return 52},Bb:function(){return 17},Cb:ug,Db:pg,Eb:function(){return-18},Fb:Sg,Gb:kg,Hb:Hg,Ib:Ug,Jb:Gg,Kb:_g,Lb:function(A,I,g,B,C){A|=0,I|=0,g|=0,B|=0;var Q=0,E=0,i=0,a=0,r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,p=0,u=0;if(E=C|=0,C=n[C+4|0]|n[C+5|0]<<8|n[C+6|0]<<16|n[C+7|0]<<24,o=1886610805^(Q=n[0|E]|n[E+1|0]<<8|n[E+2|0]<<16|n[E+3|0]<<24),r=1936682341^C,Q^=1852142177,t=1819895653^C,C=1852075885^(i=n[E+8|0]|n[E+9|0]<<8|n[E+10|0]<<16|n[E+11|0]<<24),a=1685025377^(E=n[E+12|0]|n[E+13|0]<<8|n[E+14|0]<<16|n[E+15|0]<<24),e=2037671283^i,f=1952801890^E,E=g,(0|(i=(I+g|0)-(c=7&g)|0))!=(0|I)){for(;y=n[0|I]|n[I+1|0]<<8|n[I+2|0]<<16|n[I+3|0]<<24,u=n[I+4|0]|n[I+5|0]<<8|n[I+6|0]<<16|n[I+7|0]<<24,w=uA(C,a,13),B=h,g=a+r|0,a=g=(o=C+o|0)>>>0>>0?g+1|0:g,o=uA(r=o,g,32),D=h,e=uA(C=e^y,g=f^u,16),g=g+t|0,g=(C=C+Q|0)>>>0>>0?g+1|0:g,Q=C,e=uA(C^=e,t=g^(f=h),21),f=h,w=uA(r^=w,B=a^=B,17),p=h,g=g+B|0,Q=uA(a=Q+r|0,g=a>>>0>>0?g+1|0:g,32),B=h,w=uA(r=a^w,g^=p,13),p=h,a=g,s=r,g=t+D|0,t=r=C+o|0,C=g=r>>>0>>0?g+1|0:g,g=g+a|0,o=r=s+r|0,a=g=r>>>0>>0?g+1|0:g,g=uA(r,g,32),D=h,r=C^=f,C=uA(t^=e,C,16),e=h,f=g,s=C,g=B+r|0,Q=g=(C=Q+t|0)>>>0>>0?g+1|0:g,g=(e^=g)+D|0,B=r=f+(t=s^C)|0,e=uA(t,e,21)^B,f=(r=B>>>0>>0?g+1|0:g)^h,g=a^p,o=uA(a=o^w,g,17),g=g+Q|0,g=(a=C+a|0)>>>0>>0?g+1|0:g,C=(Q=a)^o,a=g^(t=h),o=B^y,r^=u,Q=uA(Q,g,32),t=h,(0|i)!=(0|(I=I+8|0)););I=i}switch(g=E<<24,E=0,B=g,c-1|0){case 6:B|=n[I+6|0]<<16;case 5:B|=n[I+5|0]<<8;case 4:B|=n[I+4|0];case 3:E|=(i=n[I+3|0])<<24,B|=g=i>>>8|0;case 2:E|=(i=n[I+2|0])<<16,B|=g=i>>>16|0;case 1:E|=(i=n[I+1|0])<<8,B|=g=i>>>24|0;case 0:E=n[0|I]|E}return c=uA(C,a,13),y=h,g=a+r|0,i=I=C+o|0,C=g=I>>>0>>0?g+1|0:g,a=uA(I,g,32),r=h,f=I=uA(o=E^e,g=I=B^f,16),g=g+t|0,g=(I=Q+o|0)>>>0>>0?g+1|0:g,Q=I,t=uA(I^=f,o=g^(e=h),21),e=h,c=uA(i^=c,C^=y,17),y=h,g=g+C|0,g=(C=Q+i|0)>>>0>>0?g+1|0:g,Q=C,C=uA(C,g,32),f=h,c=uA(i=Q^c,g^=y,13),y=h,Q=g,s=i,g=r+o|0,a=i=I+a|0,I=g=i>>>0>>0?g+1|0:g,g=g+Q|0,Q=g=(i=s+i|0)>>>0>>0?g+1|0:g,r=uA(i,g,32),o=h,e=I=uA(a^=t,g=I^=e,16),g=g+f|0,g=(I=C+a|0)>>>0>>0?g+1|0:g,C=I,t=uA(I^=e,a=g^(t=h),21),e=h,c=uA(i^=c,Q^=y,17),y=h,g=g+Q|0,g=(Q=C+i|0)>>>0>>0?g+1|0:g,i=uA(C=Q,g,32),f=h,c=uA(Q=C^c,g^=y,13),y=h,C=g,s=Q,g=a+o|0,g=(Q=I+r|0)>>>0>>0?g+1|0:g,I=E,E=Q,a=I^Q,I=g,g=(g^B)+C|0,B=g=(Q=s+a|0)>>>0>>0?g+1|0:g,a=uA(Q,g,32),r=h,g=I^e,C=uA(I=E^t,g,16),E=h,o=C,g=g+f|0,g=(C=I+(255^i)|0)>>>0>>0?g+1|0:g,i=uA(I=o^C,E^=g,21),o=h,e=uA(Q^=c,B^=y,17),f=h,g=g+B|0,g=(B=C+Q|0)>>>0>>0?g+1|0:g,B=uA(C=B,g,32),t=h,e=uA(Q=C^e,g^=f,13),f=h,C=g,s=Q,g=E+r|0,E=Q=I+a|0,I=g=Q>>>0>>0?g+1|0:g,g=g+C|0,C=g=(Q=s+Q|0)>>>0>>0?g+1|0:g,a=uA(Q,g,32),r=h,o=I=uA(E^=i,g=I^=o,16),g=g+t|0,g=(I=B+E|0)>>>0>>0?g+1|0:g,B=I,i=uA(I^=o,E=g^(i=h),21),o=h,e=uA(Q^=e,C^=f,17),f=h,g=g+C|0,B=uA(C=B+Q|0,g=C>>>0>>0?g+1|0:g,32),t=h,e=uA(Q=C^e,g^=f,13),f=h,C=g,s=Q,g=E+r|0,a=Q=I+a|0,E=Q,I=g=Q>>>0>>0?g+1|0:g,g=g+C|0,g=(Q=s+Q|0)>>>0>>0?g+1|0:g,E=Q,C=g,r=uA(Q,g,32),c=h,a=I=uA(Q=i^a,g=I^=o,16),g=g+t|0,g=(I=B+Q|0)>>>0>>0?g+1|0:g,B=I,I^=a,a=Q=g^(i=h),i=uA(I,Q,21),Q=h,t=uA(E^=e,C^=f,17),e=h,g=g+C|0,B=uA(C=B+E|0,g=C>>>0>>0?g+1|0:g,32),o=h,e=g^=e,t=uA(C^=t,g,13),E=h,f=i,g=a+c|0,a=i=I+r|0,I=g=i>>>0>>0?g+1|0:g,f=Q=uA(i^=f,g^=Q,16),g=g+o|0,g=(Q=B+i|0)>>>0>>0?g+1|0:g,B=Q,Q=g,g=uA(f^B,g^(r=h),21),r=h,o=g,g=I+e|0,g=Q+(E^=g=(i=C+a|0)>>>0>>0?g+1|0:g)|0,g=(I=B+(C=i^t)|0)>>>0>>0?g+1|0:g,B=o^I^uA(C,E,17),C=h^g^r,QI(A,uA(I,g,32)^B,h^C),0},Mb:function(A){EI(A|=0,16)},Nb:function(){return 208},Ob:lg,Pb:pg,Qb:pg,Rb:lg,Sb:function(){return-65},Tb:function(A,I,g){return 0|P(A|=0,I|=0,g|=0)},Ub:function(A,I){var g;return A|=0,I|=0,s=g=s-32|0,EI(g,32),P(A,I,g),Dg(g,32),s=g+32|0,0},Vb:function(A,I,g,B,C,Q){var E;return I|=0,C|=0,Q|=0,s=E=s-16|0,VI(A|=0,E+8|0,gI(A- -64|0,g|=0,g=B|=0),g,C,Q),64!=i[E+8>>2]|i[E+12>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),wI(A,0,g- -64|0),A=-1):(A=0,I&&(i[I>>2]=g- -64,i[I+4>>2]=C-((g>>>0<4294967232)-1|0))),s=E+16|0,0|A},Wb:function(A,I,g,B,C,Q){A|=0,I|=0,g|=0;var E=0;A:{I:{if(E=B|=0,!(!(C|=0)&B>>>0<64||(B=C-1|0,E=C=E+-64|0,!(B=C>>>0<4294967232?B+1|0:B)&C>>>0>4294967231|B))){if(!OI(g,C=g- -64|0,E,B,Q|=0))break I;A&&wI(A,0,E)}if(g=-1,!I)break A;i[I>>2]=0,i[I+4>>2]=0;break A}I&&(i[I>>2]=E,i[I+4>>2]=B),g=0,A&&gI(A,C,E)}return 0|g},Xb:function(A,I,g,B,C,Q){return 0|VI(A|=0,I|=0,g|=0,B|=0,C|=0,Q|=0)},Yb:function(A,I,g,B,C){return 0|OI(A|=0,I|=0,g|=0,B|=0,C|=0)},Zb:function(A){return GI(A|=0),0},_b:function(A,I,g,B){return 0|z(A|=0,I|=0,g|=0,B|=0)},$b:function(A,I,g,B){var C;return I|=0,g|=0,B|=0,s=C=s+-64|0,MA(A|=0,C),A=u(I,g,C,64,0,B,1),s=C- -64|0,0|A},ac:function(A,I,g){var B;return I|=0,g|=0,s=B=s+-64|0,MA(A|=0,B),A=J(I,B,64,0,g,1),s=B- -64|0,0|A},bc:function(A,I){A|=0;var g,B=0,C=0,E=0,i=0,n=0,a=0;if(s=g=s-256|0,a=-1,!sA(I|=0)&&!V(g+96|0,I)){for(s=B=(s=i=s-160|0)-1760|0,DI(E=B+480|0,C=g+96|0),fI(I=B+320|0,C),tI(B,I),xA(I,B,E),tI(E=B+160|0,I),DI(C=B+640|0,E),xA(I,B,C),tI(E,I),DI(C=B+800|0,E),xA(I,B,C),tI(E,I),DI(C=B+960|0,E),xA(I,B,C),tI(E,I),DI(C=B+1120|0,E),xA(I,B,C),tI(E,I),DI(C=B+1280|0,E),xA(I,B,C),tI(E,I),DI(C=B+1440|0,E),xA(I,B,C),tI(E,I),DI(B+1600|0,E),LI(i),I=252;fI(B+320|0,i),E=I,(0|(I=Q[I+33504|0]))>0?(tI(C=B+160|0,n=B+320|0),xA(n,C,(B+480|0)+r((254&I)>>>1|0,160)|0)):(0|I)>=0||(tI(C=B+160|0,n=B+320|0),JA(n,C,(B+480|0)+r((0-I&254)>>>1|0,160)|0)),tI(i,B+320|0),I=E-1|0,E;);s=B+1760|0,I=mI(i),s=i+160|0,I&&(ng(g),cA(g,g,E=g+136|0),ng(I=g+48|0),yA(I,I,E),O(g,g),H(I,I,g),T(A,I),a=0)}return s=g+256|0,0|a},cc:function(A,I){A|=0;var g,B=0;return s=g=s+-64|0,_I(g,I|=0,32,0),Q[0|g]=248&n[0|g],Q[g+31|0]=63&n[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],Q[A+16|0]=B,Q[A+17|0]=B>>>8,Q[A+18|0]=B>>>16,Q[A+19|0]=B>>>24,Q[A+20|0]=I,Q[A+21|0]=I>>>8,Q[A+22|0]=I>>>16,Q[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],Q[A+8|0]=B,Q[A+9|0]=B>>>8,Q[A+10|0]=B>>>16,Q[A+11|0]=B>>>24,Q[A+12|0]=I,Q[A+13|0]=I>>>8,Q[A+14|0]=I>>>16,Q[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],Q[0|A]=B,Q[A+1|0]=B>>>8,Q[A+2|0]=B>>>16,Q[A+3|0]=B>>>24,Q[A+4|0]=I,Q[A+5|0]=I>>>8,Q[A+6|0]=I>>>16,Q[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],Q[A+24|0]=B,Q[A+25|0]=B>>>8,Q[A+26|0]=B>>>16,Q[A+27|0]=B>>>24,Q[A+28|0]=I,Q[A+29|0]=I>>>8,Q[A+30|0]=I>>>16,Q[A+31|0]=I>>>24,Dg(g,64),s=g- -64|0,0},dc:FI,ec:SI,fc:function(A){var I=0,g=0;if((A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;(I=FI())>>>0>>0;);A=(I>>>0)%(A>>>0)|0}else A=0;return 0|A},gc:EI,hc:function(A,I,g){fg(A|=0,I|=0,1024,g|=0)},ic:pg,jc:function(){var A=0,I=0;return(A=i[9096])&&(A=i[A+20>>2])&&(I=0|vg[0|A]()),0|I},kc:function(A,I,g){A|=0,I|=0,1==(0|(g|=0))|g>>>0>1&&(e(1259,1119,197,1036),t()),EI(A,I)},lc:function(A,I,g,B){A|=0,g|=0;var C=0,E=0,i=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;C=(I<<1)+A|0,E=15&(i=n[I+g|0]),Q[C+1|0]=22272+((E<<8)+(E+65526&55552)|0)>>>8,E=C,C=i>>>4|0,Q[0|E]=87+((C+65526>>>8&217)+C|0),(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return Q[I+A|0]=0,0|A}xI(),t()},mc:function(A,I,g,B,C,E,a){A|=0,I|=0,g|=0,C|=0,E|=0,a|=0;var r=0,o=0,t=0,e=0,f=0,c=0,y=0,s=0,w=0,D=0,h=0;A:if(B|=0){I:{g:{B:for(;;){for(o=r;;){C:{if(!(255&((w=(65526+(y=(223&(c=n[g+o|0]))-55&255)^y+65520)>>>8|0)|(t=65526+(D=48^c)>>>8|0)))){if(t=1,!C|255&f)break g;if(DA(C,c))break C;r=o;break A}if(I>>>0<=e>>>0){i[8952]=68,t=0;break g}if(r=y&w|t&D,255&f?(Q[A+e|0]=r|h,e=e+1|0):h=r<<4,f^=-1,t=1,(r=o+1|0)>>>0>>0)continue B;break I}if(f=0,!((o=o+1|0)>>>0>>0))break}break}r=(A=r+1|0)>>>0>>0?B:A;break A}r=o}255&f?(i[8952]=28,s=-1,r=r-1|0,e=0):t||(e=0,s=-1)}return a?i[a>>2]=g+r:(0|B)!=(0|r)&&(i[8952]=28,s=-1),E&&(i[E>>2]=e),0|s},nc:function(A,I){var g;return A|=0,ag(I|=0),A=r(g=(A>>>0)/3|0,-3)+A|0,1+(r(1&(A>>>1|A),2&I?A+1|0:4)+(g<<2)|0)|0},oc:Z,pc:L,qc:function(){var A=0;return i[9097]?A=1:(i[8954]=0,s=A=s-16|0,NI(A),i[A>>2]&&(NI(A),wI(35820,0,40)),s=A+16|0,i[8953]=1,SI(),EI(36368,16),i[9097]=1,A=0),0|A},rc:function(A,I,g,B,C){A|=0,I|=0,g|=0,C|=0;var E,a=0,r=0,o=0;s=E=s-16|0;A:{if(B|=0){if(o=-1,(a=(a=B-1|0)-(r=a&B?(g>>>0)%(B>>>0)|0:g&a)|0)>>>0>=(-1^g)>>>0)break A;if(!((g=g+a|0)>>>0>=C>>>0))for(A&&(i[A>>2]=g+1),A=I+g|0,o=0,Q[E+15|0]=0,g=0;C=I=A-g|0,r=n[0|I]&n[E+15|0],I=(g^a)-1>>>24|0,Q[0|C]=r|128&I,Q[E+15|0]=I|n[E+15|0],(0|B)!=(0|(g=g+1|0)););}else o=-1;return s=E+16|0,0|o}xI(),t()},sc:function(A,I,g,B){A|=0,I|=0,g|=0,B|=0;var C,Q=0,E=0,a=0,r=0,o=0;if(i[12+(C=s-16|0)>>2]=0,B-1>>>0>>0){for(o=(Q=g-1|0)+I|0,g=0,I=0;r=((128^(E=n[o-g|0]))-1&i[C+12>>2]-1&a-1)>>>8&1,i[C+12>>2]=i[C+12>>2]|0-r&g,I|=r,a|=E,(0|B)!=(0|(g=g+1|0)););i[A>>2]=Q-i[C+12>>2],A=I-1|0}else A=-1;return 0|A},tc:function(){return 1368},uc:function(){return 10},vc:Ug,wc:kg,xc:k,yc:b,zc:vg}}(A)}(gA)},instantiate:function(A,I){return{then:function(I){var g=new D.Module(A);I({instance:new D.Instance(g)})}}},RuntimeError:Error};y=[],\"object\"!=typeof D&&d(\"no native wasm support detected\");var h,p,u,F,l,_,k,H=!1,G=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function U(A,I){return A?function(A,I,g){for(var B=I+g,C=I;A[C]&&!(C>=B);)++C;if(C-I>16&&A.subarray&&G)return G.decode(A.subarray(I,C));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&E)<<6|i)}else Q+=String.fromCharCode(E)}return Q}(u,A,I):\"\"}function S(A){h=A,a.HEAP8=p=new Int8Array(A),a.HEAP16=F=new Int16Array(A),a.HEAP32=l=new Int32Array(A),a.HEAPU8=u=new Uint8Array(A),a.HEAPU16=new Uint16Array(A),a.HEAPU32=new Uint32Array(A),a.HEAPF32=_=new Float32Array(A),a.HEAPF64=k=new Float64Array(A)}var b,m=a.INITIAL_MEMORY||16777216;(w=a.wasmMemory?a.wasmMemory:new D.Memory({initial:m/65536,maximum:32768}))&&(h=w.buffer),m=h.byteLength,S(h);var v=[],M=[],P=[],Y=0,N=null,R=null;function d(A){throw a.onAbort&&a.onAbort(A),s(A=\"Aborted(\"+A+\")\"),H=!0,A+=\". Build with -s ASSERTIONS=1 for more info.\",new D.RuntimeError(A)}a.preloadedImages={},a.preloadedAudios={};var J,x,L,K,X=\"data:application/octet-stream;base64,\";function T(A){return A.startsWith(X)}function V(A){return A.startsWith(\"file://\")}function q(A){try{if(A==J&&y)return new Uint8Array(y);var I=AA(A);if(I)return I;if(Q)return Q(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){d(A)}}T(J=\"<<< WASM_BINARY_FILE >>>\")||(x=J,J=a.locateFile?a.locateFile(x,c):c+x);var z={35048:function(){return a.getRandomValue()},35084:function(){if(void 0===a.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),a.getRandomValue=g}catch(A){try{var B=require(\"crypto\"),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),a.getRandomValue=C}catch(A){throw\"No secure random number generator found\"}}}};function j(A){for(;A.length>0;){var I=A.shift();if(\"function\"!=typeof I){var g=I.func;\"number\"==typeof g?void 0===I.arg?W(g)():W(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(a)}}function W(A){return b.get(A)}var O=[];function Z(A){try{return w.grow(A-h.byteLength+65535>>>16),S(w.buffer),1}catch(A){}}var $=\"function\"==typeof atob?atob:function(A){var I,g,B,C,Q,E,i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",n=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=i.indexOf(A.charAt(a++))<<2|(C=i.indexOf(A.charAt(a++)))>>4,g=(15&C)<<4|(Q=i.indexOf(A.charAt(a++)))>>2,B=(3&Q)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==Q&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a>=2;g=u[A++];){var B=g<105;B&&1&I&&I++,O.push(B?k[I++>>1]:l[I]),++I}return O}(I,g);return z[A].apply(null,B)},d:function(A){var I,g=u.length,B=2147483648;if((A>>>=0)>B)return!1;for(var C=1;C<=4;C*=2){var Q=g*(1+.2/C);if(Q=Math.min(Q,A+100663296),Z(Math.min(B,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1},a:w};function BA(A){function I(){IA||(IA=!0,a.calledRun=!0,H||(j(M),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)A=a.postRun.shift(),P.unshift(A);var A;j(P)}()))}A=A||o,Y>0||(function(){if(a.preRun)for(\"function\"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)A=a.preRun.shift(),v.unshift(A);var A;j(v)}(),Y>0||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){a.setStatus(\"\")}),1),I()}),1)):I()))}if(function(){var A={a:gA};function I(A,I){var g,B=A.exports;a.asm=B,b=a.asm.zc,g=a.asm.f,M.unshift(g),function(A){if(Y--,a.monitorRunDependencies&&a.monitorRunDependencies(Y),0==Y&&(null!==N&&(clearInterval(N),N=null),R)){var I=R;R=null,I()}}()}function g(A){I(A.instance)}function B(I){return function(){if(!y&&(t||e)){if(\"function\"==typeof fetch&&!V(J))return fetch(J,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+J+\"'\";return A.arrayBuffer()})).catch((function(){return q(J)}));if(C)return new Promise((function(A,I){C(J,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return q(J)}))}().then((function(I){return D.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){s(\"failed to asynchronously prepare wasm: \"+A),d(A)}))}if(Y++,a.monitorRunDependencies&&a.monitorRunDependencies(Y),a.instantiateWasm)try{return a.instantiateWasm(A,I)}catch(A){return s(\"Module.instantiateWasm callback failed with error: \"+A),!1}y||\"function\"!=typeof D.instantiateStreaming||T(J)||V(J)||\"function\"!=typeof fetch?B(g):fetch(J,{credentials:\"same-origin\"}).then((function(I){return D.instantiateStreaming(I,A).then(g,(function(A){return s(\"wasm streaming compile failed: \"+A),s(\"falling back to ArrayBuffer instantiation\"),B(g)}))}))}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.f).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_encrypt_detached=a.asm.g).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt=function(){return(a._crypto_aead_chacha20poly1305_encrypt=a.asm.h).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=a.asm.i).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt=a.asm.j).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_decrypt_detached=a.asm.k).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt=function(){return(a._crypto_aead_chacha20poly1305_decrypt=a.asm.l).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=a.asm.m).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt=a.asm.n).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_keybytes=a.asm.o).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_npubbytes=a.asm.p).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_nsecbytes=a.asm.q).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_abytes=a.asm.r).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=a.asm.s).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_chacha20poly1305_ietf_keygen=a.asm.t).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keybytes=function(){return(a._crypto_aead_chacha20poly1305_keybytes=a.asm.u).apply(null,arguments)},a._crypto_aead_chacha20poly1305_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_npubbytes=a.asm.v).apply(null,arguments)},a._crypto_aead_chacha20poly1305_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_nsecbytes=a.asm.w).apply(null,arguments)},a._crypto_aead_chacha20poly1305_abytes=function(){return(a._crypto_aead_chacha20poly1305_abytes=a.asm.x).apply(null,arguments)},a._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_messagebytes_max=a.asm.y).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keygen=function(){return(a._crypto_aead_chacha20poly1305_keygen=a.asm.z).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=a.asm.A).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt=a.asm.B).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=a.asm.C).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt=a.asm.D).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keybytes=a.asm.E).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_npubbytes=a.asm.F).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=a.asm.G).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_abytes=a.asm.H).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=a.asm.I).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keygen=a.asm.J).apply(null,arguments)},a._crypto_auth_bytes=function(){return(a._crypto_auth_bytes=a.asm.K).apply(null,arguments)},a._crypto_auth_keybytes=function(){return(a._crypto_auth_keybytes=a.asm.L).apply(null,arguments)},a._crypto_auth=function(){return(a._crypto_auth=a.asm.M).apply(null,arguments)},a._crypto_auth_verify=function(){return(a._crypto_auth_verify=a.asm.N).apply(null,arguments)},a._crypto_auth_keygen=function(){return(a._crypto_auth_keygen=a.asm.O).apply(null,arguments)},a._crypto_box_seedbytes=function(){return(a._crypto_box_seedbytes=a.asm.P).apply(null,arguments)},a._crypto_box_publickeybytes=function(){return(a._crypto_box_publickeybytes=a.asm.Q).apply(null,arguments)},a._crypto_box_secretkeybytes=function(){return(a._crypto_box_secretkeybytes=a.asm.R).apply(null,arguments)},a._crypto_box_beforenmbytes=function(){return(a._crypto_box_beforenmbytes=a.asm.S).apply(null,arguments)},a._crypto_box_noncebytes=function(){return(a._crypto_box_noncebytes=a.asm.T).apply(null,arguments)},a._crypto_box_macbytes=function(){return(a._crypto_box_macbytes=a.asm.U).apply(null,arguments)},a._crypto_box_messagebytes_max=function(){return(a._crypto_box_messagebytes_max=a.asm.V).apply(null,arguments)},a._crypto_box_seed_keypair=function(){return(a._crypto_box_seed_keypair=a.asm.W).apply(null,arguments)},a._crypto_box_keypair=function(){return(a._crypto_box_keypair=a.asm.X).apply(null,arguments)},a._crypto_box_beforenm=function(){return(a._crypto_box_beforenm=a.asm.Y).apply(null,arguments)},a._crypto_box_detached_afternm=function(){return(a._crypto_box_detached_afternm=a.asm.Z).apply(null,arguments)},a._crypto_box_detached=function(){return(a._crypto_box_detached=a.asm._).apply(null,arguments)},a._crypto_box_easy_afternm=function(){return(a._crypto_box_easy_afternm=a.asm.$).apply(null,arguments)},a._crypto_box_easy=function(){return(a._crypto_box_easy=a.asm.aa).apply(null,arguments)},a._crypto_box_open_detached_afternm=function(){return(a._crypto_box_open_detached_afternm=a.asm.ba).apply(null,arguments)},a._crypto_box_open_detached=function(){return(a._crypto_box_open_detached=a.asm.ca).apply(null,arguments)},a._crypto_box_open_easy_afternm=function(){return(a._crypto_box_open_easy_afternm=a.asm.da).apply(null,arguments)},a._crypto_box_open_easy=function(){return(a._crypto_box_open_easy=a.asm.ea).apply(null,arguments)},a._crypto_box_seal=function(){return(a._crypto_box_seal=a.asm.fa).apply(null,arguments)},a._crypto_box_seal_open=function(){return(a._crypto_box_seal_open=a.asm.ga).apply(null,arguments)},a._crypto_box_sealbytes=function(){return(a._crypto_box_sealbytes=a.asm.ha).apply(null,arguments)},a._crypto_generichash_bytes_min=function(){return(a._crypto_generichash_bytes_min=a.asm.ia).apply(null,arguments)},a._crypto_generichash_bytes_max=function(){return(a._crypto_generichash_bytes_max=a.asm.ja).apply(null,arguments)},a._crypto_generichash_bytes=function(){return(a._crypto_generichash_bytes=a.asm.ka).apply(null,arguments)},a._crypto_generichash_keybytes_min=function(){return(a._crypto_generichash_keybytes_min=a.asm.la).apply(null,arguments)},a._crypto_generichash_keybytes_max=function(){return(a._crypto_generichash_keybytes_max=a.asm.ma).apply(null,arguments)},a._crypto_generichash_keybytes=function(){return(a._crypto_generichash_keybytes=a.asm.na).apply(null,arguments)},a._crypto_generichash_statebytes=function(){return(a._crypto_generichash_statebytes=a.asm.oa).apply(null,arguments)},a._crypto_generichash=function(){return(a._crypto_generichash=a.asm.pa).apply(null,arguments)},a._crypto_generichash_init=function(){return(a._crypto_generichash_init=a.asm.qa).apply(null,arguments)},a._crypto_generichash_update=function(){return(a._crypto_generichash_update=a.asm.ra).apply(null,arguments)},a._crypto_generichash_final=function(){return(a._crypto_generichash_final=a.asm.sa).apply(null,arguments)},a._crypto_generichash_keygen=function(){return(a._crypto_generichash_keygen=a.asm.ta).apply(null,arguments)},a._crypto_hash_bytes=function(){return(a._crypto_hash_bytes=a.asm.ua).apply(null,arguments)},a._crypto_hash=function(){return(a._crypto_hash=a.asm.va).apply(null,arguments)},a._crypto_kdf_bytes_min=function(){return(a._crypto_kdf_bytes_min=a.asm.wa).apply(null,arguments)},a._crypto_kdf_bytes_max=function(){return(a._crypto_kdf_bytes_max=a.asm.xa).apply(null,arguments)},a._crypto_kdf_contextbytes=function(){return(a._crypto_kdf_contextbytes=a.asm.ya).apply(null,arguments)},a._crypto_kdf_keybytes=function(){return(a._crypto_kdf_keybytes=a.asm.za).apply(null,arguments)},a._crypto_kdf_derive_from_key=function(){return(a._crypto_kdf_derive_from_key=a.asm.Aa).apply(null,arguments)},a._crypto_kdf_keygen=function(){return(a._crypto_kdf_keygen=a.asm.Ba).apply(null,arguments)},a._crypto_kx_seed_keypair=function(){return(a._crypto_kx_seed_keypair=a.asm.Ca).apply(null,arguments)},a._crypto_kx_keypair=function(){return(a._crypto_kx_keypair=a.asm.Da).apply(null,arguments)},a._crypto_kx_client_session_keys=function(){return(a._crypto_kx_client_session_keys=a.asm.Ea).apply(null,arguments)},a._crypto_kx_server_session_keys=function(){return(a._crypto_kx_server_session_keys=a.asm.Fa).apply(null,arguments)},a._crypto_kx_publickeybytes=function(){return(a._crypto_kx_publickeybytes=a.asm.Ga).apply(null,arguments)},a._crypto_kx_secretkeybytes=function(){return(a._crypto_kx_secretkeybytes=a.asm.Ha).apply(null,arguments)},a._crypto_kx_seedbytes=function(){return(a._crypto_kx_seedbytes=a.asm.Ia).apply(null,arguments)},a._crypto_kx_sessionkeybytes=function(){return(a._crypto_kx_sessionkeybytes=a.asm.Ja).apply(null,arguments)},a._crypto_pwhash_alg_argon2i13=function(){return(a._crypto_pwhash_alg_argon2i13=a.asm.Ka).apply(null,arguments)},a._crypto_pwhash_alg_argon2id13=function(){return(a._crypto_pwhash_alg_argon2id13=a.asm.La).apply(null,arguments)},a._crypto_pwhash_alg_default=function(){return(a._crypto_pwhash_alg_default=a.asm.Ma).apply(null,arguments)},a._crypto_pwhash_bytes_min=function(){return(a._crypto_pwhash_bytes_min=a.asm.Na).apply(null,arguments)},a._crypto_pwhash_bytes_max=function(){return(a._crypto_pwhash_bytes_max=a.asm.Oa).apply(null,arguments)},a._crypto_pwhash_passwd_min=function(){return(a._crypto_pwhash_passwd_min=a.asm.Pa).apply(null,arguments)},a._crypto_pwhash_passwd_max=function(){return(a._crypto_pwhash_passwd_max=a.asm.Qa).apply(null,arguments)},a._crypto_pwhash_saltbytes=function(){return(a._crypto_pwhash_saltbytes=a.asm.Ra).apply(null,arguments)},a._crypto_pwhash_strbytes=function(){return(a._crypto_pwhash_strbytes=a.asm.Sa).apply(null,arguments)},a._crypto_pwhash_strprefix=function(){return(a._crypto_pwhash_strprefix=a.asm.Ta).apply(null,arguments)},a._crypto_pwhash_opslimit_min=function(){return(a._crypto_pwhash_opslimit_min=a.asm.Ua).apply(null,arguments)},a._crypto_pwhash_opslimit_max=function(){return(a._crypto_pwhash_opslimit_max=a.asm.Va).apply(null,arguments)},a._crypto_pwhash_memlimit_min=function(){return(a._crypto_pwhash_memlimit_min=a.asm.Wa).apply(null,arguments)},a._crypto_pwhash_memlimit_max=function(){return(a._crypto_pwhash_memlimit_max=a.asm.Xa).apply(null,arguments)},a._crypto_pwhash_opslimit_interactive=function(){return(a._crypto_pwhash_opslimit_interactive=a.asm.Ya).apply(null,arguments)},a._crypto_pwhash_memlimit_interactive=function(){return(a._crypto_pwhash_memlimit_interactive=a.asm.Za).apply(null,arguments)},a._crypto_pwhash_opslimit_moderate=function(){return(a._crypto_pwhash_opslimit_moderate=a.asm._a).apply(null,arguments)},a._crypto_pwhash_memlimit_moderate=function(){return(a._crypto_pwhash_memlimit_moderate=a.asm.$a).apply(null,arguments)},a._crypto_pwhash_opslimit_sensitive=function(){return(a._crypto_pwhash_opslimit_sensitive=a.asm.ab).apply(null,arguments)},a._crypto_pwhash_memlimit_sensitive=function(){return(a._crypto_pwhash_memlimit_sensitive=a.asm.bb).apply(null,arguments)},a._crypto_pwhash=function(){return(a._crypto_pwhash=a.asm.cb).apply(null,arguments)},a._crypto_pwhash_str=function(){return(a._crypto_pwhash_str=a.asm.db).apply(null,arguments)},a._crypto_pwhash_str_alg=function(){return(a._crypto_pwhash_str_alg=a.asm.eb).apply(null,arguments)},a._crypto_pwhash_str_verify=function(){return(a._crypto_pwhash_str_verify=a.asm.fb).apply(null,arguments)},a._crypto_pwhash_str_needs_rehash=function(){return(a._crypto_pwhash_str_needs_rehash=a.asm.gb).apply(null,arguments)},a._crypto_scalarmult_base=function(){return(a._crypto_scalarmult_base=a.asm.hb).apply(null,arguments)},a._crypto_scalarmult=function(){return(a._crypto_scalarmult=a.asm.ib).apply(null,arguments)},a._crypto_scalarmult_bytes=function(){return(a._crypto_scalarmult_bytes=a.asm.jb).apply(null,arguments)},a._crypto_scalarmult_scalarbytes=function(){return(a._crypto_scalarmult_scalarbytes=a.asm.kb).apply(null,arguments)},a._crypto_secretbox_keybytes=function(){return(a._crypto_secretbox_keybytes=a.asm.lb).apply(null,arguments)},a._crypto_secretbox_noncebytes=function(){return(a._crypto_secretbox_noncebytes=a.asm.mb).apply(null,arguments)},a._crypto_secretbox_macbytes=function(){return(a._crypto_secretbox_macbytes=a.asm.nb).apply(null,arguments)},a._crypto_secretbox_messagebytes_max=function(){return(a._crypto_secretbox_messagebytes_max=a.asm.ob).apply(null,arguments)},a._crypto_secretbox_keygen=function(){return(a._crypto_secretbox_keygen=a.asm.pb).apply(null,arguments)},a._crypto_secretbox_detached=function(){return(a._crypto_secretbox_detached=a.asm.qb).apply(null,arguments)},a._crypto_secretbox_easy=function(){return(a._crypto_secretbox_easy=a.asm.rb).apply(null,arguments)},a._crypto_secretbox_open_detached=function(){return(a._crypto_secretbox_open_detached=a.asm.sb).apply(null,arguments)},a._crypto_secretbox_open_easy=function(){return(a._crypto_secretbox_open_easy=a.asm.tb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keygen=function(){return(a._crypto_secretstream_xchacha20poly1305_keygen=a.asm.ub).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_push=function(){return(a._crypto_secretstream_xchacha20poly1305_init_push=a.asm.vb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_init_pull=a.asm.wb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_rekey=a.asm.xb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_push=function(){return(a._crypto_secretstream_xchacha20poly1305_push=a.asm.yb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_pull=a.asm.zb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(a._crypto_secretstream_xchacha20poly1305_statebytes=a.asm.Ab).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_abytes=function(){return(a._crypto_secretstream_xchacha20poly1305_abytes=a.asm.Bb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(a._crypto_secretstream_xchacha20poly1305_headerbytes=a.asm.Cb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(a._crypto_secretstream_xchacha20poly1305_keybytes=a.asm.Db).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(a._crypto_secretstream_xchacha20poly1305_messagebytes_max=a.asm.Eb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_message=a.asm.Fb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_push=a.asm.Gb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_rekey=a.asm.Hb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_final=a.asm.Ib).apply(null,arguments)},a._crypto_shorthash_bytes=function(){return(a._crypto_shorthash_bytes=a.asm.Jb).apply(null,arguments)},a._crypto_shorthash_keybytes=function(){return(a._crypto_shorthash_keybytes=a.asm.Kb).apply(null,arguments)},a._crypto_shorthash=function(){return(a._crypto_shorthash=a.asm.Lb).apply(null,arguments)},a._crypto_shorthash_keygen=function(){return(a._crypto_shorthash_keygen=a.asm.Mb).apply(null,arguments)},a._crypto_sign_statebytes=function(){return(a._crypto_sign_statebytes=a.asm.Nb).apply(null,arguments)},a._crypto_sign_bytes=function(){return(a._crypto_sign_bytes=a.asm.Ob).apply(null,arguments)},a._crypto_sign_seedbytes=function(){return(a._crypto_sign_seedbytes=a.asm.Pb).apply(null,arguments)},a._crypto_sign_publickeybytes=function(){return(a._crypto_sign_publickeybytes=a.asm.Qb).apply(null,arguments)},a._crypto_sign_secretkeybytes=function(){return(a._crypto_sign_secretkeybytes=a.asm.Rb).apply(null,arguments)},a._crypto_sign_messagebytes_max=function(){return(a._crypto_sign_messagebytes_max=a.asm.Sb).apply(null,arguments)},a._crypto_sign_seed_keypair=function(){return(a._crypto_sign_seed_keypair=a.asm.Tb).apply(null,arguments)},a._crypto_sign_keypair=function(){return(a._crypto_sign_keypair=a.asm.Ub).apply(null,arguments)},a._crypto_sign=function(){return(a._crypto_sign=a.asm.Vb).apply(null,arguments)},a._crypto_sign_open=function(){return(a._crypto_sign_open=a.asm.Wb).apply(null,arguments)},a._crypto_sign_detached=function(){return(a._crypto_sign_detached=a.asm.Xb).apply(null,arguments)},a._crypto_sign_verify_detached=function(){return(a._crypto_sign_verify_detached=a.asm.Yb).apply(null,arguments)},a._crypto_sign_init=function(){return(a._crypto_sign_init=a.asm.Zb).apply(null,arguments)},a._crypto_sign_update=function(){return(a._crypto_sign_update=a.asm._b).apply(null,arguments)},a._crypto_sign_final_create=function(){return(a._crypto_sign_final_create=a.asm.$b).apply(null,arguments)},a._crypto_sign_final_verify=function(){return(a._crypto_sign_final_verify=a.asm.ac).apply(null,arguments)},a._crypto_sign_ed25519_pk_to_curve25519=function(){return(a._crypto_sign_ed25519_pk_to_curve25519=a.asm.bc).apply(null,arguments)},a._crypto_sign_ed25519_sk_to_curve25519=function(){return(a._crypto_sign_ed25519_sk_to_curve25519=a.asm.cc).apply(null,arguments)},a._randombytes_random=function(){return(a._randombytes_random=a.asm.dc).apply(null,arguments)},a._randombytes_stir=function(){return(a._randombytes_stir=a.asm.ec).apply(null,arguments)},a._randombytes_uniform=function(){return(a._randombytes_uniform=a.asm.fc).apply(null,arguments)},a._randombytes_buf=function(){return(a._randombytes_buf=a.asm.gc).apply(null,arguments)},a._randombytes_buf_deterministic=function(){return(a._randombytes_buf_deterministic=a.asm.hc).apply(null,arguments)},a._randombytes_seedbytes=function(){return(a._randombytes_seedbytes=a.asm.ic).apply(null,arguments)},a._randombytes_close=function(){return(a._randombytes_close=a.asm.jc).apply(null,arguments)},a._randombytes=function(){return(a._randombytes=a.asm.kc).apply(null,arguments)},a._sodium_bin2hex=function(){return(a._sodium_bin2hex=a.asm.lc).apply(null,arguments)},a._sodium_hex2bin=function(){return(a._sodium_hex2bin=a.asm.mc).apply(null,arguments)},a._sodium_base64_encoded_len=function(){return(a._sodium_base64_encoded_len=a.asm.nc).apply(null,arguments)},a._sodium_bin2base64=function(){return(a._sodium_bin2base64=a.asm.oc).apply(null,arguments)},a._sodium_base642bin=function(){return(a._sodium_base642bin=a.asm.pc).apply(null,arguments)},a._sodium_init=function(){return(a._sodium_init=a.asm.qc).apply(null,arguments)},a._sodium_pad=function(){return(a._sodium_pad=a.asm.rc).apply(null,arguments)},a._sodium_unpad=function(){return(a._sodium_unpad=a.asm.sc).apply(null,arguments)},a._sodium_version_string=function(){return(a._sodium_version_string=a.asm.tc).apply(null,arguments)},a._sodium_library_version_major=function(){return(a._sodium_library_version_major=a.asm.uc).apply(null,arguments)},a._sodium_library_version_minor=function(){return(a._sodium_library_version_minor=a.asm.vc).apply(null,arguments)},a._sodium_library_minimal=function(){return(a._sodium_library_minimal=a.asm.wc).apply(null,arguments)},a._malloc=function(){return(a._malloc=a.asm.xc).apply(null,arguments)},a._free=function(){return(a._free=a.asm.yc).apply(null,arguments)},a.setValue=function(A,I,g=\"i8\",B){switch(\"*\"===g.charAt(g.length-1)&&(g=\"i32\"),g){case\"i1\":case\"i8\":p[A>>0]=I;break;case\"i16\":F[A>>1]=I;break;case\"i32\":l[A>>2]=I;break;case\"i64\":K=[I>>>0,(L=I,+Math.abs(L)>=1?L>0?(0|Math.min(+Math.floor(L/4294967296),4294967295))>>>0:~~+Math.ceil((L-+(~~L>>>0))/4294967296)>>>0:0)],l[A>>2]=K[0],l[A+4>>2]=K[1];break;case\"float\":_[A>>2]=I;break;case\"double\":k[A>>3]=I;break;default:d(\"invalid type for setValue: \"+g)}},a.getValue=function(A,I=\"i8\",g){switch(\"*\"===I.charAt(I.length-1)&&(I=\"i32\"),I){case\"i1\":case\"i8\":return p[A>>0];case\"i16\":return F[A>>1];case\"i32\":case\"i64\":return l[A>>2];case\"float\":return _[A>>2];case\"double\":return Number(k[A>>3]);default:d(\"invalid type for getValue: \"+I)}return null},a.UTF8ToString=U,R=function A(){IA||BA(),IA||(R=A)},a.run=BA,a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();BA()}))};var g,C,Q,E,i,n,a=void 0!==a?a:{},r=Object.assign({},a),o=[],t=\"object\"==typeof window,e=\"function\"==typeof importScripts,f=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,c=\"\";f?(c=e?require(\"path\").dirname(c)+\"/\":__dirname+\"/\",n=()=>{i||(E=require(\"fs\"),i=require(\"path\"))},g=function(A,I){var g=Z(A);return g?I?g:g.toString():(n(),A=i.normalize(A),E.readFileSync(A,I?void 0:\"utf8\"))},Q=A=>{var I=g(A,!0);return I.buffer||(I=new Uint8Array(I)),I},C=(A,I,g)=>{var B=Z(A);B&&I(B),n(),A=i.normalize(A),E.readFile(A,(function(A,B){A?g(A):I(B.buffer)}))},process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),o=process.argv.slice(2),\"undefined\"!=typeof module&&(module.exports=a),a.inspect=function(){return\"[Emscripten Module object]\"}):(t||e)&&(e?c=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(c=document.currentScript.src),c=0!==c.indexOf(\"blob:\")?c.substr(0,c.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",g=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.send(null),I.responseText}catch(I){var g=Z(A);if(g)return function(A){for(var I=[],g=0;g255&&(B&=255),I.push(String.fromCharCode(B))}return I.join(\"\")}(g);throw I}},e&&(Q=A=>{try{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}catch(I){var g=Z(A);if(g)return g;throw I}}),C=(A,I,g)=>{var B=new XMLHttpRequest;B.open(\"GET\",A,!0),B.responseType=\"arraybuffer\",B.onload=()=>{if(200==B.status||0==B.status&&B.response)I(B.response);else{var C=Z(A);C?I(C.buffer):g()}},B.onerror=g,B.send(null)}),a.print;var y,s,w=a.printErr||void 0;Object.assign(a,r),r=null,a.arguments&&(o=a.arguments),a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(y=a.wasmBinary),a.noExitRuntime,\"object\"!=typeof WebAssembly&&N(\"no native wasm support detected\");var D,h,p,u,F,l,_,k=!1,H=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;function G(A,I){return A?function(A,I,g){for(var B=I+g,C=I;A[C]&&!(C>=B);)++C;if(C-I>16&&A.subarray&&H)return H.decode(A.subarray(I,C));for(var Q=\"\";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&E)<<6|i)}else Q+=String.fromCharCode(E)}return Q}(p,A,I):\"\"}function U(A){D=A,a.HEAP8=h=new Int8Array(A),a.HEAP16=u=new Int16Array(A),a.HEAP32=F=new Int32Array(A),a.HEAPU8=p=new Uint8Array(A),a.HEAPU16=new Uint16Array(A),a.HEAPU32=new Uint32Array(A),a.HEAPF32=l=new Float32Array(A),a.HEAPF64=_=new Float64Array(A)}a.INITIAL_MEMORY;var S,b=[],m=[],v=[],M=0,P=null,Y=null;function N(A){throw a.onAbort&&a.onAbort(A),w(A=\"Aborted(\"+A+\")\"),k=!0,A+=\". Build with -s ASSERTIONS=1 for more info.\",new WebAssembly.RuntimeError(A)}a.preloadedImages={},a.preloadedAudios={};var R,d,J,x,L=\"data:application/octet-stream;base64,\";function K(A){return A.startsWith(L)}function X(A){return A.startsWith(\"file://\")}function T(A){try{if(A==R&&y)return new Uint8Array(y);var I=Z(A);if(I)return I;if(Q)return Q(A);throw\"both async and sync fetching of the wasm failed\"}catch(A){N(A)}}K(R=\"data:application/octet-stream;base64,AGFzbQEAAAABvgImYAJ/fwBgAAF/YAN/f38Bf2ACf38Bf2ADf39/AGABfwBgAX8Bf2AEf39/fwF/YAt/f39/f39/f39/fwF/YAV/f39/fwF/YAZ/f39/f38Bf2AHf39/f39/fwF/YAN/f34Bf2AEf35/fwF/YAZ/f39+f38Bf2AAAGAGf39+f39/AX9gBH9/fn8Bf2AGf39+f35/AX9gDH9/f39/f39/f39/fwF/YAh/f39/f39/fwF/YAR/f39/AGADf39+AGAFf39+f38AYAh/f35/f35/fwF/YAl/f39/fn9+f38Bf2ACfn8BfmACf34AYAZ/f35/f38AYAR/fn9/AGAHf39/fn9/fwF/YAp/f39/f39/f39/AX9gAn5+AX5gAX8BfmAEf39/fgBgBX9/fn5/AX9gBX9/fn9/AX9gBX9/f35/AX8CHwUBYQFhABUBYQFiAAIBYQFjAAYBYQFkAA8BYQFlAAIDkwKRAhogAwAABBYaACECGwIEAA8EAQwFAAQMBQABBgIGBAAADAMABQAGAAAAHAEFAAEdEwwFAQwEAAAAAwUAAwIHIgMAAhUBAQEEAgcEAgUGAAQABAYWBgQVARwdAgMODg4OAgIBFAkFAAEFBQEOAhsFAAADFwMPBAUABAADBgAAABYAEQMCAAAFDxcEBBAeEB4DEQQjDQcCGBkOBgYEESQlDgIEGBgZGQAFBwMXAgIDDAMRAQQGBAcJCgoKCR8fCgsKCwcHFAsICgcHCwoJCwoUCwsKFAsJCQgICBMICAgICBMIExAJCQMCAQEFARICAQEBAQEBAQENAQMLBwIHBgMCAQEDAw0BBwEBAQIJAgAAARINAwQEAXAADgUHAQGAAoCAAgYJAX8BQbCcwgILB8MHuAEBZgIAAWcAeAFoAOUBAWkA5AEBagDjAQFrAOIBAWwA4QEBbQDgAQFuAN8BAW8A3gEBcAAWAXEAiAIBcgAyAXMAHgF0ADcBdQAoAXYAFgF3AG4BeAAyAXkAHgF6ADcBQQAoAUIA3QEBQwDcAQFEANsBAUUA2gEBRgAWAUcASgFIADIBSQAeAUoANwFLACgBTAAWAU0AFgFOANkBAU8A2AEBUAAoAVEAFgFSABYBUwAWAVQAFgFVAEoBVgAeAVcANwFYAPABAVkAkwEBWgBkAV8A1wEBJADWAQJhYQDVAQJiYQDUAQJjYQDTAQJkYQDSAQJlYQDRAQJmYQDQAQJnYQDPAQJoYQDOAQJpYQDuAQJqYQAeAmthAC8CbGEAFgJtYQAeAm5hAC8Cb2EAFgJwYQD6AQJxYQDNAQJyYQBCAnNhAMwBAnRhAEECdWEAKAJ2YQAvAndhAMsBAnhhAB4CeWEALwJ6YQBuAkFhABYCQmEAygECQ2EAKAJEYQDqAQJFYQDpAQJGYQDoAQJHYQDnAQJIYQAWAklhABYCSmEAFgJLYQAWAkxhAEkCTWEASAJOYQBIAk9hAB4CUGEAZgJRYQAyAlJhAGYCU2EAHgJUYQD4AQJVYQD3AQJWYQBJAldhAGYCWGEA9gECWWEA9QECWmEASAJfYQD0AQIkYQBrAmFiAPMBAmJiAPIBAmNiAPEBAmRiAMkBAmViAMgBAmZiAMcBAmdiAMYBAmhiAMUBAmliAF8CamIAXgJrYgAWAmxiABYCbWIAFgJuYgBKAm9iAB4CcGIANwJxYgAoAnJiAMQBAnNiAMMBAnRiAMIBAnViAMEBAnZiACgCd2IAjwICeGIAjQICeWIAbAJ6YgDAAQJBYgC/AQJCYgCMAgJDYgCLAgJEYgBKAkViABYCRmIAigICR2IAMgJIYgBJAkliAEgCSmIAawJLYgBuAkxiAB4CTWIAvgECTmIA7QECT2IAhAICUGIALwJRYgAWAlJiABYCU2IALwJUYgCDAgJVYgCCAgJWYgCBAgJXYgC9AQJYYgC8AQJZYgC7AQJaYgC6AQJfYgCAAgIkYgC5AQJhYwD/AQJiYwD+AQJjYwCGAgJkYwCFAgJlYwBbAmZjAIsBAmdjALcBAmhjAB0CaWMAtgECamMAFgJrYwC1AQJsYwC4AQJtYwD9AQJuYwD8AQJvYwD7AQJwYwBoAnFjAGcCcmMAkgICc2MAjgICdGMAiQICdWMA7AECdmMA6wECd2MAawJ4YwBJAnljAB8CemMAGAJBYwEACSABAEEBCw2HAvkB7wHmAYUBtAGzAbIBsQGwAZUClAKTAgq2nASRAggAIAAgAa2KCx4AIAAgAXwgAEIBhkL+////H4MgAUL/////D4N+fAsHACAAIAF3CwsAIABBACABEA8aCwkAIAAgATYAAAudCQInfgx/IAAgAigCBCIqrCILIAEoAhQiK0EBdKwiFH4gAjQCACIDIAE0AhgiBn58IAIoAggiLKwiDSABNAIQIgd+fCACKAIMIi2sIhAgASgCDCIuQQF0rCIVfnwgAigCECIvrCIRIAE0AggiCH58IAIoAhQiMKwiFiABKAIEIjFBAXSsIhd+fCACKAIYIjKsIiAgATQCACIJfnwgAigCHCIzQRNsrCIMIAEoAiQiNEEBdKwiGH58IAIoAiAiNUETbKwiBCABNAIgIgp+fCACKAIkIgJBE2ysIgUgASgCHCIBQQF0rCIZfnwgByALfiADICusIhp+fCANIC6sIht+fCAIIBB+fCARIDGsIhx+fCAJIBZ+fCAyQRNsrCIOIDSsIh1+fCAKIAx+fCAEIAGsIh5+fCAFIAZ+fCALIBV+IAMgB358IAggDX58IBAgF358IAkgEX58IDBBE2ysIh8gGH58IAogDn58IAwgGX58IAQgBn58IAUgFH58IiJCgICAEHwiI0Iah3wiJEKAgIAIfCIlQhmHfCISIBJCgICAEHwiE0KAgIDgD4N9PgIYIAAgCyAXfiADIAh+fCAJIA1+fCAtQRNsrCIPIBh+fCAKIC9BE2ysIhJ+fCAZIB9+fCAGIA5+fCAMIBR+fCAEIAd+fCAFIBV+fCAJIAt+IAMgHH58ICxBE2ysIiEgHX58IAogD358IBIgHn58IAYgH358IA4gGn58IAcgDH58IAQgG358IAUgCH58ICpBE2ysIBh+IAMgCX58IAogIX58IA8gGX58IAYgEn58IBQgH358IAcgDn58IAwgFX58IAQgCH58IAUgF358IiFCgICAEHwiJkIah3wiJ0KAgIAIfCIoQhmHfCIPIA9CgICAEHwiKUKAgIDgD4N9PgIIIAAgBiALfiADIB5+fCANIBp+fCAHIBB+fCARIBt+fCAIIBZ+fCAcICB+fCAJIDOsIg9+fCAEIB1+fCAFIAp+fCATQhqHfCITIBNCgICACHwiE0KAgIDwD4N9PgIcIAAgCCALfiADIBt+fCANIBx+fCAJIBB+fCASIB1+fCAKIB9+fCAOIB5+fCAGIAx+fCAEIBp+fCAFIAd+fCApQhqHfCIEIARCgICACHwiBEKAgIDwD4N9PgIMIAAgCyAZfiADIAp+fCAGIA1+fCAQIBR+fCAHIBF+fCAVIBZ+fCAIICB+fCAPIBd+fCAJIDWsIgx+fCAFIBh+fCATQhmHfCIFIAVCgICAEHwiBUKAgIDgD4N9PgIgIAAgJCAlQoCAgPAPg30gIiAjQoCAgGCDfSAEQhmHfCIEQoCAgBB8Ig5CGoh8PgIUIAAgBCAOQoCAgOAPg30+AhAgACAKIAt+IAMgHX58IA0gHn58IAYgEH58IBEgGn58IAcgFn58IBsgIH58IAggD358IAwgHH58IAkgAqx+fCAFQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgIkIAAgJyAoQoCAgPAPg30gISAmQoCAgGCDfSADQhmHQhN+fCIDQoCAgBB8IgZCGoh8PgIEIAAgAyAGQoCAgOAPg30+AgALEwAgACABIAJB0JECKAIAEQwAGgsIACAAIAGtiQvLBgIbfgd/IAAgASgCDCIdQQF0rCIHIB2sIhN+IAEoAhAiIKwiBiABKAIIIiFBAXSsIgt+fCABKAIUIh1BAXSsIgggASgCBCIiQQF0rCICfnwgASgCGCIfrCIJIAEoAgAiI0EBdKwiBX58IAEoAiAiHkETbKwiAyAerCIQfnwgASgCJCIeQSZsrCIEIAEoAhwiAUEBdKwiFH58IAIgBn4gCyATfnwgHawiESAFfnwgAyAUfnwgBCAJfnwgAiAHfiAhrCIOIA5+fCAFIAZ+fCABQSZsrCIPIAGsIhV+fCADIB9BAXSsfnwgBCAIfnwiF0KAgIAQfCIYQhqHfCIZQoCAgAh8IhpCGYd8IgogCkKAgIAQfCIMQoCAgOAPg30+AhggACAFIA5+IAIgIqwiDX58IB9BE2ysIgogCX58IAggD358IAMgIEEBdKwiFn58IAQgB358IAggCn4gBSANfnwgBiAPfnwgAyAHfnwgBCAOfnwgHUEmbKwgEX4gI6wiDSANfnwgCiAWfnwgByAPfnwgAyALfnwgAiAEfnwiCkKAgIAQfCINQhqHfCIbQoCAgAh8IhxCGYd8IhIgEkKAgIAQfCISQoCAgOAPg30+AgggACALIBF+IAYgB358IAIgCX58IAUgFX58IAQgEH58IAxCGod8IgwgDEKAgIAIfCIMQoCAgPAPg30+AhwgACAFIBN+IAIgDn58IAkgD358IAMgCH58IAQgBn58IBJCGod8IgMgA0KAgIAIfCIDQoCAgPAPg30+AgwgACAJIAt+IAYgBn58IAcgCH58IAIgFH58IAUgEH58IAQgHqwiBn58IAxCGYd8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAgACAZIBpCgICA8A+DfSAXIBhCgICAYIN9IANCGYd8IgNCgICAEHwiCEIaiHw+AhQgACADIAhCgICA4A+DfT4CECAAIAcgCX4gESAWfnwgCyAVfnwgAiAQfnwgBSAGfnwgBEIah3wiAiACQoCAgAh8IgJCgICA8A+DfT4CJCAAIBsgHEKAgIDwD4N9IAogDUKAgIBgg30gAkIZh0ITfnwiAkKAgIAQfCIFQhqIfD4CBCAAIAIgBUKAgIDgD4N9PgIACxAAIAAzAAAgADEAAkIQhoQL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALCQAgACABNwAAC4EEAQN/IAJBgARPBEAgACABIAIQBBogAA8LIAAgAmohAwJAIAAgAXNBA3FFBEACQCAAQQNxRQRAIAAhAgwBCyACRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAAL7AEBEn8gAigCBCEDIAEoAgQhBCACKAIIIQUgASgCCCEGIAIoAgwhByABKAIMIQggAigCECEJIAEoAhAhCiACKAIUIQsgASgCFCEMIAIoAhghDSABKAIYIQ4gAigCHCEPIAEoAhwhECACKAIgIREgASgCICESIAIoAiQhEyABKAIkIRQgACACKAIAIAEoAgBqNgIAIAAgEyAUajYCJCAAIBEgEmo2AiAgACAPIBBqNgIcIAAgDSAOajYCGCAAIAsgDGo2AhQgACAJIApqNgIQIAAgByAIajYCDCAAIAUgBmo2AgggACADIARqNgIEC0ABA38gACABIAFB+ABqIgIQCiAAQShqIAFBKGoiAyABQdAAaiIEEAogAEHQAGogBCACEAogAEH4AGogASADEAoLGAEBf0GonAIoAgAiAARAIAARDwALEAMAC+wBARJ/IAIoAgQhAyABKAIEIQQgAigCCCEFIAEoAgghBiACKAIMIQcgASgCDCEIIAIoAhAhCSABKAIQIQogAigCFCELIAEoAhQhDCACKAIYIQ0gASgCGCEOIAIoAhwhDyABKAIcIRAgAigCICERIAEoAiAhEiACKAIkIRMgASgCJCEUIAAgASgCACACKAIAazYCACAAIBQgE2s2AiQgACASIBFrNgIgIAAgECAPazYCHCAAIA4gDWs2AhggACAMIAtrNgIUIAAgCiAJazYCECAAIAggB2s2AgwgACAGIAVrNgIIIAAgBCADazYCBAsEAEEgCwoAIAAgASACEDgLzAwBB38CQCAARQ0AIABBCGsiAyAAQQRrKAIAIgFBeHEiAGohBQJAIAFBAXENACABQQNxRQ0BIAMgAygCACIBayIDQaSYAigCAEkNASAAIAFqIQAgA0GomAIoAgBHBEAgAUH/AU0EQCADKAIIIgIgAUEDdiIEQQN0QbyYAmpGGiACIAMoAgwiAUYEQEGUmAJBlJgCKAIAQX4gBHdxNgIADAMLIAIgATYCDCABIAI2AggMAgsgAygCGCEGAkAgAyADKAIMIgFHBEAgAygCCCICIAE2AgwgASACNgIIDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhAQwBCwNAIAIhByAEIgFBFGoiAigCACIEDQAgAUEQaiECIAEoAhAiBA0ACyAHQQA2AgALIAZFDQECQCADIAMoAhwiAkECdEHEmgJqIgQoAgBGBEAgBCABNgIAIAENAUGYmAJBmJgCKAIAQX4gAndxNgIADAMLIAZBEEEUIAYoAhAgA0YbaiABNgIAIAFFDQILIAEgBjYCGCADKAIQIgIEQCABIAI2AhAgAiABNgIYCyADKAIUIgJFDQEgASACNgIUIAIgATYCGAwBCyAFKAIEIgFBA3FBA0cNAEGcmAIgADYCACAFIAFBfnE2AgQgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAMgBU8NACAFKAIEIgFBAXFFDQACQCABQQJxRQRAIAVBrJgCKAIARgRAQayYAiADNgIAQaCYAkGgmAIoAgAgAGoiADYCACADIABBAXI2AgQgA0GomAIoAgBHDQNBnJgCQQA2AgBBqJgCQQA2AgAPCyAFQaiYAigCAEYEQEGomAIgAzYCAEGcmAJBnJgCKAIAIABqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAA8LIAFBeHEgAGohAAJAIAFB/wFNBEAgBSgCCCICIAFBA3YiBEEDdEG8mAJqRhogAiAFKAIMIgFGBEBBlJgCQZSYAigCAEF+IAR3cTYCAAwCCyACIAE2AgwgASACNgIIDAELIAUoAhghBgJAIAUgBSgCDCIBRwRAIAUoAggiAkGkmAIoAgBJGiACIAE2AgwgASACNgIIDAELAkAgBUEUaiICKAIAIgQNACAFQRBqIgIoAgAiBA0AQQAhAQwBCwNAIAIhByAEIgFBFGoiAigCACIEDQAgAUEQaiECIAEoAhAiBA0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiAkECdEHEmgJqIgQoAgBGBEAgBCABNgIAIAENAUGYmAJBmJgCKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiABNgIAIAFFDQELIAEgBjYCGCAFKAIQIgIEQCABIAI2AhAgAiABNgIYCyAFKAIUIgJFDQAgASACNgIUIAIgATYCGAsgAyAAQQFyNgIEIAAgA2ogADYCACADQaiYAigCAEcNAUGcmAIgADYCAA8LIAUgAUF+cTYCBCADIABBAXI2AgQgACADaiAANgIACyAAQf8BTQRAIABBA3YiAUEDdEG8mAJqIQACf0GUmAIoAgAiAkEBIAF0IgFxRQRAQZSYAiABIAJyNgIAIAAMAQsgACgCCAshAiAAIAM2AgggAiADNgIMIAMgADYCDCADIAI2AggPC0EfIQIgA0IANwIQIABB////B00EQCAAQQh2IgEgAUGA/j9qQRB2QQhxIgF0IgIgAkGA4B9qQRB2QQRxIgJ0IgQgBEGAgA9qQRB2QQJxIgR0QQ92IAEgAnIgBHJrIgFBAXQgACABQRVqdkEBcXJBHGohAgsgAyACNgIcIAJBAnRBxJoCaiEBAkACQAJAQZiYAigCACIEQQEgAnQiB3FFBEBBmJgCIAQgB3I2AgAgASADNgIAIAMgATYCGAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiABKAIAIQEDQCABIgQoAgRBeHEgAEYNAiACQR12IQEgAkEBdCECIAQgAUEEcWoiB0EQaigCACIBDQALIAcgAzYCECADIAQ2AhgLIAMgAzYCDCADIAM2AggMAQsgBCgCCCIAIAM2AgwgBCADNgIIIANBADYCGCADIAQ2AgwgAyAANgIIC0G0mAJBtJgCKAIAQQFrIgBBfyAAGzYCAAsLOwEBfyAAIAFBKGoiAiABEBIgAEEoaiACIAEQFSAAQdAAaiABQdAAahApIABB+ABqIAFB+ABqQfALEAoLlQEBBH8jAEEwayIFJAAgACABQShqIgMgARASIABBKGoiBCADIAEQFSAAQdAAaiIDIAAgAhAKIAQgBCACQShqEAogAEH4AGoiBiACQfgAaiABQfgAahAKIAAgAUHQAGogAkHQAGoQCiAFIAAgABASIAAgAyAEEBUgBCADIAQQEiADIAUgBhASIAYgBSAGEBUgBUEwaiQAC7kCAgN+An8jAEHABWsiBiQAAkAgAlANACAAIAApA0giBCACQgOGfCIDNwNIIABBQGsiByAHKQMAIAMgBFStfCACQj2IfDcDAEIAIQMgAkKAASAEQgOIQv8AgyIFfSIEVARAA0AgACADIAV8p2ogASADp2otAAA6AFAgA0IBfCIDIAJSDQAMAgsACwNAIAAgAyAFfKdqIAEgA6dqLQAAOgBQIANCAXwiAyAEUg0ACyAAIABB0ABqIAYgBkGABWoiBxBHIAEgBKdqIQEgAiAEfSICQv8AVgRAA0AgACABIAYgBxBHIAFBgAFqIQEgAkKAAX0iAkL/AFYNAAsLIAJQRQRAQgAhAwNAIAAgA6ciB2ogASAHai0AADoAUCADQgF8IgMgAlINAAsLIAZBwAUQCAsgBkHABWokAEEACxUAIABBATYCACAAQQRqQQBBJBAPGgsiAQF/IAEEQANAIAAgAmoQWzoAACACQQFqIgIgAUcNAAsLCwQAQRALhy4BC38jAEEQayILJAACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9AFNBEBBlJgCKAIAIgRBECAAQQtqQXhxIABBC0kbIgZBA3YiAHYiAUEDcQRAIAFBf3NBAXEgAGoiAkEDdCIFQcSYAmooAgAiAUEIaiEAAkAgASgCCCIDIAVBvJgCaiIFRgRAQZSYAiAEQX4gAndxNgIADAELIAMgBTYCDCAFIAM2AggLIAEgAkEDdCICQQNyNgIEIAEgAmoiASABKAIEQQFyNgIEDAwLIAZBnJgCKAIAIghNDQEgAQRAAkBBAiAAdCICQQAgAmtyIAEgAHRxIgBBACAAa3FBAWsiACAAQQx2QRBxIgB2IgFBBXZBCHEiAiAAciABIAJ2IgBBAnZBBHEiAXIgACABdiIAQQF2QQJxIgFyIAAgAXYiAEEBdkEBcSIBciAAIAF2aiICQQN0IgNBxJgCaigCACIBKAIIIgAgA0G8mAJqIgNGBEBBlJgCIARBfiACd3EiBDYCAAwBCyAAIAM2AgwgAyAANgIICyABQQhqIQAgASAGQQNyNgIEIAEgBmoiByACQQN0IgIgBmsiA0EBcjYCBCABIAJqIAM2AgAgCARAIAhBA3YiBUEDdEG8mAJqIQFBqJgCKAIAIQICfyAEQQEgBXQiBXFFBEBBlJgCIAQgBXI2AgAgAQwBCyABKAIICyEFIAEgAjYCCCAFIAI2AgwgAiABNgIMIAIgBTYCCAtBqJgCIAc2AgBBnJgCIAM2AgAMDAtBmJgCKAIAIgpFDQEgCkEAIAprcUEBayIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QcSaAmooAgAiASgCBEF4cSAGayEFIAEhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAGayICIAUgAiAFSSICGyEFIAAgASACGyEBIAAhAgwBCwsgASgCGCEJIAEgASgCDCIDRwRAIAEoAggiAEGkmAIoAgBJGiAAIAM2AgwgAyAANgIIDAsLIAFBFGoiAigCACIARQRAIAEoAhAiAEUNAyABQRBqIQILA0AgAiEHIAAiA0EUaiICKAIAIgANACADQRBqIQIgAygCECIADQALIAdBADYCAAwKC0F/IQYgAEG/f0sNACAAQQtqIgBBeHEhBkGYmAIoAgAiB0UNAEEAIAZrIQUCQAJAAkACf0EAIAZBgAJJDQAaQR8gBkH///8HSw0AGiAAQQh2IgAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAAgAXIgAnJrIgBBAXQgBiAAQRVqdkEBcXJBHGoLIghBAnRBxJoCaigCACICRQRAQQAhAAwBC0EAIQAgBkEAQRkgCEEBdmsgCEEfRht0IQEDQAJAIAIoAgRBeHEiCSAGayIEIAVPDQAgBCEFIAIhAyAGIAlHDQBBACEFIAIhAAwDCyAAIAIoAhQiBCAEIAIgAUEddkEEcWooAhAiAkYbIAAgBBshACABQQF0IQEgAg0ACwsgACADckUEQEEAIQNBAiAIdCIAQQAgAGtyIAdxIgBFDQMgAEEAIABrcUEBayIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QcSaAmooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAZrIgIgBUkhASACIAUgARshBSAAIAMgARshAyAAKAIQIgEEfyABBSAAKAIUCyIADQALCyADRQ0AIAVBnJgCKAIAIAZrTw0AIAMoAhghCCADIAMoAgwiAUcEQCADKAIIIgBBpJgCKAIASRogACABNgIMIAEgADYCCAwJCyADQRRqIgIoAgAiAEUEQCADKAIQIgBFDQMgA0EQaiECCwNAIAIhBCAAIgFBFGoiAigCACIADQAgAUEQaiECIAEoAhAiAA0ACyAEQQA2AgAMCAsgBkGcmAIoAgAiAU0EQEGomAIoAgAhAAJAIAEgBmsiAkEQTwRAQZyYAiACNgIAQaiYAiAAIAZqIgM2AgAgAyACQQFyNgIEIAAgAWogAjYCACAAIAZBA3I2AgQMAQtBqJgCQQA2AgBBnJgCQQA2AgAgACABQQNyNgIEIAAgAWoiASABKAIEQQFyNgIECyAAQQhqIQAMCgsgBkGgmAIoAgAiAUkEQEGgmAIgASAGayIBNgIAQayYAkGsmAIoAgAiACAGaiICNgIAIAIgAUEBcjYCBCAAIAZBA3I2AgQgAEEIaiEADAoLQQAhACAGQS9qIgUCf0HsmwIoAgAEQEH0mwIoAgAMAQtB+JsCQn83AgBB8JsCQoCggICAgAQ3AgBB7JsCIAtBDGpBcHFB2KrVqgVzNgIAQYCcAkEANgIAQdCbAkEANgIAQYAgCyICaiIEQQAgAmsiB3EiAiAGTQ0JQcybAigCACIDBEBBxJsCKAIAIgggAmoiCSAITSADIAlJcg0KC0HQmwItAABBBHENBAJAAkBBrJgCKAIAIgMEQEHUmwIhAANAIAMgACgCACIITwRAIAggACgCBGogA0sNAwsgACgCCCIADQALC0EAECoiAUF/Rg0FIAIhBEHwmwIoAgAiAEEBayIDIAFxBEAgAiABayABIANqQQAgAGtxaiEECyAEIAZNIARB/v///wdLcg0FQcybAigCACIABEBBxJsCKAIAIgMgBGoiByADTSAAIAdJcg0GCyAEECoiACABRw0BDAcLIAQgAWsgB3EiBEH+////B0sNBCAEECoiASAAKAIAIAAoAgRqRg0DIAEhAAsgAEF/RiAGQTBqIARNckUEQEH0mwIoAgAiASAFIARrakEAIAFrcSIBQf7///8HSwRAIAAhAQwHCyABECpBf0cEQCABIARqIQQgACEBDAcLQQAgBGsQKhoMBAsgACIBQX9HDQUMAwtBACEDDAcLQQAhAQwFCyABQX9HDQILQdCbAkHQmwIoAgBBBHI2AgALIAJB/v///wdLDQEgAhAqIgFBf0ZBABAqIgBBf0ZyIAAgAU1yDQEgACABayIEIAZBKGpNDQELQcSbAkHEmwIoAgAgBGoiADYCAEHImwIoAgAgAEkEQEHImwIgADYCAAsCQAJAAkBBrJgCKAIAIgMEQEHUmwIhAANAIAEgACgCACICIAAoAgQiBWpGDQIgACgCCCIADQALDAILQaSYAigCACIAQQAgACABTRtFBEBBpJgCIAE2AgALQQAhAEHYmwIgBDYCAEHUmwIgATYCAEG0mAJBfzYCAEG4mAJB7JsCKAIANgIAQeCbAkEANgIAA0AgAEEDdCICQcSYAmogAkG8mAJqIgM2AgAgAkHImAJqIAM2AgAgAEEBaiIAQSBHDQALQaCYAiAEQShrIgBBeCABa0EHcUEAIAFBCGpBB3EbIgJrIgM2AgBBrJgCIAEgAmoiAjYCACACIANBAXI2AgQgACABakEoNgIEQbCYAkH8mwIoAgA2AgAMAgsgAC0ADEEIcSACIANLciABIANNcg0AIAAgBCAFajYCBEGsmAIgA0F4IANrQQdxQQAgA0EIakEHcRsiAGoiATYCAEGgmAJBoJgCKAIAIARqIgIgAGsiADYCACABIABBAXI2AgQgAiADakEoNgIEQbCYAkH8mwIoAgA2AgAMAQtBpJgCKAIAIAFLBEBBpJgCIAE2AgALIAEgBGohAkHUmwIhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB1JsCIQADQCADIAAoAgAiAk8EQCACIAAoAgRqIgUgA0sNAwsgACgCCCEADAALAAsgACABNgIAIAAgACgCBCAEajYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiCCAGQQNyNgIEIAJBeCACa0EHcUEAIAJBCGpBB3EbaiIEIAYgCGoiB2shBiADIARGBEBBrJgCIAc2AgBBoJgCQaCYAigCACAGaiIANgIAIAcgAEEBcjYCBAwDCyAEQaiYAigCAEYEQEGomAIgBzYCAEGcmAJBnJgCKAIAIAZqIgA2AgAgByAAQQFyNgIEIAAgB2ogADYCAAwDCyAEKAIEIgBBA3FBAUYEQCAAQXhxIQkCQCAAQf8BTQRAIAQoAggiASAAQQN2IgJBA3RBvJgCakYaIAEgBCgCDCIARgRAQZSYAkGUmAIoAgBBfiACd3E2AgAMAgsgASAANgIMIAAgATYCCAwBCyAEKAIYIQMCQCAEIAQoAgwiAUcEQCAEKAIIIgAgATYCDCABIAA2AggMAQsCQCAEQRRqIgAoAgAiBQ0AIARBEGoiACgCACIFDQBBACEBDAELA0AgACECIAUiAUEUaiIAKAIAIgUNACABQRBqIQAgASgCECIFDQALIAJBADYCAAsgA0UNAAJAIAQgBCgCHCIAQQJ0QcSaAmoiAigCAEYEQCACIAE2AgAgAQ0BQZiYAkGYmAIoAgBBfiAAd3E2AgAMAgsgA0EQQRQgAygCECAERhtqIAE2AgAgAUUNAQsgASADNgIYIAQoAhAiAARAIAEgADYCECAAIAE2AhgLIAQoAhQiAEUNACABIAA2AhQgACABNgIYCyAGIAlqIQYgBCAJaiEECyAEIAQoAgRBfnE2AgQgByAGQQFyNgIEIAYgB2ogBjYCACAGQf8BTQRAIAZBA3YiAUEDdEG8mAJqIQACf0GUmAIoAgAiAkEBIAF0IgFxRQRAQZSYAiABIAJyNgIAIAAMAQsgACgCCAshASAAIAc2AgggASAHNgIMIAcgADYCDCAHIAE2AggMAwtBHyEAIAZB////B00EQCAGQQh2IgAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAAgAXIgAnJrIgBBAXQgBiAAQRVqdkEBcXJBHGohAAsgByAANgIcIAdCADcCECAAQQJ0QcSaAmohAQJAQZiYAigCACICQQEgAHQiA3FFBEBBmJgCIAIgA3I2AgAgASAHNgIAIAcgATYCGAwBCyAGQQBBGSAAQQF2ayAAQR9GG3QhACABKAIAIQEDQCABIgIoAgRBeHEgBkYNAyAAQR12IQEgAEEBdCEAIAIgAUEEcWoiAygCECIBDQALIAMgBzYCECAHIAI2AhgLIAcgBzYCDCAHIAc2AggMAgtBoJgCIARBKGsiAEF4IAFrQQdxQQAgAUEIakEHcRsiAmsiBzYCAEGsmAIgASACaiICNgIAIAIgB0EBcjYCBCAAIAFqQSg2AgRBsJgCQfybAigCADYCACADIAVBJyAFa0EHcUEAIAVBJ2tBB3EbakEvayIAIAAgA0EQakkbIgJBGzYCBCACQdybAikCADcCECACQdSbAikCADcCCEHcmwIgAkEIajYCAEHYmwIgBDYCAEHUmwIgATYCAEHgmwJBADYCACACQRhqIQADQCAAQQc2AgQgAEEIaiEBIABBBGohACABIAVJDQALIAIgA0YNAyACIAIoAgRBfnE2AgQgAyACIANrIgVBAXI2AgQgAiAFNgIAIAVB/wFNBEAgBUEDdiIBQQN0QbyYAmohAAJ/QZSYAigCACICQQEgAXQiAXFFBEBBlJgCIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwEC0EfIQAgA0IANwIQIAVB////B00EQCAFQQh2IgAgAEGA/j9qQRB2QQhxIgB0IgEgAUGA4B9qQRB2QQRxIgF0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAAgAXIgAnJrIgBBAXQgBSAAQRVqdkEBcXJBHGohAAsgAyAANgIcIABBAnRBxJoCaiEBAkBBmJgCKAIAIgJBASAAdCIEcUUEQEGYmAIgAiAEcjYCACABIAM2AgAgAyABNgIYDAELIAVBAEEZIABBAXZrIABBH0YbdCEAIAEoAgAhAQNAIAEiAigCBEF4cSAFRg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIEKAIQIgENAAsgBCADNgIQIAMgAjYCGAsgAyADNgIMIAMgAzYCCAwDCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLIAhBCGohAAwFCyACKAIIIgAgAzYCDCACIAM2AgggA0EANgIYIAMgAjYCDCADIAA2AggLQaCYAigCACIAIAZNDQBBoJgCIAAgBmsiATYCAEGsmAJBrJgCKAIAIgAgBmoiAjYCACACIAFBAXI2AgQgACAGQQNyNgIEIABBCGohAAwDC0HglwJBMDYCAEEAIQAMAgsCQCAIRQ0AAkAgAygCHCIAQQJ0QcSaAmoiAigCACADRgRAIAIgATYCACABDQFBmJgCIAdBfiAAd3EiBzYCAAwCCyAIQRBBFCAIKAIQIANGG2ogATYCACABRQ0BCyABIAg2AhggAygCECIABEAgASAANgIQIAAgATYCGAsgAygCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgBUEPTQRAIAMgBSAGaiIAQQNyNgIEIAAgA2oiACAAKAIEQQFyNgIEDAELIAMgBkEDcjYCBCADIAZqIgQgBUEBcjYCBCAEIAVqIAU2AgAgBUH/AU0EQCAFQQN2IgFBA3RBvJgCaiEAAn9BlJgCKAIAIgJBASABdCIBcUUEQEGUmAIgASACcjYCACAADAELIAAoAggLIQEgACAENgIIIAEgBDYCDCAEIAA2AgwgBCABNgIIDAELQR8hACAFQf///wdNBEAgBUEIdiIAIABBgP4/akEQdkEIcSIAdCIBIAFBgOAfakEQdkEEcSIBdCICIAJBgIAPakEQdkECcSICdEEPdiAAIAFyIAJyayIAQQF0IAUgAEEVanZBAXFyQRxqIQALIAQgADYCHCAEQgA3AhAgAEECdEHEmgJqIQECQAJAIAdBASAAdCICcUUEQEGYmAIgAiAHcjYCACABIAQ2AgAMAQsgBUEAQRkgAEEBdmsgAEEfRht0IQAgASgCACECA0AgAiIBKAIEQXhxIAVGDQIgAEEddiECIABBAXQhACABIAJBBHFqIgcoAhAiAg0ACyAHIAQ2AhALIAQgATYCGCAEIAQ2AgwgBCAENgIIDAELIAEoAggiACAENgIMIAEgBDYCCCAEQQA2AhggBCABNgIMIAQgADYCCAsgA0EIaiEADAELAkAgCUUNAAJAIAEoAhwiAEECdEHEmgJqIgIoAgAgAUYEQCACIAM2AgAgAw0BQZiYAiAKQX4gAHdxNgIADAILIAlBEEEUIAkoAhAgAUYbaiADNgIAIANFDQELIAMgCTYCGCABKAIQIgAEQCADIAA2AhAgACADNgIYCyABKAIUIgBFDQAgAyAANgIUIAAgAzYCGAsCQCAFQQ9NBEAgASAFIAZqIgBBA3I2AgQgACABaiIAIAAoAgRBAXI2AgQMAQsgASAGQQNyNgIEIAEgBmoiAyAFQQFyNgIEIAMgBWogBTYCACAIBEAgCEEDdiIHQQN0QbyYAmohAEGomAIoAgAhAgJ/QQEgB3QiByAEcUUEQEGUmAIgBCAHcjYCACAADAELIAAoAggLIQQgACACNgIIIAQgAjYCDCACIAA2AgwgAiAENgIIC0GomAIgAzYCAEGcmAIgBTYCAAsgAUEIaiEACyALQRBqJAAgAAtlAQN/IAJFBEBBAA8LAkAgAC0AACIDRQ0AA0ACQCABLQAAIgVFDQAgAkEBayICRSADIAVHcg0AIAFBAWohASAALQABIQMgAEEBaiEAIAMNAQwCCwsgAyEECyAEQf8BcSABLQAAawt/AQN/IAAhAQJAIABBA3EEQANAIAEtAABFDQIgAUEBaiIBQQNxDQALCwNAIAEiAkEEaiEBIAIoAgAiA0F/cyADQYGChAhrcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrCygAIAAgASACEFUgAEEoaiABQShqIAIQVSAAQdAAaiABQdAAaiACEFULEQAgACABQdSRAigCABEDABoLEQAgACABQcyRAigCABEDABoLCgAgACABIAIQFwsRACAAIAFzQf8BcUEBa0EfdguwAQEDfyMAQcAFayICJAACQCAAKAJIQQN2Qf8AcSIDQe8ATQRAIAAgA2pB0ABqQeCPAkHwACADaxARGgwBCyAAQdAAaiIEIANqQeCPAkGAASADaxARGiAAIAQgAiACQYAFahBHIARBAEHwABAPGgsgAEHAAWogAEFAa0EQEKUBIAAgAEHQAGogAiACQYAFahBHIAEgAEHAABClASACQcAFEAggAEHQARAIIAJBwAVqJAALCAAgAEEgEB0LRgEEfiABKQIIIQIgASkCECEDIAEpAhghBCABKQIAIQUgACABKQIgNwIgIAAgBDcCGCAAIAM3AhAgACACNwIIIAAgBTcCAAtSAQJ/QbCRAigCACIBIABBA2pBfHEiAmohAAJAIAJBACAAIAFNGw0AIAA/AEEQdEsEQCAAEAJFDQELQbCRAiAANgIAIAEPC0HglwJBMDYCAEF/CwwAIAAgAUGACBARGgv6BQEKfyMAQTBrIgIkACACIAEoAiAiAyABKAIcIgQgASgCGCIFIAEoAhQiBiABKAIQIgcgASgCDCIIIAEoAggiCSABKAIEIgogASgCACILIAEoAiQiAUETbEGAgIAIakEZdmpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnVqQRl1akEadSABakEZdUETbCALaiILQf///x9xNgIAIAIgCiALQRp1aiIKQf///w9xNgIEIAIgCSAKQRl1aiIJQf///x9xNgIIIAIgCCAJQRp1aiIIQf///w9xNgIMIAIgByAIQRl1aiIHQf///x9xNgIQIAIgBiAHQRp1aiIGQf///w9xNgIUIAIgBSAGQRl1aiIFQf///x9xNgIYIAIgBCAFQRp1aiIEQf///w9xNgIcIAIgAyAEQRl1aiIDQf///x9xNgIgIAIgASADQRp1akH///8PcTYCJCAAIAIoAgAiAToAACAAIAFBEHY6AAIgACABQQh2OgABIAAgAigCBCIDQQ52OgAFIAAgA0EGdjoABCAAIANBAnQgAUEYdnI6AAMgACACKAIIIgFBDXY6AAggACABQQV2OgAHIAAgAUEDdCADQRZ2cjoABiAAIAIoAgwiA0ELdjoACyAAIANBA3Y6AAogACADQQV0IAFBFXZyOgAJIAAgAigCECIBQRJ2OgAPIAAgAUEKdjoADiAAIAFBAnY6AA0gACABQQZ0IANBE3ZyOgAMIAAgAigCFCIBOgAQIAAgAUEQdjoAEiAAIAFBCHY6ABEgACACKAIYIgNBD3Y6ABUgACADQQd2OgAUIAAgA0EBdCABQRh2cjoAEyAAIAIoAhwiAUENdjoAGCAAIAFBBXY6ABcgACABQQN0IANBF3ZyOgAWIAAgAigCICIDQQx2OgAbIAAgA0EEdjoAGiAAIANBBHQgAUEVdnI6ABkgACACKAIkIgFBEnY6AB8gACABQQp2OgAeIAAgAUECdjoAHSAAIAFBBnQgA0EUdnI6ABwgAkEwaiQACzEBA38DQCAAIAJBA3QiA2oiBCAEKQMAIAEgA2opAwCFNwMAIAJBAWoiAkGAAUcNAAsLKQAgBK1CgICAgBAgAkI/fEIGiH1WBEAQFAALIAAgASACIAMgBCAFEFwLBQBBwAALCwAgAEEAQSgQDxoLyQcCHH4OfyMAQTBrIiEkACAAIAEQDSAAQdAAaiIgIAFBKGoiJRANIABB+ABqIh4gASgCXCImQQF0rCIHIAEoAlQiJ0EBdKwiBH4gASgCWCIorCIOIA5+fCABKAJgIimsIgggASgCUCIqQQF0rCIFfnwgASgCbCIiQSZsrCIPICKsIhN+fCABKAJwIitBE2ysIgkgASgCaCIjQQF0rH58IAEoAnQiH0EmbKwiBiABKAJkIiRBAXSsIgt+fEIBhiIWQoCAgBB8IhdCGocgBCAIfiAoQQF0rCIMICasIhR+fCAkrCIRIAV+fCAJICJBAXSsIhB+fCAGICOsIgp+fEIBhnwiGEKAgIAIfCIZQhmHIAcgFH4gCCAMfnwgBCALfnwgBSAKfnwgCSArrCISfnwgBiAQfnxCAYZ8IgIgAkKAgIAQfCINQoCAgOAPg30+AhggHiAkQSZsrCARfiAqrCICIAJ+fCAjQRNsrCIDIClBAXSsIhV+fCAHIA9+fCAJIAx+fCAEIAZ+fEIBhiIaQoCAgBB8IhtCGocgAyALfiAFICesIgJ+fCAIIA9+fCAHIAl+fCAGIA5+fEIBhnwiHEKAgIAIfCIdQhmHIAUgDn4gAiAEfnwgAyAKfnwgCyAPfnwgCSAVfnwgBiAHfnxCAYZ8IgIgAkKAgIAQfCIDQoCAgOAPg30+AgggHiAMIBF+IAcgCH58IAQgCn58IAUgE358IAYgEn58QgGGIA1CGod8IgIgAkKAgIAIfCINQoCAgPAPg30+AhwgHiAFIBR+IAQgDn58IAogD358IAkgC358IAYgCH58QgGGIANCGod8IgIgAkKAgIAIfCIDQoCAgPAPg30+AgwgHiAKIAx+IAggCH58IAcgC358IAQgEH58IAUgEn58IAYgH6wiEH58QgGGIA1CGYd8IgIgAkKAgIAQfCINQoCAgOAPg30+AiAgHiAYIBlCgICA8A+DfSAWIBdCgICAYIN9IANCGYd8IgNCgICAEHwiAkIaiHw+AhQgHiADIAJCgICA4A+DfT4CECAeIAcgCn4gESAVfnwgDCATfnwgBCASfnwgBSAQfnxCAYYgDUIah3wiAiACQoCAgAh8IgJCgICA8A+DfT4CJCAeIBwgHUKAgIDwD4N9IBogG0KAgIBgg30gAkIZh0ITfnwiA0KAgIAQfCICQhqIfD4CBCAeIAMgAkKAgIDgD4N9PgIAIABBKGoiHyABICUQEiAhIB8QDSAfICAgABASICAgICAAEBUgACAhIB8QFSAeIB4gIBAVICFBMGokAAsEAEEACxsAIAFCgICAgBBaBEAQFAALIAAgASACIAMQXQviJQIQfgt/IwBBQGoiHCQAAkAgCBAfIiJFBEBBaiECDAELIBxCADcDICAcQgA3AxggHCAGNgIUIBwgBTYCECAcIAQ2AgwgHCADNgIIIBwgCDYCBCAcICI2AgAgHEEANgI4IBwgAjYCNCAcIAI2AjAgHCABNgIsIBwgADYCKCMAQTBrIgIkAAJAIBwQWCIADQBBZiEAIAtBA2tBfkkNACAcKAIsIQEgHCgCMCEAIAJBADYCACAcKAIoIQMgAiAANgIcIAJBfzYCDCACIAM2AgggAiABIABBA3QiAyABIANLGyAAQQJ0IgFuIgA2AhQgAiAAQQJ0NgIYIAIgACABbDYCECAcKAI0IQAgAiALNgIkIAIgADYCICMAQdAAayIEJABBZyEDAkAgAkUgHEVyDQAgAiACKAIUQQN0EB8iADYCBCAARQRAQWohAwwBCyACKAIQIQAjAEEQayIGJABBaiEDAkAgAkUgAEVyDQAgAEEKdCIFIABuQYAIRw0AIAJBDBAfIgA2AgAgAEUNACAAQgA3AgBB4JcCIAVBgH9LBH9BMAUCfyAFQYB/TwRAQeCXAkEwNgIAQQAMAQtBAEEQIAVBC2pBeHEgBUELSRsiIEHMAGoQHyIARQ0AGiAAQQhrIQECQCAAQT9xRQRAIAEhAAwBCyAAQQRrIiMoAgAiHUF4cSAAQT9qQUBxQQhrIgBBAEHAACAAIAFrQQ9LG2oiACABayIeayEfIB1BA3FFBEAgASgCACEBIAAgHzYCBCAAIAEgHmo2AgAMAQsgACAfIAAoAgRBAXFyQQJyNgIEIAAgH2oiHyAfKAIEQQFyNgIEICMgHiAjKAIAQQFxckECcjYCACABIB5qIh8gHygCBEEBcjYCBCABIB4QfQsCQCAAKAIEIgFBA3FFDQAgAUF4cSIeICBBEGpNDQAgACAgIAFBAXFyQQJyNgIEIAAgIGoiASAeICBrIiBBA3I2AgQgACAeaiIeIB4oAgRBAXI2AgQgASAgEH0LIABBCGoLIgAEfyAGIAA2AgxBAAVBMAsLIgA2AgACQAJAIAAEQCAGQQA2AgwMAQsgBigCDCIADQELIAIoAgAQGCACQQA2AgAMAQsgAigCACAANgIAIAIoAgAgADYCBCACKAIAIAU2AghBACEDCyAGQRBqJAAgAwRAIAIgHCgCOBCJAQwBCyACKAIkIQUjACIAIQYgAEHAA2tBQHEiACQAIARFIBxFckUEQCAAQUBrIgNBAEEAQcAAEE0aIABBPGoiASAcKAIwEAkgAyABQgQQFxogASAcKAIEEAkgAyABQgQQFxogASAcKAIsEAkgAyABQgQQFxogASAcKAIoEAkgAyABQgQQFxogAUETEAkgAyABQgQQFxogASAFEAkgAEFAayAAQTxqQgQQFxogASAcKAIMEAkgAEFAayAAQTxqQgQQFxoCQCAcKAIIIgFFDQAgAEFAayABIBw1AgwQFxogHC0AOEEBcUUNACAcKAIIIBwoAgwQCCAcQQA2AgwLIABBPGoiASAcKAIUEAkgAEFAayABQgQQFxogHCgCECIBBEAgAEFAayABIBw1AhQQFxoLIABBPGoiASAcKAIcEAkgAEFAayABQgQQFxoCQCAcKAIYIgFFDQAgAEFAayABIBw1AhwQFxogHC0AOEECcUUNACAcKAIYIBwoAhwQCCAcQQA2AhwLIABBPGoiASAcKAIkEAkgAEFAayABQgQQFxogHCgCICIBBEAgAEFAayABIBw1AiQQFxoLIABBQGsgBEHAABBMGgsgBiQAIARBQGtBCBAIQQAhAyMAQYAIayIAJAAgAigCHARAIARBxABqIQUgBEFAayEBA0AgAUEAEAkgBSADEAkgAEGACCAEQcgAEFogAigCACgCBCACKAIYIANsQQp0aiAAEIgBIAFBARAJIABBgAggBEHIABBaIAIoAgAoAgQgAigCGCADbEEKdGpBgAhqIAAQiAEgA0EBaiIDIAIoAhxJDQALCyAAQYAIEAggAEGACGokACAEQcgAEAhBACEDCyAEQdAAaiQAIAMiAA0AIAIoAggEQANAQQAhICMAQSBrIgMkAAJAIAJFDQAgAigCHEUNACADICU2AhBBASEBA0AgAyAgOgAYQQAhHkEAIQAgAQRAA0AgA0EANgIcIAMgAykDGDcDCCADIB42AhQgAyADKQMQNwMAQQAhAQJAIAJFDQACfwJAIAIoAiRBAkcEQCACKAIEIR8MAQsgAigCBCEfQQEgAygCACIFIAMtAAgiBEEBS3INARoLIwBBgCBrIgAkACAAQYAYahA+IABBgBBqED4CQCACRSADRXINACAAIAM1AgA3A4AQIAAgAzUCBDcDiBAgACADMQAINwOQECAAIAI1AhA3A5gQIAAgAjUCCDcDoBAgACACNQIkNwOoECACKAIURQ0AA0AgAUH/AHEiBEUEQCAAIAApA7AQQgF8NwOwECAAED4gAEGACGoiBRA+IABBgBhqIgYgAEGAEGogABBZIAYgACAFEFkLIB8gAUEDdGogAEGACGogBEEDdGopAwA3AwAgAUEBaiIBIAIoAhRJDQALCyAAQYAgaiQAIAMtAAghBCADKAIAIQVBAAshJkEAIARB/wFxIgFFQQF0IAUbIgUgAigCFCIETw0AQX8gAigCGCIAQQFrIAUgACADKAIEbGogASAEbGoiBCAAcBsgBGohAQNAIARBAWsgASAEIABwQQFGGyEjIAIoAhwhHQJ/ICZFBEAgAigCACEBIB8gBUEDdGoMAQsgAigCACIBKAIEICNBCnRqCykDACEQIAMgBTYCDCABKAIEIgYgACAQQiCIpyAdcK0iDCAMIAM1AgQiDCADLQAIGyADKAIAIiEbIg2nbEEKdGoCfyAQpyEkIAwgDVEhAAJ+IAMoAgBFBEAgAy0ACCIBRQRAIAMoAgxBAWshAEIADAILIAIoAhQgAWwhASADKAIMIR0gAARAIAEgHWpBAWshAEIADAILIAEgHUVrIQBCAAwBCyACKAIUIQEgAigCGCEdAn8gAARAIAMoAgwgHSABQX9zamoMAQsgHSABayADKAIMRWsLIQBCACADLQAIIh1BA0YNABogASAdQQFqbK0LIRAgECAAQQFrrXwgAK0gJK0iECAQfkIgiH5CIIh9IAI1AhiCp0EKdAtqIQAgBiAjQQp0aiEBIAYgBEEKdGohHQJAICEEQCABIAAgHRBZDAELIwBBgBBrIgYkACAGQYAIaiIhIAAQKyAhIAEQLSAGICEQK0EAISFBACEAA0AgBkGACGogAEEHdGoiAUFAayIkKQMAIAEpA2AgASkDACABKQMgIhAQBiIMhUEgEAUiDRAGIg4gEIVBGBAFIRAgECAOIA0gDCAQEAYiD4VBEBAFIhIQBiIZhUE/EAUhECABKQNIIAEpA2ggASkDCCABKQMoIgwQBiINhUEgEAUiDhAGIhMgDIVBGBAFIQwgDCATIA4gDSAMEAYiE4VBEBAFIhoQBiIbhUE/EAUhDCABKQNQIAEpA3AgASkDECABKQMwIg0QBiIOhUEgEAUiFBAGIhUgDYVBGBAFIQ0gDSAVIBQgDiANEAYiFYVBEBAFIhQQBiIWhUE/EAUhDSABKQNYIAEpA3ggASkDGCABKQM4Ig4QBiIXhUEgEAUiERAGIhggDoVBGBAFIQ4gDiAYIBEgFyAOEAYiF4VBEBAFIhEQBiIYhUE/EAUhDiABIA8gDBAGIg8gDCAWIA8gEYVBIBAFIg8QBiIWhUEYEAUiDBAGIhE3AwAgASAPIBGFQRAQBSIPNwN4IAEgFiAPEAYiDzcDUCABIAwgD4VBPxAFNwMoIAEgEyANEAYiDCANIBggDCAShUEgEAUiDBAGIg+FQRgQBSINEAYiEjcDCCABIAwgEoVBEBAFIgw3A2AgASAPIAwQBiIMNwNYIAEgDCANhUE/EAU3AzAgASAVIA4QBiIMIA4gGSAMIBqFQSAQBSIMEAYiDYVBGBAFIg4QBiIPNwMQIAEgDCAPhUEQEAUiDDcDaCAkIA0gDBAGIgw3AwAgASAMIA6FQT8QBTcDOCABIBcgEBAGIgwgECAbIAwgFIVBIBAFIgwQBiINhUEYEAUiEBAGIg43AxggASAMIA6FQRAQBSIMNwNwIAEgDSAMEAYiDDcDSCABIAwgEIVBPxAFNwMgIABBAWoiAEEIRw0ACwNAIAZBgAhqICFBBHRqIgApA4AEIAApA4AGIAApAwAgACkDgAIiEBAGIgyFQSAQBSINEAYiDiAQhUEYEAUhECAQIA4gDSAMIBAQBiIPhUEQEAUiEhAGIhmFQT8QBSEQIAApA4gEIAApA4gGIAApAwggACkDiAIiDBAGIg2FQSAQBSIOEAYiEyAMhUEYEAUhDCAMIBMgDiANIAwQBiIThUEQEAUiGhAGIhuFQT8QBSEMIAApA4AFIAApA4AHIAApA4ABIAApA4ADIg0QBiIOhUEgEAUiFBAGIhUgDYVBGBAFIQ0gDSAVIBQgDiANEAYiFYVBEBAFIhQQBiIWhUE/EAUhDSAAKQOIBSAAKQOIByAAKQOIASAAKQOIAyIOEAYiF4VBIBAFIhEQBiIYIA6FQRgQBSEOIA4gGCARIBcgDhAGIheFQRAQBSIREAYiGIVBPxAFIQ4gACAPIAwQBiIPIAwgFiAPIBGFQSAQBSIPEAYiFoVBGBAFIgwQBiIRNwMAIAAgDyARhUEQEAUiDzcDiAcgACAWIA8QBiIPNwOABSAAIAwgD4VBPxAFNwOIAiAAIBMgDRAGIgwgDSAYIAwgEoVBIBAFIgwQBiIPhUEYEAUiDRAGIhI3AwggACAMIBKFQRAQBSIMNwOABiAAIA8gDBAGIgw3A4gFIAAgDCANhUE/EAU3A4ADIAAgFSAOEAYiDCAOIBkgDCAahUEgEAUiDBAGIg2FQRgQBSIOEAYiDzcDgAEgACAMIA+FQRAQBSIMNwOIBiAAIA0gDBAGIgw3A4AEIAAgDCAOhUE/EAU3A4gDIAAgFyAQEAYiDCAQIBsgDCAUhUEgEAUiDBAGIg2FQRgQBSIQEAYiDjcDiAEgACAMIA6FQRAQBSIMNwOAByAAIA0gDBAGIgw3A4gEIAAgDCAQhUE/EAU3A4ACICFBAWoiIUEIRw0ACyAdIAYQKyAdIAZBgAhqEC0gBkGAEGokAAsgBUEBaiIFIAIoAhRPDQEgBEEBaiEEICNBAWohASACKAIYIQAMAAsACyAeQQFqIh4gAigCHCIASQ0ACwsgACEBICBBAWoiIEEERw0ACwsgA0EgaiQAICVBAWoiJSACKAIISQ0ACwtBACEDIwBBgBBrIgEkACAcRSACRXJFBEAgAUGACGogAigCACgCBCACKAIYQQp0akGACGsQKyACKAIcQQJPBEBBASEAA0AgAUGACGogAigCACgCBCACKAIYIgQgACAEbGpBCnRqQYAIaxAtIABBAWoiACACKAIcSQ0ACwsgAUGACGohAANAIAEgA0EDdCIEaiAAIARqKQMAEBAgA0EBaiIDQYABRw0ACyAcKAIAIBwoAgQgAUGACBBaIABBgAgQCCABQYAIEAggAiAcKAI4EIkBCyABQYAQaiQAQQAhAAsgAkEwaiQAAkAgACICBEAgIiAIEAgMAQsCQCAJRSAKRXINACMAQRBrIgAkAEFhIQECQAJAAn8CQAJAIAtBAWsOAgEABAsgCkENSQ0CIAlBvwopAAA3AAAgCUHECikAADcABUEMIQJBdAwBCyAKQQxJDQEgCUGzCikAADcAACAJQbsKKAAANgAIQQshAkF1CyEDIBwQWCIBDQEgAEEFaiIBQRMQPyADIApqIgMgARAhIgFNDQAgAiAJaiAAQQVqIAFBAWoQESECIAMgAWsiA0EESQ0AIAEgAmoiAkGk2vUBNgAAIABBBWoiASAcKAIsED8gA0EDayIDIAEQISIBTQ0AIAJBA2ogAEEFaiABQQFqEBEhAiADIAFrIgNBBEkNACABIAJqIgJBrOj1ATYAACAAQQVqIgEgHCgCKBA/IANBA2siAyABECEiAU0NACACQQNqIABBBWogAUEBahARIQIgAyABayIDQQRJDQAgASACaiICQazg9QE2AAAgAEEFaiIBIBwoAjAQPyADQQNrIgMgARAhIgFNDQAgAkEDaiAAQQVqIAFBAWoQESECIAMgAWsiA0ECSQ0AIAEgAmoiAUEkOwAAIAFBAWoiAiADQQFrIgMgHCgCECAcKAIUQQMQaEUNAEFhIQEgAyACECEiA2siBEECSQ0BIAIgA2oiAUEkOwAAQQBBYSABQQFqIARBAWsgHCgCACAcKAIEQQMQaBshAQwBC0FhIQELIABBEGokACABRQ0AICIgCBAIIAkgChAIQWEhAgwBCyAHBEAgByAiIAgQERoLICIgCBAIQQAhAgsgIhAYCyAcQUBrJAAgAgsrAQF/IwBB0AFrIgMkACADEDYgAyABIAIQGxogAyAAECcgA0HQAWokAEEACxwAIABCADcDQCAAQgA3A0ggAEGgigJBwAAQERoLBABBbwvBAQIFfwF+IAJQRQRAIAJBgAIgACgA4AIiBGsiA60iCFYEQCAAQeABaiEGIABB4ABqIQUDQCAAIARqQeAAaiABIAMQERogACAAKADgAiADajYA4AIgAEKAARBxIAAgBRB0IAUgBkGAARARGiAAIAAoAOACIgdBgAFrIgQ2AOACIAEgA2ohASACIAh9IgJBgAMgB2siA60iCFYNAAsLIAAgBGpB4ABqIAEgAqciARARGiAAIAAoAOACIAFqNgDgAgtBAAupAwEVfyABKAIEIQsgACgCBCEMIAEoAgghDSAAKAIIIQ4gASgCDCEPIAAoAgwhAyABKAIQIRAgACgCECEEIAEoAhQhESAAKAIUIQUgASgCGCESIAAoAhghBiABKAIcIRMgACgCHCEHIAEoAiAhFCAAKAIgIQggASgCJCEVIAAoAiQhCSAAQQAgAmsiAiABKAIAIhYgACgCACIKc3EiFyAKczYCACAAIAkgCSAVcyACcSIKczYCJCAAIAggCCAUcyACcSIJczYCICAAIAcgByATcyACcSIIczYCHCAAIAYgBiAScyACcSIHczYCGCAAIAUgBSARcyACcSIGczYCFCAAIAQgBCAQcyACcSIFczYCECAAIAMgAyAPcyACcSIEczYCDCAAIA4gDSAOcyACcSIDczYCCCAAIAwgCyAMcyACcSIAczYCBCABIAogFXM2AiQgASAJIBRzNgIgIAEgCCATczYCHCABIAcgEnM2AhggASAGIBFzNgIUIAEgBSAQczYCECABIAQgD3M2AgwgASADIA1zNgIIIAEgACALczYCBCABIBYgF3M2AgALQQECfyMAQYABayIDJAAgA0EIaiICIAEQKSACQShqIAFBKGoQKSACQdAAaiABQdAAahApIAAgAhAxIANBgAFqJAALMgEBfyAAIAEgAUH4AGoiAhAKIABBKGogAUEoaiABQdAAaiIBEAogAEHQAGogASACEAoL4AMBA38jAEHAAWsiAiQAIAJBkAFqIgQgARANIAJB4ABqIgMgBBANIAMgAxANIAMgASADEAogBCAEIAMQCiACQTBqIgEgBBANIAMgAyABEAogASADEA1BASEBA0AgAkEwaiIDIAMQDSABQQFqIgFBBUcNAAsgAkHgAGoiASACQTBqIgMgARAKIAMgARANQQEhAQNAIAJBMGoiAyADEA0gAUEBaiIBQQpHDQALIAJBMGoiASABIAJB4ABqEAogAiABEA1BASEBA0AgAiACEA0gAUEBaiIBQRRHDQALIAJBMGoiASACIAEQCkEBIQEDQCACQTBqIgMgAxANIAFBAWoiAUELRw0ACyACQeAAaiIBIAJBMGoiAyABEAogAyABEA1BASEBA0AgAkEwaiIDIAMQDSABQQFqIgFBMkcNAAsgAkEwaiIBIAEgAkHgAGoQCiACIAEQDUEBIQEDQCACIAIQDSABQQFqIgFB5ABHDQALIAJBMGoiASACIAEQCkEBIQEDQCACQTBqIgMgAxANIAFBAWoiAUEzRw0ACyACQeAAaiIBIAJBMGogARAKQQEhAQNAIAJB4ABqIgMgAxANIAFBAWoiAUEGRw0ACyAAIAJB4ABqIAJBkAFqEAogAkHAAWokAAsLACAAIAFBEBCHAQsMACAAQQBBgAgQDxoLZgEFfyMAQRBrIgMkAEEKIQIDQAJAIAIiBEEBayICIANBBmpqIgUgASABQQpuIgZBCmxrQTByOgAAIAFBCkkNACAGIQEgAg0BCwsgACAFQQsgBGsiABARIABqQQA6AAAgA0EQaiQAC40BAQZ/AkAgAC0AACIGQTprQf8BcUH2AUkNACAGIQMgACECA0AgAiEHIARBmbPmzAFLDQEgA0H/AXFBMGsiAiAEQQpsIgNBf3NLDQEgAiADaiEEIAdBAWoiAi0AACIDQTprQf8BcUH1AUsNAAsgBkEwRiAAIAdHcSAAIAJGcg0AIAEgBDYCACACIQULIAULCgAgACABIAIQTAsMACAAIAEgAiADEE0L0gkBMX8jAEFAaiIcJAAgACgCPCEdIAAoAjghHiAAKAI0IRMgACgCMCEQIAAoAiwhHyAAKAIoISAgACgCJCEhIAAoAiAhIiAAKAIcISMgACgCGCEkIAAoAhQhJSAAKAIQISYgACgCDCEnIAAoAgghKCAAKAIEISkgACgCACEqA0ACQCADQj9WBEAgAiEEDAELQQAhBSAcQQBBwAAQDyEEIANQRQRAA0AgBCAFaiABIAVqLQAAOgAAIAMgBUEBaiIFrVYNAAsLIAQhASACISsLQRQhFSAqIQ0gKSEUICghESAnIQ4gJiEFICUhCSAkIQIgIyEPICIhCyAhIQogICEYIB0hEiAeIQcgEyEIIBAhBiAfIQwDQCAFIAsgBSANaiINIAZzQRAQByIFaiIGc0EMEAchCyALIAUgCyANaiINc0EIEAciGSAGaiIac0EHEAchFiAKIAkgFGoiCyAIc0EQEAciCGoiBiAJc0EMEAchCiAKIAggCiALaiIUc0EIEAciCyAGaiIbc0EHEAchCSACIAcgAiARaiIHc0EQEAciCCAYaiIGc0EMEAchAiACIAggAiAHaiIKc0EIEAciBSAGaiIHc0EHEAchFyAMIA4gD2oiBiASc0EQEAciAmoiDCAPc0EMEAchEiASIAwgAiAGIBJqIg5zQQgQByICaiIIc0EHEAchESAJIAIgCSANaiIGc0EQEAciDCAHaiICc0EMEAchByAHIAwgBiAHaiINc0EIEAciEiACaiIYc0EHEAchCSAXIBkgFCAXaiIGc0EQEAciDCAIaiICc0EMEAchCCAIIAwgBiAIaiIUc0EIEAciBiACaiIMc0EHEAchAiARIAsgCiARaiIKc0EQEAciCCAaaiIHc0EMEAchDyAPIAcgCCAKIA9qIhFzQQgQByIIaiILc0EHEAchDyAWIAUgDiAWaiIOc0EQEAciByAbaiIKc0EMEAchBSAFIAogByAFIA5qIg5zQQgQByIHaiIKc0EHEAchBSAVQQJrIhUNAAsgASgABCEsIAEoAAghLSABKAAMIS4gASgAECEvIAEoABQhMCABKAAYITEgASgAHCEyIAEoACAhMyABKAAkITQgASgAKCEVIAEoACwhFiABKAAwIRcgASgANCEZIAEoADghGiABKAA8IRsgBCABKAAAIA0gKmpzEAkgBEEEaiAsIBQgKWpzEAkgBEEIaiAtIBEgKGpzEAkgBEEMaiAuIA4gJ2pzEAkgBEEQaiAvIAUgJmpzEAkgBEEUaiAwIAkgJWpzEAkgBEEYaiAxIAIgJGpzEAkgBEEcaiAyIA8gI2pzEAkgBEEgaiAzIAsgImpzEAkgBEEkaiA0IAogIWpzEAkgBEEoaiAVIBggIGpzEAkgBEEsaiAWIAwgH2pzEAkgBEEwaiAXIAYgEGpzEAkgBEE0aiAZIAggE2pzEAkgBEE4aiAaIAcgHmpzEAkgBEE8aiAbIBIgHWpzEAkgEyAQIBBBAWoiEEtqIRMgA0LAAFgEQAJAIANCP1YNACADpyIBRQ0AQQAhCQNAIAkgK2ogBCAJai0AADoAACAJQQFqIgkgAUcNAAsLIAAgEzYCNCAAIBA2AjAgHEFAayQABSABQUBrIQEgBEFAayECIANCQHwhAwwBCwsL7wEBAn8CfwJAIAFB/wFxIgMEQCAAQQNxBEADQCAALQAAIgJFIAIgAUH/AXFGcg0DIABBAWoiAEEDcQ0ACwsCQCAAKAIAIgJBf3MgAkGBgoQIa3FBgIGChHhxDQAgA0GBgoQIbCEDA0AgAiADcyICQX9zIAJBgYKECGtxQYCBgoR4cQ0BIAAoAgQhAiAAQQRqIQAgAkGBgoQIayACQX9zcUGAgYKEeHFFDQALCwNAIAAiAi0AACIDBEAgAkEBaiEAIAMgAUH/AXFHDQELCyACDAILIAAQISAAagwBCyAACyIAQQAgAC0AACABQf8BcUYbC3EAIABC5fDBi+aNmZAzNwIAIABCstqIy8eumZDrADcCCCAAIAEoAAA2AhAgACABKAAENgIUIAAgASgACDYCGCAAIAEoAAw2AhwgACABKAAQNgIgIAAgASgAFDYCJCAAIAEoABg2AiggACABKAAcNgIsC+gCAQJ/AkAgACABRg0AIAEgACACaiIEa0EAIAJBAXRrTQRAIAAgASACEBEPCyAAIAFzQQNxIQMCQAJAIAAgAUkEQCADBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgAw0AIARBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQQFrIgJqIAEgAmotAAA6AAAgAg0ACwwCCyACQQNNDQADQCADIAEoAgA2AgAgAUEEaiEBIANBBGohAyACQQRrIgJBA0sNAAsLIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQQFrIgINAAsLIAALiRgCEH4SfwNAIAIgFUEDdCIUaiABIBRqKQAAIgRCOIYgBEIohkKAgICAgIDA/wCDhCAEQhiGQoCAgICA4D+DIARCCIZCgICAgPAfg4SEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwMAIBVBAWoiFUEQRw0ACyADIABBwAAQESEBA0AgASACIBZBA3QiA2oiFSkDACABKQMgIgpBDhAFIApBEhAFhSAKQSkQBYV8IANB4IoCaikDAHwgCiABKQMwIgcgASkDKCILhYMgB4V8IAEpAzh8IgQgASkDGHwiCDcDGCABIAEpAwAiBUEcEAUgBUEiEAWFIAVBJxAFhSAEfCABKQMQIgkgASkDCCIGhCAFgyAGIAmDhHwiBDcDOCABIAkgByALIAggCiALhYOFfCAIQQ4QBSAIQRIQBYUgCEEpEAWFfCACIANBCHIiFGoiGCkDAHwgFEHgigJqKQMAfCIHfCIJNwMQIAEgByAEIAUgBoSDIAUgBoOEfCAEQRwQBSAEQSIQBYUgBEEnEAWFfCIHNwMwIAEgBiALIAogCSAIIAqFg4V8IAlBDhAFIAlBEhAFhSAJQSkQBYV8IAIgA0EQciIUaiIZKQMAfCAUQeCKAmopAwB8Igx8Igs3AwggASAMIAcgBCAFhIMgBCAFg4R8IAdBHBAFIAdBIhAFhSAHQScQBYV8IgY3AyggASAFIAogCyAIIAmFgyAIhXwgC0EOEAUgC0ESEAWFIAtBKRAFhXwgAiADQRhyIhRqIhopAwB8IBRB4IoCaikDAHwiDHwiCjcDACABIAwgBiAEIAeEgyAEIAeDhHwgBkEcEAUgBkEiEAWFIAZBJxAFhXwiBTcDICABIAQgCiAJIAuFgyAJhSAIfCAKQQ4QBSAKQRIQBYUgCkEpEAWFfCACIANBIHIiFGoiGykDAHwgFEHgigJqKQMAfCIMfCIINwM4IAEgDCAFIAYgB4SDIAYgB4OEfCAFQRwQBSAFQSIQBYUgBUEnEAWFfCIENwMYIAEgByAIIAogC4WDIAuFIAl8IAhBDhAFIAhBEhAFhSAIQSkQBYV8IAIgA0EociIUaiIcKQMAfCAUQeCKAmopAwB8Igx8Igk3AzAgASAMIAQgBSAGhIMgBSAGg4R8IARBHBAFIARBIhAFhSAEQScQBYV8Igc3AxAgASAGIAkgCCAKhYMgCoUgC3wgCUEOEAUgCUESEAWFIAlBKRAFhXwgAiADQTByIhRqIh0pAwB8IBRB4IoCaikDAHwiDHwiCzcDKCABIAwgByAEIAWEgyAEIAWDhHwgB0EcEAUgB0EiEAWFIAdBJxAFhXwiBjcDCCABIAUgCyAIIAmFgyAIhSAKfCALQQ4QBSALQRIQBYUgC0EpEAWFfCACIANBOHIiFGoiHikDAHwgFEHgigJqKQMAfCIMfCIKNwMgIAEgDCAGIAQgB4SDIAQgB4OEfCAGQRwQBSAGQSIQBYUgBkEnEAWFfCIFNwMAIAEgBCAKIAkgC4WDIAmFIAh8IApBDhAFIApBEhAFhSAKQSkQBYV8IAIgA0HAAHIiFGoiHykDAHwgFEHgigJqKQMAfCIMfCIINwMYIAEgDCAFIAYgB4SDIAYgB4OEfCAFQRwQBSAFQSIQBYUgBUEnEAWFfCIENwM4IAEgByAIIAogC4WDIAuFIAl8IAhBDhAFIAhBEhAFhSAIQSkQBYV8IAIgA0HIAHIiFGoiICkDAHwgFEHgigJqKQMAfCIMfCIJNwMQIAEgDCAEIAUgBoSDIAUgBoOEfCAEQRwQBSAEQSIQBYUgBEEnEAWFfCIHNwMwIAEgBiAJIAggCoWDIAqFIAt8IAlBDhAFIAlBEhAFhSAJQSkQBYV8IAIgA0HQAHIiFGoiISkDAHwgFEHgigJqKQMAfCIMfCILNwMIIAEgDCAHIAQgBYSDIAQgBYOEfCAHQRwQBSAHQSIQBYUgB0EnEAWFfCIGNwMoIAEgBSALIAggCYWDIAiFIAp8IAtBDhAFIAtBEhAFhSALQSkQBYV8IAIgA0HYAHIiFGoiIikDAHwgFEHgigJqKQMAfCIMfCIKNwMAIAEgDCAGIAQgB4SDIAQgB4OEfCAGQRwQBSAGQSIQBYUgBkEnEAWFfCIFNwMgIAEgBCAKIAkgC4WDIAmFIAh8IApBDhAFIApBEhAFhSAKQSkQBYV8IAIgA0HgAHIiFGoiIykDAHwgFEHgigJqKQMAfCIMfCIINwM4IAEgDCAFIAYgB4SDIAYgB4OEfCAFQRwQBSAFQSIQBYUgBUEnEAWFfCIENwMYIAEgByAIIAogC4WDIAuFIAl8IAhBDhAFIAhBEhAFhSAIQSkQBYV8IAIgA0HoAHIiFGoiJCkDAHwgFEHgigJqKQMAfCIMfCIJNwMwIAEgDCAEIAUgBoSDIAUgBoOEfCAEQRwQBSAEQSIQBYUgBEEnEAWFfCIHNwMQIAEgCSAIIAqFgyAKhSALfCAJQQ4QBSAJQRIQBYUgCUEpEAWFfCACIANB8AByIhRqIiUpAwB8IBRB4IoCaikDAHwiCyAGfCIGNwMoIAEgCyAHIAQgBYSDIAQgBYOEfCAHQRwQBSAHQSIQBYUgB0EnEAWFfCILNwMIIAEgBiAIIAmFgyAIhSAKfCAGQQ4QBSAGQRIQBYUgBkEpEAWFfCACIANB+AByIgNqIhQpAwB8IANB4IoCaikDAHwiBiAFfDcDICABIAYgCyAEIAeEgyAEIAeDhHwgC0EcEAUgC0EiEAWFIAtBJxAFhXw3AwAgFkHAAEYEQANAIAAgF0EDdCICaiIDIAMpAwAgASACaikDAHw3AwAgF0EBaiIXQQhHDQALBSACIBZBEGoiFkEDdGogJSkDACIEQgaIIARBExAFhSAEQT0QBYUgICkDACIFfCAVKQMAfCAYKQMAIgZCB4ggBkEBEAWFIAZBCBAFhXwiBzcDACAVIAYgISkDACIIfCAUKQMAIgZCBoggBkETEAWFIAZBPRAFhXwgGSkDACIKQgeIIApBARAFhSAKQQgQBYV8Igk3A4gBIBUgCiAiKQMAIgt8IAdBExAFIAdCBoiFIAdBPRAFhXwgGikDACINQgeIIA1BARAFhSANQQgQBYV8Igo3A5ABIBUgDSAjKQMAIgx8IAlBExAFIAlCBoiFIAlBPRAFhXwgGykDACIOQgeIIA5BARAFhSAOQQgQBYV8Ig03A5gBIBUgDiAkKQMAIhJ8IApBExAFIApCBoiFIApBPRAFhXwgHCkDACIPQgeIIA9BARAFhSAPQQgQBYV8Ig43A6ABIBUgBCAPfCANQRMQBSANQgaIhSANQT0QBYV8IB0pAwAiEEIHiCAQQQEQBYUgEEEIEAWFfCIPNwOoASAVIAYgEHwgDkETEAUgDkIGiIUgDkE9EAWFfCAeKQMAIhFCB4ggEUEBEAWFIBFBCBAFhXwiEDcDsAEgFSAHIBF8IA9BExAFIA9CBoiFIA9BPRAFhXwgHykDACITQgeIIBNBARAFhSATQQgQBYV8IhE3A7gBIBUgCSATfCAQQRMQBSAQQgaIhSAQQT0QBYV8IAVBARAFIAVCB4iFIAVBCBAFhXwiCTcDwAEgFSAFIAp8IBFBExAFIBFCBoiFIBFBPRAFhXwgCEEBEAUgCEIHiIUgCEEIEAWFfCIFNwPIASAVIAggDXwgCUETEAUgCUIGiIUgCUE9EAWFfCALQQEQBSALQgeIhSALQQgQBYV8Igg3A9ABIBUgCyAOfCAFQRMQBSAFQgaIhSAFQT0QBYV8IAxBARAFIAxCB4iFIAxBCBAFhXwiBTcD2AEgFSAMIA98IAhBExAFIAhCBoiFIAhBPRAFhXwgEkEBEAUgEkIHiIUgEkEIEAWFfCIINwPgASAVIBAgEnwgBUETEAUgBUIGiIUgBUE9EAWFfCAEQQEQBSAEQgeIhSAEQQgQBYV8IgU3A+gBIBUgBCARfCAIQRMQBSAIQgaIhSAIQT0QBYV8IAZBARAFIAZCB4iFIAZBCBAFhXw3A/ABIBUgBiAJfCAFQRMQBSAFQgaIhSAFQT0QBYV8IAdBARAFIAdCB4iFIAdBCBAFhXw3A/gBDAELCwsEAEECCwQAQQELBABBGAusBQESf0Gy2ojLByEDQe7IgZkDIQxB5fDBiwYhDUH0yoHZBiEEIAIoAAAhBiACKAAEIQcgAigACCEFIAIoAAwhCCACKAAQIQogAigAFCELIAIoABghDyACKAAcIREgASgAACECIAEoAAQhDiABKAAIIQkgASgADCEBA0AgBiAKIAIgBiANaiINc0EQEAciEGoiCnNBDBAHIQIgAiAKIBAgAiANaiINc0EIEAciEGoiCnNBBxAHIQYgByAOIAcgDGoiDHNBEBAHIg4gC2oiC3NBDBAHIQIgAiAOIAIgDGoiDHNBCBAHIg4gC2oiC3NBBxAHIQIgBSAJIAMgBWoiB3NBEBAHIgkgD2oiD3NBDBAHIQMgAyAJIAMgB2oiEnNBCBAHIgkgD2oiB3NBBxAHIQMgCCABIAQgCGoiBHNBEBAHIgUgEWoiD3NBDBAHIQEgASAFIAEgBGoiE3NBCBAHIgUgD2oiCHNBBxAHIQQgAiAHIAUgAiANaiIBc0EQEAciBWoiB3NBDBAHIQIgAiAHIAUgASACaiINc0EIEAciAWoiD3NBBxAHIQcgAyAIIBAgAyAMaiICc0EQEAciBWoiCHNBDBAHIQMgAyAIIAUgAiADaiIMc0EIEAciAmoiEXNBBxAHIQUgBCAOIAQgEmoiA3NBEBAHIgggCmoiCnNBDBAHIQQgBCAKIAggAyAEaiIDc0EIEAciDmoiCnNBBxAHIQggBiAJIAYgE2oiBHNBEBAHIgkgC2oiC3NBDBAHIQYgBiAJIAQgBmoiBHNBCBAHIgkgC2oiC3NBBxAHIQYgFEEBaiIUQQpHDQALIAAgDRAJIABBBGogDBAJIABBCGogAxAJIABBDGogBBAJIABBEGogAhAJIABBFGogDhAJIABBGGogCRAJIABBHGogARAJCzEAIAJBgAJPBEBBACIAQf8JaiAAQbYJakHrACAAQasIahAAAAsgACABIAJB/wFxEHALVgEBf0F/IQQCQCADQcEAa0FASSACQcAAS3INAAJAIAFBACACG0UEQCAAIANB/wFxEK0BRQ0BDAILIAAgA0H/AXEgASACQf8BcRCsAQ0BC0EAIQQLIAQLmAYBIX8gAigABCESIAIoAAghEyACKAAMIRQgAigAECEVIAIoABQhFiACKAAYIRcgAigAHCEYQeXwwYsGIQwgAigAACIaIQIgEiEGIBMhESAUIQdB7siBmQMhDSABKAAAIhshCCABKAAEIhwhCSABKAAIIh0hCiABKAAMIh4hDkGy2ojLByEPIBUhAUH0yoHZBiEFIBghCyAXIQMgFiEEA0AgBCAMakEHEAcgB3MiByAMakEJEAcgCnMiCiAHakENEAcgBHMiHyAKakESEAchICACIA1qQQcQByAOcyIEIA1qQQkQByADcyIQIARqQQ0QByACcyICIBBqQRIQByEOIAggD2pBBxAHIAtzIgsgD2pBCRAHIAZzIgYgC2pBDRAHIAhzIgggBmpBEhAHISEgASAFakEHEAcgEXMiAyAFakEJEAcgCXMiCSADakENEAcgAXMiIiAJakESEAchIyADIAwgIHMiAWpBBxAHIAJzIgIgAWpBCRAHIAZzIgYgAmpBDRAHIANzIhEgBmpBEhAHIAFzIQwgDSAOcyIBIAdqQQcQByAIcyIIIAFqQQkQByAJcyIJIAhqQQ0QByAHcyIHIAlqQRIQByABcyENIA8gIXMiAyAEakEHEAcgInMiASADakEJEAcgCnMiCiABakENEAcgBHMiDiAKakESEAcgA3MhDyAFICNzIgUgC2pBBxAHIB9zIgQgBWpBCRAHIBBzIgMgBGpBDRAHIAtzIgsgA2pBEhAHIAVzIQUgGUESSSEQIBlBAmohGSAQDQALIAAgDEHl8MGLBmoQCSAAQQRqIAIgGmoQCSAAQQhqIAYgEmoQCSAAQQxqIBEgE2oQCSAAQRBqIAcgFGoQCSAAQRRqIA1B7siBmQNqEAkgAEEYaiAIIBtqEAkgAEEcaiAJIBxqEAkgAEEgaiAKIB1qEAkgAEEkaiAOIB5qEAkgAEEoaiAPQbLaiMsHahAJIABBLGogASAVahAJIABBMGogBCAWahAJIABBNGogAyAXahAJIABBOGogCyAYahAJIABBPGogBUH0yoHZBmoQCQtpAQF/IwBBEGsiAyAANgIMIAMgATYCCEEAIQEgA0EAOgAHIAIEQANAIAMgAy0AByADKAIIIAFqLQAAIAMoAgwgAWotAABzcjoAByABQQFqIgEgAkcNAAsLIAMtAAdBAWtBCHZBAXFBAWsLlRIBHn4gABAOIRAgADUAAiERIABBBWoQDiESIAA1AAchGSAANQAKIRogAEENahAOIRsgADUADyELIABBEmoQDiEKIABBFWoQDiEIIAA1ABchBSAAQRpqEA4hASAANQAcIRwgADUAHyETIABBImoQDiEUIAA1ACQhDCAAQSdqEA4hDyAAQSpqEA4hCSAANQAsIQYgACAAQS9qEA5CAohC////AIMiAkLRqwh+IAFCAohC////AIN8IAA1ADFCB4hC////AIMiAULTjEN+fCAANQA0QgSIQv///wCDIgNC5/YnfnwgAEE3ahAOQgGIQv///wCDIgRCmNocfnwgADUAOUIGiEL///8AgyIHQpPYKH58IhUgBkIFiEL///8AgyAANQA8QgOIIgZCg6FWfiAJQv///wCDfCINQoCAQH0iDkIVh3wiCUKDoVZ+fCACQtOMQ34gBUIFiEL///8Ag3wgAULn9id+fCADQpjaHH58IARCk9gofnwgAkLn9id+IAhC////AIN8IAFCmNocfnwgA0KT2Ch+fCIFQoCAQH0iFkIViHwiCEKAgEB9IhdCFYd8IBVCgIBAfSIVQoCAgH+DfSIYIBhCgIBAfSIYQoCAgH+DfSAJQtGrCH4gCHwgF0KAgIB/g30gDSAOQoCAgH+DfSAGQtGrCH4gD0IDiEL///8Ag3wgB0KDoVZ+fCAEQoOhVn4gDEIGiEL///8Ag3wgBkLTjEN+fCAHQtGrCH58IgxCgIBAfSIPQhWHfCINQoCAQH0iDkIVh3wiCEKDoVZ+fCAFIAJCmNocfiAKQgOIQv///wCDfCABQpPYKH58IAJCk9gofiALQgaIQv///wCDfCIXQoCAQH0iHUIViHwiCkKAgEB9Ih5CFYh8IBZCgICA////B4N9IAlC04xDfnwgCELRqwh+fCANIA5CgICAf4N9IgtCg6FWfnwiBUKAgEB9Ig1CFYd8Ig5CgIBAfSIWQhWHfCAOIBZCgICAf4N9IAUgDUKAgIB/g30gCiAeQoCAgP///weDfSAJQuf2J358IAhC04xDfnwgC0LRqwh+fCAMIA9CgICAf4N9IANCg6FWfiAUQgGIQv///wCDfCAEQtGrCH58IAZC5/YnfnwgB0LTjEN+fCABQoOhVn4gE0IEiEL///8Ag3wgA0LRqwh+fCAEQtOMQ358IAZCmNocfnwgB0Ln9id+fCITQoCAQH0iFEIVh3wiBUKAgEB9IgxCFYd8IgpCg6FWfnwgFyAdQoCAgP///wGDfSAJQpjaHH58IAhC5/YnfnwgC0LTjEN+fCAKQtGrCH58IAUgDEKAgIB/g30iBUKDoVZ+fCIMQoCAQH0iD0IVh3wiDUKAgEB9Ig5CFYd8IA0gDkKAgIB/g30gDCAPQoCAgH+DfSAJQpPYKH4gG0IBiEL///8Ag3wgCEKY2hx+fCALQuf2J358IApC04xDfnwgBULRqwh+fCATIBRCgICAf4N9IAJCg6FWfiAcQgeIQv///wCDfCABQtGrCH58IANC04xDfnwgBELn9id+fCAGQpPYKH58IAdCmNocfnwgFUIVh3wiAUKAgEB9IgNCFYd8IgJCg6FWfnwgCEKT2Ch+IBpCBIhC////AIN8IAtCmNocfnwgCkLn9id+fCAFQtOMQ358IAJC0asIfnwiBEKAgEB9IgdCFYd8IgZCgIBAfSIJQhWHfCAGIAEgA0KAgIB/g30gGEIVh3wiA0KAgEB9IghCFYciAUKDoVZ+fCAJQoCAgH+DfSABQtGrCH4gBHwgB0KAgIB/g30gC0KT2Ch+IBlCB4hC////AIN8IApCmNocfnwgBULn9id+fCACQtOMQ358IApCk9gofiASQgKIQv///wCDfCAFQpjaHH58IAJC5/YnfnwiBEKAgEB9IgdCFYd8IgZCgIBAfSIJQhWHfCAGIAFC04xDfnwgCUKAgIB/g30gAULn9id+IAR8IAdCgICAf4N9IAVCk9gofiARQgWIQv///wCDfCACQpjaHH58IAJCk9gofiAQQv///wCDfCICQoCAQH0iBEIVh3wiB0KAgEB9IgZCFYd8IAFCmNocfiAHfCAGQoCAgH+DfSACIARCgICAf4N9IAFCk9gofnwiAUIVh3wiBEIVh3wiB0IVh3wiBkIVh3wiCUIVh3wiC0IVh3wiCkIVh3wiBUIVh3wiEEIVh3wiEUIVh3wiEkIVhyADIAhCgICAf4N9fCIIQhWHIgJCk9gofiABQv///wCDfCIBPAAAIAAgAUIIiDwAASAAIAJCmNocfiAEQv///wCDfCABQhWHfCIDQguIPAAEIAAgA0IDiDwAAyAAIAJC5/YnfiAHQv///wCDfCADQhWHfCIEQgaIPAAGIAAgAUIQiEIfgyADQv///wCDIgNCBYaEPAACIAAgAkLTjEN+IAZC////AIN8IARCFYd8IgFCCYg8AAkgACABQgGIPAAIIAAgBEL///8AgyIEQgKGIANCE4iEPAAFIAAgAkLRqwh+IAlC////AIN8IAFCFYd8IgNCDIg8AAwgACADQgSIPAALIAAgAUL///8AgyIHQgeGIARCDoiEPAAHIAAgAkKDoVZ+IAtC////AIN8IANCFYd8IgFCB4g8AA4gACADQv///wCDIgNCBIYgB0IRiIQ8AAogACAKQv///wCDIAFCFYd8IgJCCog8ABEgACACQgKIPAAQIAAgAUL///8AgyIEQgGGIANCFIiEPAANIAAgBUL///8AgyACQhWHfCIBQg2IPAAUIAAgAUIFiDwAEyAAIAJC////AIMiA0IGhiAEQg+IhDwADyAAIBBC////AIMgAUIVh3wiAjwAFSAAIAFCA4YgA0ISiIQ8ABIgACACQgiIPAAWIAAgEUL///8AgyACQhWHfCIBQguIPAAZIAAgAUIDiDwAGCAAIBJC////AIMgAUIVh3wiA0IGiDwAGyAAIAJCEIhCH4MgAUL///8AgyIBQgWGhDwAFyAAIAhC////AIMgA0IVh3wiAkIRiDwAHyAAIAJCCYg8AB4gACACQgGIPAAdIAAgA0L///8AgyIDQgKGIAFCE4iEPAAaIAAgAkIHhiADQg6IhDwAHAvaAQEFfyMAQRBrIgNBADYACyADQQA2AggDQCAAIAJqLQAAIQRBACEBA0AgA0EIaiABaiIFIAUtAAAgAUEFdEHgE2ogAmotAAAgBHNyOgAAIAFBAWoiAUEHRw0ACyACQQFqIgJBH0cNAAsgAC0AH0H/AHEhAkEAIQBBACEBA0AgA0EIaiABaiIEIAQtAAAgAiABQQV0Qf8Tai0AAHNyOgAAIAFBAWoiAUEHRw0AC0EAIQEDQCADQQhqIABqLQAAQQFrIAFyIQEgAEEBaiIAQQdHDQALIAFBCHZBAXEL5wIBBX8jAEHQA2siAyQAA0AgA0GQA2ogAkEBdGoiBSABIAJqLQAAIgZBBHY6AAEgBSAGQQ9xOgAAIAJBAWoiAkEgRw0AC0EAIQIDQCADQZADaiAEaiIBIAEtAAAgAmoiASABQRh0QYCAgEBrIgFBGHVB8AFxazoAACABQRx1IQIgBEEBaiIEQT9HDQALIAMgAy0AzwMgAmo6AM8DIAAQekEBIQIDQCADIAJBAXYgA0GQA2ogAmosAAAQeSADQfABaiIBIAAgAxBTIAAgARATIAJBPkkhASACQQJqIQIgAQ0ACyADQfABaiIBIAAQOiADQfgAaiICIAEQOyABIAIQMSACIAEQOyABIAIQMSACIAEQOyABIAIQMSAAIAEQE0EAIQIDQCADIAJBAXYgA0GQA2ogAmosAAAQeSADQfABaiIBIAAgAxBTIAAgARATIAJBPkkhASACQQJqIQIgAQ0ACyADQdADaiQAC4sBAQR/IwBBMGsiBSQAIAAgAUEoaiIDIAEQEiAAQShqIgQgAyABEBUgAEHQAGoiAyAAIAIQCiAEIAQgAkEoahAKIABB+ABqIgYgAkHQAGogAUH4AGoQCiAFIAFB0ABqIgEgARASIAAgAyAEEBUgBCADIAQQEiADIAUgBhASIAYgBSAGEBUgBUEwaiQAC1YBA38jAEGQAWsiAiQAIAJB4ABqIgMgAUHQAGoQPCACQTBqIgQgASADEAogAiABQShqIAMQCiAAIAIQLCAAIAQQf0EHdCAALQAfczoAHyACQZABaiQAC68CARN/IAEoAgQhDCAAKAIEIQMgASgCCCENIAAoAgghBCABKAIMIQ4gACgCDCEFIAEoAhAhDyAAKAIQIQYgASgCFCEQIAAoAhQhByABKAIYIREgACgCGCEIIAEoAhwhEiAAKAIcIQkgASgCICETIAAoAiAhCiABKAIkIRQgACgCJCELIABBACACayICIAAoAgAiFSABKAIAc3EgFXM2AgAgACALIAsgFHMgAnFzNgIkIAAgCiAKIBNzIAJxczYCICAAIAkgCSAScyACcXM2AhwgACAIIAggEXMgAnFzNgIYIAAgByAHIBBzIAJxczYCFCAAIAYgBiAPcyACcXM2AhAgACAFIAUgDnMgAnFzNgIMIAAgBCAEIA1zIAJxczYCCCAAIAMgAyAMcyACcXM2AgQLJAEBfyMAQSBrIgEkACABIAAQLCABQSAQdSEAIAFBIGokACAAC6YEAg5+Cn8gACgCJCESIAAoAiAhEyAAKAIcIRQgACgCGCEVIAAoAhQhESACQhBaBEAgAC0AUEVBGHQhFiAAKAIEIhdBBWytIQ8gACgCCCIYQQVsrSENIAAoAgwiGUEFbK0hCyAAKAIQIhpBBWytIQkgGq0hECAZrSEOIBitIQwgF60hCiAANQIAIQgDQCABKAADQQJ2Qf///x9xIBVqrSIDIA5+IAEoAABB////H3EgEWqtIgQgEH58IAEoAAZBBHZB////H3EgFGqtIgUgDH58IAEoAAlBBnYgE2qtIgYgCn58IBIgFmogASgADEEIdmqtIgcgCH58IAMgDH4gBCAOfnwgBSAKfnwgBiAIfnwgByAJfnwgAyAKfiAEIAx+fCAFIAh+fCAGIAl+fCAHIAt+fCADIAh+IAQgCn58IAUgCX58IAYgC358IAcgDX58IAMgCX4gBCAIfnwgBSALfnwgBiANfnwgByAPfnwiA0IaiEL/////D4N8IgRCGohC/////w+DfCIFQhqIQv////8Pg3wiBkIaiEL/////D4N8IgdCGoinQQVsIAOnQf///x9xaiIRQRp2IASnQf///x9xaiEVIAWnQf///x9xIRQgBqdB////H3EhEyAHp0H///8fcSESIBFB////H3EhESABQRBqIQEgAkIQfSICQg9WDQALCyAAIBE2AhQgACASNgIkIAAgEzYCICAAIBQ2AhwgACAVNgIYC+8BAQJ/IABFBEBBZw8LIAAoAgBFBEBBfw8LAn9BfiAAKAIEQRBJDQAaIAAoAghFBEBBbiAAKAIMDQEaCyAAKAIUIQEgACgCEEUEQEFtQXogARsPC0F6IAFBCEkNABogACgCGEUEQEFsIAAoAhwNARoLIAAoAiBFBEBBayAAKAIkDQEaCyAAKAIwIgFFBEBBcA8LQW8gAUH///8HSw0AGkFyIAAoAiwiAkEISQ0AGkFxIAJBgICAAUsNABpBciACIAFBA3RJDQAaIAAoAihFBEBBdA8LIAAoAjQiAEUEQEFkDwtBY0EAIABB////B0sbCwvICwIQfgN/IwBBgBBrIhMkACATQYAIaiIUIAEQKyAUIAAQLSATIBQQKyATIAIQLUEAIQFBACEUA0AgE0GACGogFEEHdGoiAEFAayIVKQMAIAApA2AgACkDACAAKQMgIgcQBiIDhUEgEAUiBBAGIgUgB4VBGBAFIQcgByAFIAQgAyAHEAYiBoVBEBAFIgkQBiIQhUE/EAUhByAAKQNIIAApA2ggACkDCCAAKQMoIgMQBiIEhUEgEAUiBRAGIgogA4VBGBAFIQMgAyAKIAUgBCADEAYiCoVBEBAFIhEQBiIShUE/EAUhAyAAKQNQIAApA3AgACkDECAAKQMwIgQQBiIFhUEgEAUiCxAGIgwgBIVBGBAFIQQgBCAMIAsgBSAEEAYiDIVBEBAFIgsQBiINhUE/EAUhBCAAKQNYIAApA3ggACkDGCAAKQM4IgUQBiIOhUEgEAUiCBAGIg8gBYVBGBAFIQUgBSAPIAggDiAFEAYiDoVBEBAFIggQBiIPhUE/EAUhBSAAIAYgAxAGIgYgAyANIAYgCIVBIBAFIgYQBiINhUEYEAUiAxAGIgg3AwAgACAGIAiFQRAQBSIGNwN4IAAgDSAGEAYiBjcDUCAAIAMgBoVBPxAFNwMoIAAgCiAEEAYiAyAEIA8gAyAJhUEgEAUiAxAGIgaFQRgQBSIEEAYiCTcDCCAAIAMgCYVBEBAFIgM3A2AgACAGIAMQBiIDNwNYIAAgAyAEhUE/EAU3AzAgACAMIAUQBiIDIAUgECADIBGFQSAQBSIDEAYiBIVBGBAFIgUQBiIGNwMQIAAgAyAGhUEQEAUiAzcDaCAVIAQgAxAGIgM3AwAgACADIAWFQT8QBTcDOCAAIA4gBxAGIgMgByASIAMgC4VBIBAFIgMQBiIEhUEYEAUiBxAGIgU3AxggACADIAWFQRAQBSIDNwNwIAAgBCADEAYiAzcDSCAAIAMgB4VBPxAFNwMgIBRBAWoiFEEIRw0ACwNAIBNBgAhqIAFBBHRqIgBBgARqKQMAIAApA4AGIAApAwAgACkDgAIiBxAGIgOFQSAQBSIEEAYiBSAHhUEYEAUhByAHIAUgBCADIAcQBiIGhUEQEAUiCRAGIhCFQT8QBSEHIAApA4gEIAApA4gGIAApAwggACkDiAIiAxAGIgSFQSAQBSIFEAYiCiADhUEYEAUhAyADIAogBSAEIAMQBiIKhUEQEAUiERAGIhKFQT8QBSEDIAApA4AFIAApA4AHIAApA4ABIAApA4ADIgQQBiIFhUEgEAUiCxAGIgwgBIVBGBAFIQQgBCAMIAsgBSAEEAYiDIVBEBAFIgsQBiINhUE/EAUhBCAAKQOIBSAAKQOIByAAKQOIASAAKQOIAyIFEAYiDoVBIBAFIggQBiIPIAWFQRgQBSEFIAUgDyAIIA4gBRAGIg6FQRAQBSIIEAYiD4VBPxAFIQUgACAGIAMQBiIGIAMgDSAGIAiFQSAQBSIGEAYiDYVBGBAFIgMQBiIINwMAIAAgBiAIhUEQEAUiBjcDiAcgACANIAYQBiIGNwOABSAAIAMgBoVBPxAFNwOIAiAAIAogBBAGIgMgBCAPIAMgCYVBIBAFIgMQBiIGhUEYEAUiBBAGIgk3AwggACADIAmFQRAQBSIDNwOABiAAIAYgAxAGIgM3A4gFIAAgAyAEhUE/EAU3A4ADIAAgDCAFEAYiAyAFIBAgAyARhUEgEAUiAxAGIgSFQRgQBSIFEAYiBjcDgAEgACADIAaFQRAQBSIDNwOIBiAAIAQgAxAGIgM3A4AEIAAgAyAFhUE/EAU3A4gDIAAgDiAHEAYiAyAHIBIgAyALhUEgEAUiAxAGIgSFQRgQBSIHEAYiBTcDiAEgACADIAWFQRAQBSIDNwOAByAAIAQgAxAGIgM3A4gEIAAgAyAHhUE/EAU3A4ACIAFBAWoiAUEIRw0ACyACIBMQKyACIBNBgAhqEC0gE0GAEGokAAu+AwECfyMAIgQhBSAEQcAEa0FAcSIEJAAgBEEANgK8ASAEQbwBaiABEAkCQCABQcAATQRAIARBwAFqQQBBACABEE1BAEgNASAEQcABaiAEQbwBakIEEBdBAEgNASAEQcABaiACIAOtEBdBAEgNASAEQcABaiAAIAEQTBoMAQsgBEHAAWpBAEEAQcAAEE1BAEgNACAEQcABaiAEQbwBakIEEBdBAEgNACAEQcABaiACIAOtEBdBAEgNACAEQcABaiAEQfAAakHAABBMQQBIDQAgACAEKQNwNwAAIAAgBCkDeDcACCAAIAQpA4gBNwAYIAAgBCkDgAE3ABAgAEEgaiEAIAFBIGsiAUHBAE8EQANAIARBMGoiAiAEQfAAaiIDQcAAEBEaIANBwAAgAkLAAEEAQQAQb0EASA0CIAAgBCkDcDcAACAAIAQpA3g3AAggACAEKQOIATcAGCAAIAQpA4ABNwAQIABBIGohACABQSBrIgFBwABLDQALCyAEQTBqIgIgBEHwAGoiA0HAABARGiADIAEgAkLAAEEAQQAQb0EASA0AIAAgBEHwAGogARARGgsgBEHAAWpBgAMQCCAFJAALLAECfyMAQRBrIgAkACAAQQA6AA9B6JECIABBD2pBABABIQEgAEEQaiQAIAELKAAgAkKAgICAEFoEQBAUAAsgACABIAIgAyAEIAVBwJECKAIAERAAGgskACABQoCAgIAQWgRAEBQACyAAIAEgAiADQbiRAigCABENABoLCwAgACABIAIQrwELCAAgACABEHcLEAAgACABIAIgAyAEIAUQYgsQACAAIAEgAiADIAQgBRBjC5YCAgJ/AX4jAEHgAGsiBiQAIAYgBCAFEGUaIAZBIGoiB0IgIARBEGoiBSAGQeCRAigCABENABpBfyEEAkACQCACIAEgAyAHQciRAigCABERAA0AQQAhBCAARQ0BIAAgAUkgASAAa60gA1RxRSAAIAFNIAAgAWutIANacnFFBEAgACABIAOnEEYhAQsCQCADQiAgA0IgVBsiCFAEQCAGQSBqIgIgAiAIQiB8IAUgBhB2DAELIAZBQGsgASAIpyICEBEhBCAGQSBqIgcgByAIQiB8IAUgBhB2IAAgBCACEBEaC0EAIQQgA0IhVA0AIAAgCKciAmogASACaiADIAh9IAUgBhCuAQsgBkEgEAgLIAZB4ABqJAAgBAuQAgICfwF+IwBB4AJrIgYkACAGIAQgBRBlGiAAIAJLIAAgAmutIANUcUUgACACTyACIABrrSADWnJxRQRAIAAgAiADpxBGIQILIAZCADcDOCAGQgA3AzAgBkIANwMoIAZCADcDICADQiAgA0IgVBsiCFAiBUUEQCAGQUBrIAIgCKcQERoLIAZBIGoiByAHIAhCIHwgBEEQaiIEIAYQdiAGQeAAaiAHECQgBUUEQCAAIAZBQGsgCKcQERoLIAZBIGpBwAAQCCADQiFaBEAgACAIpyIFaiACIAVqIAMgCH0gBCAGEK4BCyAGQSAQCCAGQeAAaiICIAAgAxALIAIgARAjIAJBgAIQCCAGQeACaiQAQQALMwECfyMAQSBrIgMkAEF/IQQgAyACIAEQrwFFBEAgAEGgkQIgAxBlIQQLIANBIGokACAEC/AEARV/QbLaiMsHIQNB7siBmQMhBEHl8MGLBiEFQfTKgdkGIQZBFCEPIAIoAAAhCiACKAAEIRAgAigACCESIAIoAAwhCyACKAAQIQwgAigAFCEHIAIoABghDSACKAAcIQ4gASgAACECIAEoAAQhCCABKAAIIQkgASgADCEBA0AgBSAHakEHEAcgC3MiCyAFakEJEAcgCXMiCSALakENEAcgB3MiESAJakESEAchEyAEIApqQQcQByABcyIBIARqQQkQByANcyINIAFqQQ0QByAKcyIKIA1qQRIQByEUIAIgA2pBBxAHIA5zIg4gA2pBCRAHIBBzIgcgDmpBDRAHIAJzIhUgB2pBEhAHIRYgBiAMakEHEAcgEnMiAiAGakEJEAcgCHMiCCACakENEAcgDHMiDCAIakESEAchFyACIAUgE3MiBWpBBxAHIApzIgogBWpBCRAHIAdzIhAgCmpBDRAHIAJzIhIgEGpBEhAHIAVzIQUgBCAUcyIEIAtqQQcQByAVcyICIARqQQkQByAIcyIIIAJqQQ0QByALcyILIAhqQRIQByAEcyEEIAMgFnMiAyABakEHEAcgDHMiDCADakEJEAcgCXMiCSAMakENEAcgAXMiASAJakESEAcgA3MhAyAGIBdzIgYgDmpBBxAHIBFzIgcgBmpBCRAHIA1zIg0gB2pBDRAHIA5zIg4gDWpBEhAHIAZzIQYgD0ECSyERIA9BAmshDyARDQALIAAgBRAJIABBBGogBBAJIABBCGogAxAJIABBDGogBhAJIABBEGogAhAJIABBFGogCBAJIABBGGogCRAJIABBHGogARAJQQALBABBfwuNBwEKfyMAQRBrIgwkACAHEGkCQAJAIANFDQAgB0EEcSEQA0AgCiEJA0AgAiAJaiwAACEIAkACfyAQBEBBACAIQQRqIAhB0P8DakEIdkF/c3FBOSAIa0EIdkF/c3FB/wFxIAhBwQBrIgsgC0EIdkF/c3FB2gAgCGtBCHZBf3NxQf8BcSAIQbkBaiAIQZ//A2pBCHZBf3NxQfoAIAhrQQh2QX9zcUH/AXEgCEGg/wBzQQFqQQh2QX9zQT9xIAhB0v8Ac0EBakEIdkF/c0E+cXJycnIiC2tBCHZBf3MgCEG+/wNzQQFqQQh2cUH/AXEgC3IMAQtBACAIQQRqIAhB0P8DakEIdkF/c3FBOSAIa0EIdkF/c3FB/wFxIAhBwQBrIgsgC0EIdkF/c3FB2gAgCGtBCHZBf3NxQf8BcSAIQbkBaiAIQZ//A2pBCHZBf3NxQfoAIAhrQQh2QX9zcUH/AXEgCEHQ/wBzQQFqQQh2QX9zQT9xIAhB1P8Ac0EBakEIdkF/c0E+cXJycnIiC2tBCHZBf3MgCEG+/wNzQQFqQQh2cUH/AXEgC3ILIgtB/wFGBEAgBEUNBCAEIAgQRA0BIAkhCgwECyALIA9BBnRqIQ8CQCANQQZqIgpBCEkEQCAKIQ0MAQsgDUECayENIAEgDk0EQCAMIAk2AgxB4JcCQcQANgIAQQEhEQwGCyAAIA5qIA8gDXY6AAAgDkEBaiEOCyAJQQFqIgogA0kNAgwDCyAJQQFqIgkgA0kNAAsLIAMgCkEBaiIAIAAgA0kbIQoLIAwgCjYCDAsCQCANQQRLBEBBACEBQX8hAAwBC0F/IQBBACEBIBEgD0F/IA10QX9zcXINACAHQQJxRQRAAn8CQCANQQF2IgcEQCAMKAIMIQADQCAAIANPBEBBxAAhCQwDCwJAIAAgAmosAAAiCkE9RgRAIAdBAWshBwwBC0EcIQkgBEUNAyAEIAoQREUNAwsgDCAAQQFqIgA2AgwgBw0ACwtBAAwBC0HglwIgCTYCAEF/CyIADQELQQAhACAEBEACQCAMKAIMIgkgA08NAANAIAQgAiAJaiwAABBERQ0BIAlBAWoiCSADRw0ACyADIQkLIAwgCTYCDAsgDiEBCyAMKAIMIQQCQCAGBEAgBiACIARqNgIADAELIAMgBEYNAEHglwJBHDYCAEF/IQALIAUEQCAFIAE2AgALIAxBEGokACAAC84DAQZ/IAQQaSADQQNuIgVBAnQhBgJAIAVBfWwgA2oiBUUNACAEQQJxRQRAIAZBBGohBgwBCyAGQQJyIAVBAXZqIQYLAkACQAJ/AkACfwJAIAEgBksEQAJAIARBBHEEQEEAIANFDQYaQQAhBUEAIQQMAQtBACADRQ0FGkEAIQVBACEEDAILA0AgAiAIai0AACIJIAdBCHRyIQcgBUEIaiEFA0AgACAEaiAHIAUiCkEGayIFdkE/cRCeAToAACAEQQFqIQQgBUEFSw0ACyAIQQFqIgggA0cNAAsgBUUNAyAJQQwgCmt0QT9xEJ4BDAILEBQACwNAIAIgCGotAAAiCSAHQQh0ciEHIAVBCGohBQNAIAAgBGogByAFIgpBBmsiBXZBP3EQnQE6AAAgBEEBaiEEIAVBBUsNAAsgCEEBaiIIIANHDQALIAVFDQEgCUEMIAprdEE/cRCdAQshBSAAIARqIAU6AAAgBEEBagwBCyAECyIHIAZNBEAgBiAHSw0BIAchBgwCC0EAIgBBmAhqIABB+QhqQeYBIABB3wpqEAAACyAAIAdqQT0gBiAHaxAPGgsgACAGakEAIAEgBkEBaiICIAEgAksbIAZrEA8aIAALEAAgAEF5cUEBRwRAEBQACwsWACAAEDYgAQRAIABB4JACQiIQGxoLCwQAQQMLlgEBAX8jAEEwayIBJAAgASAAKQAYNwMYIAEgACkAEDcDECABIAApAAA3AwAgASAAKQAINwMIIAEgACkAJDcDICABIAFCKCAAQSBqQQAgAEHAkQIoAgAREAAaIAAgASkDGDcAGCAAIAEpAxA3ABAgACABKQMINwAIIAAgASkDADcAACAAIAEpAyA3ACQgABBtIAFBMGokAAsJACAAQQE2ACALBABBCAunAQECfyABQcEAa0FASSAFQcAAS3IEf0F/BQJ/IwAiBiEHIAZBgANrQUBxIgYkAEEBIAIgA1AbRSAARSABQf8BcSIBQcEAa0H/AXFBvwFNcnIgBEEBIAVB/wFxIgUbRSAFQcEAT3JyRQRAAkAgBQRAIAYgASAEIAUQrAEaDAELIAYgARCtARoLIAYgAiADEDgaIAYgACABEHAaIAckAEEADAELEBQACwsL0gIBA38jAEFAaiIEJAACQCACQcEAa0H/AXFBvwFLBEBBfyEDIAApAFBQBEAgACAAKADgAiIDQYEBTwR/IABCgAEQcSAAIABB4ABqIgUQdCAAIAAoAOACQYABayIDNgDgAiADQYEBTw0DIAUgAEHgAWogAxARGiAAKADgAgUgAwutEHEgAC0A5AIEQCAAQn83AFgLIABCfzcAUCAAQeAAaiIDIAAoAOACIgVqQQBBgAIgBWsQDxogACADEHQgBCAAKQAAEBAgBEEIciAAKQAIEBAgBEEQaiAAKQAQEBAgBEEYaiAAKQAYEBAgBEEgaiAAKQAgEBAgBEEoaiAAKQAoEBAgBEEwaiAAKQAwEBAgBEE4aiAAKQA4EBAgASAEIAIQERogAEHAABAIIANBgAIQCEEAIQMLIARBQGskACADDwsQFAALQZMKQYkJQbICQb4IEAAACy0CAX8BfiAAQUBrIgIgASACKQAAIgF8IgM3AAAgACAAKQBIIAEgA1atfDcASAsJACAAQQA2AAALRgEDfyAAQcCJAkHAABARQUBrQQBBpQIQDxoDQCAAIAJBA3QiA2oiBCABIANqKQAAIAQpAACFNwAAIAJBAWoiAkEIRw0ACwvuNgIefgN/IwBBgAJrIiAkAANAICFBA3QiIiAgQYABamogASAiaikAADcDACAhQQFqIiFBEEcNAAsgICAAQcAAEBEiASkDACABKQMgIh4gASkDgAF8fCIZIABBQGspAACFQtGFmu/6z5SH0QCFQSAQBSIXQoiS853/zPmE6gB8IhMgHoVBGBAFIRYgFiAXIAEpA4gBIh4gFiAZfHwiDoVBEBAFIgMgE3wiB4VBPxAFIRwgASkDCCABKQOQASINIAEpAygiFnx8IhkgACkASIVCn9j52cKR2oKbf4VBIBAFIhdCxbHV2aevlMzEAH0iEyAWhUEYEAUhFiAWIBcgASkDmAEgFiAZfHwiBoVBEBAFIhAgE3wiD4VBPxAFIRMgASkDECABKQOgASILIAEpAzAiFnx8IhcgACkAUIVC6/qG2r+19sEfhUEgEAUiGkKr8NP0r+68tzx8IhIgFoVBGBAFIRkgGSAaIAEpA6gBIhYgFyAZfHwiCYVBEBAFIgggEnwiBIVBPxAFIRogASkDGCABKQOwASIZIAEpAzgiF3x8IgIgACkAWIVC+cL4m5Gjs/DbAIVBIBAFIgVCj5KLh9rYgtjaAH0iCiAXhUEYEAUhEiASIAogBSABKQO4ASIXIAIgEnx8IhGFQRAQBSIMfCIKhUE/EAUhAiATIAQgDCABKQPAASIFIA4gE3x8IhKFQSAQBSIOfCIEhUEYEAUhEyATIA4gASkDyAEiDCASIBN8fCIUhUEQEAUiFSAEfCIdhUE/EAUhBCAaIAMgASkD0AEiEiAGIBp8fCIGhUEgEAUiAyAKfCIKhUEYEAUhEyATIAogAyABKQPYASIOIAYgE3x8IhiFQRAQBSIbfCIKhUE/EAUhAyACIAcgECABKQPgASITIAIgCXx8IgaFQSAQBSIQfCIHhUEYEAUhGiAaIAcgECABKQPoASICIAYgGnx8IgmFQRAQBSIQfCIfhUE/EAUhByAcIA8gCCABKQPwASIaIBEgHHx8IhGFQSAQBSIIfCIPhUEYEAUhBiAbIAYgDyAIIAEpA/gBIhwgBiARfHwiEYVBEBAFIgh8Ig+FQT8QBSIGIBQgGnx8IhSFQSAQBSIbIB98Ih8gBoVBGBAFIQYgBiAbIAYgEiAUfHwiFIVBEBAFIhsgH3wiH4VBPxAFIQYgBCAPIBAgBCALfCAYfCIPhUEgEAUiEHwiC4VBGBAFIQQgBCAQIAQgBSAPfHwiD4VBEBAFIhAgC3wiC4VBPxAFIQQgAyAIIAMgDHwgCXwiCYVBIBAFIgggHXwiDIVBGBAFIQMgAyAIIAMgCSAcfHwiCYVBEBAFIgggDHwiDIVBPxAFIQMgByAKIBUgAiAHfCARfCIRhUEgEAUiFXwiCoVBGBAFIQcgByAKIBUgByARIBl8fCIKhUEQEAUiEXwiFYVBPxAFIQcgBCAMIBEgBCAUIB58fCIUhUEgEAUiEXwiDIVBGBAFIQQgBCAMIBEgBCATIBR8fCIUhUEQEAUiEXwiDIVBPxAFIQQgAyAVIBsgASkDgAEiHSADIA98fCIPhUEgEAUiGHwiFYVBGBAFIQMgAyAVIBggAyANIA98fCIPhUEQEAUiGHwiFYVBPxAFIQMgByAQIAcgCSAOfHwiCYVBIBAFIhAgH3wiG4VBGBAFIQcgByAbIBAgByAJIBd8fCIJhUEQEAUiH3wiG4VBPxAFIQcgBiALIAggBiAWfCAKfCILhUEgEAUiCHwiCoVBGBAFIQYgGyAYIAYgCiAIIAEpA5gBIhAgBiALfHwiC4VBEBAFIgh8IgqFQT8QBSIGIA4gFHx8IhSFQSAQBSIYfCIbIAaFQRgQBSEGIAYgGCAGIAUgFHx8IhSFQRAQBSIYIBt8IhuFQT8QBSEFIAQgHyAEIBN8IA98IgaFQSAQBSIPIAp8IgqFQRgQBSEEIAQgDyAEIAYgHXx8IgaFQRAQBSIPIAp8IgqFQT8QBSEEIAMgCCADIBZ8IAl8IgmFQSAQBSIIIAx8IgyFQRgQBSEDIAMgCCADIAkgDXx8IgmFQRAQBSIIIAx8IgyFQT8QBSEDIAcgESAHIBx8IAt8IguFQSAQBSIRIBV8IhWFQRgQBSEHIAcgESAHIAIgC3x8IguFQRAQBSIRIBV8IhWFQT8QBSEHIAQgDCARIAQgEiAUfHwiDIVBIBAFIhF8IhSFQRgQBSEEIAQgESAEIAwgGnx8IgyFQRAQBSIRIBR8IhSFQT8QBSEEIAMgFSAYIAMgBiAQfHwiBoVBIBAFIh18IhWFQRgQBSEDIAMgFSAdIAMgBiAZfHwiGIVBEBAFIh18IhWFQT8QBSEDIAcgDyAHIAkgF3x8IgaFQSAQBSIPIBt8IgmFQRgQBSEHIAcgCSAPIAcgBiAefHwiG4VBEBAFIh98IgmFQT8QBSEHIAUgCiAIIAEpA8gBIgYgBSALfHwiC4VBIBAFIgh8IgqFQRgQBSEFIAkgHSAFIAogCCABKQOgASIPIAUgC3x8IguFQRAQBSIIfCIKhUE/EAUiBSAMIBd8fCIMhUEgEAUiHXwiCSAFhUEYEAUhBSAFIAkgHSAFIAYgDHx8IgyFQRAQBSIdfCIJhUE/EAUhBSAEIAogHyAEIBB8IBh8IhCFQSAQBSIKfCIYhUEYEAUhBCAEIAogBCAQIB58fCIQhUEQEAUiCiAYfCIYhUE/EAUhBCADIBQgCCACIAN8IBt8IhuFQSAQBSIIfCIUhUEYEAUhAiACIBQgCCACIBMgG3x8IhSFQRAQBSIIfCIbhUE/EAUhAiAHIBUgESAHIA58IAt8IguFQSAQBSIRfCIVhUEYEAUhAyADIBEgAyALIBp8fCILhUEQEAUiByAVfCIRhUE/EAUhAyAEIBsgByAEIAwgDXx8IgyFQSAQBSIHfCIVhUEYEAUhBCAEIBUgByAEIAwgGXx8IgyFQRAQBSIbfCIVhUE/EAUhBCACIB0gAiAQIBZ8fCIHhUEgEAUiECARfCIRhUEYEAUhAiACIBEgECACIAcgEnx8Ih2FQRAQBSIffCIRhUE/EAUhAiADIAkgCiADIA8gFHx8IhCFQSAQBSIJfCIKhUEYEAUhAyADIAogCSABKQOAASIHIAMgEHx8IhSFQRAQBSIJfCIKhUE/EAUhAyAFIBggCCAFIBx8IAt8IguFQSAQBSIIfCIQhUEYEAUhBSAKIB8gBSAQIAggASkDwAEiECAFIAt8fCILhUEQEAUiCHwiGIVBPxAFIgUgBiAMfHwiBoVBIBAFIgx8IgogBYVBGBAFIQUgBSAKIAwgBSAGIAd8fCIGhUEQEAUiCnwiDIVBPxAFIQUgBCAYIAkgBCAWfCAdfCIdhUEgEAUiCXwiGIVBGBAFIQQgBCAJIAQgFyAdfHwiHYVBEBAFIgkgGHwiGIVBPxAFIQQgAiAIIAIgDXwgFHwiFIVBIBAFIgggFXwiFYVBGBAFIQIgAiAIIAIgDyAUfHwiD4VBEBAFIgggFXwiFIVBPxAFIQIgAyARIBsgAyASfCALfCILhUEgEAUiFXwiEYVBGBAFIQMgAyARIBUgAyALIBx8fCILhUEQEAUiFXwiEYVBPxAFIQMgBCAUIBUgBCAGIBp8fCIGhUEgEAUiFXwiFIVBGBAFIQQgBCAUIBUgBCAGIB58fCIGhUEQEAUiFHwiFYVBPxAFIQQgAiARIAogAiAOIB18fCIRhUEgEAUiCnwiHYVBGBAFIQIgAiAKIAIgESATfHwiEYVBEBAFIgogHXwiHYVBPxAFIQIgAyAJIAMgDyAZfHwiD4VBIBAFIgkgDHwiDIVBGBAFIQMgAyAJIAMgDyAQfHwiD4VBEBAFIgkgDHwiDIVBPxAFIQMgBSAYIAggASkDmAEiGyAFIAt8fCILhUEgEAUiCHwiGIVBGBAFIQUgDCAKIAUgGCAIIAEpA+gBIh8gBSALfHwiC4VBEBAFIgh8IhiFQT8QBSIFIAYgDXx8IgaFQSAQBSIKfCIMIAWFQRgQBSENIA0gDCAKIA0gBiATfHwiBoVBEBAFIgp8IgyFQT8QBSENIAQgCSAEIBl8IBF8IhGFQSAQBSIJIBh8IhiFQRgQBSEFIAUgCSAFIBEgEnx8IgSFQRAQBSIJIBh8IhGFQT8QBSEFIAIgCCACIAd8IA98IgeFQSAQBSIPIBV8IgiFQRgQBSECIAIgDyACIAcgDnx8IgeFQRAQBSIPIAh8IgiFQT8QBSEOIAMgFCADIBB8IAt8IhCFQSAQBSILIB18IhSFQRgQBSECIAIgCyACIBAgG3x8IgOFQRAQBSIQIBR8IguFQT8QBSECIAUgCCAQIAEpA6ABIAUgBnx8IgaFQSAQBSIQfCIIhUEYEAUhBSAFIBAgBSAGIB98fCIGhUEQEAUiECAIfCIIhUE/EAUhBSAOIAsgCiAOIAQgF3x8IgSFQSAQBSILfCIKhUEYEAUhDiAOIAsgDiAEIBZ8fCIEhUEQEAUiCyAKfCIKhUE/EAUhDiACIAkgAiAHIBx8fCIHhUEgEAUiCSAMfCIMhUEYEAUhAiACIAkgAiAHIBp8fCIHhUEQEAUiCSAMfCIMhUE/EAUhAiANIA8gDSAefCADfCIDhUEgEAUiDyARfCIRhUEYEAUhDSAMIAsgDSAPIAEpA8gBIAMgDXx8IgOFQRAQBSIPIBF8IhGFQT8QBSINIAYgE3x8IgaFQSAQBSILfCIMIA2FQRgQBSENIA0gCyANIAYgFnx8IgaFQRAQBSILIAx8IgyFQT8QBSENIAUgCSAFIB58IAR8IgSFQSAQBSIJIBF8IhGFQRgQBSEFIAUgCSAFIAQgHHx8IgSFQRAQBSIJIBF8IhGFQT8QBSEFIA4gDyAOIBp8IAd8IgeFQSAQBSIPIAh8IgiFQRgQBSEOIA4gDyABKQPoASAHIA58fCIHhUEQEAUiDyAIfCIIhUE/EAUhDiACIBAgASkDoAEgAiADfHwiA4VBIBAFIhAgCnwiCoVBGBAFIQIgAiAQIAIgAyASfHwiA4VBEBAFIhAgCnwiCoVBPxAFIQIgBSAIIBAgASkDgAEgBSAGfHwiBoVBIBAFIhB8IgiFQRgQBSEFIAUgECAFIAYgF3x8IgaFQRAQBSIQIAh8IgiFQT8QBSEFIA4gCyAOIAQgGXx8IgSFQSAQBSILIAp8IgqFQRgQBSEOIA4gCyABKQOYASAEIA58fCIEhUEQEAUiCyAKfCIKhUE/EAUhDiACIAkgASkDyAEgAiAHfHwiB4VBIBAFIgkgDHwiDIVBGBAFIQIgAiAJIAEpA5ABIAIgB3x8IgeFQRAQBSIJIAx8IgyFQT8QBSECIA0gDyABKQPAASADIA18fCIDhUEgEAUiDyARfCIRhUEYEAUhDSANIBEgDyABKQPYASIUIAMgDXx8IgOFQRAQBSIPfCIRhUE/EAUhDSANIAsgASkD6AEgBiANfHwiBoVBIBAFIgsgDHwiDIVBGBAFIQ0gDSALIAYgDXwgFHwiBoVBEBAFIgsgDHwiDIVBPxAFIQ0gBSAJIAUgF3wgBHwiBIVBIBAFIgkgEXwiEYVBGBAFIQUgBSAJIAUgBCAafHwiBIVBEBAFIgkgEXwiEYVBPxAFIQUgDiAPIA4gE3wgB3wiB4VBIBAFIg8gCHwiCIVBGBAFIQ4gDiAPIA4gByAefHwiB4VBEBAFIg8gCHwiCIVBPxAFIQ4gAiAQIAEpA5gBIAIgA3x8IgOFQSAQBSIQIAp8IgqFQRgQBSECIAIgECABKQPIASACIAN8fCIDhUEQEAUiECAKfCIKhUE/EAUhAiAFIBAgBSAGIBZ8fCIGhUEgEAUiECAIfCIIhUEYEAUhBSAFIBAgASkDgAEgBSAGfHwiBoVBEBAFIhAgCHwiCIVBPxAFIQUgDiALIA4gBCAcfHwiBIVBIBAFIgsgCnwiCoVBGBAFIQ4gDiALIAEpA6ABIAQgDnx8IgSFQRAQBSILIAp8IgqFQT8QBSEOIAIgCSABKQPAASACIAd8fCIHhUEgEAUiCSAMfCIMhUEYEAUhAiACIAkgAiAHIBl8fCIHhUEQEAUiCSAMfCIMhUE/EAUhAiANIA8gASkDkAEgAyANfHwiA4VBIBAFIg8gEXwiEYVBGBAFIQ0gDCALIA0gDyANIAMgEnx8IgOFQRAQBSIPIBF8IhGFQT8QBSINIAYgGXx8IgaFQSAQBSILfCIMIA2FQRgQBSENIA0gCyANIAYgHHx8IgaFQRAQBSILIAx8IgyFQT8QBSENIAUgCSAFIBp8IAR8IgSFQSAQBSIJIBF8IhGFQRgQBSEFIAUgCSABKQPIASAEIAV8fCIEhUEQEAUiCSARfCIRhUE/EAUhBSAOIA8gASkD2AEgByAOfHwiB4VBIBAFIg8gCHwiCIVBGBAFIQ4gDiAPIAEpA5gBIAcgDnx8IgeFQRAQBSIPIAh8IgiFQT8QBSEOIAIgECABKQOAASACIAN8fCIDhUEgEAUiECAKfCIKhUEYEAUhAiACIBAgASkDwAEgAiADfHwiA4VBEBAFIhAgCnwiCoVBPxAFIQIgBSAQIAUgBiATfHwiBoVBIBAFIhAgCHwiCIVBGBAFIQUgBSAIIBAgASkDkAEiFCAFIAZ8fCIGhUEQEAUiEHwiCIVBPxAFIQUgDiALIAEpA+gBIAQgDnx8IgSFQSAQBSILIAp8IgqFQRgQBSEOIA4gCyAOIAQgF3x8IgSFQRAQBSILIAp8IgqFQT8QBSEOIAIgCSACIAcgHnx8IgeFQSAQBSIJIAx8IgyFQRgQBSECIAIgDCAJIAEpA6ABIhUgAiAHfHwiB4VBEBAFIgl8IgyFQT8QBSECIA0gDyANIBJ8IAN8IgOFQSAQBSIPIBF8IhGFQRgQBSENIAsgDSAPIA0gAyAWfHwiA4VBEBAFIg8gEXwiEYVBPxAFIg0gBiASfHwiBoVBIBAFIgsgDHwiDCANhUEYEAUhEiASIAwgCyAGIBJ8IBR8IgaFQRAQBSILfCIMhUE/EAUhEiAFIAkgASkDwAEgBCAFfHwiBIVBIBAFIgkgEXwiEYVBGBAFIQ0gDSAJIAQgDXwgFXwiBYVBEBAFIgQgEXwiCYVBPxAFIQ0gDiAPIA4gF3wgB3wiB4VBIBAFIg8gCHwiCIVBGBAFIQ4gDiAPIA4gByAZfHwiB4VBEBAFIg8gCHwiCIVBPxAFIQ4gAiAQIAIgHnwgA3wiA4VBIBAFIhAgCnwiCoVBGBAFIQIgAiAQIAIgAyAWfHwiA4VBEBAFIhAgCnwiCoVBPxAFIQIgDSAIIBAgDSAGIBx8fCIGhUEgEAUiEHwiCIVBGBAFIQ0gDSAQIAEpA9gBIAYgDXx8IgaFQRAQBSIQIAh8IgiFQT8QBSENIA4gCyABKQPIASAFIA58fCIFhUEgEAUiCyAKfCIKhUEYEAUhDiAOIAsgDiAFIBp8fCIFhUEQEAUiCyAKfCIKhUE/EAUhDiACIAwgBCABKQOYASIRIAIgB3x8IgeFQSAQBSIEfCIMhUEYEAUhAiACIAQgAiAHIBN8fCIHhUEQEAUiBCAMfCIMhUE/EAUhAiASIA8gASkD6AEgAyASfHwiA4VBIBAFIg8gCXwiCYVBGBAFIRIgEiAJIA8gASkDgAEiFCADIBJ8fCIDhUEQEAUiD3wiCYVBPxAFIRIgEiALIAYgEnwgFHwiBoVBIBAFIgsgDHwiDIVBGBAFIRIgEiALIBIgBiAefHwiBoVBEBAFIgsgDHwiDIVBPxAFIRIgDSAEIAEpA5ABIAUgDXx8IgWFQSAQBSIEIAl8IgmFQRgQBSENIA0gBCAFIA18IBF8IgWFQRAQBSIEIAl8IgmFQT8QBSENIA4gDyABKQOgASAHIA58fCIHhUEgEAUiDyAIfCIIhUEYEAUhDiAOIA8gDiAHIBZ8fCIHhUEQEAUiDyAIfCIIhUE/EAUhDiACIBAgAiAZfCADfCIDhUEgEAUiECAKfCIKhUEYEAUhAiACIBAgAiADIBd8fCIDhUEQEAUiECAKfCIKhUE/EAUhAiANIBAgASkDwAEgBiANfHwiBoVBIBAFIhAgCHwiCIVBGBAFIQ0gDSAQIAEpA8gBIAYgDXx8IgaFQRAQBSIQIAh8IgiFQT8QBSENIA4gCiALIAEpA9ABIhEgBSAOfHwiBYVBIBAFIgt8IgqFQRgQBSEOIA4gCyABKQPYASAFIA58fCIFhUEQEAUiCyAKfCIKhUE/EAUhDiACIAQgAiAHIBN8fCIHhUEgEAUiBCAMfCIMhUEYEAUhAiACIAQgASkD6AEgAiAHfHwiB4VBEBAFIgQgDHwiDIVBPxAFIQIgEiAPIBIgGnwgA3wiA4VBIBAFIg8gCXwiCYVBGBAFIRIgCyASIA8gEiADIBx8fCIDhUEQEAUiDyAJfCIJhUE/EAUiEiAGIBp8fCIGhUEgEAUiCyAMfCIMIBKFQRgQBSEaIBogCyAGIBp8IBF8IgaFQRAQBSILIAx8IhGFQT8QBSEaIA0gBCABKQOgASAFIA18fCIFhUEgEAUiBCAJfCIJhUEYEAUhEiASIAQgASkDwAEgBSASfHwiBYVBEBAFIgQgCXwiCYVBPxAFIRIgDiAPIAEpA8gBIAcgDnx8IgeFQSAQBSIPIAh8IgiFQRgQBSENIA0gDyANIAcgHHx8Ig6FQRAQBSIHIAh8Ig+FQT8QBSEcIAIgECABKQPoASACIAN8fCIDhUEgEAUiECAKfCIIhUEYEAUhDSANIBAgDSADIBl8fCIChUEQEAUiAyAIfCIQhUE/EAUhGSABIBIgBiAefHwiHiATfCASIAMgHoVBIBAFIhMgD3wiDYVBGBAFIhJ8Ih43AwAgASATIB6FQRAQBSITNwN4IAEgDSATfCITNwNQIAEgEiAThUE/EAU3AyggASAcIAsgASkDgAEgBSAcfHwiE4VBIBAFIhIgEHwiDYVBGBAFIhwgE3wgASkDkAF8IhM3AwggASASIBOFQRAQBSITNwNgIAEgDSATfCITNwNYIAEgEyAchUE/EAU3AzAgASAXIAEpA9gBIA4gGXx8IhN8IBkgBCAThUEgEAUiFyARfCIThUEYEAUiGXwiHDcDECABIBcgHIVBEBAFIhc3A2ggASATIBd8Ihc3A0AgASAXIBmFQT8QBTcDOCABIBogByAWIBp8IAJ8IhaFQSAQBSIZIAl8IheFQRgQBSITIBZ8IAEpA5gBfCIWNwMYIAEgFiAZhUEQEAUiFjcDcCABIBYgF3wiFjcDSCABIBMgFoVBPxAFNwMgIAAgASkDQCAeIAApAACFhTcAAEEBISEDQCAAICFBA3QiIGoiIiABICBqIiApAwAgIikAAIUgIEFAaykDAIU3AAAgIUEBaiIhQQhHDQALIAFBgAJqJAALRQECfyMAQRBrIgNBADoADyABBEADQCADIAAgAmotAAAgAy0AD3I6AA8gAkEBaiICIAFHDQALCyADLQAPQQFrQQh2QQFxCxkAIAAgASACIANCACAEQeSRAigCABESABoLEAAgACABQdyRAigCABEDAAsDAAEL9wEBBH8jAEGAAWsiAyQAIAAQHCAAQShqIgQQHCAAQdAAaiIFEDAgACABQcAHbEHgFWoiASACQQAgAkGAAXFBB3YiBmsgAnFBAXRrQRh0QRh1IgJBARAmECIgACABQfgAaiACQQIQJhAiIAAgAUHwAWogAkEDECYQIiAAIAFB6AJqIAJBBBAmECIgACABQeADaiACQQUQJhAiIAAgAUHYBGogAkEGECYQIiAAIAFB0AVqIAJBBxAmECIgACABQcgGaiACQQgQJhAiIANBCGoiASAEECkgA0EwaiAAECkgA0HYAGogBRCAASAAIAEgBhAiIANBgAFqJAALHQAgABAwIABBKGoQHCAAQdAAahAcIABB+ABqEDALgAIBCH8DQCAAIAJqIAEgAkEDdmotAAAgAkEHcXZBAXE6AAAgAkEBaiICQYACRw0ACwNAIAQiAUEBaiEEAkAgACABaiIGLQAARQ0AIAQhAkEBIQUgAUH+AUsNAANAAkAgACACaiIDLAAAIgdFDQAgByAFdCIHIAYsAAAiCGoiCUEPTARAIAYgCToAACADQQA6AAAMAQsgCCAHayIDQXFIDQIgBiADOgAAA0AgACACaiIDLQAARQRAIANBAToAAAwCCyADQQA6AAAgAkH/AUkhAyACQQFqIQIgAw0ACwsgBUEFSw0BIAVBAWoiBSABaiICQYACSQ0ACwsgBEGAAkcNAAsLlQEBBH8jAEEwayIFJAAgACABQShqIgMgARASIABBKGoiBCADIAEQFSAAQdAAaiIDIAAgAkEoahAKIAQgBCACEAogAEH4AGoiBiACQfgAaiABQfgAahAKIAAgAUHQAGogAkHQAGoQCiAFIAAgABASIAAgAyAEEBUgBCADIAQQEiADIAUgBhAVIAYgBSAGEBIgBUEwaiQAC4sMAQZ/IAAgAWohBQJAAkAgACgCBCICQQFxDQAgAkEDcUUNASAAKAIAIgIgAWohAQJAIAAgAmsiAEGomAIoAgBHBEAgAkH/AU0EQCAAKAIIIgQgAkEDdiICQQN0QbyYAmpGGiAAKAIMIgMgBEcNAkGUmAJBlJgCKAIAQX4gAndxNgIADAMLIAAoAhghBgJAIAAgACgCDCIDRwRAIAAoAggiAkGkmAIoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgAEEUaiICKAIAIgQNACAAQRBqIgIoAgAiBA0AQQAhAwwBCwNAIAIhByAEIgNBFGoiAigCACIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgALIAZFDQICQCAAIAAoAhwiBEECdEHEmgJqIgIoAgBGBEAgAiADNgIAIAMNAUGYmAJBmJgCKAIAQX4gBHdxNgIADAQLIAZBEEEUIAYoAhAgAEYbaiADNgIAIANFDQMLIAMgBjYCGCAAKAIQIgIEQCADIAI2AhAgAiADNgIYCyAAKAIUIgJFDQIgAyACNgIUIAIgAzYCGAwCCyAFKAIEIgJBA3FBA0cNAUGcmAIgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggLAkAgBSgCBCICQQJxRQRAIAVBrJgCKAIARgRAQayYAiAANgIAQaCYAkGgmAIoAgAgAWoiATYCACAAIAFBAXI2AgQgAEGomAIoAgBHDQNBnJgCQQA2AgBBqJgCQQA2AgAPCyAFQaiYAigCAEYEQEGomAIgADYCAEGcmAJBnJgCKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohAQJAIAJB/wFNBEAgBSgCCCIEIAJBA3YiAkEDdEG8mAJqRhogBCAFKAIMIgNGBEBBlJgCQZSYAigCAEF+IAJ3cTYCAAwCCyAEIAM2AgwgAyAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIDRwRAIAUoAggiAkGkmAIoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgBUEUaiIEKAIAIgINACAFQRBqIgQoAgAiAg0AQQAhAwwBCwNAIAQhByACIgNBFGoiBCgCACICDQAgA0EQaiEEIAMoAhAiAg0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiBEECdEHEmgJqIgIoAgBGBEAgAiADNgIAIAMNAUGYmAJBmJgCKAIAQX4gBHdxNgIADAILIAZBEEEUIAYoAhAgBUYbaiADNgIAIANFDQELIAMgBjYCGCAFKAIQIgIEQCADIAI2AhAgAiADNgIYCyAFKAIUIgJFDQAgAyACNgIUIAIgAzYCGAsgACABQQFyNgIEIAAgAWogATYCACAAQaiYAigCAEcNAUGcmAIgATYCAA8LIAUgAkF+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQf8BTQRAIAFBA3YiAkEDdEG8mAJqIQECf0GUmAIoAgAiA0EBIAJ0IgJxRQRAQZSYAiACIANyNgIAIAEMAQsgASgCCAshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggPC0EfIQIgAEIANwIQIAFB////B00EQCABQQh2IgIgAkGA/j9qQRB2QQhxIgR0IgIgAkGA4B9qQRB2QQRxIgN0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBHIgAnJrIgJBAXQgASACQRVqdkEBcXJBHGohAgsgACACNgIcIAJBAnRBxJoCaiEHAkACQEGYmAIoAgAiBEEBIAJ0IgNxRQRAQZiYAiADIARyNgIAIAcgADYCACAAIAc2AhgMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQIgBygCACEDA0AgAyIEKAIEQXhxIAFGDQIgAkEddiEDIAJBAXQhAiAEIANBBHFqIgdBEGooAgAiAw0ACyAHIAA2AhAgACAENgIYCyAAIAA2AgwgACAANgIIDwsgBCgCCCIBIAA2AgwgBCAANgIIIABBADYCGCAAIAQ2AgwgACABNgIICwvEBQEIfyMAQaACayIFJAAgAEEoaiIJIAEQgQEgAEHQAGoiAxAcIAVB8AFqIgYgCRANIAVBwAFqIgcgBkGQCxAKIAYgBiADEBUgByAHIAMQEiAFQZABaiIIIAcQDSAIIAggBxAKIAAgCBANIAAgACAHEAogACAAIAYQCiMAQZABayIDJAAgA0HgAGoiAiAAEA0gA0EwaiIEIAIQDSAEIAQQDSAEIAAgBBAKIAIgAiAEEAogAiACEA0gAiAEIAIQCiAEIAIQDUEBIQIDQCADQTBqIgQgBBANIAJBAWoiAkEFRw0ACyADQeAAaiICIANBMGoiBCACEAogBCACEA1BASECA0AgA0EwaiIEIAQQDSACQQFqIgJBCkcNAAsgA0EwaiICIAIgA0HgAGoQCiADIAIQDUEBIQIDQCADIAMQDSACQQFqIgJBFEcNAAsgA0EwaiICIAMgAhAKQQEhAgNAIANBMGoiBCAEEA0gAkEBaiICQQtHDQALIANB4ABqIgIgA0EwaiIEIAIQCiAEIAIQDUEBIQIDQCADQTBqIgQgBBANIAJBAWoiAkEyRw0ACyADQTBqIgIgAiADQeAAahAKIAMgAhANQQEhAgNAIAMgAxANIAJBAWoiAkHkAEcNAAsgA0EwaiICIAMgAhAKQQEhAgNAIANBMGoiBCAEEA0gAkEBaiICQTNHDQALIANB4ABqIgIgA0EwaiACEAogAiACEA0gAiACEA0gACACIAAQCiADQZABaiQAIAAgACAIEAogACAAIAYQCiAFQeAAaiIDIAAQDSADIAMgBxAKIAVBMGoiAiADIAYQFQJ/IAIQVkUEQCAFIAVB4ABqIAVB8AFqEBJBfyAFEFZFDQEaIAAgAEHACxAKCyAAEH8gAS0AH0EHdkYEQCAAIAAQgAELIABB+ABqIAAgCRAKQQALIQAgBUGgAmokACAACyYBAX8jAEEgayIBJAAgASAAECwgAS0AACEAIAFBIGokACAAQQFxC6oBAQl/IAEoAgQhAiABKAIIIQMgASgCDCEEIAEoAhAhBSABKAIUIQYgASgCGCEHIAEoAhwhCCABKAIgIQkgASgCJCEKIABBACABKAIAazYCACAAQQAgCms2AiQgAEEAIAlrNgIgIABBACAIazYCHCAAQQAgB2s2AhggAEEAIAZrNgIUIABBACAFazYCECAAQQAgBGs2AgwgAEEAIANrNgIIIABBACACazYCBAvCAwEMfiABNQAAIQQgAUEEahAOIQUgAUEHahAOIQYgAUEKahAOIQIgAUENahAOIQcgATUAECEDIAFBFGoQDiEIIAFBF2oQDiEJIAFBGmoQDiEKIAFBHWoQDiELIAAgAkIDhiICIAJCgICACHwiAkKAgIDwD4N9IAZCBYYgBUIGhiIFQoCAgAh8IgZCGYd8IgxCgICAEHwiDUIaiHw+AgwgACAMIA1CgICA4A+DfT4CCCAAIAMgA0KAgIAIfCIDQoCAgPAPg30gB0IChiACQhmHfCICQoCAgBB8IgdCGoh8PgIUIAAgAiAHQoCAgOAPg30+AhAgACAIQgeGIANCGYd8IgMgA0KAgIAQfCIDQoCAgOAPg30+AhggACAJQgWGIgIgAkKAgIAIfCICQoCAgPAPg30gA0IaiHw+AhwgACAKQgSGIAJCGYd8IgMgA0KAgIAQfCIDQoCAgOAPg30+AiAgACALQgKGQvz//w+DIgIgAkKAgIAIfCICQoCAgBCDfSADQhqIfD4CJCAAIAUgBkKAgIDwD4N9IAQgAkIZiEITfnwiA0KAgIAQfCIEQhqIfD4CBCAAIAMgBEKAgIDgD4N9PgIAC6sDAgx/BH4gACkDOCIOUEUEQCAAIA6nIgNqIgJBQGtBAToAACAOQgF8Qg9YBEAgAkHBAGpBAEEPIANrEA8aCyAAQQE6AFAgACAAQUBrQhAQVwsgADUCNCEOIAA1AjAhDyAANQIsIRAgASAANQIoIAAoAiQgACgCICAAKAIcIAAoAhgiA0EadmoiAkEadmoiBEEadmoiB0GAgIBgciAEQf///x9xIgggAkH///8fcSIFIAAoAhQgB0EadkEFbGoiAkH///8fcSIJQQVqIgpBGnYgA0H///8fcSACQRp2aiICaiIGQRp2aiILQRp2aiIMQRp2aiIEQR91IgMgAnEgBiAEQR92QQFrIgZB////H3EiAnFyIg1BGnQgAiAKcSADIAlxcnKtfCIRpxAJIAFBBGogECADIAVxIAIgC3FyIgVBFHQgDUEGdnKtfCARQiCIfCIQpxAJIAFBCGogDyADIAhxIAIgDHFyIgJBDnQgBUEMdnKtfCAQQiCIfCIPpxAJIAFBDGogDiAEIAZxIAMgB3FyQQh0IAJBEnZyrXwgD0IgiHynEAkgAEHYABAIC/MBAQN+AkAgACkDOCIEUEUEQEIQIAR9IgMgAiACIANWGyIFUEUEQEIAIQMDQCAAIAMgBHynakFAayABIAOnai0AADoAACAAKQM4IQQgA0IBfCIDIAVSDQALCyAAIAQgBXwiAzcDOCADQhBUDQEgACAAQUBrQhAQVyAAQgA3AzggAiAFfSECIAEgBadqIQELIAJCEFoEQCAAIAEgAkJwgyIDEFcgAkIPgyECIAEgA6dqIQELIAJQDQBCACEDA0AgACAAKQM4IAN8p2pBQGsgASADp2otAAA6AAAgA0IBfCIDIAJSDQALIAAgACkDOCACfDcDOAsLsgEBAX8gACABKAAAQf///x9xNgIAIAAgASgAA0ECdkGD/v8fcTYCBCAAIAEoAAZBBHZB/4H/H3E2AgggACABKAAJQQZ2Qf//wB9xNgIMIAEoAAwhAiAAQgA3AhQgAEIANwIcIABBADYCJCAAIAJBCHZB//8/cTYCECAAIAEoABA2AiggACABKAAUNgIsIAAgASgAGDYCMCABKAAcIQEgAEEAOgBQIABCADcDOCAAIAE2AjQLMAECfyMAIgVBgAFrQUBxIgQkACAEIAMQhAEgBCABIAIQgwEgBCAAEIIBIAUkAEEACwsAIAAgAUEgEIcBC2wBAX8jAEEQayIDIAA2AgwgAyABNgIIQQAhASADQQA2AgQgAkEASgRAA0AgAyADKAIEIAMoAgggAWotAAAgAygCDCABai0AAHNyNgIEIAFBAWoiASACRw0ACwsgAygCBEEBa0EIdkEBcUEBawspAQJ/A0AgACACQQN0IgNqIAEgA2opAAA3AwAgAkEBaiICQYABRw0ACwtyAQF/AkAgAUEEcUUNACAAKAIAIgEEQCABKAIEIAAoAhBBCnQQCAsgACgCBCIBRQ0AIAEgACgCFEEDdBAICyAAKAIEEBggAEEANgIEAkAgACgCACIBRQ0AIAEoAgAiAkUNACACEBgLIAEQGCAAQQA2AgALEAAgAEIANwIAIABCADcCCAspAQF/IwBBEGsiACQAIABBADoAD0GMkgIgAEEPakEAEAEaIABBEGokAAsoACACQoCAgIAQWgRAEBQACyAAIAEgAiADQgEgBEG8kQIoAgAREgAaCxYAIABCwAAgASACQbSRAigCABENABoLPQECfyMAIgRBgANrQUBxIgMkACADQQBBAEEYEEIaIAMgAUIgECUaIAMgAkIgECUaIAMgAEEYEEEaIAQkAAsqAQF/QX8hBiACQhBaBH8gACABQRBqIAEgAkIQfSADIAQgBRCQAQUgBgsLPAECfyMAQSBrIgckAEF/IQggByAFIAYQZEUEQCAAIAEgAiADIAQgBxBgIQggB0EgEAgLIAdBIGokACAICyUAIAJC8P///w9aBEAQFAALIABBEGogACABIAIgAyAEIAUQkgELPAECfyMAQSBrIgckAEF/IQggByAFIAYQZEUEQCAAIAEgAiADIAQgBxBhIQggB0EgEAgLIAdBIGokACAICw4AIAFBIBAdIAAgARB3C+cCAQV/IwBBoANrIgYkACMAQcABayIEJAAgBhA2IARBQGtBNkGAARAPGiAEIAMtAABBNnM6AEBBASEFA0AgBEFAayAFaiIHIActAAAgAyAFai0AAHM6AAAgBUEBaiIFQSBHDQALIAYgBEFAayIFQoABEBsaIAZB0AFqIgcQNiAFQdwAQYABEA8aIAQgAy0AAEHcAHM6AEBBASEFA0AgBEFAayAFaiIIIAgtAAAgAyAFai0AAHM6AAAgBUEBaiIFQSBHDQALIAcgBEFAayIDQoABEBsaIANBgAEQCCAEQcAAEAggBEHAAWokACAGIAEgAhAbGiMAQUBqIgEkACMAQUBqIgMkACAGIAMQJyAGQdABaiIEIANCwAAQGxogBCABECcgA0HAABAIIANBQGskACAAIAEpAxg3ABggACABKQMQNwAQIAAgASkDCDcACCAAIAEpAwA3AAAgAUFAayQAIAZBoANqJABBAAsyACAAIAIEfyACKAAABUEACzYCMCAAIAEoAAA2AjQgACABKAAENgI4IAAgASgACDYCPAuUAQEBfyMAQRBrIgUkACAAQQBBgAEQDyEAAn8gBEGBgICAeEkgAiADhEL/////D1hxRQRAQeCXAkEWNgIAQX8MAQsgA1BFIARB/z9LcUUEQEHglwJBHDYCAEF/DAELIAVBEBAdQX9BACADpyAEQQp2QQEgASACpyAFQRBBAEEgIABBgAFBAhA0GwshACAFQRBqJAAgAAugAgIEfwF+IwBBQGoiBCQAAkACQAJAIAAQISIGQYABSSABQv////8PWHFFBEBB4JcCQRw2AgAMAQsgBEEANgI4IARCADcDMCAEQgA3AygCQAJ/QQAgBkUNABogBq0iCKciBSAGQQFyQYCABEkNABpBfyAFIAhCIIinGwsiBxAfIgVFDQAgBUEEay0AAEEDcUUNACAFQQAgBxAPGgsgBQ0BC0F/IQAMAQsgBEIANwMgIAQgBTYCCCAEIAU2AhAgBCAGNgIUIAQgBTYCACAEIAY2AgwgBEIANwMYIAQgBjYCBAJ/IAQgACADEJkBBEBB4JcCQRw2AgBBfwwBCyAEKAIoIAGnRyAEKAIsIAJBCnZHcgshACAFEBgLIARBQGskACAAC5wCAQV/IwBBQGoiBCQAIARBCGpBAEE0EA8aIAQgABAhIgU2AhQgBCAFNgIkIAQgBTYCBCAEIAUQHyIGNgIgIAQgBRAfIgc2AhAgBCAFEB8iCDYCAAJAAkAgCEUgBkUgB0Vycg0AIAUQHyIFRQ0AIAQgACADEJkBIgAEQCAEKAIgEBggBCgCEBAYIAQoAgAQGCAFEBgMAgtBACEAIAQoAiggBCgCLCAEKAI0IAEgAiAEKAIQIAQoAhQgBSAEKAIEQQBBACADEDQhASAEKAIgEBggBCgCEBAYAkAgAUUEQCAFIAQoAgAgBCgCBBBPRQ0BC0FdIQALIAUQGCAEKAIAEBgMAQsgBhAYIAcQGCAIEBhBaiEACyAEQUBrJAAgAAvMAwEEfyMAQRBrIgMkACAAKAIUIQUgAEEANgIUIAAoAgQhBiAAQQA2AgRBZiEEAkACQAJ/AkACQCACQQFrDgIBAAQLQWAhBCABQdUIQQkQIA0DIAFBCWoMAQtBYCEEIAFBzAhBCBAgDQIgAUEIagsiBEHICkEDECANACAEQQNqIANBDGoQQCIBRQ0AQWYhBCADKAIMQRNHDQEgAUHUCkEDECANACABQQNqIANBDGoQQCIBRQ0AIAAgAygCDDYCLCABQcwKQQMQIA0AIAFBA2ogA0EMahBAIgFFDQAgACADKAIMNgIoIAFB0ApBAxAgDQAgAUEDaiADQQxqEEAiAUUNACAAIAMoAgwiAjYCMCAAIAI2AjQgAS0AACICQSRHDQAgAyAFNgIMIAAoAhAgBSABIAJBJEZqIgEgARAhQQAgA0EMaiADQQhqQQMQZw0AIAAgAygCDDYCFCADKAIIIgEtAAAiAkEkRw0AIAMgBjYCDCAAKAIAIAYgASACQSRGaiIBIAEQIUEAIANBDGogA0EIakEDEGcNACAAIAMoAgw2AgQgAygCCCEBIAAQWCIEDQFBYEEAIAEtAAAbIQQMAQtBYCEECyADQRBqJAAgBAuTAgEEfyMAQTBrIggkACAIQQA2AgQgCEEQaiIJIAYgBxBLIAggBikAEDcCCCMAQeACayIGJAAgBkEgaiIKQsAAIAhBBGoiCyAJEF0gBkHgAGoiByAKECQgCkHAABAIIAcgBCAFEAsgB0GQkQJCACAFfUIPgxALIAcgASACEAsgB0GQkQJCACACfUIPgxALIAZBGGoiBCAFEBAgByAEQggQCyAEIAIQECAHIARCCBALIAcgBhAjIAdBgAIQCCAGIAMQPSEDIAZBEBAIAkAgAEUNACADBEAgAEEAIAKnEA8aQX8hAwwBCyAAIAEgAiALQQEgCRBcQQAhAwsgBkHgAmokACADIQAgCUEgEAggCEEwaiQAIAAL7AEBBH8jAEEwayIJJAAgCUEANgIEIAlBEGoiCiAHIAgQSyAJIAcpABA3AggjAEHQAmsiCCQAIAhBEGoiC0LAACAJQQRqIgwgChBdIAhB0ABqIgcgCxAkIAtBwAAQCCAHIAUgBhALIAdBkJECQgAgBn1CD4MQCyAAIAMgBCAMQQEgChBcIAcgACAEEAsgB0GQkQJCACAEfUIPgxALIAhBCGoiACAGEBAgByAAQggQCyAAIAQQECAHIABCCBALIAcgARAjIAdBgAIQCCACBEAgAkIQNwMACyAIQdACaiQAIApBIBAIIAlBMGokAEEACxAAIAAgASACIAMgBCAFEG8LegECfyAAQcD/AHNBAWpBCHZBf3NBL3EgAEHB/wBzQQFqQQh2QX9zQStxIABB5v8DakEIdkH/AXEiASAAQcEAanFyciAAQcz/A2pBCHYiAiAAQccAanEgAUH/AXNxciAAQfwBaiAAQcL/A2pBCHZxIAJBf3NxQf8BcXILewECfyAAQcD/AXNBAWpBCHZBf3NB3wBxIABBwf8Ac0EBakEIdkF/c0EtcSAAQeb/A2pBCHZB/wFxIgEgAEHBAGpxcnIgAEHM/wNqQQh2IgIgAEHHAGpxIAFB/wFzcXIgAEH8AWogAEHC/wNqQQh2cSACQX9zcUH/AXFyCz0AIAACfyACBEAgACACKAAANgIwIAIoAAQMAQsgAEEANgIwQQALNgI0IAAgASgAADYCOCAAIAEoAAQ2AjwLDwAgACABIAIgA0EAEKEBC6sIAQh/IwBB0ARrIgkkAEF/IQogAEEgaiEHQSAhBUEBIQgDQCAHIAVBAWsiBWotAAAiCyAFQcAVai0AACIMa0EIdSAIcSAGQf8BcXIhBiALIAxzQf//A2pBCHYgCHEhCCAFDQALAkAgBkUNACAAEFENACADLQAfQX9zQf8AcSEFQR4hBgNAIAUgAyAGai0AAEF/c3IhBSAGQQFrIgYNAAsgBUH/AXFBAWtB7AEgAy0AAGtxQRd0QR91QX9GDQAgAxBRDQAgCUGAAWogAxB+DQAgCUGAA2oiBSAEEGogBSAAQiAQGxogBSADQiAQGxogBSABIAIQGxogBSAJQcACaiIBECcgARBQIwBB4BFrIgQkACAEQeAPaiABEHsgBEHgDWogBxB7IARB4ANqIgMgCUGAAWoiBRAZIARBwAJqIgEgBRA6IAQgARATIAEgBCADEBogBEGgAWoiAyABEBMgBEGABWoiBSADEBkgASAEIAUQGiADIAEQEyAEQaAGaiIFIAMQGSABIAQgBRAaIAMgARATIARBwAdqIgUgAxAZIAEgBCAFEBogAyABEBMgBEHgCGoiBSADEBkgASAEIAUQGiADIAEQEyAEQYAKaiIFIAMQGSABIAQgBRAaIAMgARATIARBoAtqIgUgAxAZIAEgBCAFEBogAyABEBMgBEHADGogAxAZIAlBCGoiCBAwIAhBKGoQHCAIQdAAahAcQf8BIQMCQANAAkAgAyIBIARB4A9qai0AAA0AIARB4A1qIAFqLQAADQAgAUEBayEDIAENAQwCCwsgAUEASA0AA0AgBEHAAmogCBAxAkAgASIDIARB4A9qaiwAACIBQQBKBEAgBEGgAWoiBSAEQcACaiIGEBMgBiAFIARB4ANqIAFB/gFxQQF2QaABbGoQGgwBCyABQQBODQAgBEGgAWoiBSAEQcACaiIGEBMgBiAFIARB4ANqQQAgAWtB/gFxQQF2QaABbGoQfAsCQCAEQeANaiADaiwAACIHQQBKBEAgBEGgAWoiASAEQcACaiIFEBMgBSABIAdB/gFxQQF2QfgAbEGgDGoQUwwBCyAHQQBODQAgBEGgAWoiBSAEQcACaiIBEBMjAEEwayIKJAAgASAFQShqIgsgBRASIAFBKGoiBiALIAUQFSABQdAAaiILIAFBACAHa0H+AXFBAXZB+ABsQaAMaiIMQShqEAogBiAGIAwQCiABQfgAaiIHIAxB0ABqIAVB+ABqEAogCiAFQdAAaiIFIAUQEiABIAsgBhAVIAYgCyAGEBIgCyAKIAcQFSAHIAogBxASIApBMGokAAsgCCAEQcACahA7IANBAWshASADQQBKDQALCyAEQeARaiQAIAlBoAJqIgEgCBBUQX8gASAAEIYBIAAgAUYbIAAgAUEgEE9yIQoLIAlB0ARqJAAgCgsUACAAIAEgAiADIARBABCjARpBAAvnIAI8fgR/IwBBsARrIkQkACBEQeACaiJFIAUQaiBEQaACaiJCIARCIBA1GiBFIERBwAJqQiAQGxogRSACIAMQGxogRSBEQeABaiJDECcgBCkAICEIIAQpACghByAEKQAwIQYgACAEKQA4NwA4IAAgBjcAMCAAIAc3ACggAEEgaiIEIAg3AAAgQxBQIEQgQxBSIAAgRBBUIEUgBRBqIEUgAELAABAbGiBFIAIgAxAbGiBFIERBoAFqIgAQJyAAEFAgQiBCLQAAQfgBcToAACBCIEItAB9BP3FBwAByOgAfIAAQDiEQIAA1AAIhLSAAQQVqEA4hLiAANQAHIS8gADUACiEwIABBDWoQDiE2IAA1AA8hNyAAQRJqEA4hOCAAQRVqEA4hOSAANQAXIQ8gAEEaahAOIQkgADUAHCEMIEIQDiExIEI1AAIhOiBCQQVqEA4hOyBCNQAHISogQjUACiErIEJBDWoQDiE8IEI1AA8hDiBCQRJqEA4hDSBCQRVqEA4hCCBCNQAXIQcgQkEaahAOIQYgQjUAHCEDIEMQDiE+IEM1AAIhPyBDQQVqEA4hQCBDNQAHIUEgQzUACiE9IENBDWoQDiERIEM1AA8hLCBDQRJqEA4hCiBDQRVqEA4hCyAEIANCB4giEiAJQgKIQv///wCDIhN+IAZCAohC////AIMiFCAMQgeIIhV+fCATIBR+IAdCBYhC////AIMiFiAVfnwgEiAPQgWIQv///wCDIhd+fCIYQoCAQH0iD0IVh3wiCUKAgEB9IgxCFYcgEiAVfiIDIANCgIBAfSIDQoCAgH+DfXwiMkKDoVZ+IANCFYciM0LRqwh+fCA8QgGIQv///wCDIhkgE34gK0IEiEL///8AgyIaIBV+fCAOQgaIQv///wCDIhsgF358IAhC////AIMiHCA4QgOIQv///wCDIh1+fCANQgOIQv///wCDIh4gOUL///8AgyIffnwgFiA3QgaIQv///wCDIiB+fCAUIDZCAYhC////AIMiIX58IBIgMEIEiEL///8AgyIifnwgEyAafiAqQgeIQv///wCDIiMgFX58IBcgGX58IBsgH358IBwgIH58IB0gHn58IBYgIX58IBQgIn58IBIgL0IHiEL///8AgyIkfnwiCEKAgEB9IgdCFYd8IgN8IANCgIBAfSIGQoCAgH+DfSAIIDNC04xDfnwgMkLRqwh+fCAJIAxCgICAf4N9IjRCg6FWfnwgB0KAgIB/g30gEyAjfiA7QgKIQv///wCDIiUgFX58IBcgGn58IBkgH358IBsgHX58IBwgIX58IB4gIH58IBYgIn58IBQgJH58IBIgLkICiEL///8AgyImfnwgEyAlfiA6QgWIQv///wCDIicgFX58IBcgI358IBogH358IBkgHX58IBsgIH58IBwgIn58IB4gIX58IBYgJH58IBQgJn58IBIgLUIFiEL///8AgyIofnwiNkKAgEB9IjdCFYd8IjhCgIBAfSI5QhWHfCI6QoCAQH0iO0IVh3wiKkKAgEB9IitCFYcgEyAbfiAVIBl+fCAcIB9+fCAXIB5+fCAWIB1+fCAUICB+fCASICF+fCIDIDNCg6FWfnwgA0KAgEB9IgdCgICAf4N9IAZCFYd8IgMgA0KAgEB9IgZCgICAf4N9fCI1QoOhVn4gFyAcfiAVIBt+fCATIB5+fCAWIB9+fCAUIB1+fCASICB+fCAHQhWHfCIDIANCgIBAfSINQoCAgH+DfSAGQhWHfCItQtGrCH58IB8gJ34gMUL///8AgyIpIBd+fCAdICV+fCAgICN+fCAaICF+fCAZICJ+fCAbICR+fCAcICh+fCAeICZ+fCAWIBBC////AIMiEH58IEM1ABdCBYhC////AIN8IB0gJ34gHyApfnwgICAlfnwgISAjfnwgGiAifnwgGSAkfnwgGyAmfnwgECAcfnwgHiAofnwgC0L///8Ag3wiC0KAgEB9IglCFYh8IgwgGCAPQoCAgH+DfSATIBZ+IBUgHH58IBQgF358IBIgH358IBUgHn4gEyAcfnwgFiAXfnwgFCAffnwgEiAdfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCIuQpjaHH4gNEKT2Ch+fCAGIANCgICAf4N9Ii9C5/YnfnwgCCAHQoCAgH+DfSANQhWHfCIwQtOMQ358fCAMQoCAQH0iDkKAgIB/g30gL0KY2hx+IC5Ck9gofnwgMELn9id+fCALfCAJQoCAgH+DfSAgICd+IB0gKX58ICEgJX58ICIgI358IBogJH58IBkgJn58IBsgKH58IBAgHn58IApCA4hC////AIN8ICEgJ34gICApfnwgIiAlfnwgIyAkfnwgGiAmfnwgGSAofnwgECAbfnwgLEIGiEL///8Ag3wiC0KAgEB9IglCFYh8IgxCgIBAfSIIQhWIfCIHQoCAQH0iBkIVh3wiA3wgA0KAgEB9Ig9CgICAf4N9IAcgLULTjEN+fCAwQpjaHH4gL0KT2Ch+fCAMfCAIQoCAgH+DfSALIDBCk9gofnwgIiAnfiAhICl+fCAkICV+fCAjICZ+fCAaICh+fCAQIBl+fCARQgGIQv///wCDfCAkICd+ICIgKX58ICUgJn58ICMgKH58IBAgGn58ID1CBIhC////AIN8IjxCgIBAfSI9QhWIfCIRQoCAQH0iLEIViHwgCUKAgIB/g30iCkKAgEB9IhhCFYd8Ig1CgIBAfSILQhWHfCAGQoCAgH+DfSA1QtGrCH58ICogK0KAgIB/g30iMUKDoVZ+fCIJQoCAQH0iDEIVh3wiCEKAgEB9IgdCFYcgFyAnfiATICl+fCAfICV+fCAdICN+fCAaICB+fCAZICF+fCAbICJ+fCAcICZ+fCAeICR+fCAWICh+fCAQIBR+fCBDQRpqEA5CAohC////AIN8IgMgNEKY2hx+IDJCk9gofnwgLkLn9id+fCAvQtOMQ358IDBC0asIfnx8IA5CFYh8IANCgIBAfSIGQoCAgH+DfSIDIC1Cg6FWfnwgD0IVh3wgA0KAgEB9Ig9CgICAf4N9IgN8IANCgIBAfSIOQoCAgH+DfSAIIAdCgICAf4N9IAkgDEKAgIB/g30gDSAtQuf2J358IAtCgICAf4N9IDVC04xDfnwgMULRqwh+fCA6IDtCgICAf4N9IDJC04xDfiAzQuf2J358IDRC0asIfnwgLkKDoVZ+fCA4fCA5QoCAgH+DfSAyQuf2J34gM0KY2hx+fCA0QtOMQ358IDZ8IC5C0asIfnwgL0KDoVZ+fCA3QoCAgH+DfSATICd+IBUgKX58IBcgJX58IB8gI358IBogHX58IBkgIH58IBsgIX58IBwgJH58IB4gIn58IBYgJn58IBAgEn58IBQgKH58IEM1ABxCB4h8IAZCFYh8Ig1CgIBAfSILQhWHfCIJQoCAQH0iDEIVh3wiBkKAgEB9IgNCFYd8IipCg6FWfnwgLUKY2hx+IAp8IBhCgICAf4N9IDVC5/YnfnwgMULTjEN+fCAqQtGrCH58IAYgA0KAgIB/g30iK0KDoVZ+fCIIQoCAQH0iB0IVh3wiBkKAgEB9IgNCFYd8IAYgA0KAgIB/g30gCCAHQoCAgH+DfSARICxCgICAf4N9IC1Ck9gofnwgNUKY2hx+fCAxQuf2J358IAkgDEKAgIB/g30gMkKY2hx+IDNCk9gofnwgNELn9id+fCAuQtOMQ358IC9C0asIfnwgMEKDoVZ+fCANfCALQoCAgH+DfSAPQhWHfCINQoCAQH0iC0IVh3wiCkKDoVZ+fCAqQtOMQ358ICtC0asIfnwgJiAnfiAkICl+fCAlICh+fCAQICN+fCBBQgeIQv///wCDfCAnICh+ICYgKX58IBAgJX58IEBCAohC////AIN8IhhCgIBAfSIPQhWIfCIJQoCAQH0iDEIViCA8fCA9QoCAgH+DfSA1QpPYKH58IDFCmNocfnwgCkLRqwh+fCAqQuf2J358ICtC04xDfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIA0gC0KAgIB/g30gDkIVh3wiEUKAgEB9IixCFYciDkKDoVZ+fCADQoCAgH+DfSAIIA5C0asIfnwgB0KAgIB/g30gCSAMQoCAgH+DfSAxQpPYKH58IApC04xDfnwgKkKY2hx+fCArQuf2J358IBggECAnfiAoICl+fCA/QgWIQv///wCDfCAQICl+ID5C////AIN8Ig1CgIBAfSILQhWIfCIJQoCAQH0iDEIViHwgD0KAgID///8Pg30gCkLn9id+fCAqQpPYKH58ICtCmNocfnwiCEKAgEB9IgdCFYd8IgZCgIBAfSIDQhWHfCAGIA5C04xDfnwgA0KAgIB/g30gCCAOQuf2J358IAdCgICAf4N9IAkgDEKAgID///8Pg30gCkKY2hx+fCArQpPYKH58IA0gC0KAgID///8Dg30gCkKT2Ch+fCIIQoCAQH0iB0IVh3wiBkKAgEB9IgNCFYd8IAYgDkKY2hx+fCADQoCAgH+DfSAIIAdCgICAf4N9IA5Ck9gofnwiCkIVh3wiDkIVh3wiBkIVh3wiA0IVh3wiGEIVh3wiD0IVh3wiDUIVh3wiC0IVh3wiCUIVh3wiDEIVh3wiCEIVhyARICxCgICAf4N9fCIHQhWHIhFCk9gofiAKQv///wCDfCIsPAAAIAQgLEIIiDwAASAEIBFCmNocfiAOQv///wCDfCAsQhWHfCIKQguIPAAEIAQgCkIDiDwAAyAEIBFC5/YnfiAGQv///wCDfCAKQhWHfCIOQgaIPAAGIAQgLEIQiEIfgyAKQv///wCDIgZCBYaEPAACIAQgEULTjEN+IANC////AIN8IA5CFYd8IgpCCYg8AAkgBCAKQgGIPAAIIAQgDkL///8AgyIDQgKGIAZCE4iEPAAFIAQgEULRqwh+IBhC////AIN8IApCFYd8IhhCDIg8AAwgBCAYQgSIPAALIAQgCkL///8AgyIGQgeGIANCDoiEPAAHIAQgEUKDoVZ+IA9C////AIN8IBhCFYd8Ig9CB4g8AA4gBCAYQv///wCDIgNCBIYgBkIRiIQ8AAogBCANQv///wCDIA9CFYd8Ig1CCog8ABEgBCANQgKIPAAQIAQgD0L///8AgyIGQgGGIANCFIiEPAANIAQgC0L///8AgyANQhWHfCILQg2IPAAUIAQgC0IFiDwAEyAEIA1C////AIMiA0IGhiAGQg+IhDwADyAEIAlC////AIMgC0IVh3wiCTwAFSAEIAtCA4YgA0ISiIQ8ABIgBCAJQgiIPAAWIAQgDEL///8AgyAJQhWHfCIGQguIPAAZIAQgBkIDiDwAGCAEIAhC////AIMgBkIVh3wiA0IGiDwAGyAEIAlCEIhCH4MgBkL///8AgyIGQgWGhDwAFyAEIAdC////AIMgA0IVh3wiB0IRiDwAHyAEIAdCCYg8AB4gBCAHQgGIPAAdIAQgA0L///8AgyIDQgKGIAZCE4iEPAAaIAQgB0IHhiADQg6IhDwAHCBCQcAAEAggQ0HAABAIIAEEQCABQsAANwMACyBEQbAEaiQAQQALtgECAX8DfiMAQaABayIDJAAgASACQiAQNRogASABLQAAQfgBcToAACABIAEtAB9BP3FBwAByOgAfIAMgARBSIAAgAxBUIAIpAAghBCACKQAQIQUgAikAACEGIAEgAikAGDcAGCABIAU3ABAgASAENwAIIAEgBjcAACAAKQAIIQQgACkAECEFIAApAAAhBiABIAApABg3ADggASAFNwAwIAEgBDcAKCABIAY3ACAgA0GgAWokAEEAC5oBAgF+An8gAkEITwRAIAJBA3YhBEEAIQIDQCAAIAJBA3QiBWogASAFaikDACIDQiiGQoCAgICAgMD/AIMgA0I4hoQgA0IYhkKAgICAgOA/gyADQgiGQoCAgIDwH4OEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhDcAACACQQFqIgIgBEcNAAsLC9YBAQN/IwBB4AJrIgkkACAJQSBqIgpCwAAgBiAHEDMgCUHgAGoiCCAKECQgCkHAABAIIAggBCAFEAsgCEGQigJCACAFfUIPgxALIAggASACEAsgCEGQigJCACACfUIPgxALIAlBGGoiBCAFEBAgCCAEQggQCyAEIAIQECAIIARCCBALIAggCRAjIAhBgAIQCCAJIAMQPSEDIAlBEBAIAkAgAEUNACADBEAgAEEAIAKnEA8aQX8hAwwBCyAAIAEgAiAGQQEgBxAuQQAhAwsgCUHgAmokACADC7MBAQN/IwBB4AJrIggkACAIQSBqIgogBiAHEI0BIAhB4ABqIgkgChAkIApBwAAQCCAJIAQgBRALIAhBGGoiBCAFEBAgCSAEQggQCyAJIAEgAhALIAQgAhAQIAkgBEIIEAsgCSAIECMgCUGAAhAIIAggAxA9IQMgCEEQEAgCQCAARQ0AIAMEQCAAQQAgAqcQDxpBfyEDDAELIAAgASACIAYgBxCMAUEAIQMLIAhB4AJqJAAgAwuzAQEDfyMAQdACayIKJAAgCkEQaiILQsAAIAcgCBAzIApB0ABqIgkgCxAkIAtBwAAQCCAJIAUgBhALIAlBkIoCQgAgBn1CD4MQCyAAIAMgBCAHQQEgCBAuIAkgACAEEAsgCUGQigJCACAEfUIPgxALIApBCGoiACAGEBAgCSAAQggQCyAAIAQQECAJIABCCBALIAkgARAjIAlBgAIQCCACBEAgAkIQNwMACyAKQdACaiQAQQALkAEBA38jAEHQAmsiCiQAIApBEGoiCyAHIAgQjQEgCkHQAGoiCSALECQgC0HAABAIIAkgBSAGEAsgCkEIaiIFIAYQECAJIAVCCBALIAAgAyAEIAcgCBCMASAJIAAgBBALIAUgBBAQIAkgBUIIEAsgCSABECMgCUGAAhAIIAIEQCACQhA3AwALIApB0AJqJABBAAsrAQJ/A0AgACACaiIDIAMtAAAgASACai0AAHM6AAAgAkEBaiICQQhHDQALCzIBA39BASEBA0AgACACaiIDIAEgAy0AAGoiAToAACABQQh2IQEgAkEBaiICQQRHDQALC7oBAQF/IwBBwAFrIgQkACACRSABQcEAa0H/AXFBvwFNciADQcEAa0H/AXFBvwFNckUEQCAEQYECOwGCASAEIAM6AIEBIAQgAToAgAEgBEGAAWoiAUEEchByIAFBCHJCABAQIARBkAFqQQBBMBAPGiAAIAEQcyADIARqQQBBAEGAASADayADQRh0QRh1QQBIGxAPGiAAIAQgAiADEBEiAEKAARA4GiAAQYABEAggAEHAAWokAEEADwsQFAALYgEBfyMAQUBqIgIkACABQcEAa0H/AXFBvwFNBEAQFAALIAJBAToAAyACQYACOwABIAIgAToAACACQQRyEHIgAkEIckIAEBAgAkEQakEAQTAQDxogACACEHMgAkFAayQAQQALGQAgACABIAIgA0IBIARB5JECKAIAERIAGgtqAQN/IwBBEGsiAyQAIANBADoAD0F/IQUgACABIAJB2JECKAIAEQIARQRAA0AgAyAAIARqLQAAIAMtAA9yOgAPIARBAWoiBEEgRw0ACyADLQAPQRd0QYCAgARrQR91IQULIANBEGokACAFC8MIAgd/DH4jAEHQAmsiBCQAQX8hByMAQRBrIgZBADYACyAGQQA2AggDQCACIAVqLQAAIQhBACEDA0AgBkEIaiADaiIJIAktAAAgA0EFdEHghwJqIAVqLQAAIAhzcjoAACADQQFqIgNBB0cNAAsgBUEBaiIFQR9HDQALIAItAB9B/wBxIQhBACEFQQAhAwNAIAZBCGogA2oiCSAJLQAAIAggA0EFdEH/hwJqLQAAc3I6AAAgA0EBaiIDQQdHDQALQQAhAwNAIAZBCGogBWotAABBAWsgA3IhAyAFQQFqIgVBB0cNAAsgA0EIdkEBcUUEQEEAIQcDQCAAIAdqIAEgB2otAAA6AAAgB0EBaiIHQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyAEQaACaiIBIAIQgQEgBEHwAWoQHCAEQcABahAwIARBkAFqIAEQKSAEQeAAahAcQf4BIQJBACEBA0AgBEHwAWoiCCAEQZABaiIJIAEgACACIgdBA3ZqLQAAIAJBB3F2QQFxIgFzIgYQOSAEQcABaiIFIARB4ABqIgMgBhA5IAJBAWshAiAEQTBqIgYgCSADEBUgBCAIIAUQFSAIIAggBRASIAUgCSADEBIgAyAGIAgQCiAFIAUgBBAKIAYgBBANIAQgCBANIAkgAyAFEBIgBSADIAUQFSAIIAQgBhAKIAQgBCAGEBUgBSAFEA0gBDQCBCEKIAQ0AgghCyAENAIMIQwgBDQCECENIAQ0AhQhDiAENAIYIQ8gBDQCACETIAMgBDQCJELCtgd+IhAgEEKAgIAIfCIQQoCAgPAPg30gBDQCIELCtgd+IAQ0AhxCwrYHfiIRQoCAgAh8IhJCGYd8IhRCgICAEHwiFUIaiHw+AiQgAyAUIBVCgICA4A+DfT4CICADIBEgEkKAgIDwD4N9IA9CwrYHfiAOQsK2B34iDkKAgIAIfCIPQhmHfCIRQoCAgBB8IhJCGoh8PgIcIAMgESASQoCAgOAPg30+AhggAyAOIA9CgICA8A+DfSANQsK2B34gDELCtgd+IgxCgICACHwiDUIZh3wiDkKAgIAQfCIPQhqIfD4CFCADIA4gD0KAgIDgD4N9PgIQIAMgDCANQoCAgPAPg30gC0LCtgd+IApCwrYHfiIKQoCAgAh8IgtCGYd8IgxCgICAEHwiDUIaiHw+AgwgAyAMIA1CgICA4A+DfT4CCCADIAogC0KAgIDwD4N9IBBCGYdCE34gE0LCtgd+fCIKQoCAgBB8IgtCGoh8PgIEIAMgCiALQoCAgOAPg30+AgAgCSAJEA0gBiAGIAMQEiADIARBoAJqIAUQCiAFIAQgBhAKIAcNAAsgBEHwAWoiAiAEQZABaiABEDkgBEHAAWoiAyAEQeAAaiABEDkgAyADEDwgAiACIAMQCiAAIAIQLEEAIQcLIARB0AJqJAAgBwsLACAAIAEQggFBAAsNACAAIAEgAhCDAUEACwsAIAAgARCEAUEACyoBAX8jAEEQayIEJAAgBCABIAIgAxCFARogACAEED0hACAEQRBqJAAgAAsmAQJ/AkBBoJwCKAIAIgBFDQAgACgCFCIARQ0AIAARAQAhAQsgAQsOACAAIAGtQYAIIAIQMwsqAQJ/IABBAk8Ef0EAIABrIABwIQEDQBBbIgIgAUkNAAsgAiAAcAUgAQsLMAEBfiABrSACrUIghoQiA0KAgICAEFoEQEHrCUHfCEHFAUGMCBAAAAsgACADpxAdCxIAIAAgASACrSADrUIghoQQGwsVACAAIAEgAq0gA61CIIaEIAQQoAELFwAgACABIAIgA60gBK1CIIaEIAUQogELiQEBAX4CfwJAAkACQCADrSAErUIghoQiBkLAAFQNACAGQkB8IgZCv////w9WDQAgAiACQUBrIgMgBiAFEKABRQ0BIABFDQAgAEEAIAanEA8aC0F/IQIgAUUNASABQgA3AwBBfwwCCyABBEAgASAGNwMAC0EAIQIgAEUNACAAIAMgBqcQRhoLIAILC38CAX8BfiMAQRBrIgYkACAAIAZBCGogAEFAayACIAOtIAStQiCGhCIHpyICEEYgByAFEKIBGgJAIAYpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQDxpBfyEADAELQQAhACABRQ0AIAEgB0JAfTcDAAsgBkEQaiQAIAALqgcBCX4gBCkAACIFQvXKzYPXrNu38wCFIQYgBULh5JXz1uzZvOwAhSEHIAQpAAgiBULt3pHzlszct+QAhSEJIAVC88rRy6eM2bL0AIUhCiABIAEgAq0gA61CIIaEIginIgJqIAJBB3EiA2siAkcEQANAIAEpAAAhDSAJQQ0QDCEMIAYgCXwiBkEgEAwhCSAKIA2FIgVBEBAMIAUgB3wiB4UiC0EVEAwhCiAGIAyFIgVBERAMIQYgBSAHfCIFQSAQDCEHIAUgBoUiBkENEAwhDCAGIAkgC3wiBXwiC0EgEAwgBSAKhSIFQRAQDCAFIAd8IgeFIgV8IgYgBUEVEAyFIQogCyAMhSIFQREQDCAFIAd8IgWFIQkgBiANhSEGIAVBIBAMIQcgAUEIaiIBIAJHDQALIAIhAQsgCEI4hiEIAkACQAJAAkACQAJAAkACQCADQQFrDgcGBQQDAgEABwsgATEABkIwhiAIhCEICyABMQAFQiiGIAiEIQgLIAExAARCIIYgCIQhCAsgATEAA0IYhiAIhCEICyABMQACQhCGIAiEIQgLIAExAAFCCIYgCIQhCAsgCCABMQAAhCEICyAJQQ0QDCELIAYgCXwiBkEgEAwhCSAIIAqFIgVBEBAMIAUgB3wiB4UiCkEVEAwhDCAGIAuFIgVBERAMIQYgBSAHfCIFQSAQDCEHIAUgBoUiBkENEAwhCyAGIAkgCnwiBXwiBkEgEAwhCSAFIAyFIgVBEBAMIAUgB3wiB4UiCkEVEAwhDCAGIAuFIgVBERAMIQYgBSAHfCIFQSAQDCEHIAUgBoUiBkENEAwhCyAGIAggCSAKfCIFhXwiBkEgEAwhCSAFIAyFIgVBEBAMIAdC/wGFIAV8IgeFIgpBFRAMIQwgBiALhSIFQREQDCEGIAUgB3wiBUEgEAwhByAFIAaFIgZBDRAMIQsgBiAJIAp8IgV8IgZBIBAMIQkgBSAMhSIFQRAQDCAFIAd8IgeFIgpBFRAMIQwgBiALhSIFQREQDCEGIAUgB3wiBUEgEAwhByAFIAaFIgZBDRAMIQsgBiAJIAp8IgV8IgZBIBAMIQggBSAMhSIFQRAQDCAFIAd8IgeFIglBFRAMIQogBiALhSIFQREQDCEGIAUgB3wiBUEgEAwhDCAFIAaFIgtBDRAMIQcgACAKIAggCXwiBoUiBUEQEAwgBSAMfCIFhUEVEAwgByAGIAt8hSIGIAV8IgWFIAZBERAMhSAFQSAQDIUQEEEAC6gDAgN+AX8CfyAFrSAGrUIghoQhCiAIrSAJrUIghoQhDCMAQeACayIFJAAgAgRAIAJCADcDAAsgAwRAIANB/wE6AAALQX8hDQJAAkAgCkIRVA0AIApCEX0iC0Lv////D1oNASAFQSBqIghCwAAgAEEgaiIJIAAQMyAFQeAAaiIGIAgQJCAIQcAAEAggBiAHIAwQCyAGQYCKAkIAIAx9Qg+DEAsgCEEAQcAAEA8aIAUgBC0AADoAICAIIAhCwAAgCUEBIAAQLiAFLQAgIQcgBSAELQAAOgAgIAYgCELAABALIAYgBEEBaiIEIAsQCyAGQYCKAiAKQgF9Qg+DEAsgBUEYaiIIIAwQECAGIAhCCBALIAggCkIvfBAQIAYgCEIIEAsgBiAFECMgBkGAAhAIIAUgBCALp2pBEBBPBEAgBUEQEAgMAQsgASAEIAsgCUECIAAQLiAAQSRqIAUQqgEgCRCrAQJAIAdBAnFFBEAgCUEEEHVFDQELIAAQbAsgAgRAIAIgCzcDAAtBACENIANFDQAgAyAHOgAACyAFQeACaiQAIA0MAQsQFAALC9kCAQJ+An8gBK0gBa1CIIaEIQogB60gCK1CIIaEIQsjAEHQAmsiBCQAIAIEQCACQgA3AwALIApC7////w9UBEAgBEEQaiIHQsAAIABBIGoiCCAAEDMgBEHQAGoiBSAHECQgB0HAABAIIAUgBiALEAsgBUGAigJCACALfUIPgxALIAdBAEHAABAPGiAEIAk6ABAgByAHQsAAIAhBASAAEC4gBSAHQsAAEAsgASAELQAQOgAAIAFBAWoiASADIAogCEECIAAQLiAFIAEgChALIAVBgIoCIApCD4MQCyAEQQhqIgMgCxAQIAUgA0IIEAsgAyAKQkB9EBAgBSADQggQCyAFIAEgCqdqIgEQIyAFQYACEAggAEEkaiABEKoBIAgQqwECQCAJQQJxRQRAIAhBBBB1RQ0BCyAAEGwLIAIEQCACIApCEXw3AwALIARB0AJqJABBAAwBCxAUAAsLLQEBfiACrSADrUIghoQiBkIQWgR/IAAgAUEQaiABIAZCEH0gBCAFEGIFQX8LCxgAIAAgASACIAOtIAStQiCGhCAFIAYQYgsxAQF+IAKtIAOtQiCGhCIGQvD///8PWgRAEBQACyAAQRBqIAAgASAGIAQgBRBjGkEACxgAIAAgASACIAOtIAStQiCGhCAFIAYQYwtSAQF+An8gAa0gAq1CIIaEIQQgAEH7CkEKECBFBEAgACAEIANBAhCXAQwBCyAAQfEKQQkQIEUEQCAAIAQgA0EBEJcBDAELQeCXAkEcNgIAQX8LC8QBAQF+An8gAq0gA61CIIaEIQQgAEH7CkEKECBFBEACQAJAIARCgICAgBBaBEBB4JcCQRY2AgAMAQsgACABIASnQQIQmAEiAEUNASAAQV1HDQBB4JcCQRw2AgALQX8hAAsgAAwBCyAAQfEKQQkQIEUEQAJAAkAgBEKAgICAEFoEQEHglwJBFjYCAAwBCyAAIAEgBKdBARCYASIARQ0BIABBXUcNAEHglwJBHDYCAAtBfyEACyAADAELQeCXAkEcNgIAQX8LC9UBAQJ+An8gAq0gA61CIIaEIQkgBK0gBa1CIIaEIQgCQAJAAkAgB0EBaw4CAgABCyAAIAEgCSAIIAYQlgEMAgsQFAALIwBBEGsiAiQAIABBAEGAARAPIQACfyAGQYGAgIB4SSAIIAmEQv////8PWHFFBEBB4JcCQRY2AgBBfwwBCyAGQf8/SyAIQgNacUUEQEHglwJBHDYCAEF/DAELIAJBEBAdQX9BACAIpyAGQQp2QQEgASAJpyACQRBBAEEgIABBgAFBARA0GwshACACQRBqJAAgAAsLHwAgACABIAKtIAOtQiCGhCAErSAFrUIghoQgBhCWAQu8AwEDfgJ/IAGtIAKtQiCGhCELIAStIAWtQiCGhCENIAetIAitQiCGhCEMAkACQAJAIApBAWsOAgABAgsCfyAAQQAgC6ciARAPIQACQCALQoCAgIAQWgRAQeCXAkEWNgIADAELIAtCD1gEQEHglwJBHDYCAAwBCyAJQYGAgIB4SSAMIA2EQv////8PWHFFBEBB4JcCQRY2AgAMAQsgCUH/P0sgDEIDWnFFBEBB4JcCQRw2AgAMAQsgACADRgRAQeCXAkEcNgIADAELQX9BACAMpyAJQQp2QQEgAyANpyAGQRAgACABQQBBAEEBEDQbDAELQX8LDAILAn8gAEEAIAunIgEQDyEAAkAgC0KAgICAEFoEQEHglwJBFjYCAAwBCyALQg9YBEBB4JcCQRw2AgAMAQsgCUGBgICAeEkgDCANhEL/////D1hxRQRAQeCXAkEWNgIADAELIAxQRSAJQf8/S3FFBEBB4JcCQRw2AgAMAQsgACADRgRAQeCXAkEcNgIADAELQX9BACAMpyAJQQp2QQEgAyANpyAGQRAgACABQQBBAEECEDQbDAELQX8LDAELQeCXAkEcNgIAQX8LC7IDAgN/AX4jAEEgayIGJAAgBCkAACEJIAZCADcDGCAGIAk3AxAgBiACrSADrUIghoQQECAGQgA3AwgCfyABQcEAa0FOTQRAQeCXAkEcNgIAQX8MAQsgBkEQaiEEIAFBwQBrQUBJBH9BfwUCfyMAIgIhByACQYADa0FAcSICJAAgBUUgAEUgAUH/AXEiA0HBAGtB/wFxQb8BTXJyRQRAIwBBwAFrIgEkAAJAIAVFIANBwQBrQf8BcUG/AU1yRQRAIAFBgQI7AYIBIAFBIDoAgQEgASADOgCAASABQYABaiIIQQRyEHIgCEEIckIAEBAgAUIANwOYASABQgA3A5ABAkAgBgRAIAFBgAFqIAYQkQIMAQsgAUIANwOoASABQgA3A6ABCwJAIAQEQCABQYABaiAEEJACDAELIAFCADcDuAEgAUIANwOwAQsgAiABQYABahBzIAFBIGpBAEHgABAPGiACIAEgBUEgEBEiAUKAARA4GiABQYABEAggAUHAAWokAAwBCxAUAAsgAkEAQgAQOBogAiAAIAMQcBogByQAQQAMAQsQFAALCwshACAGQSBqJAAgAAsSACAAIAEgAq0gA61CIIaEEDULEgAgACABIAKtIAOtQiCGhBAlCxkAIAAgASACIAOtIAStQiCGhCAFIAYQnAELTgICfwF+IwBBIGsiBiQAQX8hByACrSADrUIghoQiCEIwWgRAIAYgASAEEI4BIAAgAUEgaiAIQiB9IAYgASAFEI8BIQcLIAZBIGokACAHC5kBAgJ/AX4gAq0gA61CIIaEIQcjAEHgAGsiAiQAQX8hAyACQSBqIAIQkwFFBEAgAkFAayIFIAJBIGoiBiAEEI4BIABBIGogASAHIAUgBCACEJEBIQMgACACKQM4NwAYIAAgAikDMDcAECAAIAIpAyg3AAggACACKQMgNwAAIAJBIBAIIAZBIBAIIAVBGBAICyACQeAAaiQAIAMLGQAgACABIAKtIAOtQiCGhCAEIAUgBhCPAQstAQF+IAKtIAOtQiCGhCIGQhBaBH8gACABQRBqIAEgBkIQfSAEIAUQYAVBfwsLGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJABCxgAIAAgASACIAOtIAStQiCGhCAFIAYQYAsZACAAIAEgAq0gA61CIIaEIAQgBSAGEJEBCy4BAX4gAq0gA61CIIaEIgZC8P///w9aBEAQFAALIABBEGogACABIAYgBCAFEGELGwAgACABIAIgA60gBK1CIIaEIAUgBiAHEJIBCxgAIAAgASACIAOtIAStQiCGhCAFIAYQYQtIAQF/IwBBIGsiBSQAIAUgASACrSADrUIghoQgBBCUARogACAFEIYBIQEgBSAAQSAQTyECIAVBIGokACACQX8gASAAIAVGG3ILFQAgACABIAKtIAOtQiCGhCAEEJQBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChCaASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCaAQtZAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEJsBGiABBEAgASALQhB8NwMAC0EADAELEBQACwsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQmwELWwECfiAHrSAIrUIghoQhDEF/IQIgBK0gBa1CIIaEIgtCEFoEQCAAIAMgC0IQfSADIAunakEQayAGIAwgCSAKEKYBIQILIAEEQCABQgAgC0IQfSACGzcDAAsgAgslACAAIAIgA60gBK1CIIaEIAUgBiAHrSAIrUIghoQgCSAKEKYBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChCnASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChCnAQtZAQJ+An8gBq0gB61CIIaEIQwgA60gBK1CIIaEIgtC8P///w9UBEAgACAAIAunakEAIAIgCyAFIAwgCSAKEKgBGiABBEAgASALQhB8NwMAC0EADAELEBQACwsnACAAIAEgAiADIAStIAWtQiCGhCAGIAetIAitQiCGhCAKIAsQqAELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChCpARogAQRAIAEgC0IQfDcDAAtBAAwBCxAUAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEKkBC08BAn8jAEHQAGsiBiQAIAJQRQRAIAZBDGoiByAEEAkgBkEQaiIEIAUQRSAEIAMgBxCVASAEIAEgACACEEMgBEHAABAICyAGQdAAaiQAQQAL2gEBBH8jACIFIQcgBUGABGtBQHEiBSQAIAAgASAAGyIIBEBBfyEGIAVB4ABqIAMgBBBeRQRAIAEgACABGyEBQQAhACAFQYABaiIDQQBBAEHAABBCGiADIAVB4ABqIgZCIBAlGiAGQSAQCCADIARCIBAlGiADIAJCIBAlGiADIAVBIGpBwAAQQRogA0GAAxAIA0AgACABaiAFQSBqIABqIgItAAA6AAAgACAIaiACLQAgOgAAIABBAWoiAEEgRw0ACyAFQSBqQcAAEAhBACEGCyAHJAAgBg8LEBQAC9oBAQR/IwAiBSEHIAVBgARrQUBxIgUkACAAIAEgABsiCARAQX8hBiAFQeAAaiADIAQQXkUEQCABIAAgARshAUEAIQAgBUGAAWoiA0EAQQBBwAAQQhogAyAFQeAAaiIGQiAQJRogBkEgEAggAyACQiAQJRogAyAEQiAQJRogAyAFQSBqQcAAEEEaIANBgAMQCANAIAAgCGogBUEgaiAAaiICLQAAOgAAIAAgAWogAi0AIDoAACAAQQFqIgBBIEcNAAsgBUEgakHAABAIQQAhBgsgByQAIAYPCxAUAAsOACABQSAQHSAAIAEQXwsYACABQSAgAkIgQQBBABCcARogACABEF8LBABBCgsFAEHYCgsIACAAQRAQHQsEAEEwC10BA38jAEHQAGsiBiQAIAJQRQRAIAZBCGoiCCAEpxAJIAZBDGogBEIgiKcQCSAGQRBqIgcgBRBFIAcgAyAIEJ8BIAcgASAAIAIQQyAHQcAAEAgLIAZB0ABqJABBAAtWAQF/IwBBQGoiAyQAIAMgAkIgEDUaIAEgAykDGDcAGCABIAMpAxA3ABAgASADKQMINwAIIAEgAykDADcAACADQcAAEAggACABEHchACADQUBrJAAgAAsIAEGAgICABAsEAEEECwgAQYCAgIABCwcAQYCAgCALCABBgICAgHgLBgBBgMAACwUAQfsKCwUAQYABC0YBAX8jAEFAaiIEJAAgAVBFBEAgBCADEEUgBCACQQAQlQEgBCAAQQAgAacQDyIAIAAgARBDIARBwAAQCAsgBEFAayQAQQALBQBBgAMLNwEBfyABEGkgAEEDbiICQX1sIABqIgBBAXYgAHJBAXEgAEEBakEEIAFBAnEbbCACQQJ0akEBagv0AgELfwJAIANFDQACQAJAA0AgByEIA0ACQCACIAhqLQAAIg1B3wFxQTdrQf8BcSIOQfb/A2ogDkHw/wNqc0EIdiIPIA1BMHMiEEH2/wNqQQh2IgpyQf8BcUUEQEEBIQogBEUgC0H/AXFyDQQgBCANEEQNASAIIQcMBgsgASAJTQRAQeCXAkHEADYCAEEAIQoMBAsgDiAPcSAKIBBxciEHAkAgC0H/AXFFBEAgB0EEdCERDAELIAAgCWogByARcjoAACAJQQFqIQkLIAtBf3MhC0EBIQogCEEBaiIHIANJDQIMBAtBACELIAhBAWoiCCADSQ0ACwsgAyAHQQFqIgAgACADSRshBwwCCyAIIQcLIAtB/wFxBEBB4JcCQRw2AgBBfyEMIAdBAWshB0EAIQkMAQsgCg0AQQAhCUF/IQwLAkAgBgRAIAYgAiAHajYCAAwBCyADIAdGDQBB4JcCQRw2AgBBfyEMCyAFBEAgBSAJNgIACyAMC5sBAQN/IANB/v///wdLIANBAXQgAU9yRQRAQQAhASADBH8DQCAAIAFBAXRqIgQgASACai0AACIFQQ9xIgZBCHQgBkH2/wNqQYCyA3FqQYCuAWpBCHY6AAEgBCAFQQR2IgQgBEH2/wNqQQh2QdkBcWpB1wBqOgAAIAFBAWoiASADRw0ACyADQQF0BSABCyAAakEAOgAAIAAPCxAUAAssAQF/IwBBQGoiAyQAIAAgAxAnIAEgA0LAACACQQEQoQEhACADQUBrJAAgAAsuAQF/IwBBQGoiBCQAIAAgBBAnIAEgAiAEQsAAIANBARCjASEAIARBQGskACAACwgAIAAQNkEACywBAX8jAEEgayICJAAgAkEgEB0gACABIAIQpAEaIAJBIBAIIAJBIGokAEEACwsAIAAgASACEKQBCwUAQb9/CwUAQdABC20BAX8jAEFAaiICJAAgAiABQiAQNRogAiACLQAAQfgBcToAACACIAItAB9BP3FBwAByOgAfIAAgAikDEDcAECAAIAIpAwg3AAggACACKQMANwAAIAAgAikDGDcAGCACQcAAEAggAkFAayQAQQALnwQBB38jAEGAAmsiBSQAQX8hCAJAIAEQUQ0AIAVB4ABqIAEQfg0AIwBBoAFrIgYkACMAQeANayICJAAgAkHgA2oiAyAFQeAAaiIEEBkgAkHAAmoiASAEEDogAiABEBMgASACIAMQGiACQaABaiIDIAEQEyACQYAFaiIEIAMQGSABIAIgBBAaIAMgARATIAJBoAZqIgQgAxAZIAEgAiAEEBogAyABEBMgAkHAB2oiBCADEBkgASACIAQQGiADIAEQEyACQeAIaiIEIAMQGSABIAIgBBAaIAMgARATIAJBgApqIgQgAxAZIAEgAiAEEBogAyABEBMgAkGgC2oiBCADEBkgASACIAQQGiADIAEQEyACQcAMaiADEBkgBhB6QfwBIQEDQCACQcACaiAGEDoCQCABIgNB4IUCaiwAACIBQQBKBEAgAkGgAWoiBCACQcACaiIHEBMgByAEIAJB4ANqIAFB/gFxQQF2QaABbGoQGgwBCyABQQBODQAgAkGgAWoiBCACQcACaiIHEBMgByAEIAJB4ANqQQAgAWtB/gFxQQF2QaABbGoQfAsgBiACQcACahATIANBAWshASADDQALIAJB4A1qJAAgBhBWIQEgBkGgAWokACABRQ0AIAUQHCAFIAUgBUGIAWoiAxAVIAVBMGoiARAcIAEgASADEBIgBSAFEDwgASABIAUQCiAAIAEQLEEAIQgLIAVBgAJqJAAgCAtGAQF/IwBBQGoiBCQAIAFQRQRAIAQgAxBFIAQgAkEAEJ8BIAQgAEEAIAGnEA8iACAAIAEQQyAEQcAAEAgLIARBQGskAEEACwQAQQwLogEBBn8jAEEQayIFQQA2AgxBfyEEIAIgA0EBa0sEfyABIAJBAWsiBmohB0EAIQJBACEBQQAhBANAIAUgBSgCDCACQQAgByACay0AACIIQYABc0EBayAFKAIMQQFrIARBAWtxcUEIdkEBcSIJa3FyNgIMIAEgCXIhASAEIAhyIQQgAkEBaiICIANHDQALIAAgBiAFKAIMazYCACABQQFrBSAECwsEAEFuCwQAQRELBABBNAsnAQF+IAAgASACEEsgABBtIAEpABAhAyAAQgA3ACwgACADNwAkQQAL0gEBBH8jAEEQayIFJAACQAJAIANFBEBBfyEHDAELAn8gAyADQQFrIgZxRQRAIAIgBnEMAQsgAiADcAshCEF/IQcgBiAIayIGIAJBf3NPDQEgAiAGaiICIARPDQAgAARAIAAgAkEBajYCAAsgASACaiEAQQAhByAFQQA6AA9BACECA0AgACACayIBIAEtAAAgBS0AD3EgAiAGc0EBa0EYdiIBQYABcXI6AAAgBSAFLQAPIAFyOgAPIAJBAWoiAiADRw0ACwsgBUEQaiQAIAcPCxAUAAstAQF+IAFBGBAdIAAgASACEEsgABBtIAEpABAhAyAAQgA3ACwgACADNwAkQQALFgAgACABKQAANwAwIAAgASkACDcAOAsWACAAIAEpAAA3ACAgACABKQAINwAoC2wBAX9BpJwCKAIABH9BAQVB6JcCQQA2AgAjAEEQayIAJAAgABCKASAAKAIABH8gABCKAUHslwJBAEEoEA8aQQAFQX8LGiAAQRBqJABB5JcCQQE2AgAQiwFBkJwCQRAQHUGknAJBATYCAEEACwvtAgECfyMAQfAAayIHJAAgAlBFBEAgByAFKQAYNwMYIAcgBSkAEDcDECAHIAUpAAA3AwBBCCEGIAcgBSkACDcDCCAHIAMpAAA3A2ADQCAHQeAAaiAGaiAEPAAAIARCCIghBCAGQQFqIgZBEEcNAAsgAkI/VgRAA0BBACEGIAdBIGogB0HgAGogBxBOA0AgACAGaiAHQSBqIAZqLQAAIAEgBmotAABzOgAAQQEhBSAGQQFqIgZBwABHDQALQQghBgNAIAdB4ABqIAZqIgMgBSADLQAAaiIDOgAAIANBCHYhBSAGQQFqIgZBEEcNAAsgAUFAayEBIABBQGshACACQkB8IgJCP1YNAAsLIAJQRQRAQQAhBiAHQSBqIAdB4ABqIAcQTiACpyEDA0AgACAGaiAHQSBqIAZqLQAAIAEgBmotAABzOgAAIAZBAWoiBiADRw0ACwsgB0EgakHAABAIIAdBIBAICyAHQfAAaiQAQQALkQICAn8BfiMAQfAAayIEJAAgAVBFBEAgBCADKQAYNwMYIAQgAykAEDcDECAEIAMpAAA3AwAgBCADKQAINwMIIAIpAAAhBiAEQgA3A2ggBCAGNwNgAkAgAULAAFoEQANAIAAgBEHgAGogBBBOQQghA0EBIQIDQCAEQeAAaiADaiIFIAIgBS0AAGoiAjoAACACQQh2IQIgA0EBaiIDQRBHDQALIABBQGshACABQkB8IgFCP1YNAAsgAVANAQtBACEDIARBIGogBEHgAGogBBBOIAGnIQIDQCAAIANqIARBIGogA2otAAA6AAAgA0EBaiIDIAJHDQALCyAEQSBqQcAAEAggBEEgEAgLIARB8ABqJABBAAumAQEEfyMAQdABayICJAADQCAAIANqIAEgA2otAAA6AAAgA0EBaiIDQSBHDQALIAAgAC0AAEH4AXE6AAAgACAALQAfQT9xQcAAcjoAHyACQTBqIAAQUiMAQeAAayIBJAAgAUEwaiIDIAJBgAFqIgQgAkHYAGoiBRASIAEgBCAFEBUgASABEDwgAiADIAEQCiABQeAAaiQAIAAgAhAsIAJB0AFqJABBAAsLxYYCDQBBgAgLhQNMaWJzb2RpdW1EUkdyYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAJGFyZ29uMmkAJGFyZ29uMmlkAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAJGFyZ29uMmkkdj0AJGFyZ29uMmlkJHY9ACx0PQAscD0AJG09ADEuMC4xOABzb2RpdW1fYmluMmJhc2U2NAAkYXJnb24yaSQAJGFyZ29uMmlkJABBkAsLV7Z4Wf+FctMAvW4V/w8KagApwAEAmOh5/7w8oP+Zcc7/ALfi/rQNSP8AAAAAAAAAALCgDv7TyYb/nhiPAH9pNQBgDL0Ap9f7/59MgP5qZeH/HvwEAJIMrgBB8AsLJ1nxsv4K5ab/e90q/h4U1ABSgAMAMNHzAHd5QP8y45z/AG7FAWcbkABBoAwLwAeFO4wBvfEk//glwwFg3DcAt0w+/8NCPQAyTKQB4aRM/0w9o/91Ph8AUZFA/3ZBDgCic9b/BoouAHzm9P8Kio8ANBrCALj0TACBjykBvvQT/3uqev9igUQAedWTAFZlHv+hZ5sAjFlD/+/lvgFDC7UAxvCJ/u5FvP9Dl+4AEyps/+VVcQEyRIf/EWoJADJnAf9QAagBI5ge/xCouQE4Wej/ZdL8ACn6RwDMqk//Di7v/1BN7wC91kv/EY35ACZQTP++VXUAVuSqAJzY0AHDz6T/lkJM/6/hEP+NUGIBTNvyAMaicgAu2pgAmyvx/pugaP8zu6UAAhGvAEJUoAH3Oh4AI0E1/kXsvwAthvUBo3vdACBuFP80F6UAutZHAOmwYADy7zYBOVmKAFMAVP+IoGQAXI54/mh8vgC1sT7/+ilVAJiCKgFg/PYAl5c//u+FPgAgOJwALae9/46FswGDVtMAu7OW/vqqDv/So04AJTSXAGNNGgDunNX/1cDRAUkuVAAUQSkBNs5PAMmDkv6qbxj/sSEy/qsmy/9O93QA0d2ZAIWAsgE6LBkAySc7Ab0T/AAx5dIBdbt1ALWzuAEActsAMF6TAPUpOAB9Dcz+9K13ACzdIP5U6hQA+aDGAex+6v8vY6j+quKZ/2az2ADijXr/ekKZ/rb1hgDj5BkB1jnr/9itOP+159IAd4Cd/4FfiP9ufjMAAqm3/weCYv5FsF7/dATjAdnykf/KrR8BaQEn/y6vRQDkLzr/1+BF/s84Rf8Q/ov/F8/U/8oUfv9f1WD/CbAhAMgFz//xKoD+IyHA//jlxAGBEXgA+2eX/wc0cP+MOEL/KOL1/9lGJf6s1gn/SEOGAZLA1v8sJnAARLhL/85a+wCV640Atao6AHT07wBcnQIAZq1iAOmJYAF/McsABZuUABeUCf/TegwAIoYa/9vMiACGCCn/4FMr/lUZ9wBtfwD+qYgwAO532//nrdUAzhL+/gi6B/9+CQcBbypIAG807P5gP40Ak79//s1OwP8Oau0Bu9tMAK/zu/5pWa0AVRlZAaLzlAACdtH+IZ4JAIujLv9dRigAbCqO/m/8jv+b35AAM+Wn/0n8m/9edAz/mKDa/5zuJf+z6s//xQCz/5qkjQDhxGgACiMZ/tHU8v9h/d7+uGXlAN4SfwGkiIf/Hs+M/pJh8wCBwBr+yVQh/28KTv+TUbL/BAQYAKHu1/8GjSEANdcO/ym10P/ni50As8vd//+5cQC94qz/cULW/8o+Lf9mQAj/Tq4Q/oV1RP8AQYAUCwEBAEGgFAuwASbolY/CsiewRcP0ifLvmPDV36wF08YzObE4AohtU/wFxxdqcD1N2E+6PAt2DRBnDyogU/osOczGTsf9d5KsA3rs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////3/t0/VcGmMSWNac96Le+d4UAEHfFQv88AEQhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/6nE8/yX/Of9Fsrb+gNCzAHYaff4DB9b/8TJN/1XLxf/Th/r/GTBk/7vVtP4RWGkAU9GeAQVzYgAErjz+qzdu/9m1Ef8UvKoAkpxm/lfWrv9yepsB6SyqAH8I7wHW7OoArwXbADFqPf8GQtD/Ampu/1HqE//Xa8D/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/sgn8/mRu1AAOBacA6e+j/xyXnQFlkgr//p5G/kf55ABYHjIARDqg/78YaAGBQoH/wDJV/wiziv8m+skAc1CgAIPmcQB9WJMAWkTHAP1MngAc/3YAcfr+AEJLLgDm2isA5Xi6AZREKwCIfO4Bu2vF/1Q19v8zdP7/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/RHEV/966O/9CB/EBRQZIAFacbP43p1kAbTTb/g2wF//ELGr/75VH/6SMff+frQEAMynnAJE+IQCKb10BuVNFAJBzLgBhlxD/GOQaADHZ4gBxS+r+wZkM/7YwYP8ODRoAgMP5/kXBOwCEJVH+fWo8ANbwqQGk40IA0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/jz7dAIFZ1v83iwX+RBS//w7MsgEjw9kALzPOASb2pQDOGwb+nlckANk0kv99e9f/VTwf/6sNBwDa9Vj+/CM8ADfWoP+FZTgA4CAT/pNA6gAakaIBcnZ9APj8+gBlXsT/xo3i/jMqtgCHDAn+bazS/8XswgHxQZoAMJwv/5lDN//apSL+SrSzANpCRwFYemMA1LXb/1wq5//vAJoA9U23/15RqgES1dgAq11HADRe+AASl6H+xdFC/670D/6iMLcAMT3w/rZdwwDH5AYByAUR/4kt7f9slAQAWk/t/yc/Tf81Us8BjhZ2/2XoEgFcGkMABchY/yGoiv+V4UgAAtEb/yz1qAHc7RH/HtNp/o3u3QCAUPX+b/4OAN5fvgHfCfEAkkzU/2zNaP8/dZkAkEUwACPkbwDAIcH/cNa+/nOYlwAXZlgAM0r4AOLHj/7MomX/0GG9AfVoEgDm9h7/F5RFAG5YNP7itVn/0C9a/nKhUP8hdPgAs5hX/0WQsQFY7hr/OiBxAQFNRQA7eTT/mO5TADQIwQDnJ+n/xyKKAN5ErQBbOfL+3NJ//8AH9v6XI7sAw+ylAG9dzgDU94UBmoXR/5vnCgBATiYAevlkAR4TYf8+W/kB+IVNAMU/qP50ClIAuOxx/tTLwv89ZPz+JAXK/3dbmf+BTx0AZ2er/u3Xb//YNUUA7/AXAMKV3f8m4d4A6P+0/nZShf850bEBi+iFAJ6wLv7Ccy4AWPflARxnvwDd3q/+lessAJfkGf7aaWcAjlXSAJWBvv/VQV7+dYbg/1LGdQCd3dwAo2UkAMVyJQBorKb+C7YAAFFIvP9hvBD/RQYKAMeTkf8ICXMBQdav/9mt0QBQf6YA9+UE/qe3fP9aHMz+rzvw/wsp+AFsKDP/kLHD/pb6fgCKW0EBeDze//XB7wAd1r3/gAIZAFCaogBN3GsB6s1K/zamZ/90SAkA5F4v/x7IGf8j1ln/PbCM/1Pio/9LgqwAgCYRAF+JmP/XfJ8BT10AAJRSnf7Dgvv/KMpM//t+4ACdYz7+zwfh/2BEwwCMup3/gxPn/yqA/gA02z3+ZstIAI0HC/+6pNUAH3p3AIXykQDQ/Oj/W9W2/48E+v7510oApR5vAasJ3wDleyIBXIIa/02bLQHDixz/O+BOAIgR9wBseSAAT/q9/2Dj/P4m8T4APq59/5tvXf8K5s4BYcUo/wAxOf5B+g0AEvuW/9xt0v8Frqb+LIG9AOsjk/8l943/SI0E/2dr/wD3WgQANSwqAAIe8AAEOz8AWE4kAHGntAC+R8H/x56k/zoIrABNIQwAQT8DAJlNIf+s/mYB5N0E/1ce/gGSKVb/iszv/myNEf+78ocA0tB/AEQtDv5JYD4AUTwY/6oGJP8D+RoAI9VtABaBNv8VI+H/6j04/zrZBgCPfFgA7H5CANEmt/8i7gb/rpFmAF8W0wDED5n+LlTo/3UikgHn+kr/G4ZkAVy7w/+qxnAAeBwqANFGQwAdUR8AHahkAamtoABrI3UAPmA7/1EMRQGH777/3PwSAKPcOv+Jibz/U2ZtAGAGTADq3tL/ua7NATye1f8N8dYArIGMAF1o8gDAnPsAK3UeAOFRngB/6NoA4hzLAOkbl/91KwX/8g4v/yEUBgCJ+yz+Gx/1/7fWff4oeZUAup7V/1kI4wBFWAD+y4fhAMmuywCTR7gAEnkp/l4FTgDg1vD+JAW0APuH5wGjitQA0vl0/liBuwATCDH+Pg6Q/59M0wDWM1IAbXXk/mffy/9L/A8Bmkfc/xcNWwGNqGD/tbaFAPozNwDq6tT+rz+eACfwNAGevST/1ShVASC09/8TZhoBVBhh/0UV3gCUi3r/3NXrAejL/wB5OZMA4weaADUWkwFIAeEAUoYw/lM8nf+RSKkAImfvAMbpLwB0EwT/uGoJ/7eBUwAksOYBImdIANuihgD1Kp4AIJVg/qUskADK70j+15YFACpCJAGE168AVq5W/xrFnP8x6If+Z7ZSAP2AsAGZsnoA9foKAOwYsgCJaoQAKB0pADIemP98aSYA5r9LAI8rqgAsgxT/LA0X/+3/mwGfbWT/cLUY/2jcbAA304MAYwzV/5iXkf/uBZ8AYZsIACFsUQABA2cAPm0i//qbtAAgR8P/JkaRAZ9f9QBF5WUBiBzwAE/gGQBObnn/+Kh8ALuA9wACk+v+TwuEAEY6DAG1CKP/T4mF/yWqC/+N81X/sOfX/8yWpP/v1yf/Llec/gijWP+sIugAQixm/xs2Kf7sY1f/KXupATRyKwB1higAm4YaAOfPW/4jhCb/E2Z9/iTjhf92A3H/HQ18AJhgSgFYks7/p7/c/qISWP+2ZBcAH3U0AFEuagEMAgcARVDJAdH2rAAMMI0B4NNYAHTinwB6YoIAQezqAeHiCf/P4nsBWdY7AHCHWAFa9Mv/MQsmAYFsugBZcA8BZS7M/3/MLf5P/93/M0kS/38qZf/xFcoAoOMHAGky7ABPNMX/aMrQAbQPEABlxU7/Yk3LACm58QEjwXwAI5sX/881wAALfaMB+Z65/wSDMAAVXW//PXnnAUXIJP+5MLn/b+4V/ycyGf9j16P/V9Qe/6STBf+ABiMBbN9u/8JMsgBKZbQA8y8wAK4ZK/9Srf0BNnLA/yg3WwDXbLD/CzgHAODpTADRYsr+8hl9ACzBXf7LCLEAh7ATAHBH1f/OO7ABBEMaAA6P1f4qN9D/PEN4AMEVowBjpHMAChR2AJzU3v6gB9n/cvVMAXU7ewCwwlb+1Q+wAE7Oz/7VgTsA6fsWAWA3mP/s/w//xVlU/12VhQCuoHEA6mOp/5h0WACQpFP/Xx3G/yIvD/9jeIb/BezBAPn3fv+Tux4AMuZ1/2zZ2/+jUab/SBmp/pt5T/8cm1n+B34RAJNBIQEv6v0AGjMSAGlTx/+jxOYAcfikAOL+2gC90cv/pPfe/v8jpQAEvPMBf7NHACXt/v9kuvAABTlH/mdISf/0ElH+5dKE/+4GtP8L5a7/493AARExHACj18T+CXYE/zPwRwBxgW3/TPDnALyxfwB9RywBGq/zAF6pGf4b5h0AD4t3Aaiquv+sxUz//Eu8AIl8xABIFmD/LZf5AdyRZABAwJ//eO/iAIGykgAAwH0A64rqALedkgBTx8D/uKxI/0nhgABNBvr/ukFDAGj2zwC8IIr/2hjyAEOKUf7tgXn/FM+WASnHEP8GFIAAn3YFALUQj//cJg8AF0CT/kkaDQBX5DkBzHyAACsY3wDbY8cAFksU/xMbfgCdPtcAbh3mALOn/wE2/L4A3cy2/rOeQf9RnQMAwtqfAKrfAADgCyD/JsViAKikJQAXWAcBpLpuAGAkhgDq8uUA+nkTAPL+cP8DL14BCe8G/1GGmf7W/aj/Q3zgAPVfSgAcHiz+AW3c/7JZWQD8JEwAGMYu/0xNbwCG6oj/J14dALlI6v9GRIf/52YH/k3njACnLzoBlGF2/xAb4QGmzo//brLW/7SDogCPjeEBDdpO/3KZIQFiaMwAr3J1AafOSwDKxFMBOkBDAIovbwHE94D/ieDg/p5wzwCaZP8BhiVrAMaAT/9/0Zv/o/65/jwO8wAf23D+HdlBAMgNdP57PMT/4Du4/vJZxAB7EEv+lRDOAEX+MAHndN//0aBBAchQYgAlwrj+lD8iAIvwQf/ZkIT/OCYt/sd40gBssab/oN4EANx+d/6la6D/Utz4AfGviACQjRf/qYpUAKCJTv/idlD/NBuE/z9gi/+Y+icAvJsPAOgzlv4oD+j/8OUJ/4mvG/9LSWEB2tQLAIcFogFrudUAAvlr/yjyRgDbyBkAGZ0NAENSUP/E+Rf/kRSVADJIkgBeTJQBGPtBAB/AFwC41Mn/e+miAfetSACiV9v+foZZAJ8LDP6maR0ASRvkAXF4t/9Co20B1I8L/5/nqAH/gFoAOQ46/lk0Cv/9CKMBAJHS/wqBVQEutRsAZ4ig/n680f8iI28A19sY/9QL1v5lBXYA6MWF/9+nbf/tUFb/RoteAJ7BvwGbDzP/D75zAE6Hz//5ChsBtX3pAF+sDf6q1aH/J+yK/19dV/++gF8AfQ/OAKaWnwDjD57/zp54/yqNgABlsngBnG2DANoOLP73qM7/1HAcAHAR5P9aECUBxd5sAP7PU/8JWvP/8/SsABpYc//NdHoAv+bBALRkCwHZJWD/mk6cAOvqH//OsrL/lcD7ALb6hwD2FmkAfMFt/wLSlf+pEaoAAGBu/3UJCAEyeyj/wb1jACLjoAAwUEb+0zPsAC169f4srggArSXp/55BqwB6Rdf/WlAC/4NqYP7jcocAzTF3/rA+QP9SMxH/8RTz/4INCP6A2fP/ohsB/lp28QD2xvb/NxB2/8ifnQCjEQEAjGt5AFWhdv8mAJUAnC/uAAmmpgFLYrX/MkoZAEIPLwCL4Z8ATAOO/w7uuAALzzX/t8C6Aasgrv+/TN0B96rbABmsMv7ZCekAy35E/7dcMAB/p7cBQTH+ABA/fwH+Far/O+B//hYwP/8bToL+KMMdAPqEcP4jy5AAaKmoAM/9Hv9oKCb+XuRYAM4QgP/UN3r/3xbqAN/FfwD9tbUBkWZ2AOyZJP/U2Uj/FCYY/oo+PgCYjAQA5txj/wEV1P+UyecA9HsJ/gCr0gAzOiX/Af8O//S3kf4A8qYAFkqEAHnYKQBfw3L+hRiX/5zi5//3BU3/9pRz/uFcUf/eUPb+qntZ/0rHjQAdFAj/iohG/11LXADdkzH+NH7iAOV8FwAuCbUAzUA0AYP+HACXntQAg0BOAM4ZqwAA5osAv/1u/mf3pwBAKCgBKqXx/ztL5P58873/xFyy/4KMVv+NWTgBk8YF/8v4nv6Qoo0AC6ziAIIqFf8Bp4//kCQk/zBYpP6oqtwAYkfWAFvQTwCfTMkBpirW/0X/AP8GgH3/vgGMAJJT2v/X7kgBen81AL10pf9UCEL/1gPQ/9VuhQDDqCwBnudFAKJAyP5bOmgAtjq7/vnkiADLhkz+Y93pAEv+1v5QRZoAQJj4/uyIyv+daZn+la8UABYjE/98eekAuvrG/oTliwCJUK7/pX1EAJDKlP7r7/gAh7h2AGVeEf96SEb+RYKSAH/e+AFFf3b/HlLX/rxKE//lp8L+dRlC/0HqOP7VFpwAlztd/i0cG/+6fqT/IAbvAH9yYwHbNAL/Y2Cm/j6+fv9s3qgBS+KuAObixwA8ddr//PgUAda8zAAfwob+e0XA/6mtJP43YlsA3ypm/okBZgCdWhkA73pA//wG6QAHNhT/UnSuAIclNv8Pun0A43Cv/2S04f8q7fT/9K3i/vgSIQCrY5b/Susy/3VSIP5qqO0Az23QAeQJugCHPKn+s1yPAPSqaP/rLXz/RmO6AHWJtwDgH9cAKAlkABoQXwFE2VcACJcU/xpkOv+wpcsBNHZGAAcg/v70/vX/p5DC/31xF/+webUAiFTRAIoGHv9ZMBwAIZsO/xnwmgCNzW0BRnM+/xQoa/6Kmsf/Xt/i/52rJgCjsRn+LXYD/w7eFwHRvlH/dnvoAQ3VZf97N3v+G/alADJjTP+M1iD/YUFD/xgMHACuVk4BQPdgAKCHQwBCN/P/k8xg/xoGIf9iM1MBmdXQ/wK4Nv8Z2gsAMUP2/hKVSP8NGUgAKk/WACoEJgEbi5D/lbsXABKkhAD1VLj+eMZo/37aYAA4der/DR3W/kQvCv+nmoT+mCbGAEKyWf/ILqv/DWNT/9K7/f+qLSoBitF8ANaijQAM5pwAZiRw/gOTQwA013v/6as2/2KJPgD32if/59rsAPe/fwDDklQApbBc/xPUXv8RSuMAWCiZAcaTAf/OQ/X+8APa/z2N1f9ht2oAw+jr/l9WmgDRMM3+dtHx//B43wHVHZ8Ao3+T/w3aXQBVGET+RhRQ/70FjAFSYf7/Y2O//4RUhf9r2nT/cHouAGkRIADCoD//RN4nAdj9XACxac3/lcnDACrhC/8oonMACQdRAKXa2wC0FgD+HZL8/5LP4QG0h2AAH6NwALEL2/+FDMH+K04yAEFxeQE72Qb/bl4YAXCsbwAHD2AAJFV7AEeWFf/QSbwAwAunAdX1IgAJ5lwAoo4n/9daGwBiYVkAXk/TAFqd8ABf3H4BZrDiACQe4P4jH38A5+hzAVVTggDSSfX/L49y/0RBxQA7SD7/t4Wt/l15dv87sVH/6kWt/82AsQDc9DMAGvTRAUneTf+jCGD+lpXTAJ7+ywE2f4sAoeA7AARtFv/eKi3/0JJm/+yOuwAyzfX/CkpZ/jBPjgDeTIL/HqY/AOwMDf8xuPQAu3FmANpl/QCZObb+IJYqABnGkgHt8TgAjEQFAFukrP9Okbr+QzTNANvPgQFtcxEANo86ARX4eP+z/x4AwexC/wH/B//9wDD/E0XZAQPWAP9AZZIB330j/+tJs//5p+IA4a8KAWGiOgBqcKsBVKwF/4WMsv+G9Y4AYVp9/7rLuf/fTRf/wFxqAA/Gc//ZmPgAq7J4/+SGNQCwNsEB+vs1ANUKZAEix2oAlx/0/qzgV/8O7Rf//VUa/38ndP+saGQA+w5G/9TQiv/90/oAsDGlAA9Me/8l2qD/XIcQAQp+cv9GBeD/9/mNAEQUPAHx0r3/w9m7AZcDcQCXXK4A5z6y/9u34QAXFyH/zbVQADm4+P9DtAH/Wntd/ycAov9g+DT/VEKMACJ/5P/CigcBpm68ABURmwGavsb/1lA7/xIHjwBIHeIBx9n5AOihRwGVvskA2a9f/nGTQ/+Kj8f/f8wBAB22UwHO5pv/usw8AAp9Vf/oYBn//1n3/9X+rwHowVEAHCuc/gxFCACTGPgAEsYxAIY8IwB29hL/MVj+/uQVuv+2QXAB2xYB/xZ+NP+9NTH/cBmPACZ/N//iZaP+0IU9/4lFrgG+dpH/PGLb/9kN9f/6iAoAVP7iAMkffQHwM/v/H4OC/wKKMv/X17EB3wzu//yVOP98W0T/SH6q/nf/ZACCh+j/Dk+yAPqDxQCKxtAAediL/ncSJP8dwXoAECot/9Xw6wHmvqn/xiPk/m6tSADW3fH/OJSHAMB1Tv6NXc//j0GVABUSYv9fLPQBar9NAP5VCP7WbrD/Sa0T/qDEx//tWpAAwaxx/8ibiP7kWt0AiTFKAaTd1//RvQX/aew3/yofgQHB/+wALtk8AIpYu//iUuz/UUWX/46+EAENhggAf3ow/1FAnACr84sA7SP2AHqPwf7UepIAXyn/AVeETQAE1B8AER9OACctrf4Yjtn/XwkG/+NTBgBiO4L+Ph4hAAhz0wGiYYD/B7gX/nQcqP/4ipf/YvTwALp2ggBy+Ov/aa3IAaB8R/9eJKQBr0GS/+7xqv7KxsUA5EeK/i32bf/CNJ4AhbuwAFP8mv5Zvd3/qkn8AJQ6fQAkRDP+KkWx/6hMVv8mZMz/JjUjAK8TYQDh7v3/UVGHANIb//7rSWsACM9zAFJ/iABUYxX+zxOIAGSkZQBQ0E3/hM/t/w8DD/8hpm4AnF9V/yW5bwGWaiP/ppdMAHJXh/+fwkAADHof/+gHZf6td2IAmkfc/r85Nf+o6KD/4CBj/9qcpQCXmaMA2Q2UAcVxWQCVHKH+zxceAGmE4/825l7/ha3M/1y3nf9YkPz+ZiFaAJ9hAwC12pv/8HJ3AGrWNf+lvnMBmFvh/1hqLP/QPXEAlzR8AL8bnP9uNuwBDh6m/yd/zwHlxxwAvOS8/mSd6wD22rcBaxbB/86gXwBM75MAz6F1ADOmAv80dQr+STjj/5jB4QCEXoj/Zb/RACBr5f/GK7QBZNJ2AHJDmf8XWBr/WZpcAdx4jP+Qcs///HP6/yLOSACKhX//CLJ8AVdLYQAP5Vz+8EOD/3Z74/6SeGj/kdX/AYG7Rv/bdzYAAROtAC2WlAH4U0gAy+mpAY5rOAD3+SYBLfJQ/x7pZwBgUkYAF8lvAFEnHv+ht07/wuoh/0TjjP7YznQARhvr/2iQTwCk5l3+1oecAJq78v68FIP/JG2uAJ9w8QAFbpUBJKXaAKYdEwGyLkkAXSsg/vi97QBmm40AyV3D//GL/f8Pb2L/bEGj/ptPvv9JrsH+9igw/2tYC/7KYVX//cwS/3HyQgBuoML+0BK6AFEVPAC8aKf/fKZh/tKFjgA48on+KW+CAG+XOgFv1Y3/t6zx/yYGxP+5B3v/Lgv2APVpdwEPAqH/CM4t/xLKSv9TfHMB1I2dAFMI0f6LD+j/rDat/jL3hADWvdUAkLhpAN/++AD/k/D/F7xIAAczNgC8GbT+3LQA/1OgFACjvfP/OtHC/1dJPABqGDEA9fncABatpwB2C8P/E37tAG6fJf87Ui8AtLtWALyU0AFkJYX/B3DBAIG8nP9UaoH/heHKAA7sb/8oFGUArKwx/jM2Sv/7ubj/XZvg/7T54AHmspIASDk2/rI+uAB3zUgAue/9/z0P2gDEQzj/6iCrAS7b5ADQbOr/FD/o/6U1xwGF5AX/NM1rAErujP+WnNv+76yy//u93/4gjtP/2g+KAfHEUAAcJGL+FurHAD3t3P/2OSUAjhGO/50+GgAr7l/+A9kG/9UZ8AEn3K7/ms0w/hMNwP/0Ijb+jBCbAPC1Bf6bwTwApoAE/ySROP+W8NsAeDORAFKZKgGM7JIAa1z4Ab0KAwA/iPIA0ycYABPKoQGtG7r/0szv/inRov+2/p//rHQ0AMNn3v7NRTsANRYpAdowwgBQ0vIA0rzPALuhof7YEQEAiOFxAPq4PwDfHmL+TaiiADs1rwATyQr/i+DCAJPBmv/UvQz+Aciu/zKFcQFes1oArbaHAF6xcQArWdf/iPxq/3uGU/4F9UL/UjEnAdwC4ABhgbEATTtZAD0dmwHLq9z/XE6LAJEhtf+pGI0BN5azAIs8UP/aJ2EAApNr/zz4SACt5i8BBlO2/xBpov6J1FH/tLiGASfepP/dafsB73B9AD8HYQA/aOP/lDoMAFo84P9U1PwAT9eoAPjdxwFzeQEAJKx4ACCiu/85azH/kyoVAGrGKwE5SlcAfstR/4GHwwCMH7EA3YvCAAPe1wCDROcAsVay/nyXtAC4fCYBRqMRAPn7tQEqN+MA4qEsABfsbgAzlY4BXQXsANq3av5DGE0AKPXR/955mQClOR4AU308AEYmUgHlBrwAbd6d/zd2P//Nl7oA4yGV//6w9gHjseMAImqj/rArTwBqX04BufF6/7kOPQAkAcoADbKi//cLhACh5lwBQQG5/9QypQGNkkD/nvLaABWkfQDVi3oBQ0dXAMuesgGXXCsAmG8F/ycD7//Z//r/sD9H/0r1TQH6rhL/IjHj//Yu+/+aIzABfZ09/2okTv9h7JkAiLt4/3GGq/8T1dn+2F7R//wFPQBeA8oAAxq3/0C/K/8eFxUAgY1N/2Z4BwHCTIwAvK80/xFRlADoVjcB4TCsAIYqKv/uMi8AqRL+ABSTV/8Ow+//RfcXAO7lgP+xMXAAqGL7/3lH+ADzCJH+9uOZ/9upsf77i6X/DKO5/6Qoq/+Znxv+821b/94YcAES1ucAa521/sOTAP/CY2j/WYy+/7FCfv5quUIAMdofAPyungC8T+YB7ingANTqCAGIC7UApnVT/0TDXgAuhMkA8JhYAKQ5Rf6g4Cr/O9dD/3fDjf8ktHn+zy8I/67S3wBlxUT//1KNAfqJ6QBhVoUBEFBFAISDnwB0XWQALY2LAJisnf9aK1sAR5kuACcQcP/ZiGH/3MYZ/rE1MQDeWIb/gA88AM/Aqf/AdNH/ak7TAcjVt/8HDHr+3ss8/yFux/77anUA5OEEAXg6B//dwVT+cIUbAL3Iyf+Lh5YA6jew/z0yQQCYbKn/3FUB/3CH4wCiGroAz2C5/vSIawBdmTIBxmGXAG4LVv+Pda7/c9TIAAXKtwDtpAr+ue8+AOx4Ev5ie2P/qMnC/i7q1gC/hTH/Y6l3AL67IwFzFS3/+YNIAHAGe//WMbX+pukiAFzFZv795M3/AzvJASpiLgDbJSP/qcMmAF58wQGcK98AX0iF/njOvwB6xe//sbtP//4uAgH6p74AVIETAMtxpv/5H73+SJ3K/9BHSf/PGEgAChASAdJRTP9Y0MD/fvNr/+6NeP/Heer/iQw7/yTce/+Uszz+8AwdAEIAYQEkHib/cwFd/2Bn5//FnjsBwKTwAMrKOf8YrjAAWU2bASpM1wD0l+kAFzBRAO9/NP7jgiX/+HRdAXyEdgCt/sABButT/26v5wH7HLYAgfld/lS4gABMtT4Ar4C6AGQ1iP5tHeIA3ek6ARRjSgAAFqAAhg0VAAk0N/8RWYwAryI7AFSld//g4ur/B0im/3tz/wES1vYA+gdHAdncuQDUI0z/Jn2vAL1h0gBy7iz/Kbyp/i26mgBRXBYAhKDBAHnQYv8NUSz/y5xSAEc6Ff/Qcr/+MiaTAJrYwwBlGRIAPPrX/+mE6/9nr44BEA5cAI0fbv7u8S3/mdnvAWGoL//5VRABHK8+/zn+NgDe534Api11/hK9YP/kTDIAyPReAMaYeAFEIkX/DEGg/mUTWgCnxXj/RDa5/ynavABxqDAAWGm9ARpSIP+5XaQB5PDt/0K2NQCrxVz/awnpAcd4kP9OMQr/bapp/1oEH/8c9HH/SjoLAD7c9v95msj+kNKy/345gQEr+g7/ZW8cAS9W8f89Rpb/NUkF/x4angDRGlYAiu1KAKRfvACOPB3+onT4/7uvoACXEhAA0W9B/suGJ/9YbDH/gxpH/90b1/5oaV3/H+wf/ocA0/+Pf24B1EnlAOlDp/7DAdD/hBHd/zPZWgBD6zL/39KPALM1ggHpasYA2a3c/3DlGP+vml3+R8v2/zBChf8DiOb/F91x/utv1QCqeF/++90CAC2Cnv5pXtn/8jS0/tVELf9oJhwA9J5MAKHIYP/PNQ3/u0OUAKo2+AB3orL/UxQLACoqwAGSn6P/t+hvAE3lFf9HNY8AG0wiAPaIL//bJ7b/XODJAROODv9FtvH/o3b1AAltagGqtff/Ti/u/1TSsP/Va4sAJyYLAEgVlgBIgkUAzU2b/o6FFQBHb6z+4io7/7MA1wEhgPEA6vwNAbhPCABuHkn/9o29AKrP2gFKmkX/ivYx/5sgZAB9Smn/WlU9/yPlsf8+fcH/mVa8AUl41ADRe/b+h9Em/5c6LAFcRdb/DgxY//yZpv/9z3D/PE5T/+N8bgC0YPz/NXUh/qTcUv8pARv/JqSm/6Rjqf49kEb/wKYSAGv6QgDFQTIAAbMS//9oAf8rmSP/UG+oAG6vqAApaS3/2w7N/6TpjP4rAXYA6UPDALJSn/+KV3r/1O5a/5AjfP4ZjKQA+9cs/oVGa/9l41D+XKk3ANcqMQBytFX/IegbAazVGQA+sHv+IIUY/+G/PgBdRpkAtSpoARa/4P/IyIz/+eolAJU5jQDDOND//oJG/yCt8P8d3McAbmRz/4Tl+QDk6d//JdjR/rKx0f+3LaX+4GFyAIlhqP/h3qwApQ0xAdLrzP/8BBz+RqCXAOi+NP5T+F3/PtdNAa+vs/+gMkIAeTDQAD+p0f8A0sgA4LssAUmiUgAJsI//E0zB/x07pwEYK5oAHL6+AI28gQDo68v/6gBt/zZBnwA8WOj/ef2W/vzpg//GbikBU01H/8gWO/5q/fL/FQzP/+1CvQBaxsoB4ax/ADUWygA45oQAAVa3AG2+KgDzRK4BbeSaAMixegEjoLf/sTBV/1raqf/4mE4Ayv5uAAY0KwCOYkH/P5EWAEZqXQDoimsBbrM9/9OB2gHy0VwAI1rZAbaPav90Zdn/cvrd/63MBgA8lqMASaws/+9uUP/tTJn+oYz5AJXo5QCFHyj/rqR3AHEz1gCB5AL+QCLzAGvj9P+uasj/VJlGATIjEAD6Stj+7L1C/5n5DQDmsgT/3SnuAHbjef9eV4z+/ndcAEnv9v51V4AAE9OR/7Eu/ADlW/YBRYD3/8pNNgEICwn/mWCmANnWrf+GwAIBAM8AAL2uawGMhmQAnsHzAbZmqwDrmjMAjgV7/zyoWQHZDlz/E9YFAdOn/gAsBsr+eBLs/w9xuP+434sAKLF3/rZ7Wv+wpbAA903CABvqeADnANb/OyceAH1jkf+WREQBjd74AJl70v9uf5j/5SHWAYfdxQCJYQIADI/M/1EpvABzT4L/XgOEAJivu/98jQr/fsCz/wtnxgCVBi0A21W7AeYSsv9ItpgAA8a4/4Bw4AFhoeYA/mMm/zqfxQCXQtsAO0WP/7lw+QB3iC//e4KEAKhHX/9xsCgB6LmtAM9ddQFEnWz/ZgWT/jFhIQBZQW/+9x6j/3zZ3QFm+tgAxq5L/jk3EgDjBewB5dWtAMlt2gEx6e8AHjeeARmyagCbb7wBXn6MANcf7gFN8BAA1fIZASZHqADNul3+MdOM/9sAtP+GdqUAoJOG/266I//G8yoA85J3AIbrowEE8Yf/wS7B/me0T//hBLj+8naCAJKHsAHqbx4ARULV/ilgewB5Xir/sr/D/y6CKgB1VAj/6THW/u56bQAGR1kB7NN7APQNMP53lA4AchxW/0vtGf+R5RD+gWQ1/4aWeP6onTIAF0ho/+AxDgD/exb/l7mX/6pQuAGGthQAKWRlAZkhEABMmm8BVs7q/8CgpP6le13/Adik/kMRr/+pCzv/nik9/0m8Dv/DBon/FpMd/xRnA//2guP/eiiAAOIvGP4jJCAAmLq3/0XKFADDhcMA3jP3AKmrXgG3AKD/QM0SAZxTD//FOvn++1lu/zIKWP4zK9gAYvLGAfWXcQCr7MIBxR/H/+VRJgEpOxQA/WjmAJhdDv/28pL+1qnw//BmbP6gp+wAmtq8AJbpyv8bE/oBAkeF/68MPwGRt8YAaHhz/4L79wAR1Kf/PnuE//dkvQCb35gAj8UhAJs7LP+WXfABfwNX/19HzwGnVQH/vJh0/woXFwCJw10BNmJhAPAAqP+UvH8AhmuXAEz9qwBahMAAkhY2AOBCNv7muuX/J7bEAJT7gv9Bg2z+gAGgAKkxp/7H/pT/+waDALv+gf9VUj4Ashc6//6EBQCk1ScAhvyS/iU1Uf+bhlIAzafu/14ttP+EKKEA/m9wATZL2QCz5t0B616//xfzMAHKkcv/J3Yq/3WN/QD+AN4AK/syADap6gFQRNAAlMvz/pEHhwAG/gAA/Ll/AGIIgf8mI0j/0yTcASgaWQCoQMX+A97v/wJT1/60n2kAOnPCALp0av/l99v/gXbBAMqutwGmoUgAyWuT/u2ISgDp5moBaW+oAEDgHgEB5QMAZpev/8Lu5P/++tQAu+15AEP7YAHFHgsAt1/MAM1ZigBA3SUB/98e/7Iw0//xyFr/p9Fg/zmC3QAucsj/PbhCADe2GP5utiEAq77o/3JeHwAS3QgAL+f+AP9wUwB2D9f/rRko/sDBH//uFZL/q8F2/2XqNf6D1HAAWcBrAQjQGwC12Q//55XoAIzsfgCQCcf/DE+1/pO2yv8Tbbb/MdThAEqjywCv6ZQAGnAzAMHBCf8Ph/kAluOCAMwA2wEY8s0A7tB1/xb0cAAa5SIAJVC8/yYtzv7wWuH/HQMv/yrgTAC686cAIIQP/wUzfQCLhxgABvHbAKzlhf/21jIA5wvP/79+UwG0o6r/9TgYAbKk0/8DEMoBYjl2/42DWf4hMxgA85Vb//00DgAjqUP+MR5Y/7MbJP+ljLcAOr2XAFgfAABLqUIAQmXH/xjYxwF5xBr/Dk/L/vDiUf9eHAr/U8Hw/8zBg/9eD1YA2iidADPB0QAA8rEAZrn3AJ5tdAAmh1sA36+VANxCAf9WPOgAGWAl/+F6ogHXu6j/np0uADirogDo8GUBehYJADMJFf81Ge7/2R7o/n2plAAN6GYAlAklAKVhjQHkgykA3g/z//4SEQAGPO0BagNxADuEvQBccB4AadDVADBUs/+7eef+G9ht/6Lda/5J78P/+h85/5WHWf+5F3MBA6Od/xJw+gAZObv/oWCkAC8Q8wAMjfv+Q+q4/ykSoQCvBmD/oKw0/hiwt//GwVUBfHmJ/5cycv/cyzz/z+8FAQAma/837l7+RpheANXcTQF4EUX/VaS+/8vqUQAmMSX+PZB8AIlOMf6o9zAAX6T8AGmphwD95IYAQKZLAFFJFP/P0goA6mqW/14iWv/+nzn+3IVjAIuTtP4YF7kAKTke/71hTABBu9//4Kwl/yI+XwHnkPAATWp+/kCYWwAdYpsA4vs1/+rTBf+Qy97/pLDd/gXnGACzes0AJAGG/31Gl/5h5PwArIEX/jBa0f+W4FIBVIYeAPHELgBncer/LmV5/ih8+v+HLfL+Cfmo/4xsg/+Po6sAMq3H/1jejv/IX54AjsCj/wd1hwBvfBYA7AxB/kQmQf/jrv4A9PUmAPAy0P+hP/oAPNHvAHojEwAOIeb+Ap9xAGoUf//kzWAAidKu/rTUkP9ZYpoBIliLAKeicAFBbsUA8SWpAEI4g/8KyVP+hf27/7FwLf7E+wAAxPqX/+7o1v+W0c0AHPB2AEdMUwHsY1sAKvqDAWASQP923iMAcdbL/3p3uP9CEyQAzED5AJJZiwCGPocBaOllALxUGgAx+YEA0NZL/8+CTf9zr+sAqwKJ/6+RugE39Yf/mla1AWQ69v9txzz/UsyG/9cx5gGM5cD/3sH7/1GID/+zlaL/Fycd/wdfS/6/Ud4A8VFa/2sxyf/0050A3oyV/0HbOP699lr/sjudATDbNABiItcAHBG7/6+pGABcT6H/7MjCAZOP6gDl4QcBxagOAOszNQH9eK4AxQao/8p1qwCjFc4AclVa/w8pCv/CE2MAQTfY/qKSdAAyztT/QJId/56egwFkpYL/rBeB/301Cf8PwRIBGjEL/7WuyQGHyQ7/ZBOVANtiTwAqY4/+YAAw/8X5U/5olU//626I/lKALP9BKST+WNMKALt5uwBihscAq7yz/tIL7v9Ce4L+NOo9ADBxF/4GVnj/d7L1AFeByQDyjdEAynJVAJQWoQBnwzAAGTGr/4pDggC2SXr+lBiCANPlmgAgm54AVGk9ALHCCf+mWVYBNlO7APkodf9tA9f/NZIsAT8vswDC2AP+DlSIAIixDf9I87r/dRF9/9M60/9dT98AWlj1/4vRb/9G3i8ACvZP/8bZsgDj4QsBTn6z/z4rfgBnlCMAgQil/vXwlAA9M44AUdCGAA+Jc//Td+z/n/X4/wKGiP/mizoBoKT+AHJVjf8xprb/kEZUAVW2BwAuNV0ACaah/zeisv8tuLwAkhws/qlaMQB4svEBDnt//wfxxwG9QjL/xo9l/r3zh/+NGBj+S2FXAHb7mgHtNpwAq5LP/4PE9v+IQHEBl+g5APDacwAxPRv/QIFJAfypG/8ohAoBWsnB//x58AG6zikAK8ZhAJFktwDM2FD+rJZBAPnlxP5oe0n/TWhg/oK0CABoezkA3Mrl/2b50wBWDuj/tk7RAO/hpABqDSD/eEkR/4ZD6QBT/rUAt+xwATBAg//x2PP/QcHiAM7xZP5khqb/7crFADcNUQAgfGb/KOSxAHa1HwHnoIb/d7vKAACOPP+AJr3/psmWAM94GgE2uKwADPLM/oVC5gAiJh8BuHBQACAzpf6/8zcAOkmS/punzf9kaJj/xf7P/60T9wDuCsoA75fyAF47J//wHWb/Clya/+VU2/+hgVAA0FrMAfDbrv+eZpEBNbJM/zRsqAFT3msA0yRtAHY6OAAIHRYA7aDHAKrRnQCJRy8Aj1YgAMbyAgDUMIgBXKy6AOaXaQFgv+UAilC//vDYgv9iKwb+qMQxAP0SWwGQSXkAPZInAT9oGP+4pXD+futiAFDVYv97PFf/Uoz1Ad94rf8PxoYBzjzvAOfqXP8h7hP/pXGOAbB3JgCgK6b+71tpAGs9wgEZBEQAD4szAKSEav8idC7+qF/FAInUFwBInDoAiXBF/pZpmv/syZ0AF9Sa/4hS4/7iO93/X5XAAFF2NP8hK9cBDpNL/1mcef4OEk8Ak9CLAZfaPv+cWAgB0rhi/xSve/9mU+UA3EF0AZb6BP9cjtz/IvdC/8zhs/6XUZcARyjs/4o/PgAGT/D/t7m1AHYyGwA/48AAe2M6ATLgm/8R4d/+3OBN/w4sewGNgK8A+NTIAJY7t/+TYR0Alsy1AP0lRwCRVXcAmsi6AAKA+f9TGHwADlePAKgz9QF8l+f/0PDFAXy+uQAwOvYAFOnoAH0SYv8N/h//9bGC/2yOIwCrffL+jAwi/6WhogDOzWUA9xkiAWSROQAnRjkAdszL//IAogCl9B4AxnTiAIBvmf+MNrYBPHoP/5s6OQE2MsYAq9Md/2uKp/+ta8f/baHBAFlI8v/Oc1n/+v6O/rHKXv9RWTIAB2lC/xn+//7LQBf/T95s/yf5SwDxfDIA75iFAN3xaQCTl2IA1aF5/vIxiQDpJfn+KrcbALh35v/ZIKP/0PvkAYk+g/9PQAn+XjBxABGKMv7B/xYA9xLFAUM3aAAQzV//MCVCADecPwFAUkr/yDVH/u9DfQAa4N4A34ld/x7gyv8J3IQAxibrAWaNVgA8K1EBiBwaAOkkCP7P8pQApKI/ADMu4P9yME//Ca/iAN4Dwf8voOj//11p/g4q5gAailIB0Cv0ABsnJv9i0H//QJW2/wX60QC7PBz+MRna/6l0zf93EngAnHST/4Q1bf8NCsoAblOnAJ3bif8GA4L/Mqce/zyfL/+BgJ3+XgO9AAOmRABT39cAllrCAQ+oQQDjUzP/zatC/za7PAGYZi3/d5rhAPD3iABkxbL/i0ff/8xSEAEpzir/nMDd/9h79P/a2rn/u7rv//ysoP/DNBYAkK61/rtkc//TTrD/GwfBAJPVaP9ayQr/UHtCARYhugABB2P+Hs4KAOXqBQA1HtIAigjc/kc3pwBI4VYBdr68AP7BZQGr+az/Xp63/l0CbP+wXUz/SWNP/0pAgf72LkEAY/F//vaXZv8sNdD+O2bqAJqvpP9Y8iAAbyYBAP+2vv9zsA/+qTyBAHrt8QBaTD8APkp4/3rDbgB3BLIA3vLSAIIhLv6cKCkAp5JwATGjb/95sOsATM8O/wMZxgEp69UAVSTWATFcbf/IGB7+qOzDAJEnfAHsw5UAWiS4/0NVqv8mIxr+g3xE/++bI/82yaQAxBZ1/zEPzQAY4B0BfnGQAHUVtgDLn40A34dNALDmsP++5df/YyW1/zMViv8ZvVn/MTCl/pgt9wCqbN4AUMoFABtFZ/7MFoH/tPw+/tIBW/+Sbv7/26IcAN/81QE7CCEAzhD0AIHTMABroNAAcDvRAG1N2P4iFbn/9mM4/7OLE/+5HTL/VFkTAEr6Yv/hKsj/wNnN/9IQpwBjhF8BK+Y5AP4Ly/9jvD//d8H7/lBpNgDotb0Bt0Vw/9Crpf8vbbT/e1OlAJKiNP+aCwT/l+Na/5KJYf496Sn/Xio3/2yk7ACYRP4ACoyD/wpqT/7znokAQ7JC/rF7xv8PPiIAxVgq/5Vfsf+YAMb/lf5x/+Fao/992fcAEhHgAIBCeP7AGQn/Mt3NADHURgDp/6QAAtEJAN002/6s4PT/XjjOAfKzAv8fW6QB5i6K/73m3AA5Lz3/bwudALFbmAAc5mIAYVd+AMZZkf+nT2sA+U2gAR3p5v+WFVb+PAvBAJclJP65lvP/5NRTAayXtADJqZsA9DzqAI7rBAFD2jwAwHFLAXTzz/9BrJsAUR6c/1BIIf4S523/jmsV/n0ahP+wEDv/lsk6AM6pyQDQeeIAKKwO/5Y9Xv84OZz/jTyR/y1slf/ukZv/0VUf/sAM0gBjYl3+mBCXAOG53ACN6yz/oKwV/kcaH/8NQF3+HDjGALE++AG2CPEApmWU/05Rhf+B3tcBvKmB/+gHYQAxcDz/2eX7AHdsigAnE3v+gzHrAIRUkQCC5pT/GUq7AAX1Nv+52/EBEsLk//HKZgBpccoAm+tPABUJsv+cAe8AyJQ9AHP30v8x3YcAOr0IASMuCQBRQQX/NJ65/310Lv9KjA3/0lys/pMXRwDZ4P3+c2y0/5E6MP7bsRj/nP88AZqT8gD9hlcANUvlADDD3v8frzL/nNJ4/9Aj3v8S+LMBAgpl/53C+P+ezGX/aP7F/08+BACyrGUBYJL7/0EKnAACiaX/dATnAPLXAQATIx3/K6FPADuV9gH7QrAAyCED/1Bujv/DoREB5DhC/3svkf6EBKQAQ66sABn9cgBXYVcB+txUAGBbyP8lfTsAE0F2AKE08f/trAb/sL///wFBgv7fvuYAZf3n/5IjbQD6HU0BMQATAHtamwEWViD/2tVBAG9dfwA8Xan/CH+2ABG6Dv79ifb/1Rkw/kzuAP/4XEb/Y+CLALgJ/wEHpNAAzYPGAVfWxwCC1l8A3ZXeABcmq/7FbtUAK3OM/texdgBgNEIBdZ7tAA5Atv8uP67/nl++/+HNsf8rBY7/rGPU//S7kwAdM5n/5HQY/h5lzwAT9pb/hucFAH2G4gFNQWIA7IIh/wVuPgBFbH//B3EWAJEUU/7Coef/g7U8ANnRsf/llNT+A4O4AHWxuwEcDh//sGZQADJUl/99Hzb/FZ2F/xOziwHg6BoAInWq/6f8q/9Jjc7+gfojAEhP7AHc5RT/Kcqt/2NM7v/GFuD/bMbD/ySNYAHsnjv/amRXAG7iAgDj6t4Aml13/0pwpP9DWwL/FZEh/2bWif+v5mf+o/amAF33dP6n4Bz/3AI5AavOVAB75BH/G3h3AHcLkwG0L+H/aMi5/qUCcgBNTtQALZqx/xjEef5SnbYAWhC+AQyTxQBf75j/C+tHAFaSd/+shtYAPIPEAKHhgQAfgnj+X8gzAGnn0v86CZT/K6jd/3ztjgDG0zL+LvVnAKT4VACYRtD/tHWxAEZPuQDzSiAAlZzPAMXEoQH1Ne8AD132/ovwMf/EWCT/oiZ7AIDInQGuTGf/raki/tgBq/9yMxEAiOTCAG6WOP5q9p8AE7hP/5ZN8P+bUKIAADWp/x2XVgBEXhAAXAdu/mJ1lf/5Teb//QqMANZ8XP4jdusAWTA5ARY1pgC4kD3/s//CANb4Pf47bvYAeRVR/qYD5ABqQBr/ReiG//LcNf4u3FUAcZX3/2GzZ/++fwsAh9G2AF80gQGqkM7/esjM/6hkkgA8kJX+RjwoAHo0sf/202X/ru0IAAczeAATH60Afu+c/4+9ywDEgFj/6YXi/x59rf/JbDIAe2Q7//6jAwHdlLX/1og5/t60if/PWDb/HCH7/0PWNAHS0GQAUapeAJEoNQDgb+f+Ixz0/+LHw/7uEeYA2dmk/qmd3QDaLqIBx8+j/2xzogEOYLv/djxMALifmADR50f+KqS6/7qZM/7dq7b/oo6tAOsvwQAHixABX6RA/xDdpgDbxRAAhB0s/2RFdf8861j+KFGtAEe+Pf+7WJ0A5wsXAO11pADhqN//mnJ0/6OY8gEYIKoAfWJx/qgTTAARndz+mzQFABNvof9HWvz/rW7wAArGef/9//D/QnvSAN3C1/55oxH/4QdjAL4xtgBzCYUB6BqK/9VEhAAsd3r/s2IzAJVaagBHMub/Cpl2/7FGGQClV80AN4rqAO4eYQBxm88AYpl/ACJr2/51cqz/TLT//vI5s//dIqz+OKIx/1MD//9x3b3/vBnk/hBYWf9HHMb+FhGV//N5/v9rymP/Cc4OAdwvmQBriScBYTHC/5Uzxf66Ogv/ayvoAcgGDv+1hUH+3eSr/3s+5wHj6rP/Ir3U/vS7+QC+DVABglkBAN+FrQAJ3sb/Qn9KAKfYXf+bqMYBQpEAAERmLgGsWpoA2IBL/6AoMwCeERsBfPAxAOzKsP+XfMD/JsG+AF+2PQCjk3z//6Uz/xwoEf7XYE4AVpHa/h8kyv9WCQUAbynI/+1sYQA5PiwAdbgPAS3xdACYAdz/naW8APoPgwE8LH3/Qdz7/0syuAA1WoD/51DC/4iBfwEVErv/LTqh/0eTIgCu+Qv+I40dAO9Esf9zbjoA7r6xAVf1pv++Mff/klO4/60OJ/+S12gAjt94AJXIm//Uz5EBELXZAK0gV///I7UAd9+hAcjfXv9GBrr/wENV/zKpmACQGnv/OPOz/hREiAAnjLz+/dAF/8hzhwErrOX/nGi7AJf7pwA0hxcAl5lIAJPFa/6UngX/7o/OAH6Zif9YmMX+B0SnAPyfpf/vTjb/GD83/ybeXgDttwz/zszSABMn9v4eSucAh2wdAbNzAAB1dnQBhAb8/5GBoQFpQ40AUiXi/+7i5P/M1oH+ontk/7l56gAtbOcAQgg4/4SIgACs4EL+r528AObf4v7y20UAuA53AVKiOAByexQAomdV/zHvY/6ch9cAb/+n/ifE1gCQJk8B+ah9AJthnP8XNNv/lhaQACyVpf8of7cAxE3p/3aB0v+qh+b/1nfGAOnwIwD9NAf/dWYw/xXMmv+ziLH/FwIDAZWCWf/8EZ8BRjwaAJBrEQC0vjz/OLY7/25HNv/GEoH/leBX/98VmP+KFrb/+pzNAOwt0P9PlPIBZUbRAGdOrgBlkKz/mIjtAb/CiABxUH0BmASNAJuWNf/EdPUA73JJ/hNSEf98fer/KDS/ACrSnv+bhKUAsgUqAUBcKP8kVU3/suR2AIlCYP5z4kIAbvBF/pdvUACnruz/42xr/7zyQf+3Uf8AOc61/y8itf/V8J4BR0tfAJwoGP9m0lEAq8fk/5oiKQDjr0sAFe/DAIrlXwFMwDEAdXtXAePhggB9Pj//AsarAP4kDf6Rus4AlP/0/yMApgAeltsBXOTUAFzGPP4+hcj/ySk7AH3ubf+0o+4BjHpSAAkWWP/FnS//mV45AFgetgBUoVUAspJ8AKamB/8V0N8AnLbyAJt5uQBTnK7+mhB2/7pT6AHfOnn/HRdYACN9f/+qBZX+pAyC/5vEHQChYIgAByMdAaIl+wADLvL/ANm8ADmu4gHO6QIAObuI/nu9Cf/JdX//uiTMAOcZ2ABQTmkAE4aB/5TLRACNUX3++KXI/9aQhwCXN6b/JutbABUumgDf/pb/I5m0/32wHQErYh7/2Hrm/+mgDAA5uQz+8HEH/wUJEP4aW2wAbcbLAAiTKACBhuT/fLoo/3JihP6mhBcAY0UsAAny7v+4NTsAhIFm/zQg8/6T38j/e1Oz/oeQyf+NJTgBlzzj/1pJnAHLrLsAUJcv/16J5/8kvzv/4dG1/0rX1f4GdrP/mTbBATIA5wBonUgBjOOa/7biEP5g4Vz/cxSq/gb6TgD4S63/NVkG/wC0dgBIrQEAQAjOAa6F3wC5PoX/1gtiAMUf0ACrp/T/Fue1AZbauQD3qWEBpYv3/y94lQFn+DMAPEUc/hmzxAB8B9r+OmtRALjpnP/8SiQAdrxDAI1fNf/eXqX+Lj01AM47c/8v7Pr/SgUgAYGa7v9qIOIAebs9/wOm8f5Dqqz/Hdiy/xfJ/AD9bvMAyH05AG3AYP80c+4AJnnz/8k4IQDCdoIAS2AZ/6oe5v4nP/0AJC36//sB7wCg1FwBLdHtAPMhV/7tVMn/1BKd/tRjf//ZYhD+i6zvAKjJgv+Pwan/7pfBAddoKQDvPaX+AgPyABbLsf6xzBYAlYHV/h8LKf8An3n+oBly/6JQyACdlwsAmoZOAdg2/AAwZ4UAadzFAP2oTf41sxcAGHnwAf8uYP9rPIf+Ys35/z/5d/94O9P/crQ3/ltV7QCV1E0BOEkxAFbGlgBd0aAARc22//RaKwAUJLAAenTdADOnJwHnAT//DcWGAAPRIv+HO8oAp2ROAC/fTAC5PD4AsqZ7AYQMof89risAw0WQAH8vvwEiLE4AOeo0Af8WKP/2XpIAU+SAADxO4P8AYNL/ma/sAJ8VSQC0c8T+g+FqAP+nhgCfCHD/eETC/7DExv92MKj/XakBAHDIZgFKGP4AE40E/o4+PwCDs7v/TZyb/3dWpACq0JL/0IWa/5SbOv+ieOj+/NWbAPENKgBeMoMAs6pwAIxTl/83d1QBjCPv/5ktQwHsrycANpdn/54qQf/E74f+VjXLAJVhL/7YIxH/RgNGAWckWv8oGq0AuDANAKPb2f9RBgH/3aps/unQXQBkyfn+ViQj/9GaHgHjyfv/Ar2n/mQ5AwANgCkAxWRLAJbM6/+RrjsAePiV/1U34QBy0jX+x8x3AA73SgE/+4EAQ2iXAYeCUABPWTf/dead/xlgjwDVkQUARfF4AZXzX/9yKhQAg0gCAJo1FP9JPm0AxGaYACkMzP96JgsB+gqRAM99lAD29N7/KSBVAXDVfgCi+VYBR8Z//1EJFQFiJwT/zEctAUtviQDqO+cAIDBf/8wfcgEdxLX/M/Gn/l1tjgBokC0A6wy1/zRwpABM/sr/rg6iAD3rk/8rQLn+6X3ZAPNYp/5KMQgAnMxCAHzWewAm3XYBknDsAHJisQCXWccAV8VwALmVoQAsYKUA+LMU/7zb2P4oPg0A846NAOXjzv+syiP/dbDh/1JuJgEq9Q7/FFNhADGrCgDyd3gAGeg9ANTwk/8Eczj/kRHv/soR+//5EvX/Y3XvALgEs//27TP/Je+J/6Zwpv9RvCH/ufqO/za7rQDQcMkA9ivkAWi4WP/UNMT/M3Vs//51mwAuWw//Vw6Q/1fjzABTGlMBn0zjAJ8b1QEYl2wAdZCz/onRUgAmnwoAc4XJAN+2nAFuxF3/OTzpAAWnaf+axaQAYCK6/5OFJQHcY74AAadU/xSRqwDCxfv+X06F//z48//hXYP/u4bE/9iZqgAUdp7+jAF2AFaeDwEt0yn/kwFk/nF0TP/Tf2wBZw8wAMEQZgFFM1//a4CdAImr6QBafJABaqG2AK9M7AHIjaz/ozpoAOm0NP/w/Q7/onH+/ybviv40LqYA8WUh/oO6nABv0D7/fF6g/x+s/gBwrjj/vGMb/0OK+wB9OoABnJiu/7IM9//8VJ4AUsUO/qzIU/8lJy4Bas+nABi9IgCDspAAztUEAKHi0gBIM2n/YS27/0643/+wHfsAT6BW/3QlsgBSTdUBUlSN/+Jl1AGvWMf/9V73Aax2bf+mub4Ag7V4AFf+Xf+G8En/IPWP/4uiZ/+zYhL+2cxwAJPfeP81CvMApoyWAH1QyP8Obdv/W9oB//z8L/5tnHT/czF/AcxX0/+Uytn/GlX5/w71hgFMWan/8i3mADtirP9ySYT+Tpsx/55+VAAxryv/ELZU/51nIwBowW3/Q92aAMmsAf4IolgApQEd/32b5f8emtwBZ+9cANwBbf/KxgEAXgKOASQ2LADr4p7/qvvW/7lNCQBhSvIA26OV//Ajdv/fclj+wMcDAGolGP/JoXb/YVljAeA6Z/9lx5P+3jxjAOoZOwE0hxsAZgNb/qjY6wDl6IgAaDyBAC6o7gAnv0MAS6MvAI9hYv842KgBqOn8/yNvFv9cVCsAGshXAVv9mADKOEYAjghNAFAKrwH8x0wAFm5S/4EBwgALgD0BVw6R//3evgEPSK4AVaNW/jpjLP8tGLz+Gs0PABPl0v74Q8MAY0e4AJrHJf+X83n/JjNL/8lVgv4sQfoAOZPz/pIrO/9ZHDUAIVQY/7MzEv69RlMAC5yzAWKGdwCeb28Ad5pJ/8g/jP4tDQ3/msAC/lFIKgAuoLn+LHAGAJLXlQEasGgARBxXAewymf+zgPr+zsG//6Zcif41KO8A0gHM/qitIwCN8y0BJDJt/w/ywv/jn3r/sK/K/kY5SAAo3zgA0KI6/7diXQAPbwwAHghM/4R/9v8t8mcARbUP/wrRHgADs3kA8ejaAXvHWP8C0soBvIJR/15l0AFnJC0ATMEYAV8a8f+lorsAJHKMAMpCBf8lOJMAmAvzAX9V6P/6h9QBubFxAFrcS/9F+JIAMm8yAFwWUAD0JHP+o2RS/xnBBgF/PSQA/UMe/kHsqv+hEdf+P6+MADd/BABPcOkAbaAoAI9TB/9BGu7/2amM/05evf8Ak77/k0e6/mpNf//pnekBh1ft/9AN7AGbbST/tGTaALSjEgC+bgkBET97/7OItP+le3v/kLxR/kfwbP8ZcAv/49oz/6cy6v9yT2z/HxNz/7fwYwDjV4//SNn4/2apXwGBlZUA7oUMAePMIwDQcxoBZgjqAHBYjwGQ+Q4A8J6s/mRwdwDCjZn+KDhT/3mwLgAqNUz/nr+aAFvRXACtDRABBUji/8z+lQBQuM8AZAl6/nZlq//8ywD+oM82ADhI+QE4jA3/CkBr/ltlNP/htfgBi/+EAOaREQDpOBcAdwHx/9Wpl/9jYwn+uQ+//61nbQGuDfv/slgH/hs7RP8KIQL/+GE7ABoekgGwkwoAX3nPAbxYGAC5Xv7+czfJABgyRgB4NQYAjkKSAOTi+f9owN4BrUTbAKK4JP+PZon/nQsXAH0tYgDrXeH+OHCg/0Z08wGZ+Tf/gScRAfFQ9ABXRRUBXuRJ/05CQf/C4+cAPZJX/62bF/9wdNv+2CYL/4O6hQBe1LsAZC9bAMz+r//eEtf+rURs/+PkT/8m3dUAo+OW/h++EgCgswsBClpe/9yuWACj0+X/x4g0AIJf3f+MvOf+i3GA/3Wr7P4x3BT/OxSr/+RtvAAU4SD+wxCuAOP+iAGHJ2kAlk3O/9Lu4gA31IT+7zl8AKrCXf/5EPf/GJc+/wqXCgBPi7L/ePLKABrb1QA+fSP/kAJs/+YhU/9RLdgB4D4RANbZfQBimZn/s7Bq/oNdiv9tPiT/snkg/3j8RgDc+CUAzFhnAYDc+//s4wcBajHG/zw4awBjcu4A3MxeAUm7AQBZmiIATtml/w7D+f8J5v3/zYf1ABr8B/9UzRsBhgJwACWeIADnW+3/v6rM/5gH3gBtwDEAwaaS/+gTtf9pjjT/ZxAbAf3IpQDD2QT/NL2Q/3uboP5Xgjb/Tng9/w44KQAZKX3/V6j1ANalRgDUqQb/29PC/khdpP/FIWf/K46NAIPhrAD0aRwAREThAIhUDf+COSj+i004AFSWNQA2X50AkA2x/l9zugB1F3b/9Kbx/wu6hwCyasv/YdpdACv9LQCkmAQAi3bvAGABGP7rmdP/qG4U/zLvsAByKegAwfo1AP6gb/6Iein/YWxDANeYF/+M0dQAKr2jAMoqMv9qar3/vkTZ/+k6dQDl3PMBxQMEACV4Nv4EnIb/JD2r/qWIZP/U6A4AWq4KANjGQf8MA0AAdHFz//hnCADnfRL/oBzFAB64IwHfSfn/exQu/oc4Jf+tDeUBd6Ei//U9SQDNfXAAiWiGANn2Hv/tjo8AQZ9m/2ykvgDbda3/IiV4/shFUAAffNr+Shug/7qax/9Hx/wAaFGfARHIJwDTPcABGu5bAJTZDAA7W9X/C1G3/4Hmev9yy5EBd7RC/0iKtADglWoAd1Jo/9CMKwBiCbb/zWWG/xJlJgBfxab/y/GTAD7Qkf+F9vsAAqkOAA33uACOB/4AJMgX/1jN3wBbgTT/FboeAI/k0gH36vj/5kUf/rC6h//uzTQBi08rABGw2f4g80MA8m/pACwjCf/jclEBBEcM/yZpvwAHdTL/UU8QAD9EQf+dJG7/TfED/+It+wGOGc4AeHvRARz+7v8FgH7/W97X/6IPvwBW8EkAh7lR/izxowDU29L/cKKbAM9ldgCoSDj/xAU0AEis8v9+Fp3/kmA7/6J5mP6MEF8Aw/7I/lKWogB3K5H+zKxO/6bgnwBoE+3/9X7Q/+I71QB12cUAmEjtANwfF/4OWuf/vNRAATxl9v9VGFYAAbFtAJJTIAFLtsAAd/HgALntG/+4ZVIB6yVN//2GEwDo9noAPGqzAMMLDABtQusBfXE7AD0opACvaPAAAi+7/zIMjQDCi7X/h/poAGFc3v/Zlcn/y/F2/0+XQwB6jtr/lfXvAIoqyP5QJWH/fHCn/ySKV/+CHZP/8VdO/8xhEwGx0Rb/9+N//mN3U//UGcYBELOzAJFNrP5ZmQ7/2r2nAGvpO/8jIfP+LHBw/6F/TwHMrwoAKBWK/mh05ADHX4n/hb6o/5Kl6gG3YycAt9w2/v/ehQCi23n+P+8GAOFmNv/7EvYABCKBAYckgwDOMjsBD2G3AKvYh/9lmCv/lvtbACaRXwAizCb+soxT/xmB8/9MkCUAaiQa/naQrP9EuuX/a6HV/y6jRP+Vqv0AuxEPANqgpf+rI/YBYA0TAKXLdQDWa8D/9HuxAWQDaACy8mH/+0yC/9NNKgH6T0b/P/RQAWll9gA9iDoB7lvVAA47Yv+nVE0AEYQu/jmvxf+5PrgATEDPAKyv0P6vSiUAihvT/pR9wgAKWVEAqMtl/yvV0QHr9TYAHiPi/wl+RgDifV7+nHUU/zn4cAHmMED/pFymAeDW5v8keI8ANwgr//sB9QFqYqUASmtq/jUENv9aspYBA3h7//QFWQFy+j3//plSAU0PEQA57loBX9/mAOw0L/5nlKT/ec8kARIQuf9LFEoAuwtlAC4wgf8W79L/TeyB/29NzP89SGH/x9n7/yrXzACFkcn/OeaSAetkxgCSSSP+bMYU/7ZP0v9SZ4gA9mywACIRPP8TSnL+qKpO/53vFP+VKagAOnkcAE+zhv/neYf/rtFi//N6vgCrps0A1HQwAB1sQv+i3rYBDncVANUn+f/+3+T/t6XGAIW+MAB80G3/d69V/wnReQEwq73/w0eGAYjbM/+2W43+MZ9IACN29f9wuuP/O4kfAIksowByZzz+CNWWAKIKcf/CaEgA3IN0/7JPXADL+tX+XcG9/4L/Iv7UvJcAiBEU/xRlU//UzqYA5e5J/5dKA/+oV9cAm7yF/6aBSQDwT4X/stNR/8tIo/7BqKUADqTH/h7/zABBSFsBpkpm/8gqAP/CceP/QhfQAOXYZP8Y7xoACuk+/3sKsgEaJK7/d9vHAS2jvgAQqCoApjnG/xwaGgB+pecA+2xk/z3lef86dooATM8RAA0icP5ZEKgAJdBp/yPJ1/8oamX+Bu9yAChn4v72f27/P6c6AITwjgAFnlj/gUme/15ZkgDmNpIACC2tAE+pAQBzuvcAVECDAEPg/f/PvUAAmhxRAS24Nv9X1OD/AGBJ/4Eh6wE0QlD/+66b/wSzJQDqpF3+Xa/9AMZFV//gai4AYx3SAD68cv8s6ggAqa/3/xdtif/lticAwKVe/vVl2QC/WGAAxF5j/2ruC/41fvMAXgFl/y6TAgDJfHz/jQzaAA2mnQEw++3/m/p8/2qUkv+2DcoAHD2nANmYCP7cgi3/yOb/ATdBV/9dv2H+cvsOACBpXAEaz40AGM8N/hUyMP+6lHT/0yvhACUiov6k0ir/RBdg/7bWCP/1dYn/QsMyAEsMU/5QjKQACaUkAeRu4wDxEVoBGTTUAAbfDP+L8zkADHFLAfa3v//Vv0X/5g+OAAHDxP+Kqy//QD9qARCp1v/PrjgBWEmF/7aFjACxDhn/k7g1/wrjof942PT/SU3pAJ3uiwE7QekARvvYASm4mf8gy3AAkpP9AFdlbQEsUoX/9JY1/16Y6P87XSf/WJPc/05RDQEgL/z/oBNy/11rJ/92ENMBuXfR/+Pbf/5Yaez/om4X/ySmbv9b7N3/Qup0AG8T9P4K6RoAILcG/gK/8gDanDX+KTxG/6jsbwB5uX7/7o7P/zd+NADcgdD+UMyk/0MXkP7aKGz/f8qkAMshA/8CngAAJWC8/8AxSgBtBAAAb6cK/lvah//LQq3/lsLiAMn9Bv+uZnkAzb9uADXCBABRKC3+I2aP/wxsxv8QG+j//Ee6AbBucgCOA3UBcU2OABOcxQFcL/wANegWATYS6wAuI73/7NSBAAJg0P7I7sf/O6+k/5Ir5wDC2TT/A98MAIo2sv5V688A6M8iADE0Mv+mcVn/Ci3Y/z6tHABvpfYAdnNb/4BUPACnkMsAVw3zABYe5AGxcZL/garm/vyZgf+R4SsARucF/3ppfv5W9pT/biWa/tEDWwBEkT4A5BCl/zfd+f6y0lsAU5Li/kWSugBd0mj+EBmtAOe6JgC9eoz/+w1w/2luXQD7SKoAwBff/xgDygHhXeQAmZPH/m2qFgD4Zfb/snwM/7L+Zv43BEEAfda0ALdgkwAtdRf+hL/5AI+wy/6Itzb/kuqxAJJlVv8se48BIdGYAMBaKf5TD33/1axSANepkAAQDSIAINFk/1QS+QHFEez/2brmADGgsP9vdmH/7WjrAE87XP5F+Qv/I6xKARN2RADefKX/tEIj/1au9gArSm//fpBW/+TqWwDy1Rj+RSzr/9y0IwAI+Af/Zi9c//DNZv9x5qsBH7nJ/8L2Rv96EbsAhkbH/5UDlv91P2cAQWh7/9Q2EwEGjVgAU4bz/4g1ZwCpG7QAsTEYAG82pwDDPdf/HwFsATwqRgC5A6L/wpUo//Z/Jv6+dyb/PXcIAWCh2/8qy90BsfKk//WfCgB0xAAABV3N/oB/swB97fb/laLZ/1clFP6M7sAACQnBAGEB4gAdJgoAAIg//+VI0v4mhlz/TtrQAWgkVP8MBcH/8q89/7+pLgGzk5P/cb6L/n2sHwADS/z+1yQPAMEbGAH/RZX/boF2AMtd+QCKiUD+JkYGAJl03gChSnsAwWNP/3Y7Xv89DCsBkrGdAC6TvwAQ/yYACzMfATw6Yv9vwk0Bmlv0AIwokAGtCvsAy9Ey/myCTgDktFoArgf6AB+uPAApqx4AdGNS/3bBi/+7rcb+2m84ALl72AD5njQANLRd/8kJW/84Lab+hJvL/zrobgA001n//QCiAQlXtwCRiCwBXnr1AFW8qwGTXMYAAAhoAB5frgDd5jQB9/fr/4muNf8jFcz/R+PWAehSwgALMOP/qkm4/8b7/P4scCIAg2WD/0iouwCEh33/imhh/+64qP/zaFT/h9ji/4uQ7QC8iZYBUDiM/1app//CThn/3BG0/xENwQB1idT/jeCXADH0rwDBY6//E2OaAf9BPv+c0jf/8vQD//oOlQCeWNn/nc+G/vvoHAAunPv/qzi4/+8z6gCOioP/Gf7zAQrJwgA/YUsA0u+iAMDIHwF11vMAGEfe/jYo6P9Mt2/+kA5X/9ZPiP/YxNQAhBuM/oMF/QB8bBP/HNdLAEzeN/7ptj8ARKu//jRv3v8KaU3/UKrrAI8YWP8t53kAlIHgAT32VAD9Ltv/70whADGUEv7mJUUAQ4YW/o6bXgAfndP+1Soe/wTk9/78sA3/JwAf/vH0//+qLQr+/d75AN5yhAD/Lwb/tKOzAVRel/9Z0VL+5TSp/9XsAAHWOOT/h3eX/3DJwQBToDX+BpdCABKiEQDpYVsAgwVOAbV4Nf91Xz//7XW5AL9+iP+Qd+kAtzlhAS/Ju/+npXcBLWR+ABViBv6Rll//eDaYANFiaACPbx7+uJT5AOvYLgD4ypT/OV8WAPLhowDp9+j/R6sT/2f0Mf9UZ13/RHn0AVLgDQApTyv/+c6n/9c0Ff7AIBb/9288AGVKJv8WW1T+HRwN/8bn1/70msgA34ntANOEDgBfQM7/ET73/+mDeQFdF00Azcw0/lG9iAC024oBjxJeAMwrjP68r9sAb2KP/5c/ov/TMkf+E5I1AJItU/6yUu7/EIVU/+LGXf/JYRT/eHYj/3Iy5/+i5Zz/0xoMAHInc//O1IYAxdmg/3SBXv7H19v/S9/5Af10tf/o12j/5IL2/7l1VgAOBQgA7x09Ae1Xhf99kon+zKjfAC6o9QCaaRYA3NSh/2tFGP+J2rX/8VTG/4J60/+NCJn/vrF2AGBZsgD/EDD+emBp/3U26P8ifmn/zEOmAOg0iv/TkwwAGTYHACwP1/4z7C0AvkSBAWqT4QAcXS3+7I0P/xE9oQDcc8AA7JEY/m+oqQDgOj//f6S8AFLqSwHgnoYA0URuAdmm2QBG4aYBu8GP/xAHWP8KzYwAdcCcARE4JgAbfGwBq9c3/1/91ACbh6j/9rKZ/ppESgDoPWD+aYQ7ACFMxwG9sIL/CWgZ/kvGZv/pAXAAbNwU/3LmRgCMwoX/OZ6k/pIGUP+pxGEBVbeCAEae3gE77er/YBka/+ivYf8Lefj+WCPCANu0/P5KCOMAw+NJAbhuof8x6aQBgDUvAFIOef/BvjoAMK51/4QXIAAoCoYBFjMZ//ALsP9uOZIAdY/vAZ1ldv82VEwAzbgS/y8ESP9OcFX/wTJCAV0QNP8IaYYADG1I/zqc+wCQI8wALKB1/jJrwgABRKX/b26iAJ5TKP5M1uoAOtjN/6tgk/8o43IBsOPxAEb5twGIVIv/PHr3/o8Jdf+xron+SfePAOy5fv8+Gff/LUA4/6H0BgAiOTgBacpTAICT0AAGZwr/SopB/2FQZP/WriH/MoZK/26Xgv5vVKwAVMdL/vg7cP8I2LIBCbdfAO4bCP6qzdwAw+WHAGJM7f/iWxoBUtsn/+G+xwHZyHn/UbMI/4xBzgCyz1f++vwu/2hZbgH9vZ7/kNae/6D1Nv81t1wBFcjC/5IhcQHRAf8A62or/6c06ACd5d0AMx4ZAPrdGwFBk1f/T3vEAEHE3/9MLBEBVfFEAMq3+f9B1NT/CSGaAUc7UACvwjv/jUgJAGSg9ADm0DgAOxlL/lDCwgASA8j+oJ9zAISP9wFvXTn/Ou0LAYbeh/96o2wBeyu+//u9zv5Qtkj/0PbgARE8CQChzyYAjW1bANgP0/+ITm4AYqNo/xVQef+tsrcBf48EAGg8Uv7WEA3/YO4hAZ6U5v9/gT7/M//S/z6N7P6dN+D/cif0AMC8+v/kTDUAYlRR/63LPf6TMjf/zOu/ADTF9ABYK9P+G793ALznmgBCUaEAXMGgAfrjeAB7N+IAuBFIAIWoCv4Wh5z/KRln/zDKOgC6lVH/vIbvAOu1vf7Zi7z/SjBSAC7a5QC9/fsAMuUM/9ONvwGA9Bn/qed6/lYvvf+Etxf/JbKW/zOJ/QDITh8AFmkyAII8AACEo1v+F+e7AMBP7wCdZqT/wFIUARi1Z//wCeoAAXuk/4XpAP/K8vIAPLr1APEQx//gdJ7+v31b/+BWzwB5Jef/4wnG/w+Z7/956Nn+S3BSAF8MOf4z1mn/lNxhAcdiJACc0Qz+CtQ0ANm0N/7Uquj/2BRU/536hwCdY3/+Ac4pAJUkRgE2xMn/V3QA/uurlgAbo+oAyoe0ANBfAP57nF0Atz5LAInrtgDM4f//1ovS/wJzCP8dDG8ANJwBAP0V+/8lpR/+DILTAGoSNf4qY5oADtk9/tgLXP/IxXD+kybHACT8eP5rqU0AAXuf/89LZgCjr8QALAHwAHi6sP4NYkz/7Xzx/+iSvP/IYOAAzB8pANDIDQAV4WD/r5zEAPfQfgA+uPT+AqtRAFVzngA2QC3/E4pyAIdHzQDjL5MB2udCAP3RHAD0D63/Bg92/hCW0P+5FjL/VnDP/0tx1wE/kiv/BOET/uMXPv8O/9b+LQjN/1fFl/7SUtf/9fj3/4D4RgDh91cAWnhGANX1XAANheIAL7UFAVyjaf8GHoX+6LI9/+aVGP8SMZ4A5GQ9/nTz+/9NS1wBUduT/0yj/v6N1fYA6CWY/mEsZADJJTIB1PQ5AK6rt//5SnAAppweAN7dYf/zXUn++2Vk/9jZXf/+irv/jr40/zvLsf/IXjQAc3Ke/6WYaAF+Y+L/dp30AWvIEADBWuUAeQZYAJwgXf598dP/Du2d/6WaFf+44Bb/+hiY/3FNHwD3qxf/7bHM/zSJkf/CtnIA4OqVAApvZwHJgQQA7o5OADQGKP9u1aX+PM/9AD7XRQBgYQD/MS3KAHh5Fv/rizABxi0i/7YyGwGD0lv/LjaAAK97af/GjU7+Q/Tv//U2Z/5OJvL/Alz5/vuuV/+LP5AAGGwb/yJmEgEiFpgAQuV2/jKPYwCQqZUBdh6YALIIeQEInxIAWmXm/4EddwBEJAsB6Lc3ABf/YP+hKcH/P4veAA+z8wD/ZA//UjWHAIk5lQFj8Kr/Fubk/jG0Uv89UisAbvXZAMd9PQAu/TQAjcXbANOfwQA3eWn+txSBAKl3qv/Lsov/hyi2/6wNyv9BspQACM8rAHo1fwFKoTAA49aA/lYL8/9kVgcB9USG/z0rFQGYVF7/vjz6/u926P/WiCUBcUxr/11oZAGQzhf/bpaaAeRnuQDaMTL+h02L/7kBTgAAoZT/YR3p/8+Ulf+gqAAAW4Cr/wYcE/4Lb/cAJ7uW/4rolQB1PkT/P9i8/+vqIP4dOaD/GQzxAak8vwAgg43/7Z97/17FXv50/gP/XLNh/nlhXP+qcA4AFZX4APjjAwBQYG0AS8BKAQxa4v+hakQB0HJ//3Iq//5KGkr/97OW/nmMPACTRsj/1iih/6G8yf+NQYf/8nP8AD4vygC0lf/+gjftAKURuv8KqcIAnG3a/3CMe/9ogN/+sY5s/3kl2/+ATRL/b2wXAVvASwCu9Rb/BOw+/ytAmQHjrf4A7XqEAX9Zuv+OUoD+/FSuAFqzsQHz1lf/Zzyi/9CCDv8LgosAzoHb/17Znf/v5ub/dHOf/qRrXwAz2gIB2H3G/4zKgP4LX0T/Nwld/q6ZBv/MrGAARaBuANUmMf4bUNUAdn1yAEZGQ/8Pjkn/g3q5//MUMv6C7SgA0p+MAcWXQf9UmUIAw35aABDu7AF2u2b/AxiF/7tF5gA4xVwB1UVe/1CK5QHOB+YA3m/mAVvpd/8JWQcBAmIBAJRKhf8z9rT/5LFwATq9bP/Cy+3+FdHDAJMKIwFWneIAH6OL/jgHS/8+WnQAtTypAIqi1P5Rpx8AzVpw/yFw4wBTl3UBseBJ/66Q2f/mzE//Fk3o/3JO6gDgOX7+CTGNAPKTpQFotoz/p4QMAXtEfwDhVycB+2wIAMbBjwF5h8//rBZGADJEdP9lryj/+GnpAKbLBwBuxdoA1/4a/qji/QAfj2AAC2cpALeBy/5k90r/1X6EANKTLADH6hsBlC+1AJtbngE2aa//Ak6R/maaXwCAz3/+NHzs/4JURwDd89MAmKrPAN5qxwC3VF7+XMg4/4q2cwGOYJIAhYjkAGESlgA3+0IAjGYEAMpnlwAeE/j/M7jPAMrGWQA3xeH+qV/5/0JBRP+86n4Apt9kAXDv9ACQF8IAOie2APQsGP6vRLP/mHaaAbCiggDZcsz+rX5O/yHeHv8kAlv/Ao/zAAnr1wADq5cBGNf1/6gvpP7xks8ARYG0AETzcQCQNUj++y0OABduqABERE//bkZf/q5bkP8hzl//iSkH/xO7mf4j/3D/CZG5/jKdJQALcDEBZgi+/+rzqQE8VRcASie9AHQx7wCt1dIALqFs/5+WJQDEeLn/ImIG/5nDPv9h5kf/Zj1MABrU7P+kYRAAxjuSAKMXxAA4GD0AtWLBAPuT5f9ivRj/LjbO/+pS9gC3ZyYBbT7MAArw4ACSFnX/jpp4AEXUIwDQY3YBef8D/0gGwgB1EcX/fQ8XAJpPmQDWXsX/uTeT/z7+Tv5/UpkAbmY//2xSof9pu9QBUIonADz/Xf9IDLoA0vsfAb6nkP/kLBP+gEPoANb5a/6IkVb/hC6wAL274//QFowA2dN0ADJRuv6L+h8AHkDGAYebZACgzhf+u6LT/xC8PwD+0DEAVVS/APHA8v+ZfpEB6qKi/+Zh2AFAh34AvpTfATQAK/8cJ70BQIjuAK/EuQBi4tX/f5/0AeKvPACg6Y4BtPPP/0WYWQEfZRUAkBmk/ou/0QBbGXkAIJMFACe6e/8/c+b/XafG/4/V3P+znBP/GUJ6ANag2f8CLT7/ak+S/jOJY/9XZOf/r5Ho/2W4Af+uCX0AUiWhASRyjf8w3o7/9bqaAAWu3f4/cpv/hzegAVAfhwB++rMB7NotABQckQEQk0kA+b2EARG9wP/fjsb/SBQP//o17f4PCxIAG9Nx/tVrOP+uk5L/YH4wABfBbQElol4Ax535/hiAu//NMbL+XaQq/yt36wFYt+3/2tIB/2v+KgDmCmP/ogDiANvtWwCBsssA0DJf/s7QX//3v1n+bupP/6U98wAUenD/9va5/mcEewDpY+YB21v8/8feFv+z9en/0/HqAG/6wP9VVIgAZToy/4OtnP53LTP/dukQ/vJa1gBen9sBAwPq/2JMXP5QNuYABeTn/jUY3/9xOHYBFIQB/6vS7AA48Z7/unMT/wjlrgAwLAABcnKm/wZJ4v/NWfQAieNLAfitOABKePb+dwML/1F4xv+IemL/kvHdAW3CTv/f8UYB1sip/2G+L/8vZ67/Y1xI/nbptP/BI+n+GuUg/978xgDMK0f/x1SsAIZmvgBv7mH+5ijmAOPNQP7IDOEAphneAHFFM/+PnxgAp7hKAB3gdP6e0OkAwXR+/9QLhf8WOowBzCQz/+geKwDrRrX/QDiS/qkSVP/iAQ3/yDKw/zTV9f6o0WEAv0c3ACJOnADokDoBuUq9ALqOlf5ARX//ocuT/7CXvwCI58v+o7aJAKF++/7pIEIARM9CAB4cJQBdcmAB/lz3/yyrRQDKdwv/vHYyAf9TiP9HUhoARuMCACDreQG1KZoAR4bl/sr/JAApmAUAmj9J/yK2fAB53Zb/GszVASmsVwBanZL/bYIUAEdryP/zZr0AAcOR/i5YdQAIzuMAv279/22AFP6GVTP/ibFwAdgiFv+DEND/eZWqAHITFwGmUB//cfB6AOiz+gBEbrT+0qp3AN9spP/PT+n/G+Xi/tFiUf9PRAcAg7lkAKodov8Romv/ORULAWTItf9/QaYBpYbMAGinqAABpE8Akoc7AUYygP9mdw3+4waHAKKOs/+gZN4AG+DbAZ5dw//qjYkAEBh9/+7OL/9hEWL/dG4M/2BzTQBb4+j/+P5P/1zlBv5YxosAzkuBAPpNzv+N9HsBikXcACCXBgGDpxb/7USn/se9lgCjq4r/M7wG/18dif6U4rMAtWvQ/4YfUv+XZS3/gcrhAOBIkwAwipf/w0DO/u3angBqHYn+/b3p/2cPEf/CYf8Asi2p/sbhmwAnMHX/h2pzAGEmtQCWL0H/U4Ll/vYmgQBc75r+W2N/AKFvIf/u2fL/g7nD/9W/nv8pltoAhKmDAFlU/AGrRoD/o/jL/gEytP98TFUB+29QAGNC7/+a7bb/3X6F/krMY/9Bk3f/Yzin/0/4lf90m+T/7SsO/kWJC/8W+vEBW3qP/8358wDUGjz/MLawATAXv//LeZj+LUrV/z5aEv71o+b/uWp0/1MjnwAMIQL/UCI+ABBXrv+tZVUAyiRR/qBFzP9A4bsAOs5eAFaQLwDlVvUAP5G+ASUFJwBt+xoAiZPqAKJ5kf+QdM7/xei5/7e+jP9JDP7/ixTy/6pa7/9hQrv/9bWH/t6INAD1BTP+yy9OAJhl2ABJF30A/mAhAevSSf8r0VgBB4FtAHpo5P6q8ssA8syH/8oc6f9BBn8An5BHAGSMXwBOlg0A+2t2AbY6ff8BJmz/jb3R/wibfQFxo1v/eU++/4bvbP9ML/gAo+TvABFvCgBYlUv/1+vvAKefGP8vl2z/a9G8AOnnY/4cypT/riOK/24YRP8CRbUAa2ZSAGbtBwBcJO3/3aJTATfKBv+H6of/GPreAEFeqP71+NL/p2zJ/v+hbwDNCP4AiA10AGSwhP8r137/sYWC/55PlABD4CUBDM4V/z4ibgHtaK//UIRv/46uSABU5bT+abOMAED4D//pihAA9UN7/tp51P8/X9oB1YWJ/4+2Uv8wHAsA9HKNAdGvTP+dtZb/uuUD/6SdbwHnvYsAd8q+/9pqQP9E6z/+YBqs/7svCwHXEvv/UVRZAEQ6gABecQUBXIHQ/2EPU/4JHLwA7wmkADzNmADAo2L/uBI8ANm2iwBtO3j/BMD7AKnS8P8lrFz+lNP1/7NBNAD9DXMAua7OAXK8lf/tWq0AK8fA/1hscQA0I0wAQhmU/90EB/+X8XL/vtHoAGIyxwCXltX/EkokATUoBwATh0H/GqxFAK7tVQBjXykAAzgQACegsf/Iatr+uURU/1u6Pf5Dj43/DfSm/2NyxgDHbqP/wRK6AHzv9gFuRBYAAusuAdQ8awBpKmkBDuaYAAcFgwCNaJr/1QMGAIPkov+zZBwB53tV/84O3wH9YOYAJpiVAWKJegDWzQP/4piz/waFiQCeRYz/caKa/7TzrP8bvXP/jy7c/9WG4f9+HUUAvCuJAfJGCQBazP//56qTABc4E/44fZ3/MLPa/0+2/f8m1L8BKet8AGCXHACHlL4Azfkn/jRgiP/ULIj/Q9GD//yCF//bgBT/xoF2AGxlCwCyBZIBPgdk/7XsXv4cGqQATBZw/3hmTwDKwOUByLDXAClA9P/OuE4Apy0/AaAjAP87DI7/zAmQ/9te5QF6G3AAvWlt/0DQSv/7fzcBAuLGACxM0QCXmE3/0hcuAcmrRf8s0+cAviXg//XEPv+ptd7/ItMRAHfxxf/lI5gBFUUo/7LioQCUs8EA28L+ASjOM//nXPoBQ5mqABWU8QCqRVL/eRLn/1xyAwC4PuYA4clX/5Jgov+18twArbvdAeI+qv84ftkBdQ3j/7Ms7wCdjZv/kN1TAOvR0AAqEaUB+1GFAHz1yf5h0xj/U9amAJokCf/4L38AWtuM/6HZJv7Ukz//QlSUAc8DAQDmhlkBf056/+CbAf9SiEoAspzQ/7oZMf/eA9IB5Za+/1WiNP8pVI3/SXtU/l0RlgB3ExwBIBbX/xwXzP+O8TT/5DR9AB1MzwDXp/r+r6TmADfPaQFtu/X/oSzcASllgP+nEF4AXdZr/3ZIAP5QPer/ea99AIup+wBhJ5P++sQx/6Wzbv7fRrv/Fo59AZqziv92sCoBCq6ZAJxcZgCoDaH/jxAgAPrFtP/LoywBVyAkAKGZFP97/A8AGeNQADxYjgARFskBms1N/yc/LwAIeo0AgBe2/swnE/8EcB3/FySM/9LqdP41Mj//eato/6DbXgBXUg7+5yoFAKWLf/5WTiYAgjxC/sseLf8uxHoB+TWi/4iPZ/7X0nIA5weg/qmYKv9vLfYAjoOH/4NHzP8k4gsAABzy/+GK1f/3Ltj+9QO3AGz8SgHOGjD/zTb2/9PGJP95IzIANNjK/yaLgf7ySZQAQ+eN/yovzABOdBkBBOG//waT5AA6WLEAeqXl//xTyf/gp2ABsbie//JpswH4xvAAhULLAf4kLwAtGHP/dz7+AMThuv57jawAGlUp/+JvtwDV55cABDsH/+6KlABCkyH/H/aN/9GNdP9ocB8AWKGsAFPX5v4vb5cALSY0AYQtzACKgG3+6XWG//O+rf7x7PAAUn/s/ijfof9utuH/e67vAIfykQEz0ZoAlgNz/tmk/P83nEUBVF7//+hJLQEUE9T/YMU7/mD7IQAmx0kBQKz3/3V0OP/kERIAPopnAfblpP/0dsn+ViCf/20iiQFV07oACsHB/nrCsQB67mb/otqrAGzZoQGeqiIAsC+bAbXkC/8InAAAEEtdAM5i/wE6miMADPO4/kN1Qv/m5XsAySpuAIbksv66bHb/OhOa/1KpPv9yj3MB78Qy/60wwf+TAlT/loaT/l/oSQBt4zT+v4kKACjMHv5MNGH/pOt+AP58vABKthUBeR0j//EeB/5V2tb/B1SW/lEbdf+gn5j+Qhjd/+MKPAGNh2YA0L2WAXWzXACEFoj/eMccABWBT/62CUEA2qOpAPaTxv9rJpABTq/N/9YF+v4vWB3/pC/M/ys3Bv+Dhs/+dGTWAGCMSwFq3JAAwyAcAaxRBf/HszT/JVTLAKpwrgALBFsARfQbAXWDXAAhmK//jJlr//uHK/5XigT/xuqT/nmYVP/NZZsBnQkZAEhqEf5smQD/veW6AMEIsP+uldEA7oIdAOnWfgE94mYAOaMEAcZvM/8tT04Bc9IK/9oJGf+ei8b/01K7/lCFUwCdgeYB84WG/yiIEABNa0//t1VcAbHMygCjR5P/mEW+AKwzvAH60qz/0/JxAVlZGv9AQm/+dJgqAKEnG/82UP4AatFzAWd8YQDd5mL/H+cGALLAeP4P2cv/fJ5PAHCR9wBc+jABo7XB/yUvjv6QvaX/LpLwAAZLgAApncj+V3nVAAFx7AAFLfoAkAxSAB9s5wDh73f/pwe9/7vkhP9uvSIAXizMAaI0xQBOvPH+ORSNAPSSLwHOZDMAfWuU/hvDTQCY/VoBB4+Q/zMlHwAidyb/B8V2AJm80wCXFHT+9UE0/7T9bgEvsdEAoWMR/3beygB9s/wBezZ+/5E5vwA3unkACvOKAM3T5f99nPH+lJy5/+MTvP98KSD/HyLO/hE5UwDMFiX/KmBiAHdmuAEDvhwAblLa/8jMwP/JkXYAdcySAIQgYgHAwnkAaqH4Ae1YfAAX1BoAzata//gw2AGNJeb/fMsA/p6oHv/W+BUAcLsH/0uF7/9K4/P/+pNGANZ4ogCnCbP/Fp4SANpN0QFhbVH/9CGz/zk0Of9BrNL/+UfR/46p7gCevZn/rv5n/mIhDgCNTOb/cYs0/w861ACo18n/+MzXAd9EoP85mrf+L+d5AGqmiQBRiIoApSszAOeLPQA5Xzv+dmIZ/5c/7AFevvr/qblyAQX6Ov9LaWEB19+GAHFjowGAPnAAY2qTAKPDCgAhzbYA1g6u/4Em5/81tt8AYiqf//cNKAC80rEBBhUA//89lP6JLYH/WRp0/n4mcgD7MvL+eYaA/8z5p/6l69cAyrHzAIWNPgDwgr4Bbq//AAAUkgEl0nn/ByeCAI76VP+NyM8ACV9o/wv0rgCG6H4ApwF7/hDBlf/o6e8B1UZw//x0oP7y3tz/zVXjAAe5OgB29z8BdE2x/z71yP4/EiX/azXo/jLd0wCi2wf+Al4rALY+tv6gTsj/h4yqAOu45ACvNYr+UDpN/5jJAgE/xCIABR64AKuwmgB5O84AJmMnAKxQTf4AhpcAuiHx/l793/8scvwAbH45/8koDf8n5Rv/J+8XAZd5M/+ZlvgACuqu/3b2BP7I9SYARaHyARCylgBxOIIAqx9pABpYbP8xKmoA+6lCAEVdlQAUOf4ApBlvAFq8Wv/MBMUAKNUyAdRghP9YirT+5JJ8/7j29wBBdVb//WbS/v55JACJcwP/PBjYAIYSHQA74mEAsI5HAAfRoQC9VDP+m/pIANVU6/8t3uAA7pSP/6oqNf9Op3UAugAo/32xZ/9F4UIA4wdYAUusBgCpLeMBECRG/zICCf+LwRYAj7fn/tpFMgDsOKEB1YMqAIqRLP6I5Sj/MT8j/z2R9f9lwAL+6KdxAJhoJgF5udoAeYvT/nfwIwBBvdn+u7Oi/6C75gA++A7/PE5hAP/3o//hO1v/a0c6//EvIQEydewA27E//vRaswAjwtf/vUMy/xeHgQBovSX/uTnCACM+5//c+GwADOeyAI9QWwGDXWX/kCcCAf/6sgAFEez+iyAuAMy8Jv71czT/v3FJ/r9sRf8WRfUBF8uyAKpjqgBB+G8AJWyZ/0AlRQAAWD7+WZSQ/79E4AHxJzUAKcvt/5F+wv/dKv3/GWOXAGH93wFKczH/Bq9I/zuwywB8t/kB5ORjAIEMz/6owMP/zLAQ/pjqqwBNJVX/IXiH/47C4wEf1joA1bt9/+guPP++dCr+l7IT/zM+7f7M7MEAwug8AKwinf+9ELj+ZwNf/43pJP4pGQv/FcOmAHb1LQBD1ZX/nwwS/7uk4wGgGQUADE7DASvF4QAwjin+xJs8/9/HEgGRiJwA/HWp/pHi7gDvF2sAbbW8/+ZwMf5Jqu3/57fj/1DcFADCa38Bf81lAC40xQHSqyT/WANa/ziXjQBgu///Kk7IAP5GRgH0fagAzESKAXzXRgBmQsj+ETTkAHXcj/7L+HsAOBKu/7qXpP8z6NABoOQr//kdGQFEvj8ADQAAAAD/AAAAAPUAAAAAAAD7AAAAAAAA/QAAAADzAAAAAAcAAAAAAAMAAAAA8wAAAAAFAAAAAAAAAAALAAAAAAALAAAAAPMAAAAAAAD9AAAAAAD/AAAAAAMAAAAA9QAAAAAAAAAPAAAAAAD/AAAAAP8AAAAABwAAAAAFAEHchwILAQEAQYCIAgsBAQBBoIgCC+AB4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fwjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsAQaCKAgvBBQjJvPNn5glqO6fKhIWuZ7sr+JT+cvNuPPE2HV869U+l0YLmrX9SDlEfbD4rjGgFm2u9Qfur2YMfeSF+ExnN4FsirijXmC+KQs1l7yORRDdxLztN7M/7wLW824mBpdu16Ti1SPNbwlY5GdAFtvER8VmbTxmvpII/khiBbdrVXhyrQgIDo5iqB9i+b3BFAVuDEoyy5E6+hTEk4rT/1cN9DFVviXvydF2+crGWFjv+sd6ANRLHJacG3JuUJmnPdPGbwdJK8Z7BaZvk4yVPOIZHvu+11YyLxp3BD2WcrHfMoQwkdQIrWW8s6S2D5KZuqoR0StT7Qb3cqbBctVMRg9qI+Xar32buUlE+mBAytC1txjGoPyH7mMgnA7DkDu++x39Zv8KPqD3zC+DGJacKk0eRp9VvggPgUWPKBnBuDgpnKSkU/C/SRoUKtycmySZcOCEbLu0qxFr8bSxN37OVnRMNOFPeY6+LVHMKZaiydzy7Cmp25q7tRy7JwoE7NYIUhSxykmQD8Uyh6L+iATBCvEtmGqiRl/jQcItLwjC+VAajUWzHGFLv1hnoktEQqWVVJAaZ1iogcVeFNQ70uNG7MnCgahDI0NK4FsGkGVOrQVEIbDcemeuO30x3SCeoSJvhtbywNGNaycWzDBw5y4pB40qq2E5z42N3T8qcW6O4stbzby5o/LLvXe6Cj3RgLxdDb2OleHKr8KEUeMiE7DlkGggCx4woHmMj+v++kOm9gt7rbFCkFXnGsvej+b4rU3Lj8nhxxpxhJurOPifKB8LAIce4htEe6+DN1n3a6njRbu5/T331um8Xcqpn8AammMiixX1jCq4N+b4EmD8RG0ccEzULcRuEfQQj9XfbKJMkx0B7q8oyvL7JFQq+njxMDRCcxGcdQ7ZCPsu+1MVMKn5l/Jwpf1ns+tY6q2/LXxdYR0qMGURsgABB4JACCyFTaWdFZDI1NTE5IG5vIEVkMjU1MTkgY29sbGlzaW9ucwEAQbCRAgs1MI5QAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=\")||(d=R,R=a.locateFile?a.locateFile(d,c):c+d);var V={35048:function(){return a.getRandomValue()},35084:function(){if(void 0===a.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto,g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),a.getRandomValue=g}catch(A){try{var B=require(\"crypto\"),C=function(){var A=B.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};C(),a.getRandomValue=C}catch(A){throw\"No secure random number generator found\"}}}};function q(A){for(;A.length>0;){var I=A.shift();if(\"function\"!=typeof I){var g=I.func;\"number\"==typeof g?void 0===I.arg?z(g)():z(g)(I.arg):g(void 0===I.arg?null:I.arg)}else I(a)}}function z(A){return S.get(A)}var j=[];function W(A){try{return s.grow(A-D.byteLength+65535>>>16),U(s.buffer),1}catch(A){}}var O=\"function\"==typeof atob?atob:function(A){var I,g,B,C,Q,E,i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",n=\"\",a=0;A=A.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{I=i.indexOf(A.charAt(a++))<<2|(C=i.indexOf(A.charAt(a++)))>>4,g=(15&C)<<4|(Q=i.indexOf(A.charAt(a++)))>>2,B=(3&Q)<<6|(E=i.indexOf(A.charAt(a++))),n+=String.fromCharCode(I),64!==Q&&(n+=String.fromCharCode(g)),64!==E&&(n+=String.fromCharCode(B))}while(a>=2;g=p[A++];){var B=g<105;B&&1&I&&I++,j.push(B?_[I++>>1]:F[I]),++I}return j}(I,g);return V[A].apply(null,B)},e:function(A,I,g){p.copyWithin(A,I,I+g)},c:function(A){var I,g=p.length,B=2147483648;if((A>>>=0)>B)return!1;for(var C=1;C<=4;C*=2){var Q=g*(1+.2/C);if(Q=Math.min(Q,A+100663296),W(Math.min(B,(I=Math.max(A,Q))+(65536-I%65536)%65536)))return!0}return!1}};function IA(A){function I(){$||($=!0,a.calledRun=!0,k||(q(m),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for(\"function\"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)A=a.postRun.shift(),v.unshift(A);var A;q(v)}()))}A=A||o,M>0||(function(){if(a.preRun)for(\"function\"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)A=a.preRun.shift(),b.unshift(A);var A;q(b)}(),M>0||(a.setStatus?(a.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){a.setStatus(\"\")}),1),I()}),1)):I()))}if(function(){var A={a:AA};function I(A,I){var g,B=A.exports;a.asm=B,U((s=a.asm.f).buffer),S=a.asm.Ac,g=a.asm.g,m.unshift(g),function(A){if(M--,a.monitorRunDependencies&&a.monitorRunDependencies(M),0==M&&(null!==P&&(clearInterval(P),P=null),Y)){var I=Y;Y=null,I()}}()}function g(A){I(A.instance)}function B(I){return function(){if(!y&&(t||e)){if(\"function\"==typeof fetch&&!X(R))return fetch(R,{credentials:\"same-origin\"}).then((function(A){if(!A.ok)throw\"failed to load wasm binary file at '\"+R+\"'\";return A.arrayBuffer()})).catch((function(){return T(R)}));if(C)return new Promise((function(A,I){C(R,(function(I){A(new Uint8Array(I))}),I)}))}return Promise.resolve().then((function(){return T(R)}))}().then((function(I){return WebAssembly.instantiate(I,A)})).then((function(A){return A})).then(I,(function(A){w(\"failed to asynchronously prepare wasm: \"+A),N(A)}))}if(M++,a.monitorRunDependencies&&a.monitorRunDependencies(M),a.instantiateWasm)try{return a.instantiateWasm(A,I)}catch(A){return w(\"Module.instantiateWasm callback failed with error: \"+A),!1}y||\"function\"!=typeof WebAssembly.instantiateStreaming||K(R)||X(R)||\"function\"!=typeof fetch?B(g):fetch(R,{credentials:\"same-origin\"}).then((function(I){return WebAssembly.instantiateStreaming(I,A).then(g,(function(A){return w(\"wasm streaming compile failed: \"+A),w(\"falling back to ArrayBuffer instantiation\"),B(g)}))}))}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_encrypt_detached=a.asm.h).apply(null,arguments)},a._crypto_aead_chacha20poly1305_encrypt=function(){return(a._crypto_aead_chacha20poly1305_encrypt=a.asm.i).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt_detached=a.asm.j).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_encrypt=a.asm.k).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_decrypt_detached=a.asm.l).apply(null,arguments)},a._crypto_aead_chacha20poly1305_decrypt=function(){return(a._crypto_aead_chacha20poly1305_decrypt=a.asm.m).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt_detached=a.asm.n).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_chacha20poly1305_ietf_decrypt=a.asm.o).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_keybytes=a.asm.p).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_npubbytes=a.asm.q).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_nsecbytes=a.asm.r).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_chacha20poly1305_ietf_abytes=a.asm.s).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_ietf_messagebytes_max=a.asm.t).apply(null,arguments)},a._crypto_aead_chacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_chacha20poly1305_ietf_keygen=a.asm.u).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keybytes=function(){return(a._crypto_aead_chacha20poly1305_keybytes=a.asm.v).apply(null,arguments)},a._crypto_aead_chacha20poly1305_npubbytes=function(){return(a._crypto_aead_chacha20poly1305_npubbytes=a.asm.w).apply(null,arguments)},a._crypto_aead_chacha20poly1305_nsecbytes=function(){return(a._crypto_aead_chacha20poly1305_nsecbytes=a.asm.x).apply(null,arguments)},a._crypto_aead_chacha20poly1305_abytes=function(){return(a._crypto_aead_chacha20poly1305_abytes=a.asm.y).apply(null,arguments)},a._crypto_aead_chacha20poly1305_messagebytes_max=function(){return(a._crypto_aead_chacha20poly1305_messagebytes_max=a.asm.z).apply(null,arguments)},a._crypto_aead_chacha20poly1305_keygen=function(){return(a._crypto_aead_chacha20poly1305_keygen=a.asm.A).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=a.asm.B).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_encrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_encrypt=a.asm.C).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=a.asm.D).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_decrypt=function(){return(a._crypto_aead_xchacha20poly1305_ietf_decrypt=a.asm.E).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keybytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keybytes=a.asm.F).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_npubbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_npubbytes=a.asm.G).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_nsecbytes=a.asm.H).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_abytes=function(){return(a._crypto_aead_xchacha20poly1305_ietf_abytes=a.asm.I).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=function(){return(a._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=a.asm.J).apply(null,arguments)},a._crypto_aead_xchacha20poly1305_ietf_keygen=function(){return(a._crypto_aead_xchacha20poly1305_ietf_keygen=a.asm.K).apply(null,arguments)},a._crypto_auth_bytes=function(){return(a._crypto_auth_bytes=a.asm.L).apply(null,arguments)},a._crypto_auth_keybytes=function(){return(a._crypto_auth_keybytes=a.asm.M).apply(null,arguments)},a._crypto_auth=function(){return(a._crypto_auth=a.asm.N).apply(null,arguments)},a._crypto_auth_verify=function(){return(a._crypto_auth_verify=a.asm.O).apply(null,arguments)},a._crypto_auth_keygen=function(){return(a._crypto_auth_keygen=a.asm.P).apply(null,arguments)},a._crypto_box_seedbytes=function(){return(a._crypto_box_seedbytes=a.asm.Q).apply(null,arguments)},a._crypto_box_publickeybytes=function(){return(a._crypto_box_publickeybytes=a.asm.R).apply(null,arguments)},a._crypto_box_secretkeybytes=function(){return(a._crypto_box_secretkeybytes=a.asm.S).apply(null,arguments)},a._crypto_box_beforenmbytes=function(){return(a._crypto_box_beforenmbytes=a.asm.T).apply(null,arguments)},a._crypto_box_noncebytes=function(){return(a._crypto_box_noncebytes=a.asm.U).apply(null,arguments)},a._crypto_box_macbytes=function(){return(a._crypto_box_macbytes=a.asm.V).apply(null,arguments)},a._crypto_box_messagebytes_max=function(){return(a._crypto_box_messagebytes_max=a.asm.W).apply(null,arguments)},a._crypto_box_seed_keypair=function(){return(a._crypto_box_seed_keypair=a.asm.X).apply(null,arguments)},a._crypto_box_keypair=function(){return(a._crypto_box_keypair=a.asm.Y).apply(null,arguments)},a._crypto_box_beforenm=function(){return(a._crypto_box_beforenm=a.asm.Z).apply(null,arguments)},a._crypto_box_detached_afternm=function(){return(a._crypto_box_detached_afternm=a.asm._).apply(null,arguments)},a._crypto_box_detached=function(){return(a._crypto_box_detached=a.asm.$).apply(null,arguments)},a._crypto_box_easy_afternm=function(){return(a._crypto_box_easy_afternm=a.asm.aa).apply(null,arguments)},a._crypto_box_easy=function(){return(a._crypto_box_easy=a.asm.ba).apply(null,arguments)},a._crypto_box_open_detached_afternm=function(){return(a._crypto_box_open_detached_afternm=a.asm.ca).apply(null,arguments)},a._crypto_box_open_detached=function(){return(a._crypto_box_open_detached=a.asm.da).apply(null,arguments)},a._crypto_box_open_easy_afternm=function(){return(a._crypto_box_open_easy_afternm=a.asm.ea).apply(null,arguments)},a._crypto_box_open_easy=function(){return(a._crypto_box_open_easy=a.asm.fa).apply(null,arguments)},a._crypto_box_seal=function(){return(a._crypto_box_seal=a.asm.ga).apply(null,arguments)},a._crypto_box_seal_open=function(){return(a._crypto_box_seal_open=a.asm.ha).apply(null,arguments)},a._crypto_box_sealbytes=function(){return(a._crypto_box_sealbytes=a.asm.ia).apply(null,arguments)},a._crypto_generichash_bytes_min=function(){return(a._crypto_generichash_bytes_min=a.asm.ja).apply(null,arguments)},a._crypto_generichash_bytes_max=function(){return(a._crypto_generichash_bytes_max=a.asm.ka).apply(null,arguments)},a._crypto_generichash_bytes=function(){return(a._crypto_generichash_bytes=a.asm.la).apply(null,arguments)},a._crypto_generichash_keybytes_min=function(){return(a._crypto_generichash_keybytes_min=a.asm.ma).apply(null,arguments)},a._crypto_generichash_keybytes_max=function(){return(a._crypto_generichash_keybytes_max=a.asm.na).apply(null,arguments)},a._crypto_generichash_keybytes=function(){return(a._crypto_generichash_keybytes=a.asm.oa).apply(null,arguments)},a._crypto_generichash_statebytes=function(){return(a._crypto_generichash_statebytes=a.asm.pa).apply(null,arguments)},a._crypto_generichash=function(){return(a._crypto_generichash=a.asm.qa).apply(null,arguments)},a._crypto_generichash_init=function(){return(a._crypto_generichash_init=a.asm.ra).apply(null,arguments)},a._crypto_generichash_update=function(){return(a._crypto_generichash_update=a.asm.sa).apply(null,arguments)},a._crypto_generichash_final=function(){return(a._crypto_generichash_final=a.asm.ta).apply(null,arguments)},a._crypto_generichash_keygen=function(){return(a._crypto_generichash_keygen=a.asm.ua).apply(null,arguments)},a._crypto_hash_bytes=function(){return(a._crypto_hash_bytes=a.asm.va).apply(null,arguments)},a._crypto_hash=function(){return(a._crypto_hash=a.asm.wa).apply(null,arguments)},a._crypto_kdf_bytes_min=function(){return(a._crypto_kdf_bytes_min=a.asm.xa).apply(null,arguments)},a._crypto_kdf_bytes_max=function(){return(a._crypto_kdf_bytes_max=a.asm.ya).apply(null,arguments)},a._crypto_kdf_contextbytes=function(){return(a._crypto_kdf_contextbytes=a.asm.za).apply(null,arguments)},a._crypto_kdf_keybytes=function(){return(a._crypto_kdf_keybytes=a.asm.Aa).apply(null,arguments)},a._crypto_kdf_derive_from_key=function(){return(a._crypto_kdf_derive_from_key=a.asm.Ba).apply(null,arguments)},a._crypto_kdf_keygen=function(){return(a._crypto_kdf_keygen=a.asm.Ca).apply(null,arguments)},a._crypto_kx_seed_keypair=function(){return(a._crypto_kx_seed_keypair=a.asm.Da).apply(null,arguments)},a._crypto_kx_keypair=function(){return(a._crypto_kx_keypair=a.asm.Ea).apply(null,arguments)},a._crypto_kx_client_session_keys=function(){return(a._crypto_kx_client_session_keys=a.asm.Fa).apply(null,arguments)},a._crypto_kx_server_session_keys=function(){return(a._crypto_kx_server_session_keys=a.asm.Ga).apply(null,arguments)},a._crypto_kx_publickeybytes=function(){return(a._crypto_kx_publickeybytes=a.asm.Ha).apply(null,arguments)},a._crypto_kx_secretkeybytes=function(){return(a._crypto_kx_secretkeybytes=a.asm.Ia).apply(null,arguments)},a._crypto_kx_seedbytes=function(){return(a._crypto_kx_seedbytes=a.asm.Ja).apply(null,arguments)},a._crypto_kx_sessionkeybytes=function(){return(a._crypto_kx_sessionkeybytes=a.asm.Ka).apply(null,arguments)},a._crypto_pwhash_alg_argon2i13=function(){return(a._crypto_pwhash_alg_argon2i13=a.asm.La).apply(null,arguments)},a._crypto_pwhash_alg_argon2id13=function(){return(a._crypto_pwhash_alg_argon2id13=a.asm.Ma).apply(null,arguments)},a._crypto_pwhash_alg_default=function(){return(a._crypto_pwhash_alg_default=a.asm.Na).apply(null,arguments)},a._crypto_pwhash_bytes_min=function(){return(a._crypto_pwhash_bytes_min=a.asm.Oa).apply(null,arguments)},a._crypto_pwhash_bytes_max=function(){return(a._crypto_pwhash_bytes_max=a.asm.Pa).apply(null,arguments)},a._crypto_pwhash_passwd_min=function(){return(a._crypto_pwhash_passwd_min=a.asm.Qa).apply(null,arguments)},a._crypto_pwhash_passwd_max=function(){return(a._crypto_pwhash_passwd_max=a.asm.Ra).apply(null,arguments)},a._crypto_pwhash_saltbytes=function(){return(a._crypto_pwhash_saltbytes=a.asm.Sa).apply(null,arguments)},a._crypto_pwhash_strbytes=function(){return(a._crypto_pwhash_strbytes=a.asm.Ta).apply(null,arguments)},a._crypto_pwhash_strprefix=function(){return(a._crypto_pwhash_strprefix=a.asm.Ua).apply(null,arguments)},a._crypto_pwhash_opslimit_min=function(){return(a._crypto_pwhash_opslimit_min=a.asm.Va).apply(null,arguments)},a._crypto_pwhash_opslimit_max=function(){return(a._crypto_pwhash_opslimit_max=a.asm.Wa).apply(null,arguments)},a._crypto_pwhash_memlimit_min=function(){return(a._crypto_pwhash_memlimit_min=a.asm.Xa).apply(null,arguments)},a._crypto_pwhash_memlimit_max=function(){return(a._crypto_pwhash_memlimit_max=a.asm.Ya).apply(null,arguments)},a._crypto_pwhash_opslimit_interactive=function(){return(a._crypto_pwhash_opslimit_interactive=a.asm.Za).apply(null,arguments)},a._crypto_pwhash_memlimit_interactive=function(){return(a._crypto_pwhash_memlimit_interactive=a.asm._a).apply(null,arguments)},a._crypto_pwhash_opslimit_moderate=function(){return(a._crypto_pwhash_opslimit_moderate=a.asm.$a).apply(null,arguments)},a._crypto_pwhash_memlimit_moderate=function(){return(a._crypto_pwhash_memlimit_moderate=a.asm.ab).apply(null,arguments)},a._crypto_pwhash_opslimit_sensitive=function(){return(a._crypto_pwhash_opslimit_sensitive=a.asm.bb).apply(null,arguments)},a._crypto_pwhash_memlimit_sensitive=function(){return(a._crypto_pwhash_memlimit_sensitive=a.asm.cb).apply(null,arguments)},a._crypto_pwhash=function(){return(a._crypto_pwhash=a.asm.db).apply(null,arguments)},a._crypto_pwhash_str=function(){return(a._crypto_pwhash_str=a.asm.eb).apply(null,arguments)},a._crypto_pwhash_str_alg=function(){return(a._crypto_pwhash_str_alg=a.asm.fb).apply(null,arguments)},a._crypto_pwhash_str_verify=function(){return(a._crypto_pwhash_str_verify=a.asm.gb).apply(null,arguments)},a._crypto_pwhash_str_needs_rehash=function(){return(a._crypto_pwhash_str_needs_rehash=a.asm.hb).apply(null,arguments)},a._crypto_scalarmult_base=function(){return(a._crypto_scalarmult_base=a.asm.ib).apply(null,arguments)},a._crypto_scalarmult=function(){return(a._crypto_scalarmult=a.asm.jb).apply(null,arguments)},a._crypto_scalarmult_bytes=function(){return(a._crypto_scalarmult_bytes=a.asm.kb).apply(null,arguments)},a._crypto_scalarmult_scalarbytes=function(){return(a._crypto_scalarmult_scalarbytes=a.asm.lb).apply(null,arguments)},a._crypto_secretbox_keybytes=function(){return(a._crypto_secretbox_keybytes=a.asm.mb).apply(null,arguments)},a._crypto_secretbox_noncebytes=function(){return(a._crypto_secretbox_noncebytes=a.asm.nb).apply(null,arguments)},a._crypto_secretbox_macbytes=function(){return(a._crypto_secretbox_macbytes=a.asm.ob).apply(null,arguments)},a._crypto_secretbox_messagebytes_max=function(){return(a._crypto_secretbox_messagebytes_max=a.asm.pb).apply(null,arguments)},a._crypto_secretbox_keygen=function(){return(a._crypto_secretbox_keygen=a.asm.qb).apply(null,arguments)},a._crypto_secretbox_detached=function(){return(a._crypto_secretbox_detached=a.asm.rb).apply(null,arguments)},a._crypto_secretbox_easy=function(){return(a._crypto_secretbox_easy=a.asm.sb).apply(null,arguments)},a._crypto_secretbox_open_detached=function(){return(a._crypto_secretbox_open_detached=a.asm.tb).apply(null,arguments)},a._crypto_secretbox_open_easy=function(){return(a._crypto_secretbox_open_easy=a.asm.ub).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keygen=function(){return(a._crypto_secretstream_xchacha20poly1305_keygen=a.asm.vb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_push=function(){return(a._crypto_secretstream_xchacha20poly1305_init_push=a.asm.wb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_init_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_init_pull=a.asm.xb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_rekey=a.asm.yb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_push=function(){return(a._crypto_secretstream_xchacha20poly1305_push=a.asm.zb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_pull=function(){return(a._crypto_secretstream_xchacha20poly1305_pull=a.asm.Ab).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_statebytes=function(){return(a._crypto_secretstream_xchacha20poly1305_statebytes=a.asm.Bb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_abytes=function(){return(a._crypto_secretstream_xchacha20poly1305_abytes=a.asm.Cb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_headerbytes=function(){return(a._crypto_secretstream_xchacha20poly1305_headerbytes=a.asm.Db).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_keybytes=function(){return(a._crypto_secretstream_xchacha20poly1305_keybytes=a.asm.Eb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_messagebytes_max=function(){return(a._crypto_secretstream_xchacha20poly1305_messagebytes_max=a.asm.Fb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_message=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_message=a.asm.Gb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_push=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_push=a.asm.Hb).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_rekey=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_rekey=a.asm.Ib).apply(null,arguments)},a._crypto_secretstream_xchacha20poly1305_tag_final=function(){return(a._crypto_secretstream_xchacha20poly1305_tag_final=a.asm.Jb).apply(null,arguments)},a._crypto_shorthash_bytes=function(){return(a._crypto_shorthash_bytes=a.asm.Kb).apply(null,arguments)},a._crypto_shorthash_keybytes=function(){return(a._crypto_shorthash_keybytes=a.asm.Lb).apply(null,arguments)},a._crypto_shorthash=function(){return(a._crypto_shorthash=a.asm.Mb).apply(null,arguments)},a._crypto_shorthash_keygen=function(){return(a._crypto_shorthash_keygen=a.asm.Nb).apply(null,arguments)},a._crypto_sign_statebytes=function(){return(a._crypto_sign_statebytes=a.asm.Ob).apply(null,arguments)},a._crypto_sign_bytes=function(){return(a._crypto_sign_bytes=a.asm.Pb).apply(null,arguments)},a._crypto_sign_seedbytes=function(){return(a._crypto_sign_seedbytes=a.asm.Qb).apply(null,arguments)},a._crypto_sign_publickeybytes=function(){return(a._crypto_sign_publickeybytes=a.asm.Rb).apply(null,arguments)},a._crypto_sign_secretkeybytes=function(){return(a._crypto_sign_secretkeybytes=a.asm.Sb).apply(null,arguments)},a._crypto_sign_messagebytes_max=function(){return(a._crypto_sign_messagebytes_max=a.asm.Tb).apply(null,arguments)},a._crypto_sign_seed_keypair=function(){return(a._crypto_sign_seed_keypair=a.asm.Ub).apply(null,arguments)},a._crypto_sign_keypair=function(){return(a._crypto_sign_keypair=a.asm.Vb).apply(null,arguments)},a._crypto_sign=function(){return(a._crypto_sign=a.asm.Wb).apply(null,arguments)},a._crypto_sign_open=function(){return(a._crypto_sign_open=a.asm.Xb).apply(null,arguments)},a._crypto_sign_detached=function(){return(a._crypto_sign_detached=a.asm.Yb).apply(null,arguments)},a._crypto_sign_verify_detached=function(){return(a._crypto_sign_verify_detached=a.asm.Zb).apply(null,arguments)},a._crypto_sign_init=function(){return(a._crypto_sign_init=a.asm._b).apply(null,arguments)},a._crypto_sign_update=function(){return(a._crypto_sign_update=a.asm.$b).apply(null,arguments)},a._crypto_sign_final_create=function(){return(a._crypto_sign_final_create=a.asm.ac).apply(null,arguments)},a._crypto_sign_final_verify=function(){return(a._crypto_sign_final_verify=a.asm.bc).apply(null,arguments)},a._crypto_sign_ed25519_pk_to_curve25519=function(){return(a._crypto_sign_ed25519_pk_to_curve25519=a.asm.cc).apply(null,arguments)},a._crypto_sign_ed25519_sk_to_curve25519=function(){return(a._crypto_sign_ed25519_sk_to_curve25519=a.asm.dc).apply(null,arguments)},a._randombytes_random=function(){return(a._randombytes_random=a.asm.ec).apply(null,arguments)},a._randombytes_stir=function(){return(a._randombytes_stir=a.asm.fc).apply(null,arguments)},a._randombytes_uniform=function(){return(a._randombytes_uniform=a.asm.gc).apply(null,arguments)},a._randombytes_buf=function(){return(a._randombytes_buf=a.asm.hc).apply(null,arguments)},a._randombytes_buf_deterministic=function(){return(a._randombytes_buf_deterministic=a.asm.ic).apply(null,arguments)},a._randombytes_seedbytes=function(){return(a._randombytes_seedbytes=a.asm.jc).apply(null,arguments)},a._randombytes_close=function(){return(a._randombytes_close=a.asm.kc).apply(null,arguments)},a._randombytes=function(){return(a._randombytes=a.asm.lc).apply(null,arguments)},a._sodium_bin2hex=function(){return(a._sodium_bin2hex=a.asm.mc).apply(null,arguments)},a._sodium_hex2bin=function(){return(a._sodium_hex2bin=a.asm.nc).apply(null,arguments)},a._sodium_base64_encoded_len=function(){return(a._sodium_base64_encoded_len=a.asm.oc).apply(null,arguments)},a._sodium_bin2base64=function(){return(a._sodium_bin2base64=a.asm.pc).apply(null,arguments)},a._sodium_base642bin=function(){return(a._sodium_base642bin=a.asm.qc).apply(null,arguments)},a._sodium_init=function(){return(a._sodium_init=a.asm.rc).apply(null,arguments)},a._sodium_pad=function(){return(a._sodium_pad=a.asm.sc).apply(null,arguments)},a._sodium_unpad=function(){return(a._sodium_unpad=a.asm.tc).apply(null,arguments)},a._sodium_version_string=function(){return(a._sodium_version_string=a.asm.uc).apply(null,arguments)},a._sodium_library_version_major=function(){return(a._sodium_library_version_major=a.asm.vc).apply(null,arguments)},a._sodium_library_version_minor=function(){return(a._sodium_library_version_minor=a.asm.wc).apply(null,arguments)},a._sodium_library_minimal=function(){return(a._sodium_library_minimal=a.asm.xc).apply(null,arguments)},a._malloc=function(){return(a._malloc=a.asm.yc).apply(null,arguments)},a._free=function(){return(a._free=a.asm.zc).apply(null,arguments)},a.setValue=function(A,I,g=\"i8\",B){switch(\"*\"===g.charAt(g.length-1)&&(g=\"i32\"),g){case\"i1\":case\"i8\":h[A>>0]=I;break;case\"i16\":u[A>>1]=I;break;case\"i32\":F[A>>2]=I;break;case\"i64\":x=[I>>>0,(J=I,+Math.abs(J)>=1?J>0?(0|Math.min(+Math.floor(J/4294967296),4294967295))>>>0:~~+Math.ceil((J-+(~~J>>>0))/4294967296)>>>0:0)],F[A>>2]=x[0],F[A+4>>2]=x[1];break;case\"float\":l[A>>2]=I;break;case\"double\":_[A>>3]=I;break;default:N(\"invalid type for setValue: \"+g)}},a.getValue=function(A,I=\"i8\",g){switch(\"*\"===I.charAt(I.length-1)&&(I=\"i32\"),I){case\"i1\":case\"i8\":return h[A>>0];case\"i16\":return u[A>>1];case\"i32\":case\"i64\":return F[A>>2];case\"float\":return l[A>>2];case\"double\":return Number(_[A>>3]);default:N(\"invalid type for getValue: \"+I)}return null},a.UTF8ToString=G,Y=function A(){$||IA(),$||(Y=A)},a.run=IA,a.preInit)for(\"function\"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();IA()})).catch((function(){return B.useBackupModule()})),I}\"function\"==typeof define&&define.amd?define([\"exports\"],I):\"object\"==typeof exports&&\"string\"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this);\n","/*! node-domexception. MIT License. Jimmy Wärting */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","/**\n * web-streams-polyfill v3.2.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// \n const SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n description => `Symbol(${description})`;\n\n /// \n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n const globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n const rethrowAssertionErrorRejection = noop;\n\n const originalPromise = Promise;\n const originalPromiseThen = Promise.prototype.then;\n const originalPromiseResolve = Promise.resolve.bind(originalPromise);\n const originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n const queueMicrotask = (() => {\n const globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n const resolvedPromise = promiseResolvedWith(undefined);\n return (fn) => PerformPromiseThen(resolvedPromise, fn);\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n const QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n class SimpleQueue {\n constructor() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n get length() {\n return this._size;\n }\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n push(element) {\n const oldBack = this._back;\n let newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n }\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n shift() { // must not be called on an empty queue\n const oldFront = this._front;\n let newFront = oldFront;\n const oldCursor = this._cursor;\n let newCursor = oldCursor + 1;\n const elements = oldFront._elements;\n const element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n }\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n forEach(callback) {\n let i = this._cursor;\n let node = this._front;\n let elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n }\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n peek() { // must not be called on an empty queue\n const front = this._front;\n const cursor = this._cursor;\n return front._elements[cursor];\n }\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n const stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise((resolve, reject) => {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n const AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n const ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n const CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n const PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n const NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n const MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(`${context} is not a function.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(`Parameter ${position} is required in '${context}'.`);\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(`${field} is required in '${context}'.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n const lowerBound = 0;\n const upperBound = Number.MAX_SAFE_INTEGER;\n let x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(`${context} is not a finite number`);\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(`${context} is not a ReadableStream.`);\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamDefaultReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: () => resolvePromise({ value: undefined, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);\n }\n\n /// \n /* eslint-disable @typescript-eslint/no-empty-function */\n const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype);\n\n /// \n class ReadableStreamAsyncIteratorImpl {\n constructor(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n next() {\n const nextSteps = () => this._nextSteps();\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n }\n return(value) {\n const returnSteps = () => this._returnSteps(value);\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n }\n _nextSteps() {\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => {\n this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(() => resolvePromise({ value: chunk, done: false }));\n },\n _closeSteps: () => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: reason => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n }\n _returnSteps(value) {\n if (this._isFinished) {\n return Promise.resolve({ value, done: true });\n }\n this._isFinished = true;\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n const result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, () => ({ value, done: true }));\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value, done: true });\n }\n }\n const ReadableStreamAsyncIteratorPrototype = {\n next() {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return(value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);\n }\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n const NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n const length = end - begin;\n const slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n const pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value, size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n const pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n class ReadableStreamBYOBRequest {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get view() {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n }\n respond(bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n respondWithNewView(view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableByteStreamController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get byobRequest() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);\n }\n ReadableByteStreamControllerClose(this);\n }\n enqueue(chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(`chunk's buffer must have non-zero byteLength`);\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n const entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n const autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n let buffer;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n }\n }\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n let done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n const bytesFilled = pullIntoDescriptor.bytesFilled;\n const elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer, byteOffset, byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n const elementSize = pullIntoDescriptor.elementSize;\n const currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n const maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n let totalBytesToCopyRemaining = maxBytesToCopy;\n let ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n const queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n const headOfQueue = queue.peek();\n const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n const pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n const stream = controller._controlledReadableByteStream;\n let elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n const ctor = view.constructor;\n // try {\n const buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n const stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n const remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n const descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n const buffer = chunk.buffer;\n const byteOffset = chunk.byteOffset;\n const byteLength = chunk.byteLength;\n const transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n const viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n const controller = Object.create(ReadableByteStreamController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = () => underlyingByteSource.start(controller);\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = () => underlyingByteSource.pull(controller);\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingByteSource.cancel(reason);\n }\n const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamBYOBReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readIntoRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: chunk => resolvePromise({ value: chunk, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n const { highWaterMark } = strategy;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n const { size } = strategy;\n if (!size) {\n return () => 1;\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n const size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`)\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return chunk => convertUnrestrictedDouble(fn(chunk));\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n const abort = original === null || original === void 0 ? void 0 : original.abort;\n const close = original === null || original === void 0 ? void 0 : original.close;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n const write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),\n type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return () => promiseCall(fn, original, []);\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(`${context} is not a WritableStream.`);\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n const supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n class WritableStream {\n constructor(rawUnderlyingSink = {}, rawStrategy = {}) {\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n const type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get locked() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n }\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n abort(reason = undefined) {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n close() {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n }\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n getWriter() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n const controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n let wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n const promise = newPromise((resolve, reject) => {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));\n }\n const promise = newPromise((resolve, reject) => {\n const closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n const writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n const promise = newPromise((resolve, reject) => {\n const writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n const state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n const controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n const writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n const storedError = stream._storedError;\n stream._writeRequests.forEach(writeRequest => {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, () => {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, (reason) => {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n const state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n const writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n class WritableStreamDefaultWriter {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n const state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n const storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get desiredSize() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get ready() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n abort(reason = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n close() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n releaseLock() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n }\n write(chunk = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n const stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n const stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n const stream = writer._ownerWritableStream;\n const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n const stream = writer._ownerWritableStream;\n const controller = stream._writableStreamController;\n const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n const state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n const promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n const closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n class WritableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get abortReason() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n }\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get signal() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n }\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n error(e = undefined) {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n const state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [AbortSteps](reason) {\n const result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [ErrorSteps]() {\n ResetQueue(this);\n }\n }\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n const startResult = startAlgorithm();\n const startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, () => {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, r => {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(WritableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let writeAlgorithm = () => promiseResolvedWith(undefined);\n let closeAlgorithm = () => promiseResolvedWith(undefined);\n let abortAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSink.start !== undefined) {\n startAlgorithm = () => underlyingSink.start(controller);\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = chunk => underlyingSink.write(chunk, controller);\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = () => underlyingSink.close();\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = reason => underlyingSink.abort(reason);\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n const stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n const stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n const state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n const value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n const sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, () => {\n WritableStreamFinishInFlightClose(stream);\n }, reason => {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n const sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, () => {\n WritableStreamFinishInFlightWrite(stream);\n const state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, reason => {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n const stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise((resolve, reject) => {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise((resolve, reject) => {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// \n const NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// \n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n const ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n const reader = AcquireReadableStreamDefaultReader(source);\n const writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n let shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n let currentWrite = promiseResolvedWith(undefined);\n return newPromise((resolve, reject) => {\n let abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = () => {\n const error = new DOMException$1('Aborted', 'AbortError');\n const actions = [];\n if (!preventAbort) {\n actions.push(() => {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(() => {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise((resolveLoop, rejectLoop) => {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, () => {\n return newPromise((resolveRead, rejectRead) => {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: chunk => {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: () => resolveRead(true),\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, storedError => {\n if (!preventAbort) {\n shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, storedError => {\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, () => {\n if (!preventClose) {\n shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);\n }\n else {\n shutdown(true, destClosed);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n const oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined);\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError));\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n enqueue(chunk = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n const chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n }\n }\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n let chunkSize;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n const stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n const state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSource.start !== undefined) {\n startAlgorithm = () => underlyingSource.start(controller);\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = () => underlyingSource.pull(controller);\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingSource.cancel(reason);\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgain = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgain = false;\n const chunk1 = chunk;\n const chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, (r) => {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n let reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgainForBranch1 = false;\n let readAgainForBranch2 = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, r => {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const chunk1 = chunk;\n let chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n const byobBranch = forBranch2 ? branch2 : branch1;\n const otherBranch = forBranch2 ? branch1 : branch2;\n const readIntoRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n let clonedChunk;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: chunk => {\n reading = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n const original = source;\n const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n const pull = original === null || original === void 0 ? void 0 : original.pull;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),\n type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`)\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertReadableStreamType(type, context) {\n type = `${type}`;\n if (type !== 'bytes') {\n throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n const mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = `${mode}`;\n if (mode !== 'byob') {\n throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n const signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, `${context} has member 'signal' that`);\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(`${context} is not an AbortSignal.`);\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n const readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, `${context} has member 'readable' that`);\n const writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, `${context} has member 'writable' that`);\n return { readable, writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n class ReadableStream {\n constructor(rawUnderlyingSource = {}, rawStrategy = {}) {\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n const highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get locked() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n }\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n cancel(reason = undefined) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n getReader(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n const options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n }\n pipeThrough(rawTransform, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n const transform = convertReadableWritablePair(rawTransform, 'First parameter');\n const options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n }\n pipeTo(destination, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));\n }\n let options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n }\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n tee() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n const branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n }\n values(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n const options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n }\n }\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n const reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n const byteLengthSizeFunction = (chunk) => {\n return chunk.byteLength;\n };\n try {\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n class ByteLengthQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get size() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n }\n }\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n const countSizeFunction = () => {\n return 1;\n };\n try {\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n class CountQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get size() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n }\n }\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n const flush = original === null || original === void 0 ? void 0 : original.flush;\n const readableType = original === null || original === void 0 ? void 0 : original.readableType;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const transform = original === null || original === void 0 ? void 0 : original.transform;\n const writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),\n readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, `${context} has member 'start' that`),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),\n writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n class TransformStream {\n constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n const transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n let startPromise_resolve;\n const startPromise = newPromise(resolve => {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n /**\n * The readable side of the transform stream.\n */\n get readable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n /**\n * The writable side of the transform stream.\n */\n get writable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(resolve => {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n class TransformStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get desiredSize() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n const readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n enqueue(chunk = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n error(reason = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n }\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n terminate() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n }\n }\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n const controller = Object.create(TransformStreamDefaultController.prototype);\n let transformAlgorithm = (chunk) => {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n let flushAlgorithm = () => promiseResolvedWith(undefined);\n if (transformer.transform !== undefined) {\n transformAlgorithm = chunk => transformer.transform(chunk, controller);\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = () => transformer.flush(controller);\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n const transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, r => {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n const error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n const controller = stream._transformStreamController;\n if (stream._backpressure) {\n const backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, () => {\n const writable = stream._writable;\n const state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n const readable = stream._readable;\n const controller = stream._transformStreamController;\n const flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, () => {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, r => {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.es2018.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream/web\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","module.exports = require(\"zlib\");","/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n","import Blob from './index.js'\n\nconst _File = class File extends Blob {\n #lastModified = 0\n #name = ''\n\n /**\n * @param {*[]} fileBits\n * @param {string} fileName\n * @param {{lastModified?: number, type?: string}} options\n */// @ts-ignore\n constructor (fileBits, fileName, options = {}) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`)\n }\n super(fileBits, options)\n\n if (options === null) options = {}\n\n // Simulate WebIDL type casting for NaN value in lastModified option.\n const lastModified = options.lastModified === undefined ? Date.now() : Number(options.lastModified)\n if (!Number.isNaN(lastModified)) {\n this.#lastModified = lastModified\n }\n\n this.#name = String(fileName)\n }\n\n get name () {\n return this.#name\n }\n\n get lastModified () {\n return this.#lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n\n static [Symbol.hasInstance] (object) {\n return !!object && object instanceof Blob &&\n /^(File)$/.test(object[Symbol.toStringTag])\n }\n}\n\n/** @type {typeof globalThis.File} */// @ts-ignore\nexport const File = _File\nexport default File\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","import { statSync, createReadStream, promises as fs } from 'node:fs'\nimport { basename } from 'node:path'\nimport DOMException from 'node-domexception'\n\nimport File from './file.js'\nimport Blob from './index.js'\n\nconst { stat } = fs\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst blobFromSync = (path, type) => fromBlob(statSync(path), path, type)\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst blobFrom = (path, type) => stat(path).then(stat => fromBlob(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst fileFrom = (path, type) => stat(path).then(stat => fromFile(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst fileFromSync = (path, type) => fromFile(statSync(path), path, type)\n\n// @ts-ignore\nconst fromBlob = (stat, path, type = '') => new Blob([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], { type })\n\n// @ts-ignore\nconst fromFile = (stat, path, type = '') => new File([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], basename(path), { type, lastModified: stat.mtimeMs })\n\n/**\n * This is a blob backed up by a file on the disk\n * with minium requirement. Its wrapped around a Blob as a blobPart\n * so you have no direct access to this.\n *\n * @private\n */\nclass BlobDataItem {\n #path\n #start\n\n constructor (options) {\n this.#path = options.path\n this.#start = options.start\n this.size = options.size\n this.lastModified = options.lastModified\n }\n\n /**\n * Slicing arguments is first validated and formatted\n * to not be out of range by Blob.prototype.slice\n */\n slice (start, end) {\n return new BlobDataItem({\n path: this.#path,\n lastModified: this.lastModified,\n size: end - start,\n start: this.#start + start\n })\n }\n\n async * stream () {\n const { mtimeMs } = await stat(this.#path)\n if (mtimeMs > this.lastModified) {\n throw new DOMException('The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.', 'NotReadableError')\n }\n yield * createReadStream(this.#path, {\n start: this.#start,\n end: this.#start + this.size - 1\n })\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n}\n\nexport default blobFromSync\nexport { File, Blob, blobFrom, blobFromSync, fileFrom, fileFromSync }\n","/*! fetch-blob. MIT License. Jimmy Wärting */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n","/*! formdata-polyfill. MIT License. Jimmy Wärting */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.lengthtypeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;cc[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(? {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record | Iterable | Iterable>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence> or record)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response} A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:net\");","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions. We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t// origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t// referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t// policy considerations in the interests of minimizing data leakage. For example, the user\n\t// agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t// string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t// and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t// string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// > and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param {*} [options_] - Fetch options\n * @return {Promise}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t179: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(2353);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/update-machine-key-tfvars/37.index.js b/dist/update-machine-key-tfvars/37.index.js index 988f8de..664202d 100644 --- a/dist/update-machine-key-tfvars/37.index.js +++ b/dist/update-machine-key-tfvars/37.index.js @@ -3,15 +3,15 @@ exports.id = 37; exports.ids = [37]; exports.modules = { -/***/ 4037: +/***/ 152: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "toFormData": () => (/* binding */ toFormData) /* harmony export */ }); -/* harmony import */ var fetch_blob_from_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2777); -/* harmony import */ var formdata_polyfill_esm_min_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8010); +/* harmony import */ var fetch_blob_from_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(777); +/* harmony import */ var formdata_polyfill_esm_min_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); diff --git a/dist/update-machine-key-tfvars/37.index.js.map b/dist/update-machine-key-tfvars/37.index.js.map index 8376d79..5e7475d 100644 --- a/dist/update-machine-key-tfvars/37.index.js.map +++ b/dist/update-machine-key-tfvars/37.index.js.map @@ -1 +1 @@ -{"version":3,"file":"37.index.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://typescript-action/./node_modules/node-fetch/src/utils/multipart-parser.js"],"sourcesContent":["import {File} from 'fetch-blob/from.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\n\nlet s = 0;\nconst S = {\n\tSTART_BOUNDARY: s++,\n\tHEADER_FIELD_START: s++,\n\tHEADER_FIELD: s++,\n\tHEADER_VALUE_START: s++,\n\tHEADER_VALUE: s++,\n\tHEADER_VALUE_ALMOST_DONE: s++,\n\tHEADERS_ALMOST_DONE: s++,\n\tPART_DATA_START: s++,\n\tPART_DATA: s++,\n\tEND: s++\n};\n\nlet f = 1;\nconst F = {\n\tPART_BOUNDARY: f,\n\tLAST_BOUNDARY: f *= 2\n};\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst lower = c => c | 0x20;\n\nconst noop = () => {};\n\nclass MultipartParser {\n\t/**\n\t * @param {string} boundary\n\t */\n\tconstructor(boundary) {\n\t\tthis.index = 0;\n\t\tthis.flags = 0;\n\n\t\tthis.onHeaderEnd = noop;\n\t\tthis.onHeaderField = noop;\n\t\tthis.onHeadersEnd = noop;\n\t\tthis.onHeaderValue = noop;\n\t\tthis.onPartBegin = noop;\n\t\tthis.onPartData = noop;\n\t\tthis.onPartEnd = noop;\n\n\t\tthis.boundaryChars = {};\n\n\t\tboundary = '\\r\\n--' + boundary;\n\t\tconst ui8a = new Uint8Array(boundary.length);\n\t\tfor (let i = 0; i < boundary.length; i++) {\n\t\t\tui8a[i] = boundary.charCodeAt(i);\n\t\t\tthis.boundaryChars[ui8a[i]] = true;\n\t\t}\n\n\t\tthis.boundary = ui8a;\n\t\tthis.lookbehind = new Uint8Array(this.boundary.length + 8);\n\t\tthis.state = S.START_BOUNDARY;\n\t}\n\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\twrite(data) {\n\t\tlet i = 0;\n\t\tconst length_ = data.length;\n\t\tlet previousIndex = this.index;\n\t\tlet {lookbehind, boundary, boundaryChars, index, state, flags} = this;\n\t\tconst boundaryLength = this.boundary.length;\n\t\tconst boundaryEnd = boundaryLength - 1;\n\t\tconst bufferLength = data.length;\n\t\tlet c;\n\t\tlet cl;\n\n\t\tconst mark = name => {\n\t\t\tthis[name + 'Mark'] = i;\n\t\t};\n\n\t\tconst clear = name => {\n\t\t\tdelete this[name + 'Mark'];\n\t\t};\n\n\t\tconst callback = (callbackSymbol, start, end, ui8a) => {\n\t\t\tif (start === undefined || start !== end) {\n\t\t\t\tthis[callbackSymbol](ui8a && ui8a.subarray(start, end));\n\t\t\t}\n\t\t};\n\n\t\tconst dataCallback = (name, clear) => {\n\t\t\tconst markSymbol = name + 'Mark';\n\t\t\tif (!(markSymbol in this)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (clear) {\n\t\t\t\tcallback(name, this[markSymbol], i, data);\n\t\t\t\tdelete this[markSymbol];\n\t\t\t} else {\n\t\t\t\tcallback(name, this[markSymbol], data.length, data);\n\t\t\t\tthis[markSymbol] = 0;\n\t\t\t}\n\t\t};\n\n\t\tfor (i = 0; i < length_; i++) {\n\t\t\tc = data[i];\n\n\t\t\tswitch (state) {\n\t\t\t\tcase S.START_BOUNDARY:\n\t\t\t\t\tif (index === boundary.length - 2) {\n\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else if (c !== CR) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (index - 1 === boundary.length - 2) {\n\t\t\t\t\t\tif (flags & F.LAST_BOUNDARY && c === HYPHEN) {\n\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c !== boundary[index + 2]) {\n\t\t\t\t\t\tindex = -2;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === boundary[index + 2]) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_FIELD_START:\n\t\t\t\t\tstate = S.HEADER_FIELD;\n\t\t\t\t\tmark('onHeaderField');\n\t\t\t\t\tindex = 0;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_FIELD:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tclear('onHeaderField');\n\t\t\t\t\t\tstate = S.HEADERS_ALMOST_DONE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tindex++;\n\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === COLON) {\n\t\t\t\t\t\tif (index === 1) {\n\t\t\t\t\t\t\t// empty header field\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdataCallback('onHeaderField', true);\n\t\t\t\t\t\tstate = S.HEADER_VALUE_START;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcl = lower(c);\n\t\t\t\t\tif (cl < A || cl > Z) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_START:\n\t\t\t\t\tif (c === SPACE) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tmark('onHeaderValue');\n\t\t\t\t\tstate = S.HEADER_VALUE;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_VALUE:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tdataCallback('onHeaderValue', true);\n\t\t\t\t\t\tcallback('onHeaderEnd');\n\t\t\t\t\t\tstate = S.HEADER_VALUE_ALMOST_DONE;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADERS_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback('onHeadersEnd');\n\t\t\t\t\tstate = S.PART_DATA_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.PART_DATA_START:\n\t\t\t\t\tstate = S.PART_DATA;\n\t\t\t\t\tmark('onPartData');\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.PART_DATA:\n\t\t\t\t\tpreviousIndex = index;\n\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t// boyer-moore derrived algorithm to safely skip non-boundary data\n\t\t\t\t\t\ti += boundaryEnd;\n\t\t\t\t\t\twhile (i < bufferLength && !(data[i] in boundaryChars)) {\n\t\t\t\t\t\t\ti += boundaryLength;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ti -= boundaryEnd;\n\t\t\t\t\t\tc = data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < boundary.length) {\n\t\t\t\t\t\tif (boundary[index] === c) {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\tdataCallback('onPartData', true);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tindex++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index === boundary.length) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\t\t// CR = part boundary\n\t\t\t\t\t\t\tflags |= F.PART_BOUNDARY;\n\t\t\t\t\t\t} else if (c === HYPHEN) {\n\t\t\t\t\t\t\t// HYPHEN = end boundary\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index - 1 === boundary.length) {\n\t\t\t\t\t\tif (flags & F.PART_BOUNDARY) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tif (c === LF) {\n\t\t\t\t\t\t\t\t// unset the PART_BOUNDARY flag\n\t\t\t\t\t\t\t\tflags &= ~F.PART_BOUNDARY;\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (flags & F.LAST_BOUNDARY) {\n\t\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t// when matching a possible boundary, keep a lookbehind reference\n\t\t\t\t\t\t// in case it turns out to be a false lead\n\t\t\t\t\t\tlookbehind[index - 1] = c;\n\t\t\t\t\t} else if (previousIndex > 0) {\n\t\t\t\t\t\t// if our boundary turned out to be rubbish, the captured lookbehind\n\t\t\t\t\t\t// belongs to partData\n\t\t\t\t\t\tconst _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);\n\t\t\t\t\t\tcallback('onPartData', 0, previousIndex, _lookbehind);\n\t\t\t\t\t\tpreviousIndex = 0;\n\t\t\t\t\t\tmark('onPartData');\n\n\t\t\t\t\t\t// reconsider the current character even so it interrupted the sequence\n\t\t\t\t\t\t// it could be the beginning of a new sequence\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.END:\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected state entered: ${state}`);\n\t\t\t}\n\t\t}\n\n\t\tdataCallback('onHeaderField');\n\t\tdataCallback('onHeaderValue');\n\t\tdataCallback('onPartData');\n\n\t\t// Update properties for the next call\n\t\tthis.index = index;\n\t\tthis.state = state;\n\t\tthis.flags = flags;\n\t}\n\n\tend() {\n\t\tif ((this.state === S.HEADER_FIELD_START && this.index === 0) ||\n\t\t\t(this.state === S.PART_DATA && this.index === this.boundary.length)) {\n\t\t\tthis.onPartEnd();\n\t\t} else if (this.state !== S.END) {\n\t\t\tthrow new Error('MultipartParser.end(): stream ended unexpectedly');\n\t\t}\n\t}\n}\n\nfunction _fileName(headerValue) {\n\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\tconst m = headerValue.match(/\\bfilename=(\"(.*?)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))($|;\\s)/i);\n\tif (!m) {\n\t\treturn;\n\t}\n\n\tconst match = m[2] || m[3] || '';\n\tlet filename = match.slice(match.lastIndexOf('\\\\') + 1);\n\tfilename = filename.replace(/%22/g, '\"');\n\tfilename = filename.replace(/&#(\\d{4});/g, (m, code) => {\n\t\treturn String.fromCharCode(code);\n\t});\n\treturn filename;\n}\n\nexport async function toFormData(Body, ct) {\n\tif (!/multipart/i.test(ct)) {\n\t\tthrow new TypeError('Failed to fetch');\n\t}\n\n\tconst m = ct.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n\n\tif (!m) {\n\t\tthrow new TypeError('no or bad content-type header, no multipart boundary');\n\t}\n\n\tconst parser = new MultipartParser(m[1] || m[2]);\n\n\tlet headerField;\n\tlet headerValue;\n\tlet entryValue;\n\tlet entryName;\n\tlet contentType;\n\tlet filename;\n\tconst entryChunks = [];\n\tconst formData = new FormData();\n\n\tconst onPartData = ui8a => {\n\t\tentryValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tconst appendToFile = ui8a => {\n\t\tentryChunks.push(ui8a);\n\t};\n\n\tconst appendFileToFormData = () => {\n\t\tconst file = new File(entryChunks, filename, {type: contentType});\n\t\tformData.append(entryName, file);\n\t};\n\n\tconst appendEntryToFormData = () => {\n\t\tformData.append(entryName, entryValue);\n\t};\n\n\tconst decoder = new TextDecoder('utf-8');\n\tdecoder.decode();\n\n\tparser.onPartBegin = function () {\n\t\tparser.onPartData = onPartData;\n\t\tparser.onPartEnd = appendEntryToFormData;\n\n\t\theaderField = '';\n\t\theaderValue = '';\n\t\tentryValue = '';\n\t\tentryName = '';\n\t\tcontentType = '';\n\t\tfilename = null;\n\t\tentryChunks.length = 0;\n\t};\n\n\tparser.onHeaderField = function (ui8a) {\n\t\theaderField += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderValue = function (ui8a) {\n\t\theaderValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderEnd = function () {\n\t\theaderValue += decoder.decode();\n\t\theaderField = headerField.toLowerCase();\n\n\t\tif (headerField === 'content-disposition') {\n\t\t\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\t\t\tconst m = headerValue.match(/\\bname=(\"([^\"]*)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))/i);\n\n\t\t\tif (m) {\n\t\t\t\tentryName = m[2] || m[3] || '';\n\t\t\t}\n\n\t\t\tfilename = _fileName(headerValue);\n\n\t\t\tif (filename) {\n\t\t\t\tparser.onPartData = appendToFile;\n\t\t\t\tparser.onPartEnd = appendFileToFormData;\n\t\t\t}\n\t\t} else if (headerField === 'content-type') {\n\t\t\tcontentType = headerValue;\n\t\t}\n\n\t\theaderValue = '';\n\t\theaderField = '';\n\t};\n\n\tfor await (const chunk of Body) {\n\t\tparser.write(chunk);\n\t}\n\n\tparser.end();\n\n\treturn formData;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"37.index.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":[".././node_modules/node-fetch/src/utils/multipart-parser.js"],"sourcesContent":["import {File} from 'fetch-blob/from.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\n\nlet s = 0;\nconst S = {\n\tSTART_BOUNDARY: s++,\n\tHEADER_FIELD_START: s++,\n\tHEADER_FIELD: s++,\n\tHEADER_VALUE_START: s++,\n\tHEADER_VALUE: s++,\n\tHEADER_VALUE_ALMOST_DONE: s++,\n\tHEADERS_ALMOST_DONE: s++,\n\tPART_DATA_START: s++,\n\tPART_DATA: s++,\n\tEND: s++\n};\n\nlet f = 1;\nconst F = {\n\tPART_BOUNDARY: f,\n\tLAST_BOUNDARY: f *= 2\n};\n\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nconst HYPHEN = 45;\nconst COLON = 58;\nconst A = 97;\nconst Z = 122;\n\nconst lower = c => c | 0x20;\n\nconst noop = () => {};\n\nclass MultipartParser {\n\t/**\n\t * @param {string} boundary\n\t */\n\tconstructor(boundary) {\n\t\tthis.index = 0;\n\t\tthis.flags = 0;\n\n\t\tthis.onHeaderEnd = noop;\n\t\tthis.onHeaderField = noop;\n\t\tthis.onHeadersEnd = noop;\n\t\tthis.onHeaderValue = noop;\n\t\tthis.onPartBegin = noop;\n\t\tthis.onPartData = noop;\n\t\tthis.onPartEnd = noop;\n\n\t\tthis.boundaryChars = {};\n\n\t\tboundary = '\\r\\n--' + boundary;\n\t\tconst ui8a = new Uint8Array(boundary.length);\n\t\tfor (let i = 0; i < boundary.length; i++) {\n\t\t\tui8a[i] = boundary.charCodeAt(i);\n\t\t\tthis.boundaryChars[ui8a[i]] = true;\n\t\t}\n\n\t\tthis.boundary = ui8a;\n\t\tthis.lookbehind = new Uint8Array(this.boundary.length + 8);\n\t\tthis.state = S.START_BOUNDARY;\n\t}\n\n\t/**\n\t * @param {Uint8Array} data\n\t */\n\twrite(data) {\n\t\tlet i = 0;\n\t\tconst length_ = data.length;\n\t\tlet previousIndex = this.index;\n\t\tlet {lookbehind, boundary, boundaryChars, index, state, flags} = this;\n\t\tconst boundaryLength = this.boundary.length;\n\t\tconst boundaryEnd = boundaryLength - 1;\n\t\tconst bufferLength = data.length;\n\t\tlet c;\n\t\tlet cl;\n\n\t\tconst mark = name => {\n\t\t\tthis[name + 'Mark'] = i;\n\t\t};\n\n\t\tconst clear = name => {\n\t\t\tdelete this[name + 'Mark'];\n\t\t};\n\n\t\tconst callback = (callbackSymbol, start, end, ui8a) => {\n\t\t\tif (start === undefined || start !== end) {\n\t\t\t\tthis[callbackSymbol](ui8a && ui8a.subarray(start, end));\n\t\t\t}\n\t\t};\n\n\t\tconst dataCallback = (name, clear) => {\n\t\t\tconst markSymbol = name + 'Mark';\n\t\t\tif (!(markSymbol in this)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (clear) {\n\t\t\t\tcallback(name, this[markSymbol], i, data);\n\t\t\t\tdelete this[markSymbol];\n\t\t\t} else {\n\t\t\t\tcallback(name, this[markSymbol], data.length, data);\n\t\t\t\tthis[markSymbol] = 0;\n\t\t\t}\n\t\t};\n\n\t\tfor (i = 0; i < length_; i++) {\n\t\t\tc = data[i];\n\n\t\t\tswitch (state) {\n\t\t\t\tcase S.START_BOUNDARY:\n\t\t\t\t\tif (index === boundary.length - 2) {\n\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else if (c !== CR) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (index - 1 === boundary.length - 2) {\n\t\t\t\t\t\tif (flags & F.LAST_BOUNDARY && c === HYPHEN) {\n\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c !== boundary[index + 2]) {\n\t\t\t\t\t\tindex = -2;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === boundary[index + 2]) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_FIELD_START:\n\t\t\t\t\tstate = S.HEADER_FIELD;\n\t\t\t\t\tmark('onHeaderField');\n\t\t\t\t\tindex = 0;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_FIELD:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tclear('onHeaderField');\n\t\t\t\t\t\tstate = S.HEADERS_ALMOST_DONE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tindex++;\n\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c === COLON) {\n\t\t\t\t\t\tif (index === 1) {\n\t\t\t\t\t\t\t// empty header field\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdataCallback('onHeaderField', true);\n\t\t\t\t\t\tstate = S.HEADER_VALUE_START;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcl = lower(c);\n\t\t\t\t\tif (cl < A || cl > Z) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_START:\n\t\t\t\t\tif (c === SPACE) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tmark('onHeaderValue');\n\t\t\t\t\tstate = S.HEADER_VALUE;\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.HEADER_VALUE:\n\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\tdataCallback('onHeaderValue', true);\n\t\t\t\t\t\tcallback('onHeaderEnd');\n\t\t\t\t\t\tstate = S.HEADER_VALUE_ALMOST_DONE;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADER_VALUE_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.HEADERS_ALMOST_DONE:\n\t\t\t\t\tif (c !== LF) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback('onHeadersEnd');\n\t\t\t\t\tstate = S.PART_DATA_START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.PART_DATA_START:\n\t\t\t\t\tstate = S.PART_DATA;\n\t\t\t\t\tmark('onPartData');\n\t\t\t\t\t// falls through\n\t\t\t\tcase S.PART_DATA:\n\t\t\t\t\tpreviousIndex = index;\n\n\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t// boyer-moore derrived algorithm to safely skip non-boundary data\n\t\t\t\t\t\ti += boundaryEnd;\n\t\t\t\t\t\twhile (i < bufferLength && !(data[i] in boundaryChars)) {\n\t\t\t\t\t\t\ti += boundaryLength;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ti -= boundaryEnd;\n\t\t\t\t\t\tc = data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index < boundary.length) {\n\t\t\t\t\t\tif (boundary[index] === c) {\n\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\tdataCallback('onPartData', true);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tindex++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index === boundary.length) {\n\t\t\t\t\t\tindex++;\n\t\t\t\t\t\tif (c === CR) {\n\t\t\t\t\t\t\t// CR = part boundary\n\t\t\t\t\t\t\tflags |= F.PART_BOUNDARY;\n\t\t\t\t\t\t} else if (c === HYPHEN) {\n\t\t\t\t\t\t\t// HYPHEN = end boundary\n\t\t\t\t\t\t\tflags |= F.LAST_BOUNDARY;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (index - 1 === boundary.length) {\n\t\t\t\t\t\tif (flags & F.PART_BOUNDARY) {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\tif (c === LF) {\n\t\t\t\t\t\t\t\t// unset the PART_BOUNDARY flag\n\t\t\t\t\t\t\t\tflags &= ~F.PART_BOUNDARY;\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tcallback('onPartBegin');\n\t\t\t\t\t\t\t\tstate = S.HEADER_FIELD_START;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (flags & F.LAST_BOUNDARY) {\n\t\t\t\t\t\t\tif (c === HYPHEN) {\n\t\t\t\t\t\t\t\tcallback('onPartEnd');\n\t\t\t\t\t\t\t\tstate = S.END;\n\t\t\t\t\t\t\t\tflags = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (index > 0) {\n\t\t\t\t\t\t// when matching a possible boundary, keep a lookbehind reference\n\t\t\t\t\t\t// in case it turns out to be a false lead\n\t\t\t\t\t\tlookbehind[index - 1] = c;\n\t\t\t\t\t} else if (previousIndex > 0) {\n\t\t\t\t\t\t// if our boundary turned out to be rubbish, the captured lookbehind\n\t\t\t\t\t\t// belongs to partData\n\t\t\t\t\t\tconst _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);\n\t\t\t\t\t\tcallback('onPartData', 0, previousIndex, _lookbehind);\n\t\t\t\t\t\tpreviousIndex = 0;\n\t\t\t\t\t\tmark('onPartData');\n\n\t\t\t\t\t\t// reconsider the current character even so it interrupted the sequence\n\t\t\t\t\t\t// it could be the beginning of a new sequence\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase S.END:\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unexpected state entered: ${state}`);\n\t\t\t}\n\t\t}\n\n\t\tdataCallback('onHeaderField');\n\t\tdataCallback('onHeaderValue');\n\t\tdataCallback('onPartData');\n\n\t\t// Update properties for the next call\n\t\tthis.index = index;\n\t\tthis.state = state;\n\t\tthis.flags = flags;\n\t}\n\n\tend() {\n\t\tif ((this.state === S.HEADER_FIELD_START && this.index === 0) ||\n\t\t\t(this.state === S.PART_DATA && this.index === this.boundary.length)) {\n\t\t\tthis.onPartEnd();\n\t\t} else if (this.state !== S.END) {\n\t\t\tthrow new Error('MultipartParser.end(): stream ended unexpectedly');\n\t\t}\n\t}\n}\n\nfunction _fileName(headerValue) {\n\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\tconst m = headerValue.match(/\\bfilename=(\"(.*?)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))($|;\\s)/i);\n\tif (!m) {\n\t\treturn;\n\t}\n\n\tconst match = m[2] || m[3] || '';\n\tlet filename = match.slice(match.lastIndexOf('\\\\') + 1);\n\tfilename = filename.replace(/%22/g, '\"');\n\tfilename = filename.replace(/&#(\\d{4});/g, (m, code) => {\n\t\treturn String.fromCharCode(code);\n\t});\n\treturn filename;\n}\n\nexport async function toFormData(Body, ct) {\n\tif (!/multipart/i.test(ct)) {\n\t\tthrow new TypeError('Failed to fetch');\n\t}\n\n\tconst m = ct.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n\n\tif (!m) {\n\t\tthrow new TypeError('no or bad content-type header, no multipart boundary');\n\t}\n\n\tconst parser = new MultipartParser(m[1] || m[2]);\n\n\tlet headerField;\n\tlet headerValue;\n\tlet entryValue;\n\tlet entryName;\n\tlet contentType;\n\tlet filename;\n\tconst entryChunks = [];\n\tconst formData = new FormData();\n\n\tconst onPartData = ui8a => {\n\t\tentryValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tconst appendToFile = ui8a => {\n\t\tentryChunks.push(ui8a);\n\t};\n\n\tconst appendFileToFormData = () => {\n\t\tconst file = new File(entryChunks, filename, {type: contentType});\n\t\tformData.append(entryName, file);\n\t};\n\n\tconst appendEntryToFormData = () => {\n\t\tformData.append(entryName, entryValue);\n\t};\n\n\tconst decoder = new TextDecoder('utf-8');\n\tdecoder.decode();\n\n\tparser.onPartBegin = function () {\n\t\tparser.onPartData = onPartData;\n\t\tparser.onPartEnd = appendEntryToFormData;\n\n\t\theaderField = '';\n\t\theaderValue = '';\n\t\tentryValue = '';\n\t\tentryName = '';\n\t\tcontentType = '';\n\t\tfilename = null;\n\t\tentryChunks.length = 0;\n\t};\n\n\tparser.onHeaderField = function (ui8a) {\n\t\theaderField += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderValue = function (ui8a) {\n\t\theaderValue += decoder.decode(ui8a, {stream: true});\n\t};\n\n\tparser.onHeaderEnd = function () {\n\t\theaderValue += decoder.decode();\n\t\theaderField = headerField.toLowerCase();\n\n\t\tif (headerField === 'content-disposition') {\n\t\t\t// matches either a quoted-string or a token (RFC 2616 section 19.5.1)\n\t\t\tconst m = headerValue.match(/\\bname=(\"([^\"]*)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))/i);\n\n\t\t\tif (m) {\n\t\t\t\tentryName = m[2] || m[3] || '';\n\t\t\t}\n\n\t\t\tfilename = _fileName(headerValue);\n\n\t\t\tif (filename) {\n\t\t\t\tparser.onPartData = appendToFile;\n\t\t\t\tparser.onPartEnd = appendFileToFormData;\n\t\t\t}\n\t\t} else if (headerField === 'content-type') {\n\t\t\tcontentType = headerValue;\n\t\t}\n\n\t\theaderValue = '';\n\t\theaderField = '';\n\t};\n\n\tfor await (const chunk of Body) {\n\t\tparser.write(chunk);\n\t}\n\n\tparser.end();\n\n\treturn formData;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/update-machine-key-tfvars/index.js b/dist/update-machine-key-tfvars/index.js index a503b32..1221e91 100644 --- a/dist/update-machine-key-tfvars/index.js +++ b/dist/update-machine-key-tfvars/index.js @@ -1,18 +1,14 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ 1314: +/***/ 314: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -33,10 +29,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(2186)); -const node_fetch_1 = __importStar(__nccwpck_require__(4429)); -const promises_1 = __importDefault(__nccwpck_require__(3977)); -const util_1 = __nccwpck_require__(3837); +const core = __importStar(__nccwpck_require__(186)); +const node_fetch_1 = __importStar(__nccwpck_require__(429)); +const promises_1 = __importDefault(__nccwpck_require__(977)); +const util_1 = __nccwpck_require__(837); const re = /tskey-(?:auth-)?(?.+)-.*/; async function run() { const token = core.getInput('token'); @@ -104,7 +100,7 @@ run(); /***/ }), -/***/ 7351: +/***/ 351: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -130,8 +126,8 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.issue = exports.issueCommand = void 0; -const os = __importStar(__nccwpck_require__(2037)); -const utils_1 = __nccwpck_require__(5278); +const os = __importStar(__nccwpck_require__(37)); +const utils_1 = __nccwpck_require__(278); /** * Commands * @@ -203,7 +199,7 @@ function escapeProperty(s) { /***/ }), -/***/ 2186: +/***/ 186: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -238,12 +234,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; -const command_1 = __nccwpck_require__(7351); +const command_1 = __nccwpck_require__(351); const file_command_1 = __nccwpck_require__(717); -const utils_1 = __nccwpck_require__(5278); -const os = __importStar(__nccwpck_require__(2037)); -const path = __importStar(__nccwpck_require__(1017)); -const oidc_utils_1 = __nccwpck_require__(8041); +const utils_1 = __nccwpck_require__(278); +const os = __importStar(__nccwpck_require__(37)); +const path = __importStar(__nccwpck_require__(17)); +const oidc_utils_1 = __nccwpck_require__(41); /** * The code to exit an action */ @@ -272,9 +268,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -292,7 +292,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -332,10 +332,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -368,12 +365,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -502,11 +495,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -525,23 +514,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -572,14 +544,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ -const fs = __importStar(__nccwpck_require__(7147)); -const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); -const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +const fs = __importStar(__nccwpck_require__(147)); +const os = __importStar(__nccwpck_require__(37)); +const utils_1 = __nccwpck_require__(278); +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -591,27 +562,12 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), -/***/ 8041: +/***/ 41: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -627,9 +583,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); -const core_1 = __nccwpck_require__(2186); +const http_client_1 = __nccwpck_require__(925); +const auth_1 = __nccwpck_require__(702); +const core_1 = __nccwpck_require__(186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { const requestOptions = { @@ -661,7 +617,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -695,362 +651,7 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - -/***/ 5278: +/***/ 278: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -1097,41 +698,28 @@ exports.toCommandProperties = toCommandProperties; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { +/***/ 702: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -var __awaiter = (this && this.__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()); - }); -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; class BasicCredentialHandler { constructor(username, password) { this.username = username; this.password = password; } prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); } // This handler cannot handle 401 - canHandleAuthentication() { + canHandleAuthentication(response) { return false; } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); + handleAuthentication(httpClient, requestInfo, objs) { + return null; } } exports.BasicCredentialHandler = BasicCredentialHandler; @@ -1142,19 +730,14 @@ class BearerCredentialHandler { // currently implements pre-authorization // TODO: support preAuth = false where it hooks on 401 prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; + options.headers['Authorization'] = 'Bearer ' + this.token; } // This handler cannot handle 401 - canHandleAuthentication() { + canHandleAuthentication(response) { return false; } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); + handleAuthentication(httpClient, requestInfo, objs) { + return null; } } exports.BearerCredentialHandler = BearerCredentialHandler; @@ -1165,66 +748,32 @@ class PersonalAccessTokenCredentialHandler { // currently implements pre-authorization // TODO: support preAuth = false where it hooks on 401 prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); } // This handler cannot handle 401 - canHandleAuthentication() { + canHandleAuthentication(response) { return false; } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); + handleAuthentication(httpClient, requestInfo, objs) { + return null; } } exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map + /***/ }), -/***/ 6255: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { +/***/ 925: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -/* eslint-disable @typescript-eslint/no-explicit-any */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__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()); - }); -}; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; -const http = __importStar(__nccwpck_require__(3685)); -const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); -const tunnel = __importStar(__nccwpck_require__(4294)); +const http = __nccwpck_require__(685); +const https = __nccwpck_require__(687); +const pm = __nccwpck_require__(443); +let tunnel; var HttpCodes; (function (HttpCodes) { HttpCodes[HttpCodes["OK"] = 200] = "OK"; @@ -1269,7 +818,7 @@ var MediaTypes; * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com */ function getProxyUrl(serverUrl) { - const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); return proxyUrl ? proxyUrl.href : ''; } exports.getProxyUrl = getProxyUrl; @@ -1302,22 +851,20 @@ class HttpClientResponse { 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()); - }); - })); + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); }); } } exports.HttpClientResponse = HttpClientResponse; function isHttps(requestUrl) { - const parsedUrl = new URL(requestUrl); + let parsedUrl = new URL(requestUrl); return parsedUrl.protocol === 'https:'; } exports.isHttps = isHttps; @@ -1360,169 +907,141 @@ class HttpClient { } } options(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); - }); + 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 || {}); - }); + 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 || {}); - }); + 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 || {}); - }); + 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 || {}); - }); + 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 || {}); - }); + 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 || {}); - }); + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); } sendStream(verb, requestUrl, stream, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request(verb, requestUrl, stream, additionalHeaders); - }); + return this.request(verb, requestUrl, stream, 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, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - 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, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.post(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - putJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.put(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); - } - patchJson(requestUrl, obj, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - const res = yield this.patch(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 info = this._prepareRequest(verb, parsedUrl, headers); - // Only perform retries on reads since writes may not be idempotent. - const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) - ? this._maxRetries + 1 - : 1; - let numTries = 0; - let response; - do { - response = yield this.requestRaw(info, data); - // Check if it's an authentication challenge - if (response && - response.message && - response.message.statusCode === HttpCodes.Unauthorized) { - let authenticationHandler; - for (const handler of this.handlers) { - if (handler.canHandleAuthentication(response)) { - authenticationHandler = handler; - break; - } - } - if (authenticationHandler) { - return authenticationHandler.handleAuthentication(this, info, data); - } - else { - // We have received an unauthorized response but have no handlers to handle it. - // Let the response return to the caller. - 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) { - // if there's no location to redirect to, we won't + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; 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.'); - } - // we need to finish reading the response before reassigning response - // which will leak the open socket. - yield response.readBody(); - // strip authorization header if redirected to a different hostname - if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { - for (const header in headers) { - // header names are case insensitive - if (header.toLowerCase() === 'authorization') { - delete headers[header]; - } - } - } - // let's make the request with the new redirectUrl - info = this._prepareRequest(verb, parsedRedirectUrl, headers); - response = yield this.requestRaw(info, data); - redirectsRemaining--; } - if (!response.message.statusCode || - !HttpResponseRetryCodes.includes(response.message.statusCode)) { - // If not a retry code, return immediately instead of retrying + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. return response; } - numTries += 1; - if (numTries < maxTries) { - yield response.readBody(); - yield this._performExponentialBackoff(numTries); + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); } - } while (numTries < maxTries); - return response; - }); + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); + } + } + return response; } /** * Needs to be called if keepAlive is set to true in request options. @@ -1539,22 +1058,14 @@ class HttpClient { * @param data */ requestRaw(info, 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) { - // If `err` is not passed, then `res` must be passed. - reject(new Error('Unknown error')); - } - else { - resolve(res); - } + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); } - this.requestRawWithCallback(info, data, callbackForResult); - }); + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); }); } /** @@ -1564,24 +1075,21 @@ class HttpClient { * @param onResult */ requestRawWithCallback(info, data, onResult) { + let socket; if (typeof data === 'string') { - if (!info.options.headers) { - info.options.headers = {}; - } info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); } let callbackCalled = false; - function handleResult(err, res) { + let handleResult = (err, res) => { if (!callbackCalled) { callbackCalled = true; onResult(err, res); } - } - const req = info.httpModule.request(info.options, (msg) => { - const res = new HttpClientResponse(msg); - handleResult(undefined, res); + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); }); - let socket; req.on('socket', sock => { socket = sock; }); @@ -1590,12 +1098,12 @@ class HttpClient { if (socket) { socket.end(); } - handleResult(new Error(`Request timeout: ${info.options.path}`)); + handleResult(new Error('Request timeout: ' + info.options.path), null); }); req.on('error', function (err) { // err has statusCode property // res should have headers - handleResult(err); + handleResult(err, null); }); if (data && typeof data === 'string') { req.write(data, 'utf8'); @@ -1616,7 +1124,7 @@ class HttpClient { * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com */ getAgent(serverUrl) { - const parsedUrl = new URL(serverUrl); + let parsedUrl = new URL(serverUrl); return this._getAgent(parsedUrl); } _prepareRequest(method, requestUrl, headers) { @@ -1640,19 +1148,21 @@ class HttpClient { info.options.agent = this._getAgent(info.parsedUrl); // gives handlers an opportunity to participate if (this.handlers) { - for (const handler of this.handlers) { + this.handlers.forEach(handler => { handler.prepareRequest(info.options); - } + }); } return info; } _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); if (this.requestOptions && this.requestOptions.headers) { - return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); } return lowercaseKeys(headers || {}); } _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); let clientHeader; if (this.requestOptions && this.requestOptions.headers) { clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; @@ -1661,8 +1171,8 @@ class HttpClient { } _getAgent(parsedUrl) { let agent; - const proxyUrl = pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; if (this._keepAlive && useProxy) { agent = this._proxyAgent; } @@ -1670,22 +1180,29 @@ class HttpClient { agent = this._agent; } // if agent is already assigned use that agent. - if (agent) { + if (!!agent) { return agent; } const usingSsl = parsedUrl.protocol === 'https:'; let maxSockets = 100; - if (this.requestOptions) { + if (!!this.requestOptions) { maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; } - // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. - if (proxyUrl && proxyUrl.hostname) { + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(294); + } const agentOptions = { - maxSockets, + maxSockets: maxSockets, keepAlive: this._keepAlive, - proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { - proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` - })), { host: proxyUrl.hostname, port: proxyUrl.port }) + proxy: { + ...((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + }), + host: proxyUrl.hostname, + port: proxyUrl.port + } }; let tunnelAgent; const overHttps = proxyUrl.protocol === 'https:'; @@ -1700,7 +1217,7 @@ class HttpClient { } // if reusing agent across request and tunneling agent isn't assigned create a new agent if (this._keepAlive && !agent) { - const options = { keepAlive: this._keepAlive, maxSockets }; + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; agent = usingSsl ? new https.Agent(options) : new http.Agent(options); this._agent = agent; } @@ -1719,117 +1236,109 @@ class HttpClient { return agent; } _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: {} - }; - // not found leads to null obj returned - if (statusCode === HttpCodes.NotFound) { - resolve(response); - } - // get the result from the body - function dateTimeDeserializer(key, value) { - if (typeof value === 'string') { - const a = new Date(value); - if (!isNaN(a.valueOf())) { - return a; - } + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); } - 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; + else { + obj = JSON.parse(contents); } - response.headers = res.message.headers; + response.result = obj; } - catch (err) { - // Invalid resource (contents not json); leaving result obj null + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; } - // note that 3xx redirects are handled by the http layer. - if (statusCode > 299) { - let msg; - // if exception/error in body, attempt to get better error - if (obj && obj.message) { - msg = obj.message; - } - else if (contents && contents.length > 0) { - // it may be the case that the exception is in the body message as string - msg = contents; - } - else { - msg = `Failed request: (${statusCode})`; - } - const err = new HttpClientError(msg, statusCode); - err.result = response.result; - reject(err); + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; } else { - resolve(response); + msg = 'Failed request: (' + statusCode + ')'; } - })); + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } }); } } exports.HttpClient = HttpClient; -const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); -//# sourceMappingURL=index.js.map + /***/ }), -/***/ 9835: +/***/ 443: /***/ ((__unused_webpack_module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.checkBypass = exports.getProxyUrl = void 0; function getProxyUrl(reqUrl) { - const usingSsl = reqUrl.protocol === 'https:'; + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; if (checkBypass(reqUrl)) { - return undefined; + return proxyUrl; } - 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) { - return new URL(proxyVar); + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; } else { - return undefined; + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); } + return proxyUrl; } exports.getProxyUrl = getProxyUrl; function checkBypass(reqUrl) { if (!reqUrl.hostname) { return false; } - const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; if (!noProxy) { return false; } @@ -1845,12 +1354,12 @@ function checkBypass(reqUrl) { reqPort = 443; } // Format the request hostname and hostname with port - const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; if (typeof reqPort === 'number') { upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); } // Compare request host against noproxy - for (const upperNoProxyItem of noProxy + for (let upperNoProxyItem of noProxy .split(',') .map(x => x.trim().toUpperCase()) .filter(x => x)) { @@ -1861,18 +1370,18 @@ function checkBypass(reqUrl) { return false; } exports.checkBypass = checkBypass; -//# sourceMappingURL=proxy.js.map + /***/ }), -/***/ 7760: +/***/ 760: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { /*! node-domexception. MIT License. Jimmy Wärting */ if (!globalThis.DOMException) { try { - const { MessageChannel } = __nccwpck_require__(1267), + const { MessageChannel } = __nccwpck_require__(267), port = new MessageChannel().port1, ab = new ArrayBuffer() port.postMessage(ab, [ab, ab]) @@ -1888,933 +1397,287 @@ module.exports = globalThis.DOMException /***/ }), -/***/ 4294: +/***/ 294: /***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -module.exports = __nccwpck_require__(4219); - - -/***/ }), - -/***/ 4219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.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 || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.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) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - - // If we are under maxSockets create a new one. - 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'); - } - - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - debug('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) { - debug('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; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - - function onError(cause) { - connectReq.removeAllListeners(); - - debug('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) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; - -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: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} - - -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} - -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] !== undefined) { - target[k] = overrides[k]; - } - } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = 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 { - debug = function() {}; -} -exports.debug = debug; // for test - - -/***/ }), - -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); - -var _version = _interopRequireDefault(__nccwpck_require__(1595)); - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('md5').update(bytes).digest(); -} - -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} - -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; - -/***/ }), - -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate - -let poolPtr = rnds8Pool.length; - -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); - - poolPtr = 0; - } - - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} - -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('sha1').update(bytes).digest(); -} - -var _default = sha1; -exports["default"] = _default; - -/***/ }), - -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; -} - -var _default = stringify; -exports["default"] = _default; - -/***/ }), - -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; - -let _clockseq; // Previous uuid creation time - - -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); - - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - - - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) - - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression - - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested - - - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` - - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` - - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - - b[i++] = clockseq & 0xff; // `node` - - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf || (0, _stringify.default)(b); -} - -var _default = v1; -exports["default"] = _default; - -/***/ }), - -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; - -/***/ }), - -/***/ 5998: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} - -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +module.exports = __nccwpck_require__(219); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ }), -function v4(options, buf, offset) { - options = options || {}; +/***/ 219: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` +"use strict"; - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided +var net = __nccwpck_require__(808); +var tls = __nccwpck_require__(404); +var http = __nccwpck_require__(685); +var https = __nccwpck_require__(687); +var events = __nccwpck_require__(361); +var assert = __nccwpck_require__(491); +var util = __nccwpck_require__(837); - if (buf) { - offset = offset || 0; - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; - return buf; - } - return (0, _stringify.default)(rnds); +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; } -var _default = v4; -exports["default"] = _default; +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -/***/ }), +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -"use strict"; +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); -var _v = _interopRequireDefault(__nccwpck_require__(5998)); +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + // If we are under maxSockets create a new one. + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; + 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); + } + }); +}; -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); -"use strict"; + 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'); + } + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } -var _regex = _interopRequireDefault(__nccwpck_require__(814)); + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} + if (res.statusCode !== 200) { + debug('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) { + debug('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; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } -var _default = validate; -exports["default"] = _default; + function onError(cause) { + connectReq.removeAllListeners(); -/***/ }), + debug('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); + } +}; -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); -"use strict"; + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; +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: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); +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] !== undefined) { + target[k] = overrides[k]; + } + } + } } + return target; +} + - return parseInt(uuid.substr(14, 1), 16); +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = 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 { + debug = function() {}; } +exports.debug = debug; // for test -var _default = version; -exports["default"] = _default; /***/ }), -/***/ 1452: +/***/ 452: /***/ (function(__unused_webpack_module, exports) { /** @@ -7033,7 +5896,7 @@ exports["default"] = _default; /***/ }), -/***/ 9491: +/***/ 491: /***/ ((module) => { "use strict"; @@ -7041,7 +5904,7 @@ module.exports = require("assert"); /***/ }), -/***/ 4300: +/***/ 300: /***/ ((module) => { "use strict"; @@ -7049,15 +5912,7 @@ module.exports = require("buffer"); /***/ }), -/***/ 6113: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto"); - -/***/ }), - -/***/ 2361: +/***/ 361: /***/ ((module) => { "use strict"; @@ -7065,7 +5920,7 @@ module.exports = require("events"); /***/ }), -/***/ 7147: +/***/ 147: /***/ ((module) => { "use strict"; @@ -7073,7 +5928,7 @@ module.exports = require("fs"); /***/ }), -/***/ 3685: +/***/ 685: /***/ ((module) => { "use strict"; @@ -7081,7 +5936,7 @@ module.exports = require("http"); /***/ }), -/***/ 5687: +/***/ 687: /***/ ((module) => { "use strict"; @@ -7089,7 +5944,7 @@ module.exports = require("https"); /***/ }), -/***/ 1808: +/***/ 808: /***/ ((module) => { "use strict"; @@ -7097,7 +5952,7 @@ module.exports = require("net"); /***/ }), -/***/ 3977: +/***/ 977: /***/ ((module) => { "use strict"; @@ -7105,7 +5960,7 @@ module.exports = require("node:fs/promises"); /***/ }), -/***/ 7742: +/***/ 742: /***/ ((module) => { "use strict"; @@ -7113,7 +5968,7 @@ module.exports = require("node:process"); /***/ }), -/***/ 2477: +/***/ 477: /***/ ((module) => { "use strict"; @@ -7121,7 +5976,7 @@ module.exports = require("node:stream/web"); /***/ }), -/***/ 2037: +/***/ 37: /***/ ((module) => { "use strict"; @@ -7129,7 +5984,7 @@ module.exports = require("os"); /***/ }), -/***/ 1017: +/***/ 17: /***/ ((module) => { "use strict"; @@ -7137,7 +5992,7 @@ module.exports = require("path"); /***/ }), -/***/ 4404: +/***/ 404: /***/ ((module) => { "use strict"; @@ -7145,7 +6000,7 @@ module.exports = require("tls"); /***/ }), -/***/ 3837: +/***/ 837: /***/ ((module) => { "use strict"; @@ -7153,7 +6008,7 @@ module.exports = require("util"); /***/ }), -/***/ 1267: +/***/ 267: /***/ ((module) => { "use strict"; @@ -7161,7 +6016,7 @@ module.exports = require("worker_threads"); /***/ }), -/***/ 8572: +/***/ 572: /***/ ((__unused_webpack_module, __unused_webpack_exports, __nccwpck_require__) => { /* c8 ignore start */ @@ -7173,11 +6028,11 @@ if (!globalThis.ReadableStream) { // and it's preferred over the polyfilled version. So we also // suppress the warning that gets emitted by NodeJS for using it. try { - const process = __nccwpck_require__(7742) + const process = __nccwpck_require__(742) const { emitWarning } = process try { process.emitWarning = () => {} - Object.assign(globalThis, __nccwpck_require__(2477)) + Object.assign(globalThis, __nccwpck_require__(477)) process.emitWarning = emitWarning } catch (error) { process.emitWarning = emitWarning @@ -7185,14 +6040,14 @@ if (!globalThis.ReadableStream) { } } catch (error) { // fallback to polyfill implementation - Object.assign(globalThis, __nccwpck_require__(1452)) + Object.assign(globalThis, __nccwpck_require__(452)) } } try { // Don't use node: prefix for this, require+node: is not supported until node v14.14 // Only `import()` can use prefix in 12.20 and later - const { Blob } = __nccwpck_require__(4300) + const { Blob } = __nccwpck_require__(300) if (Blob && !Blob.prototype.stream) { Blob.prototype.stream = function name (params) { let position = 0 @@ -7219,7 +6074,7 @@ try { /***/ }), -/***/ 3213: +/***/ 213: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => { "use strict"; @@ -7227,7 +6082,7 @@ try { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* unused harmony export File */ -/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(1410); +/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(410); const _File = class File extends _index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z { @@ -7281,7 +6136,7 @@ const File = _File /***/ }), -/***/ 2777: +/***/ 777: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => { "use strict"; @@ -7303,11 +6158,11 @@ const external_node_fs_namespaceObject = require("node:fs"); ;// CONCATENATED MODULE: external "node:path" const external_node_path_namespaceObject = require("node:path"); // EXTERNAL MODULE: ./node_modules/node-domexception/index.js -var node_domexception = __nccwpck_require__(7760); +var node_domexception = __nccwpck_require__(760); // EXTERNAL MODULE: ./node_modules/fetch-blob/file.js -var file = __nccwpck_require__(3213); +var file = __nccwpck_require__(213); // EXTERNAL MODULE: ./node_modules/fetch-blob/index.js -var fetch_blob = __nccwpck_require__(1410); +var fetch_blob = __nccwpck_require__(410); ;// CONCATENATED MODULE: ./node_modules/fetch-blob/from.js @@ -7413,7 +6268,7 @@ class BlobDataItem { /***/ }), -/***/ 1410: +/***/ 410: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => { "use strict"; @@ -7421,7 +6276,7 @@ class BlobDataItem { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* unused harmony export Blob */ -/* harmony import */ var _streams_cjs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(8572); +/* harmony import */ var _streams_cjs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(572); /*! fetch-blob. MIT License. Jimmy Wärting */ // TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x) @@ -7676,7 +6531,7 @@ const Blob = _Blob /***/ }), -/***/ 8010: +/***/ 10: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => { "use strict"; @@ -7685,8 +6540,8 @@ const Blob = _Blob /* harmony export */ "au": () => (/* binding */ formDataToBlob) /* harmony export */ }); /* unused harmony export File */ -/* harmony import */ var fetch_blob__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(1410); -/* harmony import */ var fetch_blob_file_js__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(3213); +/* harmony import */ var fetch_blob__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(410); +/* harmony import */ var fetch_blob_file_js__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(213); /*! formdata-polyfill. MIT License. Jimmy Wärting */ @@ -7731,7 +6586,7 @@ return new B(c,{type:"multipart/form-data; boundary="+b})} /***/ }), -/***/ 4429: +/***/ 429: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __nccwpck_require__) => { "use strict"; @@ -7795,7 +6650,7 @@ function dataUriToBuffer(uri) { if (meta[i] === 'base64') { base64 = true; } - else if (meta[i]) { + else { typeFull += `;${meta[i]}`; if (meta[i].indexOf('charset=') === 0) { charset = meta[i].substring(8); @@ -7823,9 +6678,9 @@ function dataUriToBuffer(uri) { ;// CONCATENATED MODULE: external "node:util" const external_node_util_namespaceObject = require("node:util"); // EXTERNAL MODULE: ./node_modules/fetch-blob/index.js -var fetch_blob = __nccwpck_require__(1410); +var fetch_blob = __nccwpck_require__(410); // EXTERNAL MODULE: ./node_modules/formdata-polyfill/esm.min.js -var esm_min = __nccwpck_require__(8010); +var esm_min = __nccwpck_require__(10); ;// CONCATENATED MODULE: ./node_modules/node-fetch/src/errors/base.js class FetchBaseError extends Error { constructor(message, type) { @@ -8086,7 +6941,7 @@ class Body { return formData; } - const {toFormData} = await __nccwpck_require__.e(/* import() */ 37).then(__nccwpck_require__.bind(__nccwpck_require__, 4037)); + const {toFormData} = await __nccwpck_require__.e(/* import() */ 37).then(__nccwpck_require__.bind(__nccwpck_require__, 152)); return toFormData(this.body, ct); } @@ -8770,25 +7625,6 @@ class Response extends Body { return response; } - static json(data = undefined, init = {}) { - const body = JSON.stringify(data); - - if (body === undefined) { - throw new TypeError('data is not JSON serializable'); - } - - const headers = new Headers(init && init.headers); - - if (!headers.has('content-type')) { - headers.set('content-type', 'application/json'); - } - - return new Response(body, { - ...init, - headers - }); - } - get [Symbol.toStringTag]() { return 'Response'; } @@ -9451,6 +8287,10 @@ const getNodeRequestOptions = request => { agent = agent(parsedURL); } + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + // HTTP-network fetch step 4.2 // chunked encoding is handled by Node.js @@ -9488,7 +8328,7 @@ class AbortError extends FetchBaseError { } // EXTERNAL MODULE: ./node_modules/fetch-blob/from.js + 2 modules -var from = __nccwpck_require__(2777); +var from = __nccwpck_require__(777); ;// CONCATENATED MODULE: ./node_modules/node-fetch/src/index.js /** * Index.js @@ -10041,7 +8881,7 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) { /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module is referenced by other modules so it can't be inlined -/******/ var __webpack_exports__ = __nccwpck_require__(1314); +/******/ var __webpack_exports__ = __nccwpck_require__(314); /******/ module.exports = __webpack_exports__; /******/ /******/ })() diff --git a/dist/update-machine-key-tfvars/index.js.map b/dist/update-machine-key-tfvars/index.js.map index dae55ec..48342e0 100644 --- a/dist/update-machine-key-tfvars/index.js.map +++ b/dist/update-machine-key-tfvars/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpnIA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChDA;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;;ACAA;;ACAA;;ACAA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC/JA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACRA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/update-machine-key-tfvars.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/node-domexception/index.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/web-streams-polyfill/dist/ponyfill.es2018.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"buffer\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"node:fs/promises\"","../webpack://typescript-action/external node-commonjs \"node:process\"","../webpack://typescript-action/external node-commonjs \"node:stream/web\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"worker_threads\"","../webpack://typescript-action/./node_modules/fetch-blob/streams.cjs","../webpack://typescript-action/./node_modules/fetch-blob/file.js","../webpack://typescript-action/external node-commonjs \"node:fs\"","../webpack://typescript-action/external node-commonjs \"node:path\"","../webpack://typescript-action/./node_modules/fetch-blob/from.js","../webpack://typescript-action/./node_modules/fetch-blob/index.js","../webpack://typescript-action/./node_modules/formdata-polyfill/esm.min.js","../webpack://typescript-action/external node-commonjs \"node:http\"","../webpack://typescript-action/external node-commonjs \"node:https\"","../webpack://typescript-action/external node-commonjs \"node:zlib\"","../webpack://typescript-action/external node-commonjs \"node:stream\"","../webpack://typescript-action/external node-commonjs \"node:buffer\"","../webpack://typescript-action/./node_modules/data-uri-to-buffer/dist/index.js","../webpack://typescript-action/external node-commonjs \"node:util\"","../webpack://typescript-action/./node_modules/node-fetch/src/errors/base.js","../webpack://typescript-action/./node_modules/node-fetch/src/errors/fetch-error.js","../webpack://typescript-action/./node_modules/node-fetch/src/utils/is.js","../webpack://typescript-action/./node_modules/node-fetch/src/body.js","../webpack://typescript-action/./node_modules/node-fetch/src/headers.js","../webpack://typescript-action/./node_modules/node-fetch/src/utils/is-redirect.js","../webpack://typescript-action/./node_modules/node-fetch/src/response.js","../webpack://typescript-action/external node-commonjs \"node:url\"","../webpack://typescript-action/./node_modules/node-fetch/src/utils/get-search.js","../webpack://typescript-action/external node-commonjs \"node:net\"","../webpack://typescript-action/./node_modules/node-fetch/src/utils/referrer.js","../webpack://typescript-action/./node_modules/node-fetch/src/request.js","../webpack://typescript-action/./node_modules/node-fetch/src/errors/abort-error.js","../webpack://typescript-action/./node_modules/node-fetch/src/index.js","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/define property getters","../webpack://typescript-action/webpack/runtime/ensure chunk","../webpack://typescript-action/webpack/runtime/get javascript chunk filename","../webpack://typescript-action/webpack/runtime/hasOwnProperty shorthand","../webpack://typescript-action/webpack/runtime/make namespace object","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/runtime/require chunk loading","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst node_fetch_1 = __importStar(require(\"node-fetch\"));\nconst promises_1 = __importDefault(require(\"node:fs/promises\"));\nconst util_1 = require(\"util\");\nconst re = /tskey-(?:auth-)?(?.+)-.*/;\nasync function run() {\n const token = core.getInput('token');\n const tsAPIKey = core.getInput('ts-api-key');\n const tailnet = core.getInput('tailnet');\n const filePath = core.getInput('tfvars-path');\n const jsonKey = core.getInput('tfvars-key');\n const maximumKeyAgeInDays = core.getInput('maximum-key-age-in-days');\n const maximumKeyAgeInMillis = parseInt(maximumKeyAgeInDays) * 24 * 3600 * 1000;\n const newKeyURL = `https://api.tailscale.com/api/v2/tailnet/${tailnet}/keys`;\n const headers = new node_fetch_1.Headers({\n Authorization: 'Basic ' + Buffer.from(tsAPIKey + ':').toString('base64')\n });\n core.info(`Attempting to rotate any key older than ${maximumKeyAgeInDays} days`);\n try {\n const tfvarsContents = await promises_1.default.readFile(filePath, 'utf8');\n var tfvarsJSON = JSON.parse(tfvarsContents);\n const currentMachineKey = tfvarsJSON[jsonKey];\n const matches = currentMachineKey.match(re);\n if (matches === null) {\n core.setFailed(`Current machine key is not in a valid format`);\n return;\n }\n const currentKeyID = matches[1];\n const currentKeyURL = `${newKeyURL}/${currentKeyID}`;\n const currentKeyResponse = await (0, node_fetch_1.default)(currentKeyURL, { headers: headers });\n if (!currentKeyResponse.ok) {\n core.setFailed(`Unable to fetch info about key ${currentKeyID}`);\n return;\n }\n const currentKeyData = (await currentKeyResponse.json());\n const keyCreatedAt = currentKeyData.created;\n const keyAgeInMillis = Date.now() - Date.parse(keyCreatedAt);\n // If we're not about to expire, log and continue\n if (keyAgeInMillis < maximumKeyAgeInMillis) {\n core.info(`Key is not about to expire (last updated ${keyCreatedAt})`);\n return;\n }\n core.info(`Key is about to expire (last updated ${keyCreatedAt}), creating and uploading a new key.`);\n // Reuse the existing keys capabilities\n const newKeyCapabilities = { capabilities: currentKeyData.capabilities };\n const newKeyResponse = await (0, node_fetch_1.default)(newKeyURL, {\n headers: headers,\n method: 'POST',\n body: JSON.stringify(newKeyCapabilities)\n });\n if (!newKeyResponse.ok) {\n core.setFailed(`Unable to create a new Tailscale machine key`);\n return;\n }\n const newKeyData = (await newKeyResponse.json());\n core.info(`Generated a new key, ID: ${newKeyData.id}`);\n tfvarsJSON[jsonKey] = newKeyData.key;\n // Write stringified json back to the input file with pretty printing\n promises_1.default.writeFile(filePath, JSON.stringify(tfvarsJSON, null, 2));\n core.info(`Stored new key in ${filePath}: ${jsonKey}`);\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","/*! node-domexception. MIT License. Jimmy Wärting */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","/**\n * web-streams-polyfill v3.2.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// \n const SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n description => `Symbol(${description})`;\n\n /// \n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n const globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n const rethrowAssertionErrorRejection = noop;\n\n const originalPromise = Promise;\n const originalPromiseThen = Promise.prototype.then;\n const originalPromiseResolve = Promise.resolve.bind(originalPromise);\n const originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n const queueMicrotask = (() => {\n const globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n const resolvedPromise = promiseResolvedWith(undefined);\n return (fn) => PerformPromiseThen(resolvedPromise, fn);\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n const QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n class SimpleQueue {\n constructor() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n get length() {\n return this._size;\n }\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n push(element) {\n const oldBack = this._back;\n let newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n }\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n shift() { // must not be called on an empty queue\n const oldFront = this._front;\n let newFront = oldFront;\n const oldCursor = this._cursor;\n let newCursor = oldCursor + 1;\n const elements = oldFront._elements;\n const element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n }\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n forEach(callback) {\n let i = this._cursor;\n let node = this._front;\n let elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n }\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n peek() { // must not be called on an empty queue\n const front = this._front;\n const cursor = this._cursor;\n return front._elements[cursor];\n }\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n const stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise((resolve, reject) => {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n const AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n const ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n const CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n const PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n const NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n const MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(`${context} is not a function.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(`Parameter ${position} is required in '${context}'.`);\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(`${field} is required in '${context}'.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n const lowerBound = 0;\n const upperBound = Number.MAX_SAFE_INTEGER;\n let x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(`${context} is not a finite number`);\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(`${context} is not a ReadableStream.`);\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamDefaultReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: () => resolvePromise({ value: undefined, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);\n }\n\n /// \n /* eslint-disable @typescript-eslint/no-empty-function */\n const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype);\n\n /// \n class ReadableStreamAsyncIteratorImpl {\n constructor(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n next() {\n const nextSteps = () => this._nextSteps();\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n }\n return(value) {\n const returnSteps = () => this._returnSteps(value);\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n }\n _nextSteps() {\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => {\n this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(() => resolvePromise({ value: chunk, done: false }));\n },\n _closeSteps: () => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: reason => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n }\n _returnSteps(value) {\n if (this._isFinished) {\n return Promise.resolve({ value, done: true });\n }\n this._isFinished = true;\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n const result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, () => ({ value, done: true }));\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value, done: true });\n }\n }\n const ReadableStreamAsyncIteratorPrototype = {\n next() {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return(value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);\n }\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n const NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n const length = end - begin;\n const slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n const pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value, size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n const pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n class ReadableStreamBYOBRequest {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get view() {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n }\n respond(bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n respondWithNewView(view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableByteStreamController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get byobRequest() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);\n }\n ReadableByteStreamControllerClose(this);\n }\n enqueue(chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(`chunk's buffer must have non-zero byteLength`);\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n const entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n const autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n let buffer;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n }\n }\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n let done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n const bytesFilled = pullIntoDescriptor.bytesFilled;\n const elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer, byteOffset, byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n const elementSize = pullIntoDescriptor.elementSize;\n const currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n const maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n let totalBytesToCopyRemaining = maxBytesToCopy;\n let ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n const queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n const headOfQueue = queue.peek();\n const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n const pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n const stream = controller._controlledReadableByteStream;\n let elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n const ctor = view.constructor;\n // try {\n const buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n const stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n const remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n const descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n const buffer = chunk.buffer;\n const byteOffset = chunk.byteOffset;\n const byteLength = chunk.byteLength;\n const transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n const viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n const controller = Object.create(ReadableByteStreamController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = () => underlyingByteSource.start(controller);\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = () => underlyingByteSource.pull(controller);\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingByteSource.cancel(reason);\n }\n const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamBYOBReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readIntoRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: chunk => resolvePromise({ value: chunk, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n const { highWaterMark } = strategy;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n const { size } = strategy;\n if (!size) {\n return () => 1;\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n const size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`)\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return chunk => convertUnrestrictedDouble(fn(chunk));\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n const abort = original === null || original === void 0 ? void 0 : original.abort;\n const close = original === null || original === void 0 ? void 0 : original.close;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n const write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),\n type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return () => promiseCall(fn, original, []);\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(`${context} is not a WritableStream.`);\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n const supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n class WritableStream {\n constructor(rawUnderlyingSink = {}, rawStrategy = {}) {\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n const type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get locked() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n }\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n abort(reason = undefined) {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n close() {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n }\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n getWriter() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n const controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n let wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n const promise = newPromise((resolve, reject) => {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));\n }\n const promise = newPromise((resolve, reject) => {\n const closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n const writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n const promise = newPromise((resolve, reject) => {\n const writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n const state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n const controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n const writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n const storedError = stream._storedError;\n stream._writeRequests.forEach(writeRequest => {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, () => {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, (reason) => {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n const state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n const writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n class WritableStreamDefaultWriter {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n const state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n const storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get desiredSize() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get ready() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n abort(reason = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n close() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n releaseLock() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n }\n write(chunk = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n const stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n const stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n const stream = writer._ownerWritableStream;\n const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n const stream = writer._ownerWritableStream;\n const controller = stream._writableStreamController;\n const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n const state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n const promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n const closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n class WritableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get abortReason() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n }\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get signal() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n }\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n error(e = undefined) {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n const state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [AbortSteps](reason) {\n const result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [ErrorSteps]() {\n ResetQueue(this);\n }\n }\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n const startResult = startAlgorithm();\n const startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, () => {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, r => {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(WritableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let writeAlgorithm = () => promiseResolvedWith(undefined);\n let closeAlgorithm = () => promiseResolvedWith(undefined);\n let abortAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSink.start !== undefined) {\n startAlgorithm = () => underlyingSink.start(controller);\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = chunk => underlyingSink.write(chunk, controller);\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = () => underlyingSink.close();\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = reason => underlyingSink.abort(reason);\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n const stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n const stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n const state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n const value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n const sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, () => {\n WritableStreamFinishInFlightClose(stream);\n }, reason => {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n const sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, () => {\n WritableStreamFinishInFlightWrite(stream);\n const state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, reason => {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n const stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise((resolve, reject) => {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise((resolve, reject) => {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// \n const NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// \n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n const ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n const reader = AcquireReadableStreamDefaultReader(source);\n const writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n let shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n let currentWrite = promiseResolvedWith(undefined);\n return newPromise((resolve, reject) => {\n let abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = () => {\n const error = new DOMException$1('Aborted', 'AbortError');\n const actions = [];\n if (!preventAbort) {\n actions.push(() => {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(() => {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise((resolveLoop, rejectLoop) => {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, () => {\n return newPromise((resolveRead, rejectRead) => {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: chunk => {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: () => resolveRead(true),\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, storedError => {\n if (!preventAbort) {\n shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, storedError => {\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, () => {\n if (!preventClose) {\n shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);\n }\n else {\n shutdown(true, destClosed);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n const oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined);\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError));\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n enqueue(chunk = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n const chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n }\n }\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n let chunkSize;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n const stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n const state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSource.start !== undefined) {\n startAlgorithm = () => underlyingSource.start(controller);\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = () => underlyingSource.pull(controller);\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingSource.cancel(reason);\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgain = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgain = false;\n const chunk1 = chunk;\n const chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, (r) => {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n let reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgainForBranch1 = false;\n let readAgainForBranch2 = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, r => {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const chunk1 = chunk;\n let chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n const byobBranch = forBranch2 ? branch2 : branch1;\n const otherBranch = forBranch2 ? branch1 : branch2;\n const readIntoRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n let clonedChunk;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: chunk => {\n reading = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n const original = source;\n const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n const pull = original === null || original === void 0 ? void 0 : original.pull;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),\n type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`)\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertReadableStreamType(type, context) {\n type = `${type}`;\n if (type !== 'bytes') {\n throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n const mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = `${mode}`;\n if (mode !== 'byob') {\n throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n const signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, `${context} has member 'signal' that`);\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(`${context} is not an AbortSignal.`);\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n const readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, `${context} has member 'readable' that`);\n const writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, `${context} has member 'writable' that`);\n return { readable, writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n class ReadableStream {\n constructor(rawUnderlyingSource = {}, rawStrategy = {}) {\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n const highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get locked() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n }\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n cancel(reason = undefined) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n getReader(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n const options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n }\n pipeThrough(rawTransform, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n const transform = convertReadableWritablePair(rawTransform, 'First parameter');\n const options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n }\n pipeTo(destination, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));\n }\n let options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n }\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n tee() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n const branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n }\n values(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n const options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n }\n }\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n const reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n const byteLengthSizeFunction = (chunk) => {\n return chunk.byteLength;\n };\n try {\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n class ByteLengthQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get size() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n }\n }\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n const countSizeFunction = () => {\n return 1;\n };\n try {\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n class CountQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get size() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n }\n }\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n const flush = original === null || original === void 0 ? void 0 : original.flush;\n const readableType = original === null || original === void 0 ? void 0 : original.readableType;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const transform = original === null || original === void 0 ? void 0 : original.transform;\n const writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),\n readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, `${context} has member 'start' that`),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),\n writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n class TransformStream {\n constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n const transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n let startPromise_resolve;\n const startPromise = newPromise(resolve => {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n /**\n * The readable side of the transform stream.\n */\n get readable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n /**\n * The writable side of the transform stream.\n */\n get writable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(resolve => {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n class TransformStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get desiredSize() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n const readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n enqueue(chunk = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n error(reason = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n }\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n terminate() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n }\n }\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n const controller = Object.create(TransformStreamDefaultController.prototype);\n let transformAlgorithm = (chunk) => {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n let flushAlgorithm = () => promiseResolvedWith(undefined);\n if (transformer.transform !== undefined) {\n transformAlgorithm = chunk => transformer.transform(chunk, controller);\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = () => transformer.flush(controller);\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n const transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, r => {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n const error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n const controller = stream._transformStreamController;\n if (stream._backpressure) {\n const backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, () => {\n const writable = stream._writable;\n const state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n const readable = stream._readable;\n const controller = stream._transformStreamController;\n const flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, () => {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, r => {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.es2018.js.map\n","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream/web\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"tls\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n","import Blob from './index.js'\n\nconst _File = class File extends Blob {\n #lastModified = 0\n #name = ''\n\n /**\n * @param {*[]} fileBits\n * @param {string} fileName\n * @param {{lastModified?: number, type?: string}} options\n */// @ts-ignore\n constructor (fileBits, fileName, options = {}) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`)\n }\n super(fileBits, options)\n\n if (options === null) options = {}\n\n // Simulate WebIDL type casting for NaN value in lastModified option.\n const lastModified = options.lastModified === undefined ? Date.now() : Number(options.lastModified)\n if (!Number.isNaN(lastModified)) {\n this.#lastModified = lastModified\n }\n\n this.#name = String(fileName)\n }\n\n get name () {\n return this.#name\n }\n\n get lastModified () {\n return this.#lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n\n static [Symbol.hasInstance] (object) {\n return !!object && object instanceof Blob &&\n /^(File)$/.test(object[Symbol.toStringTag])\n }\n}\n\n/** @type {typeof globalThis.File} */// @ts-ignore\nexport const File = _File\nexport default File\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","import { statSync, createReadStream, promises as fs } from 'node:fs'\nimport { basename } from 'node:path'\nimport DOMException from 'node-domexception'\n\nimport File from './file.js'\nimport Blob from './index.js'\n\nconst { stat } = fs\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst blobFromSync = (path, type) => fromBlob(statSync(path), path, type)\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst blobFrom = (path, type) => stat(path).then(stat => fromBlob(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst fileFrom = (path, type) => stat(path).then(stat => fromFile(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst fileFromSync = (path, type) => fromFile(statSync(path), path, type)\n\n// @ts-ignore\nconst fromBlob = (stat, path, type = '') => new Blob([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], { type })\n\n// @ts-ignore\nconst fromFile = (stat, path, type = '') => new File([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], basename(path), { type, lastModified: stat.mtimeMs })\n\n/**\n * This is a blob backed up by a file on the disk\n * with minium requirement. Its wrapped around a Blob as a blobPart\n * so you have no direct access to this.\n *\n * @private\n */\nclass BlobDataItem {\n #path\n #start\n\n constructor (options) {\n this.#path = options.path\n this.#start = options.start\n this.size = options.size\n this.lastModified = options.lastModified\n }\n\n /**\n * Slicing arguments is first validated and formatted\n * to not be out of range by Blob.prototype.slice\n */\n slice (start, end) {\n return new BlobDataItem({\n path: this.#path,\n lastModified: this.lastModified,\n size: end - start,\n start: this.#start + start\n })\n }\n\n async * stream () {\n const { mtimeMs } = await stat(this.#path)\n if (mtimeMs > this.lastModified) {\n throw new DOMException('The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.', 'NotReadableError')\n }\n yield * createReadStream(this.#path, {\n start: this.#start,\n end: this.#start + this.size - 1\n })\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n}\n\nexport default blobFromSync\nexport { File, Blob, blobFrom, blobFromSync, fileFrom, fileFromSync }\n","/*! fetch-blob. MIT License. Jimmy Wärting */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n","/*! formdata-polyfill. MIT License. Jimmy Wärting */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.lengthtypeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;cc[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(? {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record | Iterable | Iterable>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence> or record)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response} A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tstatic json(data = undefined, init = {}) {\n\t\tconst body = JSON.stringify(data);\n\n\t\tif (body === undefined) {\n\t\t\tthrow new TypeError('data is not JSON serializable');\n\t\t}\n\n\t\tconst headers = new Headers(init && init.headers);\n\n\t\tif (!headers.has('content-type')) {\n\t\t\theaders.set('content-type', 'application/json');\n\t\t}\n\n\t\treturn new Response(body, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:net\");","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions. We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t// origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t// referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t// policy considerations in the interests of minimizing data leakage. For example, the user\n\t// agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t// string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t// and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t// string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// > and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param {*} [options_] - Fetch options\n * @return {Promise}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t179: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(1314);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpnIA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChDA;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;;ACAA;;ACAA;;ACAA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5IA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACRA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":[".././lib/update-machine-key-tfvars.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/node-domexception/index.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/web-streams-polyfill/dist/ponyfill.es2018.js","../external node-commonjs \"assert\"","../external node-commonjs \"buffer\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"node:fs/promises\"","../external node-commonjs \"node:process\"","../external node-commonjs \"node:stream/web\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"tls\"","../external node-commonjs \"util\"","../external node-commonjs \"worker_threads\"",".././node_modules/fetch-blob/streams.cjs",".././node_modules/fetch-blob/file.js","../external node-commonjs \"node:fs\"","../external node-commonjs \"node:path\"",".././node_modules/fetch-blob/from.js",".././node_modules/fetch-blob/index.js",".././node_modules/formdata-polyfill/esm.min.js","../external node-commonjs \"node:http\"","../external node-commonjs \"node:https\"","../external node-commonjs \"node:zlib\"","../external node-commonjs \"node:stream\"","../external node-commonjs \"node:buffer\"",".././node_modules/data-uri-to-buffer/dist/index.js","../external node-commonjs \"node:util\"",".././node_modules/node-fetch/src/errors/base.js",".././node_modules/node-fetch/src/errors/fetch-error.js",".././node_modules/node-fetch/src/utils/is.js",".././node_modules/node-fetch/src/body.js",".././node_modules/node-fetch/src/headers.js",".././node_modules/node-fetch/src/utils/is-redirect.js",".././node_modules/node-fetch/src/response.js","../external node-commonjs \"node:url\"",".././node_modules/node-fetch/src/utils/get-search.js","../external node-commonjs \"node:net\"",".././node_modules/node-fetch/src/utils/referrer.js",".././node_modules/node-fetch/src/request.js",".././node_modules/node-fetch/src/errors/abort-error.js",".././node_modules/node-fetch/src/index.js","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/compat","../webpack/runtime/require chunk loading","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst node_fetch_1 = __importStar(require(\"node-fetch\"));\nconst promises_1 = __importDefault(require(\"node:fs/promises\"));\nconst util_1 = require(\"util\");\nconst re = /tskey-(?:auth-)?(?.+)-.*/;\nasync function run() {\n const token = core.getInput('token');\n const tsAPIKey = core.getInput('ts-api-key');\n const tailnet = core.getInput('tailnet');\n const filePath = core.getInput('tfvars-path');\n const jsonKey = core.getInput('tfvars-key');\n const maximumKeyAgeInDays = core.getInput('maximum-key-age-in-days');\n const maximumKeyAgeInMillis = parseInt(maximumKeyAgeInDays) * 24 * 3600 * 1000;\n const newKeyURL = `https://api.tailscale.com/api/v2/tailnet/${tailnet}/keys`;\n const headers = new node_fetch_1.Headers({\n Authorization: 'Basic ' + Buffer.from(tsAPIKey + ':').toString('base64')\n });\n core.info(`Attempting to rotate any key older than ${maximumKeyAgeInDays} days`);\n try {\n const tfvarsContents = await promises_1.default.readFile(filePath, 'utf8');\n var tfvarsJSON = JSON.parse(tfvarsContents);\n const currentMachineKey = tfvarsJSON[jsonKey];\n const matches = currentMachineKey.match(re);\n if (matches === null) {\n core.setFailed(`Current machine key is not in a valid format`);\n return;\n }\n const currentKeyID = matches[1];\n const currentKeyURL = `${newKeyURL}/${currentKeyID}`;\n const currentKeyResponse = await (0, node_fetch_1.default)(currentKeyURL, { headers: headers });\n if (!currentKeyResponse.ok) {\n core.setFailed(`Unable to fetch info about key ${currentKeyID}`);\n return;\n }\n const currentKeyData = (await currentKeyResponse.json());\n const keyCreatedAt = currentKeyData.created;\n const keyAgeInMillis = Date.now() - Date.parse(keyCreatedAt);\n // If we're not about to expire, log and continue\n if (keyAgeInMillis < maximumKeyAgeInMillis) {\n core.info(`Key is not about to expire (last updated ${keyCreatedAt})`);\n return;\n }\n core.info(`Key is about to expire (last updated ${keyCreatedAt}), creating and uploading a new key.`);\n // Reuse the existing keys capabilities\n const newKeyCapabilities = { capabilities: currentKeyData.capabilities };\n const newKeyResponse = await (0, node_fetch_1.default)(newKeyURL, {\n headers: headers,\n method: 'POST',\n body: JSON.stringify(newKeyCapabilities)\n });\n if (!newKeyResponse.ok) {\n core.setFailed(`Unable to create a new Tailscale machine key`);\n return;\n }\n const newKeyData = (await newKeyResponse.json());\n core.info(`Generated a new key, ID: ${newKeyData.id}`);\n tfvarsJSON[jsonKey] = newKeyData.key;\n // Write stringified json back to the input file with pretty printing\n promises_1.default.writeFile(filePath, JSON.stringify(tfvarsJSON, null, 2));\n core.info(`Stored new key in ${filePath}: ${jsonKey}`);\n }\n catch (e) {\n core.debug(`error: ${(0, util_1.inspect)(e)}`);\n throw e;\n }\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","/*! node-domexception. MIT License. Jimmy Wärting */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","/**\n * web-streams-polyfill v3.2.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// \n const SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n description => `Symbol(${description})`;\n\n /// \n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n const globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n const rethrowAssertionErrorRejection = noop;\n\n const originalPromise = Promise;\n const originalPromiseThen = Promise.prototype.then;\n const originalPromiseResolve = Promise.resolve.bind(originalPromise);\n const originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n const queueMicrotask = (() => {\n const globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n const resolvedPromise = promiseResolvedWith(undefined);\n return (fn) => PerformPromiseThen(resolvedPromise, fn);\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n const QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n class SimpleQueue {\n constructor() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n get length() {\n return this._size;\n }\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n push(element) {\n const oldBack = this._back;\n let newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n }\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n shift() { // must not be called on an empty queue\n const oldFront = this._front;\n let newFront = oldFront;\n const oldCursor = this._cursor;\n let newCursor = oldCursor + 1;\n const elements = oldFront._elements;\n const element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n }\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n forEach(callback) {\n let i = this._cursor;\n let node = this._front;\n let elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n }\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n peek() { // must not be called on an empty queue\n const front = this._front;\n const cursor = this._cursor;\n return front._elements[cursor];\n }\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n const stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise((resolve, reject) => {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n const AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n const ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n const CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n const PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n const NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n const MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(`${context} is not a function.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(`Parameter ${position} is required in '${context}'.`);\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(`${field} is required in '${context}'.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n const lowerBound = 0;\n const upperBound = Number.MAX_SAFE_INTEGER;\n let x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(`${context} is not a finite number`);\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(`${context} is not a ReadableStream.`);\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamDefaultReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: () => resolvePromise({ value: undefined, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);\n }\n\n /// \n /* eslint-disable @typescript-eslint/no-empty-function */\n const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype);\n\n /// \n class ReadableStreamAsyncIteratorImpl {\n constructor(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n next() {\n const nextSteps = () => this._nextSteps();\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n }\n return(value) {\n const returnSteps = () => this._returnSteps(value);\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n }\n _nextSteps() {\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => {\n this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(() => resolvePromise({ value: chunk, done: false }));\n },\n _closeSteps: () => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: reason => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n }\n _returnSteps(value) {\n if (this._isFinished) {\n return Promise.resolve({ value, done: true });\n }\n this._isFinished = true;\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n const result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, () => ({ value, done: true }));\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value, done: true });\n }\n }\n const ReadableStreamAsyncIteratorPrototype = {\n next() {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return(value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);\n }\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n const NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n const length = end - begin;\n const slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n const pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value, size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n const pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n class ReadableStreamBYOBRequest {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get view() {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n }\n respond(bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n respondWithNewView(view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableByteStreamController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get byobRequest() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);\n }\n ReadableByteStreamControllerClose(this);\n }\n enqueue(chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(`chunk's buffer must have non-zero byteLength`);\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n const entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n const autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n let buffer;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n }\n }\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n let done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n const bytesFilled = pullIntoDescriptor.bytesFilled;\n const elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer, byteOffset, byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n const elementSize = pullIntoDescriptor.elementSize;\n const currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n const maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n let totalBytesToCopyRemaining = maxBytesToCopy;\n let ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n const queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n const headOfQueue = queue.peek();\n const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n const pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n const stream = controller._controlledReadableByteStream;\n let elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n const ctor = view.constructor;\n // try {\n const buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n const stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n const remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n const descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n const buffer = chunk.buffer;\n const byteOffset = chunk.byteOffset;\n const byteLength = chunk.byteLength;\n const transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n const viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n const controller = Object.create(ReadableByteStreamController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = () => underlyingByteSource.start(controller);\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = () => underlyingByteSource.pull(controller);\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingByteSource.cancel(reason);\n }\n const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamBYOBReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readIntoRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: chunk => resolvePromise({ value: chunk, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n const { highWaterMark } = strategy;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n const { size } = strategy;\n if (!size) {\n return () => 1;\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n const size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`)\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return chunk => convertUnrestrictedDouble(fn(chunk));\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n const abort = original === null || original === void 0 ? void 0 : original.abort;\n const close = original === null || original === void 0 ? void 0 : original.close;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n const write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),\n type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return () => promiseCall(fn, original, []);\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(`${context} is not a WritableStream.`);\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n const supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n class WritableStream {\n constructor(rawUnderlyingSink = {}, rawStrategy = {}) {\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n const type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get locked() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n }\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n abort(reason = undefined) {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n close() {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n }\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n getWriter() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n const controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n let wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n const promise = newPromise((resolve, reject) => {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));\n }\n const promise = newPromise((resolve, reject) => {\n const closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n const writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n const promise = newPromise((resolve, reject) => {\n const writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n const state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n const controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n const writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n const storedError = stream._storedError;\n stream._writeRequests.forEach(writeRequest => {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, () => {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, (reason) => {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n const state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n const writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n class WritableStreamDefaultWriter {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n const state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n const storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get desiredSize() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get ready() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n abort(reason = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n close() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n releaseLock() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n }\n write(chunk = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n const stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n const stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n const stream = writer._ownerWritableStream;\n const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n const stream = writer._ownerWritableStream;\n const controller = stream._writableStreamController;\n const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n const state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n const promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n const closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n class WritableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get abortReason() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n }\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get signal() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n }\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n error(e = undefined) {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n const state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [AbortSteps](reason) {\n const result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [ErrorSteps]() {\n ResetQueue(this);\n }\n }\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n const startResult = startAlgorithm();\n const startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, () => {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, r => {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(WritableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let writeAlgorithm = () => promiseResolvedWith(undefined);\n let closeAlgorithm = () => promiseResolvedWith(undefined);\n let abortAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSink.start !== undefined) {\n startAlgorithm = () => underlyingSink.start(controller);\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = chunk => underlyingSink.write(chunk, controller);\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = () => underlyingSink.close();\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = reason => underlyingSink.abort(reason);\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n const stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n const stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n const state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n const value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n const sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, () => {\n WritableStreamFinishInFlightClose(stream);\n }, reason => {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n const sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, () => {\n WritableStreamFinishInFlightWrite(stream);\n const state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, reason => {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n const stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise((resolve, reject) => {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise((resolve, reject) => {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// \n const NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// \n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n const ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n const reader = AcquireReadableStreamDefaultReader(source);\n const writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n let shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n let currentWrite = promiseResolvedWith(undefined);\n return newPromise((resolve, reject) => {\n let abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = () => {\n const error = new DOMException$1('Aborted', 'AbortError');\n const actions = [];\n if (!preventAbort) {\n actions.push(() => {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(() => {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise((resolveLoop, rejectLoop) => {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, () => {\n return newPromise((resolveRead, rejectRead) => {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: chunk => {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: () => resolveRead(true),\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, storedError => {\n if (!preventAbort) {\n shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, storedError => {\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, () => {\n if (!preventClose) {\n shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);\n }\n else {\n shutdown(true, destClosed);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n const oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined);\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError));\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n enqueue(chunk = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n const chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n }\n }\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n let chunkSize;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n const stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n const state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSource.start !== undefined) {\n startAlgorithm = () => underlyingSource.start(controller);\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = () => underlyingSource.pull(controller);\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingSource.cancel(reason);\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgain = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgain = false;\n const chunk1 = chunk;\n const chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, (r) => {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n let reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgainForBranch1 = false;\n let readAgainForBranch2 = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, r => {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const chunk1 = chunk;\n let chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n const byobBranch = forBranch2 ? branch2 : branch1;\n const otherBranch = forBranch2 ? branch1 : branch2;\n const readIntoRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n let clonedChunk;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: chunk => {\n reading = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n const original = source;\n const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n const pull = original === null || original === void 0 ? void 0 : original.pull;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),\n type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`)\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertReadableStreamType(type, context) {\n type = `${type}`;\n if (type !== 'bytes') {\n throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n const mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = `${mode}`;\n if (mode !== 'byob') {\n throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n const signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, `${context} has member 'signal' that`);\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(`${context} is not an AbortSignal.`);\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n const readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, `${context} has member 'readable' that`);\n const writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, `${context} has member 'writable' that`);\n return { readable, writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n class ReadableStream {\n constructor(rawUnderlyingSource = {}, rawStrategy = {}) {\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n const highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get locked() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n }\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n cancel(reason = undefined) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n getReader(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n const options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n }\n pipeThrough(rawTransform, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n const transform = convertReadableWritablePair(rawTransform, 'First parameter');\n const options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n }\n pipeTo(destination, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));\n }\n let options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n }\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n tee() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n const branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n }\n values(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n const options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n }\n }\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n const reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n const byteLengthSizeFunction = (chunk) => {\n return chunk.byteLength;\n };\n try {\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n class ByteLengthQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get size() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n }\n }\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n const countSizeFunction = () => {\n return 1;\n };\n try {\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n class CountQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get size() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n }\n }\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n const flush = original === null || original === void 0 ? void 0 : original.flush;\n const readableType = original === null || original === void 0 ? void 0 : original.readableType;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const transform = original === null || original === void 0 ? void 0 : original.transform;\n const writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),\n readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, `${context} has member 'start' that`),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),\n writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n class TransformStream {\n constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n const transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n let startPromise_resolve;\n const startPromise = newPromise(resolve => {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n /**\n * The readable side of the transform stream.\n */\n get readable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n /**\n * The writable side of the transform stream.\n */\n get writable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(resolve => {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n class TransformStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get desiredSize() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n const readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n enqueue(chunk = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n error(reason = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n }\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n terminate() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n }\n }\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n const controller = Object.create(TransformStreamDefaultController.prototype);\n let transformAlgorithm = (chunk) => {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n let flushAlgorithm = () => promiseResolvedWith(undefined);\n if (transformer.transform !== undefined) {\n transformAlgorithm = chunk => transformer.transform(chunk, controller);\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = () => transformer.flush(controller);\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n const transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, r => {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n const error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n const controller = stream._transformStreamController;\n if (stream._backpressure) {\n const backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, () => {\n const writable = stream._writable;\n const state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n const readable = stream._readable;\n const controller = stream._transformStreamController;\n const flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, () => {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, r => {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.es2018.js.map\n","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:fs/promises\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream/web\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"tls\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n","import Blob from './index.js'\n\nconst _File = class File extends Blob {\n #lastModified = 0\n #name = ''\n\n /**\n * @param {*[]} fileBits\n * @param {string} fileName\n * @param {{lastModified?: number, type?: string}} options\n */// @ts-ignore\n constructor (fileBits, fileName, options = {}) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`)\n }\n super(fileBits, options)\n\n if (options === null) options = {}\n\n // Simulate WebIDL type casting for NaN value in lastModified option.\n const lastModified = options.lastModified === undefined ? Date.now() : Number(options.lastModified)\n if (!Number.isNaN(lastModified)) {\n this.#lastModified = lastModified\n }\n\n this.#name = String(fileName)\n }\n\n get name () {\n return this.#name\n }\n\n get lastModified () {\n return this.#lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n\n static [Symbol.hasInstance] (object) {\n return !!object && object instanceof Blob &&\n /^(File)$/.test(object[Symbol.toStringTag])\n }\n}\n\n/** @type {typeof globalThis.File} */// @ts-ignore\nexport const File = _File\nexport default File\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","import { statSync, createReadStream, promises as fs } from 'node:fs'\nimport { basename } from 'node:path'\nimport DOMException from 'node-domexception'\n\nimport File from './file.js'\nimport Blob from './index.js'\n\nconst { stat } = fs\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst blobFromSync = (path, type) => fromBlob(statSync(path), path, type)\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst blobFrom = (path, type) => stat(path).then(stat => fromBlob(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst fileFrom = (path, type) => stat(path).then(stat => fromFile(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst fileFromSync = (path, type) => fromFile(statSync(path), path, type)\n\n// @ts-ignore\nconst fromBlob = (stat, path, type = '') => new Blob([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], { type })\n\n// @ts-ignore\nconst fromFile = (stat, path, type = '') => new File([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], basename(path), { type, lastModified: stat.mtimeMs })\n\n/**\n * This is a blob backed up by a file on the disk\n * with minium requirement. Its wrapped around a Blob as a blobPart\n * so you have no direct access to this.\n *\n * @private\n */\nclass BlobDataItem {\n #path\n #start\n\n constructor (options) {\n this.#path = options.path\n this.#start = options.start\n this.size = options.size\n this.lastModified = options.lastModified\n }\n\n /**\n * Slicing arguments is first validated and formatted\n * to not be out of range by Blob.prototype.slice\n */\n slice (start, end) {\n return new BlobDataItem({\n path: this.#path,\n lastModified: this.lastModified,\n size: end - start,\n start: this.#start + start\n })\n }\n\n async * stream () {\n const { mtimeMs } = await stat(this.#path)\n if (mtimeMs > this.lastModified) {\n throw new DOMException('The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.', 'NotReadableError')\n }\n yield * createReadStream(this.#path, {\n start: this.#start,\n end: this.#start + this.size - 1\n })\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n}\n\nexport default blobFromSync\nexport { File, Blob, blobFrom, blobFromSync, fileFrom, fileFromSync }\n","/*! fetch-blob. MIT License. Jimmy Wärting */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n","/*! formdata-polyfill. MIT License. Jimmy Wärting */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.lengthtypeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;cc[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(? {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record | Iterable | Iterable>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence> or record)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response} A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:net\");","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions. We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t// origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t// referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t// policy considerations in the interests of minimizing data leakage. For example, the user\n\t// agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t// string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t// and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t// string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// > and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param {*} [options_] - Fetch options\n * @return {Promise}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t179: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(314);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/weekly-contributions/index.js b/dist/weekly-contributions/index.js index 08b514b..e5f5396 100644 --- a/dist/weekly-contributions/index.js +++ b/dist/weekly-contributions/index.js @@ -8,11 +8,7 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -49,13 +45,13 @@ async function main() { const daysInReport = parseInt(daysInReportStr); const cutOffDate = new Date(date); cutOffDate.setDate(cutOffDate.getDate() - daysInReport); + // 100 is the max page limit, we'll need to paginate this if it starts failing again const { data } = await octokit.rest.repos.listForOrg({ - org: "KittyCAD", - per_page: 100, + org: 'KittyCAD', + sort: 'pushed', + per_page: 100 }); - const repos = data - .map(({ name }) => name) - .filter(name => !name.startsWith('_')); + const repos = data.map(({ name }) => name).filter(name => !name.startsWith('_')); const prGroupedByAuthor = {}; const PRsToGetCommentsFor = []; const chunkSize = 25; @@ -570,9 +566,13 @@ function exportVariable(name, val) { process.env[name] = convertedVal; const filePath = process.env['GITHUB_ENV'] || ''; if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); } - command_1.issueCommand('set-env', { name }, convertedVal); } exports.exportVariable = exportVariable; /** @@ -590,7 +590,7 @@ exports.setSecret = setSecret; function addPath(inputPath) { const filePath = process.env['GITHUB_PATH'] || ''; if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); + file_command_1.issueCommand('PATH', inputPath); } else { command_1.issueCommand('add-path', {}, inputPath); @@ -630,10 +630,7 @@ function getMultilineInput(name, options) { const inputs = getInput(name, options) .split('\n') .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); + return inputs; } exports.getMultilineInput = getMultilineInput; /** @@ -666,12 +663,8 @@ exports.getBooleanInput = getBooleanInput; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('set-output', { name }, value); } exports.setOutput = setOutput; /** @@ -800,11 +793,7 @@ exports.group = group; */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); + command_1.issueCommand('save-state', { name }, value); } exports.saveState = saveState; /** @@ -823,23 +812,6 @@ function getIDToken(aud) { }); } exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); //# sourceMappingURL=core.js.map /***/ }), @@ -870,14 +842,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +exports.issueCommand = void 0; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { +function issueCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; if (!filePath) { throw new Error(`Unable to find environment variable for file command ${command}`); @@ -889,22 +860,7 @@ function issueFileCommand(command, message) { encoding: 'utf8' }); } -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; +exports.issueCommand = issueCommand; //# sourceMappingURL=file-command.js.map /***/ }), @@ -925,8 +881,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); +const http_client_1 = __nccwpck_require__(9925); +const auth_1 = __nccwpck_require__(3702); const core_1 = __nccwpck_require__(2186); class OidcClient { static createHttpClient(allowRetry = true, maxRetry = 10) { @@ -959,7 +915,7 @@ class OidcClient { .catch(error => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n - Error Message: ${error.message}`); + Error Message: ${error.result.message}`); }); const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { @@ -993,361 +949,6 @@ exports.OidcClient = OidcClient; /***/ }), -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - 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 __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.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 __awaiter(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 __awaiter(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(os_1.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(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - /***/ 5278: /***/ ((__unused_webpack_module, exports) => { @@ -1526,7 +1127,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(6255)); +const httpClient = __importStar(__nccwpck_require__(6341)); function getAuthString(token, options) { if (!token && !options.auth) { throw new Error('Parameter token or opts.auth is required'); @@ -1611,95 +1212,7 @@ exports.getOctokitOptions = getOctokitOptions; /***/ }), -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -var __awaiter = (this && this.__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()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); - } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map - -/***/ }), - -/***/ 6255: +/***/ 6341: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; @@ -1737,7 +1250,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; const http = __importStar(__nccwpck_require__(3685)); const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); +const pm = __importStar(__nccwpck_require__(3466)); const tunnel = __importStar(__nccwpck_require__(4294)); var HttpCodes; (function (HttpCodes) { @@ -2311,7 +1824,7 @@ const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCa /***/ }), -/***/ 9835: +/***/ 3466: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -2379,652 +1892,746 @@ exports.checkBypass = checkBypass; /***/ }), -/***/ 334: +/***/ 3702: /***/ ((__unused_webpack_module, exports) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -const REGEX_IS_INSTALLATION = /^ghs_/; -const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token: token, - tokenType - }; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + + Buffer.from(this.username + ':' + this.password).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -/** - * Prefix token for usage in the Authorization header - * - * @param token OAuth token or JSON Web Token - */ -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - - return `token ${token}`; +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = 'Bearer ' + this.token; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + options.headers['Authorization'] = + 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64'); + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } } - -const createTokenAuth = function createTokenAuth(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) - }); -}; - -exports.createTokenAuth = createTokenAuth; -//# sourceMappingURL=index.js.map +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; /***/ }), -/***/ 6762: +/***/ 9925: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -var universalUserAgent = __nccwpck_require__(5030); -var beforeAfterHook = __nccwpck_require__(3682); -var request = __nccwpck_require__(6234); -var graphql = __nccwpck_require__(8467); -var authToken = __nccwpck_require__(334); - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; +const http = __nccwpck_require__(3685); +const https = __nccwpck_require__(5687); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; } - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - - var target = _objectWithoutPropertiesLoose(source, excluded); - - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); } - } - - return target; } - -const VERSION = "3.6.0"; - -const _excluded = ["authStrategy"]; -class Octokit { - constructor(options = {}) { - const hook = new beforeAfterHook.Collection(); - const requestDefaults = { - baseUrl: request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; // prepend default user agent with `options.userAgent` if set - - requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); - - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; } - - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); } - - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, 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 = userAgent; + 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; + } + } } - - this.request = request.request.defaults(requestDefaults); - this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign({ - debug: () => {}, - info: () => {}, - warn: console.warn.bind(console), - error: console.error.bind(console) - }, options.log); - this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance - // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. - // (2) If only `options.auth` is set, use the default token authentication strategy. - // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. - // TODO: type `options.auth` based on `options.authStrategy`. - - if (!options.authStrategy) { - if (!options.auth) { - // (1) - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - // (2) - const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { - authStrategy - } = options, - otherOptions = _objectWithoutProperties(options, _excluded); - - const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ - - hook.wrap("request", auth.hook); - this.auth = auth; - } // apply plugins - // https://stackoverflow.com/a/16345172 - - - const classConstructor = this.constructor; - classConstructor.plugins.forEach(plugin => { - Object.assign(this, plugin(this, options)); - }); - } - - 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; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - - - static plugin(...newPlugins) { - var _a; - - const currentPlugins = this.plugins; - const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); - return NewOctokit; - } - -} -Octokit.VERSION = VERSION; -Octokit.plugins = []; - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 9440: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var isPlainObject = __nccwpck_require__(3287); -var universalUserAgent = __nccwpck_require__(5030); - -function lowercaseKeys(object) { - if (!object) { - return {}; - } - - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach(key => { - if (isPlainObject.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] - }); + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); } - }); - return result; -} - -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === undefined) { - delete obj[key]; + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); } - } - - 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); - } // lowercase header names before merging with defaults to avoid duplicates - - - options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging - - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten - - 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("+"); + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); } - - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -const urlVariableRegex = /\{[^}]+\}/g; - -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} - -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - - if (!matches) { - return []; - } - - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -function omit(object, keysToOmit) { - return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { - obj[key] = object[key]; - return obj; - }, {}); -} - -// Based on https://github.com/bramstein/url-template, licensed under BSD -// TODO: create separate package. -// -// Copyright (c) 2012-2014, Bram Stein -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/* istanbul ignore file */ -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, "]"); + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); } - - 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 !== undefined && 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 (value) { - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await 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 + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); } - } else { - const tmp = []; - - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - tmp.push(encodeValue(operator, value)); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let 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.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); } - }); - } - - 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 response; } - } - - return result; -} - -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} - -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - return 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; + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); } - - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); + this._disposed = true; } - }); -} - -function parse(options) { - // https://fetch.spec.whatwg.org/#methods - let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible - - 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"]); // extract variable names from URL to calculate remaining variables later - - 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) { - // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw - headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); } - - if (options.mediaType.previews.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + 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(); + } } - } // for GET/HEAD requests, set URL query parameters from remaining parameters - // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters - - - 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; - } else { - headers["content-length"] = 0; - } + /** + * 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) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); } - } // default content-type for JSON if body is set - + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((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 reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); + } +} +exports.HttpClient = HttpClient; - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. - // fetch does not allow to set `content-length` header, but we can set body to an empty string +/***/ }), - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } // Only return body/request keys if present +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { +"use strict"; - return Object.assign({ - method, - url, - headers - }, typeof body !== "undefined" ? { - body - } : null, options.request ? { - request: options.request - } : null); +Object.defineProperty(exports, "__esModule", ({ value: true })); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; + } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; } +exports.checkBypass = checkBypass; -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); + +/***/ }), + +/***/ 334: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; } -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS = merge(oldDefaults, newDefaults); - const endpoint = endpointWithDefaults.bind(null, DEFAULTS); - return Object.assign(endpoint, { - DEFAULTS, - defaults: withDefaults.bind(null, DEFAULTS), - merge: merge.bind(null, DEFAULTS), - parse - }); +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; } -const VERSION = "6.0.12"; +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} -const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. -// So we use RequestParameters and add method as additional required property. +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } -const DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "", - previews: [] + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); } -}; -const endpoint = withDefaults(null, DEFAULTS); + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; -exports.endpoint = endpoint; +exports.createTokenAuth = createTokenAuth; //# sourceMappingURL=index.js.map /***/ }), -/***/ 8467: +/***/ 6762: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; @@ -3032,686 +2639,1268 @@ exports.endpoint = endpoint; Object.defineProperty(exports, "__esModule", ({ value: true })); -var request = __nccwpck_require__(6234); var universalUserAgent = __nccwpck_require__(5030); +var beforeAfterHook = __nccwpck_require__(3682); +var request = __nccwpck_require__(6234); +var graphql = __nccwpck_require__(8467); +var authToken = __nccwpck_require__(334); -const VERSION = "4.8.0"; +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; } -class GraphqlResponseError extends Error { - constructor(request, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; - this.errors = response.errors; - this.data = response.data; // Maintains proper stack trace (only available on V8) + var target = _objectWithoutPropertiesLoose(source, excluded); - /* istanbul ignore next */ + var key, i; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; } } + return target; } -const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; -const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request, 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`)); - } +const VERSION = "3.6.0"; - 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 _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; } - } - 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 (options.previews) { + requestDefaults.mediaType.previews = options.previews; } - if (!result.variables) { - result.variables = {}; + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix - // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. - const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); + + const auth = 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)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); } - return request(requestOptions).then(response => { - if (response.data.errors) { - const headers = {}; + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } + if (typeof defaults === "function") { + super(defaults(options)); + return; + } - throw new GraphqlResponseError(requestOptions, headers, response.data); - } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } - return response.data.data; - }); -} + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ -function withDefaults(request$1, newDefaults) { - const newRequest = request$1.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; + static plugin(...newPlugins) { + var _a; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: request.request.endpoint - }); -} + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } -const graphql$1 = withDefaults(request.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); } +Octokit.VERSION = VERSION; +Octokit.plugins = []; -exports.GraphqlResponseError = GraphqlResponseError; -exports.graphql = graphql$1; -exports.withCustomRequest = withCustomRequest; +exports.Octokit = Octokit; //# sourceMappingURL=index.js.map /***/ }), -/***/ 4193: -/***/ ((__unused_webpack_module, exports) => { +/***/ 9440: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; Object.defineProperty(exports, "__esModule", ({ value: true })); -const VERSION = "2.17.0"; +var isPlainObject = __nccwpck_require__(3287); +var universalUserAgent = __nccwpck_require__(5030); -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function lowercaseKeys(object) { + if (!object) { + return {}; + } - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.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; +} - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; } } - return target; + return obj; } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); } else { - obj[key] = value; - } + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates - return obj; -} -/** - * Some “list” response that can be paginated have a different response structure - * - * They have a `total_count` key in the response (search also has `incomplete_results`, - * /installation/repositories also has `repository_selection`), as well as a key with - * the list of the items which name varies from endpoint to endpoint. - * - * Octokit normalizes these responses so that paginated results are always returned following - * the same structure. One challenge is that if the list response has only one page, no Link - * header is provided, so this header alone is not sufficient to check wether a response is - * paginated or not. - * - * We check if a "total_count" key is present in the response data, but also make sure that - * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would - * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref - */ -function normalizePaginatedListResponse(response) { - // endpoints can respond with 204 if repository is empty - if (!response.data) { - return _objectSpread2(_objectSpread2({}, response), {}, { - data: [] - }); + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging + + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way - // to retrieve the same information. + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; + if (names.length === 0) { + return url; } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } - response.data.total_count = totalCount; - return response; + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); } -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); // `response.headers.link` format: - // '; rel="next", ; rel="last"' - // sets `url` to undefined if "next" URL is not present or `link` header is not set - - url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; - return { - value: normalizedResponse - }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } +const urlVariableRegex = /\{[^}]+\}/g; - }) - }; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); } -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = undefined; +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; } - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); } -function gather(octokit, results, iterator, mapFn) { - return iterator.next().then(result => { - if (result.done) { - return results; - } +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} - let earlyExit = false; +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - function done() { - earlyExit = true; +/* istanbul ignore file */ +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, "]"); } - results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); - - if (earlyExit) { - return results; - } + return part; + }).join(""); +} - return gather(octokit, results, iterator, mapFn); +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); }); } -const composePaginateRest = Object.assign(paginate, { - iterator -}); - -const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); + if (key) { + return encodeUnreserved(key) + "=" + value; } else { - return false; + return value; } } -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ +function isDefined(value) { + return value !== undefined && value !== null; +} -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; } -paginateRest.VERSION = VERSION; -exports.composePaginateRest = composePaginateRest; -exports.isPaginatingEndpoint = isPaginatingEndpoint; -exports.paginateRest = paginateRest; -exports.paginatingEndpoints = paginatingEndpoints; -//# sourceMappingURL=index.js.map +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)); + } -/***/ 3044: -/***/ ((__unused_webpack_module, exports) => { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; -"use strict"; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } 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(""); + } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + return result; +} -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; - if (enumerableOnly) { - symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; + 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); } + }); +} - keys.push.apply(keys, symbols); +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + 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"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; } - return keys; -} + 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); -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } } - } + } // default content-type for JSON if body is set - return target; + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] } +}; - return obj; +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8467: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var request = __nccwpck_require__(6234); +var universalUserAgent = __nccwpck_require__(5030); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); } -const Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], - addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], - addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], - approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], - cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], - createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - 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"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], - getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], - 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}"], - getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], - getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], - getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - 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}"], - 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}"], - 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], - 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"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - 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"], - 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}"], - 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"], - setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], - 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"], - setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], - setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] - }, - 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"], - 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}"] +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, 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; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(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 withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` }, - 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"], - 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"], - getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], - getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], - 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"] - }, - 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: { - deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], - 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}"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - 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"] - }], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], - createForAuthenticatedUser: ["POST /user/codespaces"], - 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}"], - deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], - deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], - exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], - getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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" + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4193: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const VERSION = "2.17.0"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + 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; + 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); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: normalizedResponse + }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } } - }], - listInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], - repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], - setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.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, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3044: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], + addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + 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"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_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"], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], + getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], + 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}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + 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}"], + 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}"], + 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 /repositories/{repository_id}/environments/{environment_name}/secrets"], + 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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + 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"], + 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}"], + 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"], + setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], + 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"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], + setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] }, - 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}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_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"], + 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"], + 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"], + getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], + getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], + 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"] + }, + 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: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + 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}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + 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"] + }], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], + createForAuthenticatedUser: ["POST /user/codespaces"], + 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}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], + exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], + getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_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"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], + setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/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}"] + }, + 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}"], + 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}"], listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], @@ -8450,1429 +8639,783 @@ URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { } else if (c === 0x0) { this.parseError = true; } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); - } - - return true; -}; - -function serializeURL(url, excludeFragment) { - let output = url.scheme + ":"; - if (url.host !== null) { - output += "//"; - - if (url.username !== "" || url.password !== "") { - output += url.username; - if (url.password !== "") { - output += ":" + url.password; - } - output += "@"; - } - - output += serializeHost(url.host); - - if (url.port !== null) { - output += ":" + url.port; - } - } else if (url.host === null && url.scheme === "file") { - output += "//"; - } - - if (url.cannotBeABaseURL) { - output += url.path[0]; - } else { - for (const string of url.path) { - output += "/" + string; - } - } - - if (url.query !== null) { - output += "?" + url.query; - } - - if (!excludeFragment && url.fragment !== null) { - output += "#" + url.fragment; - } - - return output; -} - -function serializeOrigin(tuple) { - let result = tuple.scheme + "://"; - result += serializeHost(tuple.host); - - if (tuple.port !== null) { - result += ":" + tuple.port; - } - - return result; -} - -module.exports.serializeURL = serializeURL; - -module.exports.serializeURLOrigin = function (url) { - // https://url.spec.whatwg.org/#concept-url-origin - switch (url.scheme) { - case "blob": - try { - return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); - } catch (e) { - // serializing an opaque origin returns "null" - return "null"; - } - case "ftp": - case "gopher": - case "http": - case "https": - case "ws": - case "wss": - return serializeOrigin({ - scheme: url.scheme, - host: url.host, - port: url.port - }); - case "file": - // spec says "exercise to the reader", chrome says "file://" - return "file://"; - default: - // serializing an opaque origin returns "null" - return "null"; - } -}; - -module.exports.basicURLParse = function (input, options) { - if (options === undefined) { - options = {}; - } - - const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); - if (usm.failure) { - return "failure"; - } - - return usm.url; -}; - -module.exports.setTheUsername = function (url, username) { - url.username = ""; - const decoded = punycode.ucs2.decode(username); - for (let i = 0; i < decoded.length; ++i) { - url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.setThePassword = function (url, password) { - url.password = ""; - const decoded = punycode.ucs2.decode(password); - for (let i = 0; i < decoded.length; ++i) { - url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.serializeHost = serializeHost; - -module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; - -module.exports.serializeInteger = function (integer) { - return String(integer); -}; - -module.exports.parseURL = function (input, options) { - if (options === undefined) { - options = {}; - } - - // We don't handle blobs, so this just delegates: - return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); -}; - - -/***/ }), - -/***/ 3387: -/***/ ((module) => { - -"use strict"; - - -module.exports.mixin = function mixin(target, source) { - const keys = Object.getOwnPropertyNames(source); - for (let i = 0; i < keys.length; ++i) { - Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); - } -}; - -module.exports.wrapperSymbol = Symbol("wrapper"); -module.exports.implSymbol = Symbol("impl"); - -module.exports.wrapperForImpl = function (impl) { - return impl[module.exports.wrapperSymbol]; -}; - -module.exports.implForWrapper = function (wrapper) { - return wrapper[module.exports.implSymbol]; -}; - - - -/***/ }), - -/***/ 3682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(4670) -var addHook = __nccwpck_require__(5549) -var removeHook = __nccwpck_require__(6819) - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -var bind = Function.bind -var bindable = bind.bind(bind) - -function bindApi (hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) - hook.api = { remove: removeHookRef } - hook.remove = removeHookRef - - ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { - var args = name ? [state, kind, name] : [state, kind] - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) - }) -} - -function HookSingular () { - var singularHookName = 'h' - var singularHookState = { - registry: {} - } - var singularHook = register.bind(null, singularHookState, singularHookName) - bindApi(singularHook, singularHookState, singularHookName) - return singularHook -} - -function HookCollection () { - var state = { - registry: {} - } - - var hook = register.bind(null, state) - bindApi(hook, state) - - return hook -} - -var collectionHookDeprecationMessageDisplayed = false -function Hook () { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') - collectionHookDeprecationMessageDisplayed = true - } - return HookCollection() -} - -Hook.Singular = HookSingular.bind() -Hook.Collection = HookCollection.bind() - -module.exports = Hook -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook -module.exports.Singular = Hook.Singular -module.exports.Collection = Hook.Collection - - -/***/ }), - -/***/ 5549: -/***/ ((module) => { - -module.exports = addHook; - -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - hook = function (method, options) { - var result; - return Promise.resolve() - .then(method.bind(null, options)) - .then(function (result_) { - result = result_; - return orig(result, options); - }) - .then(function () { - return result; - }); - }; - } - - if (kind === "error") { - hook = function (method, options) { - return Promise.resolve() - .then(method.bind(null, options)) - .catch(function (error) { - return orig(error, options); - }); - }; - } - - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} - - -/***/ }), - -/***/ 4670: -/***/ ((module) => { - -module.exports = register; - -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(function (callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - } - - return Promise.resolve().then(function () { - if (!state.registry[name]) { - return method(options); - } - - return state.registry[name].reduce(function (method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); -} - - -/***/ }), - -/***/ 6819: -/***/ ((module) => { - -module.exports = removeHook; - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); -} - - -/***/ }), - -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = 'Deprecation'; - } - -} - -exports.Deprecation = Deprecation; - - -/***/ }), - -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} - -function isPlainObject(o) { - var ctor,prot; - - if (isObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; - - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -} - -exports.isPlainObject = isPlainObject; - - -/***/ }), - -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(2940) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - - -/***/ }), - -/***/ 4294: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(4219); - - -/***/ }), - -/***/ 4219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; - - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.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 || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.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) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - - // If we are under maxSockets create a new one. - 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'); - } - - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - debug('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) { - debug('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; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - - function onError(cause) { - connectReq.removeAllListeners(); - - debug('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) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; - -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: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} - - -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} - -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] !== undefined) { - target[k] = overrides[k]; - } - } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = 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 { - debug = function() {}; -} -exports.debug = debug; // for test - - -/***/ }), - -/***/ 5030: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && "version" in process) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } - - return ""; -} - -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; /***/ }), -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 3387: +/***/ ((module) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); +}; -var _version = _interopRequireDefault(__nccwpck_require__(1595)); +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /***/ }), -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +/***/ 3682: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +var register = __nccwpck_require__(4670) +var addHook = __nccwpck_require__(5549) +var removeHook = __nccwpck_require__(6819) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef - return _crypto.default.createHash('md5').update(bytes).digest(); + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) } -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook } -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; +function HookCollection () { + var state = { + registry: {} + } + var hook = register.bind(null, state) + bindApi(hook, state) -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; + return hook +} -/***/ }), +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() -"use strict"; +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; +/***/ }), -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +/***/ 5549: +/***/ ((module) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = addHook; -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } -let poolPtr = rnds8Pool.length; + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } - poolPtr = 0; + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; } - return rnds8Pool.slice(poolPtr, poolPtr += 16); + state.registry[name].push({ + hook: hook, + orig: orig, + }); } -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { -"use strict"; +/***/ }), +/***/ 4670: +/***/ ((module) => { -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +module.exports = register; -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + if (!options) { + options = {}; + } -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); } - return _crypto.default.createHash('sha1').update(bytes).digest(); + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); } -var _default = sha1; -exports["default"] = _default; /***/ }), -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/***/ 6819: +/***/ ((module) => { -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; +module.exports = removeHook; -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); + if (index === -1) { + return; } - return uuid; + state.registry[name].splice(index, 1); } -var _default = stringify; -exports["default"] = _default; /***/ }), -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 8932: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + /* istanbul ignore next */ -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } -let _clockseq; // Previous uuid creation time + this.name = 'Deprecation'; + } +} -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details +exports.Deprecation = Deprecation; -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); +/***/ }), - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } +/***/ 3287: +/***/ ((__unused_webpack_module, exports) => { - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. +"use strict"; - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock +Object.defineProperty(exports, "__esModule", ({ value: true })); - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval +function isPlainObject(o) { + var ctor,prot; + if (isObject(o) === false) return false; - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; } - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + // Most likely a plain Object + return true; +} - msecs += 12219292800000; // `time_low` +exports.isPlainObject = isPlainObject; - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` +/***/ }), - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version +/***/ 1223: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) +var wrappy = __nccwpck_require__(2940) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) - b[i++] = clockseq & 0xff; // `node` + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) } + f.called = false + return f +} - return buf || (0, _stringify.default)(b); +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f } -var _default = v1; -exports["default"] = _default; /***/ }), -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); +/***/ 4294: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +module.exports = __nccwpck_require__(4219); -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; /***/ }), -/***/ 5998: +/***/ 4219: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) +var net = __nccwpck_require__(1808); +var tls = __nccwpck_require__(4404); +var http = __nccwpck_require__(3685); +var https = __nccwpck_require__(5687); +var events = __nccwpck_require__(2361); +var assert = __nccwpck_require__(9491); +var util = __nccwpck_require__(3837); - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; } -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -"use strict"; +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _rng = _interopRequireDefault(__nccwpck_require__(807)); +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); -function v4(options, buf, offset) { - options = options || {}; + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + // If we are under maxSockets create a new one. + 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); + } - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; - if (buf) { - offset = offset || 0; +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port } - - return buf; + }); + 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'); } - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); -"use strict"; + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); -var _v = _interopRequireDefault(__nccwpck_require__(5998)); + if (res.statusCode !== 200) { + debug('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) { + debug('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; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + function onError(cause) { + connectReq.removeAllListeners(); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + debug('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); + } +}; -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; +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) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +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: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); -"use strict"; + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} -var _regex = _interopRequireDefault(__nccwpck_require__(814)); +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] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = 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 { + debug = function() {}; } +exports.debug = debug; // for test -var _default = validate; -exports["default"] = _default; /***/ }), -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { +/***/ 5030: +/***/ ((__unused_webpack_module, exports) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); +Object.defineProperty(exports, "__esModule", ({ value: true })); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; } - return parseInt(uuid.substr(14, 1), 16); + return ""; } -var _default = version; -exports["default"] = _default; +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + /***/ }), @@ -9932,14 +9475,6 @@ module.exports = require("assert"); /***/ }), -/***/ 6113: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto"); - -/***/ }), - /***/ 2361: /***/ ((module) => { diff --git a/dist/weekly-contributions/index.js.map b/dist/weekly-contributions/index.js.map index 1e5ae23..f5c050a 100644 --- a/dist/weekly-contributions/index.js.map +++ b/dist/weekly-contributions/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":["../webpack://typescript-action/./lib/weekly-contributions.js","../webpack://typescript-action/./node_modules/@actions/core/lib/command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/core.js","../webpack://typescript-action/./node_modules/@actions/core/lib/file-command.js","../webpack://typescript-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://typescript-action/./node_modules/@actions/core/lib/summary.js","../webpack://typescript-action/./node_modules/@actions/core/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/context.js","../webpack://typescript-action/./node_modules/@actions/github/lib/github.js","../webpack://typescript-action/./node_modules/@actions/github/lib/internal/utils.js","../webpack://typescript-action/./node_modules/@actions/github/lib/utils.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/index.js","../webpack://typescript-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://typescript-action/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/core/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/dist-node/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/node-fetch/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/tr46/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js","../webpack://typescript-action/./node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js","../webpack://typescript-action/./node_modules/before-after-hook/index.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/add.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/register.js","../webpack://typescript-action/./node_modules/before-after-hook/lib/remove.js","../webpack://typescript-action/./node_modules/deprecation/dist-node/index.js","../webpack://typescript-action/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://typescript-action/./node_modules/once/once.js","../webpack://typescript-action/./node_modules/tunnel/index.js","../webpack://typescript-action/./node_modules/tunnel/lib/tunnel.js","../webpack://typescript-action/./node_modules/universal-user-agent/dist-node/index.js","../webpack://typescript-action/./node_modules/uuid/dist/index.js","../webpack://typescript-action/./node_modules/uuid/dist/md5.js","../webpack://typescript-action/./node_modules/uuid/dist/nil.js","../webpack://typescript-action/./node_modules/uuid/dist/parse.js","../webpack://typescript-action/./node_modules/uuid/dist/regex.js","../webpack://typescript-action/./node_modules/uuid/dist/rng.js","../webpack://typescript-action/./node_modules/uuid/dist/sha1.js","../webpack://typescript-action/./node_modules/uuid/dist/stringify.js","../webpack://typescript-action/./node_modules/uuid/dist/v1.js","../webpack://typescript-action/./node_modules/uuid/dist/v3.js","../webpack://typescript-action/./node_modules/uuid/dist/v35.js","../webpack://typescript-action/./node_modules/uuid/dist/v4.js","../webpack://typescript-action/./node_modules/uuid/dist/v5.js","../webpack://typescript-action/./node_modules/uuid/dist/validate.js","../webpack://typescript-action/./node_modules/uuid/dist/version.js","../webpack://typescript-action/./node_modules/wrappy/wrappy.js","../webpack://typescript-action/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://typescript-action/external node-commonjs \"assert\"","../webpack://typescript-action/external node-commonjs \"crypto\"","../webpack://typescript-action/external node-commonjs \"events\"","../webpack://typescript-action/external node-commonjs \"fs\"","../webpack://typescript-action/external node-commonjs \"http\"","../webpack://typescript-action/external node-commonjs \"https\"","../webpack://typescript-action/external node-commonjs \"net\"","../webpack://typescript-action/external node-commonjs \"os\"","../webpack://typescript-action/external node-commonjs \"path\"","../webpack://typescript-action/external node-commonjs \"punycode\"","../webpack://typescript-action/external node-commonjs \"stream\"","../webpack://typescript-action/external node-commonjs \"tls\"","../webpack://typescript-action/external node-commonjs \"url\"","../webpack://typescript-action/external node-commonjs \"util\"","../webpack://typescript-action/external node-commonjs \"zlib\"","../webpack://typescript-action/webpack/bootstrap","../webpack://typescript-action/webpack/runtime/compat","../webpack://typescript-action/webpack/before-startup","../webpack://typescript-action/webpack/startup","../webpack://typescript-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst util_1 = require(\"util\");\nlet loginToNameMap = {};\nlet ignoreSummariesLoginArray = [];\nasync function main() {\n const token = core.getInput('github-token');\n const dateStr = core.getInput('date');\n const daysInReportStr = core.getInput('days-in-report') || '14';\n const markdownPrefix = core.getInput('markdown-prefix') || '';\n loginToNameMap = JSON.parse(core.getInput('login-to-name-map')) || {};\n ignoreSummariesLoginArray =\n JSON.parse(core.getInput('ignore-summaries-login-array')) ||\n new Array();\n const octokit = github.getOctokit(token);\n const date = dateStr ? new Date(dateStr) : new Date();\n const daysInReport = parseInt(daysInReportStr);\n const cutOffDate = new Date(date);\n cutOffDate.setDate(cutOffDate.getDate() - daysInReport);\n const { data } = await octokit.rest.repos.listForOrg({\n org: \"KittyCAD\",\n per_page: 100,\n });\n const repos = data\n .map(({ name }) => name)\n .filter(name => !name.startsWith('_'));\n const prGroupedByAuthor = {};\n const PRsToGetCommentsFor = [];\n const chunkSize = 25;\n for (let i = 0; i < repos.length; i += chunkSize) {\n const reposChunk = repos.slice(i, i + chunkSize);\n const prsResponse = await octokit.graphql(`\n query{\n ${reposChunk.map(makeInnerPRQuery).join('\\n')}\n }\n `);\n Object.values(prsResponse).forEach(repo => {\n repo.pullRequests.nodes.forEach(({ author, repository, state, url, title, updatedAt, number }) => {\n const login = author.login;\n if (login === 'dependabot')\n return;\n if (cutOffDate.valueOf() > new Date(updatedAt).valueOf())\n return;\n if (!prGroupedByAuthor[login]) {\n prGroupedByAuthor[login] = {\n PRs: [],\n PRComments: [],\n issuesOpened: [],\n issuesClosed: [],\n issuesComments: []\n };\n }\n prGroupedByAuthor[login].PRs.push({\n repo: repository.name,\n number,\n author: author.login,\n url,\n state,\n title\n });\n PRsToGetCommentsFor.push({\n repo: repository.name,\n PRNum: number\n });\n });\n });\n }\n const commentsResponse = await octokit.graphql(`\n query{\n ${PRsToGetCommentsFor.map(({ repo, PRNum }) => makeInnerPRCommentQuery(repo, PRNum)).join('\\n')}\n }\n `);\n const commentGrouping = {};\n Object.values(commentsResponse).forEach(({ pullRequest }) => {\n pullRequest.comments.nodes.forEach(({ url, author: commentAuthor }) => {\n if (['codecov', 'dependabot', 'github-actions', 'vercel'].includes(commentAuthor.login))\n return;\n const isCommentingOnOwnPR = commentAuthor.login === pullRequest.author.login;\n if (isCommentingOnOwnPR)\n return;\n commentGrouping[`${commentAuthor.login}-${pullRequest.repository.name}-${pullRequest.number}`] = {\n repo: pullRequest.repository.name,\n number: pullRequest.number,\n author: commentAuthor.login,\n url,\n title: pullRequest.title\n };\n });\n });\n Object.values(commentGrouping).forEach(comment => {\n if (!prGroupedByAuthor[comment.author]) {\n prGroupedByAuthor[comment.author] = {\n PRs: [],\n PRComments: [],\n issuesOpened: [],\n issuesClosed: [],\n issuesComments: []\n };\n }\n prGroupedByAuthor[comment.author].PRComments.push(comment);\n });\n const issuesResponse = await octokit.graphql(`\n query{\n ${repos.map(makeInnerIssueQuery).join('\\n')}\n }\n `);\n const IssueTempObject = {};\n const IssueToGetCommentsOn = {};\n Object.values(issuesResponse).forEach(pullRequest => {\n pullRequest.issues.nodes.forEach(({ title, url, author, createdAt, updatedAt, assignees, state, closedAt, repository, number }) => {\n if (author.login === 'sync-by-unito' ||\n author.login === 'github-actions')\n return;\n const issueInfo = {\n repo: repository.name,\n url,\n title,\n state,\n number\n };\n const isCreatedThisWeek = state === 'OPEN' &&\n cutOffDate.valueOf() < new Date(createdAt).valueOf();\n if (isCreatedThisWeek) {\n IssueTempObject[`${author.login}-${issueInfo.repo}-${number}`] = {\n ...issueInfo,\n creditTo: author.login,\n action: 'created'\n };\n }\n const isClosedThisWeek = state === 'CLOSED' &&\n cutOffDate.valueOf() < new Date(closedAt).valueOf();\n if (isClosedThisWeek) {\n // note: if it's created by one of the assignees and it was created the same week it was closed,\n // then the created event is stomped and that's intentional\n assignees.nodes.forEach(node => {\n IssueTempObject[`${node.login}-${issueInfo.repo}-${number}`] = {\n ...issueInfo,\n creditTo: node.login,\n action: 'closed'\n };\n });\n }\n const isUpdatedThisWeek = cutOffDate.valueOf() < new Date(updatedAt).valueOf();\n if (isUpdatedThisWeek) {\n IssueToGetCommentsOn[`${issueInfo.repo}-${number}`] = {\n repo: issueInfo.repo,\n number\n };\n }\n });\n });\n const issuesCommentsResponse = await octokit.graphql(`\n query{\n ${Object.values(IssueToGetCommentsOn)\n .map(({ repo, number }) => makeInnerIssueCommentQuery(repo, number))\n .join('\\n')}\n }\n `);\n Object.values(issuesCommentsResponse).forEach(({ issue }) => {\n issue.comments.nodes.forEach(comment => {\n if (cutOffDate.valueOf() > new Date(comment.updatedAt).valueOf())\n return;\n if (IssueTempObject[`${comment.author.login}-${issue.repository.name}-${issue.number}`]) {\n // closed or created action already exists, don't override with comment\n return;\n }\n IssueTempObject[`${comment.author.login}-${issue.repository.name}-${issue.number}`] = {\n repo: issue.repository.name,\n url: issue.url,\n title: issue.title,\n state: issue.state,\n number: issue.number,\n creditTo: comment.author.login,\n action: 'commented'\n };\n });\n });\n Object.values(IssueTempObject).forEach(issue => {\n const issueInfo = {\n repo: issue.repo,\n number: issue.number,\n author: issue.creditTo,\n url: issue.url,\n state: issue.state,\n title: issue.title\n };\n if (!prGroupedByAuthor[issue.creditTo]) {\n prGroupedByAuthor[issue.creditTo] = {\n PRs: [],\n PRComments: [],\n issuesOpened: [],\n issuesClosed: [],\n issuesComments: []\n };\n }\n if (issue.action === 'commented') {\n prGroupedByAuthor[issue.creditTo].issuesComments.push(issueInfo);\n }\n else if (issue.action === 'closed') {\n prGroupedByAuthor[issue.creditTo].issuesClosed.push(issueInfo);\n }\n else if (issue.action === 'created') {\n prGroupedByAuthor[issue.creditTo].issuesOpened.push(issueInfo);\n }\n });\n let markdownOutput = markdownPrefix;\n const rating = {\n MERGED: 2,\n OPEN: 1,\n CLOSED: 0\n };\n const processAuthorGroups = (shouldPromptSummary = false) => ([login, details]) => {\n markdownOutput += `\\n\\n## ${loginToName(login)}`;\n if (shouldPromptSummary) {\n markdownOutput += `\\n\\n#### Human Summary`;\n markdownOutput += `\\n- _Add your summary here_`;\n }\n if (details.PRs.length || details.PRComments.length) {\n markdownOutput += `\\n\\n#### PR activity`;\n }\n details.PRs.sort((a, b) => rating[b.state] - rating[a.state]).forEach(PR => {\n const prEmojiMap = {\n MERGED: '💅 Merged .....',\n OPEN: '⏳ Open ........',\n CLOSED: '🛑 Closed ......'\n };\n markdownOutput += `\\n- ${prEmojiMap[PR.state]} [${PR.repo} / ${PR.title}](${PR.url})`;\n });\n details.PRComments.forEach(PR => {\n markdownOutput += `\\n- 📝 Comment . [${PR.repo} / ${PR.title}](${PR.url})`;\n });\n if (details.issuesClosed.length ||\n details.issuesOpened.length ||\n details.issuesComments.length) {\n markdownOutput += `\\n\\n#### Issue activity`;\n }\n details.issuesClosed.forEach(issue => {\n markdownOutput += `\\n- ✅ Closed ...... [${issue.repo} / ${issue.title}](${issue.url})`;\n });\n details.issuesOpened.forEach(issue => {\n markdownOutput += `\\n- ⏳ Open ........ [${issue.repo} / ${issue.title}](${issue.url})`;\n });\n details.issuesComments.forEach(issue => {\n markdownOutput += `\\n- 📝 Comment . [${issue.repo} / ${issue.title}](${issue.url})`;\n });\n };\n const orderedContributors = Object.entries(prGroupedByAuthor).sort(([loginA], [loginB]) => (loginToName(loginA) > loginToName(loginB) ? 1 : -1));\n const noSummariesNeeded = ignoreSummariesLoginArray;\n const summaryDevs = Object.keys(loginToNameMap);\n const devContributors = orderedContributors.filter(([login]) => summaryDevs.includes(login) && !noSummariesNeeded.includes(login));\n const nonDevContributors = orderedContributors.filter(([login]) => noSummariesNeeded.includes(login) ||\n (!summaryDevs.includes(login) && login !== 'org-projects-app'));\n devContributors.forEach(processAuthorGroups(true));\n markdownOutput += `\\n\\n
\\n\\n -- **Other Contributors** --`;\n nonDevContributors.forEach(processAuthorGroups());\n core.debug(`PRGroupedByAuthor: ${(0, util_1.inspect)(prGroupedByAuthor)}`);\n core.setOutput('markdown', markdownOutput);\n}\nmain();\nfunction loginToName(login) {\n return loginToNameMap[login] || login;\n}\nfunction makeInnerPRQuery(repoName) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n pullRequests(first: 50, orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n repository {\n name\n id\n }\n number\n url\n title\n id\n updatedAt\n state\n author {\n login\n }\n }\n }\n }\n `;\n}\nfunction makeInnerPRCommentQuery(repoName, PrNumber) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}${PrNumber}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n pullRequest(number: ${PrNumber}) {\n repository {\n name\n }\n number\n title\n author {\n login\n }\n comments(first: 20 orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n url\n author {\n login\n }\n }\n }\n }\n }\n `;\n}\nfunction makeInnerIssueQuery(repoName) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n issues(first: 50 orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n number\n title\n url\n author {\n login\n }\n createdAt\n updatedAt\n assignees(first: 5) {\n nodes {\n login\n }\n }\n state\n closedAt\n repository {\n name\n }\n }\n }\n }\n `;\n}\nfunction makeInnerIssueCommentQuery(repoName, number) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}${number}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n issue(number: ${number}) {\n title\n number\n repository {\n name\n }\n state\n url\n comments(first: 20 orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n updatedAt\n author {\n login\n }\n }\n }\n }\n }\n `;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(2963);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACllCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChCA;;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;AEDA;AACA;AACA;AACA","sources":[".././lib/weekly-contributions.js",".././node_modules/@actions/core/lib/command.js",".././node_modules/@actions/core/lib/core.js",".././node_modules/@actions/core/lib/file-command.js",".././node_modules/@actions/core/lib/oidc-utils.js",".././node_modules/@actions/core/lib/utils.js",".././node_modules/@actions/github/lib/context.js",".././node_modules/@actions/github/lib/github.js",".././node_modules/@actions/github/lib/internal/utils.js",".././node_modules/@actions/github/lib/utils.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/index.js",".././node_modules/@actions/github/node_modules/@actions/http-client/lib/proxy.js",".././node_modules/@actions/http-client/auth.js",".././node_modules/@actions/http-client/index.js",".././node_modules/@actions/http-client/proxy.js",".././node_modules/@octokit/auth-token/dist-node/index.js",".././node_modules/@octokit/core/dist-node/index.js",".././node_modules/@octokit/endpoint/dist-node/index.js",".././node_modules/@octokit/graphql/dist-node/index.js",".././node_modules/@octokit/plugin-paginate-rest/dist-node/index.js",".././node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js",".././node_modules/@octokit/request-error/dist-node/index.js",".././node_modules/@octokit/request/dist-node/index.js",".././node_modules/@octokit/request/node_modules/node-fetch/lib/index.js",".././node_modules/@octokit/request/node_modules/tr46/index.js",".././node_modules/@octokit/request/node_modules/webidl-conversions/lib/index.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL-impl.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/URL.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/public-api.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/url-state-machine.js",".././node_modules/@octokit/request/node_modules/whatwg-url/lib/utils.js",".././node_modules/before-after-hook/index.js",".././node_modules/before-after-hook/lib/add.js",".././node_modules/before-after-hook/lib/register.js",".././node_modules/before-after-hook/lib/remove.js",".././node_modules/deprecation/dist-node/index.js",".././node_modules/is-plain-object/dist/is-plain-object.js",".././node_modules/once/once.js",".././node_modules/tunnel/index.js",".././node_modules/tunnel/lib/tunnel.js",".././node_modules/universal-user-agent/dist-node/index.js",".././node_modules/wrappy/wrappy.js",".././node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../external node-commonjs \"assert\"","../external node-commonjs \"events\"","../external node-commonjs \"fs\"","../external node-commonjs \"http\"","../external node-commonjs \"https\"","../external node-commonjs \"net\"","../external node-commonjs \"os\"","../external node-commonjs \"path\"","../external node-commonjs \"punycode\"","../external node-commonjs \"stream\"","../external node-commonjs \"tls\"","../external node-commonjs \"url\"","../external node-commonjs \"util\"","../external node-commonjs \"zlib\"","../webpack/bootstrap","../webpack/runtime/compat","../webpack/before-startup","../webpack/startup","../webpack/after-startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst util_1 = require(\"util\");\nlet loginToNameMap = {};\nlet ignoreSummariesLoginArray = [];\nasync function main() {\n const token = core.getInput('github-token');\n const dateStr = core.getInput('date');\n const daysInReportStr = core.getInput('days-in-report') || '14';\n const markdownPrefix = core.getInput('markdown-prefix') || '';\n loginToNameMap = JSON.parse(core.getInput('login-to-name-map')) || {};\n ignoreSummariesLoginArray =\n JSON.parse(core.getInput('ignore-summaries-login-array')) ||\n new Array();\n const octokit = github.getOctokit(token);\n const date = dateStr ? new Date(dateStr) : new Date();\n const daysInReport = parseInt(daysInReportStr);\n const cutOffDate = new Date(date);\n cutOffDate.setDate(cutOffDate.getDate() - daysInReport);\n // 100 is the max page limit, we'll need to paginate this if it starts failing again\n const { data } = await octokit.rest.repos.listForOrg({\n org: 'KittyCAD',\n sort: 'pushed',\n per_page: 100\n });\n const repos = data.map(({ name }) => name).filter(name => !name.startsWith('_'));\n const prGroupedByAuthor = {};\n const PRsToGetCommentsFor = [];\n const chunkSize = 25;\n for (let i = 0; i < repos.length; i += chunkSize) {\n const reposChunk = repos.slice(i, i + chunkSize);\n const prsResponse = await octokit.graphql(`\n query{\n ${reposChunk.map(makeInnerPRQuery).join('\\n')}\n }\n `);\n Object.values(prsResponse).forEach(repo => {\n repo.pullRequests.nodes.forEach(({ author, repository, state, url, title, updatedAt, number }) => {\n const login = author.login;\n if (login === 'dependabot')\n return;\n if (cutOffDate.valueOf() > new Date(updatedAt).valueOf())\n return;\n if (!prGroupedByAuthor[login]) {\n prGroupedByAuthor[login] = {\n PRs: [],\n PRComments: [],\n issuesOpened: [],\n issuesClosed: [],\n issuesComments: []\n };\n }\n prGroupedByAuthor[login].PRs.push({\n repo: repository.name,\n number,\n author: author.login,\n url,\n state,\n title\n });\n PRsToGetCommentsFor.push({\n repo: repository.name,\n PRNum: number\n });\n });\n });\n }\n const commentsResponse = await octokit.graphql(`\n query{\n ${PRsToGetCommentsFor.map(({ repo, PRNum }) => makeInnerPRCommentQuery(repo, PRNum)).join('\\n')}\n }\n `);\n const commentGrouping = {};\n Object.values(commentsResponse).forEach(({ pullRequest }) => {\n pullRequest.comments.nodes.forEach(({ url, author: commentAuthor }) => {\n if (['codecov', 'dependabot', 'github-actions', 'vercel'].includes(commentAuthor.login))\n return;\n const isCommentingOnOwnPR = commentAuthor.login === pullRequest.author.login;\n if (isCommentingOnOwnPR)\n return;\n commentGrouping[`${commentAuthor.login}-${pullRequest.repository.name}-${pullRequest.number}`] = {\n repo: pullRequest.repository.name,\n number: pullRequest.number,\n author: commentAuthor.login,\n url,\n title: pullRequest.title\n };\n });\n });\n Object.values(commentGrouping).forEach(comment => {\n if (!prGroupedByAuthor[comment.author]) {\n prGroupedByAuthor[comment.author] = {\n PRs: [],\n PRComments: [],\n issuesOpened: [],\n issuesClosed: [],\n issuesComments: []\n };\n }\n prGroupedByAuthor[comment.author].PRComments.push(comment);\n });\n const issuesResponse = await octokit.graphql(`\n query{\n ${repos.map(makeInnerIssueQuery).join('\\n')}\n }\n `);\n const IssueTempObject = {};\n const IssueToGetCommentsOn = {};\n Object.values(issuesResponse).forEach(pullRequest => {\n pullRequest.issues.nodes.forEach(({ title, url, author, createdAt, updatedAt, assignees, state, closedAt, repository, number }) => {\n if (author.login === 'sync-by-unito' ||\n author.login === 'github-actions')\n return;\n const issueInfo = {\n repo: repository.name,\n url,\n title,\n state,\n number\n };\n const isCreatedThisWeek = state === 'OPEN' &&\n cutOffDate.valueOf() < new Date(createdAt).valueOf();\n if (isCreatedThisWeek) {\n IssueTempObject[`${author.login}-${issueInfo.repo}-${number}`] = {\n ...issueInfo,\n creditTo: author.login,\n action: 'created'\n };\n }\n const isClosedThisWeek = state === 'CLOSED' &&\n cutOffDate.valueOf() < new Date(closedAt).valueOf();\n if (isClosedThisWeek) {\n // note: if it's created by one of the assignees and it was created the same week it was closed,\n // then the created event is stomped and that's intentional\n assignees.nodes.forEach(node => {\n IssueTempObject[`${node.login}-${issueInfo.repo}-${number}`] = {\n ...issueInfo,\n creditTo: node.login,\n action: 'closed'\n };\n });\n }\n const isUpdatedThisWeek = cutOffDate.valueOf() < new Date(updatedAt).valueOf();\n if (isUpdatedThisWeek) {\n IssueToGetCommentsOn[`${issueInfo.repo}-${number}`] = {\n repo: issueInfo.repo,\n number\n };\n }\n });\n });\n const issuesCommentsResponse = await octokit.graphql(`\n query{\n ${Object.values(IssueToGetCommentsOn)\n .map(({ repo, number }) => makeInnerIssueCommentQuery(repo, number))\n .join('\\n')}\n }\n `);\n Object.values(issuesCommentsResponse).forEach(({ issue }) => {\n issue.comments.nodes.forEach(comment => {\n if (cutOffDate.valueOf() > new Date(comment.updatedAt).valueOf())\n return;\n if (IssueTempObject[`${comment.author.login}-${issue.repository.name}-${issue.number}`]) {\n // closed or created action already exists, don't override with comment\n return;\n }\n IssueTempObject[`${comment.author.login}-${issue.repository.name}-${issue.number}`] = {\n repo: issue.repository.name,\n url: issue.url,\n title: issue.title,\n state: issue.state,\n number: issue.number,\n creditTo: comment.author.login,\n action: 'commented'\n };\n });\n });\n Object.values(IssueTempObject).forEach(issue => {\n const issueInfo = {\n repo: issue.repo,\n number: issue.number,\n author: issue.creditTo,\n url: issue.url,\n state: issue.state,\n title: issue.title\n };\n if (!prGroupedByAuthor[issue.creditTo]) {\n prGroupedByAuthor[issue.creditTo] = {\n PRs: [],\n PRComments: [],\n issuesOpened: [],\n issuesClosed: [],\n issuesComments: []\n };\n }\n if (issue.action === 'commented') {\n prGroupedByAuthor[issue.creditTo].issuesComments.push(issueInfo);\n }\n else if (issue.action === 'closed') {\n prGroupedByAuthor[issue.creditTo].issuesClosed.push(issueInfo);\n }\n else if (issue.action === 'created') {\n prGroupedByAuthor[issue.creditTo].issuesOpened.push(issueInfo);\n }\n });\n let markdownOutput = markdownPrefix;\n const rating = {\n MERGED: 2,\n OPEN: 1,\n CLOSED: 0\n };\n const processAuthorGroups = (shouldPromptSummary = false) => ([login, details]) => {\n markdownOutput += `\\n\\n## ${loginToName(login)}`;\n if (shouldPromptSummary) {\n markdownOutput += `\\n\\n#### Human Summary`;\n markdownOutput += `\\n- _Add your summary here_`;\n }\n if (details.PRs.length || details.PRComments.length) {\n markdownOutput += `\\n\\n#### PR activity`;\n }\n details.PRs.sort((a, b) => rating[b.state] - rating[a.state]).forEach(PR => {\n const prEmojiMap = {\n MERGED: '💅 Merged .....',\n OPEN: '⏳ Open ........',\n CLOSED: '🛑 Closed ......'\n };\n markdownOutput += `\\n- ${prEmojiMap[PR.state]} [${PR.repo} / ${PR.title}](${PR.url})`;\n });\n details.PRComments.forEach(PR => {\n markdownOutput += `\\n- 📝 Comment . [${PR.repo} / ${PR.title}](${PR.url})`;\n });\n if (details.issuesClosed.length ||\n details.issuesOpened.length ||\n details.issuesComments.length) {\n markdownOutput += `\\n\\n#### Issue activity`;\n }\n details.issuesClosed.forEach(issue => {\n markdownOutput += `\\n- ✅ Closed ...... [${issue.repo} / ${issue.title}](${issue.url})`;\n });\n details.issuesOpened.forEach(issue => {\n markdownOutput += `\\n- ⏳ Open ........ [${issue.repo} / ${issue.title}](${issue.url})`;\n });\n details.issuesComments.forEach(issue => {\n markdownOutput += `\\n- 📝 Comment . [${issue.repo} / ${issue.title}](${issue.url})`;\n });\n };\n const orderedContributors = Object.entries(prGroupedByAuthor).sort(([loginA], [loginB]) => (loginToName(loginA) > loginToName(loginB) ? 1 : -1));\n const noSummariesNeeded = ignoreSummariesLoginArray;\n const summaryDevs = Object.keys(loginToNameMap);\n const devContributors = orderedContributors.filter(([login]) => summaryDevs.includes(login) && !noSummariesNeeded.includes(login));\n const nonDevContributors = orderedContributors.filter(([login]) => noSummariesNeeded.includes(login) ||\n (!summaryDevs.includes(login) && login !== 'org-projects-app'));\n devContributors.forEach(processAuthorGroups(true));\n markdownOutput += `\\n\\n
\\n\\n -- **Other Contributors** --`;\n nonDevContributors.forEach(processAuthorGroups());\n core.debug(`PRGroupedByAuthor: ${(0, util_1.inspect)(prGroupedByAuthor)}`);\n core.setOutput('markdown', markdownOutput);\n}\nmain();\nfunction loginToName(login) {\n return loginToNameMap[login] || login;\n}\nfunction makeInnerPRQuery(repoName) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n pullRequests(first: 50, orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n repository {\n name\n id\n }\n number\n url\n title\n id\n updatedAt\n state\n author {\n login\n }\n }\n }\n }\n `;\n}\nfunction makeInnerPRCommentQuery(repoName, PrNumber) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}${PrNumber}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n pullRequest(number: ${PrNumber}) {\n repository {\n name\n }\n number\n title\n author {\n login\n }\n comments(first: 20 orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n url\n author {\n login\n }\n }\n }\n }\n }\n `;\n}\nfunction makeInnerIssueQuery(repoName) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n issues(first: 50 orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n number\n title\n url\n author {\n login\n }\n createdAt\n updatedAt\n assignees(first: 5) {\n nodes {\n login\n }\n }\n state\n closedAt\n repository {\n name\n }\n }\n }\n }\n `;\n}\nfunction makeInnerIssueCommentQuery(repoName, number) {\n return `\n ${repoName\n .replaceAll('.', '')\n .replaceAll('-', '')}${number}: repository(name: \"${repoName}\" owner: \"kittycad\") {\n issue(number: ${number}) {\n title\n number\n repository {\n name\n }\n state\n url\n comments(first: 20 orderBy: {direction: DESC, field: UPDATED_AT}) {\n nodes {\n updatedAt\n author {\n login\n }\n }\n }\n }\n }\n `;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options, ...additionalPlugins) {\n const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins);\n return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nexports.defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' +\n Buffer.from(this.username + ':' + this.password).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] = 'Bearer ' + this.token;\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n options.headers['Authorization'] =\n 'Basic ' + Buffer.from('PAT:' + this.token).toString('base64');\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n 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.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst REGEX_IS_INSTALLATION_LEGACY = /^v1\\./;\nconst REGEX_IS_INSTALLATION = /^ghs_/;\nconst REGEX_IS_USER_TO_SERVER = /^ghu_/;\nasync function auth(token) {\n const isApp = token.split(/\\./).length === 3;\n const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token);\n const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token);\n const tokenType = isApp ? \"app\" : isInstallation ? \"installation\" : isUserToServer ? \"user-to-server\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.6.0\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.17.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/packages\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addCustomLabelsToSelfHostedRunnerForOrg: [\"POST /orgs/{org}/actions/runners/{runner_id}/labels\"],\n addCustomLabelsToSelfHostedRunnerForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteActionsCacheById: [\"DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}\"],\n deleteActionsCacheByKey: [\"DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunAttemptLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getActionsCacheList: [\"GET /repos/{owner}/{repo}/actions/caches\"],\n getActionsCacheUsage: [\"GET /repos/{owner}/{repo}/actions/cache/usage\"],\n getActionsCacheUsageByRepoForOrg: [\"GET /orgs/{org}/actions/cache/usage-by-repository\"],\n getActionsCacheUsageForEnterprise: [\"GET /enterprises/{enterprise}/actions/cache/usage\"],\n getActionsCacheUsageForOrg: [\"GET /orgs/{org}/actions/cache/usage\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsDefaultWorkflowPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions/workflow\"],\n getGithubActionsDefaultWorkflowPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/workflow\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowAccessToRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/access\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listJobsForWorkflowRunAttempt: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs\"],\n listLabelsForSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}/labels\"],\n listLabelsForSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunJobForWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n reRunWorkflowFailedJobs: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs\"],\n removeAllCustomLabelsFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels\"],\n removeAllCustomLabelsFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}\"],\n removeCustomLabelFromSelfHostedRunnerForRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForOrg: [\"PUT /orgs/{org}/actions/runners/{runner_id}/labels\"],\n setCustomLabelsForSelfHostedRunnerForRepo: [\"PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels\"],\n setGithubActionsDefaultWorkflowPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions/workflow\"],\n setGithubActionsDefaultWorkflowPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/workflow\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"],\n setWorkflowAccessToRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/access\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"addRepoToInstallationForAuthenticatedUser\"]\n }],\n addRepoToInstallationForAuthenticatedUser: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\", {}, {\n renamed: [\"apps\", \"removeRepoFromInstallationForAuthenticatedUser\"]\n }],\n removeRepoFromInstallationForAuthenticatedUser: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubAdvancedSecurityBillingGhe: [\"GET /enterprises/{enterprise}/settings/billing/advanced-security\"],\n getGithubAdvancedSecurityBillingOrg: [\"GET /orgs/{org}/settings/billing/advanced-security\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestRun: [\"POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForOrg: [\"GET /orgs/{org}/code-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"]\n },\n codespaces: {\n addRepositoryForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n codespaceMachinesForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/machines\"],\n createForAuthenticatedUser: [\"POST /user/codespaces\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n createOrUpdateSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}\"],\n createWithPrForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces\"],\n createWithRepoForAuthenticatedUser: [\"POST /repos/{owner}/{repo}/codespaces\"],\n deleteForAuthenticatedUser: [\"DELETE /user/codespaces/{codespace_name}\"],\n deleteFromOrganization: [\"DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n deleteSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}\"],\n exportForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/exports\"],\n getExportDetailsForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}/exports/{export_id}\"],\n getForAuthenticatedUser: [\"GET /user/codespaces/{codespace_name}\"],\n getPublicKeyForAuthenticatedUser: [\"GET /user/codespaces/secrets/public-key\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/codespaces/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}\"],\n getSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}\"],\n listDevcontainersInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/devcontainers\"],\n listForAuthenticatedUser: [\"GET /user/codespaces\"],\n listInOrganization: [\"GET /orgs/{org}/codespaces\", {}, {\n renamedParameters: {\n org_id: \"org\"\n }\n }],\n listInRepositoryForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/codespaces/secrets\"],\n listRepositoriesForSecretForAuthenticatedUser: [\"GET /user/codespaces/secrets/{secret_name}/repositories\"],\n listSecretsForAuthenticatedUser: [\"GET /user/codespaces/secrets\"],\n removeRepositoryForSecretForAuthenticatedUser: [\"DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}\"],\n repoMachinesForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/codespaces/machines\"],\n setRepositoriesForSecretForAuthenticatedUser: [\"PUT /user/codespaces/secrets/{secret_name}/repositories\"],\n startForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/start\"],\n stopForAuthenticatedUser: [\"POST /user/codespaces/{codespace_name}/stop\"],\n stopInOrganization: [\"POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop\"],\n updateForAuthenticatedUser: [\"PATCH /user/codespaces/{codespace_name}\"]\n },\n dependabot: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/dependabot/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}\"],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/dependabot/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}\"],\n listOrgSecrets: [\"GET /orgs/{org}/dependabot/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/dependabot/secrets\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories\"]\n },\n dependencyGraph: {\n createRepositorySnapshot: [\"POST /repos/{owner}/{repo}/dependency-graph/snapshots\"],\n diffRange: [\"GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}\"]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n addCustomLabelsToSelfHostedRunnerForEnterprise: [\"POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n getServerStatistics: [\"GET /enterprise-installation/{enterprise_or_org}/server-statistics\"],\n listLabelsForSelfHostedRunnerForEnterprise: [\"GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n removeCustomLabelFromSelfHostedRunnerForEnterprise: [\"DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setCustomLabelsForSelfHostedRunnerForEnterprise: [\"PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\"],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\"],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\"],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\"],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\"],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\"],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\"],\n listForAuthenticatedUser: [\"GET /user/migrations\"],\n listForOrg: [\"GET /orgs/{org}/migrations\"],\n listReposForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/repositories\"],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\"],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {}, {\n renamed: [\"migrations\", \"listReposForAuthenticatedUser\"]\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\"],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\"],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listCustomRoles: [\"GET /organizations/{organization_id}/custom_roles\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /users/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\"],\n createCard: [\"POST /projects/columns/{column_id}/cards\"],\n createColumn: [\"POST /projects/{project_id}/columns\"],\n createForAuthenticatedUser: [\"POST /user/projects\"],\n createForOrg: [\"POST /orgs/{org}/projects\"],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\"],\n delete: [\"DELETE /projects/{project_id}\"],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\"],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\"],\n get: [\"GET /projects/{project_id}\"],\n getCard: [\"GET /projects/columns/cards/{card_id}\"],\n getColumn: [\"GET /projects/columns/{column_id}\"],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\"],\n listCards: [\"GET /projects/columns/{column_id}/cards\"],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\"],\n listColumns: [\"GET /projects/{project_id}/columns\"],\n listForOrg: [\"GET /orgs/{org}/projects\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\"],\n listForUser: [\"GET /users/{username}/projects\"],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\"],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\"],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\"],\n update: [\"PATCH /projects/{project_id}\"],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\"],\n updateColumn: [\"PATCH /projects/columns/{column_id}\"]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\"],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\"],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\"],\n deleteForRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}\"],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\"],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\"],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\"],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\"],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\"],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\"],\n listForRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}/reactions\"],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\"],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\"]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"acceptInvitationForAuthenticatedUser\"]\n }],\n acceptInvitationForAuthenticatedUser: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\"],\n codeownersErrors: [\"GET /repos/{owner}/{repo}/codeowners/errors\"],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\"],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createTagProtection: [\"POST /repos/{owner}/{repo}/tags/protection\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\"],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\", {}, {\n renamed: [\"repos\", \"declineInvitationForAuthenticatedUser\"]\n }],\n declineInvitationForAuthenticatedUser: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\"],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteTagProtection: [\"DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\"],\n disableLfsForRepo: [\"DELETE /repos/{owner}/{repo}/lfs\"],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\"],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\"],\n enableLfsForRepo: [\"PUT /repos/{owner}/{repo}/lfs\"],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\"],\n generateReleaseNotes: [\"POST /repos/{owner}/{repo}/releases/generate-notes\"],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\"],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\"],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\"],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\"],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTagProtection: [\"GET /repos/{owner}/{repo}/tags/protection\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\"],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\"],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\"],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForEnterprise: [\"GET /enterprises/{enterprise}/secret-scanning/alerts\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n listLocationsForAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\"],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\", {}, {\n renamed: [\"users\", \"addEmailForAuthenticatedUser\"]\n }],\n addEmailForAuthenticatedUser: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\", {}, {\n renamed: [\"users\", \"createGpgKeyForAuthenticatedUser\"]\n }],\n createGpgKeyForAuthenticatedUser: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\", {}, {\n renamed: [\"users\", \"createPublicSshKeyForAuthenticatedUser\"]\n }],\n createPublicSshKeyForAuthenticatedUser: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\", {}, {\n renamed: [\"users\", \"deleteEmailForAuthenticatedUser\"]\n }],\n deleteEmailForAuthenticatedUser: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"deleteGpgKeyForAuthenticatedUser\"]\n }],\n deleteGpgKeyForAuthenticatedUser: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"deletePublicSshKeyForAuthenticatedUser\"]\n }],\n deletePublicSshKeyForAuthenticatedUser: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\", {}, {\n renamed: [\"users\", \"getGpgKeyForAuthenticatedUser\"]\n }],\n getGpgKeyForAuthenticatedUser: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\", {}, {\n renamed: [\"users\", \"getPublicSshKeyForAuthenticatedUser\"]\n }],\n getPublicSshKeyForAuthenticatedUser: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\", {}, {\n renamed: [\"users\", \"listBlockedByAuthenticatedUser\"]\n }],\n listBlockedByAuthenticatedUser: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\", {}, {\n renamed: [\"users\", \"listEmailsForAuthenticatedUser\"]\n }],\n listEmailsForAuthenticatedUser: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\", {}, {\n renamed: [\"users\", \"listFollowedByAuthenticatedUser\"]\n }],\n listFollowedByAuthenticatedUser: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\", {}, {\n renamed: [\"users\", \"listGpgKeysForAuthenticatedUser\"]\n }],\n listGpgKeysForAuthenticatedUser: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\", {}, {\n renamed: [\"users\", \"listPublicEmailsForAuthenticatedUser\"]\n }],\n listPublicEmailsForAuthenticatedUser: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\", {}, {\n renamed: [\"users\", \"listPublicSshKeysForAuthenticatedUser\"]\n }],\n listPublicSshKeysForAuthenticatedUser: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\", {}, {\n renamed: [\"users\", \"setPrimaryEmailVisibilityForAuthenticatedUser\"]\n }],\n setPrimaryEmailVisibilityForAuthenticatedUser: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.16.2\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.3\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar whatwgUrl = _interopDefault(require('whatwg-url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"module.exports = require(\"assert\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"punycode\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(2963);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/weekly-contributions/licenses.txt b/dist/weekly-contributions/licenses.txt index bac409b..bedd358 100644 --- a/dist/weekly-contributions/licenses.txt +++ b/dist/weekly-contributions/licenses.txt @@ -562,19 +562,6 @@ Permission to use, copy, modify, and/or distribute this software for any purpose THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -uuid -MIT -The MIT License (MIT) - -Copyright (c) 2010-2020 Robert Kieffer and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - webidl-conversions BSD-2-Clause # The BSD 2-Clause License diff --git a/package-lock.json b/package-lock.json index e6e9018..bf0ecf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,13 +21,13 @@ "yarn": "^1.22.19" }, "devDependencies": { - "@types/node": "^16.10.5", - "@typescript-eslint/parser": "^6.3.0", - "@vercel/ncc": "^0.31.1", - "eslint": "^8.46.0", - "eslint-plugin-github": "^4.9.2", - "eslint-plugin-jest": "^27.2.3", - "eslint-plugin-prettier": "^5.0.0", + "@types/node": "^20.1", + "@typescript-eslint/parser": "^6.3", + "@vercel/ncc": "^0.38", + "eslint": "^8", + "eslint-plugin-github": "^4", + "eslint-plugin-jest": "^27", + "eslint-plugin-prettier": "^5", "jest": "^27.2.5", "js-yaml": "^4.1.0", "prettier": "^3.0.1", @@ -2587,10 +2587,13 @@ "integrity": "sha512-BqI9B92u+cM3ccp8mpHf+HzJ8fBlRwdmyd6+fz3p99m3V6ifT5O3zmOMi612PGkpeFeG/G6loxUnzlDNhfjPSA==" }, "node_modules/@types/node": { - "version": "16.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.5.tgz", - "integrity": "sha512-9iI3OOlkyOjLQQ9s+itIJNMRepDhB/96jW3fqduJ2FTPQj1dJjw6Q3QCImF9FE1wmdBs5QSun4FjDSFS8d8JLw==", - "dev": true + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/prettier": { "version": "2.4.1", @@ -2881,9 +2884,9 @@ } }, "node_modules/@vercel/ncc": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.31.1.tgz", - "integrity": "sha512-g0FAxwdViI6UzsiVz5HssIHqjcPa1EHL6h+2dcJD893SoCJaGdqqgUF09xnMW6goWnnhbLvgiKlgJWrJa+7qYA==", + "version": "0.38.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", + "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", "dev": true, "bin": { "ncc": "dist/ncc/cli.js" @@ -11853,6 +11856,12 @@ "node": ">=12.18" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -14289,10 +14298,13 @@ "integrity": "sha512-BqI9B92u+cM3ccp8mpHf+HzJ8fBlRwdmyd6+fz3p99m3V6ifT5O3zmOMi612PGkpeFeG/G6loxUnzlDNhfjPSA==" }, "@types/node": { - "version": "16.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.5.tgz", - "integrity": "sha512-9iI3OOlkyOjLQQ9s+itIJNMRepDhB/96jW3fqduJ2FTPQj1dJjw6Q3QCImF9FE1wmdBs5QSun4FjDSFS8d8JLw==", - "dev": true + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } }, "@types/prettier": { "version": "2.4.1", @@ -14476,9 +14488,9 @@ } }, "@vercel/ncc": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.31.1.tgz", - "integrity": "sha512-g0FAxwdViI6UzsiVz5HssIHqjcPa1EHL6h+2dcJD893SoCJaGdqqgUF09xnMW6goWnnhbLvgiKlgJWrJa+7qYA==", + "version": "0.38.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", + "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", "dev": true }, "abab": { @@ -21028,6 +21040,12 @@ "busboy": "^1.6.0" } }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", diff --git a/src/weekly-contributions.ts b/src/weekly-contributions.ts index a98a77f..57737ff 100644 --- a/src/weekly-contributions.ts +++ b/src/weekly-contributions.ts @@ -1,12 +1,12 @@ import * as core from '@actions/core' import * as github from '@actions/github' -import { OctokitResponse } from "@octokit/types"; -import {inspect} from 'util' +import { OctokitResponse } from '@octokit/types' +import { inspect } from 'util' type IssueStates = 'OPEN' | 'CLOSED' type PRStates = IssueStates | 'MERGED' -let loginToNameMap: {[key: string]: string} = {} +let loginToNameMap: { [key: string]: string } = {} let ignoreSummariesLoginArray: string[] = [] async function main() { @@ -27,13 +27,13 @@ async function main() { const cutOffDate = new Date(date) cutOffDate.setDate(cutOffDate.getDate() - daysInReport) + // 100 is the max page limit, we'll need to paginate this if it starts failing again const { data } = await octokit.rest.repos.listForOrg({ - org: "KittyCAD", - per_page: 100, + org: 'KittyCAD', + sort: 'pushed', + per_page: 100 }) - const repos = data - .map(({ name }) => name) - .filter(name => !name.startsWith('_')) + const repos = data.map(({ name }) => name).filter(name => !name.startsWith('_')) interface PRGroupedByAuthor { [login: string]: { @@ -52,7 +52,7 @@ async function main() { } } const prGroupedByAuthor: PRGroupedByAuthor = {} - const PRsToGetCommentsFor: {repo: string; PRNum: number}[] = [] + const PRsToGetCommentsFor: { repo: string; PRNum: number }[] = [] const chunkSize = 25 for (let i = 0; i < repos.length; i += chunkSize) { const reposChunk = repos.slice(i, i + chunkSize) @@ -84,7 +84,7 @@ async function main() { ) Object.values(prsResponse).forEach(repo => { repo.pullRequests.nodes.forEach( - ({author, repository, state, url, title, updatedAt, number}) => { + ({ author, repository, state, url, title, updatedAt, number }) => { const login = author.login if (login === 'dependabot') return if (cutOffDate.valueOf() > new Date(updatedAt).valueOf()) return @@ -140,9 +140,9 @@ async function main() { } = await octokit.graphql( ` query{ - ${PRsToGetCommentsFor.map(({repo, PRNum}) => - makeInnerPRCommentQuery(repo, PRNum) - ).join('\n')} + ${PRsToGetCommentsFor.map(({ repo, PRNum }) => + makeInnerPRCommentQuery(repo, PRNum) + ).join('\n')} } ` ) @@ -155,8 +155,8 @@ async function main() { title: string } } = {} - Object.values(commentsResponse).forEach(({pullRequest}) => { - pullRequest.comments.nodes.forEach(({url, author: commentAuthor}) => { + Object.values(commentsResponse).forEach(({ pullRequest }) => { + pullRequest.comments.nodes.forEach(({ url, author: commentAuthor }) => { if ( ['codecov', 'dependabot', 'github-actions', 'vercel'].includes( commentAuthor.login @@ -329,17 +329,17 @@ async function main() { ` query{ ${Object.values(IssueToGetCommentsOn) - .map(({repo, number}) => makeInnerIssueCommentQuery(repo, number)) - .join('\n')} + .map(({ repo, number }) => makeInnerIssueCommentQuery(repo, number)) + .join('\n')} } ` ) - Object.values(issuesCommentsResponse).forEach(({issue}) => { + Object.values(issuesCommentsResponse).forEach(({ issue }) => { issue.comments.nodes.forEach(comment => { if (cutOffDate.valueOf() > new Date(comment.updatedAt).valueOf()) return if ( IssueTempObject[ - `${comment.author.login}-${issue.repository.name}-${issue.number}` + `${comment.author.login}-${issue.repository.name}-${issue.number}` ] ) { // closed or created action already exists, don't override with comment @@ -396,48 +396,47 @@ async function main() { } const processAuthorGroups = (shouldPromptSummary = false) => - ([login, details]: [string, PRGroupedByAuthor[string]]) => { - markdownOutput += `\n\n## ${loginToName(login)}` - if (shouldPromptSummary) { - markdownOutput += `\n\n#### Human Summary` - markdownOutput += `\n- _Add your summary here_` - } - if (details.PRs.length || details.PRComments.length) { - markdownOutput += `\n\n#### PR activity` - } - details.PRs.sort((a, b) => rating[b.state] - rating[a.state]).forEach( - PR => { - const prEmojiMap = { - MERGED: '💅 Merged .....', - OPEN: '⏳ Open ........', - CLOSED: '🛑 Closed ......' - } - markdownOutput += `\n- ${prEmojiMap[PR.state]} [${PR.repo} / ${ - PR.title - }](${PR.url})` + ([login, details]: [string, PRGroupedByAuthor[string]]) => { + markdownOutput += `\n\n## ${loginToName(login)}` + if (shouldPromptSummary) { + markdownOutput += `\n\n#### Human Summary` + markdownOutput += `\n- _Add your summary here_` } - ) - details.PRComments.forEach(PR => { - markdownOutput += `\n- 📝 Comment . [${PR.repo} / ${PR.title}](${PR.url})` - }) + if (details.PRs.length || details.PRComments.length) { + markdownOutput += `\n\n#### PR activity` + } + details.PRs.sort((a, b) => rating[b.state] - rating[a.state]).forEach( + PR => { + const prEmojiMap = { + MERGED: '💅 Merged .....', + OPEN: '⏳ Open ........', + CLOSED: '🛑 Closed ......' + } + markdownOutput += `\n- ${prEmojiMap[PR.state]} [${PR.repo} / ${PR.title + }](${PR.url})` + } + ) + details.PRComments.forEach(PR => { + markdownOutput += `\n- 📝 Comment . [${PR.repo} / ${PR.title}](${PR.url})` + }) - if ( - details.issuesClosed.length || - details.issuesOpened.length || - details.issuesComments.length - ) { - markdownOutput += `\n\n#### Issue activity` + if ( + details.issuesClosed.length || + details.issuesOpened.length || + details.issuesComments.length + ) { + markdownOutput += `\n\n#### Issue activity` + } + details.issuesClosed.forEach(issue => { + markdownOutput += `\n- ✅ Closed ...... [${issue.repo} / ${issue.title}](${issue.url})` + }) + details.issuesOpened.forEach(issue => { + markdownOutput += `\n- ⏳ Open ........ [${issue.repo} / ${issue.title}](${issue.url})` + }) + details.issuesComments.forEach(issue => { + markdownOutput += `\n- 📝 Comment . [${issue.repo} / ${issue.title}](${issue.url})` + }) } - details.issuesClosed.forEach(issue => { - markdownOutput += `\n- ✅ Closed ...... [${issue.repo} / ${issue.title}](${issue.url})` - }) - details.issuesOpened.forEach(issue => { - markdownOutput += `\n- ⏳ Open ........ [${issue.repo} / ${issue.title}](${issue.url})` - }) - details.issuesComments.forEach(issue => { - markdownOutput += `\n- 📝 Comment . [${issue.repo} / ${issue.title}](${issue.url})` - }) - } const orderedContributors = Object.entries(prGroupedByAuthor).sort( ([loginA], [loginB]) => (loginToName(loginA) > loginToName(loginB) ? 1 : -1) ) @@ -471,8 +470,8 @@ function loginToName(login: string): string { function makeInnerPRQuery(repoName: string) { return ` ${repoName - .replaceAll('.', '') - .replaceAll('-', '')}: repository(name: "${repoName}" owner: "kittycad") { + .replaceAll('.', '') + .replaceAll('-', '')}: repository(name: "${repoName}" owner: "kittycad") { pullRequests(first: 50, orderBy: {direction: DESC, field: UPDATED_AT}) { nodes { repository { @@ -496,11 +495,11 @@ function makeInnerPRQuery(repoName: string) { function makeInnerPRCommentQuery(repoName: string, PrNumber: number) { return ` ${repoName - .replaceAll('.', '') - .replaceAll( - '-', - '' - )}${PrNumber}: repository(name: "${repoName}" owner: "kittycad") { + .replaceAll('.', '') + .replaceAll( + '-', + '' + )}${PrNumber}: repository(name: "${repoName}" owner: "kittycad") { pullRequest(number: ${PrNumber}) { repository { name @@ -525,8 +524,8 @@ function makeInnerPRCommentQuery(repoName: string, PrNumber: number) { function makeInnerIssueQuery(repoName: string) { return ` ${repoName - .replaceAll('.', '') - .replaceAll('-', '')}: repository(name: "${repoName}" owner: "kittycad") { + .replaceAll('.', '') + .replaceAll('-', '')}: repository(name: "${repoName}" owner: "kittycad") { issues(first: 50 orderBy: {direction: DESC, field: UPDATED_AT}) { nodes { number @@ -555,11 +554,11 @@ function makeInnerIssueQuery(repoName: string) { function makeInnerIssueCommentQuery(repoName: string, number: number) { return ` ${repoName - .replaceAll('.', '') - .replaceAll( - '-', - '' - )}${number}: repository(name: "${repoName}" owner: "kittycad") { + .replaceAll('.', '') + .replaceAll( + '-', + '' + )}${number}: repository(name: "${repoName}" owner: "kittycad") { issue(number: ${number}) { title number diff --git a/yarn.lock b/yarn.lock index 297077e..8a93c8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,1047 +3,1098 @@ "@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "integrity" "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==" + "resolved" "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" + "version" "1.2.6" "@actions/core@^1.6.0": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a" - integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g== + "integrity" "sha512-NB1UAZomZlCV/LmJqkLhNTqtKfFXJZAUPcfl/zqG7EfsQdeUJtaWO98SGbuQ3pydJ3fHl2CvI/51OKYlCYYcaw==" + "resolved" "https://registry.npmjs.org/@actions/core/-/core-1.6.0.tgz" + "version" "1.6.0" dependencies: - "@actions/http-client" "^2.0.1" - uuid "^8.3.2" + "@actions/http-client" "^1.0.11" "@actions/github@^5.0.1": - version "5.1.1" - resolved "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz" - integrity sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g== + "integrity" "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==" + "resolved" "https://registry.npmjs.org/@actions/github/-/github-5.1.1.tgz" + "version" "5.1.1" dependencies: "@actions/http-client" "^2.0.1" "@octokit/core" "^3.6.0" "@octokit/plugin-paginate-rest" "^2.17.0" "@octokit/plugin-rest-endpoint-methods" "^5.13.0" +"@actions/http-client@^1.0.11": + "integrity" "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==" + "resolved" "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "tunnel" "0.0.6" + "@actions/http-client@^2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz" - integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw== - dependencies: - tunnel "^0.0.6" - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.17.tgz#2f9b0b395985967203514b24ee50f9fd0639c866" - integrity sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.22.17" - "@babel/helpers" "^7.22.15" - "@babel/parser" "^7.22.16" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.17" - "@babel/types" "^7.22.17" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.22.15", "@babel/generator@^7.7.2": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" - integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== - dependencies: - "@babel/types" "^7.22.15" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.22.17": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz#7edf129097a51ccc12443adbc6320e90eab76693" - integrity sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.15" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.22.15", "@babel/helper-validator-identifier@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044" - integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ== - -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== - -"@babel/helpers@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" - integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/highlight@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" - integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16": - version "7.22.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" - integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== + "integrity" "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==" + "resolved" "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "tunnel" "^0.0.6" + +"@babel/code-frame@^7.12.13": + "integrity" "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz" + "version" "7.15.8" + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/code-frame@^7.14.5": + "integrity" "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz" + "version" "7.15.8" + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/code-frame@^7.15.8": + "integrity" "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz" + "version" "7.15.8" + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.15.0": + "integrity" "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz" + "version" "7.15.0" + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": + "integrity" "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz" + "version" "7.15.8" + dependencies: + "@babel/code-frame" "^7.15.8" + "@babel/generator" "^7.15.8" + "@babel/helper-compilation-targets" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.8" + "@babel/helpers" "^7.15.4" + "@babel/parser" "^7.15.8" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.6" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.1.2" + "semver" "^6.3.0" + "source-map" "^0.5.0" + +"@babel/generator@^7.15.4", "@babel/generator@^7.15.8", "@babel/generator@^7.7.2": + "integrity" "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz" + "version" "7.15.8" + dependencies: + "@babel/types" "^7.15.6" + "jsesc" "^2.5.1" + "source-map" "^0.5.0" + +"@babel/helper-compilation-targets@^7.15.4": + "integrity" "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + "browserslist" "^4.16.6" + "semver" "^6.3.0" + +"@babel/helper-function-name@^7.15.4": + "integrity" "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/helper-get-function-arity" "^7.15.4" + "@babel/template" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helper-get-function-arity@^7.15.4": + "integrity" "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==" + "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-hoist-variables@^7.15.4": + "integrity" "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-member-expression-to-functions@^7.15.4": + "integrity" "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-module-imports@^7.15.4": + "integrity" "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-module-transforms@^7.15.8": + "integrity" "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz" + "version" "7.15.8" + dependencies: + "@babel/helper-module-imports" "^7.15.4" + "@babel/helper-replace-supers" "^7.15.4" + "@babel/helper-simple-access" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/helper-validator-identifier" "^7.15.7" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.6" + +"@babel/helper-optimise-call-expression@^7.15.4": + "integrity" "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==" + "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": + "integrity" "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz" + "version" "7.14.5" + +"@babel/helper-replace-supers@^7.15.4": + "integrity" "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==" + "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/helper-member-expression-to-functions" "^7.15.4" + "@babel/helper-optimise-call-expression" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helper-simple-access@^7.15.4": + "integrity" "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-split-export-declaration@^7.15.4": + "integrity" "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-validator-identifier@^7.14.5": + "integrity" "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz" + "version" "7.14.5" + +"@babel/helper-validator-identifier@^7.14.9": + "integrity" "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" + "version" "7.15.7" + +"@babel/helper-validator-identifier@^7.15.7": + "integrity" "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" + "version" "7.15.7" + +"@babel/helper-validator-option@^7.14.5": + "integrity" "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" + "version" "7.14.5" + +"@babel/helpers@^7.15.4": + "integrity" "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/highlight@^7.14.5": + "integrity" "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" + "version" "7.14.5" + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.15.8", "@babel/parser@^7.7.2": + "integrity" "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz" + "version" "7.15.8" "@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "version" "7.8.4" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "version" "7.12.13" dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + "integrity" "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz" + "version" "7.14.5" dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8" - integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.3.3": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17", "@babel/traverse@^7.7.2": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.17.tgz#b23c203ab3707e3be816043081b4a994fcacec44" - integrity sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.16" - "@babel/types" "^7.22.17" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.5", "@babel/types@^7.3.3": - version "7.22.17" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee" - integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.15" - to-fast-properties "^2.0.0" + "integrity" "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz" + "version" "7.22.10" + dependencies: + "regenerator-runtime" "^0.14.0" + +"@babel/template@^7.15.4", "@babel/template@^7.3.3": + "integrity" "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2": + "integrity" "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz" + "version" "7.15.4" + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" + "debug" "^4.1.0" + "globals" "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + "integrity" "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" + "version" "7.15.6" + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + "to-fast-properties" "^2.0.0" "@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + "version" "0.2.3" + +"@cspotcode/source-map-support@^0.8.0": + "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" + "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + "version" "0.8.1" + dependencies: + "@jridgewell/trace-mapping" "0.3.9" "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + "integrity" "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==" + "resolved" "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" + "version" "4.4.0" dependencies: - eslint-visitor-keys "^3.3.0" + "eslint-visitor-keys" "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" - integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== - -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" - integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== + "integrity" "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==" + "resolved" "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz" + "version" "4.6.2" + +"@eslint/eslintrc@^2.1.1": + "integrity" "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==" + "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "ajv" "^6.12.4" + "debug" "^4.3.2" + "espree" "^9.6.0" + "globals" "^13.19.0" + "ignore" "^5.2.0" + "import-fresh" "^3.2.1" + "js-yaml" "^4.1.0" + "minimatch" "^3.1.2" + "strip-json-comments" "^3.1.1" + +"@eslint/js@^8.46.0": + "integrity" "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==" + "resolved" "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz" + "version" "8.46.0" "@filestack/loader@^1.0.4": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@filestack/loader/-/loader-1.0.9.tgz#eaab7e6536a41c8fd1e918ba064e24fd7a12bb32" - integrity sha512-zvXbZSgeybT1p3ds5NZ5GQYPVnKacgb2YGWe7psdPs/JE1v3SL1j2SXYaHA/f/Qwc8Y1fjzz53maKP0vwDHrvA== + "integrity" "sha512-zvXbZSgeybT1p3ds5NZ5GQYPVnKacgb2YGWe7psdPs/JE1v3SL1j2SXYaHA/f/Qwc8Y1fjzz53maKP0vwDHrvA==" + "resolved" "https://registry.npmjs.org/@filestack/loader/-/loader-1.0.9.tgz" + "version" "1.0.9" "@github/browserslist-config@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@github/browserslist-config/-/browserslist-config-1.0.0.tgz#952fe6da3e6b8ed6a368f3a1a08a9d2ef84e8d04" - integrity sha512-gIhjdJp/c2beaIWWIlsXdqXVRUz3r2BxBCpfz/F3JXHvSAQ1paMYjLH+maEATtENg+k5eLV7gA+9yPp762ieuw== + "integrity" "sha512-gIhjdJp/c2beaIWWIlsXdqXVRUz3r2BxBCpfz/F3JXHvSAQ1paMYjLH+maEATtENg+k5eLV7gA+9yPp762ieuw==" + "resolved" "https://registry.npmjs.org/@github/browserslist-config/-/browserslist-config-1.0.0.tgz" + "version" "1.0.0" "@google-cloud/paginator@^3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz" - integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== + "integrity" "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==" + "resolved" "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz" + "version" "3.0.7" dependencies: - arrify "^2.0.0" - extend "^3.0.2" + "arrify" "^2.0.0" + "extend" "^3.0.2" "@google-cloud/projectify@^2.0.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz" - integrity sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ== + "integrity" "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==" + "resolved" "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz" + "version" "2.1.1" "@google-cloud/promisify@^2.0.0": - version "2.0.4" - resolved "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz" - integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== + "integrity" "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==" + "resolved" "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz" + "version" "2.0.4" "@google-cloud/storage@^5.20.5": - version "5.20.5" - resolved "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.20.5.tgz" - integrity sha512-lOs/dCyveVF8TkVFnFSF7IGd0CJrTm91qiK6JLu+Z8qiT+7Ag0RyVhxZIWkhiACqwABo7kSHDm8FdH8p2wxSSw== + "integrity" "sha512-lOs/dCyveVF8TkVFnFSF7IGd0CJrTm91qiK6JLu+Z8qiT+7Ag0RyVhxZIWkhiACqwABo7kSHDm8FdH8p2wxSSw==" + "resolved" "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.20.5.tgz" + "version" "5.20.5" dependencies: "@google-cloud/paginator" "^3.0.7" "@google-cloud/projectify" "^2.0.0" "@google-cloud/promisify" "^2.0.0" - abort-controller "^3.0.0" - arrify "^2.0.0" - async-retry "^1.3.3" - compressible "^2.0.12" - configstore "^5.0.0" - duplexify "^4.0.0" - ent "^2.2.0" - extend "^3.0.2" - gaxios "^4.0.0" - google-auth-library "^7.14.1" - hash-stream-validation "^0.2.2" - mime "^3.0.0" - mime-types "^2.0.8" - p-limit "^3.0.1" - pumpify "^2.0.0" - retry-request "^4.2.2" - stream-events "^1.0.4" - teeny-request "^7.1.3" - uuid "^8.0.0" - xdg-basedir "^4.0.0" - -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== + "abort-controller" "^3.0.0" + "arrify" "^2.0.0" + "async-retry" "^1.3.3" + "compressible" "^2.0.12" + "configstore" "^5.0.0" + "duplexify" "^4.0.0" + "ent" "^2.2.0" + "extend" "^3.0.2" + "gaxios" "^4.0.0" + "google-auth-library" "^7.14.1" + "hash-stream-validation" "^0.2.2" + "mime" "^3.0.0" + "mime-types" "^2.0.8" + "p-limit" "^3.0.1" + "pumpify" "^2.0.0" + "retry-request" "^4.2.2" + "stream-events" "^1.0.4" + "teeny-request" "^7.1.3" + "uuid" "^8.0.0" + "xdg-basedir" "^4.0.0" + +"@humanwhocodes/config-array@^0.11.10": + "integrity" "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz" + "version" "0.11.10" dependencies: "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" + "debug" "^4.1.1" + "minimatch" "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "integrity" "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + "version" "1.0.1" "@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + "version" "1.2.1" "@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" + "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + "version" "1.1.0" dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" + "camelcase" "^5.3.1" + "find-up" "^4.1.0" + "get-package-type" "^0.1.0" + "js-yaml" "^3.13.1" + "resolve-from" "^5.0.0" "@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + "integrity" "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + "version" "0.1.3" -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== +"@jest/console@^27.2.5": + "integrity" "sha512-smtlRF9vNKorRMCUtJ+yllIoiY8oFmfFG7xlzsAE76nKEwXNhjPOJIsc7Dv+AUitVt76t+KjIpUP9m98Crn2LQ==" + "resolved" "https://registry.npmjs.org/@jest/console/-/console-27.2.5.tgz" + "version" "27.2.5" dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^27.2.5" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - -"@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "chalk" "^4.0.0" + "jest-message-util" "^27.2.5" + "jest-util" "^27.2.5" + "slash" "^3.0.0" + +"@jest/core@^27.2.5": + "integrity" "sha512-VR7mQ+jykHN4WO3OvusRJMk4xCa2MFLipMS+43fpcRGaYrN1KwMATfVEXif7ccgFKYGy5D1TVXTNE4mGq/KMMA==" + "resolved" "https://registry.npmjs.org/@jest/core/-/core-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/console" "^27.2.5" + "@jest/reporters" "^27.2.5" + "@jest/test-result" "^27.2.5" + "@jest/transform" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== - dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "emittery" "^0.8.1" + "exit" "^0.1.2" + "graceful-fs" "^4.2.4" + "jest-changed-files" "^27.2.5" + "jest-config" "^27.2.5" + "jest-haste-map" "^27.2.5" + "jest-message-util" "^27.2.5" + "jest-regex-util" "^27.0.6" + "jest-resolve" "^27.2.5" + "jest-resolve-dependencies" "^27.2.5" + "jest-runner" "^27.2.5" + "jest-runtime" "^27.2.5" + "jest-snapshot" "^27.2.5" + "jest-util" "^27.2.5" + "jest-validate" "^27.2.5" + "jest-watcher" "^27.2.5" + "micromatch" "^4.0.4" + "rimraf" "^3.0.0" + "slash" "^3.0.0" + "strip-ansi" "^6.0.0" + +"@jest/environment@^27.2.5": + "integrity" "sha512-XvUW3q6OUF+54SYFCgbbfCd/BKTwm5b2MGLoc2jINXQLKQDTCS2P2IrpPOtQ08WWZDGzbhAzVhOYta3J2arubg==" + "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/fake-timers" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - jest-mock "^27.5.1" + "jest-mock" "^27.2.5" -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== +"@jest/fake-timers@^27.2.5": + "integrity" "sha512-ZGUb6jg7BgwY+nmO0TW10bc7z7Hl2G/UTAvmxEyZ/GgNFoa31tY9/cgXmqcxnnZ7o5Xs7RAOz3G1SKIj8IVDlg==" + "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.2.5.tgz" + "version" "27.2.5" dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^27.2.5" "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" + "jest-message-util" "^27.2.5" + "jest-mock" "^27.2.5" + "jest-util" "^27.2.5" -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== +"@jest/globals@^27.2.5": + "integrity" "sha512-naRI537GM+enFVJQs6DcwGYPn/0vgJNb06zGVbzXfDfe/epDPV73hP1vqO37PqSKDeOXM2KInr6ymYbL1HTP7g==" + "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-27.2.5.tgz" + "version" "27.2.5" dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" + "@jest/environment" "^27.2.5" + "@jest/types" "^27.2.5" + "expect" "^27.2.5" -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== +"@jest/reporters@^27.2.5": + "integrity" "sha512-zYuR9fap3Q3mxQ454VWF8I6jYHErh368NwcKHWO2uy2fwByqBzRHkf9j2ekMDM7PaSTWcLBSZyd7NNxR1iHxzQ==" + "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-27.2.5.tgz" + "version" "27.2.5" dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^27.2.5" + "@jest/test-result" "^27.2.5" + "@jest/transform" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" - -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== - dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" + "chalk" "^4.0.0" + "collect-v8-coverage" "^1.0.0" + "exit" "^0.1.2" + "glob" "^7.1.2" + "graceful-fs" "^4.2.4" + "istanbul-lib-coverage" "^3.0.0" + "istanbul-lib-instrument" "^4.0.3" + "istanbul-lib-report" "^3.0.0" + "istanbul-lib-source-maps" "^4.0.0" + "istanbul-reports" "^3.0.2" + "jest-haste-map" "^27.2.5" + "jest-resolve" "^27.2.5" + "jest-util" "^27.2.5" + "jest-worker" "^27.2.5" + "slash" "^3.0.0" + "source-map" "^0.6.0" + "string-length" "^4.0.1" + "terminal-link" "^2.0.0" + "v8-to-istanbul" "^8.1.0" + +"@jest/source-map@^27.0.6": + "integrity" "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==" + "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz" + "version" "27.0.6" + dependencies: + "callsites" "^3.0.0" + "graceful-fs" "^4.2.4" + "source-map" "^0.6.0" + +"@jest/test-result@^27.2.5": + "integrity" "sha512-ub7j3BrddxZ0BdSnM5JCF6cRZJ/7j3wgdX0+Dtwhw2Po+HKsELCiXUTvh+mgS4/89mpnU1CPhZxe2mTvuLPJJg==" + "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/console" "^27.2.5" + "@jest/types" "^27.2.5" "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" + "collect-v8-coverage" "^1.0.0" -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== +"@jest/test-sequencer@^27.2.5": + "integrity" "sha512-8j8fHZRfnjbbdMitMAGFKaBZ6YqvFRFJlMJzcy3v75edTOqc7RY65S9JpMY6wT260zAcL2sTQRga/P4PglCu3Q==" + "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.2.5.tgz" + "version" "27.2.5" dependencies: - "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" + "@jest/test-result" "^27.2.5" + "graceful-fs" "^4.2.4" + "jest-haste-map" "^27.2.5" + "jest-runtime" "^27.2.5" -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== +"@jest/transform@^27.2.5": + "integrity" "sha512-29lRtAHHYGALbZOx343v0zKmdOg4Sb0rsA1uSv0818bvwRhs3TyElOmTVXlrw0v1ZTqXJCAH/cmoDXimBhQOJQ==" + "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-27.2.5.tgz" + "version" "27.2.5" dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + "@jest/types" "^27.2.5" + "babel-plugin-istanbul" "^6.0.0" + "chalk" "^4.0.0" + "convert-source-map" "^1.4.0" + "fast-json-stable-stringify" "^2.0.0" + "graceful-fs" "^4.2.4" + "jest-haste-map" "^27.2.5" + "jest-regex-util" "^27.0.6" + "jest-util" "^27.2.5" + "micromatch" "^4.0.4" + "pirates" "^4.0.1" + "slash" "^3.0.0" + "source-map" "^0.6.1" + "write-file-atomic" "^3.0.0" + +"@jest/types@^27.2.5": + "integrity" "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz" + "version" "27.2.5" dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^16.0.0" - chalk "^4.0.0" + "chalk" "^4.0.0" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jest/types@^27.4.2": + "integrity" "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz" + "version" "27.4.2" dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + "chalk" "^4.0.0" -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/resolve-uri@^3.0.3": + "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + "version" "3.1.0" -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.10": + "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + "version" "1.4.14" -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== +"@jridgewell/trace-mapping@0.3.9": + "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + "version" "0.3.9" dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" "@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" dependencies: "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" + "run-parallel" "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "version" "1.2.8" dependencies: "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" + "fastq" "^1.6.0" "@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + "integrity" "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==" + "resolved" "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz" + "version" "2.5.0" dependencies: "@octokit/types" "^6.0.3" -"@octokit/core@^3.6.0": - version "3.6.0" - resolved "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== +"@octokit/core@^3.6.0", "@octokit/core@>=2", "@octokit/core@>=3": + "integrity" "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==" + "resolved" "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz" + "version" "3.6.0" dependencies: "@octokit/auth-token" "^2.4.4" "@octokit/graphql" "^4.5.8" "@octokit/request" "^5.6.3" "@octokit/request-error" "^2.0.5" "@octokit/types" "^6.0.3" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" + "before-after-hook" "^2.2.0" + "universal-user-agent" "^6.0.0" "@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + "integrity" "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==" + "resolved" "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz" + "version" "6.0.12" dependencies: "@octokit/types" "^6.0.3" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" + "is-plain-object" "^5.0.0" + "universal-user-agent" "^6.0.0" "@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + "integrity" "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==" + "resolved" "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz" + "version" "4.8.0" dependencies: "@octokit/request" "^5.6.0" "@octokit/types" "^6.0.3" - universal-user-agent "^6.0.0" + "universal-user-agent" "^6.0.0" "@octokit/openapi-types@^12.11.0": - version "12.11.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz" - integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== + "integrity" "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + "resolved" "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz" + "version" "12.11.0" "@octokit/plugin-paginate-rest@^2.17.0": - version "2.17.0" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== + "integrity" "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==" + "resolved" "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz" + "version" "2.17.0" dependencies: "@octokit/types" "^6.34.0" "@octokit/plugin-rest-endpoint-methods@^5.13.0": - version "5.16.2" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz" - integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== + "integrity" "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==" + "resolved" "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz" + "version" "5.16.2" dependencies: "@octokit/types" "^6.39.0" - deprecation "^2.3.1" + "deprecation" "^2.3.1" "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + "integrity" "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==" + "resolved" "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz" + "version" "2.1.0" dependencies: "@octokit/types" "^6.0.3" - deprecation "^2.0.0" - once "^1.4.0" + "deprecation" "^2.0.0" + "once" "^1.4.0" "@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== + "integrity" "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==" + "resolved" "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz" + "version" "5.6.3" dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.1.0" "@octokit/types" "^6.16.1" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" - universal-user-agent "^6.0.0" + "is-plain-object" "^5.0.0" + "node-fetch" "^2.6.7" + "universal-user-agent" "^6.0.0" "@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0", "@octokit/types@^6.39.0": - version "6.41.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz" - integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== + "integrity" "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==" + "resolved" "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz" + "version" "6.41.0" dependencies: "@octokit/openapi-types" "^12.11.0" "@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== + "integrity" "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==" + "resolved" "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz" + "version" "2.4.2" dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" + "cross-spawn" "^7.0.3" + "fast-glob" "^3.3.0" + "is-glob" "^4.0.3" + "open" "^9.1.0" + "picocolors" "^1.0.0" + "tslib" "^2.6.0" "@sentry/hub@6.19.7": - version "6.19.7" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.7.tgz#58ad7776bbd31e9596a8ec46365b45cd8b9cfd11" - integrity sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA== + "integrity" "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==" + "resolved" "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz" + "version" "6.19.7" dependencies: "@sentry/types" "6.19.7" "@sentry/utils" "6.19.7" - tslib "^1.9.3" + "tslib" "^1.9.3" "@sentry/minimal@^6.2.1": - version "6.19.7" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.7.tgz#b3ee46d6abef9ef3dd4837ebcb6bdfd01b9aa7b4" - integrity sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ== + "integrity" "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==" + "resolved" "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz" + "version" "6.19.7" dependencies: "@sentry/hub" "6.19.7" "@sentry/types" "6.19.7" - tslib "^1.9.3" + "tslib" "^1.9.3" "@sentry/types@6.19.7": - version "6.19.7" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.7.tgz#c6b337912e588083fc2896eb012526cf7cfec7c7" - integrity sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg== + "integrity" "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==" + "resolved" "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz" + "version" "6.19.7" "@sentry/utils@6.19.7": - version "6.19.7" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.7.tgz#6edd739f8185fd71afe49cbe351c1bbf5e7b7c79" - integrity sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA== + "integrity" "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==" + "resolved" "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz" + "version" "6.19.7" dependencies: "@sentry/types" "6.19.7" - tslib "^1.9.3" + "tslib" "^1.9.3" "@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + "integrity" "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==" + "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + "version" "1.8.3" dependencies: - type-detect "4.0.8" + "type-detect" "4.0.8" "@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + "integrity" "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==" + "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz" + "version" "8.0.1" dependencies: "@sinonjs/commons" "^1.7.0" "@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + "integrity" "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "resolved" "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" + "version" "1.1.2" "@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "integrity" "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + "resolved" "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" + "version" "2.0.0" + +"@tsconfig/node10@^1.0.7": + "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + "version" "1.0.9" + +"@tsconfig/node12@^1.0.7": + "integrity" "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" + "version" "1.0.11" + +"@tsconfig/node14@^1.0.0": + "integrity" "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" + "version" "1.0.3" + +"@tsconfig/node16@^1.0.2": + "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + "version" "1.0.3" "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== + "integrity" "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==" + "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz" + "version" "7.1.16" dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + "integrity" "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==" + "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz" + "version" "7.6.3" dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==" + "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + "version" "7.4.1" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== + "integrity" "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==" + "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz" + "version" "7.14.2" dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.3.0" "@types/graceful-fs@^4.1.2": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + "integrity" "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==" + "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + "version" "4.1.5" dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + "integrity" "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" + "version" "2.0.3" "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + "version" "3.0.1" dependencies: "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + "integrity" "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz" + "version" "7.0.12" "@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + "integrity" "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + "version" "0.0.29" "@types/libsodium-wrappers@^0.7.10": - version "0.7.11" - resolved "https://registry.yarnpkg.com/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz#4ac53b8a16a4c80d062e32b3849e9d5b8c2f92ed" - integrity sha512-8avZYJny690B6lFZQEDz4PEdCgC8D8qmGE/mhJBzCwzZvsqne61tCRbtJOhxsjYMItEZd3k4SoR4xKKLnI9Ztg== + "integrity" "sha512-BqI9B92u+cM3ccp8mpHf+HzJ8fBlRwdmyd6+fz3p99m3V6ifT5O3zmOMi612PGkpeFeG/G6loxUnzlDNhfjPSA==" + "resolved" "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz" + "version" "0.7.10" "@types/node@*", "@types/node@^20.1": - version "20.6.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.0.tgz#9d7daa855d33d4efec8aea88cd66db1c2f0ebe16" - integrity sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg== + "integrity" "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz" + "version" "20.11.17" + dependencies: + "undici-types" "~5.26.4" "@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + "integrity" "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==" + "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.1.tgz" + "version" "2.4.1" -"@types/semver@^7.3.12": - version "7.5.0" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== - -"@types/semver@^7.5.0": - version "7.5.1" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" - integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== +"@types/semver@^7.3.12", "@types/semver@^7.5.0": + "integrity" "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==" + "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz" + "version" "7.5.0" "@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + "version" "2.0.1" "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + "integrity" "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz" + "version" "20.2.1" "@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" - integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== + "integrity" "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" + "version" "16.0.4" dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^6.0.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" - integrity sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag== +"@typescript-eslint/eslint-plugin@^5.0.0 || ^6.0.0", "@typescript-eslint/eslint-plugin@^6.0.0": + "integrity" "sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz" + "version" "6.3.0" dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.7.0" - "@typescript-eslint/type-utils" "6.7.0" - "@typescript-eslint/utils" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.0.0", "@typescript-eslint/parser@^6.3": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.0.tgz#332fe9c7ecf6783d3250b4c8a960bd4af0995807" - integrity sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng== - dependencies: - "@typescript-eslint/scope-manager" "6.7.0" - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/typescript-estree" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" - debug "^4.3.4" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/type-utils" "6.3.0" + "@typescript-eslint/utils" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" + "debug" "^4.3.4" + "graphemer" "^1.4.0" + "ignore" "^5.2.4" + "natural-compare" "^1.4.0" + "natural-compare-lite" "^1.4.0" + "semver" "^7.5.4" + "ts-api-utils" "^1.0.1" + +"@typescript-eslint/parser@^6.0.0", "@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.3": + "integrity" "sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.3.0.tgz" + "version" "6.3.0" + dependencies: + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" + "debug" "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + "integrity" "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz" + "version" "5.62.0" dependencies: "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz#6b3c22187976e2bf5ed0dc0d9095f1f2cbd1d106" - integrity sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA== +"@typescript-eslint/scope-manager@6.3.0": + "integrity" "sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz" + "version" "6.3.0" dependencies: - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" -"@typescript-eslint/type-utils@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz#21a013d4c7f96255f5e64ac59fb41301d1e052ba" - integrity sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg== +"@typescript-eslint/type-utils@6.3.0": + "integrity" "sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz" + "version" "6.3.0" dependencies: - "@typescript-eslint/typescript-estree" "6.7.0" - "@typescript-eslint/utils" "6.7.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/utils" "6.3.0" + "debug" "^4.3.4" + "ts-api-utils" "^1.0.1" "@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + "integrity" "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" + "version" "5.62.0" -"@typescript-eslint/types@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.0.tgz#8de8ba9cafadc38e89003fe303e219c9250089ae" - integrity sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q== +"@typescript-eslint/types@6.3.0": + "integrity" "sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.3.0.tgz" + "version" "6.3.0" "@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + "integrity" "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" + "version" "5.62.0" dependencies: "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz#20ce2801733bd46f02cc0f141f5b63fbbf2afb63" - integrity sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ== - dependencies: - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.0.tgz#61b6f1f1b82ad529abfcee074d21764e880886fb" - integrity sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.7.0" - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/typescript-estree" "6.7.0" - semver "^7.5.4" + "debug" "^4.3.4" + "globby" "^11.1.0" + "is-glob" "^4.0.3" + "semver" "^7.3.7" + "tsutils" "^3.21.0" + +"@typescript-eslint/typescript-estree@6.3.0": + "integrity" "sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz" + "version" "6.3.0" + dependencies: + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" + "debug" "^4.3.4" + "globby" "^11.1.0" + "is-glob" "^4.0.3" + "semver" "^7.5.4" + "ts-api-utils" "^1.0.1" "@typescript-eslint/utils@^5.10.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + "integrity" "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" + "version" "5.62.0" dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" @@ -1051,296 +1102,319 @@ "@typescript-eslint/scope-manager" "5.62.0" "@typescript-eslint/types" "5.62.0" "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" + "eslint-scope" "^5.1.1" + "semver" "^7.3.7" + +"@typescript-eslint/utils@6.3.0": + "integrity" "sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.3.0.tgz" + "version" "6.3.0" + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" + "semver" "^7.5.4" "@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + "integrity" "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" + "version" "5.62.0" dependencies: "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" + "eslint-visitor-keys" "^3.3.0" -"@typescript-eslint/visitor-keys@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz#34140ac76dfb6316d17012e4469acf3366ad3f44" - integrity sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ== +"@typescript-eslint/visitor-keys@6.3.0": + "integrity" "sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz" + "version" "6.3.0" dependencies: - "@typescript-eslint/types" "6.7.0" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "6.3.0" + "eslint-visitor-keys" "^3.4.1" "@vercel/ncc@^0.38": - version "0.38.0" - resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.38.0.tgz#5210def0dcf0c79640bfaf16eecce54beed58fa6" - integrity sha512-B4YKZMm/EqMptKSFyAq4q2SlgJe+VCmEH6Y8gf/E1pTlWbsUJpuH1ymik2Ex3aYO5mCWwV1kaSYHSQOT8+4vHA== - -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@^5.1.3, aria-query@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== - dependencies: - dequal "^2.0.3" - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.6: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.findlastindex@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -arraybuffer.prototype.slice@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" - -arrify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== - -async-retry@^1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" - integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== - dependencies: - retry "0.13.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -axe-core@^4.6.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.1.tgz#6948854183ee7e7eae336b9877c5bafa027998ea" - integrity sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ== - -axobject-query@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" - integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== - dependencies: - dequal "^2.0.3" - -babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "integrity" "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==" + "resolved" "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz" + "version" "0.38.1" + +"abab@^2.0.3", "abab@^2.0.5": + "integrity" "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "resolved" "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" + "version" "2.0.5" + +"abort-controller@^3.0.0": + "integrity" "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==" + "resolved" "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "event-target-shim" "^5.0.0" + +"acorn-globals@^6.0.0": + "integrity" "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==" + "resolved" "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "acorn" "^7.1.1" + "acorn-walk" "^7.1.1" + +"acorn-jsx@^5.3.2": + "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + "version" "5.3.2" + +"acorn-walk@^7.1.1": + "integrity" "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" + "version" "7.2.0" + +"acorn-walk@^8.1.1": + "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + "version" "8.2.0" + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.1": + "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + "version" "7.4.1" + +"acorn@^8.2.4": + "integrity" "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz" + "version" "8.5.0" + +"acorn@^8.4.1": + "integrity" "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" + "version" "8.8.0" + +"acorn@^8.9.0": + "integrity" "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" + "version" "8.10.0" + +"agent-base@6": + "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" + "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "debug" "4" + +"ajv@^6.12.4": + "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + "version" "6.12.6" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"ansi-escapes@^4.2.1": + "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "type-fest" "^0.21.3" + +"ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"ansi-styles@^5.0.0": + "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + "version" "5.2.0" + +"anymatch@^3.0.3": + "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"arg@^4.1.0": + "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + "version" "4.1.3" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"argparse@^2.0.1": + "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + "version" "2.0.1" + +"aria-query@^5.1.3", "aria-query@^5.3.0": + "integrity" "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==" + "resolved" "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "dequal" "^2.0.3" + +"array-buffer-byte-length@^1.0.0": + "integrity" "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==" + "resolved" "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "is-array-buffer" "^3.0.1" + +"array-includes@^3.1.4", "array-includes@^3.1.6": + "integrity" "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==" + "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz" + "version" "3.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "get-intrinsic" "^1.1.3" + "is-string" "^1.0.7" + +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + +"array.prototype.flat@^1.2.5", "array.prototype.flat@^1.3.1": + "integrity" "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==" + "resolved" "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "es-shim-unscopables" "^1.0.0" + +"array.prototype.flatmap@^1.3.1": + "integrity" "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==" + "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "es-shim-unscopables" "^1.0.0" + +"arraybuffer.prototype.slice@^1.0.1": + "integrity" "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==" + "resolved" "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "array-buffer-byte-length" "^1.0.0" + "call-bind" "^1.0.2" + "define-properties" "^1.2.0" + "get-intrinsic" "^1.2.1" + "is-array-buffer" "^3.0.2" + "is-shared-array-buffer" "^1.0.2" + +"arrify@^2.0.0": + "integrity" "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + "resolved" "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" + "version" "2.0.1" + +"ast-types-flow@^0.0.7": + "integrity" "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + "resolved" "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz" + "version" "0.0.7" + +"async-retry@^1.3.3": + "integrity" "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==" + "resolved" "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" + "version" "1.3.3" + dependencies: + "retry" "0.13.1" + +"asynckit@^0.4.0": + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"available-typed-arrays@^1.0.5": + "integrity" "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + "resolved" "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" + "version" "1.0.5" + +"axe-core@^4.6.2": + "integrity" "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==" + "resolved" "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz" + "version" "4.7.2" + +"axobject-query@^3.1.1": + "integrity" "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==" + "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "dequal" "^2.0.3" + +"babel-jest@^27.2.5", "babel-jest@>=27.0.0 <28": + "integrity" "sha512-GC9pWCcitBhSuF7H3zl0mftoKizlswaF0E3qi+rPL417wKkCB0d+Sjjb0OfXvxj7gWiBf497ldgRMii68Xz+2g==" + "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/transform" "^27.2.5" + "@jest/types" "^27.2.5" "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" + "babel-plugin-istanbul" "^6.0.0" + "babel-preset-jest" "^27.2.0" + "chalk" "^4.0.0" + "graceful-fs" "^4.2.4" + "slash" "^3.0.0" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +"babel-plugin-istanbul@^6.0.0": + "integrity" "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz" + "version" "6.0.0" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" + "istanbul-lib-instrument" "^4.0.0" + "test-exclude" "^6.0.0" -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== +"babel-plugin-jest-hoist@^27.2.0": + "integrity" "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==" + "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz" + "version" "27.2.0" dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +"babel-preset-current-node-syntax@^1.0.0": + "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" + "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + "version" "1.0.1" dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -1355,3717 +1429,3821 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" +"babel-preset-jest@^27.2.0": + "integrity" "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==" + "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz" + "version" "27.2.0" + dependencies: + "babel-plugin-jest-hoist" "^27.2.0" + "babel-preset-current-node-syntax" "^1.0.0" -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +"balanced-match@^1.0.0": + "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + "version" "1.0.0" -base64-js@^1.3.0: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +"base64-js@^1.3.0": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" -before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== - -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -bignumber.js@^9.0.0: - version "9.0.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== - -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserslist@^4.21.0, browserslist@^4.21.9: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== - dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" - node-releases "^2.0.13" - update-browserslist-db "^1.0.11" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" - integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001517: - version "1.0.30001532" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001532.tgz#c6a4d5d2da6d2b967f0ee5e12e7f680db6ad2fca" - integrity sha512-FbDFnNat3nMnrROzqrsg314zhqN5LGQ1kyyMk2opcrwGbVGpHRhgCWtAgD5YJUqNAiQ+dklreil/c3Qf1dfCTw== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== - -cjs-module-lexer@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -compressible@^2.0.12: - version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -configstore@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -damerau-levenshtein@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -deprecation@^2.0.0, deprecation@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - -dequal@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexify@^4.0.0, duplexify@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: - version "1.0.11" - resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - -electron-to-chromium@^1.4.477: - version "1.4.514" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.514.tgz#be991afe8ad98f3dc867bd42433462babdc6d7b5" - integrity sha512-M8LVncPt1Xaw1XLxws6EoJCmY41RXLk87tq6PHvSHDyTYWla3CrEgGlbhC79e8LHyvQ2JTDXx//xzgSixNYcUQ== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" - integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.1" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.1" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - safe-array-concat "^1.0.0" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.10" - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" +"before-after-hook@^2.2.0": + "integrity" "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" + "resolved" "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz" + "version" "2.2.2" + +"big-integer@^1.6.44": + "integrity" "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + "resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" + "version" "1.6.51" + +"bignumber.js@^9.0.0": + "integrity" "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" + "resolved" "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz" + "version" "9.0.2" + +"bplist-parser@^0.2.0": + "integrity" "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==" + "resolved" "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz" + "version" "0.2.0" + dependencies: + "big-integer" "^1.6.44" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"braces@^3.0.1": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"browser-process-hrtime@^1.0.0": + "integrity" "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "resolved" "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" + "version" "1.0.0" + +"browserslist@^4.16.6", "browserslist@^4.21.0", "browserslist@>= 4.21.0": + "integrity" "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz" + "version" "4.21.10" + dependencies: + "caniuse-lite" "^1.0.30001517" + "electron-to-chromium" "^1.4.477" + "node-releases" "^2.0.13" + "update-browserslist-db" "^1.0.11" + +"bs-logger@0.x": + "integrity" "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==" + "resolved" "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" + "version" "0.2.6" + dependencies: + "fast-json-stable-stringify" "2.x" + +"bser@2.1.1": + "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" + "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "node-int64" "^0.4.0" + +"buffer-equal-constant-time@1.0.1": + "integrity" "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + "resolved" "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + "version" "1.0.1" + +"buffer-from@^1.0.0": + "integrity" "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + "version" "1.1.1" + +"bundle-name@^3.0.0": + "integrity" "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==" + "resolved" "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "run-applescript" "^5.0.0" + +"busboy@^1.6.0": + "integrity" "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==" + "resolved" "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + "version" "1.6.0" + dependencies: + "streamsearch" "^1.1.0" + +"call-bind@^1.0.0", "call-bind@^1.0.2": + "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camelcase@^5.3.1": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"camelcase@^6.2.0": + "integrity" "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" + "version" "6.2.0" + +"caniuse-lite@^1.0.30001517": + "integrity" "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz" + "version" "1.0.30001519" + +"chalk@^2.0.0": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.0.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"char-regex@^1.0.2": + "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + "version" "1.0.2" + +"ci-info@^3.1.1", "ci-info@^3.2.0": + "integrity" "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz" + "version" "3.2.0" + +"cjs-module-lexer@^1.0.0": + "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + "version" "1.2.2" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"co@^4.6.0": + "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + "version" "4.6.0" + +"collect-v8-coverage@^1.0.0": + "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + "version" "1.0.1" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"combined-stream@^1.0.8": + "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "delayed-stream" "~1.0.0" + +"compressible@^2.0.12": + "integrity" "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==" + "resolved" "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + "version" "2.0.18" + dependencies: + "mime-db" ">= 1.43.0 < 2" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"configstore@^5.0.0": + "integrity" "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==" + "resolved" "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "dot-prop" "^5.2.0" + "graceful-fs" "^4.1.2" + "make-dir" "^3.0.0" + "unique-string" "^2.0.0" + "write-file-atomic" "^3.0.0" + "xdg-basedir" "^4.0.0" + +"convert-source-map@^1.4.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0": + "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + "version" "1.8.0" + dependencies: + "safe-buffer" "~5.1.1" + +"create-require@^1.1.0": + "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + "version" "1.1.1" + +"cross-spawn@^7.0.2", "cross-spawn@^7.0.3": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"crypto-random-string@^2.0.0": + "integrity" "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + "version" "2.0.0" + +"cssom@^0.4.4": + "integrity" "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" + "version" "0.4.4" + +"cssom@~0.3.6": + "integrity" "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "resolved" "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" + "version" "0.3.8" + +"cssstyle@^2.3.0": + "integrity" "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==" + "resolved" "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "cssom" "~0.3.6" + +"damerau-levenshtein@^1.0.8": + "integrity" "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + "resolved" "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" + "version" "1.0.8" + +"data-uri-to-buffer@^4.0.0": + "integrity" "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" + "resolved" "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz" + "version" "4.0.0" + +"data-urls@^2.0.0": + "integrity" "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==" + "resolved" "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "abab" "^2.0.3" + "whatwg-mimetype" "^2.3.0" + "whatwg-url" "^8.0.0" + +"debug@^2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^3.2.7": + "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + "version" "3.2.7" + dependencies: + "ms" "^2.1.1" + +"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4", "debug@4": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"decimal.js@^10.2.1": + "integrity" "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "resolved" "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz" + "version" "10.3.1" + +"dedent@^0.7.0": + "integrity" "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + "version" "0.7.0" + +"deep-is@^0.1.3", "deep-is@~0.1.3": + "integrity" "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + "version" "0.1.3" + +"deepmerge@^4.2.2": + "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + "version" "4.2.2" + +"default-browser-id@^3.0.0": + "integrity" "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==" + "resolved" "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "bplist-parser" "^0.2.0" + "untildify" "^4.0.0" + +"default-browser@^4.0.0": + "integrity" "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==" + "resolved" "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "bundle-name" "^3.0.0" + "default-browser-id" "^3.0.0" + "execa" "^7.1.1" + "titleize" "^3.0.0" + +"define-lazy-prop@^3.0.0": + "integrity" "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" + "resolved" "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" + "version" "3.0.0" + +"define-properties@^1.1.3", "define-properties@^1.1.4", "define-properties@^1.2.0": + "integrity" "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "has-property-descriptors" "^1.0.0" + "object-keys" "^1.1.1" + +"delayed-stream@~1.0.0": + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"deprecation@^2.0.0", "deprecation@^2.3.1": + "integrity" "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "resolved" "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" + "version" "2.3.1" + +"dequal@^2.0.3": + "integrity" "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + "resolved" "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + "version" "2.0.3" + +"detect-newline@^3.0.0": + "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + "version" "3.1.0" + +"diff-sequences@^27.0.6": + "integrity" "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==" + "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz" + "version" "27.0.6" + +"diff@^4.0.1": + "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + "version" "4.0.2" + +"dir-glob@^3.0.1": + "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "path-type" "^4.0.0" + +"doctrine@^2.1.0": + "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "esutils" "^2.0.2" + +"doctrine@^3.0.0": + "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "esutils" "^2.0.2" + +"domexception@^2.0.1": + "integrity" "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==" + "resolved" "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "webidl-conversions" "^5.0.0" + +"dot-prop@^5.2.0": + "integrity" "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==" + "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "is-obj" "^2.0.0" + +"duplexify@^4.0.0", "duplexify@^4.1.1": + "integrity" "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==" + "resolved" "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "end-of-stream" "^1.4.1" + "inherits" "^2.0.3" + "readable-stream" "^3.1.1" + "stream-shift" "^1.0.0" + +"ecdsa-sig-formatter@^1.0.11", "ecdsa-sig-formatter@1.0.11": + "integrity" "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==" + "resolved" "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "safe-buffer" "^5.0.1" + +"electron-to-chromium@^1.4.477": + "integrity" "sha512-9zn9/2lbMGY/mFhoUymD9ODYdLY3zjUW/IW9ihU/sJVeIlD70m2aAb86S35aRGF+iwqLuQP25epruayZjKNjBw==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.486.tgz" + "version" "1.4.486" + +"emittery@^0.8.1": + "integrity" "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" + "version" "0.8.1" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"emoji-regex@^9.2.2": + "integrity" "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + "version" "9.2.2" + +"end-of-stream@^1.1.0", "end-of-stream@^1.4.1": + "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + "version" "1.4.4" + dependencies: + "once" "^1.4.0" + +"ent@^2.2.0": + "integrity" "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" + "resolved" "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" + "version" "2.2.0" + +"es-abstract@^1.19.0", "es-abstract@^1.20.4": + "integrity" "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz" + "version" "1.22.1" + dependencies: + "array-buffer-byte-length" "^1.0.0" + "arraybuffer.prototype.slice" "^1.0.1" + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "es-set-tostringtag" "^2.0.1" + "es-to-primitive" "^1.2.1" + "function.prototype.name" "^1.1.5" + "get-intrinsic" "^1.2.1" + "get-symbol-description" "^1.0.0" + "globalthis" "^1.0.3" + "gopd" "^1.0.1" + "has" "^1.0.3" + "has-property-descriptors" "^1.0.0" + "has-proto" "^1.0.1" + "has-symbols" "^1.0.3" + "internal-slot" "^1.0.5" + "is-array-buffer" "^3.0.2" + "is-callable" "^1.2.7" + "is-negative-zero" "^2.0.2" + "is-regex" "^1.1.4" + "is-shared-array-buffer" "^1.0.2" + "is-string" "^1.0.7" + "is-typed-array" "^1.1.10" + "is-weakref" "^1.0.2" + "object-inspect" "^1.12.3" + "object-keys" "^1.1.1" + "object.assign" "^4.1.4" + "regexp.prototype.flags" "^1.5.0" + "safe-array-concat" "^1.0.0" + "safe-regex-test" "^1.0.0" + "string.prototype.trim" "^1.2.7" + "string.prototype.trimend" "^1.0.6" + "string.prototype.trimstart" "^1.0.6" + "typed-array-buffer" "^1.0.0" + "typed-array-byte-length" "^1.0.0" + "typed-array-byte-offset" "^1.0.0" + "typed-array-length" "^1.0.4" + "unbox-primitive" "^1.0.2" + "which-typed-array" "^1.1.10" + +"es-set-tostringtag@^2.0.1": + "integrity" "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==" + "resolved" "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "get-intrinsic" "^1.1.3" + "has" "^1.0.3" + "has-tostringtag" "^1.0.0" + +"es-shim-unscopables@^1.0.0": + "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==" + "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has" "^1.0.3" + +"es-to-primitive@^1.2.1": + "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" + "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "is-callable" "^1.1.4" + "is-date-object" "^1.0.1" + "is-symbol" "^1.0.2" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^2.0.0": + "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + "version" "2.0.0" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"escodegen@^2.0.0": + "integrity" "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==" + "resolved" "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "esprima" "^4.0.1" + "estraverse" "^5.2.0" + "esutils" "^2.0.2" + "optionator" "^0.8.1" optionalDependencies: - source-map "~0.6.1" + "source-map" "~0.6.1" -eslint-config-prettier@>=8.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== +"eslint-config-prettier@>=8.0.0": + "integrity" "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==" + "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz" + "version" "8.3.0" -eslint-import-resolver-node@^0.3.7: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== +"eslint-import-resolver-node@^0.3.6": + "integrity" "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==" + "resolved" "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" + "version" "0.3.6" dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" + "debug" "^3.2.7" + "resolve" "^1.20.0" -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== +"eslint-module-utils@^2.7.0": + "integrity" "sha512-hqSE88MmHl3ru9SYvDyGrlo0JwROlf9fiEMplEV7j/EAuq9iSlIlyCFbBT6pdULQBSnBYtYKiMLps+hKkyP7Gg==" + "resolved" "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.0.tgz" + "version" "2.7.0" dependencies: - debug "^3.2.7" + "debug" "^3.2.7" + "find-up" "^2.1.0" + "pkg-dir" "^2.0.0" -eslint-plugin-escompat@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-escompat/-/eslint-plugin-escompat-3.4.0.tgz#cfd8d3b44fd0bc3d07b8ca15e4b0c15de88a0192" - integrity sha512-ufTPv8cwCxTNoLnTZBFTQ5SxU2w7E7wiMIS7PSxsgP1eAxFjtSaoZ80LRn64hI8iYziE6kJG6gX/ZCJVxh48Bg== +"eslint-plugin-escompat@^3.3.3": + "integrity" "sha512-ufTPv8cwCxTNoLnTZBFTQ5SxU2w7E7wiMIS7PSxsgP1eAxFjtSaoZ80LRn64hI8iYziE6kJG6gX/ZCJVxh48Bg==" + "resolved" "https://registry.npmjs.org/eslint-plugin-escompat/-/eslint-plugin-escompat-3.4.0.tgz" + "version" "3.4.0" dependencies: - browserslist "^4.21.0" + "browserslist" "^4.21.0" -eslint-plugin-eslint-comments@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" - integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== +"eslint-plugin-eslint-comments@^3.2.0": + "integrity" "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz" + "version" "3.2.0" dependencies: - escape-string-regexp "^1.0.5" - ignore "^5.0.5" + "escape-string-regexp" "^1.0.5" + "ignore" "^5.0.5" -eslint-plugin-filenames@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz#7094f00d7aefdd6999e3ac19f72cea058e590cf7" - integrity sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w== +"eslint-plugin-filenames@^1.3.2": + "integrity" "sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w==" + "resolved" "https://registry.npmjs.org/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz" + "version" "1.3.2" dependencies: - lodash.camelcase "4.3.0" - lodash.kebabcase "4.1.1" - lodash.snakecase "4.1.1" - lodash.upperfirst "4.3.1" + "lodash.camelcase" "4.3.0" + "lodash.kebabcase" "4.1.1" + "lodash.snakecase" "4.1.1" + "lodash.upperfirst" "4.3.1" -eslint-plugin-github@^4: - version "4.10.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-github/-/eslint-plugin-github-4.10.0.tgz#6fee1e6f8445f0fff1849f84dbdadeb1e4f8c3c0" - integrity sha512-YKtqBtFbjih1wZNTwZjtLPEG6B/4ySMa38fgOo/rbMJpNKO3+OaKzwwOYkeKx/FapM/4MsTP9ExqUcDV+dkixA== +"eslint-plugin-github@^4": + "integrity" "sha512-osez6Sio/fLr/3QkW5HE1wbCOcmYG5030/6QIa9IcKyyfchewlecdnYcsbeUMUtdIiU9lWqhroQp2H/O7auxBA==" + "resolved" "https://registry.npmjs.org/eslint-plugin-github/-/eslint-plugin-github-4.9.2.tgz" + "version" "4.9.2" dependencies: "@github/browserslist-config" "^1.0.0" "@typescript-eslint/eslint-plugin" "^6.0.0" "@typescript-eslint/parser" "^6.0.0" - aria-query "^5.3.0" - eslint-config-prettier ">=8.0.0" - eslint-plugin-escompat "^3.3.3" - eslint-plugin-eslint-comments "^3.2.0" - eslint-plugin-filenames "^1.3.2" - eslint-plugin-i18n-text "^1.0.1" - eslint-plugin-import "^2.25.2" - eslint-plugin-jsx-a11y "^6.7.1" - eslint-plugin-no-only-tests "^3.0.0" - eslint-plugin-prettier "^5.0.0" - eslint-rule-documentation ">=1.0.0" - jsx-ast-utils "^3.3.2" - prettier "^3.0.0" - svg-element-attributes "^1.3.1" - -eslint-plugin-i18n-text@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-i18n-text/-/eslint-plugin-i18n-text-1.0.1.tgz#69ce14f9af7d135cbe8114b1b144a57bb83291dc" - integrity sha512-3G3UetST6rdqhqW9SfcfzNYMpQXS7wNkJvp6dsXnjzGiku6Iu5hl3B0kmk6lIcFPwYjhQIY+tXVRtK9TlGT7RA== - -eslint-plugin-import@^2.25.2: - version "2.28.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" - integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== - dependencies: - array-includes "^3.1.6" - array.prototype.findlastindex "^1.2.2" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.8.0" - has "^1.0.3" - is-core-module "^2.13.0" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.6" - object.groupby "^1.0.0" - object.values "^1.1.6" - semver "^6.3.1" - tsconfig-paths "^3.14.2" - -eslint-plugin-jest@^27: - version "27.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz#6f8a4bb2ca82c0c5d481d1b3be256ab001f5a3ec" - integrity sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ== + "aria-query" "^5.3.0" + "eslint-config-prettier" ">=8.0.0" + "eslint-plugin-escompat" "^3.3.3" + "eslint-plugin-eslint-comments" "^3.2.0" + "eslint-plugin-filenames" "^1.3.2" + "eslint-plugin-i18n-text" "^1.0.1" + "eslint-plugin-import" "^2.25.2" + "eslint-plugin-jsx-a11y" "^6.7.1" + "eslint-plugin-no-only-tests" "^3.0.0" + "eslint-plugin-prettier" "^5.0.0" + "eslint-rule-documentation" ">=1.0.0" + "jsx-ast-utils" "^3.3.2" + "prettier" "^3.0.0" + "svg-element-attributes" "^1.3.1" + +"eslint-plugin-i18n-text@^1.0.1": + "integrity" "sha512-3G3UetST6rdqhqW9SfcfzNYMpQXS7wNkJvp6dsXnjzGiku6Iu5hl3B0kmk6lIcFPwYjhQIY+tXVRtK9TlGT7RA==" + "resolved" "https://registry.npmjs.org/eslint-plugin-i18n-text/-/eslint-plugin-i18n-text-1.0.1.tgz" + "version" "1.0.1" + +"eslint-plugin-import@^2.25.2": + "integrity" "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==" + "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz" + "version" "2.25.2" + dependencies: + "array-includes" "^3.1.4" + "array.prototype.flat" "^1.2.5" + "debug" "^2.6.9" + "doctrine" "^2.1.0" + "eslint-import-resolver-node" "^0.3.6" + "eslint-module-utils" "^2.7.0" + "has" "^1.0.3" + "is-core-module" "^2.7.0" + "is-glob" "^4.0.3" + "minimatch" "^3.0.4" + "object.values" "^1.1.5" + "resolve" "^1.20.0" + "tsconfig-paths" "^3.11.0" + +"eslint-plugin-jest@^27": + "integrity" "sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz" + "version" "27.2.3" dependencies: "@typescript-eslint/utils" "^5.10.0" -eslint-plugin-jsx-a11y@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" - integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== +"eslint-plugin-jsx-a11y@^6.7.1": + "integrity" "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==" + "resolved" "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz" + "version" "6.7.1" dependencies: "@babel/runtime" "^7.20.7" - aria-query "^5.1.3" - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - ast-types-flow "^0.0.7" - axe-core "^4.6.2" - axobject-query "^3.1.1" - damerau-levenshtein "^1.0.8" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.3" - language-tags "=1.0.5" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - semver "^6.3.0" - -eslint-plugin-no-only-tests@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz#f38e4935c6c6c4842bf158b64aaa20c366fe171b" - integrity sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw== - -eslint-plugin-prettier@^5, eslint-plugin-prettier@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz" - integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" - -eslint-rule-documentation@>=1.0.0: - version "1.0.23" - resolved "https://registry.yarnpkg.com/eslint-rule-documentation/-/eslint-rule-documentation-1.0.23.tgz#4e0886145597a78d24524ec7e0cf18c6fedc23a8" - integrity sha512-pWReu3fkohwyvztx/oQWWgld2iad25TfUdi6wvhhaDPIQjHU/pyvlKgXFw1kX31SQK2Nq9MH+vRDWB0ZLy8fYw== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@^8: - version "8.49.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" - integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== + "aria-query" "^5.1.3" + "array-includes" "^3.1.6" + "array.prototype.flatmap" "^1.3.1" + "ast-types-flow" "^0.0.7" + "axe-core" "^4.6.2" + "axobject-query" "^3.1.1" + "damerau-levenshtein" "^1.0.8" + "emoji-regex" "^9.2.2" + "has" "^1.0.3" + "jsx-ast-utils" "^3.3.3" + "language-tags" "=1.0.5" + "minimatch" "^3.1.2" + "object.entries" "^1.1.6" + "object.fromentries" "^2.0.6" + "semver" "^6.3.0" + +"eslint-plugin-no-only-tests@^3.0.0": + "integrity" "sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==" + "resolved" "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz" + "version" "3.1.0" + +"eslint-plugin-prettier@^5", "eslint-plugin-prettier@^5.0.0": + "integrity" "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==" + "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "prettier-linter-helpers" "^1.0.0" + "synckit" "^0.8.5" + +"eslint-rule-documentation@>=1.0.0": + "integrity" "sha512-pWReu3fkohwyvztx/oQWWgld2iad25TfUdi6wvhhaDPIQjHU/pyvlKgXFw1kX31SQK2Nq9MH+vRDWB0ZLy8fYw==" + "resolved" "https://registry.npmjs.org/eslint-rule-documentation/-/eslint-rule-documentation-1.0.23.tgz" + "version" "1.0.23" + +"eslint-scope@^5.1.1": + "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^4.1.1" + +"eslint-scope@^7.2.2": + "integrity" "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + "version" "7.2.2" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^5.2.0" + +"eslint-visitor-keys@^3.3.0", "eslint-visitor-keys@^3.4.1", "eslint-visitor-keys@^3.4.2": + "integrity" "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz" + "version" "3.4.2" + +"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^8", "eslint@^8.0.1", "eslint@>=4.19.1", "eslint@>=5.0.0", "eslint@>=5.14.1", "eslint@>=7.0.0", "eslint@>=8.0.0": + "integrity" "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==" + "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz" + "version" "8.46.0" dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.49.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - -extend@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.1" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + "ajv" "^6.12.4" + "chalk" "^4.0.0" + "cross-spawn" "^7.0.2" + "debug" "^4.3.2" + "doctrine" "^3.0.0" + "escape-string-regexp" "^4.0.0" + "eslint-scope" "^7.2.2" + "eslint-visitor-keys" "^3.4.2" + "espree" "^9.6.1" + "esquery" "^1.4.2" + "esutils" "^2.0.2" + "fast-deep-equal" "^3.1.3" + "file-entry-cache" "^6.0.1" + "find-up" "^5.0.0" + "glob-parent" "^6.0.2" + "globals" "^13.19.0" + "graphemer" "^1.4.0" + "ignore" "^5.2.0" + "imurmurhash" "^0.1.4" + "is-glob" "^4.0.0" + "is-path-inside" "^3.0.3" + "js-yaml" "^4.1.0" + "json-stable-stringify-without-jsonify" "^1.0.1" + "levn" "^0.4.1" + "lodash.merge" "^4.6.2" + "minimatch" "^3.1.2" + "natural-compare" "^1.4.0" + "optionator" "^0.9.3" + "strip-ansi" "^6.0.1" + "text-table" "^0.2.0" + +"espree@^9.6.0", "espree@^9.6.1": + "integrity" "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==" + "resolved" "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" + "version" "9.6.1" + dependencies: + "acorn" "^8.9.0" + "acorn-jsx" "^5.3.2" + "eslint-visitor-keys" "^3.4.1" + +"esprima@^4.0.0", "esprima@^4.0.1": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"esquery@^1.4.2": + "integrity" "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==" + "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "estraverse" "^5.1.0" + +"esrecurse@^4.3.0": + "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" + "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "estraverse" "^5.2.0" + +"estraverse@^4.1.1": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.1.0", "estraverse@^5.2.0": + "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + "version" "5.3.0" + +"esutils@^2.0.2": + "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + "version" "2.0.3" + +"event-target-shim@^5.0.0": + "integrity" "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + "resolved" "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + "version" "5.0.1" + +"eventemitter3@^3.1.0": + "integrity" "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz" + "version" "3.1.2" + +"eventemitter3@^4.0.0": + "integrity" "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + "version" "4.0.7" + +"execa@^5.0.0": + "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" + "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "cross-spawn" "^7.0.3" + "get-stream" "^6.0.0" + "human-signals" "^2.1.0" + "is-stream" "^2.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^4.0.1" + "onetime" "^5.1.2" + "signal-exit" "^3.0.3" + "strip-final-newline" "^2.0.0" + +"execa@^7.1.1": + "integrity" "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==" + "resolved" "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "cross-spawn" "^7.0.3" + "get-stream" "^6.0.1" + "human-signals" "^4.3.0" + "is-stream" "^3.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^5.1.0" + "onetime" "^6.0.0" + "signal-exit" "^3.0.7" + "strip-final-newline" "^3.0.0" + +"exit@^0.1.2": + "integrity" "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + "version" "0.1.2" + +"expect@^27.2.5": + "integrity" "sha512-ZrO0w7bo8BgGoP/bLz+HDCI+0Hfei9jUSZs5yI/Wyn9VkG9w8oJ7rHRgYj+MA7yqqFa0IwHA3flJzZtYugShJA==" + "resolved" "https://registry.npmjs.org/expect/-/expect-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" + "ansi-styles" "^5.0.0" + "jest-get-type" "^27.0.6" + "jest-matcher-utils" "^27.2.5" + "jest-message-util" "^27.2.5" + "jest-regex-util" "^27.0.6" + +"extend@^3.0.2": + "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + "version" "3.0.2" + +"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-diff@^1.1.2": + "integrity" "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz" + "version" "1.2.0" + +"fast-glob@^3.2.11", "fast-glob@^3.2.9", "fast-glob@^3.3.0": + "integrity" "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" + "version" "3.3.1" dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +"fast-json-stable-stringify@^2.0.0", "fast-json-stable-stringify@2.x": + "integrity" "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" + "version" "2.0.0" -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +"fast-levenshtein@^2.0.6", "fast-levenshtein@~2.0.6": + "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + "version" "2.0.6" -fast-text-encoding@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz" - integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== +"fast-text-encoding@^1.0.0": + "integrity" "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" + "resolved" "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz" + "version" "1.0.3" -fast-xml-parser@^4.2.4: - version "4.2.7" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz#871f2ca299dc4334b29f8da3658c164e68395167" - integrity sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig== +"fast-xml-parser@^3.16.0": + "integrity" "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==" + "resolved" "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz" + "version" "3.21.1" dependencies: - strnum "^1.0.5" + "strnum" "^1.0.4" -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== +"fastq@^1.6.0": + "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + "version" "1.13.0" dependencies: - reusify "^1.0.4" + "reusify" "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== +"fb-watchman@^2.0.0": + "integrity" "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==" + "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + "version" "2.0.1" dependencies: - bser "2.1.1" + "bser" "2.1.1" -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== +"fetch-blob@^3.1.2", "fetch-blob@^3.1.4": + "integrity" "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==" + "resolved" "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz" + "version" "3.2.0" dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" + "node-domexception" "^1.0.0" + "web-streams-polyfill" "^3.0.3" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +"file-entry-cache@^6.0.1": + "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" + "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + "version" "6.0.1" dependencies: - flat-cache "^3.0.4" + "flat-cache" "^3.0.4" -file-type@^10.11.0: - version "10.11.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" - integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== +"file-type@^10.11.0": + "integrity" "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz" + "version" "10.11.0" -filestack-js@^3.25.0: - version "3.27.0" - resolved "https://registry.yarnpkg.com/filestack-js/-/filestack-js-3.27.0.tgz#e4f76e7fce22f1340458d77ed27154832e84bc88" - integrity sha512-izIg553dMG+kI931rgV4FqOAwHOWocXdoL5xkCyd9wG6WLTxn6xk4A3Rm/L3TFlW6h4CHxbPuWQlWiokXcT4Gw== +"filestack-js@^3.25.0": + "integrity" "sha512-SvLkS2P1FMEN8bGwHiV9HJiSypNWkSITx+24a28ao+a7EhsNLYwCkjRgouoIGFIBNWW9IAo6AM1VGcvI+XnQ9w==" + "resolved" "https://registry.npmjs.org/filestack-js/-/filestack-js-3.25.0.tgz" + "version" "3.25.0" dependencies: "@babel/runtime" "^7.8.4" "@filestack/loader" "^1.0.4" "@sentry/minimal" "^6.2.1" - abab "^2.0.3" - debug "^4.1.1" - eventemitter3 "^4.0.0" - fast-xml-parser "^4.2.4" - file-type "^10.11.0" - follow-redirects "^1.10.0" - isutf8 "^2.1.0" - jsonschema "^1.2.5" - lodash.clonedeep "^4.5.0" - p-queue "^4.0.0" - spark-md5 "^3.0.0" - ts-node "^8.10.2" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" - integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== - dependencies: - flatted "^3.2.7" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -follow-redirects@^1.10.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gaxios@^4.0.0: - version "4.3.3" - resolved "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz" - integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== - dependencies: - abort-controller "^3.0.0" - extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.6.7" - -gcp-metadata@^4.2.0: - version "4.3.1" - resolved "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz" - integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== - dependencies: - gaxios "^4.0.0" - json-bigint "^1.0.0" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0: - version "13.21.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" - integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globalyzer@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz" - integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globby@^13.1.1: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - -globrex@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz" - integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== - -google-auth-library@^7.14.1: - version "7.14.1" - resolved "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz" - integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" - jws "^4.0.0" - lru-cache "^6.0.0" - -google-p12-pem@^3.1.3: - version "3.1.4" - resolved "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz" - integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== - dependencies: - node-forge "^1.3.1" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.2: - version "4.2.8" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - -graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -gtoken@^5.0.4: - version "5.3.2" - resolved "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz" - integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== - dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.1.3" - jws "^4.0.0" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-stream-validation@^0.2.2: - version "0.2.4" - resolved "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz" - integrity sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ== - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + "abab" "^2.0.3" + "debug" "^4.1.1" + "eventemitter3" "^4.0.0" + "fast-xml-parser" "^3.16.0" + "file-type" "^10.11.0" + "follow-redirects" "^1.10.0" + "isutf8" "^2.1.0" + "jsonschema" "^1.2.5" + "lodash.clonedeep" "^4.5.0" + "p-queue" "^4.0.0" + "spark-md5" "^3.0.0" + "ts-node" "^8.10.2" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"find-up@^2.1.0": + "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "locate-path" "^2.0.0" + +"find-up@^4.0.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"flat-cache@^3.0.4": + "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" + "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "flatted" "^3.1.0" + "rimraf" "^3.0.2" + +"flatted@^3.1.0": + "integrity" "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==" + "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz" + "version" "3.2.2" + +"follow-redirects@^1.10.0": + "integrity" "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ==" + "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz" + "version" "1.15.0" + +"for-each@^0.3.3": + "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" + "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "is-callable" "^1.1.3" + +"form-data@^3.0.0": + "integrity" "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.8" + "mime-types" "^2.1.12" + +"formdata-polyfill@^4.0.10": + "integrity" "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==" + "resolved" "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz" + "version" "4.0.10" + dependencies: + "fetch-blob" "^3.1.2" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"fsevents@^2.3.2": + "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" + "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + "version" "2.3.2" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"function.prototype.name@^1.1.5": + "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==" + "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.19.0" + "functions-have-names" "^1.2.2" + +"functions-have-names@^1.2.2", "functions-have-names@^1.2.3": + "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + "version" "1.2.3" + +"gaxios@^4.0.0": + "integrity" "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==" + "resolved" "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz" + "version" "4.3.3" + dependencies: + "abort-controller" "^3.0.0" + "extend" "^3.0.2" + "https-proxy-agent" "^5.0.0" + "is-stream" "^2.0.0" + "node-fetch" "^2.6.7" + +"gcp-metadata@^4.2.0": + "integrity" "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==" + "resolved" "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz" + "version" "4.3.1" + dependencies: + "gaxios" "^4.0.0" + "json-bigint" "^1.0.0" + +"gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + +"get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.0", "get-intrinsic@^1.2.1": + "integrity" "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-proto" "^1.0.1" + "has-symbols" "^1.0.3" + +"get-package-type@^0.1.0": + "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + "version" "0.1.0" + +"get-stream@^6.0.0", "get-stream@^6.0.1": + "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + "version" "6.0.1" + +"get-symbol-description@^1.0.0": + "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" + "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.1" + +"glob-parent@^5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-parent@^6.0.2": + "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "is-glob" "^4.0.3" + +"glob@^7.1.1", "glob@^7.1.2", "glob@^7.1.3", "glob@^7.1.4": + "integrity" "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + "version" "7.1.6" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + +"globals@^13.19.0": + "integrity" "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" + "version" "13.20.0" + dependencies: + "type-fest" "^0.20.2" + +"globalthis@^1.0.3": + "integrity" "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==" + "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "define-properties" "^1.1.3" + +"globalyzer@0.1.0": + "integrity" "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==" + "resolved" "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz" + "version" "0.1.0" + +"globby@^11.1.0": + "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + "version" "11.1.0" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.2.9" + "ignore" "^5.2.0" + "merge2" "^1.4.1" + "slash" "^3.0.0" + +"globby@^13.1.1": + "integrity" "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==" + "resolved" "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz" + "version" "13.1.1" + dependencies: + "dir-glob" "^3.0.1" + "fast-glob" "^3.2.11" + "ignore" "^5.2.0" + "merge2" "^1.4.1" + "slash" "^4.0.0" + +"globrex@^0.1.2": + "integrity" "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" + "resolved" "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz" + "version" "0.1.2" + +"google-auth-library@^7.14.1": + "integrity" "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==" + "resolved" "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz" + "version" "7.14.1" + dependencies: + "arrify" "^2.0.0" + "base64-js" "^1.3.0" + "ecdsa-sig-formatter" "^1.0.11" + "fast-text-encoding" "^1.0.0" + "gaxios" "^4.0.0" + "gcp-metadata" "^4.2.0" + "gtoken" "^5.0.4" + "jws" "^4.0.0" + "lru-cache" "^6.0.0" + +"google-p12-pem@^3.1.3": + "integrity" "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==" + "resolved" "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz" + "version" "3.1.4" + dependencies: + "node-forge" "^1.3.1" + +"gopd@^1.0.1": + "integrity" "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==" + "resolved" "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "get-intrinsic" "^1.1.3" + +"graceful-fs@^4.1.2", "graceful-fs@^4.2.4": + "integrity" "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" + "version" "4.2.8" + +"graphemer@^1.4.0": + "integrity" "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + "resolved" "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + "version" "1.4.0" + +"gtoken@^5.0.4": + "integrity" "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==" + "resolved" "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz" + "version" "5.3.2" + dependencies: + "gaxios" "^4.0.0" + "google-p12-pem" "^3.1.3" + "jws" "^4.0.0" + +"has-bigints@^1.0.1", "has-bigints@^1.0.2": + "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + "version" "1.0.2" + +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-property-descriptors@^1.0.0": + "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" + "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-intrinsic" "^1.1.1" + +"has-proto@^1.0.1": + "integrity" "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "resolved" "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" + "version" "1.0.1" + +"has-symbols@^1.0.2", "has-symbols@^1.0.3": + "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + "version" "1.0.3" + +"has-tostringtag@^1.0.0": + "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" + "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has-symbols" "^1.0.2" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"hash-stream-validation@^0.2.2": + "integrity" "sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==" + "resolved" "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz" + "version" "0.2.4" + +"html-encoding-sniffer@^2.0.1": + "integrity" "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==" + "resolved" "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "whatwg-encoding" "^1.0.5" + +"html-escaper@^2.0.0": + "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + "version" "2.0.2" + +"http-proxy-agent@^4.0.1": + "integrity" "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==" + "resolved" "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" + "version" "4.0.1" dependencies: "@tootallnate/once" "1" - agent-base "6" - debug "4" + "agent-base" "6" + "debug" "4" -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== +"http-proxy-agent@^5.0.0": + "integrity" "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==" + "resolved" "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" + "version" "5.0.0" dependencies: "@tootallnate/once" "2" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^5.0.5, ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + "agent-base" "6" + "debug" "4" + +"https-proxy-agent@^5.0.0": + "integrity" "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==" + "resolved" "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "agent-base" "6" + "debug" "4" + +"human-signals@^2.1.0": + "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + "version" "2.1.0" + +"human-signals@^4.3.0": + "integrity" "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" + "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz" + "version" "4.3.1" + +"iconv-lite@0.4.24": + "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + "version" "0.4.24" dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" + "safer-buffer" ">= 2.1.2 < 3" + +"ignore@^5.0.5", "ignore@^5.2.0", "ignore@^5.2.4": + "integrity" "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + "version" "5.2.4" + +"import-fresh@^3.2.1": + "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "parent-module" "^1.0.0" + "resolve-from" "^4.0.0" + +"import-local@^3.0.2": + "integrity" "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==" + "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "pkg-dir" "^4.2.0" + "resolve-cwd" "^3.0.0" + +"imurmurhash@^0.1.4": + "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.3", "inherits@2": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"internal-slot@^1.0.5": + "integrity" "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==" + "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "get-intrinsic" "^1.2.0" + "has" "^1.0.3" + "side-channel" "^1.0.4" + +"is-array-buffer@^3.0.1", "is-array-buffer@^3.0.2": + "integrity" "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==" + "resolved" "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.2.0" + "is-typed-array" "^1.1.10" + +"is-bigint@^1.0.1": + "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" + "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-bigints" "^1.0.1" + +"is-boolean-object@^1.1.0": + "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" + "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-callable@^1.1.3", "is-callable@^1.1.4", "is-callable@^1.2.7": + "integrity" "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + "version" "1.2.7" + +"is-ci@^3.0.0": + "integrity" "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==" + "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "ci-info" "^3.1.1" + +"is-core-module@^2.2.0", "is-core-module@^2.7.0": + "integrity" "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz" + "version" "2.7.0" + dependencies: + "has" "^1.0.3" + +"is-date-object@^1.0.1": + "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" + "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-docker@^2.0.0": + "integrity" "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + "version" "2.2.1" + +"is-docker@^3.0.0": + "integrity" "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" + "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz" + "version" "3.0.0" + +"is-extglob@^2.1.1": + "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-generator-fn@^2.0.0": + "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + "version" "2.1.0" + +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-inside-container@^1.0.0": + "integrity" "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==" + "resolved" "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-docker" "^3.0.0" + +"is-negative-zero@^2.0.2": + "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + "version" "2.0.2" + +"is-number-object@^1.0.4": + "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==" + "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-obj@^2.0.0": + "integrity" "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + "version" "2.0.0" + +"is-path-inside@^3.0.3": + "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + "version" "3.0.3" + +"is-plain-object@^5.0.0": + "integrity" "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" + "version" "5.0.0" + +"is-potential-custom-element-name@^1.0.1": + "integrity" "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "resolved" "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" + "version" "1.0.1" + +"is-regex@^1.1.4": + "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" + "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-shared-array-buffer@^1.0.2": + "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" + "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + +"is-stream@^2.0.0": + "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + "version" "2.0.1" + +"is-stream@^3.0.0": + "integrity" "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" + "version" "3.0.0" + +"is-string@^1.0.5", "is-string@^1.0.7": + "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" + "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-symbol@^1.0.2", "is-symbol@^1.0.3": + "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" + "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-symbols" "^1.0.2" + +"is-typed-array@^1.1.10", "is-typed-array@^1.1.9": + "integrity" "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==" + "resolved" "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" + "version" "1.1.12" + dependencies: + "which-typed-array" "^1.1.11" + +"is-typedarray@^1.0.0": + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + "version" "1.0.0" + +"is-weakref@^1.0.2": + "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" + "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + +"is-wsl@^2.2.0": + "integrity" "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "is-docker" "^2.0.0" + +"isarray@^2.0.5": + "integrity" "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + "version" "2.0.5" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"istanbul-lib-coverage@^3.0.0": + "integrity" "sha512-o5+eTUYzCJ11/+JhW5/FUCdfsdoYVdQ/8I/OveE2XsjehYn5DdeSnNQAbjYaO8gQ6hvGTN6GM6ddQqpTVG5j8g==" + "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.2.tgz" + "version" "3.0.2" + +"istanbul-lib-instrument@^4.0.0", "istanbul-lib-instrument@^4.0.3": + "integrity" "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==" + "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "@babel/core" "^7.7.5" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -isutf8@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isutf8/-/isutf8-2.1.0.tgz#b6d08a02d4ce43bf3b4be39b9b60231b88dfeb2b" - integrity sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ== - -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== - dependencies: - "@jest/types" "^27.5.1" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "istanbul-lib-coverage" "^3.0.0" + "semver" "^6.3.0" + +"istanbul-lib-report@^3.0.0": + "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "istanbul-lib-coverage" "^3.0.0" + "make-dir" "^3.0.0" + "supports-color" "^7.1.0" + +"istanbul-lib-source-maps@^4.0.0": + "integrity" "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "debug" "^4.1.1" + "istanbul-lib-coverage" "^3.0.0" + "source-map" "^0.6.1" + +"istanbul-reports@^3.0.2": + "integrity" "sha512-bFjUnc95rHjdCR63WMHUS7yfJJh8T9IPSWavvR02hhjVwezWALZ5axF9EqjmwZHpXqkzbgAMP8DmAtiyNxrdrQ==" + "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "html-escaper" "^2.0.0" + "istanbul-lib-report" "^3.0.0" + +"isutf8@^2.1.0": + "integrity" "sha512-rEMU6f82evtJNtYMrtVODUbf+C654mos4l+9noOueesUMipSWK6x3tpt8DiXhcZh/ZOBWYzJ9h9cNAlcQQnMiQ==" + "resolved" "https://registry.npmjs.org/isutf8/-/isutf8-2.1.0.tgz" + "version" "2.1.0" + +"jest-changed-files@^27.2.5": + "integrity" "sha512-jfnNJzF89csUKRPKJ4MwZ1SH27wTmX2xiAIHUHrsb/OYd9Jbo4/SXxJ17/nnx6RIifpthk3Y+LEeOk+/dDeGdw==" + "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" + "execa" "^5.0.0" + "throat" "^6.0.1" + +"jest-circus@^27.2.5": + "integrity" "sha512-eyL9IcrAxm3Saq3rmajFCwpaxaRMGJ1KJs+7hlTDinXpJmeR3P02bheM3CYohE7UfwOBmrFMJHjgo/WPcLTM+Q==" + "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/environment" "^27.2.5" + "@jest/test-result" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== - dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + "chalk" "^4.0.0" + "co" "^4.6.0" + "dedent" "^0.7.0" + "expect" "^27.2.5" + "is-generator-fn" "^2.0.0" + "jest-each" "^27.2.5" + "jest-matcher-utils" "^27.2.5" + "jest-message-util" "^27.2.5" + "jest-runtime" "^27.2.5" + "jest-snapshot" "^27.2.5" + "jest-util" "^27.2.5" + "pretty-format" "^27.2.5" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + "throat" "^6.0.1" + +"jest-cli@^27.2.5": + "integrity" "sha512-XzfcOXi5WQrXqFYsDxq5RDOKY4FNIgBgvgf3ZBz4e/j5/aWep5KnsAYH5OFPMdX/TP/LFsYQMRH7kzJUMh6JKg==" + "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/core" "^27.2.5" + "@jest/test-result" "^27.2.5" + "@jest/types" "^27.2.5" + "chalk" "^4.0.0" + "exit" "^0.1.2" + "graceful-fs" "^4.2.4" + "import-local" "^3.0.2" + "jest-config" "^27.2.5" + "jest-util" "^27.2.5" + "jest-validate" "^27.2.5" + "prompts" "^2.0.1" + "yargs" "^16.2.0" + +"jest-config@^27.2.5": + "integrity" "sha512-QdENtn9b5rIIYGlbDNEcgY9LDL5kcokJnXrp7x8AGjHob/XFqw1Z6p+gjfna2sUulQsQ3ce2Fvntnv+7fKYDhQ==" + "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^27.2.5" + "@jest/types" "^27.2.5" + "babel-jest" "^27.2.5" + "chalk" "^4.0.0" + "deepmerge" "^4.2.2" + "glob" "^7.1.1" + "graceful-fs" "^4.2.4" + "is-ci" "^3.0.0" + "jest-circus" "^27.2.5" + "jest-environment-jsdom" "^27.2.5" + "jest-environment-node" "^27.2.5" + "jest-get-type" "^27.0.6" + "jest-jasmine2" "^27.2.5" + "jest-regex-util" "^27.0.6" + "jest-resolve" "^27.2.5" + "jest-runner" "^27.2.5" + "jest-util" "^27.2.5" + "jest-validate" "^27.2.5" + "micromatch" "^4.0.4" + "pretty-format" "^27.2.5" + +"jest-diff@^27.2.5": + "integrity" "sha512-7gfwwyYkeslOOVQY4tVq5TaQa92mWfC9COsVYMNVYyJTOYAqbIkoD3twi5A+h+tAPtAelRxkqY6/xu+jwTr0dA==" + "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "chalk" "^4.0.0" + "diff-sequences" "^27.0.6" + "jest-get-type" "^27.0.6" + "pretty-format" "^27.2.5" + +"jest-docblock@^27.0.6": + "integrity" "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==" + "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz" + "version" "27.0.6" + dependencies: + "detect-newline" "^3.0.0" + +"jest-each@^27.2.5": + "integrity" "sha512-HUPWIbJT0bXarRwKu/m7lYzqxR4GM5EhKOsu0z3t0SKtbFN6skQhpAUADM4qFShBXb9zoOuag5lcrR1x/WM+Ag==" + "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" + "chalk" "^4.0.0" + "jest-get-type" "^27.0.6" + "jest-util" "^27.2.5" + "pretty-format" "^27.2.5" + +"jest-environment-jsdom@^27.2.5": + "integrity" "sha512-QtRpOh/RQKuXniaWcoFE2ElwP6tQcyxHu0hlk32880g0KczdonCs5P1sk5+weu/OVzh5V4Bt1rXuQthI01mBLg==" + "resolved" "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/environment" "^27.2.5" + "@jest/fake-timers" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + "jest-mock" "^27.2.5" + "jest-util" "^27.2.5" + "jsdom" "^16.6.0" + +"jest-environment-node@^27.2.5": + "integrity" "sha512-0o1LT4grm7iwrS8fIoLtwJxb/hoa3GsH7pP10P02Jpj7Mi4BXy65u46m89vEM2WfD1uFJQ2+dfDiWZNA2e6bJg==" + "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/environment" "^27.2.5" + "@jest/fake-timers" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" + "jest-mock" "^27.2.5" + "jest-util" "^27.2.5" -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== +"jest-get-type@^27.0.6": + "integrity" "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==" + "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz" + "version" "27.0.6" -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== +"jest-haste-map@^27.2.5": + "integrity" "sha512-pzO+Gw2WLponaSi0ilpzYBE0kuVJstoXBX8YWyUebR8VaXuX4tzzn0Zp23c/WaETo7XYTGv2e8KdnpiskAFMhQ==" + "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.2.5.tgz" + "version" "27.2.5" dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^27.2.5" "@types/graceful-fs" "^4.1.2" "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" + "anymatch" "^3.0.3" + "fb-watchman" "^2.0.0" + "graceful-fs" "^4.2.4" + "jest-regex-util" "^27.0.6" + "jest-serializer" "^27.0.6" + "jest-util" "^27.2.5" + "jest-worker" "^27.2.5" + "micromatch" "^4.0.4" + "walker" "^1.0.7" optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "fsevents" "^2.3.2" + +"jest-jasmine2@^27.2.5": + "integrity" "sha512-hdxY9Cm/CjLqu2tXeAoQHPgA4vcqlweVXYOg1+S9FeFdznB9Rti+eEBKDDkmOy9iqr4Xfbq95OkC4NFbXXPCAQ==" + "resolved" "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^27.2.5" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + "chalk" "^4.0.0" + "co" "^4.6.0" + "expect" "^27.2.5" + "is-generator-fn" "^2.0.0" + "jest-each" "^27.2.5" + "jest-matcher-utils" "^27.2.5" + "jest-message-util" "^27.2.5" + "jest-runtime" "^27.2.5" + "jest-snapshot" "^27.2.5" + "jest-util" "^27.2.5" + "pretty-format" "^27.2.5" + "throat" "^6.0.1" + +"jest-leak-detector@^27.2.5": + "integrity" "sha512-HYsi3GUR72bYhOGB5C5saF9sPdxGzSjX7soSQS+BqDRysc7sPeBwPbhbuT8DnOpijnKjgwWQ8JqvbmReYnt3aQ==" + "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "jest-get-type" "^27.0.6" + "pretty-format" "^27.2.5" + +"jest-matcher-utils@^27.2.5": + "integrity" "sha512-qNR/kh6bz0Dyv3m68Ck2g1fLW5KlSOUNcFQh87VXHZwWc/gY6XwnKofx76Qytz3x5LDWT09/2+yXndTkaG4aWg==" + "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "chalk" "^4.0.0" + "jest-diff" "^27.2.5" + "jest-get-type" "^27.0.6" + "pretty-format" "^27.2.5" + +"jest-message-util@^27.2.5": + "integrity" "sha512-ggXSLoPfIYcbmZ8glgEJZ8b+e0Msw/iddRmgkoO7lDAr9SmI65IIfv7VnvTnV4FGnIIUIjzM+fHRHO5RBvyAbQ==" + "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.2.5.tgz" + "version" "27.2.5" dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" + "@jest/types" "^27.2.5" "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" + "chalk" "^4.0.0" + "graceful-fs" "^4.2.4" + "micromatch" "^4.0.4" + "pretty-format" "^27.2.5" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + +"jest-mock@^27.2.5": + "integrity" "sha512-HiMB3LqE9RzmeMzZARi2Bz3NoymxyP0gCid4y42ca1djffNtYFKgI220aC1VP1mUZ8rbpqZbHZOJ15093bZV/Q==" + "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" "@types/node" "*" -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== - dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" - -jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" +"jest-pnp-resolver@^1.2.2": + "integrity" "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + "version" "1.2.2" + +"jest-regex-util@^27.0.6": + "integrity" "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==" + "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz" + "version" "27.0.6" + +"jest-resolve-dependencies@^27.2.5": + "integrity" "sha512-BSjefped31bcvvCh++/pN9ueqqN1n0+p8/58yScuWfklLm2tbPbS9d251vJhAy0ZI2pL/0IaGhOTJrs9Y4FJlg==" + "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" + "jest-regex-util" "^27.0.6" + "jest-snapshot" "^27.2.5" + +"jest-resolve@*", "jest-resolve@^27.2.5": + "integrity" "sha512-q5irwS3oS73SKy3+FM/HL2T7WJftrk9BRzrXF92f7net5HMlS7lJMg/ZwxLB4YohKqjSsdksEw7n/jvMxV7EKg==" + "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" + "chalk" "^4.0.0" + "escalade" "^3.1.1" + "graceful-fs" "^4.2.4" + "jest-haste-map" "^27.2.5" + "jest-pnp-resolver" "^1.2.2" + "jest-util" "^27.2.5" + "jest-validate" "^27.2.5" + "resolve" "^1.20.0" + "slash" "^3.0.0" + +"jest-runner@^27.2.5": + "integrity" "sha512-n41vw9RLg5TKAnEeJK9d6pGOsBOpwE89XBniK+AD1k26oIIy3V7ogM1scbDjSheji8MUPC9pNgCrZ/FHLVDNgg==" + "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/console" "^27.2.5" + "@jest/environment" "^27.2.5" + "@jest/test-result" "^27.2.5" + "@jest/transform" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + "chalk" "^4.0.0" + "emittery" "^0.8.1" + "exit" "^0.1.2" + "graceful-fs" "^4.2.4" + "jest-docblock" "^27.0.6" + "jest-environment-jsdom" "^27.2.5" + "jest-environment-node" "^27.2.5" + "jest-haste-map" "^27.2.5" + "jest-leak-detector" "^27.2.5" + "jest-message-util" "^27.2.5" + "jest-resolve" "^27.2.5" + "jest-runtime" "^27.2.5" + "jest-util" "^27.2.5" + "jest-worker" "^27.2.5" + "source-map-support" "^0.5.6" + "throat" "^6.0.1" + +"jest-runtime@^27.2.5": + "integrity" "sha512-N0WRZ3QszKyZ3Dm27HTBbBuestsSd3Ud5ooVho47XZJ8aSKO/X1Ag8M1dNx9XzfGVRNdB/xCA3lz8MJwIzPLLA==" + "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/console" "^27.2.5" + "@jest/environment" "^27.2.5" + "@jest/fake-timers" "^27.2.5" + "@jest/globals" "^27.2.5" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.2.5" + "@jest/transform" "^27.2.5" + "@jest/types" "^27.2.5" + "@types/yargs" "^16.0.0" + "chalk" "^4.0.0" + "cjs-module-lexer" "^1.0.0" + "collect-v8-coverage" "^1.0.0" + "execa" "^5.0.0" + "exit" "^0.1.2" + "glob" "^7.1.3" + "graceful-fs" "^4.2.4" + "jest-haste-map" "^27.2.5" + "jest-message-util" "^27.2.5" + "jest-mock" "^27.2.5" + "jest-regex-util" "^27.0.6" + "jest-resolve" "^27.2.5" + "jest-snapshot" "^27.2.5" + "jest-util" "^27.2.5" + "jest-validate" "^27.2.5" + "slash" "^3.0.0" + "strip-bom" "^4.0.0" + "yargs" "^16.2.0" + +"jest-serializer@^27.0.6": + "integrity" "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==" + "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz" + "version" "27.0.6" dependencies: "@types/node" "*" - graceful-fs "^4.2.9" + "graceful-fs" "^4.2.4" -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== +"jest-snapshot@^27.2.5": + "integrity" "sha512-2/Jkn+VN6Abwz0llBltZaiJMnL8b1j5Bp/gRIxe9YR3FCEh9qp0TXVV0dcpTGZ8AcJV1SZGQkczewkI9LP5yGw==" + "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.2.5.tgz" + "version" "27.2.5" dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" + "@babel/parser" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/transform" "^27.2.5" + "@jest/types" "^27.2.5" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-util@^27.0.0, jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" + "babel-preset-current-node-syntax" "^1.0.0" + "chalk" "^4.0.0" + "expect" "^27.2.5" + "graceful-fs" "^4.2.4" + "jest-diff" "^27.2.5" + "jest-get-type" "^27.0.6" + "jest-haste-map" "^27.2.5" + "jest-matcher-utils" "^27.2.5" + "jest-message-util" "^27.2.5" + "jest-resolve" "^27.2.5" + "jest-util" "^27.2.5" + "natural-compare" "^1.4.0" + "pretty-format" "^27.2.5" + "semver" "^7.3.2" + +"jest-util@^27.0.0": + "integrity" "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz" + "version" "27.4.2" + dependencies: + "@jest/types" "^27.4.2" + "@types/node" "*" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "graceful-fs" "^4.2.4" + "picomatch" "^2.2.3" + +"jest-util@^27.2.5": + "integrity" "sha512-QRhDC6XxISntMzFRd/OQ6TGsjbzA5ONO0tlAj2ElHs155x1aEr0rkYJBEysG6H/gZVH3oGFzCdAB/GA8leh8NQ==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== - dependencies: - "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" - -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== - dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "chalk" "^4.0.0" + "graceful-fs" "^4.2.4" + "is-ci" "^3.0.0" + "picomatch" "^2.2.3" + +"jest-validate@^27.2.5": + "integrity" "sha512-XgYtjS89nhVe+UfkbLgcm+GgXKWgL80t9nTcNeejyO3t0Sj/yHE8BtIJqjZu9NXQksYbGImoQRXmQ1gP+Guffw==" + "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" + "camelcase" "^6.2.0" + "chalk" "^4.0.0" + "jest-get-type" "^27.0.6" + "leven" "^3.1.0" + "pretty-format" "^27.2.5" + +"jest-watcher@^27.2.5": + "integrity" "sha512-umV4qGozg2Dn6DTTtqAh9puPw+DGLK9AQas7+mWjiK8t0fWMpxKg8ZXReZw7L4C88DqorsGUiDgwHNZ+jkVrkQ==" + "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/test-result" "^27.2.5" + "@jest/types" "^27.2.5" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "jest-util" "^27.2.5" + "string-length" "^4.0.1" -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +"jest-worker@^27.2.5": + "integrity" "sha512-HTjEPZtcNKZ4LnhSp02NEH4vE+5OpJ0EsOWYvGQpHgUMLngydESAAMH5Wd/asPf29+XUDQZszxpLg1BkIIA2aw==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.5.tgz" + "version" "27.2.5" dependencies: "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^27.2.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" - integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== - dependencies: - "@jest/core" "^27.5.1" - import-local "^3.0.2" - jest-cli "^27.5.1" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-bigint@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" - integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== - dependencies: - bignumber.js "^9.0.0" - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@2.x, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -jsonschema@^1.2.5: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" - integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== - -jsx-ast-utils@^3.3.2, jsx-ast-utils@^3.3.3: - version "3.3.5" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" - integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - object.assign "^4.1.4" - object.values "^1.1.6" - -jwa@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz" - integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jws@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz" - integrity sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== - dependencies: - jwa "^2.0.0" - safe-buffer "^5.0.1" - -keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== - dependencies: - json-buffer "3.0.1" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -language-subtag-registry@~0.3.2: - version "0.3.22" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" - integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== - -language-tags@=1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== - dependencies: - language-subtag-registry "~0.3.2" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -libsodium-wrappers@^0.7.10: - version "0.7.11" - resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz#53bd20606dffcc54ea2122133c7da38218f575f7" - integrity sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q== - dependencies: - libsodium "^0.7.11" - -libsodium@^0.7.11: - version "0.7.11" - resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.11.tgz#cd10aae7bcc34a300cc6ad0ac88fcca674cfbc2e" - integrity sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.camelcase@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - -lodash.kebabcase@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.snakecase@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - -lodash.upperfirst@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== - -lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@1.x, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.50.0, "mime-db@>= 1.43.0 < 2": - version "1.50.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.0.8: - version "2.1.33" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz" - integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== - dependencies: - mime-db "1.50.0" - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@^2.6.1, node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@^3.2.10: - version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" - integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-forge@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -nwsapi@^2.2.0: - version "2.2.7" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== - -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.fromentries@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.values@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/open/-/open-9.1.0.tgz" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -openapi-typescript@^5.4.0: - version "5.4.1" - resolved "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-5.4.1.tgz" - integrity sha512-AGB2QiZPz4rE7zIwV3dRHtoUC/CWHhUjuzGXvtmMQN2AFV8xCTLKcZUHLcdPQmt/83i22nRE7+TxXOXkK+gf4Q== - dependencies: - js-yaml "^4.1.0" - mime "^3.0.0" - prettier "^2.6.2" - tiny-glob "^0.2.9" - undici "^5.4.0" - yargs-parser "^21.0.1" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" + +"jest@*", "jest@^27.0.0", "jest@^27.2.5": + "integrity" "sha512-vDMzXcpQN4Ycaqu+vO7LX8pZwNNoKMhc+gSp6q1D8S6ftRk8gNW8cni3YFxknP95jxzQo23Lul0BI2FrWgnwYQ==" + "resolved" "https://registry.npmjs.org/jest/-/jest-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/core" "^27.2.5" + "import-local" "^3.0.2" + "jest-cli" "^27.2.5" + +"js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1": + "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"js-yaml@^4.1.0": + "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "argparse" "^2.0.1" + +"jsdom@^16.6.0": + "integrity" "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==" + "resolved" "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" + "version" "16.7.0" + dependencies: + "abab" "^2.0.5" + "acorn" "^8.2.4" + "acorn-globals" "^6.0.0" + "cssom" "^0.4.4" + "cssstyle" "^2.3.0" + "data-urls" "^2.0.0" + "decimal.js" "^10.2.1" + "domexception" "^2.0.1" + "escodegen" "^2.0.0" + "form-data" "^3.0.0" + "html-encoding-sniffer" "^2.0.1" + "http-proxy-agent" "^4.0.1" + "https-proxy-agent" "^5.0.0" + "is-potential-custom-element-name" "^1.0.1" + "nwsapi" "^2.2.0" + "parse5" "6.0.1" + "saxes" "^5.0.1" + "symbol-tree" "^3.2.4" + "tough-cookie" "^4.0.0" + "w3c-hr-time" "^1.0.2" + "w3c-xmlserializer" "^2.0.0" + "webidl-conversions" "^6.1.0" + "whatwg-encoding" "^1.0.5" + "whatwg-mimetype" "^2.3.0" + "whatwg-url" "^8.5.0" + "ws" "^7.4.6" + "xml-name-validator" "^3.0.0" + +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + +"json-bigint@^1.0.0": + "integrity" "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==" + "resolved" "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "bignumber.js" "^9.0.0" + +"json-schema-traverse@^0.4.1": + "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-stable-stringify-without-jsonify@^1.0.1": + "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + "version" "1.0.1" + +"json5@^1.0.1": + "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==" + "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "minimist" "^1.2.0" + +"json5@^2.1.2", "json5@2.x": + "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "minimist" "^1.2.5" + +"jsonschema@^1.2.5": + "integrity" "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==" + "resolved" "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz" + "version" "1.4.1" + +"jsx-ast-utils@^3.3.2", "jsx-ast-utils@^3.3.3": + "integrity" "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==" + "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" + "version" "3.3.5" + dependencies: + "array-includes" "^3.1.6" + "array.prototype.flat" "^1.3.1" + "object.assign" "^4.1.4" + "object.values" "^1.1.6" + +"jwa@^2.0.0": + "integrity" "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==" + "resolved" "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "buffer-equal-constant-time" "1.0.1" + "ecdsa-sig-formatter" "1.0.11" + "safe-buffer" "^5.0.1" + +"jws@^4.0.0": + "integrity" "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==" + "resolved" "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "jwa" "^2.0.0" + "safe-buffer" "^5.0.1" + +"kleur@^3.0.3": + "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + "version" "3.0.3" + +"language-subtag-registry@~0.3.2": + "integrity" "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + "resolved" "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz" + "version" "0.3.22" + +"language-tags@=1.0.5": + "integrity" "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==" + "resolved" "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "language-subtag-registry" "~0.3.2" + +"leven@^3.1.0": + "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + "version" "3.1.0" + +"levn@^0.4.1": + "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "prelude-ls" "^1.2.1" + "type-check" "~0.4.0" + +"levn@~0.3.0": + "integrity" "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + +"libsodium-wrappers@^0.7.10": + "integrity" "sha512-pO3F1Q9NPLB/MWIhehim42b/Fwb30JNScCNh8TcQ/kIc+qGLQch8ag8wb0keK3EP5kbGakk1H8Wwo7v+36rNQg==" + "resolved" "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz" + "version" "0.7.10" + dependencies: + "libsodium" "^0.7.0" + +"libsodium@^0.7.0": + "integrity" "sha512-eY+z7hDrDKxkAK+QKZVNv92A5KYkxfvIshtBJkmg5TSiCnYqZP3i9OO9whE79Pwgm4jGaoHgkM4ao/b9Cyu4zQ==" + "resolved" "https://registry.npmjs.org/libsodium/-/libsodium-0.7.10.tgz" + "version" "0.7.10" + +"locate-path@^2.0.0": + "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "p-locate" "^2.0.0" + "path-exists" "^3.0.0" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"lodash.camelcase@4.3.0": + "integrity" "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "resolved" "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + "version" "4.3.0" + +"lodash.clonedeep@^4.5.0": + "integrity" "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + "version" "4.5.0" + +"lodash.kebabcase@4.1.1": + "integrity" "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" + "resolved" "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" + "version" "4.1.1" + +"lodash.memoize@4.x": + "integrity" "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "resolved" "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + "version" "4.1.2" + +"lodash.merge@^4.6.2": + "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + "version" "4.6.2" + +"lodash.snakecase@4.1.1": + "integrity" "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=" + "resolved" "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" + "version" "4.1.1" + +"lodash.upperfirst@4.3.1": + "integrity" "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=" + "resolved" "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz" + "version" "4.3.1" + +"lodash@^4.7.0": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"make-dir@^3.0.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" + +"make-error@^1.1.1", "make-error@1.x": + "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + "version" "1.3.6" + +"makeerror@1.0.x": + "integrity" "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "tmpl" "1.0.x" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"merge2@^1.3.0", "merge2@^1.4.1": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"micromatch@^4.0.4": + "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "braces" "^3.0.1" + "picomatch" "^2.2.3" + +"mime-db@>= 1.43.0 < 2", "mime-db@1.50.0": + "integrity" "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz" + "version" "1.50.0" + +"mime-types@^2.0.8", "mime-types@^2.1.12": + "integrity" "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz" + "version" "2.1.33" + dependencies: + "mime-db" "1.50.0" + +"mime@^3.0.0": + "integrity" "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + "resolved" "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + "version" "3.0.0" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"mimic-fn@^4.0.0": + "integrity" "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" + "version" "4.0.0" + +"minimatch@^3.0.4", "minimatch@^3.0.5", "minimatch@^3.1.2": + "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist@^1.2.0", "minimist@^1.2.5": + "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + "version" "1.2.6" + +"ms@^2.1.1", "ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"natural-compare-lite@^1.4.0": + "integrity" "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + "resolved" "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + "version" "1.4.0" + +"natural-compare@^1.4.0": + "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + "version" "1.4.0" + +"node-domexception@^1.0.0": + "integrity" "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + "resolved" "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz" + "version" "1.0.0" + +"node-fetch@^2.6.1": + "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + "version" "2.6.7" + dependencies: + "whatwg-url" "^5.0.0" + +"node-fetch@^2.6.7": + "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + "version" "2.6.7" + dependencies: + "whatwg-url" "^5.0.0" + +"node-fetch@^3.2.10": + "integrity" "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz" + "version" "3.2.10" + dependencies: + "data-uri-to-buffer" "^4.0.0" + "fetch-blob" "^3.1.4" + "formdata-polyfill" "^4.0.10" + +"node-forge@^1.3.1": + "integrity" "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + "resolved" "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + "version" "1.3.1" + +"node-int64@^0.4.0": + "integrity" "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + "version" "0.4.0" + +"node-modules-regexp@^1.0.0": + "integrity" "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + "resolved" "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz" + "version" "1.0.0" + +"node-releases@^2.0.13": + "integrity" "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" + "version" "2.0.13" + +"normalize-path@^3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"npm-run-path@^4.0.1": + "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "path-key" "^3.0.0" + +"npm-run-path@^5.1.0": + "integrity" "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "path-key" "^4.0.0" + +"nwsapi@^2.2.0": + "integrity" "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + "resolved" "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz" + "version" "2.2.0" + +"object-inspect@^1.12.3", "object-inspect@^1.9.0": + "integrity" "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" + "version" "1.12.3" + +"object-keys@^1.1.1": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object.assign@^4.1.4": + "integrity" "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + "version" "4.1.4" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "has-symbols" "^1.0.3" + "object-keys" "^1.1.1" + +"object.entries@^1.1.6": + "integrity" "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==" + "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz" + "version" "1.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.fromentries@^2.0.6": + "integrity" "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==" + "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz" + "version" "2.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.values@^1.1.5", "object.values@^1.1.6": + "integrity" "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==" + "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz" + "version" "1.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^5.1.2": + "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "mimic-fn" "^2.1.0" + +"onetime@^6.0.0": + "integrity" "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "mimic-fn" "^4.0.0" + +"open@^9.1.0": + "integrity" "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==" + "resolved" "https://registry.npmjs.org/open/-/open-9.1.0.tgz" + "version" "9.1.0" + dependencies: + "default-browser" "^4.0.0" + "define-lazy-prop" "^3.0.0" + "is-inside-container" "^1.0.0" + "is-wsl" "^2.2.0" + +"openapi-typescript@^5.4.0": + "integrity" "sha512-AGB2QiZPz4rE7zIwV3dRHtoUC/CWHhUjuzGXvtmMQN2AFV8xCTLKcZUHLcdPQmt/83i22nRE7+TxXOXkK+gf4Q==" + "resolved" "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-5.4.1.tgz" + "version" "5.4.1" + dependencies: + "js-yaml" "^4.1.0" + "mime" "^3.0.0" + "prettier" "^2.6.2" + "tiny-glob" "^0.2.9" + "undici" "^5.4.0" + "yargs-parser" "^21.0.1" + +"optionator@^0.8.1": + "integrity" "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + "version" "0.8.3" + dependencies: + "deep-is" "~0.1.3" + "fast-levenshtein" "~2.0.6" + "levn" "~0.3.0" + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + "word-wrap" "~1.2.3" + +"optionator@^0.9.3": + "integrity" "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" + "version" "0.9.3" dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.1, p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-queue@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346" - integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg== - dependencies: - eventemitter3 "^3.1.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^2.6.2: - version "2.7.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -prettier@^3.0.0, prettier@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== - -pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz" - integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== - dependencies: - duplexify "^4.1.1" - inherits "^2.0.3" - pump "^3.0.0" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -readable-stream@^3.1.1: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== - -regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - functions-have-names "^1.2.3" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" - integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== - -resolve@^1.20.0, resolve@^1.22.4: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -retry-request@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz" - integrity sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg== - dependencies: - debug "^4.1.1" - extend "^3.0.2" - -retry@0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-array-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@^5.0.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" + "deep-is" "^0.1.3" + "fast-levenshtein" "^2.0.6" + "levn" "^0.4.1" + "prelude-ls" "^1.2.1" + "type-check" "^0.4.0" + +"p-limit@^1.1.0": + "integrity" "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "p-try" "^1.0.0" + +"p-limit@^2.2.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^3.0.1": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-locate@^2.0.0": + "integrity" "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "p-limit" "^1.1.0" + +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "p-limit" "^2.2.0" + +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-limit" "^3.0.2" + +"p-queue@^4.0.0": + "integrity" "sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==" + "resolved" "https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "eventemitter3" "^3.1.0" + +"p-try@^1.0.0": + "integrity" "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + "version" "1.0.0" + +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + +"parent-module@^1.0.0": + "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" + "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "callsites" "^3.0.0" + +"parse5@6.0.1": + "integrity" "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "resolved" "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + "version" "6.0.1" + +"path-exists@^3.0.0": + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-key@^3.0.0", "path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-key@^4.0.0": + "integrity" "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" + "version" "4.0.0" + +"path-parse@^1.0.6": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" + +"picomatch@^2.0.4": + "integrity" "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" + "version" "2.2.2" + +"picomatch@^2.2.3": + "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + "version" "2.3.0" + +"pirates@^4.0.1": + "integrity" "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "node-modules-regexp" "^1.0.0" + +"pkg-dir@^2.0.0": + "integrity" "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "find-up" "^2.1.0" + +"pkg-dir@^4.2.0": + "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "find-up" "^4.0.0" + +"prelude-ls@^1.2.1": + "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + "version" "1.2.1" + +"prelude-ls@~1.1.2": + "integrity" "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + "version" "1.1.2" + +"prettier-linter-helpers@^1.0.0": + "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==" + "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "fast-diff" "^1.1.2" + +"prettier@^2.6.2": + "integrity" "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" + "version" "2.7.1" + +"prettier@^3.0.0", "prettier@^3.0.1", "prettier@>=3.0.0": + "integrity" "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz" + "version" "3.0.1" + +"pretty-format@^27.2.5": + "integrity" "sha512-+nYn2z9GgicO9JiqmY25Xtq8SYfZ/5VCpEU3pppHHNAhd1y+ZXxmNPd1evmNcAd6Hz4iBV2kf0UpGth5A/VJ7g==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.5.tgz" + "version" "27.2.5" + dependencies: + "@jest/types" "^27.2.5" + "ansi-regex" "^5.0.1" + "ansi-styles" "^5.0.0" + "react-is" "^17.0.1" + +"prompts@^2.0.1": + "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "kleur" "^3.0.3" + "sisteransi" "^1.0.5" + +"psl@^1.1.33": + "integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz" + "version" "1.8.0" + +"pump@^3.0.0": + "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" + "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"pumpify@^2.0.0": + "integrity" "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==" + "resolved" "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "duplexify" "^4.1.1" + "inherits" "^2.0.3" + "pump" "^3.0.0" + +"punycode@^2.1.0", "punycode@^2.1.1": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" + +"react-is@^17.0.1": + "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + "version" "17.0.2" + +"readable-stream@^3.1.1": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"regenerator-runtime@^0.14.0": + "integrity" "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" + "version" "0.14.0" + +"regexp.prototype.flags@^1.5.0": + "integrity" "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==" + "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.2.0" + "functions-have-names" "^1.2.3" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"resolve-cwd@^3.0.0": + "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" + "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "resolve-from" "^5.0.0" + +"resolve-from@^4.0.0": + "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + "version" "4.0.0" + +"resolve-from@^5.0.0": + "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + "version" "5.0.0" + +"resolve@^1.20.0": + "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + "version" "1.20.0" + dependencies: + "is-core-module" "^2.2.0" + "path-parse" "^1.0.6" + +"retry-request@^4.2.2": + "integrity" "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==" + "resolved" "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "debug" "^4.1.1" + "extend" "^3.0.2" + +"retry@0.13.1": + "integrity" "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + "resolved" "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + "version" "0.13.1" + +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" + +"rimraf@^3.0.0", "rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" + +"run-applescript@^5.0.0": + "integrity" "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==" + "resolved" "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "execa" "^5.0.0" + +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "queue-microtask" "^1.2.2" + +"safe-array-concat@^1.0.0": + "integrity" "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==" + "resolved" "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.2.0" + "has-symbols" "^1.0.3" + "isarray" "^2.0.5" + +"safe-buffer@^5.0.1", "safe-buffer@~5.1.1": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@~5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-regex-test@^1.0.0": + "integrity" "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==" + "resolved" "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.3" + "is-regex" "^1.1.4" "safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -semver@7.x, semver@^7.3.2, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -source-map-support@^0.5.17, source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spark-md5@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" - integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -stream-events@^1.0.4, stream-events@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz" - integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== - dependencies: - stubs "^3.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trim@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== - -stubs@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz" - integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svg-element-attributes@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/svg-element-attributes/-/svg-element-attributes-1.3.1.tgz#0c55afac6284291ab563d0913c062cf78a8c0ddb" - integrity sha512-Bh05dSOnJBf3miNMqpsormfNtfidA/GxQVakhtn0T4DECWKeXQRQUceYjJ+OxYiiLdGe4Jo9iFV8wICFapFeIA== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"saxes@^5.0.1": + "integrity" "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==" + "resolved" "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "xmlchars" "^2.2.0" + +"semver@^6.0.0", "semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.3.2": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.7": + "integrity" "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + "version" "7.5.4" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.5.4": + "integrity" "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + "version" "7.5.4" + dependencies: + "lru-cache" "^6.0.0" + +"semver@7.x": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"side-channel@^1.0.4": + "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" + "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.0" + "get-intrinsic" "^1.0.2" + "object-inspect" "^1.9.0" + +"signal-exit@^3.0.2", "signal-exit@^3.0.3", "signal-exit@^3.0.7": + "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + "version" "3.0.7" + +"sisteransi@^1.0.5": + "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + "version" "1.0.5" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"slash@^4.0.0": + "integrity" "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + "resolved" "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + "version" "4.0.0" + +"source-map-support@^0.5.17", "source-map-support@^0.5.6": + "integrity" "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" + "version" "0.5.20" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.5.0": + "integrity" "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + "version" "0.5.7" + +"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.7.3": + "integrity" "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + "version" "0.7.3" + +"spark-md5@^3.0.0": + "integrity" "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" + "resolved" "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz" + "version" "3.0.2" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"stack-utils@^2.0.3": + "integrity" "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==" + "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "escape-string-regexp" "^2.0.0" + +"stream-events@^1.0.4", "stream-events@^1.0.5": + "integrity" "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==" + "resolved" "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "stubs" "^3.0.0" + +"stream-shift@^1.0.0": + "integrity" "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + "resolved" "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" + "version" "1.0.1" + +"streamsearch@^1.1.0": + "integrity" "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + "resolved" "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + "version" "1.1.0" + +"string_decoder@^1.1.1": + "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "safe-buffer" "~5.2.0" + +"string-length@^4.0.1": + "integrity" "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==" + "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "char-regex" "^1.0.2" + "strip-ansi" "^6.0.0" + +"string-width@^4.1.0", "string-width@^4.2.0": + "integrity" "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.0" + +"string.prototype.trim@^1.2.7": + "integrity" "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==" + "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz" + "version" "1.2.7" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"string.prototype.trimend@^1.0.6": + "integrity" "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==" + "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"string.prototype.trimstart@^1.0.6": + "integrity" "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==" + "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "ansi-regex" "^5.0.1" + +"strip-bom@^3.0.0": + "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + "version" "3.0.0" + +"strip-bom@^4.0.0": + "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + "version" "4.0.0" + +"strip-final-newline@^2.0.0": + "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + "version" "2.0.0" + +"strip-final-newline@^3.0.0": + "integrity" "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" + "version" "3.0.0" + +"strip-json-comments@^3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"strnum@^1.0.4": + "integrity" "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + "resolved" "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" + "version" "1.0.5" + +"stubs@^3.0.0": + "integrity" "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" + "resolved" "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz" + "version" "3.0.0" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^7.0.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-color@^8.0.0": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" + dependencies: + "has-flag" "^4.0.0" + +"supports-hyperlinks@^2.0.0": + "integrity" "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==" + "resolved" "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "has-flag" "^4.0.0" + "supports-color" "^7.0.0" + +"svg-element-attributes@^1.3.1": + "integrity" "sha512-Bh05dSOnJBf3miNMqpsormfNtfidA/GxQVakhtn0T4DECWKeXQRQUceYjJ+OxYiiLdGe4Jo9iFV8wICFapFeIA==" + "resolved" "https://registry.npmjs.org/svg-element-attributes/-/svg-element-attributes-1.3.1.tgz" + "version" "1.3.1" + +"symbol-tree@^3.2.4": + "integrity" "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "resolved" "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" + "version" "3.2.4" + +"synckit@^0.8.5": + "integrity" "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==" + "resolved" "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz" + "version" "0.8.5" dependencies: "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" + "tslib" "^2.5.0" -teeny-request@^7.1.3: - version "7.2.0" - resolved "https://registry.npmjs.org/teeny-request/-/teeny-request-7.2.0.tgz" - integrity sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw== +"teeny-request@^7.1.3": + "integrity" "sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==" + "resolved" "https://registry.npmjs.org/teeny-request/-/teeny-request-7.2.0.tgz" + "version" "7.2.0" dependencies: - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - node-fetch "^2.6.1" - stream-events "^1.0.5" - uuid "^8.0.0" + "http-proxy-agent" "^5.0.0" + "https-proxy-agent" "^5.0.0" + "node-fetch" "^2.6.1" + "stream-events" "^1.0.5" + "uuid" "^8.0.0" -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== +"terminal-link@^2.0.0": + "integrity" "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==" + "resolved" "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + "version" "2.1.1" dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" + "ansi-escapes" "^4.2.1" + "supports-hyperlinks" "^2.0.0" -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== +"test-exclude@^6.0.0": + "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==" + "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + "version" "6.0.0" dependencies: "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -throat@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" - integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== - -tiny-glob@^0.2.9: - version "0.2.9" - resolved "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz" - integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== - dependencies: - globalyzer "0.1.0" - globrex "^0.1.2" - -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== - -ts-jest@^27.1.2: - version "27.1.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.5.tgz#0ddf1b163fbaae3d5b7504a1e65c914a95cff297" - integrity sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" - -ts-node@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + "glob" "^7.1.4" + "minimatch" "^3.0.4" + +"text-table@^0.2.0": + "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + "version" "0.2.0" + +"throat@^6.0.1": + "integrity" "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + "resolved" "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" + "version" "6.0.1" + +"tiny-glob@^0.2.9": + "integrity" "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==" + "resolved" "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz" + "version" "0.2.9" + dependencies: + "globalyzer" "0.1.0" + "globrex" "^0.1.2" + +"titleize@^3.0.0": + "integrity" "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==" + "resolved" "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz" + "version" "3.0.0" + +"tmpl@1.0.x": + "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + "version" "1.0.5" + +"to-fast-properties@^2.0.0": + "integrity" "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"tough-cookie@^4.0.0": + "integrity" "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==" + "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "psl" "^1.1.33" + "punycode" "^2.1.1" + "universalify" "^0.1.2" + +"tr46@^2.1.0": + "integrity" "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "punycode" "^2.1.1" + +"tr46@~0.0.3": + "integrity" "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + "version" "0.0.3" + +"ts-api-utils@^1.0.1": + "integrity" "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==" + "resolved" "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz" + "version" "1.0.1" + +"ts-jest@^27.1.2": + "integrity" "sha512-eSOiJOWq6Hhs6Khzk5wKC5sgWIXgXqOCiIl1+3lfnearu58Hj4QpE5tUhQcA3xtZrELbcvAGCsd6HB8OsaVaTA==" + "resolved" "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.2.tgz" + "version" "27.1.2" + dependencies: + "bs-logger" "0.x" + "fast-json-stable-stringify" "2.x" + "jest-util" "^27.0.0" + "json5" "2.x" + "lodash.memoize" "4.x" + "make-error" "1.x" + "semver" "7.x" + "yargs-parser" "20.x" + +"ts-node@^8.10.2": + "integrity" "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==" + "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz" + "version" "8.10.2" + dependencies: + "arg" "^4.1.0" + "diff" "^4.0.1" + "make-error" "^1.1.1" + "source-map-support" "^0.5.17" + "yn" "3.1.1" + +"ts-node@>=9.0.0": + "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==" + "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" + "version" "10.9.1" + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + "acorn" "^8.4.1" + "acorn-walk" "^8.1.1" + "arg" "^4.1.0" + "create-require" "^1.1.0" + "diff" "^4.0.1" + "make-error" "^1.1.1" + "v8-compile-cache-lib" "^3.0.1" + "yn" "3.1.1" + +"tsconfig-paths@^3.11.0": + "integrity" "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==" + "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz" + "version" "3.11.0" dependencies: "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.10.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.5.0, tslib@^2.6.0: - version "2.6.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz" - integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@^4.4.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici@^5.4.0: - version "5.11.0" - resolved "https://registry.npmjs.org/undici/-/undici-5.11.0.tgz" - integrity sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw== - dependencies: - busboy "^1.6.0" - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^8.0.0, uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + "json5" "^1.0.1" + "minimist" "^1.2.0" + "strip-bom" "^3.0.0" + +"tslib@^1.8.1", "tslib@^1.9.3": + "integrity" "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" + "version" "1.10.0" + +"tslib@^2.5.0": + "integrity" "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz" + "version" "2.6.1" + +"tslib@^2.6.0": + "integrity" "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz" + "version" "2.6.1" + +"tsutils@^3.21.0": + "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" + "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + "version" "3.21.0" + dependencies: + "tslib" "^1.8.1" + +"tunnel@^0.0.6", "tunnel@0.0.6": + "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "resolved" "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + "version" "0.0.6" + +"type-check@^0.4.0", "type-check@~0.4.0": + "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "prelude-ls" "^1.2.1" + +"type-check@~0.3.2": + "integrity" "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "prelude-ls" "~1.1.2" + +"type-detect@4.0.8": + "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "version" "4.0.8" + +"type-fest@^0.20.2": + "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + "version" "0.20.2" + +"type-fest@^0.21.3": + "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + "version" "0.21.3" + +"typed-array-buffer@^1.0.0": + "integrity" "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==" + "resolved" "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.2.1" + "is-typed-array" "^1.1.10" + +"typed-array-byte-length@^1.0.0": + "integrity" "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==" + "resolved" "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "for-each" "^0.3.3" + "has-proto" "^1.0.1" + "is-typed-array" "^1.1.10" + +"typed-array-byte-offset@^1.0.0": + "integrity" "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==" + "resolved" "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "for-each" "^0.3.3" + "has-proto" "^1.0.1" + "is-typed-array" "^1.1.10" + +"typed-array-length@^1.0.4": + "integrity" "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==" + "resolved" "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.2" + "for-each" "^0.3.3" + "is-typed-array" "^1.1.9" + +"typedarray-to-buffer@^3.1.5": + "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" + "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "is-typedarray" "^1.0.0" + +"typescript@^4.4.4", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@>=3.8 <5.0", "typescript@>=4.2.0": + "integrity" "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz" + "version" "4.4.4" + +"unbox-primitive@^1.0.2": + "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" + "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + "has-bigints" "^1.0.2" + "has-symbols" "^1.0.3" + "which-boxed-primitive" "^1.0.2" + +"undici-types@~5.26.4": + "integrity" "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "resolved" "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + "version" "5.26.5" + +"undici@^5.4.0": + "integrity" "sha512-oWjWJHzFet0Ow4YZBkyiJwiK5vWqEYoH7BINzJAJOLedZ++JpAlCbUktW2GQ2DS2FpKmxD/JMtWUUWl1BtghGw==" + "resolved" "https://registry.npmjs.org/undici/-/undici-5.11.0.tgz" + "version" "5.11.0" + dependencies: + "busboy" "^1.6.0" + +"unique-string@^2.0.0": + "integrity" "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==" + "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "crypto-random-string" "^2.0.0" + +"universal-user-agent@^6.0.0": + "integrity" "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + "resolved" "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" + "version" "6.0.0" + +"universalify@^0.1.2": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"untildify@^4.0.0": + "integrity" "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + "resolved" "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" + "version" "4.0.0" + +"update-browserslist-db@^1.0.11": + "integrity" "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==" + "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "escalade" "^3.1.1" + "picocolors" "^1.0.0" + +"uri-js@^4.2.2": + "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "punycode" "^2.1.0" + +"util-deprecate@^1.0.1": + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"uuid@^8.0.0": + "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + "version" "8.3.2" + +"v8-compile-cache-lib@^3.0.1": + "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + "version" "3.0.1" + +"v8-to-istanbul@^8.1.0": + "integrity" "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==" + "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz" + "version" "8.1.0" dependencies: "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -web-streams-polyfill@^3.0.3: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.10, which-typed-array@^1.1.11: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@20.x, yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.0.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yarn@^1.22.19: - version "1.22.19" - resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz" - integrity sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + "convert-source-map" "^1.6.0" + "source-map" "^0.7.3" + +"w3c-hr-time@^1.0.2": + "integrity" "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==" + "resolved" "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "browser-process-hrtime" "^1.0.0" + +"w3c-xmlserializer@^2.0.0": + "integrity" "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==" + "resolved" "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "xml-name-validator" "^3.0.0" + +"walker@^1.0.7": + "integrity" "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "makeerror" "1.0.x" + +"web-streams-polyfill@^3.0.3": + "integrity" "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + "resolved" "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz" + "version" "3.2.1" + +"webidl-conversions@^3.0.0": + "integrity" "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + "version" "3.0.1" + +"webidl-conversions@^5.0.0": + "integrity" "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" + "version" "5.0.0" + +"webidl-conversions@^6.1.0": + "integrity" "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" + "version" "6.1.0" + +"whatwg-encoding@^1.0.5": + "integrity" "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==" + "resolved" "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "iconv-lite" "0.4.24" + +"whatwg-mimetype@^2.3.0": + "integrity" "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + "resolved" "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + "version" "2.3.0" + +"whatwg-url@^5.0.0": + "integrity" "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "tr46" "~0.0.3" + "webidl-conversions" "^3.0.0" + +"whatwg-url@^8.0.0", "whatwg-url@^8.5.0": + "integrity" "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" + "version" "8.7.0" + dependencies: + "lodash" "^4.7.0" + "tr46" "^2.1.0" + "webidl-conversions" "^6.1.0" + +"which-boxed-primitive@^1.0.2": + "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" + "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-bigint" "^1.0.1" + "is-boolean-object" "^1.1.0" + "is-number-object" "^1.0.4" + "is-string" "^1.0.5" + "is-symbol" "^1.0.3" + +"which-typed-array@^1.1.10", "which-typed-array@^1.1.11": + "integrity" "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==" + "resolved" "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "available-typed-arrays" "^1.0.5" + "call-bind" "^1.0.2" + "for-each" "^0.3.3" + "gopd" "^1.0.1" + "has-tostringtag" "^1.0.0" + +"which@^2.0.1": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"word-wrap@~1.2.3": + "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + "version" "1.2.3" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^3.0.0": + "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "imurmurhash" "^0.1.4" + "is-typedarray" "^1.0.0" + "signal-exit" "^3.0.2" + "typedarray-to-buffer" "^3.1.5" + +"ws@^7.4.6": + "integrity" "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz" + "version" "7.5.5" + +"xdg-basedir@^4.0.0": + "integrity" "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + "version" "4.0.0" + +"xml-name-validator@^3.0.0": + "integrity" "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + "resolved" "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" + "version" "3.0.0" + +"xmlchars@^2.2.0": + "integrity" "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + "resolved" "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" + "version" "2.2.0" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yargs-parser@^20.2.2", "yargs-parser@20.x": + "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + "version" "20.2.9" + +"yargs-parser@^21.0.1": + "integrity" "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + "version" "21.1.1" + +"yargs@^16.2.0": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yarn@^1.22.19": + "integrity" "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==" + "resolved" "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz" + "version" "1.22.19" + +"yn@3.1.1": + "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + "version" "3.1.1" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0"

>>0?o+1|0:o)^m,32),l=o,U=EA,EA=z,o=(p=w)+F|0,F=s,s=o=(z=e+S|0)>>>0>>0?o+1|0:o,EA=nA(z^EA,F^o,40),o=(S=w)+hA|0,o=((hA=U+EA|0)>>>0>>0?o+1|0:o)+l|0,l=hA,f=e^(hA=f+hA|0),e=o=l>>>0>hA>>>0?o+1|0:o,o=nA(f,o^p,48),v=f=w,p=o,F=q,l=BA,q=nA(_^P,O^AA,1),H=o=w,o=o+HA|0,o=W+((q=(U=q)+fA|0)>>>0>>0?o+1|0:o)|0,fA=o=(q=Y+q|0)>>>0>>0?o+1|0:o,BA=nA(q^DA,o^u,32),o=(Y=w)+gA|0,gA=I=BA+I|0,DA=nA(I^U,(u=I>>>0>>0?o+1|0:o)^H,40),o=(o=l)+(l=w)|0,o=fA+((I=DA+F|0)>>>0>>0?o+1|0:o)|0,fA=I=I+q|0,HA=o=I>>>0>>0?o+1|0:o,q=o,o=k+lA|0,o=((U=QA)>>>0>(QA=j+QA|0)>>>0?o+1|0:o)+q|0,lA=o=(q=I+QA|0)>>>0>>0?o+1|0:o,QA=nA(p^q,o^f,32),o=(U=w)+SA|0,f=I=QA+h|0,I=nA(I^j,(F=k)^(k=I>>>0>>0?o+1|0:o),40),o=MA+(H=w)|0,MA=I,o=lA+((I=rA+I|0)>>>0>>0?o+1|0:o)|0,o=(I=I+q|0)>>>0>>0?o+1|0:o,lA=I,N=(a[A+8|0]|a[A+9|0]<<8|a[A+10|0]<<16|a[A+11|0]<<24)^I,F=o,G=o^(a[A+12|0]|a[A+13|0]<<8|a[A+14|0]<<16|a[A+15|0]<<24),q=nA(BA^fA,Y^HA,48),o=(fA=w)+u|0,u=I=q+gA|0,HA=o=I>>>0>>0?o+1|0:o,BA=eA,o=s+v|0,eA=o=(I=p+z|0)>>>0>>0?o+1|0:o,EA=nA(I^EA,o^S,1),o=(p=w)+yA|0,o=((BA=EA+BA|0)>>>0>>0?o+1|0:o)+r|0,BA=o=(yA=BA+iA|0)>>>0>>0?o+1|0:o,gA=nA(yA^pA,o^uA,32),o=(z=w)+HA|0,iA=o=(rA=gA+u|0)>>>0>>0?o+1|0:o,pA=gA,gA=nA(EA^rA,o^p,40),o=(r=w)+FA|0,o=(gA>>>0>(EA=gA+cA|0)>>>0?o+1|0:o)+BA|0,s=z,z=o=(yA=EA+yA|0)>>>0>>0?o+1|0:o,EA=nA(pA^(cA=yA),s^o,48),o=(p=w)+iA|0,o=(BA=EA+rA|0)>>>0>>0?o+1|0:o,rA=BA,BA^=N,E[A+8|0]=BA,E[A+9|0]=BA>>>8,E[A+10|0]=BA>>>16,E[A+11|0]=BA>>>24,iA=o,o^=G,E[A+12|0]=o,E[A+13|0]=o>>>8,E[A+14|0]=o>>>16,E[A+15|0]=o>>>24,yA=I,BA=eA,I=q,q=nA(y^h,M^SA,1),o=(FA=w)+B|0,o=(q>>>0>(eA=q+g|0)>>>0?o+1|0:o)+T|0,oA=o=(h=eA)>>>0>(eA=oA+eA|0)>>>0?o+1|0:o,I=nA(I^eA,o^fA,32),o=(o=BA)+(BA=w)|0,fA=o=(yA=I+yA|0)>>>0>>0?o+1|0:o,pA=I,yA=nA(q^(T=yA),o^FA,40),o=(y=w)+C|0,o=oA+((I=yA+sA|0)>>>0>>0?o+1|0:o)|0,o=(I=I+eA|0)>>>0>>0?o+1|0:o,oA=I,I^=pA,pA=o,eA=nA(I,o^BA,48),o=(h=w)+fA|0,T=I=eA+T|0,fA=I>>>0>>0?o+1|0:o,DA=I=nA(u^DA,l^HA,1),FA=o=w,o=o+x|0,o=e+((I=I+aA|0)>>>0>>0?o+1|0:o)|0,x=o=(q=I+hA|0)>>>0>>0?o+1|0:o,I=(BA=nA(c^q,o^D,32))+n|0,o=(n=w)+t|0,hA=I,I=(aA=nA(e=I^DA,(DA=I>>>0>>0?o+1|0:o)^FA,40))+X|0,o=(X=w)+tA|0,o=x+(I>>>0>>0?o+1|0:o)|0,o=(x=I+q|0)>>>0>>0?o+1|0:o,q=x^UA^T,E[0|(I=A)]=q,E[I+1|0]=q>>>8,E[I+2|0]=q>>>16,E[I+3|0]=q>>>24,q=o^Q^fA,E[I+4|0]=q,E[I+5|0]=q>>>8,E[I+6|0]=q>>>16,E[I+7|0]=q>>>24,q=(BA=nA(x^BA,o^n,48))+hA|0,o=(hA=w)+DA|0,o=(DA=q>>>0>>0?o+1|0:o)^(a[I+20|0]|a[I+21|0]<<8|a[I+22|0]<<16|a[I+23|0]<<24)^pA,x=(a[I+16|0]|a[I+17|0]<<8|a[I+18|0]<<16|a[I+19|0]<<24)^oA^q,E[I+16|0]=x,E[I+17|0]=x>>>8,E[I+18|0]=x>>>16,E[I+19|0]=x>>>24,E[I+20|0]=o,E[I+21|0]=o>>>8,E[I+22|0]=o>>>16,E[I+23|0]=o>>>24,I=nA(QA^lA,F^U,48),x=w,oA=a[A+36|0]|a[A+37|0]<<8|a[A+38|0]<<16|a[A+39|0]<<24,o=(a[A+32|0]|a[A+33|0]<<8|a[A+34|0]<<16|a[A+35|0]<<24)^nA(gA^rA,r^iA,1)^I,E[A+32|0]=o,E[A+33|0]=o>>>8,E[A+34|0]=o>>>16,E[A+35|0]=o>>>24,o=w^oA^x,E[A+36|0]=o,E[A+37|0]=o>>>8,E[A+38|0]=o>>>16,E[A+39|0]=o>>>24,o=k+x|0,o=(oA=I+f|0)>>>0>>0?o+1|0:o,gA=(a[(I=A)+28|0]|a[I+29|0]<<8|a[I+30|0]<<16|a[I+31|0]<<24)^z^o,x=(a[I+24|0]|a[I+25|0]<<8|a[I+26|0]<<16|a[I+27|0]<<24)^cA^oA,E[I+24|0]=x,E[I+25|0]=x>>>8,E[I+26|0]=x>>>16,E[I+27|0]=x>>>24,E[I+28|0]=gA,E[I+29|0]=gA>>>8,E[I+30|0]=gA>>>16,E[I+31|0]=gA>>>24,gA=a[I+44|0]|a[I+45|0]<<8|a[I+46|0]<<16|a[I+47|0]<<24,I=eA^(a[I+40|0]|a[I+41|0]<<8|a[I+42|0]<<16|a[I+43|0]<<24)^nA(q^aA,X^DA,1),E[A+40|0]=I,E[A+41|0]=I>>>8,E[A+42|0]=I>>>16,E[A+43|0]=I>>>24,I=h^w^gA,E[A+44|0]=I,E[A+45|0]=I>>>8,E[A+46|0]=I>>>16,E[A+47|0]=I>>>24,q=a[A+60|0]|a[A+61|0]<<8|a[A+62|0]<<16|a[A+63|0]<<24,I=BA^(a[A+56|0]|a[A+57|0]<<8|a[A+58|0]<<16|a[A+59|0]<<24)^nA(T^yA,y^fA,1),E[A+56|0]=I,E[A+57|0]=I>>>8,E[A+58|0]=I>>>16,E[A+59|0]=I>>>24,I=hA^w^q,E[A+60|0]=I,E[A+61|0]=I>>>8,E[A+62|0]=I>>>16,E[A+63|0]=I>>>24,q=a[A+52|0]|a[A+53|0]<<8|a[A+54|0]<<16|a[A+55|0]<<24,I=EA^(a[A+48|0]|a[A+49|0]<<8|a[A+50|0]<<16|a[A+51|0]<<24)^nA(oA^MA,o^H,1),E[A+48|0]=I,E[A+49|0]=I>>>8,E[A+50|0]=I>>>16,E[A+51|0]=I>>>24,I=p^w^q,E[A+52|0]=I,E[A+53|0]=I>>>8,E[A+54|0]=I>>>16,E[A+55|0]=I>>>24}function s(A,I,g,C,B,Q,i){var n,r,f,t,e,c,y,h,s,p,k,F,l,S,H,G,U,J,N,Y,b,_,K,P,d,L,R,x,j,X,q,z,V,O,T,W,Z,$,AA,IA,gA,CA,BA,iA,oA,aA,nA,rA,fA=0,tA=0,eA=0,cA=0,yA=0,wA=0,hA=0,sA=0,pA=0,kA=0,FA=0,lA=0,SA=0,HA=0,MA=0,GA=0,UA=0,JA=0,NA=0,YA=0,bA=0,_A=0,KA=0,PA=0,vA=0,mA=0,dA=0,LA=0,RA=0,xA=0,jA=0,XA=0,qA=0,zA=0,VA=0,OA=0,TA=0,WA=0,ZA=0,AI=0,II=0,gI=0,CI=0,BI=0,QI=0,iI=0;return D=f=D-560|0,EA(f+352|0),i&&m(f+352|0,34768,34,0),QA(f+288|0,Q,32,0),m(wA=f+352|0,f+320|0,32,0),m(wA,g,C,B),M(wA,sA=f+224|0),pA=a[(tA=Q)+32|0]|a[tA+33|0]<<8|a[tA+34|0]<<16|a[tA+35|0]<<24,FA=a[tA+36|0]|a[tA+37|0]<<8|a[tA+38|0]<<16|a[tA+39|0]<<24,cA=a[tA+40|0]|a[tA+41|0]<<8|a[tA+42|0]<<16|a[tA+43|0]<<24,fA=a[tA+44|0]|a[tA+45|0]<<8|a[tA+46|0]<<16|a[tA+47|0]<<24,eA=a[tA+48|0]|a[tA+49|0]<<8|a[tA+50|0]<<16|a[tA+51|0]<<24,Q=a[tA+52|0]|a[tA+53|0]<<8|a[tA+54|0]<<16|a[tA+55|0]<<24,yA=a[tA+60|0]|a[tA+61|0]<<8|a[tA+62|0]<<16|a[tA+63|0]<<24,tA=a[tA+56|0]|a[tA+57|0]<<8|a[tA+58|0]<<16|a[tA+59|0]<<24,E[A+56|0]=tA,E[A+57|0]=tA>>>8,E[A+58|0]=tA>>>16,E[A+59|0]=tA>>>24,E[A+60|0]=yA,E[A+61|0]=yA>>>8,E[A+62|0]=yA>>>16,E[A+63|0]=yA>>>24,E[A+48|0]=eA,E[A+49|0]=eA>>>8,E[A+50|0]=eA>>>16,E[A+51|0]=eA>>>24,E[A+52|0]=Q,E[A+53|0]=Q>>>8,E[A+54|0]=Q>>>16,E[A+55|0]=Q>>>24,E[A+40|0]=cA,E[A+41|0]=cA>>>8,E[A+42|0]=cA>>>16,E[A+43|0]=cA>>>24,E[A+44|0]=fA,E[A+45|0]=fA>>>8,E[A+46|0]=fA>>>16,E[A+47|0]=fA>>>24,E[0|(Q=A+32|0)]=pA,E[Q+1|0]=pA>>>8,E[Q+2|0]=pA>>>16,E[Q+3|0]=pA>>>24,E[Q+4|0]=FA,E[Q+5|0]=FA>>>8,E[Q+6|0]=FA>>>16,E[Q+7|0]=FA>>>24,u(sA),v(f,sA),uA(A,f),EA(wA),i&&m(f+352|0,34768,34,0),m(i=f+352|0,A,64,0),m(i,g,C,B),M(i,hA=f+160|0),u(hA),E[f+288|0]=248&a[f+288|0],E[f+319|0]=63&a[f+319|0]|64,g=a[23+(A=r=f+288|0)|0],cA=DA(t=a[A+21|0]|a[A+22|0]<<8|g<<16&2031616,0,e=(a[hA+28|0]|a[hA+29|0]<<8|a[hA+30|0]<<16|a[hA+31|0]<<24)>>>7|0,0),eA=w,g=(A=a[hA+27|0])>>>24|0,B=A<<8|(fA=a[hA+23|0]|a[hA+24|0]<<8|a[hA+25|0]<<16|a[hA+26|0]<<24)>>>24,A=DA(c=2097151&((3&(FA=(A=(C=a[hA+28|0])>>>16|0)|g))<<30|(g=(C<<=16)|B)>>>2),0,y=(i=a[r+23|0]|a[r+24|0]<<8|a[r+25|0]<<16|a[r+26|0]<<24)>>>5&2097151,0),g=w+eA|0,C=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,A=DA(h=(g=a[hA+23|0])<<16&2031616|a[hA+21|0]|a[hA+22|0]<<8,0,s=(a[r+28|0]|a[r+29|0]<<8|a[r+30|0]<<16|a[r+31|0]<<24)>>>7|0,0),C=w+C|0,eA=g=A+B|0,B=A>>>0>g>>>0?C+1|0:C,C=(A=a[r+27|0])>>>24|0,i=A<<8|i>>>24,A=DA(p=2097151&((3&(C|=g=(A=a[r+28|0])>>>16|0))<<30|(g=(A<<=16)|i)>>>2),0,k=fA>>>5&2097151,0),g=w+B|0,tA=C=A+eA|0,B=A>>>0>C>>>0?g+1|0:g,fA=DA(y,0,k,0),eA=w,g=(A=a[r+19|0])>>>24|0,i=A<<8|(UA=a[r+15|0]|a[r+16|0]<<8|a[r+17|0]<<16|a[r+18|0]<<24)>>>24,C=g,g=DA(F=(7&(C|=g=(A=a[r+20|0])>>>16|0))<<29|(g=(A<<=16)|i)>>>3,FA=C>>>3|0,e,0),A=w+eA|0,A=g>>>0>(C=g+fA|0)>>>0?A+1|0:A,i=(g=DA(t,0,c,0))+C|0,C=w+A|0,g=g>>>0>(fA=i)>>>0?C+1|0:C,C=(A=a[hA+19|0])>>>24|0,eA=A<<8|(GA=a[hA+15|0]|a[hA+16|0]<<8|a[hA+17|0]<<16|a[hA+18|0]<<24)>>>24,A=DA(l=(7&(cA=(A=(i=a[hA+20|0])>>>16|0)|C))<<29|(C=(i<<=16)|eA)>>>3,S=cA>>>3|0,s,0),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,A=DA(h,0,p,0),g=w+g|0,pA=g=A>>>0>(sA=A+C|0)>>>0?g+1|0:g,lA=A=g-((sA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+B|0,fA=C=(A=(2097151&A)<<11|(cA=sA- -1048576|0)>>>21)>>>0>(tA=A+tA|0)>>>0?C+1|0:C,HA=A=C-((tA>>>0<4293918720)-1|0)|0,wA=(2097151&A)<<11|(eA=tA- -1048576|0)>>>21,i=A>>>21|0,A=DA(s,0,k,0),g=w,C=A,A=DA(e,0,y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,SA=(A=C)+(C=DA(c,0,p,0))|0,A=w+g|0,A=C>>>0>SA>>>0?A+1|0:A,yA=SA-(g=-2097152&(C=SA- -1048576|0))|0,g=(A-((131071&(B=A-((SA>>>0<4293918720)-1|0)|0))+(g>>>0>SA>>>0)|0)|0)+i|0,j=g=(A=yA+wA|0)>>>0>>0?g+1|0:g,X=A,yA=DA(A,g,470296,0),wA=w,g=DA(e,0,p,0),A=w,i=g,g=DA(c,0,s,0),A=w+A|0,g=g>>>0>(i=i+g|0)>>>0?A+1|0:A,A=B>>>21|0,B=(2097151&B)<<11|C>>>21,C=A+g|0,_A=B=(C=B>>>0>(i=B+i|0)>>>0?C+1|0:C)-((i>>>0<4293918720)-1|0)|0,A=i-(g=-2097152&(bA=i- -1048576|0))|0,q=i=C-((131071&B)+(g>>>0>i>>>0)|0)|0,z=g=tA-(C=-2097152&eA)|0,V=B=fA-((C>>>0>tA>>>0)+HA|0)|0,O=A,C=DA(A,i,666643,0),A=w+wA|0,A=C>>>0>(i=C+yA|0)>>>0?A+1|0:A,C=DA(g,B,654183,0),g=w+A|0,kA=B=C+i|0,eA=C>>>0>B>>>0?g+1|0:g,SA=sA-(A=-2097152&cA)|0,lA=pA-((A>>>0>sA>>>0)+lA|0)|0,g=DA(c,0,F,FA),C=w,B=(A=g)+(g=DA(H=UA>>>6&2097151,0,e,0))|0,A=w+C|0,A=g>>>0>B>>>0?A+1|0:A,g=DA(y,0,h,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(t,0,k,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(s,0,G=GA>>>6&2097151,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=DA(p,0,l,S),g=w+A|0,sA=B=C+B|0,i=C>>>0>B>>>0?g+1|0:g,g=(A=a[r+14|0])>>>24|0,B=A<<8|(pA=a[r+10|0]|a[r+11|0]<<8|a[r+12|0]<<16|a[r+13|0]<<24)>>>24,g=DA(U=2097151&((1&(g|=A=(C=a[r+15|0])>>>16|0))<<31|(A=(C<<=16)|B)>>>1),0,e,0),A=w,C=g,g=DA(c,0,H,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(k,0,F,FA))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(y,0,l,S),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,A=DA(t,0,h,0),g=w+g|0,cA=C=A+B|0,B=A>>>0>C>>>0?g+1|0:g,g=(A=a[hA+14|0])>>>24|0,fA=A<<8|(tA=a[hA+10|0]|a[hA+11|0]<<8|a[hA+12|0]<<16|a[hA+13|0]<<24)>>>24,C=g,g=(A=a[hA+15|0])>>>16|0,g=DA(J=2097151&((1&(g|=C))<<31|(A=A<<16|fA)>>>1),0,s,0),A=w+B|0,A=g>>>0>(C=g+cA|0)>>>0?A+1|0:A,g=DA(p,0,G,0),A=w+A|0,fA=A=g>>>0>(cA=g+C|0)>>>0?A+1|0:A,KA=g=A-((cA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,wA=C=(g=(2097151&g)<<11|(yA=cA- -1048576|0)>>>21)>>>0>(HA=g+sA|0)>>>0?C+1|0:C,NA=g=C-((HA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+lA|0,T=A=(g=(C=(2097151&g)<<11|(sA=HA- -1048576|0)>>>21)+SA|0)>>>0>>0?A+1|0:A,W=g,A=DA(g,A,-997805,-1),g=w+eA|0,kA=C=A+kA|0,eA=A>>>0>C>>>0?g+1|0:g,SA=(mA=a[23+(n=f+224|0)|0]|a[n+24|0]<<8|a[n+25|0]<<16|a[n+26|0]<<24)>>>5&2097151,C=DA(N=(A=a[r+2|0])<<16&2031616|a[0|r]|a[r+1|0]<<8,0,k,0),g=w,B=(A=DA(h,0,Y=(i=a[r+2|0]|a[r+3|0]<<8|a[r+4|0]<<16|a[r+5|0]<<24)>>>5&2097151,0))+C|0,C=w+g|0,C=A>>>0>B>>>0?C+1|0:C,A=DA(b=(a[r+7|0]|a[r+8|0]<<8|a[r+9|0]<<16|a[r+10|0]<<24)>>>7&2097151,0,G,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(J,0,_=pA>>>4&2097151,0),A=w+g|0,pA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=(g=a[r+6|0])<<8|i>>>24,C=A=g>>>24|0,g=(A=a[r+7|0])>>>16|0,g=DA(K=2097151&((3&(g|=C))<<30|(A=A<<16|i)>>>2),0,l,S),A=w+B|0,A=g>>>0>(C=g+pA|0)>>>0?A+1|0:A,B=(g=DA(H,0,P=(a[hA+7|0]|a[hA+8|0]<<8|a[hA+9|0]<<16|a[hA+10|0]<<24)>>>7&2097151,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,g=DA(U,0,YA=tA>>>4&2097151,0),A=w+C|0,i=g>>>0>(B=g+B|0)>>>0?A+1|0:A,A=(g=a[hA+6|0])>>>24|0,pA=g<<8|(tA=a[hA+2|0]|a[hA+3|0]<<8|a[hA+4|0]<<16|a[hA+5|0]<<24)>>>24,g=A,A=DA(F,FA,d=2097151&((3&(g|=C=(A=a[hA+7|0])>>>16|0))<<30|(A=A<<16|pA)>>>2),0),g=w+i|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,B=C,C=DA(L=(A=a[hA+2|0])<<16&2031616|a[0|hA]|a[hA+1|0]<<8,0,y,0),A=w+g|0,A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,g=DA(t,0,R=tA>>>5&2097151,0),A=w+A|0,g=g>>>0>(C=g+B|0)>>>0?A+1|0:A,pA=A=C+SA|0,i=g=A>>>0>>0?g+1|0:g,B=a[n+21|0]|a[n+22|0]<<8,A=DA(h,0,N,0),g=w,tA=(C=A)+(A=DA(l,S,Y,0))|0,C=w+g|0,C=A>>>0>tA>>>0?C+1|0:C,A=DA(J,0,b,0),g=w+C|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,A=DA(_,0,YA,0),g=w+g|0,g=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,tA=(A=C)+(C=DA(G,0,K,0))|0,A=w+g|0,A=C>>>0>tA>>>0?A+1|0:A,g=DA(H,0,d,0),A=w+A|0,A=g>>>0>(C=g+tA|0)>>>0?A+1|0:A,tA=(g=DA(U,0,P,0))+C|0,C=w+A|0,C=g>>>0>tA>>>0?C+1|0:C,A=DA(F,FA,R,0),g=w+C|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,A=DA(t,0,L,0),g=w+g|0,A=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,g=(g=C)>>>0>(C=C+B|0)>>>0?A+1|0:A,B=C,C=(A=a[n+23|0])<<16&2031616,A=g,C=A=C>>>0>(B=B+C|0)>>>0?A+1|0:A,hA=A=A-((B>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+i|0,A=(g=(i=pA=(A=(2097151&A)<<11|(tA=B- -1048576|0)>>>21)+pA|0)>>>0>>0?g+1|0:g)+eA|0,A=(eA=i+kA|0)>>>0>>0?A+1|0:A,UA=i- -1048576|0,MA=i=g-((i>>>0<4293918720)-1|0)|0,JA=eA-(g=-2097152&UA)|0,PA=A-((g>>>0>eA>>>0)+i|0)|0,pA=B,eA=C,A=DA(z,V,470296,0),g=w,C=A,A=DA(X,j,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(W,T,654183,0))|0,A=w+g|0,GA=B,i=C>>>0>B>>>0?A+1|0:A,g=DA(l,S,N,0),A=w,C=g,g=DA(G,0,Y,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(b,0,YA,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(_,0,P,0),C=w+g|0,C=A>>>0>(B=A+B|0)>>>0?C+1|0:C,A=DA(J,0,K,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(H,0,R,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(U,0,d,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(F,FA,L,0))|0,g=w+A|0,SA=B,C=C>>>0>B>>>0?g+1|0:g,g=(A=a[n+19|0])>>>24|0,lA=A<<8|(kA=a[n+15|0]|a[n+16|0]<<8|a[n+17|0]<<16|a[n+18|0]<<24)>>>24,C=((vA=(A=(B=a[n+20|0])>>>16|0)|g)>>>3|0)+C|0,SA=B=(g=(7&vA)<<29|(g=(B<<=16)|lA)>>>3)+SA|0,B=g>>>0>B>>>0?C+1|0:C,lA=kA>>>6&2097151,A=DA(G,0,N,0),g=w,C=A,A=DA(J,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,kA=(A=C)+(C=DA(b,0,P,0))|0,A=w+g|0,A=C>>>0>kA>>>0?A+1|0:A,C=DA(_,0,d,0),g=w+A|0,g=C>>>0>(kA=C+kA|0)>>>0?g+1|0:g,C=DA(K,0,YA,0),A=w+g|0,A=C>>>0>(kA=C+kA|0)>>>0?A+1|0:A,g=DA(H,0,L,0),C=w+A|0,C=g>>>0>(kA=g+kA|0)>>>0?C+1|0:C,A=DA(U,0,R,0),g=w+C|0,A=A>>>0>(kA=A+kA|0)>>>0?g+1|0:g,VA=A=(LA=kA+lA|0)>>>0>>0?A+1|0:A,gI=A=A-((LA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(qA=LA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,TA=A=C>>>0>(OA=C+SA|0)>>>0?A+1|0:A,CI=A=A-((OA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(xA=OA- -1048576|0)>>>21,A=(A>>>21|0)+i|0,g=(C>>>0>(B=C+GA|0)>>>0?A+1|0:A)+eA|0,eA=(C=B+pA|0)-(A=-2097152&tA)|0,hA=A=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+hA|0)|0,BI=A=A-((eA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(jA=eA- -1048576|0)>>>21,A=(A>>21)+PA|0,B=A=C>>>0>(i=C+JA|0)>>>0?A+1|0:A,II=A=A-((i>>>0<4293918720)-1|0)|0,XA=(2097151&A)<<11|(GA=i- -1048576|0)>>>21,pA=A>>21,vA=HA-(A=-2097152&sA)|0,NA=wA-((A>>>0>HA>>>0)+NA|0)|0,A=DA(e,0,s,0),zA=g=w,JA=A,kA=A- -1048576|0,RA=g=g-((A>>>0<4293918720)-1|0)|0,Z=A=g>>>21|0,A=DA(x=(2097151&g)<<11|kA>>>21,A,-683901,-1),g=w+fA|0,g=A>>>0>(C=A+cA|0)>>>0?g+1|0:g,sA=C-(A=-2097152&yA)|0,tA=g-((A>>>0>C>>>0)+KA|0)|0,g=DA(k,0,H,0),A=w,C=g,g=DA(e,0,_,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=DA(c,0,U,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,fA=(g=C)+(C=DA(h,0,F,FA))|0,g=w+A|0,g=C>>>0>fA>>>0?g+1|0:g,A=DA(y,0,G,0),C=w+g|0,C=A>>>0>(fA=A+fA|0)>>>0?C+1|0:C,A=DA(t,0,l,S),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(s,0,YA,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(p,0,J,0),A=w+A|0,cA=C=g+fA|0,fA=g>>>0>C>>>0?A+1|0:A,A=DA(c,0,_,0),g=w,C=A,A=DA(e,0,b,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,wA=(A=DA(h,0,H,0))+C|0,C=w+g|0,C=A>>>0>wA>>>0?C+1|0:C,A=DA(k,0,U,0),g=w+C|0,g=A>>>0>(wA=A+wA|0)>>>0?g+1|0:g,C=DA(F,FA,l,S),A=w+g|0,A=C>>>0>(wA=C+wA|0)>>>0?A+1|0:A,g=DA(y,0,J,0),A=w+A|0,A=g>>>0>(C=g+wA|0)>>>0?A+1|0:A,wA=(g=C)+(C=DA(t,0,G,0))|0,g=w+A|0,g=C>>>0>wA>>>0?g+1|0:g,A=DA(s,0,P,0),C=w+g|0,C=A>>>0>(wA=A+wA|0)>>>0?C+1|0:C,A=DA(p,0,YA,0),g=w+C|0,lA=g=A>>>0>(SA=A+wA|0)>>>0?g+1|0:g,ZA=A=g-((SA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(HA=SA- -1048576|0)>>>21,A=(A>>>21|0)+fA|0,yA=A=g>>>0>(KA=g+cA|0)>>>0?A+1|0:A,dA=A=A-((KA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+tA|0,sA=g=(A=(2097151&A)<<11|(wA=KA- -1048576|0)>>>21)>>>0>(PA=A+sA|0)>>>0?g+1|0:g,WA=A=g-((PA>>>0<4293918720)-1|0)|0,fA=(2097151&A)<<11|(tA=PA- -1048576|0)>>>21,A=(A>>21)+NA|0,$=A=(g=fA+vA|0)>>>0>>0?A+1|0:A,AA=g,A=DA(g,A,-683901,-1),g=w+pA|0,XA=C=A+XA|0,pA=A>>>0>C>>>0?g+1|0:g,A=DA(c,0,N,0),g=w,C=A,A=DA(k,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(l,S,b,0))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(G,0,_,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,g=DA(h,0,K,0),A=w+C|0,A=g>>>0>(fA=g+fA|0)>>>0?A+1|0:A,C=DA(H,0,YA,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,A=DA(U,0,J,0),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(F,FA,P,0))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(y,0,R,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,g=DA(t,0,d,0),A=w+C|0,A=g>>>0>(fA=g+fA|0)>>>0?A+1|0:A,C=DA(p,0,L,0),g=w+A|0,NA=fA=C+fA|0,C=C>>>0>fA>>>0?g+1|0:g,g=(A=a[n+27|0])>>>24|0,cA=A<<8|mA>>>24,fA=2097151&((3&(g|=A=(fA=a[n+28|0])>>>16|0))<<30|(A=(fA<<=16)|cA)>>>2),g=C,cA=A=fA+NA|0,fA=A>>>0>>0?g+1|0:g,vA=DA(O,q,470296,0),NA=w,A=(C=(2097151&_A)<<11|bA>>>21)+(JA-(g=-2097152&kA)|0)|0,g=zA-((524287&RA)+(g>>>0>JA>>>0)|0)+(_A>>>21)|0,IA=g=A>>>0>>0?g+1|0:g,gA=A,g=DA(A,g,666643,0),A=w+NA|0,A=g>>>0>(C=g+vA|0)>>>0?A+1|0:A,kA=(g=DA(X,j,654183,0))+C|0,C=w+A|0,C=g>>>0>kA>>>0?C+1|0:C,g=DA(z,V,-997805,-1),A=w+C|0,A=g>>>0>(kA=g+kA|0)>>>0?A+1|0:A,C=DA(W,T,136657,0),g=w+A|0,UA=(A=(2097151&MA)<<11|UA>>>21)+(kA=C+kA|0)|0,g=(MA>>>21|0)+(C>>>0>kA>>>0?g+1|0:g)|0,RA=kA=fA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>UA>>>0?g+1|0:g)+fA|0,g=(fA=cA+UA|0)-(C=-2097152&(zA=cA- -1048576|0))|0,C=(A=(A=fA>>>0>>0?A+1|0:A)-((C>>>0>fA>>>0)+kA|0)|0)+pA|0,vA=fA=A-((g>>>0<4293918720)-1|0)|0,JA=(C=(cA=g+XA|0)>>>0>>0?C+1|0:C)-(((g=-2097152&(NA=g- -1048576|0))>>>0>cA>>>0)+fA|0)|0,mA=A=cA-g|0,fA=i,i=B,AI=PA-(A=-2097152&tA)|0,kA=sA-((A>>>0>PA>>>0)+WA|0)|0,A=DA(gA,IA,-683901,-1),g=w,B=(C=A)+(A=DA(x,Z,136657,0))|0,C=w+g|0,g=yA+(A>>>0>B>>>0?C+1|0:C)|0,wA=(C=B+KA|0)-(A=-2097152&wA)|0,sA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+dA|0)|0,g=DA(x,Z,-997805,-1),A=w+lA|0,A=g>>>0>(C=g+SA|0)>>>0?A+1|0:A,B=(g=DA(gA,IA,136657,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(O,q,-683901,-1),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,tA=B-(A=-2097152&HA)|0,pA=g-((A>>>0>B>>>0)+ZA|0)|0,g=DA(k,0,_,0),A=w,C=g,g=DA(c,0,b,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(e,0,K,0))+C|0,C=w+A|0,C=g>>>0>B>>>0?C+1|0:C,A=DA(l,S,H,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(h,0,U,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,C=DA(F,FA,G,0),g=w+A|0,g=C>>>0>(B=C+B|0)>>>0?g+1|0:g,C=DA(y,0,YA,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(t,0,J,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(s,0,d,0),g=w+C|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,C=DA(p,0,P,0),A=w+g|0,cA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,A=DA(k,0,b,0),g=w,C=A,A=DA(e,0,Y,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,yA=(A=C)+(C=DA(h,0,_,0))|0,A=w+g|0,A=C>>>0>yA>>>0?A+1|0:A,g=DA(c,0,K,0),C=w+A|0,C=g>>>0>(yA=g+yA|0)>>>0?C+1|0:C,A=DA(H,0,G,0),g=w+C|0,g=A>>>0>(yA=A+yA|0)>>>0?g+1|0:g,C=DA(l,S,U,0),A=w+g|0,A=C>>>0>(yA=C+yA|0)>>>0?A+1|0:A,C=DA(F,FA,J,0),g=w+A|0,g=C>>>0>(yA=C+yA|0)>>>0?g+1|0:g,C=DA(y,0,P,0),A=w+g|0,A=C>>>0>(yA=C+yA|0)>>>0?A+1|0:A,g=DA(t,0,YA,0),C=w+A|0,C=g>>>0>(yA=g+yA|0)>>>0?C+1|0:C,yA=(A=DA(s,0,R,0))+yA|0,g=w+C|0,C=DA(p,0,d,0),A=w+(A>>>0>yA>>>0?g+1|0:g)|0,PA=A=C>>>0>(WA=C+yA|0)>>>0?A+1|0:A,BA=A=A-((WA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(_A=WA- -1048576|0)>>>21,A=(A>>>21|0)+B|0,bA=A=C>>>0>(XA=C+cA|0)>>>0?A+1|0:A,iA=A=A-((XA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(MA=XA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,UA=A=C>>>0>(KA=C+tA|0)>>>0?A+1|0:A,oA=A=A-((KA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(lA=KA- -1048576|0)>>>21,A=(A>>21)+sA|0,B=A=C>>>0>(tA=C+wA|0)>>>0?A+1|0:A,sA=A=A-((tA>>>0<4293918720)-1|0)|0,pA=(2097151&A)<<11|(C=tA- -1048576|0)>>>21,A=(A>>21)+kA|0,ZA=A=(cA=pA+AI|0)>>>0>>0?A+1|0:A,dA=cA,A=DA(cA,A,-683901,-1),g=w,cA=A,A=DA(AA,$,136657,0),g=w+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+i|0,QI=(i=fA+cA|0)-(g=-2097152&GA)|0,iI=(A=i>>>0>>0?A+1|0:A)-((g>>>0>i>>>0)+II|0)|0,pA=eA,cA=hA,eA=DA(dA,ZA,136657,0),i=w,AI=A=tA-(g=-2097152&C)|0,CA=B=B-((g>>>0>tA>>>0)+sA|0)|0,C=DA(AA,$,-997805,-1),g=w+i|0,g=C>>>0>(eA=C+eA|0)>>>0?g+1|0:g,C=DA(A,B,-683901,-1),A=w+g|0,II=B=C+eA|0,fA=C>>>0>B>>>0?A+1|0:A,A=DA(W,T,470296,0),g=w,B=(C=A)+(A=DA(z,V,666643,0))|0,C=w+g|0,g=TA+(A>>>0>B>>>0?C+1|0:C)|0,kA=A=B+OA|0,i=g=A>>>0>>0?g+1|0:g,g=DA(W,T,666643,0),A=w+VA|0,A=g>>>0>(C=g+LA|0)>>>0?A+1|0:A,wA=C-(g=-2097152&qA)|0,SA=A-((g>>>0>C>>>0)+gI|0)|0,g=DA(J,0,N,0),A=w,C=g,g=DA(Y,0,YA,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(b,0,d,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,C=DA(_,0,R,0),A=w+g|0,A=C>>>0>(B=C+B|0)>>>0?A+1|0:A,g=DA(K,0,P,0),C=w+A|0,C=g>>>0>(B=g+B|0)>>>0?C+1|0:C,A=DA(U,0,L,0),g=w+C|0,tA=B=A+B|0,B=A>>>0>B>>>0?g+1|0:g,g=(A=a[n+14|0])>>>24|0,eA=A<<8|(sA=a[n+10|0]|a[n+11|0]<<8|a[n+12|0]<<16|a[n+13|0]<<24)>>>24,g=2097151&((1&(g|=C=(A=a[n+15|0])>>>16|0))<<31|(A=eA|A<<16)>>>1),A=B,tA=C=g+tA|0,B=g>>>0>C>>>0?A+1|0:A,eA=sA>>>4&2097151,A=DA(N,0,YA,0),g=w,C=A,A=DA(Y,0,P,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=DA(b,0,R,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,sA=(A=C)+(C=DA(_,0,L,0))|0,A=w+g|0,A=C>>>0>sA>>>0?A+1|0:A,g=DA(K,0,d,0),C=w+A|0,A=g>>>0>(sA=g+sA|0)>>>0?C+1|0:C,hA=A=(qA=eA+sA|0)>>>0>>0?A+1|0:A,aA=A=A-((qA>>>0<4293918720)-1|0)|0,g=(C=A>>>21|0)+B|0,HA=g=(A=(2097151&A)<<11|(GA=qA- -1048576|0)>>>21)>>>0>(TA=A+tA|0)>>>0?g+1|0:g,nA=A=g-((TA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(yA=TA- -1048576|0)>>>21,A=(A>>>21|0)+SA|0,sA=A=g>>>0>(wA=g+wA|0)>>>0?A+1|0:A,rA=A=A-((wA>>>0<4293918720)-1|0)|0,g=(C=A>>21)+i|0,gI=g=(g=(A=(2097151&A)<<11|(tA=wA- -1048576|0)>>>21)>>>0>(B=A+kA|0)>>>0?g+1|0:g)-(((C=-2097152&xA)>>>0>B>>>0)+CI|0)|0,xA=A=B-C|0,eA=A- -1048576|0,CI=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+fA|0,g=((A=(2097151&A)<<11|eA>>>21)>>>0>(B=A+II|0)>>>0?C+1|0:C)+cA|0,LA=g=(g=(A=B)>>>0>(B=B+pA|0)>>>0?g+1|0:g)-(((C=-2097152&jA)>>>0>B>>>0)+BI|0)|0,cA=A=B-C|0,i=A- -1048576|0,VA=A=g-((A>>>0<4293918720)-1|0)|0,C=(g=A>>21)+iI|0,jA=A=(C=(A=(2097151&A)<<11|i>>>21)>>>0>(fA=A+QI|0)>>>0?C+1|0:C)-((fA>>>0<4293918720)-1|0)|0,kA=mA- -1048576|0,SA=JA-((mA>>>0<4293918720)-1|0)|0,pA=(2097151&A)<<11|(B=fA- -1048576|0)>>>21,A=(A>>21)+JA|0,BI=(mA=pA+mA|0)-(g=-2097152&kA)|0,QI=(pA>>>0>mA>>>0?A+1|0:A)-((g>>>0>mA>>>0)+SA|0)|0,iI=fA-(A=-2097152&B)|0,II=C-((A>>>0>fA>>>0)+jA|0)|0,OA=cA-(A=-2097152&i)|0,mA=LA-((A>>>0>cA>>>0)+VA|0)|0,A=DA(dA,ZA,-997805,-1),g=w,C=A,A=DA(AA,$,654183,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(AI,CA,136657,0))|0,A=w+g|0,g=gI+(C>>>0>B>>>0?A+1|0:A)|0,LA=(C=B+xA|0)-(A=-2097152&eA)|0,VA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+CI|0)|0,xA=KA-(A=-2097152&lA)|0,JA=UA-((A>>>0>KA>>>0)+oA|0)|0,g=DA(gA,IA,-997805,-1),A=w,C=g,g=DA(x,Z,654183,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(O,q,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(X,j,-683901,-1),C=w+g|0,g=bA+(A>>>0>(B=A+B|0)>>>0?C+1|0:C)|0,lA=(C=B+XA|0)-(A=-2097152&MA)|0,UA=(g=C>>>0>>0?g+1|0:g)-((A>>>0>C>>>0)+iA|0)|0,g=DA(gA,IA,654183,0),A=w,C=g,g=DA(x,Z,470296,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,B=(g=DA(O,q,-997805,-1))+C|0,C=w+A|0,g=PA+(g>>>0>B>>>0?C+1|0:C)|0,g=(A=B+WA|0)>>>0>>0?g+1|0:g,C=A,A=DA(X,j,136657,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(z,V,-683901,-1))|0,A=w+g|0,eA=B-(g=-2097152&_A)|0,i=(C>>>0>B>>>0?A+1|0:A)-((g>>>0>B>>>0)+BA|0)|0,B=(a[n+28|0]|a[n+29|0]<<8|a[n+30|0]<<16|a[n+31|0]<<24)>>>7|0,A=DA(e,0,N,0),g=w,fA=(C=A)+(A=DA(c,0,Y,0))|0,C=w+g|0,C=A>>>0>fA>>>0?C+1|0:C,A=DA(h,0,b,0),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(l,S,_,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,C=DA(k,0,K,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,C=DA(H,0,J,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(G,0,U,0),C=w+A|0,C=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,A=DA(F,FA,YA,0),g=w+C|0,g=A>>>0>(fA=A+fA|0)>>>0?g+1|0:g,C=DA(y,0,d,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,C=DA(t,0,P,0),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,C=DA(s,0,L,0),A=w+g|0,A=C>>>0>(fA=C+fA|0)>>>0?A+1|0:A,g=DA(p,0,R,0),C=w+A|0,g=g>>>0>(fA=g+fA|0)>>>0?C+1|0:C,bA=(C=(2097151&RA)<<11|zA>>>21)+(A=B+fA|0)|0,A=(RA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,pA=A=C>>>0>bA>>>0?A+1|0:A,jA=g=A-((bA>>>0<4293918720)-1|0)|0,C=(A=g>>>21|0)+i|0,cA=C=(g=(2097151&g)<<11|(FA=bA- -1048576|0)>>>21)>>>0>(MA=g+eA|0)>>>0?C+1|0:C,zA=g=C-((MA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+UA|0,eA=A=(g=(2097151&g)<<11|(fA=MA- -1048576|0)>>>21)>>>0>(lA=g+lA|0)>>>0?A+1|0:A,_A=g=A-((lA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+JA|0,RA=C=(g=(B=(2097151&g)<<11|(i=lA- -1048576|0)>>>21)+xA|0)>>>0>>0?C+1|0:C,JA=g,A=DA(g,C,-683901,-1),g=w+VA|0,UA=C=A+LA|0,B=A>>>0>C>>>0?g+1|0:g,g=DA(AA,$,470296,0),A=w+sA|0,A=g>>>0>(wA=g+wA|0)>>>0?A+1|0:A,g=DA(dA,ZA,654183,0),A=w+(A-(((C=-2097152&tA)>>>0>wA>>>0)+rA|0)|0)|0,A=g>>>0>(tA=g+(wA-C|0)|0)>>>0?A+1|0:A,C=DA(AI,CA,-997805,-1),g=w+A|0,g=C>>>0>(tA=C+tA|0)>>>0?g+1|0:g,PA=C=lA-(A=-2097152&i)|0,YA=eA=eA-((A>>>0>lA>>>0)+_A|0)|0,tA=(i=DA(JA,RA,136657,0))+tA|0,A=w+g|0,C=DA(C,eA,-683901,-1),g=w+(i>>>0>tA>>>0?A+1|0:A)|0,eA=g=C>>>0>(sA=C+tA|0)>>>0?g+1|0:g,_A=A=g-((sA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(i=sA- -1048576|0)>>>21,A=(A>>21)+B|0,lA=g=(A=g>>>0>(tA=g+UA|0)>>>0?A+1|0:A)-((tA>>>0<4293918720)-1|0)|0,wA=(2097151&g)<<11|(B=tA- -1048576|0)>>>21,g=(g>>21)+mA|0,OA=UA=wA+OA|0,UA=wA>>>0>UA>>>0?g+1|0:g,mA=tA-(g=-2097152&B)|0,WA=A-((g>>>0>tA>>>0)+lA|0)|0,LA=sA-(A=-2097152&i)|0,VA=eA-((A>>>0>sA>>>0)+_A|0)|0,A=DA(AA,$,666643,0),C=HA+w|0,C=(i=A+TA|0)>>>0>>0?C+1|0:C,B=(A=DA(dA,ZA,470296,0))+(i-(g=-2097152&yA)|0)|0,g=w+(C-((g>>>0>i>>>0)+nA|0)|0)|0,g=A>>>0>B>>>0?g+1|0:g,C=DA(AI,CA,654183,0),A=w+g|0,tA=B=C+B|0,B=C>>>0>B>>>0?A+1|0:A,i=MA-(A=-2097152&fA)|0,eA=cA-((A>>>0>MA>>>0)+zA|0)|0,A=DA(gA,IA,470296,0),g=w,C=A,A=DA(x,Z,666643,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,A=DA(O,q,654183,0),g=w+g|0,g=A>>>0>(C=A+C|0)>>>0?g+1|0:g,fA=(A=C)+(C=DA(X,j,-997805,-1))|0,A=w+g|0,A=C>>>0>fA>>>0?A+1|0:A,g=DA(z,V,136657,0),A=w+A|0,A=g>>>0>(C=g+fA|0)>>>0?A+1|0:A,fA=(g=DA(W,T,-683901,-1))+C|0,C=w+A|0,g=pA+(g>>>0>fA>>>0?C+1|0:C)|0,MA=(C=(2097151&vA)<<11|NA>>>21)+((fA=fA+bA|0)-(A=-2097152&FA)|0)|0,A=((g=fA>>>0>>0?g+1|0:g)-((A>>>0>fA>>>0)+jA|0)|0)+(vA>>21)|0,lA=A=C>>>0>MA>>>0?A+1|0:A,xA=A=A-((MA>>>0<4293918720)-1|0)|0,g=i,i=(2097151&A)<<11|(yA=MA- -1048576|0)>>>21,A=(A>>21)+eA|0,_A=A=(C=g+i|0)>>>0>>0?A+1|0:A,bA=C,A=DA(C,A,-683901,-1),g=w+B|0,g=A>>>0>(C=A+tA|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(JA,RA,-997805,-1))|0,A=w+g|0,A=C>>>0>B>>>0?A+1|0:A,g=DA(PA,YA,136657,0),C=w+A|0,NA=B=g+B|0,cA=g>>>0>B>>>0?C+1|0:C,tA=qA-(A=-2097152&GA)|0,pA=hA-((A>>>0>qA>>>0)+aA|0)|0,g=DA(N,0,P,0),A=w,C=g,g=DA(Y,0,d,0),A=w+A|0,A=g>>>0>(C=C+g|0)>>>0?A+1|0:A,g=DA(b,0,L,0),A=w+A|0,A=g>>>0>(C=g+C|0)>>>0?A+1|0:A,B=(g=DA(K,0,R,0))+C|0,C=w+A|0,g=g>>>0>B>>>0?C+1|0:C,FA=C=(A=(a[n+7|0]|a[n+8|0]<<8|a[n+9|0]<<16|a[n+10|0]<<24)>>>7&2097151)+B|0,fA=A>>>0>C>>>0?g+1|0:g,A=DA(N,0,d,0),g=w,C=A,A=DA(Y,0,R,0),g=w+g|0,g=A>>>0>(C=C+A|0)>>>0?g+1|0:g,B=(A=C)+(C=DA(K,0,L,0))|0,A=w+g|0,eA=B,B=C>>>0>B>>>0?A+1|0:A,A=(g=a[n+6|0])>>>24|0,i=g<<8|(jA=a[n+2|0]|a[n+3|0]<<8|a[n+4|0]<<16|a[n+5|0]<<24)>>>24,C=A,g=(A=a[n+7|0])>>>16|0,g|=C,C=B,i=C=(A=2097151&((3&g)<<30|(A=A<<16|i)>>>2))>>>0>(eA=A+eA|0)>>>0?C+1|0:C,XA=A=C-((eA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(HA=eA- -1048576|0)>>>21,A=(A>>>21|0)+fA|0,wA=A=C>>>0>(hA=C+FA|0)>>>0?A+1|0:A,zA=A=A-((hA>>>0<4293918720)-1|0)|0,C=(g=A>>>21|0)+pA|0,C=(A=(2097151&A)<<11|(sA=hA- -1048576|0)>>>21)>>>0>(B=A+tA|0)>>>0?C+1|0:C,g=DA(dA,ZA,666643,0),A=w+C|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,g=DA(AI,CA,470296,0),A=w+A|0,A=g>>>0>(C=g+B|0)>>>0?A+1|0:A,B=(g=C)+(C=DA(bA,_A,136657,0))|0,g=w+A|0,g=C>>>0>B>>>0?g+1|0:g,A=DA(JA,RA,654183,0),g=w+g|0,g=A>>>0>(C=A+B|0)>>>0?g+1|0:g,tA=(A=DA(PA,YA,-997805,-1))+C|0,C=w+g|0,pA=C=A>>>0>tA>>>0?C+1|0:C,vA=A=C-((tA>>>0<4293918720)-1|0)|0,C=(2097151&A)<<11|(FA=tA- -1048576|0)>>>21,A=(A>>21)+cA|0,NA=C=(A=C>>>0>(B=C+NA|0)>>>0?A+1|0:A)-((B>>>0<4293918720)-1|0)|0,fA=(2097151&C)<<11|(cA=B- -1048576|0)>>>21,C=(C>>21)+VA|0,KA=GA=fA+LA|0,GA=fA>>>0>GA>>>0?C+1|0:C,fA=B,g=A,B=(MA-(A=-2097152&yA)|0)+(yA=(2097151&SA)<<11|kA>>>21)|0,A=(lA-((A>>>0>MA>>>0)+xA|0)|0)+(SA>>21)|0,kA=A=B>>>0>>0?A+1|0:A,LA=A=A-((B>>>0<4293918720)-1|0)|0,MA=C=A>>21,A=DA(dA=(2097151&A)<<11|(SA=B- -1048576|0)>>>21,C,-683901,-1),g=w+g|0,g=A>>>0>(C=A+fA|0)>>>0?g+1|0:g,VA=C-(A=-2097152&cA)|0,qA=g-((A>>>0>C>>>0)+NA|0)|0,g=DA(dA,MA,136657,0),A=w+pA|0,A=g>>>0>(C=g+tA|0)>>>0?A+1|0:A,TA=C-(g=-2097152&FA)|0,vA=A-((g>>>0>C>>>0)+vA|0)|0,g=DA(AI,CA,666643,0),A=w+(wA-(((C=-2097152&sA)>>>0>hA>>>0)+zA|0)|0)|0,A=g>>>0>(fA=g+(hA-C|0)|0)>>>0?A+1|0:A,C=DA(bA,_A,-997805,-1),g=w+A|0,g=C>>>0>(fA=C+fA|0)>>>0?g+1|0:g,A=DA(JA,RA,470296,0),C=w+g|0,C=A>>>0>(fA=A+fA|0)>>>0?C+1|0:C,g=DA(PA,YA,654183,0),A=w+C|0,NA=fA=g+fA|0,pA=g>>>0>fA>>>0?A+1|0:A,C=jA>>>5&2097151,A=DA(N,0,R,0),g=w,cA=A,A=DA(Y,0,L,0),g=w+g|0,A=A>>>0>(fA=cA+A|0)>>>0?g+1|0:g,cA=g=C+fA|0,C=A=g>>>0>>0?A+1|0:A,hA=(g=DA(N,0,L,0))+(A=(A=a[n+2|0])<<16&2031616|a[0|n]|a[n+1|0]<<8)|0,g=w,yA=g=A>>>0>hA>>>0?g+1|0:g,xA=g=g-((hA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+C|0,sA=A=(g=(2097151&g)<<11|(wA=hA- -1048576|0)>>>21)>>>0>(lA=g+cA|0)>>>0?A+1|0:A,jA=g=A-((lA>>>0<4293918720)-1|0)|0,C=(2097151&g)<<11|(tA=lA- -1048576|0)>>>21,g=(g>>>21|0)+i|0,g=C>>>0>(fA=C+eA|0)>>>0?g+1|0:g,C=DA(bA,_A,654183,0),A=w+(g-(((i=-2097152&HA)>>>0>fA>>>0)+XA|0)|0)|0,A=C>>>0>(eA=C+(fA-i|0)|0)>>>0?A+1|0:A,g=DA(JA,RA,666643,0),A=w+A|0,A=g>>>0>(C=g+eA|0)>>>0?A+1|0:A,FA=(g=C)+(C=DA(PA,YA,470296,0))|0,g=w+A|0,cA=g=C>>>0>FA>>>0?g+1|0:g,zA=g=g-((FA>>>0<4293918720)-1|0)|0,C=(A=g>>21)+pA|0,HA=g=(C=(g=(2097151&g)<<11|(fA=FA- -1048576|0)>>>21)>>>0>(eA=g+NA|0)>>>0?C+1|0:C)-((eA>>>0<4293918720)-1|0)|0,pA=(2097151&g)<<11|(i=eA- -1048576|0)>>>21,g=(g>>21)+vA|0,RA=JA=pA+TA|0,pA=pA>>>0>JA>>>0?g+1|0:g,A=DA(dA,MA,-997805,-1),g=w+C|0,g=A>>>0>(eA=A+eA|0)>>>0?g+1|0:g,vA=eA-(A=-2097152&i)|0,NA=g-((A>>>0>eA>>>0)+HA|0)|0,g=DA(dA,MA,654183,0),A=w+cA|0,A=g>>>0>(C=g+FA|0)>>>0?A+1|0:A,JA=C-(g=-2097152&fA)|0,HA=A-((g>>>0>C>>>0)+zA|0)|0,A=DA(bA,_A,470296,0),C=w+(sA-(((g=-2097152&tA)>>>0>lA>>>0)+jA|0)|0)|0,C=A>>>0>(i=A+(lA-g|0)|0)>>>0?C+1|0:C,g=DA(PA,YA,666643,0),A=w+C|0,eA=i=g+i|0,C=g>>>0>i>>>0?A+1|0:A,g=DA(bA,_A,666643,0),A=w+(yA-((4095&xA)+((i=-2097152&wA)>>>0>hA>>>0)|0)|0)|0,FA=A=g>>>0>(tA=g+(hA-i|0)|0)>>>0?A+1|0:A,yA=A=A-((tA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(cA=tA- -1048576|0)>>>21,A=(A>>21)+C|0,C=A=i>>>0>(fA=i+eA|0)>>>0?A+1|0:A,wA=A=A-((fA>>>0<4293918720)-1|0)|0,i=(2097151&A)<<11|(eA=fA- -1048576|0)>>>21,A=(A>>21)+HA|0,i=i>>>0>(sA=i+JA|0)>>>0?A+1|0:A,A=DA(dA,MA,470296,0),C=w+C|0,C=A>>>0>(g=A+fA|0)>>>0?C+1|0:C,fA=g-(A=-2097152&eA)|0,eA=C-((A>>>0>g>>>0)+wA|0)|0,g=DA(dA,MA,666643,0),A=w+(FA-(((C=-2097152&cA)>>>0>tA>>>0)+yA|0)|0)|0,g=(C=(A=g>>>0>(lA=g+(tA-C|0)|0)>>>0?A+1|0:A)>>21)+eA|0,A=(A=(g=(A=(2097151&A)<<11|lA>>>21)>>>0>(HA=A+fA|0)>>>0?g+1|0:g)>>21)+i|0,g=(g=(A=(g=(2097151&g)<<11|HA>>>21)>>>0>(yA=g+sA|0)>>>0?A+1|0:A)>>21)+NA|0,C=(A=(g=(A=(2097151&A)<<11|yA>>>21)>>>0>(i=A+vA|0)>>>0?g+1|0:g)>>21)+pA|0,A=(g=(C=(g=(2097151&g)<<11|i>>>21)>>>0>(wA=g+RA|0)>>>0?C+1|0:C)>>21)+qA|0,g=(C=(A=(C=(2097151&C)<<11|wA>>>21)>>>0>(sA=C+VA|0)>>>0?A+1|0:A)>>21)+GA|0,A=(A=(g=(A=(2097151&A)<<11|sA>>>21)>>>0>(tA=A+KA|0)>>>0?g+1|0:g)>>21)+WA|0,g=(g=(A=(g=(2097151&g)<<11|tA>>>21)>>>0>(pA=g+mA|0)>>>0?A+1|0:A)>>21)+UA|0,C=(A=(g=(A=(2097151&A)<<11|pA>>>21)>>>0>(FA=A+OA|0)>>>0?g+1|0:g)>>21)+II|0,A=(g=(C=(g=(2097151&g)<<11|FA>>>21)>>>0>(cA=g+iI|0)>>>0?C+1|0:C)>>21)+QI|0,eA=(SA=B-(g=-2097152&SA)|0)+((2097151&(A=(C=(2097151&C)<<11|cA>>>21)>>>0>(fA=C+BI|0)>>>0?A+1|0:A))<<11|fA>>>21)|0,A=(kA-((g>>>0>B>>>0)+LA|0)|0)+(A>>21)|0,SA=g=(A=eA>>>0>>0?A+1|0:A)>>21,lA=(A=DA(GA=(2097151&A)<<11|eA>>>21,g,666643,0))+(g=2097151&lA)|0,A=w,B=A=g>>>0>lA>>>0?A+1|0:A,E[0|Q]=lA,E[Q+1|0]=(255&A)<<24|lA>>>8,A=2097151&HA,g=DA(GA,SA,470296,0)+A|0,C=w,A=(B>>21)+(A>>>0>g>>>0?C+1|0:C)|0,A=(kA=(2097151&B)<<11|lA>>>21)>>>0>(HA=kA+g|0)>>>0?A+1|0:A,E[Q+4|0]=(2047&A)<<21|HA>>>11,g=A,C=HA,E[Q+3|0]=(7&A)<<29|C>>>3,E[Q+2|0]=31&((65535&B)<<16|lA>>>16)|C<<5,B=2097151&yA,yA=DA(GA,SA,654183,0)+B|0,A=w,HA=(2097151&g)<<11|C>>>21,g=(g>>21)+(B=B>>>0>yA>>>0?A+1|0:A)|0,A=g=(yA=HA+yA|0)>>>0>>0?g+1|0:g,E[Q+6|0]=(63&A)<<26|yA>>>6,B=yA,yA=0,E[Q+5|0]=yA<<13|(1572864&C)>>>19|B<<2,C=2097151&i,i=DA(GA,SA,-997805,-1)+C|0,g=w,g=C>>>0>i>>>0?g+1|0:g,yA=(2097151&(C=A))<<11|B>>>21,C=(A>>=21)+g|0,C=(i=yA+i|0)>>>0>>0?C+1|0:C,E[Q+9|0]=(511&C)<<23|i>>>9,E[Q+8|0]=(1&C)<<31|i>>>1,g=0,E[Q+7|0]=g<<18|(2080768&B)>>>14|i<<7,g=2097151&wA,B=DA(GA,SA,136657,0)+g|0,A=w,A=g>>>0>B>>>0?A+1|0:A,wA=(2097151&(g=C))<<11|i>>>21,g=A+(C=g>>21)|0,g=(B=wA+B|0)>>>0>>0?g+1|0:g,E[Q+12|0]=(4095&g)<<20|B>>>12,C=B,E[Q+11|0]=(15&g)<<28|C>>>4,B=0,E[Q+10|0]=B<<15|(1966080&i)>>>17|C<<4,B=2097151&sA,i=DA(GA,SA,-683901,-1)+B|0,A=w,A=B>>>0>i>>>0?A+1|0:A,B=g,g=A+(g>>=21)|0,g=(B=(sA=i)+(i=(2097151&B)<<11|C>>>21)|0)>>>0>>0?g+1|0:g,E[Q+14|0]=(127&g)<<25|B>>>7,i=0,E[Q+13|0]=i<<12|(1048576&C)>>>20|B<<1,A=g>>21,C=(g=(2097151&g)<<11|B>>>21)>>>0>(i=g+(2097151&tA)|0)>>>0?A+1|0:A,E[Q+17|0]=(1023&C)<<22|i>>>10,E[Q+16|0]=(3&C)<<30|i>>>2,g=0,E[Q+15|0]=g<<17|(2064384&B)>>>15|i<<6,A=C>>21,A=(g=(2097151&C)<<11|i>>>21)>>>0>(C=g+(2097151&pA)|0)>>>0?A+1|0:A,E[Q+20|0]=(8191&A)<<19|C>>>13,E[Q+19|0]=(31&A)<<27|C>>>5,B=(g=2097151&FA)+(FA=(2097151&A)<<11|C>>>21)|0,g=A>>21,g=B>>>0>>0?g+1|0:g,FA=B,E[Q+21|0]=B,pA=0,E[Q+18|0]=pA<<14|(1835008&i)>>>18|C<<3,E[Q+22|0]=(255&g)<<24|B>>>8,C=g>>21,C=(B=(i=(2097151&g)<<11|B>>>21)+(2097151&cA)|0)>>>0>>0?C+1|0:C,E[Q+25|0]=(2047&C)<<21|B>>>11,E[Q+24|0]=(7&C)<<29|B>>>3,E[Q+23|0]=31&((65535&g)<<16|FA>>>16)|B<<5,A=C>>21,A=(g=(2097151&C)<<11|B>>>21)>>>0>(C=g+(2097151&fA)|0)>>>0?A+1|0:A,E[Q+27|0]=(63&A)<<26|C>>>6,i=0,E[Q+26|0]=i<<13|(1572864&B)>>>19|C<<2,g=A>>21,g=(A=(B=(2097151&A)<<11|C>>>21)+(2097151&eA)|0)>>>0>>0?g+1|0:g,E[Q+31|0]=(131071&g)<<15|A>>>17,E[Q+30|0]=(511&g)<<23|A>>>9,E[Q+29|0]=(1&g)<<31|A>>>1,B=0,E[Q+28|0]=B<<18|(2080768&C)>>>14|A<<7,$A(r,64),$A(n,64),I&&(o[I>>2]=64,o[I+4>>2]=0),D=f+560|0,0}function p(A,I,g,C){for(var B=0,Q=0,i=0,E=0,n=0,r=0,f=0,t=0,e=0,c=0,y=0,D=0,h=0,s=0,p=0,u=0,k=0,F=0,l=0,S=0,H=0,M=0,G=0,U=0,J=0,N=0,Y=0,b=0,_=0,K=0,P=0,v=0,m=0,d=0,L=0,R=0,x=0;i=(B=f<<3)+g|0,Q=a[0|(B=I+B|0)]|a[B+1|0]<<8|a[B+2|0]<<16|a[B+3|0]<<24,H=a[B+4|0]|a[B+5|0]<<8|a[B+6|0]<<16|a[B+7|0]<<24,n=Q<<24|(65280&Q)<<8,e=(r=16711680&Q)<<24,r=r>>>8|0,B=(t=-16777216&Q)>>>24|0,o[i>>2]=e|t<<8|-16777216&((255&H)<<24|Q>>>8)|16711680&((16777215&H)<<8|Q>>>24)|H>>>8&65280|H>>>24,Q=B|r|n,B=0,o[i+4>>2]=Q|B|B,16!=(0|(f=f+1|0)););for(I=o[A+4>>2],o[C>>2]=o[A>>2],o[C+4>>2]=I,I=o[A+60>>2],o[C+56>>2]=o[A+56>>2],o[C+60>>2]=I,I=o[A+52>>2],o[C+48>>2]=o[A+48>>2],o[C+52>>2]=I,I=o[A+44>>2],o[C+40>>2]=o[A+40>>2],o[C+44>>2]=I,I=o[A+36>>2],o[C+32>>2]=o[A+32>>2],o[C+36>>2]=I,I=o[A+28>>2],o[C+24>>2]=o[A+24>>2],o[C+28>>2]=I,I=o[A+20>>2],o[C+16>>2]=o[A+16>>2],o[C+20>>2]=I,I=o[A+12>>2],o[C+8>>2]=o[A+8>>2],o[C+12>>2]=I;t=o[C+56>>2],n=o[C+60>>2],B=o[(I=H=(M=x<<3)+g|0)>>2],I=o[I+4>>2],k=Q=o[C+36>>2],Q=nA(f=o[C+32>>2],Q,50),i=w,Q=nA(f,k,46)^Q,i^=w,Q=nA(f,k,23)^Q,I=(w^i)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(i=o[(Q=M+34e3|0)>>2])+B|0,I=o[Q+4>>2]+I|0,I=B>>>0>>0?I+1|0:I,Q=(e=((i=o[C+48>>2])^(r=o[C+40>>2]))&f^i)+B|0,B=(((u=o[C+52>>2])^(c=o[C+44>>2]))&k^u)+I|0,I=(Q>>>0>>0?B+1|0:B)+n|0,I=(B=Q)>>>0>(Q=Q+t|0)>>>0?I+1|0:I,t=(n=o[C+24>>2])+Q|0,B=o[C+28>>2]+I|0,y=B=n>>>0>t>>>0?B+1|0:B,o[C+24>>2]=t,o[C+28>>2]=B,l=B=o[C+4>>2],B=nA(h=o[C>>2],B,36),n=w,B=nA(h,l,30)^B,e=w^n,n=Q+(nA(h,l,25)^B)|0,B=I+(w^e)|0,B=Q>>>0>n>>>0?B+1|0:B,e=(I=n)+(n=h&((Q=o[C+16>>2])|(s=o[C+8>>2]))|Q&s)|0,I=(I=B)+(l&((B=o[C+20>>2])|(F=o[C+12>>2]))|B&F)|0,n=I=n>>>0>e>>>0?I+1|0:I,o[C+56>>2]=e,o[C+60>>2]=I,E=Q,D=B,S=o[(I=P=(p=8|M)+g|0)>>2],K=o[I+4>>2],B=((c^k)&y^c)+u|0,B=(I=(Q=(r^f)&t^r)+i|0)>>>0>>0?B+1|0:B,Q=nA(t,y,50),i=w,Q=nA(t,y,46)^Q,i^=w,Q=(u=nA(t,y,23)^Q)+I|0,I=(w^i)+B|0,I=(Q>>>0>>0?I+1|0:I)+K|0,I=(B=Q+S|0)>>>0>>0?I+1|0:I,Q=(Q=B)+(i=o[(B=p+34e3|0)>>2])|0,B=o[B+4>>2]+I|0,B=(I=Q>>>0>>0?B+1|0:B)+D|0,p=B=(E=Q+E|0)>>>0>>0?B+1|0:B,o[C+16>>2]=E,o[C+20>>2]=B,I=I+((F|l)&n|F&l)|0,I=(B=Q+((h|s)&e|h&s)|0)>>>0>>0?I+1|0:I,Q=nA(e,n,36),i=w,Q=nA(e,n,30)^Q,D=w^i,i=B,B=nA(e,n,25)^Q,I=(w^D)+I|0,D=I=B>>>0>(i=i+B|0)>>>0?I+1|0:I,o[C+48>>2]=i,o[C+52>>2]=I,I=(I=r)+(r=o[(B=K=(Q=16|M)+g|0)>>2])|0,B=o[B+4>>2]+c|0,B=I>>>0>>0?B+1|0:B,Q=(c=I)+(r=o[(I=Q+34e3|0)>>2])|0,I=o[I+4>>2]+B|0,I=((y^k)&p^k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=(t^f)&E^f)|0)>>>0>>0?I+1|0:I,Q=nA(E,p,50),r=w,Q=nA(E,p,46)^Q,r^=w,Q=(c=nA(E,p,23)^Q)+B|0,B=(w^r)+I|0,u=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(i,D,36),r=w,B=nA(i,D,30)^B,c=w^r,S=nA(i,D,25)^B,B=((n|l)&D|n&l)+(w^c)|0,I=((r=S+((e|h)&i|e&h)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(B=r)>>>0>(r=Q+r|0)>>>0?I+1|0:I,o[C+40>>2]=r,o[C+44>>2]=I,B=u+F|0,F=B=(s=Q+s|0)>>>0>>0?B+1|0:B,o[C+8>>2]=s,o[C+12>>2]=B,B=(B=f)+(f=o[(I=N=(Q=24|M)+g|0)>>2])|0,I=o[I+4>>2]+k|0,I=B>>>0>>0?I+1|0:I,Q=(k=B)+(f=o[(B=Q+34e3|0)>>2])|0,B=o[B+4>>2]+I|0,B=(y^(y^p)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=t^(t^E)&s)|0)>>>0>>0?B+1|0:B,Q=nA(s,F,50),f=w,Q=nA(s,F,46)^Q,f^=w,Q=(u=nA(s,F,23)^Q)+I|0,I=(w^f)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(r,c,36),f=w,B=nA(r,c,30)^B,u=w^f,k=nA(r,c,25)^B,B=((n|D)&c|n&D)+(w^u)|0,B=((f=k+((i|e)&r|i&e)|0)>>>0>>0?B+1|0:B)+I|0,u=B=(k=f)>>>0>(f=Q+f|0)>>>0?B+1|0:B,o[C+32>>2]=f,o[C+36>>2]=B,I=I+l|0,l=I=(h=Q+h|0)>>>0>>0?I+1|0:I,o[C>>2]=h,o[C+4>>2]=I,Q=o[(B=v=(I=32|M)+g|0)>>2],B=y+o[B+4>>2]|0,B=(Q=Q+t|0)>>>0>>0?B+1|0:B,Q=(t=o[(I=I+34e3|0)>>2])+Q|0,I=o[I+4>>2]+B|0,I=(p^(p^F)&l)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=E^(E^s)&h)|0)>>>0>>0?I+1|0:I,Q=nA(h,l,50),t=w,Q=nA(h,l,46)^Q,t^=w,Q=(y=nA(h,l,23)^Q)+B|0,B=(w^t)+I|0,k=B=Q>>>0>>0?B+1|0:B,I=B,B=nA(f,u,36),t=w,B=nA(f,u,30)^B,y=w^t,S=nA(f,u,25)^B,B=((c|D)&u|c&D)+(w^y)|0,I=((t=S+((i|r)&f|i&r)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(y=Q+t|0)>>>0>>0?I+1|0:I,o[C+24>>2]=y,o[C+28>>2]=I,B=n+k|0,k=B=(n=Q+e|0)>>>0>>0?B+1|0:B,o[C+56>>2]=n,o[C+60>>2]=B,Q=o[(I=b=(B=40|M)+g|0)>>2],I=p+o[I+4>>2]|0,I=(Q=Q+E|0)>>>0>>0?I+1|0:I,Q=(e=o[(B=B+34e3|0)>>2])+Q|0,B=o[B+4>>2]+I|0,B=(F^(F^l)&k)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=s^(h^s)&n)|0)>>>0>>0?B+1|0:B,Q=nA(n,k,50),e=w,Q=nA(n,k,46)^Q,e^=w,Q=(E=nA(n,k,23)^Q)+I|0,I=(w^e)+B|0,I=Q>>>0>>0?I+1|0:I,B=nA(y,t,36),e=w,B=nA(y,t,30)^B,E=w^e,p=nA(y,t,25)^B,B=((c|u)&t|c&u)+(w^E)|0,B=((e=p+((r|f)&y|r&f)|0)>>>0